JPH04195664A - マルチプロセッサシステム - Google Patents

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

Info

Publication number
JPH04195664A
JPH04195664A JP33155790A JP33155790A JPH04195664A JP H04195664 A JPH04195664 A JP H04195664A JP 33155790 A JP33155790 A JP 33155790A JP 33155790 A JP33155790 A JP 33155790A JP H04195664 A JPH04195664 A JP H04195664A
Authority
JP
Japan
Prior art keywords
processor element
register
synchronization
instruction
data
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
JP33155790A
Other languages
English (en)
Other versions
JP2907533B2 (ja
Inventor
Kenichi Kurosawa
黒沢 憲一
Masahiko Saito
雅彦 齊藤
Yoshiki Kobayashi
芳樹 小林
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 JP33155790A priority Critical patent/JP2907533B2/ja
Publication of JPH04195664A publication Critical patent/JPH04195664A/ja
Application granted granted Critical
Publication of JP2907533B2 publication Critical patent/JP2907533B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、マルチプロセッサシステムに関し、特に、複
数個のプロセッサエレメントにまたがって協調動作する
プログラムの実行等に適したプロセッサエレメント間の
同期の技術に関するものである。
[従来の技術] 複数個のプロセッサエレメントを有し、プログラムを並
列に実行するマルチプロセッサシステムの構成としては
、メモリ装置を共有した共有メモリ型マルチプロセッサ
システムが一般的である。
このような共有メモリ型マルチプロセッサシステムにお
いて、異なったプロセッサエレメントで実行中のプログ
ラムを協調して動作させる場合には、通常、メモリ装置
を介して、データ転送や、同期を行う。
データ転送に関しては、送信側プログラムを実行してい
るプロセッサエレメントがデータをメモリ装置に書き込
んだ後、受信側プログラムを実行しているプロセッサエ
レメントがデータをメモリ装置から読み出す形式となる
また、同期に関して、最も単純な同期であるビジーウェ
イト(スピンロック)を考えると、次の形式となる。
すなわち、プロセッサエレメントが特定のデータをメモ
リ装置から読み出し、該データが一定の値となるまで、
メモリ装置からの読み出しを繰り返す。データが期待す
る値となれば、読み出しループから抜け、次の命令を実
行する。
また、この他、同期に関しては、専用のハードウェアを
設けたマルチプロセッサシステムも存在する。
代表的な例として、米国5equent社のマルチプロ
セッサBa1anceが挙げられる。 Ba1ance
においては、同期ハードウェアとして、SLIC(Sy
stem Link and Interrupt C
ontroller )と、5LICバスとを設けてい
る。5LICは5LICバスを制御する。
この5LICバスを介して、スピンロック、計数セマフ
ォ等の排他制御、割込み分配、エラー処理、構成制御を
行う。
Ba1anceにおける同期は、主として、異なったプ
ロセス(プログラム)間でデータ共有等を行う場合の排
他制御に使用され、データ転送を行う場合は、メモリ装
置を介して行われる。
なお、Ba1anceについての参考文献としては。
rS、Thakkar:The Ba1ance Mu
ltiprocessorSystem 丁EEE M
ICRO,Feb、 1988. pp、57−69J
がある。
[発明が解決しようとする課題] 前記のようなメモリを介して、データ転送や同期を行う
マルチプロセッサシステムは、複数個のプログラムが並
列に動作し、プログラム間での同期が稀な場合には効率
的である。
しかしながら、1つのプログラム内で並列に実行できる
部分が存在し、これをコンパイラ等によってマルチプロ
セッサシステムのハードウェアで並列に動作させるよう
にした場合には、同期、データ転送が頻繁に発生し、効
率が低下する場合がある。
特に、1つのプロセッサエレメント上で生成したデータ
を他プロセッサエレメント上で使用する場合に問題とな
る。
すなわち、1つのプロセッサエレメントのデータを他プ
ロセッサエレメント上で使用する場合、1)送信側プロ
セッサエレメントのレジスタに存在するデータをメモリ
装置の指定位置に書き込む:2)受信側プロセッサエレ
メントがメモリ装置の指定位置からデータを読み出す; という手順をとる必要がある。
さらに、この場合、送信側プロセッサエレメントが指定
メモリ位置にデータを重ね書きしないこと、および、受
信側プロセッサエレメントがデータの書き込み以前にデ
ータを読み出さないことを保証する必要があり、排他制
御等、同期をとる必要がある。
この結果、数命令から数十命令程度のオーバヘッドが発
生し得る。
一方、前記Ba1.anceに用いられているような。
同期専用ハードウェアを用いると、各同期並びに排他制
御自体は高速に(共有バスを使用しないため、メモリ参
照など他目的の共有バス使用と競合しない)行うことが
可能であるが、前記1)2)の手順と同期手順により、
同様のオーバヘッドが発生する。
そこで、本発明は、複数のプロセッサエレメント間の同
期を、少ない命令数で実現することを第1の目的とする
また、さらに、本発明は、複数のプロセッサエレメント
間の、データの転送を、少ないオーバーヘッドで実現す
ることを第2の目的とする。
[311Mを解決する手段] 前記目的達成のために、本発明は、n個のプロセッサエ
レメントと、該n個のプロセッサエレメントで共有され
るメモリ装置とを有するマルチプロセッサシステムであ
って、 該n個のプロセッサエレメント間でデータ転送を行う通
信バスと、バス調停回路と、各プロセッサエレメント毎
に備えられたn個の同期ファシリティとを有し、 かつ、前記バス調停回路は、通信バスへのアクセスを調
停する手段と、前記各同期ファシリティの制御状況を他
の同期ファシリティに通知する手段とを備え、前記同期
ファシリティは、バス調停回路よりの通知内容に応じて
自プロセッサエレメントの同期制御を行う同期制御手段
を備えることを特徴とする第1のマルチプロセッサシス
テムを提供する。
また、特に前記第1の目的達成のために、この第1のマ
ルチプロセッサシステムにおいて、前記プロセッサエレ
メントは、他の1個以上のプロセッサエレメントへ、自
プロセッサエレメントのレジスタのデータを送信する送
信命令と、これに対応する、他プロセッサエレメントの
レジスタのデータを受信する受信命令との2命令からな
るレジスタ転送命令を備え、 前記バス調停回路が通知する制御状況は、各プロセッサ
エレメントにおける前記レジスタ転送命令の実行状況で
あって。
前記同期ファシリティが備える同期制御手段は。
自プロセッサエレメントのレジスタ転送命令実行時に、
前記バス調停回路よりの通知内容に応じて、転送先プロ
セッサエレメントの同期ファシリティが対応したレジス
タ転送命令を実行している場合   ′には、前記通信
バスを介してレジスタ転送を実行し、相手プロセッサエ
レメントの同期ファシリティが対応したレジスタ転送命
令を実行していない場合には、相手プロセッサエレメン
トの同期ファシリティが対応するレジスタ転送命令を実
行するまで自プロセッサエレメントを一時停止状態とす
る手段であるマルチプロセッサシステムを提供する。
また、前記第1の目的達成のために、前記第1のマルチ
プロセッサシステムにおいて、前記プロセッサエレメン
トは、他の1個以上のプロセッサエレメントへ、自プロ
セッサエレメントのレジスタのデータを送信する送信命
令と、これに対応する、他プロセッサエレメントのレジ
スタのデータを受信する受信命令との2命令からなるレ
ジスタ転送命令を備え、 前記各同期ファシリティは、1以上のデータを記憶する
バッファを備え、がっ、前記同期制御手段は、バス調停
回路よりの通知内容に応じ、前記送信命令実行時に、転
送相手プロセッサエレメントの同期ファシリティの前記
バッファに空き領域が存在する場合には、前記通信バス
を介して送信するレジスタのデータを転送相手プロセッ
サエレメントの同期ファシリティの前記バッファに書き
込み、相手プロセッサエレメントのバッファに空き領域
が存在しない場合には、空き領域が発生するまで自プロ
セッサエレメントを一時停止状態とし、受信命令実行時
に、自同期ファシリティのバッファにデータが存在する
場合には、バッファからデータを読み出し、自同期ファ
シリティのバッファにデータが存在しない場合には、デ
ータが書き込まれるまで自プロセッサエレメントを一時
停止状態とする手段であって。
前記バス調停手段が通知する制御状況は、各同期ファシ
リティの前記バッファの格納状況であるマルチプロセッ
サシステムを提供する。
また、前記第2の目的達成のために、本発明は、nlQ
のプロセッサエレメントと、該n個のプロセッサエレメ
ントで共有されるメモリ装置とを有するマルチプロセッ
サシステムであって、各プロセッサエレメント毎に備え
られたn個の同期ファシリティとを備え、 かつ、前記プロセッサエレメントは、値を指定して自プ
ロセッサエレメントを停止させる停止命令と、値を指定
して停止中のプロセッサエレメントを再開する再開命令
とを備え。
前記同期ファシリティは、停止レジスタと、停止命令実
行時に、停止命令で指定された値を停止レジスタに格納
し、自プロセッサエレメントを一時停止状態とする手段
と、再開命令実行時に、再開命令で指定された値を前記
通信バスを介して他同期ファシリティに通知する手段と
、停止レジスタに格納された値と通信バスを介して通知
されたアドレスとの比較を行う比較回路と、比較回路で
の比較の結果が、一致であれば自プロセッサエレメント
の一時停止状態を解除する手段と、を備えたことを特徴
とする第2のマルチプロセッサシステムを提供する。
なお、前記停止命令、再開命令で指定する値には、プロ
セッサエレメント間で受は渡すデータの記憶されている
アドレスの値を含むのが望ましい。
また、前記第1のマルチプロセッサと第2のマルチプロ
セッサの各命令や各手段等を組み合わせて用いてもよい
なお、各プロセッサエレメントと共有メモリを接続する
共有バスがある場合には、前記通信バスとして、この共
有バスを共用するようにしてもよい。
口作用] 本発明に係る第1のマルチプロセッサシステムによれば
、前記同期ファシリティは、バス調停回路を介して、他
の同期ファシリティの状況を把握し、これに応じて自プ
ロセッサエレメントの同期制御を行う。
すなわち、たとえば、前記プロセッサエレメントに、他
の1個以上のプロセッサエレメントへ、自プロセッサエ
レメントのレジスタのデータを送信する送信命令と、こ
れに対応する、他プロセッサエレメントのレジスタのデ
ータを受信する受信命令との2命令からなるレジスタ転
送命令を備え、メモリ装置を介さない1通信バスを用い
たプロセッサエレメント間の直接のデータ転送を可能と
する。
そして、前記バス調停回路を介して他の同期ファシリテ
ィにおける前記レジスタ転送命令の実行状況を、前記同
期ファシリティが備える同期制御手段で把握し、これを
もとに、レジスタ転送命令実行時には、転送先同期ファ
シリティが対応したレジスタ転送命令を実行している場
合には、前記通信バスを介してレジスタ転送を実行し、
相手同期ファシリティが対応したレジスタ転送命令を実
行していない場合には、相手同期ファシリティが対応す
るレジスタ転送命令を実行するまで自プロセッサエレメ
ントを一時停止状態とすることにより、転送相手プロセ
ッサエレメントとの同期をとる。
または、前記各同期ファシリティに、1以上のデータを
記憶するバッファを備え、バス調停回路を介して他同期
ファシリティのバッファの格納状況を把握し、これをも
とに、前記同期制御1半段で、前記送信命令実行時に、
転送相手プロセッサエレメントの同期ファシリティの前
記バッファに空き領域が存在する場合には、前記通信バ
スを介して送信するレジスタのデータを転送相手プロセ
ッサエレメントの同期ファシリティの前記バッファに書
き込み、相手プロセッサエレメントの同期ファシリティ
のバッファに空き領域が存在しない場合には、空き領域
が発生するまで自プロセッサエレメントを一時停止状態
とし、受信命令実行時に、自プロセッサエレメントの同
期ファシリティのバッファにデータが存在する場合には
、バッファからデータ読み出し、自プロセッサエレメン
トの同期ファシリティのバッファにデータが存在しない
場合には、データが書き込まれるまで自プロセッサエレ
メントを一時停止状態とすることにより。
転送相手プロセッサエレメントとの同期をとる。
また、本発明に係る第2のマルチプロセッサシステムに
よれば、前記プロセッサエレメントに値を指定して自プ
ロセッサエレメントを停止させる停止命令と、値を指定
して停止中のプロセッサエレメントを再開する再開命令
とを備え、かつ、同期ファシリティは、停止レジスタと
、停止命令実行時に、停止命令で指定された値を停止レ
ジスタに格納し、自プロセッサエレメントを一時停止状
態とする手段と、再開命令実行時に、再開命令で指定さ
れた値を前記通信バスを介して他プロセッサエレメント
に通知する手段と、停止レジスタに格納された値と通信
バスを介して通知されたアドレスとの比較を行う比較回
路と、比較回路での比較の結果が、一致である場合に自
プロセッサエレメントの一時停止状態を解除することに
より、他プロセッサエレメントとの同期をとる。
(以下余白) [実施例] 以下1本発明に係るマルチプロセッサシステムの位置実
施例を説明する。
まず、第1図に本実施例に係るマルチプロセッサシステ
ムの構成を示す5 図中、A1がプロセッサエレメントであり、キャッシュ
記憶装置またはメモリ装置から読み出された命令とデー
タにより演算を実行する。
A2はキャッシュ記憶装置であり、メモリ装置に記憶さ
れている命令とデータを一時的に保持し。
共有バスの負荷を低減させる。
A3はメモリ装置である。
alは共有バスであり、キャッシュ記憶装置A2とメモ
リ装置A3との間で命令/データの転送を行う。
通常の共有メモリ型マルチプロセッサシステムは、以ヒ
のA1−A3とalにより構成されてい机 本実施例に係るマルチプロセッサシステムにおいては、
同期ファシリティとバス調停回路を用意する。
A4は同期ファシリティであり、プロセッサエレメント
単位に設けられ、プロセッサエレメント間で同期・通信
を行う。
A5はバス調停回路であり、プロセッサエレメント間で
の同期のために、共有バスa1の管理を行う。
なお、プロセッサエレメント間で同期・通信を行うため
に、データ/アドレス等の転送を行う必要があるが、こ
れは、共有バスa1を共用する。
ここで、第2図に本実施例に係るマルチプロセッサシス
テムの他の構成を示す。
この第2図に示す構成は、同期用の専用通信バスを設け
たものである。
図中−Al〜A5およびalは、先に示した第1図の同
符号部とと同じである。
この構成においては、A1−A3並びにalから構成さ
れているマルチプロセッサシステムに、同期ファシリテ
ィ、通信バス、バス調停回路を付加した構成をとる。
blは通信バスである。通信バスb1は、データ/アド
レス等を転送するために新たに設けた専用バスである。
このようにマルチプロセッサシステムを構成することに
より、プロセッサエレメント間で協調してプログラムを
実行することが可能である。
次に1本実施例においてプロセッサエレメント間での協
調に用いる協調命令について説明する。
本実施例で用いる協調命令は、プロセッサエレメント間
でレジスタの内容を転送する「レジスタ転送命令J、あ
るアドレスを指定して自プロセッサエレメントを停止さ
せる「停止命令」、指定したアドレスで停止しているプ
ロセッサエレメントを再開する「再開命令」である。
「レジスタ転送命令」は、従来のメモリを介したデータ
転送に代えて、1命令でデータ転送を実現するために用
いるものである。
このレジスタ転送命令は、特に、レジスタを数多く有す
るR I S C(Reduced In5truct
ion SetComputer)に有効的であるが、
これとは逆に、メモリ装置を介してデータを受は渡す必
要がある場合もある。
RISCのように数多くのレジスタを装備していないプ
ロセッサエレメントや、配列データのように大きなデー
タを受は渡す場合が、これに当たる。
この場合、受信側プロセッサエレメントで必要なデータ
が書き込まれるまで待つ機能、および、送信側プロセッ
サエレメントでデータを書き込んだことを受信側プロセ
ッサエレメントに知らせ、待ち状態を解除する機能が必
要である。
しかし、これを前述した従来のマルチプロセッサシステ
ムにおいて実現しようとする場合、スピンロックなどの
排他制御を用いて実現する必要があり、数命令から数十
命令程度のオーバヘッドが発生する。
そこで、これを少ない命令で実現するために、「停止命
令Jと「再開命令」を用いる。
ここで、本実施例で用いる各命令のフォーマットを第3
図に示す。
レジスタ転送命令に関しては2種類のフォーマットを示
した。
第1種のレジスタ転送命令(1)は送信側プロセッサエ
レメントが実行する送信命令のフォーマットと、受信側
プロセッサエレメントが実行する受信命令のフォーマッ
トとが異なる。
この2つの命令を組み合わせて使用する場合。
送信命令において、転送すべき値を保持するレジスタの
番号(R1)、受信側プロセッサエレメントの番号(P
III)、転送した値を格納するレジスタの番号(R2
)の3種類を指定する。受信命令では何も指定する必要
がない。
第2種のレジスタ転送命令(2)の命令フォーマットは
送受信共通である。
送信命令においては、転送すべき値を保持するレジスタ
の番号(R1)、受信側プロセッサエレメントの番号(
PEt)を指定する。受信命令においては、転送されて
きた値を格納するレジスタの番号(R1)と6送信側プ
ロセッサエレメントの番号(PEA)とを指定する。
なお、第3図のレジスタ転送命令のフォーマットでは、
プロセッサエレメントの番号を指定するフィールドが1
1ビツトであるため、1対1のレジスタ転送のみを行う
場合、プロセッサエレメントの数は最大211個まで許
容できる。
また、1対多のレジスタ転送を行う場合は、1ビツトを
1プロセッサエレメントと対応させる必要があるため、
最大11個までのプロセッサエレメントを許容できる。
一方、停止命令、再開命令において指定するアドレスは
レジスタR1と変位dとペースレジスタRhにより計算
される。通常の計算機においては、(Rh+Ri+d)
をアドレスとして計算することが多いが、本発明におい
ては、二九らの値により停止アドレスが一意に決定され
ることが保障されていれば十分である。アドレス値は、
プロセッサエレメント間で受は渡すデータのアドレス等
を格納する。
ところで、レジスタ転送の実行においては2種類の同期
方式を考えることができる。
すなわち、受信側プロセッサエレメントが受信命令を実
行しているか否かにかかわらず、送信側プロセッサエレ
メントがレジスタの内容を送信してそのまま次の命令を
実行できる方式(同期方式(a))と、受信側プロセッ
サエレメントが受信命令を実行するまで送信側プロセッ
サエレメントが一時停止状態となる方式(同期方式(b
))がある。
前述の2種類のフォーマットと2種類の同期方式との組
合せにより、4種類のハードウェアを考えることができ
る。
以下、命令フォーマット(1)と同期方式(a)とを組
み合わせたハードウェアの詳細、および、命令フォーマ
ット(2)と同期方式(b)とを組み合わせたハードウ
ェアの詳細の2種類について第4図〜第8図を用いて説
明する。
他の組み合わせに関しては、この2種類のハードウェア
を組み合わせることにより容易に実現できるため、説明
を省略する。
第4図、第5図は命令フォーマット(1)と同期方式(
a)とを組み合わせたハードウェアを示すものであり、
第6図、第7図が命令フォーマット(2)と同期方式(
b)とを組み合わせたハードウェアを示すものである。
また、第8図が2種類のハードウェアに共通の優先順位
決定回路である。
なお、これらの各図においては、プロセッサエレメント
が2台であると仮定している。しかしながら、これをn
台のプロセッサエレメントに拡張することは容易である
以下、図面に従って説明する。
まず、第4図に、命令フォーマット(1)と同期方式(
a)との組み合わせた場合の同期ファシリティA4の内
部構成を示す。
前述したように、同期方式(a)においては、送信命令
を実行したプロセッサエレメントが受信側プロセッサエ
レメントの受信命令を待つことはない。
このため、各プロセッサエレメントに対して、転送され
てきたレジスタの値とその値を格納すべきレジスタの番
号とを一時的に保持しておくバッファ(レジスタファイ
ル)を用意しておく必要がある。
Dlがレジスタの値と格納先のレジスタ番号を保持して
おく同期レジスタファイルである。
D2.D3は同期レジスタファイルの71−レスを指定
するアドレスレジスタであり、それぞれ、受信側プロセ
ッサエレメントが受信値を読み呂す場合、送信側プロセ
ッサエレメントが送信値を書き込む場合に使用される。
D4は加算器であり、アドレスレジスタD2゜D3によ
る同期レジスタファイルD1の読み出し/書き込みの後
に、各アドレスレジスタの値を増加させる。
同期レジスタファイルD1はFT、FO(先入れ先出し
)形式で読み書きを行うので、アドレスレジスタD2.
D3共に読み書きの後にアドレスを増加しなければなら
ないためである。
D5はセレクタであり、読み出し/書き込みの各動作に
したがって、同期レジスタフフィルD1へのアドレス入
力をアドレスレジスタD2.D3のいずれかから選択す
る。
D6.D7は比較回路である。同期レジスタファイルD
1に記憶されているデータがない場合には受信命令を実
行するプロセッサエレメントを停止させ、同期レジスタ
ファイルD1の容量限度までデータが格納されている場
合には送信命令を実行するプロセッサエレメントを停止
させなければならない。
読み出しアドレスレジスタD2の値をRAとし、書き込
みアドレスレジスタD3の値をWAとすると、rWA=
RAJ を表す信号を生成することにより、同期レジス
タファイルD1に記憶されているデータがないことを示
すことができる。
また、rWA+1=RA」を表す信号により、同期レジ
スタファイルD1の容量限度までデータが格納されてい
ることを示すことが可能である。
d1〜d8は制御線を示す。
dlはクロック信号線であり、これを入力クロックとし
てプロセッサエレメントAl、アドレスレジスタD2.
D3等は動作する。d2は読み出し信号線であり、プロ
セッサエレメントA1が受信命令を実行した場合、ro
NJとなる。d3は書き込み信号線である。他プロセッ
サエレメントが自プロセッサエレメントに対して送信命
令を実行した場合、信号d3が送られる。
同期レジスタファイルD1への読み出し要求と書き込み
要求が同時に起こる場合、いずれか一方の要求を待たせ
ておく必要がある。
第4図のハードウェアは読み出し要求を待たせておく場
合を示している。
読み出し信号線d2と書き込み信号線d3の論理積をと
り、読み出し禁止信号d4として、プロセッサエレメン
トA1に要求を出している。
プロセッサエレメントA1は読み出し禁止信号d4がr
ONjを示す間、命令の実行を一時停止する。
d5.d6は比較回路の出力信号線であり、そ九ぞれ同
期レジスタファイルDiに記憶されているデータがない
こと、容量限度までデータが格納されていることを示す
信号1d5はプロセッサエレメントA1に接続される。
プロセッサエレメントA1は信号線d5がrONJを示
す間に受信命令を実行しようとしたとき、−時停止状態
となる。
実際に同期L/ジスタフアイルD1からデータを読み出
すのは、受信命令を実行し、かつ書き込み要求がなく、
同期レジスタファイルD1に記憶されているデータがあ
る場合に行われる。
したがって、信号線d2とd4’ とd5’ との論理
積を信号線d7とし、これを読み出しアドレスレジスタ
D2の制御線とする(X″はXの否定を表す)。
信号d7は同期レジスタファイルD1からデータを読み
出した後、アドレスレジスタD2を1加させる。同期レ
ジスタファイルD1へデータを書き込むことに関しても
同様であり、送信命令を実行し、かつ同期レジスタファ
イルD1の容量限度までデータが格納されていない場合
に行われる。
したがって、信号線d3とd6″との論理積を信号線d
8として、これを書き込みアドレスレジスタD3の制御
線とする。
信号d8は同期レジスタファイルD1へデータを書き込
んだ後、アドレスレジスタD3を増加させる。信号d8
はまた、セレクタD5の制御、同期レジスタファイルD
1の読み出し/書き込みモードの制御にも使用される。
d9.dloはレジスタの値および格納先レジスタの番
号を送受信するための信号線である。
また、dllは各種制御線であり、通信バスb1の使用
権要求のための信号線、受信側プロセッサエレメントの
番号を指定する信号線などを含む。
次に、第5図に命令フォーマット(コ、)とり期方式(
a)との組み合わせた場合のバス調停回路A5の内部構
成図を示す。
図中、Elは発振器であり、クロック信号を発生する。
E2は優先順位決定回路であり、通信バXblの使用が
複数個のプロセッサエレメントで競合した場合、可変も
しくは固定の優先順位にしたがって、通信バスb1の使
用権をいずれかのプロセッサエレメントに授与する。
E3は通信バスb1の使用権を記憶しておくフリップフ
ロップであり、各プロセッサエレメントに使用権が与え
られている間、この値をrONJに設定する。
E4はマルチプレクサであり、送信命令によって指定さ
れるプロセッサエレメント番号にしたがって、与えられ
た信号をいずれか一方の出力信号線に送出する。
e1〜e9は通信バスb1を構成する信号線である。
elはタロツク信号線であり、マルチプロセッサシステ
ム全体を制御するためのクロック信号を出力する。
信号線e1は、第4図におけるイ西号線d1に対応する
e2はバスリクエスト信号線であり、各プロセッサエレ
メントはレジスタ転送のために通信バスb1を使用する
場合には、バスリクエスト信号e2を出力する。
e3はバスグランド信号線である。あるプロセッサエレ
メントからバスリクエスト信号e2が出力され1通信バ
スb1の使用権を与えることが可能な場合、該プロセッ
サエレメントへバスグランド信号e3を送る。
同時に複数個のプロセッサエレメントからバスリクエス
ト信号e2が出力された場合、固定または可変の優先順
位にしたがって、信号4ge3により、通信バスblの
使用権を授与する。
e4は書き込み禁止信号線である。
第4図において説明したように、あるプロセッサエレメ
ントが送信命令を実行し、かつ、受信側プロセッサエレ
メントの同期レジスタファイルD1の容量限度までデー
タが格納さ九ている場合5送信命令を一時停止させる必
要がある。
そこで、送信命令を停止させることが必要な場合、信号
線e4に書き込み禁止信号を送出する。
e5は同期レジスタファイルD1の容量限度までデータ
が格納されていることを示す信号線である。
e6は書き込み信号線であり、各プロセッサエレメント
に対して送信命令が実行されたことを示す信号を送出す
る。
信号線e5.e6は、それぞれ第4図の信号線d6.d
3に対応する。
e7はプロセッサエレメント番号の指定を行う信号線で
ある。
送信命令実行時に、受信側プロセッサエレメントを指定
するために使用する。
信号線e2〜e4と87が第4図における信号線dll
に対応する。
e8.e9はそれぞれデータ線、レジスタ番号を指定す
る信号線であるが、バス調停回路A5はバスリクエスト
信号e2とバスグランド信号e3を用いてこれらを管理
するのみであり、バス調停回路A5内で直接使用される
ものではない。
次にバス調停回路A5内で生成される信号e4゜e6の
生成について述べる。
パスグランド信号e3の生成方式については後述する第
8図の説明において説明する。
書き込み要求信号e6は、送信命令実行時に指定される
プロセッサエレメントへ送出される信号である。
ここで、プロセッサエレメント番号は信号線e7により
指定され、いずれかのプロセッサエレメントが送信命令
を実行していることは全てのノヘスグラント信号e3の
論理和eloにより指定される。
したがって、信号線eloを入力とし、プロセッサエレ
メント番号e7を選択信号としたマルチプレクサE4の
出力信号をそのまま、書き込み要求信号e6とす九ばよ
い。
書き込み禁止信号e4は送信命令実行時に、受信側プロ
セッサエレメントの同期レジスタファイルD1の容量限
度までデータが格納されてしする場合に送出される。
同期レジスタファイルD1の容量限度までデータが格納
されていることは信号線e5によって、また送信命令を
実行中であることは信号1iie3またはe6(e3は
送信側、e6は受信側で検出)によって指定されるので
、信号線e5とe6との論理積e 1.1が受信側プロ
セッサエレメントでの書き込み禁止信号を示す。
そこで、信号allの全ての論理和e12を生成し、信
号e12とe3との論理積を生成すれば、これが、送信
側プロセッサエレメントでの書き込み禁止信号e4とな
る。
(以下余白) 以下、第3図において示した命令フォーマット(2)と
同期方式(b)とを組み合わせたハードウェアの詳細に
ついて説明する。
第6図に命令フォーマット(2)と同期方式(b)を組
み合わせた場合の同期ファシリティA4の内部構成を示
す。
第6図に示すように、同期ファシリティA4は信号線の
みから構成され、同期管理はバス調停回路A5による集
中管理で実現される。
図中、flはクロック信号線であり、前記信号線d1と
同様である。
f2.f3は読み出し信号線、書き込み信号線を示す。
レジスタ転送命令を実行する場合、受信命令実行時には
読み出し信号線f2.送信命令実行時には書き込み信号
線f3に信号を送出する。
f4は転送禁止信号であり、レジスタ転送において、送
信命令と受信命令とが対応していない場合、−時的にプ
ロセッサエレメントA1を停止させるために使用する。
f5はデータ線、f6は各種制御線である。
次に、第7図に命令フォーマット(2)と同期方式(b
)を組み合わせた場合のバス調停回路A5の内部構成を
示す。
図中、1−E3.およびe 1〜e 3は、先に示した
第5回の同符号部と同様の回路、信号線であるので説明
を省略する。
G1はマルチプレクサであり、受信命令実行時に、送信
側プロセッサエレメントに対して、読み出し信号を伝え
る役割を有する。
G2も同様のマルチプレクサであるが、送信命令実行時
に、受信側プロセッサエレメントに対して、書き込み信
号を伝える役割を有するものである。
G3は送信命令実行時に使用されるセレクタである。
各プロセッサエレメントからの読み出し信号を入力とし
、受信側プロセッサエレメントの番号を指定することに
より、受信側プロセッサエレメントの読み出し信号線を
選択する。
読み出し信号線はプロセッサエレメントが受(g命令を
実行したことを示すので、送信命令実行時にセレクタG
3の出力がrONJを示す場合、レジスタの内容を転送
できる。
G4は受信命令実行時に使用されるセレクタである。
各プロセッサエレメントからの書き込み信号を入力とし
、送信側プロセッサエレメントの番号を指定することに
より、送信側プロセッサエレメントの書き込み信号線を
選択する。送信命令と同様に、受信命令実行時にセレク
タG4の出力が「○N」を示す場合、レジスタの内容を
転送できる。
gl+g2はそれぞれ読み出し信号線、書き込み信号線
である。信号線gl、g2は受信命令、送信命令を実行
した場合に「○N」となる。
信号線gl+ g2は第6図における信号線f2゜f3
に対応する。
g3は転送禁止信号線である。送信命令または受信命令
を実行し、かつ、相手のプロセッサエレメントが受信命
令または送信命令を実行中でない場合に、信号が送出さ
れる。
転送禁止信号g3によりプロセッサエレメントの実行は
一時停止状態となる。
信号線g3は第6図における信号線f4に対応する。
g4はプロセッサエレメント番号の指定を行う信号線で
あり、レジスタ転送命令実行時に、指定される転送相手
のプロセッサエレメント番号を示す。
信号線e2+e3とg4は第6図における信号線f6に
対応する。
g5はデータ線であり、第6図におけるf5に対応する
バス調停回路A5内で生成される信号g3は、送信命令
または受信命令を実行し、かつ、相手のプロセッサエレ
メントが対応する受信命令または送信命令を実行中でな
い場合に送出される。
相手プロセッサエレメントが受信命令を実行中であるこ
とはセレクタG3の出力信号g6により、送信命令を実
行中であることはセレクタG4の出力信号g7によりそ
れぞれ示される。
したがって、送信命令を実行し、がっ、相手プロセッサ
エレメントが受信命令を実行中でないことは、信号g2
とg61 との論理積g8により示すことが可能である
また、受信命令を実行し、かつ、相手プロセッサエレメ
ントが送信命令を実行中でないことは、信号g1とg7
’ との論理積g9により示すことが可能である。信号
線g8とg9の論理和が転送禁止信号g3となる。
さて、ここで、第8図に、先に示した第5図および第7
図のバス調停回路A5において使用される優先順位決定
回路E2の内部構成を示す。
各プロセッサニレメン1〜のバスリクエスト信号e2.
パスグランド信号e3.およびクロック信号e1を入力
とする。
Hl、H2はフリップフロップである。Hlはフリップ
フロップH2に対して入力を遅らせるために用いられ、
H2は前回パスグランド信号e3を与えられたプロセッ
サエレメントを記憶しておくために使用される。
各プロセッサエレメントのバスリクエスト信号e2が競
合しない場合、バスリクエスト信号e2をそのままフリ
ップフロップE3の入力とし、パスグランド信号e3を
授与できる。
バスリクエスト信号e2が競合する場合(信号線e2の
論理積h1が「ON」となる場合)には、競合するプロ
セッサエレメント間で優先順位を計算し、優先順位の高
いプロセッサエレメントにパスグランド信号e3を送出
する必要がある。
プロセッサエレメント間で固定の優先順位を設定する方
法もあるが、第8図に示した優先順位決定回路において
は、前回パスグランド信号e3を与えられたプロセッサ
エレメントの優先順位を低くする方式をとる。
各プロセッサエレメントのパスグランド信号e3の論理
和の否定h2をフリップフロップH2のクロック入力と
する。これにより、いずれかのパスグランド信号e3が
「ON」からrOFFJに変化する(通信バスの使用権
を放棄する)ときに、フリップフロップH2の内容を書
き換える。
フリップフロップH1は第2番目のプロセッサエレメン
ト(PE2)のパスグランド信号e3を入力とする。
フリップフロップH1はクロック信号e1に同期させて
、PE2のパスグランド信号e3を遅延させる。
フリップフロップH1の出力信号線h3はフリップフロ
ップH2の入力信号となる。
このため、フリップフロップH2は、いずれかのプロセ
ッサエレメントが通信バスの使用権を放棄するとき、与
えられていたパスグランド信号e3がPE2に対するも
のか否かを記録することになる。
フリップフロップH2の出力信号線h4とする。
バスリクエスト信号e2が競合する場合、信号h4が「
ON」のとき(前回のパスグランド信号がPE2に与え
られていた場合)、第1番目のプロセッサエレメント(
PEI)に対してパスグランド信号e3を与え、信号h
4が「○FFJのとき、PE2に対してパスグランド信
号e3を与える。ただし、既にいずれかのプロセッサエ
レメントにパスグランド信号e3が与えられている場合
は、その状態を保つものとする。
以上に示した論理を回路にする場合、フリップフロップ
E3への入力信号は、PEIのとき。
(b、1’  ・e2+hl・ (h4・h2+e3)
)PE2のとき、 (hl’  ・ e2+hl ・ (h4”  h2+
e3))となる。
なお、上式中、e2.e3はそれぞれのプロセッサエレ
メントにおけるバスリクエスト信号、パスグランド信号
である。
また、x’yはXとyとの論理積を示し、X+yはXと
yとの論理和を示す。
それぞれの論理式の各項の意味については、hl’  
・e2がバスリクエスト信号e2が競合しない場合を示
し、hl・h4・h2あるいはhl・h4’  ・h2
がバスリクエスト信号e2が競合する場合を示す(h2
は既にいずれかのプロセッサエレメントにパスグランド
信号が与えられていないことを示す)。
hl・e3は既にパスグランド信号が与えられている場
合、そのパスグランド信号を継続することを示す。
以下、第3図に示した停止命令、再開命令を実現するた
めのハードウェアの詳細について説明する。
第9図に停止命令、再開命令を実行するための同期ファ
シリティA4の内部構成を示す。
図中、11は停止アドレスレジスタであり、プロセッサ
エレメントA1が停止命令を実行したとき、指定するア
ドレスを記憶する。
■2は比較回路であり、他プロセッサエレメントが再開
命令を実行した場合、通信バスb1からのアドレス入力
と停止アドレスレジスタr1とを比較する。
11はタロツク信号線であり、cllまたはflと同様
の信号線である。12は再開信号線であり、再開命令を
実行した場合、アドレス線i3と同時に出力される。
アドレス線j3は再開命令実行時と停止命令実行時にア
ドレスを指定するために使用される5再開命令実行時に
は通信バスb1に対して出力されるが、停止命令実行時
には停止アドレスレジスタエ1にアドレスを8己憶させ
る。
i6は停止信号線である。信号線i6は、プロセッサエ
レメントA1が停止命令を実行したとき、アドレス線i
3と同時に出力され、指定のアドレスを停止アドレスレ
ジスタエ1に記憶させるために使用される。
i4.i5はいずれもアドレス線であり、それぞれ、停
止アドレスレジスタエ1の出力および通信バスI)1を
介して得られた他プロセッサエレメントからのアドレス
を示す。これらは比較回路■2の入力信号であり、信号
線18により両アドレスが一致したことを示すことがで
きる。
信号18がrON」となり、かつ、他プロセッサエレメ
ントが再開信号17を送出すれば、停止中のプロセッサ
エレメントを起動させるための信号19をプロセッサエ
レメントA1に対して送る。
110は各種制御線であり、通信バスb1管理の制御信
号などを含む。
停止命令、再開命令を実現するハードウェアにおいて、
バス調停回路A5の役割は通信バス)+1におけるアド
レス線、制御線などの使用権を管理するのみとなる。
したがって、バス調停回路A5の内部構成は先に示した
第5図または第7図のうち、発振器El。
優先順位決定回路E2.フリップフロップE3゜および
、クロック信号el、バスリクエスト信号e2.パスグ
ランド信号e3を含む回路のみでよい。
すなわち、既に示したレジスタ転送命令と停止命令、再
開命令という3種類の協調命令全てを実行できるハード
ウェアは、第4図もしくは第6図と第9図とを組み合わ
せた同期ファシリティA4と、第5図もしくは第7図に
示したバス調停回路A5を用いることにより実現できる
以下、第10図〜第15図を用いて、以上に示したハー
ドウェアの動作を示す。
第10図〜第14図は第3図で示した命令フォーマット
(1)と同期方式(a)とを組み合わせた場合の動作例
、第15図は停止命令と再開命令を実行する場合の動作
例を示している。
命令フォーマット(2)と同期方式(b)とを組み合わ
せた場合、第6図と第7図に示されるように、優先順位
決定回路E2とフリップフロップE3を除いて、順序回
路(記憶素子)が存在しない。したがって、このハード
ウェアに対する動作例は省略する。
まず、命令フォーマット(1)と同期方式(a)とを組
み合わせた場合の動作例を、第10図〜第14図のタイ
ミングチャートを用いて説明する。
第10図は、第1番目のプロセッサエレメント(PEI
)が第2番目のプロセッサエレメント(PE2)に対し
て送信命令を実行した場合のタイミングチャートである
最初に、送信側プロセッサエレメントはパスリクエスト
信号(B R)を送出する。
いずれのプロセッサエレメントも通信バスを使用してい
ない場合には、クロック信号 (clock)に同期して、パスグランド信号(BG)
が与えられる。
なお、通信バスが使用されている場合、およびリクエス
ト信号が競合した場合、すぐさまパスグランド信号が与
えられないことがある。
送信側プロセッサエレメントはパスグランド信号を受は
取った後、送信命令において指定する受信側プロセッサ
エレメントの番号(PE)、指定レジスタの値(dat
a)、受信側レジスタの番号(REG)を送出する。な
お、第10図ではこれらのデータを送出する間隔を1.
5タロツクサイクルとしているが、この長さは、システ
ム固有のプロセッサエレメント配置など種々の要因に従
う。
送信命令によるプロセッサエレメント番号指定により、
受信側プロセッサエレメントに対して、書き込み信号(
write)が送られる。
受信側プロセッサニレメン1−の同期レジスタファイル
の容量限度までデータが格納されていない場合、指定レ
ジスタの値と受信側レジスタの番号を同期レジスタファ
イルに書き込み、書き込みアドレスレジスタ(WA)を
増加させる。転送終了時にはバスリクエスト信号を「○
FFJに変化させ、これにより、バスグランド信号が「
○FFJに変化する。
次に示す第11図も送信命令を実行したときのタイミン
グチャートである。
ただし、送信命令実行当初、受信側プロセッサエレメン
トの同期レジスタファイルの容量限度までデータが格納
されている場合を示している。
送信側プロセッサエレメントにおけるBR。
BG、PE、d a t’a、REG、および受信側プ
ロセッサエレメントにおけるwrite、WAの各信号
は第10図と同様である。
受信側プロセッサエレメントの同期レジスタファイルの
容量限度までデータが格納されている場合(ful、1
信号が「ON」のとき)、write、ful1両信号
の論理積として書き込み禁止信号(Inhibit)が
送品される。
これにより、送信側プロセッサエレメントは、通信バス
の使用権を保持したまま一時停止状態となる。受信側プ
ロセッサエレメントが受信命令により同期レジスタファ
イルの内容を読み出し。
full信号を「○FFJに変化させると、送信側プロ
セッサエレメントの書き込み禁止信号が「○FFJとな
り、−時停止状態が解除される。
これにより、指定レジスタの値、受信側レジスタの番号
を受信側の同期レジスタファイルに格納する。
この場合、書き込み禁止信号が「ON」の量分だけ、送
信側プロセッサエレメントのPE。
data、REGの各信号にデータが出力されている時
間が長くなる。BR,BGも同様である。
第12図に送信命令実行時のもう1つのタイミングチャ
ートを示す。送信命令実行時に、受信側プロセッサエレ
メントの同期レジスタファイルの容量限度までデータが
格納されている場合に、通信バスの使用権を放棄する方
式である。
この場合、送信側プロセッサエレメントに対して、書き
込み禁止信号が送品されたとき、送信側プロセッサエレ
メントを一時停止状態とするとともに、バスリクエスト
信号を「ON」からrOFFJに変化させる。これによ
り、パスグランド信号も「○FFJに変化し、通信バス
の使用権を放棄したことになる。
その後、受信側プロセッサエレメントにおいて、ful
l信号が「ON」からrOFFJに変化した場合、送信
側プロセッサエレメントに対して割込み等を発生させ、
送信側プロセッサエレメントの一時停止状態を解除する
この第12図の方式は通信バスの競合を低下させるため
の方式である。
第13図には受信命令実行時のタイミングチャ 、−ト
を示す。受信側プロセッサエレメント(PEI)が読み
出し信号(read)を出力し、同期レジスタファイル
から、転送されてきたレジスタの値(data)とデー
タ格納先レジスタの番号(R,E G )を読み出す。
このとき、読み呂しアドレスレジスタ(RA)の内容を
増加させる。
なお、受信命令実行時においても、読み出し信号の出力
間隔を1.5クロツクサイクルとしているが、この長さ
は、プロセッサエレメントの配置など種々の要因から変
更され得るものである。
第14図に、受信命令実行時に同期レジスタファイルに
記憶されているデータがない場合のタイミングチャート
を示す。
read、data、REG、RAの各信号の意味は第
13図と同様である。受信側プロセッサエレメントが受
信命令を実行し、読み出し信号を出力したとき、同期レ
ジスタファイルに記憶されているデータが存在しないこ
とがある。
この場合は、emp t y信号がroNJとなってい
る。受信命令を実行したプロセッサエレメントはe m
 p t y信号により、同期レジスタに記憶されてい
るデータがないことを判断し、−時停止状態となる。
この時点で、他プロセッサエレメントがPEIに対して
送信命令を実行する(write信号の「○NJ)と、
empty信号が、「ON」からrOFFJに変化する
これにより、受信側プロセッサエレメントは一時停止状
態を解除され、第13図と同様に、同期レジスタファイ
ルから、転送されてきたレジスタの値とデータ格納先レ
ジスタの番号を読み出し、かつ、読み出しアドレスレジ
スタの内容を増加させる。
以十のように、本実施例によれば、プロセッサエレメン
ト間のデータ転送を、データ転送命令1命令で実現する
ことができ、また、該データ転送を介してプロセッサエ
レメント間の同期を実現できる。
第15図は停止命令、再開命令実行時のタイミングチャ
ートである。
この例では、第1番目のプロセッサエレメント(PEI
)が停止命令を、第2番目のプロセッサエレメント(P
E2)が再開命令を実行する。
停止命令実行時には、PEIは、命令で指定したアドレ
ス(WAR)を送出するとともに、停止信号(slee
p)を出力する。停止信号により、指定したアドレスを
停止アドレスレジスタに記憶させる。停止信号を出力し
た後、PEIは一時停止状態となる。
なお、指定したアドレスで一時停止状態となっているプ
ロセッサエレメントは、再開命令により全て再開される
。そのため、通信バスを介して、指定したアドレスを全
てのプロセッサエレメントに通知するようにしている。
再開命令時、PE2は、最初に、バスリクエスト信号(
B R)を出力し、バスグランド信号(BG)によって
通信のバスの使用権を確保しなければならない。
通信バスの使用権を確保した後、再開信号(r e s
 ume)と命令によって指定したアドレス(addr
ess)を通信バス上に出力する。
出力されたアドレスは他プロセツサニレメント士の停止
アドレスレジスタの内容と比較され、−敢すれば、起動
信号(wakeup)を対応するプロセッサエレメント
に送出する。これにより。
−時停止状態となっているプロセッサエレメントが実行
を再開する。
なお、停止信号、再開信号ともに8力間隔を1゜5クロ
ツクサイクルとしているが、この長さは。
プロセッサエレメントの配置など種々の要因から変更さ
・れ得るものである。
以上のように、停止命令、再開命令を用いることにより
各プロセッサエレメント間の同期を、容易に1命令で実
現できる。
なお、これらの命令を用いて、同期をとるのは、ソフト
ウェアの責任であり、コンパイラが、各プロセッサエレ
メントへの処理の割り振りに応じて。
割り振った処理の同期のために、これらの命令を各プロ
セッサエレメント実行させる命令中に含める。
すなわち、たとえば、前記レジスタ転送命令を用いずに
、PE1で処理したデータをPE2が用いる処理を実行
する場合、PE1は処理を終了し。
処理したデータをメモリ装置に格納した後、4@納した
アドレスを含んだ停止命令を実行して停止し、PE2に
おいては、メモリ装置より、このデータっを読み取った
後、前記アドレスを含んだ再開命令を実行し、PEIを
再開させる。これにより、PEIで処理したデータをP
E2が用いる処理を実行する場合に、プロセッサエレメ
ント間の、メモリ装置の排他制御を含む同期を容易に実
現できる。
ところで、共有メモリ型マルチプロセッサシステムにお
いては、プロセッサエレメント間の同期、データ転送に
専用のハードウェアを設けることが少なく、たとえ専用
ハードウェアを設けたとしても、同期処理と通常のメモ
リ参照とが互いに影響しないようにするためのものであ
り、同順手順自体をハードウェア化したものはない。
しかし、本実施例によれば、以上説明してきたように、
同期手順の多くをハードウェアイヒ1し、同期を1命令
で実行できるようにした。また、プロセッサエレメント
間で、1命令でデータ転送を行うことを可能とした。
これにより、複数個のプログラム間で互いに協調動作す
る場合にも容易に高速化が可能である。
[発明の効果] 以上のように、本発明によれば、複数のプロセッサエレ
メント間の同期を、少ない命令数で実現することのでき
るマルチプロセッサシステムを提供することができる。
また、複数のプロセッサエレメント間の、データの転送
を、少ないオーバーヘッドで実現することのできるマル
チプロセッサシステムを提供することができる。
【図面の簡単な説明】
第1図は本発明の一実施例に係るマルチプロセッサシス
テムの構成を示すブロック図、第2図はマルチプロセッ
サシステムの他の構成を示すブロック図、第3図はプロ
セッサエレメント間協調命令のフォーマットを示す説明
図、第4図は同期ファシリティの内部構成を示すブロッ
ク図、第5図はバス調停回路の内部構成を示すブロック
図、第6図は同期ファシリティの第2の内部構成を示す
ブロック図、第7図はバス調停回路の他の内部構成を示
すブロック図、第8図は優先順位決定回路の内部構成を
示すブロック図、第9図は同期ファシリティの第3の内
部構成を示すブロック図、第10図、第11図、第12
図、第13図および第14図はレジスタ転送命令実行動
作を示すタイミングチャート、第15図は停止命令実行
動作と再開命令実行動作を示すタイミングチャートであ
る。 A1・・・プロセッサエレメント、A2・・・キャッシ
ュ記憶装置、A3・・・メモリ装置、A4・・・同期フ
ァシリティ、A5・・・バス調停回路、al・・・共有
バス、bl・・・通信バス、Dl・・・同期レジスタフ
ァイル、D2・・・読み出しアドレスレジスタ、D3・
・・書き込みアドレスレジスタ、El・発振器、E2・
・・優先順位決定回路、工1・・・停止アドレスレジス
タ。 出願人 株式会社 日 立 製 作 所代理人 弁理士
  富 1)利子 第1図 第2図 第3図 第4図 第5図 Δq 第6図 第7 図 第8図 第10図 第11図 第12図 (9゜   Addr     Ac肩第13図 第14図 ’l、   RA          Addr   
           Addr++        
   −−−第15図

Claims (1)

  1. 【特許請求の範囲】 1、n個のプロセッサエレメントと、該n個のプロセッ
    サエレメントで共有されるメモリ装置とを有するマルチ
    プロセッサシステムであって、該n個のプロセッサエレ
    メント間でデータ転送を行う通信バスと、バス調停回路
    と、各プロセッサエレメント毎に備えられたn個の同期
    ファシリテイとを有し、 かつ、前記バス調停回路は、通信バスへのアクセスを調
    停する手段と、前記各同期ファシリテイの制御状況を他
    の同期ファシリテイに通知する手段とを備え、前記同期
    ファシリテイは、バス調停回路よりの通知内容に応じて
    自プロセッサエレメントの同期制御を行う同期制御手段
    を備えることを特徴とするマルチプロセッサシステム。 2、請求の範囲1記載のマルチプロセッサシステムであ
    って、 前記プロセッサエレメントは、他の1個以上のプロセッ
    サエレメントへ、自プロセッサエレメントのレジスタの
    データを送信する送信命令と、これに対応する、他プロ
    セッサエレメントのレジスタのデータを受信する受信命
    令との2命令からなるレジスタ転送命令を備え、 前記バス調停回路が通知する制御状況は、各同期ファシ
    リテイにおける前記レジスタ転送命令の実行状況であっ
    て、 前記同期ファシリテイが備える同期制御手段は、自プロ
    セッサエレメントのレジスタ転送命令実行時に、前記バ
    ス調停回路よりの通知内容に応じて、転送先プロセッサ
    エレメントの同期ファシリテイが対応したレジスタ転送
    命令を実行している場合には、前記通信バスを介してレ
    ジスタ転送を実行し、転送相手プロセッサエレメントの
    同期ファシリテイが対応したレジスタ転送命令を実行し
    ていない場合には、相手プロセッサエレメントの同期フ
    ァシリテイが対応するレジスタ転送命令を実行するまで
    自プロセッサエレメントを一時停止状態とする手段であ
    ることを特徴とするマルチプロセッサシステム。 3、請求の範囲1記載のマルチプロセッサシステムであ
    って、 前記プロセッサエレメントは、他の1個以上のプロセッ
    サエレメントへ、自プロセッサエレメントのレジスタの
    データを送信する送信命令と、これに対応する、他プロ
    セッサエレメントのレジスタのデータを受信する受信命
    令との2命令からなるレジスタ転送命令を備え、 前記各同期ファシリテイは、1以上のデータを記憶する
    バッファを備え、かつ、前記同期制御手段は、バス調停
    回路よりの通知内容に応じ、前記送信命令実行時に、転
    送相手プロセッサエレメントの同期ファシリテイの前記
    バッファに空き領域が存在する場合には、前記通信バス
    を介して送信するレジスタのデータを転送相手プロセッ
    サエレメントの同期ファシリテイの前記バッファに書き
    込み、相手プロセッサエレメントの同期ファシリテイの
    バッファに空き領域が存在しない場合には、空き領域が
    発生するまで自プロセッサエレメントを一時停止状態と
    し、受信命令実行時に、自同期ファシリテイのバッファ
    にデータが存在する場合には、バッファからデータを読
    み出し、自同期ファシリテイのバッファにデータが存在
    しない場合には、データが書き込まれるまで自プロセッ
    サエレメントを一時停止状態とする手段であって、 前記バス調停手段が通知する制御状況は、各同期ファシ
    リテイの前記バッファの格納状況であることを特徴とす
    るマルチプロセッサシステム。 4、n個のプロセッサエレメントと、該n個のプロセッ
    サエレメントで共有されるメモリ装置とを有するマルチ
    プロセッサシステムであって、各プロセッサエレメント
    毎に備えられたn個の同期ファシリテイとを備え、 かつ、前記プロセッサエレメントは、値を指定して自プ
    ロセッサエレメントを停止させる停止命令と、値を指定
    して停止中のプロセッサエレメントを再開する再開命令
    とを備え、前記同期ファシリテイは、停止レジスタと、
    停止命令実行時に、停止命令で指定された値を停止レジ
    スタに格納し、自プロセッサエレメントを一時停止状態
    とする手段と、再開命令実行時に、再開命令で指定され
    た値を前記通信バスを介して他同期ファシリテイに通知
    する手段と、停止レジスタに格納された値と通信バスを
    介して通知されたアドレスとの比較を行う比較回路と、
    比較回路での比較の結果が、一致である場合に自プロセ
    ッサエレメントの一時停止状態を解除する手段とを備え
    たことを特徴とするマルチプロセッサシステム。 5、請求項1、2または3記載のマルチプロセッサシス
    テムであって、 前記プロセッサエレメントは、値を指定して自プロセッ
    サエレメントを停止させる停止命令と、値を指定して停
    止中のプロセッサエレメントを再開する再開命令とを備
    え、 前記同期ファシリテイは、停止レジスタと、停止命令実
    行時に、停止命令で指定された値を停止レジスタに格納
    し、自プロセッサエレメントを一時停止状態とする手段
    と、再開命令実行時に、再開命令で指定された値を前記
    通信バスを介して他同期ファシリテイに通知する手段と
    、停止レジスタに格納された値と通信バスを介して通知
    されたアドレスとの比較を行う比較回路と、比較回路で
    の比較の結果が、一致である場合に自プロセッサエレメ
    ントの一時停止状態を解除する手段とを備えたことを特
    徴とするマルチプロセッサシステム。
JP33155790A 1990-11-28 1990-11-28 マルチプロセッサシステム Expired - Lifetime JP2907533B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33155790A JP2907533B2 (ja) 1990-11-28 1990-11-28 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33155790A JP2907533B2 (ja) 1990-11-28 1990-11-28 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JPH04195664A true JPH04195664A (ja) 1992-07-15
JP2907533B2 JP2907533B2 (ja) 1999-06-21

Family

ID=18244997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33155790A Expired - Lifetime JP2907533B2 (ja) 1990-11-28 1990-11-28 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JP2907533B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003005954A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
WO2009153977A1 (ja) * 2008-06-19 2009-12-23 パナソニック株式会社 マルチプロセッサ
WO2012029111A1 (ja) 2010-08-30 2012-03-08 富士通株式会社 マルチコアプロセッサシステム、同期制御システム、同期制御装置、情報生成方法、および情報生成プログラム
JP2014099215A (ja) * 2014-02-27 2014-05-29 Fujitsu Ltd マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003005954A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
WO2009153977A1 (ja) * 2008-06-19 2009-12-23 パナソニック株式会社 マルチプロセッサ
CN102067088A (zh) * 2008-06-19 2011-05-18 松下电器产业株式会社 多处理器
US8433884B2 (en) 2008-06-19 2013-04-30 Panasonic Corporation Multiprocessor
JP5379122B2 (ja) * 2008-06-19 2013-12-25 パナソニック株式会社 マルチプロセッサ
WO2012029111A1 (ja) 2010-08-30 2012-03-08 富士通株式会社 マルチコアプロセッサシステム、同期制御システム、同期制御装置、情報生成方法、および情報生成プログラム
JP5488697B2 (ja) * 2010-08-30 2014-05-14 富士通株式会社 マルチコアプロセッサシステム、同期制御方法、および同期制御プログラム
US9367311B2 (en) 2010-08-30 2016-06-14 Fujitsu Limited Multi-core processor system, synchronization control system, synchronization control apparatus, information generating method, and computer product
JP2014099215A (ja) * 2014-02-27 2014-05-29 Fujitsu Ltd マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Also Published As

Publication number Publication date
JP2907533B2 (ja) 1999-06-21

Similar Documents

Publication Publication Date Title
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
EP0389001B1 (en) Computer vector multiprocessing control
JPH06164574A (ja) データ通信装置及び方法
JPH01147647A (ja) データ処理装置
US5313620A (en) Selective receiver for each processor in a multiple processor system
US10120815B2 (en) Configurable mailbox data buffer apparatus
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
JPH06103155A (ja) 共有メモリ制御方法及び共有メモリ制御装置
JPH0679305B2 (ja) 保留バスを用いて割り込みに応じる装置及び方法
US20080109604A1 (en) Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
EP1187029B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
JPH04195664A (ja) マルチプロセッサシステム
EP2393013B1 (en) Method and apparatus for wireless broadband systems direct data transfer
US6845418B2 (en) Bus system for master-slave device accesses, has multiple pseudo-delayer connected to controllers which delay and output access commands to slave devices for having longer latency periods
JPH064314A (ja) タスク間同期通信装置
JPH07302220A (ja) 共有メモリの更新及び参照管理方式並びに参照タイミング制御方式
JP3990569B2 (ja) データメモリ制御装置
JP2834298B2 (ja) データ処理装置及びデータ処理方法
US20100153610A1 (en) Bus arbiter and bus system
JPH0895899A (ja) Dma転送制御装置
JPH07105120A (ja) 入出力制御装置
CN117891761A (zh) 一种直接内存访问系统及数据搬运方法
JP3126129B2 (ja) プライオリティ制御装置
JPH0628235A (ja) 記憶制御装置