在存储器子系统中将奇偶校验数据与主机数据分离的制作方法

文档序号:25543598发布日期:2021-06-18 20:40阅读:130来源:国知局
在存储器子系统中将奇偶校验数据与主机数据分离的制作方法

本公开的实施例总体上涉及存储器子系统,更具体地,涉及在存储器子系统中将奇偶校验数据与主机数据分离。



背景技术:

存储器子系统可以包含一或多个存储数据的存储器装置。例如,存储器装置可以是非易失性存储器装置和易失性存储器装置。通常,主机系统可以利用存储器子系统在存储器装置处存储数据并从存储器装置检索数据。



技术实现要素:

在一方面,本公开提供一种系统,其包括:存储器装置;易失性存储器;以及处理装置,可操作地与所述存储器装置和所述易失性存储器耦合,以:将奇偶校验数据附加到所述易失性存储器上的一组奇偶校验数据,所述奇偶校验数据基于所述存储器装置的第一单元的页面条带上的一组主机数据;确定所述一组奇偶校验数据是否满足大小条件;响应于确定所述一组奇偶校验数据不满足所述大小条件,继续将其它奇偶校验数据附加到所述一组奇偶校验数据,所述附加奇偶校验数据基于一或多个对应的附加页面条带上的一或多组相应的主机数据;并且响应于确定所述一组奇偶校验数据满足所述大小条件,将所述一组奇偶校验数据存储在所述存储器装置的第二单元中。

在另一方面,本公开提供一种方法,其包括:执行多个写入操作以在存储器子系统的第一单元上写入一组主机数据;基于所述主机数据生成一组奇偶校验数据;确定所述一组奇偶校验数据是否满足大小条件;并且响应于确定所述一组奇偶校验数据满足所述大小条件,由处理装置将所述一组奇偶校验数据存储在所述存储器子系统的第二单元上。

在又一方面,本公开提供一种非暂时性计算机可读存储介质,其包括指令,所述指令在由处理装置执行时致使所述处理装置:将奇偶校验数据附加到易失性存储器上的一组奇偶校验数据,所述奇偶校验数据基于存储器装置的第一单元的页面条带上的一组主机数据;确定所述一组奇偶校验数据是否满足大小条件;响应于确定所述一组奇偶校验数据不满足所述大小条件,继续将附加奇偶校验数据附加到所述一组奇偶校验数据,所述附加奇偶校验数据基于一或多个对应的附加页面条带上的一或多组相应的主机数据;并且响应于确定所述一组奇偶校验数据满足所述大小条件,将所述一组奇偶校验数据存储在所述存储器装置的第二单元中。

附图说明

从以下给出的详细描述和本公开的各种实施例的附图,将更全面地理解本公开。然而,不应将附图视为将本发明限于特定实施例,而仅是为了解释和理解。

图1示出了根据本公开的一些实施例的包含存储器子系统的实例计算系统。

图2是根据本公开的一些实施例的在不同的存储器子系统单元中分离主机数据和奇偶校验数据的实例。

图3是根据本公开的一些实施例的在不同存储器子系统单元中的分离的主机数据与奇偶校验数据之间的关系的实例。

图4是根据本公开的一些实施例的在将存储器装置的不同单元中的奇偶校验数据和主机数据分离之前将奇偶校验数据存储在易失性存储器中直到满足大小条件的实例方法的流程图。

图5是根据本公开的一些实施例的在存储器子系统中从主机数据分离奇偶校验数据的实例方法的流程图。

图6是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的各方面针对在存储器子系统中将奇偶校验数据与主机数据分离。存储器子系统可以是存储装置、存储器模块或者存储装置与存储器模块的混合。下面结合图1描述存储装置和存储器模块的实例。通常,主机系统可以利用包含一或多个存储器组件的存储器子系统,例如存储数据的存储器装置。主机系统可以提供待存储在存储器子系统处的数据,且可以请求待从存储器子系统检索的数据。

数据操作可以由存储器子系统执行。数据操作可以是主机发起的操作。例如,主机系统可以发起存储器子系统上的数据操作(例如,写入、读取、擦除等)。主机系统可以将存取请求(例如,写入命令、读取命令)发送到存储器子系统,例如以在存储器子系统处的存储器装置上存储数据且从存储器子系统上的存储器装置读取数据。

由主机请求指定的待读取或写入的数据在下文中称为“主机数据”。主机请求可以包含用于主机数据的逻辑地址信息(例如,逻辑块地址(lba),命名空间),其为主机系统与主机数据相关联的位置。

当主机数据存储在存储器子系统上时,存储器子系统可以实施冗余机制以保护主机数据免于存储主机数据的存储器装置的一部分的故障。例如,对于与非(nand)型闪速存储器装置,存储器子系统可实施独立nand冗余阵列(rain)操作以为存储在存储器子系统上的数据提供冗余。例如,当将从主机系统接收的数据写入存储器子系统时,存储器子系统可以生成奇偶校验数据。存储器子系统可以基于与所接收的主机数据的异或(xor)操作来生成奇偶校验数据,并在存储来自主机系统的数据的存储器装置的一部分发生故障的情况下使用奇偶校验数据来重构或重新计算主机数据。举例来说,存储器子系统可以计算存储器子系统的单元(例如,数据块)的特定数目的主机数据位置的奇偶校验数据。可以基于在特定数目的主机数据位置上存储的每个主机数据之间的xor操作生成奇偶校验数据。如果存储主机数据之一的存储器装置的一部分发生故障并且对应的数据丢失或损坏,则存储器子系统可以基于剩余的主机数据和奇偶校验数据之间的xor操作来重建丢失/损坏的数据。

常规地,奇偶校验数据与主机数据一起存储在存储器子系统的同一单元内。例如,主机数据存储在数据块的页面条带上,并且基于主机数据的奇偶校验数据存储在同一数据块的页面条带上。条带化可指将存储器装置划分成跨越存储器装置的可用部分(例如,通道、管芯及平面)的较小区段的过程。通常,每个条带在存储器装置中可用的所有通道、管芯和平面上水平地散布。在实例中,页面条带一般以顺序方式一个接一个地使用。页面条带中的每个单元是保存数据的固定大小(例如,16kb等)的部分。页面条带的多个固定大小的部分。条带化旨在允许在读取、写入和擦除操作期间并行(例如,并行执行独立的数据存取)。如果将整个数据主体存储在发生故障的存储器装置的特定部分上,那么将数据散布到存储器装置的不同部分中的条带中还有助于避免丢失整个数据主体。因此,页面条带可指散布于设计用于存储数据主体的区段的存储器装置的多个部分上的特定数目的数据位置的群组。在常规系统内的实例中,将主机数据的每一区段存储在给定数据块的给定页面条带的每一数据位置上,直到检测到页面条带的末端为止。当检测到条带的末端时,将基于存储在给定页面条带的数据位置上的主机数据之间的xor操作计算的奇偶校验数据存储在给定数据块上的给定页面条带的最后位置上。因此,每个数据块包含多个页面条带,其中,每个页面条带存储奇偶校验数据和主机数据。然而,将奇偶校验数据与主机数据一起存储在数据块上的页面条带上降低了读取性能。例如,在顺序主机数据读取操作的情况下,存储器子系统不从存储奇偶校验数据的页面条带位置读取数据,因为该位置不包含任何主机数据。因此,存储奇偶校验数据的位置保持空闲,而存储器子系统同时对包含主机数据的条带的剩余数据位置执行读取操作。由于空闲时间,存储器子系统不能达到读取性能的最大潜力(例如,从页面条带上的每个可用位置读取主机数据),因为在主机数据同时从页面条带位置读取的时间中,存储器子系统从比页面条带上的总可用数据位置少至少一个的数据位置读取。

本公开的各方面通过具有在存储器子系统的单独单元中存储主机数据和对应的奇偶校验数据的存储器子系统来解决上述和其它缺陷。在主机数据写入操作期间,存储器子系统可将主机数据写入到存储器子系统的一个单元(例如数据块)的页面条带的每一可用位置。存储器子系统可基于在页面条带上的主机数据中的每一个之间执行的xor操作来生成对应的奇偶校验数据。存储器子系统可以在存储器子系统的易失性存储器上存储奇偶校验数据,而不是在存储器子系统的相同单元的相同页面条带上存储奇偶校验数据。存储器子系统可继续将附加主机数据写入到存储器子系统的同一单元的附加页面条带的可用位置。存储器子系统可以在易失性存储器上累积一组基于存储在页面条带上的主机数据而生成的奇偶校验数据。存储器子系统可以监视所述一组奇偶校验数据并确定易失性存储器上的所述一组奇偶校验数据是否满足指定大小条件。例如,存储器子系统可以识别所述一组奇偶校验数据是否等效于整条页面条带的数据。如果满足大小条件,则存储器子系统可以将所述一组奇偶校验数据从易失性存储器存储到存储器子系统的另一单元的另一页面条带,从而在存储器子系统的不同单元中分离主机数据和对应的奇偶校验数据。以此方式,存储器子系统可以将一个单元专用于专门存储主机数据,且将单独的单元专用于专门存储奇偶校验数据。通过在易失性存储器中累积相当于整条页面条带的奇偶校验数据,存储器子系统可以发出并行编程命令来一次写入整条页面条带的数据以改进性能,而不是在计算单个奇偶校验数据时在以一个单元(例如,块)写入主机数据与以另一单元(例如,另一块)写入每一单个奇偶校验数据之间切换。在从存储主机数据的存储器子系统的一部分读取失败的情况下,存储器子系统可以使用存储在专门存储奇偶校验数据的单元上的所述一组奇偶校验数据重构主机数据。

本公开的优点包含但不限于,由于与存储器子系统相关联的改进的读取性能和存储器装置初始化而增加的存储器子系统的性能,同时保持使用冗余操作提供数据保护的能力。作为将奇偶校验数据与主机数据分开存储的结果,存储器子系统可以将主机数据专门存储在存储器子系统的特定单元上,这允许存储器子系统同时从所述单元的页面条带的每个数据位置同时读取,而不引起与任何数据位置相关联的任何空闲时间。空闲时间的消除允许存储器子系统实现最大可能的顺序读取性能。此外,存储器子系统可以维护在单独的单元(例如,单独的块)中存储主机数据和奇偶校验数据的数据位置之间的关系的列表。因此,在装置初始化时,存储器子系统可以使用所述列表来识别含有主机数据的数据位置,从而消除对扫描装置上可用的所有数据位置以识别哪些位置含有主机数据的需要。因此,可以改善装置初始化时间,并且不会在不必要地扫描所有数据位置上浪费宝贵的计算资源。

图1示出了根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可以包含媒体,例如,一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。

存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、闪存驱动器、通用串行总线(usb)闪存驱动器、嵌入式多媒体控制器(emmc)驱动器、通用闪存(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。

计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人驾驶飞机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,包含在交通工具、工业装置或联网商业装置中的计算机)、或包含存储器和处理装置的此类计算装置。

计算系统100可以包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了耦合到一个存储器子系统110的主机系统120一个实例。如本文所用,“耦合到”或“与...耦合”通常指的是组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有插入组件),无论是有线还是无线,包含例如电、光、磁等连接方式。

主机系统120可以包含处理器芯片组和由处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核、一或多个高速缓存、存储器控制器(例如,nvdimm控制器)和存储协议控制器(例如,pcie控制器、sata控制器)。例如,主机系统120使用存储器子系统110将数据写入存储器子系统110并从存储器子系统110读取数据。

主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附接(sata)接口、高速外围组件互连(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm插槽接口)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120还可以利用nvmexpress(nvme)接口来存取组件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1示出了作为实例的存储器子系统110。通常,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子系统。

存储器装置130,140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任意组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。

非易失性存储器装置(例如,存储器装置130)的实例包含与非(nand)型闪速存储器和原位写入存储器,例如三维交叉点(“3d交叉点”)存储器。非易失性存储器的交叉点阵列可以结合可堆叠的交叉网格数据存取阵列来基于体电阻的改变执行位存储。此外,与许多基于闪存的存储器相比,交叉点非易失性存储器可以执行原位写入操作,其中可以在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。例如,nand型闪速存储器包含二维nand(2dnand)和三维nand(3dnand)。

存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元(例如,单级单元(slc))可以每一单元存储一位。其它类型的存储器单元(例如多电平单元(mlc)、三电平单元(tlc)和四电平单元(qlc))可以每一单元存储多位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或其任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的slc部分、mlc部分、tlc部分或qlc部分。存储器装置130的存储器单元可以分组为可参考用于存储数据的存储器装置的逻辑单元的页面。对于一些类型的存储器(例如,nand),可将页面分组以形成块。

尽管描述了非易失性存储器组件,例如非易失性存储器单元的3d交叉点阵列和nand型闪速存储器(例如,2dnand、3dnand),但存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选择存储器、其它基于硫族化物的存储器、铁电存储器随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)闪存、电可擦除可编程只读存储器(eeprom)。

存储器子系统控制器115(或为简单起见,控制器115)可以与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据等操作和其它此类操作。存储器子系统控制器115可以包含例如一或多个集成电路和/或分立组件、缓冲存储器或其组合的硬件。硬件可以包含具有专用(即,硬编码)逻辑的数字电路以执行本文描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)、或其它合适的处理器。

存储器子系统控制器115可以包含处理器117(例如,处理装置),所述处理器配置用于执行存储在本地存储器119中的指令。在所示出的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器配置用于存储用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程的指令。

在一些实施例中,本地存储器119可以包含存储存储器指针、被取出的数据等的存储器寄存器。本地存储器119还可以包含用于存储微代码的只读存储器(rom)。尽管图1中的实例存储器子系统110示出为包含存储器子系统控制器115,在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可以依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。

通常,存储器子系统控制器115可以从主机系统120接收命令或操作,且可以将命令或操作转换成指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可以负责其它操作,例如损耗均衡操作、无用单元收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba),命名空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115还可以包含主机接口电路,以经由物理主机接口与主机系统120通信。主机接口电路可以将从主机系统接收的命令转换成用以存取存储器装置130的命令指令,且将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可以包含未示出的附加电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,dram)和地址电路(例如,行解码器和列解码器),所述地址电路可以从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器与存储器子系统控制器115一起操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管存储器装置,其是与本地控制器(例如,本地控制器135)组合的原始存储器装置,以用于相同存储器装置封装内的介质管理。受管存储器装置的实例是受管nand(mnand)装置。

存储器子系统110包含奇偶校验处理组件113,其可将对应于主机数据的奇偶校验数据存储到与存储主机数据的另一单元分离的存储器子系统110的单元。在一些实施例中,存储器子系统控制器115包含奇偶校验处理组件113的至少一部分。例如,存储器子系统控制器115可以包含处理器117(处理装置),所述处理器配置用于执行存储在本地存储器119中的指令以执行这里描述的操作。在一些实施例中,奇偶校验处理组件113是主机系统110、应用程序或操作系统的一部分。

奇偶校验处理组件113可以将对应于从主机系统120接收的主机数据的奇偶校验数据存储在与存储主机数据的另一单元分离的存储器子系统的单元中。存储器子系统110可以将主机数据写入到存储器子系统110的一个单元(例如,数据块)的页面条带的每一可用位置。一旦页面条带写满,奇偶校验处理组件113便可以基于在页面条带上的每一主机数据之间执行的xor操作来生成对应的奇偶校验数据。奇偶校验处理组件113可以将奇偶校验数据存储在存储器子系统的易失性存储器上。存储器子系统110可以把继续将附加主机数据写入到存储器子系统110的附加页面条带。奇偶校验处理组件113可以基于附加页面条带上的主机数据将附加奇偶校验数据附加(例如,累积)到易失性存储器上的一组奇偶校验数据。控制器115可以检查以确定是否满足大小条件,例如,易失性存储器上的所述一组奇偶校验数据的大小是否等于或大于整条页面条带的数据的大小。如果满足大小条件,控制器115可以将所述一组奇偶校验数据从易失性存储器存储到存储器子系统110的另一单元的另一页面条带。以此方式,控制器115可以在存储器子系统110的独立单元中分离主机数据和对应的奇偶校验数据。在顺序读取请求期间,存储器子系统110可以对存储主机数据的单元的所有可用数据位置执行读取操作,而不会引起与在单元上存储奇偶校验数据相关联的任何空闲时间。在从存储主机数据的存储器子系统110的一部分读取失败的情况下,存储器子系统110可以使用存储在专门存储奇偶校验数据的单元上的所述一组奇偶校验数据重构主机数据。

图2示出了根据本公开的一些实施例的在存储器子系统(例如,图1所示的存储器子系统110)的不同单元、单元201和单元202中分离主机数据和奇偶校验数据的实例。图1的计算环境100的元件可以用来帮助说明图2。在图2所示的实例中,示出了实例存储器子系统单元201和单元202的特定架构。

在一些实施方案中,存储器子系统110的存储器子装置130可包含一组逻辑单元号(lun)(未标记)。在一些实施方案中,一组lun中的每个lun具有相同数量的存储器。在一些实施方案中,lun可以对应于特定粒度的存储器,例如存储器装置130的管芯。管芯是可以独立执行命令的最小单元。单个存储器装置130可以包含配置在分立封装中的一或多个管芯。在示出的实例中,存储器子系统110包含四个管芯(例如,管芯0到管芯3)。

在一些实施方案中,lun可以对应于不同粒度的存储器,例如管芯内的平面。可以在每个平面上进行同样和并发的操作。单个管芯可以包含一或多个平面。如图2所示,管芯0包含四个平面p0至p3。在示出的实例中,存储器装置包含4个管芯,且每一管芯包含4个平面。

在一些实施方案中,数据可以“划分为条带”跨越存储器装置130的多个部分,例如跨越一组lun中的多个lun。条带化(本文中也称为“页面条带化”)可指跨越存储器装置的可用部分(例如通道、管芯及平面)将存储器装置划分为较小区段的过程。通常,每个条带在存储器装置中可用的所有通道、管芯和平面上水平地散布。在实例中,页面条带一般以顺序方式一个接一个地使用。页面条带中的每个单元是保存数据的固定大小(例如,16kb等)的部分。页面条带的多个固定大小的部分。条带化旨在在读取、写入和擦除操作期间允许并行(例如,并行执行独立的数据存取)。在实例中,如果lun定义为表示平面,则数据可以划分为条带跨越多个平面。存储条带化数据的数据位置群组称为页面条带。在另一实例中,特定条带化技术可跨越不同管芯对数据进行条带化。如图2所示,要存储在存储器装置中的数据跨越不同平面进行条带化。例如,控制器115可以从主机系统120接收主机数据。可以以控制器115跨越存储器装置的若干部分对数据进行条带化的方式对所接收的数据执行写入操作。譬如,数据在管芯0的平面0、管芯0的平面1、管芯0的平面2、管芯0的平面3等上写入数据,直到数据已经全部写入到存储器件130。用于跨越多个lun存储条带化数据的数据位置群组可以称之为页面条带。在示出的实例中,条带0至条带n示出为用于跨越存储器装置条带化主机数据。例如,主机数据在条带0上跨越管芯0至管芯3的平面0至平面3条带化。因此,每个条带示出为包含共计16个平面。单元201至202可以包含共计64个页面条带(例如,条带0至条带n)。

在一些实施方案中,存储器装置130的lun可以分成更小的存储器单元。例如,lun可以包含多个存储器块。存储器的块(本文中也称为“数据块”)可指存储器装置130的可以响应于擦除操作而擦除的最小单元。存储器块可以包含多个存储器页面。存储器页面可指可响应于写入操作而写入的存储器装置130的最小单元。在示出的实例中,单元201可以表示存储器的数据块,例如“块a”。类似地,单元202可以表示存储器的另一数据块,“块b”。存储器装置130的管芯0可以包含块a、块b、块n等。

在一些实施方案中,通道可以指计算环境的两个元件之间的连接或耦合,例如控制器115和存储器装置130之间的连接或耦合。在一些实施方案中,控制器115可以使用通道与存储器装置130,140等通信。例如,控制器115可以对存储器装置130执行一或多个存储器操作,例如写入操作、读取操作、擦除操作、映射操作或垃圾收集。譬如,控制器115可以执行写入操作,以使用适当的通道将从主机系统120接收的数据写入到存储器装置的相应lun。在示出的实例中,对于单元201,示出了四个通道(例如,通道0至通道3),其中每个管芯具有对应的通道。

在实施方案中,当存储器子系统110从主机120接收要写入存储器子系统110的主机数据时,可以使用光标来跟踪正在存储接收数据的数据条带的所在位置。光标可以是管理存储器操作的执行的软件、硬件或其组合。存储器子系统110可以包含xor计算器,以在存储器子系统将数据写入给定存储器单元上的给定条带的每个位置(例如,对应于块a的条带0的管芯0的p0,p1等)时执行xor操作。例如,每当将新数据元素写入页面条带的新位置以将新数据元素包含在奇偶校验计算中时,xor计算器可以重新计算运行的奇偶校验数据,直到光标位于条带的末端(例如,管芯3的p3对应于条带0)。在一些实例中,对应于存储器子系统执行主机写入的活动页面条带的bin(例如,易失性存储器中的缓冲存储器)可以用于将运行奇偶校验数据存储在易失性存储器中,例如在sram(静态随机存取存储器)中。根据存储器子系统的要求,控制器可以保持多个bin。当光标到达条带的末端时,存储器子系统110可以将主机数据写入到条带的最后位置,计算整个条带(例如,条带0的所有16个平面)的奇偶校验数据(例如,r0),并将奇偶校验数据存储在易失性存储器中,例如在dram(动态随机存取存储器)中。易失性存储器可以提供数据的快速存取和计算。存储器子系统可以开启在下一页面条带(例如,条带1)上存储下一组主机数据,当存储器子系统存储下一组数据时使用易失性存储器中的下一个bin来计算运行奇偶校验数据,并存储对应于整个下一页面条带(例如,条带1)上存储的下一组主机数据的奇偶校验数据(例如,r1)和先前存储的对应于上一页面条带(例如,条带0)上的主机数据的奇偶校验数据(例如,r0)。存储器子系统可以继续将其它组的主机数据存储在附加页面条带(例如,条带2,3,4等)上并将对应于相应页面条带的附加奇偶校验数据(例如,r2、r3、r4等)存储到易失性存储器。存储器子系统可以将附加奇偶校验数据(例如,r2、r3、r4)附加到先前存储在易失性存储器上的一组奇偶校验数据(例如,r0和r1)。因此,存储器子系统可以在易失性存储器中累积和保存更新的一组奇偶校验数据,包含附加奇偶校验数据。

在实施方案中,存储器子系统跟踪存储在易失性存储器上的所述一组奇偶校验数据。存储器子系统连续地或以特定间隔地评估存储在易失性存储器中的所述一组奇偶校验数据(例如,r0、r1、r2、r3等)以确定所述一组奇偶校验数据是否满足大小条件。在一些实施方案中,存储器子系统可以确定所述一组奇偶校验数据的大小是否等于或大于指定大小。在实例中,指定大小可以是存储器单元的一整页数据的大小。在另一实例中,可以按照存储器的千字节来规定大小。在一些实施方案中,存储器子系统可以确定保存所述一组奇偶校验数据的页面数目是否等于或大于指定页面数目。例如,指定数目可以是存储器单元(例如,块b)上的一个页面条带的页面数目。在另一实例中,可以根据预定数目(例如,15或16页等)来指定所述数目。

在一些实施方案中,当存储器子系统确定所述一组奇偶校验数据不满足大小条件时,存储器子系统基于存储在对应页面条带中的相应主机数据继续将附加奇偶校验数据累积并保存到易失性存储器上的所述一组奇偶校验数据,直到满足大小条件。

在一些实施方案中,当存储器子系统确定所述一组奇偶校验数据满足大小条件时,存储器子系统可以将保存在易失性存储器上的所述一组奇偶校验数据存储到存储器装置130的另一单元。例如,存储器子系统可以确定所述一组奇偶校验数据(例如,r0至r14)满足大小条件,例如,所述一组奇偶校验数据的大小等于存储器单元202(例如,块b)的一整条页面条带的数据的大小。此外,存储器子系统可以确定保存所述一组奇偶校验数据(例如,r0至r14)的页面数目等于15页数据。如图2所示,响应于确定满足大小条件,存储器子系统可以将所述一组奇偶校验数据(例如,r0至r14)存储在存储器装置130的单元202(例如,块b)的页面条带(例如,条带0)上,所述单元是不同于单元201的单元。因此,存储器子系统110可以在不同的存储器单元中分离主机数据和奇偶校验数据。一旦所述一组奇偶校验数据存储在存储器装置130的不同单元中,所述一组奇偶校验数据就从易失性存储器中移除,并且可以开始为不同的一组主机数据计算不同的所述一组奇偶校验数据的新循环。当新的所述一组奇偶校验数据的大小满足大小条件时,可以将新的所述一组奇偶校验数据存储在单元202的下一个条带(例如,条带1)上。

在一些实施方案中,存储器子系统可以指定用于专门存储主机数据的单元(例如,块)和/或指定用于专门存储奇偶校验数据的单独单元。在一些实例中,存储器子系统可以将与存储器装置130的不同单元(例如,不同块)相对应的所述一组奇偶校验数据存储在专用于专门存储奇偶校验数据的单元(例如,单元202)内。例如,单元202的部分210、212和220可以存储分别对应于块a、b和z的奇偶校验数据。存储子系统可以使用存储在单元202上的所述一组奇偶校验数据的对应奇偶校验数据来重构存储在单元201上的所述一组主机数据的一条主机数据,当在与存储器装置130相关联的故障的情况下不能从单元201读取该条主机数据时。

在一些实施方案中,大小条件的指定大小可以是小于一整条页面条带的数据的大小的预定数量。在一些实施方式中,用于大小条件的指定页面数目可以是小于整条页面条带上的页面数目的预定页面数目。可以定义这些类型的大小条件以适应存储与存储在专用于存储奇偶校验数据的块上的所述一组奇偶校验数据相对应的奇偶校验值。例如,如图2所示,单元202的条带0的管芯3的最后一个平面用于基于条带0的先前平面(r0至r14)中的所述一组奇偶校验数据中的xor操作来存储奇偶校验数据。在存储奇偶校验数据的数据位置出现故障的情况下,对应于所述一组奇偶校验数据的奇偶校验值可以用于恢复所述一组奇偶校验数据的奇偶校验数据。

在一些实施方案中,代替在满足大小条件时存储所述一组奇偶校验数据,只要将整页的主机数据存储在主机数据单元上,就可以将奇偶校验数据存储在与主机数据分开的单元中。亦即,例如,在主机数据存储在整条页面条带0中且计算对应于单元201的条带0的奇偶校验数据之后,可将奇偶校验数据存储在单元202中的条带0的管芯0、平面0处。对应于整条页面条带0的奇偶校验数据可以存储在单元202中,而不必首先将其存储在易失性存储器中,这可以避免累积奇偶校验数据,直到累积了整条页面条带的奇偶校验数据,从而避免易失性存储器中的大容量。

图3是根据本公开的一些实施例的不同存储器子系统单元中的分离主机数据和奇偶校验数据之间的关系的实例。在实施方案中,存储器子系统可以实施机制以在存储于一个存储器单元的特定页面条带中的主机数据与对应于主机数据的特定页面条带的不同存储器单元上的奇偶校验数据之间创建关系。在一些实例中,存储器子系统可以利用存储主机数据和奇偶校验数据的页面的页面标头中的附加字段。附加字段可以用于标识存储对应奇偶校验数据的位置,反之亦然。例如,图3示出了对应于单元201(例如,块a)的页面条带0的管芯-0的平面p0包含“标头+数据”,而对应于单元202(例如,块b)的页面条带0的管芯-0的平面p0包含“标头+r0”。当存储器子系统110将主机数据写入单元201中时,存储器子系统可以添加附加字段,用于在标头内包含对应的奇偶校验数据位置。对于图2示出的实例,标头信息可以包含以下内容:

对于(管芯-0至管芯-3)(p0至p3)处的页面条带0,标头指向“单元202,页面条带0,管芯0,p0;

对于(管芯-0至管芯-3)(p0至p3)处的页面条带1,标头指向“单元202,页面条带0,管芯0,p1;

对于(管芯-0至管芯-3)(p0至p3)处的页面条带2,标头指向“单元202,页面条带0,管芯0,p2;

对于(管芯-0至管芯-3)(p0至p3)处的页面条带3,标头指向“单元202,页面条带0,管芯0,p3。

另一方面,当存储器子系统110在单元202中写入奇偶校验数据时,存储器子系统可以在每一标头内添加附加字段,以用于包含基于其生成页面处的奇偶校验数据的对应主机数据位置。对于图2示出的实例,奇偶校验数据页面中的标头信息可以包含以下内容:

对于页面条带0、管芯-0、p0(例如,奇偶校验r0),标头指向源自“单元201,页面条带0”的奇偶校验;

对于页面条带0、管芯-0、p1(例如,奇偶校验r1),标头指向源自“单元201,页面条带1”的奇偶校验;

对于页面条带0、管芯-0、p2(例如,奇偶校验r2),标头指向源自“单元201,页面条带2”的奇偶校验;

对于页面条带0、管芯-0、p3(例如,奇偶校验r3),标头指向源自“单元201,页面条带3”的奇偶校验。

在存储主机数据的存储器装置的一部分上的读取失败的情况下,存储器子系统可以参考标头字段以识别对应的奇偶校验数据位于何处,并使用奇偶校验数据来重构主机数据。

在一些实施方案中,在主机数据和奇偶校验数据之间识别的关系可以用于改进装置初始化。例如,存储器子系统可以将奇偶校验数据标头中可用的关系信息存储在具有预分配文件id的控制结构(例如,文件)中以供以后使用。由于奇偶校验数据标头指向从其生成奇偶校验数据的每个块位置,因此在对应于全组奇偶校验数据的奇偶校验标头中可获得存储在存储器装置中的主机数据的所有数据位置的完整列表。在存储器装置初始化以执行存储器操作时,存储器子系统可跳过扫描所有数据块以识别存储经编程数据的数据块位置,且改为使用控制结构来识别存储主机数据的数据块位置。因此,使用控制结构可以节省原本将在装置初始化期间花费的时间。

图4是根据本公开的一些实施例的在将存储器装置的不同单元中的奇偶校验数据和主机数据分离之前将奇偶校验数据存储在易失性存储器中直到满足大小条件的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1所示的奇偶校验处理组件113执行。尽管以特定的顺序或次序示出,但是除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应当仅被理解为实例,并且可以以不同次序执行所说明的过程且可并行执行一些过程。此外,在各种实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有的过程。其它过程流程也是可能的。

在操作410处,处理逻辑将奇偶校验数据累积到易失性存储器上的一组奇偶校验数据,所述奇偶校验数据基于存储器装置的第一单元的页面条带上的一组主机数据。在一些实例中,易失性存储器可以包含sram或dram。在一些实例中,基于在页面条带上的所述一组主机数据之间执行的xor操作来生成奇偶校验数据。在一些实例中,奇偶校验数据可以是独立nand冗余阵列(rain)奇偶校验数据。

在操作420处,处理逻辑确定所述一组奇偶校验数据是否满足大小条件。在一些实例中,当所述一组奇偶校验数据的第一大小等于或大于第二单元上的整条页面条带的数据的第二大小时,所述一组奇偶校验数据满足大小条件。在一些其它实例中,当保存所述一组奇偶校验数据的第一页面数目等于或大于第二单元上的一个页面条带的第二页面数目时,所述一组奇偶校验数据满足大小条件。

在操作430处,处理逻辑响应于确定所述一组奇偶校验数据不满足大小条件,继续将附加奇偶校验数据附加到所述一组奇偶校验数据,附加奇偶校验数据基于一或多个对应的附加页面条带上的一或多组相应的主机数据。在一些实例中,第一单元专用于专门保存主机数据。

在操作440处,处理逻辑响应于确定所述一组奇偶校验数据满足大小条件,将所述一组奇偶校验数据存储在存储器装置的第二单元中。在一些实例中,第一单元不同于第二单元。在一些实例中,第二单元专用于专门保存奇偶校验数据。另外,当主机数据不可从第一单元读取时,处理逻辑使用第二单元上的所述一组奇偶校验数据的对应奇偶校验数据来重构存储在第一单元上的所述一组主机数据的主机数据。

图5是根据本公开的一些实施例的在存储器子系统中将奇偶校验数据与主机数据分离的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1所示的奇偶校验处理组件113执行。尽管以特定的顺序或次序示出,但是除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应当仅被理解为实例,并且可以以不同次序执行所说明的过程且可并行执行一些过程。此外,在各种实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有的过程。其它过程流程也是可能的。

在操作510处,处理逻辑执行多个写入操作以将一组主机数据写入到存储器子系统的第一单元上。在一些实例中,第一单元可以表示数据块。在操作520处,处理逻辑基于主机数据生成一组奇偶校验数据。在一些实例中,奇偶校验数据可以是独立nand冗余阵列(rain)奇偶校验数据。

在操作530处,处理逻辑确定所述一组奇偶校验数据是否满足大小条件。在一些实例中,当所述一组奇偶校验数据的第一大小等于或大于第二单元上的整条页面条带的数据的第二大小时,所述一组奇偶校验数据满足大小条件。在一些实例中,当保存所述一组奇偶校验数据的第一页面数目等于或大于第二单元上的一个页面条带的第二页面数目时,所述一组奇偶校验数据满足大小条件。

在操作540处,处理逻辑将一组奇偶校验数据存储在存储器子系统的第二单元上。在一些实例中,第一单元不同于第二单元。在一些实例中,第一单元专用于专门保存主机数据。在一些实例中,第二单元专用于专门保存奇偶校验数据。另外,响应于确定所述一组奇偶校验数据不满足大小条件,处理逻辑将所述一组奇偶校验数据存储在随机存取存储器上。再者,当主机数据不能从第一单元读取时,处理逻辑使用第二单元上的所述一组奇偶校验数据的奇偶校验数据来重构存储在第一单元上的所述一组主机数据的主机数据。

图6示出了计算机系统600的实例机器,在所述计算机系统内可以执行用于使所述机器执行在此讨论的任何一或多个方法的指令集。在一些实施例中,计算机系统600可以对应于主机系统(例如,图1所示的主机系统120)。所述主机系统包含,耦合到或利用存储器子系统(例如,图1所示的存储器子系统110),或者可以用于执行控制器的操作(例如,执行操作系统以执行对应于图1所示的奇偶校验处理组件113的操作)。在其它实施例中,所述机器可以连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。所述机器可以在客户机-服务器网络环境中作为服务器或客户机、作为对等(或分布式)网络环境中的对等机器、或作为云计算基础设施或环境中的服务器或客户机来操作。

所述机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web装置、服务器、网络路由器、交换机或网桥、或者能够执行指定所述机器要采取的动作的一组指令(顺序或以其它方式)的任何机器。进一步地,尽管说明了单个机器,但术语“机器”还应当被理解为包含单独地或联合地执行指令的集合(或多个集合)以执行本文所讨论的方法中的任何一或多者的机器的任何集合。

实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、闪存、诸如同步dram(sdram)或rdram等的动态随机存取存储器(dram))、静态存储器606(例如,闪存、静态随机存取存储器(sram)等)、以及数据存储系统618,它们经由总线630彼此通信。

处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或者实施其它指令集的处理器、或者实施指令集组合的处理器。处理装置602还可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602配置用于执行用于执行本文所论述的操作和步骤的指令626。计算机系统600可以进一步包含网络接口装置608以通过网络620进行通信。

数据存储系统618可以包含机器可读存储介质624(也称为计算机可读介质),在其上存储了一或多个指令集626或体现在此描述的任何一或多个方法或功能的软件。指令626还可以全部或至少部分地驻留在主存储器604内和/或处理装置602内,在其由计算机系统600执行期间,主存储器604和处理装置602也构成机器可读存储介质。机器可读存储介质624、数据存储系统618和/或主存储器604可以对应于图1所示的存储器子系统110。

在实施例中,指令626包含用于实现对应于奇偶校验处理组件(例如,图1所示的奇偶校验处理组件113)。虽然机器可读存储介质624在实例实施例中被示出为单个介质,但是术语“机器可读存储介质”应当被认为包含存储一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应当被认为包含能够存储或编码用于由机器执行的一组指令并且使得机器执行本公开的任何一或多个方法的任何介质。因此,术语“机器可读存储介质”应被认为包含但不限于固态存储器、光学介质和磁性介质。

前面详细描述的有些部分已经表示为在电脑存储器内的数据比特的操作的算法和符号描述。这些算法描述和表示为数据处理领域的技术人员通常使用的,从而最有效地将它们的工作实质传递到其它领域的技术人员。本文的算法通常是指得到期望结果的操作的自相容序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采用能够被存储、组合、比较以及以其它方式被操纵的电或磁信号的形式。有时主要是为了公共使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字、或者类似名称,经证实这是方便的。

然而,应当记住,所有这些和类似术语将与适当物理量关联,并且仅仅是应用于这些量的方便标签。本公开可以指的是计算机系统或类似的电子计算装置的动作和过程,其对表示为计算机系统的寄存器和存储器内的物理(电子)量的数据进行操作并将其转换成类似地表示为计算机系统存储器或寄存器或的信息存储系统内的物理量的其它数据。

本公开还涉及一种用于执行本文描述的操作的设备。此设备可具体地被构建用于预期目的,或者其可包含由存储于计算机中的计算机程序选择性地激活或可由其重新配置的通用计算机。此类计算机程序可存储于计算机可读存储介质中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、cd-rom和磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或者适于存储电子指令的任何类型的介质,每一介质耦合到计算机系统总线。

本文提出的算法和显示并不固有地与任何特定的计算机或其它装置相关。各种通用系统可与根据本文的教示的程序一起使用,或者其可证明构造更专用的装置来执行所述方法是方便的。多种这些系统的结构从下面的描述将是显而易见的。另外,没有参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施本文所描述的本公开的教示。

本公开可被提供作为计算机程序产品或软件,所述软件可以包含其上存储有指令的机器可读介质,所述指令可用于对计算机系统(或其它电子装置)编程以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪速存储器组件等。

在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。显然,在不脱离所附权利要求中阐述的本公开的实施例的较宽精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图被认为是说明性的而不是限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1