(57)【特許請求の範囲】
【請求項１】
それぞれが複数の算術論理演算機能を選択的に実行可能な複数の論理回路が多段に構成された演算部を備えるリコンフィギュラブル回路において、
前記複数の論理回路の１つである第１論理回路は、その第１論理回路の演算で使用する入力の１つである第１入力を、前記複数の論理回路の１つであって前記第１論理回路の下段に位置する第２論理回路に前記第１論理回路を介さずに入力する、前記第１論理回路の出力線とは異なる専用の第１入力伝播線を有する第１入力伝播回路を備え、
前記第１入力伝播回路は、
前記複数の論理回路の１つであって前記第１論理回路の上段に位置する第３論理回路に備わる第３入力伝播回路の第３入力伝播線からのデータと、該第３入力伝播線以外からのデータとのいずれかを選択して前記第１論理回路への第１入力とする入力選択回路を備えることを特徴とするリコンフィギュラブル回路。
【請求項２】
前記第１入力伝播回路は、前記第１入力のデータを、前記第２論理回路に入力する際、前記第１論理回路での演算実行時間の間、前記データを保持し、前記第２論理回路で演算を実行するときに、前記第２論理回路に入力できるようにするデータ保持機構を備えることを特徴とする請求項１に記載のリコンフィギュラブル回路。
【請求項３】
前記入力選択回路は、前記第３入力伝播線以外からのデータを選択する場合を除いて、常に前記第３入力伝播線からのデータを選択することを特徴とする請求項１または２に記載のリコンフィギュラブル回路。
【請求項４】
前記第１入力伝播回路は、前記第１論理回路への入力が複数ある場合に、その複数の入力データのうちいずれかを選択して前記第１入力伝播線に入力する請求項１または２に記載のリコンフィギュラブル回路。
【請求項５】
前記第１入力伝播回路は、前記第１論理回路への入力が複数ある場合に、前記第３入力伝播回路の前記第３入力伝播線からのデータか、前記第１論理回路への複数の入力データのうちいずれかを選択して前記第１入力伝播線に入力する請求項１または２に記載のリコンフィギュラブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィギュラブル回路に関する。
【背景技術】
【０００２】
最近、携帯電話、ＧＰＳ、ＶＩＣＳなど、無線通信が広く普及し、無線機の種類も増えている。これらの無線機またはその機能をすべてハードウエアで実装すると、コストや実装面積が嵩む。そこで、ハードウエアとしては汎用的な能力を有する回路を搭載しておき、それにロードするソフトウエアを切り替えることで多様な機能を実現する「ソフトウエア無線機」という考え方がある。
【０００３】
ソフトウエア無線機を実現する回路として、ＦＰＧＡ（Field Programmable Gate Array）やＤＳＰ（Digital Signal Processor）がある。特許文献１には、ＦＰＧＡを動的に再構成することで、回路構成の再利用を図る方法が提案されている。動的変更が可能なタイプの回路を以下リコンフィギュラブル回路という。
【０００４】
ＦＰＧＡはＬＳＩ製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウェアの設計に利用されている。ＦＰＧＡは、論理回路の真理値表を格納するためのルックアップテーブル（ＬＵＴ）と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。ＦＰＧＡでは、ＬＵＴに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、ＦＰＧＡでＬＳＩを設計した場合、ＡＳＩＣ（Application Specific IC）による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、ＦＰＧＡを動的に構成することによって、回路構成の再利用を計る方法が提案されている（例えば、特許文献１参照）。 
【０００５】
回路規模を削減したリコンフィギュラブル回路として、例えば、特許文献２の技術がある。特許文献２のリコンフィギュラブル回路は、機能の変更が可能な複数のＡＬＵを備える。複数のＡＬＵはマトリックス状に配置され、ＡＬＵの各段の間には、ＡＬＵの接続を選択的に確立可能な少なくとも１つの接続部が設けられている。この接続部は、上下段における全ての論理回路同士を接続可能とするものではなく、論理回路が、別の段に属する一部の論理回路のみと接続可能であるように構成される。
【特許文献１】特開平１０−２５６３８３号公報
【特許文献２】特開２００５−１８２６５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
例えば衛星放送では、季節などにより、放送モードを切り替えて画質の調整などを行うことがある。衛星放送受信機では、放送モードごとに複数の回路を予めハードウェア上に作り込んでおき、放送モードに合わせて選択器で回路を切り替えて受信している。従って、受信機の他の放送モード用の回路はその間遊んでいることになる。モード切替のように、複数の専用回路を切り替えて使用し、その切替間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切替時にＬＳＩを瞬時に再構成することにすれば、回路構造を簡単にして汎用性を高め同時に実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なＬＳＩに製造業界の関心が高まってきている。特に、携帯電話やＰＤＡ（Personal Digital Assistant）などのモバイル端末に搭載されるＬＳＩは小型化が必要であり、ＬＳＩを動的に再構成し、用途に合わせて適宜機能を切り替えることができれば、ＬＳＩの実装面積を小さく抑えることができる。
【０００７】
ＦＰＧＡは回路構成の設計自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのＯＮ／ＯＦＦを制御するための制御回路を含む必要があり、必然的に制御回路の実装面積が大きくなる。また、基本セル間の接続に複雑な配線パターンをとるため、配線が長くなる傾向がある。さらに１本の配線に多くのスイッチが接続される構造であるため、遅延が大きくなる。そのため、ＦＰＧＡによるＬＳＩは、試作や実験のために利用されるにとどまることが多く、実装効率、性能コストなどを考えると、量産には適していない。さらに、ＦＰＧＡによるＬＳＩでは、多数のＬＵＴ方式の基本セルに設定データを送る必要があるため、回路のコンフィギュレーションにはかなりの時間を要する。そのため、瞬時に回路構成の切替が必要な用途にはＦＰＧＡによるＬＳＩは適していない。
【０００８】
それらの課題を解決するため、近年、ＡＬＵ（Arithmetic Logic Unit）と呼ばれる基本演算機能を複数有する多機能素子を用いたリコンフィギュラブルプロセッサの開発が進められている。リコンフィギュラブルプロセッサでは、コマンドデータが設定されることにより、ＡＬＵ回路の演算機能構成と接続部が制御され、全体として所期の演算処理回路を実現することが可能となる。コマンドデータは、一般にＣ言語等の高級プログラム言語で記述されたソースプログラムからＤＦＧ（Data Flow Graph）と呼ばれるデータフローを作成し、その情報をもとに作成される。
【０００９】
従来のプロセッサ（特許文献１参照）では、ＡＬＵの入力（ｉｎＡ、ｉｎＢ）は上段のＡＬＵもしくはメモリの出力のみである。このような構成では、データを下段に渡すためにはＡＬＵのスルー演算ｍｏｖが使用される。そのため、乗除余算の筆算展開に代表されるような、ある演算の入力をその演算以降に実行する複数の演算が入力として使用するプログラムの場合、有効な演算を行わないｍｏｖ機能が多く使われることになり、効率的な演算処理が行えない。
【００１０】
回路規模を削減したリコンフィギュラブル回路として、例えば、前記特許文献２の技術があるが、ＡＬＵのスルー演算ｍｏｖを省略することはできない。
【００１１】
本発明はこうした状況に鑑みてなされたものであり、回路規模の縮小化と処理時間の短縮化等に貢献するリコンフィギュラブル回路を備えた集積回路装置、処理装置およびそれらを利用した処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のリコンフィギュラブル回路は、それぞれが複数の算術論理演算機能を選択的に実行可能な複数の論理回路が多段に構成された演算部を備えるリコンフィギュラブル回路において、前記複数の論理回路の１つである第１論理回路は、その第１論理回路の演算で使用する入力の１つである第１入力を、前記複数の論理回路の１つであって前記第１論理回路の下段に位置する第２論理回路に前記第１論理回路を介さずに入力する、前記第１論理回路の出力線とは異なる専用の第１入力伝播線を有する第１入力伝播回路を備え、前記第１入力伝播回路は、前記複数の論理回路の１つであって前記第１論理回路の上段に位置する第３論理回路に備わる第３入力伝播回路の第３入力伝播線からのデータと、該第３入力伝播線以外からのデータとのいずれかを選択して前記第１論理回路への第１入力とする入力選択回路を備えることを特徴とする。
【発明の効果】
【００２２】
本発明のリコンフィギュラブル回路によれば、従来データを伝播するために使用していた論理回路を他の演算に使用できるため、処理効率が向上し、処理時間を短縮できる。また、従来データを伝播するために使用していた論理回路への命令がなくなるため、命令を格納するメモリの容量が少なくなり、回路規模が削減される。
【発明を実施するための最良の形態】
【００２３】
本発明に係るリコンフィギュラブル回路の一実施の形態について、図を参照して説明する。図１は、本発明の一実施の形態に係るリコンフィギュラブル回路を含む処理装置の構成を示すブロック図である。図１に示すように、処理装置１０は、集積回路装置２６を備える。集積回路装置２６は、回路構成を再構成可能とする機能を有する。集積回路装置２６は１チップとして構成され、リコンフィギュラブル回路１、設定部１４、制御部１８、内部状態保持回路２０、出力回路２２および経路部２４を備える。リコンフィギュラブル回路１は、設定を変更することにより、機能の変更を可能とする。
【００２４】
設定部１４は、第１設定部１４ａ、第２設定部１４ｂ、第３設定部１４ｃ、第４設定部１４ｄおよび選択器１６を有し、リコンフィギュラブル回路１に所期の回路を構成するための設定データ４０を供給する。経路部２４は、フィードバックパスとして機能し、リコンフィギュラブル回路１の出力を、リコンフィギュラブル回路１の入力に接続する。内部状態保持回路２０および出力回路２２は、例えばデータフリップフロップ（Ｄ−ＦＦ）などの順序回路あるいはメモリで構成され、リコンフィギュラブル回路１の出力を受ける。内部状態保持回路２０は経路部２４に接続されている。リコンフィギュラブル回路１は組合せ回路、またはＤ−ＦＦのような状態保持を含む順序回路として構成される。
【００２５】
図２は、ＡＬＵアレイを用いたリコンフィギュラブル回路１の構成例を示す図である。図２に示すように、リコンフィギュラブル回路１は、機能の変更が可能なＡＬＵ（算術論理演算ユニット）などを含む演算部である論理回路２の集合体を複数備えた構造を有し、また、それぞれの集合体の間に設けられて、集合体間の論理回路２の接続を選択的に確立可能な少なくとも１つの接続部３を有する。
【００２６】
リコンフィギュラブル回路１において、演算機能を選択的に実行可能な複数の論理回路２がマトリックス状に配列されて、図２の例では、Ｘ段Ｙ列のＡＬＵアレイを構成し、各段に配列された複数の論理回路２が集合体を構成して、前段の集合体における処理結果が、接続部３において選択的に確立される接続にしたがって後段の集合体に引き渡される。上段から下段への論理回路間のデータ渡しは、論理回路間の接続切替を行う接続スイッチに接続データセットを設定することで、下段のどの論理回路２にデータを渡すかが定められる。動作時には、構成情報に従って演算処理し、結果を出力する。
【００２７】
各論理回路２の機能と、論理回路間の接続関係は、図１に示す設定部１４により供給される設定データ４０に基づいて設定される。設定データ４０は、以下の手順で生成される。
【００２８】
集積回路装置２６により実現されるべきプログラム３６が、記憶部３４に保持されている。プログラム３６は、信号処理回路または信号処理アルゴリズムなどをＣ言語などの高級言語で記述したものである。コンパイル部３０は、記憶部３４に格納されたプログラム３６をコンパイルし、データフローグラフ（ＤＦＧ）３８に変換して記憶部３４に格納する。データフローグラフ３８は、入力変数および定数による入力データから出力データに至る演算ないしはデータの流れをグラフ構造で表現したものである。ここで、コンパイル部３０は、リコンフィギュラブル回路１における論理回路２の集合体の接続制限に応じて、データフローグラフ３８を生成する。
【００２９】
設定データ生成部３２は、データフローグラフ３８から設定データ４０を生成する。設定データ４０は、データフローグラフ３８をリコンフィギュラブル回路１にマッピングするためのデータであり、リコンフィギュラブル回路１における論理回路２の機能や論理回路間の接続関係を定める。
【００３０】
図３は、本発明に係るリコンフィギュラブル回路１における論理回路２の一例を示す図である。図３は、図２に示すＡＬＵアレイの、ある列の３段を取り出して表したものである。図３では、接続部３の構成は省略されている。
【００３１】
リコンフィギュラブル回路１の論理回路２は、図３に示すように、ＡＬＵ２ａの１つの入力４ｂに入力選択回路（ＭＵＸ）８を備える。入力選択回路８の出力は、ＡＬＵ２ａの入力４ｃであると共に、入力伝播回路５によってＡＬＵ２ａをバイパスして、次の段のＡＬＵ２ａの入力選択回路８に接続している。また、入力伝播回路５は、入力伝播線６と入力伝播線６に設けられたデータ保持機構７を備えて構成される。ＡＬＵ２ａの出力はデータ保持機構９で保持されて、その出力を使用するＡＬＵ２ａなどに入力される。
【００３２】
入力選択回路８は、そのＡＬＵ２ａの１つの入力４ｂと、入力伝播線６で表される前の段の入力伝播回路５の出力のいずれかを選択して出力する。例えば、第１段のＡＬＵ２ａでの演算の入力として使用されたデータを、第２段のＡＬＵ２ａへの入力データとして使用する場合は、入力選択回路８は、入力伝播線６で表される前の段の入力伝播回路５の出力を選択して出力する。また、第１段のＡＬＵ２ａでの演算の出力を、第２段のＡＬＵ２ａへの入力データとして使用する場合は、入力選択回路８は、入力４ｂを選択して出力する。あるいは、内部状態保持回路２０からリコンフィギュラブル回路１（入力４ｂ）へ入力されたデータを、ＡＬＵ２ａへの入力データとして使用する場合も、入力選択回路８は、入力４ｂを選択して出力する。また、入力選択回路８は、通常は、入力伝播線６で表される前の段の入力伝播回路５の出力データを選択するようにし、入力４ｂのデータを選択する場合のみ、入力４ｂを選択して出力するようにしてもよい。なお、入力選択回路８は、上記以外の方法に基づいて、入力データを選択してもよい。
【００３３】
入力伝播回路５は、入力選択回路８の出力をＡＬＵ２ａの演算とは独立に、次の段のＡＬＵ２ａの入力選択回路８に伝達する。入力伝播回路５のデータ保持機構７は、次の段のＡＬＵ２ａの入力選択回路８に伝達するデータを保持する。データ保持機構７によって、ＡＬＵ２ａで演算が行われている間、データが保持され、ＡＬＵ２ａの出力と同時に次の段のＡＬＵ２ａにデータが入力される。
【００３４】
図３の論理回路２は、入力伝播回路５によって、ＡＬＵ２ａの算術論理演算とは別に、１つの入力４ｃを次のＡＬＵ２ａにそのまま渡すスルー演算ｍｏｖの機能を併せもっている。図１１に、従来のリコンフィギュラブル回路１における論理回路２の例を示す。図１１に示すように、従来リコンフィギュラブル回路１は、論理回路２に入力伝播回路５を備えていないので、ｍｏｖ機能を実現するために１つの論理回路２が使用される。従来のリコンフィギュラブル回路１に比較して、図３の論理回路２によれば、ｍｏｖ機能のために複合演算機能を有するＡＬＵ２ａを使用しなくて済む。
【００３５】
その結果、同じ演算処理を実現するリコンフィギュラブル回路１の論理回路２が少なくて済むので、リコンフィギュラブル回路１の規模を小さくできる。あるいは、同じ回路規模では、従来スルー演算ｍｏｖに使用していた論理回路２を他の演算に使用できる。複数の演算機能を有するＡＬＵ２ａに比べて、入力選択回路８、入力伝播線６及びデータ保持機構７を併せた回路の規模は極めて小さいので、リコンフィギュラブル回路１の処理能力対回路規模の効率が向上する。
【００３６】
本実施の形態では、コンパイル部３０が１つの論理回路２の入力を次の段の論理回路２にそのまま渡すスルー演算ｍｏｖを、入力伝播回路５に割り当てるＤＦＧ３８を生成する機能を有する。すなわち、１つの論理回路に割り当てる演算の入力が、その演算の次に実行される演算にそのまま使用されるか否かを判定して、その入力が次の演算に使用される場合は、その演算を実行する論理回路２の入力伝播回路５にその入力を伝播するスルー演算ｍｏｖを割り当てる。なお、この処理機能は、設定データ生成部３２により実現されてもよい。その場合は、設定データ生成部３２が、コンパイル部３０が最初に生成したＤＦＧ３８のｍｏｖを入力伝播回路に置き換えて、複数の論理回路２の設定データ４０を生成する。
【００３７】
本発明のリコンフィギュラブル回路１によれば、同じ演算を実行する回路規模が従来のリコンフィギュラブル回路より小さくなることを、例を挙げて説明する。図４は、リコンフィギュラブル回路１で実行するプログラム３６の一例を示す。図４のプログラム３６は、次の処理を表す。
（Ａ１）：変数ｘから１を減算する。
（Ａ２）：変数ｙで示されるアドレスのデータを１ビット左にシフトする。
（Ａ３）：変数ｙで示されるアドレスのデータに変数ｘを加える。
（Ａ４）：（Ａ２）と（Ａ３）の処理をさらに２回繰り返す。
【００３８】
図５は、図４のプログラム３６の処理を従来のリコンフィギュラブル回路で実行する場合のＤＦＧ３８の例を示す。図５は２列のＡＬＵアレイを使用する場合である。図５の四角で示される記号Ｐ、Ｑ、Ｒは入力変数及び出力変数を表す。丸で示される記号は、丸の中の演算を行うＡＬＵ２ａを表す。＜＜１は１ビット左にシフトを、＋は２つの入力の加算を表す。図５の左の列では、上記の（Ａ２）と（Ａ３）を３回繰り返す処理が行われる。
【００３９】
図５の左の列では、変数ｙで示されるアドレスのデータを１ビット左にシフトする（ステップＳ１）。同じタイミングで、右の列では、変数ｘから１を減算する（ステップＳ７）。次に、変数ｙで示されるアドレスのデータに変数ｘを加える（ステップＳ２）。そのとき、変数ｘの値がステップＳ７の出力で与えられる。
【００４０】
ステップＳ１及びステップＳ２と同じ処理をさらに２回繰り返す（ステップＳ３〜Ｓ６）。ステップＳ４で加算される変数ｘの値は、右の列のスルー演算ｍｏｖステップＳ８及びＳ９の出力で与えられる。また、ステップＳ６で加算される変数ｘの値は、右の列のスルー演算ｍｏｖステップＳ１０及びＳ１１の出力で与えられる。
【００４１】
図５の右の列では、変数ｘから１を減算した結果を、左の列の加算に用いるために、スルー演算ｍｏｖが４回使われる。図５の従来の例では、２列６段、合計１１個のＡＬＵ２ａが使用される。
【００４２】
図６は、図４のプログラム３６の処理を図３に示す論理回路構成を有するリコンフィギュラブル回路１で実行する場合のＤＦＧ３８の例を示す。図６の左の列のステップＴ１〜Ｔ６は、図５のステップＳ１〜Ｓ６と同じ処理であるが、ステップＴ４及びステップＴ６で加算される変数ｘの値は、それぞれ前の段のＡＬＵ２ａの入力伝播回路５の出力で与えられる。図６に示すように、変数ｘから１が減算された値（ステップＴ７の出力）は、左の列のＡＬＵ２ａの入力伝播回路５で下の段のＡＬＵ２ａにそのまま渡されるので、図５の右の列のスルー演算ｍｏｖ（ステップＳ８〜Ｓ１１）は削除されている。図６の例では、合計７個のＡＬＵ２ａしか使われていない。
【００４３】
従来のリコンフィギュラブル回路でスルー演算ｍｏｖに使用されていたＡＬＵ２ａは、本発明のリコンフィギュラブル回路１では不要になり、その分だけ回路を縮小するか、スルー演算ｍｏｖに使用されていたＡＬＵ２ａを他の演算に使用することができる。その結果、リコンフィギュラブル回路１の処理能力対回路規模の効率が向上する。また、スルー演算ｍｏｖに使用されていたＡＬＵ２ａを削減できるので、従来データを伝播するために使用していた論理回路２への命令がなくなるため、命令を格納するメモリの容量が少なくなり、回路規模が削減される。そして、論理回路２の削減により、消費電力が少なくて済む。
【００４４】
図７は、リコンフィギュラブル回路１で実行するプログラム３６の異なる例を示す。図７のプログラム３６は、次の処理を表す。
（Ｂ１）：変数ｘから１を減算する。
（Ｂ２）：変数ｙで示されるアドレスのデータを１ビット左にシフトする。
（Ｂ３）：変数ｙで示されるアドレスのデータに変数ｘを加える。
（Ｂ４）：（Ｂ２）と（Ｂ３）をさらに２回繰り返す。
（Ｂ５）：変数ｘを２ビット左にシフトする。
（Ｂ６）：変数ｘに２を加算する。
（Ｂ７）：（Ｂ５）と（Ｂ６）を繰り返す。
（Ｂ８）：変数ｘを３ビット左にシフトする。
（Ｂ９）：変数ｙで示されるアドレスのデータに変数ｘを加える。
【００４５】
図８は、図７のプログラム３６の処理を従来のリコンフィギュラブル回路で実行する場合のＤＦＧ３８の例を示す。図８は２列のＡＬＵアレイを使用する場合である。図８の左の列では、上記の変数ｙに関する演算処理が行われる。図８の右の列では、変数ｘに関する演算処理が行われる。図８のＤＦＧ３８は、図５のＤＦＧ３８にステップＳ１２〜ステップＳ２１が追加された処理となっている。図８のステップＳ１〜ステップＳ１１は、図５のステップＳ１〜ステップＳ１１と同じである。
【００４６】
図８の右の列では変数ｘから１を減算した結果を、左の列の加算に用いるために、スルー演算ｍｏｖが４回使われる（ステップＳ８〜ステップＳ１１）。図８の左の列では、上記（Ｂ５）〜（Ｂ８）の変数ｘの処理が行われるＡＬＵ２ａの段（ステップＳ１７〜ステップＳ２１）の間、データを受け渡すためにスルー演算ｍｏｖが４回使われる（ステップＳ１２〜Ｓ１５）。そして、最後にステップＳ６の出力をスルー演算して保持した値に、（Ｂ８）の処理結果（ステップＳ２１の出力）を加算する（ステップＳ１６）。図８の従来の例では、２列１１段、合計２１個のＡＬＵ２ａが使用される。
【００４７】
図９は、図７のプログラム３６の処理を図３に示す論理回路構成を有するリコンフィギュラブル回路１で実行する場合のＤＦＧ３８の例を示す。図９のＤＦＧ３８は、図６のＤＦＧ３８にステップＴ８〜ステップＴ１３が追加された処理となっている。図９のステップＴ１〜ステップＴ７は、図６のステップＴ１〜ステップＴ７と同じである。図６の例と同様、変数ｘから１が減算された値は、左の列のＡＬＵの入力伝播回路で下の段のＡＬＵにそのまま渡されるので、図８の右の列のスルー演算ｍｏｖ（ステップＳ８〜ステップＳ１１）は削除されている。
【００４８】
図７のプログラム３６の例では、上記（Ｂ５）〜（Ｂ８）の変数ｘの処理は変数ｙに関する処理と独立に実行できる。変数ｙに関する上記処理（Ｂ２）〜（Ｂ４）では、変数ｘの値は入力伝播回路によって左の列の下の段に渡されるので、右の列では、並行して変数ｘに関する処理を実行することができる（ステップＴ８〜ステップＴ１２）。そして、最後にステップＴＳ６の出力に、（Ｂ８）の処理結果（ステップＴ１２の出力）を加算する（ステップＴ１６）。
【００４９】
その結果、図８の左の列の４つのｍｏｖ（ステップＳ１２〜ステップＳ１５）を削除することができるだけでなく、上記処理（Ｂ２）〜（Ｂ４）と（Ｂ５）〜（Ｂ８）を並行して行うことによって、全体のＡＬＵ２ａの段数を削減することができる。図９の例では、２列７段、合計１３個のＡＬＵで図７のプログラム３６の処理を実行できる。
【００５０】
本発明のリコンフィギュラブル回路１によれば、図９に示すように実行する処理によっては、従来のリコンフィギュラブル回路に比べて、スルー演算ｍｏｖに用いるＡＬＵ２ａを削減できるだけでなく、処理を実行するＡＬＵ２ａの段数を削減することができる。その結果、リコンフィギュラブル回路１のスループット及び応答時間が向上し、処理時間が短縮できる。
【００５１】
以上、説明したように、本発明のリコンフィギュラブル回路１によれば、従来、データを伝播するために使用していた論理回路を他の演算に使用できるため、処理効率が向上し、処理時間を短縮できる。また、従来データを伝播するために使用していた論理回路への命令がなくなるため、命令を格納するメモリの容量が少なくなり、回路規模が削減される。そして、論理回路の削減により、消費電力が少なくて済む。さらに、処理段数の短縮により、処理能力（スループット及び応答時間）が向上する。
【００５２】
図１０は、図３の例とは異なる形態の入力伝播回路５を備えたリコンフィギュラブル回路１の構成を示す図である。図１０は、図２に示すＡＬＵアレイの、ある列の２段を取り出して表したものである。図１０では、接続部３の構成は省略されている。図３の形態ではＡＬＵ２ａの一方の入力４ｃのみ、次の段のＡＬＵに伝達可能であったが、図１０の論理回路形態では、ＡＬＵ２ａの２つの入力４ａ又は４ｃのどちらかを選択して次の段に伝達することができるように、また、ＡＬＵ２ａの入力４ａ、４ｃとは独立に前の段の入力伝播回路５の出力を次の段に伝達できるようにするために、入力選択回路（ＭＵＸ）８ｂ及び８ｃが加わっている。
【００５３】
図１０の論理回路２では、１つのＡＬＵ２ａに入力選択回路８ａ、８ｂ、８ｃを備える。入力選択回路８ａは一方の入力４ｂと前の段の入力伝播回路５のデータのいずれかを選択する。入力選択回路８ｂは、もう一方の入力４ａと入力選択回路８ａの出力（入力４ｃ）のいずれかを選択する。入力選択回路８ｃは、入力選択回路８ｂの出力と、前の段の入力伝播回路５のデータのいずれかを選択する。入力伝播回路５で次の段に伝達するデータは、入力４ａ、入力４ｂ、前の段の入力伝播回路５の出力のいずれかを選択することができる。
【００５４】
入力４ａを次の段に伝達する場合、入力選択回路８ｂで入力４ａを選択し、入力選択回路８ｃで入力選択回路８ｂの出力を選択する。入力４ｂを次の段に伝達する場合、入力選択回路８ａで入力４ｂを選択し、入力選択回路８ｂで入力選択回路８ａの出力を選択し、さらに、入力選択回路８ｃで入力選択回路８ｂの出力を選択する。前の段の入力伝播回路５のデータを次の段に伝達する場合は、入力選択回路８ｃで前の段の入力伝播回路５のデータを選択する。
【００５５】
図３の形態ではＡＬＵ２ａが入力４ａと４ｂの両方のデータを使用する場合、伝播されるデータは一方の入力４ｂに設定されなければならない。図１０の論理回路２の構成では、ＡＬＵ２ａの入力とは独立に前の段の入力伝播回路５のデータを選択して次の段に伝達することができる。
【００５６】
図１０の論理回路２では、次の伝達パターンが可能である。
（Ｃ１）：ＡＬＵ２ａの入力に関係なく、前の段の入力伝播回路５のデータを次の段に伝達する。この場合、ＡＬＵ２ａは入力４ａと、入力４ｂ又は前の段の入力伝播回路５のデータを使用することができる。
（Ｃ２）：入力４ａを次の段に伝達する。この場合も、ＡＬＵ２ａは入力４ａと、入力４ｂ又は前の段の入力伝播回路５のデータを使用することができる。
（Ｃ３）：入力４ｂを次の段に伝達する。この場合、ＡＬＵ２ａは入力４ａと入力４ｂを使用することができる。
【００５７】
入力選択回路８ａ、８ｂ、８ｃにより、入力４ａ又は入力４ｂのどちらでも伝達可能となる。また、図１０の形態ではＡＬＵ２ａの入力４ａ、４ｂと入力伝播回路５のデータのいずれかを選択する入力選択回路８ｃを備えている。上記２つの入力選択回路８ｂと８ｃは併用させる必要はなく、どちらか一方のみで構成してもよい。図１０の形態は、図３の形態よりも入力伝播回路５の使用方法に柔軟性があるが、その反面、回路規模、コマンドデータ量は少し大きくなる。そのため、どちらを採用するかはリコンフィギュラブル回路１を応用するシステムに依存する。
【００５８】
本実施の形態では、ＡＬＵ２ａの一つの入力のみ次のＡＬＵ２ａに伝達する入力伝播回路５を備えているが、入力伝播回路５は１つの入力に限定されるものではない。また、図３及び図１０の多段構成のＡＬＵアレイで、入力伝播回路５は直下の論理回路２に接続されるように記載されているが、論理回路２は１段であってもよく、入力伝播回路５は直下の論理回路接続に限定されるものではない。
【００５９】
なお、リコンフィギュラブル回路１の全てのＡＬＵに入力伝播回路５を設ける必要はない。リコンフィギュラブル回路１を適用するシステムの特性に応じて、一部の論理回路に入力伝播回路５を備える構成であってもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施の形態に係るリコンフィギュラブル回路を備える処理装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係るリコンフィギュラブル回路の構成の例を示すブロック図である。
【図３】本発明に係るリコンフィギュラブル回路における論理回路の一例を示す図である。
【図４】リコンフィギュラブル回路で実行するプログラムの一例を示す図である。
【図５】図４のプログラムの処理を従来のリコンフィギュラブル回路で実行する場合のＤＦＧの例を示す図である。
【図６】図４のプログラムの処理を図３に示す論理回路構成を有するリコンフィギュラブル回路で実行する場合のＤＦＧの例を示す図である。
【図７】リコンフィギュラブル回路で実行するプログラムの異なる例を示す図である。
【図８】図７のプログラムの処理を従来のリコンフィギュラブル回路で実行する場合のＤＦＧの例を示す図である。
【図９】図７のプログラムの処理を図３に示す論理回路構成を有するリコンフィギュラブル回路で実行する場合のＤＦＧの例を示す図である。
【図１０】本発明に係るリコンフィギュラブル回路における論理回路の異なる例を示す図である。
【図１１】従来のリコンフィギュラブル回路における論理回路の例を示す図である。
【符号の説明】
【００６１】
１    リコンフィギュラブル回路
２    論理回路
２ａ  ＡＬＵ
３    接続部
４ａ、４ｂ、４ｃ  入力
５    入力伝播回路
６    入力伝播線
７    データ保持機構
８、８ａ、８ｂ、８ｃ  入力選択回路
１０    処理装置
３０    コンパイル部
３２    設定データ生成部
３４    記憶部
３６    プログラム
３８    データフローグラフ
４０    設定データ
【図１】
0004673739.tif 000002
【図２】
0004673739.tif 000003
【図３】
0004673739.tif 000004
【図４】
0004673739.tif 000005
【図５】
0004673739.tif 000006
【図６】
0004673739.tif 000007
【図７】
0004673739.tif 000008
【図８】
0004673739.tif 000009
【図９】
0004673739.tif 000010
【図１０】
0004673739.tif 000011
【図１１】
0004673739.tif 000012