JP4669781B2 - Processing equipment - Google Patents
Processing equipment Download PDFInfo
- Publication number
- JP4669781B2 JP4669781B2 JP2005370914A JP2005370914A JP4669781B2 JP 4669781 B2 JP4669781 B2 JP 4669781B2 JP 2005370914 A JP2005370914 A JP 2005370914A JP 2005370914 A JP2005370914 A JP 2005370914A JP 4669781 B2 JP4669781 B2 JP 4669781B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- data
- circuit
- ram
- bit
- 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.)
- Active
Links
Images
Description
本発明は、リコンフィギュラブル回路を備える処理装置に関する。 The present invention relates to a processing apparatus including a reconfigurable circuit.
最近、携帯電話、GPS、VICSなど、無線通信が広く普及し、無線機の種類も増えている。これらの無線機またはその機能をすべてハードウエアで実装すると、コストや実装面積が嵩む。そこで、ハードウエアとしては汎用的な能力を有する回路を搭載しておき、それにロードするソフトウエアを切り替えることで多様な機能を実現する「ソフトウエア無線機」という考え方がある。 Recently, wireless communications such as mobile phones, GPS, and VICS have become widespread, and the types of wireless devices are increasing. If these radios or their functions are all implemented by hardware, the cost and mounting area increase. Therefore, there is a concept of “software radio” that implements various functions by installing a circuit having general-purpose capability as hardware and switching software loaded thereon.
ソフトウエア無線機を実現する回路として、FPGA(Field Programmable Gate Array)やDSP(Digital Signal Processor)がある。特許文献1には、FPGAを動的に再構成することで、回路構成の再利用を図る方法が提案されている。動的変更が可能なタイプの回路を以下リコンフィギュラブル回路という。
Circuits that implement a software defined radio include an FPGA (Field Programmable Gate Array) and a DSP (Digital Signal Processor).
FPGAはLSI製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウェアの設計に利用されている。FPGAは、論理回路の真理値表を格納するためのルックアップテーブル(LUT)と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。FPGAでは、LUTに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、FPGAでLSIを設計した場合、ASIC(Application Specific IC)による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、FPGAを動的に構成することによって、回路構成の再利用を計る方法が提案されている(例えば、特許文献1参照)。 The FPGA can design circuit configuration relatively freely by writing circuit data after the LSI is manufactured, and is used for designing dedicated hardware. The FPGA includes a lookup table (LUT) for storing a truth table of a logic circuit, a basic cell composed of an output flip-flop, and a programmable wiring resource that connects the basic cells. In the FPGA, a target logical operation can be realized by writing data stored in the LUT and wiring data. However, when an LSI is designed using an FPGA, the mounting area is very large and the cost is high compared to an ASIC (Application Specific IC) design. Thus, a method has been proposed in which the circuit configuration is reused by dynamically configuring the FPGA (see, for example, Patent Document 1).
論理回路の演算機能と論理回路どうしの接続を動的に構成するリコンフィギュラブル回路では、論理回路の演算処理ビット数とメモリの1アドレスのビット数が等しく構成されているのが一般である(例えば、特許文献2参照)。
例えば衛星放送では、季節などにより、放送モードを切り替えて画質の調整などを行うことがある。衛星放送受信機では、放送モードごとに複数の回路を予めハードウェア上に作り込んでおき、放送モードに合わせて選択器で回路を切り替えて受信している。従って、受信機の他の放送モード用の回路はその間遊んでいることになる。モード切替のように、複数の専用回路を切り替えて使用し、その切替間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切替時にLSIを瞬時に再構成することにすれば、回路構造を簡単にして汎用性を高め同時に実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なLSIに製造業界の関心が高まってきている。特に、携帯電話やPDA(Personal Digital Assistant)などのモバイル端末に搭載されるLSIは小型化が必要であり、LSIを動的に再構成し、用途に合わせて適宜機能を切り替えることができれば、LSIの実装面積を小さく抑えることができる。 For example, in satellite broadcasting, image quality may be adjusted by switching broadcast modes depending on the season. In the satellite broadcast receiver, a plurality of circuits are built in hardware for each broadcast mode in advance, and the circuit is switched by a selector according to the broadcast mode for reception. Therefore, the other broadcast mode circuits of the receiver are idle during that time. When switching and using multiple dedicated circuits, such as mode switching, and the switching interval is relatively long, instead of creating multiple dedicated circuits, the LSI can be reconfigured instantaneously at the time of switching. The structure can be simplified and versatility can be improved, and at the same time the mounting cost can be reduced. In order to meet such needs, the manufacturing industry has become increasingly interested in dynamically reconfigurable LSIs. In particular, LSIs mounted on mobile terminals such as mobile phones and PDAs (Personal Digital Assistants) need to be miniaturized. If LSIs can be dynamically reconfigured and functions can be switched appropriately according to the application, The mounting area can be kept small.
FPGAは回路構成の設計自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのON/OFFを制御するための制御回路を含む必要があり、必然的に制御回路の実装面積が大きくなる。また、基本セル間の接続に複雑な配線パターンをとるため、配線が長くなる傾向がある。さらに1本の配線に多くのスイッチが接続される構造であるため、遅延が大きくなる。そのため、FPGAによるLSIは、試作や実験のために利用されるにとどまることが多く、実装効率、性能コストなどを考えると、量産には適していない。さらに、FPGAによるLSIでは、多数のLUT方式の基本セルに設定データを送る必要があるため、回路のコンフィギュレーションにはかなりの時間を要する。そのため、瞬時に回路構成の切替が必要な用途にはFPGAによるLSIは適していない。 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. Moreover, since a complicated wiring pattern is used for connection between basic cells, the wiring tends to be long. Furthermore, the delay is increased 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 and performance cost. Furthermore, in the LSI based on the FPGA, it is necessary to send setting data 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, FPGA LSIs are not suitable for applications that require instantaneous switching of the circuit configuration.
それらの課題を解決するため、近年、ALU(Arithmetic Logic Unit)と呼ばれる基本演算機能を複数有する多機能素子を用いたリコンフィギュラブルプロセッサの開発が進められている。リコンフィギュラブルプロセッサでは、コマンドデータが設定されることにより、ALU回路の演算機能構成と接続部が制御され、全体として所期の演算処理回路を実現することが可能となる。コマンドデータは、一般にC言語等の高級プログラム言語で記述されたソースプログラムからDFG(Data Flow Graph)と呼ばれるデータフローを作成し、その情報をもとに作成される。 In order to solve these problems, in recent years, a reconfigurable processor using a multi-functional element called ALU (Arithmetic Logic Unit) having a plurality of basic arithmetic functions has been developed. In the reconfigurable processor, the command data is set to control the arithmetic function configuration and the connection part of the ALU circuit, so that the desired arithmetic processing circuit can be realized as a whole. Command data is generally created based on the data flow called DFG (Data Flow Graph) created from a source program written in a high-level programming language such as C language.
図11に示すように、従来のメモリ構成を備えたプロセッサ(特許文献2参照)では、ALUの演算処理ビット数とメモリの1アドレスのビット数が等しく、ALUの入出力データをそのまま格納していた。そのため、ALUの入出力データの有効なビット数が小さい場合、本来不要な上位のビットもメモリに格納しており、無駄にメモリを使用していた。特に、ALUの処理ビット数が、例えば32ビットやさらに64ビットに拡大すると、無駄に使用されるメモリが増大する。 As shown in FIG. 11, in a processor having a conventional memory configuration (see Patent Document 2), the number of arithmetic processing bits of the ALU is equal to the number of bits of one address of the memory, and the input / output data of the ALU is stored as it is. It was. For this reason, when the number of effective bits of the input / output data of the ALU is small, the upper bits that are originally unnecessary are also stored in the memory, and the memory is used wastefully. In particular, if the number of ALU processing bits is increased to, for example, 32 bits or even 64 bits, the memory that is wasted is increased.
本発明はこうした状況に鑑みてなされたものであり、その目的は、回路規模の縮小化に貢献するリコンフィギュラブル回路を備えた処理装置を提供することである。 The present invention has been made in view of such circumstances, and an object thereof is to provide a processing apparatus including a reconfigurable circuit that contributes to a reduction in circuit scale.
上記目的を達成するため、本発明の第1の観点に係る処理装置は、それぞれが複数の算術論理演算機能を選択的に実行可能な複数の論理回路から構成される演算部と、前記複数の論理回路の間の接続関係を保持する接続部と、を備えるリコンフィギュラブル回路を含む処理装置において、前記論理回路で使用するデータを格納する記憶手段と、前記記憶手段に格納するデータの有効ビット数が前記記憶手段の1アドレスで指定されるメモリワードのビット数を超える場合、前記データを前記メモリワードのビット数を有する複数の部分に分けて、複数の前記メモリワードに格納する分割格納手段と、前記分割格納手段で複数のメモリワードに分割されて格納されたデータを、該複数のメモリワードから読み出すときに、元のビット数のデータに復元する連結読み出し手段と、を備えることを特徴とする。 In order to achieve the above object, a processing device according to a first aspect of the present invention includes an arithmetic unit including a plurality of logic circuits each capable of selectively executing a plurality of arithmetic logic operation functions, In a processing apparatus including a reconfigurable circuit comprising a connection unit that holds a connection relationship between logic circuits, a storage unit that stores data used in the logic circuit, and a valid bit of data stored in the storage unit Divided storage means for dividing the data into a plurality of portions having the number of bits of the memory word and storing the data in a plurality of memory words when the number exceeds the number of bits of the memory word specified by one address of the storage means When the data stored by being divided into a plurality of memory words by the divided storage means is read from the plurality of memory words, the data of the original number of bits Characterized in that it comprises a coupling reading means for restoring, the.
本発明の第2の観点に係る処理装置は、それぞれが複数の算術論理演算機能を選択的に実行可能な複数の論理回路から構成される演算部と、前記複数の論理回路の間の接続関係を保持する接続部と、を備えるリコンフィギュラブル回路を含む処理装置において、前記論理回路で使用するデータを格納する記憶手段と、前記記憶手段に格納するデータの有効ビット数が前記記憶手段の1アドレスで指定されるメモリワードのビット数を超えない場合、前記データを復元可能でかつ前記メモリワードのビット数以下のビット数に変更してメモリに格納する縮退格納手段と、前記縮退格納手段で前記メモリワードのビット数以下のビット数に変更して格納されたデータを読み出すときに、前記論理回路の入力ビット数に合わせて前記データを復元する拡張読み出し手段と、を備えることを特徴とする。 A processing device according to a second aspect of the present invention is a processing unit comprising a plurality of logic circuits each capable of selectively executing a plurality of arithmetic logic operation functions, and a connection relationship between the plurality of logic circuits. In a processing apparatus including a reconfigurable circuit including a connection unit that holds the data, a storage unit that stores data used in the logic circuit, and the number of effective bits of the data stored in the storage unit is 1 of the storage unit. If the number of bits of the memory word specified by the address does not exceed, the degenerate storage means that can restore the data and change the number of bits to be equal to or less than the number of bits of the memory word and store in the memory, and the degenerate storage means When reading the stored data after changing the number of bits to the number of bits of the memory word or less, the data is restored in accordance with the number of input bits of the logic circuit. Characterized in that it and a extended reading means.
本発明の第3の観点に係る処理装置は、前記記憶手段と、前記分割格納手段と、前記連結読み出し手段と、前記縮退格納手段と、前記拡張読み出し手段と、を備えることを特徴とする。 A processing apparatus according to a third aspect of the present invention includes the storage unit, the divided storage unit, the concatenated reading unit, the degenerate storage unit, and the extended reading unit.
さらに、前記論理回路で使用するデータを格納する前記記憶手段の1つのアドレスで指定されるメモリワードのビット数が、前記論理回路で処理するデータのビット数よりも小さいことを特徴とする。 Further, the number of bits of a memory word specified by one address of the storage means for storing data used in the logic circuit is smaller than the number of bits of data processed in the logic circuit.
好ましくは、前記分割格納手段は、前記記憶手段の前記メモリワードのビット数を有する複数の部分に分けられたデータのそれぞれを、元のデータにおけるビット位置に従って、格納する記憶領域が限定されていることを特徴とする。 Preferably, the divided storage means has a limited storage area for storing each of the data divided into a plurality of portions having the number of bits of the memory word of the storage means according to the bit position in the original data. It is characterized by that.
特に、前記分割格納手段又は前記縮退格納手段は、前記演算部から出力されるデータの数を前記データの有効ビット数に応じて制限することを特徴とする。 In particular, the divided storage means or the degenerate storage means limits the number of data output from the arithmetic unit according to the number of effective bits of the data.
また特に、前記連結読み出し手段又は前記拡張読み出し手段は、前記演算部に入力するデータの数を前記データの有効ビット数に応じて制限することを特徴とする。 In particular, the concatenated reading unit or the extended reading unit limits the number of data input to the arithmetic unit according to the number of effective bits of the data.
さらに、前記分割格納手段又は前記縮退格納手段は、前記演算部から出力される各データの有効ビット数に応じて、使用する前記メモリワード数の合計が同時に書き込み可能なメモリワード数を超えないように、同時に前記演算部から出力される前記データ数を制限することを特徴とする。 Further, the divided storage means or the degenerate storage means may prevent the total number of memory words to be used from exceeding the number of memory words that can be simultaneously written according to the number of effective bits of each data output from the arithmetic unit. In addition, the number of data output from the arithmetic unit at the same time is limited.
またさらに、前記連結読み出し手段又は前記拡張読み出し手段は、前記演算部に入力される各データの有効ビット数に応じて使用する前記メモリワード数の合計が同時に読み込み可能なメモリワード数を超えないように、同時に前記演算部に入力するデータ数を制限することを特徴とする。 Still further, the concatenated reading means or the extended reading means may prevent the total number of memory words used according to the number of valid bits of each data input to the arithmetic unit from exceeding the number of memory words that can be read simultaneously. In addition, the number of data input to the arithmetic unit at the same time is limited.
なお、好ましくは、前記分割格納手段又は前記縮退格納手段は、前記演算部から出力されるデータの数を前記データの有効ビット数に応じて制限するか、さらに、前記演算部から出力される各データの有効ビット数に応じて使用する前記メモリワード数の合計が同時に書き込み可能なメモリワード数を超えないように、同時に前記演算部から出力されるデータ数を制限し、そして、前記連結読み出し手段又は前記拡張読み出し手段は、前記演算部に入力するデータの数を前記データの有効ビット数に応じて制限するか、さらに、前記演算部に入力される各データの有効ビット数に応じて使用する前記メモリワード数の合計が同時に読み込み可能なメモリワード数を超えないように、同時に前記演算部に入力するデータ数を制限することを特徴とする。 Preferably, the divided storage unit or the degenerate storage unit limits the number of data output from the calculation unit according to the number of effective bits of the data, or further outputs each of the data output from the calculation unit. The number of data simultaneously output from the arithmetic unit is limited so that the total number of memory words used according to the number of valid bits of data does not exceed the number of simultaneously writeable memory words, and the concatenated reading means Alternatively, the extended reading means limits the number of data input to the calculation unit according to the number of effective bits of the data, or further uses the data according to the number of effective bits of each data input to the calculation unit. The number of data to be simultaneously input to the arithmetic unit is limited so that the total number of memory words does not exceed the number of memory words that can be read simultaneously. To.
本発明の第4の観点に係る処理装置は、前記いずれかの処理装置であって、前記複数の論理回路において選択的に実行する複数の算術論理演算機能と、前記複数の論理回路の間の接続関係を設定して、前記リコンフィギュラブル回路の動作を制御する設定データの生成において、前記複数の論理演算回路が実行する所期の演算処理を記述したプログラムに基づいて、前記論理回路の入出力データの有効ビット数を判定し、前記設定データを生成することを特徴とする。 A processing device according to a fourth aspect of the present invention is any one of the processing devices, comprising: a plurality of arithmetic logic operation functions selectively executed in the plurality of logic circuits; and a plurality of logic circuits between the plurality of logic circuits. In the generation of setting data for setting the connection relation and controlling the operation of the reconfigurable circuit, the input of the logic circuit is based on a program that describes the intended arithmetic processing executed by the plurality of logical arithmetic circuits. The setting data is generated by determining the number of valid bits of the output data.
本発明の処理装置によれば、従来のリコンフィギュラブル回路よりデータの有効ビット数に近いビット数でメモりに格納できるため、効率的なメモリの使用が可能となり、必要なメモリの容量が少なくてすむ。そして、メモリの容量が少なくなることにより、回路規模を縮小することができる。 According to the processing apparatus of the present invention, since it is possible to store the memory with the number of bits closer to the effective number of data than in the conventional reconfigurable circuit, it is possible to use the memory efficiently and to reduce the necessary memory capacity. Tesumu. And the circuit scale can be reduced by reducing the memory capacity.
本発明に係る処理装置の一実施の形態について、図を参照して説明する。図1は、本発明の一実施の形態に係るリコンフィギュラブル回路を含む処理装置の構成を示すブロック図である。図1に示すように、処理装置10は、集積回路装置26を備える。集積回路装置26は、回路構成を再構成可能とする機能を有する。集積回路装置26は1チップとして構成され、リコンフィギュラブル回路1、設定部14、制御部18、内部状態保持回路20、出力回路22および経路部24を備える。リコンフィギュラブル回路1は、設定を変更することにより、機能の変更を可能とする。
An embodiment of a processing apparatus according to the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a processing apparatus including a reconfigurable circuit according to an embodiment of the present invention. As shown in FIG. 1, the processing apparatus 10 includes an
設定部14は、第1設定部14a、第2設定部14b、第3設定部14c、第4設定部14dおよび選択器16を有し、リコンフィギュラブル回路1に所期の回路を構成するための設定データ40を供給する。経路部24は、フィードバックパスとして機能し、リコンフィギュラブル回路1の出力を、リコンフィギュラブル回路1の入力に接続する。内部状態保持回路20および出力回路22は、例えばデータフリップフロップ(D−FF)などの順序回路あるいはメモリで構成され、リコンフィギュラブル回路1の出力を受ける。内部状態保持回路20は経路部24に接続されている。内部状態保持回路20は、リコンフィギュラブル回路1で使用するデータを記憶する記憶部4を備える。リコンフィギュラブル回路1は組合せ回路、またはD−FFのような状態保持を含む順序回路として構成される。
The setting
図2は、ALUアレイを用いたリコンフィギュラブル回路1の構成例を示す図である。図2に示すように、リコンフィギュラブル回路1は、機能の変更が可能な算術論理演算ユニットなどを含む論理回路(ALU)2の集合体を複数備えた構造を有し、また、それぞれの集合体の間に設けられて、集合体間のALU2の接続を選択的に確立可能な少なくとも1つの接続部3を有する。
FIG. 2 is a diagram illustrating a configuration example of the
リコンフィギュラブル回路1において、演算機能を選択的に実行可能な複数のALU2がマトリックス状に配列されて、図2の例では、X段Y列のALUアレイを構成し、各段に配列された複数のALU2が集合体を構成して、前段の集合体における処理結果が、接続部3において選択的に確立される接続にしたがって後段の集合体に引き渡される。上段から下段への論理回路間のデータ渡しは、論理回路間の接続切替を行う接続スイッチに接続データセットを設定することで、下段のどのALU2にデータを渡すかが定められる。動作時には、構成情報に従って演算処理し、結果を出力する。
In the
各論理回路(ALU)2の機能と、論理回路間の接続関係は、図1に示す設定部14により供給される設定データ40に基づいて設定される。設定データ40は、以下の手順で生成される。
The function of each logic circuit (ALU) 2 and the connection relationship between the logic circuits are set based on setting
集積回路装置26により実現されるべきプログラム36が、設定記憶部34に保持されている。プログラム36は、信号処理回路または信号処理アルゴリズムなどをC言語などの高級言語で記述したものである。コンパイル部30は、設定記憶部34に格納されたプログラム36をコンパイルし、データフローグラフ(DFG)38に変換して設定記憶部34に格納する。データフローグラフ38は、入力変数および定数による入力データから出力データに至る演算ないしはデータの流れをグラフ構造で表現したものである。ここで、コンパイル部30は、リコンフィギュラブル回路1におけるALU2の集合体の接続制限に応じて、データフローグラフ38を生成する。
A program 36 to be realized by the
設定データ生成部32は、データフローグラフ38から設定データ40を生成する。設定データ40は、データフローグラフ38をリコンフィギュラブル回路1にマッピングするためのデータであり、リコンフィギュラブル回路1におけるALU2の機能や論理回路間の接続関係を定める。
The setting
(実施の形態1)
図3は、本発明に係る処理装置10において、リコンフィギュラブル回路1が使用するデータを記憶する記憶部4の構成の一例を示す図である。本実施の形態では、リコンフィギュラブル回路1のALUアレイは、演算処理ビット数が32ビットである。記憶部4はメモリ5として、1アドレスで指定されるメモリワードが16ビットのRAM5a、5bを2系統備える。記憶部4は、演算処理ビット数が32ビットのALUからの出力を、1アドレスのメモリワードが16ビットのRAMに格納する。図中の太線は32ビットのデータ線を、細線は16ビットのデータ線を表す。
(Embodiment 1)
FIG. 3 is a diagram showing an example of the configuration of the
記憶部4は、リコンフィギュラブル回路1の32ビットのデータをそのまま受けるレジスタ7aと、32ビットのデータの下位16ビットを受けるレジスタ7bを備える。32ビットレジスタ7aのデータは、上位16ビットのデータと下位16ビットのデータを選択する選択回路(MUX)6aに入力される。下位16ビットを受けるレジスタ7bは、RAM5bに接続している。
The
RAM5a、5bの読み出し側には、レジスタ7c、7dと、ビット拡張回路8と、選択回路6bと、合成回路9a、9bが設けられている。ビット拡張回路8は、RAM5bから読み出したデータのMSB(最上位ビット)を拡張して、上位16ビットを生成する。選択回路6bは、ビット拡張回路8の出力とRAM5aのデータを選択する。合成回路9aは、RAM5aのデータを下位16ビットとし、そのMSBを拡張した16ビットを上位16ビットとして、元のデータを生成する。合成回路9bは、RAM5bのデータを下位ビットとし、選択回路6bの出力を上位16ビットとして元のデータを生成する。
On the read side of the
次に、記憶部4の動作を説明する。図3に示すように、記憶部4は2つのRAM5a、5bを一対とし、ALU2からの出力データの有効ビット数が17ビット以上であれば一対の2つのRAM5a、5bに上位と下位のそれぞれを格納する。すなわち、選択回路6aはレジスタ7aのデータの上位16ビットを選択してRAM5aに記憶する。下位16ビットはRAM5bに記憶される。メモリ5を構成する一対となるRAM5a、5bのうち、RAM5aが上位用、RAM5bが下位用である。
Next, the operation of the
分割して格納したデータは上位16ビットと下位16ビットをそれぞれRAM5a、5bから読み出しビット結合を行い、元の32ビットのデータとしてALU2に入力する。選択回路6bは、RAM5aのデータを選択し、合成回路9bの上位16ビットとする。合成回路9bの下位16ビットはRAM5bのデータ(レジスタ7dのデータ)とする。こうして、RAM5a、5bに分割して記憶された32ビットのデータは、合成回路9bで元の32ビットデータに連結して読み出される。
The divided and stored data is read out from the
ALUからの出力の有効ビット数が16ビット以下の場合は、32ビットの下位16ビットのみをRAM5a又はRAM5bに格納する。その際、いずれのRAM5a、5bに格納してもよい。例えば、連続する16ビット以下のデータは、RAM5aとRAM5bの未使用領域の多い方のRAMに格納する。RAM5aに下位16ビットを格納する場合、選択回路6aは下位16ビットを選択して、RAM5aに格納する。そのとき、RAM5bは異なる16ビット以下のデータを格納してもよい。RAM5bに下位16ビットのみを格納する場合、レジスタ7bから下位16ビットをRAM5bに格納する。そのとき、RAM5aは異なる16ビット以下のデータを格納してもよい。
When the number of effective bits output from the ALU is 16 bits or less, only the lower 16 bits of 32 bits are stored in the
下位16ビットのみが格納されたデータは、RAM5a又はRAM5bから読み出したときに、データのビット拡張を行い、元の32ビットのデータとしてALU2に入力する。すなわち、RAM5aに格納された下位16ビットデータを読み出すときには、合成回路9aでRAM5aのデータ(レジスタ7cのデータ)を下位16ビットとし、レジスタ7cのMSBを拡張した16ビットを上位16ビットとして、元のデータを生成する。
When data having only the lower 16 bits stored therein is read from the
下位16ビットのMSBを拡張する方法は、データの型によって異なる。例えば、16ビットのデータが文字コードのような符号の場合は、上位16ビットに拡張するビットは常に0でよい。データが整数型で負の数が2の補数表示である場合は、上位16ビットに拡張するビットは、下位16ビットのMSBと同じビットである必要がある。すなわち、正数の場合は0を上位16ビットに詰め、負数の場合は1を上位16ビットに詰める。ALU2において、上位16ビットが整数型以外では用いられることがなければ、ビット拡張回路8は常に整数型と同じ処理を行うものであってもよい。
The method of extending the lower 16 bits MSB differs depending on the data type. For example, when 16-bit data is a code such as a character code, the bit extended to the upper 16 bits may always be 0. When the data is an integer type and the negative number is 2's complement notation, the bit extended to the upper 16 bits needs to be the same bit as the MSB of the lower 16 bits. That is, in the case of a positive number, 0 is padded to upper 16 bits, and in the case of a negative number, 1 is padded to upper 16 bits. In ALU2, if the upper 16 bits are not used for anything other than the integer type, the
RAM5bに格納された下位16ビットのみのデータを読み出すときには、ビット拡張回路8は、RAM5bから読み出したデータのMSB(最上位ビット)を拡張して、上位16ビットを生成する。選択回路6bは、ビット拡張回路8の出力を選択して、合成回路9bの上位16ビットとする。合成回路9bは、RAM5bのデータ(レジスタ7dのデータ)を下位16ビットとし、選択回路6bの出力(ビット拡張回路8で生成された上位16ビット)を上位16ビットとして元のデータを生成する。
When reading only the lower 16 bits of data stored in the
こうして、RAM5a又はRAM5bに下位16ビットのみが格納されたデータは、合成回路9a又は合成回路9bで元の32ビットデータに拡張されて読み出される。
In this way, the data in which only the lower 16 bits are stored in the
ALU2からの出力データの有効ビット数が16ビット以下の場合、図11に示す従来の記憶部4aの構成では不要な上位16ビットのデータもメモリに格納していたが、本実施の形態1の記憶部4により不要なデータの格納が削減され、従来よりも効率的にメモリ5にデータを格納することが可能となる。その結果、メモリの容量が少なくなることにより、回路規模を縮小することができる。
When the number of effective bits of output data from the
図3では、RAM5aは16ビット又は32ビットの上位のデータを格納し、RAM5bは16ビット又は32ビットの下位のデータを格納する。そのため、メモリ5への入力において、左のRAM5aには上位16ビットか下位16ビットかを選択する選択回路(MUX)6aが備わっているが、右のRAM5bには常に下位のデータが書き込まれるため、選択回路は必要ない。
In FIG. 3, the
記憶部4からの出力においては、元のデータが32ビットのデータの場合の左のRAM5aからの出力である上位16ビットと、元のデータが16ビットの場合の右のRAM5bからの出力をビット拡張した上位16ビットとを選択する選択回路6bと、選択回路6bからの出力を上位16ビットとし、右のRAM5bからの出力を下位16ビットとしてビット統合を行い32ビットのデータとする合成回路9bが備わっている。また、下位16ビットのデータが左のRAM5aに格納されている場合に、左のRAM5aからの出力をビット拡張し32ビットのデータとする合成回路9aが備わっている。合成回路9aの上位16ビットは常に左のRAM5aからの出力をビット拡張した16ビットのデータであるため、選択回路6bのような上位16ビットを選択する選択回路は必要ない。
In the output from the
図4は、図3の記憶部4の構成を用いた場合の、ALU2からメモリ5に到る回路構成例を示す図である。3個のALU2が、図3の1対のRAM5a、5bにアクセス可能である。左のRAM5aには、上位16ビットと下位16ビットの両方を入力可能とするため、ALU3個×上位下位2個の計6個から1個の16ビットデータを選択する6→1の選択回路(MUX)6cが備わっている。また、右のRAM5bには下位16ビットのみが入力されるため、ALU3個×下位1個の計3個から1個の16ビットデータを選択する3→1の選択回路(MUX)6dが備わっている。
FIG. 4 is a diagram showing a circuit configuration example from the
6→1MUX6cが上位16ビットを選択する場合、3→1MUX6dは同じALUの出力の下位16ビットを選択する。6→1MUX6cが下位16ビットを選択する場合、3→1MUX6dは異なるALU2の出力の下位16ビットを選択してもよい。従って、この3個のALU2からの出力は、有効ビット数が16ビット以下のデータ2個か、17ビット以上のデータ1個に制限される。また、ALU2への入力においても同様で、入力データの有効ビット数が16ビット以下のデータ2個(種類)か、17ビット以上のデータ1個(種類)に制限される。このように、ALU2の入出力制限は、データの有効ビット数に依存する。
When 6 →
ALU2の入出力データの有効ビット数は、リコンフィギュラブル回路1で実行する所期の演算処理を記述したプログラム36に基づいて判定される。所期の演算処理がC言語で記述される場合、変数の型やコメント文で有効ビット数を判定できる。例えば、変数の型がint型(整数型)であればその変数の有効ビット数は32ビットとして、short型であれば有効ビット数が16ビットとして判定できる。そして、設定データ生成部32は、設定データ40を作成するときに、ALU2の入出力データの判定結果に基づいた有効ビット数から、上述した制限でRAM5a、5bにデータを格納するための設定データ40を作成する。
The number of effective bits of the input / output data of the
図5は、複数対のRAM5a、5b、5c、5dを用いた記憶部4の構成を示す。図3及び図4の記憶部4では一対のRAM5a、5bを用いた構成であるが、図5のように複数対のRAM構成でもよい。図5は2対のRAM5a、5bと、RAMc、dを用いた構成であり、この場合入出力データの有効ビット数が16ビット以下のデータ4個(種類)か、17ビット以上のデータ2個(種類)か、17ビット以上のデータ1個(種類)と16ビット以下のデータ1個(種類)に制限される。
FIG. 5 shows a configuration of the
図5に示す記憶部のように2対のRAMを用いる場合、リコンフィギュラブル回路のALU2を2つに分けて、一方は左の1対のRAM5a、5bにアクセスし、他方は右の1対のRAM5c、5dにアクセスするように構成してもよい。全てのALU2がいずれの対のRAM5a、5b、5c、5dにアクセスできるようにしてもよい。
When two pairs of RAMs are used like the storage unit shown in FIG. 5, the ALU2 of the reconfigurable circuit is divided into two, one accesses the left pair of
本実施の形態では、32ビットのデータを上位16ビットと下位16ビットに分けて記憶部4に格納する場合について説明したが、データのビット数と記憶部4に格納するビット数は32ビットと16ビットに限られない。メモリ5は、ALU2の入出力ビット数を格納できる数のRAMで構成されていればよい。例えば、データのビット数が16ビットの場合に、記憶部4に格納するビット数が8ビットの2つの部分に分割して格納する構成とすることができる。また、データが64ビットの場合、上位32ビットと下位32ビットに分割して記憶部に格納する構成であってもよい。データを上位と下位の2部分に分けて格納する構成は、図3及び図4の構成と同様である。
In the present embodiment, the case where 32-bit data is divided into upper 16 bits and lower 16 bits and stored in the
さらに、データを多くの部分に分割して記憶部に格納する構成も可能である。例えば、64ビットのデータを16ビットずつの4つの部分に分けて記憶部に格納する構成とすることができる。その場合、データの有効ビット数が16ビット以下、32ビット以下、48ビット以下、48ビットを越える場合の4通りに分けて、4つの16ビットRAMにデータを格納する。 Furthermore, a configuration in which data is divided into many parts and stored in the storage unit is also possible. For example, 64-bit data can be divided into four portions of 16 bits and stored in the storage unit. In that case, data is stored in four 16-bit RAMs divided into four cases where the number of effective bits of data is 16 bits or less, 32 bits or less, 48 bits or less, and more than 48 bits.
図6は64ビットALUアレイから出力されるデータを4つの16ビットRAMに格納する場合の記憶部4の構成例を示す。図6において、白抜き線は64ビットのデータ線を、太線は32ビットのデータ線を、細線は16ビットのデータ線を表す。図6の記憶部4は、図3の記憶部4における分割を2段階で行い、また拡張及び合成を2段階で行う構成になっている。
FIG. 6 shows an example of the configuration of the
64ビットデータの有効ビットが32ビットを超える場合は、データはRAM5a、5b、5c、5dの4つに16ビットずつ分割して格納される。64ビットデータの有効ビットが32ビット以下の場合、64ビットの下位32ビットのデータのみがRAM5aと5b、又はRAM5cと5dに格納される。さらに、データの有効ビット数が16ビット以下の場合は、64ビットの最下位16ビットのデータのみが、RAM5a、5b、5c又は5dのいずれかに格納される。
When the effective bits of 64-bit data exceed 32 bits, the data is divided into 16 bits and stored in four
なお、対をなすRAMの1アドレスで指定されるメモリワードのビット数は不均一であってもよい。例えば、RAM5aが8ビットであり、RAM5bが24ビットの構成であってもよい。その場合、データの有効ビット数が8ビット以下であれば、RAM5a又はRAM5bに格納される。また、データの有効ビット数が9ビット以上24ビット以下であれば、RAM5bに格納される。さらに、データの有効ビット数が25ビット以上であれば、RAM5aとRAM5bに対として格納される。
Note that the number of bits of the memory word specified by one address of the paired RAM may be non-uniform. For example, the
図7は、メモリ5をビット数の異なる3つのRAMで構成した記憶部4の例を示す。図7において、太い実線は32ビットのデータ線を、細い実線は16ビットのデータ線を、点線は8ビットのデータ線を表す。リコンフィギュラブル回路1のALUアレイは、演算処理ビット数が32ビットである。記憶部4はメモリ5として、1アドレスで指定されるメモリワードが16ビットのRAM5aと、1アドレスで指定されるメモリワードが8ビットのRAM5e及び5fを備える。記憶部4は、演算処理ビット数が32ビットのALUからの出力を、1アドレスのメモリワードが16ビットのRAM5aと、8ビットのRAM5e及び5fに格納する。
FIG. 7 shows an example of the
記憶部4は、リコンフィギュラブル回路1の32ビットのデータをそのまま受けるレジスタ7aと、32ビットのデータの下位16ビットを受けるレジスタ7bと、32ビットのデータの最下位8ビットを受けるレジスタ7cを備える。32ビットレジスタ7aのデータは、上位16ビットのデータ(D1とD2)、中央の16ビットのデータ(D2とD3)又は下位16ビットのデータ(D3とD4)を選択する選択回路(MUX)6aに入力される。選択回路6aの出力は、RAM5aに入力される。
The
下位16ビットを受けるレジスタ7bは、その16ビットのうち、上位8ビットと下位8ビットを選択する選択回路(MUX)6bに入力される。選択回路6bの出力は、RAM5eに入力される。最下位8ビットを受けるレジスタ7cは、RAM5fに接続している。
The
RAM5a、5e及び5fの読み出し側には、レジスタ7d、7e、7f、7g、7hと、ビット拡張回路8a、8b、8cと、選択回路6c、6d、6e、6fと、合成回路9a、9b、9cが設けられている。ビット拡張回路8aは、RAM5aから読み出した16ビットデータ(レジスタ7d)のMSB(最上位ビット)を拡張した8ビットを生成する。ビット拡張回路8bは、RAM5eから読み出した8ビットデータ(レジスタ7e)のMSBを拡張した8ビットを生成する。ビット拡張回路8cは、RAM5fから読み出した8ビットデータ(レジスタ7f)のMSBを拡張した8ビットを生成する。
On the reading side of the
拡大回路7gは、ビット拡張回路8bの出力を2倍の16ビットに拡大する。拡大回路7hは、ビット拡張回路8cの出力を2倍の16ビットに拡大する。
The expansion circuit 7g expands the output of the
選択回路6cは、RAM5aのデータと拡大回路7gのデータを選択して、合成回路9bの中央の16ビットデータ(D2とD3)とする。選択回路6dは、RAM5aのデータと拡大回路7g又は7hのデータを選択して、合成回路9cの上位16ビットデータ(D1とD2)とする。選択回路6eは、ビット拡張回路8aの出力とビット拡張回路8bの出力を選択して、合成回路9bの上位8ビットデータ(D1)とする。選択回路6fは、RAM5eのデータとビット拡張回路8cの出力を選択して、合成回路9cの下位16ビットの上位側8ビットデータ(D3)とする。
The
次に、記憶部4の動作を説明する。図7に示すように、記憶部4は3つのRAM5a、5e、5fを一組とし、ALU2からの出力データの有効ビット数が25ビット以上であれば一組の3つのRAM5a、5e、5fに分割して格納する。すなわち、選択回路6aはレジスタ7aのデータの上位16ビットを選択してRAM5aに記憶する。下位16ビットのうち上位側8ビットは、選択回路6bで選択されてRAM5eに格納される。最下位8ビットは、RAM5fに格納される。
Next, the operation of the
有効ビット数24ビット以下で分割して格納したデータは上位16ビットと下位16ビットの上位側8ビットと下位側8ビットをそれぞれRAM5a、5e、5fから読み出してビット結合を行い、元の32ビットのデータとしてALU2に入力する。選択回路6dは、RAM5aのデータを選択し、合成回路9cの上位16ビットとする。選択回路6fはRAM5eのデータ(レジスタ7eのデータ)を選択し、合成回路9cの下位16ビットの上位側8ビットとする。そして、合成回路9cの下位16ビットの下位側8ビット(D4)は、RAM5fのデータ(レジスタ7f)のデータとする。こうして、RAM5a、5e、5fに分割して記憶された32ビットのデータは、合成回路9cで元の32ビットデータに連結して読み出される。
The data stored with the effective number of bits divided into 24 bits or less is read out from the upper 5 bits and lower 8 bits of the upper 16 bits and lower 16 bits from the
ALUからの出力の有効ビット数が17ビット以上、24ビット以下の場合は、32ビットの中央の16ビットのデータ(D2とD3)をRAM5aに格納し、最下位8ビットのデータ(D4)をRAM5eに格納する。すなわち、選択回路6aは、レジスタ7aのデータの中央16ビットを選択してRAM5aに格納する。最下位8ビットのデータ(D4)は、選択回路6bでレジスタ7bから選択されてRAM5eに格納される。
When the number of valid bits output from the ALU is 17 bits or more and 24 bits or less, the 16 bits data (D2 and D3) at the center of 32 bits are stored in the
有効ビット数が17ビット以上、24ビット以下で分割して格納されたデータは、合成回路9bで元の32ビットデータに連結して読み出される。選択回路6cはRAM5aのデータ(レジスタ7dのデータ)を選択して32ビットの中央の16ビットデータ(D2とD3)とする。合成回路9bの最下位8ビットはRAM5eのデータとする。選択回路6eは、ビット拡張回路8aの出力を選択して合成回路9bの最上位8ビットのデータとする。
The data divided and stored with the effective bit number being 17 bits or more and 24 bits or less is read out by being combined with the original 32-bit data by the
ALUからの出力の有効ビット数が16ビット以下の場合は、32ビットの下位16ビットのみをRAM5a、又はRAM5e及び5fに格納する。例えば、連続する16ビット以下のデータは、RAM5aとRAM5e及び5fの未使用領域の多い方のRAMに格納する。RAM5aに下位16ビットを格納する場合、選択回路6aは下位16ビット(D3とD4)を選択して、RAM5aに格納する。そのとき、RAM5e及び5fは異なる16ビット以下のデータを格納してもよい。RAM5e及び5fに下位16ビットのみを格納する場合、選択回路6bはレジスタ7bから上位側8ビット(D3)を選択してRAM5eに格納し、レジスタ7cから最下位8ビット(D4)をRAM5fに格納する。そのとき、RAM5aは異なる16ビット以下のデータを格納してもよい。
When the number of effective bits output from the ALU is 16 bits or less, only the lower 16 bits of 32 bits are stored in the
下位16ビットのみが格納されたデータは、RAM5a又はRAM5e及び5fから読み出したときに、データのビット拡張を行い、元の32ビットのデータとしてALU2に入力する。すなわち、RAM5aに格納された下位16ビットデータを読み出すときには、合成回路9aでRAM5aのデータ(レジスタ7dのデータ)を下位16ビットとし、レジスタ7dのMSBを拡張した8ビットを2倍の上位16ビットに拡大して、元のデータを生成する。
When data having only the lower 16 bits stored therein is read from the
RAM5e及びRAM5fに格納された下位16ビットを読み出すときには、合成回路9cで読み出しデータの連結を行う。最下位8ビットはRAM5fから読み出したデータとする。選択回路6fは、RAM5eのデータを選択して下位16ビットの上位側8ビットのデータ(D3)とする。ビット拡張回路8bは、レジスタ7eのMSBを拡張し、拡大回路7gはさらに2倍の16ビットに拡大する。選択回路6dは、拡大回路7gのデータを選択して、合成回路9cの上位16ビットとする。
When reading the lower 16 bits stored in the
ALU2からの出力の有効ビット数が8ビット以下の場合は、32ビットの最下位8ビットのみをRAM5e又はRAM5fに格納する。選択回路6bで最下位8ビットを選択してRAM5eに格納するか、最下位8ビット(レジスタ7cで表される)をRAM5fに格納する。また、32ビットの下位16ビットをRAM5aに格納してもよい。この場合は、有効ビット数が16ビット以下の場合の格納、読み出しと同様になる。
When the number of effective bits output from the
最下位8ビットのみを格納したデータは、合成回路9b又は9cで元の32ビットに拡張して読み出される。RAM5eから最下位8ビットのみが格納されたデータを読み出す場合は、選択回路6cで拡大回路7gのデータを選択して中央16ビットとする。選択回路6eは、ビット拡張回路8bの出力を選択して合成回路9bの最上位8ビット(D1)とする。合成回路9bの最下位8ビットは、RAM5eから読み出したデータ(レジスタ7eで表される)とする。
Data storing only the least significant 8 bits is expanded and read by the combining
RAM5fから最下位8ビットのみが格納されたデータを読み出す場合、選択回路6dは、拡大回路7hのデータ(ビット拡張回路8cの出力を2倍に拡大したデータである)を選択して合成回路9cの上位16ビットとする。選択回路6fは、ビット拡張回路8cの出力を選択して、合成回路9cの下位16ビットの上位側8ビット(D3)とする。合成回路9cの最下位8ビットは、RAM5fから読み出したデータ(レジスタ7fで表される)とする。
When reading data in which only the least significant 8 bits are stored from the
図7の記憶部4は、ALU2からの出力データの有効ビット数が8ビット以下であれば、RAM5eまたはRAM5fに下位8ビットを格納することができる。また、有効ビット数が9ビット以上16ビット以下であれば、RAM5a又はRAM5e+RAM5fに下位16ビットを格納することができ、17ビット以上24ビット以下であればRAM5a+RAM5eに下位24ビットを格納することができる。そして、25ビット以上であれば、RAM5a+RAM5e+RAM5fに32ビットを格納することができる。
The
RAMのビット数が小さくなるほど、RAMの利用効率が向上しRAMの容量は少なくなるが、MUX等のRAM周辺回路と設定データ数が増加するため、最良の形態は回路全体の規模とシステムに依存するところである。 The smaller the number of bits of RAM, the more efficient the use of RAM and the smaller the capacity of RAM. However, since the RAM peripheral circuit such as MUX and the number of set data increase, the best mode depends on the scale of the entire circuit and the system. I'm about to do it.
図3、4、6及び7では、理解を容易にするためにメモリ5の入力側と出力側にレジスタ7a、7b等を記載したが、レジスタはデータを保持する回路でなく、データ線であってもよい。
3, 4, 6, and 7, the
(実施の形態2)
図8は、本発明に係る処理装置10において、リコンフィギュラブル回路1が使用するデータを記憶する記憶部4の構成の異なる例を示す図である。図3の記憶部4と同様、演算処理ビット数が32ビットのALU2からの出力データを、1アドレスのメモリワードが16ビットのRAMに格納する。本実施の形態では、リコンフィギュラブル回路1のALUアレイは、演算処理ビット数が32ビットである。
(Embodiment 2)
FIG. 8 is a diagram illustrating an example of a different configuration of the
記憶部4はメモリ5として、1アドレスで指定されるメモリワードが16ビットのRAMを2系統備える。記憶部4は、演算処理ビット数が32ビットのALU2から出力を1アドレスのメモリワードが16ビットのRAMに格納する。図中の太線は32ビットのデータ線を、細線は16ビットのデータ線を表す。
The
記憶部4は、リコンフィギュラブル回路1の32ビットのデータを受けるレジスタ7と、そのレジスタ7の上位16ビットと下位16ビットを選択する選択回路6aを備える。選択回路6aの出力は、RAM5aに接続している。また、レジスタの下位16ビットは、RAM5bに接続している。
The
RAM5a、5bの読み出し側には、選択回路6b、6eと、レジスタ7eと、ビット拡張回路8と、合成回路9bが設けられている。選択回路6eは、RAM5aの1メモリワードのデータと、RAM5bの1メモリワードのデータを選択してレジスタ7eに入力する。レジスタ7eは、合成回路9bの下位16ビットに接続している。ビット拡張回路8は、レジスタ7eのデータのMSB(最上位ビット)を拡張して、上位16ビットを生成する。選択回路6bは、ビット拡張回路8の出力とRAM5aのデータを選択する。合成回路9bは、レジスタ7eのデータを下位16ビットとし、選択回路6bの出力を上位16ビットとして、元のデータを生成する。
On the read side of the
次に、記憶部4の動作を説明する。図8に示すように、2つのRAM5a、5bを1対とし、ALU2からの出力データの有効ビット数が17ビット以上であれば、一対の2つのRAM5a、5bに上位16ビットと下位16ビットのそれぞれを格納する。すなわち、選択回路6aはレジスタ7の上位16ビットを選択してRAM5aに記憶する。レジスタ7の下位16ビットはRAM5bに記憶される。この場合、メモリ5の一対となるRAM5a、5bのうち、RAM5aが上位用、RAM5bが下位用となる。
Next, the operation of the
分割して格納したデータは上位16ビットと下位16ビットをそれぞれRAM5a、5bから読み出してビット結合を行い、元の32ビットのデータとしてALU2に入力する。選択回路6bは、RAM5aのデータを選択し、合成回路9bの上位16ビットとする。選択回路6eは、RAM5bのデータを選択してレジスタ7eにセットする。レジスタ7eのデータは、合成回路9bの下位16ビットとなる。この場合、ビット拡張回路8の出力は使用されない。合成回路9bの上位16ビットは、選択回路6bの出力であるRAM5aのデータであり、下位16ビットはRAM5bのデータ(レジスタ7eのデータ)である。こうして、RAM5a、5bに分割して記憶された32ビットのデータは、合成回路9bで元の32ビットデータに連結して読み出される。
The divided data stored in the upper 16 bits and lower 16 bits are read out from the
ALU2からの出力の有効ビット数が16ビット以下の場合は、32ビットの下位16ビットのみをRAM5a又はRAM5bに格納する。その際、いずれのRAM5a、5bに格納してもよい。例えば、連続する16ビット以下のデータは、RAM5aとRAM5bの未使用領域の多い方のRAMに格納する。RAM5aに下位16ビットを格納する場合、選択回路6aはレジスタ7の下位16ビットを選択して、RAM5aに格納する。そのとき、RAM5bは使用されない。RAM5bに下位16ビットのみを格納する場合、レジスタ7から下位16ビットをRAM5bに格納する。そのとき、RAM5aは使用されない。
When the number of effective bits output from the
下位16ビットのみが格納されたデータは、RAM5a又はRAM5bから読み出したときに、データのビット拡張を行い、元の32ビットのデータとしてALU2に入力する。すなわち、RAM5aに格納された下位16ビットデータを読み出すときには、選択回路6eでRAM5aのデータを選択してレジスタ7eにセットする。ビット拡張回路8は、レジスタ7eのMSBを拡張して、上位16ビットを生成する。選択回路6bは、ビット拡張回路8の出力を選択して、合成回路9bの上位16ビットとする。レジスタ7eのデータ(RAM5aのデータ)は、合成回路9bの下位16ビットとなる。合成回路9bは、RAM5aのデータ(レジスタ7eのデータ)を下位16ビットとし、レジスタ7eのMSBを拡張した16ビットを上位16ビットとして、元のデータを生成する。
When data having only the lower 16 bits stored therein is read from the
RAM5bに格納された下位16ビットのみのデータを読み出すときには、選択回路6eはRAM5bのデータを選択してレジスタ7eにセットする。ビット拡張回路8は、レジスタ7eのMSBを拡張して、上位16ビットを生成する。選択回路6bは、ビット拡張回路8の出力を選択して、合成回路9bの上位16ビットとする。レジスタ7eのデータ(RAM5bのデータ)は、合成回路9bの下位16ビットとなる。合成回路9bは、RAM5bのデータ(レジスタ7eのデータ)を下位ビットとし、選択回路6bの出力(ビット拡張回路8で生成された上位16ビット)を上位16ビットとして元のデータを生成する。
When reading data of only the lower 16 bits stored in the
こうして、RAM5a又はRAM5bに下位16ビットのみが格納されたデータは、合成回路9bで元の32ビットデータに拡張されて読み出される。
In this way, the data in which only the lower 16 bits are stored in the
ALU2からの出力の有効ビット数が16ビット以下の場合、図3の形態と同様、不要な上位16ビットのデータの格納が削減され、従来よりも効率的に記憶部4にデータを格納することが可能となる。図8では、左のRAM5aはALU2からの32ビットの出力データの上位16ビット又は下位16ビットのデータを格納し、右のRAM5bはALU2からの32ビットの出力データの下位16ビットのデータを格納する。図3の記憶部4の構成では、有効ビット数が16ビット以下のデータであれば、RAM5a、5bに同時に読み書き可能であるが、図8の記憶部4では、16ビット以下のデータであってもどちらか一方のRAM5a又は5bにしか読み書きできない。しかし、図3の構成では記憶部4の出力の32ビットを選択する選択回路が省略されており、それを含めて回路規模を比較すると、図8の構成は図3の構成に比べて選択回路(MUX)の数が少ないため回路規模が小さい。
When the number of effective bits output from the
図9は、図8の記憶部4の構成を用いた場合の、ALU2からメモリ5に到る回路構成例を示す図である。3個のALU2が、図8の1対のRAM5a、5bにアクセス可能である。32ビットのALU2からの出力データを選択する3→1MUX6fが備わっている。従って、この3個のALU2からの出力は、有効ビット数に関係なく1個に制限される。また、ALU2への入力においても同様で、有効ビット数に関係なくデータ1個(種類)に制限される。このように、ALU2の入出力制限がデータの有効ビット数に依存しないため、1対のRAM5a、5b構成を一つのメモリ5としてみなすと、従来のRAM構成と同様の処理が適用可能となる。
FIG. 9 is a diagram illustrating a circuit configuration example from the
ALU2の入出力データの有効ビット数は、リコンフィギュラブル回路1で実行する所期の演算処理を記述したプログラム36に基づいて判定される。所期の演算処理がC言語で記述される場合、変数の型やコメント文で有効ビット数を判定できる。そして、設定データ生成部32は、設定データ40を作成するときに、ALU2の入出力データの判定結果に基づいた有効ビット数から、上述した制限でRAM5a、5bにデータを格納するための設定データ40を作成する。
The number of effective bits of the input / output data of the
図10は、複数対のRAM5a、5b、5c、5dを用いた記憶部4の構成を示す。図8、図9では1対のRAM構成であるが、図10のように複数対のRAM構成でもよい。図10は2対のRAM5a、5bとRAM5c、5dを、それぞれ図8又は図9の記憶部4の構成で用いた例である。この場合入出力データは有効ビット数に関係なく2個(種類)に制限される。
FIG. 10 shows a configuration of the
図3と図8の記憶部4の構成は、それぞれALU2の入出力制限が異なる。いずれの構成を採用するかは、処理装置10を適用するシステムの特性に合わせて決められる。なお、2つの実施の形態を組み合わせた形態も可能である。
The configuration of the
本実施の形態においても、32ビットのデータを上位16ビットと下位16ビットに分けて記憶部4に格納する場合について説明したが、データのビット数と記憶部に格納するビット数は32ビットと16ビットに限られない。例えば、データのビット数が16ビットの場合に、記憶部に格納するビット数が8ビットの2つの部分に分割して格納する構成とすることができる。また、データが64ビットの場合、上位32ビットと下位32ビットに分割して記憶部に格納する構成であってもよい。データを上位と下位の2部分に分けて格納する構成は、図8及び図9の構成と同様である。
Also in this embodiment, the case where 32-bit data is divided into upper 16 bits and lower 16 bits and stored in the
さらに、データを多くの部分に分割して記憶部に格納する構成も可能である。また、対をなすRAMの1アドレスで指定されるメモリワードのビット数は不均一であってもよい。 Furthermore, a configuration in which data is divided into many parts and stored in the storage unit is also possible. In addition, the number of bits of the memory word specified by one address of the paired RAM may be non-uniform.
図8及び9では、理解を容易にするためにメモリ5の入力側と出力側にレジスタ7、7e等を記載したが、レジスタはデータを保持する回路でなく、データ線であってもよい。
8 and 9, the
本発明により、効率的に記憶部4にデータを格納することができるため、全体のメモリ容量が従来よりも削減され、回路規模を縮小化できる。
According to the present invention, since data can be efficiently stored in the
なお、各実施の形態で説明した処理装置10、リコンフィギュラブル回路1及び記憶部
4の回路構成は一例であり、任意に変更及び修正が可能である。記憶部4の構成は、実施の形態で示したものがすべてではなく、これらに限定されるものではない。
Note that the circuit configurations of the processing device 10, the
1 リコンフィギュラブル回路
2 論理回路(ALU)
3 接続部
4 記憶部
5 メモリ
5a、5b、5c、5d、5e、5f RAM
6a、6b、6c、6d、6e、6f 選択回路
7、7a、7b、7c、7d、7e、7f レジスタ
7g、7h 拡大回路
8、8a、8b ビット拡張回路
9a、9b、9c 合成回路
10 処理装置
30 コンパイル部
32 設定データ生成部
34 設定記憶部
36 プログラム
38 データフローグラフ
40 設定データ
1 Reconfigurable circuit
2 Logic circuit (ALU)
3 connections
4 storage
5
6a, 6b, 6c, 6d, 6e,
7g, 7h Enlarged circuit
8, 8a, 8b bit expansion circuit
9a, 9b, 9c synthesis circuit
10 Processing device
30 Compilation section
32 Setting data generator
34 Setting memory
36 programs
38 Data flow graph
40 Setting data
Claims (8)
前記複数の論理回路の間の接続関係を保持する接続部と、
を備えるリコンフィギュラブル回路を含む処理装置において、
前記論理回路で使用するデータを格納する記憶手段と、
前記記憶手段に格納するデータのビット数が前記記憶手段の1アドレスで指定されるメモリワードのビット数を超え、かつ、前記データの有効ビット数が前記メモリワードのビット数を超えない場合、前記データを前記メモリワードのビット数以下のビット数に変更して1つのメモリワードに格納する縮退格納手段と、
前記縮退格納手段で前記メモリワードのビット数以下のビット数に変更して格納されたデータを読み出すときに、前記論理回路の入力ビット数に合わせて前記データを復元する拡張読み出し手段と、
を備えることを特徴とする処理装置。 An arithmetic unit composed of a plurality of logic circuits each capable of selectively executing a plurality of arithmetic logic operation functions;
A connection unit for maintaining a connection relationship between the plurality of logic circuits;
In a processing apparatus including a reconfigurable circuit comprising:
Storage means for storing data used in the logic circuit;
When the number of bits of data stored in the storage means exceeds the number of bits of a memory word specified by one address of the storage means, and the number of valid bits of the data does not exceed the number of bits of the memory word , Degenerate storage means for changing data to a number of bits less than or equal to the number of bits of the memory word and storing it in one memory word;
Extended read means for restoring the data in accordance with the number of input bits of the logic circuit when the data stored in the degenerate storage means is changed to a bit number equal to or less than the number of bits of the memory word ; and
A processing apparatus comprising:
前記分割格納手段で前記複数のメモリワードに分割されて格納されたデータを、前記複数のメモリワードから読み出すときに、元のビット数のデータに復元する連結読み出し手段と、
を備えることを特徴とする請求項1に記載の処理装置。 If the number of bits of data stored in the storage means exceeds the number of bits of the memory word and the number of valid bits of the data exceeds the number of bits of the memory word, the data has the number of bits of the memory word. Divided storage means for dividing into a plurality of parts and storing in a plurality of memory words;
Concatenated read means for restoring the original number of bits when reading from the plurality of memory words, the data divided and stored in the plurality of memory words by the divided storage means,
The processing apparatus according to claim 1, further comprising:
に分けられたデータのそれぞれを、元のデータにおけるビット位置に従って、格納する記
憶領域が限定されている請求項2に記載の処理装置。 The divided storage means has a plurality of portions having the number of bits of the memory word of the storage means
Each of the divided data is stored according to the bit position in the original data.
The processing apparatus according to claim 2, wherein the storage area is limited .
記データの有効ビット数に応じて制限することを特徴とする請求項1乃至3のいずれか1
項に記載の処理装置。 The divided storage unit or the degenerate storage unit is configured to calculate the number of data output from the arithmetic unit.
4. The method according to claim 1, wherein the number of bits is limited according to the number of effective bits of the data.
The processing apparatus according to item.
を前記データの有効ビット数に応じて制限することを特徴とする請求項1乃至4のいずれ
か1項に記載の処理装置。 The concatenated reading means or the extended reading means is the number of data input to the arithmetic unit.
The processing apparatus according to any one of claims 1 to 4, characterized in that to limit in accordance with the number of effective bits of the data.
ビット数に応じて、使用する前記メモリワードの数の合計が同時に書き込み可能なメモリ
ワードの数を超えないように、前記演算部から同時に出力される前記データの数を制限す
ることを特徴とする請求項4に記載の処理装置。 The divided storage unit or the degenerate storage unit is configured to validate each data output from the arithmetic unit.
Memory in which the total number of memory words to be used can be written simultaneously according to the number of bits
5. The processing apparatus according to claim 4 , wherein the number of the data simultaneously output from the arithmetic unit is limited so as not to exceed the number of words .
の有効ビット数に応じて、使用する前記メモリワードの数の合計が同時に読み込み可能な
メモリワードの数を超えないように、前記演算部に同時に入力するデータ数を制限するこ
とを特徴とする請求項5に記載の処理装置。 The concatenated reading means or the extended reading means is each data input to the arithmetic unit.
Depending on the number of valid bits, the total number of memory words used can be read simultaneously
6. The processing apparatus according to claim 5 , wherein the number of data simultaneously input to the arithmetic unit is limited so as not to exceed the number of memory words .
論理回路の間の接続関係を設定して、前記リコンフィギュラブル回路の動作を制御する設
定データの生成において、
前記複数の論理回路が実行する所期の演算処理を記述したプログラムに基づいて、前記
論理回路の入出力データの有効ビット数を判定し、前記設定データを生成することを特徴
とする請求項1乃至7のいずれか1項に記載の処理装置。 A plurality of arithmetic logic operation functions selectively executed in the plurality of logic circuits;
A setting for controlling the operation of the reconfigurable circuit by setting a connection relationship between logic circuits.
In the generation of constant data ,
Based on a program describing an intended arithmetic process executed by the plurality of logic circuits,
Determining the number of effective bits of the input and output data of the logic circuit, the processing apparatus according to any one of claims 1 to 7, characterized in that to generate the configuration data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005370914A JP4669781B2 (en) | 2005-12-22 | 2005-12-22 | Processing equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005370914A JP4669781B2 (en) | 2005-12-22 | 2005-12-22 | Processing equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007172400A JP2007172400A (en) | 2007-07-05 |
JP4669781B2 true JP4669781B2 (en) | 2011-04-13 |
Family
ID=38298862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005370914A Active JP4669781B2 (en) | 2005-12-22 | 2005-12-22 | Processing equipment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4669781B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4989354B2 (en) * | 2007-08-09 | 2012-08-01 | 三洋電機株式会社 | Data flow graph generation device, setting data generation device, processing device, and data flow graph generation method |
JP5633303B2 (en) * | 2010-10-26 | 2014-12-03 | 富士通セミコンダクター株式会社 | Reconfigurable LSI |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63282874A (en) * | 1987-05-15 | 1988-11-18 | Fuji Electric Co Ltd | Interface circuit |
JPH0916540A (en) * | 1995-06-30 | 1997-01-17 | Nec Corp | Multiprocessor device |
JPH10256383A (en) * | 1997-03-12 | 1998-09-25 | Toshiba Corp | Semiconductor device and circuit constitution method thereof |
JP2000222208A (en) * | 1999-01-29 | 2000-08-11 | Mitsubishi Electric Corp | Information processor, instruction assignment controlling method, its device and computer-readable storage medium recording instruction assignment controlling program |
JP2005276854A (en) * | 2004-03-22 | 2005-10-06 | Sanyo Electric Co Ltd | Processing equipment |
-
2005
- 2005-12-22 JP JP2005370914A patent/JP4669781B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63282874A (en) * | 1987-05-15 | 1988-11-18 | Fuji Electric Co Ltd | Interface circuit |
JPH0916540A (en) * | 1995-06-30 | 1997-01-17 | Nec Corp | Multiprocessor device |
JPH10256383A (en) * | 1997-03-12 | 1998-09-25 | Toshiba Corp | Semiconductor device and circuit constitution method thereof |
JP2000222208A (en) * | 1999-01-29 | 2000-08-11 | Mitsubishi Electric Corp | Information processor, instruction assignment controlling method, its device and computer-readable storage medium recording instruction assignment controlling program |
JP2005276854A (en) * | 2004-03-22 | 2005-10-06 | Sanyo Electric Co Ltd | Processing equipment |
Also Published As
Publication number | Publication date |
---|---|
JP2007172400A (en) | 2007-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105703765B (en) | Reconfigurable device based on DRAM | |
US7571303B2 (en) | Reconfigurable integrated circuit | |
US7464251B2 (en) | Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements | |
KR100910777B1 (en) | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements | |
JP4593866B2 (en) | Method and apparatus for incorporating a multiplier into an FPGA | |
US8138788B2 (en) | Reconfigurable device | |
JP4275013B2 (en) | Data flow graph processing device, processing device, reconfigurable circuit. | |
JP4484756B2 (en) | Reconfigurable circuit and processing device | |
JP4438000B2 (en) | Reconfigurable logic block, programmable logic circuit device having reconfigurable logic block, and method for configuring reconfigurable logic block | |
JP2008537268A (en) | An array of data processing elements with variable precision interconnection | |
KR20050106014A (en) | Electronic circuit with array of programmable logic cells | |
JP4669781B2 (en) | Processing equipment | |
JP4553615B2 (en) | Processing equipment | |
JP5336398B2 (en) | Semiconductor integrated circuit and semiconductor integrated circuit configuration changing method | |
JP4468452B2 (en) | Computer device with a reconfigurable architecture to incorporate global cellular automata | |
JP4673739B2 (en) | Reconfigurable circuit | |
US20070067379A1 (en) | Data processing apparatus | |
JP4357326B2 (en) | Reconfigurable circuit and processing device | |
JP4601567B2 (en) | Data flow graph generation method and processing apparatus | |
US20060107027A1 (en) | General purpose micro-coded accelerator | |
JP4413052B2 (en) | Data flow graph processing apparatus and processing apparatus | |
JP4562679B2 (en) | Data flow graph generator | |
JP2019047516A (en) | Reconfigurable semiconductor device | |
JP3896083B2 (en) | Reconfigurable circuit and integrated circuit device using it | |
JP3515997B2 (en) | Programmable semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080522 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100125 |
|
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: 20101012 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
R155 | Notification before disposition of declining of application |
Free format text: JAPANESE INTERMEDIATE CODE: R155 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110117 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140121 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4669781 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: 20140121 Year of fee payment: 3 |