JP2719676B2 - Parallel processing unit - Google Patents

Parallel processing unit

Info

Publication number
JP2719676B2
JP2719676B2 JP63140893A JP14089388A JP2719676B2 JP 2719676 B2 JP2719676 B2 JP 2719676B2 JP 63140893 A JP63140893 A JP 63140893A JP 14089388 A JP14089388 A JP 14089388A JP 2719676 B2 JP2719676 B2 JP 2719676B2
Authority
JP
Japan
Prior art keywords
branch
instruction
address
destination address
program counter
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
JP63140893A
Other languages
Japanese (ja)
Other versions
JPH01310444A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP63140893A priority Critical patent/JP2719676B2/en
Publication of JPH01310444A publication Critical patent/JPH01310444A/en
Application granted granted Critical
Publication of JP2719676B2 publication Critical patent/JP2719676B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION 【産業上の利用分野】[Industrial applications]

本発明は、並列演算処理装置に関する。 The present invention relates to a parallel processing device.

【従来の技術】[Prior art]

従来の並列演算処理装置においては、複数の演算器の
並列演算動作の実行中に、複数の演算器間で互に分岐条
件が異なって生ずる場合、これに応動することができな
い、という欠点を有していた。 よって、本発明は、複数の演算器の並列演算動作の実
行中に、複数の演算器間で互に分岐条件が異なって生ず
る場合でも、これに応動することができる、という新規
な並列演算処理装置を提案せんとするものである。
The conventional parallel operation processing device has a drawback that if a plurality of operation units have different branching conditions during execution of the parallel operation operation of the plurality of operation units, it cannot respond to this. Was. Therefore, the present invention provides a novel parallel operation processing that can cope with a case where a plurality of operation units have different branch conditions during the execution of the parallel operation operation of the plurality of operation units. The device is not proposed.

【実施例1】 次に、第1図〜第7図を伴って、本発明による並列演
算処理装置の実施例を述べよう。 第1図〜第7図に示す本発明による並列演算処理装置
は、従来の並列演算処理装置の場合と同様に、プログラ
ムカウンタ1(第7図)と、そのプログラムカウンタ1
から出力されるアドレスにもとずき、それが得られる毎
に、順次予定のアドレス及び命令を出力するプログラム
メモリ2(第7図)と、そのプログラムメモリ2から出
力される命令にもとずく演算動作をそれぞれ実行する複
数n個(以下、簡単のため、n=4として述べる)の演
算器P1〜P4(第4図)とを有する。 ここで、演算器P1〜P4は、次に述べる処理が行われる
ように、次に述べるように構成されている。 すなわち、以下、簡単のため、プログラムメモリ2か
ら、第8図に示すように、[A]、[B]………[K]
の一連の処理のためのアドレス〈A〉、〈B〉………
〈K〉と、命令A、B………Kとが出力されるととも
に、条件分岐用アドレス〈Br−0〉、〈Br−1〉………
〈Br−4〉と、条件分岐命令Br−0、Br−1、………Br
−4とが出力されるものとし、また、第9図に示すよう
に、演算器P1が[A]、[B]、[C]及び[D]の処
理を順次行い、演算器P2が[A]、[B]、[F]及び
[H]の処理を順次行い、演算器P3及びP4がともに
[A]、[I]及び[K]の処理を順次行うものとして
述べれば、次のとおりである。 まず、プログラムカウンタ1(第7図)から、第8
図に示すように、処理[A]のためのアドレス〈A〉が
出力される。 このとき、停止フラグメモリHM1、HM2、HM3及びHM
4(第4図)にそれぞれ記憶されている停止フラグF1、F
2、F3及びF4が、第8図に示すように、ともに2値表示
の「0」である。また、終了フラグメモリEM1、EM2、EM
3及びEM4(第3図)に記憶されている終了フラグEF1、E
F2、EF3及びEF4も、第8図に示すように、ともに2値表
示の「0」である。 このため、クロックパルス発生回路3(第7図)から
のクロックパルスCLが、ゲート回路HG1、HG2、HG3及びH
G4(第4図)をそれぞれ通って、演算器P1、P2、P3及び
P4にそれぞれ供給され、よって、演算器P1〜P4の全て
が、[A]の処理を行う。このとき、プログラムカウン
タ1の内容が、「1」だけインクリメントする。 次に、プログラムカウンタ1が、条件分岐命令Br−
0を出力すれば、演算器P1(i=1、2、3、4)が、
自身が分岐条件を満足するか否かを判断し、もし、分岐
条件を満足すると判断すれば、停止フラグF1を2値表示
の「1」で出力し、満足しないと判断すれば、停止フラ
グF1を2値表示の「0」で出力する。このため、演算器
P1及びP2がそれぞれ停止フラグF1及びF2を2値表示の
「0」で出力し、演算器P3及びP4がそれぞれ停止フラグ
F3及びF4を2値表示の「1」で出力する。 このようにして演算器P1、P2、P3及びP4がそれぞれ出
力する停止フラグF1、F2、F3及びF4は、それぞれオア回
路OR1、OR2、OR3及びOR4(第4図)を通じて、第8図に
示すように、停止フラグメモリHM1、HM2、HM3及びHM
4(第4図)に、それぞれ供給記憶される。 一方、停止フラグメモリHM1、HM2、HM3及びHM4に記憶
されている停止フラグF1、F2、F3及びF4が、ゲート回路
HG1、HG2、HG3及びHG4にそれぞれ供給される。 このため、クロックパルス発生回路3からのクロック
パルスCLが、演算器P1及びP2にはゲート回路HG1及びHG3
をそれぞれ通って供給されるが、演算器P3及びP4には供
給されないので、演算器P1及びP2が、演算動作を継続し
て行う状態になり、演算器P3及びP4が、演算動作を停止
する状態になる。 また、このとき、演算器P3及びP4から、条件分岐命令
Br−0が明記している分岐先アドレス〈I〉が、分岐先
アドレス記憶用レジスタR3及びR4(第2図)に、第8図
に示すように、ラッチされる。 次に、プログラムカウンタ1が、その内容を「1」
だけインクリメントし、アドレス〈B〉を、第8図に示
すように、出力する。このため、演算器P1及びP2のみ
が、[B]の処理を実行する。 次に、演算器P1及びP2が[B]の処理を実行し終っ
てから、プログラムカウンタ1が、条件分岐命令Br−1
を出力すれば、演算器P1及びP2が、自身が条件分岐命令
Br−1を満足するか否かを判断する。この場合、演算器
P1は、分岐条件を満足すると判断しないので、停止フラ
グF1を「1」で出力しないが、演算器P2は、分岐条件を
満足すると判断するので、停止フラグF2を「1」で出力
する。 このため、演算器P2には、クロックパルス発生回路3
からのクロックパルスCLが供給されなくなり、よって、
演算器P2が停止状態になる。 また、このとき、演算器P2から、分岐先アドレス
〈F〉が、分岐先アドレス記憶用レジスタR2に、第8図
に示すように、ラッチされる。 次に、プログラムカウンタ1が、その内容を「1」だ
けインクリメントし、アドレス〈C〉を出力する。 このため、演算器P1のみが、[C]の処理を実行す
る。 次に、プログラムカウンタ1から、条件分岐命令Br
−2が出力されれば、演算器P1が、自身が条件分岐命令
Br−2に明記される分岐条件を満足するか否かを判断す
る。この場合、演算器P1は、分岐条件を満足しないと判
断するので、停止フラグF1を「1」で出力しない。 このため、演算器P1は、停止状態にならない。 また、このとき、プログラムカウンタ1が、その内容
を「1」だけインクリメントし、アドレス〈D〉を出力
する。このため、演算器P1が[D]の処理を実行する。 以上のように動作してから、プログラムメモリ2か
ら、命令Dに明記している終了(エンド)命令が出力さ
れる。そして、その終了(エンド)命令が終了検出器D1
(第3図)によって検出され、その検出出力が、第8図
に示すように、終了フラグメモリEM1に、2値表示の
「1」で記憶される。 このため、停止フラグメモリHM1が、ゲート回路EG1
通じて、2値表示の「1」の内容にリセットされる。 このとき、排他的論理和回路EX2(第2図)の出力に
もとずき、ゲート回路RG2(第2図)を通じて、演算器P
2に対応している分岐先アドレス記憶用レジスタR2(第
2図)が選択され、その分岐先アドレス記憶用レジスタ
R2からの分岐先アドレス〈F〉が、プログラムカウンタ
1(第7図)に書込まれ、また、これと同時に、一致回
路CI2(第5図)が、ゲート回路RG′からの分岐先アド
レス〈F〉と、分岐先アドレス記憶用レジスタR2からの
分岐先アドレス〈F〉との一致をとり、その出力が、停
止フラグメモリHM2(第4図)を、ゲート回路EG1を通じ
て、2値表示の「0」の内容にリセットする。ここで、
排他的論理和回路EX1〜EX4、及びゲート回路RG1〜RG4
びRG′は、優先回路を構成している。また、一致回路CI
1〜CI4は、分岐先アドレスのビット数に応じた数の排他
的論理和回路REXと、アンド回路ANDとで構成されてい
る。 停止フラグメモリHM2が、上述したように、2値表示
の「0」の内容にリセットされれば、演算器P2におい
て、[F]の処理を開始する。 続いて、プログラムカウンタ1から、条件分岐命令
Br−3が出力されれば、演算器P2が、分岐条件を満足す
るか否かを判断する。この場合、演算器P2は、分岐条件
を満足すると判断するので、第8図に示すように、停止
フラグメモリHM2が2値表示の「1」の内容にセットさ
れ、また、分岐先アドレス記憶用レジスタR2に、条件分
岐命令Br−3に明記された分岐先アドレス〈H〉がラッ
チされる。 次に、上述した優先回路によって、演算器P2に対応
する分岐先アドレス記憶用レジスタR2が選択され、その
分岐先アドレス記憶用レジスタR2からの分岐先アドレス
〈H〉が、プログラムカウンタ1に書込まれる。 このとき、停止フラグメモリHM2が停止フラグF2
「1」で記憶した状態になり、演算器P2のみが動作状態
になる。 続いて、演算器P2が[H]の処理を実行し、その
[H]の処理が終了すれば、終了フラグメモリEM2が終
了フラグを「1」で記憶した状態になる。 このため、プログラムカウンタ1に、分岐先アドレス
〈I〉が書込まれ、一方、上述した一致回路CI3及びCI4
からの出力によって、停止フラグメモリHM3及びHM4が2
値表示の「0」の内容にリセットされ、演算器P3及びP4
が[I]の処理を実行する。 このようにして、演算器P3及びP4が[I]の処理を
実行し終れば、プログラムカウンタ1から条件分岐命令
Br−4が出力され、演算器P3及びP4が、自身が分岐条件
を満足するか否かを判断する。この場合、演算器P3及び
P4が分岐条件を満足すると判断するので、停止フラグメ
モリHM3及びHM4の停止フラグF3及びF4が、ともに「1」
になり、分岐先アドレス記憶用レジスタR3及びR4に、分
岐先アドレス〈K〉がラッチされる。 また、上述した優先回路によって、分岐先アドレス記
憶用レジスタR3が選択され、その分岐先アドレス記憶用
レジスタR3からの分岐先アドレス〈K〉が、プログラム
カウンタ1に書込まれ、一方、上述した一致回路CI3
びCI4からの出力により、停止フラグメモリHM3及びHM4
が2値表示の「1」の内容にリセットされ、このため、
演算器P3及びP4が、[K]の処理を実行する。 次に、終了(エンド)命令が終了検出器D3及びD4
よって検出されれば、終了フラグメモリEM3及びEM4がと
もに2値表示の「1」の内容にセットされ、ともに終了
フラグを2値表示の「1」で記憶した状態になり、ま
た、停止フラグメモリHM1〜HM4が2値表示の「1」の内
容にリセットされ、終了フラグメモリEM1〜EM4、及び分
岐先アドレス記憶用レジスタR1〜R4がリセットされ、原
状態に戻る。 上述したところから明らかなように、本発明による並
列演算処理装置によれば、複数の演算器P1〜P4による並
列演算動作の実行中に、複数の演算器P1〜P4間で、互に
異なる条件分岐が生じても、それを容易に実行させるこ
とができる。
Embodiment 1 Next, an embodiment of a parallel processing device according to the present invention will be described with reference to FIGS. The parallel processing device according to the present invention shown in FIGS. 1 to 7 has a program counter 1 (FIG. 7) and a program counter 1 as in the case of the conventional parallel processing device.
And a program memory 2 (FIG. 7) for sequentially outputting scheduled addresses and instructions, and an instruction output from the program memory 2 each time it is obtained. It has a plurality of n arithmetic units P 1 to P 4 (FIG. 4) (each of which is hereinafter referred to as n = 4 for simplicity) for executing arithmetic operations. Here, the computing unit P 1 to P 4, as described below processing is performed, is configured as described below. That is, for simplicity, [A], [B]... [K] from the program memory 2 as shown in FIG.
<A>, <B> for a series of processing of
<K> and instructions A, B... K are output, and conditional branch addresses <Br-0>, <Br-1>.
<Br-4> and conditional branch instructions Br-0, Br-1,... Br
Shall -4 and is output, also as shown in FIG. 9, the computing unit P 1 is [A], sequentially performs processing [B], [C] and [D], the calculator P 2 Describes that the processes of [A], [B], [F] and [H] are sequentially performed, and that the arithmetic units P 3 and P 4 sequentially perform the processes of [A], [I] and [K]. It is as follows. First, the program counter 1 (FIG. 7)
As shown in the figure, an address <A> for the process [A] is output. At this time, the stop flag memory HM 1, HM 2, HM 3 and HM
4 The stop flags F 1 and F stored in FIG.
2, F 3 and F 4, as shown in FIG. 8, a "0" in both the binary display. In addition, termination flag memory EM 1, EM 2, EM
3 and EM 4 (FIG. 3) end flags EF 1 , E
As shown in FIG. 8, F 2 , EF 3, and EF 4 are both binary display “0”. Therefore, the clock pulse CL from the clock pulse generation circuit 3 (FIG. 7) is applied to the gate circuits HG 1 , HG 2 , HG 3 and H
Through G 4 (FIG. 4), arithmetic units P 1 , P 2 , P 3 and
Are supplied to P 4, therefore, all of the arithmetic unit P 1 to P 4 performs a process of [A]. At this time, the content of the program counter 1 is incremented by “1”. Next, the program counter 1 determines that the conditional branch instruction Br-
If 0 is output, the arithmetic unit P 1 (i = 1, 2, 3, 4)
Itself determines whether or not to satisfy a branch condition, If it is determined that satisfies the branch condition, and outputs a stop flag F 1 to "1" in the binary display, whereas if the judgment is satisfied, the stop flag the F 1 to output "0" of the binary display. Therefore, the arithmetic unit
The P 1 and P 2 are respectively stopped flag F 1 and F 2 is output in "0" in the binary display, stop calculator P 3 and P 4 are each flag
F 3 and F 4 to output "1" of the binary display. In this way, the stop flags F 1 , F 2 , F 3, and F 4 output from the arithmetic units P 1 , P 2 , P 3, and P 4 are OR circuits OR 1 , OR 2 , OR 3, and OR 4, respectively. through (FIG. 4), as shown in FIG. 8, the stop flag memory HM 1, HM 2, HM 3 and HM
4 (FIG. 4). On the other hand, the stop flags F 1 , F 2 , F 3 and F 4 stored in the stop flag memories HM 1 , HM 2 , HM 3 and HM 4 correspond to the gate circuit.
HG 1, are supplied to the HG 2, HG 3 and HG 4. Thus, the clock pulse CL from a clock pulse generating circuit 3, the arithmetic unit P 1 and the gate circuits HG 1 and HG 3 to P 2
Are supplied to the computing units P 3 and P 4 , respectively.Therefore, the computing units P 1 and P 2 are in a state of continuing the computing operation, and the computing units P 3 and P 4 , The arithmetic operation stops. At this time, the arithmetic units P 3 and P 4, the conditional branch instruction
Branch address Br-0 is specified <I> is the branch target address storing register R 3 and R 4 (FIG. 2), as shown in FIG. 8, it is latched. Next, the program counter 1 sets the content to “1”.
Then, the address <B> is output as shown in FIG. Therefore, only the calculator P 1 and P 2 executes a process [B]. Then, after the end and executes the processing of the arithmetic unit P 1 and P 2 [B], the program counter 1, the conditional branch instruction Br-1
, The arithmetic units P 1 and P 2 use their own conditional branch instructions.
It is determined whether Br-1 is satisfied. In this case, the arithmetic unit
P 1, because is not determined that satisfies the branch condition, but does not output the stop flag F 1 to "1", the arithmetic unit P 2, since it is determined that satisfies the branch condition, a stop flag F 2 is "1" Output. Therefore, the arithmetic unit P 2, a clock pulse generating circuit 3
Clock pulse CL is not supplied from
Calculator P 2 is stopped. At this time, the arithmetic unit P 2, the branch destination address <F> is, the branch target address storing register R 2, as shown in FIG. 8, is latched. Next, the program counter 1 increments the content by “1” and outputs the address <C>. Therefore, only the operation unit P 1 executes the process of [C]. Next, from the program counter 1, the conditional branch instruction Br
If −2 is output, the arithmetic unit P 1 itself is a conditional branch instruction.
It is determined whether the branch condition specified in Br-2 is satisfied. In this case, the arithmetic unit P 1, since it is determined not to satisfy the branch condition, does not output the stop flag F 1 to "1". Therefore, the arithmetic unit P 1 is not in a stopped state. At this time, the program counter 1 increments its content by "1" and outputs the address <D>. Therefore, the arithmetic unit P 1 executes processing of [D]. After operating as described above, an end instruction specified in the instruction D is output from the program memory 2. And the end (end) instruction is the end detector D 1
Is detected by (FIG. 3), the detection output is as shown in FIG. 8, the end flag memory EM 1, stored displayed binary "1". Therefore, the stop flag memory HM 1, through the gate circuits EG 1, is reset to the contents of "1" in the binary display. At this time, based on the output of the exclusive OR circuit EX 2 (FIG. 2), the operation unit P is output through the gate circuit RG 2 (FIG. 2).
2. The branch destination address storage register R 2 (FIG. 2) corresponding to 2 is selected and the branch destination address storage register R 2 is selected.
The branch destination address <F> from R 2 is written into the program counter 1 (FIG. 7), and at the same time, the coincidence circuit CI 2 (FIG. 5) changes the branch destination from the gate circuit RG ′. The address <F> is matched with the branch destination address <F> from the branch destination address storage register R 2 , and the output is sent to the stop flag memory HM 2 (FIG. 4) through the gate circuit EG 1 . Reset to the contents of "0" in binary display. here,
An exclusive OR circuit EX 1 ~EX 4, and a gate circuit RG 1 ~RG 4 and RG 'constitute a priority circuit. Also, the matching circuit CI
1 to CI 4 are composed of exclusive OR circuits REX of a number corresponding to the number of bits of the branch destination address, and AND circuits AND. Stop flag memory HM 2, as described above, if it is reset to the content of "0" in the binary display, the calculator P 2, starts the process of [F]. Then, from the program counter 1, a conditional branch instruction
If br-3 is output, the arithmetic unit P 2 determines whether satisfies the branch condition. In this case, the arithmetic unit P 2, since it is determined that satisfies the branch condition, as shown in FIG. 8, is set to the contents of "1" in the stop flag memory HM 2 are binary display, also, the branch destination address in the storage register R 2, the branch destination address specified in the conditional branch instruction Br-3 <H> is latched. Then, by the above-described preference circuit, the branch destination address storage register R 2 corresponding to the arithmetic unit P 2 is selected, its branch address branch destination address from the storage register R 2 <H>, the program counter 1 Is written to. At this time, is ready for the stop flag memory HM 2 storing stop flag F 2 is "1", only the operation unit P 2 is operational. Subsequently, the computing unit P 2 executes the process of [H], if the processing is finished for the [H], a state where the end flag memory EM 2 stores an end flag "1". For this reason, the branch destination address <I> is written into the program counter 1, while the matching circuits CI 3 and CI 4 described above are written.
From the stop flag memories HM 3 and HM 4
It resets the contents of the "0" value display, calculator P 3 and P 4
Performs the process [I]. In this manner, the arithmetic unit P 3 and P 4 are After completion executes the processes of [I], a conditional branch instruction from the program counter 1
Br-4 is output, the arithmetic unit P 3 and P 4 are themselves determines whether satisfies the branch condition. In this case, the operator P 3 and
Since P 4 is determined to satisfy the branch condition, a stop flag F 3 and F 4 of the stop flag memory HM 3 and HM 4, are "1"
Becomes, the branch target address storing register R 3 and R 4, the branch destination address <K> is latched. Further, by the above-described preference circuit, the branch target address storing register R 3 is selected, the branch target address from branch target address storing register R 3 <K> is written into the program counter 1, whereas, above the output from the matching circuit CI 3 and CI 4 was, the stop flag memory HM 3 and HM 4
Is reset to the content of "1" in the binary display,
Calculator P 3 and P 4 executes the processing of the [K]. Then, if terminated (end) instruction is detected by the end detecting device D 3 and D 4, it is set to the contents of "1" in the completion flag memory EM 3 and EM 4 are both binary display, together end flag ready stored at "1" in the binary display, also, resets the stop flag memory HM 1 ~HM 4 is the contents of "1" in the binary display, end flag memory EM 1 ~EM 4, and the branch destination address storing register R 1 to R 4 is reset and returns to the original state. As apparent from the above, according to the parallel processing apparatus according to the present invention, during execution of a parallel arithmetic operation by a plurality of computing units P 1 to P 4, between a plurality of computing units P 1 to P 4, Even if mutually different conditional branches occur, it can be easily executed.

【実施例2】 次に、第10図及び第11図を伴って、本発明の並列演算
処理装置の第2の実施例を述べよう。 本発明による並列演算処理装置の第2の実施例におい
ては、分岐条件を満足して、その時点で停止状態となっ
た演算器13を示す停止フラグ群と、分岐先アドレスとを
組みにして、分岐先アドレス記憶部16に書き込む。 そして、先に実行していた処理(ルーチン)の終了を
検出すれば、分岐先アドレス記憶部16から、フラグ群と
分岐先アドレスとを読み出し、そのフラグ群と分岐先ア
ドレスとを書き込んだ時点で停止状態になった演算器13
を作動状態とし、分岐先アドレスによって処理を開始す
る。 なお、本発明による並列演算処理装置の第2の実施例
の場合、分岐先アドレス記憶用レジスタR1〜R4が、分岐
先アドレス記憶部16を有し、FILO(Fast In Last Out:
後から書き込んだデータを先に読み出す)構造を有する
スタック18を構成している。 以下、実施例1の場合と同様に、第9図に示す条件分
岐処理を行う場合について説明する。 第11図は、停止フラグレジスタ11、スタック18、及び
プログラムカウンタ19の状態を示す。 停止フラグレジスタ11に書き込まれている停止フラグ
は、演算器停止用ゲート回路12を通して、演算器13を停
止状態にするフラグであり、また、スタック18の停止フ
ラグ記憶部15に書き込まれている停止フラグは、分岐条
件を満足して停止状態となった演算器を示すフラグであ
る。なお、演算器13を構成している演算器P1、P2、P3
P4にそれぞれ対応する停止フラグの配列を、停止コード
と呼ぶ。 まず、プログラムカウンタ19から、第11図に示すよ
うに、[A]の処理(ルーチン)のためのアドレス
〈A〉が出力される。 このとき、第11図に示すように、停止フラグレジスタ
11に記憶されている停止コードは“0000"の内容を有
し、スタック18のスタックポインタ17はアドレス「0」
を指し、スタック18の停止フラグ記憶部15に記憶されて
いる停止コードは“0000"の内容を有し、分岐先アドレ
ス記憶部16に記憶されている分岐先アドレスはドントケ
アとなっている。 このため、演算器13を構成している演算器P1〜P4が、
ともに[A]の処理(ルーチン)を実行する。 このとき、プログラムカウンタ19は、「1」だけイン
クリメントする。 プログラムカウンタ19が条件分岐用アドレス〈Br−
O〉を出力すれば、演算器P1〜P4は、条件分岐命令に記
された条件をテストし、ステータスを出力する。 ステータスが「0」の場合、未分岐であるとし、ま
た、ステータスが「1」の場合、分岐であるとすれば、
停止状態ではない演算器のステータスによって、分岐命
令検出部21が、次の3つの処理のいずれかの実行をさせ
る。 (1)全演算器のステータスが「0」の場合 プログラムカウンタ19を1だけインクリメントする。 (2)全演算器のステータスが「1」の場合 プログラムカウンタ19の内容を条件分岐命令に明記さ
れた分岐先アドレスとし、分岐先にジャンプする。 (3)全演算器中のある演算器のステータスが「0」、
他の演算器のステータスが「1」である場合 スタックポインタ17を「1」だけインクリメントし、
停止状態ではなく且つステータスが「1」の演算器につ
いては、停止フラグ「1」とし、残りのステータスが
「0」の演算器については、停止フラグを「0」とし、
それら停止フラグを、スタック18中の停止フラグ記憶部
15に書き込む。また、これと同時に、分岐先アドレスを
分岐先アドレス記憶部16に書き込む。 また、ステータスが「1」の演算器を新たに停止状態
とするために、ステータスと、それまで停止状態であっ
た演算器を示す停止フラグとの論理和をとり、その論理
和出力を、停止フラグメモリ11に書き込む。その後、プ
ログラムカウンタ19を「1」だけインクリメントして、
ステータスを「0」で出力した演算器のみが、処理を実
行する。 すなわち、第9図に示す例の場合、演算器P1及びP2
ステータスを「0」で出力し、また、演算器P3及びP4
ステータスを「1」で出力するので、分岐命令検出部21
は、停止コードを“0011"にさせると同時に、スタック
ポインタ17のアドレスを「1」にし、停止コード“001
1"と条件分岐命令Br−0に明記された分岐先アドレス
〈I〉とを、それぞれ停止フラグ記憶部15と分岐先アド
レス記憶部16とに書き込ませる。 次に、プログラムカウンタ19を「1」だけインクリ
メントし、[B]の処理(ルーチン)が開始される。 このとき、演算器P1及びP2は作動状態である。 [B]の処理(ルーチン)が終了し、プログラムカウ
ンタ19が条件分岐アドレス〈Br−1〉を出力すれば、演
算器P1及びP2は、条件分岐命令に記された条件をテスト
し、その結果、演算器P1はステータスを「0」で出力
し、演算器P2はステータスを「1」で出力する。このた
め、分岐命令検出部21は、前回の場合と同様に、停止コ
ードを“0111"とさせると同時に、スタックポインタ17
のアドレスを「2」にし、停止コード“0100"と条件分
岐命令Br−1に明記された分岐先アドレス〈F〉とを、
それぞれ停止フラグ記憶部15と分岐先アドレス記憶部16
に書き込ませる。 次に、プログラムカウンタ19を「1」だけインクリ
メントし、[C]の処理(ルーチン)の実行が開始され
る。 このとき、演算器P1のみが動作状態である。 [C]の処理の実行が終了し、プログラムカウンタ
19が条件分岐アドレス〈Br−2〉を出力すれば、 演算器P1で条件分岐命令に記された条件をテストし、
その結果、演算器P1は、ステータスを「0」で出力する
ので、分岐命令検出部21は、プログラムカウンタ19を
「1」だけインクリメントさせ、[D]の処理(ルーチ
ン)を開始させる。 そして、[D]の処理(ルーチン)の最後には、条
件分岐ルーチンの終了を示す命令が明記されているの
で、終了命令検出部14は、その命令を検出し、スタック
18の状態に応じて、次の2つの処理のいずれかの実行を
させる。 (1)スタックされたデータがない場合 全演算器が条件分岐処理を終了したことを意味すると
して、停止フラグレジスタ11をリセットし、終了命令中
に明記されたアドレスにジャンプして、新たな処理の実
行を開始させる。 (2)スタックされたデータがある場合 スタック18の停止フラグ記憶部15から停止フラグを読
み出し、それを反転して新たに停止フラグにさせ、停止
フラグレジスタ11に書き込ませる。これと同時に、スタ
ック18の分岐先アドレス記憶部16から分岐先アドレスを
読み出させ、それをプログラムカウンタ19に書き込ま
せ、それによって、分岐先アドレスから処理を開始させ
る。また、スタックポインタ17を「1」だけデクリメン
トさせる。 すなわち、いま、スタックポインタ17のアドレスが
「2」であるので、停止コード“0100"を反転した“101
1"を、新たな停止フラグとして、停止フラグレジスタ11
に書き込ませ、また、これと同時に、分岐先アドレス
〈F〉を、プログラムカウンタ19に書き込ませ、[F]
の処理(ルーチン)を開始する。 このとき演算器P2のみが作動状態である。 プログラムカウンタ19が条件分岐アドレス〈Br−
3〉を出力すれば、演算器P2で条件分岐命令に記された
条件をテストし、その結果、演算器P2は、ステータスを
「1」で出力する。このため、分岐命令検出部21は、プ
ログラムカウンタ19の内容を条件分岐命令に明記された
分岐先アドレス〈H〉にし、[H]の処理(ルーチン)
を開始させる。 [H]の処理(ルーチン)の最後には、条件分岐ル
ーチンの終了を示す命令が明記されているので、終了命
令検出部14は、その命令を検出し、一方、スタックポイ
ンタ17を調べるとそのアドレスが「1」であるので、前
回の場合と同様に、停止コード“0011"を反転した“110
0"が新たな停止フラグになり、分岐先アドレス〈I〉が
プログラムカウンタ19に書き込まれ、[I]の処理(ル
ーチン)が開始される。このとき演算器P3及びP4が作動
状態である。 プログラムカウンタ19が条件分岐アドレス〈Br−
4〉を出力すれば、演算器P3及びP4において、条件分岐
命令に記された条件をテストし、その結果、演算器P3
びP4がステータスを「1」で出力する。このため、分岐
命令検出部21は、プログラムカウンタ19の内容を条件分
岐命令に明記された分岐先アドレス〈K〉にし、[K]
の処理(ルーチン)を実行させる。 [K]の処理(ルーチン)の最後には条件分岐ルー
チンの終了を示す命令が明記されているので、終了命令
検出部14は、その命令を検出し、スタックポインタ17の
アドレスを調べる。 その結果、今回は、スタック18にデータが存在しな
いので、停止フラグレジスタ11がリセットされ、終了命
令中に明記されたアドレスにジャンプして、新たに、処
理の実行を開始する。
Second Embodiment Next, a second embodiment of the parallel processing device of the present invention will be described with reference to FIGS. 10 and 11. In the second embodiment of the parallel arithmetic processing device according to the present invention, a stop flag group indicating the operation unit 13 that has stopped at the time when the branch condition is satisfied, and a branch destination address are combined. Write to the branch destination address storage unit 16. When the end of the previously executed process (routine) is detected, the flag group and the branch destination address are read out from the branch destination address storage unit 16 and the flag group and the branch destination address are written at the point of time. Computing unit 13 stopped
Is activated, and processing is started according to the branch destination address. In the case of the second embodiment of the parallel operation processing device according to the present invention, the branch destination address storage registers R 1 to R 4 have the branch destination address storage unit 16 and have a FILO (Fast In Last Out:
The stack 18 has a structure in which data written later is read first). Hereinafter, as in the case of the first embodiment, the case where the conditional branch processing shown in FIG. 9 is performed will be described. FIG. 11 shows the states of the stop flag register 11, the stack 18, and the program counter 19. The stop flag written in the stop flag register 11 is a flag for putting the arithmetic unit 13 into the stop state through the arithmetic unit stop gate circuit 12, and the stop flag written in the stop flag storage unit 15 of the stack 18. The flag is a flag indicating an arithmetic unit that has been stopped due to satisfaction of the branch condition. Note that computing units P 1 , P 2 , P 3 ,
The sequences of the respective corresponding stop flag to P 4, referred to as a stop code. First, as shown in FIG. 11, an address <A> for the process (A) of [A] is output from the program counter 19. At this time, as shown in FIG. 11, the stop flag register
The stop code stored in 11 has the content of “0000”, and the stack pointer 17 of the stack 18 has the address “0”.
The stop code stored in the stop flag storage unit 15 of the stack 18 has the content “0000”, and the branch destination address stored in the branch destination address storage unit 16 is “don't care”. Therefore, the computing units P 1 to P 4 constituting the computing unit 13 are:
In both cases, the process (routine) of [A] is executed. At this time, the program counter 19 increments by “1”. The program counter 19 sets the condition branch address <Br−
If outputs O>, calculator P 1 to P 4 tests the condition noted in the conditional branch instruction, and outputs the status. If the status is "0", it is determined to be unbranched, and if the status is "1", it is determined to be a branch,
The branch instruction detection unit 21 causes any of the following three processes to be executed according to the status of the arithmetic unit that is not in the halt state. (1) When the statuses of all the arithmetic units are "0" The program counter 19 is incremented by one. (2) When the status of all the arithmetic units is "1" The content of the program counter 19 is set to the branch destination address specified in the conditional branch instruction, and the program jumps to the branch destination. (3) The status of a certain arithmetic unit among all the arithmetic units is “0”,
When the status of other operation units is "1" The stack pointer 17 is incremented by "1",
For a computing unit that is not in a stopped state and has a status of “1”, the stop flag is set to “1”, and for the remaining computing units having a status of “0”, the stop flag is set to “0”
These stop flags are stored in the stop flag storage unit in the stack 18.
Write to 15. At the same time, the branch destination address is written into the branch destination address storage unit 16. In addition, in order to newly set the arithmetic unit having the status "1" to a stopped state, the logical sum of the status and a stop flag indicating the arithmetic unit which has been stopped so far is taken, and the logical sum output is stopped. Write to the flag memory 11. After that, the program counter 19 is incremented by “1”, and
Only the arithmetic unit that outputs the status “0” executes the processing. That is, in the example shown in FIG. 9, the computing unit P 1 and P 2 outputs the status in the "0", and since calculator P 3 and P 4 outputs the status in the "1", the branch instruction Detector 21
Sets the stop code to “0011”, sets the address of the stack pointer 17 to “1”, and sets the stop code to “001”.
1 "and the branch destination address <I> specified in the conditional branch instruction Br-0 are written into the stop flag storage unit 15 and the branch destination address storage unit 16, respectively. Next, the program counter 19 is set to" 1 ". And the process (routine) of [B] is started. At this time, the arithmetic unit P 1 and P 2 are actuated state. [B] a process (routine) is terminated, if the output of the program counter 19 is a conditional branch address <Br-1>, calculator P 1 and P 2, to test the conditions noted in the conditional branch instruction, As a result, the arithmetic unit P 1 outputs the status in the "0", arithmetic unit P 2 outputs a status "1". Therefore, the branch instruction detecting unit 21 sets the stop code to “0111” and simultaneously sets the stack pointer 17
And the stop code “0100” and the branch destination address <F> specified in the conditional branch instruction Br-1 are
Stop flag storage unit 15 and branch destination address storage unit 16 respectively
To be written. Next, the program counter 19 is incremented by "1", and the execution of the process (routine) of [C] is started. At this time, only the operation unit P 1 is operational. When the execution of the process [C] is completed, the program counter
If 19 outputs the conditional branch address <Br-2>, to test the described conditions in the conditional branch instruction in the arithmetic unit P 1,
As a result, the arithmetic unit P 1, since outputs the status "0", the branch instruction detection unit 21, the program counter 19 is incremented by "1", to start the process of [D] (routine). At the end of the processing (routine) of [D], an instruction indicating the end of the conditional branch routine is specified, so the end instruction detecting unit 14 detects the instruction and stacks the instruction.
One of the following two processes is executed according to the state of 18. (1) When there is no stacked data Assuming that all the arithmetic units have completed the conditional branch processing, reset the stop flag register 11, jump to the address specified in the end instruction, and perform new processing. Start execution. (2) When Stacked Data Exists The stop flag is read from the stop flag storage unit 15 of the stack 18, inverted, made a new stop flag, and written into the stop flag register 11. At the same time, the branch destination address is read from the branch destination address storage unit 16 of the stack 18 and is written to the program counter 19, thereby starting the processing from the branch destination address. Further, the stack pointer 17 is decremented by "1". That is, since the address of the stack pointer 17 is “2”, the stop code “0100” is inverted to “101”.
1 "as a new stop flag, the stop flag register 11
At the same time, the branch destination address <F> is written into the program counter 19, and [F]
(Routine) is started. Only calculator P 2 this time is the operating state. The program counter 19 sets the conditional branch address <Br−
If output 3>, to test the described conditions in the conditional branch instruction in the arithmetic unit P 2, resulting arithmetic unit P 2 outputs the status "1". For this reason, the branch instruction detecting unit 21 sets the contents of the program counter 19 to the branch destination address <H> specified in the conditional branch instruction, and performs the processing of [H] (routine).
To start. At the end of the process (routine) of [H], an instruction indicating the end of the conditional branch routine is specified, so the end instruction detecting unit 14 detects the instruction. Since the address is “1”, the stop code “0011” is inverted to “110” as in the previous case.
0 "becomes the new stop flag, the branch destination address <I> is written into the program counter 19, the processing (routine) is started. At this time calculator P 3 and P 4 are operational state of [I] The program counter 19 determines that the conditional branch address <Br−
If outputs 4>, the arithmetic unit P 3 and P 4, and test conditions noted in the conditional branch instruction, so that the arithmetic unit P 3 and P 4 outputs a status "1". For this reason, the branch instruction detecting unit 21 sets the contents of the program counter 19 to the branch destination address <K> specified in the conditional branch instruction, and sets [K]
(Routine) is executed. At the end of the process (routine) of [K], an instruction indicating the end of the conditional branch routine is specified, so the end instruction detecting unit 14 detects the instruction and checks the address of the stack pointer 17. As a result, since there is no data in the stack 18 this time, the stop flag register 11 is reset, jumps to the address specified in the end instruction, and starts execution of the process anew.

