TWI533127B - 記憶體模組上之資料管理技術 - Google Patents
記憶體模組上之資料管理技術 Download PDFInfo
- 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
Links
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
-
- 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
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- 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/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/12—Replacement control
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- 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/60—Details 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)
- 一種管理記憶體模組上之資料之方法,該方法包含:接收來自一作業系統(OS)頁面錯誤處理器之資訊指示所請求的資料係不儲存於該記憶體模組上的多個非依電性記憶體(NVM)中之一第一NVM內;應答於該所接收的資訊,將該所請求的資料從該等多個NVM中之一第二NVM複製至該第一NVM,其中該第二NVM具有比該第一NVM一更高的記憶體容量及一更長的存取延遲;及於該等多個NVM中之一者儲存一第一位址與一第二位址間之一對映,其中該第一位址係指該所請求的資料係儲存於該第一NVM內之一位置,及其中該第二位址係指於該第二NVM內該所請求的資料係從其中複製之一位置。
- 如請求項1之方法,其中該第一NVM包含一電阻式隨機存取記憶體(ReRAM)、磁阻式隨機存取記憶體(MRAM)、或相變隨機存取記憶體(PCRAM)。
- 如請求項1之方法,其中資料係逐頁從該第二NVM複製至該第一NVM,該方法進一步包含於一快取行輸出該所請求的資料。
- 如請求項1之方法,其進一步包含:當該記憶體模組被啟動時,讀取該所儲存的對映;及 複製儲存於該第一NVM之該第一位址的資料給於該第二NVM之該第二位址。
- 如請求項1之方法,其進一步包含指示於該第一NVM之一儲存資料頁面是否已經修正。
- 如請求項1之方法,其中:該OS使用該所儲存的對映以啟動一頁面表;該第一位址為該頁面表中之一虛擬位址;及該第二位址為對映至該頁面表中之該虛擬位址之一實體位址。
- 一種編碼有可藉一記憶體模組之一處理器執行而用以管理在該記憶體模組上之資料的指令之機器可讀取儲存媒體,該機器可讀取儲存媒體包含:檢測在該記憶體模組上之多個非依電性記憶體(NVM)中之一第一NVM內不存在一所請求的資料之指令;將該所請求的資料從該等多個NVM中之一第二NVM複製至該第一NVM之指令,其中該第二NVM具有比該第一NVM一更高記憶體容量及一更長存取延遲;及於該等多個NVM中之一者儲存一第一位址與一第二位址間之一對映之指令,其中該第一位址係指該所請求的資料係儲存於該第一NVM內之一位置,及其中該第二位址係指於該第二NVM內該所請求的資料係從其中複製之一位置。
- 如請求項7之機器可讀取儲存媒體,其進一步包含: 逐頁從該第二NVM複製資料至該第一NVM之指令;及於一快取行輸出所請求的資料之指令。
- 如請求項7之機器可讀取儲存媒體,其進一步包含:讀取該所儲存之對映之指令;及複製儲存於該第一NVM之該第一位址的資料給於該第二NVM之該第二位址之指令。
- 一種記憶體模組,其包含:多個非依電性記憶體(NVM),其中該等多個NVM包含:一第一非依電性記憶體(NVM);及一第二NVM,其具有比該第一NVM一更高的記憶體容量及一更長的存取延遲;以及一記憶體控制器,用以:在該第一NVM與該第二NVM間移轉資料;及在該等多個NVM中之一者上,維持指向該第一NVM中之位置之一第一多個位址與指向該第二NVM中之位置之一第二多個位址間之多個對映,其中資料係在該等第一多個位址與該等第二多個位址間移轉。
- 如請求項10之記憶體模組,其中該第一NVM包含一電阻式隨機存取記憶體(ReRAM)、磁阻式隨機存取記憶體(MRAM)、或相變隨機存取記憶體(PCRAM)。
- 如請求項10之記憶體模組,其中該記憶體控制器係進一 步:監視於該第一NVM中之資料頁面之修改;及應答於檢測到該第一NVM中之一資料頁面之一修改,儲存指出該資料頁面已經修改之一指示。
- 如請求項10之記憶體模組,其中該記憶體控制器係進一步:在該第二NVM與該第一NVM間逐頁移轉資料;及於一快取行輸出讀取自該第一NVM之資料。
- 如請求項10之記憶體模組,其中該記憶體控制器係進一步:當該記憶體模組被啟動時,讀取該等多個對映;及複製儲存於該第一NVM中之該等第一多個位址之資料至該第二NVM中之該等第二多個位址之個別位址。
- 如請求項10之記憶體模組,其中該記憶體控制器係進一步在該等多個NVM中之一者上維持:指出在該第二NVM中之個別資料頁面是否係儲存於該第一NVM之一第一多個指示;及指出有效資料是否係儲存於指向該第一NVM中之位置的個別位址之一第二多個指示。
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)
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)
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 |
-
2013
- 2013-09-27 US US14/912,681 patent/US11733932B2/en active Active
- 2013-09-27 CN CN201380079786.4A patent/CN106062724B/zh not_active Expired - Fee Related
- 2013-09-27 EP EP13894169.5A patent/EP3049938B1/en active Active
- 2013-09-27 WO PCT/US2013/062371 patent/WO2015047326A1/en active Application Filing
-
2014
- 2014-07-08 TW TW103123468A patent/TWI533127B/zh not_active IP Right Cessation
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 |