JP4330472B2 - Processing equipment - Google Patents
Processing equipment Download PDFInfo
- Publication number
- JP4330472B2 JP4330472B2 JP2004086773A JP2004086773A JP4330472B2 JP 4330472 B2 JP4330472 B2 JP 4330472B2 JP 2004086773 A JP2004086773 A JP 2004086773A JP 2004086773 A JP2004086773 A JP 2004086773A JP 4330472 B2 JP4330472 B2 JP 4330472B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- constant
- setting
- alu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title description 34
- 230000006870 function Effects 0.000 description 23
- 101100120142 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIR1 gene Proteins 0.000 description 18
- 238000000034 method Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- -1 FIR2 Proteins 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001413 far-infrared spectroscopy Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Description
この発明は、集積回路技術に関し、特にリコンフィギュラブル回路を備えた処理装置に関する。 The present invention relates to integrated circuit technology, and more particularly, to a processing apparatus including a reconfigurable circuit.
近年、アプリケーションに応じてハードウェアの動作を変更可能なリコンフィギュラブルプロセッサの開発が進められている。リコンフィギュラブルプロセッサを実現するためのアーキテクチャとしては、DSP(Digital Signal Processor)や、FPGA(Field Programmable Gate Array)を用いる方法が存在する。 In recent years, development of reconfigurable processors capable of changing hardware operations in accordance with applications has been underway. As an architecture for realizing a reconfigurable processor, there are methods using a DSP (Digital Signal Processor) and an FPGA (Field Programmable Gate Array).
FPGA(Field Programmable Gate Array)はLSI製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウエアの設計に利用されている。FPGAは、論理回路の真理値表を格納するためのルックアップテーブル(LUT)と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。FPGAでは、LUTに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、FPGAでLSIを設計した場合、ASIC(Application Specific IC)による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、FPGAを動的に再構成することで、回路構成の再利用を図る方法が提案されている(例えば、特許文献1参照。)。
FPGAは回路構成の設計自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのON/OFFを制御するための制御回路を含む必要があり、必然的に制御回路の実装面積が大きくなる。また、基本セル間の接続に複雑な配線パターンをとるため、配線が長くなる傾向があり、さらに1本の配線に多くのスイッチが接続される構造のため、遅延が大きくなる。そのため、FPGAによるLSIは、試作や実験のために利用されるにとどまることが多く、実装効率、性能、コストなどを考えると、量産には適していない。さらに、FPGAでは、多数のLUT方式の基本セルに構成情報を送る必要があるため、回路のコンフィグレーションにはかなりの時間がかかる。そのため、瞬時に回路構成の切り替えが必要な用途にはFPGAは適していない。 The FPGA has a high degree of design freedom in circuit configuration and is general-purpose. On the other hand, in order to enable connection between all the basic cells, it is necessary to include a large number of switches and a control circuit for controlling ON / OFF of the switches. This inevitably increases the mounting area of the control circuit. Further, since a complicated wiring pattern is used for the connection between the basic cells, the wiring tends to be long, and the delay increases because of the structure in which many switches are connected to one wiring. For this reason, FPGA based LSIs are often used only for trial manufacture and experiments, and are not suitable for mass production in view of mounting efficiency, performance, cost, and the like. Furthermore, in the FPGA, it is necessary to send configuration information to a large number of basic cells of the LUT method, so that it takes a considerable time to configure the circuit. For this reason, the FPGA is not suitable for applications that require instantaneous switching of the circuit configuration.
それらの課題を解決するため、近年、ALU(Arithmetic Logic Unit)と呼ばれる基本演算機能を持つ多機能素子を多段に並べたALUアレイの検討が行われるようになった。ALUアレイでは、処理が上から下の一方向に流れるので、水平方向のALUを結ぶ配線は基本的には不要である。そのため、FPGAと比較して回路規模を小さくすることが可能となる。従来、ALUに対して定数をどのように与えるといった実装レベルの研究については行われていない。 In order to solve these problems, in recent years, an ALU array called an ALU (Arithmetic Logic Unit) in which multi-functional elements having basic arithmetic functions are arranged in multiple stages has been studied. In the ALU array, processing flows in one direction from the top to the bottom, so wiring that connects the ALUs in the horizontal direction is basically unnecessary. Therefore, the circuit scale can be reduced as compared with the FPGA. Conventionally, there has been no research on implementation level such as how to give constants to ALU.
本発明はこうした状況に鑑みてなされたもので、その目的は、定数データを効率よくALUなどの論理回路に与えることのできる技術の提供にある。 The present invention has been made in view of such circumstances, and an object thereof is to provide a technique capable of efficiently supplying constant data to a logic circuit such as an ALU.
本発明の処理装置は、複数の演算機能を選択的に実行可能な論理回路を複数備えたリコンフィギュラブル回路と、論理回路の機能を設定して、前記リコンフィギュラブル回路に所期の回路を構成するための設定データを記憶する設定部と、前記リコンフィギュラブル回路に所期の設定データを供給するように前記設定部を制御する制御部とを備え、前記設定部は、定数データを記憶する複数のテーブルを保持すると共に、テーブルに記憶した定数データを論理回路の入力に供給し、前記リコンフィギュラブル回路は、複数のテーブルの出力と、論理回路の入力とを接続する接続部を有することを特徴とする。
Processing apparatus of the present invention includes a reconfigurable circuit having a plurality of selectively executable logic circuit multiple calculation function, set the function of the logic circuit, intended circuit to the reconfigurable circuit And a control unit for controlling the setting unit to supply desired setting data to the reconfigurable circuit, and the setting unit stores constant data. While holding a plurality of tables to be stored and supplying constant data stored in the tables to the input of the logic circuit, the reconfigurable circuit has a connection unit for connecting the outputs of the plurality of tables and the inputs of the logic circuit. It is characterized by having .
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above components and the expression of the present invention expressed as a method, apparatus, system, and computer program are also effective as an aspect of the present invention.
本発明によれば、定数データを効率よくリコンフィギュラブル回路に供給することのできる技術を提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the technique which can supply constant data to a reconfigurable circuit efficiently can be provided.
図1は、実施の形態に係る処理装置10の構成図である。処理装置10は、集積回路装置26を備える。集積回路装置26は、回路構成を再構成可能とする機能を有する。集積回路装置26は1チップとして構成され、リコンフィギュラブル回路12、設定部14、制御部18、内部状態保持回路20、出力回路22および経路部24を備える。リコンフィギュラブル回路12は、設定を変更することにより、機能の変更を可能とする。
FIG. 1 is a configuration diagram of a
設定部14は、第1設定部14a、第2設定部14b、第3設定部14c、第4設定部14dおよび選択器16を有し、リコンフィギュラブル回路12に所期の回路を構成するための設定データ40を供給する。設定部14は、プログラムカウンタのカウント値に基づいて記憶したデータを出力するコマンドメモリとして構成されてもよい。経路部24は、フィードバックパスとして機能し、リコンフィギュラブル回路12の出力を、リコンフィギュラブル回路12の入力に接続する。内部状態保持回路20および出力回路22は、例えばデータフリップフロップ(D−FF)などの順序回路として構成され、リコンフィギュラブル回路12の出力を受ける。内部状態保持回路20は経路部24に接続されている。リコンフィギュラブル回路12は組合せ回路として構成される。
The
リコンフィギュラブル回路12は、機能の変更が可能な論理回路を有して構成される。具体的にリコンフィギュラブル回路12は、複数の演算機能を選択的に実行可能な論理回路の集合体を複数段に配列させた構成を有し、前段の論理回路列の出力と後段の論理回路列の入力との接続関係を設定可能な接続部を含む。以下、論理回路の集合体を、単に「論理回路」とも呼ぶ。この接続部は、設定部14から出力される定数データを、所望の論理回路の入力に供給するための接続関係を設定する機能ももつ。複数の論理回路は、マトリックス状に配置される。各論理回路の機能と、論理回路列の間に設けられる接続部の接続関係、さらには論理回路の入力に供給される定数データは、設定部14により供給される設定データ40に基づいて設定される。設定データ40は、以下の手順で生成される。
The
集積回路装置26により実現されるべきプログラム36が、記憶部34に保持されている。プログラム36は、信号処理回路または信号処理アルゴリズムなどをC言語などの高級言語で記述したものである。コンパイル部30は、記憶部34に格納されたプログラム36をコンパイルし、データフローグラフ38に変換して記憶部34に格納する。データフローグラフ38は、入力変数および定数の演算の流れをグラフ構造で表現したものである。
A
設定データ生成部32は、データフローグラフ38から設定データ40を生成する。設定データ40は、データフローグラフ38をリコンフィギュラブル回路12にマッピングするためのデータであり、リコンフィギュラブル回路12における論理回路の機能や、論理回路列の間に設けられる接続部の接続関係、さらには論理回路の入力に供給する定数データなどを定める。本実施の形態では、設定データ生成部32が、1つの回路を分割してできる複数の回路の設定データ40を生成する。
The setting
図2は、1つの生成するべきターゲット回路42を分割してできる複数の回路の設定データ40について説明するための図である。1つのターゲット回路42を分割して生成される回路を、「分割回路」と呼ぶ。この例では、1つのターゲット回路42が、4つの分割回路、すなわち分割回路A、分割回路B、分割回路C、分割回路Dに分割されている。ターゲット回路42は、データフローグラフ38における演算の流れにしたがって分割される。データフローグラフ38において、上から下に向かう方向に演算の流れが表現される場合には、そのデータフローグラフ38を上から所定の間隔で切り取り、その切り取った部分を分割回路として設定する。流れにしたがって切り取る間隔は、リコンフィギュラブル回路12における論理回路の段数以下に定められる。ターゲット回路42は、データフローグラフ38の横方向で分割されてもよい。横方向に分割する幅は、リコンフィギュラブル回路12における論理回路の1段当たりの個数以下に定められる。
FIG. 2 is a diagram for explaining setting
特に、生成すべきターゲット回路42がリコンフィギュラブル回路12よりも大きい場合に、設定データ生成部32は、リコンフィギュラブル回路12にマッピングできる大きさになるように、ターゲット回路42を分割することが好ましい。設定データ生成部32は、リコンフィギュラブル回路12における論理回路の配列構造とデータフローグラフ38によって、ターゲット回路42の分割方法を定める。リコンフィギュラブル回路12の配列構造は、制御部18から設定データ生成部32に伝えられてもよく、また予め記憶部34に記録されていてもよい。また、制御部18が、ターゲット回路42の分割方法を設定データ生成部32に指示してもよい。
In particular, when the
以上の手順を実行することにより、記憶部34は、リコンフィギュラブル回路12を所期の回路として構成するための複数の設定データ40を記憶する。複数の設定データ40は、分割回路Aを構成するための設定データ40a、分割回路Bを構成するための設定データ40b、分割回路Cを構成するための設定データ40c、および分割回路Dを構成するための設定データ40dである。既述のごとく、複数の設定データ40は、1つのターゲット回路42を分割した複数の分割回路をそれぞれ表現したものである。このように、リコンフィギュラブル回路12の回路規模に応じて、生成すべきターゲット回路42の設定データ40を生成することにより、汎用性の高い処理装置10を実現することが可能となる。別の視点からみると、本実施の形態の処理装置10によれば、回路規模の小さいリコンフィギュラブル回路12を用いて、所望の回路を再構成することが可能となる。
By executing the above procedure, the
図3は、リコンフィギュラブル回路12の構成図である。リコンフィギュラブル回路12は、複数の論理回路50の列が複数段にわたって配列されたもので、各段に設けられた接続部52によって、前段の論理回路列の出力と後段の論理回路列の入力が設定により任意に接続可能な構造となっている。また接続部52は、設定部14から出力される定数データを、所期の論理回路50に供給するための接続関係を設定する機能も有している。入力接続部51は、外部からの入力ないしは出力選択部53より出力される値、または設定部14から出力される定数データを、1段目の論理回路列における所期の論理回路50に供給するための接続関係を設定する機能を有する。ここでは、論理回路50の例としてALUを示す。ALUは、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる算術論理回路である。各ALUは、複数の演算機能を選択するためのセレクタを有している。
FIG. 3 is a configuration diagram of the
図示のように、リコンフィギュラブル回路12は、横方向にY個、縦方向にX個のALUが配置されたALUアレイとして構成される。第1段のALU11、ALU12、・・・、ALU1Yには、入力接続部51を介して入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第1段の接続部52に設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU2Yに入力される。第1段の接続部52においては、第1段のALU列の出力と第2段のALU列の入力の間で任意の接続関係を実現できるように結線が構成されており、設定により所期の結線が有効となる。以下、第(X−1)段の接続部52まで、同様の構成であり、最終段である第X段のALU列は、リコンフィギュラブル回路12にマッピングされた演算の最終結果を、出力選択部53に出力する。出力選択部53は、図1に示す出力回路22ないしは内部状態保持回路20の機能に相当する。
As shown in the figure, the
図4は、データフローグラフ38の例を示す図である。データフローグラフ38においては、入力される変数や定数の演算の流れが段階的にグラフ構造で表現されている。図中、演算子は丸印で示されている。設定データ生成部32は、このデータフローグラフ38をリコンフィギュラブル回路12にマッピングするための設定データ40を生成する。特にデータフローグラフ38をリコンフィギュラブル回路12にマッピングしきれない場合には、データフローグラフ38を複数の領域に分割して、分割回路の設定データ40を生成する。データフローグラフ38による演算の流れを回路上で実現するべく、設定データ40は、演算機能を割り当てる論理回路を特定し、また論理回路間の接続関係を定め、さらに入力変数や入力定数などを定義したデータとなる。したがって、設定データ40は、各論理回路50の機能を選択するセレクタに供給する選択情報、接続部52の結線を設定する接続情報、必要な変数データや定数データなどを含んで構成される。
FIG. 4 is a diagram illustrating an example of the
図1に戻って、回路の構成時、制御部18は、1つの回路を構成するための複数の設定データ40を選択する。ここでは、制御部18が、図2に示すターゲット回路42を構成するための設定データ40、すなわち分割回路Aの設定データ40a、分割回路Bの設定データ40b、分割回路Cの設定データ40cおよび分割回路Dの設定データ40dを選択するものとする。制御部18は、選択した設定データ40を設定部14に供給する。設定部14は、プログラムカウンタのカウント値に基づいてデータを出力するコマンドメモリを有し、供給される設定データ40をそれぞれ保持する。なお、設定部14は、キャッシュメモリや他の種類のメモリを有してもよい。具体的に制御部18は、設定データ40aを第1設定部14aに、設定データ40bを第2設定部14bに、設定データ40cを第3設定部14cに、設定データ40dを第4設定部14dに供給する。
Returning to FIG. 1, at the time of circuit configuration, the
設定部14は、選択された設定データ40をリコンフィギュラブル回路12に設定し、リコンフィギュラブル回路12の回路を再構成する。これにより、リコンフィギュラブル回路12は、所期の演算を実行できる。リコンフィギュラブル回路12は、基本セルとして高性能の演算能力のあるALUを用いており、またリコンフィギュラブル回路12および設定部14を1チップ上に構成することから、コンフィグレーションを高速に、例えば1クロックで実現することができる。制御部18はクロック機能を有し、クロック信号は、内部状態保持回路20および出力回路22に供給される。また制御部18はカウンタ回路を含み、カウント信号を選択器16に供給してもよい。この場合、カウンタ回路は4進カウンタである。
The setting
図5は、信号処理のフローチャートを示す。制御部18は、カウンタ回路からのカウント信号に合わせて、リコンフィギュラブル回路12に複数の設定データ40、すなわち設定データ40a、設定データ40b、設定データ40cおよび設定データ40dを順次供給するように設定部14を制御する。設定部14が、複数の設定データ40をリコンフィギュラブル回路12に順次供給することにより、全体として1つの回路が構成されることになる。出力回路22は、設定部14によりリコンフィギュラブル回路12が複数回、ここでは4回構成されると、リコンフィギュラブル回路12の出力を出力する。この回数は、使用する設定データ40の個数となる。以下、具体的な手順を示す。
FIG. 5 shows a flowchart of signal processing. The
まず、制御部18が、選択器16を制御して第1設定部14aを選択する。選択器16は、カウンタ回路により制御されてもよい。第1設定部14aは、分割回路Aの設定データ40aをリコンフィギュラブル回路12に供給し、リコンフィギュラブル回路12上に分割回路Aを構成する(S10)。分割回路Aが構成されると同時に、入力データが分割回路Aに供給される。組合せ回路である分割回路Aは、次のクロック信号までの間に、演算処理を実行する。
First, the
制御部18がクロック信号を内部状態保持回路20に供給すると、内部状態保持回路20は、分割回路Aによる処理結果を保持する(S12)。S10およびS12のステップを第1サイクルと呼ぶ。同時に、制御部18が、選択器16を制御して第2設定部14bを選択する。第2設定部14bは、分割回路Bの設定データ40bをリコンフィギュラブル回路12に供給し、リコンフィギュラブル回路12上に分割回路Bを構成する。このとき、内部状態保持回路20に保持された分割回路Aの処理結果が、経路部24を通って分割回路Bの入力に供給される(S14)。分割回路Bは、次のクロック信号までの間に、演算処理を実行する。
When the
制御部18が次のクロック信号を内部状態保持回路20に供給すると、内部状態保持回路20は、分割回路Bの処理結果を保持する(S16)。S14およびS16のステップを第2サイクルと呼ぶ。同時に、制御部18が、選択器16を制御して第3設定部14cを選択する。第3設定部14cは、分割回路Cの設定データ40cをリコンフィギュラブル回路12に供給し、リコンフィギュラブル回路12上に分割回路Cを構成する。このとき、内部状態保持回路20に保持された分割回路Bの処理結果が、経路部24を通って分割回路Cの入力に供給される(S18)。分割回路Cは、次のクロック信号までの間に、演算処理を実行する。
When the
制御部18が次のクロック信号を内部状態保持回路20に供給すると、内部状態保持回路20は、分割回路Cの処理結果を保持する(S20)。S18およびS20のステップを第3サイクルと呼ぶ。同時に、制御部18が、選択器16を制御して第4設定部14dを選択する。第4設定部14dは、分割回路Dの設定データ40dをリコンフィギュラブル回路12に供給し、リコンフィギュラブル回路12上に分割回路Dを構成する。このとき、内部状態保持回路20に保持された分割回路Cの処理結果が、経路部24を通って分割回路Dの入力に供給される(S22)。分割回路Dは、次のクロック信号までの間に、演算処理を実行する。
When the
制御部18が次のクロック信号を出力回路22に供給すると、出力回路22は、分割回路Dの処理結果を出力する(S24)。S22およびS24のステップを第4サイクルと呼ぶ。第1サイクルから第4サイクルまでの処理を繰り返し行う場合には、再度、制御部18が選択器16を制御して第1設定部14aを選択し、リコンフィギュラブル回路12上に分割回路Aを構成して、入力データが供給される。
When the
以上のように、1つのターゲット回路42を分割した複数の分割回路A〜Dをリコンフィギュラブル回路12上に順次構成し、各分割回路の出力を次の分割回路の入力にフィードバックして各分割回路における演算処理を実行し、最後に構成された分割回路Dから、ターゲット回路42の出力を取り出す。S10からS24までにかかる時間は4クロック分であり、本実施の形態の処理装置10によると、限られたリコンフィギュラブル回路12の回路規模のなかで、効率よい演算処理を実行することができる。また、リコンフィギュラブル回路12の回路規模が小さいため、消費電力も小さくできる。
As described above, a plurality of divided circuits A to D obtained by dividing one
制御部18は、内部状態保持回路20および出力回路22に同一のクロック信号を供給してもよいが、出力回路22に供給するクロック信号の周期を、内部状態保持回路20に供給するクロック信号の周期の4倍に設定してもよい。内部状態保持回路20および出力回路22に同一のクロック信号を供給する場合は、内部状態保持回路20に出力回路22の役目をもたせ、1つの回路にまとめることもできる。この場合は、出力先の回路以降で必要な信号を取り出すための回路が必要となる。図5に示した例では1つのターゲット回路42を4サイクルの分割回路で表現したため、出力回路22の動作周期が内部状態保持回路20の動作周期の4倍となっているが、周期の比は、ターゲット回路42の分割数に応じて変化する。また、この例では第1設定部14a〜第4設定部14dの4つの設定部を利用したが、この数もターゲット回路42の分割数に応じて変動することは当業者に容易に理解されるところである。なお、特に説明はしていないが、論理回路50、入力接続部51および接続部52についてD−FFを付加して、いわゆるパイプライン処理を行うことも可能である。
The
図6は、処理装置10においてリコンフィギュラブル回路12に定数データを供給するための構成を示す。定数データを供給するために、制御部18はプログラムカウンタ62を有し、設定部14はコマンドメモリ61および定数テーブル70を有する。コマンドメモリ61は、各ALUの機能を定める設定データ、入力接続部51、接続部52および出力選択部53における接続を定める設定データ(図6において設定データを供給するための接続線については図示を省略)、および各ALUに入力する定数に関する設定データを保持している。ALU機能を定める設定データは、各ALUにおける論理機能を選択するべく、ALUのセレクタに供給するためのセレクト値であり、接続を定める設定データは、入力接続部51、接続部52および出力選択部53における結線を定めるためのデータである。以下、本実施の形態において入力接続部51と接続部52の機能は実質的に同じであるため、以下、入力接続部51を接続部52として表現することもある。定数に関する設定データは、各ALUに入力する定数を格納した定数テーブル70のアドレスデータである。コマンドメモリ61に保持されるデータは、設定データ40として生成されたデータであり、回路を分割して生成する場合には、それぞれの分割した設定データ40に対応する。コマンドメモリ61に保持されたデータは、プログラムカウンタ62のカウンタ値によって読み出されていく。以下では、リコンフィギュラブル回路12に1つの回路を生成する場合を例にとり、ALUの入力に定数を供給する方法を説明する。なお、リコンフィギュラブル回路12に生成する回路は、最終的に生成すべきターゲット回路42であるか、それを分割した分割回路であるかは問わない。
FIG. 6 shows a configuration for supplying constant data to the
定数テーブル70は、リコンフィギュラブル回路12のALUに供給する定数データを記憶する。定数テーブル70はRAMで構成され、複数存在するのが好ましい。入力接続部51および接続部52は、コマンドメモリ61から出力される接続用の設定データに基づいて、複数の定数テーブル70の出力と、ALUの入力とを接続する。RAMである各定数テーブル70は、複数のデータを格納する領域を有してもよいが、1回の読出しでは、1つのデータしか読み出されることはできない。したがって、例えば複数回のサイクルで所期のターゲット回路42を構成する場合、各定数テーブル70は、1つの分割回路に供給する定数データを複数個有さず、言い換えると、1つの分割回路に供給される定数データは、それぞれ異なる定数テーブル70にて記憶されることが好ましい。これにより、各定数テーブル70からの1回の読出しで、必要な定数データを所期のALUに設定することが可能となり、定数データの設定時間を短縮することが可能となる。
The constant table 70 stores constant data supplied to the ALU of the
図7は、コマンドメモリ61の出力データを説明するための図である。コマンドメモリ61は、複数の定数テーブル70a〜70nに対して、各ALUの入力に必要な定数を格納したアドレスデータを供給する。定数テーブル70は、コマンドメモリ61からアドレスデータを受けて、そのアドレスに記憶される定数データを接続部52に出力する。
FIG. 7 is a diagram for explaining the output data of the
コマンドメモリ61は、ALUの入力を、前段のALUの出力、外部からの入力および/または定数テーブル70の出力と接続させるための接続設定データを接続部52に与える。接続部52は、接続設定データを受けて、所期の接続関係を実現する。これにより、演算に定数を必要とするALUには、接続部52により定数テーブル70から定数データが供給されることになる。またコマンドメモリ61は、ALUが所期の演算機能を実行するためのデータをALUに供給する。リコンフィギュラブル回路12における全ての接続部52、ALUに対して上記したデータを供給することで、リコンフィギュラブル回路12が所期の回路を構成することができる。
The
以下、定数テーブル70とALUの関係について説明する。
定数テーブル70は、各ALUに対して設けられてもよい。定数テーブル70をALUの数だけ用意することで、接続部52における結線を容易にすることができる。すなわち、定数テーブル70とALUの対応が1対1に定まるため、接続部52では予め定数テーブル70とALUとを接続する配線と、その配線をオンオフするスイッチを設けるだけでよいという利点がある。したがって、配線部を小さく構成でき、回路の小型化および低消費電力化を実現することができる。またコンパイラの構成が容易になるため、コンパイラソフトの削減、コンパイル時間の短縮も実現することができる。
Hereinafter, the relationship between the constant table 70 and the ALU will be described.
A constant table 70 may be provided for each ALU. By preparing as many constant tables 70 as the number of ALUs, connection at the
定数テーブル70は、ALU列の各段に対して設けられてもよい。定数テーブル70を各段に対して設けることで、各段における接続部52と定数テーブル70とを対応付けることができるため、接続部52における結線を比較的容易にすることができる。すなわち、定数テーブル70とALU列の対応が1対1に定まるため、接続部52では予め定数テーブル70とALU列に含まれるALUとを接続する配線と、その配線を選択するセレクタを設ければよいという利点がある。定数テーブル70を各ALUに対して設ける場合と比較すると、ALU列に対して設けることで、同一のALU列に存在するALUで定数テーブル70の格納領域を共有化できる。例えば、定数テーブル70の格納領域を同一ALU列のALU数以下とすることにより、定数テーブル70の規模をトータルで小さくできる可能性がある。したがって、配線部を比較的小さく構成でき、回路の小型化および低消費電力化を実現することができる。またコンパイラの構成が容易になるため、コンパイラソフトの削減、コンパイル時間の短縮も実現することができる。
The constant table 70 may be provided for each stage of the ALU column. By providing the constant table 70 for each stage, the
定数テーブル70は、ALUやALU列に対応させずに設けられてもよい。この場合、接続部52と定数テーブル70との配線は必要となるが、定数テーブル70の個数または各定数テーブル70の回路規模を減らすことができる。これは図7に示した例に相当する。リコンフィギュラブル回路12に回路を構成する場合、全てのALUが定数を必要とする可能性は極めて低いため、複数の定数テーブル70を全ALUで共有化することで、定数テーブル70の領域確保に必要な回路規模を削減することができるという利点がある。定数テーブル70に必要な領域が少なくなるため、回路の小型化および低消費電力化を実現することができる。
なお定数テーブル70の配置パターンは、上記の構成に限定されず、他の態様をとってもよい。
The constant table 70 may be provided without corresponding to the ALU or the ALU column. In this case, wiring between the
The arrangement pattern of the constant table 70 is not limited to the above configuration, and may take other forms.
図8は、前後7点を利用する7タップからなるFIRフィルタ回路を示す。以下、このFIR(Finite Impulse Response)フィルタ回路を、本実施の形態における処理装置10で実現する具体例を示す。このFIRフィルタ回路の定数a1、a2、a3、a4は、図示のごとく、対称に設定されている。
FIG. 8 shows a 7-tap FIR filter circuit using front and rear 7 points. Hereinafter, a specific example in which the FIR (Finite Impulse Response) filter circuit is realized by the
図9は、図8で示すFIRフィルタ回路を置き換えた回路を示す。回路の置き換えは、フィルタ係数の対称性を利用している。 FIG. 9 shows a circuit in which the FIR filter circuit shown in FIG. 8 is replaced. The circuit replacement uses the symmetry of the filter coefficient.
図10は、図9に示すFIRフィルタ回路をコンパイルして作成したデータフローグラフ38aを示す。図中、“+”は加算を示し、“×”は乗算を示し、“MOV”はスルー用のパスを示す。“MOV”は、詳細には、入力されたデータに対して演算処理を行わず、データを下段に通過させるノードであることを意味する。ここでは、前段のALUの出力に対して、a1、a2、a3、a4で表現される所定の定数が乗算されている。
FIG. 10 shows a
図11は、図10に示すデータフローグラフ38aをリコンフィギュラブル回路12にマッピングした例を示す。なお、ここではリコンフィギュラブル回路12が4列4段のALUを有してデータフローグラフ38aを一度にマッピングできる例を想定している。例えばリコンフィギュラブル回路12が4列2段のALUを有する場合は、データフローグラフ38aを2段ずつに分割し、順にリコンフィギュラブル回路12にマッピングして、最初の分割回路の出力を次の分割回路の入力として利用することで、データフローグラフ38aの回路を実現することができる。
FIG. 11 shows an example in which the
データフローグラフ38aにおいては、2段目のALU列に対して定数入力が行われている。ここでは、4つの定数テーブル70a、70b、70c、70dが用意されており、それぞれに分散されて4つの定数データa1、a2、a3、a4が記憶されている。なお、既述したように、リコンフィギュラブル回路12にマッピングするときに必要なデータを分散して定数テーブル70に格納しておくことで、複数の定数テーブル70からの1回のデータ読出しにより、所期のデータをALUに対して供給することが可能となる。図11に示す例でも、定数テーブル70が、定数入力が必要な全てのALUに対して定数データを同時に供給することができるように構成されている。図中、定数テーブル70中に示される「X」は、任意のデータが記憶されていることを表現する。
In the
入力接続部51、接続部52、出力選択部53における接続関係は、コマンドメモリ61による接続設定データにより定められる。なお、ここでは上下段のALU列の接続については言及せず、定数テーブル70の出力とALUの入力との接続関係について示す。コマンドメモリ61は、定数テーブル70aに対してアドレス0を、定数テーブル70bに対してアドレス1を、定数テーブル70cに対してアドレス2を、定数テーブル70dに対してアドレス0を入力する。定数テーブル70aは、データa1をALU21の入力に供給し、定数テーブル70bは、データa2をALU22の入力に供給し、定数テーブル70cは、データa3をALU23の入力に供給し、定数テーブル70dは、データa4をALU24の入力に供給する。なお、この例では偶然にも第2段のALU列に全ての定数データが入力されているが、定数データは複数段にまたがって供給されることが可能である。これにより、図10に示すデータフローグラフ38aがリコンフィギュラブル回路12上にマッピングされる。
Connection relationships in the
図12は、リコンフィギュラブル回路12にて生成するべきターゲット回路の例を示す。このターゲット回路は、複数の回路、すなわち直列に並べられた三段のFIRで構成される。FIRの形式は図10に示したとおりであり、入力する定数のみが異なるものを例にあげる。FIR1およびFIR2の係数は、以下のとおりである。
FIR1:a1=100、a2=200、a3=300、a4=400
FIR2:a1=200、a2=400、a3=800、a4=1600
ターゲット回路は、FIR1、FIR2、FIR1をリコンフィギュラブル回路12上に順次生成することによって、構成することができる。
FIG. 12 shows an example of a target circuit to be generated by the
FIR1: a1 = 100, a2 = 200, a3 = 300, a4 = 400
FIR2: a1 = 200, a2 = 400, a3 = 800, a4 = 1600
The target circuit can be configured by sequentially generating FIR1, FIR2, and FIR1 on the
図13は、定数テーブル70のデータ格納例を示す。ターゲット回路には2つのFIR1が含まれているが、定数をテーブルとしてもつことによって、FIR1の定数データを2重にもつ必要はなく、定数テーブル70に格納した定数データを2つのFIR1の間で共用することが可能となる。また、FIR1とFIR2には、重複する定数200、400が存在しているが、これらについても、FIR1とFIR2の間で共用することが可能である。このとき、FIR1の生成時に必要となるFIR1の定数100、200、300、400については、定数テーブル70a、70b、70c、70dに分散して記憶させ、同じタイミングで読み出せることが好ましい。この例では、定数テーブル70a、70b、70c、70dのアドレス0に、FIR1の定数が分散して記憶されている。また、FIR2の生成時に必要となるFIR2の定数200、400、800、1600についても、同様に定数テーブル70a、70b、70c、70dに分散して記憶させ、同じタイミングで読み出せることが好ましい。定数200が定数テーブル70bに、定数400が定数テーブル70dに記憶されているため、この例では、定数800を定数テーブル70aに、定数1600を定数テーブル70cに記憶させることとしている。異なるタイミングで同一値のデータを使用する場合には、定数テーブル70に保持された1つのデータを共用することが好ましい。使用する定数をテーブル化することで、同一の定数データの使い回しが可能となり、そのためにテーブルを記憶するメモリ領域を小さく形成できることで、回路規模の縮小化を実現することが可能となる。
FIG. 13 shows an example of data storage in the constant table 70. The target circuit includes two FIR1s. However, by having constants as a table, it is not necessary to have the constant data of FIR1 twice. The constant data stored in the constant table 70 is transferred between the two FIR1s. It becomes possible to share. Further, there are overlapping
図14は、図12に示すFIR1をリコンフィギュラブル回路12にマッピングした例を示す。入力接続部51、接続部52、出力選択部53における接続関係は、コマンドメモリ61による接続設定データにより定められる。コマンドメモリ61は、定数テーブル70aに対してアドレス0を、定数テーブル70bに対してアドレス0を、定数テーブル70cに対してアドレス0を、定数テーブル70dに対してアドレス0を入力する。定数テーブル70aは、定数100をALU21の入力に供給し、定数テーブル70bは、定数200をALU22の入力に供給し、定数テーブル70cは、定数300をALU23の入力に供給し、定数テーブル70dは、定数400をALU24の入力に供給する。これにより、FIR1をリコンフィギュラブル回路12にマッピングすることができる。
FIG. 14 shows an example in which the
図15は、図12に示すFIR2をリコンフィギュラブル回路12にマッピングした例を示す。入力接続部51、接続部52、出力選択部53における接続関係は、コマンドメモリ61による接続設定データにより定められる。なお、入力接続部51においては、図12における1段目のFIR1の出力が入力され、第1段のALU列に供給されることになる。コマンドメモリ61は、定数テーブル70aに対してアドレス1を、定数テーブル70bに対してアドレス0を、定数テーブル70cに対してアドレス1を、定数テーブル70dに対してアドレス0を入力する。定数テーブル70aは、定数800をALU23の入力に供給し、定数テーブル70bは、定数200をALU21の入力に供給し、定数テーブル70cは、定数1600をALU24の入力に供給し、定数テーブル70dは、定数400をALU22の入力に供給する。これにより、FIR2をリコンフィギュラブル回路12にマッピングすることができる。
FIG. 15 shows an example in which the
なお、図12に示すターゲット回路を構成するためには、図14に示すFIR1をリコンフィギュラブル回路12上に再構成し、図15に示すFIR2の出力を第1段のALU列に供給する。定数テーブル70から定数を供給することで、FIR1、FIR2、FIR1を順にリコンフィギュラブル回路12上に効率よく生成することができる。以上に示したように、FIR1については2回出現するが、定数は全て同じであるため、共通化が可能である。また、FIR1とFIR2とでは、定数200と定数400を共通化することができる。したがって、演算に要する12個の定数を6つの領域に記憶すればよいことになり、テーブル領域の削減、それにともなう回路規模の小型化および低消費電力化を実現することができる。
In order to configure the target circuit shown in FIG. 12, FIR1 shown in FIG. 14 is reconfigured on the
図16は、コマンドメモリ61に定数を直接記憶させる例を示す。定数テーブルを利用せずに、コマンドメモリ61に定数を記憶させることでも、各ALUに定数を供給することが可能となる。上記の実施例で示したように、定数テーブルを利用した場合には、必要なデータのみを記憶すればよいためメモリ容量が少なくてすみ、回路規模の削減および低消費電力化を実現することが可能である。一方、コマンドメモリ61からALUに定数を供給する場合には、テーブルからのデータ読み出しに伴う回路遅延が発生しないという利点がある。
FIG. 16 shows an example in which constants are directly stored in the
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。 The present invention has been described based on the embodiments. The embodiments are exemplifications, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are within the scope of the present invention. .
例えば、リコンフィギュラブル回路12におけるALUの配列は、縦方向にのみ接続を許した多段配列に限らず、横方向の接続も許した、メッシュ状の配列であってもよい。また、上記の説明では、段を飛ばして論理回路を接続する結線は設けられていないが、このような段を飛ばす接続結線を設ける構成としてもよい。
For example, the array of ALUs in the
10・・・処理装置、12・・・リコンフィギュラブル回路、14・・・設定部、16・・・選択器、18・・・制御部、20・・・内部状態保持回路、22・・・出力回路、24・・・経路部、26・・・集積回路装置、30・・・コンパイル部、32・・・設定データ生成部、34・・・記憶部、36・・・プログラム、38・・・データフローグラフ、40・・・設定データ、42・・・ターゲット回路、50・・・論理回路、51・・・入力接続部、52・・・接続部、53・・・出力選択部、61・・・コマンドメモリ、62・・・プログラムカウンタ、70・・・定数テーブル。
DESCRIPTION OF
Claims (1)
論理回路の機能を設定して、前記リコンフィギュラブル回路に所期の回路を構成するための設定データを記憶する設定部と、
前記リコンフィギュラブル回路に所期の設定データを供給するように前記設定部を制御する制御部とを備え、
前記設定部は、定数データを記憶する複数のテーブルを保持すると共に、テーブルに記憶した定数データを論理回路の入力に供給し、
前記リコンフィギュラブル回路は、複数のテーブルの出力と、論理回路の入力とを接続する接続部を有することを特徴とする処理装置。
A reconfigurable circuit having a plurality of selectively executable logic circuit multiple arithmetic function,
A setting unit configured to set a function of the logic circuit and store setting data for configuring a desired circuit in the reconfigurable circuit;
A control unit for controlling the setting unit to supply desired setting data to the reconfigurable circuit;
The setting unit holds a plurality of tables for storing constant data and supplies the constant data stored in the table to the input of the logic circuit.
The reconfigurable circuit includes a connection unit that connects an output of a plurality of tables and an input of a logic circuit .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004086773A JP4330472B2 (en) | 2004-03-24 | 2004-03-24 | Processing equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004086773A JP4330472B2 (en) | 2004-03-24 | 2004-03-24 | Processing equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005277673A JP2005277673A (en) | 2005-10-06 |
JP4330472B2 true JP4330472B2 (en) | 2009-09-16 |
Family
ID=35176881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004086773A Expired - Lifetime JP4330472B2 (en) | 2004-03-24 | 2004-03-24 | Processing equipment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4330472B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4673739B2 (en) * | 2005-12-21 | 2011-04-20 | 三洋電機株式会社 | Reconfigurable circuit |
JP4962305B2 (en) | 2007-12-26 | 2012-06-27 | 富士通セミコンダクター株式会社 | Reconfigurable circuit |
-
2004
- 2004-03-24 JP JP2004086773A patent/JP4330472B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2005277673A (en) | 2005-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4104538B2 (en) | Reconfigurable circuit, processing device provided with reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method, and circuit | |
US7895586B2 (en) | Data flow graph processing method, reconfigurable circuit and processing apparatus | |
US8138788B2 (en) | Reconfigurable device | |
JP4484756B2 (en) | Reconfigurable circuit and processing device | |
JP4423953B2 (en) | Semiconductor integrated circuit | |
JP4011007B2 (en) | Integrated circuit device and processing device having reconfigurable circuit | |
WO2004088500A1 (en) | Programmable logic device | |
JP4330472B2 (en) | Processing equipment | |
US20070260805A1 (en) | Computer with a Reconfigurable Architecture for Integrating a Global Cellular Automaton | |
JP4553615B2 (en) | Processing equipment | |
JP4260197B2 (en) | Processing equipment | |
JP4413052B2 (en) | Data flow graph processing apparatus and processing apparatus | |
JP4562679B2 (en) | Data flow graph generator | |
JP4156010B2 (en) | Processing equipment | |
JP4260086B2 (en) | Data flow graph generation device, processing device, reconfigurable circuit. | |
JP4748944B2 (en) | Processing equipment | |
JP4357326B2 (en) | Reconfigurable circuit and processing device | |
JP4208751B2 (en) | Data flow graph processing device. | |
JP4553614B2 (en) | Processing equipment | |
JP4562678B2 (en) | Data flow graph reconstruction device, setting data generation device for reconfigurable circuit, and processing device | |
JP5116499B2 (en) | Arithmetic processing circuit | |
JP2006065786A (en) | Processing apparatus | |
JP4610236B2 (en) | Setting data generator | |
JP2005128709A (en) | Processing device equipped with reconfigurable circuit | |
JP2004221997A (en) | Reconfigurable circuit and integrated circuit capable of using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061116 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080723 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090417 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090519 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090616 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4330472 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |