JPS62159268A - マルチプロセツサシステム - Google Patents

マルチプロセツサシステム

Info

Publication number
JPS62159268A
JPS62159268A JP61000563A JP56386A JPS62159268A JP S62159268 A JPS62159268 A JP S62159268A JP 61000563 A JP61000563 A JP 61000563A JP 56386 A JP56386 A JP 56386A JP S62159268 A JPS62159268 A JP S62159268A
Authority
JP
Japan
Prior art keywords
instruction
vector
scalar
processor
processing unit
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
JP61000563A
Other languages
English (en)
Other versions
JP2610821B2 (ja
Inventor
Yasuhiro Inagami
稲上 泰弘
Takayuki Nakagawa
貴之 中川
Shigeo Nagashima
長島 重夫
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61000563A priority Critical patent/JP2610821B2/ja
Priority to EP86118136A priority patent/EP0231526B1/en
Priority to DE8686118136T priority patent/DE3684293D1/de
Priority to US07/000,445 priority patent/US4803620A/en
Publication of JPS62159268A publication Critical patent/JPS62159268A/ja
Application granted granted Critical
Publication of JP2610821B2 publication Critical patent/JP2610821B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、主従関係のあるプロセッサ間の同期通信手段
に関する。
〔発明の背景〕
科学技術計算を高速に処理するため、科学技術計算で頻
出する配列同志の演算を高速に処理する高速プロセッサ
が開発されている。配列演算を高速に処理する機構とし
ては、1次元のベクトルをパイプラインで高速処理する
ベクトルプロセッサと、複数個のプロセッサを並べて並
列処理する並列プロセッサとに大別できる。本発明は、
ベクトルプロセッサあるいは並列プロセッサに限るもの
ではないが、本発明を考案するに至った従来技術の問題
点の説明にはベクトルプロセッサを用いる。
ベクトルプロセッサは、順序付けられた一連の配列デー
タ(ベクトルデータ)に対しパイプライタで高速に処理
するベクトル処理機構をもつ。ただし、1個のプログラ
ムを全部ベクトル処理できるのではなく、従来の汎用計
算機のような逐次処理(これをスカラ処理と呼ぶ)せざ
るを得ない部分も生じる。従って、ベクトルプロセッサ
は、ベクトルデータをパイプラインで高速処理するベク
トル処理機構の他に、従来の汎用計算機相当の機能を実
現するスカラ処理機構を合わせ持つ。ベクトルプロセッ
サ内のベクトル処理機構とスカラ処理機構の関係の持た
せ方についてはいくつかの方式が考えられるが、物理的
には分離している場合が多い。
上述のような、ベクトル処理機構およびスカラ処理機栂
をもつプロセッサの例として、特開昭58−11427
4がある0日本出願特許特開昭58−114274に示
されているベクトルプロセッサでは。
スカラ処理機摺に相当するスカラ処理ユニットと。
ベクトル処理機構に相当するベクトル処理ユニットから
成る。
第1図は、日本出願特許特開昭58−114274にあ
るようなベクトルプロセッサの端成図であり1本発明に
係る部分を中心に示している。第1図において、1は主
記憶、2は主記憶制御部、3はスカラ処理ユニット、4
はベクトル処理ユニットである。31はキャシュで主記
憶の1部の写しを持つ高速メモリである。32はレジス
タ群で、例えば汎用レジスタ16本、浮動小数点レジス
タ16本などより構成される。、33は演算器群で、ス
カラ処理ユニット内の演算処理を受けもつ。:34はス
カラ命令制御部で、従来の汎用計算機の命令に相当する
スカラ命令の読出し、解読、実行制御を行う。41はベ
クトル処理ユニット内にあるレジスタ群で、例えばベク
トルレジスタ群およびスカシレジスタ群から成る。バク
1−ルレジス5群は例えば32本のベクトルレジスタか
ら成り、1本のベクトルレジスタでは例えば256要素
から成るベクトルデータを保持することができる。スカ
シレジスタ群は例えば32本のスカラレジスタから成り
、1本のスカラレジスタは、スカラ処理ユニット内にあ
る汎用レジスタや浮動小数点レジスタと同様、スカラデ
ータを保持するものである。42はベクトル演算器群で
あり、ベクトルレジスタあるいはスカラレジスタから読
出したデータをパイプラインで処理して、結果をベクト
ルレジスタあるいはスカラレジスタに格納するものであ
る。ベクトル演算器としては例えば加算器や乗算器など
がある。43はベクトルアドレス群であり、ベクトル処
理ユニット4が主記憶1を参照してベクトルデータを読
み出したり書込んだりするときに、主記憶のベクトルデ
ータの位置を示すのに用いるアドレス・レジスタより成
る。ベクトルアドレスレジスタとしては、ベクトルデー
タの先頭番地を保持するために使用するベクトルベース
レジスタ(VBR)およびベクトルデータの要素間隔を
保持するベクトルインクリメントレジスタ(V T R
)から成る。44はベクトル命令実行制御部であり、ベ
クトル命令の読出し、解読、実行制御を行う7次に、プ
ログラムを処理実行するときに、スカラ処理ユニットお
よびベクトル処理ユニットがどのように動作するかにつ
いて説明する。これについては、雑誌日経エレクトロニ
クス1983年4月11日号のページ172〜173に
示されているが、ここでも簡単に示す。
ベクトル処理を行うには、主記憶からベクトルデータを
取り出すときに使用するバク1−ルアドレスレジスタ群
への値の事前設定等の前処理を行う必要がある。第1図
に示した従来のベクトルプロセッサにおいては、次の手
順でベクトル処理が遂行される。
手M1 スカラ処理ユニットにおいて、ベクトル処理に必要なベ
クトルアドレスレジスタ類、スカラレジスタに所定の値
をベクトル処理開始前に設定する。
毛肌又 スカラ処理ユニットより、実行するベクトル処理を記述
しているベクトル命令列の格納されている主記憶の先頭
番地や処理するベクトルの要素数等をベクトル処理ユニ
ットに通告して、ベクトル処理ユニットを起動する。
手を 起動されたベクトル処理ユニットは、スカラ処理ユニッ
トから通知された情報に従ってベクトル命令を順次読出
し、実行して、ベクトル処理を遂行する。
手順4 ベクトル処理ユニットを起動した後、スカラ処理ユニッ
トは例えば次のベクトル処理の%U 43など。
ベクトル処理と並行して別のスカラ処理が独立に処理で
きる。
一毛肌旦 ベクトル処理ユニットにおけるベクトル処理の終了は、
スカラ処理ユニットからベクトル処理ユニットの状態を
テストするか、あるいはベクトル処理ユニットからスカ
ラ処理ユニットへ割込みの形式で通知するかのいずれか
の形で扱われる。
上記のように、スカラ処理ユニットとベクトル処理ユニ
ットの関係は、スカラ処理ユニットが主、ベクトル処理
ユニットが従の主従関係にあり、スカラ処理ユニットか
らの指令でベクトル処理ユニットがベクトル処理を遂行
するという形で処理が進む。
第1図の従来のプロセッサにおいて、スカラ処理ユニッ
トとベクトル処理ユニットとの同期、通信を行うために
用意されている命令について第2図に示す。これらの命
令はすべて主ユニットであるスカラ処理ユニットで解読
・実行されるものである。
次に、簡単なFORTRANのプログラムの処理を例に
1.スカラ処理ユニットとベクトル処理ユニットがどの
ように同期1通信して処理を行うかを示し、合わせてそ
の問題点を示す。
第3図はFORTRANのプログラム例を示したもので
ある。第:3図のプログラムにおいて文識別番号2〜6
のDoループはベクトル処理ユニッ1〜で処理され、そ
の他の文はスカラ処理ユニツ1−で処理されろ。
第4図は、第3図のFORTRANプログラムに対応す
るオブジェクトプログラムである。オブジェクトプログ
ラムは、スカラ処理ユニットで実行されるスカラオブジ
ェクトと、ベクトル処理ユニットで実行されるベクトル
オブジェクトとから成る。
スカラオブジェクトにおいてスカラ命令iDが81から
811の11命令はベクトル処理前の準備処理である。
このうちS2からSllの10命令は、第3図のプログ
ラムにある配列A、B、C。
P、Qのアドレス情報をベクトル処理ユニット内のベク
トルベースレジスタ(VBR)、ベクトルインクリメン
トレジスタ(V I R)にセットするものである。ま
たSlは第3図のプログラムの変数Sの初期値0.0 
をベクトル処理ユニット内のスカラレジスタにセットす
るものである。スカラ命令iD  Sl2 はベクトル
処理ユニットを起動する命令であり、第4図に示したベ
クトルオブジェクトが格納されている主記憶のアドレス
などを通知してベクトル処理ユニットを起動する(詳細
は略す)、これによりベクトル処理ユニットは第4図に
示したベクトルオブジェクトにある命令を順次実行する
。スカラ命令iDの813はベクトル処理ユニットが動
作中かあるいは非動作中かをテストし、結果を条件コー
ドに反映させる命令(TpSt VCctor Pro
ceSsjnFC命令)であるゆベクトル処理ユニット
が動作中ならば、起動したベクトル処理が未だ完了して
いないということで、81、4のBC命令(口ranc
h on Condition命令)でS ]、 3と
814をループし、ベクトル処理の完了を待つ。ベクト
ル処理ユニットの実行が終了すると、スカラ命令jDの
815が実行されて、ベクトル処理ユニット内のスカラ
レジスタ0番に求まっている総和演算結果(第3図のプ
ログラムの変数S)がスカラ処理ユニット内の浮動小数
点レジスタ0番に取り出されて後続の演算(第3図のプ
ログラムの文識別番号7)に使用される。
第2図に示したスカラ処理ユニットとベクトル処理ユニ
ットとの同期通信手段を用いた上記の処理では次のよう
な問題点がある。
(1)ベクトル処理中に扱うすべての配列データのアド
レス情報を、ベクトル処理開始前にベクトル処理ユニッ
ト内のアドレスレジスタ類にすべてセットしておく必要
がある。
しかしながら、第4図のベクトルオブジェクト中の命令
v1のベクトルロード命令を実行するためには、スカシ
オブジェクト中の命令S2゜S3の2命令の処理が完了
していればよく、すべてのアドレス情報のセットを完了
しておく必要はない。
スカラ処理ユニットとベクトル処理ユニットは並列動作
可能であるから、アドレス情報をセットするスカラ命令
と、それを使うベクトル命令がうまく同期して処理され
れば、効率のよい処理を実現することができる。
(2)ベクトル処理ユニットで計算された結果をスカラ
処理ユニットで参照する場合、スカラ処理ユニットでは
ベクトル処理ユニットが結果を書き込んだかどうかをテ
ストする必要があるが、スカラ処理ユニットはベクトル
処理ユニットが動作中か非動作中のいずれの状態にある
がしがチェックできない。したがって、先に示した第4
図の例では、ベクトル命令v4で配列Aの総和演算結果
が求まっているにもかかわらず、ベクトル命令v5〜v
8がすべて完了するまでスカラ処理ユニットで値を参照
することができない。
以上のように、第2図に示したスカラ処理ユニットとベ
クトル処理ユニットとの間の同期通信手段では、両者の
間でベクトル処理起動から終了までの間は同期あるいは
通信を行うことができず、効率の悪い処理となっている
〔発明の目的〕
本発明の目的は、前述のような主ど従の関係がある複数
のプロセッサ間において、きめ細かな同期通信制御手段
を提供し、プロセッサ間の効率よい並列処理を実現する
ことにある。
〔発明の概要〕
従来の同期手段においては、主プロセッサが従プロセッ
サの処理を起動し、起動した処理が完了したかどうかを
主プロセッサ側よりテストするだけであったが、本発明
においては、主プロセッサにおけるある事象の発生まで
従プロセッサ側で新たな命令の起動を一時停止する機能
、および従プロセッサ側におけるある事象の発生を表示
する機能とその表示を主プロセッサがテストする機能を
実現するところに特徴がある。さらに、従プロセッサが
命令起動一時停止中であることの表示、および従プロセ
ッサにおける事象発生の表示を従プロセッサ側のプログ
ラム状態語(P S W 、 ProgramStat
us Word)内に設け、簡便な方法で同期手段を提
供するとともに、タスクスイッチ時には従来がら行われ
ているPSWの退避回復により同期制御情報も合わせて
保存することを実現する。
〔発明の実施例〕
以下、実施例により本発明の詳細な説明する。
実施例の説明に用いるプロセッサは第1図に示したプロ
セッサである。第1図のプロセッサにおいて、主プロセ
ッサに相当するのがスカラ処理ユニットであり、従プロ
セッサに相当するのがベクトル処理ユニットである。
実施例では、ベクトル処理ユニットのプログラム状態語
(Vector ProcessingProgram
 StatusWord、以下νPP5Wと略す)に2
