TWI533127B - 記憶體模組上之資料管理技術 - Google Patents

記憶體模組上之資料管理技術 Download PDF

Info

Publication number
TWI533127B
TWI533127B TW103123468A TW103123468A TWI533127B TW I533127 B TWI533127 B TW I533127B TW 103123468 A TW103123468 A TW 103123468A TW 103123468 A TW103123468 A TW 103123468A TW I533127 B TWI533127 B TW I533127B
Authority
TW
Taiwan
Prior art keywords
nvm
data
memory
address
memory module
Prior art date
Application number
TW103123468A
Other languages
English (en)
Other versions
TW201516679A (zh
Inventor
葛雷格B 雷斯阿特瑞
安德魯R 威爾勒
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
Application filed by 惠普發展公司有限責任合夥企業 filed Critical 惠普發展公司有限責任合夥企業
Publication of TW201516679A publication Critical patent/TW201516679A/zh
Application granted granted Critical
Publication of TWI533127B publication Critical patent/TWI533127B/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
    • 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
    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/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/12Replacement control
    • 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/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

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)

Description

記憶體模組上之資料管理技術
本發明係有關於記憶體模組上之資料管理技術。
發明背景
混合型記憶體模組可包括一非依電性記憶體(NVM)以及一依電性記憶體可儲存比較其記憶體全部皆為依電性記憶體之記憶體模組更多的資料。記憶體模組可透過一雙倍資料速率(DDR)介面與外部組件通訊。在一混合型記憶體模組上的一快取記憶體許可該記憶體模組遵照DDR介面時間要求,以及保護該記憶體模組上之一低耐用性NVM免於可能磨耗該NVM之大量寫入操作。
依據本發明之一實施例,係特地提出一種於一記憶體模組上管理資料之方法包含:接收來自一作業系統(OS)頁面錯誤處理器之資訊指示所請求的資料係不儲存於該記憶體模組上的多個非依電性記憶體(NVM)中之一第一NVM內;應答於該所接收的資訊,將該所請求的資料從該等多個NVM中之一第二NVM複製至該第一NVM,其中該第二NVM具有比該第一NVM一更高的記憶體容量及一更長的 存取延遲;及於該等多個NVM中之一者儲存一第一位址與一第二位址間之一對映,其中該第一位址係指該所請求的資料係儲存於該第一NVM內之一位置,及其中該第二位址係指該所請求的資料係從其中複製的於該第二NVM內之一位置。
100、200、300、400‧‧‧記憶體模組
102、104、202、204‧‧‧非依電性記憶體(NVM)
106、206‧‧‧記憶體控制器
108、208‧‧‧移轉資料模組
110、210‧‧‧維持對映模組
212‧‧‧監視器修正模組
214‧‧‧維持指示模組
216‧‧‧輸出資料模組
302、402‧‧‧處理器
304、404‧‧‧機器可讀取儲存媒體
306-310、406-416‧‧‧指令
500、600‧‧‧方法
502-506、602-608‧‧‧方塊
下列詳細說明部分參考圖式,附圖中:圖1為一記憶體模組之實施例之一方塊圖,其包括一記憶體控制器以管理在該記憶體模組上之資料;圖2為一記憶體模組之實施例之一方塊圖,其包括一記憶體控制器以在該記憶體模組上之非依電性記憶體(NVM)間移轉資料及追蹤資料係儲存於該等NVM之位置;圖3為一記憶體模組之實施例之一方塊圖,其包括以許可管理在該記憶體模組上之資料的指令編碼之一機器可讀取儲存媒體;圖4為一記憶體模組之實施例之一方塊圖,其包括以移動及追蹤在該記憶體模組上之資料的指令編碼之一機器可讀取儲存媒體;圖5為管理在一記憶體模組上之資料的方法之一實施例之流程圖;及圖6為維持儲存在一記憶體模組上之資料細節的方法之一實施例之流程圖。
較佳實施例之詳細說明
一依電性記憶體可用於一混合型記憶體模組上 作為一快取記憶體。若該記憶體模組斷電,在該依電性快取記憶體內之資料可能遺失。若依電性快取記憶體內之資料係在從該記憶體模組上之一非依電性記憶體(NVM)複製之後經修正,則如果該依電性快取記憶體中之該已修正資料在被複製回該NVM之前斷電,該NVM可能無法獲得該修正資料。
有鑑於前文描述,本文揭示提出一種記憶體模組 具有一非依電性快取記憶體,其存取時間趨近於依電性快取記憶體的存取時間。若此種記憶體模組斷電,則快取記憶體內之資料不遺失,及該記憶體模組上的另一NVM在電力恢復之後能獲得儲存於該非依電性快取記憶體內的修正資料。具有非依電性快取記憶體之一記憶體模組也耗用比具有依電性快取記憶體之一記憶體模組更少的電力。
現在參考附圖,圖1為包括一記憶體控制器以管 理在該記憶體模組上之資料之一記憶體模組100之實施例之方塊圖。記憶體模組100可為一排型記憶體模組,諸如單排型記憶體模組(SIMM)或雙排型記憶體模組(DIMM),或適用以安裝記憶體積體電路(IC)之任何記憶體模組。於圖1中,記憶體模組100包括NVM 102、NVM 104、及記憶體控制器106。
NVM 102及104各自可包括電阻式隨機存取記憶 體(ReRAM)、快閃記憶體、可電氣抹除可規劃唯讀記憶體(EEPROM)、磁阻式隨機存取記憶體(MRAM)、相變隨機存 取記憶體(PCRAM)、或適用以儲存可執行指令及/或資料之任何其它非依電性記憶體。如此處使用,「非依電性記憶體」或「NVM」一詞係指即便當不供電時仍可保有所儲存的指令/資料之一記憶體。NVM 102及104可在記憶體模組100上之IC內。
NVM 102可具有比NVM 104更高的記憶體容量 及更長的存取延遲。如此處攸關一記憶體使用,「存取延遲」一詞係指從該記憶體讀取資料或寫入資料所耗的時間長度。於若干具現中,NVM 102可為快閃記憶體,及NVM 104可為ReRAM。NVM 104許可針對請求存取儲存於NVM 102的資料之應用程式快取致動資料,且許可資料以NVM 102所不能達成的速度存取。NVM 104作為快速的快取記憶體可對記憶體模組100外部的組件為透明。
記憶體控制器106可通訊式耦接至記憶體模組 100上的NVM 102及104。於若干具現中,記憶體控制器106可為數位電路。如圖1中例示及容後詳述,記憶體控制器106可包括模組108及110。一模組可包括編碼於一機器可讀取儲存媒體上且由記憶體控制器106之一處理器可執行的一指令集合。此外或另外,一模組可包括包含電子電路用以具現後文描述之功能的一硬體裝置。
移轉資料模組108可在NVM 102及104間移轉資 料。於若干具現中,移轉資料模組108可包括用以控制NVM 102及104間之資料移轉的一直接記憶體存取(DMA)控制器。移轉資料模組108可包括用以移轉資料至及接收資料自 NVM 102及104的介面,且可包括用以儲存讀取自NVM 102及/或104之資料的一緩衝器。
如前文討論,NVM 104可作為一快速快取記憶 體,及NVM 102可為較慢的較高容量記憶體。移轉資料模組108可接收資訊(例如透過在記憶體控制器106上之一作業系統介面)指示由記憶體模組100外部之一組件所請求的資料(此種資料於此處可稱作「請求資料」)係不存在於NVM 104。移轉資料模組108可從一作業系統(OS)頁面錯誤處理器接收此種資訊,或否則檢測所請求資料之不存在。當記憶體控制器106接收一請求以在指示在NVM 102中之一位置的一虛擬位址時,頁面錯誤處理器例如可調用,及虛擬位址不具有在該OS頁面表內之一有效分錄。應答於接收資訊,移轉資料模組108可將請求資料從NVM 102複製至NVM 104。
須瞭解與發送至外部組件的一區塊資料之大小 不同大小的區塊中,可在NVM 102及104間移轉資料。舉例言之,移轉資料模組108可從NVM 102逐頁(例如一頁可為約4千位元組)複製至NVM 104,及記憶體控制器106可將讀取自快取行(例如約64位元組)內之NVM 104之資料(例如請求資料)輸出給一外部組件。
維持對映模組110可在記憶體模組100上之一 NVM上維持第一多個位址其可指NVM 104中之位置,與第二多個位址其可指NVM 102中之位置間之多個對映。資料可在該等第一多個位址與第二多個位址間移轉。如此處就 對映及指示使用,「維持」一詞係指產生及/或儲存新穎對映/指示,更新既有對映/指示,及刪除既有對映/指示。舉例言之,當資料係從NVM 102複製至NVM 104時可儲存一新對映,當儲存於NVM 104之資料經修正時一指示可經更新(指示將於後文就圖2進一步討論),當在NVM 104上執行快取掃除功能時可刪除對映。須瞭解記憶體模組100可包括NVM 102及104以外之NVM,及在該等其它NVM中之一者可維持對映。
如此處就位址使用,「對映」一詞係指資料在其 間移轉的兩個位址間之關係。於若干具現中,一對映可為在一表中之一分錄,用以追蹤在NVM 102中的哪個資料頁面目前於NVM 104中快取。該分錄可包括在一虛擬位址,係指在NVM 104中該特定資料頁面儲存的一位置,旁的一實體位址,指稱在NVM 102中該特定資料頁面儲存的一位置。於若干具現中,一對映可包括指向NVM 104內之一位置的一位址,及指向NVM 102內之一位置的一指標器。
應答於所請求資料從NVM 104複製至NVM 102,維持對映模組110可在第一位址與第二位址間儲存一對映。該第一位址可為第一多個位址中之一者,且可指該請求資料儲存於NVM 104中之一位置。該第二位址可為第二多個位址中之一者,且可指該請求資料從其中複製的該NVM 102中之一位置。該對映可儲存於NVM 102、NVM 104、或記憶體控制器106內之一NVM內。
當該等對映儲存於記憶體模組100上之一NVM 內時,即便記憶體模組100無電力,對映仍可維持於NVM。當記憶體模組100被啟動時(例如在斷電後或省電模式後),移轉資料模組108可讀取該等對映,及將於NVM 104的該等第一多個位址所儲存的資料複製至於NVM 102的該等第二多個位址之個別位址。如此,若NVM 104中之資料係在記憶體模組100斷電之前修正(例如藉記憶體模組100外部的一組件),則在電力恢復之後NVM 102可儲存該資料的最新版本。於若干具現中,一OS可使用所儲存的對映以啟動一頁面表,例如在斷電之後恢復供電給記憶體模組100時。該等第一多個位址可為頁面表中之該等虛擬位址,及該等第二多個位址可為對映至頁面表中之該等個別虛擬位址的實體位址。
圖2為記憶體模組200之一實施例之方塊圖,其包括一記憶體控制器以在該記憶體模組上之NVM間移轉資料,及追蹤資料係儲存在該等NVM中之何處。記憶體模組200可為一排型記憶體模組諸如SIMM或DIMM,或適用以安裝記憶體IC之任何記憶體模組。於圖2中,記憶體模組200包括NVM 202、NVM 204、及記憶體控制器206。NVM 202及204可分別地類似(例如具有功能及/或組件類似)圖1之NVM 102及104。
記憶體控制器206可通訊式耦接至記憶體模組200上之NVM 202及204。於若干具現中,記憶體控制器206可為數位電路。如圖2中例示及容後詳述,記憶體控制器206可包括模組208、210、212、214、及216。一模組可包括編 碼於一機器可讀取儲存媒體上且由記憶體控制器206之一處理器可執行的一指令集合。此外或另外,一模組可包括包含電子電路用以具現後文描述之功能的一硬體裝置。
記憶體控制器206之模組208及210可類似記憶體 控制器106之模組108及110。監視器修正模組212可監視記憶體模組200上之一第一快取記憶體(例如NVM 204)中之資料頁面的修正。監視器修正模組212可檢測由快速快取記憶體所接收的寫入指令及/或檢測於快速快取記憶體內執行的寫入指令。於若干具現中,監視器修正模組212可決定有效資料是否儲存於該快速快取記憶體內之一特定位址。
維持指示模組214可在記憶體模組200上之一 NVM內維持在記憶體模組200上之一快速快取記憶體內之資料頁面是否已經修正的指示。舉例言之,此等指示可儲存於NVM 202、NVM 204、或記憶體控制器206中之一NVM內。如此處使用,「指示」一詞係指是否存在某種情況之一符號。應答於監視器修正模組212檢測於快速快取記憶體中之一資料頁面的修正,維持指示模組214可儲存該資料頁面已經修正之一指示。舉例言之,維持指示模組214可設定與該資料頁面相聯結的的一髒位元。
於若干具現中,在斷電之後,當給記憶體模組200 的電力恢復時,移轉資料模組208可複製具有一指示其已經修正的頁面從NVM 204至NVM 202(例如其個別髒位元已經設定的頁面)。移轉資料模組208可不複製不具有一指示其已經修正的頁面,或具有一指示其尚未修正的頁面(例如 其個別髒位元已經設定的頁面)。於若干具現中,頁面是否已經修正的指示可用以決定在NVM 204上進行解除配置或快取掃除操作之前哪些頁面從NVM 204複製至NVM 202。 於NVM 204中已經修正的資料頁面可在解除配置或快取掃除操作執行之前複製至NVM 202,使得已修正資料可保有於記憶體模組200內。於NVM 204中尚未經修正的資料頁面可經失效或不複製,如此節省耗用以將未經修正資料寫至NVM 202的延遲時間及資源。
於若干具現中,維持指示模組214可於記憶體模 組200上的NVM內維持於NVM 202內的個別資料頁面是否儲存於NVM 204之指示。此等指示可用以追蹤NVM 204內之作用態頁面及資料的利用性。於NVM 202內的個別資料頁面是否儲存於NVM 204之指示例如可儲存於NVM 202,儲存於NVM 204,或儲存於記憶體控制器206之NVM中,且可儲存於與用以儲存頁面是否已經修正的指示之該NVM相同的NVM或相異的NVM內。
於若干具現中,於記憶體模組200上之一NVM 內,維持指示模組214可維持指示有效資料是否儲存於指向記憶體模組200之一快速快取記憶體(例如NVM 204)內之位置的個別位址。此等指示可用以決定在該快速快取記憶體中資料已經寫入其中的位址,及於該快速快取記憶體中存在有多少自由儲存空間。有效資料是否儲存於個別位址的指示例如可儲存於NVM 202,儲存於NVM 204,或儲存於記憶體控制器206之一NVM中,且可儲存於與用以儲存先前 討論之指示之該(等)NVM相同的NVM或相異的NVM內。
輸出資料模組216可發射讀取自NVM 202及/或 204之資料至記憶體模組200外部的一組件。輸出資料模組216可發射所請求的資料給請求該資料之一外部組件。該資料可於快取行輸出。
圖3為一記憶體模組300之實施例之一方塊圖,其 包括以許可管理在該記憶體模組上之資料的指令編碼之一機器可讀取儲存媒體。記憶體模組300可為一排型記憶體模組諸如SIMM或DIMM,或適用以安裝記憶體IC之任何記憶體模組。於圖3中,記憶體模組300包括處理器302及機器可讀取儲存媒體304。
處理器302可包括一中央處理單元(CPU)、微處理 器(例如以半導體為基礎之微處理器)、及/或適用以取回及/或執行儲存於機器可讀取儲存媒體304中的指令之其它硬體裝置。處理器302可提取、解碼、及/或執行指令306、308、及310以許可管理在記憶體模組上之資料,容後詳述。作為取回及/或執行指令之替代方案或此外,處理器302可包括一電子電路包含用以執行指令306、308、及/或310之功能的多個電子組件。
機器可讀取儲存媒體304可為含有或儲存可執行指令之任何合宜電子、磁學、光學、或其它實體儲存裝置。如此,機器可讀取儲存媒體304可包括例如一隨機存取記憶體(RAM)、一EEPROM、一儲存裝置、一光碟等。於若干具現中,機器可讀取儲存媒體304可包括非過渡儲存媒體, 於該處「非過渡」一詞不含括過渡傳播信號。容後詳述,機器可讀取儲存媒體304可以一集合之可執行指令306、308、及310編碼。
指令306可檢測於記憶體模組300上之一第一 NVM中不存在有所請求的資料。如前文就圖1之討論,該第一NVM可為一快速快取記憶體(例如NVM 104)。於若干具現中,指令306可接收來自一OS頁面錯誤處理器之資訊,指示所請求的資料係不儲存於該第一NVM。例如,當期望存取儲存在記憶體模組300內於該OS頁面表中不具一有效分錄的一虛擬位址的資料時,可調用該頁面錯誤處理器。
指令308可將所請求的資料從記憶體模組300上 的一第二NVM(例如NVM 102)複製至該第一NVM。如前文就圖1之討論,該第二NVM可具有比該第一NVM更高的記憶體容量及更長的存取延遲。應答於檢測得所請求的資料在該第一NVM中不存在,所請求的資料可從該第二NVM複製至該第一NVM。舉例言之,當調用一OS頁面錯誤處理器時,可複製所請求的資料。於若干具現中,資料可從該第二NVM逐頁複製至該第一NVM。
於記憶體模組300上之一NVM中,指令310可儲 存一第一位址與一第二位址間之對映。第一位址可指所請求的資料儲存於該第一NVM中之一位置。第二位址可指於該第二NVM中該所請求的資料從其中複製的一位置。於若干具現中,如前文就圖1之討論,該對映可包括在一表內實體位址及虛擬位址之一分錄及/或一指標器。應答於所請求 的資料從在記憶體模組300上之一NVM複製至在記憶體模組300上之另一NVM(例如從該第二NVM至該第一NVM),該對映可經儲存。該對映可儲存例如於第一NVM、於第二NVM、或於記憶體模組300上的一記憶體控制器內之一NVM。
圖4為一記憶體模組400之實施例之一方塊圖,其 包括以移動及追蹤在該記憶體模組上之資料的指令編碼之一機器可讀取儲存媒體。記憶體模組400可為一排型記憶體模組諸如SIMM或DIMM,或適用以安裝記憶體IC之任何記憶體模組。於圖4中,記憶體模組400包括處理器402及機器可讀取儲存媒體404。
如同圖3之處理器302,處理器402可包括一 CPU、微處理器(例如以半導體為基礎之微處理器)、及/或適用以取回及/或執行儲存於機器可讀取儲存媒體404中的指令之其它硬體裝置。處理器402可提取、解碼、及/或執行指令406、408、410、412、414、及416以許可移動及追蹤在記憶體模組400上之資料,容後詳述。作為取回及/或執行指令之替代方案或此外,處理器402可包括一電子電路包含用以執行指令406、408、410、412、414、及/或416之功能的多個電子組件。
如同圖3之機器可讀取儲存媒體304,機器可讀取 儲存媒體404可為儲存可執行指令的任何合宜實體儲存裝置。機器可讀取儲存媒體404上之指令406、408、及410可類似機器可讀取儲存媒體304上之指令306、308、及310。 指令412可從記憶體模組400上之一記憶體讀取所儲存的一對映。舉例言之,一儲存對映可讀取自一快速快取NVM(例如NVM 204)、一高容量及慢存取時間NVM(例如NVM 202)、或在記憶體模組400上之一記憶體控制器內之一NVM。於若干具現中,如前文參考圖1之討論,當在斷電後記憶體模組400被啟動時,可讀取儲存對映,及/或儲存對映可由一OS用以啟動一頁面表。
指令414可複製儲存於記憶體模組400之一第一
位址的資料給一第二位址。該第一位址可指在記憶體模組400上於一第一快速快取記憶體中之資料位置。該第二位址可指在記憶體模組400上於一更高容量/更長的存取延遲NVM中該資料從其中複製之一位置。於若干具現中,於一儲存對映中,該第一位址可為一虛擬位址,及該第二位址可為一實體位址,及當記憶體模組400啟動時讀取該儲存對映後可複製資料。如此,如前文參考圖1之討論,較慢的NVM可儲存最新資料。
指令416可從記憶體模組400輸出所請求的資 料。舉例言之,記憶體模組400上之一記憶體控制器(例如記憶體控制器206)可輸出讀取自記憶體模組400上之一記憶體(例如快速快取記憶體)之所請求的資料給記憶體模組400外部的一組件。如前文參考圖1之討論,該所請求的資料可於一快取行輸出。
圖5為管理在一記憶體模組上之資料之方法500 之一實施例之流程圖。雖然方法500之執行係於後文參考圖 3之處理器302描述,但須瞭解方法500之執行可藉其它合宜裝置諸如圖4之處理器402進行。方法500可以儲存於一機器可讀取儲存媒體(例如儲存媒體304)上之可執行指令形式及/或以電子電路形式具現。
方法500可始於方塊502,於該處處理器302可接收來自一OS頁面錯誤處理器之資訊指示所請求的資料係不儲存於一記憶體模組上的多個NVM中之一第一NVM內。該第一NVM可為一快速快取記憶體,諸如圖1之NVM 104。例如當期望存取儲存於該記憶體模組上之一記憶體控制器內在指向該第一NVM中之一位置的一虛擬位址的資料,且該虛擬位址不具有在該OS頁面表之一有效分錄時,該頁面錯誤處理器可被調用。
其次於方塊504,應答於所接收資訊,處理器302可從該等多個NVM中之一第二NVM複製所請求的資料給該第一NVM。該第二NVM可具有比該第一NVM更高的記憶體容量及更長的存取延遲。舉例言之,該第一NVM可為ReRAM及該第二NVM可為快閃記憶體。該所請求的資料可從該第二NVM逐頁複製至該第一NVM。
最後於方塊506,在該記憶體模組上之多個NVM中之一者內,處理器302可儲存第一位址與第二位址間之對映。該第一位址可指所請求的資料儲存於該第一NVM之一位置。該第二位址可指所請求的資料從其中複製的在該第二NVM中之一位置。如前文參考圖1之討論,該對映可包括在一表內之實體位址及虛擬位址之一分錄及/或一指標 器。於若干具現中,該對映可應答於所示實施例中,從該第二NVM複製至該第一NVM而儲存在該記憶體模組上。該對映例如可儲存於,該第一NVM、該第二NVM、或在該記憶體模組上之一記憶體控制器內之一NVM中。
圖6為維持有關儲存於一記憶體模組上之資料之 細節的方法600之一實施例之流程圖。雖然方法600之執行係於後文參考圖4之處理器402說明,但須瞭解方法600之執行可藉其它合宜裝置諸如圖3之處理器302進行。方法600可以儲存於一機器可讀取儲存媒體(例如儲存媒體404)上之可執行指令形式及/或以電子電路形式具現。
方法600可始於方塊602,於該處當一記憶體模組 啟動時,處理器402可讀取一儲存的對映。該對映可讀取自在該記憶體模組上之一NVM。舉例言之,該對映可讀取自一快速快取NVM、一高容量/慢存取時間NVM、或在記憶體模組上之一記憶體控制器內之一NVM。該對映可包括一第一位址及一第二位址。該第一位址可指資料儲存在該記憶體模組上之一第一NVM(例如快速快取記憶體)之一位置。該第二位址可指資料從其中複製的在該記憶體模組上之一第二NVM(例如高容量/慢存取時間NVM)之一位置。於若干具現中,如前文參考圖1之討論,該對映可用以啟動一OS頁面表。於此等具現中,第一位址可為該頁面表中之一虛擬位址,及該第二位址可為對映至該頁面表中之一虛擬位址之一實體位址。
其次於方塊604,處理器402可將儲存於該第一 NVM之第一位址的資料複製至於該第二NVM之第二位址。於具現中於該處該第一NVM作為相對於該第二NVM之一快速快取記憶體,如前文參考圖1之討論,此種複製允許在電力恢復給該記憶體模組後第二NVM儲存最新資料版本,即便在記憶體模組斷電之前該第一NVM中之資料經修正亦復如此。資料可從第一NVM逐頁複製至第二NVM。
於方塊606,處理器402可指示在該第一NVM中 之一儲存資料頁面是否已經修正。應答於檢測得一寫入指令發送至或寫入操作在該第一NVM上執行,處理器402可指示之一修正。如前文參考圖2之討論,於若干具現中,處理器402可設定與一資料頁面相聯結的一髒位元以指示該資料頁面已經修正。
於方塊608,處理器402可於一快取行輸出所請求 的資料。該所請求的資料可讀取自該第一NVM及發射至該記憶體模組外部的一組件。雖然方塊608係顯示於圖6之方塊606下方,但須瞭解處理器402可在指示所儲存資料是否已經修正之前或並行地輸出所請求的資料。
前文揭示描述具有一非依電性快速快取記憶體 及一較高容量較慢存取時間NVM之記憶體模組。此處描述之具現實施例允許記憶體模組在斷電後保有資料及追蹤資料之位置而無需仰賴OS。
500‧‧‧方法
502、504、506‧‧‧方塊

Claims (15)

  1. 一種管理記憶體模組上之資料之方法,該方法包含:接收來自一作業系統(OS)頁面錯誤處理器之資訊指示所請求的資料係不儲存於該記憶體模組上的多個非依電性記憶體(NVM)中之一第一NVM內;應答於該所接收的資訊,將該所請求的資料從該等多個NVM中之一第二NVM複製至該第一NVM,其中該第二NVM具有比該第一NVM一更高的記憶體容量及一更長的存取延遲;及於該等多個NVM中之一者儲存一第一位址與一第二位址間之一對映,其中該第一位址係指該所請求的資料係儲存於該第一NVM內之一位置,及其中該第二位址係指於該第二NVM內該所請求的資料係從其中複製之一位置。
  2. 如請求項1之方法,其中該第一NVM包含一電阻式隨機存取記憶體(ReRAM)、磁阻式隨機存取記憶體(MRAM)、或相變隨機存取記憶體(PCRAM)。
  3. 如請求項1之方法,其中資料係逐頁從該第二NVM複製至該第一NVM,該方法進一步包含於一快取行輸出該所請求的資料。
  4. 如請求項1之方法,其進一步包含:當該記憶體模組被啟動時,讀取該所儲存的對映;及 複製儲存於該第一NVM之該第一位址的資料給於該第二NVM之該第二位址。
  5. 如請求項1之方法,其進一步包含指示於該第一NVM之一儲存資料頁面是否已經修正。
  6. 如請求項1之方法,其中:該OS使用該所儲存的對映以啟動一頁面表;該第一位址為該頁面表中之一虛擬位址;及該第二位址為對映至該頁面表中之該虛擬位址之一實體位址。
  7. 一種編碼有可藉一記憶體模組之一處理器執行而用以管理在該記憶體模組上之資料的指令之機器可讀取儲存媒體,該機器可讀取儲存媒體包含:檢測在該記憶體模組上之多個非依電性記憶體(NVM)中之一第一NVM內不存在一所請求的資料之指令;將該所請求的資料從該等多個NVM中之一第二NVM複製至該第一NVM之指令,其中該第二NVM具有比該第一NVM一更高記憶體容量及一更長存取延遲;及於該等多個NVM中之一者儲存一第一位址與一第二位址間之一對映之指令,其中該第一位址係指該所請求的資料係儲存於該第一NVM內之一位置,及其中該第二位址係指於該第二NVM內該所請求的資料係從其中複製之一位置。
  8. 如請求項7之機器可讀取儲存媒體,其進一步包含: 逐頁從該第二NVM複製資料至該第一NVM之指令;及於一快取行輸出所請求的資料之指令。
  9. 如請求項7之機器可讀取儲存媒體,其進一步包含:讀取該所儲存之對映之指令;及複製儲存於該第一NVM之該第一位址的資料給於該第二NVM之該第二位址之指令。
  10. 一種記憶體模組,其包含:多個非依電性記憶體(NVM),其中該等多個NVM包含:一第一非依電性記憶體(NVM);及一第二NVM,其具有比該第一NVM一更高的記憶體容量及一更長的存取延遲;以及一記憶體控制器,用以:在該第一NVM與該第二NVM間移轉資料;及在該等多個NVM中之一者上,維持指向該第一NVM中之位置之一第一多個位址與指向該第二NVM中之位置之一第二多個位址間之多個對映,其中資料係在該等第一多個位址與該等第二多個位址間移轉。
  11. 如請求項10之記憶體模組,其中該第一NVM包含一電阻式隨機存取記憶體(ReRAM)、磁阻式隨機存取記憶體(MRAM)、或相變隨機存取記憶體(PCRAM)。
  12. 如請求項10之記憶體模組,其中該記憶體控制器係進一 步:監視於該第一NVM中之資料頁面之修改;及應答於檢測到該第一NVM中之一資料頁面之一修改,儲存指出該資料頁面已經修改之一指示。
  13. 如請求項10之記憶體模組,其中該記憶體控制器係進一步:在該第二NVM與該第一NVM間逐頁移轉資料;及於一快取行輸出讀取自該第一NVM之資料。
  14. 如請求項10之記憶體模組,其中該記憶體控制器係進一步:當該記憶體模組被啟動時,讀取該等多個對映;及複製儲存於該第一NVM中之該等第一多個位址之資料至該第二NVM中之該等第二多個位址之個別位址。
  15. 如請求項10之記憶體模組,其中該記憶體控制器係進一步在該等多個NVM中之一者上維持:指出在該第二NVM中之個別資料頁面是否係儲存於該第一NVM之一第一多個指示;及指出有效資料是否係儲存於指向該第一NVM中之位置的個別位址之一第二多個指示。
