TWI643073B - 混合式記憶體管理 - Google Patents

混合式記憶體管理 Download PDF

Info

Publication number
TWI643073B
TWI643073B TW106127201A TW106127201A TWI643073B TW I643073 B TWI643073 B TW I643073B TW 106127201 A TW106127201 A TW 106127201A TW 106127201 A TW106127201 A TW 106127201A TW I643073 B TWI643073 B TW I643073B
Authority
TW
Taiwan
Prior art keywords
page
memory
access
main memory
cache
Prior art date
Application number
TW106127201A
Other languages
English (en)
Other versions
TW201810057A (zh
Inventor
喬 狄倫 科本
艾伯特 柏契爾斯
克里斯多福 萊爾 強生
羅伯特 S 斯普林科
Original Assignee
美商谷歌有限責任公司
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
Priority claimed from US15/235,495 external-priority patent/US10152427B2/en
Application filed by 美商谷歌有限責任公司 filed Critical 美商谷歌有限責任公司
Publication of TW201810057A publication Critical patent/TW201810057A/zh
Application granted granted Critical
Publication of TWI643073B publication Critical patent/TWI643073B/zh

Links

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache 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)
    • 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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

本發明揭示用於基於利用至少一個頁表查核器對一頁表進行之一掃描而判定是否針對該頁表之每一頁表項設定一存取位元之方法、系統及設備,該存取位元指示在上一掃描週期中是否存取了與該頁表項相關聯之一頁;回應於判定針對與該頁相關聯之該頁表項設定該存取位元而遞增每一頁之一計數;在判定是否針對每一頁表項設定該存取位元之後,重設該存取位元;接收自一主記憶體存取一第一資料頁之一請求;基於判定該第一資料頁未儲存於該主記憶體中而起始一頁錯誤;及利用一DMA引擎修復該頁錯誤。

Description

