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