JP7228528B2 - サイレントアクティブページ移行障害 - Google Patents

サイレントアクティブページ移行障害 Download PDF

Info

Publication number
JP7228528B2
JP7228528B2 JP2019557821A JP2019557821A JP7228528B2 JP 7228528 B2 JP7228528 B2 JP 7228528B2 JP 2019557821 A JP2019557821 A JP 2019557821A JP 2019557821 A JP2019557821 A JP 2019557821A JP 7228528 B2 JP7228528 B2 JP 7228528B2
Authority
JP
Japan
Prior art keywords
pte
page
request
memory
detecting
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
JP2019557821A
Other languages
English (en)
Other versions
JP2020518063A (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.)
ATI Technologies ULC
Advanced Micro Devices Inc
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC, Advanced Micro Devices Inc filed Critical ATI Technologies ULC
Publication of JP2020518063A publication Critical patent/JP2020518063A/ja
Application granted granted Critical
Publication of JP7228528B2 publication Critical patent/JP7228528B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

(関連技術の説明)
多くのコンピューティングデバイスは、ソフトウェアプログラムによるデータアクセスを処理するために仮想メモリ技術を使用している。仮想メモリのページ変換メカニズムによって、システムソフトウェアがプロセス又はアプリケーション毎に別々のアドレス空間を生成することができる。これらのアドレス空間は、仮想アドレス空間として知られている。このシステムソフトウェアは、ページングメカニズムを使用して、ページテーブルと総称される階層型アドレス変換テーブルのセットを用いて、物理メモリの個々のページを仮想アドレス空間に選択的にマッピングする。仮想メモリは、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、アクセラレーテッドプロセッシングユニット(APU)を含むがこれらに限定されない任意のプロセッサによって実装可能である。
プログラムによってデータがアクセスされると、メモリの「ページ」と呼ばれる、データを含む所定のサイズ(例えば、4キロバイト(KB))のメモリブロックが、バッキングストレージ(例えば、ディスクドライブ又は半導体メモリ)からコンピューティングデバイス内のメインメモリの利用可能な物理的位置にコピーされる。いくつかのシステムは、メモリに記憶される複数の異なるページサイズを含む。ページの物理的位置をプログラムに管理させるのではなく、コンピューティングデバイス内のメモリ管理ユニットがページの物理的位置を管理する。メモリにアクセスするためにページの物理的位置に基づくアドレス(又は、「物理アドレス」)を使用する代わりに、プログラムは、仮想アドレス空間の仮想アドレスを使用して、メモリにアクセスする。プログラムの観点から、仮想アドレスは、メモリ内のページにデータが記憶される実際の物理アドレス(すなわち、物理的位置)を示し、これにより、仮想アドレスを使用するプログラムによってメモリアクセスが行われる。しかしながら、仮想アドレスは、データが記憶されている物理的位置の物理アドレスに直接マッピングされているわけではない。したがって、メモリ管理ユニットは、ページの物理的位置を管理する一部として、プログラムによって使用される仮想アドレスを、データが実際に位置する物理アドレスに変換する。変換された物理アドレスは、プログラムのメモリアクセスを実行するために使用される。上述した変換を実行するために、メモリ管理ユニットは、メモリに記憶されたページの仮想アドレスから物理アドレスへの変換のセットを含むメモリ内のページテーブルを使用する。
システムは、メモリ位置間でページを移行することがあり、仮想アドレスから物理アドレスへの変換が変更されることがある。場合によっては、システムは、ページを第1メモリから第2メモリに移動させることを決定する。或いは、システムは、ガベージコレクション動作の一部として、単一のメモリ内のページを移動させることができる。しかしながら、プロセスの実行中(例えば、グラフィックスプログラムがレンダリングタスクを実行している)に、ページの移行に混乱が生じる可能性がある。
本明細書に記載される方法及びメカニズムの利点は、添付の図面と併せて以下の説明を参照することによって、より良く理解することができる。
コンピューティングシステムの一実施形態のブロック図である。 ページテーブルエントリ(PTE)フォーマットの例を示す図である。 ページ移行が進行中のシステムの一実施形態のブロック図である。 ページ移行が完了した後のシステムの一実施形態のブロック図である。 メモリ位置間で第1ページを移行する方法の一実施形態を示す一般化されたフロー図である。 移行保留指標(migration pending indication)を用いてPTEにヒットする変換要求を処理する方法の一実施形態を示す一般化されたフロー図である。 変換要求を処理する方法の一実施形態を示す一般化されたフロー図である。
以下の説明では、本明細書に提示される方法及びメカニズムの十分な理解を提供するために、多くの具体的な詳細が示されている。しかしながら、当業者は、様々な実施形態がこれらの具体的な詳細無しに実施され得ることを認識すべきである。いくつかの例では、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術は、本明細書に記載されるアプローチを不明瞭にすることを避けるために、詳細に示されていない。説明を簡単且つ明確にするために、図に示される要素が必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、いくつかの要素の寸法は、他の要素と比較して誇張されている場合がある。
本明細書において、メモリ位置間でページを移行するシステム、装置及び方法が開示される。一実施形態では、システムは、少なくとも1つのプロセッサと、メモリ管理ユニット(MMU)と、メモリサブシステムと、を備える。一実施形態では、第1ページがメモリサブシステムの第1メモリ位置から第2メモリ位置に移行されるという指標が検出される。第1ページを移行する前に、第1ページに対応する第1ページテーブルエントリ(PTE)を見つける。次に、移行保留指標を第1PTEに記憶する。一実施形態では、移行保留指標は、第1ページに対する読み出し及び書き込み許可を無効にすることによって、第1PTEにおいて符号化される。移行保留指標を第1PTEに記憶した後に、第1ページの移行を開始することが可能である。
一実施形態では、第1PTEを対象とする変換要求がMMUによって受信され、移行保留指標が第1PTEにおいて符号化される。変換要求が読み出し要求に対応する場合、第1ページに対する読み出し動作の実行を可能にする。そうでなければ、変換要求が第1ページを対象とする書き込み要求に対応する場合、第1ページへの書き込み動作の実行が抑制され、サイレント再試行要求が生成され、要求元のクライアントに伝達される。一実施形態では、サイレント再試行は、割り込みの生成又は状態レジスタの更新を含まないので、「サイレント」と呼ばれる。したがって、要求元のクライアントは、後の時点で書き込み要求を再試行するように構成されている。
ここで図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、中央処理装置(CPU)チップセット140を介してシステムメモリ150に接続されたシステムオンチップ(SoC)105を備える。また、SoC105は、集積回路(IC)と呼ぶこともできる。一実施形態では、SoC105は、少なくとも入出力(I/O)インタフェース155と、ファブリック120と、グラフィックス処理ユニット(GPU)130と、ローカルメモリ110と、を備える。また、SoC105は、図面を不明瞭にすることを避けるために、図1に示されていない他のコンポーネントを備えることができる。別の実施形態では、GPU130は、別のタイプの処理ユニット(例えば、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP))であってもよい。
GPU130は、少なくともトランスレーションルックアサイドバッファ(TLB)コンプレックス(複合体)135と、グラフィックス又は汎用処理に使用される任意の数及びタイプの計算ユニットを表す計算ユニット145A~145Nと、を備える。GPU130は、ファブリック120を介してローカルメモリ110に接続されている。一実施形態では、ローカルメモリ110は、高帯域幅メモリ(HBM)を使用して実装される。一実施形態では、GPU130は、描画コマンド、ピクセル動作、幾何学的計算、及び、画像をディスプレイにレンダリングするための他の動作等のグラフィックスパイプライン動作を実行するように構成されている。別の実施形態では、GPU130は、グラフィックスに関連しない動作を実行するように構成されている。さらなる実施形態では、GPU130は、グラフィックス動作及び非グラフィックス関連動作の両方を実行するように構成されている。
一実施形態では、GPU130は、TLBを使用して、これらのデバイス上で実行される異なるプロセスに割り当てられる仮想アドレスの物理アドレスへのマッピングをキャッシュする。これらのTLBは、それぞれ計算ユニット145A~145NではL1 TLB170A~170Nとして示されており、TLBコンプレックス135ではL2 TLB160として示されている。また、TLBコンプレックス135は、テーブルウォーカー165を備える。一般的に、メモリ管理ユニットは、1つ以上のTLBと、テーブルウォーキングロジックと、障害ハンドラと、実装に応じた回路と、を備えることができる。いくつかの実施形態では、命令又はデータについてGPU130内に異なるTLBを実装することができる。例えば、比較的小さく高速なL1 TLBは、ルックアップを実行するためにより多くのサイクルを必要とする、より大きなL2 TLBによってバックアップされる。L2 TLBによって実行されるルックアップは、ページテーブル125A~125Bへのテーブルウォークに比べて比較的高速である。実施形態に応じて、ページテーブル125A~125Bを、ローカルメモリ110、システムメモリ150に配置することができ、又は、ページテーブル125A~125Bの一部を、ローカルメモリ110及びシステムメモリ150に配置することができる。TLBコンプレックスのいくつかの実施形態は、命令TLB(ITLB)と、レベル1データTLB(L1 DTLB)と、レベル2データTLB(L2 DTLB)と、を含む。TLBコンプレックスの他の実施形態は、TLBの他の構成及び/又はレベルを含むことができる。
GPU130内のロード命令又はストア命令のアドレス変換は、仮想アドレス変換の要求をL1 TLBにポストすることによって実行することができる。L1 TLBは、仮想アドレスがL1 TLBのエントリで見つかった場合に、物理アドレスを返す。仮想アドレス変換の要求がL1 TLBでミスした場合、当該要求がL2 TLBにポストされる。仮想アドレス変換の要求がL2 TLBでミスした場合、当該要求に対してページテーブルウォークが実行される。ページテーブルウォークは、1つ以上のルックアップをページテーブル階層にもたらし得る。
本明細書において、システムメモリ150からローカルメモリ110へ又はその逆にページを移動させるプロセスは、「ページ移行」と呼ばれる。また、本明細書において、システムメモリ150内でページを移動させること、又は、ローカルメモリ110内でページを移動させることも「ページ移行」と呼ばれる。本明細書において、ローカルメモリ110及びシステムメモリ150の組み合わせを「メモリサブシステム」と呼ぶことができる。或いは、本明細書において、ローカルメモリ110又はシステムメモリ150を「メモリサブシステム」と呼ぶことができる。システム100は、所定のページがメモリサブシステム内の位置間で移動する場合に、当該所定のページがページ移行状態にあるという指標を生成するように構成されている。これにより、他の操作をシームレスに継続することができる。一実施形態では、システム100は、所定のページがページ移行状態にある場合に、当該所定のページのページテーブルエントリを変更し、読み出し及び書き込み特権の両方をオフにするように構成されている。この特定の組み合わせ(読み出し及び書き込み特権の無効)の意味は、所定のページがページ移行状態であることを示すように変更されている。他の実施形態では、所定のページがページ移行状態にあることを符号化する他の方法が可能であり、企図される。
本明細書に使用される場合、「ページ」という用語は、仮想メモリの固定長の連続ブロックとして定義される。また、「ページ」は、システム100によるメモリ管理に利用されるデータの単位として定義される。ページサイズは実施形態毎に異なり、単一の実施形態では複数の異なるページサイズを利用することができる。「メモリページ」及び「ページ」という用語は、任意のサイズのメモリ領域を表すのを意図していることを理解されたい。
一実施形態では、メモリ位置間の第1ページの移行が開始されていることを検出したことに応じて、第1ページに対応する第1ページテーブルエントリ(PTE)が見つけられ、移行保留指標が第1PTEに記憶される。一実施形態では、移行保留指標は、読み出し及び書き込み許可を無効にすることによって、第1PTEにおいて符号化される。移行保留指標が第1PTEにおいて符号化され、変換要求が読み出し要求に対応している間に、第1PTEを対象とする変換要求がMMUによって受信される場合には、第1ページに対する読み出し動作が許可される。そうでなければ、変換要求が書き込み要求に対応する場合に、第1ページヘの書き込み動作が抑制され、サイレント再試行要求が生成され、要求元のクライアントに伝達される。次に、要求元のクライアントは、後の時点で書き込み要求を再試行することができる。別の実施形態では、変換要求が読み出し要求に対応する場合に、読み出し要求がブロックされ、読み出し動作に関する再試行要求が生成される。
I/Oインタフェース155は、ファブリック120及びCPUチップセット140に接続されており、任意の数及びタイプのインタフェース(例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCI‐Extended(PCI‐X)、PCIE(PCI Express)バス、ギガビットEthernet(登録商標)(GBE)バス、ユニバーサルシリアルバス(USB))を表している。SoC105は、CPUチップセット140を介してメモリ150に接続されており、メモリ150は、1つ以上のメモリモジュールを含む。各メモリモジュールは、それに搭載された1つ以上のメモリデバイスを含む。いくつかの実施形態では、メモリ150は、SoC105も搭載されたマザーボード、又は、他のキャリアに搭載された1つ以上のメモリデバイスを含む。一実施形態では、メモリ150は、動作中にSoC105と共に用いられるランダムアクセスメモリ(RAM)を実装するために使用される。実装されるRAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、抵抗変化型RAM(ReRAM)、相変化RAM(PCRAM)、又は、他の任意の揮発性若しくは不揮発性RAMであってもよい。メモリ150を実装するのに使用されるDRAMのタイプには、ダブルデータレート(DDR)DRAM、DDR2 DRAM、DDR3 DRAM等が含まれるが、これらに限定されない。
様々な実施形態では、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、サーバ、又は、他の様々なタイプのコンピューティングシステム若しくはデバイスであってもよい。コンピューティングシステム100及び/又はSoC105のコンポーネントの数は、実施形態毎に異なっていてもよいことに留意されたい。各コンポーネント/サブコンポーネントの数は、図1に示す数より多くてもよいし、少なくてもよい。例えば、別の実施形態では、SoC105は、複数のメモリに接続された複数のメモリコントローラを含むことができる。また、コンピューティングシステム100及び/又はSoC105は、図1に示されていない他のコンポーネントを含むことができることに留意されたい。例えば、別の実施形態では、SoC105は、1つ以上のプロセッサコアを有する中央処理装置(CPU)を含むことができる。また、他の実施形態では、コンピューティングシステム100及びSoC105は、図1に示されている以外の方法で構成することができる。
ここで図2を参照すると、ページテーブルエントリ(PTE)のフォーマットの例が示されている。図2の上部のPTEフォーマット205は、一実施形態によるPTEフォーマットを示している。一実施形態では、物理ページアドレスは、ビット39~12に記憶される。一実施形態では、PTEフォーマット205内で物理ページアドレスによって示されるページのサイズは、4KBである。したがって、アドレス指定可能なメモリの4KB論理ページ毎に1つのPTEが存在する。他の実施形態では、PTEフォーマット205内で物理ページアドレスによって示されるページのサイズは、様々な他のサイズであってもよい。
書き込み許可フィールド210及び読み出し許可フィールド215は、PTEフォーマット205で示されている。一実施形態では、これらのフィールドの両方が「0」に設定されている場合には、エントリによって示されたページがページ移行状態にあることを示している。例えば、ページ移行状態のPTEフォーマット220が図2の中央部に示されており、メモリ位置間で移行されるページを示すエントリの書き込み及び読み出し許可フィールドの値が示されている。また、エントリ220は、アドレス225と、PTEフォーマット205に示される他のフィールドと、を含む。他の実施形態では、PTE内でページ移行状態指標を符号化する他の方法が可能であり、企図されることに留意されたい。
別の実施形態によるPTEフォーマットの例を、PTEフォーマット235として図2の下部に示している。PTEフォーマット235では、Tフィールド240を使用して、対応するページが読み出し許可を有しているかどうかを示している。Tフィールド240を用いて読み出し許可をPTEフォーマット235内で符号化すると、書き込み専用ページの移行が可能になる。一実施形態では、Tフィールド240が1に設定されている場合、対応するページが読み出し許可を有している。そうではなく、Tフィールド240が0に設定されている場合、対応するページが読み出し許可を有していない。一実施形態では、所定のページについてR及びWフィールドが0に等しい(すなわち、所定のページがページ移行状態にある)場合には、Tフィールド240が1に設定されている場合に所定のページに対する読み出しが許可される。しかしながら、所定のページについてR及びWフィールドが0に等しい場合には、Tフィールド240が0に設定されている場合に所定のページに対する読み出しがブロックされる。他の実施形態では、図2に示すものとは異なる他の適切なPTEフォーマットを利用することができることに留意されたい。
ここで図3を参照すると、ページ移行が進行中のシステム300の一実施形態のブロック図が示されている。ページテーブルエントリ330は、ページテーブルブロック305に示されており、エントリ330は、少なくとも1つのページアドレス310と、書き込み許可フィールド315と、読み出し許可フィールド320と、を含む。エントリ330に示すように、書き込み許可フィールド315及び読み出し許可フィールド320の両方を0に設定する。一実施形態では、これは、エントリ330によって示されるページ345Aがページ移行状態にあることを示している。他の実施形態では、対応するページがページ移行状態にあることを符号化する他の方法を利用することができる。ページ移行前に、ページ345Aは、ローカルメモリ340に記憶される。この説明のために、ページ345Aがシステムメモリ350へ移行されていると仮定する。これは、システムメモリ350内の移行ページ345Bとして示されている。他の実施形態では、ページ345Aは、他の位置に移行されてもよい。例えば、ページ345Aは、ローカルメモリ340内の別の位置、又は、システムメモリ350以外の別のメモリに移行されてもよい。
一実施形態では、変換要求がエントリ330にヒットした場合には、メモリ要求が読み出し要求である場合に、ページアドレス310への後続のメモリ要求を進行することが許可される。次に、読み出し要求が、ローカルメモリ340のページ345Aに対して実行される。そうではなく、メモリ要求が書き込み要求である場合には、サイレント再試行要求が生成され、要求元のクライアントに送信される。この時点では、書き込み要求が進行することが許可されない。クライアントは、後の時点で書き込み要求を再試行することができ、再試行された書き込み要求に対して別の変換要求が処理されたときにページ移行が完了した場合に、書き込み要求の継続が許可される。
ここで図4を参照すると、ページ移行の完了後のシステム400の一の実施形態のブロック図が示されている。システム400のページテーブルブロック405、ローカルメモリ440及びシステムメモリ450は、アドレス410に現在位置する移行ページ445についてのページ移行動作が完了した後の時点でのシステム300(図3)のページテーブルブロック305、ローカルメモリ340及びシステムメモリ350の各々を表すことを意図している。したがって、エントリ430の書き込み許可フィールド415及び読み出し許可フィールド420の両方が1に設定され、ページ移行が完了し、書き込み及び読み出し許可が移行ページ445に復元されたことを示している。或いは、移行ページ445が書き込み権限又は読み出し権限しか有していない場合、ページ移行の完了後に、これらのフィールドのうち1つのみが設定される。移行ページ445を対象とする変換要求がページテーブルブロック405によって受信された場合、書き込み又は読み出し許可の何れかがエントリ430で有効になったのを検出したことに応じて、通常の方法で変換要求及び後続のメモリ要求を処理する。
ここで図5を参照すると、メモリ位置間で第1ページを移行する方法500の一実施形態が示されている。説明のために、この実施形態のステップ及び図6~図7のステップを順番に示している。しかしながら、説明する方法の様々な実施形態では、説明した要素のうち1つ以上を、同時に実行してもよいし、示した順序と異なる順序で実行してもよいし、完全に省略してもよいことに留意されたい。他の追加要素も必要に応じて実行される。本明細書に記載する様々なシステム又は装置の何れも、方法500を実施するように構成されている。
第1ページを第1メモリ位置から第2メモリ位置に移行するという指標が検出される(ブロック505)。一実施形態では、第1メモリ位置は、第1メモリ(例えば、ローカルメモリ)に存在し、第2メモリ位置は、第2メモリ(例えば、グローバルメモリ)に存在する。別の実施形態では、第1メモリ位置及び第2メモリ位置の両方は、単一のメモリ内に位置している。
次に、第1ページに対応する第1ページテーブルエントリ(PTE)と、第1PTEのキャッシュされたコピーと、が見つけられる(ブロック510)。第1ページがページ移行状態にあるという指標が、第1PTE及び第1PTEのキャッシュされたコピーに記憶される(ブロック515)。一実施形態では、第1ページの読み出し及び書き込み許可を無効にすることによって、指標が第1PTEで符号化される。他の実施形態では、第1PTE内の移行保留指標を符号化する他の方法を利用することができる。また、第1ページの無効化要求がTLBに送信され、メモリへの保留中の書き込みがフラッシュされる(ブロック520)。メモリへの保留中の書き込みが解決されると、第1ページのページ移行コピープロセスを開始することができる(ブロック522)。
第1ページの移行が完了した場合(条件付きブロック525:Yes)、移行保留指標を、第1PTE及び第1PTEのキャッシュされたコピーからクリアする(ブロック530)。また、第1PTEは、第1ページを移行した第2メモリ位置を示すように変更される(ブロック535)。さらに、第1PTEのキャッシュされたコピーについて無効化要求が生成される(ブロック540)。次に、システムは、第1メモリ位置を再利用する前に、無効化完了確認(invalidation completion acknowledgment)を待機する(ブロック542)。ブロック542の後に、方法500は終了する。第1ページの移行が未だ完了していない場合(条件付きブロック525:No)、システムは、ページ移行が完了するまで待機し(ブロック545)、条件付きブロック525に戻る。
ここで図6を参照すると、移行保留指標を用いてPTEにヒットする変換要求を処理する方法600の一実施形態が示されている。プロセッサは、所定の仮想アドレスの変換要求を生成する(ブロック605)。一実施形態では、プロセッサは、少なくとも1つのプロセッサと、MMUと、メモリサブシステムとを含むシステム(例えば、図1のシステム100)の一部である。また、システムは、実施形態に応じて、任意の数の他のコンポーネントを含むことができる。MMUは、所定の仮想アドレスのPTEが移行保留指標を含むことを検出する(ブロック610)。所定の仮想アドレスを対象とするメモリ要求が読み出し要求である場合(条件付きブロック615:「読み出し」)、対象となる物理ページへの読み出しが許可されるかどうかが判別される(条件付きブロック620)。一実施形態では、対象となる物理ページへの読み出しが許可されるかどうかは、プログラム可能な制御下にあることとしてもよい。対象となる物理ページへの読み出しが許可される場合(条件付きブロック620:Yes)、対象となる物理ページへの読み出し動作の実行が許可される(ブロック635)。ブロック635の後に、方法600は終了する。対象となる物理ページへの読み出しが許可されていない場合(条件付きブロック620:No)、対象となる物理ページへの読み出し動作の実行が抑制され、サイレント再試行障害が生成され、要求元のクライアントに伝達される(ブロック640)。後の時点で、クライアントは、所定の仮想アドレスへの読み出し要求を再試行する(ブロック645)。ブロック645の後に、方法600は終了する。
仮想アドレスを対象とするメモリ要求が書き込み要求である場合(条件付きブロック615:「書き込み」)、対象となる物理ページへの書き込み動作の実行が抑制され、サイレント再試行障害が生成され、要求元のクライアントに伝達される(ブロック625)。一実施形態では、サイレント再試行障害は、割り込みの生成又はステータスレジスタの更新を含まないので、「サイレント」と呼ばれる。サイレント再試行障害は、クライアントが書き込み要求を後で再試行する必要があることを示す。後の時点で、クライアントは、仮想アドレスへの書き込み要求を再試行する(ブロック630)。移行が完了すると、新たな位置の物理ページへの書き込み要求を実行する。ブロック630の後に、方法600は終了する。
ここで図7を参照すると、変換要求を処理する方法700の一実施形態が示されている。読み出し及び書き込み許可が無効になっているページテーブルエントリ(PTE)へのヒットが検出される(ブロック705)。一実施形態では、読み出し及び書き込み許可がPTEについて無効にされている場合には、対応する物理ページがメモリ位置間で現在移行中であることを示している。後続のメモリ要求が読み出し要求である場合(条件付きブロック710:「読み出し」)、当該ページに対する読み出し許可が無効にされている場合であっても、対象となる物理ページへの読み出し要求の実行が許可される(ブロック715)。また、システムソフトウェアは、メモリ要求に対する障害の発生を抑制する(ブロック720)。ブロック720の後に、方法700は終了する。後続のメモリ要求が書き込み要求である場合(条件付きブロック710:「書き込み」)、再試行要求がクライアントに送信され、書き込み要求がブロックされる(ブロック725)。後の時点で、クライアントは、書き込み要求を再試行することができる(ブロック730)。ブロック730の後に、方法700は終了する。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、上述した方法及び/又はメカニズムが実施される。プログラム命令は、例えばC言語等の高水準プログラミング言語でハードウェアの挙動を記述する。或いは、Verilog等のハードウェア設計言語(HDL)が使用される。プログラム命令は、非一時的なコンピュータ可読記憶媒体に記憶される。複数のタイプの記憶媒体が利用可能である。記憶媒体は、使用中にコンピューティングシステムによってアクセス可能であり、プログラム命令及び付随するデータを、プログラム実行のためにコンピューティングシステムに提供する。コンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
上述した実施形態は、実施の非限定的な例に過ぎないことを強調する。上記の開示が十分に理解されれば、多くの変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲が、かかる変形及び修正を全て包含するように解釈されることを意図している。

Claims (20)

  1. メモリサブシステムと、
    回路を備えるプロセッサであって、前記メモリサブシステムに接続されたプロセッサと、を備え、
    第1ページが前記メモリサブシステム内の第1メモリ位置から第2メモリ位置に移行されることになるのを検出することと、
    前記第1ページに対応する第1ページテーブルエントリ(PTE)を見つけることと、
    移行保留指標を前記第1PTEに記憶することと、
    前記第1PTEを対象とする書き込み要求に対応する変換要求を検出したこと(605)と、前記第1PTE内の前記移行保留指標を検出したこと(610)と、に応じて、
    前記第1ページに対して書き込み動作が実行されるのを抑制すること(625)と、
    サイレント再試行要求を生成すること(625)であって、前記サイレント再試行要求は、割り込みの生成又はステータスレジスタの更新を含まない、ことと、
    を行うように構成されている、
    システム。
  2. 前記システムは、
    前記第1PTEを対象とする変換要求を検出したことと、前記第1PTE内の前記移行保留指標を検出したことと、に応じて、
    前記変換要求が前記第1ページを対象とする読み出し要求に対応する場合に、前記第1ページに対する読み出し動作が実行されるのを許可することを行うように構成されている、
    請求項1のシステム。
  3. 前記第1PTEを対象とする書き込み要求に対応する変換要求を検出したことと、前記第1PTE内の前記移行保留指標を検出したことと、に応じて、ページフォルトが発生しない、
    請求項2のシステム。
  4. 前記書き込み要求を発行した要求元のクライアントは、前記サイレント再試行要求が前記要求元のクライアントに伝達された後の時点で前記書き込み要求を再試行するように構成されている、
    請求項3のシステム。
  5. 前記移行保留指標は、前記第1PTEのビットを、前記第1PTEの読み出し及び書き込み許可が無効であることを示す値に設定することによって、前記第1PTEにおいて符号化される、
    請求項1のシステム。
  6. 前記システムは、
    前記第1メモリ位置から前記第2メモリ位置への前記第1ページの移行が完了していることに応じて、
    前記移行保留指標をクリアすることと、
    前記第1PTEに対応するキャッシュされたアドレス変換を無効にすることと、
    を行うように構成されている、
    請求項1のシステム。
  7. 前記メモリサブシステムは、第1メモリと第2メモリとを備え、
    前記第1メモリ位置は、前記第1メモリ内に存在し、
    前記第2メモリ位置は、前記第2メモリ内に存在する、
    請求項1のシステム。
  8. ページテーブルエントリを管理するための方法であって、
    回路を備えるコンピューティングシステム(100)が、第1ページが第1メモリ位置から第2メモリ位置に移行されることになるのを検出することと、
    前記第1ページに対応する第1ページテーブルエントリ(PTE)を見つけることと、
    移行保留指標を前記第1PTEに記憶することと、
    前記第1PTEを対象とする書き込み要求に対応する変換要求を検出したこと(605)と、前記第1PTE内の前記移行保留指標を検出したこと(610)と、に応じて、
    前記第1ページに対して書き込み動作が実行されるのを抑制すること(625)と、
    割り込みを生成することなくサイレント再試行要求を生成することであって、前記サイレント再試行要求は、割り込みの生成又はステータスレジスタの更新を含まない、ことと、を含む、
    方法。
  9. 前記方法は、
    前記第1PTEを対象とする変換要求を検出したことと、前記第1PTE内の前記移行保留指標を検出したことと、に応じて、
    前記変換要求が前記第1ページを対象とする読み出し要求に対応する場合に、前記第1ページに対する読み出し動作が実行されるのを許可することを含む、
    請求項8の方法。
  10. 前記第1PTEを対象とする書き込み要求に対応する変換要求を検出したことと、前記第1PTE内の前記移行保留指標を検出したことと、に応じて、ページフォルトが発生しない、
    請求項9の方法。
  11. 前記書き込み要求を発行した要求元のクライアントが、前記サイレント再試行要求が前記要求元のクライアントに伝達された後の時点で前記書き込み要求を再試行することを含む、
    請求項10の方法。
  12. 前記移行保留指標は、前記第1PTEのビットを、前記第1PTEの読み出し及び書き込み許可が無効であることを示す値に設定することによって、前記第1PTEにおいて符号化される、
    請求項8の方法。
  13. 前記第1メモリ位置から前記第2メモリ位置への前記第1ページの移行が完了していることに応じて、
    前記移行保留指標をクリアすることと、
    前記第1PTEに対応するキャッシュされたアドレス変換を無効にすることと、を含む、
    請求項8の方法。
  14. 前記第1メモリ位置は、第1メモリ内に存在し、前記2メモリ位置は、第2メモリ内に存在する、
    請求項8の方法。
  15. 回路を備えるメモリ管理ユニット(MMU)であって、
    第1ページがメモリサブシステム内の第1メモリ位置から第2メモリ位置に移行されることになるのを検出することと、
    前記第1ページに対応する第1ページテーブルエントリ(PTE)を見つけることと、
    移行保留指標を前記第1PTEに記憶することと、
    前記第1PTEを対象とする書き込み要求に対応する変換要求を検出したこと(605)と、前記第1PTE内の前記移行保留指標を検出したこと(610)と、に応じて、
    前記第1ページに対して書き込み動作が実行されるのを抑制すること(625)と、
    サイレント再試行要求を生成すること(625)であって、前記サイレント再試行要求は、割り込みの生成又はステータスレジスタの更新を含まない、ことと、
    を行うように構成されている、
    MMU。
  16. 前記MMUは、
    前記第1PTEを対象とする変換要求を検出したことと、前記第1PTE内の前記移行保留指標を検出したことと、に応じて、
    前記変換要求が前記第1ページを対象とする読み出し要求に対応する場合に、前記第1ページに対する読み出し動作が実行されるのを許可することを行うように構成されている、
    請求項15のMMU。
  17. 前記第1PTEを対象とする書き込み要求に対応する変換要求を検出したことと、前記第1PTE内の前記移行保留指標を検出したことと、に応じて、ページフォルトが発生しない、
    請求項16のMMU。
  18. 前記書き込み要求を発行した要求元のクライアントが、前記サイレント再試行要求が前記要求元のクライアントに伝達された後の時点で前記書き込み要求を再試行するように構成される、請求項17のMMU。
  19. 前記移行保留指標は、前記第1PTEのビットを、前記第1PTEの読み出し及び書き込み許可が無効であることを示す値に設定することによって、前記第1PTEにおいて符号化される、
    請求項15のMMU。
  20. 前記第1メモリ位置から前記第2メモリ位置への前記第1ページの移行が完了していることに応じて、
    前記移行保留指標をクリアすることと、
    前記第1PTEに対応するキャッシュされたアドレス変換を無効にすることと、
    を行うように構成されている、
    請求項15のMMU。
JP2019557821A 2017-04-24 2018-04-24 サイレントアクティブページ移行障害 Active JP7228528B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/495,296 2017-04-24
US15/495,296 US10365824B2 (en) 2017-04-24 2017-04-24 Silent active page migration faults
PCT/US2018/029188 WO2018200559A1 (en) 2017-04-24 2018-04-24 Silent active page migration faults

Publications (2)

Publication Number Publication Date
JP2020518063A JP2020518063A (ja) 2020-06-18
JP7228528B2 true JP7228528B2 (ja) 2023-02-24

Family

ID=62117174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019557821A Active JP7228528B2 (ja) 2017-04-24 2018-04-24 サイレントアクティブページ移行障害

Country Status (6)

Country Link
US (1) US10365824B2 (ja)
EP (1) EP3616070B1 (ja)
JP (1) JP7228528B2 (ja)
KR (1) KR102554377B1 (ja)
CN (1) CN110546623B (ja)
WO (1) WO2018200559A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310985B2 (en) 2017-06-26 2019-06-04 Ati Technologies Ulc Systems and methods for accessing and managing a computing system memory
US10318344B2 (en) 2017-07-13 2019-06-11 Advanced Micro Devices, Inc. Predicting page migration granularity for heterogeneous memory systems
US11526278B2 (en) 2017-12-21 2022-12-13 Advanced Micro Devices, Inc. Adaptive page close prediction
US20200294182A1 (en) * 2019-03-15 2020-09-17 Intel Corporation On chip dense memory for temporal buffering
US11755354B2 (en) * 2019-11-20 2023-09-12 Sap Se NUMA-aware resource allocation and placement of database containers
US12086447B2 (en) 2019-12-18 2024-09-10 Advanced Micro Devices, Inc. Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor
US11726693B2 (en) * 2020-12-29 2023-08-15 Ati Technologies Ulc Migrating pages of memory accessible by input-output devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070106874A1 (en) 2005-11-04 2007-05-10 P.A. Semi, Inc. R and C bit update handling
JP2009537922A (ja) 2006-05-25 2009-10-29 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・マイグレーション中のdma動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラム
US20120023280A1 (en) 2010-07-20 2012-01-26 Ibm Corporation Atomic Operations with Page Migration in PCIe
US20140281299A1 (en) 2013-03-14 2014-09-18 Nvidia Corporation Opportunistic migration of memory pages in a unified virtual memory system
US20160378674A1 (en) 2015-06-23 2016-12-29 Ati Technologies Ulc Shared virtual address space for heterogeneous processors

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4205567A1 (de) * 1992-02-22 1993-08-26 Philips Patentverwaltung Verfahren zum steuern des zugriffs auf einen speicher sowie anordnung zur durchfuehrung des verfahrens
US6282614B1 (en) 1999-04-15 2001-08-28 National Semiconductor Corporation Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
WO2007031696A1 (en) 2005-09-13 2007-03-22 Arm Limited Cache miss detection in a data processing apparatus
US7669011B2 (en) 2006-12-21 2010-02-23 Advanced Micro Devices, Inc. Method and apparatus for detecting and tracking private pages in a shared memory multiprocessor
US7870351B2 (en) 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US8185901B2 (en) 2008-04-24 2012-05-22 International Business Machines Corporation Parsing an application to find serial and parallel data segments to minimize migration overhead between serial and parallel compute nodes
US8589629B2 (en) 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
WO2012004837A1 (en) * 2010-07-09 2012-01-12 Hitachi, Ltd. Storage apparatus and storage management method
US20120023302A1 (en) * 2010-07-20 2012-01-26 Ibm Corporation Concurrent Atomic Operations with Page Migration in PCIe
US20120059983A1 (en) 2010-09-03 2012-03-08 David Wilkins Nellans Predictor-based management of dram row-buffers
US8499066B1 (en) 2010-11-19 2013-07-30 Amazon Technologies, Inc. Predicting long-term computing resource usage
US9038088B2 (en) 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
KR101534540B1 (ko) * 2011-07-28 2015-07-07 후아웨이 테크놀러지 컴퍼니 리미티드 메모리 이동을 실행하는 방법 및 장치
WO2013018128A1 (en) 2011-08-01 2013-02-07 Hitachi, Ltd. Storage apparatus and method for allocating an internal logical volume associated with an external logical volume to an internal tiered pool by assessing or inferring, the performance of said external logical volume
US9355041B2 (en) * 2013-03-14 2016-05-31 Nvidia Corporation Frame buffer access tracking via a sliding window in a unified virtual memory system
US9229878B2 (en) 2013-06-10 2016-01-05 Red Hat Israel, Ltd. Memory page offloading in multi-node computer systems
US9092146B2 (en) 2013-06-28 2015-07-28 International Business Machines Corporation Dynamically varying transfer size in a storage device for improved performance
US9465669B2 (en) 2013-08-13 2016-10-11 Vmware, Inc. NUMA scheduling using inter-vCPU memory access estimation
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US10235290B2 (en) 2015-06-26 2019-03-19 Advanced Micro Devices, Inc. Hot page selection in multi-level memory hierarchies
US10146469B2 (en) 2015-09-29 2018-12-04 EMC IP Holding Company, LLC Dynamic storage tiering based on predicted workloads
US9575815B1 (en) * 2015-12-22 2017-02-21 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10705972B2 (en) 2016-09-13 2020-07-07 Advanced Micro Devices, Inc. Dynamic adaptation of memory page management policy
US10067709B2 (en) 2016-09-19 2018-09-04 Advanced Micro Devices, Inc. Page migration acceleration using a two-level bloom filter on high bandwidth memory systems
US10089014B2 (en) 2016-09-22 2018-10-02 Advanced Micro Devices, Inc. Memory-sampling based migrating page cache

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070106874A1 (en) 2005-11-04 2007-05-10 P.A. Semi, Inc. R and C bit update handling
JP2009537922A (ja) 2006-05-25 2009-10-29 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・マイグレーション中のdma動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラム
US20120023280A1 (en) 2010-07-20 2012-01-26 Ibm Corporation Atomic Operations with Page Migration in PCIe
US20140281299A1 (en) 2013-03-14 2014-09-18 Nvidia Corporation Opportunistic migration of memory pages in a unified virtual memory system
US20160378674A1 (en) 2015-06-23 2016-12-29 Ati Technologies Ulc Shared virtual address space for heterogeneous processors

Also Published As

Publication number Publication date
US20180307414A1 (en) 2018-10-25
JP2020518063A (ja) 2020-06-18
CN110546623B (zh) 2023-11-07
KR102554377B1 (ko) 2023-07-11
KR20200002859A (ko) 2020-01-08
CN110546623A (zh) 2019-12-06
US10365824B2 (en) 2019-07-30
WO2018200559A1 (en) 2018-11-01
EP3616070A1 (en) 2020-03-04
EP3616070B1 (en) 2023-06-07

Similar Documents

Publication Publication Date Title
JP7228528B2 (ja) サイレントアクティブページ移行障害
US9830276B2 (en) Replaying memory transactions while resolving memory access faults
US10241925B2 (en) Selecting a default page size in a variable page size TLB
US11341059B2 (en) Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US10031856B2 (en) Common pointers in unified virtual memory system
US10067709B2 (en) Page migration acceleration using a two-level bloom filter on high bandwidth memory systems
US10467138B2 (en) Caching policies for processing units on multiple sockets
US11392508B2 (en) Lightweight address translation for page migration and duplication
US11741015B2 (en) Fault buffer for tracking page faults in unified virtual memory system
KR20220001016A (ko) 게스트 운영체제에 입출력 메모리 관리 유닛 레지스터 복사본을 제공하는 방법
CN114080587A (zh) 输入-输出存储器管理单元对访客操作系统缓冲区和日志的访问
CN113272789A (zh) 由输入输出存储器管理单元进行的域标识符和装置标识符转译
US12086447B2 (en) Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor
KR20150062646A (ko) 전자 시스템 및 이의 동작 방법
US10705745B2 (en) Using a memory controller to mange access to a memory based on a memory initialization state indicator
US20180300253A1 (en) Translate further mechanism
EP4268084A1 (en) Snapshotting pending memory writes using non-volatile memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220519

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230213

R150 Certificate of patent or registration of utility model

Ref document number: 7228528

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150