JP2012532381A - 凝集された小さいページを用いて拡張されたページサイズ - Google Patents

凝集された小さいページを用いて拡張されたページサイズ Download PDF

Info

Publication number
JP2012532381A
JP2012532381A JP2012518596A JP2012518596A JP2012532381A JP 2012532381 A JP2012532381 A JP 2012532381A JP 2012518596 A JP2012518596 A JP 2012518596A JP 2012518596 A JP2012518596 A JP 2012518596A JP 2012532381 A JP2012532381 A JP 2012532381A
Authority
JP
Japan
Prior art keywords
page
size
processor
operating system
entry
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.)
Pending
Application number
JP2012518596A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2012532381A publication Critical patent/JP2012532381A/ja
Pending 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/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
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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/652Page size control

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)

Abstract

【解決手段】
仮想メモリページングメカニズムを含むプロセッサ。仮想メモリページングメカニズムは、プロセッサ上で動作しているオペレーティングシステムが、第1のサイズ及び第2のサイズのページを用いることを可能にし、第2のサイズは第1のサイズより大きい。メカニズムは、更に、オペレーティングシステムが第1のサイズの2つ以上の連続的なページを含むスーパーページを用いることを可能にする。スーパーページのサイズは第2のサイズより小さい。プロセッサは、更に、各スーパーページに含まれるページの各々に対して別個のエントリを有するページテーブルを含む。オペレーティングシステムは、単一の仮想アドレスを用いて各スーパーページへアクセスする。メカニズムは、トランスレーションルックアサイドバッファTLBにおける単一のエントリを、TLBにおけるエントリに関連するスーパーページ有効標識がアサートされていることを検出することに応答して、スーパーページに対応する一連のページを備えているメモリの領域を参照するものとして解釈する。
【選択図】図1

Description

