JP2006099719A - Processing device - Google Patents

Processing device Download PDF

Info

Publication number
JP2006099719A
JP2006099719A JP2005073607A JP2005073607A JP2006099719A JP 2006099719 A JP2006099719 A JP 2006099719A JP 2005073607 A JP2005073607 A JP 2005073607A JP 2005073607 A JP2005073607 A JP 2005073607A JP 2006099719 A JP2006099719 A JP 2006099719A
Authority
JP
Japan
Prior art keywords
reconfigurable
unit
data
units
output
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.)
Pending
Application number
JP2005073607A
Other languages
Japanese (ja)
Inventor
Hiroshi Nakajima
洋 中島
Makoto Kosone
真 小曽根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2005073607A priority Critical patent/JP2006099719A/en
Publication of JP2006099719A publication Critical patent/JP2006099719A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)
  • Logic Circuits (AREA)
  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a processing device provided with a plurality of reconfigurable circuits. <P>SOLUTION: A processing device 100 is provided with a plurality of reconfigurable units 10 having reconfigurable circuits 12 which can change functions. The reconfigurable unit 10 has RAM 64 which memorizes data output from other reconfigurable units and control part which executes operation control of the RAM. The RAM executes writing of effective data necessary at own reconfigurable circuit among the data output from other reconfigurable units based on the directions by the control parts. The RAM writes-in output of other reconfigurable units by time sharing. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

この発明は、機能の変更が可能なリコンフィギュラブル回路を複数備えた処理装置に関する。   The present invention relates to a processing apparatus including a plurality of reconfigurable circuits whose functions can be changed.

近年、ALU(Arithmetic Logic Unit)と呼ばれる基本演算機能を複数持つ多機能素子
を用いたリコンフィギュラブルプロセッサの開発が進められている(例えば、特許文献1参照)。リコンフィギュラブルプロセッサでは、コマンドデータをALU回路に順次設定することで、全体として所期の演算処理回路を実現することができる。コマンドデータは、C言語などの高級プログラム言語で記述されたソースプログラムをコンパイル処理することでDFG(データフローグラフ)と呼ばれるデータフローを作成し、そのDFGをALUアレイにマッピングするデータとして作成される。コマンドデータは、コマンドメモリに記憶される。
特開2004−220377号公報
In recent years, development of a reconfigurable processor using a multi-functional element having a plurality of basic arithmetic functions called ALU (Arithmetic Logic Unit) has been advanced (for example, see Patent Document 1). In the reconfigurable processor, command data is sequentially set in the ALU circuit, so that a desired arithmetic processing circuit can be realized as a whole. Command data is created as data that compiles a source program written in a high-level programming language such as C language to create a data flow called a DFG (data flow graph) and maps the DFG to an ALU array. . Command data is stored in the command memory.
JP 2004-220377 A

リアルタイムで演算処理を実行する場合、動作クロックの周波数が無限に速ければ、1つのALUアレイにより複雑な演算処理をリアルタイムで実行することができるが、現実には、無限に速いクロックは存在しない。そのため、リアルタイムでの処理が必要な場合、ALUアレイの処理能力の限界のために、1つのALUアレイではリアルタイム処理の要求を満たせないこともある。   When executing arithmetic processing in real time, if the frequency of the operation clock is infinitely fast, complex arithmetic processing can be executed in real time with one ALU array, but in reality there is no infinitely fast clock. For this reason, when real-time processing is required, a single ALU array may not be able to satisfy real-time processing requirements due to limitations in the processing capability of the ALU array.

本発明はこうした状況に鑑みてなされたもので、その目的は、複数のリコンフィギュラブル回路を利用することで、高速の演算処理を実行することのできる技術を提供することにある。   The present invention has been made in view of such circumstances, and an object thereof is to provide a technique capable of executing high-speed arithmetic processing by using a plurality of reconfigurable circuits.

上記課題を解決するために、本発明は、機能の変更が可能なリコンフィギュラブル回路を有する複数のリコンフィギュラブルユニットを備えた処理装置に関する。この処理装置において、各リコンフィギュラブルユニットは、他のリコンフィギュラブルユニットから出力されたデータを記憶する第1記憶部と、第1記憶部の動作制御を実行する制御部とを備える。第1記憶部は、制御部による指示に基づいて、他のリコンフィギュラブルユニットから出力されたデータの中から、自身のリコンフィギュラブル回路において必要な有効データの書込を実行する。   In order to solve the above problems, the present invention relates to a processing apparatus including a plurality of reconfigurable units having a reconfigurable circuit whose function can be changed. In this processing apparatus, each reconfigurable unit includes a first storage unit that stores data output from other reconfigurable units, and a control unit that performs operation control of the first storage unit. The first storage unit writes valid data necessary for its own reconfigurable circuit from among data output from other reconfigurable units based on an instruction from the control unit.

かかる本発明の特徴によれば、複数のリコンフィギュラブルユニットを利用することで、演算処理の高速性を実現できる。また、第1記憶部が、制御部による指示に基づいて有効データの書込を実行するため、第1記憶部に対して複数の有効データの書込動作が同時に発生することはなく、データの衝突を回避できる。   According to such a feature of the present invention, high-speed arithmetic processing can be realized by using a plurality of reconfigurable units. In addition, since the first storage unit executes writing of valid data based on an instruction from the control unit, a plurality of valid data writing operations do not occur at the same time in the first storage unit. Collisions can be avoided.

本発明の別の態様は、機能の変更が可能なリコンフィギュラブル回路を有する複数のリコンフィギュラブルユニットを備えた処理装置に関する。この処理装置において、各リコンフィギュラブルユニットは、自身のリコンフィギュラブル回路から出力されたデータを記憶する第1記憶部を備えている。処理装置は、それぞれのリコンフィギュラブルユニットにおける第1記憶部に記憶されたデータを選択する選択部と、選択部で選択されたデータを、複数のリコンフィギュラブルユニットの入力に供給する接続部とを備える。   Another aspect of the present invention relates to a processing apparatus including a plurality of reconfigurable units having a reconfigurable circuit capable of changing functions. In this processing apparatus, each reconfigurable unit includes a first storage unit that stores data output from its own reconfigurable circuit. The processing device includes: a selection unit that selects data stored in the first storage unit in each reconfigurable unit; and a connection unit that supplies the data selected by the selection unit to inputs of the plurality of reconfigurable units. Is provided.

かかる本発明の別の態様によれば、複数のリコンフィギュラブルユニットを利用することにより、演算処理の高速性を実現できる。また、それぞれのリコンフィギュラブルユニットにおいて出力されたデータを、接続部からリコンフィギュラブルユニットの入力に供給することにより、そのデータを必要とするリコンフィギュラブルユニットは、そのデータを受け取ることができ、リコンフィギュラブルユニット間のデータの受け渡しが容易になる。   According to another aspect of the present invention, high-speed arithmetic processing can be realized by using a plurality of reconfigurable units. In addition, by supplying the data output in each reconfigurable unit to the input of the reconfigurable unit from the connection unit, the reconfigurable unit that needs the data can receive the data, Data transfer between reconfigurable units is facilitated.

上記構成においては、リコンフィギュラブル回路は、複数種類の多ビット演算を選択的に実行可能な算術論理回路を有してもよい。   In the above configuration, the reconfigurable circuit may include an arithmetic logic circuit that can selectively execute a plurality of types of multi-bit operations.

本発明の別の態様は、機能の変更が可能なリコンフィギュラブル回路を有する複数のリコンフィギュラブルユニットを備えた処理装置に関する。この処理装置において、リコンフィギュラブルユニットは、複数のリコンフィギュラブルユニットから出力されたデータをそれぞれ記憶する複数の第1記憶部を備える。リコンフィギュラブル回路は、複数の第1記憶部に記憶されているデータをそれぞれ読み込む。   Another aspect of the present invention relates to a processing apparatus including a plurality of reconfigurable units having a reconfigurable circuit capable of changing functions. In this processing apparatus, the reconfigurable unit includes a plurality of first storage units that respectively store data output from the plurality of reconfigurable units. The reconfigurable circuit reads data stored in the plurality of first storage units, respectively.

上記発明においては、リコンフィギュラブルユニットは、リコンフィギュラブルユニットのリコンフィギュラブル回路から出力されたデータを記憶する第2記憶部を有しており、複数の第1記憶部は、複数のリコンフィギュラブルユニットの第2記憶部に記憶されたデータをそれぞれ記憶してもよい。   In the above invention, the reconfigurable unit has a second storage unit that stores data output from the reconfigurable circuit of the reconfigurable unit, and the plurality of first storage units includes a plurality of reconfigurable units. You may each memorize | store the data memorize | stored in the 2nd memory | storage part of the bull unit.

上記発明においては、複数の第1記憶部は、複数の第1記憶部が備えられたリコンフィギュラブルユニット以外の他の複数のリコンフィギュラブルユニットから出力されたデータをそれぞれ記憶してもよい。   In the above invention, the plurality of first storage units may store data output from a plurality of reconfigurable units other than the reconfigurable unit including the plurality of first storage units.

上記発明においては、第1記憶部及び第2記憶部のそれぞれは、少なくとも2つの記憶部を有しており、少なくとも2つの記憶部のうちの一方の記憶部と他方の記憶部とを、所定のタイミングで書込動作と読出動作とに切り替えてもよい。   In the above invention, each of the first storage unit and the second storage unit has at least two storage units, and one storage unit and the other storage unit of the at least two storage units are defined as predetermined. It is also possible to switch between the writing operation and the reading operation at this timing.

なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。   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 perform a high-speed arithmetic process can be provided using a some reconfigurable circuit.

本実施例は、複数のリコンフィギュラブル回路を備えた処理装置を提供する。以下では、処理装置についての説明を行う前に、処理装置を構成するリコンフィギュラブル回路を備えたリコンフィギュラブルユニットについて説明する。   The present embodiment provides a processing apparatus including a plurality of reconfigurable circuits. Below, before explaining a processing apparatus, the reconfigurable unit provided with the reconfigurable circuit which comprises a processing apparatus is demonstrated.

図1は、リコンフィギュラブル回路を備えたリコンフィギュラブルユニットの構成図である。リコンフィギュラブルユニット10は、リコンフィギュラブル回路12、制御部18、メモリ部27、および経路部24、29を備える。制御部18は、コマンドメモリ61およびプログラムカウンタ63を有し、リコンフィギュラブル回路12の動作を制御する。コマンドメモリ61は、プログラムカウンタ63のカウント値に基づいて、記憶したデータを出力するように構成される。リコンフィギュラブル回路12は、設定を変更することにより、機能の変更を可能とする。リコンフィギュラブルユニット10は集積回路として1チップで構成されてもよい。   FIG. 1 is a configuration diagram of a reconfigurable unit including a reconfigurable circuit. The reconfigurable unit 10 includes a reconfigurable circuit 12, a control unit 18, a memory unit 27, and path units 24 and 29. The control unit 18 includes a command memory 61 and a program counter 63 and controls the operation of the reconfigurable circuit 12. The command memory 61 is configured to output stored data based on the count value of the program counter 63. The reconfigurable circuit 12 can change the function by changing the setting. The reconfigurable unit 10 may be configured as a single chip as an integrated circuit.

コマンドメモリ61は、リコンフィギュラブル回路12に所期の回路を構成するための設定データを供給する設定部として機能する。経路部24は、フィードバックパスとして機能し、リコンフィギュラブル回路12の出力を、リコンフィギュラブル回路12の入力に接続する。メモリ部27に記憶されたデータは、経路部29を介してリコンフィギュラブル回路12の入力に戻される。リコンフィギュラブル回路12は組合せ回路または順序回路等の論理回路として構成される。   The command memory 61 functions as a setting unit that supplies setting data for configuring a desired circuit to the reconfigurable circuit 12. The path unit 24 functions as a feedback path, and connects the output of the reconfigurable circuit 12 to the input of the reconfigurable circuit 12. The data stored in the memory unit 27 is returned to the input of the reconfigurable circuit 12 via the path unit 29. The reconfigurable circuit 12 is configured as a logic circuit such as a combinational circuit or a sequential circuit.

メモリ部27はRAMとして構成され、リコンフィギュラブル回路12から出力されるデータ信号および/または外部から入力されるデータ信号を記憶するための記憶領域を有する。リコンフィギュラブル回路12は、メモリ部27にアクセスするための制御データを生成する。メモリ制御データには、書込アドレス、読出アドレスなどが含まれる。なお、メモリ部27に対する書込イネーブル信号、読出イネーブル信号は、コマンドメモリ61から所期のタイミングでメモリ部27に供給される。   The memory unit 27 is configured as a RAM and has a storage area for storing a data signal output from the reconfigurable circuit 12 and / or a data signal input from the outside. The reconfigurable circuit 12 generates control data for accessing the memory unit 27. The memory control data includes a write address, a read address, and the like. The write enable signal and the read enable signal for the memory unit 27 are supplied from the command memory 61 to the memory unit 27 at a predetermined timing.

リコンフィギュラブル回路12は、機能の変更が可能な複数の論理回路を有して構成される。具体的にリコンフィギュラブル回路12は、複数の演算機能を選択的に実行可能な論理回路を複数段に配列させた構成を備え、さらに前段の論理回路列の出力と後段の論理回路列の入力との接続関係を設定可能な接続部を備える。各段に含まれる複数の論理回路は、論理回路の集合体を構成する。この接続部は、前段の論理回路列の出力すなわち内部状態を保持する状態保持回路の機能も備える。複数の論理回路は、マトリックス状に配置される。各論理回路の機能と、論理回路間の接続関係は、コマンドメモリ61により供給される設定データに基づいて設定される。設定データは、以下の手順で生成される。   The reconfigurable circuit 12 includes a plurality of logic circuits whose functions can be changed. Specifically, the reconfigurable circuit 12 includes a configuration in which logic circuits capable of selectively executing a plurality of arithmetic functions are arranged in a plurality of stages, and further includes an output of a preceding logic circuit string and an input of a subsequent logic circuit string. The connection part which can set the connection relationship with is provided. A plurality of logic circuits included in each stage constitutes a collection of logic circuits. This connection unit also has a function of a state holding circuit that holds the output of the preceding logic circuit row, that is, the internal state. The plurality of logic circuits are arranged in a matrix. The function of each logic circuit and the connection relationship between the logic circuits are set based on setting data supplied from the command memory 61. The setting data is generated by the following procedure.

リコンフィギュラブル回路12により実現されるべきプログラムが、記憶部(図示せず)に保持されている。プログラムは、回路における処理の動作を記述した動作記述を示し、信号処理回路または信号処理アルゴリズムなどをC言語などの高級言語で記述したものである。コンパイラが、プログラムをコンパイルし、データフローグラフ(DFG)に変換して記憶部に記憶する。データフローグラフは、回路における演算間の実行順序の依存関係を表現し、入力変数および定数の演算の流れをグラフ構造で示したものである。一般に、データフローグラフは、上から下に向かって演算が進むように形成される。   A program to be realized by the reconfigurable circuit 12 is held in a storage unit (not shown). The program indicates an operation description describing the operation of processing in the circuit, and describes a signal processing circuit or a signal processing algorithm in a high-level language such as C language. The compiler compiles the program, converts it into a data flow graph (DFG), and stores it in the storage unit. The data flow graph expresses the dependency of execution order between operations in a circuit, and shows the flow of operations of input variables and constants in a graph structure. In general, the data flow graph is formed so that the calculation proceeds from top to bottom.

データフローグラフは、設定データに変換される。設定データは、データフローグラフをリコンフィギュラブル回路12にマッピングするためのデータであり、リコンフィギュラブル回路12における論理回路の機能や論理回路間の接続関係、さらには論理回路に入力させる定数データなどを定める。設定データは、その実行順序にしたがってコマンドメモリ61に記憶される。   The data flow graph is converted into setting data. The setting data is data for mapping the data flow graph to the reconfigurable circuit 12, functions of the logic circuit in the reconfigurable circuit 12, connection relations between the logic circuits, constant data to be input to the logic circuit, and the like. Determine. The setting data is stored in the command memory 61 according to the execution order.

プログラムカウンタ63が、コマンドメモリ61にプログラムカウンタ値を与え、コマンドメモリ61はそのカウンタ値に応じて、記憶した設定データを、コマンドデータとしてリコンフィギュラブル回路12に設定する。なお、コマンドメモリ61は、キャッシュメモリや他の種類のメモリを有して、リコンフィギュラブル回路12に設定データを供給する設定データ供給部として構成されてもよい。   The program counter 63 gives a program counter value to the command memory 61, and the command memory 61 sets the stored setting data in the reconfigurable circuit 12 as command data according to the counter value. Note that the command memory 61 may include a cache memory or another type of memory, and may be configured as a setting data supply unit that supplies setting data to the reconfigurable circuit 12.

コマンドメモリ61は、設定データをリコンフィギュラブル回路12に設定し、リコンフィギュラブル回路12の回路を逐次再構成させる。リコンフィギュラブル回路12は、基本セルとして高性能の演算能力のあるALUを用いており、またリコンフィギュラブル回路12およびコマンドメモリ61を1チップ上に構成することから、コンフィグレーションを高速に、例えば1クロックで実現することができる。   The command memory 61 sets the setting data in the reconfigurable circuit 12 and sequentially reconfigures the circuit of the reconfigurable circuit 12. The reconfigurable circuit 12 uses an ALU having a high-performance computing capability as a basic cell, and the reconfigurable circuit 12 and the command memory 61 are configured on one chip. It can be realized with one clock.

図2は、リコンフィギュラブル回路12の構成の一例を示す。リコンフィギュラブル回路12は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を任意に設定可能な接続部52とを備える。リコンフィギュラブル回路12では、論理回路の多段配列構造により、上段から下段に向かって演算が進められる。なお、本明細書において「多段」とは、複数の段を意味する。なお、リコンフィギュラブル回路12の回路構成は、必ずしも多段配列を有する必要はないが、回路規模を削減するために全ての論理回路間の接続を可能とするのではなく、一部の論理回路同士の接続を実現させるのが好ましい。   FIG. 2 shows an example of the configuration of the reconfigurable circuit 12. The reconfigurable circuit 12 has a multi-stage arrangement of logic circuits each capable of selectively executing a plurality of arithmetic functions, and a connection that can arbitrarily set the connection relationship between the output of the preceding logic circuit and the input of the succeeding logic circuit. Part 52. In the reconfigurable circuit 12, the operation proceeds from the upper stage to the lower stage due to the multistage arrangement structure of the logic circuits. In the present specification, “multi-stage” means a plurality of stages. Note that the circuit configuration of the reconfigurable circuit 12 is not necessarily required to have a multi-stage arrangement. However, in order to reduce the circuit scale, it is not possible to connect all the logic circuits. It is preferable to realize the connection.

リコンフィギュラブル回路12は、論理回路としてALU(Arithmetic Logic Unit)を
有している。ALUは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる。各ALUは、複数の演算機能を設定するためのセレクタを有して構成されている。図示の例では、ALUが、2つの入力端子と1つの出力端子を有して構成される。
The reconfigurable circuit 12 has an ALU (Arithmetic Logic Unit) as a logic circuit. The ALU is an arithmetic logic circuit capable of selectively executing a plurality of types of multi-bit operations, and can selectively execute a plurality of types of multi-bit operations such as logical sum, logical product, and bit shift by setting. Each ALU has a selector for setting a plurality of arithmetic functions. In the illustrated example, the ALU is configured to have two input terminals and one output terminal.

リコンフィギュラブル回路12は、縦方向にX個、横方向にY個のALUが配置されたX段Y列のALUアレイとして構成される。ここでは、縦方向に3個、横方向に6個のALUが配置された3段6列のALUアレイを示している。リコンフィギュラブル回路12は、接続部52およびALU列53を備える。ALU列53は複数段に設けられ、接続部52は前後段のALU列53の間に設けられて、前段のALUの出力と後段のALUの入力の接続関係を設定する。   The reconfigurable circuit 12 is configured as an ALU array of X stages and Y columns in which X ALUs in the vertical direction and Y ALUs in the horizontal direction are arranged. Here, a three-stage 6-column ALU array in which three ALUs in the vertical direction and six ALUs in the horizontal direction are arranged is shown. The reconfigurable circuit 12 includes a connection unit 52 and an ALU column 53. The ALU row 53 is provided in a plurality of stages, and the connection unit 52 is provided between the front and rear ALU rows 53 to set the connection relationship between the output of the previous ALU and the input of the rear ALU.

図2に示す例では、第1段のALU列53aと第2段のALU列53bの間に、第2段を構成する接続部52bが設けられ、第2段のALU列53bと第3段のALU列53cの間に、第3段を構成する接続部52cが設けられる。なお、第1段を構成する接続部52aは、第1段のALU列53aの上側に設けられる。   In the example shown in FIG. 2, a connection section 52b constituting the second stage is provided between the first-stage ALU row 53a and the second-stage ALU row 53b, and the second-stage ALU row 53b and the third-stage ALU row 53b are provided. Between the two ALU rows 53c, a connecting portion 52c constituting the third stage is provided. In addition, the connection part 52a which comprises a 1st stage is provided above the ALU row | line | column 53a of a 1st stage.

第1段のALU11、ALU12、・・・、ALU16には、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第2段の接続部52bに設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU26に入力される。第2段の接続部52bにおいては、第1段のALU列53aの出力と第2段のALU列53bの入力の間で任意の接続関係、あるいは予め定められた接続関係の組合せの中から選択された接続関係を実現できるように接続用結線が構成されており、設定により所期の結線が有効となる。さらに接続部52bは、第1段のALU列53aの出力のうちの一つを外部に出力する途中出力経路54bをさらに備える。したがって、接続部52bは、ALU列53aの出力をALU列53bの入力に供給するだけでなく、ALU列53aのうちの一つの出力をリコンフィギュラブル回路12の外部に出力することができる。   Input variables and constants are input to the first-stage ALU 11, ALU 12,..., ALU 16, and a set predetermined calculation is performed. The calculation result output is input to the second-stage ALU 21, ALU 22,..., ALU 26 according to the connection set in the second-stage connection unit 52b. In the second-stage connection unit 52b, an arbitrary connection relationship between the output of the first-stage ALU column 53a and the input of the second-stage ALU column 53b, or a combination of predetermined connection relationships is selected. The connection connection is configured so as to realize the established connection relationship, and the desired connection is made effective by setting. Further, the connection unit 52b further includes a midway output path 54b for outputting one of the outputs of the first-stage ALU row 53a to the outside. Therefore, the connection unit 52b can supply not only the output of the ALU column 53a to the input of the ALU column 53b but also the output of one of the ALU columns 53a to the outside of the reconfigurable circuit 12.

第2段のALU21、ALU22、・・・、ALU26には、ALU列53aの出力が入力され、設定された所定の演算がなされる。演算結果の出力は、第3段の接続部52cの接続用結線において設定された接続にしたがって、第3段のALU31、ALU32、・・・、ALU36に入力される。接続部52bと同様に、接続部52cも、第2段のALU列53bの出力のうちの一つを外部に出力する途中出力経路54cを備える。したがって、接続部52cは、ALU列53bの出力をALU列53cの入力に供給するだけでなく、ALU列53bのうちの一つの出力をリコンフィギュラブル回路12の外部に出力することができる。   The second stage ALU 21, ALU 22,..., ALU 26 receives the output of the ALU column 53a and performs a predetermined calculation. The output of the calculation result is input to the third-stage ALU 31, ALU 32,..., ALU 36 according to the connection set in the connection connection of the third-stage connection section 52c. Similar to the connection unit 52b, the connection unit 52c includes an intermediate output path 54c that outputs one of the outputs of the second-stage ALU row 53b to the outside. Therefore, the connection unit 52c can not only supply the output of the ALU column 53b to the input of the ALU column 53c but also output one output of the ALU column 53b to the outside of the reconfigurable circuit 12.

最終段となる第3段のALU列53cからの出力データは、メモリ部27または経路部24に出力される。メモリ部27は、経路部29を介して、出力データを接続部52aに入力する。接続部52aは、接続用結線を設定し、第1段のALU11、ALU12、・・・、ALU16にデータを供給する。   The output data from the third-stage ALU column 53 c as the final stage is output to the memory unit 27 or the path unit 24. The memory unit 27 inputs output data to the connection unit 52a via the path unit 29. The connection unit 52a sets the connection for connection and supplies data to the first-stage ALU 11, ALU 12,.

本実施例では、機能の変更が可能なリコンフィギュラブル回路12を有する複数のリコンフィギュラブルユニット10を備えた処理装置を提供する。複数のリコンフィギュラブルユニット10を用いて演算処理を協働して実行することで、一つの演算処理を複数のリコンフィギュラブルユニット10で分割して実行することが可能となり、処理の高速性を実現することができる。   In the present embodiment, a processing apparatus including a plurality of reconfigurable units 10 having a reconfigurable circuit 12 whose functions can be changed is provided. By cooperating and executing arithmetic processing using a plurality of reconfigurable units 10, it is possible to divide and execute one arithmetic processing by a plurality of reconfigurable units 10, thereby improving the processing speed. Can be realized.

複数のリコンフィギュラブルユニット10で協働処理を実行するために、リコンフィギュラブルユニット間でデータを受け渡す処理が発生する。このとき、データの受け渡しが適切に実行されなければ並列処理の意味をなさなくなるため、データの受け渡しには慎重を期す必要がある。2以上のリコンフィギュラブルユニット10が、他のリコンフィギュラブルユニット10において必要となる有効データを同時に出力すると、データ同士が衝突して、有効データの受け渡しが不可能となる場合がある。予めデータの出力タイミングが把握できれば、そのタイミングを調整することも可能であるが、例えば、ループ制御文の条件分岐などの処理においては、データの出力タイミングが変化することもあるため、ユニット間における有効データの受け渡しが困難となる場合もある。特に、リコンフィギュラブルユニット10の数が多くなると、それぞれのリコンフィギュラブルユニット10において実行されている処理をリアルタイムで把握して調停制御を実行することは処理能力的に難しい。   In order to execute the cooperative process in the plurality of reconfigurable units 10, a process of passing data between the reconfigurable units occurs. At this time, if the data transfer is not properly executed, the meaning of the parallel processing becomes meaningless, so it is necessary to take care in the data transfer. If two or more reconfigurable units 10 simultaneously output valid data required by other reconfigurable units 10, data may collide with each other, and it may not be possible to transfer valid data. If the data output timing can be grasped in advance, the timing can be adjusted. For example, in processing such as conditional branching of a loop control statement, the data output timing may change. It may be difficult to pass valid data. In particular, as the number of reconfigurable units 10 increases, it is difficult in terms of processing power to grasp the processing being executed in each reconfigurable unit 10 in real time and execute arbitration control.

図3(a)は、for文により出力タイミングが異なるプログラムの1例を示す。for文の条件式「i<a」の「a」が変数で、for文の実行に先んじて実行される処理により「a」の値が幾通りか取り得る場合、「a」の値によって出力zが出力されるタイミングが違ってくる。   FIG. 3A shows an example of a program whose output timing differs depending on the for statement. If “a” in the conditional expression “i <a” of the for statement is a variable and the value executed by the process executed prior to the execution of the for statement can take several values of “a”, the value is output as “a”. The timing at which z is output is different.

図3(b)は、出力タイミングを説明するための図である。図2に示したALUアレイの段数にあわせて、DFGの段数は最大3段に設定されている。例えば、「a==1」の場合、1回目のマッピングのALUアレイ1段目からzが出力される。一方、「a==4」の場
合、2回目のマッピングのALUアレイ1段目からzが出力される。このように、条件分岐の場合にはzの出力タイミングが固定されない場合があり、リコンフィギュラブルユニット10の数が多いほど、全てのリコンフィギュラブルユニット10における出力タイミングを把握して調停制御を実行することは困難なものとなる。本実施例の処理装置は、その点を考慮して、リコンフィギュラブルユニット10間におけるデータの受け渡しをスムーズに実行できるように構成される。
FIG. 3B is a diagram for explaining the output timing. In accordance with the number of stages of the ALU array shown in FIG. 2, the number of stages of DFG is set to a maximum of three. For example, when “a == 1”, z is output from the first stage of the ALU array of the first mapping. On the other hand, when “a == 4”, z is output from the first stage of the ALU array of the second mapping. As described above, in the case of conditional branching, the output timing of z may not be fixed. As the number of reconfigurable units 10 increases, the output timings of all the reconfigurable units 10 are grasped and arbitration control is executed. It will be difficult to do. In consideration of this point, the processing apparatus of the present embodiment is configured so that data can be smoothly transferred between the reconfigurable units 10.

図4は、複数のリコンフィギュラブルユニットを備えた処理装置の構成を示す。処理装置100は、3つのリコンフィギュラブルユニット10a、10b、10cを備える。なお、リコンフィギュラブルユニット10の数は例示であり、2つであってもよいし、また4つ以上であってもよい。リコンフィギュラブルユニット10は、図1に示したように、自身のもつリコンフィギュラブル回路12の出力をフィードバックする経路部24、29などの自己ループを有して構成されているが、図4ではそれらの構成は省略している。ここでは、リコンフィギュラブルユニット10が、他のリコンフィギュラブルユニット10からのデータを入力として受け取るための構成を示す。   FIG. 4 shows a configuration of a processing apparatus including a plurality of reconfigurable units. The processing apparatus 100 includes three reconfigurable units 10a, 10b, and 10c. The number of reconfigurable units 10 is an example, and may be two, or four or more. As shown in FIG. 1, the reconfigurable unit 10 has a self-loop such as path sections 24 and 29 that feed back the output of the reconfigurable circuit 12 that the reconfigurable unit 10 has, but in FIG. Those configurations are omitted. Here, a configuration for the reconfigurable unit 10 to receive data from another reconfigurable unit 10 as an input is shown.

それぞれのリコンフィギュラブル回路12は、3段×6列のALUアレイとして構成され、各段から1つの出力が可能な構造を有している。すなわち、各段には6個のALUが存在しているが、そのうちの一つのALUからの出力が、他のリコンフィギュラブルユニット10への入力として利用される。図2を参照して、第1段のALU列53aからは、途中出力経路54bから一つのデータが出力され、第2段のALU列53bからは、途中出力経路54cから一つのデータが出力される。また、第3段のALU列53cからは、図示しない選択部から一つのデータが出力される。データを他のリコンフィギュラブルユニット10に出力するALUは、コマンドメモリ61から供給される設定データにより決定される。各リコンフィギュラブル回路12の各段からは、常にデータが出力されている。この出力が他のリコンフィギュラブルユニット10で必要とされ、他のリコンフィギュラブルユニット10に受け渡すべき有効データかどうかは、C記述から各リコンフィギュラブルユニット10のALUアレイ構造にマッピングするためのDFGを作成する時点で、コンパイラが把握している。   Each reconfigurable circuit 12 is configured as an ALU array of 3 stages × 6 columns, and has a structure capable of outputting one output from each stage. That is, six ALUs exist in each stage, but the output from one of the ALUs is used as an input to another reconfigurable unit 10. Referring to FIG. 2, one data is output from the first stage ALU column 53a from the midway output path 54b, and one data is output from the second stage ALU column 53b from the midway output path 54c. The Further, one data is output from the selection unit (not shown) from the third-stage ALU column 53c. The ALU that outputs data to the other reconfigurable unit 10 is determined by the setting data supplied from the command memory 61. Data is always output from each stage of each reconfigurable circuit 12. Whether this output is required by other reconfigurable units 10 and valid data to be passed to the other reconfigurable units 10 is used for mapping from the C description to the ALU array structure of each reconfigurable unit 10. The compiler knows when the DFG is created.

処理装置100において、リコンフィギュラブルユニット10aへの他のリコンフィギュラブルユニット10b、10cからの入力は、リコンフィギュラブルユニット10bの各段からの3つの出力とリコンフィギュラブルユニット10cの各段からの3つの出力の合計6本の出力からなる。既述したように、リコンフィギュラブル回路12の各段からは常にデータが出力されているため、他のリコンフィギュラブルユニット10b、10cから供給されるデータは、自身のリコンフィギュラブルユニット10aにおいて必要な有効データであるとは限らず、必要でない無効データである場合もある。   In the processing apparatus 100, the inputs from the other reconfigurable units 10b and 10c to the reconfigurable unit 10a are three outputs from each stage of the reconfigurable unit 10b and from each stage of the reconfigurable unit 10c. It consists of a total of 6 outputs of 3 outputs. As described above, since data is always output from each stage of the reconfigurable circuit 12, the data supplied from the other reconfigurable units 10b and 10c is necessary in the own reconfigurable unit 10a. It is not necessarily valid data, and may be invalid data that is not necessary.

6つのデータをリコンフィギュラブル回路12aに入力するために、6本のバスを持つと、時間差なしに6つのデータをリコンフィギュラブルユニット10aに入力できる。しかしながら、現実には、リコンフィギュラブル回路12aにおいて、他のリコンフィギュラブル回路12b、12cにおいて生成された6つのデータが同時に必要となる可能性は低い。各リコンフィギュラブルユニット10a、10b、10cは、それぞれ独立した演算を並列して実行しており、ユニット間でデータの受け渡しが発生する頻度はそれほど高くないと考えられる。従って、本実施例の処理装置100においては、バスの本数を減らすために、各リコンフィギュラブルユニット10が、他のリコンフィギュラブルユニットから出力される複数のデータを記憶するRAM64を有し、さらに他のユニットから出力される複数のデータをRAM64に記憶できるように、RAM64の手前に一時記憶用の内部状態保持回路60を備える。内部状態保持回路60は複数のDFFとして構成されてもよい。内部状態保持回路60は、カウンタ70から供給されるカウント値に基づいて、他のリコンフィギュラブル回路から供給される複数のデータを、それぞれ異なるタイミングで且つ所定の周期で、それぞれのDFFに記憶する。このとき、内部状態保持回路60は、他のリコンフィギュラブルユニットから供給されるデータが自身のリコンフィギュラブル回路12において必要な有効データであるか否かにかかわらず、そのデータを記憶する。   In order to input six data to the reconfigurable circuit 12a, if six buses are provided, six data can be input to the reconfigurable unit 10a without time difference. However, in reality, in the reconfigurable circuit 12a, it is unlikely that the six data generated in the other reconfigurable circuits 12b and 12c are required at the same time. The reconfigurable units 10a, 10b, and 10c execute independent operations in parallel, and it is considered that the frequency of data transfer between the units is not so high. Therefore, in the processing apparatus 100 of this embodiment, in order to reduce the number of buses, each reconfigurable unit 10 has a RAM 64 that stores a plurality of data output from other reconfigurable units, An internal state holding circuit 60 for temporary storage is provided in front of the RAM 64 so that a plurality of data output from other units can be stored in the RAM 64. The internal state holding circuit 60 may be configured as a plurality of DFFs. Based on the count value supplied from the counter 70, the internal state holding circuit 60 stores a plurality of data supplied from other reconfigurable circuits in each DFF at different timings and at a predetermined cycle. . At this time, the internal state holding circuit 60 stores the data regardless of whether the data supplied from the other reconfigurable unit is valid data necessary for the reconfigurable circuit 12 of the internal state holding circuit 60.

リコンフィギュラブルユニット10aに関して示すように、内部状態保持回路60aには、他のユニットにおけるリコンフィギュラブル回路12b、12cの各段からの出力が供給される。内部状態保持回路60aは、それぞれから出力されたデータを保持するための6つのDFFを有している。各DFFは、他のリコンフィギュラブル回路12および出力段に対応して設けられる。各DFFの出力はMUX62aに供給される。MUX62aは、データを選択して出力する選択部として機能する。内部状態保持回路60におけるDFF数が6であるため、MUX62aは、6:1のマルチプレクサとして構成され、カウンタ70から供給されるカウント値に基づいて、内部状態保持回路60の6個のDFFに記憶された複数のデータを、それぞれ異なるタイミングで且つ所定の周期で選択して、RAM64aに供給する。アドレスカウンタ66aは、RAM64aのアドレス値を設定する。   As shown with respect to the reconfigurable unit 10a, the internal state holding circuit 60a is supplied with outputs from the reconfigurable circuits 12b and 12c in other units. The internal state holding circuit 60a has six DFFs for holding data output from each. Each DFF is provided corresponding to the other reconfigurable circuit 12 and the output stage. The output of each DFF is supplied to the MUX 62a. The MUX 62a functions as a selection unit that selects and outputs data. Since the number of DFFs in the internal state holding circuit 60 is 6, the MUX 62a is configured as a 6: 1 multiplexer, and is stored in the six DFFs of the internal state holding circuit 60 based on the count value supplied from the counter 70. The plurality of pieces of data are selected at different timings at a predetermined cycle and supplied to the RAM 64a. The address counter 66a sets the address value of the RAM 64a.

図示を省略しているが、リコンフィギュラブルユニット10a以外の他のリコンフィギュラブルユニット10b、10cも、同様の構成を有している。リコンフィギュラブルユニット10bにおいて、内部状態保持回路60bには、リコンフィギュラブル回路12a、12cの各段からの出力が供給される。MUX62bは、内部状態保持回路60bからの6つのデータ入力のうちの1つを選択してRAM64bに出力する。同様に、リコンフィギュラブルユニット10cにおいて、内部状態保持回路60cには、リコンフィギュラブル回路12a、12bの各段からの出力が供給される。MUX62cは、内部状態保持回路60cからの6つのデータ入力のうちの1つを選択してRAM64cに出力する。   Although not shown, the reconfigurable units 10b and 10c other than the reconfigurable unit 10a have the same configuration. In the reconfigurable unit 10b, the output from each stage of the reconfigurable circuits 12a and 12c is supplied to the internal state holding circuit 60b. The MUX 62b selects one of the six data inputs from the internal state holding circuit 60b and outputs it to the RAM 64b. Similarly, in the reconfigurable unit 10c, the output from each stage of the reconfigurable circuits 12a and 12b is supplied to the internal state holding circuit 60c. The MUX 62c selects one of the six data inputs from the internal state holding circuit 60c and outputs it to the RAM 64c.

処理装置100では、各リコンフィギュラブルユニット10がRAM64を1つ備えた構造を有しており、したがってRAM64とリコンフィギュラブル回路12とを結ぶバス68は、1本のバスで実現できる。これにより、6本のバスを設ける場合と比較すると、回路規模を大幅に削減できる。   In the processing apparatus 100, each reconfigurable unit 10 has a structure including one RAM 64. Therefore, the bus 68 connecting the RAM 64 and the reconfigurable circuit 12 can be realized by a single bus. As a result, the circuit scale can be greatly reduced as compared with the case where six buses are provided.

実施例では、カウンタ70が6進カウンタとして構成され、カウント値を内部状態保持回路60a、60b、60c、MUX62a、62b、62cのそれぞれに供給する。これにより、6クロックに1回の周期で他のリコンフィギュラブルユニットの各段からの出力データを内部状態保持回路60に記憶させ、また6クロックに1回の周期でMUX62からRAM64に供給させることが可能となる。   In the embodiment, the counter 70 is configured as a hex counter, and supplies the count value to each of the internal state holding circuits 60a, 60b, 60c and the MUXs 62a, 62b, 62c. As a result, output data from each stage of the other reconfigurable unit is stored in the internal state holding circuit 60 at a cycle of once every 6 clocks, and supplied from the MUX 62 to the RAM 64 at a cycle of once every 6 clocks. Is possible.

具体的には、カウンタ70により、リコンフィギュラブルユニットの各出力ポートからデータが出力されるタイミングにアクティブとなるように内部状態保持回路60におけるDFFのENを制御することで、各リコンフィギュラブルユニット10から出力されたデータがDFFに記憶される。次のタイミングで、MUX62が、DFFに記憶されたデータをRAM64に時分割に供給する。このとき、他のリコンフィギュラブルユニットの各出力ポートから出力されるデータが、自身のリコンフィギュラブル回路における演算に必要な有効データであるとは限らないので、必要のない無効データはRAM64に書き込まないように制御する。これは、図1に示す制御部18により制御される。   Specifically, the counter 70 controls the DFF EN in the internal state holding circuit 60 so that it becomes active at the timing when data is output from each output port of the reconfigurable unit, whereby each reconfigurable unit is controlled. The data output from 10 is stored in the DFF. At the next timing, the MUX 62 supplies the data stored in the DFF to the RAM 64 in a time division manner. At this time, since the data output from each output port of the other reconfigurable unit is not necessarily valid data necessary for the operation in its own reconfigurable circuit, unnecessary invalid data is written to the RAM 64. Control to not. This is controlled by the control unit 18 shown in FIG.

制御部18は、コマンドメモリ61に記憶した書込イネーブル信号をRAM64に供給することにより、RAM64の動作制御を実行する。RAM64は、制御部18から供給される指示に基づいて、他のリコンフィギュラブルユニットから出力されたデータの中から、自身のリコンフィギュラブル回路12において必要な有効データの書込みを実行することができる。これにより、出力されたデータが有効データである場合は、内部状態保持回路60に記憶された順番にしたがって、RAM64に有効データが記憶されることになる。必要のない無効データである場合は、書込イネーブル信号がアクティブの値をとらず、RAM64は、無効データを書き込むことはできない。これにより、無用なデータをRAM64に書き込む事態を回避でき、RAM64の容量を小さく構成することが可能となる。なお、RAM64にデータを書き込まない場合は、アドレスカウンタ66の動作を停止させる。   The control unit 18 controls the operation of the RAM 64 by supplying the write enable signal stored in the command memory 61 to the RAM 64. Based on the instruction supplied from the control unit 18, the RAM 64 can execute writing of valid data necessary for its own reconfigurable circuit 12 from among data output from other reconfigurable units. . As a result, when the output data is valid data, the valid data is stored in the RAM 64 according to the order stored in the internal state holding circuit 60. In the case of invalid data that is not necessary, the write enable signal does not take an active value, and the RAM 64 cannot write invalid data. As a result, it is possible to avoid a situation where unnecessary data is written to the RAM 64, and the capacity of the RAM 64 can be reduced. When data is not written to the RAM 64, the operation of the address counter 66 is stopped.

図5は、リコンフィギュラブルユニットに設けられるRAM64の構成を示す。RAM64は、2個のRAM0、RAM1を有して構成される。切替部(SW)は、所定のサイクルごとにデータを書き込むRAMを切り替え、またマルチプレクサ(MUX)は、所定のサイクルごとにデータを読み出すRAMを切り替える。したがって、あるサイクルでは、RAM0がデータ書込用のRAM、RAM1がデータ読出用のRAMに設定され、次のサイクルでは、RAM0がデータ読出用のRAM、RAM1がデータ書込用のRAMに設定される。このように、RAM64においては、RAM0とRAM1とが、所定のタイミングで、書込動作と読出動作とを切り替えて使用される。これにより、データ書込とデータ読出とを独立して動作させることが可能となる。従って、リコンフィギュラブルユニット10は所望のタイミングでデータをRAM64から読み出すことができ、ユニット間で受け渡すデータ同士が衝突する問題を解決できる。また、この方式によると、ユニット出力の順番が変化する場合でも書込動作のみの調停を実行すればよく、制御が容易となる利点がある。   FIG. 5 shows a configuration of the RAM 64 provided in the reconfigurable unit. The RAM 64 includes two RAM0 and RAM1. The switching unit (SW) switches the RAM for writing data every predetermined cycle, and the multiplexer (MUX) switches the RAM for reading data for every predetermined cycle. Therefore, in one cycle, RAM0 is set as a data writing RAM and RAM1 is set as a data reading RAM. In the next cycle, RAM0 is set as a data reading RAM and RAM1 is set as a data writing RAM. The Thus, in the RAM 64, the RAM 0 and the RAM 1 are used by switching between the writing operation and the reading operation at a predetermined timing. Thereby, data writing and data reading can be operated independently. Therefore, the reconfigurable unit 10 can read data from the RAM 64 at a desired timing, and can solve the problem of collision between data transferred between the units. Further, according to this method, even when the order of unit output changes, it is only necessary to execute arbitration only for the write operation, and there is an advantage that the control becomes easy.

図6は、リコンフィギュラブルユニット10aにおける各構成の動作を示すタイミングチャートである。リコンフィギュラブルユニット10aの各構成は、カウンタ70の出力に合わせて動作する。ここでは、内部状態保持回路60aにおける6つのDFFを、DFF1、DFF2、DFF3、DFF4、DFF5、DFF6と呼ぶ。DFF1はリコンフィギュラブルユニット10b(リコンフィギュラブル回路12b)の1段目出力と接続し、DFF2はリコンフィギュラブルユニット10bの2段目出力と接続し、DFF3はリコンフィギュラブルユニット10bの3段目出力と接続する。DFF4はリコンフィギュラブルユニット10c(リコンフィギュラブル回路12c)の1段目出力と接続し、DFF5はリコンフィギュラブルユニット10cの2段目出力と接続し、DFF6はリコンフィギュラブルユニット10cの3段目出力と接続する。   FIG. 6 is a timing chart showing the operation of each component in the reconfigurable unit 10a. Each component of the reconfigurable unit 10 a operates in accordance with the output of the counter 70. Here, the six DFFs in the internal state holding circuit 60a are referred to as DFF1, DFF2, DFF3, DFF4, DFF5, and DFF6. DFF1 is connected to the first stage output of the reconfigurable unit 10b (reconfigurable circuit 12b), DFF2 is connected to the second stage output of the reconfigurable unit 10b, and DFF3 is the third stage of the reconfigurable unit 10b. Connect to output. DFF4 is connected to the first stage output of the reconfigurable unit 10c (reconfigurable circuit 12c), DFF5 is connected to the second stage output of the reconfigurable unit 10c, and DFF6 is the third stage of the reconfigurable unit 10c. Connect to output.

カウンタ値が0のとき、リコンフィギュラブルユニット10bの1段目出力が、DFF1に記憶される。続いて、カウンタ値が1のとき、リコンフィギュラブルユニット10bの2段目出力がDFF2に記憶され、このとき同時に、DFF1に記憶されたデータがMUX62aから出力される。カウンタ値が2のとき、リコンフィギュラブルユニット10bの3段目出力がDFF3に記憶され、DFF2に記憶されたデータがMUX62aから出力される。   When the counter value is 0, the first-stage output of the reconfigurable unit 10b is stored in the DFF1. Subsequently, when the counter value is 1, the second-stage output of the reconfigurable unit 10b is stored in the DFF2, and at this time, the data stored in the DFF1 is output from the MUX 62a. When the counter value is 2, the third stage output of the reconfigurable unit 10b is stored in the DFF3, and the data stored in the DFF2 is output from the MUX 62a.

カウンタ値が3のとき、リコンフィギュラブルユニット10cの1段目出力がDFF4に記憶され、DFF3に記憶されたデータがMUX62aから出力される。カウンタ値が4のとき、リコンフィギュラブルユニット10cの2段目出力がDFF5に記憶され、DFF4に記憶されたデータがMUX62aから出力される。カウンタ値が5のとき、リコンフィギュラブルユニット10cの3段目出力がDFF5に記憶され、DFF4に記憶されたデータがMUX62aから出力される。供給されるデータが有効データであれば、制御部18により、書込イネーブル信号がRAM64aに供給され、RAM64aは、アドレスカウンタ66aにより指定されるアドレス値にデータを書き込む。   When the counter value is 3, the first stage output of the reconfigurable unit 10c is stored in the DFF 4, and the data stored in the DFF 3 is output from the MUX 62a. When the counter value is 4, the second-stage output of the reconfigurable unit 10c is stored in the DFF 5, and the data stored in the DFF 4 is output from the MUX 62a. When the counter value is 5, the third-stage output of the reconfigurable unit 10c is stored in the DFF 5, and the data stored in the DFF 4 is output from the MUX 62a. If the supplied data is valid data, the controller 18 supplies a write enable signal to the RAM 64a, and the RAM 64a writes the data to the address value specified by the address counter 66a.

なお、図6に示したタイミングチャートでは、すべての時間帯におけるデータが有効データである例である。そのため、リコンフィギュラブルユニット10の各段における接続部52は、有効データを出力するALUを選択して、そのALUの出力線を別のリコンフィギュラブルユニット10の内部状態保持回路60に接続させる。このALUの選択は、図2に関して説明したように、設定データによる接続用結線の設定により実行される。   Note that the timing chart shown in FIG. 6 is an example in which data in all time zones is valid data. Therefore, the connection unit 52 in each stage of the reconfigurable unit 10 selects an ALU that outputs valid data, and connects the output line of the ALU to the internal state holding circuit 60 of another reconfigurable unit 10. As described with reference to FIG. 2, the selection of the ALU is executed by setting the connection connection by the setting data.

なお、実際にDFGをマッピングする場合には、図6に示すほど、有効データが高頻度に発生することは稀であり、現実には、他のリコンフィギュラブルユニット10に供給する必要のない無効データであることが多くなる。無効データの場合、リコンフィギュラブルユニット10の各段における接続部は、適当なALUの出力を別のリコンフィギュラブルユニット10の内部状態保持回路60に供給する。この出力は何でもよい。無効データは、MUX62aからRAM64aに出力されるが、このときには、データの書込を許可する書込イネーブル信号が制御部18からRAM64aに供給されないため、この無効データは破棄されることになる。   When actually mapping the DFG, as shown in FIG. 6, it is rare that valid data is generated with high frequency, and in reality, invalidity that does not need to be supplied to other reconfigurable units 10 is invalid. It is often data. In the case of invalid data, the connection unit in each stage of the reconfigurable unit 10 supplies an appropriate ALU output to the internal state holding circuit 60 of another reconfigurable unit 10. This output can be anything. The invalid data is output from the MUX 62a to the RAM 64a. At this time, the write enable signal for permitting the data writing is not supplied from the control unit 18 to the RAM 64a, so that the invalid data is discarded.

具体的に、他のリコンフィギュラブルユニット10から供給されるデータが有効データであるか、無効データであるかは、既述のように、ALUがコマンドメモリ61から供給される設定データをマッピングされたときに定まるものであり、これは、設定データの生成時に、コンパイラにより把握されている。そのため、他のリコンフィギュラブルユニット10b、10cからMUX62aに供給されるデータが有効データであるとき、コマンドメモリ61からRAM64aに対して、データ書込を許可するW_EN信号が供給される。これにより、RAM64aは、有効データを書き込むことができる。一方、他のリコンフィギュラブルユニット10b、10cからMUX62aに供給されるデータが無効データであるとき、コマンドメモリ61からRAM64aに対して、データ書込を許可するW_EN信号が供給されない。そのため、RAM64aは無効データを書き込むことはせず、記憶領域を有効に活用できる。このように、他のリコンフィギュラブルユニット10b、10cから供給される無効データをRAM64の入口ではじくことにより、複雑な調停制御を必要とせず、他のリコンフィギュラブルユニット10b、10cとRAM64の間の構成を単純化することができ、回路規模を適切に保つことができる。   Specifically, whether the data supplied from the other reconfigurable unit 10 is valid data or invalid data is determined by mapping the setting data supplied from the command memory 61 as described above. This is determined by the compiler when the setting data is generated. Therefore, when the data supplied from the other reconfigurable units 10b and 10c to the MUX 62a is valid data, a W_EN signal that permits data writing is supplied from the command memory 61 to the RAM 64a. Thereby, the RAM 64a can write valid data. On the other hand, when the data supplied from the other reconfigurable units 10b and 10c to the MUX 62a is invalid data, the W_EN signal for permitting data writing is not supplied from the command memory 61 to the RAM 64a. Therefore, the RAM 64a does not write invalid data and can effectively use the storage area. As described above, by invalid data supplied from the other reconfigurable units 10 b and 10 c at the entrance of the RAM 64, complicated arbitration control is not required, and between the other reconfigurable units 10 b and 10 c and the RAM 64. Can be simplified and the circuit scale can be kept appropriate.

図7は、複数のリコンフィギュラブルユニットを備えた処理装置の構成の別の例を示す。図7に示す処理装置200は、3つのリコンフィギュラブルユニット10d、10e、10fを備える。なお、リコンフィギュラブルユニット10の数は例示であり、2つであってもよいし、また4つ以上であってもよい。リコンフィギュラブルユニット10は、図1に示したように、自身のもつリコンフィギュラブル回路12の出力をフィードバックする経路部24、29などの自己ループを有して構成されているが、図7ではそれらの構成は省略している。ここでは、リコンフィギュラブルユニット10が、他のリコンフィギュラブルユニット10からのデータを入力として受け取るための構成を示す。   FIG. 7 shows another example of the configuration of a processing apparatus including a plurality of reconfigurable units. The processing apparatus 200 shown in FIG. 7 includes three reconfigurable units 10d, 10e, and 10f. The number of reconfigurable units 10 is an example, and may be two, or four or more. As shown in FIG. 1, the reconfigurable unit 10 is configured to have self-loops such as path sections 24 and 29 that feed back the output of the reconfigurable circuit 12 that the reconfigurable unit 10 has. Those configurations are omitted. Here, a configuration for the reconfigurable unit 10 to receive data from another reconfigurable unit 10 as an input is shown.

それぞれのリコンフィギュラブル回路12は、3段×6列のALUアレイとして構成され、各段から1つの出力が可能な構造を有している。リコンフィギュラブル回路12の出力構成は、図4に関して説明した通りである。   Each reconfigurable circuit 12 is configured as an ALU array of 3 stages × 6 columns, and has a structure capable of outputting one output from each stage. The output configuration of the reconfigurable circuit 12 is as described with reference to FIG.

処理装置200において、各リコンフィギュラブルユニット10は、自身のリコンフィギュラブル回路12の各段から出力されたデータを記憶する3つのRAM64と、それぞれのRAM64からの出力を受けて選択的に出力するMUX62を有する。各RAM64は、図5に示したRAMの構成を有し、2つのRAM0、RAM1を備えて構成される。具体的に、リコンフィギュラブルユニット10dは、リコンフィギュラブル回路12dの各段の出力を記憶するRAM64d_1、RAM64d_2、RAM64d_3と、それぞれのRAMの出力を受けるMUX62dを備える。リコンフィギュラブルユニット10eは、リコンフィギュラブル回路12eの各段の出力を記憶するRAM64e_1、RAM64e_2、RAM64e_3と、それぞれのRAMの出力を受けるMUX62eを備える。リコンフィギュラブルユニット10fは、リコンフィギュラブル回路12fの各段の出力を記憶するRAM64f_1、RAM64f_2、RAM64f_3と、それぞれのRAMの出力を受けるMUX62fを備える。   In the processing device 200, each reconfigurable unit 10 receives three RAMs 64 that store data output from each stage of its own reconfigurable circuit 12, and outputs from each RAM 64 and selectively outputs them. It has MUX62. Each RAM 64 has the configuration of the RAM shown in FIG. 5 and includes two RAMs 0 and 1. Specifically, the reconfigurable unit 10d includes a RAM 64d_1, a RAM 64d_2, and a RAM 64d_3 that store the output of each stage of the reconfigurable circuit 12d, and a MUX 62d that receives the output of each RAM. The reconfigurable unit 10e includes a RAM 64e_1, a RAM 64e_2, and a RAM 64e_3 that store the output of each stage of the reconfigurable circuit 12e, and a MUX 62e that receives the output of each RAM. The reconfigurable unit 10f includes a RAM 64f_1, a RAM 64f_2, and a RAM 64f_3 that store the output of each stage of the reconfigurable circuit 12f, and a MUX 62f that receives the output of each RAM.

各RAM64に書き込まれるデータは、他のリコンフィギュラブルユニット10に渡すデータである。RAM64へのデータ書込は、他のリコンフィギュラブルユニット10の動作とは無関係に実行される。各リコンフィギュラブルユニット10が、どのタイミングで他のリコンフィギュラブルユニット10から有効データを必要とするかは、C記述からALUアレイにマッピングするためのDFGを作成するコンパイラが把握している。そのため、コンパイラは、他のリコンフィギュラブルユニットで有効データを必要とするタイミングを考慮して、RAM64の読出機能、MUX62またはMUX80のデータ選択機能を制御する制御信号を生成する。この制御信号は設定データとしてユニット間コマンドメモリ84に記憶され、プログラムカウンタ86のカウント値に基づいて出力される。   Data written to each RAM 64 is data to be passed to another reconfigurable unit 10. Data writing to the RAM 64 is executed regardless of the operation of the other reconfigurable unit 10. The compiler that creates the DFG for mapping the C description to the ALU array knows at which timing each reconfigurable unit 10 needs valid data from the other reconfigurable units 10. Therefore, the compiler generates a control signal for controlling the read function of the RAM 64 and the data selection function of the MUX 62 or MUX 80 in consideration of the timing at which valid data is required in another reconfigurable unit. This control signal is stored as setting data in the inter-unit command memory 84 and is output based on the count value of the program counter 86.

処理装置200においては、RAM64からの読出データは書込動作に関係なく、読み出したいタイミングに必要なデータを取り出すことができ、また、各リコンフィギュラブルユニット10は、接続部82を介して入力ポートにきているデータのうち必要なデータのみを使用すればよい。図7に示す接続構成で、複数のリコンフィギュラブルユニット10が別々のデータを同じタイミングで必要とする場合、コンパイラでタイミング調整することは容易であり、データ同士の衝突を回避するようにDFGを生成する。   In the processing device 200, the read data from the RAM 64 can be taken out at the timing to be read regardless of the write operation, and each reconfigurable unit 10 is connected to the input port via the connection unit 82. It is sufficient to use only necessary data among the data received. In the connection configuration shown in FIG. 7, when a plurality of reconfigurable units 10 require different data at the same timing, it is easy to adjust the timing by the compiler, and the DFG is used to avoid collision between data. Generate.

MUX62は、それぞれのリコンフィギュラブルユニット10における3つのRAMに記憶されたデータを選択する。MUX80は、MUX62においてそれぞれのリコンフィギュラブルユニット10におけるRAM64から選択され、供給されたデータを、リコンフィギュラブルユニット10間で選択して、接続部82に出力する。接続部82は、MUX80で選択されたデータを、複数のリコンフィギュラブルユニット10の入力に供給する。接続部82は複数のリコンフィギュラブルユニット10に対して共通のバスとして構成される。共通バスは1本で構成され、回路規模を削減することが好ましい。図1における制御部18は、接続部82から供給されるデータを、リコンフィギュラブルユニット10の入力ポートから受け取るか否かを定める制御信号をリコンフィギュラブルユニット10に供給する。これにより、リコンフィギュラブルユニット10は、必要なデータのみを受け取ることができ、ユニット間のデータの受け渡しを容易に実行することが可能となる。   The MUX 62 selects data stored in the three RAMs in each reconfigurable unit 10. The MUX 80 is selected from the RAM 64 in each reconfigurable unit 10 in the MUX 62, and the supplied data is selected between the reconfigurable units 10 and output to the connection unit 82. The connection unit 82 supplies the data selected by the MUX 80 to the inputs of the plurality of reconfigurable units 10. The connection unit 82 is configured as a common bus for the plurality of reconfigurable units 10. It is preferable that the common bus is composed of one and the circuit scale is reduced. The control unit 18 in FIG. 1 supplies the reconfigurable unit 10 with a control signal that determines whether data supplied from the connection unit 82 is received from the input port of the reconfigurable unit 10. As a result, the reconfigurable unit 10 can receive only necessary data, and can easily execute data transfer between the units.

以下、処理装置200におけるRAM64のメモリ容量について考察する。処理装置200に入力される外部データの1クロックに対して、処理装置200の内部クロックがその100倍の速度を有しているとする。この場合、外部データの1クロックを1サイクルとして設定すると、1サイクルは、処理装置200内の100クロックに相当する。   Hereinafter, the memory capacity of the RAM 64 in the processing device 200 will be considered. Assume that the internal clock of the processing device 200 has a speed 100 times that of one clock of external data input to the processing device 200. In this case, if one clock of the external data is set as one cycle, one cycle corresponds to 100 clocks in the processing device 200.

1サイクルのうち、あるリコンフィギュラブルユニットで処理されたデータを再び同じリコンフィギュラブルユニット内で使用する頻度に比べ、他のリコンフィギュラブルユニットで使用する頻度は少ない。したがって、RAM64の容量は小さくてすむ。1サイクル=100クロックで、リコンフィギュラブルユニット10をm個接続する場合、1個のリコンフィギュラブルユニット10に対するRAM64の深さは100/mとなるので、各段1個のRAM64の深さは(100/m)/3となる。図7の場合、m=3なので、RAM64の1個の深さ=11となる。この考察により、RAM64の容量が小さくてすむことがわかる。また、上記で述べたように、RAM64に記憶されたデータを時分割で読み出すことにより、1本の接続部82でリコンフィギュラブルユニット間でデータを受け渡すことが可能となる。図7では、1本のバスで各リコンフィギュラブルユニットへユニット間データを入力していたが、複数のバスでユニット間の接続を実行する構造でもよい。   In one cycle, the frequency used in another reconfigurable unit is less than the frequency in which data processed in one reconfigurable unit is used again in the same reconfigurable unit. Therefore, the capacity of the RAM 64 can be small. When 1 cycle = 100 clocks and m reconfigurable units 10 are connected, the depth of the RAM 64 with respect to one reconfigurable unit 10 is 100 / m. (100 / m) / 3. In the case of FIG. 7, since m = 3, one depth of the RAM 64 = 11. This consideration shows that the capacity of the RAM 64 can be small. Further, as described above, by reading the data stored in the RAM 64 in a time division manner, it is possible to transfer data between the reconfigurable units with a single connection unit 82. In FIG. 7, inter-unit data is input to each reconfigurable unit using a single bus. However, a structure in which connections between units are executed using a plurality of buses may be used.

処理装置100および処理装置200によると、複数のリコンフィギュラブルユニット10間で受け渡すデータ同士が衝突する問題を解決でき、並列処理が可能となるため、全体の処理能力が向上する。また、ユニット間、外部とのバスを削減できるので、回路規模の削減、及び、消費電力の削減を実現することができる。   According to the processing device 100 and the processing device 200, it is possible to solve the problem that data transferred between the plurality of reconfigurable units 10 collide with each other, and parallel processing is possible, thereby improving the overall processing capability. In addition, since the buses between the units and the outside can be reduced, it is possible to reduce the circuit scale and the power consumption.

なお、上記した2つの実施例では、各ユニットの各段からの出力を1つとしていたが、複数としてもよい。   In the above-described two embodiments, one output is provided from each stage of each unit, but a plurality of outputs may be provided.

図8は、複数のリコンフィギュラブルユニットを備えた処理装置の構成の別の例を示す。図8に示す処理装置300は、4つのリコンフィギュラブルユニット10g,10h,10i,10jを備える。なお、リコンフィギュラブルユニット10の数は例示であり、3つ以下であってもよいし、また5つ以上であってもよい。リコンフィギュラブルユニット10は、図1に示したように、該リコンフィギュラブルユニット10に備えられたリコンフィギュラブル回路12の出力をフィードバックする経路部24、29などの自己ループを有して構成されているが、図8ではそれらの構成は省略している。   FIG. 8 shows another example of the configuration of a processing apparatus including a plurality of reconfigurable units. The processing apparatus 300 illustrated in FIG. 8 includes four reconfigurable units 10g, 10h, 10i, and 10j. Note that the number of reconfigurable units 10 is an example, and may be three or less, or may be five or more. As shown in FIG. 1, the reconfigurable unit 10 has a self-loop such as path portions 24 and 29 that feed back the output of the reconfigurable circuit 12 provided in the reconfigurable unit 10. However, those configurations are omitted in FIG.

リコンフィギュラブルユニット10gは、リコンフィギュラブル回路12gと、出力用RAM64g(第2記憶部)と、MUX67gと、入力用RAM69g_1,69g_2,69g_3(第1記憶部)とを有している。   The reconfigurable unit 10g includes a reconfigurable circuit 12g, an output RAM 64g (second storage unit), a MUX 67g, and input RAMs 69g_1, 69g_2, and 69g_3 (first storage unit).

リコンフィギュラブル回路12gは、3段×6列のALUアレイとして構成され、各段から1つの出力が可能な構造を有している。図8では、説明の便宜上、リコンフィギュラブル回路12gは、図2に示す1段目から1つの出力が可能な構造を有するものとして説明する。リコンフィギュラブル回路12gの基本的な構成は、図2及び図4等で説明した通りである。   The reconfigurable circuit 12g is configured as an ALU array of 3 stages × 6 columns, and has a structure that allows one output from each stage. In FIG. 8, for convenience of explanation, the reconfigurable circuit 12g will be described as having a structure capable of one output from the first stage shown in FIG. The basic configuration of the reconfigurable circuit 12g is as described with reference to FIGS.

出力用RAM64gは、リコンフィギュラブル回路12gの出力側の所定段目(ここでは1段目)から出力されたデータを記憶する。出力用RAM64gは、リコンフィギュラブル回路12gの1段目から出力されたデータが他のリコンフィギュラブル回路12h,12i,12jにおける演算に有効なデータであるとは限らないため、当該有効なデータでない無効データを記憶しないようにする。   The output RAM 64g stores data output from a predetermined stage (here, the first stage) on the output side of the reconfigurable circuit 12g. The output RAM 64g is not the valid data because the data output from the first stage of the reconfigurable circuit 12g is not necessarily valid for the operation in the other reconfigurable circuits 12h, 12i, 12j. Avoid storing invalid data.

具体的には、制御部94がユニット間コマンドメモリ95に記憶された書込イネーブル信号を出力用RAM64gに出力する。そして、リコンフィギュラブル回路12gの1段目から出力されたデータが他のリコンフィギュラブル回路12h,12i,12jにおける演算に必要な有効データである場合には、出力用RAM64gには、制御部94から書込イネーブル信号が入力される。出力用RAM64gは、制御部94から入力された書込イネーブル信号に基づいて、リコンフィギュラブル回路12gの1段目から出力されたデータを有効データであるとして記憶する。   Specifically, the control unit 94 outputs a write enable signal stored in the inter-unit command memory 95 to the output RAM 64g. When the data output from the first stage of the reconfigurable circuit 12g is valid data necessary for calculation in the other reconfigurable circuits 12h, 12i, and 12j, the output RAM 64g includes the control unit 94. Is supplied with a write enable signal. Based on the write enable signal input from the control unit 94, the output RAM 64g stores the data output from the first stage of the reconfigurable circuit 12g as valid data.

一方、リコンフィギュラブル回路12gの1段目から出力されたデータが有効データでない場合には、出力用RAM64gには、制御部94から書込イネーブル信号が入力されない。この場合には、出力用RAM64gは、制御部94から書込イネーブル信号が入力されないため、リコンフィギュラブル回路12gの1段目から出力されたデータを記憶しない。   On the other hand, when the data output from the first stage of the reconfigurable circuit 12g is not valid data, the write enable signal is not input from the control unit 94 to the output RAM 64g. In this case, the output RAM 64g does not store the data output from the first stage of the reconfigurable circuit 12g because the write enable signal is not input from the control unit 94.

また、各リコンフィギュラブルユニット10が、どのタイミングで他のリコンフィギュラブルユニット10の出力用RAM64から有効データを必要とするかは、C記述からALUアレイにマッピングするためのDFGを作成するコンパイラが把握している。   Also, the timing at which each reconfigurable unit 10 needs valid data from the output RAM 64 of another reconfigurable unit 10 is determined by the compiler that creates the DFG for mapping from the C description to the ALU array. I know.

このため、コンパイラは、一方のリコンフィギュラブルユニット10(例えば、リコンフィギュラブルユニット10g)の出力用記憶部64に記憶された有効データを他方の複数のリコンフィギュラブルユニット10(例えば、リコンフィギュラブルユニット10h,10i,10j)で必要とするタイミングを考慮して、当該出力用記憶部64に有効データを書き込む機能を制御するための制御信号(書込イネーブル信号を含む)を生成する。   For this reason, the compiler converts the valid data stored in the output storage unit 64 of one reconfigurable unit 10 (for example, the reconfigurable unit 10g) to the other plurality of reconfigurable units 10 (for example, the reconfigurable unit 10g). In consideration of the timing required by the units 10h, 10i, and 10j), a control signal (including a write enable signal) is generated for controlling the function of writing valid data to the output storage unit 64.

すなわち、上記他方の複数のリコンフィギュラブルユニット10(例えば、リコンフィギュラブルユニット10h,10i,10j)が上記一方のリコンフィギュラブルユニット10(例えば、リコンフィギュラブルユニット10g)に備えられている出力用RAM64の有効データを同時に読み込むなどのタイミングで、コンパイラは出力用記憶部64に有効データを書き込む機能を制御するための制御信号を生成する。この制御信号は、ユニット間コマンドメモリ95に記憶され、プログラムカウンタ96のカウント値に基づいて制御部94から出力される。   In other words, the other plurality of reconfigurable units 10 (for example, reconfigurable units 10h, 10i, 10j) are provided in the one reconfigurable unit 10 (for example, reconfigurable unit 10g). The compiler generates a control signal for controlling the function of writing the valid data in the output storage unit 64 at the timing of reading the valid data in the RAM 64 at the same time. This control signal is stored in the inter-unit command memory 95 and is output from the control unit 94 based on the count value of the program counter 96.

なお、他方の複数のリコンフィギュラブルユニット10(例えば、リコンフィギュラブルユニット10h,10i,10j)のそれぞれの出力用RAM64が上記一方のリコンフィギュラブルユニット10(例えば、リコンフィギュラブルユニット10g)に備えられているMUX67に対して有効データを同時に出力しないタイミングで、コンパイラは出力用記憶部64に有効データを書き込む機能を制御するための制御信号を生成する。   Note that the output RAM 64 of each of the other plurality of reconfigurable units 10 (for example, reconfigurable units 10h, 10i, 10j) is provided in the one reconfigurable unit 10 (for example, reconfigurable unit 10g). The compiler generates a control signal for controlling the function of writing the valid data in the output storage unit 64 at a timing at which valid data is not simultaneously output to the MUX 67.

MUX67gは、他の複数のリコンフィギュラブルユニット10h,10i,10jから出力されたデータを選択して該当する入力用RAM69g_1,69g_2,69g_3に出力する。なお、MUX67gは、他の複数のリコンフィギュラブルユニット10h,10i,10jから出力されたデータを、カウンタ値に基づいて選択してもよいし、ユニット間コマンドメモリ95により出力された選択信号に基づいて選択してもよい。   The MUX 67g selects data output from the other plurality of reconfigurable units 10h, 10i, and 10j and outputs the selected data to the corresponding input RAMs 69g_1, 69g_2, and 69g_3. The MUX 67g may select data output from the other plurality of reconfigurable units 10h, 10i, and 10j based on the counter value, or may be based on the selection signal output from the inter-unit command memory 95. May be selected.

MUX67gには、経路部90a,90b,90cが接続されている。経路部90aは、MUX67gと他のリコンフィギュラブルユニット10hの出力用RAM64hとを接続する。経路部90bは、MUX67gと他のリコンフィギュラブルユニット10iの出力用RAM64iとを接続する。経路部90cは、MUX67gと他のリコンフィギュラブルユニット10jの出力用RAM64jとを接続する。   Path portions 90a, 90b, and 90c are connected to the MUX 67g. The path unit 90a connects the MUX 67g and the output RAM 64h of the other reconfigurable unit 10h. The path unit 90b connects the MUX 67g and the output RAM 64i of the other reconfigurable unit 10i. The path unit 90c connects the MUX 67g and the output RAM 64j of the other reconfigurable unit 10j.

MUX67gは、MUX67gに接続される経路部の数が3つであるため、3:1のマルチプレクサとして構成され、カウンタ(図示せず)から供給されるカウンタ値に基づいて、各経路部のいずれかを所定タイミングで順次選択して、選択した経路部から出力されたデータを該当する入力用RAM69gに出力する。   Since the number of path units connected to the MUX 67g is three, the MUX 67g is configured as a 3: 1 multiplexer, and one of the path units is selected based on a counter value supplied from a counter (not shown). Are sequentially selected at a predetermined timing, and the data output from the selected path section is output to the corresponding input RAM 69g.

入力用RAM69g_1,69g_2,69g_3は、MUX67gから出力されたデータを記憶する。入力用RAM69g_1,69g_2,69g_3のそれぞれは、リコンフィギュラブル回路12gの入力側の各段に接続されている。具体的には、入力用RAM69g_1は接続部52aに接続されている。入力用RAM69g_2は接続部52bに接続されている。入力用RAM69g_3は接続部52cに接続されている。   The input RAMs 69g_1, 69g_2, and 69g_3 store data output from the MUX 67g. Each of the input RAMs 69g_1, 69g_2, and 69g_3 is connected to each stage on the input side of the reconfigurable circuit 12g. Specifically, the input RAM 69g_1 is connected to the connection unit 52a. The input RAM 69g_2 is connected to the connection unit 52b. The input RAM 69g_3 is connected to the connection unit 52c.

上記制御部94は、リコンフィギュラブル回路12gが入力用RAM69gに記憶されたデータを読み込むか否かを定める制御信号をリコンフィギュラブル回路12gに出力する。これにより、リコンフィギュラブル回路12gは、必要なデータのみを該当する入力用RAM69gから読み込むことができる。   The control unit 94 outputs a control signal that determines whether or not the reconfigurable circuit 12g reads data stored in the input RAM 69g to the reconfigurable circuit 12g. Thereby, the reconfigurable circuit 12g can read only necessary data from the corresponding input RAM 69g.

上記入力用RAM69g_1,69g_2,69g_3、及び出力用RAM64gのそれぞれは、図5に示す2つのRAM0、RAM1を有している。入力用RAM69g_1,69g_2,69g_3、及び出力用RAM64gのそれぞれは、2つのRAM0、RAM1のうちの一方のRAMと他方のRAMとを所定のタイミング(ここでは1サイクル)で書込動作と読出動作とに切り替える。   Each of the input RAMs 69g_1, 69g_2, 69g_3, and the output RAM 64g has two RAMs 0 and 1 shown in FIG. Each of the input RAMs 69g_1, 69g_2, 69g_3, and the output RAM 64g has a write operation and a read operation at a predetermined timing (here, one cycle) between one of the two RAMs 0 and 1 and the other RAM. Switch to.

リコンフィギュラブルユニット10hは、上述したリコンフィギュラブルユニット10gと同様に、リコンフィギュラブル回路12hと、リコンフィギュラブル回路12hの所定段目(ここでは1段目)から出力されたデータを記憶する出力用RAM64hと、他の複数のリコンフィギュラブルユニット10g,10i,10jから出力されたデータを選択して該当する入力用RAM69h_1,69h_2,69h_3に出力するMUX67hと、MUX67hにより選択されたデータを記憶する入力用RAM69h_1,69h_2,69h_3とを有している。   The reconfigurable unit 10h stores the data output from the reconfigurable circuit 12h and a predetermined stage (here, the first stage) of the reconfigurable circuit 12h, similarly to the above-described reconfigurable unit 10g. RAM 64h, MUX 67h for selecting data output from other reconfigurable units 10g, 10i, 10j and outputting to corresponding input RAMs 69h_1, 69h_2, 69h_3, and data selected by MUX 67h are stored. Input RAMs 69h_1, 69h_2, and 69h_3 are included.

リコンフィギュラブルユニット10iは、リコンフィギュラブル回路12iと、リコンフィギュラブル回路12iの所定段目(ここでは1段目)から出力されたデータを記憶する出力用RAM64iと、他の複数のリコンフィギュラブルユニット10g,10h,10jから出力されたデータを選択して該当する入力用RAM69i_1,69i_2,69i_3に出力するMUX67iと、MUX67iにより選択されたデータを記憶する入力用RAM69i_1,69i_2,69i_3とを有している。   The reconfigurable unit 10i includes a reconfigurable circuit 12i, an output RAM 64i that stores data output from a predetermined stage (here, the first stage) of the reconfigurable circuit 12i, and a plurality of other reconfigurable units. MUX 67i that selects data output from the units 10g, 10h, and 10j and outputs the selected data to the corresponding input RAMs 69i_1, 69i_2, and 69i_3, and input RAMs 69i_1, 69i_2, and 69i_3 that store the data selected by the MUX 67i ing.

リコンフィギュラブルユニット10jは、リコンフィギュラブル回路12jと、リコンフィギュラブル回路12jの所定段目(ここでは1段目)から出力されたデータを記憶する出力用RAM64jと、他の複数のリコンフィギュラブルユニット10g,10h,10iから出力されたデータを選択して該当する入力用RAM69j_1,69j_2,69j_3に出力するMUX67jと、MUX67jにより選択されたデータを記憶する入力用RAM69j_1,69j_2,69j_3とを有している。   The reconfigurable unit 10j includes a reconfigurable circuit 12j, an output RAM 64j for storing data output from a predetermined stage (here, the first stage) of the reconfigurable circuit 12j, and a plurality of other reconfigurable units. MUX 67j that selects data output from units 10g, 10h, and 10i and outputs the selected data to corresponding input RAMs 69j_1, 69j_2, and 69j_3, and input RAMs 69j_1, 69j_2, and 69j_3 that store data selected by MUX 67j ing.

ここで、図7では、リコンフィギュラブル回路12における各段のALU列53がRAM64に記憶されているデータを同じタイミングで要求しないようにするために、コンパイラは、各段のALU列53のうちのいずれかのALU列53の要求を他のALU列53の要求よりも優先させることにより、各段のALU列53からの要求が重ならないようにしている。すなわち、コンパイラは、当該各段のALU列53のそれぞれの要求が重ならないように当該各要求を時間的に順次ずらしている。   Here, in FIG. 7, in order to prevent the ALU column 53 of each stage in the reconfigurable circuit 12 from requesting the data stored in the RAM 64 at the same timing, the compiler includes the ALU column 53 of each stage. The request from one of the ALU columns 53 is prioritized over the request from the other ALU column 53, so that the requests from the ALU columns 53 in each stage do not overlap. That is, the compiler sequentially shifts the requests in time so that the requests of the ALU columns 53 of the stages do not overlap.

ところが、リコンフィギュラブル回路12における各段のALU列53が多くなると、コンパイラは、各段のALU列53のそれぞれの要求が重ならないようにするために、当該各要求を時間的に順次ずらすためのDFG数を多く作成しなければならない。このため、DFG数が多く作成された分、リコンフィギュラブル回路12における回路規模が拡大することがあった。   However, when the number of ALU columns 53 in each stage in the reconfigurable circuit 12 increases, the compiler sequentially shifts each request in time so that the requests in the ALU columns 53 in each stage do not overlap. A large number of DFGs must be created. For this reason, the circuit scale in the reconfigurable circuit 12 may be increased by the amount of the DFG created.

図8に示す接続構成では、リコンフィギュラブル回路12における各段のALU列53は、それぞれの各段に対応する入力用RAM69に接続されている。これにより、リコンフィギュラブル回路12における2以上のALU列53は、それぞれの各段に対応する入力用RAM69に記憶されているデータを、他段のALU列からの要求に関係なく同時に直接読み込むことができる。   In the connection configuration shown in FIG. 8, the ALU row 53 of each stage in the reconfigurable circuit 12 is connected to the input RAM 69 corresponding to each stage. As a result, two or more ALU columns 53 in the reconfigurable circuit 12 can directly read the data stored in the input RAM 69 corresponding to the respective stages simultaneously regardless of requests from the ALU columns of other stages. Can do.

このため、コンパイラは、各段のALU列53からの各要求を重複しないようにするためのDFGを多く作成する必要がなくなる。また、コンパイラによりDFGが多く作成されない分、リコンフィギュラブル回路12は、回路規模を縮小することができ、制御動作を簡素化することができる。   This eliminates the need for the compiler to create a large number of DFGs so as not to duplicate requests from the ALU columns 53 at each stage. Further, as much DFG is not created by the compiler, the reconfigurable circuit 12 can reduce the circuit scale and simplify the control operation.

なお、本実施形態では、リコンフィギュラブル回路12における各段のALU列53に対応して入力用RAM69が複数備えられているが、この入力用RAM69が1つしか備えられていない場合には、上述した図7に示す構成と同様にリコンフィギュラブル回路12における回路規模が拡大することとなる。   In the present embodiment, a plurality of input RAMs 69 are provided corresponding to the ALU columns 53 of each stage in the reconfigurable circuit 12, but when only one input RAM 69 is provided, Similar to the configuration shown in FIG. 7 described above, the circuit scale of the reconfigurable circuit 12 is increased.

具体的には、リコンフィギュラブル回路12における各段のALU列53は、それぞれ独立に動作している。このため、入力用RAM69が1つしか備えられていないと、各段のALU列53は、当該入力用RAM69に記憶されているデータを同時に読み込むことがある。この場合には、各段のALU列53からのデータの読み込みに対する要求が同時に実行されるため、リコンフィギュラブルユニット10の動作が停止する。   Specifically, the ALU columns 53 at each stage in the reconfigurable circuit 12 operate independently. For this reason, if only one input RAM 69 is provided, the ALU column 53 at each stage may simultaneously read data stored in the input RAM 69. In this case, since the request for reading data from the ALU column 53 of each stage is executed at the same time, the operation of the reconfigurable unit 10 is stopped.

従って、上述したようにコンパイラは、各段のALU列53からの要求が同時に実行されないようにするために、何も実行しない処理を示すNOPノードをDFGに加えて、各段のALU列53からの要求を時間的に順次ずらす必要がある。このため、当該NOPノードがDFGに加えられた分、回路規模が拡大することとなる。   Therefore, as described above, in order to prevent requests from the ALU column 53 at each stage from being executed at the same time, the compiler adds a NOP node indicating a process for performing nothing to the DFG, and from the ALU column 53 at each stage. It is necessary to sequentially shift the requests in time. For this reason, the circuit scale is increased by the amount of the NOP node added to the DFG.

よって、図8に示すように、入力用RAM69が1つではなく、各段のALU列53のそれぞれに対応して入力用RAM69が複数備えられることにより、2以上のALU列53は、それぞれの各段に対応する入力用RAM69に記憶されているデータを、他のALU列からの要求に関係なく同時に読み込むことができる。このため、コンパイラは、各段のALU列53からの各要求を重複しないようにするためのDFGを作成する必要がなくなる。また、リコンフィギュラブル回路12は、当該DFGが作成されない分、回路規模を縮小することができる。   Therefore, as shown in FIG. 8, the number of input RAMs 69 is not one, but a plurality of input RAMs 69 are provided corresponding to each of the ALU columns 53 in each stage, so that two or more ALU columns 53 can be The data stored in the input RAM 69 corresponding to each stage can be read simultaneously regardless of requests from other ALU columns. This eliminates the need for the compiler to create a DFG for avoiding duplicate requests from the ALU column 53 at each stage. In addition, the reconfigurable circuit 12 can reduce the circuit scale because the DFG is not created.

なお、図8に示すリコンフィギュラブル回路12は、所定段(ここでは1段目)から1つの出力が可能な構造を有するものとして説明しているが、これに限定されずに、複数段(図2参照)のそれぞれから1つの出力が可能な構造を有してもよい。   The reconfigurable circuit 12 shown in FIG. 8 has been described as having a structure capable of outputting one output from a predetermined stage (here, the first stage). However, the present invention is not limited to this. (See FIG. 2).

なお、図8に示すリコンフィギュラブルユニット10は、他の複数のリコンフィギュラブルユニット10から出力されたデータを受け付けているが、これに限定されずに、自身の持つリコンフィギュラブルユニット10から出力されたデータを受け付けてもよい。   The reconfigurable unit 10 shown in FIG. 8 accepts data output from a plurality of other reconfigurable units 10, but is not limited to this, and is output from the reconfigurable unit 10 that the reconfigurable unit 10 has. The received data may be accepted.

以上、本発明を実施例をもとに説明した。実施例は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   In the above, this invention was demonstrated based on the Example. It is to be understood by those skilled in the art that the embodiments are exemplifications, and that various modifications are possible in the combination of each component and each processing process, and such modifications are within the scope of the present invention.

リコンフィギュラブル回路を備えたリコンフィギュラブルユニットの構成図である。It is a block diagram of a reconfigurable unit provided with a reconfigurable circuit. リコンフィギュラブル回路の構成の一例を示す図である。It is a figure which shows an example of a structure of a reconfigurable circuit. (a)はfor文により出力タイミングが異なるプログラムの一例を示す図であり、(b)は出力タイミングを説明するための図である。(A) is a figure which shows an example of the program from which an output timing differs with a for sentence, (b) is a figure for demonstrating an output timing. 複数のリコンフィギュラブルユニットを備えた処理装置の構成を示す図である。It is a figure which shows the structure of the processing apparatus provided with the several reconfigurable unit. リコンフィギュラブルユニットに設けられるRAMの構成を示す図である。It is a figure which shows the structure of RAM provided in a reconfigurable unit. リコンフィギュラブルユニットにおける各構成の動作を示すタイミングチャートである。It is a timing chart which shows operation of each composition in a reconfigurable unit. 複数のリコンフィギュラブルユニットを備えた処理装置の構成の別の例を示す図である。It is a figure which shows another example of a structure of the processing apparatus provided with the several reconfigurable unit. 複数のリコンフィギュラブルユニットを備えた処理装置の構成の別の例を示す図である。It is a figure which shows another example of a structure of the processing apparatus provided with the several reconfigurable unit.

符号の説明Explanation of symbols

10…リコンフィギュラブルユニット、12…リコンフィギュラブル回路、18…制御部、27…メモリ部、54…途中出力経路、60…内部状態保持回路、61…コマンドメモリ、62…MUX、63…プログラムカウンタ、64…RAM、66…アドレスカウンタ、67…MUX、68…バス、69…RAM、70…カウンタ、80…MUX、82…接続部、84…ユニット間コマンドメモリ、86…プログラムカウンタ、94…制御部、95…ユニット間コマンドメモリ、96…プログラムカウンタ、100…処理装置、200…処理装置   DESCRIPTION OF SYMBOLS 10 ... Reconfigurable unit, 12 ... Reconfigurable circuit, 18 ... Control part, 27 ... Memory part, 54 ... Halfway output path, 60 ... Internal state holding circuit, 61 ... Command memory, 62 ... MUX, 63 ... Program counter 64 ... RAM, 66 ... address counter, 67 ... MUX, 68 ... bus, 69 ... RAM, 70 ... counter, 80 ... MUX, 82 ... connector, 84 ... inter-unit command memory, 86 ... program counter, 94 ... control , 95 ... Inter-unit command memory, 96 ... Program counter, 100 ... Processing device, 200 ... Processing device

Claims (13)

機能の変更が可能なリコンフィギュラブル回路を有する複数のリコンフィギュラブルユニットを備えた処理装置であって、
前記複数のリコンフィギュラブルユニットは、
他のリコンフィギュラブルユニットから出力されたデータを記憶する第1記憶部と、
前記第1記憶部の動作制御を実行する制御部とを有しており、
前記第1記憶部は、前記制御部による指示に基づいて、前記他のリコンフィギュラブルユニットから出力されたデータの中から、自身のリコンフィギュラブル回路において必要な有効データの書込を実行することを特徴とする処理装置。
A processing apparatus comprising a plurality of reconfigurable units having a reconfigurable circuit capable of changing functions,
The plurality of reconfigurable units are:
A first storage unit for storing data output from other reconfigurable units;
A control unit that performs operation control of the first storage unit,
The first storage unit executes writing of valid data required in its own reconfigurable circuit from among data output from the other reconfigurable units based on an instruction from the control unit. A processing apparatus characterized by the above.
前記第1記憶部は、前記他のリコンフィギュラブルユニットからの出力を時分割に書き込むことを特徴とする請求項1に記載の処理装置。   The processing apparatus according to claim 1, wherein the first storage unit writes the output from the other reconfigurable unit in a time-sharing manner. 前記複数のリコンフィギュラブルユニットは、
前記他のリコンフィギュラブルユニットから出力される複数のデータを、それぞれ異なるタイミングで且つ所定の周期で記憶する第2記憶部と、
前記第2記憶部に記憶したデータを選択して前記第1記憶部に供給する選択部とを有することを特徴とする請求項1又は請求項2のいずれかに記載の処理装置。
The plurality of reconfigurable units are:
A second storage unit that stores a plurality of data output from the other reconfigurable units at different timings and in a predetermined cycle;
The processing apparatus according to claim 1, further comprising a selection unit that selects data stored in the second storage unit and supplies the data to the first storage unit.
前記第2記憶部は、前記自身のリコンフィギュラブル回路において必要な有効データであるか否かにかかわらず、前記他のリコンフィギュラブルユニットから出力されるデータを記憶し、
前記選択部は、前記第2記憶部に記憶された複数のデータを、それぞれ異なるタイミングで且つ所定の周期で前記第1記憶部に供給し、
前記第1記憶部は、前記制御部による指示に基づいて、有効データのみを記憶することを特徴とする請求項3に記載の処理装置。
The second storage unit stores data output from the other reconfigurable unit regardless of whether the data is valid data necessary in the reconfigurable circuit of the second storage unit;
The selection unit supplies the plurality of data stored in the second storage unit to the first storage unit at different timings and at a predetermined cycle,
The processing apparatus according to claim 3, wherein the first storage unit stores only valid data based on an instruction from the control unit.
前記第1記憶部は、前記第2記憶部に記憶された順番にしたがって、有効データを記憶することを特徴とする請求項4に記載の処理装置。   The processing apparatus according to claim 4, wherein the first storage unit stores valid data according to an order stored in the second storage unit. 機能の変更が可能なリコンフィギュラブル回路を有する複数のリコンフィギュラブルユニットを備えた処理装置であって、
前記複数のリコンフィギュラブルユニットは、自身のリコンフィギュラブル回路から出力されたデータを記憶する第1記憶部を有しており、
前記処理装置は、
それぞれのリコンフィギュラブルユニットにおける前記第1記憶部に記憶されたデータを選択する選択部と、
前記選択部で選択されたデータを、前記複数のリコンフィギュラブルユニットの入力に供給する接続部とを備えることを特徴とする処理装置。
A processing apparatus comprising a plurality of reconfigurable units having a reconfigurable circuit capable of changing functions,
The plurality of reconfigurable units includes a first storage unit that stores data output from its own reconfigurable circuit,
The processor is
A selection unit for selecting data stored in the first storage unit in each reconfigurable unit;
And a connection unit that supplies data selected by the selection unit to inputs of the plurality of reconfigurable units.
前記接続部は、前記複数のリコンフィギュラブルユニットに対して共通のバスとして構成されていることを特徴とする請求項6に記載の処理装置。   The processing apparatus according to claim 6, wherein the connection unit is configured as a common bus for the plurality of reconfigurable units. 前記複数のリコンフィギュラブルユニットは、前記接続部から供給されるデータを、前記リコンフィギュラブルユニットの入力から受け取るか否かを定める制御部を有することを特徴とする請求項6又は請求項7のいずれかに記載の処理装置。   8. The control unit according to claim 6, wherein the plurality of reconfigurable units include a control unit that determines whether or not data supplied from the connection unit is received from an input of the reconfigurable unit. The processing apparatus in any one. 前記第1記憶部は、少なくとも2つの記憶部を有しており、該少なくとも2つの記憶部のうちの一方の記憶部と他方の記憶部とを、所定のタイミングで書込動作と読出動作とに切り替えることを特徴とする請求項1乃至請求項8のいずれかに記載の処理装置。   The first storage unit has at least two storage units, and one of the at least two storage units and the other storage unit are written and read at a predetermined timing. The processing apparatus according to claim 1, wherein the processing apparatus is switched to. 機能の変更が可能なリコンフィギュラブル回路を有する複数のリコンフィギュラブルユニットを備えた処理装置であって、
前記リコンフィギュラブルユニットは、前記複数のリコンフィギュラブルユニットから出力されたデータをそれぞれ記憶する複数の第1記憶部を有しており、
前記リコンフィギュラブル回路は、前記複数の第1記憶部に記憶されている前記データをそれぞれ読み込むことを特徴とする処理装置。
A processing apparatus comprising a plurality of reconfigurable units having a reconfigurable circuit capable of changing functions,
The reconfigurable unit has a plurality of first storage units that respectively store data output from the plurality of reconfigurable units,
The processing device, wherein the reconfigurable circuit reads the data stored in the plurality of first storage units.
前記リコンフィギュラブルユニットは、該リコンフィギュラブルユニットの前記リコンフィギュラブル回路から出力された前記データを記憶する第2記憶部を有しており、
前記複数の第1記憶部は、前記複数のリコンフィギュラブルユニットの前記第2記憶部に記憶された前記データをそれぞれ記憶することを特徴とする請求項10に記載の処理装置。
The reconfigurable unit has a second storage unit that stores the data output from the reconfigurable circuit of the reconfigurable unit,
The processing apparatus according to claim 10, wherein the plurality of first storage units respectively store the data stored in the second storage unit of the plurality of reconfigurable units.
前記複数の第1記憶部は、該複数の第1記憶部が備えられた前記リコンフィギュラブルユニット以外の他の複数のリコンフィギュラブルユニットから出力されたデータをそれぞれ記憶することを特徴とする請求項10に記載の処理装置。   The plurality of first storage units respectively store data output from a plurality of reconfigurable units other than the reconfigurable unit including the plurality of first storage units. Item 11. The processing apparatus according to Item 10. 前記第1記憶部及び前記第2記憶部のそれぞれは、少なくとも2つの記憶部を有しており、該少なくとも2つの記憶部のうちの一方の記憶部と他方の記憶部とを、所定のタイミングで書込動作と読出動作とに切り替えることを特徴とする請求項10に記載の処理装置。   Each of the first storage unit and the second storage unit includes at least two storage units, and one storage unit and the other storage unit of the at least two storage units are set to a predetermined timing. The processing apparatus according to claim 10, wherein the processing is switched between a writing operation and a reading operation.
JP2005073607A 2004-08-30 2005-03-15 Processing device Pending JP2006099719A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005073607A JP2006099719A (en) 2004-08-30 2005-03-15 Processing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004250668 2004-08-30
JP2005073607A JP2006099719A (en) 2004-08-30 2005-03-15 Processing device

Publications (1)

Publication Number Publication Date
JP2006099719A true JP2006099719A (en) 2006-04-13

Family

ID=36239421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005073607A Pending JP2006099719A (en) 2004-08-30 2005-03-15 Processing device

Country Status (1)

Country Link
JP (1) JP2006099719A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257549A (en) * 2006-03-24 2007-10-04 Toshiba Corp Semiconductor device
JP2008116997A (en) * 2006-10-31 2008-05-22 Kyushu Univ Reconfigurable data path processor
WO2008155801A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Information processing unit and method for controlling register
JP2009140514A (en) * 2009-01-26 2009-06-25 Toshiba Corp Semiconductor device
JP2011048735A (en) * 2009-08-28 2011-03-10 Ricoh Co Ltd Simd microprocessor
JP2013062649A (en) * 2011-09-13 2013-04-04 Nec Engineering Ltd Logic circuit having reconfigurable integrated circuit unit, and method of correcting error in logic circuit
US8631173B2 (en) 2007-03-28 2014-01-14 Kabushiki Kaisha Toshiba Semiconductor device
JP2015502660A (en) * 2011-11-22 2015-01-22 マーベル ワールド トレード リミテッド Layout of memory circuit and logic circuit in system on chip
JP2016143920A (en) * 2015-01-29 2016-08-08 キヤノン株式会社 Information processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265705A (en) * 1992-03-23 1993-10-15 Nippon Telegr & Teleph Corp <Ntt> Digital processing circuit
JPH0830577A (en) * 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simd processor
WO2003009125A1 (en) * 2001-07-19 2003-01-30 Sony Corporation Calculation apparatus and image processing apparatus
WO2003092171A2 (en) * 2002-04-25 2003-11-06 Koninklijke Philips Electronics N.V. Processing method and apparatus for implementing systolic arrays

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265705A (en) * 1992-03-23 1993-10-15 Nippon Telegr & Teleph Corp <Ntt> Digital processing circuit
JPH0830577A (en) * 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simd processor
WO2003009125A1 (en) * 2001-07-19 2003-01-30 Sony Corporation Calculation apparatus and image processing apparatus
WO2003092171A2 (en) * 2002-04-25 2003-11-06 Koninklijke Philips Electronics N.V. Processing method and apparatus for implementing systolic arrays
JP2005524160A (en) * 2002-04-25 2005-08-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Processing method and apparatus for implementing a systolic array

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257549A (en) * 2006-03-24 2007-10-04 Toshiba Corp Semiconductor device
JP2008116997A (en) * 2006-10-31 2008-05-22 Kyushu Univ Reconfigurable data path processor
US8631173B2 (en) 2007-03-28 2014-01-14 Kabushiki Kaisha Toshiba Semiconductor device
WO2008155801A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Information processing unit and method for controlling register
US8019973B2 (en) 2007-06-20 2011-09-13 Fujitsu Limited Information processing apparatus and method of controlling register
JP2009140514A (en) * 2009-01-26 2009-06-25 Toshiba Corp Semiconductor device
JP4703735B2 (en) * 2009-01-26 2011-06-15 株式会社東芝 Compiler, code generation method, code generation program
JP2011048735A (en) * 2009-08-28 2011-03-10 Ricoh Co Ltd Simd microprocessor
JP2013062649A (en) * 2011-09-13 2013-04-04 Nec Engineering Ltd Logic circuit having reconfigurable integrated circuit unit, and method of correcting error in logic circuit
JP2015502660A (en) * 2011-11-22 2015-01-22 マーベル ワールド トレード リミテッド Layout of memory circuit and logic circuit in system on chip
JP2016143920A (en) * 2015-01-29 2016-08-08 キヤノン株式会社 Information processor

Similar Documents

Publication Publication Date Title
JP2006099719A (en) Processing device
US4553203A (en) Easily schedulable horizontal computer
US7146486B1 (en) SIMD processor with scalar arithmetic logic units
US7653805B2 (en) Processing in pipelined computing units with data line and circuit configuration rule signal line
JP4484756B2 (en) Reconfigurable circuit and processing device
CA2142407A1 (en) Re-configurable application specific device
JP3987783B2 (en) Array type processor
US20070136560A1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
JP6003744B2 (en) Arithmetic processing device and arithmetic processing method
JP3987784B2 (en) Array type processor
EP2132645A1 (en) A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
US7509479B2 (en) Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit
JP2003196246A (en) Data processing system, array type processor, data processor, computer program and information storage medium
JP2010117806A (en) Semiconductor device and data processing method by semiconductor device
US20040143613A1 (en) Floating point bypass register to resolve data dependencies in pipelined instruction sequences
US20080229063A1 (en) Processor Array with Separate Serial Module
JP2006065788A (en) Processor with reconfigurable circuit
KR100960148B1 (en) Data processing circuit
JP4728581B2 (en) Array type processor
JP2002269067A (en) Matrix arithmetic unit
JP3861898B2 (en) Data processing system, array type processor, data processing apparatus, computer program, information storage medium
US9507541B2 (en) Computation device, computation method, and medium
JP2008198003A (en) Array type processor
JP2514473B2 (en) Parallel processor
JP2006065786A (en) Processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070530

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080118

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20080201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100308

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101116