JP2006164186A - Method and program of debugging integrated circuit - Google Patents
Method and program of debugging integrated circuit Download PDFInfo
- Publication number
- JP2006164186A JP2006164186A JP2004358785A JP2004358785A JP2006164186A JP 2006164186 A JP2006164186 A JP 2006164186A JP 2004358785 A JP2004358785 A JP 2004358785A JP 2004358785 A JP2004358785 A JP 2004358785A JP 2006164186 A JP2006164186 A JP 2006164186A
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 90
- 230000015654 memory Effects 0.000 claims abstract description 162
- 239000011159 matrix material Substances 0.000 claims abstract description 103
- 230000003068 static effect Effects 0.000 claims abstract description 83
- 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)
Abstract
Description
本発明は、動的再構成可能なLSIにおけるデバッグ方法およびデバッグプログラムに関する。 The present invention relates to a debugging method and a debugging program in a dynamically reconfigurable LSI.
近年、LSIを構成する回路の一部をソフトウェアにより再構成できるハードウェアが提供されている。さらに、特許文献1においては、再構成する基本単位を、ゲートレベルからALUなどのある程度の規模の演算機能を備えた演算ユニットにして、複数種類の演算ユニットをマトリクス状に配置し、再構成に要する時間を短縮することが開示されている。複数の演算ユニットがマトリクス状に配置されたシステムは、それぞれの演算ユニットが並列に処理を実行できるので、膨大な数の並列処理に適したハードウェアリソースを備えたシステムと捉えることが可能である。
In recent years, hardware capable of reconfiguring a part of a circuit constituting an LSI by software has been provided. Furthermore, in
現時点において、非特許文献2に記載されたように、本出願人が開発した動的再構成可能なLSIにおいては、主にシーケンシャルな処理を担当するRISCプロセッサコア(以下、単に「プロセッサコア」と称する。)と、大規模なデータ処理や演算処理を担当する2次元アレイ構造の「DNA(distributed
Network Architecture)マトリクス」とが含まれる。この「DNAマトリクス」が動的に回路構成を切り換えられる部分に相当する。この動的再構成可能な部分(以下、「マトリクス」と称する。)は、2次元アレイ状に、演算器やメモリなどの回路構成要素が整列した構造をとっている。これらの回路構成要素の接続関係を変更することで、並列演算や演算の組み合わせ(積和演算)を自由に設定することが可能である。
At present, as described in Non-Patent
Network Architecture) matrix ”. This “DNA matrix” corresponds to a portion where the circuit configuration can be dynamically switched. This dynamically reconfigurable portion (hereinafter referred to as “matrix”) has a structure in which circuit components such as arithmetic units and memories are arranged in a two-dimensional array. By changing the connection relationship of these circuit components, it is possible to freely set a parallel operation or a combination of operations (product-sum operation).
特許文献2に記載された動的再構成可能なLSIでは、上記マトリクスのコンフィグレーションを同時に複数(たとえば4つ)記憶しておき、それを切り替えながら、高速にアプリケーションを実行する。たとえば、図3に示すように、マトリクス内部に記憶可能なコンフィグレーションとして、1つの実行バンクのコンフィグレーション、および、3つのバックグラウンドバンクのコンフィグレーションが存在し、それぞれのデータが、各バンクの記憶領域に、外部メモリ等から転送される。
In the dynamically reconfigurable LSI described in
実際に、マトリクスが動作しているときに、実行バンクにコンフィグレーションのデータを書き込むと、処理内容に影響を与える。そこで、通常は、何れかの・バンクにコンフィグレーションのデータが書き込まれ、必要に応じて、バックグラウンドバンクのコンフィグレーションのデータを、実行バンクに転送する。 Actually, when configuration data is written to the execution bank while the matrix is operating, the processing contents are affected. Therefore, normally, the configuration data is written in any bank, and the background bank configuration data is transferred to the execution bank as necessary.
コンフィグレーションの切り替えには、プロセッサコア上で実行されるプログラムの制御によって、マトリクスに指示が与えられるもの、および、マトリクス内の内部要因によって自律的に行われるものが存在する。ここで、前者を他律ダイナミックリコンフィグレーション、後者を自律ダイナミックリコンフィグレーションと称する。
設計者は、上記バンクにロードさせて、マトリクスを動作させるための回路情報を作成するが、その際に、回路が所望のように動作しているかを調べ、かつ、不具合な箇所を訂正するデバッグを通常行う。 The designer loads the above bank and creates circuit information for operating the matrix. At that time, the designer checks whether the circuit is operating as desired, and corrects the defective part. Usually do.
回路情報の作成は、たとえば、以下の手順により実現される。
(1)設計者は、データの流れに沿って、マトリクス中の論理回路を構成する回路要素(PE:Processing
element)をエディタ上に配置する。これにより、配置されたPEとその間の論理的接続情報とを含む一次ファイルが生成される。
(2)次いで、一次ファイルは、コンパイラにより、実際にマトリクスを構成する特定の位置の回路要素および特定の位置の回路要素間の物理的配線がなされた情報を含む二次ファイルに変換される。この二次ファイルの情報が、バンクにロードされることで、マトリクスは動作することが可能となる。
The creation of the circuit information is realized by the following procedure, for example.
(1) The designer follows the data flow to configure circuit elements (PE: Processing) constituting the logic circuit in the matrix.
element) on the editor. As a result, a primary file including the arranged PEs and logical connection information therebetween is generated.
(2) Next, the primary file is converted by the compiler into a secondary file including information on the circuit elements at specific positions that actually constitute the matrix and the physical wiring between the circuit elements at the specific positions. The information of the secondary file is loaded into the bank, so that the matrix can operate.
デバッグを実現するデバッガは、プログラムの実行を一時停止させ、その状態で主メモリからデバッグ情報、つまり、コンフィグレーションのソースデータおよびコンフィグレーションデータを取得し、かつ、マトリクスの実行バンクからコンフィグレーションデータを読み出して、これらを照合するなど必要な処理を実行する。また、デバッガは、マトリクス中のレジスタ値の読み取り、設定や、マトリクスのブレークポイントの設定などを可能にしている。 The debugger that realizes debugging pauses program execution, and in that state, obtains debugging information from the main memory, that is, configuration source data and configuration data, and configuration data from the execution bank of the matrix. Read out and perform necessary processing such as collating them. The debugger also allows reading and setting of register values in the matrix, setting of matrix breakpoints, and the like.
上述したように、本出願人が考案した動的再構成可能LSIにおいては、プロセッサコア上を稼動しているプログラムの働きによってコンフィグレーションを変更する他律ダイナミックリコンフィグレーションと、マトリクス自体が、コンフィグレーションを変更する自律ダイナミックリコンフィグレーションとが存在する。 As described above, in the dynamically reconfigurable LSI devised by the present applicant, the other-order dynamic reconfiguration in which the configuration is changed by the operation of the program running on the processor core and the matrix itself are configured. And autonomous dynamic reconfiguration that changes the configuration.
他律ダイナミックリコンフィグレーションに関しては、プロセッサコアがコンフィグレーションの変更を把握しているため、どのバンクにどのコンフィグレーションを格納しているかを把握するテーブル(バンク情報テーブル)を主メモリに保持しておくことにより、プログラムの実行停止時に、実行バンクにどのコンフィグレーションが格納されているかを知ることが可能である。 For other-order dynamic reconfiguration, the processor core keeps track of configuration changes, so a table (bank information table) that keeps track of which configuration is stored in which bank is held in the main memory. It is possible to know which configuration is stored in the execution bank when the execution of the program is stopped.
これに対して、自律ダイナミックリコンフィグレーションは、マトリクス自身がそのコンフィグレーションを変更するため、プロセッサコアが、外部からその発生を知ることができない。このため、主メモリのバンク情報テーブルを参照して、実行バンクに格納されているコンフィグレーションを調べても、実際に実行バンクに格納されたコンフィグレーションと異なる場合があるという問題点があった。 On the other hand, in the autonomous dynamic reconfiguration, since the matrix itself changes the configuration, the processor core cannot know the occurrence from the outside. Therefore, even if the configuration stored in the execution bank is checked with reference to the bank information table of the main memory, there is a problem that the configuration actually stored in the execution bank may be different.
たとえば、プロセッサコアが、コンフィグレーションメモリにロードした全てのコンフィグレーションデータの履歴を記憶しておき、プログラムの実行停止時に、実際に実行バンクに格納されていたコンフィグレーションデータと、履歴に残っている全てのコンフィグレーションデータとのマッチングを実行して、実行バンクに格納されたコンフィグレーションを特定することも考えられる。しかしながら、全てのコンフィグレーショデータの履歴を残すことは、膨大なメモリ容量が必要になり、場合によっては、メモリが破綻する可能性もある。また、マッチングに多大な時間を必要とするという問題点もある。 For example, the processor core stores the history of all the configuration data loaded in the configuration memory, and when the program execution is stopped, the configuration data that was actually stored in the execution bank and remains in the history It is also conceivable to perform matching with all configuration data and specify the configuration stored in the execution bank. However, leaving a history of all configuration data requires a huge memory capacity, and in some cases, the memory may fail. Another problem is that much time is required for matching.
本発明は、メモリ容量を増大させることなく、かつ、迅速に、動的再構成可能LSIにおける現在のコンフィグレーションを特定するデバッグ方法およびデバッグ用プログラムを提供することを目的とする。 An object of the present invention is to provide a debugging method and a debugging program for quickly identifying a current configuration in a dynamically reconfigurable LSI without increasing the memory capacity.
本発明の目的は、主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップと、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップと、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブルにしたがって、バンク情報テーブルからコンフィグレーションデータを読み出すステップと、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップと、
前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えたことを特徴とするデバッグ方法により達成される(請求項1:第1の手法)。
An object of the present invention is to change the connection between circuit components of a processor core that mainly performs sequential processing, and data processing and calculation, and that has a two-dimensional array structure. A dynamically reconfigurable LSI comprising a dynamically changeable matrix,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified when the load instruction and the configuration change instruction are executed. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data and its source data stored in the main memory, and the configuration stored in the execution bank of the configuration memory A debugging method for a debugger that acquires data,
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Obtaining the bank-derived value from the matrix when the execution of the program is stopped;
Comparing the stored static variables with bank-derived values and determining that an autonomous dynamic reconfiguration has occurred if they do not match; and
When it is determined that the autonomous dynamic reconfiguration has not occurred, reading the configuration data from the bank information table according to the bank information table;
When it is determined that the autonomous dynamic reconfiguration has occurred, reading the configuration data indicated by the bank-derived value in the bank information table;
And updating the static variable and the bank information table so as to match the bank-derived value (claim 1: first method).
本発明によれば、他律ダイナミックリコンフィグレーションの際に、どのバンクから実行バンクにコンフィグレーションをコピーしたか、つまり、データの供給元を示す静的変数を、主メモリに記憶しておき、プログラムの停止時に、コンフィグレーションメモリにあるバンク由来値と静的変数とを比較することで、自律ダイナミックリコンフィグレーションの発生を検出する。自律ダイナミックリコンフィグレーションが生じていると判断された場合には、コンフィグレーションメモリ中のメモリ由来値にしたがって、そのバンクのデータを取得することができる。 According to the present invention, at the time of other-order dynamic reconfiguration, from which bank the configuration was copied to the execution bank, that is, a static variable indicating the data supply source is stored in the main memory, When the program stops, the occurrence of autonomous dynamic reconfiguration is detected by comparing the bank-derived value in the configuration memory with a static variable. When it is determined that autonomous dynamic reconfiguration has occurred, the data of the bank can be acquired according to the memory-derived value in the configuration memory.
好ましい実施態様においては、さらに、前記プロセッサコアによるロード命令の実行時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えている(請求項2:第2の手法)。
In a preferred embodiment, the step of obtaining the bank-derived value from the matrix upon execution of a load instruction by the processor core;
Comparing the stored static variables with bank-derived values and, if they do not match, updating the static variables and the bank information table to match the bank-derived values. (Claim 2: second method).
この実施態様においては、さらに、コンフィグレーションメモリのバンクにデータをロードする際に、バンク由来値と静的変数とを比較することで、自律ダイナミックリコンフィグレーションの発生を検出している。ここで自律ダイナミックリコンフィグレーションが発生したと判断された場合には、あたかも他律ダイナミックリコンフィグレーションが生じたのと同様に、静的変数およびバンク情報テーブルを更新することで、実行バンクに格納されたコンフィグレーションを適切に把握する。 In this embodiment, when data is loaded into the configuration memory bank, the occurrence of autonomous dynamic reconfiguration is detected by comparing the bank-derived value with a static variable. If it is determined here that autonomous dynamic reconfiguration has occurred, it is stored in the execution bank by updating static variables and the bank information table, just as if other-order dynamic reconfiguration has occurred. Appropriately understand the configured configuration.
たとえば、前記静的変数およびバンク情報テーブルを更新するステップは、静的変数の値としてバンク由来値を記憶するステップと、バンク情報テーブル中、前記実行バンクに関連付けてバンク由来値を格納するステップと、を有する(請求項3)。 For example, the step of updating the static variable and bank information table includes storing a bank-derived value as a value of the static variable, and storing a bank-derived value in association with the execution bank in the bank information table; (Claim 3).
また、本発明の目的は、主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップと、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップと、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、を備えたことを特徴とするデバッグ方法により達成される(請求項4:第3の手法)。
Another object of the present invention is to change the connection between circuit components of a two-dimensional array structure, which is mainly in charge of data processing and computation, and a processor core that executes sequential processing. A dynamically reconfigurable LSI comprising a matrix capable of dynamically changing the configuration,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified when the load instruction and the configuration change instruction are executed. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data and its source data stored in the main memory, and the configuration stored in the execution bank of the configuration memory A debugging method for a debugger that acquires data,
Generating a pattern for specifying the configuration data to be loaded when executing the load instruction of the processor core, and storing the pattern in association with the bank to be loaded in the main memory;
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Reading the configuration data stored in the execution bank of the configuration memory when the execution of the program is stopped;
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank and identifying a bank associated with a matching or most similar pattern;
And reading the configuration data indicated by the information of the specified bank in the bank information table. This is achieved by a debugging method (claim 4: third method).
本発明によれば、主メモリにおいてバンクに関連付けられて記憶されたコンフィグレーションデータのパターンと、実際に実行バンクから読み出されたコンフィグレーションのデータのパターンとを比較して、実行バンクに格納されたコンフィグレーションを判断している。この手法を利用すれば、コンフィグレーションデータのパターンは、バンクの数だけ持てばよく、多大なメモリの容量を必要としない。また、請求項1ないし3にしたがった方法により検出できないダイナミックリコンフィグレーションのパターン(コンフィグレーションデータのロードの後、自律ダイナミックリコンフィグレーションが2回以上発生し、かつ、実行バンクには、当初の供給元と同じバンクを供給元とするコンフィグレーションデータが格納されている場合)でも、本発明を適用することで、正しいコンフィグレーションを特定することが可能となる。
According to the present invention, the configuration data pattern stored in association with the bank in the main memory is compared with the configuration data pattern actually read from the execution bank, and stored in the execution bank. Judging the configuration. If this method is used, it is sufficient to have as many configuration data patterns as the number of banks, and a large memory capacity is not required. In addition, a dynamic reconfiguration pattern that cannot be detected by the method according to
より好ましい実施態様においては、さらに、前記特定されたバンクが実行バンクであるか否かを判断するステップと、
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップと、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えている(請求項5)。
In a more preferred embodiment, the method further comprises the step of determining whether the identified bank is an execution bank;
When the specified bank is an execution bank, reading configuration data indicated by the execution bank in the bank information table;
When the specified bank is other than the execution bank, reading the configuration data indicated by the information of the specified bank in the bank information table;
And updating the bank information table so as to be consistent with the information of the specified bank.
また、別の好ましい実施態様においては、さらに、前記プロセッサコアによるロード命令実行時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、
前記静的変数とバンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えている(請求項6:第4の手法)。
In another preferred embodiment, the step of obtaining the bank-derived value from the matrix when executing a load instruction by the processor core; and
Comparing the stored static variables with bank-derived values and, if they do not match, updating the static variables and bank information table to match the bank-derived values;
Reading the configuration data stored in the execution bank of the configuration memory when the static variable and the bank-derived value match; and
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank and identifying a bank associated with a matching or most similar pattern;
Updating the bank information table so as to be consistent with the information of the specified bank (Claim 6: Fourth Method).
本実施の形態によれば、さらに、コンフィグレーションデータのロードの後、自律ダイナミックリコンフィグレーションが2回以上発生し、かつ、実行バンクには、当初の供給元と同じバンクを供給元とするコンフィグレーションデータが格納され、かつ、同じバンクにコンフィグレーションデータがロードされた場合であっても、適切にコンフィグレーションを特定することが可能である。 Further, according to the present embodiment, after the configuration data is loaded, autonomous dynamic reconfiguration occurs more than once, and the execution bank has a configuration in which the same bank as the original supply source is the supply source. Even when configuration data is stored and configuration data is loaded in the same bank, it is possible to specify the configuration appropriately.
たとえば、前記パターンを生成するステップは、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を含む存在パターンを生成する(請求項7)。或いは、前記パターンを生成するステップは、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を符号化した存在パターンを生成しても良い(請求項8)。後者を採用することで、パターンの比較処理を著しく短縮することができる。 For example, the step of generating the pattern generates a presence pattern including a bit string indicating whether or not each circuit component in the matrix is used. Alternatively, the step of generating the pattern may generate an existing pattern in which a bit string indicating whether or not each of the circuit components in the matrix is used is encoded (claim 8). By employing the latter, the pattern comparison process can be significantly shortened.
また、前記パターンを生成するステップは、前記コンフィグレーションデータの少なくとも部分を符号化するステップを有していても良い(請求項9)。ここでは、コンフィグレーションデータ全体を符号化しても良いし、コンフィグレーションデータ中、マトリクスにおいて変更されるコンフィグレーションに相当する部分を除外して、残りの部分を符号化しても良い。 The step of generating the pattern may include a step of encoding at least a part of the configuration data. Here, the entire configuration data may be encoded, or the portion corresponding to the configuration to be changed in the matrix may be excluded from the configuration data and the remaining portion may be encoded.
また、本発明の目的は、主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップ、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップ、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブルにしたがって、バンク情報テーブルからコンフィグレーションデータを読み出すステップ、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップ、並びに、
前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させることを特徴とするデバッグ用プログラムによっても達成される(請求項10)。
Another object of the present invention is to change the connection between circuit components of a two-dimensional array structure, which is mainly in charge of data processing and computation, and a processor core that executes sequential processing. A dynamically reconfigurable LSI comprising a matrix capable of dynamically changing the configuration,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified when the load instruction and the configuration change instruction are executed. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data and its source data stored in the main memory, and the configuration stored in the execution bank of the configuration memory As a debugger for acquiring data, in order to operate the computer, a debugging program that can be read by the computer,
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Obtaining the bank-derived value from the matrix when the execution of the program is stopped;
Comparing the stored static variables with bank-derived values and determining that an autonomous dynamic reconfiguration has occurred if they do not match;
When it is determined that the autonomous dynamic reconfiguration has not occurred, reading the configuration data from the bank information table according to the bank information table;
When it is determined that the autonomous dynamic reconfiguration has occurred, reading the configuration data indicated by the bank-derived value in the bank information table; and
The present invention is also achieved by a debugging program that executes a step of updating the static variable and the bank information table so as to be consistent with the bank-derived value (claim 10).
好ましい実施態様においては、さらに、前記コンピュータに、
前記プロセッサコアによるロード命令の実行時に、前記マトリクスから前記バンク由来値を取得するステップ、並びに、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させる(請求項11)。
In a preferred embodiment, the computer further includes:
Obtaining the bank-derived value from the matrix upon execution of a load instruction by the processor core; and
The stored static variable is compared with the bank-derived value, and if they do not match, the step of updating the static variable and the bank information table so as to be consistent with the bank-derived value is executed. Item 11).
また、好ましい実施態様においては、前記静的変数およびバンク情報テーブルを更新するステップにおいて、前記コンピュータに、
静的変数の値としてバンク由来値を記憶するステップ、並びに、
バンク情報テーブル中、前記実行バンクに関連付けてバンク由来値を格納するステップを実行させる(請求項12)。
In a preferred embodiment, in the step of updating the static variable and bank information table, the computer
Storing a bank-derived value as the value of a static variable, and
A step of storing a bank-derived value in association with the execution bank in the bank information table is executed (claim 12).
さらに、本発明の目的は、主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップ、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップ、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップ、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップを実行させることを特徴とするデバッグ用プログラムによっても達成される。
Furthermore, an object of the present invention is to provide a processor core that mainly performs sequential processing, and data processing and calculation, and by changing the connection between circuit components of the two-dimensional array structure, A dynamically reconfigurable LSI comprising a matrix capable of dynamically changing the configuration,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified in accordance with the execution of the load instruction and the configuration change instruction. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data stored in the main memory and its source data, and the configuration stored in the execution bank of the configuration memory As a debugger for acquiring data, in order to operate the computer, a debugging program that can be read by the computer,
Generating a pattern for specifying the configuration data to be loaded when executing the load instruction of the processor core, and storing the pattern in association with the bank to be loaded in the main memory;
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Reading configuration data stored in an execution bank of the configuration memory when the execution of the program is stopped;
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank to identify a bank associated with a matching or most similar pattern; and
This is also achieved by a debugging program that executes a step of reading configuration data indicated by the specified bank information in the bank information table.
好ましい実施態様においては、さらに、前記コンピュータに、
前記特定されたバンクが実行バンクであるか否かを判断するステップ、
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップ、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを、実行させる(請求項14)。
In a preferred embodiment, the computer further includes:
Determining whether the identified bank is an execution bank;
When the specified bank is an execution bank, reading configuration data indicated by the execution bank in the bank information table;
When the specified bank is other than the execution bank, reading configuration data indicated by the information of the specified bank in the bank information table; and
The step of updating the bank information table so as to be consistent with the information of the specified bank is executed (claim 14).
別の好ましい実施態様においては、さらに、前記コンピュータに、
前記プロセッサコアによるロード命令実行時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップ、
前記静的変数とバンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを実行させる(請求項15)。
In another preferred embodiment, the computer further comprises:
Obtaining the bank-derived value from the matrix when a load instruction is executed by the processor core;
Comparing the stored static variables with bank-derived values and, if they do not match, updating the static variables and bank information table to match the bank-derived values;
Reading the configuration data stored in the execution bank of the configuration memory when the static variable and the bank-derived value match; and
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank to identify a bank associated with a matching or most similar pattern; and
The step of updating the bank information table so as to be consistent with the information of the specified bank is executed (claim 15).
前記パターンを生成するステップにおいて、前記コンピュータに、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を含む存在パターンを生成するステップを実行させても良い(請求項16)。或いは、前記パターンを生成するステップにおいて、前記コンピュータに、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を符号化した存在パターンを生成するステップを実行させても良い(請求項17)。また、前記パターンを生成するステップにおいて、前記コンピュータに、前記コンフィグレーションデータの少なくとも部分を符号化するステップを実行させても良い(請求項18)。 The step of generating the pattern may cause the computer to execute a step of generating a presence pattern including a bit string indicating whether or not each of the circuit components in the matrix is used. . Alternatively, the step of generating the pattern may cause the computer to execute a step of generating a presence pattern in which a bit string indicating whether or not each circuit component in the matrix is used is encoded ( Claim 17). Further, in the step of generating the pattern, the computer may be caused to execute a step of encoding at least a part of the configuration data.
本発明によれば、メモリ容量を増大させることなく、かつ、迅速に、動的再構成可能LSIにおける現在のコンフィグレーションを特定するデバッグ方法およびデバッグ用プログラムを提供することが可能となる。 According to the present invention, it is possible to provide a debugging method and a debugging program for specifying the current configuration in a dynamically reconfigurable LSI quickly without increasing the memory capacity.
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる回路設計システムの概略を示すブロックダイヤグラムである。本実施の形態においては、上記特許文献1および非特許文献2に記載された、プロセッサコアおよびマトリクスからなる、動的再構成可能なLSIを設計するように構成されている。しかしながら、図1においては、基本的に、マトリクスを設計するための構成要素を詳細に示す。
Embodiments of the present invention will be described below with reference to the accompanying drawings. FIG. 1 is a block diagram showing an outline of a circuit design system according to the present embodiment. The present embodiment is configured to design a dynamically reconfigurable LSI composed of a processor core and a matrix described in
図1に示すように、本実施の形態にかかる回路設計システム10は、設計者の入力にしたがって、たとえばC言語の記述により、プロセッサコアおよびマトリクスのアルゴリズムを生成するアルゴリズム設計部12と、アルゴリズム設計部12によるアルゴリズムを、プロセッサコアで処理すべきもの、或いは、マトリクスで処理すべきものを判断し、アルゴリズムを分解するプロファイラ14と、プロセッサコアで処理すべきアルゴリズムをコンパイルする第1のコンパイラ16と、前記マトリクスで処理すべきアルゴリズムに相当する、データフローを拡張されたC言語で記述されたDFC(Data Flow C)を受け入れて、これに基づき、後述するコンフィグレーションファイルを生成するDFCコンパイラ18と、コンフィグレーションファイルに基づいて、マトリクスを構成する回路要素(プロセッシングエレメント:PE)を二次元アレイ上に配置する第2のコンパイラ20と、第1のコンパイラおよび第2のコンパイラによりそれぞれ生成された、プロセッサコアのソースコード、および、マトリクスのPEの配置配線情報とに基づいて、シミュレート或いはエミュレートを実行するシミュレータ/エミュレータ22と、シミュレート或いはエミュレートの結果に基づき、マトリクスを、前記コンフィグレーションレベルでデバッグするデバッガ24と備えている。
As shown in FIG. 1, a
設計者は、入力装置(図示せず)を操作して、LSIにて実現することを求めるアルゴリズムをC言語で記述する。このアルゴリズムのC記述(図1の符号101参照)は、プロファイラ14に与えられ、プロファイラ14が、そのアルゴリズム中のどの関数がデータフロー向きか(処理の負荷が重いか)を調べる。データフロー向きの関数に相当する記述(符号103参照)は、DFCコンパイラ18に入力される。DFCコンパイラ18は、マトリクスのためのC記述に基づいて、コンフィグレーションファイル(符号104参照)を生成する。コンフィグレーションファイルにおいては、アルゴリズムを実現する、演算器(ALU、レジスタなど)とその間の接続を含むデータフローが形成される。
A designer operates an input device (not shown) to describe an algorithm that is required to be realized by LSI in C language. The C description of this algorithm (see
また、アルゴリズムからDFCの関数を除いた部分は、第1のコンパイラ16によりコンパイルされる。その際に、DFCコンパイラ18で生成された、ラッパ(wrapper)関数(符号105参照)も、第1のコンパイラ16においてコンパイルされる。
Further, the
DFCコンパイラ18において生成されたコンフィグレーションファイル104は、第2のコンパイラ20に入力される。第2のコンパイラは、コンフィグレーションにしたがって、マトリクスを構成する実際のPE間の配線を決定する。
The
このようにして生成された、コンパイルされたプロセッサコアのC記述、コンフィグレーションのラッパおよびマトリクスを構成するPEの配置配線情報がリンクされて、オブジェクトコード106が出来上がる。
The
シミュレータ/エミュレータ22は、プロセッサコアおよびマトリクスを含むLSIの動作を模擬することができる。シミュレータ/エミュレータ22は、第1のコンパイラ16により生成されたオブジェクトコードと、マトリクスを構成するPEの配置配線情報とを入力として、LSIの実行サイクル数、マトリクスやプロセッサコアの動作などを詳細に解析することができる。
The simulator / emulator 22 can simulate the operation of an LSI including a processor core and a matrix. The simulator / emulator 22 inputs the object code generated by the
デバッガ24は、マトリクスをコンフィグレーションのレベルでデバッグすることができる。また、図示していないが、デバッガ24は、プロセッサコアのC記述、或いは、アセンブリ言語レベルでのデバッグも可能である。デバッガ24においては、プロセッサコア、マトリクスの双方に対して、条件付のブレークポイントを設定することができる。
The
このように構成された回路設計システムにて設計されるLSIについて簡単に説明する。図2は、本実施の形態にかかるLSIの概略を示すブロックダイヤグラムである。図2に示すように、このLSIは、プロセッサコア30とマトリクス32を有し、マトリクス内のPE(たとえば、符号38)の間の接続を変更することにより、動的再構成可能となる。
An LSI designed by the circuit design system configured as described above will be briefly described. FIG. 2 is a block diagram showing an outline of the LSI according to the present embodiment. As shown in FIG. 2, this LSI has a
マトリクス32は、PE38にデータを与えるためのロード・バッファ34、演算結果を一時的に記憶するストアバッファ36、複数のPEの配置配線情報を記憶するコンフィグレーションメモリ40、および、LSI外部からマトリクス32に直接与えられる命令などの入出力を制御するダイレクトI/O42を有する。
The
プロセッサコア30は、たとえば、32ビットRISCであり、汎用レジスタ(図示せず)を内蔵し、また、命令キャッシュ44やデータキャッシュ44に接続される。また、LSIは、高速演算に不可欠な広帯域のデータ入出力のため、クロスバ・スイッチ回路の一種であるスイッチ・バス48と、PSIインタフェース、DDR・SDRAMインタフェース、DMAコントローラなどを含む各種インタフェース/コントローラ50とを有する。
The
LSIにおいては、プロセッサの外部メモリに記憶されたコンフィグレーションデータ(つまり、本実施の形態にかかる回路設計システムで設計された、マトリクスを構成するPEの配置配線情報)は、コンフィグレーションメモリ40にロードされ、そのコンフィグレーションデータにしたがって、マトリクス32内のPEの接続が変更される(つまり、マトリクスが書き換えられる)。
In an LSI, configuration data stored in an external memory of a processor (that is, placement and routing information of PEs constituting a matrix designed by the circuit design system according to the present embodiment) is loaded into the
図3は、コンフィグレーションメモリ40の構成をより詳細に示すブロックダイヤグラムである。図3に示すように、本実施の形態においては、4種類のコンフィグレーションデータを記憶することができる。図3において、バンク0(ゼロ)は実行バンクであり(符号300参照)、実行バンク300に格納されたコンフィグレーションが、マトリクス40の配置配線情報として利用される。
FIG. 3 is a block diagram showing the configuration of the
また、バンク1〜バンク3はバックグラウンドバンクであり(符号301〜303参照)、マトリクスにおけるコンフィグレーションの切り替え(他律ダイナミックリコンフィグレーション、および、自律ダイナミックリコンフィグレーション)に伴って、選択回路304を経て、実行バンクであるバンク0にロードされて、配置配線情報として利用され得る状態となる。
他律ダイナミックリコンフィグレーションの場合には、通常、バンク1〜バンク3に格納されている、PEの配置配線情報(コンフィグレーションデータ)の何れかが、プロセッサコア上を稼動しているプログラムの働きによって、次のカレントコンフィグレーションとなる。ここに、カレントコンフィグレーションとは、その時点で、実行バンク(バンク0)に格納され、マトリクスの配置配線に反映されているコンフィグレーションをいう。
In the case of other-order dynamic reconfiguration, usually, any of the PE placement and routing information (configuration data) stored in
本実施の形態にかかるデバッグは、コンフィグレーションデータとともに、コンフィグレーションのソースデータ(以下、「コンフィグレーションのデバッグ情報」或いは単に「デバッグ情報」と称する。)を、主メモリに配置し、コンフィグレーションデータがバンクにロードされる際に、そのコンフィグレーションのデバッグ情報領域へのポインタを、バンク毎のテーブル(以下、「バンク情報テーブル」と称する。)に格納することにより実現される。このようなデバッグ情報領域を持つことを支援するプロセッサコアのプログラムのライブラリをデバッグ用制御ライブラリと予備、通常動作用制御ライブラリの機能に加えてデバッグ用処理を持つ。デバッグが終了したプログラムは、通常動作用制御ライブラリを使って余分な処理を経ることなく実行することができる。その一方、デバッグ用制御ライブラリを使用すると、状態によって実行を止め、実行途中の状態をモニターし、また、状態を変更するなどデバッグ作業を行いつつ、アプリケーションを動作させることができる。 In debugging according to the present embodiment, configuration source data (hereinafter referred to as “configuration debug information” or simply “debug information”) is arranged in the main memory together with the configuration data, and the configuration data. Is loaded into a bank, the pointer to the debug information area of the configuration is stored in a table for each bank (hereinafter referred to as “bank information table”). In addition to the functions of the control library for debugging and the control library for standby and normal operation, the library of the processor core program that supports having such a debug information area has debugging processing. The program that has been debugged can be executed without extra processing using the control library for normal operation. On the other hand, if the debug control library is used, it is possible to stop the execution depending on the state, monitor the state in the middle of execution, and operate the application while performing a debugging operation such as changing the state.
以下、制御ライブラリについて簡単に説明する。マトリクスのバンクへの読み込みや、コンフィグレーションの切り替えは、プロセッサコアが、I/Oポートを介することで実現される。プロセッサコアが行うこれらの操作は、ライブラリ関数の中に記述される。これらの操作が記述されたライブラリ関数を含むライブラリを制御ライブラリと称する。制御ライブラリに含まれる関数には、たとえば、以下のようなものが含まれる。 The control library will be briefly described below. Reading the matrix into the bank and switching the configuration are realized by the processor core via the I / O port. These operations performed by the processor core are described in a library function. A library including a library function in which these operations are described is referred to as a control library. Examples of the functions included in the control library include the following.
マトリクス_load(int bank):指定のバンクへのコンフィグレーションデータの読み込み
マトリクス_change(int bank):プロセッサコアの制御で他律コンフィグレーションを実行し、カレントコンフィグレーション(バンク0)を、指定のバンクのコンフィグレーションに切り換える
デバッグの際には、上述したように、デバッグ用処理を含むデバッグ用制御ライブラリが使用され、通常の動作の際には、デバッグ用処理が取り除かれた通常動作用制御ライブラリが使用される。
Matrix_load (int bank): Reading configuration data to the specified bank Matrix_change (int bank): Executing the other-order configuration under the control of the processor core and changing the current configuration (bank 0) to the specified bank Switch to configuration As described above, the debug control library including the debug process is used for debugging, and the normal operation control library with the debug process removed is used for normal operation. Is done.
図4は、本実施の形態にかかるデバッガ、および、デバッガに関連する部材(主メモリ等)の構成を示すブロックダイヤグラムである。図4に示すように、デバッガ24は、デバッグ用モニター52とコンフィグレーション読み込み部54と、デバッグ用モニター52に出力すべきコンフィグレーションを決定するコンフィグレーション決定部56とを有する。
FIG. 4 is a block diagram showing the configuration of the debugger according to the present embodiment and members (main memory, etc.) related to the debugger. As shown in FIG. 4, the
デバッグ用モニター52は、実行を一時的に停止させた状態のメモリ空間からデバッグのための情報を読み取り、また、マトリクス中のレジスタ値、設定を読み取ることができる。また、設計者は、デバッグ用モニター52に指示を与えることで、マトリクス中のレジスタの設定やブレークポイントの設定をすることができる。
The debug monitor 52 can read information for debugging from the memory space in which execution is temporarily stopped, and can read register values and settings in the matrix. In addition, the designer can set registers and breakpoints in the matrix by giving instructions to the
コンフィグレーション読み込み部54は、実行を途中で止められたアプリケーションの現在状態を知るために、コンフィグレーションデータを読み込むことができる。本実施の形態においては、コンフィグレーション読み込み部54は、マトリクス32のコンフィグレーションメモリ40に格納されたバンク0のコンフィグレーションデータを読み込み、かつ、主メモリ60中のバンク情報テーブル62において、バンク0に対応付けられたコンフィグレーションのコンフィグレーションデータおよびデバッグ情報を、主メモリ60から読み出して、これらを比較し、正しくコンフィグレーションがロードされているかを調べることが可能である。
The
本実施の形態においては、プロセッサコア30は、制御ライブラリ中の関数「マトリクス_load」を利用して、たとえば、主メモリ60から、所定のコンフィグレーションデータ(たとえば、コンフィグレーション名=A(符号62−1参照))を読み出して、コンフィグレーションメモリ40の所望のバンク(たとえば、バンク1)にロードする。また、この動作に伴って、バンク情報テーブル66中、バンク1について、コンフィグレーションデータ(コンフィグレーション名=A)をロードしたことを示すポインタを書き込むことで、バンク情報テーブル66を更新する。
In the present embodiment, the
また、他律ダイナミックリコンフィグレーションが発生した場合には、制御ライブラリ中の関数「マトリクス_change」を利用して、バンク1〜3のいずれかのバンクに格納されたコンフィグレーションデータを、バンク0にコピーする。この場合にも、バンク0について、バンク情報テーブル66が更新される。このように、他律ダイナミックリコンフィグレーションにおいては、バンク情報テーブル66に記載された、各バンクに格納されたコンフィグレーションを示す情報(たとえば、コンフィグレーション名)と、実際の、コンフィグレーションメモリ40の各バンクに格納されたコンフィグレーションデータとは一致する。
Also, when other-order dynamic reconfiguration occurs, the configuration data stored in any one of
しかしながら、自律ダイナミックリコンフィグレーションにおいては、マトリクス32において、自律的に、バンク1〜3のうちのコンフィグレーションが、バンク0に読み込まれ、コンフィグレーションの切り替えが実行されてしまうため、割り込みなどの設定をしない限り、いつ、どのコンフィグレーション切り替えが発生したかを、外部から知ることができないという問題点がある。
However, in the autonomous dynamic reconfiguration, in the
デバッガ24において、デバッグ中のアプリケーションが何らかの要因で停止したときに、自律ダイナミックリコンフィグレーションが発生していると、バンク情報テーブルのバンク0に関連付けられた情報(コンフィグレーション名)は意味の無いものになってしまう。
In the
本実施の形態においては、コンフィグレーション読み込み部54は、コンフィグレーションメモリ40のバンク0に格納されたコンフィグレーションデータが、バンク1〜3の何れかからロードされたかが書かれている、コンフィグレーションメモリ40中の特定のフィールドからのデータも読み込むことができるように構成されている。これにより、自律ダイナミックリコンフィグレーションが発生したことを判断し、ロード元が示すバンクに格納されたコンフィグレーション名を有するデバッグ情報を、主メモリ60から読み出す。このような構成を採用すれば、自律ダイナミックリコンフィグレーションが発生した場合であっても、正しいコンフィグレーションのデバッグ情報を取得することが可能である。
In the present embodiment, the
しかしながら、以下の場合には、上述した構成を採用しても、正しいコンフィグレーションのデバッグ情報を取得することができない。
(1)自律ダイナミックリコンフィグレーションが発生した後に、プロセッサコアにより、命令「マトリクス_load」が実行された場合
(2)自律ダイナミックリコンフィグレーションが複数回発生し、カレントコンフィグレーションには、元のバンクのコンフィグレーションデータが戻ったものの、途中で、命令「マトリクス_load」が実行された場合
そこで、以下、これらの問題点を解決するためのデバッガ24の構成について詳細に説明する。
However, in the following cases, even if the configuration described above is adopted, debug information with a correct configuration cannot be acquired.
(1) When the instruction “matrix_load” is executed by the processor core after the occurrence of autonomous dynamic reconfiguration (2) The autonomous dynamic reconfiguration occurs multiple times, and the current configuration includes the original bank In the case where the instruction “matrix_load” is executed in the middle of the process, the configuration of the
[第1の手法]
まず、自律ダイナミックリコンフィグレーションが発生した場合のコンフィグレーションメモリの各バンクの状態などについて説明する。図5(a)、(b)は、それぞれ、コンフィグレーションを生じるイベント、コンフィグレーションメモリに格納されたコンフィグレーションデータ名、および、バンク情報テーブルの例を示す図である。
[First method]
First, the state of each bank of the configuration memory when autonomous dynamic reconfiguration occurs will be described. FIGS. 5A and 5B are diagrams showing an example of an event that causes a configuration, a configuration data name stored in the configuration memory, and a bank information table, respectively.
図5において、「load」、「自律」、「他律」と記載された矢印型のブロック(たとえば、符号501参照)は、コンフィグレーションメモリの各バンクの状態を変化させる3つのイベントを並べており、ある時刻には、3つのうち1つのイベントのみが発生可能である。図5において、ハッチングを付した矢印ブロック(たとえば、符号602参照)が、その時刻に発生したイベントを示す。図5(a)においては、その時刻に他律ダイナミックリコンフィグレーションが発生し、その際にバンク1が対象となったことを示す。
In FIG. 5, arrow-shaped blocks (for example, see reference numeral 501) described as “load”, “autonomous”, and “other rules” line up three events that change the state of each bank of the configuration memory. At a certain time, only one of the three events can occur. In FIG. 5, an arrow block with hatching (for example, see reference numeral 602) indicates an event that occurred at that time. FIG. 5 (a) shows that another dynamic reconfiguration has occurred at that time, and
また、バンク0〜バンク3と記載された方形のブロック510は、コンフィグレーションメモリのバンクを示す。それぞれのバンクにかかるブロック(たとえば、符号511、512参照)中のアルファベットは、当該バンクに格納されたコンフィグレーション名を示す。たとえば、バンク0のブロック(符号511参照)には、コンフィグレーション名=Aのコンフィグレーションデータが格納されている。また、バンク0のブロック511において、左側に括弧()で示されているコンフィグレーション名は、主メモリのバンク情報テーブル(図4の符号44参照)において、バンク0に格納されているコンフィグレーション名を示す。また、バンク0のブロック511において、括弧[]で示されているコンフィグレーション名は、カレントコンフィグレーション、つまり、バンク0のコンフィグレーションが、どのバンク由来のコンフィグレーションであるかを示す値(以下、これを「バンク由来値」とも称する。)である。したがって、括弧[]で示されるバンク名は、本実施の形態にかかるコンフィグレーション読み込み部54により取得することができる。
A
図5(a)においては、他律ダイナミックリコンフィグレーションが発生し、制御ライブラリの関数「マトリクス_change」により、バンク1のコンフィグレーションデータ(コンフィグレーション名=A)が、カレントコンフィグレーション(バンク0)にコピーされる。したがって、バンク0において、バンク由来値=1となる。また、これに伴って、主メモリのバンク情報テーブルが書き換えられる(符号520参照)。
In FIG. 5A, other-order dynamic reconfiguration occurs, and the configuration data of bank 1 (configuration name = A) is changed to the current configuration (bank 0) by the function “matrix_change” of the control library. To be copied. Therefore, in
ここで、図5(b)に示すように、マトリクスにおいて自律ダイナミックリコンフィグレーションが発生し、バンク2のコンフィグレーションデータ(コンフィグレーション名=B)が、カレントコンフィグレーション(バンク0)にコピーされて、その後、デバッガ24によりプログラムの実行が停止された場合を考える。自律ダイナミックリコンフィグレーションは、プロセッサコアには認識されないため、バンク情報テーブルは、図5(b)に示すように変更されていない。その一方、実際には、バンク0には、バンク2に由来するコンフィグレーションデータ(コンフィグレーション名=B)が格納されている。したがって、図5(b)において、デバッガ24が、主メモリ中のバンク情報テーブルを参照して、デバッグ情報を取り出すべきコンフィグレーション名(=A)を特定すると、誤ってしまう。
Here, as shown in FIG. 5B, autonomous dynamic reconfiguration occurs in the matrix, and the configuration data (configuration name = B) in
そこで、本実施の形態においては、第1の手法として、制御ライブラリの関数「マトリクス_change」において、カレントコンフィグレーションとされたコンフィグレーションデータが格納されたバンク、つまり供給元となったバンクのバンク番号を静的変数に格納し、プログラムの動作停止時に、デバッガ24のコンフィグレーション決定部56が、その静的変数から得られるバンク番号と、コンフィグレーション読み込み部54により取得されるバンク由来値とを比較し、自律ダイナミックリコンフィグレーションの発生を検知する。
Therefore, in the present embodiment, as a first method, in the function “matrix_change” of the control library, the bank in which the configuration data set as the current configuration is stored, that is, the bank number of the bank that is the supply source is stored. Is stored in a static variable, and when the operation of the program is stopped, the configuration determination unit 56 of the
より詳細には、図6(a)に示すように、シミュレート或いはエミュレートにおいて、他律ダイナミックリコンフィグレーションが発生したときに(ステップ601)、上記制御ライブラリの関数「マトリクス_change」において、カレントコンフィグレーションとされたコンフィグレーションデータが格納されたバンクのバンク番号を静的変数pbに格納する(ステップ602)。たとえば、図5(a)の例では、他律ダイナミックリコンフィグレーションにより、バンク1のコンフィグレーションデータが、バンク0にコピーされるため、静的変数pb=1となる。
More specifically, as shown in FIG. 6A, when other-order dynamic reconfiguration occurs during simulation or emulation (step 601), in the function “matrix_change” of the control library, the current The bank number of the bank in which the configuration data set as the configuration is stored is stored in the static variable pb (step 602). For example, in the example of FIG. 5A, the configuration data of the
デバッガ24が、ブレークポイントなど設定された条件の下などで、プログラムの実行を停止すると(ステップ611)、デバッガ24のコンフィグレーション読み込み部54は、コンフィグレーションメモリ40からバンク由来値を読み出し、コンフィグレーション決定部56が、静的変数pbと、取得したバンク由来値とを比較する(ステップ612)。両者が一致した場合には(ステップ613でイエス(Yes))、デバッグ用モニター52は、通常の通り、バンク情報テーブルにおいて、バンク0が示すコンフィグレーション名のデバッグ情報を取得して出力する(ステップ614)。その一方、両者が一致しなかった場合には(ステップ613でノー(No))、デバッガ24は、バンク由来値を参照して、当該バンク由来値に対応するバンク番号が示すコンフィグレーション名のデバッグ情報を取得して出力する(ステップ615)。
When the
図5(a)の状態の後、図5(b)に示す自律ダイナミックリコンフィグレーションが発生して、プログラムの実行が停止した場合には、静的変数pb=1である一方、バンク由来値は「2」となる。したがって両者は一致しないため、バンク由来値に相当するバンク2が示すコンフィグレーション名=Bのデバッグ情報が取得される。
When the autonomous dynamic reconfiguration shown in FIG. 5B occurs after the state of FIG. 5A and the program execution is stopped, the static variable pb = 1 while the bank-derived value Becomes “2”. Accordingly, since they do not match, the debug information of configuration name = B indicated by
その後、以後のプログラムの実行でもデバッグを可能にするために、デバッガ24は、静的変数pbを更新し(本例では「+1」)、かつ、バンク情報テーブルのバンク0に関連付けたコンフィグレーション名を、バンク由来値が示すものに更新する(ステップ616)。
Thereafter, in order to enable debugging in subsequent program execution, the
このような構成により、静的変数と、由来値との一致を判断することで、自律コンフィグレーションの発生を検知することが可能となる。 With such a configuration, it is possible to detect the occurrence of an autonomous configuration by determining whether the static variable matches the derived value.
[第2の手法]
次に、本実施の形態にかかる第2の手法について説明する。たとえば、自律ダイナミックリコンフィグレーションが1回発生した後、制御ライブラリの関数「マトリクス_load」により新たなコンフィグレーションがロードされ、その後、デバッガ24によりプログラムの実行が停止した場合を考える。
[Second method]
Next, the second method according to the present embodiment will be described. For example, consider a case where after the autonomous dynamic reconfiguration occurs once, a new configuration is loaded by the function “matrix_load” of the control library, and then the execution of the program is stopped by the
図7(a)〜(c)は、上記場合の具体例を示す図である。たとえば、第1の手法を利用して、静的変数pbとバンク由来値との一致により、どのデバッグ情報を選択すべきかを判断することを考える。図7(a)において他律ダイナミックリコンフィグレーションが発生し、バンク1のコンフィグレーションデータ(コンフィグレーション名=A)が、バンク0にコピーされるため、静的変数pb=1となる。また、他律ダイナミックリコンフィグレーションであるため、主メモリのバンク情報テーブルも、バンク0に関連付けられてコンフィグレーション名=Aが格納される。
FIGS. 7A to 7C are diagrams showing a specific example of the above case. For example, consider using the first method to determine which debug information should be selected based on the match between the static variable pb and the bank-derived value. In FIG. 7A, the other-order dynamic reconfiguration occurs, and the configuration data of bank 1 (configuration name = A) is copied to
次いで、図7(b)に示すように、自律ダイナミックリコンフィグレーションが発生し、バンク2のコンフィグレーションデータ(コンフィグレーション名=B)がバンク0にコピーされ、さらに、図7(c)に示すように、制御ライブラリの関数「マトリクス_load」により、バンク2に、新たなコンフィグレーションデータ(コンフィグレーション名=D)がロードされたと考える。制御ライブラリの関数「マトリクス_load」の実行に伴って、主メモリ中のバンク情報テーブルにおいて、バンク2に関連付けられてコンフィグレーション名=Dが格納される。
Next, as shown in FIG. 7B, autonomous dynamic reconfiguration occurs, the configuration data of bank 2 (configuration name = B) is copied to
この場合、第1の手法を用いると、pb=1である一方、バンク由来値=2であるため、バンク由来値に基づいて、バンク情報テーブル中、バンク2に関連付けられたコンフィグレーション名を取得すると「D」となる。しかしながら、図7(c)に示すように、実際にコンフィグレーションメモリのバンク2には、コンフィグレーション名=Bのコンフィグレーションデータが格納されており、第1の手法の結果得られたコンフィグレーション名と一致しない。
In this case, when the first method is used, pb = 1, while bank-derived value = 2, so the configuration name associated with
そこで、第2の手法においては、図8に示すように、制御ライブラリの関数「マトリクス_load」において(ステップ801)、他律ダイナミックリコンフィグレーション時のバンク番号として、静的変数pbを取得するとともに、コンフィグレーション読み込み部54が、コンフィグレーションメモリ40からバンク由来値を取得し、コンフィグレーション決定部56が、静的変数pbとバンク由来値とを比較する(ステップ802)。自律ダイナミックリコンフィグレーションが発生していると考えられる場合、つまり、これらが一致しない場合には(ステップ803でノー(No))、コンフィグレーション決定部56は、バンク情報テーブル中、バンク0に関連付けて、コンフィグレーション読み込み部54により取得されたバンク由来値を格納する(ステップ804)。また、静的変数pbを、バンク由来値に更新する(ステップ805)。つまり、あたかも他律ダイナミックリコンフィグレーションが発生して、バンク情報テーブルや静的変数が書き換えられたかのように、これらの状態を整合させる。その後、コンフィグレーションメモリの指定のバンクに、コンフィグレーションデータが格納される(ステップ806)。
Therefore, in the second technique, as shown in FIG. 8, in the function “matrix_load” of the control library (step 801), the static variable pb is acquired as the bank number at the time of other-order dynamic reconfiguration. The
上記図7に示す例について、第2の手法を適用した場合の静的変数pbやバンク由来値の状態について、図9を参照して説明する。図9(a)の状態(他律ダイナミックリコンフィグレーションが発生し、バンク1のコンフィグレーションデータ(コンフィグレーション名=A)が、バンク0にコピーされた状態)および図9(b)の状態(自律ダイナミックリコンフィグレーションが発生し、バンク2のコンフィグレーションデータ(コンフィグレーション名=B)がバンク0にコピーされた状態)は、それぞれ、図7(a)、(b)の状態と一致する。 With respect to the example shown in FIG. 7, the state of the static variable pb and the bank-derived value when the second method is applied will be described with reference to FIG. The state shown in FIG. 9A (the state in which other-order dynamic reconfiguration has occurred and the configuration data of bank 1 (configuration name = A) has been copied to bank 0) and the state shown in FIG. Autonomous dynamic reconfiguration occurs and the configuration data of bank 2 (configuration name = B) is copied to bank 0) matches the states of FIGS. 7A and 7B, respectively.
これに対して、制御ライブラリの関数「マトリクス_load」の処理が開始され、静的変数pbと取得されたバンク番号(バンク由来値)とを比較すると、「1≠2」であるため、ステップ803でノー(No)と判断される。したがって、バンク情報テーブルのバンク0に関連付けて、「バンク由来値=2」を格納するとともに、「静的変数pb=2」に書き換える。
On the other hand, the processing of the function “matrix_load” of the control library is started, and when the static variable pb is compared with the acquired bank number (bank-derived value), “1 ≠ 2”. It is judged as No (No). Therefore, “bank derived value = 2” is stored in association with
デバッガ24によるプログラムの実行停止時には、第1の手法と同様に、図6(b)に示す処理が実行される。図6(b)の処理において、静的変数pbと、コンフィグレーション読み込み部54により読み込まれるバンク由来値とが一致し、自律ダイナミックリコンフィグレーションが発生していないと判断され(ステップ613でノー(No))、バンク情報テーブルのバンク0に関連付けられたコンフィグレーション名(この場合には「B」)のデバッグ情報が主メモリから読み出されて出力される。このように、デバッグ用モニター52に正しい表示をすることができる。
When the execution of the program by the
[第3の手法]
次に、本実施の形態にかかる第3の手法について説明する。たとえば、制御ライブラリ「マトリクス_load」により新たなコンフィグレーションデータが、コンフィグレーションメモリのカレントコンフィグレーションにロードされた後、自律ダイナミックリコンフィグレーションが2回以上発生し、最初のバンク番号に戻り、その後にデバッガ24によりプログラムの実行が停止された場合を考える。
[Third method]
Next, a third method according to the present embodiment will be described. For example, after new configuration data is loaded into the current configuration of the configuration memory by the control library “matrix_load”, autonomous dynamic reconfiguration occurs more than once, and then returns to the first bank number. Consider a case where execution of a program is stopped by the
図10(a)〜(d)は、上記場合の具体例を示す図である。たとえば、第1の手法を利用して、静的変数pbとバンク由来値の一致により、どのデバッグ情報を選択すべきかを判断することを考える。この場合に、静的変数とバンク由来値とは一致するため、バンク情報テーブルのバンク0が示すコンフィグレーション名のデバッグ情報が取り出される。ところが、実際には、制御ライブラリ「マトリクス_load」により新たなコンフィグレーションデータ(コンフィグレーション名=D)が、バンク中にロードされ、さらに、そのコンフィグレーションデータが、自律ダイナミックリコンフィグレーションにより、バンク0にコピーされているため、本来であれば、コンフィグレーション名=Dのデバッグ情報が表示されなければならない。
FIGS. 10A to 10D are diagrams showing a specific example of the above case. For example, consider using the first method to determine which debug information should be selected based on the match between the static variable pb and the bank-derived value. In this case, since the static variable matches the bank-derived value, the debug information having the configuration name indicated by
そこで、第3の手法においては、制御ライブラリ「マトリクス_load」が実行される際に、コンフィグレーションデータに基づき、コンフィグレーションを識別するマッチングパターンを生成し、これを、主メモリに記憶しておく。デバッガ24によるプログラムの実行停止の際に、コンフィグレーション決定部56が、カレントコンフィグレーション(バンク0のコンフィグレーション)からマッチングパターンを生成し、最も近いと判断されたバンクが、カレントコンフィグレーションの供給元であると判断する。
Therefore, in the third method, when the control library “matrix_load” is executed, a matching pattern for identifying the configuration is generated based on the configuration data, and this is stored in the main memory. When program execution is stopped by the
[第3の手法にかかる具体的処理(その1)]
第1の具体的処理においては、コンフィグレーションにしたがったマトリクス中のPEの存在パターンを符号化(たとえばCRC符号化)する。なお、符号化は、CRCに限定されるものではなく、他の符号化を適用してもよいことは言うまでもない。
[Specific Processing According to Third Method (Part 1)]
In the first specific process, the PE presence pattern in the matrix according to the configuration is encoded (for example, CRC encoding). Needless to say, encoding is not limited to CRC, and other encoding may be applied.
図11(a)に示すように、制御ライブラリの関数「マトリクス_load」において(ステップ1101)、コンフィグレーションデータを参照して、コンフィグレーションにしたがったPEの存在パターンを生成する(ステップ1102)。この存在パターンの生成は、コンフィグレーションにおいてそれぞれの物理位置のPEを利用しているか否かを「1」或いは「0」のビットで表わすことにより実現される。 As shown in FIG. 11A, in the function “matrix_load” of the control library (step 1101), the presence pattern of the PE according to the configuration is generated with reference to the configuration data (step 1102). The generation of the presence pattern is realized by expressing whether or not the PE at each physical position is used in the configuration by a bit of “1” or “0”.
たとえば、コンフィグレーションデータは、PEごとに1〜8ワードのデータを有する。したがって、あるPEが5ワードのコンフィグレーションを必要とする場合には、32(ビット=1ワード)×5=160ビットのデータ量を必要とする。その一方、そのPEを使うか否かであれば、1ビットで足り、存在パターンとして必要なデータ容量を著しく削減することができるとともに、後述する比較処理を短時間で実現することもできる。 For example, the configuration data has 1 to 8 words of data for each PE. Therefore, when a certain PE requires a 5-word configuration, a data amount of 32 (bit = 1 word) × 5 = 160 bits is required. On the other hand, if the PE is used or not, one bit is sufficient, and the data capacity necessary for the existence pattern can be remarkably reduced, and the comparison processing described later can be realized in a short time.
存在パターンは、主メモリ中、バンク情報テーブルのバンク番号に関連付けられて記憶される(ステップ1103)。たとえば、制御ライブラリ関数「マトリクス_load」が、バンク1に、コンフィグレーション名=Dのコンフィグレーションデータをロードするのであれば、コンフィグレーション名=Dのコンフィグレーションデータを構成するPEの存在パターンが、主メモリ中、バンク1に関連付けられて記憶される。
The existence pattern is stored in the main memory in association with the bank number of the bank information table (step 1103). For example, if the control library function “matrix_load” loads the configuration data with the configuration name = D into the
また、他律ダイナミックリコンフィグレーションが発生した場合には、制御ライブラリの関数「マトリクス_change」により、あるバンクのコンフィグレーションデータが、バンク0にコピーされるときにも、当該コピー先のバンク番号と、PEの存在パターンとが関連付けられる。これにより、バンク番号を参照して、主メモリからPEの存在パターンを読み出すことができる。
Also, when other-order dynamic reconfiguration occurs, when the configuration data of a certain bank is copied to
図11(b)に示すように、プログラムの実行が停止すると、デバッガ24のコンフィグレーション読み込み部54は、マトリクス32中のバンク0のコンフィグレーションを読み込み(ステップ1111)、コンフィグレーション決定部56が、読み込まれたコンフィグレーションを構成するPEの存在パターンを生成し、これを符号化する(ステップ1112)。次いで、コンフィグレーション決定部56は、バンク情報テーブルの各バンクに関連付けられて、主メモリ中に記憶されたPEの存在パターンのそれぞれと、ステップ1112で得られた存在パターンとを比較し、一致するものを見出す(ステップ1113)。コンフィグレーション決定部56は、実際にバンク0に存在したコンフィグレーションデータから得られた存在パターンと一致するような存在パターンが、バンク0と関連付けられたものであるかを判断する(ステップ1114)。
As shown in FIG. 11B, when the execution of the program is stopped, the
ステップ1114でノー(No)と判断された場合には、バンク情報テーブルにおいて、上記読み出されたコンフィグレーションの存在パターンと一致する存在パターンに関連付けられたバンク番号に対応するコンフィグレーション名のデバッグ情報を取得して出力するとともに(ステップ1115)、当該バンク番号に対応するコンフィグレーション名を、バンク0にコピーするよう、バンク情報テーブルが更新される(ステップ1116)。なお、ステップ1114でイエス(Yes)と判断された場合には、バンク情報テーブルにおいてバンク0のコンフィグレーション名のデバッグ情報を読み出して出力すればよい(ステップ1117)。
If NO in
このように、第3の手法では、コンフィグレーション読み出し部54が読み出したコンフィグレーションデータの存在パターンと、主メモリに記憶しておいたバンク0〜バンク3までの存在パターンとを比較し、一致するもの(或いは後述するように最も類似するもの)をバンク0に供給されたコンフィグレーションであると判断して、バンク情報テーブルおよび静的変数を更新する。
As described above, in the third method, the existence pattern of the configuration data read by the
[第3の手法にかかる具体的処理(その2)]
第2の具体的処理では、図11のステップ1102、1103において、コンフィグレーションを構成するPEの存在パターンを、符号化せずにそのまま保存する。同様に、ステップ1112においても、コンフィグレーション読み出しにより取得されたコンフィグレーションデータに基づいて、コンフィグレーションを構成するPEの存在パターンを生成する。また、存在パターンの比較(ステップ1113)において、双方の存在パターンが完全に一致しない場合でも、コンフィグレーション読み出しにより取得されたコンフィグレーションデータに基づく存在パターンに最も類似する存在パターンを選択するように構成される。
[Specific Processing According to Third Method (Part 2)]
In the second specific process, in
第1の具体的処理においては、たとえば、存在パターンのCRC符号を比較すればよいため、比較処理が極めて高速に実現できる一方、マトリクスにおいてコンフィグレーションデータの書き換えがあったときに対応できないという問題点がある。その一方、第2の具体的処理においては、存在パターンをビットごとに比較するため、比較自体は第1の具体的処理と比較して時間を要するが、上記コンフィグレーションの書き換えに対応できるという利点がある。 In the first specific process, for example, since the CRC codes of the existing patterns may be compared, the comparison process can be realized at a very high speed, but cannot be handled when the configuration data is rewritten in the matrix. There is. On the other hand, in the second specific process, since the existence pattern is compared for each bit, the comparison itself takes time compared to the first specific process, but it is advantageous in that the configuration can be rewritten. There is.
図10(a)に示す状態において、主メモリにおいては、バンク0〜3のそれぞれに関連付けられて、存在パターンA(コンフィグレーション名=Aに関する存在パターン、以下同様)、存在パターンA、存在パターンBおよび存在パターンCが記憶される(図12(a)参照)。図10(b)において、制御ライブラリの関数「マトリクス_load」により、コンフィグレーションメモリのバンク1にコンフィグレーション名=Dのコンフィグレーションがロードされると、これに伴って、コンフィグレーション名=Dのコンフィグレーションデータについて存在パターン(存在パターンD)が生成される。これは、バンク1と関連付けて主メモリ中に記憶される(図12(b)参照)。また、バンク情報テーブルも書き換えられる。
In the state shown in FIG. 10A, in the main memory, the existence pattern A (existence pattern related to configuration name = A, the same applies hereinafter), the existence pattern A, and the existence pattern B are associated with each of the
図10(c)、(d)に示す自律ダイナミックリコンフィグレーションは、マトリクスの外部から検出することはできない。第3の手法にしたがって図11(b)に示す処理を実行することにより、実際にマトリクスのコンフィグレーションメモリのバンク0に格納されているコンフィグレーションデータは、バンク情報テーブルに従うと、バンク1に格納されているとされたもの(コンフィグレーション名=D)であると判断される。そこで、図12(c)に示すようにバンク情報テーブルが更新され、また、静的変数pbも、図12(d)に示すように更新される。
The autonomous dynamic reconfiguration shown in FIGS. 10C and 10D cannot be detected from outside the matrix. By executing the processing shown in FIG. 11B according to the third method, the configuration data actually stored in the
[第4の手法]
次に、本実施の形態にかかる第4の手法について説明する。第1の手法における問題が生じる状態および第2の手法における問題が生じる状態の複合状態では、第3の手法を用いても、正しいコンフィグレーションデータを特定することができない。たとえば、
(1)制御ライブラリの関数「マトリクス_load」により新たなコンフィグレーションデータが、コンフィグレーションメモリのカレントコンフィグレーションにロードされた後、
(2)自律ダイナミックリコンフィグレーションが2回以上発生し、最初のバンク番号に戻り、
(3)再び、新たなコンフィグレーションデータが、同じバンクに、制御ライブラリの関数「マトリクス_load」を用いてロードされ、
(4)その後、デバッガ24によりプログラムの実行が停止された場合を考える。
[Fourth Method]
Next, the 4th method concerning this Embodiment is demonstrated. In the combined state of the state where the problem occurs in the first method and the state where the problem occurs in the second method, the correct configuration data cannot be specified even if the third method is used. For example,
(1) After new configuration data is loaded into the current configuration of the configuration memory by the function “matrix_load” of the control library,
(2) Autonomous dynamic reconfiguration occurs more than once, returning to the first bank number,
(3) Again, new configuration data is loaded into the same bank using the function “matrix_load” of the control library,
(4) Then, consider the case where the execution of the program is stopped by the
図13(a)〜(e)は、上記場合の具体例を示す図である。図13(a)〜(d)は、それぞれ、図10(a)〜(d)と同様である。この例では、図13(e)に示すように、さらに、制御ライブラリの関数「マトリクス_load」により、新たなコンフィグレーションデータ(コンフィグレーション名=E)が、コンフィグレーションメモリのバンク1に記憶される。
FIGS. 13A to 13E are diagrams showing a specific example of the above case. FIGS. 13A to 13D are the same as FIGS. 10A to 10D, respectively. In this example, as shown in FIG. 13E, new configuration data (configuration name = E) is further stored in
第3の手法を利用して、コンフィグレーション決定部56において、コンフィグレーション読み出し部54により読み出されたコンフィグレーションデータの存在パターンと、バンク情報テーブルのバンク番号と関連付けられた存在パターンとを比較することを考える。しかしながら、図13(e)に示す状態では、バンク1に、コンフィグレーション名=Eのコンフィグレーションデータをロードしているため、主メモリには、コンフィグレーション名=A、E、B、Cの存在パターンのみが残され、その結果、適切なコンフィグレーション名を特定することが不可能である。第4の手法では、上述した場合でも適切なコンフィグレーション名を特定し、そのデバッガ情報をデバッグ用モニターが出力することを可能にする。
Using the third method, the configuration determination unit 56 compares the presence pattern of the configuration data read by the
第4の手法においても、制御ライブラリの関数「マトリクス_load」の実行時に、図11のステップ1102に示すような、ロードするコンフィグレーションのデータを構成するPEの存在パターンが生成され、主メモリ中、そのバンク番号と関連付けられて記憶される。さらに、図14に示すように、制御ライブラリの関数「マトリクス_load」において(ステップ1401)、他律ダイナミックリコンフィグレーション時のバンク番号として静的変数pbを取得するとともに、コンフィグレーション読み込み部54が、コンフィグレーションメモリ40からバンク由来値を取得し、コンフィグレーション決定部56が、静的変数pbとバンク由来値とを比較する(ステップ1402)。
Also in the fourth method, when the function “matrix_load” of the control library is executed, an existence pattern of PEs constituting configuration data to be loaded is generated as shown in
自律ダイナミックリコンフィグレーションが発生していないと考えられる場合、つまり、これらが一致する場合には(ステップ1403でイエス(Yes))、コンフィグレーション決定部56は、コンフィグレーション読み込み部54により取得されたコンフィグレーションデータに基づき存在パターンを生成する(ステップ1404)。
When it is considered that the autonomous dynamic reconfiguration has not occurred, that is, when they match (Yes in Step 1403), the configuration determination unit 56 is acquired by the
次いで、コンフィグレーション決定部56は、バンク情報テーブルの各バンクに関連付けられて、主メモリ中に記憶されたPEの存在パターンのそれぞれと、ステップ1112で得られた存在パターンとを比較し、一致するものを見出す(ステップ1405)。さらに、コンフィグレーション決定部56は、主メモリのバンク情報テーブルにおいて、バンク0のコンフィグレーション名を、一致した存在パターンのコンフィグレーション名に更新するとともに(ステップ1406)、バンク情報テーブルにおいて、一致した存在パターンのコンフィグレーション名が格納されていたバンク番号となるように更新する(ステップ1407)。
Next, the configuration determination unit 56 compares each of the existence patterns of the PEs associated with each bank of the bank information table and stored in the main memory with the existence pattern obtained in
ステップ1403でノー(No)と判断された場合には、第2の手法と同様である。図14において、ステップ1408、1409は、図8のステップ804、805にそれぞれ対応する。
When it is determined NO in
このような処理の後、コンフィグレーションメモリの指定のバンクに、コンフィグレーションデータがロードされる(ステップ1410)。 After such processing, configuration data is loaded into the designated bank of the configuration memory (step 1410).
図15(a)および(b)は、それぞれ、図13(d)に示すコンフィグレーションデータのロード前で、かつ、図14に示す処理(ステップ1404〜1407)の実行前のバンク情報テーブルおよびコンフィグレーションメモリの状態を示す。また、図15(c)および(d)は、それぞれ、図13(d)に示すコンフィグレーションデータのロード前で、かつ、図14に示す処理の実行後のバンク情報テーブルおよびコンフィグレーションメモリの状態を示す。
FIGS. 15A and 15B show a bank information table and a configuration before loading the configuration data shown in FIG. 13D and before execution of the processing (
コンフィグレーション読み出しにより読み出されたコンフィグレーションデータのコンフィグレーション名=Dであり、存在パターンの比較により、同じコンフィグレーションデータは、主メモリのバンク情報テーブル中、バンク1に関連付けられていることがわかる。そこで、図15(c)に示すように、バンク0には、コンフィグレーション名=Dのコンフィグレーションデータが格納されていることを示すように、バンク情報テーブルが更新される。
The configuration name of the configuration data read by the configuration read is D = D, and the comparison of the existence pattern shows that the same configuration data is associated with
図16(a)〜(e)は、第4の手法を適用した場合の、コンフィグレーションメモリの状態を示す図である。図16(a)〜(d)は、それぞれ、図13(a)〜(d)と一致する。図16(e)においては、図15(c)に示す状態から、さらに、コンフィグレーションメモリに、コンフィグレーション名Eのコンフィグレーションデータがロードされている。このような場合でも、実行停止の後、デバッガ24は、バンク情報テーブル中、バンク0のコンフィグレーション名Dに基づいて、適切なコンフィグレーションのデバッグ情報を読み出して出力することができる。
FIGS. 16A to 16E are diagrams showing the state of the configuration memory when the fourth method is applied. FIGS. 16A to 16D correspond to FIGS. 13A to 13D, respectively. In FIG. 16 (e), configuration data of configuration name E is further loaded into the configuration memory from the state shown in FIG. 15 (c). Even in such a case, after the execution is stopped, the
[第1の手法〜第4の手法による処理負荷およびこれらの相互関係]
図17は、従来の手法と、本実施の形態にかかる第1の手法〜第4の手法による処理負荷を示す。図17において、丸印が、その手法において実行される処理を示す。また、×印は、その手法においては、実行されない処理を示す。
[Processing loads by the first method to the fourth method and their interrelationships]
FIG. 17 shows the processing load of the conventional technique and the first to fourth techniques according to the present embodiment. In FIG. 17, circles indicate processing executed in the method. Further, a cross indicates a process that is not executed in the method.
図17に示すように、第1の手法においては、他律ダイナミックリコンフィグレーションの発生時(つまり、制御ライブラリの関数「マトリクス_change」の実行時)に、静的変数pbに、カレントコンフィグレーションとなるコンフィグレーションのバンク番号を記憶するとともに、プログラムの実行停止時に、静的変数と、コンフィグレーションメモリから読み出したバンク由来値の一致を判断する。これにより、自律ダイナミックリコンフィグレーションの発生を検出する。 As shown in FIG. 17, in the first method, when the other-order dynamic reconfiguration occurs (that is, when the function “matrix_change” of the control library is executed), the static configuration pb The bank number of the configuration to be stored is stored, and when the execution of the program is stopped, the coincidence between the static variable and the bank-derived value read from the configuration memory is determined. Thereby, occurrence of autonomous dynamic reconfiguration is detected.
第2の手法においては、コンフィグレーションメモリのバンクへのロード時、つまり、制御ライブラリの関数「マトリクス_load」の実行時に、静的変数pbとバンク由来値が一致しない場合には、その時点で、あたかも他律ダイナミックリコンフィグレーションが発生したように、静的変数を更新している。 In the second technique, when the configuration variable bank is loaded, that is, when the function “matrix_load” of the control library is executed, if the static variable pb does not match the bank-derived value, at that time, Static variables are updated as if other-order dynamic reconfiguration occurred.
その一方、第3の手法においては、第1の手法において、自律ダイナミックリコンフィグレーションが発生していないと判断された場合にも、存在パターンの比較により、自律ダイナミックリコンフィグレーションが複数回発生して最初のバンク番号に戻ってしまった場合にも対応できるようにしている。 On the other hand, in the third method, even when it is determined that the autonomous dynamic reconfiguration has not occurred in the first method, the autonomous dynamic reconfiguration occurs multiple times by comparing the existence patterns. If you have returned to the first bank number, you can handle it.
さらに、第4の手法においては、第3の手法に加えて、コンフィグレーションメモリのバンクへのロード時に、第2の手法において一定の処理を行ったように、存在パターンの比較により、静的変数pbの整合を図っている。 Further, in the fourth method, in addition to the third method, when the configuration memory is loaded into the bank, a static variable is obtained by comparing the existence pattern as in the case of performing a certain process in the second method. The matching of pb is aimed at.
[デバッガにおける選択]
本実施の形態においては、設計者のデバッガに対する要求水準にしたがって、上記第1の手法から第4の手法のいずれかを提供してデバッガ24が動作できるようなっている。さらに、上述した手法を用いず、従来と同様に、単に、コンフィグレーション読み出し部54から読み出されたバンク由来値にしたがって、バンク情報テーブル中のコンフィグレーション名を特定し、そのデバッグ情報を取得するように設定することも可能である。
[Debugger selection]
In the present embodiment, the
ここでは、静的な機能選択する実装(静的実装)と、動的に機能選択を許す実装(動的実装)とを考えることができる。静的実装においては、C言語のマクロに数値をあてはめ、アプリケーションのコンパイル時に定義されるその数値によってライブラリの中で呼ばれる処理を変えられるようにしておけば良い。 Here, it is possible to consider an implementation that selects a static function (static implementation) and an implementation that allows function selection dynamically (dynamic implementation). In static implementation, a numerical value may be assigned to a macro in C language so that processing called in the library can be changed by the numerical value defined when compiling the application.
動的実装においては、アプリケーションプログラムのコンパイル時には最低のデバッグレベルで動作するようにしておく。ただし、スタティックまたはグローバルな変数の値によって処理を帰るようなライブラリ関数の構造を構築しておく。そのまま実行すると、その変数の値は変化しないが、デバッガの請求項亭により、変数の値を実行の前に書き換えることができ、目的のデバッグレベルで実行することが可能となる。 In dynamic implementation, an application program is compiled so that it operates at the lowest debug level. However, a library function structure that returns processing based on the value of a static or global variable is constructed. If it is executed as it is, the value of the variable does not change, but the value of the variable can be rewritten before execution by the claimant of the debugger, and execution at the target debug level becomes possible.
本実施の形態によれば、自律ダイナミックリコンフィグレーション発生後のデバッグを行うことが可能となる。また、デバッガの処理負荷の軽減が必要な場合には、機能の選択により効率的にデバッグを実現することができる。 According to this embodiment, it is possible to perform debugging after the occurrence of autonomous dynamic reconfiguration. Further, when it is necessary to reduce the processing load of the debugger, it is possible to efficiently realize debugging by selecting a function.
また、本実施の形態においては、前回デバッガが停止したとき、制御ライブラリの関数「マトリクス_load」が実行されたとき、或いは、制御ライブラリの関数「マトリクス_change」が実行されたときのいずれかの1時点の状態と、現時点の状態から得られる状態を比較し、カレントコンフィグレーションのデバッグ情報を取得し、或いは、デバッグ情報の状態を更新する。したがって、自律ダイナミックリコンフィグレーションや「マトリクス_load」が幾度も繰り返されることが想定されるアプリケーションであっても、多くの記憶容量を要することなく、つまり、主メモリ等を破綻させることなく継続したプログラムの実行およびデバッグを実現することが可能となる。 In the present embodiment, any one of when the debugger is stopped last time, when the function “matrix_load” of the control library is executed, or when the function “matrix_change” of the control library is executed. The current state is compared with the state obtained from the current state, and the debug information of the current configuration is acquired or the state of the debug information is updated. Therefore, even for applications where it is assumed that autonomous dynamic reconfiguration and “matrix_load” will be repeated many times, a program that does not require much storage capacity, that is, without damaging the main memory or the like Can be executed and debugged.
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。 The present invention is not limited to the above embodiments, and various modifications can be made within the scope of the invention described in the claims, and these are also included in the scope of the present invention. Needless to say.
たとえば、前記実施の形態の第3の手法および第4の手法において、マッチングパターンとして、コンフィグレーションを構成するPEの利用の是非を示すビットからなる存在パターンを利用しているがこれに限定されるものはない。コンフィグレーションデータ全体を使ってこれを符合化(たとえば、CRC符号化)しても良い。また、マトリクスにおけるプログラムの実行の際に変更される可能性のあるコンフィグレーションの部分を除き、符号化をしてもよい。 For example, in the third method and the fourth method of the above-described embodiment, the presence pattern consisting of bits indicating whether or not to use the PE constituting the configuration is used as the matching pattern. However, the present invention is not limited to this. There is nothing. This may be encoded (eg, CRC encoded) using the entire configuration data. Further, encoding may be performed except for a configuration portion that may be changed during execution of the program in the matrix.
また、前記実施の形態において、コンフィグレーションメモリのバンクの数は4としたが、この数が限定されるものではないことは言うまでも無い。 In the above embodiment, the number of banks of the configuration memory is four, but it goes without saying that this number is not limited.
12 アルゴリズム設計部
14 プロファイラ
16 第1のコンパイラ
18 DFCコンパイラ
20 第2のコンパイラ
22 シミュレータ/エミュレータ
24 デバッガ
52 デバッグ用モニター
54 コンフィグレーション読み出し部
56 コンフィグレーション決定部
DESCRIPTION OF
Claims (18)
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップと、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップと、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップと、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブルにしたがって、バンク情報テーブルからコンフィグレーションデータを読み出すステップと、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップと、
前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えたことを特徴とするデバッグ方法。 A processor core that mainly executes sequential processing, and is in charge of data processing and computation, and its configuration can be changed dynamically by changing the connections between circuit components of the two-dimensional array structure. A dynamically reconfigurable LSI comprising a matrix,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified when the load instruction and the configuration change instruction are executed. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data and its source data stored in the main memory, and the configuration stored in the execution bank of the configuration memory A debugging method for a debugger that acquires data,
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Obtaining the bank-derived value from the matrix when the execution of the program is stopped;
Comparing the stored static variables with bank-derived values and determining that an autonomous dynamic reconfiguration has occurred if they do not match; and
When it is determined that the autonomous dynamic reconfiguration has not occurred, reading the configuration data from the bank information table according to the bank information table;
When it is determined that the autonomous dynamic reconfiguration has occurred, reading the configuration data indicated by the bank-derived value in the bank information table;
And updating the static variable and bank information table so as to match the bank-derived value.
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、を備えたことを特徴とする請求項1に記載のデバッグ方法。 Further, when executing a load instruction by the processor core, obtaining the bank-derived value from the matrix;
Comparing the stored static variables with bank-derived values and, if they do not match, updating the static variables and bank information table to match the bank-derived values. The debugging method according to claim 1, wherein:
静的変数の値としてバンク由来値を記憶するステップと、
バンク情報テーブル中、前記実行バンクに関連付けてバンク由来値を格納するステップと、を有することを特徴とする請求項1または2に記載のデバッグ方法。 Updating the static variable and bank information table;
Storing a bank-derived value as the value of a static variable;
The debugging method according to claim 1, further comprising: storing a bank-derived value in association with the execution bank in the bank information table.
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガのデバッグ方法であって、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップと、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップと、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、を備えたことを特徴とするデバッグ方法。 A processor core that mainly executes sequential processing, and is in charge of data processing and computation, and its configuration can be changed dynamically by changing the connections between circuit components of the two-dimensional array structure. A dynamically reconfigurable LSI comprising a matrix,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified when the load instruction and the configuration change instruction are executed. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data and its source data stored in the main memory, and the configuration stored in the execution bank of the configuration memory A debugging method for a debugger that acquires data,
Generating a pattern for specifying the configuration data to be loaded when executing the load instruction of the processor core, and storing the pattern in association with the bank to be loaded in the main memory;
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Reading the configuration data stored in the execution bank of the configuration memory when the execution of the program is stopped;
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank and identifying a bank associated with a matching or most similar pattern;
And a step of reading configuration data indicated by the specified bank information in the bank information table.
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップと、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えたことを特徴とする請求項4に記載のデバッグ方法。 And determining whether the identified bank is an execution bank;
When the specified bank is an execution bank, reading configuration data indicated by the execution bank in the bank information table;
When the specified bank is other than the execution bank, reading the configuration data indicated by the information of the specified bank in the bank information table;
The debugging method according to claim 4, further comprising a step of updating the bank information table so as to match the information of the specified bank.
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップと、
前記静的変数とバンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップと、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えたことを特徴とする請求項4または5に記載のデバッグ方法。 Further, when executing a load instruction by the processor core, obtaining the bank-derived value from the matrix;
Comparing the stored static variables with bank-derived values and, if they do not match, updating the static variables and bank information table to match the bank-derived values;
Reading the configuration data stored in the execution bank of the configuration memory when the static variable and the bank-derived value match; and
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank and identifying a bank associated with a matching or most similar pattern;
The debugging method according to claim 4, further comprising a step of updating the bank information table so as to match the information of the specified bank.
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップ、
前記プログラムの実行停止時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、自律ダイナミックリコンフィグレーションが発生したと判断するステップ、
前記自律ダイナミックリコンフィグレーションが発生していないと判断された場合に、前記バンク情報テーブルにしたがって、バンク情報テーブルからコンフィグレーションデータを読み出すステップ、
前記自律ダイナミックリコンフィグレーションが発生したと判断した場合に、前記バンク情報テーブル中、前記バンク由来値が示すコンフィグレーションデータを読み出すステップ、並びに、
前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させることを特徴とするデバッグ用プログラム。 A processor core that mainly executes sequential processing, and is in charge of data processing and computation, and its configuration can be changed dynamically by changing the connections between circuit components of the two-dimensional array structure. A dynamically reconfigurable LSI comprising a matrix,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified when the load instruction and the configuration change instruction are executed. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data and its source data stored in the main memory, and the configuration stored in the execution bank of the configuration memory As a debugger for acquiring data, in order to operate the computer, a debugging program that can be read by the computer,
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Obtaining the bank-derived value from the matrix when the execution of the program is stopped;
Comparing the stored static variables with bank-derived values and determining that an autonomous dynamic reconfiguration has occurred if they do not match;
When it is determined that the autonomous dynamic reconfiguration has not occurred, reading the configuration data from the bank information table according to the bank information table;
When it is determined that the autonomous dynamic reconfiguration has occurred, reading the configuration data indicated by the bank-derived value in the bank information table; and
A debugging program characterized by causing the static variable and bank information table to be updated so as to match the bank-derived value.
前記プロセッサコアによるロード命令の実行時に、前記マトリクスから前記バンク由来値を取得するステップ、並びに、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップを実行させることを特徴とする請求項10に記載のプログラム。 In addition, the computer
Obtaining the bank-derived value from the matrix upon execution of a load instruction by the processor core; and
Comparing the stored static variables with bank-derived values and, if they do not match, updating the static variables and the bank information table to match the bank-derived values. The program according to claim 10, wherein
静的変数の値としてバンク由来値を記憶するステップ、並びに、
バンク情報テーブル中、前記実行バンクに関連付けてバンク由来値を格納するステップを実行させることを特徴とする請求項10または11に記載のプログラム。 In the step of updating the static variable and bank information table, the computer
Storing a bank-derived value as the value of a static variable, and
The program according to claim 10 or 11, wherein a step of storing a bank-derived value in association with the execution bank in the bank information table is executed.
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能なLSIにおいて、
前記動的再構成可能LSIのプログラムの実行を設定にしたがって停止させ、その状態において、主メモリに記憶されたコンフィグレーションデータおよびそのソースデータ、並びに、コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを取得するデバッガとして、コンピュータを動作させるために、当該コンピュータにより読み出し可能なデバッグ用プログラムであって、前記コンピュータに、
前記プロセッサコアのロード命令の実行時に、前記ロードするコンフィグレーションデータを特定するパターンを生成し、主メモリ中、前記ロードすべきバンクに関連付けて記憶するステップ、
前記プロセッサコアによる他律ダイナミックリコンフィグレーションの発生時に、実行バンクに格納されるべきコンフィグレーションの供給元のバンク名を静的変数として記憶するステップ、
前記プログラムの実行停止時に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップ、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップを実行させることを特徴とするデバッグ用プログラム。 A processor core that mainly executes sequential processing, and is in charge of data processing and computation, and its configuration can be changed dynamically by changing the connections between circuit components of the two-dimensional array structure. A dynamically reconfigurable LSI comprising a matrix,
The matrix has a configuration memory having a plurality of banks for storing configuration data representing each of a plurality of configurations, and based on configuration data stored in an execution bank among the plurality of banks. Configuration data stored in each bank is defined by other dynamic reconfiguration in accordance with instructions from the processor core or by autonomous dynamic reconfiguration by the matrix itself. By copying to the execution bank, the configuration was changed, and the configuration data copied to the execution bank became the source of the configuration change. Configured to store bank-derived values that identify the bank,
The processor core causes the configuration data stored in the main memory to be loaded into a desired bank of the configuration memory, and the configuration stored in any bank is copied to the execution bank, and so on. A configuration change instruction that generates dynamic reconfiguration can be executed, and the information specifying the bank in the main memory and the configuration are specified when the load instruction and the configuration change instruction are executed. In a dynamically reconfigurable LSI configured to update a bank information table associated with a configuration name
The execution of the program of the dynamically reconfigurable LSI is stopped according to the setting, and in that state, the configuration data and its source data stored in the main memory, and the configuration stored in the execution bank of the configuration memory As a debugger for acquiring data, in order to operate the computer, a debugging program that can be read by the computer,
Generating a pattern for specifying the configuration data to be loaded when executing the load instruction of the processor core, and storing the pattern in association with the bank to be loaded in the main memory;
Storing, as a static variable, a bank name of a configuration supply source to be stored in an execution bank at the time of occurrence of other-order dynamic reconfiguration by the processor core;
Reading configuration data stored in an execution bank of the configuration memory when the execution of the program is stopped;
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank to identify a bank associated with a matching or most similar pattern; and
A debugging program, comprising: executing a step of reading configuration data indicated by the specified bank information in the bank information table.
前記特定されたバンクが実行バンクであるか否かを判断するステップ、
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップ、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを、実行させることを特徴とする請求項13に記載のプログラム。 In addition, the computer
Determining whether the identified bank is an execution bank;
When the specified bank is an execution bank, reading configuration data indicated by the execution bank in the bank information table;
When the specified bank is other than the execution bank, reading configuration data indicated by the information of the specified bank in the bank information table; and
14. The program according to claim 13, wherein the step of updating the bank information table so as to be consistent with the information of the specified bank is executed.
前記プロセッサコアによるロード命令実行時に、前記マトリクスから前記バンク由来値を取得するステップ、
前記記憶された静的変数とバンク由来値とを比較し、これらが不一致の場合に、前記静的変数およびバンク情報テーブルを、前記バンク由来値に整合するように更新するステップ、
前記静的変数とバンク由来値が一致した場合に、前記コンフィグレーションメモリの実行バンクに格納されたコンフィグレーションデータを読み出すステップと、
前記実行バンクから読み出されたコンフィグレーションメモリを特定するパターンを生成するステップ、
前記生成されたパターンと、前記主メモリ中、それぞれのバンクに関連付けられて記憶されたパターンとを比較し、一致或いは最も類似するパターンに関連付けられたバンクを特定するステップ、並びに、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップを実行させることを特徴とする請求項13または14に記載のプログラム。 In addition, the computer
Obtaining the bank-derived value from the matrix when a load instruction is executed by the processor core;
Comparing the stored static variables with bank-derived values and, if they do not match, updating the static variables and bank information table to match the bank-derived values;
Reading the configuration data stored in the execution bank of the configuration memory when the static variable and the bank-derived value match; and
Generating a pattern identifying the configuration memory read from the execution bank;
Comparing the generated pattern with a pattern stored in the main memory associated with each bank to identify a bank associated with a matching or most similar pattern; and
The program according to claim 13 or 14, wherein the step of updating the bank information table so as to be consistent with the information of the specified bank is executed.
前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を含む存在パターンを生成するステップを実行させることを特徴とする請求項13ないし15の何れか一項に記載のプログラム。 In the step of generating the pattern, the computer
The program according to any one of claims 13 to 15, wherein the program executes a step of generating a presence pattern including a bit string indicating whether or not each of the circuit components in the matrix is used.
前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を符号化した存在パターンを生成するステップを実行させることを特徴とする請求項13ないし15の何れか一項に記載のプログラム。 In the step of generating the pattern, the computer
16. The step of generating a presence pattern obtained by encoding a bit string indicating whether or not each circuit component in the matrix is used is executed. program.
前記コンフィグレーションデータの少なくとも部分を符号化するステップを実行させることを特徴とする請求項13ないし15の何れか一項に記載のプログラム。 In the step of generating the pattern, the computer
The program according to any one of claims 13 to 15, wherein the program executes a step of encoding at least a part of the configuration data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004358785A JP4569284B2 (en) | 2004-12-10 | 2004-12-10 | Integrated circuit debugging method and debugging program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004358785A JP4569284B2 (en) | 2004-12-10 | 2004-12-10 | Integrated circuit debugging method and debugging program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006164186A true JP2006164186A (en) | 2006-06-22 |
JP4569284B2 JP4569284B2 (en) | 2010-10-27 |
Family
ID=36666103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004358785A Expired - Fee Related JP4569284B2 (en) | 2004-12-10 | 2004-12-10 | Integrated circuit debugging method and debugging program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4569284B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015016586A (en) * | 2013-07-09 | 2015-01-29 | 富士ゼロックス株式会社 | Image processing system and program |
US9244883B2 (en) | 2009-04-20 | 2016-01-26 | Samsung Electronics Co., Ltd. | Reconfigurable processor and method of reconfiguring the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002305438A (en) * | 2001-04-05 | 2002-10-18 | Hitachi Ltd | Fpga and method for changing fpga function, and communications equipment using the same |
WO2003007155A1 (en) * | 2001-07-12 | 2003-01-23 | Ip Flex Inc. | Integrated circuit device |
WO2004055986A2 (en) * | 2002-12-13 | 2004-07-01 | Xilinx, Inc. | Reconfiguration of the programmable logic of an integrated circuit |
-
2004
- 2004-12-10 JP JP2004358785A patent/JP4569284B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002305438A (en) * | 2001-04-05 | 2002-10-18 | Hitachi Ltd | Fpga and method for changing fpga function, and communications equipment using the same |
WO2003007155A1 (en) * | 2001-07-12 | 2003-01-23 | Ip Flex Inc. | Integrated circuit device |
WO2004055986A2 (en) * | 2002-12-13 | 2004-07-01 | Xilinx, Inc. | Reconfiguration of the programmable logic of an integrated circuit |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9244883B2 (en) | 2009-04-20 | 2016-01-26 | Samsung Electronics Co., Ltd. | Reconfigurable processor and method of reconfiguring the same |
JP2015016586A (en) * | 2013-07-09 | 2015-01-29 | 富士ゼロックス株式会社 | Image processing system and program |
Also Published As
Publication number | Publication date |
---|---|
JP4569284B2 (en) | 2010-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4629768B2 (en) | Parallelization processing method, system, and program | |
TWI501148B (en) | Conditional compare instructions | |
KR101418969B1 (en) | Processor and methods of compiling | |
US9720793B2 (en) | Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads | |
JP5479942B2 (en) | Parallelization method, system, and program | |
JP3990332B2 (en) | Data processing system | |
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 | |
CN108700864A (en) | The program randomization of network attack controller perturbation in programmable logic controller (PLC) | |
JP4569284B2 (en) | Integrated circuit debugging method and debugging program | |
Biallas et al. | {Counterexample-Guided} Abstraction Refinement for {PLCs} | |
JP5082797B2 (en) | Software partial test system | |
Di Carlo et al. | On the in-field test of the GPGPU scheduler memory | |
US7296199B1 (en) | Systems and methods for defining and utilizing attributes of a processor resource | |
US20110225400A1 (en) | Device for Testing a Multitasking Computation Architecture and Corresponding Test Method | |
JP3641090B2 (en) | Programming support apparatus and method | |
US20230229403A1 (en) | Method for generating source code | |
EP4002096B1 (en) | Design support apparatus and design support method | |
JP5067705B2 (en) | Abnormal test support device, abnormal test support method, and program | |
JP4633073B2 (en) | Data processing system | |
CN114153750B (en) | Code checking method and device, code compiling method and electronic equipment | |
WO2012170675A2 (en) | Verification of computer-executable code generated from a model | |
WO2024046516A1 (en) | Symbolic execution in testing software | |
JPS63214804A (en) | Processor for plc and plc | |
Fujita et al. | High-Level Debugging of Post-Silicon Failures |
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 |