本発明はコンピュータプロセッサに関し、より特定的には仮想メモリ環境におけるページトランスレーション(page translation)に関する。
最新のコンピュータシステムは、仮想メモリを活用して性能を高めている。例えば、メモリを効率的に使用する一方でハードディスク記憶装置のより大きな容量を生かすために、プロセッサは多くの場合に仮想アドレシングメカニズムを備えており、このメカニズムにおいては、仮想アドレスは、メモリの物理サイズよりも大きな仮想空間を参照することができる。仮想アドレシングメカニズムは、通常は、プロセッサハードウエアとオペレーティングシステムソフトウエアの組み合わせによって実行される。実際上は、大きな仮想アドレス空間が複数のページに分割されるのが通例である。プロセッサが仮想メモリアドレスに対して読み出し又は書き込みする場合はいつでも、専門のプロセッサハードウエアが当該アドレスを物理メモリ内にあるページ(しばしばフレームと称される)上の物理ロケーション又はディスク上に記憶されているページ(又はフレーム)への参照のいずれかへとトランスレートする(translates)。参照がディスク上に記憶されているフレームへのものである場合、オペレーティングシステムは、当該フレームを物理メモリ内へ移動させて、必要であれば最近アクセスされていないフレームと交換する。
ページング(paging)を用いるアドレストランスレーションは、典型的には、ページトランスレーションテーブルとして知られる一連のデータ構造を伴う。仮想アドレスを物理アドレスへとトランスレートするために、仮想アドレスの低位ビットは物理アドレスへ直接的にマッピングされ得る一方で、仮想アドレスの高位ビットは、ページトランスレーションテーブル内へ索引を付けて物理アドレスの高位ビットを発見するために用いられ得る。階層的なページテーブル実装においては、プロセッサは仮想アドレスの高位ビットを1つ以上のビットフィールドに区分することができ、各ビットフィールドはページトランスレーションテーブルの異なる階層レベルに対応している。仮想アドレスを物理アドレスへとマッピングしているページトランスレーションテーブルにおけるエントリは、一般的にはページテーブルエントリ(PTE)と称されることがある。
仮想アドレストランスレーションの速度は、トランスレーションルックアサイドバッファ(translation lookaside buffer)(TLB)として知られるCPUキャッシュ内でPTEをキャッシュすることによって高められ得る。TLBはPTEを記憶するための固定数のスロットを有しているであろう。TLBエントリへアクセスすることは、一般的にはページトランスレーションテーブルを用いてアドレストランスレーションを行うよりも速いので、TLBのサイズ及びカバー範囲(coverage)は全体的なシステム性能の重要な指標になり得る。TLBのカバー範囲は各TLBエントリによって表されるページのサイズに依存する。一般的なコンピュータアーキテクチャは、仮想メモリページサイズの粗い選択を提供するのみである。例えば周知のx86−64アーキテクチャは、4KB、2MB、及び1GBのページサイズを提供する。ページサイズが小さくなると、TLBの有効容量が減少すると共にTLBアクセスのミスレートが増大する。残念なことに、大量のデータセットを必要としていないアプリケーションに対して、極めて大きなページサイズがしばしばメモリの非効率な割り当てを結果としてもたらしてしまう。上述の考察を考慮すると、効率的なメモリ使用を維持しつつTLBミスレートを改善し且つ/又はTLB有効容量を増大することによってシステム性能を改善するシステム及び方法が求められるであろう。
上述の考察に加えて、改良されたTLBミス率及び容量がいくらかは高められた能力を提供し得る一方で、高められた能力が導入されたならばいつでもプロセッサが既存のソフトウエアを実行し続けることが可能にすることが望ましいであろう。従って、古くなってしまったページングモードをサポートし続けるプロセッサ強化が望ましいであろう。
仮想メモリページングメカニズムを含むプロセッサの種々の実施形態が開示される。仮想メモリページングメカニズムは、プロセッサ上で動作しているオペレーティングシステムが、第1のサイズ及び第2のサイズのページを用いることを可能にする。第2のサイズは第1のサイズより大きい。仮想メモリページングメカニズムは、更に、第1のサイズの2つ以上の連続的なページを含む一連のページを備えているスーパーページをオペレーティングシステムが形成することを可能にする。スーパーページのサイズは第2のサイズより小さい。プロセッサは、更に、各スーパーページに含まれる2つ以上の連続的なページの各々に対して別個のエントリを含むページテーブルを含む。仮想メモリページングメカニズムは、オペレーティングシステムが単一の仮想アドレスを用いて各スーパーページへアクセスすることを可能にする。プロセッサは更にトランスレーションルックアサイドバッファ(TLB)を含む。仮想メモリページングメカニズムは、TLBにおける単一のエントリを、TLBにおけるエントリに関連するスーパーページ有効標識がアサートされていることを検出することに応答して、スーパーページに対応する一連のページを備えているメモリの領域を参照するものとして解釈する。1つの実施形態では、スーパーページのサイズは64KBである。
1つの実施形態では、TLBにおけるエントリに関連するスーパーページ有効標識がアサートされていることを検出することに応答して、仮想メモリページングメカニズムは、スーパーページの一部を備えているメモリの領域を参照するものとしてページテーブルにおけるエントリを解釈する。更なる実施形態においては、スーパーページ有効標識はソフトウエア設定可能である。仮想メモリページングメカニズムは、ページテーブルにおける少なくとも2つのエントリの少なくとも1つが欠落しており又はページテーブルにおける少なくとも2つのエントリの他における対応する属性に無矛盾でない属性を含んでいることを検出することに応答してページフォールトを発行する。
更なる実施形態においては、仮想メモリページングメカニズムは、プロセッサ上で動作している第1のオペレーティングシステム及び第2のオペレーティングシステムの一方又は両方でのスーパーページの使用を同時に且つ独立に可能にする。更なる実施形態においては、第1のオペレーティングシステムは、第1のページテーブルを用いてゲストアドレス空間内の仮想アドレスをゲストアドレス空間内の物理アドレスへとトランスレートするように構成される仮想化された環境におけるゲストオペレーティングシステムであり、第2のオペレーティングシステムは、第2のページテーブルを用いてゲストアドレス空間内の物理アドレスをホストアドレス空間内の物理アドレスへとトランスレートするように構成される仮想化された環境におけるホストオペレーティングシステムである。更なる実施形態においては、仮想メモリページングメカニズムは、オペレーティングシステムが2つ以上の異なるスーパーページサイズのスーパーページを用いることを可能にする。この実施形態においては、各スーパーページサイズは第1のサイズの2つ以上の連続的なアラインされたページのサイズに等しく、各スーパーページサイズは第2のサイズよりも小さい。
これらの及び他の実施形態は、以下の説明及び添付の図面を考慮することによって明らかになるであろう。
図1は拡張されたページサイズを組み込み得るコンピュータシステムの1つの実施形態の一般化されたブロック図である。
図2はシステムにおいてプロセッサによって用いられ得るアドレストランスレーションシステムの1つの実施形態を示す図である。
図3はページテーブルにおけるエントリ及びTLBにおけるエントリのメモリへのマッピングの1つの実施形態を示す図である。
図4は拡張されたページサイズのためのサポートの状態を表示する制御レジスタ内に含まれるビットフィールドの1つの実施形態を示す図である。
図5は特定モデル用レジスタ(MSR)内に含まれるビットフィールドの1つの実施形態を示す図である。
図6はオペレーティングシステムがスーパーページを定義するために用いることができるデータ構造エントリの1つの実施形態を示す図である。
図7はスーパーページにアクセスするためにプロセッサによって実行され得るページングプロセスの1つの実施形態を示す図である。
図8はスーパーページをサポートしているプロセッサにおいてページテーブルから読み出されるスーパーページエントリの有効性をチェックするために用いられ得るプロセスの1つの実施形態を示す図である。
図9はスーパーページを用いるようにプロセッサを構成するために用いられ得るプロセスの1つの実施形態を示す図である。
本発明は種々の修正及び代替的形態を許容する一方で、具体的な実施形態は、例示として図面に示され、またここに詳細に説明される。但し、図面及びそれに対する詳細な説明は、開示される特定の形態に本発明を限定することを意図しているのではなく、むしろ逆に、本発明は、添付の特許請求の範囲によって画定される本発明の精神及び範囲内に含まれる全ての修正、均等なもの、及び代替を網羅するものである。
図1は拡張されたページサイズを組み込み得るコンピュータシステム100の1つの実施形態の一般化されたブロック図である。プロセッサ110は、周辺機器120及び物理メモリ130に結合されるものとして示されている。周辺機器120は、記憶デバイス170、ネットワークインタフェース174、及び取り外し可能媒体177を含んでいてよい。図示される実施形態は汎用コンピュータシステムの典型である。その一方で、図示される構成要素、特にプロセッサ110は、制御システム、電化製品、自動車、民生用電子製品、等の広範な装置において見出され得るし、あるいは計算を具現化し且つデータを記憶し又は処理する任意のデバイスにおいて実際に見られるであろう。
プロセッサ110は、アドレストランスレーション機能を提供することによって仮想メモリをサポートし得る任意の種類のプロセッサの例示である。プロセッサ110は、I/Oインタフェース160に結合され且つレベル2(L2)キャッシュ150に結合される1つ以上のコア140を含んでいてよい。コア140は、L2キャッシュ150に結合されるレベル1(L1)キャッシュ145を含んでいてよい。物理メモリ130は、典型的にはRAMを備えていてよいが、プロセッサ110に結合され且つプロセッサ110上での実行を処理するためのデータへの比較的に速やかなアクセスを提供する任意の種類のデータ記憶装置であってもよい。対照的に、記憶デバイス170は、一般的には物理メモリ130よりも大量のデータをより長いアクセス時間で記憶することができる。一般的な記憶デバイスは、ハードディスク、フロッピー(登録商標)ディスク、CD、又は任意の他の適切なデータ記憶デバイスを含む。
コンピュータシステム100の使用目的に応じて、種々の他の周辺機器120がI/Oインタフェース160を介してプロセッサ110に結合されてよい。例えば、周辺機器120は、キーボード、モニタ、スピーカ、ディスクドライブ、入力/出力ポート等を含み得る。メモリ130、周辺機器120、及びプロセッサ110の間での相互接続は、アドレスバス及びデータバスを含んでいてよく、そして共有バス、スイッチング構造、又はコンピュータシステム内で構成要素同士を結合するための任意の他の適切な相互接続システムを備えていてよい。代替的な実施形態では、コンピュータシステム100は、2レベルより多い又は少ないキャッシュを含んでいてよい。
動作の間、コア140が初めてデータのページへのアクセスを要求すると、対応するデータは記憶デバイス170からメモリ130へと移動させられてよい。コア140は次いで、ページの1つ以上の部分(例えばキャッシュライン)をメモリ130からL1キャッシュ145へと移動させてよい。追加的なキャッシュラインが必要になるにつれ、それらもまたL1キャッシュ145へ移動させられてよい。L1キャッシュ145に十分なスペースがなくなると、キャッシュラインはL2キャッシュ150へと移動(退去)させられてよい。同様に、L2キャッシュ150が埋まるにつれ、キャッシュラインはメモリ130へ移されてよく、そしてメモリ130が埋まるにつれ、ページは記憶デバイス170へ移されてよい。特定のキャッシュが埋まるときにページのどの部分を移動させるかを決定するための技術は当該分野でよく知られている。これらの技術の各々は、キャッシュ置換ポリシー又はキャッシュアルゴリズムと称されることがある。
図2はシステム100においてプロセッサ110によって用いられ得るアドレストランスレーションシステム200の1つの実施形態を示している。システム200は、トランスレーションルックアサイドバッファ(TLB)210、ページテーブル220、及びディスク230を含む。1つの実施形態においては、TLB210及びページテーブル220はプロセッサ110内に組み込まれていてよく、そしてディスク230は記憶デバイス170と同様の任意の種類の記憶デバイスであってよい。動作の間、プロセッサ110は、仮想メモリロケーションに対して読み出し又は書き込む命令を実行しているプロセスからの所望のページに対する仮想アドレス240を維持することができる。
プロセッサ110は次いで、TLB210におけるエントリを参考にすることによって、仮想アドレス240に対応する物理アドレスを識別することを試みてよい。仮想から物理へのトランスレーションがTLB210内に存在する場合には、TLBヒットと称され、フレーム番号を含む物理アドレス250がプロセッサ110へ返送されてよい。仮想から物理へのトランスレーションがTLB210内に存在しない場合には、TLBミスと称され、プロセッサ110は次いで、ページテーブル220におけるエントリを参考にすることによって、仮想アドレス240に対応する物理アドレスを識別することを試みてよい。仮想から物理へのトランスレーションがページテーブル220内に存在する場合には、ページテーブルヒットと称され、トランスレーションエントリがTLB210へ書き込まれてよい。続いてプロセッサ110は、所望のエントリが今や見つかっているであろうTLB210におけるエントリを参考にすることによって、アクセスを再試行してよい。仮想から物理へのトランスレーションがページテーブル220内に存在しない場合には、ページテーブルミスと称され、プロセッサ110はページフォールト(page fault)を宣言してよい。ページフォールトにより、所望のページがディスク230から検索されてよく、また対応するエントリがページテーブル220へ書き込まれてよい。ページテーブル220が更新された後に、プロセッサ110は、TLB210におけるエントリを参考にすることによって、アクセスを再試行してよい。TLB210は未だ更新されていないので、TLBミスが生じるであろう。しかし、プロセッサ110は、ページテーブルヒットが生じているであろうページテーブル220におけるエントリを参考にしてよく、そしてトランスレーションエントリがTLB210へ書き込まれてよい。続いてプロセッサ110は、所望のエントリが今や見つかっているであろうTLB210におけるエントリを参考にすることによって、アクセスを再試行してよい。所望のページがディスク230から検索し得ない場合、例えば所望のアクセスが無効である場合、セグメンテーションフォールト(segmentation fault)又は他の同様のエラーが、プロセッサ110上で実行中のオペレーションシステム等のソフトウエアによって宣言されると共に対処されてよい。
ページテーブル220におけるエントリは、任意の種類のフォーマットを用いて仮想アドレスを物理アドレスへとトランスレートしてよい。一般的に言えば、仮想アドレスは、ページテーブル220内への索引として用いられる幾つかのビットフィールドと、ページテーブル220によって識別されるページ内へのオフセットとして用いられる一連の低位ビットとを含む。種々の実施形態において、ページテーブル220は1つ以上のレベルを含んでいてよく、各レベルは仮想アドレスの特定のビットフィールドによって索引付けられる。従って、仮想アドレスにおける高位ビットフィールドのフォーマットは、ページのサイズ及びページテーブル220内のレベル数に依存する。ページテーブルレベルの数にかかわりなく、ページテーブルエントリ及び対応するTLBエントリは、物理フレーム番号を含む物理アドレスへと仮想アドレスをトランスレートするために用いられ得る。
仮想アドレシングをサポートするプロセッサは、種々の動作モードにおいて種々の長さの仮想アドレスを用いてよい。そのような動作モードは、オペレーティングシステム及びプロセッサが仮想アドレス内のビットフィールドを解釈する方法を定義してよい他、物理アドレスへの仮想アドレスのトランスレーションにおいてビットフィールドが用いられる方法を定義してよい。1つの実施形態においては、プロセッサ110は、x86アーキテクチャと互換性のあるプロセッサの動作モードとの後方互換性(backward compatibility)を維持する。
TLBのカバー範囲を増大し且つTLBミスの確率を低減する1つの手法は、TLBにおける各エントリによって代表されるページのサイズを増大することである。プロセッサ110は、以下に説明される制御レジスタ設定を介して、拡張されたページサイズを用いるように構成され得る。図3はページテーブル310におけるエントリ及びTLB350におけるエントリのメモリ330へのマッピングの1つの実施形態を示している。図示される実施形態においては、ページテーブルエントリは4KBページに対応していてよく、そしてTLBエントリは、もっと大きなページサイズ、例えば64KBページに対応していてよい。ページテーブル310は、ページテーブルエントリ301〜318等を含んでいてよい。TLB350はエントリ351〜317等を含んでいてよい。メモリ330はページ331〜348等を含んでいてよい。エントリ301〜318の各々は4KBページに対応していてよい。図示されるように、エントリ301はページ331に対応し、エントリ302はページ332に対応し、以下同様である。エントリ351〜357の各々は64KBに対応していてよい。例えば、図示されるように、エントリ352は、ページ331〜346を含むメモリの領域に対応しており、この領域はスーパーページ(superpage)と称されることがある。スーパーページは、ここで用いられるように、2つ以上の連続的な凝集されアラインされた(contiguous, aggregated, aligned)4KBページを含むメモリの領域を参照してよい。加えて、便宜上且つ一般性を失うことなく、以下の議論では、L1キャッシュ、L2キャッシュ、又はメモリ内にある物理フレームの任意の部分は、記憶デバイス内にあるフレームとは対照的にメモリ内にあるものとして参照され得る。プロセッサ110及びその上で実行中のオペレーティングシステムは、種々のデータ構造を用いて、スーパーページがサポートされているか否か、スーパーページが有効にされているか否か、どのTLBエントリが小さい(例えば4KB)ページに対応するか、及びどのTLBエントリが以下に説明されるようなスーパーページに対応するかを決定することができる。
図4は拡張されたページサイズのためのサポートの状態を表示する制御レジスタ400内に含まれるビットフィールドの1つの実施形態を示している。制御レジスタ400は、x86アーキテクチャを組み込んでいるプロセッサ内の制御レジスタ4(CR4)に対応していてよい。CR4レジスタは、プロセッサの能力を定義する幾つかのビットを含む。図示されるように、レジスタ400は、スーパーページに関連する2つのビット401及び402を含む。ビット401はページサイズ拡張又はPSEビットと称され、ページが4KBであるか若しくは標準的な大きなページサイズである4MBであるか、又は物理アドレス拡張(PAE)が有効にされている場合における2MBであるかを表示する。ビット401がアサートされていない場合には、4KBのページサイズが有効である。加えてレジスタ400は拡張されたページングモード(XPM)サポートビットと称されるビット402を含み、ビット402は、セットされている場合に、拡張されたモードのページサイズがサポートされていることを表示する。
1つの実施形態では、プロセッサ110は単一の拡張されたページサイズをサポートしてよい。例えば、64KBの拡張されたページサイズがサポートされ得る。代替的な実施形態においては、2つ以上の拡張されたページサイズがサポートされてよい。どの拡張されたページサイズがサポートされるかを決定するために、種々のメカニズムが提供され得る。以下の欄は1つのそのようなメカニズムを説明している。
図5は特定モデル用レジスタ(model-specific register)(MSR)500内に含まれるビットフィールドの1つの実施形態を示している。MSR500は、プロセッサによってサポートされる拡張されたモードのページサイズを定義する幾つかのビットを含む。1つの実施形態では、図示されるように、レジスタ500はビット501〜508を含む。拡張されたページサイズが、上述したようなビット401及び402によって表示されるようにサポートされているとすると、サポートされるページサイズは、表1に示されるようなビット501〜508の値によって示される。
Figure 2012532381
1つの実施形態では、レジスタ500は読み出し専用レジスタであってよい。従って、表1に示されるように、レジスタ500は、単一の選択された拡張されたページサイズがサポートされていることを表示する。1つの実施形態では、ビット501〜508の1つのみが、どの単一の拡張されたページサイズがサポートされるかを表示するようにセットされてよい。代替的な実施形態においては、ビット501〜508の2つ以上が、2つ以上の拡張されたページサイズがサポートされることを表示するようにセットされてよい。更なる実施形態においては、レジスタ500は、種々のページサイズがソフトウエアによって動的に有効にされると共に無効にされることを可能にするように、書き込み可能であってよい。
尚、拡張されたページングモードは、セキュア仮想マシン(SVM)等の仮想化されたマシン環境のホストモード及びゲストモードにおいて独立に有効にされてよい。例えば、ホストオペレーティングシステム及びゲストオペレーティングシステムの間で切り換える場合、レジスタ400及び500の特定OS用バージョンの値が、仮想マシン制御ブロック(VMCB)として知られるデータ構造へと保存されると共に復活させられてよい。
レジスタ400及び500内にセットされる値をチェックすることによって、プロセッサ110上で実行中のソフトウエアは、もしあれば何の拡張されたページサイズがサポートされているかを決定することができる。ソフトウエアは次いで、幾つかの追加的なメカニズムを用いてスーパーページを定義することができる。
図6はオペレーティングシステムがスーパーページを定義するために用いることができるデータ構造エントリの1つの実施形態を示している。図においては、ページテーブルエントリ352及びページ属性テーブル(PAT)エントリ630が示されている。1つの実施形態では、ページテーブルにおける各エントリは、参照しているページテーブルエントリのフォーマットを表すPATにおけるエントリを参照する識別子ビットを含む。例えば、ページテーブルエントリ352は、PATにおける特定のエントリ、例えばエントリ630への索引を共に形成するビット603、604、及び607を含む。1つの実施形態では、ビット603はページ書き込みスルー(PWT)ビットに対応していてよく、ビット604はページキャッシュ無効(PCD)ビットに対応していてよく、そしてビット607はx86アーキテクチャのページ属性テーブル(PAT)ビットに対応していてよい。
PATエントリ630内においては、スーパーページが有効であるか否かを表示するために、あるビットが指定されてよい。例えば図6に示されるように、スーパーページビット634がPATエントリ630内に示されている。1つの実施形態では、ビット634が「1」にセットされている場合、当該ページ属性エントリを参照しているページテーブルエントリはページテーブルエントリのスーパーページ群の一部であり、そして当該ページ属性エントリを参照しているTLBエントリはスーパーページを表す。一方、ビット634が「1」にセットされていない場合には、当該ページ属性エントリを参照しているページテーブルエントリ又はTLBエントリは、4KBページを表す。
代替的な実施形態では、ビット634がスーパーページビットとして機能するPATにおけるエントリへの索引としてビット603、604、及び607を用いることに代えて、ページテーブルエントリ352の別のビットがスーパーページビットとして用いられてよい。例えば、ページテーブルエントリ352のビット11又はPATビット、即ちビット607のようなAVLビットの1つがスーパーページビットとして用いられてよい。AVLビットが用いられる場合、ハードウエアがAVLビットを解釈することができるようにXPMをサポートするプロセッサを構成することが必要であろう。
ペーテーブルエントリ352内には、ビット612〜616等を含むビットフィールド640も示されている。ビットフィールド640は、どのスーパーページサイズが有効にされるのかを表示するために用いられてよい。1つの実施形態では、表2に示されるようなビットフィールド640の値が、どのスーパーページサイズが有効にされるのかを表示する。
Figure 2012532381
ビットフィールド640の一部でないビット612〜619のいずれも、物理フレーム番号の一部であってよい。例えば64KBスーパーページが有効である場合、ビット612〜615がビットフィールド640として確保されて有効であるスーパーページサイズを表示する一方で、高位ビット616,617等は物理フレーム番号の一部である。代替的な実施形態では、ページテーブルエントリ352からの任意の種類の他のビットが、単一又は複数の有効にされたスーパーページサイズをオペレーティングシステムが定義するために用いられてよい。
尚、1つの実施形態では、拡張されたページングモードは、セキュア仮想マシン(SVM)等の仮想化されたマシン環境のホストモード及びゲストモードにおいて独立に定義され得る。例えば、ホストオペレーティングシステム及びゲストオペレーティングシステムの間で切り換える場合、ページテーブル及びページ属性テーブルの特定OS用バージョンの値が維持されてよい。また、仮想化されたマシンを組み込む幾つかの実施形態においては、ゲストオペレーティングシステムアドレス空間における仮想アドレスをゲストオペレーティングシステムアドレス空間における物理アドレスへとトランスレートするために第1の一連のスーパーページが用いられてよく、またゲストオペレーティングシステムアドレス空間における物理アドレスをホストオペレーティングシステムアドレス空間における物理アドレスへとトランスレートするために第2の一連のスーパーページが用いられてよい。そのようなシステムにおいて用いられるページテーブルは、入れ子にされた(nested)ページテーブルと称されることがある。
上述したように、スーパーページは2つ以上の連続的な凝集されアラインされた4KBページを備えている。尚、1つの実施形態では、スーパーページを用いるオペレーティングシステムは、そのような一連の4KBページを表す一連のページテーブルエントリの各々内へスーパーページエントリを複製することによって、一連のページテーブルエントリを無矛盾的に(consistently)埋めてスーパーページ領域を形成する必要があるかもしれない。以下の無矛盾性要求がこの実施形態に適用される。
個々のページテーブルエントリは、それらがスーパーページエントリの一部であることを表示するために、上述したフォーマットに従う必要があるであろう。
上述したフォーマットに従わない個々のページテーブルエントリをプロセッサ110が読み出した場合、スーパーページは無効であると宣言されてよく、また問い合わせ(question)におけるページテーブルエントリは、4KBページを表しているものとして解釈されてよい。矛盾するエントリが読み出された場合、TLBは対立しているエントリを除去してよい。また、プロセッサ110が、アクセスされたビット及び/又はダーティービット(A/Dビット)を矛盾したエントリにおいてセットすることを試みると、ページ不良が生じるであろう。
更なる実施形態においては、有効なスーパーページは、プロセッサ110とその上で実行されるオペレーティングシステムとの間での取り決め(contract)を形づくる一連の規則に従って、一連の完全なページテーブルエントリがページテーブル内に存在することを必要とするであろう。例えば、64KBスーパーページが有効にされる場合、有効なスーパーページを形成するために16個の4KBページテーブルエントリが必要である。もしそうでなければ、有効なページテーブルエントリが存在している4KBページへとアクセスが向けられているとしても、メモリアクセスの間にページフォールトが生じ得る。更なる実施形態においては、スーパーページエントリを備えている各個々の4KBエントリの物理フレーム番号及び/又はキャッシング属性は、同一である必要があるかもしれない。さもなければプロセッサ110の挙動が不明確になることがある。更なる実施形態においては、スーパーページエントリを備えている各個々の4KBエントリの保護属性は、同一である必要があるかもしれない。もしそうでなければ、有効なページテーブルエントリが存在している4KBページへとアクセスが向けられているとしても、メモリアクセスの間にページフォールトが生じ得る。上述の規則に従う場合、オペレーティングシステムは、幾つかのスプリアスな(しかし別の面では無害な)ページフォールトを無視することによって、スーパーページを備えている個々のページテーブルエントリを順次更新することができる。代替的な実施形態においては、オペレーティングシステムは、スプリアスなページフォールトを回避するように、更新プロセスの間にページテーブルをオフラインにしてよい。
別の実施形態では、ページテーブルエントリのA/Dビットを更新することは、スーパーページの一連のエントリに属している最初の(即ち最低位アドレスの)エントリが最初に更新されることを必要とするかもしれない。最初のエントリが一連のスーパーページビットを有していない場合、又は上述したような他の矛盾が存在する場合には、ページフォールトが生じるであろう。代替的な実施形態においては、ページテーブルエントリのA/Dビットを更新することは、スーパーページの一連のエントリに属するエントリの任意の1つが更新されることを必要とするだけであってよい。そのような更新は「まばらな(sparse)」更新と称され、有効なスーパーページを見つけるためにオペレーティングシステムがエントリを順次スキャンし又は一連のスーパーページエントリにおける全てのエントリの関連ビットに対して論理「OR」動作を実行することを必要とするかもしれない。任意のエントリにおいてダーティビットを更新することは、エントリにおいてアクセスされたビットもまた同時に更新されることを必要とするかもしれない。
図7はスーパーページにアクセスするためにプロセッサ110によって実行され得るページングプロセス700の1つの実施形態を示している。プロセス700は、スーパーページの仮想アドレスが得られたときに開始してよい(ブロック710)。仮想アドレスが利用可能になると、整合しているエントリをチェックするためにTLBがアクセスされてよい(ブロック720)。TLBヒットがある場合(判断ブロック725)、TLBにおいて見出される物理フレーム番号及び仮想アドレスからのオフセットを用いること等によって、仮想アドレスが物理アドレスへとトランスレートされてよい(ブロック770)。物理アドレスが一旦知られると、対応するスーパーページがメモリ内でアクセスされてよい(ブロック780)。ページングプロセスはブロック790で完結する。
TLBミスがある場合(判断ブロック725)、整合しているエントリをチェックするために単一又は複数のページテーブルがアクセスされてよい(ブロック730)。ページテーブルミスがある場合(判断ブロック735)、ページフォールトが宣言されてよい(ブロック760)。ページテーブルヒットがある場合(判断ブロック735)であって且つページテーブルエントリが4Kバイトページに対応する場合(判断ブロック740)、プロセス700はブロック770で継続してよい。ページテーブルヒットがある場合(判断ブロック735)であって且つページテーブルエントリが4Kバイトページに対応しない場合(判断ブロック740)、目標となるスーパーページに共に対応している一連のページテーブルエントリの有効性が検証されてよい(ブロック745)。一連のページテーブルエントリが有効でない場合(判断ブロック750)、ページフォールトが宣言されてよい(ブロック760)。1つの実施形態では、ページフォールトはアクセス要求を終了させてよい。他の実施形態では、ページフォールトの原因に応じてアクセスは継続してよい。例えば上述のような特定の状況下では、アクセス要求は4KBページアクセス要求であるものとみなされてよい。他の状況においては、ページフォールトは無視されてよく、そしてあたかもページテーブルエントリが有効であるようにスーパーページアクセスが継続可能であってよい。一連のページテーブルエントリが有効である場合(判断ブロック750)、TLBにおいて見出される物理フレーム番号及び仮想アドレスからのオフセットを用いること等によって、仮想アドレスが物理アドレスへとトランスレートされてよい(ブロック770)。物理アドレスが一旦知られると、対応するスーパーページがメモリ内でアクセスされてよい(ブロック780)。ページングプロセスはブロック790で完結する。
図8はスーパーページをサポートしているプロセッサにおいてページテーブルから読み出されるスーパーページエントリの有効性をチェックするために用いられ得るプロセス800の1つの実施形態を示している。プロセス800は、スーパーページページテーブルエントリが受信されたときに開始してよい(ブロック810)。一連のスーパーページエントリが無矛盾性をチェックされてよい。一連のエントリにおける何れかのエントリのフォーマットが矛盾している場合(判断ブロック820)、又は一連のエントリにおいて欠落したエントリがある場合(判断ブロック830)、又は一連のエントリにおけるエントリの保護属性が不整合である場合(判断ブロック840)、ページフォールトが宣言されてよい(ブロック825)。
一連のエントリにおける全てのエントリのフォーマットが無矛盾である場合(判断ブロック820)であって、一連のエントリにおいて欠落したエントリがない場合(判断ブロック830)であって、且つ一連のエントリにおけるエントリの保護属性が整合している場合(判断ブロック840)ではあるが、一連のエントリにおける不整合な物理フレーム番号がある場合(判断ブロック850)又は一連のエントリにおける不整合なキャッシュング属性がある場合(判断ブロック860)、ページング挙動は定義されないであろう(ブロック862)。一連のエントリにおいて不整合な物理フレーム番号がない場合(判断ブロック850)又は不整合なキャッシング属性がない場合(判断ブロック860)、ページングプロセスは完結してよい(ブロック870)。
図9はスーパーページを用いるようにプロセッサを構成するために用いられ得るプロセスの1つの実施形態を示している。プロセス900は、拡張されたページサイズがサポートされているかどうかを決定するためのプロセッサハードウエア能力のチェックと共に開始してよい(判断ブロック910)。例えば1つの実施形態では、制御状態レジスタ内のビットが、拡張されたページサイズがサポートされているか否かを表示してよい。拡張されたページサイズがサポートされていない場合には、エラーが返されてよい(ブロック920)。拡張されたページサイズがサポートされている場合には、何のサイズのスーパーページがサポートされるのかを決定するために別のチェックが実行されてよい(ブロック930)。例えば1つの実施形態においては、特定モデル用レジスタ内のビットフィールドが、拡張されたページサイズがサポートされているものを表示してよい。次いで、1つ以上の所望のページサイズが選択されてよい(ブロック940)。スーパーページ標識がソフトウエアによってセットされてよい(ブロック950)。例えば、スーパーページのためにページテーブルエントリのフォーマットを定義するために用いられるページ属性テーブルエントリ内のビットが、スーパーページの有効性を表示する値にセットされてよい。一旦スーパーページが有効にされると、スーパーページに対応する一連のエントリの最初のエントリがページテーブルへと書き込まれてよい(ブロック970)。1つの実施形態では、上述のページ属性テーブルエントリによって指定されるフォーマットは、ページテーブルにおける最初の及び次のエントリのために用いられてよい。次いで、スーパーページに対応する一連のエントリの残りのエントリがページテーブルへと書き込まれてよい(ブロック980)。連続的なアラインされた一連の4KBページに対応する一連の無矛盾なエントリが一旦ページテーブルへと書き込まれたならば、対応するスーパーページがアクセスに対して利用可能になり(ブロック990)、プロセス900は完結する。
尚、前述のフローチャートは議論の目的のためだけのものである。代替的な実施形態では、フローチャートに示される要素は、異なる順序で又は幾つかの場合には同時に生じてよい。加えて、フローチャート要素の幾つかは、種々の実施形態において存在しなくてよく又は他の要素と組み合わされてよい。全てのそのような代替案が検討される。
また、上述の実施形態はソフトウエアを備えていてよい。そのような実施形態においては、方法及び/又はメカニズムを実装するプログラム命令は、コンピュータがアクセス可能な媒体上で運ばれ又は媒体上に記憶されてよい。プログラム命令を記憶するように構成される多くの種類の媒体が利用可能であり、そのような媒体は、ハードディスク、フロッピー(登録商標)ディスク、CD−ROM、DVD、フラッシュメモリ、プログラム可能ROM(PROM)、ランダムアクセスメモリ(RAM)、及び種々の他の形態の揮発性又は不揮発性記憶装置を含む。コンピュータデバイスによるアクセスのためにプログラム命令を運ぶように構成される更に他の形態は、電気信号、電磁気信号、光信号、又はデジタル信号が運ばれ得るネットワークリンク、ワイヤレスリンク、及び衛星リンク等の地上波又は非地上波通信リンクを含む。従って、種々の実施形態は、コンピュータがアクセス可能な媒体についての上述した説明に従って実装される命令及び/又はデータを受信し、送信し、又は記憶することを更に含み得る。
上述の実施形態はかなり詳細に説明されてきたが、上述の開示が完全に理解されるならば、多くの変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は全てのそのような変形及び修正を包含するものとして解釈されることが意図されている。

Claims (20)

  1. プロセッサであって、
    前記プロセッサ上で動作しているオペレーティングシステムが、第1のサイズのページ及び前記第1のサイズより大きい第2のサイズのページを用いることと、前記第1のサイズの2つ以上の連続的なページを含む一連のページを備えているスーパーページであってそのサイズは前記第2のサイズより小さいスーパーページを形成することと、を可能にするように構成される仮想メモリページングメカニズムと、
    各スーパーページに含まれる前記2つ以上の連続的なページの各々に対して別個のエントリを含むページテーブルと、を備えたプロセッサ。
  2. 前記仮想メモリページングメカニズムは、前記プロセッサ上で動作している前記オペレーティングシステムが単一の仮想アドレスを用いて各スーパーページへアクセスすることを可能にするように更に構成される請求項1のプロセッサ。
  3. スーパーページの前記サイズは64KBである請求項1のプロセッサ。
  4. トランスレーションルックアサイドバッファ(TLB)を更に備えた請求項2のプロセッサであって、前記仮想メモリページングメカニズムは、前記TLBにおける単一のエントリを、前記TLBにおける前記エントリに関連するスーパーページ有効標識がアサートされていることを検出することに応答して、スーパーページに対応する一連のページを備えているメモリの領域を参照するものとして解釈するように構成されるプロセッサ。
  5. 前記仮想メモリページングメカニズムは、前記ページテーブルにおけるエントリを、前記ページテーブルにおける前記エントリに関連するスーパーページ有効標識がアサートされていることを検出することに応答して、スーパーページの一部を備えているメモリの領域を参照するものとして解釈するように更に構成される請求項4のプロセッサ。
  6. 前記スーパーページ有効標識はソフトウエア設定可能である請求項4のプロセッサ。
  7. 前記仮想メモリページングメカニズムは、前記ページテーブルにおける当該少なくとも2つのエントリの少なくとも1つが欠落しており又は前記ページテーブルにおける前記少なくとも2つのエントリの他における対応する属性に無矛盾でない属性を含んでいることを検出することに応答してページフォールトを発行するように更に構成される請求項2のプロセッサ。
  8. 前記仮想メモリページングメカニズムは、前記プロセッサ上で動作している第1のオペレーティングシステム及び第2のオペレーティングシステムの一方又は両方でのスーパーページの使用を同時に且つ独立に可能にするように更に構成される請求項1のプロセッサ。
  9. 前記第1のオペレーティングシステムは、第1のページテーブルを用いてゲストアドレス空間内の仮想アドレスをゲストアドレス空間内の物理アドレスへとトランスレートするように構成される仮想化された環境におけるゲストオペレーティングシステムであり、前記第2のオペレーティングシステムは、第2のページテーブルを用いてゲストアドレス空間内の物理アドレスをホストアドレス空間内の物理アドレスへとトランスレートするように構成される仮想化された環境におけるホストオペレーティングシステムである請求項8のプロセッサ。
  10. 前記仮想メモリページングメカニズムは、前記オペレーティングシステムが2つ以上の異なるスーパーページサイズのスーパーページを用いることを可能にするように更に構成され、各スーパーページサイズは前記第1のサイズの2つ以上の連続的なアラインされたページのサイズに等しく、各スーパーページサイズは前記第2のサイズよりも小さい請求項1のプロセッサ。
  11. プロセッサにおける仮想メモリページングのための方法であって、
    前記プロセッサ上で動作しているオペレーティングシステムが第1のサイズのページ及び前記第1のサイズより大きい第2のサイズのページを用いることとを可能にすることと、
    前記オペレーティングシステムが前記第1のサイズの2つ以上の連続的なページを含む一連のページを備えているスーパーページであってそのサイズは前記第2のサイズより小さいスーパーページを形成することを可能にすることと、
    各スーパーページに含まれる前記2つ以上の連続的なページの各々に対して別個のエントリをページテーブル内に含ませることと、を備えた方法。
  12. 前記プロセッサ上で動作している前記オペレーティングシステムが単一の仮想アドレスを用いて各スーパーページへアクセスすることを可能にすることを更に備えた請求項11の方法。
  13. スーパーページの前記サイズは64KBである請求項11の方法。
  14. TLBにおける単一のエントリを、前記TLBにおける前記エントリに関連するスーパーページ有効標識がアサートされていることを検出することに応答して、スーパーページに対応する一連のページを備えているメモリの領域を参照するものとして解釈することを更に備えた請求項12の方法。
  15. 前記ページテーブルにおけるエントリを、前記ページテーブルにおける前記エントリに関連するスーパーページ有効標識がアサートされていることを検出することに応答して、スーパーページの一部を備えているメモリの領域を参照するものとして解釈することを更に備えた請求項14の方法。
  16. 前記スーパーページ有効標識はソフトウエア設定可能である請求項14の方法。
  17. 前記ページテーブルにおける当該少なくとも2つのエントリの少なくとも1つが欠落しており又は前記ページテーブルにおける前記少なくとも2つのエントリの他における対応する属性に無矛盾でない属性を含んでいることを検出することに応答してページフォールトを発行することを更に備えた請求項12の方法。
  18. 前記プロセッサ上で動作している第1のオペレーティングシステム及び第2のオペレーティングシステムの一方又は両方でのスーパーページの使用を同時に且つ独立に可能にすることを更に備えた請求項11の方法。
  19. 前記第1のオペレーティングシステムは、第1のページテーブルを用いてゲストアドレス空間内の仮想アドレスをゲストアドレス空間内の物理アドレスへとトランスレートするように構成される仮想化された環境におけるゲストオペレーティングシステムであり、前記第2のオペレーティングシステムは、第2のページテーブルを用いてゲストアドレス空間内の物理アドレスをホストアドレス空間内の物理アドレスへとトランスレートするように構成される仮想化された環境におけるホストオペレーティングシステムである請求項18の方法。
  20. 前記オペレーティングシステムが2つ以上の異なるスーパーページサイズのスーパーページを用いることを可能にすることを更に備えた請求項11の方法であって、各スーパーページサイズは前記第1のサイズの2つ以上の連続的なアラインされたページのサイズに等しく、各スーパーページサイズは前記第2のサイズよりも小さい方法。
JP2012518596A 2009-07-01 2010-06-30 凝集された小さいページを用いて拡張されたページサイズ Pending JP2012532381A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/496,335 2009-07-01
US12/496,335 US8195917B2 (en) 2009-07-01 2009-07-01 Extended page size using aggregated small pages
PCT/US2010/040625 WO2011002900A1 (en) 2009-07-01 2010-06-30 Extended page size using aggregated small pages

Publications (1)

Publication Number Publication Date
JP2012532381A true JP2012532381A (ja) 2012-12-13

Family

ID=43411433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012518596A Pending JP2012532381A (ja) 2009-07-01 2010-06-30 凝集された小さいページを用いて拡張されたページサイズ

Country Status (7)

Country Link
US (1) US8195917B2 (ja)
JP (1) JP2012532381A (ja)
KR (1) KR101563659B1 (ja)
CN (1) CN102473091B (ja)
GB (1) GB2485082B (ja)
IN (1) IN2012DN00196A (ja)
WO (1) WO2011002900A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014048895A (ja) * 2012-08-31 2014-03-17 Nec Corp 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527736B1 (en) * 2010-09-07 2013-09-03 Adtran, Inc. Systems and methods for improving address translation speed
US8943296B2 (en) 2011-04-28 2015-01-27 Vmware, Inc. Virtual address mapping using rule based aliasing to achieve fine grained page translation
US9767039B2 (en) * 2011-07-18 2017-09-19 Vmware, Inc. Increasing granularity of dirty bit information in hardware assisted memory management systems
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US8954707B2 (en) * 2012-08-03 2015-02-10 International Business Machines Corporation Automatic use of large pages
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
US9459877B2 (en) 2012-12-21 2016-10-04 Advanced Micro Devices, Inc. Nested speculative regions for a synchronization facility
US9164915B2 (en) 2013-01-15 2015-10-20 International Business Machines Corporation Reserving fixed page areas in real storage increments
US8966220B2 (en) 2013-01-15 2015-02-24 International Business Machines Corporation Optimizing large page processing
KR102069857B1 (ko) * 2013-02-28 2020-01-23 삼성전자주식회사 자체-학습을 통해 원래 이미지를 회전하는 방법과 상기 방법을 수행할 수 있는 장치들
US9507726B2 (en) * 2014-04-25 2016-11-29 Apple Inc. GPU shared virtual memory working set management
US9563571B2 (en) 2014-04-25 2017-02-07 Apple Inc. Intelligent GPU memory pre-fetching and GPU translation lookaside buffer management
US10146699B2 (en) 2015-04-30 2018-12-04 Hewlett Packard Enterprise Development Lp Mapping apertures of different sizes
US10061539B2 (en) * 2015-06-30 2018-08-28 International Business Machines Corporation Inaccessibility status indicator
US10310854B2 (en) 2015-06-30 2019-06-04 International Business Machines Corporation Non-faulting compute instructions
US10162525B2 (en) 2015-09-11 2018-12-25 Red Hat Israel, Ltd. Translating access requests for a multi-level page data structure
CN106940623B (zh) * 2016-01-04 2020-06-09 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器储存装置
US10108550B2 (en) 2016-09-22 2018-10-23 Google Llc Memory management supporting huge pages
US10282296B2 (en) 2016-12-12 2019-05-07 Intel Corporation Zeroing a cache line
US10241925B2 (en) 2017-02-15 2019-03-26 Ati Technologies Ulc Selecting a default page size in a variable page size TLB
US10282309B2 (en) 2017-02-24 2019-05-07 Advanced Micro Devices, Inc. Per-page control of physical address space distribution among memory modules
US10339068B2 (en) 2017-04-24 2019-07-02 Advanced Micro Devices, Inc. Fully virtualized TLBs
US10228991B2 (en) 2017-06-28 2019-03-12 Qualcomm Incorporated Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems
KR101942663B1 (ko) * 2017-09-28 2019-01-25 한국과학기술원 가상 메모리 주소 변환 효율화를 위한 연속성 활용 주소 변환 방법 및 시스템
CN108415782A (zh) * 2018-02-23 2018-08-17 携程旅游网络技术(上海)有限公司 应用程序的控件通信方法、装置、电子设备、存储介质
US11204879B2 (en) * 2019-06-06 2021-12-21 Arm Limited Memory management circuitry managing data transactions and address translations between an upstream device and a downstream device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020881A (ja) * 2007-07-12 2009-01-29 Qnx Software Systems Gmbh & Co Kg 可変のページサイズのメモリ編成を実装する処理システム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112285A (en) * 1997-09-23 2000-08-29 Silicon Graphics, Inc. Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US6134602A (en) 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system
US20040117594A1 (en) * 2002-12-13 2004-06-17 Vanderspek Julius Memory management method
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7444493B2 (en) * 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7395406B2 (en) * 2005-05-12 2008-07-01 International Business Machines Corporation System and method of large page handling in a virtual memory system
US7437529B2 (en) * 2005-06-16 2008-10-14 International Business Machines Corporation Method and mechanism for efficiently creating large virtual memory pages in a multiple page size environment
US7376808B2 (en) * 2006-01-31 2008-05-20 International Business Machines Corporation Method and system for predicting the performance benefits of mapping subsets of application data to multiple page sizes
US7747838B2 (en) * 2007-05-19 2010-06-29 International Business Machines Corporation Method and apparatus for dynamically adjusting page size in a virtual memory range
US8078827B2 (en) * 2007-07-05 2011-12-13 International Business Machines Corporation Method and apparatus for caching of page translations for virtual machines
US7793070B2 (en) * 2007-07-12 2010-09-07 Qnx Software Systems Gmbh & Co. Kg Processing system implementing multiple page size memory organization with multiple translation lookaside buffers having differing characteristics
US9244855B2 (en) * 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020881A (ja) * 2007-07-12 2009-01-29 Qnx Software Systems Gmbh & Co Kg 可変のページサイズのメモリ編成を実装する処理システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNJ199800022001; 伊藤修一、光澤敦: 'NTT情報通信研究所' 第57回(平成10年後期)全国大会講演論文集(1) , 19981005, p.1-97,1-98, 情報処理学会 *
JPN6014009833; 伊藤修一、光澤敦: 'NTT情報通信研究所' 第57回(平成10年後期)全国大会講演論文集(1) , 19981005, p.1-97,1-98, 情報処理学会 *
JPN7014000755; Maddhusudhan Talluri, Mark D.Hill, Yousef A.Khalidi: 'A New Page Table for 64-bit Address Spaces' SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles , 1995, p.184-200, ACM *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014048895A (ja) * 2012-08-31 2014-03-17 Nec Corp 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム

Also Published As

Publication number Publication date
CN102473091B (zh) 2014-09-17
KR20120106696A (ko) 2012-09-26
GB2485082A (en) 2012-05-02
US8195917B2 (en) 2012-06-05
GB201200020D0 (en) 2012-02-15
KR101563659B1 (ko) 2015-10-27
IN2012DN00196A (ja) 2015-04-24
GB2485082B (en) 2015-08-26
US20110004739A1 (en) 2011-01-06
WO2011002900A1 (en) 2011-01-06
CN102473091A (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
KR101563659B1 (ko) 집성된 소페이지들을 사용한 페이지 사이즈 확장
EP1653343B1 (en) Invalidating storage, clearing buffer entries
JP4256167B2 (ja) コンピュータメモリ保護方式の拡張機構
US8799621B2 (en) Translation table control
JP4772795B2 (ja) 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上
US8451281B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
US7334107B2 (en) Caching support for direct memory access address translation
KR101174583B1 (ko) 변환 예외 한정자를 갖는 동적 어드레스 변환
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US6772315B1 (en) Translation lookaside buffer extended to provide physical and main-memory addresses
KR20080041707A (ko) Tlb 록 표시자
JP2003067357A (ja) 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
US20140101364A1 (en) Selectable address translation mechanisms within a partition
US20200167291A1 (en) Dynamic remapping of virtual address ranges using remap vector
CN103262052A (zh) 具有共享的输入/输出的安全分区
KR20220001016A (ko) 게스트 운영체제에 입출력 메모리 관리 유닛 레지스터 복사본을 제공하는 방법
CN107766259B (zh) 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
CN115794681B (zh) 适用于risc-v的多级可扩展tlb系统及其地址转换方法
WO2024113805A1 (zh) 一种tlb目录的插入方法、装置及系统
US20160259310A1 (en) Initialising control data for a device
KR20230162100A (ko) 계층형 메모리 관리를 오프로드하기 위한 방법들 및 장치들

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140312

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140611

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140711

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141028