JP2006164186A - Method and program of debugging integrated circuit - Google Patents

Method and program of debugging integrated circuit Download PDF

Info

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
Application number
JP2004358785A
Other languages
Japanese (ja)
Other versions
JP4569284B2 (en
Inventor
Akifumi Watanabe
昭文 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IP Flex Inc
Original Assignee
IP Flex Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by IP Flex Inc filed Critical IP Flex Inc
Priority to JP2004358785A priority Critical patent/JP4569284B2/en
Publication of JP2006164186A publication Critical patent/JP2006164186A/en
Application granted granted Critical
Publication of JP4569284B2 publication Critical patent/JP4569284B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Logic Circuits (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To specify present configuration in dynamic reconfigurable LSI rapidly without increasing memory capacity. <P>SOLUTION: In state that executing of program of dynamic reconfigurable LSI is stopped according to setting, a debugger 24 which acquires configuration data and its source data memorized by a main memory and configuration data stored in an executing bank of configuration memory memorizes to a main memory 60, as static variable, bank name of supply origin of configuration which should be stored in an executing bank (bank 0) when heteronomouse dynamic reconfiguration by processor core occurs, acquires bank-originated value from a matrix 32 upon executing stop of program, compares static variable with the bank-originated value, and determines that autonomouse dynamic reconfiguration occurs when these are disagreement. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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 Patent Document 1, the basic unit to be reconfigured is an arithmetic unit having an arithmetic function of a certain scale, such as from the gate level to ALU, and a plurality of types of arithmetic units are arranged in a matrix form for reconfiguration. It is disclosed to reduce the time required. A system in which a plurality of arithmetic units are arranged in a matrix can be regarded as a system having a large number of hardware resources suitable for parallel processing because each arithmetic unit can execute processing in parallel. .

現時点において、非特許文献2に記載されたように、本出願人が開発した動的再構成可能なLSIにおいては、主にシーケンシャルな処理を担当するRISCプロセッサコア(以下、単に「プロセッサコア」と称する。)と、大規模なデータ処理や演算処理を担当する2次元アレイ構造の「DNA(distributed
Network Architecture)マトリクス」とが含まれる。この「DNAマトリクス」が動的に回路構成を切り換えられる部分に相当する。この動的再構成可能な部分(以下、「マトリクス」と称する。)は、2次元アレイ状に、演算器やメモリなどの回路構成要素が整列した構造をとっている。これらの回路構成要素の接続関係を変更することで、並列演算や演算の組み合わせ(積和演算)を自由に設定することが可能である。
At present, as described in Non-Patent Document 2, in a dynamically reconfigurable LSI developed by the present applicant, a RISC processor core (hereinafter simply referred to as a “processor core”) mainly responsible for sequential processing. And “DNA (distributed) of a two-dimensional array structure in charge of large-scale data processing and arithmetic processing.
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 Patent Document 2, a plurality of (for example, four) configurations of the matrix are stored simultaneously, and an application is executed at high speed while switching between them. For example, as shown in FIG. 3, there are one execution bank configuration and three background bank configurations as configurations that can be stored in the matrix, and each data is stored in each bank. The area is transferred from an external memory or the like.

実際に、マトリクスが動作しているときに、実行バンクにコンフィグレーションのデータを書き込むと、処理内容に影響を与える。そこで、通常は、何れかの・バンクにコンフィグレーションのデータが書き込まれ、必要に応じて、バックグラウンドバンクのコンフィグレーションのデータを、実行バンクに転送する。   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.

コンフィグレーションの切り替えには、プロセッサコア上で実行されるプログラムの制御によって、マトリクスに指示が与えられるもの、および、マトリクス内の内部要因によって自律的に行われるものが存在する。ここで、前者を他律ダイナミックリコンフィグレーション、後者を自律ダイナミックリコンフィグレーションと称する。
国際公開WO03/007155号公報 榊原泰徳、佐藤友美著、「DAPDNAのデバイスアーキテクチャ」、デザインウェーブマガジン(Design Wave Magazine)2004年8月号、「特集 動的再構成可能デバイス その素性と実力 第2章」、CQ出版社、2004年8月、第30頁〜第38頁
In the switching of the configuration, there are one in which an instruction is given to the matrix by control of a program executed on the processor core, and one that is autonomously performed by an internal factor in the matrix. Here, the former is called other-order dynamic reconfiguration, and the latter is called autonomous dynamic reconfiguration.
International Publication WO03 / 007155 Yasunori Sugawara and Tomomi Sato, “Device Architecture of DAPDNA”, Design Wave Magazine August 2004, “Special Feature: Dynamically Reconfigurable Devices, Features and Capabilities, Chapter 2”, CQ Publishing Company, 2004 August, pp. 30-38

設計者は、上記バンクにロードさせて、マトリクスを動作させるための回路情報を作成するが、その際に、回路が所望のように動作しているかを調べ、かつ、不具合な箇所を訂正するデバッグを通常行う。   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 claims 1 to 3 (after the configuration data is loaded, autonomous dynamic reconfiguration occurs more than once, and the execution bank Even when configuration data having the same bank as the supply source is stored), it is possible to specify the correct configuration by applying the present invention.

より好ましい実施態様においては、さらに、前記特定されたバンクが実行バンクであるか否かを判断するステップと、
前記特定されたバンクが実行バンクである場合に、前記バンク情報テーブル中、前記実行バンクが示すコンフィグレーションデータを読み出すステップと、
前記特定されたバンクが実行バンク以外である場合に、前記バンク情報テーブル中、前記特定されたバンクの情報が示すコンフィグレーションデータを読み出すステップと、
前記バンク情報テーブルを、前記特定されたバンクの情報に整合するように更新するステップと、を備えている(請求項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 Patent Document 1 and Non-Patent Document 2 described above. However, FIG. 1 basically shows in detail the components for designing the matrix.

図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 circuit design system 10 according to the present exemplary embodiment includes an algorithm design unit 12 that generates a processor core and matrix algorithm according to a designer's input, for example, by C language description, and algorithm design. A profiler 14 for determining whether the algorithm by the unit 12 should be processed by a processor core or a matrix, and decomposing the algorithm; a first compiler 16 for compiling an algorithm to be processed by the processor core; A DFC compiler 18 that accepts a DFC (Data Flow C) described in C language with an expanded data flow corresponding to an algorithm to be processed by a matrix, generates a configuration file to be described later based on the DFC, and a configuration Rationf Of the processor cores generated by the second compiler 20 that arranges the circuit elements (processing elements: PE) constituting the matrix on the two-dimensional array, and the first compiler and the second compiler, respectively. Based on the source code and the placement and routing information of the PEs in the matrix, the simulator / emulator 22 that executes simulation or emulation, and the matrix is debugged at the configuration level based on the simulation or emulation result. And a debugger 24.

設計者は、入力装置(図示せず)を操作して、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 reference numeral 101 in FIG. 1) is given to the profiler 14, and the profiler 14 checks which function in the algorithm is suitable for the data flow (whether the processing load is heavy). A description (see reference numeral 103) corresponding to a data flow function is input to the DFC compiler 18. The DFC compiler 18 generates a configuration file (see reference numeral 104) based on the C description for the matrix. In the configuration file, a data flow including an arithmetic unit (ALU, register, etc.) and a connection between them is formed to realize the algorithm.

また、アルゴリズムからDFCの関数を除いた部分は、第1のコンパイラ16によりコンパイルされる。その際に、DFCコンパイラ18で生成された、ラッパ(wrapper)関数(符号105参照)も、第1のコンパイラ16においてコンパイルされる。   Further, the first compiler 16 compiles the part excluding the DFC function from the algorithm. At that time, a wrapper function (see reference numeral 105) generated by the DFC compiler 18 is also compiled by the first compiler 16.

DFCコンパイラ18において生成されたコンフィグレーションファイル104は、第2のコンパイラ20に入力される。第2のコンパイラは、コンフィグレーションにしたがって、マトリクスを構成する実際のPE間の配線を決定する。   The configuration file 104 generated by the DFC compiler 18 is input to the second compiler 20. The second compiler determines the wiring between the actual PEs constituting the matrix according to the configuration.

このようにして生成された、コンパイルされたプロセッサコアのC記述、コンフィグレーションのラッパおよびマトリクスを構成するPEの配置配線情報がリンクされて、オブジェクトコード106が出来上がる。   The object code 106 is completed by linking the C description of the compiled processor core, the configuration wrapper, and the placement and routing information of the PEs forming the matrix.

シミュレータ/エミュレータ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 first compiler 16 and the placement and routing information of PEs constituting the matrix, and analyzes the number of execution cycles of the LSI, the operation of the matrix and the processor core, and the like in detail. can do.

デバッガ24は、マトリクスをコンフィグレーションのレベルでデバッグすることができる。また、図示していないが、デバッガ24は、プロセッサコアのC記述、或いは、アセンブリ言語レベルでのデバッグも可能である。デバッガ24においては、プロセッサコア、マトリクスの双方に対して、条件付のブレークポイントを設定することができる。   The debugger 24 can debug the matrix at the configuration level. Although not shown, the debugger 24 can also debug the C description of the processor core or the assembly language level. In the debugger 24, conditional breakpoints can be set for both the processor core and the matrix.

このように構成された回路設計システムにて設計される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 processor core 30 and a matrix 32, and can be dynamically reconfigured by changing the connection between PEs (for example, reference numeral 38) in the matrix.

マトリクス32は、PE38にデータを与えるためのロード・バッファ34、演算結果を一時的に記憶するストアバッファ36、複数のPEの配置配線情報を記憶するコンフィグレーションメモリ40、および、LSI外部からマトリクス32に直接与えられる命令などの入出力を制御するダイレクトI/O42を有する。   The matrix 32 includes a load buffer 34 for supplying data to the PE 38, a store buffer 36 for temporarily storing calculation results, a configuration memory 40 for storing arrangement and wiring information of a plurality of PEs, and a matrix 32 from outside the LSI. A direct I / O 42 for controlling input / output of a command or the like directly given to the computer.

プロセッサコア30は、たとえば、32ビットRISCであり、汎用レジスタ(図示せず)を内蔵し、また、命令キャッシュ44やデータキャッシュ44に接続される。また、LSIは、高速演算に不可欠な広帯域のデータ入出力のため、クロスバ・スイッチ回路の一種であるスイッチ・バス48と、PSIインタフェース、DDR・SDRAMインタフェース、DMAコントローラなどを含む各種インタフェース/コントローラ50とを有する。   The processor core 30 is, for example, a 32-bit RISC, incorporates a general-purpose register (not shown), and is connected to the instruction cache 44 and the data cache 44. Further, since the LSI is a broadband data input / output essential for high-speed computation, a switch bus 48, which is a kind of crossbar switch circuit, and various interfaces / controllers 50 including a PSI interface, a DDR / SDRAM interface, a DMA controller, and the like. And have.

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 configuration memory 40. Then, the PE connection in the matrix 32 is changed according to the configuration data (that is, the matrix is rewritten).

図3は、コンフィグレーションメモリ40の構成をより詳細に示すブロックダイヤグラムである。図3に示すように、本実施の形態においては、4種類のコンフィグレーションデータを記憶することができる。図3において、バンク0(ゼロ)は実行バンクであり(符号300参照)、実行バンク300に格納されたコンフィグレーションが、マトリクス40の配置配線情報として利用される。   FIG. 3 is a block diagram showing the configuration of the configuration memory 40 in more detail. As shown in FIG. 3, in this embodiment, four types of configuration data can be stored. In FIG. 3, bank 0 (zero) is an execution bank (see reference numeral 300), and the configuration stored in the execution bank 300 is used as the placement and routing information of the matrix 40.

また、バンク1〜バンク3はバックグラウンドバンクであり(符号301〜303参照)、マトリクスにおけるコンフィグレーションの切り替え(他律ダイナミックリコンフィグレーション、および、自律ダイナミックリコンフィグレーション)に伴って、選択回路304を経て、実行バンクであるバンク0にロードされて、配置配線情報として利用され得る状態となる。   Banks 1 to 3 are background banks (refer to reference numerals 301 to 303), and the selection circuit 304 is switched in accordance with the switching of the configuration in the matrix (other-order dynamic reconfiguration and autonomous dynamic reconfiguration). Then, it is loaded into bank 0, which is the execution bank, and can be used as placement and routing information.

他律ダイナミックリコンフィグレーションの場合には、通常、バンク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 bank 1 to bank 3 is the function of the program running on the processor core. The following is the current configuration. Here, the current configuration refers to a configuration that is stored in the execution bank (bank 0) and reflected in the arrangement and wiring of the matrix at that time.

本実施の形態にかかるデバッグは、コンフィグレーションデータとともに、コンフィグレーションのソースデータ(以下、「コンフィグレーションのデバッグ情報」或いは単に「デバッグ情報」と称する。)を、主メモリに配置し、コンフィグレーションデータがバンクにロードされる際に、そのコンフィグレーションのデバッグ情報領域へのポインタを、バンク毎のテーブル(以下、「バンク情報テーブル」と称する。)に格納することにより実現される。このようなデバッグ情報領域を持つことを支援するプロセッサコアのプログラムのライブラリをデバッグ用制御ライブラリと予備、通常動作用制御ライブラリの機能に加えてデバッグ用処理を持つ。デバッグが終了したプログラムは、通常動作用制御ライブラリを使って余分な処理を経ることなく実行することができる。その一方、デバッグ用制御ライブラリを使用すると、状態によって実行を止め、実行途中の状態をモニターし、また、状態を変更するなどデバッグ作業を行いつつ、アプリケーションを動作させることができる。   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 debugger 24 includes a debug monitor 52, a configuration reading unit 54, and a configuration determination unit 56 that determines a configuration to be output to the debug monitor 52.

デバッグ用モニター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 debug monitor 52.

コンフィグレーション読み込み部54は、実行を途中で止められたアプリケーションの現在状態を知るために、コンフィグレーションデータを読み込むことができる。本実施の形態においては、コンフィグレーション読み込み部54は、マトリクス32のコンフィグレーションメモリ40に格納されたバンク0のコンフィグレーションデータを読み込み、かつ、主メモリ60中のバンク情報テーブル62において、バンク0に対応付けられたコンフィグレーションのコンフィグレーションデータおよびデバッグ情報を、主メモリ60から読み出して、これらを比較し、正しくコンフィグレーションがロードされているかを調べることが可能である。   The configuration reading unit 54 can read configuration data in order to know the current state of an application whose execution has been stopped midway. In the present embodiment, the configuration reading unit 54 reads the configuration data of bank 0 stored in the configuration memory 40 of the matrix 32, and stores it in bank 0 in the bank information table 62 in the main memory 60. It is possible to read the configuration data and debug information of the associated configuration from the main memory 60, compare them, and check whether the configuration is correctly loaded.

本実施の形態においては、プロセッサコア30は、制御ライブラリ中の関数「マトリクス_load」を利用して、たとえば、主メモリ60から、所定のコンフィグレーションデータ(たとえば、コンフィグレーション名=A(符号62−1参照))を読み出して、コンフィグレーションメモリ40の所望のバンク(たとえば、バンク1)にロードする。また、この動作に伴って、バンク情報テーブル66中、バンク1について、コンフィグレーションデータ(コンフィグレーション名=A)をロードしたことを示すポインタを書き込むことで、バンク情報テーブル66を更新する。   In the present embodiment, the processor core 30 uses a function “matrix_load” in the control library, for example, from the main memory 60 to store predetermined configuration data (for example, configuration name = A (reference numeral 62 − 1))) is read and loaded into a desired bank (eg bank 1) of the configuration memory 40. In association with this operation, the bank information table 66 is updated by writing a pointer indicating that configuration data (configuration name = A) has been loaded for the bank 1 in the bank information table 66.

また、他律ダイナミックリコンフィグレーションが発生した場合には、制御ライブラリ中の関数「マトリクス_change」を利用して、バンク1〜3のいずれかのバンクに格納されたコンフィグレーションデータを、バンク0にコピーする。この場合にも、バンク0について、バンク情報テーブル66が更新される。このように、他律ダイナミックリコンフィグレーションにおいては、バンク情報テーブル66に記載された、各バンクに格納されたコンフィグレーションを示す情報(たとえば、コンフィグレーション名)と、実際の、コンフィグレーションメモリ40の各バンクに格納されたコンフィグレーションデータとは一致する。   Also, when other-order dynamic reconfiguration occurs, the configuration data stored in any one of banks 1 to 3 is stored in bank 0 using the function “matrix_change” in the control library. make a copy. Also in this case, the bank information table 66 is updated for the bank 0. As described above, in other-order dynamic reconfiguration, information (for example, configuration name) indicating the configuration stored in each bank described in the bank information table 66 and the actual configuration memory 40 are stored. It matches the configuration data stored in each bank.

しかしながら、自律ダイナミックリコンフィグレーションにおいては、マトリクス32において、自律的に、バンク1〜3のうちのコンフィグレーションが、バンク0に読み込まれ、コンフィグレーションの切り替えが実行されてしまうため、割り込みなどの設定をしない限り、いつ、どのコンフィグレーション切り替えが発生したかを、外部から知ることができないという問題点がある。   However, in the autonomous dynamic reconfiguration, in the matrix 32, the configuration of the banks 1 to 3 is autonomously read into the bank 0 and the configuration switching is executed. Unless it is done, there is a problem that it is impossible to know from the outside when and which configuration switching has occurred.

デバッガ24において、デバッグ中のアプリケーションが何らかの要因で停止したときに、自律ダイナミックリコンフィグレーションが発生していると、バンク情報テーブルのバンク0に関連付けられた情報(コンフィグレーション名)は意味の無いものになってしまう。   In the debugger 24, if the application being debugged has stopped for some reason and an autonomous dynamic reconfiguration has occurred, the information (configuration name) associated with bank 0 in the bank information table is meaningless. Become.

本実施の形態においては、コンフィグレーション読み込み部54は、コンフィグレーションメモリ40のバンク0に格納されたコンフィグレーションデータが、バンク1〜3の何れかからロードされたかが書かれている、コンフィグレーションメモリ40中の特定のフィールドからのデータも読み込むことができるように構成されている。これにより、自律ダイナミックリコンフィグレーションが発生したことを判断し、ロード元が示すバンクに格納されたコンフィグレーション名を有するデバッグ情報を、主メモリ60から読み出す。このような構成を採用すれば、自律ダイナミックリコンフィグレーションが発生した場合であっても、正しいコンフィグレーションのデバッグ情報を取得することが可能である。   In the present embodiment, the configuration reading unit 54 writes in which of the banks 1 to 3 the configuration data stored in the bank 0 of the configuration memory 40 is loaded. It is configured to be able to read data from specific fields inside. Thereby, it is determined that the autonomous dynamic reconfiguration has occurred, and the debug information having the configuration name stored in the bank indicated by the load source is read from the main memory 60. By adopting such a configuration, it is possible to acquire debug information of a correct configuration even when autonomous dynamic reconfiguration occurs.

しかしながら、以下の場合には、上述した構成を採用しても、正しいコンフィグレーションのデバッグ情報を取得することができない。
(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 debugger 24 for solving these problems will be described in detail below.

[第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 bank 1 has been targeted at that time.

また、バンク0〜バンク3と記載された方形のブロック510は、コンフィグレーションメモリのバンクを示す。それぞれのバンクにかかるブロック(たとえば、符号511、512参照)中のアルファベットは、当該バンクに格納されたコンフィグレーション名を示す。たとえば、バンク0のブロック(符号511参照)には、コンフィグレーション名=Aのコンフィグレーションデータが格納されている。また、バンク0のブロック511において、左側に括弧()で示されているコンフィグレーション名は、主メモリのバンク情報テーブル(図4の符号44参照)において、バンク0に格納されているコンフィグレーション名を示す。また、バンク0のブロック511において、括弧[]で示されているコンフィグレーション名は、カレントコンフィグレーション、つまり、バンク0のコンフィグレーションが、どのバンク由来のコンフィグレーションであるかを示す値(以下、これを「バンク由来値」とも称する。)である。したがって、括弧[]で示されるバンク名は、本実施の形態にかかるコンフィグレーション読み込み部54により取得することができる。   A rectangular block 510 described as bank 0 to bank 3 indicates a bank of the configuration memory. The alphabets in the blocks related to the respective banks (for example, reference numerals 511 and 512) indicate the configuration names stored in the banks. For example, the configuration data of configuration name = A is stored in the block of bank 0 (see reference numeral 511). In the block 511 of the bank 0, the configuration name indicated in parentheses () on the left side is the configuration name stored in the bank 0 in the main memory bank information table (see reference numeral 44 in FIG. 4). Indicates. Further, in the block 511 of the bank 0, the configuration name indicated in parentheses [] is a value indicating the current configuration, that is, the bank-derived configuration (hereinafter, the configuration of the bank 0). This is also referred to as “bank-derived value”). Therefore, the bank name indicated in parentheses [] can be acquired by the configuration reading unit 54 according to the present embodiment.

図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 bank 0, bank-derived value = 1. Along with this, the bank information table of the main memory is rewritten (see reference numeral 520).

ここで、図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 bank 2 is copied to the current configuration (bank 0). Then, consider a case where the execution of the program is stopped by the debugger 24 thereafter. Since the autonomous dynamic reconfiguration is not recognized by the processor core, the bank information table is not changed as shown in FIG. On the other hand, actually, bank 0 stores configuration data derived from bank 2 (configuration name = B). Therefore, in FIG. 5B, if the debugger 24 refers to the bank information table in the main memory and specifies the configuration name (= A) from which debug information is to be extracted, an error occurs.

そこで、本実施の形態においては、第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 debugger 24 compares the bank number obtained from the static variable with the bank-derived value obtained by the configuration reading unit 54. And detecting the occurrence of autonomous dynamic reconfiguration.

より詳細には、図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 bank 1 is copied to the bank 0 by the other-order dynamic reconfiguration, so that the static variable pb = 1.

デバッガ24が、ブレークポイントなど設定された条件の下などで、プログラムの実行を停止すると(ステップ611)、デバッガ24のコンフィグレーション読み込み部54は、コンフィグレーションメモリ40からバンク由来値を読み出し、コンフィグレーション決定部56が、静的変数pbと、取得したバンク由来値とを比較する(ステップ612)。両者が一致した場合には(ステップ613でイエス(Yes))、デバッグ用モニター52は、通常の通り、バンク情報テーブルにおいて、バンク0が示すコンフィグレーション名のデバッグ情報を取得して出力する(ステップ614)。その一方、両者が一致しなかった場合には(ステップ613でノー(No))、デバッガ24は、バンク由来値を参照して、当該バンク由来値に対応するバンク番号が示すコンフィグレーション名のデバッグ情報を取得して出力する(ステップ615)。   When the debugger 24 stops executing the program under a set condition such as a breakpoint (step 611), the configuration reading unit 54 of the debugger 24 reads the bank-derived value from the configuration memory 40, and configures the configuration. The determination unit 56 compares the static variable pb with the acquired bank-derived value (step 612). If the two match (Yes in step 613), the debug monitor 52 acquires and outputs debug information of the configuration name indicated by bank 0 in the bank information table as usual (step 613). 614). On the other hand, if they do not match (No in step 613), the debugger 24 refers to the bank-derived value and debugs the configuration name indicated by the bank number corresponding to the bank-derived value. Information is acquired and output (step 615).

図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 bank 2 corresponding to the bank-derived value is acquired.

その後、以後のプログラムの実行でもデバッグを可能にするために、デバッガ24は、静的変数pbを更新し(本例では「+1」)、かつ、バンク情報テーブルのバンク0に関連付けたコンフィグレーション名を、バンク由来値が示すものに更新する(ステップ616)。   Thereafter, in order to enable debugging in subsequent program execution, the debugger 24 updates the static variable pb (in this example, “+1”) and the configuration name associated with bank 0 in the bank information table. Is updated to the one indicated by the bank-derived value (step 616).

このような構成により、静的変数と、由来値との一致を判断することで、自律コンフィグレーションの発生を検知することが可能となる。   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 debugger 24.

図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 bank 0, so that the static variable pb = 1. In addition, because of other-order dynamic reconfiguration, the bank information table of the main memory is also associated with bank 0 and stores configuration name = A.

次いで、図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 bank 0, and further shown in FIG. 7C. Thus, it is considered that new configuration data (configuration name = D) is loaded into the bank 2 by the function “matrix_load” of the control library. As the function “matrix_load” of the control library is executed, the configuration name = D is stored in association with bank 2 in the bank information table in the main memory.

この場合、第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 bank 2 is acquired in the bank information table based on the bank-derived value. Then, “D” is obtained. However, as shown in FIG. 7C, the configuration data of configuration name = B is actually stored in bank 2 of the configuration memory, and the configuration name obtained as a result of the first method is stored. Does not match.

そこで、第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 configuration reading unit 54 acquires the bank-derived value from the configuration memory 40, and the configuration determining unit 56 compares the static variable pb with the bank-derived value (step 802). If it is considered that autonomous dynamic reconfiguration has occurred, that is, if they do not match (No in step 803), the configuration determination unit 56 associates with bank 0 in the bank information table. The bank-derived value acquired by the configuration reading unit 54 is stored (step 804). Further, the static variable pb is updated to the bank-derived value (step 805). In other words, these states are matched as if the other-order dynamic reconfiguration occurred and the bank information table and the static variable were rewritten. Thereafter, the configuration data is stored in the designated bank of the configuration memory (step 806).

上記図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 bank 0 of the bank information table and is rewritten to “static variable pb = 2”.

デバッガ24によるプログラムの実行停止時には、第1の手法と同様に、図6(b)に示す処理が実行される。図6(b)の処理において、静的変数pbと、コンフィグレーション読み込み部54により読み込まれるバンク由来値とが一致し、自律ダイナミックリコンフィグレーションが発生していないと判断され(ステップ613でノー(No))、バンク情報テーブルのバンク0に関連付けられたコンフィグレーション名(この場合には「B」)のデバッグ情報が主メモリから読み出されて出力される。このように、デバッグ用モニター52に正しい表示をすることができる。   When the execution of the program by the debugger 24 is stopped, the processing shown in FIG. 6B is executed as in the first method. In the process of FIG. 6B, it is determined that the static variable pb and the bank-derived value read by the configuration reading unit 54 match, and that no autonomous dynamic reconfiguration has occurred (NO in step 613). No)), debug information of the configuration name (in this case “B”) associated with bank 0 of the bank information table is read from the main memory and output. In this way, a correct display can be made on the debug monitor 52.

