(57)【要約】【課題】リコンフィギュラブル回路で実現された回路構成には未使用の論理回路が多く、効率的でない。【解決手段】リコンフィギュラブル回路１２には、縦Ｘ段、横Ｙ列のＡＬＵ配列が設けられている。第１段のＡＬＵ１１、ＡＬＵ１２、・・・、ＡＬＵ１Ｙには、入力変数や定数のデータが入力され、その演算結果が、第１段の接続結線３０を介して、第２段のＡＬＵ２１、ＡＬＵ２２、・・・、ＡＬＵ２Ｙに入力される。第１段の接続結線３０は、第１段のＡＬＵ列の出力と第２段のＡＬＵ列の入力の間の特定の接続関係を設定により実現する。さらに、第１段の接続結線３０には、第２段のＡＬＵ列にデータを直接入力するための第２段用直接入力結線が設けられる。以下、第（Ｘ−１）段の接続結線３０まで同様に構成され、最終段である第Ｘ段のＡＬＵ列は演算の最終結果を出力する。【選択図】        図２
2004221997.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを含み、前記接続部には、論理回路間の接続用結線とは別に、途中段の論理回路へのデータの直接入力が可能な入力用結線が設けられていることを特徴とするリコンフィギュラブル回路。
【請求項２】
前記論理回路は、複数種類の多ビット演算を選択的に実行可能な算術論理回路であることを特徴とする請求項１に記載のリコンフィギュラブル回路。
【請求項３】
前記入力用結線は前記多段配列の一部の段に制限して設けられたことを特徴とする請求項１または２に記載のリコンフィギュラブル回路。
【請求項４】
前記入力用結線は前記多段配列の上位ｎ段（ｎは整数）に制限して設けられたことを特徴とする請求項３に記載のリコンフィギュラブル回路。
【請求項５】
前記入力用結線は各段に配置された前記論理回路の一部の列に制限して設けられたことを特徴とする請求項１から４のいずれかに記載のリコンフィギュラブル回路。
【請求項６】
複数の演算機能を選択的に実行可能な論理回路が、途中段の論理回路へのデータの直接入力が可能な多段アレイ構造で接続されたリコンフィギュラブル回路と、
前記リコンフィギュラブル回路における各論理回路の機能と論理回路間の入出力の接続関係を設定するための設定データを記憶する記憶部と、
前記記憶部から前記設定データを読み込み、前記リコンフィギュラブル回路にロードする設定部とを含むことを特徴とする集積回路装置。
【請求項７】
前記設定データは、処理すべき演算のデータフローを表すグラフを、途中段の論理回路へのデータの直接入力を適宜利用した形式で、前記多段アレイ構造の論理回路にマッピングすることにより生成されたものであることを特徴とする請求項６に記載の集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、集積回路技術に関し、特にリコンフィギュラブル回路、およびそれを利用可能な集積回路装置に関する。
【０００２】
【従来の技術】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）はＬＳＩ製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウエアの設計に利用されている。ＦＰＧＡは、論理回路の真理値表を格納するためのルックアップテーブル（ＬＵＴ）と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。ＦＰＧＡでは、ＬＵＴに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、ＦＰＧＡでＬＳＩを設計した場合、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  ＩＣ）による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、ＦＰＧＡを動的に再構成することで、回路構成の再利用を図る方法が提案されている（たとえば、特許文献１参照）。
【０００３】
【特許文献１】
特開平１０−２５６３８３号公報  （全文、第１−４図）
【０００４】
【発明が解決しようとする課題】
特に携帯電話やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）などのモバイル端末に搭載されるＬＳＩは小型化が必須であり、ＬＳＩを動的に再構成して、用途に合わせて適宜機能を切り替えることができれば、ＬＳＩの実装面積を抑えることができる。また、衛星放送では、電波が雨の水滴に当たると弱まり届きにくくなる性質があるため、降雨時には、雨の影響を受けにくい低解像度の画面を同時に送る降雨対応放送にモードを切り替えて放送することがあるが、受信機では、放送モードごとに回路を別構成で設け、放送モードに合わせて回路を切り替えて放送を受信している。雨が降り始めると、放送モードが切り替わり、晴れるまでそのモードでの放送が続くが、その間、受信機の他の放送モード用の回路は遊んでいることになる。モード切り替えのように、複数の専用回路を切り替えて使用し、その切り替え間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切り替え時にＬＳＩを瞬時に再構成することにすれば、回路構造をシンプルにして汎用性を高め、同時に実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なＬＳＩに製造業界の関心が集まっている。
【０００５】
ＦＰＧＡは回路構成の設計の自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのＯＮ／ＯＦＦを制御するための制御回路を含み、制御回路の実装面積が大きくなる。また、基本セル間を接続するために複雑な配線パターンを取るため、配線が長くなる傾向があり、また１本の配線に多くのスイッチが接続される構造であるため、遅延が大きくなる。そのため、ＦＰＧＡによるＬＳＩは、試作や実験のために利用されるにとどまることが多く、実装効率、性能、コストなどを考えると、量産には適していない。
【０００６】
さらに、ＦＰＧＡでは、多数のＬＵＴ方式の基本セルに設定データを送る必要があるため、回路のコンフィグレーションにはかなりの時間がかかる。したがって、瞬時に回路構成の切り替えが必要な用途にはＦＰＧＡは一切使うことができない。
【０００７】
本発明はこうした状況に鑑みてなされたもので、その目的は、実装面積、消費電力、回路再構成速度などの面から見て有利なリコンフィギュラブル回路およびそれを利用した集積回路装置の提供にある。
【０００８】
【課題を解決するための手段】
本発明のある態様は、リコンフィギュラブル回路に関する。この回路は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを含み、前記接続部には、論理回路間の接続用結線とは別に、途中段の論理回路へのデータの直接入力が可能な入力用結線が設けられている。接続部は、論理回路の出力を他の論理回路の入力に接続するための接続用結線を有し、設定により特定の接続関係にある結線を有効にすることができる。
【０００９】
上段から下段に向かって演算が進められる論理回路の多段配列において、最上段の論理回路列には、入力変数や定数のデータが直接入力される。途中段すなわち第２段以降の論理回路列には、一般には、前段の論理回路列からの出力結果が入力されるが、処理する演算によっては、必要に応じて、第２段以降の論理回路列に入力変数や定数のデータが直接入力される。そのために、第２段以降の論理回路列にデータを直接入力するための入力用結線が設けられる。
【００１０】
各論理回路は、比較的高性能な演算が可能な回路であってもよく、たとえば、複数種類の多ビット演算を選択的に実行可能な算術論理回路（ＡＬＵ）であってもよい。外部からロードされた設定データにより、各論理回路において、複数の演算機能の内、いずれを選択するかが設定されてもよい。ＡＬＵのように各論理回路内で特定の機能が構築されている場合には、リコンフィギュラブル回路全体で実行する演算に必要なデータを入力すべき論理回路が比較的容易に特定できるので、途中段への直接入力のために設けられた結線が有効に利用される。
【００１１】
論理回路の多段配列の構造は、横方向に並べられた論理回路の列が縦方向に複数段組み合わされた配列において、横方向の論理回路間の接続用結線はなく、各段の論理回路列の出力と直後の段の論理回路列の入力との間に接続用結線が設けられた構造であってもよい。接続結線を縦方向のみにした場合、回路規模を小さくしてシンプルな構造にすることができるが、横方向にも接続結線を設けたメッシュ構造であれば、同じ数の論理回路の配列でより複雑な演算を実行できる。
【００１２】
前記入力用結線は各段の接続部に設けてもよく、少なくとも一部の段、たとえば、途中段の内、上位のｎ段（ｎは整数）に制限して設けてもよい。さらに、同一段に配置された前記論理回路の一部の列に制限して入力用結線を設けてもよい。一般に、多段の論理回路を用いて上の段から下の段へ演算を進める場合、上段の論理回路ほど多数のデータの入力を必要とし、下段に進むほど、演算に必要な論理回路の数が減るといった逆三角形の演算構造になることが多い。このため、上位段の論理回路には入力用結線を多めに設けることで、論理回路配列の有効利用が可能となる。
【００１３】
本発明のさらに別の態様は集積回路装置に関する。この装置は、複数の演算機能を選択的に実行可能な論理回路が、途中段の論理回路へのデータの直接入力が可能な多段アレイ構造で接続されたリコンフィギュラブル回路と、前記リコンフィギュラブル回路における各論理回路の機能と論理回路間の入出力の接続関係を設定するための設定データを記憶する記憶部と、前記記憶部から前記設定データを読み込み、前記リコンフィギュラブル回路にロードする設定部とを含む。前記設定データで設定される論理回路の演算機能と論理回路間の入出力の接続関係は、処理すべき演算のデータフローを表すグラフを、途中段の論理回路へのデータの直接入力を適宜利用した形式で、多段アレイ構造の論理回路にマッピングすることにより生成されてもよい。このマッピングにより、入力変数や定数などのデータの直接入力を要する途中段の論理回路を特定することができ、必要なデータを直接その論理回路に供給することが可能である。
【００１４】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。
【００１５】
【発明の実施の形態】
図１は、実施の形態に係る集積回路装置１０および外部制御装置２４の構成図である。外部制御装置２４は、集積回路装置１０の回路構成を設定するためのデータを作成して、集積回路装置１０に供給するものである。
【００１６】
集積回路装置１０は、リコンフィギュラブル回路１２と、リコンフィギュラブル回路１２を再構成するための設定データ１７を格納する設定データ記憶部１６と、リコンフィギュラブル回路１２に設定データ１７をロードする設定部１４とを含む。外部制御装置２４は、制御部１８と、コンパイル部２０と、プログラム記憶部２２とを含む。
【００１７】
外部制御装置２４のプログラム記憶部２２は、集積回路装置１０が実行すべき各種のプログラム１９を保持する。コンパイル部２０はプログラム記憶部２２に格納されたプログラム１９をコンパイルして、データフローグラフ２１に変換してプログラム記憶部２２に格納する。データフローグラフ２１は、後述のように、入力変数および定数の演算の流れをグラフ構造で示したものである。
【００１８】
データフローグラフ２１は、リコンフィギュラブル回路１２の回路構成にマッピングするための設定データ１７に変換され、制御部１８を介して、集積回路装置１０の設定部１４に供給され、設定データ記憶部１６に格納される。設定データ記憶部１６には、処理すべき演算のデータフローグラフ２１に対応して複数の設定データ１７があらかじめ格納される。設定部１４は、設定データ記憶部１６から適宜設定データ１７を読み出し、リコンフィギュラブル回路１２にロードすることで、リコンフィギュラブル回路１２を再構成する。再構成されたリコンフィギュラブル回路１２は、ロードされた設定データ１７にもとづいた演算を行う。
【００１９】
図２は、リコンフィギュラブル回路１２の構成図である。リコンフィギュラブル回路１２は、複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）の列が複数段にわたって配列されたもので、各段に設けられた接続結線３０によって、前段のＡＬＵ列の出力と後段のＡＬＵ列の入力が設定により任意に接続可能となっている。さらに、最初の段を除く途中段のＡＬＵ列については、入力変数や定数の直接入力のための入力用結線が各段の接続結線３０に設けられている。各ＡＬＵは、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる。
【００２０】
同図のように、横方向にはＹ個、縦方向にはＸ個のＡＬＵが配置されており、第１段のＡＬＵ１１、ＡＬＵ１２、・・・、ＡＬＵ１Ｙには、入力変数や定数が入力され、設定により所定の演算がなされる。演算結果の出力は、第１段の接続結線３０に設定された接続にしたがって、第２段のＡＬＵ２１、ＡＬＵ２２、・・・、ＡＬＵ２Ｙに入力される。第１段の接続結線３０には、第１段のＡＬＵ列の出力と第２段のＡＬＵ列の入力の間の任意の接続関係を実現できるように結線が構成されており、設定により特定の結線が有効となる。さらに、第１段の接続結線３０には、第２段のＡＬＵ２１、ＡＬＵ２２、・・・、ＡＬＵ２Ｙにデータを直接入力するための第２段用直接入力結線が設けられている。以下、第（Ｘ−１）段の接続結線３０まで、同様の構成であり、最終段である第Ｘ段のＡＬＵ列は演算の最終結果を出力する。
【００２１】
データフローグラフ２１をリコンフィギュラブル回路１２にマッピングするための設定データ１７には、各ＡＬＵの演算を選択する情報、ＡＬＵ列間の接続結線を選択する情報、第１段および途中段のＡＬＵ列の入力結線を選択する情報、および入力される変数と定数の値が含まれる。
【００２２】
データフローグラフ２１は、一般に、演算の段階が進むにつれて、必要なＡＬＵの数が減っていく逆三角形状のグラフ構造になることが多いが、第１段のＡＬＵ列だけでなく、途中段のＡＬＵ列にもデータの入力が可能に構成することで、横方向のＡＬＵ列の個数による制約を受けることなく、データフローグラフ２１をリコンフィギュラブル回路１２にマッピングすることが可能となる。
【００２３】
図３から図５は、途中入力の可能なＡＬＵ配列に制約をもたせたリコンフィギュラブル回路１２を説明する図である。すべてのＡＬＵに途中入力を可能とすると、直接入力結線により接続結線３０の回路規模が大きくなるため、途中入力の可能なＡＬＵ配列の段数や列数を限定することが実装面積を少なくする点で有利である。
【００２４】
図３は、途中入力可能なＡＬＵ配列の段数を限定した場合のリコンフィギュラブル回路１２の例である。縦４段、横４列のリコンフィギュラブル回路１２の第１段および第２段の接続結線３２のみに直接入力結線が設けられ、第２段および第３段のＡＬＵ列へのデータの直接入力が可能である。
【００２５】
図４は、途中入力可能なＡＬＵ配列の列数を限定した場合のリコンフィギュラブル回路１２の例である。リコンフィギュラブル回路１２の全段の接続結線３６に、直接入力結線が設けられるが、横方向については、左から２列までに限定される。たとえば、第１段の接続結線３６には、第２段のＡＬＵ列の内、第１列のＡＬＵ２１および第２列のＡＬＵ２２についてのみ直接入力が可能である。
【００２６】
図５は、途中入力可能なＡＬＵ配列の段数、列数をともに限定した場合のリコンフィギュラブル回路１２の例である。リコンフィギュラブル回路１２の第１段および第２段の接続結線３８にのみ直接入力結線が設けられ、横方向についても、左から２列までに限定され、第２段の第１、第２列、および第３段の第１、第２列のＡＬＵに対してのみデータの直接入力が可能である。
【００２７】
図６は、データフローグラフ２１の例を示す図である。このデータフローグラフ２１は、入力Ｘ、Ｙの乗算を示す。図中、演算子は丸印で示され、「＋」は論理和、「＆」は論理積、「＜＜」は左ビットシフト、「＞＞」は右ビットシフト、「＝＝」は等号成立判定、「ＳＥＬ」は判定結果による真（Ｔ）、偽（Ｆ）のいずれかの選択を行う演算子である。また、入力変数、定数、および出力を四角で示す。実線はデータ信号線、点線は選択演算子からの選択信号である。入力Ｘ、Ｙは共に正の整数であり、Ｙは２ビットである。このデータフローグラフ２１による乗算の結果が出力ＡＮＳとして最終的に出力される。
【００２８】
図７は、途中段への直接入力のできないリコンフィギュラブル回路１２に図６のデータフローグラフ２１をマッピングした例を示す。いずれの接続結線４２にも直接入力結線は設けられていないため、すべての入力変数Ｘ、Ｙおよび定数（符号４６〜６０で示す）を最初の段のＡＬＵ列に入力しなければならない。入力変数および定数の入力のために、横方向に８列のＡＬＵが必要であり、また、５段階の演算を行うために縦方向に５段のＡＬＵ列が必要である。したがって、同図のように、縦５段、横８列のリコンフィギュラブル回路１２にデータフローグラフ２１がマッピングされる。図中、使用されるＡＬＵを実線の丸印で示し、使用されないＡＬＵを点線の丸印で示す。「ＭＯＶ」は入力値を演算せずにそのまま出力することを示す。後半の段においてかなりの数のＡＬＵが使用されないことになり、ＡＬＵ配列の利用効率が良くない。
【００２９】
図８は、途中段への直接入力のできるリコンフィギュラブル回路１２に図６のデータフローグラフ２１をマッピングした例を示す。この場合、直接入力付き接続結線４４が全段に設けられ、図７において第１段のＡＬＵ列に入力されていた一部の定数５０、５２、５８、６０を、図８においては第２段および第３段のＡＬＵ列に直接入力することにより、縦５段、横４列のリコンフィギュラブル回路１２にデータフローグラフ２１がマッピングされる。
【００３０】
図９（ａ）は、図７の接続結線４２、図９（ｂ）は図８の直接入力付き接続結線４４の構成を説明する図である。図７の接続結線４２は、前段のＡＬＵ列からの４つのデータ信号ＡＬＵＸ１〜ＡＬＵＸ４の中から１つを選択するためのｎビットの４対１セレクタ６２と、前段のＡＬＵ列からの４つの選択信号ＡＬＵＸ１ＬＳＢ〜ＡＬＵＸ４ＬＳＢの中から１つを選択するための１ビットの４対１セレクタ６４を含む。セレクタ６２、６４の出力結果は、後段のＡＬＵ列の各ＡＬＵ６６に入力される。したがって、セレクタ６２、６４を設定することにより、前段のＡＬＵ列の出力と後段のＡＬＵ列の入力の特定の接続関係が実現される。
【００３１】
図８の接続結線４４の場合、前段のＡＬＵ列からの出力信号の以外に直接入力される信号があるため、前段のＡＬＵ列からの４つのデータ信号および直接入力のデータ信号の中から１つを選択するためのｎビットの５対１セレクタ６８と、前段のＡＬＵ列からの４つの選択信号および直接入力の選択信号の中から１つを選択するための１ビットの５対１セレクタ７０が設けられることになる。セレクタ６８、７０の出力結果は、後段のＡＬＵ列の各ＡＬＵ７２に入力される。直接入力用の結線のため、直接入力付き接続結線４４の回路規模は図７の接続結線４２に比べて大きくなる。
【００３２】
図１０は、図８の構成において、直接入力のできる段数を制限した場合であり、データが直接入力される第２段および第３段のＡＬＵ列に対しては、同図のように直接入力付き接続結線４４が設けられる。一方、それ以外の段のＡＬＵ列に対しては、直接入力結線のない接続結線４２が設けられるので、その分だけ回路規模を小さくすることができる。
【００３３】
図１１は、図１０の構成において、さらに多くの直接入力を設けた場合である。図１０において第１段のＡＬＵ列に入力されていた２つの定数４６、４８をそれぞれ、図１１においては第２段および第３段のＡＬＵ列に直接入力し、さらに入力変数Ｘを第２段および第３段のＡＬＵ列に直接入力する構成にすることで、縦５段、横３列のリコンフィギュラブル回路１２にデータフローグラフ２１がマッピングされる。ＡＬＵ列の列数が１つ少なくなり、使用するＡＬＵの数が減っているため、より小さい回路規模で実現される。
【００３４】
図１２は、図１０の構成において、さらに直接入力のできる列数を制限した場合である。第２段および第３段のＡＬＵ列において、データが直接入力されるのは、右側の２列だけであることから、同図のように、第２段および第３段のＡＬＵ列の右２列に対してのみ、直接入力付き接続結線４５が設けられ、左２列に対しては、直接入力結線のない接続結線４３が設けられる。図１０の直接入力付き接続結線４４に比べて、図１２の直接入力付き接続結線４５は直接入力結線が少ない分、より小さい回路規模で実現される。
【００３５】
図１３は、別のデータフローグラフ２１を途中段への直接入力のできないリコンフィギュラブル回路１２にマッピングした例を示す。この例では、縦６段、横９列のリコンフィギュラブル回路１２にデータフローグラフ２１がマッピングされており、いずれの接続結線８０にも直接入力結線は設けられていないため、すべての入力変数Ｘ、Ｙ、Ｚ、Ｗおよび定数（符号８４〜９６で示す）が最初の段のＡＬＵ列に入力される。この例のデータフローグラフ２１では、計算の後半の段階でより多くの定数が利用されることに特徴がある。したがって、途中段への直接入力のできるリコンフィギュラブル回路１２にこのデータフローグラフ２１をマッピングする場合は、後半の段に対する直接入力を可能とした方が効率がよい。
【００３６】
図１４は、図１３と同じデータフローグラフ２１を、下段への直接入力のできるリコンフィギュラブル回路１２にマッピングした例を示す。第２段および第３段のＡＬＵ列に対しては、直接入力結線のない接続結線８０が設けられているが、それ以降の下段、すなわち第４段から第６段までのＡＬＵ列に対しては、直接入力付き接続結線８２が設けられている。この例では、第４段のＡＬＵ列に対しては、３つの定数８６、９２、９６と入力変数Ｗが直接入力され、第５段のＡＬＵ列に対しては、２つの定数８４、９４が直接入力される。第６段のＡＬＵ列に対しても直接入力付き接続結線８２が設けられているが、この例では、第６段のＡＬＵ列に対して直接入力はされない。このように構成することで、縦６段、横３列のリコンフィギュラブル回路１２にデータフローグラフ２１をマッピングすることができる。この例に見るように、最上段から数段について直接入力を可能にした構成だけでなく、最下段から数段について直接入力を可能にした構成がデータフローグラフ２１のマッピングに好都合となることもある。
【００３７】
図１５は、さらに別のデータフローグラフ２１を途中段への直接入力のできないリコンフィギュラブル回路１２にマッピングした例を示す。この例では、縦６段、横１０列のリコンフィギュラブル回路１２にデータフローグラフ２１がマッピングされており、いずれの接続結線８０にも直接入力結線は設けられていないため、すべての入力変数Ｘ、Ｙ、Ｚおよび定数（符号９８〜１１６で示す）が最初の段のＡＬＵ列に入力される。この場合、図１６のように、途中段への直接入力を左２列に限定した構成にすることで、縦６段、横３列のリコンフィギュラブル回路１２にデータフローグラフ２１をマッピングすることができる。同図のように、各段のＡＬＵ列の第１列および第２列に対して、直接入力付き接続結線８３が設けられ、各段のＡＬＵ列の第３列に対しては、直接入力結線のない接続結線８１が設けられている。この例では、図１５の第１段に入力される定数の内、２つの定数１０４、１１０が第２段のＡＬＵ列に、別の２つの定数１０２、１１２が第３段のＡＬＵ列に、さらに別の２つの定数１００、１１６が第４段のＡＬＵ列に、さらに別の１つの定数９８が第５段のＡＬＵ列に直接入力される。また入力変数Ｚは第４段のＡＬＵ列に入力される。直接入力結線を左２列に限定したことで、結線を減らしてより小さい回路規模で実現できる。
【００３８】
以上述べたリコンフィギュラブル回路１２によれば、基本セルとして高性能の演算能力のあるＡＬＵを用いているため、コンフィグレーションは、１クロックの設定動作で可能であり、設定データ１７のロードにより、瞬時に回路を再構成することができる。また、一般に、ＡＬＵを多段配列にした場合、最初の段で横方向に十分な個数のＡＬＵ配列を設けても、後段に行くほど、演算に必要なＡＬＵ配列の個数が減る傾向があるため、回路の利用効率が悪くなるが、本実施の形態のリコンフィギュラブル回路１２では、途中段でのデータの直接入力も許すことにより、データフローグラフ２１を効率的にＡＬＵ配列にマッピングすることが可能である。したがって、リコンフィギュラブル回路１２を小さい回路規模で構成することができ、実装コストを削減し、消費電力を小さく抑えることができる。
【００３９】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４０】
そのような変形例として、上記の実施の形態では、ＡＬＵが矩形状に多段配列された場合を説明したが、配列パターンはこれに限られず、下段に行くほど、横方向に配列されたＡＬＵの数が少なくなっていく逆三角形状に多段配列されていてもよい。逆三角形状に多段配列した場合でも、入力データのために第１段において必要なＡＬＵの列数は、処理する演算のパターンによって異なり、途中段のＡＬＵへの直接入力を要することがあるから、本発明はこのような配列においても効果的である。すなわち、本発明の１つの利点は、途中段のＡＬＵへの直接入力を許す構造をもたせたことで、ＡＬＵ配列の形状には依存することなく、データフローグラフの効率的なマッピングを可能としたことにある。
【００４１】
さらにＡＬＵの配列は、縦方向にのみ接続を許した多段配列に限らず、横方向の接続も許した、メッシュ状の配列であってもよい。この場合、メッシュ配列に演算パターンをマッピングした際の途中の演算段階にあるＡＬＵに対するデータの直接入力を可能とする構成をとることで、同様の効果が現れる。
【００４２】
また、上記の説明では、段を飛ばして論理回路を接続する結線は設けられていないが、シンプルな回路構成を犠牲にすることにはなるが、このような段を飛ばす接続結線を設ける構成としてもよい。
【００４３】
また、実施の形態の集積回路装置１０および外部制御装置２４の構成要素の一部をそれぞれ他の装置側に設けてもよい。たとえば、設定データ１７を集積回路装置１０側には記憶せずに、外部制御装置２４のプログラム記憶部２２に記憶しておき、外部制御装置２４から供給する構成としてもよく、また、データフローグラフ２１を設定データ記憶部１６に記憶して、集積回路装置１０側でデータフローグラフ２１を設定データ１７に変換する処理を行ってもよい。また、上記の実施の形態では、設定データ１７を設定データ記憶部１６に記憶した後、集積回路装置１０を外部制御装置２４から切り離して利用することもできるが、集積回路装置１０に外部制御装置２４を常時接続しておく構成でもかまわないし、集積回路装置１０と外部制御装置２４を一体化して、１つの演算処理装置として構成してもよい。
【発明の効果】
本発明によれば、効率の良いリコンフィギュラブル回路を実現できる。
【図面の簡単な説明】
【図１】実施の形態に係る集積回路装置および外部制御装置の構成図である。
【図２】図１のリコンフィギュラブル回路の構成図である。
【図３】図１のリコンフィギュラブル回路の別の構成図である。
【図４】図１のリコンフィギュラブル回路のさらに別の構成図である。
【図５】図１のリコンフィギュラブル回路のさらに別の構成図である。
【図６】図１のデータフローグラフの例を説明する図である。
【図７】図６のデータフローグラフを途中段への直接入力のできないリコンフィギュラブル回路にマッピングした例を説明する図である。
【図８】図６のデータフローグラフを途中段への直接入力のできるリコンフィギュラブル回路にマッピングした例を説明する図である。
【図９】図９（ａ）は、図７の接続結線の構成図であり、図９（ｂ）は、図８の直接入力付き接続結線の構成図である。
【図１０】図８のリコンフィギュラブル回路において、直接入力のできる段数を制限した場合を説明する図である。
【図１１】図１０のリコンフィギュラブル回路において、さらに多くの直接入力を設けた場合を説明する図である。
【図１２】図１０のリコンフィギュラブル回路において、途中入力のできる列数を制限した場合を説明する図である。
【図１３】別のデータフローグラフを途中段への直接入力のできないリコンフィギュラブル回路にマッピングした例を説明する図である。
【図１４】図１３と同じデータフローグラフを下段への直接入力のできるリコンフィギュラブル回路にマッピングした例を説明する図である。
【図１５】さらに別のデータフローグラフを途中段への直接入力のできないリコンフィギュラブル回路にマッピングした例を説明する図である。
【図１６】図１５と同じデータフローグラフを左列への直接入力のできるリコンフィギュラブル回路にマッピングした例を説明する図である。
【符号の説明】
１０  集積回路装置、  １２  リコンフィギュラブル回路、  １４  設定部、１６  設定データ記憶部、  １７  設定データ、  １８  制御部、  １９  プログラム、  ２０  コンパイル部、  ２１  データフローグラフ、  ２２  プログラム記憶部、２４  外部制御装置、３０  接続結線。
【図１】
2004221997.tif 000003
【図２】
2004221997.tif 000004
【図３】
2004221997.tif 000005
【図４】
2004221997.tif 000006
【図５】
2004221997.tif 000007
【図６】
2004221997.tif 000008
【図７】
2004221997.tif 000009
【図８】
2004221997.tif 000010
【図９】
2004221997.tif 000011
【図１０】
2004221997.tif 000012
【図１１】
2004221997.tif 000013
【図１２】
2004221997.tif 000014
【図１３】
2004221997.tif 000015
【図１４】
2004221997.tif 000016
【図１５】
2004221997.tif 000017
【図１６】
2004221997.tif 000018