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

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

Info

Publication number
JP2000010942A
JP2000010942A JP11114731A JP11473199A JP2000010942A JP 2000010942 A JP2000010942 A JP 2000010942A JP 11114731 A JP11114731 A JP 11114731A JP 11473199 A JP11473199 A JP 11473199A JP 2000010942 A JP2000010942 A JP 2000010942A
Authority
JP
Japan
Prior art keywords
cpu
request
processor
controller
global resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11114731A
Other languages
English (en)
Other versions
JP3701814B2 (ja
Inventor
F Webb Charles
チャールズ・エフ・ウェブ
G Bayer Dean
ディーン・ジー・ベイアー
S Farrell Mark
マーク・エス・ファーレル
W Cran Barry
バリー・ダブリュ・クラン
Kin Maku Park
パク・キン・マク
A Navaro Jennifer
ジェニファー・エイ・ナヴァーロ
J Sleegel Timothy
ティモシー・ジェイ・スリーゲル
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000010942A publication Critical patent/JP2000010942A/ja
Application granted granted Critical
Publication of JP3701814B2 publication Critical patent/JP3701814B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 (修正有) 【課題】プロセッサの早期リリースによるシステム・シ
リアル化を実行するマルチプロセッサ・システムを提供
すること。 【解決手段】ESA/390システムにおけるコントロ
ーラが、他のすべてのプロセッサが割込み可能ポイント
に達するのを待つことなく、CPUがIPTE及びSS
KEオペレーションのローカル・バッファ更新部分の処
理を可能にし、しかも、オペレーションがグローバルに
完了するまで一時的制限でプログラム実行の継続を可能
にする。更に、これらのIPTE及びSSKEオペレー
ションが通常のシステム静止を必要とする他のオペレー
ションと共存することを可能にし、しかもいずれのCP
Uでもオペレーションの任意のポイントでのCPU再試
行アクションを可能にするライセンス内部コード(LI
C)シーケンスが定義できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・マ
ルチプロセッサに関するものであり、詳しく云えば、ミ
リモード・オペレーションを有するマルチプロセッサ・
システム、及びページ・テーブル・エントリ無効化(In
validate Page Table Entry−IPTE)及び記憶キー
拡張設定(Set Storage Key Extended−SSKE)のた
めのオペレーションのような命令を実行する時に個々の
プロセッサを早期にリリースすることによるそれらのシ
ステム・シリアル化に関するものである。
【0002】
【従来の技術】広く使用されているESA/390マル
チプロセッサ・システムのCMOS実装版の開発を続け
ていると、互換性のある設計でもってパフォーマンスを
改善する必要性に直面する。ESA/390アーキテク
チャは、マルチプロセッサ・システムにおけるすべての
CPUにより見られるように、単一の時点で生じるよう
に見えなければならない複数のオペレーションを含んで
いる。これらのオペレーションは、主として、記憶アク
セス制御情報を更新するために使用される。記憶アクセ
ス制御情報は、一般に、この情報への高パフォーマンス
・アクセスを行うためにCPUにおいてバッファ可能で
ある。そのバッファされた情報は、多くの場合、1つの
CPUにおける単一のESA/390命令の実行におい
て何回も参照され得るし、ESA/390アーキテクチ
ャは、その情報に対する変更がESA/390命令にお
いて生じるようには見えないことが必要である。
【0003】システム・パフォーマンスに影響を与える
に十分なほど頻繁に使用される2つのオペレーション
は、ページ・テーブル・エントリ無効化(IPTE)及
び記憶キー拡張設定(SSKE)オペレーションであ
る。パフォーマンスを改善するために、これらのオペレ
ーションをもっと効率的に処理する方法が開発され、従
って、これらの命令を使用するプログラムのシステム稼
働時間を減少させることができるようになった。単一の
CPU上でこれらの命令の1つを実行する過程におい
て、4Kブロックの仮想記憶装置への動的アドレス変換
(DAT)が無効にされるか(IPTE)、又は4Kブ
ロックの実記憶装置へのアクセスを制御するために使用
される記憶キーが変更される(SSKE)。これらの変
更は、起点となるCPUにおける命令の実行の一部とし
て、そのシステムにおけるすべてのCPUに送られなけ
ればならない。
【0004】これらの命令に対するESA/390アー
キテクチャの直接的なインプリメンテーションは、IP
TE又はSSKE命令を実行するCPUが、ESA/3
90命令相互間の1つのポイントで、即ち、S/370
ベースのシステムにおいて使用される通常の静止方法に
おける静止ポイントで一時停止するように、システムに
おける他のCPUに信号することである。すべてのCP
Uがそのようなポイントに達してしまうと、システムは
「静止させられる」と云われ、第1のCPUは、必要な
時に変換テーブル・エントリ又は記憶キーを自由に更新
できる。システムが静止している間、第1のCPUは、
変更が行われたことを他のCPUにも表示しなければな
らず、従って、第1のCPUだけでなく他のCPUも、
その変更された情報のバッファされたすべてのコピーを
更新又は廃棄することができる。これらのアクションが
すべて完了すると、第1のCPUは他のCPUに、それ
らが処理を再開してもよいことを信号する。この方法
は、数多くのS/370、370/ESA、及びESA
/390インプリメンテーションにおいて使用されてお
り、従って、「静止方法(quiesce metho
d)」を呼ばれることもある。
【0005】これとは別に、1996年8月13日に出
願された米国特許出願番号08/689762号の未決
出願において開示された最近のESA/390インプリ
メンテーションは注目すべきものであろう。その開示さ
れた発明は、1996年末に商業的に発売されたESA
/390において使用された。その時、アドレス変換を
遂行するためにすべてのプロセッサによって共通に使用
されるメモリ内のテーブルを修正するIPTE(ページ
・テーブル・エントリ無効化)及びSSKE(記憶キー
拡張設定)のような命令を遂行するが開示された。そこ
では、逐次に処理されなければならなかったIPTE及
びSSKEのような命令をシリアル化するためにトーク
ンが使用された。リクエストの後、或いは、プロセッサ
の1つからのリクエストに応答して、そのトークンがリ
クエスティング・プロセスに割り当てられ、従って、そ
れは、前記命令の1つを実行する権利を持つ。その命令
が複数のタスクより成る場合、その命令の最後のタスク
が実行されるまで、トークンはロックされる。しかる
後、トークンはロック解除され、他の命令に割り当て可
能になる。
【0006】プロセッサは、それがトークンを保持する
場合、逐次に処理されなければならない命令の1つしか
実行することできない。このトークン装置を持ったマル
チプロセッサ・システムにおいて逐次に処理されなけれ
ばならない命令をシリアル化する必要がある時、開始プ
ロセッサにおける第1のタスクだけが開始可能である。
開始プロセッサは、それがトークンを保持する場合、そ
の第1のタスクしか実行することができず、或るプロセ
ッサが使用可能である場合、トークンがそのプロセッサ
に割り当てられるようにするために、開始プロセッサに
よるそのトークンに対するリクエストが存在しなければ
ならず、しかも、それが使用可能である場合、命令は逐
次に実行可能である。その後は、トークンが必ずしも他
のプロセッサにとって使用可能にはならないということ
によって、逐次に処理されるべき命令の第1タスクを完
了した後、トークンを戻す必要がある。シリアル・タス
クの完了後、逐次に処理されてしまった命令が完了した
後にトークンの使用可能度の再確立がなければならな
い。
【0007】それらの必要なステップに対する1つの欠
点は、開始プロセッサによるプロセスの制御及び複雑な
トークン受渡しによって、ESA/390システムにお
けるプロセッサであって最近リリースされたCMOSプ
ロセッサ・バージョンにおける個々のプロセッサの早期
リリースを伴うシステム・シリアル化があり得ないとい
うことである。アドレス変換テーブルのエントリの内容
を別々のレジスタに記憶し、しかる後、IPTE命令及
びSSKE命令に対するそれまでのエントリを無効にす
ることは可能であるけれども、そのトークン・プロセス
に対する商業的にインプリメントされ認識された代替方
法は、すべてのプロセッサが実行を完了してしまうまで
又はすべてのプロセッサがそれらの現在の命令を完了し
てしまうまで待つようにアドレス変換テーブルを修正す
る時、ESA/390システムの初期バージョンを含む
前述のシステム370ベースのシステムにおいて通常使
用される静止方法である。
【0008】すべてのCPUが静止するのを待つこと
(静止方法)の主たる欠点は、ESA/390命令相互
間にある1つのポイントにCPUが達するに必要な時間
がESA/390命令セットにおける複雑な且つ長時間
実行の命令の存在のために非常に変わりやすいというこ
とである。
【0009】多数のCPUを持ったシステムでは、その
システムにおけるすべてのCPUがそのようなポイント
に達するまでの平均時間が大きくなり得るし、最後のC
PUがそのようなポイントに達するまですべてのCPU
が待機している(如何なる有用な作業も行わない)とい
う事実によって、システム・パフォーマンスに関する正
味の影響が倍加される。このこと及びCPU相互間で必
要とされる大量のハンドシェーキングは、そのような方
法のパフォーマンスを魅力のないものにしている。
【0010】既に使用されている(例えば、ES/90
00 9021における)もう1つの方法は、先ず、I
PTE又はSSKE命令を実行するCPUに変換テーブ
ル又は記憶キーを変更させ、しかる後、他のすべてのC
PUがESA/390命令相互間のポイントに達すると
直ちに、それらのバッファされたコピーを更新又は廃棄
するように他のすべてのCPUに信号することである。
これは、CPU設計が、ESA/390命令が命令完了
前の任意のポイントにおいて完全にヌル化されるような
ものである場合にのみ可能である。この要件は、他のC
PUが現在実行しようとしているESA/390命令の
終わりにそれが達してしまう前に、変換テーブル又は記
憶キーに対する変更が記憶アクセス例外条件を他のCP
Uにとって明らかなものにし得るという事実から生じ
る。この場合、他の何かが、そのCPUのバッファされ
た変更情報のコピーをその命令の間に廃棄(例えば、セ
ット・アソシアティブ・ルックアサイド・バッファにお
ける置換)させる場合、CPUは、アクセス可能である
ことが予めわかっていたオペランドに関するアクセス例
外を知ることがあり得る。
【0011】ESA/390命令がこの時点でも依然と
してヌル化可能である場合、すべて良好であるが、それ
がヌル化され得ない場合、CPUオペレーションはES
A/390アーキテクチャを満たすことができない。こ
の方法は直接的な方法よりもかなり良好なパフォーマン
スを持つが、ESA/390命令の実行を通してヌル化
の必要性を持つことになる。いずれにしても(例えば、
実際的でない或いは順不同のシーケンスをサポートする
ために)このフィーチャを有するCPU設計では、これ
はIPTE及びSSKEにとって合理的な設計である。
しかし、これらの命令に対するパフォーマンス上の利点
だけでは、この程度の複雑さをCPU設計に加えること
を正当化することができなかった。
【0012】後者の方法の形式は、関連情報のバッファ
されたコピーがESA/390命令の過程で喪失されな
いことをCPU設計が保証できる場合にも可能である。
これを希な事象にすることは難しくはないけれども、そ
れを不可能にすることはCPU設計において大きな拘束
を課するものであり、このことは、或る場合には再帰D
ATを必要とし、しかも中間の変換が変換ルックアサイ
ド・バッファ(TLB)に保持されることを可能にする
ESA/390解釈実行アーキテクチャの場合には特に
著しい。
【0013】
【発明が解決しようとする課題】従って、後者の2つの
インプリメンテーションのどちらに関する面倒なCPU
設計要件も持たず、第1のインプリメンテーションのパ
フォーマンス・オーバヘッドを受けないESA/390
IPTE及びSSKEオペレーションのインプリメン
テーションが望ましい。
【0014】
【課題を解決するための手段】本発明は、他のすべての
プロセッサが割込みポイントに達するのを待つことな
く、ESA/390システムにおけるCPUがIPTE
及びSSKEオペレーションのローカル・バッファ更新
部分を処理することを可能にし、しかも、IPTE又は
SSKEオペレーションがグローバルに完了するまで、
オペレーションに関するわずかな一時的制限でもってプ
ログラム実行を継続することを可能にするコントローラ
を開示するものである。更に、これらのIPTE及びS
SKEオペレーションが通常のシステム静止(即ち、す
べてのプロセッサが共に一時停止しなければならない)
を必要とする他のオペレーションと共存することを可能
にし、しかもそのシステムにおけるいずれのCPUにお
いてもオペレーションにおける任意のポイントでのCP
U再試行アクションを可能にするライセンス内部コード
(LIC)シーケンスが定義される。
【0015】この解決方法は、他の高パフォーマンス設
計が必要とするようなCPU設計全体に関する要件を課
することなく、既知の最善のインプリメンテーションに
近いパフォーマンス、及び、多くの場合、それに等しい
パフォーマンスを達成する。
【0016】
【発明の実施の形態】本発明の望ましい実施例を詳細に
考察する前に、例証として前述のような説明を行うこと
も有効であろう。
【0017】本発明の更に詳細な説明に転ずると、本発
明の望ましい実施例においては、図1に示されたハード
ウエアが使用されることがわかるであろう。それは、I
BM社のエンタープライズ・システム・アーキテクチャ
/390(Enterprise Systems Architecture/390)、
又は、ESA/390 S/390システム・アーキテ
クチャ(いずれも、米国ニューヨーク州アーモンクのイ
ンターナショナル・ビジネス・マシーンズ・コーポレー
ションの商標)に一般的に適合するシステムのコンテキ
スト全体に適用可能である。そのようなS/390シス
テム・プロセッサの通常のエレメントに関する初期の詳
細な説明は、例えば、本発明と同じ譲受人に譲渡された
米国特許第4,901,233号において見ることができ
る。しかも、その米国特許は、ミリモード・オペレーシ
ョンのための現在の静止方法を開示した米国特許第5,
694,617号においてあたかも完全に印刷されてい
るかのようにそのまま参考文献として組み込まれる。ミ
リコード・オペレーションはその米国特許第5,694,
617号において有用である。
【0018】望ましいインプリメンテーションでは、通
常の静止シーケンスは、そのシーケンス内で生じるCP
U再試行のためのサポートを含むものであり、それは1
992年12月2日発行の「ミリモード・オペレーショ
ンを持ったマルチプロセシング・システムにおいて静止
リクエストを優先順位付け、静止状態から回復させるた
めのシステム(System for Prioritizing Quiesce Requ
ests and Recoveringfrom a Quiescent State in a Mul
tiprocessing System with a Milli-mode Operatio
n)」と題した C.F. Webb 他による米国特許第5,69
4,617号に開示されているようなシーケンスであ
り、再試行トラップ機構は、1997年9月30日発行
の「ミリコード化されたプロセッサのためのハードウエ
ア再試行トラップ(Hardware Retry Trap for Millicod
ed Processor)」と題した C.F. Webb他による米国特許
第5,673,391号に開示されている。上記の米国特
許及びそれら関連のESA/390アプリケーション
は、本願では、ミリコード化されたプロセッサのための
ミリモードの使用を説明するものとして示される。マル
チプロセシング・システムは、すべてのプロセッサが共
に一時停止する静止ポイントに他のすべてのプロセッサ
が達するのを待つことなく、ページ・テーブル・エント
リ無効化(IPTE)オペレーション及び記憶キー拡張
設定(SSKE)オペレーションを行っている間、本発
明の望ましい実施例に適用可能である。
【0019】次に、図1を参照すると、この好適なシス
テムにおいて使用される静止オペレーションに関連する
システムのエレメントは、後述のような変更を伴うけれ
ども、米国特許第5,694,617号における前述の基
本エレメントを依然として含んでいる。従って、図1に
示されるような総合的なシステムは、システム記憶装置
11及び或る種のキャッシュ・メモリ・ユニット12を
含む階層メモリを提供する。システム記憶装置11は、
プロセッサが実行しようとする命令及びそれらの命令が
操作しようとするデータを含んでいる。キャッシュ・メ
モリ・ユニット12は、プロセッサが現在実行しつつあ
るデータ及び命令のコピーを含み、この望ましい実施例
では、インターリーブド・ダブルワード・アドレシング
を行うスプリット・キャッシュである。キャッシュ・メ
モリ・ユニット12は、論理的には、連続的にアドレス
可能な読取専用記憶装置(ROS)13を含み、そこに
は、或る頻繁に呼び出されたミリモード・ルーチンを実
行するためのコードが記憶される。
【0020】命令ユニット・サブシステム16は、命令
バッファ(図1には示されてない)、命令レジスタ1
8、及び命令デコーダ20を含む。その命令ユニット・
サブシステムはキャッシュ・メモリ・ユニット12から
マクロ命令、ミリコード命令、及びデータを受け取る。
命令は解析され、命令レジスタ18に入れられる。命令
デコーダ20は命令レジスタ18の内容を読み取り、そ
の命令をデコードし(又は、オペレーション例外を生じ
させ)、ハードウエア実行ユニット24による逐次実行
のためにその命令を命令キューに送る。各ハードウエア
実行ユニット24は、正規のマクロ・コード命令実行の
ための一組の汎用レジスタ(GR)及びアクセス・レジ
スタ(AR)21、並びに、ミリコード命令実行のため
の一組の汎用レジスタ(GR)及びアクセス・レジスタ
(AR)23へのアクセスを有する。制御ロジックは、
ミリコード・ルーチンを開始又は完了する時にそれら二
組のレジスタ相互間のデータ交換を制御する。ミリモー
ド検出ロジック26は命令レジスタに結合され、デコー
ドされつつあるマクロ命令がミリモード・オペレーショ
ンにおいて解釈されるべきタイプのものである時を検出
する。これが生じる時、ミリモード検出ロジック26は
エントリ・ポイント・アドレスを発生し、このアドレス
を命令フェッチ制御ロジック35に送り、しかも命令デ
コーダ20をミリモード動作状態にする。この状態にお
いて、命令デコーダ20はミリモード命令をデコードす
ることを可能にされる。
【0021】ミリモード命令は、正規のマイクロコード
命令と特別のミリモードのみの命令とを混合したものよ
り成る垂直マイクロコードである。それらの命令はすべ
て実行ユニット24において実行可能である。それらの
特別の命令は、ミリコード・ルーチンが必要とする制御
機能を与える。ミリコード・ルーチンのセットはプログ
ラム・アドレス可能な記憶装置の外にある。実行された
命令のシステム効果は体系的には完了ロジック30にお
いて可視的である。完了ロジック30及び命令デコーダ
20の間の信号線は、命令デコーダ20が命令完了を追
跡することを可能にする。レジスタ31におけるプログ
ラム・ステータス・ワード(PSW)はマクロ・プログ
ラムの実行を制御する。同様に、そのシステムは、ミリ
コード・ルーチンの実行を制御するミリPSWレジスタ
33も含む。実行ユニット24及び完了ロジック30の
両方とも、PSWレジスタ31及びミリPSWレジスタ
33から読み取るように及びそれらのレジスタに書き込
むように接続される。従って、任意の所与の時点で、実
行ユニット又は完了ロジックは、PSWレジスタ及び
(又は)ミリPSWレジスタのうちの適切な方を読み取
ること又は更新することができる。
【0022】プロセッサ状態ユニット40は、正規モー
ド・オペレーション及びミリモード・オペレーションの
両方におけるその設計されたシステムの更新されたステ
ータス全体を保持する。エラーが検出された場合、プロ
セッサ状態ユニット40は、エラーの原因となるオペレ
ーションの再試行を可能にするために、システムのステ
ータスをチェック・ポイント状態から再作成するための
資源を提供する。ミリモードは、デコードされつつある
マクロ命令がミリコードと共にインプリメントされるべ
きであることをミリモード検出ロジック26が認識する
時にイネーブルされる。この認識に応答して、ミリモー
ド検出ロジック26は、命令デコーダ20、命令フェッ
チ制御ロジック35、及び実行ユニット24におけるレ
ジスタ・コントローラに信号を送る。ミリモード検出ロ
ジック26からのミリモード認識信号に応答して、命令
デコーダ20はマクロモード・デコーディングを中断
し、実行ユニット24のレジスタ・コントローラはGP
R21の内容をミリ・レジスタ23にコピーして、シス
テムにその後はミリ・レジスタ23を使用させる。ミリ
モード検出ロジック26はミリコード・エントリ・ポイ
ント・アドレスを発生する。そのエントリ・ポイント・
アドレス(ミリモード検出ロジック26によって発生さ
れた)は、キャッシュ・ユニット12をアドレスするた
めに命令フェッチ制御ロジック35によって使用され
る。キャッシュ・ユニット12からのミリ命令は命令レ
ジスタ18に送られ、そこで、命令デコーダ20はそれ
らをデコードし、そして実行のためにそれらをスケジュ
ールする。
【0023】プロセッサがミリモードに入る時、それ
は、概念的には、そのミリモードへ入らせた命令の前の
そのパイプラインにおけるマクロ命令を既に実行し、そ
して完了している。プロセッサがマクロ命令を完了する
時、それは適切なGPRを更新する。同時に、プロセッ
サは、ミリモードに入らせたマクロ命令をインプリメン
トするミリ命令をデコードし、そして実行する。或る時
点で、ミリモードに入らせた命令の直前のマクロ命令
は、完了ロジック30において完了したことを表示され
るであろう。その後しか、プロセッサはミリ命令を完了
し始めることをしない。そこで、プロセッサはミリ命令
のデコード、実行、及び完了を継続する。最終的に、検
出ロジック26はミリコード終了(MEND)ミリ命令
を認識する。ミリモード検出ロジック26がMENDミ
リ命令を検出する時、それはプロセッサにミリ命令のフ
ェッチをやめさせる。更に、MENDが検出される時、
ミリモード検出ロジックは命令デコーダ20をマクロモ
ードにし、プロセッサにマクロ命令のフェッチを始めさ
せる。ミリコードはすべてのレジスタを明示的に更新
し、従って、ミリモード・オペレーションから正規のオ
ペレーションに進む時にはレジスタ内容の転送はない。
MENDミリ命令の完了はプロセッサの完了ロジックに
マクロ命令の完了を始めさせる。
【0024】プロセッサは割込みに応答してミリモード
に入ることもできる。完了ロジック30が割込みを検出
する時、割込み優先順位ロジック45は割込みがサービ
スされるべきであることを決定し、命令フェッチ・ユニ
ット35に信号を送って、デコーダにミリモードを開始
させる。割込み状態の認識は次の割込みポイントでプロ
セッサにマクロモード実行を停止させる。この割込み優
先順位ロジック45は、キャッシュをアドレスするため
のエントリ・ポイント・アドレスを発生するために、ミ
リモード検出ロジック26によって使用される制御入力
も発生する。これらのミリ命令は命令レジスタに送られ
る。そこで、デコーダはそれらをデコードし、適正なハ
ードウエア実行エレメントにおいて実行するようにそれ
らをスケジュールする。プロセッサは、割込みのための
ミリルーチンにおけるミリ命令をデコードし、実行し、
及び完了するように進行する。最終的には、デコーダは
MENDミリ命令を認識する。これは、デコーダにミリ
モードにおけるデコードを停止させる。サービスを必要
とする更なる割込みがあるかどうかに従って、デコーダ
のハードウエアは割込みプロセスを再実行するか或いは
キャッシュ・ユニットからのマクロ命令のデコードに戻
るであろう。
【0025】今や、静止オペレーションに関するプロセ
ッサ相互間のコミュニケーションのためのコマンド、即
ち、「静止セット」及び「静止リセット」が与えられる
ことを、本願において前述の米国特許第5,694,61
7号よりももっと詳細に再び記述する必要はないであろ
う。「静止セット」は、他のすべてのプロセッサが「静
止」状態に入ることを表すために、プロセッサによって
発生される。「静止リセット」は、前に静止セットを発
生し、今では静止状態が必要とされたオペレーションを
完了したプロセッサによって発生される。これらのコマ
ンドは、そのコマンドを送ろうとしているプロセッサの
識別情報(プロセッサ番号)を含まなければならない。
これらは、前述のように、そのシステムにおけるすべて
のプロセッサによって受け取られ、処理される。ミリコ
ード・ルーチンは静止割込みを処理し、そのシステムに
おけるすべてのプロセッサを静止状態に入らせる。ミリ
コード制御レジスタの1つのビットは静止状態を表し、
プロセッサの出力を駆動して、そのプロセッサが静止状
態にあることを表示させる。プロセッサは、そのシステ
ムにおけるすべてのプロセッサが静止状態にあることを
表す信号を受け取り、この値をラッチする。このラッチ
の出力はミリコード・ブランチ状態として使用するため
にプロセッサの命令ユニットに送られる。従って、ハー
ドウエア制御の実行ユニットにおいて単純な命令セット
を実行するパイプライン・マルチプロセッサは、ミリモ
ード設計された状態における複雑な命令セットを、単純
な命令のミリコード・シーケンスでもってハードウエア
制御の実行ユニットにおいて実行する。
【0026】複数のプロセッサの各々が静止リクエスト
を発生することができるマルチプロセシング・システム
において静止リクエストに応答するために、プロセス
は、1つ又は複数のプロセッサから静止リクエストを受
け取ったことを表すべく、複数のプロセッサの各々にお
ける静止リクエスト・レジスタをセットする。そのシス
テムにおける各プロセッサがこのリクエストに応答する
時、それは、それが静止済み状態にあることを表すミリ
コード制御レジスタ・ビットをセットし、プロセッサが
再試行オペレーションを完了したかどうかを表すラッチ
をリセットする。しかる後、それは、静止リクエスト・
レジスタがクリアされて、すべてのリクエスティング・
プロセッサが静止オペレーションを完了したことを表す
のを待つ。再試行オペレーションを表すラッチがその時
点でセットされない場合、プロセッサはそのレジスタ・
ビットをリセットして、それが静止状態にあることを表
示させ、正規のオペレーションを再開する。再試行オペ
レーションを表すラッチがセットされる場合、プロセッ
サはシステム静止表示がリセットされるのを待ち、少な
くとも1つ他のプロセッサが静止オペレーションを表す
それのレジスタ・ビットをリセットしたことを表示さ
せ、しかる後、それ自身の静止オペレーション・レジス
タ・ビットをリセットし、正規のオペレーションを再開
する。これは、現在のミリモード・オペレーションの正
規の静止方法である。
【0027】本発明に従って、ESA/390システム
におけるCPUが、他のすべてのプロセッサが割込みポ
イントに達するのを待つことなく、IPTE及びSSK
Eオペレーションのローカル・バッファ更新部分を処理
することを可能にし、しかる後、IPTE又はSSKE
オペレーションがグローバルに完了するまで、オペレー
ションに関するわずかな一時的制限でもってプログラム
実行を継続することを可能にするコントローラを紹介す
ることにする。各CPUが記憶制御ユニット(SC)に
対するインターフェースを持つことによって、そのSC
における集中制御が使用される。他の制御構成も可能で
あるが、本発明に対しては、幾つかの論理的に集中した
制御ポイントが必要とされる。この説明では、IPTE
又はSSKE命令を実行しようとしているCPUはCP
X として表され、そのシステムにおける他のCPUは
CPUY として表される。これらの指定方法は任意であ
る。そのシステムにおけるいずれのCPUもIPTE又
はSSKE命令を実行することができ、そのシステムに
は任意の数のCPUが存在し得る。
【0028】本発明では、CPUにおける新たな制御状
態が加えられる。その状態では、システム・シリアル化
機能によって更新される可能性を持った如何なる情報を
アクセスするオペレーションも許されない。IPTEに
関して、これは記憶装置におけるページ・テーブル・エ
ントリをアクセスするためにはDATを行わないことを
意味する。SSKEに関しては、これは、アクセス例外
に関してテストするために、又は記憶キーを明確にアク
セスするESA/390命令を実行するためには、いず
れの記憶キーもアクセスしないことを意味する。この状
態にある間、IPTE又はSSKE命令によって影響さ
れるエントリが既にバッファから無効にされているもの
と仮定すると、CPUは、この情報に関するそれのロー
カル的にバッファされたコピーしかアクセスすることを
許されない。望ましいインプリメンテーションでは、記
憶キーはTLBにおいてバッファされ、IPTE命令が
進行中であることによる制限と、SSKE命令が進行中
であることによる制限との間の区別は行われない。
【0029】別のインプリメンテーションでは、これら
は区別され得るものであり、この制御状態にある間のC
PUオペレーションにおけるインパクトを減少させるよ
うにアドレス又は他の修飾子によって制限を更に緩和す
ることができるであろうこの説明では、このCPU制御
状態は「IPTE/SSKE制限モード」として表され
る。ESA/390アーキテクチャは、ページ・テーブ
ル・エントリに対する直接的なオペランド参照(DAT
の過程で行われる参照とは対照的な参照)を、IPTE
命令が暗示するシステム・シリアル化に関係なく許容す
るということ、システムシリアル化は影響を受けるTL
BエントリのすべてのCPUによる使用のみに関するも
のであること、及びIPTE命令を実行するCPU以外
のCPUは必ずしもCPUシリアル化オペレーションを
遂行しないことをESA/390は明瞭に述べていると
いうことに注意してほしい。
【0030】次に、図2を参照して、本発明に関するハ
ードウエア制御機構を説明することにする。図2は、C
PU、即ち、CPUX 210及びCPUY 211、並び
に、記憶装置コントローラSC212を示す。記憶装置
コントローラにおける一組のシリアル化コントローラ2
20は一時に1つのIPTE又はSSKEオペレーショ
ンしか進行しないことを保証し、そのオペレーションに
関するシーケンスをモニタする。各CPUにおけるLI
Cはインターフェース231を有し、そのインターフェ
ースによって、それは、取られるべきアクションを指定
する「制御」コマンドをSC212に送ることができ、
SC212から応答バス232を介して情報を戻す「セ
ンス」コマンドを送ることもできる。この応答バス23
2は、「制御」コマンドに関するコマンド・ステータス
をコミュニケートするためにも使用され、システム・シ
リアル化コントローラ220によってセットされるだけ
でなく、SC212における複数のソースからもセット
可能である。特に、CPUは、SC212におけるシス
テム・シリアル化コントローラ220の状態をセンスす
るためにこのインターフェースを使用することができ
る。IPTE又はSSKEシーケンスでは、これらのシ
ステム・シリアル化コントローラ220の進行は次のよ
うな状態シーケンスに従う。 ・ アイドル ・ ブロードキャスト送信済み ・ 全CPU開始済み ・ アイドル このシーケンスに関しては後で更に詳しく説明すること
にする。
【0031】SCが各CPUにコマンド送ることができ
るインターフェース233も存在する。これは、システ
ム・シリアル化コントローラ220を含むSC212に
おける複数のソースからも制御可能である。このバスを
介して送られたコマンドは、ローカル的にバッファされ
た情報がIPTE又はSSKEオペレーションによって
無効にされなければならないことを指定するコマンドを
含む。そのようなコマンドは、一般に、仮想ページ・ア
ドレス又は実ページ・アドレスのどちらがIPTE又は
SSKEオペレーションによって影響されるかを表すア
ドレス情報によって修正される。そのような無効化コマ
ンドをCPUが受け取る時、それは、CPUがESA/
390命令相互間の或るポイントに達するまで未処理の
まま保持されなければならない。
【0032】望ましいインプリメンテーションでは、こ
れらのコマンドは各CPUにおける割込みコントローラ
241及びキャッシュ・コントローラ242の両方によ
って認識される。そのようなコマンドが未処理である
時、割込みコントローラ241は、それが次の割込み可
能なポイント(即ち、ESA/390命令相互間のポイ
ントであり、しかも未処理の更に高い優先順位の割込み
がない場合)においてプログラム命令処理を実行コント
ローラ243に中断させる時に取られる内部割込みをC
PUにおいてに未処理にさせる。この割込みに応答し
て、実行コントローラ243はLICルーチンを呼び出
す。そのLICルーチンは、キャッシュ・コントローラ
242がその未処理のコマンドを処理してIPTE又は
SSKEオペレーションのためのローカル的にバッファ
された情報を無効化することが許可可能であることを表
す「ブロードキャスト・オペレーション許可済み」ラッ
チ244をセットする。望ましいインプリメンテーショ
ンでは、その無効化は、指定されたIPTE又はSSK
Eオペレーションによって影響されるいずれのエントリ
もTLBから除去するという形式を取る。
【0033】CPUX 210がIPTE又はSSKE命
令を実行する時、それはIPTE静止(IPTEQ)コ
マンド又はSSKE静止(SSKEQ)コマンドをイン
ターフェース231を介してSC、即ち、適正なアドレ
ス情報によって修正された修正SC212に送る。シス
テム・シリアル化コントローラ220が既にビジーであ
る場合、そのコマンドはSC応答バス232上の信号を
介して拒否され、実行コントローラ243にIPTE又
はSSKE命令を無効化させ、それを再始動させる。
(これは進行中のIPTE又はSSKEに対する割込み
がこのCPUにおいて取られることを可能にする)。そ
うでない場合、SC212はインターフェース233を
介してIPTE又はSSKE命令をすべてのCPU(C
PUX を含む)にブロードキャストし、システム・シリ
アル化コントローラ220は「アイドル」状態から「ブ
ロードキャスト送信済み」状態に移行する。
【0034】各CPUは、LICが(実行コントローラ
243を介して)「ブロードキャスト・オペレーション
許可済み」ラッチ244をオンにするまで、それのキャ
ッシュ・コントローラ242においてIPTEQ又はS
SKEQリクエストを未処理に保持する。(CPUX
は、割込みはESA/390命令の間許可されないの
で、これはIPTE又はSSKE命令に対するLICに
よってオンにされる)。そこで、キャッシュ・コントロ
ーラ242は、IPTE又はSSKEオペレーションに
よって影響される可能性のあるすべてのエントリをTL
Bから除去するための適正なシーケンスを開始する。
又、この時点で、CPUハードウエアは、それがIPT
EQコマンド又はSSKEQコマンドの処理を開始した
ことを表すコマンド(「ブローキャスト・オペレーショ
ン開始済み」コマンド)をSC212に送る。SC21
2におけるシステム・シリアル化コントローラ220は
各CPUから「ブロードキャスト・オペレーション開始
済み」応答を収集し、そして、すべてのCPUが応答し
てしまった時、システム・シリアル化コントローラ22
0は「ブロードキャスト送信済み」状態から「全CPU
開始済み」状態に移行する。
【0035】一旦所与のCPUY 211が「ブロードキ
ャスト・オペレーション開始済み」を信号してしまう
と、そのCPUは「IPTE/SSKE制限モード」の
オペレーションに入る。望ましいインプリメンテーショ
ンでは、これはSC212から、以下のような場合にア
クティブである各CPU211に1つの信号234を供
給することによって達成される。即ち、 ・ システム・シリアル化コントローラ220が「ブロ
ードキャスト送信済み」状態又は「全CPU開始済み」
状態にある場合、 ・ そのCPU211が「ブロードキャスト・オペレー
ション開始済み」を信号された場合。
【0036】CPUX 210は「IPTE/SSKE制
限モード」に入らないことに注意してほしい。これは、
CPUX 210に対するSC212からの信号234を
ブロックすることによって、又はIPTE命令又はSS
KE命令が実行されようとしているという事実に基づい
てCPUX 210にこの信号234を無視させることに
よって達成可能である。
【0037】CPUY 211がIPTEQ又はSSKE
Qコマンドの処理を完了した後、それは割込みポイント
で、しかし、「IPTE/SSKE制限モード」のオペ
レーションで正規の命令処理を再開する。このモードに
ある間、キャッシュ・コントローラ242は、依然とし
て進行中のIPTE又はSSKE命令によって影響され
る(又は、影響されることがある)情報を必要とするい
ずれの記憶装置アクセスもブロックする。望ましいイン
プリメンテーションでは、変換テーブルへの如何なるア
クセスも、或いはTLBにおいて見つからない記憶キー
情報はブロックされる。別のインプリメンテーションで
は、この制限は、進行中のシリアル化オペレーションの
タイプに基づいて変換テーブル(IPTE)と記憶キー
(SSKE)との間を区別することにより更に緩和可能
である。それは、記憶装置アクセスと進行中のIPTE
又はSSKE命令に関連した他の修飾子とによっても制
限されることがある。CPUにプログラム割込みを取ら
せるのではなく、障害を生じた命令を再実行させる特別
のタイプのアクセス例外のレポーティングを含む、この
アクセスをブロックするための種々の方法が可能であ
る。「IPTE/SSKE制限モード」にある間にその
ような記憶装置アクセスが遭遇すると、このモードを表
すSC212からの信号234がインアクティブになる
まで、CPUはプログラムを進行することができないで
あろう。
【0038】CPUX 210では、IPTE又はSSK
E命令に対するLICは、システム・シリアル化コント
ローラ220が「全CPU開始済み」モードに達するの
を待って、センス・コマンドを介してこれらのコントロ
ーラをポーリングし、その状態を決定する。一旦この状
態に達してしまうと、変更されるべき情報を使用しよう
とするCPUはあり得ないことが知られている。そこ
で、CPUX 210におけるLICはその情報を更新
し、記憶装置におけるページ・テーブル・エントリ又は
適正なハードウエア構造における記憶キーを変更する。
この更新の完了後、CPUX 210におけるLICは、
コマンド(ブロードキャスト・オペレーション完了)を
SC212に送る。このコマンドに応答して、システム
・シリアル化コントローラ220は「全CPU開始済
み」状態から「アイドル」状態に移行する。これは、す
べてのCPU211への信号234をオフにして「IP
TE/SSKE制限モード」を表示し、すべてのCPU
211が制限のないオペレーションを再開することを可
能にする。(別の方法としては、SC212が「ブロー
キャスト・オペレーション完了」コマンドをすべてのC
PU211に送って、各CPUにそれの「IPTE/S
SKE制限モード」表示をオフにさせる。前者のインプ
リメンテーションは、CPUエラーからの回復と関係が
あるという理由で望ましい)。
【0039】(A)CPU再試行サポート 本発明の更なる特徴は、システム・シリアル化オペレー
ションにおけるCPU再試行アクションを許容すること
である。このために、CPU設計は、SC又は他のCP
Uによる介入なしに、ハードウエア・エラーを検出する
機能、既知の良好なCPUハードウエア状態に戻る機
能、及びLIC又はESA/390命令の処理を再開す
る機能を含むものと仮定する。(これらのアクションの
セットは、集合的には、CPU再試行として知られてい
る)。TLBにおいてバッファされたすべての情報が、
CPU再試行を生じさせたハードウエア障害によって破
壊される可能性のあるものなので、CPU再試行の一部
として廃棄される。これは、CPU再試行機能とシステ
ム・シリアル化機能との共通点にとってきわめて重要で
ある。更に、ここでは、CPU再試行が何らかの信号発
生手段によってSCに表示されるものと仮定する。いず
れにしても、これは、再試行オペレーションの間そのC
PUをSCから「隔絶する」ために一般に必要である。
【0040】一般に、CPU再試行は、その時実行され
ているプログラム又はLICにとって透明である。しか
し、CPU再試行中にそれに送られたコマンドをCPU
が喪失するということが起こり得る。これはIPTEQ
コマンド及びSSKEQコマンドを含む。これを許容す
るためには、システム・シリアル化コントローラ220
は、如何なるCPUY 211からの「CPU再試行」表
示も、あたかもそのCPUY 211が「ブロードキャス
ト・オペレーション開始済み」を信号したかのごとく処
理しなければならない。これは、CPU再試行アクショ
ンが、IPTE又はSSKEコマンドのために必要とさ
れる部分的TLBのスーパセットであるので、許容可能
である。システム・シリアル化機能が完了する前にCP
Y 211がCPU再試行オペレーションを完了する場
合(これは、一般的にはありそうもないことである
が)、CPUY 211は、システム・シリアル化機能が
完了するまで、CPU再試行に続いて「IPTE/SS
KE制限モード」にあるであろう。
【0041】CPUX 210におけるLICは、CPU
再試行に続いてIPTEオペレーション又はSSKEオ
ペレーションを単に継続するだけであると思われるの
で、再試行を行うCPUがCPUX 210である場合、
更なるSCアクションは必要ない。この場合、他のすべ
てのCPUはこの時間全体の間「IPTE/SSKE制
限モード」にあるであろう。
【0042】CPUが、回復することのできないハード
ウエア・エラーに遭遇する場合、そのCPUはチェック
・ストップ状態に入り、これがSC212に表示され
る。SC212におけるシステム・シリアル化コントロ
ーラ220は、いずれのチェック・ストップしたCPU
も、いつもすべてのIPTEコマンド又はSSKEコマ
ンドに直ちに応答していたものと見なすであろう。CP
X 210がシステム・シリアル化シーケンス中にチェ
ック・ストップ状態に入る場合、システム・シリアル化
コントローラ220は、CPUX 210からの「ブロー
ドキャスト・オペレーション完了」信号を待つことな
く、それらのコントローラが「全CPU開始済み」状態
に達した直後に「アイドル」状態に移行する。
【0043】IPTE又はSSKE命令に関するCPU
X におけるLICでは、そのIPTE又はSSKE命令
がSCに送られつつある時間にCPU再試行がそのCP
Uにおいて生じる可能性に関する対策がとられなければ
ならない。この場合、システム・シリアル化コントロー
ラ220が既にビジーであるようにLICには見えるこ
とにより、CPU再試行の結果として、IPTEQ又は
SSKEQコマンドが2回送られることがあり得る。こ
れが「ビジー」表示の原因であることを考慮して、1つ
のコマンドが与えられる。そのコマンドによって、LI
Cは、システム・シリアル化コントローラ220の状態
及び現在処理されつつあるIPTEQ又はSSKEQコ
マンドを送ったCPUに対するCPU識別子をセンスす
ることができる。そこで、これはこのCPUに対するC
PU識別子に比較され、これがCPU再試行によるその
「擬似のビジー」であるかどうかを決定することができ
る。これが「擬似のビジー」である場合、LICはIP
TEシーケンス又はSSKEシーケンスを継続すること
ができる。IPTEコマンド又はSSKEコマンドに対
する「ビジー」応答のすべてのケースに関するこのチェ
ックのオーバヘッドを回避するために、CPUX 210
におけるLICは、CPU再試行がこのCPUにおいて
所与のタイム・ウインドウ内に実際に生じたかどうかを
表す機構を利用してもよい。(「ミリコード化されたプ
ロセッサのためのハードウエア再試行トラップ(Hardwa
re Retry Trap for Millicoded Processor)」と題した
米国特許第5,673,391号参照)。
【0044】(B)通常の静止機構との共通点 IPTE及びSSKEオペレーションの他に、ESA/
390システムにおける他のオペレーションは、プロセ
ッサにおいてバッファされた情報に関係なく、すべての
プロセッサに対して1つのアクションが単一の時点で生
じたように見えるということを時々必要とする。これら
はIPTE及びSSKEオペレーションよりもずっと少
ない頻度のものであるので、通常の「直接的な」インプ
リメンテーション(すべてのCPUが一時停止するのを
待ち、その機能を遂行し、すべてのCPUを解放する)
と関連したパフォーマンスは受容し得るものであり、I
PTEコマンド及びSSKEコマンドと関連した複雑さ
は正当化されない。更に、1つのCPUがシステム・シ
リアル化コントローラ220からの「ビジー」表示によ
りのためにIPTE又はSSKEオペレーションを実行
しないように首尾一貫することは、少なくとも原理的に
は可能である。なお、その「ビジー」表示は、IPTE
命令及びSSKE命令の密な集合がそのシステムにおけ
る他のCPU上で実行されることによるものである。こ
の場合、通常の静止シーケンスに戻ってCPUがそれの
プログラムを前進させることを保証するように、そのC
PUにおけるLICを書くことも可能である。
【0045】本発明の望ましい実施例では、通常の形式
のシステム・シリアル化及び現在望ましい形式のシステ
ム・シリアル化の両方がシステムに同時に存在すること
が可能にされる。LICは、CPUが「ブロードキャス
ト・オペレーション許可済み」ラッチ244をセットす
る時にいつも、そのCPUが「静止」状態にあることを
表すラッチ245をセットし、その逆も同様である。I
PTE又はSSKEに対するLICは、システム・シリ
アル化コントローラ220が「全CPU開始済み」状態
にあることを決定した後にすべての未処理の一般的な静
止リクエストが処理されるのを待ち、しかる後、変換テ
ーブル又は記憶装置キーを更新する前に「静止」ラッチ
245をオフにする。静止割込み及び通常の静止オペレ
ーションを処理するLICは、「静止」ラッチ245を
オフにした後に「ブロードキャスト・オペレーション許
可済み」ラッチ244をオフにする。更に、通常の静止
シーケンスを遂行すると思われるLICは、CPUが
「IPTE/SSKE制限モード」にある間、このシー
ケンスを開始してはならない。これらの変更は、そのシ
ステムでは一時に1つのIPTEオペレーション又はS
SKEオペレーションしか進行状態にあることを許され
ないという事実と共に、両タイプのシステム・シリアル
化オペレーションが如何なる矛盾もなく完了することが
できることを保証する。
【0046】(C)システム・シリアル化制御シーケン
ス 図3における流れ図は、システム・シリアル化コントロ
ーラ220によって実施される状態シーケンスを示す。
これらのコントローラはアイドル状態310にあり、新
たなシステム・シリアル化リクエストに関してそのシス
テムにおけるすべてのCPUからのコマンド・インター
フェース231をモニタする(判断ステップ311)。
そのようなコマンドが認識される時、システム・シリア
ル化コントローラ220はコマンド・インターフェース
233を介してすべてのCPUにこのコマンドをブロー
ドキャストし(ステップ312)、しかる後「ブロード
キャスト送信済み」状態320に入る。それが「ブロー
ドキャスト送信済み」状態にある間、如何なる新たなシ
ステム・シリアル化リクエスト(判断ステップ321)
も、その新たなリクエストを送ったCPUへのSC応答
バス232を介して拒否されるであろう(ステップ32
2)。それは、如何なる時点でも1つのそのようなリク
エストしか進行状態になり得ないためである。更に、そ
れが「ブロードキャスト送信済み」状態にある間、シス
テム・シリアル化コントローラ220は「ブロードキャ
スト・オペレーション開始済み」コマンドに関してすべ
てのCPUからのコマンド・インターフェース231を
モニタする。そのような各コマンドが認識される時(判
断ステップ323)、そのCPUに対するシステム・シ
リアル化状態がこれを反映するように更新される(ステ
ップ324)。更に、そのCPUが、システム・シリア
ル化オペレーションを処理することを最初にリクエスト
したCPUでない場合(判断ステップ325)、そのC
PUに対して「IPTE/SSKE制限モード」状態が
セットされる(ステップ326)。この状態は制御信号
234を介して各CPUに反映される。
【0047】一旦そのシステムにおける各CPUからの
「ブロードキャスト・オペレーション開始済み」コマン
ドが受け取られると(判断ステップ327)、システム
・シリアル化コントローラ220は「全CPU開始済
み」状態330に入る。それが「全CPU開始済み」状
態にある間、如何なる新たなシステム・シリアル化リク
エスト(判断ステップ331)も、その新たなリクエス
トを送ったCPUへのSC応答バス232を介して拒否
されるであろう(ステップ332)。それは、如何なる
時点でも1つのそのようなリクエストしか進行状態にな
り得ないためである。更に、それが「全CPU開始済
み」状態にある間、システム・シリアル化コントローラ
220は、「ブロードキャスト・オペレーション完了」
コマンドに関するシステム・シリアル化オペレーション
を最初にリクエストしたCPUからのコマンド・インタ
ーフェース231をモニタする。そのような各コマンド
が認識される時(判断ステップ333)、システム・シ
リアル化コントローラ220はすべてのCPUに対する
「IPTE/SSKE制限モード」状態をリセットする
(ステップ334)。この状態は制御信号234を介し
てCPUに反映される。そこで、システム・シリアル化
コントローラ220は「アイドル」状態310に戻る。
【0048】(D)内部コード・シーケンス 図4における流れ図は、システム・シリアル化オペレー
ションのためのライセンス内部コード(LIC)によっ
て行われるシーケンスを示す。望ましいインプリメンテ
ーションでは、このLICはミリコードの形式のもので
ある。
【0049】IPTE命令又はSSKE命令を実行する
ために、LICはステップ400において開始する。L
ICは、このCPUにおける前のオペレーションすべて
が完了するまで待機し(判断ステップ401)、しかる
後、ステップ410においてシステム・シリアル化コマ
ンドをSCに送る。このコマンドに対する応答は判断ス
テップ411において分析される。システム・シリアル
化コントローラ220が既にビジーであるためにそのコ
マンドが拒否される場合、LICはステップ412にお
いてIPTE命令又はSSKE命令をヌル化し、ステッ
プ413においてオペレーションを完了する。これは、
既に進行中であるシステム・シリアル化機能のために、
このCPUにおいて割込みが取られることを可能にす
る。CPUが再試行オペレーションを完了していること
をその応答が表す場合、LICはSCにおけるシステム
・シリアル化コントローラの状態を読み取り(ステップ
414)、このCPUがそれらのコントローラをビジー
にしているCPUであるかどうか知るためのチェックを
行う(判断ステップ415)。これは、CPU再試行事
象が、コマンドを送出した後であるがSCから応答を受
け取る前に生じた場合のことである。事実はそうではな
い場合(即ち、システム・シリアル化コントローラがビ
ジーでないか又は別のCPUにとってはビジーである場
合)、LICはステップ410に戻り、システム・シリ
アル化コマンドをSCに再発生する。ステップ411に
おいて分析されたSC応答が、そのコマンドを受け付け
るということである場合、又はシステム・シリアル化コ
ントローラがこのCPUからのコマンドを実際に処理し
ようとしていることがステップ415において決定され
る場合、LICはそのシーケンスの次の部分に進む。
【0050】ステップ420において、LICはこのC
PUに対して「ブロードキャスト・オペレーション許可
済み」ラッチ及び「CPU静止」ラッチの両方をセット
する。しかる後、LICは、CPUハードウエアがIP
TEオペレーション又はSSKEオペレーションに関し
てローカルTLBを処理するのを待つ(判断ステップ4
21)。それは、このCPUにおいて最早そのような未
処理のオペレーションが存在しないことによって表され
る。しかる後,LICは「ブロードキャスト・オペレー
ション許可済み」ラッチをリセットし(ステップ42
2)、そのSCにおけるシステム・シリアル化コントロ
ーラのポーリングを開始し、これらのコントローラのス
テータスを反復的に読み取り(ステップ423)、それ
らのコントローラが「全CPU開始済み」状態に入って
いるかどうかを決定するためにその応答をチェックする
(判断ステップ424)。一旦システム・シリアル化コ
ントローラがその状態に達してしまうと、LICは、I
PTEオペレーション又はSSKEオペレーションによ
って必要とされるグローバルなファシリティ更新を行う
(ステップ425)。即ち、ページ・テーブル・エント
リが記憶装置において無効にされるか(IPTE),又
は記憶キーが更新される(SSKE)。
【0051】次に,LICは「ブロードキャスト・オペ
レーション完了」コマンドをSCに発生する(ステップ
430)。CPU再試行事象が生じたことをこのコマン
ドからの応答が表す場合(判断ステップ431)、LI
CはSCにおけるシステム・シリアル化コントローラの
ステータスを読み取り(ステップ432)、「ブロード
キャスト・オペレーション完了」コマンドが実際にそれ
らのコントローラに到着したかどうかを決定する。これ
らのコントローラが依然としてこのCPUに対するコマ
ンドでもってビジーであることをシステム・シリアル化
制御ステータスが表す場合(判断ステップ433)、L
ICはステップ430に戻り、「ブロードキャスト・オ
ペレーション完了」コマンドを再発生する。一旦「ブロ
ードキャスト・オペレーション完了」コマンドが受け付
けられたことがわかると(ステップ431又は433の
いずれかによって決定されるように)、LICはステッ
プ450に進む。
【0052】そのシーケンスの次の部分は、IPTEコ
マンド又はSSKEコマンドを処理している間に他のC
PUからの通常の静止リクエストが受け取られていた可
能性、或いはこのCPUがそれのブロードキャスト・オ
ペレーションを完了した時以後に他のCPUからIPT
E又はSSKEコマンドが受け取られていた可能性を許
容する。ステップ450において、LICはCPUにお
ける「ブロードキャスト・オペレーション許可済み」ラ
ッチをセットし、しかる後、他のCPUからの未処理の
通常の静止リクエストがそのハードウエアに存在しなく
なるまでステップ451において待機する。一旦その状
態が遭遇すると、LICはステップ452においてこの
CPUに対する「CPU静止」ラッチをリセットする。
ステップ453において、LICは、未処理のIPTE
又はSSKEシリアル化リクエストがそのハードウエア
に存在しなくなるまで待機する。一旦この状態が遭遇す
ると、LICは、ステップ454においてこのCPUに
対する「ブロードキャスト・オペレーション許可済み」
ラッチをリセットする。
【0053】ステップ460において、LICは、CP
U再試行事象がそのシーケンスのこの部分中に生じたか
どうか知るためのチェックを行う。それが肯定される場
合、LICはこのCPUに対する「CPU静止」ラッチ
をセットし(ステップ461)、しかる後、ステップ4
57において、システム全体が最早静止されてないこと
によって表されるように、そのシステムにおける他のい
ずれかのCPUが静止状態から出るのを待つ。しかる
後、LICは「CPU静止」ラッチをリセットし(ステ
ップ463)、ステップ470に続く。これは、静止状
態を出るべき第1CPUがCPU再試行のために静止リ
クエストを喪失することのなかったCPUであることを
保証する。ステップ460においてCPU再試行が検出
されない場合、LICはステップ470へ直接に進む。
ステップ470において、LICは、他のCPUから受
け取られたものでもよい任意の通常の静止リクエストに
関してもう一度テストを行う。いずれかの静止リクエス
トが存在する場合、LICはステップ442に戻ってそ
の静止レシーバ・シーケンスを繰り返す。それが存在し
ない場合、LICは、ステップ480においてIPTE
又はSSKEオペレーションを完了する。
【0054】IPTE又はSSKEシステム・シリアル
化による割込み或いは通常の静止リクエストによる割込
みを処理するために、LICがステップ440において
開始する。ステップ441において、LICはこのCP
Uにおけるすべての前のオペレーションが完了するのを
待ち、しかる後、ステップ442において「CPU静
止」ラッチをセットし、ステップ450において「ブロ
ードキャスト・オペレーション許可済み」ラッチをセッ
トする。この時点から、シーケンスは、ステップ450
において開始する上記のシーケンスと同じである。
【0055】本発明のマルチプロセッサ・システム・シ
リアル化コントローラは、すべてのプロセッサがブロー
ドキャストされたグローバル資源更新リクエストにいつ
応答したかを、グローバル資源更新リクエストを行った
プロセッサに信号するということに注意してほしい。一
旦その受取り先のプロセッサがブロードキャスト・オペ
レーションの1つに関する作業を開始すると、それが完
了するまでそれが如何なる命令も実行しないということ
が設計によって保証されている。従って、応答はそれが
オペレーションを「開始」させたということであるので
実時間であるけれども、論理的意味では、それはオペレ
ーションを「実行」したことと等価である。勿論、別の
方法として、すべてのプロセッサがブロードキャストさ
れたグローバル資源更新リクエストの処理を完了した
時、グローバル資源更新リクエストを行ったプロセッサ
に信号するシステム・シリアル化コントローラのコンテ
キスト内で信号が送られる。本発明の望ましい実施例に
おけるこの信号は、タスクの完了を包含するリクエスト
の受領に関する信号である。
【0056】本発明の望ましい実施例を開示したけれど
も、現在及び将来においても、特許請求の範囲の項の技
術的範囲内で、当業者が種々の改良及び機能強化を行い
得ることは勿論である。これらの特許請求の範囲は、最
初に開示された発明に対する適正な保護を維持するよう
に解釈されるべきである。
【0057】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0058】(1)複数のプロセッサを含み、前記プロ
セッサの各々はシステム静止リクエスト及びグローバル
資源の更新を行うためのリクエストを発生し及び該リク
エストに応答し、前記システム静止リクエスト及び前記
更新を行うためのリクエストは前記複数のプロセッサの
うちの1つ又は複数個においてバッファされること、及
び記憶装置コントローラ及びシステム・シリアル化コン
トローラを含むシステム・オペレーション・コントロー
ラが、前記グローバル資源の更新を指示すること、を特
徴とするマルチプロセッサ・システム。 (2)前記グローバル資源はアドレス変換テーブル・エ
ントリ及び記憶保護キーを含む、上記(1)に記載のマ
ルチプロセッサ・システム。 (3)前記システム・シリアル化コントローラは、グロ
ーバル資源の更新を行うために各プロセッサからリクエ
ストを受け取り、そのようなリクエストの各々に応答し
て前記システム・シリアル化コントローラがビジーであ
ることを表すか又はグローバル資源更新リクエストを前
記システムにおけるすべてのプロセッサにブロードキャ
ストする、上記(2)に記載のマルチプロセッサ・シス
テム。 (4)ブロードキャストされたグローバル資源更新リク
エストを受け取る各プロセッサは、割込み可能なポイン
トにおいて命令処理を中断して、前記リクエストが受け
付けられたことを前記システム・シリアル化コントロー
ラに応答し、更新される資源のすべてのローカル・コピ
ーを修正又は無効化することによって前記リクエストさ
れたグローバル資源更新を処理し、割込みの前記ポイン
トにおいて命令処理を再開する、上記(3)に記載のマ
ルチプロセッサ・システム。 (5)前記システム・シリアル化コントローラは、前記
グローバル資源更新リクエストを行ったプロセッサを除
くブロードキャストされたグローバル資源更新リクエス
トに応答した各プロセッサを、更新されるグローバル資
源へのアクセスが禁止されるという制限された制御状態
に入らせる、上記(4)に記載のマルチプロセッサ・シ
ステム。 (6)前記システム・シリアル化コントローラは、すべ
てのプロセッサが前記ブロードキャストされたグローバ
ル資源更新リクエストにいつ応答したかを、前記グロー
バル資源更新リクエストを行ったプロセッサに信号す
る、上記(5)に記載のマルチプロセッサ・システム。 (7)前記リクエストを行ったプロセッサは、グローバ
ル資源を修正し、しかる後、前記グローバル資源更新オ
ペレーションが完了したことを前記システム・シリアル
化コントローラに信号する、上記(6)に記載のマルチ
プロセッサ・システム。 (8)前記システム・シリアル化コントローラは、すべ
てのプロセッサを前記制限された制御状態のままにさ
せ、必要な時に、すべてのプロセッサが前記更新された
グローバル資源をアクセスすることを可能にする、上記
(7)に記載のマルチプロセッサ・システム。 (9)前記システム・オペレーション・コントローラ
は、すべてのプロセッサが共に一時停止するシステム静
止を必要とする他のプロセッサと前記グローバル資源更
新オペレーションが共存することを可能にし、前記オペ
レーションにおける任意の時点で前記システムにおける
いずれのCPUにおいてもCPU再試行アクションを可
能にするライセンス内部コード(LIC)シーケンスの
ための記憶装置を含む、上記(1)又は(8)に記載の
マルチプロセッサ・システム。 (10)前記システム・オペレーション・コントローラ
は、記憶装置コントローラと、各プロセッサに対するペ
ージ・テーブル・エントリ無効化(IPTE)オペレー
ション及び記憶保護キー設定(SSKE)オペレーショ
ンのためのローカル・バッファとを含む、上記(9)に
記載のマルチプロセッサ・システム。 (11)すべてのプロセッサにブロードキャストされた
グローバル資源更新リクエストは、前記プロセッサをI
PTE及びSSKEオペレーションのためのIPTE/
SSKE制限モードに設定し、ブロードキャスト送信済
み状態に入ることは新しいシステム・シリアル化リクエ
スト・コマンドが完全に処理されるまでその後のリクエ
スト・コマンドを処理しないようにする、上記(10)
に記載のマルチプロセッサ・システム。
【図面の簡単な説明】
【図1】本発明の望ましい実施例の概要を概略的に示
し、特に、新しいコントローラを含む本発明の望ましい
特定の実施例に従って、ミリコード・システムのコンポ
ーネントを表すブロック図を示す。
【図2】本発明の望ましい実施例と関連した特定のコン
トローラを表すブロック図を示す。
【図3】ページ・テーブル・エントリ無効化(IPT
E)及び記憶キー拡張設定(SSKE)のための静止オ
ペレーションに特有の記憶装置コントローラの制御にお
けるハードウエア・シーケンスの流れ図である。
【図4】他のすべてのプロセッサが静止するのを待つこ
となくローカル・バッファ部分が処理されるページ・テ
ーブル・エントリ無効化(IPTE)及び記憶キー拡張
設定(SSKE)のための静止オペレーション処理する
ためのミリコード・ルーチンの流れ図の一部である。
【図5】他のすべてのプロセッサが静止するのを待つこ
となくローカル・バッファ部分が処理されるページ・テ
ーブル・エントリ無効化(IPTE)及び記憶キー拡張
設定(SSKE)のための静止オペレーション処理する
ためのミリコード・ルーチンの流れ図の一部である。
フロントページの続き (72)発明者 チャールズ・エフ・ウェブ アメリカ合衆国12603、ニューヨーク州プ ゥキープシー、メイネッティ・ドライブ 4 (72)発明者 ディーン・ジー・ベイアー アメリカ合衆国12411、ニューヨーク州ブ ルーミントン、ピー・オー・ボックス 96 (72)発明者 マーク・エス・ファーレル アメリカ合衆国12569、ニューヨーク州プ レザント・バレイ、アール・ディ・4、ボ ックス・411 (72)発明者 バリー・ダブリュ・クラン アメリカ合衆国12603、ニューヨーク州プ ゥキープシー、シーニック・ドライブ 42 (72)発明者 パク・キン・マク アメリカ合衆国12603、ニューヨーク州プ ゥキープシー、トロッター・レーン 7 (72)発明者 ジェニファー・エイ・ナヴァーロ アメリカ合衆国12601、ニューヨーク州プ ゥキープシー、ハドソン・ハーバー・ドラ イブ 37・エイ (72)発明者 ティモシー・ジェイ・スリーゲル アメリカ合衆国12580、ニューヨーク州ス タッツバーグ、コネリー・ドライブ 19

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサを含み、 前記プロセッサの各々はシステム静止リクエスト及びグ
    ローバル資源の更新を行うためのリクエストを発生し及
    び該リクエストに応答し、前記システム静止リクエスト
    及び前記更新を行うためのリクエストは前記複数のプロ
    セッサのうちの1つ又は複数個においてバッファされる
    こと、及び記憶装置コントローラ及びシステム・シリア
    ル化コントローラを含むシステム・オペレーション・コ
    ントローラが、前記グローバル資源の更新を指示するこ
    と、 を特徴とするマルチプロセッサ・システム。
  2. 【請求項2】前記グローバル資源はアドレス変換テーブ
    ル・エントリ及び記憶保護キーを含む、請求項1に記載
    のマルチプロセッサ・システム。
  3. 【請求項3】前記システム・シリアル化コントローラ
    は、グローバル資源の更新を行うために各プロセッサか
    らリクエストを受け取り、そのようなリクエストの各々
    に応答して前記システム・シリアル化コントローラがビ
    ジーであることを表すか又はグローバル資源更新リクエ
    ストを前記システムにおけるすべてのプロセッサにブロ
    ードキャストする、請求項2に記載のマルチプロセッサ
    ・システム。
  4. 【請求項4】ブロードキャストされたグローバル資源更
    新リクエストを受け取る各プロセッサは、割込み可能な
    ポイントにおいて命令処理を中断して、前記リクエスト
    が受け付けられたことを前記システム・シリアル化コン
    トローラに応答し、更新される資源のすべてのローカル
    ・コピーを修正又は無効化することによって前記リクエ
    ストされたグローバル資源更新を処理し、割込みの前記
    ポイントにおいて命令処理を再開する、請求項3に記載
    のマルチプロセッサ・システム。
  5. 【請求項5】前記システム・シリアル化コントローラ
    は、前記グローバル資源更新リクエストを行ったプロセ
    ッサを除くブロードキャストされたグローバル資源更新
    リクエストに応答した各プロセッサを、更新されるグロ
    ーバル資源へのアクセスが禁止されるという制限された
    制御状態に入らせる、請求項4に記載のマルチプロセッ
    サ・システム。
  6. 【請求項6】前記システム・シリアル化コントローラ
    は、すべてのプロセッサが前記ブロードキャストされた
    グローバル資源更新リクエストにいつ応答したかを、前
    記グローバル資源更新リクエストを行ったプロセッサに
    信号する、請求項5に記載のマルチプロセッサ・システ
    ム。
  7. 【請求項7】前記リクエストを行ったプロセッサは、グ
    ローバル資源を修正し、しかる後、前記グローバル資源
    更新オペレーションが完了したことを前記システム・シ
    リアル化コントローラに信号する、請求項6に記載のマ
    ルチプロセッサ・システム。
  8. 【請求項8】前記システム・シリアル化コントローラ
    は、すべてのプロセッサを前記制限された制御状態のま
    まにさせ、必要な時に、すべてのプロセッサが前記更新
    されたグローバル資源をアクセスすることを可能にす
    る、請求項7に記載のマルチプロセッサ・システム。
  9. 【請求項9】前記システム・オペレーション・コントロ
    ーラは、すべてのプロセッサが共に一時停止するシステ
    ム静止を必要とする他のプロセッサと前記グローバル資
    源更新オペレーションが共存することを可能にし、前記
    オペレーションにおける任意の時点で前記システムにお
    けるいずれのCPUにおいてもCPU再試行アクション
    を可能にするライセンス内部コード(LIC)シーケン
    スのための記憶装置を含む、請求項1又は8に記載のマ
    ルチプロセッサ・システム。
  10. 【請求項10】前記システム・オペレーション・コント
    ローラは、記憶装置コントローラと、各プロセッサに対
    するページ・テーブル・エントリ無効化(IPTE)オ
    ペレーション及び記憶保護キー設定(SSKE)オペレ
    ーションのためのローカル・バッファとを含む、請求項
    9に記載のマルチプロセッサ・システム。
  11. 【請求項11】すべてのプロセッサにブロードキャスト
    されたグローバル資源更新リクエストは、前記プロセッ
    サをIPTE及びSSKEオペレーションのためのIP
    TE/SSKE制限モードに設定し、ブロードキャスト
    送信済み状態に入ることは新しいシステム・シリアル化
    リクエスト・コマンドが完全に処理されるまでその後の
    リクエスト・コマンドを処理しないようにする、請求項
    10に記載のマルチプロセッサ・システム。
JP11473199A 1998-04-30 1999-04-22 マルチプロセッサ・システム及びそのシステム・シリアル化方法 Expired - Fee Related JP3701814B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/070429 1998-04-30
US09/070,429 US6079013A (en) 1998-04-30 1998-04-30 Multiprocessor serialization with early release of processors

Publications (2)

Publication Number Publication Date
JP2000010942A true JP2000010942A (ja) 2000-01-14
JP3701814B2 JP3701814B2 (ja) 2005-10-05

Family

ID=22095239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11473199A Expired - Fee Related JP3701814B2 (ja) 1998-04-30 1999-04-22 マルチプロセッサ・システム及びそのシステム・シリアル化方法

Country Status (2)

Country Link
US (1) US6079013A (ja)
JP (1) JP3701814B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460100B1 (en) * 1999-11-09 2002-10-01 International Business Machines Corporation Bus snooper for SMP execution of global operations utilizing a single token with implied release
US6516368B1 (en) 1999-11-09 2003-02-04 International Business Machines Corporation Bus master and bus snooper for execution of global operations utilizing a single token for multiple operations with explicit release
US6480915B1 (en) * 1999-11-09 2002-11-12 International Business Machines Corporation Bus protocol and token manager for SMP execution of global operations utilizing a single token with implied release
US6553442B1 (en) 1999-11-09 2003-04-22 International Business Machines Corporation Bus master for SMP execution of global operations utilizing a single token with implied release
US6460101B1 (en) * 1999-11-09 2002-10-01 International Business Machines Corporation Token manager for execution of global operations utilizing multiple tokens
US6507880B1 (en) 1999-11-09 2003-01-14 International Business Machines Corporation Bus protocol, bus master and bus snooper for execution of global operations utilizing multiple tokens
US7249247B2 (en) * 2000-04-11 2007-07-24 Microsoft Corporation Common feature mode for microprocessors in a multiple microprocessor system
US6792529B1 (en) * 2000-04-11 2004-09-14 Microsoft Corporation Common feature mode for microprocessors in a multiple microprocessor system
US6739053B2 (en) 2000-12-14 2004-05-25 Wahl Clipper Corporation Hair clipping device with internal vacuum
US6684511B2 (en) 2000-12-14 2004-02-03 Wahl Clipper Corporation Hair clipping device with rotating bladeset having multiple cutting edges
US7089555B2 (en) 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
US7143414B2 (en) 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US7284100B2 (en) * 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7020761B2 (en) * 2003-05-12 2006-03-28 International Business Machines Corporation Blocking processing restrictions based on page indices
US7530067B2 (en) 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US6996698B2 (en) * 2003-05-12 2006-02-07 International Business Machines Corporation Blocking processing restrictions based on addresses
US9454490B2 (en) 2003-05-12 2016-09-27 International Business Machines Corporation Invalidating a range of two or more translation table entries and instruction therefore
US7509646B1 (en) 2003-09-23 2009-03-24 Unisys Corporation Method of managing workloads in a distributed processing system
US7747573B2 (en) * 2004-11-18 2010-06-29 International Business Machines Corporation Updating elements in a data storage facility using a predefined state machine, with serial activation
US7827544B2 (en) * 2004-11-18 2010-11-02 International Business Machines Corporation Updating elements in a data storage facility using a predefined state machine, with parallel activation
TWI322354B (en) * 2005-10-18 2010-03-21 Via Tech Inc Method and system for deferred command issuing in a computer system
US8433855B2 (en) * 2008-02-15 2013-04-30 International Business Machines Corporation Serializing translation lookaside buffer access around address translation parameter modification
US8806179B2 (en) 2009-12-15 2014-08-12 International Business Machines Corporation Non-quiescing key setting facility
US8938588B2 (en) 2010-12-16 2015-01-20 International Business Machines Corporation Ensuring forward progress of token-required cache operations in a shared cache
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10176006B2 (en) * 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4646236A (en) * 1981-04-17 1987-02-24 International Business Machines Corp. Pipelined control apparatus with multi-process address storage
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
US5276878A (en) * 1992-10-07 1994-01-04 International Business Machines Corporation Method and system for task memory management in a multi-tasking data processing system
US5694617A (en) * 1995-03-31 1997-12-02 International Business Machines Corporation System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation
US5673391A (en) * 1995-03-31 1997-09-30 International Business Machines Corporation Hardware retry trap for millicoded processor
US5611062A (en) * 1995-03-31 1997-03-11 International Business Machines Corporation Specialized millicode instruction for string operations
US5713035A (en) * 1995-03-31 1998-01-27 International Business Machines Corporation Linking program access register number with millicode operand access
US5680598A (en) * 1995-03-31 1997-10-21 International Business Machines Corporation Millicode extended memory addressing using operand access control register to control extended address concatenation
US5621909A (en) * 1996-03-12 1997-04-15 International Business Machines Corporation Specialized millicode instruction for range checking
US5761734A (en) * 1996-08-13 1998-06-02 International Business Machines Corporation Token-based serialisation of instructions in a multiprocessor system

Also Published As

Publication number Publication date
US6079013A (en) 2000-06-20
JP3701814B2 (ja) 2005-10-05

Similar Documents

Publication Publication Date Title
JP3701814B2 (ja) マルチプロセッサ・システム及びそのシステム・シリアル化方法
JP2000029857A (ja) 個々のプロセッサの早期リリ―スによるシステム・シリアル化方法
US7178062B1 (en) Methods and apparatus for executing code while avoiding interference
US5185871A (en) Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US6996698B2 (en) Blocking processing restrictions based on addresses
RU2233470C2 (ru) Способ и устройство для блокировки сигнала синхронизации в многопоточном процессоре
JP4601958B2 (ja) 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置
US9785462B2 (en) Registering a user-handler in hardware for transactional memory event handling
US5428761A (en) System for achieving atomic non-sequential multi-word operations in shared memory
US5257354A (en) System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
US7530067B2 (en) Filtering processor requests based on identifiers
US6301655B1 (en) Exception processing in asynchronous processor
JP2004326798A (ja) マルチプロセッサ・データ処理システム
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
JPH02502764A (ja) 多重処理を行なう方法および構成
JPH06222936A (ja) 共用変数の値を更新する方法
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
JPH0430053B2 (ja)
US20040123078A1 (en) Method and apparatus for processing a load-lock instruction using a scoreboard mechanism
JPH02166539A (ja) フェッチ方法
US7080209B2 (en) Method and apparatus for processing a load-lock instruction using a relaxed lock protocol
KR20200061361A (ko) 예외 마스크 갱신 명령 후 트랜잭션의 비중지 처리의 허가
WO2001084304A2 (en) Active address content addressable memory
US5875468A (en) Method to pipeline write misses in shared cache multiprocessor systems
JPH0340047A (ja) キヤツシユ・ライン・ストア方法

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20031201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20031204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040330

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050629

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080722

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090722

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100722

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110722

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120722

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130722

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees