JP4646853B2 - Control information supply device - Google Patents

Control information supply device Download PDF

Info

Publication number
JP4646853B2
JP4646853B2 JP2006145162A JP2006145162A JP4646853B2 JP 4646853 B2 JP4646853 B2 JP 4646853B2 JP 2006145162 A JP2006145162 A JP 2006145162A JP 2006145162 A JP2006145162 A JP 2006145162A JP 4646853 B2 JP4646853 B2 JP 4646853B2
Authority
JP
Japan
Prior art keywords
command
control information
commands
alu
supply
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006145162A
Other languages
Japanese (ja)
Other versions
JP2007316900A (en
Inventor
達夫 平松
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 JP2006145162A priority Critical patent/JP4646853B2/en
Publication of JP2007316900A publication Critical patent/JP2007316900A/en
Application granted granted Critical
Publication of JP4646853B2 publication Critical patent/JP4646853B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、並列処理を行う複数の被制御対象に対してコマンドやアドレス等の制御情報を供給するための制御情報供給装置関する The present invention relates to the control information supply unit for supplying a control information such as commands and addresses to a plurality of the controlled object to perform parallel processing.

近年、複数のALU(Arithmetic and Logic Unit)を並列動作させる並列処理回路が注目されている。並列処理回路は、例えば、リコンフィギャラブル回路にて実現される。
この種の回路では、並列動作に係る全てのALUに対して、コマンドを同一のタイミング(同一の時刻)に供給する必要がある。また、各ALUに供給すべきコマンドは時々刻々と変化する。
In recent years, attention has been focused on parallel processing circuits that operate a plurality of ALUs (Arithmetic and Logic Units) in parallel. The parallel processing circuit is realized by, for example, a reconfigurable circuit.
In this type of circuit, it is necessary to supply commands to all ALUs related to parallel operation at the same timing (same time). Further, the command to be supplied to each ALU changes every moment.

ところで、この種の回路においては、全てのALUが同時に動くケースは比較的少なく、同一のタイミングにおいて一部のALUのみが動作をしていることが多い。例えば、3つのALU、即ち、ALU1、ALU2及びALU3にコマンドを並列供給する場合を考える。例えば、図18に示されるようなコマンド列を考えた場合、タイミングt1において、ALU1、ALU2及びALU3に、夫々、コマンドd1、NOP及びNOPが並列供給される。タイミングt2以降も同様にコマンドが並列供給される。   By the way, in this type of circuit, it is relatively rare that all ALUs move simultaneously, and only some ALUs are operating at the same timing. For example, consider a case where commands are supplied in parallel to three ALUs, that is, ALU1, ALU2, and ALU3. For example, when a command sequence as shown in FIG. 18 is considered, at timing t1, commands d1, NOP, and NOP are supplied in parallel to ALU1, ALU2, and ALU3, respectively. Similarly, commands are supplied in parallel after timing t2.

NOP(no-operation)が供給されるALUは、そのタイミングにおいて動作が不要である。複数のALUを並列動作させるリコンフィギャラブル回路等の並列処理回路に対するプログラムには、このようなNOP(無効コマンド)が多数存在する。   An ALU to which NOP (no-operation) is supplied does not require any operation at that timing. There are many such NOPs (invalid commands) in a program for a parallel processing circuit such as a reconfigurable circuit that operates a plurality of ALUs in parallel.

リコンフィギャラブル回路等の並列処理回路において、図18のようなコマンド列は、コマンドRAM(Random Access Memory)に格納されることになるが、上記のようなNOP部分の存在は、コマンドRAMの必要メモリ領域を増大させ、これに伴って回路の消費電力も増大させる。   In a parallel processing circuit such as a reconfigurable circuit, a command string as shown in FIG. 18 is stored in a command RAM (Random Access Memory). The existence of the NOP portion as described above is necessary for the command RAM. The memory area is increased, and the power consumption of the circuit is increased accordingly.

これを考慮した方式が下記特許文献1に開示されている。この方式では、無効コマンドを除き有効コマンドのみを詰めて記載したデータを形成すると共に、各コマンドの有効/無効を示すインデックスのようなデータを形成する。   A method that takes this into account is disclosed in Patent Document 1 below. In this method, except for invalid commands, only valid commands are packed and described, and data such as an index indicating validity / invalidity of each command is formed.

特開平7−175648号公報JP 7-175648 A

上記特許文献1に記載されている手法は、コマンドRAMの必要メモリ領域の削減に貢献するものであり、或る局面においては、有効に機能しうる。しかし、インデックスを格納するためのメモリが必要であることから、元のコマンドのビット数が少ない場合は、全データに対するインデックスのデータ量の割合が大きくなり、圧縮効果が下がってしまう。また、デコードの際、詰めて記載したデータを伸張する必要があり、伸張回路が大きくなって消費電力が増大してしまう。   The technique described in Patent Document 1 contributes to a reduction in the required memory area of the command RAM, and can function effectively in a certain aspect. However, since a memory for storing the index is necessary, when the number of bits of the original command is small, the ratio of the data amount of the index to all data is increased, and the compression effect is reduced. Further, when decoding, it is necessary to decompress the data described in a packed manner, and the decompression circuit becomes large, resulting in an increase in power consumption.

また、並列演算を行う場合に着目して従来の問題点を説明したが、並列データ読み出し処理及び並列データ書き込み処理など、演算以外の処理を並列に行う場合においても、同様の問題は存在する。   Further, the conventional problems have been described focusing on the case of performing parallel operations, but similar problems also exist when processes other than operations such as parallel data read processing and parallel data write processing are performed in parallel.

そこで本発明は、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減に寄与する制御情報供給装置提供することを目的とする Therefore, an object of the present invention is to provide a control information supply apparatus that contributes to a reduction in the amount of data that should be stored in order to cause a controlled object related to parallel processing to perform a necessary operation .

発明に係る制御情報供給装置は、n個の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置において(nは2以上の整数)、複数のタイミング用の制御情報を合成することによって得られる、n個の制御情報から成る合成制御情報群を含んだ圧縮制御情報列を記憶する第1記憶手段と、各被制御対象に、前記圧縮制御情報列に含まれる制御情報を供給する供給制御手段と、を備え、前記供給制御手段は、前記複数のタイミングにおいて、共通して、前記合成制御情報群を前記n個の被制御対象に供給することを特徴とする。 The control information supply device according to the present invention is a control information supply device that supplies control information for controlling the operation of the controlled object to each of the n controlled objects in parallel and one after another (n is An integer greater than or equal to 2), a first storage means for storing a compression control information sequence including a composite control information group composed of n pieces of control information obtained by combining control information for a plurality of timings; Supply control means for supplying control information included in the compression control information sequence to a control target, and the supply control means commonly sets the n combination control information groups at the plurality of timings. It supplies to the controlled object of.

圧縮制御情報列は、複数の供給タイミング用の制御情報を合成した合成制御情報群を含んでおり、複数の供給タイミングにおいて、共通して、この合成制御情報群をn個の被制御対象に供給する。つまり、1つの合成制御情報群にて複数の供給タイミング用の制御情報がまかなえる。これにより、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減が図られる。この結果、例えば、本発明を利用して集積回路を形成した場合は、チップ面積の小型化及び低消費電力化が期待できる。 Compression control information sequence includes a synthesized synthesis control information group control information for a plurality of supply timing, the plurality of supply timing, in common, supplies the synthetic control information group into n of the controlled object To do. That is, control information for a plurality of supply timings can be covered by one synthesis control information group. As a result, the amount of data to be stored in order to cause the controlled object related to the parallel processing to perform an operation can be reduced. As a result, for example, when an integrated circuit is formed using the present invention, a reduction in chip area and a reduction in power consumption can be expected.

また例えば、当該制御情報供給装置は、各供給タイミングに各被制御対象に供給されるべき制御情報を前記圧縮制御情報列の中から特定するための特定データを記憶する第2記憶手段を更に備え、前記供給制御手段は、前記特定データに基づいて、前記複数の供給タイミングにおいて、共通して、前記合成制御情報群を前記n個の被制御対象に供給する。 In addition, for example, the control information supply device further includes a second storage unit that stores specific data for specifying control information to be supplied to each controlled object from the compression control information sequence at each supply timing. The supply control means supplies the composite control information group to the n controlled objects in common at the plurality of supply timings based on the specific data.

また具体的には例えば、前記圧縮制御情報列は、各供給タイミングに各被制御対象に対して供給されるべき制御情報を表す元制御情報列を基に生成され、前記元制御情報列内の各制御情報は、動作が不要であることを示す無効制御情報または動作を指示する有効制御情報とに分類され、記複数の供給タイミングに含まれる各供給タイミングにおいて、個々の被制御対象に供給される制御情報を、第1、第2、・・・、第k制御情報とした場合、第1〜第k制御情報は、同一の内容の有効制御情報及び無効制御情報の少なくとも一方のみを含む(kは2以上の整数)。 Also, specifically, for example, the compression control information sequence is generated based on an original control information sequence that represents control information to be supplied to each controlled object at each supply timing, and is included in the original control information sequence. each control information, the operation is classified into the effective control information indicating invalid control information or operation indicating that unnecessary, at each feed timing included before Symbol plurality of supply timing, the supply to each of the controlled object When the control information to be used is the first, second,..., Kth control information, the first to kth control information includes at least one of valid control information and invalid control information having the same contents. (K is an integer of 2 or more).

複数の供給タイミングに係る第1〜第k制御情報が、同一の内容の有効制御情報のみ、或いは、無効制御情報のみ、或いは、同一の内容の有効制御情報と無効制御情報のみ、を含むものであるのなら、それらを1つにまとめて合成制御情報群を形成し、それを前記複数の供給タイミングに共通して被制御対象に供給するようにしても差し支えない。 The first to kth control information related to a plurality of supply timings include only valid control information having the same contents, only invalid control information, or only valid control information and invalid control information having the same contents. Then, they may be combined into one to form a composite control information group, which may be supplied to the controlled object in common with the plurality of supply timings.

本発明によれば、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減が期待できる。   According to the present invention, it is possible to expect a reduction in the amount of data to be stored in order to cause a controlled object related to parallel processing to perform a necessary operation.

以下、本発明の実施の形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付す。   Hereinafter, embodiments of the present invention will be specifically described with reference to the drawings. In the drawings to be referred to, the same parts are denoted by the same reference numerals.

<<第1実施形態>>
本発明の第1実施形態について説明する。まず、本実施形態に係るコマンド圧縮手法及びコマンド供給手法の基本的な考え方について説明する。図1に示す並列処理回路11に含まれる3つのALU(Arithmetic and Logic Unit)、即ち、ALU[1]、ALU[2]及びALU[3]に対して、並列にコマンドを供給する場合を例に挙げる。
<< First Embodiment >>
A first embodiment of the present invention will be described. First, the basic concept of the command compression method and the command supply method according to this embodiment will be described. An example in which commands are supplied in parallel to three ALUs (Arithmetic and Logic Units) included in the parallel processing circuit 11 shown in FIG. 1, that is, ALU [1], ALU [2], and ALU [3]. To

図2の符号61は、順次訪れるタイミングT1、T2、T3、T4、T5、・・・において、図1のALU[1]〜ALU[3]の夫々に対して本来供給されるべきコマンドの内容を列挙したコマンド列を表している。以下、これを、元コマンド列61と呼ぶ。タイミングT1、T2、T3、T4、T5、・・・の順番で時間が進行する。以下、説明の具体化のため、元コマンド列61の記述内容を例に挙げつつ実施形態の説明を行う。   Reference numeral 61 in FIG. 2 indicates the contents of the command that should be supplied to each of ALU [1] to ALU [3] in FIG. 1 at the timings T1, T2, T3, T4, T5,. Represents a command sequence enumerating. Hereinafter, this is referred to as an original command sequence 61. Time advances in the order of timing T1, T2, T3, T4, T5,. Hereinafter, the embodiment will be described with the description content of the original command sequence 61 as an example for the sake of concrete description.

元コマンド列61は、
“タイミングT1において、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンドが、夫々、コマンドD1、NOP、NOPであること”、
“タイミングT2において、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンドが、夫々、コマンドNOP、D2、NOPであること”、
“タイミングT3において、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンドが、夫々、コマンドNOP、NOP、D3であること”、
“タイミングT4において、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンド、夫々、コマンドNOP、D4、D5であること”、及び
“タイミングT5において、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンド、夫々、コマンドD6、NOP、NOPであること”、
を規定している。
The original command sequence 61 is
“At timing T1, the commands to be supplied to ALU [1], ALU [2], and ALU [3] are the command D1, NOP, and NOP, respectively.”
“At timing T2, the commands to be supplied to ALU [1], ALU [2], and ALU [3] are the commands NOP, D2, and NOP, respectively.”
“At timing T3, the commands to be supplied to ALU [1], ALU [2], and ALU [3] are the commands NOP, NOP, and D3, respectively.”
“At timing T4, commands to be supplied to ALU [1], ALU [2], ALU [3] are commands NOP, D4, D5” and “At timing T5, ALU [1], ALU [2], command to be supplied to ALU [3], command D6, NOP, NOP respectively ",
Is stipulated.

コマンドNOP(no-operation)は、そのタイミングにおけるALUの動作が不要であることを示す無効コマンド(無効制御情報)である。全てのALUが同時に動作する必要があるケースは比較的少なく、同一タイミングにおいては、一部のALUのみが動作することが多い。このため、並列処理を行うためのプログラムには、元コマンド列61のように、NOPが多く含まれる。   The command NOP (no-operation) is an invalid command (invalid control information) indicating that the operation of the ALU at that timing is unnecessary. There are relatively few cases in which all ALUs need to operate simultaneously, and only some ALUs often operate at the same timing. For this reason, the program for performing parallel processing includes many NOPs as in the original command sequence 61.

コマンドD1〜D6は、ALU(ALU[1]〜ALU[3]の何れか)が実行すべき演算内容を指定するものであり、例えば、それらは、加算に対応するADD、減算に対応するSUB、乗算に対応するMUL、論理和に対応するOR、論理積に対応するAND、などである。NOP以外のこれらのコマンドは、上記無効コマンドと対比して、ALUの演算動作を指示する有効コマンド(有効制御情報)と呼ぶことができる。   The commands D1 to D6 are used to specify the operation contents to be executed by the ALU (any one of ALU [1] to ALU [3]). For example, they are ADD corresponding to addition and SUB corresponding to subtraction. , MUL corresponding to multiplication, OR corresponding to logical sum, AND corresponding to logical product, and the like. These commands other than NOP can be called valid commands (valid control information) for instructing the arithmetic operation of the ALU, in contrast to the invalid commands.

尚、コマンドD0〜D6の内容は、互いに異なっていても良いし、全部又は一部が同じであってもよい(コマンドの内容は、コマンドの種類と換言することもできる)。   Note that the contents of the commands D0 to D6 may be different from each other, or all or a part thereof may be the same (the contents of the command may be referred to as a command type).

或るALUに関し、或るタイミングにおいてコマンドNOPが定義されているということは、該タイミングにおいて該ALUの動作は不要であり、また、それ故に、該ALUの出力は何れの回路にも必要とされていないことを意味する。つまり、該タイミングにおいて該ALUの出力は何れの回路にも利用されない(換言すれば、何れの回路にも接続されない)。従って、そのタイミングにおいてNOP以外のコマンドを供給し、そのコマンドに従った演算をALUに実行させても、並列処理回路11(及びそれを含む装置)の全体の動作に問題は生じない。   The fact that a command NOP is defined at a certain timing for a certain ALU means that the operation of the ALU is not necessary at that timing, and therefore the output of the ALU is required for any circuit. Means not. That is, the output of the ALU is not used for any circuit at the timing (in other words, not connected to any circuit). Therefore, even if a command other than NOP is supplied at that timing and the ALU is caused to execute an operation according to the command, there is no problem in the overall operation of the parallel processing circuit 11 (and the device including it).

これを考慮すると、上述のタイミングT1〜T3における各コマンドを1つにまとめることができ、また、タイミングT4及びT5における各コマンドを1つにまとめることができる。このまとめた結果を、図3に示す。   Considering this, the commands at the timings T1 to T3 can be combined into one, and the commands at the timings T4 and T5 can be combined into one. The summary result is shown in FIG.

複数のタイミングにおける各コマンドを1つにまとめたものを合成コマンド群(合成制御情報群)と呼ぶ。1つの合成コマンド群は、コマンドを並列供給すべきALUの数と同数のコマンドから構成される。本実施形態の例の場合、ALUの数は3であるから、1つの合成コマンド群は、3つのコマンドから構成される。   A combination of commands at a plurality of timings is called a composite command group (composite control information group). One synthetic command group is composed of the same number of commands as the number of ALUs to which commands are to be supplied in parallel. In the example of this embodiment, since the number of ALUs is 3, one synthetic command group is composed of three commands.

図3において、符号65は、タイミングT1〜T3における各コマンドを1つにまとめた合成コマンド群を表し、符号66は、タイミングT4及びT5における各コマンドを1つにまとめた合成コマンド群を表す。   In FIG. 3, reference numeral 65 represents a combined command group in which the commands at timings T1 to T3 are combined into one, and reference numeral 66 represents a combined command group in which the commands at timings T4 and T5 are combined into one.

合成コマンド群65は、ALU[1]に供給すべきコマンドとしてのコマンドD1と、ALU[2]に供給すべきコマンドとしてのコマンドD2と、ALU[3]に供給すべきコマンドとしてのコマンドD3と、の3つのコマンドから成る。合成コマンド群66は、ALU[1]に供給すべきコマンドとしてのコマンドD6と、ALU[2]に供給すべきコマンドとしてのコマンドD4と、ALU[3]に供給すべきコマンドとしてのコマンドD5と、の3つのコマンドから成る。   The composite command group 65 includes a command D1 as a command to be supplied to ALU [1], a command D2 as a command to be supplied to ALU [2], and a command D3 as a command to be supplied to ALU [3]. , Consists of three commands. The composite command group 66 includes a command D6 as a command to be supplied to ALU [1], a command D4 as a command to be supplied to ALU [2], and a command D5 as a command to be supplied to ALU [3]. , Consists of three commands.

合成コマンド群65及び66、並びに、図示されない他の合成コマンド群を併せたものを、圧縮コマンド列62と呼ぶ。但し、圧縮コマンド列62には、合成コマンド群以外のコマンド群(非合成コマンド群)も含まれうる。圧縮コマンド列の生成手法に関しては、後に更なる説明を加える。   A combination of the combination command groups 65 and 66 and another combination command group (not shown) is referred to as a compressed command sequence 62. However, the compressed command string 62 can also include a command group (non-synthetic command group) other than the synthetic command group. The method for generating the compressed command string will be further described later.

圧縮コマンド列62は、後述する図6のコマンドRAM(Random Access Memory)12に格納される。そのコマンドRAM12におけるアドレスA0に合成コマンド群65が格納され、それの下位アドレス側のアドレスA1に合成コマンド群66が格納される。   The compressed command string 62 is stored in a command RAM (Random Access Memory) 12 shown in FIG. A composite command group 65 is stored at address A0 in the command RAM 12, and a composite command group 66 is stored at address A1 on the lower address side thereof.

コマンドRAM12において、アドレスA0の上位アドレス側から順にコマンドD1、D2及びD3が格納され、アドレスA1の上位アドレス側から順にコマンドD6、D4及びD5が格納される。各アドレス(例えばA0又はA1)において、上位アドレス側のコマンドから順にALU[1]、ALU[2]、ALU[3]が割り当てられる。つまり、コマンドD1及びD6はALU[1]に供給されるべきコマンドとして割り当てられつつ、コマンドD2及びD4はALU[2]に供給されるべきコマンドとして割り当てられつつ、コマンドD3及びD5はALU[3]に供給されるべきコマンドとして割り当てられつつ、コマンドRAM12に格納される。   In the command RAM 12, commands D1, D2 and D3 are stored in order from the upper address side of the address A0, and commands D6, D4 and D5 are stored in order from the upper address side of the address A1. In each address (for example, A0 or A1), ALU [1], ALU [2], and ALU [3] are assigned in order from the command on the higher address side. That is, commands D1 and D6 are assigned as commands to be supplied to ALU [1], commands D2 and D4 are assigned as commands to be supplied to ALU [2], and commands D3 and D5 are assigned to ALU [3]. Are stored in the command RAM 12 while being assigned as commands to be supplied to the command RAM 12.

そして、実際には図4の符号64にて示されるような供給コマンド列を各ALU[m]に供給する(mは、1〜3の間の各整数をとる)。即ち、タイミングT1〜T3の夫々において、コマンドRAM12内のアドレスA0に格納されているコマンド(即ち、圧縮コマンド群65)を各ALU[m]に供給し、タイミングT4及びT5の夫々において、コマンドRAM12内のアドレスA1に格納されているコマンド(即ち、圧縮コマンド群66)を各ALU[m]に供給する。   In practice, a supply command sequence as indicated by reference numeral 64 in FIG. 4 is supplied to each ALU [m] (m is an integer between 1 and 3). That is, at each of the timings T1 to T3, the command (that is, the compressed command group 65) stored at the address A0 in the command RAM 12 is supplied to each ALU [m], and at each of the timings T4 and T5, the command RAM 12 The command (that is, the compressed command group 66) stored in the address A1 is supplied to each ALU [m].

これにより、タイミングT1〜T3の夫々において、ALU[1]にはコマンドD1が供給され、ALU[2]にはコマンドD2が供給され、ALU[3]にはコマンドD3が供給される。また、タイミングT4及びT5の夫々において、ALU[1]にはコマンドD6が供給され、ALU[2]にはコマンドD4が供給され、ALU[3]にはコマンドD5が供給される。尚、図4における符号63については後述する。   Accordingly, at each of timings T1 to T3, the command D1 is supplied to ALU [1], the command D2 is supplied to ALU [2], and the command D3 is supplied to ALU [3]. Further, at each of timings T4 and T5, a command D6 is supplied to ALU [1], a command D4 is supplied to ALU [2], and a command D5 is supplied to ALU [3]. Note that reference numeral 63 in FIG. 4 will be described later.

元コマンド列61には、例えば、タイミングT1のALU[2]へのコマンドとしてNOPが定義されていたのであるが、これに代えてコマンドD2を供給するようにしても、上述の如く問題は生じない。他のタイミング、他のALUに関しても同様である。   In the original command sequence 61, for example, NOP is defined as a command to ALU [2] at the timing T1, but even if the command D2 is supplied instead of this, the above-described problem occurs. Absent. The same applies to other timings and other ALUs.

元コマンド列61を、コマンド供給用のコマンドRAMにそのまま格納するとコマンドRAMの必要メモリ領域が非常に大きくなってしまうのであるが、元コマンド列61を圧縮して圧縮コマンド列62を生成し、圧縮コマンド列62をコマンドRAM12に格納するようにすれば、コマンドRAM12の必要メモリ領域が縮小化される。この結果、コマンドRAM12を含む集積回路(後述する図5の集積回路2)のチップ面積の小型化及び低消費電力化が図られる。   If the original command sequence 61 is stored as it is in the command supply command RAM, the required memory area of the command RAM becomes very large. However, the original command sequence 61 is compressed to generate a compressed command sequence 62, and the compression is performed. If the command string 62 is stored in the command RAM 12, the required memory area of the command RAM 12 is reduced. As a result, the chip area and power consumption of an integrated circuit (an integrated circuit 2 in FIG. 5 described later) including the command RAM 12 can be reduced.

[並列処理システムの構成]
次に、上述の考え方に基づいて構成された並列処理システムを説明する。図5は、第1実施形態に係る並列処理システム1の全体構成ブロック図である。並列処理システム1は、集積回路2と、元プログラム3と、圧縮部4と、を有して構成される。
[Configuration of parallel processing system]
Next, a parallel processing system configured based on the above concept will be described. FIG. 5 is an overall configuration block diagram of the parallel processing system 1 according to the first embodiment. The parallel processing system 1 includes an integrated circuit 2, an original program 3, and a compression unit 4.

図6に、集積回路2の内部ブロック図を示す。集積回路2は、並列処理回路11、コマンドRAM12、アドレステーブル13及びシーケンサ14を有して構成される。集積回路2における並列処理回路11は、図1におけるそれと同じものである。   FIG. 6 shows an internal block diagram of the integrated circuit 2. The integrated circuit 2 includes a parallel processing circuit 11, a command RAM 12, an address table 13, and a sequencer 14. The parallel processing circuit 11 in the integrated circuit 2 is the same as that in FIG.

並列処理回路11は、例えば、論理回路の再構成を可能とする機能を備えたリコンフィギャラブル回路であり、内部に四則演算や論理演算などを行う、被制御対象としてのALUを複数個、備えている。説明の具体化及び簡略化のため、上述の如く、並列処理回路11に含まれる3つのALU、即ち、ALU[1]、ALU[2]及びALU[3]に着目する。尚、実際には、例えば、並列処理を行う数10〜数100個程度のALU(不図示)が並列処理回路11に組み込まれ、そのALUの数に対応してコマンドRAM12及びアドレステーブル13は構成される。   The parallel processing circuit 11 is, for example, a reconfigurable circuit having a function that enables reconfiguration of a logic circuit, and includes a plurality of ALUs to be controlled that perform four arithmetic operations, logical operations, and the like inside. ing. For the sake of concreteness and simplification of description, attention is paid to the three ALUs included in the parallel processing circuit 11, that is, ALU [1], ALU [2], and ALU [3] as described above. Actually, for example, about 10 to several hundreds of ALUs (not shown) that perform parallel processing are incorporated in the parallel processing circuit 11, and the command RAM 12 and the address table 13 are configured corresponding to the number of ALUs. Is done.

3つのALU[1]〜ALU[3]は、並列処理を行うための並列処理回路11に組み込まれおり、3つのALU[1]〜ALU[3]には同時にコマンドが供給される必要がある。ここにおける「同時」とは、並列処理回路11の動作に支障がない程度の多少の時間的ずれを含む概念である。   The three ALU [1] to ALU [3] are incorporated in the parallel processing circuit 11 for performing parallel processing, and it is necessary to simultaneously supply commands to the three ALU [1] to ALU [3]. . Here, “simultaneous” is a concept including a slight time lag that does not hinder the operation of the parallel processing circuit 11.

図5の元プログラム3内には、ALU[1]〜ALU[3]に本来供給されるべきコマンドを列挙した元コマンド列が表現されている。説明の具体化のため、この元コマンド列が、図2の元コマンド列61であるとして説明を行う。   In the original program 3 of FIG. 5, an original command string listing commands to be originally supplied to ALU [1] to ALU [3] is expressed. For the sake of concrete explanation, the original command sequence is assumed to be the original command sequence 61 of FIG.

圧縮部4は、元コマンド列61を、圧縮しつつ集積回路2に供給可能なデータ形式に変換するコンパイラとして機能する。圧縮部4は、例えば、圧縮プログラムとして構成されており、その圧縮プログラムと図5の元プログラム3は、ハードディスク等の記録媒体に格納される。そして、圧縮部4(圧縮プログラム)は、該記録媒体の記憶内容を読み出し可能なコンピュータ(不図示)上で動作し、元コマンド列61を圧縮して図3に示すような圧縮コマンド列62を生成する。   The compression unit 4 functions as a compiler that converts the original command sequence 61 into a data format that can be supplied to the integrated circuit 2 while being compressed. The compression unit 4 is configured as a compression program, for example, and the compression program and the original program 3 in FIG. 5 are stored in a recording medium such as a hard disk. The compression unit 4 (compression program) operates on a computer (not shown) capable of reading the storage contents of the recording medium, compresses the original command sequence 61, and generates a compressed command sequence 62 as shown in FIG. Generate.

尚、上記のコンピュータは、圧縮部4の機能を実現するための装置(制御情報圧縮装置)として機能し、上記のコンピュータを、本実施形態(及び後述する第2実施形態)に係る並列処理システムの構成要素と捉えることも可能である。また、本実施形態(及び後述する第2実施形態)に係る並列処理システム全体を、1つの装置に搭載することも可能である。また、圧縮部4を、ハードウェアによって構成するようにしても構わない。   The computer functions as a device (control information compression device) for realizing the function of the compression unit 4, and the computer is used as a parallel processing system according to the present embodiment (and a second embodiment to be described later). It can also be considered as a component of. Further, the entire parallel processing system according to the present embodiment (and a second embodiment to be described later) can be mounted on one apparatus. Further, the compression unit 4 may be configured by hardware.

また、圧縮部4は、図4の符号63にて指し示される内容を特定するテーブルデータ(特定データ)も生成する。図6のコマンドRAM12は、上述の如く、図3の圧縮コマンド列62を指定されたアドレス(アドレスA0、A1・・・)に格納するが、上記テーブルデータは、「ALU[m]に対して、どのタイミングにコマンドRAM12内のどのアドレスの格納データ(ALU[m]用のコマンド)を供給するのか」を特定する。上述してきた例の場合、例えば、テーブルの先頭から順にアドレスA0、A0、A0、A1、A1、・・・を列挙したテーブルデータを生成する。この生成されたテーブルデータを、以下、テーブルデータ63と呼ぶことにする。   The compression unit 4 also generates table data (specific data) that specifies the content indicated by the reference numeral 63 in FIG. As described above, the command RAM 12 in FIG. 6 stores the compressed command string 62 in FIG. 3 at the specified addresses (addresses A0, A1,...). And at which timing stored data (command for ALU [m]) in the command RAM 12 is specified. In the case of the example described above, for example, table data listing addresses A0, A0, A0, A1, A1,... In order from the top of the table is generated. The generated table data is hereinafter referred to as table data 63.

圧縮部4によって生成された圧縮コマンド列62及びテーブルデータ63の内容は、夫々、図6の集積回路2の入力端子(不図示)を介して、コマンドRAM12及びアドレステーブル13に伝達される。コマンドRAM12は圧縮コマンド列62を記憶し、アドレステーブル13はテーブルデータ63を記憶する。   The contents of the compressed command sequence 62 and the table data 63 generated by the compression unit 4 are transmitted to the command RAM 12 and the address table 13 via the input terminals (not shown) of the integrated circuit 2 of FIG. The command RAM 12 stores a compressed command sequence 62, and the address table 13 stores table data 63.

図6において、シーケンサ14は、生成した或いは投入されたデータクロックに従い、実際にALU[1]〜ALU[3]にコマンドを投入するタイミングを決定する。上述してきたタイミングT1、T2、・・・は、実際にはシーケンサ14によって定められる。シーケンサ14の後段にアドレステーブル13が設けられ、シーケンサ14の指示に従ってアドレステーブル13からテーブルデータ63内のアドレスが順次、コマンドRAM12に供給される。コマンドRAM12は、アドレステーブル13から指定されたアドレスに格納されたデータ(即ち、コマンド)を、順次、ALU[1]〜ALU[3]に供給する。   In FIG. 6, the sequencer 14 determines the timing at which commands are actually input to ALU [1] to ALU [3] according to the generated or input data clock. The timings T1, T2,... Described above are actually determined by the sequencer 14. An address table 13 is provided after the sequencer 14, and addresses in the table data 63 are sequentially supplied from the address table 13 to the command RAM 12 in accordance with instructions from the sequencer 14. The command RAM 12 sequentially supplies data (that is, commands) stored at addresses designated from the address table 13 to ALU [1] to ALU [3].

具体的には、タイミングT1において、シーケンサ14は、テーブルデータ63の先頭データ、即ち、アドレスA0をアドレステーブル13に出力させる。この出力されたアドレスA0を受け、コマンドRAM12は、自身のアドレスA0に格納されたコマンドをALU[1]〜ALU[3]に供給する。今の例の場合、図3の合成コマンド群65をALU[1]〜ALU[3]に供給する。   Specifically, at the timing T1, the sequencer 14 causes the head data of the table data 63, that is, the address A0 to be output to the address table 13. In response to the output address A0, the command RAM 12 supplies the command stored at its own address A0 to ALU [1] to ALU [3]. In the case of the present example, the composite command group 65 of FIG. 3 is supplied to ALU [1] to ALU [3].

タイミングT1の次のタイミングT2には、シーケンサ14は、テーブルデータ63の先頭データの次のデータ、即ち、アドレスA0をアドレステーブル13に出力させ、これを受けてコマンドRAM12は、自身のアドレスA0に格納されたコマンドをALU[1]〜ALU[3]に供給する。タイミングT3以降も同様であり、タイミングT3、T4、T5、・・・において、アドレステーブル13は、夫々、アドレスA0、A1、A1、・・・をコマンドRAM12に指定する。   At the timing T2 next to the timing T1, the sequencer 14 outputs the data next to the head data of the table data 63, that is, the address A0, to the address table 13, and the command RAM 12 receives the data at the address A0. The stored command is supplied to ALU [1] to ALU [3]. The same applies to the timing T3 and thereafter, and at the timing T3, T4, T5,..., The address table 13 designates the addresses A0, A1, A1,.

これにより、上述の如く、タイミングT1〜T3の夫々において、ALU[1]にはコマンドD1が供給され、ALU[2]にはコマンドD2が供給され、ALU[3]にはコマンドD3が供給される。また、タイミングT4及びT5の夫々において、ALU[1]にはコマンドD6が供給され、ALU[2]にはコマンドD4が供給され、ALU[3]にはコマンドD5が供給される。   Thus, as described above, at each of the timings T1 to T3, the command D1 is supplied to ALU [1], the command D2 is supplied to ALU [2], and the command D3 is supplied to ALU [3]. The Further, at each of timings T4 and T5, a command D6 is supplied to ALU [1], a command D4 is supplied to ALU [2], and a command D5 is supplied to ALU [3].

[圧縮コマンド列の生成手法]
図2の元コマンド列61から生成される図3の圧縮コマンド列62を圧縮コマンド列の例として挙げ、これを参照して本実施形態に係る並列処理システム1の動作の説明を行ったが、ここで、図5の圧縮部4による圧縮コマンド列の生成手法について更なる説明を加える。
[Compression command generation method]
The compression command sequence 62 of FIG. 3 generated from the original command sequence 61 of FIG. 2 is given as an example of the compression command sequence, and the operation of the parallel processing system 1 according to the present embodiment has been described with reference to this. Here, a further description will be given of a method for generating a compressed command string by the compression unit 4 of FIG.

圧縮コマンド列は、図3の合成コマンド群65及び66のような合成コマンド群を含んで構成されるが、この合成コマンド群の合成パターンには、大別して、3つの合成パターンがある。これを、以下に、第1、第2及び第3合成パターンとして説明する。   The compressed command string is configured to include synthetic command groups such as the synthetic command groups 65 and 66 in FIG. 3, and the synthetic patterns of the synthetic command groups are roughly divided into three synthetic patterns. This will be described below as first, second, and third synthesis patterns.

今、NOP以外のコマンド(有効コマンド)として、コマンドα及びβを定義する。コマンドαとβは、互いに内容(種類)の異なるコマンドである。例えば、コマンドαとβは、夫々、AND及びSUBである。但し、コマンドαとβは同じであっても構わない。   Now, commands α and β are defined as commands (valid commands) other than NOP. The commands α and β are commands having different contents (types). For example, the commands α and β are AND and SUB, respectively. However, the commands α and β may be the same.

また、ALU[1]〜ALU[3]に対するコマンドを記述したコマンド群として、図7に示すような、第1及び第2の合成対象コマンド群を定義する。本実施形態において、コマンド群とは、ALU[1]〜ALU[3]に対応する3つ分のコマンドを総称したものを意味する。   Also, first and second compositing target command groups as shown in FIG. 7 are defined as command groups describing commands for ALU [1] to ALU [3]. In the present embodiment, the command group means a generic name of three commands corresponding to ALU [1] to ALU [3].

第1の合成対象コマンド群は、コマンド[i,1]、[i,2]及び[i,3]から成り、第2の合成対象コマンド群は、コマンド[j,1]、[j,2]及び[j,3]から成る。元プログラム3内に表された元コマンド列が合計N個のタイミングについてのコマンドから構成されているとすると、i及びjは、1〜Nの間の各整数をとる。但し、i≠jである。例えば、第1及び第2の合成対象コマンド群は、夫々、図2のコマンド列61に含まれるタイミングT1及びT2に対応するコマンド群であって、元コマンド列61に内包される。   The first compositing target command group includes commands [i, 1], [i, 2], and [i, 3], and the second compositing target command group includes commands [j, 1], [j, 2]. ] And [j, 3]. Assuming that the original command sequence represented in the original program 3 is composed of commands for a total of N timings, i and j take each integer between 1 and N. However, i ≠ j. For example, the first and second compositing target command groups are command groups corresponding to the timings T1 and T2 included in the command sequence 61 of FIG. 2 and are included in the original command sequence 61, respectively.

コマンド[i,1]、[i,2]及び[i,3]は、夫々、ALU[1]、ALU[2]及びALU[3]に対応するコマンドであり、コマンド[j,1]、[j,2]及び[j,3]は、夫々、ALU[1]、ALU[2]及びALU[3]に対応するコマンドである。 The commands [i, 1], [i, 2] and [i, 3] are commands corresponding to ALU [1], ALU [2] and ALU [3], respectively, and the commands [j, 1], [J, 2] and [j, 3] are commands corresponding to ALU [1], ALU [2], and ALU [3], respectively.

―――第1合成パターン(図8)―――
図8は、第1合成パターンを説明するための図である。図8において、第1の合成対象コマンド群81におけるコマンド[i,1]、[i,2]及び[i,3]は、夫々、コマンドα、NOP及びNOPであり、第2の合成対象コマンド群82におけるコマンド[j,1]、[j,2]及び[j,3]は、夫々、コマンドNOP、β及びNOPである。
――― First synthesis pattern (Fig. 8) ―――
FIG. 8 is a diagram for explaining the first synthesis pattern. In FIG. 8, commands [i, 1], [i, 2] and [i, 3] in the first synthesis target command group 81 are the commands α, NOP and NOP, respectively, and the second synthesis target command. Commands [j, 1], [j, 2] and [j, 3] in group 82 are commands NOP, β and NOP, respectively.

圧縮部4は、「m=1、2及び3の夫々に関し、第1の合成対象コマンド群81内のコマンド[i,m]と第2の合成対象コマンド群82内のコマンド[j,m]の2つのコマンドを参照し、その2つのコマンドの少なくとも一方がNOPであるか」を判定する。   The compression unit 4 reads “command [i, m] in the first compositing target command group 81 and command [j, m] in the second compositing target command group 82 for each of m = 1, 2, and 3. The at least one of the two commands is a NOP ”.

そして、その判定の結果、「m=1、2及び3の全てについて、上記2つのコマンドの少なくとも一方がNOPである」という条件(この条件を、「第1合成条件」という)が満たされた場合、第1及び第2の合成対象コマンド群81及び82を合成して、合成コマンド群83を生成する。   As a result of the determination, a condition that “at least one of the two commands is NOP for all m = 1, 2, and 3” (this condition is referred to as “first synthesis condition”) is satisfied. In this case, the first and second synthesis target command groups 81 and 82 are synthesized to generate a synthesis command group 83.

図8の例の場合、
m=1に関し、コマンド[i,1]とコマンド[j,1]に対応する2つのコマンドは、α及びNOPであり、NOPを含んでいる。加えて、
m=2に関し、コマンド[i,2]とコマンド[j,2]に対応する2つのコマンドは、NOP及びβであり、NOPを含んでいる。加えて、
m=3に関し、コマンド[i,3]とコマンド[j,3]に対応する2つのコマンドは、NOP及びNOPであり、NOPを含んでいる。
このため、第1合成条件は満たされ、合成コマンド群83が生成される。
In the example of FIG.
Regarding m = 1, the two commands corresponding to the command [i, 1] and the command [j, 1] are α and NOP, and include NOP. in addition,
Regarding m = 2, the two commands corresponding to the command [i, 2] and the command [j, 2] are NOP and β, and include NOP. in addition,
Regarding m = 3, the two commands corresponding to the command [i, 3] and the command [j, 3] are NOP and NOP, and include NOP.
For this reason, the first synthesis condition is satisfied and a synthesis command group 83 is generated.

合成コマンド群83は、第1及び第2の合成対象コマンド群81及び82内の同一のALU[m]に対応するコマンド同士を合成することにより生成される。この際、m=1、2及び3の夫々に関し、合成される2つのコマンドの中にNOP以外の有効コマンドが含まれる場合は、その有効コマンドを合成後のコマンドとし、合成される2つのコマンドの双方がNOPである場合は、NOPを合成後のコマンドとする。   The synthesis command group 83 is generated by synthesizing commands corresponding to the same ALU [m] in the first and second synthesis target command groups 81 and 82. At this time, for each of m = 1, 2, and 3, if the effective command other than NOP is included in the two commands to be combined, the effective command is used as the post-synthesis command, and the two commands to be combined If both are NOPs, NOP is used as a command after synthesis.

この結果、合成コマンド群83は、ALU[1]、ALU[2]及びALU[3]に対応するコマンドが、夫々、コマンドα、β及びNOPであることを示すコマンド群となる。   As a result, the combined command group 83 becomes a command group indicating that the commands corresponding to ALU [1], ALU [2], and ALU [3] are the commands α, β, and NOP, respectively.

この合成コマンド群83を、例えば、そのまま、圧縮コマンド列に格納することも可能である。実際には、この合成コマンド群83を新たに第1の合成対象コマンド群と取り扱って、更に合成を試みる。例えば、合成コマンド群83を図9に示す如く第1の合成対象コマンド群として取り扱い、それと、コマンド[j,1]、[j,2]及び[j,3]が、夫々、NOP、NOP及びγの第2の合成対象コマンド群との合成を試みる。これらは、上記の第1合成条件を満たすため合成される。   The composite command group 83 can be stored in the compressed command string as it is, for example. Actually, the synthesis command group 83 is newly treated as the first synthesis target command group, and further synthesis is attempted. For example, the synthesis command group 83 is handled as a first synthesis target command group as shown in FIG. 9, and the commands [j, 1], [j, 2] and [j, 3] are respectively NOP, NOP and An attempt is made to combine γ with the second compositing target command group. These are synthesized to satisfy the first synthesis condition.

―――第2合成パターン(図10)―――
図10は、第2合成パターンを説明するための図である。図10において、第1の合成対象コマンド群84におけるコマンド[i,1]、[i,2]及び[i,3]は、夫々、コマンドα、β及びNOPであり、第2の合成対象コマンド群85におけるコマンド[j,1]、[j,2]及び[j,3]も、夫々、コマンドα、β及びNOPである。
――― Second synthesis pattern (Fig.10) ―――
FIG. 10 is a diagram for explaining the second synthesis pattern. In FIG. 10, commands [i, 1], [i, 2] and [i, 3] in the first synthesis target command group 84 are commands α, β and NOP, respectively, and the second synthesis target command. Commands [j, 1], [j, 2] and [j, 3] in group 85 are also commands α, β and NOP, respectively.

圧縮部4は、「m=1、2及び3の夫々に関し、第1の合成対象コマンド群84内のコマンド[i,m]と第2の合成対象コマンド群85内のコマンド[j,m]の2つのコマンドを参照し、その2つのコマンドが同じ内容(種類)のコマンドであるか」を判定する。   The compression unit 4 reads “command [i, m] in the first compositing target command group 84 and command [j, m] in the second compositing target command group 85 for each of m = 1, 2, and 3. The two commands are referred to, and it is determined whether or not the two commands have the same content (type).

そして、その判定の結果、「m=1、2及び3の全てについて、上記2つのコマンドが同じ内容(種類)のコマンドである」という条件(この条件を、「第2合成条件」という)が満たされた場合、第1及び第2の合成対象コマンド群84及び85を合成して、合成コマンド群86を生成する。   As a result of the determination, a condition that “the two commands are commands having the same content (type) for all m = 1, 2, and 3” (this condition is referred to as “second synthesis condition”). When satisfied, the first and second compositing target command groups 84 and 85 are synthesized to generate a synthesized command group 86.

図10の例の場合、
m=1に関し、コマンド[i,1]とコマンド[j,1]に対応する2つのコマンドは、共にコマンドαである。加えて、
m=2に関し、コマンド[i,2]とコマンド[j,2]に対応する2つのコマンドは、共にコマンドβである。加えて、
m=3に関し、コマンド[i,3]とコマンド[j,3]に対応する2つのコマンドは、共にNOPである。
このため、第2パターン合成条件は満たされ、合成コマンド群86が生成される。
In the example of FIG.
Regarding m = 1, the two commands corresponding to the command [i, 1] and the command [j, 1] are both commands α. in addition,
Regarding m = 2, the two commands corresponding to the command [i, 2] and the command [j, 2] are both commands β. in addition,
Regarding m = 3, the two commands corresponding to the command [i, 3] and the command [j, 3] are both NOP.
For this reason, the second pattern synthesis condition is satisfied and a synthesis command group 86 is generated.

合成コマンド群86は、上述の第1合成パターンと同様、第1及び第2の合成対象コマンド群84及び85内の同一のALU[m]に対応するコマンド同士を合成することにより生成される。第2合成条件を満たしているのであるから、単に、第1及び第2の合成対象コマンド群84及び85の何れか一方を、そのまま、合成コマンド群86として取り扱えばよい。今の例の場合、結果的に、合成コマンド群86は、図8の合成コマンド群83と同じものとなる。   The synthesized command group 86 is generated by synthesizing commands corresponding to the same ALU [m] in the first and second synthesis target command groups 84 and 85, as in the first synthesis pattern described above. Since the second synthesis condition is satisfied, any one of the first and second synthesis target command groups 84 and 85 may be handled as the synthesis command group 86 as it is. In the present example, as a result, the composite command group 86 is the same as the composite command group 83 of FIG.

この合成コマンド群86を、例えば、そのまま、圧縮コマンド列に格納することも可能である。実際には、上述の第1合成パターンで説明したように、この合成コマンド群86を新たに第1の合成対象コマンド群と取り扱って、更に、他のコマンド群との合成を試みる。   The composite command group 86 can be stored in the compressed command string as it is, for example. Actually, as described in the above-described first synthesis pattern, this synthesis command group 86 is newly handled as the first synthesis target command group, and further synthesis with another command group is attempted.

―――第3合成パターン(図11)―――
図11は、第3合成パターンを説明するための図である。図11において、第1の合成対象コマンド群87におけるコマンド[i,1]、[i,2]及び[i,3]は、夫々、コマンドα、β及びNOPであり、第2の合成対象コマンド群88におけるコマンド[j,1]、[j,2]及び[j,3]は、夫々、コマンドNOP、β及びNOPである。第3合成パターンは、上述の第1及び第2合成パターンを組み合わせたものに相当する。
――― Third synthesis pattern (Fig.11) ―――
FIG. 11 is a diagram for explaining the third synthesis pattern. In FIG. 11, commands [i, 1], [i, 2] and [i, 3] in the first synthesis target command group 87 are commands α, β and NOP, respectively, and the second synthesis target command. Commands [j, 1], [j, 2] and [j, 3] in group 88 are commands NOP, β and NOP, respectively. The third synthesis pattern corresponds to a combination of the first and second synthesis patterns described above.

圧縮部4は、「m=1、2及び3の夫々に関し、第1の合成対象コマンド群87内のコマンド[i,m]と第2の合成対象コマンド群88内のコマンド[j,m]の2つのコマンドを参照し、その2つのコマンドの少なくとも一方がNOPであるか、或いは、その2つのコマンドが同じ内容(種類)のコマンドであるか」を判定する。   The compression unit 4 reads “command [i, m] in the first compositing target command group 87 and command [j, m] in the second compositing target command group 88 for each of m = 1, 2, and 3. The at least one of the two commands is NOP, or whether the two commands are commands having the same content (type).

そして、その判定の結果、「m=1、2及び3の全てについて、上記2つのコマンドの少なくとも一方がNOPである、或いは、上記2つのコマンドが同じ内容(種類)のコマンドである」という条件(この条件を、「第3合成条件」という)が満たされた場合、第1及び第2の合成対象コマンド群87及び88を合成して、合成コマンド群89を生成する。   As a result of the determination, a condition that “for all m = 1, 2 and 3, at least one of the two commands is a NOP, or the two commands are commands having the same content (type)”. When this condition is referred to as “third synthesis condition”, the first and second synthesis target command groups 87 and 88 are synthesized to generate a synthesis command group 89.

図11の例の場合、
m=1に関し、コマンド[i,1]とコマンド[j,1]に対応する2つのコマンドは、α及びNOPであり、NOPを含んでいる。加えて、
m=2に関し、コマンド[i,2]とコマンド[j,2]に対応する2つのコマンドは、共にコマンドβである。加えて、
m=3に関し、コマンド[i,3]とコマンド[j,3]に対応する2つのコマンドは、共にNOPである。
このため、第3パターン合成条件は満たされ、合成コマンド群89が生成される。
In the case of the example of FIG.
Regarding m = 1, the two commands corresponding to the command [i, 1] and the command [j, 1] are α and NOP, and include NOP. in addition,
Regarding m = 2, the two commands corresponding to the command [i, 2] and the command [j, 2] are both commands β. in addition,
Regarding m = 3, the two commands corresponding to the command [i, 3] and the command [j, 3] are both NOP.
For this reason, the third pattern synthesis condition is satisfied and a synthesis command group 89 is generated.

合成コマンド群89は、上述の第1合成パターンと同様、第1及び第2の合成対象コマンド群87及び88内の同一のALU[m]に対応するコマンド同士を合成することにより生成される。この際、m=1、2及び3の夫々に関し、合成される2つのコマンドの中にNOP以外の有効コマンドが含まれる場合は、その有効コマンドを合成後のコマンドとし、合成される2つのコマンドの双方がNOPである場合は、NOPを合成後のコマンドとし、合成される2つのコマンドの双方が同じ内容の有効コマンドである場合は、その有効コマンドを合成後のコマンドとする。今の例の場合、結果的に、合成コマンド群89は、図8の合成コマンド群83と同じものとなる。   The synthesized command group 89 is generated by synthesizing commands corresponding to the same ALU [m] in the first and second synthesis target command groups 87 and 88 as in the first synthesis pattern described above. At this time, for each of m = 1, 2, and 3, if the effective command other than NOP is included in the two commands to be combined, the effective command is used as the post-synthesis command, and the two commands to be combined If both are NOPs, NOP is a command after synthesis, and if both of the two commands to be synthesized are valid commands having the same contents, the valid command is taken as a command after synthesis. In the case of the present example, as a result, the composite command group 89 is the same as the composite command group 83 of FIG.

この合成コマンド群89を、例えば、そのまま、圧縮コマンド列に格納することも可能である。実際には、上述の第1合成パターンで説明したように、この合成コマンド群89を新たに第1の合成対象コマンド群と取り扱って、更に、他のコマンド群との合成を試みる。   The composite command group 89 can be stored in the compressed command string as it is, for example. Actually, as described in the above-described first synthesis pattern, this synthesis command group 89 is newly treated as the first synthesis target command group, and further synthesis with another command group is attempted.

[圧縮コマンド列の生成フロー]
次に、図5の圧縮部4による元コマンド列の圧縮手順について説明する。図12は、その圧縮手順を表すフローチャートである。
[Compression command generation flow]
Next, the compression procedure of the original command sequence by the compression unit 4 in FIG. 5 will be described. FIG. 12 is a flowchart showing the compression procedure.

まず、ステップS1において、図2の元コマンド列61のような元コマンド列内の、タイミングT1に対応するコマンド群(3つのコマンド)を第1の合成対象コマンド群とし、タイミングT2に対応するコマンド群(3つのコマンド)を第2の合成対象コマンド群とする。ステップS1の処理を終えるとステップS2に移行する。   First, in step S1, a command group (three commands) corresponding to the timing T1 in the original command sequence such as the original command sequence 61 in FIG. 2 is set as the first compositing target command group, and the command corresponding to the timing T2. Let the group (three commands) be the second compositing target command group. When the process of step S1 is completed, the process proceeds to step S2.

ステップS2では、第1及び第2の合成対象コマンド群に関し、上述の第1、第2及び第3合成条件の何れかを満たすかを判断する。第1、第2及び第3合成条件の何れかを満たす場合はステップS3に移行し(ステップS2のY)、満たさない場合はステップS5に移行する(ステップS2のN)。尚、第1合成条件を満たす場合にのみ、或いは、第2合成条件を満たす場合にのみ、或いは、第3合成条件を満たす場合にのみ、ステップS3に移行するように変形することも可能である。但し、圧縮効率を考えると、この変形を行わない方が望ましい。   In step S2, it is determined whether the first, second, and third synthesis conditions described above are satisfied for the first and second synthesis target command groups. If any of the first, second, and third synthesis conditions is satisfied, the process proceeds to step S3 (Y in step S2). If not satisfied, the process proceeds to step S5 (N in step S2). It should be noted that it is possible to modify the process so that the process proceeds to step S3 only when the first synthesis condition is satisfied, only when the second synthesis condition is satisfied, or only when the third synthesis condition is satisfied. . However, considering the compression efficiency, it is desirable not to perform this modification.

ステップS3では、上述の説明に従って第1及び第2の合成対象コマンド群を合成する。ステップS3を終えるとステップS4に移行する。   In step S3, the first and second synthesis target command groups are synthesized according to the above description. When step S3 is completed, the process proceeds to step S4.

ステップS4において、この合成によって得られる合成コマンド群を、新たに第1の合成対象コマンド群として設定する。ステップS4を終えるとステップS5に移行する。   In step S4, a synthesized command group obtained by this synthesis is newly set as a first synthesized object command group. When step S4 is completed, the process proceeds to step S5.

ステップS5では、現在の第1の合成対象コマンド群に対して、第2の合成対象コマンド群を設定することができるかが判断され、設定できる場合はステップS6に移行し(ステップS5のY)、設定できない場合はステップS7に移行する(ステップS5のN)。既に他のコマンド群と合成されているコマンド群は、第2の合成対象コマンド群として設定されない。また、現在の第1の合成対象コマンド群又はそれの基となるコマンド群との間で既にステップS2の判断処理がなされているコマンド群は、現在の第1の合成対象コマンド群との関係において、第2の合成対象コマンド群とはならない。   In step S5, it is determined whether the second compositing target command group can be set for the current first compositing target command group, and if it can be set, the process proceeds to step S6 (Y in step S5). If it cannot be set, the process proceeds to step S7 (N in step S5). A command group already synthesized with another command group is not set as the second synthesis target command group. In addition, the command group that has already been subjected to the determination process in step S2 with the current first compositing target command group or the command group that is the basis of the current compositing target command group has This is not the second compositing target command group.

ステップS6では、現在の第1の合成対象コマンド群との関係において、第2の合成対象コマンド群が設定され、ステップS2に戻る。この後、ステップS2以降の処理が繰り返される。   In step S6, the second compositing target command group is set in relation to the current first compositing target command group, and the process returns to step S2. Thereafter, the processing after step S2 is repeated.

ステップS7では、「元コマンド列の中にステップS3における合成処理を経ていない2以上のコマンド群が存在しており、且つ、その2以上のコマンド群の内、ステップS2による合成条件成立/不成立の判断がなされていないコマンド群の組み合わせがあるか」が判断される。そのような組み合わせがある場合は(ステップS7のY)ステップS8に移行して、その組み合わせを形成する2つのコマンド群を第1及び第2の合成対象コマンド群として設定し、ステップS2に戻る。一方、そのような組み合わせがない場合は(ステップS7のN)、図12に示す処理を終了する。   In step S7, “There are two or more command groups that have not undergone the synthesizing process in step S3 in the original command sequence, and among the two or more command groups, the synthesis condition is established / not established in step S2. It is determined whether there is a combination of commands that has not been determined. If there is such a combination (Y in step S7), the process proceeds to step S8, two command groups forming the combination are set as the first and second compositing target command groups, and the process returns to step S2. On the other hand, when there is no such combination (N of step S7), the process shown in FIG. 12 is complete | finished.

例えば、図13に示すような元コマンド列に対応する圧縮コマンド列を生成する場合を考える。この元コマンド列は、6つのタイミング分のコマンドを格納している。図13における元コマンド列内のタイミングT1、T2、T3、T4、T5及びT6に対応するコマンド群を、夫々、コマンド群91、92、93、94、95及び96と呼ぶ。   For example, consider a case where a compressed command string corresponding to the original command string as shown in FIG. 13 is generated. This original command sequence stores commands for six timings. Command groups corresponding to timings T1, T2, T3, T4, T5, and T6 in the original command sequence in FIG. 13 are referred to as command groups 91, 92, 93, 94, 95, and 96, respectively.

この場合、まず、コマンド群91と92がステップS3にて合成され、その後、ステップS6においてコマンド群93が新たに第2の合成コマンド群として設定される。しかし、コマンド群91と92の合成コマンド群とコマンド群93とは合成できないため、2回目のステップS2の判断はNoとなり、その後、ステップS6においてコマンド群94が新たに第2の合成コマンド群として設定される。そして、ステップS2及びS3を経てコマンド群91、92及び94は合成され、更なるステップS2〜S6のループ処理を経てステップS7に移行する。   In this case, first, command groups 91 and 92 are synthesized in step S3, and then command group 93 is newly set as a second synthesized command group in step S6. However, since the command group 91 and the command group 93 cannot be combined with the command group 93, the second determination in step S2 is No. After that, in step S6, the command group 94 is newly set as the second composite command group. Is set. Then, the command groups 91, 92, and 94 are synthesized through steps S2 and S3, and the process proceeds to step S7 through the loop processing of further steps S2 to S6.

そして、ステップS7及びS8の処理を経た後に、コマンド群93と96が合成され、コマンド群95がそのまま残存して、図12の処理は終了する。   Then, after the processes of steps S7 and S8, the command groups 93 and 96 are synthesized, the command group 95 remains as it is, and the process of FIG.

図14に、図13に示す元コマンド列を圧縮することによって生成された圧縮コマンド列を示す。このように、圧縮コマンド列には、合成コマンド群以外のコマンド群(非合成コマンド群;コマンド群95)も含まれうる。   FIG. 14 shows a compressed command sequence generated by compressing the original command sequence shown in FIG. As described above, the compressed command string may include a command group other than the synthesized command group (non-synthesized command group; command group 95).

尚、図12のフローチャート中に特に設けていないが、ステップS3の合成処理過程などにおいて、図6のアドレステーブル13に格納されるべきテーブルデータも生成されていく。   Although not particularly provided in the flowchart of FIG. 12, table data to be stored in the address table 13 of FIG. 6 is also generated in the synthesis process in step S3 and the like.

<<第2実施形態>>
上述の第1実施形態では、被制御対象としてALUを取り扱い、その被制御対象の動作を制御するための制御情報としてコマンドを取り扱った。第1実施形態に記載の構成及び手法は、並列に演算処理を行うALUに対してだけでなく、並列にデータ読み出し又はデータ書き込みを行う記憶手段などに対しても適用可能である。この記憶手段は、例えば、RAM及びROM(Read Only Memory)などの半導体メモリ、光ディスクなどの記録媒体である。
<< Second Embodiment >>
In the first embodiment described above, an ALU is handled as a controlled object, and a command is handled as control information for controlling the operation of the controlled object. The configuration and method described in the first embodiment can be applied not only to an ALU that performs arithmetic processing in parallel, but also to a storage unit that performs data reading or data writing in parallel. The storage means is, for example, a recording medium such as a semiconductor memory such as a RAM and a ROM (Read Only Memory), and an optical disk.

被制御対象がRAMである場合の実施形態を、第2実施形態として例示する。図15は、第2実施形態に係る集積回路2aの内部ブロック図である。集積回路2aは、図6の集積回路2に対応するものである。第2実施形態に係る並列処理システム(不図示)の全体的構成は、集積回路2を集積回路2aに置換した点で第1実施形態に係る並列処理システム1のそれと相違するが、他の点において両者は同様である。   An embodiment in which the controlled object is a RAM is illustrated as a second embodiment. FIG. 15 is an internal block diagram of the integrated circuit 2a according to the second embodiment. The integrated circuit 2a corresponds to the integrated circuit 2 of FIG. The overall configuration of a parallel processing system (not shown) according to the second embodiment is different from that of the parallel processing system 1 according to the first embodiment in that the integrated circuit 2 is replaced with an integrated circuit 2a. Both are the same.

図6と図15の比較からも分かるように、集積回路2aは、図6の集積回路2における並列処理回路11及びコマンドRAM12を夫々並列処理回路11a及びアドレスRAM12aに置換した構成となっており、その他の点において、集積回路2及び2aは同様である。   As can be seen from the comparison between FIG. 6 and FIG. 15, the integrated circuit 2a has a configuration in which the parallel processing circuit 11 and the command RAM 12 in the integrated circuit 2 of FIG. 6 are replaced with the parallel processing circuit 11a and the address RAM 12a, respectively. In other respects, the integrated circuits 2 and 2a are similar.

並列処理回路11aは、被制御対象としてのRAMを複数個備えている。具体的には、図15に示す如く、並列処理回路11aは、RAM[1]、RAM[2]及びRAM[3]を備えている。順次訪れる各タイミングにおいて、3つのRAM[1]〜RAM[3]に対し、同時に(即ち、並列に)アドレスを供給する必要がある。   The parallel processing circuit 11a includes a plurality of RAMs to be controlled. Specifically, as shown in FIG. 15, the parallel processing circuit 11a includes a RAM [1], a RAM [2], and a RAM [3]. It is necessary to supply addresses to the three RAMs [1] to [3] at the same time (that is, in parallel) at each timing.

RAM[m]は、供給されたアドレスに従い、そのアドレスに対応する自身のメモリ領域内の記憶データを読み出して出力する、或いは、そのアドレスに対応する自身のメモリ領域内に指示されたデータを書き込む(mは、1〜3の範囲内の各整数をとる)。従って、RAM[m]に供給されるアドレスは、データ読み出し又はデータ書き込みというRAM[m]の動作を制御するための制御情報と呼べる。   The RAM [m] reads out and outputs the stored data in its own memory area corresponding to the address according to the supplied address, or writes the designated data in its own memory area corresponding to the address. (M takes each integer within the range of 1-3). Therefore, the address supplied to the RAM [m] can be called control information for controlling the operation of the RAM [m] such as data reading or data writing.

第2実施形態は、基本的に、第1実施形態における「ALU」及び「コマンド」を、「RAM」及び「アドレス」に読み替えたものに相当し、第1実施形態にて述べた内容と同様の内容を全て第2実施形態に適用可能である。   The second embodiment basically corresponds to the “ALU” and “command” in the first embodiment replaced with “RAM” and “address”, and is the same as the contents described in the first embodiment. All the contents of can be applied to the second embodiment.

即ち、第2実施形態では、例えば、元プログラム3内に、RAM[1]〜RAM[3]に本来供給されるべきアドレスを列挙した図16のような元アドレス列71が表されている。元アドレス列71には、順次訪れるタイミングT1、T2、T3、T4、T5、・・・においてRAM[1]〜RAM[3]に供給すべきアドレスが記述されている。   That is, in the second embodiment, for example, in the original program 3, an original address column 71 as shown in FIG. 16 is listed in which addresses to be originally supplied to the RAM [1] to RAM [3] are listed. In the original address column 71, addresses to be supplied to the RAM [1] to the RAM [3] are described at the timings T1, T2, T3, T4, T5,.

元アドレス列71は、
“タイミングT1において、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスR1、XX、XXであること”、
“タイミングT2において、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスXX、R2、XXであること”、
“タイミングT3において、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスXX、XX、R3であること”、
“タイミングT4において、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスXX、R4、R5であること”、及び
“タイミングT5において、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスR6、XX、XXであること”
を規定している。
The original address column 71 is
“At timing T1, the addresses to be supplied to RAM [1], RAM [2], and RAM [3] are addresses R1, XX, and XX, respectively”.
“At timing T2, the addresses to be supplied to RAM [1], RAM [2], and RAM [3] are addresses XX, R2, and XX, respectively.”
“At timing T3, the addresses to be supplied to RAM [1], RAM [2], and RAM [3] are addresses XX, XX, and R3, respectively.”
“At timing T4, the addresses to be supplied to RAM [1], RAM [2], and RAM [3] are addresses XX, R4, and R5,” and “At timing T5, RAM [1], Addresses to be supplied to RAM [2] and RAM [3] are addresses R6, XX and XX, respectively. "
Is stipulated.

アドレスR1〜R6は、RAM(RAM[1]〜RAM[3]の何れか)に供給されるべきアドレスを指定するものである。アドレスXXは、そのタイミングにおけるRAMの動作が不要であることを示す、いわば無効アドレスである。全てのRAMが同時に動作する必要があるケースは比較的少なく、同一タイミングにおいては、一部のRAMのみが動作することが多い。このため、並列処理を行うためのプログラムには、元アドレス列71のように、無効アドレスに対応するアドレスXXが多く含まれる。   The addresses R1 to R6 designate addresses to be supplied to the RAM (any of RAM [1] to RAM [3]). The address XX is an invalid address indicating that the operation of the RAM at that timing is unnecessary. There are relatively few cases in which all RAMs need to operate simultaneously, and only some of the RAMs often operate at the same timing. For this reason, a program for performing parallel processing includes many addresses XX corresponding to invalid addresses as in the original address sequence 71.

第2実施形態において、圧縮部4は、アドレスXX(無効アドレス)を第1実施形態におけるNOP(無効コマンド)と同様に取り扱い、第1実施形態と同様、図16に示す元アドレス列71を圧縮して図17に示す圧縮アドレス列72を生成する。また、圧縮アドレス列72に対応したテーブルデータ(特定データ)も生成する。   In the second embodiment, the compression unit 4 handles the address XX (invalid address) in the same manner as the NOP (invalid command) in the first embodiment, and compresses the original address string 71 shown in FIG. 16 as in the first embodiment. Thus, the compressed address string 72 shown in FIG. 17 is generated. Further, table data (specific data) corresponding to the compressed address column 72 is also generated.

圧縮アドレス列72は、タイミングT1〜T3における各アドレスを1つにまとめた合成アドレス群75と、タイミングT4及びT5における各アドレスを1つにまとめた合成アドレス群76と、を含んで構成される。上記テーブルデータは、「RAM[m]に対して、どのタイミングにアドレスRAM12a内のどのアドレスの格納データ(RAM[m]用のアドレス)を供給するのか」を特定する。   The compressed address string 72 includes a combined address group 75 in which the addresses at timings T1 to T3 are combined into one, and a combined address group 76 in which the addresses at timings T4 and T5 are combined into one. . The table data specifies “at which timing storage data (address for RAM [m]) in the address RAM 12 a is supplied to RAM [m]”.

圧縮アドレス列72はアドレスRAM12aに格納され、そのテーブルデータはアドレステーブル13に格納される。アドレスRAM12aは、記憶する内容がコマンドでなくアドレスになっただけで、図6のコマンドRAM12と同様のものである。   The compressed address string 72 is stored in the address RAM 12 a and the table data is stored in the address table 13. The address RAM 12a is the same as the command RAM 12 of FIG. 6 except that the stored contents are addresses instead of commands.

そして、アドレスRAM12aは、シーケンサ14の制御の下、アドレステーブル13からの出力値に従い、タイミングT1〜T3の夫々において、RAM[1]にアドレスR1を供給し、RAM[2]にアドレスR2を供給し、RAM[3]にアドレスR3を供給する。また、タイミングT4及びT5の夫々において、RAM[1]にアドレスR6を供給し、RAM[2]にアドレスR4を供給し、RAM[3]にアドレスR5を供給する。   Then, under the control of the sequencer 14, the address RAM 12a supplies the address R1 to the RAM [1] and the address R2 to the RAM [2] at each of the timings T1 to T3 according to the output value from the address table 13. Then, the address R3 is supplied to the RAM [3]. At timings T4 and T5, the address R6 is supplied to the RAM [1], the address R4 is supplied to the RAM [2], and the address R5 is supplied to the RAM [3].

或るRAMに関し、或るタイミングにおいて無効アドレス(アドレスXX)が定義されているということは、該タイミングにおいて該RAMの動作は不要であり、また、それ故に、該RAMの出力は何れの回路にも必要とされていないことを意味する。つまり、該タイミングにおいて該RAMの出力は何れの回路にも利用されない(換言すれば、何れの回路にも接続されない)。   The fact that an invalid address (address XX) is defined at a certain timing with respect to a certain RAM means that the operation of the RAM is not necessary at the timing, and therefore, the output of the RAM is not transmitted to any circuit. Also means that it is not needed. That is, at the timing, the output of the RAM is not used for any circuit (in other words, not connected to any circuit).

従って、RAM[m]からデータを読み出す場合においては、そのタイミングにおいて該RAMに他の任意のアドレス(有効アドレス)を供給し、そのアドレスに対応するデータを出力させるようにしても集積回路2a(及びそれを含む装置)の全体の動作に問題は生じない。また、RAM[m]にデータを書き込む制御を実行している場合においても、RAM[m]にデータ書き込みを許可するライトイネーブル信号を与えなければ、実際のデータ書き込みは行われない。故に、そのような場合においても、任意のアドレスを供給するようにしても問題は生じない。   Therefore, when data is read from the RAM [m], another arbitrary address (effective address) is supplied to the RAM at that timing, and data corresponding to the address is output. And the entire operation of the apparatus including the same does not cause a problem. Even when control for writing data to RAM [m] is executed, actual data writing is not performed unless a write enable signal for permitting data writing is given to RAM [m]. Therefore, even in such a case, there is no problem even if an arbitrary address is supplied.

尚、第1実施形態における“NOP”は、第2実施形態において、“XX”に読み替えられる。また、第1実施形態において第2及び第3合成条件を考える場合、上述したように、コマンドの内容の同一性が考慮される。第2実施形態において、上述の第2及び第3合成条件を考える場合は、同様にアドレスの内容の同一性が考慮される。“アドレスの内容”は、アドレスの値を意味する。仮に、アドレスR1とR6の内容が同じであり、且つ、アドレスR2とR4の内容が同じであり、且つ、アドレスR3とR5の内容が同じであるならば、第2合成条件が成立し、図17の合成アドレス群75と76を、1つにまとめることが可能である。   Note that “NOP” in the first embodiment is read as “XX” in the second embodiment. Further, when considering the second and third synthesis conditions in the first embodiment, as described above, the identity of the contents of the command is considered. In the second embodiment, when considering the above-described second and third synthesis conditions, the identity of the address contents is similarly considered. “Contents of address” means an address value. If the contents of the addresses R1 and R6 are the same, the contents of the addresses R2 and R4 are the same, and the contents of the addresses R3 and R5 are the same, the second synthesis condition is satisfied, and FIG. The 17 composite address groups 75 and 76 can be combined into one.

元アドレス列71を、アドレス供給用のアドレスRAMにそのまま格納するとアドレスRAMの必要メモリ領域が非常に大きくなってしまうのであるが、元アドレス列71を圧縮して圧縮アドレス列72を生成し、圧縮アドレス列72をアドレスRAM12aに格納するようにすれば、アドレスRAM12aの必要メモリ領域が縮小化される。この結果、アドレスRAM12aを含む集積回路2aのチップ面積の小型化及び低消費電力化が図られる。   If the original address string 71 is stored in the address supply address RAM as it is, the required memory area of the address RAM becomes very large. However, the original address string 71 is compressed to generate a compressed address string 72 and compressed. If the address string 72 is stored in the address RAM 12a, the necessary memory area of the address RAM 12a is reduced. As a result, the chip area and the power consumption of the integrated circuit 2a including the address RAM 12a can be reduced.

<<変形等>>
上述した各実施形態における並列処理システムの機能は、ハードウェアによって、ソフトウェアによって、或いは、それらの組み合わせによって、実現することが可能である。
<< Deformation, etc. >>
The functions of the parallel processing system in each of the embodiments described above can be realized by hardware, software, or a combination thereof.

尚、図6(又は図15)において、コマンドRAM12(又はアドレスRAM12a)、アドレステーブル13及びシーケンサ14は、被制御対象としてのALU[m](又はRAM[m])に制御情報としてのコマンド(又はアドレス)を供給する制御情報供給装置(制御情報伸張装置)として機能する。   In FIG. 6 (or FIG. 15), the command RAM 12 (or the address RAM 12a), the address table 13 and the sequencer 14 are configured to send a command (control information) to ALU [m] (or RAM [m]) as a controlled object. Or a control information supply device (control information decompression device) that supplies an address).

また、この制御情報供給装置(制御情報伸張装置)によって実行される機能を伸張プログラムとして記述し、該伸張プログラムをコンピュータ上で実行することによって、ALU[m](又はRAM[m])に、上述してきたコマンド(またはアドレス)を供給するようにしてもよい。   In addition, a function executed by the control information supply device (control information decompression device) is described as an decompression program, and the decompression program is executed on the computer, whereby ALU [m] (or RAM [m]) The command (or address) described above may be supplied.

また、第1実施形態において、コマンドNOP(無効コマンド)、元コマンド列61及び圧縮コマンド列62は、夫々、無効制御情報、元制御情報列及び圧縮制御情報列として機能する。また、コマンドNOP以外のコマンド(有効コマンド;図2のD1等)は、有効制御情報として機能する。   In the first embodiment, the command NOP (invalid command), the original command string 61, and the compressed command string 62 function as invalid control information, an original control information string, and a compressed control information string, respectively. Further, commands other than the command NOP (valid command; D1 in FIG. 2) function as valid control information.

また、第2実施形態において、アドレスXX(無効アドレス)、元アドレス列71及び圧縮アドレス列72は、夫々、無効制御情報、元制御情報列及び圧縮制御情報列として機能する。また、アドレスXX以外のアドレス(有効アドレス;図16のR1等)は、有効制御情報として機能する。   In the second embodiment, the address XX (invalid address), the original address string 71, and the compressed address string 72 function as invalid control information, an original control information string, and a compressed control information string, respectively. Addresses other than the address XX (valid address; R1 in FIG. 16) function as valid control information.

また、第1及び第2実施形態において、供給制御手段は、主として、シーケンサ14にて形成される。   In the first and second embodiments, the supply control means is mainly formed by the sequencer 14.

本発明の第1実施形態に係る並列処理回路の内部ブロック図である。1 is an internal block diagram of a parallel processing circuit according to a first embodiment of the present invention. 図1の各ALUに本来供給すべきコマンドを記述した元コマンド列を表す図である。It is a figure showing the original command sequence which described the command which should be supplied to each ALU of FIG. 図2の元コマンド列から圧縮生成される圧縮コマンド列を表す図である。FIG. 3 is a diagram illustrating a compressed command sequence generated by compression from the original command sequence of FIG. 2. 図1の各ALUに実際に供給されるコマンドを表す図である。It is a figure showing the command actually supplied to each ALU of FIG. 本発明の第1実施形態に係る並列処理システムの全体構成ブロック図である。1 is an overall configuration block diagram of a parallel processing system according to a first embodiment of the present invention. 図5の集積回路の内部ブロック図である。FIG. 6 is an internal block diagram of the integrated circuit of FIG. 5. 図5の圧縮部によるコマンドの合成手法を説明するための図である。It is a figure for demonstrating the synthetic | combination method of the command by the compression part of FIG. 図5の圧縮部に適用される第1合成パターンを説明するための図である。It is a figure for demonstrating the 1st synthetic pattern applied to the compression part of FIG. 図5の圧縮部に適用される第1合成パターンを説明するための図である。It is a figure for demonstrating the 1st synthetic pattern applied to the compression part of FIG. 図5の圧縮部に適用される第2合成パターンを説明するための図である。It is a figure for demonstrating the 2nd synthetic | combination pattern applied to the compression part of FIG. 図5の圧縮部に適用される第3合成パターンを説明するための図である。It is a figure for demonstrating the 3rd synthetic | combination pattern applied to the compression part of FIG. 図5の圧縮部による元コマンド列の圧縮手順を表すフローチャートである。It is a flowchart showing the compression procedure of the original command sequence by the compression part of FIG. 図12のフローチャートの処理を具体的に説明するための図である。It is a figure for demonstrating the process of the flowchart of FIG. 図12のフローチャートの処理を具体的に説明するための図である。It is a figure for demonstrating the process of the flowchart of FIG. 本発明の第2実施形態に係る集積回路の内部ブロック図である。It is an internal block diagram of the integrated circuit which concerns on 2nd Embodiment of this invention. 図15の各RAMに本来供給すべきアドレスを記述した元アドレス列を表す図である。It is a figure showing the original address row | line | column describing the address which should originally be supplied to each RAM of FIG. 図16の元アドレス列から圧縮生成される圧縮アドレス列を表す図である。FIG. 17 is a diagram illustrating a compressed address string that is compressed and generated from the original address string of FIG. 16. 従来の並列処理回路に対して供給されるコマンドを表す図である。It is a figure showing the command supplied with respect to the conventional parallel processing circuit.

符号の説明Explanation of symbols

1 並列処理システム
2、2a 集積回路
3 元プログラム
4 圧縮部
11、11a 並列処理回路
12 コマンドRAM
13 アドレステーブル
14 シーケンサ
12a アドレスRAM
DESCRIPTION OF SYMBOLS 1 Parallel processing system 2, 2a Integrated circuit 3 Original program 4 Compression part 11, 11a Parallel processing circuit 12 Command RAM
13 Address table 14 Sequencer 12a Address RAM

Claims (3)

n個の被制御対象夫々の動作を制御するための制御情報を、各被制御対象に対し並列に且つ所定の供給タイミング毎に次々と、供給する制御情報供給装置において(nは2以上の整数)、
第i番目から第j番目(i、jは0<i<jを満たす整数)の複数の供給タイミングにおいて前記各被制御対象に供給される制御情報を、合成することによって得られるn個の制御情報から成る合成制御情報群を含んだ圧縮制御情報列を記憶する第1記憶手段と、
前記各被制御対象に、前記圧縮制御情報列に含まれる制御情報を供給する供給制御手段と、を備え、
前記供給制御手段は、前記複数の供給タイミングにおいて、共通して、前記合成制御情報群を前記n個の被制御対象に供給することを特徴とする制御情報供給装置。
In a control information supply apparatus that supplies control information for controlling the operation of each of the n controlled objects in parallel to each controlled object one after another at a predetermined supply timing (n is an integer of 2 or more) ),
N controls obtained by combining control information supplied to the controlled objects at a plurality of supply timings from the i-th to the j-th (i and j are integers satisfying 0 <i <j). First storage means for storing a compression control information sequence including a composite control information group consisting of information;
Supply control means for supplying control information included in the compression control information sequence to each controlled object,
The supply control means supplies the composite control information group to the n controlled objects in common at the plurality of supply timings.
当該制御情報供給装置は、各供給タイミングに各被制御対象に供給されるべき制御情報を前記圧縮制御情報列の中から特定するための特定データを記憶する第2記憶手段を更に備え、
前記供給制御手段は、前記特定データに基づいて、前記複数の供給タイミングにおいて、共通して、前記合成制御情報群を前記n個の被制御対象に供給することを特徴とする請求項1に記載の制御情報供給装置。
The control information supply device further includes second storage means for storing specific data for specifying control information to be supplied to each controlled object at each supply timing from the compression control information sequence,
2. The supply control unit according to claim 1, wherein the supply control unit supplies the combination control information group to the n controlled objects in common at the plurality of supply timings based on the specific data. Control information supply device.
前記圧縮制御情報列は、各供給タイミングに各被制御対象に対して供給されるべき制御情報を表す元制御情報列を基に生成され、
前記元制御情報列内の各制御情報は、動作が不要であることを示す無効制御情報または動作を指示する有効制御情報とに分類され、
前記複数の供給タイミングに含まれる各供給タイミングにおいて、個々の被制御対象に供給される制御情報を、第1、第2、・・・、第k制御情報とした場合、第1〜第k制御情報は、同一の内容の有効制御情報及び無効制御情報の少なくとも一方のみを含む(kは2以上の整数)ことを特徴とする請求項1または請求項2に記載の制御情報供給装置。
The compression control information sequence is generated based on an original control information sequence representing control information to be supplied to each controlled object at each supply timing,
Each control information in the original control information sequence is classified into invalid control information indicating that no action is required or valid control information indicating an action,
When the control information supplied to each controlled object is the first, second,..., Kth control information at each of the supply timings included in the plurality of supply timings, the first to kth controls. 3. The control information supply apparatus according to claim 1, wherein the information includes at least one of valid control information and invalid control information having the same contents (k is an integer of 2 or more).
JP2006145162A 2006-05-25 2006-05-25 Control information supply device Expired - Fee Related JP4646853B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006145162A JP4646853B2 (en) 2006-05-25 2006-05-25 Control information supply device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006145162A JP4646853B2 (en) 2006-05-25 2006-05-25 Control information supply device

Publications (2)

Publication Number Publication Date
JP2007316900A JP2007316900A (en) 2007-12-06
JP4646853B2 true JP4646853B2 (en) 2011-03-09

Family

ID=38850710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006145162A Expired - Fee Related JP4646853B2 (en) 2006-05-25 2006-05-25 Control information supply device

Country Status (1)

Country Link
JP (1) JP4646853B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000081982A (en) * 1998-09-04 2000-03-21 Matsushita Electric Ind Co Ltd Compiler, processor and recording medium
JP2004062280A (en) * 2002-07-25 2004-02-26 Hitachi Ltd Semiconductor integrated circuit
JP2005251210A (en) * 2005-03-16 2005-09-15 Matsushita Electric Ind Co Ltd Processor and recording medium
JP2006072961A (en) * 2004-08-04 2006-03-16 Yaskawa Electric Corp Memory circuit for arithmetic processing unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000081982A (en) * 1998-09-04 2000-03-21 Matsushita Electric Ind Co Ltd Compiler, processor and recording medium
JP2004062280A (en) * 2002-07-25 2004-02-26 Hitachi Ltd Semiconductor integrated circuit
JP2006072961A (en) * 2004-08-04 2006-03-16 Yaskawa Electric Corp Memory circuit for arithmetic processing unit
JP2005251210A (en) * 2005-03-16 2005-09-15 Matsushita Electric Ind Co Ltd Processor and recording medium

Also Published As

Publication number Publication date
JP2007316900A (en) 2007-12-06

Similar Documents

Publication Publication Date Title
JP6017034B2 (en) Method and system for handling data received by a state machine engine
Walker et al. Behavioral transformation for algorithmic level IC design
TWI569206B (en) Results generation for state machine engines
JP2006146953A (en) Processor, system lsi, design method of system lsi, and recording medium with the same recorded thereon
JPH1185512A (en) Data processor having instruction compression storage and instruction restoration function
JP2007034887A (en) Method and apparatus for automatically creating shift register file for high-level synthesis compiler
JPS6252392B2 (en)
JP4876051B2 (en) Image processing apparatus and control method thereof
JP4646853B2 (en) Control information supply device
US5719592A (en) Image regeneration device
JP4646854B2 (en) Control information supply device
US20090167346A1 (en) Reconfigurable circuit, configuration method and program
JP3837293B2 (en) SIMD type microprocessor having constant selection function
US6430726B1 (en) Logic circuit synthesizing method and logic synthesizing system
JP5205843B2 (en) Arithmetic processing device and arithmetic processing program
JPS60128572A (en) Output device
JPH04205069A (en) Image processor
JP4512334B2 (en) Bus bridge circuit
JP2563557Y2 (en) Bit arithmetic processing unit
JP4999361B2 (en) Processing equipment
JP2835082B2 (en) Logic circuit synthesizer
CN104641364A (en) LSI and method for producing LSI
JP2004258264A (en) Method and device for picture generation, and display device
JPWO2006121046A1 (en) Processor array, processor element complex, microinstruction controller and microinstruction control method
JP2007304818A (en) Image processor and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101022

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: 20101109

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees