JP2004342099A - アドレスに基づいた処理制約のブロッキング - Google Patents

アドレスに基づいた処理制約のブロッキング Download PDF

Info

Publication number
JP2004342099A
JP2004342099A JP2004128883A JP2004128883A JP2004342099A JP 2004342099 A JP2004342099 A JP 2004342099A JP 2004128883 A JP2004128883 A JP 2004128883A JP 2004128883 A JP2004128883 A JP 2004128883A JP 2004342099 A JP2004342099 A JP 2004342099A
Authority
JP
Japan
Prior art keywords
address
processing
processing unit
response
fetch
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
JP2004128883A
Other languages
English (en)
Other versions
JP3914541B2 (ja
Inventor
Timothy J Slegel
ティモシー・ジェイ・スレゲル
Jane H Bartik
ジェーン・エイチ・バーティク
Lisa C Heller
リサ・シー・ヘラー
Erwin F Pfeffer
エルヴィン・エフ・プフェッファー
Ute Gaertner
ウテ・ゲルトナー
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 JP2004342099A publication Critical patent/JP2004342099A/ja
Application granted granted Critical
Publication of JP3914541B2 publication Critical patent/JP3914541B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F15/00Details of, or accessories for, apparatus of groups G01F1/00 - G01F13/00 insofar as such details or appliances are not adapted to particular types of such apparatus
    • G01F15/10Preventing damage by freezing or excess pressure or insufficient pressure
    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03BINSTALLATIONS OR METHODS FOR OBTAINING, COLLECTING, OR DISTRIBUTING WATER
    • E03B9/00Methods or installations for drawing-off water
    • E03B9/02Hydrants; Arrangements of valves therein; Keys for hydrants
    • E03B9/08Underground hydrants
    • E03B9/10Protective plates or covers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Hydrology & Water Resources (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • Fluid Mechanics (AREA)
  • Health & Medical Sciences (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】コンピューティング環境での処理制約を、ある状況で、フィルタに掛け、ブロックし、制約条件が満たされていても処理を続行できるようにすること。
【解決手段】1つの制約は、バッファ・ミスに応答して、ストレージ・キーのフェッチを禁止する指示を含む。コンピューティング環境のプロセッシング・ユニットは、この制約条件が満たされた場合に、フェッチを続行できるかどうかを示すアドレスの比較を実行する。フェッチを続行できる場合、制約は無視される。
【選択図】図3

Description

本発明は、一般に、コンピューティング環境内における処理に関し、詳細には、制約条件が満たされていても処理を続行できるようにする、コンピューティング環境での処理制約のブロッキング(blocking)に関する。
本出願は、本出願の譲受人と同一の譲受人に譲受されている以下の各出願の内容に関連する内容を含む。
本出願と共に出願されたSlegel他の「FILTERING PROCESSORREQUESTS BASED ON IDENTIFIERS」と題する米国出願第10/436,361号、(IBM整理番号POU920030047US1)。
本出願と共に出願されたSlegel他の「BLOCKING PROCESSINGRESTRICTIONS BASED ON PAGE INDICES」と題する米国出願第10/436,209号、(IBM整理番号POU920030048US1)。
本出願と共に出願されたSlegel他の「INVALIDATING STORAGE,CLEARING BUFFER ENTRIES, AND AN INSTRUCTION THEREFOR」と題する米国出願第10/435,919号、(IBM整理番号POU920030050US1)。
コンピューティング環境の1つのプロセッサによる要求の処理は、その環境の1つまたは複数の他のプロセッサに影響を及ぼす場合がある。例えば、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションのz/Architectureに基づく対称マルチプロセッサ(SMP:Symmetric Multiprocessor)システムにおいては、セット・ストレージ・キー拡張(SSKE:Set StorageKey Extended)命令などのブロードキャスト・パージ操作は、高速アクセスのためストレージ・キーのコピーを保持する1つまたは複数のバッファ(例えば、変換索引バッファ(TLB:TranslationLookaside Buffer))内のエントリを、コンピューティング環境のすべてのプロセッサ内のそれらのバッファから削除する必要がある。さらに、このアークテクチャでは、他のいくつかのプロセッサが古いエントリを参照している間に、あるプロセッサが新しいTLBエントリを参照することがないように、バッファは極微(atomically)にパージされる必要がある。多くの他のコンピュータ・アーキテクチャも、同様の機構を提供する。
ブロードキャスト・パージ操作の一般的な実装の1つは以下のステップを含む。1)すべてのプロセッサを休止させる(すなわち、TLBアクセスを含む、大部分の通常処理操作が一時停止させられる)。2)すべてのプロセッサ内のTLBで、適切なエントリをパージする。3)共通リソースを変更する(例えば、SSKEについてのストレージ・キー)。4)最後に、休止を解除し、プロセッサに通常アクティビティを続行させる。この実装では、操作の最中にすべてのプロセッサを休止させなければならず、そのため、特に大規模SMP構成では、パフォーマンスに大きな影響が及ぶのは明らかである。具体的には、あるプロセッサが実行時間の長い割り込み不可の何らかの命令を実行しており、そのため、しばらくの間、休止状態に入れないことは珍しくない。したがって、他のすべてのプロセッサは、上記のステップを完了できるようになる前に、この最後のプロセッサが休止状態に入るのを待つ必要がある。
上述の処理において、パフォーマンスを向上させるため、いくらか進歩があった。例えば、Webbらの「SystemSerialization With Early Release Of Individual Processor」と題する米国特許第6119219号(2000年9月12日)、およびWebbらの「MultiprocessorSerialization With Early Release Of Processors」と題する米国特許第6,079,013号(2000年6月20日)には、可能性としてプロセッサをより短い時間休止させることができる技法が記載されている。例えば、あるプロセッサが要求を受信したとき、そのプロセッサは直ちに休止し、次に自身のTLB内の適切なエントリをパージする。パージが完了した後、このプロセッサは、様々な制約を受けることを条件に処理の続行を許可される。これらの制約の1つに、プロセッサのTLBでバッファ・ミスが発生した場合、プロセッサはそれ以上の処理続行を許可されず(例えば、ストレージ・キーをフェッチできない)、休止が解除されるまで機能停止しなければならないというものがある。休止が解除された後になって初めて、プロセッサからすべての制約が除かれ、処理を続けることができる。
米国出願第10/436,361号 米国出願第10/436,209号 米国出願第10/435,919号 米国特許第6,119,219号 米国特許第6,079,013号 「z/Architecture Principles ofOperation」、IBM発行番号SA22―7832―00(2000年12月) 「System/370 Extended Architecture」、IBM発行番号SA22―7095(1985年)
したがって、プロセッサを機能停止させる時間を短縮するための試みがなされてきたが、一層の機能向上が必要とされている。例えば、制約条件が満たされていても処理を続行できるようにする、処理制約をブロック(block)できる機能が必要とされている。
コンピューティング環境での処理を促進する方法を提供することによって、従来技術の短所が克服され、追加の利点が提供される。この方法は、例えば、ストレージ・キーのフェッチを禁止する制約条件が満たされていてもフェッチを続行できるかどうか判定するステップと、その判定に応じてフェッチを続行するステップとを含む。
本発明の別の態様では、コンピューティング環境での処理を促進する方法が提供される。この方法は、例えば、コンピューティング環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止させる指示を取得するステップと、その処理制約をブロックできるかどうか判定するステップと、その判定に応じて処理を続行するステップとを含む。
上で要約した方法に対応するシステムおよびコンピュータ・プログラム製品についても本明細書で説明し、特許請求を行う。
追加の特徴および利点は、本発明の技法を通じて理解されよう。本発明のその他の実施形態および態様は、本明細書で詳細に説明され、特許請求される本発明の一部と見なされる。
本発明と見なされる内容について、本明細書に添付の特許請求の範囲において具体的に指摘し、明確に特許請求を行う。本発明の上記およびその他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せ読むことにより明らかとなるであろう。
本発明の一態様によれば、処理を禁止するよう指示する処理制約条件が満たされていても、コンピューティング環境における処理を続行できるようにする機能が提供される。一例として、バッファ・ミスの後、ストレージ・キーのフェッチは禁止するよう指示されているが、その実行が可能となる。例えば、アドレスを比較することによって、禁止をブロックできるかどうかが示される。
図1を参照すると、本発明の1つまたは複数の態様を組み込み、使用するコンピューティング環境100の一実施形態が示されている。コンピューティング環境100は、例えば、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するz/Architectureに基づいている。z/Architectureについては、「z/Architecture Principles of Operation」と題するIBM(登録商標)発行物、IBM発行番号SA22―7832―00(2000年12月)に記載がある。(IBM(登録商標)は、アメリカ合衆国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。本明細書で使用されるその他の名称は、インターナショナル・ビジネス・マシーンズ・コーポレーションまたはその他の企業の登録商標、商標、または製品名である場合がある。)一例では、z/Architectureに基づくコンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するeServer zSeriesを含む。
一例として、コンピューティング環境100は、コントローラ120に結合された中央プロセッサ複合(CPC:Central Processor Complex)102を含む。中央プロセッサ複合102は、例えば、1つまたは複数のパーティション104(例えば、論理パーティションLP1〜LPn)、1つまたは複数の中央プロセッサ106(例えば、CP1〜CPm)、およびハイパーバイザ108(例えば、論理パーティション・マネージャ)を含む。これらの各々について以下で説明する。
各論理パーティション104は、別個のシステムとして機能することができる。すなわち、各論理パーティションは独立に、リセットを行い、必要に応じてオペレーティング・システムを初期ロードし、異なるプログラムを動作させることができる。論理パーティション内で動作するオペレーティング・システムまたはアプリケーション・プログラムは、コンピュータ・システムのすべての部分にアクセスできるように思えるが、実際には、コンピュータ・システムの一部のみが利用できる。ハードウェアと(一般にマイクロコードと呼ばれる)ライセンス内部コードの組合せによって、論理パーティション内のプログラムは、異なる論理パーティション内のプログラムに干渉しないようになる。これによって、複数の異なる論理パーティションが、タイム・スライス方式により単一の物理プロセッサで動作することが可能になる。この具体的な例では、各論理パーティションには、オペレーティング・システム110が常駐し、オペレーティング・システムは、1つまたは複数の論理パーティション毎に異なることができる。本発明の一実施形態では、オペレーティング・システム110は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するz/OSオペレーティング・システムとする。
中央プロセッサ106は、論理パーティションに割り当てられる物理プロセッサ資源である。例えば、1つの論理パーティション104は、1つまたは複数の論理プロセッサを含み、論理プロセッサの各々は、そのパーティションに割り当てられた物理プロセッサ資源106の全体または共用を表す。論理パーティション104の論理プロセッサは、そのパーティション専用にして、下位のプロセッサ資源をそのパーティション用に確保しておくことができ、あるいは別のパーティションとの共用にして、下位のプロセッサ資源を別のパーティションも潜在的に利用可能なようにすることもできる。
論理パーティション104は、プロセッサ106で動作するマイクロコードによって実装されるハイパーバイザ108によって管理される。論理パーティション104とハイパーバイザ108の各々は、中央プロセッサに関連づけられた、中央ストレージのそれぞれの部分に置かれた1つまたは複数のプログラムを含む。ハイパーバイザ108の一例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するプロセッサ資源/システム管理機構(PR/SM:Processor Resource/Systems Manager)である。
中央プロセッサ複合に結合されたコントローラ120は、要求を発行する異なるプロセッサ間の調停を担う集中化ロジックを含む。例えば、コントローラ120は、要求を受信すると、その要求のリクエスタをマスタ・プロセッサとし、その他のプロセッサをスレーブ・プロセッサとすることを決定し、メッセージをブロードキャストし、そうでなければ要求を処理する。コントローラの一例が、Webbらの「System Serialization With Early Release Of IndividualProcessor」と題する米国特許第6,119,219号(2000年9月12日)記載されている。図2を参照しながら、より詳細に説明を行う。
図2には、複数の中央プロセッサ(CPU)201に結合されたコントローラ200の一例が示されている。この例では、2つの中央プロセッサが示されている。しかし、3つ以上の中央プロセッサをコントローラ200に結合できることは理解されよう。
コントローラ200は、例えば、システム直列化コントロール202を始めとする様々なコントロールを含む。システム直列化コントロールは、セット・ストレージ・キー拡張(SSKE)命令など直列化すべき操作を確実に直列化するのに使用される。ここで言う直列化とは、コンピューティング環境内では同時に1つの命令しか進行しないことを言う。システム直列化コントロールは、直列化すべき操作についてイベントの順序もモニタする。
コントローラ200は、様々なインターフェースを介して、各中央プロセッサに結合される。例えば、インターフェース204は、行うべき動作を指定する「コントロール」コマンドを中央プロセッサ内のライセンス内部コードがコントローラに送信する際に使用され、コントローラからの情報を返す「センス」コマンドを送信する際にも使用される。別のインターフェースに、「センス」コマンドで要求した情報をコントローラから返送する際に使用される応答バス206がある。応答バスは、「コントロール」コマンドのコマンド・ステータスを伝達するのにも使用され、システム直列化コントロールを始めとするコントローラ内の複数の送信元からセットすることができる。中央プロセッサはこのインターフェースを使用して、コントローラ200内のシステム直列化コントロールの状態をセンスすることができる。
また別のインターフェースに、コントローラが各CPUにコマンドを送信する際に使用されるインターフェース208がある。このインターフェースも、システム直列化コントロール202を始めとするコントローラ内の複数の送信元から制御することができる。さらに別のインターフェースに、中央プロセッサ201のキャッシュ・コントロール212に信号を提供するインターフェース210がある。キャッシュ・コントロール212は、信号に応答してコマンドを処理する。一例では、キャッシュ・コントロール212は、以下でより詳細に説明するように、変換索引バッファ(TLB:Translation Lookaside Buffers)213など1つまたは複数のバッファに影響を及ぼすコマンドを処理する。
キャッシュ・コントロール212の他に、中央プロセッサ201は、例えば、割り込みコントロール220や実行コントロール222を始めとする、様々な他のコントロールを含む。特定のイベントに応答して、割り込みコントロール220は、CPU内で内部割り込みを保留状態にし、このことが、実行コントロール222に次の割り込み可能ポイントでプログラム命令の処理を一時停止させる。割り込みに応答して、実行コントロール222は、ライセンス内部コード・ルーチンを起動して、キャッシュ・コントロール212が保留中コマンドを処理できるように、ブロードキャスト操作許可ラッチ224をセットする。
中央プロセッサ201はまた、中央プロセッサが休止させられているかどうかを示すCPU休止ラッチ226も含む。
上述のコンピューティング環境は、単なる一例であるに過ぎない。本発明の主旨から逸脱することなく、多くの変形が可能である。例えば、1つまたは複数のパーティションは、異なるアーキテクチャ態様においても動作することができる。さらに、別の例として、上述の環境は、z/Architectureに基づく必要はなく、代りに、インテル、サン・マイクロシステムズ、その他によって提供される他のアーキテクチャに基づくことができる。さらに、コンピューティング環境は、エミュレータ(例えば、ソフトウェアまたはその他のエミュレーション機構)を含むことができ、その中である特定のアーキテクチャまたはサブセットがエミュレートされる。そのような環境では、エミュレータを実行するコンピュータが、エミュレートされる機能とは異なるアーキテクチャをもっているとしても、エミュレータの1つまたは複数のエミュレーション機能が、本発明の1つまたは複数の態様を実施することができる。一例として、エミュレーション・モードでは、エミュレートされる特定の命令または操作がデコードされ、個々の命令または操作を実施するために、適切なエミュレーション機能が組み立てられる。
個々のプロセッサは命令を実行し、さらにその他の処理も行う。場合によっては、ある特定の命令の処理が、コンピューティング環境の1つまたは複数の他のプロセッサの処理に処理制約を課す。しかし、本発明の一態様によれば、それらの制約を無視できる状況が存在する。したがって、ある状況では、プロセッサは処理制約をフィルタに掛け、その制約をブロック(すなわち、無視)することができる。このことについて以下でより詳細に説明する。
本明細書で説明する一例は、セット・ストレージ・キー拡張(SSKE)命令の実行に関連する。セット・ストレージ・キー拡張命令の例は、「z/Architecture Principles of Operation」と題するIBM(登録商標)発行物、IBM発行番号第SA22―7832―00(2000年12月)に記載されている。
セット・ストレージ・キー拡張命令は、その命令に関連するバッファ内のエントリを、1つまたは複数のプロセッサにパージさせる。例えば、各プロセッサは、プロセッサ内に配置され、プロセッサに関連づけられた、変換索引バッファ(TLB)と呼ばれる1つまたは複数のバッファを備えるとする。変換索引バッファは、仮想アドレスを実アドレスに変換する際に、動的アドレス変換(DAT)機構がパフォーマンスを向上させるために使用する。すなわち、動的アドレス変換機構が使用する何らかの情報が、より高速なアクセスを実現するためにバッファ内に維持される。例えば、領域テーブル、セグメント・テーブル、またはページ・テーブル内、あるいはそれらの組合せの内で指定される様々な情報がバッファ内に維持される。
アドレス変換用の情報の他に、高速アクセス実現のためストレージ・キーもバッファ内に維持される。ストレージ・キーは、DATが生成した実アドレスに関連づけられた記憶域をアクセスするのに使用される。具体的には、実アドレスは、主記憶域をアクセスするのに使用される絶対アドレスを提供するために、例えば、プレフィックスによって変換される。したがって、プレフィックスを付加した後、絶対アドレスは実アドレスであると言われる。絶対記憶域(すなわち、絶対アドレス順に並んだロケーションを含む記憶域)の各ページには、ページの記憶保護に使用されるストレージ・キーが関連づけられる。
本発明の一実施形態では、ストレージ・キーは、例えば、以下のフィールドを含む。
(A)プログラムが主記憶域の対象ページへのストアを許可されているがどうかを示すアクセス制御フィールド。このフィールドをプログラム状態語(PSW)中のPSWキーと比較して、判定が行われる。
(B)Aのアクセス制御フィールドがPSW中のキーと一致しない場合、対象ページがフェッチ保護されているかどうかを示すフェッチ保護フィールド。
(C)ページにストアが行われたかどうかを示す変更フィールド。
(D)ページがアクセスされたかどうかを示す参照フィールド。
ストレージ・キーは一般に、仮想アドレス−実アドレス変換とは別個の、ただし並列実行可能な操作でTLB内にフェッチされる。
バッファ内のエントリをパージするため、コンピューティング環境内のプロセッサは、データが破損されないように休止状態に置かれる。この休止状態にある間、環境内のプロセッサには、例えば、TLB内でバッファ・ミスが発生した場合にはストレージ・キーのフェッチを実行できなくするよう指示する制約が課される。しかし、本発明の一態様によれば、この制約はフィルタに掛けられ、処理を続行できるよう無視されることもあり得る。これについて図3〜図9を参照しながらより詳細に説明する。具体的には、図3には、本発明の一態様に関連するロジックの一実施形態が示されており、図4〜図9では、SSKE命令を実行する具体的な一例についてより詳細な説明が提供される。
最初に図3を参照すると、コンピューティング環境で動作するプロセッサが、処理制約を受けるようになる(ステップ300)。一例では、プロセッサが休止状態に置かれた時に、こうしたことが生じる。休止状態に置かれたことに応答して、プロセッサは一定の制約下で処理を続行する。例えば、プロセッサの1つまたは複数のTLBでバッファ・ミスが発生した場合には、プロセッサは処理を機能停止する。
プロセッサは、制約条件を満たすまで処理を続行する(ステップ302)。例えば、プロセッサのTLBでバッファ・ミスが発生するまで、プロセッサは処理を続行する。その後、本発明の一態様によれば、制約条件が満たされていてもプロセッサが操作を続行できるかどうかについて判定が行われる(照会304)。すなわち、制約をブロックできるかどうかについて決定が下される。一例では、この判定はアドレスに基づいて行われる。例えば、フェッチされるストレージ・キーに関連するアドレス(例えば、実アドレス、絶対アドレス、またはその他のアドレス)とプロセッサによって以前にセーブされたアドレスとの比較が行われる。アドレスが等しい場合、処理は機能停止させられる(ステップ306)。しかし、アドレスが等しくない場合、制約条件が満たされていても操作を実行することができる(ステップ308)。
本発明の1つまたは複数の態様の処理について、図4〜図9を参照しながら、より詳細に説明する。3つのプロセッサが示されているが、いくつでもプロセッサを使用できることは理解されよう。図4を参照すると、命令402(例えば、SSKE命令)を実行するプロセッサ400が、命令を処理する一部としてブロードキャスト要求404(例えば、休止要求)を発行する。この要求は、この例では、コントローラ406に転送される。本明細書では、要求を発行したプロセッサをマスタ・プロセッサと呼び、その他のプロセッサをスレーブ・プロセッサと呼ぶ。プロセッサはコントローラ406に結合される。
マスタ・プロセッサからブロードキャスト特性の要求を受信したのに応答して、コントローラ406は、要求(408)をスレーブ・プロセッサに転送する。各プロセッサは、例えば、その現在の状態に応じて、適切な方式で要求を処理する。
例えば、図5に示すように、CP2は実行時間の長い命令(500)を実行しており、そのため、今すぐには休止要求に応じられず、CP2では休止要求は実施保留の状態になる。一方、CP0は休止ポイントに達したことを知らせる応答をコントローラに返し(502)、休止要求に関連する操作を実行する。この操作は、1つまたは複数のTLBからエントリをパージする操作を含む(504)。さらに、本発明の一態様によれば、CP0は、要求の実アドレスの少なくとも一部を後の使用に備えてセーブする(506)。一例では、実アドレスの一部(例えば、4〜6ビット)がセーブされる。しかし、他の例では、実アドレス全体も含む違う数のビットをセーブすることができる。さらに、他の例では、別のタイプのアドレスを使用することができる。例えば、要求によって提供される実アドレスを、比較に使用される絶対アドレスに変換することができる。さらに、要求は、絶対アドレスまたはその他のタイプのアドレスなど実アドレス以外のアドレスを提供することができる。
CP0が休止ポイントに達したことをコントローラに通知したので、本発明の一実施形態では、コントローラはそのプロセッサに対する信号をセットする(図6参照)。この信号は、例えば、TLBミスが発生した場合にはスレーブ・プロセッサは続行を許可されないことを示す、ブロック変換(blk_xlat)信号(600)とする。すなわち、スレーブ・プロセッサは、TLBミスが発生した場合にはストレージ・キーのフェッチの実行は許可されないことを通知される。しかし、本発明の一態様によれば、信号を無視するかどうかを決定する、さらなる処理が実行される。
例えば、CP0のTLBでストレージ・キーについてのバッファ・ミスが発生した場合、CP0はストレージ・キーのフェッチを実行しようと試みる。フェッチの最中に、CP0は、フェッチされるストレージ・キーに関連する実アドレスの少なくとも一部を、ブロードキャストSSKE操作から取得しセーブした実アドレスと比較する。2つのアドレスが一致しない場合、プロセッサは、フェッチを続行し、通常実行を再開することを許可される。しかし、それらが一致した場合、プロセッサは機能停止し、blk_xlat信号がドロップするのを待つ(一例では、比較はフェッチの最中に1つまたは複数のステップで実行され、比較結果に応じて、処理は続行され、あるいは機能停止される)。
図7を参照すると、上述の制約下でCP0が命令を実行し続けているところが示されている。これらの制約は、blk_xlat信号(700)がドロップするまで継続する。さらに、CP2がようやく実行時間の長い命令を終了し、休止割り込みを受け入れられるようになったことが示されている。したがって、CP2は休止ポイントに達したことを知らせる応答をコントローラに返す(702)。さらに、CP2は、ブロードキャストSSKE操作に関連する、そのTLBの適切なエントリをパージし、実アドレスの少なくとも一部を後の使用に備えてセーブする(704)。
CP2から休止通知を受信したのに応答して、コントローラはCP2に対するblk_xlat信号をセットし(706)、CP2はCP0に課されているのと同じ制約を課されるようになる。さらに、コントローラは、システム内の最後のプロセッサが休止ポイントに達し、システムが休止状態に置かれたことを知らせる通知を休止マスタ・プロセッサCP1に返す(708)。
システムが休止状態にあるので、マスタ・プロセッサは、記憶域のストレージ・キーを変更する(図8の800)。一例では、これには、ライセンス内部コードによる、必要に応じてキーを変更するための低レベル・コマンドの発行が含まれる。変更の完了に応答して、マスタ・プロセッサは、休止の解除を指示する信号をコントローラに送信する(802)。一方、CP0およびCP2は、制約を受けながら通常実行を継続する(804)。
解除指示の受信に応答して、コントローラは休止を解除し、CP0、CP1、およびCP2は、制約を受けない通常実行(900−図9)を再開する。以前コントローラによってアクティブにされたblk_xlat信号は、もはやアクティブではなくなる。
ある条件下で制約をブロック(ずなわち、無視)できるようにする機能について、上で詳細に説明した。これによって、有利には、休止によるプロセッサの機能停止時間が短縮され、システム・パフォーマンスが向上する。このパフォーマンス向上は、大規模SMP環境を始めとする多くの環境で見出すことができた。例えば、本発明の1つまたは複数の機能は、以下に示すように、システム・パフォーマンスを改善する。これまで16ウェイSMPシステムでは、システムの休止およびblk_xlatのドロップを待って機能停止することに、全時間の10%が費やされていた。このパフォーマンス低下は、SMPシステム内のプロセッサ数の2乗にほぼ比例して増大する。本発明の1つまたは複数の態様を使用することで、パフォーマンス低下が著しく抑制される。
上述の例ではSSKE命令に関して説明を行ったが、本発明の1つまたは複数の態様は、同じアーキテクチャまたは異なるアーキテクチャにおいて上記の命令と類似または等価な命令を始めとする、その他の命令にも適用可能である。
本発明の主旨から逸脱することなく、上述の実施形態に多くの変形を施すことが可能である。例えば、本発明の1つまたは複数の態様は、例えば、1つまたは複数のページ可能エンティティ(例えば、ゲスト)が1つまたは複数のプロセッサで動作する仮想マシン・エミュレータにも適用可能である。一例として、ページ可能ゲストは、スタート解釈実行(SIE:Start Interpretive Execution)アーキテクチャによって定義され、このアーキテクチャの一例は、「System/370Extended Architecture」と題するIBM(登録商標)発行物、IBM発行番号SA22―7095(1985年)に記載がある。
上述の例ではSIEおよびz/Architectureに関して説明を行ったが、本発明の1つまたは複数の態様は、ページ可能エンティティまたは類似の構造を利用する他のアーキテクチャまたは環境、あるいはその両方にも等しく適用可能である。
さらに、上述の様々な実施形態は単なる例にすぎない。本発明の主旨から逸脱することなく、これらの実施形態に多くの変形を施すことが可能である。例えば、本明細書では、論理的にパーティション化された環境について説明したが、これはほんの一例にすぎない。本発明の態様は、複数のゾーンをもつ他の環境およびパーティション化されていない環境を始めとする多くのタイプの環境で有益である。さらに、中央プロセッサ複合をもたずに、互いに結合された複数のプロセッサをもつことができる。さらに、本発明の1つまたは複数の態様は、単一のプロセッサ環境にも適用可能である。
本明細書ではある特定の環境について説明を行ったが、繰り返すと、本発明の主旨から逸脱することなく、この環境に多くの変形を実施することが可能である。例えば、環境が論理的にパーティション化されている場合、より多いまたはより少ない論理パーティションを環境にもたせることができる。一般に、1つのパーティションで使用される絶対記憶アドレスに、別のパーティションがアクセスすることはできない。さらに、複数の中央プロセッサ複合を互いに結合することができる。これらは、本発明の主旨から逸脱することなく実施できる変形のいくつかであるに過ぎない。さらに、他の変形も可能である。例えば、本発明で説明したコントローラは、同時に1つのブロードキャスト命令が実行されるように命令を直列化するが、別の実施形態では、同時に複数の命令を実行することができる。さらに、環境に複数のコントローラが存在してよい。さらに、このシステムでは(1つまたは複数のコントローラから)複数の休止要求を同時に発行することができる。このシナリオでは、複数のアドレスがセーブされ、複数の比較が実行される。例えば、すべての比較が不一致となった場合、処理が続行する。この他の変形も可能である。
有利には、本発明の1つまたは複数の態様は、本出願と共に出願されたSlegelらの「FilteringProcessor Requests Based On Identifiers」と題する米国特許出願(IBM整理番号POU920030047US1)、および本出願と共に出願されたSlegelらの「BlockingProcessing Restrictions Based On Page Indices」と題する米国特許出願(IBM整理番号POU920030048US1)に記載の、1つまたは複数の他の発明の1つまたは複数の態様と共に、パフォーマンス向上のために使用することができる。
本明細書で使用する「プロセッシング・ユニット」という語には、ゲスト、プロセッサ、エミュレータ、またはその他の類似のコンポーネント、あるいはそれらの組合せなどの、ページ可能エンティティが含まれる。さらに、「プロセッシング・ユニットによって」という言葉には、プロセッシング・ユニットを代行することも含まれる。「取得する」という語には、受信し、所有し、提供を受け、何かの指示を受信することなどが含まれるが、これらに限定されるものではない。さらに、「バッファ」という語には、記憶領域の他、アレイを始めとする(アレイに限定されない)異なるタイプのデータ構造が含まれる。
本発明の機能は、ソフトウェア、ファームウェア、ハードウェア、あるいはそれらの組合せによって実装することができる。
一例として、本発明の1つまたは複数の態様は、例えば、コンピュータが使用できる媒体を備えた製造物品(例えば、1つまたは複数のコンピュータ・プログラム製品)に含まれ得る。媒体はその中に、例えば、本発明の機能を提供し促進するコンピュータ可読プログラム・コード手段またはロジック(例えば、命令、コード、コマンドなど)を含む。製造物品は、コンピュータ・システムの一部に含めることができ、別途販売することもできる。
さらに、本発明の機能を実行するための、マシンによって実行可能な命令で成る少なくとも1つのプログラムを含む、マシン可読の少なくとも1つのプログラム記憶装置を提供することができる。
本明細書に示すフローチャートは単なる例に過ぎない。本発明の主旨から逸脱することなく、本明細書に記載のこれらのチャートまたはステップ(または操作)に多くの変形を施すことができる。例えば、ステップを異なる順序で実行することができ、またはステップを追加、削除、変更することができる。こうした変形のすべては、特許請求される本発明の一部と見なされる。
本明細書では、好ましい実施形態を示し、それを詳細に説明したが、本発明の主旨から逸脱することなく、様々な変更、追加、置き換え、その他を実施することができ、したがって、それらが添付の特許請求の範囲で定義される本発明の範囲に包含されると見なされることは、当業者には明らかであろう。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)コンピュータ環境での処理を促進する方法であって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
前記判定に応じて、前記フェッチを続行するステップと
を含む、方法。
(2)前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、上記(1)に記載の方法。
(3)前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記(2)に記載の方法。
(4)前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、上記(2)に記載の方法。
(5)前記プロセッシング・ユニットが、プロセッサを含む、上記(4)に記載の方法。
(6)前記1つのアドレスが、実アドレスと絶対アドレスの一方であり、前記別のアドレスが、実アドレスと絶対アドレスの一方である、上記(4)に記載の方法。
(7)前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、上記(4)に記載の方法。
(8)前記判定ステップが、前記1つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、上記(2)に記載の方法。
(9)前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、上記(1)に記載の方法。
(10)前記バッファが、変換索引バッファである、上記(9)に記載の方法。
(11)休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、上記(1)に記載の方法。
(12)前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、上記(11)に記載の方法。
(13)コンピュータ環境での処理を促進する方法であって、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
前記処理制約をブロックできるかどうか判定するステップと、
前記判定に応じて、処理を続行するステップと
を含む、方法。
(14)前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、上記(13)に記載の方法。
(15)前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記(14)に記載の方法。
(16)前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、上記(15)に記載の方法。
(17)コンピュータ環境での処理を促進するシステムであって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定する手段と、
前記判定に応じて、前記フェッチを続行する手段と
を含む、システム。
(18)前記判定手段が、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記フェッチの続行を指示する、上記(17)に記載のシステム。
(19)前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記(18)に記載のシステム。
(20)前記フェッチ手段が、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、上記(18)に記載のシステム。
(21)前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、上記(20)に記載のシステム。
(22)前記判定手段が、前記1つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較する手段を含み、複数の不一致が前記フェッチの続行を指示する、上記(18)に記載のシステム。
(23)前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、上記(17)に記載のシステム。
(24)休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得する手段をさらに含む、上記(17)に記載のシステム。
(25)前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、上記(24)に記載のシステム。
(26)コンピュータ環境での処理を促進するシステムであって、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する手段と
前記処理制約をブロックできるかどうか判定する手段と、
前記判定に応じて、処理を続行する手段と
を含む、システム。
(27)前記判定手段が、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記制約のブロックを指示する、上記(26)に記載のシステム。
(28)前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記(27)に記載のシステム。
(29)前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、上記(28)に記載のシステム。
(30)コンピュータ環境での処理を促進するシステムであって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するプロセッシング・ユニットを含み、
前記プロセッシング・ユニットが、前記判定に応じて、前記フェッチを続行する、
システム。
(31)コンピュータ環境での処理を促進するシステムであって、
バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する前記コンピュータ環境のプロセッシング・ユニットを含み、
前記プロセッシング・ユニットが、前記処理制約をブロックできるかどうか判定し、前記判定に応じて、処理を続行するシステム。
(32)コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも1つのプログラムを含む、マシン可読の少なくとも1つのプログラム記憶装置であって、前記方法が、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
前記判定に応じて、前記フェッチを続行するステップと
を含む、少なくとも1つのプログラム記憶装置。
(33)前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、上記(32)に記載の少なくとも1つのプログラム記憶装置。
(34)前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記(33)に記載の少なくとも1つのプログラム記憶装置。
(35)前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、上記(33)に記載の少なくとも1つのプログラム記憶装置。
(36)前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、上記(35)に記載の少なくとも1つのプログラム記憶装置。
(37)前記判定ステップが、前記1つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、上記(32)に記載の少なくとも1つのプログラム記憶装置。
(38)前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、上記(32)に記載の少なくとも1つのプログラム記憶装置。
(39)前記方法が、休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、上記(32)に記載の少なくとも1つのプログラム記憶装置。
(40)前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、上記(39)に記載の少なくとも1つのプログラム記憶装置。
(41)コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも1つのプログラムを含む、マシン可読の少なくとも1つのプログラム記憶装置であって、前記方法が、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
前記処理制約をブロックできるかどうか判定するステップと、
前記判定に応じて、処理を続行するステップと
を含む、少なくとも1つのプログラム記憶装置。
(42)前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、上記(41)に記載の少なくとも1つのプログラム記憶装置。
(43)前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記(42)に記載の少なくとも1つのプログラム記憶装置。
(44)前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、上記(43)に記載の少なくとも1つのプログラム記憶装置。
本発明の1つまたは複数の態様を組み込み、使用する、コンピューティング環境の一実施形態を示した図である。 本発明の一態様による、図1のコントローラについてより詳細に示した一実施形態の図である。 本発明の一態様による、操作に制約が課されていてもその操作を実行できるかどうか判定するロジックの一実施形態を示した図である。 本発明の一態様による、セット・ストレージ・キー拡張(SSKE)命令を実行し、スレーブ・プロセッサに要求を転送するコントローラにブロードキャスト要求を発行するマスタ・プロセッサの一例を示した図である。 本発明の一態様による、図4のコントローラによって送信された要求に応答するスレーブ・プロセッサの一例を示した図である。 本発明の一態様による、スレーブ・プロセッサに課された処理制約とそのプロセッサに関連する処理の一例を示した図である。 本発明の一態様による、セット・ストレージ・キー拡張命令に関連してプロセッサによって実行される別の処理の一例を示した図である。 本発明の一態様による、休止解除要求をコントローラに送信するマスタ・プロセッサを示した図である。 本発明の一態様による、休止が解除された後のプロセッサの通常実行を示した図である。
符号の説明
100 コンピューティング環境
102 中央プロセッサ複合(CPC)
104 論理パーティション
106 中央プロセッサ
108 ハイパーバイザ
110 オペレーティング・システム
120 コントローラ
200 コントローラ
201 中央プロセッサ
202 システム直列化コントロール
204 インターフェース
206 応答バス
208 インターフェース
210 インターフェース
212 キャッシュ・コントロール
213 変換索引バッファ(TLB)
220 割り込みコントロール
222 実行コントロール
224 ブロードキャスト操作許可ラッチ
226 CPU休止ラッチ
400 プロセッサ
402 命令
404 ブロードキャスト要求
406 コントローラ
408 要求
500 実行時間の長い命令
502 休止ポイントに達したことを通知
504 TLBからエントリをパージ
506 アドレスをセーブ
600 変換凍結(blk_xlat)信号
700 blk_xlat信号
702 休止ポイントに達したことを通知
704 アドレスをセーブ
706 blk_xlat信号をセット
708 システムが休止状態に置かれたことを通知
800 マスタ・プロセッサがストレージ・キーを変更
802 休止解除信号を送信
804 制約を受けながら通常実行
900 通常実行

Claims (44)

  1. コンピュータ環境での処理を促進する方法であって、
    ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
    前記判定に応じて、前記フェッチを続行するステップと
    を含む、方法。
  2. 前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、請求項1に記載の方法。
  3. 前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項2に記載の方法。
  4. 前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、請求項2に記載の方法。
  5. 前記プロセッシング・ユニットが、プロセッサを含む、請求項4に記載の方法。
  6. 前記1つのアドレスが、実アドレスと絶対アドレスの一方であり、前記別のアドレスが、実アドレスと絶対アドレスの一方である、請求項4に記載の方法。
  7. 前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、請求項4に記載の方法。
  8. 前記判定ステップが、前記1つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、請求項2に記載の方法。
  9. 前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、請求項1に記載の方法。
  10. 前記バッファが、変換索引バッファである、請求項9に記載の方法。
  11. 休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、請求項1に記載の方法。
  12. 前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、請求項11に記載の方法。
  13. コンピュータ環境での処理を促進する方法であって、
    前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
    前記処理制約をブロックできるかどうか判定するステップと、
    前記判定に応じて、処理を続行するステップと
    を含む、方法。
  14. 前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、請求項13に記載の方法。
  15. 前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項14に記載の方法。
  16. 前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、請求項15に記載の方法。
  17. コンピュータ環境での処理を促進するシステムであって、
    ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定する手段と、
    前記判定に応じて、前記フェッチを続行する手段と
    を含む、システム。
  18. 前記判定手段が、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記フェッチの続行を指示する、請求項17に記載のシステム。
  19. 前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項18に記載のシステム。
  20. 前記フェッチ手段が、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、請求項18に記載のシステム。
  21. 前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、請求項20に記載のシステム。
  22. 前記判定手段が、前記1つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較する手段を含み、複数の不一致が前記フェッチの続行を指示する、請求項18に記載のシステム。
  23. 前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、請求項17に記載のシステム。
  24. 休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得する手段をさらに含む、請求項17に記載のシステム。
  25. 前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、請求項24に記載のシステム。
  26. コンピュータ環境での処理を促進するシステムであって、
    前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する手段と
    前記処理制約をブロックできるかどうか判定する手段と、
    前記判定に応じて、処理を続行する手段と
    を含む、システム。
  27. 前記判定手段が、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記制約のブロックを指示する、請求項26に記載のシステム。
  28. 前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項27に記載のシステム。
  29. 前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、請求項28に記載のシステム。
  30. コンピュータ環境での処理を促進するシステムであって、
    ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するプロセッシング・ユニットを含み、
    前記プロセッシング・ユニットが、前記判定に応じて、前記フェッチを続行する、
    システム。
  31. コンピュータ環境での処理を促進するシステムであって、
    バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する前記コンピュータ環境のプロセッシング・ユニットを含み、
    前記プロセッシング・ユニットが、前記処理制約をブロックできるかどうか判定し、前記判定に応じて、処理を続行するシステム。
  32. コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも1つのプログラムを含む、マシン可読の少なくとも1つのプログラム記憶装置であって、前記方法が、
    ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
    前記判定に応じて、前記フェッチを続行するステップと
    を含む、少なくとも1つのプログラム記憶装置。
  33. 前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、請求項32に記載の少なくとも1つのプログラム記憶装置。
  34. 前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項33に記載の少なくとも1つのプログラム記憶装置。
  35. 前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、請求項33に記載の少なくとも1つのプログラム記憶装置。
  36. 前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、請求項35に記載の少なくとも1つのプログラム記憶装置。
  37. 前記判定ステップが、前記1つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、請求項32に記載の少なくとも1つのプログラム記憶装置。
  38. 前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、請求項32に記載の少なくとも1つのプログラム記憶装置。
  39. 前記方法が、休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、請求項32に記載の少なくとも1つのプログラム記憶装置。
  40. 前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、請求項39に記載の少なくとも1つのプログラム記憶装置。
  41. コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも1つのプログラムを含む、マシン可読の少なくとも1つのプログラム記憶装置であって、前記方法が、
    前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
    前記処理制約をブロックできるかどうか判定するステップと、
    前記判定に応じて、処理を続行するステップと
    を含む、少なくとも1つのプログラム記憶装置。
  42. 前記判定ステップが、1つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、請求項41に記載の少なくとも1つのプログラム記憶装置。
  43. 前記1つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項42に記載の少なくとも1つのプログラム記憶装置。
  44. 前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、請求項43に記載の少なくとも1つのプログラム記憶装置。
JP2004128883A 2003-05-12 2004-04-23 アドレスに基づいた処理制約のブロッキング Expired - Lifetime JP3914541B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/435,961 US6996698B2 (en) 2003-05-12 2003-05-12 Blocking processing restrictions based on addresses

Publications (2)

Publication Number Publication Date
JP2004342099A true JP2004342099A (ja) 2004-12-02
JP3914541B2 JP3914541B2 (ja) 2007-05-16

Family

ID=33417053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004128883A Expired - Lifetime JP3914541B2 (ja) 2003-05-12 2004-04-23 アドレスに基づいた処理制約のブロッキング

Country Status (4)

Country Link
US (1) US6996698B2 (ja)
JP (1) JP3914541B2 (ja)
KR (1) KR100800340B1 (ja)
CN (1) CN1297886C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046887A (ja) * 2006-08-17 2008-02-28 Ntt Docomo Inc Os切替装置及びos切替方法

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
JP2005309550A (ja) * 2004-04-19 2005-11-04 Hitachi Ltd リモートコピー方法及びリモートコピーシステム
US20060143417A1 (en) * 2004-12-23 2006-06-29 David Poisner Mechanism for restricting access of critical disk blocks
JP4978008B2 (ja) * 2006-01-11 2012-07-18 株式会社日立製作所 仮想計算機上でのページテーブルアドレスの変更を高速化する方法
US8454810B2 (en) * 2006-07-14 2013-06-04 4D-S Pty Ltd. Dual hexagonal shaped plasma source
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8082405B2 (en) * 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection
US8335906B2 (en) * 2008-01-11 2012-12-18 International Business Machines Corporation Perform frame management function instruction for clearing blocks of main storage
US8417916B2 (en) * 2008-01-11 2013-04-09 International Business Machines Corporation Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8019964B2 (en) * 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8151083B2 (en) 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8041922B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8037278B2 (en) * 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
US8041923B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8103851B2 (en) * 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8572624B2 (en) * 2008-02-26 2013-10-29 International Business Machines Corporation Providing multiple quiesce state machines in a computing environment
US8095773B2 (en) 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8032716B2 (en) * 2008-02-26 2011-10-04 International Business Machines Corporation System, method and computer program product for providing a new quiesce state
US8930635B2 (en) 2009-12-14 2015-01-06 International Business Machines Corporation Page invalidation processing with setting of storage key to predefined value
US8510511B2 (en) 2009-12-14 2013-08-13 International Business Machines Corporation Reducing interprocessor communications pursuant to updating of a storage key
US8918601B2 (en) * 2009-12-14 2014-12-23 International Business Machines Corporation Deferred page clearing in a multiprocessor computer system
US8806179B2 (en) * 2009-12-15 2014-08-12 International Business Machines Corporation Non-quiescing key setting facility
US8595469B2 (en) 2010-06-24 2013-11-26 International Business Machines Corporation Diagnose instruction for serializing processing
US8407701B2 (en) 2010-06-24 2013-03-26 International Business Machines Corporation Facilitating quiesce operations within a logically partitioned computer system
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US9081707B2 (en) * 2012-12-29 2015-07-14 Intel Corporation Apparatus and method for tracking TLB flushes on a per thread basis
US20150261693A1 (en) * 2014-03-14 2015-09-17 International Business Machines Corporation Dynamic storage key assignment
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984153A (en) 1988-04-27 1991-01-08 Unisys Corporation Storage locking control for a plurality of processors which share a common storage unit
AU3424693A (en) * 1992-01-02 1993-07-28 Amdahl Corporation Software control of hardware interruptions
EP0550286A3 (en) * 1992-01-03 1993-11-03 Amdahl Corp 2-level multi-processor synchronization protocol
JP2788836B2 (ja) * 1992-05-15 1998-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタルコンピュータシステム
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
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
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
US5761734A (en) 1996-08-13 1998-06-02 International Business Machines Corporation Token-based serialisation of instructions in a multiprocessor system
ATE444524T1 (de) * 1997-07-11 2009-10-15 Intellectual Venture Funding L Gastrechner-mikroprozessor mit vorrichtung zum zeitweisen anhalten des prozessorzustandes eines zielrechners
US6079013A (en) 1998-04-30 2000-06-20 International Business Machines Corporation Multiprocessor serialization with early release of processors
US6119219A (en) 1998-04-30 2000-09-12 International Business Machines Corporation System serialization with early release of individual processor
US6088792A (en) * 1998-04-30 2000-07-11 International Business Machines Corporation Avoiding processor serialization after an S/390 SPKA instruction
KR100333580B1 (ko) * 1998-04-30 2002-04-24 포만 제프리 엘 개별 프로세서의 초기 해제에 의한 시스템 직렬화 및 그 멀티프로세서 시스템
JP2001022685A (ja) * 1999-07-13 2001-01-26 Mitsubishi Electric Corp データ転送装置及びデータ転送方法
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046887A (ja) * 2006-08-17 2008-02-28 Ntt Docomo Inc Os切替装置及びos切替方法

Also Published As

Publication number Publication date
US20040230758A1 (en) 2004-11-18
CN1297886C (zh) 2007-01-31
JP3914541B2 (ja) 2007-05-16
CN1550977A (zh) 2004-12-01
KR100800340B1 (ko) 2008-02-04
US6996698B2 (en) 2006-02-07
KR20040097886A (ko) 2004-11-18

Similar Documents

Publication Publication Date Title
JP3914541B2 (ja) アドレスに基づいた処理制約のブロッキング
US8234642B2 (en) Filtering processor requests based on identifiers
KR100384852B1 (ko) 메모리 억세스 인터럽트를 통해 발생되는 프로세서 리셋 방법
US7020761B2 (en) Blocking processing restrictions based on page indices
US8719543B2 (en) Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices
US9218302B2 (en) Page table management
US6804729B2 (en) Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US8380907B2 (en) Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8032716B2 (en) System, method and computer program product for providing a new quiesce state
US20110161620A1 (en) Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices
US9372805B2 (en) Operating on translation look-aside buffers in a multiprocessor environment
US8140834B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
US20060036824A1 (en) Managing the updating of storage keys
US20080222383A1 (en) Efficient On-Chip Accelerator Interfaces to Reduce Software Overhead
JPS6122825B2 (ja)
JP2007183952A (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
US8458438B2 (en) System, method and computer program product for providing quiesce filtering for shared memory
KR101107469B1 (ko) 에뮬레이팅된 처리 환경에 메모리 일관성을 제공하는 방법
US20230027307A1 (en) Hypervisor-assisted transient cache for virtual machines
JPS6336012B2 (ja)
Dickson et al. Revision History

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060322

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060620

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060922

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: 20070130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070202

R150 Certificate of patent or registration of utility model

Ref document number: 3914541

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110209

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110209

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120209

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120209

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130209

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130209

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140209

Year of fee payment: 7