(57)【要約】【課題】  パイプライン型に接続した複数のリコンフィギュラブル回路のそれぞれに、データを演算する実行回路を遅延無く構築することのできる半導体装置の提供。【解決手段】  データ処理前に回路情報の幾つかを記憶し、データ処理時に規則信号に基づいて回路情報の一つを出力する回路情報制御部１０１と、その回路情報で実行回路を構築してデータを演算し演算結果を出力する演算器１００と、その演算結果を保持し次のサイクルで出力するデータレジスタ１０２と、規則信号を保持し次のサイクルで出力する制御レジスタ１０３とをそれぞれ備える複数の演算ユニット１０Ａ〜Ｅを直列に接続した演算パイプラインと、前記演算パイプラインの初段の演算ユニットへの規則信号とデータとを出力するよう制御するコントローラ１１とを備える。【選択図】  図２
2007257549.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の演算のそれぞれを予め定められたサイクル毎に行ってデータ処理がなされる半導体装置であって、
データを入力するデータ線と、規則信号を入力する制御線と、データ処理前に前記演算のそれぞれを実現するための回路情報の幾つかを記憶し、データ処理時のあるサイクル時に前記制御線からの規則信号に基づいて回路情報の一つを出力する回路情報制御部と、前記回路情報制御部から出力される一つの回路情報に従って、演算を行うための実行回路を構築し、前記データ線からのデータを前記実行回路で演算し演算後のデータを出力する演算器と、前記演算器からの演算後のデータを保持し次のサイクルで保持したデータを出力するデータレジスタと、前記規則信号を保持し前記次のサイクルで前記規則信号を出力する制御レジスタとをそれぞれ備える複数の演算ユニットを複数段直列に接続するために、データレジスタのデータを次段の演算ユニットのデータ線へ出力し、且つ、制御レジスタの規則信号を次段の演算ユニットの制御線へ出力するよう接続した演算パイプラインと、
前記あるサイクルに、前記演算パイプラインの初段の演算ユニットの制御線への規則信号とデータ線へのデータとを出力するよう制御するコントローラとを具備したことを特徴とする半導体装置。
【請求項２】
外部装置と接続され、前記演算パイプラインの初段の演算ユニットのデータ線と接続され、最終段の演算ユニットのデータレジスタと接続され、データ処理開始前、データ処理中、またはデータ処理結果のデータを一時的に保持する入出力バッファを具備したことを特徴とする請求項１記載の半導体装置。
【請求項３】
前記回路情報制御部は、前記制御線からの規則信号が無いサイクル中には、記憶された幾つかの回路情報を予め定めた順序で選択する選択制御回路を具備したことを特徴とする請求項１に記載の半導体装置。
【請求項４】
前記選択制御回路は、最大値の次に最小値からカウントするループ型のカウンタを備え、該カウンタがカウントを始める初期値、該カウンタがカウントする最小値および最大値を前記制御線からの規則信号で設定することを特徴とする請求項３に記載の半導体装置。
【請求項５】
複数種類の演算のそれぞれを予め定められたサイクル毎に行ってデータ処理がなされる半導体装置であって、
コントローラと、
データ処理するデータを保持し、前記コントローラからの指示により該データを出力するバッファと、
あるサイクルで、
前記コントローラから出力された規則信号に基づいて、予め保持される前記演算のそれぞれを実現するための回路情報の幾つかから選択した一つの回路情報に従って、演算を行うための第１実行回路を構築し、前記バッファから出力されたデータを前記実行回路で演算し、演算結果データを保持するとともに、前記コントローラからの前記規則信号を保持する第1の演算ユニットと、
次のサイクルで、
前記第１の演算ユニットで保持した規則信号に基づいて、予め保持される前記演算のそれぞれを実現するための回路情報の幾つかから選択した一つの回路情報に従って、演算を行うための第２実行回路を構築し、前記第１の演算ユニットで保持した演算結果データを前記第２実行回路で演算する第２の演算ユニットと、
を備えたことを特徴とする半導体装置。
【請求項６】
コントローラからの規則信号に基づいて、サイクル毎に演算を行う半導体装置であって、
入力される回路情報に従って、演算を行うための実行回路を構築し、入力されるデータを前記実行回路で演算し演算後のデータを出力する演算器と、
前記演算器へ供給する回路情報を複数記憶する回路情報レジスタと、
最大値の次に最小値からサイクル毎にカウントするループ型のカウンタを有し、該カウンタがカウントを始める初期値、該カウンタがカウントする最小値および最大値を含む前記規則信号が前記コントローラから入力されたサイクルは、前記規則信号の初期値で前記一つの回路情報を選択するとともに、前記規則信号の各値を前記カウンタへ設定し、前記規則信号が前記コントローラから入力されないサイクルは、前記カウンタから出力される値で前記一つの回路情報を選択する選択制御装置とを備えたことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的リコンフィギュラブル回路技術を用いた半導体装置に関するものである。
【背景技術】
【０００２】
近年、携帯機器など低コスト・低消費電力が求められる機器においても、機能の複雑化、多様化が進み、このような機器にも高い性能が必要とされてきている。高性能と低消費電力を両立させるためには、専用ハードウェアの製造・開発は避けられない。しかしながら、機能の複雑化・多様化に伴い専用ハードウェアの製造・開発費は年々増大している。この製造・開発費を削減するものとして、動的リコンフィギュラブル回路技術を用いた半導体装置が注目されている。
【０００３】
動的リコンフィギュラブル回路技術を用いた半導体装置は、ＦＰＧＡのようなリコンフィギュラブル回路と、そのリコンフィギャラブル回路に実行させたい回路（以下、単に実行回路と称す）を構築するのに必要な回路情報を複数蓄えておくための記憶装置を備えており、ソフトウェアなどによりあらかじめ決められた規則に従って、動作時に必要な回路情報を読み出して実行回路を構築できる装置である。動作時に実行回路を変えられる点が、ＦＰＧＡを用いた従来の半導体装置とは異なる。
【０００４】
この半導体装置を用いると、ＦＰＧＡ同様に専用ハードウェアの開発費が低減されるだけでなく、実行回路を動的に構築することにより小さな半導体装置上に多様な機能が実現できるため、専用ハードウェアの製造費も低減されると期待されている。
【０００５】
動的リコンフィギュラブル回路技術を用いた半導体装置の例としては、ＮＥＣエレクトロニクスのＤＲＰ（Ｄｙｎａｍｉｃａｌｌｙ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ・・・非特許文献１参照）や、カーネギーメロン大学のＰｉｐｅＲｅｎｃｈ（非特許文献２参照）が挙げられる。
【０００６】
ＮＥＣエレクトロニクスのＤＲＰは、演算を行う基本要素であるＰＥ（Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）が２次元アレイ状に並べられ、その中央に状態遷移コントローラが配置されるという構造を持つ。ＰＥは実行回路を構築可能な演算装置で、ＰＥ内部にある命令メモリに演算の種類やＰＥ間の接続関係といった回路情報が複数格納されている。各ＰＥは状態遷移コントローラから与えられる命令ポインタに従って命令メモリから回路情報を読み出して、動的に実行回路を構築する。
【０００７】
カーネギーメロン大学のＰｉｐｅＲｅｎｃｈでは、演算を行う基本要素である複数のＰＥと、それらを接続するバスから成るｓｔｒｉｐｅが、パイプライン型に接続された構成を取っている。ＰＥは実行回路を構築可能な演算装置で、グローバルバスによりＰｉｐｅＲｅｎｃｈの外部にある制御装置と接続されている。ＰＥの演算の種類やバス接続関係といった回路情報は、ＰｉｐｅＲｅｎｃｈの外部にある制御装置からグローバルバスを介してＰＥに転送され、その情報に従ってＰＥは動的に実行回路を構築する。
【非特許文献１】「リコンフィギュラブルシステム」、オーム社、ページ１８９−２０８
【非特許文献２】“ＰｉｐｅＲｅｎｃｈ：  ａ  ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  ａｒｃｈｉｔｅｃｔｕｒｅ  ａｎｄ  ｃｏｍｐｉｌｅｒ”，  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｖｏｌｕｍｅ  ３３，  Ｉｓｓｕｅ  ４，  Ａｐｒｉｌ  ２０００  Ｐａｇｅ（ｓ）：７０−７７
【発明の開示】
【発明が解決しようとする課題】
【０００８】
動的リコンフィギュラブル回路技術を用いた半導体装置の性能を十分に引き出すためには、実行回路の構築に必要な回路情報が決定され、その回路情報に基づいて実行回路が構築され、そして実行回路の構築された前後に到着する入力データが構築された実行回路により演算されるという、一連の処理にかかる時間を十分に短くする必要がある。
【０００９】
ところが、ＰｉｐｅＲｅｎｃｈではＰＥでの実行回路を構築するために、外部にある制御装置がＰＥへ回路情報を直に転送しているため、制御装置がＰＥでの実行回路の構築に必要な回路情報を決定してから、回路情報のＰＥへの転送が完了するまでの時間が長く、前述の一連の処理に長時間を要するという課題があった。
【００１０】
一方、ＤＲＰではＰＥの内部にある命令メモリに複数の回路情報を保存できるようにし、ＰＥでの実行回路の構築の際には、回路情報を命令メモリから読み出すようにした。その結果、回路情報の転送にかかる時間が短縮され、前述の一連の処理に要する時間が短縮された。
【００１１】
しかしながらＤＲＰでは、まず状態遷移コントローラはＰＥに入力データが到着したというイベントを検出し、そのイベントに従ってＰＥでの実行回路の構築に必要な回路情報を決定してＰＥに命令ポインタを与え、ＰＥはその命令ポインタを受け取ってから回路情報を命令メモリから読み出すという手順で行っている。
【００１２】
そのため、入力データが到着する前に必要な回路情報を決定し、実行回路を構築しておくことができないため、前述の一連の処理に要する時間はまだ十分に短くないという課題がある。
【００１３】
この課題は、動的リコンフィギュラブル回路がＰｉｐｅＲｅｎｃｈと同様の形態で接続され、回路の再構成にＤＲＰの手法が適用された半導体装置においても解決されない。
【００１４】
本発明は、上記に鑑みてなされたものであって、パイプライン型に接続した複数のリコンフィギュラブル回路のそれぞれに、データを演算する実行回路を遅延無く構築することのできる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、複数種類の演算のそれぞれを予め定められたサイクル毎に行ってデータ処理がなされる半導体装置であって、データを入力するデータ線と、規則信号を入力する制御線と、データ処理前に前記演算のそれぞれを実現するための回路情報の幾つかを記憶し、データ処理時のあるサイクル時に前記制御線からの規則信号に基づいて回路情報の一つを出力する回路情報制御部と、前記回路情報制御部から出力される一つの回路情報に従って、演算を行うための実行回路を構築し、前記データ線からのデータを前記実行回路で演算し演算後のデータを出力する演算器と、前記演算器からの演算後のデータを保持し次のサイクルで保持したデータを出力するデータレジスタと、前記規則信号を保持し前記次のサイクルで前記規則信号を出力する制御レジスタとをそれぞれ備える複数の演算ユニットを複数段直列に接続するために、データレジスタのデータを次段の演算ユニットのデータ線へ出力し、且つ、制御レジスタの規則信号を次段の演算ユニットの制御線へ出力するよう接続した演算パイプラインと、前記あるサイクルに、前記演算パイプラインの初段の演算ユニットの制御線への規則信号とデータ線へのデータとを出力するよう制御するコントローラとを具備したことを特徴とする。
【００１６】
また、本発明は、複数種類の演算のそれぞれを予め定められたサイクル毎に行ってデータ処理がなされる半導体装置であって、コントローラと、データ処理するデータを保持し、前記コントローラからの指示により該データを出力するバッファと、あるサイクルで、前記コントローラから出力された規則信号に基づいて、予め保持される前記演算のそれぞれを実現するための回路情報の幾つかから選択した一つの回路情報に従って、演算を行うための第１実行回路を構築し、前記バッファから出力されたデータを前記実行回路で演算し、演算結果データを保持するとともに、前記コントローラからの前記規則信号を保持する第1の演算ユニットと、次のサイクルで、前記第１の演算ユニットで保持した規則信号に基づいて、予め保持される前記演算のそれぞれを実現するための回路情報の幾つかから選択した一つの回路情報に従って、演算を行うための第２実行回路を構築し、前記第１の演算ユニットで保持した演算結果データを前記第２実行回路で演算する第２の演算ユニットと、を備えたことを特徴とする。
【００１７】
また、本発明は、コントローラからの規則信号に基づいて、サイクル毎に演算を行う半導体装置であって、入力される回路情報に従って、演算を行うための実行回路を構築し、入力されるデータを前記実行回路で演算し演算後のデータを出力する演算器と、前記演算器へ供給する回路情報を複数記憶する回路情報レジスタと、最大値の次に最小値からサイクル毎にカウントするループ型のカウンタを有し、該カウンタがカウントを始める初期値、該カウンタがカウントする最小値および最大値を含む前記規則信号が前記コントローラから入力されたサイクルは、前記規則信号の初期値で前記一つの回路情報を選択するとともに、前記規則信号の各値を前記カウンタへ設定し、前記規則信号が前記コントローラから入力されないサイクルは、前記カウンタから出力される値で前記一つの回路情報を選択する選択制御装置とを備えたことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、パイプライン型に接続した複数のリコンフィギュラブル回路のそれぞれに、データを演算する実行回路を遅延無く構築することのできるようになった。その結果、演算器が回路を再構成するのに要する時間を演算器が入力データを待つ時間に隠蔽することができるため、動的リコンフィギュラブル回路をパイプライン型に接続した半導体装置の情報処理速度が向上するという効果も期待できる。
【発明を実施するための最良の形態】
【００１９】
以下に、本実施の形態の半導体装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００２０】
図１は、本実施の形態にかかる半導体装置１の全体構成を示す図である。半導体装置１は、プロセッサなどの外部装置からの指示によりデータ処理を行うものであって、５つの演算ユニット１０Ａ〜Ｅとコントローラ１１と入出力バッファ１２とを有している。なお、ここでは、データ処理とは、個々の演算を行った一連の演算の総称のこととする。データ処理を実現する５つの演算ユニット１０Ａ〜Ｅは、データ、回路情報、再構成規則を示す規則信号（以下、単に再構成規則と称す）が演算ユニット１０Ａから演算ユニット１０Ｅへ１サイクルずつ伝搬する、パイプライン型に接続されている。なお、データは各演算ユニット１０Ａ〜Ｅで順次演算された演算結果が伝搬するものであり、回路情報と再構成規則とは各演算ユニット１０Ａ〜Ｅの全てに伝搬するが特定のユニット（一つでなくても良い）でのみ利用されるものである。また、サイクルとは、同期式回路において記憶素子部の値が変化してから、次に記憶素子部の値が変化するまでの最小時間単位である。コントローラ１１は演算ユニット１０Ａと入出力バッファ１２に接続している。また、演算ユニット１０Ａと１０Ｅは入出力バッファ１２に接続している。
【００２１】
入出力バッファ１２は、半導体装置１がデータ処理の開始時に与えるデータや、半導体装置１によるデータ処理の中間結果または最終結果を一時的に保持するものである。また、入出力バッファ１２は、データ処理の開始前にプロセッサなどの外部装置により初期の入力データが書き込まれる。また、半導体装置１は、入出力バッファ１２に保持されたデータ処理の中間結果を再び入力データとして、データ処理を続けることもできる。入出力バッファ１２に保持された最終結果は、プロセッサなどの外部装置により入出力バッファ１２から読み出される。
【００２２】
コントローラ１１は、データ処理の開始前に演算ユニット１０Ａ〜Ｅの中にある記憶部に回路情報を予め設定する機能と、コントローラ１１の中にある記憶部に記録されたコードに従って、サイクルごとに再構成規則を演算ユニット１０Ａに送る機能と、その同じコードに従って、サイクルごとに入出力バッファ１２からのデータ読み出しと入出力バッファ１２へのデータ書き込みを制御する機能を持つ。
【００２３】
コントローラ１１にはデータ処理の開始前に、演算ユニット１０Ａ〜Ｅの初期設定に必要な回路情報と、再構成規則と、コントローラ１１の動作を規定するコードが、プロセッサなどの外部装置により送られる。また、コントローラ１１のデータ処理の開始はプロセッサなどの外部装置により通知され、処理が完了したらコントローラ１１はデータ処理の完了をプロセッサなどの外部装置に通知する。
【００２４】
演算ユニット１０Ａ〜Ｅのそれぞれは、個々の演算を行うための実行回路を構築可能な演算器を持つユニットで、コントローラ１１からの指示により演算器に実行回路を構築しながら、入力データを演算して結果を出力するという機能を持つ。なお、本実施の形態にかかる演算ユニット１０Ａ〜Ｅの数は５つであるが、これに限らず、半導体装置１に必要とされる処理能力に応じて変更してもよい。
【００２５】
図２は、演算ユニット１０Ａ〜Ｅのより詳細な構成を示す図である。演算ユニット１０Ａ〜Ｅのそれぞれは、演算器１００と、回路情報制御装置１０１と、データパイプラインレジスタ１０２と、制御パイプラインレジスタ１０３とを有する。演算器１００の出力はデータパイプラインレジスタ１０２に接続し、また、回路情報制御装置１０１は演算器１００に接続している。
【００２６】
演算器１００は、個々の演算を行うためのＨ／Ｗの実行回路を構築可能な演算器で、回路情報制御装置１０１から与えられる回路情報に従って実行回路を構築しながら、入力データを演算してデータパイプラインレジスタ１０２に書き込む。
【００２７】
ここで、演算器１００の一例を図３に示す。演算器１００は８ビットのＡＬＵとシフタをそれぞれ４つずつ備えており、３２ビットの２入力に対して、8ビット単位で異なる演算を行うよう実行回路を構築できる。この演算結果を、３２ビットの出力の一つとする。また、演算器１００はクロスバーを備え、シフタからの８ビット出力４つの配置順を変更した結果を３２ビット出力の一つとする。
【００２８】
回路情報は８ビット演算あたり、ＡＬＵの入力の一つを直値とするかどうかを決める入力モードが１ビット、直値が８ビット、ＡＬＵ設定が２ビット、シフト値が３ビット、クロスバー設定が２ビットの計１６ビットからなり、演算器１００全体では６４ビットの回路情報となる。
【００２９】
回路情報制御装置１０１は、複数の回路情報からサイクルごとに１つの回路情報を選択して演算器１００に転送する。回路情報の選択は、その回路情報が保存されている回路情報制御装置１０１の記憶部の位置を示す番号を選択することにより行われる。この選択のための規則は、選択する記憶部の位置を示す番号の繰り返しパターンにより定義される。この規則を再構成規則と呼ぶ。再構成規則は、コントローラ１１から演算ユニット１０に送出され、回路情報制御装置１０１および制御パイプラインレジスタ１０３に一時保持される。図２の説明に戻る。
【００３０】
演算ユニット１０Ａの演算器１００はデータ線を介し、入出力バッファ１２に接続し、演算ユニット１０Ｂ〜Ｅの演算器１００は、それぞれデータ線を介し、前段の演算ユニット１０Ａ〜Ｄのデータパイプラインレジスタ１０２にそれぞれ接続し、演算ユニット１０Ｅのデータパイプラインレジスタ１０２はデータ線を介し、入出力バッファ１２に接続することにより、演算ユニット１０Ａ〜Ｅはデータを演算するためのデータパイプラインを構成している。
【００３１】
また、コントローラ１１は演算ユニット１０Ａの回路情報制御装置１０１に接続し、演算ユニット１０Ｂ〜Ｅの回路情報制御装置１０１はそれぞれ前段の演算ユニット１０Ａ〜Ｄの回路情報制御装置１０１に接続することにより、演算ユニット１０Ａ〜Ｅは回路情報を予め設定するためのパイプラインを構成している。
【００３２】
さらに、コントローラ１１は制御線を介し、演算ユニット１０Ａの制御パイプラインレジスタ１０３に接続し、演算ユニット１０Ｂ〜Ｅの制御パイプラインレジスタ１０３はそれぞれ制御線を介し、前段の演算ユニット１０Ａ〜Ｄの制御パイプラインレジスタ１０３に接続することにより、回路情報制御装置１０１の動作を制御するための制御パイプラインを構成している。なお、演算ユニット１０Ｅの制御パイプラインレジスタ１０３は省略してもよい。
【００３３】
例えばあるサイクルに演算ユニット１０Ａの演算器１００が出力したデータは、そのサイクルにはデータパイプラインレジスタ１０２に格納され、次のサイクルに演算ユニット１０Ｂの演算器１００の入力になるというように、演算ユニット１０Ａ〜Ｅの間を１サイクルずつ転送される。このような転送を、パイプライン式転送と呼ぶ。
【００３４】
コントローラ１１から送られる回路情報や再構成規則も、同様に演算ユニット１０Ａ〜Ｅの間をパイプライン式に転送される。
【００３５】
次に、本実施例の半導体装置１における処理の開始から終了までの流れの概要を説明する。半導体装置１の処理は、データ処理前の初期化処理とデータ処理との２つに大別できる。
【００３６】
まず、初期化処理について説明する。
【００３７】
プロセッサなどの外部装置により、半導体装置１への入力データが入出力バッファ１２に格納される。また、外部装置により、コントローラ１１の動作を規定するコードや再構成規則および演算ユニット１０で使用される回路情報が、コントローラ１１の中の記憶部に格納される。
【００３８】
次に、外部装置がコントローラ１１に処理の開始を通知する。コントローラ１１は通知を受けて、まず回路情報を演算ユニット１０Ａ〜Ｅにパイプライン式に転送し、演算ユニット１０Ａ〜Ｅの回路情報制御装置１０１を初期化する。回路情報は、演算ユニット１０Ａ〜Ｅの回路情報制御装置１０１の中の記憶部に格納される。初期化処理において行われる処理は以上である。
【００３９】
次に、データ処理について説明する。
【００４０】
コントローラ１１は内部の記憶部に格納されたコードを毎サイクル解釈し、それに従ってサイクルごとに再構成規則を演算ユニット１０にパイプライン式に転送する。また、コントローラ１１は、同じコードに従って、サイクルごとに入出力バッファ１２へデータ読み出しのための制御情報と、データ書き込みのための制御情報を送る。
【００４１】
入出力バッファ１２は、コントローラ１１からのデータ読み出しの要求を受け取るたびに、入出力バッファ１２からデータを読み出し、演算ユニット１０Ａにパイプライン式に転送する。また、データ書き込みのための要求を受け取るたびに、その情報に従って演算ユニット１０Ｅから出力されたデータを入出力バッファ１２に書き込む。
【００４２】
演算ユニット１０は、再構成規則を受け取るたびに、回路情報制御装置１０１の設定を再構成規則により変更する。再構成規則を受け取った場合には、回路情報制御装置１０１は新しい再構成規則に従って回路情報を演算器１００に与える。
【００４３】
演算ユニット１０が再構成規則を受け取らなかった場合には、回路情報制御装置１０１はその時点における再構成規則の設定により示される回路情報選択の値（最後に設定された再構成規則に基づいて更新された値）に従って、そのサイクルに選択すべき回路情報を決定し、その回路情報を演算器１００に与える。この決定は、例えば再構成規則が０、１の繰り返しというパターンであれば、前のサイクルに記憶部の位置番号０にある回路情報を選んでいれば、このサイクルでは位置番号１にある回路情報を選択し、前のサイクルに記憶部の位置番号１にある回路情報を選んでいれば、このサイクルでは位置番号０にある回路情報を選ぶ、というようにして行われる。
【００４４】
そして、演算ユニット１０では、回路情報制御装置１０１が与える回路情報に従って演算器１００での実行回路が構築され、演算器１００の入力データに対する実行回路による演算が行われる。演算結果は、データパイプラインレジスタ１０２を介してパイプライン式に転送される。
【００４５】
コントローラ１１が全てのコードを解釈し終えた時点で、コントローラ１１はプロセッサなどの外部装置に処理の完了を通知し、データ処理は終了する。
【００４６】
プロセッサなどの外部装置は処理の完了通知を受けてから規定サイクル以上たった後に、入出力バッファ１２に蓄えられた半導体装置１の演算結果を読み出す。この規定サイクルは、演算ユニット１０の数と、入出力バッファ１２へのデータ書き込みに要するサイクル数を加えたサイクル数になる。
【００４７】
以上が、本実施例の半導体装置１におけるデータ処理の開始から終了までの流れである。
【００４８】
次に、以上のような半導体装置１におけるデータ処理を実現する、コントローラ１１と演算ユニット１０の回路情報制御装置１０１の詳細な実施例を、データ処理前の初期化処理とデータ処理に分けて説明する。
【００４９】
まず、初期化処理におけるコントローラ１１および回路情報制御装置１０１の詳細な動作について説明する。
【００５０】
図４はコントローラ１１の実現例を示す図である。コントローラ１１は制御部１１Ａと実行制御メモリ１１Ｂと回路情報メモリ１１Ｃと再構成規則メモリ１１Ｅとデコーダ１１Ｆとを持つ。制御部１１Ａは実行制御メモリ１１Ｂと回路情報メモリ１１Ｃとデコーダ１１Ｆとに接続する。実行制御メモリ１１Ｂは再構成規則メモリ１１Ｅに接続している。
【００５１】
実行制御メモリ１１Ｂにはコントローラ１１で実行されるコードが記録される。回路情報メモリ１１Ｃには初期化処理時に演算ユニット１０に送られる回路情報が記録される。また、再構成規則メモリ１１Ｅにはデータ処理時に演算ユニット１０に送られる再構成規則が記録される。
【００５２】
制御部１１Ａは、初期化処理においては回路情報メモリ１１Ｃから回路情報を順に読み出し、回路情報制御装置１０１へ転送する機能を有する。またデコーダ１１Ｆは、回路情報Ｖａｌｉｄ信号と回路情報アドレスを生成する機能を有する。
【００５３】
回路情報Ｖａｌｉｄ信号は、コントローラ１１から転送された回路情報を、演算ユニット１０Ａ〜Ｅのどの回路情報制御装置１０１に格納するかを示す信号である。また、回路情報アドレスは、回路情報制御装置１０１内の記憶部のどの位置に回路情報を書き込むかを示す番号（アドレス）である。
【００５４】
データ処理前の初期化処理においては、まず実行制御メモリ１１Ｂに記録されるコードと、回路情報メモリ１１Ｃに記録される回路情報と、再構成規則メモリ１１Ｅに記録される再構成規則が、プロセッサなどの外部装置によりコントローラ１１に転送され、それぞれのメモリＢ，Ｃ，Ｅに記録される。
【００５５】
これらのメモリＢ，Ｃ，Ｅに記録される情報は、既存のプロセッサと同様にコンパイラなどによりあらかじめ生成され、プロセッサなどの外部装置の記憶装置に保存されており、この記憶装置から情報を読み出してコントローラ１１に転送する。
【００５６】
次に、プロセッサなどの外部装置から処理の開始が通知されると、制御部１１Ａは回路情報メモリ１１Ｃに、アドレス０から最終アドレスまでを順に発行し、それに従って回路情報メモリ１１Ｃからは指定アドレスにある回路情報が出力される。出力された回路情報は、回路情報Ｖａｌｉｄ信号と、回路情報アドレスとともに回路情報制御装置１０１へ送出される。
【００５７】
図５は、デコーダ１１Ｆが制御部１１Ａから発行される回路情報メモリ１１Ｃのアドレスをデコードし、回路情報アドレスと回路情報Ｖａｌｉｄ信号を生成するための規則の一例を示す図である。この図では、演算ユニット１０Ａ〜Ｅは回路情報制御装置１０１にそれぞれ４つの回路情報を格納できるものとしている。
【００５８】
デコーダ１１Ｆは、回路情報メモリ１１Ｃへの５ビットのアドレスの下位２ビットを回路情報アドレスとし、また上位３ビットで示される値のうち小さい順に演算ユニット１０Ａ〜Ｅを示す値として割り当て、所望の演算ユニットへ回路情報が格納されるよう回路情報Ｖａｌｉｄ信号が生成される。  つまり、回路情報メモリ１１Ｃのアドレス０からアドレス３には演算ユニット１０Ａの回路情報制御装置１０１が備える記憶部のアドレス０から３に格納される回路情報を順に記録し、アドレス４からアドレス７には演算ユニット１０Ｂの回路情報制御装置１０１が備える記憶部のアドレス０から３に格納される回路情報を順に記録し、という順序で演算ユニット１０Ａ〜Ｅの全ての回路情報を格納していれば、このデコード規則により生成された回路情報アドレスと回路情報Ｖａｌｉｄ信号を回路情報に付加して演算ユニット１０に送ることで、回路情報は誤りなく演算ユニット１０Ａ〜Ｅの回路情報制御装置１０１に格納される。
【００５９】
また、全ての回路情報が送出された後には、制御部１１Ａは回路情報メモリ１１Ｃの最終アドレス＋１を出力し続けることにより、以後のサイクルにおいて回路情報が回路情報制御装置１０１に格納されないことを保証する。
【００６０】
次に、コントローラ１１から送出された回路情報が、演算ユニット１０の回路情報制御装置１０１に格納される動作について説明する。
【００６１】
図６は、回路情報制御装置１０１のより詳細な実施例を示す図である。回路情報制御装置１０１は回路情報レジスタ１０１１と再構成制御装置１０１２と再構成制御レジスタ１０１３とを有する。回路情報レジスタ１０１１は再構成制御装置１０１２に接続し、再構成制御装置１０１２は再構成制御レジスタ１０１３に接続する。
【００６２】
また、回路情報レジスタ１０１１はコントローラ１１またはパイプライン前段の演算ユニット１０の回路情報レジスタ１０１１と接続して回路情報を予め設定するためのパイプラインを構成している。
【００６３】
また、再構成制御レジスタ１０１３はコントローラ１１またはパイプライン前段の制御パイプラインレジスタ１０３と接続して、再構成制御装置１０１２の動作を制御するためのパイプラインを構成している。
【００６４】
再構成制御装置１０１２および再構成制御レジスタ１０１３は、初期化処理においては使用されないため、これらの詳細についてはデータ処理時の詳細な説明において述べることとし、ここでは、コントローラ１１から送出された回路情報が回路情報レジスタ１０１１に格納される動作について説明する。
【００６５】
図７は回路情報レジスタ１０１１の実現例を示す図である。回路情報レジスタ１０１１には複数の回路情報を格納するラッチ１０１１Ａ〜Ｄがある。ラッチ１０１１Ａ〜Ｄの数はこの例では４を示しているが、必要に応じて増減させても良い。
【００６６】
ラッチ１０１１Ａ〜Ｄへの書き込みはコントローラ１１からパイプライン式に行われる。コントローラ１１から回路情報Ｖａｌｉｄ信号１０１１Ｈ、回路情報アドレス１０１１Ｉ、回路情報１０１１Ｊが一組の信号として与えられ、回路情報設定パイプラインレジスタ１０１１Ｅを経由して回路情報を設定するためのパイプラインが構成されている。
【００６７】
回路情報Ｖａｌｉｄ信号１０１１Ｈは、本実施例では５本の信号線から成り、回路情報レジスタ１０１１が存在する演算ユニット１０ごとに異なる信号線が割り当てられる。以下の説明では、この割り当てられる１本の信号線を参照Ｖａｌｉｄ信号と呼ぶ。
【００６８】
回路情報アドレス１０１１Ｉ、回路情報１０１１Ｊは、参照Ｖａｌｉｄ信号が１の時のみ有効な信号である。
【００６９】
回路情報アドレス１０１１Ｉはどのラッチ１０１１Ａ〜Ｄに回路情報１０１１Ｊが書き込まれるかを示す信号で、この例では４つのラッチ１０１１Ａ〜Ｄが存在するので２ビット必要で、００、０１、１０、１１がそれぞれラッチ１０１１Ａ、ラッチ１０１１Ｂ、ラッチ１０１１Ｃ、ラッチ１０１１Ｄに回路情報１０１１Ｊを書き込むことを示している。
【００７０】
デコーダ１０１１Ｆは参照Ｖａｌｉｄ信号と回路情報アドレス１０１１Ｉより回路情報１０１１Ｊを書き込むラッチ１０１１Ａ〜Ｄを指定する。
【００７１】
なお、データ処理においては、再構成制御装置１０１２の出力によりラッチ１０１１Ａ〜Ｄの一つが選択されて、演算器１００に与えられる。
【００７２】
回路情報レジスタ１０１１への書き込み方法は一例を示したのみであり、他の実現方法で実現可能である。例えば、回路情報アドレス１０１１Ｉを持たずに各回路情報レジスタ１０１１にカウンタを持たせ、カウンタは参照Ｖａｌｉｄ信号が１になるたびにインクリメントさせ、カウンタの値で示されるラッチ１０１１Ａ〜Ｄに回路情報１０１１Ｊを書き込む方法がある。また、全ての回路情報レジスタ１０１１のラッチ１０１１Ａ〜Ｄをシリアルにスキャンチェーンで結合し、シリアルデータを送って設定する方法も考えられる。
【００７３】
また、本実施例で示した方法では、回路情報は演算ユニット１０への入力データや再構成規則と同様にパイプライン式に書き込まれるため、演算ユニット１０に入力データが到達する直前に、コントローラ１１がその入力データの演算に必要な回路情報を送ることにより、データ処理が開始した後に回路情報レジスタ１０１１を更新することも可能である。以上が半導体装置１における初期化処理のより詳細な動作に関する説明である。
【００７４】
次に、半導体装置１におけるデータ処理のより詳細な動作に関して説明する。データ処理においては、図４に示したコントローラ１１の制御部１１Ａは、実行制御メモリ１１Ｂに格納されているコードをアドレス０から順に解釈し、その内容に従って動作を行う。
【００７５】
図８は実行制御メモリ１１Ｂに格納されるコードの構造例を示したものである。この例では、コードは入力アドレスと、入力アドレスが有効かどうかを示すＶａｌｉｄ０ビットと、再構成規則ＩＤと、再構成規則ＩＤが有効かどうかを示すＶａｌｉｄ１ビットと、出力アドレスＩＤと、出力アドレスＩＤが有効かどうかを示すＶａｌｉｄ２ビットとからなる。コードは、１サイクルで１ラインずつ実行される。
【００７６】
制御部１１Ａは、入出力バッファ１２にデータ読み出しのための制御情報を送出する際には、コードから入力アドレスとＶａｌｉｄ０ビットを解釈し、それらを入出力バッファ１２に送出する。入出力バッファ１２は、Ｖａｌｉｄ０ビットが１の場合には入力アドレスが示す位置にあるデータを読んで、演算ユニット１０Ａに送出する。
【００７７】
制御部１１Ａは、入出力バッファ１２にデータ書き込みのための制御情報を送出する際には、コードから出力アドレスとＶａｌｉｄ２ビットを解釈し、それらを入出力バッファ１２に送出する。それらの制御情報は、演算ユニット１０の数に相当するサイクル数の後に入出力バッファ１２に到達する。入出力バッファ１２は、Ｖａｌｉｄ２ビットが１の場合には、演算ユニット１０Ｅのデータパイプラインレジスタ１０２にあるデータを出力アドレスが示す位置に書き込む。
【００７８】
制御部１１Ａは、再構成規則を演算ユニット１０にパイプライン式に転送する際には、コードから再構成規則ＩＤとＶａｌｉｄ１ビットを解釈する。そして、再構成規則ＩＤをアドレスとして再構成規則メモリ１１Ｅを参照して再構成規則を読み出し、その再構成規則をＶａｌｉｄ１ビットとともに演算ユニット１０Ａの制御パイプラインレジスタ１０３に送出する。
【００７９】
なお、コントローラ１１がデータ読み出しのための制御情報を入出力バッファ１２へ送出してから演算ユニット１０Ａに入力データが届くまでの時間と、コントローラ１１が再構成規則とＶａｌｉｄ１ビットを送出してから、それらが演算ユニット１０Ａの制御パイプラインレジスタ１０３に届くまでの時間は等しくなるよう制御される必要がある。
【００８０】
そのために、入出力バッファ１２からのデータ読み出しに数サイクルかかるのであれば、それに合わせて、図４のようにタイミング調整のためのラッチ１１Ｇを数サイクル分挿入し、再構成規則とＶａｌｉｄ１ビットが演算ユニット１０Ａに届くまでの時間も数サイクル遅れるようにする。
【００８１】
このようにして制御部１１Ａは、実行制御メモリ１１Ｂにあるコードをアドレス０から順に解釈していき、全てのコードを解釈し終えたら、プロセッサなどの外部装置に処理の完了を通知して動作を停止する。以上が、データ処理におけるコントローラ１１のより詳細な動作である。
【００８２】
次に、データ処理時において、演算ユニット１０が受け取った再構成規則に従って演算器１００に実行回路を構築しながら、入力データを演算していく際の動作をより詳細に説明する。まず、コントローラ１１から送出される再構成規則に従い、演算ユニット１０が備える回路情報制御装置１０１の設定が変化し、それに伴って回路情報制御装置１０１から演算器１００に与える回路情報が変化する際の動作をより詳細に説明する。
【００８３】
先述の通り、回路制御装置１０１の詳細な構成は図６の通りである。回路情報レジスタ１０１１には、初期化処理により複数の回路情報が格納されている。再構成制御レジスタ１０１３は、コントローラ１１から送られる再構成規則を格納するためのレジスタである。再構成制御装置１０１２は回路情報レジスタ１０１１から回路情報を読み出して演算器１００に送出するという制御を行う装置で、再構成制御レジスタ１０１３に格納される再構成規則に従って回路情報を読み出す。
【００８４】
図９は再構成制御装置１０１２および再構成制御レジスタ１０１３の詳細な例を示す図である。
【００８５】
まず、コントローラ１１または前段よりＶａｌｉｄ１ビット１０１３Ｇと、再構成規則として最大値信号１０１３Ｈ、最小値信号１０１３Ｉおよび初期値信号１０１３Ｊが与えられる。Ｖａｌｉｄ１ビット１０１３Ｇは再構成規則が有効なサイクルだけ１となり、他の場合では０となる。再構成規則は制御パイプラインレジスタ１０３を経由して次のサイクルでは次段の再構成規則となることで、再構成規則を制御する制御パイプラインを構成している。
【００８６】
最大値信号１０１３Ｈ、最小値値信号１０１３Ｉはそれぞれ最大値レジスタ１０１３Ａ、最小値レジスタ１０１３Ｂに格納される。マルチプレクサ１０１３Ｅおよびマルチプレクサ１０１３Ｆは、それぞれ最大値レジスタ１０１３Ａ、最小値レジスタ１０１３Ｂが、Ｖａｌｉｄ１ビット１０１３Ｇが１の時のみ更新されるようにする。
【００８７】
マルチプレクサ１０１３ＤはＶａｌｉｄ１ビット１０１３Ｇが１の時は初期値信号１０１３Ｊの値を、Ｖａｌｉｄ１ビット１０１３Ｇが０の時には最小値レジスタ１０１３Ｂに記憶されていた値を出力する。
【００８８】
再構成制御装置１０１２においては、Ｖａｌｉｄ１ビット１０１３Ｇが１の時ＯＲロジック１０１２Ｄが１を出力するので、マルチプレクサ１０１３Ｄの出力がマルチプレクサ１０１２Ｃを経由することで、状態レジスタ１０１２Ａに初期値信号１０１３Ｊの値が記憶される。
【００８９】
状態レジスタ１０１２Ａの値は回路情報の参照位置として回路情報レジスタ１０１１に与えられる。
【００９０】
状態レジスタ１０１２Ａの値は加算器１０１２Ｂを通してインクリメントされるか、または以下の条件のときは最小値レジスタ１０１３Ｂの値がロードされる。この条件は、状態レジスタ１０１２Ａの値が最大値レジスタ１０１３Ａと比較器１０１２Ｅによって比較され一致した場合で、この場合にはＯＲロジック１０１２Ｄの出力が１になり、マルチプレクサ１０１２Ｃはマルチプレクサ１０１３Ｄの値を入力とする。
【００９１】
以上のように再構成制御装置１０１２から回路情報レジスタ１０１１への出力は、初期値信号の値からインクリメントを始め、最大値レジスタ１０１３Ａと同じ値になったとき最小値レジスタ１０１３Ｂの値に戻る動作を行う。
【００９２】
再構成制御装置１０１２と再構成制御レジスタ１０１３の実施例は一例であり、半導体装置１の用途に従ってより複雑な形態で実施することや、より単純な形態で実施することも考えられる。
【００９３】
例えば、再構成制御装置１０１２のより複雑な実施の形態として、再構成制御装置１０１２はレジスタを備え、そのレジスタの値はコントローラ１１から更新できるような構成とし、加算器１０１２Ｂの入力値として１の代わりにそのレジスタの値を入力することで、１サイクルに増加する状態レジスタ１０１２Ａの値を２以上に設定できるようにしてもよい。
【００９４】
また、再構成制御装置１０１２のより単純な実施の形態として、再構成制御装置１０１２は状態レジスタ１０１２Ａとマルチプレクサ１０１２Ｃのみを備え、マルチプレクサ１０１２ＣはＶａｌｉｄ１ビットが１の場合には再構成規則が定める最小値を出力し、Ｖａｌｉｄ１ビットが０の場合には状態レジスタ１０１２Ａの値を出力するようにしてもよい。この形態においては、再構成規則は最小値だけでよく、また再構成制御レジスタ１０１３は必要ない。
【００９５】
図１０はコントローラ１１により再構成制御レジスタ１０１３が更新され、それに従って再構成制御装置１０１２の出力が変わる動作を説明する図である。
【００９６】
サイクル１において、コントローラ１１は、１に設定されたＶａｌｉｄ１ビットと、再構成規則ｓ０を送出する。この再構成規則は、再構成制御装置１０１２が０、１の出力を交互に繰り返すような設定であるとする。図９の実現例では、最大値信号１０１３Ｈを１、最小値信号１０１３Ｉを０、初期値信号１０１３Ｊを０にするという再構成規則になる。
【００９７】
なお、サイクル２以後では、コントローラ１１はＶａｌｉｄ１ビットを０に設定しているものとする。
【００９８】
サイクル２において、演算ユニット１０Ａの再構成制御レジスタ１０１３に再構成規則ｓ０が格納される。それと同時に、演算ユニット１０Ａの再構成制御装置１０１２の設定が更新され、０が出力されるようになる。
【００９９】
演算ユニット１０Ｂ〜Ｅの再構成制御レジスタ１０１３は制御パイプラインレジスタ１０３を介してパイプライン接続されているため、サイクル２では、まだ演算ユニット１０Ｂ〜Ｅの再構成制御レジスタ１０１３は変更されない。
【０１００】
サイクル３においては、演算ユニット１０Ｂの再構成制御レジスタ１０１３および再構成制御装置１０１２の設定が更新され、０が出力される。一方で、演算ユニット１０Ａの再構成制御装置１０１２は１を出力する。
【０１０１】
サイクル４には、演算ユニット１０Ｃの再構成制御レジスタ１０１３および再構成制御装置１０１２の設定が更新され、０が出力される。演算ユニット１０Ａの再構成制御装置１０１２は０を出力し、演算ユニット１０Ｂの再構成制御装置１０１２は１を出力する。
【０１０２】
このように、再構成規則が制御パイプラインを通って演算ユニット１０に到達するサイクルに、演算ユニット１０は再構成制御レジスタ１０１３と再構成制御装置１０１２の設定を更新し、再構成制御装置１０１２は再構成規則が示す初期値を出力する。以後のサイクルでは、再構成制御レジスタ１０１３が示す規則に従った値が再構成制御装置１０１２から出力される。
【０１０３】
次に、演算ユニット１０が受け取った再構成規則に従って演算器１００の回路構成を変えながら、入力データに対して演算を実行し、演算結果をデータパイプラインレジスタ１０２に書き込む動作例を説明する。なお、説明を容易にするため、半導体装置１は２つの演算ユニット１０Ａ、１０Ｂのみを備えるものとする。
【０１０４】
図１１は、上記動作例で行われる演算の性質を説明するためのものである。動作例では図１１の通り、３つのデータ「ｄ０」、「ｄ１」、「ｄ２」に対して「ｅ０」、「ｅ１」、「ｅ２」、「ｅ３」という演算を順に行う処理と、異なる３つのデータ「ｄ３」、「ｄ４」、「ｄ５」に対して、「ｅ４」、「ｅ５」という演算を順に行うという処理が実行される。
【０１０５】
図１２は、図１１に示す演算の回路情報が演算ユニット１０Ａ、１０Ｂの回路情報レジスタ１０１１のどの位置に格納されるかを示す図である。回路情報「Ａ０」〜「Ａ２」はそれぞれ図１１の演算「ｅ０」、「ｅ４」、「ｅ２」を行う回路の回路情報であり、「Ｂ０」〜「Ｂ２」はそれぞれ「ｅ１」、「ｅ５」、「ｅ３」を行う回路の回路情報である。
【０１０６】
データが演算ユニット１０Ａ、１０Ｂのパイプラインを流れる順番と演算の順序が一致するように、「Ａ０」〜「Ａ２」は演算ユニット１０Ａ、「Ｂ０」〜「Ｂ２」は演算ユニット１０Ｂに割り当てられ、かつ「Ａ０」、「Ｂ０」の組、「Ａ１」、「Ｂ１」の組、「Ａ２」、「Ｂ２」の組はそれぞれ回路情報レジスタ１０１１の同じ位置になるような配置とする。
【０１０７】
図１３は、動作例においてコントローラ１１が送出する再構成規則を示す図である。「ｓ０」は出力０を繰り返す再構成規則、「ｓ１」は初期出力１で１、０を交互に繰り返す再構成規則、「ｓ２」は初期出力２で２、１を交互に繰り返す再構成規則、「ｓ３」は出力２を繰り返す再構成規則である。
【０１０８】
図１４はデータ処理において半導体装置１が図１１に示す演算を行う際の動作を説明する図である。この例では、コントローラ１１がデータ読み出しのための制御情報を入出力バッファ１２に送出したサイクルに、入出力バッファ１２からデータが読み出され演算ユニット１０Ａに入力されるものとしている。
【０１０９】
サイクル１に、コントローラ１１は再構成規則「ｓ０」を送出する。また、コントローラ１１は入出力バッファ１２を介してデータ「ｄ０」を送出する。
【０１１０】
サイクル２に、演算ユニット１０Ａは「ｓ０」を受け取り、再構成制御レジスタ１０１３および再構成制御装置１０１２を更新する。再構成制御装置１０１２は０を出力する。また、回路情報レジスタ１０１１の０の位置が参照され、演算器１００は演算「ｅ０」を行うための設定「Ａ０」の実行回路に構築される。
【０１１１】
同サイクルに、コントローラ１１は入出力バッファ１２を介してデータ「ｄ１」を送出する。
【０１１２】
サイクル３に、演算ユニット１０Ａの演算器１００はデータ「ｄ０」を入力として演算「ｅ０」を実行し、演算結果「ｄ００」をデータパイプラインレジスタ１０２に書き込む。一方で、再構成制御装置１０１２の出力は０となり、回路情報レジスタ１０１１の０の位置が参照されて、演算器１００は演算「ｅ０」を行うための設定「Ａ０」の実行回路に構築される。
【０１１３】
同サイクルに、演算ユニット１０Ｂは「ｓ０」を受け取り、再構成制御レジスタ１０１３および再構成制御装置１０１２を更新する。再構成制御装置１０１２は０を出力する。また、回路情報レジスタ１０１１の０の位置が参照され、演算器１００は演算「ｅ１」を行うための設定「Ｂ０」の実行回路に構築される。
【０１１４】
同サイクルに、コントローラ１１は再構成規則「ｓ１」を送出する。また、コントローラ１１は入出力バッファ１２を介してデータ「ｄ３」を送出する。
【０１１５】
サイクル４に、演算ユニット１０Ａの演算器１００はデータ「ｄ１」を入力として演算「ｅ０」を実行し、演算結果「ｄ１０」をデータパイプラインレジスタ１０２に書き込む。一方で、「ｓ１」を受け取って再構成制御レジスタ１０１３および再構成制御装置１０１２が更新され、再構成制御装置１０１２の出力は１となる。さらに、回路情報レジスタ１０１１の１の位置が参照されて、演算器１００は演算「ｅ４」を行うための設定「Ａ１」の実行回路に構築される。
【０１１６】
同サイクルに、演算ユニット１０Ｂの演算器１００はデータ「ｄ００」を入力として演算「ｅ１」を実行し、演算結果「ｄ０１」をデータパイプラインレジスタ１０２に書き込む。一方で、再構成制御装置１０１２の出力は０となり、回路情報レジスタ１０１１の０の位置が参照されて、演算器１００は演算「ｅ１」を行うための設定「Ｂ０」の実行回路に構築される。同サイクルに、コントローラ１１は入出力バッファ１２を介してデータ「ｄ２」を送出する。
【０１１７】
以後のサイクルにおける、コントローラ１１、演算ユニット１０Ａ，演算ユニット１０Ｂの動作は同様なので省略する。
【０１１８】
以上説明した本実施の形態によれば、パイプライン型に接続した複数のリコンフィギュラブル回路のそれぞれに、データを演算する実行回路を遅延無く構築することのできるようになった。
【０１１９】
そして、このような半導体装置を提供するから、図１４に示されるデータ演算のためのパイプライン動作例と再構成規則制御のためのパイプライン動作例のように、コントローラ１１はデータと再構成規則を同サイクルに演算ユニット１０Ａへ転送し、それらは同じタイミングで１サイクルごとに次段の演算ユニット１０に転送されるので、演算ユニット１０は再構成規則を受け取ったらすぐに演算器の実行回路を構築することにより、図４に示されるデータ入力と回路の再構成が同時に行われる例のように、演算器１００の再構成にかかる時間を、入力データを取得するまでの時間に隠蔽することも可能となった。
【図面の簡単な説明】
【０１２０】
【図１】実施の形態にかかる半導体装置１の全体構成を示す図である。
【図２】演算ユニット１０Ａ〜Ｅのより詳細な構成を示す図である。
【図３】演算器１００の例を説明するための図である。
【図４】コントローラ１１の実現例を説明するための図である。
【図５】デコーダ１１Ｆのデコード規則を説明するための図である。
【図６】回路情報制御装置１０１のより詳細な構成を示す図である。
【図７】回路情報レジスタ１０１１の実現例を示す図である。
【図８】実行制御メモリ１１Ｂに格納されるデータのデータ構造の例を示す図である。
【図９】再構成制御装置１０１２と再構成制御レジスタ１０１３の実現例を示す図である。
【図１０】演算ユニット１０の再構成制御装置１０１２および再構成制御レジスタ１０１３が変更される動作を説明するための図である。
【図１１】半導体装置１の演算を説明するための動作例を説明するための図である。
【図１２】図１１の演算の回路情報が、演算ユニット１０Ａ、１０Ｂの回路情報レジスタ１０１１のどの位置に格納されるかを示す図である。
【図１３】半導体装置１の動作例において、コントローラ１１が送出する再構成規則を示す図である。
【図１４】半導体装置１がコントローラ１１から送られる再構成規則に従って回路を再構成しながら演算を行う動作を説明するための図である。
【符号の説明】
【０１２１】
１  半導体装置
１０Ａ〜Ｅ  演算ユニット
１００  演算器
１０１  回路情報制御装置
１０１１  回路情報レジスタ
１０１１Ａ〜Ｄ  命令ラッチ
１０１１Ｅ  回路情報パイプラインレジスタ
１０１１Ｆ  デコーダ
１０１１Ｇ  マルチプレクサ
１０１１Ｈ  回路情報Ｖａｌｉｄ信号
１０１１Ｉ  回路情報アドレス
１０１１Ｊ  回路情報
１０１２  再構成制御装置
１０１２Ａ  状態レジスタ
１０１２Ｂ  加算器
１０１２Ｃ  マルチプレクサ
１０１２Ｄ  ＯＲロジック
１０１２Ｅ  比較器
１０１３  再構成制御レジスタ
１０１３Ａ  最大値レジスタ
１０１３Ｂ  最小値レジスタ
１０１３Ｄ〜Ｆ  マルチプレクサ
１０１３Ｇ  Ｖａｌｉｄ１ビット
１０１３Ｈ  最大値信号
１０１３Ｉ  最小値信号
１０１３Ｊ  初期値信号
１０２  データパイプラインレジスタ
１０３  制御パイプラインレジスタ
１１  コントローラ
１１Ａ  制御部
１１Ｂ  実行制御メモリ
１１Ｃ  回路情報メモリ
１１Ｅ  再構成規則メモリ
１１Ｆ  デコーダ
１１Ｇ  タイミング調整用ラッチ
１２  入出力バッファ
【図１】
2007257549.tif 000003
【図２】
2007257549.tif 000004
【図３】
2007257549.tif 000005
【図４】
2007257549.tif 000006
【図５】
2007257549.tif 000007
【図６】
2007257549.tif 000008
【図７】
2007257549.tif 000009
【図８】
2007257549.tif 000010
【図９】
2007257549.tif 000011
【図１０】
2007257549.tif 000012
【図１１】
2007257549.tif 000013
【図１２】
2007257549.tif 000014
【図１３】
2007257549.tif 000015
【図１４】
2007257549.tif 000016