【実施例1】
【0025】
図2は、本発明の論理演算処理装置の二式の動的再構成可能回路と二式のレジスタ群と再構成回路割当用制御器の接続関係を示す構成図である。
【0026】
同図において、論理演算処理装置100は、二式の動的再構成可能回路110、120(C0、C1)、二式のレジスタ群130、140(以下、R(0)、R(1)と言う)、再構成回路割当用制御器150、160、を有する。
【0027】
レジスタ群R(0)、R(1)は、それぞれクロックt(0)〜t(4)を受け、当該クロックに基づいて後述する動作を実行する。
【0028】
また、レジスタ群R(0)、R(1)は、それぞれ再構成可能回路C(0)、C(1)から出力される処理結果を受ける入力端子IN、当該レジスタ群の出力値を再構成可能回路に出力する出力端子OUTを有する。
【0029】
そして、レジスタ群130の出力端子OUTは動的再構成可能回路110(C(0))の入力側に接続し、レジスタ群130の入力端子INは動的再構成可能回路120(C(1))の出力側に接続する。レジスタ群140の入力側端子INは、動的再構成可能回路110(C(0))の出力側に接続し、レジスタ群140の出力端子OUTは動的再構成可能回路120(C(1))の入力側に接続する。
【0030】
つまり、動的再構成可能回路110(C(0))の出力側と動的再構成可能回路120(C(1))の入力側との間にレジスタ群140(R1)を配置し、動的再構成可能回路120(C(1))の出力側と動的再構成可能回路110(C(0))の入力側との間にレジスタ群130(R0)を配置し、それぞれが環状構成となるように接続する。
【0031】
再構成回路割当用制御器150は、例えば再構成可能回路C(0)が、演算処理F(0)を実行し、当該処理結果をレジスタ群R(1)に格納するとき、再構成可能回路C(1)の回路を次の演算処理F(1)を行う論理を割当てるように再構成する。また、再構成回路割当用制御器160は、例えば再構成可能回路C(1)が、演算処理F(1)を実行し、当該処理結果をレジスタ群R(0)に格納するとき、再構成可能回路C(0)の回路を次の演算処理F(2)を行う論理を割当てるように再構成する。以下、同様に論理を順次割当てる再構成する機能を有する。
【0032】
クロックtは、再構成が完了したタイミングで、次のクロックt(1)、・・・でレジスタ群130、140、に与えるようにする。クロックtは、クロック発生部を含むクロック同期回路(図示せず)をもって行う。詳細は後述する。
【0033】
本実施例では、2つの再構成回路割当用制御器をもって論理を割当てる再構成を実現しているが、1つの再構成回路割当用制御器をもって上述した再構成を実現するようにしてもよい。
【0034】
所謂、再構成可能回路C(0)、C(1)の論理処理結果が循環するように、再構成可能回路C(0)、C(1)、レジスタ群R(0)、R(1)、を図示の如く、互い違いに環状に配置し、構成する。
【0035】
そして、二式の再構成可能回路C(0)、C(1)による論理演算処理を、それぞれ1クロックごとの処理に分解し、当該論理回路に実装される目的論理関数F(0),F(1)・・・・F(m)のマルチサイクル論理演算処理を実行する。
【0036】
次に、論理演算処理装置の論理処理、処理結果保持、論理再割当て(再構成)、等の処理動作について説明する。前提とし、マルチサイクル論理演算処理を、1クロックごとの処理に分解し、これらを目的論理関数F(0),F(1)・・・・F(m)とする。ここで、mは論理演算処理の段数を示す。このクロックは、
図3に示すタイミングで行う。
【0037】
図3は、タイムチャートを示す図であって、横軸に時間Tを示し、縦軸に論理演算処理装置のクロック、再構成可能回路C(0)、C(1)、レジスタ群R(0)、R(1)を示し、これら各部の処理タイミングを示している。
【0038】
図3において、まず、初期状態において、再構成回路割当用制御器150により、再構成可能回路C(0)にF(0)の処理をする論理をもって割り当てる。この再構成回路割当用制御器は、公知の技術、例えば、上述した非特許文献1に記載の「動的再構成」を利用し、その詳細説明は省略する。
【0039】
次に、再構成可能回路C(0)、C(1)、レジスタ群R(0)、R(1)に最初のクロックt(0)を与える(
図3a参照)。すると、再構成可能回路C(0)は、レジスタR(0)から出力されるI(0)を受け、F(0)の処理を実行し、I(1)を出力する(
図3b〜d参照)。このときの処理結果I(1)は、レジスタ群R(1)に保持(記憶・格納)する(
図3e〜f参照)。と共に、再構成可能回路C(1)にF(1)の論理を割当て、当該再構成可能回路を再構成する(
図3g参照)。
【0040】
論理回路C(1)の再構成が完了した時点で、次のクロックt(1)を与える。すると、再構成可能回路C(1)は、レジスタ群R(1)から出力されるI(1)を受け、F(1)の処理を実行し、I(2)を出力する(
図3h〜i参照)。このときの処理結果I(2)は、レジスタ群R(0)に保持(記憶・格納)する(
図3j〜k参照)。と共に、再構成可能回路C(0)にF(2)の論理を割り当て、当該再構成可能回路を再構成する(
図3l参照)。
【0041】
再構成可能回路C(0)の再構成が完了した時点で、次のクロックt(2)を与える。すると、再構成可能回路C(0)は、レジスタ群R(0)から出力されるI(2)を受け、F(2)の処理を実行し、I(3)を出力する(
図3m〜n参照)。このときの処理結果I(3)は、レジスタ群R(1)に保持(記憶・格納)する(
図3o〜p参照)。と共に、再構成可能回路C(1)にF(3)の論理を割り当て、当該再構成可能回路を再構成する(
図3q参照)。
【0042】
再構成可能回路C(1)の再構成が完了した時点で、次のクロックt(3)を与える。すると、再構成可能回路C(1)は、F(3)の処理を実行し、OUTを出力する(
図3r〜s参照)。このときの出力(OUT)は、レジスタ群R(0)に保持(記憶・格納)する(
図3(t)〜(u)参照)。
【0043】
上述した処理を、論理演算処理の段数F(m)が完了するまで繰り返す。
これにより、二式の再構成可能回路C(0)C(1)、二式のレジスタ群R(1)、R(2)をもって、マルチサイクル論理演算処理を実行することができる。
【0044】
上述した動作について、一般式で記述すれば、以下のように記述できる。以下のnは、0以上の整数とし、初期状態では、論理回路C(0)には、F(0)の処理をする論理を割り当てる。また、レジスタ群R(0)の入力に、論理演算処理の入力I(0)を与えておく。
【0045】
(1)t(2n)のクロックを論理回路C(0)、C(1)、レジスタ群R(0)、R(1)に与える。このことにより、レジスタ群R(0)の入力側の値が出力側に取り込まれ、論理回路C(0)の入力となる。
(2)t(2n)からt(2n+1)のクロックの間に以下の処理を行う。
1)再構成可能回路C(0)にてF(2n)の処理を行い、処理結果がレジスタ群R(1)の入力側に設定される。
2)再構成可能回路C(1)を再構成し、F(2n+1)の処理を行う論理を割り当てる。
(3)t(2n+1)のクロックを論理回路C(0)、C(1)に与える。このことにより、レジスタ群R(1)の入力側の値が出力側に取り込まれ、再構成可能回路C(1)の入力となる。
1)再構成可能回路C(1)にてF(2n+1)の処理を行い、処理結果がレジスタ群R(0)の入力側に設定される。
2)再構成可能回路C(0)を再構成し、F(2(n+1))の処理を行う論理を割り当てる。
(4)t(2n+1)からt(2(n+1))のクロックの間に以下の処理を行う。
1)論理回路C(0)にてF(2(n+1))の論理処理を行い、当該処理結果がレジスタ群R(1)の入力側に設定される。
2)再構成可能回路C(0)を再構成し、F(2n+1)の処理を行う論理を割り当てる。
【0046】
上記(1)〜(4)の処理を、F(m)の処理が完了するまで繰り返す。
ここで、F(m)の処理が終了した時点で、mが奇数の場合にはレジスタ群R(0)の入力となっている値を、mが偶数の場合にはレジスタ群R(1)の入力となっている値を取り出せば、マルチサイクル論理演算処理の結果を取り出したことになる。
【実施例2】
【0047】
図4は、1枚のボード(回路基板)の両面(表面、裏面)に再構成可能回路C(0)、C(1)を実装し、ボードの端には、両面の再構成可能論理回路110、120からアクセス可能な記憶素子群であるレジスタ群R(0)、R(1)、を設置する例を示す図である。
【0048】
すなわち、以下の処理(A)・(B)・(C)・(D)からなる一連の処理を図に示す構成の再構成可能回路C(0)、C(2)で処理する場合を考える。
【0049】
(1)初期状態として次のように構成する。
再構成可能回路C(0):処理(A)用の構成
再構成可能回路C(1):処理(B)用の構成
記憶素子群(レジスタ群)R(0)の出力:処理(A)の入力
【0050】
(2)最初のクロック単位で以下の処理を行う。
再構成可能回路C(0):処理(A)
これにより、レジスタ群R(1)には処理(A)の結果が保持される。
【0051】
(3)次のクロック単位で以下の処理を行う。
再構成可能回路C(1):レジスタ群R(1)の内容を入力
再構成可能回路C(1):処理(B)
再構成可能回路C(0):処理(C)に再構成
これにより、レジスタ群R(0)には処理(B)結果が保持される。
【0052】
(4)次のクロック単位で以下の処理を行う。
再構成可能回路C(0):レジスタ群R(0)の内容を入力
再構成可能回路C(0):処理(C)
再構成可能回路C(1):処理(D)用に再構成
これにより、レジスタ群R(1)には処理(C)の結果が保持される。
【0053】
(5)次のクロック単位で以下の処理を行う。
再構成可能回路C(1):レジスタ群R(1)の内容を入力
再構成可能回路C(1):処理(D)
【0054】
上記一連の処理により、レジスタ群R(1)には処理(D)の結果が保持される。
【0055】
上記構成における再構成可能回路C(0)、C(1)とレジスタ群R(0)、R(1)との関係は次のようになっている。
・再構成可能回路C0
入力:レジスタ群R(0)、
出力:レジスタ群R(1)
・再構成可能回路C(1)
入力:レジスタ群R(1)、
出力:レジスタ群R(0)
【0056】
以上述べた実施例によれば、複数のクロックで処理される多段論理演算処理を行う処理装置の回路規模を小さくし、かつ十分な高速処理を実現することができる。
【0057】
また、複数クロックで処理される多段(マルチ)論理演算処理を、二式の動的再構成可能論理回路、例えばFPGA)と二式のレジスタ群にて実現可能である。
【0058】
また、ボードの両面に再構成可能回路と記憶素子群を配置することにより、実装密度を上げることができ、論理回路の規模を小さくすることができる。
【0059】
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。