CN111279327B - 用于非易失性存储器的写入信用管理 - Google Patents
用于非易失性存储器的写入信用管理 Download PDFInfo
- Publication number
- CN111279327B CN111279327B CN201880070480.5A CN201880070480A CN111279327B CN 111279327 B CN111279327 B CN 111279327B CN 201880070480 A CN201880070480 A CN 201880070480A CN 111279327 B CN111279327 B CN 111279327B
- Authority
- CN
- China
- Prior art keywords
- write
- memory system
- write buffer
- credit
- host device
- 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.)
- Active
Links
- 239000000872 buffer Substances 0.000 claims abstract description 128
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000002085 persistent effect Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 17
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Memory System (AREA)
Abstract
用于在主机设备与包括非易失性存储器(NVM)的存储器系统的介质控制器之间同步写入信用的系统和方法,其中主机设备被配置为维护在主机设备的存储器控制器中实施的写入信用(WC)计数器。WC计数器跟踪并且限制可能向NVM发出的未完成的写入命令的数目。主机设备可以查询存储器系统以获得介质控制器中的可用写入缓冲器空间的状态,并且基于从存储器系统发送的读取分组的元数据中报告的写入缓冲器空间中的任何检测到的错误来调整WC计数器。
Description
相关申请的交叉引用
本专利申请要求于2017年10月31日提交的题为“WRITE CREDITS MANAGEMENT FORNON-VOLATILE MEMORY”的待决的并且转让给本专利申请的受让人的临时专利申请No.62/579,715的权益,该临时专利申请据此以其整体通过引用明确地并入本文。
技术领域
所公开的各方面涉及管理针对非易失性存储器系统的写入操作。更特别地,本公开的示例性方面涉及用于写入操作的写入信用的使用和管理,这些写入操作涉及非易失性存储器,诸如非易失性双列直插存储器模块(NVDIMM)和持久性NVDIMM(NVDIMM-P)。
背景技术
对于一些存储器系统,存在对其写入操作的持久性的期望,这意味着,即使例如当持久性写入操作的执行在进行中并且尚未完成时,存在断电或系统崩溃,写入到存储器系统并且被分类为持久性写入的信息也不会丢失。为了使写入操作是持久性的,请求写入操作的主机(例如,处理器)或其应用可以期望有写入操作已经到达持久性存储器的明确确认。相比之下,从应用的视角来看,一旦写入操作和相关联的数据已经被传送到存储器,对非持久性存储器(诸如动态随机访问存储器(DRAM)或其他易失性存储器)的写入操作常规地被认为已经完成或发布,并且不要求数据已经被写入的明确确认。
如本领域中已知的,诸如包括一系列DRAM集成电路的非易失性双列直插存储器模块(NVDIMM)等非易失性存储器(NVM)可以被配置为支持持久性写入。例如,NVDIMM在支持持久性写入的一种实施方式中可以得到能量支持,但是用于支持持久性写入的其他实施方式也是已知的。支持持久性写入的NVDIMM也称为NVDIMM-P。主机设备可以被配置为向包括NVM(诸如NVDIMM-P)的存储器系统发送写入请求,这些写入请求包括对于持久性写入的请求。被配置为管理NVDIMM-P的读取/写入访问的介质控制器可以被集成在存储器系统中,其中介质控制器可以被配置为从主机设备接收写入请求并且基于用以支持写入请求的可用资源,例如,基于介质控制器中的可用写入缓冲器空间,将写入请求定向到NVDIMM-P。
然而,在常规的实施方式中,从介质控制器到NVM(例如,NVDIMM-P)的写入性能可能很差,并且写入操作的速度可能很慢。这是因为,在常规的实施方式中,当介质控制器将写入操作退出或传送到NVM时,介质控制器释放对应的写入缓冲器空间,其中释放的写入缓冲器空间进而被转换为写入信用以返回给主机设备。主机设备上的存储器控制器可以被配置为基于所返回的写入信用来调节写入操作,以便限制去往存储器系统的写入业务量不超过写入缓冲器空间。
然而,关于从介质控制器向主机设备返回写入信用可能存在错误,例如,不可纠正的错误(UE)。如本领域中已知的,存储器控制器可以通过执行错误检查(例如,奇偶校验)或使用错误控制编码(ECC)等来检测这样的错误。然而,当这样的错误被检测到时,存储器控制器在常规实施方式中可能无法简单地重试如下的写入操作,这些写入操作关于它们对应的返回写入信用可能已经引发错误。这是因为,介质控制器未意识到返回写入信用中的错误,并且因此介质控制器将不会更新其写入缓冲器空间以计入未正确退出的写入操作,并且因此在报告给主机设备的写入信用与介质控制器上的可用写入缓冲器空间之间将存在不一致。
因此,对于主机设备与介质控制器之间的写入信用的高效同步存在已经认识到的需求,例如,以在关于从介质控制器向主机设备的写入信用的报告可能引发错误的场景中避免前述问题。
发明内容
本发明的示例性方面包括用于在主机设备与包括非易失性存储器(NVM)的存储器系统的介质控制器之间同步写入信用的系统和方法。主机设备被配置为维护在主机设备的存储器控制器中实施的写入信用(WC)计数器。WC计数器跟踪并且限制可能向NVM发出的未完成的写入命令的数目。主机设备可以查询存储器系统以获得介质控制器中的可用写入缓冲器空间的状态,并且基于从存储器系统发送的读取分组的元数据中报告的写入缓冲器空间中的任何检测到的错误来调整WC计数器。
例如,示例性方面涉及一种访问存储器系统的方法,该方法包括:在主机设备中设置写入信用计数器,以反映存储器系统中的写入缓冲器的可用写入缓冲器空间;一经从主机设备向存储器系统发出写入命令,将写入信用计数器递减;以及一经在主机设备处从存储器系统接收到写入缓冲器中的附加可用写入缓冲器空间的指示,将写入信用计数器递增。
另一示例性方面涉及一种装置,该装置包括主机设备,主机设备包括写入信用计数器,其中主机设备耦合到包括写入缓冲器的存储器系统。主机设备被配置为:设置写入信用计数器,以反映写入缓冲器的可用写入缓冲器空间;一经向存储器系统发出写入命令,将写入信用计数器递减;以及一经从存储器系统接收到写入缓冲器中的附加可用写入缓冲器空间的指示,将写入信用计数器递增。
另一示例性方面涉及一种包括代码的非瞬态计算机可读存储介质,该代码在由处理器执行时使得处理器执行用于访问存储器系统的操作。非易失性计算机可读存储介质包括:用于在主机设备中设置写入信用计数器,以反映存储器系统中的写入缓冲器的可用写入缓冲器空间的代码;用于一经从主机设备向存储器系统发出写入命令,将写入信用计数器递减的代码;以及用于一经在主机设备处从存储器系统接收到写入缓冲器中的附加可用写入缓冲器空间的指示,将写入信用计数器递增的代码。
又另一示例性方面涉及一种装置,该装置包括耦合到存储器系统的主机设备,主机设备包括用于跟踪写入信用的部件,写入信用反映存储器系统中的写入缓冲器的可用写入缓冲器空间。用于跟踪写入信用的部件包括:用于一经主机设备向存储器系统发出写入命令,将写入信用递减的部件;以及用于一经在主机设备处从存储器系统接收到写入缓冲器中的附加可用写入缓冲器空间的指示,将写入信用递增的部件。
附图说明
附图被呈现以帮助本发明的各方面的描述并且被提供仅用于对各方面的说明而非对其的限制。
图1图示了根据本公开的各方面的处理系统。
图2A-图2C图示了根据写入信用返回的示例性方面的用于包括与从存储器系统向主机报告的写入缓冲器空间有关的信息的元数据格式。
图3A-图3B图示了根据本公开的写入信用报告的示例。
图4图示了根据本公开的各方面的分离用于XWRITE和PWRITE的写入信用报告的各方面。
图5描绘了本公开的一方面可以在其中有利地被采用的示例性计算设备。
图6图示了根据本公开的各方面的使主机设备的写入信用与存储器系统的可用写入缓冲器空间同步的示例性方法。
具体实施方式
本发明的各方面在涉及本发明的特定方面的以下描述和相关附图中被公开。替代方面在不偏离本发明的范围的情况下可以被设计。另外,本发明的公知元素将不详细描述或将被省略,以便不使本发明的相关细节模糊不清。
词语“示例性”在本文中用来意指“用作示例、实例或说明”。本文中被描述为“示例性”的任何方面不必然被解释为比其他方面优选或有利。同样地,术语“本发明的各方面”不要求本发明的所有方面都包括所讨论的特征、优点或操作模式。
本文中使用的术语仅用于描述特定方面的目的,并且不旨在限制本发明的各方面。如本文中使用的,单数形式的“一个”、“一种”和“该”也意图包括复数形式,除非上下文另外清楚指出。还将理解,术语“包括”、“包括有”、“包括着”和/或“包括了”,当在本文中使用时,指定所陈述的特征、整数、步骤、操作、元素和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或其群组的存在或添加。
此外,许多方面按照将由例如计算设备的元件执行的动作序列来描述。将认识到,本文中描述的各种动作可以由特定电路(例如,专用集成电路(ASIC)),由一个或多个处理器执行的程序指令,或者由两者的组合来执行。另外,本文中描述的这些动作序列可以被认为完全体现在任何形式的计算机可读存储介质内,其中存储有对应的计算机指令集,该计算机指令集一经执行将使得相关联的处理器执行本文中描述的功能。因此,本发明的各个方面可以按多种不同的形式来体现,所有这些形式都被设想在所要求保护的主题的范围内。另外,对于本文中描述的各方面中的每个方面,任何这样的方面的对应形式在本文中可以描述为,例如,“被配置为执行所描述的动作的逻辑”。
本公开的示例性方面涉及用于在主机设备与包括非易失性存储器(NVM)的存储器系统的介质控制器之间同步写入信用的高效系统和方法。主机设备被配置为维护例如在主机设备的存储器控制器中实施的写入信用(WC)计数器,其跟踪并且限制可能向NVM发出的未完成的写入命令的数目。主机设备可以查询存储器系统以获得介质控制器中的可用写入缓冲器空间的状态,并且基于任何检测到的错误来调整WC计数器。
NVM可以包括例如NVDIMM-P,其可以根据任何技术来配置,而不偏离本公开的范围。为了对本公开的示例性方面的解释的目的,NVDIMM-P的双倍数据速率4(DDR4)实施方式(或DDR4NVDIMM-P)和NVDIMM-P的双倍数据速率5(DDR5)实施方式(或DDR5 NVDIMM-P)被讨论。
现在参考图1,示例性处理系统100被示出,其包括标记为主机120的主机设备和存储器系统130。主机120可以包括一个或多个处理元件,诸如中央处理单元(CPU)、数字信号处理器(DSP)、多媒体处理器、系统处理器、图形处理单元(GPU)、调制器-解调器(调制解调器)、应用处理器等,即使它们未被明确图示。这些处理元件可以提出访问存储器系统130的请求。主机120的存储器控制器122可以被配置为控制这些访问请求。在示例性方面,存储器控制器122可以维护写入信用(WC)计数器124,但是根据本公开的WC计数器可以按任何其他方式被配置在主机120内。
在示例方面,存储器系统130可以包括被配置为NVDIMM或NVDIMM-P(例如,DDR4或DDR5)的非易失性存储器(NVM)136。NVM 136可以包括未具体图示的一个或多个存储器组。对NVM 136的访问(诸如用于读取和写入)可以由介质控制器132控制。对于写入操作,如在示例图示中或者在各个其他方面所示出的,写入缓冲器134可以被提供在介质控制器132中,适合的写入缓冲器可以按任何其他方式适合地被提供,而不偏离本公开的范围。从主机120接收的要写入到NVM 136的用于写入操作的写入数据可以在写入数据被传送到NVM 136之前临时存储在写入缓冲器134中。如果需要响应来报告传送的完成(例如,对于持久性写入),则写入操作可以被认为一经写入完成的成功报告而被退出,或者否则,写入操作可以被认为一经写入数据从写入缓冲器134传送到NVM 136而被退出。NVM 136可以支持持久性存储器写入(PWRITE)和具有伴随的奇偶校验信息(例如,逻辑异或XOR)的写入操作,称为XWRITE。
互连110被示出在主机120与存储器系统130之间,标准接口被示出,诸如数据总线(DQ)112、命令和地址总线(CA)114。主机120可以能够经由CA 114提供用于存储器访问请求的命令(包括写入请求,诸如PWRITE和XWRITE)和相关地址,并且经由DQ 112(被示出为双路总线)发送/接收数据。尽管被单独示出,但是标记为响应116的总线可以被配置为CA 114的一部分,并且在一些情况下可以被实施为双向总线。如将在随后的章节中进一步详细讨论的,响应116可以例如用于向主机120提供关于写入缓冲器134中的可用空间的信息。各种其他总线/电线也可以存在于互连110中,但是它们未单独标识。
在示例性方面,WC计数器124被配置为跟踪向存储器系统130发出的未完成的XWRITE或PWRITE命令的数目,意图是基于写入缓冲器134中的可用写入缓冲器空间来限制未完成的XWRITE或PWRITE命令的数目。在一个方面,WC计数器124可以被初始化为已知值或重置为基值,诸如零(例如,在应用开始时或周期性地)。一经初始化,主机120可以被配置为查询存储器系统130以确定可用写入缓冲器空间,并且使用该信息来预设WC计数器124以反映可用写入缓冲器空间(例如,写入缓冲器134中可用的行(或块)的数目可以被转换为比例数,该比例数可以通过将WC计数器124预设为该比例数来跟踪),并且随着可用写入缓冲器空间改变而对应地增大或减小WC计数器124中的计数,并且其中可用写入缓冲器空间的变化可以如下被跟踪。
主机120可以被配置为使用命令来读取可用写入缓冲器空间,诸如“读取_状态”命令(例如,其可以在CA 114上发送)。如本领域中已知的,“读取_状态”命令可以被编码为XREAD命令,在一种示例实施方式中,读取ID(RID)设置为全1或以十六进制表示的0xFF。当包括与可用写入缓冲器空间有关的信息的状态分组准备好被递送给主机120时,存储器系统130例如通过介质控制器132可以提供响应RD_RDY(例如,在响应116上)。主机120然后可以向存储器系统130发出SEND命令,并且在DQ 112上从存储器系统130接收的任何后续数据分组(其RID设置为0xFF)可以被主机120(例如,在特定实施方式中被存储器控制器122)视为消息分组。如此接收的消息分组可以包含与可用写入缓冲器空间有关的信息。
一经以上文描述的方式获得可用写入缓冲器空间,主机120或具体地是存储器控制器122可以被配置为将WC计数器124设置或预置具有对应的值。随后,一经每个XWRITE或PWRITE命令被发出到存储器系统130,存储器控制器122可以被配置为对应地递减WC计数器124(例如,递减“1”)。当WC计数器124达到值“0”时,存储器控制器122可以被配置为停止或防止任何另外的XWRITE或PWRITE命令在CA 114上从主机120向存储器系统130发出。
在示例性方面,存储器系统130可以被配置为向主机提供增量写入信用反馈,该增量写入信用反馈作为一个或多个读取数据分组中包括的元数据的一部分,或者在一些情况下作为响应于上文描述的SEND命令而从存储器系统130向主机120返回的每个读取数据分组中包括的元数据的一部分。增量写入信用报告可以基于特定的实施方式而变化。例如,取决于用于NVM 136的DDR4 NVDIMM-P实施方式的具体配置,该反馈可以是1位可编程WC返回值(PWC)或用于写入信用的3位编码(例如,由WC[2:0]表示)。在反馈中返回的写入信用(例如,由WC[2:0]表示)也称为读取元数据,并且可以表示主机120可以添加到其可用写入信用计数(例如,将WC计数器124递增对应量)的写入信用的数目。
在一些方面,多位可编程写入信用值(诸如WC[2:0])可以是写入信用的特定数目的编码(例如,二进制表示)。在替代方面,例如,如图2C中示出的,WC[2:0]的值可以对应于与响应相关联的信用的预编程的数目。例如,在图2C中被标识为位[WC2,WC1,WC0]的WC[2:0]的位值的不同编码或组合可以表示写入信用的不同数目,代表性地示出为在0到64的范围中。在一些实施方式中,这些预编程的值可以通过表格来获得,该表格使用WC[2:0]的位作为到表格中的索引。
当1位可编程WC返回值(PWC)被使用时返回的写入信用可以表示将被添加到主机120的写入信用计数的信用的预编程的数目(例如,将WC计数器124递增对应量)。模式寄存器位设置(例如,正被设置的模式寄存器的适合位置处的位)可以用于选择DDR4NVDIMM-P实施方式的两种可能配置之一。对于NVM 136的DDR5NVDIMM-P实施方式,用于写入信用的3位编码(例如,WC[2:0])可以被使用。
主机120可以用由存储器系统130返回的以PWC或WC[2:0]编码(取决于上文指出的DDR4或DDR5实施方式)被编码的写入信用的数目来递增WC计数器124。介质控制器132上可用的总写入缓冲器空间在不同实施方式中可以是64或更大。写入信用可以表示如下写入的数目,介质控制器132已经将这些写入退出到NVM 136并且因此如上文指出的释放写入缓冲器134中的更多缓冲器空间。
在示例性方面,主机120还可以在任何时间通过以下来请求写入缓冲器134中可用的总写入缓冲器空间:发出“读取_状态”命令,并且相应地更新其WC计数器124。作为示例,主机120在没有SEND命令可用于发出并且其WC计数器124处于值“0”时可以发送“读取_状态”命令,而防止另外的写入的发出。
在另一示例中,当主机120在读取数据分组上检测到不可纠正的错误(UE)时,主机120可以发出“读取_状态”命令以基于写入缓冲器134中的可用写入缓冲器空间来更新其WC计数器124。例如,存储器控制器122可以对来自存储器系统130的所接收的分组运行错误检查并且发现存在错误,这将使读取数据分组中包含的PWC或WC[2:0]字段(取决于上文指出的DDR4或DDR5实施方式)无效。
在一些方面,存储器系统130可以基于介质控制器132接收到“读取_状态”命令的时间来提供写入缓冲器空间的总值。关于包括返回到主机120的写入信用或写入缓冲器空间的任何后续消息,介质控制器132可以考虑响应于所接收的“读取_状态”命令而向主机120发送的总写入缓冲器空间的最后值。因此,如以下章节中所解释的,存储器系统130可以基于随着写入操作完成或退出而释放的附加写入缓冲器空间来返回适当的写入信用。
在说明性示例中,写入缓冲器134中的写入缓冲器空间可以是128(例如,128个行或块)。如果主机120发出例如10次写入,并且这些写入中的3次写入在介质控制器132从主机120接收到“读取_状态”命令之前已经被完成到NVM 136或退出,则介质控制器132可以作为响应向主机120返回总写入缓冲器空间可用值128-10+3=121。
在一些方面,例如,如果在接收到“读取_状态”命令之后并且在状态消息在DQ 112上被发送回来之前,对NVM 136的对应的附加中间写入可以完成,则存储器系统130还可以返回附加信用作为所报告的总写入缓冲器空间的一部分。
在说明性示例中,如先前指出的,写入缓冲器134中的写入缓冲器空间可以是128。如果主机120例如发出10次写入,并且这些写入中的3次写入在介质控制器132从主机120接收到“读取_状态”命令之前已经被完成到NVM 136或退出,并且两次更多写入在“读取_状态”分组被接收之后但是在具有写入信用值的状态分组被发送到主机120之前的中间持续时间中被完成到NVM 136,则介质控制器132可以作为响应向主机120返回总写入缓冲器空间可用值128-10+3+2=123。
在一种可能的场景中,介质控制器132可以在“读取_状态”被接收之后接收写入请求,并且在状态被报告回来之前完成写入请求。在该场景中,介质控制器132可以被配置为在报告总写入缓冲器空间时不考虑与被完成的写入请求相对应的写入缓冲器134中的该附加释放空间,而是在所报告的后续写入信用返回中报告回对应的写入信用。
从主机120的视角来看,所返回的总写入缓冲器空间在由主机120在发出“读取_状态”命令之后发出的写入命令中未被考虑。主机120被配置为从所返回的值中减去在“读取_状态”命令之后发出的写入命令的数目,即使这些写入命令是在从介质控制器132接收到总写入缓冲器空间之前发出的。主机120可以利用在接收到总写入缓冲器空间之后接收的增量写入信用返回来继续调整WC计数器124中的写入信用计数。
在示例性方面,PWC和WC[2:0]位对于将污染(Poison)位设置为“1”的读取返回数据可以是有效的,甚至对于根据其他协议而定义的用于从存储器系统130向主机120返回信息的元数据位也是有效的。污染数据是如下的指示:主机120已经将坏的或“被污染的”数据写入到存储器系统130(或具体地是介质控制器132),或者主机120已经检测到损坏的读取数据并且如由“被污染的”位所指示的那样将损坏的读取数据返回为坏的或不可用的。使用例如6位用于报告写入信用的准确数目(多至64个写入信用)的、在DQ 112上被发送的状态分组中可以使用的示例元数据分组可以遵循图2C中示出的格式。
图2A图示了根据DDR4标准的数据节拍,例如,示出了污染位被设置为1,并且WC[2:0]位被设置为指示在响应于来自主机120的“读取_状态”命令而在DQ 112上发送的响应分组中报告的写入信用的数目。NVM 136的DDR4 NVDIMM-P实施方式可以允许两个可配置选项,该两个可配置选项用于选择读取元数据分组中的写入信用位和用户定义位的数目。如果元数据分组的模式寄存器MRx位y被设置为“0”,则如图2A中示出的,三个写入信用位和四个“用户”位可以是可用的。
图2B示出了如果模式寄存器MRx位y被设置为“1”,则单个写入信用位(PWC)和六个“用户”位是可用的。
图2C示出了根据DDR4或DDR5 NVDIMM-P实施方式的用于三个写入信用位的示例编码。例如,图1的存储器系统130可以返回最佳编码,其等于或小于将被返回的信用的实际数目。
对于NVM 136的DDR4 NVDIMM-P实施方式,PWC位表示可编程写入信用门限值。该值可以由主机120使用与上文描述的具有三个写入信用位的实施方式相同的编码而被编程在模式寄存器位置MRx位n(2:0)中。存储器系统130可以不开始在其报告中使用PWC值,直到它从主机120接收到“读取_状态”以获得总写入缓冲器空间。使用“读取_状态”获得的写入信用也称为基于状态读取的信用。3位PWC字段也可以在“读取_状态”分组中被返回,并且如先前所提到的,这些写入信用被称为从读取元数据获得的信用。增量写入信用值的改变可以在总写入缓冲器空间被返回之后生效。
在示例性方面,如果PWC=0,则没有信用被返回到主机120。如果PWC=1,则基于被编程的值的写入信用可以被返回到主机120。
图3A-图3B图示了具有在读取分组元数据中使用的用于向主机120报告写入信用的三个写入信用位和一个写入信用位的数值示例。在图3A-图3B中,被示出为“可用于返回”的列可以表示例如介质控制器132的状态。
如图3A中示出的,当三个写入信用位被使用时,1、2、4、8、16、32和64个信用可以使用3位的各种二进制编码来报告。如所示出的,主机120可以利用通过对“读取_状态”的响应而提供的写入信用(或基于状态读取的信用)、以及从读取元数据(诸如PWC位)获得的写入信用。在一些实施方式中,状态读取和读取元数据可以被限制免于同时从存储器系统130被返回到主机120。因此,当写入信用通过状态读取或读取元数据被返回时用于主机120的写入信用计数在图3A的示例中被示出。
如图3B中示出的,基于每个读取分组的元数据中的预设门限,仅将1位用于写入信用可以仅返回单个值(例如,在所示出的示例中为4)。图3B还示出了主机120可以利用来自状态读取以及读取元数据的写入信用(即使如上文指出的,它们在一些实施方式中可能不被同时返回)。更具体地,图3B还示出了基于从状态读取或读取元数据返回的写入信用的用于主机120的写入信用计数。如先前所指出的,“可用于返回”可以指示介质控制器132可以准备好返回的写入信用,但是可用于返回与返回到主机120的读取元数据值之间的潜在变化可能不是由主机120可检测的,因为可能存在竞争条件,其中介质控制器132可能尚未处理附加的写入信用。
现在参考图4,使用分离的写入信用来报告用于PWRITE和XWRITE的写入缓冲器空间的各方面被示出。以该方式分离写入信用可以提高XWRITE信用可以从存储器系统130被返回到主机120的速度。该分离还可以使得介质控制器132能够向总写入缓冲器空间的子集提供能量支持。在读取分组中用于报告写入信用的元数据可以与污染位组合,以获得用于报告额外信用返回的附加编码选项。
在XWRITE和PWRITE信用报告可以被分离的各方面,共同PWC门限值可以用于XWRITE和PWRITE信用报告,但具有基于用户偏好来使用分离的对应门限的选项。分离的3位字段可以用于相应的XWRITE和PWRITE信用报告。利用状态分组返回的总写入缓冲器空间可以具有用于XWRITE和PWRITE信用的分离字段,这可以导致用于XWRITE和PWRITE的固定分配。主机120可以被配置为向XWRITE分配PWRITE空间中的一些空间。主机120还可以对介质控制器132中的寄存器(未示出)编程,以在PWRITE信用和XWRITE信用之间分配空间。
本公开的各方面可以在其中被利用的示例装置现在将关于图5被讨论。图5示出了计算设备500的框图。计算设备500可以对应于图1的处理系统100的示例性实施方式,其中处理器120’可以是主机120的处理元件之一。处理器120’示例性地被示出为通过互连110耦合到存储器系统130,为了清楚起见,互连110的进一步细节从该视图中被省略。将理解,尽管未示出,但是本领域中已知的其他存储器配置(诸如涉及一个或多个级别的缓存)可以存在于计算设备500中。
图5还示出了显示控制器526,其耦合到处理器120’和显示器528。在一些情况下,计算设备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)、固定位置数据单元、计算机、膝上机、平板机、通信设备、移动电话、或其他类似设备中。
将明白,示例性方面包括用于执行本文中公开的过程、功能和/或算法的各种方法。例如,图6图示了访问存储器系统的方法600。例如,方法600可以涉及使主机120的写入信用和存储器系统130的写入缓冲器134中的可用写入缓冲器空间同步。
框602包括:在主机设备中设置写入信用计数器,以反映存储器系统中的写入缓冲器的可用写入缓冲器空间。例如,主机120的WC计数器124可以基于来自先前过程(诸如方法600)的写入缓冲器134中的可用写入缓冲器空间的确定而被初始化或设置。
框604包括:一经向存储器系统发出写入命令,将写入信用计数器递减。例如,一经主机120对每个PWRITE或XWRITE的发出,WC计数器124可以对应地被递减。
框606包括:一经从存储器系统接收到写入缓冲器中的附加可用写入缓冲器空间的指示,将写入信用计数器递增。例如,当主机120响应于读取状态(“读取_状态”)命令而接收到具有可用写入缓冲器空间的一个或多个读取分组时,如果存在与对应的WC计数器124值相比附加的可用写入缓冲器空间,则WC计数器124对应地被递增。
本领域的技术人员将明白,信息和信号可以使用各种不同的科技和技术中的任何一种来表示。例如,贯穿以上描述中可能提及的数据、指令、命令、信息、信号、位、符号和码片可以由电压、电流、电磁波、磁场或粒子、光场或粒子、或其任何组合来表示。
此外,本领域的技术人员将明白,关于本文中公开的各方面而描述的各种说明性的逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件、或这两者的组合。为了清楚地说明硬件和软件的这种可互换性,各种说明性组件、块、模块、电路和步骤已经在上文一般性地按照它们的功能被描述。这样的功能被实施为硬件还是软件取决于特定应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以变化的方式来实施所描述的功能,但是这样的实施决定不应当被解释为引起从本发明的范围的偏离。
关于本文中公开的各方面而描述的方法、序列和/或算法可以直接体现在硬件中,在由处理器执行的软件模块中、或在这两者的组合中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM、或本领域中已知的任何其他形式的存储介质中。示例性存储介质耦合到处理器,使得处理器可以从存储介质读取信息并且可以向存储介质写入信息。在替代方案中,存储介质可以与处理器形成整体。
因此,本发明的一方面可以包括一种计算机可读介质,该计算机可读介质具体化一种从包括NVM的存储器系统向主机报告写入信用的方法。因此,本发明不限于已说明的示例,并且用于执行本文中描述的功能的任何部件都被包括在本发明的各方面中。
尽管前述公开示出了本发明的说明性方面,但是应当指出,不偏离由所附权利要求限定的本发明的范围,各种改变和修改可以在本文中作出。根据本文中描述的本发明的各方面的方法权利要求的功能、步骤和/或动作不需要以任何特定顺序执行。此外,尽管本发明的元素可能以单数被描述或要求保护,但是复数被设想到,除非明确陈述限于单数。
Claims (27)
1.一种访问存储器系统的方法,所述方法包括:
在主机设备中设置写入信用计数器,以反映所述存储器系统中的写入缓冲器的可用写入缓冲器空间;
一经从所述主机设备向所述存储器系统发出写入命令,将所述写入信用计数器递减,其中所述写入命令是持久性存储器写入PWRITE或具有伴随的奇偶校验信息的写入XWRITE;以及
一经在所述主机设备处基于分离的PWRITE信用报告和XWRITE信用报告来从所述存储器系统接收到所述写入缓冲器中的附加可用写入缓冲器空间的指示,将所述写入信用计数器递增,其中所述写入缓冲器空间能够被配置为在所述PWRITE信用和所述XWRITE信用之间分配空间。
2.根据权利要求1所述的方法,其中所述写入缓冲器中的所述附加可用写入缓冲器空间基于从所述写入缓冲器写入到所述存储器系统中的非易失性存储器的写入操作。
3.根据权利要求1所述的方法,包括:从所述存储器系统接收针对用于所述写入缓冲器中的PWRITE和XWRITE的附加可用写入缓冲器空间的分离指示。
4.根据权利要求1所述的方法,还包括:响应于由所述主机设备向所述存储器系统发送的读取状态命令,从所述存储器系统接收所述写入缓冲器中的可用写入缓冲器空间的指示。
5.根据权利要求4所述的方法,包括:在来自所述存储器系统的一个或多个读取数据分组的元数据中,接收所述可用写入缓冲器空间的所述指示。
6.根据权利要求5所述的方法,其中所述指示包括以下之一:可编程写入信用值、用于写入信用的编码、或模式寄存器位设置。
7.根据权利要求5所述的方法,还包括:由所述主机设备对所述一个或多个读取数据分组执行错误检查。
8.根据权利要求7所述的方法,还包括:由所述主机设备基于所述错误检查来确定所述一个或多个读取数据分组中的错误,并且向所述存储器系统发出另一读取状态命令。
9.根据权利要求1所述的方法,还包括:如果所述写入信用计数器达到零值,则防止写入命令由所述主机设备向所述存储器系统发出。
10.一种装置,包括:
主机设备,包括写入信用计数器,其中所述主机设备耦合到包括写入缓冲器的存储器系统,其中所述主机设备被配置为:
设置所述写入信用计数器,以反映所述写入缓冲器的可用写入缓冲器空间;
一经向所述存储器系统发出写入命令,将所述写入信用计数器递减,其中所述写入命令是持久性存储器写入PWRITE或具有伴随的奇偶校验信息的写入XWRITE;以及
一经基于分离的PWRITE信用报告和XWRITE信用报告来从所述存储器系统接收到所述写入缓冲器中的附加可用写入缓冲器空间的指示,将所述写入信用计数器递增,其中所述写入缓冲器空间能够被配置为在所述PWRITE信用和所述XWRITE信用之间分配空间。
11.根据权利要求10所述的装置,其中所述写入缓冲器中的所述附加可用写入缓冲器空间基于从所述写入缓冲器写入到所述存储器系统中的非易失性存储器的写入操作。
12.根据权利要求10所述的装置,其中所述主机设备被配置为:从所述存储器系统接收针对用于所述写入缓冲器中的PWRITE和XWRITE的附加可用写入缓冲器空间的分离指示。
13.根据权利要求10所述的装置,其中所述主机设备还被配置为:响应于由所述主机设备向所述存储器系统发送的读取状态命令,从所述存储器系统接收所述写入缓冲器中的可用写入缓冲器空间的指示。
14.根据权利要求13所述的装置,其中所述主机设备被配置为:在来自所述存储器系统的一个或多个读取数据分组的元数据中,接收所述可用写入缓冲器空间的所述指示。
15.根据权利要求14所述的装置,其中所述指示包括以下之一:可编程写入信用值、用于写入信用的编码、或模式寄存器位设置。
16.根据权利要求14所述的装置,其中所述主机设备还被配置为:对所述一个或多个读取数据分组执行错误检查。
17.根据权利要求16所述的装置,其中所述主机设备还被配置为:基于所述错误检查来确定所述一个或多个读取数据分组中的错误,并且向所述存储器系统发出另一读取状态命令。
18.根据权利要求10所述的装置,其中所述主机设备还被配置为:如果所述写入信用计数器达到零值,则防止写入命令向所述存储器系统发出。
19.一种包括代码的非瞬态计算机可读存储介质,所述代码在由处理器执行时使得所述处理器执行用于访问存储器系统的操作,所述非瞬态计算机可读存储介质包括:
用于在主机设备中设置写入信用计数器,以反映所述存储器系统中的写入缓冲器的可用写入缓冲器空间的代码;
用于一经从所述主机设备向所述存储器系统发出写入命令,将所述写入信用计数器递减的代码,其中所述写入命令是持久性存储器写入PWRITE或具有伴随的奇偶校验信息的写入XWRITE;以及
用于一经在所述主机设备处基于分离的PWRITE信用报告和XWRITE信用报告来从所述存储器系统接收到所述写入缓冲器中的附加可用写入缓冲器空间的指示,将所述写入信用计数器递增的代码,其中所述写入缓冲器空间能够被配置为在所述PWRITE信用和所述XWRITE信用之间分配空间。
20.根据权利要求19所述的非瞬态计算机可读存储介质,其中所述写入缓冲器中的所述附加可用写入缓冲器空间基于从所述写入缓冲器写入到所述存储器系统中的非易失性存储器的写入操作。
21.根据权利要求19所述的非瞬态计算机可读存储介质,还包括:用于从所述存储器系统接收针对用于所述写入缓冲器中的PWRITE和XWRITE的附加可用写入缓冲器空间的分离指示的代码。
22.根据权利要求19所述的非瞬态计算机可读存储介质,还包括:用于响应于由所述主机设备向所述存储器系统发送的读取状态命令,从所述存储器系统接收所述写入缓冲器中的可用写入缓冲器空间的指示的代码。
23.根据权利要求22所述的非瞬态计算机可读存储介质,还包括:用于在来自所述存储器系统的一个或多个读取数据分组的元数据中,接收所述可用写入缓冲器空间的所述指示的代码。
24.根据权利要求23所述的非瞬态计算机可读存储介质,其中所述指示包括以下之一:可编程写入信用值、用于写入信用的编码、或模式寄存器位设置。
25.根据权利要求23所述的非瞬态计算机可读存储介质,还包括:用于由所述主机设备对所述一个或多个读取数据分组执行错误检查的代码。
26.根据权利要求25所述的非瞬态计算机可读存储介质,还包括:用于由所述主机设备基于所述错误检查来确定所述一个或多个读取数据分组中的错误的代码,以及用于向所述存储器系统发出另一读取状态命令的代码。
27.一种装置,包括:
主机设备,耦合到存储器系统,所述主机设备包括用于跟踪写入信用的部件,所述写入信用反映所述存储器系统中的写入缓冲器的可用写入缓冲器空间,其中用于跟踪写入信用的所述部件包括:
用于一经所述主机设备向所述存储器系统发出写入命令,将所述写入信用递减的部件,其中所述写入命令是持久性存储器写入PWRITE或具有伴随的奇偶校验信息的写入XWRITE;以及
用于一经在所述主机设备处基于分离的PWRITE信用报告和XWRITE信用报告来从所述存储器系统接收到所述写入缓冲器中的附加可用写入缓冲器空间的指示,将所述写入信用递增的部件,其中所述写入缓冲器空间能够被配置为在所述PWRITE信用和所述XWRITE信用之间分配空间。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762579715P | 2017-10-31 | 2017-10-31 | |
US62/579,715 | 2017-10-31 | ||
US16/175,381 | 2018-10-30 | ||
US16/175,381 US10996888B2 (en) | 2017-10-31 | 2018-10-30 | Write credits management for non-volatile memory |
PCT/US2018/058343 WO2019089683A1 (en) | 2017-10-31 | 2018-10-31 | Write credits management for non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111279327A CN111279327A (zh) | 2020-06-12 |
CN111279327B true CN111279327B (zh) | 2023-11-03 |
Family
ID=66242945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880070480.5A Active CN111279327B (zh) | 2017-10-31 | 2018-10-31 | 用于非易失性存储器的写入信用管理 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10996888B2 (zh) |
EP (1) | EP3704591B1 (zh) |
JP (1) | JP6983313B2 (zh) |
KR (1) | KR102384907B1 (zh) |
CN (1) | CN111279327B (zh) |
BR (1) | BR112020008423A2 (zh) |
SG (1) | SG11202002411YA (zh) |
TW (1) | TWI769335B (zh) |
WO (1) | WO2019089683A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585624B2 (en) * | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
KR102410021B1 (ko) * | 2017-11-20 | 2022-06-21 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법 |
US11048645B2 (en) * | 2018-02-01 | 2021-06-29 | Samsung Electronics Co., Ltd. | Memory module, operation method therof, and operation method of host |
US11656775B2 (en) | 2018-08-07 | 2023-05-23 | Marvell Asia Pte, Ltd. | Virtualizing isolation areas of solid-state storage media |
US11074013B2 (en) | 2018-08-07 | 2021-07-27 | Marvell Asia Pte, Ltd. | Apparatus and methods for providing quality of service over a virtual interface for solid-state storage |
US11074007B2 (en) * | 2018-08-08 | 2021-07-27 | Micron Technology, Inc. | Optimize information requests to a memory system |
US10969994B2 (en) | 2018-08-08 | 2021-04-06 | Micron Technology, Inc. | Throttle response signals from a memory system |
US11010314B2 (en) | 2018-10-30 | 2021-05-18 | Marvell Asia Pte. Ltd. | Artificial intelligence-enabled management of storage media access |
US10901657B2 (en) * | 2018-11-29 | 2021-01-26 | International Business Machines Corporation | Dynamic write credit buffer management of non-volatile dual inline memory module |
US11269524B2 (en) * | 2019-10-07 | 2022-03-08 | Samsung Electronics Co., Ltd. | Methods and systems for managing data transfer between a UFS host and a UFS target |
US11947995B2 (en) * | 2020-05-19 | 2024-04-02 | Intel Corporation | End-to-end data protection for far memory data transfer from host to media |
US11604743B2 (en) * | 2020-08-31 | 2023-03-14 | International Business Machines Corporation | Input/output queue hinting for resource utilization |
CN113485672B (zh) * | 2021-09-07 | 2021-11-19 | 苏州浪潮智能科技有限公司 | 基于fifo存储器的信息生成方法、装置、设备及介质 |
US11842056B2 (en) * | 2021-10-25 | 2023-12-12 | EMC IP Holding Company, LLC | System and method for allocating storage system resources during write throttling |
US20230325075A1 (en) * | 2022-04-07 | 2023-10-12 | Mellanox Technologies, Ltd. | Methods and systems for managing memory buffer usage while processing computer system operations |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4126959B2 (ja) * | 2002-05-21 | 2008-07-30 | ソニー株式会社 | データ転送システム、およびアクセスモニタ装置 |
JP2005267148A (ja) * | 2004-03-18 | 2005-09-29 | Konica Minolta Business Technologies Inc | メモリ制御装置 |
EP1894107B1 (en) * | 2005-06-09 | 2011-12-21 | Nxp B.V. | Memory controller and method for coupling a network and a memory |
US7574556B2 (en) * | 2006-03-20 | 2009-08-11 | International Business Machines Corporation | Wise ordering for writes—combining spatial and temporal locality in write caches |
WO2008131058A2 (en) | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
US7702871B1 (en) * | 2007-08-31 | 2010-04-20 | Emc Corporation | Write pacing |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
JP5349515B2 (ja) * | 2011-03-14 | 2013-11-20 | 株式会社東芝 | バッファ管理装置、バッファ管理方法及び記憶装置 |
KR101778782B1 (ko) * | 2011-04-08 | 2017-09-27 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US8806282B2 (en) * | 2012-02-16 | 2014-08-12 | Lsi Corporation | Data integrity field (DIF) implementation with error detection and intelligent recovery mechanism |
JP6139010B2 (ja) * | 2013-03-15 | 2017-05-31 | インテル・コーポレーション | デバイス |
US20160139807A1 (en) * | 2013-07-09 | 2016-05-19 | Hewlett-Packard Development Company, L.P. | Write flow control for memory modules that include or interface with non-compliant memory technologies |
US9542251B2 (en) * | 2013-10-30 | 2017-01-10 | Oracle International Corporation | Error detection on a low pin count bus |
US9817693B2 (en) * | 2014-03-14 | 2017-11-14 | International Business Machines Corporation | Coherence protocol augmentation to indicate transaction status |
US10452529B1 (en) * | 2014-06-11 | 2019-10-22 | Servicenow, Inc. | Techniques and devices for cloud memory sizing |
WO2016175852A1 (en) * | 2015-04-30 | 2016-11-03 | Hewlett Packard Enterprise Development Lp | Memory module error tracking |
US10102070B2 (en) * | 2015-06-01 | 2018-10-16 | Hitachi, Ltd. | Information processing system, storage apparatus and storage device |
US10558388B2 (en) | 2016-03-03 | 2020-02-11 | Samsung Electronics Co., Ltd. | Memory system and method of controlling the same |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
US11327887B2 (en) * | 2017-09-14 | 2022-05-10 | Oracle International Corporation | Server-side extension of client-side caches |
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 |
-
2018
- 2018-10-30 US US16/175,381 patent/US10996888B2/en active Active
- 2018-10-31 BR BR112020008423-9A patent/BR112020008423A2/pt unknown
- 2018-10-31 KR KR1020207012304A patent/KR102384907B1/ko active IP Right Grant
- 2018-10-31 CN CN201880070480.5A patent/CN111279327B/zh active Active
- 2018-10-31 WO PCT/US2018/058343 patent/WO2019089683A1/en unknown
- 2018-10-31 TW TW107138675A patent/TWI769335B/zh active
- 2018-10-31 JP JP2020522847A patent/JP6983313B2/ja active Active
- 2018-10-31 EP EP18804191.7A patent/EP3704591B1/en active Active
- 2018-10-31 SG SG11202002411YA patent/SG11202002411YA/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3704591A1 (en) | 2020-09-09 |
KR20200079496A (ko) | 2020-07-03 |
TWI769335B (zh) | 2022-07-01 |
US10996888B2 (en) | 2021-05-04 |
WO2019089683A1 (en) | 2019-05-09 |
US20190129656A1 (en) | 2019-05-02 |
EP3704591B1 (en) | 2022-11-16 |
KR102384907B1 (ko) | 2022-04-08 |
JP2021503642A (ja) | 2021-02-12 |
SG11202002411YA (en) | 2020-05-28 |
TW201923588A (zh) | 2019-06-16 |
JP6983313B2 (ja) | 2021-12-17 |
BR112020008423A2 (pt) | 2020-11-17 |
CN111279327A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111279327B (zh) | 用于非易失性存储器的写入信用管理 | |
CN107481746B (zh) | 用于操作ddr可兼容异步存储器模块的系统和方法 | |
US20220050600A1 (en) | Apparatus and method for performing persistent write operations using a persistent write command | |
CN107122317B (zh) | 数据存储装置 | |
US10121532B2 (en) | Apparatus, method and system for performing successive writes to a bank of a dynamic random access memory | |
US10866736B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
KR20180114972A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20200241956A1 (en) | Memory system and operating method thereof | |
US10922168B2 (en) | Dynamic link error protection in memory systems | |
KR20180029803A (ko) | 반도체장치 및 반도체시스템 | |
CN110720126B (zh) | 传输数据掩码的方法、内存控制器、内存芯片和计算机系统 | |
US11409473B2 (en) | Data storage device and operating method thereof | |
EP3610379B1 (en) | Transaction identification | |
CN115878367A (zh) | 存储器模块的操作方法、存储器控制器的操作方法 |
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: 40022819 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |