TW201409475A - 高效能持續性記憶體 - Google Patents

高效能持續性記憶體 Download PDF

Info

Publication number
TW201409475A
TW201409475A TW102115688A TW102115688A TW201409475A TW 201409475 A TW201409475 A TW 201409475A TW 102115688 A TW102115688 A TW 102115688A TW 102115688 A TW102115688 A TW 102115688A TW 201409475 A TW201409475 A TW 201409475A
Authority
TW
Taiwan
Prior art keywords
data
nvm
memory
processor
transaction
Prior art date
Application number
TW102115688A
Other languages
English (en)
Inventor
Sheng Li
Doe-Hyun Yoon
Norman Paul Jouppi
Original Assignee
Hewlett Packard Development Co
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 Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201409475A publication Critical patent/TW201409475A/zh

Links

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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-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/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/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種於高效能持續性記憶體中執行資料交易之方法包含,以一處理器,藉由寫入新資料至非依電性記憶體(NVM)來更新資料以及自一通訊式耦合至該NVM之交易加速器接收一完成信號。一種用於高效能持續性記憶體之裝置,包含一處理器、一通訊式耦合至該處理器之記憶體控制器,以及通訊式耦合至該記憶體控制器及處理器之非依電性記憶體,非依電性記憶體包含一ACID交易加速器,其中處理器藉由寫入新資料至非依電性記憶體(NVM)來更新NVM上之資料,以及當資料完成更新時接收一來自ACID交易加速器之完成信號。

Description

高效能持續性記憶體
本發明係有關高效能持續性記憶體。
背景
大型資料中心採用大型且相當複雜的資料結構。此類資料中心可操作大量記憶體以便處理、傳送及接收資訊。現代資料中心的一項顧慮係商務連續性其中一家公司或幾家公司仰賴系統執行它們的作業。假設提供至一資料中心系統的電力失效或系統故障,則公司的作業可能部分減少或作業可能完全停止。
此類電力失效或系統故障可能造成系統或一項應用程式重新啟動。系統重新啟動期間,資料中心重新載入相當複雜的資料結構至系統上。資料中心可能載入兆位元組資訊至系統上以便供系統回復適當作業之用。此外,當初始地載入一程式時,一系統可能定址大量資料。載入此種資訊至系統上可能花費數分鐘或更長時間而此舉可能同時衝擊或停止商務的連續性。
依據本發明之一實施例,係特別提出一種於一高 效能持續性記憶體中執行資料交易之方法包含以一處理器:藉由寫入新資料至非依電性記憶體(NVM)來更新資料;以及自一通訊式耦合至該NVM之交易加速器接收一完成信號。
100‧‧‧記憶體系統
101‧‧‧3D NVM堆疊件
102‧‧‧處理器
103‧‧‧記憶體控制器
104‧‧‧矽插入件
105‧‧‧ACID交易加速器/ACID加速器
106‧‧‧邏輯晶粒
108‧‧‧通道
110‧‧‧NVRAM元件/NVM
111‧‧‧路徑互連件
112‧‧‧矽貫穿孔
200、300、400、600‧‧‧方法
201-202、301-306、401-406、605-660‧‧‧方塊
500‧‧‧ACID加速器
501‧‧‧邏輯控制器/控制邏輯
502‧‧‧新資料緩衝器/緩衝器
503‧‧‧舊資料緩衝器/緩衝器
504‧‧‧非依電性記憶體/NVM
隨附圖式揭示此處說明之原理的各種實例且為說明書的一部分。此類實例並未限制申請專利範圍之範疇。
圖1A及1B分別係依據此處說明之一原理實例之一記憶體系統側視及頂視方塊圖,記憶體系統包含多數三維非依電性記憶體(3D NVM)堆疊件。
圖1C係依據此處說明之一原理實例之一三維方塊圖,顯示圖1A及圖1B之三維非依電性記憶體(3D NVM)堆疊件中之一者。
圖2係一流程圖,顯示依據此處說明之一原理實例之一種以一極微的(atomic)、一致的、分離的、耐久的(ACID)加速器使用取消(undo)及重作(redo)記錄(logging)之方法。
圖3係一流程圖,顯示依據此處說明之一原理實例之一種以ACID加速器取消記錄之方法。
圖4係一流程圖,顯示依據此處說明之一原理實例之一種以ACID加速器重作記錄之方法。
圖5A及5B係依據此處說明之一原理實例之加速器設計以分別供取消記錄及重作記錄之用。
圖6係一流程圖,依據此處說明之一原理實例之 一種規劃一記憶體控制器與一ACID加速器間之記憶體以及有效寫入資料至NVM之方法。
所有圖式中,相同號碼係指示類似,但不必然相同,之元件。
詳細說明
本說明書係說明一種於高效能持續性記憶體中執行資料交易之方法,包含,以一處理器,藉由寫入新資料至非依電性記憶體(NVM)來更新資料以及自一通訊式耦合至NVM之交易加速器接收一完成信號。
本說明書更說明一種用於高效能持續性記憶體之裝置,包含一處理器、一通訊式耦合至處理器之記憶體控制器以及一通訊式耦合至記憶體控制器及處理器之非依電性記憶體,非依電性記憶體包含一ACID交易加速器,其中處理器藉由寫入新資料至非依電性記憶體(NVM)來更新NVM上之資料,以及當資料完成更新時自ACID交易加速器接收一完成信號。
本說明書亦說明一種電腦程式產品俾於一高效能持續性記憶體元件中執行ACID交易。電腦程式產品可包含一電腦可讀取式儲存媒介而該儲存媒介包含隨附體現之電腦可用程式碼。電腦可用程式碼可包含電腦可用程式碼以便,當藉由一處理器執行時,藉著寫入新資料至非依電性記憶體(NVM)來更新資料以及自一通訊式耦合至NVM之交易加速器接收一完成信號。
如上所註釋者,大型資料中心採用大型且相當複雜的資料結構。此類資料中心可操作大量記憶體以便處理、傳送及接收資訊。現代資料中心的一項顧慮係商務連續性其中一家公司或幾家公司仰賴系統執行它們的作業。假設提供至一資料中心系統的電力失效或系統故障,則公司的作業可能部分減少或作業可能完全停止。因此,此類電力失效或系統故障可能造成系統或一在系統上執行之程式重新啟動。系統重新啟動期間,資料中心重新載入相當複雜的資料結構至系統上。資料中心可能載入兆位元組資訊至系統上以便供系統回復適當作業之用。此外,當初始地載入一程式時,一系統可能定址大量資料。載入此種資訊至系統上可能花費數分鐘或更長時間而此舉可能同時衝擊或停止商務的連續性。
為載入此類大量且相當複雜的資料結構,可採用一種高效能持續性記憶體系統以便以一快速、經濟且有效的方式處理大量資料。完成此事,大型且複雜的資料結構可於一程式開始時或於該程式或系統重新啟動後準備好供使用。
本說明之一實例中,三維NVM達成一遠較現存建置為高的效能。此係藉由在NVM中保持局部檢查點而無複雜之取消及重作記錄限制而達成。因此,假設一採用高效能持續性記憶體之系統,如此處說明者,失去電力、程式懸而未決或系統故障時,則最後的交易係充作一檢查點以回復系統資料。一實例中,三維NVM可提供硬體支援俾 自耐久性分離出快取系統以達成經濟之萬用持續性記憶體而不致喪失效能及程式化彈性,且對處理器及作業系統之架構改變最少。
各種實例中,此處說明之高效能持續性記憶體系統係用於具有相當大型記憶體內資料組之資料中心。大量記憶體經常係載入至一電腦系統上。當一電腦初始地開啟時,此資料可用以,例如,將一包含一複雜資料結構之大型作業系統載入至電腦上。此外,此資料可包含相當複雜的資料結構而該資料結構提供用於一程式的功能。本高效能持續性記憶體系統制衡多數三維NVM與一邏輯堆疊件以便在一故障之後快速存取資料而並非自記憶體串列式讀取位元以及建立記憶體中之資料結構。
如本說明書及隨附申請專利範圍中所使用者,用語“高效能持續性記憶體”係意欲廣泛地理解為快速存取非依電性記憶體(NVM)而該NVM即使當裝置的電力不再有用時仍可保存及儲存資訊。因此,假設以及當一在系統上執行的程式瓦解時或系統經歷電力下降時,高效能持續性記憶體仍可保存資料。
此外,如本說明書及隨附申請專利範圍中所使用者,用語“三維非依電性記憶體(3D NVM)”係廣泛地指稱任何記憶體儲存媒介其中資料可進行儲存及擷取。一實例中,3D NVM可能無需電力即可支撐儲存於其上的資訊。另外,一實例中,多數3D NVM可相互堆疊於頂部而容許垂直擴充高效能持續性記憶體。
此外,如本說明書及隨附申請專利範圍中所使用者,用語“邏輯晶粒”係意欲廣泛理解為一小塊半導體材料而功能性積體電路係製造於該材料上。一實例中,邏輯晶粒提供用於高效能持續性記憶體之架構支援。
此外,如本說明書及隨附申請專利範圍中所使用者,用語“邏輯作業”意欲理解為任何涉及邏輯功能,諸如“AND”或“OR”,之使用的作業,而邏輯功能係適用於一特定邏輯電路之輸入信號。一邏輯作業亦可稱為一筆“交易”。
此外,如本說明書及隨附申請專利範圍中所使用者,用語“ACID交易”意欲廣泛地理解為任何交易組特性,而傳送至資料庫的一筆交易係受到可靠地處理。一實例中,一組特性係為每一筆交易作界定使得該等交易為極微的、一致的、分離的及耐久的(ACID)。
為使一筆交易為“極微的”,每一筆交易均受到完整地確定。因此,假設一筆交易係“極微的”,則當交易的一部份失敗時,整個交易將會失敗且非依電性記憶體的狀態將持續不變。
此外,為使一筆交易為“一致的”,所作的每一筆交易均將資料庫由一有效狀態帶入至另一有效狀態。任何寫入至一資料庫的資料均確保對所有預先界定之規則有效。此類規則可包含,但並非限定為,串接、觸發或制約。例如,假設要求一筆交易且系統程序判定該筆交易將移動資料至一無效狀態時,則不會執行該筆交易。
此外,為使一筆交易為“分離的”,此特性確保假設多筆交易即將執行但非順序式進行時,結果將包含相同的系統狀態就如同交易係串列式執行一般。因此,任何一筆交易在另一筆交易之前、之後或同時執行時,每一筆交易均將產生相同的狀態。
此外,為使一筆交易為“耐久的”,一旦一筆交易受到確定,該筆交易將持續受到確定或被永久儲存,即使在失去電力或系統故障時亦然。因此,交易係非依電性以及持續性。
本系統及方法之實例係參考方法、裝置(系統)及電腦程式產品之流程圖說明及/或方塊圖而說明如下。吾人將可理解流程圖說明及/或方塊圖之每一方塊,以及流程圖說明及/或方塊圖中之方塊組合均可藉由電腦程式碼加以執行。此電腦程式碼可提供給一通用目的電腦、特殊目的電腦、或其他可程式資料處理裝置之一處理器以產生一機器,使得該碼,經由該電腦或其他可程式資料處理裝置之一處理器加以執行,以執行流程圖及/或方塊圖之方塊或多數方塊中所指定之功能/動作。
一實例中,此電腦程式碼可儲存於一電腦-可讀取式儲存媒介中而該儲存媒介能夠導引一電腦或其他可程式資料處理裝置以一特定方式作用,使得該儲存於電腦-可讀取式記憶體中之碼產生一包含程式碼的製品而該程式碼執行流程圖及/或方塊圖之方塊或多數方塊中所指定之功能/動作。
電腦程式碼亦可載入至一電腦或其他可程式資料處理裝置上,以產生一系列即將於電腦或其他可程式裝置上執行之作業,進而產生一電腦執行程序使得電腦或其他可程式裝置上執行之電腦碼執行流程圖及/或方塊圖之方塊或多數方塊中所指定之功能/動作。
下列說明中,基於說明目的,將陳述多數特定細節以提供本系統及方法之一透徹理解。然而對熟悉本技藝人士顯而易見的是本裝置、系統及方法可無需此類特定細節即可加以實施。說明書中參考“一實例”或類似用語之意為有關該實例所說明之一特定功能、結構或特性係如所說明者被納入,但可能未被納入其他實例中。
現參看圖式,圖1A顯示一記憶體系統(100)之側視方塊圖,該記憶體系統依據此處說明之一原理實例係包含多數三維非依電性記憶體(3D NVM)堆疊件(101)。如記體系統(100)中所揭示者,3D NVM堆疊件(101)可包含多數垂直放置之包含多數NVM晶粒之非依電性記憶體(NVM)元件(110)之薄片。可採用之其他記憶體實例可包含記憶體元件諸如ROM、nvSRAM、FeRAM、MRAM、PRAM、CBRAM、SONOS、NRAM或其他型式之非依電性記憶體。因此,雖然圖1顯示多數垂直堆疊之NVRAM元件(110),然而NVM元件仍可納入任何型式之非依電性記憶體,而NVRAM為一實例。
此外,除NVM為3D NVM堆疊件(101)之型式以外,NVM記憶體亦可以二維組態安置。因此,雖然圖1A、 1B及1C顯示3D NVM堆疊件(101)為三維者,惟任何記憶體組態均可應用於本說明中而未與此處說明之原理分岐。
垂直放置之NVRAM元件(110)可相互堆疊以產生一NVRAM元件(110)之3D NVM堆疊件(101)。位於每一3D NVM堆疊件(101)中之每一NVRAM元件(110)可經由製程期間於每一NVRAM元件(110)中所產生之一矽貫穿孔(TSV)(112),圖1C)而與3D NVM堆疊件(101)中之其他多數NVRAM元件(110)通訊式耦合。TSV((112),圖1C)可充作一匯流排以容許3D NVM堆疊件(101)中之所有NVRAM元件(110)表現成單一元件一般。
一實例中,3D NVM堆疊件(101)可用以建立簡單之記憶體模組或建立可擴充之記憶體網路。雖然圖1顯示多數垂直置放之NVRAM元件(110)堆疊在一起形成一3D NVM堆疊件(101),惟本說明書之意圖為任何數量及型式之NVM均可水平地或垂直地通訊式耦合在一起。多數NVRAM元件(110)之堆疊可有若干優點。一優點為一電腦記憶體系統(100)內之實體空間可藉由利用記憶體板上方之可用垂直空間而獲得節約。記憶體系統(100)因此可專注於較少或較多之NVRAM元件(110)以供系統作業之用。
3D NVM堆疊件(101)可自一處理器(102)接收資料並接受導引而將資料儲存至該堆疊件上。此外,一記憶體控制器(圖1B,103)可用來管理移入3D NVM堆疊件(101)中之每一NVRAM元件(110)之資料流動或自該每一NVRAM元件移出之資料流動。
圖1B顯示一記憶體系統(100)之頂視方塊圖,該記憶體系統依據此處說明之一原理實例係包含多數三維非依電性記憶體(3D NVM)堆疊件(101)。如上文所討論者,NVRAM元件(110)可藉由一記憶體控制器(103)加以控制而該記憶體控制器係管理資料流入及流出3D NVM堆疊件(101)。NVRAM元件(110)與記憶體控制器(103)之間的通訊可利用一矽插入件(104)上之路徑互連件(111)來完成。一實例中,個別之NVRAM元件(110)或三維非依電性記憶體(3D NVM)堆疊件(101)可能未包含在相同之矽插入件(104)上且替代地可能與處理器(102)及記憶體控制器(103)實際地遙遠相隔然而仍經由一路徑互連件(111)與它們通訊式耦合。
作業中,處理器(102)可傳送可執行碼至記憶體控制器(103)使得記憶體控制器可管理流動至個別NVRAM元件(110)之資料。一實例中,處理器(102)可傳送更新資料至多數NVRAM元件(110)處。
圖1C係一三維方塊圖,顯示依據此處說明之一原理實例之圖1A及1B之多數三維非依電性記憶體(3D NVM)堆疊件(101)中之一。每一垂直放置之NVRAM元件(110)可包含多數NVM晶粒之部份且可於每一NVRAM元件(110)之間形成單排或多排通道(108)。一ACID交易加速器(105)可通訊式耦合至每一NVRAM元件(110)以及位於邏輯晶粒(106)上。一實例中,ACID交易加速器(105)可實體式耦合至NVM使得該ACID交易加速器置放於邏輯晶粒上而NVRAM元件(110)亦耦合至該邏輯晶粒上。另一實例中, ACID交易加速器((105))能夠實際地與邏輯晶粒(106)分離存在。因此,雖然圖1C可能顯示ACID交易加速器((105))係置放於一NVRAM元件之三維堆疊件上,然而其他實例亦可存在其中ACID交易加速器((105))係通訊式耦合至NVRAM元件,但置放於其自身之邏輯晶粒上。
如上所述,ACID交易加速器係用以保持極微的、一致的、分離的及耐久的交易。此外,ACID交易加速器(105)可確保對處理器及記憶體系統(100)之作業系統架構作最小的改變。
圖2係一流程圖,顯示依據此處說明之一原理實例之一種利用ACID交易加速器使用取消及重作記錄之方法。本方法可藉由,例如藉著一操作員、系統或裝置,送出一更新命令(201)而開始。此處,新資料可依據上述ACID特性而寫入NVM中(201)。此方法(200)期間,ACID交易加速器(105)可採用一檢查點技術以便,利用NVRAM元件(110)中之現行資料,儲存被傳送資料之現行狀態。假設,依據任何ACID交易特性,更新程序或交易程序失敗且新資料未寫入NVM時,則檢查點步驟將容許記憶體系統(100)能夠於失敗點處重新開始。
將於下文中說明者,ACID交易加速器可存取多數緩衝器而該等緩衝器包含自處理器(102)接收到之新資料以及藉著NVRAM元件(110)所保留之舊資料。ACID交易加速器(105)可利用控制邏輯以讀取舊資料、記錄資料至NVRAM元件(110)、等待直到記錄完成為止以及寫入緩衝 之新資料至NVRAM元件(110)。然而,此程序期間,耐久性特性係與寫入資料程序分離。一實例中,藉著在ACID交易加速器(105)上之一新資料緩衝器及一舊資料緩衝器中進行資料緩衝,記憶體作業可經由大量資料處理而達到最佳化。
在此情況下,藉著使處理器(102)讀取舊資料來更新資料至NVRAM元件(110)、促使一包含舊資料位址之元組(tuple)至一取消記錄、等待直到該元組寫出至該取消記錄為止、以及寫入新資料至3D NVM堆疊件(101)無需發生。此處,可理解的是NVM為了記錄作業及資料更新兩者均將進行存取。
替代地,記憶體控制器(103)如本說明書所述可僅將新資料寫入至3D NVM堆疊件(101)並等待直到交易中的全部資料均寫出至3D NVM堆疊件(101)為止。交易為耐久的ACID要求係自資料存取程序中分離出來以及系統可提供一高效能,但快速且便宜的持續性記憶體系統(100)。此外,記錄作業對處理器(102)而言係透明的且處理器(102)將視交易更新為常規性記憶體更新。
一旦所有資料均寫入至NVM時,一完成信號將自ACID交易加速器接收(202)。因此,ACID交易目前係儲存至適當之3D NVM堆疊件(101)中。假設一記憶體系統(100)係失敗或喪失電力時,則ACID交易加速器(105)可確認持續性資料的最近版本。
圖3係一流程圖,顯示依據此處說明之一原理實 例之一種以ACID交易加速器(105)用於取消記錄之方法(300)。圖3顯示圖1A、1B及1C之記憶體系統(100)如何完成ACID交易而如同一取消記錄交易一般。當ACID交易加速器自處理器(102)接收新資料時(301),ACID交易即開始。接著讀取舊資料(302)。接著ACID交易加速器記錄大量資料至NVM。大量資料可以界定為具位址之緩衝舊資料而該等位址係於NVRAM元件(110)內界定資料儲存至何處。利用緩衝之大量資料有助於最佳化記憶體作業其中寫入及等待時間在堆疊NVM中係被最佳化者,此因NVM與記憶體控制器之間沒有來回延遲之故。接著系統等待直到記錄完成為止。一旦記錄完成,緩衝之新資料即寫入至NVM(305)。
ACID交易加速器(105)內之緩衝器可為藉由記憶體控制器(103)管理之記憶體或可為一具有資料段、硬體管理標記及中介資料之類似快取結構。此外,ACID交易加速器(105)可為一交易執行多數記錄,或可同時處理多數交易。
如上所註解者,資料可重新排序以改善通道的利用,以及ACID交易加速器(105),藉著緩衝輸入資料,可重建正確的次序。處理器(102)可引導記憶體控制器(103)傳送界定資料次序的中介資料以及資料和交易ID。此中介資料可經由前一層級快取與記憶體控制器(103)間所產生之一快速匯流排而傳送至ACID交易加速器(105)。此匯流排可專屬傳送一寫入-保留而該寫入-保留包含時間標記及交易ID。因為即將經由此匯流排傳送之資料包含中介資料, 該中介資料可能相對小於實際記憶體存取之資料。因此,該額外的匯流排將對處理器接腳計數招致最小的壓力。當資料寫入完成時,藉由處理器(102)自ACID交易加速器接收一完成信號(306)。有利地,任何新資料係在舊資料推出至取消記錄後才寫出至NVM。因此,取消記錄期間,本實例之架構中可避免串行化。
因此,本記憶體系統(100)可容許交易之記憶體寫入由記憶體控制器(103)不按次序送出就如同它們是正常記憶體寫入一般,以便保持一高效能等級。雖然ACID交易加速器(105)中之緩衝器能夠緩衝並以中介資料重新排序記憶體寫入以保持有關交易的正確次序,然而緩衝器亦有可能以部分更新的交易加以充填。其他系統中,此舉可防止多數交易朝前移動以致系統可能被停頓。然而,本ACID交易加速器(105)可對多少筆部分確定之交易及它們的資料能夠在緩衝器中排隊方面設置一臨界限制。此臨界限制可藉由記憶體系統(100)加以界定以配合任何特定之交易組,或可由使用者來界定。
因為ACID交易加速器(105)基於加速器之緩衝器中所儲存及處理器側記憶體控制器(103)所提供之中介資料而得知多少筆交易已被送出,所以ACID交易加速器(105)可要求記憶體控制器(103)清除已完成交易之不潔快取線路(亦即,未受到NVM件(110)確定之交易)。在此情況下,可能不容許記憶體控制器(103)送出任意要求且基於自身規劃政策之記憶體。經由記憶體控制器(103)與ACID交易加速 器(105)之間的細緻合作,記憶體系統(100)能夠以最小的效能損失來支援持續性記憶體且避免任何潛在的停頓。一實例中,此持續-認知之記憶體規劃可基於是否需要立即之耐久性來加以執行。一實例中,記憶體控制器(103)、處理器(102)及作業系統亦可選擇是否容許不依次序送出記憶體寫入或僅僅在可能被容許時清除NVM(110)的資料。
現將說明依據本申請案之取消記錄方法之一實例。假設5筆交易送至ACID交易加速器(105),亦即;A、B、C、D及E。最初,此類交易係以字母次序確定。此外假設此類交易產生下列資料段,亦即;A1、A2、A3、B4、B5、B6、C7、C8、D9及E10。如上所述,ACID交易加速器(105)可接收多數具有時間標記及交易ID之寫入-保留。依此方式,ACID交易加速器(105)受到通知之事實為,例如,交易A具有3個記憶體寫入A1、A2及A3。更假設,處理器或記憶體控制器(103)重新排序資料寫入因此NVM接收下列順序:A1、E10、A2、B4、B5、C7、A3、C8、D9、B6。如上所述,輸入資料首先進行緩衝(303)。當接受A3時,ACID交易加速器對NVM確定A1、A2及A3以及自ACID交易加速器接收一完成信號(306)。進一步,B未受到確定直到接收到B6為止,因此交易B、C、D及E受到緩衝。當接收到B6時,前一交易已確立,ACID交易加速器(105)擁有用於交易B、C、D及E的所有資料。因此,可避免串列化且接著所有交易均同時受到確定。
圖4係一流程圖,顯示依據此處說明之一原理實 例之一種以ACID交易加速器(105)重作記錄之方法。圖4顯示圖1A、1B及1C之記憶體系統(100)如何完成ACID交易就如同一重作記錄交易一般。ACID交易開始其中ACID交易加速器(105)自處理器(102)接收緩衝之新資料。沒有進一步的行動立即執行直到交易之前一資料寫入被傳送至ACID交易加速器(105)時為止(402)。所有緩衝之新資料均已被ACID交易加速器(105)接收之後,大量資料即記錄至NVM中(403)。一旦記錄(403)已被完成(404),即自ACID交易加速器(105)接收一完成信號(405)。當接收到完成信號時(405),緩衝之新資料即寫入至NVM中(406)。
類似上文,ACID交易加速器(105)可為一筆交易執行多次記錄,或可同時處理多筆交易。此外,交易完成且供交易之用的整體重作記錄完成(404)之後,新資料可寫出至NVM中(406)。另,類似於取消記錄,ACID交易加速器(105)能夠藉著緩衝資料、寫入資料及等待而處理大量資料的方式來最佳化記憶體作業,以提供一相當簡單之界面。此作法證明係一種堆疊記憶體內之大為快速之方法,此因3D NVM堆疊件(101)與記憶體控制器(103)之間沒有來回延遲之故。又,處理器可具有相同的界面,而NVM堆疊件選擇最佳的方式;亦即,為了ACID支援,取消記錄(300)或重作記錄(400)。
圖5A係依據此處說明之一原理實例之一種供取消記錄之用的ACID加速器(500)設計。圖5A顯示圖1A、1B及1C之記憶體系統(100)內之一3D NVM堆疊件(101)並具有 一供取消記錄交易之用的ACID加速器(500)設計。取消記錄提供一邏輯控制器(控制邏輯)(501)而該控制器可包含硬體邏輯及一執行電腦可用程式碼之處理器。此處,邏輯控制器(501)可產生所期望的邏輯以供系統之用。如上所註解者,當取消記錄係受到期望且寫入至NVM(504)時,新資料及舊資料均將進行緩衝。圖5A顯示新資料及舊資料可分別儲存於,至少暫時地,一新資料暫存器(502)及一舊資料暫存器(503)中。一旦一更新過之一致的及/或持續的資料版本已於NVM(504)中產生時,此類緩衝器(502,503)即可被重複使用。一實例中,電腦系統及NVM(504)有關之作業系統可有助於分配NVM(504)之部分。某些實例中,NVM(504)之不同部分可加以分配以配合可能相關於NVM(504)而發生之各種不同交易。
如上所討論者,記憶體系統(100)可容許記憶體寫入由記憶體控制器(103)不按次序送出至NVM(504)就如同它們是正常記憶體寫入一般。雖然ACID加速器(105,500)中之多數緩衝器能夠緩衝並以記憶體控制器(103)所提供之中介資料重新排序記憶體寫入,然而多數緩衝器(502,503)仍有可能以部分更新的交易加以充填。ACID加速器(105,500),然而,可對多少筆部分確定之交易及它們的資料能夠在緩衝器中排隊方面設置一臨界限制。此臨界限制可藉由記憶體系統(100)加以界定以配合任何特定之交易組,或可由使用者來界定。
因為ACID加速器(105,500)基於處理器側記憶 體控制器(103)所提供之中介資料而得知多少交易已被送出及多少快取線路已被更新,所以ACID加速器(105,500)可要求記憶體控制器(103)清除已完成交易之不潔快取線路。在此情況下,可能不容許記憶體控制器(103)送出基於其自身規劃政策之任意要求的記憶體。經由記憶體控制器(103)與ACID加速器(105,500)間的合作,記憶體系統(100)能夠以最小的效能損失來支援持續性記憶體。一實例中,此持續-認知之記憶體規劃可基於是否需要立即之耐久性來加以執行。一實例中,記憶體控制器(103)、處理器(102)及作業系統亦可選擇是否容許記憶體寫入不依次序送出,或僅僅在可能被容許時清除NVM(110)的資料。
一實例中,ACID加速器(105,500),利用ACID加速器(105,500)中之邏輯控制器(501),可控制多數緩衝器(502,503)與NVM(110)之間的界面。一實例中,當多數緩衝器(502,503)開始充填時,ACID加速器(105,500)將完成記錄交易以便確認資料於適當之時且盡可能快地進行持續性記錄。然而,一旦完成任何記錄交易,ACID加速器(105,500)於適當之時可將大量資料寫入NVM(110)。例如,假設NVM(110)中之目標記憶體段,當ACID加速器(105,500)試圖寫入該記憶體段時,可能正在忙碌,則ACID加速器(105,500)可先確定其他交易至NVM(110),直到該記憶體段變成可用時為止。依此方式,ACID加速器(105,500)可以利用時間完成其他之交易,否則該時間可能為了等待忙碌的記憶體段而被浪費掉。
圖5B係依據此處說明之一原理實例之一種供重作記錄之用的ACID加速器(105)設計實例。圖5B顯示圖1A、1B及1C之記憶體系統(100)內之一3D NVM堆疊件(101)並具有一供重作記錄交易之用的ACID加速器(105)設計。重作記錄提供一邏輯控制器(控制邏輯)(501)而該控制器可為硬體邏輯或一其上具有電腦可用程式碼之簡單處理器。任何一種情況下,邏輯控制器(501)均能夠產生所期望的邏輯以供記憶體系統(100)之用。如上所註解者,當重作記錄被起始且被寫入至NVM(504)時,新資料(502)即進行緩衝。
圖6係一流程圖,顯示依據此處說明之一原理實例之一種規劃一記憶體控制器(103)與一ACID加速器(105,500)間之記憶體之方法以及一種有效寫入資料至NVM(110)之方法。雖然此處說明之圖6中之二種方法(亦即規劃一記憶體控制器(103)與一ACID加速器(105,500)間之記憶體之方法以及有效寫入資料至NVM(110)之方法)係一起顯示方法(600),然而本說明書之意亦為此二種方法可相互分離地及獨立地開始及發生。因此,圖6係意欲理解為僅係此處說明之方法之一實例而已。
當處理器及記憶體控制器保持自交易及正常寫入兩者產生記憶體要求時,ACID加速器(105,500)可決定是否已經符合多數部分確定交易之一臨界限制(610)。假設已經符合臨界限制(決定是,610)時,則ACID加速器(105,500)可通知記憶體控制器(103)停止傳送新交易之資料650 以及要求記憶體控制器(103)清除已完成交易之不潔快取線路655。接著ACID加速器(105,500)可藉由執行記錄及更新步驟(605、615、620、625、630、635,645,640)來完成多數部分更新之交易(660),如下文所提及者。一旦此作業發生,接著ACID加速器(105,500)可再度決定是否已經符合多數部分確定交易之臨界限制(610)。因此,一實例中,在每次完成一筆部分更新交易之後,ACID加速器(105,500)可持續地檢查是否仍然已達到臨界限制。另一實例中,ACID加速器(105,500)可完成一預定數量之部分更新交易且接著進行相同之詢問(610)。
假設未符合臨界限制(決定否,610),則ACID加速器(105,500)可藉由持續使記憶體控制器(103)任意送出多數記憶體要求以及自記憶體控制器(103)接受新資料(605)來完成寫入資料至NVM(110)之方法。如上所述,所接收之新資料可以不按次序。
接著ACID加速器(105,500)可如上所述讀取舊資料(615)。讀取舊資料(615)之後,接著ACID加速器可記錄大量資料至NVM(620)。接著可決定是否即將寫入之資料段為忙碌者(625)。假設資料段為忙碌(決定是,625)時,則ACID加速器(105,500)可確定其他交易至NVM(645)以及等待該資料段變成可用者。在此情況下,當資料段確實變成可用時,則程序持續進行而ACID加速器(105,500)等待直到記錄完成為止(630)、寫入(630)緩衝之新資料至NVM(110)以及傳送(640)一完成信號至處理器(102)及記 憶體控制器(103)。
假設資料段非忙碌(決定否,625)時,則ACID加速器(105,500)等待直到記錄完成為止(630)。接著ACID加速器(105,500)寫入(635)緩衝之新資料至NVM(110)以及傳送(640)一完成之信號至處理器(102)及記憶體控制器(103)。接著整個程序可在應用程式執行期間重複進行。
雖然上文圖6說明一種規劃一記憶體控制器(103)與一ACID加速器(105,500)間之記憶體以及有效寫入資料至NVM(110)之方法,然而,一實例中,該方法可僅包含規劃一記憶體控制器(103)與一ACID交易加速器(105)間之記憶體之方法。另一實例中,如上所述,該方法可僅包含有效寫入資料至NVM(110)之方法。
本說明書亦可描述為一電腦程式產品俾於一高效能持續性記憶體元件中執行ACID交易。電腦程式產品可包含一電腦可讀取式儲存媒介而該儲存媒介包含隨附體現之電腦可用程式碼。電腦可用程式碼可包含電腦可用程式碼以便,當藉由一處理器執行時,藉著寫入新資料至非依電性記憶體(NVM)來更新資料,以及電腦可用程式碼以便,當藉由一處理器執行時,自一通訊式耦合至NVM之交易加速器接收一完成信號。
任何電腦可讀取式媒介之組合均可適用於本說明書。一電腦可讀取式儲存媒介可為,例如,但非受限於,電子式、磁性、光學電磁式、紅外線式、或半導體系統、裝置或元件或前述物件之任何適當組合。電腦可讀取 式媒介之更特定實例(一非詳盡無遺之表列)將包含下列:一具有多數電線之電氣連接、一可攜式電腦卡匣、一硬碟、一隨機存取記憶體(RAM)、一唯讀記憶體(ROM)、一可抹除可程式唯讀記憶體(EPROM或快閃記憶體)、一光纖、一可攜式光碟唯讀記憶體(CD-ROM)、一光學儲存元件、一磁性儲存元件、或前述物件之任何適當組合。此文件之內文中,一電腦可讀取式儲存媒介可為任何實體媒介而該實體媒介可包含或儲存一可供任何指令執行系統、裝置或元件諸如,例如,一處理器使用之程式,或一相關於任何指令執行系統、裝置或元件諸如,例如,一處理器之程式。
一電腦可讀取式媒介上體現之程式碼可利用任何適當之媒介,包含但不限於,無線、有線、光纖電纜、RF、等或前述物件之任何適當組合,進行傳送。
用於執行本說明書作業之電腦程式碼可以一目的導向性程式語言諸如,其中包括,java、Smalltalk、或C++撰寫。用於執行本說明書作業之電腦程式碼亦可以一說明性程式語言諸如Structured Query Language撰寫。然而,用於執行本系統及方法之作業的電腦程式碼亦可以一程序性程式語言諸如,例如,“C”程式語言或類似程式語言撰寫。程式碼可完全地在使用者電腦上、部份地在使用者電腦上、如同一獨立電腦可讀取式媒介套裝軟體、部分地在使用者電腦上且部分地在一遠端電腦上或完全地在遠端電腦或伺服器上執行。在後者腳本中,遠端電腦可經由一區 域網路(LAN)或一廣域網路(WAN)而連接至使用者電腦,或可(例如,利用一網路服務提供者經由一網際網路)連接至一外部電腦。
圖式中之流程圖及方塊圖係揭示系統、方法及電腦程式產品之可能建置的架構、功能及作業。在此點上,流程圖或方塊圖中之每一方塊均可代表碼之一模組、區段或部分,包含用以執行特定邏輯功能之多數可執行程式。亦應注意者為某些替代建置中,方塊中所註解之功能可不按圖式中所註解之次序發生。例如,順序顯示之二方塊,事實上,可實質上同時加以執行,或方塊有時候可依相反次序加以執行,端視涉及之功能而定。亦將注意者為方塊圖及/或流程圖說明中之每一方塊以及方塊圖及/或流程圖說明中之方塊組合均能藉由執行特定功能或動作之特殊目的硬體型系統或特殊目的硬體及電腦指令之組合加以執行。
此處之術語係基於說明特定實例之目的而採用,且無意以此為限。如此處所使用者,單數型式“a”、“an”及“the”意圖亦包含複數型式,除非內文清楚另行指明者除外。更將受到理解者為,用語“包含(comprise)”及/或“包含(comprising)”當使用於說明書中時,係指明所陳述之功能、整數、作業、元件及/或組件之存在,但並未排除多數其他功能、整數、作業、元件、組件及/或其群組之存在或加入。
已提出前述說明以揭示並說明所述原理之實 例。此一說明無意為詳盡無遺的或限制此類原理至所揭露之任何精確型式上。許多改良及變化有鑑於上述教示皆屬可能。
100‧‧‧記憶體系統
101‧‧‧3D NVM堆疊件
105‧‧‧ACID交易加速器
106‧‧‧邏輯晶粒
108‧‧‧通道
110‧‧‧NVRAM元件
112‧‧‧矽貫穿孔

Claims (15)

  1. 一種於一高效能持續性記憶體中執行資料交易之方法包含以一處理器:藉由寫入新資料至非依電性記憶體(NVM)來更新資料;以及自一通訊式耦合至該NVM之交易加速器接收一完成信號。
  2. 如申請專利範圍第1項之方法,其中更新資料包含自該交易加速器處之該處理器接收新資料以及於一與該交易加速器相關之新資料緩衝器中暫時地緩衝該新資料。
  3. 如申請專利範圍第2項之方法,其中該接收到之新資料包含多數部分確定之交易以及其中,當超出該緩衝器中之該等多數部分確定之交易之一臨界限制時,該交易加速器即指示該處理器清除多數已完成交易之多數不潔快取線路。
  4. 如申請專利範圍第3項之方法,其中,假設該NVM中之多數資料段為忙碌而該交易加速器正試圖寫入一完成之交易至該等多數資料段時,該交易加速器確定多數其他之交易至該NVM直到該資料段變成可用時為止。
  5. 如申請專利範圍第2項之方法,其中更新資料包含緩衝自該處理器所接收之新資料以及該非依電性記憶體上所保留之舊資料。
  6. 如申請專利範圍第1項之方法,其中寫入新資料至該 NVM包含利用大量資料處理將該新資料寫入至該NVM。
  7. 如申請專利範圍第1項之方法,其中自該交易加速器接收該完成信號包含當一資料寫入完成時自該交易加速器傳送一完成信號至該處理器。
  8. 如申請專利範圍第1項之方法,更包含自一通訊式耦合至該處理器之記憶體控制器接收中介資料而該中介資料係界定加諸該新資料之寫入數量及次序。
  9. 如申請專利範圍第6項之方法,其中該中介資料係經由一將該記憶體控制器通訊式耦合至該NVM之專屬匯流排自該記憶體控制器藉著該交易加速器接收。
  10. 一種用於高效能持續性記憶體之裝置,包含:一處理器;一通訊式耦合至該處理器之記憶體控制器;以及一通訊式耦合至該記憶體控制器及處理器之非依電性記憶體,該非依電性記憶體包含一ACID交易加速器;其中該處理器:藉由寫入新資料至該非依電性記憶體(NVM)來更新該NVM上之資料;以及當該資料已完成更新時自該ACID交易加速器接收一完成信號。
  11. 如申請專利範圍第10項之裝置,其中該ACID交易加速器,當藉由該處理器指示時:讀取舊資料; 記錄該舊資料至該NVM;以及寫入緩衝之新資料至該NVM。
  12. 如申請專利範圍第10項之裝置,其中該記憶體控制器係經由一專屬匯流排而通訊式耦合至該NVM,以及其中該記憶體控制器傳送中介資料至該NVM而該中介資料係界定加諸該新資料之寫入數量及次序。
  13. 如申請專利範圍第10項之裝置,其中當該資料已變成持續時該ACID交易加速器即傳送一完成信號至該處理器。
  14. 如申請專利範圍第10項之裝置,其中該接收到之新資料包含多數部分確定之交易以及其中,當超出該緩衝器中之該等多數部分確定之交易之一臨界限制時,該ACID交易加速器即指示該記憶體控制器清除多數已完成交易之多數不潔快取線路。
  15. 一種電腦程式產品用以在一高效能持續性記憶體中執行ACID交易,該電腦程式產品包含:一電腦可讀取式儲存媒介包含隨附體現之電腦可用程式碼,該電腦可用程式碼包含:電腦可用程式碼以便,當藉由一處理器執行時,藉著寫入新資料至非依電性記憶體(NVM)來更新資料;以及電腦可用程式碼以便,當藉由一處理器執行時,自一通訊式耦合至該NVM之交易加速器接收一完成信號。
TW102115688A 2012-08-28 2013-05-02 高效能持續性記憶體 TW201409475A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/052684 WO2014035377A1 (en) 2012-08-28 2012-08-28 High performance persistent memory

Publications (1)

Publication Number Publication Date
TW201409475A true TW201409475A (zh) 2014-03-01

Family

ID=50184017

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102115688A TW201409475A (zh) 2012-08-28 2013-05-02 高效能持續性記憶體

Country Status (5)

Country Link
US (1) US20150261461A1 (zh)
EP (1) EP2891069A4 (zh)
CN (1) CN104583989A (zh)
TW (1) TW201409475A (zh)
WO (1) WO2014035377A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008131058A2 (en) * 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US10025530B2 (en) * 2014-09-29 2018-07-17 Western Digital Technologies, Inc. Optimized garbage collection for solid-state storage devices
US9836417B2 (en) * 2015-04-20 2017-12-05 Western Digital Technologies, Inc. Bridge configuration in computing devices
US10140149B1 (en) * 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US20170091254A1 (en) * 2015-09-24 2017-03-30 Kshitij A. Doshi Making volatile isolation transactions failure-atomic in non-volatile memory
US10691559B2 (en) 2016-08-15 2020-06-23 Oracle International Corporation Persistent memory transactions with undo logging
US10445236B2 (en) * 2016-11-14 2019-10-15 Futurewei Technologies, Inc. Method to consistently store large amounts of data at very high speed in persistent memory systems
US10671512B2 (en) * 2018-10-23 2020-06-02 Microsoft Technology Licensing, Llc Processor memory reordering hints in a bit-accurate trace
CN110008059B (zh) * 2019-02-20 2021-05-11 深圳市汇顶科技股份有限公司 非易失性存储介质的数据更新方法、装置及存储介质
CN110515705B (zh) * 2019-08-07 2022-03-11 上海交通大学 可扩展的持久性事务内存及其工作方法
US11960363B2 (en) * 2019-09-23 2024-04-16 Cohesity, Inc. Write optimized, distributed, scalable indexing store
CN115951846B (zh) * 2023-03-15 2023-06-13 苏州浪潮智能科技有限公司 数据写入方法、装置、设备及介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682517A (en) * 1994-06-21 1997-10-28 Pitney Bowes Inc. Method of transferring data to a memory medium in a mailing machine
US6779087B2 (en) * 2001-04-06 2004-08-17 Sun Microsystems, Inc. Method and apparatus for checkpointing to facilitate reliable execution
US7058849B2 (en) * 2002-07-02 2006-06-06 Micron Technology, Inc. Use of non-volatile memory to perform rollback function
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7383290B2 (en) * 2004-03-09 2008-06-03 Hewlett-Packard Development Company, L.P. Transaction processing systems and methods utilizing non-disk persistent memory
JP4248510B2 (ja) * 2005-03-24 2009-04-02 株式会社東芝 計算機システム、ディスク装置およびデータ更新制御方法
US7516267B2 (en) * 2005-11-03 2009-04-07 Intel Corporation Recovering from a non-volatile memory failure
US7802062B2 (en) * 2007-09-28 2010-09-21 Microsoft Corporation Non-blocking variable size recyclable buffer management
WO2009134264A1 (en) * 2008-05-01 2009-11-05 Hewlett-Packard Development Company, L.P. Storing checkpoint data in non-volatile memory
US7925925B2 (en) * 2008-12-30 2011-04-12 Intel Corporation Delta checkpoints for a non-volatile memory indirection table
US8145817B2 (en) * 2009-04-28 2012-03-27 Microsoft Corporation Reader/writer lock with reduced cache contention

Also Published As

Publication number Publication date
WO2014035377A1 (en) 2014-03-06
CN104583989A (zh) 2015-04-29
EP2891069A4 (en) 2016-02-10
US20150261461A1 (en) 2015-09-17
EP2891069A1 (en) 2015-07-08

Similar Documents

Publication Publication Date Title
TW201409475A (zh) 高效能持續性記憶體
KR102462708B1 (ko) 다수의 스토리지 디바이스에 걸친 원자 기입 동작의 수행
CN103970688B (zh) 缩短数据存储系统中写入等待时间的方法和系统
TWI828824B (zh) 具有啟動器模式的固態硬碟
EP1703397A2 (en) Storage control apparatus and method
CN109725840A (zh) 利用异步冲刷对写入进行节流
CN106716395B (zh) 事务处理的方法、装置及计算机系统
KR20170021287A (ko) 비휘발성 데이터 저장장치 내부에서 원자적으로 복수의 기록 트랜잭션을 수행하는 장치 제어기 및 방법
CN103562878A (zh) 在镜像虚拟机系统中的存储器检查点设置
TWI590046B (zh) 用於修改記憶體內容之裝置及方法
US10983874B2 (en) Processing a recover state input/output request
TW201227506A (en) Controller and method for performing background operations
CN101923446B (zh) 存储阵列辅助架构
CN104937564B (zh) 组表格的数据冲洗
US10922175B2 (en) Method, apparatus and computer program product for failure recovery of storage system
EP2979185B1 (en) Address range transfer from first node to second node
JP6652647B2 (ja) ストレージシステム
US8327041B2 (en) Storage device and data transfer method for the same
US9367492B2 (en) Storage virtualization apparatus causing access request process to be delayed based on incomplete count and storage virtualization method
US20140122433A1 (en) Storage device and data backup method
US20160036653A1 (en) Method and apparatus for avoiding performance decrease in high availability configuration
US20160070491A1 (en) Information processor, computer-readable recording medium in which input/output control program is recorded, and method for controlling input/output
CN104484354A (zh) 保证数据一致性的快照方法和存储设备
US20130031320A1 (en) Control device, control method and storage apparatus
US10191690B2 (en) Storage system, control device, memory device, data access method, and program recording medium