JP4646853B2 - Control information supply device - Google Patents
Control information supply device Download PDFInfo
- 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
Links
Images
Landscapes
- Advance Control (AREA)
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
上記特許文献1に記載されている手法は、コマンドRAMの必要メモリ領域の削減に貢献するものであり、或る局面においては、有効に機能しうる。しかし、インデックスを格納するためのメモリが必要であることから、元のコマンドのビット数が少ない場合は、全データに対するインデックスのデータ量の割合が大きくなり、圧縮効果が下がってしまう。また、デコードの際、詰めて記載したデータを伸張する必要があり、伸張回路が大きくなって消費電力が増大してしまう。
The technique described in
また、並列演算を行う場合に着目して従来の問題点を説明したが、並列データ読み出し処理及び並列データ書き込み処理など、演算以外の処理を並列に行う場合においても、同様の問題は存在する。 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
図2の符号61は、順次訪れるタイミングT1、T2、T3、T4、T5、・・・において、図1のALU[1]〜ALU[3]の夫々に対して本来供給されるべきコマンドの内容を列挙したコマンド列を表している。以下、これを、元コマンド列61と呼ぶ。タイミングT1、T2、T3、T4、T5、・・・の順番で時間が進行する。以下、説明の具体化のため、元コマンド列61の記述内容を例に挙げつつ実施形態の説明を行う。
元コマンド列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
“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
コマンド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,
合成コマンド群65は、ALU[1]に供給すべきコマンドとしてのコマンドD1と、ALU[2]に供給すべきコマンドとしてのコマンドD2と、ALU[3]に供給すべきコマンドとしてのコマンドD3と、の3つのコマンドから成る。合成コマンド群66は、ALU[1]に供給すべきコマンドとしてのコマンドD6と、ALU[2]に供給すべきコマンドとしてのコマンドD4と、ALU[3]に供給すべきコマンドとしてのコマンドD5と、の3つのコマンドから成る。
The
合成コマンド群65及び66、並びに、図示されない他の合成コマンド群を併せたものを、圧縮コマンド列62と呼ぶ。但し、圧縮コマンド列62には、合成コマンド群以外のコマンド群(非合成コマンド群)も含まれうる。圧縮コマンド列の生成手法に関しては、後に更なる説明を加える。
A combination of the
圧縮コマンド列62は、後述する図6のコマンドRAM(Random Access Memory)12に格納される。そのコマンドRAM12におけるアドレスA0に合成コマンド群65が格納され、それの下位アドレス側のアドレスA1に合成コマンド群66が格納される。
The
コマンド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
そして、実際には図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
これにより、タイミング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
元コマンド列61には、例えば、タイミングT1のALU[2]へのコマンドとしてNOPが定義されていたのであるが、これに代えてコマンドD2を供給するようにしても、上述の如く問題は生じない。他のタイミング、他のALUに関しても同様である。
In the
元コマンド列61を、コマンド供給用のコマンドRAMにそのまま格納するとコマンドRAMの必要メモリ領域が非常に大きくなってしまうのであるが、元コマンド列61を圧縮して圧縮コマンド列62を生成し、圧縮コマンド列62をコマンドRAM12に格納するようにすれば、コマンドRAM12の必要メモリ領域が縮小化される。この結果、コマンドRAM12を含む集積回路(後述する図5の集積回路2)のチップ面積の小型化及び低消費電力化が図られる。
If the
[並列処理システムの構成]
次に、上述の考え方に基づいて構成された並列処理システムを説明する。図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
図6に、集積回路2の内部ブロック図を示す。集積回路2は、並列処理回路11、コマンドRAM12、アドレステーブル13及びシーケンサ14を有して構成される。集積回路2における並列処理回路11は、図1におけるそれと同じものである。
FIG. 6 shows an internal block diagram of the
並列処理回路11は、例えば、論理回路の再構成を可能とする機能を備えたリコンフィギャラブル回路であり、内部に四則演算や論理演算などを行う、被制御対象としてのALUを複数個、備えている。説明の具体化及び簡略化のため、上述の如く、並列処理回路11に含まれる3つのALU、即ち、ALU[1]、ALU[2]及びALU[3]に着目する。尚、実際には、例えば、並列処理を行う数10〜数100個程度のALU(不図示)が並列処理回路11に組み込まれ、そのALUの数に対応してコマンドRAM12及びアドレステーブル13は構成される。
The
3つのALU[1]〜ALU[3]は、並列処理を行うための並列処理回路11に組み込まれおり、3つのALU[1]〜ALU[3]には同時にコマンドが供給される必要がある。ここにおける「同時」とは、並列処理回路11の動作に支障がない程度の多少の時間的ずれを含む概念である。
The three ALU [1] to ALU [3] are incorporated in the
図5の元プログラム3内には、ALU[1]〜ALU[3]に本来供給されるべきコマンドを列挙した元コマンド列が表現されている。説明の具体化のため、この元コマンド列が、図2の元コマンド列61であるとして説明を行う。
In the
圧縮部4は、元コマンド列61を、圧縮しつつ集積回路2に供給可能なデータ形式に変換するコンパイラとして機能する。圧縮部4は、例えば、圧縮プログラムとして構成されており、その圧縮プログラムと図5の元プログラム3は、ハードディスク等の記録媒体に格納される。そして、圧縮部4(圧縮プログラム)は、該記録媒体の記憶内容を読み出し可能なコンピュータ(不図示)上で動作し、元コマンド列61を圧縮して図3に示すような圧縮コマンド列62を生成する。
The compression unit 4 functions as a compiler that converts the
尚、上記のコンピュータは、圧縮部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
圧縮部4によって生成された圧縮コマンド列62及びテーブルデータ63の内容は、夫々、図6の集積回路2の入力端子(不図示)を介して、コマンドRAM12及びアドレステーブル13に伝達される。コマンドRAM12は圧縮コマンド列62を記憶し、アドレステーブル13はテーブルデータ63を記憶する。
The contents of the
図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
具体的には、タイミングT1において、シーケンサ14は、テーブルデータ63の先頭データ、即ち、アドレスA0をアドレステーブル13に出力させる。この出力されたアドレスA0を受け、コマンドRAM12は、自身のアドレスA0に格納されたコマンドをALU[1]〜ALU[3]に供給する。今の例の場合、図3の合成コマンド群65をALU[1]〜ALU[3]に供給する。
Specifically, at the timing T1, the
タイミング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
これにより、上述の如く、タイミング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
圧縮コマンド列は、図3の合成コマンド群65及び66のような合成コマンド群を含んで構成されるが、この合成コマンド群の合成パターンには、大別して、3つの合成パターンがある。これを、以下に、第1、第2及び第3合成パターンとして説明する。
The compressed command string is configured to include synthetic command groups such as the
今、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
コマンド[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
圧縮部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
そして、その判定の結果、「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
図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
合成コマンド群83は、第1及び第2の合成対象コマンド群81及び82内の同一のALU[m]に対応するコマンド同士を合成することにより生成される。この際、m=1、2及び3の夫々に関し、合成される2つのコマンドの中にNOP以外の有効コマンドが含まれる場合は、その有効コマンドを合成後のコマンドとし、合成される2つのコマンドの双方がNOPである場合は、NOPを合成後のコマンドとする。
The
この結果、合成コマンド群83は、ALU[1]、ALU[2]及びALU[3]に対応するコマンドが、夫々、コマンドα、β及びNOPであることを示すコマンド群となる。
As a result, the combined
この合成コマンド群83を、例えば、そのまま、圧縮コマンド列に格納することも可能である。実際には、この合成コマンド群83を新たに第1の合成対象コマンド群と取り扱って、更に合成を試みる。例えば、合成コマンド群83を図9に示す如く第1の合成対象コマンド群として取り扱い、それと、コマンド[j,1]、[j,2]及び[j,3]が、夫々、NOP、NOP及びγの第2の合成対象コマンド群との合成を試みる。これらは、上記の第1合成条件を満たすため合成される。
The
―――第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
圧縮部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
そして、その判定の結果、「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
図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
合成コマンド群86は、上述の第1合成パターンと同様、第1及び第2の合成対象コマンド群84及び85内の同一のALU[m]に対応するコマンド同士を合成することにより生成される。第2合成条件を満たしているのであるから、単に、第1及び第2の合成対象コマンド群84及び85の何れか一方を、そのまま、合成コマンド群86として取り扱えばよい。今の例の場合、結果的に、合成コマンド群86は、図8の合成コマンド群83と同じものとなる。
The synthesized
この合成コマンド群86を、例えば、そのまま、圧縮コマンド列に格納することも可能である。実際には、上述の第1合成パターンで説明したように、この合成コマンド群86を新たに第1の合成対象コマンド群と取り扱って、更に、他のコマンド群との合成を試みる。
The
―――第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
圧縮部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
そして、その判定の結果、「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
図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
合成コマンド群89は、上述の第1合成パターンと同様、第1及び第2の合成対象コマンド群87及び88内の同一のALU[m]に対応するコマンド同士を合成することにより生成される。この際、m=1、2及び3の夫々に関し、合成される2つのコマンドの中にNOP以外の有効コマンドが含まれる場合は、その有効コマンドを合成後のコマンドとし、合成される2つのコマンドの双方がNOPである場合は、NOPを合成後のコマンドとし、合成される2つのコマンドの双方が同じ内容の有効コマンドである場合は、その有効コマンドを合成後のコマンドとする。今の例の場合、結果的に、合成コマンド群89は、図8の合成コマンド群83と同じものとなる。
The synthesized
この合成コマンド群89を、例えば、そのまま、圧縮コマンド列に格納することも可能である。実際には、上述の第1合成パターンで説明したように、この合成コマンド群89を新たに第1の合成対象コマンド群と取り扱って、更に、他のコマンド群との合成を試みる。
The
[圧縮コマンド列の生成フロー]
次に、図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
ステップ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
この場合、まず、コマンド群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,
そして、ステップS7及びS8の処理を経た後に、コマンド群93と96が合成され、コマンド群95がそのまま残存して、図12の処理は終了する。
Then, after the processes of steps S7 and S8, the
図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
図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
並列処理回路11aは、被制御対象としてのRAMを複数個備えている。具体的には、図15に示す如く、並列処理回路11aは、RAM[1]、RAM[2]及びRAM[3]を備えている。順次訪れる各タイミングにおいて、3つのRAM[1]〜RAM[3]に対し、同時に(即ち、並列に)アドレスを供給する必要がある。
The
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
元アドレス列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
“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
第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
圧縮アドレス列72は、タイミングT1〜T3における各アドレスを1つにまとめた合成アドレス群75と、タイミングT4及びT5における各アドレスを1つにまとめた合成アドレス群76と、を含んで構成される。上記テーブルデータは、「RAM[m]に対して、どのタイミングにアドレスRAM12a内のどのアドレスの格納データ(RAM[m]用のアドレス)を供給するのか」を特定する。
The
圧縮アドレス列72はアドレスRAM12aに格納され、そのテーブルデータはアドレステーブル13に格納される。アドレスRAM12aは、記憶する内容がコマンドでなくアドレスになっただけで、図6のコマンドRAM12と同様のものである。
The
そして、アドレス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
或る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
元アドレス列71を、アドレス供給用のアドレスRAMにそのまま格納するとアドレスRAMの必要メモリ領域が非常に大きくなってしまうのであるが、元アドレス列71を圧縮して圧縮アドレス列72を生成し、圧縮アドレス列72をアドレスRAM12aに格納するようにすれば、アドレスRAM12aの必要メモリ領域が縮小化される。この結果、アドレスRAM12aを含む集積回路2aのチップ面積の小型化及び低消費電力化が図られる。
If the
<<変形等>>
上述した各実施形態における並列処理システムの機能は、ハードウェアによって、ソフトウェアによって、或いは、それらの組み合わせによって、実現することが可能である。
<< 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
また、この制御情報供給装置(制御情報伸張装置)によって実行される機能を伸張プログラムとして記述し、該伸張プログラムをコンピュータ上で実行することによって、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
また、第2実施形態において、アドレスXX(無効アドレス)、元アドレス列71及び圧縮アドレス列72は、夫々、無効制御情報、元制御情報列及び圧縮制御情報列として機能する。また、アドレスXX以外のアドレス(有効アドレス;図16のR1等)は、有効制御情報として機能する。
In the second embodiment, the address XX (invalid address), the
また、第1及び第2実施形態において、供給制御手段は、主として、シーケンサ14にて形成される。
In the first and second embodiments, the supply control means is mainly formed by the
1 並列処理システム
2、2a 集積回路
3 元プログラム
4 圧縮部
11、11a 並列処理回路
12 コマンドRAM
13 アドレステーブル
14 シーケンサ
12a アドレスRAM
DESCRIPTION OF
13 Address table 14
Claims (3)
第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.
前記供給制御手段は、前記特定データに基づいて、前記複数の供給タイミングにおいて、共通して、前記合成制御情報群を前記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).
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)
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 |
-
2006
- 2006-05-25 JP JP2006145162A patent/JP4646853B2/en not_active Expired - Fee Related
Patent Citations (4)
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 |
---|---|---|
Walker et al. | Behavioral transformation for algorithmic level IC design | |
TW201423581A (en) | Results generation for state machine engines | |
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 | |
JPH10161868A (en) | Synchronous semiconductor memory device having macro instruction function and macro instruction storage and execution method | |
JP4646853B2 (en) | Control information supply device | |
JP2008204341A (en) | Interface composite device | |
JP4646854B2 (en) | Control information supply device | |
JP3837293B2 (en) | SIMD type microprocessor having constant selection function | |
US20080079459A1 (en) | Integrated circuit and input data controlling method for reconfigurable circuit | |
JP2003114914A (en) | Software/hardware cooperative design method | |
JP2001043251A (en) | Device and method for high-order synthesis and recording medium used for the same | |
JP2020131547A (en) | Image processing device, image formation apparatus and program | |
JPH07210545A (en) | Parallel processing processors | |
US6430726B1 (en) | Logic circuit synthesizing method and logic synthesizing system | |
JP5835498B2 (en) | LSI and LSI manufacturing method | |
JP5205843B2 (en) | Arithmetic processing device and arithmetic processing program | |
JP2006202329A (en) | Method for designing system lsi and recording medium storing the same | |
JP4512334B2 (en) | Bus bridge circuit | |
JPH0969119A (en) | Circuit designing device and its method | |
JP4999361B2 (en) | Processing equipment | |
JP2835082B2 (en) | Logic circuit synthesizer | |
CN110825464B (en) | Method and apparatus for providing data received by a state machine engine | |
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 |