説明

集積回路及びリコンフィギュラブル回路の入力データ制御方法

【課題】入力データをリコンフィギュラブル回路で確実に処理できるようにする。
【解決手段】本集積回路は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路3と、入力データ制御部4とを備える。そして、入力データ制御部4によって、リコンフィギュラブル回路3の構成に応じてデータが入力されるように入力データが制御される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リコンフィギュラブル回路を備える集積回路及びリコンフィギュラブル回路の入力データ制御方法に関する。
【背景技術】
【0002】
従来、リコンフィギュラブル回路の回路構成を、回路が動作状態において動的に変更することで機能を切り替えることができるダイナミックリコンフィギュラブルLSIが提供されている。
リコンフィギュラブルLSIは、複数の演算器をアレイ状に配列し、これらを縦方向及び横方向に延びるバスで接続したリコンフィギュラブル回路を備える。そして、このリコンフィギュラブル回路の回路構成(演算器間のネットワーク)を短い時間(例えば1クロック〜数クロックの時間)で切り替えることができるようになっている。
【0003】
例えば、リコンフィギュラブルLSIでは、リコンフィギュラブル回路の回路構成を切り替えることによって、あるときは画像処理を行ない、またあるときは音声・通信系の処理を行なうというようなことが可能である。
このようなリコンフィギュラブルLSIでは、機能ごとの専用のハードウェアを設けることなく、一つのハードウェアで多くの機能を実現することができる。つまり、リコンフィギュラブルLSIでは、LSIを作製する時点で決められてしまう有限のリソースを効率良く利用することで、多くのアプリケーションに対応した最適な回路を実現することが可能となる。
【0004】
なお、先行技術調査を行なった結果、以下の特許文献1,2が得られた。
【特許文献1】特開2006−18539号公報
【特許文献2】国際公開第2002/095946号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、リコンフィギュラブル回路のリソースが十分足りているような単純な処理を行なう場合は、リコンフィギュラブル回路を所定の回路構成にして処理を行なえば良い。
しかしながら、リコンフィギュラブル回路のリソースが不足してしまうような複雑な処理を行なう場合(例えば入力されるデータ量が多く、スループットが高い場合)、リコンフィギュラブル回路の回路構成をダイナミックに変更する必要がある。この場合、データの入力タイミングを制御しないと、リコンフィギュラブル回路で処理できないおそれがある。
【0006】
一方、処理内容によっては、リコンフィギュラブル回路を空間的に分割された複数の回路からなる回路構成とし、それぞれの回路によってパラレルに処理を行なえる場合もある。この場合、入力データの構成及び入力タイミングを制御しないと、リコンフィギュラブル回路で処理できないおそれがある。
このような場合、例えばマッピングを工夫するなどして対応することになるが、より効率良くリソースを利用し、より容易にマッピングを行なえるようにすることが望まれている。
【0007】
ところで、最近、ASIC(Application Specific Integrated Circuit)の中の一部又は複数の機能を、リコンフィギュラブル技術を使って実現しようという動きが出てきている。
一般に、ASICには、以下の特徴がある。
(1)特定の用途向けにハードウェアを構成するため、チップサイズが小さい。
(2)開発費が高いため、大量生産品でないと、開発コストの回収が難しい。
(3)開発期間が長く、また製品寿命も長いため、開発途中又は製品出荷後に機能変更等を余儀なくされる場合のリスクが大きい。
【0008】
これに対し、リコンフィギュラブルLSIは、ハードウェアに近いパフォーマンスを持ちながら、製品出荷後も機能を変更できるという特徴がある。
そこで、最近、ASICが不得意とする領域をリコンフィギュラブルLSIによってカバーすること、即ち、ASICの中にリコンフィギュラブル・コア(リコンフィギュラブル回路)を入れることが検討されている。
【0009】
例えば、図13(A)に示すように、専用ハードウェアIP(Intellectual Property),ランダムロジック,RISC(Reduced Instruction Set Computer)プロセッサなどを備える従来のASICの一部、即ち、図13(A)中、実線で囲まれている領域Aの専用ハードウェアIP及びランダムロジックを、図13(B)に示すように、リコンフィギュラブル・コアで実現することが検討されている。なお、これらの図はLSIの回路配置を表しており、専用ハードウェアIP,ランダムロジック,RISCの周囲には、外部回路とのインターフェイスのためのIO領域が設けられている。
【0010】
このように、ASICの中にリコンフィギュラブル・コアを入れ、リコンフィギュラブル・コアで実現する機能(リコンフィギュラブル・コアの回路構成)を切り替えるようにすることで、製品出荷後も機能変更等が可能となる。
しかしながら、ASICの中にリコンフィギュラブル・コアを入れる場合、リコンフィギュラブル・コアへ入力される信号(データ)は複数の場所(ブロック)から入力されてくることになる[図13(C)参照]。この場合、どのブロックから供給されるかによって、入力データのスループットが変わってしまう場合がある。このため、それぞれのブロックから供給される入力データに対応することが非常に難しく、統一された入力データ処理のメカニズムが必要になる。
【0011】
本発明は、このような課題に鑑み創案されたもので、入力データをリコンフィギュラブル回路で確実に処理できるようにした、集積回路及びリコンフィギュラブル回路の入力データ制御方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
このため、本発明の集積回路は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路と、入力データ制御部とを備える。そして、入力データ制御部によって、リコンフィギュラブル回路の構成に応じてデータが入力されるように入力データが制御される。
本発明のリコンフィギュラブル回路の入力データ制御方法では、まず、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンが取り出される。そして、このデータ入力パターンに基づいてリコンフィギュラブル回路に入力データが入力される。
【発明の効果】
【0013】
したがって、本発明の集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、入力データをリコンフィギュラブル回路で確実に処理できるという利点がある。
【発明を実施するための最良の形態】
【0014】
以下、図面により、本発明の実施の形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について説明する。
[第1実施形態]
まず、本発明の第1実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について、図1〜図8を参照しながら説明する。
【0015】
本実施形態にかかる集積回路は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路を備え、アプリケーションプログラムに対応した回路を構成でき、その回路構成をダイナミックに(例えば1クロック〜数クロックの時間で)切り替えることができるダイナミックリコンフィギュラブルLSI(動的再構成可能型半導体集積回路)である。例えば、ASICの中にリコンフィギュラブル・コア(リコンフィギュラブル回路)を入れたものとして構成される。
【0016】
特に、本集積回路は、リコンフィギュラブル・コアによって処理できるように、リコンフィギュラブル・コアの前段で、リコンフィギュラブル・コアの回路構成に応じて、リコンフィギュラブル・コアに供給される入力データ(入力データの構成及び/又は入力タイミング)を制御できるようになっている。
ここで、リコンフィギュラブル・コアのリソースが十分足りているような単純な処理を行なう場合は、リコンフィギュラブル・コアを所定の回路構成にして処理(処理1;例えば1データに対して1クロックで処理)を行えば良い。
【0017】
これに対し、リコンフィギュラブル・コアのリソースが不足してしまうような複雑な処理を行なう場合は、リコンフィギュラブル・コアの回路構成を切り替えて処理(処理2;例えば1データに対して2〜3クロックで処理;時分割処理)を行なう必要がある。
また、リコンフィギュラブル・コアを空間的に分割された複数の回路からなる回路構成とし、それぞれの回路によってパラレルに処理(処理3;例えば2データに対して1クロックで処理)を行なうことができる場合もある。
【0018】
リコンフィギュラブル・コアによってそれぞれの処理を行なうためには、処理の内容(処理の複雑度)に応じて、リコンフィギュラブル・コアに入力されるデータ及び/又は入力タイミングを制御することが必要になる。
例えば、上記処理1を行なう場合は、クロック1(リコンフィギュラブル・コアの動作クロック)に同期してデータを連続的に入力すれば良い。このため、1クロックにつき1データが入力されるように、入力データを図2(A)の波形1に示すようにすれば良い。
【0019】
上記処理2を行なう場合は、リソース(回路構成)を切り替える時間に対応する時間間隔(例えば1〜数クロック)をあけてクロック1に同期してデータを入力すれば良い。このため、例えば2クロックにつき1データが入力されるように、入力データを図2(B)の波形2に示すようにすれば良い。なお、図2(B)中、網掛けの部分は無効データである。
【0020】
上記処理3を行なう場合は、リコンフィギュラブル・コアの複数(ここでは2つ)のポートのそれぞれにクロック1に同期してデータを連続的に入力すれば良い。このため、例えばリコンフィギュラブル・コアの2つのポートのそれぞれに1クロックにつき1データが入力されるように、入力データを図2(C)の波形3に示すようにすれば良い。
このため、本ダイナミックリコンフィギュラブルLSIは、例えば図1に示すように、処理内容(ここでは処理1〜3)に応じて入力データ(ここでは入力1〜3)を切り替える入力データ選択部(入力信号選択部;例えばセレクタ)1と、入力データを一時的に保持するバッファメモリ(バッファ)2と、リコンフィギュラブル・コア(リコンフィギュラブル回路)3と、リコンフィギュラブル・コア3に入力されるデータ(データの構成及び/又は入力タイミング)を制御するための入力データ制御部(入力データ制御回路)4とを備える。
【0021】
なお、ここでは、処理1に必要な入力データを入力1とし、処理2に必要な入力データを入力2とし、処理3に必要な入力データを入力3としている。入力データはASICの中の一のブロックから全て供給される場合もあるし、複数のブロックから供給される場合もある。
そして、入力データ制御部4が、バッファメモリ2に保持されている入力データを取り出し、この入力データをリコンフィギュラブル・コア3の回路構成に応じた所望の波形にして(即ち、リコンフィギュラブル・コアが処理できる入力データ形式に変換して)、リコンフィギュラブル・コア3に供給(入力)するようになっている。
【0022】
ここでは、バッファメモリ2は、例えば図1に示すように、表バッファメモリと裏バッファメモリとからなる2面構成になっており、リコンフィギュラブル・コア3の外部から入力されるデータは、一方のバッファメモリに書き込まれ、他方のバッファメモリから読み出されるようになっている。ここでは、一方のバッファメモリへのデータの書き込みが終了し、かつ、他方のバッファメモリからのデータの読み出しが終了すると、バッファメモリの切り替えが行なわれるようになっている。
【0023】
そして、入力データ制御部4が、後述するようにしてデータ入力パターンを用いて生成したアドレス信号(アドレス値)に基づいて、一方のバッファメモリに保持されている入力データを読み出すようになっている。
入力データ制御部4は、例えば図1に示すように、データ入力パターン供給部5と、データ入力カウンタ6と、条件判定機能付きカウンタ7と、データ並列回路部8と、第1入力データ整形部(第1入力データ整形回路)9と、第2入力データ整形部(第2入力データ整形回路)10と、セレクタ25とを備える。
【0024】
ここで、データ入力カウンタ6は、0から任意の値までカウントアップするカウンタである。このデータ入力カウンタ6によって、データ入力パターン供給部5としてのRAM5Aにアクセスするためのアドレス信号(バリッド情報取出用アドレス値;パターン取出用アドレス値)Adr.が生成される。そして、図1に示すように、データ入力カウンタ6のカウント値(アドレス信号;アドレス値)Adr.は、データ入力パターン供給部5としてのRAM5Aに供給される。
【0025】
データ入力パターン供給部5は、リコンフィギュラブル・コア3の回路構成に応じた入力タイミングを規定するデータ入力パターン[入力データを所望の波形[図2(A)〜(C)の波形1〜3]にするための情報;入力タイミング情報]を供給するものである。ここで、データ入力パターンは、どのような入力タイミングで、バッファメモリ2からデータを読み出し、リコンフィギュラブル・コア3に入力するかを決定するものである。
【0026】
本実施形態では、図1に示すように、データ入力パターン供給部5は、ランダムアクセスメモリ(RAM)5Aによって構成される。
ここでは、データ入力パターン供給部5としてRAM5Aには、アドレス(番地)に対応づけてバリッド情報[Valid](バリッド信号;バリッドデータ)が格納されている。
ここで、バリッド情報[Valid]は、データが有効であるか無効であるかを示すフラッグ情報(データを供給するかどうかのフラッグ信号)である。ここでは、複数のバリッド情報[Valid]を任意に組み合わせてバリッド情報列(バリッド信号列;バリッドデータ列)とすることでデータ入力パターンを構成している。つまり、データ入力パターン供給部5としてRAM5Aに格納されているバリッド情報列は、データ入力パターンを決定するデータである。
【0027】
例えば、1クロック毎にデータをリコンフィギュラブル・コア3に入力する場合[図2(A)の波形1や図2(C)の波形3]、RAM5Aの0番地,1番地,・・・,2n番地,2n+1番地(nは正の整数)に順に1,1,・・・,1,1というようにデータを格納しておけば良い。また、2クロック毎にデータをリコンフィギュラブル・コア3に入力する場合[図2(B)の波形2]には、RAM5Aの0番地,1番地,・・・,2n番地,2n+1番地に順に1,0,・・・,1,0というようにデータを格納しておけば良い。
【0028】
なお、データ入力パターン供給部5としてRAM5Aに格納されているデータは、外部(例えばCPU)から制御でき、リコンフィギュラブル・コア3の回路構成に応じて変更できるようになっている。
このような構成は、入力タイミングが複雑な場合や入力タイミングに周期性がない場合に特に適している。
【0029】
そして、データ入力カウンタ6のカウント値(アドレス値)Adr.がデータ入力パターン供給部5としてのRAM5Aに供給されると、RAM5Aは、条件判定機能付きカウンタ7にバリッド信号[Valid]を供給するようになっている。
このように、データ入力カウンタ6のカウント値(アドレス値)Adr.に応じて順にバリッド信号[Valid]が供給されることで、バリッド信号[Valid]によって構成されるデータ入力パターンが条件判定機能付きカウンタ7に供給されることになる。
【0030】
なお、データ入力カウンタ6及びデータ入力パターン供給部5としてのRAM5A(これらをまとめてデータ入力パターン供給回路という)によってバリッド信号[Valid]が生成されるため、これらをValid生成部(Valid生成回路)ともいう。
条件判定機能付きカウンタ7は、データ入力パターン供給部5としてのRAM5Aから供給されるバリッド信号[Valid]が「1」(データが有効であることを示す)の場合にカウントアップするカウンタである。この条件判定機能付きカウンタ7によって、図1に示すように、RAM5Aから読み出されたバリッド信号[Valid](データ入力パターン)に基づいて、バッファメモリ2から入力データData Outを読み出すためのアドレス信号(入力データ読出用アドレス値)Adr.w/cが生成される。このため、条件判定機能付きカウンタ7を、アドレス生成部ともいう。
【0031】
データ並列回路部8は、主に入力データを上記波形3のようにするために、図1に示すように、入力データData Outをパラレルに展開して(即ち、入力データの構成を制御して)、入力データData1,Data2として、第1入力データ整形部9及び第2入力データ整形部10のそれぞれに供給するためのものである。
このデータ並列回路部8は、図3に示すように、条件判定機能付きカウンタ7から供給されるカウント値(アドレス値,アドレス信号)Adr.w/cを、アドレス信号Adr.Inとして、バッファメモリ2に供給するための入力回路部11と、バッファメモリ2から供給される入力データData Outを、入力データData1,Data2として、第1入力データ整形部9、又は、第1入力データ整形部9及び第2入力データ整形部10に供給するための出力回路部12とを備える。
【0032】
ここでは、データ並列回路部の入力回路部11は、例えば図3に示すように、入力データを上記波形1又は上記波形2のようにする場合にバッファメモリ2にアクセスするためのアドレス値と、入力データを上記波形3のようにする場合にバッファメモリ2にアクセスするためのアドレス値のいずれかを選択するセレクタ(第1セレクタ)13と、入力データを上記波形3のようにする場合にバッファメモリ2に供給するアドレス値Adr.Inを生成するアドレス生成回路部14とを備える。
【0033】
ここで、アドレス生成回路部14は、条件判定機能付きカウンタ7から供給されるアドレス信号Adr.w/cを、2倍の周波数のアドレス信号に変換するものである。
このアドレス生成回路部14は、例えば図3に示すように、バッファメモリ2から供給されるアドレス値Adr.w/cを1ビットだけ左へシフトさせるシフタ15と、シフタ15から供給されるアドレス値に「1」を加算する加算器16と、シフタ15から供給されるアドレス値と加算器16から供給されるアドレス値のいずれかを選択するセレクタ(第2セレクタ)17とを備える。
【0034】
このように構成されるデータ並列回路部8の入力回路部11によって、入力データを上記波形1又は上記波形2のようにする場合は、条件判定機能付きカウンタ7から供給されるアドレス値Adr.w/cが、そのまま、アドレス値(アドレス信号)Adr.Inとして、バッファメモリ2に供給されることになる。
一方、入力データを上記波形3のようにする場合は、データ並列回路部8の入力回路部11によって、条件判定機能付きカウンタ7から供給されるアドレス信号Adr.w/cが2倍の周波数のアドレス信号に変換され、アドレス値(アドレス信号)Adr.Inとして、バッファメモリ2に供給されることになる。
【0035】
なお、このように、アドレス信号Adr.w/cを、2倍の周波数のアドレス信号Adr.Inに変換する入力回路部11を備えるようにしているのは、リコンフィギュラブル・コア3の動作クロック(クロック1)に同期して出力回路部12から入力データData1,Data2が出力されるようにするためである。
一方、データ並列回路部8の出力回路部12は、例えば図3に示すように、入力データを上記波形1又は上記波形2のようにする場合と入力データを上記波形3のようにする場合とで入力データData1として出力するデータを選択するセレクタ(第3セレクタ)18と、入力データを上記波形3のようにする場合に第1入力データ整形部9及び第2入力データ整形部10のそれぞれに供給する入力データData1,Data2を生成するデータ生成回路部19とを備える。
【0036】
ここで、データ生成回路部19は、バッファメモリ2から供給される入力データData Outを、2つの入力データData1,Data2に変換するものである。
このデータ生成回路部19は、例えば図3に示すように、バッファメモリ2から供給された入力データData Outのうち、第1入力データ整形部9に供給するデータのみを通過させる第1ラッチ20と、第1ラッチ20から供給されるデータLatch1をクロック1に同期させるための第1レジスタ[例えばフリップフロップ(FF)]21と、バッファメモリ2から供給された入力データData Outのうち、第2入力データ整形部10に供給するデータのみを通過させる第2ラッチ22と、第2ラッチ22から供給されるデータLatch2をクロック1に同期させるための第2レジスタ[例えばフリップフロップ(FF)]23とを備える。
【0037】
このように構成されるデータ並列回路部8の出力回路部12は、入力データを上記波形1又は上記波形2のようにする場合、バッファメモリ2から供給される入力データData Outを、そのまま第3セレクタ18を介して、入力データData1として、第1入力データ整形部9に供給することになる。
一方、データ並列回路部8の出力回路部12は、入力データを上記波形3のようにする場合、バッファメモリ2から供給される入力データData Outを、2つの入力データData1, Data2に変換し、入力データData1は第3セレクタ18を介して、第1入力データ整形部9及び第2入力データ整形部10に供給することになる。
【0038】
なお、データ並列回路部8の構成は、これに限られるものではなく、バッファメモリ2から読み出される入力データをパラレルに展開することができるように構成されていれば良い。
第1入力データ整形部9及び第2入力データ整形部10は、図1に示すように、バッファメモリ2から読み出され、データ並列回路部8を介して供給される入力データData1, Data2にバリッド情報[Valid](バリッド信号;バリッドデータ;データが有効であるか無効であるかを示すフラッグ情報)を付加して整形し、入力データData1 w/v, Data2 w/vとして出力するものである。
【0039】
例えば、図4(A)に示すように、データ並列回路部8を介して供給される入力データData1(又はData2)が16ビットのデータ幅を持っている場合、第1入力データ整形部9及び第2入力データ整形部10は、図4(B)に示すように、この16ビットのデータに、1ビットの有効・無効を示すフラッグビット(バリッドビット;例えば「1」の場合にデータは有効とし、「0」の場合にデータは無効とする)を付加して、リコンフィギュラブル・コア3に入力データ(入力信号)Data1 w/v(又はData2 w/v)として供給するようになっている。
【0040】
ここで、例えば図4(C)の上側に示すような2進数表記の入力データData1(又はData2)の場合、入力データData1(又はData2)の内容は「256」であるが、フラッグビット(Valid;ここでは先頭ビット)が「0」になっているため、この入力データData1(又はData2)は無効データとして取り扱われる。
一方、図4(C)の下側に示すような2進数表記の入力データData1(又はData2)の場合、入力データData1(又はData2)の内容は「−1」(2の補数)であり、バリッドビット(ここでは先頭ビット)が「1」になっているため、この入力データData1(又はData2)は有効データとして取り扱われる。
【0041】
このように、第1入力データ整形部9及び第2入力データ整形部10は、入力データData1, Data2にバリッド情報[Valid]を付加し、入力データを有効データと無効データとを含むものとすることで、バリッド情報[Valid]の組み合わせ(バリッド情報列)によって構成されるデータ入力パターンに応じた所望の波形に整形し(即ち、入力タイミングが制御され)、入力データData1 w/v, Data2 w/vとして出力するようにしている。
【0042】
セレクタ25は、モード(Mode)が「0」の場合は、固定値「0」を選択し、モードが「1」の場合は、データ入力パターン供給部5としてのRAM5Aから供給されたバリッド情報[Valid]を選択するようになっている。ここでは、図2(A),(B)の波形1,2のようにする場合は、セレクタ25のモードは「0」に設定され、図2(C)の波形3のようにする場合は、セレクタ25のモードは「1」に設定されるようになっている。
【0043】
ところで、本集積回路の具体的なシステム構成は、例えば図5に示すように、上述の入力データ制御部4、入力データ選択部1、バッファメモリ(入力側のバッファメモリ)2、リコンフィギュラブル・コア3のほかに、例えば、CPU(制御部;制御回路)30、RAM(記憶部)31、出力側のバッファメモリ32、アドレスバス33、データバス34、アドレスデコーディング回路35などを備えた構成になっている。
【0044】
以下、本集積回路における入力データの制御方法(本システムの動作手順)について説明する。
まず、本集積回路は、入力データ制御部4による入力データの制御を行なう前に、例えば、以下のような処理を行なう。
CPU30からの命令に基づいて、RAM31に格納されているリコンフィギュラブル・コア3の回路構成を規定するコンフィギュレーションデータが読み出され、これがリコンフィギュラブル・コア3内のメモリに書き込まれる。これに応じて、リコンフィギュラブル・コア3の回路構成が切り替わる。
【0045】
なお、入力データを上記波形1のようにする必要がある回路構成をコンフィギュレーション1といい、入力データを上記波形2のようにする必要がある回路構成をコンフィギュレーション2といい、入力データを上記波形3のようにする必要がある回路構成をコンフィギュレーション3という。
また、CPU30からの命令に基づいて、RAM31に格納されている所望のデータ入力パターンのデータが読み出され、これがデータ入力パターン供給部5としてのRAM5Aに書き込まれる。
【0046】
例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション3にする場合(即ち、入力データを上記波形1又は上記波形3のようにする場合)、データ入力パターン供給部5としてのRAM5Aの0番地,1番地,・・・,2n番地,2n+1番地に順に1,1,・・・,1,1というフラッグ情報(バリッド信号)[Valid]を対応づけたデータ(データ入力パターン)が書き込まれる。
【0047】
また、例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション2にする場合(即ち、入力データを上記波形2のようにする場合)、データ入力パターン供給部5としてのRAM5Aの0番地,1番地,・・・,2n番地,2n+1番地に順に1,0,・・・,1,0というフラッグ情報(バリッド信号)[Valid]を対応づけたデータ(データ入力パターン)が書き込まれる。
【0048】
また、CPU30からの命令に基づいて、セレクタ13,18,25のモード(Mode)が設定される。
例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション2にする場合(即ち、入力データを上記波形1又は上記波形2のようにする場合)、セレクタ13,18,25のモード(Mode)は「0」に設定される。
【0049】
また、例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション3にする場合(即ち、入力データを上記波形3のようにする場合)、セレクタ13,18,25のモード(Mode)は「1」に設定される。
また、CPU30からの命令に基づいて、例えばリコンフィギュラブル・コア3の回路構成をコンフィギュレーション3にする場合(即ち、入力データを上記波形3のようにする場合)、第2セレクタ17,第1ラッチ20,第2ラッチ22に制御信号MSBが供給される。
【0050】
なお、ASICを構成する他のブロック(回路)に対して制御情報などの設定が必要であれば、その設定も行なわれる。例えば、リコンフィギュラブル・コア3へ入力データを供給する側の回路(ブロック)やリコンフィギュラブル・コア3からの出力データを受け取る側の回路(ブロック)に対して、例えばデータの供給や受け取りのための準備として何らかの設定が必要な場合には、例えばフラッグ信号を送るなどして、そのような設定が行なわれる。
【0051】
このような処理を行なった後、入力データ制御部4によって、以下のような制御が行なわれる。
まず、CPU30からの命令に基づいて、リコンフィギュラブル・コア3の回路構成に応じた処理(ここでは処理1〜3)に必要な入力データ(ここでは入力1〜3)が、入力データ選択部1によって選択されて、リコンフィギュラブル・コア3の外部の他の回路(例えばASICを構成する他のブロック)から供給され、入力側のバッファメモリ2に書き込まれる。
【0052】
この場合、CPU30は、リコンフィギュラブル・コア3へ入力データを供給する側の回路(ブロック)に対して、入力データの供給の開始制御及び終了制御を行なう。
このようにして、バッファメモリ2を構成する一方のバッファメモリへの入力データの書き込みが終了し、バッファメモリ2を構成する表裏のバッファメモリの切り替えが行なわれた後、CPU30からの命令に基づいて、制御信号36がデータ入力カウンタ6に入力され、データ入力カウンタ6はリセットされ、カウントアップを開始する。
【0053】
ここでは、データ入力カウンタ6は、図6〜図8に示すように、クロック1[clock 1]に同期してカウント値(アドレス信号;バリッド情報取出用アドレス値;パターン取出用アドレス値)Adr.を出力するようになっている。そして、データ入力カウンタ6のアドレス信号Adr.は、データ入力パターン供給部5としてのRAM5Aに供給される(図1参照)。
【0054】
次に、データ入力パターン供給部5としてのRAM5Aは、データ入力カウンタ6からのアドレス信号Adr.を受け取ると、このアドレス信号Adr.に基づいて、アドレス(番地)に対応して格納されているバリッド情報[Valid]を、条件判定機能付きカウンタ7と、第1入力データ整形部9及び第2入力データ整形部10とに供給する(図1参照)。これは、バリッド情報[Valid]によって構成されるデータ入力パターンを供給する(RAM5Aからデータ入力パターンが取り出される)ことを意味する。
【0055】
例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション3にする場合(即ち、入力データを上記波形1又は上記波形3のようにする場合)、データ入力パターン供給部5としてのRAM5Aには、0番地,1番地,・・・,2n番地,2n+1番地に順に1,1,・・・,1,1というバリッド信号[Valid]を対応づけたデータ(データ入力パターン)が書き込まれている。このため、図6又は図8に示すように、データ入力カウンタ6からのアドレス信号Adr.が0から順にカウントアップされていくと、1,1,・・・,1,1というバリッド信号[Valid]が、条件判定機能付きカウンタ7と、第1入力データ整形部9及び第2入力データ整形部10とに供給されることになる(図1参照)。
【0056】
また、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション2にする場合(即ち、入力データを上記波形2のようにする場合)、データ入力パターン供給部5としてのRAM5Aには、0番地,1番地,・・・,2n番地,2n+1番地に順に1,0,・・・,1,0というバリッド信号[Valid]を対応づけたデータ(データ入力パターン)が書き込まれている。このため、図7に示すように、データ入力カウンタ6からのアドレス信号Adr.が0から順にカウントアップされていくと、1,0,・・・,1,0というバリッド信号[Valid]が、条件判定機能付きカウンタ7と、第1入力データ整形部9及び第2入力データ整形部10とに供給されることになる(図1参照)。
【0057】
次いで、バリッド信号[Valid]を受け取った条件判定機能付きカウンタ7は、バリッド信号[Valid]が「1」(データが有効であることを示す)の場合にカウントアップし(図6〜図8のAdr.w/c参照)、そのカウント値(アドレス値,アドレス信号;入力データ読出用アドレス値)Adr.w/cをデータ並列回路部8に供給する(図1参照)。これは、データ入力パターンに基づいて、バッファメモリ2から入力データを読み出すためのアドレス値を生成することを意味する。
【0058】
例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1にする場合(即ち、入力データを上記波形1のようにする場合)、条件判定機能付きカウンタ7に1,1,・・・,1,1というバリッド信号[Valid]が供給される。このため、条件判定機能付きカウンタ7はクロック1[clock 1]の1クロック毎にカウントアップされる(図6のValid,Adr.w/c参照)。この条件判定機能付きカウンタ7のカウント値Adr.w/cは、データ並列回路部8の入力回路部11に供給され、第1セレクタ13を介して、そのまま、アドレス値(アドレス信号)Adr.Inとして、バッファメモリ2に供給されることになる(図3参照)。
【0059】
また、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション2にする場合(即ち、入力データを上記波形2のようにする場合)、条件判定機能付きカウンタ7に1,0,・・・,1,0というバリッド信号[Valid]が供給される。このため、条件判定機能付きカウンタ7がクロック1[clock 1]の2クロック毎にカウントアップされる(図7のValid,Adr.w/c参照)。この条件判定機能付きカウンタ7のカウント値Adr.w/cは、データ並列回路部8の入力回路部11に供給され、第1セレクタ13を介して、そのまま、アドレス値(アドレス信号)Adr.Inとして、バッファメモリ2に供給されることになる(図3参照)。
【0060】
また、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション3にする場合(即ち、入力データを上記波形3のようにする場合)、条件判定機能付きカウンタ7に1,1,・・・,1,1というバリッド信号[Valid]が供給される。このため、条件判定機能付きカウンタ7はクロック1[clock 1]の1クロック毎にカウントアップされる(図8のValid,Adr.w/c参照)。この条件判定機能付きカウンタ7のカウント値(バッファメモリの大きさに応じた所望のビット数を持っている)Adr.w/cは、データ並列回路部8の入力回路部11に供給される(図3参照)。そして、データ並列回路部8の入力回路部11によって周波数を2倍にする処理がなされた後、アドレス値(アドレス信号)Adr.Inとして、バッファメモリ2に供給されることになる(図3参照)。
【0061】
ここでは、データ並列回路部8の入力回路部11によって、以下のような処理が行なわれる。
なお、バッファメモリ2は、入力データを上記波形1又は上記波形2のようにする場合(セレクタ13,18,25のモード(Mode)が「0」に設定される場合)は、クロック1[clock 1]で動作するようになっており、入力データを上記波形3のようにする場合(モードが「1」に設定される場合)は、クロック1[clock 1]の2倍の周波数のクロック2[clock 2]で動作するようになっている。
【0062】
また、データ並列回路部8は、入力データを上記波形1又は上記波形2のようにする場合(セレクタ13,18,25のモードが「0」に設定される場合)は、クロック1[clock 1]に同期してバッファメモリ2からデータを読み出し、それを、第1入力データ整形部9に供給すようになっており、入力データを上記波形3のようにする場合(モードが「1」に設定される場合)は、クロック1[clock 1]の2倍の周波数のクロック2[clock 2]に同期してバッファメモリ2からデータを読み出し、それを、第1入力データ整形部9及び第2入力データ整形部10に供給するようになっている。
【0063】
まず、図3に示すように、条件判定機能付きカウンタから供給されるアドレス信号Adr.w/cは、2つに分岐され、一方はシフタ15に供給され、他方は第1セレクタ13に供給される。
次いで、シフタ15によって、カウント値を1ビットだけ左へシフト(2倍)させる処理がなされる。そして、図3に示すように、シフタ15で処理されたカウント値は、さらに2つに分岐され、一方は加算器16に供給され、他方は第2セレクタ17に供給される。
【0064】
次に、加算器16によって、シフタ15で処理されたカウント値に「1」を加算する処理がなされる。そして、図3に示すように、加算器16で処理されたカウント値は第2セレクタ17に供給される。
その後、図3に示すように、第2セレクタ17によって、制御信号MSBが「0」の場合は、シフタ15から供給されるカウント値が選択される一方、制御信号MSBが「1」の場合は、加算器16から供給されるカウント値が選択される。そして、選択されたカウント値が第1セレクタ13に供給される。
【0065】
ここでは、図8に示すように、制御信号MSBとして、クロック2[clock 2]の立ち上がりに同期して0,1,0,1・・・というように変化する信号が第2セレクタ17に供給されるため、シフタ15から供給されるカウント値と加算器16から供給されるカウント値とがクロック2[clock 2]に同期して交互に選択されることになる。この結果、クロック1[clock 1]に同期するアドレス信号(条件判定機能付きカウンタのカウント値)Adr.w/cが、クロック1[clock 1]の2倍の周波数のクロック2[clock 2]に同期するアドレス信号(カウント値)Adr.Inに変換されることになる。
【0066】
そして、図3に示すように、第1セレクタ13によって、モード(Mode)が「0」の場合は、条件判定機能付きカウンタ7から供給されるカウント値Adr.w/cが選択される一方、モードが「1」の場合は、第2セレクタ17を介して供給されるカウント値(クロック1[clock 1]の2倍の周波数のクロック2[clock 2]に同期するアドレス信号)が選択され、アドレス値Adr.Inとして出力される。
【0067】
例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1にする場合(即ち、入力データを上記波形1のようにする場合)、第1セレクタ13のモードは「0」になるようにしているため、この第1セレクタ13を介して、条件判定機能付きカウンタ7から供給されるアドレス値Adr.w/cが、そのままアドレス値Adr.Inとして、バッファメモリ2に供給されることになる(図6参照)。
【0068】
また、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション2にする場合(即ち、入力データを上記波形2のようにする場合)、第1セレクタ13のモードは「0」になるようにしているため、この第1セレクタ13を介して、条件判定機能付きカウンタ7から供給されるアドレス値Adr.w/cが、そのままアドレス値Adr.Inとして、バッファメモリ2に供給されることになる(図7参照)。
【0069】
また、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション3にする場合(即ち、入力データを上記波形3のようにする場合)、第1セレクタ13のモードは「1」になるようにしているため、この第1セレクタ13を介して、第2セレクタ17を介して供給されるカウント値(クロック1[clock 1]の2倍の周波数のクロック2[clock 2]に同期するアドレス信号)がアドレス値Adr.Inとしてバッファメモリ2に供給されることになる(図8参照)。
【0070】
次に、図3に示すように、データ並列回路部8の入力回路部11を介して供給されるアドレス値Adr.Inに基づいて、バッファメモリ2からデータ並列回路部8の出力回路部12へ入力データData Outが供給される。
本実施形態では、データ並列回路部8の出力回路部12では、以下のような処理が行なわれる。
【0071】
まず、図3に示すように、バッファメモリ2から供給される入力データ(入力データ信号)Data Outは、2つに分岐され、一方は第3セレクタ18に供給され、他方はデータ生成回路部19に供給される。
データ生成回路部19では、さらに入力データData Outが2つに分岐され、一方は第1ラッチ20に供給され、他方は第2ラッチ22に供給される。
【0072】
ここでは、第1ラッチ20は、制御信号MSBが「1」の場合は、供給された入力データData Outを通過させ、「0」の場合はデータを保持するようになっている。一方、第2ラッチ22は、制御信号MSBが「0」の場合は、供給された入力データData Outを通過させ、「1」の場合はデータを保持するようになっている。
ここで、制御信号MSBは、入力データData Outを、入力データData1,Data2に振り分けるための制御信号である。ここでは、図8に示すように、バッファメモリ2からクロック2[clock 2]の立ち上がりに同期して1,0,1,0・・・というように変化する制御信号MSBが、第1ラッチ20及び第2ラッチ22に供給されるようになっている。なお、制御信号MSBとしては、クロック1[clock 1]の反転信号を用いても良い。
【0073】
このため、図8に示すように、第3セレクタ18を介してバッファメモリ2から供給される入力データData Outのうち、奇数番目に供給されるデータ(D0,D2,D4・・・)が、第1ラッチ20を通過し、偶数番目に供給されるデータ(D1,D3,D5・・・)が、第2ラッチ22を通過することになる。また、各ラッチ20,22は、クロック2[clock 2]に同期して供給される各データを通過させた後、クロック2[clock 2]の1クロック分だけ、そのデータを保持するため、各ラッチ20,22から出力されるデータLatch1,Latch2は、図8に示すように、クロック2[clock 2]の半分の周波数(クロック1[clock 1])になる。
【0074】
そして、図8に示すように、それぞれのラッチ20,22から出力されるデータLatch1,Latch2は、クロック1[clock 1]の立ち下がりに同期して、それぞれ、第1レジスタ21及び第2レジスタ23に読み込まれ、第1レジスタ21に読み込まれたデータは第3セレクタ18に供給され、第2レジスタ23に読み込まれたデータは、入力データData2として、第2入力データ整形部10に供給される(図3参照)。
【0075】
次に、図3に示すように、第3セレクタ18によって、モード(Mode)が「0」の場合は、バッファメモリ2から供給される入力データData Outが選択され、モードが「1」の場合は、第1レジスタ21から供給されるデータが選択され、入力データData1として、第1入力データ整形部9へ供給される。
例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション2にする場合(即ち、入力データを上記波形1又は波形2のようにする場合)、第3セレクタ18のモードは「0」になるようにしているため、この第3セレクタ18を介して、バッファメモリ2から供給される入力データData Outが、そのまま入力データData1として、第1入力データ整形部9へ供給されることになる(図6又は図7参照)。
【0076】
一方、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション3にする場合(即ち、入力データを上記波形3のようにする場合)、図3に示すように、第3セレクタ18のモードは「1」になるようにしているため、上述のような処理がなされたデータが、入力データData1として、第1入力データ整形部9に供給されることになる(図8参照)。
【0077】
次に、図1に示すように、第1入力データ整形部9,第2入力データ整形部10によって、入力データData1,Data2にバリッド情報[Valid]が付加されて整形され、入力データData1 w/v,Data2 w/vとして、リコンフィギュラブル・コア3に供給される。
例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション2にする場合(即ち、入力データを上記波形1又は波形2のようにする場合)、図1に示すように、第1入力データ整形部9によって、データ並列回路部8から供給された入力データData1に、データ入力パターン供給部5としてのRAM5Aから供給されたバリッド情報[Valid](ここでは条件判定機能付きカウンタ7に供給されるバリッド信号よりも3クロック分遅らせて供給される)が付加される。これにより、入力データData1がリコンフィギュラブル・コア3の回路構成に応じて整形され、入力データData1 w/vとして、リコンフィギュラブル・コア3へ出力される(図6又は図7参照)。
【0078】
このようにして、図2(A)の波形1又は図2(B)の波形2に示すようなタイミングでリコンフィギュラブル・コア3にデータが入力されることになる。
ところで、本実施形態では、第2入力データ整形部10には、図1に示すように、セレクタ25を介してバリッド情報[Valid]が供給されるようになっている。
そして、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション2にする場合(即ち、入力データを上記波形1又は波形2のようにする場合)、セレクタ25のモードは「0」になるようにしており、モードが「0」の場合は、第2入力データ整形部10にはセレクタ25を介してバリッド信号[Valid]として固定値「0」が供給される。
【0079】
このため、第2入力データ整形部10によって、データ並列回路部8から供給された入力データData2にバリッド情報[Valid]「0」が付加され(即ち、入力データData2の全てが無効にされ)、入力データData2 w/vとして、リコンフィギュラブル・コア3へ出力される。
一方、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション3にする場合(即ち、入力データを上記波形3のようにする場合)、セレクタ25のモードは「1」になるようにしており、モードが「1」の場合は、第2入力データ整形部10にはセレクタ25を介してデータ入力パターン供給部5としてのRAM5Aから供給されたバリッド情報[Valid]が供給される(ここでは条件判定機能付きカウンタに供給されるバリッド信号よりも3クロック分遅らせて供給される)。
【0080】
このため、図1に示すように、第1入力データ整形部9及び第2入力データ整形部10によって、データ並列回路部8から供給された入力データData1,Data2に、それぞれ、データ入力パターン供給部5としてのRAM5Aから供給されたバリッド情報[Valid](ここでは条件判定機能付きカウンタに供給されるバリッド信号よりも3クロック分遅らせて供給される)が付加される。これにより、入力データData1,Data2のそれぞれがリコンフィギュラブル・コア3の回路構成に応じて整形され、入力データData1 w/v,Data2 w/vとして(図8参照)、リコンフィギュラブル・コア3に供給される。
【0081】
このようにして、図2(C)の波形3に示すようなタイミングでリコンフィギュラブル・コア3にデータが入力されることになる。
その後、リコンフィギュラブル・コア3によって処理され、他の回路(例えばASICを構成する他のブロック)へ出力されるデータは、図5に示すように、一旦、出力側のバッファメモリ32に保持される。そして、CPU30からの命令に基づいて、この出力側のバッファメモリ32に保持された出力データが、リコンフィギュラブル・コア3からの出力データを受け取る側の回路に供給(出力)される。
【0082】
この場合、CPU30は、リコンフィギュラブル・コア3から出力されるデータを受け取る側の回路に対して、出力側のバッファメモリ32から出力データを受け取るのに必要な制御(開始制御及び終了制御)を行なう。
なお、本実施形態では、入力データ選択部1、入力側のバッファメモリ2、入力データ制御部4、リコンフィギュラブル・コア3、出力側のバッファメモリ32、RAM31に対する制御をCPU30によって行なうようにしているが、これに限られるものではなく、例えば専用のプロセッサなどの制御回路(制御部)によって、これらを制御するようにしても良い。
【0083】
したがって、本実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、入力データをリコンフィギュラブル回路3で確実に処理できるという利点がある。
[第2実施形態]
次に、本発明の第2実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について、図9を参照しながら説明する。
【0084】
本実施形態にかかる集積回路は、上述の第1実施形態のものに対し、データ入力パターン供給部の構成が異なる。
つまり、本実施形態では、図9に示すように、データ入力パターン供給部5を、データ入力パターン(バリッド情報)を発生するパターン発生回路(バリッド情報発生回路)5Bによって構成している。なお、図9では、上述の第1実施形態(図1参照)と同一のものには同一の符号を付している。
【0085】
このような構成は、例えば、比較的面積コストの大きいRAMを使用したくない場合、データの入力タイミングをシンプルな場合などに適しており、より簡単なロジックのみでデータ入力パターン供給部5を設計することができる。
ここでは、3つのデータ入力パターン、即ち、1データ1クロック、1データ2クロック、1データ4クロックの切り替えが可能なパターン発生回路5Bを例に、図9を参照しながら説明する。
【0086】
本パターン発生回路5Bは、図9に示すように、2つのレジスタR0,R1と、5つのAND回路41〜45と、1つのOR回路46とを備えるものとして構成される。
ここで、レジスタR0,R1は、外部(例えばCPU)から制御可能なレジスタである。つまり、レジスタR0,R1の値(データ入力パターンを決定する制御情報)は、外部(例えばCPU)から制御でき、リコンフィギュラブル・コア3の回路構成に応じて変更できるようになっている。
【0087】
また、本パターン発生回路5Bでは、データ入力カウンタ6から供給されるカウント値(アドレス値,アドレス信号;バリッド情報取出用アドレス値;パターン取出用アドレス値)Adr.のうち、下位2ビットだけを用いるようにしている。
つまり、本パターン発生回路5BのAddress[0]で示すアドレスバスにはデータ入力カウンタ6から供給されるアドレス値Adr.の最下位ビットの値が入力されるようになっている。また、Address[1]で示すアドレスバスにはデータ入力カウンタ6から供給されるアドレス値Adr.の最下位から2番目のビットの値が入力されるようになっている。
【0088】
このように構成されるパターン発生回路5Bにおいて、レジスタの値をR0=0,R1=0のように設定すると、1クロック毎にデータが供給され、R0=1,R1=0のように設定すると、2クロック毎にデータが供給され、R0=1,R1=0のように設定すると、4クロック毎にデータが供給されることになる。
つまり、パターン発生回路5Bのレジスタの値をR0=0,R1=0のように設定すると、1クロック毎にデータを供給するための入力タイミングを規定するデータ入力パターン(入力タイミング情報)が生成され(即ち、1,1,・・・,1,1というバリッド情報[Valid]が生成され)、これが条件判定機能付きカウンタ7、第1入力データ整形部9及び第2入力データ整形部10に供給されることになる。これにより、入力データを上記波形1又は上記波形3[図2(A)又は(C)参照]のようにすることができる。
【0089】
また、パターン発生回路5Bのレジスタの値をR0=1,R1=0のように設定すると、2クロック毎にデータを供給するための入力タイミングを規定するデータ入力パターンが生成され(即ち、1,0,・・・,1,0というバリッド情報[Valid]が生成され)、これが条件判定機能付きカウンタ7、第1入力データ整形部9及び第2入力データ整形部10に供給されることになる。これにより、入力データを上記波形2[図2(B)参照]のようにすることができる。
【0090】
また、パターン発生回路5Bのレジスタの値をR0=1,R1=0のように設定すると、4クロック毎にデータを供給するための入力タイミングを規定するデータ入力パターンが生成され(即ち、1,0,0,0,・・・,1,0,0,0というバリッド情報[Valid]が生成され)、これが条件判定機能付きカウンタ7、第1入力データ整形部9及び第2入力データ整形部10に供給されることになる。
【0091】
なお、データ入力カウンタ6及びデータ入力パターン供給部5としてのパターン発生回路5B(これらをまとめてデータ入力パターン供給回路という)によってバリッド信号[Valid]が生成されるため、これらをValid生成部(Valid生成回路)ともいう。
なお、ここでは、レジスタR0,R1を用いてデータ入力パターンを設定するようにしているが、これに限られるものではなく、例えばレジスタの代わりに、別の回路(ブロック)からの制御信号を用いるようにしても良い。
【0092】
また、その他の構成及び動作は、上述の第1実施形態及びその変形例のものと同じであるため、ここでは説明を省略する。
したがって、本実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、上述の第1実施形態のものと同様に、入力データをリコンフィギュラブル回路で確実に処理できるという利点がある。
[第3実施形態]
次に、本発明の第3実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について、図10(A),(B)を参照しながら説明する。
【0093】
本実施形態にかかる集積回路は、上述の第1実施形態及び第2実施形態のものに対し、データ入力パターン供給部の構成が異なる。
つまり、上述の第1実施形態及び第2実施形態では、データ入力パターン供給部5を何らかのハードウェアによって実現しているのに対し、本集積回路では、図10(A)に示すように、上述の第1実施形態及び第2実施形態のデータ入力パターン供給部5及びデータ入力カウンタ6に相当する構成[即ち、条件判定機能付きカウンタ7に供給されるバリッド情報[Valid](フラッグ情報;データを供給するかどうかのフラッグ信号)を生成するValid生成部]を、リコンフィギュラブル・コア3の一部を用いて実現している。なお、図10(A)では、上述の第1実施形態(図1参照)と同一のものには同一の符号を付している。
【0094】
このため、本集積回路は、図10(A)に示すように、リコンフィギュラブル・コア3の一部の演算器からなる回路を用いてValid生成部(フラグ情報生成部,データ入力パターン供給回路)56を構成し、このValid生成部56によって生成されたバリッド情報[Valid](データ入力パターン)を入力データ制御部4の条件判定機能付きカウンタ7、第1入力データ整形部9及び第2入力データ整形部10に供給するようになっている。
【0095】
本実施形態では、Valid生成部56は、例えば図10(B)に示すように、カウンタ57と、AND回路58と、比較器(EQ)59とを備える回路(Valid生成回路)にしている。なお、Valid生成部56の構成はこれに限られるものではない。
ここで、AND回路58は、0から任意の値までカウントアップするカウンタ57からのカウンタ値と、固定値「1」(0x0001)をビットアンドし、下位の1ビットのみを抽出して出力するようになっている。
【0096】
比較器(EQ)59は、AND回路58で抽出された値と固定値「0」と比較し、一致する場合(即ち、AND回路58で抽出された値が「0」の場合)に「1」を出力するようになっている。
このように構成されるValid生成部56では、カウンタ57のカウント値が偶数の場合にバリッド信号[Valid]として「1」が生成されるため、バリッド信号[Valid]は1,0,・・・,1,0となる。つまり、2クロックにつき1データを供給するための入力タイミングを規定するデータ入力パターン(入力タイミング情報)が生成されることになる。これにより、入力データを、2クロックにつき1データが入力される上記波形2[図2(B)参照]のようにすることができる。
【0097】
なお、ここでは、Valid生成部56を、入力データを波形2[図2(B)参照]のようにするためのバリッド情報[Valid]を生成する回路として構成しているが、これに限られるものではなく、例えば、入力データを上記波形1又は上記波形3[図2(A)又は(C)参照]のようにするためのバリッド情報[Valid]を生成する回路として構成することもできる。
【0098】
この場合、Valid生成部56を、例えば、2つの入力端子を持つAND回路によって構成し、それぞれの入力端子にいずれも固定値「1」が入力されるようにすれば良い。このような構成にすることで、バリッド信号[Valid]として「1」が連続して生成されることになる(即ち、1,1,・・・,1,1というバリッド情報[Valid]になる)。つまり、1クロックにつき1データを供給するための入力タイミングを規定するデータ入力パターン(入力タイミング情報)が生成されることになる。これにより、入力データを上記波形1又は上記波形3[図2(A)又は(C)参照]のようにすることができる。
【0099】
なお、その他の構成及び動作は、上述の第1実施形態、第2実施形態及び変形例のものと同じであるため、ここでは説明を省略する。
したがって、本実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、上述の第1実施形態や第2実施形態と同様に、入力データをリコンフィギュラブル回路で確実に処理できるという利点がある。
[その他]
なお、本発明は、上述した各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形することができる。
【0100】
例えば、入力データ制御部4の構成や動作は、上述の各実施形態のものに限られるものではなく、リコンフィギュラブル・コア(リコンフィギュラブル回路)3の回路構成に応じてデータが入力されるように構成すれば良い。
また、上述の各実施形態では、処理1〜3に応じて、それぞれ、入力データを波形1〜3のようにする場合を例に説明しているが、これに限られるものではなく、リコンフィギュラブル・コア3によって処理できるように、リコンフィギュラブル・コア3の回路構成に応じてデータが入力されるように構成すれば良い。
【0101】
例えば、上述の各実施形態では、入力データを波形2のようにする場合と入力データを波形3のようにする場合とを別個に説明しているが、入力データを波形3のようにする場合(リコンフィギュラブル・コア3の2つのポートのそれぞれにデータを入力する場合)に、入力データを波形2のようにするためのデータ入力パターン[リソース(回路構成)を切り替える時間に対応する時間間隔をあけてデータを入力するデータ入力パターン]を適用することもできる。
【0102】
また、例えば、上述の各実施形態では、処理3を、2データに対して1クロックで処理するものとし、波形3を、リコンフィギュラブル・コア3の2つのポートのそれぞれに1クロックにつき1データが入力されるような波形とし、データ並列回路部8を、入力データData Outを2つの入力データData1,Data2にするものとし、第1入力データ整形部9及び第2入力データ整形部10を設ける場合を例に説明しているが、これに限られるものではなく、例えば、処理3を、複数のデータに対して1クロックで処理するものとし、波形3を、リコンフィギュラブル・コアの複数のポートのそれぞれにデータが入力されるような波形とし、データ並列回路部を、入力データData Outを複数の入力データにするものとし、複数の入力データ整形部(入力データ整形回路)を設けるようにしても良い。
【0103】
また、上述の各実施形態では、データ並列回路部8を備えるものとして構成しているが、これに限られるものではなく、例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション2にする(即ち、入力データを上記波形1又は波形2のようにする)だけで良い場合には、例えば図11に示すように、データ並列回路部を備えないものとして構成することもできる。この場合、入力データ整形部も1つだけ設ければ良い。
【0104】
また、上述の各実施形態では、入力データ整形部を備えるものとして構成しているが、これに限られるものではなく、例えば、リコンフィギュラブル・コア3の回路構成をコンフィギュレーション1又はコンフィギュレーション3にする(即ち、入力データを上記波形1又は波形3のようにする)だけで良い場合には、例えば図12に示すように、入力データ整形部を備えないものとして構成することもできる。
【0105】
また、上述の各実施形態では、本発明を、例えばASICの中にリコンフィギュラブル・コア(リコンフィギュラブル回路)3を入れたものに適用した場合を例に説明しているが、これに限られるものではなく、本発明は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路を備える集積回路に広く適用することができる。
以下、上述の各実施形態に関し、更に、付記を開示する。
【0106】
(付記1)
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路と、
前記リコンフィギュラブル回路の構成に応じてデータが入力されるように入力データを制御する入力データ制御部とを備えることを特徴とする集積回路。
(付記2)
前記入力データ制御部が、前記リコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを供給するデータ入力パターン供給部を備えることを特徴とする付記1記載の集積回路。
【0107】
(付記3)
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを格納するランダムアクセスメモリによって構成され、
前記入力データ制御部が、前記ランダムアクセスメモリにアクセスするためのアドレス値を生成するカウンタと、前記ランダムアクセスメモリから読み出される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする付記2記載の集積回路。
【0108】
(付記4)
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを発生するパターン発生回路によって構成され、
前記入力データ制御部が、前記パターン発生回路に入力されるアドレス値を生成するカウンタと、前記パターン発生回路から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする付記2記載の集積回路。
【0109】
(付記5)
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記リコンフィギュラブル回路の一部の演算器からなる回路によって構成され、
前記入力データ制御部が、前記データ入力パターン供給部から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする付記2記載の集積回路。
【0110】
(付記6)
前記入力データ制御部が、前記入力データをパラレルに展開するデータ並列回路部を備えることを特徴とする付記1〜5のいずれか1項に記載の集積回路。
(付記7)
前記データ入力パターン供給部が、前記データ入力パターンを構成するバリッド情報を供給するように構成され、
前記入力データ制御部が、前記入力データに前記バリッド情報を付加して前記入力データを整形する入力データ整形部を備えることを特徴とする付記1〜6のいずれか1項に記載の集積回路。
【0111】
(付記8)
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを取り出し、
前記データ入力パターンに基づいて前記リコンフィギュラブル回路に入力データを入力することを特徴とするリコンフィギュラブル回路の入力データ制御方法。
【0112】
(付記9)
前記入力データをバッファメモリに書き込み、
前記データ入力パターンに基づいて前記バッファメモリから前記入力データを読み出すための入力データ読出用アドレス値を生成し、
前記入力データ読出用アドレス値に基づいて前記バッファメモリから前記入力データを読み出して前記リコンフィギュラブル回路に入力することを特徴とする付記8記載のリコンフィギュラブル回路の入力データ制御方法。
【0113】
(付記10)
前記データ入力パターンが格納されているランダムアクセスメモリにアクセスするためのパターン取出用アドレス値を生成し、
前記パターン取出用アドレス値に基づいて前記ランダムアクセスメモリから前記データ入力パターンを取り出すことを特徴とする付記8又は9記載のリコンフィギュラブル回路の入力データ制御方法。
【0114】
(付記11)
前記データ入力パターンを発生するパターン発生回路に入力されるパターン取出用アドレス値を生成し、
前記パターン取出用アドレス値に基づいて前記パターン発生回路から前記データ入力パターンを取り出すことを特徴とする付記8又は9記載のリコンフィギュラブル回路の入力データ制御方法。
【0115】
(付記12)
前記リコンフィギュラブル回路の一部の演算器からなる回路を用いて生成されたデータ入力パターンを取り出すことを特徴とする付記8又は9記載のリコンフィギュラブル回路の入力データ制御方法。
(付記13)
前記入力データをパラレルに展開して、前記リコンフィギュラブル回路に入力することを特徴とする付記8〜12のいずれか1項に記載のリコンフィギュラブル回路の入力データ制御方法。
【0116】
(付記14)
前記データ入力パターンとして、バリッド情報によって構成されるデータ入力パターンを取り出し、
前記入力データに前記バリッド情報を付加して前記入力データを整形することを特徴とする付記8〜13のいずれか1項に記載のリコンフィギュラブル回路の入力データ制御方法。
【図面の簡単な説明】
【0117】
【図1】本発明の第1実施形態にかかる集積回路の構成を示す模式図である。
【図2】(A)〜(C)は、本発明の第1実施形態にかかる集積回路の入力データ制御部によって生成される波形1〜3を示す模式図である。
【図3】本発明の第1実施形態にかかる集積回路のデータ並列回路部の構成を示す模式図である。
【図4】(A)〜(C)は、本発明の第1実施形態にかかる集積回路に備えられる入力データ整形部における処理を説明するための図である。
【図5】本発明の第1実施形態にかかる集積回路のシステム構成を説明するための模式図である。
【図6】本発明の第1実施形態にかかる集積回路によって入力データを波形1のようにする場合の動作を説明するためのタイムチャートである。
【図7】本発明の第1実施形態にかかる集積回路によって入力データを波形2のようにする場合の動作を説明するためのタイムチャートである。
【図8】本発明の第1実施形態にかかる集積回路によって入力データを波形3のようにする場合の動作を説明するためのタイムチャートである。
【図9】本発明の第2実施形態にかかる集積回路の構成を示す模式図である。
【図10】(A),(B)は、本発明の第3実施形態にかかる集積回路の構成を示す模式図である。
【図11】本発明の各実施形態にかかる集積回路の変形例の構成を示す模式図である。
【図12】本発明の各実施形態にかかる集積回路の変形例の構成を示す模式図である。
【図13】(A)は従来のASICの構成例を示す模式図であり、(B)はASICの一部にリコンフィギュラブル・コアを入れた場合の構成例を示す模式図であり、(C)はASICの一部にリコンフィギュラブル・コアを入れた場合の課題を説明するための模式図である。
【符号の説明】
【0118】
1 入力データ選択部
2 バッファメモリ(入力側のバッファメモリ)
3 リコンフィギュラブル・コア(リコンフィギュラブル回路)
4 入力データ制御部
5 データ入力パターン供給部(Valid生成部)
5A RAM
5B パターン発生回路(バリッド情報発生回路)
6 データ入力カウンタ(Valid生成部)
7 条件判定機能付きカウンタ(アドレス生成部)
8 データ並列回路部
9 第1入力データ整形部
10 第2入力データ整形部
11 入力回路部
12 出力回路部
13 セレクタ(第1セレクタ)
14 アドレス生成回路部
15 シフタ
16 加算器
17 セレクタ(第2セレクタ)
18 セレクタ(第3セレクタ)
19 データ生成回路部
20 第1ラッチ
21 第1レジスタ
22 第2ラッチ
23 第3レジスタ
25 セレクタ
30 CPU(制御部)
31 RAM
32 出力側のバッファメモリ
33 アドレスバス
34 データバス
35 アドレスデコーディング回路
36 制御信号
41〜45 AND回路
46 OR回路
56 Valid生成部
57 カウンタ
58 AND回路
59 比較器

【特許請求の範囲】
【請求項1】
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路と、
前記リコンフィギュラブル回路の構成に応じてデータが入力されるように入力データを制御する入力データ制御部とを備えることを特徴とする集積回路。
【請求項2】
前記入力データ制御部が、前記リコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを供給するデータ入力パターン供給部を備えることを特徴とする請求項1記載の集積回路。
【請求項3】
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを格納するランダムアクセスメモリによって構成され、
前記入力データ制御部が、前記ランダムアクセスメモリにアクセスするためのアドレス値を生成するカウンタと、前記ランダムアクセスメモリから読み出される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする請求項2記載の集積回路。
【請求項4】
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを発生するパターン発生回路によって構成され、
前記入力データ制御部が、前記パターン発生回路に入力されるアドレス値を生成するカウンタと、前記パターン発生回路から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする請求項2記載の集積回路。
【請求項5】
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記リコンフィギュラブル回路の一部の演算器からなる回路によって構成され、
前記入力データ制御部が、前記データ入力パターン供給部から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする請求項2記載の集積回路。
【請求項6】
前記入力データ制御部が、前記入力データをパラレルに展開するデータ並列回路部を備えることを特徴とする、請求項1〜5のいずれか1項に記載の集積回路。
【請求項7】
前記データ入力パターン供給部が、前記データ入力パターンを構成するバリッド情報を供給するように構成され、
前記入力データ制御部が、前記入力データに前記バリッド情報を付加して前記入力データを整形する入力データ整形部を備えることを特徴とする請求項2〜6のいずれか1項に記載の集積回路。
【請求項8】
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを取り出し、
前記データ入力パターンに基づいて前記リコンフィギュラブル回路に入力データを入力することを特徴とするリコンフィギュラブル回路の入力データ制御方法。
【請求項9】
前記入力データをパラレルに展開して、前記リコンフィギュラブル回路に入力することを特徴とする請求項8記載のリコンフィギュラブル回路の入力データ制御方法。
【請求項10】
前記データ入力パターンとして、バリッド情報によって構成されるデータ入力パターンを取り出し、
前記入力データに前記バリッド情報を付加して前記入力データを整形することを特徴とする請求項8又は9記載のリコンフィギュラブル回路の入力データ制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2008−90360(P2008−90360A)
【公開日】平成20年4月17日(2008.4.17)
【国際特許分類】
【出願番号】特願2006−267343(P2006−267343)
【出願日】平成18年9月29日(2006.9.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】