【図面の簡単な説明】[Brief description of the drawings]

第1図から第9図は、本発明による並列演算処理装置の
第1の実施例の説明に供する図である。 第10図及び第11図は、本発明による並列演算処理装置の
第2の実施例の説明に供する図である。 1……プログラムカウンタ 2……プログラムメモリ 3……クロックパルス発生回路 11……停止フラグレジスタ 12……演算器停止用ゲート回路 13……演算器 14……終了検出器 15……停止フラグ記憶部 16……分岐先アドレス記憶部 17……スタックポイント 18……スタック 19……プログラムカウンタ 20……分岐先アドレス出力部 21……分岐命令検出部 AND……アンド回路 CI1〜CI4……一致回路 D1〜D4……終了検出器 EG1〜EG4……ゲート回路 EM1〜EM4……終了フラグメモリ EX1〜EX4……排他的論理和回路 HM1〜HM4……停止フラグメモリ HG1〜HG4……ゲート回路 OR1〜OR4……オア回路 P1〜P4……演算器 RG1〜RG4……ゲート回路 R1〜R4……分岐先アドレス記憶用レジスタ REX……排他的論理和回路
1 to 9 are views for explaining a first embodiment of a parallel operation processing device according to the present invention. FIGS. 10 and 11 are diagrams for explaining a second embodiment of the parallel operation processing device according to the present invention. 1 Program counter 2 Program memory 3 Clock pulse generation circuit 11 Stop flag register 12 Computing device stop gate circuit 13 Computing device 14 Completion detector 15 Stop flag storage unit 16 ...... branch destination address storage unit 17 ...... stack pointer 18 ...... stack 19 ...... program counter 20 ...... branch target address output section 21 ...... branch instruction detection unit the aND ...... aND circuit CI 1 ~CI 4 ...... matches Circuit D 1 to D 4 … End detector EG 1 to EG 4 … Gate circuit EM 1 to EM 4 … End flag memory EX 1 to EX 4 … Exclusive OR circuit HM 1 to HM 4 … Stop Flag memory HG 1 to HG 4 … Gate circuit OR 1 to OR 4 … OR circuit P 1 to P 4 … Calculator RG 1 to RG 4 … Gate circuit R 1 to R 4 … for branch destination address storage Register REX …… Exclusive OR circuit

フロントページの続き (72)発明者 浜口 重建 東京都千代田区内幸町1丁目1番6号 日本電信電話株式会社内 (72)発明者 山内 寛紀 東京都千代田区内幸町1丁目1番6号 日本電信電話株式会社内 (72)発明者 鈴木 豊 東京都千代田区内幸町1丁目1番6号 日本電信電話株式会社内 (72)発明者 黒田 英夫 東京都千代田区内幸町1丁目1番6号 日本電信電話株式会社内 (56)参考文献 特開 昭63−106859(JP,A) 特開 昭61−246868(JP,A)Continuing on the front page (72) Inventor Shigeken Hamaguchi 1-1-6 Uchisaiwaicho, Chiyoda-ku, Tokyo Nippon Telegraph and Telephone Corporation (72) Inventor Hiroki Yamauchi 1-1-6 Uchisaiwaicho, Chiyoda-ku, Tokyo Nippon Telegraph and Telephone Stock Inside the company (72) Inventor Yutaka Suzuki 1-1-6 Uchisaiwaicho, Chiyoda-ku, Tokyo Nippon Telegraph and Telephone Corporation (72) Inventor Hideo Kuroda 1-1-6 Uchisaiwaicho, Chiyoda-ku, Tokyo Nippon Telegraph and Telephone Corporation (56) References JP-A-63-106859 (JP, A) JP-A-61-246868 (JP, A)

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】アドレスを出力するプログラムカウンタ
と、 上記プログラムカウンタから上記アドレスに基づき、そ
れが得られる毎に、処理のための命令、及び分岐アドレ
スを明記している条件分岐命令のいずれかを出力するプ
ログラムメモリと、 上記プログラムメモリから出力される処理のための命令
にもとずく処理をそれぞれ行うとともに、上記プログラ
ムメモリから出力される条件分岐命令に基づき、それに
明記している分岐条件を自身が満足するか否かをそれぞ
れ判断し、満足すると判断した場合、動作状態から停止
状態にそれぞれ制御される複数の演算器と、 上記複数の演算器中の一部のみが動作状態から停止状態
に制御された状態になった場合、上記条件分岐命令に明
記している分岐先アドレスを記憶する分岐先アドレス記
憶手段と、 上記分岐先アドレス記憶手段に記憶された上記分岐先ア
ドレスを、上記複数の演算器中の停止状態に制御されて
いない演算器が上記プログラムカウンタからのアドレス
に基づき上記プログラムメモリから出力される一連の処
理のための命令に基づく処理を実行した後において、上
記プログラムカウンタに、それが上記プログラムメモリ
に出力する上記アドレスとして書込ませる手段とを有す
ることを特徴とする並列演算処理装置。
1. A program counter for outputting an address, and each time the address is obtained from the program counter, one of a processing instruction and a conditional branch instruction specifying a branch address is provided. A program memory to be output, and a process based on an instruction for a process output from the program memory, respectively, and based on a conditional branch instruction output from the program memory, a branch condition specified in the instruction itself is written. Each of the arithmetic units is controlled from the operating state to the stopped state, and only a part of the plurality of arithmetic units is changed from the operating state to the stopped state. When the controlled state is reached, the branch destination address storage means for storing the branch destination address specified in the conditional branch instruction. The branch destination address stored in the branch destination address storage means is output from the program memory based on the address from the program counter by an arithmetic unit which is not controlled to be in a stopped state among the plurality of arithmetic units. Means for writing, after executing a process based on an instruction for a series of processes, the program counter as the address to be output to the program memory, a parallel arithmetic processing device.
JP63140893A 1988-06-08 1988-06-08 Parallel processing unit Expired - Fee Related JP2719676B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63140893A JP2719676B2 (en) 1988-06-08 1988-06-08 Parallel processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63140893A JP2719676B2 (en) 1988-06-08 1988-06-08 Parallel processing unit

Publications (2)

Publication Number Publication Date
JPH01310444A JPH01310444A (en) 1989-12-14
JP2719676B2 true JP2719676B2 (en) 1998-02-25

Family

ID=15279239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63140893A Expired - Fee Related JP2719676B2 (en) 1988-06-08 1988-06-08 Parallel processing unit

Country Status (1)

Country Link
JP (1) JP2719676B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3670668B2 (en) 1997-01-24 2005-07-13 株式会社ルネサステクノロジ Data processing device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61246868A (en) * 1985-04-24 1986-11-04 Fujitsu Ltd Synchronization control method
JPS63106859A (en) * 1986-10-23 1988-05-11 Sharp Corp Multiple processor

Also Published As

Publication number Publication date
JPH01310444A (en) 1989-12-14

Similar Documents

Publication Publication Date Title
KR100782594B1 (en) Memory device having data processing function
JPH0414385B2 (en)
JP2719676B2 (en) Parallel processing unit
JPH02103630A (en) Data processor
JPS6041769B2 (en) Addressing method
JP2731047B2 (en) Program operand check method
JPS62151940A (en) Register saving/return system
JPH056281A (en) Information processor
JP2000194556A (en) Instruction look-ahead system and hardware
JP2865717B2 (en) Information processing apparatus and instruction processing method
JPS6285347A (en) Information processor
JPH08202415A (en) Program update detecting method for programming device
SU1702367A1 (en) Instructions unpacking device
JPH01116832A (en) Processing system for instruction of data flow control computer
JPS63186372A (en) Vector processor
JPH04106652A (en) Exceptional treatment system
JP2618387B2 (en) Testing method for information processing equipment
JPS62108333A (en) Semiconductor device
JPH0772908A (en) Programmable controller
JPH0580691B2 (en)
JPS60201442A (en) Data processing device
JPS61279953A (en) Information hysteresis storage device
JPH02100175A (en) Vector processor
JPS61262933A (en) Control system for electronic computer
JPH0362238A (en) Back-up system for decision of file capacity

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees