(57)【要約】【課題】  機能の変更が可能なＡＬＵの多段配列を備えたリコンフィギュラブル回路を提供する。【解決手段】  本発明のリコンフィギュラブル回路は、２つの入力端子を有するＡＬＵを備える。入力端子ａにはＳＷ１が、入力端子ｂにはＳＷ２が接続される。ＳＷ１は、前段のＡＬＵ出力と定数入力のいずれかを選択して入力端子ａに供給し、ＳＷ２は、前段のＡＬＵ出力と変数入力のいずれかを選択して入力端子ｂに供給する。少なくとも定数入力をＳＷ２に入力しないことで、ＳＷ２の回路規模を削減できる。また、変数入力に関しては任意であってよいが、変数入力をＳＷ１に入力しないことで、ＳＷ１の回路規模も削減できる。【選択図】図１０
2005275455.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを備えたリコンフィギュラブル回路であって、前記論理回路には、第１入力端子と第２入力端子の少なくとも２つの入力端子が設けられており、
前記接続部は、前記論理回路間の接続用結線とは別に、第１入力端子に第１データを入力可能とし、且つ第２入力端子に第１入力端子には入力しない第２データを入力可能とする入力用結線を有することを特徴とするリコンフィギュラブル回路。
【請求項２】
前記入力用結線は、第２入力端子に第１データを入力しないことを特徴とする請求項１に記載のリコンフィギュラブル回路。
【請求項３】
前記第１データは前記リコンフィギュラブル回路からフィードバックされる変数データであり、前記第２データは定数データであることを特徴とする請求項１または２に記載のリコンフィギュラブル回路。
【請求項４】
前記接続部は、第１入力端子に変数データおよび前段の論理回路からの出力データのいずれかを供給し、第２入力端子に定数データおよび前段の論理回路からの出力データのいずれかを供給することを特徴とする請求項３に記載のリコンフィギュラブル回路。
【請求項５】
前記論理回路は、複数種類の多ビット演算を選択的に実行可能な算術論理回路であることを特徴とする請求項１から４のいずれかに記載のリコンフィギュラブル回路。
【請求項６】
それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを備えたリコンフィギュラブル回路と、
前記接続部に接続され、前記リコンフィギュラブル回路の出力データを前記接続部に入力可能な第１入力経路と、
前記接続部に接続され、定数データを前記接続部に論理回路に入力可能な第２入力経路とを備え、前記論理回路には、第１入力端子と第２入力端子の少なくとも２つの入力端子が設けられており、
前記接続部は、前記論理回路間の接続用結線とは別に、第１入力端子に第１入力経路から供給される出力データのみを、第２入力端子に第２入力経路から供給される定数データのみを入力可能な入力用結線を有することを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機能の変更が可能なリコンフィギュラブル回路に関し、特にリコンフィギュラブル回路に含まれる論理回路に対してデータを供給する技術に関する。
【背景技術】
【０００２】
近年、アプリケーションに応じてハードウェアの動作を変更可能なリコンフィギュラブルプロセッサの開発が進められている。リコンフィギュラブルプロセッサを実現するためのアーキテクチャとしては、ＤＳＰ(Digital Signal Processor)や、ＦＰＧＡ(Field Programmable Gate Array)を用いる方法が存在する。
【０００３】
ＦＰＧＡ（Field Programmable Gate Array）はＬＳＩ製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウエアの設計に利用されている。ＦＰＧＡは、論理回路の真理値表を格納するためのルックアップテーブル（ＬＵＴ）と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。ＦＰＧＡでは、ＬＵＴに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、ＦＰＧＡでＬＳＩを設計した場合、ＡＳＩＣ（Application Specific IC）による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、ＦＰＧＡを動的に再構成することで、回路構成の再利用を図る方法が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平１０−２５６３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
例えば衛星放送では、季節などにより、放送モードを切り替えて画質の調整などを行うこともある。受信機では、放送モードごとに複数の回路を予めハードウェア上に作り込んでおき、放送モードに合わせて選択器で回路を切り替えて受信している。したがって、受信機の他の放送モード用の回路はその間、遊んでいることになる。モード切り替えのように、複数の専用回路を切り替えて使用し、その切り替え間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切り替え時にＬＳＩを瞬時に再構成することにすれば、回路構造をシンプルにして汎用性を高め、同時に実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なＬＳＩに製造業界の関心が集まっている。特に、携帯電話やＰＤＡ（Personal Data Assistance）などのモバイル端末に搭載されるＬＳＩは小型化が必須であり、ＬＳＩを動的に再構成し、用途に合わせて適宜機能を切り替えることができれば、ＬＳＩの実装面積を抑えることができる。
【０００５】
ＦＰＧＡは回路構成の設計自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのＯＮ／ＯＦＦを制御するための制御回路を含む必要があり、必然的に制御回路の実装面積が大きくなる。また、基本セル間の接続に複雑な配線パターンをとるため、配線が長くなる傾向があり、さらに１本の配線に多くのスイッチが接続される構造のため、遅延が大きくなる。そのため、ＦＰＧＡによるＬＳＩは、試作や実験のために利用されるにとどまることが多く、実装効率、性能、コストなどを考えると、量産には適していない。さらに、ＦＰＧＡでは、多数のＬＵＴ方式の基本セルに構成情報を送る必要があるため、回路のコンフィグレーションにはかなりの時間がかかる。そのため、瞬時に回路構成の切り替えが必要な用途にはＦＰＧＡは適していない。
【０００６】
それらの課題を解決するため、近年、ＡＬＵ(Arithmetic Logic Unit)と呼ばれる基本演算機能を複数持つ多機能素子を多段に並べたＡＬＵアレイの検討が行われるようになった。ＡＬＵアレイでは、処理が上段から下段の一方向に流れるので、水平方向のＡＬＵを結ぶ配線は基本的には不要である。そのため、ＦＰＧＡと比較して回路規模を小さくすることが可能となる。
【０００７】
一方で、ＡＬＵアレイにおいても、各ＡＬＵに対して各種データを供給して、効率的に演算処理を実行することが好ましい。そのためにはデータをＡＬＵに供給するための経路や結線、および経路や結線を選択するためのスイッチなどの構成が必要となる。回路において、結線やスイッチの占める面積の割合は無視できず、ＡＬＵアレイの処理の高速性を追求すると、ＡＬＵアレイ自体およびＡＬＵアレイ周辺の回路規模が大きくなる傾向がある。特に、モバイル端末にＡＬＵアレイを搭載する場合には、効率的な演算処理を実現しながら、回路規模を抑えることが好ましい。
【０００８】
本発明はこうした状況に鑑みてなされたもので、その目的は、回路規模を抑えつつ、ＡＬＵアレイなどから構成される処理装置の処理能力を向上することのできる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある態様は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを備えたリコンフィギュラブル回路に関する。この態様のリコンフィギュラブル回路において、論理回路には、第１入力端子と第２入力端子の少なくとも２つの入力端子が設けられており、接続部は、論理回路間の接続用結線とは別に、第１入力端子に第１データを入力可能とし、且つ第２入力端子に第１入力端子には入力しない第２データを入力可能とする入力用結線を有して構成される。この態様のリコンフィギュラブル回路によると、第１入力端子に第２データを入力しないことで、第１入力端子にデータを供給するための選択部などの構成を小さくすることができ、回路規模を削減することができる。
【００１０】
本発明の別の態様は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを備えたリコンフィギュラブル回路と、接続部に接続され、リコンフィギュラブル回路の出力データを接続部に入力可能な第１入力経路と、接続部に接続され、定数データを接続部に論理回路に入力可能な第２入力経路とを備える処理装置に関する。この態様の処理装置において、論理回路には、第１入力端子と第２入力端子の少なくとも２つの入力端子が設けられており、接続部は、論理回路間の接続用結線とは別に、第１入力端子に第１入力経路から供給される出力データのみを、第２入力端子に第２入力経路から供給される定数データのみを入力可能な入力用結線を有して構成される。この態様の処理装置によると、第１入力端子および第２入力端子に入力するデータの種類を制限することで、第１入力端子および第２入力端子にデータを供給するための選択部などの構成を小さくすることができ、回路規模を削減することができる。
【００１１】
論理回路は、複数種類の多ビット演算を選択的に実行可能な算術論理回路であってよい。
【００１２】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、リコンフィギュラブル回路の処理能力を維持または向上しながら、回路規模を縮小化する技術を提供することができる。
【発明を実施するための最良の形態】
【００１４】
図１は、実施の形態に係る処理装置１０の構成図である。処理装置１０は、回路構成を再構成可能とする機能を有する集積回路装置２６を備える。集積回路装置２６は１チップとして構成され、リコンフィギュラブル回路１２、設定部１４、制御部１８、内部状態保持回路２０、出力回路２２、フィードバック経路２４およびマルチプレクサ部２５を備える。リコンフィギュラブル回路１２は、設定を変更することにより、機能の変更を可能とする。リコンフィギュラブル回路１２は組合せ回路または順序回路等の論理回路として構成される。フィードバック経路２４を通ってリコンフィギュラブル回路１２の出力と入力を接続する経路を、リコンフィギュラブル回路１２の出力を論理回路に入力可能な入力経路と呼ぶ。
【００１５】
リコンフィギュラブル回路１２は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを備える。構造的には、複数の論理回路列の間に、論理回路列間の接続用結線を設定する接続部が設けられる。リコンフィギュラブル回路１２は、複数段に配列された各論理回路の機能、および論理回路間の接続を任意に設定することで、機能の変更を可能とする。
【００１６】
設定部１４は、リコンフィギュラブル回路１２に所期の回路を構成するための設定データ４０を供給する。設定部１４は、プログラムカウンタのカウント値に基づいて記憶したデータを出力するコマンドメモリとして構成されてもよい。この場合、制御部１８がプログラムカウンタの出力を制御する。この場合、設定データ４０はコマンドメモリから出力されるコマンドデータであってよい。
【００１７】
フィードバック経路２４は、フィードバックパスとして機能し、リコンフィギュラブル回路１２の出力を、リコンフィギュラブル回路１２の入力に接続する。内部状態保持回路２０および出力回路２２は、例えばデータフリップフロップ（ＤＦＦ）などの順序回路として構成され、リコンフィギュラブル回路１２の出力を受ける。内部状態保持回路２０はフィードバック経路２４に接続されており、リコンフィギュラブル回路１２の出力をリコンフィギュラブル回路１２の入力にフィードバックさせる。
【００１８】
リコンフィギュラブル回路１２は、機能の変更が可能な論理回路を有して構成される。複数の論理回路は、マトリックス状に配置された構造をとってもよい。各論理回路の機能と、論理回路間の接続関係は、設定部１４により供給される設定データ４０に基づいて設定される。設定データ４０は、以下の手順で生成される。
【００１９】
集積回路装置２６により実現されるべきプログラム３６が、記憶部３４に保持されている。プログラム３６は、回路における処理の動作を記述した動作記述を示し、信号処理回路または信号処理アルゴリズムなどをＣ言語などの高級言語で記述したものである。コンパイル部３０は、記憶部３４に格納されたプログラム３６をコンパイルし、データフローグラフ（ＤＦＧ）３８に変換して記憶部３４に格納する。データフローグラフ３８は、回路における演算間の実行順序の依存関係を表現し、入力変数および定数の演算の流れをグラフ構造で示したものである。一般に、データフローグラフ３８は、上から下に向かって演算が進むように作成される。
【００２０】
設定データ生成部３２は、データフローグラフ３８から設定データ４０を生成する。設定データ４０は、データフローグラフ３８をリコンフィギュラブル回路１２にマッピングするためのデータであり、リコンフィギュラブル回路１２における論理回路の機能や論理回路間の接続関係を定める。設定データ生成部３２が、１つの生成すべき回路を分割してできる複数の回路の設定データ４０を生成してもよい。
【００２１】
図２は、１つの生成すべきターゲット回路４２を分割してできる複数の回路の設定データ４０について説明するための図である。１つのターゲット回路４２を分割して生成される回路を、「分割回路」と呼ぶ。この例では、１つのターゲット回路４２が、４つの分割回路、すなわち分割回路Ａ、分割回路Ｂ、分割回路Ｃ、分割回路Ｄに分割されている。ターゲット回路４２は、データフローグラフ３８における演算の流れにしたがって分割される。データフローグラフ３８において、上から下に向かう方向に演算の流れが表現される場合、そのデータフローグラフ３８を上から所定の間隔で切り取り、その切り取った部分を分割回路として設定する。流れにしたがって切り取る間隔は、リコンフィギュラブル回路１２における論理回路の段数以下に定められる。ターゲット回路４２は、データフローグラフ３８の横方向で分割されてもよい。横方向に分割する幅は、リコンフィギュラブル回路１２における論理回路の１段当たりの個数以下に定められる。
【００２２】
特に、生成すべきターゲット回路４２がリコンフィギュラブル回路１２よりも大きい場合に、設定データ生成部３２は、リコンフィギュラブル回路１２にマッピングできる大きさになるように、ターゲット回路４２を分割することが好ましい。設定データ生成部３２は、リコンフィギュラブル回路１２における論理回路の配列構造とデータフローグラフ３８によって、ターゲット回路４２の分割方法を定める。リコンフィギュラブル回路１２の配列構造は、制御部１８から設定データ生成部３２に伝えられてもよく、また予め記憶部３４に記録されていてもよい。また、制御部１８が、ターゲット回路４２の分割方法を設定データ生成部３２に指示してもよい。
【００２３】
以上の手順を実行することにより、記憶部３４は、リコンフィギュラブル回路１２を所期の回路として構成するための複数の設定データ４０を記憶する。複数の設定データ４０は、分割回路Ａを構成するための設定データ４０ａ、分割回路Ｂを構成するための設定データ４０ｂ、分割回路Ｃを構成するための設定データ４０ｃ、および分割回路Ｄを構成するための設定データ４０ｄである。既述のごとく、複数の設定データ４０は、１つのターゲット回路４２を分割した複数の分割回路をそれぞれ表現したものである。このように、リコンフィギュラブル回路１２の回路規模に応じて、生成すべきターゲット回路４２の設定データ４０を生成することにより、汎用性の高い処理装置１０を実現することが可能となる。別の視点からみると、実施の形態の処理装置１０によれば、回路規模の小さいリコンフィギュラブル回路１２を用いて、所望の回路を再構成することが可能となる。
【００２４】
図１に戻って、本実施の形態において、フィードバック経路２４には、マルチプレクサ部（ＭＵＸ）２５が設けられている。マルチプレクサ部２５は、内部状態保持回路２０の複数のＤＦＦからの出力データおよび外部からの入力データを選択的にリコンフィギュラブル回路１２の論理回路に供給する機能を有する。
【００２５】
リコンフィギュラブル回路１２の論理回路は、変数ないしは定数を用いた演算を行う。加算や乗算は、その典型的な例である。したがって、リコンフィギュラブル回路１２の出力データを、次回以降に再構成するリコンフィギュラブル回路１２における変数データとして使用する場面が度々発生する。図１に示す処理装置１０においては、リコンフィギュラブル回路１２の出力データが、フィードバック経路２４により供給されており、全ての出力データをリコンフィギュラブル回路１２の各論理回路に入力することも可能である。これにより、論理回路はフィードバックされた演算に必要なデータを直接取得することができ、所期の演算処理を実行することができる。
【００２６】
しかしながら、全てのデータを、例えばリコンフィギュラブル回路１２における全論理回路に入力すると、配線に必要な面積が大きくなる。回路規模の縮小化は、実装面積の問題だけでなく、消費電力を削減にもつながることから、集積回路技術における重要な課題の一つであり、それは、本実施の形態で示す集積回路装置２６にとっても例外ではない。以上の理由から、本実施の形態の処理装置１０では、フィードバック経路２４による出力データ数を制限し、回路規模の縮小化を図ってもよい。
【００２７】
図３は、実施の形態におけるリコンフィギュラブル回路１２を示す。リコンフィギュラブル回路１２は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を任意に設定可能な接続部５２とを備える。リコンフィギュラブル回路１２では、論理回路の多段配列構造により、上段から下段に向かって演算が進められる。なお、本明細書および特許請求の範囲において「多段」とは、複数の段を意味する。
【００２８】
リコンフィギュラブル回路１２は、論理回路としてＡＬＵ(Arithmetic Logic Unit)を有している。ＡＬＵは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる。各ＡＬＵは、複数の演算機能を設定するためのセレクタを有して構成されている。ＡＬＵは、２つの入力端子を有して構成される。
【００２９】
リコンフィギュラブル回路１２は、縦方向にＸ個、横方向にＹ個のＡＬＵが配置されたＸ段Ｙ列のＡＬＵアレイとして構成される。ここでは、縦方向に３個、横方向に６個のＡＬＵが配置された３段６列のＡＬＵアレイを示している。リコンフィギュラブル回路１２は、接続部５２およびＡＬＵ列５３を備える。ＡＬＵ列５３は複数段に設けられ、接続部５２は前後段のＡＬＵ列５３の間に設けられて、前段のＡＬＵの出力と後段のＡＬＵの入力の接続関係を設定する。
【００３０】
図３に示す例では、第１段のＡＬＵ列５３ａと第２段のＡＬＵ列５３ｂの間に、第２段を構成する接続部５２ｂが設けられ、第２段のＡＬＵ列５３ｂと第３段のＡＬＵ列５３ｃの間に、第３段を構成する接続部５２ｃが設けられる。なお、第１段を構成する接続部５２ａは、第１段のＡＬＵ列５３ａの上側に設けられる。
【００３１】
第１段のＡＬＵ１１、ＡＬＵ１２、・・・、ＡＬＵ１６には、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第２段の接続部５２ｂに設定された接続にしたがって、第２段のＡＬＵ２１、ＡＬＵ２２、・・・、ＡＬＵ２６に入力される。第２段の接続部５２ｂにおいては、第１段のＡＬＵ列５３ａの出力と第２段のＡＬＵ列５３ｂの入力の間で任意の接続関係、あるいは予め定められた接続関係の組合せの中から選択された接続関係を実現できるように接続用結線が構成されており、設定により所期の結線が有効となる。第２段のＡＬＵ２１、ＡＬＵ２２、・・・、ＡＬＵ２６には、ＡＬＵ列５３ａの出力が入力され、設定された所定の演算がなされる。演算結果の出力は、第３段の接続部５２ｃの接続用結線において設定された接続にしたがって、第３段のＡＬＵ３１、ＡＬＵ３２、・・・、ＡＬＵ３６に入力される。
【００３２】
最終段となる第３段のＡＬＵ列５３ｃからの出力データは、内部状態保持回路２０に出力される。内部状態保持回路２０は、フィードバック経路２４を介して、出力データを接続部５２ａに入力する。
【００３３】
各接続部５２は、複数のＳＷ（スイッチ）を有して構成される。図示の例では各接続部５２あたり、６つのＳＷを示しているが、ＳＷは各ＡＬＵの入力端子に対して設けられる。ここで各ＡＬＵは２つの入力端子をもつことから、接続部５２は、実際には１２個のＳＷを有して構成される。ＳＷはマルチプレクサとして構成され、上段のＡＬＵからの出力データ、フィードバック経路２４から供給される出力データ、または設定部１４から供給される定数データなどを、対応するＡＬＵの入力端子に対して選択的に出力する機能をもつ。
【００３４】
図４は、実施の形態におけるリコンフィギュラブル回路１２およびその周辺回路を示す。内部状態保持回路２０は、最終段のＡＬＵ列５３ｃにおけるＡＬＵに対応して、６つのＤＦＦを有する。フィードバック経路２４は、６つのＤＦＦ出力データをマルチプレクサ部２５に供給する。
【００３５】
マルチプレクサ部２５は、複数のマルチプレクサから構成され、各マルチプレクサは、外部入力と内部状態保持回路２０からのデータを選択し、選択したデータを第１入力経路１７に出力する。第１入力経路１７はリコンフィギュラブル回路１２の接続部５２ａ、５２ｂ、５２ｃに接続され、リコンフィギュラブル回路１２の出力データまたは外部入力データを、各接続部５２ａ、５２ｂ、５２ｃに入力することができる。リコンフィギュラブル回路１２の出力データまたは外部入力データは、変数データを構成する。マルチプレクサにおけるデータ選択は、設定データ４０により行われてもよく、また制御部１８からの選択指示により行われてもよい。以下、第１入力経路１７によるデータの入力を「変数入力」と呼ぶ。なお、フィードバック経路２４から第１入力経路１７により構成される経路の全体を、リコンフィギュラブル回路１２の出力データをＡＬＵに入力可能な第１入力経路と呼んでもよい。
【００３６】
設定部１４は、定数データを記憶した定数ＲＡＭ部１５を有する。定数ＲＡＭ部１５は、制御部１８からの読出指示に基づいて、第２入力経路１９に定数データを出力する。なお設定部１４がコマンドメモリとして構成される場合は、コマンドメモリが第２入力経路１９に定数データを出力する。第２入力経路１９はリコンフィギュラブル回路１２の接続部５２ａ、５２ｂ、５２ｃに接続され、定数ＲＡＭ部１５から供給される定数データを、各接続部５２ａ、５２ｂ、５２ｃに入力することができる。以下、第２入力経路１９による定数データの入力を「定数入力」と呼ぶ。
【００３７】
ＡＬＵ列５３へのデータの直接入力を可能とするために、接続部５２は、第１入力経路１７および第２入力経路１９から供給されるデータをＡＬＵ列５３の所期のＡＬＵに与えるべく、第１入力経路１７および第２入力経路１９とＡＬＵとを結線する機能をもつ。接続部５２は、ＡＬＵ間を接続する接続用結線とは別に、第１入力経路１７および第２入力経路１９から供給されるデータをＡＬＵに入力可能な入力用結線を備えている。これにより、ＡＬＵはＳＷからデータを受け取ることができ、所期の演算処理を実行することが可能となる。
【００３８】
本実施の形態では、接続部５２に供給する定数データおよび変数データを、接続部５２のＳＷの個数よりも少なく制限している。すなわち、接続部５２に供給する定数データおよび変数データを、１段あたり６つのＡＬＵに対して４つに制限している。そのため、定数入力に関していえば、第２入力経路１９は、４×３（ＡＬＵ段数）の１２個の配線を有して構成される。
【００３９】
変数入力に関していうと、マルチプレクサ部２５は、３段のＡＬＵ列５３に対応する３つのマルチプレクサ群を有し、各マルチプレクサ群は４つのマルチプレクサを有して、各ＡＬＵ列５３に対して４つの変数データを入力可能とする。したがってマルチプレクサ部２５は、１２個のマルチプレクサを有している。各マルチプレクサには、１つの外部入力データと、６つのＤＦＦからの出力データが供給される。したがって、マルチプレクサは、計７つのデータから１つのデータを選択して出力する７：１マルチプレクサとして構成される。
【００４０】
変数入力および定数入力を全てのＡＬＵに対して認めてもよいが、その場合は、第２入力経路１９の配線数が１８個となり、またマルチプレクサ部２５のマルチプレクサの個数および第１入力経路１７の配線数も１８個となる。このように、全ＡＬＵへのデータ入力を可能とする場合には、第１入力経路１７、第２入力経路１９およびマルチプレクサ部２５の回路規模が大きくなり、また各接続部５２において入力用結線も複雑となるため、接続部５２の回路規模も大きくなる。そこで、本実施の形態では、各接続部５２への入力数を制限することによって、回路規模の縮小化を図っている。これは、同段に配置された６つのＡＬＵのうち、５つ以上のＡＬＵが定数入力や変数入力を必要とする確率が低いという発明者の知見に基づいている。
【００４１】
仮に、１段中の５つ以上のＡＬＵが変数データを必要とする場合には、第１入力経路１７を通じて１段のＡＬＵに４つの変数データを供給し、残りの変数データを、第１入力経路１７を通じて下段のＡＬＵに供給することで、処理を継続することができる。同様に、１段中の５つ以上のＡＬＵが定数データを必要とする場合には、第２入力経路１９を通じて１段のＡＬＵに４つの定数データを供給し、残りの定数データを、第２入力経路１９を通じて下段のＡＬＵに供給することで、処理を継続することができる。この場合、ＤＦＧが大きくなり、処理時間が増える可能性はあるが、その確率が大きくないことを鑑みると、処理高速性の厳密な追求よりも回路規模の削減を図る方が、全体としてのメリットが大きい。
【００４２】
図５は、ＡＬＵに入力可能なデータ種類の一例を示す。既述のように、ＡＬＵは２つの入力端子を有して構成され、それぞれの入力端子に対応して設けられたＳＷから所期のデータを供給される。この例では、入力端子ａに対応するＳＷ１および入力端子ｂに対応するＳＷ２が、１つ前段のＡＬＵ出力データ、定数データ、変数データの３種類のデータをそれぞれ入力され、設定データ４０に基づいて、いずれかのデータをＡＬＵに選択出力する。
【００４３】
図６は、図５に示すＳＷへの入力の詳細を示す。６つの前段ＡＬＵ出力データ、４つの定数データ、４つの変数データが、それぞれＳＷ１およびＳＷ２に入力される。したがって、ＳＷ１およびＳＷ２は、計１４のデータから１つのデータを選択して出力する１４：１マルチプレクサとして構成される。
【００４４】
図７は、ＡＬＵにおける演算の１例を示す。ＩＮ＿ａは入力端子ａの入力データを示し、ＩＮ＿ｂは入力端子ｂの入力データを示す。演算例として、加算、減算、ビットＡＮＤ、ビットＯＲ、ビットＥＸＯＲ、符号反転をベリログ（Ｖｅｒｉｌｏｇ）表記したものが示される。図５および図６に示したＳＷへの入力構成では、入力端子ａおよび入力端子ｂに対して全てのデータが入力可能であるため、入力端子ａに入力されるデータおよび入力端子ｂに入力されるデータの全ての組合せを実現でき、ＡＬＵにおける演算を容易に実行することができる。
【００４５】
ここで、定数データについて考察すると、例えば、定数データの１入力演算、例えば定数をビットシフトする演算については、予めコンパイル部３０がプログラムをもとに計算できる。コンパイル部３０は、その計算結果をもとにデータフローグラフ３８を作成できるため、定数データの１入力演算をＡＬＵで処理する必要はない。したがって、ＡＬＵ上で１入力演算を行う場合は、その入力は、前段ＡＬＵからの出力データか変数データとなる。
【００４６】
また２入力演算の場合、２入力ともに定数データの場合は、上述のように、予めコンパイル部３０がプログラムをもとに計算できる。例えば、定数同士の加算などである。コンパイル部３０は、その計算結果をもとにデータフローグラフ３８を作成できるため、定数データの２入力演算をＡＬＵで処理する必要はない。したがって、ＡＬＵ上で２入力演算を行う場合は、その両方ともが定数データであることはなく、定数データは多くとも１入力でしかない。
【００４７】
以上の考察から、ＡＬＵにおける入力端子ａおよび入力端子ｂの双方に定数データが供給される場合はなく、したがって、図５および図６に示されるように、ＳＷ１およびＳＷ２の双方に定数データを入力する必要がないことが分かる。本発明者は、以上の考察をもとに、図５および図６に示す入力の構成に無駄があるとの知見を得るに達し、ＳＷ１およびＳＷ２への入力構成が、いたずらにＳＷの回路規模を増大させていることを見出した。
【００４８】
図８は、実施の形態におけるＡＬＵの入力構成を示す。図８に示す入力構成は、図５および図６に示すＡＬＵの入力構成を改善するものである。
【００４９】
図８に示すＡＬＵの入力構成では、定数入力をＳＷ１のみとし、ＳＷ２への定数入力は行わない。接続部５２は、入力端子ａに定数データおよび変数データを入力可能とし、入力端子ｂに変数データを入力可能とする入力用結線を有する。すなわち、入力用結線は、入力端子ｂに変数データを入力可能とし、入力端子ａに変数データとともに、入力端子ｂには入力しない定数データを入力可能とする。上記した考察により、入力端子ａおよび入力端子ｂの双方に定数データを入力する必要がないため、ＳＷ２への定数入力を省略することができる。なお、１つ前段のＡＬＵからの出力データは接続用結線によりＳＷ１およびＳＷ２に入力される。
【００５０】
図９は、図８に示すＳＷへの入力の詳細を示す。ＳＷ１には、６つの前段ＡＬＵ出力データ、４つの定数データおよび４つの変数データが入力される。一方、ＳＷ２には、６つの前段ＡＬＵ出力データおよび４つの変数データが入力される。これにより、ＳＷ２を計１０のデータから１つのデータを選択して出力する１０：１マルチプレクサとして構成できるため、図６に示すＳＷの入力構成と比較すると、ＳＷ２の回路規模を削減することができる。回路規模の縮小化は、実装面積の問題だけでなく、消費電力を削減することにもつながる。
【００５１】
図１０は、実施の形態におけるＡＬＵの入力構成を示し、図８に示す入力構成よりもさらにＳＷへの入力を制限したものである。
【００５２】
図１０に示すＡＬＵの入力構成では、定数入力をＳＷ１のみとし、ＳＷ２への定数入力は行わないだけでなく、変数入力をＳＷ２のみとし、ＳＷ１への変数入力を行わない。接続部５２は、入力端子ａに定数データを入力可能とし、入力端子ｂに変数データを入力可能とする入力用結線を有する。すなわち、入力用結線は、入力端子ｂに入力端子ａには入力しない変数データを入力可能とし、入力端子ａに入力端子ｂには入力しない定数データを入力可能とする。
【００５３】
したがって、接続部５２は、入力端子ａに定数データおよび前段ＡＬＵ出力データのいずれかを供給し、入力端子ｂに変数データおよび前段ＡＬＵ出力データのいずれかを供給する。
【００５４】
図１１は、図１０に示すＳＷへの入力の詳細を示す。ＳＷ１には、６つの前段ＡＬＵ出力データおよび４つの定数データが入力される。一方、ＳＷ２には、６つの前段ＡＬＵ出力データおよび４つの変数データが入力される。これにより、ＳＷ１およびＳＷ２を計１０のデータから１つのデータを選択して出力する１０：１マルチプレクサとして構成できるため、図９に示すＳＷの入力構成と比較すると、ＳＷ２の回路規模をさらに削減することができる。
【００５５】
図１２は、接続部５２において、４つの定数入力および４つの変数入力と、各ＡＬＵの接続に制限をつけた１例を示す。図中、点線で囲われたＡＬＵは、ａ〜ｄのいずれかの定数入力および変数入力が入力される範囲を示す。図示のように、接続部５２は、第１入力経路１７および第２入力経路１９から入力された複数のデータをそれぞれ供給可能とするＡＬＵの範囲を、入力するデータごとにそれぞれ異なるように設定している。これは、第１入力経路１７および第２入力経路１９に対応付けて、接続部５２における入力用結線を形成することで実現される。
【００５６】
接続部５２はこの範囲を、１段に含まれる複数のＡＬＵのうち一方の端部に配置されたＡＬＵ１から他方の端部に配置されたＡＬＵ６にかけて徐々にずらして設定している。すなわち、定数データａおよび変数データａは、ＡＬＵ１〜ＡＬＵ３の範囲に存在するＡＬＵに供給可能とされる。同様に、定数データｂおよび変数データｂは、ＡＬＵ２〜ＡＬＵ４の範囲に存在するＡＬＵに供給可能とされ、定数データｃおよび変数データｃは、ＡＬＵ３〜ＡＬＵ５の範囲に存在するＡＬＵに供給可能とされ、定数データｄおよび変数データｄは、ＡＬＵ４〜ＡＬＵ６の範囲に存在するＡＬＵに供給可能とされる。このように、ＡＬＵ１からＡＬＵ６までの間で、データを供給可能とする範囲を徐々にずらしていくことにより、入力用結線の回路規模を抑えつつ、各データをＡＬＵに万遍なく割り振ることができる。
【００５７】
このように、定数データおよび変数データを供給可能なＡＬＵの範囲を制限することによって、接続部５２の入力用結線を単純化することができ、接続部５２の回路規模を削減できる。
【００５８】
図１３は、各ＡＬＵに対応するＳＷへの入力の詳細を示す。ここでは、図１２で説明したように、定数入力および変数入力と各ＡＬＵの接続に制限をつけている。図１３（ａ）は、ＡＬＵ１に対応するＳＷの入力構成を示し、図１３（ｂ）は、ＡＬＵ２に対応するＳＷの入力構成を示し、図１３（ｃ）は、ＡＬＵ３に対応するＳＷの入力構成を示し、図１３（ｄ）は、ＡＬＵ４に対応するＳＷの入力構成を示し、図１３（ｅ）は、ＡＬＵ５に対応するＳＷの入力構成を示し、図１３（ｆ）は、ＡＬＵ６に対応するＳＷの入力構成を示す。
【００５９】
各ＡＬＵの接続に制限をつけることで、ＡＬＵ１およびＡＬＵ６に対応するＳＷは、それぞれ７：１マルチプレクサで実現でき、ＡＬＵ２およびＡＬＵ５に対応するＳＷは、それぞれ８：１マルチプレクサで実現でき、ＡＬＵ３およびＡＬＵ４に対応するＳＷは、それぞれ９：１マルチプレクサで実現できる。このようにマルチプレクサを小さく構成できることで、回路規模を削減することができる。
【００６０】
図１０のようにＳＷへの入力を制限することで、回路規模を削減することが可能となるが、入力を制限したことで、図７に示したようなＡＬＵにおける演算では、１段のＡＬＵ列での処理が不可能なケースが生じる。具体的には、入力端子ａと入力端子ｂの順序関係が重要となる減算の場合である。これは、図７に示すＡＬＵ演算において、減算として（ＩＮ＿ａ−ＩＮ＿ｂ）しか規定されておらず、図１０の入力制限では、入力端子ａに前段ＡＬＵ出力または定数入力のいずれか、入力端子ｂに前段ＡＬＵ出力または変数入力のいずれかしか入力されないことに起因する。図１４〜図１６に、１段のＡＬＵ列での処理が不可能なケースを示す。
【００６１】
図１４は、（変数入力）−（変数入力）の処理を示す。変数入力は入力端子ａに入力できないため、図１４（ａ）に示すＤＦＧをリコンフィギュラブル回路１２にマッピングすることはできない。そこで、図１４（ｂ）に示すように、２つの段に配置されるＡＬＵの入力端子ｂを使って変数入力を行うことで、（変数入力）−（変数入力）を実行できる。なお、“ｎｏｐ”は演算を実行しないスルー用のノードを示す。
【００６２】
図１５は、（変数入力）−（定数入力）の処理を示す。変数入力は入力端子ａに入力できず、定数入力は入力端子ｂに入力できないため、図１５（ａ）に示すＤＦＧをリコンフィギュラブル回路１２にマッピングすることはできない。そこで、図１５（ｂ）に示すように、上の段に入力した変数入力および定数入力を下の段に入力端子を入れ替えて供給することで、（変数入力）−（定数入力）を実行できる。
【００６３】
図１６は、（前段ＡＬＵ出力）−（定数入力）の処理を示す。定数入力は入力端子ｂに入力できないため、図１６（ａ）に示すＤＦＧをリコンフィギュラブル回路１２にマッピングすることはできない。そこで、図１６（ｂ）に示すように、上の段に入力した定数入力を下の段の入力端子ｂに供給することで、（前段ＡＬＵ出力）−（定数入力）を実行できる。
【００６４】
以上、図１４〜図１６に、１段のＡＬＵ列で処理できない例を示した。この場合であっても、２段のＡＬＵ列を使用することで、各減算処理を実行することができる。２段のＡＬＵ列を使用すると、リコンフィギュラブル回路１２における回路の再構成速度は若干落ちるものの、このような減算は全体の演算処理の中のごく一部であり、一方で回路規模を大きく削減できるため、その利点の方が大きい。なお、以下では、図１５および図１６に示した減算処理を１段のＡＬＵ列で実行させるようＡＬＵの機能を追加する。
【００６５】
図１７は、ＡＬＵにおける演算の別の例を示す。図７に示した演算例に対して、図１７の演算例では、減算２（ＩＮ＿ｂ−ＩＮ＿ａ）を追加している。なお、減算１は、図７における減算に対応する。図５のＡＬＵ入力例に示すように、回路規模の縮小化に配慮せず、双方の入力端子に全データを供給する場合は、１つの減算（ＩＮ＿ａ−ＩＮ＿ｂ）でよかったが、図１０に示すようにＡＬＵの入力制限を行う場合には、減算２を追加することで、回路の再構成速度を高速にできる。
【００６６】
図１８は、（変数入力）−（定数入力）の処理を示す。変数入力を入力端子ｂ、定数入力を入力端子ａに入力し、ＡＬＵの演算機能を（ＩＮ＿ｂ−ＩＮ＿ａ）に設定することで、（変数入力）−（定数入力）を１段のＡＬＵ列で実行できるようになる。
【００６７】
図１９は、（前段ＡＬＵ出力）−（定数入力）の処理を示す。定数入力を入力端子ａ、前段ＡＬＵ出力を入力端子ｂに入力し、ＡＬＵの演算機能を（ＩＮ＿ｂ−ＩＮ＿ａ）に設定することで、（前段ＡＬＵ出力）−（定数入力）を１段のＡＬＵ列で実行できるようになる。
【００６８】
図２０は、加算器を示す。ａ、ｂは入力、ｃｉｎは桁上げ入力、ｃｏｕｔは桁上げ出力、ｑは出力を示す。
【００６９】
図２１は、加減算器（ａ−ｂ）を示す。加減算器は加算器に対して、マルチプレクサ１つと反転回路１つが追加されただけであり、追加した回路は、加算器部分に比べて相当小さい。
【００７０】
図２２は、図２１に示す加減算器に減算２、つまり（ｂ−ａ）の機能を追加した加減算器を示す。図２１に示す加減算器に比べて入力ａ、ｂ部分に選択器が２つ追加されているが、これら追加した回路は加減算器に比べて相当小さい。従って、ＡＬＵの回路は若干大きくなるものの、本来ＡＬＵに設けられている図２１に示す加減算器（ａ−ｂ）との共通部分がほとんどを占めるので、回路規模はさほど増加しない。したがって、図１７に示す減算２の演算機能を追加することで、効率の良いＤＦＧを作成することができ、またコンパイラにおける処理が容易になり、コンパイル時間の短縮も可能となる。このように、図１０のような入力制限を行った場合であっても、処理速度を落とすことなく、トータルの回路規模を効果的に削減することができる。
【００７１】
なお、図１４に示した（変数入力）―（変数入力）の演算は、演算全体からみれば、出現頻度は小さいと考えられるので、ＤＦＧがごく僅かに大きくなったとしても回路規模の削減のメリットが勝る。
【００７２】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７３】
実施の形態において、リコンフィギュラブル回路１２の出力は最終段のＡＬＵ列５３ｃからなされているが、出力は、第１段のＡＬＵ列５３ａからなされてもよく、また第２段のＡＬＵ列５３ｂからなされてもよい。
【００７４】
例えば、リコンフィギュラブル回路１２におけるＡＬＵの配列は、縦方向にのみ接続を許した多段配列に限らず、横方向の接続も許した、メッシュ状の配列であってもよい。また、上記の説明では、段を飛ばして論理回路を接続する接続用結線は設けられていないが、このような段を飛ばす接続用結線を設ける構成としてもよい。
【００７５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００７６】
【図１】実施の形態に係る処理装置の構成図である。
【図２】生成すべきターゲット回路を分割してできる複数の回路の設定データについて説明するための図である。
【図３】実施の形態におけるリコンフィギュラブル回路を示す図である。
【図４】実施の形態におけるリコンフィギュラブル回路１２およびその周辺回路を示す図である。
【図５】ＡＬＵに入力可能なデータ種類の一例を示す図である。
【図６】図５に示すＳＷへの入力の詳細を示す図である。
【図７】ＡＬＵにおける演算の１例を示す図である。
【図８】実施の形態におけるＡＬＵの入力構成を示す図である。
【図９】図８に示すＳＷへの入力の詳細を示す図である。
【図１０】実施の形態におけるＡＬＵの入力構成の別の例を示す図である。
【図１１】図１０に示すＳＷへの入力の詳細を示す図である。
【図１２】４つの定数入力および４つの変数入力と、各ＡＬＵの接続に制限をつけた１例を示す図である。
【図１３】各ＡＬＵに対応するＳＷへの入力の詳細を示す図である。
【図１４】（変数入力）−（変数入力）の処理を示す図である。
【図１５】（変数入力）−（定数入力）の処理を示す図である。
【図１６】（前段ＡＬＵ出力）−（定数入力）の処理を示す図である。
【図１７】ＡＬＵにおける演算の別の例を示す図である。
【図１８】（変数入力）−（定数入力）の処理を示す図である。
【図１９】（前段ＡＬＵ出力）−（定数入力）の処理を示す図である。
【図２０】フルアダー加算器を示す図である。
【図２１】加減算器（ａ−ｂ）を示す図である。
【図２２】図２１に示す加減算器に（ｂ−ａ）の機能を追加した加減算器を示す図である。
【符号の説明】
【００７７】
１０・・・処理装置、１２・・・リコンフィギュラブル回路、１４・・・設定部、１７・・・第１入力経路、１８・・・制御部、１９・・・第２入力経路、２０・・・内部状態保持回路、２２・・・出力回路、２４・・・フィードバック経路、２５・・・マルチプレクサ部、２６・・・集積回路装置、３４・・・記憶部、５２・・・接続部、５３・・・ＡＬＵ列。
【図１】
2005275455.tif 000003
【図２】
2005275455.tif 000004
【図３】
2005275455.tif 000005
【図４】
2005275455.tif 000006
【図５】
2005275455.tif 000007
【図６】
2005275455.tif 000008
【図７】
2005275455.tif 000009
【図８】
2005275455.tif 000010
【図９】
2005275455.tif 000011
【図１０】
2005275455.tif 000012
【図１１】
2005275455.tif 000013
【図１２】
2005275455.tif 000014
【図１３】
2005275455.tif 000015
【図１４】
2005275455.tif 000016
【図１５】
2005275455.tif 000017
【図１６】
2005275455.tif 000018
【図１７】
2005275455.tif 000019
【図１８】
2005275455.tif 000020
【図１９】
2005275455.tif 000021
【図２０】
2005275455.tif 000022
【図２１】
2005275455.tif 000023
【図２２】
2005275455.tif 000024