(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムにおいて、アドレス変換バッファを消去するため、および関連するストレージのアドレス変換テーブル・エントリの範囲を無効化するための方法であって、
前記コンピュータ・システムはメイン・ストレージと通信する１つまたは複数の中央処理ユニットを有し、前記中央処理ユニットは汎用レジスタを有し、前記中央処理ユニットはアドレス変換バッファを有し、前記アドレス変換バッファはアドレス変換情報を保持するアドレス変換バッファ・エントリを有し、前記コンピュータ・システムはページ・テーブル、および１つまたは複数の処理ユニットのうちの１つの中央処理ユニットの仮想メイン・ストレージ・アドレスを前記コンピュータ・システムのメイン・ストレージ・アドレスに変換するためアドレス変換テーブルを有し、前記アドレス変換テーブルは、
１つまたは複数のセグメント・テーブルと、
１つまたは複数のセグメント・テーブルおよび１つまたは複数の第１領域テーブルと、
１つまたは複数のセグメント・テーブル、１つまたは複数の第１領域テーブル、および１つまたは複数の第２領域テーブルと、
１つまたは複数のセグメント・テーブル、１つまたは複数の第１領域テーブル、１つまたは複数の第２領域テーブル、および１つまたは複数の第３領域テーブルと、
のうちのいずれか１つを有し、
セグメント・テーブル・エントリはページ・テーブル起点を有し、
前記方法は、
動的アドレス変換テーブル・エントリ無効化（ＩＤＴＥ）命令を取り出すステップであって、前記ＩＤＴＥ命令は、命令をＩＤＴＥ命令として識別するオペレーション・コード・フィールド値を有するオペレーション・コード・フィールドを有し、前記ＩＤＴＥ命令は第１機能または第２機能のいずれかを実行するためのものであり、前記第１機能は無効化および消去の両オペレーションを有し、前記第２機能は消去オペレーションを有するが無効オペレーションは有さない、取り出すステップと、
前記ＩＤＴＥ命令を実行するステップと、
を有し、前記実行するステップは、
前記取り出されたＩＤＴＥ命令の機能のインジケーションを有する第２情報を検索するステップと、
前記取り出されたＩＤＴＥ命令の機能が無効化および消去オペレーションからなる場合、
１）アドレス変換テーブルの１つまたは複数のアドレス変換テーブル・エントリのうちの、所定のアドレス変換テーブル・エントリの場所から始まる所定の範囲を無効化するステップと、
２）前記無効化された１つまたは複数のアドレス変換テーブル・エントリに関連付けられたアドレス変換バッファのアドレス変換バッファ・エントリを消去するステップと、
前記取り出されたＩＤＴＥ命令の前記機能が消去オペレーションのみからなる場合、
前記１つまたは複数のアドレス変換テーブル・エントリに関連付けられたアドレス変換バッファのアドレス変換バッファ・エントリを消去するステップであって、前記１つまたは複数のアドレス変換テーブル・エントリが、アドレス変換テーブルのうちの、所定のアドレス変換テーブル・エントリの場所から始まる所定の範囲の１つまたは複数のアドレス変換テーブル・エントリを有する、消去するステップと、
を実行する、方法。
【請求項２】
前記中央処理ユニットが前記メイン・ストレージから命令を取り出すステップをさらに有し、前記命令は、
前記命令の機能を示すための命令オペレーション・コード・フィールドと、
無効化用のアドレス変換テーブル起点場所を有する第１の情報の位置を指定するための第１のフィールドと、
第２の情報の位置を指定するための第２のフィールドとを有し、
前記第２の情報は範囲値を有し、前記範囲値は無効化されることになるいくつかの追加エントリを示し、
前記命令は第３の情報の位置を指定するための第３のフィールドをさらに有し、前記第３の情報は消去用のアドレス変換テーブル起点を有し、
前記取り出された命令の前記命令オペレーション・コード・フィールドを復号するステップをさらに有する、
請求項１に記載の方法。
【請求項３】
前記取り出されたＩＤＴＥ命令の前記機能が無効化および消去オペレーションからなる場合、
ａ）前記第１の情報を検索するステップと、
ｂ）無効化されることになるアドレス変換テーブル・エントリの範囲を決定するステップと、
ｃ）前記第１の情報および前記第２の情報に基づいて、無効化されることになるアドレス変換テーブル・エントリを決定するステップと、
ｄ）前記決定されたアドレス変換テーブル・エントリを無効化するステップと、
ｅ）アドレス変換バッファのアドレス変換バッファ・エントリのうちの所定のアドレス変換バッファ・エントリ部分が消去用の値を含むかどうかを判定するステップと、
ｆ）消去用のアドレスの値を有すると判定されたアドレス変換バッファ・エントリを消去するステップと、
ｇ）影響を受けるすべてのアドレス変換バッファ・エントリに対してステップｃ）〜ｇ）を反復するステップと、
をさらに実行する、請求項２に記載の方法。
【請求項４】
前記取り出されたＩＤＴＥ命令の前記機能が消去オペレーションのみからなる場合、
ｈ）前記第３の情報が存在する場合、前記第３の情報を検索するステップと、
ｉ）前記第３の情報が存在しない場合、前記第３の情報を形成するステップと、
ｊ）アドレス変換バッファのアドレス変換バッファ・エントリのうちの所定のアドレス変換バッファ・エントリ部分が前記第３の情報を含むかどうかを判定するステップと、
ｋ）消去用のアドレス変換テーブル起点の値を有すると判定されたアドレス変換バッファ・エントリを消去するステップと、
ｌ）複数のアドレス変換バッファ・エントリに対してステップｊ）〜ｌ）を反復するステップと、
をさらに実行する、請求項２に記載の方法。
【請求項５】
前記ＩＤＴＥ命令が３２の連続ビットからなり、前記オペレーション・コード・フィールドが１６の連続ビットからなり、前記第１のフィールドが４つの連続ビットからなり、前記第２のフィールドが４つの連続ビットからなり、前記第３のフィールドが４つの連続ビットからなり、前記第１のフィールドの連続ビットが前記第２のフィールドの連続ビットに隣接する、請求項２に記載の方法。
【請求項６】
前記第１のフィールドが第１の汎用レジスタ内の第１の情報の位置を指定し、前記無効化用のアドレス変換テーブル起点場所が領域テーブルまたはセグメント・テーブルのうちのいずれか１つのアドレスを有する、請求項２に記載の方法。
【請求項７】
前記第１の情報が、１つまたは複数の無効化用の領域テーブル、あるいは無効化用のセグメント・テーブルのうちの、いずれか１つを指定するための指定タイプ・コントロール・フィールドをさらに有する、請求項６に記載の方法。
【請求項８】
前記第２の情報が、第１の領域索引フィールド、第２の領域索引フィールド、第３の領域索引フィールド、またはセグメント索引フィールドのうちのいずれか１つをさらに有する、請求項２に記載の方法。
【請求項９】
前記第２の情報が、消去オペレーションのみが実行されることになる機能のインジケーションをさらに有する、請求項２に記載の方法。
【請求項１０】
前記第３のフィールドが第３の汎用レジスタ内の前記第３の情報の位置を指定し、前記消去用のアドレス変換テーブル起点が、消去用の領域テーブル起点、または消去用のセグメント・テーブル起点のうちのいずれか１つを有する、請求項２に記載の方法。
【請求項１１】
前記第３のフィールドが０である場合、任意のエントリが消去される、請求項２に記載の方法。
【請求項１２】
前記ＩＤＴＥ命令の命令フォーマットが前記中央処理ユニットの命令アーキテクチャに固有のフォーマットである、請求項１に記載の方法。
【請求項１３】
前記ＩＤＴＥ命令の命令フォーマットが前記中央処理ユニットの命令アーキテクチャに固有のフォーマットでなく、
前記ＩＤＴＥ命令のオペレーションをエミュレートするために、複数の命令を有する所定のソフトウェア・ルーチンを識別するように前記ＩＤＴＥ命令を解釈するステップと
前記所定のソフトウェア・ルーチンを実行するステップと、
をさらに有する、請求項１に記載の方法。
【請求項１４】
前記第１の情報が無効化用の領域テーブル起点または無効化用のセグメント・テーブル起点のうちのいずれか１つをさらに有し、さらに前記第２のフィールドが前記第２の情報を有する第２の汎用レジスタの位置を指定し、前記第２の情報が領域索引フィールドまたはセグメント索引フィールドのうちのいずれか１つをさらに有し、１つまたは複数のアドレス変換テーブル・エントリの所定の範囲を無効化する前記ステップが、
第１の領域エントリ、第２の領域エントリ、または第３の領域エントリのうちのいずれか１つを無効化する場合、
（ａａ）ターゲット領域エントリのアドレスを形成するために、前記第１の領域索引、前記第２の領域索引、または前記第３の領域索引のうちのいずれか１つを前記領域テーブル起点に追加するステップと、
（ｂａ）前記ターゲット領域エントリのアドレスに配置された前記ターゲット領域エントリを無効化するステップと、
（ｃａ）前記ターゲット領域エントリのアドレスを増分するステップと、
（ｄａ）無効化されることになるエントリの範囲の値を減分するステップと、
（ｅａ）前記無効化されることになるエントリの範囲の減分された値がゼロより大きい場合、ステップ（ａａ）から（ｅａ）を反復するステップと、
を実行するステップと、
セグメント・エントリを無効化する場合、
（ｆａ）ターゲット・セグメント・エントリのアドレスを形成するために、無効化用のセグメント・テーブル起点に前記セグメント索引フィールドを追加するステップと、
（ｇａ）前記ターゲット・セグメント・エントリのアドレスに配置された前記ターゲット・セグメント・エントリを無効化するステップと、
（ｈａ）前記ターゲット・セグメント・エントリのアドレスを増分するステップと、
（ｉａ）無効化されることになるエントリの範囲の値を減分するステップと、
（ｊａ）前記無効化されることになるエントリの範囲の減分された値がゼロより大きい場合、ステップ（ｆａ）から（ｊａ）を反復するステップと、
を実行するステップと、
前記無効化されることになるエントリの範囲の減分された値がゼロの場合、前記ＩＤＴＥ命令の実行を終了するステップと、
をさらに有する、請求項２に記載の方法。
【請求項１５】
前記第１の情報が、無効化されることになる第１の領域エントリ、第２の領域エントリ、第３の領域エントリ、またはセグメント・エントリのうちのいずれか１つを指定するための宛先タイプ・フィールドをさらに有する、請求項２に記載の方法。
【請求項１６】
前記第２のフィールドによって識別された前記第２の情報場所に、前記無効化されることになるエントリの範囲の増分された値を保存するステップをさらに有する、請求項１４
に記載の方法。
【請求項１７】
前記アドレス変換バッファが変換ルックアサイド・バッファ（ＴＬＢ）を有する、請求項１に記載の方法。
【請求項１８】
前記所定のアドレス・テーブル・エントリの範囲を無効化するステップが、アドレス変換テーブル・エントリのエントリ無効フィールドを無効としてマーキングするステップをさらに有する、請求項１に記載の方法。
【請求項１９】
前記アドレス変換バッファが、
前記中央処理ユニットに関連付けられたアドレス変換バッファと、
前記コンピュータ・システムの他の中央処理ユニットに関連付けられたアドレス変換バッファと、
前記コンピュータ・システムに関連付けられたすべてのアドレス変換バッファと、
のうちのいずれか１つである、請求項１に記載の方法。
【請求項２０】
無効化されることになるアドレス変換テーブル・エントリを決定する前記ステップｃ）が、
ｃ１）前記第１の領域索引フィールドの値に基づいて、第２の領域テーブル起点を有する無効化するエントリを見つけるために第１の領域テーブルに索引付けするステップと、
ｃ２）前記第２の領域索引フィールドの値に基づいて、第３の領域テーブル起点を有する無効化するエントリを見つけるために第２の領域テーブルに索引付けするステップと、
ｃ３）前記第３の領域索引フィールドの値に基づいて、セグメント・テーブル起点を有する無効化するエントリを見つけるために第３の領域テーブルに索引付けするステップと、
ｃ４）前記セグメント索引フィールドの値に基づいて、ページ・テーブル起点を有する無効化するエントリを見つけるためにセグメント・テーブルに索引付けするステップと、
ｃ５）前記無効化されることになるエントリの範囲の値を減分するステップと、
のうちのいずれか１つを有する、請求項３に記載の方法。
【請求項２１】
アドレス変換バッファのアドレス変換バッファ・エントリの所定のアドレス変換バッファ・エントリ部分が消去用の値を含むかどうかを判定する前記ステップｅ）が、
ｅ１）前記第１の領域索引フィールドの値に基づいて、第２の領域テーブル起点を有する消去するエントリを見つけるために第１の領域テーブルに索引付けするステップと、
ｅ２）前記第２の領域索引フィールドの値に基づいて、第３の領域テーブル起点を有する消去するエントリを見つけるために第２の領域テーブルに索引付けするステップと、
ｅ３）前記第３の領域索引フィールドの値に基づいて、セグメント・テーブル起点を有する消去するエントリを見つけるために第３の領域テーブルに索引付けするステップと、
ｅ４）前記セグメント索引フィールドの値に基づいて、ページ・テーブル起点を有する消去するエントリを見つけるためにセグメント・テーブルに索引付けするステップと、
のうちのいずれか１つを有し、
ｅ５）前記方法が、前記消去するエントリをバッファリングするアドレス変換バッファの前記消去するエントリを消去するステップをさらに有する、
請求項３に記載の方法。
【請求項２２】
前記中央処理ユニットがページ・テーブルをさらに有し、前記ページ・テーブルが実メイン・ストレージ・アドレスを有し、実メイン・ストレージ・アドレスは、絶対アドレス、実アドレス、または物理アドレスのうちのいずれか１つを有する、請求項１に記載の方法。
【請求項２３】
前記第２の情報のビット５２が０の場合、前記第２の情報が無効化および消去オペレーションを示し、さらに前記第２の情報のビット５２が１の場合、前記第２の情報が消去オペレーションのみを示す、請求項１に記載の方法。
【請求項２４】
請求項１ないし２３のいずれか一項に記載の方法をコンピュータに実行させるための命令を有するコンピュータ・プログラム。
【請求項２５】
コンピュータ・システムにおいて、アドレス変換バッファを消去するため、および関連するストレージのアドレス変換テーブル・エントリの範囲を無効化するためのシステムであって、前記システムは、
メイン・ストレージと、
前記メイン・ストレージと通信する１つまたは複数の中央処理ユニットと、
を有し、前記中央処理ユニットは、
汎用レジスタと、
アドレス変換情報を保持するアドレス変換バッファ・エントリを有するアドレス変換バッファと、
１つまたは複数の処理ユニットのうちの１つの中央処理ユニットの仮想メイン・ストレージ・アドレスを前記コンピュータ・システムのメイン・ストレージ・アドレスに変換するためのアドレス変換テーブルであって、前記アドレス変換テーブルがセグメント・テーブル、第１の領域テーブル、第２の領域テーブル、または第３の領域テーブルのうちのいずれか１つを有する、アドレス変換テーブルと、
１つまたは複数の命令実行ユニットであって、前記命令実行ユニットが前記汎用レジスタと通信し、前記命令実行ユニットが前記メイン・ストレージから取り出したマシン命令を実行する、１つまたは複数の命令実行ユニットと、
を有し、
前記コンピュータ・システムは、
メイン・ストレージと、
前記メイン・ストレージと通信する１つまたは複数の中央処理ユニットと、
を有し、前記中央処理ユニットは、
汎用レジスタと、
アドレス変換情報を保持するアドレス変換バッファ・エントリを有するアドレス変換バッファと、
ページ・テーブル、および１つまたは複数の処理ユニットのうちの１つの中央処理ユニットの仮想メイン・ストレージ・アドレスを前記コンピュータ・システムのメイン・ストレージ・アドレスに変換するための他のアドレス変換テーブルと、
を有し、前記アドレス変換テーブルは、
１つまたは複数のセグメント・テーブルと、
１つまたは複数のセグメント・テーブルおよび１つまたは複数の第１領域テーブルと、
１つまたは複数のセグメント・テーブル、１つまたは複数の第１領域テーブル、および１つまたは複数の第２領域テーブルと、
１つまたは複数のセグメント・テーブル、１つまたは複数の第１領域テーブル、１つまたは複数の第２領域テーブル、および１つまたは複数の第３領域テーブルと、
のうちのいずれか１つを有し、
セグメント・テーブル・エントリはページ・テーブル起点を有し、
前記コンピュータ・システムは請求項１から２３のいずれか一項に記載の方法を実行するための命令を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピューティング環境での処理に関し、特に、ストレージの無効化、バッファ・エントリの消去、およびそのための命令に関する。
【背景技術】
【０００２】
既存のコンピューティング環境は、通常は補助ストレージ内に維持されている仮想ストレージを使用して、使用可能ストレージのサイズを大きくする。仮想ストレージのページが参照される場合、参照に使用された仮想アドレスが動的アドレス変換によって実ストレージ・アドレスに変換される。変換が成功した場合、仮想ストレージは有効であり、そうでない場合は無効である。仮想ストレージのページは、ページ・テーブル・エントリ内の無効ビットによって有効または無効として示され、このエントリにはページが有効な場合に実ストレージ・アドレスが含まれる。
【０００３】
ストレージのページは、一度に１ページずつ無効化することができる。たとえば、インターナショナル・ビジネス・マシンズ・コーポレーションの提供するｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づくコンピューティング環境では、ページ・テーブル・エントリ無効化（ＩＰＴＥ／Ｉｎｖａｉｄａｔｅ  Ｐａｇｅ  Ｔａｂｌｅ  Ｅｎｔｒｙ）命令と呼ばれる命令を使用してストレージのページを無効にする。無効化には、仮想ストレージに関連付けられ、物理メイン・ストレージに配置された制御構造において、動的アドレス変換によって仮想ストレージ内のある場所の仮想アドレスが実アドレスとも呼ばれる物理メイン・ストレージ・アドレスに変換できないことを示すように、無効インジケータを設定することが含まれる。さらにこの命令は、ページに関連付けられた内部マシン・バッファ・エントリの消去にも使用され、このエントリは、動的アドレス変換時に物理メイン・ストレージ内の制御構造へのアクセスを避けるために使用することができる。たとえばｚ／Ａｒｃｈｉｔｅｃｔｕｒｅには、仮想アドレスから実アドレスへの動的アドレス変換時に使用される変換ルックアサイド・バッファがある。ストレージのページが無効化される場合、対応するバッファのそのページに関連付けられたエントリも消去される。
【０００４】
変換ルックアサイド・バッファ全体のパージを可能にする命令もある。たとえばｚ／Ａｒｃｈｉｔｅｃｔｕｒｅでは、比較スワップ・パージ（ＣＳＰ／Ｃｏｍｐａｒｅ  ａｎｄ  Ｓｗａｐ  ａｎｄ  Ｐｕｒｇｅ）命令と呼ばれる命令が、変換ルックアサイド・バッファのすべてのエントリをパージする。
【特許文献１】米国特許第６１９９２１９号
【特許文献２】米国特許第５５５１０１３号
【特許文献３】米国特許第６００９２６１号
【特許文献４】米国特許第５５７４８７３号
【特許文献５】米国特許第６３０８２５５号
【特許文献６】米国特許第６４６３５８２号
【特許文献７】米国特許第５７９０８２５号
【非特許文献１】「ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅオペレーションの原理」と題する２０００年１２月付けＩＢＭ資料Ｎｏ．ＳＡ２２−７８３０−００
【非特許文献２】「ＩＢＭ  Ｓｙｓｔｅｍ／３７０拡張アーキテクチャ」と題するＩＢＭ資料Ｎｏ．ＳＡ２２−７０９５（１９８５年）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、ストレージのページを無効化してそのページに関連付けられたエントリのバッファを消去する命令、およびバッファ全体を消去する命令があるが、ストレージの様々なサイズのユニットを選択的に無効化すること、あるいはそれらに関連付けられたエントリのバッファを消去すること、またはその両方が可能な命令が依然として求められている。たとえば、１ページより多くの選択されたストレージ・ユニットを無効化すること、あるいはそれらに関連付けられたバッファ・エントリを消去すること、またはその両方を指定することが可能な命令が求められている。さらに、他のストレージ・ユニット向けのバッファ・エントリに影響を与えることなく、選択されたストレージ・ユニット向けのバッファ・エントリの消去を可能にする命令も求められている。
【課題を解決するための手段】
【０００６】
本発明は、コンピューティング環境のストレージを無効化する方法を提供する。
【０００７】
この方法には、たとえば無効化されることになるストレージのユニットを指定することが含まれ、ストレージ・ユニットはストレージの複数ページを含み、指定することには、ストレージ・ユニットの記述子の提供およびストレージ・ユニットの無効化が含まれる。
【０００８】
好ましくは、本発明はコンピューティング環境のバッファの消去を容易にする方法を提供する。この方法には、たとえば、１つまたは複数のバッファの１つまたは複数のエントリの消去が実行されるストレージ・ユニットを識別することであって、このストレージ・ユニットがストレージの複数ページを含む、識別することと、識別されたストレージ・ユニットに関連付けられた１つまたは複数のバッファの１つまたは複数のエントリを消去することであって、他のストレージ・ユニットに関連付けられた１つまたは複数のエントリは消去されない、消去することと、が含まれる。
【０００９】
好ましくは、コンピューティング環境内で実行される命令が提供される。この命令は、たとえば、実行される命令を識別するためのオペレーション・コードと、ストレージの複数ページを含む無効化されることになるストレージ・ユニットに関連付けられた情報を指定するための無効化指定と、命令が使用する追加情報を指定するためのその他指定と、１つまたは複数のバッファの１つまたは複数のエントリが消去されることになる、ストレージ・ユニットおよび他のストレージ・ユニットのうちの１つに関連付けられた情報を指定するための消去指定とを含み、無効化指定、その他指定、および消去指定のうちの１つまたは複数の、１つまたは複数のコンポーネントは、ノーオペレーションとして構成可能である。
【００１０】
好ましくは、コンピューティング環境内で実行される命令が提供される。この命令は、たとえば、実行される命令を識別するためのオペレーション・コード、ならびに、ストレージの複数ページを含む無効化されることになるストレージ・ユニットに関連付けられた情報を指定するための第１の無効化指定と、無効化されることになるストレージ・ユニットに関連付けられた追加の情報を指定するための第２の無効化指定と、１つまたは複数のバッファの１つまたは複数のエントリが消去されることになる、ストレージ・ユニットおよび他のストレージ・ユニットのうちの１つに関連付けられた情報を指定するための消去指定とのうちの、少なくとも１つを含み、消去指定によって指定される情報は、１つまたは複数のエントリが消去されない少なくとも１つの他のストレージ・ユニットに関連付けられていない。
【００１１】
上述の要約された方法に対応するシステムおよびコンピュータ・プログラムについても、本明細書で説明および記載する。
【００１２】
追加の特徴および利点が本発明の技法を介して実現される。本発明の他の実施形態および態様について本明細書で詳細に説明し、記載された発明の一部とみなされる。
【００１３】
本発明に関する主題は、本明細書に添付の特許請求の範囲で具体的に指摘および明白に記載されている。本発明の前述および他の目的、特徴、および利点は、添付の図面に関して記載された以下の詳細の説明から明らかである。
【発明を実施するための最良の形態】
【００１４】
本発明の一態様に従って、ストレージの指定部分（たとえば仮想ストレージ）が無効化される。その例として、ストレージの複数ページを含むストレージのセグメント、または複数セグメントのストレージを含むストレージの領域が、無効化されるように選択される。無効化は、無効化されることになるストレージ・ユニットに対応するデータ構造エントリにある無効化インジケータを設定することで容易になる。本発明の他の態様では、無効化されるストレージまたは他のストレージに関連付けられたバッファ・エントリ（たとえば変換ルックアサイド・バッファ・エントリ）が消去される。さらに本発明の他の態様では、選択されていないアドレス・スペースのバッファ・エントリに影響を与えることなく、また無効化を実行することなく、選択されたアドレス・スペースに関連付けられたバッファ・エントリがバッファから消去される。一例では、上記オペレーションのうちの１つまたは複数を実行するために、本明細書で動的アドレス変換（ＤＡＴ）テーブル・エントリ無効化（ＩＤＴＥ）命令と呼ばれるＩＢＭ（登録商標）のｚ／Ａｒｃｈｉｔｅｃｔｕｒｅからの命令が使用される。
【００１５】
本発明の１つまたは複数の態様を組み込み、これらを使用するコンピューティング環境１００の一実施形態について、図１を参照しながら説明する。コンピューティング環境１００は、たとえばニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づいている。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅについては、参照によりその全文が本明細書に組み込まれた、「ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅオペレーションの原理」と題する２０００年１２月付けＩＢＭ資料Ｎｏ．ＳＡ２２−７８３０−００のＩＢＭ（登録商標）資料に記載されている。（ＩＢＭ（登録商標）は、アメリカ合衆国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションの登録商標である。本明細書で使用される他の名前は、インターナショナル・ビジネス・マシンズ・コーポレーションまたは他の会社の登録商標、商標、または製品名である場合もある。）一例では、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づくコンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するｅＳｅｒｖｅｒ  ｚＳｅｒｉｅｓを含む。
【００１６】
一例として、コンピューティング環境１００は、コントローラ１２０に結合された中央プロセッサ複合体（ＣＰＣ）１０２を含む。中央プロセッサ複合体１０２は、たとえば１つまたは複数の区画１０４（たとえば論理区画ＬＰ１〜ＬＰｎ）、１つまたは複数の中央プロセッサ１０６（たとえばＣＰ１〜ＣＰｍ）、およびハイパーバイザ１０８（たとえば論理区画マネージャ）を含み、そのそれぞれについて以下で説明する。
【００１７】
各論理区画１０４は別々のシステムとして機能することができる。すなわち、各論理区画を独立してリセットすること、所望であれば初期にオペレーティング・システムと共にロードすること、および様々なプログラムで動作させることが可能である。論理区画内で動作するオペレーティング・システムまたはアプリケーション・プログラムはシステム全体にアクセスできるように見えるが、実際にはその一部しか使用することができない。ハードウェアおよびライセンス内部コード（一般に、マイクロコードと呼ばれる）を組み合せることによって、論理区画内のプログラムが異なる論理区画内のプログラムから干渉を受けないようにする。これにより、いくつかの異なる論理区画が単一または複数の物理プロセッサ上でタイム・スライス化された形で動作可能となる。この特定の例では、各論理区画が１つまたは複数の論理区画用とは異なる常駐オペレーティング・システム１１０を有する。一実施形態では、オペレーティング・システム１１０はニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するｚ／ＯＳオペレーティング・システムである。
【００１８】
中央プロセッサ１０６は、論理区画に割り振られた物理プロセッサ・リソースである。たとえば論理区画１０４は１つまたは複数の論理プロセッサを含み、そのそれぞれが区画に割り振られた物理プロセッサ・リソース１０６のすべてまたは共有部分を表す。特定区画１０４の論理プロセッサは、その区画専用である、すなわち基礎となるプロセッサ・リソースがその区画用に予約されているか、または他の区画との共有、すなわち基礎となるプロセッサ・リソースを潜在的に他の区画が使用可能であるか、のいずれかとすることができる。
【００１９】
論理区画１０４は、プロセッサ１０６上で動作するマイクロコードによってインプリメントされるハイパーバイザ１０８によって管理される。論理区画１０４およびハイパーバイザ１０８はそれぞれ、中央プロセッサに関連付けられた中央ストレージのそれぞれの部分に常駐する１つまたは複数のプログラムを有する。ハイパーバイザ１０８の一例が、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するＰｒｏｃｅｓｓｏｒ  Ｒｅｓｏｕｒｃｅ／Ｓｙｓｔｅｍｓ  Ｍａｎａｇｅｒ（ＰＲ／ＳＭ）である。
【００２０】
中央プロセッサ複合体に結合されたコントローラ１２０は、要求を発行する様々なプロセッサ間でのアービトレーション（ａｒｂｉｔｒａｔｅ）の責務を負う集中論理を含む。たとえば、コントローラ１２０は要求を受け取ると、要求元がその要求のマスタ・プロセッサであるかどうか、および他のプロセッサがスレーブ・プロセッサであるかどうかを判別し、メッセージをブロードキャストし、そうでなければ要求を処理する。コントローラの一例は、米国特許第６１９９２１９号に記載されている。他の詳細についても、図２を参照しながら説明する。図２は、複数の中央プロセッサ（ＣＰＵ）２０１に結合されたコントローラ２００の一例を示す。この例では、２つの中央プロセッサが示されている。しかしながら、２つより多くのプロセッサをコントローラ２００に結合できることを理解されよう。
【００２１】
コントローラ２００は、たとえばシステム逐次化コントロール２０２を含む。システム逐次化コントロールを使用して、無効化命令などの逐次化される予定のオペレーションが、コンピューティング環境においてこうした命令が一度に１つだけ進行中であるという点で確実に逐次化されるようにする。これは、そのオペレーションに関するイベントのシーケンスも監視する。
【００２２】
コントローラ２００は、様々なインターフェースを介して各中央プロセッサに結合される。たとえばインターフェース２０４は、実行するアクションを指定する「コントロール（ｃｏｎｔｒｏｌ）」コマンドをコントローラに送信するため、およびコントローラからの情報を戻す「センス（ｓｅｎｓｅ）」コマンドを送信するために、中央プロセッサのライセンス内部コードによって使用される。別のインターフェースには、「センス」コマンドに関するコントローラからの情報を戻すために使用される応答バス２０６がある。応答バスは、「コントロール」コマンドに関するコマンド状況を送るためにも使用され、システム逐次化コントロールを含むコントローラ内の複数のソースから設定可能である。中央プロセッサは、このインターフェースを使用して、コントローラ２００内のシステム逐次化コントロールの状態をセンスすることができる。
【００２３】
他のインターフェースには、コントローラが各ＣＰＵにコマンドを送信するために使用するインターフェース２０８がある。これも、システム逐次化コントロール２０２を含むコントローラ内の複数のソースからコントロール可能である。さらに他のインターフェースには、中央プロセッサ２０１のキャッシュ・コントロール２１２に信号を提供するインターフェース２１０がある。キャッシュ・コントロール２１２は、この信号に応答してコマンドを処理する。一例では、以下でより詳細に説明するように、キャッシュ・コントロール２１２は変換ルックアサイド・バッファ（ＴＬＢ）２１３などの１つまたは複数のバッファに影響を与えるコマンドを処理する。
【００２４】
キャッシュ・コントロール２１２に加えて、中央プロセッサ２０１は、たとえば割り込みコントロール２２０および実行コントロール２２２を含む様々な他のコントロールを含む。特定のイベントに応答して、割り込みコントロール２２０はＣＰＵにおける内部割込みを保留させ、次にこれが次の割り込み可能ポイントで実行コントロール２２２にプログラム命令処理を延期させる。割り込みに応答して、実行コントロール２２２はライセンス内部コードルーチンを呼び出し、キャッシュ・コントロール２１２が保留コマンドを処理できるようにブロードキャスト・オペレーション許可ラッチ２２４を設定する。
【００２５】
中央プロセッサ２０１は、中央プロセッサが静止しているか否かを示すＣＰＵ静止ラッチ２２６も含む。
【００２６】
前述のコンピューティング環境は単なる一例に過ぎない。たとえば、１つまたは複数の区画が異なるアーキテクチャ・モードで実行することが可能である。さらに他の例として、環境は必ずしもｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づくものとは限らず、Ｓｕｎ  ＭｉｃｒｏｓｙｓｔｅｍｓのＩｎｔｅｌが提供する他のアーキテクチャ、ならびにその他に基づくものとすることもできる。さらに環境は、特定のアーキテクチャまたはそのサブセットがエミュレートされる、エミュレータ（たとえばソフトウェアまたは他のエミュレーション機構）を含む場合がある。こうした環境では、たとえエミュレータを実行しているコンピュータがエミュレートされている機能とは異なるアーキテクチャを有することが可能であっても、エミュレータの１つまたは複数のエミュレーション機能が本発明の１つまたは複数の態様をインプリメントすることができる。一例として、エミュレーション・モードでは、エミュレートされている特定の命令またはオペレーションが復号され、個々の命令またはオペレーションをインプリメントするために適切なエミュレーション機能が構築される。
【００２７】
エミュレーション環境の他の詳細について、図３を参照しながら説明する。一例として、ホスト・コンピュータ３００は他のアーキテクチャ、コンピュータ、あるいは他のコンピュータの処理機能またはそのすべてをエミュレートすることができる。たとえば、ホスト・コンピュータ３００は、Ｉｎｔｅｌアーキテクチャ、ＰｏｗｅｒＰＣなどのＲＩＳＣアーキテクチャ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓが提供するＳＰＡＲＣアーキテクチャ、または他のアーキテクチャに基づくものであり、ＩＢＭ（登録商標）のｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ、あるいはＩＢＭ（登録商標）または他の企業の他のアーキテクチャをエミュレートすることができる。
【００２８】
ホスト・コンピュータ３００は、たとえば、命令およびデータを格納するためのメモリ３０２と、メモリ３０２から命令を取り出すためおよびオプションで取り出した命令にローカル・バッファリングを提供するための命令取り出しユニット３０４と、命令取り出しユニット３０４から命令を受け取るためおよび取り出された命令のタイプを決定するための命令復号ユニット３０６と、命令を実行するための命令実行ユニット３０８とを含む。実行には、メモリ３０２からレジスタにデータをロードすること、レジスタからメモリにデータを戻して格納すること、あるいは、復号ユニットによって決定されたようにいくつかのタイプの算術または論理演算を実行することが含まれる可能性がある。
【００２９】
一例では、前述の各ユニットがソフトウェア内でインプリメントされる。たとえば、ユニットによって実行されるオペレーションは、エミュレータ・ソフトウェア内の１つまたは複数のサブルーチンとしてインプリメントされる。他の例では、１つまたは複数のオペレーションがファームウェア、ハードウェア、ソフトウェア、またはそれらの何らかの組合せでインプリメントされる。
【００３０】
さらに、図３はエミュレーションに関して記載されているが、図３の環境はエミュレーション環境である必要はない。他の例では、命令はネイティブ環境で実行され、オペレーションはハードウェア、ファームウェア、ソフトウェア、またはそれらの何らかの組合せでインプリメントされる。
【００３１】
コンピューティング環境は、仮想ストレージならびにメイン・ストレージを含むことができる。仮想ストレージは構成内で使用可能なメイン・ストレージのサイズをはるかに超える可能性があり、通常は補助ストレージ内で維持される。仮想ストレージは、ページと呼ばれるアドレスのブロックからなるものとみなされる。一番新しく参照された仮想ストレージのページが、物理メイン・ストレージのブロックを占有するように割り当てられる。ユーザがメイン・ストレージに表れない仮想ストレージのページを参照すると、その仮想ページがほとんど使用されないメイン・ストレージ内のページと置き換えられる。ストレージ内でのページのスワッピングは、ユーザが知らない間にオペレーティング・システムによって実行される場合がある。
【００３２】
仮想ストレージ内の場所を指定するのに使用されるアドレスは、仮想アドレスと呼ばれる。たとえば、最高４ｋバイトまでのスパンの順次仮想アドレスのブロックがページと呼ばれる。同様に、たとえば最高１Ｍバイトまでのスパンの順次仮想ページのブロックがセグメントと呼ばれ、たとえば最高２Ｇバイトまでのスパンの順次仮想セグメントのブロックが領域と呼ばれる。さらに、アドレス・スペース・コントロール要素（ＡＳＣＥ）によって示される仮想ストレージに関連付けられた仮想アドレスのシーケンスがアドレス・スペースと呼ばれる。アドレス・スペースを使用して、ユーザ間の分離の程度を与えることができる。アドレス・スペースは、１つまたは複数の領域、１つまたは複数のセグメント、１つまたは複数のページ、あるいはそれらの何らかの組合せを含むことができる。
【００３３】
様々なタイプのストレージのユニット（たとえば領域、セグメント、ページ）への関連付けが、ストレージのユニットに関連付けられた処理に使用されるデータ構造である。たとえば、領域への関連付けは領域テーブルであり、セグメントへの関連付けはセグメント・テーブルであり、ページへの関連付けはページ・テーブルである。これらのテーブルは、たとえば仮想アドレスをメイン・ストレージへのアクセスに使用される実アドレスに変換する（たとえば、動的アドレス変換）際に使用される。変換時に使用されるテーブルは、本明細書では変換テーブルと呼ばれ、アドレス・スペース・コントロール要素（ＡＳＣＥ）によって指定される。これについては、「ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅオペレーションの原理」と題する２０００年１２月付けＩＢＭ資料Ｎｏ．ＳＡ２２−７８３０−００のＩＢＭ（登録商標）資料に詳細に記載されている。現在メイン・ストレージに割り当てられていない仮想ストレージのユニットは無効と呼ばれる。仮想ストレージのユニットの無効状態は、ユニットに関連付けられたデータ構造内の無効インジケータで示される。
【００３４】
一実施形態では、ＤＡＴプロセスを介して変換テーブル（たとえば領域テーブル、セグメント・テーブル、あるいはページ・テーブル、またはそのすべて）から導出された情報が、アドレス変換の性能を強化するために、本明細書では変換ルックアサイド・バッファと呼ばれるプロセッサ内に配置された１つまたは複数のバッファ内に維持されるように、動的アドレス変換機構がインプリメントされる。すなわち、変換時に必要な情報についてバッファをチェックし、その情報がバッファ内にない場合、１つまたは複数の変換テーブルにアクセスする。
【００３５】
一実施形態では、バッファ・エントリは、ＴＬＢ複合（ｃｏｍｂｉｎｅｄ）領域およびセグメント・テーブル・エントリ、ＴＬＢページ・テーブル・エントリ、またはＴＬＢ実スペース・エントリの、３つのタイプのうちの１つとみなされるものであり、これらそれぞれについて以下で説明する。
【００３６】
ＴＬＢ複合領域およびセグメント・テーブル・エントリ（ＣＲＳＴＥ）は、実または絶対ストレージ内のテーブル・エントリから取得された情報と、ストレージからこの情報を取り出すために使用された属性との、両方を含む。一例では、ＴＬＢ複合領域およびセグメント・テーブル・エントリ（ＣＲＳＴＥ）は、
ＴＯ    エントリを形成するために使用されたアドレス・スペース・コントロール要素内のテーブル起点と、
ＲＸ    エントリを形成するために使用された仮想アドレスの領域索引と、
ＳＸ    エントリを形成するために使用された仮想アドレスのセグメント索引と、
ＰＴＯ    実または絶対ストレージ内のセグメント・テーブル・エントリから取り出されたページ・テーブル起点と、
Ｃ    実または絶対ストレージ内のセグメント・テーブル・エントリから取り出された共通セグメント・ビットと、
Ｐ    実または絶対ストレージ内のセグメント・テーブル・エントリから取り出されたページ保護ビットと、
のフィールドを含む。
【００３７】
Ｖ    妥当性ビットは、ＴＬＢ内のエントリが有効であるかどうか、すなわち後続のエントリを検索するために使用可能であるかどうかを示す。
【００３８】
ＴＬＢページ・テーブル・エントリは、実または絶対ストレージ内のテーブル・エントリから取得された情報と、ストレージからこの情報を取り出すために使用された属性とを含む。一例では、ＴＬＢページ・テーブル・エントリは、
ＴＯ    エントリがどのように形成されたかに応じて、エントリを形成するために使用されたアドレス・スペース・コントロール要素またはＴＬＢ複合領域およびセグメント・テーブル・エントリ内のテーブル起点と、
ＰＴＯ    エントリを形成するために使用されたページ・テーブル起点と、
ＰＸ    エントリを形成するために使用された仮想アドレスのページ索引と、
ＰＦＲＡ    実または絶対ストレージ内のページ・テーブル・エントリから取り出されたページ・フレーム実アドレスと、
Ｐ    実または絶対ストレージ内のページ・テーブル・エントリから取り出されたページ保護ビットと、
を含む。
【００３９】
Ｖ    妥当性ビットは、ＴＬＢ内のエントリが有効であるかどうか、すなわち後続のエントリを検索するために使用可能であるかどうかを示す。
【００４０】
時には、ストレージのユニットが無効化されることになる。この無効化を容易にするために、本明細書で説明するように、そのストレージ・ユニットに関連付けられた変換テーブルが採用される。さらにストレージの無効化に応答して、対応するバッファ・エントリも消去することができる。たとえば、ストレージのページを無効化するために、ページ・テーブル・エントリの無効ビットが設定される。加えて一例では、１つまたは複数のＴＬＢ内の対応するエントリが自動的に消去される。特定の一例では、ストレージのページに関連付けられたエントリの無効化および消去が、ページ・テーブル・エントリ無効化（ＩＰＴＥ／Ｉｎｖａｌｉｄａｔｅ  Ｐａｇｅ  Ｔａｂｌｅ  Ｅｎｔｒｙ）命令によって実行される。
【００４１】
ストレージのページの無効化に加え、本発明の一態様に従い、ストレージのセグメントあるいはストレージの領域またはその両方を無効化することができる。一例として、この無効化では、セグメントあるいは領域またはその両方のテーブルが使用される。ストレージの特定ユニットの無効化に関連付けられた論理の一実施形態について、図４を参照しながら説明する。
【００４２】
初めにステップ４００で、１つまたは複数のエントリが無効化されることになる領域またはセグメント・テーブルが識別される。一例では、これには領域テーブル起点またはセグメント・テーブル起点を提供することが含まれる。次にステップ４０２で、指定された領域またはセグメント・テーブル内のエントリが無効化用に識別され、ステップ４０４で、このエントリが無効化される。一例では、識別されたテーブル内のエントリを選択する領域索引またはセグメント索引（仮想アドレスのビット）を提供することによって識別が実行され、無効化には、エントリ内に無効インジケータを設定することが含まれる。無効インジケータを設定することに応答して、対応するストレージのユニット（たとえば領域またはセグメント）が無効化される。
【００４３】
その後、無効化するエントリがその他にもあるかどうかの判定、ＩＮＱＵＩＲＹ  ４０６が実行される。無効化されることになるエントリがその他にもある場合、処理はステップ４０２へと進む。そうでない場合、処理は完了する。
【００４４】
領域またはセグメント・テーブル内の１つまたは複数のエントリを無効化し、その結果それらのストレージのユニットを無効化することに加えて、環境内の１つまたは複数のプロセッサ上の１つまたは複数のバッファから対応するエントリ（または他のエントリ）を消去またはパージすることができる。この消去に関連付けられた論理の一実施形態について、図５を参照しながら詳細に説明する。
【００４５】
初めに、領域またはセグメントのテーブル起点が指定されているかどうかに関する判定、ＩＮＱＵＩＲＹ  ５００が実行される。領域またはセグメントのテーブル起点が指定されている場合、ステップ５０２で、１つまたは複数のバッファの、その領域またはセグメントの起点に合致する領域またはセグメントの索引によって指定されたエントリが消去される。その後、その他に消去するエントリがあるかどうかの判定、ＩＮＱＵＩＲＹ  ５０４が実行される。エントリがある場合、処理はステップ５０２へ進む。そうでない場合、処理は完了する。
【００４６】
ＩＮＱＵＩＲＹ  ５００に戻り、領域またはセグメントのテーブル起点が指定されない場合、ステップ５０８で、１つまたは複数のバッファの、領域またはセグメントの索引によって指定されたエントリが消去される。その後、その他に消去するエントリがあるかどうかの判定、ＩＮＱＵＩＲＹ  ５１０が実行される。消去するエントリがその他にある場合、処理はステップ５０８へ進む。そうでない場合、処理は完了する。
【００４７】
一例では、無効化および消去は１つの命令によって実行される。この命令が、セグメントまたは領域テーブルの選択されたエントリを無効化し、少なくとも対応するエントリ（または他のエントリ）を構成のプロセッサ上のＴＬＢから自動的にパージする。一例では、エントリは、物理、仮想、またはソフトウェアによってエミュレートされたものかどうかにかかわらず、すべてのプロセッサ上のすべてのＴＬＢからパージされる。多重レベルＴＬＢ構造が存在する場合、一例ではすべてのレベルがパージされる。システム内に複数の論理区画が存在する場合、これおよび現在のＩＤＴＥ命令が実行中である論理区画用に形成された他のプロセッサ上のＴＬＢエントリがパージされる。
【００４８】
この命令は多くのアーキテクチャでインプリメント可能であり、エミュレートされる場合がある。例として命令は、プロセッサによって、または異なるネイティブ命令セットを有するコンピュータ上で実行中のソフトウェアによる、この命令を含む命令セットのエミュレーションによって、ハードウェア内で実行することができる。特定の一例では、命令はｚ／Ａｒｃｈｉｔｅｃｔｕｒｅでインプリメントされ、本明細書では動的アドレス変換（ＤＡＴ）テーブル・エントリ無効化（ＩＤＴＥ／Ｉｎｖａｌｉｄａｔｅ  Ｄｙｎａｍｉｃ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ  Ｔａｂｅｌ  Ｅｎｔｒｙ）命令と呼ばれる。
【００４９】
たとえばＩＤＴＥは、領域テーブルまたはセグメント・テーブルの１つまたは複数のエントリを介してストレージの１つまたは複数の領域またはセグメントが無効化され、構成内のＴＬＢ（たとえばすべてのＴＬＢ）から少なくとも対応するエントリ（または他のエントリ）がパージされる、無効化および消去オプションを提供する。この命令は、パージされる最低セットのＴＬＢエントリを指定する。他のインプリメンテーションでは、ＩＤＴＥ命令の実行時に、より多くまたはすべてのＴＬＢエントリがパージされる場合がある。
【００５０】
ＤＡＴテーブル・エントリ無効化（ＩＤＴＥ）命令のフォーマットの一実施形態について、図６を参照しながら説明する。一例では、ＩＤＴＥ命令６００は、たとえばＤＡＴテーブル・エントリ無効化命令を指定するオペレーション・コード６０２（たとえば’Ｂ９８Ｅ’ｘ）および複数のレジスタ６０４〜６０８を含む。それぞれのレジスタについて、図７〜９を参照しながら以下で詳細に説明する。
【００５１】
図７を参照すると、レジスタ６０６は汎用レジスタＲ１であり、たとえばテーブル起点（たとえばビット０〜５１）を備えたアドレス・スペース・コントロール要素のフォーマットと、使用されたタイプ指定コントロール（ビット６０および６１）とを有する。ビット５２〜５９、６２、および６３は無視される。特にＲ１は、たとえば、１つまたは複数のエントリが無効化されることになる変換テーブルを指定する無効化用の領域テーブルまたはセグメント・テーブルの起点と、そのテーブルのタイプ（たとえば領域テーブルまたはセグメント・テーブル）を指定するタイプ指定コントロール（ＤＴ）６１２と、を含む。
【００５２】
レジスタ６０８は汎用レジスタＲ２であり（図８）、第１レベルの領域テーブルを指定する第１領域索引６１４と、第２レベルの領域テーブルを指定する第２領域索引６１６と、第３レベルの領域テーブルを指定する第３領域索引６１８とを含む。すなわち、大規模な仮想アドレスを収容するために、３つのレベルの領域テーブルが使用される。レジスタＲ２は、セグメント・テーブルの索引であるセグメント索引６２０と、実行される機能を決定するモード・インジケータ６２１と、いくつのエントリが無効化されることになるかを示す追加エントリ・インジケータ６２２と、も含む。たとえば汎用レジスタＲ２のビット５３〜６３は、無効化されることになる追加テーブル・エントリの数を指定する２進数を含む。一例では、無効化されることになるエントリの数は、０〜２０４７のビット５３〜６３の値に対応する１〜２０４８である。汎用レジスタＲ２のビット４４〜５１はゼロであり、そうでない場合、指定例外が認識される。したがって、汎用レジスタＲ２のビット０〜４３は、仮想アドレスの領域索引およびセグメント索引のフォーマットを有する。汎用レジスタＲ１によって指定されたテーブル・タイプでエントリを選択するためにＤＡＴによって使用されるビット０〜４３の部分は有効無効化索引（Ｅｆｆｅｃｔｉｖｅ  Ｉｎｖａｌｉｄａｔｉｏｎ  Ｉｎｄｅｘ）と呼ばれ、以下でより詳細に説明する。
【００５３】
レジスタ６０４は汎用レジスタＲ３であり、たとえば、非ゼロの場合はテーブル起点ビット０〜５１が使用されている、アドレス・スペース・コントロール要素のフォーマットを有する。このテーブル起点は、消去されることになるＴＬＢエントリを選択するために使用され、これが指定するテーブルのタイプは汎用レジスタＲ１のビット６０および６１とは無関係である。汎用レジスタＲ３のビット５２〜６３は無視される。Ｒ３がゼロの場合、汎用レジスタ０のコンテンツ全体が無視される。一例では、消去されることになるエントリが、無効化されるエントリと同じであるかまたは異なる場合がある。
【００５４】
無効化および消去オペレーションに関連付けられた論理の一実施形態について、図１０〜１１を参照しながら説明する。一例では、汎用レジスタＲ２のビット５２がゼロの場合、無効化および消去オペレーションが指定される。このオペレーションでは、ストレージ内の指定された領域テーブル・エントリまたはセグメント・テーブル・エントリ、あるいは指定されたエントリで始まるエントリの範囲が無効化され、構成のＣＰＵ内の変換ルックアサイド・バッファ（ＴＬＢ）の関連付けられたエントリ（または他のエントリ）が消去される。一例では、バッファが多重レベルの場合、すべてのＣＰＵ内のバッファのすべてのレベルが消去される。
【００５５】
図１０を参照すると、初めにステップ７００で、１つまたは複数のエントリが無効化されることになる領域テーブルまたはセグメント・テーブルを指定する、領域テーブルまたはセグメント・テーブルの起点が指定される。一例では、これは汎用レジスタＲ１内で指定される。加えてステップ７０２で、無効化されることになるストレージ内のテーブル・エントリが選択される。一例では、本明細書で説明するように、汎用レジスタＲ１内のテーブル起点および汎用レジスタＲ２の有効無効化索引を追加すること、ならびに様々な規則に従うことによって、テーブル・エントリが指定される。
【００５６】
汎用レジスタＲ１のビット６０および６１は、テーブル・タイプおよび有効無効化索引を以下のように指定する。
【表１】
0004608484.tif 000002
【００５７】
上記の表を参照すると、ビット６０および６１が２進の値１１を有する場合、第１領域テーブル内のエントリを選択するために、Ｒ１の第１領域テーブル起点に関してＲ２の第１領域索引部分が使用される。テーブル起点は６４ビット・アドレスとして扱われる。
【００５８】
実または絶対ストレージ内の第１領域テーブル・エントリの６４ビット・アドレスは、第１領域テーブル指定のビット０〜５１の右側に１２のゼロを付加すること、および右端に３つ、左端に５０のゼロが付加された第１領域索引を追加することによって、取得される。この追加は、現在のプログラム状況ワード（ＰＳＷ）のビット３１および３２によって指定された現在のアドレス指定モードに関係なく、６４ビット・アドレス算術の規則に従って実行される。追加の際にビット位置ゼロが実施された場合、これは無視される。これら２つのコンポーネントから形成されたアドレスが、実または絶対アドレスである。現在のＰＳＷが２４ビット、３１ビット、または６４ビットのアドレス指定モードを指定するかどうかにかかわらず、アドレスの６４ビットすべてが使用される。
【００５９】
一例では、他のＣＰＵが監視している間に、第１領域テーブル・エントリ全体がストレージから並行して取り出される。エントリへの取り出しアクセスはキー制御保護の対象となり、格納アクセスはキー制御保護および低アドレス保護の対象となる。第１領域テーブル・エントリを取り出すために生成されたストレージ・アドレスが構成内で使用不能な場所を指定した場合、アドレス指定例外が認識され、オペレーションのユニットが抑制される。
【００６０】
ビット６０および６１が２進の値１０を有する場合、第２領域テーブルからエントリを選択するために、Ｒ１の第２領域テーブル起点に関してＲ２の第２領域索引が使用される。第２領域テーブル・ルックアップ・プロセスは、第１領域テーブル・ルックアップ・プロセスと同様である。例外が認識されない場合、第２領域テーブルから取り出されたエントリが開始を指定し、対応する第３領域テーブルのオフセットおよび長さを指定する。
【００６１】
ビット６０および６１が２進の値０１を有する場合、第３領域テーブルからエントリを選択するために、Ｒ１の第３領域テーブル起点に関してＲ２の第３領域索引部分が使用される。第３領域テーブル・ルックアップ・プロセスは、第１領域テーブル・ルックアップ・プロセスと同様である。例外が認識されない場合、第３領域テーブルから取り出されたエントリが開始を指定し、対応するセグメント・テーブルのオフセットおよび長さを指定する。
【００６２】
ビット６０および６１が２進の値００を有する場合、セグメント・テーブルからエントリを選択するために、Ｒ１のセグメント・テーブル起点に関してＲ２のセグメント索引部分が使用される。セグメント・テーブル・ルックアップ・プロセスは、第１領域テーブル・ルックアップ・プロセスと同様である。例外が認識されない場合、セグメント・テーブルから取り出されたエントリが対応するページ・テーブルの開始を指定する。
【００６３】
一例では、テーブル・エントリ全体がストレージから並行して取り出される。その後、ステップ７０４でエントリが無効化される。一例では、エントリは、エントリのビット５８を２進の１に設定することによって無効化される。このエントリを無効化することによって、対応するストレージのユニットが無効化される。
【００６４】
その後、無効化されることになるその他のエントリがあるかどうかの判定、ＩＮＱＵＩＲＹ  ７０６が実行される。一例では、この判定は汎用レジスタＲ２のビット５３〜６３をチェックすることによって実行される。汎用レジスタＲ２のビット５３〜６３がすべてゼロではない場合、その他のエントリが無効化されることになる。したがって、以前に使用された有効無効化索引の値に１が追加され、処理はステップ７００へと進む。これが繰り返されて、ビット５３〜６３によって指定された数よりも１多い数のエントリが無効化される。有効無効化索引の左端のビット位置の実行が無視され、このケースではテーブル内のラップアラウンドが発生する。汎用レジスタＲ２のコンテンツは変更されないままである。
【００６５】
１つまたは複数のエントリの無効化に続き、本発明の他の態様に従って、ステップ７０８で、このＣＰＵがそのＴＬＢから選択されたエントリを消去し、構成内の他のＣＰＵにそれらのＴＬＢから選択されたエントリを消去するように信号を発する。一例では、各ＴＬＢから少なくとも以下の条件に合致するそれらの複合領域およびセグメント・テーブル・エントリ（ＣＲＳＴＥ）が消去される。
【００６６】
汎用レジスタＲ２内の有効無効化索引およびその左側にあるビットと、ＴＬＢエントリ内の領域およびセグメント索引フィールドの同じ部分とが一致する。（一実施形態では、これらのフィールドがセグメント索引フィールドを含む場合、それらの領域索引フィールドに関係なくＣＲＳＴＥを消去するか、またはすべてのＣＲＳＴＥを消去することができる。フィールドがセグメント索引フィールドを含まない場合、すべてのＣＲＳＴＥを消去することができる。）汎用レジスタＲ２のビット５３〜６３により複数のテーブル・エントリが無効化された場合、有効無効化索引が増分され、索引の左端ビット位置の実行は失われる。
【００６７】
Ｒ３がゼロであるか、または汎用レジスタＲ３内のテーブル起点フィールドがＴＬＢエントリ内のテーブル起点フィールドと一致する。
【００６８】
無効化されたエントリがセグメント・テーブル・エントリの場合、無効化されたエントリ内のページ・テーブル起点フィールドは、ＴＬＢエントリ内のページ・テーブル起点フィールドと一致する。（一実施形態では、ＴＬＢエントリはエントリ内のページ・テーブル起点に関係なく消去することができる。）
【００６９】
各ＴＬＢからは、（１）セグメント・テーブル・エントリが無効化された場合、無効化されたセグメント・テーブル・エントリ内、または（２）同じＴＬＢ内で消去された（消去されることになるセット内にある）任意の複合領域およびセグメント・テーブル・エントリ内の、ページ・テーブル起点フィールドとページ・テーブル起点フィールドが一致するページ・テーブル・エントリも、少なくとも消去される。（他の実施形態では、インプリメンテーションが、エントリ内のページ・テーブル起点には関係なくページ・テーブル・エントリを消去することができる。すなわち、すべてのページ・テーブル・エントリを消去することができる。）
【００７０】
ＴＬＢからのエントリの消去に関連付けられた論理の一実施形態について、図１１を参照しながら説明する。一例として、これはＩＤＴＥによって実行された処理の続きであり、このＣＰＵおよびシステム内の他のＣＰＵが監視している間に、無効化に対して原子的（ａｔｏｍｉｃａｌｌｙ）に実行される。
【００７１】
図１１を参照すると、初めにＲ３がゼロであるかどうかの判定、ＩＮＱＵＩＲＹ  ７２０が実行される。Ｒ３が非ゼロである場合、消去用の領域テーブルまたはセグメント・テーブルの起点がレジスタＲ３内に示され、ステップ７２２でＴＬＢエントリを消去するためには、レジスタＲ３内に指定された領域／セグメント・テーブル起点が、エントリの形成に使用された領域／セグメント・テーブル起点と一致することになる。Ｒ３がゼロの場合、レジスタＲ３のコンテンツ（レジスタ０）は無視され、ステップ７２４で、エントリの形成に使用された領域／セグメント・テーブル起点に関係なくエントリが消去される。
【００７２】
ステップ７２６では、システム内のすべてのプロセッサ上で、ＴＬＢのレジスタＲ２内で指定された領域／セグメント索引によって指定されたエントリが消去される。一例では、ＴＬＢでは少なくとも、たとえば汎用レジスタＲ２内の有効無効化索引およびその左側のビットと、ＴＬＢエントリ内の領域およびセグメント索引テーブルの同じ部分とが一致する、複合領域およびセグメント・テーブル・エントリが消去される。一例のように、エントリを消去するためにＶビットがオフになる。
【００７３】
ステップ７２８では、さらに、セグメント・テーブル・エントリが無効化されている場合、システム内のすべてのプロセッサ上のＴＬＢで、エントリ内のページ・テーブル起点がＴＬＢ内のページ・テーブル起点に等しいページ・テーブル・エントリが消去される。さらに、ステップ７３０では、セグメント・テーブル・エントリが無効化されている場合、ページ・テーブル起点フィールドが同じＴＬＢ内で（たとえば必然的に）消去された任意のＣＲＳＴＥ内のページ・テーブル起点フィールドと一致する、ページ・テーブル・エントリが少なくとも消去される。この消去プロセスは、ステップ７３２で、図８の追加エントリ・フィールド６２２で指定された数よりも１つ多いエントリ数に対して繰り返される。
【００７４】
その後、無効化および消去オペレーションを完了するかどうかの判定、ＩＮＱＵＩＲＹ  ７３４が実行される。一例では、発行元のプロセッサでは、そのＣＰＵ上で指定されたＴＬＢエントリが消去されるまで、およびシステム内のすべての他のＣＰＵがこの命令で指定されたＴＬＢエントリを使用して任意のストレージ・アクセスを完了するまで、ＩＤＴＥ命令は完了しない。一例では、他のプロセッサがそのアクセスを完了したかどうかをこの発行元プロセッサに示すのは、静止コントローラである。すなわち、発行元プロセッサがマスタ・プロセッサとみなされ、ＩＤＴＥ命令による影響を受ける任意のスレーブ・プロセッサはその状態をコントローラに示す。コントローラは、スレーブ・プロセッサから適切な状態を受け取ったのに応答して、マスタに対して完了を示す。処理が完了すると、ステップ７３６で命令は終了する。そうでない場合、プロセッサは所定量の時間だけ待機して、再度状況をチェックするか、または完了に関する信号、ＩＮＱＵＩＲＹ  ７３４を受信する。
【００７５】
一実施形態では、領域またはセグメントのテーブル・エントリに格納すること、およびＴＬＢエントリを消去することは、無効ビットがすでに領域またはセグメントのテーブル・エントリ内に１つあった場合は、実行されるかまたは実行されない場合がある。
【００７６】
上記で説明した実施形態では、ＴＬＢエントリの消去は所望のエントリを無効化した後に実行されるが、他の実施形態では、ＴＬＢエントリの消去は各無効化の後、選択した無効化数の後、などに実行することができる。
【００７７】
本発明の他の態様では、代替としてＩＤＴＥ命令を使用して、（たとえば、アドレス・スペース・コントロール要素（ＡＳＣＥ）によって指定された）アドレス・スペースに関連付けられたＴＬＢエントリをパージすることもできる。一例では、このオプションは汎用レジスタＲ２のビット５２を１に設定することによって示される。このオプションでは、汎用レジスタＲ１のコンテンツ（図１２を参照）ならびに汎用レジスタＲ２のビット０〜４３および５３〜６３（図１３を参照）が無視される。汎用レジスタＲ３のコンテンツは、使用されているテーブル起点、ビット０〜５１を備えたアドレス・スペース・コントロール要素のフォーマットを有する（図１４）。汎用レジスタＲ３のビット５２〜６３は無視される。Ｒ３はゼロまたは非ゼロの場合があり、すなわちレジスタ０を含む任意の汎用レジスタを指定することができる。このオペレーションはストレージのいずれの無効化も実行しないが、少なくともテーブル起点フィールドが汎用レジスタＲ３内のテーブル起点フィールドに一致する複合領域およびセグメント・テーブル・エントリとページ・テーブル・エントリとを、構成内のＣＰＵのＴＬＢから消去する。（他の実施形態では、インプリメンテーションはエントリ内のテーブル起点に関係なくページ・テーブル・エントリを消去することができる。すなわち、すべてのページ・テーブル・エントリを消去することができる。）
【００７８】
ＡＳＣＥオペレーションによる消去に関連付けられた論理の一実施形態について、図１５を参照しながら説明する。初めにステップ９００で、対応するＴＬＢエントリが消去されることになる領域テーブルまたはセグメント・テーブルを指定する領域テーブルまたはセグメント・テーブルの起点が指定される。一例では、これは汎用レジスタＲ３のビット０〜５１で指定される。その後ステップ９０２では、システム内のすべてのプロセッサ上で、少なくともＲ３に指定されたテーブル起点に対応する複合領域およびセグメント・テーブル・エントリとページ・テーブル・エントリとが消去される。
【００７９】
その後、ＩＤＴＥ命令の実行が完了するかどうかの判定、ＩＮＱＵＩＲＹ  ９０４が実行される。一実施形態では、発行元ＣＰＵ上で指定されたパラメータに対応するＴＬＢエントリが消去されるまで、ならびに構成内の他のＣＰＵが指定されたパラメータに対応するＴＬＢエントリを使用して変更および参照ビットの更新を含む任意のストレージ・アクセスを完了するまで、ＩＤＴＥ命令は完了しない。エントリが消去され、ストレージ・アクセスが完了した場合、ステップ９０６でＩＤＴＥ命令の実行は完了する。そうでない場合、
プロセッサは所定量の時間だけ待機して、再度状況をチェックするか、または完了に関する信号、ＩＮＱＵＩＲＹ  ９０４を受信する。
【００８０】
上記の詳細な説明は、ＩＤＴＥ命令に関連付けられた処理である。一実施形態では、オペレーションが必ずしもＴＬＢ実スペース・エントリに影響を与えるとは限らない。次に、ＩＤＴＥ命令の一実施形態の処理に関連付けられた追加の情報、拡張機能、あるいは実施形態、またはそれらすべてを提供する。
【００８１】
１．モデルまたは選択された実施形態に応じて、ＴＬＢエントリの選択的消去を様々な方法でインプリメントすることができる。たとえば一般に、指定された最低数よりも多くのエントリを消去することができる。無効化および消去オペレーションが実行される場合、
セグメント索引である有効無効化索引に等しいセグメント索引を含むすべての複合領域およびセグメント・テーブル・エントリ（ＣＲＳＴＥ）を消去するか、あるいは有効無効化索引がセグメント索引でない場合にすべてのＣＲＳＴＥを消去することができる。さらに、エントリ内のページ・テーブル起点に関係なくＣＲＳＴＥまたはページ・テーブル・エントリを消去することができる。ＡＳＣＥオペレーションによる消去が実行される場合、エントリ内のテーブル起点に関係なくページ・テーブル・エントリを消去することができる。いずれかのオペレーションが実行される場合、一実施形態では、正確な必要最低数のエントリを消去することができる。
【００８２】
２．アドレス・スペース・コントロール要素は、領域テーブルまたはセグメント・テーブルの起点の代わりに実スペース・トークンの起点を含むことができる。汎用レジスタＲ３内のテーブル起点は、レジスタ内のトークン起点と区別不能である。
【００８３】
３．無効化および消去オペレーションが指定された場合、ＴＬＢエントリの消去はセグメント・テーブル・エントリ内のページ・テーブル起点を使用することができる。したがって、付加状態のセグメント・テーブル・エントリが現在の値とは異なるページ・テーブル起点を含んでいた場合、以前の値を含むエントリのコピーがＴＬＢ内に残ったままとなる可能性がある。
【００８４】
４．無効化および消去オペレーションが指定された場合、ＩＤＴＥ用のＤＡＴテーブル・エントリのアドレスは６４ビット・アドレスであり、２６４−１でのラップアラウンドを使用する６４ビット・アドレス算術に関する通常の規則に従ってアドレス算術が実行される。また、オフセットおよび長さフィールドは使用されない。したがって、最大ストレージ場所から場所０へとラップするためにＤＡＴテーブルは指定されないことになり、第１の指定エントリおよび汎用レジスタＲ３のビット５３〜６３によって指定されたすべての追加エントリは指定されたテーブル内にあるはずである。
【００８５】
５．ＩＤＴＥ命令はＳＩＥの下でのインターセプトの対象となる。一実施形態では、システムが逐次化されるため、ＩＤＴＥ命令を実行中のプロセッサは、指定されることになるＴＬＢエントリを使用して他のプロセッサが停止するまでオペレーションを開始できない。さらにＩＤＴＥ命令を実行中のプロセッサは、システム内のすべてのプロセッサのＴＬＢから該当するエントリが消去されるまで、他の実行に進むことはない。
【００８６】
６．逐次化機能は、オペレーションが開始される前、およびオペレーションが完了した後に再度、実行される。逐次化はこのＣＰＵに適用され、他のＣＰＵは必ずしも逐次化されるとは限らない。
【００８７】
上記の詳細な説明は、セグメントまたは領域テーブルのエントリの無効化と、１つまたは複数の変換ルックアサイド・バッファからの少なくとも対応するエントリ（または他のエントリ）の原子的消去とが実行可能な、命令の一例である。本明細書では特定の命令について説明するが、本発明の趣旨を逸脱することなく多くの変形形態が実行可能である。たとえば、異なるオペレーション・コード、異なるフィールド、異なるレジスタまたはレジスタなし、異なるビットなどを使用することができる。たとえば他の命令セット・アーキテクチャで、何らかの異なる方法（たとえば異なるオペレーション・コード、命令内の異なるフィールド、異なるレジスタが使用される）で等価の命令を定義することができるが、依然として本発明の１つまたは複数の態様が適用される。さらに前述のように、本発明の１つまたは複数の態様はＩＢＭのｚ／Ａｒｃｈｉｔｅｃｔｕｒｅなどのターゲット・アーキテクチャのソフトウェア・エミュレーションにも等しく適用される。この場合、前述のＴＬＢは、最新の仮想アドレスの実アドレスへのマッピングを保持するためにソフトウェア・エミュレータによってインプリメントされた配列または他のデータ構造とすることができる。エミュレータ・ソフトウェアがＴＬＢに類似のいずれの構造もインプリメントしない場合もある。この場合、ストレージ内のエントリの無効化のみが適用可能である。
【００８８】
このように本明細書では、ストレージの無効化、ストレージの無効化およびバッファ・エントリの原子的消去、またはバッファ・エントリの消去が実行可能な命令が提供される。したがって、命令の１つまたは複数のレジスタをオペレーションなし（ｎｏ−ｏｐ）として構成可能であると言われている。すなわち、それらレジスタ内に提供されていない特定のオペレーション（たとえば無効化、消去など）に関連付けられた情報があれば、無視されるか、またはオペレーションが実行されていないことを示す。
【００８９】
無効化、無効化および消去、または消去が提供された特定の命令について、上記で説明したが、この命令は修正可能であるか、またはＩＤＴＥによってインプリメントされたオペレーションの１つまたは複数の態様を実行するだけの他の命令をインプリメントすることができる。たとえばある命令は、ストレージの無効化のみをインプリメントすることができる。さらに一例として、この命令は特定のセグメントまたは領域テーブルに関連付けられたバッファからのみ、エントリをパージすることができる。さらに他の例として、アドレス・スペースに基づいてエントリをパージするだけの命令をインプリメントすることができる。
【００９０】
無効化あるいは消去またはその両方の機能のコンピュータ設計命令フォーマットの商用インプリメンテーションでは、命令は、アセンブラ言語で作成するオペレーティング・システム・プログラマなどのプログラマによって使用される。記憶メディアに格納されたこれらの命令フォーマットは、本来ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ  ＩＢＭ  Ｓｅｒｖｅｒで、または別法として他のアーキテクチャを実行するマシンで、実行することができる。これらは、既存のおよび将来のＩＢＭメインフレーム・サーバおよびＩＢＭの他のマシン（たとえばｐＳｅｒｉｅｓ  ＳｅｒｖｅｒおよびｘＳｅｒｉｅｓ  Ｓｅｒｖｅｒ）でエミュレートすることができる。これらは、ＩＢＭ、Ｉｎｔｅｌ、ＡＭＤ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ、およびその他によって製造されたハードウェアを使用する多種多彩なマシン上でＬｉｎｕｘを実行しているマシンで実行可能である。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの下でのハードウェアでの実行に加えて、Ｌｉｎｕｘ、ならびにＨｅｒｃｕｌｅｓ、ＵＭＸ、ＦＸＩ、またはＰｌａｔｆｏｒｍ  Ｓｏｌｕｔｉｏｎｓによるエミュレーションを使用するマシンを使用することが可能であり、一般にエミュレーション・モードで実行される。
【００９１】
エミュレーション・モードでは、エミュレートされている特定の命令が復号され、個々の命令をインプリメントするためにＣサブルーチンまたはドライバ内などのようにサブルーチンが構築されるか、または特定のハードウェア用のドライバを提供するために、本発明の一実施形態の説明を理解した後であれば当技術分野の範囲内である、何らかの他の技法が使用される。米国特許第５５５１０１３号、米国特許第６００９２６１号、米国特許第５５７４８７３号、米国特許第６３０８２５５号、米国特許第６４６３５８２号、および米国特許第５７９０８２５号を含むがこれらに限定されることのない、様々なソフトウェアおよびハードウェアのエミュレーション特許では、当業者が使用可能なターゲット・マシン向けの異なるマシン用に設計された命令フォーマットのエミュレーションを達成するための様々な既知の方法、ならびに上記で参照された技法によって使用される商用ソフトウェア技法が例示されている。
【００９２】
有利なことには、本発明の１つまたは複数の態様はシステムの性能を向上させる。たとえば、バッファを完全にパージする代わりにバッファから選択的にエントリをパージすることによって、エントリを不要に再作成する必要がないためにシステム性能が強化される。すなわち、１つのＴＬＢエントリを作成するためには２０＋から１００のサイクルが必要であり、選択的パージングによりエントリの不要な再作成が回避される。
【００９３】
さらに他の利点として、ＴＬＢ全体のパージが望ましい場合、インプリメンテーションはオーバー・パージングが可能である。また、たとえばＴＬＢが使用されない場合、ＴＬＢ部分をｎｏ−ｏｐとして扱うことができる。有利なことにＩＤＴＥ命令は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せでインプリメント可能であるか、あるいはターゲット・コンピュータ命令セットのエミュレータで使用することができる。
【００９４】
本発明の趣旨を逸脱することなしに、上記の環境に対する多くの変形形態が可能である。たとえば本発明の１つまたは複数の態様を、たとえば１つまたは複数のページング可能エンティティ（たとえばゲスト）が１つまたは複数のプロセッサ上で実行する仮想マシン・エミュレーションに等しく適用することができる。一例として、ページング可能ゲストはＳｔａｒｔ  Ｉｎｔｅｒｐｒｅｔｉｖｅ  Ｅｘｅｃｕｔｉｏｎ（ＳＩＥ）アーキテクチャによって定義され、その一例は、「ＩＢＭ  Ｓｙｓｔｅｍ／３７０拡張アーキテクチャ」と題するＩＢＭ資料Ｎｏ．ＳＡ２２−７０９５（１９８５年）のＩＢＭ（登録商標）資料に記載されている。
【００９５】
ＳＩＥおよびｚ／Ａｒｃｈｉｔｅｃｔｕｒｅについては上述したが、本発明の１つまたは複数の態様は、ページング可能エンティティまたは同様の構成を採用する他のアーキテクチャあるいは環境、またはその両方に等しく適用可能である。
【００９６】
さらに、前述の様々な実施形態は単なる例に過ぎない。本発明の趣旨を逸脱することなく、これらの実施形態に対する多くの変形形態が可能である。たとえば、本明細書では論理的に区分された環境について説明したが、これは単なる一例に過ぎない。本発明の諸態様は、複数のゾーンを有する他の環境および区分環境を含む、多くのタイプの環境にとって有益である。さらに、中央プロセッサ複合体はないが、複数のプロセッサが互いに結合されている場合もある。さらに、本発明の１つまたは複数の態様は単一プロセッサ環境にも適用可能である。
【００９７】
本明細書では特定の環境について説明したが、本発明の趣旨を逸脱することなく、これらの環境に多くの変形形態をインプリメントすることができる。たとえば環境が論理的に区分されている場合、環境内により多くのまたはより少ない論理区画を含めることが可能である。さらに、複数の中央処理複合体を互いに結合することも可能である。これらは、実行可能な変形形態の一部に過ぎない。加えて、他の変形形態も可能である。たとえば、本明細書で説明したコントローラは命令を逐次化するため、一度に１つのＩＤＴＥ命令が実行されるが、他の実施形態では一度に複数の命令を実行することができる。さらに、（１つまたは複数のコントローラからの）複数の静止要求をシステム内で並行して未処理とすることもできる。追加の変形形態も可能である。
【００９８】
本明細書で使用される「処理ユニット」という用語には、ゲストなどのページング可能エンティティ、プロセッサ、エミュレータ、あるいは他の同様のコンポーネント、またはそれらのすべてが含まれる。さらに「処理ユニットによって」という用語には、処理ユニットに代行することが含まれる。「バッファ」という用語には、ストレージのある区域、ならびに配列を含むがこれに限定されることのない様々なタイプのデータ構造が含まれ、「テーブル」という用語にはテーブル・タイプ以外のデータ構造を含めることができる。さらに命令は、情報を指定するためのレジスタ以外も含むことができる。さらに、ページ、セグメント、あるいは領域、またはそれらすべては、本明細書に記載されたものとは異なるサイズとすることができる。
【００９９】
本発明の１つまたは複数の機能は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの何らかの組合せでインプリメントすることができる。さらに、これら機能のうちの１つまたは複数をエミュレートすることもできる。
【０１００】
本発明の１つまたは複数の態様は、たとえばコンピュータ使用可能メディアを有する製品に含めることができる。このメディアはその内部に、本発明の機能を提供および容易にするために、たとえばコンピュータ読取り可能プログラムとそのコード手段または論理（たとえば命令、コード、コマンドなど）を具体化している。製品はコンピュータ・システムの一部として含めるか、または別々に販売することができる。
【０１０１】
加えて、本発明の機能を実行するためにマシンによる実行が可能な命令の少なくとも１つのプログラムを具体化する、マシンによる読取りが可能な少なくとも１つのプログラム・ストレージ・デバイスを提供することができる。
【０１０２】
本明細書に記載された流れ図は単なる例に過ぎない。記載されたこれらの図面またはステップ（またはオペレーション）には、多くの変形形態が可能である。たとえば、ステップを異なる順序で実行するか、あるいはステップを追加、削除、または修正することができる。
【０１０３】
例えば、無効化されることになる、ストレージの複数ページを有するストレージのユニットを、命令を介して指定するための手段と、ストレージのユニットを無効化するための手段とを有する、コンピューティング環境のストレージを無効化するための装置も本発明により提供される。
【図面の簡単な説明】
【０１０４】
【図１】本発明の１つまたは複数の態様を組み込み、これを使用するコンピューティング環境の一実施形態を示す図である。
【図２】本発明の一態様に従った、図１のコントローラに関連付けられた他の細部の一実施形態を示す図である。
【図３】本発明の一実施形態に従った、他のコンピュータをエミュレート可能なホスト・コンピュータの一実施形態を示す図である。
【図４】本発明の一実施形態に従った、ストレージの無効化に関連付けられた論理の一実施形態を示す図である。
【図５】本発明の一実施形態に従った、バッファ・エントリの消去に関連付けられた論理の一実施形態を示す図である。
【図６】本発明の一実施形態に従った、動的アドレス変換テーブル・エントリ無効化（ＩＤＴＥ）命令のフォーマットの一実施形態を示す図である。
【図７】本発明の一実施形態に従った、図６のＩＤＴＥ命令の汎用レジスタＲ１に関連付けられたフィールドの一実施形態を示す図である。
【図８】本発明の一態様に従った、図６のＩＤＴＥ命令の汎用レジスタＲ２に関連付けられたフィールドの一実施形態を示す図である。
【図９】本発明の一態様に従った、図６のＩＤＴＥ命令の汎用レジスタＲ３に関連付けられたフィールドの一実施形態を示す図である。
【図１０】本発明の一態様に従った、ＩＤＴＥ命令に関連付けられた論理の一実施形態を示す図である。
【図１１】本発明の一態様に従った、ＩＤＴＥ命令に関連付けられた論理の一実施形態を示す図である。
【図１２】本発明の一態様に従った、ＩＤＴＥ命令の代替オペレーションに使用されている汎用レジスタＲ１のフィールドの一実施形態を示す図である。
【図１３】本発明の一態様に従った、ＩＤＴＥ命令の代替オペレーションに使用されている汎用レジスタＲ２のフィールドの一実施形態を示す図である。
【図１４】本発明の一態様に従った、ＩＤＴＥ命令の代替オペレーションに使用されている汎用レジスタＲ３のフィールドの一実施形態を示す図である。
【図１５】本発明の一態様に従った、ＩＤＴＥ命令の代替オペレーションに関連付けられた論理の一実施形態を示す図である。
【図１】
0004608484.tif 000003
【図２】
0004608484.tif 000004
【図３】
0004608484.tif 000005
【図４】
0004608484.tif 000006
【図５】
0004608484.tif 000007
【図６】
0004608484.tif 000008
【図７】
0004608484.tif 000009
【図８】
0004608484.tif 000010
【図９】
0004608484.tif 000011
【図１０】
0004608484.tif 000012
【図１１】
0004608484.tif 000013
【図１２】
0004608484.tif 000014
【図１３】
0004608484.tif 000015
【図１４】
0004608484.tif 000016
【図１５】
0004608484.tif 000017