混合式記憶體管理
本說明書一般而言係關於記憶體系統。
可使用各種各樣之記憶體裝置來維持且儲存用於各種電腦及類似系統之資料及指令。在習用計算系統中,通常採用動態隨機存取記憶體(DRAM)技術來操作電腦之動態記憶體以便使一應用程式以高速度操作。然而,在電腦系統中用作主記憶體之DRAM不再如過去一樣迅速地擴縮。因此,DRAM儲存器已變成計算環境中之一有限資源。 可使用諸如非揮發性記憶體之記憶體之一第二層列,該第二層列橋接DRAM與諸如NAND快閃記憶體之較慢技術之間的效能缺口。記憶體之第二層列可經由一記憶體或IO匯流排本端地存取或經由一高速度網路遠端地存取。然而,需要明確地管理資料放置之應用程式或系統必須提供在記憶體層列之間通透地移動資料之自動管理。因此,需要以最小效能影響進行自動管理之新的技術來克服經設計以用於較慢儲存裝置之現有技術之缺陷。
本說明書中所闡述之標的物之一項發明性態樣體現在系統及方法中,該等系統及方法包含:利用一處理器基於利用該處理器之至少一個頁表查核器對一頁表進行之一掃描而判定是否針對該頁表之每一頁表項設定一存取位元,該存取位元指示在上一掃描週期中是否存取了與該頁表項相關聯之一頁;回應於判定未針對與該頁相關聯之該頁表項設定該存取位元而遞增每一頁之一計數;在利用該處理器判定是否針對每一頁表項設定該存取位元之後,重設該存取位元;接收自一主記憶體存取一第一資料頁之一請求;基於該第一資料頁未儲存於該主記憶體中之判定而起始一頁錯誤;及使用一直接記憶體存取(DMA)引擎來修復該頁錯誤。 在特定實施方案中,使用一DMA引擎修復該頁錯誤包含:若該主記憶體無法接收一頁傳送,則基於每一頁之該計數而判定一最少使用頁中之一者且將該等最少使用頁中之該一者釋放至該次要記憶體中,且將該第一頁資料自該次要記憶體傳送至該主記憶體的該等最少使用頁中之該所釋放一者之位置處;且若該主記憶體可接收一頁傳送,則將該第一頁資料自該次要記憶體傳送至該主記憶體。 在特定實施方案中,起始該頁錯誤包含:在該頁錯誤被修復時停止一執行緒之執行;及在該頁錯誤被修復之後釋放該執行緒以存取該主記憶體。此外,在特定實施方案中,藉由以下各項中之至少一者來維持每一頁之該計數:儲存於靜態隨機存取記憶體中的每一頁之一計數器、計數布隆過濾器(bloom filter)或儲存於動態隨機存取記憶體中的每一頁之一計數器。 本說明書中所闡述之標的物之一項發明性態樣體現在系統及方法中,該等系統及方法包含基於利用至少一個頁表查核器對一頁表進行之一掃描而判定是否針對該頁表之每一頁表項設定一存取位元,該存取位元指示在上一掃描週期中是否在一主記憶體處存取了與該頁表項相關聯之一頁;回應於判定未針對與該頁相關聯之該頁表項設定該存取位元而遞增該主記憶體中之每一頁之一主要計數;在判定是否針對每一頁表項設定該存取位元之後,重設該存取位元;基於一主目錄代理程式接收到存取一次要記憶體中之一頁之一請求而判定該次要記憶體中之該頁是否經存取;回應於基於該主目錄代理程式接收到存取該次要記憶體中之該頁之一請求而判定該次要記憶體中之該頁已經存取,遞增該次要記憶體中之每一頁之一次要計數;基於該次要計數而將該次要記憶體中之一特定頁識別為經頻繁存取的;及將識別為經頻繁存取之該特定頁自該次要記憶體遷移至該主記憶體。 本說明書中所闡述之標的物之另一態樣可體現在系統及方法中,該等系統及方法包含基於該主要計數而將該主記憶體中之一特定頁識別為非經頻繁存取的;及將識別為非經頻繁存取之該特定頁自該主記憶體遷移至該次要記憶體。另外,遷移識別為非經頻繁存取之該特定頁包含:使與該特定頁相關聯之該頁表項無效;針對與該特定頁相關聯之任何項執行一轉譯後備緩衝器終止;及將該特定頁自該主記憶體傳送至該次要記憶體。 在特定實施方案中,藉由以下各項中之至少一者來維持該主記憶體中之每一頁之該主要計數及該次要記憶體中之每一頁之該次要計數中之每一者:儲存於靜態隨機存取記憶體中的每一頁之一計數器、計數布隆過濾器或儲存於動態隨機存取記憶體中的每一頁之一計數器。 在特定實施方案中,基於該主要計數而將該主記憶體中之一特定頁識別為非經頻繁存取的包含判定用於該特定頁之一存取間時間(inter‑access time)滿足一存取間時間臨限值。另外,在特定實施方案中,回應於用於該特定頁之該存取間時間滿足該存取間時間臨限值之判定而將識別為非經頻繁存取之該特定頁自該主記憶體遷移至該次要記憶體。 本說明書中所闡述之標的物之一項發明性態樣體現在系統、方法及設備中,該等系統、方法及設備包含接收自一主記憶體存取一資料頁之一第一快取行之一請求,及判定該第一快取行未儲存於該主記憶體中而是儲存於一次要記憶體中。回應於該第一快取行未儲存於該主記憶體中而是儲存於一次要記憶體中之判定,將該資料頁之該第一快取行自該次要記憶體傳送至該主記憶體而無需傳送整個該資料頁,其中該資料頁之一剩餘部分保持儲存於該次要記憶體中;更新與該資料頁相關聯之一頁表項以指向該主記憶體中之該資料頁之一位置;及將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體。 在特定實施方案中,在將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體時實施一快取一致性機制以服務於對該資料頁之一第二快取行之一存取。 在特定實施方案中,該快取一致性機制藉由一快取代理程式發出對該資料頁中之快取行之所有權之一請求,及回應於每一快取行自該次要記憶體被傳送至該主記憶體而釋放該快取行之所有權。 在特定實施方案中,該等系統、方法及設備包含將該資料頁之快取行儲存於該快取代理程式之快取記憶體中。在特定實施方案中,該等系統、方法及設備包含儲存與該資料頁之快取行相關聯之標籤及一致性狀態位元。 本說明書中所闡述之標的物之另一態樣可體現在系統、方法及設備中,該等系統、方法及設備包含回應於在傳送該資料頁之該剩餘部分之同時存取該資料頁之該第二快取行一請求,辨識對該第二快取行之一窺探請求,且一旦自該次要記憶體傳送該第二快取行便回應於該窺探請求而傳回該第二快取行。 本說明書中所闡述之標的物之又一態樣可體現在系統、方法及設備中,該等系統、方法及設備包含若該主記憶體無法接收一頁傳送,則判定儲存於該主記憶體中之一最少使用頁中之一者且將該等最少使用頁中之該一者釋放至該次要記憶體中,且將該資料頁自該次要記憶體傳送至該主記憶體的該等最少使用頁中之該所釋放一者之該位置處。 此等態樣之其他實施例包含經組態以執行編碼於電腦存儲裝置上之方法之動作之對應系統、設備及電腦程式。 本說明書中所闡述之標的物之特定實施例可經實施以便實現以下優點中之一或多者。舉例而言,藉由硬體判定之記憶體中之頁之使用或存取統計資料可比涉及軟體及取樣技術之當前方法更精確且準確。此外,藉由首先傳送請求存取之一特定快取行,而非全部資料頁,可減少由回應於存取一頁之一請求而傳送該頁而導致之延遲,此可使得較快地執行正在執行之應用程式或程序。 附圖及以下說明中陳述本發明之一或多項實施例之細節。本發明之其他特徵及優點將依據說明、圖式及申請專利範圍而變得顯而易見。
新的非揮發性記憶體技術可經由一記憶體或IO匯流排本端地存取或經由一高速度網路遠端地存取。此等技術之效能具有兩個顯著影響:首先,其足夠快使得用以存取其之軟體開銷必須最小;及其次,其足夠緩慢使得DRAM可通常用作一快取記憶體。為利用此等類型之非揮發性記憶體之優點,需要明確地管理資料放置之應用程式或系統必須提供在記憶體之不同部分之間通透地移動資料之自動管理。 因此,本發明之實施例提供用於一次要記憶體之高效能自動管理之一系統,該系統經由一記憶體或IO匯流排本端地可用或經由一網路遠端地可用。次要記憶體可係本質上非揮發性且持久性之電腦記憶體。該次要記憶體不可由處理器直接存取且可比主要或主記憶體慢。主記憶體(亦稱為主要記憶體、主要儲存器、內部記憶體或第一層列記憶體)可係可供CPU直接存取的。如下文更詳細闡述,硬體利用現代基於處理器之系統中之快取一致性協議及互連來減少存取延遲並維持一致性。另外,一最佳化核心驅動器(舉例而言)可提供至記憶體之第二層列之一快速路徑且處置與記憶體管理硬體之所有通信。與透過核心來分頁從而引發用於諸如同步化、記憶體管理及區塊IO傳送之事項之大成本的現有路徑相比,彼程序係有利的。 下文更詳細地闡述此等特徵及額外特徵。 圖1繪示根據本發明之實施方案之包含一記憶體裝置之一系統100之一實例。一中央處理單元(CPU) 110可與一DRAM 120及一記憶體管理單元(MMU) 150通信。系統100可進一步包含可透過一網路存取之遠端記憶體130。在記憶體之管理中,一快取代理程式140及一主目錄代理程式145可與MMU 150一起操作。術語快取代理程式係指儲存快取資料且可起始記憶體請求之一處理單元代理程式。換言之,術語快取代理程式可表示可向一致性記憶體中起始交易且可將複本存留於其自身之快取結構中之一實體。主目錄代理程式145可係(舉例而言)一記憶體控制器。術語主目錄代理程式係指監督或擁有記憶體之一區域或部分之一處理單元代理程式。換言之,術語主目錄代理程式可表示修復一致交易、監督一致性記憶體之一部分及/或管理可在不同快取代理程式當中發生之衝突之一實體。另外,一頁表查核器160及一轉譯後備緩衝器(TLB) 165可係MMU 150之部分或可利用MMU 150實施。 MMU 150係可具有通過其之記憶體參考之一硬體單元,該硬體單元執行虛擬記憶體位址至實體位址之轉譯並處置快取控制。舉例而言,MMU 150可將一頁表用作每頁含有一個頁表項(PTE)之一記憶體中表以將虛擬頁碼映射至主記憶體中之實體頁碼。轉譯後備緩衝器165 (作為PTE之一相聯快取記憶體)可用於避免在每次映射一虛擬位址時存取主記憶體之必要性。在一PTE禁止對一虛擬頁存取之情況下,(舉例而言)由於無實體隨機存取記憶體被分配至彼虛擬頁,因此MMU 150可將一頁錯誤用信號發送至CPU 110。參考圖1,系統100可另外包含非揮發性記憶體180,且可視情況包含私用DRAM 170。 圖2繪示根據本發明之實施方案之包含一記憶體裝置之一系統200之一實例。系統200可包含一CPU 210及一DRAM 220。系統200可進一步包含一直接記憶體存取(DMA)引擎230及一次要儲存器240。CPU 210、DRAM 220、DMA引擎230及次要儲存器240可經由一或多個匯流排215、225或其他資料通信構件進行資料通信。 在操作中,DMA引擎230可用於修復頁錯誤,處置寫回或頁遷移。次要儲存器240可係充當第二層列記憶體之一記憶體裝置,該記憶體裝置不可直接由CPU 210存取。DMA引擎230可直接連接至CPU 210或可係分離實體之部分,諸如一快取代理程式。當CPU 210試圖存取來自DRAM 220 (如主記憶體,亦即,第一層列記憶體或主要記憶體之一頁且彼頁頁出且存在於次要儲存器240中時可發生一頁錯誤。頁錯誤可指示操作系統(OS)需要將頁自次要儲存器240移動至主記憶體DRAM 220。根據本文中所闡述之實施例,硬體DMA引擎230管理頁錯誤,偵測存取未在主記憶體DRAM 220中之頁之嘗試。作為回應,在頁錯誤被修復時,執行緒之執行停止。然後可釋放執行緒以存取主記憶體DRAM 220且繼續執行。 以彼方式,硬體可藉由使用DMA引擎230修復頁錯誤來起始頁傳送。因此,存在用以在修復頁錯誤、寫回已變更頁及遷移頁中加速頁傳送之一可程式化DMA引擎230。DMA引擎230可管理多個並行請求之修復。DMA引擎230請求可使用一低開銷命令起始且完成並經由一個一致性互連回應介面,該一致性互連可係共用記憶體之一互連。DMA引擎230可經組態以成為採用一記憶體一致性協議之一致性記憶體之一使用者,使得DMA引擎230可直接將資料傳送至處理器或CPU 210之最後層級快取記憶體中。 圖3A繪示根據本發明之實施方案之用於處置一頁錯誤之一程序300之一實例的一流程圖。如上文所闡述,當一執行緒或運行程式存取映射至虛擬位址空間中但實際上並未載入至主記憶體中之一記憶體頁時可發生一頁錯誤。處理器之MMU 150可偵測頁錯誤。當在310處偵測到頁錯誤時,在320處可關於是否存在一自由頁做出一判定。若存在一自由頁,即「是」,則在330處可將頁資料自次要儲存器或備份儲存區複製至自由頁位置。若不存在一自由頁,即「否」,則在360處可自可追蹤一佇列中之記憶體中之所有頁之FIFO佇列拉取一頁,其中最新到達者位於後面且最早到達者位於前面。若彼頁已變更(亦即,已經修改),則在370處系統可將該頁寫入至次要記憶體或備份儲存區。在將頁自主記憶體傳送至次要記憶體時,在380處可使與該頁相關聯之頁表項無效,且可針對與該頁相關聯之任何項執行一TLB終止(例如)致使其他處理器之TLB項被清除。在彼頁現在自由之情況下,在330處可將頁資料自次要儲存器或備份儲存區複製至自由頁位置。在340處可更新頁表以藉由更新與頁相關聯之PTE使其指向頁之主記憶體中之位置來創建一有效PTE。一旦頁錯誤被處置,便可在350處重新開始執行緒或運行程式。 圖3B繪示根據本發明之實施方案之一寫回執行緒之一程序350之一實例的一流程圖。在315處喚醒之後旋即便可關於自由頁之數目是否滿足頁之一臨限數目做出一判定,該臨限數目可係給出架構經組態以處置之頁之任何數目。舉例而言,在325處,可關於自由頁之數目是否小於或等於一臨限值做出一判定。若自由頁之數目不滿足臨限值(「否」) (例如,大於臨限值),則在335處執行緒可休眠。然而,若在325處判定自由頁之數目滿足臨限值(「是」),則在345處系統可判定FIFO佇列中之下一頁。若彼頁已變更(亦即,已經修改),則在370處系統可將該頁寫入至次要記憶體或備份儲存區。在將頁自主記憶體傳送至次要記憶體時,在380處可使與該頁相關聯之頁表項無效,且可針對與該頁相關聯之任何項執行一TLB終止。在彼頁現在自由之情況下,在325處可關於自由頁之數目是否滿足臨限值再一次做出一判定。 頁表掃描(亦即,遍曆頁表之一掃描)可經由硬體來執行而非需要CPU開銷之軟體(其通常導致較慢記憶體存取且處理並丟棄某些原本有用快取資訊)。一般而言,可藉由掃描頁表來判定頁資料之存取頻率(例如,哪一頁資料相對於其他頁資料被頻繁存取及哪一頁資料相對於其他頁資料被不頻繁存取)。映射於頁表中之每一頁(例如,每一PTE)可具有一旗標或存取位元,該旗標或存取位元可在每當存取頁時設定且然後在掃描頁表之後藉由CPU清除。 可藉由擴充頁表查核器或MMU (其可包含一或多個頁表查核器)來實施此硬體,例如,用於讀取頁表及將虛擬實體間轉譯自動載入至TLB中之內建硬體。因此,硬體可係使用處理器中之頁表掃描機制之處理器架構之部分。舉例而言,硬體可實施一常式來掃描穿過一頁表、掃描PTE以判定自上一掃描以來是否在每一PTE處皆已設定一存取位元。可在判定是否已設定存取位元之後清除存取位元,且然後可繼續進行操作直至頁表之下一次掃描為止。掃描可(例如)以掃描之間的一預定時間週期週期性地發生,或掃描可被某些外部事件觸發。每次判定未設定一存取位元或旗標時,可分別針對每一頁遞增一計數。 隨時間過去,可藉由掃描創建一設定檔,且該設定檔指示存取每一頁之頻率及/或最近存取時間。舉例而言,硬體可包含每一頁之一或多個計數器或布隆過濾器以維持使用統計資料(例如,未經設定之存取位元或旗標之計數,或可儲存於記憶體(例如,一個二層級記憶體)中之結果)用以允許排序及過濾,例如,最多及最少使用頁或經較頻繁及經較不頻繁存取之頁。更詳細而言,硬體可維持一每頁計數器以判定一頁之最近存取時間,且在掃描各別PTE時可更新每一計數器。可在晶片上SRAM中提供每頁計數器以用於快速存取。另一選擇係,由於次要記憶體之大小可係大的使得計數器之面積成本較高,因此可使用計數布隆過濾器來維持關於頁之設定之存取統計資料,藉此節省面積。另一選擇係,硬體可使用一小量之私用DRAM或可儲存系統DRAM中之計數器。 在特定實施例中,可利用含於處理器之頁表查核器中或與處理器之頁表查核器緊密耦合之一硬體模組來實施用以收集存取統計資料之頁表掃描,或可在MMU中實施該頁表掃描,此乃因MMU可具有已可用於IO裝置之一或多個頁表查核器。因此,如上文所闡述,彼硬體可掃描頁表且可使用每一PTE之存取位元基於判定自上一掃描以來是否已設定存取位元來判定每一頁各自之年齡。舉例而言,若設定存取位元,則在上一掃描週期內取存了頁;否則若未設定存取位元,則該頁未經存取且可被認為係冷的,例如,在上一掃描週期期間未經存取。有利地,由硬體判定之此等使用或存取統計資料可比涉及軟體及取樣技術之當前方法更精確且準確。 因此,對於主記憶體,可針對每一頁計數未設定存取位元之次數以識別冷頁,其中(舉例而言)針對一頁之計數越高,頁越冷。當存取頁且設定存取位元時可將計數重設為0。可週期性地掃描頁表以偵測存取位元之改變,且可在每次掃描時清除所有存取位元。因此,計數可表示頁之年齡,亦即,該頁已多長時間未經存取。 如上文所闡述,DMA引擎230可用於修復頁錯誤。在特定實施例中,存取統計資料可用於判定一頁傳送之目的地或用於判定可經實施以識別傳送哪些頁及傳送彼等頁之時間之一原則。舉例而言,基於存取統計資料,該等頁可自最常使用至最少使用排序或反之亦然。當使用DMA引擎230修復頁錯誤時,若主記憶體DRAM 220中不存在自由頁,則一硬體輔助分頁程序可將最少使用頁中之一者釋放或寫回至次要記憶體中且可使用彼最少使用頁之位置來將新的頁傳送至主記憶體中。 圖4繪示根據本發明之實施方案之用於利用硬體判定一頁之一使用頻率且使用一DMA引擎修復一頁錯誤之一程序400之一實例之一流程圖。程序400包含在410處使用處理器基於利用一頁表掃描器對一頁表進行之一掃描而判定是否針對該頁表之每一PTE設定一存取位元。舉例而言,可修改處理器之至少一個頁表查核器以針對是否設定存取位元掃描頁表。舉例而言,可將一執行緒添加至頁表查核器以掃描頁表或可藉由硬體獨立於頁表查核器完成掃描。存取位元可指示在上一掃描週期(例如,頁表之上一掃描與當前掃描之間)內是否存取了與PTE相關聯之一頁。 在420處,可回應於判定未針對與該頁相關聯之PTE設定存取位元而遞增每一頁之一計數。在430處,在判定是否針對每一PTE設定存取位元之後處理器可重設存取位元。可藉由儲存於靜態隨機存取記憶體中的每一頁之一計數器來維持每一頁之計數或計數布隆過濾器可維持關於頁之設定之存取統計資料。另一選擇係,可將每一頁之一計數器儲存於動態隨機存取記憶體(例如,小量私用DRAM)中或系統DRAM中。 在440處,程序400可進一步包含接收自主記憶體存取一資料頁之一請求。在450處,可基於請求存取之資料頁未儲存於主記憶體中之判定而起始一頁錯誤。在460處,一頁錯誤處置器可偵測頁錯誤且可使用DMA引擎230修復頁錯誤。 舉例而言,在470處,若主記憶體不具有一自由頁且無法接收頁傳送,則可基於每一頁之計數判定主記憶體中之一特定頁(例如,主記憶體中之最少使用頁中之一者)。在470處,DMA引擎230可管理頁傳送且可將該等頁中之所判定一者釋放或寫回至次要記憶體中。此外,在470處,可將請求存取之資料頁自次要記憶體傳送至主記憶體、最少使用頁中之所釋放一者之位置處。另一選擇係,在480處,若主記憶體具有一自由頁且可接收頁傳送,則DMA引擎230可管理頁資料自次要記憶體至主記憶體之傳送。 在特定實施例中,當起始頁錯誤時,執行緒或運行程式之執行可停止同時DMA引擎230管理資料傳送以修復頁錯誤,如上文所闡述。在頁錯誤被修復之後,可釋放執行緒以存取主記憶體中之頁。 並非藉由存取資料之一IO請求並起始一頁錯誤以自次要記憶體傳送頁資料,而是在某些系統中,次要記憶體可由處理器使用頁遷移藉助載入及儲存直接存取。在此等系統中,可不需要以頁粒度存取資料。然而,其可有益於利用上文所闡述之使用或存取統計資料基於資料是「熱」還是「冷」(亦即,最近存取時間、頻繁存取之程度,或再次存取之可能性)來自動遷移資料。 一般而言,利用一快取一致性架構之特徵,其中次要記憶體中之資料可與負責實體位址空間之一區域(例如,該區域中之所有次要記憶體)之一主目錄代理程式145相關聯,主目錄代理程式145可識別對主目錄代理程式所負責之記憶體之每次存取且可使用彼識別來維持存取統計資料。與次要記憶體相關聯之主目錄代理程式145可維持關於正在存取哪些頁及存取彼等頁之時間之資料。基於存取頻率(例如,存取頻率是否滿足一臨限值)主目錄代理程式145可判定:可將經頻繁存取之資料自次要記憶體傳送至主記憶體DRAM 120。 為執行彼遷移,有利的係不僅判定次要記憶體中之哪些頁變「熱」(亦即,存取頻率之一增加),且亦判定主記憶體DRAM中之哪些頁變「冷」(亦即,存取頻率之一減小)。換言之,判定可比主記憶體慢之次要記憶體中之哪些頁被較頻繁存取,及主記憶體中之哪些頁被較不頻繁存取。上文闡述用以參考主記憶體DRAM之使用或存取統計資料基於(舉例而言)未經設定之存取位元之一計數來判定主記憶體中之哪些頁被較不頻繁存取之一個程序。系統可基於上文針對主記憶體闡述之存取統計資料來判定何時將資料自主記憶體DRAM移動至次要記憶體及何時將資料自次要記憶體移動至主記憶體DRAM且利用關聯至次要記憶體之主目錄代理程式來判定次要記憶體之存取統計資料。 因此,硬體可判定何時在主記憶體(例如,DRAM 220)與次要記憶體(例如,次要儲存器240)之間遷移頁。舉例而言,硬體可使用快取一致性訊息與主目錄代理程式及PTE與存取位元之一組合來判定資料之「溫度」,亦即,特定資料「熱」或頻繁存取之程度及特定資料「冷」或不頻繁存取之程度。因此,具有增加之存取頻率之一速率之頁自次要記憶體遷移至主記憶體。如上文所闡述,可藉由硬體來判定「暖」或較頻繁存取之彼等頁,該硬體經由偵測此等存取之主目錄代理程式(此乃因實體位址範圍由主目錄代理程式擁有)來監測對次要記憶體之記憶體存取。基於彼等所判定存取,可將一每頁存取計數器維持於(舉例而言)晶片上SRAM中。另一選擇係,由於次要記憶體之大小可係大的從而使得計數器硬體面積成本較高,因此可使用計數布隆過濾器來維持頁之設定之存取統計資料,藉此節省面積。另一選擇係,硬體可使用小量之私用DRAM或可將計數器儲存於系統DRAM中。 另外,如上文更詳細地闡述,可藉由監測PTE來判定冷卻或被較不頻繁存取之頁。舉例而言,當用於一頁之存取間時間滿足一存取間時間臨限值時,系統可藉由以下操作起始頁自主記憶體DRAM至次要記憶體之傳送:使與頁相關聯之PTE無效、針對與頁相關聯之任何項執行一TLB終止及將頁自主記憶體DRAM傳送至次要記憶體中。 圖5繪示根據本發明之實施方案之用於利用硬體判定一頁之一使用頻率且基於所判定使用執行頁遷移之一程序500之一實例的一流程圖。在510處,程序500包含基於利用處理器之一頁表掃描器對一頁表進行之一掃描來判定是否針對該頁表每一PTE設定一存取位元。存取位元可指示在上一掃描週期(例如,頁表之上一掃描與當前掃描之間)內是否對與PTE相關聯之一頁進行了存取。在520處,可回應於判定未針對與該頁相關聯之PTE設定存取位元而遞增主記憶體中之每一頁之一計數。另一選擇係,可回應於判定針對與頁相關聯之PTE設定存取位元而遞增主記憶體中之每一頁之一計數。在530處,在判定是否針對每一PTE設定存取位元之後處理器可重設存取位元。可藉由儲存於靜態隨機存取記憶體中的每一頁之一計數器來維持主記憶體中之每一頁之計數或計數布隆過濾器可維持關於頁之設定之存取統計資料。另一選擇係,可將每一頁之一計數器儲存於動態隨機存取記憶體(例如,小量私用DRAM)中或系統DRAM中。 在540處,程序500可進一步包含基於一主目錄代理程式接收到存取一次要記憶體中之一頁之一請求而判定該次要記憶體中之該頁是否經存取。另外,在540處,回應於基於接收存取該次要記憶體中之該頁之一請求之該主目錄代理程式的該次要記憶體中之頁已經存取之判定而遞增該次要記憶體中之每一頁之一計數。在550處,基於彼計數,可將次要記憶體中之一頁識別為經頻繁存取的。且在550處,可將識別為經頻繁存取之彼頁自次要記憶體遷移至主記憶體。在特定實施例中,可將頁之群組或記憶體之部分識別為經頻繁存取的且將其自次要記憶體遷移至主記憶體。 在560處,程序500可進一步包含基於主記憶體中之每一頁之計數而將主記憶體中之一頁識別為非經頻繁存取的。在560處,可將識別為非經頻繁存取之彼頁自主記憶體遷移至次要記憶體。在特定實施例中,可將頁之群組或記憶體之部分識別為非經頻繁存取的且將其自主記憶體遷移至次要記憶體。在560處,基於計數而將主記憶體中之一頁識別為非經頻繁存取的可包含判定頁之一存取間時間(亦即,存取之間的一時間)滿足一存取間時間臨限值,例如,頁之存取間時間大於(或大於或等於)一存取間時間臨限值。因此,回應於頁或頁之群組之存取間時間滿足存取間時間臨限值之判定而將可將識別為非經頻繁存取之頁或頁之群組自主記憶體遷移至次要記憶體。 在560處,遷移識別為非經頻繁存取之頁之程序可包含使與頁或頁之群組相關聯之一或多個PTE無效、針對與頁或頁之群組相關聯之任何項執行一轉譯後備緩衝器終止及將頁或頁之群組自主記憶體傳送至次要記憶體。可藉由儲存於靜態隨機存取記憶體中的每一頁之一計數器來維持次要記憶體中之每一頁之計數或計數布隆過濾器可維持關於頁之設定之存取統計資料。另一選擇係,可將每一頁之一計數器儲存於動態隨機存取記憶體(例如,小量私用DRAM)中或系統DRAM中。 如上文所論述,舉例而言,當一應用程式試圖存取記憶體(例如,一頁)且該頁不存在於主記憶體中時發生一頁錯誤。該頁錯誤可觸發整個頁自次要記憶體至主記憶體DRAM之一傳送且然後可繼續執行應用程式。然而,彼程序可在讀取頁之資料時致使一延遲。舉例而言,對於一4KB大小之頁可傳送整個4KB,此可在讀取4KB之資料時致使一延遲。根據本文中所闡述之實施例,可有利地減少彼延遲,此可使得較快地執行正在執行之應用程式或程序。 系統識別應用程式試圖存取之哪一快取行(例如,資料區塊)且最初僅將彼快取行自次要記憶體傳送至主記憶體,而非傳送整個頁(例如,上文之實例中之整個4KB)。在傳送請求存取之快取行之情況下,應用程式可執行其對彼資料之讀取或寫入並繼續運行。在不傳送整個頁之情況下將關鍵快取行傳送之後,可在後臺中傳送頁之剩餘部分(例如,4KB之剩餘部分)。 在特定實施例中,可將關鍵快取行提供至CPU,且可使用快取一致性機制或協議。此程序達成用於處置頁錯誤之較快效能。舉例而言,在操作中,一應用程式可僅請求自頁存取一個或兩個快取行,且可提供關鍵快取行而無需等待傳送整個頁。在應用程式提供所請求資料(例如,關鍵快取行)之後,可然後在後臺中傳送頁之剩餘部分以繼續其執行。 因此,首先藉由硬體遞送關鍵快取行可減小頁錯誤延遲。硬體可將所請求快取行自次要記憶體傳送至(舉例而言)處理器之快取記憶體及主機DRAM。因此,可在所請求頁中之快取行之剩餘部分被傳送之前提供所請求之資料。此外,舉例而言,一定製頁錯誤處置器或硬體可將PTE更新以指向主機DRAM中之新的頁。因此,其他處理器可在快取行實際存在於主記憶體中之前存取頁中之彼等快取行。 在特定實施例中,為維持記憶體之一個一致意圖,快取代理程式140可對頁中之快取行執行一所有權請求(RFO)以在發生頁傳送時排他性地保持該等快取行。在硬體完成傳送一快取行之後,快取代理程式140可釋放彼快取行之所有權使得可自主機之快取記憶體或主機DRAM服務於未來之請求。此外,舉例而言,當主機試圖在頁正被傳送時存取該頁中之其他快取行中之一者時,硬體可根據快取一致性機制辨識對彼其他快取行之一窺探請求(例如,一處理器間快取一致性操作),且一旦自次要記憶體傳送其他快取行便可回應於窺探請求而提供其他快取行。 在特定實施例中,硬體可並不實際上將正在轉變中之頁之快取行儲存於快取代理程式之快取記憶體中。而是,可儲存彼等線之標籤及一致性狀態位元,且然後可轉發關於來自主機DRAM或來自較慢記憶體之一請求之資料。在任一配置中,可減少快取正在傳送之頁所需之晶片上SRAM。 圖6繪示根據本發明之實施方案之用於藉由首先傳送一關鍵快取行來處置一頁錯誤之一程序600之一實例之一流程圖。在610處,程序600可包含接收自一主記憶體存取一資料頁之一快取行之一請求。在620處,可作出一判定:所請求快取行並不儲存於主記憶體中,而是可儲存於次要記憶體中。在630處,可將來自次要記憶體之資料頁之所請求快取行(例如,資料區塊)傳送至主記憶體而無需傳送整個該資料頁。因此,提供所請求快取行且可將除所請求快取行之外的資料頁之剩餘部分保持儲存於次要記憶體中。 在640處,程序600可進一步包含更新與資料頁相關聯之一PTE以指向主記憶體中之資料頁之一位置。在650處,在回應於存取快取行之請求而提供所請求快取行之後,可在後臺中將資料頁之剩餘部分自次要記憶體傳送至主記憶體。 在特定實施例中,可實施一快取一致性機制,同時在650處將資料頁之剩餘部分自次要記憶體傳送至主記憶體以服務於對與所請求第一快取行不同的資料頁之一第二快取行之一存取。快取一致性機制可包含藉由快取代理程式140發出對資料頁中之快取行之一RFO且回應於每一快取行自該次要記憶體被傳送至該主記憶體而釋放該快取行之所有權。根據快取一致性機制,可將資料頁之快取行儲存於快取代理程式140之快取記憶體中。另一選擇係,可儲存與資料頁之彼等快取行相關聯之標籤及一致性狀態位元。此外,在650處,回應於存取資料頁之第二快取行同時傳送資料頁之剩餘部分之一請求,可辨識對第二快取行之一窺探請求,且一旦自次要記憶體傳送第二快取行便回應於窺探請求而傳回第二快取行。若主記憶體無法接收一頁傳送(例如,不存在自由頁),可基於上文所闡述之使用統計資料判定儲存於主記憶體中之最少使用頁中之一者,且可釋放最少使用頁中之一者或將其寫回至次要記憶體中。因此,可將資料頁自次要記憶體傳送至主記憶體、最少使用頁中之所釋放一者之位置處。 已闡述若干實施方案。然而,將理解,可在不背離本發明之精神及範疇之情況下做出各種修改。舉例而言,可使用上文所展示之其中重新排序、添加或移除步驟之各種形式之流程。 本說明書中所闡述之本發明及所有功能性操作之實施方案可實施於包含本說明書中所揭示之結構及其結構等效形式之數位電子電路、韌體或硬體中,或者實施於其中之一或多者之組合中。本發明之實施方案可實施為一或多個電腦程式產品,亦即,編碼於一電腦可讀媒體上之電腦程式指令之一個或多個模組,以供資料處理設備執行或用以控制資料處理設備之操作。電腦可讀媒體可係一機器可讀儲存裝置、一機器可讀儲存基板或其中之一或多者之一組合。術語「資料處理設備」囊括用於處理資料之所有設備、裝置及機器,以實例之方式包含一可程式化處理器、一電腦或多個處理器或電腦。除硬體之外,設備亦可包含為所討論之電腦程式創建一執行環境之程式碼,例如,構成處理器韌件、一協議堆疊、一資料庫管理系統、一操作系統或其中之一或多者之一組合之程式碼。 雖然本發明含有諸多具體細節,但不應將此等具體細節解釋為對本發明或可主張之範疇之限制,而是應將其解釋為本發明之特定實施方案所特有之特徵之說明。還可將本說明書中在單獨實施方案之內容脈絡中闡述之特定特徵以組合實施於一單個實施方案中。相反地,在一單個實施方案之內容脈絡中闡述之各種特徵亦可單獨地或以任何適合子組合實施於多個實施方案中。此外,儘管上文可將特徵闡述為以特定組合起作用且甚至最初主張如此,但在某些情形中來自一所主張組合之一或多個特徵可自該組合去除,且該所主張組合可係針對於一子組合或一子組合之變化形式。 類似地,雖然在該等圖式中以一特定次序繪示操作,但不應將此理解為要求以所展示之特定次序或以順序次序執行此等操作或執行全部所圖解說明之操作以達成期望結果。在特定情況中,多任務及並行處理可係有利的。此外,上文所闡述之實施方案中之各種系統組件之分離不應被理解為需要在所有實施方案中進行此分離,而應理解為所闡述之程式組件及系統通常可一起整合於一單個軟體產品中或封裝至多個軟體產品中。 因此,已闡述本發明之特定實施方案。因此,其他實施方案在以下申請專利範圍之範疇內。舉例而言,申請專利範圍中所引用之行動可以一不同次序來執行且仍達成期望結果。已闡述若干實施方案。然而,將理解,可在不背離本發明之精神及範疇之情況下做出各種修改。舉例而言,可使用上文所展示之其中重新排序、添加或移除步驟之各種形式之流程。因此,其他實施方案在以下申請專利範圍之範疇內。
100‧‧‧系統
110‧‧‧中央處理單元
120‧‧‧動態隨機存取記憶體
130‧‧‧遠端記憶體
140‧‧‧快取代理程式
145‧‧‧主目錄代理程式
150‧‧‧記憶體管理單元
160‧‧‧頁表查核器
165‧‧‧轉譯後備緩衝器
170‧‧‧私用動態隨機存取記憶體
180‧‧‧非揮發性記憶體
200‧‧‧系統
210‧‧‧中央處理單元
215‧‧‧匯流排
220‧‧‧動態隨機存取記憶體/主記憶體動態隨機存取記憶體
225‧‧‧匯流排
230‧‧‧直接記憶體存取引擎/硬體直接記憶體存取引擎/可程式化直接記憶體存取引擎
240‧‧‧次要儲存器
300‧‧‧程序
305‧‧‧步驟
310‧‧‧步驟
315‧‧‧步驟
320‧‧‧步驟
325‧‧‧步驟
330‧‧‧步驟
335‧‧‧步驟
340‧‧‧步驟
345‧‧‧步驟
350‧‧‧步驟
355‧‧‧步驟
360‧‧‧步驟
365‧‧‧步驟
370‧‧‧步驟
380‧‧‧步驟
400‧‧‧程序
410‧‧‧步驟
420‧‧‧步驟
430‧‧‧步驟
440‧‧‧步驟
450‧‧‧步驟
460‧‧‧步驟
470‧‧‧步驟
480‧‧‧步驟
500‧‧‧程序
510‧‧‧步驟
520‧‧‧步驟
530‧‧‧步驟
540‧‧‧步驟
550‧‧‧步驟
560‧‧‧步驟
600‧‧‧序
610‧‧‧步驟
620‧‧‧步驟
630‧‧‧步驟
640‧‧‧步驟
650‧‧‧步驟
圖1繪示根據本發明之實施方案之包含一記憶體裝置之一系統之一實例。 圖2繪示根據本發明之實施方案之包含一記憶體裝置之一系統之一實例。 圖3A繪示根據本發明之實施方案之用於處置一頁錯誤之一程序之一實例的一流程圖。 圖3B繪示根據本發明之實施方案之一寫回執行緒之一程序之一實例的一流程圖。 圖4繪示根據本發明之實施方案之用於利用硬體判定一頁之一使用頻率且使用一DMA引擎修復一頁錯誤之一程序之一實例之一流程圖。 圖5繪示根據本發明之實施方案之用於利用硬體判定一頁之一使用頻率且基於所判定使用執行頁遷移之一程序之一實例的一流程圖。 圖6繪示根據本發明之實施方案之用於藉由首先傳送一關鍵快取行來處置一頁錯誤之一程序之一實例之一流程圖。 各圖式中,相同之參考編號及名稱指示相同元件。

Claims (37)

  1. 一種電腦實施之方法,其包括:利用一處理器基於使用一頁表掃描器對一頁表(page table)進行之一掃描而判定是否針對該頁表之每一頁表項(entry)設定一存取位元,該存取位元指示在上一掃描週期中是否存取了與該頁表項相關聯之一頁;回應於判定與該頁相關聯之該頁表項之該存取位元指示在該上一掃描週期中與該頁表項相關聯之該頁未被存取而遞增每一頁之一計數;在利用該處理器判定是否針對每一頁表項設定該存取位元之後,重設該存取位元;接收自一主記憶體存取一第一資料頁之一請求;基於判定該第一資料頁未儲存於該主記憶體中而起始一頁錯誤;及使用一直接記憶體存取(DMA)引擎來修復(servicing)該頁錯誤,其中使用一DMA引擎來修復該頁錯誤包括:回應於判定該主記憶體無法接收一頁傳送,基於每一頁之該計數判定一特定頁且將該特定頁釋放至次要記憶體中,並將該第一資料頁自該次要記憶體傳送至該主記憶體的該所釋放特定頁之位置處。
  2. 如請求項1之方法,其中基於每一頁之該計數而將該特定頁判定為最少使用頁中之一者。
  3. 如請求項1之方法,其中起始該頁錯誤包括在該頁錯誤被修復時停止一執行緒之執行;及在該頁錯誤被修復之後釋放該執行緒以存取該主記憶體。
  4. 如請求項1之方法,其中藉由以下各項中之至少一者來維持每一頁之該計數:儲存於靜態隨機存取記憶體中的每一頁之一計數器、計數布隆過濾器或儲存於動態隨機存取記憶體中的每一頁之一計數器。
  5. 一種系統,其包括:一或多個處理器;及一記憶體,其包括一主記憶體及一次要記憶體,該記憶體儲存在執行時可操作以致使該一或多個處理器執行包括以下各項之操作之指令:利用一處理器基於使用一頁表掃描器對一頁表進行之一掃描而判定是否針對該頁表之每一頁表項設定一存取位元,該存取位元指示在上一掃描週期中是否存取了與該頁表項相關聯之一頁;回應於判定與該頁相關聯之該頁表項之該存取位元指示在該上一掃描週期中與該頁表項相關聯之該頁未被存取而遞增每一頁之一計數;在利用該處理器判定是否針對每一頁表項設定該存取位元之後,重設該存取位元;接收自一主記憶體存取一第一資料頁之一請求;基於該第一資料頁未儲存於該主記憶體中之判定而起始一頁錯誤;及使用一直接記憶體存取(DMA)引擎來修復該頁錯誤,其中使用一DMA引擎來修復該頁錯誤包括:回應於判定該主記憶體無法接收一頁傳送,基於每一頁之該計數判定一特定頁且將該特定頁釋放至該次要記憶體中,並將該第一資料頁自該次要記憶體傳送至該主記憶體的該所釋放特定頁之位置處。
  6. 如請求項5之系統,其中基於每一頁之該計數而將該特定頁判定為最少使用頁中之一者。
  7. 如請求項5之系統,其中起始該頁錯誤包括在該頁錯誤被修復時停止一執行緒之執行;及在該頁錯誤被修復之後釋放該執行緒以存取該主記憶體。
  8. 如請求項5之系統,其中藉由以下各項中之至少一者來維持每一頁之該計數:儲存於靜態隨機存取記憶體中的每一頁之一計數器、計數布隆過濾器或儲存於動態隨機存取記憶體中的每一頁之一計數器。
  9. 一種電腦實施之方法,其包括:基於利用至少一個頁表查核器(walker)對一頁表進行之一掃描而判定是否針對該頁表之每一頁表項設定一存取位元,該存取位元指示在上一掃描週期中是否在一主記憶體處存取了與該頁表項相關聯之一頁;回應於判定與該頁相關聯之該頁表項之該存取位元指示在該上一掃描週期中與該頁表項相關聯之該頁未被存取而遞增該主記憶體中之每一頁之一主要計數;在判定是否針對每一頁表項設定該存取位元之後,重設該存取位元;基於一主目錄代理程式(home agent)接收到存取一次要記憶體中之一頁之一請求而判定該次要記憶體中之該頁是否經存取;回應於基於該主目錄代理程式接收到存取該次要記憶體中之該頁之一請求而判定該次要記憶體中之該頁已經存取,遞增該次要記憶體中之每一頁之一次要計數;基於該次要計數而將該次要記憶體中之一特定頁識別為經頻繁存取的;及將識別為經頻繁存取之該特定頁自該次要記憶體遷移至該主記憶體。
  10. 如請求項9之方法,其進一步包括:基於該主要計數而將該主記憶體中之一特定頁識別為非經頻繁存取的;及將識別為非經頻繁存取之該特定頁自該主記憶體遷移至該次要記憶體。
  11. 如請求項10之方法,其中遷移識別為非經頻繁存取之該特定頁包括:使與該特定頁相關聯之該頁表項無效;針對與該特定頁相關聯之任何項執行一轉譯後備緩衝器終止;及將該特定頁自該主記憶體傳送至該次要記憶體。
  12. 如請求項9之方法,其中藉由以下各項中之至少一者來維持該主記憶體中之每一頁之該主要計數及該次要記憶體中之每一頁之該次要計數中之每一者:儲存於靜態隨機存取記憶體中的每一頁之一計數器、計數布隆過濾器或儲存於動態隨機存取記憶體中的每一頁之一計數器。
  13. 如請求項10之方法,其中基於該主要計數而將該主記憶體中之一特定頁識別為非經頻繁存取的包括判定用於該特定頁之一存取間時間滿足一存取間時間臨限值。
  14. 如請求項13之方法,其中回應於判定用於該特定頁之該存取間時間滿足該存取間時間臨限值而將識別為非經頻繁存取之該特定頁自該主記憶體遷移至該次要記憶體。
  15. 一種系統,其包括:一或多個處理器;及一記憶體,其包括一主記憶體及一次要記憶體,該記憶體儲存在執行時可操作以致使該一或多個處理器執行包括以下各項之操作之指令:基於利用至少一個頁表查核器對一頁表進行之一掃描而判定是否針對該頁表之每一頁表項設定一存取位元,該存取位元指示在上一掃描週期中是否在一主記憶體處存取了與該頁表項相關聯之一頁;回應於判定與該頁相關聯之該頁表項之該存取位元指示在該上一掃描週期中與該頁表項相關聯之該頁未被存取而遞增該主記憶體中之每一頁之一主要計數;在判定是否針對每一頁表項設定該存取位元之後,重設該存取位元;基於一主目錄代理程式接收到存取一次要記憶體中之一頁之一請求而判定該次要記憶體中之該頁是否經存取;回應於基於該主目錄代理程式接收到存取該次要記憶體中之該頁之一請求而判定該次要記憶體中之該頁已經存取,遞增該次要記憶體中之每一頁之一次要計數;基於該次要計數而將該次要記憶體中之一特定頁識別為經頻繁存取的;將識別為經頻繁存取之該特定頁自該次要記憶體遷移至該主記憶體。
  16. 如請求項15之系統,該等操作進一步包括:基於該主要計數而將該主記憶體中之一特定頁識別為非經頻繁存取的;及將識別為非經頻繁存取之該特定頁自該主記憶體遷移至該次要記憶體。
  17. 如請求項16之系統,其中遷移識別為非經頻繁存取之該特定頁包括:使與該特定頁相關聯之該頁表項無效;針對與該特定頁相關聯之任何項執行一轉譯後備緩衝器終止;及將該特定頁自該主記憶體傳送至該次要記憶體。
  18. 如請求項15之系統,其中藉由以下各項中之至少一者來維持該主記憶體中之每一頁之該主要計數及該次要記憶體中之每一頁之該次要計數中之每一者:儲存於靜態隨機存取記憶體中的每一頁之一計數器、計數布隆過濾器或儲存於動態隨機存取記憶體中的每一頁之一計數器。
  19. 如請求項16之系統,其中基於該主要計數而將該主記憶體中之一特定頁識別為非經頻繁存取的包括判定用於該特定頁之一存取間時間滿足一存取間時間臨限值。
  20. 如請求項19之系統,其中回應於判定用於該特定頁之該存取間時間滿足該存取間時間臨限值而將識別為非經頻繁存取之該特定頁自該主記憶體遷移至該次要記憶體。
  21. 一種電腦實施之方法,其包括:接收自一主記憶體存取一資料頁之一第一快取行之一請求;判定該第一快取行未儲存於該主記憶體中而是儲存於一次要記憶體中,且作為回應,將該資料頁之該第一快取行自該次要記憶體傳送至該主記憶體而無需傳送整個該資料頁,其中該資料頁之一剩餘部分保持儲存於該次要記憶體中;更新與該資料頁相關聯之一頁表項以指向該主記憶體中之該資料頁之一位置;及將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體以服務於對該資料頁之一第二快取行之一存取,該傳送包括由一快取代理程式發出對該資料頁中之快取行之所有權之一請求,及由該快取代理程式回應於該快取行自該次要記憶體被傳送至該主記憶體而釋放每一快取行之該快取代理程式對該快取行之所有權。
  22. 如請求項21之方法,其中在將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體時實施一快取一致性機制以服務於對該資料頁之該第二快取行之該存取。
  23. 如請求項21之方法,其進一步包括:將該資料頁之快取行儲存於該快取代理程式之快取記憶體中。
  24. 如請求項21之方法,其進一步包括:儲存與該資料頁之快取行相關聯之標籤及一致性狀態位元。
  25. 如請求項21之方法,其進一步包括:回應於在傳送該資料頁之該剩餘部分之同時存取該資料頁之該第二快取行之一請求,辨識對該第二快取行之一窺探請求,且一旦自該次要記憶體傳送該第二快取行便回應於該窺探請求而傳回該第二快取行。
  26. 如請求項21之方法,其進一步包括:若該主記憶體無法接收一頁傳送,則判定儲存於該主記憶體中之一最少使用頁中之一者且將該等最少使用頁中之該一者釋放至該次要記憶體中,且將該資料頁自該次要記憶體傳送至該主記憶體的該等最少使用頁中之該所釋放一者之位置處。
  27. 一種系統,其包括:一或多個處理器;及一或多個儲存裝置,其儲存在由該一或多個處理器執行時可操作以致使該一或多個處理器執行包括以下各項之操作之指令:接收自一主記憶體存取一資料頁之一第一快取行之一請求;判定該第一快取行未儲存於該主記憶體中而是儲存於一次要記憶體中;將該資料頁之該第一快取行自該次要記憶體傳送至該主記憶體而無需傳送整個該資料頁,其中該資料頁之一剩餘部分保持儲存於該次要記憶體中;更新與該資料頁相關聯之一頁表項以指向該主記憶體中之該資料頁之一位置;將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體以服務於對該資料頁之一第二快取行之一存取,該傳送包括由一快取代理程式發出對該資料頁中之快取行之所有權之一請求,及由該快取代理程式回應於該快取行自該次要記憶體被傳送至該主記憶體而釋放每一快取行之該快取代理程式對該快取行之所有權。
  28. 如請求項27之系統,其中在將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體時實施一快取一致性機制以服務於對該資料頁之該第二快取行之該存取。
  29. 如請求項27之系統,該等操作進一步包括:將該資料頁之快取行儲存於該快取代理程式之快取記憶體中。
  30. 如請求項27之系統,該等操作進一步包括:儲存與該資料頁之快取行相關聯之標籤及一致性狀態位元。
  31. 如請求項27之系統,該等操作進一步包括:回應於在傳送該資料頁之該剩餘部分之同時存取該資料頁之該第二快取行之一請求,辨識對該第二快取行之一窺探請求,且一旦自該次要記憶體傳送該第二快取行便回應於該窺探請求而傳回該第二快取行。
  32. 如請求項27之系統,該等操作進一步包括:若該主記憶體無法接收一頁傳送,則判定儲存於該主記憶體中之一最少使用頁中之一者且將該等最少使用頁中之該一者釋放至該次要記憶體中,且將該資料頁自該次要記憶體傳送至該主記憶體的該等最少使用頁中之該所釋放一者之位置處。
  33. 一種電腦可讀儲存裝置,其儲存可由一或多個處理器執行之指令,該等指令在此執行之後旋即致使該一或多個處理器執行包括以下各項之操作:接收自一主記憶體存取一資料頁之一第一快取行之一請求;判定該第一快取行未儲存於該主記憶體中而是儲存於一次要記憶體中;將該資料頁之該第一快取行自該次要記憶體傳送至該主記憶體而無需傳送整個該資料頁,其中該資料頁之一剩餘部分保持儲存於該次要記憶體中;更新與該資料頁相關聯之一頁表項以指向該主記憶體中之該資料頁之一位置;將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體以服務於對該資料頁之一第二快取行之一存取,該傳送包括由一快取代理程式發出對該資料頁中之快取行之所有權之一請求,及由該快取代理程式回應於該快取行自該次要記憶體被傳送至該主記憶體而釋放每一快取行之該快取代理程式對該快取行之所有權。
  34. 如請求項33之電腦可讀儲存裝置,其中在將該資料頁之該剩餘部分自該次要記憶體傳送至該主記憶體時實施一快取一致性機制以服務於對該資料頁之該第二快取行之該存取。
  35. 如請求項33之電腦可讀儲存裝置,該等操作進一步包括:儲存以下各項中之一者:(i)該快取代理程式之快取記憶體中之該資料頁之快取行或(ii)與該資料頁之快取行相關聯之標籤及一致性狀態位元。
  36. 如請求項33之電腦可讀儲存裝置,該等操作進一步包括:回應於在傳送該資料頁之該剩餘部分之同時存取該資料頁之該第二快取行之一請求,辨識對該第二快取行之一窺探請求,且一旦自該次要記憶體傳送該第二快取行便回應於該窺探請求而傳回該第二快取行。
  37. 如請求項33之電腦可讀儲存裝置,該等操作進一步包括:若該主記憶體無法接收一頁傳送,則判定儲存於該主記憶體中之一最少使用頁中之一者且將該等最少使用頁中之該一者釋放至該次要記憶體中,且將該資料頁自該次要記憶體傳送至該主記憶體的該等最少使用頁中之該所釋放一者之該位置處。
TW106127201A 2016-08-12 2017-08-11 混合式記憶體管理 TWI643073B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/235,495 US10152427B2 (en) 2016-08-12 2016-08-12 Hybrid memory management
US15/235,495 2016-08-12
US15/236,171 2016-08-12
US15/236,171 US10037173B2 (en) 2016-08-12 2016-08-12 Hybrid memory management

Publications (2)

Publication Number Publication Date
TW201810057A TW201810057A (zh) 2018-03-16
TWI643073B true TWI643073B (zh) 2018-12-01

Family

ID=60579714

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106127201A TWI643073B (zh) 2016-08-12 2017-08-11 混合式記憶體管理

Country Status (6)

Country Link
US (1) US10037173B2 (zh)
EP (2) EP3282364B1 (zh)
JP (2) JP2018026136A (zh)
CN (2) CN107729168A (zh)
DE (2) DE202017104840U1 (zh)
TW (1) TWI643073B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11733902B2 (en) 2021-04-30 2023-08-22 International Business Machines Corporation Integrating and increasing performance of disaggregated memory in operating systems

Families Citing this family (19)

* Cited by examiner, † Cited by third party
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
WO2020056610A1 (zh) * 2018-09-18 2020-03-26 华为技术有限公司 一种存储装置及电子设备
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
US11436041B2 (en) 2019-10-03 2022-09-06 Micron Technology, Inc. Customized root processes for groups of applications
US11474828B2 (en) 2019-10-03 2022-10-18 Micron Technology, Inc. Initial data distribution for different application processes
US11429445B2 (en) 2019-11-25 2022-08-30 Micron Technology, Inc. User interface based page migration for performance enhancement
KR102400977B1 (ko) 2020-05-29 2022-05-25 성균관대학교산학협력단 프로세서를 통한 페이지 폴트 처리 방법
US11393548B2 (en) 2020-12-18 2022-07-19 Micron Technology, Inc. Workload adaptive scans for memory sub-systems
JP2022161746A (ja) 2021-04-09 2022-10-21 富士通株式会社 情報処理プログラム、情報処理方法、および情報処理装置
CN113311994A (zh) * 2021-04-09 2021-08-27 中企云链(北京)金融信息服务有限公司 一种基于高并发的数据缓存方法
CN114201444B (zh) * 2021-12-06 2023-11-14 海飞科(南京)信息技术有限公司 用于存储管理的方法、介质、程序产品、系统和装置
CN115794397A (zh) * 2022-11-29 2023-03-14 阿里云计算有限公司 冷热页管理加速设备、方法、mmu、处理器及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20030154348A1 (en) * 2002-02-12 2003-08-14 Paul Keltcher Storing data in memory
TW200401187A (en) * 2002-07-12 2004-01-16 Nec Corp Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
TW200705452A (en) * 2005-02-09 2007-02-01 Ibm System and method for recovering from errors in a data processing system
US20140281356A1 (en) * 2013-03-15 2014-09-18 Nvidia Corporation Microcontroller for memory management unit
US20150058522A1 (en) * 2013-08-22 2015-02-26 International Business Machines Corporation Detection of hot pages for partition migration

Family Cites Families (24)

* Cited by examiner, † Cited by third party
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 仮想記憶制御方式
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
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 最適メモリ配置演算装置及び最適メモリ配置方法
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
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
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20030154348A1 (en) * 2002-02-12 2003-08-14 Paul Keltcher Storing data in memory
TW200401187A (en) * 2002-07-12 2004-01-16 Nec Corp Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
TW200705452A (en) * 2005-02-09 2007-02-01 Ibm System and method for recovering from errors in a data processing system
US20140281356A1 (en) * 2013-03-15 2014-09-18 Nvidia Corporation Microcontroller for memory management unit
US20150058522A1 (en) * 2013-08-22 2015-02-26 International Business Machines Corporation Detection of hot pages for partition migration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11733902B2 (en) 2021-04-30 2023-08-22 International Business Machines Corporation Integrating and increasing performance of disaggregated memory in operating systems
TWI823283B (zh) * 2021-04-30 2023-11-21 美商萬國商業機器公司 在作業系統中整合並增加解集記憶體之性能

Also Published As

Publication number Publication date
JP6944983B2 (ja) 2021-10-06
EP3291097A3 (en) 2018-05-30
US20180046411A1 (en) 2018-02-15
CN107729168A (zh) 2018-02-23
JP2018026136A (ja) 2018-02-15
EP3282364B1 (en) 2019-10-09
TW201810057A (zh) 2018-03-16
DE202017104840U1 (de) 2017-12-12
US10037173B2 (en) 2018-07-31
JP2020009492A (ja) 2020-01-16
CN111177030A (zh) 2020-05-19
DE202017104841U1 (de) 2017-11-22
EP3282364A1 (en) 2018-02-14
EP3291097A2 (en) 2018-03-07
CN111177030B (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
TWI643073B (zh) 混合式記憶體管理
US10705975B2 (en) Hybrid memory management
CN109791523B (zh) 支持巨页的内存管理
CN110209601B (zh) 存储器接口
US8782348B2 (en) Microprocessor cache line evict array
US8180981B2 (en) Cache coherent support for flash in a memory hierarchy
US7600077B2 (en) Cache circuitry, data processing apparatus and method for handling write access requests
US7549025B2 (en) Efficient marking of shared cache lines
JP7340326B2 (ja) メンテナンス動作の実行
US6105108A (en) Method and apparatus for releasing victim data buffers of computer systems by comparing a probe counter with a service counter
JP2007200292A (ja) エントリの時間経過によるキャッシュ・エントリの所有権喪失
US20180095887A1 (en) Maintaining cyclic redundancy check context in a synchronous i/o endpoint device cache system
JP7517799B2 (ja) インメモリコンピューティングのための大容量メモリシステム
US20140006716A1 (en) Data control using last accessor information
US10754791B2 (en) Software translation prefetch instructions
US7774552B1 (en) Preventing store starvation in a system that supports marked coherence
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