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

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

Info

Publication number
JP2907533B2
JP2907533B2 JP33155790A JP33155790A JP2907533B2 JP 2907533 B2 JP2907533 B2 JP 2907533B2 JP 33155790 A JP33155790 A JP 33155790A JP 33155790 A JP33155790 A JP 33155790A JP 2907533 B2 JP2907533 B2 JP 2907533B2
Authority
JP
Japan
Prior art keywords
processor element
instruction
synchronization
register
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP33155790A
Other languages
English (en)
Other versions
JPH04195664A (ja
Inventor
憲一 黒沢
雅彦 齊藤
小林  芳樹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、マルチプロセッサシステムに関し、特に、
複数個のプロセッサエレメントにまたがって協調動作す
るプログラムの実行等に適したプロセッサエレメント間
の同期の技術に関するものである。
[従来の技術] 複数個のプロセッサエレメントを有し、プログラムを
並列に実行するマルチプロセッサシステムの構成として
は、メモリ装置を共有した共有メモリ型マルチプロセッ
サシステムが一般的である。
このような共有メモリ型マルチプロセッサシステムに
おいて、異なったプロセッサエレメントで実行中のプロ
グラムを協調して動作させる場合には、通常、メモリ装
置を介して、データ転送や、同期を行う。
データ転送に関しては、送信側プログラムを実行して
いるプロセッサエレメントがデータをメモリ装置に書き
込んだ後、受信側プログラムを実行しているプロセッサ
エレメントがデータをメモリ装置から読み出す形式とな
る。
また、同期に関して、最も単純な同期であるビジーウ
ェイト(スピンロック)を考えると、次の形式となる。
すなわち、プロセッサエレメントが特定のデータをメ
モリ装置から読み出し、該データが一定の値となるま
で、メモリ装置からの読み出しを繰り返す。データが期
待する値となれば、読み出しループから抜け、次の命令
を実行する。
また、この他、同期に関しては、専用のハードウェア
を設けたマルチプロセッサシステムも存在する。
代表的な例として、米国Sequent社のマルチプロセッ
サBalanceが挙げられる。Balanceにおいては、同期ハー
ドウェアとして、SLIC(System Link and Interrupt Co
ntroller)と、SLICバスとを設けている。SLICはSLICバ
スを制御する。
このSLICバスを介して、スピンロック、計数セマフォ
等の排他制御、割込み分配、エラー処理、構成制御を行
う。
Balanceにおける同期は、主として、異なったプロセ
ス(プログラム)間でデータ共有等を行う場合の排他制
御に使用され、データ転送を行う場合は、メモリ装置を
介して行われる。
なお、Balanceについての参考文献としては、「S.Tha
kkar:The Balance Multiprocessor System IEEE MICRO,
Feb.1988,pp.57−69」がある。
[発明が解決しようとする課題] 前記のようなメモリを介して、データ転送や同期を行
うマルチプロセッサシステムは、複数個のプログラムが
並列に動作し、プログラム間での同期が稀な場合には効
率的である。
しかしながら、1つのプログラム内で並列に実行でき
る部分が存在し、これをコンパイラ等によってマルチプ
ロセッサシステムのハードウェアで並列に動作させるよ
うにした場合には、同期、データ転送が頻繁に発生し、
効率が低下する場合がある。
特に、1つのプロセッサエレメント上で生成したデー
タを他プロセッサエレメント上で使用する場合に問題と
なる。
すなわち、1つのプロセッサエレメントのデータを他
プロセッサエレメント上で使用する場合、 1)送信側プロセッサエレメントのレジスタに存在する
データをメモリ装置の指定位置に書き込む; 2)受信側プロセッサエレメントがメモリ装置の指定位
置からデータを読み出す; という手順をとる必要がある。
さらに、この場合、送信側プロセッサエレメントが指
定メモリ位置にデータを重ね書きしないこと、および、
受信側プロセッサエレメントがデータの書き込み以前に
データを読み出さないことを保証する必要があり、排他
制御等、同期をとる必要がある。
この結果、数命令から数十命令程度のオーバヘッドが
発生し得る。
一方、前記Balanceに用いられているような、同期専
用ハードウェアを用いると、各同期並びに排他制御自体
は高速に(共有バスを使用しないため、メモリ参照など
他目的の共有バス使用と競合しない)行うことが可能で
あるが、前記1)2)の手順と同期手順により、同様の
オーバヘッドが発生する。
そこで、本発明は、複数のプロセッサエレメント間の
同期を、少ない命令数で実現することを第1の目的とす
る。
また、さらに、本発明は、複数のプロセッサエレメン
ト間の、データの転送を、少ないオーバーヘッドで実現
することを第2の目的とする。
[課題を解決する手段] 前記目的達成のために、本発明は、n個のプロセッサ
エレメントと、該n個のプロセッサエレメントで共有さ
れるメモリ装置とを有するマルチプロセッサシステムで
あって、 該n個のプロセッサエレメント間でデータ転送を行う
通信バスと、バス調停回路と、各プロセッサエレメント
毎に備えられたn個の同期ファシリティとを有し、 かつ、前記バス調停回路は、通信バスへのアクセスを
調停する手段と、前記各同期ファシリティの制御状況を
他の同期ファシリティに通知する手段とを備え、前記同
期ファシリティは、バス調停回路よりの通知内容に応じ
て自プロセッサエレメントの同期制御を行う同期制御手
段を備えることを特徴とする第1のマルチプロセッサシ
ステムを提供する。
また、特に前記第1の目的達成のために、この第1の
マルチプロセッサシステムにおいて、前記プロセッサエ
レメントは、他の1個以上のプロセッサエレメントへ、
自プロセッサエレメントのレジスタのデータを送信する
送信命令と、これに対応する、他プロセッサエレメント
のレジスタのデータを受信する受信命令との2命令から
なるレジスタ転送命令を備え、 前記バス調停回路が通知する制御状況は、各プロセッ
サエレメントにおける前記レジスタ転送命令の実行状況
であって、 前記同期ファシリティが備える同期制御手段は、自プ
ロセッサエレメントのレジスタ転送命令実行時に、前記
バス調停回路よりの通知内容に応じて、転送先プロセッ
サエレメントの同期ファシリティが対応したレジスタ転
送命令を実行している場合には、前記通信バスを介して
レジスタ転送を実行し、相手プロセッサエレメントの同
期ファシリティが対応したレジスタ転送命令を実行して
いない場合には、相手プロセッサエレメントの同期ファ
シリティが対応するレジスタ転送命令を実行するまで自
プロセッサエレメントを一時停止状態とする手段である
マルチプロセッサシステムを提供する。
また、前記第1の目的達成のために、前記第1のマル
チプロセッサシステムにおいて、前記プロセッサエレメ
ントは、他の1個以上のプロセッサエレメントへ、自プ
ロセッサエレメントのレジスタのデータを送信する送信
命令と、これに対応する、他プロセッサエレメントのレ
ジスタのデータを受信する受信命令との2命令からなる
レジスタ転送命令を備え、 前記各同期ファシリティは、1以上のデータを記憶す
るバッファを備え、かつ、前記同期制御手段は、バス調
停回路よりの通知内容に応じ、前記送信命令実行時に、
転送相手プロセッサエレメントの同期ファシリティの前
記バッファに空き領域が存在する場合には、前記通信バ
スを介して送信するレジスタのデータを転送相手プロセ
ッサエレメントの同期ファシリティの前記バッファに書
き込み、相手プロセッサエレメントのバッファに空き領
域が存在しない場合には、空き領域が発生するまで自プ
ロセッサエレメントを一時停止状態とし、受信命令実行
時に、自同期ファシリティのバッファにデータが存在す
る場合には、バッファからデータを読み出し、自同期フ
ァシリティのバッファにデータが存在しない場合には、
データが書き込まれるまで自プロセッサエレメントを一
時停止状態とする手段であって、 前記バス調停手段が通知する制御状況は、各同期ファ
シリティの前記バッファの格納状況であるマルチプロセ
ッサシステムを提供する。
また、前記第2の目的達成のために、本発明は、n個
のプロセッサエレメントと、該n個のプロセッサエレメ
ントで共有されるメモリ装置とを有するマルチプロセッ
サシステムであって、 各プロセッサエレメント毎に備えられたn個の同期フ
ァシリティとを備え、 かつ、前記プロセッサエレメントは、値を指定して自
プロセッサエレメントを停止させる停止命令と、値を指
定して停止中のプロセッサエレメントを再開する再開命
令とを備え、 前記同期ファシリティは、停止レジスタと、停止命令
実行時に、停止命令で指定された値を停止レジスタに格
納し、自プロセッサエレメントを一時停止状態とする手
段と、再開命令実行時に、再開命令で指定された値を前
記通信バスを介して他同期ファシリティに通知する手段
と、停止レジスタに格納された値と通信バスを介して通
知されたアドレスとの比較を行う比較回路と、比較回路
での比較の結果が、一致であれば自プロセッサエレメン
トの一時停止状態を解除する手段と、を備えたことを特
徴とする第2のマルチプロセッサシステムを提供する。
なお、前記停止命令、再開命令で指定する値には、プ
ロセッサエレメント間で受け渡すデータの記憶されてい
るアドレスの値を含むのが望ましい。
また、前記第1のマルチプロセッサと第2のマルチプ
ロセッサの各命令や各手段等を組み合わせて用いてもよ
い。
なお、各プロセッサエレメントと共有メモリを接続す
る共有バスがある場合には、前記通信バスとして、この
共有バスを共用するようにしてもよい。
[作用] 本発明に係る第1のマルチプロセッサシステムによれ
ば、前記同期ファシリティは、バス調停回路を介して、
他の同期ファシリティの状況を把握し、これに応じて自
プロセッサエレメントの同期制御を行う。
すなわち、たとえば、前記プロセッサエレメントに、
他の1個以上のプロセッサエレメントへ、自プロセッサ
エレメントのレジスタのデータを送信する送信命令と、
これに対応する、他プロセッサエレメントのレジスタの
データを受信する受信命令との2命令からなるレジスタ
転送命令を備え、メモリ装置を介さない、通信バスを用
いたプロセッサエレメント間の直接のデータ転送を可能
とする。
そして、前記バス調停回路を介して他の同期ファシリ
ティにおける前記レジスタ転送命令の実行状況を、前記
同期ファシリティが備える同期制御手段で把握し、これ
をもとに、レジスタ転送命令実行時には、転送先同期フ
ァシリティが対応したレジスタ転送命令を実行している
場合には、前記通信バスを介してレジスタ転送を実行
し、相手同期ファシリティが対応したレジスタ転送命令
を実行していない場合には、相手同期ファシリティが対
応するレジスタ転送命令を実行するまで自プロセッサエ
レメントを一時停止状態とすることにより、転送相手プ
ロセッサエレメントとの同期をとる。
または、前記各同期ファシリティに、1以上のデータ
を記憶するバッファを備え、バス調停回路を介して他同
期ファシリティのバッファの格納状況を把握し、これを
もとに、前記同期制御手段で、前記送信命令実行時に、
転送相手プロセッサエレメントの同期ファシリティの前
記バッファに空き領域が存在する場合には、前記通信バ
スを介して送信するレジスタのデータを転送相手プロセ
ッサエレメントの同期ファシリティの前記バッファに書
き込み、相手プロセッサエレメントの同期ファシリティ
のバッファに空き領域が存在しない場合には、空き領域
が発生するまで自プロセッサエレメントを一時停止状態
とし、受信命令実行時に、自プロセッサエレメントの同
期ファシリティのバッファにデータが存在する場合に
は、バッファからデータ読み出し、自プロセッサエレメ
ントの同期ファシリティのバッファにデータが存在しな
い場合には、データが書き込まれるまで自プロセッサエ
レメントを一時停止状態とすることにより、転送相手プ
ロセッサエレメントとの同期をとる。
また、本発明に係る第2のマルチプロセッサシステム
によれば、前記プロセッサエレメントに値を指定して自
プロセッサエレメントを停止させる停止命令と、値を指
定して停止中のプロセッサエレメントを再開する再開命
令とを備え、かつ、同期ファシリティは、停止レジスタ
と、停止命令実行時に、停止命令で指定された値を停止
レジスタに格納し、自プロセッサエレメントを一時停止
状態とする手段と、再開命令実行時に、再開命令で指定
された値を前記通信バスを介して他プロセッサエレメン
トに通知する手段と、停止レジスタに格納された値と通
信バスを介して通知されたアドレスとの比較を行う比較
回路と、比較回路での比較の結果が、一致である場合に
自プロセッサエレメントの一時停止状態を解除すること
により、他プロセッサエレメントとの同期をとる。
[実施例] 以下、本発明に係るマルチプロセッサシステムの位置
実施例を説明する。
まず、第1図に本実施例に係るマルチプロセッサシス
テムの構成を示す。
図中、A1がプロセッサエレメントであり、キャッシュ
記憶装置またはメモリ装置から読み出された命令とデー
タにより演算を実行する。
A2はキャッシュ記憶装置であり、メモリ装置に記憶さ
れている命令とデータを一時的に保持し、共有バスの負
荷を低減させる。
A3はメモリ装置である。
a1は共有バスであり、キャッシュ記憶装置A2とメモリ
装置A3との間で命令/データの転送を行う。
通常の共有メモリ型マルチプロセッサシステムは、以
上のA1〜A3とa1により構成されている。
本実施例に係るマルチプロセッサシステムにおいて
は、同期ファシリティとバス調停回路を用意する。
A4は同期ファシリティであり、プロセッサエレメント
単位に設けられ、プロセッサエレメント間で同期・通信
を行う。
A5はバス調停回路であり、プロセッサエレメント間で
の同期のために、共有バスa1の管理を行う。
なお、プロセッサエレメント間で同期・通信を行うた
めに、データ/アドレス等の転送を行う必要があるが、
これは、共有バスa1を共用する。
ここで、第2図に本実施例に係るマルチプロセッサシ
ステムの他の構成を示す。
この第2図に示す構成は、同期用の専用通信バスを設
けたものである。
図中、A1〜A5およびa1は、先に示した第1図の同符号
部とと同じである。
この構成においては、A1〜A3並びにa1から構成されて
いるマルチプロセッサシステムに、同期ファシリティ、
通信バス、バス調停回路を付加した構成をとる。
b1は通信バスである。通信バスb1は、データ/アドレ
ス等を転送するために新たに設けた専用バスである。
このようにマルチプロセッサシステムを構成すること
により、プロセッサエレメント間で協調してプログラム
を実行することが可能である。
次に、本実施例においてプロセッサエレメント間での
協調に用いる協調命令について説明する。
本実施例で用いる協調命令は、プロセッサエレメント
間でレジスタの内容を転送する「レジスタ転送命令」、
あるアドレスを指定して自プロセッサエレメントを停止
させる「停止命令」、指定したアドレスで停止している
プロセッサエレメントを再開する「再開命令」である。
「レジスタ転送命令」は、従来のメモリを介したデー
タ転送に代えて、1命令でデータ転送を実現するために
用いるものである。
このレジスタ転送命令は、特に、レジスタを数多く有
するRISC(Reduced Instruction Set Computer)に有効
的であるが、これとは逆に、メモリ装置を介してデータ
を受け渡す必要がある場合もある。
RISCのように数多くのレジスタを装備していないプロ
セッサエレメントや、配列データのように大きなデータ
を受け渡す場合が、これに当たる。
この場合、受信側プロセッサエレメントで必要なデー
タが書き込まれるまで待つ機能、および、送信側プロセ
ッサエレメントでデータを書き込んだことを受信側プロ
セッサエレメントに知らせ、待ち状態を解除する機能が
必要である。
しかし、これを前述した従来のマルチプロセッサシス
テムにおいて実現しようとする場合、スピンロックなど
の排他制御を用いて実現する必要があり、数命令から数
十命令程度のオーバヘッドが発生する。
そこで、これを少ない命令で実現するために、「停止
命令」と「再開命令」を用いる。
ここで、本実施例で用いる各命令のフォーマットを第
3図に示す。
レジスタ転送命令に関しては2種類のフォーマットを
示した。
第1種のレジスタ転送命令(1)は送信側プロセッサ
エレメントが実行する送信命令のフォーマットと、受信
側プロセッサエレメントが実行する受信命令のフォーマ
ットとが異なる。
この2つの命令を組み合わせて使用する場合、送信命
令において、転送すべき値を保持するレジスタの番号
(R1)、受信側プロセッサエレメントの番号(PE#)、
転送した値を格納するレジスタの番号(R2)の3種類を
指定する。受信命令では何も指定する必要がない。
第2種のレジスタ転送命令(2)の命令フォーマット
は送受信共通である。
送信命令においては、転送すべき値を保持するレジス
タの番号(R1)、受信側プロセッサエレメントの番号
(PE#)を指定する。受信命令においては、転送されて
きた値を格納するレジスタの番号(R1)と、送信側プロ
セッサエレメントの番号(PE#)とを指定する。
なお、第3図のレジスタ転送命令のフォーマットで
は、プロセッサエレメントの番号を指定するフィールド
が11ビットであるため、1対1のレジスタ転送のみを行
う場合、プロセッサエレメントの数は最大211個まで許
容できる。
また、1対多のレジスタ転送を行う場合は、1ビット
を1プロセッサエレメントと対応させる必要があるた
め、最大11個までのプロセッサエレメントを許容でき
る。
一方、停止命令、再開命令において指定するアドレス
はレジスタR1と変位dとベースレジスタRbにより計算さ
れる。通常の計算機においては、(Rb+R1+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)においては、送信命
令を実行したプロセッサエレメントが受信側プロセッサ
エレメントの受信命令を待つことはない。
このため、各プロセッサエレメントに対して、転送さ
れてきたレジスタの値とその値を格納すべきレジスタの
番号とを一時的に保持しておくバッファ(レジスタファ
イル)を用意しておく必要がある。
D1がレジスタの値と格納先のレジスタ番号を保持して
おく同期レジスタファイルである。
D2,D3は同期レジスタファイルのアドレスを指定する
アドレスレジスタであり、それぞれ、受信側プロセッサ
エレメントが受信値を読み出す場合、送信側プロセッサ
エレメントが送信値を書き込む場合に使用される。
D4は加算器であり、アドレスレジスタD2,D3による同
期レジスタファイルD1の読み出し/書き込みの後に、各
アドレスレジスタの値を増加させる。
同期レジスタファイルD1はFIFO(先入れ先出し)形式
で読み書きを行うので、アドレスレジスタD2,D3共に読
み書きの後にアドレスを増加しなければならないためで
ある。
D5はセレクタであり、読み出し/書き込みの各動作に
したがって、同期レジスタファイルD1へのアドレス入力
をアドレスレジスタD2,D3のいずれかから選択する。
D6,D7は比較回路である。同期レジスタファイルD1に
記憶されているデータがない場合には受信命令を実行す
るプロセッサエレメントを停止させ、同期レジスタファ
イルD1の容量限度までデータが格納されている場合には
送信命令を実行するプロセッサエレメントを停止させな
ければならない。
読み出しアドレスレジスタD2の値をRAとし、書き込み
アドレスレジスタD3の値をWAとすると、「WA=RA」を表
す信号を生成することにより、同期レジスタファイルD1
に記憶されているデータがないことを示すことができ
る。
また、「WA+1=RA」を表す信号により、同期レジス
タファイルD1の容量限度までデータが格納されているこ
とを示すことが可能である。
d1〜d8は制御線を示す。
d1はクロック信号線であり、これを入力クロックとし
てプロセッサエレメントA1,アドレスレジスタD2,D3等は
動作する。d2は読み出し信号線であり、プロセッサエレ
メントA1が受信命令を実行した場合、「ON」となる。d3
は書き込み信号線である。他プロセッサエレメントが自
プロセッサエレメントに対して送信命令を実行した場
合、信号d3が送られる。
同期レジスタファイルD1への読み出し要求と書き込み
要求が同時に起こる場合、いずれか一方の要求を待たせ
ておく必要がある。
第4図のハードウェアは読み出し要求を待たせておく
場合を示している。
読み出し信号線d2と書き込み信号線d3の論理積をと
り、読み出し禁止信号d4として、プロセッサエレメント
A1に要求を出している。
プロセッサエレメントA1は読み出し禁止信号d4が「O
N」を示す間、命令の実行を一時停止する。
d5,d6は比較回路の出力信号線であり、それぞれ同期
レジスタファイルD1に記憶されているデータがないこ
と、容量限度までデータが格納されていることを示す。
信号線d5はプロセッサエレメントA1に接続される。プ
ロセッサエレメントA1は信号線d5が「ON」を示す間に受
信命令を実行しようとしたとき、一時停止状態となる。
実際に同期レジスタファイルD1からデータを読み出す
のは、受信命令を実行し、かつ書き込み要求がなく、同
期レジスタファイルD1に記憶されているデータがある場
合に行われる。
したがって、信号線d2とd4′とd5′との論理積を信号
線d7とし、これを読み出しアドレスレジスタD2の制御線
とする(x′はxの否定を表す)。
信号d7は同期レジスタファイルD1からデータを読み出
した後、アドレスレジスタD2を増加させる。同期レジス
タファイルD1へデータを書き込むことに関しても同様で
あり、送信命令を実行し、かつ同期レジスタファイルD1
の容量限度までデータが格納されていない場合に行われ
る。
したがって、信号線d3とd6′との論理積を信号線d8と
して、これを書き込みアドレスレジスタD3の制御線とす
る。
信号d8は同期レジスタファイルD1へデータを書き込ん
だ後、アドレスレジスタD3を増加させる。信号d8はま
た、セレクタD5の制御、同期レジスタファイルD1の読み
出し/書き込みモードの制御にも使用される。
d9,d10はレジスタの値および格納先レジスタの番号を
送受信するための信号線である。
また、d11は各種制御線であり、通信バスb1の使用権
要求のための信号線、受信側プロセッサエレメントの番
号を指定する信号線などを含む。
次に、第5図に命令フォーマット(1)と同期方式
(a)との組み合わせた場合のバス調停回路A5の内部構
成図を示す。
図中、E1は発振器であり、クロック信号を発生する。
E2は優先順位決定回路であり、通信バスb1の使用が複数
個のプロセッサエレメントで競合した場合、可変もしく
は固定の優先順位にしたがって、通信バスb1の使用権を
いずれかのプロセッサエレメントに授与する。
E3は通信バスb1の使用権を記憶しておくフリップフロ
ップであり、各プロセッサエレメントに使用権が与えら
れている間、この値を「ON」に設定する。
E4はマルチプレクサであり、送信命令によって指定さ
れるプロセッサエレメント番号にしたがって、与えられ
た信号をいずれか一方の出力信号線に送出する。
e1〜e9は通信バスb1を構成する信号線である。
e1はクロック信号線であり、マルチプロセッサシステ
ム全体を制御するためのクロック信号を出力する。
信号線e1は、第4図における信号線d1に対応する。
e2はバスリクエスト信号線であり、各プロセッサエレ
メントはレジスタ転送のために通信バスb1を使用する場
合には、バスリクエスト信号e2を出力する。
e3はバスグラント信号線である。あるプロセッサエレ
メントからバスリクエスト信号e2が出力され、通信バス
b1の使用権を与えることが可能な場合、該プロセッサエ
レメントへバスグラント信号e3を送る。
同時に複数個のプロセッサエレメントからバスリクエ
スト信号e2が出力された場合、固定または可変の優先順
位にしたがって、信号線e3により、通信バス1bの使用権
を授与する。
e4は書き込み禁止信号線である。
第4図において説明したように、あるプロセッサエレ
メントが送信命令を実行し、かつ、受信側プロセッサエ
レメントの同期レジスタファイルD1の容量限度までデー
タが格納されている場合、送信命令を一時停止させる必
要がある。
そこで、送信命令を停止させることが必要な場合、信
号線e4に書き込み禁止信号を送出する。
e5は同期レジスタファイルD1の容量限度までデータが
格納されていることを示す信号線である。
e6は書き込み信号線であり、各プロセッサエレメント
に対して送信命令が実行されたことを示す信号を送出す
る。
信号線e5,e6は、それぞれ第4図の信号線d6,d3に対応
する。
e7はプロセッサエレメント番号の指定を行う信号線で
ある。
送信命令実行時に、受信側プロセッサエレメントを指
定するために使用する。
信号線e2〜e4とe7が第4図における信号線d11に対応
する。
e8,e9はそれぞれデータ線、レジスタ番号を指定する
信号線であるが、バス調停回路A5はバスリクエスト信号
e2とバスグラント信号e3を用いてこれらを管理するのみ
であり、バス調停回路A5内で直接使用されるものではな
い。
次にバス調停回路A5内で生成される信号e4,e6の生成
について述べる。
バスグラント信号e3の生成方式については後述する第
8図の説明において説明する。
書き込み要求信号e6は、送信命令実行時に指定される
プロセッサエレメントへ送出される信号である。
ここで、プロセッサエレメント番号は信号線e7により
指定され、いずれかのプロセッサエレメントが送信命令
を実行していることは全てのバスグラント信号e3の論理
和e10により指定される。
したがって、信号線e10を入力とし、プロセッサエレ
メント番号e7を選択信号としたマルチプレクサE4の出力
信号をそのまま、書き込み要求信号e6とすればよい。
書き込み禁止信号e4は送信命令実行時に、受信側プロ
セッサエレメントの同期レジスタファイルD1の容量限度
までデータが格納されている場合に送出される。
同期レジスタファイルD1の容量限度までデータが格納
されていることは信号線e5によって、また送信命令を実
行中であることは信号線e3またはe6(e3は送信側、e6は
受信側で検出)によって指定されるので、信号線e5とe6
との論理積e11が受信側プロセッサエレメントでの書き
込み禁止信号を示す。
そこで、信号e11の全ての論理和e12を生成し、信号e1
2とe3との論理積を生成すれば、これが、送信側プロセ
ッサエレメントでの書き込み禁止信号e4となる。
以下、第3図において示した命令フォーマット(2)
と同期方式(b)とを組み合わせたハードウェアの詳細
について説明する。
第6図に命令フォーマット(2)と同期方式(b)を
組み合わせた場合の同期ファシリティA4の内部構成を示
す。
第6図に示すように、同期ファシリティA4は信号線の
みから構成され、同期管理はバス調停回路A5による集中
管理で実現される。
図中、f1はクロック信号線であり、前記信号線d1と同
様である。
f2,f3は読み出し信号線、書き込み信号線を示す。
レジスタ転送命令を実行する場合、受信命令実行時に
は読み出し信号線f2,送信命令実行時には書き込み信号
線f3に信号を送出する。
f4は転送禁止信号であり、レジスタ転送において、送
信命令と受信命令とが対応していない場合、一時的にプ
ロセッサエレメントA1を停止させるために使用する。
f5はデータ線、f6は各種制御線である。
次に、第7図に命令フォーマット(2)と同期方式
(b)を組み合わせた場合のバス調停回路A5の内部構成
を示す。
図中、1〜E3,およびe1〜e3は、先に示した第5図の
同符号部と同様の回路、信号線であるので説明を省略す
る。
G1はマルチプレクサであり、受信命令実行時に、送信
側プロセッサエレメントに対して、読み出し信号を伝え
る役割を有する。
G2も同様のマルチプレクサであるが、送信命令実行時
に、受信側プロセッサエレメントに対して、書き込み信
号を伝える役割を有するものである。
G3は送信命令実行時に使用されるセレクタである。
各プロセッサエレメントからの読み出し信号を入力と
し、受信側プロセッサエレメントの番号を指定すること
により、受信側プロセッサエレメントの読み出し信号線
を選択する。
読み出し信号線はプロセッサエレメントが受信命令を
実行したことを示すので、送信命令実行時にセレクタG3
の出力が「ON」を示す場合、レジスタの内容を転送でき
る。
G4は受信命令実行時に使用されるセレクタである。
各プロセッサエレメントからの書き込み信号を入力と
し、送信側プロセッサエレメントの番号を指定すること
により、送信側プロセッサエレメントの書き込み信号線
を選択する。送信命令と同様に、受信命令実行時にセレ
クタG4の出力が「ON」を示す場合、レジスタの内容を転
送できる。
g1,g2はそれぞれ読み出し信号線、書き込み信号線で
ある。信号線g1,g2は受信命令、送信命令を実行した場
合に「ON」となる。
信号線g1,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
とg6′との論理積g8により示すことが可能である。
また、受信命令を実行し、かつ、相手プロセッサエレ
メントが送信命令を実行中でないことは、信号g1とg7′
との論理積g9により示すことが可能である。信号線g8と
g9の論理和が転送禁止信号g3となる。
さて、ここで、第8図に、先に示した第5図および第
7図のバス調停回路A5において使用される優先順位決定
回路E2の内部構成を示す。
各プロセッサエレメントのバスリクエスト信号e2,バ
スグラント信号e3,およびクロック信号e1を入力とす
る。
H1,H2はフリップフロップである。H1はフリップフロ
ップH2に対して入力を遅らせるために用いられ、H2は前
回バスグラント信号e3を与えられたプロセッサエレメン
トを記憶しておくために使用される。
各プロセッサエレメントのバスリクエスト信号e2が競
合しない場合、バスリクエスト信号e2をそのままフリッ
プフロップE3の入力とし、バスグラント信号e3を授与で
きる。
バスリクエスト信号e2が競合する場合(信号線e2の論
理積h1が「ON」となる場合)には、競合するプロセッサ
エレメント間で優先順位を計算し、優先順位の高いプロ
セッサエレメントにバスグラント信号e3を送出する必要
がある。
プロセッサエレメント間で固定の優先順位を設定する
方法もあるが、第8図に示した優先順位決定回路におい
ては、前回バスグラント信号e3を与えられたプロセッサ
エレメントの優先順位を低くする方式をとる。
各プロセッサエレメントのバスグラント信号e3の論理
和の否定h2をフリップフロップH2のクロック入力とす
る。これにより、いずれかのバスグラント信号e3が「O
N」から「OFF」に変化する(通信バスの使用権を放棄す
る)ときに、フリップフロップH2の内容を書き換える。
フリップフロップH1は第2番目のプロセッサエレメン
ト(PE2)のバスグラント信号e3を入力とする。
フリップフロップH1はクロック信号e1に同期させて、
PE2のバスグラント信号e3を遅延させる。
フリップフロップH1の出力信号線h3はフリップフロッ
プH2の入力信号となる。
このため、フリップフロップH2は、いずれかのプロセ
ッサエレメントが通信バスの使用権を放棄するとき、与
えられていたバスグラント信号e3がPE2に対するものか
否かを記録することになる。
フリップフロップH2の出力信号線h4とする。バスリク
エスト信号e2が競合する場合、信号h4が「ON」のとき
(前回のバスグラント信号がPE2に与えられていた場
合)、第1番目のプロセッサエレメント(PE1)に対し
てバスグラント信号e3を与え、信号h4が「OFF」のと
き、PE2に対してバスグラント信号e3を与える。ただ
し、既にいずれかのプロセッサエレメントにバスグラン
ト信号e3が与えられている場合は、その状態を保つもの
とする。
以上に示した論理を回路にする場合、フリップフロッ
プE3への入力信号は、PE1のとき、 (h1′・e2+h1・(h4・h2+e3)) PE2のとき、 (h1′・e2+h1・(h4′・h2+e3)) となる。
なお、上式中、e2,e3はそれぞれのプロセッサエレメ
ントにおけるバスリクエスト信号、バスグラント信号で
ある。
また、x・yはxとyとの論理積を示し、x+yはx
とyとの論理和を示す。
それぞれの論理式の各項の意味については、h1′・e2
がバスリクエスト信号e2が競合しない場合を示し、h1・
h4・h2あるいはh1・h4′・h2がバスリクエスト信号e2が
競合する場合を示す(h2は既にいずれかのプロセッサエ
レメントにバスグラント信号が与えられていないことを
示す)。
h1・e3は既にバスグラント信号が与えられている場
合、そのバスグラント信号を継続することを示す。
以下、第3図に示した停止命令、再開命令を実現する
ためのハードウェアの詳細について説明する。
第9図に停止命令、再開命令を実行するための同期フ
ァシリティA4の内部構成を示す。
図中、I1は停止アドレスレジスタであり、プロセッサ
エレメントA1が停止命令を実行したとき、指定するアド
レスを記憶する。
I2は比較回路であり、他プロセッサエレメントが再開
命令を実行した場合、通信バスb1からのアドレス入力と
停止アドレスレジスタI1とを比較する。
i1はクロック信号線であり、d1またはf1と同様の信号
線である。i2は再開信号線であり、再開命令を実行した
場合、アドレス線i3と同時に出力される。
アドレス線i3は再開命令実行時と停止命令実行時にア
ドレスを指定するために使用される。
再開命令実行時には通信バスb1に対して出力される
が、停止命令実行時には停止アドレスレジスタI1にアド
レスを記憶させる。
i6は停止信号線である。信号線i6は、プロセッサエレ
メントA1が停止命令を実行したとき、アドレス線i3と同
時に出力され、指定のアドレスを停止アドレスレジスタ
I1に記憶させるために使用される。
i4,i5はいずれもアドレス線であり、それぞれ、停止
アドレスレジスタI1の出力および通信バスb1を介して得
られた他プロセッサエレメントからのアドレスを示す。
これらは比較回路I2の入力信号であり、信号線i8により
両アドレスが一致したことを示すことができる。
信号i8が「ON」となり、かつ、他プロセッサエレメン
トが再開信号i7を送出すれば、停止中のプロセッサエレ
メントを起動させるための信号i9をプロセッサエレメン
トA1に対して送る。
i10は各種制御線であり、通信バスb1管理の制御信号
などを含む。
停止命令、再開命令を実現するハードウェアにおい
て、バス調停回路A5の役割は通信バスb1におけるアドレ
ス線、制御線などの使用権を管理するのみとなる。
したがって、バス調停回路A5の内部構成は先に示した
第5図または第7図のうち、発振器E1,優先順位決定回
路E2,フリップフロップE3,および、クロック信号e1,バ
スリクエスト信号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番目のプロセッサエレメント(PE1)
が第2番目のプロセッサエレメント(PE2)に対して送
信命令を実行した場合のタイミングチャートである。
最初に、送信側プロセッサエレメントはバスリクエス
ト信号(BR)を送出する。
いずれのプロセッサエレメントも通信バスを使用して
いない場合には、クロック信号(clock)に同期して、
バスグラント信号(BG)が与えられる。
なお、通信バスが使用されている場合、およびリクエ
スト信号が競合した場合、すぐさまバスグラント信号が
与えられないことがある。
送信側プロセッサエレメントはバスグラント信号を受
け取った後、送信命令において指定する受信側プロセッ
サエレメントの番号(PE)、指定レジスタの値(dat
a)、受信側レジスタの番号(REG)を送出する。なお、
第10図ではこれらのデータを送出する間隔を1.5クロッ
クサイクルとしているが、この長さは、システム固有の
プロセッサエレメント配置など種々の要因に従う。
送信命令によるプロセッサエレメント番号指定によ
り、受信側プロセッサエレメントに対して、書き込み信
号(write)が送られる。
受信側プロセッサエレメントの同期レジスタファイル
の容量限度までデータが格納されていない場合、指定レ
ジスタの値と受信側レジスタの番号を同期レジスタファ
イルに書き込み、書き込みアドレスレジスタ(WA)を増
加させる。転送終了時にはバスリクエスト信号を「OF
F」に変化させ、これにより、バスグラント信号が「OF
F」に変化する。
次に示す第11図も送信命令を実行したときのタイミン
グチャートである。
ただし、送信命令実行当初、受信側プロセッサエレメ
ントの同期レジスタファイルの容量限度までデータが格
納されている場合を示している。
送信側プロセッサエレメントにおけるBR,BG,PE,data,
REG,および受信側プロセッサエレメントにおけるwrite,
WAの各信号は第10図と同様である。
受信側プロセッサエレメントの同期レジスタファイル
の容量限度までデータが格納されている場合(full信号
が「ON」のとき)、write,full両信号の論理積として書
き込み禁止信号(Inhibit)が送出される。これによ
り、送信側プロセッサエレメントは、通信バスの使用権
を保持したまま一時停止状態となる。受信側プロセッサ
エレメントが受信命令により同期レジスタファイルの内
容を読み出し、full信号を「OFF」に変化させると、送
信側プロセッサエレメントの書き込み禁止信号が「OF
F」となり、一時停止状態が解除される。
これにより、指定レジスタの値、受信側レジスタの番
号を受信側の同期レジスタファイルに格納する。
この場合、書き込み禁止信号が「ON」の間分だけ、送
信側プロセッサエレメントのPE,data,REGの各信号にデ
ータが出力されている時間が長くなる。BR,BGも同様で
ある。
第12図に送信命令実行時のもう1つのタイミングチャ
ートを示す。送信命令実行時に、受信側プロセッサエレ
メントの同期レジスタファイルの容量限度までデータが
格納されている場合に、通信バスの使用権を放棄する方
式である。
この場合、送信側プロセッサエレメントに対して、書
き込み禁止信号が送出されたとき、送信側プロセッサエ
レメントを一時停止状態とするとともに、バスリクエス
ト信号を「ON」から「OFF」に変化させる。これによ
り、バスグラント信号も「OFF」に変化し、通信バスの
使用権を放棄したことになる。
その後、受信側プロセッサエレメントにおいて、full
信号が「ON」から「OFF」に変化した場合、送信側プロ
セッサエレメントに対して割込み等を発生させ、送信側
プロセッサエレメントの一時停止状態を解除する。
この第12図の方式は通信バスの競合を低下させるため
の方式である。
第13図には受信命令実行時のタイミングチャートを示
す。受信側プロセッサエレメント(PE1)が読み出し信
号(read)を出力し、同期レジスタファイルから、転送
されてきたレジスタの値(data)とデータ格納先レジス
タの番号(REG)を読み出す。
このとき、読み出しアドレスレジスタ(RA)の内容を
増加させる。
なお、受信命令実行時においても、読み出し信号の出
力間隔を1.5クロックサイクルとしているが、この長さ
は、プロセッサエレメントの配置など種々の要因から変
更され得るものである。
第14図に、受信命令実行時に同期レジスタファイルに
記憶されているデータがない場合のタイミングチャート
を示す。
read,data,REG,RAの各信号の意味は第13図と同様であ
る。受信側プロセッサエレメントが受信命令を実行し、
読み出し信号を出力したとき、同期レジスタファイルに
記憶されているデータが存在しないことがある。
この場合は、empty信号が「ON」となっている。受信
命令を実行したプロセッサエレメントはempty信号によ
り、同期レジスタに記憶されているデータがないことを
判断し、一時停止状態となる。
この時点で、他プロセッサエレメントがPE1に対して
送信命令を実行する(write信号の「ON」)と、empty信
号が、「ON」から「OFF」に変化する。
これにより、受信側プロセッサエレメントは一時停止
状態を解除され、第13図と同様に、同期レジスタファイ
ルから、転送されてきたレジスタの値とデータ格納先レ
ジスタの番号を読み出し、かつ、読み出しアドレスレジ
スタの内容を増加させる。
以上のように、本実施例によれば、プロセッサエレメ
ント間のデータ転送を、データ転送命令1命令で実現す
ることができ、また、該データ転送を介してプロセッサ
エレメント間の同期を実現できる。
第15図は停止命令、再開命令実行時のタイミングチャ
ートである。
この例では、第1番目のプロセッサエレメント(PE
1)が停止命令を、第2番目のプロセッサエレメント(P
E2)が再開命令を実行する。
停止命令実行時には、PE1は、命令で指定したアドレ
ス(WAR)を送出するとともに、停止信号(sleep)を出
力する。停止信号により、指定したアドレスを停止アド
レスレジスタに記憶させる。停止信号を出力した後、PE
1は一時停止状態となる。
なお、指定したアドレスで一時停止状態となっている
プロセッサエレメントは、再開命令により全て再開され
る。そのため、通信バスを介して、指定したアドレスを
全てのプロセッサエレメントに通知するようにしてい
る。
再開命令時、PE2は、最初に、バスリクエスト信号(B
R)を出力し、バスグラント信号(BG)によって通信の
バスの使用権を確保しなければならない。
通信バスの使用権を確保した後、再開信号(resume)
と命令によって指定したアドレス(address)を通信バ
ス上に出力する。
出力されたアドレスは他プロセッサエレメント上の停
止アドレスレジスタの内容と比較され、一致すれば、起
動信号(wakeup)を対応するプロセッサエレメントに送
出する。これにより、一時停止状態となっているプロセ
ッサエレメントが実行を再開する。
なお、停止信号、再開信号ともに出力間隔を1.5クロ
ックサイクルとしているが、この長さは、プロセッサエ
レメントの配置など種々の要因から変更され得るもので
ある。
以上のように、停止命令、再開命令を用いることによ
り各プロセッサエレメント間の同期を、容易に1命令で
実現できる。
なお、これらの命令を用いて、同期をとるのは、ソフ
トウェアの責任であり、コンパイラが、各プロセッサエ
レメントへの処理の割り振りに応じて、割り振った処理
の同期のために、これらの命令を各プロセッサエレメン
ト実行させる命令中に含める。
すなわち、たとえば、前記レジスタ転送命令を用いず
に、PE1で処理したデータをPE2が用いる処理を実行する
場合、PE1は処理を終了し、処理したデータをメモリ装
置に格納した後、格納したアドレスを含んだ停止命令を
実行して停止し、PE2においては、メモリ装置より、こ
のデータっを読み取った後、前記アドレスを含んだ再開
命令を実行し、PE1を再開させる。これにより、PE1で処
理したデータをPE2が用いる処理を実行する場合に、プ
ロセッサエレメント間の、メモリ装置の排他制御を含む
同期を容易に実現できる。
ところで、共有メモリ型マルチプロセッサシステムに
おいては、プロセッサエレメント間の同期、データ転送
に専用のハードウェアを設けることが少なく、たとえ専
用ハードウェアを設けたとしても、同期処理と通常のメ
モリ参照とが互いに影響しないようにするためのもので
あり、同期手順自体をハードウェア化したものはない。
しかし、本実施例によれば、以上説明してきたよう
に、同期手順の多くをハードウェア化し、同期を1命令
で実行できるようにした。また、プロセッサエレメント
間で、1命令でデータ転送を行うことを可能とした。
これにより、複数個のプログラム間で互いに協調動作
する場合にも容易に高速化が可能である。
「発明の効果] 以上のように、本発明によれば、複数のプロセッサエ
レメント間の同期を、少ない命令数で実現することので
きるマルチプロセッサシステムを提供することができ
る。
また、複数のプロセッサエレメント間の、データの転
送を、少ないオーバーヘッドで実現することのできるマ
ルチプロセッサシステムを提供することができる。
【図面の簡単な説明】
第1図は本発明の一実施例に係るマルチプロセッサシス
テムの構成を示すブロック図、第2図はマルチプロセッ
サシステムの他の構成を示すブロック図、第3図はプロ
セッサエレメント間協調命令のフォーマットを示す説明
図、第4図は同期ファシリティの内部構成を示すブロッ
ク図、第5図はバス調停回路の内部構成を示すブロック
図、第6図は同期ファシリティの第2の内部構成を示す
ブロック図、第7図はバス調停回路の他の内部構成を示
すブロック図、第8図は優先順位決定回路の内部構成を
示すブロック図、第9図は同期ファシリティの第3の内
部構成を示すブロック図、第10図、第11図、第12図、第
13図および第14図はレジスタ転送命令実行動作を示すタ
イミングチャート、第15図は停止命令実行動作と再開命
令実行動作を示すタイミングチャートである。 A1……プロセッサエレメント、A2……キャッシュ記憶装
置、A3……メモリ装置、A4……同期ファシリティ、A5…
…バス調停回路、a1……共有バス、b1……通信バス、D1
……同期レジスタファイル、D2……読み出しアドレスレ
ジスタ、D3……書き込みアドレスレジスタ、E1……発振
器、E2……優先順位決定回路、I1……停止アドレスレジ
スタ。

Claims (5)

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

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5372307B2 (ja) * 2001-06-25 2013-12-18 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
WO2009153977A1 (ja) * 2008-06-19 2009-12-23 パナソニック株式会社 マルチプロセッサ
CN103080921B (zh) 2010-08-30 2015-11-25 富士通株式会社 多核处理器系统、同步控制系统、同步控制装置、信息生成方法
JP5811211B2 (ja) * 2014-02-27 2015-11-11 富士通株式会社 マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Also Published As

Publication number Publication date
JPH04195664A (ja) 1992-07-15

Similar Documents

Publication Publication Date Title
JP2000181878A (ja) 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体
JPH0962563A (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
US10120815B2 (en) Configurable mailbox data buffer apparatus
US5313620A (en) Selective receiver for each processor in a multiple processor system
JPH0679305B2 (ja) 保留バスを用いて割り込みに応じる装置及び方法
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
JPH06103155A (ja) 共有メモリ制御方法及び共有メモリ制御装置
US6938132B1 (en) Memory co-processor for a multi-tasking system
US9652299B2 (en) Controlling the state of a process between a running and a stopped state by comparing identification information sent prior to execution
JP2907533B2 (ja) マルチプロセッサシステム
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
US20030014558A1 (en) Batch interrupts handling device, virtual shared memory and multiple concurrent processing device
JP2021002080A (ja) バスシステムおよびその制御方法
JP2834298B2 (ja) データ処理装置及びデータ処理方法
EP2450795A1 (en) Computer device, parallel computer system, and synchronization program
JPH0628235A (ja) 記憶制御装置
JPH0895899A (ja) Dma転送制御装置
JPH1185673A (ja) 共有バスの制御方法とその装置
JPH09218859A (ja) マルチプロセッサ制御システム
SU907551A1 (ru) Мультимикропроцессорна система
JPH05134980A (ja) バスシステム
JPH10105488A (ja) 通信用コントローラ
JP2536260B2 (ja) 拡張記憶デ―タ転送方式
JP2000040071A (ja) 多重化バスの順序保証システム
JP2001306337A (ja) マルチタスク均等処理方式及びその方法