(57)【要約】【課題】動的に回路構成を再構成可能な半導体装置にて、回路構成の再構成に係る制御情報量を低減できるようにする。【解決手段】コンフィグレーションデータを記憶する制御データ用メモリ２４と、演算器２６とを有し、コンフィグレーションデータに応じて回路構成を再構成可能な複数の演算部２２と、コンフィグレーションデータを制御データ用メモリから出力させるための構成指定データを記憶するコンフィグレーションメモリ１３Ａとを備え、コンフィグレーションメモリにはコンフィグレーションデータを記憶せずに、制御データ用メモリからコンフィグレーションデータを出力させるための情報のみを記憶するだけで、コンフィグレーションデータを供給することができるようにする。【選択図】図１
2008085864.tif 000002
【特許請求の範囲】
【請求項１】
第１の構成情報を記憶する第１の制御データ用メモリと、演算器とをそれぞれ有し、上記第１の制御データ用メモリから出力される上記第１の構成情報に応じて回路構成を再構成可能な複数の演算部と、
上記第１の制御データ用メモリから第１の構成情報を出力させるための第１の構成指定情報を記憶し、記憶している上記第１の構成指定情報を上記第１の制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
【請求項２】
上記第１の構成指定情報は、第１の構成情報が記憶されている領域を示す上記第１の制御データ用メモリのアドレス情報であることを特徴とする請求項１記載の半導体装置。
【請求項３】
第２の構成情報を記憶する第２の制御データ用メモリを有し、上記第２の制御データ用メモリから出力される上記第２の構成情報に応じて回路構成を再構成し上記複数の演算部を含む演算処理部内でのデータ授受を制御するセレクタ／レジスタ部を備え、
上記コンフィグレーションメモリは、上記第１の構成指定情報とともに、上記第２の制御データ用メモリから第２の構成情報を出力させるための第２の構成指定情報を記憶し、記憶している上記第２の構成指定情報を上記第２の制御データ用メモリに対して供給することを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
演算器をそれぞれ有し、供給される制御情報に応じて回路構成を再構成可能な複数の演算部と、
演算処理データを記憶するデータメモリと、
構成情報を記憶する制御データ用メモリを有し、上記制御データ用メモリから出力される上記構成情報に応じて回路構成を再構成し、上記演算部及びデータメモリにおけるデータの授受を制御するセレクタ／レジスタ部と、
上記制御データ用メモリから構成情報を出力させるための構成指定情報を記憶し、記憶している上記構成指定情報を上記制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
【請求項５】
上記セレクタ／レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る構成情報を記憶する上記制御データ用メモリを設けることを特徴とする請求項４記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、詳しくは、動的に回路構成を再構成可能な半導体装置に関する。
【背景技術】
【０００２】
従来、ＬＳＩ等の半導体装置は、一般に要求仕様として予め決められた処理を実行するようにＡＮＤゲート（論理積演算回路）やＯＲゲート（論理和演算回路）等の配置及びそれらに係る配線を設計工程で決定し、当該要求仕様に応じた処理を実行可能な半導体装置を製造している。つまり、従来の半導体装置において所望の機能を実現しようとする場合には、回路構成（論理構成）についての設計がゲート単位（ゲートレベル）で行われ、当該機能を実現する半導体装置が製造されている。
【０００３】
しかし、上記半導体装置は、その回路構成が設計工程にて固定されるため、仕様変更などにより異なる要求仕様に応じた処理を実行しようとすると、その都度、設計及び製造のすべてを行う必要がある。したがって、多大な労力及び時間を要するとともに、開発コストも高い。
【０００４】
この問題を解決する１つの方法として、製造後であっても、論理を再構成し実行する処理を変更可能にしたリコンフィグＬＳＩと呼ばれる再構成可能な半導体装置がある。この再構成可能な半導体装置は、ＣＰＵからの制御信号（コンフィグレーション情報）が入力されるとともに機能変更が可能な複数の演算部を有する。当該演算部は、シフター、ＡＬＵ（算術論理演算装置）、及びセレクタ等を適宜組み合わせて構成されており、ＣＰＵからのコンフィグレーション情報を受け、それに応じて論理を再構成することで実行する処理を変更することが可能となっている。
【０００５】
上述した再構成可能な半導体装置は、ＣＰＵが複数の演算部をそれぞれ直接制御しており、処理速度が低い。例えば、ある演算部からの割り込みに基づいて、複数の演算部で実行する処理を変更する場合には、ＣＰＵは演算部からの割り込みを受けて割り込み処理ルーチンを呼び出して実行し、その後、当該処理ルーチンの処理結果等に応じたコンフィグレーション情報を複数の演算部に供給する。この割り込み処理には、数十クロックに相当する時間を要する。したがって、上述した再構成可能な半導体装置では、処理速度が遅く、演算部にて実行する処理を動的に（クロック単位で）変更することができなかった。
【０００６】
この問題を解決する１つの方法として、本出願人は、図１０に構成を示すような再構成可能な半導体装置を提案している。図１０は、本出願人が提案した再構成可能な半導体装置の構成例を示す図であり、当該半導体装置は、ＣＰＵに代えて、回路構成（論理構成）の変更制御に関しＣＰＵと等価的な機能を有するシーケンサーを設けている。
【０００７】
シーケンサー（制御部）１は、外部（例えば外部バス３を介して接続されているプロセッサ）からの指示に応じて、当該半導体装置を統括的に制御するものであり、演算処理部２の回路構成（論理構成を含む。）を管理するとともに、それを動的に変更させる制御を行う。シーケンサー１は、アプリケーションに応じて動的に演算処理部２の回路構成を変更するため、コンフィグレーションデータ（コンフィグレーション情報）を含む当該シーケンサー１からの制御信号が供給可能なように演算処理部２の各機能部と信号線を介して接続されている。
【０００８】
シーケンサー１は、状態制御回路１１、状態レジスタ１２、及びコンフィグレーションメモリ１３Ｆを有する。状態制御回路１１は、予め設定された所定のシーケンスや演算処理部２からの状態遷移指示信号等に基づき、演算処理部２の状態（回路構成）を次状態に移すコンフィグレーションデータ及び固定値データをコンフィグレーションメモリ１３Ｆから読み出すためのコンフィグレーションメモリアドレス及びその読み出しタイミングを生成する。状態制御回路１１によるコンフィグレーションメモリアドレスの生成は、状態レジスタ１２に保持されている現在の状態を示す情報を参照して行われる。また、次状態に遷移する際に、状態レジスタ１２に保持する情報は更新される。
【０００９】
コンフィグレーションメモリ１３Ｆは、演算処理部２の回路構成を設定するコンフィグレーションデータと、固定値データを記憶する。すべてのコンフィグレーションデータと固定値データは、動作開始前に外部からコンフィグレーションメモリ１３Ｆに予め書き込まれ、状態毎に１組のデータとして保持される。コンフィグレーションメモリ１３Ｆに記憶されているコンフィグレーションデータ及び固定値データは、状態制御回路１１による制御に応じて読み出され、演算処理部２に出力される。コンフィグレーションメモリ１３Ｆの内容についての詳細は後述する。
【００１０】
演算処理部２は、セレクタ／レジスタ（バス）２１、演算部２２−ｉ、及びデータメモリ２３−ｊを有する。なお、ｉ，ｊは添え字であり、ｉ＝１〜Ｎ（Ｎは任意）の自然数、ｊ＝１〜Ｍ（Ｍは任意）の自然数である。
【００１１】
セレクタ／レジスタ２１は、シーケンサー１から供給されるコンフィグレーションデータにより制御される。セレクタ／レジスタ２１は、演算部２２−１〜２２−Ｎ及びデータメモリ２３−１〜２３−Ｍにそれぞれ接続され、演算部２２−ｉ及びデータメモリ２３−ｊとの間でデータを授受する。言い換えると、セレクタ／レジスタ２１は、演算部２２−１〜２２−Ｎ及びデータメモリ２３−１〜２３−Ｍを互いに通信可能なように接続するネットワーク機能を有している。
【００１２】
具体的には、セレクタ／レジスタ２１は、コンフィグレーションデータに応じて、演算部２２−ｉにデータを供給したり、データメモリ２３−ｊとの間で書き込みデータを供給したり、読み出されたデータの供給を受けたりする。また、セレクタ／レジスタ２１は、演算部２２−ｉの出力（演算結果）等を一時的に保持するレジスタを有しており、コンフィグレーションデータに応じてレジスタに保持されているデータ又はそれ以外から供給されるデータを選択的に出力可能となっている。
【００１３】
各演算部２２−ｉは、レジスタ２５と演算器（ＡＬＵ）ユニット２６を有する。
レジスタ２５は、シーケンサー１から供給されるコンフィグレーションデータ及び固定値データをそれぞれ一時的に保持するコンフィグレーションレジスタ２５Ａ及び固定値レジスタ２５Ｂで構成される。
【００１４】
ＡＬＵユニット２６は、シフト回路（シフター）、ＡＬＵ（算術論理演算装置）、及びセレクタ等（以下、説明の便宜上、これらを区別せずに単に演算器とも称す。）を用いて構成される。なお、ＡＬＵユニット２６、具体的にはそれを構成する複数の演算器（１つであっても良い）は、使用するアプリケーションに応じて適宜選択、決定される。
【００１５】
ＡＬＵユニット２６は、コンフィグレーションレジスタ２５Ａに保持されたコンフィグレーションデータＣＤに基づいて、ＡＬＵユニット２６毎に演算器の動作モードや演算器間の接続が設定される。つまり、ＡＬＵユニット２６は、これを単位としてコンフィグレーションデータＣＤに応じて回路構成が変更可能となっており、加算、乗算、ビット演算、及び論理演算（ＡＮＤ、ＯＲ、ＥＯＲなど）等をはじめとして所望の機能を実現するように（所定の処理を実行するように）各演算器等が制御される。
【００１６】
例えば、シフト回路であれば、シフト量、算術シフト処理、論理シフト処理、及びシフト処理後の所定ビットのマスク処理等が制御される。また、例えばＡＮＤ回路やＯＲ回路等を用いて構成されたＡＬＵであれば、それらを適宜組み合わせたりしてＡＬＵ全体での回路（演算）機能が制御される。また、セレクタであれば、複数の入力のうち、いずれの入力を出力するかが制御される。さらには、これらシフト回路、ＡＬＵ、及びセレクタ等の間の接続が制御される。
【００１７】
ＡＬＵユニット２６は、セレクタ／レジスタ２１から供給される第１の入力データＤＴ１が入力されるとともに、コンフィグレーションデータに応じてセレクタ／レジスタ２１から供給される第２の入力データＤＴ２又は固定値レジスタ２５Ｂに保持された固定値データＣＶＤの一方が入力され、それらを用いて所定の演算を行って演算結果を出力する。このＡＬＵユニット２６の出力は、そのまま出力することが可能であるが、コンフィグレーションデータに基づきフィードバックさせることもできるように構成されており、例えば出力を蓄積し規格化して出力することもできる。
【００１８】
各データメモリ２３−ｊは、演算処理部２での処理に係るデータを記憶するメモリである。
【００１９】
図１１は、図１０に示したコンフィグレーションメモリ１３Ｆの内容を説明するための図であり、上述したように各状態に対応したコンフィグレーションデータと固定値データとが記憶されている。図１１において、ＣＤｉはコンフィグレーションデータであり、ＣＶＤｉは固定値データである。なお、ｉは添え字であり、ｉ＝１〜Ｎ（Ｎは任意）の自然数である。また、図１１においては、固定値データＣＶＤｉの値のみ図示しており、コンフィグレーションデータＣＤｉの値については図示を省略している。
【００２０】
コンフィグレーションデータＣＤｉ及び固定値データＣＶＤｉは、ｋ番目（ｋ＝１〜１２８の自然数）の状態にするときに、演算部２２−ｉに供給されてコンフィグレーションレジスタ２５に一時的に保持される。すなわち、演算処理部２にて所望の回路機能を実現するためのある回路構成ＦＵＮＣｋに係るコンフィグレーションデータと固定値データは、図１１において行方向に配列された１組のコンフィグレーションデータＣＤ１〜ＣＤＮ及び固定値データＣＶＤ１〜ＣＶＤＮにより構成される。なお、図１１においては図示していないが、コンフィグレーションメモリ１３Ｆには、演算部２２−ｉに係るコンフィグレーションデータ以外にもセレクタ／レジスタ２１を制御するコンフィグレーションデータ等が記憶されている。
【００２１】
上述のように、ＣＰＵに代えてシーケンサー１を設けることで、再構成可能な半導体装置は、いわゆるダイナミックリコンフィグレーションが可能となり、クロック単位で動的に回路構成（論理）を再構成することができる。例えば、演算処理部２は、シーケンサー１からのコンフィグレーションデータ（制御信号）に基づき、あるクロック期間ではＡ機能を行い、次のクロック期間ではＡ機能とは異なるＢ機能を行うことができる。
【００２２】
しかしながら、上記図１０及び図１１に示した再構成可能な半導体装置において、固定値（定数）を入力可能な演算器については、コンフィグレーションデータとともに固定値データがコンフィグレーションメモリ１３Ｆに保存され、必要に応じて演算器に対応して設けられたコンフィグレーションレジスタ２５に読み出され保持される。このようにコンフィグレーションメモリ１３Ｆに固定値データを保存する場合には、固定値が入力可能な演算器毎に固定値データを記憶する固定値データ領域を設け、すべての固定値データをコンフィグレーションメモリ１３Ｆに保存しておく必要がある。例えば、固定値が入力可能な演算器に対して、セレクタ／レジスタ２１からの第２の入力データが３２ビット幅であれば、コンフィグレーションメモリ１３Ｆに当該演算器毎に３２ビットの固定値データ領域を演算処理部２のすべての状態（以下、状態を「コンフィグレーション」とも称す。）について設ける必要がある。
【００２３】
ここで、演算処理部２の状態のすべてで各演算器の入力として固定値データを設定する、すなわち演算処理部２の状態を切り換える度に各演算器の入力として固定値データを設定することはほとんどない。したがって、上述にように設けた固定値データ領域は、コンフィグレーションメモリ１３Ｆの記憶領域を浪費していることとなり、コンフィグレーションメモリ１３Ｆに固定値データを保存する場合には多くのメモリ（記憶領域）を消費してしまう。
【００２４】
そこで、本出願人は、固定値データの記憶に要する記憶容量の低減を図った図１２に構成を示すような再構成可能な半導体装置を提案している（特許文献１参照。）。図１２は、本出願人が提案した再構成可能な半導体装置の他の構成例を示す図である。この図１２において、図１０に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００２５】
図１２に示す再構成可能な半導体装置は、シーケンサー１と演算処理部２を有し、演算処理部２内に固定値データを記憶する固定値用メモリ７２−１、７２−２を備えている。
【００２６】
シーケンサー１は、状態制御回路１１、状態レジスタ１２、及びコンフィグレーションメモリ１３Ｇを有する。
コンフィグレーションメモリ１３Ｇは、演算処理部２の回路構成を設定するコンフィグレーションデータと、固定値指定データを記憶する。固定値指定データは、固定値用メモリ７２−１、７２−２に記憶されている固定値データの中から、演算処理部２の状態に対応した固定値データを指定し読み出すためのものであり、ここでは一例として固定値用メモリ７２−１、７２−２におけるアドレスとする。
【００２７】
演算処理部２は、セレクタ／レジスタ（バス）２１、演算部２２−ｉ、及びデータメモリ２３−ｊに加え、固定値用メモリ７２−１、７２−２、セレクタ７３−ｉ、及び固定値指定レジスタ７４−１、７４−２を有する。なお、ｉ，ｊは添え字であり、ｉ＝１〜Ｎ（Ｎは任意）の自然数、ｊ＝１〜Ｍ（Ｍは任意）の自然数である。
【００２８】
固定値用メモリ７２−１、７２−２は、固定値データを記憶するメモリである。固定値用メモリ７２−１、７２−２に記憶されている固定値データは、シーケンサー１により固定値指定レジスタ７４−１、７４−２に設定されたアドレス値に基づいて読み出されセレクタ７３−ｉに出力される。
【００２９】
セレクタ７３−ｉは、シーケンサー１から供給されるコンフィグレーションデータに応じて、セレクタ／レジスタ２１から供給される第２の入力データＤＴ２又は固定値用メモリ７２−１、７２−２から供給される固定値データＣＶＤを選択し演算部２２−ｉ内のＡＬＵユニット２６に出力する。
【００３０】
演算部２２−ｉは、シーケンサー１から供給されるコンフィグレーションデータを一時的に保持するコンフィグレーションレジスタ７１と、ＡＬＵユニット２６を有する。演算部２２−ｉは、固定値データが固定値用メモリ７２−１、７２−２から読み出されセレクタ７３−ｉを介してＡＬＵユニット２６に供給されるため、図１０に示した固定値レジスタを備えていない。
【００３１】
なお、コンフィグレーションメモリ１３Ｇに記憶されるコンフィグレーションデータと固定値指定データ、及び固定値用メモリ７２−１、７２−２に記憶される固定値データは、外部からコンフィグレーションメモリ１３Ｇ及び固定値用メモリ７２−１、７２−２にそれぞれ動作開始前に予め書き込まれ保持される。コンフィグレーションデータと固定値指定データは、状態毎に１組のデータとしてコンフィグレーションメモリ１３Ｇに保持される。
【００３２】
図１３は、図１２に示したコンフィグレーションメモリ１３Ｇ及び固定値用メモリ７２−１、７２−２の内容を説明するための図である。なお、図１３においては、比較参照するために図１１に示したコンフィグレーションメモリ１３Ｆの内容と等価な内容を一例として示している。
【００３３】
図１３（Ａ）はコンフィグレーションメモリ１３Ｇの内容を示している。図１３（Ａ）において、ＣＤｉ（ｉ＝１〜Ｎの自然数）はコンフィグレーションデータであり、ＣＶＡＤ１、ＣＶＡＤ２はそれぞれ固定値用メモリ７２−１、７２−２におけるアドレス値である。ＦＵＮＣｋ（ｋ＝１〜１２８の自然数）は、演算処理部２にて所望の回路機能を実現するための状態（回路面）を示している。
【００３４】
また、図１３（Ｂ）、（Ｃ）は固定値用メモリ７２−１、７２−２の内容を示している。図１３（Ｂ）、（Ｃ）において、ＣＶＡＤ１、ＣＶＡＤ２は固定値用メモリ７２−１、７２−２におけるアドレス値であり、ＣＶＤｉ（ｉ＝１〜Ｎの自然数）は固定値データである。図１３（Ｂ）、（Ｃ）には、固定値用メモリ７２−１に固定値データＣＶＤ１、ＣＶＤ３を、固定値用メモリ７２−２に固定値データＣＶＤ２、ＣＶＤＮを記憶した場合を示している。
【００３５】
図１３（Ｂ）、（Ｃ）に示したように、固定値用メモリ７２−１、７２−２のそれぞれにおいて、固定値データＣＶＤｉの組み合わせが同じ場合には、１組の固定値データＣＶＤｉとして記憶される。すなわち、固定値用メモリ７２−１に記憶される固定値データＣＶＤｉの組み合わせは、互いに異なるものであり重複しては記憶されず、同様に、固定値用メモリ７２−２に記憶される固定値データＣＶＤｉの組み合わせは、互いに異なるものであり重複しては記憶されない。
【００３６】
また、図１３（Ａ）に示したようにコンフィグレーションメモリ１３Ｇにおいては、コンフィグレーションデータＣＤｉと、この状態に対応する固定値データＣＶＤｉの組み合わせが記憶されている固定値用メモリ７２−１、７２−２のアドレス値ＣＶＡＤ１、ＣＶＡＤ２がそれぞれ記憶される。
【００３７】
上述のように、固定値用メモリ７２−１、７２−２に固定値データの組み合わせが重複しないようにして固定値データを記憶し、コンフィグレーションメモリ１３Ｇにコンフィグレーションデータと、その状態に対応する固定値データを読み出すための固定値用メモリ７２−１、７２−２のアドレス値を記憶する。これにより、コンフィグレーションメモリ１３Ｇには固定値用データを記憶せずに固定値用メモリ７２−１、７２−２のアドレス値のみを記憶すれば良いので、コンフィグレーションメモリ１３Ｇに要求される記憶容量を低減することができ、小さなサイズのメモリでコンフィグレーションメモリ１３Ｇを構成することができる。また、固定値用メモリ７２−１、７２−２に、各状態毎に固定値データを記憶せず、同じ組み合わせの固定値データを１組の固定値データとして１つだけ記憶するので、固定値データを記憶するために要する記憶容量を低減することが可能となる。
【００３８】
【特許文献１】特開２００６−１８４５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００３９】
ここで、再構成可能な半導体装置において、コンフィグレーションメモリに記憶できる状態遷移数に対して、コンフィグレーションデータにより設定可能な回路構成数はかなり小さい傾向にある。例えば、各演算部２２−ｉに係るコンフィグレーションデータのビット数がそれぞれ１６ビットとし、演算部２２−ｉの数が３２個であったとすると、１つの状態（１つの回路面）におけるコンフィグレーションデータの総ビット数は５１２ビットとなり、２の５１２乗という膨大な組み合わせが存在することとなる。しかしながら、現在のＬＳＩテクノロジでコストを考慮した適切なサイズのメモリ容量は数十ＫＢ程度であり、コンフィグレーションメモリで上述した膨大な組み合わせをすべて設定することは不可能である。
【００４０】
また、再構成可能な半導体装置において、実際のアプリケーションを実装した場合の複数の回路面での回路構成に着目すると、相違する回路面の数がわずかであることも多い。例えば、図１２に示した再構成可能な半導体装置における１つの演算部２２−１に係るコンフィグレーションデータ（図１３（Ａ）に示したコンフィグレーションデータＣＤ１）については、回路面数１２８に対して、１２８面すべての設定（コンフィグレーションデータ）が異なることは非常にまれであり、実際には数通りの異なる設定だけであることもある。
【００４１】
また、セレクタ／レジスタ（バス）２１を制御するコンフィグレーションデータもコンフィグレーションメモリに記憶されるが、セレクタ／レジスタ（バス）２１は、多数のセレクタ及び多数のレジスタから構成されており、コンフィグレーションデータ量は膨大である。
【００４２】
本発明の目的は、動的に回路構成を再構成可能な半導体装置にて、回路構成の再構成に係る制御情報量を低減できるようにすることである。
【課題を解決するための手段】
【００４３】
本発明の半導体装置は、第１の制御データ用メモリ及び演算器をそれぞれ有し第１の構成情報に応じて回路構成を再構成可能な複数の演算部と、コンフィグレーションメモリとを備える。第１の構成情報を第１の制御データ用メモリに記憶し、第１の構成情報を第１の制御データ用メモリから出力させるための第１の構成指定情報をコンフィグレーションメモリに記憶する。
本発明によれば、第１の構成情報を演算部内の第１の制御データ用メモリに記憶することで、コンフィグレーションメモリには第１の構成情報そのものを記憶するためのデータ領域を設けずに、第１の制御データ用メモリから第１の構成情報を出力させるための指定情報のみを記憶すれば良く、記憶すべきデータ量を低減することができる。
【発明の効果】
【００４４】
本発明によれば、コンフィグレーションメモリとは別に、演算部毎に第１の制御データ用メモリを設けて回路構成の再構成に係る構成情報を記憶するようにしたので、コンフィグレーションメモリに構成情報自体を記憶するためのデータ領域を設ける必要がなく、第１の制御データ用メモリから構成情報を出力させるための指定情報のみを記憶するだけで構成情報を供給することができる。したがって、回路構成を再構成するための制御情報量を低減することができ、コンフィグレーションメモリに要求される記憶容量を低減し、回路規模を削減することができる。
【発明を実施するための最良の形態】
【００４５】
以下、本発明の実施形態を図面に基づいて説明する。
【００４６】
（第１の実施形態）
図１は、本発明の第１の実施形態における再構成可能な半導体装置の構成例を示す図である。この図１において、図１０に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。第１の実施形態における再構成可能な半導体装置は、シーケンサー（制御部）１と演算処理部２を有する。
【００４７】
シーケンサー１は、外部（例えば外部バス３を介して接続されているプロセッサ）からの指示に応じて、当該半導体装置を統括的に制御するものであり、演算処理部２の回路構成（論理構成を含む。）を管理するとともに、それを動的に変更させる制御を行う。シーケンサー１は、アプリケーションに応じて動的に演算処理部２の回路構成を変更するため、演算処理部２の各機能部と信号線を介して接続されている。
【００４８】
シーケンサー１は、状態制御回路１１、状態レジスタ１２、及びコンフィグレーションメモリ１３Ａを有する。また、演算処理部２は、セレクタ／レジスタ（バス）２１、演算部２２−ｉ、及びデータメモリ２３−ｊを有し、各演算部２２−ｉは、制御データ用メモリ２４、レジスタ２５、及び演算器（ＡＬＵ）ユニット２６を有する。なお、ｉ，ｊは添え字であり、ｉ＝１〜Ｎ（Ｎは任意）の自然数、ｊ＝１〜Ｍ（Ｍは任意）の自然数である。
【００４９】
状態制御回路１１は、予め設定された所定のシーケンスや演算処理部２からの状態遷移指示信号等に基づいて、演算処理部２の状態（回路構成）を次状態に移すためのセレクタ／レジスタ（バス）２１のコンフィグレーションデータ及び構成指定データをコンフィグレーションメモリ１３Ａから読み出すためのコンフィグレーションメモリアドレス及びその読み出しタイミングを生成する。状態制御回路１１によるコンフィグレーションメモリアドレスの生成は、状態レジスタ１２に保持されている現在の状態を示す情報を参照して行われる。また、次状態に遷移する際に、状態レジスタ１２に保持する情報は更新される。
【００５０】
コンフィグレーションメモリ１３Ａは、演算処理部２内のセレクタ／レジスタ（バス）２１の構成を設定するコンフィグレーションデータと、各演算部２２−１〜２２−Ｎに係る構成指定データを記憶する。この構成指定データは、演算部２２−ｉの状態に対応した制御データ用メモリ２４内のコンフィグレーションデータと固定値データとの組を一意に識別可能な情報であり、制御データ用メモリ２４に記憶されているコンフィグレーションデータと固定値データとの組の中から、演算部２２−ｉの状態に対応したコンフィグレーションデータと固定値データとの組を指定し読み出すためのものである。なお、以下では一例として、構成指定データは、制御データ用メモリ２４におけるアドレスとする。
【００５１】
セレクタ／レジスタ（バス）２１は、演算処理部２内でのデータ授受の制御を行い、シーケンサー１から供給されるコンフィグレーションデータＣＳＲＤにより制御される。セレクタ／レジスタ（バス）２１は、演算部２２−１〜２２−Ｎ及びデータメモリ２３−１〜２３−Ｍにそれぞれ接続され、演算部２２−ｉ及びデータメモリ２３−ｊとの間でデータを授受する。言い換えると、セレクタ／レジスタ（バス）２１は、演算部２２−１〜２２−Ｎ及びデータメモリ２３−１〜２３−Ｍを互いに通信可能なように接続するネットワーク機能を有している。
【００５２】
具体的には、セレクタ／レジスタ（バス）２１は、コンフィグレーションデータに応じて、演算部２２−ｉにデータを供給したり、データメモリ２３−ｊとの間で書き込みデータを供給したり、読み出されたデータの供給を受けたりする。また、セレクタ／レジスタ（バス）２１は、演算部２２−ｉの出力（演算結果）等を一時的に保持するレジスタを有しており、コンフィグレーションデータに応じてレジスタに保持されているデータ又はそれ以外から供給されるデータを選択的に出力可能となっている。
【００５３】
制御データ用メモリ２４は、演算部２２−ｉに係るコンフィグレーションデータ及び固定値データを記憶するメモリであり、コンフィグレーションデータが格納されるコンフィグレーションデータ領域２４Ａ及び固定値データが格納される固定値データ領域２４Ｂを有する。演算部２２−ｉに係るコンフィグレーションデータ及び固定値データは、１組のデータとして制御データ用メモリ２４に保持されており、構成指定データとしてシーケンサー１から供給されるアドレス値ＣＡＤｉに基づいて読み出され、そのデータ（コンフィグレーションデータ及び固定値データ）ＣＤＣＶＤがレジスタ２５に出力される。
【００５４】
レジスタ２５は、制御データ用メモリ２４から出力されるコンフィグレーションデータを保持するコンフィグレーションレジスタ２５Ａ及び固定値データを保持する固定値レジスタ２５Ｂで構成される。なお、レジスタ２５は、制御データ用メモリ２４から出力されたデータをＡＬＵユニット２６に供給するタイミングを調整するためのものであり、例えば制御データ用メモリ２４が同期型のメモリであり、出力のタイミング調整が不要である場合等にはレジスタ２５を備えていなくとも良い。
【００５５】
ＡＬＵユニット２６は、シフト回路（シフター）、ＡＬＵ（算術論理演算装置）、及びセレクタ等（以下、これらを区別せずに単に演算器とも称す。）を用いて構成される。なお、ＡＬＵユニット２６、具体的にはそれを構成する複数の演算器（１つであっても良い）は、使用するアプリケーションに応じて適宜選択、決定すれば良い。
【００５６】
ＡＬＵユニット２６は、コンフィグレーションレジスタ２５Ａに保持されたコンフィグレーションデータＣＤに基づいて、ＡＬＵユニット２６毎に演算器の動作モードや演算器間の接続が設定される。つまり、ＡＬＵユニット２６は、これを単位としてコンフィグレーションデータＣＤに応じて回路構成が変更可能となっており、加算、乗算、ビット演算、及び論理演算等をはじめとして所望の機能を実現するように（所定の処理を実行するように）各演算器等が制御される。
【００５７】
例えば、シフト回路であれば、シフト量、算術シフト処理、論理シフト処理、及びシフト処理後の所定ビットのマスク処理等が制御される。また、例えばＡＮＤ回路やＯＲ回路等を用いて構成されたＡＬＵであれば、それらを適宜組み合わせたりしてＡＬＵ全体での回路（演算）機能が制御される。また、セレクタであれば、複数の入力のうち、いずれの入力を出力するかが制御される。さらには、これらシフト回路、ＡＬＵ、及びセレクタ等の間の接続が制御される。
【００５８】
ＡＬＵユニット２６は、セレクタ／レジスタ２１から供給される第１の入力データＤＴ１が入力されるとともに、コンフィグレーションデータに応じてセレクタ／レジスタ２１から供給される第２の入力データＤＴ２又は固定値レジスタ２５Ｂに保持された固定値データＣＶＤの一方が入力され、それらを用いて演算を行い演算結果を出力する。このＡＬＵユニット２６の出力は、そのまま出力することが可能であるが、コンフィグレーションデータに基づきフィードバックさせることもできるように構成されており、例えば出力を蓄積し規格化して出力することもできる。
各データメモリ２３−ｊは、演算処理部２での処理に係るデータを記憶するメモリである。
【００５９】
なお、コンフィグレーションメモリ１３Ａに記憶されるセレクタ／レジスタ（バス）２１のコンフィグレーションデータと演算部２２−１〜２２−Ｎの構成指定データ、及び制御データ用メモリ２４に記憶される演算部２２−ｉのコンフィグレーションデータと固定値データは、例えば、ＲＩＳＣ（プロセッサ）やその他のハードウェア等により外部からコンフィグレーションメモリ１３Ａ及び制御データ用メモリ２４にそれぞれ動作開始前に予め書き込まれ保持される。
【００６０】
図２は、図１に示したコンフィグレーションメモリ１３Ａ及び制御データ用メモリ２４の内容を説明するための図である。
図２（Ａ）はコンフィグレーションメモリ１３Ａの内容を示している。図２（Ａ）において、ＣＡＤｉ（ｉ＝１〜Ｎの自然数）は対応する演算部２２−ｉに係る構成指定データとしての制御データ用メモリ２４におけるアドレス値であり、ＣＳＲＤはセレクタ／レジスタ（バス）２１のコンフィグレーションデータである。ＦＵＮＣｋ（ｋ＝１〜１２８の自然数）は、演算処理部２にて所望の回路機能を実現するための状態（回路面）を示している。
【００６１】
また、図２（Ｂ）、（Ｃ）は演算部２２−ｉに設けられた制御データ用メモリ２４の内容を示しており、ＣＡＤｉ（ｉ＝１〜Ｎの自然数、ＣＤＣＶＤｉについても同様）は制御データ用メモリ２４におけるアドレス値であり、ＣＤＣＶＤｉは対応する演算部２２−ｉのコンフィグレーションデータ及び固定値データである。データＣＤＣＶＤｉは、例えば演算部２２−ｉのコンフィグレーションデータＣＤｉと固定値データＣＶＤｉをビット結合したものである（図中の“＆”はビット連結子を示す。）。
【００６２】
なお、図２（Ｂ）、（Ｃ）には、一例として、演算部２２−１、２２−Ｎに設けられた制御データ用メモリ２４の内容をそれぞれ示している。図２（Ｂ）、（Ｃ）において、Ｅ１、Ｅ２、Ｅ３、Ｅ４、…、及びＧ１、Ｇ２、Ｇ３、Ｇ４、…を演算部２２−１、２２−Ｎのコンフィグレーションデータとし、Ｆ１、Ｆ２、…、及びＨ１、Ｈ２、Ｈ３、…を演算部２２−１、２２−Ｎの固定値データとする。
【００６３】
つまり、第１の実施形態における再構成可能な半導体装置は、演算処理部２内の各演算部２２−ｉに制御データ用メモリ２４を設けて、演算部２２−ｉのコンフィグレーションデータＣＤｉと固定値データＣＶＤｉを記憶する。シーケンサー１内のコンフィグレーションメモリ１３Ａに、各演算部２２−ｉの制御データ用メモリ２４からコンフィグレーションデータＣＤｉと固定値データＣＶＤｉを読み出すための制御データ用メモリ２４のアドレス値を構成指定データとして記憶する。
【００６４】
そして、演算処理部２内の状態を切り換える際には、当該状態に対応するセレクタ／レジスタ（バス）２１のコンフィグレーションデータＣＳＲＤ及び各演算部２２−ｉに係る構成指定データとしてのアドレス値ＣＡＤｉがコンフィグレーションメモリ１３Ａから読み出される。読み出されたセレクタ／レジスタ（バス）２１のコンフィグレーションデータＣＳＲＤは、セレクタ／レジスタ（バス）２１に供給され、セレクタ／レジスタ（バス）２１の構成が設定される。また、読み出されたアドレス値ＣＡＤｉは、各演算部２２−ｉに供給され、当該アドレス値ＣＡＤｉに基づいて制御データ用メモリ２４からコンフィグレーションデータＣＤｉと固定値データＣＶＤｉが読み出されてレジスタ２５を介してＡＬＵユニット２６に供給され回路構成が再構成される。このようにして演算処理部２で所望の機能が実現される。
【００６５】
ここで、制御データ用メモリ２４に記憶される演算部２２−ｉのコンフィグレーションデータＣＤｉと固定値データＣＶＤｉの組み合わせが同じ場合には、１組のコンフィグレーションデータＣＤｉと固定値データＣＶＤｉとして記憶される。すなわち、制御データ用メモリ２４に記憶されるコンフィグレーションデータＣＤｉと固定値データＣＶＤｉの組み合わせは、互いに異なるものであり重複しては記憶されない。
【００６６】
以上、第１の実施形態によれば、演算処理部２内の各演算部２２−ｉ毎に当該演算部２２−ｉに係るコンフィグレーションデータと固定値データを記憶する制御データ用メモリ２４を設け、シーケンサー１内のコンフィグレーションメモリ１３Ａには、制御データ用メモリ２４から演算部２２−ｉに係るコンフィグレーションデータと固定値データを読み出すための構成指定データ（アドレス値）を記憶する。演算部２２−ｉに係るコンフィグレーションデータと固定値データの組み合わせが同じ場合には制御データ用メモリ２４に重複して記憶しないようにして、制御データ用メモリ２４には互いに異なるコンフィグレーションデータと固定値データの組を記憶し、構成指定データであるアドレス値に応じて選択する。
【００６７】
これにより、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、例えばコンフィグレーションメモリ１３Ａに要求される記憶容量を低減し、回路規模を削減することができる。また、予め演算部２２−ｉにて設定可能な回路構成を絞り込む、すなわち設定可能なコンフィグレーションデータＣＤｉの数を絞り込んだ場合には、制御データ用メモリ２４からコンフィグレーションデータを読み出すための構成指定データのビット数をコンフィグレーションデータのビット数よりも少なくし、半導体装置全体として要求される記憶容量を低減することができる。
【００６８】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
上述した第１の実施形態においては、各演算部２２−ｉに設けた制御データ用メモリ２４に演算部２２−ｉに係るコンフィグレーションデータと固定値データの組を記憶するようにしていたが、以下に説明する第２の実施形態は、演算部２２−ｉに係るコンフィグレーションデータ及び固定値データを記憶するメモリを独立して配置する。
【００６９】
図３は、第２の実施形態における再構成可能な半導体装置の構成例を示す図である。この図３において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００７０】
シーケンサー１は、状態制御回路１１、状態レジスタ１２、及びコンフィグレーションメモリ１３Ｂを有する。また、演算処理部２は、セレクタ／レジスタ（バス）２１、演算部２２−ｉ、及びデータメモリ２３−ｊを有する。各演算部２２−ｉは、第１の制御データ（コンフィグレーションデータ）用メモリ３１、第２の制御データ（固定値）用メモリ３２、コンフィグレーションレジスタ３３、固定値レジスタ３４、及びＡＬＵユニット２６を有する。
【００７１】
コンフィグレーションメモリ１３Ｂは、演算処理部２内のセレクタ／レジスタ（バス）２１の構成を設定するコンフィグレーションデータと、各演算部２２−１〜２２−Ｎに係る第１の構成指定データ及び第２の構成指定データを記憶する。第１の構成指定データは、演算部２２−ｉの状態に対応した第１の制御データ用メモリ３１内のコンフィグレーションデータを一意に識別可能な情報であり、第１の制御データ用メモリ３１に記憶されているコンフィグレーションデータの中から、演算部２２−ｉの状態に対応したコンフィグレーションデータを指定し読み出すためのものである。同様に、第２の構成指定データ（固定値指定データ）は、演算部２２−ｉの状態に対応した第２の制御データ用メモリ３２内の固定値データを一意に識別可能な情報であり、第２の制御データ用メモリ３２に記憶されている固定値データの中から、演算部２２−ｉの状態に対応した固定値データを指定し読み出すためのものである。なお、以下では一例として、第１及び第２の構成指定データは、それぞれ制御データ用メモリ３１、３２におけるアドレスとする。
【００７２】
第１の制御データ用メモリ３１は、演算部２２−ｉに係るコンフィグレーションデータを記憶するメモリである。第１の制御データ用メモリ３１に記憶されているコンフィグレーションデータＣＤは、第１の構成指定データとしてシーケンサー１から供給されるアドレス値ＣＡＤｉに基づいて読み出されコンフィグレーションレジスタ３３に出力される。
【００７３】
第２の制御データ用メモリ３２は、演算部２２−ｉに係る固定値データを記憶するメモリである。第２の制御データ用メモリ３２に記憶されている固定値データＣＶＤは、第２の構成指定データとしてシーケンサー１から供給されるアドレス値ＤＡＤｉに基づいて読み出され固定値レジスタ３４に出力される。
【００７４】
コンフィグレーションレジスタ３３及び固定値レジスタ３４は、第１の実施形態におけるコンフィグレーションレジスタ２５Ａ及び固定値レジスタ２５Ｂにそれぞれ対応する。
【００７５】
コンフィグレーションメモリ１３Ｂに記憶されるセレクタ／レジスタ（バス）２１のコンフィグレーションデータと、演算部２２−１〜２２−Ｎに係る第１及び第２の構成指定データ、及び第１及び第２の制御データ用メモリ３１、３２にそれぞれ記憶される演算部２２−ｉのコンフィグレーションデータ及び固定値データは、外部からコンフィグレーションメモリ１３Ｂ及び第１及び第２の制御データ用メモリ３１、３２にそれぞれ動作開始前に予め書き込まれ保持される。また、セレクタ／レジスタ（バス）２１のコンフィグレーションデータと演算部２２−１〜２２−Ｎに係る第１及び第２の構成指定データは、状態毎に１組のデータとしてコンフィグレーションメモリ１３Ｂに保持される。
【００７６】
図４は、図３に示したコンフィグレーションメモリ１３Ｂ、第１の制御データ用メモリ３１、及び第２の制御データ用メモリ３２の内容を説明するための図である。なお、図４においては、比較参照するために図２に示した内容と等価な内容を一例として示している。
【００７７】
図４（Ａ）はコンフィグレーションメモリ１３Ｂの内容を示している。図４（Ａ）において、ＣＡＤｉ（ｉ＝１〜Ｎの自然数）は対応する演算部２２−ｉに係る第１の構成指定データとしての制御データ用メモリ３１におけるアドレス値であり、ＤＡＤｉ（ｉ＝１〜Ｎの自然数）は対応する演算部２２−ｉに係る第２の構成指定データとしての制御データ用メモリ３２におけるアドレス値である。また、ＣＳＲＤはセレクタ／レジスタ（バス）２１のコンフィグレーションデータである。ＦＵＮＣｋ（ｋ＝１〜１２８の自然数）は、演算処理部２にて所望の回路機能を実現するための状態（回路面）を示している。
【００７８】
また、図４（Ｂ）〜（Ｅ）は演算部２２−ｉに設けられた第１及び第２の制御データ用メモリ３１、３２の内容を示している。図４（Ｂ）は演算部２２−１に設けた第１の制御データ用メモリ３１の内容を示しており、ＣＡＤ１は第１の制御データ用メモリ３１におけるアドレス値であり、ＣＤ１は演算部２２−１のコンフィグレーションデータである。図４（Ｃ）は演算部２２−１に設けた第２の制御データ用メモリ３２の内容を示しており、ＤＡＤ１は第２の制御データ用メモリ３２におけるアドレス値であり、ＣＶＤ１は演算部２２−１の固定値データである。
【００７９】
同様に、図４（Ｄ）は演算部２２−Ｎに設けた第１の制御データ用メモリ３１の内容を示しており、ＣＡＤＮは第１の制御データ用メモリ３１におけるアドレス値であり、ＣＤＮは演算部２２−Ｎのコンフィグレーションデータである。図４（Ｅ）は演算部２２−Ｎに設けた第２の制御データ用メモリ３２の内容を示しており、ＤＡＤＮは第２の制御データ用メモリ３２におけるアドレス値であり、ＣＶＤＮは演算部２２−Ｎの固定値データである。
【００８０】
すなわち、第２の実施形態における再構成可能な半導体装置は、演算処理部２内の各演算部２２−ｉに第１及び第２の制御データ用メモリ３１、３２を設けて、演算部２２−ｉのコンフィグレーションデータＣＤｉと固定値データＣＶＤｉを独立して記憶する。シーケンサー１内のコンフィグレーションメモリ１３Ｂには、各演算部２２−ｉの独立した第１及び第２の制御データ用メモリ３１、３２からコンフィグレーションデータＣＤｉ及び固定値データＣＶＤｉを読み出すための第１及び第２の制御データ用メモリ３１、３２のアドレス値を構成指定データとしてそれぞれ記憶する。
【００８１】
そして、演算処理部２内の状態を切り換える際には、当該状態に対応するセレクタ／レジスタ（バス）２１のコンフィグレーションデータＣＳＲＤ及び各演算部２２−ｉに係る構成指定データとしてのアドレス値ＣＡＤｉ、ＤＡＤｉがコンフィグレーションメモリ１３Ｂから読み出される。読み出されたセレクタ／レジスタ（バス）２１のコンフィグレーションデータＣＳＲＤは、セレクタ／レジスタ（バス）２１に供給され、セレクタ／レジスタ（バス）２１の構成が設定される。
【００８２】
また、読み出されたアドレス値ＣＡＤｉ、ＤＡＤｉは、各演算部２２−ｉに供給される。このアドレス値ＣＡＤｉに基づいて第１の制御データ用メモリ３１からコンフィグレーションデータＣＤｉが読み出されてコンフィグレーションレジスタ３３を介してＡＬＵユニット２６に供給されるとともに、アドレス値ＤＡＤｉに基づいて第２の制御データ用メモリ３２から固定値データＣＶＤｉが読み出されて固定値レジスタ３４を介してＡＬＵユニット２６に供給される。このようにして回路構成が再構成され、演算処理部２で所望の機能が実現される。
【００８３】
なお、第１の制御データ用メモリ３１には、同じ値のコンフィグレーションデータＣＤｉは重複して記憶されず、互いに異なるもののみ記憶される。同様に、第２の制御データ用メモリ３２には、互いに異なる固定値データのみが記憶され、同じ値の固定値データＣＤｉは重複して記憶されない。
【００８４】
以上、第２の実施形態によれば、第１の実施形態と同様の効果が得られ、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、回路規模を削減することができる。また、第１及び第２の制御データ用メモリ３１、３２を演算部２２−ｉ毎に設け、演算部２２−ｉに係るコンフィグレーションデータと固定値データとを独立して記憶するようにしたので、コンフィグレーションデータと固定値データの組み合わせの数は多いが、コンフィグレーションデータと固定値データを個別に考えた場合に種類が少ない場合には、要求される記憶容量をさらに低減することが可能となる。
【００８５】
なお、上記図１及び図２に示した第１の実施形態における構成、及び上記図３及び図４に示した第２の実施形態における構成は、使用するアプリケーション等に応じて適宜選択するようにすれば良い。
【００８６】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
セレクタ／レジスタ（バス）の内部構造を示した再構成可能な半導体装置の構成を図５に示す。この図５において、図１、図１０に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００８７】
セレクタ／レジスタ（バス）２１は、シーケンサー１から供給されるセレクタ／レジスタ（バス）設定情報であるコンフィグレーションデータＣＳＲＤを記憶する設定情報レジスタ回路４１と、設定情報レジスタ回路４１に記憶されたコンフィグレーションデータに基づいて所望の動作を行うセレクタ回路４２を有する。なお、設定情報レジスタ回路４１及びセレクタ回路４２は、多数のレジスタ及び多数のセレクタで構成されている。
【００８８】
図６は、図５に示したコンフィグレーションメモリ１３Ｃの内容を説明するための図であり、演算処理部２の各状態に対応した演算部２２−ｉに係るコンフィグレーションデータ及び固定値データと、セレクタ／レジスタ（バス）２１のコンフィグレーションデータが記憶されている。図１６において、ＣＤＣＶＤｉはビット結合後の演算部２２−ｉに係るコンフィグレーションデータ及び固定値データであり、ＣＳＲＤｐはセレクタ／レジスタ（バス）２１のコンフィグレーションデータである。なお、ｉ、ｐは添え字であり、ｉ＝１〜Ｎ（Ｎは任意）の自然数、ｐ＝１〜Ｑ（Ｑは任意）の自然数である。ＦＵＮＣｋ（ｋ＝１〜１２８の自然数）は、演算処理部２にて所望の回路機能を実現するための状態（回路面）を示している。
【００８９】
なお、図６においては、本発明の第３の実施形態との比較を容易にするために、セレクタ／レジスタ（バス）２１のコンフィグレーションデータをＱ個のグループに分けて各グループに対応するコンフィグレーションデータをＣＳＲＤｐとして示している。
【００９０】
演算部２２−ｉの回路構成を再構成するコンフィグレーションデータに限らず、セレクタ／レジスタ（バス）２１のコンフィグレーションデータも、セレクタ／レジスタ（バス）２１が多数のセレクタ及び多数のレジスタから構成されているため、そのデータ量は膨大である。
【００９１】
そこで、以下に説明する本発明の第３の実施形態における再構成可能な半導体装置は、セレクタ／レジスタ（バス）２１のコンフィグレーションデータの記憶に要する記憶容量の低減を図るものである。具体的には、演算処理部２内にセレクタ／レジスタ（バス）２１のコンフィグレーションデータを記憶する制御データ用メモリを設け、シーケンサー内のコンフィグレーションメモリには状態に対応するセレクタ／レジスタ（バス）２１のコンフィグレーションデータを制御データ用メモリから読み出すための構成指定データを記憶させるようにするものである。
【００９２】
図７は、第３の実施形態における再構成可能な半導体装置の構成例を示す図である。この図７において、図１、図５、及び図１０に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００９３】
シーケンサー１は、状態制御回路１１、状態レジスタ１２、及びコンフィグレーションメモリ１３Ｄを有する。また、演算処理部２は、セレクタ／レジスタ（バス）２１、演算部２２−ｉ、及びデータメモリ２３−ｊを有する。セレクタ／レジスタ（バス）２１は、制御データ用メモリ５１−ｐ、多数のレジスタで構成される設定情報レジスタ回路５２、及び多数のセレクタで構成されるセレクタ回路４２を有する。各演算部２２−ｉは、コンフィグレーションレジスタ２５Ａ及び固定値レジスタ２５Ｂで構成されるレジスタ２５とＡＬＵユニット２６とを有する。
【００９４】
コンフィグレーションメモリ１３Ｄは、演算処理部２内の各演算部２２−１〜２２−Ｎに係るコンフィグレーションデータ及び固定値データＣＤＣＶＤｉと、セレクタ／レジスタ（バス）２１に係る構成指定データを記憶する。この構成指定データは、セレクタ／レジスタ（バス）２１の状態に対応した制御データ用メモリ５１−ｐ内のコンフィグレーションデータを一意に識別可能な情報であり、制御データ用メモリ５１−ｐに記憶されているコンフィグレーションデータの中から、セレクタ／レジスタ（バス）２１の状態に対応したコンフィグレーションデータを指定し読み出すためのものである。なお、以下では一例として、構成指定データは、制御データ用メモリ５１−ｐにおけるアドレスとする。
【００９５】
制御データ用メモリ５１−ｐは、セレクタ／レジスタ（バス）２１に係るコンフィグレーションデータを記憶するメモリである。本実施形態では、セレクタ／レジスタ（バス）２１をＱ個のグループに分け、各グループに対して制御データ用メモリ５１−ｐを配置している。制御データ用メモリ５１−ｐに記憶されているコンフィグレーションデータＣＳＲＤｐは、構成指定データとしてシーケンサー１から供給されるアドレス値ＣＳＲＡＤｐに基づいて読み出され設定情報レジスタ回路５２に出力される。
【００９６】
設定情報レジスタ回路５２は、制御データ用メモリ５１−１〜５１−Ｑから供給されるコンフィグレーションデータＣＳＲＤ１〜ＣＳＲＤＱを一時的に保持する。セレクタ回路４２は、設定情報レジスタ回路５２に保持されたコンフィグレーションデータＣＳＲＤ１〜ＣＳＲＤＱに基づいて、回路構成を再構成して演算処理部２内におけるデータパスを制御し所望の動作を行う。
【００９７】
ここで、コンフィグレーションメモリ１３Ｄに記憶される演算部２２−１〜２２−Ｎに係るコンフィグレーションデータ及び固定値データとセレクタ／レジスタ（バス）２１に係る構成指定データ、及び制御データ用メモリ５１−ｐにそれぞれ記憶されるセレクタ／レジスタ（バス）２１のコンフィグレーションデータは、外部からコンフィグレーションメモリ１３Ｄ及び制御データ用メモリ５１−ｐに動作開始前に予め書き込まれ保持される。また、演算部２２−１〜２２−Ｎに係るコンフィグレーションデータ及び固定値データとセレクタ／レジスタ（バス）２１に係る構成指定データは、状態毎に１組のデータとしてコンフィグレーションメモリ１３Ｄに保持される。
【００９８】
図８は、図７に示したコンフィグレーションメモリ１３Ｄ及び制御データ用メモリ５１−ｐの内容を説明するための図である。なお、図８においては、比較参照するために図６に示したコンフィグレーションメモリ１３Ｃの内容と等価な内容を一例として示している。
【００９９】
図８（Ａ）はコンフィグレーションメモリ１３Ｄの内容を示している。図８（Ａ）において、ＣＤＣＶＤｉ（ｉ＝１〜Ｎの自然数）は対応する演算部２２−ｉに係るコンフィグレーションデータ及び固定値データであり、例えばコンフィグレーションデータＣＤｉと固定値データＣＶＤｉをビット結合したものである（図中の“＆”はビット連結子を示す。）。また、ＣＳＲＡＤｐ（ｐ＝１〜Ｑの自然数）はＱ個のグループに分けたセレクタ／レジスタ（バス）２１に係る構成指定データとしての制御データ用メモリ５１−ｐにおけるアドレス値である。ＦＵＮＣｋ（ｋ＝１〜１２８の自然数）は、演算処理部２にて所望の回路機能を実現するための状態（回路面）を示している。
【０１００】
また、図８（Ｂ）、（Ｃ）は制御データ用メモリ５１−ｐの内容を示しており、ＣＳＲＡＤｐ（ｐ＝１〜Ｑの自然数）は制御データ用メモリ５１−ｐにおけるアドレス値であり、ＣＳＲＤｐはセレクタ／レジスタ（バス）２１のコンフィグレーションデータである。なお、図８（Ｂ）、（Ｃ）には、一例として制御データ用メモリ５１−１、５１−Ｑの内容をそれぞれ示している。ここで、図８（Ｂ）、（Ｃ）に示すように、制御データ用メモリ５１−ｐには、同じ値のコンフィグレーションデータＣＳＲＤｐは重複して記憶せず、互いに異なるもののみ記憶する。
【０１０１】
第３の実施形態における再構成可能な半導体装置は、演算処理部２内のセレクタ／レジスタ（バス）２１をＱ個のグループに分けるとともに、セレクタ／レジスタ（バス）２１に制御データ用メモリ５１−ｐ（ｐ＝１〜Ｑの自然数）を設けて、セレクタ／レジスタ（バス）２１のコンフィグレーションデータＣＳＲＤｐを記憶する。シーケンサー１内のコンフィグレーションメモリ１３Ｄには、制御データ用メモリ５１−ｐからセレクタ／レジスタ（バス）２１の状態に対応するコンフィグレーションデータＣＳＲＤｐを読み出すための制御データ用メモリ５１−ｐのアドレス値を構成指定データとして記憶する。
【０１０２】
そして、演算処理部２内の状態を切り換える際には、当該状態に対応する各演算部２２−ｉに係るコンフィグレーションデータ及び固定値データＣＤＣＶＤｉ及びセレクタ／レジスタ（バス）２１に係る構成指定データとしてのアドレス値ＣＳＲＡＤｐがコンフィグレーションメモリ１３Ｄから読み出される。読み出された各演算部２２−ｉに係るコンフィグレーションデータ及び固定値データＣＤＣＶＤｉは、対応する演算部２２−ｉに供給される。
【０１０３】
また、読み出されたアドレス値ＣＳＲＡＤｐは、制御データ用メモリ５１−ｐに供給され、当該アドレス値ＣＳＲＡＤｐに基づいて制御データ用メモリ５１−ｐからコンフィグレーションデータＣＳＲＤｐが読み出される。制御データ用メモリ５１−１〜５１−Ｑから読み出されたコンフィグレーションデータＣＳＲＤ１〜ＣＳＲＤＱは、設定情報レジスタ５２に保持され、この保持されたコンフィグレーションデータＣＳＲＤ１〜ＣＳＲＤＱに基づいて、セレクタ回路４２が再構成され所望の動作が実行される。
【０１０４】
第３の実施形態によれば、演算処理部２内のセレクタ／レジスタ（バス）２１に制御データ用メモリ５１−ｐを設けてセレクタ／レジスタ（バス）２１のコンフィグレーションデータを記憶し、シーケンサー１内のコンフィグレーションメモリ１３Ｄには、制御データ用メモリ５１−ｐからコンフィグレーションデータを読み出すための構成指定データ（アドレス値）を記憶する。制御データ用メモリ５１−ｐには、同じ値のコンフィグレーションデータＣＳＲＤｐは重複して記憶せずに異なるもののみ記憶し、構成指定データであるアドレス値に応じて選択する。
【０１０５】
これにより、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量を低減することができ、例えばコンフィグレーションメモリ１３Ｄに要求される記憶容量を低減し、回路規模を削減することができる。なお、セレクタ／レジスタ（バス）２１を複数のグループに分ける際の分割数Ｑは、セレクタ／レジスタ（バス）２１のコンフィグレーションデータの記憶に要する記憶容量が少なくなるように決定すれば良い。
【０１０６】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。
図９は、第４の実施形態における再構成可能な半導体装置の構成例を示す図である。この図９において、図１及び図７に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【０１０７】
図９に示すように、第４の実施形態における再構成可能な半導体装置は、上述した第１の実施形態における再構成可能な半導体装置及び第３の実施形態における再構成可能な半導体装置の両方の特徴的構成を備えている。すなわち、第４の実施形態における再構成可能な半導体装置は、演算処理部２内の各演算部２２−ｉに当該演算部２２−ｉに係るコンフィグレーションデータ及び固定値データを記憶する制御データ用メモリ２４を有するとともに、セレクタ／レジスタ（バス）２１にセレクタ／レジスタ（バス）２１に係るコンフィグレーションデータを記憶する制御データ用メモリ５１−ｐを有する。
【０１０８】
シーケンサー１内のコンフィグレーションメモリ１３Ｅには、制御データ用メモリ２４から演算部２２−ｉの状態に対応したコンフィグレーションデータと固定値データとの組を指定し読み出すための構成指定データ（例えば制御データ用メモリ２４のアドレス値ＣＡＤｉ）と、制御データ用メモリ５１−ｐからセレクタ／レジスタ（バス）２１の状態に対応したコンフィグレーションデータを指定し読み出すための構成指定データ（例えば制御データ用メモリ５１−ｐのアドレス値ＣＳＲＡＤｐ）が記憶される。
【０１０９】
第４の実施形態によれば、第１の実施形態と同様の効果が得られるとともに、第３の実施形態と同様の効果が得られ、回路構成を再構成するためのコンフィグレーションデータの記憶に要する記憶容量をさらに低減することができ、回路規模を削減することができる。
【０１１０】
なお、上述した第２の実施形態における再構成可能な半導体装置及び第３の実施形態における再構成可能な半導体装置の両方の特徴的構成を備える再構成可能な半導体装置も同様に構成可能である。その場合にも、第２の実施形態と同様の効果及び第３の実施形態と同様の効果が得られ、コンフィグレーションデータの記憶に要する記憶容量を低減することができ、回路規模を削減することができる。
【０１１１】
また、上述した各実施形態では、演算部２２−ｉに係るコンフィグレーションデータ及び固定値データを記憶するための制御データ用メモリ２４又は第１及び第２の制御データ用メモリ３１、３２を各演算部２２−ｉに設けているが、複数の演算部２２−ｉで１つのグループを形成し、グループ毎にコンフィグレーションデータ及び固定値データを記憶するための制御データ用メモリを設けるようにしても良い。
【０１１２】
また、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【０１１３】
（付記１）第１の構成情報を記憶する第１の制御データ用メモリと、演算器とをそれぞれ有し、上記第１の制御データ用メモリから出力される上記第１の構成情報に応じて回路構成を再構成可能な複数の演算部と、
上記第１の制御データ用メモリから第１の構成情報を出力させるための第１の構成指定情報を記憶し、記憶している上記第１の構成指定情報を上記第１の制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
（付記２）上記第１の構成指定情報は、第１の構成情報が記憶されている領域を示す上記第１の制御データ用メモリのアドレス情報であることを特徴とする付記１記載の半導体装置。
（付記３）上記第１の制御データ用メモリに記憶する第１の構成情報は、互いに異なることを特徴とする付記１記載の半導体装置。
（付記４）上記第１の制御データ用メモリは、上記第１の構成情報とともに、当該第１の構成情報に対応し上記演算器での演算処理に用いる固定値を記憶することを特徴とする付記１記載の半導体装置。
（付記５）上記演算部は、上記演算器での演算処理に用いる固定値を記憶する固定値用メモリを有し、
上記コンフィグレーションメモリは、上記第１の構成指定情報とともに、当該第１の構成指定情報に応じて出力される第１の構成情報に対応する固定値を上記固定値用メモリから上記演算器に出力させるための固定値指定情報を記憶することを特徴とする付記１記載の半導体装置。
（付記６）上記固定値指定情報は、上記第１の構成情報に対応する固定値が記憶されている領域を示す上記固定値用メモリのアドレス情報であることを特徴とする付記５記載の半導体装置。
（付記７）上記固定値用メモリに記憶する固定値は、互いに異なることを特徴とする付記５記載の半導体装置。
（付記８）第２の構成情報を記憶する第２の制御データ用メモリを有し、上記第２の制御データ用メモリから出力される上記第２の構成情報に応じて回路構成を再構成し上記複数の演算部を含む演算処理部内でのデータ授受を制御するセレクタ／レジスタ部を備え、
上記コンフィグレーションメモリは、上記第１の構成指定情報とともに、上記第２の制御データ用メモリから第２の構成情報を出力させるための第２の構成指定情報を記憶し、記憶している上記第２の構成指定情報を上記第２の制御データ用メモリに対して供給することを特徴とする付記１記載の半導体装置。
（付記９）上記セレクタ／レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る第２の構成情報を記憶する上記第２の制御データ用メモリを設けることを特徴とする付記８記載の半導体装置。
（付記１０）上記第２の構成指定情報は、第２の構成情報が記憶されている領域を示す上記第２の制御データ用メモリのアドレス情報であることを特徴とする付記９記載の半導体装置。
（付記１１）上記第２の制御データ用メモリに記憶する第２の構成情報は、互いに異なることを特徴とする付記９記載の半導体装置。
（付記１２）上記セレクタ／レジスタ部は、上記第２の制御データ用メモリから出力される第２の構成情報を保持する設定情報レジスタ回路と、
上記設定情報レジスタ回路に保持された第２の構成情報に応じて、回路構成を再構成し演算処理部内におけるデータパスを制御するセレクタ回路とを有することを特徴とする付記８記載の半導体装置。
（付記１３）演算器をそれぞれ有し、供給される制御情報に応じて回路構成を再構成可能な複数の演算部と、
演算処理データを記憶するデータメモリと、
構成情報を記憶する制御データ用メモリを有し、上記制御データ用メモリから出力される上記構成情報に応じて回路構成を再構成し、上記演算部及びデータメモリにおけるデータの授受を制御するセレクタ／レジスタ部と、
上記制御データ用メモリから構成情報を出力させるための構成指定情報を記憶し、記憶している上記構成指定情報を上記制御データ用メモリに対して供給するコンフィグレーションメモリとを備えることを特徴とする半導体装置。
（付記１４）上記セレクタ／レジスタ部を複数のグループに分割し、各グループ毎に当該グループに係る構成情報を記憶する上記制御データ用メモリを設けることを特徴とする付記１３記載の半導体装置。
（付記１５）上記構成指定情報は、構成情報が記憶されている領域を示す上記制御データ用メモリのアドレス情報であることを特徴とする付記１４記載の半導体装置。（１０）
（付記１６）上記制御データ用メモリに記憶する構成情報は、互いに異なることを特徴とする付記１４記載の半導体装置。
（付記１７）上記セレクタ／レジスタ部は、上記制御データ用メモリから出力される構成情報を保持する設定情報レジスタ回路と、
上記設定情報レジスタ回路に保持された構成情報に応じて、回路構成が再構成されるセレクタ回路とを有することを特徴とする付記１３記載の半導体装置。
【図面の簡単な説明】
【０１１４】
【図１】第１の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図２】図１に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図３】第２の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図４】図３に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図５】再構成可能な半導体装置の構成例を示す図である。
【図６】図５に示したコンフィグレーションメモリの内容を説明するための図である。
【図７】第３の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図８】図７に示したコンフィグレーションメモリ及び制御データ用メモリの内容を説明するための図である。
【図９】第４の実施形態における再構成可能な半導体装置の構成例を示す図である。
【図１０】従来の再構成可能な半導体装置の構成を示す図である。
【図１１】図１０に示したコンフィグレーションメモリの内容を説明するための図である。
【図１２】従来の再構成可能な半導体装置の他の構成を示す図である。
【図１３】図１２に示したコンフィグレーションメモリ及び固定値用メモリの内容を説明するための図である。
【符号の説明】
【０１１５】
１  シーケンサー
２  演算処理部
１１  状態制御回路
１２  状態レジスタ
１３Ａ〜１３Ｇ  コンフィグレーションメモリ
２１  セレクタ／レジスタ
２２  演算部
２３  データメモリ
２４  制御データ用メモリ
２５  レジスタ
２６  演算器ユニット
３１、３２  制御データ用メモリ
３３、３４  レジスタ
４２  セレクタ回路
５１  制御データ用メモリ
５２  設定情報レジスタ回路
【図１】
2008085864.tif 000003
【図２】
2008085864.tif 000004
【図３】
2008085864.tif 000005
【図４】
2008085864.tif 000006
【図５】
2008085864.tif 000007
【図６】
2008085864.tif 000008
【図７】
2008085864.tif 000009
【図８】
2008085864.tif 000010
【図９】
2008085864.tif 000011
【図１０】
2008085864.tif 000012
【図１１】
2008085864.tif 000013
【図１２】
2008085864.tif 000014
【図１３】
2008085864.tif 000015