半導体装置
【課題】動的に回路構成を再構成可能な半導体装置にて、回路構成の再構成に係る制御情報量を低減できるようにする。
【解決手段】コンフィグレーションデータを記憶する制御データ用メモリ24と、演算器26とを有し、コンフィグレーションデータに応じて回路構成を再構成可能な複数の演算部22と、コンフィグレーションデータを制御データ用メモリから出力させるための構成指定データを記憶するコンフィグレーションメモリ13Aとを備え、コンフィグレーションメモリにはコンフィグレーションデータを記憶せずに、制御データ用メモリからコンフィグレーションデータを出力させるための情報のみを記憶するだけで、コンフィグレーションデータを供給することができるようにする。
【解決手段】コンフィグレーションデータを記憶する制御データ用メモリ24と、演算器26とを有し、コンフィグレーションデータに応じて回路構成を再構成可能な複数の演算部22と、コンフィグレーションデータを制御データ用メモリから出力させるための構成指定データを記憶するコンフィグレーションメモリ13Aとを備え、コンフィグレーションメモリにはコンフィグレーションデータを記憶せずに、制御データ用メモリからコンフィグレーションデータを出力させるための情報のみを記憶するだけで、コンフィグレーションデータを供給することができるようにする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置に関し、詳しくは、動的に回路構成を再構成可能な半導体装置に関する。
【背景技術】
【0002】
従来、LSI等の半導体装置は、一般に要求仕様として予め決められた処理を実行するようにANDゲート(論理積演算回路)やORゲート(論理和演算回路)等の配置及びそれらに係る配線を設計工程で決定し、当該要求仕様に応じた処理を実行可能な半導体装置を製造している。つまり、従来の半導体装置において所望の機能を実現しようとする場合には、回路構成(論理構成)についての設計がゲート単位(ゲートレベル)で行われ、当該機能を実現する半導体装置が製造されている。
【0003】
しかし、上記半導体装置は、その回路構成が設計工程にて固定されるため、仕様変更などにより異なる要求仕様に応じた処理を実行しようとすると、その都度、設計及び製造のすべてを行う必要がある。したがって、多大な労力及び時間を要するとともに、開発コストも高い。
【0004】
この問題を解決する1つの方法として、製造後であっても、論理を再構成し実行する処理を変更可能にしたリコンフィグLSIと呼ばれる再構成可能な半導体装置がある。この再構成可能な半導体装置は、CPUからの制御信号(コンフィグレーション情報)が入力されるとともに機能変更が可能な複数の演算部を有する。当該演算部は、シフター、ALU(算術論理演算装置)、及びセレクタ等を適宜組み合わせて構成されており、CPUからのコンフィグレーション情報を受け、それに応じて論理を再構成することで実行する処理を変更することが可能となっている。
【0005】
上述した再構成可能な半導体装置は、CPUが複数の演算部をそれぞれ直接制御しており、処理速度が低い。例えば、ある演算部からの割り込みに基づいて、複数の演算部で実行する処理を変更する場合には、CPUは演算部からの割り込みを受けて割り込み処理ルーチンを呼び出して実行し、その後、当該処理ルーチンの処理結果等に応じたコンフィグレーション情報を複数の演算部に供給する。この割り込み処理には、数十クロックに相当する時間を要する。したがって、上述した再構成可能な半導体装置では、処理速度が遅く、演算部にて実行する処理を動的に(クロック単位で)変更することができなかった。
【0006】
この問題を解決する1つの方法として、本出願人は、図10に構成を示すような再構成可能な半導体装置を提案している。図10は、本出願人が提案した再構成可能な半導体装置の構成例を示す図であり、当該半導体装置は、CPUに代えて、回路構成(論理構成)の変更制御に関しCPUと等価的な機能を有するシーケンサーを設けている。
【0007】
シーケンサー(制御部)1は、外部(例えば外部バス3を介して接続されているプロセッサ)からの指示に応じて、当該半導体装置を統括的に制御するものであり、演算処理部2の回路構成(論理構成を含む。)を管理するとともに、それを動的に変更させる制御を行う。シーケンサー1は、アプリケーションに応じて動的に演算処理部2の回路構成を変更するため、コンフィグレーションデータ(コンフィグレーション情報)を含む当該シーケンサー1からの制御信号が供給可能なように演算処理部2の各機能部と信号線を介して接続されている。
【0008】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Fを有する。状態制御回路11は、予め設定された所定のシーケンスや演算処理部2からの状態遷移指示信号等に基づき、演算処理部2の状態(回路構成)を次状態に移すコンフィグレーションデータ及び固定値データをコンフィグレーションメモリ13Fから読み出すためのコンフィグレーションメモリアドレス及びその読み出しタイミングを生成する。状態制御回路11によるコンフィグレーションメモリアドレスの生成は、状態レジスタ12に保持されている現在の状態を示す情報を参照して行われる。また、次状態に遷移する際に、状態レジスタ12に保持する情報は更新される。
【0009】
コンフィグレーションメモリ13Fは、演算処理部2の回路構成を設定するコンフィグレーションデータと、固定値データを記憶する。すべてのコンフィグレーションデータと固定値データは、動作開始前に外部からコンフィグレーションメモリ13Fに予め書き込まれ、状態毎に1組のデータとして保持される。コンフィグレーションメモリ13Fに記憶されているコンフィグレーションデータ及び固定値データは、状態制御回路11による制御に応じて読み出され、演算処理部2に出力される。コンフィグレーションメモリ13Fの内容についての詳細は後述する。
【0010】
演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有する。なお、i,jは添え字であり、i=1〜N(Nは任意)の自然数、j=1〜M(Mは任意)の自然数である。
【0011】
セレクタ/レジスタ21は、シーケンサー1から供給されるコンフィグレーションデータにより制御される。セレクタ/レジスタ21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mにそれぞれ接続され、演算部22−i及びデータメモリ23−jとの間でデータを授受する。言い換えると、セレクタ/レジスタ21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mを互いに通信可能なように接続するネットワーク機能を有している。
【0012】
具体的には、セレクタ/レジスタ21は、コンフィグレーションデータに応じて、演算部22−iにデータを供給したり、データメモリ23−jとの間で書き込みデータを供給したり、読み出されたデータの供給を受けたりする。また、セレクタ/レジスタ21は、演算部22−iの出力(演算結果)等を一時的に保持するレジスタを有しており、コンフィグレーションデータに応じてレジスタに保持されているデータ又はそれ以外から供給されるデータを選択的に出力可能となっている。
【0013】
各演算部22−iは、レジスタ25と演算器(ALU)ユニット26を有する。
レジスタ25は、シーケンサー1から供給されるコンフィグレーションデータ及び固定値データをそれぞれ一時的に保持するコンフィグレーションレジスタ25A及び固定値レジスタ25Bで構成される。
【0014】
ALUユニット26は、シフト回路(シフター)、ALU(算術論理演算装置)、及びセレクタ等(以下、説明の便宜上、これらを区別せずに単に演算器とも称す。)を用いて構成される。なお、ALUユニット26、具体的にはそれを構成する複数の演算器(1つであっても良い)は、使用するアプリケーションに応じて適宜選択、決定される。
【0015】
ALUユニット26は、コンフィグレーションレジスタ25Aに保持されたコンフィグレーションデータCDに基づいて、ALUユニット26毎に演算器の動作モードや演算器間の接続が設定される。つまり、ALUユニット26は、これを単位としてコンフィグレーションデータCDに応じて回路構成が変更可能となっており、加算、乗算、ビット演算、及び論理演算(AND、OR、EORなど)等をはじめとして所望の機能を実現するように(所定の処理を実行するように)各演算器等が制御される。
【0016】
例えば、シフト回路であれば、シフト量、算術シフト処理、論理シフト処理、及びシフト処理後の所定ビットのマスク処理等が制御される。また、例えばAND回路やOR回路等を用いて構成されたALUであれば、それらを適宜組み合わせたりしてALU全体での回路(演算)機能が制御される。また、セレクタであれば、複数の入力のうち、いずれの入力を出力するかが制御される。さらには、これらシフト回路、ALU、及びセレクタ等の間の接続が制御される。
【0017】
ALUユニット26は、セレクタ/レジスタ21から供給される第1の入力データDT1が入力されるとともに、コンフィグレーションデータに応じてセレクタ/レジスタ21から供給される第2の入力データDT2又は固定値レジスタ25Bに保持された固定値データCVDの一方が入力され、それらを用いて所定の演算を行って演算結果を出力する。このALUユニット26の出力は、そのまま出力することが可能であるが、コンフィグレーションデータに基づきフィードバックさせることもできるように構成されており、例えば出力を蓄積し規格化して出力することもできる。
【0018】
各データメモリ23−jは、演算処理部2での処理に係るデータを記憶するメモリである。
【0019】
図11は、図10に示したコンフィグレーションメモリ13Fの内容を説明するための図であり、上述したように各状態に対応したコンフィグレーションデータと固定値データとが記憶されている。図11において、CDiはコンフィグレーションデータであり、CVDiは固定値データである。なお、iは添え字であり、i=1〜N(Nは任意)の自然数である。また、図11においては、固定値データCVDiの値のみ図示しており、コンフィグレーションデータCDiの値については図示を省略している。
【0020】
コンフィグレーションデータCDi及び固定値データCVDiは、k番目(k=1〜128の自然数)の状態にするときに、演算部22−iに供給されてコンフィグレーションレジスタ25に一時的に保持される。すなわち、演算処理部2にて所望の回路機能を実現するためのある回路構成FUNCkに係るコンフィグレーションデータと固定値データは、図11において行方向に配列された1組のコンフィグレーションデータCD1〜CDN及び固定値データCVD1〜CVDNにより構成される。なお、図11においては図示していないが、コンフィグレーションメモリ13Fには、演算部22−iに係るコンフィグレーションデータ以外にもセレクタ/レジスタ21を制御するコンフィグレーションデータ等が記憶されている。
【0021】
上述のように、CPUに代えてシーケンサー1を設けることで、再構成可能な半導体装置は、いわゆるダイナミックリコンフィグレーションが可能となり、クロック単位で動的に回路構成(論理)を再構成することができる。例えば、演算処理部2は、シーケンサー1からのコンフィグレーションデータ(制御信号)に基づき、あるクロック期間ではA機能を行い、次のクロック期間ではA機能とは異なるB機能を行うことができる。
【0022】
しかしながら、上記図10及び図11に示した再構成可能な半導体装置において、固定値(定数)を入力可能な演算器については、コンフィグレーションデータとともに固定値データがコンフィグレーションメモリ13Fに保存され、必要に応じて演算器に対応して設けられたコンフィグレーションレジスタ25に読み出され保持される。このようにコンフィグレーションメモリ13Fに固定値データを保存する場合には、固定値が入力可能な演算器毎に固定値データを記憶する固定値データ領域を設け、すべての固定値データをコンフィグレーションメモリ13Fに保存しておく必要がある。例えば、固定値が入力可能な演算器に対して、セレクタ/レジスタ21からの第2の入力データが32ビット幅であれば、コンフィグレーションメモリ13Fに当該演算器毎に32ビットの固定値データ領域を演算処理部2のすべての状態(以下、状態を「コンフィグレーション」とも称す。)について設ける必要がある。
【0023】
ここで、演算処理部2の状態のすべてで各演算器の入力として固定値データを設定する、すなわち演算処理部2の状態を切り換える度に各演算器の入力として固定値データを設定することはほとんどない。したがって、上述にように設けた固定値データ領域は、コンフィグレーションメモリ13Fの記憶領域を浪費していることとなり、コンフィグレーションメモリ13Fに固定値データを保存する場合には多くのメモリ(記憶領域)を消費してしまう。
【0024】
そこで、本出願人は、固定値データの記憶に要する記憶容量の低減を図った図12に構成を示すような再構成可能な半導体装置を提案している(特許文献1参照。)。図12は、本出願人が提案した再構成可能な半導体装置の他の構成例を示す図である。この図12において、図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0025】
図12に示す再構成可能な半導体装置は、シーケンサー1と演算処理部2を有し、演算処理部2内に固定値データを記憶する固定値用メモリ72−1、72−2を備えている。
【0026】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Gを有する。
コンフィグレーションメモリ13Gは、演算処理部2の回路構成を設定するコンフィグレーションデータと、固定値指定データを記憶する。固定値指定データは、固定値用メモリ72−1、72−2に記憶されている固定値データの中から、演算処理部2の状態に対応した固定値データを指定し読み出すためのものであり、ここでは一例として固定値用メモリ72−1、72−2におけるアドレスとする。
【0027】
演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jに加え、固定値用メモリ72−1、72−2、セレクタ73−i、及び固定値指定レジスタ74−1、74−2を有する。なお、i,jは添え字であり、i=1〜N(Nは任意)の自然数、j=1〜M(Mは任意)の自然数である。
【0028】
固定値用メモリ72−1、72−2は、固定値データを記憶するメモリである。固定値用メモリ72−1、72−2に記憶されている固定値データは、シーケンサー1により固定値指定レジスタ74−1、74−2に設定されたアドレス値に基づいて読み出されセレクタ73−iに出力される。
【0029】
セレクタ73−iは、シーケンサー1から供給されるコンフィグレーションデータに応じて、セレクタ/レジスタ21から供給される第2の入力データDT2又は固定値用メモリ72−1、72−2から供給される固定値データCVDを選択し演算部22−i内のALUユニット26に出力する。
【0030】
演算部22−iは、シーケンサー1から供給されるコンフィグレーションデータを一時的に保持するコンフィグレーションレジスタ71と、ALUユニット26を有する。演算部22−iは、固定値データが固定値用メモリ72−1、72−2から読み出されセレクタ73−iを介してALUユニット26に供給されるため、図10に示した固定値レジスタを備えていない。
【0031】
なお、コンフィグレーションメモリ13Gに記憶されるコンフィグレーションデータと固定値指定データ、及び固定値用メモリ72−1、72−2に記憶される固定値データは、外部からコンフィグレーションメモリ13G及び固定値用メモリ72−1、72−2にそれぞれ動作開始前に予め書き込まれ保持される。コンフィグレーションデータと固定値指定データは、状態毎に1組のデータとしてコンフィグレーションメモリ13Gに保持される。
【0032】
図13は、図12に示したコンフィグレーションメモリ13G及び固定値用メモリ72−1、72−2の内容を説明するための図である。なお、図13においては、比較参照するために図11に示したコンフィグレーションメモリ13Fの内容と等価な内容を一例として示している。
【0033】
図13(A)はコンフィグレーションメモリ13Gの内容を示している。図13(A)において、CDi(i=1〜Nの自然数)はコンフィグレーションデータであり、CVAD1、CVAD2はそれぞれ固定値用メモリ72−1、72−2におけるアドレス値である。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0034】
また、図13(B)、(C)は固定値用メモリ72−1、72−2の内容を示している。図13(B)、(C)において、CVAD1、CVAD2は固定値用メモリ72−1、72−2におけるアドレス値であり、CVDi(i=1〜Nの自然数)は固定値データである。図13(B)、(C)には、固定値用メモリ72−1に固定値データCVD1、CVD3を、固定値用メモリ72−2に固定値データCVD2、CVDNを記憶した場合を示している。
【0035】
図13(B)、(C)に示したように、固定値用メモリ72−1、72−2のそれぞれにおいて、固定値データCVDiの組み合わせが同じ場合には、1組の固定値データCVDiとして記憶される。すなわち、固定値用メモリ72−1に記憶される固定値データCVDiの組み合わせは、互いに異なるものであり重複しては記憶されず、同様に、固定値用メモリ72−2に記憶される固定値データCVDiの組み合わせは、互いに異なるものであり重複しては記憶されない。
【0036】
また、図13(A)に示したようにコンフィグレーションメモリ13Gにおいては、コンフィグレーションデータCDiと、この状態に対応する固定値データCVDiの組み合わせが記憶されている固定値用メモリ72−1、72−2のアドレス値CVAD1、CVAD2がそれぞれ記憶される。
【0037】
上述のように、固定値用メモリ72−1、72−2に固定値データの組み合わせが重複しないようにして固定値データを記憶し、コンフィグレーションメモリ13Gにコンフィグレーションデータと、その状態に対応する固定値データを読み出すための固定値用メモリ72−1、72−2のアドレス値を記憶する。これにより、コンフィグレーションメモリ13Gには固定値用データを記憶せずに固定値用メモリ72−1、72−2のアドレス値のみを記憶すれば良いので、コンフィグレーションメモリ13Gに要求される記憶容量を低減することができ、小さなサイズのメモリでコンフィグレーションメモリ13Gを構成することができる。また、固定値用メモリ72−1、72−2に、各状態毎に固定値データを記憶せず、同じ組み合わせの固定値データを1組の固定値データとして1つだけ記憶するので、固定値データを記憶するために要する記憶容量を低減することが可能となる。
【0038】
【特許文献1】特開2006−18453号公報
【発明の開示】
【発明が解決しようとする課題】
【0039】
ここで、再構成可能な半導体装置において、コンフィグレーションメモリに記憶できる状態遷移数に対して、コンフィグレーションデータにより設定可能な回路構成数はかなり小さい傾向にある。例えば、各演算部22−iに係るコンフィグレーションデータのビット数がそれぞれ16ビットとし、演算部22−iの数が32個であったとすると、1つの状態(1つの回路面)におけるコンフィグレーションデータの総ビット数は512ビットとなり、2の512乗という膨大な組み合わせが存在することとなる。しかしながら、現在のLSIテクノロジでコストを考慮した適切なサイズのメモリ容量は数十KB程度であり、コンフィグレーションメモリで上述した膨大な組み合わせをすべて設定することは不可能である。
【0040】
また、再構成可能な半導体装置において、実際のアプリケーションを実装した場合の複数の回路面での回路構成に着目すると、相違する回路面の数がわずかであることも多い。例えば、図12に示した再構成可能な半導体装置における1つの演算部22−1に係るコンフィグレーションデータ(図13(A)に示したコンフィグレーションデータCD1)については、回路面数128に対して、128面すべての設定(コンフィグレーションデータ)が異なることは非常にまれであり、実際には数通りの異なる設定だけであることもある。
【0041】
また、セレクタ/レジスタ(バス)21を制御するコンフィグレーションデータもコンフィグレーションメモリに記憶されるが、セレクタ/レジスタ(バス)21は、多数のセレクタ及び多数のレジスタから構成されており、コンフィグレーションデータ量は膨大である。
【0042】
本発明の目的は、動的に回路構成を再構成可能な半導体装置にて、回路構成の再構成に係る制御情報量を低減できるようにすることである。
【課題を解決するための手段】
【0043】
本発明の半導体装置は、第1の制御データ用メモリ及び演算器をそれぞれ有し第1の構成情報に応じて回路構成を再構成可能な複数の演算部と、コンフィグレーションメモリとを備える。第1の構成情報を第1の制御データ用メモリに記憶し、第1の構成情報を第1の制御データ用メモリから出力させるための第1の構成指定情報をコンフィグレーションメモリに記憶する。
本発明によれば、第1の構成情報を演算部内の第1の制御データ用メモリに記憶することで、コンフィグレーションメモリには第1の構成情報そのものを記憶するためのデータ領域を設けずに、第1の制御データ用メモリから第1の構成情報を出力させるための指定情報のみを記憶すれば良く、記憶すべきデータ量を低減することができる。
【発明の効果】
【0044】
本発明によれば、コンフィグレーションメモリとは別に、演算部毎に第1の制御データ用メモリを設けて回路構成の再構成に係る構成情報を記憶するようにしたので、コンフィグレーションメモリに構成情報自体を記憶するためのデータ領域を設ける必要がなく、第1の制御データ用メモリから構成情報を出力させるための指定情報のみを記憶するだけで構成情報を供給することができる。したがって、回路構成を再構成するための制御情報量を低減することができ、コンフィグレーションメモリに要求される記憶容量を低減し、回路規模を削減することができる。
【発明を実施するための最良の形態】
【0045】
以下、本発明の実施形態を図面に基づいて説明する。
【0046】
(第1の実施形態)
図1は、本発明の第1の実施形態における再構成可能な半導体装置の構成例を示す図である。この図1において、図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。第1の実施形態における再構成可能な半導体装置は、シーケンサー(制御部)1と演算処理部2を有する。
【0047】
シーケンサー1は、外部(例えば外部バス3を介して接続されているプロセッサ)からの指示に応じて、当該半導体装置を統括的に制御するものであり、演算処理部2の回路構成(論理構成を含む。)を管理するとともに、それを動的に変更させる制御を行う。シーケンサー1は、アプリケーションに応じて動的に演算処理部2の回路構成を変更するため、演算処理部2の各機能部と信号線を介して接続されている。
【0048】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Aを有する。また、演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有し、各演算部22−iは、制御データ用メモリ24、レジスタ25、及び演算器(ALU)ユニット26を有する。なお、i,jは添え字であり、i=1〜N(Nは任意)の自然数、j=1〜M(Mは任意)の自然数である。
【0049】
状態制御回路11は、予め設定された所定のシーケンスや演算処理部2からの状態遷移指示信号等に基づいて、演算処理部2の状態(回路構成)を次状態に移すためのセレクタ/レジスタ(バス)21のコンフィグレーションデータ及び構成指定データをコンフィグレーションメモリ13Aから読み出すためのコンフィグレーションメモリアドレス及びその読み出しタイミングを生成する。状態制御回路11によるコンフィグレーションメモリアドレスの生成は、状態レジスタ12に保持されている現在の状態を示す情報を参照して行われる。また、次状態に遷移する際に、状態レジスタ12に保持する情報は更新される。
【0050】
コンフィグレーションメモリ13Aは、演算処理部2内のセレクタ/レジスタ(バス)21の構成を設定するコンフィグレーションデータと、各演算部22−1〜22−Nに係る構成指定データを記憶する。この構成指定データは、演算部22−iの状態に対応した制御データ用メモリ24内のコンフィグレーションデータと固定値データとの組を一意に識別可能な情報であり、制御データ用メモリ24に記憶されているコンフィグレーションデータと固定値データとの組の中から、演算部22−iの状態に対応したコンフィグレーションデータと固定値データとの組を指定し読み出すためのものである。なお、以下では一例として、構成指定データは、制御データ用メモリ24におけるアドレスとする。
【0051】
セレクタ/レジスタ(バス)21は、演算処理部2内でのデータ授受の制御を行い、シーケンサー1から供給されるコンフィグレーションデータCSRDにより制御される。セレクタ/レジスタ(バス)21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mにそれぞれ接続され、演算部22−i及びデータメモリ23−jとの間でデータを授受する。言い換えると、セレクタ/レジスタ(バス)21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mを互いに通信可能なように接続するネットワーク機能を有している。
【0052】
具体的には、セレクタ/レジスタ(バス)21は、コンフィグレーションデータに応じて、演算部22−iにデータを供給したり、データメモリ23−jとの間で書き込みデータを供給したり、読み出されたデータの供給を受けたりする。また、セレクタ/レジスタ(バス)21は、演算部22−iの出力(演算結果)等を一時的に保持するレジスタを有しており、コンフィグレーションデータに応じてレジスタに保持されているデータ又はそれ以外から供給されるデータを選択的に出力可能となっている。
【0053】
制御データ用メモリ24は、演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶するメモリであり、コンフィグレーションデータが格納されるコンフィグレーションデータ領域24A及び固定値データが格納される固定値データ領域24Bを有する。演算部22−iに係るコンフィグレーションデータ及び固定値データは、1組のデータとして制御データ用メモリ24に保持されており、構成指定データとしてシーケンサー1から供給されるアドレス値CADiに基づいて読み出され、そのデータ(コンフィグレーションデータ及び固定値データ)CDCVDがレジスタ25に出力される。
【0054】
レジスタ25は、制御データ用メモリ24から出力されるコンフィグレーションデータを保持するコンフィグレーションレジスタ25A及び固定値データを保持する固定値レジスタ25Bで構成される。なお、レジスタ25は、制御データ用メモリ24から出力されたデータをALUユニット26に供給するタイミングを調整するためのものであり、例えば制御データ用メモリ24が同期型のメモリであり、出力のタイミング調整が不要である場合等にはレジスタ25を備えていなくとも良い。
【0055】
ALUユニット26は、シフト回路(シフター)、ALU(算術論理演算装置)、及びセレクタ等(以下、これらを区別せずに単に演算器とも称す。)を用いて構成される。なお、ALUユニット26、具体的にはそれを構成する複数の演算器(1つであっても良い)は、使用するアプリケーションに応じて適宜選択、決定すれば良い。
【0056】
ALUユニット26は、コンフィグレーションレジスタ25Aに保持されたコンフィグレーションデータCDに基づいて、ALUユニット26毎に演算器の動作モードや演算器間の接続が設定される。つまり、ALUユニット26は、これを単位としてコンフィグレーションデータCDに応じて回路構成が変更可能となっており、加算、乗算、ビット演算、及び論理演算等をはじめとして所望の機能を実現するように(所定の処理を実行するように)各演算器等が制御される。
【0057】
例えば、シフト回路であれば、シフト量、算術シフト処理、論理シフト処理、及びシフト処理後の所定ビットのマスク処理等が制御される。また、例えばAND回路やOR回路等を用いて構成されたALUであれば、それらを適宜組み合わせたりしてALU全体での回路(演算)機能が制御される。また、セレクタであれば、複数の入力のうち、いずれの入力を出力するかが制御される。さらには、これらシフト回路、ALU、及びセレクタ等の間の接続が制御される。
【0058】
ALUユニット26は、セレクタ/レジスタ21から供給される第1の入力データDT1が入力されるとともに、コンフィグレーションデータに応じてセレクタ/レジスタ21から供給される第2の入力データDT2又は固定値レジスタ25Bに保持された固定値データCVDの一方が入力され、それらを用いて演算を行い演算結果を出力する。このALUユニット26の出力は、そのまま出力することが可能であるが、コンフィグレーションデータに基づきフィードバックさせることもできるように構成されており、例えば出力を蓄積し規格化して出力することもできる。
各データメモリ23−jは、演算処理部2での処理に係るデータを記憶するメモリである。
【0059】
なお、コンフィグレーションメモリ13Aに記憶されるセレクタ/レジスタ(バス)21のコンフィグレーションデータと演算部22−1〜22−Nの構成指定データ、及び制御データ用メモリ24に記憶される演算部22−iのコンフィグレーションデータと固定値データは、例えば、RISC(プロセッサ)やその他のハードウェア等により外部からコンフィグレーションメモリ13A及び制御データ用メモリ24にそれぞれ動作開始前に予め書き込まれ保持される。
【0060】
図2は、図1に示したコンフィグレーションメモリ13A及び制御データ用メモリ24の内容を説明するための図である。
図2(A)はコンフィグレーションメモリ13Aの内容を示している。図2(A)において、CADi(i=1〜Nの自然数)は対応する演算部22−iに係る構成指定データとしての制御データ用メモリ24におけるアドレス値であり、CSRDはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0061】
また、図2(B)、(C)は演算部22−iに設けられた制御データ用メモリ24の内容を示しており、CADi(i=1〜Nの自然数、CDCVDiについても同様)は制御データ用メモリ24におけるアドレス値であり、CDCVDiは対応する演算部22−iのコンフィグレーションデータ及び固定値データである。データCDCVDiは、例えば演算部22−iのコンフィグレーションデータCDiと固定値データCVDiをビット結合したものである(図中の“&”はビット連結子を示す。)。
【0062】
なお、図2(B)、(C)には、一例として、演算部22−1、22−Nに設けられた制御データ用メモリ24の内容をそれぞれ示している。図2(B)、(C)において、E1、E2、E3、E4、…、及びG1、G2、G3、G4、…を演算部22−1、22−Nのコンフィグレーションデータとし、F1、F2、…、及びH1、H2、H3、…を演算部22−1、22−Nの固定値データとする。
【0063】
つまり、第1の実施形態における再構成可能な半導体装置は、演算処理部2内の各演算部22−iに制御データ用メモリ24を設けて、演算部22−iのコンフィグレーションデータCDiと固定値データCVDiを記憶する。シーケンサー1内のコンフィグレーションメモリ13Aに、各演算部22−iの制御データ用メモリ24からコンフィグレーションデータCDiと固定値データCVDiを読み出すための制御データ用メモリ24のアドレス値を構成指定データとして記憶する。
【0064】
そして、演算処理部2内の状態を切り換える際には、当該状態に対応するセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRD及び各演算部22−iに係る構成指定データとしてのアドレス値CADiがコンフィグレーションメモリ13Aから読み出される。読み出されたセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRDは、セレクタ/レジスタ(バス)21に供給され、セレクタ/レジスタ(バス)21の構成が設定される。また、読み出されたアドレス値CADiは、各演算部22−iに供給され、当該アドレス値CADiに基づいて制御データ用メモリ24からコンフィグレーションデータCDiと固定値データCVDiが読み出されてレジスタ25を介してALUユニット26に供給され回路構成が再構成される。このようにして演算処理部2で所望の機能が実現される。
【0065】
ここで、制御データ用メモリ24に記憶される演算部22−iのコンフィグレーションデータCDiと固定値データCVDiの組み合わせが同じ場合には、1組のコンフィグレーションデータCDiと固定値データCVDiとして記憶される。すなわち、制御データ用メモリ24に記憶されるコンフィグレーションデータCDiと固定値データCVDiの組み合わせは、互いに異なるものであり重複しては記憶されない。
【0066】
以上、第1の実施形態によれば、演算処理部2内の各演算部22−i毎に当該演算部22−iに係るコンフィグレーションデータと固定値データを記憶する制御データ用メモリ24を設け、シーケンサー1内のコンフィグレーションメモリ13Aには、制御データ用メモリ24から演算部22−iに係るコンフィグレーションデータと固定値データを読み出すための構成指定データ(アドレス値)を記憶する。演算部22−iに係るコンフィグレーションデータと固定値データの組み合わせが同じ場合には制御データ用メモリ24に重複して記憶しないようにして、制御データ用メモリ24には互いに異なるコンフィグレーションデータと固定値データの組を記憶し、構成指定データであるアドレス値に応じて選択する。
【0067】
これにより、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、例えばコンフィグレーションメモリ13Aに要求される記憶容量を低減し、回路規模を削減することができる。また、予め演算部22−iにて設定可能な回路構成を絞り込む、すなわち設定可能なコンフィグレーションデータCDiの数を絞り込んだ場合には、制御データ用メモリ24からコンフィグレーションデータを読み出すための構成指定データのビット数をコンフィグレーションデータのビット数よりも少なくし、半導体装置全体として要求される記憶容量を低減することができる。
【0068】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
上述した第1の実施形態においては、各演算部22−iに設けた制御データ用メモリ24に演算部22−iに係るコンフィグレーションデータと固定値データの組を記憶するようにしていたが、以下に説明する第2の実施形態は、演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶するメモリを独立して配置する。
【0069】
図3は、第2の実施形態における再構成可能な半導体装置の構成例を示す図である。この図3において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0070】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Bを有する。また、演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有する。各演算部22−iは、第1の制御データ(コンフィグレーションデータ)用メモリ31、第2の制御データ(固定値)用メモリ32、コンフィグレーションレジスタ33、固定値レジスタ34、及びALUユニット26を有する。
【0071】
コンフィグレーションメモリ13Bは、演算処理部2内のセレクタ/レジスタ(バス)21の構成を設定するコンフィグレーションデータと、各演算部22−1〜22−Nに係る第1の構成指定データ及び第2の構成指定データを記憶する。第1の構成指定データは、演算部22−iの状態に対応した第1の制御データ用メモリ31内のコンフィグレーションデータを一意に識別可能な情報であり、第1の制御データ用メモリ31に記憶されているコンフィグレーションデータの中から、演算部22−iの状態に対応したコンフィグレーションデータを指定し読み出すためのものである。同様に、第2の構成指定データ(固定値指定データ)は、演算部22−iの状態に対応した第2の制御データ用メモリ32内の固定値データを一意に識別可能な情報であり、第2の制御データ用メモリ32に記憶されている固定値データの中から、演算部22−iの状態に対応した固定値データを指定し読み出すためのものである。なお、以下では一例として、第1及び第2の構成指定データは、それぞれ制御データ用メモリ31、32におけるアドレスとする。
【0072】
第1の制御データ用メモリ31は、演算部22−iに係るコンフィグレーションデータを記憶するメモリである。第1の制御データ用メモリ31に記憶されているコンフィグレーションデータCDは、第1の構成指定データとしてシーケンサー1から供給されるアドレス値CADiに基づいて読み出されコンフィグレーションレジスタ33に出力される。
【0073】
第2の制御データ用メモリ32は、演算部22−iに係る固定値データを記憶するメモリである。第2の制御データ用メモリ32に記憶されている固定値データCVDは、第2の構成指定データとしてシーケンサー1から供給されるアドレス値DADiに基づいて読み出され固定値レジスタ34に出力される。
【0074】
コンフィグレーションレジスタ33及び固定値レジスタ34は、第1の実施形態におけるコンフィグレーションレジスタ25A及び固定値レジスタ25Bにそれぞれ対応する。
【0075】
コンフィグレーションメモリ13Bに記憶されるセレクタ/レジスタ(バス)21のコンフィグレーションデータと、演算部22−1〜22−Nに係る第1及び第2の構成指定データ、及び第1及び第2の制御データ用メモリ31、32にそれぞれ記憶される演算部22−iのコンフィグレーションデータ及び固定値データは、外部からコンフィグレーションメモリ13B及び第1及び第2の制御データ用メモリ31、32にそれぞれ動作開始前に予め書き込まれ保持される。また、セレクタ/レジスタ(バス)21のコンフィグレーションデータと演算部22−1〜22−Nに係る第1及び第2の構成指定データは、状態毎に1組のデータとしてコンフィグレーションメモリ13Bに保持される。
【0076】
図4は、図3に示したコンフィグレーションメモリ13B、第1の制御データ用メモリ31、及び第2の制御データ用メモリ32の内容を説明するための図である。なお、図4においては、比較参照するために図2に示した内容と等価な内容を一例として示している。
【0077】
図4(A)はコンフィグレーションメモリ13Bの内容を示している。図4(A)において、CADi(i=1〜Nの自然数)は対応する演算部22−iに係る第1の構成指定データとしての制御データ用メモリ31におけるアドレス値であり、DADi(i=1〜Nの自然数)は対応する演算部22−iに係る第2の構成指定データとしての制御データ用メモリ32におけるアドレス値である。また、CSRDはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0078】
また、図4(B)〜(E)は演算部22−iに設けられた第1及び第2の制御データ用メモリ31、32の内容を示している。図4(B)は演算部22−1に設けた第1の制御データ用メモリ31の内容を示しており、CAD1は第1の制御データ用メモリ31におけるアドレス値であり、CD1は演算部22−1のコンフィグレーションデータである。図4(C)は演算部22−1に設けた第2の制御データ用メモリ32の内容を示しており、DAD1は第2の制御データ用メモリ32におけるアドレス値であり、CVD1は演算部22−1の固定値データである。
【0079】
同様に、図4(D)は演算部22−Nに設けた第1の制御データ用メモリ31の内容を示しており、CADNは第1の制御データ用メモリ31におけるアドレス値であり、CDNは演算部22−Nのコンフィグレーションデータである。図4(E)は演算部22−Nに設けた第2の制御データ用メモリ32の内容を示しており、DADNは第2の制御データ用メモリ32におけるアドレス値であり、CVDNは演算部22−Nの固定値データである。
【0080】
すなわち、第2の実施形態における再構成可能な半導体装置は、演算処理部2内の各演算部22−iに第1及び第2の制御データ用メモリ31、32を設けて、演算部22−iのコンフィグレーションデータCDiと固定値データCVDiを独立して記憶する。シーケンサー1内のコンフィグレーションメモリ13Bには、各演算部22−iの独立した第1及び第2の制御データ用メモリ31、32からコンフィグレーションデータCDi及び固定値データCVDiを読み出すための第1及び第2の制御データ用メモリ31、32のアドレス値を構成指定データとしてそれぞれ記憶する。
【0081】
そして、演算処理部2内の状態を切り換える際には、当該状態に対応するセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRD及び各演算部22−iに係る構成指定データとしてのアドレス値CADi、DADiがコンフィグレーションメモリ13Bから読み出される。読み出されたセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRDは、セレクタ/レジスタ(バス)21に供給され、セレクタ/レジスタ(バス)21の構成が設定される。
【0082】
また、読み出されたアドレス値CADi、DADiは、各演算部22−iに供給される。このアドレス値CADiに基づいて第1の制御データ用メモリ31からコンフィグレーションデータCDiが読み出されてコンフィグレーションレジスタ33を介してALUユニット26に供給されるとともに、アドレス値DADiに基づいて第2の制御データ用メモリ32から固定値データCVDiが読み出されて固定値レジスタ34を介してALUユニット26に供給される。このようにして回路構成が再構成され、演算処理部2で所望の機能が実現される。
【0083】
なお、第1の制御データ用メモリ31には、同じ値のコンフィグレーションデータCDiは重複して記憶されず、互いに異なるもののみ記憶される。同様に、第2の制御データ用メモリ32には、互いに異なる固定値データのみが記憶され、同じ値の固定値データCDiは重複して記憶されない。
【0084】
以上、第2の実施形態によれば、第1の実施形態と同様の効果が得られ、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、回路規模を削減することができる。また、第1及び第2の制御データ用メモリ31、32を演算部22−i毎に設け、演算部22−iに係るコンフィグレーションデータと固定値データとを独立して記憶するようにしたので、コンフィグレーションデータと固定値データの組み合わせの数は多いが、コンフィグレーションデータと固定値データを個別に考えた場合に種類が少ない場合には、要求される記憶容量をさらに低減することが可能となる。
【0085】
なお、上記図1及び図2に示した第1の実施形態における構成、及び上記図3及び図4に示した第2の実施形態における構成は、使用するアプリケーション等に応じて適宜選択するようにすれば良い。
【0086】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
セレクタ/レジスタ(バス)の内部構造を示した再構成可能な半導体装置の構成を図5に示す。この図5において、図1、図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0087】
セレクタ/レジスタ(バス)21は、シーケンサー1から供給されるセレクタ/レジスタ(バス)設定情報であるコンフィグレーションデータCSRDを記憶する設定情報レジスタ回路41と、設定情報レジスタ回路41に記憶されたコンフィグレーションデータに基づいて所望の動作を行うセレクタ回路42を有する。なお、設定情報レジスタ回路41及びセレクタ回路42は、多数のレジスタ及び多数のセレクタで構成されている。
【0088】
図6は、図5に示したコンフィグレーションメモリ13Cの内容を説明するための図であり、演算処理部2の各状態に対応した演算部22−iに係るコンフィグレーションデータ及び固定値データと、セレクタ/レジスタ(バス)21のコンフィグレーションデータが記憶されている。図16において、CDCVDiはビット結合後の演算部22−iに係るコンフィグレーションデータ及び固定値データであり、CSRDpはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。なお、i、pは添え字であり、i=1〜N(Nは任意)の自然数、p=1〜Q(Qは任意)の自然数である。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0089】
なお、図6においては、本発明の第3の実施形態との比較を容易にするために、セレクタ/レジスタ(バス)21のコンフィグレーションデータをQ個のグループに分けて各グループに対応するコンフィグレーションデータをCSRDpとして示している。
【0090】
演算部22−iの回路構成を再構成するコンフィグレーションデータに限らず、セレクタ/レジスタ(バス)21のコンフィグレーションデータも、セレクタ/レジスタ(バス)21が多数のセレクタ及び多数のレジスタから構成されているため、そのデータ量は膨大である。
【0091】
そこで、以下に説明する本発明の第3の実施形態における再構成可能な半導体装置は、セレクタ/レジスタ(バス)21のコンフィグレーションデータの記憶に要する記憶容量の低減を図るものである。具体的には、演算処理部2内にセレクタ/レジスタ(バス)21のコンフィグレーションデータを記憶する制御データ用メモリを設け、シーケンサー内のコンフィグレーションメモリには状態に対応するセレクタ/レジスタ(バス)21のコンフィグレーションデータを制御データ用メモリから読み出すための構成指定データを記憶させるようにするものである。
【0092】
図7は、第3の実施形態における再構成可能な半導体装置の構成例を示す図である。この図7において、図1、図5、及び図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0093】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Dを有する。また、演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有する。セレクタ/レジスタ(バス)21は、制御データ用メモリ51−p、多数のレジスタで構成される設定情報レジスタ回路52、及び多数のセレクタで構成されるセレクタ回路42を有する。各演算部22−iは、コンフィグレーションレジスタ25A及び固定値レジスタ25Bで構成されるレジスタ25とALUユニット26とを有する。
【0094】
コンフィグレーションメモリ13Dは、演算処理部2内の各演算部22−1〜22−Nに係るコンフィグレーションデータ及び固定値データCDCVDiと、セレクタ/レジスタ(バス)21に係る構成指定データを記憶する。この構成指定データは、セレクタ/レジスタ(バス)21の状態に対応した制御データ用メモリ51−p内のコンフィグレーションデータを一意に識別可能な情報であり、制御データ用メモリ51−pに記憶されているコンフィグレーションデータの中から、セレクタ/レジスタ(バス)21の状態に対応したコンフィグレーションデータを指定し読み出すためのものである。なお、以下では一例として、構成指定データは、制御データ用メモリ51−pにおけるアドレスとする。
【0095】
制御データ用メモリ51−pは、セレクタ/レジスタ(バス)21に係るコンフィグレーションデータを記憶するメモリである。本実施形態では、セレクタ/レジスタ(バス)21をQ個のグループに分け、各グループに対して制御データ用メモリ51−pを配置している。制御データ用メモリ51−pに記憶されているコンフィグレーションデータCSRDpは、構成指定データとしてシーケンサー1から供給されるアドレス値CSRADpに基づいて読み出され設定情報レジスタ回路52に出力される。
【0096】
設定情報レジスタ回路52は、制御データ用メモリ51−1〜51−Qから供給されるコンフィグレーションデータCSRD1〜CSRDQを一時的に保持する。セレクタ回路42は、設定情報レジスタ回路52に保持されたコンフィグレーションデータCSRD1〜CSRDQに基づいて、回路構成を再構成して演算処理部2内におけるデータパスを制御し所望の動作を行う。
【0097】
ここで、コンフィグレーションメモリ13Dに記憶される演算部22−1〜22−Nに係るコンフィグレーションデータ及び固定値データとセレクタ/レジスタ(バス)21に係る構成指定データ、及び制御データ用メモリ51−pにそれぞれ記憶されるセレクタ/レジスタ(バス)21のコンフィグレーションデータは、外部からコンフィグレーションメモリ13D及び制御データ用メモリ51−pに動作開始前に予め書き込まれ保持される。また、演算部22−1〜22−Nに係るコンフィグレーションデータ及び固定値データとセレクタ/レジスタ(バス)21に係る構成指定データは、状態毎に1組のデータとしてコンフィグレーションメモリ13Dに保持される。
【0098】
図8は、図7に示したコンフィグレーションメモリ13D及び制御データ用メモリ51−pの内容を説明するための図である。なお、図8においては、比較参照するために図6に示したコンフィグレーションメモリ13Cの内容と等価な内容を一例として示している。
【0099】
図8(A)はコンフィグレーションメモリ13Dの内容を示している。図8(A)において、CDCVDi(i=1〜Nの自然数)は対応する演算部22−iに係るコンフィグレーションデータ及び固定値データであり、例えばコンフィグレーションデータCDiと固定値データCVDiをビット結合したものである(図中の“&”はビット連結子を示す。)。また、CSRADp(p=1〜Qの自然数)はQ個のグループに分けたセレクタ/レジスタ(バス)21に係る構成指定データとしての制御データ用メモリ51−pにおけるアドレス値である。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0100】
また、図8(B)、(C)は制御データ用メモリ51−pの内容を示しており、CSRADp(p=1〜Qの自然数)は制御データ用メモリ51−pにおけるアドレス値であり、CSRDpはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。なお、図8(B)、(C)には、一例として制御データ用メモリ51−1、51−Qの内容をそれぞれ示している。ここで、図8(B)、(C)に示すように、制御データ用メモリ51−pには、同じ値のコンフィグレーションデータCSRDpは重複して記憶せず、互いに異なるもののみ記憶する。
【0101】
第3の実施形態における再構成可能な半導体装置は、演算処理部2内のセレクタ/レジスタ(バス)21をQ個のグループに分けるとともに、セレクタ/レジスタ(バス)21に制御データ用メモリ51−p(p=1〜Qの自然数)を設けて、セレクタ/レジスタ(バス)21のコンフィグレーションデータCSRDpを記憶する。シーケンサー1内のコンフィグレーションメモリ13Dには、制御データ用メモリ51−pからセレクタ/レジスタ(バス)21の状態に対応するコンフィグレーションデータCSRDpを読み出すための制御データ用メモリ51−pのアドレス値を構成指定データとして記憶する。
【0102】
そして、演算処理部2内の状態を切り換える際には、当該状態に対応する各演算部22−iに係るコンフィグレーションデータ及び固定値データCDCVDi及びセレクタ/レジスタ(バス)21に係る構成指定データとしてのアドレス値CSRADpがコンフィグレーションメモリ13Dから読み出される。読み出された各演算部22−iに係るコンフィグレーションデータ及び固定値データCDCVDiは、対応する演算部22−iに供給される。
【0103】
また、読み出されたアドレス値CSRADpは、制御データ用メモリ51−pに供給され、当該アドレス値CSRADpに基づいて制御データ用メモリ51−pからコンフィグレーションデータCSRDpが読み出される。制御データ用メモリ51−1〜51−Qから読み出されたコンフィグレーションデータCSRD1〜CSRDQは、設定情報レジスタ52に保持され、この保持されたコンフィグレーションデータCSRD1〜CSRDQに基づいて、セレクタ回路42が再構成され所望の動作が実行される。
【0104】
第3の実施形態によれば、演算処理部2内のセレクタ/レジスタ(バス)21に制御データ用メモリ51−pを設けてセレクタ/レジスタ(バス)21のコンフィグレーションデータを記憶し、シーケンサー1内のコンフィグレーションメモリ13Dには、制御データ用メモリ51−pからコンフィグレーションデータを読み出すための構成指定データ(アドレス値)を記憶する。制御データ用メモリ51−pには、同じ値のコンフィグレーションデータCSRDpは重複して記憶せずに異なるもののみ記憶し、構成指定データであるアドレス値に応じて選択する。
【0105】
これにより、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、例えばコンフィグレーションメモリ13Dに要求される記憶容量を低減し、回路規模を削減することができる。なお、セレクタ/レジスタ(バス)21を複数のグループに分ける際の分割数Qは、セレクタ/レジスタ(バス)21のコンフィグレーションデータの記憶に要する記憶容量が少なくなるように決定すれば良い。
【0106】
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。
図9は、第4の実施形態における再構成可能な半導体装置の構成例を示す図である。この図9において、図1及び図7に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0107】
図9に示すように、第4の実施形態における再構成可能な半導体装置は、上述した第1の実施形態における再構成可能な半導体装置及び第3の実施形態における再構成可能な半導体装置の両方の特徴的構成を備えている。すなわち、第4の実施形態における再構成可能な半導体装置は、演算処理部2内の各演算部22−iに当該演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶する制御データ用メモリ24を有するとともに、セレクタ/レジスタ(バス)21にセレクタ/レジスタ(バス)21に係るコンフィグレーションデータを記憶する制御データ用メモリ51−pを有する。
【0108】
シーケンサー1内のコンフィグレーションメモリ13Eには、制御データ用メモリ24から演算部22−iの状態に対応したコンフィグレーションデータと固定値データとの組を指定し読み出すための構成指定データ(例えば制御データ用メモリ24のアドレス値CADi)と、制御データ用メモリ51−pからセレクタ/レジスタ(バス)21の状態に対応したコンフィグレーションデータを指定し読み出すための構成指定データ(例えば制御データ用メモリ51−pのアドレス値CSRADp)が記憶される。
【0109】
第4の実施形態によれば、第1の実施形態と同様の効果が得られるとともに、第3の実施形態と同様の効果が得られ、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量をさらに低減することができ、回路規模を削減することができる。
【0110】
なお、上述した第2の実施形態における再構成可能な半導体装置及び第3の実施形態における再構成可能な半導体装置の両方の特徴的構成を備える再構成可能な半導体装置も同様に構成可能である。その場合にも、第2の実施形態と同様の効果及び第3の実施形態と同様の効果が得られ、コンフィグレーションデータの記憶に要する記憶容量を低減することができ、回路規模を削減することができる。
【0111】
また、上述した各実施形態では、演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶するための制御データ用メモリ24又は第1及び第2の制御データ用メモリ31、32を各演算部22−iに設けているが、複数の演算部22−iで1つのグループを形成し、グループ毎にコンフィグレーションデータ及び固定値データを記憶するための制御データ用メモリを設けるようにしても良い。
【0112】
また、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【0113】
(付記1)第1の構成情報を記憶する第1の制御データ用メモリと、演算器とをそれぞれ有し、上記第1の制御データ用メモリから出力される上記第1の構成情報に応じて回路構成を再構成可能な複数の演算部と、
上記第1の制御データ用メモリから第1の構成情報を出力させるための第1の構成指定情報を記憶し、記憶している上記第1の構成指定情報を上記第1の制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
(付記2)上記第1の構成指定情報は、第1の構成情報が記憶されている領域を示す上記第1の制御データ用メモリのアドレス情報であることを特徴とする付記1記載の半導体装置。
(付記3)上記第1の制御データ用メモリに記憶する第1の構成情報は、互いに異なることを特徴とする付記1記載の半導体装置。
(付記4)上記第1の制御データ用メモリは、上記第1の構成情報とともに、当該第1の構成情報に対応し上記演算器での演算処理に用いる固定値を記憶することを特徴とする付記1記載の半導体装置。
(付記5)上記演算部は、上記演算器での演算処理に用いる固定値を記憶する固定値用メモリを有し、
上記コンフィグレーションメモリは、上記第1の構成指定情報とともに、当該第1の構成指定情報に応じて出力される第1の構成情報に対応する固定値を上記固定値用メモリから上記演算器に出力させるための固定値指定情報を記憶することを特徴とする付記1記載の半導体装置。
(付記6)上記固定値指定情報は、上記第1の構成情報に対応する固定値が記憶されている領域を示す上記固定値用メモリのアドレス情報であることを特徴とする付記5記載の半導体装置。
(付記7)上記固定値用メモリに記憶する固定値は、互いに異なることを特徴とする付記5記載の半導体装置。
(付記8)第2の構成情報を記憶する第2の制御データ用メモリを有し、上記第2の制御データ用メモリから出力される上記第2の構成情報に応じて回路構成を再構成し上記複数の演算部を含む演算処理部内でのデータ授受を制御するセレクタ/レジスタ部を備え、
上記コンフィグレーションメモリは、上記第1の構成指定情報とともに、上記第2の制御データ用メモリから第2の構成情報を出力させるための第2の構成指定情報を記憶し、記憶している上記第2の構成指定情報を上記第2の制御データ用メモリに対して供給することを特徴とする付記1記載の半導体装置。
(付記9)上記セレクタ/レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る第2の構成情報を記憶する上記第2の制御データ用メモリを設けることを特徴とする付記8記載の半導体装置。
(付記10)上記第2の構成指定情報は、第2の構成情報が記憶されている領域を示す上記第2の制御データ用メモリのアドレス情報であることを特徴とする付記9記載の半導体装置。
(付記11)上記第2の制御データ用メモリに記憶する第2の構成情報は、互いに異なることを特徴とする付記9記載の半導体装置。
(付記12)上記セレクタ/レジスタ部は、上記第2の制御データ用メモリから出力される第2の構成情報を保持する設定情報レジスタ回路と、
上記設定情報レジスタ回路に保持された第2の構成情報に応じて、回路構成を再構成し演算処理部内におけるデータパスを制御するセレクタ回路とを有することを特徴とする付記8記載の半導体装置。
(付記13)演算器をそれぞれ有し、供給される制御情報に応じて回路構成を再構成可能な複数の演算部と、
演算処理データを記憶するデータメモリと、
構成情報を記憶する制御データ用メモリを有し、上記制御データ用メモリから出力される上記構成情報に応じて回路構成を再構成し、上記演算部及びデータメモリにおけるデータの授受を制御するセレクタ/レジスタ部と、
上記制御データ用メモリから構成情報を出力させるための構成指定情報を記憶し、記憶している上記構成指定情報を上記制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
(付記14)上記セレクタ/レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る構成情報を記憶する上記制御データ用メモリを設けることを特徴とする付記13記載の半導体装置。
(付記15)上記構成指定情報は、構成情報が記憶されている領域を示す上記制御データ用メモリのアドレス情報であることを特徴とする付記14記載の半導体装置。(10)
(付記16)上記制御データ用メモリに記憶する構成情報は、互いに異なることを特徴とする付記14記載の半導体装置。
(付記17)上記セレクタ/レジスタ部は、上記制御データ用メモリから出力される構成情報を保持する設定情報レジスタ回路と、
上記設定情報レジスタ回路に保持された構成情報に応じて、回路構成が再構成されるセレクタ回路とを有することを特徴とする付記13記載の半導体装置。
【図面の簡単な説明】
【0114】
【図1】第1の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図2】図1に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図3】第2の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図4】図3に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図5】再構成可能な半導体装置の構成例を示す図である。
【図6】図5に示したコンフィグレーションメモリの内容を説明するための図である。
【図7】第3の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図8】図7に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図9】第4の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図10】従来の再構成可能な半導体装置の構成を示す図である。
【図11】図10に示したコンフィグレーションメモリの内容を説明するための図である。
【図12】従来の再構成可能な半導体装置の他の構成を示す図である。
【図13】図12に示したコンフィグレーションメモリ及び固定値用メモリの内容を説明するための図である。
【符号の説明】
【0115】
1 シーケンサー
2 演算処理部
11 状態制御回路
12 状態レジスタ
13A〜13G コンフィグレーションメモリ
21 セレクタ/レジスタ
22 演算部
23 データメモリ
24 制御データ用メモリ
25 レジスタ
26 演算器ユニット
31、32 制御データ用メモリ
33、34 レジスタ
42 セレクタ回路
51 制御データ用メモリ
52 設定情報レジスタ回路
【技術分野】
【0001】
本発明は、半導体装置に関し、詳しくは、動的に回路構成を再構成可能な半導体装置に関する。
【背景技術】
【0002】
従来、LSI等の半導体装置は、一般に要求仕様として予め決められた処理を実行するようにANDゲート(論理積演算回路)やORゲート(論理和演算回路)等の配置及びそれらに係る配線を設計工程で決定し、当該要求仕様に応じた処理を実行可能な半導体装置を製造している。つまり、従来の半導体装置において所望の機能を実現しようとする場合には、回路構成(論理構成)についての設計がゲート単位(ゲートレベル)で行われ、当該機能を実現する半導体装置が製造されている。
【0003】
しかし、上記半導体装置は、その回路構成が設計工程にて固定されるため、仕様変更などにより異なる要求仕様に応じた処理を実行しようとすると、その都度、設計及び製造のすべてを行う必要がある。したがって、多大な労力及び時間を要するとともに、開発コストも高い。
【0004】
この問題を解決する1つの方法として、製造後であっても、論理を再構成し実行する処理を変更可能にしたリコンフィグLSIと呼ばれる再構成可能な半導体装置がある。この再構成可能な半導体装置は、CPUからの制御信号(コンフィグレーション情報)が入力されるとともに機能変更が可能な複数の演算部を有する。当該演算部は、シフター、ALU(算術論理演算装置)、及びセレクタ等を適宜組み合わせて構成されており、CPUからのコンフィグレーション情報を受け、それに応じて論理を再構成することで実行する処理を変更することが可能となっている。
【0005】
上述した再構成可能な半導体装置は、CPUが複数の演算部をそれぞれ直接制御しており、処理速度が低い。例えば、ある演算部からの割り込みに基づいて、複数の演算部で実行する処理を変更する場合には、CPUは演算部からの割り込みを受けて割り込み処理ルーチンを呼び出して実行し、その後、当該処理ルーチンの処理結果等に応じたコンフィグレーション情報を複数の演算部に供給する。この割り込み処理には、数十クロックに相当する時間を要する。したがって、上述した再構成可能な半導体装置では、処理速度が遅く、演算部にて実行する処理を動的に(クロック単位で)変更することができなかった。
【0006】
この問題を解決する1つの方法として、本出願人は、図10に構成を示すような再構成可能な半導体装置を提案している。図10は、本出願人が提案した再構成可能な半導体装置の構成例を示す図であり、当該半導体装置は、CPUに代えて、回路構成(論理構成)の変更制御に関しCPUと等価的な機能を有するシーケンサーを設けている。
【0007】
シーケンサー(制御部)1は、外部(例えば外部バス3を介して接続されているプロセッサ)からの指示に応じて、当該半導体装置を統括的に制御するものであり、演算処理部2の回路構成(論理構成を含む。)を管理するとともに、それを動的に変更させる制御を行う。シーケンサー1は、アプリケーションに応じて動的に演算処理部2の回路構成を変更するため、コンフィグレーションデータ(コンフィグレーション情報)を含む当該シーケンサー1からの制御信号が供給可能なように演算処理部2の各機能部と信号線を介して接続されている。
【0008】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Fを有する。状態制御回路11は、予め設定された所定のシーケンスや演算処理部2からの状態遷移指示信号等に基づき、演算処理部2の状態(回路構成)を次状態に移すコンフィグレーションデータ及び固定値データをコンフィグレーションメモリ13Fから読み出すためのコンフィグレーションメモリアドレス及びその読み出しタイミングを生成する。状態制御回路11によるコンフィグレーションメモリアドレスの生成は、状態レジスタ12に保持されている現在の状態を示す情報を参照して行われる。また、次状態に遷移する際に、状態レジスタ12に保持する情報は更新される。
【0009】
コンフィグレーションメモリ13Fは、演算処理部2の回路構成を設定するコンフィグレーションデータと、固定値データを記憶する。すべてのコンフィグレーションデータと固定値データは、動作開始前に外部からコンフィグレーションメモリ13Fに予め書き込まれ、状態毎に1組のデータとして保持される。コンフィグレーションメモリ13Fに記憶されているコンフィグレーションデータ及び固定値データは、状態制御回路11による制御に応じて読み出され、演算処理部2に出力される。コンフィグレーションメモリ13Fの内容についての詳細は後述する。
【0010】
演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有する。なお、i,jは添え字であり、i=1〜N(Nは任意)の自然数、j=1〜M(Mは任意)の自然数である。
【0011】
セレクタ/レジスタ21は、シーケンサー1から供給されるコンフィグレーションデータにより制御される。セレクタ/レジスタ21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mにそれぞれ接続され、演算部22−i及びデータメモリ23−jとの間でデータを授受する。言い換えると、セレクタ/レジスタ21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mを互いに通信可能なように接続するネットワーク機能を有している。
【0012】
具体的には、セレクタ/レジスタ21は、コンフィグレーションデータに応じて、演算部22−iにデータを供給したり、データメモリ23−jとの間で書き込みデータを供給したり、読み出されたデータの供給を受けたりする。また、セレクタ/レジスタ21は、演算部22−iの出力(演算結果)等を一時的に保持するレジスタを有しており、コンフィグレーションデータに応じてレジスタに保持されているデータ又はそれ以外から供給されるデータを選択的に出力可能となっている。
【0013】
各演算部22−iは、レジスタ25と演算器(ALU)ユニット26を有する。
レジスタ25は、シーケンサー1から供給されるコンフィグレーションデータ及び固定値データをそれぞれ一時的に保持するコンフィグレーションレジスタ25A及び固定値レジスタ25Bで構成される。
【0014】
ALUユニット26は、シフト回路(シフター)、ALU(算術論理演算装置)、及びセレクタ等(以下、説明の便宜上、これらを区別せずに単に演算器とも称す。)を用いて構成される。なお、ALUユニット26、具体的にはそれを構成する複数の演算器(1つであっても良い)は、使用するアプリケーションに応じて適宜選択、決定される。
【0015】
ALUユニット26は、コンフィグレーションレジスタ25Aに保持されたコンフィグレーションデータCDに基づいて、ALUユニット26毎に演算器の動作モードや演算器間の接続が設定される。つまり、ALUユニット26は、これを単位としてコンフィグレーションデータCDに応じて回路構成が変更可能となっており、加算、乗算、ビット演算、及び論理演算(AND、OR、EORなど)等をはじめとして所望の機能を実現するように(所定の処理を実行するように)各演算器等が制御される。
【0016】
例えば、シフト回路であれば、シフト量、算術シフト処理、論理シフト処理、及びシフト処理後の所定ビットのマスク処理等が制御される。また、例えばAND回路やOR回路等を用いて構成されたALUであれば、それらを適宜組み合わせたりしてALU全体での回路(演算)機能が制御される。また、セレクタであれば、複数の入力のうち、いずれの入力を出力するかが制御される。さらには、これらシフト回路、ALU、及びセレクタ等の間の接続が制御される。
【0017】
ALUユニット26は、セレクタ/レジスタ21から供給される第1の入力データDT1が入力されるとともに、コンフィグレーションデータに応じてセレクタ/レジスタ21から供給される第2の入力データDT2又は固定値レジスタ25Bに保持された固定値データCVDの一方が入力され、それらを用いて所定の演算を行って演算結果を出力する。このALUユニット26の出力は、そのまま出力することが可能であるが、コンフィグレーションデータに基づきフィードバックさせることもできるように構成されており、例えば出力を蓄積し規格化して出力することもできる。
【0018】
各データメモリ23−jは、演算処理部2での処理に係るデータを記憶するメモリである。
【0019】
図11は、図10に示したコンフィグレーションメモリ13Fの内容を説明するための図であり、上述したように各状態に対応したコンフィグレーションデータと固定値データとが記憶されている。図11において、CDiはコンフィグレーションデータであり、CVDiは固定値データである。なお、iは添え字であり、i=1〜N(Nは任意)の自然数である。また、図11においては、固定値データCVDiの値のみ図示しており、コンフィグレーションデータCDiの値については図示を省略している。
【0020】
コンフィグレーションデータCDi及び固定値データCVDiは、k番目(k=1〜128の自然数)の状態にするときに、演算部22−iに供給されてコンフィグレーションレジスタ25に一時的に保持される。すなわち、演算処理部2にて所望の回路機能を実現するためのある回路構成FUNCkに係るコンフィグレーションデータと固定値データは、図11において行方向に配列された1組のコンフィグレーションデータCD1〜CDN及び固定値データCVD1〜CVDNにより構成される。なお、図11においては図示していないが、コンフィグレーションメモリ13Fには、演算部22−iに係るコンフィグレーションデータ以外にもセレクタ/レジスタ21を制御するコンフィグレーションデータ等が記憶されている。
【0021】
上述のように、CPUに代えてシーケンサー1を設けることで、再構成可能な半導体装置は、いわゆるダイナミックリコンフィグレーションが可能となり、クロック単位で動的に回路構成(論理)を再構成することができる。例えば、演算処理部2は、シーケンサー1からのコンフィグレーションデータ(制御信号)に基づき、あるクロック期間ではA機能を行い、次のクロック期間ではA機能とは異なるB機能を行うことができる。
【0022】
しかしながら、上記図10及び図11に示した再構成可能な半導体装置において、固定値(定数)を入力可能な演算器については、コンフィグレーションデータとともに固定値データがコンフィグレーションメモリ13Fに保存され、必要に応じて演算器に対応して設けられたコンフィグレーションレジスタ25に読み出され保持される。このようにコンフィグレーションメモリ13Fに固定値データを保存する場合には、固定値が入力可能な演算器毎に固定値データを記憶する固定値データ領域を設け、すべての固定値データをコンフィグレーションメモリ13Fに保存しておく必要がある。例えば、固定値が入力可能な演算器に対して、セレクタ/レジスタ21からの第2の入力データが32ビット幅であれば、コンフィグレーションメモリ13Fに当該演算器毎に32ビットの固定値データ領域を演算処理部2のすべての状態(以下、状態を「コンフィグレーション」とも称す。)について設ける必要がある。
【0023】
ここで、演算処理部2の状態のすべてで各演算器の入力として固定値データを設定する、すなわち演算処理部2の状態を切り換える度に各演算器の入力として固定値データを設定することはほとんどない。したがって、上述にように設けた固定値データ領域は、コンフィグレーションメモリ13Fの記憶領域を浪費していることとなり、コンフィグレーションメモリ13Fに固定値データを保存する場合には多くのメモリ(記憶領域)を消費してしまう。
【0024】
そこで、本出願人は、固定値データの記憶に要する記憶容量の低減を図った図12に構成を示すような再構成可能な半導体装置を提案している(特許文献1参照。)。図12は、本出願人が提案した再構成可能な半導体装置の他の構成例を示す図である。この図12において、図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0025】
図12に示す再構成可能な半導体装置は、シーケンサー1と演算処理部2を有し、演算処理部2内に固定値データを記憶する固定値用メモリ72−1、72−2を備えている。
【0026】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Gを有する。
コンフィグレーションメモリ13Gは、演算処理部2の回路構成を設定するコンフィグレーションデータと、固定値指定データを記憶する。固定値指定データは、固定値用メモリ72−1、72−2に記憶されている固定値データの中から、演算処理部2の状態に対応した固定値データを指定し読み出すためのものであり、ここでは一例として固定値用メモリ72−1、72−2におけるアドレスとする。
【0027】
演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jに加え、固定値用メモリ72−1、72−2、セレクタ73−i、及び固定値指定レジスタ74−1、74−2を有する。なお、i,jは添え字であり、i=1〜N(Nは任意)の自然数、j=1〜M(Mは任意)の自然数である。
【0028】
固定値用メモリ72−1、72−2は、固定値データを記憶するメモリである。固定値用メモリ72−1、72−2に記憶されている固定値データは、シーケンサー1により固定値指定レジスタ74−1、74−2に設定されたアドレス値に基づいて読み出されセレクタ73−iに出力される。
【0029】
セレクタ73−iは、シーケンサー1から供給されるコンフィグレーションデータに応じて、セレクタ/レジスタ21から供給される第2の入力データDT2又は固定値用メモリ72−1、72−2から供給される固定値データCVDを選択し演算部22−i内のALUユニット26に出力する。
【0030】
演算部22−iは、シーケンサー1から供給されるコンフィグレーションデータを一時的に保持するコンフィグレーションレジスタ71と、ALUユニット26を有する。演算部22−iは、固定値データが固定値用メモリ72−1、72−2から読み出されセレクタ73−iを介してALUユニット26に供給されるため、図10に示した固定値レジスタを備えていない。
【0031】
なお、コンフィグレーションメモリ13Gに記憶されるコンフィグレーションデータと固定値指定データ、及び固定値用メモリ72−1、72−2に記憶される固定値データは、外部からコンフィグレーションメモリ13G及び固定値用メモリ72−1、72−2にそれぞれ動作開始前に予め書き込まれ保持される。コンフィグレーションデータと固定値指定データは、状態毎に1組のデータとしてコンフィグレーションメモリ13Gに保持される。
【0032】
図13は、図12に示したコンフィグレーションメモリ13G及び固定値用メモリ72−1、72−2の内容を説明するための図である。なお、図13においては、比較参照するために図11に示したコンフィグレーションメモリ13Fの内容と等価な内容を一例として示している。
【0033】
図13(A)はコンフィグレーションメモリ13Gの内容を示している。図13(A)において、CDi(i=1〜Nの自然数)はコンフィグレーションデータであり、CVAD1、CVAD2はそれぞれ固定値用メモリ72−1、72−2におけるアドレス値である。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0034】
また、図13(B)、(C)は固定値用メモリ72−1、72−2の内容を示している。図13(B)、(C)において、CVAD1、CVAD2は固定値用メモリ72−1、72−2におけるアドレス値であり、CVDi(i=1〜Nの自然数)は固定値データである。図13(B)、(C)には、固定値用メモリ72−1に固定値データCVD1、CVD3を、固定値用メモリ72−2に固定値データCVD2、CVDNを記憶した場合を示している。
【0035】
図13(B)、(C)に示したように、固定値用メモリ72−1、72−2のそれぞれにおいて、固定値データCVDiの組み合わせが同じ場合には、1組の固定値データCVDiとして記憶される。すなわち、固定値用メモリ72−1に記憶される固定値データCVDiの組み合わせは、互いに異なるものであり重複しては記憶されず、同様に、固定値用メモリ72−2に記憶される固定値データCVDiの組み合わせは、互いに異なるものであり重複しては記憶されない。
【0036】
また、図13(A)に示したようにコンフィグレーションメモリ13Gにおいては、コンフィグレーションデータCDiと、この状態に対応する固定値データCVDiの組み合わせが記憶されている固定値用メモリ72−1、72−2のアドレス値CVAD1、CVAD2がそれぞれ記憶される。
【0037】
上述のように、固定値用メモリ72−1、72−2に固定値データの組み合わせが重複しないようにして固定値データを記憶し、コンフィグレーションメモリ13Gにコンフィグレーションデータと、その状態に対応する固定値データを読み出すための固定値用メモリ72−1、72−2のアドレス値を記憶する。これにより、コンフィグレーションメモリ13Gには固定値用データを記憶せずに固定値用メモリ72−1、72−2のアドレス値のみを記憶すれば良いので、コンフィグレーションメモリ13Gに要求される記憶容量を低減することができ、小さなサイズのメモリでコンフィグレーションメモリ13Gを構成することができる。また、固定値用メモリ72−1、72−2に、各状態毎に固定値データを記憶せず、同じ組み合わせの固定値データを1組の固定値データとして1つだけ記憶するので、固定値データを記憶するために要する記憶容量を低減することが可能となる。
【0038】
【特許文献1】特開2006−18453号公報
【発明の開示】
【発明が解決しようとする課題】
【0039】
ここで、再構成可能な半導体装置において、コンフィグレーションメモリに記憶できる状態遷移数に対して、コンフィグレーションデータにより設定可能な回路構成数はかなり小さい傾向にある。例えば、各演算部22−iに係るコンフィグレーションデータのビット数がそれぞれ16ビットとし、演算部22−iの数が32個であったとすると、1つの状態(1つの回路面)におけるコンフィグレーションデータの総ビット数は512ビットとなり、2の512乗という膨大な組み合わせが存在することとなる。しかしながら、現在のLSIテクノロジでコストを考慮した適切なサイズのメモリ容量は数十KB程度であり、コンフィグレーションメモリで上述した膨大な組み合わせをすべて設定することは不可能である。
【0040】
また、再構成可能な半導体装置において、実際のアプリケーションを実装した場合の複数の回路面での回路構成に着目すると、相違する回路面の数がわずかであることも多い。例えば、図12に示した再構成可能な半導体装置における1つの演算部22−1に係るコンフィグレーションデータ(図13(A)に示したコンフィグレーションデータCD1)については、回路面数128に対して、128面すべての設定(コンフィグレーションデータ)が異なることは非常にまれであり、実際には数通りの異なる設定だけであることもある。
【0041】
また、セレクタ/レジスタ(バス)21を制御するコンフィグレーションデータもコンフィグレーションメモリに記憶されるが、セレクタ/レジスタ(バス)21は、多数のセレクタ及び多数のレジスタから構成されており、コンフィグレーションデータ量は膨大である。
【0042】
本発明の目的は、動的に回路構成を再構成可能な半導体装置にて、回路構成の再構成に係る制御情報量を低減できるようにすることである。
【課題を解決するための手段】
【0043】
本発明の半導体装置は、第1の制御データ用メモリ及び演算器をそれぞれ有し第1の構成情報に応じて回路構成を再構成可能な複数の演算部と、コンフィグレーションメモリとを備える。第1の構成情報を第1の制御データ用メモリに記憶し、第1の構成情報を第1の制御データ用メモリから出力させるための第1の構成指定情報をコンフィグレーションメモリに記憶する。
本発明によれば、第1の構成情報を演算部内の第1の制御データ用メモリに記憶することで、コンフィグレーションメモリには第1の構成情報そのものを記憶するためのデータ領域を設けずに、第1の制御データ用メモリから第1の構成情報を出力させるための指定情報のみを記憶すれば良く、記憶すべきデータ量を低減することができる。
【発明の効果】
【0044】
本発明によれば、コンフィグレーションメモリとは別に、演算部毎に第1の制御データ用メモリを設けて回路構成の再構成に係る構成情報を記憶するようにしたので、コンフィグレーションメモリに構成情報自体を記憶するためのデータ領域を設ける必要がなく、第1の制御データ用メモリから構成情報を出力させるための指定情報のみを記憶するだけで構成情報を供給することができる。したがって、回路構成を再構成するための制御情報量を低減することができ、コンフィグレーションメモリに要求される記憶容量を低減し、回路規模を削減することができる。
【発明を実施するための最良の形態】
【0045】
以下、本発明の実施形態を図面に基づいて説明する。
【0046】
(第1の実施形態)
図1は、本発明の第1の実施形態における再構成可能な半導体装置の構成例を示す図である。この図1において、図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。第1の実施形態における再構成可能な半導体装置は、シーケンサー(制御部)1と演算処理部2を有する。
【0047】
シーケンサー1は、外部(例えば外部バス3を介して接続されているプロセッサ)からの指示に応じて、当該半導体装置を統括的に制御するものであり、演算処理部2の回路構成(論理構成を含む。)を管理するとともに、それを動的に変更させる制御を行う。シーケンサー1は、アプリケーションに応じて動的に演算処理部2の回路構成を変更するため、演算処理部2の各機能部と信号線を介して接続されている。
【0048】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Aを有する。また、演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有し、各演算部22−iは、制御データ用メモリ24、レジスタ25、及び演算器(ALU)ユニット26を有する。なお、i,jは添え字であり、i=1〜N(Nは任意)の自然数、j=1〜M(Mは任意)の自然数である。
【0049】
状態制御回路11は、予め設定された所定のシーケンスや演算処理部2からの状態遷移指示信号等に基づいて、演算処理部2の状態(回路構成)を次状態に移すためのセレクタ/レジスタ(バス)21のコンフィグレーションデータ及び構成指定データをコンフィグレーションメモリ13Aから読み出すためのコンフィグレーションメモリアドレス及びその読み出しタイミングを生成する。状態制御回路11によるコンフィグレーションメモリアドレスの生成は、状態レジスタ12に保持されている現在の状態を示す情報を参照して行われる。また、次状態に遷移する際に、状態レジスタ12に保持する情報は更新される。
【0050】
コンフィグレーションメモリ13Aは、演算処理部2内のセレクタ/レジスタ(バス)21の構成を設定するコンフィグレーションデータと、各演算部22−1〜22−Nに係る構成指定データを記憶する。この構成指定データは、演算部22−iの状態に対応した制御データ用メモリ24内のコンフィグレーションデータと固定値データとの組を一意に識別可能な情報であり、制御データ用メモリ24に記憶されているコンフィグレーションデータと固定値データとの組の中から、演算部22−iの状態に対応したコンフィグレーションデータと固定値データとの組を指定し読み出すためのものである。なお、以下では一例として、構成指定データは、制御データ用メモリ24におけるアドレスとする。
【0051】
セレクタ/レジスタ(バス)21は、演算処理部2内でのデータ授受の制御を行い、シーケンサー1から供給されるコンフィグレーションデータCSRDにより制御される。セレクタ/レジスタ(バス)21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mにそれぞれ接続され、演算部22−i及びデータメモリ23−jとの間でデータを授受する。言い換えると、セレクタ/レジスタ(バス)21は、演算部22−1〜22−N及びデータメモリ23−1〜23−Mを互いに通信可能なように接続するネットワーク機能を有している。
【0052】
具体的には、セレクタ/レジスタ(バス)21は、コンフィグレーションデータに応じて、演算部22−iにデータを供給したり、データメモリ23−jとの間で書き込みデータを供給したり、読み出されたデータの供給を受けたりする。また、セレクタ/レジスタ(バス)21は、演算部22−iの出力(演算結果)等を一時的に保持するレジスタを有しており、コンフィグレーションデータに応じてレジスタに保持されているデータ又はそれ以外から供給されるデータを選択的に出力可能となっている。
【0053】
制御データ用メモリ24は、演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶するメモリであり、コンフィグレーションデータが格納されるコンフィグレーションデータ領域24A及び固定値データが格納される固定値データ領域24Bを有する。演算部22−iに係るコンフィグレーションデータ及び固定値データは、1組のデータとして制御データ用メモリ24に保持されており、構成指定データとしてシーケンサー1から供給されるアドレス値CADiに基づいて読み出され、そのデータ(コンフィグレーションデータ及び固定値データ)CDCVDがレジスタ25に出力される。
【0054】
レジスタ25は、制御データ用メモリ24から出力されるコンフィグレーションデータを保持するコンフィグレーションレジスタ25A及び固定値データを保持する固定値レジスタ25Bで構成される。なお、レジスタ25は、制御データ用メモリ24から出力されたデータをALUユニット26に供給するタイミングを調整するためのものであり、例えば制御データ用メモリ24が同期型のメモリであり、出力のタイミング調整が不要である場合等にはレジスタ25を備えていなくとも良い。
【0055】
ALUユニット26は、シフト回路(シフター)、ALU(算術論理演算装置)、及びセレクタ等(以下、これらを区別せずに単に演算器とも称す。)を用いて構成される。なお、ALUユニット26、具体的にはそれを構成する複数の演算器(1つであっても良い)は、使用するアプリケーションに応じて適宜選択、決定すれば良い。
【0056】
ALUユニット26は、コンフィグレーションレジスタ25Aに保持されたコンフィグレーションデータCDに基づいて、ALUユニット26毎に演算器の動作モードや演算器間の接続が設定される。つまり、ALUユニット26は、これを単位としてコンフィグレーションデータCDに応じて回路構成が変更可能となっており、加算、乗算、ビット演算、及び論理演算等をはじめとして所望の機能を実現するように(所定の処理を実行するように)各演算器等が制御される。
【0057】
例えば、シフト回路であれば、シフト量、算術シフト処理、論理シフト処理、及びシフト処理後の所定ビットのマスク処理等が制御される。また、例えばAND回路やOR回路等を用いて構成されたALUであれば、それらを適宜組み合わせたりしてALU全体での回路(演算)機能が制御される。また、セレクタであれば、複数の入力のうち、いずれの入力を出力するかが制御される。さらには、これらシフト回路、ALU、及びセレクタ等の間の接続が制御される。
【0058】
ALUユニット26は、セレクタ/レジスタ21から供給される第1の入力データDT1が入力されるとともに、コンフィグレーションデータに応じてセレクタ/レジスタ21から供給される第2の入力データDT2又は固定値レジスタ25Bに保持された固定値データCVDの一方が入力され、それらを用いて演算を行い演算結果を出力する。このALUユニット26の出力は、そのまま出力することが可能であるが、コンフィグレーションデータに基づきフィードバックさせることもできるように構成されており、例えば出力を蓄積し規格化して出力することもできる。
各データメモリ23−jは、演算処理部2での処理に係るデータを記憶するメモリである。
【0059】
なお、コンフィグレーションメモリ13Aに記憶されるセレクタ/レジスタ(バス)21のコンフィグレーションデータと演算部22−1〜22−Nの構成指定データ、及び制御データ用メモリ24に記憶される演算部22−iのコンフィグレーションデータと固定値データは、例えば、RISC(プロセッサ)やその他のハードウェア等により外部からコンフィグレーションメモリ13A及び制御データ用メモリ24にそれぞれ動作開始前に予め書き込まれ保持される。
【0060】
図2は、図1に示したコンフィグレーションメモリ13A及び制御データ用メモリ24の内容を説明するための図である。
図2(A)はコンフィグレーションメモリ13Aの内容を示している。図2(A)において、CADi(i=1〜Nの自然数)は対応する演算部22−iに係る構成指定データとしての制御データ用メモリ24におけるアドレス値であり、CSRDはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0061】
また、図2(B)、(C)は演算部22−iに設けられた制御データ用メモリ24の内容を示しており、CADi(i=1〜Nの自然数、CDCVDiについても同様)は制御データ用メモリ24におけるアドレス値であり、CDCVDiは対応する演算部22−iのコンフィグレーションデータ及び固定値データである。データCDCVDiは、例えば演算部22−iのコンフィグレーションデータCDiと固定値データCVDiをビット結合したものである(図中の“&”はビット連結子を示す。)。
【0062】
なお、図2(B)、(C)には、一例として、演算部22−1、22−Nに設けられた制御データ用メモリ24の内容をそれぞれ示している。図2(B)、(C)において、E1、E2、E3、E4、…、及びG1、G2、G3、G4、…を演算部22−1、22−Nのコンフィグレーションデータとし、F1、F2、…、及びH1、H2、H3、…を演算部22−1、22−Nの固定値データとする。
【0063】
つまり、第1の実施形態における再構成可能な半導体装置は、演算処理部2内の各演算部22−iに制御データ用メモリ24を設けて、演算部22−iのコンフィグレーションデータCDiと固定値データCVDiを記憶する。シーケンサー1内のコンフィグレーションメモリ13Aに、各演算部22−iの制御データ用メモリ24からコンフィグレーションデータCDiと固定値データCVDiを読み出すための制御データ用メモリ24のアドレス値を構成指定データとして記憶する。
【0064】
そして、演算処理部2内の状態を切り換える際には、当該状態に対応するセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRD及び各演算部22−iに係る構成指定データとしてのアドレス値CADiがコンフィグレーションメモリ13Aから読み出される。読み出されたセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRDは、セレクタ/レジスタ(バス)21に供給され、セレクタ/レジスタ(バス)21の構成が設定される。また、読み出されたアドレス値CADiは、各演算部22−iに供給され、当該アドレス値CADiに基づいて制御データ用メモリ24からコンフィグレーションデータCDiと固定値データCVDiが読み出されてレジスタ25を介してALUユニット26に供給され回路構成が再構成される。このようにして演算処理部2で所望の機能が実現される。
【0065】
ここで、制御データ用メモリ24に記憶される演算部22−iのコンフィグレーションデータCDiと固定値データCVDiの組み合わせが同じ場合には、1組のコンフィグレーションデータCDiと固定値データCVDiとして記憶される。すなわち、制御データ用メモリ24に記憶されるコンフィグレーションデータCDiと固定値データCVDiの組み合わせは、互いに異なるものであり重複しては記憶されない。
【0066】
以上、第1の実施形態によれば、演算処理部2内の各演算部22−i毎に当該演算部22−iに係るコンフィグレーションデータと固定値データを記憶する制御データ用メモリ24を設け、シーケンサー1内のコンフィグレーションメモリ13Aには、制御データ用メモリ24から演算部22−iに係るコンフィグレーションデータと固定値データを読み出すための構成指定データ(アドレス値)を記憶する。演算部22−iに係るコンフィグレーションデータと固定値データの組み合わせが同じ場合には制御データ用メモリ24に重複して記憶しないようにして、制御データ用メモリ24には互いに異なるコンフィグレーションデータと固定値データの組を記憶し、構成指定データであるアドレス値に応じて選択する。
【0067】
これにより、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、例えばコンフィグレーションメモリ13Aに要求される記憶容量を低減し、回路規模を削減することができる。また、予め演算部22−iにて設定可能な回路構成を絞り込む、すなわち設定可能なコンフィグレーションデータCDiの数を絞り込んだ場合には、制御データ用メモリ24からコンフィグレーションデータを読み出すための構成指定データのビット数をコンフィグレーションデータのビット数よりも少なくし、半導体装置全体として要求される記憶容量を低減することができる。
【0068】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
上述した第1の実施形態においては、各演算部22−iに設けた制御データ用メモリ24に演算部22−iに係るコンフィグレーションデータと固定値データの組を記憶するようにしていたが、以下に説明する第2の実施形態は、演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶するメモリを独立して配置する。
【0069】
図3は、第2の実施形態における再構成可能な半導体装置の構成例を示す図である。この図3において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0070】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Bを有する。また、演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有する。各演算部22−iは、第1の制御データ(コンフィグレーションデータ)用メモリ31、第2の制御データ(固定値)用メモリ32、コンフィグレーションレジスタ33、固定値レジスタ34、及びALUユニット26を有する。
【0071】
コンフィグレーションメモリ13Bは、演算処理部2内のセレクタ/レジスタ(バス)21の構成を設定するコンフィグレーションデータと、各演算部22−1〜22−Nに係る第1の構成指定データ及び第2の構成指定データを記憶する。第1の構成指定データは、演算部22−iの状態に対応した第1の制御データ用メモリ31内のコンフィグレーションデータを一意に識別可能な情報であり、第1の制御データ用メモリ31に記憶されているコンフィグレーションデータの中から、演算部22−iの状態に対応したコンフィグレーションデータを指定し読み出すためのものである。同様に、第2の構成指定データ(固定値指定データ)は、演算部22−iの状態に対応した第2の制御データ用メモリ32内の固定値データを一意に識別可能な情報であり、第2の制御データ用メモリ32に記憶されている固定値データの中から、演算部22−iの状態に対応した固定値データを指定し読み出すためのものである。なお、以下では一例として、第1及び第2の構成指定データは、それぞれ制御データ用メモリ31、32におけるアドレスとする。
【0072】
第1の制御データ用メモリ31は、演算部22−iに係るコンフィグレーションデータを記憶するメモリである。第1の制御データ用メモリ31に記憶されているコンフィグレーションデータCDは、第1の構成指定データとしてシーケンサー1から供給されるアドレス値CADiに基づいて読み出されコンフィグレーションレジスタ33に出力される。
【0073】
第2の制御データ用メモリ32は、演算部22−iに係る固定値データを記憶するメモリである。第2の制御データ用メモリ32に記憶されている固定値データCVDは、第2の構成指定データとしてシーケンサー1から供給されるアドレス値DADiに基づいて読み出され固定値レジスタ34に出力される。
【0074】
コンフィグレーションレジスタ33及び固定値レジスタ34は、第1の実施形態におけるコンフィグレーションレジスタ25A及び固定値レジスタ25Bにそれぞれ対応する。
【0075】
コンフィグレーションメモリ13Bに記憶されるセレクタ/レジスタ(バス)21のコンフィグレーションデータと、演算部22−1〜22−Nに係る第1及び第2の構成指定データ、及び第1及び第2の制御データ用メモリ31、32にそれぞれ記憶される演算部22−iのコンフィグレーションデータ及び固定値データは、外部からコンフィグレーションメモリ13B及び第1及び第2の制御データ用メモリ31、32にそれぞれ動作開始前に予め書き込まれ保持される。また、セレクタ/レジスタ(バス)21のコンフィグレーションデータと演算部22−1〜22−Nに係る第1及び第2の構成指定データは、状態毎に1組のデータとしてコンフィグレーションメモリ13Bに保持される。
【0076】
図4は、図3に示したコンフィグレーションメモリ13B、第1の制御データ用メモリ31、及び第2の制御データ用メモリ32の内容を説明するための図である。なお、図4においては、比較参照するために図2に示した内容と等価な内容を一例として示している。
【0077】
図4(A)はコンフィグレーションメモリ13Bの内容を示している。図4(A)において、CADi(i=1〜Nの自然数)は対応する演算部22−iに係る第1の構成指定データとしての制御データ用メモリ31におけるアドレス値であり、DADi(i=1〜Nの自然数)は対応する演算部22−iに係る第2の構成指定データとしての制御データ用メモリ32におけるアドレス値である。また、CSRDはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0078】
また、図4(B)〜(E)は演算部22−iに設けられた第1及び第2の制御データ用メモリ31、32の内容を示している。図4(B)は演算部22−1に設けた第1の制御データ用メモリ31の内容を示しており、CAD1は第1の制御データ用メモリ31におけるアドレス値であり、CD1は演算部22−1のコンフィグレーションデータである。図4(C)は演算部22−1に設けた第2の制御データ用メモリ32の内容を示しており、DAD1は第2の制御データ用メモリ32におけるアドレス値であり、CVD1は演算部22−1の固定値データである。
【0079】
同様に、図4(D)は演算部22−Nに設けた第1の制御データ用メモリ31の内容を示しており、CADNは第1の制御データ用メモリ31におけるアドレス値であり、CDNは演算部22−Nのコンフィグレーションデータである。図4(E)は演算部22−Nに設けた第2の制御データ用メモリ32の内容を示しており、DADNは第2の制御データ用メモリ32におけるアドレス値であり、CVDNは演算部22−Nの固定値データである。
【0080】
すなわち、第2の実施形態における再構成可能な半導体装置は、演算処理部2内の各演算部22−iに第1及び第2の制御データ用メモリ31、32を設けて、演算部22−iのコンフィグレーションデータCDiと固定値データCVDiを独立して記憶する。シーケンサー1内のコンフィグレーションメモリ13Bには、各演算部22−iの独立した第1及び第2の制御データ用メモリ31、32からコンフィグレーションデータCDi及び固定値データCVDiを読み出すための第1及び第2の制御データ用メモリ31、32のアドレス値を構成指定データとしてそれぞれ記憶する。
【0081】
そして、演算処理部2内の状態を切り換える際には、当該状態に対応するセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRD及び各演算部22−iに係る構成指定データとしてのアドレス値CADi、DADiがコンフィグレーションメモリ13Bから読み出される。読み出されたセレクタ/レジスタ(バス)21のコンフィグレーションデータCSRDは、セレクタ/レジスタ(バス)21に供給され、セレクタ/レジスタ(バス)21の構成が設定される。
【0082】
また、読み出されたアドレス値CADi、DADiは、各演算部22−iに供給される。このアドレス値CADiに基づいて第1の制御データ用メモリ31からコンフィグレーションデータCDiが読み出されてコンフィグレーションレジスタ33を介してALUユニット26に供給されるとともに、アドレス値DADiに基づいて第2の制御データ用メモリ32から固定値データCVDiが読み出されて固定値レジスタ34を介してALUユニット26に供給される。このようにして回路構成が再構成され、演算処理部2で所望の機能が実現される。
【0083】
なお、第1の制御データ用メモリ31には、同じ値のコンフィグレーションデータCDiは重複して記憶されず、互いに異なるもののみ記憶される。同様に、第2の制御データ用メモリ32には、互いに異なる固定値データのみが記憶され、同じ値の固定値データCDiは重複して記憶されない。
【0084】
以上、第2の実施形態によれば、第1の実施形態と同様の効果が得られ、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、回路規模を削減することができる。また、第1及び第2の制御データ用メモリ31、32を演算部22−i毎に設け、演算部22−iに係るコンフィグレーションデータと固定値データとを独立して記憶するようにしたので、コンフィグレーションデータと固定値データの組み合わせの数は多いが、コンフィグレーションデータと固定値データを個別に考えた場合に種類が少ない場合には、要求される記憶容量をさらに低減することが可能となる。
【0085】
なお、上記図1及び図2に示した第1の実施形態における構成、及び上記図3及び図4に示した第2の実施形態における構成は、使用するアプリケーション等に応じて適宜選択するようにすれば良い。
【0086】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
セレクタ/レジスタ(バス)の内部構造を示した再構成可能な半導体装置の構成を図5に示す。この図5において、図1、図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0087】
セレクタ/レジスタ(バス)21は、シーケンサー1から供給されるセレクタ/レジスタ(バス)設定情報であるコンフィグレーションデータCSRDを記憶する設定情報レジスタ回路41と、設定情報レジスタ回路41に記憶されたコンフィグレーションデータに基づいて所望の動作を行うセレクタ回路42を有する。なお、設定情報レジスタ回路41及びセレクタ回路42は、多数のレジスタ及び多数のセレクタで構成されている。
【0088】
図6は、図5に示したコンフィグレーションメモリ13Cの内容を説明するための図であり、演算処理部2の各状態に対応した演算部22−iに係るコンフィグレーションデータ及び固定値データと、セレクタ/レジスタ(バス)21のコンフィグレーションデータが記憶されている。図16において、CDCVDiはビット結合後の演算部22−iに係るコンフィグレーションデータ及び固定値データであり、CSRDpはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。なお、i、pは添え字であり、i=1〜N(Nは任意)の自然数、p=1〜Q(Qは任意)の自然数である。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0089】
なお、図6においては、本発明の第3の実施形態との比較を容易にするために、セレクタ/レジスタ(バス)21のコンフィグレーションデータをQ個のグループに分けて各グループに対応するコンフィグレーションデータをCSRDpとして示している。
【0090】
演算部22−iの回路構成を再構成するコンフィグレーションデータに限らず、セレクタ/レジスタ(バス)21のコンフィグレーションデータも、セレクタ/レジスタ(バス)21が多数のセレクタ及び多数のレジスタから構成されているため、そのデータ量は膨大である。
【0091】
そこで、以下に説明する本発明の第3の実施形態における再構成可能な半導体装置は、セレクタ/レジスタ(バス)21のコンフィグレーションデータの記憶に要する記憶容量の低減を図るものである。具体的には、演算処理部2内にセレクタ/レジスタ(バス)21のコンフィグレーションデータを記憶する制御データ用メモリを設け、シーケンサー内のコンフィグレーションメモリには状態に対応するセレクタ/レジスタ(バス)21のコンフィグレーションデータを制御データ用メモリから読み出すための構成指定データを記憶させるようにするものである。
【0092】
図7は、第3の実施形態における再構成可能な半導体装置の構成例を示す図である。この図7において、図1、図5、及び図10に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0093】
シーケンサー1は、状態制御回路11、状態レジスタ12、及びコンフィグレーションメモリ13Dを有する。また、演算処理部2は、セレクタ/レジスタ(バス)21、演算部22−i、及びデータメモリ23−jを有する。セレクタ/レジスタ(バス)21は、制御データ用メモリ51−p、多数のレジスタで構成される設定情報レジスタ回路52、及び多数のセレクタで構成されるセレクタ回路42を有する。各演算部22−iは、コンフィグレーションレジスタ25A及び固定値レジスタ25Bで構成されるレジスタ25とALUユニット26とを有する。
【0094】
コンフィグレーションメモリ13Dは、演算処理部2内の各演算部22−1〜22−Nに係るコンフィグレーションデータ及び固定値データCDCVDiと、セレクタ/レジスタ(バス)21に係る構成指定データを記憶する。この構成指定データは、セレクタ/レジスタ(バス)21の状態に対応した制御データ用メモリ51−p内のコンフィグレーションデータを一意に識別可能な情報であり、制御データ用メモリ51−pに記憶されているコンフィグレーションデータの中から、セレクタ/レジスタ(バス)21の状態に対応したコンフィグレーションデータを指定し読み出すためのものである。なお、以下では一例として、構成指定データは、制御データ用メモリ51−pにおけるアドレスとする。
【0095】
制御データ用メモリ51−pは、セレクタ/レジスタ(バス)21に係るコンフィグレーションデータを記憶するメモリである。本実施形態では、セレクタ/レジスタ(バス)21をQ個のグループに分け、各グループに対して制御データ用メモリ51−pを配置している。制御データ用メモリ51−pに記憶されているコンフィグレーションデータCSRDpは、構成指定データとしてシーケンサー1から供給されるアドレス値CSRADpに基づいて読み出され設定情報レジスタ回路52に出力される。
【0096】
設定情報レジスタ回路52は、制御データ用メモリ51−1〜51−Qから供給されるコンフィグレーションデータCSRD1〜CSRDQを一時的に保持する。セレクタ回路42は、設定情報レジスタ回路52に保持されたコンフィグレーションデータCSRD1〜CSRDQに基づいて、回路構成を再構成して演算処理部2内におけるデータパスを制御し所望の動作を行う。
【0097】
ここで、コンフィグレーションメモリ13Dに記憶される演算部22−1〜22−Nに係るコンフィグレーションデータ及び固定値データとセレクタ/レジスタ(バス)21に係る構成指定データ、及び制御データ用メモリ51−pにそれぞれ記憶されるセレクタ/レジスタ(バス)21のコンフィグレーションデータは、外部からコンフィグレーションメモリ13D及び制御データ用メモリ51−pに動作開始前に予め書き込まれ保持される。また、演算部22−1〜22−Nに係るコンフィグレーションデータ及び固定値データとセレクタ/レジスタ(バス)21に係る構成指定データは、状態毎に1組のデータとしてコンフィグレーションメモリ13Dに保持される。
【0098】
図8は、図7に示したコンフィグレーションメモリ13D及び制御データ用メモリ51−pの内容を説明するための図である。なお、図8においては、比較参照するために図6に示したコンフィグレーションメモリ13Cの内容と等価な内容を一例として示している。
【0099】
図8(A)はコンフィグレーションメモリ13Dの内容を示している。図8(A)において、CDCVDi(i=1〜Nの自然数)は対応する演算部22−iに係るコンフィグレーションデータ及び固定値データであり、例えばコンフィグレーションデータCDiと固定値データCVDiをビット結合したものである(図中の“&”はビット連結子を示す。)。また、CSRADp(p=1〜Qの自然数)はQ個のグループに分けたセレクタ/レジスタ(バス)21に係る構成指定データとしての制御データ用メモリ51−pにおけるアドレス値である。FUNCk(k=1〜128の自然数)は、演算処理部2にて所望の回路機能を実現するための状態(回路面)を示している。
【0100】
また、図8(B)、(C)は制御データ用メモリ51−pの内容を示しており、CSRADp(p=1〜Qの自然数)は制御データ用メモリ51−pにおけるアドレス値であり、CSRDpはセレクタ/レジスタ(バス)21のコンフィグレーションデータである。なお、図8(B)、(C)には、一例として制御データ用メモリ51−1、51−Qの内容をそれぞれ示している。ここで、図8(B)、(C)に示すように、制御データ用メモリ51−pには、同じ値のコンフィグレーションデータCSRDpは重複して記憶せず、互いに異なるもののみ記憶する。
【0101】
第3の実施形態における再構成可能な半導体装置は、演算処理部2内のセレクタ/レジスタ(バス)21をQ個のグループに分けるとともに、セレクタ/レジスタ(バス)21に制御データ用メモリ51−p(p=1〜Qの自然数)を設けて、セレクタ/レジスタ(バス)21のコンフィグレーションデータCSRDpを記憶する。シーケンサー1内のコンフィグレーションメモリ13Dには、制御データ用メモリ51−pからセレクタ/レジスタ(バス)21の状態に対応するコンフィグレーションデータCSRDpを読み出すための制御データ用メモリ51−pのアドレス値を構成指定データとして記憶する。
【0102】
そして、演算処理部2内の状態を切り換える際には、当該状態に対応する各演算部22−iに係るコンフィグレーションデータ及び固定値データCDCVDi及びセレクタ/レジスタ(バス)21に係る構成指定データとしてのアドレス値CSRADpがコンフィグレーションメモリ13Dから読み出される。読み出された各演算部22−iに係るコンフィグレーションデータ及び固定値データCDCVDiは、対応する演算部22−iに供給される。
【0103】
また、読み出されたアドレス値CSRADpは、制御データ用メモリ51−pに供給され、当該アドレス値CSRADpに基づいて制御データ用メモリ51−pからコンフィグレーションデータCSRDpが読み出される。制御データ用メモリ51−1〜51−Qから読み出されたコンフィグレーションデータCSRD1〜CSRDQは、設定情報レジスタ52に保持され、この保持されたコンフィグレーションデータCSRD1〜CSRDQに基づいて、セレクタ回路42が再構成され所望の動作が実行される。
【0104】
第3の実施形態によれば、演算処理部2内のセレクタ/レジスタ(バス)21に制御データ用メモリ51−pを設けてセレクタ/レジスタ(バス)21のコンフィグレーションデータを記憶し、シーケンサー1内のコンフィグレーションメモリ13Dには、制御データ用メモリ51−pからコンフィグレーションデータを読み出すための構成指定データ(アドレス値)を記憶する。制御データ用メモリ51−pには、同じ値のコンフィグレーションデータCSRDpは重複して記憶せずに異なるもののみ記憶し、構成指定データであるアドレス値に応じて選択する。
【0105】
これにより、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、例えばコンフィグレーションメモリ13Dに要求される記憶容量を低減し、回路規模を削減することができる。なお、セレクタ/レジスタ(バス)21を複数のグループに分ける際の分割数Qは、セレクタ/レジスタ(バス)21のコンフィグレーションデータの記憶に要する記憶容量が少なくなるように決定すれば良い。
【0106】
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。
図9は、第4の実施形態における再構成可能な半導体装置の構成例を示す図である。この図9において、図1及び図7に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0107】
図9に示すように、第4の実施形態における再構成可能な半導体装置は、上述した第1の実施形態における再構成可能な半導体装置及び第3の実施形態における再構成可能な半導体装置の両方の特徴的構成を備えている。すなわち、第4の実施形態における再構成可能な半導体装置は、演算処理部2内の各演算部22−iに当該演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶する制御データ用メモリ24を有するとともに、セレクタ/レジスタ(バス)21にセレクタ/レジスタ(バス)21に係るコンフィグレーションデータを記憶する制御データ用メモリ51−pを有する。
【0108】
シーケンサー1内のコンフィグレーションメモリ13Eには、制御データ用メモリ24から演算部22−iの状態に対応したコンフィグレーションデータと固定値データとの組を指定し読み出すための構成指定データ(例えば制御データ用メモリ24のアドレス値CADi)と、制御データ用メモリ51−pからセレクタ/レジスタ(バス)21の状態に対応したコンフィグレーションデータを指定し読み出すための構成指定データ(例えば制御データ用メモリ51−pのアドレス値CSRADp)が記憶される。
【0109】
第4の実施形態によれば、第1の実施形態と同様の効果が得られるとともに、第3の実施形態と同様の効果が得られ、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量をさらに低減することができ、回路規模を削減することができる。
【0110】
なお、上述した第2の実施形態における再構成可能な半導体装置及び第3の実施形態における再構成可能な半導体装置の両方の特徴的構成を備える再構成可能な半導体装置も同様に構成可能である。その場合にも、第2の実施形態と同様の効果及び第3の実施形態と同様の効果が得られ、コンフィグレーションデータの記憶に要する記憶容量を低減することができ、回路規模を削減することができる。
【0111】
また、上述した各実施形態では、演算部22−iに係るコンフィグレーションデータ及び固定値データを記憶するための制御データ用メモリ24又は第1及び第2の制御データ用メモリ31、32を各演算部22−iに設けているが、複数の演算部22−iで1つのグループを形成し、グループ毎にコンフィグレーションデータ及び固定値データを記憶するための制御データ用メモリを設けるようにしても良い。
【0112】
また、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【0113】
(付記1)第1の構成情報を記憶する第1の制御データ用メモリと、演算器とをそれぞれ有し、上記第1の制御データ用メモリから出力される上記第1の構成情報に応じて回路構成を再構成可能な複数の演算部と、
上記第1の制御データ用メモリから第1の構成情報を出力させるための第1の構成指定情報を記憶し、記憶している上記第1の構成指定情報を上記第1の制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
(付記2)上記第1の構成指定情報は、第1の構成情報が記憶されている領域を示す上記第1の制御データ用メモリのアドレス情報であることを特徴とする付記1記載の半導体装置。
(付記3)上記第1の制御データ用メモリに記憶する第1の構成情報は、互いに異なることを特徴とする付記1記載の半導体装置。
(付記4)上記第1の制御データ用メモリは、上記第1の構成情報とともに、当該第1の構成情報に対応し上記演算器での演算処理に用いる固定値を記憶することを特徴とする付記1記載の半導体装置。
(付記5)上記演算部は、上記演算器での演算処理に用いる固定値を記憶する固定値用メモリを有し、
上記コンフィグレーションメモリは、上記第1の構成指定情報とともに、当該第1の構成指定情報に応じて出力される第1の構成情報に対応する固定値を上記固定値用メモリから上記演算器に出力させるための固定値指定情報を記憶することを特徴とする付記1記載の半導体装置。
(付記6)上記固定値指定情報は、上記第1の構成情報に対応する固定値が記憶されている領域を示す上記固定値用メモリのアドレス情報であることを特徴とする付記5記載の半導体装置。
(付記7)上記固定値用メモリに記憶する固定値は、互いに異なることを特徴とする付記5記載の半導体装置。
(付記8)第2の構成情報を記憶する第2の制御データ用メモリを有し、上記第2の制御データ用メモリから出力される上記第2の構成情報に応じて回路構成を再構成し上記複数の演算部を含む演算処理部内でのデータ授受を制御するセレクタ/レジスタ部を備え、
上記コンフィグレーションメモリは、上記第1の構成指定情報とともに、上記第2の制御データ用メモリから第2の構成情報を出力させるための第2の構成指定情報を記憶し、記憶している上記第2の構成指定情報を上記第2の制御データ用メモリに対して供給することを特徴とする付記1記載の半導体装置。
(付記9)上記セレクタ/レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る第2の構成情報を記憶する上記第2の制御データ用メモリを設けることを特徴とする付記8記載の半導体装置。
(付記10)上記第2の構成指定情報は、第2の構成情報が記憶されている領域を示す上記第2の制御データ用メモリのアドレス情報であることを特徴とする付記9記載の半導体装置。
(付記11)上記第2の制御データ用メモリに記憶する第2の構成情報は、互いに異なることを特徴とする付記9記載の半導体装置。
(付記12)上記セレクタ/レジスタ部は、上記第2の制御データ用メモリから出力される第2の構成情報を保持する設定情報レジスタ回路と、
上記設定情報レジスタ回路に保持された第2の構成情報に応じて、回路構成を再構成し演算処理部内におけるデータパスを制御するセレクタ回路とを有することを特徴とする付記8記載の半導体装置。
(付記13)演算器をそれぞれ有し、供給される制御情報に応じて回路構成を再構成可能な複数の演算部と、
演算処理データを記憶するデータメモリと、
構成情報を記憶する制御データ用メモリを有し、上記制御データ用メモリから出力される上記構成情報に応じて回路構成を再構成し、上記演算部及びデータメモリにおけるデータの授受を制御するセレクタ/レジスタ部と、
上記制御データ用メモリから構成情報を出力させるための構成指定情報を記憶し、記憶している上記構成指定情報を上記制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
(付記14)上記セレクタ/レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る構成情報を記憶する上記制御データ用メモリを設けることを特徴とする付記13記載の半導体装置。
(付記15)上記構成指定情報は、構成情報が記憶されている領域を示す上記制御データ用メモリのアドレス情報であることを特徴とする付記14記載の半導体装置。(10)
(付記16)上記制御データ用メモリに記憶する構成情報は、互いに異なることを特徴とする付記14記載の半導体装置。
(付記17)上記セレクタ/レジスタ部は、上記制御データ用メモリから出力される構成情報を保持する設定情報レジスタ回路と、
上記設定情報レジスタ回路に保持された構成情報に応じて、回路構成が再構成されるセレクタ回路とを有することを特徴とする付記13記載の半導体装置。
【図面の簡単な説明】
【0114】
【図1】第1の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図2】図1に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図3】第2の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図4】図3に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図5】再構成可能な半導体装置の構成例を示す図である。
【図6】図5に示したコンフィグレーションメモリの内容を説明するための図である。
【図7】第3の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図8】図7に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図9】第4の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図10】従来の再構成可能な半導体装置の構成を示す図である。
【図11】図10に示したコンフィグレーションメモリの内容を説明するための図である。
【図12】従来の再構成可能な半導体装置の他の構成を示す図である。
【図13】図12に示したコンフィグレーションメモリ及び固定値用メモリの内容を説明するための図である。
【符号の説明】
【0115】
1 シーケンサー
2 演算処理部
11 状態制御回路
12 状態レジスタ
13A〜13G コンフィグレーションメモリ
21 セレクタ/レジスタ
22 演算部
23 データメモリ
24 制御データ用メモリ
25 レジスタ
26 演算器ユニット
31、32 制御データ用メモリ
33、34 レジスタ
42 セレクタ回路
51 制御データ用メモリ
52 設定情報レジスタ回路
【特許請求の範囲】
【請求項1】
第1の構成情報を記憶する第1の制御データ用メモリと、演算器とをそれぞれ有し、上記第1の制御データ用メモリから出力される上記第1の構成情報に応じて回路構成を再構成可能な複数の演算部と、
上記第1の制御データ用メモリから第1の構成情報を出力させるための第1の構成指定情報を記憶し、記憶している上記第1の構成指定情報を上記第1の制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
【請求項2】
上記第1の構成指定情報は、第1の構成情報が記憶されている領域を示す上記第1の制御データ用メモリのアドレス情報であることを特徴とする請求項1記載の半導体装置。
【請求項3】
第2の構成情報を記憶する第2の制御データ用メモリを有し、上記第2の制御データ用メモリから出力される上記第2の構成情報に応じて回路構成を再構成し上記複数の演算部を含む演算処理部内でのデータ授受を制御するセレクタ/レジスタ部を備え、
上記コンフィグレーションメモリは、上記第1の構成指定情報とともに、上記第2の制御データ用メモリから第2の構成情報を出力させるための第2の構成指定情報を記憶し、記憶している上記第2の構成指定情報を上記第2の制御データ用メモリに対して供給することを特徴とする請求項1又は2に記載の半導体装置。
【請求項4】
演算器をそれぞれ有し、供給される制御情報に応じて回路構成を再構成可能な複数の演算部と、
演算処理データを記憶するデータメモリと、
構成情報を記憶する制御データ用メモリを有し、上記制御データ用メモリから出力される上記構成情報に応じて回路構成を再構成し、上記演算部及びデータメモリにおけるデータの授受を制御するセレクタ/レジスタ部と、
上記制御データ用メモリから構成情報を出力させるための構成指定情報を記憶し、記憶している上記構成指定情報を上記制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
【請求項5】
上記セレクタ/レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る構成情報を記憶する上記制御データ用メモリを設けることを特徴とする請求項4記載の半導体装置。
【請求項1】
第1の構成情報を記憶する第1の制御データ用メモリと、演算器とをそれぞれ有し、上記第1の制御データ用メモリから出力される上記第1の構成情報に応じて回路構成を再構成可能な複数の演算部と、
上記第1の制御データ用メモリから第1の構成情報を出力させるための第1の構成指定情報を記憶し、記憶している上記第1の構成指定情報を上記第1の制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
【請求項2】
上記第1の構成指定情報は、第1の構成情報が記憶されている領域を示す上記第1の制御データ用メモリのアドレス情報であることを特徴とする請求項1記載の半導体装置。
【請求項3】
第2の構成情報を記憶する第2の制御データ用メモリを有し、上記第2の制御データ用メモリから出力される上記第2の構成情報に応じて回路構成を再構成し上記複数の演算部を含む演算処理部内でのデータ授受を制御するセレクタ/レジスタ部を備え、
上記コンフィグレーションメモリは、上記第1の構成指定情報とともに、上記第2の制御データ用メモリから第2の構成情報を出力させるための第2の構成指定情報を記憶し、記憶している上記第2の構成指定情報を上記第2の制御データ用メモリに対して供給することを特徴とする請求項1又は2に記載の半導体装置。
【請求項4】
演算器をそれぞれ有し、供給される制御情報に応じて回路構成を再構成可能な複数の演算部と、
演算処理データを記憶するデータメモリと、
構成情報を記憶する制御データ用メモリを有し、上記制御データ用メモリから出力される上記構成情報に応じて回路構成を再構成し、上記演算部及びデータメモリにおけるデータの授受を制御するセレクタ/レジスタ部と、
上記制御データ用メモリから構成情報を出力させるための構成指定情報を記憶し、記憶している上記構成指定情報を上記制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
【請求項5】
上記セレクタ/レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る構成情報を記憶する上記制御データ用メモリを設けることを特徴とする請求項4記載の半導体装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2008−85864(P2008−85864A)
【公開日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願番号】特願2006−265487(P2006−265487)
【出願日】平成18年9月28日(2006.9.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願日】平成18年9月28日(2006.9.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]