TW202340965A - 持久性記憶體裝置以及用於持久性記憶體裝置的方法 - Google Patents
持久性記憶體裝置以及用於持久性記憶體裝置的方法 Download PDFInfo
- Publication number
- TW202340965A TW202340965A TW112106847A TW112106847A TW202340965A TW 202340965 A TW202340965 A TW 202340965A TW 112106847 A TW112106847 A TW 112106847A TW 112106847 A TW112106847 A TW 112106847A TW 202340965 A TW202340965 A TW 202340965A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory device
- data
- persistent memory
- volatile storage
- region
- Prior art date
Links
- 230000002085 persistent effect Effects 0.000 title claims abstract description 441
- 238000000034 method Methods 0.000 title claims description 71
- 230000001427 coherent effect Effects 0.000 claims abstract description 7
- 230000008859 change Effects 0.000 claims description 13
- 239000007787 solid Substances 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 8
- 230000001052 transient effect Effects 0.000 claims description 7
- 239000000872 buffer Substances 0.000 description 18
- 238000012545 processing Methods 0.000 description 8
- 239000003990 capacitor Substances 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013403 standard screening design Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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
- 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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/263—Arrangements for using multiple switchable power supplies, e.g. battery and AC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- 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
- G06F12/0804—Addressing 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
-
- 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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/0647—Migration mechanisms
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2015—Redundant power supplies
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Power Engineering (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明揭露一種持久性記憶體裝置。持久性記憶體裝置可包含快取記憶體同調互連介面。持久性記憶體裝置可包含揮發性儲存器及非揮發性儲存器。揮發性儲存器可包含至少第一區域及第二區域。備用電源可組態成選擇性地將備用電力提供至揮發性儲存器的第二區域。控制器可控制揮發性儲存器及非揮發性儲存器。持久性記憶體裝置可至少部分地基於用於持久性記憶體裝置的一次電力的損失而在將來自揮發性儲存器的第二區域的資料傳送至非揮發性儲存器的同時使用備用電源。
Description
本揭露大體上是關於儲存器,且更特定而言,是關於一種具有用以備份記憶體的持久性儲存的記憶體儲存裝置。
[相關申請案資料]
本申請案主張2022年5月10日申請的美國臨時專利申請案第63/340,437號及2022年2月25日申請的美國臨時專利申請案第63/314,361號的權益,所述申請案均出於所有目的以引用的方式併入本文中。
由於記憶體可比其他形式的儲存器快,因此記憶體可用於快取儲存系統中的資料。但記憶體亦可為揮發性儲存器,意謂若電力中斷,則儲存於記憶體中的資料可能丟失。在不可接受資料丟失的系統中,使用記憶體作為快取記憶體可能是不可接受的。
仍需要改良記憶體在多層級快取記憶體中的使用的方法。
本揭露的實施例包含一種儲存系統。儲存系統可包含兩個或多於兩個儲存裝置。接收器可接收編碼流。分離器可識別編碼流中的塊(chunk)。分配器可將塊儲存於儲存裝置上。
現將詳細參考本揭露的實施例,所述實施例的實例在隨附圖式中示出。在以下詳細描述中,闡述眾多特定細節以便能夠透徹理解本揭露。然而,應理解,所屬領域中具有通常知識者可在無此等特定細節的情況下實踐本揭露。在其他情況下,尚未詳細描述眾所周知的方法、程序、組件、電路以及網路,以免不必要地混淆實施例的態樣。
應理解,雖然本文中可使用術語第一、第二等來描述各種元件,但此等元件不應受此等術語限制。此等術語僅用於將一個元件與另一元件區分開。舉例而言,在不脫離本揭露的範疇的情況下,第一模組可稱為第二模組,且類似地,第二模組可稱為第一模組。
本揭露的實施方式中使用的術語僅用於描述特定實施例的目的,且並不意欲限制本揭露。如本揭露的實施方式及隨附申請專利範圍中所使用,除非上下文中另外清楚地指示,否則單數形式「一(a)」、「一(an)」以及「所述(the)」亦意欲包含複數形式。亦將理解,如本文中所使用的術語「及/或」是指且涵蓋關聯所列項目中的一或多者的任何及所有可能組合。應進一步理解,術語「包括(comprises)」及/或「包括(comprising)」當在本說明書中使用時指定所陳述特徵、整數、步驟、操作、元件及/或組件的存在,但並不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或添加。圖式的組件及特徵不一定按比例繪製。
記憶體可用作用於資料的多層級快取記憶體的一個層級。記憶體可比多層級快取記憶體的其他層更快存取,且因此可比多層級快取記憶體的其他層更快速地回應於請求而傳回資料。
但記憶體亦可比用於多層級快取記憶體的其他層級的儲存器更昂貴。換言之,用於記憶體的每儲存器單位的成本可比用於其他形式的儲存器的每儲存器單位成本更高。在可使用大型快取記憶體的系統中,僅使用記憶體來實施快取記憶體可能成本過高。
亦可使用揮發性儲存器來實施記憶體。若電力應中斷,則揮發性儲存器可能丟失任何所儲存資料。在預期無資料丟失的系統中,使用揮發性儲存器可被視為不可接受的風險。
本揭露的實施例可藉由將記憶體劃分成多個不同區域來解決此等問題,可藉由電池、電容器或可在主電源中斷的情況下操作的其他可用電源來保護所述區域中的一些免受電力損失。使用電池或電容器,儲存於記憶體中的資料的任何更新可遷移至非揮發性儲存器(諸如快閃記憶體、快閃儲存器或磁碟)。一旦儲存於記憶體中的資料的所有更新已遷移至非揮發性儲存器,電池或電容器的使用便可結束:可能由於電力中斷而丟失的任何資料可能不再是問題。
圖1繪示根據本揭露的實施例的包含持久性記憶體裝置的機器。在圖1中,機器105(其亦可稱為主機或系統)可包含處理器110、記憶體115以及儲存裝置120。處理器110可為任何種類的處理器。(為了易於說明,處理器110以及下文論述的其他組件繪示於機器外部:本揭露的實施例可包含機器內的此等組件。)雖然圖1繪示單個處理器110,但機器105可包含任何數目的處理器,其中的各者可為單核心處理器或多核心處理器,其中的各者可實施精簡指令集電腦(Reduced Instruction Set Computer;RISC)架構或複雜指令集電腦(Complex Instruction Set Computer;CISC)架構(以及其他可能架構),且可以任何所要組合混合。
處理器110可耦接至記憶體115。記憶體115可為任何種類的記憶體,諸如快閃記憶體、動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)、靜態隨機存取記憶體(Static Random Access Memory;SRAM)、持久性隨機存取記憶體、鐵電隨機存取記憶體(Ferroelectric Random Access Memory;FRAM)或非揮發性隨機存取記憶體(Non-Volatile Random Access Memory;NVRAM),諸如磁阻式隨機存取記憶體(Magnetoresistive Random Access Memory;MRAM)等。記憶體115視需要可為揮發性記憶體或非揮發性記憶體。記憶體115亦可為不同記憶體類型的任何所要組合,且可由記憶體控制器125管理。記憶體115可用於儲存可稱為「短期」的資料:亦即,並不預期儲存較長時間段的資料。短期資料的實例可包含暫時檔案、由應用程式本端使用的資料(其可已自其他儲存器位置複製)以及類似物。
處理器110及記憶體115亦可支援可運行各種應用程式的作業系統。此等應用程式可發出請求(其亦可稱為命令)以自任一記憶體115讀取資料或將資料寫入至任一記憶體115。在儲存裝置120用於支援經由某種檔案系統讀取或寫入資料的應用程式時,儲存裝置120可使用裝置驅動器130來存取。雖然圖1繪示一個儲存裝置120,但機器105中可能存在任何數目的(一或多個)儲存裝置。儲存裝置120可各自支援任何所要的一或多個協定,包含例如非揮發性記憶體快速(Non-Volatile Memory Express;NVMe)協定。不同儲存裝置120可支援不同協定及/或介面。
雖然圖1使用通用術語「儲存裝置」,但本揭露的實施例可包含可獲益於計算儲存單元的使用的任何儲存裝置格式,其實例可包含硬碟機及固態硬碟(Solid State Drive;SSD)。下文對「SSD」的任何參考應理解為包含本揭露的此類其他實施例。此外,可混合不同類型的儲存裝置。舉例而言,一個儲存裝置120可為硬碟機,且另一儲存裝置120可為SSD。
在本揭露的一些實施例中,機器105可為儲存伺服器。機器105可因此儲存待由諸如資料庫伺服器(圖1中未繪示)的其他伺服器使用的資料。在本揭露的此類實施例中,資料可自機器105讀取以發送至另一伺服器,或自另一伺服器寫入至機器105。
在本揭露的例如機器105儲存資料庫的一些實施例中,機器105可處理涉及大量資料的載入請求及儲存請求。需要機器105能夠耗費儘可能多的時間來處理來自其他機器的請求,且因此最小化在內部進行以支援操作的工作的量。
快取記憶體可用於嘗試及改良機器105的效能。舉例而言,相比於諸如SSD及硬碟機的較慢形式的儲存器,諸如處理器快取記憶體及/或隨機存取記憶體(Random Access Memory;RAM)的通常最快形式的儲存器在製造及購買方面往往會更昂貴,且往往會具有更小容量。但藉由適當管理何種資料儲存於更小形式的儲存器中,有可能更快地處理請求。舉例而言,傳回儲存於RAM中的資料可比自SSD傳回資料快,且將資料寫入至RAM可比將資料寫入至SSD快。
但使用不同形式的儲存器(尤其並非持久性的儲存器形式)作為快取記憶體中的層存在潛在缺點。舉例而言,考慮儲存請求導致資料儲存於RAM中的情形。若電力應中斷,則儲存於RAM(揮發性儲存器)中的資料可能丟失。因此,在資料需要為持久性的時,即使資料最初儲存於揮發性儲存器中,仍可需要將資料複製至非揮發性儲存器以確保資料在電力中斷的情況下不會丟失。
持久性記憶體裝置135可充當更快的儲存器層,在效能上大致等效於記憶體115(且可能比儲存裝置120快:亦即,更低潛時)。此外,持久性記憶體裝置135可包含在電力中斷的情況下防止資料丟失的機構。
圖2繪示根據本揭露的實施例的圖1的機器的細節。在圖2中,典型地,機器105包含一或多個處理器110,所述一或多個處理器110可包含記憶體控制器120及時鐘205,其可用於協調機器的組件的操作。處理器110亦可耦接至記憶體115,作為實例,所述記憶體115可包含隨機存取記憶體(random access memory;RAM)、唯讀記憶體(read-only memory;ROM)或其他狀態保留媒體。處理器110亦可耦接至儲存裝置125且耦接至網路連接器210,所述網路連接器210可為例如乙太網路連接器或無線連接器。處理器110亦可連接至匯流排215,使用者介面220及可使用輸入/輸出(Input/Output;I/O)引擎225管理的輸入/輸出(I/O)介面埠以及其他組件可附接至所述匯流排215。
圖3繪示根據本揭露的實施例的圖1的持久性記憶體裝置135的細節。在圖3中,持久性記憶體裝置135可包含揮發性儲存器,其劃分成多個區域。在圖3中,揮發性記憶體繪示為劃分成三個區域305-1、區域305-2以及區域305-3,所述三個區域亦可統稱為區域305。在圖3中,區域305-1可標記為揮發性區域(volatile area;VA),區域305-2可標記為寫回區域(write back area;WBA),且區域305-3可標記為固定快取區域(pinned cache area;PCA)。區域305-1可為未固定的揮發性儲存器,區域305-2可為在電力中斷的情況下由備用電源支持(且因此至少部分地持久性儲存)且未固定的揮發性儲存器,且區域305-3可為由備用電源支持且固定(亦即,可能並不自區域305-3收回區域305-3中的資料)的揮發性儲存器。
揮發性儲存器可完全或部分地由底層非揮發性儲存器支持。底層非揮發性儲存器可包含例如一或多個SSD。持久性記憶體空間310及持久性記憶體空間315可表示底層非揮發性儲存器中的所暴露可用儲存器,其中空間320充當可用於耐久性的額外可用空間(例如,作為額外儲存器,使得磨損可跨更多儲存空間分佈,藉此避免需要更早地替換非揮發性儲存器)。因此,持久性記憶體空間310及持久性記憶體空間315的容量可小於底層非揮發性儲存器的總可用儲存器。應注意,雖然持久性記憶體空間310及持久性記憶體空間315繪示為分離的,但在本揭露的一些實施例中,可將持久性記憶體空間310及持久性記憶體空間315視為一個大持久性記憶體空間,而非劃分成支援揮發性儲存器的不同區域305中的資料的持久性儲存的不同部分。
此外,雖然圖3表明單一非揮發性儲存器用於提供資料的持久性儲存,但本揭露的實施例可包含非揮發性儲存器的兩個或多於兩個層級,如在快取記憶體階層中。舉例而言,一個層級可使用硬碟機(大容量以及高潛時),且另一層級可使用快閃記憶體(中等容量以及中等潛時)。DRAM(較小容量以及低潛時)充當揮發性儲存器。快閃記憶體可充當用於揮發性儲存器中的資料的主要非揮發性儲存器,其中硬碟機充當次要非揮發性儲存器。
區域305-1可用於儲存乾淨(clean)的資料:亦即,區域305-1中的資料可為自底層非揮發性儲存器讀取的。由於區域305-1中的資料可能相比於底層非揮發性儲存器中的資料沒有變化,因此無需擔心區域305-1中的資料因電力中斷而導致資料丟失。若電力中斷,則區域305-1中的資料可能自揮發性儲存器丟失,但仍可自底層非揮發性儲存器獲得資料。因此,若在電力復原之後需要資料,則可自底層非揮發性儲存器讀取資料,且可不丟失資料。
區域305-1可充當快取,其中視需要將資料載入至區域305-1中。若區域305-1已滿(亦即,區域305-1不具有空閒快取線,資料可載入至所述空閒快取線中),則可收回區域305-1中的現有快取線(可刪除所選擇快取線中的資料)以為新資料讓出空間。可使用任何策略來選擇待收回的快取線:例如,可選擇供收回的最近最少使用快取線,或可選擇供收回的最不常用快取線,以及其他可能快取線。
區域305-2可用於儲存錯(dirty)的資料:亦即,區域305-2中的資料可能已相對於儲存於非揮發性儲存器中的資料改變。舉例而言,自圖1的機器105請求資料的資料庫伺服器可改變或更新資料,接著寫回更新資料。直至將資料寫回至非揮發性儲存器,資料可儲存於區域305-2中。
由於可相對於儲存於非揮發性儲存器中的資料更新區域305-2中的資料,因此若電力將中斷或損失,則儲存於區域305-2中的資料亦可丟失。可將此類資料(已改變但尚未寫入至非揮發性儲存器的資料)稱為錯資料(dirty data)。為了防止此可能性,持久性記憶體裝置135可包含備用電源325。雖然圖3將備用電源325繪示為電容器,但備用電源325可呈任何所要形式:例如,電池。備用電源325可提供充足電力,使得在電力損失或電力中斷的情況下,可維持儲存於區域305-2中的資料直至其寫入至非揮發性儲存器。一旦錯資料已寫入至非揮發性儲存器,便無需擔心因電力中斷而導致的資料丟失,且持久性記憶體裝置135接著可在電力中斷時正常操作。
由於區域305-2可儲存錯資料,因此持久性記憶體裝置135最終可將錯資料傳送至非揮發性儲存器。但同時,持久性記憶體裝置135可能想要避免干擾非揮發性儲存器的效能:應儘可能高效地執行另一伺服器已請求執行的其他操作。為了平衡此等問題,持久性記憶體裝置135可使用任何所要方法將來自區域305-2的資料傳送至非揮發性儲存器中。舉例而言,持久性記憶體裝置135可監控區域305-2中有多少錯資料區塊。在數目增長過大時,可觸發檢查點以使得一些(或所有)錯記憶體區塊自區域305-2刷新至非揮發性儲存器中。或者,持久性記憶體裝置135可追蹤其總體使用情況,且特定而言,非揮發性儲存器的利用率。若非揮發性儲存器的利用率下降,則可能有機會將來自區域305-2的錯資料寫入至非揮發性儲存器中,藉此避免對在更主動地利用持久性記憶體裝置135時執行此類寫入的需要。可將此類方法稱為機會性寫回。
在電力中斷的情況下,備用電源325可用於將來自區域305-2的任何資料傳送至非揮發性儲存器。由於區域305-2中的資料可為由資料庫伺服器寫入但尚未提交至非揮發性儲存器的資料,因此在電力中斷的情況下,區域305-2中的資料可寫入至非揮發性儲存器中的目標位址,從而完成由資料庫伺服器發出的寫入請求。換言之,由於區域305-2中的資料可提交至非揮發性儲存器以防止因電力中斷而導致的資料丟失,因此資料可提交至資料在正常事件過程中最終寫入時將儲存的位置(例如,歸因於檢查點或非揮發性儲存器利用率的適宜下降)。
應注意,持久性記憶體裝置135繪示為包含可跨越兩個區域305-1及區域305-2的緩衝快取330。可將區域305-1視作用於乾淨資料(clean data)的緩衝快取,且可將區域305-2視作用於錯資料(dirty data)的緩衝快取。但本揭露的一些實施例可以其他方式使用緩衝快取330。舉例而言,若區域305-1已滿但區域305-2具有空閒快取線,則並非自區域305-1收回快取線以為待載入的新資料讓出空間,可實際上選擇區域305-2中的空閒快取線且資料載入至區域305-2中。因此,即使可將區域305-2視作用於錯資料,區域305-2亦可用於載入乾淨資料。(另一方面,由於區域305-1可能並不由備用電源325支持,因此使用區域305-1來儲存錯資料可能導致資料丟失,其應被避免。)
最後,區域305-3可用於儲存重作日誌資料。亦即,在諸如資料庫伺服器的伺服器對儲存於圖1的機器105上的資料做出改變時,特定改變自身(與已改變資料相比)可作為重作日誌儲存於持久性記憶體裝置135中。接著,若資料庫伺服器無法發送將已改變資料寫回至非揮發性儲存器的請求,則可使用重作日誌來重新創建改變。雖然術語「重作日誌」用於描述正由資料庫伺服器進行的改變,但本揭露的實施例可將任何形式的資料(包含個別資料改變的記錄)儲存於區域305-3中。在以下論述中,術語「重作日誌」可由諸如任何暫態錯資料的任何其他術語替換,而無任何適用性損失。
由於重作日誌可僅儲存足夠長時間以確保寫入實際已改變資料自身,因此可將重作日誌視作暫時檔案:一旦改變實際上寫入至圖1的機器105,便可刪除重作日誌。亦即,重作日誌可僅在資料實際上由資料庫伺服器寫回至圖1的機器105以前為持久性的:一旦資料已寫入至圖1的機器105,便可刪除重作日誌。可因此將重作日誌視作暫態的:可僅為了防止實際資料出於某一原因而未成功地寫入的可能性來儲存重作日誌,且一旦資料已成功地寫入至圖1的機器105,便可刪除重作日誌。因此,將重作日誌儲存於非揮發性儲存器上可導致非揮發性儲存器的顯著使用:資料可能被寫入,且接著立刻被刪除。由非揮發性儲存器處理的此等頻繁命令可影響其他命令被高效地處理:例如,自非揮發性儲存器讀取資料的命令。為了避免此情形,如上文所提及,區域305-3可為固定區域,從而保持區域305-3中的資料直至所述資料被刪除,此時可在不自非揮發性儲存器刪除資料的情況下自區域305-3刪除資料。
可能出現的一個問題為在區域305-3已滿(不存在空閒快取線)但資料庫伺服器嘗試將新重作日誌寫入至區域305-3的情況下應進行何種操作。並非自區域305-3收回重作日誌(且將其寫入至非揮發性儲存器),持久性記憶體裝置135拒絕將資料寫入至區域305-3的請求。彼時,資料庫伺服器可將資料寫入至區域305-2中以更新實際所儲存資料,且一旦彼儲存請求完成,便可刪除區域305-3中的對應重作日誌,從而為新重作日誌釋放一或多個快取線。
由於區域305-3中的重作日誌為重要的(其為重建構尚未寫入至非揮發性儲存器的改變提供基礎),因此區域305-3可由備用電源325支持。接著,若持久性記憶體裝置135經歷電力損失或電力中斷,則儲存於區域305-3中的資料可寫入至非揮發性儲存裝置。以此方式,在電力中斷的情況下可恢復區域305-3中的資料,且可保留重建構對資料的改變的能力。
雖然關於區域305-3的以上論述集中於重作日誌,但其他資料亦可儲存於區域305-3中。舉例而言,若資料庫伺服器具有應儲存於持久性記憶體裝置135中的一些暫時檔案,則彼等暫時檔案可儲存於區域305-3中。
在以上論述中,使用術語「快取線」。術語「快取線」可理解為是指區域305中大小已知的揮發性儲存器的一部分。典型地,預先已知快取線的大小,且可參考資料載入及儲存於區域305及其他區域兩者中的方式來利用所述大小。可使用諸如「位址」或「區塊」的其他術語來替代「快取線」,而無任何含義損失。取決於揮發性儲存器的形式,可將一個術語或另一術語視為典型術語。但出於此描述的目的,在揮發性儲存器內,將此等各種術語均視為可互換的,且是指揮發性儲存器的某一理解的部分。
在以上論述中,已描述三種類型的揮發性儲存器區域:不具有電池備用的未固定快取(區域305-1)、具有電池備用的未固定快取(區域305-2),以及具有電池備用的固定快取(區域305-3)。本揭露的實施例可包含此等區域中的一些或全部。舉例而言,重作日誌可寫入至區域305-2,且可省略區域305-3(但以可能更多資料寫入至非揮發性儲存器及自非揮發性儲存器刪除更多資料為代價,其影響非揮發性儲存器效率)。或者,持久性記憶體裝置可包含第四區域,所述第四區域可用於儲存未由備用電源325支持的固定資料。舉例而言,可使用此區域來將用於資料的元資料儲存於區域305-1中。此類元資料(其可例如來自資料庫伺服器)可足夠重要,使得持久性記憶體裝置135可能想要將此類資料保持於揮發性儲存器中。但由於資料已持久地儲存(例如,在資料庫伺服器處),因此持久性記憶體裝置135可不需要將元資料保持於由備用電源325支持的區域中:在電力中斷的情況下,將不丟失資料。
如上文所論述,備用電源325可為儲存於區域305-2及區域305-3中的資料(而非為儲存於區域305-1中的資料)提供用於備用電力的電力。為區域305中的一些(而非所有)提供電力的彼備用電源325可解釋為選擇性地將電力提供至區域305的備用電源325:可針對備用電力選擇一些區域305,且可能並不針對備用電力選擇其他區域305。
如上文所論述,在電力中斷的情況下,備用電源325可用於將資料儲存至非揮發性儲存器。但在電力復原時(亦即,在系統重新開始或重新啟動時)情況如何?如上文所提及,區域305-1中的資料已儲存於非揮發性儲存器中。雖然在電力中斷之前已在區域305-1中的資料可重新載入至區域305-1中,但本揭露的實施例可包含在電力復原之後不將資料復原至區域305-1。區域305-1可充當快取:在請求資料時,彼資料可載入至區域305-1中。
由於可重新載入區域305-2中的資料,如上文所論述,因此區域305-2可用於儲存待寫入至非揮發性儲存器的資料。因而,若發生電力中斷,則資料可在其預期位置中提交至非揮發性儲存器。因此,如同區域305-1中的資料,本揭露的實施例可包含在電力復原之後不復原處於區域305-2中的資料。
另一方面,區域305-3中的資料可包含重作日誌,或關於對資料進行但尚未由資料庫伺服器複製至區域305-2中的改變的其他暫態資訊。若區域305-3中的此類重作日誌未提交至非揮發性儲存器且資料庫伺服器丟失已改變資料,則可能不存在復原已改變資料的方式。
甚至更糟的是,圖1的機器105上的資料可保持在不穩定狀態中,意謂圖1的機器105上的其他資料中可實際上存在隱含錯誤。舉例而言,考慮資料庫伺服器使用由資料庫伺服器應用的某一加密形式將資料儲存於圖1的機器105上的情形。若此加密覆蓋儲存於兩個不同區塊中的資料,則在不自另一區塊讀取加密資料的情況下可能無法解密一個區塊中的資料。但若持久性記憶體裝置135在發生電力中斷之前僅接收兩個資料區塊中的一者,則除非存在復原或重新創建第二資料區塊的某一方式,否則即使第一資料區塊已成功地寫入至機器105,仍不可讀取所述第一資料區塊。
因此,在電力中斷之後,持久性記憶體裝置135可在電力復原時將已在區域305-3中的資料自非揮發性儲存器載入回至區域305-3中。藉由將資料復原至區域305-3,持久性記憶體裝置135可實現對無論出於任何原因皆無法在電力中斷時寫入至非揮發性儲存器的資料區塊的重新創建。
持久性記憶體裝置135可為可組態的。亦即,區域305的大小可由使用者組態。舉例而言,使用者可使用各種命令來設定區域305的大小。組態區域305的大小的命令可指定哪一裝置將用作持久性記憶體裝置135、將組態的區域305、區域的大小、至區域305的記憶體的偏移及/或將針對區域305分配的持久性記憶體(非揮發性儲存器)的數目。在本揭露的一些實施例中,待用於組態持久性記憶體裝置135的大小及偏移可以大於一個位元組的單位來量測:例如,區域305的大小可以各自4 KB的單位來組態,且區域305的偏移可以各自1 MB的單位來組態。
在本揭露的一些實施例中,持久性記憶體裝置135可使用快取記憶體同調互連協定,諸如計算快速鏈接(Compute Express Link;CXL)協定。諸如CXL的快取記憶體同調互連協定可提供不同類型的命令來存取持久性記憶體裝置135。舉例而言,CXL提供CXL.IO及CXL.MEMORY協定,其可提供不同方式來存取持久性記憶體裝置135。CXL.IO協定可類似於快捷周邊組件互連(Peripheral Component Interconnect Express;PCIe)標準起作用(其可用於存取諸如圖1的儲存裝置120的儲存裝置),但CXL.MEMORY協定可用於存取諸如圖1的記憶體115的儲存裝置。
對於區域305可組態成多大可能存在限制。舉例而言,備用電源325可提供足夠電力以僅在有限時間量內將資料保留在自主儲存器(諸如區域305-2及區域305-3)中。若區域305-2及區域305-3一起大於可取決於備用電源325可提供的電力的量的某一臨限值,則可能無法將資料保留在自主儲存器中足夠長時間以將所有資料寫入至非揮發性儲存器。因此,區域305-2及區域305-3的大小可取決於備用電源325的電力容量。區域的最大大小可因此小於區域的大小的使用者組態。
持久性記憶體裝置135可通告某一總體容量。若持久性記憶體裝置135通告特定總體容量,則區域305的容量的總和可理解為不大於此總體容量。在本揭露的此類實施例中,區域305中的一者(例如,區域305-1)可理解為包含未分配至經組態的其他區域305的所有容量。(針對此過量容量使用區域305-1具有區域305-1不由備用電源325支持的優勢,且因此可儘可能大,而無需關注備用電源325的電力容量。)舉例而言,若持久性記憶體裝置通告總共64 GB的儲存器,區域305-2組態成具有27 GB的容量,且區域305-3組態成具有5 GB的容量,則預設區域305-1可具有32 GB的容量(32 GB = 64 GB - (32 GB + 5 GB))。
如圖3中所繪示,持久性記憶體模組135可包含控制器335。控制器335可用於控制對區域305的存取及處理涉及彼等區域中的資料的請求。舉例而言,控制器335可接收載入請求,將請求資料載入至區域305-1(若請求資料尚未在此處)中,接著自區域305-1讀取資料且將請求資料傳回至資料庫伺服器。控制器335亦可接收針對待寫入至持久性記憶體裝置135的資料的儲存請求,將資料儲存於區域305-2中,且將結果傳回至資料庫伺服器。控制器335接著可在適當時(諸如在觸發檢查點時或在有機會將資料寫入至非揮發性儲存器時)觸發將資料寫回至非揮發性儲存器。(控制器335亦可以類似方式處理刪除請求,但刪除請求可能不涉及將資料儲存於區域305-2中。)最後,控制器335可接收針對待寫入至持久性記憶體裝置135的重作日誌的儲存請求,將重作日誌儲存於區域305-3中,且將結果傳回至資料庫伺服器。(如上文所論述,由備用電源325支持的區域305-3中的資料大體上不寫入至非揮發性儲存器,此是因為預期很快將刪除所述資料)。
控制器335繪示為包含佇列340-1至佇列340-3(其可統稱為佇列340)。藉由支援多個佇列340,控制器335可使得能夠以不同方式管理不同類型的請求,以使一些請求優先於其他請求。多個佇列340亦可使得控制器335能夠支援來自多個不同請求源的處理請求,此可使得控制器335能夠向請求圖1的機器105上的資料的應用程式提供服務品質(Quality of Service;QoS)保證。
持久性記憶體裝置135亦可包含計算模組345。計算模組345可為例如可執行對可在揮發性儲存器的區域305及/或非揮發性儲存器中的資料的特殊化處理的加速器。計算模組345可實施為任何所要加速器,包含例如單核心處理器或多核心處理器、圖形處理單元(graphics processing unit;GPU)、通用GPU(general purpose GPU;GPGPU)、系統晶片(System-on-a-Chip;SoC)、神經處理單元(neural processing unit;NPU)、張量處理單元(tensor processing unit;TPU)、場可程式化閘陣列(field programmable gate array;FPGA)或特殊應用積體電路(application-specific integrated circuit;ASIC),以及其他可能加速器。
圖4繪示根據本揭露的實施例的載入資料的圖1的持久性記憶體裝置135。在圖4中,資料庫伺服器405可發送讀取資料的請求。圖3的控制器335可接收此請求,且可判定資料當前是否在區域305-1中(在圖4中繪示為資料410)。若資料410在區域305-1中,則圖3的控制器335可將圖4的資料410發送至資料庫伺服器405,其中資料可儲存為資料415。在本揭露的一些實施例中,資料415可儲存於乾淨緩衝區域中以指示資料本身當前為乾淨的(亦即,無變化)。
若資料410當前不在區域305-1中,則可自諸如持久性記憶體空間350的非揮發性儲存器讀取資料420。可分配區域305-1中的快取線。資料420接著可儲存於區域305-1中的所分配快取線中,隨後圖3的控制器335可將資料410發送至資料庫伺服器405。
如上文所提及,在一些情形中,區域305-1可不具有空閒快取線。在彼情況下,存在若干可能方法。一個方法為選擇區域305-1中的位址且刪除其中的資料,其可釋放快取線以儲存資料410。如上文所提及,可使用任何所要方法來選擇刪除區域305-1中的哪一快取線(位址)。
另一方法為選擇區域305-2中的快取線且使用彼位址來儲存資料(繪示為資料425),或將快取線自區域305-1複製至區域305-2中(且接著使用區域305-1中的彼已釋放快取線來儲存新資料)。如上文所提及,即使待儲存於區域305-2中的資料可為乾淨的,區域305-2仍可用作區域305-1的擴展。圖3的控制器335接著可將資料425發送至資料庫伺服器405。
圖5繪示根據本揭露的實施例的儲存資料的圖1的持久性記憶體裝置135。在圖5中,資料庫伺服器405可將資料505發送至持久性記憶體裝置135以供儲存。資料505可設想為當前由持久性記憶體裝置135儲存的資料的經修改形式。
若區域305-2當前儲存現在更新的原始資料(在例如之前更新了資料(無論改變是否已提交至非揮發性儲存器)的情況下或在區域305-2在資料庫伺服器405執行載入請求時用於儲存原始資料的情況下可發生),則圖3的控制器335可更新原始資料以反映由資料庫伺服器405發送的改變。因此,區域305-2中的原始資料可由更新資料510替換(其亦可稱為錯資料510)。在某一時刻(立即、機會性地或在觸發檢查點時),資料510可作為非揮發性儲存器中的資料515複製至持久性記憶體空間310中,以確保資料510不應電力中斷而丟失。視情況,圖3的控制器335亦可將更新資料(一旦其寫入至非揮發性儲存器)複製至區域305-1中(因為一旦資料已寫入至非揮發性儲存器,便可將其視為乾淨的),繪示為資料520。
若區域305-2當前並不儲存原始資料,則圖3的控制器335可自儲存有原始資料的某處擷取原始資料且將原始資料儲存於區域305-2中。但首先,圖3的控制器335可檢查以查看區域305-2中是否存在可儲存原始資料的空閒快取線(位址)。若區域305-2中不存在空閒快取線,則圖3的控制器335可釋放區域305-2中的快取線。圖3的控制器335可藉由選擇區域305-2中的快取線(再次,使用任何所要方法,諸如最近最少使用或最不常用)來釋放區域305-2中的快取線。可將彼資料(假定資料為錯的)寫入至非揮發性儲存器。由於可預期可能會迅速再次請求所選擇的快取線中的資料,因此在本揭露的一些實施例中,可將資料(現為乾淨的,因為其已寫入至非揮發性儲存器)複製至區域305-1中的快取線(位址);在本揭露的其他實施例中,可丟棄資料(現為乾淨的)(且若再次需要,則稍後擷取)。
若(乾淨)資料將移動至區域305-1,則可選擇區域305-1中的快取線(位址)。此過程可與上文參考圖4所描述的過程相同,唯一區別在於由於來自資料庫伺服器405的儲存請求(而非來自資料庫伺服器405的載入請求)正經處理,因此資料載入至區域305-1中。
一旦圖3的控制器335知曉區域305-2中存在至少一個空閒快取線,圖3的控制器335便可針對原始資料分配快取線。原始資料接著可複製至區域305-2中的快取線中。應注意,可在非揮發性儲存器中發現原始資料,但亦可在區域305-1中發現原始資料:舉例而言,若先前在載入請求中藉由資料庫伺服器405請求原始資料,且尚未自區域305-1刷新原始資料以釋放用於其他資料的快取線。若原始資料已在區域305-1中,則出於若干原因,將資料自區域305-1複製至區域305-2中可為更高效的。首先,相比於將資料自非揮發性儲存器載入至區域305-2中,在區域305-1與區域305-2之間複製原始資料可更快。其次,由於原始資料將由儲存請求更新,因此可刪除區域305-1中的原始資料,從而釋放用於其他資料的快取線。
先前已述,區域305的容量經描述為可組態的。一個可能性為使用者可將區域305-2組態成不具有容量(0位元組的容量)。此組態可能未必被視為高效的,可能存在系統可能應組態成省略區域305-2的情形。在彼情形中,區域305-2中不存在可用的快取線,且不存在釋放區域305-2中的快取線的可能性。因此,由於可能不存在用以儲存資料的任何其他位置,因此圖3的控制器335可將資料直接寫回至非揮發性儲存器。
在圖4中,在資料庫伺服器405請求載入的資料時,可預期可將整個資料自非揮發性儲存器載入至揮發性儲存器的區域305-1中且接著發送至資料庫伺服器405。但在圖5中,在資料將儲存時,可能僅資料的一部分正在更新。舉例而言,資料庫伺服器405最初可請求載入4 KB的資料,但僅改變200 B的彼資料。資料庫伺服器405可將整個4 KB的資料發送回持久性記憶體裝置135。但此類方法可能低效:若僅200 B已改變,則小於5%的原始4 KB的資料已改變,或替代地,發送回的資料的大致95%已存在於持久性記憶體裝置135中。
實際上,資料庫伺服器405可僅發送回已改變的資料的部分,以及識別何種資料已改變的資訊。舉例而言,資料庫伺服器405可發送回200 B的已改變資料,以及指示200 B的已改變資料的開始位置的至原始4 KB的資料的偏移。在彼情形中,圖3的控制器335可用已改變資料更新區域305-2中的原始資料,以產生儲存於區域305-2中的更新資料。(應注意,此變更資料不同於可儲存於區域305-3中的重作日誌資料,但與所述重作日誌資料有關。)
儲存資料時的另一問題為資料變動(data churn)。資料變動可在持久性記憶體裝置135歸因於電力中斷而僅寫入資料的部分時發生。為了防止資料變動,在接收到資料時,可首先將資料先寫入至暫時儲存空間,接著複製至非揮發性儲存器中。接著,若電力中斷,則資料已儲存於持久性位置(若並非最終目的地)中:暫時儲存空間。可將此暫時儲存空間稱為雙寫入緩衝器。在本揭露的一些實施例中,區域305-3可用作雙寫入緩衝器(由於僅在電力中斷的情況下可將寫入至區域305-3中的資料視為待寫入至非揮發性儲存器的暫時資料)。在本揭露的其他實施例中,額外非揮發性儲存器可用作雙寫入緩衝器。
圖6繪示根據本揭露的實施例的儲存重作日誌的圖1的持久性記憶體裝置135。在圖6中,資料庫伺服器405可將重作日誌605發送至持久性記憶體裝置135。圖3的控制器335可將重作日誌605在區域305-3中儲存為重作日誌610。如上文所論述,區域305-3可在電力損失的情況下由備用電源325支持:若發生,則重作日誌610可複製至持久性記憶體空間315中,同時圖3的備用電源325防止持久性記憶體裝置135的揮發性儲存器中的資料丟失。
圖7繪示根據本揭露的實施例的用於使用圖1的持久性記憶體裝置135處理載入請求的實例程序的流程圖。在圖7中,在區塊705處,圖1的持久性記憶體裝置135可自主機(諸如圖4的資料庫伺服器405)接收載入請求。在區塊710處,圖3的控制器335可定位圖1的持久性記憶體裝置135的揮發性儲存器中的位址。應注意,舉例而言,若主機先前已發送待針對彼邏輯識別符寫入的資料,但資料尚未提交至圖1的持久性記憶體裝置135的非揮發性儲存器,則資料可儲存於圖3的區域305-2中。在區塊715處,圖1的持久性記憶體裝置135可傳回經定位位址處的資料。
圖8繪示根據本揭露的實施例的用於將資料載入至圖1的持久性記憶體裝置135中的實例程序的流程圖。在區塊805處,圖3的控制器335可刪除圖1的持久性記憶體裝置135的揮發性儲存器中的圖3的區域305-1中的資料。前已述及,圖3的區域305-1可用於儲存乾淨資料,因此刪除圖3的區域305-1中的位址處的資料不應導致任何潛在資料丟失。應注意,若快取線已空閒,則可跳過區塊805,如由虛線810所示。在區塊815處,圖3的控制器335可選擇圖3的區域305-1中的位址且針對請求資料分配儲存器。最後,在區塊820處,圖3的控制器335可將來自非揮發性儲存器的資料載入至圖3的區域305-1中的所分配位址中。
替代地,若圖3的區域305-1不具有任何自由空間,但圖3的控制器335並不想要自圖3的區域305-1刪除任何資料,則在區塊825處,圖3的控制器335可在圖3的區域305-2中分配位址,且在區塊830處,圖3的控制器335可將來自非揮發性儲存器的資料載入至圖3的區域305-2中的所分配位址中。應注意,若位址分配於圖3的區域305-2中,一般而言,則可預期彼位址為空閒的:由於圖3的區域305-2可用於儲存錯資料,因此圖3的控制器335不應在未首先確保資料已複製至非揮發性儲存器中的情況下自圖3的位址305-2刪除資料,或資料可能丟失。
圖9繪示根據本揭露的實施例的用於使用圖1的持久性記憶體裝置135處理儲存請求的實例程序的流程圖。在圖9中,在區塊905處,圖1的持久性記憶體裝置135可自主機(諸如圖4的資料庫伺服器405)接收儲存請求。在區塊910處,圖3的控制器335可定位圖1的持久性記憶體裝置135的揮發性儲存器的圖3的區域305-2中的位址,其中儲存原始資料。在區塊715處,圖1的持久性記憶體裝置135可使用變更資料更新經定位位址處的原始資料。
圖10A至圖10B繪示根據本揭露的實施例的用於將資料載入至圖1的持久性記憶體裝置135的圖3的區域305-2中的實例程序的流程圖。在圖10A中,圖3的控制器335可首先判定原始資料是否已在圖3的區域305-2中。若如此,則可跳過許多區塊,如由虛線1005所示。否則,在區塊1010處,圖3的控制器335可選擇圖3的區域305-2中的位址。在區塊1015處,圖3的控制器335可將儲存於圖3的區域305-2的所選擇位址處的資料寫入至非揮發性儲存器。在區塊1015處,圖3的控制器335可將儲存於圖3的區域305-2中的所選擇位址處的資料寫入至非揮發性儲存器。
由於現可將當前儲存於圖3的區域305-2中的位址處的資料視為乾淨的(由於資料已寫入至非揮發性儲存器),因此資料可移動至圖3的區域305-1以釋放圖3的區域305-2中的快取線。在區塊1020處,圖3的控制器335可選擇圖3的區域305-1中的位址。在區塊1025處,圖3的控制器335可刪除當前儲存於圖3的區域305-1中的位址處的資料。在區塊1030處,圖3的控制器335可在圖3的區域305-1中分配位址,且在區塊1035處,圖3的控制器335可將資料自圖3的區域305-2中的位址複製至圖3的區域305-1中的位址中。最後,在區塊1040處,可刪除儲存於圖3的區域305-2中的位址處的資料。
區塊1025表示在區塊1020處在圖3的區域305-1中選擇的位址已儲存資料的情況下待執行的操作。若在區塊1020處選擇的圖3的區域305-1中的位址當前並不儲存資料,則可省略區塊1025,如由虛線1045所示。類似地,區塊1020至區塊1035表示待執行以在錯資料已寫入至非揮發性儲存器之後將資料自圖3的區域305-2移動至圖3的區域305-1的操作。若先前錯資料不自圖3的區域305-2移動至圖3的區域305-1,則可省略區塊1020至區塊1035,如由虛線1050所示。類似地,區塊1015至區塊1040表示在區塊1010處在圖3的區域305-2中選擇的位址已儲存資料的情況下待執行的操作。若在區塊1010處選擇的圖3的區域305-2中的位址當前並不儲存資料,則可省略區塊1015至區塊1040,如由虛線1055所示。
在區塊1060處(圖10B),圖3的控制器335可針對原始資料在圖3的區域305-2中分配位址。在區塊1065處,若原始資料當前並不儲存於圖1的持久性記憶體裝置135的揮發性儲存器中,則圖3的控制器335可將資料自圖1的持久性記憶體裝置135的非揮發性儲存器複製至圖3的區域305-2中的位址中。替代地,若原始資料當前儲存於圖3的區域305-1中的位址處,則在區塊1070處,圖3的控制器335可將原始資料自圖3的區域305-1複製至圖3的區域305-2中的位址中,且在區塊1075處,圖3的控制器335可自圖3的區域305-1刪除原始資料。
如上文所提及,圖10A的區塊1010至圖10B的區塊1065/1075假定原始資料當前並不在圖3的區域305-2中。若原始資料已在圖3的區域305-2中(例如,若資料先前由圖4的資料庫伺服器405更新,無論彼等更新是否已提交至圖1的持久性記憶體裝置135的非揮發性儲存器),則可如由虛線1005所示省略圖10A的區塊1010至圖10B的區塊1065/1075。
在區塊915處,如上文參考圖9所描述,圖3的控制器335可用由主機提供的已改變資料更新原始資料。最後,在區塊1080處,圖3的控制器335可最終將更新資料自圖3的區域305-2複製至圖1的持久性記憶體裝置135的非揮發性儲存器中(此時可將資料視為乾淨的,而非錯的)。應注意,在本揭露的實施例中,可在觸發檢查點時或機會性地基於圖1的持久性記憶體裝置135的利用率而立即執行區塊1080。
圖11繪示根據本揭露的實施例的用於在圖1的持久性記憶體裝置135的電力中斷的情況下將資料儲存至非揮發性儲存器的實例程序的流程圖。在圖11中,在區塊1105處,圖3的控制器335可判定圖1的持久性記憶體裝置135的一次電力中斷。在區塊1110處,圖3的控制器335可將資料自圖3的區域305-2及區域305-3複製至圖1的持久性記憶體裝置135的非揮發性儲存器中。圖1的持久性記憶體裝置135可依賴於來自圖3的備用電源325的電力以將資料保留在圖3的區域305-2及區域305-3中足夠長時間,以供圖3的控制器335將資料自圖3的區域305-2及區域305-3複製至圖1的持久性記憶體裝置135的非揮發性儲存器中。
在圖7至圖11中,繪示本揭露的一些實施例。但所屬領域中具有通常知識者將認識到,藉由改變區塊的次序、藉由省略區塊或藉由包含在圖式中未繪示的鏈接,本揭露的其他實施例亦為可能的。流程圖的所有此類變化被視為本揭露的實施例,無論是否明確地描述。
本揭露的實施例包含一種持久性記憶體裝置。持久性記憶體裝置可劃分成具有不同屬性的不同區域。一些區域可在電力中斷的情況下由備用電源支持,且其他區域可不由備用電源支持。一些區域可為固定的,且其他區域可不為固定的。資料可基於資料類型而載入/儲存於區域中:乾淨資料可儲存於不由備用電源支持的區域中,錯資料及重作日誌可儲存於由備用電源支持的區域中。各區域的大小可為可組態的。持久性記憶體裝置可提供技術優勢,因為可自揮發性儲存器(諸如DRAM)擷取資料,所述揮發性儲存器具有低潛時,但仍藉由非揮發性儲存器來防止電力中斷。
本揭露引入基於NAND及計算快速鏈接(CXL)技術的圖1的持久性記憶體(persistent memory;PMEM)135,在一些實施例中,其可提供載入/儲存介面。在一些實施例中,NAND空間的一部分可用作持久性記憶體空間。在一些實施例中,持久性記憶體可具有可由具有不同特性的三個空間組成的可使用者組態的DRAM快取。在一些實施例中,持久性記憶體可具有大於CPU中可用以支援對裝置的並行存取的硬體執行緒的數目的多個佇列。在一些實施例中,持久性記憶體可具有用於稱為寫回區域(write-back area;WBA)的DRAM埠的內部/外部電容器,及在電力故障的情況下仍存在的固定快取區域(fixed cache area;PCA)。
資料庫可以儲存器中的資料區塊的形式儲存。為了處理使用者查詢,資料庫伺服器可首先嘗試自資料庫伺服器的本端緩衝快取找到含有資訊的資料區塊,其中資料區塊儲存於記憶體中。若資料區塊不在本端緩衝快取中,則資料庫伺服器可使用諸如磁卷(volume)及LBA的資料區塊元資料資訊自儲存伺服器請求資料區塊。由於此讀取操作可為關鍵的,因此潛時對於總體效能可能至關重要。實例可使用兩個遠端直接記憶體存取(remote direct memory access;ROMA)操作,其可顯著地減小存取潛時。
一旦資料庫伺服器自儲存伺服器接收資料區塊,其便可將資料區塊儲存於其本端緩衝快取中,且可處理資料區塊。此時,關於資料區塊的更新可出現,且資料區塊可為錯的。
在資料區塊經修改且變為錯的時,資料庫伺服器可擷取由資料庫伺服器針對此異動進行的所有改變,且可創建重作日誌緩衝區中的重作日誌條目。資料區塊的改變可在資料庫伺服器寫入重作日誌時存留。由於日誌寫入可為關鍵的,因此潛時不應受損。
然而,經修改資料區塊在異動經提交時可能並不立即寫入至儲存器,直至調用檢查點操作為止。亦即,錯資料區塊仍在資料庫伺服器中。同時,後台處理程序可監控緩衝快取利用率,且可在滿足檢查點條件時將錯資料區塊寫入至儲存伺服器。檢查點操作可不一次性地寫入所有錯資料區塊。
在儲存伺服器儲存錯資料區塊時,所述錯資料區塊可首先寫入至稱為雙寫入緩衝器(double write buffer;DWB)的暫時儲存空間以防止故障情況下的變動寫入。亦即,儲存伺服器首先將資料寫入至緩衝器,且接著將雙寫入緩衝器中的資料複製至原始資料區塊。
在本揭露的一些實施例中,圖1的PMEM 135可提供三種使用情況。首先,PMEM可減小自儲存伺服器存取資料區塊的延遲。其次,PMEM可減小藉由小資料寫入重作日誌的潛時。最後,PMEM可減小熱資料區塊至快閃快取記憶體的寫入的量。
本揭露的實施例可包含計算快速鏈接(CXL)-SSD,以提供基於NAND備份儲存區及DRAM快取的一個持久性記憶體空間。NAND空間可通告為裝置的持久性記憶體空間。舉例而言,在本揭露的一些實施例中,裝置可具有768 GB持久性記憶體空間。持久性記憶體空間可由768 GB NAND空間支持。
圖1的PMEM 135可具有DRAM快取以提高效能。PMEM亦可提供介面以控制DRAM快取。DRAM可具有具備不同屬性的3個區域:揮發性區域(VA)、寫回區域(WBA)以及固定快取區域(PCA)。
圖3的揮發性區域(VA)305-1為在電力故障的情況下不受保護的快取空間,且可用於改良持久性記憶體的讀取效能。舉例而言,此空間可用於儲存資料庫的乾淨資料區塊。若資料區塊為乾淨的,則可丟失資料區塊,因為資料區塊已存留在此裝置或其他儲存裝置中。
圖3的寫回區域(WBA)305-2可用於改良持久性記憶體的寫入效能及耐久性。此空間中的資料可在電力故障的情況下受到保護。亦即,WBA中的所有資料可在電力故障的情況下寫回至NAND。最大WBA大小可為裝置特定的,且可由內部/外部電容器容量及NAND效能來判定。使用者可使用管理命令經由CXL.IO來組態WBA大小。舉例而言,資料庫的錯資料區塊應儲存於此空間中。實際WBA大小可由最大WBA大小及使用者組態的WBA大小的最小值來判定。若錯資料區塊的總量超出所分配WBA大小,則老化資料可寫回至NAND以釋放用於新寫入的空間。大小WBA愈小,可產生愈多NAND寫入。
類似於寫回區域(WBA),圖3的固定快取區域(PCA)305-3可用於改良持久性記憶體的寫入效能及耐久性。此空間中的資料可在電力故障的情況下受到保護。亦即,PCA中的所有資料可在電力中斷的情況下寫回至NAND。應注意,在正常情形下,儲存於PCA中的資料可能並不寫回至NAND。來自PCA的資料可僅在偵測到諸如電力中斷、日誌切換等情況時寫回至NAND。由於PCA可能並不正常地寫回至NAND,因此此空間應用於暫時資料,諸如重作日誌及雙寫入緩衝器。最大PCA大小可為裝置特定的,且可由內部/外部電容器容量及NAND效能來判定。使用者可使用管理命令經由CXL.IO來組態PCA大小。實際CPA大小可由最大PCA大小及使用者組態的PCA大小的最小值來判定。若重作日誌大小及雙寫入緩衝器大小超出所分配PCA大小,則可傳回錯誤。
為了支援並行載入/儲存操作,圖1的PMEM 135可具有多個佇列。
除了可通告為裝置的持久性記憶體空間的NAND空間以外,裝置可使用更多NAND空間來改良裝置的耐久性。舉例而言,若裝置具有4 TB NAND容量,則由NAND支持的持久性記憶體空間為768 GB且剩餘3.5 TB NAND空間可能不可見且用於耐久性。不可見NAND空間的大小可由以下各項來判定:WBA快取未中率;NAND類型,諸如單層級單元(Single Level Cell;SLC)、多層級單元(Multi-Level Cell;MLC)以及三層級單元(Triple Level Cell;TLC);保固期,諸如5年磁碟每日寫入量(Drive Write Per Day;DWPD)等。
DRAM快取空間可劃分成三個區域:揮發性區域(VA)、寫回區域(WBA)以及固定快取區域(PCA)。使用者可使用管理命令經由CXL.IO來組態快取記憶體。實例此命令可為INT cxlssd_create_cache(CACHE_TYPE類型、UINT大小、UINT*位址)。此處,類型可為CXLSSD_CACHE_TYPE_VA、CXLSSD_CACHE_TYPE_WBA或CXLSSD_CACHE_TYPE_PCA。大小可為512個位元組的倍數。位址可為位元組中快取記憶體的開始位址距自0的開始的偏移。預設針對VA分配整個DRAM快取。因此,使用者可指定WBA及PCA的大小。理論上可能存在VA、WBA以及PCA中的各者中的多於一者。若命令成功,則其傳回快取ID。為簡單起見,本揭露的實施例可使用Va、WBA以及PCA中的一者。
快取資訊可儲存於快取空間分配表(Cache Space Allocation Table)中。表格維持(快取類型、偏移、大小)。表的索引可用作快取ID。
以下論述意欲提供對可供實施本揭露的某些態樣的一或多個合適機器的簡要的一般描述。可至少部分地藉由來自諸如鍵盤、滑鼠等習知輸入裝置的輸入以及藉由自另一機器接收到的指引、與虛擬實境(virtual reality;VR)環境、生物辨識回饋或其他輸入信號的互動控制一或多個機器。如本文中所使用,術語「機器」意欲廣泛地涵蓋單個機器、虛擬機器,或通信耦接機器、虛擬機器或共同操作裝置的系統。例示性機器包含計算裝置,諸如個人電腦、工作站、伺服器、攜帶型電腦、手持型裝置、電話、平板電腦等;以及運輸裝置,諸如私用或公共運輸,例如汽車、火車、出租車等。
一或多個機器可包含嵌入式控制器,諸如可程式化或非可程式化邏輯裝置或陣列、特殊應用積體電路(ASIC)、嵌入式電腦、智慧卡以及類似者。一或多個機器可利用與一或多個遠端機器的一或多個連接,諸如經由網路介面、數據機或其他通信耦接。可藉助於實體及/或邏輯網路,諸如企業內部網路、網際網路、區域網路、廣域網路等來互連機器。所屬領域中具有通常知識者將瞭解網路通信可利用各種有線及/或無線的近程或長程載波及協定,包含射頻(radio frequency;RF)、衛星、微波、電機電子工程師學會(Institute of Electrical and Electronics Engineers;IEEE)802.11、Bluetooth®、光學、紅外、纜線、雷射等。
可藉由參考或結合相關聯資料來描述本揭露的實施例,所述資料包含功能、程序、資料結構、應用程式等,所述資料在由機器存取時使得機器執行任務或定義抽象的資料類型或低級硬體上下文。相關聯資料可儲存於例如揮發性記憶體及/或非揮發性記憶體(例如RAM、ROM等)中,或儲存於其他儲存裝置及其相關聯儲存媒體中,包含硬碟機、軟碟、光學儲存器、磁帶、快閃記憶體、記憶棒、數位視訊磁碟、生物儲存器等。可以封包、串列資料、平行資料、經傳播信號等形式經由傳輸環境(包含實體及/或邏輯網路)傳遞相關聯資料,且可以壓縮或加密格式使用相關聯資料。相關聯資料可用於分散式環境中,且儲存於本端及/或遠端以供機器存取。
本揭露的實施例可包含有形非暫時性機器可讀媒體,其包括可由一或多個處理器執行的指令,所述指令包括執行如本文中所描述的本揭露的元件的指令。
上文所描述的方法的各種操作可由能夠執行所述操作的任何合適構件執行,諸如各種硬體及/或軟體組件、電路及/或模組。軟體可包括用於實施邏輯功能的可執行指令的有序清單,且可體現於供指令執行系統、設備或裝置(諸如單核心或多核心處理器或含處理器的系統)使用或與其結合使用的任何「處理器可讀媒體」中。
與本文中所揭露的實施例結合的方法或演算法的區塊或步驟以及所描述功能可直接體現於硬體中、由處理器執行的軟體模組中或硬體及軟體模組的組合中。若以軟體實施,則所述功能可作為一或多個指令或程式碼而儲存於有形非暫時性電腦可讀媒體上或經由有形非暫時性電腦可讀媒體而傳輸。軟體模組可駐存於隨機存取記憶體(Random Access Memory;RAM)、快閃記憶體、唯讀記憶體(Read Only Memory;ROM)、電可程式化ROM(Electrically Programmable ROM;EPROM)、電可抹除可程式化ROM(Electrically Erasable Programmable ROM;EEPROM)、暫存器、硬碟、可抽換式磁碟、CD ROM或此項技術中已知的任何其他形式的儲存媒體。
已參考所說明的實施例來描述及說明本揭露的原理,將認識到,所說明的實施例可在不脫離此類原理的情況下修改配置及細節,且可以任何所要方式組合。另外,儘管前述論述集中於特定實施例,但涵蓋其他組態。特定而言,儘管本文中使用諸如「根據本揭露的實施例」或類似者的表述,但此等片語通常意謂參考實施例可能性,且並不意欲將本揭露限制於特定實施例組態。如本文中所使用,此等術語可參考可組合至其他實施例中的相同或不同實施例。
前述說明性實施例不應解釋為限制其揭露內容。儘管已描述若干實施例,但所屬領域中具有通常知識者將易於瞭解,在不實質上脫離本揭露的新穎教示及優點的情況下,對彼等實施例的許多修改是可能的。因此,所有此類修改意欲包含於如申請專利範圍中所定義的本揭露的範疇內。
本揭露的實施例可擴展至但不限於以下陳述:
陳述1. 本揭露的實施例包含一種持久性記憶體裝置,包括:
快取記憶體同調互連介面;
揮發性儲存器,包含至少第一區域及第二區域;
備用電源,組態成選擇性地將備用電力提供至揮發性儲存器的第二區域;
非揮發性儲存器;以及
控制器,用以控制揮發性儲存器及非揮發性儲存器,
其中持久性記憶體裝置組態成至少部分地基於用於持久性記憶體裝置的一次電力的損失而在將來自揮發性儲存器的第二區域的資料傳送至非揮發性儲存器的同時使用備用電源。
陳述2. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中:
第二區域包含未固定區域;
揮發性儲存器更包含第三區域,所述第三區域包含固定區域;且
備用電源組態成選擇性地將備用電力提供至揮發性儲存器的第二區域及揮發性儲存器的第三區域。
陳述3. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中:
第一區域包含未固定區域;且
揮發性儲存器更包含第三區域,所述第三區域包含固定區域。
陳述4. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中揮發性儲存器包含動態隨機存取記憶體(DRAM)。
陳述5. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中非揮發性儲存器包含固態硬碟(SSD)。
陳述6. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中快取記憶體同調互連介面包含計算快速鏈接(CXL)介面。
陳述7. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中備用電源組態成不將備用電力提供至揮發性儲存器的第一區域。
陳述8. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中:
第一區域組態成儲存乾淨資料;且
第二區域組態成儲存錯資料。
陳述9. 本揭露的實施例包含如陳述8所述的持久性記憶體裝置,其中:
第二區域包含未固定區域;
揮發性儲存器更包含第三區域,所述第三區域包含固定區域且組態成儲存暫態錯資料;
備用電源組態成選擇性地將備用電力提供至揮發性儲存器的第二區域及揮發性儲存器的第三區域。
陳述10. 本揭露的實施例包含如陳述9所述的持久性記憶體裝置,其中持久性記憶體裝置組態成至少部分地基於用於持久性記憶體裝置的一次電力的損失而在將來自揮發性儲存器的第二區域的第一資料或來自揮發性儲存器的第三區域的第二資料中的至少一者傳送至非揮發性儲存器的同時使用備用電源。
陳述11. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中快取記憶體同調互連介面組態成接收針對資料的載入請求且自第一區域或第二區域中的至少一者傳回資料。
陳述12. 本揭露的實施例包含如陳述11所述的持久性記憶體裝置,其中控制器組態成至少部分地基於資料不在第一區域中而將資料自非揮發性儲存器複製至第一區域。
陳述13. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中:
快取記憶體同調互連介面組態成接收針對變更資料的儲存請求;且
控制器組態成至少部分地基於變更資料而更新第二區域中的位址中的原始資料以產生更新資料。
陳述14. 本揭露的實施例包含如陳述13所述的持久性記憶體裝置,其中控制器組態成至少部分地基於原始資料不在第二區域中而在第二區域中分配位址。
陳述15. 本揭露的實施例包含如陳述14所述的持久性記憶體裝置,其中控制器組態成至少部分地基於第二區域不具有任何未分配位址而將位址處的現有資料複製至非揮發性儲存器及第一區域中的至少一者。
陳述16. 本揭露的實施例包含如陳述15所述的持久性記憶體裝置,其中控制器組態成至少部分地基於第一區域不具有任何未分配位址而丟棄第一區域中的位址處的現有資料。
陳述17. 本揭露的實施例包含如陳述14所述的持久性記憶體裝置,其中控制器進一步組態成將原始資料自第一區域或非揮發性儲存器中的至少一者複製至位址。
陳述18. 本揭露的實施例包含如陳述14所述的持久性記憶體裝置,其中控制器進一步組態成將更新資料寫入至非揮發性儲存器。
陳述19. 本揭露的實施例包含如陳述18所述的持久性記憶體裝置,其中控制器進一步組態成至少部分地基於機會寫入可用性而將更新資料寫入至非揮發性儲存器。
陳述20. 本揭露的實施例包含如陳述18所述的持久性記憶體裝置,其中控制器進一步組態成至少部分地基於檢查點經觸發而將更新資料寫入至非揮發性儲存器。
陳述21. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中:
快取記憶體同調互連介面組態成接收針對暫態錯資料的儲存請求;且
控制器組態成將暫態錯資料儲存於第三區域中的位址處。
陳述22. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中第一區域的第一大小及第二區域的第二大小可由使用者組態。
陳述23. 本揭露的實施例包含如陳述22所述的持久性記憶體裝置,其中第二區域的第二大小至少部分地基於備用電源的操作持續時間。
陳述24. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中:
持久性記憶體裝置更包括第二非揮發性儲存器,
其中非揮發性儲存器組態為用於第二非揮發性儲存器的快取記憶體。
陳述25. 本揭露的實施例包含如陳述24所述的持久性記憶體裝置,其中:
非揮發性儲存器包含第一容量及第一潛時;且
第二非揮發性儲存器包含第二容量及第二潛時,
其中第二容量大於第一容量且第二潛時大於第一潛時。
陳述26. 本揭露的實施例包含如陳述1所述的持久性記憶體裝置,其中:
揮發性儲存器包含第一容量及第一潛時;且
非揮發性儲存器包含第二容量及第二潛時,
其中第二容量大於第一容量且第二潛時大於第一潛時。
陳述27. 本揭露的實施例包含一種方法,包括:
在持久性記憶體裝置處接收載入請求,所述載入請求請求資料;
將資料定位在持久性記憶體的揮發性儲存器的第一區域或持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處;以及
自持久性記憶體裝置傳回位址處的資料,
其中持久性記憶體裝置包含非揮發性儲存器,且
其中持久性記憶體裝置的揮發性儲存器的第二區域由備用電源支持,所述備用電源組態成至少部分地基於用於持久性記憶體裝置的一次電力的損失而選擇性地將備用電力提供至揮發性儲存器的第二區域。
陳述28. 本揭露的實施例包含如陳述27所述的方法,其中在持久性記憶體裝置處接收載入請求包含在持久性記憶體裝置的快取記憶體同調互連介面處接收載入請求。
陳述29. 本揭露的實施例包含如陳述28所述的方法,其中在持久性記憶體裝置的快取記憶體同調互連介面處接收載入請求包含在持久性記憶體裝置的計算快速鏈接(CXL)介面處接收載入請求。
陳述30. 本揭露的實施例包含如陳述27所述的方法,其中備用電源組態成不將備用電力提供至揮發性儲存器的第一區域。
陳述31. 本揭露的實施例包含如陳述27所述的方法,其中:
將資料定位在持久性記憶體的揮發性儲存器的第一區域及持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處包含將資料定位在持久性記憶體的動態隨機存取記憶體(DRAM)的第一區域及持久性記憶體裝置的DRAM的第二區域中的至少一者中的位址處;且
非揮發性儲存器包含固態硬碟(SSD)。
陳述32. 本揭露的實施例包含如陳述27所述的方法,其中將資料定位在持久性記憶體的揮發性儲存器的第一區域及持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處包含:
將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中;以及
將資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處。
陳述33. 本揭露的實施例包含如陳述32所述的方法,其中將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含在持久性記憶體裝置的揮發性儲存器的第一區域中分配位址。
陳述34. 本揭露的實施例包含如陳述32所述的方法,其中將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含自持久性記憶體裝置的揮發性儲存器的第一區域中的位址刪除第二資料。
陳述35. 本揭露的實施例包含如陳述27所述的方法,其中將資料定位在持久性記憶體的揮發性儲存器的第一區域及持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處包含:
至少部分地基於持久性記憶體裝置的揮發性儲存器的第一區域已滿且持久性記憶體裝置的揮發性儲存器的第二區域中的位址空閒而將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第二區域中的位址中;以及
將資料定位在持久性記憶體裝置的揮發性儲存器的第二區域中的位址處。
陳述36. 本揭露的實施例包含如陳述35所述的方法,其中將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第二區域中的位址中包含在持久性記憶體裝置的揮發性儲存器的第二區域中分配位址。
陳述37. 本揭露的實施例包含一種方法,包括:
在持久性記憶體裝置處接收儲存請求,所述儲存請求包含變更資料;
將原始資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處;以及
用變更資料更新持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的原始資料以產生更新資料,
其中持久性記憶體裝置包含非揮發性儲存器,
其中持久性記憶體裝置的揮發性儲存器的第一區域由備用電源支持,所述備用電源組態成至少部分地基於用於持久性記憶體裝置的一次電力的損失而選擇性地將備用電力提供至揮發性儲存器的第一區域,且
其中持久性記憶體裝置的揮發性儲存器包含第二區域。
陳述38. 本揭露的實施例包含如陳述37所述的方法,其中在持久性記憶體裝置處接收儲存請求包含在持久性記憶體裝置的快取記憶體同調互連介面處接收儲存請求。
陳述39. 本揭露的實施例包含如陳述38所述的方法,其中在持久性記憶體裝置的快取記憶體同調互連介面處接收儲存請求包含在持久性記憶體裝置的計算快速鏈接(CXL)介面處接收儲存請求。
陳述40. 本揭露的實施例包含如陳述37所述的方法,其中備用電源組態成不將備用電力提供至揮發性儲存器的第一區域。
陳述41. 本揭露的實施例包含如陳述37所述的方法,其中:
將原始資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處包含將原始資料定位在持久性記憶體裝置的動態隨機存取記憶體(DRAM)的第一區域中的位址處;
用變更資料更新持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的原始資料以產生更新資料包含用變更資料更新持久性記憶體裝置的DRAM的第一區域中的位址處的原始資料以產生更新資料;且
非揮發性儲存器包含固態硬碟(SSD)。
陳述42. 本揭露的實施例包含如陳述37所述的方法,其中將原始資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處包含將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中。
陳述43. 本揭露的實施例包含如陳述42所述的方法,其中將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含在持久性記憶體裝置的揮發性儲存器的第一區域中分配位址。
陳述44. 本揭露的實施例包含如陳述42所述的方法,其中將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料。
陳述45. 本揭露的實施例包含如陳述44所述的方法,其中收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料包含將第一資料寫入至持久性記憶體裝置的非揮發性儲存器。
陳述46. 本揭露的實施例包含如陳述45所述的方法,其中收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料更包含刪除持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料。
陳述47. 本揭露的實施例包含如陳述45所述的方法,其中收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料更包含將持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料複製至持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址中。
陳述48. 本揭露的實施例包含如陳述47所述的方法,其中將持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料複製至持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址中包含在持久性記憶體裝置的揮發性儲存器的第二區域中分配第一位址。
陳述49. 本揭露的實施例包含如陳述47所述的方法,其中將持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料複製至持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址中包含刪除持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址處的第三資料。
陳述50. 本揭露的實施例包含如陳述42所述的方法,其中將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址或持久性記憶體裝置的非揮發性儲存器中的至少一者複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中。
陳述51. 本揭露的實施例包含如陳述50所述的方法,其中將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址或持久性記憶體裝置的非揮發性儲存器中的至少一者複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含:
將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中;以及
自持久性記憶體裝置的揮發性儲存器的第二區域刪除原始資料。
陳述52. 本揭露的實施例包含如陳述50所述的方法,其中將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址或持久性記憶體裝置的非揮發性儲存器中的至少一者複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含將原始資料自持久性記憶體裝置的非揮發性儲存器複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中。
陳述53. 本揭露的實施例包含如陳述42所述的方法,更包括將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中。
陳述54. 本揭露的實施例包含如陳述53所述的方法,其中將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中包含至少部分地基於機會寫入可用性而將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中。
陳述55. 本揭露的實施例包含如陳述53所述的方法,其中將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中包含至少部分地基於檢查點經觸發而將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中。
陳述56. 本揭露的實施例包含一種方法,包括:
判定用於持久性記憶體裝置的一次電力的損失已發生;以及
至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中。
陳述57. 本揭露的實施例包含如陳述56所述的方法,其中至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中包含使用持久性記憶體裝置的備用電源來至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中。
陳述58. 本揭露的實施例包含如陳述56所述的方法,其中至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中包含至少將來自持久性記憶體裝置的動態隨機存取記憶體(DRAM)的第一區域的第一資料及來自持久性記憶體裝置的DRAM的第二區域的第一資料複製至持久性記憶體裝置的固態硬碟(SSD)中。
陳述59. 本揭露的實施例包含一種物品,包括非暫時性儲存媒體,所述非暫時性儲存媒體在其上儲存有在由機器執行時導致以下操作的指令:
在持久性記憶體裝置處接收載入請求,所述載入請求請求資料;
將資料定位在持久性記憶體的揮發性儲存器的第一區域或持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處;以及
自持久性記憶體裝置傳回位址處的資料,
其中持久性記憶體裝置包含非揮發性儲存器,且
其中持久性記憶體裝置的揮發性儲存器的第二區域由備用電源支持,所述備用電源組態成至少部分地基於用於持久性記憶體裝置的一次電力的損失而選擇性地將備用電力提供至揮發性儲存器的第二區域。
陳述60. 本揭露的實施例包含如陳述59所述的物品,其中在持久性記憶體裝置處接收載入請求包含在持久性記憶體裝置的快取記憶體同調互連介面處接收載入請求。
陳述61. 本揭露的實施例包含如陳述60所述的物品,其中在持久性記憶體裝置的快取記憶體同調互連介面處接收載入請求包含在持久性記憶體裝置的計算快速鏈接(CXL)介面處接收載入請求。
陳述62. 本揭露的實施例包含如陳述59所述的物品,其中備用電源組態成不將備用電力提供至揮發性儲存器的第一區域。
陳述63. 本揭露的實施例包含如陳述59所述的物品,其中:
將資料定位在持久性記憶體的揮發性儲存器的第一區域及持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處包含將資料定位在持久性記憶體的動態隨機存取記憶體(DRAM)的第一區域及持久性記憶體裝置的DRAM的第二區域中的至少一者中的位址處;且
非揮發性儲存器包含固態硬碟(SSD)。
陳述64. 本揭露的實施例包含如陳述59所述的物品,其中將資料定位在持久性記憶體的揮發性儲存器的第一區域及持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處包含:
將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中;以及
將資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處。
陳述65. 本揭露的實施例包含如陳述64所述的物品,其中將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含在持久性記憶體裝置的揮發性儲存器的第一區域中分配位址。
陳述66. 本揭露的實施例包含如陳述64所述的物品,其中將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含自持久性記憶體裝置的揮發性儲存器的第一區域中的位址刪除第二資料。
陳述67. 本揭露的實施例包含如陳述59所述的物品,其中將資料定位在持久性記憶體的揮發性儲存器的第一區域及持久性記憶體裝置的揮發性儲存器的第二區域中的至少一者中的位址處包含:
至少部分地基於持久性記憶體裝置的揮發性儲存器的第一區域已滿且持久性記憶體裝置的揮發性儲存器的第二區域中的位址空閒而將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第二區域中的位址中;以及
將資料定位在持久性記憶體裝置的揮發性儲存器的第二區域中的位址處。
陳述68. 本揭露的實施例包含如陳述67所述的物品,其中將資料自持久性記憶體裝置的非揮發性儲存器載入至持久性記憶體裝置的揮發性儲存器的第二區域中的位址中包含在持久性記憶體裝置的揮發性儲存器的第二區域中分配位址。
陳述69. 本揭露的實施例包含一種物品,包括非暫時性儲存媒體,所述非暫時性儲存媒體在其上儲存有在由機器執行時導致以下操作的指令:
在持久性記憶體裝置處接收儲存請求,所述儲存請求包含變更資料;
將原始資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處;以及
用變更資料更新持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的原始資料以產生更新資料,
其中持久性記憶體裝置包含非揮發性儲存器,
其中持久性記憶體裝置的揮發性儲存器的第一區域由備用電源支持,所述備用電源組態成至少部分地基於用於持久性記憶體裝置的一次電力的損失而選擇性地將備用電力提供至揮發性儲存器的第一區域,且
其中持久性記憶體裝置的揮發性儲存器包含第一區域。
陳述70. 本揭露的實施例包含如陳述69所述的物品,其中在持久性記憶體裝置處接收儲存請求包含在持久性記憶體裝置的快取記憶體同調互連介面處接收儲存請求。
陳述71. 本揭露的實施例包含如陳述70所述的物品,其中在持久性記憶體裝置的快取記憶體同調互連介面處接收儲存請求包含在持久性記憶體裝置的計算快速鏈接(CXL)介面處接收儲存請求。
陳述72. 本揭露的實施例包含如陳述69所述的物品,其中備用電源組態成不將備用電力提供至揮發性儲存器的第一區域。
陳述73. 本揭露的實施例包含如陳述69所述的物品,其中:
將原始資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處包含將原始資料定位在持久性記憶體裝置的動態隨機存取記憶體(DRAM)的第一區域中的位址處;
用變更資料更新持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的原始資料以產生更新資料包含用變更資料更新持久性記憶體裝置的DRAM的第一區域中的位址處的原始資料以產生更新資料;且
非揮發性儲存器包含固態硬碟(SSD)。
陳述74. 本揭露的實施例包含如陳述69所述的物品,其中將原始資料定位在持久性記憶體裝置的揮發性儲存器的第一區域中的位址處包含將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中。
陳述75. 本揭露的實施例包含如陳述74所述的物品,其中將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含在持久性記憶體裝置的揮發性儲存器的第一區域中分配位址。
陳述76. 本揭露的實施例包含如陳述74所述的物品,其中將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料。
陳述77. 本揭露的實施例包含如陳述76所述的物品,其中收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料包含將第一資料寫入至持久性記憶體裝置的非揮發性儲存器。
陳述78. 本揭露的實施例包含如陳述77所述的物品,其中收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料更包含刪除持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料。
陳述79. 本揭露的實施例包含如陳述77所述的物品,其中收回持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料更包含將持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料複製至持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址中。
陳述80. 本揭露的實施例包含如陳述79所述的物品,其中將持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料複製至持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址中包含在持久性記憶體裝置的揮發性儲存器的第二區域中分配第一位址。
陳述81. 本揭露的實施例包含如陳述79所述的物品,其中將持久性記憶體裝置的揮發性儲存器的第一區域中的位址處的第一資料複製至持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址中包含刪除持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址處的第三資料。
陳述82. 本揭露的實施例包含如陳述74所述的物品,其中將原始資料載入至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址或持久性記憶體裝置的非揮發性儲存器中的至少一者複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中。
陳述83. 本揭露的實施例包含如陳述82所述的物品,其中將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址或持久性記憶體裝置的非揮發性儲存器中的至少一者複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含:
將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中;以及
自持久性記憶體裝置的揮發性儲存器的第二區域刪除原始資料。
陳述84. 本揭露的實施例包含如陳述82所述的物品,其中將原始資料自持久性記憶體裝置的揮發性儲存器的第二區域中的第一位址或持久性記憶體裝置的非揮發性儲存器中的至少一者複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中包含將原始資料自持久性記憶體裝置的非揮發性儲存器複製至持久性記憶體裝置的揮發性儲存器的第一區域中的位址中。
陳述85. 本揭露的實施例包含如陳述74所述的物品,非暫時性儲存媒體在其上儲存有其他指令,所述其他指令在由機器執行時導致將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中。
陳述86. 本揭露的實施例包含如陳述85所述的物品,其中將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中包含至少部分地基於機會寫入可用性而將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中。
陳述87. 本揭露的實施例包含如陳述85所述的物品,其中將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中包含至少部分地基於檢查點經觸發而將更新資料自持久性記憶體裝置的揮發性儲存器的第一區域複製至持久性記憶體裝置的非揮發性儲存器中。
陳述88. 本揭露的實施例包含一種物品,包括非暫時性儲存媒體,所述非暫時性儲存媒體在其上儲存有在由機器執行時導致以下操作的指令:
判定用於持久性記憶體裝置的一次電力的損失已發生;以及
至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中。
陳述89. 本揭露的實施例包含如陳述88所述的物品,其中至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中包含使用持久性記憶體裝置的備用電源來至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中。
陳述90. 本揭露的實施例包含如陳述88所述的物品,其中至少將來自持久性記憶體裝置的揮發性儲存器的第一區域的第一資料及來自持久性記憶體裝置的揮發性儲存器的第二區域的第一資料複製至持久性記憶體裝置的非揮發性儲存器中包含至少將來自持久性記憶體裝置的動態隨機存取記憶體(DRAM)的第一區域的第一資料及來自持久性記憶體裝置的DRAM的第二區域的第一資料複製至持久性記憶體裝置的固態硬碟(SSD)中。
因此,考慮到本文中所描述的實施例的廣泛多種排列,此詳細描述及隨附材料僅意欲為說明性的,且不應視為限制本揭露的範疇。所主張的本揭露因此為可在以下申請專利範圍及其等效物的範疇及精神內的所有此類修改。
105:機器
110:處理器
115:記憶體
120:儲存裝置
125:記憶體控制器
130:裝置驅動器
135:持久性記憶體裝置
205:時鐘
210:網路連接器
215:匯流排
220:使用者介面
225:輸入/輸出引擎
305、305-1、305-2、305-3:區域
310、315:持久性記憶體空間
320:空間
325:備用電源
330:緩衝快取
335:控制器
340、340-1~340-3:佇列
345:計算模組
405:資料庫伺服器
410、415、420、425、505、510、515、520:資料
605、610:重作日誌
705、710、715、805、815、820、825、830、905、910、915、1010、1015、1020、1025、1030、1035、1040、1060、1065、1070、1075、1080、1105、1110:區塊
810、1005、1045、1050、1055:虛線
下文所描述的圖式為可如何實施本揭露的實施例的實例,且並不意欲限制本揭露的實施例。本揭露的個別實施例可包含未在特定圖式中繪示的元件及/或可省略特定圖式中繪示的元件。圖式意欲提供說明且可不按比例繪製。
圖1繪示根據本揭露的實施例的包含持久性記憶體裝置的機器。
圖2繪示根據本揭露的實施例的圖1的機器的細節。
圖3繪示根據本揭露的實施例的圖1的持久性記憶體裝置的細節。
圖4繪示根據本揭露的實施例的載入資料的圖1的持久性記憶體裝置。
圖5繪示根據本揭露的實施例的儲存資料的圖1的持久性記憶體裝置。
圖6繪示根據本揭露的實施例的儲存重作日誌的圖1的持久性記憶體裝置。
圖7繪示根據本揭露的實施例的用於使用圖1的持久性記憶體裝置處理載入請求的實例程序的流程圖。
圖8繪示根據本揭露的實施例的用於將資料載入於圖1的持久性記憶體裝置中的實例程序的流程圖。
圖9繪示根據本揭露的實施例的用於使用圖1的持久性記憶體裝置處理儲存請求的實例程序的流程圖。
圖10A繪示根據本揭露的實施例的用於將資料載入至圖1的持久性記憶體裝置的第二區域中的實例程序的流程圖。
圖10B繼續根據本揭露的實施例的用於將資料載入至圖1的持久性記憶體裝置的第二區域中的實例程序的流程圖。
圖11繪示根據本揭露的實施例的用於在圖1的持久性記憶體裝置的電力中斷的情況下將資料儲存至非揮發性儲存器的實例程序的流程圖。
135:持久性記憶體裝置
305-1、305-2、305-3:區域
310、315:持久性記憶體空間
320:空間
325:備用電源
330:緩衝快取
335:控制器
340-1~340-3:佇列
345:計算模組
Claims (20)
- 一種持久性記憶體裝置,包括: 快取記憶體同調互連介面; 揮發性儲存器,包含至少第一區域及第二區域; 備用電源,組態成選擇性地將備用電力提供至所述揮發性儲存器的所述第二區域; 非揮發性儲存器;以及 控制器,用以控制所述揮發性儲存器及所述非揮發性儲存器, 其中所述持久性記憶體裝置組態成至少部分地基於用於所述持久性記憶體裝置的一次電力的損失而在將來自所述揮發性儲存器的所述第二區域的資料傳送至所述非揮發性儲存器的同時使用所述備用電源。
- 如請求項1所述的持久性記憶體裝置,其中: 所述快取記憶體同調互連介面包含計算快速鏈接(CXL)介面; 所述揮發性儲存器包含動態隨機存取記憶體(DRAM);且 所述非揮發性儲存器包含固態硬碟(SSD)。
- 如請求項1所述的持久性記憶體裝置,其中: 所述第一區域組態成儲存乾淨資料;且 所述第二區域組態成儲存錯資料。
- 如請求項3所述的持久性記憶體裝置,其中: 所述第二區域包含未固定區域; 所述揮發性儲存器更包含第三區域,所述第三區域包含固定區域且組態成儲存暫態錯資料; 所述備用電源組態成將備用電力提供至所述揮發性儲存器的所述第二區域及所述揮發性儲存器的所述第三區域。
- 如請求項4所述的持久性記憶體裝置,其中所述持久性記憶體裝置組態成至少部分地基於用於所述持久性記憶體裝置的所述一次電力的所述損失而在將來自所述揮發性儲存器的所述第二區域的第一資料或來自所述揮發性儲存器的所述第三區域的第二資料中的至少一者傳送至所述非揮發性儲存器的同時使用所述備用電源。
- 如請求項1所述的持久性記憶體裝置,其中所述快取記憶體同調互連介面組態成接收針對所述資料的載入請求且自所述第一區域或所述第二區域中的至少一者傳回所述資料。
- 如請求項1所述的持久性記憶體裝置,其中: 所述快取記憶體同調互連介面組態成接收針對變更資料的儲存請求;且 所述控制器組態成至少部分地基於所述變更資料而更新所述第二區域中的位址中的原始資料以產生更新資料。
- 如請求項1所述的持久性記憶體裝置,其中所述第一區域的第一大小及所述第二區域的第二大小可由使用者組態。
- 一種用於持久性記憶體裝置的方法,包括: 在所述持久性記憶體裝置處接收載入請求,所述載入請求請求資料; 將所述資料定位在所述持久性記憶體裝置的揮發性儲存器的第一區域或所述持久性記憶體裝置的所述揮發性儲存器的第二區域中的至少一者中的位址處;以及 自所述持久性記憶體裝置傳回所述位址處的所述資料, 其中所述持久性記憶體裝置包含非揮發性儲存器,且 其中所述持久性記憶體裝置的所述揮發性儲存器的所述第二區域由備用電源支持,所述備用電源組態成至少部分地基於用於所述持久性記憶體裝置的一次電力的損失而選擇性地將備用電力提供至所述揮發性儲存器的所述第二區域。
- 如請求項9所述的方法,其中: 將所述資料定位在所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域及所述持久性記憶體裝置的所述揮發性儲存器的所述第二區域中的至少一者中的所述位址處包含將所述資料定位在所述持久性記憶體裝置的動態隨機存取記憶體(DRAM)的所述第一區域及所述持久性記憶體裝置的所述DRAM的所述第二區域中的至少一者中的所述位址處;且 所述非揮發性儲存器包含固態硬碟(SSD)。
- 如請求項9所述的方法,其中將所述資料定位在所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域及所述持久性記憶體裝置的所述揮發性儲存器的所述第二區域中的至少一者中的所述位址處包含: 將所述資料自所述持久性記憶體裝置的所述非揮發性儲存器載入至所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址中;以及 將所述資料定位在所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址處。
- 如請求項11所述的方法,其中將所述資料自所述持久性記憶體裝置的所述非揮發性儲存器載入至所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址中包含在所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中分配所述位址。
- 如請求項11所述的方法,其中將所述資料自所述持久性記憶體裝置的所述非揮發性儲存器載入至所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址中包含自所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址刪除第二資料。
- 一種用於持久性記憶體裝置的方法,包括: 在所述持久性記憶體裝置處接收儲存請求,所述儲存請求包含變更資料; 將原始資料定位在所述持久性記憶體裝置的揮發性儲存器的第一區域中的位址處;以及 用所述變更資料更新所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址處的所述原始資料以產生更新資料, 其中所述持久性記憶體裝置包含非揮發性儲存器, 其中所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域由備用電源支持,所述備用電源組態成至少部分地基於用於所述持久性記憶體裝置的一次電力的損失而將備用電力提供至所述揮發性儲存器的所述第一區域,且 其中所述持久性記憶體裝置的所述揮發性儲存器包含第二區域。
- 如請求項14所述的方法,其中: 將所述原始資料定位在所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址處包含將所述原始資料定位在所述持久性記憶體裝置的動態隨機存取記憶體(DRAM)的所述第一區域中的所述位址處; 用所述變更資料更新所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址處的所述原始資料以產生所述更新資料包含用所述變更資料更新所述持久性記憶體裝置的所述DRAM的所述第一區域中的所述位址處的所述原始資料以產生所述更新資料;且 所述非揮發性儲存器包含固態硬碟(SSD)。
- 如請求項14所述的方法,其中將所述原始資料定位在所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址處包含將所述原始資料載入至所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址中。
- 如請求項16所述的方法,其中將所述原始資料載入至所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址中包含在所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中分配所述位址。
- 如請求項16所述的方法,其中將所述原始資料載入至所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址中包含收回所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址處的第一資料。
- 如請求項18所述的方法,其中收回所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域中的所述位址處的所述第一資料包含將所述第一資料寫入至所述持久性記憶體裝置的所述非揮發性儲存器。
- 如請求項16所述的方法,更包括將所述更新資料自所述持久性記憶體裝置的所述揮發性儲存器的所述第一區域複製至所述持久性記憶體裝置的所述非揮發性儲存器中。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263314361P | 2022-02-25 | 2022-02-25 | |
US63/314,361 | 2022-02-25 | ||
US202263340437P | 2022-05-10 | 2022-05-10 | |
US63/340,437 | 2022-05-10 | ||
US17/858,058 | 2022-07-05 | ||
US17/858,058 US11966590B2 (en) | 2022-02-25 | 2022-07-05 | Persistent memory with cache coherent interconnect interface |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202340965A true TW202340965A (zh) | 2023-10-16 |
Family
ID=85381194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112106847A TW202340965A (zh) | 2022-02-25 | 2023-02-24 | 持久性記憶體裝置以及用於持久性記憶體裝置的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11966590B2 (zh) |
EP (1) | EP4235433A1 (zh) |
KR (1) | KR20230127934A (zh) |
TW (1) | TW202340965A (zh) |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074034B2 (en) | 2007-07-25 | 2011-12-06 | Agiga Tech Inc. | Hybrid nonvolatile ram |
US9086973B2 (en) | 2009-06-09 | 2015-07-21 | Hyperion Core, Inc. | System and method for a cache in a multi-core processor |
US8806134B2 (en) * | 2010-04-16 | 2014-08-12 | Pmc-Sierra Us, Inc. | Mirrored cache protection |
WO2012050934A2 (en) | 2010-09-28 | 2012-04-19 | Fusion-Io, Inc. | Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US9223709B1 (en) | 2012-03-06 | 2015-12-29 | Marvell International Ltd. | Thread-aware cache memory management |
US20150012699A1 (en) | 2013-07-02 | 2015-01-08 | Lsi Corporation | System and method of versioning cache for a clustering topology |
US9383932B2 (en) | 2013-12-27 | 2016-07-05 | Intel Corporation | Data coherency model and protocol at cluster level |
EP3140743B1 (en) | 2014-05-08 | 2021-11-24 | Micron Technology, INC. | Hybrid memory cube system interconnect directory-based cache coherence methodology |
WO2017171798A1 (en) | 2016-03-31 | 2017-10-05 | Intel Corporation | Fabric resiliency support for atomic writes of many store operations to remote nodes |
US10402326B1 (en) | 2016-04-26 | 2019-09-03 | Apple Inc. | Accessing memories in coherent and non-coherent domains in a computing system |
US20180107596A1 (en) | 2016-10-13 | 2018-04-19 | Microsoft Technology Licensing, Llc | Battery-based data persistence management in computing systems |
US11175853B2 (en) | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
US10642743B2 (en) | 2017-06-28 | 2020-05-05 | Arm Limited | Apparatus and method of handling caching of persistent data |
US20210042228A1 (en) | 2019-07-17 | 2021-02-11 | Intel Corporation | Controller for locking of selected cache regions |
US11726793B2 (en) | 2019-11-15 | 2023-08-15 | Intel Corporation | Data locality enhancement for graphics processing units |
US11698879B2 (en) | 2019-12-06 | 2023-07-11 | Intel Corporation | Flexible on-die fabric interface |
US20200192715A1 (en) | 2020-02-24 | 2020-06-18 | Intel Corporation | Workload scheduler for memory allocation |
WO2021177868A1 (en) | 2020-03-04 | 2021-09-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Snapshotting data of a host application |
US20210311871A1 (en) | 2020-04-06 | 2021-10-07 | Samsung Electronics Co., Ltd. | System and method for aggregating server memory |
US20210373951A1 (en) | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for composable coherent devices |
US20230214326A1 (en) | 2020-05-29 | 2023-07-06 | Netlist Inc. | Computer Memory Expansion Device and Method of Operation |
US20220043753A1 (en) | 2021-10-26 | 2022-02-10 | Intel Corporation | Dynamic allocation of cache resources |
US11734217B2 (en) * | 2021-12-13 | 2023-08-22 | Xilinx, Inc. | Software or firmware managed hardware capability and control configuration for PCIe devices |
CN114020655A (zh) | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
-
2022
- 2022-07-05 US US17/858,058 patent/US11966590B2/en active Active
-
2023
- 2023-02-23 EP EP23158248.7A patent/EP4235433A1/en active Pending
- 2023-02-24 TW TW112106847A patent/TW202340965A/zh unknown
- 2023-02-24 KR KR1020230025281A patent/KR20230127934A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
EP4235433A1 (en) | 2023-08-30 |
KR20230127934A (ko) | 2023-09-01 |
US20230273731A1 (en) | 2023-08-31 |
US11966590B2 (en) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886294B2 (en) | Distributed storage system | |
US9367241B2 (en) | Clustered RAID assimilation management | |
US9983993B2 (en) | Apparatus, system, and method for conditional and atomic storage operations | |
US10009438B2 (en) | Transaction log acceleration | |
US10248322B2 (en) | Memory system | |
KR20150105323A (ko) | 데이터 스토리지 방법 및 시스템 | |
US10310984B2 (en) | Storage apparatus and storage control method | |
US20140195722A1 (en) | Storage system which realizes asynchronous remote copy using cache memory composed of flash memory, and control method thereof | |
TWI782847B (zh) | 用來在儲存伺服器中進行基於管線的存取管理的方法及設備 | |
US11966590B2 (en) | Persistent memory with cache coherent interconnect interface | |
KR20220006458A (ko) | 키-밸류 저장 장치 및 키 분류 방법 | |
JP5768118B2 (ja) | 複数のフラッシュパッケージを有するストレージシステム | |
CN116662217A (zh) | 持久性存储器装置及应用持久性存储器装置的方法 | |
EP4220414A1 (en) | Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same | |
JP5945040B2 (ja) | 複数のフラッシュパッケージを有するストレージシステム |