(実施の形態1)
図1は、実施の形態1に係る処理装置10の構成図である。処理装置10は、回路構成を再構成可能とする機能を有する集積回路装置26を備える。集積回路装置26は1チップとして構成され、リコンフィギュラブル回路12、設定部14、制御部18、内部状態保持回路20、出力回路22、第1フィードバック経路24、マルチプレクサ部25、遅延保持回路27および第2フィードバック経路29を備える。リコンフィギュラブル回路12は、設定を変更することにより、機能の変更を可能とする。リコンフィギュラブル回路12は組合せ回路または順序回路等の論理回路として構成される。第1フィードバック経路24または第2フィードバック経路29を通ってリコンフィギュラブル回路12の出力と入力を接続する経路を、リコンフィギュラブル回路12の出力を論理回路に入力可能な入力経路と呼ぶ。
リコンフィギュラブル回路12は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを備える。構造的には、複数の論理回路列の間に、論理回路列間の接続用結線を設定する接続部が設けられる。リコンフィギュラブル回路12は、複数段に配列された各論理回路の機能、および論理回路間の接続を任意に設定することで、機能の変更を可能とする。
設定部14は、第1設定部14a、第2設定部14b、第3設定部14c、第4設定部14dおよび選択器16を有し、リコンフィギュラブル回路12に所期の回路を構成するための設定データ40を供給する。設定部14は、プログラムカウンタのカウント値に基づいて記憶したデータを出力するコマンドメモリとして構成されてもよい。この場合、制御部18がプログラムカウンタの出力を制御する。この意味において、設定データ40はコマンドメモリから出力されるコマンドデータであってよい。
第1フィードバック経路24は、フィードバックパスとして機能し、リコンフィギュラブル回路12の出力を、リコンフィギュラブル回路12の入力に接続する。内部状態保持回路20および出力回路22は、例えばデータフリップフロップ(DFF)などの順序回路として構成され、リコンフィギュラブル回路12の出力を受ける。内部状態保持回路20は第1フィードバック経路24に接続されており、リコンフィギュラブル回路12の出力を直接リコンフィギュラブル回路12の入力にフィードバックさせる。
遅延保持回路27はメモリであって、リコンフィギュラブル回路12から出力される出力データを格納するための複数のRAMにより構成される。遅延保持回路27は、リコンフィギュラブル回路12の出力データを任意の時間遅延させる機能をもつ。この例では、遅延保持回路27が、内部状態保持回路20から出力されるデータを格納しているが、リコンフィギュラブル回路12から直接出力されるデータを格納してもよい。遅延保持回路27は、制御部18からのW/Rイネーブル信号およびアドレス信号に基づいて、データの書込/読出を行う。遅延保持回路27は第2フィードバック経路29に接続されており、制御部18からの読出指示に基づいて、所期のタイミングでデータをリコンフィギュラブル回路12の入力にフィードバックさせる。なお、設定部14がコマンドメモリとして構成されている場合、コマンドメモリから供給されるコマンドデータで、遅延保持回路27のデータの書込/読出を行ってもよい。
処理装置10においては、リコンフィギュラブル回路12の出力をリコンフィギュラブル回路12の入力にフィードバックする経路が、第1フィードバック経路24および第2フィードバック経路29の2系統存在する。第1フィードバック経路24は、遅延保持回路27を介さないために、リコンフィギュラブル回路12の出力データを高速にフィードバック処理することが可能である。一方、第2フィードバック経路29は、制御部18からの指示により所期のタイミングでデータ信号をリコンフィギュラブル回路12に供給することができる。このように、第1フィードバック経路24または第2フィードバック経路29は、リコンフィギュラブル回路12上に再構成する回路に応じて適宜使い分けられる。
第1フィードバック経路24は、リコンフィギュラブル回路12の出力データを、次に構成する回路に入力するときに使われる。リコンフィギュラブル回路12の回路再構成が1クロックで実現できる場合、第1フィードバック経路24を使用することで、連続したクロックでリコンフィギュラブル回路12の出力を逐次フィードバックし、所望の回路演算を実行することができる。第2フィードバック経路29は、遅延保持回路27での最小読出遅延を1クロックとすると、2クロック後以降に構成する回路にデータを供給するときに使われる。これにより、リコンフィギュラブル回路12上で回路の再構成を繰り返しながら、所定のタイミングで遅延保持回路27からデータをリコンフィギュラブル回路12の入力に供給することができる。
リコンフィギュラブル回路12は、機能の変更が可能な論理回路を有して構成される。複数の論理回路は、マトリックス状に配置された構造をとってもよい。各論理回路の機能と、論理回路間の接続関係は、設定部14により供給される設定データ40に基づいて設定される。設定データ40は、以下の手順で生成される。
集積回路装置26により実現されるべきプログラム36が、記憶部34に保持されている。プログラム36は、回路における処理の動作を記述した動作記述を示し、信号処理回路または信号処理アルゴリズムなどをC言語などの高級言語で記述したものである。コンパイル部30は、記憶部34に格納されたプログラム36をコンパイルし、データフローグラフ(DFG)38に変換して記憶部34に格納する。データフローグラフ38は、回路における演算間の実行順序の依存関係を表現し、入力変数および定数の演算の流れをグラフ構造で示したものである。一般に、データフローグラフ38は、上から下に向かって演算が進むように作成される。
設定データ生成部32は、データフローグラフ38から設定データ40を生成する。設定データ40は、データフローグラフ38をリコンフィギュラブル回路12にマッピングするためのデータであり、リコンフィギュラブル回路12における論理回路の機能や論理回路間の接続関係を定める。設定データ生成部32が、1つの生成すべき回路を分割してできる複数の回路の設定データ40を生成してもよい。
図2は、1つの生成すべきターゲット回路42を分割してできる複数の回路の設定データ40について説明するための図である。1つのターゲット回路42を分割して生成される回路を、「分割回路」と呼ぶ。この例では、1つのターゲット回路42が、4つの分割回路、すなわち分割回路A、分割回路B、分割回路C、分割回路Dに分割されている。ターゲット回路42は、データフローグラフ38における演算の流れにしたがって分割される。データフローグラフ38において、上から下に向かう方向に演算の流れが表現される場合、そのデータフローグラフ38を上から所定の間隔で切り取り、その切り取った部分を分割回路として設定する。流れにしたがって切り取る間隔は、リコンフィギュラブル回路12における論理回路の段数以下に定められる。ターゲット回路42は、データフローグラフ38の横方向で分割されてもよい。横方向に分割する幅は、リコンフィギュラブル回路12における論理回路の1段当たりの個数以下に定められる。
特に、生成すべきターゲット回路42がリコンフィギュラブル回路12よりも大きい場合に、設定データ生成部32は、リコンフィギュラブル回路12にマッピングできる大きさになるように、ターゲット回路42を分割することが好ましい。設定データ生成部32は、リコンフィギュラブル回路12における論理回路の配列構造とデータフローグラフ38によって、ターゲット回路42の分割方法を定める。リコンフィギュラブル回路12の配列構造は、制御部18から設定データ生成部32に伝えられてもよく、また予め記憶部34に記録されていてもよい。また、制御部18が、ターゲット回路42の分割方法を設定データ生成部32に指示してもよい。
以上の手順を実行することにより、記憶部34は、リコンフィギュラブル回路12を所期の回路として構成するための複数の設定データ40を記憶する。複数の設定データ40は、分割回路Aを構成するための設定データ40a、分割回路Bを構成するための設定データ40b、分割回路Cを構成するための設定データ40c、および分割回路Dを構成するための設定データ40dである。既述のごとく、複数の設定データ40は、1つのターゲット回路42を分割した複数の分割回路をそれぞれ表現したものである。このように、リコンフィギュラブル回路12の回路規模に応じて、生成すべきターゲット回路42の設定データ40を生成することにより、汎用性の高い処理装置10を実現することが可能となる。別の視点からみると、実施の形態1の処理装置10によれば、回路規模の小さいリコンフィギュラブル回路12を用いて、所望の回路を再構成することが可能となる。
図1に戻って、本実施の形態において、第2フィードバック経路29には、マルチプレクサ部(MUX)25が設けられている。マルチプレクサ部25は、遅延保持回路27の複数のRAMからの出力データを選択的にリコンフィギュラブル回路12の論理回路に供給する機能を有する。
リコンフィギュラブル回路12の論理回路は、変数ないしは定数を用いた演算を行う。加算や乗算は、その典型的な例である。したがって、リコンフィギュラブル回路12の出力データを、次回以降に再構成するリコンフィギュラブル回路12における変数として使用する場面が度々発生する。図1に示す処理装置10においては、リコンフィギュラブル回路12の出力データが、第1フィードバック経路24と第2フィードバック経路29の2系統により供給されており、この2系統で供給される全てのデータをリコンフィギュラブル回路12の各論理回路に入力することも可能である。これにより、論理回路はフィードバックされた演算に必要なデータを直接取得することができ、所期の演算処理を実行することができる。
しかしながら、全てのデータを、例えば第1段の全論理回路に入力すると、配線に必要な面積が非常に大きくなり、集積回路装置26の回路規模の縮小化が図れないという問題がある。回路規模の縮小化は、実装面積の問題だけでなく、消費電力を削減にもつながることから、集積回路技術における重要な課題の一つであり、それは、本実施の形態で示す集積回路装置26にとっても例外ではない。以上の理由から、本実施の形態の処理装置10では、第1フィードバック経路24による出力データ数を制限し、第2フィードバック経路29にマルチプレクサ部25を設けることで、回路規模の縮小化を図っている。
図3は、実施の形態1におけるリコンフィギュラブル回路12およびその周辺回路を示す。リコンフィギュラブル回路12は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を任意に設定可能な接続部52とを備える。リコンフィギュラブル回路12では、論理回路の多段配列構造により、上段から下段に向かって演算が進められる。なお、本明細書および特許請求の範囲において「多段」とは、複数の段を意味する。
リコンフィギュラブル回路12は、論理回路としてALU(Arithmetic Logic Unit)を有している。ALUは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる。各ALUは、複数の演算機能を設定するためのセレクタを有して構成されている。
リコンフィギュラブル回路12は、横方向にY個、縦方向にX個のALUが配置されたX段Y列のALUアレイとして構成される。ここでは、縦方向に3個、横方向に6個のALUが配置された3段6列のALUアレイを示している。リコンフィギュラブル回路12は、入力回路51、接続部52およびALU列53を備える。ALU列53は複数段に設けられ、接続部52は前後段のALU列53の間に設けられて、前段のALUの出力と後段のALUの入力の接続関係を設定する。
図3に示す例では、第1段のALU列53aと第2段のALU列53bの間に、第2段を構成する接続部52bが設けられ、第2段のALU列53bと第3段のALU列53cの間に、第3段を構成する接続部52cが設けられる。なお、第1段を構成する接続部52aは、前後段のALU列53の間に設けられるのではなく、前段の入力回路51と第1段のALU列53aとの間に設けられる。
第1段のALU11、ALU12、・・・、ALU16には、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第2段の接続部52bに設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU26に入力される。第2段の接続部52bにおいては、第1段のALU列53aの出力と第2段のALU列53bの入力の間で任意の接続関係、あるいは予め定められた接続関係の組合せの中から選択された接続関係を実現できるように接続用結線が構成されており、設定により所期の結線が有効となる。第2段のALU21、ALU22、・・・、ALU26には、ALU列53aの出力が入力され、設定された所定の演算がなされる。演算結果の出力は、第3段の接続部52cの接続用結線において設定された接続にしたがって、第3段のALU31、ALU32、・・・、ALU36に入力される。
最終段となる第3段のALU列53cからの出力データは、内部状態保持回路20に出力される。内部状態保持回路20は、出力データを入力回路51および遅延保持回路27に供給する。遅延保持回路27は、内部状態保持回路20から受け取った出力データを任意の時間遅延し、入力回路51に供給する。既述したように、内部状態保持回路20はDFFを有して構成され、遅延保持回路27はRAMを有して構成される。
入力回路51におけるSW(スイッチ)1、接続部52におけるSW(スイッチ)2、内部状態保持回路20におけるDFF、遅延保持回路27におけるRAMは、ALU列53の各列に対応して設けられ、したがってこの例では、それぞれが6個ずつ設けられる。
入力回路51は、外部入力、第1フィードバック経路24より供給される出力データ、第2フィードバック経路29より供給される出力データを受け付け、所期のデータを選択して、接続部52aに供給する。ここで、第1フィードバック経路24によりALU列53aの各ALUに供給される出力データは、その数を制限することが好ましい。すなわち、各ALUに供給される出力データ数は、ALU列53cの全体の出力数(6個)よりも少ない数であることが好ましい。出力数を制限することで、SW1の規模を小さくできるとともに、第1フィードバック経路24の配線面積を縮小することができる。
この場合、各SW1に供給される変数の数を限定することで、第1段の各ALU53aに供給される変数の数が限定されることになる。第1段のいずれかのALUにおいて、外部入力、第1フィードバック経路24の出力、第2フィードバック経路29の3種類の出力の任意の組合せを可能とするために、第2フィードバック経路29にマルチプレクサ部25を設け、マルチプレクサ部25が、遅延保持回路27の出力を選択的に入力回路51のSW1に供給する。第1フィードバック経路24の各ALUに対する出力に制限をかけることで、回路規模を縮小できるとともに、第2フィードバック経路29にマルチプレクサ部25を設けることで、回路規模を小さく維持しながら、定数および変数の任意の組合せを論理回路の入力に供給することが可能となる。
図4は、入力回路51のSW1に入力されるデータを示す。ALUは、a端子およびb端子の2入力を有して構成される。図3では、1つのALUに対して1つのSW1およびSW2を示しているが、ALUが2入力を有する場合には、ALUに対応するSW1およびSW2は、2つずつ存在する。したがってSW1およびSW2は、全体で12個存在することになる。図4において、ALU11に関して例示するように、ALU11のa端子に対してSW1aおよびSW2aが設けられ、b端子に対してSW1bおよびSW2bが設けられる。マルチプレクサ部25は、各SW1に対して設けられた複数のマルチプレクさを備える。マルチプレクサは、全体で12個存在する。なお、第1段のALU11以外のALUに関しては図示を省略している。
SW1aは、SW2aに対して、外部入力、フィードバック経路24の出力、フィードバック経路29の出力のいずれかを出力する。同様に、SW1bは、SW2bに対して、外部入力、フィードバック経路24の出力、フィードバック経路29の出力のいずれかを出力する。RAMの出力データは、マルチプレクサ部25により選択されて、ALUに対して設けられたSW1に供給される。各マルチプレクサには6つのRAMからの出力データが入力され、したがってマルチプレクサは、6:1マルチプレクサとして機能する。
この例では、n番目のDFFの出力が、n番目のALUに供給されている。すなわち、n番目のALUに対して設けられるSW1に、n番目のDFFの出力しか入力させないことで、SW1に対して全てのDFF出力を入力させる場合と比較して、SW1の回路規模を小さくすることができる。また、各ALUに対しては、RAMからの出力を選択的に供給することができるため、DFF出力とRAM出力の任意の組合せを実現することができる。これにより、回路規模を抑えつつ、ALUアレイの処理能力を向上することが可能となる。
(実施の形態2)
実施の形態1では、マルチプレクサを用いて回路規模を抑えつつ、ALUアレイの処理能力を向上する処理装置10について説明した。実施の形態2においても、同一または同様の目的を達成する処理装置10について説明する。なお、実施の形態2における処理装置10に、実施の形態1で説明した出力データの制限とマルチプレクサとの組合せを利用することで、この目的を一層効果的に実現することができる。
実施の形態2における処理装置10を説明する前に、データフローグラフ(DFG)の処理に際して回路再構成の高速性が阻害される状況について説明する。
図5は、DFGの1例を示す。このDFGは6段で構成されるため、3段6列のリコンフィギュラブル回路12を使用した場合には、3段ずつ2クロックで処理されることが可能であることが好ましい。リコンフィギュラブル回路12は、図3に示したものを想定する。図中、“+”は加算を示し、“−”は減算を示し、“>>2”は2ビットの右シフトを示し、“nop”はスルー用のパスを示し、何の演算も行わない。
ここでDFGにおいて、第2段1番右側の加算(add2_6とする)の1入力に、第2フィードバック経路29からの出力データが必要な場合を想定する。リコンフィギュラブル回路12では、第1段のALUに未使用のものがあれば、そのALUから第2フィードバック経路29の出力データをadd2_6に供給することができる。
しかしながら、1クロック目において、第1段のALUは全て演算に使用されているため、第1段のALUから第2フィードバック経路29の出力データをadd2_6に供給することができず、結果として1クロック目にadd2_6をマッピングすることができない。
図6は、リコンフィギュラブル回路12の構造に合わせて、図5に示すDFGを再作成したものを示す。図示のように、add2_6は、第2フィードバック経路29の出力データを受け取るために、2クロック目の1段目のALUにマッピングされる。その結果、このDFGのマッピング処理に3クロックが要されることになる。DFGは、1回あたりにリコンフィギュラブル回路12で生成される回路規模に応じて切り分けられるため、結果として3つのDFGが作成されることになる。そのため、図5に示す本来のDFGと比較すると、DFGの作成処理に手間がかかり、処理時間も長くなることになる。
図7は、実施の形態2におけるリコンフィギュラブル回路12およびその周辺回路を示す。リコンフィギュラブル回路12は、ALUの多段配列と、ALU列53間の前後方向の接続関係を設定する接続部52とを備える。リコンフィギュラブル回路12は、図3に関連して説明したリコンフィギュラブル回路12と同一または同様の構成および機能を有している。なお、図7に示すリコンフィギュラブル回路12は入力回路51を有しておらず、リコンフィギュラブル回路12への入力は第1段の接続部52aに対して行われる。
図7に示すリコンフィギュラブル回路12において、最上段のALU列53aには、第1フィードバック経路24を介して内部状態保持回路20からリコンフィギュラブル回路12の出力データが供給される。これに加えて、ALU列53aには、接続部52aに接続された入力経路60aから、遅延保持回路27に保持されたリコンフィギュラブル回路12の出力データないしは外部入力が供給される。遅延保持回路27の出力データは、第2フィードバック経路29を介してマルチプレクサ部25に供給され、第1マルチプレクサ群25aで選択されて、入力経路60aから接続部52aに与えられる。
第2段のALU列53bには、接続部52bに接続された入力経路60bから、遅延保持回路27に保持されたリコンフィギュラブル回路12の出力データないしは外部入力が供給される。遅延保持回路27の出力データは、第2フィードバック経路29を介してマルチプレクサ部25に供給され、第2マルチプレクサ群25bで選択されて、入力経路60bから接続部52bに与えられる。同様に、第3段のALU列53cには、接続部52cに接続された入力経路60cから、遅延保持回路27に保持されたリコンフィギュラブル回路12の出力データないしは外部入力が供給される。遅延保持回路27の出力データは、第2フィードバック経路29を介してマルチプレクサ部25に供給され、第3マルチプレクサ群25cで選択されて、入力経路60cから接続部52cに与えられる。既述したように、遅延保持回路27の出力データは、最終段のALU列53cの出力データに対応する。ここで、第2フィードバック経路29から入力経路60により構成される経路の全体を、リコンフィギュラブル回路12の出力をALUに入力可能な入力経路と呼んでもよい。
ALU列53へのデータの直接入力を可能とするために、接続部52は、入力経路60から供給されるデータを、ALU列の所期のALUに与えるべく、入力経路60とALUとを結線する機能をもつ。接続部52は、ALU間を接続する接続用結線とは別に、入力経路60から供給されるデータをALUに入力可能な入力用結線を備えている。これにより、ALUは入力経路60からデータを受け取ることができ、所期の演算処理を実行することが可能となる。
このように、実施の形態2における処理装置10では、途中段すなわち第2段以降のALU列53に対して、リコンフィギュラブル回路12の出力データを入力可能な入力経路60が設けられる。図示の例では、途中段のALU列は、第2段のALU列53bおよび第3段のALU列53cに相当し、これらのALU列に対応する接続部52bおよび52cに入力経路60bおよび60cが接続される。これにより、第2フィードバック経路29を通じて供給されるリコンフィギュラブル回路12の出力データを、リコンフィギュラブル回路12における途中段のALU列に入力することが可能となる。
マルチプレクサ部25は、3段のALU列に対応する3つのマルチプレクサ群25a、25b、25cを有する。各マルチプレクサ群25a、25b、25cは、それぞれ4つのマルチプレクサを有し、したがってマルチプレクサ部25は、12個のマルチプレクサを有している。各マルチプレクサには、1つの外部入力データと、遅延保持回路27の6つのRAMからの出力データを供給される。各マルチプレクサは、計7つのデータから1つのデータを選択して出力する7:1マルチプレクサの機能を有している。
遅延保持回路27を経由しない最終段ALU列53cからの出力データ、すなわち内部状態保持回路20からの出力データは、第1フィードバック経路24を介して第1段のALU列53aのみに入力される。図4に関連して説明したように、各ALUに対して内部状態保持回路20からの出力データは、その数を制限されることが好ましい。これにより、第1段の接続部52aにおけるスイッチの回路規模の縮小化を図ることができる。さらに、マルチプレクサによりRAM出力データを選択的にALUに供給することで、処理装置10の処理能力を向上することができる。
途中段の入力について説明すると、各ALU列53b、53cは6つのALUを備えて構成されているが、各接続部52b、52cに接続される入力経路60b、60cの数は4つに制限される。途中入力に制限を設けない場合、マルチプレクサ部25の回路規模が大きくなり、また接続部52b、52cの回路規模も大きくなるため、途中入力の数を制限することによって、回路規模の縮小化を図っている。これは、同段に配置された6つのALUのうち、5つ以上のALUが遅延保持回路27の出力データを必要とする確率が低いという発明者の知見に基づいている。
仮に、5つ以上のALUが遅延保持回路27の出力データを必要とする場合には、入力経路60を通じて1段のALUに4つの出力データを供給し、残りの出力データを、入力経路60を通じて下段のALUに供給することで、処理を継続することができる。この場合、DFGが大きくなり、処理時間が増える可能性はあるが、その確率が大きくないことを鑑みると、処理高速性の厳密な追求よりも回路規模の削減を図る方が、全体としてのメリットが大きい。実施の形態2では、途中入力を可能とすることで処理高速性を実現しつつ、さらに途中入力の数を制限することで回路規模の縮小化を可能とする処理装置10を提供する。なお、以上は途中入力についてのみ説明したが、最上段の接続部52aへの入力経路60aについても同様であり、入力数を制限することで、回路規模の削減を実現できる。
このように実施の形態2では、入力経路60を、データを入力する段に含まれるALUの数よりも少ない数のデータを入力するように構成することで、処理高速性と回路規模の縮小化とを同時に実現できる処理装置10を提供できる。
図8は、図5に示したDFGを示す。実施の形態2における処理装置10を用いてこのDFGを処理すると、第2段第6列目のadd2_6に対して、RAM出力を途中入力することができる。これにより、1クロック目において、この加算処理を、ALU26で実行することができ、結果として、このDFGを2クロックで処理することができる。
図6のDFGと比較すると、図6のDFGはマッピングに3クロック要するのに対し、図8のDFGは、実施の形態2のリコンフィギュラブル回路12へのマッピングに2クロックしか必要としない。図6のDFGと図8のDFGは、同一の回路を表現するものであるが、実施の形態2の処理装置10を用いることにより、3クロックかかっていた処理を2クロックで処理することが可能となる。これは、単純に処理速度が1.5倍にアップしたことに相当し、処理の高速性が実現できていることを示す。また、DFGの数を削減することも可能であり、回路規模の削減および低消費電力化ができる。
図9は、実施の形態2におけるリコンフィギュラブル回路12およびその周辺回路の別の例を示す。図7に示す処理装置10と比較すると、図9に示す処理装置10では、内部状態保持回路20からの出力データが、第1フィードバック経路24を介してマルチプレクサ部25に供給されている。他の構成の動作および機能は、実質的に図7に示す処理装置10と同様である。第1フィードバック経路24から入力経路60により構成される経路の全体を、リコンフィギュラブル回路12の出力をALUに入力可能な入力経路と呼んでもよい。
マルチプレクサ部25における各マルチプレクサは、1つの外部入力データ、遅延保持回路27の6つのRAMからの出力データ、内部状態保持回路20からの1つのDFFからの出力データを供給され、計8つのデータから1つのデータを選択して出力する。したがって、各マルチプレクサは、8:1マルチプレクサの機能を有している。このように、外部入力データ、RAM出力データ、DFF出力データとを選択的にALUに供給することで、単独でそれぞれ供給する場合と比べて、回路規模を削減することができる。
なお、各段への入力経路60の数は4つに制限されているため、内部状態保持回路20は、各段に対して最大で4つまでの出力データしか供給することができない。そのため、内部状態保持回路20の6つの出力データの全てがリコンフィギュラブル回路12に供給可能とされるように、第1フィードバック経路24および入力経路60が構成されるのが好ましい。
この例では、第1マルチプレクサ群25aに対して出力データ1〜4が、第2マルチプレクサ群25bに対して出力データ2〜5が、第3マルチプレクサ群25cに対して出力データ3〜6が供給される。これにより、出力データ1〜6がリコンフィギュラブル回路12に供給可能となる。最上段への入力と、途中段への入力とを分けて考えると、リコンフィギュラブル回路12の出力データの全てがリコンフィギュラブル回路12に供給可能とされるように、最上段のALU列53aに出力データを入力可能とする入力経路60aと協同して、途中段のALU列53b、53cに出力データを入力可能とする入力経路60b、60cが構成されている。なお、ここでいう入力経路60a、60b、60cは、第1フィードバック経路24までも含めた経路と考えてよい。
図10は、4つの途中入力が各段のALU列に入力される範囲を示す。入力経路60_1は1番目の入力経路を、入力経路60_2は2番目の入力経路を、入力経路60_3は3番目の入力経路を、入力経路60_4は4番目の入力経路を示す。
図示のように、接続部52は、4つの入力経路60から入力された複数のデータをそれぞれ供給可能とするALUの範囲を、入力するデータごとにそれぞれ異なるように設定している。これは、入力経路60に対応付けて、接続部52における入力用結線を形成することで実現される。接続部52はこの範囲を、1段に含まれる複数のALUのうち一方の端部に配置されたALU1から他方の端部に配置されたALU6にかけて徐々にずらして設定している。すなわち、1番目の入力経路60_1のデータは、ALU1〜ALU3の範囲に存在するALUに供給可能とされる。同様に、2番目の入力経路60_2のデータは、ALU2〜ALU4の範囲に存在するALUに供給可能とされ、3番目の入力経路60_3のデータは、ALU3〜ALU5の範囲に存在するALUに供給可能とされ、4番目の入力経路60_4のデータは、ALU4〜ALU6の範囲に存在するALUに供給可能とされる。このように、ALU1からALU6までの間で、データを供給可能とする範囲を徐々にずらしていくことにより、入力用結線の回路規模を抑えつつ、各データをALUに万遍なく割り振ることができる。
図9に戻って、第1マルチプレクサ群25aでは、内部状態保持回路20におけるDFF1、DFF2、DFF3、DFF4からの出力データ1〜4が、それぞれ各マルチプレクサに供給される。図10に示した割り当てに基づいて、DFF1の出力データ1は、ALU11〜ALU13の範囲に供給可能である。同様に、DFF2の出力データ2は、ALU12〜ALU14の範囲に供給可能であり、DFF3の出力データ3は、ALU13〜ALU15の範囲に供給可能であり、DFF4の出力データ4は、ALU14〜ALU16の範囲に供給可能である。
第2マルチプレクサ群25bでは、内部状態保持回路20におけるDFF2、DFF3、DFF4、FDF5からの出力データ2〜5が、それぞれ各マルチプレクサに供給される。図10に示した割り当てに基づいて、DFF2の出力データ2は、ALU21〜ALU23の範囲に供給可能である。同様に、DFF3の出力データ3は、ALU22〜ALU24の範囲に供給可能であり、DFF4の出力データ4は、ALU23〜ALU25の範囲に供給可能であり、DFF5の出力データ5は、ALU24〜ALU26の範囲に供給可能である。
第3マルチプレクサ群25cでは、内部状態保持回路20におけるDFF3、DFF4、DFF5、FDF6からの出力データ3〜6が、それぞれ各マルチプレクサに供給される。図10に示した割り当てに基づいて、DFF3の出力データ3は、ALU31〜ALU33の範囲に供給可能である。同様に、DFF4の出力データ4は、ALU32〜ALU34の範囲に供給可能であり、DFF5の出力データ5は、ALU33〜ALU35の範囲に供給可能であり、DFF6の出力データ6は、ALU34〜ALU36の範囲に供給可能である。
このように、DFFの出力データを供給可能なALUの範囲を制限することによって、接続部52の入力用結線を単純化することができ、接続部52の回路規模を削減できる。
なお、入力経路60からデータを供給可能とするALUの範囲は、入力経路60から供給されるデータに対応して設定されることが好ましい。各ALUの出力は、一般に同列に位置するDFFまたはその近傍のDFFに伝達されることが多く、したがって、各ALUは、DFGにしたがった演算処理の過程で、同列または同列近傍のDFFからの出力を必要とする傾向がある。したがって、入力経路60からデータを供給可能とするALUの範囲は、そのデータを出力したDFFと同列または同列近傍の位置するALUの範囲に設定されることが好ましい。
なお、図10の例では、データを供給する範囲を均等に徐々にずらしていくことにより、各ALUがデータを受け取れるようにしているが、ALU列53における一方の端部付近に位置するALUがデータを受け取りやすくしてもよい。DFGを作成すると、DFGにおける演算処理が、左右方向の一方、例えば左側に片寄って実行される傾向がある。したがって、ALU列53において左側に位置するALUがデータを受け取れる確率を高くすることで、DFGの構成に合わせたALUの範囲設定を実現できる。また、接続部52における入力用結線の制限は、入力経路60からの途中入力が制限されている場合に限らず、途中入力が制限されていない場合でも有効である。
図11は、実施の形態2におけるリコンフィギュラブル回路12およびその周辺回路の別の例を示す。図9に示す処理装置10と比較すると、図11に示す処理装置10では、マルチプレクサ部25に入力する内部状態保持回路20のDFFからのデータ量をさらに制限している。
各マルチプレクサ群25a、25b、25cにおいて、DFF出力は、1番目と4番目のマルチプレクサに供給され、2番目と3番目のマルチプレクサには供給されない。これにより、2番目と3番目のマルチプレクサを、7:1マルチプレクサで構成することができ、マルチプレクサ部25の回路規模をさらに縮小できる。
なお、図10に示したALU範囲の割り当て手法を、図11の処理装置10においても利用することができる。第1マルチプレクサ群25aでは、内部状態保持回路20におけるDFF1、DFF2からの出力データが、1番目と4番目のマルチプレクサに供給される。図10に示した割り当て手法に基づいて、DFF1の出力データは、ALU11〜ALU13の範囲に供給可能である。同様に、DFF2の出力データは、ALU14〜ALU16の範囲に供給可能である。
第2マルチプレクサ群25bでは、内部状態保持回路20におけるDFF3、DFF4からの出力データが、1番目と4番目のマルチプレクサに供給される。図10に示した割り当て手法に基づいて、DFF3の出力データは、ALU21〜ALU23の範囲に供給可能である。同様に、DFF4の出力データは、ALU24〜ALU26の範囲に供給可能である。
第3マルチプレクサ群25cでは、内部状態保持回路20におけるDFF5、DFF6からの出力データが、1番目と4番目のマルチプレクサに供給される。図10に示した割り当て手法に基づいて、DFF5の出力データは、ALU31〜ALU33の範囲に供給可能である。同様に、DFF6の出力データは、ALU34〜ALU36の範囲に供給可能である。
このように、DFFの出力データを供給可能なALUの範囲を制限することによって、接続部52の入力用結線を単純化することができ、回路規模を小さくできる。さらに、全てのDFFの出力データを、いずれかの段のALU列53に供給することで、いずれかの段にてDFFの出力データを使用することが可能となる。
図12は、DFGの1例を示す。このDFGは6段で構成されるため、3段6列のリコンフィギュラブル回路12で使用した場合には、3段ずつ2クロックで処理することが可能であることが好ましい。1クロック目のDFGの上3段は図5などで示したDFGの上3段と同一である。第2段1番右側の加算は、既述したように第2フィードバック経路29からの途中入力により対応できる。ここで2クロック目のDFGにおいて、第3段4列目の出力データを、第5段5列目の加算で利用したい場合を想定する。第1フィードバック経路24からの途中入力がない場合、第3段4列目から出力されるデータは、第4段における演算により使用されるため、第3段4列目の出力データを第5段に供給することはできない。
図13は、図12に示すDFGを再構成したものを示す。図示のように、第4段4列目の2ビットシフトの演算を1段下にずらすことで、図12に示すDFGをリコンフィギュラブル回路12にマッピングすることが可能となる。しかしながら、その結果、このDFGのマッピング処理に3クロックが要されることになる。DFGは、1回あたりにリコンフィギュラブル回路12で生成される回路規模に応じて切り分けられるため、結果として3つのDFGが作成されることになる。そのため、図12に示す本来のDFGと比較すると、DFGの作成処理に手間がかかり、処理時間も長くなることになる。
図14は、図12に示したDFGを示す。図9に示した処理装置10を用いてこのDFGを処理すると、第1フィードバック経路24からの途中入力が可能であるため、第3段4列目から出力されるデータを第5段5列目の加算演算に途中入力することができる。これにより、2クロック目において、この加算処理は、ALU25で実行することができ、結果として、このDFGを2クロックで処理することができる。
図13のDFGと比較すると、図13のDFGはマッピングに3クロック要するのに対し、図14のDFGは、マッピングに2クロックしか必要としない。図13のDFGと図14のDFGは、同一の回路を表現するものであるが、図9に示す処理装置10を用いることにより、3クロックかかっていた処理を2クロックで処理することが可能となる。これは、単純に処理速度が1.5倍にアップしたことに相当し、処理の高速性が実現できていることを示す。このように、第1フィードバック経路24と第2フィードバック経路29の双方のデータの途中入力を可能とすることにより、処理装置10の高機能化を実現することができる。また、DFG数を減らすことにより、1つの回路で多くの処理ができ、回路規模削減および低消費電力化が可能となる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施の形態2において、リコンフィギュラブル回路12の出力は最終段のALU列53cからなされているが、出力は、第1段のALU列53aからなされてもよく、また第2段のALU列53bからなされてもよい。
また、図9および図11に示す処理装置10では、第1フィードバック経路24のマルチプレクサ部25への入力数を制限しているが、第2フィードバック経路29の入力数を制限してもよい。
さらに、実施の形態では、マルチプレクサ部25を第2フィードバック経路29に配置しているが、第1フィードバック経路24に配置してもよい。
例えば、リコンフィギュラブル回路12におけるALUの配列は、縦方向にのみ接続を許した多段配列に限らず、横方向の接続も許した、メッシュ状の配列であってもよい。また、上記の説明では、段を飛ばして論理回路を接続する接続用結線は設けられていないが、このような段を飛ばす接続用結線を設ける構成としてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10・・・処理装置、12・・・リコンフィギュラブル回路、18・・・制御部、20・・・内部状態保持回路、24・・・第1フィードバック経路、25・・・マルチプレクサ部、26・・・集積回路装置、27・・・遅延保持回路、29・・・第2フィードバック経路、51・・・入力回路、52・・・接続部、53・・・ALU列、60・・・入力経路。