JP2020009492A - ハイブリッドメモリ管理 - Google Patents
ハイブリッドメモリ管理 Download PDFInfo
- Publication number
- JP2020009492A JP2020009492A JP2019183022A JP2019183022A JP2020009492A JP 2020009492 A JP2020009492 A JP 2020009492A JP 2019183022 A JP2019183022 A JP 2019183022A JP 2019183022 A JP2019183022 A JP 2019183022A JP 2020009492 A JP2020009492 A JP 2020009492A
- Authority
- JP
- Japan
- Prior art keywords
- page
- memory
- data
- main memory
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 357
- 238000000034 method Methods 0.000 claims abstract description 74
- 239000003795 chemical substances by application Substances 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 35
- 238000012546 transfer Methods 0.000 claims description 32
- 230000007246 mechanism Effects 0.000 claims description 14
- 230000003068 static effect Effects 0.000 claims description 9
- 238000013519 translation Methods 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 230000007704 transition Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 28
- 238000012545 processing Methods 0.000 description 12
- 230000014616 translation Effects 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 241001272996 Polyphylla fullo Species 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
- 238000010792 warming Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本明細書は、概してメモリシステムに関する。
さまざまなコンピュータおよび同様のシステムのためのデータおよび命令を維持して格納するために、多種多様なメモリデバイスを用いることができる。従来のコンピューティングシステムにおいては、典型的には、アプリケーションを高速で動作させるために、コンピュータのダイナミックメモリを動作させるためのダイナミックランダムアクセスメモリ(Dynamic Random Access Memory:DRAM)技術が用いられてきた。しかしながら、コンピュータシステムにおいてメインメモリとして用いられるDRAMは、もはや、過去におけるほど速やかに基準化されていない。結果として、DRAMストレージはコンピューティング環境においては限られたリソースになっている。
この明細書に記載される主題の革新的な一局面が具体化されるシステムおよび方法は、プロセッサの少なくとも1つのページテーブルウォーカでのページテーブルのスキャンに基づいて、アクセスビットがページテーブルの各ページテーブルエントリ毎に設定されているかどうかを、プロセッサで判断することを含む。アクセスビットは、ページテーブルエントリに関連付けられたページが最後のスキャン期間においてアクセスされたかどうかを示している。当該システムおよび方法はさらに、アクセスビットがページに関連付けられたページテーブルエントリ毎に設定されていないと判断したことに応じて、各ページ毎にカウントをインクリメントすることと、アクセスビットが各ページテーブルエントリ毎に設定されているかどうかをプロセッサで判断した後、アクセスビットをリセットすることと、データの第1のページにアクセスするようにとの要求をメインメモリから受取ることと、データの第1のページがメインメモリに格納されていないと判断したことに基づいて、ページフォルトを開始することと、ダイレクトメモリアクセス(direct memory access:DMA)エンジンを用いてページフォルトを処理することとを含む。
二次メモリからメインメモリに転送することとを含む。
新しい不揮発性メモリ技術は、メモリもしくはIOバスを介してローカルにアクセスされ得るか、または高速ネットワークを介して遠隔でアクセスされ得る。これらの技術の性能は2つの重要な意味合いを持っている。第1に、これらの技術は、アクセスするためのソフトウェアオーバーヘッドを最小限にしなければならないほどに高速であり、第2に、これらの技術は、DRAMが典型的にキャッシュとして用いられ得るほどに十分に低速である。これらのタイプの不揮発性メモリの利点を利用するために、アプリケーションがデータ配置を明確に管理する必要があるか、または、システムが、メモリのさまざまな部分同士の間でデータをトランスペアレントに移動させる自動管理を実行しなければならない。
図1は、本開示の実現例に従ったメモリデバイスを含むシステム100の一例を示す。中央処理装置(central processing unit:CPU)110は、DRAM120およびメ
モリ管理ユニット(memory management unit:MMU)150と通信し得る。システム100はさらに、ネットワークを介してアクセスされ得るリモートメモリ130を含んでもよい。キャッシュエージェント140およびホームエージェント145は、メモリを管理しているMMU150と共に動作し得る。キャッシュエージェントという語は、キャッシュデータを格納し、メモリ要求を開始することができる処理ユニットエージェントを指している。言いかえれば、キャッシュエージェントという語は、コヒーレントメモリへのトランザクションを開始し得るエンティティであって、それ自体のキャッシュ構造にコピーを保持し得るエンティティを表わし得る。ホームエージェント145はたとえばメモリコントローラであってもよい。ホームエージェントという語は、メモリの一領域または一部分を管理または所有する処理ユニットエージェントを指している。言いかえれば、ホームエージェントという語は、コヒーレントトランザクションを処理する(services)エンティティ、コヒーレントメモリの一部を監視するエンティティ、および/または、さまざまなキャッシュエージェント間で生じる可能性のある矛盾を管理するエンティティを表わし得る。加えて、ページテーブルウォーカ160およびトランスレーション・ルックアサイド・バッファ(translation lookaside buffer:TLB)165は、MMU150の一部であり得るか、またはMMU150で実現され得る。
マイグレーションのためにDMAエンジン230が用いられてもよい。二次ストレージ240は、CPU210によって直接アクセスされない可能性もある二番手のメモリとして機能するメモリデバイスであってもよい。DMAエンジン230は、CPU210に直接接続されてもよく、またはキャッシュエージェントなどの別個のエンティティの一部であってもよい。CPU210がメインメモリ(すなわち第1層のメモリまたは一次メモリ)として、DRAM220からページにアクセスしようと試みて、そのページがページアウトされており二次ストレージ240に存在している場合、ページフォルトが発生する可能性がある。ページフォルトは、オペレーティングシステム(operating system:OS)が
二次ストレージ240からメインメモリ、DRAM220にページを移動させる必要があることを示し得る。この明細書中に記載される実施形態に従うと、ハードウェアDMAエンジン230は、ページフォルトを管理して、メインメモリDRAM220にはないページにアクセスしようとする試みを検出する。これに応じて、ページフォルトが処理されている間、スレッドの実行はストールされている。次いで、メインメモリDRAM220にアクセスするためにスレッドがリリースされて、実行が継続され得る。
バッキングストアから空きページ位置にコピーされ得る。空きページがない「no」である場合、360において、ページがFIFO待ち行列から引出されてよく、最も新しく到着したものが後ろに配置され最も古く到着したものが前に配置されている状態で、待ち行列にあるメモリ内の全ページを追跡し得る。そのページが汚染されている場合、すなわち、変更されていた場合、370において、システムは二次メモリまたはバッキングストアにページを書き込んでもよい。ページをメインメモリから二次メモリに転送する際、380において、ページに関連付けられたページテーブルエントリが無効にされてもよく、ページに関連付けられたいずれかのエントリのためのTLBシュートダウンが実行されてもよく、たとえば、他のプロセッサのためにTLBエントリがフラッシュされてもよい。このときそのページが空いていれば、330において、ページデータが二次ストレージまたはバッキングストアから空きページ位置にコピーされ得る。ページに関連付けられたPTEを更新してページのメインメモリにおける位置を指し示すことによって有効なPTEを作成するために、340において、ページテーブルが更新されてもよい。ページフォルトが処理されると、スレッドまたは実行プログラムが350において再開され得る。
いて、システムが、FIFO待ち行列にある次のページを判断し得る。370において、そのページが汚染されている場合、すなわち変更されていた場合、システムは二次メモリ
またはバッキングストアにページを書き込み得る。メインメモリから二次メモリにページを転送する際、380において、ページに関連付けられたページテーブルエントリが無効にされ得るとともに、ページに関連付けられたいずれかのエントリのためのTLBシュートダウンが実行され得る。そのページが空きページであれば、325において、空きページの数がしきい値を満たしているかどうかが、再度、判断され得る。
ブルウォーカと密に結合されたハードウェアモジュールで実現されてもよく、または、MMUにおいて実現されてもよい。なぜなら、MMUは、IO装置において既に利用可能な1つ以上のページテーブルウォーカを有し得るからである。したがって、上述したように、そのハードウェアはページテーブルをスキャンし得るとともに、各PTEのアクセスビットを用いて、最後のスキャンがなされて以来アクセスビットが設定されたかどうかの判断に基づいて、各ページの各々の古さを判断し得る。たとえば、アクセスビットが設定されているのであれば、最後のスキャン期間内にそのページにクセスされていたこととなる。そうではなく、アクセスビットが設定されていない場合、ページにはアクセスされておらず、コールド(「cold」)である(たとえば最後のスキャン期間中にはアクセスされていない)と判断される可能性がある。有利には、ハードウェアによって判断されるこれらの使用統計またはアクセス統計は、ソフトウェアおよびサンプリング技術を必要とする現在の方法よりも精密かつ正確であり得る。
合、たとえば、ページ毎のカウントが大きくなればなるほど、ページは、よりコールドになる。ページがアクセスされ、アクセスビットが設定されると、そのカウントはゼロにリセットされ得る。ページテーブルはアクセスビットに対する変更を検出するために定期的にスキャンされてもよく、すべてのアクセスビットは各スキャン毎にクリアされてもよい。このため、カウントは、ページの古さを表わし得る。すなわち、ページがどのくらいの期間アクセスされていなかったかを表わし得る。
クランダムアクセスメモリに格納された各ページ毎のカウンタによって維持されてもよく、または、カウンティング・ブルーム・フィルタが、ページの設定についてのアクセス統計を維持してもよい。代替的には、各ページ毎のカウンタは、ダイナミックランダムアクセスメモリ(たとえば、少量の専用のDRAMまたはシステムDRAM)に格納されてもよい。
「コールド(cold)」であるかどうか(すなわち、どれくらい最近アクセスされたか、どれくらいの頻度でアクセスされたか、または、再びアクセスされる可能性があるかどうか)に基づいて、自動的にデータを移行するために、上述の使用統計またはアクセス統計を利用することが有益であるかもしれない。
になりつつあること(すなわちアクセスの頻度の増大)を判断するだけではなく、メインメモリDRAM内のどのページが「コールド(cold)」になりつつあるか(すなわち、アクセスの頻繁の減少)を判断することも有利である。言いかえれば、メインメモリよりも低速であり得る二次メモリにおいてどのページがより頻繁にアクセスされているかを判断すること、および、メインメモリにおいてどのページへのアクセス頻度がより低いかを判断することである。メインメモリにおいてどのページへのアクセス頻度がより低いかを判断する1つのプロセスは、たとえば、未設定であるアクセスビットのカウントに基づいて、メインメモリDRAMについての使用統計またはアクセス統計に関連付けて上述したとおりである。システムは、いつデータをメインメモリDRAMから二次メモリに移動させるべきかと、メインメモリについて上述されたアクセス統計に基づいて、いつデータを二次メモリからメインメモリDRAMに移動させるべきかとを判断し得るとともに、二次メモリに連結されたホームエージェントを利用して、二次メモリについてのアクセス統計を判断し得る。
かまたはより頻繁にアクセスされているそれらのページは、これらのアクセスを検出するホームエージェントを介して二次メモリへのメモリアクセスを管理するハードウェアによって判断されてもよい。なぜなら、物理アドレス範囲がホームエージェントによって所有されているからである。それらの判断されたアクセスに基づいて、ページ毎のアクセスカウンタが、たとえばオンチップSRAMにおいて維持されてもよい。代替的には、二次メモリのサイズが大きいせいで、カウンタのハードウェア面積コストがより高くなる可能性があるので、カウンティング・ブルーム・フィルタを用いて、ページの設定についてのアクセス統計を維持することによって、面積を節約し得る。代替的には、ハードウェアは少量の専用のDRAMを用いてもよく、または、システムDRAMにカウンタを格納してもよい。
。520において、メインメモリにおける各ページ毎のカウントは、アクセスビットがページに関連付けられたPTE毎に設定されていないと判断したことに応じて、インクリメントされ得る。代替的には、メインメモリにおける各ページ毎のカウントは、アクセスビットがページに関連付けられたPTE毎に設定されていると判断したことに応じて、インクリメントされ得る。アクセスビットが各PTE毎に設定されているかどうかを判断した後、530において、プロセッサはアクセスビットをリセットし得る。メインメモリにおける各ページ毎のカウントは、スタティックランダムアクセスメモリに格納された各ページ毎のカウンタによって維持されてもよく、または、カウンティング・ブルーム・フィルタが、ページの設定についてのアクセス統計を維持してもよい。代替的には、各ページ毎のカウンタは、ダイナミックランダムアクセスメモリ(たとえば少量の専用のDRAMまたはシステムDRAM)において格納されてもよい。
を排他的に保持し得る。ハードウェアがキャッシュラインを転送し終えた後、キャッシュエージェント140は、そのキャッシュラインの所有権をリリースしてもよく、これにより、将来の要求がホストのキャッシュまたはホストDRAMから提供され得ることとなる。さらに、たとえば、ページが転送されている間に、ホストがページ内の他のキャッシュラインのうちの1つにアクセスしようと試みたとき、ハードウェアは、キャッシュ・コヒーレンス・メカニズムに従って、その他のキャッシュラインのためのスヌープ要求(たとえば、プロセッサ間キャッシュコヒーレンシ動作)を認識し得るとともに、他のキャッシュラインが二次メモリから転送されたときには、スヌープ要求に応じて他のキャッシュラインを提供し得る。
ータのページに関連付けられたページテーブルエントリを更新して、メインメモリにおけるデータのページの位置を示し、データのページの残余部分を二次メモリからメインメモリに転送するための方法、システムおよび装置に向けられている。
DRAM、180 不揮発性メモリ。
Claims (41)
- コンピュータによって実現される方法であって、
ページテーブルスキャナでのページテーブルのスキャンに基づいて、アクセスビットが前記ページテーブルの各ページテーブルエントリ毎に設定されているかどうかを、プロセッサで判断するステップを含み、前記アクセスビットは、前記ページテーブルエントリに関連付けられたページが最後のスキャン期間においてアクセスされたかどうかを示しており、前記方法はさらに、
前記アクセスビットが前記ページに関連付けられた前記ページテーブルエントリ毎に設定されていないと判断したことに応じて、各ページ毎にカウントをインクリメントするステップと、
前記アクセスビットが各ページテーブルエントリ毎に設定されているかどうかを前記プロセッサで判断した後、前記アクセスビットをリセットするステップと、
データの第1のページにアクセスするようにとの要求をメインメモリから受取るステップと、
前記データの第1のページが前記メインメモリに格納されていないと判断したことに基づいて、ページフォルトを開始するステップと、
ダイレクトメモリアクセス(DMA)エンジンを用いて前記ページフォルトを処理するステップとを含み、
DMAエンジンを用いて前記ページフォルトを処理する前記ステップは、
前記メインメモリがページ転送を受取ることができないと判断したことに応じて、各ページ毎の前記カウントに基づいて特定のページを決定し、前記二次メモリに前記特定のページをリリースし、前記リリースされた特定のページの位置において、前記データの第1のページを前記二次メモリから前記メインメモリに転送するステップを含む、方法。 - 前記特定のページは、各ページ毎の前記カウントに基づいて、使用頻度が最も低いページのうちの1つであると判断される、請求項1に記載の方法。
- 前記ページフォルトを開始する前記ステップは、前記ページフォルトが処理されている間、スレッドの実行をストールさせるステップと、
前記ページフォルトが処理された後、前記メインメモリにアクセスするために前記スレッドをリリースするステップとを含む、請求項1に記載の方法。 - 各ページ毎の前記カウントは、スタティックランダムアクセスメモリに格納された各ページ毎のカウンタ、カウンティング・ブルーム・フィルタ、または、ダイナミックランダムアクセスメモリに格納された各ページ毎のカウンタ、のうち少なくとも1つによって維持される、請求項1に記載の方法。
- システムであって、
1つ以上のプロセッサと、
メインメモリおよび二次メモリを含むメモリとを含み、前記メモリは、実施可能な命令を格納しており、前記命令は、実行されると、前記1つ以上のプロセッサに以下の動作を実行させ、前記以下の動作は、
ページテーブルスキャナでのページテーブルのスキャンに基づいて、アクセスビットが前記ページテーブルの各ページテーブルエントリ毎に設定されているかどうかを、プロセッサで判断する動作を含み、前記アクセスビットは、前記ページテーブルエントリに関連付けられたページが最後のスキャン期間においてアクセスされたかどうかを示しており、前記以下の動作はさらに、
前記アクセスビットが前記ページに関連付けられた前記ページテーブルエントリ毎に設定されていないと判断したことに応じて、各ページ毎にカウントをインクリメントする動
作と、
前記アクセスビットが各ページテーブルエントリ毎に設定されているかどうかを前記プロセッサで判断した後、前記アクセスビットをリセットする動作と、
データの第1のページにアクセスするようにとの要求をメインメモリから受取る動作と、
前記データの第1のページが前記メインメモリに格納されていないと判断したことに基づいて、ページフォルトを開始する動作と、
ダイレクトメモリアクセス(DMA)エンジンを用いて前記ページフォルトを処理する動作とを含み、
DMAエンジンを用いて前記ページフォルトを処理する前記動作は、
前記メインメモリがページ転送を受取ることができないと判断したことに応じて、各ページ毎の前記カウントに基づいて特定のページを決定し、前記特定のページを前記二次メモリにリリースし、前記リリースされた特定のページの位置において、前記データの第1のページを前記二次メモリから前記メインメモリに転送する動作を含む、システム。 - 前記特定のページは、各ページ毎の前記カウントに基づいて、使用頻度が最も低いページのうちの1つであると判断される、請求項5に記載のシステム。
- 前記ページフォルトを開始する前記動作は、
前記ページフォルトが処理されている間、スレッドの実行をストールさせる動作と、
前記ページフォルトが処理された後、前記メインメモリにアクセスするために前記スレッドをリリースする動作とを含む、請求項5に記載のシステム。 - 各ページ毎の前記カウントは、
スタティックランダムアクセスメモリに格納された各ページ毎のカウンタ、カウンティング・ブルーム・フィルタ、または、ダイナミックランダムアクセスメモリに格納された各ページ毎のカウンタ、のうち少なくとも1つによって維持される、請求項5に記載のシステム。 - コンピュータによって実現される方法であって、
少なくとも1つのページテーブルウォーカでのページテーブルのスキャンに基づいて、アクセスビットが前記ページテーブルの各ページテーブルエントリ毎に設定されているかどうかを判断するステップを含み、前記アクセスビットは、前記ページテーブルエントリに関連付けられたページが最後のスキャン期間においてメインメモリにおいてアクセスされたかどうかを示しており、前記方法はさらに、
前記アクセスビットが前記ページに関連付けられた前記ページテーブルエントリ毎に設定されていないと判断したことに応じて、前記メインメモリにおける各ページ毎に一次カウントをインクリメントするステップと、
前記アクセスビットが各ページテーブルエントリ毎に設定されているかどうかを判断した後、前記アクセスビットをリセットするステップと、
ホームエージェントが二次メモリにおけるページにアクセスするようにとの要求を受取ったことに基づいて、前記二次メモリにおける前記ページがアクセスされるかどうかを判断するステップと、
前記ホームエージェントが前記二次メモリにおける前記ページにアクセスするようにとの要求を受取ったことに基づいて、前記二次メモリにおける前記ページがアクセスされると判断したことに応じて、前記二次メモリにおける各ページ毎に二次カウントをインクリメントするステップと、
前記二次カウントに基づいて、前記二次メモリにおける特定のページを頻繁にアクセスされるものとして識別するステップと、
頻繁にアクセスされるものとして識別された前記特定のページを前記二次メモリから前
記メインメモリに移行するステップとを含む、方法。 - 前記メインメモリにおける或るページを、前記一次カウントに基づいて、希にしかアクセスされないものとして識別するステップと、
希にしかアクセスされないものとして識別された前記或るページを、前記メインメモリから前記二次メモリに移行するステップとをさらに含む、請求項9に記載の方法。 - 希にしかアクセスされないものとして識別された前記或るページを移行する前記ステップは、前記或るページに関連付けられた前記ページテーブルエントリを無効にし、前記或るページに関連付けられたいずれかのエントリのためにトランスレーション・ルックアサイド・バッファ・シュートダウンを実行し、前記或るページを前記メインメモリから前記二次メモリに転送するステップを含む、請求項10に記載の方法。
- 前記メインメモリにおける各ページ毎の前記一次カウントおよび前記二次メモリにおける各ページ毎の前記二次カウントの各々は、スタティックランダムアクセスメモリに格納された各ページ毎のカウンタ、カウンティング・ブルーム・フィルタ、または、ダイナミックランダムアクセスメモリに格納された各ページ毎のカウンタ、のうち少なくとも1つによって維持される、請求項9に記載の方法。
- 前記一次カウントに基づいて、前記メインメモリにおける或るページを、希にしかアクセスされないものとして識別するステップは、前記或るページについての相互アクセス時間が相互アクセス時間しきい値を満たすと判断するステップを含む、請求項10に記載の方法。
- 前記或るページについての前記相互アクセス時間が前記相互アクセス時間しきい値を満たすと判断したことに応じて、希にしかアクセスされないものとして識別された前記或るページが、前記メインメモリから前記二次メモリに移行される、請求項13に記載の方法。
- システムであって、
1つ以上のプロセッサと、
メインメモリおよび二次メモリを含むメモリとを含み、前記メモリは、実施可能な命令を格納しており、前記命令は、実行されると、前記1つ以上のプロセッサに以下の動作を実行させ、前記以下の動作は、
少なくとも1つのページテーブルウォーカでのページテーブルのスキャンに基づいて、アクセスビットが前記ページテーブルの各ページテーブルエントリ毎に設定されているかどうかを判断する動作を含み、前記アクセスビットは、前記ページテーブルエントリに関連付けられたページが最後のスキャン期間においてメインメモリにおいてアクセスされたかどうかを示しており、前記以下の動作はさらに、
前記アクセスビットが前記ページに関連付けられた前記ページテーブルエントリ毎に設定されていないと判断したことに応じて、前記メインメモリにおける各ページ毎に一次カウントをインクリメントする動作と、
前記アクセスビットが各ページテーブルエントリ毎に設定されているかどうかを判断した後、前記アクセスビットをリセットする動作と、
ホームエージェントが二次メモリにおけるページにアクセスするようにとの要求を受取ったことに基づいて、前記二次メモリにおける前記ページがアクセスされるかどうかを判断する動作と、
前記ホームエージェントが前記二次メモリにおける前記ページにアクセスするようにとの要求を受取ったことに基づいて、前記二次メモリにおける前記ページがアクセスされると判断したことに応じて、前記二次メモリにおける各ページ毎に二次カウントをインクリ
メントする動作と、
前記二次カウントに基づいて、前記二次メモリにおける特定のページを頻繁にアクセスされるものとして識別する動作と、
頻繁にアクセスされるものとして識別された前記特定のページを前記二次メモリから前記メインメモリに移行する動作とを含む、システム。 - 前記動作はさらに、
前記一次カウントに基づいて、前記メインメモリにおける或るページを、希にしかアクセスされないものとして識別する動作と、
希にしかアクセスされないものとして識別された前記或るページを、前記メインメモリから前記二次メモリに移行する動作とを含む、請求項15に記載のシステム。 - 希にしかアクセスされないものとして識別された前記或るページを移行する前記動作は、
前記或るページに関連付けられた前記ページテーブルエントリを無効にし、前記或るページに関連付けられたいずれかのエントリのためのトランスレーション・ルックアサイド・バッファ・シュートダウンを実行し、前記或るページを前記メインメモリから前記二次メモリに転送する動作を含む、請求項16に記載のシステム。 - 前記メインメモリにおける各ページ毎の前記一次カウントおよび前記二次メモリにおける各ページ毎の前記二次カウントの各々は、スタティックランダムアクセスメモリに格納された各ページ毎のカウンタ、カウンティング・ブルーム・フィルタ、または、ダイナミックランダムアクセスメモリに格納された各ページ毎のカウンタ、のうち少なくとも1つによって維持される、請求項15に記載のシステム。
- 前記一次カウントに基づいて、前記メインメモリにおける或るページを、希にしかアクセスされないものとして識別する動作は、前記或るページについての相互アクセス時間が相互アクセス時間しきい値を満たすと判断する動作を含む、請求項16に記載のシステム。
- 前記或るページについての前記相互アクセス時間が前記相互アクセス時間しきい値を満たすと判断したことに応じて、希にしかアクセスされないものとして識別された前記或るページが、前記メインメモリから前記二次メモリに移行される、請求項19に記載のシステム。
- コンピュータによって実現される方法であって、
データのページの第1のキャッシュラインにアクセスするようにとの要求をメインメモリから受取るステップと、
前記第1のキャッシュラインが前記メインメモリに格納されず、二次メモリに格納されていると判断するステップと、これに応じて、
データのページ全体を転送することなく、前記データのページの前記第1のキャッシュラインを前記二次メモリから前記メインメモリに転送するステップとを含み、前記データのページの残余部分は前記二次メモリに格納されたままであり、前記方法はさらに、
前記データのページに関連付けられたページテーブルエントリを更新して、前記メインメモリにおける前記データのページの位置を示すステップと、
前記データのページの前記残余部分を前記二次メモリから前記メインメモリに転送するステップとを含む、方法。 - キャッシュ・コヒーレンシ・メカニズムは、前記データのページの第2のキャッシュラインのアクセスを処理するために、前記データのページの前記残余部分を前記二次メモリ
から前記メインメモリに転送する間に、実現される、請求項21に記載の方法。 - 前記キャッシュ・コヒーレンシ・メカニズムは、
前記データのページにおけるキャッシュラインの所有権についての要求を、キャッシュエージェントによって発行するステップと、
前記キャッシュラインが前記二次メモリから前記メインメモリに転送されていることに応じて各キャッシュラインの所有権をリリースするステップとを含む、請求項22に記載の方法。 - 前記キャッシュエージェントのキャッシュに前記データのページのキャッシュラインを格納するステップをさらに含む、請求項23に記載の方法。
- 前記データのページのキャッシュラインに関連付けられたタグおよびコヒーレンス状態ビットを格納するステップをさらに含む、請求項23に記載の方法。
- 前記データのページの前記残余部分が転送されている間に、前記データのページの前記第2のキャッシュラインにアクセスするようにとの要求に応じて、前記第2のキャッシュラインについてのスヌープ要求を認識し、前記第2のキャッシュラインが前記二次メモリから転送されると前記スヌープ要求に応じて前記第2のキャッシュラインを戻すステップをさらに含む、請求項23に記載の方法。
- 前記メインメモリがページ転送を受取ることができない場合、前記メインメモリに格納された使用頻度が最も低いページのうちの1ページを決定し、前記使用頻度が最も低いページのうちの前記1ページを前記二次メモリにリリースし、前記使用頻度が最も低いページのうちリリースされた前記1ページの位置において、前記データのページを前記二次メモリから前記メインメモリに転送するステップをさらに含む、請求項21に記載の方法。
- システムであって、
1つ以上のプロセッサと、
実施可能な命令を格納する1つ以上の記憶装置とを備え、前記命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに以下の動作を実行させ、前記以下の動作は、
データのページの第1のキャッシュラインにアクセスするようにとの要求をメインメモリから受取る動作と、
前記第1のキャッシュラインが前記メインメモリに格納されず、二次メモリに格納されていると判断する動作と、
データのページ全体を転送することなく、前記データのページの前記第1のキャッシュラインを前記二次メモリから前記メインメモリに転送する動作とを含み、前記データのページの残余部分は前記二次メモリに格納されたままであり、前記以下の動作はさらに、
前記データのページに関連付けられたページテーブルエントリを更新して、前記メインメモリにおける前記データのページの位置を示す動作と、
前記データのページの前記残余部分を前記二次メモリから前記メインメモリに転送する動作とを含む、システム。 - キャッシュ・コヒーレンシ・メカニズムは、前記データのページの第2のキャッシュラインのアクセスを処理するために、前記データのページの前記残余部分を前記二次メモリから前記メインメモリに転送する間に、実現される、請求項28に記載のシステム。
- 前記キャッシュ・コヒーレンシ・メカニズムは、
前記データのページにおけるキャッシュラインの所有権についての要求をキャッシュエ
ージェントによって発行することと、
前記キャッシュラインが前記二次メモリから前記メインメモリに転送されていることに応じて各キャッシュラインの所有権をリリースすることとを含む、請求項29に記載のシステム。 - 前記動作はさらに、
前記キャッシュエージェントのキャッシュに前記データのページのキャッシュラインを格納することを含む、請求項30に記載のシステム。 - 前記動作はさらに、
前記データのページのキャッシュラインに関連付けられたタグおよびコヒーレンス状態ビットを格納することを含む、請求項30に記載のシステム。 - 前記動作はさらに、
前記データのページの前記残余部分が転送されている間に、前記データのページの前記第2のキャッシュラインにアクセスするようにとの要求に応じて、前記第2のキャッシュラインについてのスヌープ要求を認識し、前記第2のキャッシュラインが前記二次メモリから転送されると前記スヌープ要求に応じて前記第2のキャッシュラインを戻すことを含む、請求項30に記載のシステム。 - 前記動作はさらに、
前記メインメモリがページ転送を受取ることができない場合、前記メインメモリに格納された使用頻度が最も低いページのうちの1ページを決定し、前記使用頻度が最も低いページのうちの前記1ページを前記二次メモリにリリースし、前記使用頻度が最も低いページのうちリリースされた前記1ページの位置において、前記データのページを前記二次メモリから前記メインメモリに転送することを含む、請求項28に記載のシステム。 - 1つ以上のプロセッサによって実行可能な命令を格納しているコンピュータ読取可能記憶装置であって、前記命令は、実行されると、前記1つ以上のプロセッサに以下の動作を実行させ、前記以下の動作は、
データのページの第1のキャッシュラインにアクセスするようにとの要求をメインメモリから受取ることと、
前記第1のキャッシュラインが前記メインメモリに格納されず、二次メモリに格納されていると判断することと、
データのページ全体を転送することなく、前記データのページの前記第1のキャッシュラインを前記二次メモリから前記メインメモリに転送することとを含み、前記データのページの残余部分は前記二次メモリに格納されたままであり、前記以下の動作はさらに、
前記データのページに関連付けられたページテーブルエントリを更新して、前記メインメモリにおける前記データのページの位置を示すことと、
前記データのページの前記残余部分を前記二次メモリから前記メインメモリに転送することとを含む、コンピュータ読取可能記憶装置。 - キャッシュ・コヒーレンシ・メカニズムは、前記データのページの第2のキャッシュラインのアクセスを処理するために、前記データのページの前記残余部分を前記二次メモリから前記メインメモリに転送する間に、実現される、請求項35に記載のコンピュータ読取可能記憶装置。
- 前記キャッシュ・コヒーレンシ・メカニズムは、
前記データのページにおけるキャッシュラインの所有権についての要求を、キャッシュエージェントによって発行することと、
前記キャッシュラインが前記二次メモリから前記メインメモリに転送されていることに応じて各キャッシュラインの所有権をリリースすることとを含む、請求項36に記載のコンピュータ読取可能記憶装置。 - 前記動作はさらに、
(i)前記キャッシュエージェントのキャッシュにおける前記データのページのキャッシュライン、または、(ii)前記データのページのキャッシュラインに関連付けられたタグおよびコヒーレンス状態ビット、のうち1つを格納することを含む、請求項37に記載のコンピュータ読取可能記憶装置。 - 前記動作はさらに、
前記データのページの前記残余部分が転送されている間に、前記データのページの前記第2のキャッシュラインにアクセスするようにとの要求に応じて、前記第2のキャッシュラインについてのスヌープ要求を認識し、前記第2のキャッシュラインが前記二次メモリから転送されると前記スヌープ要求に応じて前記第2のキャッシュラインを戻すことを含む、請求項37に記載のコンピュータ読取可能記憶装置。 - 前記動作はさらに、
前記メインメモリがページ転送を受取ることができない場合、前記メインメモリに格納された使用頻度が最も低いページのうちの1ページを決定し、前記使用頻度が最も低いページのうちの前記1ページを前記二次メモリにリリースし、前記使用頻度が最も低いページのうちリリースされた前記1ページの位置において、前記データのページを前記二次メモリから前記メインメモリに転送することを含む、請求項35に記載のコンピュータ読取可能記憶装置。 - 請求項1から4、9から13、および21から27のいずれか一項に記載の前記方法をコンピュータに実行させるためのプログラム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/236,171 US10037173B2 (en) | 2016-08-12 | 2016-08-12 | Hybrid memory management |
US15/235,495 | 2016-08-12 | ||
US15/235,495 US10152427B2 (en) | 2016-08-12 | 2016-08-12 | Hybrid memory management |
US15/236,171 | 2016-08-12 | ||
JP2017156543A JP2018026136A (ja) | 2016-08-12 | 2017-08-14 | ハイブリッドメモリ管理 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017156543A Division JP2018026136A (ja) | 2016-08-12 | 2017-08-14 | ハイブリッドメモリ管理 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020009492A true JP2020009492A (ja) | 2020-01-16 |
JP2020009492A5 JP2020009492A5 (ja) | 2020-09-24 |
JP6944983B2 JP6944983B2 (ja) | 2021-10-06 |
Family
ID=60579714
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017156543A Pending JP2018026136A (ja) | 2016-08-12 | 2017-08-14 | ハイブリッドメモリ管理 |
JP2019183022A Active JP6944983B2 (ja) | 2016-08-12 | 2019-10-03 | ハイブリッドメモリ管理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017156543A Pending JP2018026136A (ja) | 2016-08-12 | 2017-08-14 | ハイブリッドメモリ管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10037173B2 (ja) |
EP (2) | EP3282364B1 (ja) |
JP (2) | JP2018026136A (ja) |
CN (2) | CN111177030B (ja) |
DE (2) | DE202017104840U1 (ja) |
TW (1) | TWI643073B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742115A (zh) * | 2020-05-29 | 2021-12-03 | 成均馆大学校产学协力团 | 用于通过处理器处理页面错误的方法 |
US11709773B2 (en) | 2021-04-09 | 2023-07-25 | Fujitsu Limited | Computer-readable recording medium storing information processing program, information processing method, and information processing device |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108550B2 (en) | 2016-09-22 | 2018-10-23 | Google Llc | Memory management supporting huge pages |
US10437799B2 (en) * | 2016-12-02 | 2019-10-08 | International Business Machines Corporation | Data migration using a migration data placement tool between storage systems based on data access |
US10437800B2 (en) * | 2016-12-02 | 2019-10-08 | International Business Machines Corporation | Data migration using a migration data placement tool between storage systems based on data access |
US20180336158A1 (en) * | 2017-05-16 | 2018-11-22 | Dell Products L.P. | Systems and methods for data transfer with coherent and non-coherent bus topologies and attached external memory |
CN111512294A (zh) * | 2018-09-18 | 2020-08-07 | 华为技术有限公司 | 一种存储装置及电子设备 |
US11113207B2 (en) * | 2018-12-26 | 2021-09-07 | Samsung Electronics Co., Ltd. | Bypass predictor for an exclusive last-level cache |
US11609858B2 (en) | 2018-12-26 | 2023-03-21 | Samsung Electronics Co., Ltd. | Bypass predictor for an exclusive last-level cache |
KR20200085522A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법 |
US11055221B2 (en) * | 2019-03-22 | 2021-07-06 | Samsung Electronics Co., Ltd. | Speculative DRAM read, in parallel with cache level search, leveraging interconnect directory |
US11599384B2 (en) | 2019-10-03 | 2023-03-07 | Micron Technology, Inc. | Customized root processes for individual applications |
US11474828B2 (en) | 2019-10-03 | 2022-10-18 | Micron Technology, Inc. | Initial data distribution for different application processes |
US11436041B2 (en) | 2019-10-03 | 2022-09-06 | Micron Technology, Inc. | Customized root processes for groups of applications |
US11429445B2 (en) | 2019-11-25 | 2022-08-30 | Micron Technology, Inc. | User interface based page migration for performance enhancement |
US11393548B2 (en) | 2020-12-18 | 2022-07-19 | Micron Technology, Inc. | Workload adaptive scans for memory sub-systems |
CN113311994A (zh) * | 2021-04-09 | 2021-08-27 | 中企云链(北京)金融信息服务有限公司 | 一种基于高并发的数据缓存方法 |
US11733902B2 (en) | 2021-04-30 | 2023-08-22 | International Business Machines Corporation | Integrating and increasing performance of disaggregated memory in operating systems |
CN114201444B (zh) * | 2021-12-06 | 2023-11-14 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
CN115794397A (zh) * | 2022-11-29 | 2023-03-14 | 阿里云计算有限公司 | 冷热页管理加速设备、方法、mmu、处理器及电子设备 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6159557A (ja) * | 1984-08-30 | 1986-03-27 | Toshiba Corp | 仮想記憶制御装置 |
JPH047653A (ja) * | 1990-04-25 | 1992-01-13 | Matsushita Electric Ind Co Ltd | 仮想記憶メモリ装置 |
US5361345A (en) | 1991-09-19 | 1994-11-01 | Hewlett-Packard Company | Critical line first paging system |
JPH05241958A (ja) * | 1992-02-26 | 1993-09-21 | Nec Corp | 仮想記憶制御方式 |
US5493663A (en) | 1992-04-22 | 1996-02-20 | International Business Machines Corporation | Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses |
US5432917A (en) * | 1992-04-22 | 1995-07-11 | International Business Machines Corporation | Tabulation of multi-bit vector history |
US5613153A (en) | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
US6029224A (en) | 1995-06-07 | 2000-02-22 | Lucent Technologies Inc. | Self-contained memory apparatus having diverse types of memory and distributed control |
US6671791B1 (en) | 2001-06-15 | 2003-12-30 | Advanced Micro Devices, Inc. | Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms |
US6782453B2 (en) * | 2002-02-12 | 2004-08-24 | Hewlett-Packard Development Company, L.P. | Storing data in memory |
JP3982353B2 (ja) | 2002-07-12 | 2007-09-26 | 日本電気株式会社 | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
US6804729B2 (en) | 2002-09-30 | 2004-10-12 | International Business Machines Corporation | Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel |
US20040117587A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corp. | Hardware managed virtual-to-physical address translation mechanism |
JP2005216053A (ja) * | 2004-01-30 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 最適メモリ配置演算装置及び最適メモリ配置方法 |
US7409580B2 (en) | 2005-02-09 | 2008-08-05 | International Business Machines Corporation | System and method for recovering from errors in a data processing system |
US7546416B2 (en) * | 2006-06-26 | 2009-06-09 | Micron Technology, Inc. | Method for substantially uninterrupted cache readout |
US7882309B2 (en) * | 2007-07-26 | 2011-02-01 | Globalfoundries Inc. | Method and apparatus for handling excess data during memory access |
US8352705B2 (en) * | 2008-01-15 | 2013-01-08 | Vmware, Inc. | Large-page optimization in virtual memory paging systems |
US8055876B2 (en) | 2008-06-06 | 2011-11-08 | International Business Machines Corporation | Selectively mark free frames as unused for cooperative memory over-commitment |
US20100070678A1 (en) * | 2008-09-12 | 2010-03-18 | Vmware, Inc. | Saving and Restoring State Information for Virtualized Computer Systems |
US8832353B2 (en) * | 2009-04-07 | 2014-09-09 | Sandisk Technologies Inc. | Host stop-transmission handling |
JP2011165093A (ja) * | 2010-02-12 | 2011-08-25 | Nippon Telegr & Teleph Corp <Ntt> | メモリアクセス調査装置、メモリアクセス調査方法、及びプログラム |
US9015441B2 (en) * | 2010-04-30 | 2015-04-21 | Microsoft Technology Licensing, Llc | Memory usage scanning |
US9195612B2 (en) * | 2011-11-29 | 2015-11-24 | Microsoft Technology Licensing, Llc | Computer system with memory aging for high performance |
US9330736B2 (en) * | 2012-11-09 | 2016-05-03 | Qualcomm Incorporated | Processor memory optimization via page access counting |
US10133677B2 (en) | 2013-03-14 | 2018-11-20 | Nvidia Corporation | Opportunistic migration of memory pages in a unified virtual memory system |
US9792220B2 (en) | 2013-03-15 | 2017-10-17 | Nvidia Corporation | Microcontroller for memory management unit |
US20150058520A1 (en) | 2013-08-22 | 2015-02-26 | International Business Machines Corporation | Detection of hot pages for partition migration |
US9535831B2 (en) | 2014-01-10 | 2017-01-03 | Advanced Micro Devices, Inc. | Page migration in a 3D stacked hybrid memory |
US20170177482A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Computing system having multi-level system memory capable of operating in a single level system memory mode |
US10114559B2 (en) | 2016-08-12 | 2018-10-30 | International Business Machines Corporation | Generating node access information for a transaction accessing nodes of a data set index |
-
2016
- 2016-08-12 US US15/236,171 patent/US10037173B2/en active Active
-
2017
- 2017-08-11 DE DE202017104840.3U patent/DE202017104840U1/de active Active
- 2017-08-11 TW TW106127201A patent/TWI643073B/zh active
- 2017-08-11 EP EP17185833.5A patent/EP3282364B1/en active Active
- 2017-08-11 DE DE202017104841.1U patent/DE202017104841U1/de active Active
- 2017-08-11 EP EP17185832.7A patent/EP3291097A3/en not_active Withdrawn
- 2017-08-14 CN CN201911227514.XA patent/CN111177030B/zh active Active
- 2017-08-14 JP JP2017156543A patent/JP2018026136A/ja active Pending
- 2017-08-14 CN CN201710691364.2A patent/CN107729168A/zh active Pending
-
2019
- 2019-10-03 JP JP2019183022A patent/JP6944983B2/ja active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742115A (zh) * | 2020-05-29 | 2021-12-03 | 成均馆大学校产学协力团 | 用于通过处理器处理页面错误的方法 |
KR20210147704A (ko) * | 2020-05-29 | 2021-12-07 | 성균관대학교산학협력단 | 프로세서를 통한 페이지 폴트 처리 방법 |
KR102400977B1 (ko) * | 2020-05-29 | 2022-05-25 | 성균관대학교산학협력단 | 프로세서를 통한 페이지 폴트 처리 방법 |
US11436150B2 (en) | 2020-05-29 | 2022-09-06 | Research & Business Foundation Sungkyunkwan University | Method for processing page fault by processor |
CN113742115B (zh) * | 2020-05-29 | 2024-03-12 | 成均馆大学校产学协力团 | 用于通过处理器处理页面错误的方法 |
US11709773B2 (en) | 2021-04-09 | 2023-07-25 | Fujitsu Limited | Computer-readable recording medium storing information processing program, information processing method, and information processing device |
Also Published As
Publication number | Publication date |
---|---|
DE202017104841U1 (de) | 2017-11-22 |
EP3291097A2 (en) | 2018-03-07 |
US10037173B2 (en) | 2018-07-31 |
EP3291097A3 (en) | 2018-05-30 |
CN107729168A (zh) | 2018-02-23 |
US20180046411A1 (en) | 2018-02-15 |
EP3282364A1 (en) | 2018-02-14 |
CN111177030A (zh) | 2020-05-19 |
TWI643073B (zh) | 2018-12-01 |
CN111177030B (zh) | 2021-08-20 |
DE202017104840U1 (de) | 2017-12-12 |
TW201810057A (zh) | 2018-03-16 |
JP6944983B2 (ja) | 2021-10-06 |
JP2018026136A (ja) | 2018-02-15 |
EP3282364B1 (en) | 2019-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6944983B2 (ja) | ハイブリッドメモリ管理 | |
US10705975B2 (en) | Hybrid memory management | |
CN109791523B (zh) | 支持巨页的内存管理 | |
CN110209601B (zh) | 存储器接口 | |
CN108701092B (zh) | 自愈粗粒探听过滤器 | |
US10289555B1 (en) | Memory read-ahead using learned memory access patterns | |
US6295582B1 (en) | System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available | |
US8180981B2 (en) | Cache coherent support for flash in a memory hierarchy | |
US10877890B2 (en) | Providing dead-block prediction for determining whether to cache data in cache devices | |
US5987544A (en) | System interface protocol with optional module cache | |
JP2008501190A (ja) | マルチプロセッサシステムにおいてデータ変換バッファ項目を無効にするメカニズム | |
US6918021B2 (en) | System of and method for flow control within a tag pipeline | |
US10754791B2 (en) | Software translation prefetch instructions | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200812 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200812 |
|
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: 20210817 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210913 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6944983 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |