多重化用補助PEおよび半導体集積回路
【課題】使用するPE数を削減して回路面積の低減およびPEの効率的な利用を行うことのできる多重化用補助PEおよび半導体集積回路の提供を図る。
【解決手段】入力側に設けられた複数の上流PE11〜16からの信号を受け取って、多重化して使用される多重化PE3に対して上流PEからの信号を供給して所定の処理を行わせ、多重化PEによる所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PE41〜43に順次供給する多重化用補助PEであって、複数の上流PEの動作と、対応する複数の下流PEへの処理済信号の供給とを多重化用補助PEの設定により同期させて行い、複数の上流PEのうちの幾つかは、一対の複数組のPEであり、多重化PEに対して、各組の上流PEからの信号に対する所定の処理を行わせ、各組の処理済信号を当該組の上流PEに対応する下流PEに供給するように構成する。
【解決手段】入力側に設けられた複数の上流PE11〜16からの信号を受け取って、多重化して使用される多重化PE3に対して上流PEからの信号を供給して所定の処理を行わせ、多重化PEによる所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PE41〜43に順次供給する多重化用補助PEであって、複数の上流PEの動作と、対応する複数の下流PEへの処理済信号の供給とを多重化用補助PEの設定により同期させて行い、複数の上流PEのうちの幾つかは、一対の複数組のPEであり、多重化PEに対して、各組の上流PEからの信号に対する所定の処理を行わせ、各組の処理済信号を当該組の上流PEに対応する下流PEに供給するように構成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多重化用補助PEおよび半導体集積回路に関する。
【背景技術】
【0002】
近年、並列演算によりASIC並みの性能をDSP同様のプログラム設計で簡単に実現できるダイナミックリコンフィギュラブル回路(Dynamic Reconfigurable Circuit:動的再構成可能な回路;半導体集積回路)が注目されている。
【0003】
動的再構成可能な回路は、演算,データの記憶や流れの制御,プログラムの流れ制御などを行う要素(PE:Processing Element),コンフィグレーションメモリおよびシーケンサーを有する。
【0004】
コンフィグレーションメモリは、PEの動作を表すコンフィグレーションを記憶し、また、シーケンサーは、動的再構成可能な回路を制御する。
【0005】
この動的再構成可能な回路の特徴として、コンフィグレーションを高速に切り替えることにより、PEを有効に再利用できることが挙げられる。
【0006】
ところで、従来、動的再構成可能な回路として、コンフィグレーションを高速に切り替えてPEを有効に再利用することを実現する様々な提案がなされている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−123563号公報
【特許文献2】特開2006−018539号公報
【特許文献3】特開2007−241830号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来、コンフィグレーションを高速に切り替えてPEを有効に再利用するものとして、DRP(Dynamically Reconfigurable Processor)方式、および、細分化コンテキスト切り替え方式が研究・開発されている。
【0009】
DRP方式では、1つのコンフィグレーション中で使用できるPE数は、物理的なPE数までとなる。また、細分化コンテキスト切り替え方式では、1つの仮想コンフィグレーションを用いることで、仮想的に使用できるPE数を増やすことができる。
【0010】
一方、どちらの方式でも、1つのコンフィグレーション内でRAM(Random Access Memory)・PEに複数回アクセスする場合等において、一般的には入力段に合流用PEを用いる必要があった。
【0011】
また、RAM・PEから読み出す場合等には、出力段にゲートPEを用いる必要があり、さらに、出力段のゲートタイミングを作るためのPEも用意する必要があった。
【課題を解決するための手段】
【0012】
本発明の一実施形態によれば、入力側に設けられた複数の上流PEからの信号を受け取って、多重化して使用される多重化PEに対して前記上流PEからの信号を供給して所定の処理を行わせる多重化用補助PEが提供される。
【0013】
前記多重化用補助PEは、前記多重化PEによる前記所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PEに順次供給する。
【0014】
前記複数の上流PEの動作と、対応する前記複数の下流PEへの前記処理済信号の供給とは、前記多重化用補助PEの設定により同期させて行う。
【0015】
前記複数の上流PEのうちの幾つかは、一対の複数組のPEであり、前記多重化PEに対して、前記各組の上流PEからの信号に対する前記所定の処理を行わせ、前記各組の処理済信号を当該組の上流PEに対応する前記下流PEに供給するようになっている。
【発明の効果】
【0016】
開示の多重化用補助PEおよび半導体集積回路は、使用するPE数を削減して回路面積の低減の効果を奏し、PEの効率的な利用を行うことができる。
【図面の簡単な説明】
【0017】
【図1】半導体集積回路の一例を概略的に示すブロック図である。
【図2】図1に示す半導体集積回路の動作の一例を説明するための図(その1)である。
【図3】図1に示す半導体集積回路の動作の一例を説明するための図(その2)である。
【図4】図1に示す半導体集積回路の動作の一例を説明するための図(その3)である。
【図5】図1に示す半導体集積回路の動作の一例を説明するための図(その4)である。
【図6】図1に示す半導体集積回路の動作の一例を説明するための図(その5)である。
【図7】図1に示す半導体集積回路における合流用PEの一例を示すブロック図である。
【図8】図1に示す半導体集積回路におけるゲートPEの一例を示すブロック図である。
【図9】図1に示す半導体集積回路におけるタイミング用PEの一例を示すブロック図である。
【図10】半導体集積回路の他の例を概略的に示すブロック図である。
【図11】図10に示す半導体集積回路の動作の一例を説明するための図(その1)である。
【図12】図10に示す半導体集積回路の動作の一例を説明するための図(その2)である。
【図13】図10に示す半導体集積回路の動作の一例を説明するための図(その3)である。
【図14】図10に示す半導体集積回路の動作の一例を説明するための図(その4)である。
【図15】図10に示す半導体集積回路の動作の一例を説明するための図(その5)である。
【図16】図10に示す半導体集積回路の動作の一例を説明するための図(その6)である。
【図17】図10に示す半導体集積回路の動作の一例を説明するための図(その7)である。
【図18】第1実施例の半導体集積回路を概略的に示すブロック図である。
【図19】図18に示す半導体集積回路における多重化用補助PEの一例を示すブロック図である。
【図20】図19に示す多重化用補助PEの動作の一例を説明するための図(その1)である。
【図21】図19に示す多重化用補助PEの動作の一例を説明するための図(その2)である。
【図22】図19に示す多重化用補助PEの動作の一例を説明するための図(その3)である。
【図23】図19に示す多重化用補助PEの動作の一例を説明するための図(その4)である。
【図24】図19に示す多重化用補助PEの動作の一例を説明するための図(その5)である。
【図25】図19に示す多重化用補助PEの動作の他の例を説明するための図(その1)である。
【図26】図19に示す多重化用補助PEの動作の他の例を説明するための図(その2)である。
【図27】図19に示す多重化用補助PEの動作の他の例を説明するための図(その3)である。
【図28】図19に示す多重化用補助PEの動作の他の例を説明するための図(その4)である。
【図29】図19に示す多重化用補助PEの動作の他の例を説明するための図(その5)である。
【図30】図1に示す半導体集積回路における合流用PE〜ゲートPEまでを図19に対応させて示すブロック図(その1)である。
【図31】図1に示す半導体集積回路における合流用PE〜ゲートPEまでを図19に対応させて示すブロック図(その2)である。
【図32】第2実施例の半導体集積回路を概略的に示すブロック図である。
【図33】図32に示す半導体集積回路の動作の一例を説明するための図(その1)である。
【図34】図32に示す半導体集積回路の動作の一例を説明するための図(その2)である。
【図35】図32に示す半導体集積回路の動作の一例を説明するための図(その3)である。
【図36】図32に示す半導体集積回路の動作の一例を説明するための図(その4)である。
【図37】図32に示す半導体集積回路の動作の一例を説明するための図(その5)である。
【図38】図32に示す半導体集積回路の動作の一例を説明するための図(その6)である。
【図39】図32に示す半導体集積回路の動作の一例を説明するための図(その7)である。
【図40】図32に示す半導体集積回路の動作の一例を説明するための図(その8)である。
【図41】図32に示す半導体集積回路の動作の一例を説明するための図(その9)である。
【図42】図32に示す半導体集積回路の動作の一例を説明するための図(その10)である。
【発明を実施するための形態】
【0018】
まず、実施例を詳述する前に、半導体集積回路の例とその問題点を説明する。
【0019】
図1は半導体集積回路(動的再構成可能な回路)の一例を概略的に示すブロック図であり、3組の入力信号に対して所定のPE(Processing Element:130)を多重化して用い、結果を3つのゲートPEで選択して下流回路に流すものを示している。
【0020】
図1において、参照符号111,114;112,115および113,116は一対のペアとして使用される3組の入力側のPE(上流PE)、121および122は合流用PE、並びに、130は多重化して使用されるPEを示している。
【0021】
また、参照符号141〜143は出力側のPE(下流PE)、151〜153は出力側のゲートPE、そして、161〜163はタイミング(遅延)用PEを示している。
【0022】
ここで、第1組の入力信号はPE111および114の出力信号であり、第2組の入力信号はPE112および115の出力信号であり、そして、第3組の入力信号はPE113および116の出力信号である。
【0023】
また、合流用PE121,122は、それぞれ第1組〜第3組の入力信号において、バリッド(valid)信号が付与されているデータを多重化して使用されるPE130に流す。なお、バリッド信号は、3組の入力信号のうちのいずれか1つに付与されるか、3組の入力信号の全てに付与されないようになっている。
【0024】
図1において、多重化して使用されるPE130は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用される。
【0025】
また、入力される3組の信号は、互いに同じタイミングで合流器(合流用PE121,122)に入力されないようにタイミングが調整されているものとする。
【0026】
なお、信号が入力されたかどうかは、例えば、信号にデータが載っているかどうかを表す線(バリッド線)をチェックすることにより判定することができる。
【0027】
図2〜図6は図1に示す半導体集積回路の動作の一例を説明するための図である。
まず、図2に示されるように、クロックの1サイクル目において、第1組のPE111,114から信号が出力される。
【0028】
次に、図3に示されるように、クロックの2サイクル目において、第1組のPE111,114の出力信号は、それぞれ合流用PE121,122に取り込まれる。このとき、第2組のPE112,115から信号が出力される。
【0029】
さらに、図4に示されるように、クロックの3サイクル目において、合流用PE121,122に取り込まれた第1組のPE111,114の出力信号は、多重化して使用されるPE130に供給されて所定の処理が行われる。
【0030】
このとき、第2組のPE112,115の出力信号は、それぞれ合流用PE121,122に取り込まれ、また、第3組のPE113,116から信号が出力される。さらに、タイミング用PE161もタイミング信号を生成するために活性化される。
【0031】
その後、図5に示されるように、クロックの4サイクル目において、PE130で所定の処理が行われた第1組の出力信号(処理済信号)は、タイミング用PE161からのタイミング信号によりゲートPE151に取り込まれる。
【0032】
このとき、合流用PE121,122に取り込まれた第2組のPE112,115の出力信号は、多重化して使用されるPE130に供給されて所定の処理が行われる。
【0033】
また、第3組のPE113,116の出力信号は、それぞれ合流用PE121,122に取り込まれ、また、再び第1組のPE111,114から信号が出力される。さらに、タイミング用PE162もタイミング信号を生成するために活性化される。
【0034】
そして、図6に示されるように、クロックの5サイクル目において、ゲートPE151に取り込まれている第1組の処理済信号は、PE141に供給され、PE141によるさらなる処理が行われる。
【0035】
このとき、PE130で所定の処理が行われた第2組の処理済信号は、タイミング用PE162からのタイミング信号によりゲートPE152に取り込まれる。
【0036】
また、合流用PE121,122に取り込まれた第3組のPE113,116の出力信号は、多重化して使用されるPE130に供給されて所定の処理が行われる。
【0037】
さらに、第1組のPE111,114の出力信号は、それぞれ合流用PE121,122に取り込まれ、また、再び第2組のPE112,115から信号が出力される。さらに、タイミング用PE163もタイミング信号を生成するために活性化される。
【0038】
以上の処理を繰り返すことで、3組のPE111,114;112,115および113,116の出力信号を、多重化して使用されるPE130で順次処理して下流のPE141,142および143に流すようになっている。
【0039】
ここで、図1に示す動的再構成可能な回路において、1つの有意なデータは、1クロックの間だけ有効(バリッド)となって回路を流れ、タイミングを合わせる回路により、2つのデータを入力としてPE130で順次演算が行われる。このような回路は、例えば、パイプライン型回路と呼ばれている。
【0040】
このように、図1に示す動的再構成可能な回路においても、3組の入力信号に対してPE130を多重化して用いる回路を構成することはできる。
【0041】
しかしながら、図1の動的再構成可能な回路において、多重アクセスの多いプログラムは、処理内容は少なくても使用PE数が多いためにマッピングできなくなってしまうか、或いは、マッピングを可能にするために多数のPEを用意する必要が生じる。
【0042】
具体的に、上述したパイプライン型の動的再構成可能な回路では、2つの合流用PE121,122、3つのゲートPE151〜153、並びに、3つのタイミング用PE161〜163が必要になる。すなわち、プロセッサ130を多重化して使用するために、合計8個のPEが必要になる。
【0043】
図7〜図9は図1に示す半導体集積回路における各PEの一例を示すブロック図であり、図7は合流用PE,図8はゲートPE,そして、図9はタイミング用(遅延)PEの例を示すものである。
【0044】
図7に示されるように、合流用PE121(122)は、PE制御部1211,コンフィグレーションメモリ1212,メモリ制御部1213,コンフィグレーション分配部1214,4つの信号入力部1215a〜1215d,演算部1216および出力部1217を有する。
【0045】
図8に示されるように、ゲートPE151(152,153)は、PE制御部1511,コンフィグレーションメモリ1512,メモリ制御部1513,コンフィグレーション分配部1514,信号入力部1515,演算部1516および出力部1517を有する。
【0046】
図9に示されるように、タイミング用PE161(162,163)は、PE制御部1611,コンフィグレーションメモリ1612,メモリ制御部1613,コンフィグレーション分配部1614,信号入力部1615,演算部1616および出力部1617を有する。
【0047】
次に、上述した合流用PE121,ゲートPE151およびタイミング用PE161におけるPE制御部,コンフィグレーションメモリ,メモリ制御部,コンフィグレーション分配部,信号入力部,演算部および出力部を説明する。
【0048】
なお、例えば、各PEにおける演算部1216,1516および1516は、それらの入力信号の数はそれぞれ異なっているが、処理機能としては実質的に同様である。
【0049】
まず、PE制御部1211(1511,1611)は、動的再構成可能な回路全体を制御している制御部から、リセット,動作開始/停止,一時停止,次にどの部分を実行するか、メモリ読出/書込等の指示を制御信号として受け取り、PE内部の機能ブロックに信号を伝達する。
【0050】
コンフィグレーションメモリ1212(1512,1612)は、PEのコンフィグレーションを複数蓄えておくメモリであり、メモリ制御部1213(1513,1613)の指示に従って、読み出しおよび書き込みができるようになっている。
【0051】
メモリ制御部1213(1513,1613)は、PE制御部1211(1511,1611)からの指示を受けて動作する。すなわち、PE制御部1211からコンフィグレーションのどの部分を次に実行するかの指示を受け取った場合、コンフィグレーションメモリ1212から該当するデータを読み出してコンフィグレーション分配部1214に転送する。
【0052】
また、PE制御部1211からメモリ読出/書込のメモリアクセスの指示を受け取った場合、メモリアクセス用のポートを通じてデータをやり取りし、コンフィグレーションメモリ1212から読み出し、または、コンフィグレーションメモリ1212への書き込みを行う。
【0053】
コンフィグレーション分配部1214は、メモリ制御部1213から受け取ったコンフィグレーションデータをデコードして各機能ブロックに信号を送る。
【0054】
信号入力部1215a〜1215d(1515,1615)は、PE制御部1211(1511,1611)によってその動作が制御され、コンフィグレーション分配部1214(1514,1614)からコンフィグレーションを受け取ってPEへの入力信号を受け取るか否かを決める。入力信号を受け取ると、演算部1216(1516,1616)にデータを送る。
【0055】
演算部1216,1516,1616は、入力信号から受け取ったデータに対してコンフィグレーション分配部1214,1514,1614から指示された演算を施す。なお、演算の内容は、PE毎に異なる。
【0056】
具体的に、例えば、合流用PE121であれば、演算部1216は、入力のうちの1つだけ有効データであった場合、それを結果として出力し、また、有効データが無ければ、無効データを出力する。なお、複数の有効データが同時に入力された場合は、動作は定義されていない。
【0057】
また、例えば、タイミング用PE161であれば、演算部1616でデータを遅延させ、コンフィグレーション分配部1614から指示されたサイクル分遅れたデータを結果として出力する。
【0058】
さらに、ゲートPE151であれば、演算部1516は、ゲートとなる信号が有効を表す時、ゲートされる信号を結果として出力し、ゲートとなる信号が無効を表していれば、無効データを結果として出力する。
【0059】
なお、ゲート信号がどのような状態の場合に有効/無効を表すのかは、コンフィグレーション分配部1514から演算部1516に指示される。また、演算部1516から出力される結果は、出力部1517に転送される。
【0060】
出力部1217(1517,1617)は、コンフィグレーション分配部1214(1514,1614)からレジスタを更新するように指示されていた場合、演算部1216(1516,1616)から結果を受け取り、内部に持っているレジスタに蓄える。
【0061】
なお、演算部1216(1516,1616)が動作していない場合、または、無効データに対する演算を行った場合は、内部に持っているレジスタに無効データを蓄える。
【0062】
さらに、コンフィグレーション分配部1214(1514,1614)からレジスタを更新しないように指示されていた場合は、レジスタを更新せず、また、リセットを指示されていた場合は、レジスタに蓄えられたデータを無効データとする。
【0063】
次に、パイプライン型ではない動的再構成可能な回路の動作を説明する。ここで、クロックの複数サイクルの間継続して有効となるデータをパイプライン型ではないデータと呼び、パイプライン型ではないデータを含めて多重化を行う回路をパイプライン型ではないデータ用の多重化回路と呼ぶことにする。
【0064】
すなわち、ループを繰り返す間中同じ値を保持する場合など、複数回同じ値を参照する場合は、レジスタに値を登録し、有効データを出し続けるパイプライン型ではない回路を用いる場合がある。
【0065】
図10は半導体集積回路(動的再構成可能な回路)の他の例を概略的に示すブロック図であり、パイプライン型ではないデータ用の多重化回路を示すものである。なお、図10の回路は、3組の入力信号に対して所定のPE(230)を多重化して用い、結果を3つのゲートPEおよびレジスタPEを介して下流回路に流すものである。
【0066】
図10において、参照符号211,214;212,215および213,216は一対のペアとして使用される3組の入力側のPE(上流PE)、221および222は合流用PE、並びに、230は多重化して使用されるPEを示している。
【0067】
また、参照符号241〜243は出力側のPE(下流PE)、251〜253は出力側のゲートPE、260はタイミング(遅延)用PE、271〜276は入力側のゲートPE、280はカウンタPE、291〜293は出力側のレジスタPEを示している。
【0068】
ここで、第1組の入力信号はPE211,214の出力信号であり、第2組の入力信号はPE212,215の出力信号であり、そして、第3組の入力信号はPE213,216の出力信号である。
【0069】
さらに、ゲートPE271〜276は、カウンタPE280の出力信号によって制御され、また、ゲートPE251〜253は、タイミング用PE260の出力信号によって制御される。
【0070】
なお、図10において、前述した図1と同様に、多重化して使用されるPE230は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用される。
【0071】
図11〜図17は図10に示す半導体集積回路の動作の一例を説明するための図である。
【0072】
まず、図11に示されるように、クロックの1サイクル目において、第1組〜第3組のPE211,214;212,215および213,216からの信号は、出力されている。このとき、カウンタPE280が活性化される。
【0073】
次に、図12に示されるように、クロックの2サイクル目において、カウンタPE280の出力信号によりゲートPE271,274に対して第1組のPE211,214の出力信号が取り込まれる。
【0074】
さらに、図13に示されるように、クロックの3サイクル目において、ゲートPE271,274を介した第1組のPE211,214の出力信号は、合流用PE221,222に取り込まれる。
【0075】
このとき、カウンタPE280の出力信号によりゲートPE272,275に対して第2組のPE212,215の出力信号が取り込まれる。
【0076】
そして、図14に示されるように、クロックの4サイクル目において、合流用PE221,222に取り込まれた第1組のPE211,214の出力信号は、多重化して使用されるPE230に供給されて所定の処理が行われる。
【0077】
このとき、ゲートPE272,275を介した第2組のPE212,215の出力信号は、合流用PE221,222に取り込まれる。また、カウンタPE280の出力信号によりゲートPE273,276に対して第3組のPE213,216の出力信号が取り込まれる。さらに、タイミング用PE260もタイミング信号を生成するために活性化される。
【0078】
その後、図15に示されるように、クロックの5サイクル目において、PE230で所定の処理が行われた第1組の出力信号(処理済信号)は、タイミング用PE260からのタイミング信号によりゲートPE251に取り込まれる。
【0079】
このとき、合流用PE221,222に取り込まれた第2組のPE212,215の出力信号は、多重化して使用されるPE230に供給されて所定の処理が行われる。また、ゲートPE273,276を介した第3組のPE213,216の出力信号は、合流用PE221,222に取り込まれる。
【0080】
さらに、カウンタPE280の出力信号によりゲートPE271,274に対して再び第1組のPE211,214の出力信号が取り込まれる。
【0081】
その後、図16に示されるように、クロックの6サイクル目において、ゲートPE251に取り込まれた第1組の処理済信号は、レジスタPE291に供給されて保持される。
【0082】
このとき、PE230で所定の処理が行われた第2組の処理済信号は、タイミング用PE260からのタイミング信号によりゲートPE252に取り込まれる。また、合流用PE221,222に取り込まれた第3組のPE213,216の出力信号は、多重化して使用されるPE230に供給されて所定の処理が行われる。
【0083】
さらに、ゲートPE271,274を介した第1組のPE211,214の出力信号は、合流用PE221,222に取り込まれる。そして、カウンタPE280の出力信号によりゲートPE272,275に対して再び第2組のPE212,215の出力信号が取り込まれる。
【0084】
そして、図17に示されるように、クロックの7サイクル目において、レジスタPE291に保持された第1組の処理済信号は、PE241に供給されてさらなる処理が行われることになる。
【0085】
このとき、ゲートPE252に取り込まれた第2組の処理済信号は、レジスタPE292に供給されて保持される。また、PE230で所定の処理が行われた第3組の処理済信号は、タイミング用PE260からのタイミング信号によりゲートPE253に取り込まれる。
【0086】
さらに、合流用PE221,222に取り込まれた第1組のPE211,214の出力信号は、再び多重化して使用されるPE230に供給されて所定の処理が行われる。
【0087】
また、ゲートPE272,275を介した第2組のPE212,215の出力信号は、合流用PE221,222に取り込まれる。そして、カウンタPE280の出力信号によりゲートPE273,276に対して再び第3組のPE213,216の出力信号が取り込まれる。
【0088】
以上の処理を繰り返すことで、3組のPE211,214;212,215および213,216の出力信号を、多重化して使用されるPE230で順次処理して下流のPE241,242および243に流すようになっている。
【0089】
上述したパイプライン型ではない動的再構成可能な回路では、2つの合流用PE221,222、9つのゲートPE251〜253,271〜276、タイミング用PE260、カウンタPE280、並びに、3つのレジスタPE291〜293が必要になる。すなわち、PE230を多重化して使用するために、合計16個のPEが必要になる。
【0090】
以下、本発明による多重化用補助PEおよび半導体集積回路の各実施例を、添付図面を参照して詳述する。
【0091】
図18は第1実施例の半導体集積回路(動的再構成可能な回路)を概略的に示すブロック図であり、3組の入力信号に対して所定のPE(3)を多重化して用い、結果を下流回路に流すものを示している。
【0092】
図18において、参照符号11,14;12,15および13,16は一対のペアとして使用される3組の入力側のPE(上流PE)、2は多重化用補助PE、3は多重化して使用されるPE、並びに、41〜43は出力側のPE(下流PE)を示している。
【0093】
ここで、第1組の入力信号はPE11および14の出力信号であり、第2組の入力信号はPE12および15の出力信号であり、そして、第3組の入力信号はPE13および16の出力信号である。
【0094】
図18において、多重化して使用されるPE3は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用される。
【0095】
図19は図18に示す半導体集積回路における多重化用補助PE2の一例を示すブロック図である。
【0096】
図19に示されるように、多重化用補助PE2は、PE制御部21,コンフィグレーションメモリ22,メモリ制御部23,コンフィグレーション分配部24,4つの信号入力部25a〜25d,データ選択部26および出力部27を有する。
【0097】
さらに、多重化用補助PE2は、4つの遅延部26a〜26dおよび4つの出力ゲート部27a〜27dを有する。
【0098】
ここで、PE制御部21,コンフィグレーションメモリ22,メモリ制御部23,コンフィグレーション分配部24,信号入力部25a〜25dおよび出力部27は、図7〜図9を参照して説明したものに対応する。
【0099】
すなわち、PE制御部21は、動的再構成可能な回路全体を制御している制御部から、リセット,動作開始/停止,一時停止,次にどの部分を実行するか、メモリ読出/書込等の指示を制御信号として受け取り、PE内部の機能ブロックに信号を伝達する。
【0100】
コンフィグレーションメモリ22は、PEのコンフィグレーションを複数蓄えておくメモリであり、メモリ制御部23の指示に従って、読み出しおよび書き込みができるようになっている。
【0101】
メモリ制御部23は、PE制御部21からの指示を受けて動作する。すなわち、PE制御部21からコンフィグレーションのどの部分を次に実行するかの指示を受け取った場合、コンフィグレーションメモリ22から該当するデータを読み出してコンフィグレーション分配部24に転送する。
【0102】
また、PE制御部21からメモリ読出/書込のメモリアクセスの指示を受け取った場合、メモリアクセス用のポートを通じてデータをやり取りし、コンフィグレーションメモリ22から読み出し、または、コンフィグレーションメモリ22への書き込みを行う。
【0103】
コンフィグレーション分配部24は、メモリ制御部23から受け取ったコンフィグレーションデータをデコードして各機能ブロックに信号を送る。
【0104】
信号入力部25a〜25dは、PE制御部21によってその動作が制御され、コンフィグレーション分配部24からコンフィグレーションを受け取って多重化用補助PE2への入力信号DI00,DI01〜DI30,DI31を受け取るか否かを決める。
【0105】
図19において、例えば、各入力信号線に記載された『16+1』は、入力データ16ビットとバリッド信号1ビットを表し、また、各出力信号線に記載された『16+1』は、出力データ16ビットとバリッド信号1ビットを表している。
【0106】
また、遅延部26a〜26dの前後の2ビットデータは、2つのデータのバリッド信号のみを入出力することを表している。
【0107】
そして、信号入力部25a〜25dでは、入力信号DI00〜DI31のバリッド信号とコンフィグレーション分配部24から与えられた信号とを比較し、条件を満たしていれば、入力データをそのままデータ選択部26に供給する。このとき、信号入力部25a〜25dは、遅延部26a〜26dに対してバリッド信号を2ビット纏めて供給する。
【0108】
データ選択部26は、多重化する回路にどの信号を送るかを選択する部分であり、選択の方法には、固定の優先順位を割り振る方法やラウンドロビン(round robin)など様々な方法が考えられる。
【0109】
なお、以下の記載では、図1〜図6を参照して説明したパイプライン型回路向けモード、並びに、図10〜図17を参照して説明したパイプライン型ではないデータが入ったときのn分割選択モード(自律モード)を説明する。ここで、どちらのモードを実行するかは、コンフィグレーション分配部24からの信号により規定される。
【0110】
遅延部26a〜26dは、PE制御部21,コンフィグレーション分配部24およびデータ選択部26からの信号を受け取り、入力信号のバリッド信号を遅延して出力ゲート部27a〜27dに供給する。
【0111】
遅延部26a〜26dでは、コンフィグレーション分配部24によって指定されたサイクルだけ入力されたバリッド信号を遅延させて出力ゲート部27a〜27dに送る。
【0112】
すなわち、遅延部26a〜26dは、バリッド信号の入力と同じサイクルでデータ選択部26から選択信号を受け取り、自身が属するチャンネルが選択されていない場合はバリッド信号を両方とも無効にしてから遅延する。
【0113】
また、コンフィグレーションのプログラムを開始する際には、全てのバリッド信号用のレジスタをリセットした状態から開始する。
【0114】
出力部27は、PE制御部21からの信号を受け取って、データ選択部26からの信号(16+1:16ビットのデータおよび1ビットのバリッド信号)を制御して出力信号(PE3の入力信号)DO40,DO41として出力する。
【0115】
すなわち、出力部27では、毎サイクル、データ選択部26から送られてきたデータをレジスタに取り込み、出力信号DO40,DO41として出力する。
【0116】
出力ゲート部27a〜27dは、対応する遅延部26a〜26dの出力信号と共に、入力信号(PE3の出力信号)DI40,DI41を受け取り、PE制御部21およびコンフィグレーション分配部24からの信号に従って出力信号DO00,DO01〜DO30,DO31を出力する。
【0117】
ここで、図19に示す多重化用補助PE2は、単体で四多重まで対応可能なものであり、多重化して用いるPE3の入出力はそれぞれ2つまでとなっている。また、多重化して用いるPE3とは、信号(ポート)DI40,DI41およびDO40,DO41により結合される。
【0118】
なお、PE3により処理が行われる上流の3組のPE11,14;12,15および13,16からの入力データは、信号入力部25a,25bおよび25cに対して、入力信号DI00,DI01;DI10,DI11;DI20,DI21として供給される。
【0119】
そして、PE3により処理が行われた出力信号は、下流の3つのPE41,42および43に対して、出力信号DO00,DO10およびDO20として供給される。
【0120】
また、タイミングポートTPには、例えば、図10〜図17を参照して説明したパイプライン型ではないデータの処理を行う場合(データ選択部26が自律モードで動作する場合)、他のPEから動作開始のタイミング信号TSを受け取るために使用する。このタイミング信号TSは、図10におけるカウンタPE280からの入力信号に相当する。
【0121】
ここで、パイプライン型ではないデータの処理を行うモードでは、バリッド信号を受け取ったかどうかを判定する部分まではパイプライン型モードと同じ振る舞いをする。
【0122】
そして、バリッド信号を受け取ったときのみ、出力ゲート部27a〜27dのバリッド信号と出力データを更新し、そうではないときは更新しない。なお、出力データは、出力信号DO00,DO11〜DO30,DO31として出力する。
【0123】
次に、上記2つのモード、すなわち、図20〜図24を参照してパイプライン型回路向けモード、並びに、図25〜図29を参照してパイプライン型ではないデータが入ったときのn分割選択モードを説明する。
【0124】
図20〜図24は図19に示す多重化用補助PEの動作の一例を説明するための図であり、図1および図2〜図6を参照して説明したパイプライン型の動的再構成可能な回路として使用したときの動作を示すものである。
【0125】
パイプライン型回路向けモードでは、信号入力部25a〜25dから有効な信号を受け取ると、それをそのまま出力部27に出力し、そして、遅延部26a〜26dには、有効信号が来たチャンネルを選択するように信号を送るようになっている。
【0126】
すなわち、まず、図20に示されるように、クロックの1サイクル目において、第1組のPE11,14から信号が出力される。
【0127】
次に、図21に示されるように、クロックの2サイクル目において、第1組のPE11,14の出力信号は、対応する信号入力部25aおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25aを介して遅延部26aに取り込まれる。このとき、第2組のPE12,15から信号が出力される。
【0128】
すなわち、クロックの2サイクル目において、第1組のPE11,14のデータおよびバリッド信号は、信号入力部25aおよびデータ選択部26を介して出力部27に取り込まれる。
【0129】
また、第1組のPE11,14のバリッド信号は、信号入力部25aを介して遅延部26aに取り込まれる。
【0130】
さらに、図22に示されるように、クロックの3サイクル目において、出力部27に取り込まれた第1組のPE11,14の出力信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0131】
このとき、第2組のPE12,15の出力信号は、対応する信号入力部25bおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25bを介して遅延部26bに取り込まれる。このとき、第3組のPE13,16から信号が出力される。
【0132】
なお、遅延部26aに取り込まれた第1組のPE11,14からのバリッド信号は、そのまま保持される。
【0133】
その後、図23に示されるように、クロックの4サイクル目において、遅延部26aに取り込まれた第1組のPE11,14からのバリッド信号により、PE3により所定の処理が行われた第1組の出力信号(処理済信号)が出力ゲート部27aに取り込まれる。
【0134】
このとき、出力部27に取り込まれた第2組のPE12,15からの信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0135】
また、第3組のPE13,16の出力信号は、対応する信号入力部25cおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25cを介して遅延部26cに取り込まれる。
【0136】
ここで、第1組のPE11,14の処理も再び行われ、また、遅延部26bに取り込まれた第2組のPE12,15からのバリッド信号は、そのまま保持される。
【0137】
そして、図24に示されるように、クロックの5サイクル目において、出力ゲート部27aに取り込まれていた第1組の処理済信号は、下流のPE41に供給される。
【0138】
このとき、遅延部26bに取り込まれた第2組のPE12,15からのバリッド信号により、PE3により所定の処理が行われた第2組の処理済信号が出力ゲート部27bに取り込まれる。
【0139】
また、出力部27に取り込まれた第3組のPE13,16からの信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0140】
さらに、第1組のPE11,14からの信号は、再び対応する信号入力部25aおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25aを介して遅延部26aに取り込まれる。
【0141】
そして、第2組のPE12,15の処理も再び行われ、また、遅延部26cに取り込まれた第3組のPE13,16からのバリッド信号は、そのまま保持される。
【0142】
以上の処理を繰り返すことで、3組のPE11,14;12,15および13,16からの信号を、PE3により順次所定の処理を行って下流のPE41,42および43に流すようになっている。
【0143】
図25〜図29は図19に示す多重化用補助PEの動作の他の例を説明するための図であり、図10および図11〜図17を参照して説明したパイプライン型ではない動的再構成可能な回路として使用したときの動作を示すものである。
【0144】
ここで、パイプライン型ではないデータが入ったときのn分割選択モードでは、動作を開始するモードが2つある。
【0145】
その1つは、コンフィグレーションのプログラムを開始すると同時に動作を開始するモードであり、もう1つは、タイミングポートTPからタイミング信号TSを受け取ったら動作を開始するモードである。
【0146】
いずれの場合にも、動作開始後、選択するチャンネルを0からnまで順に変えていく。ここで、nは、0〜3のいずれかであり、コンフィグレーション分配部24により設定する。nを選んだ後は、再び0に戻る。なお、図25〜図29の例では、n=3である。
【0147】
また、各チャンネルを選択している時間(サイクル数)は、コンフィグレーション分配部24で設定する。どの信号が選択されたかは、コンフィグレーション分配部24から選択信号として遅延部26a〜26dに伝えられる。
【0148】
そして、選択されたチャンネルから有効データを受け取ったときは、それを出力部27に送る。また、有効データが来ていなかったときは、無効データを出力部27に送るようになっている。
【0149】
すなわち、まず、図25に示されるように、クロックの1サイクル目において、第1組〜第3組のPE11,14;12,15および13,16からの信号は、出力されている。
【0150】
次に、図26に示されるように、クロックの2サイクル目において、コンフィグレーション分配部24からの信号により、信号入力部25aおよびデータ選択部26を介して出力部27に第1組のPE11,14のデータおよびバリッド信号が取り込まれる。
【0151】
このとき、信号入力部25aを介して遅延部26aに第1組のPE11,14のバリッド信号が取り込まれる。
【0152】
また、信号入力部25bおよび25cには、第2組のPE12,15および第3組のPE13,16のデータおよびバリッド信号がそれぞれ取り込まれる。
【0153】
さらに、図27に示されるように、クロックの3サイクル目において、第1組のPE11,14の出力信号(データおよびバリッド信号)は、多重化して使用されるPE3に供給されて所定の処理が行われる。
【0154】
このとき、コンフィグレーション分配部24からの信号により、信号入力部25bおよびデータ選択部26を介して出力部27に第2組のPE12,15のデータおよびバリッド信号が取り込まれる。
【0155】
また、信号入力部25bを介して遅延部26bに第2組のPE12,15のバリッド信号が取り込まれる。ここで、信号入力部25cおよび25aには、第3組のPE13,16および第1組のPE11,14のデータおよびバリッド信号がそれぞれ取り込まれる。
【0156】
その後、図28に示されるように、クロックの4サイクル目において、遅延部26aに取り込まれた第1組のPE11,14からのバリッド信号により、PE3により所定の処理が行われた第1組の出力信号(処理済信号)が出力ゲート部27aに取り込まれる。
【0157】
このとき、出力部27に取り込まれた第2組のPE12,15の出力信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0158】
さらに、コンフィグレーション分配部24からの信号により、信号入力部25cおよびデータ選択部26を介して出力部27に第3組のPE13,16のデータおよびバリッド信号が取り込まれる。
【0159】
また、信号入力部25cを介して遅延部26cに第3組のPE13,16のバリッド信号が取り込まれる。ここで、信号入力部25aおよび25bには、第1組のPE11,13および第2組のPE12,14のデータおよびバリッド信号がそれぞれ取り込まれる。
【0160】
そして、図29に示されるように、クロックの5サイクル目において、出力ゲート部27aに取り込まれていた第1組の処理済信号は、下流のPE41に供給される。
【0161】
このとき、遅延部26bに取り込まれた第2組のPE12,15からのバリッド信号により、PE3により所定の処理が行われた第2組の処理済信号が出力ゲート部27bに取り込まれる。
【0162】
また、出力部27に取り込まれた第3組のPE13,16の出力信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0163】
さらに、コンフィグレーション分配部24からの信号により、再び信号入力部25aおよびデータ選択部26を介して出力部27に第1組のPE11,14のデータおよびバリッド信号が取り込まれる。
【0164】
また、信号入力部25aを介して遅延部26aに第1組のPE11,14のバリッド信号が取り込まれる。ここで、信号入力部25bおよび25cには、第2組のPE12,14および第3組のPE13,16のデータおよびバリッド信号がそれぞれ取り込まれる。
【0165】
以上の処理を繰り返すことで、3組のPE11,14;12,15および13,16からの信号を、多重化して用いるPE3により順次所定の処理を行って下流のPE41,42および43に流すようになっている。
【0166】
ここで、図25〜図29を参照して説明したパイプライン型ではない動的再構成可能な回路では、図10〜図17を参照して説明した回路における入力部分のゲートPE271〜276および合流用PE221,222の機能を1サイクルで実行可能である。さらに、出力部分のゲートPE251〜253およびレジスタPE291〜293も1サイクルで実行可能であるため、少ないサイクルで処理を行うことができる。
【0167】
上述した図20〜図24および図25〜図29の実施例において、多重化回路(多重化用補助PE)の入力タイミングと出力タイミングの差は、多重化するPE(または、動的再構成可能な回路に繋がった回路)によって決まっている。
【0168】
また、多重化の入力と出力を1つのPE(多重化用補助PE)で処理し、PE内部で入力信号から出力タイミングを生成する。これにより、例えば、図1の動的再構成可能な回路で必要であったタイミングを生成するタイミング用PE161〜163を削減することが可能になる。
【0169】
なお、遅延器(タイミング用PEに設けられた遅延要素)の部分だけを比較しても、図1の回路ではPEのデータ幅分の遅延器が必要だったのに対して、本実施例の動的再構成可能な回路では、1入力当たり1ビットの遅延器で済ませることができる。
【0170】
また、入力と出力のタイミング差はチャンネル間で共通なので、本実施例の多重化用補助PEでは、タイミングのコンフィグレーションを1つに纏めることで、タイミング用のコンフィグレーションメモリおよびコンフィグレーション分配部を削減している。
【0171】
さらに、図1の合流用PE121,122、出力部分のゲートPE151〜153およびレジスタPEを纏めたことにより、制御部およびコンフィグレーション分配部の回路を削減している。
【0172】
また、図1の合流用PEおよび出力部分のゲートPEを纏め、タイミング生成を内部で行うことにより、ゲート部分の比較器を削減している。
【0173】
そして、前述した図10の動的再構成可能な回路では、汎用のカウンタPEおよびカウンタの値によりゲートを開閉する汎用ゲートPEを使用している。この汎用PEでは、自由に値を設定できるようにするために、例えば、1つのPEで1つのコンテキスト当たり16ビットずつのコンフィグレーションメモリを必要とする。
【0174】
すなわち、図10の動的再構成可能な回路では、1つのコンテキスト当たり64ビット以上のメモリを必要とする。
【0175】
これに対して、本実施例の動的再構成可能な回路における多重化用補助PEでは、例えば、16多重の入力までをサーポートする場合、入力の系統1つ当たり3ビット、計12ビットを使用するだけで実現可能である。
【0176】
これにより、本実施例の動的再構成可能な回路によれば、コンフィグレーションメモリを削減することができる。さらに、カウンタやゲートPEの比較器に比べて、多重化用補助PEではビット幅の小さい回路で構成しているため、論理回路を小さくすることもできる。
【0177】
図30および図31は図1に示す半導体集積回路(動的再構成可能な回路)における合流用PE〜ゲートPEまでを図19に対応させて示すブロック図であり、図19に示す多重化用補助PEに対応した機能ブロックで示したものである。
【0178】
なお、合流用PE122は合流用PE121と同様の構成であり、タイミング用PE161および163はタイミング用PE162と同様の構成であり、そして、ゲート用PE151および153はゲート用PE152と同様の構成である。
【0179】
まず、図30に示されるように、合流用PE121(122)は、PE制御部1211,コンフィグレーションメモリ1212,メモリ制御部1213,コンフィグレーション分配部1214,信号入力部1215a〜1215d,演算部1216および出力部1217を有する。
【0180】
また、図31に示されるように、タイミング用PE162(161,163)は、PE制御部1621,コンフィグレーションメモリ1622,メモリ制御部1623,コンフィグレーション分配部1624,信号入力部1625,演算部1626および出力部1627を有する。
【0181】
さらに、図31に示されるように、ゲートPE152(151,153)は、PE制御部1521,コンフィグレーションメモリ1522,メモリ制御部1523,コンフィグレーション分配部1524,信号入力部1525,演算部1526および出力部1527を有する。
【0182】
ところで、図19に示す多重化用補助PE2は、この多重化用補助PE2に対応する図30および図31に示す合流用PE121,122、タイミング用PE161〜163並びにゲート用PE151〜153よりも大幅な回路規模の削減を可能としている。
【0183】
回路規模としては、PE制御部およびコンフィグレーション分配部を合わせた大きさを『1』と仮定すると、カウンタPEは『16』,タイミングPEは『6』,合流用PEは『11』,レジスタPEは『9』,そして,ゲートPEは『4』程度と見積もられる。この値には、コンフィグレーションメモリとメモリ制御部の規模は入っていない。
【0184】
そして、コンフィグレーションは、1コンテキスト当たり、それぞれ18ビット,17ビット,5ビット,18ビット,および,2ビットと見積もられる。
【0185】
具体的に、4×2入力4×1出力を想定した場合、回路規模は、およそ図1の動的再構成可能な回路の『147』から本実施例の『124』に削減することができる。
【0186】
また、コンフィグレーションビットは、図1の動的再構成可能な回路の192ビットから本実施例の36ビットに削減することができる。さらに、メモリ制御部は、どのようなPEでもほぼ同じ大きさと見積もられるので、本実施例では、PE数が減った分だけ回路規模を縮小することが可能になる。
【0187】
以上の見積もりでは、各機能専用にPEを作成した場合を想定しているが、実際には、PEの使用率を上げるため、『20』以上の大きさの多機能PEが利用されると考えられる。
【0188】
このとき、コンフィグレーションも1つのPEで1つのコンテキスト当たり22ビット程度以上になると考えられる。この場合、元の回路規模は『460』程度以上、コンフィグレーションは500ビット程度以上となるため、本実施例の動的再構成可能な回路によれば、より一層大きな回路規模の削減が可能になる。
【0189】
すなわち、以下に詳述する第2実施例では、使用するPE数を削減して回路面積の低減およびPEの効率的な利用をより一層大きなものとすることができる。
【0190】
図32は第2実施例の半導体集積回路を概略的に示すブロック図である。
ここで、第2実施例の半導体集積回路(動的再構成可能な回路)は、パイプライン型のデータとパイプライン型ではないデータが混在する場合で、かつ、多重化用補助PEを多重化して使用するものである。
【0191】
すなわち、第2実施例の動的再構成可能な回路は、図19に示す多重化用補助PEを2つ(20a,20b)多重化して使用する。そして、PE30のレイテンシーを多重化用補助PE20aのコンフィグレーションで与え、PE30とPE20aのレイテンシーの合計を20bのコンフィグレーションで与えるようになっている。
【0192】
図32において、参照符号11a,14a;12a,15a;11b,14b;12b,15bおよび13b,16bは一対のペアとして使用される5組の入力側のPE(上流PE)、並びに、20aおよび20bは多重化用補助PEを示している。
【0193】
また、参照符号30は多重化して使用されるPE、そして、41a,42aおよび41b〜43bは出力側のPE(下流PE)を示している。
【0194】
ここで、第1組および第4組のPE11a,14aおよび12b,15bは、所定のサイクルで信号を出力するものであり、また、第2組,第3組および第5組のPE12a,15a;11b,14bおよび13b,16bは信号を保持して出力する。
【0195】
また、第1組および第2組のPE11a,14aおよび12a,15aの出力信号は、第1の多重化用補助PE20aに供給されている。また、第2組〜第5組のPE11b,14b;12b,15bおよび13b,16bの出力信号は、第2の多重化用補助PE20bに供給されている。
【0196】
さらに、第2の多重化用補助PE20bの出力信号(DO40b,DO41b)は、第1の多重化用補助PE20aの入力(DI20a,DI21a:一対のPE13a,16aの出力信号の入力に相当)に供給されている。また、多重化して使用されるPE30は、第1の多重化用補助PE20aとの間で信号の遣り取りを行うようになっている。
【0197】
そして、第2の多重化用補助PE20bは、第1の多重化用補助PE20aの出力信号(DO20a)を受け取るようになっている。
【0198】
なお、図32では、一対のペアとして使用される5組の入力側のPE11a,14a;12a,15a;11b,14b;12b,15bおよび13b,16bを処理するようになっているが、多重化用補助PEにより様々に変形することができる。
【0199】
また、図32において、多重化して使用されるPE30は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用されるのは前述した第1実施例と同様である。
【0200】
図33〜図42は図32に示す半導体集積回路の動作の一例を説明するための図である。
まず、図33に示されるように、クロックの1サイクル目において、第1組のPE11a,14aのから信号が出力される。このとき、第2組,第3組および第5組のPE12a,15a;11b,14bおよび13b,16bからの信号は、出力されている。
【0201】
次に、図34に示されるように、クロックの2サイクル目において、第1組のPE11a,14aの出力信号が第1の多重化用補助PE20aに取り込まれる。
【0202】
このとき、第3組のPE11b,14bの出力信号が第2の多重化用補助PE20bに取り込まれる。
【0203】
ここで、第1および第2の多重化用補助PE20a,20bに対して第1組および第3組のPE11a,14aおよびPE11b,14bの出力信号が取り込まれるのは、前述した図19における出力部27に信号が取り込まれるのに対応する。
【0204】
さらに、図35に示されるように、クロックの3サイクル目において、第1組のPE11a,14aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0205】
このとき、第2組のPE12a,15aの出力信号が第1の多重化用補助PE20aに取り込まれる。また、第4組のPE12b,15bから信号が出力される。なお、第2の多重化用補助PE20bに取り込まれた第3組のPE11b,14bの出力信号は、第2の多重化用補助PE20bにそのまま保持される。
【0206】
その後、図36に示されるように、クロックの4サイクル目において、PE30により所定の処理が行われた第1組の出力信号(処理済信号)が第1の多重化用補助PE20aに取り込まれる。
【0207】
ここで、第1組の処理済信号が第1の多重化用補助PE20aに取り込まれるのは、前述した図19の多重化用補助PE(20a)における出力ゲート部27aに信号が取り込まれるのに対応する。
【0208】
このとき、第2組のPE12a,15aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。また、第2の多重化用補助PE20bに取り込まれて保持されていた第3組のPE11b,14bの出力信号は、第1の多重化用補助PE20aに取り込まれる。
【0209】
なお、第2の多重化用補助PE20bには、第4組のPE12b,15bの出力信号が取り込まれる。
【0210】
そして、図37に示されるように、クロックの5サイクル目において、第1の多重化用補助PE20aに取り込まれていた第1組の処理済信号は、下流のPE41aに供給される。
【0211】
このとき、PE30により所定の処理が行われた第2組の処理済信号は第1の多重化用補助PE20aに取り込まれ、第3組のPE11b,14bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0212】
ここで、第2組の処理済信号が第1の多重化用補助PE20aに取り込まれるのは、前述した図19の多重化用補助PE(20a)における出力ゲート部27bに信号が取り込まれるのに対応する。
【0213】
また、第2の多重化用補助PE20bに取り込まれた第4組のPE12b,15bの出力信号は、第1の多重化用補助PE20aに取り込まれ、第2の多重化用補助PE20bには、第5組のPE13b,16bの出力信号が取り込まれる。
【0214】
さらに、図38に示されるように、クロックの6サイクル目において、第1の多重化用補助PE20aに取り込まれていた第2組の処理済信号は、下流のPE42aに供給される。
【0215】
このとき、PE30により所定の処理が行われた第3組の処理済信号は第1の多重化用補助PE20aに取り込まれ、第4組のPE12b,15bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0216】
ここで、第3組の処理済信号が第1の多重化用補助PE20aに取り込まれるのは、前述した図19の多重化用補助PE(20a)における出力ゲート部27cに信号が取り込まれるのに対応する。
【0217】
また、第2の多重化用補助PE20bに取り込まれた第5組のPE13b,16bの出力信号は、第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bは、第5組のPE13b,16bの出力信号をそのまま保持する。また、第1組のPE11a,14aからの信号も出力される。
【0218】
そして、図39に示されるように、クロックの7サイクル目において、第1の多重化用補助PE20aに取り込まれていた第3組の処理済信号は、第2の多重化用補助PE20bに取り込まれる。
【0219】
ここで、第1の多重化用補助PE20aに取り込まれていた第3組の処理済信号が第2の多重化用補助PE20bに取り込まれるのは、前述した図19の多重化用補助PE(20b)における出力ゲート部27aに信号が取り込まれるのに対応する。
【0220】
このとき、PE30により所定の処理が行われた第4組の処理済信号は第1の多重化用補助PE20aに取り込まれる。また、第1の多重化用補助PE20aに取り込まれた第5組のPE13b,16bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0221】
さらに、第1組のPE11a,14aの出力信号は、再び第1の多重化用補助PE20aに取り込まれ、また、第3組のPE11b,14bの出力信号は、再び第2の多重化用補助PE20bに取り込まれる。
【0222】
次に、図40に示されるように、クロックの8サイクル目において、第2の多重化用補助PE20bに取り込まれていた第3組の処理済信号は、下流のPE41bに供給される。
【0223】
このとき、第1の多重化用補助PE20aに取り込まれていた第4組の処理済信号は、第2の多重化用補助PE20bに取り込まれ、また、PE30により所定の処理が行われた第5組の処理済信号は第1の多重化用補助PE20aに取り込まれる。
【0224】
さらに、第1の多重化用補助PE20aに取り込まれた第1組のPE11a,14aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0225】
そして、第2組のPE12a,15aの出力信号は、再び第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bに取り込まれた第4組のPE11b,14bの出力信号は、そのまま保持される。なお、第4組のPE12b,15bからの信号も出力される。
【0226】
その後、図41に示されるように、クロックの9サイクル目において、第2の多重化用補助PE20bに取り込まれていた第4組の処理済信号は、下流のPE42bに供給される。
【0227】
このとき、第1の多重化用補助PE20aに取り込まれていた第5組の処理済信号は、第2の多重化用補助PE20bに取り込まれ、また、PE30により所定の処理が行われた第1の処理済信号は第1の多重化用補助PE20aに取り込まれる。
【0228】
さらに、第1の多重化用補助PE20aに取り込まれた第2組のPE12a,15aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0229】
また、第3組のPE11b,14bの出力信号は、再び第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bには、第4組のPE12b,15bの出力信号が取り込まれる。
【0230】
そして、図42に示されるように、クロックの10サイクル目において、第2の多重化用補助PE20bに取り込まれていた第5組の処理済信号は、下流のPE43bに供給される。
【0231】
このとき、第1の多重化用補助PE20aに取り込まれていた第1組の処理済信号は、下流のPE41aに供給され、また、PE30により所定の処理が行われた第2の処理済信号は第1の多重化用補助PE20aに取り込まれる。
【0232】
さらに、第1の多重化用補助PE20aに取り込まれた第3組のPE11b,14bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0233】
そして、第4組のPE12b,15bの出力信号は、再び第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bには、第5組のPE13b,16bの出力信号が取り込まれる。
【0234】
以上の処理を繰り返すことで、5組のPEからの信号を、多重化した2つの多重化用補助PE20a,20bを使用して、多重化して用いるPE3により順次所定の処理を行って下流のPE41a,42a,41b,42bおよび43bに流すようになっている。
【0235】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
入力側に設けられた複数の上流PEからの信号を受け取って、多重化して使用される多重化PEに対して前記上流PEからの信号を供給して所定の処理を行わせ、前記多重化PEによる前記所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PEに順次供給する多重化用補助PEであって、
前記複数の上流PEの動作と、対応する前記複数の下流PEへの前記処理済信号の供給とを前記多重化用補助PEの設定により同期させて行い、
前記複数の上流PEのうちの幾つかは、一対の複数組のPEであり、
前記多重化PEに対して、前記各組の上流PEからの信号に対する前記所定の処理を行わせ、
前記各組の処理済信号を当該組の上流PEに対応する前記下流PEに供給することを特徴とする多重化用補助PE。
【0236】
(付記2)
付記1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックのサイクル毎に順次バリッドとなる前記各組のPEからの信号を処理するパイプライン型回路に適用されることを特徴とする多重化用補助PE。
【0237】
(付記3)
付記1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックの複数サイクルでバリッドとなる前記各組のPEからの信号を処理するパイプライン型ではない回路に適用されることを特徴とする多重化用補助PE。
【0238】
(付記4)
付記1〜3のいずれか1項に記載の多重化用補助PEにおいて、
前記多重化用補助PEの設定を行うコンフィグレーション設定部を有することを特徴とする多重化用補助PE。
【0239】
(付記5)
付記4に記載の多重化用補助PEにおいて、
前記コンフィグレーション設定部は、
前記多重化用補助PEのコンフィグレーションを複数蓄えておくコンフィグレーションメモリと、
外部からの制御信号を受け取って、前記多重化用補助PE内部の複数の機能ブロックに信号を伝達するPE制御部と、
前記PE制御部からの指示により前記コンフィグレーションメモリから該当するコンフィグレーションデータを読み出すメモリ制御部と、
前記メモリ制御部からの前記コンフィグレーションデータをデコードして前記各機能ブロックに信号を送るコンフィグレーション分配部と、を有することを特徴とする多重化用補助PE。
【0240】
(付記6)
付記5に記載の多重化用補助PEにおいて、前記複数の機能ブロックは、
前記複数の上流PEからの信号を受け取る複数の信号入力部と、
前記多重化PEに対して前記上流PEからの信号を供給する出力部と、
前記複数の信号入力部を介して前記複数の上流PEからの信号を受け取り、前記出力部への信号を選択するデータ選択部と、
前記処理済信号を受け取って前記複数の下流PEに順次供給する複数の出力ゲート部と、を有することを特徴とする多重化用補助PE。
【0241】
(付記7)
付記6に記載の多重化用補助PEにおいて、
前記複数の上流PEからの信号は、所定ビットのデータおよびバリッド信号を有することを特徴とする多重化用補助PE。
【0242】
(付記8)
付記7に記載の多重化用補助PEにおいて、
前記複数の信号入力部、前記出力部、前記データ選択部および前記出力ゲート部は、それぞれ前記所定ビットのデータおよび前記バリッド信号を処理することを特徴とする多重化用補助PE。
【0243】
(付記9)
付記8に記載の多重化用補助PEにおいて、前記複数の機能ブロックは、さらに、
前記複数の信号入力部を介して供給される前記バリッド信号を受け取って遅延する複数の遅延部を有し、該各遅延部は、対応する前記出力ゲート部に対して遅延された前記バリッド信号を供給することを特徴とする多重化用補助PE。
【0244】
(付記10)
付記1〜9のいずれか1項に記載の多重化用補助PEと、
前記複数の上流PEと、
前記複数の下流PEと、
前記多重化PEと、を有することを特徴とする半導体集積回路。
【0245】
(付記11)
付記10に記載の半導体集積回路において、
前記多重化用補助PEを複数有し、該複数の多重化用補助PEを多重化して使用することを特徴とする半導体集積回路。
【符号の説明】
【0246】
2;20a,20b 多重化用補助PE
3,30,130,230 多重化して使用されるPE(多重化PE)
11,14;12,15;13,16、11a,14a;12a,15a;11b,14b;12b,15b:13b,16b、111,114;112,115;113,116、211,214;212,215;213,216 入力側のPE(上流PE)
21 PE制御部
22 コンフィグレーションメモリ
23 メモリ制御部
24 コンフィグレーション分配部
25a〜25d 信号入力部
26 データ選択部
27 出力部
41〜43;41a,42a,41b〜43b、141〜143、241〜243 出力側のPE(下流PE)
121,122;221,222 合流用PE
151〜153;251〜253 出力側のゲートPE
161〜163;260 タイミング(遅延)用PE
271〜276 入力側のゲートPE
280 カウンタPE
291〜293 出力側のレジスタPE
【技術分野】
【0001】
本発明は、多重化用補助PEおよび半導体集積回路に関する。
【背景技術】
【0002】
近年、並列演算によりASIC並みの性能をDSP同様のプログラム設計で簡単に実現できるダイナミックリコンフィギュラブル回路(Dynamic Reconfigurable Circuit:動的再構成可能な回路;半導体集積回路)が注目されている。
【0003】
動的再構成可能な回路は、演算,データの記憶や流れの制御,プログラムの流れ制御などを行う要素(PE:Processing Element),コンフィグレーションメモリおよびシーケンサーを有する。
【0004】
コンフィグレーションメモリは、PEの動作を表すコンフィグレーションを記憶し、また、シーケンサーは、動的再構成可能な回路を制御する。
【0005】
この動的再構成可能な回路の特徴として、コンフィグレーションを高速に切り替えることにより、PEを有効に再利用できることが挙げられる。
【0006】
ところで、従来、動的再構成可能な回路として、コンフィグレーションを高速に切り替えてPEを有効に再利用することを実現する様々な提案がなされている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−123563号公報
【特許文献2】特開2006−018539号公報
【特許文献3】特開2007−241830号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来、コンフィグレーションを高速に切り替えてPEを有効に再利用するものとして、DRP(Dynamically Reconfigurable Processor)方式、および、細分化コンテキスト切り替え方式が研究・開発されている。
【0009】
DRP方式では、1つのコンフィグレーション中で使用できるPE数は、物理的なPE数までとなる。また、細分化コンテキスト切り替え方式では、1つの仮想コンフィグレーションを用いることで、仮想的に使用できるPE数を増やすことができる。
【0010】
一方、どちらの方式でも、1つのコンフィグレーション内でRAM(Random Access Memory)・PEに複数回アクセスする場合等において、一般的には入力段に合流用PEを用いる必要があった。
【0011】
また、RAM・PEから読み出す場合等には、出力段にゲートPEを用いる必要があり、さらに、出力段のゲートタイミングを作るためのPEも用意する必要があった。
【課題を解決するための手段】
【0012】
本発明の一実施形態によれば、入力側に設けられた複数の上流PEからの信号を受け取って、多重化して使用される多重化PEに対して前記上流PEからの信号を供給して所定の処理を行わせる多重化用補助PEが提供される。
【0013】
前記多重化用補助PEは、前記多重化PEによる前記所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PEに順次供給する。
【0014】
前記複数の上流PEの動作と、対応する前記複数の下流PEへの前記処理済信号の供給とは、前記多重化用補助PEの設定により同期させて行う。
【0015】
前記複数の上流PEのうちの幾つかは、一対の複数組のPEであり、前記多重化PEに対して、前記各組の上流PEからの信号に対する前記所定の処理を行わせ、前記各組の処理済信号を当該組の上流PEに対応する前記下流PEに供給するようになっている。
【発明の効果】
【0016】
開示の多重化用補助PEおよび半導体集積回路は、使用するPE数を削減して回路面積の低減の効果を奏し、PEの効率的な利用を行うことができる。
【図面の簡単な説明】
【0017】
【図1】半導体集積回路の一例を概略的に示すブロック図である。
【図2】図1に示す半導体集積回路の動作の一例を説明するための図(その1)である。
【図3】図1に示す半導体集積回路の動作の一例を説明するための図(その2)である。
【図4】図1に示す半導体集積回路の動作の一例を説明するための図(その3)である。
【図5】図1に示す半導体集積回路の動作の一例を説明するための図(その4)である。
【図6】図1に示す半導体集積回路の動作の一例を説明するための図(その5)である。
【図7】図1に示す半導体集積回路における合流用PEの一例を示すブロック図である。
【図8】図1に示す半導体集積回路におけるゲートPEの一例を示すブロック図である。
【図9】図1に示す半導体集積回路におけるタイミング用PEの一例を示すブロック図である。
【図10】半導体集積回路の他の例を概略的に示すブロック図である。
【図11】図10に示す半導体集積回路の動作の一例を説明するための図(その1)である。
【図12】図10に示す半導体集積回路の動作の一例を説明するための図(その2)である。
【図13】図10に示す半導体集積回路の動作の一例を説明するための図(その3)である。
【図14】図10に示す半導体集積回路の動作の一例を説明するための図(その4)である。
【図15】図10に示す半導体集積回路の動作の一例を説明するための図(その5)である。
【図16】図10に示す半導体集積回路の動作の一例を説明するための図(その6)である。
【図17】図10に示す半導体集積回路の動作の一例を説明するための図(その7)である。
【図18】第1実施例の半導体集積回路を概略的に示すブロック図である。
【図19】図18に示す半導体集積回路における多重化用補助PEの一例を示すブロック図である。
【図20】図19に示す多重化用補助PEの動作の一例を説明するための図(その1)である。
【図21】図19に示す多重化用補助PEの動作の一例を説明するための図(その2)である。
【図22】図19に示す多重化用補助PEの動作の一例を説明するための図(その3)である。
【図23】図19に示す多重化用補助PEの動作の一例を説明するための図(その4)である。
【図24】図19に示す多重化用補助PEの動作の一例を説明するための図(その5)である。
【図25】図19に示す多重化用補助PEの動作の他の例を説明するための図(その1)である。
【図26】図19に示す多重化用補助PEの動作の他の例を説明するための図(その2)である。
【図27】図19に示す多重化用補助PEの動作の他の例を説明するための図(その3)である。
【図28】図19に示す多重化用補助PEの動作の他の例を説明するための図(その4)である。
【図29】図19に示す多重化用補助PEの動作の他の例を説明するための図(その5)である。
【図30】図1に示す半導体集積回路における合流用PE〜ゲートPEまでを図19に対応させて示すブロック図(その1)である。
【図31】図1に示す半導体集積回路における合流用PE〜ゲートPEまでを図19に対応させて示すブロック図(その2)である。
【図32】第2実施例の半導体集積回路を概略的に示すブロック図である。
【図33】図32に示す半導体集積回路の動作の一例を説明するための図(その1)である。
【図34】図32に示す半導体集積回路の動作の一例を説明するための図(その2)である。
【図35】図32に示す半導体集積回路の動作の一例を説明するための図(その3)である。
【図36】図32に示す半導体集積回路の動作の一例を説明するための図(その4)である。
【図37】図32に示す半導体集積回路の動作の一例を説明するための図(その5)である。
【図38】図32に示す半導体集積回路の動作の一例を説明するための図(その6)である。
【図39】図32に示す半導体集積回路の動作の一例を説明するための図(その7)である。
【図40】図32に示す半導体集積回路の動作の一例を説明するための図(その8)である。
【図41】図32に示す半導体集積回路の動作の一例を説明するための図(その9)である。
【図42】図32に示す半導体集積回路の動作の一例を説明するための図(その10)である。
【発明を実施するための形態】
【0018】
まず、実施例を詳述する前に、半導体集積回路の例とその問題点を説明する。
【0019】
図1は半導体集積回路(動的再構成可能な回路)の一例を概略的に示すブロック図であり、3組の入力信号に対して所定のPE(Processing Element:130)を多重化して用い、結果を3つのゲートPEで選択して下流回路に流すものを示している。
【0020】
図1において、参照符号111,114;112,115および113,116は一対のペアとして使用される3組の入力側のPE(上流PE)、121および122は合流用PE、並びに、130は多重化して使用されるPEを示している。
【0021】
また、参照符号141〜143は出力側のPE(下流PE)、151〜153は出力側のゲートPE、そして、161〜163はタイミング(遅延)用PEを示している。
【0022】
ここで、第1組の入力信号はPE111および114の出力信号であり、第2組の入力信号はPE112および115の出力信号であり、そして、第3組の入力信号はPE113および116の出力信号である。
【0023】
また、合流用PE121,122は、それぞれ第1組〜第3組の入力信号において、バリッド(valid)信号が付与されているデータを多重化して使用されるPE130に流す。なお、バリッド信号は、3組の入力信号のうちのいずれか1つに付与されるか、3組の入力信号の全てに付与されないようになっている。
【0024】
図1において、多重化して使用されるPE130は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用される。
【0025】
また、入力される3組の信号は、互いに同じタイミングで合流器(合流用PE121,122)に入力されないようにタイミングが調整されているものとする。
【0026】
なお、信号が入力されたかどうかは、例えば、信号にデータが載っているかどうかを表す線(バリッド線)をチェックすることにより判定することができる。
【0027】
図2〜図6は図1に示す半導体集積回路の動作の一例を説明するための図である。
まず、図2に示されるように、クロックの1サイクル目において、第1組のPE111,114から信号が出力される。
【0028】
次に、図3に示されるように、クロックの2サイクル目において、第1組のPE111,114の出力信号は、それぞれ合流用PE121,122に取り込まれる。このとき、第2組のPE112,115から信号が出力される。
【0029】
さらに、図4に示されるように、クロックの3サイクル目において、合流用PE121,122に取り込まれた第1組のPE111,114の出力信号は、多重化して使用されるPE130に供給されて所定の処理が行われる。
【0030】
このとき、第2組のPE112,115の出力信号は、それぞれ合流用PE121,122に取り込まれ、また、第3組のPE113,116から信号が出力される。さらに、タイミング用PE161もタイミング信号を生成するために活性化される。
【0031】
その後、図5に示されるように、クロックの4サイクル目において、PE130で所定の処理が行われた第1組の出力信号(処理済信号)は、タイミング用PE161からのタイミング信号によりゲートPE151に取り込まれる。
【0032】
このとき、合流用PE121,122に取り込まれた第2組のPE112,115の出力信号は、多重化して使用されるPE130に供給されて所定の処理が行われる。
【0033】
また、第3組のPE113,116の出力信号は、それぞれ合流用PE121,122に取り込まれ、また、再び第1組のPE111,114から信号が出力される。さらに、タイミング用PE162もタイミング信号を生成するために活性化される。
【0034】
そして、図6に示されるように、クロックの5サイクル目において、ゲートPE151に取り込まれている第1組の処理済信号は、PE141に供給され、PE141によるさらなる処理が行われる。
【0035】
このとき、PE130で所定の処理が行われた第2組の処理済信号は、タイミング用PE162からのタイミング信号によりゲートPE152に取り込まれる。
【0036】
また、合流用PE121,122に取り込まれた第3組のPE113,116の出力信号は、多重化して使用されるPE130に供給されて所定の処理が行われる。
【0037】
さらに、第1組のPE111,114の出力信号は、それぞれ合流用PE121,122に取り込まれ、また、再び第2組のPE112,115から信号が出力される。さらに、タイミング用PE163もタイミング信号を生成するために活性化される。
【0038】
以上の処理を繰り返すことで、3組のPE111,114;112,115および113,116の出力信号を、多重化して使用されるPE130で順次処理して下流のPE141,142および143に流すようになっている。
【0039】
ここで、図1に示す動的再構成可能な回路において、1つの有意なデータは、1クロックの間だけ有効(バリッド)となって回路を流れ、タイミングを合わせる回路により、2つのデータを入力としてPE130で順次演算が行われる。このような回路は、例えば、パイプライン型回路と呼ばれている。
【0040】
このように、図1に示す動的再構成可能な回路においても、3組の入力信号に対してPE130を多重化して用いる回路を構成することはできる。
【0041】
しかしながら、図1の動的再構成可能な回路において、多重アクセスの多いプログラムは、処理内容は少なくても使用PE数が多いためにマッピングできなくなってしまうか、或いは、マッピングを可能にするために多数のPEを用意する必要が生じる。
【0042】
具体的に、上述したパイプライン型の動的再構成可能な回路では、2つの合流用PE121,122、3つのゲートPE151〜153、並びに、3つのタイミング用PE161〜163が必要になる。すなわち、プロセッサ130を多重化して使用するために、合計8個のPEが必要になる。
【0043】
図7〜図9は図1に示す半導体集積回路における各PEの一例を示すブロック図であり、図7は合流用PE,図8はゲートPE,そして、図9はタイミング用(遅延)PEの例を示すものである。
【0044】
図7に示されるように、合流用PE121(122)は、PE制御部1211,コンフィグレーションメモリ1212,メモリ制御部1213,コンフィグレーション分配部1214,4つの信号入力部1215a〜1215d,演算部1216および出力部1217を有する。
【0045】
図8に示されるように、ゲートPE151(152,153)は、PE制御部1511,コンフィグレーションメモリ1512,メモリ制御部1513,コンフィグレーション分配部1514,信号入力部1515,演算部1516および出力部1517を有する。
【0046】
図9に示されるように、タイミング用PE161(162,163)は、PE制御部1611,コンフィグレーションメモリ1612,メモリ制御部1613,コンフィグレーション分配部1614,信号入力部1615,演算部1616および出力部1617を有する。
【0047】
次に、上述した合流用PE121,ゲートPE151およびタイミング用PE161におけるPE制御部,コンフィグレーションメモリ,メモリ制御部,コンフィグレーション分配部,信号入力部,演算部および出力部を説明する。
【0048】
なお、例えば、各PEにおける演算部1216,1516および1516は、それらの入力信号の数はそれぞれ異なっているが、処理機能としては実質的に同様である。
【0049】
まず、PE制御部1211(1511,1611)は、動的再構成可能な回路全体を制御している制御部から、リセット,動作開始/停止,一時停止,次にどの部分を実行するか、メモリ読出/書込等の指示を制御信号として受け取り、PE内部の機能ブロックに信号を伝達する。
【0050】
コンフィグレーションメモリ1212(1512,1612)は、PEのコンフィグレーションを複数蓄えておくメモリであり、メモリ制御部1213(1513,1613)の指示に従って、読み出しおよび書き込みができるようになっている。
【0051】
メモリ制御部1213(1513,1613)は、PE制御部1211(1511,1611)からの指示を受けて動作する。すなわち、PE制御部1211からコンフィグレーションのどの部分を次に実行するかの指示を受け取った場合、コンフィグレーションメモリ1212から該当するデータを読み出してコンフィグレーション分配部1214に転送する。
【0052】
また、PE制御部1211からメモリ読出/書込のメモリアクセスの指示を受け取った場合、メモリアクセス用のポートを通じてデータをやり取りし、コンフィグレーションメモリ1212から読み出し、または、コンフィグレーションメモリ1212への書き込みを行う。
【0053】
コンフィグレーション分配部1214は、メモリ制御部1213から受け取ったコンフィグレーションデータをデコードして各機能ブロックに信号を送る。
【0054】
信号入力部1215a〜1215d(1515,1615)は、PE制御部1211(1511,1611)によってその動作が制御され、コンフィグレーション分配部1214(1514,1614)からコンフィグレーションを受け取ってPEへの入力信号を受け取るか否かを決める。入力信号を受け取ると、演算部1216(1516,1616)にデータを送る。
【0055】
演算部1216,1516,1616は、入力信号から受け取ったデータに対してコンフィグレーション分配部1214,1514,1614から指示された演算を施す。なお、演算の内容は、PE毎に異なる。
【0056】
具体的に、例えば、合流用PE121であれば、演算部1216は、入力のうちの1つだけ有効データであった場合、それを結果として出力し、また、有効データが無ければ、無効データを出力する。なお、複数の有効データが同時に入力された場合は、動作は定義されていない。
【0057】
また、例えば、タイミング用PE161であれば、演算部1616でデータを遅延させ、コンフィグレーション分配部1614から指示されたサイクル分遅れたデータを結果として出力する。
【0058】
さらに、ゲートPE151であれば、演算部1516は、ゲートとなる信号が有効を表す時、ゲートされる信号を結果として出力し、ゲートとなる信号が無効を表していれば、無効データを結果として出力する。
【0059】
なお、ゲート信号がどのような状態の場合に有効/無効を表すのかは、コンフィグレーション分配部1514から演算部1516に指示される。また、演算部1516から出力される結果は、出力部1517に転送される。
【0060】
出力部1217(1517,1617)は、コンフィグレーション分配部1214(1514,1614)からレジスタを更新するように指示されていた場合、演算部1216(1516,1616)から結果を受け取り、内部に持っているレジスタに蓄える。
【0061】
なお、演算部1216(1516,1616)が動作していない場合、または、無効データに対する演算を行った場合は、内部に持っているレジスタに無効データを蓄える。
【0062】
さらに、コンフィグレーション分配部1214(1514,1614)からレジスタを更新しないように指示されていた場合は、レジスタを更新せず、また、リセットを指示されていた場合は、レジスタに蓄えられたデータを無効データとする。
【0063】
次に、パイプライン型ではない動的再構成可能な回路の動作を説明する。ここで、クロックの複数サイクルの間継続して有効となるデータをパイプライン型ではないデータと呼び、パイプライン型ではないデータを含めて多重化を行う回路をパイプライン型ではないデータ用の多重化回路と呼ぶことにする。
【0064】
すなわち、ループを繰り返す間中同じ値を保持する場合など、複数回同じ値を参照する場合は、レジスタに値を登録し、有効データを出し続けるパイプライン型ではない回路を用いる場合がある。
【0065】
図10は半導体集積回路(動的再構成可能な回路)の他の例を概略的に示すブロック図であり、パイプライン型ではないデータ用の多重化回路を示すものである。なお、図10の回路は、3組の入力信号に対して所定のPE(230)を多重化して用い、結果を3つのゲートPEおよびレジスタPEを介して下流回路に流すものである。
【0066】
図10において、参照符号211,214;212,215および213,216は一対のペアとして使用される3組の入力側のPE(上流PE)、221および222は合流用PE、並びに、230は多重化して使用されるPEを示している。
【0067】
また、参照符号241〜243は出力側のPE(下流PE)、251〜253は出力側のゲートPE、260はタイミング(遅延)用PE、271〜276は入力側のゲートPE、280はカウンタPE、291〜293は出力側のレジスタPEを示している。
【0068】
ここで、第1組の入力信号はPE211,214の出力信号であり、第2組の入力信号はPE212,215の出力信号であり、そして、第3組の入力信号はPE213,216の出力信号である。
【0069】
さらに、ゲートPE271〜276は、カウンタPE280の出力信号によって制御され、また、ゲートPE251〜253は、タイミング用PE260の出力信号によって制御される。
【0070】
なお、図10において、前述した図1と同様に、多重化して使用されるPE230は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用される。
【0071】
図11〜図17は図10に示す半導体集積回路の動作の一例を説明するための図である。
【0072】
まず、図11に示されるように、クロックの1サイクル目において、第1組〜第3組のPE211,214;212,215および213,216からの信号は、出力されている。このとき、カウンタPE280が活性化される。
【0073】
次に、図12に示されるように、クロックの2サイクル目において、カウンタPE280の出力信号によりゲートPE271,274に対して第1組のPE211,214の出力信号が取り込まれる。
【0074】
さらに、図13に示されるように、クロックの3サイクル目において、ゲートPE271,274を介した第1組のPE211,214の出力信号は、合流用PE221,222に取り込まれる。
【0075】
このとき、カウンタPE280の出力信号によりゲートPE272,275に対して第2組のPE212,215の出力信号が取り込まれる。
【0076】
そして、図14に示されるように、クロックの4サイクル目において、合流用PE221,222に取り込まれた第1組のPE211,214の出力信号は、多重化して使用されるPE230に供給されて所定の処理が行われる。
【0077】
このとき、ゲートPE272,275を介した第2組のPE212,215の出力信号は、合流用PE221,222に取り込まれる。また、カウンタPE280の出力信号によりゲートPE273,276に対して第3組のPE213,216の出力信号が取り込まれる。さらに、タイミング用PE260もタイミング信号を生成するために活性化される。
【0078】
その後、図15に示されるように、クロックの5サイクル目において、PE230で所定の処理が行われた第1組の出力信号(処理済信号)は、タイミング用PE260からのタイミング信号によりゲートPE251に取り込まれる。
【0079】
このとき、合流用PE221,222に取り込まれた第2組のPE212,215の出力信号は、多重化して使用されるPE230に供給されて所定の処理が行われる。また、ゲートPE273,276を介した第3組のPE213,216の出力信号は、合流用PE221,222に取り込まれる。
【0080】
さらに、カウンタPE280の出力信号によりゲートPE271,274に対して再び第1組のPE211,214の出力信号が取り込まれる。
【0081】
その後、図16に示されるように、クロックの6サイクル目において、ゲートPE251に取り込まれた第1組の処理済信号は、レジスタPE291に供給されて保持される。
【0082】
このとき、PE230で所定の処理が行われた第2組の処理済信号は、タイミング用PE260からのタイミング信号によりゲートPE252に取り込まれる。また、合流用PE221,222に取り込まれた第3組のPE213,216の出力信号は、多重化して使用されるPE230に供給されて所定の処理が行われる。
【0083】
さらに、ゲートPE271,274を介した第1組のPE211,214の出力信号は、合流用PE221,222に取り込まれる。そして、カウンタPE280の出力信号によりゲートPE272,275に対して再び第2組のPE212,215の出力信号が取り込まれる。
【0084】
そして、図17に示されるように、クロックの7サイクル目において、レジスタPE291に保持された第1組の処理済信号は、PE241に供給されてさらなる処理が行われることになる。
【0085】
このとき、ゲートPE252に取り込まれた第2組の処理済信号は、レジスタPE292に供給されて保持される。また、PE230で所定の処理が行われた第3組の処理済信号は、タイミング用PE260からのタイミング信号によりゲートPE253に取り込まれる。
【0086】
さらに、合流用PE221,222に取り込まれた第1組のPE211,214の出力信号は、再び多重化して使用されるPE230に供給されて所定の処理が行われる。
【0087】
また、ゲートPE272,275を介した第2組のPE212,215の出力信号は、合流用PE221,222に取り込まれる。そして、カウンタPE280の出力信号によりゲートPE273,276に対して再び第3組のPE213,216の出力信号が取り込まれる。
【0088】
以上の処理を繰り返すことで、3組のPE211,214;212,215および213,216の出力信号を、多重化して使用されるPE230で順次処理して下流のPE241,242および243に流すようになっている。
【0089】
上述したパイプライン型ではない動的再構成可能な回路では、2つの合流用PE221,222、9つのゲートPE251〜253,271〜276、タイミング用PE260、カウンタPE280、並びに、3つのレジスタPE291〜293が必要になる。すなわち、PE230を多重化して使用するために、合計16個のPEが必要になる。
【0090】
以下、本発明による多重化用補助PEおよび半導体集積回路の各実施例を、添付図面を参照して詳述する。
【0091】
図18は第1実施例の半導体集積回路(動的再構成可能な回路)を概略的に示すブロック図であり、3組の入力信号に対して所定のPE(3)を多重化して用い、結果を下流回路に流すものを示している。
【0092】
図18において、参照符号11,14;12,15および13,16は一対のペアとして使用される3組の入力側のPE(上流PE)、2は多重化用補助PE、3は多重化して使用されるPE、並びに、41〜43は出力側のPE(下流PE)を示している。
【0093】
ここで、第1組の入力信号はPE11および14の出力信号であり、第2組の入力信号はPE12および15の出力信号であり、そして、第3組の入力信号はPE13および16の出力信号である。
【0094】
図18において、多重化して使用されるPE3は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用される。
【0095】
図19は図18に示す半導体集積回路における多重化用補助PE2の一例を示すブロック図である。
【0096】
図19に示されるように、多重化用補助PE2は、PE制御部21,コンフィグレーションメモリ22,メモリ制御部23,コンフィグレーション分配部24,4つの信号入力部25a〜25d,データ選択部26および出力部27を有する。
【0097】
さらに、多重化用補助PE2は、4つの遅延部26a〜26dおよび4つの出力ゲート部27a〜27dを有する。
【0098】
ここで、PE制御部21,コンフィグレーションメモリ22,メモリ制御部23,コンフィグレーション分配部24,信号入力部25a〜25dおよび出力部27は、図7〜図9を参照して説明したものに対応する。
【0099】
すなわち、PE制御部21は、動的再構成可能な回路全体を制御している制御部から、リセット,動作開始/停止,一時停止,次にどの部分を実行するか、メモリ読出/書込等の指示を制御信号として受け取り、PE内部の機能ブロックに信号を伝達する。
【0100】
コンフィグレーションメモリ22は、PEのコンフィグレーションを複数蓄えておくメモリであり、メモリ制御部23の指示に従って、読み出しおよび書き込みができるようになっている。
【0101】
メモリ制御部23は、PE制御部21からの指示を受けて動作する。すなわち、PE制御部21からコンフィグレーションのどの部分を次に実行するかの指示を受け取った場合、コンフィグレーションメモリ22から該当するデータを読み出してコンフィグレーション分配部24に転送する。
【0102】
また、PE制御部21からメモリ読出/書込のメモリアクセスの指示を受け取った場合、メモリアクセス用のポートを通じてデータをやり取りし、コンフィグレーションメモリ22から読み出し、または、コンフィグレーションメモリ22への書き込みを行う。
【0103】
コンフィグレーション分配部24は、メモリ制御部23から受け取ったコンフィグレーションデータをデコードして各機能ブロックに信号を送る。
【0104】
信号入力部25a〜25dは、PE制御部21によってその動作が制御され、コンフィグレーション分配部24からコンフィグレーションを受け取って多重化用補助PE2への入力信号DI00,DI01〜DI30,DI31を受け取るか否かを決める。
【0105】
図19において、例えば、各入力信号線に記載された『16+1』は、入力データ16ビットとバリッド信号1ビットを表し、また、各出力信号線に記載された『16+1』は、出力データ16ビットとバリッド信号1ビットを表している。
【0106】
また、遅延部26a〜26dの前後の2ビットデータは、2つのデータのバリッド信号のみを入出力することを表している。
【0107】
そして、信号入力部25a〜25dでは、入力信号DI00〜DI31のバリッド信号とコンフィグレーション分配部24から与えられた信号とを比較し、条件を満たしていれば、入力データをそのままデータ選択部26に供給する。このとき、信号入力部25a〜25dは、遅延部26a〜26dに対してバリッド信号を2ビット纏めて供給する。
【0108】
データ選択部26は、多重化する回路にどの信号を送るかを選択する部分であり、選択の方法には、固定の優先順位を割り振る方法やラウンドロビン(round robin)など様々な方法が考えられる。
【0109】
なお、以下の記載では、図1〜図6を参照して説明したパイプライン型回路向けモード、並びに、図10〜図17を参照して説明したパイプライン型ではないデータが入ったときのn分割選択モード(自律モード)を説明する。ここで、どちらのモードを実行するかは、コンフィグレーション分配部24からの信号により規定される。
【0110】
遅延部26a〜26dは、PE制御部21,コンフィグレーション分配部24およびデータ選択部26からの信号を受け取り、入力信号のバリッド信号を遅延して出力ゲート部27a〜27dに供給する。
【0111】
遅延部26a〜26dでは、コンフィグレーション分配部24によって指定されたサイクルだけ入力されたバリッド信号を遅延させて出力ゲート部27a〜27dに送る。
【0112】
すなわち、遅延部26a〜26dは、バリッド信号の入力と同じサイクルでデータ選択部26から選択信号を受け取り、自身が属するチャンネルが選択されていない場合はバリッド信号を両方とも無効にしてから遅延する。
【0113】
また、コンフィグレーションのプログラムを開始する際には、全てのバリッド信号用のレジスタをリセットした状態から開始する。
【0114】
出力部27は、PE制御部21からの信号を受け取って、データ選択部26からの信号(16+1:16ビットのデータおよび1ビットのバリッド信号)を制御して出力信号(PE3の入力信号)DO40,DO41として出力する。
【0115】
すなわち、出力部27では、毎サイクル、データ選択部26から送られてきたデータをレジスタに取り込み、出力信号DO40,DO41として出力する。
【0116】
出力ゲート部27a〜27dは、対応する遅延部26a〜26dの出力信号と共に、入力信号(PE3の出力信号)DI40,DI41を受け取り、PE制御部21およびコンフィグレーション分配部24からの信号に従って出力信号DO00,DO01〜DO30,DO31を出力する。
【0117】
ここで、図19に示す多重化用補助PE2は、単体で四多重まで対応可能なものであり、多重化して用いるPE3の入出力はそれぞれ2つまでとなっている。また、多重化して用いるPE3とは、信号(ポート)DI40,DI41およびDO40,DO41により結合される。
【0118】
なお、PE3により処理が行われる上流の3組のPE11,14;12,15および13,16からの入力データは、信号入力部25a,25bおよび25cに対して、入力信号DI00,DI01;DI10,DI11;DI20,DI21として供給される。
【0119】
そして、PE3により処理が行われた出力信号は、下流の3つのPE41,42および43に対して、出力信号DO00,DO10およびDO20として供給される。
【0120】
また、タイミングポートTPには、例えば、図10〜図17を参照して説明したパイプライン型ではないデータの処理を行う場合(データ選択部26が自律モードで動作する場合)、他のPEから動作開始のタイミング信号TSを受け取るために使用する。このタイミング信号TSは、図10におけるカウンタPE280からの入力信号に相当する。
【0121】
ここで、パイプライン型ではないデータの処理を行うモードでは、バリッド信号を受け取ったかどうかを判定する部分まではパイプライン型モードと同じ振る舞いをする。
【0122】
そして、バリッド信号を受け取ったときのみ、出力ゲート部27a〜27dのバリッド信号と出力データを更新し、そうではないときは更新しない。なお、出力データは、出力信号DO00,DO11〜DO30,DO31として出力する。
【0123】
次に、上記2つのモード、すなわち、図20〜図24を参照してパイプライン型回路向けモード、並びに、図25〜図29を参照してパイプライン型ではないデータが入ったときのn分割選択モードを説明する。
【0124】
図20〜図24は図19に示す多重化用補助PEの動作の一例を説明するための図であり、図1および図2〜図6を参照して説明したパイプライン型の動的再構成可能な回路として使用したときの動作を示すものである。
【0125】
パイプライン型回路向けモードでは、信号入力部25a〜25dから有効な信号を受け取ると、それをそのまま出力部27に出力し、そして、遅延部26a〜26dには、有効信号が来たチャンネルを選択するように信号を送るようになっている。
【0126】
すなわち、まず、図20に示されるように、クロックの1サイクル目において、第1組のPE11,14から信号が出力される。
【0127】
次に、図21に示されるように、クロックの2サイクル目において、第1組のPE11,14の出力信号は、対応する信号入力部25aおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25aを介して遅延部26aに取り込まれる。このとき、第2組のPE12,15から信号が出力される。
【0128】
すなわち、クロックの2サイクル目において、第1組のPE11,14のデータおよびバリッド信号は、信号入力部25aおよびデータ選択部26を介して出力部27に取り込まれる。
【0129】
また、第1組のPE11,14のバリッド信号は、信号入力部25aを介して遅延部26aに取り込まれる。
【0130】
さらに、図22に示されるように、クロックの3サイクル目において、出力部27に取り込まれた第1組のPE11,14の出力信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0131】
このとき、第2組のPE12,15の出力信号は、対応する信号入力部25bおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25bを介して遅延部26bに取り込まれる。このとき、第3組のPE13,16から信号が出力される。
【0132】
なお、遅延部26aに取り込まれた第1組のPE11,14からのバリッド信号は、そのまま保持される。
【0133】
その後、図23に示されるように、クロックの4サイクル目において、遅延部26aに取り込まれた第1組のPE11,14からのバリッド信号により、PE3により所定の処理が行われた第1組の出力信号(処理済信号)が出力ゲート部27aに取り込まれる。
【0134】
このとき、出力部27に取り込まれた第2組のPE12,15からの信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0135】
また、第3組のPE13,16の出力信号は、対応する信号入力部25cおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25cを介して遅延部26cに取り込まれる。
【0136】
ここで、第1組のPE11,14の処理も再び行われ、また、遅延部26bに取り込まれた第2組のPE12,15からのバリッド信号は、そのまま保持される。
【0137】
そして、図24に示されるように、クロックの5サイクル目において、出力ゲート部27aに取り込まれていた第1組の処理済信号は、下流のPE41に供給される。
【0138】
このとき、遅延部26bに取り込まれた第2組のPE12,15からのバリッド信号により、PE3により所定の処理が行われた第2組の処理済信号が出力ゲート部27bに取り込まれる。
【0139】
また、出力部27に取り込まれた第3組のPE13,16からの信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0140】
さらに、第1組のPE11,14からの信号は、再び対応する信号入力部25aおよびデータ選択部26を介して出力部27に取り込まれると共に、信号入力部25aを介して遅延部26aに取り込まれる。
【0141】
そして、第2組のPE12,15の処理も再び行われ、また、遅延部26cに取り込まれた第3組のPE13,16からのバリッド信号は、そのまま保持される。
【0142】
以上の処理を繰り返すことで、3組のPE11,14;12,15および13,16からの信号を、PE3により順次所定の処理を行って下流のPE41,42および43に流すようになっている。
【0143】
図25〜図29は図19に示す多重化用補助PEの動作の他の例を説明するための図であり、図10および図11〜図17を参照して説明したパイプライン型ではない動的再構成可能な回路として使用したときの動作を示すものである。
【0144】
ここで、パイプライン型ではないデータが入ったときのn分割選択モードでは、動作を開始するモードが2つある。
【0145】
その1つは、コンフィグレーションのプログラムを開始すると同時に動作を開始するモードであり、もう1つは、タイミングポートTPからタイミング信号TSを受け取ったら動作を開始するモードである。
【0146】
いずれの場合にも、動作開始後、選択するチャンネルを0からnまで順に変えていく。ここで、nは、0〜3のいずれかであり、コンフィグレーション分配部24により設定する。nを選んだ後は、再び0に戻る。なお、図25〜図29の例では、n=3である。
【0147】
また、各チャンネルを選択している時間(サイクル数)は、コンフィグレーション分配部24で設定する。どの信号が選択されたかは、コンフィグレーション分配部24から選択信号として遅延部26a〜26dに伝えられる。
【0148】
そして、選択されたチャンネルから有効データを受け取ったときは、それを出力部27に送る。また、有効データが来ていなかったときは、無効データを出力部27に送るようになっている。
【0149】
すなわち、まず、図25に示されるように、クロックの1サイクル目において、第1組〜第3組のPE11,14;12,15および13,16からの信号は、出力されている。
【0150】
次に、図26に示されるように、クロックの2サイクル目において、コンフィグレーション分配部24からの信号により、信号入力部25aおよびデータ選択部26を介して出力部27に第1組のPE11,14のデータおよびバリッド信号が取り込まれる。
【0151】
このとき、信号入力部25aを介して遅延部26aに第1組のPE11,14のバリッド信号が取り込まれる。
【0152】
また、信号入力部25bおよび25cには、第2組のPE12,15および第3組のPE13,16のデータおよびバリッド信号がそれぞれ取り込まれる。
【0153】
さらに、図27に示されるように、クロックの3サイクル目において、第1組のPE11,14の出力信号(データおよびバリッド信号)は、多重化して使用されるPE3に供給されて所定の処理が行われる。
【0154】
このとき、コンフィグレーション分配部24からの信号により、信号入力部25bおよびデータ選択部26を介して出力部27に第2組のPE12,15のデータおよびバリッド信号が取り込まれる。
【0155】
また、信号入力部25bを介して遅延部26bに第2組のPE12,15のバリッド信号が取り込まれる。ここで、信号入力部25cおよび25aには、第3組のPE13,16および第1組のPE11,14のデータおよびバリッド信号がそれぞれ取り込まれる。
【0156】
その後、図28に示されるように、クロックの4サイクル目において、遅延部26aに取り込まれた第1組のPE11,14からのバリッド信号により、PE3により所定の処理が行われた第1組の出力信号(処理済信号)が出力ゲート部27aに取り込まれる。
【0157】
このとき、出力部27に取り込まれた第2組のPE12,15の出力信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0158】
さらに、コンフィグレーション分配部24からの信号により、信号入力部25cおよびデータ選択部26を介して出力部27に第3組のPE13,16のデータおよびバリッド信号が取り込まれる。
【0159】
また、信号入力部25cを介して遅延部26cに第3組のPE13,16のバリッド信号が取り込まれる。ここで、信号入力部25aおよび25bには、第1組のPE11,13および第2組のPE12,14のデータおよびバリッド信号がそれぞれ取り込まれる。
【0160】
そして、図29に示されるように、クロックの5サイクル目において、出力ゲート部27aに取り込まれていた第1組の処理済信号は、下流のPE41に供給される。
【0161】
このとき、遅延部26bに取り込まれた第2組のPE12,15からのバリッド信号により、PE3により所定の処理が行われた第2組の処理済信号が出力ゲート部27bに取り込まれる。
【0162】
また、出力部27に取り込まれた第3組のPE13,16の出力信号は、多重化して用いるPE3に供給されて所定の処理が行われる。
【0163】
さらに、コンフィグレーション分配部24からの信号により、再び信号入力部25aおよびデータ選択部26を介して出力部27に第1組のPE11,14のデータおよびバリッド信号が取り込まれる。
【0164】
また、信号入力部25aを介して遅延部26aに第1組のPE11,14のバリッド信号が取り込まれる。ここで、信号入力部25bおよび25cには、第2組のPE12,14および第3組のPE13,16のデータおよびバリッド信号がそれぞれ取り込まれる。
【0165】
以上の処理を繰り返すことで、3組のPE11,14;12,15および13,16からの信号を、多重化して用いるPE3により順次所定の処理を行って下流のPE41,42および43に流すようになっている。
【0166】
ここで、図25〜図29を参照して説明したパイプライン型ではない動的再構成可能な回路では、図10〜図17を参照して説明した回路における入力部分のゲートPE271〜276および合流用PE221,222の機能を1サイクルで実行可能である。さらに、出力部分のゲートPE251〜253およびレジスタPE291〜293も1サイクルで実行可能であるため、少ないサイクルで処理を行うことができる。
【0167】
上述した図20〜図24および図25〜図29の実施例において、多重化回路(多重化用補助PE)の入力タイミングと出力タイミングの差は、多重化するPE(または、動的再構成可能な回路に繋がった回路)によって決まっている。
【0168】
また、多重化の入力と出力を1つのPE(多重化用補助PE)で処理し、PE内部で入力信号から出力タイミングを生成する。これにより、例えば、図1の動的再構成可能な回路で必要であったタイミングを生成するタイミング用PE161〜163を削減することが可能になる。
【0169】
なお、遅延器(タイミング用PEに設けられた遅延要素)の部分だけを比較しても、図1の回路ではPEのデータ幅分の遅延器が必要だったのに対して、本実施例の動的再構成可能な回路では、1入力当たり1ビットの遅延器で済ませることができる。
【0170】
また、入力と出力のタイミング差はチャンネル間で共通なので、本実施例の多重化用補助PEでは、タイミングのコンフィグレーションを1つに纏めることで、タイミング用のコンフィグレーションメモリおよびコンフィグレーション分配部を削減している。
【0171】
さらに、図1の合流用PE121,122、出力部分のゲートPE151〜153およびレジスタPEを纏めたことにより、制御部およびコンフィグレーション分配部の回路を削減している。
【0172】
また、図1の合流用PEおよび出力部分のゲートPEを纏め、タイミング生成を内部で行うことにより、ゲート部分の比較器を削減している。
【0173】
そして、前述した図10の動的再構成可能な回路では、汎用のカウンタPEおよびカウンタの値によりゲートを開閉する汎用ゲートPEを使用している。この汎用PEでは、自由に値を設定できるようにするために、例えば、1つのPEで1つのコンテキスト当たり16ビットずつのコンフィグレーションメモリを必要とする。
【0174】
すなわち、図10の動的再構成可能な回路では、1つのコンテキスト当たり64ビット以上のメモリを必要とする。
【0175】
これに対して、本実施例の動的再構成可能な回路における多重化用補助PEでは、例えば、16多重の入力までをサーポートする場合、入力の系統1つ当たり3ビット、計12ビットを使用するだけで実現可能である。
【0176】
これにより、本実施例の動的再構成可能な回路によれば、コンフィグレーションメモリを削減することができる。さらに、カウンタやゲートPEの比較器に比べて、多重化用補助PEではビット幅の小さい回路で構成しているため、論理回路を小さくすることもできる。
【0177】
図30および図31は図1に示す半導体集積回路(動的再構成可能な回路)における合流用PE〜ゲートPEまでを図19に対応させて示すブロック図であり、図19に示す多重化用補助PEに対応した機能ブロックで示したものである。
【0178】
なお、合流用PE122は合流用PE121と同様の構成であり、タイミング用PE161および163はタイミング用PE162と同様の構成であり、そして、ゲート用PE151および153はゲート用PE152と同様の構成である。
【0179】
まず、図30に示されるように、合流用PE121(122)は、PE制御部1211,コンフィグレーションメモリ1212,メモリ制御部1213,コンフィグレーション分配部1214,信号入力部1215a〜1215d,演算部1216および出力部1217を有する。
【0180】
また、図31に示されるように、タイミング用PE162(161,163)は、PE制御部1621,コンフィグレーションメモリ1622,メモリ制御部1623,コンフィグレーション分配部1624,信号入力部1625,演算部1626および出力部1627を有する。
【0181】
さらに、図31に示されるように、ゲートPE152(151,153)は、PE制御部1521,コンフィグレーションメモリ1522,メモリ制御部1523,コンフィグレーション分配部1524,信号入力部1525,演算部1526および出力部1527を有する。
【0182】
ところで、図19に示す多重化用補助PE2は、この多重化用補助PE2に対応する図30および図31に示す合流用PE121,122、タイミング用PE161〜163並びにゲート用PE151〜153よりも大幅な回路規模の削減を可能としている。
【0183】
回路規模としては、PE制御部およびコンフィグレーション分配部を合わせた大きさを『1』と仮定すると、カウンタPEは『16』,タイミングPEは『6』,合流用PEは『11』,レジスタPEは『9』,そして,ゲートPEは『4』程度と見積もられる。この値には、コンフィグレーションメモリとメモリ制御部の規模は入っていない。
【0184】
そして、コンフィグレーションは、1コンテキスト当たり、それぞれ18ビット,17ビット,5ビット,18ビット,および,2ビットと見積もられる。
【0185】
具体的に、4×2入力4×1出力を想定した場合、回路規模は、およそ図1の動的再構成可能な回路の『147』から本実施例の『124』に削減することができる。
【0186】
また、コンフィグレーションビットは、図1の動的再構成可能な回路の192ビットから本実施例の36ビットに削減することができる。さらに、メモリ制御部は、どのようなPEでもほぼ同じ大きさと見積もられるので、本実施例では、PE数が減った分だけ回路規模を縮小することが可能になる。
【0187】
以上の見積もりでは、各機能専用にPEを作成した場合を想定しているが、実際には、PEの使用率を上げるため、『20』以上の大きさの多機能PEが利用されると考えられる。
【0188】
このとき、コンフィグレーションも1つのPEで1つのコンテキスト当たり22ビット程度以上になると考えられる。この場合、元の回路規模は『460』程度以上、コンフィグレーションは500ビット程度以上となるため、本実施例の動的再構成可能な回路によれば、より一層大きな回路規模の削減が可能になる。
【0189】
すなわち、以下に詳述する第2実施例では、使用するPE数を削減して回路面積の低減およびPEの効率的な利用をより一層大きなものとすることができる。
【0190】
図32は第2実施例の半導体集積回路を概略的に示すブロック図である。
ここで、第2実施例の半導体集積回路(動的再構成可能な回路)は、パイプライン型のデータとパイプライン型ではないデータが混在する場合で、かつ、多重化用補助PEを多重化して使用するものである。
【0191】
すなわち、第2実施例の動的再構成可能な回路は、図19に示す多重化用補助PEを2つ(20a,20b)多重化して使用する。そして、PE30のレイテンシーを多重化用補助PE20aのコンフィグレーションで与え、PE30とPE20aのレイテンシーの合計を20bのコンフィグレーションで与えるようになっている。
【0192】
図32において、参照符号11a,14a;12a,15a;11b,14b;12b,15bおよび13b,16bは一対のペアとして使用される5組の入力側のPE(上流PE)、並びに、20aおよび20bは多重化用補助PEを示している。
【0193】
また、参照符号30は多重化して使用されるPE、そして、41a,42aおよび41b〜43bは出力側のPE(下流PE)を示している。
【0194】
ここで、第1組および第4組のPE11a,14aおよび12b,15bは、所定のサイクルで信号を出力するものであり、また、第2組,第3組および第5組のPE12a,15a;11b,14bおよび13b,16bは信号を保持して出力する。
【0195】
また、第1組および第2組のPE11a,14aおよび12a,15aの出力信号は、第1の多重化用補助PE20aに供給されている。また、第2組〜第5組のPE11b,14b;12b,15bおよび13b,16bの出力信号は、第2の多重化用補助PE20bに供給されている。
【0196】
さらに、第2の多重化用補助PE20bの出力信号(DO40b,DO41b)は、第1の多重化用補助PE20aの入力(DI20a,DI21a:一対のPE13a,16aの出力信号の入力に相当)に供給されている。また、多重化して使用されるPE30は、第1の多重化用補助PE20aとの間で信号の遣り取りを行うようになっている。
【0197】
そして、第2の多重化用補助PE20bは、第1の多重化用補助PE20aの出力信号(DO20a)を受け取るようになっている。
【0198】
なお、図32では、一対のペアとして使用される5組の入力側のPE11a,14a;12a,15a;11b,14b;12b,15bおよび13b,16bを処理するようになっているが、多重化用補助PEにより様々に変形することができる。
【0199】
また、図32において、多重化して使用されるPE30は、1つのPEとして描かれているが、実際には、例えば、複数のPEを用いた回路が適用されるのは前述した第1実施例と同様である。
【0200】
図33〜図42は図32に示す半導体集積回路の動作の一例を説明するための図である。
まず、図33に示されるように、クロックの1サイクル目において、第1組のPE11a,14aのから信号が出力される。このとき、第2組,第3組および第5組のPE12a,15a;11b,14bおよび13b,16bからの信号は、出力されている。
【0201】
次に、図34に示されるように、クロックの2サイクル目において、第1組のPE11a,14aの出力信号が第1の多重化用補助PE20aに取り込まれる。
【0202】
このとき、第3組のPE11b,14bの出力信号が第2の多重化用補助PE20bに取り込まれる。
【0203】
ここで、第1および第2の多重化用補助PE20a,20bに対して第1組および第3組のPE11a,14aおよびPE11b,14bの出力信号が取り込まれるのは、前述した図19における出力部27に信号が取り込まれるのに対応する。
【0204】
さらに、図35に示されるように、クロックの3サイクル目において、第1組のPE11a,14aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0205】
このとき、第2組のPE12a,15aの出力信号が第1の多重化用補助PE20aに取り込まれる。また、第4組のPE12b,15bから信号が出力される。なお、第2の多重化用補助PE20bに取り込まれた第3組のPE11b,14bの出力信号は、第2の多重化用補助PE20bにそのまま保持される。
【0206】
その後、図36に示されるように、クロックの4サイクル目において、PE30により所定の処理が行われた第1組の出力信号(処理済信号)が第1の多重化用補助PE20aに取り込まれる。
【0207】
ここで、第1組の処理済信号が第1の多重化用補助PE20aに取り込まれるのは、前述した図19の多重化用補助PE(20a)における出力ゲート部27aに信号が取り込まれるのに対応する。
【0208】
このとき、第2組のPE12a,15aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。また、第2の多重化用補助PE20bに取り込まれて保持されていた第3組のPE11b,14bの出力信号は、第1の多重化用補助PE20aに取り込まれる。
【0209】
なお、第2の多重化用補助PE20bには、第4組のPE12b,15bの出力信号が取り込まれる。
【0210】
そして、図37に示されるように、クロックの5サイクル目において、第1の多重化用補助PE20aに取り込まれていた第1組の処理済信号は、下流のPE41aに供給される。
【0211】
このとき、PE30により所定の処理が行われた第2組の処理済信号は第1の多重化用補助PE20aに取り込まれ、第3組のPE11b,14bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0212】
ここで、第2組の処理済信号が第1の多重化用補助PE20aに取り込まれるのは、前述した図19の多重化用補助PE(20a)における出力ゲート部27bに信号が取り込まれるのに対応する。
【0213】
また、第2の多重化用補助PE20bに取り込まれた第4組のPE12b,15bの出力信号は、第1の多重化用補助PE20aに取り込まれ、第2の多重化用補助PE20bには、第5組のPE13b,16bの出力信号が取り込まれる。
【0214】
さらに、図38に示されるように、クロックの6サイクル目において、第1の多重化用補助PE20aに取り込まれていた第2組の処理済信号は、下流のPE42aに供給される。
【0215】
このとき、PE30により所定の処理が行われた第3組の処理済信号は第1の多重化用補助PE20aに取り込まれ、第4組のPE12b,15bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0216】
ここで、第3組の処理済信号が第1の多重化用補助PE20aに取り込まれるのは、前述した図19の多重化用補助PE(20a)における出力ゲート部27cに信号が取り込まれるのに対応する。
【0217】
また、第2の多重化用補助PE20bに取り込まれた第5組のPE13b,16bの出力信号は、第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bは、第5組のPE13b,16bの出力信号をそのまま保持する。また、第1組のPE11a,14aからの信号も出力される。
【0218】
そして、図39に示されるように、クロックの7サイクル目において、第1の多重化用補助PE20aに取り込まれていた第3組の処理済信号は、第2の多重化用補助PE20bに取り込まれる。
【0219】
ここで、第1の多重化用補助PE20aに取り込まれていた第3組の処理済信号が第2の多重化用補助PE20bに取り込まれるのは、前述した図19の多重化用補助PE(20b)における出力ゲート部27aに信号が取り込まれるのに対応する。
【0220】
このとき、PE30により所定の処理が行われた第4組の処理済信号は第1の多重化用補助PE20aに取り込まれる。また、第1の多重化用補助PE20aに取り込まれた第5組のPE13b,16bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0221】
さらに、第1組のPE11a,14aの出力信号は、再び第1の多重化用補助PE20aに取り込まれ、また、第3組のPE11b,14bの出力信号は、再び第2の多重化用補助PE20bに取り込まれる。
【0222】
次に、図40に示されるように、クロックの8サイクル目において、第2の多重化用補助PE20bに取り込まれていた第3組の処理済信号は、下流のPE41bに供給される。
【0223】
このとき、第1の多重化用補助PE20aに取り込まれていた第4組の処理済信号は、第2の多重化用補助PE20bに取り込まれ、また、PE30により所定の処理が行われた第5組の処理済信号は第1の多重化用補助PE20aに取り込まれる。
【0224】
さらに、第1の多重化用補助PE20aに取り込まれた第1組のPE11a,14aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0225】
そして、第2組のPE12a,15aの出力信号は、再び第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bに取り込まれた第4組のPE11b,14bの出力信号は、そのまま保持される。なお、第4組のPE12b,15bからの信号も出力される。
【0226】
その後、図41に示されるように、クロックの9サイクル目において、第2の多重化用補助PE20bに取り込まれていた第4組の処理済信号は、下流のPE42bに供給される。
【0227】
このとき、第1の多重化用補助PE20aに取り込まれていた第5組の処理済信号は、第2の多重化用補助PE20bに取り込まれ、また、PE30により所定の処理が行われた第1の処理済信号は第1の多重化用補助PE20aに取り込まれる。
【0228】
さらに、第1の多重化用補助PE20aに取り込まれた第2組のPE12a,15aの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0229】
また、第3組のPE11b,14bの出力信号は、再び第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bには、第4組のPE12b,15bの出力信号が取り込まれる。
【0230】
そして、図42に示されるように、クロックの10サイクル目において、第2の多重化用補助PE20bに取り込まれていた第5組の処理済信号は、下流のPE43bに供給される。
【0231】
このとき、第1の多重化用補助PE20aに取り込まれていた第1組の処理済信号は、下流のPE41aに供給され、また、PE30により所定の処理が行われた第2の処理済信号は第1の多重化用補助PE20aに取り込まれる。
【0232】
さらに、第1の多重化用補助PE20aに取り込まれた第3組のPE11b,14bの出力信号は、多重化して使用されるPE30に供給されて所定の処理が行われる。
【0233】
そして、第4組のPE12b,15bの出力信号は、再び第1の多重化用補助PE20aに取り込まれる。なお、第2の多重化用補助PE20bには、第5組のPE13b,16bの出力信号が取り込まれる。
【0234】
以上の処理を繰り返すことで、5組のPEからの信号を、多重化した2つの多重化用補助PE20a,20bを使用して、多重化して用いるPE3により順次所定の処理を行って下流のPE41a,42a,41b,42bおよび43bに流すようになっている。
【0235】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
入力側に設けられた複数の上流PEからの信号を受け取って、多重化して使用される多重化PEに対して前記上流PEからの信号を供給して所定の処理を行わせ、前記多重化PEによる前記所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PEに順次供給する多重化用補助PEであって、
前記複数の上流PEの動作と、対応する前記複数の下流PEへの前記処理済信号の供給とを前記多重化用補助PEの設定により同期させて行い、
前記複数の上流PEのうちの幾つかは、一対の複数組のPEであり、
前記多重化PEに対して、前記各組の上流PEからの信号に対する前記所定の処理を行わせ、
前記各組の処理済信号を当該組の上流PEに対応する前記下流PEに供給することを特徴とする多重化用補助PE。
【0236】
(付記2)
付記1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックのサイクル毎に順次バリッドとなる前記各組のPEからの信号を処理するパイプライン型回路に適用されることを特徴とする多重化用補助PE。
【0237】
(付記3)
付記1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックの複数サイクルでバリッドとなる前記各組のPEからの信号を処理するパイプライン型ではない回路に適用されることを特徴とする多重化用補助PE。
【0238】
(付記4)
付記1〜3のいずれか1項に記載の多重化用補助PEにおいて、
前記多重化用補助PEの設定を行うコンフィグレーション設定部を有することを特徴とする多重化用補助PE。
【0239】
(付記5)
付記4に記載の多重化用補助PEにおいて、
前記コンフィグレーション設定部は、
前記多重化用補助PEのコンフィグレーションを複数蓄えておくコンフィグレーションメモリと、
外部からの制御信号を受け取って、前記多重化用補助PE内部の複数の機能ブロックに信号を伝達するPE制御部と、
前記PE制御部からの指示により前記コンフィグレーションメモリから該当するコンフィグレーションデータを読み出すメモリ制御部と、
前記メモリ制御部からの前記コンフィグレーションデータをデコードして前記各機能ブロックに信号を送るコンフィグレーション分配部と、を有することを特徴とする多重化用補助PE。
【0240】
(付記6)
付記5に記載の多重化用補助PEにおいて、前記複数の機能ブロックは、
前記複数の上流PEからの信号を受け取る複数の信号入力部と、
前記多重化PEに対して前記上流PEからの信号を供給する出力部と、
前記複数の信号入力部を介して前記複数の上流PEからの信号を受け取り、前記出力部への信号を選択するデータ選択部と、
前記処理済信号を受け取って前記複数の下流PEに順次供給する複数の出力ゲート部と、を有することを特徴とする多重化用補助PE。
【0241】
(付記7)
付記6に記載の多重化用補助PEにおいて、
前記複数の上流PEからの信号は、所定ビットのデータおよびバリッド信号を有することを特徴とする多重化用補助PE。
【0242】
(付記8)
付記7に記載の多重化用補助PEにおいて、
前記複数の信号入力部、前記出力部、前記データ選択部および前記出力ゲート部は、それぞれ前記所定ビットのデータおよび前記バリッド信号を処理することを特徴とする多重化用補助PE。
【0243】
(付記9)
付記8に記載の多重化用補助PEにおいて、前記複数の機能ブロックは、さらに、
前記複数の信号入力部を介して供給される前記バリッド信号を受け取って遅延する複数の遅延部を有し、該各遅延部は、対応する前記出力ゲート部に対して遅延された前記バリッド信号を供給することを特徴とする多重化用補助PE。
【0244】
(付記10)
付記1〜9のいずれか1項に記載の多重化用補助PEと、
前記複数の上流PEと、
前記複数の下流PEと、
前記多重化PEと、を有することを特徴とする半導体集積回路。
【0245】
(付記11)
付記10に記載の半導体集積回路において、
前記多重化用補助PEを複数有し、該複数の多重化用補助PEを多重化して使用することを特徴とする半導体集積回路。
【符号の説明】
【0246】
2;20a,20b 多重化用補助PE
3,30,130,230 多重化して使用されるPE(多重化PE)
11,14;12,15;13,16、11a,14a;12a,15a;11b,14b;12b,15b:13b,16b、111,114;112,115;113,116、211,214;212,215;213,216 入力側のPE(上流PE)
21 PE制御部
22 コンフィグレーションメモリ
23 メモリ制御部
24 コンフィグレーション分配部
25a〜25d 信号入力部
26 データ選択部
27 出力部
41〜43;41a,42a,41b〜43b、141〜143、241〜243 出力側のPE(下流PE)
121,122;221,222 合流用PE
151〜153;251〜253 出力側のゲートPE
161〜163;260 タイミング(遅延)用PE
271〜276 入力側のゲートPE
280 カウンタPE
291〜293 出力側のレジスタPE
【特許請求の範囲】
【請求項1】
入力側に設けられた複数の上流PEからの信号を受け取って、多重化して使用される多重化PEに対して前記上流PEからの信号を供給して所定の処理を行わせ、前記多重化PEによる前記所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PEに順次供給する多重化用補助PEであって、
前記複数の上流PEの動作と、対応する前記複数の下流PEへの前記処理済信号の供給とを前記多重化用補助PEの設定により同期させて行い、
前記複数の上流PEのうちの幾つかは、一対の複数組のPEであり、
前記多重化PEに対して、前記各組の上流PEからの信号に対する前記所定の処理を行わせ、
前記各組の処理済信号を当該組の上流PEに対応する前記下流PEに供給することを特徴とする多重化用補助PE。
【請求項2】
請求項1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックのサイクル毎に順次バリッドとなる前記各組のPEからの信号を処理するパイプライン型回路に適用されることを特徴とする多重化用補助PE。
【請求項3】
請求項1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックの複数サイクルでバリッドとなる前記各組のPEからの信号を処理するパイプライン型ではない回路に適用されることを特徴とする多重化用補助PE。
【請求項4】
請求項1〜3のいずれか1項に記載の多重化用補助PEにおいて、
前記多重化用補助PEの設定を行うコンフィグレーション設定部を有することを特徴とする多重化用補助PE。
【請求項5】
請求項4に記載の多重化用補助PEにおいて、
前記コンフィグレーション設定部は、
前記多重化用補助PEのコンフィグレーションを複数蓄えておくコンフィグレーションメモリと、
外部からの制御信号を受け取って、前記多重化用補助PE内部の複数の機能ブロックに信号を伝達するPE制御部と、
前記PE制御部からの指示により前記コンフィグレーションメモリから該当するコンフィグレーションデータを読み出すメモリ制御部と、
前記メモリ制御部からの前記コンフィグレーションデータをデコードして前記各機能ブロックに信号を送るコンフィグレーション分配部と、を有することを特徴とする多重化用補助PE。
【請求項6】
請求項5に記載の多重化用補助PEにおいて、前記複数の機能ブロックは、
前記複数の上流PEからの信号を受け取る複数の信号入力部と、
前記多重化PEに対して前記上流PEからの信号を供給する出力部と、
前記複数の信号入力部を介して前記複数の上流PEからの信号を受け取り、前記出力部への信号を選択するデータ選択部と、
前記処理済信号を受け取って前記複数の下流PEに順次供給する複数の出力ゲート部と、を有することを特徴とする多重化用補助PE。
【請求項7】
請求項6に記載の多重化用補助PEにおいて、
前記複数の上流PEからの信号は、所定ビットのデータおよびバリッド信号を有することを特徴とする多重化用補助PE。
【請求項8】
請求項7に記載の多重化用補助PEにおいて、
前記複数の信号入力部、前記出力部、前記データ選択部および前記出力ゲート部は、それぞれ前記所定ビットのデータおよび前記バリッド信号を処理することを特徴とする多重化用補助PE。
【請求項9】
請求項1〜8のいずれか1項に記載の多重化用補助PEと、
前記複数の上流PEと、
前記複数の下流PEと、
前記多重化PEと、を有することを特徴とする半導体集積回路。
【請求項10】
請求項9に記載の半導体集積回路において、
前記多重化用補助PEを複数有し、該複数の多重化用補助PEを多重化して使用することを特徴とする半導体集積回路。
【請求項1】
入力側に設けられた複数の上流PEからの信号を受け取って、多重化して使用される多重化PEに対して前記上流PEからの信号を供給して所定の処理を行わせ、前記多重化PEによる前記所定の処理が行われた処理済信号を受け取って、出力側に設けられた複数の下流PEに順次供給する多重化用補助PEであって、
前記複数の上流PEの動作と、対応する前記複数の下流PEへの前記処理済信号の供給とを前記多重化用補助PEの設定により同期させて行い、
前記複数の上流PEのうちの幾つかは、一対の複数組のPEであり、
前記多重化PEに対して、前記各組の上流PEからの信号に対する前記所定の処理を行わせ、
前記各組の処理済信号を当該組の上流PEに対応する前記下流PEに供給することを特徴とする多重化用補助PE。
【請求項2】
請求項1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックのサイクル毎に順次バリッドとなる前記各組のPEからの信号を処理するパイプライン型回路に適用されることを特徴とする多重化用補助PE。
【請求項3】
請求項1に記載の多重化用補助PEにおいて、
前記多重化用補助PEは、
当該多重化用補助PEの設定により、クロックの複数サイクルでバリッドとなる前記各組のPEからの信号を処理するパイプライン型ではない回路に適用されることを特徴とする多重化用補助PE。
【請求項4】
請求項1〜3のいずれか1項に記載の多重化用補助PEにおいて、
前記多重化用補助PEの設定を行うコンフィグレーション設定部を有することを特徴とする多重化用補助PE。
【請求項5】
請求項4に記載の多重化用補助PEにおいて、
前記コンフィグレーション設定部は、
前記多重化用補助PEのコンフィグレーションを複数蓄えておくコンフィグレーションメモリと、
外部からの制御信号を受け取って、前記多重化用補助PE内部の複数の機能ブロックに信号を伝達するPE制御部と、
前記PE制御部からの指示により前記コンフィグレーションメモリから該当するコンフィグレーションデータを読み出すメモリ制御部と、
前記メモリ制御部からの前記コンフィグレーションデータをデコードして前記各機能ブロックに信号を送るコンフィグレーション分配部と、を有することを特徴とする多重化用補助PE。
【請求項6】
請求項5に記載の多重化用補助PEにおいて、前記複数の機能ブロックは、
前記複数の上流PEからの信号を受け取る複数の信号入力部と、
前記多重化PEに対して前記上流PEからの信号を供給する出力部と、
前記複数の信号入力部を介して前記複数の上流PEからの信号を受け取り、前記出力部への信号を選択するデータ選択部と、
前記処理済信号を受け取って前記複数の下流PEに順次供給する複数の出力ゲート部と、を有することを特徴とする多重化用補助PE。
【請求項7】
請求項6に記載の多重化用補助PEにおいて、
前記複数の上流PEからの信号は、所定ビットのデータおよびバリッド信号を有することを特徴とする多重化用補助PE。
【請求項8】
請求項7に記載の多重化用補助PEにおいて、
前記複数の信号入力部、前記出力部、前記データ選択部および前記出力ゲート部は、それぞれ前記所定ビットのデータおよび前記バリッド信号を処理することを特徴とする多重化用補助PE。
【請求項9】
請求項1〜8のいずれか1項に記載の多重化用補助PEと、
前記複数の上流PEと、
前記複数の下流PEと、
前記多重化PEと、を有することを特徴とする半導体集積回路。
【請求項10】
請求項9に記載の半導体集積回路において、
前記多重化用補助PEを複数有し、該複数の多重化用補助PEを多重化して使用することを特徴とする半導体集積回路。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【公開番号】特開2010−287122(P2010−287122A)
【公開日】平成22年12月24日(2010.12.24)
【国際特許分類】
【出願番号】特願2009−141495(P2009−141495)
【出願日】平成21年6月12日(2009.6.12)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【公開日】平成22年12月24日(2010.12.24)
【国際特許分類】
【出願日】平成21年6月12日(2009.6.12)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
[ Back to top ]