(57)【要約】【課題】  アプリケーションの切り替えの自由度を高める。【解決手段】  演算器群の動作を切り替えるための切り替え条件として、演算器ユニット１ａ、１ｂ、１ｃ、１ｄの出力と切り替え条件コード、ステート１、ステート２、ステート３、ステート４が、切り替え条件対応付け部２によって対応付けられている。切り替え条件コード出力部３は、切り替え条件に設定された演算器ユニット１ａ、１ｂ、１ｃ、１ｄの出力によって切り替え条件が成立したと判定した場合、対応付けられた切り替え条件コードを出力する。シーケンサは、切り替え条件コードを入力すると、コードに応じた状態に演算器群を切り替える。【選択図】  図１
2006011825.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサを有する再構成可能演算装置において、
前記演算器群を構成する任意の構成要素の出力を前記演算器群の動作を切り替えるための切り替え条件とし、切り替え条件コードに対応付ける切り替え条件対応付け部と、
前記切り替え条件対応付け部によって前記切り替え条件に設定された前記構成要素の出力が出力されるごとに前記切り替え条件が成立するかどうかを判定し、成立した前記切り替え条件に応じた前記切り替え条件コードを出力する切り替え条件コード出力部と、
を具備することを特徴とする再構成可能演算装置。
【請求項２】
前記切り替え条件対応付け部は、所定の前記構成要素の出力と、前記構成要素の出力に対応付けられる前記切り替え条件コードとの関係を予め配線によって対応付けることを特徴とする請求項１記載の再構成可能演算装置。
【請求項３】
前記切り替え条件対応付け部は、任意の前記構成要素の出力と、前記構成要素の出力に対応付けられる前記切り替え条件コードとの間の接続関係をプログラム情報としてプログラム情報格納部に格納することを特徴とする請求項１記載の再構成可能演算装置。
【請求項４】
前記切り替え条件コード出力部は、前記構成要素の出力と前記切り替え条件コードとの間の対応付けを複数管理し、入力される複数の前記構成要素の出力について前記切り替え条件が成立した場合に、予め決められた優先度に従っていずれかの前記切り替え条件コードを選択することを特徴とする請求項１記載の再構成可能演算装置。
【請求項５】
前記演算器群は、前記構成要素の動作および前記構成要素間の接続関係を記述した設定情報に基づいて動作を行い、前記切り替え条件対応付け部および前記切り替え条件コード出力部は、前記設定情報に前記演算器群を構成する前記構成要素の組み合わせを登録して構築されることを特徴とする請求項１記載の再構成可能演算装置。
【請求項６】
前記切り替え条件に対応付けられる前記構成要素には、所定の数をカウントするカウンタと、前記切り替え条件が成立する比較カウント値を記憶する比較値記憶部と、前記カウンタのカウントする現在のカウント値と前記比較値記憶部に格納された比較カウンタ値とを比較して比較結果を出力する比較器と、を有するカウンタユニットが含まれることを特徴とする請求項１記載の再構成可能演算装置。
【請求項７】
前記カウンタユニットのキャリー出力によって複数の前記カウンタユニットをシリアルに結線するとともに、前記切り替え条件対応付け部によってシリアルに結線された前記カウンタユニットそれぞれに前記切り替え条件コードを対応付けて多重ＦＯＲ文を構成することを特徴とする請求項６記載の再構成可能演算装置。
【請求項８】
前記切り替え条件に対応付けられる前記構成要素には、所定のデータが格納されるメモリ部と、前記切り替え条件が成立する前記メモリ部の比較アドレスまたは比較データを格納する比較値記憶部と、前記メモリ部への書き込みまたは読み出し時の指定アドレスあるいは書き込みまたは読み出しデータを前記比較値記憶部の前記比較アドレスあるいは前記比較データと比較して比較結果を出力する比較器と、を有するメモリユニットが含まれることを特徴とする請求項１記載の再構成可能演算装置。
【請求項９】
前記メモリユニットは、さらに、前記比較器の出力を入力して任意の時間遅延させた後出力する遅延器を有することを特徴とする請求項８記載の再構成可能演算装置。
【請求項１０】
複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサとを有し、前記シーケンサによって前記演算器群の動作状態を再構成する半導体装置において、
前記演算器群を構成する任意の構成要素の出力を前記演算器群の動作を切り替えるための切り替え条件とし、切り替え条件コードに対応付ける切り替え条件対応付け部と、
前記切り替え条件対応付け部によって前記切り替え条件に設定された前記構成要素の出力が出力されるごとに前記切り替え条件が成立するかどうかを判定し、成立した前記切り替え条件に応じた前記切り替え条件コードを出力する切り替え条件コード出力部と、
前記切り替え条件コード出力部の出力した前記切り替え条件コードに応じて前記演算器群の動作状態を切り替えるシーケンサと、
を具備することを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は再構成可能演算装置および半導体装置に関し、特に複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサを有する再構成可能演算装置および半導体装置に関する。
【背景技術】
【０００２】
従来、製品出荷後に発生する仕様変更、機能追加、新サービス追加などに対し、デバイスの作り直しをせずに機能変更を行うことを可能にするため、回路構成情報を入れ替えるだけで対応できる再構成可能演算装置が提供されている。
【０００３】
再構成可能演算装置として、たとえば、ＩＰ−Ｆｌｅｘ社製のＤＡＰ／ＤＮＡ（Digital Application Processor/Distributed Network Architecture（登録商標））や、ＮＥＣ社製のＤＲＰ（Dynamically Reconfigurable Processor）が知られている。
【０００４】
ＤＡＰ／ＤＮＡは、２次元状に配置される複数の演算器複合ユニットを有し、ユニット内の構成と演算器間の接続情報を記述したメモリを複数面備え、このメモリ面を切り替えることにより異なるアルゴリズムを処理する。
【０００５】
ＤＲＰは、命令メモリ、命令デコーダおよび演算器を有する演算器ユニットが２次元状に複数配置されており、演算器ユニットの動作を状態遷移管理部で管理する。状態遷移管理部では、状態遷移テーブルを有し、状態遷移テーブルに従って各演算器ユニットの実行する命令メモリのアドレスを指示することにより、任意の命令を選択して実行させる。
【０００６】
また、データフロープロセッサ（ＤＦＰ；Data Flow Processor）など、２次元または多次元のセル装置を有するコンフィギュレーション化可能なモジュールを動的に再構成するための手法が提案されている（たとえば、特許文献１参照）。
【特許文献１】特表２００１−５１０６５０号公報（図２）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、従来の再構成可能演算装置では、アプリケーションの切り替えの条件生成のタイミングに自由度がないという問題点があった。
図１３は、従来のＤＡＰ／ＤＮＡにおける演算器群の内容切り替え方式を示した模式図である。ＤＡＰ／ＤＮＡの場合、一面分に割り当てられた演算が終了し、次の面の演算を行う際に、演算器群であるＤＮＡ９０２側から、汎用のＣＰＵであるＤＡＰ９０１に割り込み信号９０４が発生し、その割り込みを受けてＤＡＰ９０１がＤＮＡ９０２の面の切り替え信号９０５を出力し、面の切り替えが行われる。そして、面の切り替え後、ＤＡＰ９０１からＤＮＡ９０２に起動信号９０３が出力され、次の面に割り当てられた演算が開始される。また、外部メモリに書き込まれた後にも条件判断が実行される。
【０００８】
このように、ＤＮＡ９０２の面が切り替えられ、ＤＮＡ９０２が再構成される条件判断の実行タイミングは、一面分の演算が終了したデータパスの最後部と、外部メモリにデータが書き込まれた後に固定されており、ＤＮＡ９０２内部で処理が行われている演算途中では、面の切り替えのための条件判断を行うことができなかった。
【０００９】
ＤＲＰも同様に、２次元上に配置された演算器群による一連の処理が終了した後、状態制御管理部に対して切り替え条件信号が出力される。
また、コンフィギュレーション化可能なモジュールを動的に再構成するための手法も、イベントまたはイベントの組み合わせの到来に対する応答として、モジュールの再構成を行うものであり、切り替えタイミングは決められている。
【００１０】
以上のように、従来の再構成可能演算器では、アプリケーションの切り替えの条件判断を実行するタイミングは限られており、条件生成のタイミングに自由度がなかった。そして、このことがアプリケーション設計時の制約条件となり、所望のアプリケーションの実装を難しくする要因となっていた。
【００１１】
たとえば、多重ＦＯＲ文を実装しようとした場合、ＦＯＲ文を実現するためのカウンタを多重に持たせて実装することが望ましいが、演算器が出力する情報に基づいて次のステートに遷移することはできないため、従来の再構成可能演算装置では実装ができないか、かなり冗長な構成の実装を余儀なくされていた。
【００１２】
本発明はこのような点に鑑みてなされたものであり、演算器群を構成する任意の構成要素の出力によって、演算器群で実行されるアプリケーションの切り替え条件の判断を行うことが可能な再構成可能演算装置および半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では上記課題を解決するために、図１に示すような再構成可能演算装置が提供される。再構成可能演算装置は、演算を行う複数の演算器ユニット１ａ、１ｂ、１ｃ、１ｄから構成される演算器群が、図示しないシーケンサによって制御される。シーケンサは、演算器群の状態を決める設定情報を予め複数保持しており、演算器群による演算結果に応じて設定情報を切り替え、演算器群の状態を再構成する。
【００１４】
ここで、演算器ユニット１ａ、１ｂ、１ｃ、１ｄは、切り替え条件対応付け部２を介して切り替え条件コード出力部３に接続される。
切り替え条件対応付け部２は、演算器ユニット１ａ、１ｂ、１ｃ、１ｄの出力を演算器群の動作を切り替えるための切り替え条件とし、切り替え条件の種別を示す切り替え条件コードと対応付ける。たとえば、演算器ユニット１ａの出力は切り替え条件コードであるステート１に対応付けられている。切り替え条件コード出力部３は、接続された演算器ユニット１ａ、１ｂ、１ｃ、１ｄが動作するごとに、その出力に基づき、切り替え条件が成立するかどうかを判定し、成立した切り替え条件の演算器ユニットの出力に対応付けられた切り替え条件コードを出力する。
【００１５】
このような再構成可能演算装置によれば、演算器群の動作を切り替えるための切り替え条件として、演算器ユニット１ａ、１ｂ、１ｃ、１ｄの出力と切り替え条件コード、ステート１、ステート２、ステート３、ステート４が、切り替え条件対応付け部２によって対応付けられている。切り替え条件コード出力部３は、切り替え条件に設定された演算器ユニット１ａ、１ｂ、１ｃ、１ｄの出力に応じて、切り替え条件が成立したと判定した場合、対応付けられた切り替え条件コードを出力する。たとえば、演算器ユニット１ａの出力により、演算器ユニット１ａに対応付けられた切り替え条件が成立したと判定された場合、対応付けられたステート１を出力する。シーケンサは、切り替え条件コードを入力すると、これに応じた状態に演算器群の状態を切り替える。
【００１６】
また、上記課題を解決するために、複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサとを有し、前記シーケンサによって前記演算器群の動作状態を再構成する半導体装置において、前記演算器群を構成する任意の構成要素の出力を前記演算器群の動作を切り替えるための切り替え条件とし、切り替え条件コードに対応付ける切り替え条件対応付け部と、前記切り替え条件対応付け部によって前記切り替え条件に設定された前記構成要素の出力を入力し、前記切り替え条件が成立するかどうかを判定し、成立した前記切り替え条件に応じた前記切り替え条件コードを出力する切り替え条件コード出力部と、前記切り替え条件コード出力部の出力した前記切り替え条件コードに応じて前記演算器群の動作状態を切り替えるシーケンサと、を具備することを特徴とする半導体装置、が提供される。
【００１７】
このような構成の半導体装置では、切り替え条件対応付け部によって、演算器の出力と、この演算器の出力を切り替え条件とするための切り替え条件コードとが対応付けられ、切り替え条件コード出力部に接続されている。切り替え条件コード出力部は、切り替え条件に設定された演算器の出力を入力し、切り替え条件が成立したかどうかを判定する。そして、切り替え条件が成立したと判定された場合には、対応付けられた切り替え条件コードを出力する。シーケンサは、切り替え条件コードを入力すると、演算器群の状態を、この切り替え条件コードに応じた状態に切り替える。
【発明の効果】
【００１８】
本発明では、演算器群を構成する演算器ユニットの出力と、演算器群の動作状態の切り替え条件とするための切り替え条件コードとを対応付けておき、対応付けられた演算器が動作するごとに切り替え条件が成立したかどうかを判定し、成立した場合には、対応する切り替え条件コードを出力する。これにより、演算器が動作するごとに切り替えのための条件判定を行うことが可能となり、条件判定の自由度が増す。この結果、所望のアプリケーションの実装が容易になる。
【００１９】
また、複数の演算器で同時に条件判定を行うことができるため、一連の処理終了後に手続き的に条件判定を行っていた場合に比べ、処理時間を短くすることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。
【００２１】
再構成可能演算装置は、演算処理を実行する演算器群が、図示しないシーケンサによって制御される。演算器群を構成する演算器間の接続や、演算器で行う処理などの演算器群の動作を決める設定情報が予め複数設定されており、シーケンサは、所定の切り替え条件によって設定情報を切り替え、演算器群の動作を制御する。
【００２２】
演算器群は、それぞれの固有の演算処理を行う演算器ユニット１ａ、１ｂ、１ｃ、１ｄと、切り替え条件対応付け部２と、切り替え条件コード出力部３を有する。
演算器ユニット１ａ、１ｂ、１ｃ、１ｄは、数値演算、論理演算などの他、カウンタ、アドレス生成、などの処理を行い、切り替え条件対応付け部２を介して切り替え条件コード出力部３に接続し、演算終了ごとに生成された演算結果を切り替え条件コード出力部３に出力する。
【００２３】
切り替え条件対応付け部２は、演算器群の動作状態を切り替えるための切り替え条件となる演算器ユニット１ａの出力を切り替え条件コードに対応付ける。図では、切り替え条件コードをステート１、ステート２、ステート３およびステート４で表している。ステート１対応付け部２ａは、ステート１を演算器ユニット１ａの出力に対応付ける。すなわち、演算器ユニット１ａの出力に応じて、切り替え条件コード、ステート１が生成される。同様に、ステート２対応付け部２ｂが演算器ユニット１ｂの出力をステート２、ステート３対応付け部２ｃが演算器ユニット１ｃの出力をステート３、ステート４対応付け部２ｄが演算器ユニット１ｄの出力をステート４、に対応付ける。
【００２４】
切り替え条件コード出力部３は、切り替え条件対応付け部２によって接続された演算器ユニット１ａ、１ｂ、１ｃ、１ｄの出力を入力し、切り替え条件が成立したかどうかを判定する。たとえば、演算器ユニットの出力を所定の比較値と比較し、一致した場合に切り替え条件が成立したと判定する。そして、成立していると判定される場合は、演算器ユニットの出力に対応付けられた切り替え条件コードを出力する。出力される切り替え条件コードは、シーケンサによって遷移する次のステートを示している。
【００２５】
このような構成の再構成可能演算装置の動作について説明する。
切り替え条件対応付け部２では、演算器群の状態の切り替え条件として、演算器ユニット１ａ、１ｂ、１ｃ、１ｄの出力を切り替え条件コードに対応付ける。切り替え条件対応付け部２によって切り替え条件に設定された演算器ユニット１ａ、１ｂ、１ｃ、１ｄは、演算結果を切り替え条件コード出力部３へ出力する。切り替え条件コード出力部３では、演算器ユニット１ａ、１ｂ、１ｃ、１ｄの動作ごとに、生成された演算結果によって切り替え条件が成立したかどうかを判定する。そして、成立している場合には、対応付けられた切り替え条件コードを出力する。出力された切り替え条件コードは、シーケンサに入力される。シーケンサは、切り替え条件コードに基づいて、演算器群の状態を切り替える。
【００２６】
このように、演算器の動作ごとに、切り替え条件が判断されるので、アプリケーションの任意のタイミングで状態を切り替えることが可能となる。また、切り替え条件の判断は、複数の演算器で同時に実行することができる。このため、従来の再構成可能演算装置で一連の処理終了後の条件判定を手続き的に実施する場合に比べ、処理時間を短くすることができる。
【００２７】
なお、再構成可能演算装置を構築する際には、切り替え条件対応付け部２および切り替え条件コード出力部３は、演算器群の演算器ユニットもしくは、条件判定機構を設けた専用のユニットの組み合わせにより実装することができる。たとえば、所定の演算を行う演算器、その演算器の出力値を入力して比較値と比較し、判定結果をフラグとして出力する比較器、比較器の出力フラグに応じて所定の切り替え情報コードを出力する選択器などが組み合わされ、切り替え条件の判断処理を行う。また、演算器群の外部に専用の切り替え条件判定回路を設けてもよい。
【００２８】
以下、実施の形態の具体的な内容を図面を参照して詳細に説明する。
図２は、実施の形態の再構成可能演算装置の全体構成を示すブロック図である。
再構成可能演算装置は、複数の演算器が配列された演算器群１０と、演算器群１０の構成要素である演算器ユニットの動作を制御するシーケンサ２０を有する。
【００２９】
演算器群１０は、コンフィギュレーションメモリ１１、配線＆スイッチ１２、および構成要素である演算器ユニット１３ａ、１３ｂ、・・・、１３ｃ、データ蓄積装置１３ｄ、１３ｅ、・・・、カウンタ１３ｆなどを有する。
【００３０】
コンフィギュレーションメモリ１１は、演算器群を構成する演算器ユニットの実行内容や、演算器ユニット間の配線経路、演算に必要なデータなどの演算器群１０の動作を設定する設定情報が格納されている。１つの設定情報は、演算器群１０の１つの回路構成の「状態」に対応し、コンフィギュレーションメモリ１１には「状態」が複数設定されている。以下、このような「状態」をステートとする。そして、シーケンサ２０から指定されたステートで演算器群１０を動作させる。各演算器ユニットおよび配線＆スイッチ１２は、コンフィギュレーションメモリ１１の設定内容に従って動作する。配線＆スイッチ１２は、コンフィギュレーションメモリ１１の設定内容に従って、演算器ユニット間の接続と接続の切り替えを行う配線部とスイッチ部を備える。演算器ユニット１３ａ、１３ｂ、・・・、１３ｃは、配線＆スイッチ１２経由で入力する入力信号に所定の演算を施し、配線＆スイッチ１２経由で出力する。演算器ユニットには、演算処理の他、データ処理用のデータを蓄積するデータ蓄積装置（メモリやレジスタ）１３ｄ、１３ｅ、・・・や、カウンタ１３ｆがある。また、外部との間でデータやアドレスを交換するインタフェースやアドレス生成器などもある。なお、図では、コンフィギュレーションメモリ１１を演算器群１０に設けているが、コンフィギュレーションメモリ１１は、シーケンサ２０内、演算器群１０とシーケンサ２０の外側に設置してもよいし、これらに分割して設けることもできる。
【００３１】
シーケンサ２０は、状態制御部２１、状態テーブル２２および現状態アドレスレジスタ２３を有する。
状態制御部２１は、演算器群１０から入力する切り替え条件信号に応じて、次に遷移する演算器群１０のステートを設定する。なお、切り替え条件信号は、切り替え条件発生の通知と、切り替え条件コードから成る。状態テーブル２２は、コンフィギュレーションメモリ１１のアドレスと同じアドレスが割り付けられており、個々のエントリには次のエントリへの遷移の振る舞いを表すオペコードと、選択される可能性のあるエントリのアドレスが格納される。現状態アドレスレジスタ２３は、現在のステートを示すアドレス（状態テーブル２２とコンフィギュレーションメモリ１１）が格納される。
【００３２】
このような再構成可能演算装置では、演算器群１０は、シーケンサ２０によって指定されたコンフィギュレーションメモリ１１の指定アドレスの設定情報に基づくステートで動作を行っている。そして、演算器ユニットによって切り替え条件が成立したことが判定されると、切り替え条件コードとともにシーケンサ２０に切り替え条件信号を発生させる。
【００３３】
シーケンサ２０では、状態制御部２１が切り替え条件信号によって起動し、切り替え条件コードと状態テーブル２２のエントリとから次に遷移するステートを決定し、そのステートを指示する設定情報が登録されたアドレス（遷移先アドレスとする）を算出し、算出した遷移先アドレスを現状態アドレスレジスタ２３と状態テーブル２２およびコンフィギュレーションメモリ１１に設定する。これにより、コンフィギュレーションメモリ１１の指定アドレスが遷移先アドレスに変更され、演算器群１０のステートが遷移する。
【００３４】
次に、演算器群１０について詳細に説明する。まず、コンフィギュレーションメモリ１１について説明し、次に、配線＆スイッチ１２について説明する。
図３は、実施の形態のコンフィギュレーションメモリの構成の一例を示した図である。
【００３５】
コンフィギュレーションメモリ１１には、特定のステートにおける演算器群１０の動作を決定するコンフィギュレーションデータが、ステートごとに格納されている。図の例では、ステートごとにコンフィギュレーションデータ１１１、１１２、１１３、１１４、・・・・がエントリされている。この各ステートは、アドレスによって管理されている。
【００３６】
各エントリは、動作モード１１１ａ、リコンフィグ回路設計情報１１１ｂ、ステート１（１１１ｃ）、ステート２（１１１ｄ）、ステート３（１１１ｅ）、ステート４（１１１ｆ）の領域を有する。動作モード１１１ａは、このステートを識別する情報である。リコンフィグ回路設計情報１１１ｂは、この動作モードにおける再構成可能（リコンフィグ）回路の各演算器の動作や演算器間の接続関係を示した設計情報が格納される。そして、ステート１（１１１ｃ）、ステート２（１１１ｄ）、ステート３（１１１ｅ）、ステート４（１１１ｆ）には、この回路構成の次の状態としての候補が記述される。実際には、コンフィギュレーションメモリのアドレスが直接、または、その値から演算することによってアドレスが直接生成できるデータが記述されている。それぞれの次のステート候補は、ある切り替え条件と対応付けられており、その切り替え条件が成立すると、成立したステートへ遷移する処理が行われる。対応付けについては、後述する。
【００３７】
なお、上記の説明では、次候補として登録するステート数を４ステートとしたが、この数は任意に選択される。
次に、配線＆スイッチ１２の構成について説明する。図４は、実施の形態の配線＆スイッチの構成の一例を示した図である。
【００３８】
演算器群１０の構成要素の入力側には、ＦＦ（Flip-Flop）を設けるとともに、その前段にセレクタを設ける。図の例では、演算器ユニット１３ａの２つの入力側に、それぞれセレクタ、ＳＥＬ１２ａ、１２ｃ、およびＦＦ１２ｂ、１２ｄが設けられている。また、データ蓄積装置（メモリ）１３ｄの入力側にも同様にＳＥＬ１２ｅとＦＦ１２ｆが設けられている。そして、各セレクタの入力は、演算器やメモリの出力が接続される。
【００３９】
以上のコンフィギュレーションメモリと配線＆スイッチにより、演算器群の構成が決まる。
次に、演算器群１０の構成例を説明する。図５は、実施の形態の切り替え条件を判定する演算器群の構成の一例を示すブロック図である。なお、図５では、配線＆スイッチ１２のセレクタとＦＦは省略している。
【００４０】
図は、演算器ユニット１３１の演算結果に基づき切り替え条件が成立したかどうかを判定し、所定の切り替え条件コードを生成する構成例である。演算器群は、所定の演算を行う演算器ユニット１３１、入力値を比較値と比較する演算器ユニット１３２、所定の「切り替え条件コード」を出力する演算器ユニット１３３および入力信号を遅延して「切り替え条件発生」として出力する遅延器１３４で構成される。これらの演算器は、配線＆スイッチ１２によって、演算器ユニット１３１の演算結果の出力が条件判定を行う演算器ユニット１３２の入力に接続され、演算器ユニット１３２の条件判定結果の出力が「切り替え条件コード」を生成する演算器ユニット１３３と「切り替え条件発生」を生成する遅延器１３４の入力に接続される。
【００４１】
このような構成の演算器群では、演算器ユニット１３１で行われた演算結果が演算器ユニット１３２に出力される。演算器ユニット１３２では、入力した演算結果を予め保持する比較値と比較し、判定結果を条件判定結果として出力する。たとえば、演算結果がゼロになったら条件成立が出力されるというように構成することができる。そして、条件成立が入力されると、演算器ユニット１３３は、「切り替え条件コード」を出力する。遅延器１３４は、入力を遅延した後、出力する。すなわち、条件成立が入力されると、演算器ユニット１３３から「切り替え条件コード」が出力されるとともに、所定の遅延後、遅延器１３４より「切り替え条件発生」が出力される。こうして、切り替え条件の成立を示す切り替え条件信号がシーケンサ２０に出力される。なお、遅延器１３４による遅延時間は、遅延時間０を含め、任意に設定される。
【００４２】
上記の説明では、演算器ユニット１３１の演算結果の条件判定を演算器ユニット１３２で行うとしたが、条件判定を行う機構を演算器ユニット内に設けておくこともできる。また、このように条件判定を行う機構をすべての演算器ユニットに備えることもできるし、一部の演算器ユニットのみで条件判定出力を可能にすることもできる。
【００４３】
また、図の例では、演算器ユニット１３２の判定結果に応じて演算器ユニット１３３では固定の切り替え条件コードを生成するとしたが、切り替え条件コードを生成する演算器ユニット１３３に複数の演算器ユニットからの条件判定出力を接続し、どこから出力されたかで、切り替え条件コードを生成するようにしてもよい。このように構成することで、あるステートから次に遷移するステート候補がｎ個存在する場合に、最大ｎ個の条件判定に基づき、次のステート候補の中から真になるステートを決定することができる。
【００４４】
さらに、ここでは、切り替え条件判定の一例を示したが、このような切り替え条件判定回路を任意の数設けることができる。複数の切り替え条件判定回路を設けることによって、複数の条件判定を同時に行うことができる。
【００４５】
以下、演算器群による切り替え条件を判定する構成について、第１の実施の形態、第２の実施の形態、第３の実施の形態、第４の実施の形態および第５の実施の形態として、それぞれの特徴を順に説明する。なお、以下の説明では構成を回路イメージで表すが、実際には図４に示したように演算器ユニットと配線＆スイッチによって構成することができる。
【００４６】
＜第１の実施の形態＞
第１の実施の形態では、切り替え条件成立を判定する演算器ユニットと切り替え条件コードの関係をハードウェア的に固定する。
【００４７】
図６は、切り替え条件判定回路の第１の実施の形態の構成図である。第１の実施の形態の切り替え条件判定回路は、演算器ユニット３０１、３０２、３０３、３０４の出力が選択スイッチ４０１に接続する。
【００４８】
演算器ユニット３０１、３０２、３０３、３０４は、それぞれ所定の演算を行うとともに、演算結果と切り替え条件が成立するための比較値とを比較して一致するかどうか、すなわち切り替え条件が成立したかどうかをフラグ情報として出力する。演算器ユニット３０１、３０２、３０３、３０４は、これらの処理を一括して行う演算器ユニットにより構成されても、単体の演算を行う演算器と比較を行う比較器との組み合わせで構成されてもよい。
【００４９】
選択スイッチ４０１は、４つの入力端子を有し、それぞれの入力端子にステート値がハードウェアによって固定で配線されている。たとえば、第１の入力端子に接続される演算器ユニットにより生成されるステートは、ステート１に固定される。同様に、第２の入力端子はステート２、第３の入力端子はステート３、第４の入力端子はステート４に固定される。これにより、演算器ユニット３０１とステート１、演算器ユニット３０２とステート２、演算器ユニット３０３とステート３、演算器ユニット３０４とステート４とが対応付けられる。
【００５０】
このような切り替え条件判定回路では、たとえば、演算器ユニット３０１のフラグ情報がセットされると、選択スイッチ４０１によりステート１が出力される。同様に、それぞれ対応する演算器ユニットのフラグ情報がセットされると、対応付けられたステートが出力される。
【００５１】
なお、上記では、選択器を４入力から１つを選択する４ｔｏ１として説明したが、選択器の構成はこれに限定されない。入力側および出力側とも任意で、たとえば、５ｔｏ１や、７ｔｏ４などの選択器を用いることもできる。
【００５２】
また、同時に複数のステートを指示する条件が成立した場合には、ハードウェア的に優先順位を保有させる、もしくは、設定情報として登録するなどにより、優先順位の高いステートを選択して出力する。
【００５３】
＜第２の実施の形態＞
第１の実施の形態では、演算器の出力によって演算器群の判定を行うとしたが、第２の実施の形態では、切り替え条件にカウンタユニットの出力も用いる。図７は、切り替え条件判定回路の第２の実施の形態の構成図である。
【００５４】
第２の実施の形態の切り替え条件判定回路では、演算器ユニット３０６、３０８とともにカウンタユニット３０５、３０７の出力が選択スイッチ４０２に接続する。なお、選択スイッチ４０２は、第１の実施の形態の選択スイッチ４０１と同様に動作する。
【００５５】
ここで、カウンタユニット３０５、３０７の構成について説明する。図８は、第２の実施の形態のカウンタユニットの構成例を示すブロック図である。
カウンタユニットは、切り替え条件が成立する基準値（比較値）を保持する比較値レジスタ５０１と、たとえばクロック信号などの入力信号をカウントするカウンタ５０２と、カウンタ５０２がカウントしたカウント値と比較値レジスタ５０１の保持する比較値を比較して比較結果をフラグ情報として出力するＦＬＡＧ発生器（比較器）５０３より構成される。比較値レジスタ５０１は、演算器出力結果、あるいは、コンフィギュレーションデータとして設定されたデータを比較値として保持する。
【００５６】
このようなカウンタユニットでは、ＦＬＡＧ発生器（比較器）５０３は、カウンタ５０２のカウントする所定の入力信号のカウント値を比較値レジスタ５０１の保持する比較値と比較し、一致した場合には切り替え条件が発生したことを示すフラグ情報を出力する。
【００５７】
このような構成のカウンタユニット３０５、３０７からのフラグ情報、あるいは、演算器ユニット３０６、３０８のフラグ情報がセットされると、第１の実施の形態と同様に、選択スイッチ４０２は対応するステートを出力する。
【００５８】
なお、上記の説明では、切り替え条件として演算器ユニットとカウンタユニットとが混在しているが、切り替え条件をカウンタユニットのみで構成することもできる。また、演算器ユニットがアドレス生成器である場合、アドレス生成器の生成する所定のアドレスを切り替え条件とする切り替え条件回路を同様の構成で構築することができる。
【００５９】
＜第３の実施の形態＞
第１および第２の実施の形態では、演算器ユニットとステートとの関係をハードウェアによって固定するとしたが、第３の実施の形態では、対応関係をプログラマブルに設定可能にする。図９は、切り替え条件判定回路の第３の実施の形態の構成図である。
【００６０】
第３の実施の形態の切り替え条件判定回路は、第１の実施の形態の演算器ユニット３０１、３０２、３０３、３０４の出力が、プログラマブルスイッチ４０３に接続している。プログラマブルスイッチ４０３は、入力する演算器ユニットとステータスの対応付けを決定するプログラム情報が格納されるプログラム情報レジスタ４０４の情報をバス経由で入力し、その設定情報に従って、演算器ユニット３０１、３０２、３０３、３０４のフラグ情報に応じて対応付けられたステートを出力する。
【００６１】
図１０は、第３の実施の形態のプログラマブルスイッチの構成例を示した図である。
プログラマブルスイッチ４０３は、ＡＮＤ回路、選択器およびＯＲ回路で構成される。
ＡＮＤ回路は、それぞれの演算器ユニットからの出力とステートの論理積を算出し、演算器ごとに設けられた選択器に出力する。たとえば、演算器ユニットの出力ＦＬＡＧ１に関し、ＦＬＡＧ１とＳｔａｔｅ１の論理積を算出するＡＮＤ４０３１、ＦＬＡＧ１とＳｔａｔｅ２の論理積を算出するＡＮＤ４０３２、ＦＬＡＧ１とＳｔａｔｅ３の論理積を算出するＡＮＤ４０３３、ＦＬＡＧ１とＳｔａｔｅ４の論理積を算出するＡＮＤ４０３４を有する。同様に、ＦＬＡＧ２を出力する演算器ユニット、ＦＬＡＧ３を出力する演算器ユニットに関するＡＮＤ回路が設けられ、ＦＬＡＧ４を出力する演算器ユニットに関し、ＦＬＡＧ４とＳｔａｔｅ１の論理積を算出するＡＮＤ４０３５、ＦＬＡＧ４とＳｔａｔｅ２の論理積を算出するＡＮＤ４０３６、ＦＬＡＧ４とＳｔａｔｅ３の論理積を算出するＡＮＤ４０３７、ＦＬＡＧ４とＳｔａｔｅ４の論理積を算出するＡＮＤ４０３８を有する。
【００６２】
選択器４０３ａ、・・・、４０３ｂは、ＦＬＡＧ情報ごとに設けられたＡＮＤ回路の出力を入力し、プログラム情報レジスタ４０４ａに格納されたプログラム情報に基づいて、ＡＮＤ回路のいずれかの出力を選択出力する。たとえば、選択器４０３ａは、ＦＬＡＧ１について設けられ、ＦＬＡＧ１に関するＡＮＤ回路４０３１、４０３２、４０３３、４０３４の出力のうちプログラム情報によって設定されたものを選択出力する。プログラム情報レジスタ４０４ａには、回路構成を決めるためのコンフィギュレーションメモリと同様の情報が格納されている。同様に、選択器４０３ｂは、ＦＬＡＧ４に関するＡＮＤ回路４０３５、４０３６、４０３７、４０３８の出力のうちプログラム情報によって設定されたものを選択出力する。
【００６３】
ＯＲ回路４０３ｃは、選択器４０３ａ、・・・、４０３ｂの出力の論理和を算出し、次のステートとして出力する。
このように、プログラマブルスイッチを用いて演算器ユニットとステートを対応付けることにより、設計時の自由度が増す。
【００６４】
＜第４の実施の形態＞
第１、第２、第３の実施の形態では、切り替え条件として演算器やカウンタの出力を用いたが、第４の実施の形態では、メモリインタフェースによって所定のメモリもしくは所定のデータがリード／ライトされた場合を切り替え条件とする。図１１は、切り替え条件判定回路の第４の実施の形態の構成図である。
【００６５】
第４の実施の形態の切り替え条件判定回路は、メモリ部６０１に対するリード時の切り替え条件判定を行う比較器６０２、比較値レジスタ６０３および可変シフト器６０４と、メモリ部６０１に対するライト時の切り替え条件判定を行う比較器６０５、比較値レジスタ６０６および可変シフト器６０７を有する。
【００６６】
比較器６０２、６０５は、リード／ライト時のアドレスもしくはデータを入力し、比較値レジスタ６０３、６０６に保持される切り替え条件が成立する比較値と比較を行って、切り替え条件が成立したかどうかを判定する。
【００６７】
可変シフト器６０４、６０７は、比較器６０２、６０５の生成した切り替え条件が成立したかどうかを示すフラグ情報を入力し、所定の時間遅延して出力する。遅延時間は、可変に設定することができる。これにより、メモリへの書き込みが終了したタイミングなどのタイミングを見計らって、切り替えを行うことができる。
【００６８】
このような切り替え条件判定回路では、メモリ部６０１の所定のアドレス、もしくは、格納されるデータの最後を示す特殊コードなどのデータを比較値レジスタ６０３、６０６に設定しておくことにより、所定のアドレスへのリード／ライト、もしくは所定のデータのリード／ライト時に切り替え条件を成立させることができる。比較器６０２、６０５は、アドレスもしくはデータと比較値レジスタ６０３、６０６の保持する比較値を比較し、切り替え条件を判定する。切り替え条件成立のフラグ情報は、可変シフト器６０４、６０７によって、任意の時間遅延された後、出力される。
【００６９】
＜第５の実施の形態＞
第５の実施の形態では、多重ＦＯＲ文を実装する場合について説明する。図１２は、切り替え条件判定回路の第５の実施の形態の構成図である。
【００７０】
第５の実施の形態の切り替え条件判定回路は、複数のカウンタユニットがキャリー出力によってシリアルに結線される。図の例では、カウンタユニット７０１のキャリー出力がカウンタユニット７０２に接続され、カウンタユニット７０２のキャリー出力がカウンタユニット７０３に接続される構成となっている。それぞれのカウンタユニットは、図８のカウンタユニットと同様な構成で、計数されるカウント値が切り替え条件の成立する比較値と一致すると、フラグ情報を出力するとともに、キャリー出力を行う。また、カウンタユニット７０１、７０２、７０３は、それぞれステートと対応付けられており、図の例では、カウンタユニット７０１はステート２、カウンタユニット７０２はステート３、カウンタユニット７０３はステート４に対応付けられている。
【００７１】
このような構成の切り替え条件判定回路では、カウンタユニット７０１によるカウントが所定の比較値に到達すると、ステート２に対応するフラグ情報が出力されるとともに、キャリーがカウンタユニット７０２に出力され、カウンタユニット７０２がカウントを開始する。続いて、カウンタユニット７０２のカウント値が比較値に一致すると、ステート３が出力され、キャリーがカウンタユニット７０３に出力される。そして、カウンタユニット７０３がカウントを開始し、カウント値が比較値に一致すると、ステート４に対応するフラグ情報が出力される。これにより、カウンタユニット７０１、７０２、７０３を低ビットのカウンタで構成しても、多ビットのカウンタとして利用することができる。また、ステートごとに所定のアプリケーションを定義しておけば、それぞれの切り替え条件成立で処理を行う、多重ＦＯＲ文の１つのＦＯＲ文が実行できる。
【００７２】
たとえば、
ＦＯＲ（条件Ａ）｛
ステート３
ＦＯＲ  （条件Ｂ）｛
ステート２
ＦＯＲ  （条件Ｃ）｛
ステート１
｝
｝
｝
によって表される多重ＦＯＲ文を実装するため、最も内側のＦＯＲ文内での処理をステート１で表現し、その外側のＦＯＲ文内での処理をステート２で表現し、さらにその外側のＦＯＲ文内で処理をステート３に表現しておく。そして、カウンタユニット７０１において切り替え条件Ｃの成立の判定を行い、カウンタユニット７０２で切り替え条件Ｂ、カウンタユニット７０３で切り替え条件Ａの成立の判定を行うよう構成する。
【００７３】
これにより、条件Ｃが成立してカウンタユニット７０１のフラグ（ステート２）が出力された段階でステート１を終了し、その外側のＦＯＲ文にあるステート２の実行が開始される。同様に、条件Ｂが成立してカウンタユニット７０２のフラグ（ステート３）によりステート２が終了し、ステート３が開始される。このように、シリアルに結線したカウンタユニットを多重ＦＯＲ文内の１つのＦＯＲ文用カウンタとして用いることによって、従来では実装不可能であった多重ＦＯＲ分の実装を容易に実現することができる。
【００７４】
（付記１）  複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサを有する再構成可能演算装置において、
前記演算器群を構成する任意の構成要素の出力を前記演算器群の動作を切り替えるための切り替え条件とし、切り替え条件コードに対応付ける切り替え条件対応付け部と、
前記切り替え条件対応付け部によって前記切り替え条件に設定された前記構成要素の出力が出力されるごとに前記切り替え条件が成立するかどうかを判定し、成立した前記切り替え条件に応じた前記切り替え条件コードを出力する切り替え条件コード出力部と、
を具備することを特徴とする再構成可能演算装置。
【００７５】
（付記２）  前記切り替え条件対応付け部は、所定の前記構成要素の出力と、前記構成要素の出力に対応付けられる前記切り替え条件コードとの関係を予め配線によって対応付けることを特徴とする付記１記載の再構成可能演算装置。
【００７６】
（付記３）  前記切り替え条件対応付け部は、任意の前記構成要素の出力と、前記構成要素の出力に対応付けられる前記切り替え条件コードとの間の接続関係をプログラム情報としてプログラム情報格納部に格納することを特徴とする付記１記載の再構成可能演算装置。
【００７７】
（付記４）  前記切り替え条件コード出力部は、前記構成要素の出力と前記切り替え条件コードとの間の対応付けを複数管理し、入力される複数の前記構成要素の出力について前記切り替え条件が成立した場合に、予め決められた優先度に従っていずれかの前記切り替え条件コードを選択することを特徴とする付記１記載の再構成可能演算装置。
【００７８】
（付記５）  前記演算器群は、前記構成要素の動作および前記構成要素間の接続関係を記述した設定情報に基づいて動作を行い、前記切り替え条件対応付け部および前記切り替え条件コード出力部は、前記設定情報に前記演算器群を構成する前記構成要素の組み合わせを登録して構築されることを特徴とする付記１記載の再構成可能演算装置。
【００７９】
（付記６）  前記切り替え条件に対応付けられる前記構成要素には、所定の演算を行う演算器と、前記切り替え条件が成立する比較値を記憶する比較値記憶部と、前記演算器の演算結果と前記比較値記憶部に格納された前記比較値を比較して比較結果を出力する比較器と、を有する演算器ユニットが含まれることを特徴とする付記１記載の再構成可能演算装置。
【００８０】
（付記７）  前記切り替え条件に対応付けられる前記構成要素には、所定の数をカウントするカウンタと、前記切り替え条件が成立する比較カウント値を記憶する比較値記憶部と、前記カウンタのカウントする現在のカウント値と前記比較値記憶部に格納された比較カウンタ値とを比較して比較結果を出力する比較器と、を有するカウンタユニットが含まれることを特徴とする付記１記載の再構成可能演算装置。
【００８１】
（付記８）  前記カウンタユニットのキャリー出力によって複数の前記カウンタユニットをシリアルに結線するとともに、前記切り替え条件対応付け部によってシリアルに結線された前記カウンタユニットそれぞれに前記切り替え条件コードを対応付けて多重ＦＯＲ文を構成することを特徴とする付記７記載の再構成可能演算装置。
【００８２】
（付記９）  前記切り替え条件に対応付けられる前記構成要素には、所定のデータが格納されるメモリ部と、前記切り替え条件が成立する前記メモリ部の比較アドレスまたは比較データを格納する比較値記憶部と、前記メモリ部への書き込みまたは読み出し時の指定アドレスあるいは書き込みまたは読み出しデータを前記比較値記憶部の前記比較アドレスあるいは前記比較データと比較して比較結果を出力する比較器と、を有するメモリユニットが含まれることを特徴とする付記１記載の再構成可能演算装置。
【００８３】
（付記１０）  前記メモリユニットは、さらに、前記比較器の出力を入力して任意の時間遅延させた後出力する遅延器を有することを特徴とする付記９記載の再構成可能演算装置。
【００８４】
（付記１１）  複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサとを有し、前記シーケンサによって前記演算器群の動作状態を再構成する半導体装置において、
前記演算器群を構成する任意の構成要素の出力を前記演算器群の動作を切り替えるための切り替え条件とし、切り替え条件コードに対応付ける切り替え条件対応付け部と、
前記切り替え条件対応付け部によって前記切り替え条件に設定された前記構成要素の出力が出力されるごとに前記切り替え条件が成立するかどうかを判定し、成立した前記切り替え条件に応じた前記切り替え条件コードを出力する切り替え条件コード出力部と、
前記切り替え条件コード出力部の出力した前記切り替え条件コードに応じて前記演算器群の動作状態を切り替えるシーケンサと、
を具備することを特徴とする半導体装置。
【図面の簡単な説明】
【００８５】
【図１】実施の形態に適用される発明の概念図である。
【図２】実施の形態の再構成可能演算装置の全体構成を示すブロック図である。
【図３】実施の形態のコンフィギュレーションメモリの構成の一例を示した図である。
【図４】実施の形態の配線＆スイッチの構成の一例を示した図である。
【図５】実施の形態の切り替え条件を判定する演算器群の構成の一例を示すブロック図である。
【図６】切り替え条件判定回路の第１の実施の形態の構成図である。
【図７】切り替え条件判定回路の第２の実施の形態の構成図である。
【図８】第２の実施の形態のカウンタユニットの構成例を示すブロック図である。
【図９】切り替え条件判定回路の第３の実施の形態の構成図である。
【図１０】第３の実施の形態のプログラマブルスイッチの構成例を示した図である。
【図１１】切り替え条件判定回路の第４の実施の形態の構成図である。
【図１２】切り替え条件判定回路の第５の実施の形態の構成図である。
【図１３】従来のＤＡＰ／ＤＮＡにおける演算器群の内容切り替え方式を示した模式図である。
【符号の説明】
【００８６】
１ａ、１ｂ、１ｃ、１ｄ  演算器ユニット
２  切り替え条件対応付け部
２ａ  ステート１対応付け部
２ｂ  ステート２対応付け部
２ｃ  ステート３対応付け部
２ｄ  ステート４対応付け部
３  切り替え条件コード出力部
【図１】
2006011825.tif 000003
【図２】
2006011825.tif 000004
【図３】
2006011825.tif 000005
【図４】
2006011825.tif 000006
【図５】
2006011825.tif 000007
【図６】
2006011825.tif 000008
【図７】
2006011825.tif 000009
【図８】
2006011825.tif 000010
【図９】
2006011825.tif 000011
【図１０】
2006011825.tif 000012
【図１１】
2006011825.tif 000013
【図１２】
2006011825.tif 000014
【図１３】
2006011825.tif 000015