TWI758605B - 用於儲存持續寫入資料之能量支援之記憶體及方法 - Google Patents

用於儲存持續寫入資料之能量支援之記憶體及方法 Download PDF

Info

Publication number
TWI758605B
TWI758605B TW108114952A TW108114952A TWI758605B TW I758605 B TWI758605 B TW I758605B TW 108114952 A TW108114952 A TW 108114952A TW 108114952 A TW108114952 A TW 108114952A TW I758605 B TWI758605 B TW I758605B
Authority
TW
Taiwan
Prior art keywords
data
pwrite
energy
command
host
Prior art date
Application number
TW108114952A
Other languages
English (en)
Other versions
TW201945933A (zh
Inventor
庫爾吉特 辛格 班斯
拉杰 拉馬努珍
利永 王
韋斯利 昆霖
Original Assignee
美商高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW201945933A publication Critical patent/TW201945933A/zh
Application granted granted Critical
Publication of TWI758605B publication Critical patent/TWI758605B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/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/0658Controller construction 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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

Abstract

在具有持續儲存器之非能量支援之記憶體中,要求一種複雜協定來處置持續寫入。為了解決此問題,提議提供一種用以處置具有持續儲存器之能量支援之記憶體中之持續寫入的簡單協定。

Description

用於儲存持續寫入資料之能量支援之記憶體及方法
本發明之一或多個態樣大體上係關於記憶體系統,且詳言之係關於處置針對能量支援之記憶體的持續寫入資料。
定義於JEDEC(聯合電子裝置工程化委員會)中之基本協定包括非能量支援之NVDIMM-P(非揮發性雙排記憶體模組)。NVDIMM-P為隨著每一寫入運用獨特ID(WGID(寫入群組ID))加標記而處置持續寫入的極複雜協定。
一旦至NVDIMM-P之寫入係在DIMM上之可經受住系統層級之電力喪失的域中,該等寫入被認為「持續」。在寫入為持續時,電力故障不再暗示資料喪失。確保持續性之一種方法為非能量支援之NVDIMM-P。在此方法中,主機必須使用關於所選擇寫入之顯式命令,在發生此情形時,該等命令要求NVDIMM將該等所選擇寫入與至主機之完成訊息一起移動至持續儲存器。在電力喪失情況下,仍係在NVDIMM上之非揮發性緩衝器或快取記憶體中的任何寫入將失去。
主機將PWRITE(持續寫入)命令用於要求持續性之寫入。NVDIMM可使用此命令來選擇需要被移動至持續儲存器以經受住電力喪 失的緩衝器或快取記憶體。NVDIMM亦可在正常操作期間將XWRITE(正常寫入)移動至持續儲存器。然而,除非另外規定,否則此等寫入並不被要求經受住系統電力喪失。
對於非能量支援之NVDIMM,緩衝器及任何快取記憶體中之資料在電力喪失狀況下並不被視為持續。當要求持續性時,可使用PWRITE命令。判定何時發佈PWRITE命令為主機控制器之職責。每一PWRITE命令包括異動ID--WGID(寫入群組ID)--以識別持續寫入資料將相關聯的特定資料群組。一旦持續寫入操作已開始,主機控制器便基於WGID追蹤未決寫入。一旦與給定WGID相關聯之所有資料已被寫入至持續儲存器,NVDIMM-P便發佈針對PWRITE命令的W_PER(持續寫入)回應。
主機亦可發佈FLUSH命令以指導NVDIMM-P將來自揮發性空間(快取記憶體及/或緩衝器)之所有資料移動至持續儲存器。在完成清空操作之後,NVDIMM提供W_PER回應。包括顯式FLUSH命令及隱含清空請求兩者之清空請求在具有持續位元「1」之PWRITE情況下完成。在接收到W_PER之後,主機可發佈SEND-W_PER命令以經由訊息封包擷取經更新之WGID位元圖狀態以檢查確認WGID是否完成。主機亦可使用XREAD-STATUS命令請求待決WGID位元圖。
非能量支援之NVDIMM-P支援兩種類型之WGID位元圖。第一類型為「WGID完成位元圖」。一旦與給定WGID相關聯之所有資料已寫入至持續儲存器,則在NVDIMM中,WGID位元圖中之對應位元設定為「1」。一旦「WGID完成位元圖」回應於SEND-W_PER命令發送至主機,則位元圖在NVDIMM中皆重設為0。
第二類型為「WGID待決位元圖」。NVDIMM接受並追蹤WGID待決位元圖中的待決PWRITES(或FLUSH)。在加電時,WGID待決位元圖皆初始化為「0」。NVDIMM在接收到具有新WGID之PWRITE(或FLUSH)之後便將WGID位元之狀態改變為「1」。一旦與給定WGID相關聯之所有資料已寫入至持續儲存器,則WGID中之對應位元標示為「0」。WGID待決位元圖由於XREAD命令至主機的傳送並不改變WGID待決位元圖中任何WGID位元的狀態。
主機可藉由設定模式暫存器啟用「WGID位元圖」模式。若啟用模式,則NVDIMM準備好WGID完成位元圖及WGID待決位元圖兩者。主機可使用SEND-W_PER命令請求WGID完成位元圖,且可針對狀態使用XREAD命令來請求WGID待決位元圖。
在非能量支援之NVDIMM-P中,許多通信可發生於主機與NVDIMM之間。又,可存在許多要求之簿記(例如,WGID經完成位元圖、WGID待決位元圖等)。圖1說明主機與非能量支援之NVDIMM-P之間的「WGIG完成位元圖」流程控制100之實例:1)主機在WGID=0情況下發佈PWRITE或FLUSH;2)主機在WGID=1情況下發佈另一PWRITE或FLUSH;3)NVDIMM針對WGID=1將所有資料隱退至持續儲存器,且接著確證W_PER。在此實例中,允許並說明無序隱退。NVDIMM在「WGID完成位元圖」中將WGID bit1設定為「1」;4)NVDIMM針對WGID=0將所有資料隱退至持續儲存器,且接著確證W_PER。NVDIMM在「WGID完成位元圖」中將WGID bit0設定為「1」; 5)主機追蹤W_PER計數。若W_PER計數>0,則主機可發佈SEND-W_PER狀態命令。在此個例中,主機在接收到兩個W_PER之後發佈SEND-W_PER命令;6)NVDIMM發送「WGID完成位元圖」,其中bit0及bit1設定為「1」。NVDIMM重設「WGID完成位元圖」中已傳送至主機的位元。主機使W_PER計數遞減2且釋放兩個WGID。NVDIMM亦具有選項以在設定僅一個位元情況下發送「WGID完成位元圖」。在此狀況下,W_PER計數仍將>0,且接著主機可發佈另一SEND-W_PER狀態命令。
接著看出,在非能量支援持續處置下,許多通信發生於主機與NVDIMM之間。又,可存在許多要求之簿記(例如,WGID經完成位元圖、WGID待決位元圖等)。簡言之,針對持續性處置之非能量支援之協定為複雜的。
此發明內容識別一些實例態樣之特徵,且並非對所揭示標的物的排他性或窮盡性描述。並未將特徵或態樣是包括於此發明內容中抑或自此發明內容省略預期為指示此等特徵之相對重要性。額外特徵及態樣予以描述,且在閱讀以下詳細描述且檢視形成詳細描述之一部分的圖式後對於熟習此項技術者將變得顯而易見。
揭示一種例示性設備。該設備可為一能量支援之記憶體。該能量支援之記憶體可包含一資料緩衝器、一持續儲存器及一控制器。該資料緩衝器可為揮發性,且該持續儲存器可為非揮發性。該控制器可經組態以控制該能量支援之記憶體的一總體操作。該控制器可經組態以自一主機接收一持續寫入命令,且該資料緩衝器可經組態以自該主機接收對應於 該持續寫入命令的持續寫入資料。該控制器可進一步經組態以將來自該資料緩衝器之該對應持續寫入資料儲存至該持續儲存器。持續寫入命令可為對應持續寫入資料被要求為持續的命令。
揭示關於一設備之一例示性方法。該設備可為包含一資料緩衝器及一持續儲存器的一能量支援之記憶體。該資料緩衝器可為揮發性,且該持續儲存器可為非揮發性。該方法可包含在能量支援之記憶體處自一主機接收一持續寫入命令及對應持續寫入資料。該對應持續寫入資料可在能量支援之記憶體的資料緩衝器處接收到。該方法亦可包含由該能量支援之記憶體將來自該資料緩衝器之對應持續寫入資料儲存至該能量支援之記憶體的該持續儲存器。持續寫入命令可為對應持續寫入資料被要求為持續的命令。
揭示另一種例示性設備。該設備可為一能量支援之記憶體。該能量支援之記憶體可包含一資料緩衝器、一持續儲存器及一控制器。該資料緩衝器可為揮發性,且該持續儲存器可為非揮發性。該控制器可經組態以控制該能量支援之記憶體的一總體操作。該控制器可包含用於自一主機接收一持續寫入命令的構件,且該資料緩衝器可自該主機接收對應於該持續寫入命令的持續寫入資料。該控制器亦可包含用於將來自該資料緩衝器之該對應持續寫入資料儲存至該持續儲存器的構件。持續寫入命令可為對應持續寫入資料被要求為持續的命令。
100:流程控制
200:記憶體系統
210:主機
220:能量支援之記憶體
230:通信通路
232:命令/位址線(CA)
234:資料線(DQ)
236:回應線(RSP)
310:控制器
320:資料緩衝器
330:快取記憶體
340:持續儲存器
350:備用能量
400:非限制性實例程序
410:區塊
420:區塊
430:區塊
440:區塊
450:區塊
460:區塊
500:非限制性實例程序
510:區塊
520:區塊
530:區塊
540:區塊
550:區塊
560:區塊
600:設備
602:行動電話裝置
604:膝上型電腦裝置
606:終端機裝置
PWRITE:持續寫入
W_PERS:持續寫入回應
隨附圖式經呈現以輔助所揭示標的物之一或多個態樣的實例之描述並經提供僅用於說明實例且不限制實例:圖1說明在非能量支援之NVDIMM-P中執行的現有協定; 圖2說明根據非限制性實施例之記憶體系統的實例;圖3說明根據非限制性實施例之能量支援之記憶體的實例;圖4說明根據非限制性實施例的由能量支援之記憶體執行以處置持續寫入的實例程序之流程圖;圖5說明根據非限制性實施例的由能量支援之記憶體執行以處置清空的實例程序之流程圖;圖6說明數個裝置之實例,該等裝置具有一主機及整合於該裝置中之菊鏈鏈接至主機的複數個裝置。
優先權主張
本專利申請案主張頒予至其受讓人的在2018年5月1日申請之題為「PERSISTENT WRITE DATA FOR ENERGY-BACKED MEMORY」之美國非臨時專利申請案第15/968,738號的優先權,且據此以全文引用方式明確併入本文中。
在以下針對於所揭示標的物之特定實例的描述及相關圖式中提供標的物之態樣。可在不背離所揭示標的物之範疇的情況下設計替代態樣。另外,熟知元件將不詳細地描述或將被省略以免混淆相關細節。
詞語「例示性」在本文中用於意謂「充當實例、個例或說明」。本文中描述為「例示性」的任何實施例未必被認作比其他實施例更佳或更有利。同樣地,術語「實施例」並不要求所揭示標的物之所有實施例包括所論述之特徵、優勢或操作模式。
本文中所使用之術語僅出於描述特定實例之目的且並不意 欲為限制性的。如本文中所使用,單數形式「一」及「所述」意欲亦包括複數形式,除非上下文另外清楚地指示。應進一步理解,術語「包含」及/或「包括」當在本文中使用時指定所陳述特徵、整數、程序、操作、元件及/或組件的存在,但並不排除一或多個其他特徵、整數、程序、操作、元件、組件及/或其群組的存在或添加。
另外,按照待由(例如)計算裝置之元件執行的動作序列來描述許多實例。將認識到,本文中所描述之各種動作可由特定電路(例如,特定應用積體電路(ASIC))、由一或多個處理器執行之程式指令或兩者的組合來執行。此外,可認為本文中所描述之此等動作序列完全體現於任何形式之電腦可讀儲存媒體內,該電腦可讀儲存媒體中已儲存有一組對應電腦指令,該等電腦指令在被執行時將使相關聯之處理器執行本文中所描述之功能性。因此,可按皆涵蓋於所主張標的物之範疇內的數種不同形式體現各種態樣。另外,對於本文中所描述之實例中之每一者,任何此等實例之對應形式可在本文中被描述為(例如)「經組態以執行所描述動作之邏輯」。
自上文回憶,非能量支援之NVDIMM-P的一個缺點(可存在之若干缺點中的一個缺點)為針對持續性處置之協定可為複雜的。為了解決此及其他問題,提議利用一或多個能量支援之記憶體。能量支援之記憶體可定義為包括揮發性儲存器及非揮發性儲存器兩者之記憶體(細節在下文進一步提供)。
藉由使用諸如能量支援之NVDIMM的能量支援之記憶體,可使得用以處置持續性之協定簡單得多。舉例而言,一個主要優勢為,一旦寫入僅有成功地傳送至能量支援之記憶體上之控制器,該等寫入就可被 視為持續。不同於非能量支援之狀況,對於能量支援之記憶體而言WGID支援為不必要的。
圖2說明記憶體系統200之實例,該記憶體系統包括經由通信通路230與能量支援之記憶體220通信的主機210。主機210及能量支援之記憶體220可為分離裝置,或其可一起整合於一單一裝置中。主機210可為處理器(或複數個處理器)或SoC(系統單晶片)。如所提到,能量支援之記憶體220可為包括揮發性儲存器及非揮發性儲存器兩者的記憶體。
通信通路230可包括CA(命令/位址線)232、DQ(資料線)234及RSP(回應線)236。命令/位址線CA 232可經組態以將命令及位址信號自主機210攜載至能量支援之記憶體220。資料線DQ 234可經組態以在主機210與能量支援之記憶體220之間攜載資料信號(例如,將資料自主機210寫入至能量支援之記憶體220,自能量支援之記憶體220讀取資料至主機210)。回應線RSP 236可經組態以將回應信號自能量支援之記憶體220攜載至主機210。
一旦寫入資料係在能量支援之記憶體220上的可經受住系統層級之電力喪失的域中,至能量支援之記憶體220之寫入便可被視為「持續」。在寫入為持續時,電力故障不再暗示資料喪失。
在所提議之能量支援之方法中,可存在備用能量源,其可為能量支援之記憶體220提供足夠時間以將揮發性儲存器中之寫入移動至持續儲存器。運用所提議之能量支援之方法,一旦對應寫入資料移動至能量支援之記憶體220之揮發性儲存器中,主機210就可將寫入視為持續。
可在記憶體層級或系統層級提供能量支援。對於基於記憶體之能量支援,可能的是僅能量支援之記憶體220被供電。在電力喪失情 況下,系統之包括至通信通路230之介面的剩餘部分不需要保持為可操作。能量支援之記憶體220可探索且管理能量源。
能量支援之記憶體220亦可將能量源能力及狀態報告給主機210。舉例而言,能量支援之記憶體220可報告定義為能量源之最小可用能量(例如,以mWH計)的Backup_Energy_Min。若不存在基於記憶體之能量支援,則此值可報告為零。能量支援之記憶體220可視需要使Backup_Energy_Min資訊保持經更新。另一者可為Backup_Energy_Status,其可包括錯誤資訊以及能量源的可用壽命。
對於基於系統之能量支援,能量源可駐存於系統層級。在電力喪失情況下,整個系統(或要求之子集)可保持為可操作歷時清空所選擇之揮發性內容至持續儲存器所要求的時段。系統可探索且管理此能量源。作為探索之部分,系統可判定用於清空揮發性內容至能量支援之記憶體220之持續儲存器的可用備用能量。
圖3說明能量支援之記憶體220的非限制性實例。NVDIMM-P可為能量支援之記憶體220的實例。所說明之能量支援之記憶體220可包含控制器310、資料緩衝器320、快取記憶體330、持續儲存器340及備用能量350。資料緩衝器320及快取記憶體330可為揮發性。舉例而言,該資料緩衝器及快取記憶體可包含暫存器、DRAM、SRAM等。另一方面,持續儲存器340可為非揮發性。舉例而言,持續儲存器可包含MRAM、PCM、快閃記憶體、SSD等。
控制器310及資料緩衝器320可經組態以經由通信通路230與主機210介接。詳言之,控制器310可經由命令/位址線232自主機210接收命令及位址信號,並經由回應線236將回應信號發送至主機210。資料 緩衝器320可自主機210接收寫入資料,且經由資料線234提供讀取資料至主機210。
在一態樣中,寫入資料可自資料緩衝器320直接寫入至持續儲存器340,且讀取資料可直接自持續儲存器340讀取至該資料緩衝器320。因此,快取記憶體330並非嚴格為必要的,亦即,該快取記憶體可被視為可選的。
然而,對快取記憶體330之存取很可能快於對持續儲存器340的存取。因此,在另一態樣中,快取記憶體330可用以隱藏或以其他方式減輕持續儲存器340之存取潛時。舉例而言,在讀取時,讀取資料可自快取記憶體330讀取至資料緩衝器320(假設快取命中)。若發生快取未命中,則讀取資料可自持續儲存器340擷取。
在寫入時,寫入資料可自資料緩衝器320儲存至快取記憶體330。在要求時,寫入資料亦可經由直寫快取策略或經由回寫快取策略儲存至持續儲存器340。主機210可指定哪一策略用以實施能量支援之記憶體220。在直寫快取策略中,來自資料緩衝器320之寫入資料可同時寫入至快取記憶體330及持續儲存器340,使得不進行寫入資料之讀取,直至寫入資料儲存至持續儲存器340。
在回寫快取策略中,寫入資料可初始地儲存至快取記憶體330。寫入資料不需要同時寫入至持續儲存器340。一旦寫入資料儲存至快取記憶體330,寫入資料便可用於讀取,而不管寫入資料是否亦儲存於持續儲存器340中。
備用能量350可經組態以提供備用能量,使得來自資料緩衝器320及/或快取記憶體330之內容在發生電力喪失時可儲存至持續儲存 器340。備用能量350可包含一或多個電容器及/或電池。控制器310保持、維持關於備用能量350之資訊(例如,Backup_Energy_MinBackup_Energy_Status等)且將此資訊報告至主機210。控制器310可經組態以執行必要動作以在電力喪失被偵測到時清空資料緩衝器320及/或快取記憶體330至持續儲存器340。
請注意,備用能量350可為可選的在於,備用能量350為基於記憶體之能量支援的實例。若實施基於系統之能量支援,則備用能量350並非嚴格地為必要的。當然,可存在備用能量350,且可實施基於記憶體之能量支援及基於系統之能量支援中的一者或兩者。在一態樣中,主機210可設立能量支援之記憶體220以實施基於記憶體之能量支援及/或基於系統之能量支援。
控制器310可經組態以控制能量支援之記憶體220之總體操作以為接收自主機210之命令服務。來自主機210之命令可包括持續寫入(PWRITE)命令及正常寫入(XWRITE)命令外加其他命令。對於PWRITE命令及XWRITE命令兩者,主機210可提供對應的PWRITE資料及XWRITE資料。資料緩衝器320可經組態以接收PWRITE資料及XWRITE資料。
顧名思義,PWRITE命令為對應PWRITE資料被要求為持續的命令。在能量支援之記憶體220之情形下,持續性要求可藉由將PWRITE資料儲存至持續儲存器340來滿足。因此,在一態樣中,當接收到PWRITE命令時,控制器310可經組態以將來自資料緩衝器320之對應PWRITE資料儲存至持續儲存器340。
另一方面,XWRITE命令為對應XWRITE資料並非要求為 持續的命令。在能量支援之記憶體220之情形下,XWRITE資料可為但不需要儲存於持續儲存器340中。因此,在一態樣中,當接收到XWRITE命令時,控制器310可能或可能不將來自資料緩衝器320之對應XWRITE資料儲存至持續儲存器340。
圖4說明由能量支援之記憶體220執行以處置持續寫入之非限制性實例程序400的流程圖。應注意,並不需要執行圖4的所有說明之區塊,亦即,一些區塊可係可選的。另外,對圖4中之區塊的數字參考不應視為要求區塊應以特定次序執行。實際上,可並行地執行一些區塊。
在區塊410中,控制器310可例如經由命令/位址線232自主機210接收PWRITE命令。主機210不需要在發佈至能量支援之記憶體220的PWRITE命令中包括任何WGID。若該WGID被包括,則控制器310可忽略WGID資訊。此不同於要求WGID之上述非能量支援之實施方案(參見圖1)。以此方式,可使得所提議之能量支援之協定更簡單。
在區塊420中,資料緩衝器320可例如經由資料線234亦自主機210接收對應於PWRITE命令的PWRITE資料。如上所述,PWRITE命令為對應PWRITE資料被要求為持續的命令。因此,在區塊440中,控制器310可將對應PWRITE資料儲存至持續儲存器340。
若存在快取記憶體330,則在區塊430中,控制器310亦可將對應PWRITE資料儲存至快取記憶體330。控制器310可經由實施直寫快取策略或回寫快取策略而將PWRITE資料儲存至快取記憶體330(區塊430)及至持續儲存器340(區塊440)。若能量支援之記憶體220能夠實施兩個策略,則主機210可指定實施哪一策略。
若指定直寫快取策略,則來自資料緩衝器320之PWRITE 資料可同時寫入至快取記憶體330及持續儲存器340,使得不進行PWRITE料讀取,直至PWRITE資料儲存至持續儲存器340。若指定回寫快取策略,則PWRITE資料可初始地儲存至快取記憶體330。一旦PWRITE資料儲存至快取記憶體330,PWRITE資料便可用於讀取,而不管PWRITE資料是否亦儲存於持續儲存器340中。
應注意到,控制器310不需要被要求以實施任一快取寫入策略用於XWRITE資料。此係因為不同於PWRITES,XWRITE並不需要持續性。就替代觀點而言,XWRITE資料可如同回寫快取策略始終有效般處置。
在一態樣中,為了區分PWRITE資料與XWRITE資料,資料緩衝器320及/或快取記憶體330中之每一PWRITE資料可被標記為持續,且資料緩衝器320及/或快取記憶體330中之每一XWRITE資料可不標記為持續。舉例而言,與每一PWRITE資料相關聯之持續性位元可設定為「1」,且與每一XWRITE資料相關聯的持續性位元可重設為「0」。
在區塊450中,控制器310可判定是否在執行PWRITE操作以將對應PWRITE資料儲存至持續儲存器340同時發生任何錯誤。舉例而言,當例如經由同位檢查判定資料緩衝器320中之PWRITE資料損壞時,可發生錯誤。在持續儲存器340上亦可能存在不足空間,可在將PWRITE資料寫入至快取記憶體330及/或持續儲存器340的過程中發生錯誤等。
當在執行PWRITE操作中不存在錯誤時,無任何類型之回應需要被發送回至主機210。不同於非能量支援之NVDIMM-P,在運用所提議之能量支援之實施方案成功完成後不要求回應。此為可使得所提議之能量支援之協定更簡單的另一方式。在一態樣中,當判定資料緩衝器320 中之所接收PWRITE資料有效,亦即,並未損壞時,可認為PWRITE操作為成功的。在另一態樣中,當PWRITE資料成功地儲存於快取記憶體330中時,PWRITE操作可被認為是成功的。在又一態樣中,當PWRITE資料成功地儲存至持續儲存器340時,PWRITE操作可被視為成功。
當在區塊450中偵測到錯誤時,則在區塊460中,控制器310可例如經由回應線236將錯誤回應(W_ERR)發送回至主機210。在一態樣中,錯誤回應可在自主機210接收到PWRITE命令的預定錯誤報告臨限持續時間內發送至主機210。接著,自主機210之觀點,若在錯誤報告臨限持續時間內自能量支援之記憶體220未接收到針對PWRITE的回應,則主機210可認為PWRITE係成功的。
來自主機210之命令亦可包括清空(FLUSH)命令。舉例而言,主機210可發佈FLUSH命令以使系統斷電。清空命令可為FLUSHPWRITE或FLUSH ALL命令。當接收到FLUSH(FLUSH PWRITE或FLUSH ALL)命令時,控制器310可經組態以將尚未儲存至持續儲存器340之所有PWRITE命令之資料緩衝器320及/或快取記憶體330中的PWRITE資料清空至持續儲存器340。
若FLUSH命令為FLUSH ALL命令,則除自資料緩衝器320及/或快取記憶體330清空PWRITE資料外,控制器310亦可經組態以將尚未儲存至持續儲存器340之所有XWRITE命令之資料緩衝器320及/或快取記憶體330中的XWRITE資料清空至持續儲存器340。
圖5說明由能量支援之記憶體220執行以處置清空之非限制性實例程序500的流程圖。再者,應注意,並不需要執行圖5的所有說明之區塊,亦即,一些區塊可係可選的。另外,對圖5中之區塊的數字參考 不應視為要求區塊應以特定次序執行。實際上,可並行地執行一些區塊。
在區塊510中,控制器310可例如經由命令/位址線232自主機210接收FLUSH命令。主機210不需要在發佈給能量支援之記憶體220的FLUSH命令中包括任何WGID。若該WGID被包括,則控制器310可忽略WGID資訊。此不同於上述非能量支援之實施方案(參見圖1),在該實施方案處,WGID識別將被清空之PWRITE資料的特定群組。以此方式,所提議之能量支援之協定可更簡單。
在區塊520中,控制器310可將尚未儲存至該持續儲存器340之一些或所有PWRITE命令之資料緩衝器320中的PWRITE資料清空至該持續儲存器340。保證此操作之一種方式可為簡單地將資料緩衝器320中之所有PWRITE資料(例如,持續性位元設定為「1」的彼等資料)清空至持續儲存器340。然而,可為較佳的是識別尚未儲存之彼等PWRITE資料且清空所識別之PWRITE資料。
若存在快取記憶體330,則控制器310可另外將尚未儲存至持續儲存器340之一些或所有PWRITE命令之快取記憶體330中的PWRITE資料清空至持續儲存器340。再者,此可藉由如下操作來保證:簡單地將快取記憶體330中之所有PWRITE資料(例如,持續性位元設定為「1」的彼等資料)清空至持續儲存器340。此可花費時間且可不必要地消耗電力。因此,可為較佳的是僅清空快取記憶體330中標記為持續的已變更快取線。
應注意,當存在快取記憶體330時,若實施直寫快取策略,則清空來自資料緩衝器320之PWRITE資料可足夠。即,當實施直寫快取策略時,清空PWRITE資料之快取記憶體330可能並非必要的。另一 方面,若實施回寫快取策略,則清空來自資料緩衝器320及快取記憶體330兩者之PWRITE資料可為較佳的。
若FLUSH命令為FLUSH PWRITE命令,則程序自區塊520可進行至區塊540。另一方面,若FLUSH命令為FLUSH ALL命令,則程序可進行至區塊530,其中可清空XWRITES。
在區塊530中,控制器310可將尚未儲存至持續儲存器340之一些或所有XWRITE命令之資料緩衝器320中的XWRITE資料清空至持續儲存器340。保證此情形之一種方式可為簡單地清空資料緩衝器320中之所有資料至持續儲存器340,而不管資料是否標記為持續。然而,可為較佳的是識別尚未儲存之彼等資料且僅清空所識別之資料。
若存在快取記憶體330,則控制器310可另外將尚未儲存至持續儲存器340之一些或所有XWRITE命令之快取記憶體330中的XWRITE資料清空至持續儲存器340。再者,此可藉由如下操作來保證:簡單地清空快取記憶體330中之所有資料至持續儲存器340,而不管資料是否標記為持續。然而,可為較佳的是識別快取記憶體330中之所有已變更快取線,而不管該等快取線是否標記為持續,且僅清空所識別線。
自區塊520(在FLUSH PWRITE狀況下)或自區塊530(在FLUSH ALL狀況下),該程序可接著進行至區塊540。在此區塊中,控制器310可判定FLUSH操作是否已成功地完成。若是,則在區塊550中,控制器310可例如經由回應線236將持續寫入回應(W_PERS)發送至主機210。若已發生錯誤,則在區塊560中,控制器310可將錯誤回應(W_ERR)發送至主機210。
雖然未具體展示,但當控制器310偵測到電力喪失時,控 制器310可自動地執行520,使得PWRITE資料之持續性要求可被滿足。若存在例如經由備用能量350可用或經由系統層級備用能量提供的足夠電力,則控制器310亦可執行區塊530以節省一些或所有XWRITE資料。
圖6說明可與說明於圖2及圖3中之前述設備整合的各種電子裝置。舉例而言,行動電話裝置602、膝上型電腦裝置604、終端機裝置606以及要求小型因數、極低輪廓之穿戴型裝置、攜帶型系統可包括併有如本文所描述之裝置/系統的設備600。設備600可例如為以下各者中之任一者:積體電路、晶粒、整合式裝置、積體裝置封裝、積體電路裝置、裝置封裝、積體電路(IC)封裝、疊層封裝裝置、本文中所描述的封裝內系統裝置。圖6中所說明之裝置602、604、606僅係例示性的。其他電子裝置亦可特徵化包括(但不限於)一群裝置(例如電子裝置)的設備600,該群裝置包括行動裝置、手持型個人通信系統(PCS)單元、諸如個人數位助理之攜帶型資料單元、全球定位系統(GPS)致能裝置、導航裝置、機上盒、音樂播放器、視訊播放器、娛樂單元、諸如儀錶讀取裝備之固定位置資料單元、通信裝置、智慧型電話、平板電腦、電腦、穿戴型裝置、伺服器、路由器、實施於汽車載具(例如自主載具)中之電子裝置,或者儲存或擷取資料或電腦指令的任何其他裝置,或其任何組合。
熟習此項技術者應瞭解,可使用多種不同技術及技藝中之任一者來表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子,或其任何組合來表示在貫穿以上描述中可能引用之資料、指令、命令、資訊、信號、位元、符號及碼片。
另外,熟習此項技術者應瞭解,結合本文中所揭示之實例描述的各種說明性邏輯區塊、模組、電路及演算法可實施為電子硬體、電 腦軟體或兩者的組合。為清楚地說明硬體與軟體之此互換性,已在上文就各種說明性組件、區塊、模組、電路及方法之功能性對其加以大體描述。此功能性實施為硬體抑或軟體取決於特定應用及強加於整個系統之設計約束而定。熟習此項技術者可針對每一特定應用以變化之方式實施所描述之功能性,但不應將此等實施決策解譯為致使脫離本發明之範疇。
結合本文中所揭示之實例所描述之方法、序列及/或演算法可直接地以硬體、以由處理器執行之軟體模組或以該兩者之組合予以體現。軟體模組可駐存於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、可卸除式磁碟、CD-ROM,或此項技術中已知之任何其他形式的儲存媒體中。例示性儲存媒體與處理器耦接,使得處理器可自儲存媒體讀取資訊並將資訊寫入至儲存媒體。在替代方案中,儲存媒體可與處理器成一體式。
因此,態樣可包括體現上述裝置中之任何者的電腦可讀媒體。因此,所揭示標的物之範疇不限於所說明之實例,且包括用於執行本文中所描述之功能性的任何構件。
雖然前述揭示內容展示說明性態樣,但應注意,可在不脫離如所附申請專利範圍所定義的所揭示標的物之範疇的情況下,在本文中作出各種改變及修改。無需以任何特定次序執行根據本文中所描述之實例的方法項之功能、程序及/或動作。此外,儘管可能以單數形式描述或主張所揭示標的物之元件,但除非明確地陳述限於單數形式,否則涵蓋複數形式。
400:非限制性實例程序
410:區塊
420:區塊
430:區塊
440:區塊
450:區塊
460:區塊

Claims (31)

  1. 一種能量支援之記憶體,其包含:一資料緩衝器;一持續儲存器;及一控制器,其經組態以控制該能量支援之記憶體的一總體操作,其中該資料緩衝器為揮發性,且該持續儲存器為非揮發性,其中該控制器經組態以自一主機接收一持續寫入(PWRITE)命令及一正常寫入(XWRITE)命令兩者,其中該PWRITE命令不同於該XWRITE命令,其中該資料緩衝器經組態以自該主機接收對應於該PWRITE命令之PWRITE資料,其中該控制器經進一步組態以將來自該資料緩衝器之該對應PWRITE資料儲存至該持續儲存器,其中該PWRITE命令為該對應PWRITE資料被要求為持續的命令,其中該資料緩衝器經組態以自該主機接收對應該XWRITE命令之XWRITE資料,且其中該XWRITE命令為該對應XWRITE資料並不被要求為持續的命令。
  2. 如請求項1之能量支援之記憶體,其中該控制器經組態以在執行一PWRITE操作以將該對應PWRITE資料儲存至該持續儲存器的過程中發生一錯誤時在一預定錯誤報告臨限持續 時間內將一錯誤回應(W_ERR)發送回至該主機,且其中當該PWRITE操作成功時,無回應發送至該主機。
  3. 如請求項1之能量支援之記憶體,其中來自該主機之該PWRITE命令並不包括識別與該對應PWRITE資料相關聯之一特定資料群組的一工作群組ID(WGID)。
  4. 如請求項1之能量支援之記憶體,其中該控制器經組態以:自該主機接收一FLUSH命令,將尚未儲存至該持續儲存器的所有PWRITE命令之該資料緩衝器中之該PWRITE資料清空至該持續儲存器,及在完成該PWRITE資料自該資料緩衝器清空之後便將一持續寫入回應(W_PERS)發送回至該主機。
  5. 如請求項4之能量支援之記憶體,其中來自該主機之該FLUSH命令並不包括識別待清空之該PWRITE資料之一特定資料群組的一工作群組ID(WGID)。
  6. 如請求項4之能量支援之記憶體,其中該FLUSH命令為一FLUSH ALL命令,且其中該控制器經組態以:將尚未儲存至該持續儲存器的所有正常寫入(XWRITE)命令之該資料緩衝器中之該XWRITE資料清空至該持續儲存器,及 在完成該PWRITE資料及該XWRITE資料自該資料緩衝器清空之後便將該W_PERS發送回至該主機。
  7. 如請求項1之能量支援之記憶體,其進一步包含一快取記憶體,其中該快取記憶體為揮發性,且其中該控制器經組態以將來自該資料緩衝器之該對應PWRITE資料儲存至該快取記憶體。
  8. 如請求項7之能量支援之記憶體,其中該控制器經組態以在將該對應PWRITE資料儲存至該快取記憶體及該持續儲存器的過程中實施一直寫快取策略及一回寫快取策略中的一者。
  9. 如請求項8之能量支援之記憶體,其中該主機向該能量支援之記憶體指定實施該直寫快取策略抑或該回寫快取策略。
  10. 如請求項7之能量支援之記憶體,其中該控制器經組態以:自該主機接收一FLUSH命令,將尚未儲存至該持續儲存器的所有PWRITE命令之該資料緩衝器中及該快取記憶體中之該PWRITE資料清空至該持續儲存器,及在完成該PWRITE資料自該資料緩衝器且自該快取記憶體清空之後便將一持續寫入回應(W_PERS)發送回至該主機。
  11. 如請求項10之能量支援之記憶體,其中來自該主機之該FLUSH命令 並不包括識別待清空之該PWRITE資料之一特定資料群組的一工作群組ID(WGID)。
  12. 如請求項10之能量支援之記憶體,其中該FLUSH命令為一FLUSH ALL命令,且其中該控制器經組態以:將尚未儲存至該持續儲存器的所有正常寫入(XWRITE)命令之該資料緩衝器中及該快取記憶體中之該XWRITE資料清空至該持續儲存器,及在完成該PWRITE資料及該XWRITE資料自該資料緩衝器且自該快取記憶體清空之後便將該W_PERS發送回至該主機。
  13. 如請求項1之能量支援之記憶體,其中該能量支援之記憶體併入至選自由以下各者組成之一群組的一裝置中:一音樂播放器、一視訊播放器、一娛樂單元、一導航裝置、一通信裝置、一行動裝置、一行動電話、一智慧型電話、一個人數位助理、一固定位置終端機、一平板電腦、一電腦、一穿戴型裝置、一膝上型電腦、一伺服器,及一汽車載具中的一裝置。
  14. 一種將資料儲存在能量支援之記憶體之方法,其包含:在一能量支援之記憶體處自一主機接收一持續寫入(PWRITE)命令及對應PWRITE資料,該對應PWRITE資料在該能量支援之記憶體的一資料緩衝器處接收到;在該能量支援之記憶體處自該主機接收一正常寫入(XWRITE)命令及 對應XWRITE資料,該對應XWRITE資料在該能量支援之記憶體的該資料緩衝器處接收到;及由該能量支援之記憶體將來自該資料緩衝器之該對應PWRITE資料儲存至該能量支援之記憶體的一持續儲存器,其中該資料緩衝器為揮發性,且該持續儲存器為非揮發性,其中該PWRITE命令不同於該XWRITE命令,其中該PWRITE命令為該對應PWRITE資料被要求為持續的命令,且其中該XWRITE命令為該對應XWRITE資料並不被要求為持續的命令。
  15. 如請求項14之方法,其進一步包含:在將該對應PWRITE資料儲存至該持續儲存器的過程中發生一錯誤時,由該能量支援之記憶體在一預定錯誤報告臨限持續時間內將一錯誤回應(W_ERR)發送回至該主機,及其中在該對應PWRITE資料成功地儲存至該持續儲存器時,無訊息發送至該主機。
  16. 如請求項14之方法,其中來自該主機之該PWRITE命令並不包括識別與該對應PWRITE資料相關聯之一特定資料群組的一工作群組ID(WGID)。
  17. 如請求項14之方法,其進一步包含:在該能量支援之記憶體處自該主機接收一FLUSH命令; 由該能量支援之記憶體將尚未儲存至該持續儲存器的所有PWRITE命令之該資料緩衝器中之該PWRITE資料清空至該持續儲存器;及在完成該PWRITE資料自該資料緩衝器清空之後便由該能量支援之記憶體將一持續寫入回應(W_PERS)發送回至該主機。
  18. 如請求項17之方法,其中來自該主機之該FLUSH命令並不包括識別待清空之該PWRITE資料之一特定資料群組的一工作群組ID(WGID)。
  19. 如請求項17之方法,其中該FLUSH命令為一FLUSH ALL命令,該方法進一步包含:由該能量支援之記憶體將尚未儲存至該持續儲存器的所有正常寫入(XWRITE)命令之該資料緩衝器中之該XWRITE資料清空至該持續儲存器;及由該能量支援之記憶體在完成該PWRITE資料及該XWRITE資料自該資料緩衝器清空之後便將該W_PERS發送回至該主機。
  20. 如請求項14之方法,其進一步包含由該能量支援之記憶體將來自該資料緩衝器之該對應PWRITE資料儲存至該能量支援之記憶體的一快取記憶體,其中該快取記憶體為揮發性。
  21. 如請求項20之方法,其中該將該對應PWRITE資料儲存至該快取記憶體及該持續儲存器的實施為一直寫快取策略及一回寫快取策略中的一 者。
  22. 如請求項21之方法,其中該主機向該能量支援之記憶體指定實施該直寫快取策略抑或該回寫快取策略。
  23. 如請求項20之方法,其進一步包含:在該能量支援之記憶體處自該主機接收一FLUSH命令;由該能量支援之記憶體將尚未儲存至該持續儲存器的所有PWRITE命令之該資料緩衝器中及該快取記憶體中之該PWRITE資料清空至該持續儲存器;及由該能量支援之記憶體在完成該PWRITE資料自該資料緩衝器且自該快取記憶體清空之後便將一持續寫入回應(W_PERS)發送回至該主機。
  24. 如請求項23之方法,其中來自該主機之該FLUSH命令並不包括識別待清空之該PWRITE資料之一特定資料群組的一工作群組ID(WGID)。
  25. 如請求項23之方法,其中該FLUSH命令為一FLUSH ALL命令,該方法進一步包含:由該能量支援之記憶體將尚未儲存至該持續儲存器的所有正常寫入(XWRITE)命令之該資料緩衝器中及該快取記憶體中之該XWRITE資料清空至該持續儲存器;及由該能量支援之記憶體在完成該PWRITE資料及該XWRITE資料自 該資料緩衝器且自該快取記憶體清空之後便將該W_PERS發送回至該主機。
  26. 一種能量支援之記憶體,其包含:一資料緩衝器;一持續儲存器;及一控制器,其經組態以控制該能量支援之記憶體的一總體操作,其中該控制器包含:用於自一主機接收一持續寫入(PWRITE)命令及一正常寫入(XWRITE)命令的構件,其中對應PWRITE資料及對應XWRITE資料分別在該資料緩衝器處自該主機接收到;及用於將來自該資料緩衝器之該對應PWRITE資料儲存至該持續儲存器的構件,其中該資料緩衝器為揮發性,且該持續儲存器為非揮發性,其中該PWRITE命令不同於該XWRITE命令,其中該PWRITE命令為該對應PWRITE資料被要求為持續的命令,且其中該XWRITE命令為該對應XWRITE資料並不被要求為持續的命令。
  27. 如請求項26之能量支援之記憶體,其中該控制器進一步包含用於在將該對應PWRITE資料儲存至該持續儲存器的過程中發生一錯誤時在一預定錯誤報告臨限持續時間內將一錯誤回應(W_ERR)發送回至該主機的構件,且 其中在該對應PWRITE資料成功地儲存至該持續儲存器時,無回應發送至該主機。
  28. 如請求項26之能量支援之記憶體,其中來自該主機之該PWRITE命令並不包括識別與該對應PWRITE資料相關聯之一特定資料群組的一工作群組ID(WGID)。
  29. 如請求項26之能量支援之記憶體,其中該控制器進一步包含:用於自該主機接收一FLUSH命令的構件,用於將尚未儲存至該持續儲存器的所有PWRITE命令之該資料緩衝器中之該PWRITE資料清空至該持續儲存器的構件,及用於在完成該PWRITE資料自該資料緩衝器清空之後便將一持續寫入回應(W_PERS)發送回至該主機的構件,且其中當該FLUSH命令為一FLUSH ALL命令時,該用於清空的構件亦將尚未儲存至該持續儲存器的所有正常寫入(XWRITE)命令之該資料緩衝器中之XWRITE資料清空至該持續儲存器,且該用於發送的構件在完成該PWRITE資料及該XWRITE資料自該資料緩衝器清空之後便將該W_PERS發送回至該主機。
  30. 如請求項26之能量支援之記憶體,其進一步包含一快取記憶體,其中該快取記憶體為揮發性,且 其中該用於儲存的構件將來自該資料緩衝器之該對應PWRITE資料儲存至該快取記憶體。
  31. 如請求項30之能量支援之記憶體,其中該控制器進一步包含:用於自該主機接收一FLUSH命令的構件,用於將尚未儲存至該持續儲存器的所有PWRITE命令之該資料緩衝器中及該快取記憶體中之該PWRITE資料清空至該持續儲存器的構件,及用於在完成該PWRITE資料自該資料緩衝器且自該快取記憶體清空之後便將一持續寫入回應(W_PERS)發送回至該主機的構件,且其中當該FLUSH命令為一FLUSH ALL命令時,該用於清空的構件亦將尚未儲存至該持續儲存器的所有正常寫入(XWRITE)命令之該資料緩衝器中及該快取記憶體中之該XWRITE資料清空至該持續儲存器,且該用於發送的構件在完成該PWRITE資料及該XWRITE資料自該資料緩衝器且自該快取記憶體清空之後便將該W_PERS發送回至該主機。
TW108114952A 2018-05-01 2019-04-29 用於儲存持續寫入資料之能量支援之記憶體及方法 TWI758605B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/968,738 US11016669B2 (en) 2018-05-01 2018-05-01 Persistent write data for energy-backed memory
US15/968,738 2018-05-01

Publications (2)

Publication Number Publication Date
TW201945933A TW201945933A (zh) 2019-12-01
TWI758605B true TWI758605B (zh) 2022-03-21

Family

ID=66448636

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108114952A TWI758605B (zh) 2018-05-01 2019-04-29 用於儲存持續寫入資料之能量支援之記憶體及方法

Country Status (6)

Country Link
US (1) US11016669B2 (zh)
EP (1) EP3788491A1 (zh)
KR (1) KR102335838B1 (zh)
CN (1) CN112384899A (zh)
TW (1) TWI758605B (zh)
WO (1) WO2019212971A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN110058964B (zh) * 2018-01-18 2023-05-02 伊姆西Ip控股有限责任公司 数据恢复方法、数据恢复系统和计算机可读介质
KR20200127793A (ko) * 2019-05-03 2020-11-11 에스케이하이닉스 주식회사 메모리 장치의 캐시 시스템 및 캐시 시스템의 데이터 캐싱 방법
US11210225B2 (en) * 2019-11-25 2021-12-28 Micron Technology, Inc. Pre-fetch for memory sub-system with cache where the pre-fetch does not send data and response signal to host
US11397677B2 (en) * 2020-04-30 2022-07-26 Hewlett Packard Enterprise Development Lp System and method for tracking persistent flushes
US11886744B2 (en) * 2021-12-15 2024-01-30 Nvidia Corporation Systems, methods, and apparatuses for making writes to persistent memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254453A1 (en) * 2010-11-29 2013-09-26 Kazuki Sato Computer system, and switch and packet transfer control method used therein
US20150029808A1 (en) * 2013-07-23 2015-01-29 Western Digital Technologies, Inc. Power fail protection and recovery using low power states in a data storage device/system
TW201624279A (zh) * 2014-09-26 2016-07-01 英特爾股份有限公司 持續儲存屏障處理器、方法、系統及指令
US9529543B1 (en) * 2015-12-02 2016-12-27 International Business Machines Corporation Concurrent upgrade and backup of non-volatile memory
TW201732552A (zh) * 2015-12-22 2017-09-16 英特爾股份有限公司 異動結束加上提交持續性的指令、處理器、方法和系統
US20180095879A1 (en) * 2016-09-30 2018-04-05 Super Micro Computer, Inc. Memory type range register with write-back cache strategy for nvdimm memory locations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765361B2 (en) * 2006-11-21 2010-07-27 Microsoft Corporation Enforced transaction system recoverability on media without write-through
US20100061207A1 (en) * 2008-09-09 2010-03-11 Seagate Technology Llc Data storage device including self-test features
WO2013095437A1 (en) 2011-12-21 2013-06-27 Intel Corporation System and method for intelligently flushing data from a processor into a memory subsystem
WO2013119212A1 (en) * 2012-02-07 2013-08-15 Intel Corporation Deterministic method to support multiple producers with multiple consumers in peer or hierarchical systems
US9081606B2 (en) * 2012-11-13 2015-07-14 International Business Machines Corporation Asynchronous persistent stores for transactions
US9471494B2 (en) 2013-12-20 2016-10-18 Intel Corporation Method and apparatus for cache line write back operation
US10719236B2 (en) 2015-11-20 2020-07-21 Arm Ltd. Memory controller with non-volatile buffer for persistent memory operations
US20170177276A1 (en) * 2015-12-21 2017-06-22 Ocz Storage Solutions, Inc. Dual buffer solid state drive
US10565108B2 (en) * 2017-05-23 2020-02-18 Dell Products, L.P. Write-back cache for storage controller using persistent system memory
US10482010B2 (en) * 2017-06-29 2019-11-19 Intel Corporation Persistent host memory buffer
US10942658B2 (en) * 2017-10-26 2021-03-09 Insyde Software Corp. System and method for dynamic system memory sizing using non-volatile dual in-line memory modules
KR102353859B1 (ko) * 2017-11-01 2022-01-19 삼성전자주식회사 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US10545882B2 (en) * 2018-01-29 2020-01-28 Dell Products L.P. Systems and methods for load-balancing cache flushes to non-volatile memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254453A1 (en) * 2010-11-29 2013-09-26 Kazuki Sato Computer system, and switch and packet transfer control method used therein
US20150029808A1 (en) * 2013-07-23 2015-01-29 Western Digital Technologies, Inc. Power fail protection and recovery using low power states in a data storage device/system
TW201624279A (zh) * 2014-09-26 2016-07-01 英特爾股份有限公司 持續儲存屏障處理器、方法、系統及指令
US9529543B1 (en) * 2015-12-02 2016-12-27 International Business Machines Corporation Concurrent upgrade and backup of non-volatile memory
TW201732552A (zh) * 2015-12-22 2017-09-16 英特爾股份有限公司 異動結束加上提交持續性的指令、處理器、方法和系統
US20180095879A1 (en) * 2016-09-30 2018-04-05 Super Micro Computer, Inc. Memory type range register with write-back cache strategy for nvdimm memory locations

Also Published As

Publication number Publication date
US20190339865A1 (en) 2019-11-07
TW201945933A (zh) 2019-12-01
KR20210003225A (ko) 2021-01-11
KR102335838B1 (ko) 2021-12-06
US11016669B2 (en) 2021-05-25
EP3788491A1 (en) 2021-03-10
CN112384899A (zh) 2021-02-19
WO2019212971A1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
TWI758605B (zh) 用於儲存持續寫入資料之能量支援之記憶體及方法
CN106997324B (zh) 非易失性存储器模块、具有其的计算系统及其操作方法
TW201923588A (zh) 用於非揮發性記憶體之寫入信用管理
US11550678B2 (en) Memory management
US11294814B2 (en) Memory system having a memory controller and a memory device having a page buffer
US10101933B2 (en) Controller and memory system
US20160202936A1 (en) Data management on memory modules
US10853241B2 (en) Data storing method and data storing apparatus for reducing power consumption in sudden power-off
US20210334037A1 (en) Integrated circuit memory devices with enhanced buffer memory utilization during read and write operations and methods of operating same
US10795594B2 (en) Storage device
US11556268B2 (en) Cache based flow for a simple copy command
TW201818252A (zh) 對資料之記憶體操作
US11126379B2 (en) Memory system
US10490237B2 (en) Data storage device and method of operating the same
KR20140128823A (ko) 멀티-트랜잭션의 아토믹 라이트 방법
US12045506B2 (en) Combining operations during reset
US10452312B2 (en) Apparatus, system, and method to determine a demarcation voltage to use to read a non-volatile memory
US20210333996A1 (en) Data Parking for SSDs with Streams
US20140149646A1 (en) Memory systems including flash memories, first buffer memories, second buffer memories and memory controllers and methods for operating the same
US10628322B2 (en) Memory system and operating method thereof
US11656996B2 (en) Controller for managing order information of data, operation method thereof, and memory system including the same
US20240354256A1 (en) Cmb caching using hybrid sram/dram data path
US20230315285A1 (en) Storage Optimization Of CAT Table During Background Operations
US20230315689A1 (en) Optimized Autonomous Defragmentation Of Storage Devices