CN111831469A - 错误恢复方法、非暂时性计算机存储媒体及存储器子系统 - Google Patents
错误恢复方法、非暂时性计算机存储媒体及存储器子系统 Download PDFInfo
- Publication number
- CN111831469A CN111831469A CN202010269299.6A CN202010269299A CN111831469A CN 111831469 A CN111831469 A CN 111831469A CN 202010269299 A CN202010269299 A CN 202010269299A CN 111831469 A CN111831469 A CN 111831469A
- Authority
- CN
- China
- Prior art keywords
- namespace
- error recovery
- memory
- memory subsystem
- controller
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Abstract
本申请案涉及错误恢复方法、非暂时性计算机存储媒体及存储器子系统。具有在其上分配多个命名空间的非易失性媒体的存储器子系统。来自主机系统的命令具有命名空间的识别及至少一个错误恢复参数。所述存储器子系统的控制器根据所述至少一个错误恢复参数在所述非易失性媒体上配置所述命名空间,与所述命名空间相关联地存储所述至少一个错误恢复参数,并根据与所述命名空间相关联地存储的所述至少一个错误恢复参数来控制用于所述命名空间中的数据存取的错误恢复操作。
Description
技术领域
本文揭示的至少一些实施例大体上涉及存储器系统,并且更特定来说(但不限于)数据存储装置中的错误恢复的定制。
背景技术
存储器子系统可包含存储数据的一或多个存储器组件。存储器子系统可为数据存储系统,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小轮廓DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器组件可为例如非易失性存储器组件及易失性存储器组件。存储器组件的实例包含存储器集成电路。一些存储器集成电路是易失性的,并且需要电力来维持所存储数据。一些存储器集成电路是非易失性的,并且即使不通电也可保留所存储数据。非易失性存储器的实例包含快快闪存储器储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)及电可擦除可编程只读存储器(EEPROM)等。易失性存储器的实例包含动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据并从存储器组件检索数据。
计算机可包含主机系统及附接到主机系统的一或多个存储器子系统。主机系统可具有与一或多个存储器子系统通信以存储及/或检索数据及指令的中央处理单元(CPU)。用于计算机的指令可包含操作系统、装置驱动程序及应用程序。操作系统管理计算机中的资源,并为应用程序提供通用服务,例如存储器分配及资源的时间共享。装置驱动程序可操作或控制计算机中特定类型的装置;且操作系统使用装置驱动程序来提供由所述类型的装置提供的资源及/或服务。计算机系统的中央处理单元(CPU)可运行操作系统及装置驱动程序以向应用程序提供服务及/或资源。中央处理单元(CPU)可运行使用服务及/或资源的应用程序。举例来说,实施计算机系统的一种类型的应用的应用程序可指示中央处理单元(CPU)将数据存储在存储器子系统的存储器组件中及从所述存储器组件中检索数据。
主机系统可根据预定义通信协议(例如非易失性存储器主机控制器接口规范(NVMHCI),也称为NVM高速(NVMe))与存储器子系统进行通信,所述协议指定用于经由外围组件互连高速(PCI高速或PCIe)总线存取非易失性存储装置的逻辑装置接口协议。根据通信协议,主机系统可将不同类型的命令发送到存储器子系统;且存储器子系统可执行命令并提供对命令的响应。一些命令指示存储器子系统将数据项存储在命令中指定的地址处,或者从命令中指定的地址检索数据项,所述命令例如读取命令及写入命令。一些命令管理存储器子系统中的基础架构及/或管理任务,例如管理命名空间的命令、附加命名空间的命令、创建输入/输出提交或完成队列的命令、删除输入/输出提交或完成队列的命令、用于固件管理的命令等。
在读取操作中从存储器组件检索的日期可能含有错误。数据存储装置/系统的控制器可重试读取操作以获得无错误数据。举例来说,“与非”(NAND)型快闪存储器可用以通过对存储器单元的电压阈值电平进行编程将一或多个数据位存储在存储器单元中。当电压阈值电平在电压窗口内时,存储器单元处于与电压窗口相关联的状态,并因此存储与所述状态预相关联的一或多个值位。然而,各种因素(例如,温度、时间、电荷泄漏)可能导致存储器单元的电压阈值偏移到电压窗口外部,从而导致在确定存储在存储器单元中的数据时出现错误。数据存储装置/系统可以不同电压阈值重试读取操作以减少及/或消除错误。
发明内容
在本发明的实施例中,提供一种方法,所述方法包括:在存储器子系统的控制器中,从主机系统接收命令,所述存储器子系统具有非易失性媒体;由所述控制器提取命名空间的识别及所述命名空间的至少一个错误恢复参数;由所述控制器根据所述至少一个错误恢复参数在所述非易失性媒体上配置所述命名空间;与所述命名空间相关联地存储所述至少一个错误恢复参数;以及由所述控制器根据与所述命名空间相关联地存储的所述至少一个错误恢复参数来控制用于所述命名空间中的数据存取的错误恢复操作。
在本发明的实施例中,提供一种非暂时性计算机存储媒体。所述非暂时性计算机存储媒体存储指令,当所述指令由存储器子系统的控制器执行时,致使所述控制器执行一种方法,所述方法包括:在所述存储器子系统的所述控制器中,从主机系统接收命令,所述存储器子系统具有非易失性媒体;由所述控制器提取命名空间的识别及所述命名空间的至少一个错误恢复参数;由所述控制器根据所述至少一个错误恢复参数在所述非易失性媒体上配置所述命名空间;与所述命名空间相关联地存储所述至少一个错误恢复参数;以及由所述控制器根据与所述命名空间相关联地存储的所述至少一个错误恢复参数来控制用于所述命名空间中的数据存取的错误恢复操作。
在本发明的实施例中,提供一种存储器子系统。所述存储器子系统包括:非易失性媒体;处理装置,其耦合到缓冲存储器及所述非易失性媒体;及错误恢复管理器,其经配置以:在所述数据存储器系统中,与在所述非易失性媒体的一部分上分配的命名空间相关联地存储至少一个错误恢复参数,其中所述命名空间是在所述非易失性媒体上分配的多个命名空间中的一者;以及响应于确定所述命名空间中的输入/输出操作具有错误,检索所述错误恢复参数并根据所述错误恢复参数控制用于所述输入/输出操作的错误恢复操作。
附图说明
在附图的图式中通过实例而非限制的方式说明实施例,其中相似参考指示类似元件。
图1说明根据本发明的一些实施例的具有存储器子系统的实例计算系统。
图2说明针对不同错误恢复操作的命名空间的定制。
图3展示在存储装置中配置命名空间的方法。
图4展示在命名空间中执行错误恢复的方法。
图5是本发明的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本发明的至少一些方面涉及定制数据存储装置的存储容量的选定部分的错误恢复的技术。
数据存储装置中的错误恢复操作降低数据存取的速度。为不同的数据应用定制错误恢复以存取性能及准确性是有利的。举例来说,某些数据应用(例如,视频、音频、图像数据)可容忍所检索数据中一定程度的错误而不会严重影响应用的性能。然而,一些数据应用(例如指令代码及文件系统数据)必须尽可能无错误。因此,由于重复重试以为此数据应用检索无错误数据而导致读取操作延长可为合意的。一般来说,计算装置可具有不同类型的数据应用。
在本文揭示的至少一些实施例中,基于命名空间配置错误恢复设置。命名空间可动态映射到数据存储装置中的不同部分及/或位置。当不同命名空间可具有不同错误恢复设置时,计算装置可使用不同命名空间来存储不同类别的数据,使得可通过将相应数据存储在以不同方式定制的命名空间中来实现不同数据应用的数据存取性能与准确性之间的权衡。
在存储装置上配置的命名空间可被认为是在存储装置的一部分上动态分配的逻辑存储装置。在存储装置上配置的多个命名空间对应于使用存储装置的存储容量的不同部分实施的不同逻辑存储装置。计算机系统可通过识别命名空间及在命名空间内定义的逻辑块寻址(LBA)地址来存取由命名空间表示的逻辑存储装置中的存储单元。不同命名空间可具有单独LBA地址空间。举例来说,在具有n个存储器单元的存储装置的第一部分上分配的第一命名空间可具有范围从0到n-1的LBA地址;并且在具有m个存储器单元的存储装置的第二部分上分配的第二命名空间可具有范围从0到m-1的LBA地址。可在不同命名空间中使用相同LBA地址以识别存储装置的不同部分中的不同存储器单元。
可使用命名空间映射将命名空间中定义的逻辑地址空间映射到存储装置中的地址空间。举例来说,可根据可定制块大小将在存储装置的一部分上分配的命名空间中定义的LBA地址空间按块映射到可在存储装置的整个容量上定义的虚构命名空间的LBA地址空间。命名空间映射的块大小可经配置以平衡根据虚构命名空间中的块定义命名空间的灵活性及使用命名空间映射执行地址转译的开销。可以独立于命名空间的方式将在整个容量上定义的虚构命名空间中的地址进一步转译为物理地址(例如,经由存储装置的快闪转译层(FTL))。因此,命名空间的复杂性与快闪转译层(FTL)的操作隔离。命名空间映射的此类技术的进一步细节可在2019年3月5日发布的且标题为“非易失性存储器装置中的命名空间改变传播(Namespace Change Propagation in Non-Volatile MemoryDevices)”的第10,223,254号美国专利中找到,所述专利的全部揭示内容特此以引用的方式并入本文中。
一般来说,存储装置的主机计算机可向存储装置发送用于创建、删除或保留命名空间的请求。在将存储装置的存储容量的一部分分配给命名空间后,相应命名空间中的LBA地址在逻辑上表示存储装置的数据存储媒体中的特定存储器单元,但由命名空间中的LBA地址在逻辑上表示的特定存储器单元可在不同时间例子处物理上对应于不同存储单元(例如,如在SSD中)(例如,如由存储装置的快闪转译层(FTL)确定)。
一般来说,存储器子系统也可被称为“存储器装置”。存储器子系统的实例是经由存储器总线连接到中央处理单元(CPU)的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小轮廓DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。
存储器子系统的另一实例是经由外围互连(例如,输入/输出总线、存储区域网络)连接到中央处理单元(CPU)的数据存储装置/系统。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器及硬盘驱动器(HDD)。
在一些实施例中,存储器子系统是提供存储器功能及存储功能两者的混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,并且可请求从存储器子系统检索数据。
图1说明根据本发明的一些实施例的具有存储器子系统(110)的实例计算系统。
存储器子系统(110)可包含非易失性媒体(109),其包含存储器组件。一般来说,存储器组件可为易失性存储器组件、非易失性存储器组件或其组合。在一些实施例中,存储器子系统(110)是数据存储系统。数据存储器系统的实例是SSD。在其它实施例中,存储器子系统(110)是存储器模块。存储器模块的实例包含DIMM、NVDIMM及NVDIMM-P。在一些实施例中,存储器子系统(110)是混合存储器/存储子系统。
一般来说,计算环境可包含使用存储器子系统(110)的主机系统(120)。举例来说,主机系统(120)可将数据写入存储器子系统(110),并从存储器子系统(110)读取数据。
主机系统(120)可为计算装置的部分,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此计算装置。主机系统(120)可包含或耦合到存储器子系统(110),使得主机系统(120)可从存储器子系统(110)读取数据或将数据写入存储器子系统(110)。主机系统(120)可经由物理主机接口耦合到存储器子系统(110)。如本文所使用,“耦合到”大体上是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电的、光学的、磁性的等。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤信道、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线等。物理主机接口可用于在主机系统(120)与存储器子系统(110)之间传输数据及/或命令。当存储器子系统(110)通过PCIe接口与主机系统(120)耦合时,主机系统(120)可进一步利用NVM高速(NVMe)接口来存取非易失性媒体(109)。物理主机接口可提供用于在存储器子系统(110)与主机系统(120)之间传递控制、地址、数据及其它信号的接口。图1将存储器子系统(110)说明为实例。一般来说,主机系统(120)可经由同一通信连接、多个单独通信连接及/或通信连接的组合来存取多个存储器子系统。
主机系统(120)包含处理装置(118)及控制器(116)。主机系统(120)的处理装置(118)可为例如微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在某些情况下,控制器(116)可被称为存储器控制器、存储器管理单元及/或启动器。在一个实例中,控制器(116)控制通过耦合在主机系统(120)与存储器子系统(110)之间的总线的通信。
一般来说,控制器(116)可向存储器子系统(110)发送命令或请求以便对非易失性媒体(109)进行所需的存取。控制器(116)可进一步包含与存储器子系统(110)通信的接口电路。接口电路可将从存储器子系统(110)接收到的响应转换为用于主机系统(120)的信息。
主机系统(120)的控制器(116)可与存储器子系统(110)的控制器(115)通信以执行例如在非易失性媒体(109)中读取数据、写入数据或擦除数据的操作及其它此类操作。在某些情况下,控制器(116)经集成在处理装置(118)的同一封装内。在其它情况下,控制器(116)与处理装置(118)的封装分离。控制器(116)及/或处理装置(118)可包含例如一或多个集成电路及/或离散组件、缓冲存储器、高速缓冲存储器或其组合的硬件。控制器(116)及/或处理装置(118)可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。
非易失性媒体(109)可包含不同类型的非易失性存储器组件的任一组合。在某些情况下,也可使用易失性存储器组件。非易失性存储器组件的实例包含“与非”(NAND)型快闪存储器。媒体(109)中的存储器组件可包含一或多个存储单元阵列,例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一者可存储由主机系统(120)使用的一或多个数据位(例如,数据块)。尽管描述例如NAND型快闪存储器的非易失性存储器组件,但是在非易失性媒体(109)中使用的存储器组件可基于任何其它类型的存储器。此外,可使用易失性存储器。在一些实施例中,媒体(109)中的存储器组件可包含(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、自旋转移扭矩(STT)-MRAM、铁电随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM),基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)、基于纳米线的非易失性存储器、并入忆阻器技术的存储器或非易失性存储器单元的交叉点阵列或其任何组合。非易失性存储器的交叉点阵列可基于体电阻的改变结合可堆叠交叉网格数据存取阵列执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程,而无需事先擦除所述非易失性存储器单元。此外,媒体(109)中的存储器组件的存储器单元可被分组为存储器页面或数据块,其可指代用于存储数据的存储器组件的单位。
存储器子系统(110)的控制器(115)可与媒体(109)中的存储器组件通信,以执行例如在存储器组件处读取数据、写入数据或擦除数据的操作以及其它此类操作(例如,响应于由控制器(116)在命令总线上调度的命令)。控制器(115)可包含例如一或多个集成电路及/或离散组件、缓冲存储器或其组合的硬件。控制器(115)可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器(115)可包含经配置以执行存储在本地存储器(119)中的指令的处理装置(117)(例如,处理器)。在所说明的实例中,控制器(115)的缓冲存储器(119)包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统(110)的操作的各种过程、操作、逻辑流以及例程的指令,其包含处置存储器子系统(110)与主机系统(120)之间的通信。在一些实施例中,控制器(115)可包含存储存储器指针、所取数据等的存储器寄存器。控制器(115)还可包含用于存储微代码的只读存储器(ROM)。尽管图1已经被说明为包含控制器(115),但是在本发明的另一实施例中,存储器子系统(110)可不包含控制器(115),而是可依赖于外部控制(例如,由外部主机提供,或由与存储器子系统分离的处理器或控制器提供)。
一般来说,控制器(115)可从主机系统(120)接收命令或操作,并且可将所述命令或操作转换为指令或适当命令,以实现对媒体(109)中的存储器组件的所需存取。控制器(115)可负责其它操作,例如损耗均衡操作、垃圾收集操作、错误检测及错误校正代码(ECC)操作、加密操作、高速缓存操作以及与媒体(109)中的存储器组件相关联的逻辑块地址与物理块地址之间的地址转译。控制器(115)可进一步包含主机接口电路以经由物理主机接口与主机系统(120)通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取媒体(109)中的存储器组件,以及将与存储器组件相关联的响应转换为用于主机系统(120)的信息。
存储器子系统(110)还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统(110)可包含可从控制器(115)接收地址并对所述地址进行解码以存取媒体(109)的存储器组件的高速缓冲存储器或缓冲器(例如,DRAM)及地址电路(例如,行解码器及列解码器)。
计算系统在存储器子系统(110)中包含错误恢复管理器(113),其基于针对命名空间设置的参数针对非易失性媒体(109)的不同部分应用不同错误恢复偏好/设置。
在一些实施例中,存储器子系统(110)中的控制器(115)包含错误恢复管理器(113)的至少一部分。在其它实施例中或组合地,主机系统(120)中的控制器(116)及/或处理装置(118)包含错误恢复管理器(113)的至少一部分。举例来说,控制器(115)、控制器(116)及/或处理装置(118)可包含实施错误恢复管理器(113)的逻辑电路。举例来说,主机系统(120)的控制器(115)或处理装置(118)(处理器)可经配置以执行存储在存储器中用于执行本文所描述的错误恢复管理器(113)的操作的指令。在一些实施例中,错误恢复管理器(113)在安置在存储器子系统(110)中的集成电路芯片中实施。在其它实施例中,错误恢复管理器(113)是主机系统(120)的操作系统、装置驱动程序或应用的部分。
存储器子系统(110)可具有用于从主机系统(120)接收命令的一或多个队列(例如,123)。举例来说,队列(123)可经配置用于典型输入/输出命令,例如读取命令及写入命令。举例来说,队列(125)可经配置用于不是典型输入/输出命令的管理命令。存储器子系统(110)可包含用于向主机系统(120)报告命令队列(123)中命令的执行结果的一或多个完成队列(121)。
错误恢复管理器(113)经配置以控制与存储器子系统(110)中的错误处理有关的操作。举例来说,从非易失性媒体(109)检索的数据经检测为含有错误(例如,在错误检测及错误校正代码(ECC)操作中),错误恢复管理器(113)经配置以确定其中发生错误的命名空间。检索相应命名空间的错误恢复设置以控制错误恢复过程。举例来说,当在特定命名空间中检测到错误时,将检索与特定命名空间相关联的重试读取操作的阈值水平;且错误恢复管理器(113)配置控制器(115)以执行不超过阈值水平的读取操作重试以试图读取无错误数据。如果控制器(115)未能以阈值水平的重试读取操作来检索无错误数据,那么控制器(115)经配置以在完成队列(121)中提供所检索数据的版本(例如,具有较少错误)用于报告给主机系统(120)。任选地,可在完成队列(121)中提供的响应中设置旗标以指示所检索数据含有错误。此外,错误恢复管理器(113)可使用RAID(独立磁盘的冗余阵列)配置来配置命名空间以存储数据,以提高对存储在命名空间中的数据的容错度。替代地或组合地,错误恢复管理器(113)可配置命名空间,使得命名空间中的存储器单元以在数据检索中具有期望可靠性水平的模式来存储数据。举例来说,错误恢复管理器(113)可配置命名空间以在SLC模式下(例如,而不是在MLC、TLC或QLC模式下)操作分配给非易失性媒体(109)的存储器单元,以使用减小的存储容量改进存储器单元的寿命及/或数据存取速度,如下文将进一步论述。
图2说明针对不同错误恢复操作的命名空间(131、…、133)的定制。
在图2中,多个命名空间(131、…、133)被分配在非易失性媒体(109)上(例如,在图1中所说明的存储器子系统(110)中)。
举例来说,命名空间A(131)具有命名空间映射(137),其定义命名空间(131)中的逻辑地址区(141、…、143)与非易失性媒体(109)中的对应存储器区(151、…、153)的物理地址区(142、…、144)之间的映射。使用命名空间映射(137),可将针对在命名空间(131)中定义的逻辑地址请求的读取或写入操作转译为非易失性媒体(109)中的存储器区(151、…、或153)中的对应读取或写入操作。
图2说明将逻辑地址区(141、…、143)映射到物理地址区(142、…、144)的命名空间映射(137)的简化实例。在改进映射技术中,可将命名空间(131)中的逻辑地址区(141、…、143)映射到在整个非易失性媒体(109)上配置的虚构命名空间中的逻辑地址区(141、…、143);并且快闪转译层可经配置以进一步将虚构命名空间中的逻辑地址区(141、…、143)映射到非易失性媒体(109)中的存储器单元中,如2019年3月5日发布的且标题为“非易失性存储器装置中的命名空间改变传播”的第10,223,254号美国专利中论述,所述专利的全部揭示内容特此以引用的方式并入本文中。因此,本发明的错误恢复技术不限于命名空间映射的特定技术。
在图2中,命名空间A(131)可具有与错误恢复操作有关的多个配置参数,例如RAID设置(161)、SLC模式设置(163)及/或用于错误恢复的阈值水平(165)。
举例来说,不同命名空间(131、…、133)可具有不同RAID设置(例如,161)。举例来说,命名空间A(131)可经配置以具有RAID操作;且命名空间B(133)可经配置以不具有RAID操作。
任选地,错误恢复管理器(113)可经配置以支持多个级别的RAID操作,例如镜像、奇偶校验、具有奇偶校验的字节级分条、具有奇偶校验的块级分条、具有分布式奇偶校验的块级分条。
举例来说,当命名空间(131)经配置以启用RAID操作时,错误恢复管理器(113)配置命名空间映射(137)以从命名空间(131)中的逻辑地址区(141、…、143)映射到多组物理地址区(例如,142、…、144)。可通过将在命名空间(131)中定义的逻辑地址区(141、…、143)映射到在虚构命名空间中定义的单独组的逻辑地址区来执行此映射,所述虚构命名空间分配在非易失性媒体(109)的整个容量上,其中快闪转译层经配置以按独立于命名空间及/或命名空间的RAID操作的方式将在虚构命名空间中定义的逻辑地址区映射到非易失性媒体(109)中的物理地址中。因此,快闪转译层的操作可独立于命名空间及/或RAID考虑。错误恢复管理器(113)可将命名空间(131)中的RAID操作转译为在虚构命名空间中定义的不同组的逻辑地址区的单独操作;且因此,可在不改变快闪转译层的操作/功能性的情况下启用/停用RAID操作。
不同命名空间(131、…、133)可具有不同SLC模式设置(例如,163)。举例来说,命名空间A(131)可经配置以按SLC模式操作;且命名空间B(133)可经配置以按非SLC模式(例如,按MLC/TLC/QLC模式)操作。
当命名空间(131)经配置以处于具有减小的存储容量以就擦除程序循环来说提高存取速度、降低错误率及/或提高使用寿命的模式中时,错误恢复管理器(113)可配置命名空间映射(137)以将在命名空间(131)中定义的逻辑地址区(例如,141、…、143)映射到在虚构命名空间中定义的多组逻辑地址区,并以类似于RAID操作的方式将命名空间(131)中的操作转译为虚构命名空间中的对应操作。一般来说,可经由RAID及/或减少每存储器单元存储的位数目(例如,从QLC模式减少到MLC模式或SLC模式)来实施具有减小的存储容量以就擦除程序循环来说提高存取速度、降低错误率及/或提高使用寿命的此模式。
不同命名空间(131、…、133)可具有不同错误恢复级别(例如,165)。举例来说,命名空间A(131)可经配置以将读取操作的重试限制在大于针对命名空间B(133)的阈值的第一阈值处,使得当命名空间A(131)及命名空间B(133)具有相同其它设置时,命名空间A(131)经配置用于较少错误,而命名空间B(133)经配置以在可容忍的错误级别下提高存取速度。在一些实施方案中,恢复级别(165)识别用于输入/输出操作的重试的固定限制。在其它实施方案中,恢复级别(165)识别错误率,使得当所检索数据具有低于由恢复级别(165)所指定的错误率时,可跳过进一步重试。
错误恢复设置(例如,161、163及165)允许在性能、容量及数据错误方面具有特定权衡的情况下定制命名空间(131)。因此,可使用相同底层非易失性媒体(109)将不同命名空间(例如,131、133)定制为具有不同错误恢复特性的逻辑存储装置。
举例来说,一些数据用在不容忍错误的情形中,例如用于操作系统及/或应用程序的指令、文件系统的元数据。此数据可存储在经配置以执行穷尽性错误恢复,以SLC模式使用存储器单元及/或执行用于数据冗余及恢复的RAID操作的命名空间(例如,131)中。
举例来说,某些数据可容忍所检索数据中的一定程度的错误,例如视频文件、音频文件及/或图像文件。此数据可存储在经配置以在发生错误的情况下执行较少数据错误恢复操作的命名空间(例如,133)中。
可由主机系统(120)使用用于重新创建及/或管理命名空间(131)的命令来指定与命名空间的错误恢复操作有关的设置(例如,161、163、165)。
举例来说,主机系统(120)可使用命令队列(例如,123)提交用于创建命名空间(131)的命令。所述命令包含用于设置(例如,161、163、165)的参数。在某些情况下,指定设置中的部分的数据是任选的;并且所述命令可使用链接列表以按链接列表中反映的任何顺序指定设置中的部分。因此,不必以特定顺序指定设置(例如,161、163、165)。
此外,在创建命名空间(131)之后,主机系统(120)可使用使用命令队列(例如,123)发送到存储器子系统(110)的命令来改变设置(例如,161、163、165)中的部分。
举例来说,命名空间(131)的错误恢复操作的级别(165)可使用命令队列(例如,123)中的命令即时改变。
举例来说,在创建命名空间(131)之后,来自主机系统(120)的命令可改变SLC模式设置(163)或RAID设置(161)。错误恢复管理器(113)可通过调整命名空间映射(137)实施所述改变及/或根据经更新设置重新存储命名空间(131)的数据。
在一个实施例中,错误恢复管理器(113)将针对分配在存储器子系统(110)中的命名空间(例如,131、…、133)的设置(例如,161、163、165)存储在集中式错误恢复表中。当在命名空间(例如,131)中发生输入/输出错误时,错误恢复管理器(113)从错误恢复表检索命名空间(例如,131)的恢复级别(例如,165)并基于命名空间(例如,131)的恢复级别(例如,165)控制错误恢复操作。
图3展示一种在存储装置(例如,110)中配置命名空间(例如,131)的方法。举例来说,可使用结合图2论述的技术在图1的计算机系统中实施图3的方法。
在框171处,主机系统(120)将命令传送到存储器子系统(110)。
举例来说,可使用例如非易失性存储器主机控制器接口规范(NVMHCI)(也称为NVM高速(NVMe))的预定义通信协议经由命令队列(123)将命令从主机系统(120)传达到存储器子系统(110)。
所述命令可为用于创建命名空间的命令、用于配置命名空间的命令、用于改变命名空间的属性的命令或用于调整命名空间中的错误恢复参数的命令。所述命令包含命名空间(例如,131)的识别及命名空间(例如,131)的至少一个错误恢复参数(例如,161、163、165)。
存储器子系统(110)可经配置以支持预定义的一组错误恢复参数(例如,161、163、165)的定制。预定义组中的每一参数具有默认值。所述命令不必明确识别命名空间的对应参数的默认值。因此,为参数指定不同于默认值的定制值就足够。
在框173处,存储器子系统(110)的控制器(115)从命令提取命名空间(例如,131)的识别及命名空间(例如,131)的至少一个错误恢复参数(例如,161、163及/或165)。
在框175处,控制器(115)根据至少一个错误恢复参数(例如,161、163及/或165)配置命名空间(131)。
举例来说,当RAID设置(161)需要RAID操作时,控制器(115)可将到命名空间(131)中定义的逻辑地址区(141、…、143)的组的命名空间映射(137)配置为非易失性媒体(109)中的多组存储器单元,其中每一组存储器单元可被视为用于RAID操作的独立磁盘。
在框177处,控制器(115)与命名空间(例如,131)相关联地存储至少一个错误恢复参数(例如,161、163及/或165)。
举例来说,集中式错误恢复表可用以存储针对在存储器子系统(110)中配置的每一命名空间(例如,131)的参数(例如,161、163,…,165)的值。
在框179处,控制器(115)根据与命名空间(例如,131)相关联地存储的至少一个错误恢复参数来控制用于命名空间(例如,131)中的数据存取的错误恢复操作。
举例来说,当命名空间(131)具有根据RAID设置(例如,161)存储的冗余数据时,错误恢复管理器(113)可执行计算以从冗余数据恢复无错误数据。
举例来说,当输入/输出操作具有需要经由重试解决的错误时,错误恢复管理器(113)根据恢复级别(165)限制重试操作的数目。举例来说,预定功能或查找表可用以确定由恢复级别(165)所允许的最大重试操作数目。一旦最大重试操作数目,控制器(115)就可经由完成队列(121)将具有错误的输入/输出操作的结果报告给主机系统(120),如图4中所说明。
图4展示在命名空间(例如,131)中执行错误恢复的方法。举例来说,可使用结合图2论述的技术在图1的计算机系统中实施图4的方法。
在框181处,控制器(115)接收用于读取命名空间(131)中的逻辑块地址处的数据的命令。
在框183处,控制器(115)使用命名空间(131)的命名空间映射(137)从非易失性媒体(109)检索数据。
在框185处,控制器(115)确定所检索数据是否无错误。
如果所检索数据不是无错误,那么控制器(115)在框187处检索与命名空间(137)相关联的错误恢复级别(165)。否则,控制器在框191处报告所检索数据。
在框189处,控制器(115)确定重试读取操作是否已经达到与命名空间(137)相关联的错误恢复级别;如果是,那么控制器(115)在框191处报告所检索数据。否则,控制器(115)在框183处再次使用命名空间(131)的命名空间映射(137)从非易失性媒体(109)检索数据。举例来说,控制器(115)可调整在读取操作中使用的参数(例如,参考电压)以试图获得无错误数据。
如果控制器(115)在框(189)处确定重试读取操作已达到与命名空间(137)相关联的错误恢复级别,那么控制器(115)可将错误报告给主机系统(120)。举例来说,可经由在含有所检索数据的响应中设置的旗标或经由单独消息来报告错误。
在一些实施方案中,处理装置(118)与存储器子系统(110)之间的通信信道包含计算机网络,例如局域网、无线局域网、无线个人区域网、蜂窝通信网络、宽带高速始终连接的无线通信连接(例如,当代或下一代移动网络链路);且处理装置(118)及存储器子系统可经配置以使用类似于NVMe协议中的数据存储管理及使用命令来彼此通信。
存储器子系统(110)大体上可具有非易失性存储媒体。非易失性存储媒体的实例包含形成在集成电路中的存储器单元及涂覆在硬磁盘上的磁性材料。非易失性存储媒体可在不消耗电力的情况下维持存储在其中的数据/信息。可使用各种存储器/存储技术来实施存储器单元,例如NAND逻辑门、NOR逻辑门、相变存储器(PCM)、磁性存储器(MRAM)、电阻式随机存取存储器、交叉点存储及存储器装置(例如,3D XPoint存储器)。交叉点存储器装置使用无晶体管存储器元件,其中每一者具有作为一列堆叠在一起的存储器单元及选择器。存储器元件列经由两个垂直的导线层连接,其中一层位于存储器元件列上方,且另一层位于存储器元件列下方。可在两个层中的每一者上的一根导线的交叉点处个别地选择每一存储器元件。交叉点存储器装置是快速且非易失性的,并且可用作用于处理及存储的统一存储器池(memory pool)。
存储器子系统(例如,110)的控制器(例如,115)可运行固件以响应于来自处理装置(118)的通信来执行操作。一般来说,固件是可提供对工程计算装置的控制、监测及数据操纵的一种类型的计算机程序。
涉及控制器(115)及/或错误恢复管理器(113)的操作的一些实施例可使用由控制器(115)执行的计算机指令(例如控制器(115)的固件)来实施。在某些情况下,硬件电路可用于实施功能中的至少一些。固件可最初存储在非易失性存储媒体或另一非易失性装置中,并且被加载到易失性DRAM及/或处理器内高速缓冲存储器中以由控制器(115)执行。
非暂时性计算机存储媒体可用于存储存储器子系统(例如,110)的固件的指令。当指令由控制器(115)及/或处理装置(117)执行时,指令致使控制器(115)及/或处理装置(117)执行上文论述的方法。
图5说明计算机系统(200)的实例机器,在所述机器内可执行用于致使所述机器执行本文所论述的方法中的任一者或多者的一组指令。在一些实施例中,计算机系统(200)可对应于主机系统(例如,图1的主机系统(120)),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统(110)或可用于执行错误恢复管理器(113)的操作(例如,执行指令以执行对应于参考图1到4所描述的错误恢复管理器(113)的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础架构或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器械、服务器、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者。
实例计算机系统(200)包含处理装置(202)、主存储器(204)(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))、静态随机存取存储器(SRAM)等)以及数据存储系统(218),其经由总线(230)(其可包含多个总线)彼此通信。
处理装置(202)表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置(202)也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置(202)经配置以执行用于执行本文所论述的操作及步骤的指令(226)。计算机系统(200)可进一步包含用于通过网络(220)进行通信的网络接口装置(208)。
数据存储系统(218)可包含机器可读存储媒体(224)(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令(226)或软件。在由计算机系统(200)执行指令(226)期间,指令(226)也可全部或至少部分地驻留在主存储器(204)内及/或处理装置(202)内,主存储器(204)及处理装置(202)也构成机器可读存储媒体。机器可读存储媒体(224)、数据存储系统(218)及/或主存储器(204)可对应于图1的存储器子系统(110)。
在一个实施例中,指令(226)包含用以实施对应于错误恢复管理器(113)(例如,参考图1到4描述的错误恢复管理器(113))的功能性的指令。尽管在实例实施例中将机器可读存储媒体(224)展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本发明的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。此处,算法通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。有时已经证明,主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
然而,应牢记,所有这些及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本发明内容可指代计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)数的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
本发明还涉及用于执行本文的操作的设备。此设备可经特定构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如下文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本发明。将了解,可使用各种编程语言来实施如本文所描述的本发明的教示。
本发明可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本发明的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在此描述中,各种功能及操作被描述为由计算机指令执行或由计算机指令引起以简化描述。然而,所属领域的技术人员将认识到,此类表达的意思是功能是由一或多个控制器或处理器(例如微处理器)执行计算机指令而产生的。替代地或组合地,可使用具有或不具有软件指令的专用电路来实施功能及操作,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用没有软件指令的硬接线电路或结合软件指令来实施实施例。因此,技术既不限于硬件电路及软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
在前述说明书中,已经参考本发明的特定实例实施例描述本发明的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本发明的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。
Claims (20)
1.一种方法,其包括:
在存储器子系统的控制器中,从主机系统接收命令,所述存储器子系统具有非易失性媒体;
由所述控制器提取命名空间的识别及所述命名空间的至少一个错误恢复参数;
由所述控制器根据所述至少一个错误恢复参数在所述非易失性媒体上配置所述命名空间;
与所述命名空间相关联地存储所述至少一个错误恢复参数;以及
由所述控制器根据与所述命名空间相关联地存储的所述至少一个错误恢复参数来控制用于所述命名空间中的数据存取的错误恢复操作。
2.根据权利要求1所述的方法,其中所述存储器子系统是数据存储装置;且所述非易失性媒体包括NAND快闪存储器。
3.根据权利要求2所述的方法,其中所述数据存储装置的所述非易失性媒体具有多个命名空间;并且所述方法进一步包括:
分别与所述多个命名空间相关联地存储多组错误恢复参数。
4.根据权利要求3所述的方法,其中所述在所述非易失性媒体上配置所述命名空间包括:
至少部分地基于所述至少一个错误恢复参数来产生针对所述命名空间的命名空间映射。
5.根据权利要求4所述的方法,其中所述命名空间映射定义从在所述命名空间中定义的第一逻辑块地址空间到在所述非易失性媒体的整个容量上分配的虚构命名空间中定义的第二逻辑块地址空间的一部分的映射。
6.根据权利要求4所述的方法,其中所述至少一个错误恢复参数包括独立磁盘的冗余阵列RAID设置。
7.根据权利要求6所述的方法,其中至少部分地基于所述命名空间映射来实施所述RAID设置,所述命名空间映射将在所述命名空间中定义的第一本地块地址空间映射到在所述非易失性媒体的整个容量上分配的虚构命名空间中定义的第二逻辑块地址空间的冗余部分。
8.根据权利要求6所述的方法,其中所述至少一个错误恢复参数进一步包括单层级单元SLC模式设置。
9.根据权利要求8所述的方法,其中所述至少一个错误恢复参数进一步包括恢复级别;并且用于所述命名空间中的数据存取的所述错误恢复操作的所述控制包括:
根据所述恢复级别来限制针对来自所述主机系统的命令执行的输入/输出操作的重试。
10.根据权利要求1所述的方法,其中所述存储器子系统是固态驱动器;所述非易失性媒体包括快闪存储器;并且所述方法进一步包括:
响应所述命令在所述非易失性媒体的一部分上创建所述命名空间。
11.根据权利要求1所述的方法,其中所述命令是第二命令;并且所述方法进一步包括:
在所述控制器中接收用于在所述非易失性媒体的一部分上创建所述命名空间的第一命令;以及
在所述第二命令的所述接收之前响应于所述第一命令而创建所述命名空间。
12.根据权利要求11所述的方法,其中当所述命名空间处于使用中时,所述第二命令改变所述命名空间的恢复级别。
13.一种存储指令的非暂时性计算机存储媒体,当所述指令由存储器子系统的控制器执行时,致使所述控制器执行一种方法,所述方法包括:
在存储器子系统的控制器中,从主机系统接收命令,所述存储器子系统具有非易失性媒体;
由所述控制器提取命名空间的识别及所述命名空间的至少一个错误恢复参数;
由所述控制器根据所述至少一个错误恢复参数在所述非易失性媒体上配置所述命名空间;
与所述命名空间相关联地存储所述至少一个错误恢复参数;以及
由所述控制器根据与所述命名空间相关联地存储的所述至少一个错误恢复参数来控制用于所述命名空间中的数据存取的错误恢复操作。
14.根据权利要求13所述的非暂时性计算机存储媒体,其中所述方法进一步包括:
在所述控制器中,接收用于改变在所述非易失性媒体上分配的多个命名空间当中的所述命名空间的所述错误恢复参数的命令。
15.一种存储器子系统,其包括:
非易失性媒体;
处理装置,其耦合到缓冲存储器及所述非易失性媒体;及
错误恢复管理器,其经配置以:
在所述数据存储器系统中,与在所述非易失性媒体的一部分上分配的命名空间相关联地存储至少一个错误恢复参数,其中所述命名空间是在所述非易失性媒体上分配的多个命名空间中的一者;以及
响应于确定所述命名空间中的输入/输出操作具有错误,检索所述错误恢复参数并根据所述错误恢复参数控制用于所述输入/输出操作的错误恢复操作。
16.根据权利要求15所述的存储器子系统,其中所述错误恢复参数识别恢复级别;并且所述错误恢复管理器经配置以根据所述恢复级别限制所述输入/输出操作的重试。
17.根据权利要求16所述的存储器子系统,其中所述错误恢复管理器经配置以响应于来自主机系统的命令来改变所述恢复级别。
18.根据权利要求15所述的存储器子系统,其中所述错误恢复参数识别独立磁盘的冗余阵列RAID设置;并且所述错误恢复管理器经配置以基于所述RAID设置执行错误恢复。
19.根据权利要求18所述的存储器子系统,其中所述非易失性媒体包含快闪存储器;并且所述存储器子系统是固态驱动器,所述固态驱动器经配置以通过外围组件互连高速(PCI高速或PCIe)总线从主机系统接收命令。
20.根据权利要求17所述的存储器子系统,其中所述处理装置经配置以从所述主机系统接收命令;并且响应于所述命令,创建所述命名空间并将其与所述至少一个错误恢复参数相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/392,338 US11061787B2 (en) | 2019-04-23 | 2019-04-23 | Custom error recovery in selected regions of a data storage device |
US16/392,338 | 2019-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831469A true CN111831469A (zh) | 2020-10-27 |
Family
ID=72913954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010269299.6A Pending CN111831469A (zh) | 2019-04-23 | 2020-04-08 | 错误恢复方法、非暂时性计算机存储媒体及存储器子系统 |
Country Status (2)
Country | Link |
---|---|
US (3) | US11061787B2 (zh) |
CN (1) | CN111831469A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647375A (zh) * | 2020-12-18 | 2022-06-21 | 美光科技公司 | 使装置具备增强型持久性存储器区存取能力 |
CN115114059A (zh) * | 2021-03-19 | 2022-09-27 | 美光科技公司 | 使用区来管理归因于存储装置故障的容量减小 |
US11650881B2 (en) | 2021-03-19 | 2023-05-16 | Micron Technology, Inc. | Managing storage reduction and reuse in the presence of storage device failures |
US11733884B2 (en) | 2021-03-19 | 2023-08-22 | Micron Technology, Inc. | Managing storage reduction and reuse with failing multi-level memory cells |
WO2023201462A1 (en) * | 2022-04-18 | 2023-10-26 | Micron Technology, Inc. | Namespace level valid translation unit count |
US11892909B2 (en) | 2021-03-19 | 2024-02-06 | Micron Technology, Inc. | Managing capacity reduction due to storage device failure |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11061787B2 (en) | 2019-04-23 | 2021-07-13 | Micron Technology, Inc. | Custom error recovery in selected regions of a data storage device |
US11531601B2 (en) | 2019-12-30 | 2022-12-20 | Advanced Micro Devices, Inc. | Error recovery for non-volatile memory modules |
US11137941B2 (en) * | 2019-12-30 | 2021-10-05 | Advanced Micro Devices, Inc. | Command replay for non-volatile dual inline memory modules |
KR20210154401A (ko) * | 2020-06-12 | 2021-12-21 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
JP2022071543A (ja) * | 2020-10-28 | 2022-05-16 | キヤノン株式会社 | 制御装置および制御装置の制御方法 |
US11593197B2 (en) * | 2020-12-23 | 2023-02-28 | Samsung Electronics Co., Ltd. | Storage device with data quality metric and selectable data recovery scheme |
US11500548B2 (en) * | 2021-03-04 | 2022-11-15 | Micron Technology, Inc. | Memory physical presence security identification |
KR102477051B1 (ko) * | 2022-07-01 | 2022-12-13 | 삼성전자주식회사 | 네트워크를 이용한 스토리지 장치의 데이터 복구 방법 및 이를 수행하는 스토리지 장치 |
US20240078039A1 (en) * | 2022-09-06 | 2024-03-07 | Western Digital Technologies, Inc. | Data Recovery for Zoned Namespace Devices |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937551B2 (en) * | 2003-01-21 | 2011-05-03 | Dell Products L.P. | Storage systems having differentiated storage pools |
US8095851B2 (en) * | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US9112537B2 (en) * | 2011-12-22 | 2015-08-18 | Intel Corporation | Content-aware caches for reliability |
US9542119B2 (en) * | 2014-07-09 | 2017-01-10 | Toshiba Corporation | Solid-state mass storage media having data volumes with different service levels for different data types |
US9524105B2 (en) * | 2014-09-02 | 2016-12-20 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by altering an encoding format |
US10691531B2 (en) * | 2014-12-04 | 2020-06-23 | Western Digital Technologies, Inc. | Systems and methods for multi-zone data tiering for endurance extension in solid state drives |
JP2017027388A (ja) * | 2015-07-23 | 2017-02-02 | 株式会社東芝 | メモリシステムおよび不揮発性メモリの制御方法 |
US10642517B2 (en) * | 2018-02-02 | 2020-05-05 | Western Digital Technologies, Inc. | Adjustable performance parameters for SSDs |
US10802908B2 (en) * | 2018-07-31 | 2020-10-13 | Western Digital Technologies, Inc. | Data dependent allocation of error correction resources |
US10866740B2 (en) * | 2018-10-01 | 2020-12-15 | Western Digital Technologies, Inc. | System and method for performance-based multiple namespace resource allocation in a memory |
US11061787B2 (en) | 2019-04-23 | 2021-07-13 | Micron Technology, Inc. | Custom error recovery in selected regions of a data storage device |
-
2019
- 2019-04-23 US US16/392,338 patent/US11061787B2/en active Active
-
2020
- 2020-04-08 CN CN202010269299.6A patent/CN111831469A/zh active Pending
-
2021
- 2021-05-20 US US17/326,138 patent/US11704210B2/en active Active
-
2023
- 2023-07-14 US US18/352,613 patent/US20230359535A1/en active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647375A (zh) * | 2020-12-18 | 2022-06-21 | 美光科技公司 | 使装置具备增强型持久性存储器区存取能力 |
US11693797B2 (en) | 2020-12-18 | 2023-07-04 | Micron Technology, Inc. | Enabling devices with enhanced persistent memory region access |
CN115114059A (zh) * | 2021-03-19 | 2022-09-27 | 美光科技公司 | 使用区来管理归因于存储装置故障的容量减小 |
CN115114059B (zh) * | 2021-03-19 | 2023-03-10 | 美光科技公司 | 使用区来管理归因于存储装置故障的容量减小 |
US11650881B2 (en) | 2021-03-19 | 2023-05-16 | Micron Technology, Inc. | Managing storage reduction and reuse in the presence of storage device failures |
US11733884B2 (en) | 2021-03-19 | 2023-08-22 | Micron Technology, Inc. | Managing storage reduction and reuse with failing multi-level memory cells |
US11892909B2 (en) | 2021-03-19 | 2024-02-06 | Micron Technology, Inc. | Managing capacity reduction due to storage device failure |
WO2023201462A1 (en) * | 2022-04-18 | 2023-10-26 | Micron Technology, Inc. | Namespace level valid translation unit count |
Also Published As
Publication number | Publication date |
---|---|
US20200341870A1 (en) | 2020-10-29 |
US20210271579A1 (en) | 2021-09-02 |
US11704210B2 (en) | 2023-07-18 |
US11061787B2 (en) | 2021-07-13 |
US20230359535A1 (en) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704210B2 (en) | Custom error recovery in selected regions of a data storage device | |
CN111240586B (zh) | 存储器系统及其操作方法 | |
US11573742B2 (en) | Dynamic data placement for collision avoidance among concurrent write streams | |
US11676679B2 (en) | Two-layer code with low parity cost for memory sub-systems | |
CN114341824B (zh) | 用于粗映射存储器子系统的取消映射 | |
US20220043713A1 (en) | Meta Data Protection against Unexpected Power Loss in a Memory System | |
CN114981785A (zh) | 基于改变高速缓存中数据块的写入模式执行媒体管理操作 | |
CN114631076A (zh) | 加载命令的生存时间 | |
CN114968649A (zh) | 扩展存储器单元的大小 | |
CN115373863A (zh) | 存储器裸片失效风暴期间的性能及死锁缓解 | |
CN115048040A (zh) | 基于有效数据的比率的媒体管理操作 | |
CN113126906A (zh) | 用于存储器装置的元数据指示 | |
CN117296021A (zh) | 降低存储器系统的功耗 | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US11853201B2 (en) | Selective single-level memory cell operation | |
CN112860182B (zh) | 用于写回合并的位屏蔽有效扇区 | |
CN115048039B (zh) | 用于基于有效转换单元计数的存储器管理的方法、设备和系统 | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group | |
US11630727B2 (en) | Generating die block mapping after detected failure | |
US20240069774A1 (en) | Deferred zone adjustment in zone memory system | |
US20240134788A1 (en) | Selective single-level memory cell operation | |
CN113126899A (zh) | 完全多平面操作启用 | |
CN113093990A (zh) | 存储器子系统处的数据块切换 | |
CN116909802A (zh) | 用于经分区存储系统的动态rain | |
CN115437558A (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 |