ビツト情報ビツトを追加し、スカラ処理ユニットに命令
を2命令、ベクトル処理ユニツ1へ側に命令を2命令追
加して実現するので、最初にこれらの概要を示す6次に
、これらの手段を用いた同期制御の例を示す。
PSWは従来のほとんどのプロセッサに備わっており、
プロセッサの動作状態や次命令のアドレス等の重要な情
報を集中保持している。また。
PSWには通常未使用ビットがある場合が多い。
第1図に示したベクトル処理ユニットにおいてもPSW
が存在する。ここではバク1−ル処理ユニットのPSW
を特にVPPSWと呼ぶことにする。VPPSWの書式
の詳細は本発明とは直接関係ないので省略するが、本発
明ではvppswに次の2つのビットを追加する。
(1)一時停止ビット(Pauseビット、Pビットと
略す) 本ピットが1のときは、ベクトル処理ユニットにおける
新たな命令の処理開始を一時停止する。本ピットがOに
なれば一時停止状態が解除される。なお、本ピットは新
しく命令の処理を開始するのを一時保留させる機能のみ
を持つものであり、既に実行が開始されている命令およ
び実行中の命令には何ら影響を与えない。
(2)事象表示ビット(Signalビット、Sビット
と略す) 本ピットは、指定されたベクトル処理ユニットにおける
命令の処理が完了したときに1となる。本ピットの使用
法は後述する。
次にベクトル処理ユニットに追加する2つの命令につい
て説明する。
(t ) VPPAU命令(VP Pan5e命令)本
命令が実行されると、vppswのPビットが1となり
、本命令の次の命令以降の発行処理が一時停止する。
(2)VSiG命令(Vector Signal命令
)本命令の次に実行される命令の処理が完了したときに
、vppswのSビットを1にする。
次にスカラ処理ユニットに追加する2つの命令について
説明する。
(1,) R3MVP命令(Resume Vecto
r Processing命令)VPPSWのPビット
をテストし、Pの値が1ならばOにリセットして終了す
る。これによりベクトル処理ユニットの命令起動一時停
止状態が解除される。Pの値が0であった場合は1にな
るまで待ち、1になったら再び0とし終了する。
(2)TRB命令(Tcst & Re5et B  
bit命令)vppswのSビットをテストし、Sビッ
トの値が1ならば0にリセットして終了する。Sビット
の値がOであった場合は、1になるまで待ち。
1になったらOにリセットして終了する。
次に、以上に示したような同期手段を使用して第3図に
示したFORTRANプログラムがどのように処理され
るかについて示す。
第5図に、以上に示した同期手段を使用したときの第3
図のFORTRANプログラムのオブジェクトコードを
示す。オブジェクトは第4図の場合と同様、スカラオブ
ジェクトとベクトルオブジェクトとから成る。従来のオ
ブジェクトコードである第4図と、本発明の同期制御手
段を用いたオブジェクトコードである第5図とは酷似し
ており、各命令の左に付したスカラ命令iDおよびベク
トル命令iDが同一な命令は同一命令である。スカラオ
ブジェクトでは、スカラ命令iDh<5IOIのR5M
VP命令、スカラ命令iDがS 103 (7)R5M
VP命令、スカラ命令iDが5102のTRB命令が追
加されており、スカラ命令iDがそれぞれ813.81
4(7)TVP命令、BC命令が削除されている。ベク
トルオブジェクトでは、ベクトル命令iDが■101の
VPPAU命令、ベクトル命令i I)がV 102 
(7)VSiG命令、ベクトル命令iDがv103のV
PPAU命令が追加されている。これらの追加されてい
る命令がどのような機能を実現しているかについて以下
詳細に説明する。
(1)スカラ命令iDs]、2のEXVP命令第4図の
ようにアドレスレジスタへのセット等すべてのベクトル
処理準備が完了してから発行するのではなく、配列Bの
アドレス情報のセットが完了し、ベクトルオブジェクト
のベクトル命令iDがvlのVLの命令の実行開始が可
能となった時点で発行する。
(2)スカラ命令iD  8101のR3MVP命令ス
カラ命令iDが812のEXVP命令でベクトル処理を
起動した後、配列Cのアドレス情報のセットが完了した
時点で、ベクトル処理ユニットの命令起動一時停止解除
を指示する。ベクトルオブジェクトでは、配列Cのアド
レス情報を使用するベクトル命令iD、V2のVL命令
の前にベクトル命令iDV  101のVPPAU命令
が発行されて、ベクトル命令iD V2 のVL命令の
実行開始を一時保留している。スカラ命令iD S12
 のR3MVP命令は、ベクトル命令iDがV 101
 (7)VPPAU命令に対応し、配列Cのアドレス情
報のセットが完了したことによりベクトル命令iD V
2 のVL命令の起動一時停止を解除するものである。
ここで、スカラ処理ユニットとベクトル処理ユニットは
並列に独立して動作しており、スカラ命令iD  5I
OIのR3MVP命令とベクトル命令1DV101のV
PPAU命令とどちらが先に実行されるかわからないが
、特に問題は発生しない。即ち、ベクトル命令1DV1
01のVPPAU命令が先に実行された場合には、スカ
ラ処理ユニットにおいてスカラ命令iD 5101のR
8MVP命令が発行されるまでベクトル処理ユニットが
待たされる。逆にスカラ命令1D3101のVPPAU
命令が先に実行されたときには、ベクトル処理ユニット
においてベクトル命令iD VIOIのVPPAU命令
が発行されるまでスカラ処理ユニットが待たされる。
(3)スカラ命令iD  5103のR5MVP命令ス
カラ命令iDs  101のR3MVP命令の発行の後
、配列A、配列Q、配列Pのアドレス情報のセットが完
了した時点で、ベクトル処理ユニットの命令起動停止一
時解除を指示する。ベクトルオブジェクトでは、配列A
のアドレス情報を使用するベクトル命令iD V5のV
ST命令の前にベクトル命令iD V2O3のVPPA
U命令が発行されて、ベクトル命令iD V5のVST
命令の実行開始を一時保留している。スカラ命令iD 
 5103のRSMVP命令はベクトルi D V 1
03 ノVPPAU命令に対応し、配列A。
配列Q、配列Pのアドレス情報のセットが完了したこと
により、ベクトル命令1DV5以降の命令の起動一時停
止を解除するものである。
ナオ、ス、fr ラ命+ i D  S 101 (1
)R5MVP命令とスカラ命令iD  8103のR3
MVP命令との間に何個かのR3MVP命令を挿入しく
ベクトルオブジェクト内にも対応するVPPAU命令を
挿入する。)スカラ処理ユニットとベクトル処理ユニッ
トとのさらに細かい同期をとっても何ら差しつかえはな
いが、スカラ命令i D  S 101 (7)R3M
VP命令によるベクトル命令起動一時停止解除により、
スカラ命令に比べて実行時間の長いベクトル命令V2.
V3.V4が処理開始されるため、その間にスカラ命令
86〜Sllを並列に処理する時間が充分にあると判断
して、ここでは第5図のようにした。・ (4)スカラ命令iD 5102のTRB命令スカラ命
令iD  S15のMVFS命令でスカシレジスタ0番
に求まったベクトル総和演算の結果を参照するため、ベ
クトル総和演算結果のスカシレジスタ0番へ書込み完了
が表示されるまでこのTRB命令で待つ、このTRB命
令は。
ベクトルオブジェクト中のベクトル命令1DV102の
VSiG命令に対応し、先述の通り書込み完了表示はV
PPSVのSビットを介して行われる。
(5)ベクトル命令iD VIOIのVPPAU命令ベ
クトル命令iD V2のVL 命令を実行するために、
配列Cのアドレス情報がVBRおよび。
VIRの0番にセットされるまで、ベクトル命令の起動
処理を一時停止する。起動一時停止はvppstIlの
Pビットを1にすることで表示される。
本命令はスカラオブジェクト中のスカラ命令iD  8
101のR5MVP命令に対応し、コノ命令で起動一時
停止が解除される。
(6)ベクトル命令i D V 102 (7)VSi
G命令本命令の次の命令であるベクトル命令1Dv4の
VSM命令(ベクトル総和演算)が完了したときにvp
pswのSビットを1にする。これにより他の命令の影
響を受けずにVSM命令の演算結果をスカラ処理ユニッ
トでいち早く参照することを可能にする。
(7)ベクトル命令iD V2O3のVPPAU命令ベ
クトル命令iD V5以降のVST命令あるいはVL命
令などを実行するために、配列A。
配列Q、配列Pのアドレス情報のセットが完了されるま
で、ベクトル命令の起動を一時停止する。本命令はスカ
シオブジェクト中のスカラ命令i D  S 103 
(7)R5MVP命令に対応する。
次に、第5図に示した本発明の同期制御手段を使用した
オブジェクトが、第4図の従来のオブジェクトに対して
どの程度効率がよいかを示す0両者の比較はタイムチャ
ートにより示す。
第6図は従来のオブジェクトである第4図に対応するタ
イムチャート、第7図は本発明の同期制御手段を利用し
たオブジェクトである第5図に対応するタイ11チヤー
1へである。第6図あるいは第7図のタイムチャートに
おいて、縦軸は命令のデコードおよび発行順、横軸は時
間軸で単位はマシンサイクル数である。縦軸の命令デコ
ード類は第4図あるいは第5図のスカラ命令iDおよび
ベクトル命令iDで示されており、上半分はスカラオブ
ジェクト、下半分はベクトルオブジェクトである。タイ
ムチャートの作成にあたっては次の仮定をおいている。
(1)ベクトル処理ユニットにおけるパイプライン処理
ピッチは1サイクルである。
(2)ベクトル処理において最初のデータがパイプを通
過する時間(トラベルタイムなどと呼ばれることがある
)は演算の種類によって異なるが、ここでは−律10サ
イクルとする。
(3)第3図のFORTRANプログラムではr)0ル
ープの回数が100であり、1個のベクトル演算で10
0個の要素を処理する。従って、(1)。
(2)より1個のベクトル命令の処理時間は、最初の結
果が得られるのに10サイクル、その後100個の結果
が次々と、100サイクルかかつて得られるため、11
0サイクルとなる。
(4)スカラ命令の実行時間は一部2サイクルとする。
(5)スカラ命令あるいはベクトル命令のデコード処理
ピッチおよび発行時間ピッチは2サイクルとする。
(6)ベクトルプロセッサの中にはチェイニングと呼ば
れる高速化技術を採用しているものが多い。チェイニン
グについては日本出願特許特開昭58−114274に
その詳細が示されている。第4図あるいは第5図に示し
たベクトルオブジェクトの各命令の中でチェイニングの
対象となるのは、■ベクトル命令iD Vlあるいは■
2とv3との間、■v3とv4との間、■v6とv7と
の間、■v7とv8との間である。
以上の仮定は実際のプロセッサの詣元を正確に反映して
いるものではないが、一般的なベクトルプロセッサの特
性を反映しており、また本発明の詳細な説明するには充
分である。
第6図と第7図のタイムチャートを比較する。
(1)B処理時間は従来技術である第6図が272サイ
クルであるのに対し、本発明の技術を用いた第7図は2
48サイクルと短縮されている。これは、従来技術では
ベクトル処理準備処理がすべて完了してがらでしかベク
トル処理が開始されないのに対し1本発明を用いた場合
にはベクトル処理準備の一部を完了しただけで−早くベ
クトル処理が開始できることによる。
(2)第6図では239サイクルもの間ベクトル処理が
完了するまでスカラ処理ユニットは待たされている。こ
の中には、その処理完了を待つ必要のないベクトル命令
v5〜v8の処理時間も含まれている。これに対し第7
図ではスカラ処理ユニットが待たされる時間は105サ
イクルである。
(3)スカラ処理ユニットがスカラ命令1DS15の命
令を実行してベクトル処理ユニットで計算された総和演
算結果を取り出すのは、第6図が272サイクル目であ
るのに対し、第7図では140サイクル目と早くなって
いる。
次に1本発明の同期制御手段を処理するための制御論理
について説明する。制御論理は特に大規模なものではな
く、第1図に示したベクトルプロセッサの中で、スカラ
命令制御部34およびベクトル命令実行制御部44に論
理追加をするだけで実現される。
第81ソ1は本発明の同期制御手段を処理する制御論理
を示す図である。第8図において34はスカラ命令制御
部、44はベクトル命令実行制御部であり、それぞれ第
1図にあったものと同等である6まずスカラ命令制御部
34の内部について説明する。301はスカラ命令レジ
スタであり、信号線310を介して送られてくるスカラ
命令を取り込み、保持するものである。302はスカラ
命令デコード回路であり、スカラ命令レジスタ301に
あるスカラ命令を解読する。303はスカラ命令起動論
理であり、スカラ命令デコード回路302から出力され
る解読情報をもとに、命令の処理に関係する演算器やレ
ジスタなどに信号線群313を介して起動信号を送出す
る。304はORゲートである。信号線311はR5M
VP命令がデコードされたとき、信号線312けゴR8
命令がデコードされたときにそれぞれ1となるものであ
る。次にベクトル命令実行制御部44の内容について説
明する。401はベクトル命令レジスタであり、信号線
4】0を介して送られてくるベクトル命令を取り込み保
持する。402はベクトル命令デコド回路であり、ベク
トル命令レジスタ401に保持されているベクトル命令
を解読する。403はベクトル命令起動判定論理であり
1次のような機能を有する。すなわち、ベクトル処理ユ
ニット中の演算器やベクトルレジスタなどの使用状況を
!、!δ中管理し、ベクトル命令デコード回路402か
ら送られてくる命令解読情報を調べ、該ベクトル命令が
起動可能かどうかを判定する。判定の結果、起動町とな
った場合は信号線群4】]を介して該命令の処理に関係
する演算器やベクトルレジスタ等に起動信号を発生する
。信号線群412は実行中であったベクトル命令が終了
したことを通告してくるものであり、ベクトル命令起動
判定論理403に入力されて、実行が終了したベクトル
命令が使用していた演算器やベクトルレジスタ等の使用
状況管理情報を変更する。信号線413はVPPAU命
令、信号線414はVSiG命令がデコードされんとき
にそれぞれ1となる信号線である。
450.451はレジスタである。レジスタ450はV
SiG命令がデコードされて信号fi414が1になる
とセットされろ。レジスタ450がオンの場合は1次に
デコードされた命令に関しベクトル命令デコード回路4
02から出力される解読情報をレジスタ451にセット
することを指示する。これにより、VSiG命令の次の
命令に関する情報がレジスタ451に保持される。45
2は比較回路であり、レジスタ451に保持されている
VSiG命令の次の命令の情報と、信号線群412を介
して送られてくる実行が終了した命令に関する情報とを
比較する。信号線群412を介して送られてくる情報が
レジスタ451に保持されている命令に関するものであ
れば、比較回路452は信号線451を1とする。すな
わち、VSjG命令の次の命令の実行が完了したとき信
号線415が1となってその旨が通告される。453は
VPPSW (VectorProcessing P
rogram 5tatus Word)であり、ベク
トル処理ユニットで処理中のプログラムの状態を保持す
る。本発明では前述のPビットおよびSビットが追加さ
れている。Pビットの出力はベクトル命令起動判定論理
403に入力されている。Pビットが1のときはその旨
がベクトル命令起動判定論理403に通知されて、ベク
トル命令の起動が抑止される。454はPビット登録制
御論理、455はSビット登録制御論理である。これら
の制御論理の機能を、スカラ命令であるR3MVP命令
、TR8命令、バク1−ル命令であるl/PPAU命令
、VSiri命令の処理と関連付けて説明する。
(1)Pピット登録制御論理454の機能ベクトル処理
ユニットでVPPAU命令がデコードされると信号線4
13を介してその旨が通告されろ。それに応じてPビッ
トを1にする。
スカラ処理ユニットでR8MVP命令がデコードされろ
とその旨が信号線311を介して通告される。その時P
ビットの値が1であればこれを0にリセットする。Pビ
ットの値が0であれば信号線416をオンとしてその旨
をスカラ命令制ネルコ303に通告し、スカラ命令の起
動(すなわち該R5MVP命令)を一時保留する。その
後ベクトル処理ユニットでVPPAU命令がデコードさ
れその旨が通告されると、信号線416をオフとしてス
カラ命令の起動保留を解除する。このときPビットの値
はOのままとしておく。
R8MVP命令とVI’PAu命令とが同時にデコード
された場合には、Pビットは0にする。
(2)Sビット登録制m論理455の機能ベクトル処理
ユニットでVSiG命令が処理され、VSjG命令の次
の命令の処理が完了するとその旨が信号線415を介し
て通告される(前述)。
これに対応してSビットを1にセットする。スカラ処理
ユニットにおいてT R8命令がデコードされるとその
旨が信号線:312を介して通告される。その時Sビッ
トの値が1であればこれをリセットする。Sビットの値
がOであれば信号線417をオンとしてその旨をスカラ
命令制御部303に通告し、スカラ命令の起動(すなわ
ち該TR8命令)を一時保留する。その後、VSiG命
令の次の命令の処理が完了し、その旨が通告されると、
信号線417をオフとしてスカラ命令の起動保留を一時
解除する。このときSビットの値はOのままとしておく
DSiG命令の次の命令の完了と’r Rs命令とが同
時であった場合には、Sビットは0にする。
以−ヒ示したような第8図の回路によって、本発明に示
した同期制御手段が処理できる。
なお、実施例ではベクトルプロセッサを対象としたが1
本発明の適用はベクトルプロセッサに限るものではない
。例えばスカラ処理ユニットとアレイ処理ユニット等、
主従関係のあるあらゆるプロセッサ間同期制御に適用で
きる。
〔発明の効果〕  − 以上説明したように、本発明によれば、主と従の関係が
ある複数のプロセッサ間において、従プロセッサが任意
の時点で自らの命令起動処理を一時停止し、その解除を
主プロセッサが任意の時点で行えること、および従プロ
セッサにおける事象の発生の表示が命令単位で行うこと
ができ、かつ主プロセッサは任意の時点で事象発生表示
がなされるままで処理を中断できるため、主プロセッサ
と従プロセッサとの間で命令単位できめ細かに同期制御
が行えるという効果がある。さらに、本発明で提供する
同期制御手段は、従来の命令列にほとんど影響を与えず
1本発明の導入に伴う言語コンパイラ等の負担を怪減す
ると共に1本発明を実現する論理回路も従来の小規模な
修正で実現でき、導入が簡便という特徴がある。
【図面の簡単な説明】
第1図はベクトルプロセッサの全体構成を示す図、第2
図は従来方式の同期通信手段を説明する図、第:3図は
実施例の説明に用いるF ORT 11 A Nプログ
ラム、第4図は従来技術を用いたときのオブジェク1−
コードを説明する図、第5図は本発明の同期手段を用い
たときのオブジェクトコードを説明する図、第6図は第
4図のオブジェクトコードの実行タイムチャート、第7
図は第5図のオブジェクトコードの実行タイムチャート
、第8図は本発明の同期制御を実現する回路を示す図で
ある。 34・・・スカラ命令制御部、44・・・ベクトル命令
実行制御部、453・・・VPPSW 、454・・・
Pビット登録制御論理、455・・・Sビットへ?、@
制御論理、冨1図 不 Z 図 茅  3  図 7    X二Sfz

Claims (1)

  1. 【特許請求の範囲】 1、他のプロセッサに対し処理の開始を指示することが
    でき、また該プロセッサの動作状態をテストする機能を
    もつ主プロセッサと、主プロセッサからの指示によって
    処理を開始することができ、かつ処理の完了を主プロセ
    ッサに通告することができる従プロセッサとから成る複
    数のプロセッサシステムであって、 1)従プロセッサに自らの命令起動処理の一時停止を指
    示する命令を設け、かつ該命令により命令起動処理が一
    時停止されているときにはその旨を表示する手段を設け
    、 2)主プロセッサに、該一時停止表示手段をテストして
    、オンならば該一時停止表示手段をリセットして、従プ
    ロセッサの命令起動処理一時停止を解除し、オフならば
    該一時停止表示手段がオンとなるまで待つ命令を設け、 主プロセッサと従プロセッサとの間の命令単位での同期
    制御を可能とすることを特徴とするマルチプロセッサシ
    ステム。 2、特許請求の範囲第1項のマルチプロセッサシステム
    であって、従プロセッサの命令起動一時停止表示手段を
    従プロセッサのプログラム状態語にもつことを特徴とす
    るマルチプロセッサシステム。 3、他のプロセッサに対し処理の開始を指示することが
    でき、また該プロセッサの動作状態をテストできる機能
    をもつ主プロセッサと、主プロセッサからの指示によっ
    て処理を開始することができかつ処理の完了を主プロセ
    ッサに通告することができる従プロセッサとから成る複
    数のプロセッサシステムであって、 1)従プロセッサの指定された命令が完了したことを表
    示する手段と、 2)該表示手段の状態を調べ、オンならば該表示手段を
    リセットし、オフならば該表示手段がオンとなるまで待
    つ命令を主プロセッサ側に設ける ことを特徴するマルチプロセッサシステム。 4、特許請求の範囲第3項のマルチプロセッサシステム
    であって、該表示手段を従プロセッサのプログラム状態
    語にもつことを特徴とするマルチプロセッサシステム。
JP61000563A 1986-01-08 1986-01-08 マルチプロセツサシステム Expired - Lifetime JP2610821B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP61000563A JP2610821B2 (ja) 1986-01-08 1986-01-08 マルチプロセツサシステム
EP86118136A EP0231526B1 (en) 1986-01-08 1986-12-30 Multi-processor system
DE8686118136T DE3684293D1 (de) 1986-01-08 1986-12-30 Vielfachprozessorsystem.
US07/000,445 US4803620A (en) 1986-01-08 1987-01-05 Multi-processor system responsive to pause and pause clearing instructions for instruction execution control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61000563A JP2610821B2 (ja) 1986-01-08 1986-01-08 マルチプロセツサシステム

Publications (2)

Publication Number Publication Date
JPS62159268A true JPS62159268A (ja) 1987-07-15
JP2610821B2 JP2610821B2 (ja) 1997-05-14

Family

ID=11477186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61000563A Expired - Lifetime JP2610821B2 (ja) 1986-01-08 1986-01-08 マルチプロセツサシステム

Country Status (4)

Country Link
US (1) US4803620A (ja)
EP (1) EP0231526B1 (ja)
JP (1) JP2610821B2 (ja)
DE (1) DE3684293D1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4987534A (en) * 1986-08-20 1991-01-22 Nec Corporation Processor having synchronized operation between a CPU and a vector processor
US5010477A (en) * 1986-10-17 1991-04-23 Hitachi, Ltd. Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
JPS6432379A (en) * 1987-07-29 1989-02-02 Hitachi Ltd Computer
US5008812A (en) * 1988-03-18 1991-04-16 Digital Equipment Corporation Context switching method and apparatus for use in a vector processing system
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
JPH0314025A (ja) * 1989-06-13 1991-01-22 Nec Corp 命令実行制御方式
GB8921143D0 (en) * 1989-09-19 1989-11-08 Psion Plc Serial data transmission
AU7305491A (en) * 1990-01-29 1991-08-21 Teraplex, Inc. Architecture for minimal instruction set computing system
US5475770A (en) * 1990-09-24 1995-12-12 Cgk Computer Gesellschaft Konstanz Mbh Parallel recognition of document images with a time-elapsed processing abortion to improve overall throughput
US5956514A (en) * 1991-04-12 1999-09-21 Boeing North American, Inc. Apparatus and method for multiple processor software development
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
US5426754A (en) * 1992-05-26 1995-06-20 International Business Machines Corporation Cross-interrogate method and means for combined scaler and vector processing system
US5446913A (en) * 1992-12-16 1995-08-29 International Business Machines Corporation Method and system for nonsequential execution of intermixed scalar and vector instructions in a data processing system utilizing a finish instruction array
US5848276A (en) * 1993-12-06 1998-12-08 Cpu Technology, Inc. High speed, direct register access operation for parallel processing units
GB9514695D0 (en) * 1995-07-18 1995-09-13 Sgs Thomson Microelectronics Combining data values
US6233704B1 (en) * 1996-03-13 2001-05-15 Silicon Graphics, Inc. System and method for fault-tolerant transmission of data within a dual ring network
JP3650519B2 (ja) * 1997-12-17 2005-05-18 株式会社ルネサステクノロジ マイクロコンピュータ
US6813701B1 (en) * 1999-08-17 2004-11-02 Nec Electronics America, Inc. Method and apparatus for transferring vector data between memory and a register file
US6530011B1 (en) * 1999-10-20 2003-03-04 Sandcraft, Inc. Method and apparatus for vector register with scalar values
JP3708853B2 (ja) * 2001-09-03 2005-10-19 松下電器産業株式会社 マルチプロセッサシステムおよびプログラム制御方法
FR2867872A1 (fr) * 2004-03-18 2005-09-23 St Microelectronics Sa Dispositif et procede de gestion d'un etat d'attente d'un microprocesseur
FR2867873A1 (fr) * 2004-03-18 2005-09-23 St Microelectronics Sa Dispositif et procede de gestion d'un etat d'attente d'un microprocesseur
WO2013166101A1 (en) * 2012-05-02 2013-11-07 Massachusetts Institute Of Technology Managing buffer memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5538707A (en) * 1978-09-11 1980-03-18 Nippon Telegr & Teleph Corp <Ntt> Solidified illumination source

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3678467A (en) * 1970-10-20 1972-07-18 Bell Telephone Labor Inc Multiprocessor with cooperative program execution
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
JPS5829549B2 (ja) * 1980-12-23 1983-06-23 富士通株式会社 レジスタ干渉制御方式
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
US4502116A (en) * 1982-11-17 1985-02-26 At&T Bell Laboratories Multiple processor synchronized halt test arrangement
EP0123337A3 (en) * 1983-04-18 1988-05-18 Motorola, Inc. A method and apparatus for coordinating execution of an instruction by a coprocessor
EP0131658B1 (en) * 1983-07-08 1987-10-28 International Business Machines Corporation A synchronisation mechanism for a multiprocessing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5538707A (en) * 1978-09-11 1980-03-18 Nippon Telegr & Teleph Corp <Ntt> Solidified illumination source

Also Published As

Publication number Publication date
DE3684293D1 (de) 1992-04-16
EP0231526A2 (en) 1987-08-12
EP0231526A3 (en) 1988-10-12
EP0231526B1 (en) 1992-03-11
US4803620A (en) 1989-02-07
JP2610821B2 (ja) 1997-05-14

Similar Documents

Publication Publication Date Title
JPS62159268A (ja) マルチプロセツサシステム
US5341482A (en) Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US6842811B2 (en) Methods and apparatus for scalable array processor interrupt detection and response
US5218712A (en) Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
EP0207506A2 (en) Vector processing apparatus
JPH02238553A (ja) マルチプロセツサ・システム
JPH0766329B2 (ja) 情報処理装置
JPH087678B2 (ja) 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法
JPS58151655A (ja) 情報処理装置
CN110659115A (zh) 具有硬件辅助任务调度的多线程处理器核
JPS58149541A (ja) デ−タ処理装置
US6347368B1 (en) Microcomputing device for exchanging data while executing an application
JP2778717B2 (ja) データ処理ユニット
JPH0192843A (ja) データ処理装置
JP2553526B2 (ja) マルチタスク処理装置
JPH0279122A (ja) 浮動小数点演算機構
JP2846904B2 (ja) 付加演算装置制御方式
JPH07244588A (ja) データ処理装置
JPH01213721A (ja) コンパイラ方式
JPH03184127A (ja) レジスタ退避制御方法
JPS63216136A (ja) 多重言語処理方式
JPH01147773A (ja) ベクトル処理装置
JPH04353923A (ja) 電子計算機の並列命令実行方式
JPS62166463A (ja) デ−タ転送方式
JPS62293435A (ja) デ−タプロセツサ

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term