TWI779082B - 用於非揮發性記憶體之持續寫入 - Google Patents
用於非揮發性記憶體之持續寫入 Download PDFInfo
- Publication number
- TWI779082B TWI779082B TW107129409A TW107129409A TWI779082B TW I779082 B TWI779082 B TW I779082B TW 107129409 A TW107129409 A TW 107129409A TW 107129409 A TW107129409 A TW 107129409A TW I779082 B TWI779082 B TW I779082B
- Authority
- TW
- Taiwan
- Prior art keywords
- persistent
- write
- host
- nvdimm
- command
- Prior art date
Links
Images
Classifications
-
- 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/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2024—Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Solid-Sorbent Or Filter-Aiding Compositions (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明揭示用於持續操作之系統及方法,其包括一主機及一記憶體系統。該記憶體系統在自該主機接收一持續寫入命令及相關聯寫入資料時,基於該持續寫入命令執行將該寫入資料之一持續寫入至該記憶體系統中之一非揮發性記憶體。該記憶體系統亦可自該主機接收與該持續寫入命令相關聯之一寫入標識(WID),在成功完成該持續寫入時向該主機提供一持續寫入完成指示連同該相關聯WID。
Description
所揭示態樣係針對記憶體系統。更特定而言,例示性態樣係針對非揮發性記憶體之持續寫入操作及其協定。
儲存級記憶體(SCM)通常係指亦可具有高效能之高容量記憶體。SCM可用在諸如伺服器或其他處理系統之應用中,其中用於處理器或中央處理單元之操作資料集可儲存在SCM中,而完整資料集可儲存在後備記憶體或硬式磁碟機中(HDD)。SCM之一重要期望為寫入之持續性,此意味著若伺服器崩潰或斷電,寫入至SCM之資訊不會丟失。然而,可滿足與持續性有關之此些期望之常規非揮發性記憶體可能不能滿足可能期望SCM之容量及效能度量。因此,諸如相變記憶體(PCM)、自旋轉移力矩磁性隨機存取記憶體(STT MRAM)、電阻RAM (ReRAM)等技術在SCM之實施方案中變得越來越流行。
在使用SCM時,應用程式可使用記憶體寫入操作以更新對應持續性記憶體。對於對SCM之寫入為持續的,請求寫入操作之應用程式可期望顯式確認寫入操作已到達持續記憶體。相比之下,一旦寫入操作及相關聯資料已經傳送至記憶體且未要求已寫入資料之顯示確認,自應用程式之角度來看,對非持續性記憶體(諸如動態隨機存取記憶體(DRAM)或其他揮發性記憶體)之寫入操作通常被認為係完整或發佈的。因此,對於使用期望持續性之SCM之應用程式,期望提供對持續記憶體之寫入操作之顯式確認之高效能技術,其中高效能技術亦與不同資料大小相容以便最大化效率。
持續記憶體操作有兩種類型之習用方案。第一方案假設整個記憶體系統(例如,包含一系列DRAM積體電路之雙排記憶體模組(DIMM),如此些技術中已知)為能量支援的。在此狀況下,對DIMM之接收端上之中間緩衝區之寫入操作可能足以滿足持續性之期望。在一個實施中,一旦成功完成在請求寫入操作之應用程式及DIMM之間的通道介面上之寫入操作,即可認為寫入操作為持續的。然而,實施此等方案可能涉及使用諸如超級電容器或電池之能量儲存裝置,其在偵測到電源故障時提供用於清除DIMM上之中間緩衝器之功率/電荷。但是,此等能量儲存裝置可能並非在所有DIMM上皆可用,且進一步即使可用,其亦以高成本獲得。
在第二方案中,當應用程式等待來自DIMM之完成狀態時,可將所有先前寫入操作清除至持續記憶體。然而,此方案可能導致顯著效能成本。例如,在其中應用程式可能正在向DIMM請求精細粒度之持續寫入但可能有其他並行但獨立寫入操作串流式傳輸至DIMM的狀況下,將所有先前之寫入操清除至持續性記憶體等待完成狀態可能會不僅減慢持續寫入請求但並行寫入操作。
因此,此些技術中需要支援不同粒度或大小之持續寫入之高效能及高效率持續寫入操作,同時避免習用方法之上述缺點。
本發明之例示性態樣包括用於持續操作之系統及方法。記憶體系統在自主機接收到持續寫入命令及相關聯寫入資料時,基於持續寫入命令執行將寫入資料持續寫入至記憶體系統中之非揮發性記憶體。記憶體系統亦可自主機接收與持續寫入命令相關聯之寫入標識(WID),在成功完成持續寫入時向主機提供持續寫入完成指示連同相關聯WID。
例如,例示性態樣係針對一種執行持續操作的方法,該方法包含在記憶體系統處自主機接收持續寫入命令己相關聯寫入資料,及基於持續寫入命令執行將寫入資料持續寫入至記憶體系統中之非揮發性記憶體。
另一例示性態樣係針對一種執行持續操作的方法,該方法包含自主機至記憶體系統提供持續寫入命令及相關聯寫入資料,其中持續寫入命令指示記憶體系統執行將寫入資料持續寫入至非揮發性記憶體。
另一例示性態樣係針對一種設備,其包含:記憶體系統,其經組態以自主機接收持續寫入命令及相關聯寫入資料,且基於持續寫入命令執行將寫入資料持續寫入至記憶體系統中之非揮發性記憶體。
另一例示性態樣係針對一種設備,其包含:主機,其經組態以向記憶體系統提供持續寫入命令及相關聯寫入資料,其中持續寫入命令向記憶體系統指示執行將寫入資料持續寫入至非揮發性記憶體。
另一例示性態樣係針對一種設備,其包含用於儲存資料的構件,其包括用於自主機接收持續寫入命令及相關聯寫入資料的構件,以及用於基於持續寫入命令執行將寫入資料持續寫入至用於儲存的構件中之非揮發性記憶體的構件。
另一例示性態樣係針對一種設備,其包含:用於處理的構件,其包含用於向記憶體系統提供持續寫入命令及相關聯寫入資料的構件,其中持續寫入命令向記憶體系統指示執行將寫入資料持續寫入至非揮發性記憶體。
另一例示性態樣係針對一種包含程式碼之非暫時性電腦可讀儲存媒體,該程式碼在由處理器執行時致使處理器執行持續操作,暫時電腦可讀儲存媒體包含用於在記憶體系統處接收來自主機之持續寫入命令及相關聯寫入資料的程式碼,以及用於基於持續寫入命令執行將寫入資料持續寫入至記憶體系統中之非揮發性記憶體的程式碼。
另一例示性態樣係針對一種包括程式碼之非暫時性電腦可讀儲存媒體,該程式碼在由處理器執行時致使處理器執行持續操作,暫時電腦可讀儲存媒體包含用於將持續寫入命令及相關聯寫入資料自主機提供到記憶體系統的程式碼,其中持續寫入命令向記憶體系統指示執行將寫入資料持續寫入至非揮發性記憶體。
在以下描述及針對本發明之特定態樣之相關圖式中揭示本發明之態樣。可設計替代態樣而不脫離本發明之範疇。另外,本發明之習知元件將不詳細描述或將被省略以便不混淆本發明之相關細節。
措詞「例示性」在本文中用於意指「用作實例、例項或說明」。本文中描述為「例示性」之任一態樣未必解釋為比其他方面較佳或有利。同樣地,術語「本發明之態樣」不需要本發明之所有態樣包括所論述的特徵、優點或操作模式。
本文中所使用之術語為僅出於描述特定態樣之目的且並不意欲為限制本發明之態樣。如本文中所使用,除非上下文另有明確指示,否則單數形式「一」及「該」意欲包括複數形式。將進一步理解,術語「包含」及/或「包括」在本文中使用時規定所述特徵、整數、步驟、操作、元件及/或組件之存在,但不排除存在或添加一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組。
此外,諸多態樣係就由(例如)計算裝置之元件執行系列動作方面加以描述。應認識到,本文中所描述之各種動作可藉由特定電路(例如,特殊應用積體電路(ASIC))、藉由由一或多個處理器執行之程式指令或由兩者之組合來執行。另外,本文中所描述之此等系列之動作可認為完全體現在任何形式之電腦可讀儲存媒體內,該電腦可讀儲存媒體其中儲存有對應之電腦指令集,對應之電腦指令集在執行時將致使相關聯處理器執行本文中所描述之功能性。因此,本發明之各種態樣可以若干個不同形式體現,已預期其全部在所主張標的物之範疇內。另外,對於本文中所描述之態樣中之每一者,對應形式之任何此等態樣可在本文中描述為(例如)「經組態以」執行所描述動作之「邏輯」。
本發明之例示性態樣係針對用於非揮發性記憶體(諸如,非揮發性DIMM (或NVDIMM))之有效且高效能持續寫入操作。對應地,根據例示性態樣,持續性NVDIMM或NVDIMM-P經揭示為支援持續寫入操作之一個例示性記憶體系統。主機裝置可經組態以向例示性記憶體系統提供例示性請求/命令(例如,用於持續操作)及對應資料,且記憶體系統可經組態以執行所請求持續寫入操作並向主機裝置提供對應信號,如將在以下章節中進一步詳細論述。
現在參考圖1,例示性處理系統100經展示包含主機120及記憶體系統130。主機120可包含一或多個處理元件,諸如中央處理單元(CPU)、數位信號處理器(DSP)、多媒體處理器、系統處理器、圖形處理單元(GPU)、調變解調變器(數據機)、應用處理器等。即使其尚未經明確說明。此等處理元件可請求存取記憶體系統130。記憶體控制器(未展示)可存在於主機120中以控制此等存取請求。
記憶體系統130可為持續記憶體,例如,根據發明之NVDIMM-P。記憶體系統130經展示包括輸入/輸出(I/O)區塊132及記憶體組134。記憶體組134可包括快閃記憶體、DRAM等。
在主機120與記憶體系統130之間展示互連110,其中分別識別資料匯流排(DQ) 112、命令及位址匯流排(CA) 114以及回應116。主機120可能夠經由CA 114為記憶體存取請求提供命令及相關位址,且經由DQ 112 (經展示為雙向匯流排)發送/接收資料。儘管單獨展示,回應116可經組態為CA 114之一部分,且在一些狀況下可實施為雙向匯流排。在一些實例性態樣,回應116可用於提供諸如持續寫入之狀態之類的資訊。各種其他匯流排/導線亦可存在於互連110中,儘管此等尚未單獨識別。在一些情況下,記憶體系統130可使用單獨匯流排用於判定性及非判定性回應,此將在下面進一步闡釋。
在其中記憶體系統130可經組態為NVDIMM之實施中,進一步支援用於至少一些操作之持續NVDIMM (NVDIMM-P)組態,主機120可能夠向記憶體系統130提供以下例示性命令中之一或多者,例如,在CA 114上: - READ命令(例如,長度編碼為64B之倍數),以及讀取標識(RID); - WRITE命令(例如,習用寫入命令); - P-WRITE命令(例如,持續寫入命令,以及持續寫入之寫入標識(WID),以及持續位元,指示具有給定WID之寫入何時需要來自記憶體系統130之持續寫入完成(W_PER)信號(例如,在回應116上提供); - ADRx命令:擴展定址; - SEND命令(例如,用於記憶體系統130之命令,用於提供讀取資料請求之狀態); - SEND_Status命令(例如,用於記憶體系統130之命令以提供與來自記憶體系統130之持續操作有關的錯誤讀出,WID等); - FLUSH命令(清除先前寫入以推送至持續性內存) - NOP (無操作); - 推測讀取命令(例如,用於讀取快取記憶體);及 - 其他快取命令,其可能為實施特定。
如先前所提及,可在互連110中提供單獨匯流排,用於自記憶體系統130至主機120之判定性及非判定性回應。判定性回應包括後設資料,錯誤/同位資訊,諸如與在DQ 112上發送至主機120之讀取資料有關的錯誤控制編碼(ECC)等,其可在自耦合至I/O 132之插腳發出之匯流排上多工,例如檢查位元插腳。
在ECC位元中,可存在特定於記憶體系統130之實施之媒體ECC (例如,作為NVDIMM)及DQ 112上之通道特定ECC位元,其可經標準化以實現跨各種實施之交叉相容性。
後設資料位元可包括用於自程式次序發送之讀取請求之延遲的RID (其中,對於有序操作,RID可經設定為「不關心」狀態)。後設資料位元亦可包括寫入信用(WC),其係指分配至某些主機或主機120之處理元件之寫入操作之未使用配額。後設資料位元可進一步包括用於來自如此些技術中已知之使用者設備之資料之資料定位位元,以及其他使用者定義之位元。
根據本發明之非判定性回應可關於持續操作,且可經由諸如回應116之專用信號自記憶體系統130發送至主機120,且可指示以下內容: - R_RDY:自記憶體系統130至主機120以指示讀取資料可用的信號; - Wr_Per:自記憶體系統130至主機120以指示持續寫入已完成的信號;及 - ERROR:自記憶體系統130至主機120以指示諸如CRC檢查、信用違規、媒體超時等之錯誤情況的信號。
對於記憶體系統130之實施為NVDIMM-P,例如,可在I/O 132中定義以下協定插腳。使用脈衝寬度調變,可實施以下插腳及回應信號組態。例如,在NVDIMM-P之雙資料速率5 (DDR5)實施中,標記為RSP_n (每子通道一個專用)之單線可用於提供以下信號:針對R_RDY之2時脈脈衝低,針對W_PER為4時脈脈衝低,針對MESSAGE為6時脈脈衝低。每一低脈衝之後可跟隨至少2個時脈高脈衝。若需要單獨ERROR信號,則可將其定義為8時脈低脈衝。
對於DDR4實施:可使用兩個插腳來解決單個插腳(ODT1及CKE1)之效能問題,其中ODT1表示R_RDY之2時脈低脈衝寬度及MESSAGE之4個時脈低,且CKE1表示W_PER之2時脈低脈衝。每一低脈衝之後可跟隨至少2個時脈高脈衝,且若需要單獨ERROR信號,則可將其定義為ODT1上之6時脈低脈衝。
在持續寫入之例示性實施中,硬體、軟體、韌體等之合適組合(例如,應用程式、驅動程式等)可經組態以使得當自主機120至記憶體系統130之一或多個寫入請求實現持續性時能夠自記憶體系統130向主機120提供通知。此等通知可能為實施特定的,如下面所闡釋。
當要為寫入操作寫入之資料到達媒體控制器(例如,記憶體系統130之電源故障保護之記憶體)上之電源故障保護緩衝器時,在正常操作期間可認為寫入操作為持續的。然而,對於某些不常見狀況或在媒體控制器緩衝區未經電源故障保護,軟體將確保將寫入一直推送至NVM媒體。
對於作為NVDIMM-P之記憶體系統130之實施,能量支援之DIMM涉及其中上述緩衝器經電源故障保護之組態,此意味著即使在正常狀況下需要持續性時亦可使用NVDIMM-P寫入命令。另外,如本文中所定義之NVDIMM-P清除命令可用於將媒體控制器緩衝器中之所有寫入清除至非揮發性記憶體。在清除令的狀況下,只保證在清除之前發生之寫入對非揮發性記憶體為持續。在最後一次寫入之後且在發出清除命令之前可使用諸如適當屏障作業之類的軟體實施命令以確保維持寫入之正確次序(例如,當主機120可經組態以不按程式次序發送持續寫入請求)。
儘管非能量支援之DIMM可能不如上面所論述之能量支援之DIMM通常使用,但當非能量支援之DIMM亦需要持續性時,可使用NVDIMM-P持續寫入命令。如先前所提及,主機120之記憶體控制器可經組態以判定何時發出持續寫入命令。在此狀況下,期望記憶體系統130在完成持續寫入時提供顯式通知,如將參考圖2A所討論的。此外,亦可以如前使用NVDIMM-P清除命令將所有寫入(甚至非持續寫入)清除至非揮發性記憶體。
現在參考圖2A,展示在主機120記憶體系統130之間的一組實例異動,以說明持續寫入命令的之態樣。存在例示性持續寫入(Wr_Per)命令(或簡稱為「持續寫入」)之一些特徵,其可為來自主機120之上文所描述讀取命令所共有。此等包括共同寫入標識(WID),其可為用於標識特定寫指令之多位元識別符。展示一組實例WID 210,其各自可高達16位元寬,其包括一個有效位元「Vld」(因此,例如,在CA 114上發送之64位元組命令封包中可存在多達31個WID)。持續寫入命令亦可在WID編碼中具有用於清除命令狀態返回之保留欄位,此將在以下段落中進一步闡釋。
在一個態樣中,主機120可經組態以僅當主機120具有可用之相關聯持續寫入信用時才發出持續寫入。持續寫入信用(類似於此些技術中已知之讀取信用)可在組態期間判定並由主機120管理,且可反映允許許多未完成的持續寫入主機120發佈。
一旦發佈,主機120可經組態以基於其各別WID 210追蹤未完成持續寫入。在圖2A (結合參考圖1)中,展示自主機120至CA 114上之記憶體系統130發出經標記為202a及204a的兩個持續寫入(具有第一位址及WID之P-Write 1以及具有第二位址及WID之P-Write 2),連同例如在DQ 112上之各別資料、寫入資料202b及寫入資料204b。
記憶體系統130經組態以一旦針對彼持續寫入之所有資料已被寫入至記憶體系統130中之非揮發性記憶體,即在回應116上發出針對特定持續寫入之回應「Wr_Per」。針對各別持續寫入202a及204a展示Wr_Per 202c及Wr_Per 204c。然而,Wr_Per 202c及Wr_Per 204c經展示以與記憶體系統130接收持續寫入202a及204a不同之次序發送,以說明回應不需要按程式次序或按照自主機120接收持續寫入請求次序。在一個態樣中,記憶體系統130可在回應116上確證信號「Req」以及對於Wr_Per回應之消息「Write_Rdy」之適當編碼。
此外,主機120亦可經組態以在任何時間發出用參考標號206a指定之「關於WID之發送狀態」命令以判定其未完成的持續寫入之狀態。作為回應,記憶體系統130可經組態以發出具有完整持續寫入之WID之狀態封包,例如,經由DQ 112之突發長度8或「BL8」傳送。
如先前所提及,在每一64B狀態封包中可封包多達31個WID 210,其中對於每一WID 210,可為15位元WID及有效位元指派16位元。此外,記憶體系統130亦可使用先前所提及後設資料欄位來返回其他寫入之狀態。例如,主機120可使用WID狀態封包206b中之返回WID 210來終止對未完成的持續寫入的追蹤。
在一些態樣中,可對兩個或多於兩個持續寫入進行分組。例如,在非能量支援之DIMM的狀況下,可將一組64B持續寫入分組以用於提交(或寫入至非揮發性記憶體)。實例性實施可涉及自主機120向記憶體系統130發出持續寫入區塊,其中記憶體系統130可經組態以在緩衝器中收集持續寫入區塊且立即提交所有持續寫入區塊,此可能會導致經改良效率。然而,應理解,對於其中緩衝器為電源故障保護的能量支援之DIMM,不需要對持續寫入進行分組並將其提交在區塊中。
可對持續寫入命令進行以下修改以實施上面所論述之群組提交。主機120可為一組兩個或多於兩個寫入挑選單個WID (例如,自WID 210)。例如,當在CA 114上發送時,可將稱為「持續」之額外位元添加至持續寫入命令。持續位元可用於判定何時已將整組持續寫入發送至記憶體系統130。
例如,在說明性實例中,可使用WID = 5將三個64B持續寫入如下組合在一起。可在CA 114上發送第一持續寫入(WID = 5,持續= 0),第二持續寫入(WID = 5,持續= 0)及第三持續寫入(WID = 5,持續= 1)。記憶體系統130可經組態以在緩衝器中收集WID = 5之持續寫入而持續位元為0,且當最後持續寫入到達且持續位元設置為1時,起始持續性提交之過程。
在一個實施中,僅持續位元設定為1之持續寫入可經組態以自持續寫入群組獲得來自記憶體系統130之Wr_Per回應(例如,在上面實例中僅僅為第三個持續寫入)。此可減少回應116上之訊務。
在一些態樣中,具有不同WID之持續寫入可例如在CA 114上交錯。因此,用於持續提交之持續寫入之分組並不意味著自主機120連續發送具有相同WID之組中之持續寫入。
在一些態樣中,為了解決在對持續寫入之Wr_Per回應中可能出現之競爭條件,可使用寫入群組ID (WGID)狀態方法來使用不同點陣圖(諸如WGID完成之點陣圖及WGID待決點陣圖)對一或多個持續寫入之狀態進行分組,如下文將參考圖2B闡釋。考慮具有各別WID之持續寫入,記憶體系統130可針對具有持續= 1之每一持續寫入以及針對每一清除完成確證各別Wr_Per (對於此狀況稱為「W_PER」)。在接收到一或多個W_PER之後,主機120可使用另一個命令Send-W_PER-Status (其中,主機120亦可保持W_PER之計數,被稱作為W_PER-Count)。記憶體系統130可僅基於已確證之W_PER返回具有完成位元之WGID完成狀態。繼而,主機120可更新WGID之清單,或「WGID清單」,且基於完成次數遞減W_PER-Count。
在一些狀況下,在異動中可能發生不可糾正之錯誤(UE),此將參考圖2C進行論述。當在Send-W_PER-Status中存在UE時,主機120可停止發出新的持續寫入/清除及Send-W_PER-Status。主機120可將被稱作為Xread-Status之狀態讀取命令發送至記憶體系統130。記憶體系統130繼而在接收Xread-Status之前收集所有持續寫入以將WGID待決狀態返回至主機120 (狀態封包在接收到RD_RDY之前覆蓋W_PER確證)且記憶體系統130可在狀態讀取期間繼續發出W_PER。主機120可更新由主機120維持之WGID清單,且基於待決寫入遞減W_PER-Count。然後,主機120可開始重新發出持續寫入/清除。
對於記憶體系統130之能量支援之DIMM實施,在正常協定中,主機120可發出命令持續寫入(其中持續= 0/1)及清除,但記憶體系統130將不為持續=1之每一持續寫入確證W_PER,但當清除完成時,記憶體系統130將確證關於清除命令之W_PER。在WGID實施的狀況下,記憶體系統130之W_PER處置僅清除之正常協定相同。由記憶體系統130提供之WGID完成狀態點陣圖將在其完成時設置清除WGID位元。在UE處於Send-W_PER-Status狀態時,操作將保持與正常狀況相同,惟除WGID待決狀態僅適用於清除。
WGID實施之信用可如下處理。可為狀態寫入或Xwrites以及持續寫入維護單獨信用,其中主機120可判定如何由記憶體系統130分配信用池。增量信用返回可由讀取後設資料提供,其中可使用返回Xwrite或持續寫信用之編碼方案。X-Read-Status返回可基於信用分配用於Xwrite及持續寫入緩衝槽。
在一實施方案中,例如,將參考圖2B至C進行描述,記憶體系統130可以任何次序完成持續寫入(本文中被稱作為PWRITE)及清除。為了將特定PWRITE持續至媒體,主機120可針對持續= 1之給定WGID發出PWRITE,或發出後續接著清除類型中之任一者之持續= 0之PWRITE。記憶體系統130可為命令中具有持續= 1之每一完成PWRITE以及每一完成清除發出W_PER。若將多個PWRITE與僅持續= 1之單個WGID分組在終止該群組之最後PWRITE中,則僅當整個PWRITE組完成時,記憶體系統130才可發出W_PER。
現在參考圖2B,將針對正常狀況描述W_PER處置。系統250經展示具有主機120及記憶體系統130。若寫入信用及自由WGID兩者皆可用,則主機120可發出經展示為252a、254a之一或多個PWRITE或FLUSH命令。主機120可在Host-WGID-Pendin清單(未展示,但可在主機120內維持)中追蹤所發佈之PWRITE或FLUSH命令252a、254a。
對應地,記憶體系統130可接受並追蹤DIMM-WGID-Pending清單(未展示)中之待決PWRITE或FLUSH命令252a、254a。記憶體系統130可在每一所接收命令之各別完成之後執行待決PWRITE或FLUSH命令252a、254a且將對應W_PER 254b及252b (注意,以所接收PWRITE或FLUSH命令252a、254a之相反次序展示)確證至主機120。
記憶體系統130可在WGID完成之點陣圖260中收集完成之所接收命令PWRITE或FLUSH 252a、254a,向WGID完成之點陣圖展示各種更新260a、260b、260c等。記憶體系統130亦可自DIMM-WGID-Pending清單中移除完成PWRITE或FLUSH命令252a、254a。
主機120可維持所接收W_PER事件之計數,例如,用於接收W_PER 254b、252b,被稱作為W_PER-Count。同時,主機120可如下處理所接收W_PER事件:若W_PER-Count> 0,則主機120可發出展示為Send-W_PER狀態256a之狀態請求。在被稱作為Tsend時間之預定義時間之後,記憶體系統130可將經展示為WGID_Status 256b之回應中之彼時間實例(在此狀況下為260b)處之WGID完成之點陣圖260之快照發送至主機120。快照可包含直至WGID_Status 256b開始所發出之W_PER的完成傳送至主機120。
在某些態樣中,快照中記錄至少1次完成。記憶體系統130基於在WGID_Status 256b中發送之完成來清除WGID完成之點陣圖260中之位元位置,藉由在位元位置之重置或清除之後WGID完成之點陣圖260b至WGID完成之點陣圖260c之轉換展示。
主機120接收WGID狀態256b且可提取關於完成之WGID的資訊。對應地,主機120可自Host-WGID-Pending清單中釋放完成之WGID,且將W_PER-Count遞減WGID完成之點陣圖260中接收之完成的數目(例如,基於如由WGID完成之點陣圖260b所指示接收之兩個W_PER遞減2的計數)。主機120可重複上述過程,以監視W_PER-Count開始,且若W_PER-Count> 0,則向記憶體系統130發出另一狀態請求Send-W_PER狀態256a。
在例示性實施中,主機120及記憶體系統130可在W_PER事件處理正在進行時繼續發佈及執行新PWRITE。儘管已針對實例性實施論述諸如HOST-WGID-Pending清單、DIMM-WGID-Pending清單等之W_PER-Count及待決清單,但可使用用於實現上述功能之替代結構而不偏離本發明之範疇。
現在參考圖2C,展示用於處置遵循來自主機120之SEND-W_PER-Statu之通道不可校正錯誤(UE),此導致來自記憶體系統130之在WGID_Status 256b中發送之完成的損失(在圖2B中闡釋)。此外,應注意,記憶體系統130可已自圖2B中之WGID完成之點陣圖260清除先前完成。
因此,在用於自系統270中之此等錯誤中恢復之協定中,主機120可藉由停止發出新的PWRITE或FLUSH命令來起始恢復過程(例如,不發佈PWRITE-3或FLUSH-3 272a,以虛線展示以指示在原本發出其之時間線具有未發生之錯誤),而記憶體系統130可繼續發出RD_RDY及/或W_PER事件以完成讀取或PWRITE或FLUSH命令(例如,W_PER 254b經顯示為發出而252b直到錯誤恢復後才發出)。主機120亦可繼續發出SEND並更新W_PER-Count。
在寫入賦能信號之預先指定最小時間延遲(被稱為遵循最後PWRITE之TWE_Delay)之後,主機120向記憶體系統130發出XREAD-STATUS 274a,且記憶體系統130可準備具有WGID待決點陣圖280之快照的完成狀態封包,其為除了上面所論述之WGID完成之點陣圖260之外提供之另一點陣圖,其中WGID待決點陣圖280包括所有待決PWRITE/FLUSH之狀態。記憶體系統130可確證RD_RDY 276b,且主機120可回應地發出SEND 278a。
然後,記憶體系統130可返回準備好之Status封包278b,主機120可自其提取並處理在Status封包278b中接收之WGID待決點陣圖280。主機120可自其Host-WGID-Pending追蹤清單中釋放適當WGID,且將W_PER-Count遞減所釋放WGID之數目。然後,主機120可重複以發出新的PWRITE/FLUSH命令開始的過程,且根據前一頁處理此時之待決W_PER。
在一些態樣中,Status封包278b經組態以指示其是否具有WGID完成之點陣圖260或WGID待決點陣圖280。W_PER回應狀態封包含有WGID完成之點陣圖260,而所有其他狀態封包含有WGID待決點陣圖280。TWE_Delay時間經組態以考慮自主機120發出之最後PWRITE自記憶體系統130獲得錯誤通知的時間以及自主機120發出之XREAD-STATUS 274a之前的UE偵測的等待時間可根據發出最後PWRITE之時間而變化。
參考圖3,展示用於持續寫入之實例編碼,例如,用於記憶體系統130之DDR5實施。CA1欄位通常用於區分DDR5技術中之1UI及2UI命令,且可保留用於NVDIMM-P實施。在一些實施中,CA 114可以DDR速度組態為僅具有7個插腳之DDR5,且在此狀況下,單獨命令編碼可用於持續寫入,例如,如圖3中所展示。
在圖3中,若持續位元= 1,則此指示記憶體系統130將各別WID相關聯之所有持續寫入推送至非揮發性記憶體。若群組中存在單個64B持續寫入,則持續位元可設定為1。對於大於64B之持續寫入,所有持續寫入可能具有相同WID,其中最後持續寫入將其持續位元設定為1,而其餘持續寫入將其持續位元設定為0。
除了上述異動之外,如先前章節所引入,另一命令亦可與持續寫入相關聯地使用,被稱作為FLUSH命令。FLUSH命令經組態以向記憶體系統130指示所緩衝之所有先前寫入(例如,在非持續性或揮發性記憶體中)將被推送至持續性記憶體,記住未來寫入在使用FLUSH命令時可能不會被類似地影響或推送至持續性記憶體。
當完成FLUSH之執行時,記憶體系統130可再次確證Wr_Per,例如,在至主機120之回應116上,類似於上文所論述之持續寫入的狀況。
此外,在FLUSH命令的狀況下,主機120亦可向記憶體系統130提供命令,WID之發送狀態(類似於持續寫入),記憶體系統130可使用唯一保留WID向WID狀態封包進行回應以指示FLUSH執行之完成(例如,所有位元設定為1之WID可為用於指示FLUSH執行完成之此保留WID)。
在一個實施中,可僅允許來自主機120之一個未完成之FLUSH命令。因此,在此實施中,主機120可能必須在發送另一FLUSH命令之前等待來自記憶體系統130之FLUSH完成回應。在替代實施方式中,FLUSH命令可伴隨有對應的FLUSH ID (例如,自保留之WID欄位中選擇),且對應的對發送狀態之回應致使記憶體系統130返回其FLUSH執行已經完成之FLUSH ID。
應瞭解,態樣包括用於執行本文中所揭示之過程、功能及/或演算法的各種方法。例如,圖4A說明用於執行持續操作之例示性方法400。
區塊402包含在記憶體系統(例如,記憶體系統130)處自主機(例如,主機120)接收持續寫入命令(例如,持續寫入202a)己相關聯寫入資料(例如,資料202b)。
區塊404包含基於持續寫入命令對記憶體系統中之非揮發性記憶體(例如,記憶體系統130中之非揮發性記憶體)執行寫入資料之持續寫入。可自主機接收與持續寫入命令相關聯之寫入標識(WID),且在成功完成持續寫入時,可向主機提供持續寫入完成指示(Wr_Per)連同相關聯WID (例如,Wr_Per 202c)。
類似地,圖4B說明執行持續操作之另一例示性方法450。
區塊452包含自主機(例如,主機120)至記憶體系統(例如,記憶體系統130)提供持續寫入命令(例如,持續寫入202a)及相關聯寫入資料(例如,資料202b),其中持續性寫入命令向記憶體系統指示執行將寫入資料持續寫入至非揮發性記憶體。
區塊454包含將與持續寫入命令相關聯之寫入標識(WID) (例如,WID 210)自主機提供至記憶體系統。
現在將結合圖5論述其中可利用本發明之態樣之實例性設備。圖展示計算裝置500之方塊圖。計算裝置500可對應於圖1之處理系統100之例示性實施,其中處理器120'可為主機120之處理元件中之一者。處理器120'經例示性展示為經由互連110耦合至記憶體系統130,為了清楚起見,從此視圖省略互連110之進一步細節。處理器120'、互連110及記憶體系統130可經組態以執行如上文所論述之方法400至450。應理解,此些技術中已知之其他記憶體組態(例如涉及一或多個級別之快取記憶體,雖然未展示)可存在於計算裝置500中。
圖5亦展示耦合至處理器120'及顯示器528之顯示控制器526。在一些狀況下,計算裝置500可用於無線通信且圖5亦以虛線展示選用區塊,例如耦合至處理器120'之編碼/解碼器(CODEC) 534 (例如,音訊及/或語音CODEC),且揚聲器536及麥克風538可耦合至CODEC 534;及無線天線542耦合至無線控制器540,無線控制器540耦合至處理器120'。在存在此等選用區塊中之一或多個的情況下,在特定態樣中,處理器120'、顯示控制器526、記憶體系統130及無線控制器540包括在系統級封裝或系統單晶片裝置522中。
因此,特定態樣、輸入裝置530及電源供應器544耦合至系統單晶片裝置522。此外,在特定態樣中,如圖5中所說明,在存在一或多個選用區塊的情況下,顯示器528、輸入裝置530、揚聲器536、麥克風538、無線天線542及電源供應器544在系統單晶片裝置522的外部。然而,顯示器528、輸入裝置530、揚聲器536、麥克風538、無線天線542及電源544中之每一者可耦合至系統單晶片裝置522之組件,例如介面或控制器。
應注意,儘管圖5通常描繪計算裝置、處理器120'及記憶體130,但亦可整合至機上盒、伺服器、音樂播放器、視訊播放器、娛樂單元、導航裝置、個人數位助理(PDA)、固定位置資料單元、電腦、膝上型電腦、平板電腦、通信裝置、行動電話或其他類似裝置。
熟習此項技術者將瞭解,可使用各種不同技藝及技術中之任一者表示資訊及信號。舉例而言,可藉由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合來表示可貫穿以上描述所參考之資料、指令、命令、資訊、信號、位元、符號及碼片。
此外,熟習此項技術者將瞭解,結合本文中所揭示之實施例描述之各種說明性邏輯區塊、模塊組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為清楚地說明硬體及軟體的此可互換性,上文通常已就其功能性方面描述了各種說明性組件、區塊、模組、電路及步驟。此功能性是實施為硬體抑或軟體取決於強加於整個系統之特定應用及設計約束。雖然熟習此項技術者可針對每一特定應用以變化方式實施所描述功能性,但不應將此等實施決策解釋為導致對本發明之範疇的脫離。
結合本文中所揭示實施例所描述之方法、序列及/或演算法可直接以硬體、由處理器執行的軟體模組或兩者之組合體現。軟體模組可駐留在RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟,可抽換磁碟、CD-ROM或此項技術中已知的任何其他形式之儲存媒體中。例示性存儲媒體耦接至處理器使得該處理器可自該儲存媒體讀取資訊且將資訊寫入至該儲存媒體。在替代方案中,該儲存媒體可與處理器成整體。
因此,本發明之態樣可包括體現執行持續寫入之方法的電腦可讀媒體。因此,本發明並不限於所說明實例且用於執行本文中所描述之功能性之任何構件被包括在本發明之態樣中。
雖然前述揭示內容展示本發明之說明性態樣,但應注意,可在本文中作出各種改變及修改而不脫離如隨附申請專利範圍所界定之本發明之範疇。根據本文中所描述之本發明之態樣之方法請求項之功能、步驟及/或動作不需要以任何特定次序執行。此外,儘管本發明之元件可以單數形式進行描述或主張,但涵蓋複數形式,除非明確地陳述對單數形式之限制。
100‧‧‧處理系統110‧‧‧互連112‧‧‧資料匯流排(DQ)114‧‧‧命令及位址匯流排(CA)116‧‧‧回應120‧‧‧主機120'‧‧‧處理器130‧‧‧記憶體系統132‧‧‧輸入/輸出(I/O)區塊134‧‧‧記憶體組202a‧‧‧持續寫入202b‧‧‧寫入資料202c‧‧‧Wr_Per204a‧‧‧持續寫入204b‧‧‧寫入資料204c‧‧‧Wr_Per206a‧‧‧命令206b‧‧‧寫入標識(WID)狀態封包210‧‧‧寫入標識(WID)250‧‧‧系統252a‧‧‧PWRITE或FLUSH命令252b‧‧‧W_PER254a‧‧‧PWRITE或FLUSH命令254b‧‧‧W_PER256a‧‧‧Send-W_PER狀態256b‧‧‧WGID_Status260‧‧‧點陣圖260a‧‧‧更新260b‧‧‧更新260c‧‧‧更新270‧‧‧系統272a‧‧‧PWRITE-3或FLUSH-3274a‧‧‧XREAD-STATUS276b‧‧‧RD_RDY278a‧‧‧SEND278b‧‧‧Status封包280‧‧‧寫入群組標識待決點陣圖400‧‧‧方法402‧‧‧區塊404‧‧‧區塊450‧‧‧方法451‧‧‧區塊454‧‧‧區塊500‧‧‧計算裝置522‧‧‧系統級封裝或系統單晶片裝置526‧‧‧顯示控制器528‧‧‧顯示器530‧‧‧輸入裝置534‧‧‧編碼/解碼器(CODEC)536‧‧‧揚聲器538‧‧‧麥克風540‧‧‧無線控制器542‧‧‧無線天線544‧‧‧電源供應器
附圖經呈現以輔助對本發明之態樣之描述且僅提供用於說明態樣而非對其之限制。
圖1說明根據本發明之態樣之處理系統。
圖2A至C說明根據本發明之各個態樣之用於處置持續寫入的異動。
圖3說明根據本發明之持續寫入命令之實例性編碼。
圖4A至B說明根據本發明之態樣之與執行持續寫入的例示性方法有關的事件序列。
圖5描繪可有利採用本發明之態樣之例示性計算裝置。
120‧‧‧主機
130‧‧‧記憶體系統
202a‧‧‧持續寫入
202b‧‧‧寫入資料
202c‧‧‧Wr_Per
204a‧‧‧持續寫入
204b‧‧‧寫入資料
204c‧‧‧Wr_Per
206a‧‧‧命令
206b‧‧‧寫入標識(WID)狀態封包
210‧‧‧寫入標識(WID)
Claims (30)
- 一種執行持續操作之方法,該方法包含:藉由經組態以支援持續寫入之一非揮發性雙排記憶體模組(NVDIMM)處接收來自一主機之一持續寫入命令及相關聯寫入資料;基於該持續寫入命令執行將該寫入資料之一持續寫入至該NVDIMM中之一非揮發性記憶體;在成功完成該持續寫入時,自該主機接收與該持續寫入命令相關聯之一寫入標識(WID);自該主機接收發送關於多個持續寫入之狀態連同相關聯WID的一請求;及藉由該NVDIMM接收具有一共同WID之兩個或多於兩個持續寫入命令之一群組,其中該群組之最後持續寫入命令具有設定為1之一持續位元,且剩餘持續寫入命令具有設定為0之各別持續位元且為該最後持續寫入命令提供一持續寫入完成指示。
- 如請求項1之方法,其進一步包含:在成功完成該持續寫入時,自該NVDIMM向該主機發送一持續寫入完成指示連同該相關聯WID。
- 如請求項2之方法,其中發送該持續寫入完成指示包含以與自該主機接收對應的兩個或多於兩個持續寫入命令之一次序不同的一次序自該NVDIMM向該主機發送兩個或多於兩個持續寫入完成指示。
- 如請求項1之方法,其進一步包含:自該NVDIMM向該主機發送一狀態封包,該狀態封包包含關於執行已被完成的持續寫入命令之WID。
- 如請求項1之方法,其中該WID包含一持續寫入之一多位元標識及一有效位元。
- 如請求項1之方法,其進一步包含:藉由該NVDIMM自該主機接收一FLUSH命令,其中該FLUSH命令指示將在揮發性媒體中緩衝之所有先前寫入推送至非揮發性或持續記憶體。
- 如請求項6之方法,其進一步包含:在完成自該NVDIMM對該主機執行該FLUSH命令時發送一FLUSH完成指示。
- 如請求項1之方法,其進一步包含:藉由該NVDIMM接收一或多個持續寫入命令,維持在一完成之點陣圖中完成之該一或多個持續寫入命令之狀態以及在一待決點陣圖中待決之該一或多個持續寫入命令之狀態,且根據來自該主機之對狀態之請求,若不存在無法校正之錯誤,則提供該完成之點陣圖;若存在一無法校正之錯誤,則提供該待決點陣圖。
- 一種執行持續操作之方法,該方法包含:自一主機至經組態以支援持續寫入之一非揮發性雙排記憶體模組(NVDIMM)發送一持續寫入命令及相關聯寫入資料; 在成功完成該持續寫入時,自該主機向該NVDIMM提供與該持續寫入命令相關聯之一寫入標識(WID);自該主機至該NVDIMM發送關於多個持續寫入之狀態連同相關聯WID的一請求;及自該主機至該NVDIMM發送具有一共同WID之兩個或多於兩個持續寫入命令之一群組,其中該群組之最後持續寫入命令具有設定為1之一持續位元且剩餘持續寫入命令具有設定為0之各別持續位元且自該NVDIMM接收關於該最後持續寫入之一持續寫入完成指示,其中該持續寫入命令向該NVDIMM指示執行將該寫入資料之一持續寫入至一非揮發性記憶體。
- 如請求項9之方法,其進一步包含:在成功完成該持續寫入時,在該主機處接收來自該NVDIMM之一持續寫入完成指示連同該相關聯WID。
- 如請求項10之方法,其中接收該持續寫入完成指示包含以與自該主機向該NVDIMM發送對應的兩個或多於兩個持續寫入命令之一次序不同的一次序自該NVDIMM接收兩個或多於兩個持續寫入完成指示。
- 如請求項11之方法,其進一步包含:藉由該主機自該NVDIMM接收一狀態封包,該狀態封包包含關於執行已被完成的持續寫入命令之WID。
- 如請求項9之方法,其中該WID包含一持續寫入之一多位元標識及一有效位元。
- 如請求項9之方法,其進一步包含:自該主機至該NVDIMM發送一FLUSH命令,其中該FLUSH命令指示藉由該NVDIMM將在揮發性媒體中緩衝之所有先前寫入推送至非揮發性或持續記憶體。
- 如請求項14之方法,其進一步包含:在藉由該NVDIMM完成該FLUSH命令之執行時,在該主機處接收一FLUSH完成指示。
- 一種執行持續操作之設備,其包含:一主機;及一經組態以支援持續寫入之非揮發性雙排記憶體模組(NVDIMM),其經組態以:自該主機接收該持續寫入命令及相關聯寫入資料;及基於該持續寫入命令執行將該寫入資料之一持續寫入至該NVDIMM中之一非揮發性記憶體;在成功完成該持續寫入時,自該主機接收與該持續寫入命令相關聯之一寫入標識(WID);自該主機接收發送關於多個持續寫入之狀態連同相關聯WID的一請求;及接收具有一共同WID之兩個或多於兩個持續寫入命令之一群組,其中該群組之最後持續寫入命令具有設定為1之一持續位元,且剩餘持續寫入命令具有設定為0之各別持續位元且為該最後持續寫入命令提供一持續寫入完成指示。
- 如請求項16之設備,其中該NVDIMM經進一步組態以在成功完成該持續寫入時,向該主機提供一持續寫入完成指示連同該相關聯WID。
- 如請求項17之設備,其中該NVDIMM經進一步組態從而以與自該主機接收對應的兩個或多於兩個持續寫入命令之一次序不同的一次序向該主機提供兩個或多於兩個持續寫入完成指示。
- 如請求項18之設備,其中該NVDIMM經進一步組態以向該主機提供一狀態封包,該狀態封包包含關於執行已被完成的持續寫入命令之WID。
- 如請求項16之設備,其中該WID包含一持續寫入之一多位元標識及一有效位元。
- 如請求項16之設備,其中該NVDIMM經進一步組態以自該主機接收一FLUSH命令,其中該FLUSH命令指示將在揮發性媒體中緩衝之所有先前寫入推送至非揮發性或持續記憶體。
- 如請求項21之設備,其中該NVDIMM經進一步組態以在完成對該主機執行該FLUSH命令時提供一FLUSH完成指示。
- 如請求項16之設備,其中該NVDIMM經進一步組態以接收一或多個持續寫入命令,維持在一完成之點陣圖中完成之該一或多個持續寫入命令 之狀態以及在一待決點陣圖中待決之該一或多個持續寫入命令之狀態,且根據來自該主機之對狀態之請求,若不存在無法校正之錯誤,則提供該完成之點陣圖;若存在一無法校正之錯誤,則提供該待決點陣圖。
- 一種執行持續操作之設備,其包含:一主機,其經組態以發送一持續寫入命令及相關聯寫入資料;及一非揮發性雙排記憶體模組(NVDIMM),其經組態以接收自該主機發送之該持續寫入命令及該相關聯寫入資料,其中該持續寫入命令向該NVDIMM指示執行將該寫入資料之一持續寫入至該NVDIMM之一非揮發性記憶體,及其中該主機經進一步組態以向NVDIMM提供與該持續寫入命令相關聯之一寫入標識(WID)及在成功完成該持續寫入時,向該NVDIMM發送發送關於多個持續寫入之狀態連同相關聯WID的一請求,及向該NVDIMM發送具有一共同WID之兩個或多於兩個持續寫入命令之一群組,其中該群組之最後持續寫入命令具有設定為1之一持續位元且剩餘持續寫入命令具有設定為0之各別持續位元,且自該NVDIMM接收關於該最後持續寫入之一持續寫入完成指示。
- 如請求項24之設備,其中該主機經進一步組態以在成功完成該持續寫入時,接收來自該NVDIMM之一持續寫入完成指示連同該相關聯WID。
- 如請求項25之設備,其中該主機經進一步組態以與向該NVDIMM發 送對應的兩個或多於兩個持續寫入命令之一次序不同的一次序自該NVDIMM接收兩個或多於兩個持續寫入完成指示。
- 如請求項26之設備,其中該主機經進一步組態以自該NVDIMM接收一狀態封包,該狀態封包包含關於執行已被完成的持續寫入命令之WID。
- 如請求項27之設備,其中該WID包含一持續寫入之一多位元標識及一有效位元。
- 如請求項24之設備,其中該主機經進一步組態以向該NVDIMM發送一FLUSH命令,其中該FLUSH命令指示藉由該NVDIMM將在揮發性媒體中緩衝之所有先前寫入推送至非揮發性或持續記憶體。
- 如請求項29之設備,其中該主機經進一步組態以在藉由該NVDIMM完成該FLUSH命令之執行時,接收一FLUSH完成指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/706,530 US11194524B2 (en) | 2017-09-15 | 2017-09-15 | Apparatus and method for performing persistent write operations using a persistent write command |
US15/706,530 | 2017-09-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201933106A TW201933106A (zh) | 2019-08-16 |
TWI779082B true TWI779082B (zh) | 2022-10-01 |
Family
ID=63449690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107129409A TWI779082B (zh) | 2017-09-15 | 2018-08-23 | 用於非揮發性記憶體之持續寫入 |
Country Status (22)
Country | Link |
---|---|
US (2) | US11194524B2 (zh) |
EP (1) | EP3682331B1 (zh) |
JP (1) | JP7123129B2 (zh) |
KR (1) | KR102425287B1 (zh) |
CN (1) | CN111095224B (zh) |
AU (1) | AU2018334452B2 (zh) |
BR (1) | BR112020004936A2 (zh) |
CA (1) | CA3073686C (zh) |
CL (1) | CL2020000647A1 (zh) |
CO (1) | CO2020002863A2 (zh) |
DK (1) | DK3682331T3 (zh) |
FI (1) | FI3682331T3 (zh) |
IL (1) | IL272795B (zh) |
MX (1) | MX2020002897A (zh) |
NZ (1) | NZ761924A (zh) |
PH (1) | PH12020500384A1 (zh) |
PT (1) | PT3682331T (zh) |
SA (1) | SA520411521B1 (zh) |
SG (1) | SG11202001491YA (zh) |
SI (1) | SI3682331T1 (zh) |
TW (1) | TWI779082B (zh) |
WO (1) | WO2019055164A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US11194524B2 (en) | 2017-09-15 | 2021-12-07 | Qualcomm Incorporated | Apparatus and method for performing persistent write operations using a persistent write command |
US10996888B2 (en) * | 2017-10-31 | 2021-05-04 | Qualcomm Incorporated | Write credits management for non-volatile memory |
KR102426107B1 (ko) * | 2017-12-20 | 2022-07-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20190088790A (ko) * | 2018-01-19 | 2019-07-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11048645B2 (en) * | 2018-02-01 | 2021-06-29 | Samsung Electronics Co., Ltd. | Memory module, operation method therof, and operation method of host |
US11709774B2 (en) * | 2019-08-07 | 2023-07-25 | Intel Corporation | Data consistency and durability over distributed persistent memory systems |
US11656967B2 (en) * | 2020-02-13 | 2023-05-23 | MemRay Corporation | Method and apparatus for supporting persistence and computing device |
US11886744B2 (en) * | 2021-12-15 | 2024-01-30 | Nvidia Corporation | Systems, methods, and apparatuses for making writes to persistent memory |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130138915A1 (en) * | 2010-08-11 | 2013-05-30 | Nec Corporation | Data processing system, data processing method, and program |
US8700842B2 (en) * | 2010-04-12 | 2014-04-15 | Sandisk Enterprise Ip Llc | Minimizing write operations to a flash memory-based object store |
US20140195564A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent data structures |
TW201706850A (zh) * | 2015-07-13 | 2017-02-16 | 三星電子股份有限公司 | 電腦系統以及非揮發性記憶體的操作方法 |
US20170123723A1 (en) * | 2015-10-30 | 2017-05-04 | Arm Limited | Controlling memory access to non-volatile memory |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1326562A (zh) | 1998-10-02 | 2001-12-12 | 世界空间管理公司 | 用于为用户提供积极和被动访问高速缓存内容的系统 |
US7139885B2 (en) | 2001-12-27 | 2006-11-21 | Hitachi, Ltd. | Method and apparatus for managing storage based replication |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US8250329B2 (en) * | 2007-10-24 | 2012-08-21 | International Business Machines Corporation | Preemptive write-inhibition for thin provisioning storage subsystem |
US7930361B2 (en) | 2008-09-15 | 2011-04-19 | Dell Products L.P. | System and method for management of remotely shared data |
US8656130B2 (en) * | 2011-12-23 | 2014-02-18 | International Business Machines Corporation | Low latency and persistent data storage |
US9442876B2 (en) * | 2012-05-18 | 2016-09-13 | Dell Products, Lp | System and method for providing network access for a processing node |
US9081606B2 (en) * | 2012-11-13 | 2015-07-14 | International Business Machines Corporation | Asynchronous persistent stores for transactions |
US9501398B2 (en) * | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
CN105283857B (zh) | 2013-03-14 | 2018-09-11 | 慧与发展有限责任合伙企业 | 用于持久性存储器的多版本化非易失性存储器层级 |
US9477557B2 (en) * | 2013-03-28 | 2016-10-25 | Microsoft Technology Licensing, Llc | Transaction processing using torn write detection |
BR112015032519B1 (pt) | 2013-07-26 | 2021-11-09 | Intel Corporation | Método e aparelho para interface de memória não volátil |
US9389976B2 (en) | 2014-04-09 | 2016-07-12 | Intel Corporation | Distributed persistent memory using asynchronous streaming of log records |
US10061719B2 (en) * | 2014-12-25 | 2018-08-28 | Intel Corporation | Packed write completions |
US10719236B2 (en) | 2015-11-20 | 2020-07-21 | Arm Ltd. | Memory controller with non-volatile buffer for persistent memory operations |
US10691553B2 (en) | 2015-12-16 | 2020-06-23 | Netapp, Inc. | Persistent memory based distributed-journal file system |
US10970175B2 (en) * | 2016-06-15 | 2021-04-06 | Sap Se | Flexible per-request data durability in databases and other data stores |
US10127074B2 (en) * | 2017-01-27 | 2018-11-13 | Futurewei Technologies, Inc. | Transaction identification synchronization |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
WO2019041291A1 (zh) * | 2017-08-31 | 2019-03-07 | 华为技术有限公司 | 写入信息的方法和装置 |
US11194524B2 (en) | 2017-09-15 | 2021-12-07 | Qualcomm Incorporated | Apparatus and method for performing persistent write operations using a persistent write command |
US11016669B2 (en) * | 2018-05-01 | 2021-05-25 | Qualcomm Incorporated | Persistent write data for energy-backed memory |
-
2017
- 2017-09-15 US US15/706,530 patent/US11194524B2/en active Active
-
2018
- 2018-08-14 AU AU2018334452A patent/AU2018334452B2/en active Active
- 2018-08-14 WO PCT/US2018/046590 patent/WO2019055164A1/en unknown
- 2018-08-14 BR BR112020004936-0A patent/BR112020004936A2/pt unknown
- 2018-08-14 JP JP2020514756A patent/JP7123129B2/ja active Active
- 2018-08-14 KR KR1020207006858A patent/KR102425287B1/ko active IP Right Grant
- 2018-08-14 EP EP18762704.7A patent/EP3682331B1/en active Active
- 2018-08-14 PT PT187627047T patent/PT3682331T/pt unknown
- 2018-08-14 DK DK18762704.7T patent/DK3682331T3/da active
- 2018-08-14 MX MX2020002897A patent/MX2020002897A/es unknown
- 2018-08-14 NZ NZ761924A patent/NZ761924A/en unknown
- 2018-08-14 SG SG11202001491YA patent/SG11202001491YA/en unknown
- 2018-08-14 FI FIEP18762704.7T patent/FI3682331T3/fi active
- 2018-08-14 CN CN201880058881.9A patent/CN111095224B/zh active Active
- 2018-08-14 CA CA3073686A patent/CA3073686C/en active Active
- 2018-08-14 SI SI201831049T patent/SI3682331T1/sl unknown
- 2018-08-14 IL IL272795A patent/IL272795B/en unknown
- 2018-08-23 TW TW107129409A patent/TWI779082B/zh active
-
2020
- 2020-02-27 PH PH12020500384A patent/PH12020500384A1/en unknown
- 2020-03-11 CO CONC2020/0002863A patent/CO2020002863A2/es unknown
- 2020-03-12 CL CL2020000647A patent/CL2020000647A1/es unknown
- 2020-03-12 SA SA520411521A patent/SA520411521B1/ar unknown
-
2021
- 2021-10-29 US US17/515,111 patent/US11650765B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700842B2 (en) * | 2010-04-12 | 2014-04-15 | Sandisk Enterprise Ip Llc | Minimizing write operations to a flash memory-based object store |
US20130138915A1 (en) * | 2010-08-11 | 2013-05-30 | Nec Corporation | Data processing system, data processing method, and program |
US20140195564A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent data structures |
TW201706850A (zh) * | 2015-07-13 | 2017-02-16 | 三星電子股份有限公司 | 電腦系統以及非揮發性記憶體的操作方法 |
US20170123723A1 (en) * | 2015-10-30 | 2017-05-04 | Arm Limited | Controlling memory access to non-volatile memory |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI779082B (zh) | 用於非揮發性記憶體之持續寫入 | |
TWI769335B (zh) | 用於非揮發性記憶體之寫入信用管理之方法、設備及非暫時性電腦可讀儲存媒體 | |
CN110995289B (zh) | 错误检测码生成电路 | |
US8325555B2 (en) | Data storage devices and power management methods thereof | |
US20170115891A1 (en) | Read operation delay | |
JP4881856B2 (ja) | 記憶装置 | |
US20220300441A1 (en) | Deterministic operation of storage class memory | |
US20180150233A1 (en) | Storage system | |
KR101581311B1 (ko) | 플래시 메모리 장치 및 그 제어 방법 | |
CN107945833A (zh) | 包括状态电路的存储器装置及其操作方法 | |
JP2021149999A (ja) | 半導体記憶装置 | |
RU2780441C2 (ru) | Постоянные записи для энергонезависимой памяти | |
CN114730247A (zh) | 具有数据的最小写入大小的存储设备 | |
US20200264681A1 (en) | Power management for partial cache line sparing | |
US20240176543A1 (en) | Method of operating storage device using program suspension control and storage device performing the same | |
EP4155894A1 (en) | Technologies for memory mirroring across an interconnect | |
US20180033469A1 (en) | Memory device | |
WO2023069148A1 (en) | Data storage devices, systems, and related methods for grouping commands of doorbell transactions from host devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |