JPH01310444A - Parallel arithmetic processor - Google Patents

Parallel arithmetic processor

Info

Publication number
JPH01310444A
JPH01310444A JP14089388A JP14089388A JPH01310444A JP H01310444 A JPH01310444 A JP H01310444A JP 14089388 A JP14089388 A JP 14089388A JP 14089388 A JP14089388 A JP 14089388A JP H01310444 A JPH01310444 A JP H01310444A
Authority
JP
Japan
Prior art keywords
branch
output
destination address
command
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.)
Granted
Application number
JP14089388A
Other languages
Japanese (ja)
Other versions
JP2719676B2 (en
Inventor
Yutaka Tashiro
豊 田代
Toshihiro Minami
俊宏 南
Toshio Tsuchiya
敏雄 土屋
Shigetake Hamaguchi
浜口 重建
Hiroki Yamauchi
寛紀 山内
Yutaka Suzuki
豊 鈴木
Hideo Kuroda
英夫 黒田
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

Abstract

PURPOSE:To attains the high speed of processing by copying with a task such that branching conditions occurring during execution of the parallel arithmetic operation of plural computing elements are different between plural computing elements to each other. CONSTITUTION:A command stored in a program memory 2 is successively read by an address signal from a counter 1 for preparing an address. The read command is supplied and processed to respective corresponding plural computing elements P1, P2...Pn. These computing elements P1, P2...Pn judge whether or not the branching conditions specified to the condition branching instructions outputted from a program memory are satisfied. It is determined which computing element is stopped or operated by the branching conditions.

Description

【発明の詳細な説明】[Detailed description of the invention] 【産業上の利用分野】[Industrial application field]

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

【従来の技術】[Conventional technology]

従来の並列演算処理装置においては、複数の演Ω器の並
列演算動作の実行中に、複数の演算器間で互に分岐条件
が巽なって生ずる場合、これにこれに応動することがで
きなかった。 よって、本発明は、複数の演算器の並列演算動作の実行
中に、複数の演算器間で互に分岐条件が異なって生ずる
場合でも、これに応動することができる新規な並列演算
処理装置を1!!案ぜんとするものである。
In conventional parallel arithmetic processing devices, it is not possible to react when branch conditions occur between multiple arithmetic units while executing parallel arithmetic operations of multiple Ω operators. Ta. Therefore, the present invention provides a novel parallel arithmetic processing device that can respond to different branch conditions among a plurality of arithmetic units during the execution of parallel arithmetic operations of the plurality of arithmetic units. 1! ! This is something to be concerned about.

【実施例1] 次に、第1図〜第7図を伴って、本発明による並列演算
処理装置の実施例を述べよう。 第1図〜第7図に示す本発明による並列演算処理装置に
おいて、従来の並列演算処理装置の場合と同様に、プロ
グラムカウンタ1と、あのプログラムカウンタ1から出
力されるアドレス出力にもとずき、それが得られる毎に
、順次予定のアドレス及び命令を出力するプログラムメ
モリ2と、そのプログラムメモリ2から出力される命令
にもとずく演算動作をそれぞれ実行する複数n個(以下
、簡単のため、n=4として述べる)の演算器P 〜P
4とを有する。 しかして1.演算器P 〜P4において、次に述べる処
理が行われるように次のとおり構成される。 以下、簡単のため、プログラムメモリ2から第8図に示
すように[A]、CB]・・・・・・・・・[K]の一
連の処理のための、アドレス<A>、くB〉・・・・・
・・・・<K>と、命令A、B・・・・・・・・・Kと
が出力されるとともに、条件分岐用アドレス<3r−Q
>、< B r −1> =・・−・−・・・< B 
r −4> (!:、条件分岐命令Br−1>・・・・
・・・・・Br−4とが出力されるものとする。 また、演算器P1が、第9図に示すように、[A]、[
B]、[C]及び[D]の処理を順次行い、演算器P2
が[△]、[B]、[F]及び[HFの処理を順次行い
、演算器P3及びF4が、ともに[A]、[I]及び[
K]の処理を順次行うものとする。 ■ まず、プルグラムカウンターからアドレス<A>が
出力される。 このとき、停止フラグメモリHM、I−IM2、HM3
及びHM 4に記憶されている停止フラグHF  ’、
HF  、HF3及びl−I F 4が、ともに2値表
示で「0」である。また、終了フラグメモリEM  、
EM  、EM3及びEM に記憶されている終了フラ
グEF、EF2、EF3及びEF4も、ともに2値表示
で「0」である。 このため、クロックパルス発生回路3からのクロックパ
ルスCLが、ゲート回路H01,11G、HO3及び1
−IO2を通って、演算器P  、P  、P  及び
F4に供給されているので、演算器P  −F4の全て
が[AI]の処理を順次行う。このとき、プログラムカ
ウンターは、「1」 「1」ずつインクリメントされて
いる。 ■ 以上のように動作し、プログラムカウンタ1の出力
内容が、条件分岐コマンドBr−0を出力すれば、演算
器P  −F4の全てが、自身が分岐条件を満足するか
否かを判断し、もし、分岐条件を満足すれば、停止フラ
グF、を「1」で出力し、満足しなければ停止フ臂 ラグF、を「0」で出ツノする。 このため、演算器P1及びF2が停止フラグF1及びF
2をrOJで出力し、演算器P3及びP が停止フラグ
「3及びF4を「1」で出力する。これら停止フラグF
、F2、F 及びF4はそれぞれ停止フラグメモリHM
  、HM  、HM  及び8M4にオア回路0R1
、OR2、OR及びOR4を通じて供給される。 一方、停止フラグメモリHM、HM2、1−(M3及び
トIM4の出力がグー1−回路HG1、トIG2、l−
1G3及びHO2に供給される。 このため、演算器P1及びF2は演算動作を継続して行
う状態になるが、演Ω器P3及びF4が演算動作を停止
す゛る状態になる。 −力、条件分岐命令Br−0が明記している分岐先アド
レス<1>が、分岐先アドレス記憶用レジスタR及びR
4にラッチされる。 ■ 次に、プログラムカウンターの内容が「1」たけイ
ンクリメントするため、アドレス〈B〉を出力しよって
、演算器P1及びF2においてのみ、[B]の処理が順
次実行される。 ■ このように演算器P 及びF2が[B]の処理を順
次実行し終ってから、プログラムカウンタ1から条件分
岐命令<3r−i>が出力されれば、演算器P 及びF
2が、自身が条件分岐命令[Br−1]を満足するか否
かを判断する。この場合、演算器P1は分岐条件を満足
しない−ので、停止フラグF1を「1」で出力しないが
、演算器P2は、分岐条件を満足するので、停止フラグ
F2を「1」で出力する。 このため、演算器P2にクロックパルスCLが供給され
なくなり、演n器P2が停止状態になる。 また、このどき、上述した場合と同様に、分岐先アドレ
ス記憶用レジスタR2に、分岐先アドレス<l”>がラ
ッチされる。また、これと同時に、プログラムカウンタ
1の内容が「1」だけインクリメントされる。 このため、演算器P1のみが、[C]の処理を順次実行
する。 ■ 次に、プログラムカウンタ1から、条件分岐命令<
3r−2>が出力されれば、演算器P1が、自身が条件
分岐命令Br−2に明記される分岐条件を満足するか否
かを判断する。 この場合、演算器P1は分岐条件を満足しないので、停
止フラグF1を「1」で出力せず、従って、演算器P1
は停止状態にならない。 また、プログラムカウンタ1の内容が、「1」だけイン
クリメントされ、演算器P1が[D]の処理を実行する
。 以上のように動作してから、プログラムメモリ2から、
命令りに明記している命令が出力されるので、それが終
了検出3D1で検出され、それが、終了フラグメモリE
M1に記憶される。 このため、停止フラグメモリHM1が、ゲート回路EG
、を通じて、リセットされる。 このとき、排他的論理和回路EX2の出力にもとずぎ、
ゲート回路RG2及びRG’を通じて演算器P2に対応
する分岐先アドレスレジスタR2が選択され、それから
の分岐先アドレス<F>がプルグラムカウンターに、書
込まれ、またこれと同時に、一致回路CI2によって、
ゲート回路RG’からの分岐先アドレスくF〉と、分岐
先アドレス記憶用レジスタR2からの分岐先アドレスく
F〉との一致をとり、その出力によって、停止フラグメ
モリHM2をリセットする。 この場合、排他的論理和回路EX1〜EX4、ゲート回
路RG  〜RG4及びRG’は、優先回路を構成して
いる。また、一致回路CI  −C14は、分岐先アド
レスのビット数に応じた数の排他的論理和回路REXと
、アンド回路AUとで構成されている。 停止フラグメモリHM2がリセットされるため、演算器
P2において、[F]の処理を開始する。 ■ 続いて、プログラムカウンターから条件分岐命令<
3r−3>が出力されるので、演算器P2が、分岐条件
を満足するか否かを判断する。この場合、演算器P2は
分岐条件を満足するので、停止フラグメモリHM2がセ
ットされ、分岐先アドレス記憶用レジスタR2に、分岐
命令<3r−3>に明記された分岐先アドレスくH〉が
ラッチされる。 ■ 次に、上述した優先回路によって、演算器P に対
応する分岐先アドレスレジスタR2が選択され、分岐先
アドレス〈H〉が、プログラムカウンターに書込まれる
。 このとき、停止フラグメモリHM2が停止フラグを「1
」で記憶した状態になり、演算器P2のみが動作状態に
なる。 ■ 続いて、P14算器P2が[1→]の処理を順次実
行し、それが終了すれば、終了フラグメモリEM、2が
終了フラグを「1」で記憶しlζ状態になる。 このため、プログラムカウンターに、分岐先アドレス<
I>が書込まれ、一方、上述した一致回路CI3及びC
I4からの出力によって、停止フラグメモリHM  及
びHM4がリセットされ、演算器P3及びP4において
、[11の処理が順次実行される。 ■ このようにして、演算器P 及びP4において[1
]の処理が順次実行され、プログラムカウンタ1から条
件分岐命令<3r−4>が出力され、演95器P 及び
P4が、自身が分岐条件を満足するか否かを判断する。 この場合、演算器P 及びP4が分岐条件を満足するの
で、停止フラグメモリP3及びP4における停止フラグ
がとしに「1」になり、分岐先アドレス記憶用レジスタ
P3及びP4に、分岐先アドレス<K>がラッチされる
。 また、上述した優先回路によって、分岐先アドレス記憶
用レジスタR3が選択され、分岐先アドレス<K>が、
プログラムカウンタ1に書込まれ、一方、上述した一致
回路CI3及びC14からの出力により、停止フラグメ
モ’J HM 3及び11M4がリセットされ、このた
め、演鼻器P3及びP4において、[K]の処理が順次
実行される。 [株] 次に、エンド命令が検出されれば、終了フラグ
メモリEM3及び1M4がセットされ、ともに終了フラ
グを「1」で記憶した状態になり、また、停止フラグメ
モリHM1〜l−IM4がリセットされ、終了フラグメ
モリEM1〜EM4、及び分岐先アドレス記憶用レジス
タR1〜R4がリセットされ、ジャンプ先アドレスがプ
ログラムカウンタ1に書込まれ、原状部に戻る。 上述したどころから明らかなように、本発明による並列
演算処理装置によれば、複数の演算器P1〜P4による
並列演算動作の実行中に、複数の演算器P 〜P4間で
、互に異なる条件分岐が生じても、それを容易に実行さ
せることができる。 【実施例2】 第3図は、本発明の並列演算器の条件分岐制御方式を用
いたシーケンサの第2の実施例を示す回路構成図である
。 本実施例では、分岐条件を満足して、その時点で停止状
態となった演算器を示すフラグ群と分岐先アドレスを組
みにして分岐先記憶部に占き込む。 そして、先に実行していたルーチンの終了を検出すると
、前記分岐先記憶部よりフラグ群と分岐先アドレスを読
み出し、そのフラグ群と分岐先アドレスを書き込んだ時
点で停止状態になった演算器13を作動状態とし、分岐
先アドレスより処理を開始する。 なお、実施例1と異なり、分岐先記憶部はPEと1対1
に対応する必要はな(、本実施例ではF I F O(
Fast In La5t Out : #liから書
き込んだデータを先に読み出す)構造を持ったスタック
18としている。 以下、実施例1と同様に、第2図Aのプロセサで第2図
Bに示す条件分岐処理を行う場合について説明する。 第4図に11.ALT−FLAG 、停止フラグ、スタ
ック18、及びプログラムカウンタ19の状態を示す。 ここで、11八LT−FLAGは、HALT FLAG
 REGISTERに書き込まれており、演瞠器停止回
路12を通して演算器13を停止状態にするフラグであ
り、停止フラグは、停止フラグ記憶部15に書き込まれ
ており、分岐条件を満足して停止状態となった演算器を
示すフラグである。 また、実施例1と同様に、IIALT−FLAGと停止
フラグは、演算器13中のPE01PE1、PE2、P
E3に対応するフラグ4つを組にして、それぞれIIA
LT−CODE 、停止コードと呼ぶ。 まず、 ■ プログラムカウンタ19にルーチンAの先頭アドレ
ス〈A〉が書き込まれる。このとき、II A L T
 −COD Eは“oooo” 、スタックポインタ1
7は、アドレス0を指し、スタックの内容は停止コード
“0000” 、分岐先アドレスはドントケアとなって
いる。 従って、P’E O〜PEaとも全てルーチンAを実行
する。 このとき、プログラムカウンタ19は、くA〉から7づ
つインクリメントされる。 ■ プログラムカウンタ19が<3rQ>になると、P
EO〜3の各演算器で条件分岐命令に記された条件をテ
ストし、ステータスを出力する。 ステータスがOのとき未分岐、1のとき分岐するとする
と、停止状態ではないPEのステータスにより、分岐命
令検出部2°1では、次の3つの処理のいずれかを実行
する。 1 全PEのステータスがO プログラムカウンタ19をインクリメ ントする。 2 全PEのステータスが1 プログラムカウンタ19の内容を条件 分岐命令に明記された分岐先アドレスとして、分岐先に
ジャンプする。 3 ステータスにOと1が存在 ■ スタックポインタ17を1インクリメンi〜し、停
止状態ではなく、かたうステータスが1のPEのみ、停
止フラグを1、残りはOとしてスタック18中の停止フ
ラグ記憶部15に書き込む。 同時に分岐先アドレスを分岐先アドレス記憶部16に書
き込む。 また、ステータスが1のPEを新たに停止状態であった
PEを示ずHALT−FLAGのORを取り、11八L
T FLAG IIEGISTIER11に書き込む。 ■ その後、プログラムカウンタ19を1インクリメン
トして、ステータスOを出力したPEのみ処理を実行す
る。 クリメン1〜して、ステータスOを出力したPEのみ処
理を実行する。 すなわち、第2図Bの例では、PEOとPE1はステー
タスO,PE2と、PE3はステータス1を出力するの
で、分岐命令検出部21は]1^Lj−CODEを’0
011”とすると同時に、スタックポインタ17のアド
レスを1とし、停止コード’0011”と条件分岐命令
BrOに明記された分岐先アドレス<1>をそれぞれ停
止フラグ記憶部15と分岐先アドレス記憶部16に出き
込む。 ■ 次に、プログラムカウンタ19を1インクリメント
し、ルーチンBの処理が開始される。 このとき、PEOとPEIは作動状態である。ルーチン
Bが終了し、プログラムカウンタ19が<Br1>にな
ると、PEOとPE1で条件分岐命令に記された条件を
テストし、その結果、PEOはステータス0、PE1は
ステータス1を出力するので、分岐命令検出部21は前
回同様に11八LT−CODEを“0111”とすると
同時に、スタックポインタ17のアドレスを2とし、停
止コード゛’0100”と条件分岐命令Br1に明記さ
れた分岐先アドレスくF〉をそれぞれ停止フラグ記憶部
15と分岐先アドレス記憶部16に書き込む。 ■ 次に、プログラムカウンタ19を1インクリメント
し、ルーチンCの処理の実行が開始される。 このとき、PEOのみが動作状態である。 ■ プログラムカウンタ19が<3r2>になるど、P
EOで条件分岐命令に記された条件をテス+=1、、イ
の結果、ステータス0が出力されるので、分岐命令検出
部21はプログラムカウンタ19を1インクリメントし
、ル−チンDの処理が開始される。 ■ ルーチンDo最後には条件分岐ルーチンの終了を示
す命令が明記されているので、エンド命令検出部14で
はその命令を検出し、スタックの状態に応じて次の2つ
の処理のいずれかを実行する。 1 スタックされたデータ無 全PEが条件分岐処理を終了したこと を意味し、HALT FLAG I?EGISTER1
1をリピッ1〜し、エンド命令中に明記されたアドレス
にジャンプして新たに処理の実行を開始する。 2 スタックされたデータ有 スタック18から停止フラグを読み出 しそれを反転して新たにHALT−FLAGとし、+1
ALT FLAG REGISTER11に出き込む。 同時にスタック18から分岐先アドレスを読み出してプ
ログラムカウンタ19に占ぎ込み、分岐先アドレスから
処理を開始する。スタックポインタ17はコデクリメン
トする。 すなわち、今の場合、スタックポインタ17のアドレス
が2であるので、停止コード″0100”を反転した’
1oit”が新たな11八LT−FLAGとなってHA
L丁FLAG IIEGISTEItに古き込まれると
同時に、分岐先アドレス<F>がプログラムカウンタ1
9に書き込まれ、ル−チンFの処理が開始される。 このときPE1のみ0作動状態である。 プログラムカウンタ19が<Br3>になると、PE1
で条件分岐命令に記された条件をテストし、その結果、
ステータス1が出力されるので、分岐命令検出部21は
プログラムカウンタ19の内容を条件分岐命令に明記さ
れた分岐先アドレスくト1〉とし、ルーチント1の処理
が開始される。 ルーチン1」の241には条件分岐ルーチンの終了を示
す命令が明記されているので、エンド命令検出部14で
はその命令を検出し、スタックポインタ17を調べると
そのアドレスが1であるので、前回同様に、停止コード
” 0011” ヲ反転した”1100”が新たな11
八LT−FLAGとなり、分岐先アドレス<(>がプロ
グラムカウンタ19に占ぎ込まれ、ル−チンIの処理が
開始される。 このときPE2とPE3が作動状態である。 プログラムカウンタ19が<3r4>になると、PE2
とPE3で条件分岐命令に記された条件をテストし、そ
の結果、PE2、PESともステータス1が出力される
ので、分岐命令検出部21はプログラムカウンタ19の
内容を条件分岐命令に明記された分岐先アドレス<K>
とし、ルーチンKが実行される。 ルーチンにの最後には条件分岐ルーチンの終了を示す命
令が明記されているので、エンド命令検出部14ではそ
の命令を検出し、スタックポインタ17のアドレスを調
べる。 ■ その結果、今回は、スタックにデータが存在しない
ので、IIALT FLAG ItEGIST「R11
をリセットし、エンド命令中に明記されたアドレスにジ
ャンプして新たに処理の実行を開始する。
[Embodiment 1] Next, an embodiment of a parallel arithmetic processing device according to the present invention will be described with reference to FIGS. 1 to 7. In the parallel processing device according to the present invention shown in FIGS. 1 to 7, the program counter 1 and the address output output from the program counter 1 are , a program memory 2 that sequentially outputs scheduled addresses and instructions each time they are obtained, and a plurality of n units (hereinafter, for simplicity, , n=4) computing units P ~ P
4. However, 1. The computing units P to P4 are configured as follows so that the following processing is performed. For the sake of simplicity, the addresses <A>, CB for a series of processing from the program memory 2 to [A], CB], . 〉・・・・・・
...<K>, instructions A, B...K are output, and the conditional branch address <3r-Q
>, < B r −1> =・・−・−・< B
r -4> (!:, conditional branch instruction Br-1>...
...Br-4 shall be output. Further, as shown in FIG.
B], [C] and [D] are sequentially processed, and the processing unit P2
sequentially processes [△], [B], [F] and [HF, and arithmetic units P3 and F4 both process [A], [I] and [
K] processing is performed sequentially. ■ First, address <A> is output from the program counter. At this time, stop flag memories HM, I-IM2, HM3
and the stop flag HF' stored in HM4,
HF, HF3 and l-IF4 are all "0" in binary representation. In addition, the end flag memory EM,
The end flags EF, EF2, EF3, and EF4 stored in EM, EM3, and EM are also "0" in binary representation. Therefore, the clock pulse CL from the clock pulse generation circuit 3 is transmitted to the gate circuits H01, 11G, HO3 and 1.
Since the signal is supplied to the computing units P 1 , P 2 , P 2 and F4 through -IO2, all of the computing units P -F4 sequentially process [AI]. At this time, the program counter is incremented by "1". ■ If the program counter 1 operates as described above and outputs the conditional branch command Br-0, all the arithmetic units P-F4 will judge whether or not they satisfy the branch condition; If the branch condition is satisfied, the stop flag F is output as "1", and if not, the stop flag F is output as "0". Therefore, the arithmetic units P1 and F2 are set to stop flags F1 and F2.
2 is output as rOJ, and the arithmetic units P3 and P output the stop flag "3" and F4 as "1". These stop flags F
, F2, F and F4 are respectively stop flag memories HM.
, HM , HM and 8M4 OR circuit 0R1
, OR2, OR and OR4. On the other hand, the outputs of the stop flag memories HM, HM2, 1-(M3 and IM4) are
1G3 and HO2. For this reason, the computing units P1 and F2 are in a state where they continue to perform computing operations, but the computing units P3 and F4 are in a state where their computing operations are stopped. - The branch destination address <1> specified by the conditional branch instruction Br-0 is the branch destination address storage register R and R.
It is latched to 4. (2) Next, since the contents of the program counter are incremented by "1", the address <B> is output, and the processing of [B] is sequentially executed only in the arithmetic units P1 and F2. ■ If the conditional branch instruction <3r-i> is output from the program counter 1 after the arithmetic units P and F2 have sequentially executed the processing of [B] in this way, the arithmetic units P and F2
2 determines whether it satisfies the conditional branch instruction [Br-1]. In this case, since the arithmetic unit P1 does not satisfy the branch condition, it does not output the stop flag F1 as "1", but since the arithmetic unit P2 satisfies the branch condition, it outputs the stop flag F2 as "1". Therefore, the clock pulse CL is no longer supplied to the arithmetic unit P2, and the arithmetic unit P2 is stopped. Also, at this time, as in the case described above, the branch destination address <l''> is latched in the branch destination address storage register R2.At the same time, the contents of the program counter 1 are incremented by "1". be done. Therefore, only the computing unit P1 sequentially executes the process [C]. ■ Next, from program counter 1, conditional branch instruction <
3r-2> is output, the arithmetic unit P1 determines whether or not it satisfies the branch condition specified in the conditional branch instruction Br-2. In this case, since the arithmetic unit P1 does not satisfy the branch condition, it does not output the stop flag F1 as "1", and therefore the arithmetic unit P1
does not become stopped. Further, the contents of the program counter 1 are incremented by "1", and the arithmetic unit P1 executes the process [D]. After operating as above, from program memory 2,
Since the instruction specified in the instruction is output, it is detected by the end detection 3D1, and it is stored in the end flag memory E.
It is stored in M1. Therefore, the stop flag memory HM1 is connected to the gate circuit EG.
, is reset through . At this time, based on the output of the exclusive OR circuit EX2,
The branch destination address register R2 corresponding to the arithmetic unit P2 is selected through the gate circuits RG2 and RG', and the branch destination address <F> is written into the program counter, and at the same time, the coincidence circuit CI2 selects the branch destination address register R2.
A match is made between the branch destination address F> from the gate circuit RG' and the branch destination address F> from the branch address storage register R2, and the stop flag memory HM2 is reset by the output thereof. In this case, exclusive OR circuits EX1 to EX4 and gate circuits RG to RG4 and RG' constitute a priority circuit. Further, the coincidence circuit CI-C14 is composed of exclusive OR circuits REX, the number of which corresponds to the number of bits of the branch destination address, and an AND circuit AU. Since the stop flag memory HM2 is reset, the processing of [F] is started in the arithmetic unit P2. ■ Next, a conditional branch instruction is sent from the program counter.
3r-3> is output, so the arithmetic unit P2 determines whether the branch condition is satisfied. In this case, since the arithmetic unit P2 satisfies the branch condition, the stop flag memory HM2 is set, and the branch destination address specified in the branch instruction <3r-3> is latched in the branch destination address storage register R2. be done. (2) Next, the above-mentioned priority circuit selects the branch destination address register R2 corresponding to the arithmetic unit P, and writes the branch destination address <H> to the program counter. At this time, the stop flag memory HM2 sets the stop flag to "1".
”, and only the arithmetic unit P2 becomes operational. (2) Subsequently, the P14 calculator P2 sequentially executes the process [1→], and when it is completed, the end flag memory EM,2 stores the end flag as "1" and enters the lζ state. Therefore, the program counter shows the branch destination address <
I> is written, while the matching circuits CI3 and C
The stop flag memories HM and HM4 are reset by the output from I4, and the processing of [11] is sequentially executed in the arithmetic units P3 and P4. ■ In this way, [1
] are sequentially executed, a conditional branch instruction <3r-4> is output from the program counter 1, and the processors P and P4 determine whether or not they satisfy the branch condition. In this case, since the arithmetic units P and P4 satisfy the branch condition, the stop flags in the stop flag memories P3 and P4 become "1", and the branch destination address storage registers P3 and P4 store the branch destination address <K. > is latched. Further, the above-mentioned priority circuit selects the branch destination address storage register R3, and the branch destination address <K> is
On the other hand, the outputs from the above-mentioned coincidence circuits CI3 and C14 reset the stop flag memo 'J HM 3 and 11M4, so that in the nasal performers P3 and P4, the processing of [K] are executed sequentially. [Stock] Next, when an end command is detected, the end flag memories EM3 and 1M4 are set, and both end flags are stored as "1", and the stop flag memories HM1 to 1-IM4 are reset. Then, the end flag memories EM1 to EM4 and branch destination address storage registers R1 to R4 are reset, the jump destination address is written to the program counter 1, and the program returns to its original state. As is clear from the above, according to the parallel arithmetic processing device according to the present invention, while the plurality of arithmetic units P1 to P4 are executing parallel arithmetic operations, different conditions are applied between the plurality of arithmetic units P1 to P4. Even if a branch occurs, it can be easily executed. Embodiment 2 FIG. 3 is a circuit configuration diagram showing a second embodiment of a sequencer using the conditional branch control method for parallel arithmetic units of the present invention. In this embodiment, a group of flags indicating an arithmetic unit that is in a stopped state at that time when a branch condition is satisfied and a branch destination address are combined and stored in the branch destination storage section. When the end of the previously executed routine is detected, the flag group and the branch destination address are read from the branch destination storage section, and the arithmetic unit 13 is in a stopped state at the time when the flag group and the branch destination address are written. is activated and processing starts from the branch destination address. Note that, unlike the first embodiment, the branch destination storage unit has a one-to-one relationship with the PE.
There is no need to correspond to (, in this example, F I F O (
The stack 18 has a structure (Fast In La5t Out: data written from #li is read first). Similar to the first embodiment, a case where the processor shown in FIG. 2A performs the conditional branching process shown in FIG. 2B will be described below. 11. ALT-FLAG indicates the status of the stop flag, stack 18, and program counter 19. Here, 118 LT-FLAG is HALT FLAG
This flag is written in the REGISTER and causes the arithmetic unit 13 to be stopped through the operator stop circuit 12. The stop flag is written in the stop flag storage unit 15, and is set to stop when the branch condition is satisfied. This is a flag indicating the arithmetic unit that has changed. Also, as in the first embodiment, IIALT-FLAG and stop flag are PE01PE1, PE2, P
Make a set of four flags corresponding to E3, and set each flag to IIA.
LT-CODE is called a stop code. First, (1) the start address <A> of routine A is written into the program counter 19; At this time, II A L T
-COD E is “oooo”, stack pointer 1
7 indicates address 0, the contents of the stack are stop code "0000", and the branch destination address is don't care. Therefore, routine A is executed for all of P'E O to PEa. At this time, the program counter 19 is incremented by 7 from A>. ■ When the program counter 19 reaches <3rQ>, P
Each of the arithmetic units EO to 3 tests the condition written in the conditional branch instruction and outputs the status. If the status is O, the branch is not branched, and if the status is 1, the branch is branched. Depending on the status of the PE that is not in the stopped state, the branch instruction detection unit 2°1 executes one of the following three processes. 1 The status of all PEs is O. The program counter 19 is incremented. 2 Status of all PEs is 1 Jump to the branch destination using the contents of the program counter 19 as the branch destination address specified in the conditional branch instruction. 3 O and 1 exist in the status ■ Increment the stack pointer 17 by 1 i ~, and store the stop flag in the stack 18 with only the PE that is not in the stopped state and whose status is 1, set the stop flag to 1, and set the rest to O Write in section 15. At the same time, the branch destination address is written into the branch destination address storage section 16. In addition, the PE whose status is 1 is newly ORed with HALT-FLAG without indicating the PE that was in the stopped state, and 118L
Write to T FLAG IIEGISTIER11. (2) Thereafter, the program counter 19 is incremented by 1, and only the PE that outputs the status O executes the process. Only the PE that outputs the status O executes processing. That is, in the example of FIG. 2B, since PEO and PE1 output status O, PE2 outputs status 1, and PE3 outputs status 1, the branch instruction detection unit 21 sets ]1^Lj-CODE to '0.
At the same time, the address of the stack pointer 17 is set to 1, and the stop code '0011' and the branch destination address <1> specified in the conditional branch instruction BrO are stored in the stop flag storage unit 15 and the branch destination address storage unit 16, respectively. In and out. (2) Next, the program counter 19 is incremented by 1, and processing of routine B is started. At this time, PEO and PEI are in operation. When routine B ends and the program counter 19 becomes <Br1>, PEO and PE1 test the condition written in the conditional branch instruction, and as a result, PEO outputs status 0 and PE1 outputs status 1, so the branch is executed. The instruction detection unit 21 sets the 118 LT-CODE to "0111" as before, and at the same time sets the address of the stack pointer 17 to 2, and reads the stop code "'0100" and the branch destination address specified in the conditional branch instruction Br1. > are written in the stop flag storage unit 15 and branch destination address storage unit 16, respectively. ■ Next, the program counter 19 is incremented by 1, and execution of the processing of routine C is started. At this time, only PEO is in the operating state. ■ When the program counter 19 becomes <3r2>, P
As a result of testing the condition written in the conditional branch instruction at EO, the status 0 is output, so the branch instruction detection unit 21 increments the program counter 19 by 1, and the processing of routine D starts. will be started. ■ At the end of Routine Do, an instruction indicating the end of the conditional branch routine is specified, so the end instruction detection unit 14 detects that instruction and executes one of the following two processes depending on the stack state. . 1 This means that the stacked PE with no data has completed the conditional branch processing, and the HALT FLAG I? EGISTER1
1, jumps to the address specified in the end command, and starts executing a new process. 2 Read the stop flag from the stacked data stack 18, invert it, set it as a new HALT-FLAG, and set it to +1
Enter ALT FLAG REGISTER11. At the same time, the branch destination address is read from the stack 18, and is entered into the program counter 19, and processing is started from the branch destination address. Stack pointer 17 is decremented by code. In other words, in this case, the address of stack pointer 17 is 2, so the stop code "0100" is inverted.
1oit" becomes the new 118 LT-FLAG and HA
At the same time, the branch destination address <F> is updated to program counter 1.
9, and processing of routine F is started. At this time, only PE1 is in the 0 operating state. When the program counter 19 becomes <Br3>, PE1
tests the condition written in the conditional branch instruction, and as a result,
Since the status 1 is output, the branch instruction detection unit 21 sets the contents of the program counter 19 to the branch destination address specified in the conditional branch instruction 1>, and processing of the routine 1 is started. Since the instruction indicating the end of the conditional branch routine is specified in 241 of ``Routine 1'', the end instruction detection unit 14 detects that instruction, and when the stack pointer 17 is checked, the address is 1, so the same as last time. Then, the stop code "0011" and the reversed "1100" are the new 11.
8LT-FLAG, the branch destination address <(> is entered into the program counter 19, and processing of routine I is started. At this time, PE2 and PE3 are in the operating state. The program counter 19 is <3r4 >, PE2
The condition written in the conditional branch instruction is tested in PE3, and as a result, status 1 is output in both PE2 and PES, so the branch instruction detection unit 21 converts the contents of the program counter 19 into a branch specified in the conditional branch instruction. Destination address <K>
Then, routine K is executed. Since an instruction indicating the end of the conditional branch routine is specified at the end of the routine, the end instruction detection section 14 detects this instruction and checks the address of the stack pointer 17. ■ As a result, there is no data on the stack this time, so IIALT FLAG ItEGIST "R11
, jumps to the address specified in the end instruction, and starts executing a new process.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図から第9図は、本発明による並列演算処理装置の
第1の実施例の説明に供する図である。 第10図〜第11図は、本発明による並列演算処理装置
の第2の実施例の説明に供する図である。 出願人  日本電信電話株式会社
1 to 9 are diagrams for explaining a first embodiment of a parallel arithmetic processing device according to the present invention. FIGS. 10 and 11 are diagrams for explaining a second embodiment of the parallel arithmetic processing device according to the present invention. Applicant Nippon Telegraph and Telephone Corporation

Claims (1)

【特許請求の範囲】 コマンドアドレス発生用カウンタと、 上記コマンドアドレス発生用カウンタから出力されるコ
マンドアドレス発生用カウント出力にもとずき、それが
得られる毎に、順次予定のコマンドを出力するコマンド
発生回路と、 上記コマンド発生回路から出力されるコマンドにもとず
き、それが出力される毎に、そのコマにもとずく演算動
作をそれぞれ実行する複数n個の演算器P_1、P_2
………P_nとを有する並列演算処理装置において、 演算器P_i(i=1、2………n)が、上記プログラ
ムカウンタからの出力にもとずき上記プログラムメモリ
から出力される条件分岐命令に明記された分岐条件を満
足するか否かを判断し、それに応じて上記演算器P_i
を動作状態または停止状態にさせる手段を有することを
特徴とする並列演算処理装置。
[Scope of Claims] A command address generation counter, and a command that sequentially outputs scheduled commands each time the command address generation count output is obtained, based on the command address generation count output output from the command address generation counter. a generating circuit; and a plurality of n arithmetic units P_1, P_2 that each perform an arithmetic operation based on the frame each time the command is output based on the command output from the command generating circuit.
......P_n, in which the arithmetic unit P_i (i=1, 2......n) executes a conditional branch instruction output from the program memory based on the output from the program counter. It is determined whether or not the branch condition specified in
1. A parallel arithmetic processing device characterized by having means for placing the unit into an operating state or a stopped state.
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 true JPH01310444A (en) 1989-12-14
JP2719676B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998033115A1 (en) * 1997-01-24 1998-07-30 Mitsubishi Denki Kabushiki Kaisha A data processor

Citations (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

Patent Citations (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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998033115A1 (en) * 1997-01-24 1998-07-30 Mitsubishi Denki Kabushiki Kaisha A data processor
US6484253B1 (en) 1997-01-24 2002-11-19 Mitsubishi Denki Kabushiki Kaisha Data processor

Also Published As

Publication number Publication date
JP2719676B2 (en) 1998-02-25

Similar Documents

Publication Publication Date Title
US5038348A (en) Apparatus for debugging a data flow program
JPS5886648A (en) Tracing device
JPH06124352A (en) Data driven type information processor
JPH03286332A (en) Digital data processor
KR920010335B1 (en) Micro processor and its device
JPH01310444A (en) Parallel arithmetic processor
JPS5826584B2 (en) data processing equipment
JP3211423B2 (en) Branch instruction execution method and branch instruction execution device
JPH04359323A (en) Microcomputer
JPH07219766A (en) Arithmetic processor
JPH0831033B2 (en) Data processing device
JPH0727473B2 (en) Data flow program debug device
JP2004062401A (en) Arithmetic processor and camera device using it
JPH07191955A (en) Data-driven information processor
JP2764947B2 (en) Instruction control method
JPS6086625A (en) Data processing device
JPH0620071A (en) Data driven information processor
JPS5822455A (en) Data processor
JPS622329A (en) Arithmetic exception instruction address calculation device
JPS6326416B2 (en)
JPH023822A (en) Data processor
JPH11161491A (en) General purpose processor
JPH0727474B2 (en) Data flow program debug device
JPS63186372A (en) Vector processor
JPH0535896B2 (en)

Legal Events

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