(57)【要約】【課題】コンピューティング環境での処理制約を、ある状況で、フィルタに掛け、ブロックし、制約条件が満たされていても処理を続行できるようにすること。【解決手段】１つの制約は、バッファ・ミスに応答して、ストレージ・キーのフェッチを禁止する指示を含む。コンピューティング環境のプロセッシング・ユニットは、この制約条件が満たされた場合に、フェッチを続行できるかどうかを示すアドレスの比較を実行する。フェッチを続行できる場合、制約は無視される。【選択図】図３
2004342099.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ環境での処理を促進する方法であって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
前記判定に応じて、前記フェッチを続行するステップと
を含む、方法。
【請求項２】
前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、請求項１に記載の方法。
【請求項３】
前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項２に記載の方法。
【請求項４】
前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、請求項２に記載の方法。
【請求項５】
前記プロセッシング・ユニットが、プロセッサを含む、請求項４に記載の方法。
【請求項６】
前記１つのアドレスが、実アドレスと絶対アドレスの一方であり、前記別のアドレスが、実アドレスと絶対アドレスの一方である、請求項４に記載の方法。
【請求項７】
前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、請求項４に記載の方法。
【請求項８】
前記判定ステップが、前記１つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、請求項２に記載の方法。
【請求項９】
前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、請求項１に記載の方法。
【請求項１０】
前記バッファが、変換索引バッファである、請求項９に記載の方法。
【請求項１１】
休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、請求項１に記載の方法。
【請求項１２】
前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、請求項１１に記載の方法。
【請求項１３】
コンピュータ環境での処理を促進する方法であって、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
前記処理制約をブロックできるかどうか判定するステップと、
前記判定に応じて、処理を続行するステップと
を含む、方法。
【請求項１４】
前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、請求項１３に記載の方法。
【請求項１５】
前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項１４に記載の方法。
【請求項１６】
前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、請求項１５に記載の方法。
【請求項１７】
コンピュータ環境での処理を促進するシステムであって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定する手段と、
前記判定に応じて、前記フェッチを続行する手段と
を含む、システム。
【請求項１８】
前記判定手段が、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記フェッチの続行を指示する、請求項１７に記載のシステム。
【請求項１９】
前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項１８に記載のシステム。
【請求項２０】
前記フェッチ手段が、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、請求項１８に記載のシステム。
【請求項２１】
前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、請求項２０に記載のシステム。
【請求項２２】
前記判定手段が、前記１つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較する手段を含み、複数の不一致が前記フェッチの続行を指示する、請求項１８に記載のシステム。
【請求項２３】
前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、請求項１７に記載のシステム。
【請求項２４】
休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得する手段をさらに含む、請求項１７に記載のシステム。
【請求項２５】
前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、請求項２４に記載のシステム。
【請求項２６】
コンピュータ環境での処理を促進するシステムであって、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する手段と
前記処理制約をブロックできるかどうか判定する手段と、
前記判定に応じて、処理を続行する手段と
を含む、システム。
【請求項２７】
前記判定手段が、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記制約のブロックを指示する、請求項２６に記載のシステム。
【請求項２８】
前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項２７に記載のシステム。
【請求項２９】
前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、請求項２８に記載のシステム。
【請求項３０】
コンピュータ環境での処理を促進するシステムであって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するプロセッシング・ユニットを含み、
前記プロセッシング・ユニットが、前記判定に応じて、前記フェッチを続行する、
システム。
【請求項３１】
コンピュータ環境での処理を促進するシステムであって、
バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する前記コンピュータ環境のプロセッシング・ユニットを含み、
前記プロセッシング・ユニットが、前記処理制約をブロックできるかどうか判定し、前記判定に応じて、処理を続行するシステム。
【請求項３２】
コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも１つのプログラムを含む、マシン可読の少なくとも１つのプログラム記憶装置であって、前記方法が、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
前記判定に応じて、前記フェッチを続行するステップと
を含む、少なくとも１つのプログラム記憶装置。
【請求項３３】
前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、請求項３２に記載の少なくとも１つのプログラム記憶装置。
【請求項３４】
前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項３３に記載の少なくとも１つのプログラム記憶装置。
【請求項３５】
前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、請求項３３に記載の少なくとも１つのプログラム記憶装置。
【請求項３６】
前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、請求項３５に記載の少なくとも１つのプログラム記憶装置。
【請求項３７】
前記判定ステップが、前記１つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、請求項３２に記載の少なくとも１つのプログラム記憶装置。
【請求項３８】
前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、請求項３２に記載の少なくとも１つのプログラム記憶装置。
【請求項３９】
前記方法が、休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、請求項３２に記載の少なくとも１つのプログラム記憶装置。
【請求項４０】
前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、請求項３９に記載の少なくとも１つのプログラム記憶装置。
【請求項４１】
コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも１つのプログラムを含む、マシン可読の少なくとも１つのプログラム記憶装置であって、前記方法が、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
前記処理制約をブロックできるかどうか判定するステップと、
前記判定に応じて、処理を続行するステップと
を含む、少なくとも１つのプログラム記憶装置。
【請求項４２】
前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、請求項４１に記載の少なくとも１つのプログラム記憶装置。
【請求項４３】
前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、請求項４２に記載の少なくとも１つのプログラム記憶装置。
【請求項４４】
前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、請求項４３に記載の少なくとも１つのプログラム記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピューティング環境内における処理に関し、詳細には、制約条件が満たされていても処理を続行できるようにする、コンピューティング環境での処理制約のブロッキング（blocking）に関する。
【背景技術】
【０００２】
本出願は、本出願の譲受人と同一の譲受人に譲受されている以下の各出願の内容に関連する内容を含む。
【０００３】
本出願と共に出願されたSlegel他の「FILTERING PROCESSORREQUESTS BASED ON IDENTIFIERS」と題する米国出願第１０／４３６，３６１号、（ＩＢＭ整理番号ＰＯＵ９２００３００４７ＵＳ１）。
【０００４】
本出願と共に出願されたSlegel他の「BLOCKING PROCESSINGRESTRICTIONS BASED ON PAGE INDICES」と題する米国出願第１０／４３６，２０９号、（ＩＢＭ整理番号ＰＯＵ９２００３００４８ＵＳ１）。
【０００５】
本出願と共に出願されたSlegel他の「INVALIDATING STORAGE,CLEARING BUFFER ENTRIES, AND AN INSTRUCTION THEREFOR」と題する米国出願第１０／４３５，９１９号、（ＩＢＭ整理番号ＰＯＵ９２００３００５０ＵＳ１）。
【０００６】
コンピューティング環境の１つのプロセッサによる要求の処理は、その環境の１つまたは複数の他のプロセッサに影響を及ぼす場合がある。例えば、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションのｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づく対称マルチプロセッサ（ＳＭＰ：Symmetric Multiprocessor）システムにおいては、セット・ストレージ・キー拡張（ＳＳＫＥ：Set StorageKey Extended）命令などのブロードキャスト・パージ操作は、高速アクセスのためストレージ・キーのコピーを保持する１つまたは複数のバッファ（例えば、変換索引バッファ（ＴＬＢ：TranslationLookaside Buffer））内のエントリを、コンピューティング環境のすべてのプロセッサ内のそれらのバッファから削除する必要がある。さらに、このアークテクチャでは、他のいくつかのプロセッサが古いエントリを参照している間に、あるプロセッサが新しいＴＬＢエントリを参照することがないように、バッファは極微（atomically）にパージされる必要がある。多くの他のコンピュータ・アーキテクチャも、同様の機構を提供する。
【０００７】
ブロードキャスト・パージ操作の一般的な実装の１つは以下のステップを含む。１）すべてのプロセッサを休止させる（すなわち、ＴＬＢアクセスを含む、大部分の通常処理操作が一時停止させられる）。２）すべてのプロセッサ内のＴＬＢで、適切なエントリをパージする。３）共通リソースを変更する（例えば、ＳＳＫＥについてのストレージ・キー）。４）最後に、休止を解除し、プロセッサに通常アクティビティを続行させる。この実装では、操作の最中にすべてのプロセッサを休止させなければならず、そのため、特に大規模ＳＭＰ構成では、パフォーマンスに大きな影響が及ぶのは明らかである。具体的には、あるプロセッサが実行時間の長い割り込み不可の何らかの命令を実行しており、そのため、しばらくの間、休止状態に入れないことは珍しくない。したがって、他のすべてのプロセッサは、上記のステップを完了できるようになる前に、この最後のプロセッサが休止状態に入るのを待つ必要がある。
【０００８】
上述の処理において、パフォーマンスを向上させるため、いくらか進歩があった。例えば、Webbらの「SystemSerialization With Early Release Of Individual Processor」と題する米国特許第６１１９２１９号（２０００年９月１２日）、およびWebbらの「MultiprocessorSerialization With Early Release Of Processors」と題する米国特許第６，０７９，０１３号（２０００年６月２０日）には、可能性としてプロセッサをより短い時間休止させることができる技法が記載されている。例えば、あるプロセッサが要求を受信したとき、そのプロセッサは直ちに休止し、次に自身のＴＬＢ内の適切なエントリをパージする。パージが完了した後、このプロセッサは、様々な制約を受けることを条件に処理の続行を許可される。これらの制約の１つに、プロセッサのＴＬＢでバッファ・ミスが発生した場合、プロセッサはそれ以上の処理続行を許可されず（例えば、ストレージ・キーをフェッチできない）、休止が解除されるまで機能停止しなければならないというものがある。休止が解除された後になって初めて、プロセッサからすべての制約が除かれ、処理を続けることができる。
【特許文献１】米国出願第１０／４３６，３６１号
【特許文献２】米国出願第１０／４３６，２０９号
【特許文献３】米国出願第１０／４３５，９１９号
【特許文献４】米国特許第６，１１９，２１９号
【特許文献５】米国特許第６，０７９，０１３号
【非特許文献１】「z/Architecture Principles ofOperation」、ＩＢＭ発行番号ＳＡ２２―７８３２―００（２０００年１２月）
【非特許文献２】「System/370 Extended Architecture」、ＩＢＭ発行番号ＳＡ２２―７０９５（１９８５年）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、プロセッサを機能停止させる時間を短縮するための試みがなされてきたが、一層の機能向上が必要とされている。例えば、制約条件が満たされていても処理を続行できるようにする、処理制約をブロック（block）できる機能が必要とされている。
【課題を解決するための手段】
【００１０】
コンピューティング環境での処理を促進する方法を提供することによって、従来技術の短所が克服され、追加の利点が提供される。この方法は、例えば、ストレージ・キーのフェッチを禁止する制約条件が満たされていてもフェッチを続行できるかどうか判定するステップと、その判定に応じてフェッチを続行するステップとを含む。
【００１１】
本発明の別の態様では、コンピューティング環境での処理を促進する方法が提供される。この方法は、例えば、コンピューティング環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止させる指示を取得するステップと、その処理制約をブロックできるかどうか判定するステップと、その判定に応じて処理を続行するステップとを含む。
【００１２】
上で要約した方法に対応するシステムおよびコンピュータ・プログラム製品についても本明細書で説明し、特許請求を行う。
【００１３】
追加の特徴および利点は、本発明の技法を通じて理解されよう。本発明のその他の実施形態および態様は、本明細書で詳細に説明され、特許請求される本発明の一部と見なされる。
【００１４】
本発明と見なされる内容について、本明細書に添付の特許請求の範囲において具体的に指摘し、明確に特許請求を行う。本発明の上記およびその他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せ読むことにより明らかとなるであろう。
【発明を実施するための最良の形態】
【００１５】
本発明の一態様によれば、処理を禁止するよう指示する処理制約条件が満たされていても、コンピューティング環境における処理を続行できるようにする機能が提供される。一例として、バッファ・ミスの後、ストレージ・キーのフェッチは禁止するよう指示されているが、その実行が可能となる。例えば、アドレスを比較することによって、禁止をブロックできるかどうかが示される。
【００１６】
図１を参照すると、本発明の１つまたは複数の態様を組み込み、使用するコンピューティング環境１００の一実施形態が示されている。コンピューティング環境１００は、例えば、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づいている。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅについては、「z/Architecture Principles of Operation」と題するＩＢＭ（登録商標）発行物、ＩＢＭ発行番号ＳＡ２２―７８３２―００（２０００年１２月）に記載がある。（ＩＢＭ（登録商標）は、アメリカ合衆国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。本明細書で使用されるその他の名称は、インターナショナル・ビジネス・マシーンズ・コーポレーションまたはその他の企業の登録商標、商標、または製品名である場合がある。）一例では、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づくコンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するｅＳｅｒｖｅｒ  ｚＳｅｒｉｅｓを含む。
【００１７】
一例として、コンピューティング環境１００は、コントローラ１２０に結合された中央プロセッサ複合（ＣＰＣ：Central Processor Complex）１０２を含む。中央プロセッサ複合１０２は、例えば、１つまたは複数のパーティション１０４（例えば、論理パーティションＬＰ１〜ＬＰｎ）、１つまたは複数の中央プロセッサ１０６（例えば、ＣＰ１〜ＣＰｍ）、およびハイパーバイザ１０８（例えば、論理パーティション・マネージャ）を含む。これらの各々について以下で説明する。
【００１８】
各論理パーティション１０４は、別個のシステムとして機能することができる。すなわち、各論理パーティションは独立に、リセットを行い、必要に応じてオペレーティング・システムを初期ロードし、異なるプログラムを動作させることができる。論理パーティション内で動作するオペレーティング・システムまたはアプリケーション・プログラムは、コンピュータ・システムのすべての部分にアクセスできるように思えるが、実際には、コンピュータ・システムの一部のみが利用できる。ハードウェアと（一般にマイクロコードと呼ばれる）ライセンス内部コードの組合せによって、論理パーティション内のプログラムは、異なる論理パーティション内のプログラムに干渉しないようになる。これによって、複数の異なる論理パーティションが、タイム・スライス方式により単一の物理プロセッサで動作することが可能になる。この具体的な例では、各論理パーティションには、オペレーティング・システム１１０が常駐し、オペレーティング・システムは、１つまたは複数の論理パーティション毎に異なることができる。本発明の一実施形態では、オペレーティング・システム１１０は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するｚ／ＯＳオペレーティング・システムとする。
【００１９】
中央プロセッサ１０６は、論理パーティションに割り当てられる物理プロセッサ資源である。例えば、１つの論理パーティション１０４は、１つまたは複数の論理プロセッサを含み、論理プロセッサの各々は、そのパーティションに割り当てられた物理プロセッサ資源１０６の全体または共用を表す。論理パーティション１０４の論理プロセッサは、そのパーティション専用にして、下位のプロセッサ資源をそのパーティション用に確保しておくことができ、あるいは別のパーティションとの共用にして、下位のプロセッサ資源を別のパーティションも潜在的に利用可能なようにすることもできる。
【００２０】
論理パーティション１０４は、プロセッサ１０６で動作するマイクロコードによって実装されるハイパーバイザ１０８によって管理される。論理パーティション１０４とハイパーバイザ１０８の各々は、中央プロセッサに関連づけられた、中央ストレージのそれぞれの部分に置かれた１つまたは複数のプログラムを含む。ハイパーバイザ１０８の一例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するプロセッサ資源／システム管理機構（ＰＲ／ＳＭ：Processor Resource/Systems Manager）である。
【００２１】
中央プロセッサ複合に結合されたコントローラ１２０は、要求を発行する異なるプロセッサ間の調停を担う集中化ロジックを含む。例えば、コントローラ１２０は、要求を受信すると、その要求のリクエスタをマスタ・プロセッサとし、その他のプロセッサをスレーブ・プロセッサとすることを決定し、メッセージをブロードキャストし、そうでなければ要求を処理する。コントローラの一例が、Webbらの「System Serialization With Early Release Of IndividualProcessor」と題する米国特許第６，１１９，２１９号（２０００年９月１２日）記載されている。図２を参照しながら、より詳細に説明を行う。
【００２２】
図２には、複数の中央プロセッサ（ＣＰＵ）２０１に結合されたコントローラ２００の一例が示されている。この例では、２つの中央プロセッサが示されている。しかし、３つ以上の中央プロセッサをコントローラ２００に結合できることは理解されよう。
【００２３】
コントローラ２００は、例えば、システム直列化コントロール２０２を始めとする様々なコントロールを含む。システム直列化コントロールは、セット・ストレージ・キー拡張（ＳＳＫＥ）命令など直列化すべき操作を確実に直列化するのに使用される。ここで言う直列化とは、コンピューティング環境内では同時に１つの命令しか進行しないことを言う。システム直列化コントロールは、直列化すべき操作についてイベントの順序もモニタする。
【００２４】
コントローラ２００は、様々なインターフェースを介して、各中央プロセッサに結合される。例えば、インターフェース２０４は、行うべき動作を指定する「コントロール」コマンドを中央プロセッサ内のライセンス内部コードがコントローラに送信する際に使用され、コントローラからの情報を返す「センス」コマンドを送信する際にも使用される。別のインターフェースに、「センス」コマンドで要求した情報をコントローラから返送する際に使用される応答バス２０６がある。応答バスは、「コントロール」コマンドのコマンド・ステータスを伝達するのにも使用され、システム直列化コントロールを始めとするコントローラ内の複数の送信元からセットすることができる。中央プロセッサはこのインターフェースを使用して、コントローラ２００内のシステム直列化コントロールの状態をセンスすることができる。
【００２５】
また別のインターフェースに、コントローラが各ＣＰＵにコマンドを送信する際に使用されるインターフェース２０８がある。このインターフェースも、システム直列化コントロール２０２を始めとするコントローラ内の複数の送信元から制御することができる。さらに別のインターフェースに、中央プロセッサ２０１のキャッシュ・コントロール２１２に信号を提供するインターフェース２１０がある。キャッシュ・コントロール２１２は、信号に応答してコマンドを処理する。一例では、キャッシュ・コントロール２１２は、以下でより詳細に説明するように、変換索引バッファ（ＴＬＢ：Translation Lookaside Buffers）２１３など１つまたは複数のバッファに影響を及ぼすコマンドを処理する。
【００２６】
キャッシュ・コントロール２１２の他に、中央プロセッサ２０１は、例えば、割り込みコントロール２２０や実行コントロール２２２を始めとする、様々な他のコントロールを含む。特定のイベントに応答して、割り込みコントロール２２０は、ＣＰＵ内で内部割り込みを保留状態にし、このことが、実行コントロール２２２に次の割り込み可能ポイントでプログラム命令の処理を一時停止させる。割り込みに応答して、実行コントロール２２２は、ライセンス内部コード・ルーチンを起動して、キャッシュ・コントロール２１２が保留中コマンドを処理できるように、ブロードキャスト操作許可ラッチ２２４をセットする。
【００２７】
中央プロセッサ２０１はまた、中央プロセッサが休止させられているかどうかを示すＣＰＵ休止ラッチ２２６も含む。
【００２８】
上述のコンピューティング環境は、単なる一例であるに過ぎない。本発明の主旨から逸脱することなく、多くの変形が可能である。例えば、１つまたは複数のパーティションは、異なるアーキテクチャ態様においても動作することができる。さらに、別の例として、上述の環境は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づく必要はなく、代りに、インテル、サン・マイクロシステムズ、その他によって提供される他のアーキテクチャに基づくことができる。さらに、コンピューティング環境は、エミュレータ（例えば、ソフトウェアまたはその他のエミュレーション機構）を含むことができ、その中である特定のアーキテクチャまたはサブセットがエミュレートされる。そのような環境では、エミュレータを実行するコンピュータが、エミュレートされる機能とは異なるアーキテクチャをもっているとしても、エミュレータの１つまたは複数のエミュレーション機能が、本発明の１つまたは複数の態様を実施することができる。一例として、エミュレーション・モードでは、エミュレートされる特定の命令または操作がデコードされ、個々の命令または操作を実施するために、適切なエミュレーション機能が組み立てられる。
【００２９】
個々のプロセッサは命令を実行し、さらにその他の処理も行う。場合によっては、ある特定の命令の処理が、コンピューティング環境の１つまたは複数の他のプロセッサの処理に処理制約を課す。しかし、本発明の一態様によれば、それらの制約を無視できる状況が存在する。したがって、ある状況では、プロセッサは処理制約をフィルタに掛け、その制約をブロック（すなわち、無視）することができる。このことについて以下でより詳細に説明する。
【００３０】
本明細書で説明する一例は、セット・ストレージ・キー拡張（ＳＳＫＥ）命令の実行に関連する。セット・ストレージ・キー拡張命令の例は、「z/Architecture Principles of Operation」と題するＩＢＭ（登録商標）発行物、ＩＢＭ発行番号第ＳＡ２２―７８３２―００（２０００年１２月）に記載されている。
【００３１】
セット・ストレージ・キー拡張命令は、その命令に関連するバッファ内のエントリを、１つまたは複数のプロセッサにパージさせる。例えば、各プロセッサは、プロセッサ内に配置され、プロセッサに関連づけられた、変換索引バッファ（ＴＬＢ）と呼ばれる１つまたは複数のバッファを備えるとする。変換索引バッファは、仮想アドレスを実アドレスに変換する際に、動的アドレス変換（ＤＡＴ）機構がパフォーマンスを向上させるために使用する。すなわち、動的アドレス変換機構が使用する何らかの情報が、より高速なアクセスを実現するためにバッファ内に維持される。例えば、領域テーブル、セグメント・テーブル、またはページ・テーブル内、あるいはそれらの組合せの内で指定される様々な情報がバッファ内に維持される。
【００３２】
アドレス変換用の情報の他に、高速アクセス実現のためストレージ・キーもバッファ内に維持される。ストレージ・キーは、ＤＡＴが生成した実アドレスに関連づけられた記憶域をアクセスするのに使用される。具体的には、実アドレスは、主記憶域をアクセスするのに使用される絶対アドレスを提供するために、例えば、プレフィックスによって変換される。したがって、プレフィックスを付加した後、絶対アドレスは実アドレスであると言われる。絶対記憶域（すなわち、絶対アドレス順に並んだロケーションを含む記憶域）の各ページには、ページの記憶保護に使用されるストレージ・キーが関連づけられる。
【００３３】
本発明の一実施形態では、ストレージ・キーは、例えば、以下のフィールドを含む。
【００３４】
（Ａ）プログラムが主記憶域の対象ページへのストアを許可されているがどうかを示すアクセス制御フィールド。このフィールドをプログラム状態語（ＰＳＷ）中のＰＳＷキーと比較して、判定が行われる。
【００３５】
（Ｂ）Ａのアクセス制御フィールドがＰＳＷ中のキーと一致しない場合、対象ページがフェッチ保護されているかどうかを示すフェッチ保護フィールド。
【００３６】
（Ｃ）ページにストアが行われたかどうかを示す変更フィールド。
【００３７】
（Ｄ）ページがアクセスされたかどうかを示す参照フィールド。
【００３８】
ストレージ・キーは一般に、仮想アドレス−実アドレス変換とは別個の、ただし並列実行可能な操作でＴＬＢ内にフェッチされる。
【００３９】
バッファ内のエントリをパージするため、コンピューティング環境内のプロセッサは、データが破損されないように休止状態に置かれる。この休止状態にある間、環境内のプロセッサには、例えば、ＴＬＢ内でバッファ・ミスが発生した場合にはストレージ・キーのフェッチを実行できなくするよう指示する制約が課される。しかし、本発明の一態様によれば、この制約はフィルタに掛けられ、処理を続行できるよう無視されることもあり得る。これについて図３〜図９を参照しながらより詳細に説明する。具体的には、図３には、本発明の一態様に関連するロジックの一実施形態が示されており、図４〜図９では、ＳＳＫＥ命令を実行する具体的な一例についてより詳細な説明が提供される。
【００４０】
最初に図３を参照すると、コンピューティング環境で動作するプロセッサが、処理制約を受けるようになる（ステップ３００）。一例では、プロセッサが休止状態に置かれた時に、こうしたことが生じる。休止状態に置かれたことに応答して、プロセッサは一定の制約下で処理を続行する。例えば、プロセッサの１つまたは複数のＴＬＢでバッファ・ミスが発生した場合には、プロセッサは処理を機能停止する。
【００４１】
プロセッサは、制約条件を満たすまで処理を続行する（ステップ３０２）。例えば、プロセッサのＴＬＢでバッファ・ミスが発生するまで、プロセッサは処理を続行する。その後、本発明の一態様によれば、制約条件が満たされていてもプロセッサが操作を続行できるかどうかについて判定が行われる（照会３０４）。すなわち、制約をブロックできるかどうかについて決定が下される。一例では、この判定はアドレスに基づいて行われる。例えば、フェッチされるストレージ・キーに関連するアドレス（例えば、実アドレス、絶対アドレス、またはその他のアドレス）とプロセッサによって以前にセーブされたアドレスとの比較が行われる。アドレスが等しい場合、処理は機能停止させられる（ステップ３０６）。しかし、アドレスが等しくない場合、制約条件が満たされていても操作を実行することができる（ステップ３０８）。
【００４２】
本発明の１つまたは複数の態様の処理について、図４〜図９を参照しながら、より詳細に説明する。３つのプロセッサが示されているが、いくつでもプロセッサを使用できることは理解されよう。図４を参照すると、命令４０２（例えば、ＳＳＫＥ命令）を実行するプロセッサ４００が、命令を処理する一部としてブロードキャスト要求４０４（例えば、休止要求）を発行する。この要求は、この例では、コントローラ４０６に転送される。本明細書では、要求を発行したプロセッサをマスタ・プロセッサと呼び、その他のプロセッサをスレーブ・プロセッサと呼ぶ。プロセッサはコントローラ４０６に結合される。
【００４３】
マスタ・プロセッサからブロードキャスト特性の要求を受信したのに応答して、コントローラ４０６は、要求（４０８）をスレーブ・プロセッサに転送する。各プロセッサは、例えば、その現在の状態に応じて、適切な方式で要求を処理する。
【００４４】
例えば、図５に示すように、ＣＰ２は実行時間の長い命令（５００）を実行しており、そのため、今すぐには休止要求に応じられず、ＣＰ２では休止要求は実施保留の状態になる。一方、ＣＰ０は休止ポイントに達したことを知らせる応答をコントローラに返し（５０２）、休止要求に関連する操作を実行する。この操作は、１つまたは複数のＴＬＢからエントリをパージする操作を含む（５０４）。さらに、本発明の一態様によれば、ＣＰ０は、要求の実アドレスの少なくとも一部を後の使用に備えてセーブする（５０６）。一例では、実アドレスの一部（例えば、４〜６ビット）がセーブされる。しかし、他の例では、実アドレス全体も含む違う数のビットをセーブすることができる。さらに、他の例では、別のタイプのアドレスを使用することができる。例えば、要求によって提供される実アドレスを、比較に使用される絶対アドレスに変換することができる。さらに、要求は、絶対アドレスまたはその他のタイプのアドレスなど実アドレス以外のアドレスを提供することができる。
【００４５】
ＣＰ０が休止ポイントに達したことをコントローラに通知したので、本発明の一実施形態では、コントローラはそのプロセッサに対する信号をセットする（図６参照）。この信号は、例えば、ＴＬＢミスが発生した場合にはスレーブ・プロセッサは続行を許可されないことを示す、ブロック変換（ｂｌｋ＿ｘｌａｔ）信号（６００）とする。すなわち、スレーブ・プロセッサは、ＴＬＢミスが発生した場合にはストレージ・キーのフェッチの実行は許可されないことを通知される。しかし、本発明の一態様によれば、信号を無視するかどうかを決定する、さらなる処理が実行される。
【００４６】
例えば、ＣＰ０のＴＬＢでストレージ・キーについてのバッファ・ミスが発生した場合、ＣＰ０はストレージ・キーのフェッチを実行しようと試みる。フェッチの最中に、ＣＰ０は、フェッチされるストレージ・キーに関連する実アドレスの少なくとも一部を、ブロードキャストＳＳＫＥ操作から取得しセーブした実アドレスと比較する。２つのアドレスが一致しない場合、プロセッサは、フェッチを続行し、通常実行を再開することを許可される。しかし、それらが一致した場合、プロセッサは機能停止し、ｂｌｋ＿ｘｌａｔ信号がドロップするのを待つ（一例では、比較はフェッチの最中に１つまたは複数のステップで実行され、比較結果に応じて、処理は続行され、あるいは機能停止される）。
【００４７】
図７を参照すると、上述の制約下でＣＰ０が命令を実行し続けているところが示されている。これらの制約は、ｂｌｋ＿ｘｌａｔ信号（７００）がドロップするまで継続する。さらに、ＣＰ２がようやく実行時間の長い命令を終了し、休止割り込みを受け入れられるようになったことが示されている。したがって、ＣＰ２は休止ポイントに達したことを知らせる応答をコントローラに返す（７０２）。さらに、ＣＰ２は、ブロードキャストＳＳＫＥ操作に関連する、そのＴＬＢの適切なエントリをパージし、実アドレスの少なくとも一部を後の使用に備えてセーブする（７０４）。
【００４８】
ＣＰ２から休止通知を受信したのに応答して、コントローラはＣＰ２に対するｂｌｋ＿ｘｌａｔ信号をセットし（７０６）、ＣＰ２はＣＰ０に課されているのと同じ制約を課されるようになる。さらに、コントローラは、システム内の最後のプロセッサが休止ポイントに達し、システムが休止状態に置かれたことを知らせる通知を休止マスタ・プロセッサＣＰ１に返す（７０８）。
【００４９】
システムが休止状態にあるので、マスタ・プロセッサは、記憶域のストレージ・キーを変更する（図８の８００）。一例では、これには、ライセンス内部コードによる、必要に応じてキーを変更するための低レベル・コマンドの発行が含まれる。変更の完了に応答して、マスタ・プロセッサは、休止の解除を指示する信号をコントローラに送信する（８０２）。一方、ＣＰ０およびＣＰ２は、制約を受けながら通常実行を継続する（８０４）。
【００５０】
解除指示の受信に応答して、コントローラは休止を解除し、ＣＰ０、ＣＰ１、およびＣＰ２は、制約を受けない通常実行（９００−図９）を再開する。以前コントローラによってアクティブにされたｂｌｋ＿ｘｌａｔ信号は、もはやアクティブではなくなる。
【００５１】
ある条件下で制約をブロック（ずなわち、無視）できるようにする機能について、上で詳細に説明した。これによって、有利には、休止によるプロセッサの機能停止時間が短縮され、システム・パフォーマンスが向上する。このパフォーマンス向上は、大規模ＳＭＰ環境を始めとする多くの環境で見出すことができた。例えば、本発明の１つまたは複数の機能は、以下に示すように、システム・パフォーマンスを改善する。これまで１６ウェイＳＭＰシステムでは、システムの休止およびｂｌｋ＿ｘｌａｔのドロップを待って機能停止することに、全時間の１０％が費やされていた。このパフォーマンス低下は、ＳＭＰシステム内のプロセッサ数の２乗にほぼ比例して増大する。本発明の１つまたは複数の態様を使用することで、パフォーマンス低下が著しく抑制される。
【００５２】
上述の例ではＳＳＫＥ命令に関して説明を行ったが、本発明の１つまたは複数の態様は、同じアーキテクチャまたは異なるアーキテクチャにおいて上記の命令と類似または等価な命令を始めとする、その他の命令にも適用可能である。
【００５３】
本発明の主旨から逸脱することなく、上述の実施形態に多くの変形を施すことが可能である。例えば、本発明の１つまたは複数の態様は、例えば、１つまたは複数のページ可能エンティティ（例えば、ゲスト）が１つまたは複数のプロセッサで動作する仮想マシン・エミュレータにも適用可能である。一例として、ページ可能ゲストは、スタート解釈実行（ＳＩＥ：Start Interpretive Execution）アーキテクチャによって定義され、このアーキテクチャの一例は、「System/370Extended Architecture」と題するＩＢＭ（登録商標）発行物、ＩＢＭ発行番号ＳＡ２２―７０９５（１９８５年）に記載がある。
【００５４】
上述の例ではＳＩＥおよびｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに関して説明を行ったが、本発明の１つまたは複数の態様は、ページ可能エンティティまたは類似の構造を利用する他のアーキテクチャまたは環境、あるいはその両方にも等しく適用可能である。
【００５５】
さらに、上述の様々な実施形態は単なる例にすぎない。本発明の主旨から逸脱することなく、これらの実施形態に多くの変形を施すことが可能である。例えば、本明細書では、論理的にパーティション化された環境について説明したが、これはほんの一例にすぎない。本発明の態様は、複数のゾーンをもつ他の環境およびパーティション化されていない環境を始めとする多くのタイプの環境で有益である。さらに、中央プロセッサ複合をもたずに、互いに結合された複数のプロセッサをもつことができる。さらに、本発明の１つまたは複数の態様は、単一のプロセッサ環境にも適用可能である。
【００５６】
本明細書ではある特定の環境について説明を行ったが、繰り返すと、本発明の主旨から逸脱することなく、この環境に多くの変形を実施することが可能である。例えば、環境が論理的にパーティション化されている場合、より多いまたはより少ない論理パーティションを環境にもたせることができる。一般に、１つのパーティションで使用される絶対記憶アドレスに、別のパーティションがアクセスすることはできない。さらに、複数の中央プロセッサ複合を互いに結合することができる。これらは、本発明の主旨から逸脱することなく実施できる変形のいくつかであるに過ぎない。さらに、他の変形も可能である。例えば、本発明で説明したコントローラは、同時に１つのブロードキャスト命令が実行されるように命令を直列化するが、別の実施形態では、同時に複数の命令を実行することができる。さらに、環境に複数のコントローラが存在してよい。さらに、このシステムでは（１つまたは複数のコントローラから）複数の休止要求を同時に発行することができる。このシナリオでは、複数のアドレスがセーブされ、複数の比較が実行される。例えば、すべての比較が不一致となった場合、処理が続行する。この他の変形も可能である。
【００５７】
有利には、本発明の１つまたは複数の態様は、本出願と共に出願されたSlegelらの「FilteringProcessor Requests Based On Identifiers」と題する米国特許出願（ＩＢＭ整理番号ＰＯＵ９２００３００４７ＵＳ１）、および本出願と共に出願されたSlegelらの「BlockingProcessing Restrictions Based On Page Indices」と題する米国特許出願（ＩＢＭ整理番号ＰＯＵ９２００３００４８ＵＳ１）に記載の、１つまたは複数の他の発明の１つまたは複数の態様と共に、パフォーマンス向上のために使用することができる。
【００５８】
本明細書で使用する「プロセッシング・ユニット」という語には、ゲスト、プロセッサ、エミュレータ、またはその他の類似のコンポーネント、あるいはそれらの組合せなどの、ページ可能エンティティが含まれる。さらに、「プロセッシング・ユニットによって」という言葉には、プロセッシング・ユニットを代行することも含まれる。「取得する」という語には、受信し、所有し、提供を受け、何かの指示を受信することなどが含まれるが、これらに限定されるものではない。さらに、「バッファ」という語には、記憶領域の他、アレイを始めとする（アレイに限定されない）異なるタイプのデータ構造が含まれる。
【００５９】
本発明の機能は、ソフトウェア、ファームウェア、ハードウェア、あるいはそれらの組合せによって実装することができる。
【００６０】
一例として、本発明の１つまたは複数の態様は、例えば、コンピュータが使用できる媒体を備えた製造物品（例えば、１つまたは複数のコンピュータ・プログラム製品）に含まれ得る。媒体はその中に、例えば、本発明の機能を提供し促進するコンピュータ可読プログラム・コード手段またはロジック（例えば、命令、コード、コマンドなど）を含む。製造物品は、コンピュータ・システムの一部に含めることができ、別途販売することもできる。
【００６１】
さらに、本発明の機能を実行するための、マシンによって実行可能な命令で成る少なくとも１つのプログラムを含む、マシン可読の少なくとも１つのプログラム記憶装置を提供することができる。
【００６２】
本明細書に示すフローチャートは単なる例に過ぎない。本発明の主旨から逸脱することなく、本明細書に記載のこれらのチャートまたはステップ（または操作）に多くの変形を施すことができる。例えば、ステップを異なる順序で実行することができ、またはステップを追加、削除、変更することができる。こうした変形のすべては、特許請求される本発明の一部と見なされる。
【００６３】
本明細書では、好ましい実施形態を示し、それを詳細に説明したが、本発明の主旨から逸脱することなく、様々な変更、追加、置き換え、その他を実施することができ、したがって、それらが添付の特許請求の範囲で定義される本発明の範囲に包含されると見なされることは、当業者には明らかであろう。
【００６４】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６５】
（１）コンピュータ環境での処理を促進する方法であって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
前記判定に応じて、前記フェッチを続行するステップと
を含む、方法。
（２）前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、上記（１）に記載の方法。
（３）前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記（２）に記載の方法。
（４）前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、上記（２）に記載の方法。
（５）前記プロセッシング・ユニットが、プロセッサを含む、上記（４）に記載の方法。
（６）前記１つのアドレスが、実アドレスと絶対アドレスの一方であり、前記別のアドレスが、実アドレスと絶対アドレスの一方である、上記（４）に記載の方法。
（７）前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、上記（４）に記載の方法。
（８）前記判定ステップが、前記１つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、上記（２）に記載の方法。
（９）前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、上記（１）に記載の方法。
（１０）前記バッファが、変換索引バッファである、上記（９）に記載の方法。
（１１）休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、上記（１）に記載の方法。
（１２）前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、上記（１１）に記載の方法。
（１３）コンピュータ環境での処理を促進する方法であって、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
前記処理制約をブロックできるかどうか判定するステップと、
前記判定に応じて、処理を続行するステップと
を含む、方法。
（１４）前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、上記（１３）に記載の方法。
（１５）前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記（１４）に記載の方法。
（１６）前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、上記（１５）に記載の方法。
（１７）コンピュータ環境での処理を促進するシステムであって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定する手段と、
前記判定に応じて、前記フェッチを続行する手段と
を含む、システム。
（１８）前記判定手段が、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記フェッチの続行を指示する、上記（１７）に記載のシステム。
（１９）前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記（１８）に記載のシステム。
（２０）前記フェッチ手段が、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、上記（１８）に記載のシステム。
（２１）前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、上記（２０）に記載のシステム。
（２２）前記判定手段が、前記１つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較する手段を含み、複数の不一致が前記フェッチの続行を指示する、上記（１８）に記載のシステム。
（２３）前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、上記（１７）に記載のシステム。
（２４）休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得する手段をさらに含む、上記（１７）に記載のシステム。
（２５）前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、上記（２４）に記載のシステム。
（２６）コンピュータ環境での処理を促進するシステムであって、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する手段と
前記処理制約をブロックできるかどうか判定する手段と、
前記判定に応じて、処理を続行する手段と
を含む、システム。
（２７）前記判定手段が、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較する手段を含み、不一致が前記制約のブロックを指示する、上記（２６）に記載のシステム。
（２８）前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記（２７）に記載のシステム。
（２９）前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、上記（２８）に記載のシステム。
（３０）コンピュータ環境での処理を促進するシステムであって、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するプロセッシング・ユニットを含み、
前記プロセッシング・ユニットが、前記判定に応じて、前記フェッチを続行する、
システム。
（３１）コンピュータ環境での処理を促進するシステムであって、
バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得する前記コンピュータ環境のプロセッシング・ユニットを含み、
前記プロセッシング・ユニットが、前記処理制約をブロックできるかどうか判定し、前記判定に応じて、処理を続行するシステム。
（３２）コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも１つのプログラムを含む、マシン可読の少なくとも１つのプログラム記憶装置であって、前記方法が、
ストレージ・キーのフェッチを禁止する制約条件が満たされていても、前記フェッチを続行できるかどうか判定するステップと、
前記判定に応じて、前記フェッチを続行するステップと
を含む、少なくとも１つのプログラム記憶装置。
（３３）前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記フェッチの続行を指示する、上記（３２）に記載の少なくとも１つのプログラム記憶装置。
（３４）前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記（３３）に記載の少なくとも１つのプログラム記憶装置。
（３５）前記フェッチ・ステップが、プロセッシング・ユニットによって実行され、前記別のアドレスが、前記プロセッシング・ユニットによって取得される要求に関連するアドレスを含む、上記（３３）に記載の少なくとも１つのプログラム記憶装置。
（３６）前記要求が、別のプロセッシング・ユニットによる処理に応答して起動されるブロードキャスト・パージ操作を含む、上記（３５）に記載の少なくとも１つのプログラム記憶装置。
（３７）前記判定ステップが、前記１つのアドレスの少なくとも一部を複数の別のアドレスの少なくとも一部と比較するステップを含み、複数の不一致が前記フェッチの続行を指示する、上記（３２）に記載の少なくとも１つのプログラム記憶装置。
（３８）前記制約が、バッファ・ミスに応答してフェッチを禁止する指示を含む、上記（３２）に記載の少なくとも１つのプログラム記憶装置。
（３９）前記方法が、休止要求に応答して、前記フェッチを実行できるプロセッシング・ユニットによって前記制約の指示を取得するステップをさらに含む、上記（３２）に記載の少なくとも１つのプログラム記憶装置。
（４０）前記休止要求が、前記コンピュータ環境の別のプロセッシング・ユニットによる、ストレージ・キーをセットする命令の実行に応答したものである、上記（３９）に記載の少なくとも１つのプログラム記憶装置。
（４１）コンピューティング環境での処理を促進する方法を実行するための、マシンによって実行可能な命令で成る少なくとも１つのプログラムを含む、マシン可読の少なくとも１つのプログラム記憶装置であって、前記方法が、
前記コンピュータ環境のプロセッシング・ユニットが、バッファ・ミスに対してストレージ・キーのフェッチを禁止する処理制約に応答して、処理を機能停止する指示を取得するステップと、
前記処理制約をブロックできるかどうか判定するステップと、
前記判定に応じて、処理を続行するステップと
を含む、少なくとも１つのプログラム記憶装置。
（４２）前記判定ステップが、１つのアドレスの少なくとも一部を別のアドレスの少なくとも一部と比較するステップを含み、不一致が前記制約のブロックを指示する、上記（４１）に記載の少なくとも１つのプログラム記憶装置。
（４３）前記１つのアドレスが、フェッチされる前記ストレージ・キーと関連するアドレスを含む、上記（４２）に記載の少なくとも１つのプログラム記憶装置。
（４４）前記別のアドレスが、要求に関連するアドレスを含み、前記要求の指示が前記プロセッシング・ユニットによって取得される、上記（４３）に記載の少なくとも１つのプログラム記憶装置。
【図面の簡単な説明】
【００６６】
【図１】本発明の１つまたは複数の態様を組み込み、使用する、コンピューティング環境の一実施形態を示した図である。
【図２】本発明の一態様による、図１のコントローラについてより詳細に示した一実施形態の図である。
【図３】本発明の一態様による、操作に制約が課されていてもその操作を実行できるかどうか判定するロジックの一実施形態を示した図である。
【図４】本発明の一態様による、セット・ストレージ・キー拡張（ＳＳＫＥ）命令を実行し、スレーブ・プロセッサに要求を転送するコントローラにブロードキャスト要求を発行するマスタ・プロセッサの一例を示した図である。
【図５】本発明の一態様による、図４のコントローラによって送信された要求に応答するスレーブ・プロセッサの一例を示した図である。
【図６】本発明の一態様による、スレーブ・プロセッサに課された処理制約とそのプロセッサに関連する処理の一例を示した図である。
【図７】本発明の一態様による、セット・ストレージ・キー拡張命令に関連してプロセッサによって実行される別の処理の一例を示した図である。
【図８】本発明の一態様による、休止解除要求をコントローラに送信するマスタ・プロセッサを示した図である。
【図９】本発明の一態様による、休止が解除された後のプロセッサの通常実行を示した図である。
【符号の説明】
【００６７】
１００  コンピューティング環境
１０２  中央プロセッサ複合（ＣＰＣ）
１０４  論理パーティション
１０６  中央プロセッサ
１０８  ハイパーバイザ
１１０  オペレーティング・システム
１２０  コントローラ
２００  コントローラ
２０１  中央プロセッサ
２０２  システム直列化コントロール
２０４  インターフェース
２０６  応答バス
２０８  インターフェース
２１０  インターフェース
２１２  キャッシュ・コントロール
２１３  変換索引バッファ（ＴＬＢ）
２２０  割り込みコントロール
２２２  実行コントロール
２２４  ブロードキャスト操作許可ラッチ
２２６  ＣＰＵ休止ラッチ
４００  プロセッサ
４０２  命令
４０４  ブロードキャスト要求
４０６  コントローラ
４０８  要求
５００  実行時間の長い命令
５０２  休止ポイントに達したことを通知
５０４  ＴＬＢからエントリをパージ
５０６  アドレスをセーブ
６００  変換凍結（ｂｌｋ＿ｘｌａｔ）信号
７００  ｂｌｋ＿ｘｌａｔ信号
７０２  休止ポイントに達したことを通知
７０４  アドレスをセーブ
７０６  ｂｌｋ＿ｘｌａｔ信号をセット
７０８  システムが休止状態に置かれたことを通知
８００  マスタ・プロセッサがストレージ・キーを変更
８０２  休止解除信号を送信
８０４  制約を受けながら通常実行
９００  通常実行
【図１】
2004342099.tif 000003
【図２】
2004342099.tif 000004
【図３】
2004342099.tif 000005
【図４】
2004342099.tif 000006
【図５】
2004342099.tif 000007
【図６】
2004342099.tif 000008
【図７】
2004342099.tif 000009
【図８】
2004342099.tif 000010
【図９】
2004342099.tif 000011