JP7485489B2 - 変換ロード命令 - Google Patents

変換ロード命令 Download PDF

Info

Publication number
JP7485489B2
JP7485489B2 JP2022519187A JP2022519187A JP7485489B2 JP 7485489 B2 JP7485489 B2 JP 7485489B2 JP 2022519187 A JP2022519187 A JP 2022519187A JP 2022519187 A JP2022519187 A JP 2022519187A JP 7485489 B2 JP7485489 B2 JP 7485489B2
Authority
JP
Japan
Prior art keywords
translation
load instruction
processor core
protection
memory
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.)
Active
Application number
JP2022519187A
Other languages
English (en)
Other versions
JP2022550074A (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 JP2022550074A publication Critical patent/JP2022550074A/ja
Application granted granted Critical
Publication of JP7485489B2 publication Critical patent/JP7485489B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明は、一般に、データ処理に関し、具体的には、プロセッサによって実行されたときに、所望の変換エントリをアドレス変換構造内に選択的にロードさせる変換ロード命令に関する。
従来のマルチプロセッサ(MP)コンピュータシステムは、複数の処理ユニット(各々が1つ又は複数のプロセッサコアと様々なキャッシュメモリとを含むことができる)と、入力/出力(I/O)デバイスと、システムメモリ(揮発性又は不揮発性とすることができる)及び不揮発性マスストレージの両方を含むことができるデータストレージとを含む。メモリマップドI/Oオペレーションと、オペレーティングシステム及びアプリケーションソフトウェアが使用するデータ及び命令とに十分なアドレスを提供するために、MPコンピュータシステムは、典型的には、メモリマップドI/Oデバイス及びシステムメモリの物理ストレージ位置の数よりもはるかに多い数の実効アドレスを含む実効アドレス空間を参照する。したがって、メモリマップドI/Oを実行するため又はシステムメモリにアクセスするためには、実効アドレス指定を使用するコンピュータシステム内のプロセッサコアは、実効アドレスを、特定のI/Oデバイス又はシステムメモリ内の物理ストレージ位置に割り当てられた実アドレスに変換する必要がある。
多くのアーキテクチャにおいて、実効アドレス空間は、複数のメモリページに区分化されており、各ページは、ページテーブルエントリ(PTE)と呼ばれるそれぞれの関連付けられたアドレス記述子を有する。特定のメモリページに対応するPTEは、他の情報の中でもとりわけ、メモリページのベース実効アドレス、並びに、関連付けられたページフレームのベース実アドレスを含み、これによりプロセッサコアは、メモリページ内の任意の実効アドレスをシステムメモリ内の実アドレスに変換することができる。システムメモリ内に例えばオペレーティングシステムもしくはハイパーバイザーソフトウェア又はその両方の指示の下で作成されたPTEは、ページフレームテーブルに集められる。
メモリマップドI/O命令及びメモリアクセス命令(以下、これらをまとめて単に「メモリ参照命令」と呼ぶ)の処理中、実効アドレスの実アドレスへの変換を速めるために、従来のプロセッサコアは、他の変換構造の中でもとりわけトランスレーション・ルックアサイド・バッファ(TLB:Translation Lookaside Buffer)と呼ばれるキャッシュを利用して、最近アクセスされたPTEをプロセッサコア内にバッファすることが多い。当然のことながら、データがシステムメモリの物理ストレージ位置に出入りすると(例えば、新たなプロセスの呼び出し又はコンテキスト切り替えに応答して)、TLBのエントリは新たなデータの存在を反映して更新されなければならず、システムメモリから削除された(例えば、不揮発性大容量ストレージにページアウトされた)データに関連付けられたTLBエントリは無効にされなければならない。
本出願は、データ処理システムのページフレームテーブル及びTLBなどのアドレス変換構造に変換エントリをロードするための改良された技術を提供することが有用かつ望ましいと認識する。
したがって、当該技術分野では、前述の問題を解決することが必要とされる。
第1の態様からみると、本発明は、システムメモリを含むデータ処理システムにおける処理のための方法を提供し、この方法は、プロセッサコアが、メモリページの変換エントリ内で指定すべき所望のアクセス保護を指定する保護フィールドを含む変換ロード命令を処理することを含み、変換ロード命令を処理することは、メモリページ内の実効アドレスを計算することと、所望のアクセス保護を含む変換エントリがデータ処理システムの少なくとも1つの変換構造内に格納されるようにすることとを含む。
さらに別の態様からみると、本発明は、データ処理システムのための処理ユニットを提供し、この処理ユニットは、実効アドレスを実アドレスに変換するメモリ管理ユニットと、命令を実行する実行ユニットと、を含むプロセッサコアを含み、プロセッサコアは、メモリページの変換エントリ内で指定すべき所望のアクセス保護を指定する保護フィールドを含む変換ロード命令を処理することを実行するように構成され、変換ロード命令を処理することは、メモリページ内の実効アドレスを計算することと、所望のアクセス保護を含む変換エントリがデータ処理システムの少なくとも1つの変換構造内に格納されるようにすることと、を含む。
さらに別の態様からみると、本発明は、集積回路を設計、製造又はテストするための機械可読ストレージデバイスにおいて有形に具体化された設計構造を提供し、この設計構造は、データ処理システムのための処理ユニットを含み、この処理ユニットは、プロセッサコアを含み、プロセッサコアは、実効アドレスを実アドレスに変換するメモリ管理ユニットと、命令を実行する実行ユニットと、を含み、処理ユニットは、メモリページの変換エントリ内で指定すべき所望のアクセス保護を指定する保護フィールドを含む変換ロード命令を処理することを実行するように構成され、変換ロード命令を処理することは、メモリページ内の実効アドレスを計算することと、所望のアクセス保護を含む変換エントリがデータ処理システムの少なくとも1つの変換構造内に格納されるようにすることと、を含む。
少なくとも1つの実施形態では、プロセッサコアは、メモリページの変換エントリにおいて指定すべき所望のアクセス保護を指定する保護フィールドを含む変換ロード命令を処理する。変換ロード命令を処理することは、メモリページ内の実効アドレスを計算することと、所望のアクセス保護を含む変換エントリがデータ処理システムの少なくとも1つの変換構造内に格納されるようにすることを含む。
ここで、本発明を、例示として、以下の図に示されるような好ましい実施形態を参照して説明する。
一実施形態による例示的なデータ処理システムの高レベルブロック図である。 一実施形態による例示的な処理ユニットのより詳細なブロック図である。 一実施形態による例示的な変換ロード命令を示す。 一実施形態による例示的なページテーブルエントリを示す。 一実施形態による、プロセッサコアが変換ロード命令を処理する例示的な方法の高レベル論理フローチャートである。 一実施形態による、ページフォールトハンドラがページフォールトを解決する例示的な方法の高レベル論理フローチャートである。 一実施形態による、保護フォールトハンドラが保護フォールトを解決する例示的な方法の高レベル論理フローチャートである。 設計プロセスを示すデータフロー図である。
ここで、全体を通して同様の参照符号が同様の対応する部分を指す図、特に図1を参照すると、一実施形態による例示的なデータ処理システム100を示す高レベルブロック図が示される。図示された実施形態では、データ処理システム100は、データ及び命令を処理するための複数の処理ノード102を含む、キャッシュコヒーレントな対称型マルチプロセッサ(SMP)データ処理システムである。処理ノード102は、アドレス、データ、及び制御情報を伝達するためのシステム・インターコネクト110に結合される。システム・インターコネクト110は、例えば、バス・インターコネクト、スイッチ・インターコネクト、又はハイブリッド・インターコネクトとして実装することができる。
図示された実施形態において、各処理ノード102は、各々が好ましくはそれぞれの集積回路として実現される4つの処理ユニット104a~104dを含む、マルチチップモジュール(MCM)として実現されている。各処理ノード102内の処理ユニット104は、ローカル・インターコネクト114によって互いに通信するため及びシステム・インターコネクト110と通信するために結合されており、ローカル・インターコネクト114はシステム・インターコネクト110と同様に、例えば、1つ又は複数のバスもしくはスイッチ又はその両方で実装することができる。システム・インターコネクト110とローカル・インターコネクト114とが一緒になってシステムファブリックを形成する。
図2を参照して以下でより詳細にされるように、処理ユニット104の各々は、それぞれのシステムメモリ108へのインターフェースを提供する、ローカル・インターコネクト114に接続されたメモリコントローラ106を含む。システムメモリ108内にあるデータ及び命令は、一般に、データ処理システム100内の任意の処理ノード102の任意の処理ユニット104内のプロセッサコアによってアクセス、キャッシュ、及び変更することができる。システムメモリ108は、このようにして、データ処理システム100の分散型共有メモリシステムにおける最下位レベルのメモリストレージを形成する。代替的な実施形態では、1つ又は複数のメモリコントローラ106(及びシステムメモリ108)を、ローカル・インターコネクト114ではなくシステム・インターコネクト110に結合することができる。
当業者であれば、図1のSMPデータ処理システム100は、相互接続ブリッジ、不揮発性ストレージ、ネットワーク又は付属デバイスに接続するためのポートなど、図示していない多くの付加的なコンポーネントを含むことができることを理解するであろう。このような付加的なコンポーネントは、説明する実施形態の理解に必要ではないため、図1には図示されておらず、本明細書ではさらに論じられることもない。しかしながら、本明細書で説明する拡張機能は、多様なアーキテクチャのデータ処理システムに適用可能であり、図1に示される一般化されたデータ処理システムアーキテクチャに限定されるものではないことも理解すべきである。
ここで図2を参照すると、一実施形態による例示的な処理ユニット104及びシステムメモリ108のより詳細なブロック図が示されている。図示された実施形態では、各処理ユニット104は、命令及びデータを処理するための1つ又は複数のプロセッサコア200を含む集積回路である。図示例では、プロセッサコア200は、複数の同時の実行ハードウェアスレッドから命令を実行する1つ又は複数の実行ユニット202を含む。
プロセッサコア200は、実行ユニット202におけるメモリ参照命令の実行によって決定される実効アドレスを実アドレスに変換することを担当する、メモリ管理ユニット(MMU)204をさらに含む。MMU204は、トランスレーション・ルックアサイド・バッファ(TLB)、実効to実アドレス変換(ERAT:Effective-to-Real Address Translation)キャッシュ、セグメント・ルックアサイド・バッファ(SLB:Segment Lookaside Buffer)など、1つ又は複数の変換構造206を参照して、実効アドレスから実アドレスへの変換を行う。これらの変換構造の数もしくは種類又はその両方は、実装及びアーキテクチャ間で異なる。変換構造206は、さらに後述するように、システムメモリ108から取得することができる選択されたアドレス変換のローカルコピーをバッファすることによって、アドレス変換に関連付けられた待ち時間を短縮する。
各プロセッサコア200のオペレーションは、すべての処理ユニット104により共有されるとともに統合メモリコントローラ106を介してアクセス可能なシステムメモリ108を最下位に有する、マルチレベル・メモリ階層によってサポートされる。図示のように、システムメモリ108は、1つ又は複数のシステムデータ構造(SDS)224を格納し、SDS224は、(場合によっては1つ又は複数の介在するメモリ空間を通して)実効アドレスから実アドレスへの変換が合法であるアドレスと、アドレス空間の異なる領域に対する現在のアクセス保護とを定義する。さらに、システムメモリ108は、複数のページテーブルエントリ(PTE)222を含むページフレームテーブル220を格納し、PTE222の各々は、システムメモリ108内に存在するそれぞれの対応するメモリページに対して実効アドレスから実アドレスへの変換を指定する。MMU204によってページフレームテーブル220からアクセスされたPTE222は、その後のアクセスのために、MMU204によって、例えば変換構造206の中で実装されるTLB内にキャッシュすることができる。SDS224及びページフレームテーブル220は、例えば、データ処理システム100内で実行されるオペレーティングシステムもしくはハイパーバイザーソフトウェア又はその両方によって確立、維持、及び更新することができる。
各プロセッサコア200のマルチレベル・メモリ階層は、さらに、1つ又は複数のレベルのキャッシュメモリを含み、これは、図示された実施形態では、各プロセッサコア200内にそれ専用のストアスルー方式レベル1(L1)キャッシュ208と、各プロセッサコア200用のそれぞれのストアイン方式レベル2(L2)キャッシュ230とを含む。図示されたキャッシュ階層はキャッシュのレベルを2つしか含まないが、当業者であれば、代替的な実施形態は、付加的なレベル(L3、L4など)の、オンチップ又はオフチップの、専用又は共有の、インライン又はルックアサイドのキャッシュを含むことができること、これらは、上位のキャッシュのコンテンツを完全に含む場合も、部分的に含む場合も、又は含まない場合もあることを理解するであろう。
各処理ユニット104は、さらに、ローカル・インターコネクト114とシステム・インターコネクト110とを含むシステムファブリック上のオペレーションの流れを制御すること、及び、所望のキャッシュコヒーレンシ・プロトコルを実施するのに必要なコヒーレンシ通信を実装することを担当する、統合型及び分散型のファブリックコントローラ214を含む。処理ユニット104はさらに、例えばアクセラレータ217などの1つ又は複数のI/Oデバイスの取り付けをサポートする統合I/O(入力/出力)コントローラ216を含む。処理ユニット104はまた、独自のアドレス変換機能をもたないアクセラレータ217などの他のエージェントに要求によりアドレス変換サービスを提供する、ネストメモリ管理ユニット(NMMU)218も含む。他の実施形態において、NMMU218は、代替的な又は付加的な方法で、例えばローカル・インターコネクト114ではなくシステム・インターコネクト110に結合されることによって、アクセラレータ217を含むエージェントにアドレス変換サービスを提供するように通信可能に結合することができることを理解すべきである。
ここで図3を参照すると、一実施形態による例示的な変換ロード命令300が示される。変換ロード命令300は、例えば、図5を参照して以下でさらに説明するように、プロセッサコア200の実行ユニット202によって実行することができる。
図示された実施形態において、変換ロード命令300は、命令300を変換ロード命令として識別するアーキテクチャ依存オペコードを指定するオペレーションコード(opcode)フィールド302を含む。さらに、変換ロード命令300は、そのコンテンツから仮想メモリページの実効アドレスを計算することができる1つ又は複数のレジスタを識別する、アドレスフィールド314を含む。
変換ロード命令300はまた、保護フィールド304を含み、これは例えば、読出し専用(R)ビット306、読出し書込み(RW)ビット308、及び実行可能(E)ビット310を含む。Rビット306が設定(例えば1に)され、RWビット308がリセット(例えば0に)されている場合、アドレスフィールド314を使用して計算されるアドレスで識別されるメモリページが読出し専用であることが示される。Rビット306がリセット(例えば、0に)され、RWビット308が設定(例えば、1に)されている場合、そのメモリページが読出し及び書込み両方のアクセスの対象になることを示す。Eビット310は、そのメモリページが実行可能な命令を含むものとして扱われることを示す場合に独立して設定(例えば、1に)され、そうでない場合はリセット(例えば、0に)される。
変換ロード命令300は、さらにロード(LD)フィールド312を含む。少なくとも幾つかの実施形態において、LDフィールド312は、各々がプロセッサコア200内の変換構造206のそれぞれ1つに対応する、1つ又は複数のビットで実装することができる。この例では、LDフィールド312に設定されているビットは、変換ロード命令300の実行に応答して、必要に応じて、参照されたメモリページのアドレスに対する変換がプロセッサコア200内の関連付けられた変換構造206にロードされることを示す。
ここで図4を参照して、一実施形態によるページテーブルエントリ222の例示的なフォーマットを示す。この例において、ページテーブルエントリ222は、実効アドレス空間内のメモリページのベース実効アドレスを示す実効アドレスフィールド400と、システムメモリ108内の対応するメモリページのベース実アドレスを示す実アドレスフィールド402と、メモリページのサイズを示すサイズフィールド403と、ページテーブルエントリ222が有効であるかどうか、したがってアドレス変換に使用できるかどうかを示す有効フィールド412とを含む。さらに、ページテーブルエントリ222は、読出し専用(R)ビット406と、読出し書込み(RW)ビット408と、実行可能(E)ビット410とを含む保護フィールド404を含む。変換ロード命令302の保護フィールド304と同様に、Rビット406が設定(例えば1に)され、RWビット408がリセット(例えば0に)されている場合、メモリページは読出し専用であることを示し、Rビット406がリセット(例えば0に)され、RWビット408が設定(例えば1に)されている場合、メモリページは読出し及び書込みの両方が可能であることを示す。Eビット410は、メモリページが実行可能な命令を含むことを示すよう場合に独立して設定(例えば、1に)され、そうでない場合はリセット(例えば、0に)される。
ここで図5を参照すると、一実施形態による、プロセッサコア200の実行ユニット202が変換ロード命令300を実行する例示的な方法の高レベル論理フローチャートが示されている。
図5のプロセスは、例えば、実行ユニット202が実行すべき変換ロード命令300を受け取ったことに応答して、ブロック500で開始する。幾つかの使用事例において、1つ又は複数の変換ロード命令300をプロセッサコア200の実行ハードウェアスレッド内で実行して、1つ又は複数のアドレス変換を、それらのアドレス変換に依存するメモリ参照命令の実行(プロセッサコア200の同じ又は別のハードウェアスレッド内)に先立って変換構造206にロードすることができる。その結果、変換構造206内のアドレス変換にアクセスするための待ち時間が短い(ページフレームテーブル220から各々の必要なアドレス変換にアクセスする必要がない)というMMU204の機能によって、その後のメモリ参照命令の実行が加速される。
他の使用事例において、プロセッサコア200は、NMMU218によって生じた割込みに応答して、変換ロード命令300を実行することができる。例えば、NMMU218がアクセラレータ217によって特定の実効アドレスの変換を要求され、対応するPTE222がページフレームテーブル220内に存在しない場合、又は、PTE222が要求されたアクセス保護を提供しない場合、NMMU218は、プロセッサコア200に割込みをかけ、特定の実効アドレスに対する変換ロード命令300の実行を行わせることができる。
実行ユニット202は、変換ロード命令300の実行に応答して、変換ロード命令300のアドレスフィールド314のコンテンツに基づいて、メモリページ内の実効アドレスを計算する(ブロック502)。実行ユニット202によってブロック502で計算された実効アドレスに基づいて、実行中のプロセッサコア200は、任意に、ブロック504及び506において、それぞれ、実効アドレスに対する変換エントリが、LDフィールド312で示されるコア変換構造の各々に存在するかどうか、及び、保護フィールド304で示されるアクセス保護を少なくとも有するかどうかを判定する。任意のブロック504及び506の両方における肯定的判定に応答して、変換ロード命令300のさらなる処理は必要なく、図5のプロセスはブロック530で終了する。しかしながら、ブロック504で肯定的判定がなされ、ブロック506で否定的判定がなされた場合には、保護フォールトが検出され、それに応じて、図5のプロセスは、ページコネクタAを経て、後述するブロック520に進む。ブロック504で否定的判定がなされた場合、又は任意のブロック504及び506が省略された場合には、図5のプロセスはブロック510に進む。
ブロック510において、プロセッサコア200は、可能であれば、ブロック502で求めた実効アドレスに対応するPTE222を見つけ出すために、MMU204によるページフレームテーブル220のウォーク(walk)を開始する。ブロック512において、MMU204は、ページフレームテーブル220のウォークが、ページフレームテーブル220内で関連するPTE222を見いだしたかどうかを判定する。見いだした場合、処理は以下で説明するブロック516に進む。見いださなかった場合には、ページフォールトが検出され、実行中のプロセッサコア200がページフォールトハンドラを呼び出す(ブロック514)。ページフォールトを解決するために例示的なページフォールトハンドラが実行する処理については、図6を参照して後述する。ブロック514でのページフォールトハンドラの実行に続いて、図5のプロセスはブロック530で終了する。
ここで、ブロック516を参照すると、実行プロセッサコア200は、ページフレームテーブル220のウォークによって見いだされたPTE222が、PTE222の保護フィールド404内に、変換ロード命令300の保護フィールド304で指定されたものと少なくとも同じ大きさのアクセス許可を含んでいるかどうかを判定する。例えば、変換ロード命令300の保護フィールド304が読出し専用ページを指定し(R=)、保護フィールド404が読出し専用ページ又は読出し書込みページのいずれかを指定している(R=0..1)場合、ブロック516で肯定的判定がなされる。同様に、変換ロード命令300の保護フィールド304が非実行可能メモリページを指定し(E=0)、保護フィールド404が非実行可能メモリページ又は実行可能メモリページのいずれかを指定している(E=0..1)場合、ブロック516で肯定的判定がなされる。逆に、変換ロード命令300の保護フィールド304が読出し書込みページを指定し(RW=1)、保護フィールド404が読出し専用ページを指定している(RW=0)場合、又は変換ロード命令300の保護フィールド304が実行可能メモリページを指定し(E=1)、保護フィールド404が非実行可能メモリページを指示する(E=0)場合には、ブロック516で否定的判定がなされることになる。
ブロック516における肯定的判定に応答して、プロセスは後述するブロック522に進む。しかしながら、ブロック516で否定的判定がなされた場合は、保護フォールトが検出され、実行中のプロセッサコア200は保護フォールトハンドラを呼び出す(ブロック520)。保護フォールトを解決するために例示的な保護フォールトハンドラが実行する処理については、図7を参照して後述する。保護フォールトハンドラの実行に続いて、図5のプロセスはブロック530で終了する。
ブロック522は、実行プロセッサコア200が、変換ロード命令300のLDフィールド312内のいずれかのビットが、要求されたアドレス変換が1つ又は複数の変換構造206にロードされることを示すように設定されているかどうかを判定することを示す。設定されていない場合、変換ロード命令300の処理は完了し、それに応じて図5のプロセスはブロック530で終了する。しかしながら、実行プロセッサコア200が、ブロック522において、少なくとも1つのビットがLDフィールド312内で、要求されたアドレス変換が1つ又は複数の変換構造206にロードされることを示すように設定されていると判定した場合には、実行プロセッサコア200はさらにブロック524において、要求されたアドレス変換が変換ロード命令300のLDフィールド312で示される各変換構造206内に存在するかどうかを判定する。存在しない場合、実行プロセッサコア200は、アドレス変換を提供する変換エントリを、変換ロード命令300のLDフィールド312で示される各変換構造206にロードする(ブロック526)。理解されるように、変換ロード命令300の処理に応答して実行される変換構造206の更新は、通常のデータ・ロード・アクセス、データ・ストア・アクセス、又は命令フェッチのいずれにも関係していないので、アドレス変換エントリを変換構造206にロードすることが、実行プロセッサコア200のキャッシュ階層(すなわち、L1、L2など)の汚染の原因となることはない。ブロック526に続いて、又はブロック524での肯定的判定に応答して、プロセッサコア200による変換ロード命令300の処理が完了し、図5のプロセスはブロック530で終了する。
ここで図6を参照すると、一実施形態による、ページフォールトハンドラがページフォールトを解決する例示的な方法の高レベル論理フローチャートが示されている。上述のように、図6のプロセスは、例えば、ページフォールトの検出に応答して、図5のブロック514で実行することができる。
図6のプロセスは、データ処理システム100のプロセッサコア200によるページフォールトハンドラの実行の呼び出しにより、ブロック600で開始する。このプロセスは、ブロック600からブロック602-ブロック604へと進み、これらブロックは、ページフォールトハンドラがシステムデータ構造224にアクセスして、変換が要求された実効アドレスが変換に有効なアドレスであるかどうかを判定することを示す。有効なアドレスでない場合、ページフォールトハンドラは、変換の失敗を示し、無効なアドレス変換を要求したプログラムの実行を停止する(ブロック606)。その後、図6のプロセスはブロック614で終了する。
ページフォールトハンドラが、ブロック604で、実効アドレスが変換に有効なアドレスであると判定したことに応答して、ページフォールトハンドラは、システムメモリ108内に実効アドレスに対応する新たな物理ページを確立する(ブロック608)。さらに、ブロック610で、ページフォールトハンドラは、ページフレームテーブル220内に、システムメモリ108内の新たな物理ページに対応するPTE222を確立し、その実効ビット412を設定する(ブロック610)。保護フィールド404は未設定のままにされるので、保護フォールトハンドラの少なくとも1回の実行で、メモリページに対して要求されたアクセス保護を設定することを確認する。ページフレームテーブル220内の新たなPTE222及びシステムメモリ108内の対応する物理ページを確立する際、ページフォールトハンドラは、ページフレームテーブル220から1つ又は複数の他のPTE222を削除し、システムメモリ108から対応する物理ページを削除(ページアウト)することができる。
要求された変換を提供するPTE222がページフレームテーブル220内に確立された後、ページフォールトハンドラはその実行を終了し、ページフォールトの原因となった命令の再実行を開始する(ブロック612)。ページフォールトの原因となった命令が変換ロード命令300であった場合には、図5を参照して前述したように、変換ロード命令300が再実行される。しかしながら、変換ロード命令300が再実行されたときには、要求された変換を提供するPTE222がページフレームテーブル220内に存在するので、ブロック512(又は実装されている場合にはブロック504)で肯定的判定がなされ、ページフォールトが再び発生することはない。しかしながら、保護フィールド404に保護ビットが設定されていないので、ブロック520において、保護フォールトハンドラを呼び出す保護フォールトが、新たに確立されたPTE222で発生することになる。ブロック612に続いて、図6のプロセスはブロック614で終了する。
ここで図7を参照すると、一実施形態による保護フォールトハンドラが保護フォールトを解決する例示的な方法の高レベル論理フローチャートが示されている。上述のように、図7のプロセスは、例えば、保護フォールトの検出に応答して、図5のブロック520で実行することができる。
図7のプロセスは、データ処理システム100のプロセッサ200による保護フォールトハンドラの実行の呼び出しにより、ブロック700で開始する。このプロセスは、ブロック700からブロック702-ブロック704へと進み、これらブロックは、保護フォールトハンドラがシステムデータ構造224にアクセスして、要求されたアクセス許可のアップグレード(例えば、読出し専用から読出し書込みへ、又は、Eビット410をメモリページが実行可能命令を含むように設定する)が合法であるかどうかを判定すること示す。合法でない場合、保護フォールトハンドラは、保護の失敗を示し、ページ保護の不正な変更を要求したプログラムの実行を停止する(ブロック706)。その後、図7のプロセスはブロック714で終了する。
保護フォールトハンドラが、ブロック704で、要求されたページ保護の変更が合法であると判定したことに応答して、保護フォールトハンドラは、データ処理システム100全体を通じてすべての変換構造206内の関連する実効アドレスのいずれのエントリも無効にする(ブロック708)。例えば、この無効化は、選択されたアーキテクチャ専用の変換無効化ソフトウェア・シーケンスの実行によって達成することができる。さらに、ブロック710において、保護フォールトハンドラは、ページフレームテーブル220内で、関連するPTE222の保護フィールド404を更新して、例えば、変換ロード命令300の保護フィールド304で要求された新たな値を反映させる(ブロック710)。その後、保護フォールトハンドラはその実行を終了し、保護フォールトの原因となった命令の再実行を開始する(ブロック712)。保護フォールトの原因となった命令が変換ロード命令300であった場合には、図5を参照して上述したように、変換ロード命令300が次いで再実行される。しかしながら、変換ロード命令300が再実行されたときには、要求された保護を提供するPTE222がページフレームテーブル220内に存在するので、ブロック516(又は、実装されている場合にはブロック506)で肯定的判定がなされ、保護フォールトが再び発生することはない。ブロック712に続いて、図7のプロセスはブロック714で終了する。
図6~図7を参照して上述した実施形態では、ページフォールト及び保護フォールトを別個のハンドラルーチンを使用して解決するが、他の実施形態では、ページフォールトハンドラが保護フォールトも検出して解決する場合もある。このような実施形態は、場合によっては、より長く複雑なページフォールトハンドラの実行を代償として、変換ロード命令300が再実行される回数を減らすことができる。
ここで図8を参照すると、例えば、半導体ICの論理設計、シミュレーション、テスト、レイアウト、及び製造で用いられる例示的な設計フロー800のブロック図が示される。設計フロー800は、設計構造又はデバイスを処理して、上述の及び図1~図2に示される設計構造もしくはデバイス又はその両方の論理的又はその他の機能的に等価な表現を生成するためのプロセス、機械もしくは機構又はそれらの組み合わせを含む。設計フロー800によって処理もしくは生成又はその両方が行われた設計構造は、データ処理システム上で実行され又はその他の処理がなされたときに、ハードウェアコンポーネント、回路、デバイス、又はシステムの論理的、構造的、機械的、又はその他の機能的に等価な表現を生成するデータもしくは命令又はその両方を含むように、機械可読の伝送又はストレージ媒体上に符号化することができる。機械は、回路、コンポーネント、デバイス、又はシステムの設計、製造、シミュレーションなど、IC設計プロセスで用いられるあらゆる機械を含むが、これらに限定されるものではない。例えば、機械は、リソグラフィ機械、マスクを生成するための機械もしくは機器又はその両方(例えば、電子ビーム描画装置)、設計構造をシミュレートするためのコンピュータ又は機器、製造又はテストプロセスで用いられるあらゆる装置、又は設計構造の機能的に等価な表現をいずれかの媒体にプログラミングするためのあらゆる機械(例えば、プログラマブルゲートアレイをプログラミングするための機械)を含むことができる。
設計フロー800は、設計される表現のタイプに応じて異なる場合がある。例えば、特定用途向けIC(ASIC)を構築するための設計フロー800は、標準的なコンポーネントを設計するための設計フロー800、又は、例えばAltera(登録商標)社又はXilinx(登録商標)社が提供するプログラマブルゲートアレイ(PGA)又はフィールドプログラマブルゲートアレイ(FPGA)などのプログラマブルアレイに設計をインスタンス化するための設計フロー800とは異なる場合がある。
図8は、好ましくは設計プロセス800によって処理される入力設計構造820を含む複数のそうした設計構造を示す。設計構造820は、ハードウェアデバイスの論理的に等価な機能的表現を生成するために設計プロセス800によって生成及び処理される論理シミュレーション設計構造とすることができる。設計構造820はさらに、又は代替的に、設計プロセス800によって処理されたときに、ハードウェアデバイスの物理的構造の機能的表現を生成するデータもしくはプログラム命令又はその両方を含むことができる。機能的設計特徴もしくは構造的設計特徴又はその両方を表すかどうかにかかわらず、設計構造820は、コア開発者/設計者によって実施されるような電子コンピュータ支援設計(ECAD)を用いて生成することができる。機械可読データ伝送、ゲートアレイ、又はストレージ媒体上に符号化されたとき、設計構造820は、設計プロセス800内の1つ又は複数のハードウェアモジュールもしくはソフトウェアモジュール又はその両方によってアクセス及び処理されて、図1~図2に示されるもののような電子コンポーネント、回路、電子又は論理モジュール、装置、デバイス、又はシステムをシミュレートするか又はその他の方法で機能的に表現することができる。このように、設計構造820は、設計又はシミュレーションデータ処理システムによって処理されたときに、回路又は他のレベルのハードウェア論理設計を機能的にシミュレート又は他の方法で表現する、人間もしくは機械又はその両方が読むことができるソースコード、コンパイルされた構造、及びコンピュータ実行可能コード構造を含むファイル又は他のデータ構造を含むことができる。このようなデータ構造は、ハードウェア記述言語(HDL)設計エンティティ、又はVerilog及びVHDLなどの低レベルHDL設計言語もしくはC又はC++などの高レベル設計言語又はその両方に準拠もしくは互換性のある又はその両方である他のデータ構造を含むことができる。
設計プロセス800は、好ましくは、設計構造820などの設計構造を含むことができるネットリスト880を生成するために、図1~図2に示されるコンポーネント、回路、デバイス、又は論理構造の設計/シミュレーションの機能的等価物を合成、変換、又はその他の処理をするためのハードウェアモジュールもしくはソフトウェアモジュール又はその両方を使用し、組み込む。ネットリスト880は、例えば、集積回路設計における他の要素及び回路への接続を記述するワイヤ、離散的コンポーネント、論理ゲート、制御回路、I/Oデバイス、モデルなどのリストを表す、コンパイルされた、又はその他の方法で処理されたデータ構造を含むことができる。ネットリスト880は、デバイスの設計仕様及びパラメータに応じてネットリスト880を1回又は複数回再合成する反復プロセスを用いて合成することができる。本明細書に記載される他の設計構造タイプと同様に、ネットリスト880は、機械可読ストレージ媒体上に記録されてもよく、又はプログラマブルゲートアレイにプログラムされてもよい。媒体は、磁気又は光ディスクドライブ、プログラマブルゲートアレイ、コンパクトフラッシュ(登録商標)、又は他のフラッシュメモリなどの不揮発性ストレージ媒体とすることができる。さらに、又はその代替として、媒体は、システム又はキャッシュメモリ、又はバッファ空間とすることができる。
設計プロセス800は、ネットリスト880を含む様々な入力データ構造タイプを処理するためのハードウェア及びソフトウェアモジュールを含むことができる。そのようなデータ構造タイプは、例えば、ライブラリ要素830内に存在ことができ、所与の製造技術(例えば、異なる技術ノード、32nm、45nm、90nmなど)のためのモデル、レイアウト、及び記号表現を含む、一般的に使用される要素、回路、及びデバイスのセットを含む。データ構造タイプは、設計仕様840、特性データ850、検証データ860、設計ルール870、及び入力テストパターン、出力テスト結果、及びその他のテスト情報を含むことができるテストデータファイル885をさらに含むことができる。設計プロセス800は、例えば、応力解析、熱解析、機械的事象シミュレーション、鋳造、成形、ダイプレス成形などのオペレーションのためのプロセスシミュレーションなどの標準的な機械設計プロセスをさらに含むことができる。機械設計の当業者であれば、本発明の範囲から逸脱することなく、設計プロセス800で用いられる可能な機械設計ツール及びアプリケーションの範囲を理解することができる。また、設計プロセス800は、タイミング解析、検証、設計規則チェック、配置及び経路オペレーションなどの標準的な回路設計プロセスを実行するためのモジュールを含むことができる。
設計プロセス800は、HDLコンパイラ及びシミュレーションモデル構築ツールなどの論理及び物理設計ツールを使用し、組み込み、設計構造820を、図示したサポートデータ構造の一部又は全部並びに付加的な機械設計又はデータ(該当する場合)とともに処理して、第2の設計構造890を生成する。設計構造890は、機械デバイス及び構造のデータの交換に用いられるデータフォーマット(例えば、IGES、DXF、Parasolid XT、JT、DRG、又はそのような機械設計構造を格納又はレンダリングするためのいずれかの他の適切なフォーマットに格納された情報)で、ストレージ媒体又はプログラマブルゲートアレイ上に存在する。設計構造820と同様に、設計構造890は、好ましくは、伝送又はデータ記憶媒体上に存在し、ECADシステムによって処理されると、図1~図2に示される本発明の実施形態の1つ又は複数の論理的又はその他の機能的に等価な形態を生成する1つ又は複数のファイル、データ構造、又はその他のコンピュータ符号化データ又は命令を含む。一実施形態では、設計構造890は、図1~図2に示すデバイスを機能的にシミュレートするコンパイルされた実行可能なHDLシミュレーションモデルを含むことができる。
また、設計構造890は、集積回路のレイアウトデータの交換に用いられるデータフォーマットもしくは記号データフォーマット又はその両方(例えば、GDSII(GDS2)、GL1、OASIS、マップファイル、又はこのような設計データ構造を格納するためのいずれかの他の適切なフォーマットに格納される情報)を使用することもできる。設計構造890は、例えば、記号データ、マップファイル、テストデータファイル、設計コンテンツファイル、製造データ、レイアウトパラメータ、ワイヤ、金属のレベル、ビア、形状、製造ラインを通してルーティングするためのデータ、及び上述の及び図1~図2に示されるようなデバイス又は構造を製造するために製造業者又は他の設計者/開発者が必要とするいずれかの他のデータなどの情報を含むことができる。設計構造890は、その後、段階895に進むことができ、ここで、例えば、設計構造890は、テープアウトに進むこと、製造にリリースされること、マスクハウスにリリースされること、別の設計ハウスに送られること、顧客に返送されることなどが行われる。
これまで説明してきたように、少なくとも1つの実施形態において、プロセッサコアは、メモリページの変換エントリ内で指定されるべき所望のアクセス保護を指定する保護フィールドを含む変換ロード命令を処理する。変換ロード命令を処理することは、メモリページ内の実効アドレスを計算することと、所望のアクセス保護を含む変換エントリがデータ処理システムの少なくとも1つの変換構造内に格納されていることを確認することとを含む。
ここまで様々な実施形態を具体的に示し、説明してきたが、当業者であれば、添付の特許請求の範囲から逸脱することなく、その中で形態及び詳細に様々な変更を加えることができ、これらの代替的な実装はすべて添付の特許請求の範囲に含まれることが理解されるであろう。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で行われることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方の中のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
ここまで本発明の機能を指示するプログラムコードを実行するコンピュータシステムに関する態様を説明してきたが、本発明は代替的に、データ処理システムのプロセッサで処理することができるプログラムコードを格納するコンピュータ可読ストレージデバイスを含むプログラム製品として実装され、データ処理システムに説明された機能を実行させることもできることを理解すべきである。コンピュータ可読ストレージデバイスは、揮発性又は不揮発性メモリ、光ディスク又は磁気ディスクなどを含むことができるが、伝搬信号自体、伝送媒体自体、及びエネルギー自体の形態などの法定外の対象は除外する。
一例として、プログラム製品は、データ処理システム上で実行又はその他の方法で処理されると、本明細書で開示されるハードウェアコンポーネント、回路、デバイス、又はシステムの論理的、構造的、又はその他の機能的に等価の表現(シミュレーションモデルを含む)を生成するデータもしくは命令又はその両方を含むことができる。このようなデータもしくは命令又はその両方は、Verilog及びVHDLなどの低レベルHDL設計言語、もしくはC又はC++などの高レベル設計言語又はその両方に準拠もしくは互換性のある又はその両方であるハードウェア記述言語(HDL)設計エンティティ又はその他のデータ構造を含むことができる。さらに、データもしくは命令又はその両方はまた、集積回路のレイアウトデータの交換に用いられるデータフォーマットもしくは記号データフォーマット又はその両方(例えば、GDSII(GDS2)、GL1、OASIS、マップファイル、又はこのような設計データ構造を格納するためのいずれかの他の適切なフォーマットに格納される情報)を使用することもできる。

Claims (17)

  1. システムメモリを含むデータ処理システムにおける処理のための方法であって、前記方法が、
    プロセッサコアが、メモリページの変換エントリ内で指定すべき所望のアクセス保護を指定する保護フィールドを含む変換ロード命令を処理することであって、前記変換ロード命令は、所望の変換エントリを変換構造に選択的にロードさせる命令であり、前記変換構造は、実効アドレスを実アドレスに変換するための変換エントリを格納するバッファ又はキャッシュである、前記処理すること
    を含み、前記変換ロード命令を処理することが、
    前記メモリページ内の実効アドレスを計算することと、
    前記所望のアクセス保護を含む変換エントリが前記データ処理システムの少なくとも1つの変換構造内に格納されるようにすることと
    を含む、方法。
  2. 前記少なくとも1つの変換構造が前記プロセッサコア内の変換構造を含み、
    前記変換ロード命令がロードフィールドを含み、
    前記方法は、前記プロセッサコアが、前記ロードフィールドが設定されていることに基づいて、前記プロセッサコア内の前記変換構造に前記実効アドレスの前記変換エントリをロードすることをさらに含む、
    請求項1に記載の方法。
  3. 前記変換構造がトランスレーション・ルックアサイド・バッファを含む、請求項2に記載の方法。
  4. 前記少なくとも1つの変換構造が前記システムメモリ内のページフレームテーブルに含まれるページテーブルエントリをキャッシュする、請求項1から請求項3までのいずれかに記載の方法。
  5. 前記変換ロード命令内の前記保護フィールドが第1の保護フィールドであり、
    前記変換エントリが第2の保護フィールドを含み、
    前記方法は、前記プロセッサコアが、前記第1及び第2の保護フィールドで指定されたアクセス保護のミスマッチに基づいて、保護フォールトハンドラを呼び出すことをさらに含む、請求項1から請求項4までのいずれかに記載の方法。
  6. 前記変換ロード命令によって要求されたアクセス保護の変更が合法であるかどうか判定することと、
    前記変換ロード命令によって要求されたアクセス保護の前記変更が合法であるとの判定に応答して、前記変換エントリ内の前記第2の保護フィールドを更新することと
    をさらに含む、請求項5に記載の方法。
  7. 前記データ処理システムが、前記データ処理システムのシステムファブリックに結合されたネストメモリ管理ユニットを含み、
    前記処理することは、前記プロセッサコアが、前記ネストメモリ管理ユニットによって開始された割込みを受け取ることに基づいて、前記変換ロード命令を処理することを含む、
    請求項1から請求項6までのいずれかに記載の方法。
  8. データ処理システムのための処理ユニットであって、前記処理ユニットは、
    実効アドレスを実アドレスに変換するメモリ管理ユニットと、
    命令を実行する実行ユニットと、
    を含むプロセッサコアを含み、前記プロセッサコアは、
    メモリページの変換エントリ内で指定すべき所望のアクセス保護を指定する保護フィールドを含む変換ロード命令を処理することであって、前記変換ロード命令は、所望の変換エントリを変換構造に選択的にロードさせる命令であり、前記変換構造は、実効アドレスを実アドレスに変換するための変換エントリを格納するバッファ又はキャッシュである、前記処理することを実行するように構成され、前記変換ロード命令を処理することが、
    前記メモリページ内の実効アドレスを計算することと、
    前記所望のアクセス保護を含む変換エントリが前記データ処理システムの少なくとも1つの変換構造内に格納されるようにすることと
    を含む、処理ユニット。
  9. 前記少なくとも1つの変換構造が前記プロセッサコア内の変換構造を含み、
    前記変換ロード命令がロードフィールドを含み、
    前記プロセッサコアが、前記ロードフィールドが設定されていることに基づいて、前記プロセッサコア内の前記変換構造に前記実効アドレスの前記変換エントリをロードするように構成された、
    請求項8に記載の処理ユニット。
  10. 前記変換構造がトランスレーション・ルックアサイド・バッファを含む、請求項9に記載の処理ユニット。
  11. 前記少なくとも1つの変換構造がシステムメモリ内のページフレームテーブルに含まれるページテーブルエントリをキャッシュする、請求項8から請求項10までのいずれかに記載の処理ユニット。
  12. 前記変換ロード命令内の前記保護フィールドが第1の保護フィールドであり、
    前記変換エントリが第2の保護フィールドを含み、
    前記プロセッサコアが、前記第1及び第2の保護フィールドで指定されたアクセス保護のミスマッチに基づいて、保護フォールトハンドラを呼び出すように構成された、
    請求項8から請求項11までのいずれかに記載の処理ユニット。
  13. 前記プロセッサコアが、
    前記変換ロード命令によって要求されたアクセス保護の変更が合法であるかどうか判定することと、
    前記変換ロード命令によって要求されたアクセス保護の前記変更が合法であるとの判定に応答して、前記変換エントリ内の前記第2の保護フィールドを更新することと
    を実行するようにさらに構成された、請求項12に記載の処理ユニット。
  14. 前記データ処理システムが、前記データ処理システムのシステムファブリックに結合されたネストメモリ管理ユニットを含み、
    前記プロセッサコアが、前記ネストメモリ管理ユニットによって開始された割込みを、前記システムファブリックを介して受け取ることに基づいて、前記変換ロード命令を処理するように構成された、請求項8から請求項13までのいずれかに記載の処理ユニット。
  15. 請求項8から請求項14までのいずれかに記載の複数の処理ユニットと、前記複数の処理ユニットを結合するシステムファブリックとを含む、データ処理システム。
  16. システムメモリを含むデータ処理システムにおける処理のためのコンピュータ・プログラムを格納するコンピュータ可読ストレージ媒体であって、
    前記コンピュータ・プログラムは処理回路に、請求項1から請求項7までのいずれかに記載の方法を実行させる、コンピュータ可読ストレージ媒体。
  17. コンピュータ・プログラムであって、前記コンピュータ・プログラムはコンピュータに、請求項1から請求項7までのいずれかに記載の方法を実行させる、コンピュータ・プログラム。
JP2022519187A 2019-09-30 2020-09-25 変換ロード命令 Active JP7485489B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/588,380 US11226902B2 (en) 2019-09-30 2019-09-30 Translation load instruction with access protection
US16/588,380 2019-09-30
PCT/IB2020/058986 WO2021064531A1 (en) 2019-09-30 2020-09-25 Translation load instruction

Publications (2)

Publication Number Publication Date
JP2022550074A JP2022550074A (ja) 2022-11-30
JP7485489B2 true JP7485489B2 (ja) 2024-05-16

Family

ID=75161992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022519187A Active JP7485489B2 (ja) 2019-09-30 2020-09-25 変換ロード命令

Country Status (7)

Country Link
US (1) US11226902B2 (ja)
JP (1) JP7485489B2 (ja)
CN (1) CN114514512A (ja)
AU (1) AU2020358044B2 (ja)
DE (1) DE112020004709T5 (ja)
GB (1) GB2601464B (ja)
WO (1) WO2021064531A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220382682A1 (en) * 2021-06-01 2022-12-01 International Business Machines Corporation Reset dynamic address translation protection instruction
US11593275B2 (en) 2021-06-01 2023-02-28 International Business Machines Corporation Operating system deactivation of storage block write protection absent quiescing of processors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142779A (ja) 1999-10-01 2001-05-25 Hitachi Ltd 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法
JP2003058421A (ja) 2001-08-13 2003-02-28 Hitachi Ltd プロセッサ及びコンピュータシステム
JP2019525298A (ja) 2016-06-29 2019-09-05 エイアールエム リミテッド 条件付きメモリアクセスプログラム命令のための許可制御

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
TW200712841A (en) * 2005-09-30 2007-04-01 Tyan Computer Corp Processor configuration architecture of multi-processor system
US20080162829A1 (en) 2007-01-03 2008-07-03 Freescale Semiconductor, Inc. Selective guarded memory access on a per-instruction basis
US8176279B2 (en) 2008-02-25 2012-05-08 International Business Machines Corporation Managing use of storage by multiple pageable guests of a computing environment
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
EP2849071A1 (en) 2013-09-16 2015-03-18 ST-Ericsson SA Pre-fetch in a multi-stage memory management system
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
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
JP7144671B2 (ja) * 2018-03-14 2022-09-30 富士通株式会社 ネットワークインタフェース装置、それを有するノードを複数有する情報処理装置及び情報処理装置のノード間送信データ送信方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142779A (ja) 1999-10-01 2001-05-25 Hitachi Ltd 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法
JP2003058421A (ja) 2001-08-13 2003-02-28 Hitachi Ltd プロセッサ及びコンピュータシステム
JP2019525298A (ja) 2016-06-29 2019-09-05 エイアールエム リミテッド 条件付きメモリアクセスプログラム命令のための許可制御

Also Published As

Publication number Publication date
AU2020358044B2 (en) 2023-11-09
AU2020358044A1 (en) 2022-03-24
US20210096859A1 (en) 2021-04-01
GB202204674D0 (en) 2022-05-18
US11226902B2 (en) 2022-01-18
GB2601464B (en) 2022-12-14
JP2022550074A (ja) 2022-11-30
GB2601464A (en) 2022-06-01
CN114514512A (zh) 2022-05-17
WO2021064531A1 (en) 2021-04-08
DE112020004709T5 (de) 2022-06-09

Similar Documents

Publication Publication Date Title
US11100004B2 (en) Shared virtual address space for heterogeneous processors
US9405700B2 (en) Methods and apparatus for virtualization in an integrated circuit
KR101179341B1 (ko) 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행
US9727241B2 (en) Memory page access detection
JP7485489B2 (ja) 変換ロード命令
US10740239B2 (en) Translation entry invalidation in a multithreaded data processing system
US20220334978A1 (en) Computer system and method using a first page table and a second page table
US11662934B2 (en) Migration of a logical partition between mutually non-coherent host data processing systems
US10977183B2 (en) Processing a sequence of translation entry invalidation requests with regard to draining a processor core
CN117063165A (zh) 迁移由输入-输出设备能够访问的存储器页面
EP4272081A1 (en) Migrating pages of memory accessible by input-output devices
CN116034344A (zh) 支持数据处理系统间存储器共享的多功能通信接口
US20090158003A1 (en) Structure for a memory-centric page table walker
CN113272789A (zh) 由输入输出存储器管理单元进行的域标识符和装置标识符转译
US20230036054A1 (en) Memory migration within a multi-host data processing environment
US11520704B1 (en) Writing store data of multiple store operations into a cache line in a single cycle
TW202338619A (zh) 定義用於經轉譯存取請求的權限資訊的裝置權限表
CN118056193A (zh) 地址转换电路系统和用于执行地址转换的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220401

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20220325

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240402

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20240416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240430

R150 Certificate of patent or registration of utility model

Ref document number: 7485489

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150