JP4608484B2 - ストレージの無効化、バッファ・エントリの消去 - Google Patents

ストレージの無効化、バッファ・エントリの消去 Download PDF

Info

Publication number
JP4608484B2
JP4608484B2 JP2006506228A JP2006506228A JP4608484B2 JP 4608484 B2 JP4608484 B2 JP 4608484B2 JP 2006506228 A JP2006506228 A JP 2006506228A JP 2006506228 A JP2006506228 A JP 2006506228A JP 4608484 B2 JP4608484 B2 JP 4608484B2
Authority
JP
Japan
Prior art keywords
entry
address translation
address
region
entries
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2006506228A
Other languages
English (en)
Other versions
JP2006526203A (ja
JP2006526203A5 (ja
Inventor
スリーゲル、ティモシー、ジョン
ヘラー、リサ
フェファー、アーウィン
プラムベック、ケネス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2006526203A publication Critical patent/JP2006526203A/ja
Publication of JP2006526203A5 publication Critical patent/JP2006526203A5/ja
Application granted granted Critical
Publication of JP4608484B2 publication Critical patent/JP4608484B2/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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
  • Electrically Operated Instructional Devices (AREA)

Description

本発明は、一般にコンピューティング環境での処理に関し、特に、ストレージの無効化、バッファ・エントリの消去、およびそのための命令に関する。
既存のコンピューティング環境は、通常は補助ストレージ内に維持されている仮想ストレージを使用して、使用可能ストレージのサイズを大きくする。仮想ストレージのページが参照される場合、参照に使用された仮想アドレスが動的アドレス変換によって実ストレージ・アドレスに変換される。変換が成功した場合、仮想ストレージは有効であり、そうでない場合は無効である。仮想ストレージのページは、ページ・テーブル・エントリ内の無効ビットによって有効または無効として示され、このエントリにはページが有効な場合に実ストレージ・アドレスが含まれる。
ストレージのページは、一度に1ページずつ無効化することができる。たとえば、インターナショナル・ビジネス・マシンズ・コーポレーションの提供するz/Architectureに基づくコンピューティング環境では、ページ・テーブル・エントリ無効化(IPTE/Invaidate Page Table Entry)命令と呼ばれる命令を使用してストレージのページを無効にする。無効化には、仮想ストレージに関連付けられ、物理メイン・ストレージに配置された制御構造において、動的アドレス変換によって仮想ストレージ内のある場所の仮想アドレスが実アドレスとも呼ばれる物理メイン・ストレージ・アドレスに変換できないことを示すように、無効インジケータを設定することが含まれる。さらにこの命令は、ページに関連付けられた内部マシン・バッファ・エントリの消去にも使用され、このエントリは、動的アドレス変換時に物理メイン・ストレージ内の制御構造へのアクセスを避けるために使用することができる。たとえばz/Architectureには、仮想アドレスから実アドレスへの動的アドレス変換時に使用される変換ルックアサイド・バッファがある。ストレージのページが無効化される場合、対応するバッファのそのページに関連付けられたエントリも消去される。
変換ルックアサイド・バッファ全体のパージを可能にする命令もある。たとえばz/Architectureでは、比較スワップ・パージ(CSP/Compare and Swap and Purge)命令と呼ばれる命令が、変換ルックアサイド・バッファのすべてのエントリをパージする。
米国特許第6199219号 米国特許第5551013号 米国特許第6009261号 米国特許第5574873号 米国特許第6308255号 米国特許第6463582号 米国特許第5790825号 「z/Architectureオペレーションの原理」と題する2000年12月付けIBM資料No.SA22−7830−00 「IBM System/370拡張アーキテクチャ」と題するIBM資料No.SA22−7095(1985年)
したがって、ストレージのページを無効化してそのページに関連付けられたエントリのバッファを消去する命令、およびバッファ全体を消去する命令があるが、ストレージの様々なサイズのユニットを選択的に無効化すること、あるいはそれらに関連付けられたエントリのバッファを消去すること、またはその両方が可能な命令が依然として求められている。たとえば、1ページより多くの選択されたストレージ・ユニットを無効化すること、あるいはそれらに関連付けられたバッファ・エントリを消去すること、またはその両方を指定することが可能な命令が求められている。さらに、他のストレージ・ユニット向けのバッファ・エントリに影響を与えることなく、選択されたストレージ・ユニット向けのバッファ・エントリの消去を可能にする命令も求められている。
本発明は、コンピューティング環境のストレージを無効化する方法を提供する。
この方法には、たとえば無効化されることになるストレージのユニットを指定することが含まれ、ストレージ・ユニットはストレージの複数ページを含み、指定することには、ストレージ・ユニットの記述子の提供およびストレージ・ユニットの無効化が含まれる。
好ましくは、本発明はコンピューティング環境のバッファの消去を容易にする方法を提供する。この方法には、たとえば、1つまたは複数のバッファの1つまたは複数のエントリの消去が実行されるストレージ・ユニットを識別することであって、このストレージ・ユニットがストレージの複数ページを含む、識別することと、識別されたストレージ・ユニットに関連付けられた1つまたは複数のバッファの1つまたは複数のエントリを消去することであって、他のストレージ・ユニットに関連付けられた1つまたは複数のエントリは消去されない、消去することと、が含まれる。
好ましくは、コンピューティング環境内で実行される命令が提供される。この命令は、たとえば、実行される命令を識別するためのオペレーション・コードと、ストレージの複数ページを含む無効化されることになるストレージ・ユニットに関連付けられた情報を指定するための無効化指定と、命令が使用する追加情報を指定するためのその他指定と、1つまたは複数のバッファの1つまたは複数のエントリが消去されることになる、ストレージ・ユニットおよび他のストレージ・ユニットのうちの1つに関連付けられた情報を指定するための消去指定とを含み、無効化指定、その他指定、および消去指定のうちの1つまたは複数の、1つまたは複数のコンポーネントは、ノーオペレーションとして構成可能である。
好ましくは、コンピューティング環境内で実行される命令が提供される。この命令は、たとえば、実行される命令を識別するためのオペレーション・コード、ならびに、ストレージの複数ページを含む無効化されることになるストレージ・ユニットに関連付けられた情報を指定するための第1の無効化指定と、無効化されることになるストレージ・ユニットに関連付けられた追加の情報を指定するための第2の無効化指定と、1つまたは複数のバッファの1つまたは複数のエントリが消去されることになる、ストレージ・ユニットおよび他のストレージ・ユニットのうちの1つに関連付けられた情報を指定するための消去指定とのうちの、少なくとも1つを含み、消去指定によって指定される情報は、1つまたは複数のエントリが消去されない少なくとも1つの他のストレージ・ユニットに関連付けられていない。
上述の要約された方法に対応するシステムおよびコンピュータ・プログラムについても、本明細書で説明および記載する。
追加の特徴および利点が本発明の技法を介して実現される。本発明の他の実施形態および態様について本明細書で詳細に説明し、記載された発明の一部とみなされる。
本発明に関する主題は、本明細書に添付の特許請求の範囲で具体的に指摘および明白に記載されている。本発明の前述および他の目的、特徴、および利点は、添付の図面に関して記載された以下の詳細の説明から明らかである。
本発明の一態様に従って、ストレージの指定部分(たとえば仮想ストレージ)が無効化される。その例として、ストレージの複数ページを含むストレージのセグメント、または複数セグメントのストレージを含むストレージの領域が、無効化されるように選択される。無効化は、無効化されることになるストレージ・ユニットに対応するデータ構造エントリにある無効化インジケータを設定することで容易になる。本発明の他の態様では、無効化されるストレージまたは他のストレージに関連付けられたバッファ・エントリ(たとえば変換ルックアサイド・バッファ・エントリ)が消去される。さらに本発明の他の態様では、選択されていないアドレス・スペースのバッファ・エントリに影響を与えることなく、また無効化を実行することなく、選択されたアドレス・スペースに関連付けられたバッファ・エントリがバッファから消去される。一例では、上記オペレーションのうちの1つまたは複数を実行するために、本明細書で動的アドレス変換(DAT)テーブル・エントリ無効化(IDTE)命令と呼ばれるIBM(登録商標)のz/Architectureからの命令が使用される。
本発明の1つまたは複数の態様を組み込み、これらを使用するコンピューティング環境100の一実施形態について、図1を参照しながら説明する。コンピューティング環境100は、たとえばニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するz/Architectureに基づいている。z/Architectureについては、参照によりその全文が本明細書に組み込まれた、「z/Architectureオペレーションの原理」と題する2000年12月付けIBM資料No.SA22−7830−00のIBM(登録商標)資料に記載されている。(IBM(登録商標)は、アメリカ合衆国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションの登録商標である。本明細書で使用される他の名前は、インターナショナル・ビジネス・マシンズ・コーポレーションまたは他の会社の登録商標、商標、または製品名である場合もある。)一例では、z/Architectureに基づくコンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するeServer zSeriesを含む。
一例として、コンピューティング環境100は、コントローラ120に結合された中央プロセッサ複合体(CPC)102を含む。中央プロセッサ複合体102は、たとえば1つまたは複数の区画104(たとえば論理区画LP1〜LPn)、1つまたは複数の中央プロセッサ106(たとえばCP1〜CPm)、およびハイパーバイザ108(たとえば論理区画マネージャ)を含み、そのそれぞれについて以下で説明する。
各論理区画104は別々のシステムとして機能することができる。すなわち、各論理区画を独立してリセットすること、所望であれば初期にオペレーティング・システムと共にロードすること、および様々なプログラムで動作させることが可能である。論理区画内で動作するオペレーティング・システムまたはアプリケーション・プログラムはシステム全体にアクセスできるように見えるが、実際にはその一部しか使用することができない。ハードウェアおよびライセンス内部コード(一般に、マイクロコードと呼ばれる)を組み合せることによって、論理区画内のプログラムが異なる論理区画内のプログラムから干渉を受けないようにする。これにより、いくつかの異なる論理区画が単一または複数の物理プロセッサ上でタイム・スライス化された形で動作可能となる。この特定の例では、各論理区画が1つまたは複数の論理区画用とは異なる常駐オペレーティング・システム110を有する。一実施形態では、オペレーティング・システム110はニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するz/OSオペレーティング・システムである。
中央プロセッサ106は、論理区画に割り振られた物理プロセッサ・リソースである。たとえば論理区画104は1つまたは複数の論理プロセッサを含み、そのそれぞれが区画に割り振られた物理プロセッサ・リソース106のすべてまたは共有部分を表す。特定区画104の論理プロセッサは、その区画専用である、すなわち基礎となるプロセッサ・リソースがその区画用に予約されているか、または他の区画との共有、すなわち基礎となるプロセッサ・リソースを潜在的に他の区画が使用可能であるか、のいずれかとすることができる。
論理区画104は、プロセッサ106上で動作するマイクロコードによってインプリメントされるハイパーバイザ108によって管理される。論理区画104およびハイパーバイザ108はそれぞれ、中央プロセッサに関連付けられた中央ストレージのそれぞれの部分に常駐する1つまたは複数のプログラムを有する。ハイパーバイザ108の一例が、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションが提供するProcessor Resource/Systems Manager(PR/SM)である。
中央プロセッサ複合体に結合されたコントローラ120は、要求を発行する様々なプロセッサ間でのアービトレーション(arbitrate)の責務を負う集中論理を含む。たとえば、コントローラ120は要求を受け取ると、要求元がその要求のマスタ・プロセッサであるかどうか、および他のプロセッサがスレーブ・プロセッサであるかどうかを判別し、メッセージをブロードキャストし、そうでなければ要求を処理する。コントローラの一例は、米国特許第6199219号に記載されている。他の詳細についても、図2を参照しながら説明する。図2は、複数の中央プロセッサ(CPU)201に結合されたコントローラ200の一例を示す。この例では、2つの中央プロセッサが示されている。しかしながら、2つより多くのプロセッサをコントローラ200に結合できることを理解されよう。
コントローラ200は、たとえばシステム逐次化コントロール202を含む。システム逐次化コントロールを使用して、無効化命令などの逐次化される予定のオペレーションが、コンピューティング環境においてこうした命令が一度に1つだけ進行中であるという点で確実に逐次化されるようにする。これは、そのオペレーションに関するイベントのシーケンスも監視する。
コントローラ200は、様々なインターフェースを介して各中央プロセッサに結合される。たとえばインターフェース204は、実行するアクションを指定する「コントロール(control)」コマンドをコントローラに送信するため、およびコントローラからの情報を戻す「センス(sense)」コマンドを送信するために、中央プロセッサのライセンス内部コードによって使用される。別のインターフェースには、「センス」コマンドに関するコントローラからの情報を戻すために使用される応答バス206がある。応答バスは、「コントロール」コマンドに関するコマンド状況を送るためにも使用され、システム逐次化コントロールを含むコントローラ内の複数のソースから設定可能である。中央プロセッサは、このインターフェースを使用して、コントローラ200内のシステム逐次化コントロールの状態をセンスすることができる。
他のインターフェースには、コントローラが各CPUにコマンドを送信するために使用するインターフェース208がある。これも、システム逐次化コントロール202を含むコントローラ内の複数のソースからコントロール可能である。さらに他のインターフェースには、中央プロセッサ201のキャッシュ・コントロール212に信号を提供するインターフェース210がある。キャッシュ・コントロール212は、この信号に応答してコマンドを処理する。一例では、以下でより詳細に説明するように、キャッシュ・コントロール212は変換ルックアサイド・バッファ(TLB)213などの1つまたは複数のバッファに影響を与えるコマンドを処理する。
キャッシュ・コントロール212に加えて、中央プロセッサ201は、たとえば割り込みコントロール220および実行コントロール222を含む様々な他のコントロールを含む。特定のイベントに応答して、割り込みコントロール220はCPUにおける内部割込みを保留させ、次にこれが次の割り込み可能ポイントで実行コントロール222にプログラム命令処理を延期させる。割り込みに応答して、実行コントロール222はライセンス内部コードルーチンを呼び出し、キャッシュ・コントロール212が保留コマンドを処理できるようにブロードキャスト・オペレーション許可ラッチ224を設定する。
中央プロセッサ201は、中央プロセッサが静止しているか否かを示すCPU静止ラッチ226も含む。
前述のコンピューティング環境は単なる一例に過ぎない。たとえば、1つまたは複数の区画が異なるアーキテクチャ・モードで実行することが可能である。さらに他の例として、環境は必ずしもz/Architectureに基づくものとは限らず、Sun MicrosystemsのIntelが提供する他のアーキテクチャ、ならびにその他に基づくものとすることもできる。さらに環境は、特定のアーキテクチャまたはそのサブセットがエミュレートされる、エミュレータ(たとえばソフトウェアまたは他のエミュレーション機構)を含む場合がある。こうした環境では、たとえエミュレータを実行しているコンピュータがエミュレートされている機能とは異なるアーキテクチャを有することが可能であっても、エミュレータの1つまたは複数のエミュレーション機能が本発明の1つまたは複数の態様をインプリメントすることができる。一例として、エミュレーション・モードでは、エミュレートされている特定の命令またはオペレーションが復号され、個々の命令またはオペレーションをインプリメントするために適切なエミュレーション機能が構築される。
エミュレーション環境の他の詳細について、図3を参照しながら説明する。一例として、ホスト・コンピュータ300は他のアーキテクチャ、コンピュータ、あるいは他のコンピュータの処理機能またはそのすべてをエミュレートすることができる。たとえば、ホスト・コンピュータ300は、Intelアーキテクチャ、PowerPCなどのRISCアーキテクチャ、Sun Microsystemsが提供するSPARCアーキテクチャ、または他のアーキテクチャに基づくものであり、IBM(登録商標)のz/Architecture、あるいはIBM(登録商標)または他の企業の他のアーキテクチャをエミュレートすることができる。
ホスト・コンピュータ300は、たとえば、命令およびデータを格納するためのメモリ302と、メモリ302から命令を取り出すためおよびオプションで取り出した命令にローカル・バッファリングを提供するための命令取り出しユニット304と、命令取り出しユニット304から命令を受け取るためおよび取り出された命令のタイプを決定するための命令復号ユニット306と、命令を実行するための命令実行ユニット308とを含む。実行には、メモリ302からレジスタにデータをロードすること、レジスタからメモリにデータを戻して格納すること、あるいは、復号ユニットによって決定されたようにいくつかのタイプの算術または論理演算を実行することが含まれる可能性がある。
一例では、前述の各ユニットがソフトウェア内でインプリメントされる。たとえば、ユニットによって実行されるオペレーションは、エミュレータ・ソフトウェア内の1つまたは複数のサブルーチンとしてインプリメントされる。他の例では、1つまたは複数のオペレーションがファームウェア、ハードウェア、ソフトウェア、またはそれらの何らかの組合せでインプリメントされる。
さらに、図3はエミュレーションに関して記載されているが、図3の環境はエミュレーション環境である必要はない。他の例では、命令はネイティブ環境で実行され、オペレーションはハードウェア、ファームウェア、ソフトウェア、またはそれらの何らかの組合せでインプリメントされる。
コンピューティング環境は、仮想ストレージならびにメイン・ストレージを含むことができる。仮想ストレージは構成内で使用可能なメイン・ストレージのサイズをはるかに超える可能性があり、通常は補助ストレージ内で維持される。仮想ストレージは、ページと呼ばれるアドレスのブロックからなるものとみなされる。一番新しく参照された仮想ストレージのページが、物理メイン・ストレージのブロックを占有するように割り当てられる。ユーザがメイン・ストレージに表れない仮想ストレージのページを参照すると、その仮想ページがほとんど使用されないメイン・ストレージ内のページと置き換えられる。ストレージ内でのページのスワッピングは、ユーザが知らない間にオペレーティング・システムによって実行される場合がある。
仮想ストレージ内の場所を指定するのに使用されるアドレスは、仮想アドレスと呼ばれる。たとえば、最高4kバイトまでのスパンの順次仮想アドレスのブロックがページと呼ばれる。同様に、たとえば最高1Mバイトまでのスパンの順次仮想ページのブロックがセグメントと呼ばれ、たとえば最高2Gバイトまでのスパンの順次仮想セグメントのブロックが領域と呼ばれる。さらに、アドレス・スペース・コントロール要素(ASCE)によって示される仮想ストレージに関連付けられた仮想アドレスのシーケンスがアドレス・スペースと呼ばれる。アドレス・スペースを使用して、ユーザ間の分離の程度を与えることができる。アドレス・スペースは、1つまたは複数の領域、1つまたは複数のセグメント、1つまたは複数のページ、あるいはそれらの何らかの組合せを含むことができる。
様々なタイプのストレージのユニット(たとえば領域、セグメント、ページ)への関連付けが、ストレージのユニットに関連付けられた処理に使用されるデータ構造である。たとえば、領域への関連付けは領域テーブルであり、セグメントへの関連付けはセグメント・テーブルであり、ページへの関連付けはページ・テーブルである。これらのテーブルは、たとえば仮想アドレスをメイン・ストレージへのアクセスに使用される実アドレスに変換する(たとえば、動的アドレス変換)際に使用される。変換時に使用されるテーブルは、本明細書では変換テーブルと呼ばれ、アドレス・スペース・コントロール要素(ASCE)によって指定される。これについては、「z/Architectureオペレーションの原理」と題する2000年12月付けIBM資料No.SA22−7830−00のIBM(登録商標)資料に詳細に記載されている。現在メイン・ストレージに割り当てられていない仮想ストレージのユニットは無効と呼ばれる。仮想ストレージのユニットの無効状態は、ユニットに関連付けられたデータ構造内の無効インジケータで示される。
一実施形態では、DATプロセスを介して変換テーブル(たとえば領域テーブル、セグメント・テーブル、あるいはページ・テーブル、またはそのすべて)から導出された情報が、アドレス変換の性能を強化するために、本明細書では変換ルックアサイド・バッファと呼ばれるプロセッサ内に配置された1つまたは複数のバッファ内に維持されるように、動的アドレス変換機構がインプリメントされる。すなわち、変換時に必要な情報についてバッファをチェックし、その情報がバッファ内にない場合、1つまたは複数の変換テーブルにアクセスする。
一実施形態では、バッファ・エントリは、TLB複合(combined)領域およびセグメント・テーブル・エントリ、TLBページ・テーブル・エントリ、またはTLB実スペース・エントリの、3つのタイプのうちの1つとみなされるものであり、これらそれぞれについて以下で説明する。
TLB複合領域およびセグメント・テーブル・エントリ(CRSTE)は、実または絶対ストレージ内のテーブル・エントリから取得された情報と、ストレージからこの情報を取り出すために使用された属性との、両方を含む。一例では、TLB複合領域およびセグメント・テーブル・エントリ(CRSTE)は、
TO エントリを形成するために使用されたアドレス・スペース・コントロール要素内のテーブル起点と、
RX エントリを形成するために使用された仮想アドレスの領域索引と、
SX エントリを形成するために使用された仮想アドレスのセグメント索引と、
PTO 実または絶対ストレージ内のセグメント・テーブル・エントリから取り出されたページ・テーブル起点と、
C 実または絶対ストレージ内のセグメント・テーブル・エントリから取り出された共通セグメント・ビットと、
P 実または絶対ストレージ内のセグメント・テーブル・エントリから取り出されたページ保護ビットと、
のフィールドを含む。
V 妥当性ビットは、TLB内のエントリが有効であるかどうか、すなわち後続のエントリを検索するために使用可能であるかどうかを示す。
TLBページ・テーブル・エントリは、実または絶対ストレージ内のテーブル・エントリから取得された情報と、ストレージからこの情報を取り出すために使用された属性とを含む。一例では、TLBページ・テーブル・エントリは、
TO エントリがどのように形成されたかに応じて、エントリを形成するために使用されたアドレス・スペース・コントロール要素またはTLB複合領域およびセグメント・テーブル・エントリ内のテーブル起点と、
PTO エントリを形成するために使用されたページ・テーブル起点と、
PX エントリを形成するために使用された仮想アドレスのページ索引と、
PFRA 実または絶対ストレージ内のページ・テーブル・エントリから取り出されたページ・フレーム実アドレスと、
P 実または絶対ストレージ内のページ・テーブル・エントリから取り出されたページ保護ビットと、
を含む。
V 妥当性ビットは、TLB内のエントリが有効であるかどうか、すなわち後続のエントリを検索するために使用可能であるかどうかを示す。
時には、ストレージのユニットが無効化されることになる。この無効化を容易にするために、本明細書で説明するように、そのストレージ・ユニットに関連付けられた変換テーブルが採用される。さらにストレージの無効化に応答して、対応するバッファ・エントリも消去することができる。たとえば、ストレージのページを無効化するために、ページ・テーブル・エントリの無効ビットが設定される。加えて一例では、1つまたは複数のTLB内の対応するエントリが自動的に消去される。特定の一例では、ストレージのページに関連付けられたエントリの無効化および消去が、ページ・テーブル・エントリ無効化(IPTE/Invalidate Page Table Entry)命令によって実行される。
ストレージのページの無効化に加え、本発明の一態様に従い、ストレージのセグメントあるいはストレージの領域またはその両方を無効化することができる。一例として、この無効化では、セグメントあるいは領域またはその両方のテーブルが使用される。ストレージの特定ユニットの無効化に関連付けられた論理の一実施形態について、図4を参照しながら説明する。
初めにステップ400で、1つまたは複数のエントリが無効化されることになる領域またはセグメント・テーブルが識別される。一例では、これには領域テーブル起点またはセグメント・テーブル起点を提供することが含まれる。次にステップ402で、指定された領域またはセグメント・テーブル内のエントリが無効化用に識別され、ステップ404で、このエントリが無効化される。一例では、識別されたテーブル内のエントリを選択する領域索引またはセグメント索引(仮想アドレスのビット)を提供することによって識別が実行され、無効化には、エントリ内に無効インジケータを設定することが含まれる。無効インジケータを設定することに応答して、対応するストレージのユニット(たとえば領域またはセグメント)が無効化される。
その後、無効化するエントリがその他にもあるかどうかの判定、INQUIRY 406が実行される。無効化されることになるエントリがその他にもある場合、処理はステップ402へと進む。そうでない場合、処理は完了する。
領域またはセグメント・テーブル内の1つまたは複数のエントリを無効化し、その結果それらのストレージのユニットを無効化することに加えて、環境内の1つまたは複数のプロセッサ上の1つまたは複数のバッファから対応するエントリ(または他のエントリ)を消去またはパージすることができる。この消去に関連付けられた論理の一実施形態について、図5を参照しながら詳細に説明する。
初めに、領域またはセグメントのテーブル起点が指定されているかどうかに関する判定、INQUIRY 500が実行される。領域またはセグメントのテーブル起点が指定されている場合、ステップ502で、1つまたは複数のバッファの、その領域またはセグメントの起点に合致する領域またはセグメントの索引によって指定されたエントリが消去される。その後、その他に消去するエントリがあるかどうかの判定、INQUIRY 504が実行される。エントリがある場合、処理はステップ502へ進む。そうでない場合、処理は完了する。
INQUIRY 500に戻り、領域またはセグメントのテーブル起点が指定されない場合、ステップ508で、1つまたは複数のバッファの、領域またはセグメントの索引によって指定されたエントリが消去される。その後、その他に消去するエントリがあるかどうかの判定、INQUIRY 510が実行される。消去するエントリがその他にある場合、処理はステップ508へ進む。そうでない場合、処理は完了する。
一例では、無効化および消去は1つの命令によって実行される。この命令が、セグメントまたは領域テーブルの選択されたエントリを無効化し、少なくとも対応するエントリ(または他のエントリ)を構成のプロセッサ上のTLBから自動的にパージする。一例では、エントリは、物理、仮想、またはソフトウェアによってエミュレートされたものかどうかにかかわらず、すべてのプロセッサ上のすべてのTLBからパージされる。多重レベルTLB構造が存在する場合、一例ではすべてのレベルがパージされる。システム内に複数の論理区画が存在する場合、これおよび現在のIDTE命令が実行中である論理区画用に形成された他のプロセッサ上のTLBエントリがパージされる。
この命令は多くのアーキテクチャでインプリメント可能であり、エミュレートされる場合がある。例として命令は、プロセッサによって、または異なるネイティブ命令セットを有するコンピュータ上で実行中のソフトウェアによる、この命令を含む命令セットのエミュレーションによって、ハードウェア内で実行することができる。特定の一例では、命令はz/Architectureでインプリメントされ、本明細書では動的アドレス変換(DAT)テーブル・エントリ無効化(IDTE/Invalidate Dynamic Address Translation Tabel Entry)命令と呼ばれる。
たとえばIDTEは、領域テーブルまたはセグメント・テーブルの1つまたは複数のエントリを介してストレージの1つまたは複数の領域またはセグメントが無効化され、構成内のTLB(たとえばすべてのTLB)から少なくとも対応するエントリ(または他のエントリ)がパージされる、無効化および消去オプションを提供する。この命令は、パージされる最低セットのTLBエントリを指定する。他のインプリメンテーションでは、IDTE命令の実行時に、より多くまたはすべてのTLBエントリがパージされる場合がある。
DATテーブル・エントリ無効化(IDTE)命令のフォーマットの一実施形態について、図6を参照しながら説明する。一例では、IDTE命令600は、たとえばDATテーブル・エントリ無効化命令を指定するオペレーション・コード602(たとえば’B98E’x)および複数のレジスタ604〜608を含む。それぞれのレジスタについて、図7〜9を参照しながら以下で詳細に説明する。
図7を参照すると、レジスタ606は汎用レジスタR1であり、たとえばテーブル起点(たとえばビット0〜51)を備えたアドレス・スペース・コントロール要素のフォーマットと、使用されたタイプ指定コントロール(ビット60および61)とを有する。ビット52〜59、62、および63は無視される。特にR1は、たとえば、1つまたは複数のエントリが無効化されることになる変換テーブルを指定する無効化用の領域テーブルまたはセグメント・テーブルの起点と、そのテーブルのタイプ(たとえば領域テーブルまたはセグメント・テーブル)を指定するタイプ指定コントロール(DT)612と、を含む。
レジスタ608は汎用レジスタR2であり(図8)、第1レベルの領域テーブルを指定する第1領域索引614と、第2レベルの領域テーブルを指定する第2領域索引616と、第3レベルの領域テーブルを指定する第3領域索引618とを含む。すなわち、大規模な仮想アドレスを収容するために、3つのレベルの領域テーブルが使用される。レジスタR2は、セグメント・テーブルの索引であるセグメント索引620と、実行される機能を決定するモード・インジケータ621と、いくつのエントリが無効化されることになるかを示す追加エントリ・インジケータ622と、も含む。たとえば汎用レジスタR2のビット53〜63は、無効化されることになる追加テーブル・エントリの数を指定する2進数を含む。一例では、無効化されることになるエントリの数は、0〜2047のビット53〜63の値に対応する1〜2048である。汎用レジスタR2のビット44〜51はゼロであり、そうでない場合、指定例外が認識される。したがって、汎用レジスタR2のビット0〜43は、仮想アドレスの領域索引およびセグメント索引のフォーマットを有する。汎用レジスタR1によって指定されたテーブル・タイプでエントリを選択するためにDATによって使用されるビット0〜43の部分は有効無効化索引(Effective Invalidation Index)と呼ばれ、以下でより詳細に説明する。
レジスタ604は汎用レジスタR3であり、たとえば、非ゼロの場合はテーブル起点ビット0〜51が使用されている、アドレス・スペース・コントロール要素のフォーマットを有する。このテーブル起点は、消去されることになるTLBエントリを選択するために使用され、これが指定するテーブルのタイプは汎用レジスタR1のビット60および61とは無関係である。汎用レジスタR3のビット52〜63は無視される。R3がゼロの場合、汎用レジスタ0のコンテンツ全体が無視される。一例では、消去されることになるエントリが、無効化されるエントリと同じであるかまたは異なる場合がある。
無効化および消去オペレーションに関連付けられた論理の一実施形態について、図10〜11を参照しながら説明する。一例では、汎用レジスタR2のビット52がゼロの場合、無効化および消去オペレーションが指定される。このオペレーションでは、ストレージ内の指定された領域テーブル・エントリまたはセグメント・テーブル・エントリ、あるいは指定されたエントリで始まるエントリの範囲が無効化され、構成のCPU内の変換ルックアサイド・バッファ(TLB)の関連付けられたエントリ(または他のエントリ)が消去される。一例では、バッファが多重レベルの場合、すべてのCPU内のバッファのすべてのレベルが消去される。
図10を参照すると、初めにステップ700で、1つまたは複数のエントリが無効化されることになる領域テーブルまたはセグメント・テーブルを指定する、領域テーブルまたはセグメント・テーブルの起点が指定される。一例では、これは汎用レジスタR1内で指定される。加えてステップ702で、無効化されることになるストレージ内のテーブル・エントリが選択される。一例では、本明細書で説明するように、汎用レジスタR1内のテーブル起点および汎用レジスタR2の有効無効化索引を追加すること、ならびに様々な規則に従うことによって、テーブル・エントリが指定される。
汎用レジスタR1のビット60および61は、テーブル・タイプおよび有効無効化索引を以下のように指定する。
Figure 0004608484
上記の表を参照すると、ビット60および61が2進の値11を有する場合、第1領域テーブル内のエントリを選択するために、R1の第1領域テーブル起点に関してR2の第1領域索引部分が使用される。テーブル起点は64ビット・アドレスとして扱われる。
実または絶対ストレージ内の第1領域テーブル・エントリの64ビット・アドレスは、第1領域テーブル指定のビット0〜51の右側に12のゼロを付加すること、および右端に3つ、左端に50のゼロが付加された第1領域索引を追加することによって、取得される。この追加は、現在のプログラム状況ワード(PSW)のビット31および32によって指定された現在のアドレス指定モードに関係なく、64ビット・アドレス算術の規則に従って実行される。追加の際にビット位置ゼロが実施された場合、これは無視される。これら2つのコンポーネントから形成されたアドレスが、実または絶対アドレスである。現在のPSWが24ビット、31ビット、または64ビットのアドレス指定モードを指定するかどうかにかかわらず、アドレスの64ビットすべてが使用される。
一例では、他のCPUが監視している間に、第1領域テーブル・エントリ全体がストレージから並行して取り出される。エントリへの取り出しアクセスはキー制御保護の対象となり、格納アクセスはキー制御保護および低アドレス保護の対象となる。第1領域テーブル・エントリを取り出すために生成されたストレージ・アドレスが構成内で使用不能な場所を指定した場合、アドレス指定例外が認識され、オペレーションのユニットが抑制される。
ビット60および61が2進の値10を有する場合、第2領域テーブルからエントリを選択するために、R1の第2領域テーブル起点に関してR2の第2領域索引が使用される。第2領域テーブル・ルックアップ・プロセスは、第1領域テーブル・ルックアップ・プロセスと同様である。例外が認識されない場合、第2領域テーブルから取り出されたエントリが開始を指定し、対応する第3領域テーブルのオフセットおよび長さを指定する。
ビット60および61が2進の値01を有する場合、第3領域テーブルからエントリを選択するために、R1の第3領域テーブル起点に関してR2の第3領域索引部分が使用される。第3領域テーブル・ルックアップ・プロセスは、第1領域テーブル・ルックアップ・プロセスと同様である。例外が認識されない場合、第3領域テーブルから取り出されたエントリが開始を指定し、対応するセグメント・テーブルのオフセットおよび長さを指定する。
ビット60および61が2進の値00を有する場合、セグメント・テーブルからエントリを選択するために、R1のセグメント・テーブル起点に関してR2のセグメント索引部分が使用される。セグメント・テーブル・ルックアップ・プロセスは、第1領域テーブル・ルックアップ・プロセスと同様である。例外が認識されない場合、セグメント・テーブルから取り出されたエントリが対応するページ・テーブルの開始を指定する。
一例では、テーブル・エントリ全体がストレージから並行して取り出される。その後、ステップ704でエントリが無効化される。一例では、エントリは、エントリのビット58を2進の1に設定することによって無効化される。このエントリを無効化することによって、対応するストレージのユニットが無効化される。
その後、無効化されることになるその他のエントリがあるかどうかの判定、INQUIRY 706が実行される。一例では、この判定は汎用レジスタR2のビット53〜63をチェックすることによって実行される。汎用レジスタR2のビット53〜63がすべてゼロではない場合、その他のエントリが無効化されることになる。したがって、以前に使用された有効無効化索引の値に1が追加され、処理はステップ700へと進む。これが繰り返されて、ビット53〜63によって指定された数よりも1多い数のエントリが無効化される。有効無効化索引の左端のビット位置の実行が無視され、このケースではテーブル内のラップアラウンドが発生する。汎用レジスタR2のコンテンツは変更されないままである。
1つまたは複数のエントリの無効化に続き、本発明の他の態様に従って、ステップ708で、このCPUがそのTLBから選択されたエントリを消去し、構成内の他のCPUにそれらのTLBから選択されたエントリを消去するように信号を発する。一例では、各TLBから少なくとも以下の条件に合致するそれらの複合領域およびセグメント・テーブル・エントリ(CRSTE)が消去される。
汎用レジスタR2内の有効無効化索引およびその左側にあるビットと、TLBエントリ内の領域およびセグメント索引フィールドの同じ部分とが一致する。(一実施形態では、これらのフィールドがセグメント索引フィールドを含む場合、それらの領域索引フィールドに関係なくCRSTEを消去するか、またはすべてのCRSTEを消去することができる。フィールドがセグメント索引フィールドを含まない場合、すべてのCRSTEを消去することができる。)汎用レジスタR2のビット53〜63により複数のテーブル・エントリが無効化された場合、有効無効化索引が増分され、索引の左端ビット位置の実行は失われる。
R3がゼロであるか、または汎用レジスタR3内のテーブル起点フィールドがTLBエントリ内のテーブル起点フィールドと一致する。
無効化されたエントリがセグメント・テーブル・エントリの場合、無効化されたエントリ内のページ・テーブル起点フィールドは、TLBエントリ内のページ・テーブル起点フィールドと一致する。(一実施形態では、TLBエントリはエントリ内のページ・テーブル起点に関係なく消去することができる。)
各TLBからは、(1)セグメント・テーブル・エントリが無効化された場合、無効化されたセグメント・テーブル・エントリ内、または(2)同じTLB内で消去された(消去されることになるセット内にある)任意の複合領域およびセグメント・テーブル・エントリ内の、ページ・テーブル起点フィールドとページ・テーブル起点フィールドが一致するページ・テーブル・エントリも、少なくとも消去される。(他の実施形態では、インプリメンテーションが、エントリ内のページ・テーブル起点には関係なくページ・テーブル・エントリを消去することができる。すなわち、すべてのページ・テーブル・エントリを消去することができる。)
TLBからのエントリの消去に関連付けられた論理の一実施形態について、図11を参照しながら説明する。一例として、これはIDTEによって実行された処理の続きであり、このCPUおよびシステム内の他のCPUが監視している間に、無効化に対して原子的(atomically)に実行される。
図11を参照すると、初めにR3がゼロであるかどうかの判定、INQUIRY 720が実行される。R3が非ゼロである場合、消去用の領域テーブルまたはセグメント・テーブルの起点がレジスタR3内に示され、ステップ722でTLBエントリを消去するためには、レジスタR3内に指定された領域/セグメント・テーブル起点が、エントリの形成に使用された領域/セグメント・テーブル起点と一致することになる。R3がゼロの場合、レジスタR3のコンテンツ(レジスタ0)は無視され、ステップ724で、エントリの形成に使用された領域/セグメント・テーブル起点に関係なくエントリが消去される。
ステップ726では、システム内のすべてのプロセッサ上で、TLBのレジスタR2内で指定された領域/セグメント索引によって指定されたエントリが消去される。一例では、TLBでは少なくとも、たとえば汎用レジスタR2内の有効無効化索引およびその左側のビットと、TLBエントリ内の領域およびセグメント索引テーブルの同じ部分とが一致する、複合領域およびセグメント・テーブル・エントリが消去される。一例のように、エントリを消去するためにVビットがオフになる。
ステップ728では、さらに、セグメント・テーブル・エントリが無効化されている場合、システム内のすべてのプロセッサ上のTLBで、エントリ内のページ・テーブル起点がTLB内のページ・テーブル起点に等しいページ・テーブル・エントリが消去される。さらに、ステップ730では、セグメント・テーブル・エントリが無効化されている場合、ページ・テーブル起点フィールドが同じTLB内で(たとえば必然的に)消去された任意のCRSTE内のページ・テーブル起点フィールドと一致する、ページ・テーブル・エントリが少なくとも消去される。この消去プロセスは、ステップ732で、図8の追加エントリ・フィールド622で指定された数よりも1つ多いエントリ数に対して繰り返される。
その後、無効化および消去オペレーションを完了するかどうかの判定、INQUIRY 734が実行される。一例では、発行元のプロセッサでは、そのCPU上で指定されたTLBエントリが消去されるまで、およびシステム内のすべての他のCPUがこの命令で指定されたTLBエントリを使用して任意のストレージ・アクセスを完了するまで、IDTE命令は完了しない。一例では、他のプロセッサがそのアクセスを完了したかどうかをこの発行元プロセッサに示すのは、静止コントローラである。すなわち、発行元プロセッサがマスタ・プロセッサとみなされ、IDTE命令による影響を受ける任意のスレーブ・プロセッサはその状態をコントローラに示す。コントローラは、スレーブ・プロセッサから適切な状態を受け取ったのに応答して、マスタに対して完了を示す。処理が完了すると、ステップ736で命令は終了する。そうでない場合、プロセッサは所定量の時間だけ待機して、再度状況をチェックするか、または完了に関する信号、INQUIRY 734を受信する。
一実施形態では、領域またはセグメントのテーブル・エントリに格納すること、およびTLBエントリを消去することは、無効ビットがすでに領域またはセグメントのテーブル・エントリ内に1つあった場合は、実行されるかまたは実行されない場合がある。
上記で説明した実施形態では、TLBエントリの消去は所望のエントリを無効化した後に実行されるが、他の実施形態では、TLBエントリの消去は各無効化の後、選択した無効化数の後、などに実行することができる。
本発明の他の態様では、代替としてIDTE命令を使用して、(たとえば、アドレス・スペース・コントロール要素(ASCE)によって指定された)アドレス・スペースに関連付けられたTLBエントリをパージすることもできる。一例では、このオプションは汎用レジスタR2のビット52を1に設定することによって示される。このオプションでは、汎用レジスタR1のコンテンツ(図12を参照)ならびに汎用レジスタR2のビット0〜43および53〜63(図13を参照)が無視される。汎用レジスタR3のコンテンツは、使用されているテーブル起点、ビット0〜51を備えたアドレス・スペース・コントロール要素のフォーマットを有する(図14)。汎用レジスタR3のビット52〜63は無視される。R3はゼロまたは非ゼロの場合があり、すなわちレジスタ0を含む任意の汎用レジスタを指定することができる。このオペレーションはストレージのいずれの無効化も実行しないが、少なくともテーブル起点フィールドが汎用レジスタR3内のテーブル起点フィールドに一致する複合領域およびセグメント・テーブル・エントリとページ・テーブル・エントリとを、構成内のCPUのTLBから消去する。(他の実施形態では、インプリメンテーションはエントリ内のテーブル起点に関係なくページ・テーブル・エントリを消去することができる。すなわち、すべてのページ・テーブル・エントリを消去することができる。)
ASCEオペレーションによる消去に関連付けられた論理の一実施形態について、図15を参照しながら説明する。初めにステップ900で、対応するTLBエントリが消去されることになる領域テーブルまたはセグメント・テーブルを指定する領域テーブルまたはセグメント・テーブルの起点が指定される。一例では、これは汎用レジスタR3のビット0〜51で指定される。その後ステップ902では、システム内のすべてのプロセッサ上で、少なくともR3に指定されたテーブル起点に対応する複合領域およびセグメント・テーブル・エントリとページ・テーブル・エントリとが消去される。
その後、IDTE命令の実行が完了するかどうかの判定、INQUIRY 904が実行される。一実施形態では、発行元CPU上で指定されたパラメータに対応するTLBエントリが消去されるまで、ならびに構成内の他のCPUが指定されたパラメータに対応するTLBエントリを使用して変更および参照ビットの更新を含む任意のストレージ・アクセスを完了するまで、IDTE命令は完了しない。エントリが消去され、ストレージ・アクセスが完了した場合、ステップ906でIDTE命令の実行は完了する。そうでない場合、
プロセッサは所定量の時間だけ待機して、再度状況をチェックするか、または完了に関する信号、INQUIRY 904を受信する。
上記の詳細な説明は、IDTE命令に関連付けられた処理である。一実施形態では、オペレーションが必ずしもTLB実スペース・エントリに影響を与えるとは限らない。次に、IDTE命令の一実施形態の処理に関連付けられた追加の情報、拡張機能、あるいは実施形態、またはそれらすべてを提供する。
1.モデルまたは選択された実施形態に応じて、TLBエントリの選択的消去を様々な方法でインプリメントすることができる。たとえば一般に、指定された最低数よりも多くのエントリを消去することができる。無効化および消去オペレーションが実行される場合、
セグメント索引である有効無効化索引に等しいセグメント索引を含むすべての複合領域およびセグメント・テーブル・エントリ(CRSTE)を消去するか、あるいは有効無効化索引がセグメント索引でない場合にすべてのCRSTEを消去することができる。さらに、エントリ内のページ・テーブル起点に関係なくCRSTEまたはページ・テーブル・エントリを消去することができる。ASCEオペレーションによる消去が実行される場合、エントリ内のテーブル起点に関係なくページ・テーブル・エントリを消去することができる。いずれかのオペレーションが実行される場合、一実施形態では、正確な必要最低数のエントリを消去することができる。
2.アドレス・スペース・コントロール要素は、領域テーブルまたはセグメント・テーブルの起点の代わりに実スペース・トークンの起点を含むことができる。汎用レジスタR3内のテーブル起点は、レジスタ内のトークン起点と区別不能である。
3.無効化および消去オペレーションが指定された場合、TLBエントリの消去はセグメント・テーブル・エントリ内のページ・テーブル起点を使用することができる。したがって、付加状態のセグメント・テーブル・エントリが現在の値とは異なるページ・テーブル起点を含んでいた場合、以前の値を含むエントリのコピーがTLB内に残ったままとなる可能性がある。
4.無効化および消去オペレーションが指定された場合、IDTE用のDATテーブル・エントリのアドレスは64ビット・アドレスであり、264−1でのラップアラウンドを使用する64ビット・アドレス算術に関する通常の規則に従ってアドレス算術が実行される。また、オフセットおよび長さフィールドは使用されない。したがって、最大ストレージ場所から場所0へとラップするためにDATテーブルは指定されないことになり、第1の指定エントリおよび汎用レジスタR3のビット53〜63によって指定されたすべての追加エントリは指定されたテーブル内にあるはずである。
5.IDTE命令はSIEの下でのインターセプトの対象となる。一実施形態では、システムが逐次化されるため、IDTE命令を実行中のプロセッサは、指定されることになるTLBエントリを使用して他のプロセッサが停止するまでオペレーションを開始できない。さらにIDTE命令を実行中のプロセッサは、システム内のすべてのプロセッサのTLBから該当するエントリが消去されるまで、他の実行に進むことはない。
6.逐次化機能は、オペレーションが開始される前、およびオペレーションが完了した後に再度、実行される。逐次化はこのCPUに適用され、他のCPUは必ずしも逐次化されるとは限らない。
上記の詳細な説明は、セグメントまたは領域テーブルのエントリの無効化と、1つまたは複数の変換ルックアサイド・バッファからの少なくとも対応するエントリ(または他のエントリ)の原子的消去とが実行可能な、命令の一例である。本明細書では特定の命令について説明するが、本発明の趣旨を逸脱することなく多くの変形形態が実行可能である。たとえば、異なるオペレーション・コード、異なるフィールド、異なるレジスタまたはレジスタなし、異なるビットなどを使用することができる。たとえば他の命令セット・アーキテクチャで、何らかの異なる方法(たとえば異なるオペレーション・コード、命令内の異なるフィールド、異なるレジスタが使用される)で等価の命令を定義することができるが、依然として本発明の1つまたは複数の態様が適用される。さらに前述のように、本発明の1つまたは複数の態様はIBMのz/Architectureなどのターゲット・アーキテクチャのソフトウェア・エミュレーションにも等しく適用される。この場合、前述のTLBは、最新の仮想アドレスの実アドレスへのマッピングを保持するためにソフトウェア・エミュレータによってインプリメントされた配列または他のデータ構造とすることができる。エミュレータ・ソフトウェアがTLBに類似のいずれの構造もインプリメントしない場合もある。この場合、ストレージ内のエントリの無効化のみが適用可能である。
このように本明細書では、ストレージの無効化、ストレージの無効化およびバッファ・エントリの原子的消去、またはバッファ・エントリの消去が実行可能な命令が提供される。したがって、命令の1つまたは複数のレジスタをオペレーションなし(no−op)として構成可能であると言われている。すなわち、それらレジスタ内に提供されていない特定のオペレーション(たとえば無効化、消去など)に関連付けられた情報があれば、無視されるか、またはオペレーションが実行されていないことを示す。
無効化、無効化および消去、または消去が提供された特定の命令について、上記で説明したが、この命令は修正可能であるか、またはIDTEによってインプリメントされたオペレーションの1つまたは複数の態様を実行するだけの他の命令をインプリメントすることができる。たとえばある命令は、ストレージの無効化のみをインプリメントすることができる。さらに一例として、この命令は特定のセグメントまたは領域テーブルに関連付けられたバッファからのみ、エントリをパージすることができる。さらに他の例として、アドレス・スペースに基づいてエントリをパージするだけの命令をインプリメントすることができる。
無効化あるいは消去またはその両方の機能のコンピュータ設計命令フォーマットの商用インプリメンテーションでは、命令は、アセンブラ言語で作成するオペレーティング・システム・プログラマなどのプログラマによって使用される。記憶メディアに格納されたこれらの命令フォーマットは、本来z/Architecture IBM Serverで、または別法として他のアーキテクチャを実行するマシンで、実行することができる。これらは、既存のおよび将来のIBMメインフレーム・サーバおよびIBMの他のマシン(たとえばpSeries ServerおよびxSeries Server)でエミュレートすることができる。これらは、IBM、Intel、AMD、Sun Microsystems、およびその他によって製造されたハードウェアを使用する多種多彩なマシン上でLinuxを実行しているマシンで実行可能である。z/Architectureの下でのハードウェアでの実行に加えて、Linux、ならびにHercules、UMX、FXI、またはPlatform Solutionsによるエミュレーションを使用するマシンを使用することが可能であり、一般にエミュレーション・モードで実行される。
エミュレーション・モードでは、エミュレートされている特定の命令が復号され、個々の命令をインプリメントするためにCサブルーチンまたはドライバ内などのようにサブルーチンが構築されるか、または特定のハードウェア用のドライバを提供するために、本発明の一実施形態の説明を理解した後であれば当技術分野の範囲内である、何らかの他の技法が使用される。米国特許第5551013号、米国特許第6009261号、米国特許第5574873号、米国特許第6308255号、米国特許第6463582号、および米国特許第5790825号を含むがこれらに限定されることのない、様々なソフトウェアおよびハードウェアのエミュレーション特許では、当業者が使用可能なターゲット・マシン向けの異なるマシン用に設計された命令フォーマットのエミュレーションを達成するための様々な既知の方法、ならびに上記で参照された技法によって使用される商用ソフトウェア技法が例示されている。
有利なことには、本発明の1つまたは複数の態様はシステムの性能を向上させる。たとえば、バッファを完全にパージする代わりにバッファから選択的にエントリをパージすることによって、エントリを不要に再作成する必要がないためにシステム性能が強化される。すなわち、1つのTLBエントリを作成するためには20+から100のサイクルが必要であり、選択的パージングによりエントリの不要な再作成が回避される。
さらに他の利点として、TLB全体のパージが望ましい場合、インプリメンテーションはオーバー・パージングが可能である。また、たとえばTLBが使用されない場合、TLB部分をno−opとして扱うことができる。有利なことにIDTE命令は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せでインプリメント可能であるか、あるいはターゲット・コンピュータ命令セットのエミュレータで使用することができる。
本発明の趣旨を逸脱することなしに、上記の環境に対する多くの変形形態が可能である。たとえば本発明の1つまたは複数の態様を、たとえば1つまたは複数のページング可能エンティティ(たとえばゲスト)が1つまたは複数のプロセッサ上で実行する仮想マシン・エミュレーションに等しく適用することができる。一例として、ページング可能ゲストはStart Interpretive Execution(SIE)アーキテクチャによって定義され、その一例は、「IBM System/370拡張アーキテクチャ」と題するIBM資料No.SA22−7095(1985年)のIBM(登録商標)資料に記載されている。
SIEおよびz/Architectureについては上述したが、本発明の1つまたは複数の態様は、ページング可能エンティティまたは同様の構成を採用する他のアーキテクチャあるいは環境、またはその両方に等しく適用可能である。
さらに、前述の様々な実施形態は単なる例に過ぎない。本発明の趣旨を逸脱することなく、これらの実施形態に対する多くの変形形態が可能である。たとえば、本明細書では論理的に区分された環境について説明したが、これは単なる一例に過ぎない。本発明の諸態様は、複数のゾーンを有する他の環境および区分環境を含む、多くのタイプの環境にとって有益である。さらに、中央プロセッサ複合体はないが、複数のプロセッサが互いに結合されている場合もある。さらに、本発明の1つまたは複数の態様は単一プロセッサ環境にも適用可能である。
本明細書では特定の環境について説明したが、本発明の趣旨を逸脱することなく、これらの環境に多くの変形形態をインプリメントすることができる。たとえば環境が論理的に区分されている場合、環境内により多くのまたはより少ない論理区画を含めることが可能である。さらに、複数の中央処理複合体を互いに結合することも可能である。これらは、実行可能な変形形態の一部に過ぎない。加えて、他の変形形態も可能である。たとえば、本明細書で説明したコントローラは命令を逐次化するため、一度に1つのIDTE命令が実行されるが、他の実施形態では一度に複数の命令を実行することができる。さらに、(1つまたは複数のコントローラからの)複数の静止要求をシステム内で並行して未処理とすることもできる。追加の変形形態も可能である。
本明細書で使用される「処理ユニット」という用語には、ゲストなどのページング可能エンティティ、プロセッサ、エミュレータ、あるいは他の同様のコンポーネント、またはそれらのすべてが含まれる。さらに「処理ユニットによって」という用語には、処理ユニットに代行することが含まれる。「バッファ」という用語には、ストレージのある区域、ならびに配列を含むがこれに限定されることのない様々なタイプのデータ構造が含まれ、「テーブル」という用語にはテーブル・タイプ以外のデータ構造を含めることができる。さらに命令は、情報を指定するためのレジスタ以外も含むことができる。さらに、ページ、セグメント、あるいは領域、またはそれらすべては、本明細書に記載されたものとは異なるサイズとすることができる。
本発明の1つまたは複数の機能は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの何らかの組合せでインプリメントすることができる。さらに、これら機能のうちの1つまたは複数をエミュレートすることもできる。
本発明の1つまたは複数の態様は、たとえばコンピュータ使用可能メディアを有する製品に含めることができる。このメディアはその内部に、本発明の機能を提供および容易にするために、たとえばコンピュータ読取り可能プログラムとそのコード手段または論理(たとえば命令、コード、コマンドなど)を具体化している。製品はコンピュータ・システムの一部として含めるか、または別々に販売することができる。
加えて、本発明の機能を実行するためにマシンによる実行が可能な命令の少なくとも1つのプログラムを具体化する、マシンによる読取りが可能な少なくとも1つのプログラム・ストレージ・デバイスを提供することができる。
本明細書に記載された流れ図は単なる例に過ぎない。記載されたこれらの図面またはステップ(またはオペレーション)には、多くの変形形態が可能である。たとえば、ステップを異なる順序で実行するか、あるいはステップを追加、削除、または修正することができる。
例えば、無効化されることになる、ストレージの複数ページを有するストレージのユニットを、命令を介して指定するための手段と、ストレージのユニットを無効化するための手段とを有する、コンピューティング環境のストレージを無効化するための装置も本発明により提供される。
本発明の1つまたは複数の態様を組み込み、これを使用するコンピューティング環境の一実施形態を示す図である。 本発明の一態様に従った、図1のコントローラに関連付けられた他の細部の一実施形態を示す図である。 本発明の一実施形態に従った、他のコンピュータをエミュレート可能なホスト・コンピュータの一実施形態を示す図である。 本発明の一実施形態に従った、ストレージの無効化に関連付けられた論理の一実施形態を示す図である。 本発明の一実施形態に従った、バッファ・エントリの消去に関連付けられた論理の一実施形態を示す図である。 本発明の一実施形態に従った、動的アドレス変換テーブル・エントリ無効化(IDTE)命令のフォーマットの一実施形態を示す図である。 本発明の一実施形態に従った、図6のIDTE命令の汎用レジスタR1に関連付けられたフィールドの一実施形態を示す図である。 本発明の一態様に従った、図6のIDTE命令の汎用レジスタR2に関連付けられたフィールドの一実施形態を示す図である。 本発明の一態様に従った、図6のIDTE命令の汎用レジスタR3に関連付けられたフィールドの一実施形態を示す図である。 本発明の一態様に従った、IDTE命令に関連付けられた論理の一実施形態を示す図である。 本発明の一態様に従った、IDTE命令に関連付けられた論理の一実施形態を示す図である。 本発明の一態様に従った、IDTE命令の代替オペレーションに使用されている汎用レジスタR1のフィールドの一実施形態を示す図である。 本発明の一態様に従った、IDTE命令の代替オペレーションに使用されている汎用レジスタR2のフィールドの一実施形態を示す図である。 本発明の一態様に従った、IDTE命令の代替オペレーションに使用されている汎用レジスタR3のフィールドの一実施形態を示す図である。 本発明の一態様に従った、IDTE命令の代替オペレーションに関連付けられた論理の一実施形態を示す図である。

Claims (25)

  1. コンピュータ・システムにおいて、アドレス変換バッファを消去するため、および関連するストレージのアドレス変換テーブル・エントリの範囲を無効化するための方法であって、
    前記コンピュータ・システムはメイン・ストレージと通信する1つまたは複数の中央処理ユニットを有し、前記中央処理ユニットは汎用レジスタを有し、前記中央処理ユニットはアドレス変換バッファを有し、前記アドレス変換バッファはアドレス変換情報を保持するアドレス変換バッファ・エントリを有し、前記コンピュータ・システムはページ・テーブル、および1つまたは複数の処理ユニットのうちの1つの中央処理ユニットの仮想メイン・ストレージ・アドレスを前記コンピュータ・システムのメイン・ストレージ・アドレスに変換するためアドレス変換テーブルを有し、前記アドレス変換テーブルは、
    1つまたは複数のセグメント・テーブルと、
    1つまたは複数のセグメント・テーブルおよび1つまたは複数の第1領域テーブルと、
    1つまたは複数のセグメント・テーブル、1つまたは複数の第1領域テーブル、および1つまたは複数の第2領域テーブルと、
    1つまたは複数のセグメント・テーブル、1つまたは複数の第1領域テーブル、1つまたは複数の第2領域テーブル、および1つまたは複数の第3領域テーブルと、
    のうちのいずれか1つを有し、
    セグメント・テーブル・エントリはページ・テーブル起点を有し、
    前記方法は、
    動的アドレス変換テーブル・エントリ無効化(IDTE)命令を取り出すステップであって、前記IDTE命令は、命令をIDTE命令として識別するオペレーション・コード・フィールド値を有するオペレーション・コード・フィールドを有し、前記IDTE命令は第1機能または第2機能のいずれかを実行するためのものであり、前記第1機能は無効化および消去の両オペレーションを有し、前記第2機能は消去オペレーションを有するが無効オペレーションは有さない、取り出すステップと、
    記IDTE命令を実行するステップと、
    を有し、前記実行するステップは、
    前記取り出されたIDTE命令の機能のインジケーションを有する第2情報を検索するステップと、
    前記取り出されたIDTE命令の機能が無効化および消去オペレーションからなる場合、
    1)アドレス変換テーブルの1つまたは複数のアドレス変換テーブル・エントリのうちの、所定のアドレス変換テーブル・エントリの場所から始まる所定の範囲を無効化するステップと、
    2)前記無効化された1つまたは複数のアドレス変換テーブル・エントリに関連付けられたアドレス変換バッファのアドレス変換バッファ・エントリを消去するステップと、
    前記取り出されたIDTE命令の前記機能が消去オペレーションのみからなる場合、
    前記1つまたは複数のアドレス変換テーブル・エントリに関連付けられたアドレス変換バッファのアドレス変換バッファ・エントリを消去するステップであって、前記1つまたは複数のアドレス変換テーブル・エントリが、アドレス変換テーブルのうちの、所定のアドレス変換テーブル・エントリの場所から始まる所定の範囲の1つまたは複数のアドレス変換テーブル・エントリを有する、消去するステップと、
    を実行する、方法。
  2. 前記中央処理ユニットが前記メイン・ストレージから命令を取り出すステップをさらに有し、前記命令は、
    前記命令の機能を示すための命令オペレーション・コード・フィールドと、
    無効化用のアドレス変換テーブル起点場所を有する第1の情報の位置を指定するための第1のフィールドと、
    第2の情報の位置を指定するための第2のフィールドとを有し、
    前記第2の情報は範囲値を有し、前記範囲値は無効化されることになるいくつかの追加エントリを示し、
    前記命令は第3の情報の位置を指定するための第3のフィールドをさらに有し、前記第3の情報は消去用のアドレス変換テーブル起点を有し、
    前記取り出された命令の前記命令オペレーション・コード・フィールドを復号するステップをさらに有する、
    請求項1に記載の方法。
  3. 前記取り出されたIDTE命令の前記機能が無効化および消去オペレーションからなる場合、
    a)前記第1の情報を検索するステップと、
    b)無効化されることになるアドレス変換テーブル・エントリの範囲を決定するステップと、
    c)前記第1の情報および前記第2の情報に基づいて、無効化されることになるアドレス変換テーブル・エントリを決定するステップと、
    d)前記決定されたアドレス変換テーブル・エントリを無効化するステップと、
    e)アドレス変換バッファのアドレス変換バッファ・エントリのうちの所定のアドレス変換バッファ・エントリ部分が消去用の値を含むかどうかを判定するステップと、
    f)消去用のアドレスの値を有すると判定されたアドレス変換バッファ・エントリを消去するステップと、
    g)影響を受けるすべてのアドレス変換バッファ・エントリに対してステップc)〜g)を反復するステップと、
    をさらに実行する、請求項2に記載の方法。
  4. 前記取り出されたIDTE命令の前記機能が消去オペレーションのみからなる場合、
    h)前記第3の情報が存在する場合、前記第3の情報を検索するステップと、
    i)前記第3の情報が存在しない場合、前記第3の情報を形成するステップと、
    j)アドレス変換バッファのアドレス変換バッファ・エントリのうちの所定のアドレス変換バッファ・エントリ部分が前記第3の情報を含むかどうかを判定するステップと、
    k)消去用のアドレス変換テーブル起点の値を有すると判定されたアドレス変換バッファ・エントリを消去するステップと、
    l)複数のアドレス変換バッファ・エントリに対してステップj)〜l)を反復するステップと、
    をさらに実行する、請求項2に記載の方法。
  5. 前記IDTE命令が32の連続ビットからなり、前記オペレーション・コード・フィールドが16の連続ビットからなり、前記第1のフィールドが4つの連続ビットからなり、前記第2のフィールドが4つの連続ビットからなり、前記第3のフィールドが4つの連続ビットからなり、前記第1のフィールドの連続ビットが前記第2のフィールドの連続ビットに隣接する、請求項2に記載の方法。
  6. 前記第1のフィールドが第1の汎用レジスタ内の第1の情報の位置を指定し、前記無効化用のアドレス変換テーブル起点場所が領域テーブルまたはセグメント・テーブルのうちのいずれか1つのアドレスを有する、請求項2に記載の方法。
  7. 前記第1の情報が、1つまたは複数の無効化用の領域テーブル、あるいは無効化用のセグメント・テーブルのうちの、いずれか1つを指定するための指定タイプ・コントロール・フィールドをさらに有する、請求項6に記載の方法。
  8. 前記第2の情報が、第1の領域索引フィールド、第2の領域索引フィールド、第3の領域索引フィールド、またはセグメント索引フィールドのうちのいずれか1つをさらに有する、請求項2に記載の方法。
  9. 前記第2の情報が、消去オペレーションのみが実行されることになる機能のインジケーションをさらに有する、請求項2に記載の方法。
  10. 前記第3のフィールドが第3の汎用レジスタ内の前記第3の情報の位置を指定し、前記消去用のアドレス変換テーブル起点が、消去用の領域テーブル起点、または消去用のセグメント・テーブル起点のうちのいずれか1つを有する、請求項2に記載の方法。
  11. 前記第3のフィールドが0である場合、任意のエントリが消去される、請求項2に記載の方法。
  12. 前記IDTE命令の命令フォーマットが前記中央処理ユニットの命令アーキテクチャに固有のフォーマットである、請求項1に記載の方法。
  13. 前記IDTE命令の命令フォーマットが前記中央処理ユニットの命令アーキテクチャに固有のフォーマットでなく、
    前記IDTE命令のオペレーションをエミュレートするために、複数の命令を有する所定のソフトウェア・ルーチンを識別するように前記IDTE命令を解釈するステップと
    前記所定のソフトウェア・ルーチンを実行するステップと、
    をさらに有する、請求項1に記載の方法。
  14. 前記第1の情報が無効化用の領域テーブル起点または無効化用のセグメント・テーブル起点のうちのいずれか1つをさらに有し、さらに前記第2のフィールドが前記第2の情報を有する第2の汎用レジスタの位置を指定し、前記第2の情報が領域索引フィールドまたはセグメント索引フィールドのうちのいずれか1つをさらに有し、1つまたは複数のアドレス変換テーブル・エントリの所定の範囲を無効化する前記ステップが、
    第1の領域エントリ、第2の領域エントリ、または第3の領域エントリのうちのいずれか1つを無効化する場合、
    (aa)ターゲット領域エントリのアドレスを形成するために、前記第1の領域索引、前記第2の領域索引、または前記第3の領域索引のうちのいずれか1つを前記領域テーブル起点に追加するステップと、
    (ba)前記ターゲット領域エントリのアドレスに配置された前記ターゲット領域エントリを無効化するステップと、
    (ca)前記ターゲット領域エントリのアドレスを増分するステップと、
    (da)無効化されることになるエントリの範囲の値を減分するステップと、
    (ea)前記無効化されることになるエントリの範囲の減分された値がゼロより大きい場合、ステップ(aa)から(ea)を反復するステップと、
    を実行するステップと、
    セグメント・エントリを無効化する場合、
    (fa)ターゲット・セグメント・エントリのアドレスを形成するために、無効化用のセグメント・テーブル起点に前記セグメント索引フィールドを追加するステップと、
    (ga)前記ターゲット・セグメント・エントリのアドレスに配置された前記ターゲット・セグメント・エントリを無効化するステップと、
    (ha)前記ターゲット・セグメント・エントリのアドレスを増分するステップと、
    (ia)無効化されることになるエントリの範囲の値を減分するステップと、
    (ja)前記無効化されることになるエントリの範囲の減分された値がゼロより大きい場合、ステップ(fa)から(ja)を反復するステップと、
    を実行するステップと、
    前記無効化されることになるエントリの範囲の減分された値がゼロの場合、前記IDTE命令の実行を終了するステップと、
    をさらに有する、請求項2に記載の方法。
  15. 前記第1の情報が、無効化されることになる第1の領域エントリ、第2の領域エントリ、第3の領域エントリ、またはセグメント・エントリのうちのいずれか1つを指定するための宛先タイプ・フィールドをさらに有する、請求項2に記載の方法。
  16. 前記第2のフィールドによって識別された前記第2の情報場所に、前記無効化されることになるエントリの範囲の増分された値を保存するステップをさらに有する、請求項14
    に記載の方法。
  17. 前記アドレス変換バッファが変換ルックアサイド・バッファ(TLB)を有する、請求項1に記載の方法。
  18. 前記所定のアドレス・テーブル・エントリの範囲を無効化するステップが、アドレス変換テーブル・エントリのエントリ無効フィールドを無効としてマーキングするステップをさらに有する、請求項1に記載の方法。
  19. 前記アドレス変換バッファが、
    前記中央処理ユニットに関連付けられたアドレス変換バッファと、
    前記コンピュータ・システムの他の中央処理ユニットに関連付けられたアドレス変換バッファと、
    前記コンピュータ・システムに関連付けられたすべてのアドレス変換バッファと、
    のうちのいずれか1つである、請求項1に記載の方法。
  20. 無効化されることになるアドレス変換テーブル・エントリを決定する前記ステップc)が、
    c1)前記第1の領域索引フィールドの値に基づいて、第2の領域テーブル起点を有する無効化するエントリを見つけるために第1の領域テーブルに索引付けするステップと、
    c2)前記第2の領域索引フィールドの値に基づいて、第3の領域テーブル起点を有する無効化するエントリを見つけるために第2の領域テーブルに索引付けするステップと、
    c3)前記第3の領域索引フィールドの値に基づいて、セグメント・テーブル起点を有する無効化するエントリを見つけるために第3の領域テーブルに索引付けするステップと、
    c4)前記セグメント索引フィールドの値に基づいて、ページ・テーブル起点を有する無効化するエントリを見つけるためにセグメント・テーブルに索引付けするステップと、
    c5)前記無効化されることになるエントリの範囲の値を減分するステップと、
    のうちのいずれか1つを有する、請求項3に記載の方法。
  21. アドレス変換バッファのアドレス変換バッファ・エントリの所定のアドレス変換バッファ・エントリ部分が消去用の値を含むかどうかを判定する前記ステップe)が、
    e1)前記第1の領域索引フィールドの値に基づいて、第2の領域テーブル起点を有する消去するエントリを見つけるために第1の領域テーブルに索引付けするステップと、
    e2)前記第2の領域索引フィールドの値に基づいて、第3の領域テーブル起点を有する消去するエントリを見つけるために第2の領域テーブルに索引付けするステップと、
    e3)前記第3の領域索引フィールドの値に基づいて、セグメント・テーブル起点を有する消去するエントリを見つけるために第3の領域テーブルに索引付けするステップと、
    e4)前記セグメント索引フィールドの値に基づいて、ページ・テーブル起点を有する消去するエントリを見つけるためにセグメント・テーブルに索引付けするステップと、
    のうちのいずれか1つを有し、
    e5)前記方法が、前記消去するエントリをバッファリングするアドレス変換バッファの前記消去するエントリを消去するステップをさらに有する、
    請求項3に記載の方法。
  22. 前記中央処理ユニットがページ・テーブルをさらに有し、前記ページ・テーブルが実メイン・ストレージ・アドレスを有し、実メイン・ストレージ・アドレスは、絶対アドレス、実アドレス、または物理アドレスのうちのいずれか1つを有する、請求項1に記載の方法。
  23. 前記第2の情報のビット52が0の場合、前記第2の情報が無効化および消去オペレーションを示し、さらに前記第2の情報のビット52が1の場合、前記第2の情報が消去オペレーションのみを示す、請求項1に記載の方法。
  24. 請求項1ないし23のいずれか一項に記載の方法をコンピュータに実行させるための命令を有するコンピュータ・プログラム。
  25. コンピュータ・システムにおいて、アドレス変換バッファを消去するため、および関連するストレージのアドレス変換テーブル・エントリの範囲を無効化するためのシステムであって、前記システムは、
    メイン・ストレージと、
    前記メイン・ストレージと通信する1つまたは複数の中央処理ユニットと、
    を有し、前記中央処理ユニットは、
    用レジスタと、
    アドレス変換情報を保持するアドレス変換バッファ・エントリを有するアドレス変換バッファと、
    1つまたは複数の処理ユニットのうちの1つの中央処理ユニットの仮想メイン・ストレージ・アドレスを前記コンピュータ・システムのメイン・ストレージ・アドレスに変換するためのアドレス変換テーブルであって、前記アドレス変換テーブルがセグメント・テーブル、第1の領域テーブル、第2の領域テーブル、または第3の領域テーブルのうちのいずれか1つを有する、アドレス変換テーブルと、
    1つまたは複数の命令実行ユニットであって、前記命令実行ユニットが前記汎用レジスタと通信し、前記命令実行ユニットが前記メイン・ストレージから取り出したマシン命令を実行する、1つまたは複数の命令実行ユニットと、
    を有し、
    前記コンピュータ・システムは、
    メイン・ストレージと、
    前記メイン・ストレージと通信する1つまたは複数の中央処理ユニットと、
    を有し、前記中央処理ユニットは、
    用レジスタと、
    アドレス変換情報を保持するアドレス変換バッファ・エントリを有するアドレス変換バッファと、
    ページ・テーブル、および1つまたは複数の処理ユニットのうちの1つの中央処理ユニットの仮想メイン・ストレージ・アドレスを前記コンピュータ・システムのメイン・ストレージ・アドレスに変換するための他のアドレス変換テーブルと、
    を有し、前記アドレス変換テーブルは、
    1つまたは複数のセグメント・テーブルと、
    1つまたは複数のセグメント・テーブルおよび1つまたは複数の第1領域テーブルと、
    1つまたは複数のセグメント・テーブル、1つまたは複数の第1領域テーブル、および1つまたは複数の第2領域テーブルと、
    1つまたは複数のセグメント・テーブル、1つまたは複数の第1領域テーブル、1つまたは複数の第2領域テーブル、および1つまたは複数の第3領域テーブルと、
    のうちのいずれか1つを有し、
    セグメント・テーブル・エントリはページ・テーブル起点を有し、
    前記コンピュータ・システムは請求項1から23のいずれか一項に記載の方法を実行するための命令を含む、システム。
JP2006506228A 2003-05-12 2004-05-06 ストレージの無効化、バッファ・エントリの消去 Expired - Lifetime JP4608484B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/435,919 US7284100B2 (en) 2003-05-12 2003-05-12 Invalidating storage, clearing buffer entries, and an instruction therefor
PCT/GB2004/001971 WO2004099997A1 (en) 2003-05-12 2004-05-06 Invalidating storage, clearing buffer entries

Publications (3)

Publication Number Publication Date
JP2006526203A JP2006526203A (ja) 2006-11-16
JP2006526203A5 JP2006526203A5 (ja) 2007-06-14
JP4608484B2 true JP4608484B2 (ja) 2011-01-12

Family

ID=33417045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006506228A Expired - Lifetime JP4608484B2 (ja) 2003-05-12 2004-05-06 ストレージの無効化、バッファ・エントリの消去

Country Status (16)

Country Link
US (7) US7284100B2 (ja)
EP (5) EP1653343B1 (ja)
JP (1) JP4608484B2 (ja)
KR (2) KR100834362B1 (ja)
CN (2) CN100363908C (ja)
AT (5) ATE491178T1 (ja)
CY (2) CY1111421T1 (ja)
DE (6) DE602004011018T2 (ja)
DK (4) DK1701269T3 (ja)
ES (5) ES2297417T3 (ja)
GB (3) GB2413876B (ja)
IL (1) IL171905A (ja)
PL (4) PL1701269T3 (ja)
PT (2) PT1653343E (ja)
SI (2) SI1653343T1 (ja)
WO (1) WO2004099997A1 (ja)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312222B1 (en) * 2002-12-13 2012-11-13 Open Text, S.A. Event-driven regeneration of pages for web-based applications
US8463998B1 (en) 2002-12-13 2013-06-11 Open Text S.A. System and method for managing page variations in a page delivery cache
US7284100B2 (en) 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US9454490B2 (en) 2003-05-12 2016-09-27 International Business Machines Corporation Invalidating a range of two or more translation table entries and instruction therefore
US7415035B1 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Device driver access method into a virtualized network interface
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
JP2006333438A (ja) * 2005-04-28 2006-12-07 Fujitsu Ten Ltd ゲートウェイ装置及びルーティング方法
US20070005932A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Memory management in a multiprocessor system
JP4978008B2 (ja) * 2006-01-11 2012-07-18 株式会社日立製作所 仮想計算機上でのページテーブルアドレスの変更を高速化する方法
JP2007233615A (ja) * 2006-02-28 2007-09-13 Fujitsu Ltd アドレス変換装置
US7797555B2 (en) * 2006-05-12 2010-09-14 Intel Corporation Method and apparatus for managing power from a sequestered partition of a processing system
US7647509B2 (en) * 2006-05-12 2010-01-12 Intel Corporation Method and apparatus for managing power in a processing system with multiple partitions
US7401185B2 (en) * 2006-07-06 2008-07-15 International Business Machines Corporation Buffered indexing to manage hierarchical tables
US7555628B2 (en) * 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US20080270827A1 (en) * 2007-04-26 2008-10-30 International Business Machines Corporation Recovering diagnostic data after out-of-band data capture failure
US8799620B2 (en) * 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
US8145876B2 (en) * 2007-08-06 2012-03-27 Advanced Micro Devices, Inc. Address translation with multiple translation look aside buffers
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
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
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
US8041922B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
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
US8037278B2 (en) 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8019964B2 (en) 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8151083B2 (en) * 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8112174B2 (en) * 2008-02-25 2012-02-07 International Business Machines Corporation Processor, method and computer program product for fast selective invalidation of translation lookaside buffer
US8086811B2 (en) 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8176280B2 (en) 2008-02-25 2012-05-08 International Business Machines Corporation Use of test protection instruction in computing environments that support pageable guests
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8140834B2 (en) * 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8095773B2 (en) 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8527715B2 (en) 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
US8266411B2 (en) * 2009-02-05 2012-09-11 International Business Machines Corporation Instruction set architecture with instruction characteristic bit indicating a result is not of architectural importance
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
US8930635B2 (en) 2009-12-14 2015-01-06 International Business Machines Corporation Page invalidation processing with setting of storage key to predefined value
US8806179B2 (en) * 2009-12-15 2014-08-12 International Business Machines Corporation Non-quiescing key setting facility
US8214598B2 (en) * 2009-12-22 2012-07-03 Intel Corporation System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries
US8407701B2 (en) 2010-06-24 2013-03-26 International Business Machines Corporation Facilitating quiesce operations within a logically partitioned computer system
US8595469B2 (en) 2010-06-24 2013-11-26 International Business Machines Corporation Diagnose instruction for serializing processing
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code
US9251091B2 (en) * 2012-06-15 2016-02-02 International Business Machines Corporation Translation look-aside table management
US20130339656A1 (en) * 2012-06-15 2013-12-19 International Business Machines Corporation Compare and Replace DAT Table Entry
US9182984B2 (en) * 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US9043565B2 (en) * 2012-09-07 2015-05-26 Kabushiki Kaisha Toshiba Storage device and method for controlling data invalidation
US9196014B2 (en) 2012-10-22 2015-11-24 Industrial Technology Research Institute Buffer clearing apparatus and method for computer graphics
US9330017B2 (en) 2012-11-02 2016-05-03 International Business Machines Corporation Suppressing virtual address translation utilizing bits and instruction tagging
US9092382B2 (en) 2012-11-02 2015-07-28 International Business Machines Corporation Reducing microprocessor performance loss due to translation table coherency in a multi-processor system
US20140258635A1 (en) * 2013-03-08 2014-09-11 Oracle International Corporation Invalidating entries in a non-coherent cache
US10509725B2 (en) 2013-03-08 2019-12-17 Oracle International Corporation Flushing by copying entries in a non-coherent cache to main memory
US9652646B1 (en) 2013-03-11 2017-05-16 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Methods, systems and apparatuses for radio frequency identification
US9619387B2 (en) * 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
US9886391B2 (en) * 2014-03-20 2018-02-06 International Business Machines Corporation Selective purging of PCI I/O address translation buffer
EP2997478B1 (en) * 2014-07-21 2019-03-13 VIA Alliance Semiconductor Co., Ltd. Efficient address translation caching in processor that supports large number of different address spaces
US9684606B2 (en) * 2014-11-14 2017-06-20 Cavium, Inc. Translation lookaside buffer invalidation suppression
US9697137B2 (en) * 2014-11-14 2017-07-04 Cavium, Inc. Filtering translation lookaside buffer invalidations
US9477516B1 (en) 2015-03-19 2016-10-25 Google Inc. Concurrent in-memory data publication and storage system
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
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
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
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
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
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
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US10942683B2 (en) 2015-10-28 2021-03-09 International Business Machines Corporation Reducing page invalidation broadcasts
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
US10528488B1 (en) * 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10437729B2 (en) 2017-04-19 2019-10-08 International Business Machines Corporation Non-disruptive clearing of varying address ranges from cache
US10725928B1 (en) * 2019-01-09 2020-07-28 Apple Inc. Translation lookaside buffer invalidation by range
US11151267B2 (en) * 2019-02-25 2021-10-19 International Business Machines Corporation Move data and set storage key based on key function control
US11042483B2 (en) 2019-04-26 2021-06-22 International Business Machines Corporation Efficient eviction of whole set associated cache or selected range of addresses
US11132470B2 (en) * 2019-11-07 2021-09-28 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
US11030124B2 (en) 2019-11-07 2021-06-08 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
US11182308B2 (en) * 2019-11-07 2021-11-23 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
CN111338987B (zh) * 2020-02-13 2023-12-12 江苏华创微系统有限公司 快速无效组相联tlb的方法
US11422946B2 (en) 2020-08-31 2022-08-23 Apple Inc. Translation lookaside buffer striping for efficient invalidation operations
US11615033B2 (en) 2020-09-09 2023-03-28 Apple Inc. Reducing translation lookaside buffer searches for splintered pages

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US592853A (en) 1897-11-02 Electric battery
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
JPS5815195A (ja) 1981-07-22 1983-01-28 株式会社日立製作所 制御棒駆動装置の自動交換装置
JPS5815196A (ja) 1981-07-22 1983-01-28 株式会社日立製作所 蒸気発生プラント
JPS58150195A (ja) 1982-02-27 1983-09-06 Fujitsu Ltd 主記憶キ−制御方式
JPS58150196A (ja) 1982-02-27 1983-09-06 Fujitsu Ltd 主記憶キ−の更新制御方式
JPS5994289A (ja) * 1982-11-22 1984-05-30 Hitachi Ltd 記憶制御方式
US4779188A (en) * 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
DE3686984T2 (de) 1985-06-28 1993-03-11 Hewlett Packard Co Verfahren und mittel zum laden und speichern von daten in einem rechner mit beschraenktem befehlssatz.
DE3650021T2 (de) * 1985-10-30 1995-03-09 Ibm Cache-Speicherübereinstimmungsvorrichtung mit Verriegelung.
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
JPS62295147A (ja) * 1986-06-16 1987-12-22 Hitachi Ltd 仮想計算機システム
JP2960415B2 (ja) * 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
JP2510605B2 (ja) 1987-07-24 1996-06-26 株式会社日立製作所 仮想計算機システム
JP2507785B2 (ja) * 1988-07-25 1996-06-19 富士通株式会社 ペ―ジテ―ブルエントリ無効化装置
JP2592958B2 (ja) * 1989-06-30 1997-03-19 キヤノン株式会社 液晶装置
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5500948A (en) * 1991-10-29 1996-03-19 Intel Corporation Translating instruction pointer virtual addresses to physical addresses for accessing an instruction cache
US5423014A (en) * 1991-10-29 1995-06-06 Intel Corporation Instruction fetch unit with early instruction fetch mechanism
JP3242161B2 (ja) * 1992-09-11 2001-12-25 株式会社日立製作所 データプロセッサ
US5615354A (en) * 1992-12-23 1997-03-25 International Business Machines Corporation Method and system for controlling references to system storage by overriding values
AU6629894A (en) 1993-05-07 1994-12-12 Apple Computer, Inc. Method for decoding guest instructions for a host computer
DE69425310T2 (de) * 1993-10-18 2001-06-13 Via-Cyrix, Inc. Mikrosteuereinheit für einen superpipeline-superskalaren Mikroprozessor
JP2806778B2 (ja) * 1994-01-28 1998-09-30 甲府日本電気株式会社 変換索引バッファクリア命令処理方式
WO1995031783A1 (de) 1994-05-11 1995-11-23 Gmd - Forschungszentrum Informationstechnik Gmbh Speichervorrichtung zum speichern von daten
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
JP2842313B2 (ja) * 1995-07-13 1999-01-06 日本電気株式会社 情報処理装置
US5790825A (en) 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
US5761743A (en) * 1996-06-28 1998-06-09 Marmon Holdings, Inc. Finger cot and method of manufacturing finger cot
US5761734A (en) * 1996-08-13 1998-06-02 International Business Machines Corporation Token-based serialisation of instructions in a multiprocessor system
US5782029A (en) * 1996-09-25 1998-07-21 Saf T Lok Corporation Firearm safety mechanism
JPH10301814A (ja) * 1997-04-23 1998-11-13 Hitachi Ltd 情報処理システム
US6009261A (en) 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6119219A (en) * 1998-04-30 2000-09-12 International Business Machines Corporation System serialization with early release of individual processor
US6079013A (en) * 1998-04-30 2000-06-20 International Business Machines Corporation Multiprocessor serialization with early release of processors
US6199219B1 (en) 1998-05-08 2001-03-13 Howard Silken Device to facilitate removal of a helmet face mask
US6308255B1 (en) * 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6119204A (en) * 1998-06-30 2000-09-12 International Business Machines Corporation Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
US6978357B1 (en) 1998-07-24 2005-12-20 Intel Corporation Method and apparatus for performing cache segment flush and cache segment invalidation operations
US20020147969A1 (en) 1998-10-21 2002-10-10 Richard A. Lethin Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6467007B1 (en) * 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
US6587964B1 (en) * 2000-02-18 2003-07-01 Hewlett-Packard Development Company, L.P. Transparent software emulation as an alternative to hardware bus lock
US6604187B1 (en) * 2000-06-19 2003-08-05 Advanced Micro Devices, Inc. Providing global translations with address space numbers
US6651132B1 (en) * 2000-07-17 2003-11-18 Microsoft Corporation System and method for emulating the operation of a translation look-aside buffer
EP1182570A3 (en) 2000-08-21 2004-08-04 Texas Instruments Incorporated TLB with resource ID field
US6684305B1 (en) 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US6715050B2 (en) * 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
US6801993B2 (en) * 2001-09-28 2004-10-05 International Business Machines Corporation Table offset for shortening translation tables from their beginnings
US6931471B2 (en) * 2002-04-04 2005-08-16 International Business Machines Corporation Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
JP3936672B2 (ja) * 2003-04-30 2007-06-27 富士通株式会社 マイクロプロセッサ
US7356710B2 (en) * 2003-05-12 2008-04-08 International Business Machines Corporation Security message authentication control instruction
US7284100B2 (en) 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers

Also Published As

Publication number Publication date
EP1701269A1 (en) 2006-09-13
KR100834362B1 (ko) 2008-06-02
DE602004021030D1 (de) 2009-06-18
DE602004011018D1 (de) 2008-02-07
US8452942B2 (en) 2013-05-28
US7890731B2 (en) 2011-02-15
PT1653365E (pt) 2011-03-22
JP2006526203A (ja) 2006-11-16
GB0518904D0 (en) 2005-10-26
EP1588267B1 (en) 2008-01-02
US8122224B2 (en) 2012-02-21
ATE430963T1 (de) 2009-05-15
US7284100B2 (en) 2007-10-16
EP1588267A1 (en) 2005-10-26
EP1653343A2 (en) 2006-05-03
DE112004000464T5 (de) 2006-06-01
PL1653365T3 (pl) 2011-07-29
GB2414841B (en) 2006-07-05
US20050268045A1 (en) 2005-12-01
ATE382896T1 (de) 2008-01-15
US20120117356A1 (en) 2012-05-10
US20070186075A1 (en) 2007-08-09
EP1653365A3 (en) 2006-11-08
DK1701269T3 (da) 2009-08-03
EP1653343A3 (en) 2006-07-19
CY1111421T1 (el) 2015-08-05
GB2413876A (en) 2005-11-09
SI1653343T1 (sl) 2011-01-31
DE602004031628D1 (de) 2011-04-14
EP1914627A3 (en) 2008-06-25
EP1653365B1 (en) 2011-03-02
EP1914627A2 (en) 2008-04-23
ES2357802T3 (es) 2011-04-29
ATE449374T1 (de) 2009-12-15
US7197601B2 (en) 2007-03-27
ATE491178T1 (de) 2010-12-15
CN1904860A (zh) 2007-01-31
ES2327058T3 (es) 2009-10-23
US20040230749A1 (en) 2004-11-18
EP1653365A2 (en) 2006-05-03
PT1653343E (pt) 2010-12-20
EP1914627B1 (en) 2009-11-18
DE602004011018T2 (de) 2008-12-24
GB0518901D0 (en) 2005-10-26
IL171905A (en) 2010-06-16
CN100363908C (zh) 2008-01-23
US20050273561A1 (en) 2005-12-08
CN100397368C (zh) 2008-06-25
KR100834365B1 (ko) 2008-06-02
IL171905A0 (en) 2006-04-10
DE602004024254D1 (de) 2009-12-31
PL1588267T3 (pl) 2008-06-30
GB2414842B (en) 2006-07-05
DK1653343T3 (da) 2011-01-24
ATE500553T1 (de) 2011-03-15
WO2004099997A1 (en) 2004-11-18
PL1701269T3 (pl) 2009-10-30
GB2414841A (en) 2005-12-07
DK1588267T3 (da) 2008-05-13
US7281115B2 (en) 2007-10-09
US20060036824A1 (en) 2006-02-16
SI1653365T1 (sl) 2011-06-30
EP1701269B1 (en) 2009-05-06
KR20060014030A (ko) 2006-02-14
ES2297417T3 (es) 2008-05-01
PL1653343T3 (pl) 2011-03-31
DK1653365T3 (da) 2011-05-09
KR20060093140A (ko) 2006-08-23
GB0516192D0 (en) 2005-09-14
EP1653343B1 (en) 2010-12-08
ES2336973T3 (es) 2010-04-19
DE602004030452D1 (de) 2011-01-20
GB2413876B (en) 2006-03-01
CY1111466T1 (el) 2015-08-05
GB2414842A (en) 2005-12-07
ES2359893T3 (es) 2011-05-27
CN1784663A (zh) 2006-06-07
US20110119466A1 (en) 2011-05-19
WO2004099997A9 (en) 2005-10-27

Similar Documents

Publication Publication Date Title
JP4608484B2 (ja) ストレージの無効化、バッファ・エントリの消去
US10776112B2 (en) Performing an operation absent host intervention
US9804970B2 (en) Invalidating a range of two or more translation table entries and instruction therefor
JP6202543B2 (ja) 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
JP6284130B2 (ja) ローカル・クリア制御
JP2011509469A (ja) フォーマット制御を有する動的アドレス変換
JP2000122928A (ja) ペ―ジ・テ―ブルのアクセス方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100706

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20100714

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20100722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100908

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101008

R150 Certificate of patent or registration of utility model

Ref document number: 4608484

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

Year of fee payment: 3

EXPY Cancellation because of completion of term