CN111095224A - 用于非易失性存储器的持续写入 - Google Patents
用于非易失性存储器的持续写入 Download PDFInfo
- Publication number
- CN111095224A CN111095224A CN201880058881.9A CN201880058881A CN111095224A CN 111095224 A CN111095224 A CN 111095224A CN 201880058881 A CN201880058881 A CN 201880058881A CN 111095224 A CN111095224 A CN 111095224A
- Authority
- CN
- China
- Prior art keywords
- persistent
- write
- memory system
- host
- persistent write
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 230000002085 persistent effect Effects 0.000 title claims abstract description 243
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000002688 persistence Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 230000009977 dual effect Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 230000002459 sustained effect Effects 0.000 abstract description 5
- 230000004044 response Effects 0.000 description 24
- 239000000872 buffer Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000010926 purge Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 102100037354 Ectodysplasin-A Human genes 0.000 description 2
- 101000880080 Homo sapiens Ectodysplasin-A Proteins 0.000 description 2
- 208000031339 Split cord malformation Diseases 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000004146 energy storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000004645 scanning capacitance microscopy Methods 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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)
- Human Computer Interaction (AREA)
- Quality & Reliability (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。
例如,示范性方面是针对一种执行持续操作的方法,所述方法包括在存储器系统处从主机接收持续写入命令己相关联写入数据,及基于持续写入命令执行将写入数据持续写入到存储器系统中的非易失性存储器。
另一示范性方面是针对一种执行持续操作的方法,所述方法包括从主机到存储器系统提供持续写入命令及相关联写入数据,其中持续写入命令指示存储器系统执行将写入数据持续写入到非易失性存储器。
另一示范性方面是针对一种设备,其包括:存储器系统,其经配置以从主机接收持续写入命令及相关联写入数据,且基于持续写入命令执行将写入数据持续写入到存储器系统中的非易失性存储器。
另一示范性方面是针对一种设备,其包括:主机,其经配置以向存储器系统提供持续写入命令及相关联写入数据,其中持续写入命令向存储器系统指示执行将写入数据持续写入到非易失性存储器。
另一示范性方面是针对一种设备,其包括用于存储数据的装置,其包含用于从主机接收持续写入命令及相关联写入数据的装置,以及用于基于持续写入命令执行将写入数据持续写入到用于存储的装置中的非易失性存储器的装置。
另一示范性方面是针对一种设备,其包括:用于处理的装置,其包括用于向存储器系统提供持续写入命令及相关联写入数据的装置,其中持续写入命令向存储器系统指示执行将写入数据持续写入到非易失性存储器。
另一示范性方面是针对一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时致使处理器执行持续操作,暂时计算机可读存储媒体包括用于在存储器系统处接收来自主机的持续写入命令及相关联写入数据的代码,以及用于基于持续写入命令执行将写入数据持续写入到存储器系统中的非易失性存储器的代码。
另一示范性方面是针对一种包含代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时致使处理器执行持续操作,暂时计算机可读存储媒体包括用于将持续写入命令及相关联写入数据从主机提供到存储器系统的代码,其中持续写入命令向存储器系统指示执行将写入数据持续写入到非易失性存储器。
附图说明
附图经呈现以辅助对本发明的方面的描述且仅提供用于说明方面而非对其的限制。
图1说明根据本发明的方面的处理系统。
图2A到C说明根据本发明的各个方面的用于处置持续写入的事务。
图3说明根据本发明的持续写入命令的实例性编码。
图4A到B说明根据本发明的方面的与执行持续写入的示范性方法有关的事件序列。
图5描绘可有利采用本发明的方面的示范性计算装置。
具体实施方式
在以下描述及针对本发明的特定方面的相关图式中公开本发明的方面。可设计替代方面而不脱离本发明的范围。另外,本发明的常规元件将不详细描述或将被省略以便不混淆本发明的相关细节。
措词“示范性”在本文中用于意指“用作实例、例项或说明”。本文中描述为“示范性”的任一方面未必解释为比其它方面优选或有利。同样地,术语“本发明的方面”不需要本发明的所有方面包含所论述的特征、优点或操作模式。
本文中所使用的术语为仅出于描述特定方面的目的且并不打算为限制本发明的方面。如本文中所使用,除非上下文另有明确指示,否则单数形式“一”及“所述”打算包含复数形式。将进一步理解,术语“包括”及/或“包含”在本文中使用时规定所述特征、整数、步骤、操作、元件及/或组件的存在,但不排除存在或添加一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组。
此外,诸多方面就由(例如)计算装置的元件执行系列动作方面加以描述。应认识到,本文中所描述的各种动作可通过特定电路(例如,专用集成电路(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_Per204c经展示以与存储器系统130接收持续写入202a及204a不同的次序发送,以说明响应不需要按程序次序或按照从主机120接收持续写入请求次序。在一个方面中,存储器系统130可在响应116上确证信号“Req”以及对于Wr_Per响应的消息“Write_Rdy”的适当编码。
此外,主机120还可经配置以在任何时间发出用参考标号206a指定的“关于WID的发送状态”命令以确定其未完成的持续写入的状态。作为响应,存储器系统130可经配置以发出具有完整持续写入的WID的状态包,例如,经由DQ 112的突发长度8或“BL8”传送。
如先前所提及,在每一64B状态包中可打包多达31个WID 210,其中对于每一WID210,可为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或FLUSH252a、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_Status256b的响应中的那个时间实例(在此状况下为260b)处的WGID完成的位图260的快照发送到主机120。快照可包括直到WGID_Status256b开始所发出的W_PER的完成传送到主机120。
在某些方面中,快照中记录至少1次完成。存储器系统130基于在WGID_Status256b中发送的完成来清除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_PER254b经显示为发出而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-STATUS274a之前的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论述其中可利用本发明的方面的实例性设备。图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可耦合到CODEC534;及无线天线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或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器使得所述处理器可从所述存储媒体读取信息且将信息写入到所述存储媒体。在替代方案中,所述存储媒体可与处理器成整体。
因此,本发明的方面可包含体现执行持续写入的方法的计算机可读媒体。因此,本发明并不限于所说明实例且用于执行本文中所描述的功能性的任何装置被包含在本发明的方面中。
虽然前述公开内容展示本发明的说明性方面,但应注意,可在本文中作出各种改变及修改而不脱离如随附权利要求书所界定的本发明的范围。根据本文中所描述的本发明的方面的方法请求项的功能、步骤及/或动作不需要以任何特定次序执行。此外,尽管本发明的元件可以单数形式进行描述或主张,但涵盖复数形式,除非明确地陈述对单数形式的限制。
Claims (52)
1.一种执行持续操作的方法,所述方法包括:
在存储器系统处接收来自主机的持续写入命令及相关联写入数据;及
基于所述持续写入命令执行将所述写入数据的持续写入到所述存储器系统中的非易失性存储器。
2.根据权利要求1所述的方法,其进一步包括:从所述主机接收与所述持续写入命令相关联的写入标识WID。
3.根据权利要求2所述的方法,其进一步包括:在成功完成所述持续写入时,从所述存储器系统向所述主机提供持续写入完成指示连同所述相关联WID。
4.根据权利要求3所述的方法,其包括:以与从所述主机接收对应的两个或多于两个持续写入命令的次序不同的次序向所述主机提供两个或多于两个持续写入完成指示。
5.根据权利要求3所述的方法,其进一步包括:从所述主机接收发送关于一或多个持续写入的状态连同相关联WID的请求。
6.根据权利要求5所述的方法,其进一步包括:向所述主机提供状态包,所述状态包包括关于执行已被完成的持续写入命令的WID。
7.根据权利要求2所述的方法,其中所述WID包括持续写入的多位标识及有效位。
8.根据权利要求2所述的方法,其进一步包括:接收具有共同WID的两个或多于两个持续写入命令的群组,其中所述群组的最后持续写入命令具有设定为1的持续位,且剩余持续写入命令具有设定为0的相应持续位且为所述最后持续写入命令提供持续写入完成指示。
9.根据权利要求1所述的方法,其进一步包括:从所述主机接收FLUSH命令,其中所述FLUSH命令指示将在易失性媒体中缓冲的所有先前写入推送到非易失性或持续存储器。
10.根据权利要求9所述的方法,其进一步包括:在完成对所述主机执行所述FLUSH命令时提供FLUSH完成指示。
11.根据权利要求1所述的方法,其进一步包括:接收一或多个持续写入命令,维持在完成的位图中完成的所述一或多个持续写入命令的状态以及在待决位图中待决的所述一或多个持续写入命令的状态,且根据来自所述主机的对状态的请求,如果不存在无法校正的错误,那么提供所述完成的位图;如果存在无法校正的错误,那么提供所述待决位图。
12.根据权利要求1所述的方法,其中所述存储器系统为非易失性双列直插式存储器模块,其经配置以支持持续写入NVDIMM-P。
13.一种执行持续操作的方法,所述方法包括:
从主机到存储器系统提供持续写入命令及相关联写入数据,
其中所述持续写入命令向所述存储器系统指示执行将所述写入数据的持续写入到非易失性存储器。
14.根据权利要求13所述的方法,其进一步包括:从所述主机向所述存储器系统提供与所述持续写入命令相关联的写入标识WID。
15.根据权利要求14所述的方法,其进一步包括:在成功完成所述持续写入时,在所述主机处接收来自所述存储器系统的持续写入完成指示连同所述相关联WID。
16.根据权利要求15所述的方法,其包括以与从所述主机向所述存储器系统发送对应的两个或多于两个持续写入命令的次序不同的次序从所述存储器系统接收两个或多于两个持续写入完成指示。
17.根据权利要求14所述的方法,其进一步包括:从所述主机到所述存储器系统发送对发送关于一或多个持续写入的状态连同相关联WID的请求。
18.根据权利要求17所述的方法,其进一步包括:通过所述主机从所述存储器系统接收状态包,所述状态包包括关于执行已被完成的持续写入命令的WID。
19.根据权利要求14所述的方法,其中所述WID包括持续写入的多位标识及有效位。
20.根据权利要求14所述的方法,其进一步包括从所述主机到所述存储器系统发送具有共同WID的两个或多于两个持续写入命令的群组,其中所述群组的最后持续写入命令具有设定为1的持续位且剩余持续写入具有设定为0的相应持续位且从所述存储器系统接收关于所述最后持续写入的持续写入完成指示。
21.根据权利要求13所述的方法,其进一步包括:从所述主机到所述存储器系统发送FLUSH命令,其中所述FLUSH命令指示通过所述存储器系统将在易失性媒体中缓冲的所有先前写入推送到非易失性或持续存储器。
22.根据权利要求21所述的方法,其进一步包括:在通过所述存储器系统完成所述FLUSH命令的执行时,在所述主机处接收FLUSH完成指示。
23.根据权利要求13所述的方法,其中所述存储器系统为非易失性双列直插式存储器模块,其经配置以支持持续写入NVDIMM-P。
24.一种设备,其包括:
存储器系统,其经配置以:
从主机接收持续写入命令及相关联写入数据;及
基于所述持续写入命令执行将所述写入数据的持续写入到所述存储器系统中的非易失性存储器。
25.根据权利要求24所述的设备,其中所述存储器系统经进一步配置以从所述主机接收与所述持续写入命令相关联的写入标识WID。
26.根据权利要求25所述的设备,其中所述存储器系统经进一步配置以在成功完成所述持续写入时,向所述主机提供持续写入完成指示连同所述相关联WID。
27.根据权利要求26所述的设备,其中所述存储器系统经进一步配置从而以与从所述主机接收对应的两个或多于两个持续写入命令的次序不同的次序向所述主机提供两个或多于两个持续写入完成指示。
28.根据权利要求26所述的设备,其中所述存储器系统经进一步配置以从所述主机接收发送关于一或多个持续写入的状态连同相关联WID的请求。
29.根据权利要求27所述的设备,其中所述存储器系统经进一步配置以向所述主机提供状态包,所述状态包包括关于执行已被完成的持续写入命令的WID。
30.根据权利要求25所述的设备,其中所述WID包括持续写入的多位标识及有效位。
31.根据权利要求25所述的设备,其中所述存储器系统经进一步配置以接收具有共同WID的两个或多于两个持续写入命令的群组,其中所述群组的最后持续写入命令具有设定为1的持续位,且剩余持续写入命令具有设定为0的相应持续位且为所述最后持续写入命令提供持续写入完成指示。
32.根据权利要求24所述的设备,其中所述存储器系统经进一步配置以从所述主机接收FLUSH命令,其中所述FLUSH命令指示将在易失性媒体中缓冲的所有先前写入推送到非易失性或持续存储器。
33.根据权利要求32所述的设备,其中所述存储器系统经进一步配置以在完成对所述主机执行所述FLUSH命令时提供FLUSH完成指示。
34.根据权利要求24所述的设备,其中所述存储器系统经进一步配置以接收一或多个持续写入命令,维持在完成的位图中完成的所述一或多个持续写入命令的状态以及在待决位图中待决的所述一或多个持续写入命令的状态,且根据来自所述主机的对状态的请求,如果不存在无法校正的错误,那么提供所述完成的位图;如果存在无法校正的错误,那么提供所述待决位图。
35.根据权利要求24所述的设备,其中所述存储器系统为非易失性双列直插式存储器模块,其经配置以支持持续写入NVDIMM-P。
36.根据权利要求24所述的设备,其集成到选自由以下各项组成的群组的装置:机顶盒、服务器、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置及移动电话。
37.一种设备,其包括:
主机,其经配置以向存储器系统提供持续写入命令及相关联写入数据,
其中所述持续写入命令向所述存储器系统指示执行将所述写入数据的持续写入到非易失性存储器。
38.根据权利要求37所述的设备,其中所述主机经进一步配置以向所述存储器系统提供与所述持续写入命令相关联的写入标识WID。
39.根据权利要求38所述的设备,其中所述主机经进一步配置以在成功完成所述持续写入时,接收来自所述存储器系统的持续写入完成指示连同所述相关联WID。
40.根据权利要求39所述的设备,其中所述主机经进一步配置以与向所述存储器系统发送对应的两个或多于两个持续写入命令的次序不同的次序从所述存储器系统接收两个或多于两个持续写入完成指示。
41.根据权利要求38所述的设备,其中所述主机经进一步配置以向所述存储器系统发送对发送关于一或多个持续写入的状态连同相关联WID的请求。
42.根据权利要求41所述的设备,其中所述主机经进一步配置以从所述存储器系统接收状态包,所述状态包包括关于执行已被完成的持续写入命令的WID。
43.根据权利要求42所述的设备,其中所述WID包括持续写入的多位标识及有效位。
44.根据权利要求38所述的设备,其中所述主机经进一步配置以向所述存储器系统发送具有共同WID的两个或多于两个持续写入命令的群组,其中所述群组的最后持续写入命令具有设定为1的持续位且剩余持续写入具有设定为0的相应持续位,且从所述存储器系统接收关于所述最后持续写入的持续写入完成指示。
45.根据权利要求37所述的设备,其中所述主机经进一步配置以向所述存储器系统发送FLUSH命令,其中所述FLUSH命令指示通过所述存储器系统将在易失性媒体中缓冲的所有先前写入推送到非易失性或持续存储器。
46.根据权利要求45所述的设备,其中所述主机经进一步配置以在通过所述存储器系统完成所述FLUSH命令的执行时,接收FLUSH完成指示。
47.根据权利要求37所述的设备,其中所述存储器系统为非易失性双列直插式存储器模块,其经配置以支持持续写入NVDIMM-P。
48.根据权利要求37所述的设备,其集成到选自由以下各项组成的群组的装置:机顶盒、服务器、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置及移动电话。
49.一种设备,其包括:
用于存储数据的装置,其包括:
用于从主机接收持续写入命令及相关联写入数据的装置;及
用于基于所述持续写入命令执行将所述写入数据的持续写入到所述用于存储的装置中的非易失性存储器的装置。
50.一种设备,其包括:
用于处理的装置,其包括:
用于向存储器系统提供持续写入命令及相关联写入数据的装置;
其中所述持续写入命令向所述存储器系统指示执行将所述写入数据的持续写入到非易失性存储器。
51.一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时致使所述处理器执行持续操作,所述暂时计算机可读存储媒体包括
用于在存储器系统处接收来自主机的持续写入命令及相关联写入数据的代码;及
用于基于所述持续写入命令执行将所述写入数据的持续写入到所述存储器系统中的非易失性存储器的代码。
52.一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时致使所述处理器执行持续操作,所述暂时计算机可读存储媒体包括
用于从主机到存储器系统提供持续写入命令及相关联写入数据的代码,
其中所述持续写入命令向所述存储器系统指示执行将所述写入数据的持续写入到非易失性存储器。
Applications Claiming Priority (3)
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 | ||
PCT/US2018/046590 WO2019055164A1 (en) | 2017-09-15 | 2018-08-14 | PERSISTENT SCRIPTURES FOR NON-VOLATILE MEMORY |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111095224A true CN111095224A (zh) | 2020-05-01 |
CN111095224B CN111095224B (zh) | 2023-11-14 |
Family
ID=63449690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880058881.9A Active CN111095224B (zh) | 2017-09-15 | 2018-08-14 | 用于非易失性存储器的持续写入 |
Country Status (24)
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) |
ES (1) | ES2971138T3 (zh) |
FI (1) | FI3682331T3 (zh) |
HU (1) | HUE065310T2 (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 |
---|---|---|---|---|
US20100070631A1 (en) * | 2008-09-15 | 2010-03-18 | Dell Products L.P. | System and Method for Management of Remotely Shared Data |
US20140136786A1 (en) * | 2012-11-13 | 2014-05-15 | International Business Machines Corporation | Asynchronous persistent stores for transactions |
US20160034225A1 (en) * | 2013-03-14 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Multiversioned nonvolatile memory hierarchy for persistent memory |
US20160188500A1 (en) * | 2014-12-25 | 2016-06-30 | Intel Corporation | Packed write completions |
US20170147207A1 (en) * | 2015-11-20 | 2017-05-25 | Arm Ltd. | Non-volatile buffer for memory operations |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000020957A1 (en) | 1998-10-02 | 2000-04-13 | Worldspace Management Corporation | System for providing a user with active and passive access to cached content |
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 |
US8677055B2 (en) * | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
US20130138915A1 (en) * | 2010-08-11 | 2013-05-30 | Nec Corporation | Data processing system, data processing method, and program |
US10817421B2 (en) * | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US8656130B2 (en) * | 2011-12-23 | 2014-02-18 | International Business Machines Corporation | Low latency and persistent data storage |
US9665521B2 (en) * | 2012-05-18 | 2017-05-30 | Dell Products, Lp | System and method for providing a processing node with input/output functionality by an I/O complex switch |
US9501398B2 (en) * | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9519551B2 (en) * | 2013-03-28 | 2016-12-13 | Microsoft Technology Licensing, Llc | Recovery processing for database in persistent system |
JP6192192B2 (ja) | 2013-07-26 | 2017-09-06 | インテル・コーポレーション | 不揮発性メモリインターフェース |
US9389976B2 (en) | 2014-04-09 | 2016-07-12 | Intel Corporation | Distributed persistent memory using asynchronous streaming of log records |
US9886194B2 (en) * | 2015-07-13 | 2018-02-06 | Samsung Electronics Co., Ltd. | NVDIMM adaptive access mode and smart partition mechanism |
US9946492B2 (en) * | 2015-10-30 | 2018-04-17 | Arm Limited | Controlling persistent writes to non-volatile memory based on persist buffer data and a persist barrier within a sequence of program instructions |
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 |
CN109729730B (zh) * | 2017-08-31 | 2020-09-04 | 华为技术有限公司 | 写入信息的方法和装置 |
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 DK DK18762704.7T patent/DK3682331T3/da active
- 2018-08-14 AU AU2018334452A patent/AU2018334452B2/en active Active
- 2018-08-14 KR KR1020207006858A patent/KR102425287B1/ko active IP Right Grant
- 2018-08-14 MX MX2020002897A patent/MX2020002897A/es unknown
- 2018-08-14 HU HUE18762704A patent/HUE065310T2/hu unknown
- 2018-08-14 CA CA3073686A patent/CA3073686C/en active Active
- 2018-08-14 PT PT187627047T patent/PT3682331T/pt unknown
- 2018-08-14 JP JP2020514756A patent/JP7123129B2/ja active Active
- 2018-08-14 FI FIEP18762704.7T patent/FI3682331T3/fi active
- 2018-08-14 IL IL272795A patent/IL272795B/en unknown
- 2018-08-14 ES ES18762704T patent/ES2971138T3/es active Active
- 2018-08-14 BR BR112020004936-0A patent/BR112020004936A2/pt unknown
- 2018-08-14 SI SI201831049T patent/SI3682331T1/sl unknown
- 2018-08-14 CN CN201880058881.9A patent/CN111095224B/zh active Active
- 2018-08-14 SG SG11202001491YA patent/SG11202001491YA/en unknown
- 2018-08-14 WO PCT/US2018/046590 patent/WO2019055164A1/en unknown
- 2018-08-14 EP EP18762704.7A patent/EP3682331B1/en active Active
- 2018-08-14 NZ NZ761924A patent/NZ761924A/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 SA SA520411521A patent/SA520411521B1/ar unknown
- 2020-03-12 CL CL2020000647A patent/CL2020000647A1/es 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 |
---|---|---|---|---|
US20100070631A1 (en) * | 2008-09-15 | 2010-03-18 | Dell Products L.P. | System and Method for Management of Remotely Shared Data |
US20140136786A1 (en) * | 2012-11-13 | 2014-05-15 | International Business Machines Corporation | Asynchronous persistent stores for transactions |
US20160034225A1 (en) * | 2013-03-14 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Multiversioned nonvolatile memory hierarchy for persistent memory |
US20160188500A1 (en) * | 2014-12-25 | 2016-06-30 | Intel Corporation | Packed write completions |
US20170147207A1 (en) * | 2015-11-20 | 2017-05-25 | Arm Ltd. | Non-volatile buffer for memory operations |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111095224B (zh) | 用于非易失性存储器的持续写入 | |
TWI769335B (zh) | 用於非揮發性記憶體之寫入信用管理之方法、設備及非暫時性電腦可讀儲存媒體 | |
US9965352B2 (en) | Separate link and array error correction in a memory system | |
JP2020166832A (ja) | ロウハンマ緩和のホスト支援のためのリフレッシュコマンド制御 | |
US20170192721A1 (en) | Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices | |
US9389953B2 (en) | Semiconductor memory device and system conducting parity check and operating method of semiconductor memory device | |
KR20180021729A (ko) | 저전력 메모리 서브-시스템의 메모리 어레이 및 링크 에러 정정 | |
US11016669B2 (en) | Persistent write data for energy-backed memory | |
US11314669B2 (en) | Deterministic operation of storage class memory | |
US11500581B2 (en) | Efficient TLP fragmentations in extended LBA environment | |
CN110720126B (zh) | 传输数据掩码的方法、内存控制器、内存芯片和计算机系统 | |
RU2780441C2 (ru) | Постоянные записи для энергонезависимой памяти | |
EP3610379B1 (en) | Transaction identification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40019108 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |