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