[第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 debugger 24.

図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 bank 0 in the bank information table is extracted. However, in reality, new configuration data (configuration name = D) is loaded into the bank by the control library “matrix_load”, and the configuration data is further transferred to bank 0 by autonomous dynamic reconfiguration. Therefore, the debug information with the configuration name = D must be displayed.

そこで、第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 debugger 24, the configuration determination unit 56 generates a matching pattern from the current configuration (configuration of bank 0), and the bank determined to be the closest is the current configuration supplier It is judged that.

[第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 bank 1, the presence pattern of the PE constituting the configuration data with the configuration name = D is the main pattern. In the memory, it is stored in association with bank 1.

また、他律ダイナミックリコンフィグレーションが発生した場合には、制御ライブラリの関数「マトリクス_change」により、あるバンクのコンフィグレーションデータが、バンク0にコピーされるときにも、当該コピー先のバンク番号と、PEの存在パターンとが関連付けられる。これにより、バンク番号を参照して、主メモリからPEの存在パターンを読み出すことができる。   Also, when other-order dynamic reconfiguration occurs, when the configuration data of a certain bank is copied to bank 0 by the function “matrix_change” of the control library, the copy destination bank number and , PE presence patterns are associated with each other. Thereby, the presence pattern of the PE can be read from the main memory with reference to the bank number.

図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 configuration reading unit 54 of the debugger 24 reads the configuration of the bank 0 in the matrix 32 (step 1111), and the configuration determining unit 56 A presence pattern of PEs constituting the read configuration is generated and encoded (step 1112). 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 Step 1112, and matches. A thing is found (step 1113). The configuration determination unit 56 determines whether an existence pattern that matches the existence pattern obtained from the configuration data that actually exists in the bank 0 is associated with the bank 0 (step 1114).

ステップ1114でノー(No)と判断された場合には、バンク情報テーブルにおいて、上記読み出されたコンフィグレーションの存在パターンと一致する存在パターンに関連付けられたバンク番号に対応するコンフィグレーション名のデバッグ情報を取得して出力するとともに(ステップ1115)、当該バンク番号に対応するコンフィグレーション名を、バンク0にコピーするよう、バンク情報テーブルが更新される(ステップ1116)。なお、ステップ1114でイエス(Yes)と判断された場合には、バンク情報テーブルにおいてバンク0のコンフィグレーション名のデバッグ情報を読み出して出力すればよい(ステップ1117)。   If NO in step 1114, the debug information of the configuration name corresponding to the bank number associated with the presence pattern that matches the presence pattern of the read configuration in the bank information table. Is acquired and output (step 1115), and the bank information table is updated so that the configuration name corresponding to the bank number is copied to bank 0 (step 1116). If it is determined as Yes in step 1114, the debug information of the configuration name of bank 0 may be read and output in the bank information table (step 1117).

このように、第3の手法では、コンフィグレーション読み出し部54が読み出したコンフィグレーションデータの存在パターンと、主メモリに記憶しておいたバンク0〜バンク3までの存在パターンとを比較し、一致するもの(或いは後述するように最も類似するもの)をバンク0に供給されたコンフィグレーションであると判断して、バンク情報テーブルおよび静的変数を更新する。   As described above, in the third method, the existence pattern of the configuration data read by the configuration reading unit 54 is compared with the existence patterns stored in the main memory from the bank 0 to the bank 3 so as to match. One (or the most similar one as will be described later) is determined to be the configuration supplied to bank 0, and the bank information table and static variables are updated.

[第3の手法にかかる具体的処理(その2)]
第2の具体的処理では、図11のステップ1102、1103において、コンフィグレーションを構成するPEの存在パターンを、符号化せずにそのまま保存する。同様に、ステップ1112においても、コンフィグレーション読み出しにより取得されたコンフィグレーションデータに基づいて、コンフィグレーションを構成するPEの存在パターンを生成する。また、存在パターンの比較(ステップ1113)において、双方の存在パターンが完全に一致しない場合でも、コンフィグレーション読み出しにより取得されたコンフィグレーションデータに基づく存在パターンに最も類似する存在パターンを選択するように構成される。
[Specific Processing According to Third Method (Part 2)]
In the second specific process, in Steps 1102 and 1103 of FIG. 11, the existence pattern of the PE constituting the configuration is stored as it is without being encoded. Similarly, also in step 1112, the presence pattern of PE constituting the configuration is generated based on the configuration data acquired by the configuration reading. Further, in the presence pattern comparison (step 1113), even when both of the presence patterns do not completely match, the presence pattern most similar to the presence pattern based on the configuration data acquired by the configuration read is selected. Is done.

第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 banks 0 to 3. And the presence pattern C is stored (see FIG. 12A). In FIG. 10B, when the configuration with the configuration name = D is loaded into the bank 1 of the configuration memory by the function “matrix_load” of the control library, the configuration with the configuration name = D is associated with this. An existence pattern (existence pattern D) is generated for the distribution data. This is stored in the main memory in association with the bank 1 (see FIG. 12B). The bank information table is also rewritten.

図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 bank 0 of the matrix configuration memory is stored in the bank 1 according to the bank information table. It is determined that the configuration has been made (configuration name = D). Therefore, the bank information table is updated as shown in FIG. 12C, and the static variable pb is also updated as shown in FIG.

[第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 debugger 24.

図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 bank 1 of the configuration memory by the function “matrix_load” of the control library. .

第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 configuration reading unit 54 with the presence pattern associated with the bank number of the bank information table. Think about it. However, in the state shown in FIG. 13 (e), since configuration data with configuration name = E is loaded into bank 1, the configuration names = A, E, B, and C exist in the main memory. Only the pattern is left, so that it is impossible to specify an appropriate configuration name. In the fourth method, an appropriate configuration name is specified even in the above-described case, and the debugger monitor can output the debugger information.

第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 Step 1102 of FIG. It is stored in association with the bank number. Further, as shown in FIG. 14, in the function “matrix_load” of the control library (step 1401), the static variable pb is acquired as a bank number at the time of other-order dynamic reconfiguration, and the configuration reading unit 54 The bank-derived value is acquired from the configuration memory 40, and the configuration determining unit 56 compares the static variable pb with the bank-derived value (step 1402).

自律ダイナミックリコンフィグレーションが発生していないと考えられる場合、つまり、これらが一致する場合には(ステップ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 configuration reading unit 54. A presence pattern is generated based on the configuration data (step 1404).

次いで、コンフィグレーション決定部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 Step 1112, and matches. A thing is found (step 1405). Further, the configuration determination unit 56 updates the configuration name of the bank 0 to the configuration name of the matching existence pattern in the bank information table of the main memory (step 1406) and matches the presence name in the bank information table. The pattern configuration name is updated to the bank number that was stored (step 1407).

ステップ1403でノー(No)と判断された場合には、第2の手法と同様である。図14において、ステップ1408、1409は、図8のステップ804、805にそれぞれ対応する。   When it is determined NO in step 1403, the second method is the same. In FIG. 14, steps 1408 and 1409 correspond to steps 804 and 805 of FIG. 8, respectively.

このような処理の後、コンフィグレーションメモリの指定のバンクに、コンフィグレーションデータがロードされる(ステップ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 (steps 1404 to 1407) shown in FIG. The state of the configuration memory. FIGS. 15C and 15D show the state of the bank information table and the configuration memory before loading the configuration data shown in FIG. 13D and after the execution of the processing shown in FIG. Indicates.

コンフィグレーション読み出しにより読み出されたコンフィグレーションデータのコンフィグレーション名=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 bank 1 in the bank information table of the main memory. . Therefore, as shown in FIG. 15C, the bank information table is updated so as to indicate that bank 0 stores configuration data of configuration name = D.

図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 debugger 24 can read out and output debug information of an appropriate configuration based on the configuration name D of the bank 0 in the bank information table.

[第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 debugger 24 can operate by providing any one of the first to fourth methods according to the level required by the designer for the debugger. Further, without using the above-described method, the configuration name in the bank information table is simply identified according to the bank-derived value read from the configuration reading unit 54 and the debug information is acquired, as in the past. It is also possible to set as follows.

ここでは、静的な機能選択する実装(静的実装)と、動的に機能選択を許す実装(動的実装)とを考えることができる。静的実装においては、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.

図1は、本実施の形態にかかる回路設計システムの概略を示すブロックダイヤグラムである。FIG. 1 is a block diagram showing an outline of a circuit design system according to the present embodiment. 図2は、本実施の形態にかかるLSIの概略を示すブロックダイヤグラムである。FIG. 2 is a block diagram showing an outline of the LSI according to the present embodiment. 図3は、コンフィグレーションメモリの構成をより詳細に示すブロックダイヤグラムである。FIG. 3 is a block diagram showing the configuration of the configuration memory in more detail. 図4は、本実施の形態にかかるデバッガ、および、デバッガに関連する部材(主メモリ等)の構成を示すブロックダイヤグラムである。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. 図5(a)、(b)は、それぞれ、コンフィグレーションを生じるイベント、コンフィグレーションメモリに格納されたコンフィグレーション名、および、バンク情報テーブルの例を示す図である。FIGS. 5A and 5B are diagrams showing an example of an event that generates a configuration, a configuration name stored in the configuration memory, and a bank information table, respectively. 図6は、本実施の形態にかかる第1の手法において実行される処理を示すフローチャートである。FIG. 6 is a flowchart showing processing executed in the first method according to the present embodiment. 図7(a)〜(c)は、それぞれ、イベントにしたがった、コンフィグレーションメモリの状態およびバンク情報テーブルの状態の例を示す図である。FIGS. 7A to 7C are diagrams showing examples of the state of the configuration memory and the state of the bank information table according to the event, respectively. 図8は、本実施の形態にかかる第2の手法において実行される処理を示すフローチャートである。FIG. 8 is a flowchart showing processing executed in the second method according to the present embodiment. 図9(a)〜(c)は、それぞれ、第2の手法を適用した場合の、コンフィグレーションメモリの状態およびバンク情報テーブルの状態の例を示す図である。FIGS. 9A to 9C are diagrams illustrating examples of the state of the configuration memory and the state of the bank information table when the second method is applied, respectively. 図10(a)〜(d)は、それぞれ、イベントにしたがった、コンフィグレーションメモリの状態およびバンク情報テーブルの状態の例を示す図である。FIGS. 10A to 10D are diagrams showing examples of the state of the configuration memory and the state of the bank information table according to the event, respectively. 図11は、本実施の形態にかかる第3の手法において実行される処理を示すフローチャートである。FIG. 11 is a flowchart showing processing executed in the third method according to the present embodiment. 図12(a)〜(d)は、それぞれ、第3の手法を適用した場合の、コンフィグレーションメモリの状態およびバンク情報テーブルの状態の例を示す図である。FIGS. 12A to 12D are diagrams showing examples of the state of the configuration memory and the state of the bank information table when the third method is applied, respectively. 図13(a)〜(e)は、それぞれ、イベントにしたがった、コンフィグレーションメモリの状態およびバンク情報テーブルの状態の例を示す図である。FIGS. 13A to 13E are diagrams showing examples of the state of the configuration memory and the state of the bank information table according to the event, respectively. 図14は、本実施の形態にかかる第4の手法において実行される処理を示すフローチャートである。FIG. 14 is a flowchart showing processing executed in the fourth method according to the present embodiment. 図15は、図14に示す処理を具体的に説明する図である。FIG. 15 is a diagram for specifically explaining the processing shown in FIG. 14. 図16(a)〜(e)は、それぞれ、第4の手法を適用した場合の、コンフィグレーションメモリの状態およびバンク情報テーブルの状態の例を示す図である。FIGS. 16A to 16E are diagrams showing examples of the state of the configuration memory and the state of the bank information table when the fourth method is applied, respectively. 図17は、本実施の形態にかかる第1の手法〜第4の手法のそれぞれの相互関係を示す図である。FIG. 17 is a diagram illustrating the mutual relationship between the first method to the fourth method according to the present embodiment.

符号の説明Explanation of symbols

12 アルゴリズム設計部
14 プロファイラ
16 第1のコンパイラ
18 DFCコンパイラ
20 第2のコンパイラ
22 シミュレータ/エミュレータ
24 デバッガ
52 デバッグ用モニター
54 コンフィグレーション読み出し部
56 コンフィグレーション決定部
DESCRIPTION OF SYMBOLS 12 Algorithm design part 14 Profiler 16 1st compiler 18 DFC compiler 20 2nd compiler 22 Simulator / emulator 24 Debugger 52 Debug monitor 54 Configuration reading part 56 Configuration determination part

Claims (18)

主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能な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.
主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能な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.
前記パターンを生成するステップが、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を含む存在パターンを生成するステップを有することを特徴とする請求項4ないし6の何れか一項に記載のデバッグ方法。 7. The step of generating the pattern includes 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. The debugging method according to one item. 前記パターンを生成するステップが、前記マトリクス中の回路構成要素のそれぞれを利用しているか否かを示すビット列を符号化した存在パターンを生成するステップを有することを特徴とする請求項4ないし6の何れか一項に記載のデバッグ方法。 The step of generating the pattern includes a step of generating a presence pattern obtained by encoding a bit string indicating whether or not each circuit component in the matrix is used. The debugging method according to any one of the above. 前記パターンを生成するステップが、前記コンフィグレーションデータの少なくとも部分を符号化するステップを有することを特徴とする請求項4ないし6の何れか一項に記載のデバッグ方法。 The debugging method according to any one of claims 4 to 6, wherein the step of generating the pattern includes a step of encoding at least a part of the configuration data. 主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能な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.
主としてシーケンシャルな処理を実行するプロセッサコア、および、データ処理および演算を担当し、かつ、その2次元アレイ構造の回路構成要素間の接続を変更することで、そのコンフィグレーションを動的に変更可能なマトリクスと、を備えた動的再構成可能LSIであって、
前記マトリクスが、複数のコンフィグレーションのそれぞれを表わすコンフィグレーションデータを記憶する複数のバンクを有するコンフィグレーションメモリを有し、かつ、前記複数のバンクのうち実行バンクに格納されたコンフィグレーションデータに基づいて回路構成要素間の接続が規定され、かつ、前記プロセッサコアからの指示に従う他律ダイナミックリコンフィグレーションにより、或いは、マトリクス自身による自律ダイナミックリコンフィグレーションにより、各バンクに格納されたコンフィグレーションデータを前記実行バンクにコピーすることにより、そのコンフィグレーションを変更するとともに、 当該コンフィグレーションの変更に伴って、実行バンクにコピーされたコンフィグレーションデータの供給元となったバンクを特定するバンク由来値を記憶するように構成され、
前記プロセッサコアが、主メモリに格納されたコンフィグレーションデータを、前記コンフィグレーションメモリの所望のバンクにロードするロード命令、および、何れかのバンクに格納されたコンフィグレーションを実行バンクにコピーさせて他律ダイナミックリコンフィグレーションを発生させるコンフィグレーション変更命令を実行可能であり、かつ、前記ロード命令およびコンフィグレーション変更命令の実行に伴って、前記主メモリ中、バンクを特定する情報と、コンフィグレーションを特定するコンフィグレーション名と、が関連付けられたバンク情報テーブルを更新するように構成された、動的再構成可能な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.
JP2004358785A 2004-12-10 2004-12-10 Integrated circuit debugging method and debugging program Expired - Fee Related JP4569284B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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