(57)【要約】【課題】ダイナミック・リコンフィギュラブル・プロセッサにおいて、小さいハードウェア規模で構成情報を効果的に格納し、処理性能を向上させる機構を提供する。また、柔軟性と高い動作周波数を両立する実装の容易な状態遷移機構を提供する。【解決手段】構成情報を階層的に記憶し、演算部６０での処理を停止させることなく、以後の処理に必要な構成情報を第１の記憶領域（構成情報バッファ１０００）から第２の記憶領域（構成情報レジスタ１８００，２３００）へ予め転送するように構成する。また、複数の状態遷移モードにより、異なる状態遷移条件に対する条件判定処理を実行するように構成する。【選択図】図１
2006287675.tif 000002
【特許請求の範囲】
【請求項１】
演算を実行する複数の演算セルを含む演算部と、
演算データを保持するデータメモリと、
前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、
状態遷移を制御する状態遷移管理部と、
前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、
前記構成情報管理部へ前記構成情報を伝達する第１のバスと、
前記構成情報管理部と前記データメモリ制御部及び前記演算部と接続する第２のバスとを備え、
前記構成情報管理部は、前記第１のバスを介して転送された前記構成情報を格納する第１の記憶領域を備え、
前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から前記第２のバスを介して転送された前記構成情報を格納する第２の記憶領域を備え、
前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報の変更により動的に論理機能の再構成が可能であることを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路において、
前記第１の記憶領域は、複数の構成情報を格納可能な複数のバンクを有することを特徴とする半導体集積回路。
【請求項３】
請求項２記載の半導体集積回路において、
前記複数のバンクは、それぞれ独立に書き込み及び読み出しが可能であることを特徴とする半導体集積回路。
【請求項４】
請求項１記載の半導体集積回路において、
前記第２のバスは、前記第１のバスよりも単位時間におけるデータ転送量が多いことを特徴とする半導体集積回路。
【請求項５】
請求項１記載の半導体集積回路において、
前記状態遷移管理部は、複数の状態遷移モードを設定可能な状態遷移制御レジスタと、状態遷移条件の成立を判定する状態遷移制御部と、を備え、
前記状態遷移制御部は、前記状態遷移制御レジスタに設定された状態遷移モードに応じて互いに異なる状態遷移条件に基づく状態遷移条件判定動作を実行することを特徴とする半導体集積回路。
【請求項６】
請求項５記載の半導体集積回路において、
前記状態遷移管理部は、状態遷移モード毎に互いに異なる状態遷移条件を格納した複数の状態遷移制御テーブルを備え、各状態遷移モードに対応する状態遷移制御テーブルに従い状態遷移条件判定動作及び状態遷移動作を実行することを特徴とする半導体集積回路。
【請求項７】
請求項１記載の半導体集積回路において、
前記状態遷移管理部は、複数の状態遷移条件及び遷移後の状態を設定可能なフィールドを持つ状態遷移制御テーブルと、状態遷移条件の成立を判定する状態遷移制御部と、を備え、
前記状態遷移制御部は、前記状態遷移制御テーブルの設定内容に従い状態遷移条件の成立を判定し、状態遷移動作を実行することを特徴とする半導体集積回路。
【請求項８】
請求項７記載の半導体集積回路において、
前記状態遷移管理部は、状態遷移モード毎に互いに異なる状態遷移条件を格納した複数の状態遷移制御テーブルを備え、各状態遷移モードに対応する状態遷移制御テーブルに従い状態遷移条件判定動作及び状態遷移動作を実行することを特徴とする半導体集積回路。
【請求項９】
請求項１記載の半導体集積回路において、
前記状態遷移管理部は、所定の状態遷移条件が成立した場合に構成情報の先読み転送要求を発生させ、
前記構成情報管理部は、前記状態遷移管理部からの前記先読み転送要求により前記構成情報を第１の記憶領域から第２の記憶領域へ転送する機能を有することを特徴とする半導体集積回路。
【請求項１０】
請求項１記載の半導体集積回路において、
前記第２の記憶領域は、複数の構成情報を格納可能な複数のバンクからなり、第１のバンクに格納された構成情報に基づく処理を実行中に、前記構成情報管理部から供給される構成情報を、前記第１のバンクとは異なる第２のバンクに格納可能とするように構成されていることを特徴とする半導体集積回路。
【請求項１１】
請求項１０記載の半導体集積回路において、
前記構成情報管理部は、前記複数の構成情報を格納可能な複数のバンクのうち、実行中の処理に対応しない非実行バンクを特定し、前記非実行バンクの１つに対し構成情報を転送する機能を有することを特徴とする半導体集積回路。
【請求項１２】
請求項１０記載の半導体集積回路において、
前記構成情報管理部は、複数の状態を識別する識別子と前記複数のバンクとの対応を示す記憶領域を有することを特徴とする半導体集積回路。
【請求項１３】
請求項１０記載の半導体集積回路において、
前記構成情報管理部は、前記第１の記憶領域から前記第２の記憶領域へ前記複数の構成情報を転送するために、複数の状態を識別する識別子と構成情報の転送先及び転送元の宛先との関係を記憶するための記憶領域を有することを特徴とする半導体集積回路。
【請求項１４】
演算を実行する複数の演算セルを含む演算部と、
演算データを保持するデータメモリと、
前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、
状態遷移を制御する状態遷移管理部と、
前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、
前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であり、
前記状態遷移管理部は、切り替え先の番号を記憶する第１のテーブルと、切り替え先の番号と現在の番号と切り替え条件とを記憶する第２のテーブルとを有し、
前記第１のテーブルを使用する第１のモードと、前記第２のテーブルを使用する第２のモードとを動作中に切り替える機能を有することを特徴とする半導体集積回路。
【請求項１５】
請求項１４記載の半導体集積回路において、
前記構成情報管理部は、外部メモリから第１のバスを介して転送された前記構成情報を格納する第１の記憶領域を備え、
前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から第２のバスを介して転送された前記構成情報を格納する第２の記憶領域を備え
ることを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に、動的に論理機能の再構成が可能な半導体集積回路の構成に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、コンピュータ・アーキテクチャの分野においてダイナミック・リコンフィギュラブル技術が注目を集めている。ダイナミック・リコンフィギュラブル技術とは、ＬＳＩの動作中に内部の論理機能を切り替えることで、処理に必要とされる機能を必要なタイミングで実装する技術を指す。この技術を利用したダイナミック・リコンフィギュラブル・プロセッサは、内部に論理機能の切り替えが可能な演算セルを多数備えることで、専用ＬＳＩ並みの高い処理性能を達成できる。また、複数の処理で演算セルを時間軸方向に分割して共用することができるため、専用ＬＳＩを複数搭載する場合と比べて小面積化が可能という特徴もある。
【０００３】
演算セル毎に異なる論理機能を実装するには、演算セル毎にその論理機能を定義する構成情報が必要となる。また、複数の論理機能を切り替えて処理を実行するには、個々の演算セルは、対応する複数の構成情報が必要となる。このように、ダイナミック・リコンフィギュラブル・プロセッサは、処理の実行に大量の構成情報を必要とするため、構成情報の転送に起因する性能低下が発生しやすい。
【０００４】
そこで、必要な構成情報をプロセッサ内部に格納する構成（例えば、非特許文献１参照）や、以後の処理に必要な構成情報を先読みする構成（例えば、特許文献１参照）が知られている。
【０００５】
また、動的に論理機能を切り替える際、処理を中断するため、構成情報の変更に要する時間が処理のオーバヘッドになる。
【０００６】
そこで、プロセッサ内部にシーケンサを設け、シーケンサにより構成情報の変更を制御することで、高速化を達成する構成（例えば、非特許文献１参照）が知られている。  
【特許文献１】特開２００４−３２０１６号公報
【非特許文献１】「デザインウェーブマガジン」、ＣＱ出版社、２００４年８月、第８１巻、ｐ．１９−７９
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前記のようなダイナミック・リコンフィギュラブル技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００８】
一般的に、各種アプリケーションをダイナミック・リコンフィギュラブル・プロセッサ上で実行する場合、膨大な構成情報が必要になるため、全ての構成情報をプロセッサ内部に格納することは困難である。
【０００９】
したがって、プロセッサ外部のメモリに構成情報を保持しておく必要があるが、これはプロセッサ外部のメモリ・アクセスにより処理性能が低下することを意味する。この処理性能の低下を防ぐために、プロセッサ内部の記憶領域を効率良く利用できる構成が必要になる。
【００１０】
すなわち、ダイナミック・リコンフィギュラブル・プロセッサの処理性能を低下させる要因として、構成情報の転送に要する時間と構成情報の変更に要する時間が挙げられる。
【００１１】
前者に対しては、ある処理の実行中に、以後の処理に必要な構成情報を先読みすることで、実効的にその転送時間を隠すことができる。しかしながら、前記特許文献１に記載される構成は、演算部を複数のスロットに分け、そのいくつかのスロットで処理を実行している間に、停止しているスロットへ構成情報を書き込む構成であるため、全ての演算部を同時には有効に活用できないという問題がある。
【００１２】
一方、後者、すなわち構成情報の変更に要する時間を削減するには、前記非特許文献１に記載されているように、プロセッサ内部にシーケンサを設けることが有効である。ここで、シーケンサには、各種アプリケーションプログラムを容易かつ効率的に実装できるように、多種多様なシーケンスを多数扱えることが望まれる。しかしながら、複雑なシーケンスを扱うことのできるシーケンサは、回路規模、消費電力が増加し、動作周波数の向上が困難であるという問題がある。
【００１３】
本発明の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１５】
すなわち、本発明による半導体集積回路は、演算を実行する複数の演算セルを含む演算部と、演算データを保持するデータメモリと、前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、状態遷移を制御する状態遷移管理部と、前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、前記構成情報管理部は、外部メモリから第１のバスを介して転送された前記構成情報を格納する第１の記憶領域を備え、前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から第２のバスを介して転送された前記構成情報を格納する第２の記憶領域を備え、前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であることを特徴とするものである。
【００１６】
また、本発明による半導体集積回路は、演算を実行する複数の演算セルを含む演算部と、演算データを保持するデータメモリと、前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、状態遷移を制御する状態遷移管理部と、前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であり、前記状態遷移管理部は、切り替え先の番号を記憶する第１のテーブルと、切り替え先の番号と現在の番号と切り替え条件とを記憶する第２のテーブルとを有し、前記第１のテーブルを使用する第１のモードと、前記第２のテーブルを使用する第２のモードとを動作中に切り替える機能を有することを特徴とするものである。
【００１７】
また、本発明による半導体集積回路は、演算を実行する複数の演算セルを含む演算部と、演算データを保持するデータメモリと、前記データメモリへのアクセスを制御する複数のデータメモリ制御セルを含むデータメモリ制御部と、状態遷移を制御する状態遷移管理部と、前記演算セル及び前記データメモリ制御セルの論理機能を定義する構成情報の転送を制御する構成情報管理部と、を備え、前記構成情報管理部は、外部メモリから第１のバスを介して転送された前記構成情報を格納する第１の記憶領域を備え、前記複数の演算セル及び前記複数のデータメモリ制御セルのそれぞれは、前記構成情報管理部から第２のバスを介して転送された前記構成情報を格納する第２の記憶領域を備え、前記演算セル及び前記データメモリ制御セルは、前記構成情報の変更により動的に論理機能の再構成が可能であり、前記状態遷移管理部は、切り替え先の番号を記憶する第１のテーブルと、切り替え先の番号と現在の番号と切り替え条件とを記憶する第２のテーブルとを有し、  前記第１のテーブルを使用する第１のモードと、前記第２のテーブルを使用する第２のモードとを動作中に切り替える機能を有することを特徴とするものである。
【発明の効果】
【００１８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１９】
低消費電力、又は、処理性能の高い半導体集積回路を実現できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明に係る半導体集積回路の好適な実施の形態について、添付図面を参照しながら説明する。特に制限されないが、実施の形態の各ブロックを構成する回路素子は、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）やバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような１個の半導体基板上に形成される。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２１】
図１に、本発明の半導体集積回路に基づくダイナミック・リコンフィギュラブル・プロセッサを含む情報処理システムの実施例を示す。
【００２２】
特に制限されないが、このダイナミック・リコンフィギュラブル・プロセッサ１０は、状態遷移管理部４０、構成情報管理部５０、演算部６０、データメモリ制御部７０、データメモリ８０などから構成され、１個の半導体基板上に形成されている。そして、ダイナミック・リコンフィギュラブル・プロセッサ１０内において、状態遷移管理部４０は構成情報管理部５０、演算部６０及びデータメモリ制御部７０に接続され、構成情報管理部５０は第２のバスを介して、演算部６０及びデータメモリ制御部７０に接続され、演算部６０はデータメモリ制御部７０に接続され、データメモリ制御部７０はデータメモリ８０に接続されている。また、ダイナミック・リコンフィギュラブル・プロセッサ１０、ＣＰＵ２０及びメモリ３０は、バス（第１のバス）９０に接続されている。
【００２３】
メモリ３０は、構成情報記憶領域を含み、図示しないが、ダイナミック・リコンフィギュラブル・プロセッサ１０及びＣＰＵ２０においてソフトウェアを実行するためのプログラムとデータを保持している。なお、メモリ３０はメインメモリのようなＤＲＡＭを想定しており、特に制限されないが、ダイナミック・リコンフィギュラブル・プロセッサ１０やＣＰＵ２０と同一チップであっても別々のチップであっても構わない。
【００２４】
ＣＰＵ２０は、メモリ３０に格納されたＣＰＵ命令を順次実行するとともに、ダイナミック・リコンフィギュラブル・プロセッサ１０の論理機能を定義する構成情報を含む制御情報及び演算データの転送制御を行う。
【００２５】
状態遷移管理部４０は、前記制御情報に基づき、ダイナミック・リコンフィギュラブル・プロセッサ１０の内部状態の管理や状態遷移制御を行う。
【００２６】
構成情報管理部５０は、構成情報バッファ（第１の記憶領域）１０００を含み、構成情報の格納と、演算部６０及びデータメモリ制御部７０への構成情報の転送制御を行う。
【００２７】
演算部６０は、構成情報レジスタ（第２の記憶領域）１８００を含む複数の演算セル１６００などからなり（図１６、図２０、図２１参照）、入力された構成情報の格納及びデコードを行い、演算の実行を行う。
【００２８】
データメモリ制御部７０は、構成情報レジスタ（第２の記憶領域）２３００を含む複数のデータメモリ制御セル２１００などからなり（図１６、図２３、図２４参照）、入力された構成情報の格納及びデコードを行い、データメモリ８０へのメモリ・アクセスを行う。
【００２９】
次に、本実施の形態によるダイナミック・リコンフィギュラブル・プロセッサ１０において、演算部６０、データメモリ制御部７０、状態遷移管理部４０、構成情報管理部５０の詳細な構成とその動作を説明する。
【００３０】
図２０に、本実施の形態における演算部６０の構成例を示す。特に制限されないが、演算命令部６０は、状態遷移によって、実行する算術論理演算を動的に変更が可能な複数の演算セル１６００などで構成される。
【００３１】
図２１に、本実施の形態における演算セル１６００の構成例を示す。特に制限されないが、演算セル１６００は、命令デコーダ１７００、構成情報レジスタ（第２の記憶領域）１８００、構成情報書き込み制御部１９００、プログラマブルロジック部２０００で構成される。
【００３２】
特に制限されないが、本実施の形態における命令デコーダ１７００は、状態遷移管理部４０から入力されたバンク番号、状態遷移要求に基づき、構成情報レジスタ１８００の該当バンクから構成情報を読み出し、プログラマブルロジック部２０００へデコードされた命令を出力する（図示しない）。
【００３３】
図２２に、本実施の形態における構成情報レジスタ１８００の構成例を示す。特に制限されないが、構成情報レジスタ１８００は、複数バンクで構成されており、バンク毎に構成情報を格納したレジスタである。図２２のＢｋ０、Ｂｋ１、…、Ｂｋｉはバンク番号を表す。構成情報レジスタ１８００は構成情報バッファ１０００よりも小容量のレジスタあるため、高速アクセスが可能であり、高速な状態遷移に対応できる。また、複数バンクの構成であるため、前記構成情報の転送処理により、書き込み先バンクと読み出し元バンクに異なるバンクを指定し、構成情報管理部５０から構成情報を書き込みながら、命令デコーダ１７００へ構成情報を読み出すことで、演算部６０を効率的に利用できる。
【００３４】
特に制限されないが、本実施の形態における構成情報書き込み制御部１９００は、構成情報管理部５０から入力された書き込み要求、書き込み先のセル番号、書き込み先のバンク番号、構成情報に基づき、構成情報レジスタ１８００の該当バンクへ構成情報を格納する（図示しない）。
【００３５】
特に制限されないが、本実施の形態におけるプログラマブルロジック部２０００は、命令デコーダ１７００から入力される命令に基づき、実行する算術論理演算及び他の演算セル１６００、データメモリ制御セル２１００との入出力の接続を決定する（図示しない）。
【００３６】
図２３に、本実施の形態におけるデータメモリ制御部７０の構成例を示す。特に制限されないが、データメモリ制御部７０は、状態遷移によって、実行するメモリ・アクセスの種類を動的に変更が可能な複数のデータメモリ制御セル２１００などで構成される。
【００３７】
図２４に、本実施の形態におけるデータメモリ制御セル２１００の構成例を示す。特に制限されないが、データメモリ制御セル２１００は、命令デコーダ２２００、構成情報レジスタ（第２の記憶領域）２３００、構成情報書き込み制御部２４００、プログラマブルロジック部２５００で構成される。 
【００３８】
特に制限されないが、本実施の形態における命令デコーダ２２００は、状態遷移管理部４０から入力されたバンク番号、状態遷移要求に基づき、構成情報レジスタ２３００の該当バンクから構成情報を読み出す。また、状態遷移管理部４０から入力された動作状態、初期化要求に基づき、読み出し、プログラマブルロジック部２５００へデコードされた命令を出力する（図示しない）。
【００３９】
図２５に、本実施の形態における構成情報レジスタ２３００の構成例を示す。特に制限されないが、構成情報レジスタ２３００は、複数のバンクで構成されており、バンク毎に構成情報を格納したレジスタである。図２５のＢｋ０、Ｂｋ１、…、Ｂｋｉはバンク番号を表す。構成情報レジスタ２３００は構成情報バッファ１０００よりも小容量のレジスタあるため、高速アクセスが可能であり、高速な状態遷移に対応できる。また、複数バンクの構成であるため、前記構成情報の転送処理により、書き込み先バンクと読み出し元バンクに異なるバンクを指定し、構成情報管理部５０から構成情報を書き込みながら、命令デコーダ２２００へ構成情報を読み出すことで、データメモリ制御部７０を効率的に利用できる。
【００４０】
特に制限されないが、本実施の形態における構成情報書き込み制御部２４００は、構成情報管理部５０から入力された書き込み要求、書き込み先のセル番号、書き込み先のバンク番号、構成情報に基づき、構成情報レジスタ２３００の該当バンクへ構成情報を格納する。
【００４１】
特に制限されないが、本実施の形態におけるプログラマブルロジック部２５００は、命令デコーダ２２００から入力される命令に基づき、実行するメモリ・アクセスの種類及び他のデータメモリ制御セル２１００、演算セル１６００との入出力の接続を決定する（図示しない）。
【００４２】
なお、構成情報レジスタ１８００，２３００は、例えばＲＡＭ、不揮発性メモリなどで実現してもよい。 
【００４３】
図２に、本実施の形態における状態遷移管理部４０の構成例を示す。特に制限されないが、状態遷移管理部４０は、状態遷移制御レジスタ１００、制限付き状態遷移制御テーブル（第１のテーブル）２００、状態遷移制御テーブル（第２のテーブル）３００、状態遷移制御部４００で構成される。状態遷移管理部４０は、状態遷移制御部４００において状態遷移条件判定及び状態遷移処理を実行する。状態遷移条件及び状態遷移時の処理内容は、制限付き状態遷移制御テーブル２００、状態遷移制御テーブル３００に記述され、状態遷移制御レジスタ１００で使用するテーブルを指定する。
【００４４】
制限付き状態遷移制御テーブル２００は、各状態から別の状態への遷移先が１個の状態に制限された状態遷移しか扱えないように制限を加えたテーブルであり、テーブル内の状態数が増加しても高速に状態遷移条件判定を実行できるという特徴を持つ。一方、状態遷移制御テーブル３００は、制限のない状態遷移を扱えるが、制限付き状態遷移制御テーブル２００に比べると状態遷移条件の判定に時間を要する。これら２種類のテーブルを利用して状況に応じた状態遷移を行うことで、処理性能を低下させることなく、各種アプリケーションの実行に要求される柔軟な状態遷移に対応する。
【００４５】
図３に、本実施の形態における状態遷移制御レジスタ１００の構成例を示す。特に制限されないが、状態遷移制御レジスタ１００は、ダイナミック・リコンフィギュラブル・プロセッサ１０の現在の状態を示したレジスタであり、３個のフィールド１０１〜１０３で構成される。フィールド１０１〜１０３はそれぞれ、状態遷移モード（Ｍｄ）、動作状態（Ｏｐ）、実行中の状態番号（Ｓｔ）を示す。ここで、状態遷移モード（Ｍｄ）は、状態遷移条件判定及び状態遷移処理に使用するテーブルを指定し、制限モード（第１のモード）では制限付き状態遷移制御テーブル２００を、標準モード（第２のモード）では状態遷移制御テーブル３００を用いる。動作状態（Ｏｐ）は、演算部６０及びデータメモリ制御部７０の起動や停止の状態を示す。状態番号（Ｓｔ）は、演算部６０内の全ての演算セル１６００、データメモリ制御部７０内の全てのデータメモリ制御セル２１００によって構成された特定の論理機能を１状態として各状態に割り付けた番号を意味する。
【００４６】
図４に、本実施の形態における制限付き状態遷移制御テーブル２００の構成例を示す。特に制限されないが、制限付き状態遷移制御テーブル２００は、各状態から別の状態への遷移が１個に制限された状態遷移に関する状態遷移条件、状態遷移時の処理を記述したレジスタであり、９個のフィールド２０１〜２０９で構成される。図４のＥｎｔ０、Ｅｎｔ１、Ｅｎｔ２、…、Ｅｎｔｎはエントリ番号を表す。エントリ番号は状態番号（Ｓｔ）に一意に対応し、各エントリに各状態の状態遷移に関する記述がなされる。すなわち、テーブル内を状態番号について検索する必要がなく、扱う状態数（エントリ数）が増加しても状態遷移条件判定、状態遷移処理を高速に実行できる。
【００４７】
フィールド２０１，２０２は状態遷移条件を指定するフィールドであり、それぞれ動作状態条件（ＣＯｐ）、イベント条件（ＣＥｖ）を示す。特に制限されないが、イベントは状態遷移の回数や経過クロック・サイクル数等とする。動作状態条件（ＣＯｐ）、イベント条件（ＣＥｖ）は、特に条件設定が不要な場合も考慮し、無条件で成立という設定も可能である。これらの設定を基に、状態遷移制御部４００で状態遷移条件判定が行われる。
【００４８】
フィールド２０３〜２０５は、それぞれ遷移後の状態遷移モード（ＴＭｄ）、動作状態（ＴＯｐ）、状態番号（ＴＳｔ）を指定するフィールドである。
【００４９】
フィールド２０６〜２０９は、状態遷移時に構成情報管理部５０から演算部６０及びデータメモリ制御部７０へ、後続の処理に必要な構成情報を先読みして転送する処理に関するフィールドであり、それぞれ先読み転送要求（ＰｒＲ）、先読み転送モード（ＰｒＭ）、先読み転送状態番号（ＰｒＳｔ）、転送先バンク番号（ＰｒＢｋ）を指定する。詳細については後述するが、先読み転送要求（ＰｒＲ）は状態遷移後に構成情報管理部５０内部の構成情報バッファ１０００（図１０、図１２参照）から演算セル１６００、データメモリ制御セル２１００内部の構成情報レジスタ１８００，２３００へ、それ以降の状態に関する構成情報を先読みして転送するか否かを示し、先読み転送モード（ＰｒＭ）は構成情報の転送先バンク番号としてフィールド２０９の転送先バンク番号（ＰｒＢｋ）を利用するか、ランダム法などで生成するかといったバンク番号の生成モードを示し、先読み転送状態番号（ＰｒＳｔ）は先読みして転送する構成情報に対応する状態番号を示し、転送先バンク番号（ＰｒＢｋ）は構成情報の転送先である演算セル１６００、データメモリ制御セル２１００内部の複数バンクで構成された構成情報レジスタ１８００，２３００の格納先バンク番号を示す。
【００５０】
図５に、本実施の形態における状態遷移制御テーブル３００の構成例を示す。特に制限されないが、状態遷移制御テーブル３００は、前記制限付き状態遷移制御テーブル２００とは異なり、一般的な状態遷移に関する状態遷移条件、状態遷移時の処理を記述したレジスタであり、１１個のフィールド３０１〜３１１で構成される。テーブル内のエントリ番号（Ｅｎｔ０〜Ｅｎｔｍ）と状態番号とは対応がないため、各エントリに状態番号とその状態の状態遷移に関する記述がなされる。すなわち、テーブル内を状態番号について検索する必要があるため、扱う状態数を制限することで状態遷移条件判定、状態遷移処理の高速実行に対応する。
【００５１】
フィールド３０１〜３０４は状態遷移条件を指定するフィールドであり、それぞれ、状態番号条件（ＣＳｔ）、動作状態条件（ＣＯｐ）、イベント条件（ＣＥｖ）、トリガ入力条件（ＣＴｒｇ）を指定する。トリガは演算部６０から入力され、演算部６０の演算結果に依存する状態遷移を実行するために利用される。状態番号条件（ＣＳｔ）、動作状態条件（ＣＯｐ）、イベント条件（ＣＥｖ）、トリガ入力条件（ＣＴｒｇ）は、特に条件設定が不要な場合も考慮し、無条件で成立という設定も可能である。これらの設定を基に、状態遷移制御部４００で状態遷移条件判定が行われる。
【００５２】
フィールド３０５〜３０７は、それぞれ状態遷移後における、状態遷移モード（ＴＭｄ）、動作状態（ＴＯｐ）、状態番号（ＴＳｔ）を指定するフィールドである。
【００５３】
フィールド３０８〜３１１は、それぞれ構成情報の先読み転送要求（ＰｒＲ）、先読み転送モード（ＰｒＭ）、先読み転送状態番号（ＰｒＳｔ）、転送先バンク番号（ＰｒＢｋ）を指定するフィールドである。
【００５４】
状態遷移制御レジスタ１００、制限付き状態遷移制御テーブル２００、状態遷移制御テーブル３００は、例えばＲＡＭ、不揮発性メモリ等で実現してもよい。また、制限付き状態遷移制御テーブル２００、状態遷移制御テーブル３００は、特定のアプリケーションに特化して最適化された制御情報が固定でよいハードウェアを提供する場合、ＲＯＭや結線論理で実現してもよい。
【００５５】
状態遷移制御部４００は、状態遷移制御レジスタ１００、制限付き状態遷移制御テーブル２００及び状態遷移制御テーブル３００の設定に基づき、以下の（１）〜（６）に示す状態遷移制御を行う。
【００５６】
（１）状態遷移条件判定
状態遷移条件判定では、現在の状態から次の状態への遷移の条件が成立したか否かを判定する。状態遷移制御レジスタ１００のフィールド１０１で指定される状態遷移モード（Ｍｄ）により、異なるテーブルを用いて状態遷移条件判定を行う。以下、各状態遷移モードの状態遷移条件判定、状態遷移処理について述べる。
【００５７】
（１−１）制限モード
制限モードでは、制限付き状態遷移制御テーブル２００を使用して状態遷移条件判定を実行する。まず、状態遷移制御レジスタ１００のフィールド１０１（Ｍｄ）の状態から制限付き状態遷移制御テーブル２００の該当エントリを指定する。その後、指定されたエントリのフィールド２０１で設定された動作状態条件（ＣＯｐ）、フィールド２０２で設定されたイベント条件（ＣＥｖ）に基づき、それぞれ状態遷移制御レジスタ１００のフィールド１０２の動作状態（Ｏｐ）と、所定のイベント発生に対し条件判定を行う。両条件判定が成立した場合、制限モードでの状態遷移条件判定が成立となる。
【００５８】
（１−２）標準モード
標準モードでは、状態遷移制御テーブル３００を使用して状態遷移条件判定を実行する。まず、状態遷移制御テーブル３００の全エントリのフィールド３０１（ＣＳｔ）を検索し、状態遷移制御レジスタ１００のフィールド１０３（Ｓｔ）と一致する状態が格納されたエントリを選択する。その後、選択されたエントリに対し、状態遷移制御テーブル３００のフィールド３０２で設定された動作状態条件、フィールド３０３で設定されたイベント条件（ＣＥｖ）、フィールド３０４で設定されたトリガ条件（ＣＴｒｇ）に基づき、それぞれ状態遷移制御レジスタ１００のフィールド１０２の動作状態（Ｏｐ）、所定のイベント発生、所定のトリガ入力に対し条件判定を行う。全ての条件判定が成立した場合、標準モードでの状態遷移条件判定が成立となる。状態遷移制御テーブル３００の複数エントリで同時に状態遷移条件が成立した場合、その中から、予め定めた優先順位に従って、状態遷移条件が成立したエントリが1個選択される。更に望ましくは、状態遷移条件判定の成立に対するエントリ間の優先順位をレジスタで可変に設定できるよう構成するとよい。
【００５９】
（２）構成情報の転送要求制御
状態遷移条件判定が成立した場合、構成情報管理部５０へ後述する構成情報レジスタ管理テーブル１２００（図１０参照）の検索要求を出力する。構成情報管理部５０は、検索要求に従って検索を行う。検索のヒットは遷移先の状態に関する構成情報の転送が既に完了していることを意味しており、この場合、遷移先の状態の更に遷移先の状態やそれ以降の状態に関する構成情報を先読みして構成情報管理部５０内部の構成情報バッファ１０００から演算部６０、データメモリ制御部７０内部の構成情報レジスタ１８００，２３００への転送処理を行う。
【００６０】
一方、検索のミスは遷移先の状態に関する構成情報の転送が実行されていないことを意味しており、この場合、遷移先の状態に関する構成情報の転送処理を行う。状態遷移管理部４０において、検索ヒット時、制限モードでは、制限付き状態遷移制御テーブル２００の該当エントリのフィールド２０６〜２０９、標準モードでは、状態遷移制御テーブル３００の該当エントリのフィールド３０８〜３１１の設定に基づき、転送要求、転送状態番号、転送先バンク番号を生成し、構成情報管理部５０へ出力する。ここで、制限モードでは、制限付き状態遷移制御テーブル２００の該当エントリのフィールド２０７の設定に基づき、 同エントリのフィールド２０９から転送先バンク番号を生成するか、ランダム法で生成するかが決定される。標準モードでは、状態遷移制御テーブル３００の該当エントリのフィールド３０９の設定に基づき、 同エントリのフィールド３１１から転送先バンク番号を生成するか、ランダム法で生成するかが決定される。両状態遷移モードにおいて転送先バンク番号は、ランダム法以外、例えば、ＬＲＵ法やＦＩＦＯ法で生成してもよい。また、レジスタの設定により生成方法を選択できるよう構成してもよい。一方、検索ミス時、遷移先の状態番号を転送状態番号とし、ランダム法で転送先バンク番号の生成を行い、転送要求を発生させ構成情報管理部５０へ出力する。転送先バンク番号は、前記のようにＬＲＵ法やＦＩＦＯ法で生成してもよく、レジスタの設定により生成方法を選択できるよう構成してもよい。
【００６１】
（３）状態更新処理
状態更新処理では、状態遷移条件が成立した場合、状態遷移制御レジスタ１００のフィールド１０１〜１０３を更新することにより状態を遷移させる。具体的には、制限モードでは、制限付き状態遷移制御テーブル２００の該当エントリのフィールド２０３〜２０５（ＴＭｄ，ＴＯｐ，ＴＳｔ）、標準モードでは、状態遷移制御テーブル３００の該当エントリのフィールド３０５〜３０７（ＴＭｄ，ＴＯｐ，ＴＳｔ）を状態遷移制御レジスタ１００のフィールド１０１〜１０３（Ｍｄ，Ｏｐ，Ｓｔ）へ格納する。
【００６２】
（４）状態遷移要求制御
前記（３）の状態更新処理後、状態遷移制御レジスタ１００のフィールド１０２の動作状態（Ｏｐ）、フィールド１０３の状態番号（Ｓｔ）に対応するバンク番号と、状態遷移発生を示す状態遷移要求を演算部６０、データメモリ制御部７０へ出力する。
【００６３】
（５）転送先バンク番号変更要求制御
前記（２）の転送要求制御の実行中、構成情報管理部５０から入力された転送先バンク番号の変更要求を受け、転送先バンク番号をランダム法で生成し構成情報管理部５０へ出力する。転送先バンク番号は前記のようにＬＲＵ法やＦＩＦＯ法で生成してもよく、レジスタの設定により生成方法を選択できるよう構成してもよい。
【００６４】
（６）状態レジスタ退避・復帰処理
前記（２）の転送要求制御の実行中、構成情報管理部５０からサスペンド要求が入力されることがある。サスペンド要求とは演算部６０、データメモリ制御部７０を停止させ、演算、メモリ・アクセスを行わない状態へ移行させる要求である。サスペンド要求を受け付けた場合、その実行を保留し、状態遷移制御レジスタ１００のフィールド１０２（Ｏｐ）の内容を退避状態レジスタへ退避させ、動作状態をサスペンド状態に移行させる。サスペンド状態で構成情報管理部５０から復帰要求を受け付けると、退避状態レジスタから状態遷移制御レジスタ１００のフィールド１０２（Ｏｐ）の内容を復帰させ、保留していた前記（２）の転送要求制御を再実行する。
【００６５】
図８に、状態遷移条件判定フローを示す。状態遷移条件判定が開始（ステップＳ７００）されると、状態遷移制御部４００は、状態遷移制御レジスタ１００のフィールド１０１に示す状態遷移モード（Ｍｄ）に応じ（ステップＳ７０１）、制限モードの状態遷移条件判定（ステップＳ７０２〜Ｓ７０５）、あるいは標準モードの状態遷移条件判定（ステップＳ７０６〜Ｓ７１５）を実行する。条件が全て成立した場合、状態遷移条件判定成立（ステップＳ７１６）となり、1個でも条件が成立しない場合、状態遷移条件判定不成立（ステップＳ７１７）となる。
【００６６】
図９に、状態遷移条件判定後の状態遷移処理フローを示す。状態遷移条件判定成立時（ステップＳ８００，Ｓ７１６）、構成情報の転送要求制御を実行する（ステップＳ８０１〜Ｓ８１２）。転送要求制御において、構成情報レジスタ管理テーブル検索要求（ステップＳ８０１）に対する構成情報管理部５０の検索結果がヒットである場合、構成情報の先読み転送を実行するための転送要求制御（ステップＳ８０９〜Ｓ８１２）を行う。検索結果がミスである場合、構成情報管理部５０のサスペンド要求に応じ、サスペンド状態への遷移と状態レジスタの退避処理を行い（処理ステップＳ８０３）、遷移先の状態に関する構成情報の転送要求制御（ステップＳ８０４〜Ｓ８０６）を実行する。構成情報の転送の完了後（ステップＳ８０７）、構成情報管理部５０からの復帰要求に応じ、状態レジスタの復帰処理（ステップＳ８０８）を行い、再び構成情報の転送要求制御を実行する。構成情報の転送の完了後（ステップＳ８１３）、状態更新処理（ステップＳ８１４）、状態遷移要求制御（ステップＳ８１５）を実行し、処理終了（ステップＳ８１６）となる。
【００６７】
図６及び図７に、状態遷移条件判定の動作例を示す。
【００６８】
図６の動作例において、状態遷移制御レジスタ１００のフィールド１０１（Ｍｄ）の値は“０”となっており、これは状態遷移モードが制限モードであることを示す。そこで、状態遷移条件判定に制限付き状態遷移制御テーブル２００を使用する。状態レジスタ１００のフィールド１０１〜１０３は、特に制限されないが、それぞれ状態遷移モードを表す値（Ｍｄ）、動作状態を表す値（Ｏｐ）、状態番号（Ｓｔ）をとるものとする。状態遷移制御レジスタ１００のフィールド１０３の内容（Ｓｔ＝４）により、制限付き状態遷移制御テーブル２００の該当エントリ（Ｅｎｔ４）が指定される。該当エントリ（Ｅｎｔ４）のフィールド２０１（ＣＯｐ＝１）と状態遷移制御レジスタ１００のフィールド１０２の値（Ｏｐ＝１）が等しいため、動作状態条件は成立する。同エントリのフィールド２０２はイベント条件不要の設定（ＣＥｖ＝０）であるため、イベント条件も成立する。
【００６９】
ここで、フィールド２０１，２０２は、特に制限されないが、それぞれ動作状態条件を示す値（ＣＯｐ）、イベント条件を示す値（ＣＥｖ）をとるものとする。以上により、本動作例における状態遷移条件判定は成立となる。
【００７０】
図７の動作例においては、状態遷移制御レジスタ１００のフィールド１０１（Ｍｄ）の値は“１”であり、状態遷移モードは標準モードであることを示す。そこで、状態遷移条件判定に状態遷移制御テーブル３００を使用する。状態遷移制御レジスタ１００のフィールド１０３（Ｓｔ＝２）により、制限付き状態遷移制御テーブル２００の全エントリのフィールド３０１を検索し、該当する状態（ＣＳｔ＝２）が格納されたエントリ（Ｅｎｔ１，Ｅｎｔ２）が選択される。 状態遷移制御テーブルの該当エントリ（Ｅｎｔ１，Ｅｎｔ２）のフィールド３０２（ＣＯｐ＝１）と状態遷移制御レジスタ１００のフィールド１０２（Ｏｐ＝１）が等しいため、両エントリの動作状態条件は成立する。同エントリ（Ｅｎｔ１，Ｅｎｔ２）のフィールド３０３（ＣＥｖ＝１０）と発生したイベント５００（Ｅｖ＝１０）が等しいため、両エントリのイベント条件も成立する。
【００７１】
特に制限されないが、本動作例ではトリガ条件とトリガ入力の各ビットの論理ＯＲをとり、全てが“１”であった場合をトリガ条件が成立するとする。論理ＯＲをとることとしたのは、マスクビットを設定できるようにしたためである。マスクビットとして設定できず、トリガ条件とトリガ入力との完全一致として構成した場合、複数の演算セル６０を利用して演算結果を適切なトリガ入力へ処理し直す必要があり、処理性能が低下する。該当エントリ（Ｅｎｔ１，Ｅｎｔ２）のフィールド３０４（ＣＴｒｇ）はそれぞれ“０ｘＦＥ”“０ｘＦＦ”であり、演算部６０から入力されたトリガ６００（Ｔｒｇ）は“０ｘ０１”であるため、両エントリのトリガ条件も成立する。
【００７２】
ここで、状態遷移制御テーブル３００のフィールド３０１〜３０４は、特に制限されないが、それぞれ状態番号（ＣＳｔ）、動作状態条件を示す値（ＣＯｐ）、イベント条件を示す値（ＣＥｖ）、トリガ条件を示す値（ＣＴｒｇ）をとるものとする。以上により、両エントリ（Ｅｎｔ１，Ｅｎｔ２）の状態遷移条件判定は成立する。状態遷移条件判定の優先順位は、特に制限されないが、エントリ番号が小さいほど高いものとすると、本動作例では、優先順位判定により、エントリ１（Ｅｎｔ１）の状態遷移条件判定の成立が選択される。
【００７３】
図１０に、本実施の形態における構成情報管理部５０の構成例を示す。特に制限されないが、構成情報管理部５０は、構成情報制御レジスタ９００、構成情報バッファ（第１の記憶領域）１０００、状態定義テーブル１１００、構成情報レジスタ管理テーブル１２００、構成情報制御部１３００で構成される。構成情報管理部５０は、状態遷移管理部４０から構成情報の転送要求を受け、構成情報制御部１３００において構成情報バッファ１０００から演算部６０、データメモリ制御部７０へ転送される構成情報の制御を行う。構成情報の転送制御は、構成情報の転送元である構成情報バッファ１０００のエントリ番号と構成情報の転送先となる演算セル１６００及びデータメモリ制御セル２１００の番号が記述された状態定義テーブル１１００及び転送された構成情報が演算セル１６００及びデータメモリ制御セル２１００内部の構成情報レジスタ（第２の記憶領域）１８００，２３００のどのバンクに格納されたかを記述した構成情報レジスタ管理テーブル１２００を使用して実行される。構成情報バッファ１０００は、複数の演算セル１６００、データメモリ制御セル２１００で共通の構成情報を１箇所にまとめて格納するため、効率良く構成情報を記憶することができる。一方、演算セル１６００、データメモリ制御セル２１００内部の構成情報レジスタ１８００、２３００は構成情報バッファ１０００よりも小容量のレジスタで構成されるため、高速なアクセスが可能である。このように、構成情報を階層的に記憶することで、必要な記憶容量の削減と、高速な状態遷移を可能とする。
【００７４】
また、図２１及び図２４に示すように、演算セル１６００及びデータメモリ制御セル２１００は、演算処理やメモリ・アクセスを実行しながら、後続の処理に必要な構成情報を受け入れ可能なように、内部に複数バンクで構成された構成情報レジスタ１８００、２３００を備えている。そのため、構成情報レジスタ管理テーブル１２００を使用して、現在実行中のバンクへの構成情報の転送を避け、また、遷移先の状態に関する構成情報が構成情報レジスタ１８００，２３００に格納されているかどうかの判定を行うことで、効率の良い構成情報の転送を可能とする。
【００７５】
図１１に、本実施の形態における構成情報制御レジスタ９００の構成例を示す。特に制限されないが、構成情報制御レジスタ９００は、構成情報の転送処理状況を示したレジスタであり、２個のフィールド９０１，９０２で構成される。フィールド９０１，９０２は、それぞれ構成情報制御部１３００が構成情報を転送中か否かを示す転送フラグ（ＴｒＦｌｇ）、サスペンド状態か否かを示すサスペンド状態フラグ（ＳｐＦｌｇ）を表す。
【００７６】
図１２に、本実施の形態における構成情報バッファ１０００の構成例を示す。特に制限されないが、構成情報バッファ１０００は演算セル１６００及びデータメモリ制御部セル２１００の構成情報を多数格納したレジスタである。複数の演算セル１６００及びデータメモリ制御セル２１００における共通の構成情報をまとめて１エントリに格納することで効率良く構成情報を記憶できる。図１２のＥｎｔ０、Ｅｎｔ１、…、ＥｎｔＮはエントリ番号を示す。
【００７７】
図１３に、本実施の形態における状態定義テーブル１１００の構成例を示す。特に制限されないが、状態定義テーブル１１００は構成情報バッファ１０００のエントリを指すポインタを状態毎に管理するレジスタであり、２個のフィールド１１０１，１１０２で構成される。図１３のＳｔ０、Ｓｔ１、…、Ｓｔｎはそれぞれ状態番号を表す。フィールド１１０１，１１０２は、それぞれ演算部６０内の全ての演算セル１６００、データメモリ制御部７０内の全てのデータメモリ制御セル２１００に対し、構成情報バッファ１０００のエントリを指すポインタを格納するフィールドである。図１３のフィールド１１０１のＥｘＣ０、ＥｘＣ１、ＥｘＣ２、…、ＥｘＣｏ、フィールド１１０２のＭｅＣ０、ＭｅＣ１、ＭｅＣ２、…、ＭｅＣｆは、それぞれ演算セル１６００の番号、データメモリ制御セル２１００の番号を表す（図１６参照）。 
【００７８】
図１４に、本実施の形態における構成情報レジスタ管理テーブル１２００の構成例を示す。特に制限されないが、構成情報レジスタ管理テーブル１２００は、転送された構成情報が、演算セル１６００及びデータメモリ制御セル２１００内部の複数バンクで構成された構成情報レジスタ１８００，２３００のどのバンクに格納されたかを示すレジスタであり、２個のフィールド１２０１，１２０２で構成される。構成情報の転送及び転送先バンクは状態毎に管理されているため、構成情報レジスタ管理テーブル１２００はバンク番号と状態番号の対応を記憶する。図１４のＢｋ０、Ｂｋ１、…、Ｂｋｉはバンク番号を表す。フィールド１２０１、１２０２はそれぞれバンクに格納された構成情報の有効性（Ｖ）、状態番号（ＢＳｔ）を示すフィールドである。
【００７９】
なお、構成情報制御レジスタ９００、構成情報バッファ１０００、状態定義テーブル１１００、構成情報レジスタ管理テーブル１２００は、例えばＲＡＭ、不揮発性メモリ等で実現してもよい。また、構成情報バッファ１０００、状態定義テーブル１１００は、特定のアプリケーションに特化して最適化された制御情報が固定でよいハードウェアを提供する場合、ＲＯＭや結線論理方式で実現してもよい。
【００８０】
構成情報制御部１３００は、構成情報制御レジスタ９００、構成情報バッファ１０００、状態定義テーブル１１００、構成情報レジスタ管理テーブル１２００の設定、ＣＰＵ２０及び状態遷移管理部４０からの入力に基づき、以下の（１）〜（７）に示す構成情報の転送処理を行う。
【００８１】
（１）構成情報の転送要求による構成情報の転送処理
構成情報の転送要求による構成情報の転送処理では、状態遷移管理部４０から入力される構成情報の転送要求に応じ、演算部６０、データメモリ制御部７０へ、書き込み要求、書き込み先のセル番号、書き込み先のバンク番号、構成情報を出力する。状態定義テーブル１１００の該当状態の該当セル番号が示すポインタによって、構成情報バッファ１０００から転送される構成情報が決定される。ここで、状態定義テーブル１１００の状態番号は状態遷移管理部４０から入力された転送状態番号で指定される。一方、書き込み要求、書き込み先のバンク番号は、状態遷移管理部４０から入力された転送要求、転送先バンク番号から生成される。本実施の形態において、書き込み先のセル番号は固定的に書き込む順番を決定することで生成しているが、レジスタの設定により書き込む順番を可変としてもよい。書き込み先のバンク番号と遷移後の状態に対応する構成情報が格納されたバンク番号が等しい場合、構成情報の転送処理を中止し、状態遷移管理部４０へ転送先バンク番号変更要求を出力する。
【００８２】
（２）構成情報の転送コマンド要求による構成情報の転送処理
構成情報の転送コマンド要求による構成情報の転送処理では、ＣＰＵ２０から入力される構成情報の転送コマンド要求に応じ、前記（１）と同様の処理を行う。ここで、状態定義テーブル１１００の状態番号、演算部６０、データメモリ制御部７０へ出力される書き込み要求、書き込み先のバンク番号は、それぞれＣＰＵ２０から入力された転送状態番号、転送コマンド要求、転送先バンク番号であることに注意されたい。
【００８３】
（３）構成情報レジスタ管理テーブル検索処理
構成情報レジスタ管理テーブル検索処理では、状態遷移管理部４０から入力された構成情報レジスタ管理テーブル検索要求に応じ、遷移後の状態に関する構成情報が演算セル１６００、データメモリ制御セル２１００内部の構成情報レジスタ１８００、２３００に格納されているか否かについて、構成情報レジスタ管理テーブル１２００を検索し、検索結果を状態遷移管理部４０へ出力する。検索がミスした場合、構成情報制御レジスタ９００のフィールド９０２のサスペンド状態フラグを立て、サスペンド要求を状態遷移管理部４０へ出力する。  
【００８４】
（４）構成情報の転送中の状態遷移発生によるサスペンド要求
前記（１）あるいは（２）の構成情報の転送処理を行っている間に状態遷移が発生した場合、構成情報制御レジスタ９００のフィールド９０２のサスペンド状態フラグを立て、状態遷移管理部４０へサスペンド要求を出力する。実行中の構成情報の転送処理は継続される。  
【００８５】
（５）構成情報の転送中の構成情報の転送コマンド要求によるエラー通知
前記（１）あるいは（２）の構成情報の転送処理を行っている際に、ＣＰＵ２０から構成情報の転送コマンド要求があった場合、状態遷移管理部４０へエラーの通知を行う。エラー後の処理は状態遷移管理部４０の設定によるものとする。
【００８６】
（６）状態更新処理
状態更新処理では、更新情報が構成情報レジスタへ転送中か否かを表す状態を設定する。具体的には、構成情報の転送開始時、構成情報制御レジスタ９００のフィールド９０１の転送フラグ（ＴｒＦｌｇ）を立て、状態遷移管理部４０から入力された転送先バンク番号に基づき、構成情報レジスタ管理テーブル１２００の該当バンクのフィールド１２０１（Ｖ）を無効とする。構成情報の転送完了時は、構成情報制御レジスタ９００のフィールド９０１の転送フラグ（ＴｒＦｌｇ）を解除し、構成情報レジスタ管理テーブル１２００の該当バンクのフィールド１２０１（Ｖ）を有効とするとともに、該当バンクのフィールド１２０２（ＢＳｔ）に状態遷移管理部４０から入力された転送状態番号を書き込む。
【００８７】
（７）復帰要求
サスペンド状態で構成情報の転送処理の完了後、構成情報制御レジスタ９００のフィールド９０２のサスペンド状態フラグを解除し、状態遷移管理部４０へ復帰要求を出力する。
【００８８】
図１８及び図１９に、構成情報制御フローを示す。構成情報制御が開始（ステップ１５００）されると、構成情報制御部１３００は構成情報制御レジスタ９００のフィールド９０１の転送フラグ（ＴｒＦｌｇ）により、転送状況の判定を行い（ステップ１５０１）、引き続きＣＰＵ２０からの転送コマンド要求の有無を判定する（ステップ１５０２，１５１４）。構成情報の転送中でなく、かつ転送コマンド要求もない場合、状態遷移管理部４０から入力された構成情報レジスタ管理テーブル検索要求に応じ（ステップ１５０３）、構成情報レジスタ管理テーブル検索処理（ステップ１５０４〜１５０６）を行い、構成情報の転送処理（ステップ１５０７，１５０８、又はステップ１５０９〜１５１２，１５０８）を行う。構成情報の転送中でなく、かつ転送コマンド要求のある場合、転送コマンド要求による構成情報の転送処理（ステップ１５１０〜１５１２，１５０８）を実行する。構成情報の転送中で、かつ転送コマンド要求がある場合、状態遷移管理部４０へエラーを通知する（ステップ１５１５）。構成情報の転送中で、かつ転送コマンド要求がなく、かつ状態遷移管理部４０から構成情報レジスタ管理テーブル検索要求があった場合、構成情報の転送中の状態遷移によるサスペンド要求を行う（ステップ１５１７，１５１８）。構成情報の転送が終了すると（ステップ１５１９）、状態更新処理（ステップ１５２０，１５２３）を行う。ここで、構成情報制御レジスタ９００のフィールド９０２のサスペンド状態フラグが立っている場合、状態遷移管理部４０へ復帰要求（ステップ１５２１，１５２２）を行う。
【００８９】
図１５に、転送要求による構成情報の転送処理の動作例を示す。図１５の動作例において、状態遷移管理部４０から入力された転送先バンク番号（ＴｒＢｋ＝３）と、遷移後の状態に関する構成情報を格納したバンク番号（ＮＢｋ＝４）は異なるため、転送先バンク番号変更要求はない。また、状態定義テーブル１１００の各セルのエントリポインタは、同図の矢印で示すように、構成情報バッファ１０００の構成情報が格納されているエントリを指す。共通の構成情報は同一のエントリに格納することで構成情報バッファ１０００を効率的に利用できる（Ｅｎｔ１（Ｃｆｇ＝ＩｎｓｔＧ）、Ｅｎｔ３（Ｃｆｇ＝ＩｎｓｔＢ））。
【００９０】
図１６に示すように、本実施の形態では、ダイナミック・リコンフィギュラブル・プロセッサ１０、ＣＰＵ２０、メモリ３０が接続された汎用のバス（第１のバス）９０よりも広帯域（単位時間におけるデータ転送量が汎用のバス（第1のバス）より多いことを言う。）な構成情報転送用バス（第２のバス）１４００を利用して演算部６０、データメモリ制御部７０の複数のセルに対し並列に構成情報を書き込む構成とすることで構成情報の転送処理に要する時間を短縮する。図１６のＥｘＣ０、ＥｘＣ１、…、ＥｘＣｏは演算セル１６００の番号を、ＭｅＣ０、ＭｅＣ１、…、ＭｅＣｆはデータメモリ制御セル２１００の番号を表す。本動作例では、書き込む順番を始めに演算部６０、その後データメモリ制御部７０とし、それぞれの内部では行毎にセル番号の昇順としているが、書き込む順番を可変としてレジスタで設定可能にしても良い。夫々の演算セル１６００及びデータメモリ制御セル２１００と構成情報管理部とを専用データ線で接続しても問題ないが、専用データ線ではその本数が多く面積が大きくなる。従って、本実施例では、構成情報転送用バスを複数の演算セル１６００又はデータメモリ制御セル２１００で共有するバス構成としている。
【００９１】
ここでは、第1行（ＥｘＣ０を含む行）に関する動作のみ説明するが、他の行も並列に同様な動作が実行される。構成情報の転送が開始されると（図１５）、状態遷移管理部４０から入力された転送状態番号（ＴｒＳｔ＝０）、構成情報制御部１３００で生成された書き込み先セル番号（Ｗｎｕｍ＝０）に基づき、構成情報バッファ１０００から、状態定義テーブル１１００内のＳｔ０のＥｘＣ０のエントリポインタが指す構成情報（Ｃｆｇ＝ＩｎｓｔＡ）を得る。その後、該当演算セル１６００（ＥｘＣ０）の該当バンク（ＷＢｋ＝３）へ構成情報（Ｃｆｇ＝ＩｎｓｔＡ）を書き込む。該当演算セル１６００（ＥｘＣ０）への書き込みを完了すると、次の書き込み先セル番号を生成し（Ｗｎｕｍ＝１）、前記と同様の処理により、該当演算セル１６００（ＥｘＣ１）の該当バンク（ＷＢｋ＝３）へ構成情報（Ｃｆｇ＝ＩｎｓｔＧ）を書き込む。以後同様に処理を実行し、全列に対する書き込み処理の終了後、データメモリ制御部７０の各データメモリ制御セル２１００に対する書き込み処理を実行する。
【００９２】
図１７に、レジスタの状態更新処理の動作例を示す。本動作例においては、図１７（ａ）に示すように、状態遷移管理部４０から転送先バンク番号（ＴｒＢｋ＝１）、転送状態番号（ＴｒＳｔ＝４）が入力されたとする。また、構成情報制御レジスタ９００、構成情報レジスタ管理テーブル１２００は図１７（ｂ）に示す状態であるとする。特に制限されないが、構成情報制御レジスタ９００のフィールド９０１、９０２は、それぞれ転送状況を表す値（ＴｒＦｌｇ）、サスペンド状態を表す値（ＳｐＦｌｇ）をとるものとし、構成情報レジスタ管理テーブル１２００のフィールド１２０１，１２０２は、それぞれバンクの有効性を示す値（Ｖ）、状態番号（ＢＳｔ）をとるものとする。
【００９３】
構成情報の転送処理が開始すると、図１７（ｃ）に示すように、構成情報制御レジスタ９００のフィールド９０１の転送フラグを立て（ＴｒＦｌｇ＝１）、構成情報レジスタ管理テーブル１２００の該当バンク（Ｂｋ１）のフィールド１２０１を無効にする（Ｖ＝０）。
【００９４】
構成情報の転送処理が完了すると、図１７（ｄ）に示すように、構成情報制御レジスタ９００のフィールド９０１の転送フラグを解除し（ＴｒＦｌｇ＝０）、構成情報管理テーブル１２００の該当バンク（Ｂｋ１）のフィールド１２０１を有効にし（Ｖ＝１）、フィールド１２０２に該当状態番号（ＴｒＳｔ＝４）を書き込む（ＢＳｔ＝４）。
【００９５】
したがって、本実施の形態による半導体集積回路によれば、構成情報を階層的に記憶することでプロセッサ内部に必要な記憶容量を削減し、内部の広帯域バスを利用して階層間の高速なデータ転送を行うことにより、低消費電力が実現でき、処理性能を高くすることができる。
【００９６】
また、実行中の処理を停止させることなく、後続の処理に必要な構成情報の階層間転送を予め実行することにより、性能オーバヘッドを小さくすることができる。
【００９７】
また、制限付き状態遷移モードと制限なし状態遷移モードとを適宜組み合わせて使用することにより、状態遷移の柔軟性と高い動作周波数を両立させ、実装が容易となる。
【００９８】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９９】
本発明は、動的に論理機能の再構成が可能な半導体集積回路を実装した装置等について適用可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサを含む情報処理システムの構成例を示すブロック図である。
【図２】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、状態遷移管理部の構成例を示すブロック図である。
【図３】図２に示す状態遷移制御レジスタの構成例を示すブロック図である。
【図４】図２に示す制限付き状態遷移制御テーブルの構成例を示す図である。
【図５】図２に示す状態遷移制御テーブルの構成例を示す図である。
【図６】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、制限モードにおける状態遷移条件判定の動作例を示す図である。
【図７】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、標準モードにおける状態遷移条件判定の動作例を示す図である。
【図８】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、状態遷移制御フローを示すフローチャートである。
【図９】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、状態遷移制御フローを示すフローチャートである。
【図１０】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、構成情報管理部の構成例を示すブロック図である。
【図１１】図１０に示す構成情報制御レジスタの構成例を示すブロック図である。
【図１２】図１０に示す構成情報バッファの構成例を示すブロック図である。
【図１３】図１０に示す状態定義テーブルの構成例を示す図である。
【図１４】図１０に示す構成情報レジスタ管理テーブルの構成例を示す図である。
【図１５】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、転送要求における構成情報の転送処理の動作例を示す図である。
【図１６】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、構成情報転送用バスの構成例を示すブロック図である。
【図１７】（ａ）〜（ｄ）は、本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、構成情報管理部の状態更新処理の動作例を示す図である。
【図１８】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、構成情報制御フローを示すフローチャートである。
【図１９】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、構成情報制御フローを示すフローチャートである。
【図２０】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、演算部の構成を示す図である。
【図２１】図２０に示す演算セルの構成例を示すブロック図である。
【図２２】図２１に示す構成情報レジスタの構成例を示す図である。
【図２３】本発明の一実施の形態によるダイナミック・リコンフィギュラブル・プロセッサにおいて、データメモリ制御部の構成例を示す図である。
【図２４】図２３に示すデータメモリ制御セルの構成例を示すブロック図である。
【図２５】図２４に示す構成情報レジスタの構成例を示す図である。
【符号の説明】
【０１０１】
１０  ダイナミック・リコンフィギュラブル・プロセッサ
２０  ＣＰＵ
３０  メモリ
４０  状態遷移管理部
５０  構成情報管理部
６０  演算部
７０  データメモリ制御部
８０  データメモリ
９０  バス（第１のバス）
１００  状態遷移制御レジスタ
１０１〜１０３，２０１〜２０９，３０１〜３１１，９０１〜９０２，１１０１〜１１０２，１２０１〜１２０２  フィールド
２００  制限付き状態遷移制御テーブル（第１のテーブル）
３００  状態遷移制御テーブル（第２のテーブル）
４００  状態遷移制御部
５００  イベント
６００  トリガ
９００  構成情報制御レジスタ
１０００  構成情報バッファ（第１の記憶領域）
１１００  状態定義テーブル
１２００  構成情報レジスタ管理テーブル
１３００  構成情報制御部
１４００  構成情報データ転送用バス（第２のバス）
１６００  演算セル
１７００，２２００  命令デコーダ
１８００，２３００  構成情報レジスタ（第２の記憶領域）
１９００，２４００  構成情報書き込み制御部
２０００，２５００  プログラマブルロジック部
２１００  データメモリ制御セル
【図１】
2006287675.tif 000003
【図２】
2006287675.tif 000004
【図３】
2006287675.tif 000005
【図４】
2006287675.tif 000006
【図５】
2006287675.tif 000007
【図６】
2006287675.tif 000008
【図７】
2006287675.tif 000009
【図８】
2006287675.tif 000010
【図９】
2006287675.tif 000011
【図１０】
2006287675.tif 000012
【図１１】
2006287675.tif 000013
【図１２】
2006287675.tif 000014
【図１３】
2006287675.tif 000015
【図１４】
2006287675.tif 000016
【図１５】
2006287675.tif 000017
【図１６】
2006287675.tif 000018
【図１７】
2006287675.tif 000019
【図１８】
2006287675.tif 000020
【図１９】
2006287675.tif 000021
【図２０】
2006287675.tif 000022
【図２１】
2006287675.tif 000023
【図２２】
2006287675.tif 000024
【図２３】
2006287675.tif 000025
【図２４】
2006287675.tif 000026
【図２５】
2006287675.tif 000027