JP2006287675A - 半導体集積回路 - Google Patents
半導体集積回路 Download PDFInfo
- Publication number
- JP2006287675A JP2006287675A JP2005105812A JP2005105812A JP2006287675A JP 2006287675 A JP2006287675 A JP 2006287675A JP 2005105812 A JP2005105812 A JP 2005105812A JP 2005105812 A JP2005105812 A JP 2005105812A JP 2006287675 A JP2006287675 A JP 2006287675A
- Authority
- JP
- Japan
- Prior art keywords
- configuration information
- state transition
- management unit
- integrated circuit
- semiconductor integrated
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
【課題】ダイナミック・リコンフィギュラブル・プロセッサにおいて、小さいハードウェア規模で構成情報を効果的に格納し、処理性能を向上させる機構を提供する。また、柔軟性と高い動作周波数を両立する実装の容易な状態遷移機構を提供する。
【解決手段】構成情報を階層的に記憶し、演算部60での処理を停止させることなく、以後の処理に必要な構成情報を第1の記憶領域(構成情報バッファ1000)から第2の記憶領域(構成情報レジスタ1800,2300)へ予め転送するように構成する。また、複数の状態遷移モードにより、異なる状態遷移条件に対する条件判定処理を実行するように構成する。
【選択図】図1
【解決手段】構成情報を階層的に記憶し、演算部60での処理を停止させることなく、以後の処理に必要な構成情報を第1の記憶領域(構成情報バッファ1000)から第2の記憶領域(構成情報レジスタ1800,2300)へ予め転送するように構成する。また、複数の状態遷移モードにより、異なる状態遷移条件に対する条件判定処理を実行するように構成する。
【選択図】図1
Description
本発明は、半導体集積回路に関し、特に、動的に論理機能の再構成が可能な半導体集積回路の構成に適用して有効な技術に関する。
近年、コンピュータ・アーキテクチャの分野においてダイナミック・リコンフィギュラブル技術が注目を集めている。ダイナミック・リコンフィギュラブル技術とは、LSIの動作中に内部の論理機能を切り替えることで、処理に必要とされる機能を必要なタイミングで実装する技術を指す。この技術を利用したダイナミック・リコンフィギュラブル・プロセッサは、内部に論理機能の切り替えが可能な演算セルを多数備えることで、専用LSI並みの高い処理性能を達成できる。また、複数の処理で演算セルを時間軸方向に分割して共用することができるため、専用LSIを複数搭載する場合と比べて小面積化が可能という特徴もある。
演算セル毎に異なる論理機能を実装するには、演算セル毎にその論理機能を定義する構成情報が必要となる。また、複数の論理機能を切り替えて処理を実行するには、個々の演算セルは、対応する複数の構成情報が必要となる。このように、ダイナミック・リコンフィギュラブル・プロセッサは、処理の実行に大量の構成情報を必要とするため、構成情報の転送に起因する性能低下が発生しやすい。
そこで、必要な構成情報をプロセッサ内部に格納する構成(例えば、非特許文献1参照)や、以後の処理に必要な構成情報を先読みする構成(例えば、特許文献1参照)が知られている。
また、動的に論理機能を切り替える際、処理を中断するため、構成情報の変更に要する時間が処理のオーバヘッドになる。
そこで、プロセッサ内部にシーケンサを設け、シーケンサにより構成情報の変更を制御することで、高速化を達成する構成(例えば、非特許文献1参照)が知られている。
特開2004−32016号公報
「デザインウェーブマガジン」、CQ出版社、2004年8月、第81巻、p.19−79
ところで、前記のようなダイナミック・リコンフィギュラブル技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
一般的に、各種アプリケーションをダイナミック・リコンフィギュラブル・プロセッサ上で実行する場合、膨大な構成情報が必要になるため、全ての構成情報をプロセッサ内部に格納することは困難である。
したがって、プロセッサ外部のメモリに構成情報を保持しておく必要があるが、これはプロセッサ外部のメモリ・アクセスにより処理性能が低下することを意味する。この処理性能の低下を防ぐために、プロセッサ内部の記憶領域を効率良く利用できる構成が必要になる。
すなわち、ダイナミック・リコンフィギュラブル・プロセッサの処理性能を低下させる要因として、構成情報の転送に要する時間と構成情報の変更に要する時間が挙げられる。
前者に対しては、ある処理の実行中に、以後の処理に必要な構成情報を先読みすることで、実効的にその転送時間を隠すことができる。しかしながら、前記特許文献1に記載される構成は、演算部を複数のスロットに分け、そのいくつかのスロットで処理を実行している間に、停止しているスロットへ構成情報を書き込む構成であるため、全ての演算部を同時には有効に活用できないという問題がある。
一方、後者、すなわち構成情報の変更に要する時間を削減するには、前記非特許文献1に記載されているように、プロセッサ内部にシーケンサを設けることが有効である。ここで、シーケンサには、各種アプリケーションプログラムを容易かつ効率的に実装できるように、多種多様なシーケンスを多数扱えることが望まれる。しかしながら、複雑なシーケンスを扱うことのできるシーケンサは、回路規模、消費電力が増加し、動作周波数の向上が困難であるという問題がある。
本発明の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
すなわち、本発明による半導体集積回路は、演算を実行する複数の演算セルを含む演算部と、演算データを保持するデータメモリと、前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、状態遷移を制御する状態遷移管理部と、前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、前記構成情報管理部は、外部メモリから第1のバスを介して転送された前記構成情報を格納する第1の記憶領域を備え、前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から第2のバスを介して転送された前記構成情報を格納する第2の記憶領域を備え、前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であることを特徴とするものである。
また、本発明による半導体集積回路は、演算を実行する複数の演算セルを含む演算部と、演算データを保持するデータメモリと、前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、状態遷移を制御する状態遷移管理部と、前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であり、前記状態遷移管理部は、切り替え先の番号を記憶する第1のテーブルと、切り替え先の番号と現在の番号と切り替え条件とを記憶する第2のテーブルとを有し、前記第1のテーブルを使用する第1のモードと、前記第2のテーブルを使用する第2のモードとを動作中に切り替える機能を有することを特徴とするものである。
また、本発明による半導体集積回路は、演算を実行する複数の演算セルを含む演算部と、演算データを保持するデータメモリと、前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、状態遷移を制御する状態遷移管理部と、前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、前記構成情報管理部は、外部メモリから第1のバスを介して転送された前記構成情報を格納する第1の記憶領域を備え、前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から第2のバスを介して転送された前記構成情報を格納する第2の記憶領域を備え、前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であり、前記状態遷移管理部は、切り替え先の番号を記憶する第1のテーブルと、切り替え先の番号と現在の番号と切り替え条件とを記憶する第2のテーブルとを有し、 前記第1のテーブルを使用する第1のモードと、前記第2のテーブルを使用する第2のモードとを動作中に切り替える機能を有することを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
低消費電力、又は、処理性能の高い半導体集積回路を実現できる。
以下、本発明に係る半導体集積回路の好適な実施の形態について、添付図面を参照しながら説明する。特に制限されないが、実施の形態の各ブロックを構成する回路素子は、公知のCMOS(相補型MOSトランジスタ)やバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1に、本発明の半導体集積回路に基づくダイナミック・リコンフィギュラブル・プロセッサを含む情報処理システムの実施例を示す。
特に制限されないが、このダイナミック・リコンフィギュラブル・プロセッサ10は、状態遷移管理部40、構成情報管理部50、演算部60、データメモリ制御部70、データメモリ80などから構成され、1個の半導体基板上に形成されている。そして、ダイナミック・リコンフィギュラブル・プロセッサ10内において、状態遷移管理部40は構成情報管理部50、演算部60及びデータメモリ制御部70に接続され、構成情報管理部50は第2のバスを介して、演算部60及びデータメモリ制御部70に接続され、演算部60はデータメモリ制御部70に接続され、データメモリ制御部70はデータメモリ80に接続されている。また、ダイナミック・リコンフィギュラブル・プロセッサ10、CPU20及びメモリ30は、バス(第1のバス)90に接続されている。
メモリ30は、構成情報記憶領域を含み、図示しないが、ダイナミック・リコンフィギュラブル・プロセッサ10及びCPU20においてソフトウェアを実行するためのプログラムとデータを保持している。なお、メモリ30はメインメモリのようなDRAMを想定しており、特に制限されないが、ダイナミック・リコンフィギュラブル・プロセッサ10やCPU20と同一チップであっても別々のチップであっても構わない。
CPU20は、メモリ30に格納されたCPU命令を順次実行するとともに、ダイナミック・リコンフィギュラブル・プロセッサ10の論理機能を定義する構成情報を含む制御情報及び演算データの転送制御を行う。
状態遷移管理部40は、前記制御情報に基づき、ダイナミック・リコンフィギュラブル・プロセッサ10の内部状態の管理や状態遷移制御を行う。
構成情報管理部50は、構成情報バッファ(第1の記憶領域)1000を含み、構成情報の格納と、演算部60及びデータメモリ制御部70への構成情報の転送制御を行う。
演算部60は、構成情報レジスタ(第2の記憶領域)1800を含む複数の演算セル1600などからなり(図16、図20、図21参照)、入力された構成情報の格納及びデコードを行い、演算の実行を行う。
データメモリ制御部70は、構成情報レジスタ(第2の記憶領域)2300を含む複数のデータメモリ制御セル2100などからなり(図16、図23、図24参照)、入力された構成情報の格納及びデコードを行い、データメモリ80へのメモリ・アクセスを行う。
次に、本実施の形態によるダイナミック・リコンフィギュラブル・プロセッサ10において、演算部60、データメモリ制御部70、状態遷移管理部40、構成情報管理部50の詳細な構成とその動作を説明する。
図20に、本実施の形態における演算部60の構成例を示す。特に制限されないが、演算命令部60は、状態遷移によって、実行する算術論理演算を動的に変更が可能な複数の演算セル1600などで構成される。
図21に、本実施の形態における演算セル1600の構成例を示す。特に制限されないが、演算セル1600は、命令デコーダ1700、構成情報レジスタ(第2の記憶領域)1800、構成情報書き込み制御部1900、プログラマブルロジック部2000で構成される。
特に制限されないが、本実施の形態における命令デコーダ1700は、状態遷移管理部40から入力されたバンク番号、状態遷移要求に基づき、構成情報レジスタ1800の該当バンクから構成情報を読み出し、プログラマブルロジック部2000へデコードされた命令を出力する(図示しない)。
図22に、本実施の形態における構成情報レジスタ1800の構成例を示す。特に制限されないが、構成情報レジスタ1800は、複数バンクで構成されており、バンク毎に構成情報を格納したレジスタである。図22のBk0、Bk1、…、Bkiはバンク番号を表す。構成情報レジスタ1800は構成情報バッファ1000よりも小容量のレジスタあるため、高速アクセスが可能であり、高速な状態遷移に対応できる。また、複数バンクの構成であるため、前記構成情報の転送処理により、書き込み先バンクと読み出し元バンクに異なるバンクを指定し、構成情報管理部50から構成情報を書き込みながら、命令デコーダ1700へ構成情報を読み出すことで、演算部60を効率的に利用できる。
特に制限されないが、本実施の形態における構成情報書き込み制御部1900は、構成情報管理部50から入力された書き込み要求、書き込み先のセル番号、書き込み先のバンク番号、構成情報に基づき、構成情報レジスタ1800の該当バンクへ構成情報を格納する(図示しない)。
特に制限されないが、本実施の形態におけるプログラマブルロジック部2000は、命令デコーダ1700から入力される命令に基づき、実行する算術論理演算及び他の演算セル1600、データメモリ制御セル2100との入出力の接続を決定する(図示しない)。
図23に、本実施の形態におけるデータメモリ制御部70の構成例を示す。特に制限されないが、データメモリ制御部70は、状態遷移によって、実行するメモリ・アクセスの種類を動的に変更が可能な複数のデータメモリ制御セル2100などで構成される。
図24に、本実施の形態におけるデータメモリ制御セル2100の構成例を示す。特に制限されないが、データメモリ制御セル2100は、命令デコーダ2200、構成情報レジスタ(第2の記憶領域)2300、構成情報書き込み制御部2400、プログラマブルロジック部2500で構成される。
特に制限されないが、本実施の形態における命令デコーダ2200は、状態遷移管理部40から入力されたバンク番号、状態遷移要求に基づき、構成情報レジスタ2300の該当バンクから構成情報を読み出す。また、状態遷移管理部40から入力された動作状態、初期化要求に基づき、読み出し、プログラマブルロジック部2500へデコードされた命令を出力する(図示しない)。
図25に、本実施の形態における構成情報レジスタ2300の構成例を示す。特に制限されないが、構成情報レジスタ2300は、複数のバンクで構成されており、バンク毎に構成情報を格納したレジスタである。図25のBk0、Bk1、…、Bkiはバンク番号を表す。構成情報レジスタ2300は構成情報バッファ1000よりも小容量のレジスタあるため、高速アクセスが可能であり、高速な状態遷移に対応できる。また、複数バンクの構成であるため、前記構成情報の転送処理により、書き込み先バンクと読み出し元バンクに異なるバンクを指定し、構成情報管理部50から構成情報を書き込みながら、命令デコーダ2200へ構成情報を読み出すことで、データメモリ制御部70を効率的に利用できる。
特に制限されないが、本実施の形態における構成情報書き込み制御部2400は、構成情報管理部50から入力された書き込み要求、書き込み先のセル番号、書き込み先のバンク番号、構成情報に基づき、構成情報レジスタ2300の該当バンクへ構成情報を格納する。
特に制限されないが、本実施の形態におけるプログラマブルロジック部2500は、命令デコーダ2200から入力される命令に基づき、実行するメモリ・アクセスの種類及び他のデータメモリ制御セル2100、演算セル1600との入出力の接続を決定する(図示しない)。
なお、構成情報レジスタ1800,2300は、例えばRAM、不揮発性メモリなどで実現してもよい。
図2に、本実施の形態における状態遷移管理部40の構成例を示す。特に制限されないが、状態遷移管理部40は、状態遷移制御レジスタ100、制限付き状態遷移制御テーブル(第1のテーブル)200、状態遷移制御テーブル(第2のテーブル)300、状態遷移制御部400で構成される。状態遷移管理部40は、状態遷移制御部400において状態遷移条件判定及び状態遷移処理を実行する。状態遷移条件及び状態遷移時の処理内容は、制限付き状態遷移制御テーブル200、状態遷移制御テーブル300に記述され、状態遷移制御レジスタ100で使用するテーブルを指定する。
制限付き状態遷移制御テーブル200は、各状態から別の状態への遷移先が1個の状態に制限された状態遷移しか扱えないように制限を加えたテーブルであり、テーブル内の状態数が増加しても高速に状態遷移条件判定を実行できるという特徴を持つ。一方、状態遷移制御テーブル300は、制限のない状態遷移を扱えるが、制限付き状態遷移制御テーブル200に比べると状態遷移条件の判定に時間を要する。これら2種類のテーブルを利用して状況に応じた状態遷移を行うことで、処理性能を低下させることなく、各種アプリケーションの実行に要求される柔軟な状態遷移に対応する。
図3に、本実施の形態における状態遷移制御レジスタ100の構成例を示す。特に制限されないが、状態遷移制御レジスタ100は、ダイナミック・リコンフィギュラブル・プロセッサ10の現在の状態を示したレジスタであり、3個のフィールド101〜103で構成される。フィールド101〜103はそれぞれ、状態遷移モード(Md)、動作状態(Op)、実行中の状態番号(St)を示す。ここで、状態遷移モード(Md)は、状態遷移条件判定及び状態遷移処理に使用するテーブルを指定し、制限モード(第1のモード)では制限付き状態遷移制御テーブル200を、標準モード(第2のモード)では状態遷移制御テーブル300を用いる。動作状態(Op)は、演算部60及びデータメモリ制御部70の起動や停止の状態を示す。状態番号(St)は、演算部60内の全ての演算セル1600、データメモリ制御部70内の全てのデータメモリ制御セル2100によって構成された特定の論理機能を1状態として各状態に割り付けた番号を意味する。
図4に、本実施の形態における制限付き状態遷移制御テーブル200の構成例を示す。特に制限されないが、制限付き状態遷移制御テーブル200は、各状態から別の状態への遷移が1個に制限された状態遷移に関する状態遷移条件、状態遷移時の処理を記述したレジスタであり、9個のフィールド201〜209で構成される。図4のEnt0、Ent1、Ent2、…、Entnはエントリ番号を表す。エントリ番号は状態番号(St)に一意に対応し、各エントリに各状態の状態遷移に関する記述がなされる。すなわち、テーブル内を状態番号について検索する必要がなく、扱う状態数(エントリ数)が増加しても状態遷移条件判定、状態遷移処理を高速に実行できる。
フィールド201,202は状態遷移条件を指定するフィールドであり、それぞれ動作状態条件(COp)、イベント条件(CEv)を示す。特に制限されないが、イベントは状態遷移の回数や経過クロック・サイクル数等とする。動作状態条件(COp)、イベント条件(CEv)は、特に条件設定が不要な場合も考慮し、無条件で成立という設定も可能である。これらの設定を基に、状態遷移制御部400で状態遷移条件判定が行われる。
フィールド203〜205は、それぞれ遷移後の状態遷移モード(TMd)、動作状態(TOp)、状態番号(TSt)を指定するフィールドである。
フィールド206〜209は、状態遷移時に構成情報管理部50から演算部60及びデータメモリ制御部70へ、後続の処理に必要な構成情報を先読みして転送する処理に関するフィールドであり、それぞれ先読み転送要求(PrR)、先読み転送モード(PrM)、先読み転送状態番号(PrSt)、転送先バンク番号(PrBk)を指定する。詳細については後述するが、先読み転送要求(PrR)は状態遷移後に構成情報管理部50内部の構成情報バッファ1000(図10、図12参照)から演算セル1600、データメモリ制御セル2100内部の構成情報レジスタ1800,2300へ、それ以降の状態に関する構成情報を先読みして転送するか否かを示し、先読み転送モード(PrM)は構成情報の転送先バンク番号としてフィールド209の転送先バンク番号(PrBk)を利用するか、ランダム法などで生成するかといったバンク番号の生成モードを示し、先読み転送状態番号(PrSt)は先読みして転送する構成情報に対応する状態番号を示し、転送先バンク番号(PrBk)は構成情報の転送先である演算セル1600、データメモリ制御セル2100内部の複数バンクで構成された構成情報レジスタ1800,2300の格納先バンク番号を示す。
図5に、本実施の形態における状態遷移制御テーブル300の構成例を示す。特に制限されないが、状態遷移制御テーブル300は、前記制限付き状態遷移制御テーブル200とは異なり、一般的な状態遷移に関する状態遷移条件、状態遷移時の処理を記述したレジスタであり、11個のフィールド301〜311で構成される。テーブル内のエントリ番号(Ent0〜Entm)と状態番号とは対応がないため、各エントリに状態番号とその状態の状態遷移に関する記述がなされる。すなわち、テーブル内を状態番号について検索する必要があるため、扱う状態数を制限することで状態遷移条件判定、状態遷移処理の高速実行に対応する。
フィールド301〜304は状態遷移条件を指定するフィールドであり、それぞれ、状態番号条件(CSt)、動作状態条件(COp)、イベント条件(CEv)、トリガ入力条件(CTrg)を指定する。トリガは演算部60から入力され、演算部60の演算結果に依存する状態遷移を実行するために利用される。状態番号条件(CSt)、動作状態条件(COp)、イベント条件(CEv)、トリガ入力条件(CTrg)は、特に条件設定が不要な場合も考慮し、無条件で成立という設定も可能である。これらの設定を基に、状態遷移制御部400で状態遷移条件判定が行われる。
フィールド305〜307は、それぞれ状態遷移後における、状態遷移モード(TMd)、動作状態(TOp)、状態番号(TSt)を指定するフィールドである。
フィールド308〜311は、それぞれ構成情報の先読み転送要求(PrR)、先読み転送モード(PrM)、先読み転送状態番号(PrSt)、転送先バンク番号(PrBk)を指定するフィールドである。
状態遷移制御レジスタ100、制限付き状態遷移制御テーブル200、状態遷移制御テーブル300は、例えばRAM、不揮発性メモリ等で実現してもよい。また、制限付き状態遷移制御テーブル200、状態遷移制御テーブル300は、特定のアプリケーションに特化して最適化された制御情報が固定でよいハードウェアを提供する場合、ROMや結線論理で実現してもよい。
状態遷移制御部400は、状態遷移制御レジスタ100、制限付き状態遷移制御テーブル200及び状態遷移制御テーブル300の設定に基づき、以下の(1)〜(6)に示す状態遷移制御を行う。
(1)状態遷移条件判定
状態遷移条件判定では、現在の状態から次の状態への遷移の条件が成立したか否かを判定する。状態遷移制御レジスタ100のフィールド101で指定される状態遷移モード(Md)により、異なるテーブルを用いて状態遷移条件判定を行う。以下、各状態遷移モードの状態遷移条件判定、状態遷移処理について述べる。
状態遷移条件判定では、現在の状態から次の状態への遷移の条件が成立したか否かを判定する。状態遷移制御レジスタ100のフィールド101で指定される状態遷移モード(Md)により、異なるテーブルを用いて状態遷移条件判定を行う。以下、各状態遷移モードの状態遷移条件判定、状態遷移処理について述べる。
(1−1)制限モード
制限モードでは、制限付き状態遷移制御テーブル200を使用して状態遷移条件判定を実行する。まず、状態遷移制御レジスタ100のフィールド101(Md)の状態から制限付き状態遷移制御テーブル200の該当エントリを指定する。その後、指定されたエントリのフィールド201で設定された動作状態条件(COp)、フィールド202で設定されたイベント条件(CEv)に基づき、それぞれ状態遷移制御レジスタ100のフィールド102の動作状態(Op)と、所定のイベント発生に対し条件判定を行う。両条件判定が成立した場合、制限モードでの状態遷移条件判定が成立となる。
制限モードでは、制限付き状態遷移制御テーブル200を使用して状態遷移条件判定を実行する。まず、状態遷移制御レジスタ100のフィールド101(Md)の状態から制限付き状態遷移制御テーブル200の該当エントリを指定する。その後、指定されたエントリのフィールド201で設定された動作状態条件(COp)、フィールド202で設定されたイベント条件(CEv)に基づき、それぞれ状態遷移制御レジスタ100のフィールド102の動作状態(Op)と、所定のイベント発生に対し条件判定を行う。両条件判定が成立した場合、制限モードでの状態遷移条件判定が成立となる。
(1−2)標準モード
標準モードでは、状態遷移制御テーブル300を使用して状態遷移条件判定を実行する。まず、状態遷移制御テーブル300の全エントリのフィールド301(CSt)を検索し、状態遷移制御レジスタ100のフィールド103(St)と一致する状態が格納されたエントリを選択する。その後、選択されたエントリに対し、状態遷移制御テーブル300のフィールド302で設定された動作状態条件、フィールド303で設定されたイベント条件(CEv)、フィールド304で設定されたトリガ条件(CTrg)に基づき、それぞれ状態遷移制御レジスタ100のフィールド102の動作状態(Op)、所定のイベント発生、所定のトリガ入力に対し条件判定を行う。全ての条件判定が成立した場合、標準モードでの状態遷移条件判定が成立となる。状態遷移制御テーブル300の複数エントリで同時に状態遷移条件が成立した場合、その中から、予め定めた優先順位に従って、状態遷移条件が成立したエントリが1個選択される。更に望ましくは、状態遷移条件判定の成立に対するエントリ間の優先順位をレジスタで可変に設定できるよう構成するとよい。
標準モードでは、状態遷移制御テーブル300を使用して状態遷移条件判定を実行する。まず、状態遷移制御テーブル300の全エントリのフィールド301(CSt)を検索し、状態遷移制御レジスタ100のフィールド103(St)と一致する状態が格納されたエントリを選択する。その後、選択されたエントリに対し、状態遷移制御テーブル300のフィールド302で設定された動作状態条件、フィールド303で設定されたイベント条件(CEv)、フィールド304で設定されたトリガ条件(CTrg)に基づき、それぞれ状態遷移制御レジスタ100のフィールド102の動作状態(Op)、所定のイベント発生、所定のトリガ入力に対し条件判定を行う。全ての条件判定が成立した場合、標準モードでの状態遷移条件判定が成立となる。状態遷移制御テーブル300の複数エントリで同時に状態遷移条件が成立した場合、その中から、予め定めた優先順位に従って、状態遷移条件が成立したエントリが1個選択される。更に望ましくは、状態遷移条件判定の成立に対するエントリ間の優先順位をレジスタで可変に設定できるよう構成するとよい。
(2)構成情報の転送要求制御
状態遷移条件判定が成立した場合、構成情報管理部50へ後述する構成情報レジスタ管理テーブル1200(図10参照)の検索要求を出力する。構成情報管理部50は、検索要求に従って検索を行う。検索のヒットは遷移先の状態に関する構成情報の転送が既に完了していることを意味しており、この場合、遷移先の状態の更に遷移先の状態やそれ以降の状態に関する構成情報を先読みして構成情報管理部50内部の構成情報バッファ1000から演算部60、データメモリ制御部70内部の構成情報レジスタ1800,2300への転送処理を行う。
状態遷移条件判定が成立した場合、構成情報管理部50へ後述する構成情報レジスタ管理テーブル1200(図10参照)の検索要求を出力する。構成情報管理部50は、検索要求に従って検索を行う。検索のヒットは遷移先の状態に関する構成情報の転送が既に完了していることを意味しており、この場合、遷移先の状態の更に遷移先の状態やそれ以降の状態に関する構成情報を先読みして構成情報管理部50内部の構成情報バッファ1000から演算部60、データメモリ制御部70内部の構成情報レジスタ1800,2300への転送処理を行う。
一方、検索のミスは遷移先の状態に関する構成情報の転送が実行されていないことを意味しており、この場合、遷移先の状態に関する構成情報の転送処理を行う。状態遷移管理部40において、検索ヒット時、制限モードでは、制限付き状態遷移制御テーブル200の該当エントリのフィールド206〜209、標準モードでは、状態遷移制御テーブル300の該当エントリのフィールド308〜311の設定に基づき、転送要求、転送状態番号、転送先バンク番号を生成し、構成情報管理部50へ出力する。ここで、制限モードでは、制限付き状態遷移制御テーブル200の該当エントリのフィールド207の設定に基づき、 同エントリのフィールド209から転送先バンク番号を生成するか、ランダム法で生成するかが決定される。標準モードでは、状態遷移制御テーブル300の該当エントリのフィールド309の設定に基づき、 同エントリのフィールド311から転送先バンク番号を生成するか、ランダム法で生成するかが決定される。両状態遷移モードにおいて転送先バンク番号は、ランダム法以外、例えば、LRU法やFIFO法で生成してもよい。また、レジスタの設定により生成方法を選択できるよう構成してもよい。一方、検索ミス時、遷移先の状態番号を転送状態番号とし、ランダム法で転送先バンク番号の生成を行い、転送要求を発生させ構成情報管理部50へ出力する。転送先バンク番号は、前記のようにLRU法やFIFO法で生成してもよく、レジスタの設定により生成方法を選択できるよう構成してもよい。
(3)状態更新処理
状態更新処理では、状態遷移条件が成立した場合、状態遷移制御レジスタ100のフィールド101〜103を更新することにより状態を遷移させる。具体的には、制限モードでは、制限付き状態遷移制御テーブル200の該当エントリのフィールド203〜205(TMd,TOp,TSt)、標準モードでは、状態遷移制御テーブル300の該当エントリのフィールド305〜307(TMd,TOp,TSt)を状態遷移制御レジスタ100のフィールド101〜103(Md,Op,St)へ格納する。
状態更新処理では、状態遷移条件が成立した場合、状態遷移制御レジスタ100のフィールド101〜103を更新することにより状態を遷移させる。具体的には、制限モードでは、制限付き状態遷移制御テーブル200の該当エントリのフィールド203〜205(TMd,TOp,TSt)、標準モードでは、状態遷移制御テーブル300の該当エントリのフィールド305〜307(TMd,TOp,TSt)を状態遷移制御レジスタ100のフィールド101〜103(Md,Op,St)へ格納する。
(4)状態遷移要求制御
前記(3)の状態更新処理後、状態遷移制御レジスタ100のフィールド102の動作状態(Op)、フィールド103の状態番号(St)に対応するバンク番号と、状態遷移発生を示す状態遷移要求を演算部60、データメモリ制御部70へ出力する。
前記(3)の状態更新処理後、状態遷移制御レジスタ100のフィールド102の動作状態(Op)、フィールド103の状態番号(St)に対応するバンク番号と、状態遷移発生を示す状態遷移要求を演算部60、データメモリ制御部70へ出力する。
(5)転送先バンク番号変更要求制御
前記(2)の転送要求制御の実行中、構成情報管理部50から入力された転送先バンク番号の変更要求を受け、転送先バンク番号をランダム法で生成し構成情報管理部50へ出力する。転送先バンク番号は前記のようにLRU法やFIFO法で生成してもよく、レジスタの設定により生成方法を選択できるよう構成してもよい。
前記(2)の転送要求制御の実行中、構成情報管理部50から入力された転送先バンク番号の変更要求を受け、転送先バンク番号をランダム法で生成し構成情報管理部50へ出力する。転送先バンク番号は前記のようにLRU法やFIFO法で生成してもよく、レジスタの設定により生成方法を選択できるよう構成してもよい。
(6)状態レジスタ退避・復帰処理
前記(2)の転送要求制御の実行中、構成情報管理部50からサスペンド要求が入力されることがある。サスペンド要求とは演算部60、データメモリ制御部70を停止させ、演算、メモリ・アクセスを行わない状態へ移行させる要求である。サスペンド要求を受け付けた場合、その実行を保留し、状態遷移制御レジスタ100のフィールド102(Op)の内容を退避状態レジスタへ退避させ、動作状態をサスペンド状態に移行させる。サスペンド状態で構成情報管理部50から復帰要求を受け付けると、退避状態レジスタから状態遷移制御レジスタ100のフィールド102(Op)の内容を復帰させ、保留していた前記(2)の転送要求制御を再実行する。
前記(2)の転送要求制御の実行中、構成情報管理部50からサスペンド要求が入力されることがある。サスペンド要求とは演算部60、データメモリ制御部70を停止させ、演算、メモリ・アクセスを行わない状態へ移行させる要求である。サスペンド要求を受け付けた場合、その実行を保留し、状態遷移制御レジスタ100のフィールド102(Op)の内容を退避状態レジスタへ退避させ、動作状態をサスペンド状態に移行させる。サスペンド状態で構成情報管理部50から復帰要求を受け付けると、退避状態レジスタから状態遷移制御レジスタ100のフィールド102(Op)の内容を復帰させ、保留していた前記(2)の転送要求制御を再実行する。
図8に、状態遷移条件判定フローを示す。状態遷移条件判定が開始(ステップS700)されると、状態遷移制御部400は、状態遷移制御レジスタ100のフィールド101に示す状態遷移モード(Md)に応じ(ステップS701)、制限モードの状態遷移条件判定(ステップS702〜S705)、あるいは標準モードの状態遷移条件判定(ステップS706〜S715)を実行する。条件が全て成立した場合、状態遷移条件判定成立(ステップS716)となり、1個でも条件が成立しない場合、状態遷移条件判定不成立(ステップS717)となる。
図9に、状態遷移条件判定後の状態遷移処理フローを示す。状態遷移条件判定成立時(ステップS800,S716)、構成情報の転送要求制御を実行する(ステップS801〜S812)。転送要求制御において、構成情報レジスタ管理テーブル検索要求(ステップS801)に対する構成情報管理部50の検索結果がヒットである場合、構成情報の先読み転送を実行するための転送要求制御(ステップS809〜S812)を行う。検索結果がミスである場合、構成情報管理部50のサスペンド要求に応じ、サスペンド状態への遷移と状態レジスタの退避処理を行い(処理ステップS803)、遷移先の状態に関する構成情報の転送要求制御(ステップS804〜S806)を実行する。構成情報の転送の完了後(ステップS807)、構成情報管理部50からの復帰要求に応じ、状態レジスタの復帰処理(ステップS808)を行い、再び構成情報の転送要求制御を実行する。構成情報の転送の完了後(ステップS813)、状態更新処理(ステップS814)、状態遷移要求制御(ステップS815)を実行し、処理終了(ステップS816)となる。
図6及び図7に、状態遷移条件判定の動作例を示す。
図6の動作例において、状態遷移制御レジスタ100のフィールド101(Md)の値は“0”となっており、これは状態遷移モードが制限モードであることを示す。そこで、状態遷移条件判定に制限付き状態遷移制御テーブル200を使用する。状態レジスタ100のフィールド101〜103は、特に制限されないが、それぞれ状態遷移モードを表す値(Md)、動作状態を表す値(Op)、状態番号(St)をとるものとする。状態遷移制御レジスタ100のフィールド103の内容(St=4)により、制限付き状態遷移制御テーブル200の該当エントリ(Ent4)が指定される。該当エントリ(Ent4)のフィールド201(COp=1)と状態遷移制御レジスタ100のフィールド102の値(Op=1)が等しいため、動作状態条件は成立する。同エントリのフィールド202はイベント条件不要の設定(CEv=0)であるため、イベント条件も成立する。
ここで、フィールド201,202は、特に制限されないが、それぞれ動作状態条件を示す値(COp)、イベント条件を示す値(CEv)をとるものとする。以上により、本動作例における状態遷移条件判定は成立となる。
図7の動作例においては、状態遷移制御レジスタ100のフィールド101(Md)の値は“1”であり、状態遷移モードは標準モードであることを示す。そこで、状態遷移条件判定に状態遷移制御テーブル300を使用する。状態遷移制御レジスタ100のフィールド103(St=2)により、制限付き状態遷移制御テーブル200の全エントリのフィールド301を検索し、該当する状態(CSt=2)が格納されたエントリ(Ent1,Ent2)が選択される。 状態遷移制御テーブルの該当エントリ(Ent1,Ent2)のフィールド302(COp=1)と状態遷移制御レジスタ100のフィールド102(Op=1)が等しいため、両エントリの動作状態条件は成立する。同エントリ(Ent1,Ent2)のフィールド303(CEv=10)と発生したイベント500(Ev=10)が等しいため、両エントリのイベント条件も成立する。
特に制限されないが、本動作例ではトリガ条件とトリガ入力の各ビットの論理ORをとり、全てが“1”であった場合をトリガ条件が成立するとする。論理ORをとることとしたのは、マスクビットを設定できるようにしたためである。マスクビットとして設定できず、トリガ条件とトリガ入力との完全一致として構成した場合、複数の演算セル60を利用して演算結果を適切なトリガ入力へ処理し直す必要があり、処理性能が低下する。該当エントリ(Ent1,Ent2)のフィールド304(CTrg)はそれぞれ“0xFE”“0xFF”であり、演算部60から入力されたトリガ600(Trg)は“0x01”であるため、両エントリのトリガ条件も成立する。
ここで、状態遷移制御テーブル300のフィールド301〜304は、特に制限されないが、それぞれ状態番号(CSt)、動作状態条件を示す値(COp)、イベント条件を示す値(CEv)、トリガ条件を示す値(CTrg)をとるものとする。以上により、両エントリ(Ent1,Ent2)の状態遷移条件判定は成立する。状態遷移条件判定の優先順位は、特に制限されないが、エントリ番号が小さいほど高いものとすると、本動作例では、優先順位判定により、エントリ1(Ent1)の状態遷移条件判定の成立が選択される。
図10に、本実施の形態における構成情報管理部50の構成例を示す。特に制限されないが、構成情報管理部50は、構成情報制御レジスタ900、構成情報バッファ(第1の記憶領域)1000、状態定義テーブル1100、構成情報レジスタ管理テーブル1200、構成情報制御部1300で構成される。構成情報管理部50は、状態遷移管理部40から構成情報の転送要求を受け、構成情報制御部1300において構成情報バッファ1000から演算部60、データメモリ制御部70へ転送される構成情報の制御を行う。構成情報の転送制御は、構成情報の転送元である構成情報バッファ1000のエントリ番号と構成情報の転送先となる演算セル1600及びデータメモリ制御セル2100の番号が記述された状態定義テーブル1100及び転送された構成情報が演算セル1600及びデータメモリ制御セル2100内部の構成情報レジスタ(第2の記憶領域)1800,2300のどのバンクに格納されたかを記述した構成情報レジスタ管理テーブル1200を使用して実行される。構成情報バッファ1000は、複数の演算セル1600、データメモリ制御セル2100で共通の構成情報を1箇所にまとめて格納するため、効率良く構成情報を記憶することができる。一方、演算セル1600、データメモリ制御セル2100内部の構成情報レジスタ1800、2300は構成情報バッファ1000よりも小容量のレジスタで構成されるため、高速なアクセスが可能である。このように、構成情報を階層的に記憶することで、必要な記憶容量の削減と、高速な状態遷移を可能とする。
また、図21及び図24に示すように、演算セル1600及びデータメモリ制御セル2100は、演算処理やメモリ・アクセスを実行しながら、後続の処理に必要な構成情報を受け入れ可能なように、内部に複数バンクで構成された構成情報レジスタ1800、2300を備えている。そのため、構成情報レジスタ管理テーブル1200を使用して、現在実行中のバンクへの構成情報の転送を避け、また、遷移先の状態に関する構成情報が構成情報レジスタ1800,2300に格納されているかどうかの判定を行うことで、効率の良い構成情報の転送を可能とする。
図11に、本実施の形態における構成情報制御レジスタ900の構成例を示す。特に制限されないが、構成情報制御レジスタ900は、構成情報の転送処理状況を示したレジスタであり、2個のフィールド901,902で構成される。フィールド901,902は、それぞれ構成情報制御部1300が構成情報を転送中か否かを示す転送フラグ(TrFlg)、サスペンド状態か否かを示すサスペンド状態フラグ(SpFlg)を表す。
図12に、本実施の形態における構成情報バッファ1000の構成例を示す。特に制限されないが、構成情報バッファ1000は演算セル1600及びデータメモリ制御部セル2100の構成情報を多数格納したレジスタである。複数の演算セル1600及びデータメモリ制御セル2100における共通の構成情報をまとめて1エントリに格納することで効率良く構成情報を記憶できる。図12のEnt0、Ent1、…、EntNはエントリ番号を示す。
図13に、本実施の形態における状態定義テーブル1100の構成例を示す。特に制限されないが、状態定義テーブル1100は構成情報バッファ1000のエントリを指すポインタを状態毎に管理するレジスタであり、2個のフィールド1101,1102で構成される。図13のSt0、St1、…、Stnはそれぞれ状態番号を表す。フィールド1101,1102は、それぞれ演算部60内の全ての演算セル1600、データメモリ制御部70内の全てのデータメモリ制御セル2100に対し、構成情報バッファ1000のエントリを指すポインタを格納するフィールドである。図13のフィールド1101のExC0、ExC1、ExC2、…、ExCo、フィールド1102のMeC0、MeC1、MeC2、…、MeCfは、それぞれ演算セル1600の番号、データメモリ制御セル2100の番号を表す(図16参照)。
図14に、本実施の形態における構成情報レジスタ管理テーブル1200の構成例を示す。特に制限されないが、構成情報レジスタ管理テーブル1200は、転送された構成情報が、演算セル1600及びデータメモリ制御セル2100内部の複数バンクで構成された構成情報レジスタ1800,2300のどのバンクに格納されたかを示すレジスタであり、2個のフィールド1201,1202で構成される。構成情報の転送及び転送先バンクは状態毎に管理されているため、構成情報レジスタ管理テーブル1200はバンク番号と状態番号の対応を記憶する。図14のBk0、Bk1、…、Bkiはバンク番号を表す。フィールド1201、1202はそれぞれバンクに格納された構成情報の有効性(V)、状態番号(BSt)を示すフィールドである。
なお、構成情報制御レジスタ900、構成情報バッファ1000、状態定義テーブル1100、構成情報レジスタ管理テーブル1200は、例えばRAM、不揮発性メモリ等で実現してもよい。また、構成情報バッファ1000、状態定義テーブル1100は、特定のアプリケーションに特化して最適化された制御情報が固定でよいハードウェアを提供する場合、ROMや結線論理方式で実現してもよい。
構成情報制御部1300は、構成情報制御レジスタ900、構成情報バッファ1000、状態定義テーブル1100、構成情報レジスタ管理テーブル1200の設定、CPU20及び状態遷移管理部40からの入力に基づき、以下の(1)〜(7)に示す構成情報の転送処理を行う。
(1)構成情報の転送要求による構成情報の転送処理
構成情報の転送要求による構成情報の転送処理では、状態遷移管理部40から入力される構成情報の転送要求に応じ、演算部60、データメモリ制御部70へ、書き込み要求、書き込み先のセル番号、書き込み先のバンク番号、構成情報を出力する。状態定義テーブル1100の該当状態の該当セル番号が示すポインタによって、構成情報バッファ1000から転送される構成情報が決定される。ここで、状態定義テーブル1100の状態番号は状態遷移管理部40から入力された転送状態番号で指定される。一方、書き込み要求、書き込み先のバンク番号は、状態遷移管理部40から入力された転送要求、転送先バンク番号から生成される。本実施の形態において、書き込み先のセル番号は固定的に書き込む順番を決定することで生成しているが、レジスタの設定により書き込む順番を可変としてもよい。書き込み先のバンク番号と遷移後の状態に対応する構成情報が格納されたバンク番号が等しい場合、構成情報の転送処理を中止し、状態遷移管理部40へ転送先バンク番号変更要求を出力する。
構成情報の転送要求による構成情報の転送処理では、状態遷移管理部40から入力される構成情報の転送要求に応じ、演算部60、データメモリ制御部70へ、書き込み要求、書き込み先のセル番号、書き込み先のバンク番号、構成情報を出力する。状態定義テーブル1100の該当状態の該当セル番号が示すポインタによって、構成情報バッファ1000から転送される構成情報が決定される。ここで、状態定義テーブル1100の状態番号は状態遷移管理部40から入力された転送状態番号で指定される。一方、書き込み要求、書き込み先のバンク番号は、状態遷移管理部40から入力された転送要求、転送先バンク番号から生成される。本実施の形態において、書き込み先のセル番号は固定的に書き込む順番を決定することで生成しているが、レジスタの設定により書き込む順番を可変としてもよい。書き込み先のバンク番号と遷移後の状態に対応する構成情報が格納されたバンク番号が等しい場合、構成情報の転送処理を中止し、状態遷移管理部40へ転送先バンク番号変更要求を出力する。
(2)構成情報の転送コマンド要求による構成情報の転送処理
構成情報の転送コマンド要求による構成情報の転送処理では、CPU20から入力される構成情報の転送コマンド要求に応じ、前記(1)と同様の処理を行う。ここで、状態定義テーブル1100の状態番号、演算部60、データメモリ制御部70へ出力される書き込み要求、書き込み先のバンク番号は、それぞれCPU20から入力された転送状態番号、転送コマンド要求、転送先バンク番号であることに注意されたい。
構成情報の転送コマンド要求による構成情報の転送処理では、CPU20から入力される構成情報の転送コマンド要求に応じ、前記(1)と同様の処理を行う。ここで、状態定義テーブル1100の状態番号、演算部60、データメモリ制御部70へ出力される書き込み要求、書き込み先のバンク番号は、それぞれCPU20から入力された転送状態番号、転送コマンド要求、転送先バンク番号であることに注意されたい。
(3)構成情報レジスタ管理テーブル検索処理
構成情報レジスタ管理テーブル検索処理では、状態遷移管理部40から入力された構成情報レジスタ管理テーブル検索要求に応じ、遷移後の状態に関する構成情報が演算セル1600、データメモリ制御セル2100内部の構成情報レジスタ1800、2300に格納されているか否かについて、構成情報レジスタ管理テーブル1200を検索し、検索結果を状態遷移管理部40へ出力する。検索がミスした場合、構成情報制御レジスタ900のフィールド902のサスペンド状態フラグを立て、サスペンド要求を状態遷移管理部40へ出力する。
構成情報レジスタ管理テーブル検索処理では、状態遷移管理部40から入力された構成情報レジスタ管理テーブル検索要求に応じ、遷移後の状態に関する構成情報が演算セル1600、データメモリ制御セル2100内部の構成情報レジスタ1800、2300に格納されているか否かについて、構成情報レジスタ管理テーブル1200を検索し、検索結果を状態遷移管理部40へ出力する。検索がミスした場合、構成情報制御レジスタ900のフィールド902のサスペンド状態フラグを立て、サスペンド要求を状態遷移管理部40へ出力する。
(4)構成情報の転送中の状態遷移発生によるサスペンド要求
前記(1)あるいは(2)の構成情報の転送処理を行っている間に状態遷移が発生した場合、構成情報制御レジスタ900のフィールド902のサスペンド状態フラグを立て、状態遷移管理部40へサスペンド要求を出力する。実行中の構成情報の転送処理は継続される。
前記(1)あるいは(2)の構成情報の転送処理を行っている間に状態遷移が発生した場合、構成情報制御レジスタ900のフィールド902のサスペンド状態フラグを立て、状態遷移管理部40へサスペンド要求を出力する。実行中の構成情報の転送処理は継続される。
(5)構成情報の転送中の構成情報の転送コマンド要求によるエラー通知
前記(1)あるいは(2)の構成情報の転送処理を行っている際に、CPU20から構成情報の転送コマンド要求があった場合、状態遷移管理部40へエラーの通知を行う。エラー後の処理は状態遷移管理部40の設定によるものとする。
前記(1)あるいは(2)の構成情報の転送処理を行っている際に、CPU20から構成情報の転送コマンド要求があった場合、状態遷移管理部40へエラーの通知を行う。エラー後の処理は状態遷移管理部40の設定によるものとする。
(6)状態更新処理
状態更新処理では、更新情報が構成情報レジスタへ転送中か否かを表す状態を設定する。具体的には、構成情報の転送開始時、構成情報制御レジスタ900のフィールド901の転送フラグ(TrFlg)を立て、状態遷移管理部40から入力された転送先バンク番号に基づき、構成情報レジスタ管理テーブル1200の該当バンクのフィールド1201(V)を無効とする。構成情報の転送完了時は、構成情報制御レジスタ900のフィールド901の転送フラグ(TrFlg)を解除し、構成情報レジスタ管理テーブル1200の該当バンクのフィールド1201(V)を有効とするとともに、該当バンクのフィールド1202(BSt)に状態遷移管理部40から入力された転送状態番号を書き込む。
状態更新処理では、更新情報が構成情報レジスタへ転送中か否かを表す状態を設定する。具体的には、構成情報の転送開始時、構成情報制御レジスタ900のフィールド901の転送フラグ(TrFlg)を立て、状態遷移管理部40から入力された転送先バンク番号に基づき、構成情報レジスタ管理テーブル1200の該当バンクのフィールド1201(V)を無効とする。構成情報の転送完了時は、構成情報制御レジスタ900のフィールド901の転送フラグ(TrFlg)を解除し、構成情報レジスタ管理テーブル1200の該当バンクのフィールド1201(V)を有効とするとともに、該当バンクのフィールド1202(BSt)に状態遷移管理部40から入力された転送状態番号を書き込む。
(7)復帰要求
サスペンド状態で構成情報の転送処理の完了後、構成情報制御レジスタ900のフィールド902のサスペンド状態フラグを解除し、状態遷移管理部40へ復帰要求を出力する。
サスペンド状態で構成情報の転送処理の完了後、構成情報制御レジスタ900のフィールド902のサスペンド状態フラグを解除し、状態遷移管理部40へ復帰要求を出力する。
図18及び図19に、構成情報制御フローを示す。構成情報制御が開始(ステップ1500)されると、構成情報制御部1300は構成情報制御レジスタ900のフィールド901の転送フラグ(TrFlg)により、転送状況の判定を行い(ステップ1501)、引き続きCPU20からの転送コマンド要求の有無を判定する(ステップ1502,1514)。構成情報の転送中でなく、かつ転送コマンド要求もない場合、状態遷移管理部40から入力された構成情報レジスタ管理テーブル検索要求に応じ(ステップ1503)、構成情報レジスタ管理テーブル検索処理(ステップ1504〜1506)を行い、構成情報の転送処理(ステップ1507,1508、又はステップ1509〜1512,1508)を行う。構成情報の転送中でなく、かつ転送コマンド要求のある場合、転送コマンド要求による構成情報の転送処理(ステップ1510〜1512,1508)を実行する。構成情報の転送中で、かつ転送コマンド要求がある場合、状態遷移管理部40へエラーを通知する(ステップ1515)。構成情報の転送中で、かつ転送コマンド要求がなく、かつ状態遷移管理部40から構成情報レジスタ管理テーブル検索要求があった場合、構成情報の転送中の状態遷移によるサスペンド要求を行う(ステップ1517,1518)。構成情報の転送が終了すると(ステップ1519)、状態更新処理(ステップ1520,1523)を行う。ここで、構成情報制御レジスタ900のフィールド902のサスペンド状態フラグが立っている場合、状態遷移管理部40へ復帰要求(ステップ1521,1522)を行う。
図15に、転送要求による構成情報の転送処理の動作例を示す。図15の動作例において、状態遷移管理部40から入力された転送先バンク番号(TrBk=3)と、遷移後の状態に関する構成情報を格納したバンク番号(NBk=4)は異なるため、転送先バンク番号変更要求はない。また、状態定義テーブル1100の各セルのエントリポインタは、同図の矢印で示すように、構成情報バッファ1000の構成情報が格納されているエントリを指す。共通の構成情報は同一のエントリに格納することで構成情報バッファ1000を効率的に利用できる(Ent1(Cfg=InstG)、Ent3(Cfg=InstB))。
図16に示すように、本実施の形態では、ダイナミック・リコンフィギュラブル・プロセッサ10、CPU20、メモリ30が接続された汎用のバス(第1のバス)90よりも広帯域(単位時間におけるデータ転送量が汎用のバス(第1のバス)より多いことを言う。)な構成情報転送用バス(第2のバス)1400を利用して演算部60、データメモリ制御部70の複数のセルに対し並列に構成情報を書き込む構成とすることで構成情報の転送処理に要する時間を短縮する。図16のExC0、ExC1、…、ExCoは演算セル1600の番号を、MeC0、MeC1、…、MeCfはデータメモリ制御セル2100の番号を表す。本動作例では、書き込む順番を始めに演算部60、その後データメモリ制御部70とし、それぞれの内部では行毎にセル番号の昇順としているが、書き込む順番を可変としてレジスタで設定可能にしても良い。夫々の演算セル1600及びデータメモリ制御セル2100と構成情報管理部とを専用データ線で接続しても問題ないが、専用データ線ではその本数が多く面積が大きくなる。従って、本実施例では、構成情報転送用バスを複数の演算セル1600又はデータメモリ制御セル2100で共有するバス構成としている。
ここでは、第1行(ExC0を含む行)に関する動作のみ説明するが、他の行も並列に同様な動作が実行される。構成情報の転送が開始されると(図15)、状態遷移管理部40から入力された転送状態番号(TrSt=0)、構成情報制御部1300で生成された書き込み先セル番号(Wnum=0)に基づき、構成情報バッファ1000から、状態定義テーブル1100内のSt0のExC0のエントリポインタが指す構成情報(Cfg=InstA)を得る。その後、該当演算セル1600(ExC0)の該当バンク(WBk=3)へ構成情報(Cfg=InstA)を書き込む。該当演算セル1600(ExC0)への書き込みを完了すると、次の書き込み先セル番号を生成し(Wnum=1)、前記と同様の処理により、該当演算セル1600(ExC1)の該当バンク(WBk=3)へ構成情報(Cfg=InstG)を書き込む。以後同様に処理を実行し、全列に対する書き込み処理の終了後、データメモリ制御部70の各データメモリ制御セル2100に対する書き込み処理を実行する。
図17に、レジスタの状態更新処理の動作例を示す。本動作例においては、図17(a)に示すように、状態遷移管理部40から転送先バンク番号(TrBk=1)、転送状態番号(TrSt=4)が入力されたとする。また、構成情報制御レジスタ900、構成情報レジスタ管理テーブル1200は図17(b)に示す状態であるとする。特に制限されないが、構成情報制御レジスタ900のフィールド901、902は、それぞれ転送状況を表す値(TrFlg)、サスペンド状態を表す値(SpFlg)をとるものとし、構成情報レジスタ管理テーブル1200のフィールド1201,1202は、それぞれバンクの有効性を示す値(V)、状態番号(BSt)をとるものとする。
構成情報の転送処理が開始すると、図17(c)に示すように、構成情報制御レジスタ900のフィールド901の転送フラグを立て(TrFlg=1)、構成情報レジスタ管理テーブル1200の該当バンク(Bk1)のフィールド1201を無効にする(V=0)。
構成情報の転送処理が完了すると、図17(d)に示すように、構成情報制御レジスタ900のフィールド901の転送フラグを解除し(TrFlg=0)、構成情報管理テーブル1200の該当バンク(Bk1)のフィールド1201を有効にし(V=1)、フィールド1202に該当状態番号(TrSt=4)を書き込む(BSt=4)。
したがって、本実施の形態による半導体集積回路によれば、構成情報を階層的に記憶することでプロセッサ内部に必要な記憶容量を削減し、内部の広帯域バスを利用して階層間の高速なデータ転送を行うことにより、低消費電力が実現でき、処理性能を高くすることができる。
また、実行中の処理を停止させることなく、後続の処理に必要な構成情報の階層間転送を予め実行することにより、性能オーバヘッドを小さくすることができる。
また、制限付き状態遷移モードと制限なし状態遷移モードとを適宜組み合わせて使用することにより、状態遷移の柔軟性と高い動作周波数を両立させ、実装が容易となる。
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、動的に論理機能の再構成が可能な半導体集積回路を実装した装置等について適用可能である。
10 ダイナミック・リコンフィギュラブル・プロセッサ
20 CPU
30 メモリ
40 状態遷移管理部
50 構成情報管理部
60 演算部
70 データメモリ制御部
80 データメモリ
90 バス(第1のバス)
100 状態遷移制御レジスタ
101〜103,201〜209,301〜311,901〜902,1101〜1102,1201〜1202 フィールド
200 制限付き状態遷移制御テーブル(第1のテーブル)
300 状態遷移制御テーブル(第2のテーブル)
400 状態遷移制御部
500 イベント
600 トリガ
900 構成情報制御レジスタ
1000 構成情報バッファ(第1の記憶領域)
1100 状態定義テーブル
1200 構成情報レジスタ管理テーブル
1300 構成情報制御部
1400 構成情報データ転送用バス(第2のバス)
1600 演算セル
1700,2200 命令デコーダ
1800,2300 構成情報レジスタ(第2の記憶領域)
1900,2400 構成情報書き込み制御部
2000,2500 プログラマブルロジック部
2100 データメモリ制御セル
20 CPU
30 メモリ
40 状態遷移管理部
50 構成情報管理部
60 演算部
70 データメモリ制御部
80 データメモリ
90 バス(第1のバス)
100 状態遷移制御レジスタ
101〜103,201〜209,301〜311,901〜902,1101〜1102,1201〜1202 フィールド
200 制限付き状態遷移制御テーブル(第1のテーブル)
300 状態遷移制御テーブル(第2のテーブル)
400 状態遷移制御部
500 イベント
600 トリガ
900 構成情報制御レジスタ
1000 構成情報バッファ(第1の記憶領域)
1100 状態定義テーブル
1200 構成情報レジスタ管理テーブル
1300 構成情報制御部
1400 構成情報データ転送用バス(第2のバス)
1600 演算セル
1700,2200 命令デコーダ
1800,2300 構成情報レジスタ(第2の記憶領域)
1900,2400 構成情報書き込み制御部
2000,2500 プログラマブルロジック部
2100 データメモリ制御セル
Claims (15)
- 演算を実行する複数の演算セルを含む演算部と、
演算データを保持するデータメモリと、
前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、
状態遷移を制御する状態遷移管理部と、
前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、
前記構成情報管理部へ前記構成情報を伝達する第1のバスと、
前記構成情報管理部と前記データメモリ制御部及び前記演算部と接続する第2のバスとを備え、
前記構成情報管理部は、前記第1のバスを介して転送された前記構成情報を格納する第1の記憶領域を備え、
前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から前記第2のバスを介して転送された前記構成情報を格納する第2の記憶領域を備え、
前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報の変更により動的に論理機能の再構成が可能であることを特徴とする半導体集積回路。 - 請求項1記載の半導体集積回路において、
前記第1の記憶領域は、複数の構成情報を格納可能な複数のバンクを有することを特徴とする半導体集積回路。 - 請求項2記載の半導体集積回路において、
前記複数のバンクは、それぞれ独立に書き込み及び読み出しが可能であることを特徴とする半導体集積回路。 - 請求項1記載の半導体集積回路において、
前記第2のバスは、前記第1のバスよりも単位時間におけるデータ転送量が多いことを特徴とする半導体集積回路。 - 請求項1記載の半導体集積回路において、
前記状態遷移管理部は、複数の状態遷移モードを設定可能な状態遷移制御レジスタと、状態遷移条件の成立を判定する状態遷移制御部と、を備え、
前記状態遷移制御部は、前記状態遷移制御レジスタに設定された状態遷移モードに応じて互いに異なる状態遷移条件に基づく状態遷移条件判定動作を実行することを特徴とする半導体集積回路。 - 請求項5記載の半導体集積回路において、
前記状態遷移管理部は、状態遷移モード毎に互いに異なる状態遷移条件を格納した複数の状態遷移制御テーブルを備え、各状態遷移モードに対応する状態遷移制御テーブルに従い状態遷移条件判定動作及び状態遷移動作を実行することを特徴とする半導体集積回路。 - 請求項1記載の半導体集積回路において、
前記状態遷移管理部は、複数の状態遷移条件及び遷移後の状態を設定可能なフィールドを持つ状態遷移制御テーブルと、状態遷移条件の成立を判定する状態遷移制御部と、を備え、
前記状態遷移制御部は、前記状態遷移制御テーブルの設定内容に従い状態遷移条件の成立を判定し、状態遷移動作を実行することを特徴とする半導体集積回路。 - 請求項7記載の半導体集積回路において、
前記状態遷移管理部は、状態遷移モード毎に互いに異なる状態遷移条件を格納した複数の状態遷移制御テーブルを備え、各状態遷移モードに対応する状態遷移制御テーブルに従い状態遷移条件判定動作及び状態遷移動作を実行することを特徴とする半導体集積回路。 - 請求項1記載の半導体集積回路において、
前記状態遷移管理部は、所定の状態遷移条件が成立した場合に構成情報の先読み転送要求を発生させ、
前記構成情報管理部は、前記状態遷移管理部からの前記先読み転送要求により前記構成情報を第1の記憶領域から第2の記憶領域へ転送する機能を有することを特徴とする半導体集積回路。 - 請求項1記載の半導体集積回路において、
前記第2の記憶領域は、複数の構成情報を格納可能な複数のバンクからなり、第1のバンクに格納された構成情報に基づく処理を実行中に、前記構成情報管理部から供給される構成情報を、前記第1のバンクとは異なる第2のバンクに格納可能とするように構成されていることを特徴とする半導体集積回路。 - 請求項10記載の半導体集積回路において、
前記構成情報管理部は、前記複数の構成情報を格納可能な複数のバンクのうち、実行中の処理に対応しない非実行バンクを特定し、前記非実行バンクの1つに対し構成情報を転送する機能を有することを特徴とする半導体集積回路。 - 請求項10記載の半導体集積回路において、
前記構成情報管理部は、複数の状態を識別する識別子と前記複数のバンクとの対応を示す記憶領域を有することを特徴とする半導体集積回路。 - 請求項10記載の半導体集積回路において、
前記構成情報管理部は、前記第1の記憶領域から前記第2の記憶領域へ前記複数の構成情報を転送するために、複数の状態を識別する識別子と構成情報の転送先及び転送元の宛先との関係を記憶するための記憶領域を有することを特徴とする半導体集積回路。 - 演算を実行する複数の演算セルを含む演算部と、
演算データを保持するデータメモリと、
前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、
状態遷移を制御する状態遷移管理部と、
前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、
前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であり、
前記状態遷移管理部は、切り替え先の番号を記憶する第1のテーブルと、切り替え先の番号と現在の番号と切り替え条件とを記憶する第2のテーブルとを有し、
前記第1のテーブルを使用する第1のモードと、前記第2のテーブルを使用する第2のモードとを動作中に切り替える機能を有することを特徴とする半導体集積回路。 - 請求項14記載の半導体集積回路において、
前記構成情報管理部は、外部メモリから第1のバスを介して転送された前記構成情報を格納する第1の記憶領域を備え、
前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から第2のバスを介して転送された前記構成情報を格納する第2の記憶領域を備え
ることを特徴とする半導体集積回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005105812A JP2006287675A (ja) | 2005-04-01 | 2005-04-01 | 半導体集積回路 |
US11/393,833 US20060225139A1 (en) | 2005-04-01 | 2006-03-31 | Semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005105812A JP2006287675A (ja) | 2005-04-01 | 2005-04-01 | 半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006287675A true JP2006287675A (ja) | 2006-10-19 |
Family
ID=37072194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005105812A Withdrawn JP2006287675A (ja) | 2005-04-01 | 2005-04-01 | 半導体集積回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060225139A1 (ja) |
JP (1) | JP2006287675A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009027324A (ja) * | 2007-07-18 | 2009-02-05 | Fuji Xerox Co Ltd | 演算処理装置及び演算処理プログラム |
WO2009096247A1 (ja) * | 2008-02-01 | 2009-08-06 | Nec Corporation | 多分岐予測方法及び装置 |
JP2013243657A (ja) * | 2012-04-27 | 2013-12-05 | Semiconductor Energy Lab Co Ltd | プログラマブルlsi |
US8901957B2 (en) | 2013-02-26 | 2014-12-02 | Fujitsu Semiconductor Limited | Processor and control method for processor |
CN109491324A (zh) * | 2017-09-13 | 2019-03-19 | 欧姆龙株式会社 | 控制装置及控制方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251329A (ja) * | 2006-03-14 | 2007-09-27 | Matsushita Electric Ind Co Ltd | プログラマブルロジックデバイス |
JP4279317B2 (ja) * | 2007-01-31 | 2009-06-17 | 株式会社日立製作所 | データ処理方法及びデータ処理装置 |
KR101581882B1 (ko) * | 2009-04-20 | 2015-12-31 | 삼성전자주식회사 | 재구성 가능한 프로세서 및 그 재구성 방법 |
CN102207850B (zh) * | 2011-05-27 | 2013-07-17 | 清华大学 | 一种动态可重构处理器中层次化执行配置流的方法 |
CN102411555B (zh) * | 2011-08-17 | 2014-01-01 | 清华大学 | 一种可伸缩式动态可重构阵列配置信息方法 |
KR102277439B1 (ko) * | 2014-10-21 | 2021-07-14 | 삼성전자주식회사 | 재구성 가능 프로세서 및 그 동작 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6034538A (en) * | 1998-01-21 | 2000-03-07 | Lucent Technologies Inc. | Virtual logic system for reconfigurable hardware |
US6069489A (en) * | 1998-08-04 | 2000-05-30 | Xilinx, Inc. | FPGA having fast configuration memory data readback |
US6535939B1 (en) * | 1999-11-09 | 2003-03-18 | International Business Machines Corporation | Dynamically configurable memory bus and scalability ports via hardware monitored bus utilizations |
JP3719509B2 (ja) * | 2002-04-01 | 2005-11-24 | 株式会社ソニー・コンピュータエンタテインメント | シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 |
US7657861B2 (en) * | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
DE102004001669B4 (de) * | 2004-01-12 | 2008-06-05 | Infineon Technologies Ag | Konfigurierbares Logikbauelement ohne lokalen Konfigurationsspeicher mit parallelem Konfigurationsbus |
-
2005
- 2005-04-01 JP JP2005105812A patent/JP2006287675A/ja not_active Withdrawn
-
2006
- 2006-03-31 US US11/393,833 patent/US20060225139A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009027324A (ja) * | 2007-07-18 | 2009-02-05 | Fuji Xerox Co Ltd | 演算処理装置及び演算処理プログラム |
WO2009096247A1 (ja) * | 2008-02-01 | 2009-08-06 | Nec Corporation | 多分岐予測方法及び装置 |
JP5347974B2 (ja) * | 2008-02-01 | 2013-11-20 | 日本電気株式会社 | 多分岐予測方法及び装置 |
JP2013243657A (ja) * | 2012-04-27 | 2013-12-05 | Semiconductor Energy Lab Co Ltd | プログラマブルlsi |
US9654107B2 (en) | 2012-04-27 | 2017-05-16 | Semiconductor Energy Laboratory Co., Ltd. | Programmable LSI |
US8901957B2 (en) | 2013-02-26 | 2014-12-02 | Fujitsu Semiconductor Limited | Processor and control method for processor |
CN109491324A (zh) * | 2017-09-13 | 2019-03-19 | 欧姆龙株式会社 | 控制装置及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060225139A1 (en) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006287675A (ja) | 半導体集積回路 | |
US7590774B2 (en) | Method and system for efficient context swapping | |
US9009408B2 (en) | Non-blocking, pipelined write allocates with allocate data merging in a multi-level cache system | |
KR100879825B1 (ko) | 이질적 리소스와의 명령어 세트 아키텍처-기반 시퀀서간통신 | |
JP2015534188A (ja) | ユーザレベルのスレッディングのために即時のコンテキスト切り替えを可能とする新規の命令および高度に効率的なマイクロアーキテクチャ | |
US20060179277A1 (en) | System and method for instruction line buffer holding a branch target buffer | |
US20070083870A1 (en) | Methods and apparatus for task sharing among a plurality of processors | |
KR102309327B1 (ko) | 인터럽트들의 세트들을 구성하는 장치 및 방법 | |
EP2372530A1 (en) | Data processing method and device | |
US20120226865A1 (en) | Network-on-chip system including active memory processor | |
JP2004062280A (ja) | 半導体集積回路 | |
JP2010532905A (ja) | スレッドに最適化されたマルチプロセッサアーキテクチャ | |
JP2007133456A (ja) | 半導体装置 | |
JP5131188B2 (ja) | データ処理装置 | |
JP2006099232A (ja) | 半導体信号処理装置 | |
JP2011150691A (ja) | 演算処理装置、情報処理装置及び制御方法 | |
US6782470B1 (en) | Operand queues for streaming data: A processor register file extension | |
JP2005322240A (ja) | インデックス付きレジスタアクセス用の方法および装置 | |
JP2005527037A (ja) | 構成可能なプロセッサ | |
JP2009093559A (ja) | プロセッサ、情報処理装置、プロセッサのキャッシュ制御方法 | |
JP4024247B2 (ja) | 半導体データプロセッサ | |
JP4444305B2 (ja) | 半導体装置 | |
JP2011070290A (ja) | データプロセッサ | |
JP2004348327A (ja) | デジタル信号処理装置及びデジタル信号処理方法 | |
US6957319B1 (en) | Integrated circuit with multiple microcode ROMs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080327 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090831 |