JP4569284B2 - 集積回路のデバッグ方法、デバッグプログラム - Google Patents
集積回路のデバッグ方法、デバッグプログラム Download PDFInfo
- Publication number
- JP4569284B2 JP4569284B2 JP2004358785A JP2004358785A JP4569284B2 JP 4569284 B2 JP4569284 B2 JP 4569284B2 JP 2004358785 A JP2004358785 A JP 2004358785A JP 2004358785 A JP2004358785 A JP 2004358785A JP 4569284 B2 JP4569284 B2 JP 4569284B2
- Authority
- JP
- Japan
- Prior art keywords
- bank
- configuration
- execution
- stored
- configuration data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 90
- 230000015654 memory Effects 0.000 claims description 158
- 239000011159 matrix material Substances 0.000 claims description 102
- 230000003068 static effect Effects 0.000 claims description 95
- 238000012545 processing Methods 0.000 claims description 48
- 230000006870 function Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Logic Circuits (AREA)
Description
Network Architecture)マトリクス」とが含まれる。この「DNAマトリクス」が動的に回路構成を切り換えられる部分に相当する。この動的再構成可能な部分(以下、「マトリクス」と称する。)は、2次元アレイ状に、演算器やメモリなどの回路構成要素が整列した構造をとっている。これらの回路構成要素の接続関係を変更することで、並列演算や演算の組み合わせ(積和演算)を自由に設定することが可能である。
(1)設計者は、データの流れに沿って、マトリクス中の論理回路を構成する回路要素(PE:Processing
element)をエディタ上に配置する。これにより、配置されたPEとその間の論理的接続情報とを含む一次ファイルが生成される。
(2)次いで、一次ファイルは、コンパイラにより、実際にマトリクスを構成する特定の位置の回路要素および特定の位置の回路要素間の物理的配線がなされた情報を含む二次ファイルに変換される。この二次ファイルの情報が、バンクにロードされることで、マトリクスは動作することが可能となる。
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップと、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップと、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブルにしたがって、バンク情報テーブルからコンフィグレーションデータを読み出すステップと、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップと、
前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えたことを特徴とするデバッグ方法により達成される(請求項1:第1の手法)。
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えている(請求項2:第2の手法)。
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップと、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップと、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、を備えたことを特徴とするデバッグ方法により達成される(請求項4:第3の手法)。
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップと、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えている(請求項5)。
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、
前記静的変数とバンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えている(請求項6:第4の手法)。
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップ、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップ、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブルにしたがって、バンク情報テーブルからコンフィグレーションデータを読み出すステップ、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップ、並びに、
前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させることを特徴とするデバッグ用プログラムによっても達成される(請求項10)。
前記プロセッサコアによるロード命令の実行時に、前記マトリクスから前記バンク由来値を取得するステップ、並びに、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させる(請求項11)。
静的変数の値としてバンク由来値を記憶するステップ、並びに、
バンク情報テーブル中、前記実行バンクに関連付けてバンク由来値を格納するステップを実行させる(請求項12)。
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップ、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップ、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップ、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップを実行させることを特徴とするデバッグ用プログラムによっても達成される。
前記特定されたバンクが実行バンクであるか否かを判断するステップ、
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップ、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを、実行させる(請求項14)。
前記プロセッサコアによるロード命令実行時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップ、
前記静的変数とバンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを実行させる(請求項15)。
マトリクス_change(int bank):プロセッサコアの制御で他律コンフィグレーションを実行し、カレントコンフィグレーション(バンク0)を、指定のバンクのコンフィグレーションに切り換える
デバッグの際には、上述したように、デバッグ用処理を含むデバッグ用制御ライブラリが使用され、通常の動作の際には、デバッグ用処理が取り除かれた通常動作用制御ライブラリが使用される。
(1)自律ダイナミックリコンフィグレーションが発生した後に、プロセッサコアにより、命令「マトリクス_load」が実行された場合
(2)自律ダイナミックリコンフィグレーションが複数回発生し、カレントコンフィグレーションには、元のバンクのコンフィグレーションデータが戻ったものの、途中で、命令「マトリクス_load」が実行された場合
そこで、以下、これらの問題点を解決するためのデバッガ24の構成について詳細に説明する。
まず、自律ダイナミックリコンフィグレーションが発生した場合のコンフィグレーションメモリの各バンクの状態などについて説明する。図5(a)、(b)は、それぞれ、コンフィグレーションを生じるイベント、コンフィグレーションメモリに格納されたコンフィグレーションデータ名、および、バンク情報テーブルの例を示す図である。
次に、本実施の形態にかかる第2の手法について説明する。たとえば、自律ダイナミックリコンフィグレーションが1回発生した後、制御ライブラリの関数「マトリクス_load」により新たなコンフィグレーションがロードされ、その後、デバッガ24によりプログラムの実行が停止した場合を考える。
次に、本実施の形態にかかる第3の手法について説明する。たとえば、制御ライブラリ「マトリクス_load」により新たなコンフィグレーションデータが、コンフィグレーションメモリのカレントコンフィグレーションにロードされた後、自律ダイナミックリコンフィグレーションが2回以上発生し、最初のバンク番号に戻り、その後にデバッガ24によりプログラムの実行が停止された場合を考える。
第1の具体的処理においては、コンフィグレーションにしたがったマトリクス中のPEの存在パターンを符号化(たとえばCRC符号化)する。なお、符号化は、CRCに限定されるものではなく、他の符号化を適用してもよいことは言うまでもない。
第2の具体的処理では、図11のステップ1102、1103において、コンフィグレーションを構成するPEの存在パターンを、符号化せずにそのまま保存する。同様に、ステップ1112においても、コンフィグレーション読み出しにより取得されたコンフィグレーションデータに基づいて、コンフィグレーションを構成するPEの存在パターンを生成する。また、存在パターンの比較(ステップ1113)において、双方の存在パターンが完全に一致しない場合でも、コンフィグレーション読み出しにより取得されたコンフィグレーションデータに基づく存在パターンに最も類似する存在パターンを選択するように構成される。
次に、本実施の形態にかかる第4の手法について説明する。第1の手法における問題が生じる状態および第2の手法における問題が生じる状態の複合状態では、第3の手法を用いても、正しいコンフィグレーションデータを特定することができない。たとえば、
(1)制御ライブラリの関数「マトリクス_load」により新たなコンフィグレーションデータが、コンフィグレーションメモリのカレントコンフィグレーションにロードされた後、
(2)自律ダイナミックリコンフィグレーションが2回以上発生し、最初のバンク番号に戻り、
(3)再び、新たなコンフィグレーションデータが、同じバンクに、制御ライブラリの関数「マトリクス_load」を用いてロードされ、
(4)その後、デバッガ24によりプログラムの実行が停止された場合を考える。
図17は、従来の手法と、本実施の形態にかかる第1の手法〜第4の手法による処理負荷を示す。図17において、丸印が、その手法において実行される処理を示す。また、×印は、その手法においては、実行されない処理を示す。
本実施の形態においては、設計者のデバッガに対する要求水準にしたがって、上記第1の手法から第4の手法のいずれかを提供してデバッガ24が動作できるようなっている。さらに、上述した手法を用いず、従来と同様に、単に、コンフィグレーション読み出し部54から読み出されたバンク由来値にしたがって、バンク情報テーブル中のコンフィグレーション名を特定し、そのデバッグ情報を取得するように設定することも可能である。
14 プロファイラ
16 第1のコンパイラ
18 DFCコンパイラ
20 第2のコンパイラ
22 シミュレータ/エミュレータ
24 デバッガ
52 デバッグ用モニター
54 コンフィグレーション読み出し部
56 コンフィグレーション決定部
Claims (18)
- 主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報およびコンフィグレーションを特定するコンフィグレーション名が関連付けられ、かつ、前記実行バンクに対応するコンフィグレーション名が格納されたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として静的変数記憶手段に記憶するステップと、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記静的変数と前記バンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップと、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブル中、前記実行バンクに対応するコンフィグレーションデータを読み出すステップと、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップと、
前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えたことを特徴とするデバッグ方法。 - さらに、前記プロセッサコアによるロード命令の実行時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記静的変数と前記バンク由来値とを比較し、これらが不一致の場合に、前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えたことを特徴とする請求項1に記載のデバッグ方法。 - 前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを更新するステップが、
前記静的変数の値として前記静的変数記憶手段にバンク由来値を記憶するステップと、
前記バンク情報テーブル中、前記実行バンクに関連付けてバンク由来値を格納するステップと、を有することを特徴とする請求項1または2に記載のデバッグ方法。 - 主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップと、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として静的変数記憶手段に記憶するステップと、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、を備えたことを特徴とするデバッグ方法。 - さらに、前記特定されたバンクが実行バンクであるか否かを判断するステップと、
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップと、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えたことを特徴とする請求項4に記載のデバッグ方法。 - さらに、前記プロセッサコアによるロード命令実行時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、
前記静的変数と前記バンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えたことを特徴とする請求項4または5に記載のデバッグ方法。 - 前記パターンを生成するステップが、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を含む存在パターンを生成するステップを有することを特徴とする請求項4ないし6の何れか一項に記載のデバッグ方法。
- 前記パターンを生成するステップが、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を符号化した存在パターンを生成するステップを有することを特徴とする請求項4ないし6の何れか一項に記載のデバッグ方法。
- 前記パターンを生成するステップが、前記コンフィグレーションデータの少なくとも部分を符号化するステップを有することを特徴とする請求項4ないし6の何れか一項に記載のデバッグ方法。
- 主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報およびコンフィグレーションを特定するコンフィグレーション名が関連付けられ、かつ、前記実行バンクに対応するコンフィグレーション名が格納されたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として静的変数記憶手段に記憶するステップ、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記静的変数と前記バンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップ、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブル中、前記実行バンクに対応するコンフィグレーションデータを読み出すステップ、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップ、並びに、
前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させることを特徴とするデバッグ用プログラム。 - さらに、前記コンピュータに、
前記プロセッサコアによるロード命令の実行時に、前記マトリクスから前記バンク由来値を取得するステップ、並びに、
前記静的変数と前記バンク由来値とを比較し、これらが不一致の場合に、前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させることを特徴とする請求項10に記載のプログラム。 - 前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを更新するステップにおいて、前記コンピュータに、
前記静的変数の値として前記静的変数記憶手段にバンク由来値を記憶するステップ、並びに、
前記バンク情報テーブル中、前記実行バンクに関連付けてバンク由来値を格納するステップを実行させることを特徴とする請求項10または11に記載のプログラム。 - 主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップ、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として静的変数記憶手段に記憶するステップ、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップ、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップを実行させることを特徴とするデバッグ用プログラム。 - さらに、前記コンピュータに、
前記特定されたバンクが実行バンクであるか否かを判断するステップ、
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップ、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを、実行させることを特徴とする請求項13に記載のプログラム。 - さらに、前記コンピュータに、
前記プロセッサコアによるロード命令実行時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数記憶手段に記憶された静的変数および前記バンク情報テーブルを、前記バンク由来値に整合するように更新するステップ、
前記静的変数と前記バンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを実行させることを特徴とする請求項13または14に記載のプログラム。 - 前記パターンを生成するステップにおいて、前記コンピュータに、
前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を含む存在パターンを生成するステップを実行させることを特徴とする請求項13ないし15の何れか一項に記載のプログラム。 - 前記パターンを生成するステップにおいて、前記コンピュータに、
前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を符号化した存在パターンを生成するステップを実行させることを特徴とする請求項13ないし15の何れか一項に記載のプログラム。 - 前記パターンを生成するステップにおいて、前記コンピュータに、
前記コンフィグレーションデータの少なくとも部分を符号化するステップを実行させることを特徴とする請求項13ないし15の何れか一項に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004358785A JP4569284B2 (ja) | 2004-12-10 | 2004-12-10 | 集積回路のデバッグ方法、デバッグプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004358785A JP4569284B2 (ja) | 2004-12-10 | 2004-12-10 | 集積回路のデバッグ方法、デバッグプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006164186A JP2006164186A (ja) | 2006-06-22 |
JP4569284B2 true JP4569284B2 (ja) | 2010-10-27 |
Family
ID=36666103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004358785A Expired - Fee Related JP4569284B2 (ja) | 2004-12-10 | 2004-12-10 | 集積回路のデバッグ方法、デバッグプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4569284B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101581882B1 (ko) | 2009-04-20 | 2015-12-31 | 삼성전자주식회사 | 재구성 가능한 프로세서 및 그 재구성 방법 |
JP6160317B2 (ja) * | 2013-07-09 | 2017-07-12 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002305438A (ja) * | 2001-04-05 | 2002-10-18 | Hitachi Ltd | Fpga、fpgaの機能変更方法、および、それを利用した通信装置 |
WO2003007155A1 (fr) * | 2001-07-12 | 2003-01-23 | Ip Flex Inc. | Dispositif a circuit integre |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920627B2 (en) * | 2002-12-13 | 2005-07-19 | Xilinx, Inc. | Reconfiguration of a programmable logic device using internal control |
-
2004
- 2004-12-10 JP JP2004358785A patent/JP4569284B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002305438A (ja) * | 2001-04-05 | 2002-10-18 | Hitachi Ltd | Fpga、fpgaの機能変更方法、および、それを利用した通信装置 |
WO2003007155A1 (fr) * | 2001-07-12 | 2003-01-23 | Ip Flex Inc. | Dispositif a circuit integre |
Also Published As
Publication number | Publication date |
---|---|
JP2006164186A (ja) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4629768B2 (ja) | 並列化処理方法、システム、及びプログラム | |
KR101418969B1 (ko) | 프로세서 및 컴파일 방법 | |
GB2480285A (en) | Conditional compare instruction which sets a condition code when it is not executed | |
US9720793B2 (en) | Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads | |
Pantridge et al. | On the difficulty of benchmarking inductive program synthesis methods | |
JP5479942B2 (ja) | 並列化方法、システム、及びプログラム | |
JP3990332B2 (ja) | データ処理システム | |
US7266791B2 (en) | High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium | |
Guidolin et al. | Using high performance techniques to accelerate demand-driven hydraulic solvers | |
JPH0816429A (ja) | 並行プログラム作成支援装置及び並行プログラム作成方法並びに並行プログラム実行装置 | |
US9658938B2 (en) | Iterative test generation based on data source analysis | |
CN108700864A (zh) | 可编程逻辑控制器中网络攻击弹性控制的程序随机化 | |
JP4569284B2 (ja) | 集積回路のデバッグ方法、デバッグプログラム | |
JP2011253253A (ja) | コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム | |
Biallas et al. | {Counterexample-Guided} Abstraction Refinement for {PLCs} | |
US7296199B1 (en) | Systems and methods for defining and utilizing attributes of a processor resource | |
Di Carlo et al. | On the in-field test of the GPGPU scheduler memory | |
JP5082797B2 (ja) | ソフトウェア部分テストシステム | |
JP3641090B2 (ja) | プログラミング支援装置とその方法 | |
EP4002096B1 (en) | Design support apparatus and design support method | |
US20230229403A1 (en) | Method for generating source code | |
JP4633073B2 (ja) | データ処理システム | |
JPS63214804A (ja) | Plc用プロセツサ及びplc | |
JP5067705B2 (ja) | 異常系テスト支援装置、異常系テスト支援方法、及びプログラム | |
WO2012170675A2 (en) | Verification of computer-executable code generated from a model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091130 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100713 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100726 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4569284 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |