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

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

Info

Publication number
JP2559165B2
JP2559165B2 JP2310256A JP31025690A JP2559165B2 JP 2559165 B2 JP2559165 B2 JP 2559165B2 JP 2310256 A JP2310256 A JP 2310256A JP 31025690 A JP31025690 A JP 31025690A JP 2559165 B2 JP2559165 B2 JP 2559165B2
Authority
JP
Japan
Prior art keywords
instruction
control unit
read
lock
buffer storage
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 - Fee Related
Application number
JP2310256A
Other languages
English (en)
Other versions
JPH04181460A (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 JP2310256A priority Critical patent/JP2559165B2/ja
Publication of JPH04181460A publication Critical patent/JPH04181460A/ja
Application granted granted Critical
Publication of JP2559165B2 publication Critical patent/JP2559165B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マルチプロセッサシステムに関し、特に、
命令の順序性を保証するためのシリアライゼーション動
作を伴う命令を高速に処理するマルチプロセッサシステ
ムに関するものである。
〔従来の技術〕
従来、複数のプロセッサで構成されるマルチプロセッ
サシステムにおいて、一時には1つのプロセッサのみが
使用できる資源を各プロセッサで共有するために、共有
の主記憶装置上にロックバイトを設け、当該ロックバイ
トを用いて資源の逐次使用を保証することが広く行なわ
れている。
具体的には、その資源が使用中であれば、対応する主
記憶装置上のロックバイトの値を“1"とし、資源が空い
ていれば、ロックバイトの値を“0"とする。その資源を
用いる場合には、まず、ロックバイトを参照し、ロック
バイトの値が“1"(使用中)であれば、その値が“0"と
なるまで待つ。ロックバイトの値が“0"であれば、その
値を“1"に変えて資源の使用権を得る。
そして、その資源を使用した後には、再びロックバイ
トの値を“0"に戻しておく。
このようなロックバイトを用いて、資源の逐次使用を
保証する処理において、ロックバイトの読み出しと書き
込みの間に他のプロセッサが、当該ロックバイトを参照
すると、複数のプロセッサが資源の使用権を得てしまう
可能性がある。
これを防ぐため、例えば、特開平1−119849号公報の
多重プロセッサシステムの記載例に見られるように、ロ
ックバイトの読み出しと書き込みの間は他のプロセッサ
からの参照を禁止するロック制御を行う。
このようなロック制御を行なう処理命令の例として
は、例えば、Mシリーズ処理装置(M/EX)モード(8080
−2−093)に示されているCS命令(Compare and Swa
p 命令)がある。
第6図は、CS命令を説明するための図である。
CS命令60は、第6図に示すように、3つのオペランド
を有するRS形式の命令となっている。
CS命令60における第1オペランドのR1および第3オペ
ランドのR3は、汎用レジスタ(GR)の番号を示し、第2
オペランドのB2はベースレジスタ番号を示し、D2はベー
スレジスタ(B2)からの変位(Displacement)を示して
いる。
ベースレジスタB2の内容と変位D2とにより、主記憶装
置上のオペランドアドレスが示される。
次に、CS命令の動作の概略を説明する。
まず、R1で示される汎用レジスタの内容61(第1オペ
ランド)と、ベースレジスタB2および変位D2により指定
されるアドレスの主記憶装置4上の内容63(第2オペラ
ンド)とを比較する。
そして、比較結果が等しければ、R3で示される汎用レ
ジスタの内容62(第3オペランド)が、主記憶装置4上
の当該アドレスの位置(第2オペランド)にストアされ
る。
比較結果が等しくなければ、R3で指定される汎用レジ
スタの内容62(第3オペランド)が、R1で指定される汎
用レジスタ(第1オペランド)にロードされる。
マルチプロセッサシステムを構成する1つの命令プロ
セッサによって、このCS命令が実行される場合、主記憶
オペランドの読み出しと書き込みの間はロック制御が行
なわれ、この間、他のプロセッサからの主記憶装置の参
照が禁止される。
また、CS命令は、主記憶オペランドの読み出し前と書
き込み後にシリアライゼーション動作を行なう命令とな
っている。
このシリアライゼーション動作は主記憶参照の順序制
御を行なう処理であり、シリアライゼーション処理が実
行されると、それ以前に当該プロセッサで実行された全
ての主記憶参照が終了した後に、後続の主記憶参照が行
なわれるように、他のプロセッサからは見える。
マルチプロセッサシステムにおいては、CS命令の高速
化が重要な課題である。
即ち、CS命令の処理を行う場合には複数の他のプロセ
ッサによる並列処理が停上されるため、CS命令が高速に
行えないと、複数のプロセッサによる処理性能が十分に
引き出せない。
従来、CS命令の処理は、先行制御機構を備えたプロセ
ッサにおいても、命令の実行ステージにてロック処理に
起動をかける方法が一般的に行なわれる。
また、CS命令の次命令の読み出しは、シリアライゼー
ション処理が終了してから開始される。
シリアライゼーション処理の高速化の一手法について
は、例えば、特開平1−119849号公報に記載されている
ように、ロックをかけるときに他の命令プロセッサのバ
ッファ記憶装置にデータブロックの無効化を行う方法が
提案されている。
この方法によれば、CS命令のストア動作の実質的な終
了を待たずに、次の命令処理を開始することができる。
〔発明が解決しようとする問題点〕
ところで、上述のように、ロックをかけるときに他の
命令プロセッサのバッファ記憶装置にデータブロックの
無効化を行う手法を用いることにより、CS命令のストア
動作の実質的な終了を待たずに、次の命令処理を開始す
ることができ、シリアライゼーション処理を高速化でき
る。
しかしながら、シリアライゼーションの処理の後に、
次命令の処理を開始する契機および方法についての配慮
がなされておらず、また、ロック処理自体の高速化につ
いても配慮がなされていないため、総合的な意味でのシ
リアライゼーション処理を高速化することが十分になさ
れていない。このため、マルチプロセッサシステムの処
理性能を十分に向上させていない。
本発明の目的は、各プロセッサがパイプラインにより
命令を処理するマルチプロセッサシステムにおいて、ロ
ック処理の起動を速くして早い時期にロック処理を終了
させることにより、ロック処理を高速化して、システム
の性能を向上させることが可能となる技術を提供するこ
とにある。
本発明の他の目的は、各プロセッサがパイプラインに
より命令を処理するマルチプロセッサシステムにおい
て、シリアライゼーション処理の終了後に速やかに次命
令の処理を開始して、シリアライゼーション動作を伴う
ロック命令の処理時間を短縮することにより、シリアラ
イゼーション動作を伴うロック命令を高速化して、シス
テムの性能を向上させることが可能となる技術を提供す
ることにある。
本発明の前記目的並びにその他の目的及び新規な特徴
は、本明細書の記載及び添付図面によって明らかにす
る。
〔問題点を解決するための手段〕
本願において開示される発明のうち、代表的なものの
概要を簡単に説明すれば、下記の通りである。
(1)複数の命令プロセッサを有し、各命令プロセッサ
が、パイプライン処理により、命令の解読を命令実行ス
テージ以前に行うマルチプロセッサシステムにおいて、
各命令プロセッサは、ロック命令を解読してからロック
命令の命令実行ステージ以前に、他のプロセッサから主
記憶装置に対するアクセスを禁止する要求を出力する命
令制御ユニットを備えることを特徴とする。
(2)前記(1)の手段において、前記各命令プロセッ
サは、命令解読、オペランドアドレス計算、オペランド
読み出し、命令実行の各ステージをパイプラインで処理
するものであり、前記アクセスを禁止する要求は、オペ
ランド読み出しステージにおける読み出し要求に付随し
て出力されるものであることを特徴とする。
(3)複数の命令プロセッサ、記憶制御装置、および、
共有の主記憶装置から構成され、各命令プロセッサがパ
イプライン処理により命令を処理するとともに主記憶装
置のデータの一部の写しを保持するバッファ記憶装置を
それぞれ有するマルチプロセッサシステムにおいて、各
命令プロセッサは、シリアライゼーション動作を伴うロ
ック命令を処理するに際して、シリアライゼーション動
作の終了以前に前記ロック命令に後続する次命令の読み
出し処理を開始して前記バッファ記憶装置に読み出し要
求を発行し、前記バッファ記憶装置は、シリアライゼー
ション動作が終了するまで前記読み出し要求の受け付け
を抑止して、シリアライゼーション動作が終了した後に
前記読み出し要求を受け付けることを特徴とする。
(4)前記(3)の手段において、前記命令プロセッサ
は、命令の読み出しと解読を行う命令制御ユニットと、
命令の実行ステージの制御を行う実行制御ユニットとを
有し、前記記憶制御装置は、各命令プロセッサのバッフ
ァ記憶装置に登録されている各々のブロックの主記憶装
置上のアドレスを保持するフロント・アドレス・アレイ
を有し、かつ、前記フロント・アドレス・アレイは、主
記憶装置の任意の領域に対してロックを伴うアクセスが
あると第1の信号状態になり、前記主記憶装置の任意の
領域のアドレスと、フロント・アドレス・アレイとの参
照が終了すると第2の信号状態となる信号を前記バッフ
ァ記憶装置に対して出力し、前記実行制御ユニットは、
前記ロック命令の実行を開始すると、前記命令制御ユニ
ットに対して既に読み出している命令をキャンセルする
命令キャンセル指示を発行し、その後、前記後続する次
命令の読み出し開始を指示する次命令読み出し開始指示
を発行し、前記命令制御ユニットは、前記次命令読み出
し開始指示に基づきバッファ記憶装置に対して読み出し
要求を発行し、前記バッファ記憶装置は、前記信号が第
2の信号状態になるまで前記読み出し要求の受け付けを
抑止し、前記信号が第2の信号状態になったときに前記
読み出し要求を受け付ることを特徴とする。
〔作用〕
前記(1)または(2)の手段によれば、各命令プロ
セッサが、パイプライン処理により命令を実行するマル
チプロセッサシステムにおいて、各命令プロセッサは命
令制御ユニットを備え、命令制御ユニットは、ロック命
令を解読してからロック命令の命令実行ステージ以前
に、例えば、オペランド読み出しステージにおける読み
出し要求に付随して、他のプロセッサから主記憶装置に
対するアクセスを禁止する要求を出力する。
これにより、命令実行ステージでロック処理を起動す
る場合に比べて、ロック処理の起動を早くすることがで
き、早い時期にロック処理を終了することができる。
前記(3)または(4)の手段によれば、複数の命令
プロセッサ、記憶制御装置、および、共有の主記憶装置
から構成され、各命令プロセッサがパイプライン処理に
より命令を処理するとともに主記憶装置のデータの一部
の写しを保持するバッファ記憶装置をそれぞれ有するマ
ルチプロセッサシステムにおいて、各命令プロセッサ
が、シリアライゼーション動作を伴うロック命令を処理
するに際して、シリアライゼーション動作の終了以前に
ロック命令に後続する次命令の読み出し処理を開始し
て、バッファ記憶装置に読み出し要求を発行するが、当
該読み出し要求が、シリアライゼーション動作が終了す
るまでバッファ記憶装置に受け付けられないので、後続
する次命令の読み出し処理を中断し、シリアライゼーシ
ョン動作が終了した後に中断していた後続する次命令の
読み出し処理を再開し、バッファ記憶装置を参照して後
続する次命令の読み出しを行う。
このように、シリアライゼーション動作の終了前に、
ロック命令に後続する次命令の読み出し処理を開始し、
バッファ記憶装置を参照する直前の状態で後続する命令
の読み出し処理を中断して待機しているので、シリアラ
イゼーション動作の終了後に、直ちに処理を再開するこ
とができ、シリアライゼーション動作が終了してからロ
ック命令に後続する次命令の読み出し処理を開始する場
合に比べて、ロック命令に接続する次命令を速やかに実
行することができる。
これにより、各プロセッサにおけるシリアライゼーシ
ョン動作を伴うロック命令の処理時間を短縮でき、シリ
アライゼーション動作を伴うロック命令の処理を高速化
することができる。
〔実施例] 以下、本発明の一実施例を図面を用いて具体的に説明
する。
第1図は、本発明の一実施例にかかるマルチプロセッ
サシステムのブロック図である。
第1図において、1は第1の命令プロセッサ(IP
0)、2は第2の命令プロセッサ(IP1)、3は記憶制御
装置(SC)、4は主記憶装置(MS)である。
第1の命令プロセッサ(IP0)1および第2の命令プ
ロセッサ(IP1)2が、記憶制御装置(SC)3を介して
主記憶装置(MS)4に接続され、マルチプロセッサシス
テムを構している。
各々の命令プロセッサ(IP0,IP1)(1,2)は、命令制
御ユニット10,実行制御ユニット11、および、バッファ
記憶制御ユニット12を備えており、先行制御により命令
の処理を実行する。
命令制御ユニット10は、バッファ記憶制御ユニット12
への命令読み出し要求の制御、および、読み出した命令
の解読を行う。
また、先行制御によるオペランド読み出し要求の制御
も行なう。
なお、先行制御を行う先行制御機構は従来周知である
ので、第1図に示す実施例では、先行制御機構は省略し
てある。
実行制御ユニット11は、解読した命令の処理を行う命
令処理の実行ステージの制御を行なうと共に、命令制御
ユニット10の動作開始および動作停止の指示を行う。
バッファ記憶制御ユニット12は、主記憶装置(MS)4
のデータの一部の写しを記憶するバッファ記憶装置(B
S)13を有している。
バッファ記憶装置(BS)13は、一定の単位(以下、ブ
ロックという)ごとにデータを区切って、主記憶装置
(MS)4からのデータを読み出し、保持する。
さらに、バッファ記憶制御ユニット12には、バッファ
記憶装置(BS)13に登録されている各々のブロックを管
理するための、バッファ・アドレス・アレイ(以下、BA
Aと称す。)14が備えられる。
BAA14の各エントリは、対応するブロックに格納され
ているデータの主記憶装置(MS)4の上のアドレスと共
に、そのブロックが有効であるか否かを示す有効ビット
を持つ。
例えば、命令プロセッサ(IP0)1において、読み出
しを行なうデータがバッファ記憶装置(BS)13に存在し
ないときには、主記憶装置(MS)4からブロック単位に
データを読み出し、バッファ記憶装置(BS)13に格納す
る。
この動作をブロック転送と呼ぶ。
記憶制御装置(SC)3は、各々の命令プロセッサ(IP
0,IP1)(1,2)から送信される主記憶参照要求に従い、
主記憶装置(MS)4の読み出し、および、書き込み処理
を制御する。
また、記憶制御装置(SC)3は、命令プロセッサ間の
バッファ記憶装置(BS)13の一致制御を行うため、各命
令プロセッサのBAA14の写しであるフロント・アドレス
・アレイ(以下、FAAと称す。)を持つ。
第2図は、第1図における命令プロセッサ(IP0)1
および記憶制御装置(SC)3の間の制御の流れを詳細に
示すブロック図である。
次に、実際の命令処理の動作の流れを、第2図を参照
して説明する。
まず、命令制御ユニット10がバッファ記憶制御ユニッ
ト12に対して、命令読み出し要求IREQを送出する。
バッファ記憶制御ユニット12は、この命令読み出し要
求IREQを受け付けたときには、命令制御ユニット10に対
して、IACP信号を返す。
例えば、何等かに要因によって、この命令読み出し要
求が受け付けられず、IACP信号が返らなかった場合に
は、命令制御ユニット10は、再度命令読み出し要求IREQ
を送出する。
この動作は命令読み出し要求IREQに対してIACP信号が
返るまで繰り返される。
バッファ記憶制御ユニット12では、命令読み出し制御
部21が、命令読み出し要求IREQを受け付けると、即ち、
IACP信号を返すと、命令読み出し要求IREQと共に送出さ
れたアドレスを用いて、バッファ記憶装置(BS)13を読
み出し、読み出しデータ(命令データ)をデータ送出信
号であるIADV信号と共に、命令制御ユニット10に送出す
る。
命令制御ユニット10は、バッファ記憶制御ユニット12
から読み出した命令データを受け取り、その命令の解読
を行なう。
命令を解読した結果、その命令が先行制御可能な命令
であった場合は、直ちに(命令の処理が実行ステージに
入る前に)バッファ記憶装置(BS)13に対して、オペラ
ンド読み出し要求OREQを送出する。
オペランド読み出し要求OREQを受け取ったバッファ記
憶制御ユニット12においては、オペランド読み出し制御
部22が、前述の命令読み出し要求IREQの場合と同様に、
要求の受け付を示すOACP信号を返し、バッファ記憶装置
(BS)13からオペランドの読み出しを行ない、OADV信号
と共に、読み出したオペランドデータを命令制御ユニッ
ト10および実行制御ユニット11に送出する。
実行制御ユニット11では、OADV信号を受けたことによ
り、当該命令の処理を行う実行ステージを開始する。
即ち、命令制御ユニット10からの指示に従い、バッフ
ァ記憶制御ユニット12から受け取ったオペランドデータ
を用いて演算を行う。
この場合に、演算結果をストアする命令の場合には、
実行制御ユニット11は、演算の終了時にバッファ記憶制
御ユニット12に対して、ストア要求STREQを送出する。
バッファ記憶制御ユニット12では、ストア制御部23
が、ストア要求STREQにより、実行制御ユニット11から
送られた演算結果をバッファ記憶装置(BS)13に書き込
むと共に、更に、SCリクエスト制御部24を起動して、記
憶制御装置(SC)3に対してストア要求SCREQ(ST)を
送出し、主記憶装置(MS)4にストア命令による演算結
果のデータ書き込みを行う。
これらの一連の命令の処理は、可能な限り先行制御に
より行なわれる。
第3図は、一連の命令の処理の動作をパイプラインス
テージで示した図である。
パイプラインステージは、第3図に示すように、基本
的には1つの命令処理を行う一連の処理動作をDi,Ai,L
i,D,A,L,Eの7つのステージで行う処理形態である。
このうち、Di,Ai,Liの前半の3ステージは命令読み出
しのステージであり、後続する後半のD,A,Lの3ステー
ジは先行制御によるオペランド読み出しのステージであ
る。
実際の命令の実行(演算)は、最後のEステージで行
なわれる。
Eステージは必ずしも1ステージで終了するとは限ら
ず、複雑な命令の処理を行う場合には、Eステージが複
雑となり、例えば、EステージがE0,E1,E2,…と続い
て、命令の処理が実行される。
また、一般に、高速性を重視したプロセッサでは、命
令の先き読みを行うため、全ての命令が連続した7ステ
ージで構成されるわけではなく、先行制御により既に命
令が先読みされている場合には、Dステージからの4ス
テージのみが連続して実行される。
各ステージの意味は、下記の通りである。
Di:命令読み出し開始、 Ai:命令アドレス計算、 Li:命令読み出しのBS参照、 D :命令解読、 A :オペランドアドレス計算、 L :オペランド読み出しのBS参照、 E :実行。
次に、各命令プロセッサ間のバッファ記憶装置(BS)
13の内容の一致制御について説明する。
第1図に示すような、2つの命令プロセッサ(IP0,IP
1)(1、2)から構成されるマルチプロセッサシステ
ムにおいて、例えば、命令プロセッサ(IP1)2がスト
ア動作を行った際に、既に、そのストア動作が行なわれ
た主記憶領域の写しが命令プロセッサ(IP0)1内のバ
ッファ記憶装置(BS)13に格納されていたとする。
この場合に、このままの状態では、次に、命令プロセ
ッサ(IP0)1がその領域を読み出そうとしたときに
は、バッファ記憶装置(BS)13からデータを読み出すた
め、読み出しデータに命令プロセッサ(IP1)2による
ストア動作の結果が反映されない。
このような状態になることを防ぐ処理が、バッファ記
憶装置(BS)13の一致制御である。
バッファ記憶装置(BS)13の一致制御を行うために、
記憶制御装置(SC)3には、各命令プロセッサのBAA14
の写しであるFAAが各々の命令プロセッサのバッファ記
憶装置(BS)13に対応して置かれる。
再び第2図を参照すると、他の命令プロセッサ(IP
1)2から送出されたストア要求は、記憶制御装置(S
C)3内のリクエスト制御部31で受け付けられ、リクエ
スト制御部31は、この要求をMS制御部32に送出して、主
記憶装置(MS)4への書き込みを要求すると共に、スト
アアドレスをFAA制御部33に送出する。
FAA制御部32では、このアドレスを用いて命令プロセ
ッサ(IP0)1に対応したFAAを参照し、その結果、命令
プロセッサ(IP0)1が当該領域の内容を自己のバッフ
ァ記憶装置(BS)13に保持しているとがわかると、命令
プロセッサ(IP0)1に対して当該領域の内容を無効化
する無効化要求BIREQを送出する。
この無効化要求BIREQを受けたバッファ記憶制御ユニ
ット12内のBAA制御部25では、該当するBAA14の有効ビッ
トを“0"とすることにより、命令プロセッサ(IP1)2
がストアを行った領域を、命令プロセッサ(IP0)1の
バッファ記憶装置(BS)13において無効化する。
この後、命令プロセッサ(IP0)1が無効化された領
域の内容を読み出す際、バッファ記憶装置(BS)13には
該当するデータが存在しないと判定されるため、ブロッ
ク転送を行ない、主記憶装置(MS)4からデータを読み
出すことになる。
これにより、命令プロセッサ(IP1)2がストアした
データを読み出すことができる。
即ち、ある命令プロセッサがストアを行ったときに
は、その領域の写しをバッファ記憶装置(BS)13に持つ
他の命令プロセッサでは、当該領域をバッファ記憶装置
(BS)13から無効化することにより、バッファ記憶装置
(BS)13の一致制御を行う。
次に、シリアライゼーション動作を伴うCS命令の動作
を説明する。
第4図は、実行制御ユニットが行うCS命令の実行ステ
ージの処理フローを示すフローチャートである。
第4図をも参照してCS命令の処理動作の一連の流れを
説明する。
命令制御ユニット10は、CS命令を解読すると、直ちに
オペランド読み出し要求OREQをバッファ記憶制御ユニッ
ト12に送出する。
このときに送出されるオペランド読み出し要求OREQ
は、ロック付きフェッチ(LF)と呼ばれる特殊なオペラ
ンド読み出し要求であり、主記憶装置(MS)4からのオ
ペランドの読み出しと共に、当該アドレスに対してロッ
クをかける動作を指示する。
このオペランド読み出し要求OREQを受け付けたバッフ
ァ記憶制御ユニット12は、オペランド読み出し制御部2
2、SCリクエスト制御部24を介して、記憶制御装置(S
C)3に対してロック付きフェッチ(LF)のオペランド
読み出し要求SCREQを送出する。
なお、バッファ記憶制御ユニット12では、ロック付き
フェッチ(LF)のオペランド読み出し要求OREQを受け付
けてから、記憶制御装置(SC)3に対してオペランド読
み出し要求SCREQを送出し、これが受け付けられるまで
の間、バッファ記憶制御ユニット12においては、オペラ
ンド読み出し制御部22がロック付きフェッチ処理を行っ
ていることを示す信号であるBULKBSY信号2aを“1"とす
る。
ロック付きフェッチ(LF)のオペランド読み出し要求
SCREQを受けた記憶制御装置(SC)3のリクエスト制御
部31は、オペランド読み出し要求SCREQと共に送られた
アドレスをロックアレイ34にセットする。
これにより、当該アドレスに対しロックがかかり、以
降、他の命令プロセッサからの当該アドレスに対する主
記憶装置(MS)4の参照要求は受け付けられなくなる。
また、リクエスト制御部31は、MS制御部32に主記憶読
み出しを要求し、MS制御部32は読み出しが完了すると、
その読み出しデータと共に、データ送出信号であるSCAD
V信号を命令プロセッサ(IP1)1のバッファ記憶制御ユ
ニット12に送出する。
このSCADV信号を受け取ったバッファ記憶制御ユニッ
ト12は、SCリクエスト制御部24およびオペランド読み出
し制御部22を介して、オペランド読み出しの完了を示す
OADV信号をオペランドデータと共に、命令制御ユニット
10および実行制御ユニット11に送出する。
同時に、リクエスト制御部31は、FAA制御部33に当該
アドレスを送出し、FAA制御部33では、このアドレスを
用いて、命令プロセッサ(IP0)1および命令プロセッ
サ(IP1)2の両方に対応するFAAを参照する。
そして、当該領域の内容を保持している命令プロセッ
サに対しては、バッファ記憶装置(BS)13の無効化要求
である無効化要求BIREQを送出する。
記憶制御装置(SC)3では、ロック付きフェッチ(L
F)のオペランド読み出し要求SCREQを受け付けてから、
FAA制御部33においてFAAの参照および無効化要求BIREQ
の送出が完了するまでの間、記憶制御装置(SC)3にお
いてロック付きフェッチ(LF)の処理を行っていること
を示す信号であるSCLKBSY信号2bを“1"とする。
一方、命令プロセッサ(IP0)1では、命令制御ユニ
ット10が、ロック付きフェッチ(LF)のオペランド読み
出し要求OREQをバッファ記憶制御ユニット12に送出した
後、オペランド読み出しの終了信号であるOADV信号の到
着を待たずに、実行制御ユニット11でのCS命令の実行ス
テージを開始する。
CS命令の実行ステージにおける処理フローは、第4図
のフローチャートに示されている。
この処理はマイクロプログラム制御で行なわれる。
まず、ステップ41において、命令制御ユニット10に対
してRESIF要求を出し、一旦、命令制御ユニット10の命
令読み出しの動作を停止させる。
これは、シリアライズ動作を行うために、命令制御ユ
ニットが先読みしている先読み命令をキャンセルする動
作である。
次に、ステップ42において、命令制御ユニット10に対
して、CS命令の後続命令の読み出し開始を指示するSTRT
IF信号を送出して、次のステップ43において、オペラン
ドデータの到着待ちの処理に入る。
このCS命令の後続命令の読み出し開始を指示するSTRT
IF信号を受けた命令制御ユニット10は、CS命令の後続命
令の読み出し要求IREQをバッファ記憶制御ユニット12に
送出する。
しかし、命令読出し制御部21では、論理和素子26によ
り、オペランド読出し制御部22からのBULKBSY信号2a
と、記憶制御装置(SC)3内のFAA制御部33からのSCLKB
SY信号2bの論理和をとった信号であるLKBSY信号2cが
“1"である間は、論理積素子27により、IACP信号の送出
が抑止される。
このため、ロック付きフェッチ処理において、FAA制
御部32でのFAA参照および無効化要求BIREQの送出が完了
するまでは、命令読み出し要求IREQに対するIACP信号は
送出されない。
なお、IACP信号の抑止要因はLKBSY信号2cだけでな
く、この他の抑止要因も信号線2dにより論理積素子27に
接続されているが、ここでは直接関係しないため説明を
省略する。
実行制御ユニット11では、CS命令の後続命令の読み出
しを命令制御ユニット10に指示した後、ロック付きフェ
ッチ(LF)のオペランド読み出し要求OREQに対するOADV
信号、即ち、オペランドデータの到着を待つ。
ステップ43において、オペランドデータの到着が判定
されると、次にステップ44においてオペランドデータの
内容によりストアすべきデータを決定し、更に、次のス
テップ45において、ストアとロック解除の処理を行う。
これは、バッファ記憶制御ユニット12に対して、ロッ
ク解除付きのストア要求STREQを送出することにより実
行される。
このロック解除付きのストア要求STREQは、ST&RLKと
呼ばれる特殊なストア要求であり、データの書込みを行
った後にロックの解除を行なう要求である。
バッファ記憶制御ユニット12ではSCリクエスト制御部
24を介して、ロック解除付き(ST&RLK)のストア要求S
CREQを記憶制御装置(SC)3に送出する。
記憶制御装置(SC)3では、通常のストア動作を行っ
た後、ロックアレイ34に対してロックの解除を指定す
る。
このように、ロック解除付き(ST&RLK)のストア要
求STREQを送出することにより、実行制御ユニット11に
おけるCS命令の実行ステージは終了する。
一方、LKBSY信号2cにより、抑止されていたIACP信号
は、FAA制御部33において、FAA参照および無効化要求BI
REQの送出が終了し、論理和素子26からのLKBSY信号2cが
“0"となった時点で、命令制御ユニット10に送出され
る。
これにより、CS命令の後続命令の読み出し要求IREQが
バッファ記憶制御ユニット12で受け付けられ、命令読出
し制御部21では、命令読み出しのバッファ記憶参照を開
始する。
このように、FAA参照および無効化要求BIREQの送出が
完了してから命令読み出しのバッファ記憶装置(BS)13
を参照することにより、シリアライズ処理を行うことが
できる。
即ち、無効化要求BIREQの送出以降に他の命令プロセ
ッサがその領域データを読み出そうとした場合、その領
域データは、当該命令プロセッサのバッファ記憶装置
(BS)13には存在しないことが保証され、かつ、ロック
解除付き(ST&RLK)のストア処理が行なわれるまでの
間は、ロック制御により主記憶装置(MS)4の参照が禁
止されているため、結果的にこの主記憶参照はCS命令の
オペランドへの書き込みが終了した後に行なわれること
になる。
したがって、無効化要求BIREQの送出終了時点で、他
の命令プロセッサからはCS命令の主記憶参照が終了して
いるように見える。
このため、CS命令を実行した命令プロセッサでは、こ
の時点で後続命令の読み出しの主記憶参照を行うことが
できる。
第5図は、CS命令と後続命令の処理の流れをパイプラ
インステージで示した図であり、第5図において、CS命
令の右側に図示しているD,A等の箱はCS命令の処理(ス
テージ)の流れを示し、後続命令の右側に図示している
Di,Ai等の箱は後続命令の処理(ステージ)の流れを示
している。
CS命令とその後続命令の一連の処理においては、第5
図に示されるように、CS命令のE1ステージにおけるCS命
令の後続命令の読み出し開始を指示するSTRTIF信号の送
出(ステップ42;第4図)により、ストア動作の終了を
待たずに、次の後続命令の読み出し処理を開始し、FAA
制御部33での無効化要求BIREQの送出後、LKBSY信号2cが
“0"となることにより、直ちに、命令読み出しのバッフ
ァ記憶装置(BS)13の参照を行うことができる。
これにより、速やかに後続命令を実行することができ
る。
第5図の処理例では、CS命令の複数の実行ステージの
最後のE5ステージにより、ロック解除付き(ST&RLK)
のストア要求の送出後、直ちに後続命令を実際に実行す
る実行ステージ(後続命令のEステージ)を開始するこ
とができる。
したがって、従来のように、ロック解除付き(ST&RL
K)のストア要求を送信した後、そのストア処理が記憶
制御装置(SC)3において終了したことを確認してか
ら、CS命令の後続命令の読み出し開始を指示するSTRTIF
信号により後続命令の読み出しを開始する方法に比べ、
CS命令の処理性能は大幅に向上する。
さらに、先行制御によるオペランド読み出しに同期し
てロック処理を行うことにより、実行ステージでロック
処理およびオペランド読み出しを行う場合に比べて、CS
命令の実行サイクル、即ち、Eステージのサイクル数を
短くすることができる。
なお、先行制御による一連の命令処理において、先行
制御によるオペランド読み出しに同期してロック処理を
行なうと、 (1)分岐予測が失敗した場合、 (2)割り込みが発生した場合、 には、解読済のCS命令の実行ステージがキャンセルさ
れ、先行制御によって、かけられたロックが解除されな
いままになってしまう場合が発生する虞れがあるが、こ
の場合に対しては、次のように制御を行う。即ち、 (1)分岐予測が失敗した場合、 具体的には分岐命令の後続命令がCS命令であり、実際
には分岐が行なわれたけれども、後続するCS命令の解読
がオーバーランしたという場合である。
これについては、分岐予測中にCS命令を解読した場合
は、ロック付きフェッチ(LF)の命令読み出し要求IREQ
と共に分岐予測中であることを示す信号をバッファ記憶
制御ユニット12に送出し、バッファ記憶制御ユニット12
では、記憶制御装置(SC)3へのロック付きフェッチ
(LF)の命令読み出し要求SCREQの送出を一旦保留す
る。
この後に命令制御ユニット10から分岐予測成功を示す
信号が送出されると、保留していたロック付きフェッチ
(LF)の命令読み出し要求SCREQを記憶制御装置(SC)
3に送出し、また、命令制御ユニット10から分岐予測が
失敗したことを示す信号が送出された場合は、保留して
いたロック付きフェッチ(LF)の命令読み出し要求SCRE
Qをキャンセルする。
(2)割り込みが発生した場合、 割り込みが発生した場合には、必ず実行制御ユニット
11が、ロックの解除要求をバッファ記憶制御ユニット12
を介して記憶制御装置(SC)3に送出する。
これにより、ロックがかかったままとなることを防ぐ
ことができる。
また、本実施例においては、ロックをかけた後、その
ロックを解除する前に命令読み出しの主記憶参照が行わ
れる可能性があるが、一般に、ロックをかけてから、そ
れを解除するまでの間に、ロック領域以外の領域の読み
出しを行なうと、デッドロックとなる可能性がある。
これに対しては、例えば、バッファ記憶制御ユニット
12が、ロック付きフェッチ(LF)のオペランド読み出し
要求SCREQを記憶制御装置(SC)3に送出してから、ロ
ック解除付き(ST&RLK)のストア要求SCREQを送出する
までの間は、記憶制御装置(SC)3に対して主記憶装置
(MS)4に対する読み出し要求を送出しない制御を行
う。
これにより、ロック解除以前に命令の読み出しが行な
われ、その領域がバッファ記憶装置(BS)13に存在しな
かった場合でも、その領域に対するブロック転送要求は
ロック解除後に記憶制御装置(SC)3に送出されるた
め、デッドロックは生じない。
以上、説明したように、本実施例によれば、シリアラ
イゼーション動作を伴うロック命令のCS命令を、ストア
の終了を見ずに終了することができ、シリアライゼーシ
ョンを高速に処理でき、次命令の処理に早く移行でき
る。本実施例では、CS命令について説明してきたが、シ
リアライゼーションを伴うロック命令の全てについて同
様に適用できる。
以上、本発明を実施例にもとづき具体的に説明した
が、本発明は、前記実施例に限定されるものではなく、
その要旨を逸脱しない範囲において種々変更可能である
ことは言うまでもない。
〔発明の効果〕
本願において開示される発明のうち代表的なものによ
って得られる効果を簡単に説明すれば、下記の通りであ
る。
(1)本発明によれば、各プロセッサがパイプラインに
より命令を処理するマルチプロセッサシステムにおい
て、命令実行ステージでロック処理を起動する場合に比
べて、ロック処理の起動を速くすることができ、昇い時
期にロック処理を終了することが可能となる。
(2)本発明によれば、各プロセッサがパイプラインに
より命令を処理するマルチプロセッサシステムにおい
て、シリアライゼーション動作が終了してからロック命
令に後続する次命令の読み出し処理を開始する場合に比
べて、ロック命令に後続する次命令の読み出し処理を速
やかに実行することが可能となる。
(3)本発明によれば、各プロセッサがパイプラインに
より命令を処理するマルチプロセッサシステムにおい
て、各プロセッサにおけるシリアライゼーション動作を
伴うロック命令の処理時間を短縮でき、シリアライゼー
ション動作を伴うロック命令の処理を高速化することが
できる。
これにより、マルチプロセッサシステムの性能を向上
させることが可能となる。
【図面の簡単な説明】
第1図は、本発明の一実施例にかかるマルチプロセッサ
システムのブロック図、 第2図は、第1図における命令プロセッサおよび記憶制
御装置の間の制御の流れを詳細に示すブロック図、 第3図は、一連の命令の処理の動作をパイプラインステ
ージで示した図、 第4図は、実行制御ユニットが行うSC命令の実行ステー
ジの処理フローを示すフローチャート、 第5図は、CS命令とその後続命令の処理の流れをパイプ
ラインステージで示した図、 第6図は、CS命令を説明するための図である。 図中、1,2……命令プロセッサ、3……記憶制御装置(S
C)、4……主記憶装置(MS)、10……命令制御ユニッ
ト、11……実行制御ユニット、12……バッファ記憶制御
ユニット、13……バッファ記憶装置(BS)、14……バッ
ファ・アドレス・アレイ(BAA)、21……命令読み出し
制御部、22……オペランド読み出し制御部、23……スト
ア制御部、24……SCリクエスト制御部、25……BAA制御
部、26……論理和素子、27……論理積素子、31……リク
エスト処理部、32……MS制御部、33……FAA制御部、34
……ロックアレイ。

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の命令プロセッサを有し、各命令プロ
    セッサが、パイプライン処理により、命令の解読を命令
    実行ステージ以前に行うマルチプロセッサシステムにお
    いて、各命令プロセッサは、ロック命令を解読してから
    ロック命令の命令実行ステージ以前に、他のプロセッサ
    から主記憶装置に対するアクセスを禁止する要求を出力
    する命令制御ユニットを備えることを特徴とするマルチ
    プロセッサシステム。
  2. 【請求項2】前記各命令プロセッサは、命令解読、オペ
    ランドアドレス計算、オペランド読み出し、命令実行の
    各ステージをパイプラインで処理するものであり、前記
    アクセスを禁止する要求は、オペランド読み出しステー
    ジにおける読み出し要求に付随して出力されるものであ
    ることを特徴とする請求項1に記載されたマルチプロセ
    ッサ。
  3. 【請求項3】複数の命令プロセッサ、記憶制御装置、お
    よび、共有の主記憶装置から構成され、各命令プロセッ
    サがパイプライン処理により命令を処理するとともに主
    記憶装置のデータの一部の写しを保持するバッファ記憶
    装置をそれぞれ有するマルチプロセッサシステムにおい
    て、各命令プロセッサは、シリアライゼーション動作を
    伴うロック命令を処理するに際して、シリアライゼーシ
    ョン動作の終了以前に前記ロック命令に後続する次命令
    の読み出し処理を開始して前記バッファ記憶装置に読み
    出し要求を発行し、前記バッファ記憶装置は、シリアラ
    イゼーション動作が終了するまで前記読み出し要求の受
    け付けを抑止し、シリアライゼーション動作が終了した
    後に前記読み出し要求を受け付けることを特徴とするマ
    ルチプロセッサシステム。
  4. 【請求項4】前記命令プロセッサは、命令の読み出しと
    解読を行う命令制御ユニットと、命令の実行ステージの
    制御を行う実行制御ユニットとを有し、前記記憶制御装
    置は、各命令プロセッサのバッファ記憶装置に登録され
    ている各々のブロックの主記憶装置上のアドレスを保持
    するフロント・アドレス・アレイを有し、かつ、前記フ
    ロント・アドレス・アレイは、主記憶装置の任意の領域
    に対してロックを伴うアクセスがあると第1の信号状態
    になり、前記主記憶装置の任意の領域のアドレスと、フ
    ロント・アドレス・アレイとの参照が終了すると第2の
    信号状態となる信号を前記バッファ記憶装置に対して出
    力し、前記実行制御ユニットは、前記ロック命令の実行
    を開始すると、前記命令制御ユニットに対して既に読み
    出している命令をキャンセルする命令キャンセル指示を
    発行し、その後、前記後続する次命令の読み出し開始を
    指示する次命令読み出し開始指示を発行し、前記命令制
    御ユニットは、前記次命令読み出し開始指示に基づきバ
    ッファ記憶装置に対して読み出し要求を発行し、前記バ
    ッファ記憶装置は、前記信号が第2の信号状態になるま
    で前記読み出し要求の受け付けを抑止し、前記信号が第
    2の信号状態になったときに前記読み出し要求を受け付
    けることを特徴とする請求項3に記載されたマルチプロ
    セッサ。
JP2310256A 1990-11-16 1990-11-16 マルチプロセッサシステム Expired - Fee Related JP2559165B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH04181460A JPH04181460A (ja) 1992-06-29
JP2559165B2 true JP2559165B2 (ja) 1996-12-04

Family

ID=18003058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2310256A Expired - Fee Related JP2559165B2 (ja) 1990-11-16 1990-11-16 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JP2559165B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114443A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited マルチプロセッサシステム及びその制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01251157A (ja) * 1988-03-31 1989-10-06 Toshiba Corp テスト・アンド・セット要求時のマイクロプログラム制御方式

Also Published As

Publication number Publication date
JPH04181460A (ja) 1992-06-29

Similar Documents

Publication Publication Date Title
JP3636871B2 (ja) 並列プロセッサシステム
JP3451103B2 (ja) データ通信装置及び方法
US7249270B2 (en) Method and apparatus for placing at least one processor into a power saving mode when another processor has access to a shared resource and exiting the power saving mode upon notification that the shared resource is no longer required by the other processor
US5293500A (en) Parallel processing method and apparatus
US5440750A (en) Information processing system capable of executing a single instruction for watching and waiting for writing of information for synchronization by another processor
JP2000029857A (ja) 個々のプロセッサの早期リリ―スによるシステム・シリアル化方法
JPH0670779B2 (ja) フェッチ方法
JP3400458B2 (ja) 情報処理装置
JP2531760B2 (ja) ベクトル処理装置
EP0364226A2 (en) A system for performing a serializing control of a reference to a main storage
JP2559165B2 (ja) マルチプロセッサシステム
JPH0769825B2 (ja) 並列処理装置
JPS62288949A (ja) シリアライズ命令制御装置
JP2844679B2 (ja) アクセス制御方法及び情報処理装置
JP2814683B2 (ja) 命令処理装置
JP2961542B2 (ja) データ処理システム
JPH0368034A (ja) チェックポイント再試行方式
JPH02294761A (ja) マルチプロセッサシステムの逐次化処理方式
JP2621315B2 (ja) 情報処理装置
JP2716055B2 (ja) ベクトル処理装置の制御方式
JP2549410B2 (ja) 主記憶参照順序制御方式
JPS6145348A (ja) バス優先権制御方式
JPS6120903B2 (ja)
JPH07234850A (ja) マルチプロセッサの装置と方法
JPH0376501B2 (ja)

Legal Events

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