学位論文要旨



No 126817
著者(漢字) 李,蓮福
著者(英字)
著者(カナ) イ,ヨンボク
標題(和) エラートレース解析に基づくVLSI設計のデバッグ支援
標題(洋) Debug Support for VLSI Designs Based on Error Trace Analysis
報告番号 126817
報告番号 甲26817
学位授与日 2011.03.24
学位種別 課程博士
学位種類 博士(工学)
学位記番号 博工第7458号
研究科 工学系研究科
専攻 電気系工学専攻
論文審査委員 主査: 東京大学 教授 藤田,昌宏
 東京大学 教授 浅田,邦博
 東京大学 教授 坂井,修一
 東京大学 准教授 中山,雅哉
 東京大学 准教授 池田,誠
 東京大学 准教授 五島,正裕
内容要旨 要旨を表示する

In the last decades, size and complexity of VLSI designs have remarkably increased with the advance of process technology. Accordingly, design debugging cost has increased greatly, and it is becoming one of the largest bottlenecks in a design cycle. Especially, post-silicon debugging, which targets the errors detected by running the fabricated chip, is generally much harder than pre-silicon debugging. It is because not only the observability and the controllability of internal signal values are very low but also the execution cycle of a fabricated chip is generally very long. Now, post-silicon debugging has become a major time consuming step that imposes a significant impact on the design cycle, consuming 35% of the entire development period. Therefore, efficient debugging supports are strongly required to improve the productivity of VLSI designs.

In practice, hardware design debug has been mainly relying on manual task. That is, designers have to identify the root cause of the target error by analyzing the simulation or execution traces depending on their knowledge of the design, specific expertise, and experience. In trace-based manual debugging, the debugging effort is proportional to the amount of trace data. Furthermore, in post-silicon debugging, only a part of the entire traces can be provided and the execution cycles are typically extremely long, which makes it much harder to analyze the trace. A considerable number of signal values is contained in such traces, which are not actually relevant to the target error. Therefore, improving the efficiency of error trace analysis process is the key for efficient debugging.

To improve the efficiency of the manual task in trace-base debugging, three methods are proposed in this thesis; (1) The dynamic signal sequence slicing method, (2) The I/O sequence mapping method between a high-level design and a low-level design, and (3) A framework for debugging low-level designs using a high-level design.

First, in this thesis, a method that automatically extracts the signal values relevant to the target erroneous value from the original error traces is proposed. First, a new 1-bit variable named d-tag is proposed which is to be generated for every signal such as input signals, data registers, and output signals. The value of d-tag of a signal s at each cycle is set to represent whether the value of s at that cycle is relevant to a specified signal value at another cycle. Formulas computing d-tags for signals in a design are established from the Finite State Machine with Data-path (FSMD) representation of the design. Since each d-tag is a 1-bit value and its computation is conducted by a pre-defined Boolean formula of simple construction, the method can be achieved with a small computation cost. By applying this method, we become able to identify which signal values from the erroneous trace are actually relevant to the target error in trace-based debugging. This relieves us of the effort to be taken for examining and analyzing those values. Especially, it is even more effective in post-silicon debugging, where there are a significant number of such irrelevant signal values in error traces. The proposed dynamic signal sequence slicing method can be implemented either by software or on-chip hardware. The functionality of the proposed slicing method is demonstrated using several design examples. As a result, we observed that the numbers of the extracted signal values was significantly smaller than the size of the original sequences. Moreover, implementation of the proposed method as an on-chip hardware circuit is also demonstrated. As a result, we confirmed that the area overhead due to the additional circuitry for performing the proposed dynamic signal sequence slicing method was quiet practical, e.g., 1.95% for the IDCT design.

Meanwhile, recently, designs of higher abstraction levels than conventional RTL (Register Transfer Level), such as behavior-level or system-level are increasingly employed as a starting point of a design. Such high-level designs provide higher readability of design description and are easy to understand the behavior compared with lower-level designs. Accordingly, trace-analysis of the erroneous behavior observed in the simulation of such high-level designs are much efficient than that of low-level design simulation or chip execution. However they are not utilized in debugging of a low-level design including a fabricated chip because of the inherent difference of interfaces between a high-level design and a low-level design.

Focusing on the above observation, an automatic mapping method between I/O sequences of a high-level design and a low-level design including a fabricated chip is proposed. The ultimate purpose is to take the advantage of high-level design by utilizing the high-level design simulation in debugging the corresponding low-level design. To achieve this, first, a formal definition of I/O sequence mapping and the relevant notions are provided, such as port relation, timing relation, and valid value sequence. Based on those notions, the mapping method is achieved through the two steps: (1) Extract a valid value sequence for each signal from the I/O sequences of a chip execution (2) Generate high-level I/O sequences by mapping from the valid value sequences. By applying this method, we become able to analyze the erroneous behavior observed in the low-level design simulation or chip execution by high-level design simulation, which provides higher efficiency in debugging. The effectiveness of the proposed method is demonstrated by experimental results using several design examples. At that time, the runtime for conducting the mapping process were practical. As a result, the numbers of cycles and I/O events for the the high-level designs simulation with the I/O sequences obtained by the mapping method were significantly reduced compared to the conventional RTL simulation. Furthermore, an on-chip implementation of the method to deal with such I/O sequences during very long execution cycles is presented, and the experimental results are demonstrated. As a result, the area overhead of each design due to the additional circuitry for performing proposed mapping method was also quiet small, e.g., 0.01% for JPEC encoder design.

Finally, a low-level design debugging framework utilizing high-level design is proposed, for further effectiveness. It presents an effective way of utilizing the dynamic signal sequence slicing method and the I/O sequence mapping method presented above in debugging. The goal of the framework is to utilize high-level design simulation with the signal sequences that are extracted from the original long error trace by dynamic signal sequence slicing method. Moreover, methods to extract only the error-relevant portions from the high-level design with the degree suspicious to be buggy portions are proposed to get more debugging efficiency. The extraction method of error-relevant portions is achieved by utilizing the dynamic program slicing method for a high-level design. Also, a distance metric to evaluate the suspicious degree to be a buggy portion is proposed. The experimental results show that we can have the number of design portions reduced that we have to analyze when debugging, by applying the framework.

The experiments conducted in this thesis confirm that the proposed methods contribute to improving the efficiency of debugging large size and complicated designs effectively.

審査要旨 要旨を表示する

本論文は、Debug Support for VLSI Designs Based on Error Trace Analysis (エラートレース解析に基づくVLSI設計のデバッグ支援)と題し、VLSIにおける設計バグに対するデバッグ作業を支援する技術に関し、整合後のチップ実行から得られるエラートレースを効率的に解析してデバッグを行うための手法が示されており、英文で7章から構成されている。

第1章は、Introduction(序章)であり、研究の背景と目的を述べている。VLSI設計における誤設計に対するデバッグに要する時間は、半導体の微細化による設計の大規模・複雑化のため、その設計期間全体に占める割合が益々増大している。VLSI設計の流れとデバッグ作業の現状の問題点を整理し、研究の方向性として、高位設計記述を利用した実行エラートレースの動的な解析が重要であることを示している。

第2章は、An Overview of Hardware Debug Support(ハードウェア誤設計デバッグの概要)であり、主要な現状のデバッグ手法として、誤設計箇所の絞り込み手法、並びに、実行エラートレースを利用したデバッグ手法を説明している。絞り込み手法としては、SATソルバーなどの論理関数の解析技術を利用して因果関係を効率よく解析する手法が提案されているが、ゲートレベルの回路を対象としているため、扱える回路規模やエラートレースの長さに限界がある。またエラートレースが効率良く解析できるように、VLSI動作時の内部信号などの状態を記憶しておくバッファを利用するなど、設計をデバッグし易いように変更する手法や、形式的手法と組合せる手法などが提案されているが、適用の仕方がアドホックであったり、対象がプロセッサに限定されるなど問題があることが示されている。

第3章は、Fundamental Techniques and Basic Notions(基本手法と考え方)であり、関連技術として、ハードウェア高位合成手法、動的プログラムスライシング手法、レジスタ転送レベルの設計を一般的に表現するFSMD(Finite State Machine with Datapath)の導入と、デバッグ作業での利用法に関する現状技術を説明している。

第4章は、d-tag: Dependency Tag for Dynamic Signal Sequence Slicing Method(d-tagに基づく動的シーケンススライス手法)であり、従来ソフトウェアとしてのプログラム解析技術として利用されていた動的スライシング手法をVLSI内でハードウェアにより実現する手法が提案・評価されている。FSMDで表現されたVLSI設計から自動的に動的スライシングを実行するためのハードウェアが提案手法により自動生成される。これにより、VLSIの出力値が正しくなかった場合、VLSI自身が自動的に信号伝搬の因果関係を自動的に辿り、誤設計の箇所の特定に有用な情報を生成することができる。追加されるハードウェア量も大規模設計では数%以下に押さえられることが実験により示されている。また、提案手法をソフトウェアとして実装することにより、通常の設計段階のデバッグにも利用できることも示されている。

第5章は、I/O Sequence Mapping Method between a High-level Design and a Low-level Design(上位設計と下位設計間の入出力シーケンスのマッピング手法)であり、チップ実行による得られるエラートレースから、高位設計のシミュレーションのための入力パターンを自動生成する手法が示されている。デバッグの基本として、計算機シミュレーションによるエラーの再現が重要であるが、チップの実行トレースは非常に長く、シミュレーションでは再現できない。しかし、高位設計に対するシミュレーションはチップレベルと比較し、1,000以上高速であり、より長いエラートレースを再現できる。しかしRTL以降の設計では、クロック周期ごとの動作は同じであるが、高位設計では実行の並列性や順序が異なり、エラートレースをそのまま利用して高位設計のシミュレーションを行うことはできない。提案手法により、設計者の最小限の情報で自動的に高位設計用のシミュレーションパターンを自動生成できることが示されている。

第6章は、A debugging flow of a low-level design using a high-level design(高位設計記述を利用した下位設計に対するデバッグフロー)であり、前章までで示された検証手法を統合した設計デバッグ手法とその流れを提案している。またそれを例題へ適用・評価し、その有用性を示している。

第7章は、Conclusion and Future Work(結論と今後の課題)と題し、本論文の研究成果をまとめるとともに、今後の発展方向について議論している。

以上、VLSI設計における設計バグに対するデバッグ作業を支援する技術に関し、製造後のチップ実行から得られるエラートレースを利用する際、その高位設計への自動マッピング手法やハードウェアによる因果関係処理手法などを適用することで効率的に解析しデバッグを行うための設計手法が示され、実験を通したその有用性が示されており、電子工学の発展に寄与する点は少なくない。

よって本論文は博士(工学)の学位請求論文として合格したものと認められる。

UTokyo Repositoryリンク