図1は,リコンフィグ可能なLSIの全体構成図である。リコンフィグ可能なLSI10は,1つのチップに含まれるマクロの場合もあれば,チップそのものの場合もある。図1に示されたLSI10は,演算システムに再構築される主な構成のみ示している。
図1のリコンフィグ可能なLSIは,コンフィグレーションデータを記憶するコンフィグレーションメモリ20と,それぞれ再構築可能な論理回路を有する複数のプロセッサエレメントPEとを有する。プロセッサエレメントPEは,コンフィグレーションメモリ20から読み出されるコンフィグレーションデータCfg_Dataに基づいて所望の演算状態(例えば演算システムまたはその演算処理を分割した演算ステージ)に再構築される。さらに,リコンフィグ可能なLSI10は,複数のプロセッサエレメントPEに対応してそれぞれ設けられ,それぞれに対応するプロセッサエレメントPEの演算状態の構築に使用されるコンフィグレーションデータCfg_Dataを記憶する複数のコンフィグレーションレジスタCfg_Regを有する。
図示されないコンフィグ制御部により,コンフィグレーションメモリ20内のコンフィグレーションデータCfg_Dataが,プロセッサエレメントPEに設けられたコンフィグレーションレジスタCfg_Regに書き込まれる。そして,プロセッサエレメントPEでは,それぞれのコンフィグレーションレジスタCfg_Reg内のコンフィグレーションデータCfg_Dataに基づいて,プロセッサエレメント内部の論理回路(図示せず)と,プロセッサエレメント間を接続するネットワーク回路(図示せず)とが所望の演算状態の回路構成に構築される。
コンフィグ制御部の制御により,要求される演算システムのたびに,その演算システムを構築するためのコンフィグレーションデータCfg_Dataがコンフィグレーションメモリ20からコンフィグレーションレジスタCfg_Regに書き込まれる。さらに,演算システムが複数の演算ステージに分割してその演算処理を実行する場合は,コンフィグ制御部の制御により,演算システムの各演算ステージ毎に,その演算ステージの回路構成を構築するためのコンフィグレーションデータCfg_Dataがコンフィグレーションメモリ20からコンフィグレーションレジスタCfg_Regに書き込まれる。
図2は,リコンフィグ可能なLSI内の電源配線と電源制御部の構成を示す図である。図1に示したリコンフィグ可能なLSI10は,電源配線VDDを有し,複数のプロセッサエレメントPEは,それぞれに設けられた電源制御部Pswにより,電源電圧を供給されまた遮断される。電源制御部Pswは,例えばトランジスタによる電源スイッチであり,それぞれ対応する電源制御信号Pwにより電源供給状態(電源スイッチオン状態)と,電源遮断状態(電源スイッチオフ状態)に構築される。この電源制御信号Pwは,例えば,コンフィグレーションデータに含まれている電源制御コンフィグレーションデータに基づいて生成される。
図3は,リコンフィグ可能なLSIのコンフィグレーション制御部とリコンフィグデータメモリとリコンフィグ回路コアの関係を示す図である。リコンフィグ回路コア10は,図1に示したリコンフィグ可能なLSI10内のプロセッサエレメントPEとそれぞれのコンフィグデータレジスタCfg_Redとを有する。
リコンフィグ可能なLSIは,内蔵するまたは外部のCPU33などからの起動要求信号STRに応答して,リコンフィグ回路コア12内のプロセッサエレメントからのエンドフラグ信号End_FlagがLレベルであれば,起動信号STを生成する起動制御部32と,リコンフィグ回路コア12内に構築される演算システムや演算ステージの演算状態の構築を制御するコンフィグレーション制御部30とを有する。
コンフィグレーション制御部30は,CPU33からの起動要求信号STRと,リコンフィグ回路コア12内のプロセッサエレメントからのエンドフラグ信号End_Flagやフラグ信号Flagを入力し,コンフィグレーションメモリ20への読み出しアドレスに対応するプログラムカウンタPCを出力して,コンフィグレーションメモリ20にコンフィグレーションデータCfg_Dataを出力させ,さらに,フェッチ信号Fetchを出力してリコンフィグ回路コア12内のプロセッサエレメントPEのコンフィグレーションレジスタCfg_RegにそのコンフィグレーションデータCfg_Dataを記憶させる。そして,コンフィグレーション制御部30は,レディ/ストール信号R/Sを出力して,リコンフィグ回路コア12内の動作対象のプロセッサエレメントPEの動作開始と停止を指示する。なお,起動信号STと動作信号OPは,リコンフィグ回路コア12内のプロセッサエレメントPEに供給される。
演算システムの起動要求から,リコンフィグ回路コア12内のプロセッサエレメントPEを演算システムの演算状態または演算システムの演算処理を実行する複数の演算ステージの演算状態に構築し,その演算システムを終了するまでの概略的な動作は次のとおりである。
CPU33からのある演算システムの起動要求信号STに応答して,コンフィグレーション制御部30が,リコンフィグ回路コア12内のプロセッサエレメントPEを,演算システムの演算状態に構築し,その演算システムによる演算処理が完了するとエンドフラグEnd_FlagがHレベルにされて,その演算システムによる処理が完了する。
コンフィグレーション制御部30は,プログラムカウンタPCを生成して,コンフィグレーションメモリ20内の所望のコンフィグレーションデータCfg_Dataを読み出し,プロセッサエレメントPEのコンフィグレーションレジスタCfg_Regに書き込む。これにより,プロセッサエレメントPEは,そのコンフィグレーションレジスタCfg_Regに書き込んだコンフィグレーションデータCfg_Dataに基づいて,演算システムを構成する回路に構築される。
さらに,演算システムの演算処理を複数の演算ステージで実行する場合は,コンフィグレーション制御部30は,各演算ステージで,プログラムカウンタPCを生成して,コンフィグレーションメモリ20内の所望のコンフィグレーションデータCfg_Dataを読み出し,プロセッサエレメントPEのコンフィグレーションレジスタCfg_Regに書き込む。これにより,プロセッサエレメントPEは,そのコンフィグレーションレジスタCfg_Regに書き込んだコンフィグレーションデータCfg_Dataに基づいて,演算ステージでの回路に再構築される。各演算ステージで動作対象のプロセッサエレメントPEから出力されるフラグ信号Flagに応答して,コンフィグレーション制御部30は,次の演算ステージで構築されるべき演算状態,即ち回路構成に対応するコンフィグレーションデータCfg_Dataを,コンフィグレーションメモリ20から読み出して,プロセッサエレメントPEのコンフィグレーションレジスタCfg_Regに書き込む。
このような処理を繰り返すことで,複数の演算ステージの演算状態が次々に構築され,それぞれの演算ステージでの演算が実行され,1つの演算システムによる演算処理が実行される。
[実施の形態(概略)]
図4は,本実施の形態における再構築可能なLSIの構成図である。図4には,コンフィグレーション制御部30と,コンフィグレーションデータメモリ20と,2つのプロセッサエレメントPEと,それに付属して設けられているコンフィグレーションレジスタCfg_Regとが示されている。これらに加えて,再構築可能なLSIは,コンフィグレーションメモリ20から読み出される電源制御コンフィグレーションデータRAM_PWと,コンフィグレーションレジスタCfg_Regから読み出される電源制御コンフィグレーションデータREG_PWとを入力して,電源制御信号Pw1, Pw2を生成する電源制御信号生成回路40を有する。
さらに,再構築可能なLSIでは,コンフィグレーションレジスタCfg_Regは,プロセッサエレメントPEを構築するための演算用コンフィグレーションデータを記憶するレジスタと,プロセッサエレメントPEへの電源供給を制御する電源制御コンフィグレーションデータを記憶する電源制御コンフィグレーションレジスタPW_Cfg_Regとを有する。図4中には,演算用コンフィグレーションデータを記憶するレジスタとして,コンフィグレーションレジスタCfg_Regが示されている。
そして,図4には,プロセッサエレメントPEとコンフィグレーションレジスタCfg_Regとに電源電圧VDDを供給しまたは供給を遮断する電源制御部PSW1,PSW2が示されている。この電源制御部PSW1,PSW2は,例えばMOSトランジスタで構成される電源スイッチである。また,電源制御コンフィグレーションレジスタPW_Cfg_Regには,電源電圧VDDが常時供給されている。
本実施の形態における再構築可能なLSIは,プロセッサエレメントPEに対して次のような電源供給の制御を行う。
第1に,電源制御部PSWが,複数のプロセッサエレメントのうちコンフィグレーションデータに基づいて演算状態に構築される動作対象プロセッサエレメントへの電源供給を前もって開始した後,動作対象プロセッサエレメントが動作開始する。これにより,動作対象のプロセッサエレメントPEに電源供給が前もって開始されるので,演算状態に構築された動作対象プロセッサエレメントが動作開始時に,電源供給開始時の論理回路の不定状態が発生せず,動作開始までの時間を短縮し,不定状態による動作不良をなくすことができる。
第2に,このあらかじめプロセッサエレメントPEへの電源供給を行った後に,そのプロセッサエレメントPEの動作を開始する制御は,(1)演算システムの起動時に行われ,または,(2)演算システムの演算処理を複数の演算ステージで実行する場合での各演算ステージの開始時で行われる。
第3に,演算システムの起動時では,電源制御信号生成回路40が,コンフィグレーションメモリ20から出力された電源制御コンフィグレーションデータRAM_PWに基づいて電源制御信号Pw1, Pw2を生成して,プロセッサエレメントへの電源供給を開始する。そして,その電源供給を開始した後に,電源制御信号生成回路40が,コンフィグレーションレジスタCfg_Regから読み出された電源制御コンフィグレーションデータREG_PWに基づいて電源制御信号Pw1, Pw2を生成して,プロセッサエレメントへの電源供給を継続する。
第4に,演算ステージの開始時では,第1の演算ステージのコンフィグレーションデータに基づいて,第1の演算ステージで,第2の演算ステージで初めて動作対象となるプロセッサエレメントへの電源供給を開始する。そのために,第1の演算ステージのコンフィグレーションデータには,第1の演算ステージで演算状態に構築するための演算状態コンフィグレーションデータに加えて,次の第2ステージで動作対象となるプロセッサエレメントへの電源供給を指示する電源制御コンフィグレーションデータが含まれている。
以下,上記の動作について説明する。図5は,電源制御信号生成回路40の構成図である。また,図6は,演算システム起動時の電源制御と演算ステージ開示時の電源制御とを説明するための信号タイミングチャートである。
図5の電源制御信号生成回路40は,起動信号STに応答してコンフィグレーションメモリ20から出力された電源制御コンフィグレーションデータRAM_PWを通過させるANDゲート41と,起動時にLレベルに制御される動作信号OPに基づいて,その電源制御コンフィグレーションデータRAM_PWを通過させ,プロセッサエレメントへの電源供給開始後にHレベルに制御される動信号OPに基づいて,コンフィグレーションレジスタCfg_Regから読み出された電源制御コンフィグレーションデータREG_PWを通過させるセレクタ42と,演算システムが動作中を示すLレベルのエンドフラグEnd_Flagに応答して,セレクタ42の出力信号を通過させ,演算システムが動作終了を示すHレベルのエンドフラグEnd_Flagに応答してLレベルの電源制御信号Pwを出力するANDゲート43とを有する。
次に,図4,図5の動作について,図6を参照して説明する。クロックClockのタイミングT0より前から,コンフィグレーション制御部30からのプログラムカウントPCに応答してコンフィグレーションメモリ20がコンフィグレーションデータ[a]を読み出して出力している。また,フラグ信号Flagとエンドフラグ信号End_FlagはLレベルの状態である。
そして,クロックのタイミングT0で起動要求STRがCPU33から生成されると,それに応答してタイミングT1で起動制御部32が起動信号STをHレベルにする。起動信号STのHレベルに応答して,電源制御信号生成回路40がコンフィグレーションメモリ20から読み出されたコンフィグレーションデータ[a]に含まれている電源制御コンフィグレーションデータRAM_PWを通過させ,電源制御信号Pwとして信号[a]を出力する。これにより,再構築され動作対象のプロセッサエレメントPEの電源制御部PSWは,電源制御信号Pwに基づいて,電源電圧VDDの供給を開始する。
一方,タイミングT1での起動信号STのHレベルへの立ち上がりに応答して,コンフィグレーションレジスタCfg_Regは,タイミングT2で,コンフィグレーションメモリ20が出力しているコンフィグレーションデータ[a]をラッチする。これにより,プロセッサエレメントPEはコンフィグレーションデータに基づく回路状態に再構築される。
さらに,タイミングT3でコンフィグレーション制御部30が動作信号OPをHレベルに立ち上げると,それに応答して,再構築されたプロセッサエレメントPEによる演算システムが動作を開始する。それと共に,電源制御信号生成回路40は,コンフィグレーションレジスタCfg_Regから読み出された電源制御コンフィグレーションデータREG_PWに基づく電源制御信号Pwを出力する。
この最初の第1演算ステージでのコンフィグレーションデータ[a]には,その第1演算ステージで動作対象のプロセッサエレメントPEへの電源供給を指示する電源制御コンフィグレーションデータと,演算状態を制御する演算状態コンフィグレーションデータとが含まれるとともに,次の第2演算ステージで動作対象になるプロセッサエレメントPEへの電源供給を指示する電源制御コンフィグレーションデータも含まれる。それにより,最初の演算ステージで,次の演算ステージで動作対象となるプロセッサエレメントPEへの電源制御が開始される。
やがて,コンフィグレーションデータ[a]に基づいて再構築された演算ステージの動作が終了すると,タイミングT5でコンフィグレーション制御部30がプログラムカウントPCを生成し,コンフィグレーションメモリ20が次の第2演算ステージのコンフィグレーションデータ[b]を読み出して出力する。そして,タイミングT5で動作中のプロセッサエレメントPEから出力されるフラグ信号Flagと同時にコンフィグレーション制御部30が出力したフェッチ信号Fetchに応答して,タイミングT6でコンフィグレーションレジスタCfg_Regが,読み出されたコンフィグレーションデータ[b]をラッチする。
この第2演算ステージでのコンフィグレーションデータ[b]には,その第2演算ステージで動作対象のプロセッサエレメントPEへの電源供給を指示する電源制御コンフィグレーションデータと,演算状態を制御する演算状態コンフィグレーションデータとが含まれるとともに,次の第3演算ステージで動作対象になるプロセッサエレメントPEへの電源供給を指示する電源制御コンフィグレーションデータも含まれる。それにより,第2の演算ステージで,次の第3演算ステージで動作対象となるプロセッサエレメントPEへの電源制御が開始される。
その後の,コンフィグレーションデータ[c],[d],[e]に対する第3〜第5演算ステージでの動作も上記と同様である。
最後に,コンフィグレーションデータeに対する第5演算ステージでの動作が終了すると,エンドフラグ信号End_FlagがHレベルに立ち上がり,それに応答して,起動信号STがLレベルに立ち下がり,この演算システムによる演算状態は終了する。
以上の通り,演算システムが起動する時は,その起動前にコンフィグレーションデータがコンフィグレーションレジスタにラッチされていないので,図4,図5の回路構成により,コンフィグレーションメモリ20から出力される電源制御コンフィグレーションデータRAM_PWで先に電源制御部PSWの電源スイッチをオンにして動作対象プロセッサエレメントへの電源供給の開始を先行させる。その後の,各演算ステージでは,電源制御コンフィグレーションデータに次の演算ステージで動作対象のプロセッサエレメントへの電源供給を指示するデータを含めて,動作対象プロセッサエレメントへの電源供給後に,動作を開始できるようにする。
[本実施の形態における3つの演算システム例]
上記で説明したプロセッサエレメントへの電源制御を3つの演算システムに適用した場合について説明する。これらの演算システムは,いずれもクロックに同期して順次入力する信号を処理するパイプライン処理ではなく,1つの入力信号を順に処理するシーケンス処理を行う。
図7は,第1の演算システムの例を示す図である。第1の演算システムは,入力A,Bを乗算するプロセッサエレメントPE0と,その乗算結果から入力Cを減算するプロセッサエレメントPE1と,その減算結果に入力Dを加算するプロセッサエレメントPE3とを有する。そして,各プロセッサエレメントPEの出力信号がラッチされ,次の演算ステージでのプロセッサエレメントPEに入力可能にする何らかの回路構成が設けられているものとする。これにより,第1の演算システムは,プロセッサエレメントPE0による乗算を行う第1演算ステージST1と,プロセッサエレメントPE1による減算を行う第2演算ステージST2と,プロセッサエレメントPE3による加算を行う第3演算ステージST3とで演算処理可能になる。
図8は,図7の第1の演算システムを再構築する動作を示すタイミングチャート図である。クロックClockのタイミングT0では,図4,5,6で説明した演算システム起動時の電源制御動作により,コンフィグレーションメモリから読み出された電源制御コンフィグレーションデータRAM_PWによりプロセッサエレメントPE0の電源制御信号Pw0がHレベルに立ち上がり,プロセッサエレメントPE0に電源供給が先行して行われる。
そして,第1演算ステージST1では,タイミングT1でコンフィグレーションレジスタにラッチされたコンフィグレーションデータ[a]に基づいてプロセッサエレメントPE0が乗算回路に構築され,第1演算ステージの演算状態が構築される。演算状態を構築するのはコンフィグレーションデータ[a]に含まれている演算状態コンフィグレーションデータである。また,この第1演算ステージのコンフィグレーションデータ[a]には,次の第2演算ステージで動作対象となるプロセッサエレメントPE1に対する電源制御コンフィグレーションデータが含まれているので,それによりタイミングT1でプロセッサエレメントPE1への電源制御信号Pw1がHレベルに立ち上がり,プロセッサエレメントPE1に電源供給が先行して行われる。
次に,第2演算ステージST2では,タイミングT2でコンフィグレーションレジスタにラッチされたコンフィグレーションデータ[b]に基づいてプロセッサエレメントPE1が減算回路に構築され,第2演算ステージの演算状態が構築される。この第2演算ステージのコンフィグレーションデータ[b]には,次の第3演算ステージで動作対象となるプロセッサエレメントPE2に対する電源制御コンフィグレーションデータが含まれているので,それによりタイミングT2でプロセッサエレメントPE2への電源制御信号Pw2がHレベルに立ち上がり,プロセッサエレメントPE2に電源供給が先行して行われる。
最後に,第3演算ステージST3では,タイミングT3でコンフィグレーションレジスタにラッチされたコンフィグレーションデータ[c]に基づいてプロセッサエレメントPE2が加算回路に構築され,第3演算ステージの演算状態が構築される。
各演算ステージで動作状態にされたプロセッサエレメントPE0,PE1,PE3は,それぞれの演算ステージが終了すると電源供給が遮断される。但し,前述のとおり,前段のプロセッサエレメントPEの出力信号は後段のプロセスエレメントPEに適切に入力されるものとする。
図8に記載されるとおり,クロックのタイミングT0,T1,T2,T3で電源供給されるプロセッサエレメントの数は,1個,2個,2個,1個となる。すなわち,同時に電源供給されるプロセッサエレメントの数が演算システムを構成するプロセッサエレメントの数3個よりも少なくなり,瞬間的な電力消費が抑制される。
図9は,第2の演算システムの例を示す図である。第2の演算システムは,入力A,Bを乗算するプロセッサエレメントPE0と,その乗算結果から入力Aを減算するプロセッサエレメントPE1-1と,その乗算結果を入力Bだけビットシフトして2のB乗で除算するプロセッサエレメントPE1-2と,プロセッサエレメントPE1-1とPE1-2の出力を加算するプロセッサエレメントPE2とを有する。これにより,この第2の演算システムは,プロセッサエレメントPE0による乗算を行う第1演算ステージST1と,プロセッサエレメントPE1-1,PE1-2による減算と除算を行う第2演算ステージST2と,プロセッサエレメントPE2による加算を行う第3演算ステージST3とで演算処理可能である。
図10は,図9の第2の演算システムを再構築する動作を示すタイミングチャート図である。クロックClockのタイミングT0では,演算システム起動時の電源制御動作により,コンフィグレーションメモリから読み出された電源制御コンフィグレーションデータRAM_PWによりプロセッサエレメントPE0の電源制御信号Pw0がHレベルに立ち上がり,プロセッサエレメントPE0に電源供給が先行して行われる。
そして,第1演算ステージST1では,タイミングT1で,コンフィグレーションデータ[a]によりプロセッサエレメントPE0が動作状態に構築され,同じコンフィグレーションデータ[a]により次の第2演算ステージで動作状態にされるプロセッサエレメントPE1-1,PE1-2に電源供給が先行して行われる。
次に,第2演算ステージST2では,タイミングT2で,コンフィグレーションデータ[b]によりプロセッサエレメントPE1-1,PE1-2が動作状態に構築され,同じコンフィグレーションデータ[b]により次の第3演算ステージで動作状態にされるプロセッサエレメントPE2に電源供給が先行して行われる。また,第1演算ステージで動作状態にされたプロセッサエレメントPE0への電源供給は終了する。
最後に,第3演算ステージST3では,タイミングT3で,コンフィグレーションデータ[c]によりプロセッサエレメントPE2が動作状態に構築される。また,第2演算ステージで動作状態にされたプロセッサエレメントPE1への電源供給は終了する。
そして,タイミングT4で第3演算ステージで動作状態にされたプロセッサエレメントPE2への電源供給は終了し,第2の演算システムの構築状態が解除される。
図10に示されるとおり,クロックのタイミングT0-T3で電源供給されるプロセッサエレメントの数は,1個,3個,3個,1個と推移している。このように,演算システムを複数の演算ステージで処理することで,同時に電源が供給されるプロセッサエレメントの数を制限することができる。
図11は,第3の演算システムの例を示す図である。第3の演算システムは,入力IN1,IN2を乗算するプロセッサエレメントPE0と,その乗算結果からある定数を減算するプロセッサエレメントPE1と,その減算結果にある定数を加算するプロセッサエレメントPE2とを有する。しかも,クロックのタイミングに同期して,順次入力される入力IN1,IN2を,3つのプロセッサエレメントPE0,PE1,PE2がパイプライン処理する。これにより,この第3の演算システムは,プロセッサエレメントPE0による乗算を行う第1演算ステージST1と,プロセッサエレメントPE1による減算を行う第2演算ステージST2と,プロセッサエレメントPE2による加算を行う第3演算ステージST3とが,パイプライン的に遷移していく。
図12は,図11の第3の演算システムを再構築する動作を示すタイミングチャート図である。クロックClockのタイミングT0では,演算システム起動時の電源制御動作により,コンフィグレーションメモリから読み出された電源制御コンフィグレーションデータRAM_PWによりプロセッサエレメントPE0の電源制御信号Pw0がHレベルに立ち上がり,プロセッサエレメントPE0に電源供給が先行して行われる。
そして,第1演算ステージST1では,タイミングT1で,コンフィグレーションデータ[a]によりプロセッサエレメントPE0が動作状態に構築され,同じコンフィグレーションデータ[a]により次の第2演算ステージで動作状態にされるプロセッサエレメントPE1に電源供給が先行して行われる。
次に,第2演算ステージST2では,タイミングT2で,コンフィグレーションデータ[A]によりプロセッサエレメントPE1が動作状態に構築され,同じコンフィグレーションデータ[A]により次の第3演算ステージで動作状態にされるプロセッサエレメントPE2に電源供給が先行して行われる。但し,第1演算ステージで動作状態にされたプロセッサエレメントPE0への電源供給は継続され,次の入力に対してプロセッサエレメントPE0はコンフィグレーションデータbにより動作状態に構築される。
最後に,第3演算ステージST3では,タイミングT3で,コンフィグレーションデータ[0]によりプロセッサエレメントPE2が動作状態に構築される。但し,第2演算ステージで動作状態にされたプロセッサエレメントPE1への電源供給は継続され,次のプロセッサエレメントPE0からの出力に対してプロセッサエレメントPE1はコンフィグレーションデータBにより動作状態に構築される。
図12の例では,タイミングT8,T9,T10で8サイクル目の第1,第2,第3演算ステージとなり,タイミングT9でプロセッサエレメントPE0への電源が遮断され,タイミングT10でプロセッサエレメントPE1への電源が遮断され,タイミングT11でプロセッサエレメントPE2への電源が遮断され,全てのパイプライン処理が完了する。
図12に示されるとおり,タイミングT0-T10で電源が供給されているプロセッサエレメントの数は,1個,2個,3個が連続し,2個,1個と推移している。
[実施の形態(詳細)]
本実施の形態における再構築可能なLSIは,コンフィグレーションデータに基づいてプロセッサエレメントへの電源供給と遮断を制御し,第1の演算状態を構築するためのコンフィグレーションデータに,第1の演算状態で動作対象のプロセッサエレメントに電源供給を指示する第1の電源制御コンフィグレーションデータに加えて,第1の演算状態の次の第2の演算状態で動作対象予定のプロセッサエレメントに電源供給を指示する第2の電源制御コンフィグレーションデータを含ませる。そこで,以下の実施の形態において,コンフィグレーションデータも含めて再構築可能なLSIについて説明する。
図13は,コンフィグレーションデータの一例を示す図である。図13の(1)は,プロセッサエレメントPE0のコンフィグレーションレジスタに設定されるコンフィグレーションデータの一例である。このコンフィグレーションデータは,プロセッサエレメントPE0を使用して入力AとBを加算するというオペレーションコードOpcodeと,加算処理が終了後に電源を遮断するコードとを有する。
図13(2)は,プロセッサエレメントPE1のコンフィグレーションレジスタに設定されるコンフィグレーションデータの一例である。このコンフィグレーションデータは,プロセッサエレメントPE1の動作をオフにするオペレーションコードOpcodeと,電源供給を行うコードとを有する。
したがって,ある演算システムまたはその中の演算ステージにおいて,図13(1)(2)のコンフィグレーションデータがプロセッサエレメントPE0,PE1に設定されると,プロセッサエレメントPE0は電源供給されると共に加算回路に構築され,プロセッサエレメントPE1は電源供給されるが動作はオフ(またはいずれの演算回路にも構築されない状態)に制御される。
[第1の例]
図14,図15に基づいて詳細な例について簡単に説明する。図14は,プログラムとアセンブラ記述とコンフィグレーションデータとを示す図である。プログラム100は,C言語で記述されており,入力A=BであればY=100−Aを演算し,そうでなければY=A>>4(Aを4ビットシフト,2の4乗で除算)を演算する例である。
アセンブラ記述200は,上記プログラム100に対応するものであり,各行のコードは以下の意味である。
0100:入力AをAXレジスタに格納
0110:入力BをDXレジスタに格納
0120:AXレジスタとDXレジスタとを比較
0130:比較結果が等しくなければ0170番地にジャンプ
0140:比較結果が等しければ0150番地にジャンプ
0150:100からAXレジスタを減算
0160:0250番地にジャンプ
0170:DXレジスタを4ビットシフト
0250:終了
そして,コンフィグレーションデータ300は,上記のようなアセンブラ200に対応する一例である。
図15は,図14のコンフィグレーションデータ300によって構築される演算システムの回路図である。図15を参照しながらコンフィグレーションデータ300について説明する。
まず,アセンブラ200の0100,0110,0120番地は,プロセッサエレメントPE0によって演算処理され,コンフィグレーションデータ300では,01番地に記述したように,プロセッサエレメントPE0を入力端子A,Bを比較する比較器(COMPEQ)に構築するデータになる。
アセンブラ200の0130,0140番地は,プロセッサエレメントPE4によって演算処理され,コンフィグレーションデータ300では,04番地に記述したように,プロセッサエレメントPE4をPE1とPE2の出力のいずれかをPE0の比較結果に基づいてセレクトするセレクタ(SEL)に構築するデータになる。
最後に,アセンブラ200の0150,0170番地は,プロセッサエレメントPE1,PE2によって演算処理され,コンフィグレーションデータ300では,02,03番地に記述したように,プロセッサエレメントPE1を100から入力Aを減算する減算器(SUB)と,プロセッサエレメントPE2を入力Bを4ビットシフトするシフタ(SFT4)とに構築するデータを有する。コンフィグレーションデータ300の05番地は端子0を動作状態に構築するデータで,06番地は他のプロセッサエレメントPExは全て動作オフになるデータである。
図14のコンフィグレーションデータ300では,演算システムを1つの演算ステージで実現する例である。したがって,図15内に演算ステージST1,ST2が示されているが,図14のコンフィグレーションデータ300ではそのような演算ステージST1,ST2に対応して演算状態を構築することはない。したがって,図14のコンフィグレーションデータ300の各プロセッサエレメントへのデータには,全て,処理終了後に電源が遮断されるデータ「0」が記述されている。
そこで,本実施の形態の再構築可能なLSIでは,図15に示された演算システムに対応する演算回路を,プロセッサエレメントPE0,PE1,PE2による第1演算ステージST1と,プロセッサエレメントPE4による第2演算ステージST2とに時分割して構築する。
図16は,図15の演算システムを構築するプロセッサエレメントへの電源供給を示す図である。図16の例は,12個のプロセッサエレメントPE0-PE11がそれぞれ電源制御手段の電源スイッチPSWによって電源配線VDDから電源供給を受ける。
まず,第1の演算ステージST1では,プロセッサエレメントPE0,PE1,PE2が電源供給を受けるとともに動作状態CMP,SUB,SFTになり,次の第2の演算ステージST2で動作状態になる予定のプロセッサエレメントPE3が電源供給される。したがって,図中太枠で示したプロセッサエレメントPE0-PE3の電源制御手段PSWが導通状態に構築されている。
次に,第2の演算ステージST2では,プロセッサエレメントPE0,PE1,PE2が電源を遮断され,プロセッサエレメントPE4が電源供給を受けるとともに動作状態SELになる。つまり,太枠で示したプロセッサエレメントPE4にだけ電源供給がなされる。
図15,図16の例においても,第1の演算ステージST1で演算状態のプロセッサエレメントPE0,PE1,PE2の演算結果は,第2の演算ステージST2で演算状態になるプロセッサエレメントPE4に入力されるものとする。例えば,第1,第2演算ステージのプロセッサエレメント間に前演算ステージの演算結果を一時的に蓄積する回路構成を設ける構成などにより可能になる。
図17は,図15,図16に示した演算ステージに構築するコンフィグレーションデータの一例を示す図である。このコンフィグレーションデータ310は,第1の演算ステージを構築する第1のコンフィグレーションデータCfg11と,第2の演算ステージを構築する第2のコンフィグレーションデータCfg12とを有する。
第1の演算ステージを構築する第1のコンフィグレーションデータCfg11は,番地01,02,03にプロセッサエレメントPE0-PE2を動作状態(CMPEQ,SUB,SFT4)に構築するデータを有するとともに,番地05に第2の演算ステージで動作可能性があるプロセッサエレメントPE4を動作オフだが電源供給されるように構築するデータを有する。そして,それらのプロセッサエレメントPE0-PE2は,第1の演算ステージ終了後に電源遮断状態にすることが示されている。また,上記以外のプロセッサエレメントは動作オフであることが示されている。
番地01,02,03のプロセッサエレメントPE0-PE2を動作状態(CMPEQ,SUB,SFT4)に構築するコンフィグレーションデータは,演算状態コンフィグレーションデータと共に電源制御コンフィグレーションデータでもある。また,番地05のプロセッサエレメントPE4を動作オフだが電源供給されるように構築するコンフィグレーションデータは,電源制御コンフィグレーションデータである。
第2の演算ステージを構築する第2のコンフィグレーションデータCfg12は,番地24にプロセッサエレメントPE4を動作状態(SEL)に構築するデータを有し,そのプロセッサエレメントPE4は第2の演算ステージ終了後に電源遮断状態にすることが示されている。そして,上記以外のプロセッサエレメントは動作オフであることが示されている。
図18は,図17のコンフィグレーションデータで構築される演算システムの再構築の動作を示すタイミングチャート図である。クロックClockのタイミングT0では,演算システムの起動時の電源制御が行われ,タイミングT1に対応する第1の演算ステージST1で動作状態になるプロセッサエレメントPE0-PE2に先行して電源供給が行われる。したがって,タイミングT0では,プロセッサエレメントPE0-PE2の電源制御部(電源スイッチ)への電源制御信号Pw0-Pw2がHレベルに立ち上がっている。
次に,タイミングT1での第1の演算ステージST1では,プロセッサエレメントPE0-PE2がコンフィグレーションデータ[a]によりそれぞれの演算状態(CMPEQ,SUB,SFT4)に構築され,従って電源供給も行われるように構築される。一方,このコンフィグレーションデータ[a]には,第2の演算ステージで動作状態になるプロセッサエレメントPE4の電源供給を指示する電源制御コンフィグレーションデータも含まれている。それにより,タイミングT1でプロセッサエレメントPE4の電源制御信号Pw4もHレベルに立ち上がって,プロセッサエレメントPE4に前もって電源供給が開始される。
そして,次のタイミングT2での第2の演算ステージST2では,プロセッサエレメントPE0-PE2への電源は遮断され,プロセッサエレメントPE4がコンフィグレーションデータ[b]によりセレクタとして動作状態に構築される。タイミングT2の次のタイミングでプロセッサエレメントPE4の電源は遮断される。
図18に示されるように,タイミングT0,T1,T2での電源供給が行われるプロセッサエレメントの数は,3個,4個,1個となっている。したがって,全ての演算ステージで演算システムを構成する4つのプロセッサエレメントが全て電源供給を受けることはない。また,各演算ステージでのコンフィグレーションデータにより,次の演算ステージで動作状態になる予定のプロセッサエレメントに予め電源供給を開始するので,動作状態での動作開始を高速化し動作不良を回避することができる。
[第2の例]
図19は,第2の例のコンフィグレーションデータを示す図である。また,図20は,第2の例の演算システムの回路図である。図20の演算システムは,第1の例として示した図14のアセンブラ200の処理を実行するものであるが,第1の例の図15の演算システムとは異なり,入力A,Bを保持するフリップフロップなどからなる遅延回路を構築されるプロセッサエレメントPE3,PE5が設けられている。
図20の演算システムの回路図から理解できるように,図19のコンフィグレーションデータ320は,番地01-06において,PE0を入力A,Bの比較器に構築し,PE1を100からPE3の出力を減算する減算器に構築し,PE2をPE5の出力を4ビットシフトするシフト回路に構築し,PE3を入力Aを1クロック遅延させる遅延回路に構築し,PE4をPE1かPE2の出力の一方を選択するOR回路に構築し,PE5を入力Bを1クロック遅延させる遅延回路に構築するデータを有する。番地03-12は,そのほかのPEが動作オフであるように構築するデータであり,番地13は端子0を使用状態に構築するデータである。
したがって,図19のコンフィグレーションデータ320によれば,演算システムを構成する全てのプロセッサエレメントPE0-PE5が同時に演算状態に構築され,図20内に示した演算ステージST1-ST3の順に演算状態に構築されるのではない。
次に,本実施の形態による第2の例では,図20に示した演算システムを3つの演算ステージST1-ST3に時分割して演算状態に構築する。そのようにすれば,第1の演算ステージST1でプロセッサエレメントPE0が入力A,Bを比較し,その比較結果に応じて,第2の演算ステージST2ではプロセッサエレメントPE1またはPE2のいずれかが演算状態に構築されればよい。そして,第3の演算ステージST3でのプロセッサエレメントPE4によるセレクタ回路の構築は,図15の例と同じである。
図21は,本実施の形態による第2の例における,第1から第3の演算ステージでのプロセッサエレメントへの電源供給を示す図である。太枠のプロセッサエレメントに電源が供給される。第1の演算ステージでは,動作対象のプロセッサエレメントPE0,PE3,PE5と,次の第2の演算ステージで動作対象になる可能性のあるプロセッサエレメントPE1,PE2とが,電源供給されるように構築される。そして,第2の演算ステージでは,PE0による比較結果に応じて2つの状態が考えられ,プロセッサエレメントPE1,PE2のうちいずれか一方と,次の第3の演算ステージで動作対象になるプロセッサエレメントPE4とが,電源供給されるように構築される。したがって,図21には,2種類の第2の演算ステージの電源供給状態が示されている。すなわち,PE1,PE4が電源供給される場合と,PE2,PE4が電源供給される場合である。最後に,第3の演算ステージでは,プロセッサエレメントPE4だけが電源供給されるように構築される。
図22は,本実施の形態による第2の例におけるコンフィグレーションデータの例を示す図である。コンフィグレーションデータ320,321は,第1の演算ステージを構築するデータCfg21と,第2の演算ステージを構築する2種類のデータCfg22,Cfg23と,第3の演算ステージを構築するデータCfg24とを有する。このように第2の演算ステージのコンフィグレーションデータが2種類ある場合は,第1の演算ステージでのPE0による比較結果を示すフラグ信号Flagに基づいて,コンフィグレーション制御部30が第2の演算ステージで構築すべきいずれかのコンフィグレーションデータCfg22,Cfg23を選択して,コンフィグレーションメモリ20から出力させる。したがって,第1,第2,第3の演算ステージを構築するためのコンフィグレーションデータの組み合わせは,Cfg21,Cfg22,Cfg24の場合と,Cfg21,Cfg23,Cfg24の場合とがある。
図20の演算システムの回路構成を参照して説明すると,第1の演算ステージを構築するコンフィグレーションデータCfg21によれば,PE0,PE3,PE5がそれぞれ演算状態(CMPEQ,DLY,DLY)に構築され,第2の演算ステージで演算状態になり動作対象になる可能性があるPE1,PE2が動作オフで且つ電源供給状態に構築される。つまり,番地02,03が電源制御コンフィグレーションデータの例である。また,番地01,04,06が演算状態コンフィグレーションデータの例である。
第2の演算ステージの一方を構築するコンフィグレーションデータCfg22によれば,PE1が演算状態(SUB)に構築され,第3の演算ステージで演算状態になり動作対象になるPE4が動作オフで且つ電源供給状態に構築される。つまり,番地24が電源制御コンフィグレーションデータの例である。また,番地21が演算状態コンフィグレーションデータの例である。
第2の演算ステージの他方を構築するコンフィグレーションデータCfg23によれば,PE2が演算状態(SFT)に構築され,第3の演算ステージで演算状態になり動作対象になるPE4が動作オフで且つ電源供給状態に構築される。つまり,番地34が電源制御コンフィグレーションデータの例である。また,番地32が演算状態コンフィグレーションデータの例である。
最後に,第3の演算ステージを構築するコンフィグレーションデータCfg24によれば,PE4が演算状態(OR)に構築され,出力端子EXT0も動作状態に構築される。
図23は,図22のコンフィグレーションデータで構築される演算システムの再構築の動作を示すタイミングチャート図である。クロックClockのタイミングT0では,演算システムの起動時の電源制御が行われ,タイミングT1に対応する第1の演算ステージST1で演算状態になり動作対象となるプロセッサエレメントPE0,PE3,PE5に先行して電源供給が行われる。したがって,タイミングT0では,プロセッサエレメントPE0,PE3,PE5の電源制御部(電源スイッチ)への電源制御信号Pw0,Pw3,Pw5がHレベルに立ち上がっている。
次に,タイミングT1での第1の演算ステージST1では,プロセッサエレメントPE0,PE3,PE5がコンフィグレーションデータ[a]によりそれぞれの演算状態(CMPEQ,DLY,DLY)に構築され,従って電源供給も行われるように構築される。一方,このコンフィグレーションデータ[a]には,第2の演算ステージで演算状態になって動作対象になる可能性のあるプロセッサエレメントPE1,PE2の電源供給を指示する電源制御コンフィグレーションデータも含まれている。それにより,タイミングT1でプロセッサエレメントPE1,PE2の電源制御信号Pw1,Pw2もHレベルに立ち上がって,プロセッサエレメントPE1,PE2に事前に電源供給が開始される。
そして,次のタイミングT2での第2の演算ステージST2では,プロセッサエレメントPE0,PE3,PE5への電源は遮断され,プロセッサエレメントPE1またはPE2がコンフィグレーションデータ[b]により減算器SUBまたはシフタSFTして演算状態に構築され動作対象にされる。さらに,第3の演算ステージで演算状態にされて動作対象にされるプロセッサエレメントPE4の電源制御信号Pw4もHレベルに立ち上がり,プロセッサエレメントPE4に電源供給が開始される。
最後に,タイミングT3での第3の演算ステージST3では,プロセッサエレメントPE1またはPE2への電源は遮断され,プロセッサエレメントPE4がOR回路の演算状態に構築され動作対象にされる。そして,次のタイミングT4ではPE4への電源供給は遮断される。
図24は,図23においてプロセッサエレメントPE0の比較結果が等しくない場合の演算システムの再構築の動作を示すタイミングチャート図である。図23と異なるところは,クロックClockのタイミングT1(第1の演算ステージ)で事前に電源供給されたプロセッサエレメントPE1,PE2のうち,タイミングT2(第2の演算ステージ)ではPE0による比較結果により演算状態にならないPE2の電源が遮断されていることである。したがって,タイミングT2では,PE2の電源制御信号Pw2がLレベルに立ち下がっている。それ以外は,図23と同じである。
図20のように3つの演算ステージで演算状態を構成すると,クロックサイクル毎に入力A,Bが順次入力され,3つの演算ステージがパイプライン的に順次入力される入力A,Bに対して演算を実行することができる。ただし,上記のタイミングチャートは,そのようなパイプライン的な処理を行うものではない。
[第3の例]
図25は,本実施の形態での第3の例の演算システムの回路図である。この演算システムは,単一の演算ステージで演算処理を行う例であり,入力A,Bがクロックに同期して変化するものではなく,したがって,図20において遅延回路DLYに構築されるプロセッサエレメントは必要がない。ただし,単一の演算ステージであっても,PE0が比較器(CMP)として演算中は,PE1,PE2は演算状態にする必要がなく,更に,PE1またはPE2が演算中は,PE4は演算状態にする必要がない。したがって,その点を考慮して,本実施の形態によれば,PE1,PE2,PE4に対する電源供給の開始時期を適切に設定して省電力化を行うことができる。
図26は,第3の例における演算システムの再構築の動作を示すタイミングチャート図である。クロックClockのタイミングT0では,演算システムの起動時の電源制御が行われ,タイミングT1で演算状態になるプロセッサエレメントPE0に先行して電源供給が行われる。したがって,タイミングT0では,プロセッサエレメントPE0の電源制御部(電源スイッチ)への電源制御信号Pw0がHレベルに立ち上がっている。
タイミングT1で,PE0はコンフィグレーションデータ[a]にしたがって比較器の演算状態に構築される。このコンフィグレーションデータ[a]には,次のタイミングT2から演算状態になり動作対象にされる可能性のあるPE1,PE2に対して電源供給を行う電源制御コンフィグレーションデータが含まれているので,PE1,PE2に対して電源供給が開始される。
次に,タイミングT2で,PE1はコンフィグレーションデータ[b]にしたがって減算器の演算状態に構築され,一方,PE2は演算状態にされないで電源が遮断されている。そして,コンフィグレーション[b]には,次のタイミングT3から演算状態になり動作対象にされるPE4に対して電源供給を行う電源制御コンフィグレーションデータが含まれているので,PE4に対して電源供給が開始される。
最後に,タイミングT3で,PE4はコンフィグレーションデータ[c]にしたがってOR回路の演算状態に構築される。また,タイミングT3までPE0,PE1の演算状態も維持されている。
以上の動作により,タイミングT0-T3での電源供給対象のプロセッサエレメントの数は,1個,3個,3個,3個になる。タイミングT0-T3の全てで4つのプロセッサエレメントPE0,PE1,PE2,PE4に電源が供給されるよりも省電力化可能である。そして,事前に電源供給を行うので,各プロセッサエレメントでの動作開始が高速化され,不良動作も回避される。
[第2の実施の形態]
第2の実施の形態は,コンフィグレーションデータを全てのプロセッサエレメントのコンフィグレーションレジスタに同時に設定するのではなく,複数のクロックサイクルで順番に設定する場合に適用される。この場合は,コンフィグレーションデータのコンフィグレーションレジスタへの切り替えが複数のクロックサイクルで実行されるので,演算システムの起動時と,演算ステージの切り替わり時における,演算状態に構築予定のプロセッサエレメントへの電源供給とその後の動作開始の制御を工夫する必要がある。
第2の実施の形態では,複数のクロックサイクルでコンフィグレーションデータのコンフィグレーションレジスタへの書き込みを完了させる。コンフィグレーションレジスタにデータを書き込むときにはコンフィグレーションレジスタに電源を供給しておく必要がある。そして,全てのプロセッサエレメントのコンフィグレーションレジスタへのデータの書き込みが完了した時点で,演算状態に構築予定のプロセッサエレメントに電源供給を一斉に開始するクロックサイクルを設け,それらのプロセッサエレメントをデータに基づく演算状態にする。そして,その次のクロックサイクルでそれらのプロセッサエレメントの動作を開始するよう制御される。
図27は,第2の実施の形態における再構築可能なLSIの一部構成図である。図27のLSIは,図3のコンフィグレーション制御部30に対応するプログラムカウンタと,プログラムカウンタ30が出力するプログラムカウントPCをデコードして,そのプログラムカウントPCでコンフィグレーションメモリ20から読み出されるコンフィグレーションデータの設定サイクルに対応したコンフィグレーションイネーブル信号Cfg_En0-4を出力するデコーダ36と,コンフィグレーションメモリ20と,複数のプロセッサエレメントPE00-PE4nを有する。コンフィグレーションイネーブル信号Cfg_En0-4は,コンフィグレーションメモリ20が出力するコンフィグレーションデータをコンフィグレーションレジスタに書き込むためのロード信号である。コンフィグレーションイネーブル信号Cfg_En0-4は,5グループのプロセッサエレメントPE00-PE0n,PE10-PE1n,PE20-PE2n,PE30-PE3nに対応する5つの信号である。また,プロセッサエレメントPE00-PE4n内には,対応するコンフィグレーションレジスタが含まれているものとする。また,プロセッサエレメントPE00-PE4nには,動作開始と停止を指示する動作信号としてレディ/ストール信号R/Sが供給される。
図28は,第2の実施の形態におけるプロセッサエレメントの電源スイッチとコンフィグレーションレジスタの電源スイッチと,電源制御信号生成回路とを示す図である。図4と異なる構成は,コンフィグレーション制御部30が各コンフィグレーションレジスタにラッチタイミングを示すコンフィグイネーブル信号Cfg_En0を生成することと,コンフィグレーションレジスタの電源スイッチとプロセッサエレメントの電源スイッチとが別々になっていることと,それに伴って,コンフィグレーションレジスタの電源スイッチを制御する電源制御信号生成回路40に加えて,プロセッサエレメントの電源スイッチを制御するPE用電源制御信号生成回路41とを有することである。
コンフィグレーションレジスタ用の電源制御信号生成回路40は,図4と同様であり,電源起動時はコンフィグレーションレジスタへの設定に先駆けて電源用コンフィグレーションレジスタに設定するデータRAM_PWにより電源制御信号PW0,PW1を生成する。その後,電源用コンフィグレーションレジスタに設定されたデータで電源制御信号PW0,PW1が維持される。これにより,コンフィグレーションレジスタの電源スイッチが先に導通する。
一方,PE用電源制御信号生成回路40は,電源制御信号PW0,PW1がHレベルの場合に,最後のコンフィグレーションレジスタ群へのデータラッチを制御するコンフィグイネーブル信号Cfg_En4がLレベルになると,フリップフロップFFをセットして,パワーイネーブル信号P-EnがHレベルになり,電源が投入される予定の全てのプロセッサエレメントに電源が供給される。そして,その1クロック後にそれらのプロセッサエレメントをデータがコンフィグレーションレジスタ内にラッチしたデータに基づいて演算状態にされて,動作を開始する。
図29は,第2の実施の形態における演算システムの再構築の動作を示すタイミングチャート図である。前提として,演算システムは,3つの演算ステージST1-ST3で順に処理が実行される。各演算ステージST1-ST3のためのコンフィグレーションデータのコンフィグレーションレジスタCfg_Regへの書き込みは,コンフィグレーションイネーブル信号Cfg_En0-4によって,5クロックサイクルで行われる。5クロックサイクルによるコンフィグレーションデータの書き込みが完了すると,これで全てのコンフィグレーションレジスタの電源スイッチが導通する。
また,5サイクル目のコンフィグレーションレジスタへの書き込みタイミングで,電源イネーブル信号P_EnがHレベルになり,その演算ステージで演算状態に構築され動作対象になるプロセッサエレメントに電源供給が開始され,演算状態に構築される。そして,その次のクロックサイクルで,レディ/ストール信号R/Sによりプロセッサエレメントの動作を開始する。
図中,プログラムフェッチ信号Program_Fetchは,コンフィグレーションメモリ20でコンフィグレーションデータの読み出しを制御する信号である。また,リコンフィグ回路コアは,プロセッサエレメントが演算状態に構築され動作中であることを示す。
コンフィグレーションメモリ20から第1の演算ステージに対応するコンフィグレーションデータa0-a4のうち最初のクロックサイクルで書き込まれるコンフィグレーションデータa0が読み出されている状態で,起動要求STRが発生すると,第1の演算ステージに対応するプログラムカウントPCを入力したデコーダ36がコンフィグレーションイネーブル信号Cfg_En0-4をクロックに同期して出力し,それに同期して,5グループのプロセッサエレメントPE00-PE0n,PE10-PE1n,PE20-PE2n,PE30-PE3nのコンフィグレーションレジスタCfg_Reg0- Cfg_Reg4にそれぞれのコンフィグレーションデータa0-a4が順番に書き込まれる。
第1の演算ステージのコンフィグレーションデータa0-a4のプロセッサエレメントのコンフィグレーションレジスタへの最後の書き込みのタイミングで,パワーイネーブル信号P_EnがHレベルに立ち上がり,書き込まれたコンフィグレーションデータa0-a4に電源供給を指示する電源制御コンフィグレーションデータが含まれているプロセッサエレメントに電源供給が開始され,プロセッサエレメントは演算状態になる。そして,その1クロックサイクル後に,コンフィグレーション制御部30がレディ/ストール信号R/SをHレベルに立ち上げて,リコンフィグ回路コア内のプロセッサエレメントの演算動作を開始させる。
図29では,第1の演算ステージST1は2クロックサイクルで終了している。その終了するクロックサイクルでプログラムフェッチ信号Program_Fetchが生成され,次の第2の演算ステージST2のためのコンフィグレーションデータの読み出しが開始される。また,コンフィグレーション制御部30は,第1の演算ステージST1が終了すると,レディ/ストール信号R/SをLレベルに立ち下げて,プロセッサエレメントの動作を停止すると共に,パワーイネーブル信号P_EnもLレベルに立ち下げて,プロセッサエレメントへの電源を遮断する。
次に,第2の演算ステージに対応するプログラムカウントPCを入力したデコーダ36がコンフィグレーションイネーブル信号Cfg_En0-4をクロックに同期して出力し,それに同期して,5グループのプロセッサエレメントPE00-PE0n,PE10-PE1n,PE20-PE2n,PE30-PE3nのコンフィグレーションレジスタCfg_Reg0- Cfg_Reg4にそれぞれのコンフィグレーションデータb0-b4が順番に書き込まれる。
第2の演算ステージのコンフィグレーションデータb0-b4のプロセッサエレメントのコンフィグレーションレジスタへの最後のサイクルの書き込みのタイミングで,パワーイネーブル信号P_EnがHレベルに立ち上がり,書き込まれたコンフィグレーションデータb0-b4に電源供給を指示する電源制御コンフィグレーションデータが含まれているプロセッサエレメントに電源供給が開始され,プロセッサエレメントは演算状態になる。そして,その1クロックサイクル後に,コンフィグレーション制御部30がレディ/ストール信号R/SをHレベルに立ち上げて,リコンフィグ回路コア内のプロセッサエレメントの演算動作を開始させる。
図29では,第2の演算ステージST2の演算状態は1クロックサイクルで終了している。したがって,レディ/ストール信号R/SのHレベルへの立ち上がりと同時に,プログラムフェッチ信号Program_FetchもHレベルにされている。
第2の演算ステージから第3の演算ステージへの動作は,第1から第2の演算ステージへの動作と同じである。そして,第3の演算ステージST3は,3クロックサイクルで終了し,レディ/ストール信号R/SをLレベルに立ち下げて,プロセッサエレメントの動作を停止すると共に,パワーイネーブル信号Power_EnもLレベルに立ち下げて,プロセッサエレメントへの電源を遮断する。そして,エンドフラグ信号End_FlagがHレベルにされている。
以上のように,第2の実施の形態のように複数のクロックサイクルでコンフィグレーションデータをコンフィグレーションレジスタに書き込んで設定する場合でも,書き込み完了後に,演算状態にされて動作対象になるプロセッサエレメントに対して,電源供給を開始した後に,演算状態での動作を開始するようにする。
図30は,電源制御部PSWの他の例を示す図である。図30に示されるとおり,電源制御部PSWを構成する電源スイッチは,PMOSトランジスタとNMOSトランジスタを並列に接続したCMOSトランジスタスイッチでもよい。その場合は,電源制御信号Pwは,インバータINVにより反転され,相補の電源制御信号PwがCMOSトランジスタスイッチのゲートに供給される。
以上の通り,本実施の形態によれば,複数のプロセッサエレメントを有するリコンフィグ可能なLSIにおいて,複数のプロセッサエレメントのうち演算状態にされて動作対象になるプロセッサエレメントだけに電源供給を行って省電力化を行う場合に,その演算状態にされて動作対象になるプロセッサエレメントには,まず事前に電源供給を開始し,その後コンフィグレーションデータによる演算状態にして動作開始する。したがって,動作開始を高速に行うことができ,電源供給の遅れによる不良動作を回避することができる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
コンフィグレーションデータに基づいて任意の演算システムに再構築される再構築可能なLSIであって,
前記コンフィグレーションデータを記憶するコンフィグレーションメモリと,
それぞれ再構築可能な論理回路を有し,前記コンフィグレーションデータに基づいて所望の演算状態に構築される複数のプロセッサエレメントと,
前記複数のプロセッサエレメントに対応してそれぞれ設けられ,それぞれに対応するプロセッサエレメントの演算状態を規定する前記コンフィグレーションデータを記憶する複数のコンフィグレーションレジスタと,
前記プロセッサエレメントへの電源供給と遮断を制御する電源制御部を有し,
前記電源制御部が,前記複数のプロセッサエレメントのうち前記コンフィグレーションデータに基づいて前記演算状態に構築される動作対象プロセッサエレメントへの電源供給を開始した後,前記動作対象プロセッサエレメントが動作開始する再構築可能なLSI。
(付記2)
付記1において,
前記演算システムは,複数の演算ステージによって前記演算システムの演算処理を実行し,
前記電源制御部は,第1の演算ステージで,前記第1の演算ステージの次の第2の演算ステージで演算状態に構築される動作対象プロセッサエレメントへの電源供給を開始する再構築可能なLSI。
(付記3)
付記1において,
前記電源制御部は,前記コンフィグレーションデータに基づいて前記プロセッサエレメントへの電源供給と遮断を制御し,
前記プロセッサエレメントを前記演算システムに構築するためのコンフィグレーションデータは,前記演算システムによる演算処理を分割した複数の演算ステージでの演算状態に前記プロセッサエレメントを構築する複数の演算状態コンフィグレーションデータを有し,
第1の演算ステージに対応する第1の演算状態コンフィグレーションデータは,前記第1の演算ステージで演算状態に構築される動作対象プロセッサエレメントへの前記電源供給を指示すると共に,前記第1の演算ステージの次の第2の演算ステージで演算状態に構築される動作対象プロセッサエレメントへの前記電源供給を指示する電源制御コンフィグレーションデータを有する再構築可能なLSI。
(付記4)
付記1において,
前記電源制御部は,前記コンフィグレーションデータに基づいて前記プロセッサエレメントへの電源供給と遮断を制御し,
前記演算システムを起動するときに,前記電源制御部は,前記コンフィグレーションメモリから読み出されたメモリ読み出しコンフィグレーションデータにしたがって前記電源供給を開始し,その後,前記コンフィグレーションレジスタに記憶されたレジスタ読み出しコンフィグレーションデータにしたがって前記電源供給を行う再構築可能なLSI。
(付記5)
付記1において,
さらに,前記再構築を制御するコンフィグレーション制御部を有し,
前記電源制御部は,前記コンフィグレーションデータに基づいて前記プロセッサエレメントへの電源供給と遮断を制御し,
前記コンフィグレーション制御部は,前記複数のプロセッサエレメントを前記演算状態に構築するコンフィグレーションデータを,複数サイクルで前記コンフィグレーションレジスタに書き込み,
前記コンフィグレーション制御部は,前記電源制御部に前記コンフィグレーションレジスタに書き込まれたコンフィグレーションデータに基づいて前記動作対象プロセッサエレメントへの前記電源供給を開始させた後に,前記動作対象プロセッサエレメントの動作開始を制御する再構築可能なLSI。
(付記6)
付記1において,
さらに,前記再構築を制御するコンフィグレーション制御部を有し,
前記電源制御部は,前記コンフィグレーションデータに基づいて前記プロセッサエレメントへの電源供給と遮断を制御し,
前記コンフィグレーション制御部は,前記複数のプロセッサエレメントを前記演算状態に構築するコンフィグレーションデータを,前記コンフィグレーションレジスタに書き込み,
前記コンフィグレーション制御部は,前記電源制御部に,前記コンフィグレーションレジスタに書き込まれたコンフィグレーションデータに基づいて前記動作対象プロセッサエレメントへの前記電源供給を開始させた後に,前記動作対象プロセッサエレメントの動作開始を制御する再構築可能なLSI。
(付記7)
付記1において,
前記電源制御部は,前記コンフィグレーションデータに基づいて前記プロセッサエレメントへの電源供給と遮断を制御し,
前記電源制御部は,前記コンフィグレーションレジスタに書き込まれたコンフィグレーションデータにしたがって前記動作対象プロセッサエレメントへの電源供給を開始し,その後,動作対象プロセッサエレメントが動作を開始する再構築可能なLSI。
(付記8)
付記7において,
前記電源供給の開始を,電源イネーブル信号によって制御し,前記動作開始を,レディ/ストール信号によって制御する再構築可能なLSI。