(57)【特許請求の範囲】
【請求項１】
回路の構成を書き換え可能な再構成論理回路部と、データフローグラフの演算処理を再構成可能な回路の基本素子を用いて実現するための回路データを格納する第１の記憶装置と、前記再構成論理回路部が生成した実行中のデータを保持する第２の記憶装置と、前記各装置を制御する制御装置とを備え、
前記制御装置は、
プログラムをデータフローグラフに変換するフローグラフ変換手段と、
演算器の数と種類に基づき前記データフローグラフ上の演算の実行時間範囲を決める実行時間範囲決定手段と、
前記実行時間範囲間のデータの保持に必要なレジスタを割り付けるレジスタ割り付け手段と、
前記実行時間範囲に分割されたデータフローグラフの演算処理を再構成可能な回路の基本素子を用いて実現するための回路データを生成する回路データ生成手段と、
前記回路データを前記第１の記憶装置から前記再構成論理回路部にロードして構成を実現させる第１の手段と、
前記第１の手段によって構成された再構成論理回路を実行する第２の手段と、  再構成された前記再構成論理回路部が生成した実行中のデータを、前記第２の記憶装置に格納させる第３の手段とを有し、
前記再構成論理回路部が、複数個の再構成論理回路と、前記再構成論理回路に接続された回路データ割り付け装置及び回路データ消去装置とからなることを特徴とする再構成可能な回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回路構成の変更が可能な論理回路を搭載した再構成可能な回路装置と、その回路データを設計する再構成可能な回路の設計装置に関する。
【０００２】
【従来の技術】
ノイマン型の固定された構成の計算機では、プログラムを書き換えることで異なる問題を解決できるが、異なる問題を解くに当たり、ハードウェアを再構成する方法が従来より提案されている。このハードウェアを再構成する方法は、近年、デバイス自体に再構成機能を持つＦＰＧＡが登場するに至って、その研究が盛んに行われるようになってきた。
【０００３】
現在では、ＦＰＧＡの再構成可能な素子の粒度は、フリップフロップやゲートの単位であり、これより上位の機能レベルの回路で再構成はできていないが、加算器やラッチを単位とした再構成可能なデバイスも研究されている。
【０００４】
図８は、従来の再構成可能な論理回路の設計手法を示すフローチャートである。
【０００５】
この設計手法は、ＦＰＧＡ回路の合成を考慮して成されたものであり、仕様記述（ステップＳ１０１）から高位合成を行って（ステップＳ１０２）レジスタ転送レベルのハードウェアモデルを生成し（ステップＳ１０３）、またそのモデルから論理合成を行い（ステップＳ１０４）、ＦＰＧＡの基本セルから成る回路（構成１の論理回路）を合成していた（ステップＳ１０５）。
【０００６】
また、構成を変える部分について、予め上記図８に示す同一のフローを用いて構成２の論理回路、構成３の論理回路、…を合成している。
【０００７】
上記の高位合成技術は、データフローグラフ（ＤＦＧ）から論理回路を合成する方法である。この技術は、データフローグラフを演算器数の制約の基で実行ステップ分けし、ステップ間に変数の値を保持するレジスタを挿入する。また演算器の割り付けはライブラリにある演算器をＤＦＧの演算子に対応づける。実行ステップ毎に演算を実行させるためにはシーケンサが必要であり、高位合成はこのシーケンサとこれが制御するデータパスの両方を合成する。また、データパス上の演算器の論理回路（ネットリスト）は、高位合成後の論理合成で合成される。そして、ＦＰＧＡの基本セルの選択とセル間の接続を決定する配置配線を行い、これらの情報はコンフィグレーション情報（回路データ）としてメモリ上に保存しておく。
【０００８】
このようにして生成された回路データがＦＰＧＡへロードされて、ＦＰＧＡ上に所望の論理回路が構成される。
【０００９】
かかる再構成可能な論理回路を利用して、特定のアルゴリズム（プログラム）の処理時に、回路の一部を当該アルゴリズムの処理に最適になるようにリアルタイムもしくは短時間に再構成することによって、この特定のアルゴリズム（プログラム）の処理速度を上げることができる。
【００１０】
【発明が解決しようとする課題】
しかしながら、従来の再構成可能な論理回路の設計手法では、ハードウェア記述で回路を設計し、論理合成してから回路構成可変の回路データに変換しているため、設計に多くの時間を要する。
【００１１】
さらに、従来の高位合成は、シーケンサとデータパスを混在して回路を合成していたので、入力する回路の一部（所望の部分回路）を再構成することは不可能であった。そのため、人が合成後の回路から再構成する部分回路を切り出す、もしくは再構成する部分回路だけを入力して高位合成することになり、１回の処理で再構成可能な論理回路を合成することができなかった。
【００１２】
本発明は、上述の如き従来の問題点を解決するためになされたもので、その目的は、再構成可能な論理回路の設計時間を大幅に短縮することができる再構成可能な回路の設計装置を提供することである。またその他の目的は、１回の処理で再構成可能な論理回路を合成することができる再構成可能な回路の設計装置を提供することである。さらに、その他の目的は、低価格で高速なデータフローマシンを実現する再構成可能な回路装置を提供することである。
【００１３】
【課題を解決するための手段】
上記目的を達成するために、第１の発明である再構成可能な回路装置の特徴は、回路の構成を書き換え可能な再構成論理回路部と、データフローグラフの演算処理を再構成可能な回路の基本素子を用いて実現するための回路データを格納する第１の記憶装置と、前記再構成論理回路部が生成した実行中のデータを保持する第２の記憶装置と、前記各装置を制御する制御装置とを備え、前記制御装置は、プログラムをデータフローグラフに変換するフローグラフ変換手段と、演算器の数と種類に基づき前記データフローグラフ上の演算の実行時間範囲を決める実行時間範囲決定手段と、前記実行時間範囲間のデータの保持に必要なレジスタを割り付けるレジスタ割り付け手段と、前記実行時間範囲に分割されたデータフローグラフの演算処理を再構成可能な回路の基本素子を用いて実現するための回路データを生成する回路データ生成手段と、前記回路データを前記第１の記憶装置から前記再構成論理回路部にロードして構成を実現させる第１の手段と、前記第１の手段によって構成された再構成論理回路を実行する第２の手段と、  再構成された前記再構成論理回路部が生成した実行中のデータを、前記第２の記憶装置に格納させる第３の手段とを有し、前記再構成論理回路部が、複数個の再構成論理回路と、前記再構成論理回路に接続された回路データ割り付け装置及び回路データ消去装置とからなることにある。
【００２１】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。図１は、本発明の実施形態に係る再構成可能な回路の設計装置の概念図である。
【００２２】
設計装置１がプログラム記述ＰＷを取り込み、構文木を生成し、さらに変数と演算や、条件文、ループ文を解析してコントロールデータフローグラフ（ＣＤＦＧ）を生成する。またＣＤＦＧを基に演算実行のスケジュールを行い、基本素子を割り付ける。さらにスケジュール後のステート間の変数に対してはレジスタをセットする。
【００２３】
本発明では、従来の高位合成が行っていなかった実行ステップ毎の基本素子の割り付け情報（ステート分割されたデータフロー、つまりサブデータフローＷ１）や、生成したデータレジスタの情報Ｗ２を提供（出力）するようにしている。これらの情報を容易に提供することで、データフローからなる回路は、レジスタ間の回路と、レジスタと、レジスタ間の回路をいつ実行するかを制御する回路（シーケンサ）とを個別に扱うことができるようになる。
【００２４】
ここで、データレジスタとは、実行ステップ間において信号の値を保持するレジスタのことである。データレジスタの情報とは、例えば実行ステップＳｉから実行ステップＳｊの間に存在するレジスタの情報のことであり、どの実行ステップからどの実行ステップの間に存在する何のデータを保持するレジスタであるかを示す。また、レジスタがもつビット幅の情報も存在する。
【００２５】
上記設計装置の処理を図２のフローチャートを用いて詳細に説明する。
【００２６】
アルゴリズムを記述した図３に示すようなプログラム（Ｃ言語）を入力し（ステップＳ１１）、それを解析して図４に示すような構文木を作成する（ステップＳ１２）。
【００２７】
演算器の個数は再構成論理回路（回路構成の変更が可能な論理回路）で実現可能なゲート数を基にセットし、これから図５に示すようなコントロールデータフローグラフを生成し（ステップＳ１３）、さらに、データ線のビット幅などリソースの制約を確定し（ステップＳ１４）、その後、どの実行ステップ（実行時間範囲）で演算を実行するかを決めるスケジューリングを行う（ステップＳ１５）。
【００２８】
スケジュールされた演算子からなるデータフローグラフ（ＤＦＧ）は、再構成可能なデータとしてそのステップ数だけ生成される（ステップＳ１６）。ここでは図６に示すようにステップ数２のＤＦＧ（サブデータフロー）が生成されている。
【００２９】
また、実行ステップ間の回路データの保持に必要なレジスタ（再構成論理回路のレジスタ）を割り付ける。なお、条件信号は、データフローから生成される場合もあるため、条件信号による制御回路は、データフローと混在して生成する。さらに再構成論理回路の基本素子を用いて演算処理を実現するための回路データを生成する（ステップＳ１７）。基本素子のレベルは、加算器を基にしたもの、もしくは通常の論理演算を構成する回路であり、再構成論理回路の基本回路から構成されている。
【００３０】
次に、本発明で生成した回路データと再構成可能な回路装置の関係を説明する。
【００３１】
図７（ａ），（ｂ）は、本実施形態の再構成可能な回路装置の構成図であり、同図（ａ）は回路装置の全体図、同図（ｂ）は再構成論理回路の詳細図である。
【００３２】
この再構成可能な回路装置は、図７（ａ）に示すように、回路構成を書き換え可能な再構成論理回路を有する再構成論理回路部１１と、上述した設計装置で生成した回路データを格納する記憶装置１２、前記再構成論理回路が生成した実行中のデータを保存する記憶装置１３と、これら各装置を制御する制御回路１４とから構成されている。
【００３３】
上記再構成論理回路部１１は、複数個の再構成論理回路１１ａ、回路データ割り付け装置１１ｂ及び回路データ消去装置１１ｃからなり、再構成論理回路１１ａが回路データ割り付け装置１１ｂ及び回路データ消去装置１１ｃに接続されている。この接続は、１対１で直接つながれてもよいし、また各ブロックを介在して接続されていてもよい。さらに、回路データ割り付け装置１１ｂと回路データ消去装置１１ｃは１つのブロックで構成されていてもよい。
【００３４】
また、再構成論理回路１１ａ、回路データ割り付け装置１１ｂ及び回路データ消去装置１１ｃは、ＳＲＡＭ方式のＦＰＧＡで実現される。このＳＲＡＭに結線情報をロードすることにより、セル及びセル間の内部結線を切り替え、所望の回路を構成する。そして、ＳＲＡＭのデータを消去することにより回路データを消去する。
【００３５】
回路データを格納する記憶装置１２は、例えばＲＡＭで構成され、上記設計装置によって生成されたサブデータフローを表す演算の種類とその個数と演算間の結線情報からなる情報が複数格納される。さらに、スケジュールされたＤＦＧの実行順番を表すデータもタグとして格納されている。
【００３６】
全体制御回路１４は、実行ステップの実行順番に基づき回路データを記憶装置１２から取り込み、再構成論理回路部１１を構成するＦＰＧＡのＳＲＡＭにロードする。このとき、サブデータフローからなる回路データは、ＦＰＧＡで構成可能な数（ステップ）だけロードされる。
【００３７】
その後、構成された回路に入力データを印加して演算を実行し、その結果をレジスタに保存する。次のステップで実行する回路データが再構成論理回路部１１内にない場合は、回路データ消去装置１１ｃによって、一旦、既存の回路データを消去し、上記と同様に回路データをロードする。このとき、演算結果はＲＡＭからなる記憶装置１３に待避しておく。回路が構成された後は再度実行を繰り返す。
【００３８】
このように、▲１▼回路データによる回路の構成、▲２▼データフローに基づいた実行、▲３▼回路データの消去、▲４▼回路データによる再構成、▲５▼データフローに基づいた実行、からなるステップを順次実行する。
【００３９】
また、図７（ｂ）に示したように再構成論理回路の領域を複数持たせることにより、回路の構成とデータフローの実行とを並行して行うこともできる。さらに、記憶装置１２に回路データをＦＰＧＡのＳＲＡＭのデータ形式で格納しておけば、記憶装置１２から再構成せずにＳＲＡＭにロードすることができる。
【００４０】
このように、本実施形態では、高位合成の技術を用いてデータフローとそれをステップ分けしたサブデータフローを生成し、再構成可能な回路装置にサブデータフローを割付け順番に実行させる。そして、シーケンサなどのマイクロプログラム方式のプロセッサで再構成論理回路の割り当てや実行を制御する。
【００４１】
従来のデータフローマシンは、データフローをそのままハード化していたため（つまり、全てのフローグラフの機能を複数のプロセッサに割り付けていた）、回路規模が大きくなりコスト高になっていたが、本実施形態のように再構成可能な回路装置を用いることで全てを一括して回路に割り付ける必要がなくなり、部分的に再構成論理回路に割り付ければよくなる。
【００４２】
すなわち、本発明では、従来の高位合成が行っていなかった、実行ステップ毎のコンポーネントの割り付け情報や、レジスタの情報を提供する。これらの情報の提供により、データフローグラフからなる回路は、レジスタ間の回路と、レジスタと、レジスタ間の回路をいつ実行するかを制御する回路（シーケンサ）とを個別に扱うことができるので、入力する回路の所望の一部分を再構成することが可能になる。
【００４３】
その結果、固定回路の場合は、各データフローの処理を同一リソース（演算器やレジスタなど）で実現するための制御回路（リソースをシェアして使用するためにデータ入力を切り換えるマルチプレクサなど）が必要であったのが不要となり、制御回路自体も簡単になる。さらには、複雑な制御が不要となり、データを順番に処理（演算）すればよくなり、複雑な制御回路が不要な分だけ固定回路よりも動作速度が高速になる。
【００４４】
これにより、低価格で高速なデータフローマシンを実現することが可能になる。
【００４５】
また、ハードウェア記述で回路を設計して論理合成してから回路構成可変の回路データに変換する従来の設計手法と異なり、プログラムを直接的に回路データに変換するので、再構成論理回路の設計時間を大幅に短縮することが可能になる。
【００４６】
なお、再構成論理回路部１１について、本実施形態ではＦＰＧＡを引用して説明したが、この方式に限定されるものではない。また、前記全体制御回路１４は、本発明のデータフローグラフからなる回路データを生成する機能として、図２のフローチャートを実現する設計装置１の機能を備えるものであってもよい。
【００４７】
【発明の効果】
以上詳細に説明したように、第１及び第２の発明である再構成可能な回路の設計装置によれば、プログラムを直接回路データに変換することができ、再構成論理回路の設計時間を大幅に短縮することが可能になる。さらに、レジスタ間の回路と、レジスタと、レジスタ間の回路をいつ実行するかを制御する回路（シーケンサ）を個別に扱うことができるので、入力する回路の一部を再構成することができる。これにより、１回の処理で再構成可能な論理回路を合成することが可能になる。
【００４８】
第３の発明である再構成可能な回路装置によれば、回路構成を行いながら、構成の確定した回路を実行することができ、装置の高速化が可能になる。
【００４９】
第４の発明である再構成可能な回路装置によれば、上記第第１及び第３の発明と同等の効果を奏し、これにより、低価格で高速なデータフローマシンを実現することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る再構成可能な回路の設計装置の概念図である。
【図２】実施形態の設計装置の処理を示すフローチャートである。
【図３】実施形態で使用するプログラム（Ｃ言語）の一例を示す図である。
【図４】実施形態で作成する構文木の一例を示す図である。
【図５】実施形態で作成するコントロールデータフローグラフの一例を示す図である。
【図６】実施形態のスケジュール後のＤＦＧの一例を示す図である。
【図７】実施形態の再構成可能な回路装置の構成図である。
【図８】従来の再構成可能な論理回路の設計方法を示すフローチャートである。
【符号の説明】
１  設計装置
１１  再構成論理回路部
１１ａ  再構成論理回路
１１ｂ  回路データ割り付け装置
１１ｃ  回路データ消去装置
１２  記憶装置
１３  記憶装置
１４  制御回路
【図１】
0003850531.tif 000002
【図２】
0003850531.tif 000003
【図３】
0003850531.tif 000004
【図４】
0003850531.tif 000005
【図５】
0003850531.tif 000006
【図６】
0003850531.tif 000007
【図７】
0003850531.tif 000008
【図８】
0003850531.tif 000009