TWI731302B - 記憶體之部分儲存 - Google Patents

記憶體之部分儲存 Download PDF

Info

Publication number
TWI731302B
TWI731302B TW108104257A TW108104257A TWI731302B TW I731302 B TWI731302 B TW I731302B TW 108104257 A TW108104257 A TW 108104257A TW 108104257 A TW108104257 A TW 108104257A TW I731302 B TWI731302 B TW I731302B
Authority
TW
Taiwan
Prior art keywords
memory
dynamic random
random access
host
volatile
Prior art date
Application number
TW108104257A
Other languages
English (en)
Other versions
TW201941057A (zh
Inventor
傑佛瑞 J 賴達
納珊 A 愛克爾
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 TW201941057A publication Critical patent/TW201941057A/zh
Application granted granted Critical
Publication of TWI731302B publication Critical patent/TWI731302B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency 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/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-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/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

各種應用可包含在諸如一非揮發性雙列直插記憶體模組之一設備中之記憶體之部分儲存之系統及/或方法。在各項實施例中,一非揮發性雙列直插記憶體模組之一組控制暫存器可經組態以含有將內容自其備份至該非揮發性雙列直插記憶體模組之非揮發性記憶體之該非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之一識別符。該組控制暫存器之暫存器亦可經分配以含有一內容量以自該動態隨機存取記憶體內容傳送至非揮發性記憶體。揭示額外設備、系統及方法。

Description

記憶體之部分儲存
本發明之實施例大體上係關於記憶體子系統,且更具體言之,係關於管理包含記憶體之部分儲存之一記憶體子系統。
一記憶體子系統可係一儲存系統,諸如一非揮發性雙列直插記憶體模組(NVDIMM),且可包含儲存資料之一或多個記憶體組件。記憶體組件可係(例如)非揮發性記憶體組件及揮發性記憶體組件。一般言之,主機系統可利用記憶體子系統以將資料儲存於記憶體組件處且自記憶體組件擷取資料。
在一些實施例中,一種非揮發性雙列直插記憶體模組包括:動態隨機存取記憶體,其經配置以儲存使用者資料;非揮發性記憶體,其經配置以備份該動態隨機存取記憶體之內容;及一組控制暫存器,其等經組態以含有將內容自其備份至該非揮發性記憶體之該動態隨機存取記憶體之一部分之一識別符。
在一些實施例中,一種方法包括:接收至一非揮發性記憶體之一保存操作自其開始之動態隨機存取記憶體之一部分之一起始位移及待保存之一內容量,該動態隨機存取記憶體及該非揮發性記憶體安置於一非揮發性雙列直插記憶體模組中;將該起始位移及待保存之一內容量載入至該非揮發性雙列直插記憶體模組之一組暫存器中;及回應於發生關於可操作地耦合至該非揮發性雙列直插記憶體模組之一主機之一主機相關事件而基於載入至該組暫存器中之該起始位移及該內容量將該動態隨機存取記憶體之該部分之內容保存至該非揮發性記憶體中。
在一些實施例中,一種方法包括:接收一觸發以將一非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之內容保存至一非揮發性雙列直插記憶體模組之一非揮發性記憶體中;存取該非揮發性雙列直插記憶體模組之一組暫存器且判定自其開始動態隨機存取記憶體之該部分之該等內容之該保存之動態隨機存取記憶體之該部分之一起始位移;關於該起始位移自該組暫存器中之一部分保存長度暫存器判定待保存之一內容量;及基於存取該組暫存器而將該動態隨機存取記憶體之該部分之該內容保存至該非揮發性記憶體中。
在一些實施例中,一種方法包括:在一主機中判定待保存至一非揮發性雙列直插記憶體模組之一非揮發性記憶體中之該非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之內容,該主機可操作地耦合至該非揮發性雙列直插記憶體模組;在該主機中判定自其開始動態隨機存取記憶體之該部分之該等內容之該保存之動態隨機存取記憶體之該部分之一起始位移;在該主機中判定自該動態隨機存取記憶體保存至該非揮發性記憶體之一內容量;及將該起始位移及該內容量自該主機載入至該非揮發性雙列直插記憶體模組之一組控制暫存器中。
優先權申請
本申請案主張2018年2月8日申請之美國臨時申請案第62/628,157號及2018年8月27日申請之美國申請案第16/113,221號之優先權之權利,該等案之全文以引用的方式併入本文中。
本發明之態樣係關於管理一記憶體子系統,該管理包含實施部分記憶體保存。一記憶體子系統此後亦可稱為一「記憶體裝置」。一記憶體子系統之一實例係一儲存系統,諸如一非揮發性雙列直插記憶體模組(NVDIMM)。在一些實施例中,記憶體子系統係一混合記憶體/儲存器子系統。一般言之,一主機系統可利用包含一或多個記憶體組件之一記憶體子系統。主機系統可提供待儲存於記憶體子系統處之資料且可請求欲自記憶體子系統擷取之資料。
一非揮發性雙列直插記憶體模組(NVDIMM)係一種類型之隨機存取記憶體,其具有用於正常操作之揮發性記憶體及其中在電源失效之情況下使用一機載備用電源傾印揮發性記憶體之內容之非揮發性記憶體。NVDIMM-N係通常在相同模組上具有快閃儲存器及傳統動態隨機存取記憶體(DRAM)之一雙列直插記憶體模組(DIMM)。一主機處理單元可直接存取傳統DRAM。相對於一記憶體單元,一主機可經結構化為回應於由主機運行之一應用程式而控制資料出入記憶體單元之一或多個處理器。在一電源失效之事件中,NVDIMM-N將全部資料自其揮發性傳統DRAM或DRAM組複製至其永久性快閃儲存器且在電源復原時將全部資料複製回至揮發性傳統DRAM或DRAM組。可在一電力循環上執行將全部DRAM資料之狀態轉換為永久性快閃儲存器上之永久性資料。NVDIMM具有其自身之電池備用電源或可接取一專屬電源以容許NVDIMM完成保存。
在各項實施例中,在一NVDIMM中之一組控制暫存器可經實施以提供NVDIMM中之記憶體至非揮發性記憶體之一部分保存,其中「記憶體」係指NVDIMM之主記憶體。主記憶體係儲存使用者資料之揮發性記憶體,諸如一DRAM。該組控制暫存器可提供用於藉由含有揮發性記憶體之一部分之一起始位移以識別一保存操作之一開始且藉由含有待保存之非揮發性記憶體之一內容量而進行一部分保存之一機制。一主機可將一保存操作之一開始之一識別符及用於保存操作之一內容量填入NVDIMM中之該組控制暫存器。此組控制暫存器亦可控制將部分保存復原回至NVDIMM之揮發性記憶體之反向操作。用於維持儲存於一NVDIMM上之資料之此結構對一主機提供相對於主機正在處理之應用程式處置使用者資料之額外靈活性。對主機提供存取以在任何位移處執行一完整內容或一部分內容保存。此可為主機提供具有對所保存及復原之內容之更佳控制及更多控制之能力。
圖1繪示根據本發明之一些實施例之包含一記憶體子系統110之一例示性運算環境100。記憶體子系統110可包含媒體,諸如記憶體組件112A至112N。記憶體組件112A至112N可係揮發性記憶體組件、非揮發性記憶體組件或此等之一組合。在一些實施例中,記憶體子系統110係一儲存系統。一儲存系統之一實例係一NVDIMM。在一些實施例中,記憶體子系統110係一混合記憶體/儲存器子系統。一般言之,運算環境100可包含使用記憶體子系統110之一主機系統120。例如,主機系統120可將資料寫入至記憶體子系統110且自記憶體子系統110讀取資料。
主機系統120可係一運算裝置,諸如一桌上型電腦、膝上型電腦、網路伺服器、行動裝置或包含一記憶體及一處理裝置之此運算裝置。主機系統120可包含或耦合至記憶體子系統110使得主機系統120可自記憶體子系統110讀取資料或將資料寫入至記憶體子系統110。主機系統120可經由一實體主機介面耦合至記憶體子系統110。如本文中使用,「耦合至」通常係指組件之間之一連接,該連接可係有線或無線之一間接通信連接或直接通信連接(例如,無中介組件),包含諸如電、光學、磁性等之連接。一實體主機介面之實例包含(但不限於)一串列進階附接技術(SATA)介面、一周邊組件快速互連(PCIe)介面、通用串列匯流排(USB)介面、光纖通道、串列附接SCSI (SAS)等。實體主機介面可用於在主機系統120與記憶體子系統110之間傳輸資料。主機系統120可進一步利用一NVM快速(NVMe)介面以在記憶體子系統110藉由PCIe介面與主機系統120耦合時存取記憶體組件112A至112N。實體主機介面可提供用於在記憶體子系統110與主機系統120之間傳遞控制、位址、資料及其他信號之一介面。
記憶體組件112A至112N可包含不同類型之非揮發性記憶體組件及/或揮發性記憶體組件之任何組合。非揮發性記憶體組件之一實例包含一反及(NAND)型快閃記憶體。記憶體組件112A至112N之各者可包含一或多個記憶體胞陣列,諸如單位階胞元(SLC)或多位階胞元(MLC) (例如,三位階胞元(TLC)或四位階胞元(QLC))。在一些實施例中,一特定記憶體組件可包含記憶體胞元之一SLC部分及一MLC部分兩者。記憶體胞之各者可儲存由主機系統120使用之資料(例如,資料區塊)之一或多個位元。雖然描述非揮發性記憶體組件(諸如NAND型快閃記憶體),但記憶體組件112A至112N可係基於任何其他類型之記憶體(諸如一揮發性記憶體)。在一些實施例中,記憶體組件112A至112N可係(但不限於)隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)、相變記憶體(PCM)、磁性隨機存取記憶體(MRAM)、反或(NOR)快閃記憶體、電可擦除可程式化唯讀記憶體(EEPROM)及非揮發性記憶體胞元之一交叉點陣列。非揮發性記憶體之一交叉點陣列可基於體電阻之一改變而結合一可堆疊交叉柵格資料存取陣列執行位元儲存。另外,與許多基於快閃之記憶體相比,交叉點非揮發性記憶體可執行一原地寫入操作,其中可在先前未擦除一非揮發性記憶體胞之情況下程式化該非揮發性記憶體胞。此外,記憶體組件112A至112N之記憶體胞元可分組為可係指用於儲存資料之記憶體組件之一單元之記憶體頁或資料區塊。
記憶體系統控制器115 (下文稱為「控制器」)可與記憶體組件112A至112N通信以執行操作,諸如在記憶體組件112A至112N處讀取資料、寫入資料或擦除資料及其他此等操作。控制器115可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體或其等之一組合。控制器115可係一微控制器、專用邏輯電路(例如,一場可程式化閘陣列(FPGA)、一特定應用積體電路(ASIC)等)或其他適合處理器。控制器115可包含經組態以執行儲存於本端記憶體119中之指令之一處理器(處理裝置) 117。在所繪示實例中,控制器115之本端記憶體119包含一嵌入式記憶體,該嵌入式記憶體經組態以儲存用於執行各種程序、操作、邏輯流程之指令及控制記憶體子系統110之操作(包含處置記憶體子系統110與主機系統120之間之通信)之常式。在一些實施例中,本端記憶體119可包含儲存記憶體指標、經提取資料等之記憶體暫存器。本端記憶體119亦可包含用於儲存微碼之唯讀記憶體(ROM)。
一般言之,控制器115可自主機系統120接收命令或操作且可將命令或操作轉換為指令或適當命令以達成對記憶體組件112A至112N之所要存取。控制器115可負責其他操作,諸如平均抹除操作、廢棄項目收集操作、錯誤偵測及錯誤校正碼(ECC)操作、加密操作、快取操作及一邏輯區塊位址與相關聯於記憶體組件112A至112N之一實體區塊位址之間之位址轉譯。控制器115可進一步包含主機介面電路以經由實體主機介面與主機系統120通信。主機介面電路可將自主機系統接收之命令轉換為命令指令以存取記憶體組件112A至112N,以及將與記憶體組件112A至112N相關聯之回應轉換為用於主機系統120之資訊。
記憶體子系統100亦可包含未繪示之額外電路或組件。在一些實施例中,記憶體子系統110可包含一快取區或緩衝器(例如,DRAM)及可自控制器115接收一位址且解碼位址以存取記憶體組件112A至112N之位址電路(例如,一列解碼器及一行解碼器)。
記憶體子系統110包含可用於執行記憶體之一部分保存之一記憶體保存組件113。記憶體保存組件113可包含由處理器117執行之指令。此等指令可包含於用於操作控制器115之微碼中。記憶體保存組件113可用於接收至一非揮發性記憶體之一保存操作自其開始之動態隨機存取記憶體之一部分之一起始位移及待保存之一內容量,且載入起始位移及該內容量以保存至非揮發性雙列直插記憶體模組之一組暫存器中。記憶體保存組件113亦可用於回應於發生關於可操作地耦合至記憶體子系統110之主機120之一主機相關事件而基於載入至該組暫存器中之起始位移及該內容量而將動態隨機存取記憶體之部分之內容保存至非揮發性記憶體中。與主機120相關之事件可係主機之一電力中斷。在下文描述關於類似於記憶體保存組件113之一記憶體保存組件之操作之進一步細節。
圖2係經結構化具有一組控制暫存器209以提供執行自揮發性記憶體205至非揮發性記憶體(NVM) 212之一部分保存及自NVM 212返回至揮發性記憶體205之一對應復原之能力之一例示性NVDIMM-N 200之一實施例之一方塊圖。揮發性記憶體205可由可配置為一組DRAM裝置以儲存使用者資料之一DRAM 205實現,且NVM 212可經配置以備份動態隨機存取記憶體之內容。NVM 212可實現為一NAND快閃記憶體。該組控制暫存器209可經組態以含有將內容自其備份至NVM 212之DRAM 205之一部分之一識別符。NVDIMM-N 200可經結構化為一標準平台DIMM 210,其中DRAM 205及NVM 212整合於DIMM 210上。該組控制暫存器209可持續通過一電力循環。
在一傳統操作中,當主機電力中斷時,NVDIMM-N 200可使用由NVDIMM-N 200憑藉一能量源控制件240管理之一能量源245或使用由一主機220經由一V_12接腳244管理之一能量源243執行一災難保存操作以將DRAM 205內容複製至NVM 212中。一save_n接腳上之一save_n信號可起始災難保存操作。若某事未成功完成,則NVDIMM-N 200可經由event _n通知一主機220。完成係可經由一積體電路間(I2 C)匯流排242讀取之組態中之一狀態。該組控制暫存器209可包含用於自主機220自I2 C匯流排242接收訊息之暫存器。
該組控制暫存器209可配置於一控制器215中或與控制器215分開配置於NVDIMM-N 200上。控制器215可包含用於控制關於NVM 212之操作之一非揮發性記憶體控制器(NVM控制器) 234及用於控制關於DRAM 205之操作之一記憶體控制器232。控制器215可包含結合控制器215之指令以控制資料自DRAM 205至NVM 212及自NVM 212返回至DRAM 205之傳送之處理電路。此等指令可實現於一記憶體保存組件213 (諸如記憶體保存組件213中之微碼)中。替代地,此等指令可在控制器215外部儲存於DIMM 210上。此等指令可包含於控制器韌體中,該等指令包括在藉由對應控制器執行時可引起控制器旨在執行之操作之執行之指令,諸如一微碼。該組控制暫存器209可經組態以含有至NVM 212之一保存操作自其開始之DRAM 205之部分之一起始位移及待保存之一內容量。該組暫存器209中之暫存器可經分配用於關於自DRAM 205至NVM 212之記憶體之一部分保存之操作。
NVDIMM-N 200可係可操作以在一非斷電模式中將DRAM 205之經識別部分之內容儲存於NVM 212中。一非斷電模式係其中系統正在運行而未偵測一電力中斷或一即將發生的電力中斷之一模式。在非斷電模式中,主機220啟動並運行且可經操作以使用NVDIMM-N 200之能力進行記憶體之部分保存。主機220可具備在主機啟動並運行時之任何時間而非僅在電力循環時將主記憶體之部分儲存至非揮發性空間之能力。主機220可經由I2 C匯流排242使用一訊息通信以通知控制器215將一儲存區域(其係揮發性的)中之資料之一選定部分儲存至非揮發性記憶體之一區域中且隨後,復原資料之該選定部分。
主機220可具有一命令集,該命令集包含至NVDIMM-N 200之用於在非斷電模式中使用主機220將DRAM 205之經識別部分之內容儲存至NVM 212之一命令。控制器215可經組態以執行自主機220接收之命令,該命令可經由I2 C匯流排242接收。主機220可具有與NVDIMM-N 200之一應用程式介面(API)以指定至NVM 212之一保存操作自其開始之DRAM 205之部分中之一起始位移及待保存之一內容量以載入至該組控制暫存器209中。一API係指定軟體組件應互動之方式之常式、協定及工具之一集合。起始位移可呈一起始位址位元、一位址指標之形式或用於識別一起始位置之其他格式。主機220亦可使用指定待儲存之資料之一範圍長度之一API。
一位址映射與部分保存相關聯。位址映射將經保存之資料之邏輯位址映射至其實體位置。位址映射邏輯可安置於NVC中之NVM控制器234中,使得一基本輸入/輸出系統(BIOS)可在NVM控制器234中設定與主機220之映射相同之映射。BIOS係用於在開機程序(其係電力開啟起動)期間執行硬體初始化之非揮發性韌體。BIOS可提供用於作業系統及程式之運行時間服務。與一部分保存相關聯之邏輯位址至實體位置映射可由BIOS在開機期間載入。可多工化位址位元以在保存起始位置及長度中選擇行/列/庫/庫群組。
NVDIMM-N 200可係可操作以在耦合至NVDIMM-N 200之主機220之電力中斷或電力中斷之一偵測之後將DRAM 205之經識別部分之內容儲存於NVM 212中。NVDIMM-N 200亦可係可操作以在電力恢復之後將儲存於NVM 212中之DRAM 205之經識別部分之內容復原回至DRAM 205之經識別部分。
圖3係一NVDIMM中之一組暫存器309之一實例之一實施例之一表示。例如,NVDIMM可係圖2之NVDIMM-N 200。該組暫存器309可包含提供自揮發性記憶體至非揮發性記憶體之保存之一起始位置之一識別符之數個位置暫存器311-1、311-2、...、311-N。具有數個位置暫存器提供記憶體之一部分保存,其中部分保存包含經保存之揮發性記憶體之一部分之不同片段。針對N個片段,將存在起始位置1、起始位置2、...、起始位置N。各起始位置可由一位移、一位址、一位址指標或其他值或將識別保存操作之起始位置之值之組合提供。
將指定待自各起始位置保存之一資料量之內容量暫存器314-1、314-2、...、314-N與位置暫存器311-1、311-2、...、311-N相關聯。由於此等暫存器與一部分保存事件相關聯,故內容量暫存器314-1、314-2、...、314-N可稱為部分保存長度暫存器314-1、314-2、...、314-N。暫存器311-1、311-2、...、311-N及314-1、314-2、...、314-N可以數個不同格式配置。例如,該組控制暫存器309可包含多對暫存器,各對暫存器經組態以含有針對動態隨機存取記憶體之部分之不同片段之一起始位移及待保存之一內容量。一對此等暫存器之一實例係暫存器311-2及暫存器314-2。可多工化與邏輯位址至實體位置映射相關聯之位址位元以在保存起始位置及長度中選擇行/列/庫/庫群組。
NVDIMM可經組態以在一或多個部分保存長度暫存器具有用於停用部分保存之一定義值時,停用部分保存且備份動態隨機存取記憶體之全部以供儲存及復原。定義值可係表示待保存之記憶體之全容量之一數字,其可消除針對一指定內容量在一特定位置處起始之程序。替代地,用於停用部分保存之定義值可係零,此係因為不存在一部分保存。
圖4係具有已自揮發性記憶體移動至一NVDIMM中之非揮發性記憶體之使用者資料416與額外資料414-1及414-2之一片段400之一表示。例如,NVDIMM可係圖2之NVDIMM-N 200。NVDIMM可儲存來自動態隨機存取記憶體之部分之使用者資料之片段,其中各片段包含與各自片段之使用者資料相關之錯誤校正碼資料及內部路由資料。可將錯誤校正碼資料及內部路由資料劃分為兩個部分414-1及414-2,其中該兩個部分414-1及414-2儲存於各各自片段之一連續儲存區域之相對端處。
圖5係準備一非揮發性雙列直插記憶體模組以進行一部分記憶體保存之一例示性方法500之一實施例之特徵之一流程圖。方法500或類似於方法500之方法可部署於圖2之例示性NVDIMM-N 200上且相應地,僅參考其藉由實例描述。將瞭解,方法500或類似於方法500之方法可部署於其他硬體組態上。同樣地,圖2之例示性NVDIMM-N 200可用於部署用於準備一非揮發性雙列直插記憶體模組以進行一部分記憶體保存之其他方法。在操作510處,接收至一非揮發性記憶體之一保存操作自其開始之動態隨機存取記憶體之一部分之一起始位移及待保存之一內容量。動態隨機存取記憶體及非揮發性記憶體經安置於一非揮發性雙列直插記憶體模組 (諸如圖2之NVDIMM-N 200)中。起始位移及待保存之一內容量可藉由NVDIMM-N 200經由I2 C匯流排242自主機220接收。
在操作520處,將起始位移及待保存之內容量載入至非揮發性雙列直插記憶體模組之一組暫存器(例如,NVDIMM-N 200之該組暫存器209)中。在操作530處,回應於發生關於可操作地耦合至非揮發性雙列直插記憶體模組之一主機之一主機相關事件而基於載入至該組暫存器中之起始位移及該內容量將動態隨機存取記憶體之部分之內容保存至非揮發性記憶體中。主機相關事件可係主機(諸如NVDIMM-N 200之主機220)之一電力中斷。可經由一save_n輸入將此電力中斷傳達至NVDIMM-N 200。主機相關事件可係自主機(諸如主機220經由圖2之I2 C匯流排242)接收引導非揮發性雙列直插記憶體模組之一控制器(諸如控制器215)將動態隨機存取記憶體之部分之內容保存至非揮發性記憶體中之一訊息。
方法500或類似於方法500之方法之變動可包含可取決於此等方法之應用及/或其中實施此等方法之系統之架構而組合之數項不同實施例。方法500或類似於方法500之方法之變動可包含操作一非揮發性雙列直插記憶體模組以進行部分記憶體保存,如本文中教示。此等方法可包含基於載入至該組暫存器中之起始位移及該內容量而將保存至非揮發性記憶體中之動態隨機存取記憶體之部分之內容復原回至動態隨機存取記憶體之部分中。方法之此等變動可包含基於與使用者資料一起儲存之內部路由資料將保存至非揮發性記憶體中之動態隨機存取記憶體之部分之內容復原回至動態隨機存取記憶體之部分中,該使用者資料係來自動態隨機存取記憶體之部分而保存至非揮發性記憶體中之內容。
圖6係進行一非揮發性雙列直插記憶體模組中之記憶體之一部分保存之一例示性方法600之一實施例之特徵之一流程圖。方法600或類似於方法600之方法可部署於圖2之例示性NVDIMM-N 200上且相應地,僅參考其藉由實例描述。將瞭解,方法600或類似於方法600之方法可部署於其他硬體組態上。同樣地,圖2之例示性NVDIMM-N 200可用於部署用於準備一非揮發性雙列直插記憶體模組以進行一部分記憶體保存之其他方法。在操作610處,接收用於將一非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之內容保存至非揮發性雙列直插記憶體模組之一非揮發性記憶體中之一觸發。例如,觸發可係在圖2之架構中自主機220至控制器215之信號save_n。替代地,觸發可係在圖2之架構中經由I2 C匯流排242自主機220至NVDIMM-N 200之一訊息。
在操作620處,存取非揮發性雙列直插記憶體模組之一組暫存器且判定自其開始動態隨機存取記憶體之部分之內容之保存之動態隨機存取記憶體之部分之一起始位移。例如,在圖2之架構中,可透過執行控制器215而存取NVDIMM-N 200之該組暫存器209。起始位移之判定可包含讀取該組暫存器或讀取該組暫存器且將關於起始位置之讀取資料轉譯為適當起始位置。存取該組暫存器且判定起始位移可包含存取該組暫存器之多個暫存器以獲得多個起始位移,與部分之一片段相關之各起始位移不同於所獲得之其他起始位移。可回應於來自產生位移之一主機之一信號而基於針對各自片段獲得之起始位移復原動態隨機存取記憶體之部分之各片段。
在操作630處,判定關於起始位移之來自該組暫存器中之一部分保存長度暫存器之待保存之一內容量。判定待儲存之該內容量可包含判定當部分保存長度暫存器具有用於停用部分保存之一定義值時,待儲存之該內容量包含動態隨機存取記憶體之全部。定義值可係用於識別無部分保存之零或用於識別全記憶體之一保存之某一其他值。
在操作640處,基於存取該組暫存器而將動態隨機存取記憶體之部分之內容保存至非揮發性記憶體中。方法600或類似於方法600之方法之變動可包含可取決於此等方法之應用及/或其中實施此等方法之系統之架構而組合之數項不同實施例。方法600或類似於方法600之方法之變動可包含操作一非揮發性雙列直插記憶體模組以進行一部分記憶體保存,如本文中教示。
圖7係一主機準備一非揮發性雙列直插記憶體模組以進行一部分記憶體保存之一例示性方法700之一實施例之特徵之一流程圖。方法700或類似於方法700之方法可部署於圖2之例示性NVDIMM-N 200上且相應地,僅參考其藉由實例描述。將瞭解,方法700或類似於方法700之方法可部署於其他硬體組態上。同樣地,圖2之例示性NVDIMM-N 200可用於部署用於準備一非揮發性雙列直插記憶體模組以進行一部分記憶體保存之其他方法。在操作710處,在一主機中,判定待保存至一非揮發性雙列直插記憶體模組之一非揮發性記憶體中之非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之內容,其中主機可操作地耦合至非揮發性雙列直插記憶體模組。例如,主機可係可操作地耦合至圖2之NVDIMM-N 200之主機220。待保存於一非揮發性雙列直插記憶體模組中之記憶體中之內容之判定可為主機提供具有對所保存及復原之內容之更佳控制及更多控制之能力。
在操作720處,在主機中,判定自其開始動態隨機存取記憶體之部分之內容之保存之動態隨機存取記憶體之部分之一起始位移。在操作730處,在主機中,判定用於自動態隨機存取記憶體保存至非揮發性記憶體之一內容量。在操作740處,將起始位移及該內容量自主機載入至非揮發性雙列直插記憶體模組之一組控制暫存器中。自主機載入起始位移及該內容量可包含使用主機與非揮發性雙列直插記憶體模組之間之一應用程式介面。
方法700或類似於方法700之方法之變動可包含可取決於此等方法之應用及/或其中實施此等方法之系統之架構而組合之數項不同實施例。方法700或類似於方法700之方法之變動可包含操作一非揮發性雙列直插記憶體模組以進行部分記憶體保存,如本文中教示。此等方法可包含藉由主機憑藉將用於停用部分保存之一定義值載入該組暫存器之一部分保存長度暫存器而停用動態隨機存取記憶體之部分保存。此等方法可包含在主機中產生一訊息且將訊息發送至非揮發性雙列直插記憶體模組之一控制器以將在一部分保存中保存至非揮發性記憶體之內容復原回至動態隨機存取記憶體。
在各項實施例中,一非揮發性雙列直插記憶體模組包括:動態隨機存取記憶體,其經配置以儲存使用者資料;非揮發性記憶體,其經配置以備份動態隨機存取記憶體之內容;及一組控制暫存器,其等經組態以含有將內容自其備份至非揮發性記憶體之動態隨機存取記憶體之一部分之一識別符。該組控制暫存器可經組態以含有至非揮發性記憶體之一保存操作自其開始之動態隨機存取記憶體之部分之一起始位移及待保存之一內容量。該組控制暫存器可含有一部分保存長度暫存器。非揮發性雙列直插記憶體模組可經組態以在部分保存長度暫存器具有用於停用部分保存之一定義值時,停用部分保存且備份動態隨機存取記憶體之全部以供保存及復原。用於停用部分保存之定義值可係零。
非揮發性雙列直插記憶體模組可經配置以可操作以在一非斷電模式中將動態隨機存取記憶體之經識別部分之內容儲存於非揮發性記憶體中。非揮發性雙列直插記憶體模組可經配置以可操作以在耦合至非揮發性雙列直插記憶體模組之一主機之電力中斷或電力中斷之一偵測之後將動態隨機存取記憶體之經識別部分之內容儲存於非揮發性記憶體中。非揮發性雙列直插記憶體模組可經配置以可操作以在電力恢復之後將儲存於非揮發性記憶體中之動態隨機存取記憶體之經識別部分之內容復原回至動態隨機存取記憶體之經識別部分。非揮發性雙列直插記憶體模組可包含如本文中教示之各種特徵或特徵之組合。
在各項實施例中,一系統包括:一主機;及一非揮發性雙列直插記憶體模組,其可操作地耦合至該主機,其中該非揮發性雙列直插記憶體模組包含:動態隨機存取記憶體,其經配置以儲存使用者資料;非揮發性記憶體,其經配置以備份動態隨機存取記憶體之內容;一控制器,其控制該動態隨機存取記憶體及該非揮發性記憶體;及一組控制暫存器,其等經組態以含有將內容自其備份至非揮發性記憶體之動態隨機存取記憶體之一部分之一識別符。主機可具有與非揮發性雙列直插記憶體模組之一應用程式介面以指定至非揮發性記憶體之一保存操作自其開始之動態隨機存取記憶體之部分中之一起始位移及待保存之一內容量以載入至該組控制暫存器中。主機可具有一命令集,該命令集包含至非揮發性雙列直插記憶體模組之用於在一非斷電模式中使用主機將動態隨機存取記憶體之經識別部分之內容儲存於非揮發性記憶體中之一命令。控制器可經組態以執行自主機接收之命令。
該組控制暫存器可包含多對暫存器,其中各對暫存器經組態以含有針對動態隨機存取記憶體之部分之不同片段之一起始位移及待保存之一內容量。非揮發性記憶體可儲存來自動態隨機存取記憶體之部分之使用者資料之片段,各片段包含與各自片段之使用者資料相關之錯誤校正碼資料及內部路由資料。可將錯誤校正碼資料及內部路由資料劃分為兩個部分,其中該兩個部分儲存於各各自片段之一連續儲存區域之相對端處。系統可包含如本文中教示之各種特徵或特徵之組合。
圖8繪示在其內可執行用於引起機器執行本文中論述之任何一或多個方法論之一指令集之一電腦系統800之一例示性機器。在一些實施例中,電腦系統800可對應於一主機系統(例如,圖1之主機系統120),該主機系統包含、耦合至或利用一記憶體子系統(例如,圖1之記憶體子系統110)或可用於執行一控制器之操作(例如,執行一作業系統以執行對應於圖1之記憶體保存組件113或如本文中教示之其他記憶體保存組件之操作)。在替代實施例中,機器可連接(例如,網路連結)至一LAN、一內部網路、一商際網路或網際網路中之其他機器。機器可以一伺服器或一用戶端機器之身份在用戶端-伺服器網路環境中操作,或作為一同級機器在一同級間(或分散式)網路環境中操作,或作為一伺服器或一用戶端機器在一雲端運算基礎設施或環境中操作。
機器可為一個人電腦(PC)、一平板PC、一機上盒(STB)、一個人數位助理(PDA)、一蜂巢式電話、一網頁設備、一伺服器、一網路路由器、一交換器或橋接器,或能夠執行指定應由該機器採取之動作的一指令集(循序或以其他方式)之任何機器。此外,雖然繪示一單一機器,但術語「機器」亦應視為包含個別地或聯合地執行一組(或多組)指令以執行本文中論述之方法論之任何一或多者的機器之任何集合。
例示性電腦系統800包含一處理裝置802、一主記憶體804 (例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM),諸如同步DRAM (SDRAM)或註冊DRAM (RDRAM)等)、可儲存一BIOS 807之一靜態記憶體806 (例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等)及一資料儲存系統818,其等經由一匯流排830彼此通信。
處理裝置802表示一或多個通用處理裝置,諸如一微處理器、一中央處理單元或類似者。更特定言之,處理裝置可為一複雜指令集運算(CISC)微處理器、精簡指令集運算(RISC)微處理器、超長指令字(VLIW)微處理器或實施其他指令集之一處理器或實施指令集之一組合之處理器。處理裝置802亦可為一或多個專用處理裝置,諸如一特定應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)、一數位信號處理器(DSP)、網路處理器或類似者。處理裝置802經組態以執行用於執行本文中論述之操作及步驟之指令826。電腦系統800可進一步包含用於經由網路820通信之一網路介面裝置808。
資料儲存系統818可包含一機器可讀儲存媒體824 (亦稱為一電腦可讀媒體),其上儲存體現本文中描述之方法論或功能之任何一或多者之指令826或軟體之一或多個集合。指令826在其等藉由電腦系統800執行期間亦可完全或至少部分駐留於主記憶體804內及/或處理裝置802內,主記憶體804及處理裝置802亦構成機器可讀儲存媒體。機器可讀儲存媒體824、資料儲存系統818及/或主記憶體804可對應於圖1之記憶體子系統110。
在一項實施例中,指令826包含用於實施一記憶體保存組件813 (其可類似於圖1之記憶體保存組件113)之功能性之指令。雖然在一例示性實施例中將機器可讀儲存媒體824展示為一單一媒體,但術語「機器可讀儲存媒體」應視為包含儲存一或多個指令集之一單一媒體或多個媒體。術語「電腦可讀儲存媒體」亦應視為包含能夠儲存或編碼一指令集以由機器執行且引起該機器執行本發明之方法論之任何一或多者之任何媒體。因此,術語「電腦可讀儲存媒體」應視為包含(但不限於)固態記憶體、光學媒體及磁性媒體。
已依據對一電腦記憶體內之資料位元之操作的演算法及符號表示呈現先前詳細描述之一些部分。此等演算法描述及表示係由熟習資料處理技術者使用以將其等工作主旨最有效地傳達給其他熟習此項技術者之手段。一演算法在此且通常被視為導致一所要結果之一自行一致操作序列。該等操作係需要實體量之實體操縱之操作。此等量通常(但不一定)採取能夠經儲存組合、比較及以其他方式操縱之電或磁性信號之形式。已證明,有時(主要因通用之故),將此等信號稱為位元、值、元件、符號、字元、術語、數字或類似者係方便的。以下係根據本文中之教示之方法、設備及系統之例示性實施例。
一例示性非揮發性雙列直插記憶體模組1可包括:動態隨機存取記憶體,其經配置以儲存使用者資料;非揮發性記憶體,其經配置以備份該動態隨機存取記憶體之內容;及一組控制暫存器,其等經組態以含有將內容自其備份至該非揮發性記憶體之該動態隨機存取記憶體之一部分之一識別符。
一例示性非揮發性雙列直插記憶體模組2可包括例示性非揮發性雙列直插記憶體模組1之元件,其中該組控制暫存器經組態以含有至該非揮發性記憶體之一保存操作自其開始之該動態隨機存取記憶體之該部分之一起始位移及待保存之一內容量。
一例示性非揮發性雙列直插記憶體模組3可包括任何前述例示性非揮發性雙列直插記憶體模組之元件,其中該非揮發性雙列直插記憶體模組可操作以在一非斷電模式中將該動態隨機存取記憶體之該經識別部分之該等內容儲存於該非揮發性記憶體中。
一例示性非揮發性雙列直插記憶體模組4可包括任何前述例示性非揮發性雙列直插記憶體模組之元件,其中該非揮發性雙列直插記憶體模組可操作以在耦合至該非揮發性雙列直插記憶體模組之一主機之電力中斷或電力中斷之一偵測之後將該動態隨機存取記憶體之該經識別部分之該等內容儲存於該非揮發性記憶體中。
一例示性非揮發性雙列直插記憶體模組5可包括任何前述例示性非揮發性雙列直插記憶體模組之元件,其中該非揮發性雙列直插記憶體模組可操作以在電力恢復之後將儲存於該非揮發性記憶體中之該動態隨機存取記憶體之該經識別部分之該等內容復原回至該動態隨機存取記憶體之該經識別部分。
一例示性非揮發性雙列直插記憶體模組6可包括任何前述例示性非揮發性雙列直插記憶體模組之元件,其中該組控制暫存器含有一部分保存長度暫存器且該非揮發性雙列直插記憶體模組經組態以在該部分保存長度暫存器具有用於停用部分保存之一定義值時,停用部分儲存且備份該動態隨機存取記憶體之全部以供儲存及復原。
一例示性非揮發性雙列直插記憶體模組3可包括任何前述例示性非揮發性雙列直插記憶體模組之元件,其中用於停用部分保存之該定義值係零。
一種例示性系統1可包括:一主機;及一非揮發性雙列直插記憶體模組,其可操作地耦合至該主機,該非揮發性雙列直插記憶體模組包含:動態隨機存取記憶體,其經配置以儲存使用者資料;非揮發性記憶體,其經配置以備份該動態隨機存取記憶體之內容;一控制器,其控制該動態隨機存取記憶體及該非揮發性記憶體;及一組控制暫存器,其等經組態以含有將內容自其備份至該非揮發性記憶體之該動態隨機存取記憶體之一部分之一識別符。
一例示性系統2可包括例示性系統1之元件,其中該主機具有與該非揮發性雙列直插記憶體模組之一應用程式介面以指定至該非揮發性記憶體之一保存操作自其開始之該動態隨機存取記憶體之該部分中之一起始位移及待保存之一內容量以載入至該組控制暫存器中。
一例示性系統3可包括任何前述例示性系統之元件,其中該主機具有一命令集,該命令集包括至該非揮發性雙列直插記憶體模組之用於在一非斷電模式中使用該主機將該動態隨機存取記憶體之該經識別部分之該等內容儲存於該非揮發性記憶體中之一命令。
一例示性系統4可包括任何前述例示性系統之元件,其中該控制器經組態以執行自該主機接收之該命令。
一例示性系統5可包括任何前述例示性系統之元件,其中該組控制暫存器包括多對暫存器,各對暫存器經組態以含有針對該動態隨機存取記憶體之該部分之不同片段之一起始位移及待保存之一內容量。
一例示性系統6可包括任何前述例示性系統之元件,其中該非揮發性記憶體儲存來自該動態隨機存取記憶體之該部分之使用者資料之片段,各片段包含與該各自片段之該使用者資料相關之錯誤校正碼資料及內部路由資料。
一例示性系統7可包括任何前述例示性系統之元件,其中將該錯誤校正碼資料及該內部路由資料劃分為兩個部分,其中該兩個部分儲存於各各自片段之一連續儲存區域之相對端處。
一例示性方法1可包括:接收至一非揮發性記憶體之一保存操作自其開始之動態隨機存取記憶體之一部分之一起始位移及待保存之一內容量,該動態隨機存取記憶體及該非揮發性記憶體安置於一非揮發性雙列直插記憶體模組中;將該起始位移及待保存之該內容量載入至該非揮發性雙列直插記憶體模組之一組暫存器中;及回應於發生關於可操作地耦合至該非揮發性雙列直插記憶體模組之一主機之一主機相關事件而基於載入至該組暫存器中之該起始位移及該內容量將該動態隨機存取記憶體之該部分之內容保存至該非揮發性記憶體中。
一例示性方法2可包括例示性方法1之元件,其中該主機相關事件係該主機之一電力中斷。
一例示性方法3可包括任何前述例示性方法之元件,其進一步包括基於載入至該組暫存器中之該起始位移及該內容量而將保存至該非揮發性記憶體中之該動態隨機存取記憶體之該部分之該內容復原回至該動態隨機存取記憶體之該部分中。
一例示性方法4可包括任何前述例示性方法之元件,其中其進一步包括基於與使用者資料一起儲存之內部路由資料將保存至該非揮發性記憶體中之該動態隨機存取記憶體之該部分之該內容復原回至該動態隨機存取記憶體之該部分中,該使用者資料係來自該動態隨機存取記憶體之該部分而保存至該非揮發性記憶體中之內容。
一例示性方法5可包括任何前述例示性方法之元件,其中該主機相關事件係自該主機接收引導該非揮發性雙列直插記憶體模組之一控制器將該動態隨機存取記憶體之該部分之該內容保存至該非揮發性記憶體中之一訊息。
一例示性方法6可包括:接收用於將一非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之內容保存至一非揮發性雙列直插記憶體模組之一非揮發性記憶體中之一觸發;存取該非揮發性雙列直插記憶體模組之一組暫存器且判定自其開始動態隨機存取記憶體之該部分之該等內容之該保存之動態隨機存取記憶體之該部分之一起始位移;判定關於該起始位移之來自該組暫存器中之一部分保存長度暫存器之待保存之一內容量;及基於存取該組暫存器而將該動態隨機存取記憶體之該部分之該內容保存至該非揮發性記憶體中。
一例示性方法7可包括例示性方法6之元件,其中存取該組暫存器且判定該起始位移包括存取該組暫存器之多個暫存器以獲得多個起始位移,與該部分之一片段相關之各起始位移不同於所獲得之其他起始位移。
一例示性方法8可包括任何前述例示性方法6及7之元件,其進一步包括回應於來自產生該等位移之一主機之一信號而基於針對該等各自片段獲得之該等起始位移復原該動態隨機存取記憶體之該部分之各片段。
一例示性方法9可包括任何前述例示性方法6至8之元件,其中判定待保存之該內容量包括判定當該部分保存長度暫存器具有用於停用部分保存之一定義值時,待儲存之該內容量包括該動態隨機存取記憶體之全部。
一例示性方法10可包括:在一主機中,判定待保存至一非揮發性雙列直插記憶體模組之一非揮發性記憶體中之該非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之內容,該主機可操作地耦合至該非揮發性雙列直插記憶體模組;在該主機中,判定自其開始動態隨機存取記憶體之該部分之該等內容之該保存之動態隨機存取記憶體之該部分之一起始位移;在該主機中,判定用於自該動態隨機存取記憶體保存至該非揮發性記憶體之一內容量;及將該起始位移及該內容量自該主機載入至該非揮發性雙列直插記憶體模組之一組控制暫存器中。
一例示性方法11可包括例示性方法10之元件,其進一步包括藉由該主機憑藉將用於停用部分保存之一定義值載入該組暫存器之一部分保存長度暫存器而停用該動態隨機存取記憶體之部分保存。
一例示性方法12可包括任何前述例示性方法10及11之元件,其進一步包括在該主機中產生一訊息且將該訊息發送至該非揮發性雙列直插記憶體模組之一控制器以將在一部分保存中保存至該非揮發性記憶體之內容復原回至該動態隨機存取記憶體。
一例示性方法13可包括任何前述例示性方法10至12之元件,其中自該主機載入該起始位移及該內容量包括使用該主機與該非揮發性雙列直插記憶體模組之間之一應用程式介面。
雖然已在本文中繪示且描述特定實施例,但一般技術者將瞭解,自本文中之教示導出之其他配置可取代所展示之特定實施例。各項實施例使用本文中描述之實施例之排列及/或組合。應理解,上文之描述旨在為闡釋性,且非限制性,且本文中採用之片語或術語係為了描述之目的。熟習此項技術者在研究上述描述後將明白上述實施例之組合及其他實施例。
100‧‧‧運算環境 110‧‧‧記憶體子系統 112A至112N‧‧‧記憶體組件 113‧‧‧記憶體保存組件 115‧‧‧記憶體系統控制器 117‧‧‧處理器 119‧‧‧本端記憶體 120‧‧‧主機系統 200‧‧‧非揮發性雙列直插記憶體模組(NVDIMM)-N 205‧‧‧揮發性記憶體/動態隨機存取記憶體(DRAM) 209‧‧‧一組控制暫存器 210‧‧‧雙列直插記憶體模組(DIMM) 212‧‧‧非揮發性記憶體(NVM) 213‧‧‧記憶體保存組件 215‧‧‧控制器 220‧‧‧主機 232‧‧‧記憶體控制器 234‧‧‧非揮發性記憶體(NVM)控制器 240‧‧‧能量源控制件 242‧‧‧I2C匯流排 243‧‧‧能量源 244‧‧‧V_12接腳 245‧‧‧能量源 309‧‧‧一組暫存器 311-1至311-N‧‧‧位置暫存器 314-1至314-N‧‧‧內容量暫存器/部分保存長度暫存器 400‧‧‧片段 414-1‧‧‧額外資料 414-2‧‧‧額外資料 416‧‧‧使用者資料 500‧‧‧方法 510‧‧‧操作 520‧‧‧操作 530‧‧‧操作 600‧‧‧方法 610‧‧‧操作 620‧‧‧操作 630‧‧‧操作 640‧‧‧操作 700‧‧‧方法 710‧‧‧操作 720‧‧‧操作 730‧‧‧操作 740‧‧‧操作 800‧‧‧電腦系統 802‧‧‧處理裝置 804‧‧‧主記憶體 806‧‧‧靜態記憶體 807‧‧‧基本輸入/輸出系統(BIOS) 808‧‧‧網路介面裝置 813‧‧‧記憶體保存組件 818‧‧‧資料儲存系統 820‧‧‧網路 824‧‧‧機器可讀儲存媒體 826‧‧‧指令 830‧‧‧匯流排 save_n‧‧‧信號
自下文給出之詳細描述且自本發明之各項實施例之隨附圖式,將更完全理解本發明。然而,不應將圖式視為將本發明限於特定實施例,而僅係為了解釋及理解。
圖1繪示根據各項實施例之包含一記憶體子系統之一例示性運算環境。
圖2係根據各項實施例之經結構化具有一組控制暫存器以提供執行自揮發性記憶體至非揮發性記憶體之一部分保存及自非揮發性記憶體返回至揮發性記憶體之一對應復原之能力之一例示性非揮發性雙列直插記憶體模組之一方塊圖。
圖3係根據各項實施例之一非揮發性雙列直插記憶體模組中之一組暫存器之一實例之一表示。
圖4係根據各項實施例之具有已自揮發性記憶體移動至一非揮發性雙列直插記憶體模組中之非揮發性記憶體之使用者資料與額外資料之一片段之一表示。
圖5係根據各項實施例之準備一非揮發性雙列直插記憶體模組以進行一部分記憶體保存之一例示性方法之特徵之一流程圖。
圖6係根據各項實施例之進行一非揮發性雙列直插記憶體模組中之記憶體之一部分保存之一例示性方法之特徵之一流程圖。
圖7係根據各項實施例之一主機準備一非揮發性雙列直插記憶體模組以進行一部分記憶體保存之一例示性方法之特徵之一流程圖。
圖8係其中本發明之實施例可操作之一例示性電腦系統之一方塊圖。
200‧‧‧非揮發性雙列直插記憶體模組(NVDIMM)-N
205‧‧‧揮發性記憶體/動態隨機存取記憶體(DRAM)
209‧‧‧一組控制暫存器
210‧‧‧雙列直插記憶體模組(DIMM)
212‧‧‧非揮發性記憶體(NVM)
213‧‧‧記憶體保存組件
215‧‧‧控制器
220‧‧‧主機
232‧‧‧記憶體控制器
234‧‧‧非揮發性記憶體(NVM)控制器
240‧‧‧能量源控制件
242‧‧‧I2C匯流排
243‧‧‧能量源
244‧‧‧V_12接腳
245‧‧‧能量源
save_n‧‧‧信號

Claims (17)

  1. 一種非揮發性雙列直插記憶體模組,其包括:動態隨機存取記憶體,其經配置以儲存使用者資料;非揮發性記憶體,其經配置以備份該動態隨機存取記憶體之內容;一第一介面,用於在一主機及一控制器之間通信資料;一第二介面,用於在該主機及該動態隨機存取記憶體之間通信資料;一組控制暫存器;及該控制器,其經組態以執行包括以下多個操作:自該主機經由該第一介面接收該動態隨機存取記憶體之一部分之一起始位移(starting offset)及待保存之一內容量,至該非揮發性記憶體之一保存操作(save operation)係自該動態隨機存取記憶體之該部分之該起始位移開始;將該起始位移及待保存之該內容量載入至該組控制暫存器中;及回應於關於該主機之一主機相關事件之發生,基於載入至該控制組暫存器中之該起始位移及該內容量,將該動態隨機存取記憶體之該部分之內容保存至該非揮發性記憶體中,該主機相關事件包括自該主機經由該第一介面之一訊息之接收或經由該第二介面之一信號之該主機之電力中斷之偵測之至少一者。
  2. 如請求項1之非揮發性雙列直插記憶體模組,其中該非揮發性雙列直插記憶體模組可操作以在一非斷電模式中將該動態隨機存取記憶體之該部 分之該內容儲存於該非揮發性記憶體中。
  3. 如請求項1之非揮發性雙列直插記憶體模組,其中該非揮發性雙列直插記憶體模組可操作以在該主機之電力恢復之後將儲存於該非揮發性記憶體中之該動態隨機存取記憶體之該部分之該內容復原回至該動態隨機存取記憶體之該部分。
  4. 如請求項1之非揮發性雙列直插記憶體模組,其中該組控制暫存器含有一部分保存長度暫存器(a partial save length register),且該非揮發性雙列直插記憶體模組經組態以在該部分保存長度暫存器具有用於停用部分保存之一定義值時,停用部分保存且備份該動態隨機存取記憶體之全部。
  5. 如請求項4之非揮發性雙列直插記憶體模組,其中用於停用部分保存之該定義值係零。
  6. 一種用於管理之一非揮發性雙列直插記憶體模組之方法,其包括:藉由該非揮發性雙列直插記憶體模組之一控制器接收動態隨機存取記憶體之一部分之一起始位移及待保存之一內容量,至一非揮發性記憶體之一保存操作係自該動態隨機存取記憶體之該部分之該起始位移開始,該非揮發性雙列直插記憶體模組包括該動態隨機存取記憶體、該非揮發性記憶體、用於在一主機及該控制器之間通信資料之一第一介面、及用於在該主機及該動態隨機存取記憶體之間通信資料之一第二介面,該起始位移及待保存之該內容量自該主機經由該第一介面所接收; 藉由該控制器將該起始位移及待保存之該內容量載入至該非揮發性雙列直插記憶體模組之一組控制暫存器中;及回應於關於該主機之一主機相關事件之發生,基於載入至該組控制暫存器中之該起始位移及該內容量,藉由該控制器將該動態隨機存取記憶體之該部分之內容保存至該非揮發性記憶體中,該主機相關事件包括自該主機經由該第一介面之一訊息之接收或經由該第二介面之一信號之該主機之電力中斷之偵測之至少一者。
  7. 如請求項6之方法,其進一步包括基於載入至該組控制暫存器中之該起始位移及該內容量而將保存至該非揮發性記憶體中之該動態隨機存取記憶體之該部分之該內容復原回至該動態隨機存取記憶體之該部分中。
  8. 如請求項6之方法,其進一步包括基於與使用者資料一起儲存之內部路由資料將保存至該非揮發性記憶體中之該動態隨機存取記憶體之該部分之該內容復原回至該動態隨機存取記憶體之該部分中,該使用者資料係來自該動態隨機存取記憶體之該部分而保存至該非揮發性記憶體中之內容。
  9. 如請求項6之方法,其中來自該主機之該訊息引導該非揮發性雙列直插記憶體模組之該控制器將該動態隨機存取記憶體之該部分之該內容保存至該非揮發性記憶體中。
  10. 一種用於管理之一非揮發性雙列直插記憶體模組之方法,其包括:藉由該非揮發性雙列直插記憶體模組之一控制器接收動態隨機存取 記憶體之一部分之一起始位移及待保存之一內容量,至一非揮發性記憶體之一保存操作係自該動態隨機存取記憶體之該部分之該起始位移開始,該非揮發性雙列直插記憶體模組包括用於在一主機及該控制器之間通信資料之一第一介面及用於在該主機及該動態隨機存取記憶體之間通信資料之一第二介面,該起始位移及待保存之該內容量自該主機經由該第一介面所接收;藉由該控制器將該起始位移及待保存之該內容量載入至該非揮發性雙列直插記憶體模組之一組控制暫存器中;藉由該控制器接收用於將該非揮發性雙列直插記憶體模組之該動態隨機存取記憶體之一部分之內容保存至該非揮發性雙列直插記憶體模組之該非揮發性記憶體中之一觸發,該觸發經由該第二介面之一信號所接收;藉由該控制器存取該組控制暫存器以判定該動態隨機存取記憶體之該部分之一起始位移,該動態隨機存取記憶體之該部分之該內容之該保存操作係自該動態隨機存取記憶體之該部分之該起始位移開始;藉由該控制器存取該組控制暫存器中之一部分保存長度暫存器以判定待保存之一內容量,該部分保存長度暫存器相對於該起始位移相關聯;及基於經判定之該起始位移及經判定之待保存之該內容量,藉由該控制器將該動態隨機存取記憶體之該部分之該內容保存至該非揮發性記憶體中。
  11. 如請求項10之方法,其中該存取該組控制暫存器以判定該起始位移包括存取該組控制暫存器之多個控制暫存器以獲得多個起始位移,與該部 分之一片段相關之各起始位移不同於所獲得之其他起始位移。
  12. 如請求項11之方法,其進一步包括回應於來自產生該等起始位移之該主機之一信號而基於針對該等片段獲得之該等起始位移以復原該動態隨機存取記憶體之該部分之各片段。
  13. 如請求項10之方法,其進一步包括判定當該部分保存長度暫存器具有用於停用部分保存之一定義值時,待保存之該內容量包括該動態隨機存取記憶體之全部。
  14. 一種用於管理之一非揮發性雙列直插記憶體模組之方法,其包括:藉由一主機,判定待保存至該非揮發性雙列直插記憶體模組之一非揮發性記憶體中之該非揮發性雙列直插記憶體模組之動態隨機存取記憶體之一部分之內容,該主機可操作地耦合至該非揮發性雙列直插記憶體模組,該非揮發性雙列直插記憶體模組包括該動態隨機存取記憶體、該非揮發性記憶體、一控制器、用於在該主機及該控制器之間通信資料之一第一介面、及用於在該主機及該動態隨機存取記憶體之間通信資料之一第二介面;藉由該主機,判定該動態隨機存取記憶體之該部分之一起始位移,該動態隨機存取記憶體之該部分之該內容之保存係自該動態隨機存取記憶體之該部分之該起始位移開始;藉由該主機,判定用於自該動態隨機存取記憶體保存至該非揮發性記憶體之一內容量;及 經由該第一介面將該起始位移及該內容量自該主機載入至該非揮發性雙列直插記憶體模組之一組控制暫存器中。
  15. 如請求項14之方法,其進一步包括憑藉將具有停用部分保存之一定義值之該組控制暫存器之一部分保存長度暫存器自該主機載入至該組控制暫存器中而藉由該主機停用該動態隨機存取記憶體之部分保存。
  16. 如請求項14之方法,其進一步包括藉由該主機產生一訊息且經由該第一介面將該訊息自該主機發送至該非揮發性雙列直插記憶體模組之一控制器,以將在一部分保存(partial save)中保存至該非揮發性記憶體之內容復原回至該動態隨機存取記憶體,經復原之該內容藉由該主機經由該第二介面所存取。
  17. 如請求項14之方法,其中自該主機載入該起始位移及該內容量至該組控制暫存器中包括使用一應用程式介面。
TW108104257A 2018-02-08 2019-02-01 記憶體之部分儲存 TWI731302B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862628157P 2018-02-08 2018-02-08
US62/628,157 2018-02-08
US16/113,221 US10831393B2 (en) 2018-02-08 2018-08-27 Partial save of memory
US16/113,221 2018-08-27

Publications (2)

Publication Number Publication Date
TW201941057A TW201941057A (zh) 2019-10-16
TWI731302B true TWI731302B (zh) 2021-06-21

Family

ID=67476667

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108104257A TWI731302B (zh) 2018-02-08 2019-02-01 記憶體之部分儲存

Country Status (5)

Country Link
US (2) US10831393B2 (zh)
EP (1) EP3750065A4 (zh)
CN (1) CN111819548A (zh)
TW (1) TWI731302B (zh)
WO (1) WO2019156965A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579791B2 (en) 2018-02-08 2023-02-14 Micron Technology, Inc. Partial save of memory

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042374B2 (en) * 2019-05-02 2021-06-22 International Business Machines Corporation Non-volatile dual in-line memory module storage
TWI791966B (zh) 2020-03-27 2023-02-11 瑞昱半導體股份有限公司 記憶體控制器與資料處理方法
TWI796935B (zh) * 2022-01-19 2023-03-21 宏碁股份有限公司 記憶體控制方法與記憶體儲存系統

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033431A1 (en) * 2005-08-04 2007-02-08 Dot Hill Systems Corporation Storage controller super capacitor adaptive life monitor
TWM415338U (en) * 2011-06-10 2011-11-01 Shu-Min Liu Solid-state storage device implemented by volatile memory
TW201405298A (zh) * 2012-07-16 2014-02-01 Acer Inc 記憶體裝置及其控制方法
CN105183379A (zh) * 2015-09-01 2015-12-23 上海新储集成电路有限公司 一种混合内存的数据备份系统及方法
TWI530791B (zh) * 2007-01-10 2016-04-21 木比爾半導體股份有限公司 用於改善外部計算裝置效能的調適性記憶體系統
US20170212700A1 (en) * 2013-06-11 2017-07-27 Netlist, Inc. Non-volatile memory storage for multi-channel memory system

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934879B2 (en) 2002-03-28 2005-08-23 International Business Machines Corporation Method and apparatus for backing up and restoring data from nonvolatile memory
EP1376344A3 (en) * 2002-06-17 2005-08-24 Seiko Epson Corporation Apparatus and method of rewriting firmware
US6931477B2 (en) * 2002-12-31 2005-08-16 Motorola, Inc. Method and apparatus for patching code and data residing on a memory
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US7536506B2 (en) * 2004-06-21 2009-05-19 Dot Hill Systems Corporation RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US20060221850A1 (en) * 2005-03-31 2006-10-05 Teresa Buckley Field content based packet classification
US7661002B2 (en) * 2005-08-04 2010-02-09 Dot Hill Systems Corporation Storage controller super capacitor dynamic voltage throttling
US7451348B2 (en) * 2005-08-04 2008-11-11 Dot Hill Systems Corporation Dynamic write cache size adjustment in raid controller with capacitor backup energy source
US7620784B2 (en) 2006-06-09 2009-11-17 Microsoft Corporation High speed nonvolatile memory device using parallel writing among a plurality of interfaces
US7975103B2 (en) 2007-09-13 2011-07-05 International Business Machines Corporation Method for optimized data record verification
US9223642B2 (en) 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US8977831B2 (en) * 2009-02-11 2015-03-10 Stec, Inc. Flash backed DRAM module storing parameter information of the DRAM module in the flash
US20100309908A1 (en) * 2009-06-08 2010-12-09 Hewlett-Packard Development Company, L.P. Method and system for communicating with a network device
US9836370B2 (en) 2010-11-18 2017-12-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Backup memory administration using an active memory device and a backup memory device
US20140181427A1 (en) 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
GB2510180A (en) * 2013-01-29 2014-07-30 Ibm Selective restoration of data from non-volatile storage to volatile memory
CN103678042B (zh) * 2013-12-25 2017-01-04 上海爱数信息技术股份有限公司 一种基于数据分析的备份策略信息生成方法
US9348705B1 (en) * 2014-06-26 2016-05-24 Inphi Corporation Memory controller system with non-volatile backup storage
US9645829B2 (en) 2014-06-30 2017-05-09 Intel Corporation Techniques to communicate with a controller for a non-volatile dual in-line memory module
US20160188414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Fault tolerant automatic dual in-line memory module refresh
CN105786545B (zh) * 2014-12-25 2021-03-05 研祥智能科技股份有限公司 基于异构混合内存的断点恢复方法和系统
US20180024768A1 (en) * 2015-02-13 2018-01-25 Hewlett Packard Enterprise Development Lp Partitioning memory modules into volatile and non-volatile portions
US10261700B1 (en) * 2015-08-27 2019-04-16 Google Llc Method and apparatus for streaming buffering to accelerate reads
JP6479608B2 (ja) * 2015-08-28 2019-03-06 東芝メモリ株式会社 メモリ装置およびメモリ制御方法
US10031677B1 (en) * 2015-10-14 2018-07-24 Rambus Inc. High-throughput low-latency hybrid memory module
US9817610B1 (en) 2015-12-08 2017-11-14 Inphi Corporation Hybrid memory systems for autonomous non-volatile memory save and restore operations
US9460791B1 (en) * 2015-12-08 2016-10-04 Inphi Corporation Data clock synchronization in hybrid memory modules
US9891864B2 (en) * 2016-01-19 2018-02-13 Micron Technology, Inc. Non-volatile memory module architecture to support memory error correction
CN106406767A (zh) * 2016-09-26 2017-02-15 上海新储集成电路有限公司 一种非易失性双列直插式存储器及存储方法
US10044958B1 (en) * 2017-02-08 2018-08-07 Sensors Unlimited, Inc. In-pixel digital gain and offset corrections
US20180246643A1 (en) * 2017-02-28 2018-08-30 Dell Products, Lp System and Method to Perform Runtime Saves on Dual Data Rate NVDIMMs
US10831393B2 (en) 2018-02-08 2020-11-10 Micron Technology, Inc. Partial save of memory
US10984881B1 (en) * 2019-12-13 2021-04-20 Micron Technology, Inc. Memory sub-system self-testing operations
US11036413B1 (en) * 2019-12-17 2021-06-15 Micron Technology, Inc. Memory sub-system temperature regulation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033431A1 (en) * 2005-08-04 2007-02-08 Dot Hill Systems Corporation Storage controller super capacitor adaptive life monitor
TWI530791B (zh) * 2007-01-10 2016-04-21 木比爾半導體股份有限公司 用於改善外部計算裝置效能的調適性記憶體系統
TWM415338U (en) * 2011-06-10 2011-11-01 Shu-Min Liu Solid-state storage device implemented by volatile memory
TW201405298A (zh) * 2012-07-16 2014-02-01 Acer Inc 記憶體裝置及其控制方法
US20170212700A1 (en) * 2013-06-11 2017-07-27 Netlist, Inc. Non-volatile memory storage for multi-channel memory system
CN105183379A (zh) * 2015-09-01 2015-12-23 上海新储集成电路有限公司 一种混合内存的数据备份系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579791B2 (en) 2018-02-08 2023-02-14 Micron Technology, Inc. Partial save of memory

Also Published As

Publication number Publication date
EP3750065A1 (en) 2020-12-16
US10831393B2 (en) 2020-11-10
US11579791B2 (en) 2023-02-14
US20190243575A1 (en) 2019-08-08
TW201941057A (zh) 2019-10-16
EP3750065A4 (en) 2021-11-10
WO2019156965A1 (en) 2019-08-15
US20210019073A1 (en) 2021-01-21
CN111819548A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
TWI731302B (zh) 記憶體之部分儲存
US11749373B2 (en) Bad block management for memory sub-systems
US11797435B2 (en) Zone based reconstruction of logical to physical address translation map
US11726869B2 (en) Performing error control operation on memory component for garbage collection
CN114077398A (zh) 用于存储模式控制的系统、方法和设备
CN112053730A (zh) 用于存储器子系统的冗余云存储器存储装置
US11544008B2 (en) Temperature correction in memory sub-systems
US11144448B2 (en) Memory sub-system for managing flash translation layers table updates in response to unmap commands
EP3841472A1 (en) Tracking error-correction parity calculations
TWI533128B (zh) 儲存裝置、電子裝置,以及燒錄記憶體的方法
US20220283735A1 (en) Enabling memory access transactions for persistent memory
US20200065204A1 (en) Data recovery within a memory sub-system
KR102403173B1 (ko) 메모리 시스템에의 중요 데이터 저장
US11636047B2 (en) Hash operations in memory for data sharing
US11157193B2 (en) Coherency issue resolution in logical to physical page translation in a memory sub-system
US11860732B2 (en) Redundancy metadata media management at a memory sub-system
US20230297511A1 (en) Full multi-plane operation enablement
US20240029778A1 (en) Bank selection for refreshing
CN115774886A (zh) 用于存储器系统的安全文件系统
CN114097039A (zh) 经停用超级管理单元的恢复管理