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

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

Info

Publication number
JP2006526203A
JP2006526203A JP2006506228A JP2006506228A JP2006526203A JP 2006526203 A JP2006526203 A JP 2006526203A JP 2006506228 A JP2006506228 A JP 2006506228A JP 2006506228 A JP2006506228 A JP 2006506228A JP 2006526203 A JP2006526203 A JP 2006526203A
Authority
JP
Japan
Prior art keywords
storage
entry
entries
unit
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006506228A
Other languages
English (en)
Other versions
JP2006526203A5 (ja
JP4608484B2 (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)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Advance Control (AREA)

Abstract

【課題】 コンピューティング環境のストレージを無効化する方法を提供すること。
【解決手段】 ストレージのセグメントまたはストレージの領域などの、ストレージの選択されたユニットが無効化される。無効化は、無効化されることになるストレージのユニットに対応するデータ構造エントリに配置される、無効化インジケータの設定によって容易となる。加えて、無効化されたストレージのユニットまたは他の選択されたストレージのユニットに関連付けられたバッファ・エントリが消去される。無効化あるいは消去またはその両方を実行するために、命令が提供される。さらに、いずれの無効化もなしに、特定のアドレス・スペースに関連付けられたバッファ・エントリが消去される。これは命令によっても実行される。命令は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの何らかの組合せでインプリメントするか、またはエミュレートすることが可能である。

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 2006526203
上記の表を参照すると、ビット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オペレーションによる消去に関連付けられた論理の一実施形態について、図9を参照しながら説明する。初めにステップ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 (24)

  1. 無効化されることになるストレージのユニットを、命令を介して指定するためのステップであって、前記ストレージのユニットがストレージの複数ページを有する、指定するステップと、
    前記ストレージのユニットを無効化するステップと、
    を有する、コンピューティング環境のストレージを無効化するための方法。
  2. 前記指定するステップが、前記ストレージのユニットに関連付けられたデータ構造の場所情報を提供するステップを有する、請求項1に記載の方法。
  3. 前記場所情報が前記データ構造の起点を有する、請求項2に記載の方法。
  4. 前記場所情報が前記データ構造のエントリの索引をさらに有し、前記エントリが前記ストレージのユニットに対応する、請求項3に記載の方法。
  5. 前記無効化するステップが、前記ストレージのユニットを無効化するために前記エントリの無効インジケータを設定するステップを有する、請求項4に記載の方法。
  6. 前記ストレージのユニットがストレージのセグメントおよびストレージの領域のうちの1つを有し、前記データ構造がセグメント・データ構造および領域データ構造のうちの1つを有する、請求項2に記載の方法。
  7. 前記無効化するステップが前記命令を介して実行される、請求項1に記載の方法。
  8. 前記無効化するステップが、前記ストレージのユニットに関連付けられた無効インジケータを設定するステップを有する、請求項1に記載の方法。
  9. 前記無効インジケータが、前記ストレージのユニットに関連付けられたデータ構造内に配置される、請求項8に記載の方法。
  10. 前記データ構造が複数のエントリを有し、前記無効化するステップが、無効化されることになる前記ストレージのユニットに関連付けられた前記エントリを取得するために索引を採用するステップをさらに有する、請求項9に記載の方法。
  11. 前記ストレージのユニットがストレージのセグメントを有し、前記ストレージのセグメントがストレージの複数ページを有する、請求項1に記載の方法。
  12. 前記ストレージのユニットがストレージの1領域を有し、前記ストレージの領域がストレージの複数セグメントを有し、ストレージの1セグメントがストレージの複数ページを有する、請求項1に記載の方法。
  13. 前記指定するステップがストレージの複数ユニットを指定するステップを有し、前記無効化するステップが前記ストレージの複数ユニットを無効化するステップを有する、請求項1に記載の方法。
  14. 前記ストレージの複数ユニットのおよび他のストレージのユニットのうちの1つまたは複数のユニットのうちの少なくとも1つに関連付けられた、1つまたは複数のバッファ・エントリを消去するステップをさらに有する、請求項13に記載の方法。
  15. 前記ストレージのユニットおよび他のストレージのユニットのうちの少なくとも1つに関連付けられた1つまたは複数のバッファの1つまたは複数のエントリを消去するステップをさらに有する、請求項1に記載の方法。
  16. 前記1つまたは複数のバッファのうちの少なくとも1つのバッファが多重レベル・バッファである、請求項15に記載の方法。
  17. 前記1つまたは複数のバッファのうちの少なくとも1つのバッファの1つまたは複数のエントリが消去されないままである、請求項15に記載の方法。
  18. 前記1つまたは複数のバッファが1つまたは複数の変換ルックアサイド・バッファを含む、請求項15に記載の方法。
  19. 前記無効化するステップおよび消去するステップが前記命令を介して実行される、請求項15に記載の方法。
  20. 前記ストレージが仮想ストレージを有する、請求項1に記載の方法。
  21. 前記命令が、ハードウェア、ファームウェア、およびソフトウェアのうちの少なくとも1つでインプリメントされる、請求項1に記載の方法。
  22. 前記命令が、前記命令のアーキテクチャをエミュレートする処理ユニットによって実行される、請求項1に記載の方法。
  23. 前記請求項のいずれか一項に記載のステップを実行するための手段を有する、コンピューティング環境のストレージを無効化するためのシステム。
  24. 前記請求項のいずれか一項に記載の方法を実行するために、マシンによる実行が可能な命令の少なくとも1つのプログラムを具体化するマシンによって読み取り可能な、少なくとも1つのプログラム・ストレージ・デバイス。
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 true JP2006526203A (ja) 2006-11-16
JP2006526203A5 JP2006526203A5 (ja) 2007-06-14
JP4608484B2 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) EP1588267B1 (ja)
JP (1) JP4608484B2 (ja)
KR (2) KR100834365B1 (ja)
CN (2) CN100363908C (ja)
AT (5) ATE491178T1 (ja)
CY (2) CY1111421T1 (ja)
DE (6) DE602004024254D1 (ja)
DK (4) DK1701269T3 (ja)
ES (5) ES2357802T3 (ja)
GB (3) GB2413876B (ja)
IL (1) IL171905A (ja)
PL (4) PL1588267T3 (ja)
PT (2) PT1653343E (ja)
SI (2) SI1653343T1 (ja)
WO (1) WO2004099997A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4815539B2 (ja) * 2008-01-11 2011-11-16 インターナショナル・ビジネス・マシーンズ・コーポレーション フレーム管理を有する動的アドレス変換
JP2012053888A (ja) * 2006-08-15 2012-03-15 Intel Corp 翻訳ルックアサイドバッファと拡張ページングテーブルとの同期化
US8151083B2 (en) 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8335906B2 (en) 2008-01-11 2012-12-18 International Business Machines Corporation Perform frame management function instruction for clearing blocks of main storage
JP2015523650A (ja) * 2012-06-15 2015-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ローカル・クリア制御
JP2015527632A (ja) * 2012-06-15 2015-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
JP2016527652A (ja) * 2014-07-21 2016-09-08 ヴィア アライアンス セミコンダクター カンパニー リミテッド 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463998B1 (en) 2002-12-13 2013-06-11 Open Text S.A. System and method for managing page variations in a page delivery cache
US8312222B1 (en) * 2002-12-13 2012-11-13 Open Text, S.A. Event-driven regeneration of pages for web-based applications
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
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
US7415035B1 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Device driver access method into a virtualized network interface
US7443878B2 (en) * 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
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
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
US8037278B2 (en) 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
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
US8041922B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8082405B2 (en) 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8019964B2 (en) 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
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
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
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
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
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
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
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
US8918601B2 (en) * 2009-12-14 2014-12-23 International Business Machines Corporation Deferred page clearing in a multiprocessor computer system
US8510511B2 (en) 2009-12-14 2013-08-13 International Business Machines Corporation Reducing interprocessor communications pursuant to updating of a storage key
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
US8595469B2 (en) 2010-06-24 2013-11-26 International Business Machines Corporation Diagnose instruction for serializing processing
US8407701B2 (en) 2010-06-24 2013-03-26 International Business Machines Corporation Facilitating quiesce operations within a logically partitioned computer system
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code
US9251091B2 (en) * 2012-06-15 2016-02-02 International Business Machines Corporation Translation look-aside table management
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
US9208362B1 (en) 2013-03-11 2015-12-08 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
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
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
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
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
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
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
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
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
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
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
US11182308B2 (en) * 2019-11-07 2021-11-23 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
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
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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0220451A2 (en) * 1985-10-30 1987-05-06 International Business Machines Corporation A cache coherence mechanism based on locking
JPS62295147A (ja) * 1986-06-16 1987-12-22 Hitachi Ltd 仮想計算機システム
JPH0235543A (ja) * 1988-07-25 1990-02-06 Fujitsu Ltd ページテーブルエントリ無効化装置
JPH0934789A (ja) * 1995-07-13 1997-02-07 Nec Corp 情報処理装置
JPH10301814A (ja) * 1997-04-23 1998-11-13 Hitachi Ltd 情報処理システム

Family Cites Families (52)

* 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 株式会社日立製作所 蒸気発生プラント
JPS58150196A (ja) 1982-02-27 1983-09-06 Fujitsu Ltd 主記憶キ−の更新制御方式
JPS58150195A (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.
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
JP2960415B2 (ja) * 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
JP2510605B2 (ja) 1987-07-24 1996-06-26 株式会社日立製作所 仮想計算機システム
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
WO1994027215A1 (en) 1993-05-07 1994-11-24 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 甲府日本電気株式会社 変換索引バッファクリア命令処理方式
JPH10500235A (ja) * 1994-05-11 1998-01-06 ゲーエムデー−フォルシュングスツェントルム インフォルマチオンシュテクニク ゲーエムベーハー データ記憶装置
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
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
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
US6079013A (en) * 1998-04-30 2000-06-20 International Business Machines Corporation Multiprocessor serialization with early release of processors
US6119219A (en) * 1998-04-30 2000-09-12 International Business Machines Corporation System serialization with early release of individual processor
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 富士通株式会社 マイクロプロセッサ
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US7284100B2 (en) 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7356710B2 (en) * 2003-05-12 2008-04-08 International Business Machines Corporation Security message authentication control instruction

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0220451A2 (en) * 1985-10-30 1987-05-06 International Business Machines Corporation A cache coherence mechanism based on locking
JPS62105250A (ja) * 1985-10-30 1987-05-15 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 多重プロセツサ・システムのキヤツシユを制御する方法
JPS62295147A (ja) * 1986-06-16 1987-12-22 Hitachi Ltd 仮想計算機システム
JPH0235543A (ja) * 1988-07-25 1990-02-06 Fujitsu Ltd ページテーブルエントリ無効化装置
JPH0934789A (ja) * 1995-07-13 1997-02-07 Nec Corp 情報処理装置
US5946717A (en) * 1995-07-13 1999-08-31 Nec Corporation Multi-processor system which provides for translation look-aside buffer address range invalidation and address translation concurrently
JPH10301814A (ja) * 1997-04-23 1998-11-13 Hitachi Ltd 情報処理システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010046792, Enterprise Systems Architecture/390 Principles of Operation, 20010731, SA22−7201−07, Eighth Edition(July 2001), pages 10−26, 10−27, US, インターナショナル・ビジネス・マシーンズ・コーポレ *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053888A (ja) * 2006-08-15 2012-03-15 Intel Corp 翻訳ルックアサイドバッファと拡張ページングテーブルとの同期化
JP4815539B2 (ja) * 2008-01-11 2011-11-16 インターナショナル・ビジネス・マシーンズ・コーポレーション フレーム管理を有する動的アドレス変換
US8151083B2 (en) 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8335906B2 (en) 2008-01-11 2012-12-18 International Business Machines Corporation Perform frame management function instruction for clearing blocks of main storage
US8417916B2 (en) 2008-01-11 2013-04-09 International Business Machines Corporation Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8489853B2 (en) 2008-01-11 2013-07-16 International Business Machines Corporation Executing a perform frame management instruction
US8909899B2 (en) 2008-01-11 2014-12-09 International Business Machines Corporation Emulating execution of a perform frame management instruction
JP2015523650A (ja) * 2012-06-15 2015-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ローカル・クリア制御
JP2015527632A (ja) * 2012-06-15 2015-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
JP2016527652A (ja) * 2014-07-21 2016-09-08 ヴィア アライアンス セミコンダクター カンパニー リミテッド 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4608484B2 (ja) ストレージの無効化、バッファ・エントリの消去
US9804970B2 (en) Invalidating a range of two or more translation table entries and instruction therefor
KR101174583B1 (ko) 변환 예외 한정자를 갖는 동적 어드레스 변환
JP6202543B2 (ja) 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
JP5602638B2 (ja) フォーマット制御を有する動的アドレス変換
JP4815539B2 (ja) フレーム管理を有する動的アドレス変換
JP6284130B2 (ja) ローカル・クリア制御
JP2011509470A (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