TW103123468A 2013-09-27 2014-07-08 記憶體模組上之資料管理技術 TWI533127B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/062371 WO2015047326A1 (en) 2013-09-27 2013-09-27 Data management on memory modules

Publications (2)

Publication Number Publication Date
TW201516679A TW201516679A (zh) 2015-05-01
TWI533127B true TWI533127B (zh) 2016-05-11

Family

ID=52744226

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103123468A TWI533127B (zh) 2013-09-27 2014-07-08 記憶體模組上之資料管理技術

Country Status (5)

Country Link
US (1) US11733932B2 (zh)
EP (1) EP3049938B1 (zh)
CN (1) CN106062724B (zh)
TW (1) TWI533127B (zh)
WO (1) WO2015047326A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
US10082963B2 (en) * 2016-04-18 2018-09-25 Super Micro Computer, Inc. Low capacity latency storage enclosure with expander
US10394310B2 (en) * 2016-06-06 2019-08-27 Dell Products, Lp System and method for sleeping states using non-volatile memory components
US9971510B2 (en) 2016-10-16 2018-05-15 Mediatek Inc. Method for managing memory and associated microcontroller
CN111433749B (zh) * 2017-10-12 2023-12-08 拉姆伯斯公司 具有dram高速缓存的非易失性物理存储器
US10809942B2 (en) * 2018-03-21 2020-10-20 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705963B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705747B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10877693B2 (en) * 2018-06-29 2020-12-29 Intel Corporation Architecture for dynamic transformation of memory configuration
US10719461B2 (en) * 2018-08-07 2020-07-21 Western Digital Technologies, Inc. Solid state device with distributed bit buckets

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261067A (en) * 1990-04-17 1993-11-09 North American Philips Corp. Method and apparatus for providing synchronized data cache operation for processors in a parallel processing system
US7035974B2 (en) * 2002-11-06 2006-04-25 Synology Inc. RAID-5 disk having cache memory implemented using non-volatile RAM
US20040117583A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corporation Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme
US7283390B2 (en) 2004-04-21 2007-10-16 Impinj, Inc. Hybrid non-volatile memory
US8397013B1 (en) * 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
WO2008055269A2 (en) 2006-11-04 2008-05-08 Virident Systems, Inc. Asymmetric memory migration in hybrid main memory
US7761740B2 (en) * 2007-12-13 2010-07-20 Spansion Llc Power safe translation table operation in flash memory
US8560761B2 (en) 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
US8738840B2 (en) 2008-03-31 2014-05-27 Spansion Llc Operating system based DRAM/FLASH management scheme
US20100057984A1 (en) 2008-08-26 2010-03-04 Seagate Technology Llc Memory hierarchy containing only non-volatile cache
US8239613B2 (en) 2008-12-30 2012-08-07 Intel Corporation Hybrid memory device
US8327076B2 (en) 2009-05-13 2012-12-04 Seagate Technology Llc Systems and methods of tiered caching
US8301717B2 (en) * 2009-06-09 2012-10-30 Deshpande Enterprises, Inc. Extended virtual memory system and method in a computer cluster
US7898859B2 (en) 2009-06-15 2011-03-01 Micron Technology, Inc. Use of emerging non-volatile memory elements with flash memory
US8289801B2 (en) 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
KR20110131714A (ko) 2010-05-31 2011-12-07 주식회사 하이닉스반도체 데이터 복사를 제어하는 플래시 시스템 및 그의 제어 방법
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
KR20130063244A (ko) 2011-12-06 2013-06-14 주식회사 디에이아이오 비휘발성 메모리 시스템
KR20130070178A (ko) * 2011-12-19 2013-06-27 한국전자통신연구원 하이브리드 저장 장치 및 그것의 동작 방법
US10489295B2 (en) * 2012-10-08 2019-11-26 Sandisk Technologies Llc Systems and methods for managing cache pre-fetch
US8959281B1 (en) * 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device

Also Published As

Publication number Publication date
EP3049938B1 (en) 2019-03-13
EP3049938A1 (en) 2016-08-03
EP3049938A4 (en) 2017-06-07
US11733932B2 (en) 2023-08-22
CN106062724B (zh) 2020-09-08
US20160202936A1 (en) 2016-07-14
CN106062724A (zh) 2016-10-26
WO2015047326A1 (en) 2015-04-02
TW201516679A (zh) 2015-05-01

Similar Documents

Publication Publication Date Title
TWI533127B (zh) 記憶體模組上之資料管理技術
US10540096B2 (en) Method and design for dynamic management of descriptors for SGL operation
CN109952565B (zh) 内存访问技术
TW201710910A (zh) 交易式混合記憶體模組及其操作方法
US11907572B2 (en) Interface read after write
US20160291884A1 (en) Command balancing and interleaving for write and reads between front end and back end of solid state drive
US10402338B2 (en) Method and apparatus for erase block granularity eviction in host based caching
US11016905B1 (en) Storage class memory access
US11537536B2 (en) Memory controller configured to transmit interrupt signal if volatile memory has no data corresponding to address requested from source
CN111581125A (zh) 高效跟踪脏高速缓存行在二级主存储器的高速缓存中的位置的方法和装置
US20200319815A1 (en) Communication of data relocation information by storage device to host to improve system performance
US20220300195A1 (en) Supporting multiple active regions in memory devices
TW202238395A (zh) 二階主要記憶體階層式管理技術
CN114270317B (zh) 层次型存储器***
CN114341816A (zh) 三层层次型存储器***
US20210406192A1 (en) Storage capacity recovery source selection
CN114341817A (zh) 分层存储器***
US20240078184A1 (en) Transparent Host Memory Buffer
US11620242B2 (en) Determining write commands for deletion in a host interface
CN113064548A (zh) 存储器子***中的逻辑到物理页转译中的相干性问题解决方案

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees