用于提供数据完整性的设备及方法

文档序号:6495417阅读:310来源:国知局
用于提供数据完整性的设备及方法
【专利摘要】本发明包含用于提供数据完整性的设备(例如,计算系统、存储器系统、控制器等)及方法。举例来说,一种或一种以上方法可包含:接收将写入到若干个存储器装置的若干个数据扇区;将对应于所述若干个扇区且包含第一完整性数据的第一元数据附加到所述若干个扇区,所述第一元数据具有特定格式;产生将提供于第二元数据中的第二完整性数据,所述第二完整性数据对应于所述若干个扇区中的至少一者(其中所述第二元数据具有第二格式);及产生将提供于所述第二元数据中的第三完整性数据,所述第三完整性数据包含对应于所述第二完整性数据及所述若干个扇区中的所述至少一者的错误数据。
【专利说明】用于提供数据完整性的设备及方法
【技术领域】
[0001]本发明一股来说涉及半导体存储器装置、方法及系统,且更明确地说涉及用于提供数据完整性的设备及方法。
【背景技术】
[0002]存储器装置通常提供为计算机或其它电子装置中的内部电路、半导体电路、集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它。非易失性存储器可通过在不供电时保持所存储数据而提供持久性数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM)以及其它。
[0003]存储器装置可一起经组合以形成例如固态驱动器(SSD)的存储器系统的存储卷。固态驱动器可包含非易失性存储器,例如NAND快闪存储器及NOR快闪存储器,及/或可包含易失性存储器,例如DRAM及SRAM,以及各种其它类型的非易失性及易失性存储器。可将包含浮动栅极快闪装置及使用半导体-氧化物-氮化物-氧化物-半导体及金属-氧化物-氮化物-氧化物-半导体电容器结构的电荷陷阱快闪(CTF)装置(其将数据存储于氮化物层中的电荷陷阱中)的快闪存储器装置用作各种各样的电子应用程序的非易失性存储器。快闪存储器装置通常使用允许高存储器密度、高可靠性及低电力消耗的单晶体管存储器单元。
[0004]SSD可用于替换硬盘驱动器作为计算机的主存储装置,这是因为固态驱动器就性能、大小、重量、耐用性、操作温度范围及电力消耗来说可能具有优于硬驱动器的优势。举例来说,在与磁盘驱动器相比时,SSD可由于其缺乏移动部件(此可避免搜寻时间、延时及与磁盘驱动器相关联的其它电子机械延迟)而具有优越性能。SSD制造商可使用非易失性快闪存储器来形成可不使用内部电池供电的快闪SSD,因此允许驱动器更通用及紧凑。
[0005]SSD可包含若干个存储器装置,例如若干个存储器芯片。存储器装置可包含若干个裸片及/或逻辑单元(LUN)。每一裸片可包含若干个存储器阵列及其上的外围电路,且存储器阵列可包含组织成若干个物理页的若干个存储器单元块。
[0006]SSD可从主机接收与存储器操作(例如读取及写入操作)相关联的命令以在存储器装置与主机之间传送数据(例如,用户数据及相关联完整性数据,例如错误数据及地址数据等)。提供在存储器装置与主机之间传送的与此些操作相关联的数据的端到端完整性以便提供(例如)在传送期间数据并未被损坏的可信度可是有益的。

【发明内容】
【专利附图】

【附图说明】
[0007]图1是根据本发明的一个或一个以上实施例的包含至少一个存储器系统的计算系统的功能框图。
[0008]图2是根据本发明的一个或一个以上实施例的与提供所传送数据的完整性相关联的存储器控制器的功能框图。
[0009]图3图解说明根据本发明的一个或一个以上实施例的与提供所传送数据的完整性相关联的元数据格式。
[0010]图4图解说明根据本发明的一个或一个以上实施例的与提供所传送数据的完整性相关联的元数据格式。
[0011]图5图解说明根据本发明的一个或一个以上实施例的与提供所传送数据的完整性相关联的元数据格式。
[0012]图6是根据本发明的一个或一个以上实施例的存储器控制器的功能框图。
【具体实施方式】
[0013]本发明包含用于提供数据完整性的设备(例如,计算系统、存储器系统、控制器等)及方法。举例来说,一个或一个以上方法实施例可包含:接收将写入到若干个存储器装置(例如,单个存储器装置)的若干个数据扇区;将对应于所述若干个扇区且包含第一完整性数据的第一元数据附加到所述若干个扇区,所述第一元数据具有特定格式;产生将提供于第二元数据中的第二完整性数据,所述第二完整性数据对应于所述若干个扇区中的至少一者(其中所述第二元数据具有第二格式);及产生将提供于所述第二元数据中的第三完整性数据,所述第三完整性数据包含对应于所述第二完整性数据及所述若干个扇区中的所述至少一者的错误数据。
[0014]本发明的一个或一个以上实施例提供一种用于(举例来说)在存储器系统内提供端到端数据完整性的灵活架构。例如,一个或一个以上实施例可执行元数据格式转换,此可提供适合于与不同类型的存储器装置相关联的不同页大小及/或可用元数据大小的能力,以及其它益处。一个或一个以上实施例包含可根据本文中所描述的实施例执行错误恢复操作同时维持数据完整性的控制器,此可提供例如减少要做的装置制造测试(例如,在提供给所述领域中的消费者之前在装运前执行的测试)的量的益处,以及其它益处。
[0015]在本发明的以下详细说明中,参考形成本发明的一部分的附图,且图式中以图解方式展示可如何实践本发明的一个或一个以上实施例。充分详细地描述这些实施例以使得所属领域的技术人员能够实践本发明的所述实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程、电及/或结构改变。如本文中所使用,标号“N”(尤其关于图式中的元件符号)指示如此标示的特定特征的数目可与本发明的一个或一个以上实施例包含于一起。如本文中所使用,“若干个”某事物可是指此类事物中的一者或一者以上(例如,若干个存储器装置可是指一个或一个以上存储器装置)。
[0016]本文中的各图遵循编号惯例,其中第一个数字或前几个数字对应于图式图编号,且其余数字识别所述图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,108可指代图1中的元件“08”,且类似元件可在图2中指代为208。如将了解,可添加、交换及/或消除在本文中的各种实施例中所展示的元件以提供本发明的若干个额外实施例。另外,如将了解,所述图中所提供的元件的比例及相对标度打算图解说明本发明的所述实施例,且不应视为限制性意义。
[0017]图1是根据本发明的一个或一个以上实施例的包含至少一个存储器系统104的计算系统100的功能框图。存储器系统104可是(例如)固态驱动器(SSD),且可包含物理主机接口 106、存储器系统控制器108 (例如,处理器及/或其它控制电路)及提供存储器系
统104的存储卷的一个或一个以上存储器装置110-1.....110-N(例如,例如NAND快闪装
置的固态存储器装置)。
[0018]如图1中所图解说明,物理主机接口 106耦合到控制器108且可用于在存储器系统104与主机102之间传递数据。接口 106可是呈标准化接口的形式。举例来说,在存储器系统104是用于计算系统100中的数据存储时,物理主机接口 106可是串行高级技术附件(SATA)、外围组件互连快递(PCIe)或通用串行总线(USB)以及其它连接器及接口。然而,一股来说,物理主机接口 106可提供用于在存储器系统104与具有用于物理主机接口 106的相容接受器的主机102之间传递控制、地址、数据及其它信号的接口。
[0019]主机102可是主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储卡读卡器以及各种其它类型的主机。主机102可包含系统主板及/或底板,且可包含存储器存取装置(例如,若干个处理器)。
[0020]控制器108可与存储器装置110-1.....1IO-N通信以读取、写入及擦除数据以及
其它操作。举例来说,控制器108可是可包含若干个组件(例如,一个或一个以上集成电
路)的电路及/或固件。举例来说,控制器108可包含用于控制跨越存储器装置110-1.....110-N的存取的控制电路及用于提供主机102与存储器系统104之间的翻译层的电路。因
此,存储器控制器108可选择性地耦合存储器装置110-1.....110-N的I/O连接(图1中
未展示)以在适当时间在适当I/O连接处接收适当信号。类似地,主机102与存储器系统
104之间的通信协议可不同于存取存储器装置110-1.....110-N所使用的通信协议。接
着,控制器108可将从主机102接收的命令翻译成适当命令以实现对若干个存储器装置110-1、...、IIO-N 的所要存取。
[0021]存储器装置110-1、...、110_N可包含一个或一个以上存储器单元(例如,非易失性存储器单元)阵列。>举例来说,所述阵列可是具有NAND架构的快闪阵列。然而,实施例并不限于特定类型的存储器阵列或阵列架构。
[0022]存储器装置110-1.....110-N可包含若干个存储器单元,所述存储器单元可被分
组成(例如)包含若干个物理页的若干个块。若干个块可包含于存储器单元平面中,且阵列可包含若干个平面。作为一个实例,存储器装置可包含每页4320个字节(B)、每块128个页、每平面2048个块及每装置16个平面的数据。
[0023]在操作中,可将数据作为数据页写入到存储器系统的存储器装置(例如,系统104
的存储器装置110-1.....110-N)或从所述存储器装置读取。因此,数据页可称为存储器系
统的数据传送大小。可在扇区基础上将数据传送到主机(例如,主机102)/从所述主机传送数据。因此,数据扇区可称为主机的数据传送大小。
[0024]尽管数据页可包含若干个字节的用户数据(例如,包含若干个数据扇区的数据有效负载)以及对应于其的元数据,但数据页的大小通常可仅是指用于存储用户数据的字节数目。作为一实例,具有4KB的页大小的数据页可包含用于存储用户数据的4KB (例如,8个扇区,假设扇区大小为512B)以及用于存储对应于用户数据的元数据的若干个字节(例如,32B、54B、224B等)。所述元数据可包含完整性数据,例如错误数据(例如,错误检测及/或校正码数据)及/或地址数据(例如,逻辑地址数据),以及对应于用户数据的其它元数据。
[0025]不同类型的存储器装置(例如,装置110-1.....110-N)可提供不同页大小及/或
可具有可与所存储页相关联地获得的不同量的元数据字节。此外,不同存储器装置类型可具有不同位错误率,此可导致用以确保数据页的完整性所必需的不同量的元数据(例如,具有较高位错误率的存储器装置可比具有较低位错误率的存储器装置需要更多字节的错误校正码数据)。作为一实例,多级单元(MLC)NAND快闪装置可比单级单元(SLC)NAND快闪装置具有更高的位错误率。因此,MLC装置可比SLC装置使用更多元数据字节用于错误数据。在一些例子中,用以提供数据页的所要完整性所必需的元数据量可超过存储器装置所提供的元数据字节。即,元数据字节的可用量可小于期望提供对应于所述页的扇区(例如,用户数据)的充分端到端数据完整性的量。
[0026]图2是根据本发明的一个或一个以上实施例的与提供所传送数据的完整性相关联的存储器控制器208的功能框图。控制器208可是存储器系统的组件,例如图1中所图解说明的存储器系统104。所属领域的技术人员将了解,除图2中所图解说明的那些电路及组件外还可提供额外电路及组件,且已减少图2的细节以促进图解说明的简易。实施例不限于图2中所图解说明的实例。例如,控制器208的所图解说明组件中的一者或一者以上可集成为单个组件。此外,所图解说明组件中的一者或一者以上在本发明的若干个实施例中可是任选的。
[0027]如图2中所展示,存储器控制器208包含用以在主机接口 206与若干个存储器装置210之间传送数据的控制电路。存储器装置210可是例如图1中所图解说明的存储器装置110-1.....110-N的存储器装置。
[0028]在若干个实施例中,控制电路经配置以在第一格式与第二格式之间调整(例如,改变)元数据格式以提供在主机接口 206与若干个存储器装置210之间传送的数据的完整性。作为一实例,第一元数据格式可在每扇区基础上包含完整性数据且第二元数据格式可在多扇区基础上包含完整性数据。如下文进一步描述,提供所传送数据的完整性可包含:执行具有第一格式(例如,图3中所展示的元数据341)且对应于从主机接收(例如,连同来自所述主机的写入请求一起)的若干个扇区(例如,位于图3中所展示的数据字段348中的扇区)的元数据的第一完整性数据(例如,错误数据及/或地址数据)的校验;产生第二元数据(例如,图4中所展示的元数据447及/或图5中所展示的元数据547-0/547-1)的第二完整性数据(例如,图4中所展示的完整性数据454-0/454-1及/或图5中所展示的552/554),所述第二完整性数据对应于所述若干个扇区中的至少一者;及产生第二元数据的第三完整性数据(例如,图4中所展示的完整性数据458及/或图5中所展示的558-0/558-1)。第三完整性数据包含对应于第二完整性数据以及所述若干个扇区中的至少一者的错误数据。
[0029]控制器208可写入从主机接收(例如,响应于来自主机的写入请求)的数据(例如,用户数据)的若干个扇区作为页。在各种例子中,由控制器208接收的扇区的数目可小于对应于若干个存储器装置210的页大小的扇区的数目。在此些例子中,控制器208可执行部分页写入操作,所述操作可包含(举例来说)通过合并从主机接收的扇区与从存储器装置210读取的页的扇区(例如,通过用从主机接收的扇区替换所读取页的扇区)而形成经合并页,且接着将所述经合并页写入到存储器装置210。类似地,控制器208可执行部分页读取操作(例如,响应于针对小于对应于存储器装置210的页大小的扇区的数目的若干个扇区的主机读取请求)。部分页读取操作可包含从存储器装置210读取数据页,及仅将所请求的那些数据扇区提供到主机。如下文进一步所描述,本发明的实施例可提供与此些部分页写入及/或读取操作相关联的所传送数据的完整性。
[0030]如图2中所图解说明,控制器208可包含数据完整性(DI)插入组件220。组件220可将具有特定元数据格式的元数据附加到从主机接收的数据扇区。所述特定元数据格式可称为主机格式。在图3中图解说明实例主机元数据格式,其图解说明位于数据字段348 (其可称为扇区字段348)中且具有附加到其的元数据341的用户数据扇区。在图3中所展示的实例中,扇区字段348的大小为512B (例如,扇区大小为512B)且元数据341是包含提供与对应于扇区字段348的扇区相关联的完整性数据的子字段342、344及346的SB数据完整性字段(DIF)。实施例并不限于此实例。例如,扇区字段348的大小可大于或小于512B且元数据字段341的大小可大于或小于SB。作为一个实例,主机扇区大小可为4096B,使得数据字段348的大小为4096个字节且元数据字段341的大小可为128B (例如,每一主机扇区可具有与其相关联的128B的元数据)。在所图解说明的实例中,字段346包含对应于用户数据(其对应于扇区字段348)的扇区的错误数据。在此实例中,字段346的错误数据是对应于所述扇区(其对应于扇区字段348)的2B循环冗余校验(CRC)。字段344是可包含进一步完整性数据的2B应用标签,且字段342是可包含与对应于扇区字段348的扇区相关联的地址数据的4B参考字段。
[0031]在若干个实施例中,将元数据341附加到从主机接收的用户数据的每一扇区(例如,元数据341的完整性数据是在每扇区基础上)。作为一实例,组件220可在每扇区基础上计算每一扇区的错误数据346。若干个扇区及对应元数据341中的每一者(例如,若干个数据群组340中的每一者)可被传送到控制器208的完整性组件224(例如,经由与写入操作相关联的数据缓冲器222)。在若干个实施例中,与每一数据群组340相关联的元数据341可源自主机接口 206且可使用组件220来插入额外完整性数据,例如在图4中所图解说明的额外完整性数据(例如,452、454-0、454-1等)。在若干个实施例中,与元数据341的字段342、344及346相关联的数据可被附加到从主机接收的数据扇区(例如,使用组件220),或可在由控制器208接收之前将元数据341附加到所述数据扇区。
[0032]在图2中所图解说明的实例中,控制器208包含数据群组340在被传送到完整性组件224之前可被传送到的合并组件228 (例如,如果扇区的数目小于对应于全页的扇区的数目使得写入操作是部分页写入操作)。在图2中所图解说明的实例中,与存储器装置210相关联的页大小为4KB(例如,八个512B扇区)。
[0033]合并组件228可与部分页写入操作相关联地接收对应于来自若干个存储器装置210的数据页的第二数目个扇区(例如,八个扇区)。所述第二数目个扇区可包含与第二格式(例如,与存储器装置210相关联的格式,且所述格式可在本文中称为存储器元数据格式或经调整格式)相一致的对应于其的元数据。下文结合图4及5进一步描述实例经调整格式。在若干个实施例中,合并组件228可通过用从主机接收的第一数目个扇区(例如,对应于扇区字段348的扇区)中的至少一者替换对应于从存储器装置210接收的数据页的第二数目个扇区中的至少一者来形成经合并页。合并组件228还可在将所述经合并页的扇区提供到完整性组件224之前将与所述经合并页的扇区相关联的元数据格式从经调整格式改变为主机格式。在若干个实施例中,合并组件228经配置以在用对应于扇区字段348的第一数目个扇区中的至少一者替换对应于所述数据页的第二数目个扇区中的至少一者之前执行对应于所述第二数目个扇区的元数据的错误数据的校验(例如,CRC校验)。
[0034]完整性组件224经配置以执行对应于将写入到装置210作为页的若干个扇区的第一元数据341的完整性数据的校验。例如,完整性组件224可针对所述扇区中的每一者计算错误数据(例如,CRC)并将其与元数据341的错误数据346进行比较,此可提供从组件220传送到组件224的数据的完整性的指示。完整性组件224可包含CRC引擎及/或错误校正码(ECC)引擎,以及经配置以执行所接收数据的完整性校验的其它电路。
[0035]完整性组件224还可产生具有第二元数据格式(例如,存储器元数据格式,例如图4及5中所图解说明且与存储器装置210相关联的那些存储器元数据格式)的第二元数据(例如,图4中所展示的元数据447及/或图5中所展示的元数据547-0/547-1)。即,组件224将与第一数目个扇区(例如,对应于扇区字段348的若干个扇区)相关联的元数据格式改变为经调整元数据格式。第二元数据格式可是例如图4及5中所图解说明的那些格式的格式,且可取决于存储器装置210的特定特性(例如,装置类型、错误检测及/或校正特性、页大小及/或元数据字节可用量)以及其它特性。第二元数据格式可包含对应于第一数目个扇区中的至少一者的第二完整性数据(例如,图4中所展示的完整性数据454-0/454-1及/或图5中所展示的552/554)。除第一元数据(例如,341)的第一完整性数据外,或作为所述第一完整性数据的替换,第二完整性数据还可包含错误数据及/或地址数据。在若干个实施例中,第二元数据还可包含第三完整性数据,所述第三完整性数据可包含对应于第二完整性数据以及第一数目个扇区中的至少一者的错误数据。例如,第三完整性数据可是可覆盖(例如,保护)用户数据的一个或一个以上扇区以及对应于所述一个或一个以上扇区的第二完整性数据的错误校正码,例如BCH错误校正码(ECC)。完整性组件224可与改变与将写入到存储器装置210的用户数据相关联的元数据格式相关联地产生第二元数据的第二完整性数据。
[0036]在若干个实施例中,控制器208包含经配置以产生第二元数据的第三完整性数据的组件226。在图2中所图解说明的实例中,组件226经配置以产生呈BCHECC码的形式的对应于第二元数据的第二完整性数据以及若干个用户数据扇区中的至少一者的第三完整性数据。组件226可包含ECC引擎或适合于产生错误数据的其它组件。
[0037]控制器208经配置以将若干个扇区及对应第二元数据写入到存储器装置210 (例如,作为数据页)。如图2中所图解说明,控制器208可包含组件230,组件230经配置以与关联于被写入到所述存储器装置的若干个扇区中的一者或一者以上的读取操作相关联地执行与对应于所述一个或一个以上扇区的第二元数据相关联的第三完整性数据的校验(例如,对应于所述一个或一个以上扇区及对应于所述一个或一个以上扇区的第二完整性数据的BCHECC的校验以检测错误数据的存在)。组件230还可校正与所述一个或一个以上扇区及/或对应于所述一个或一个以上扇区的第二完整性数据相关联的若干个错误(如果有)。接着,所校验(且可能经校正)扇区及具有经调整元数据格式的对应第二完整性数据可被提供到控制器208的第二完整性组件234。如果读取操作是全页读取操作,那么可将由组件230接收的数据经由缓冲器232直接传送到完整性组件234。如果读取操作是部分页读取操作,那么可将由组件230接收的数据在经由缓冲器232传送到完整性组件234之前传送到合并组件228。在此实例中,部分页读取操作将是其中由主机请求的512B扇区的数目小于八个扇区的读取操作,这是因为页大小为4KB (例如,每一全4KB页包含八个512B扇区)。组件226可包含ECC引擎或适合于检测及/或校正数据中的错误的其它组件。
[0038]完整性组件234可执行对应于从存储器装置210读取的所接收用户数据扇区的第二元数据的第二完整性数据的校验。作为一实例,第二完整性数据可包含呈对应于一个或一个以上扇区的CRC形式的错误数据。完整性组件234可针对所述一个或一个以上扇区而产生CRC,所述CRC可与第二完整性数据(例如,先前由完整性组件224产生并在将一个或一个以上扇区写入到存储器装置210之前插入第二元数据中的第二完整性数据)的CRC进行比较。如下文进一步所描述,第二完整性信息可在多扇区基础上包含错误数据(例如,CRC)。
[0039]完整性组件234还可将与从存储器装置210读取的扇区相关联的元数据格式从经调整元数据格式调整(例如,转换)回到主机格式(例如,图3中所展示的格式)。将经调整元数据格式转换回为主机格式可包含用第三元数据替换对应于从存储器装置210读取的若干个扇区的第二元数据。第三元数据可包含第四完整性数据,例如对应于完整性组件可在每扇区基础上产生的若干个扇区的错误数据(例如,CRC)。第三元数据可具有例如与元数据341相关联的格式的格式,使得第四完整性数据可经计算且包含于例如图3中所图解说明的字段346的数据字段中。
[0040]在若干个实施例中,第二完整性组件234可将具有主机格式的若干个扇区提供到组件236,组件236可在将所请求数目个扇区提供到主机之前执行对应于所述若干个扇区的第四完整性数据的校验(例如,由组件234产生的CRC)。以此方式,可与关联于将所述若干个扇区提供回到主机的读取请求相关联地确认从主机接收并写入到存储器装置210的数据(例如,作为对应于扇区字段348的若干个扇区)的完整性。在若干个实施例中,组件236可在将与所述读取请求相关联的扇区经由主机接口 206提供回到主机之前移除(例如,剥离)对应于所接收到其的扇区的元数据。然而,实施例并不限于此。例如,在若干个实施例中,可将对应于主机格式(例如,图3中所展示的格式)且由组件236接收的元数据(例如,完整性数据)的一个或一个以上部分发送到主机(例如,经由主机接口 206)而不移除。未移除的完整性数据可由主机接口 206或由主机自身(例如,在应用程序级)重新校验。
[0041]图2中所图解说明的控制器208可调整与不同格式之间的若干个扇区相关联的元数据格式,同时维持提供与所述若干个扇区以及对应于所述若干个扇区的元数据相关联的数据完整性的能力。如下文进一步所描述,经调整元数据格式可取决于所述扇区将被写入到的及/或将从其读取所述扇区的存储器装置(例如,存储器装置210)的类型。
[0042]在若干个实施例中,存储于存储器装置210中的数据(例如,根据经调整元数据格式,例如图4及5中所图解说明的经调整元数据格式)可与并非源自主机的操作(例如,读取及/或写入操作)相关联地传送到存储器装置210/从存储器装置210传送。例如,与控制器208相关联的存储器管理组件(例如,图6中所展示的613)可与数据回收过程相关联地将数据写入到存储器装置210及/或从存储器装置210读取数据。在此些例子中,例如完整性组件224及/或合并组件228的组件可校验与经调整元数据格式相关联的完整性数据(例如,替代首先将元数据从经调整元数据格式转换回为主机格式且接着校验与主机格式相关联的完整性数据)。
[0043]图4图解说明根据本发明的一个或一个以上实施例的与提供所传送数据的完整性相关联的元数据格式。图4中所图解说明的元数据格式是与特定存储器装置相关联的元数据格式(例如,图2中所展示的存储器装置210)。作为一个实例,图4中所图解说明的元数据格式可与SLC NAND存储器装置相关联。
[0044]举例来说,与图3中所图解说明的主机元数据格式相比,图4中所图解说明的元数据格式是经调整元数据格式。图4图解说明可(例如)通过上文结合图2所描述的控制器208的完整性组件224形成的数据群组460。数据群组460可是多个数据群组中的一者,所述多个数据群组各自包含连同写入操作一起(举例来说,连同对应于其的元数据一起)从主机接收的若干个扇区中的至少一者。数据群组460可在本文中称为码字460。
[0045]在图4中所图解说明的实例中,码字460包含有效负载部分445,所述有效负载部分包含两个扇区数据字段448-0及448-1。在此实例中,码字460包含两个512B扇区(例如对应于字段448-0的用户扇区O及对应于字段448-1的用户扇区I)以及元数据447。尽管在图4中未图解说明,但读者将了解,4KB数据页可包含四个码字460(例如,其中包含第三及第四用户扇区的第一额外码字460、包含第五及第六用户扇区的第二额外码字460及包含第七及第八用户扇区的第三额外码字460,连同相应对应元数据447)。在此实例中,元数据447包含56B的数据。因此,每一码字460包含IKB有效负载(例如,两个512B扇区)及56B的可用元数据。因此,将数据页写入到存储器装置可包含写入4320B的数据(例如,对应于4KB页大小的4KB的用户数据,以及320B的元数据)。
[0046]与码字460相关联的元数据447包含若干个数据字段。图4中所图解说明的箭头用于指示哪些数据部分是由特定完整性数据字段覆盖。在此实例中,字段450-0是包含与字段448-0的用户扇区(例如,扇区0DIF)相关联的8B DIF数据的完整性数据字段。S卩,字段450-0可包含在将扇区O提供到完整性组件224之前附加到扇区O (例如,经由图2中所展示的插入组件220)的元数据(例如,341)。类似地,字段450-1是包含与字段448-1的用户扇区(例如,扇区1DIF)相关联的8B DIF数据的完整性数据字段。S卩,字段450-1可包含在将扇区I提供到完整性组件224之前附加到扇区I (例如,经由图2中所展示的插入组件220)的元数据(例如,341) ο
[0047]元数据447的数据字段452是包含与码字460对应到其的数据页相关联的地址数据的4B数据完整性字段。所述地址数据(展示为快闪LBA)可是与字段448-0及448-1的用户数据扇区对应到其的逻辑数据页相关联的逻辑块地址(LBA)。对应于同一页的不同码字460的字段452可经校验以确定是否跨越对应于所述页的若干个码字来维持地址数据的完整性。
[0048]元数据447的数据字段454-0是2B错误数据字段。在此实例中,对应于字段454_0的错误数据(展示为快闪CRC扇区O)是覆盖对应于字段448-0、450-0及452的数据的CRC (例如,覆盖512B的用户扇区0、8B扇区ODIF及扇区O对应到其的页的4B快闪LBA的CRC)0类似地,元数据447的数据字段454-1是2B错误数据字段。在此实例中,对应于字段454-1的错误数据(展示为快闪CRC扇区I)是覆盖对应于字段448-1、450-1及452的数据的CRC(例如,覆盖512B的用户扇区1、8B扇区IDIF及扇区I对应到其的页的4B快闪LBA的CRC)。图4中所图解说明的经调整元数据格式的数据字段452、454-0及454-1可包含称为如上文结合图2所描述的第二完整性数据的数据。
[0049]在此实例中,元数据447的数据字段456是4B保留数据字段。可出于各种目的而与存储器系统(例如,图1中所展示的存储器系统104)内的数据传送相关联地使用字段456。例如,字段456可包含额外错误数据及/或与有效负载445相关联的其它完整性数据。然而,可出于数据完整性以外的目的来使用字段456。
[0050]元数据447的数据字段458是28B错误数据字段。在此实例中,对应于字段458的错误数据(展示为BCHECC16)是16位错误校正码(ECC),所述16位错误校正码(ECC)覆盖对应于有效负载445的1024B的用户数据(例如,用户扇区O及用户扇区I)以及与其相关联的56B的元数据447。因此,对应于字段458的错误数据支持每码字460 (例如,每1080B)的16位校正。实施例并不限于此实例。图4中所图解说明的经调整元数据格式的数据字段458可称为如上文结合图2所描述的第三完整性数据。
[0051]图4中所图解说明的经调整元数据格式可经由控制器实施且可用于与例如如上文结合图2所描述的来自主机的写入及读取请求的操作相关联地提供数据完整性。例如,完整性组件224可将与从主机接收的扇区相关联的元数据格式从第一格式(例如,主机格式,例如图3中所展示的主机格式)转换成第二格式(例如,经调整格式,例如图4中所展示的经调整格式)。写入到存储器装置210的码字(例如,460)可包含错误数据字段(例如,458),所述错误数据字段包含由组件226产生的覆盖码字的其它元数据(例如,对应于除字段458以外的数据字段的元数据447的数据)及有效负载(例如,445)的错误数据。在从存储器装置210读取所述码字(例如,响应于来自主机的读取请求)时,可经由组件230校验覆盖其它元数据及有效负载的错误数据。无论所述读取请求是部分页读取请求还是全页读取请求,控制器208均经配置以在将所请求扇区递送到主机之前将与从装置读取的码字相关联的元数据格式从经调整元数据格式转换回成主机格式,同时维持数据扇区的数据完整性。
[0052]图5图解说明根据本发明的一个或一个以上实施例的与提供所传送数据的完整性相关联的元数据格式。图5中所图解说明的元数据格式是与特定存储器装置相关联的元数据格式(例如,图2中所展示的存储器装置210)。作为一个实例,图5中所图解说明的元数据格式可与MLC NAND存储器装置相关联。
[0053]举例来说,与图3中所图解说明的主机元数据格式相比,图5中所图解说明的元数据格式是经调整元数据格式。图5图解说明可(例如)由上文结合图2所描述的控制器208的完整性组件224及组件226形成的第一数据群组560-0及第二数据群组560-1。数据群组560-0及560-1可称为码字560-0及560-1。
[0054]在图5中所图解说明的实例中,码字560-0及560-1包含相应有效负载部分545_0及545-1,以及相应元数据547-0及547-1。在此实例中,码字560-0及560-1中的每一者包含两个扇区数据字段(例如,码字560-0包含扇区字段548-0及548-1且码字560-1包含扇区字段548-2及548-3)。码字560-0包含两个512B扇区(例如,对应于字段548-0的用户扇区O及对应于字段548-1的用户扇区I)。码字560-1包含两个512B扇区(例如,对应于字段548-2的用户扇区2及对应于字段548-3的用户扇区3)。尽管在图5中未图解说明,但读者将了解,4KB数据页可包含四个码字(例如,包含第五及第六用户扇区的额外码字560-0及包含第七及第八用户扇区的额外码字560-1,连同分别对应的元数据547-0及547-1)。在此实例中,元数据547-0/547-1包含56B的数据。因此,每一码字包含1024B有效负载(例如,两个512B扇区)及56B的可用元数据。因此,将数据页写入到存储器装置可包含写入4320B的数据(例如,对应于4KB页大小的4KB的用户数据,以及320B的元数据)。
[0055]与码字560-0相关联的元数据547-0及与码字560-1相关联的元数据547-1各自包含若干个数据字段。在图5中所图解说明的实例中,经调整元数据格式使得与码字560-0的元数据547-0相关联的数据字段不同于与码字560-1的元数据547-1相关联的数据字段(例如,以不同方式使用56B的可用元数据)。类似于图4,图5中所图解说明的箭头用于指示哪些数据部分是由特定完整性数据字段覆盖。
[0056]元数据547-0的数据字段552是包含与码字560_0及560_1对应于其的数据页相关联的地址数据的4B数据完整性字段。地址数据(展示为快闪LBA)可是与字段548-0、548-1,548-2及548-3的用户数据扇区对应于其的逻辑数据页相关联的逻辑块地址对应于同一页的不同码字560-0的字段552可经校验以确定是否跨越对应于所述页的若干个码字来维持地址数据的完整性。
[0057]元数据547-1的数据字段554是4B错误数据字段。在此实例中,对应于字段554的错误数据(展示为快闪CRC)是覆盖对应于字段548-0、548-1、548-2、548-3及552的数据的CRC(例如,32位CRC)(例如,覆盖512B的用户扇区O、用户扇区1、用户扇区2及用户扇区3以及所述用户扇区对应于其的页的4B快闪LBA的CRC)。图5中所图解说明的经调整元数据格式的数据字段552及554可包含称为如上文结合图2所描述的第二完整性数据的数据。在此实例中,与码字560-1相关联的元数据547-1包含对应于与码字560-1相关联的扇区(例如,用户扇区2及用户扇区3)以及与码字560-0相关联的扇区(例如,用户扇区O及用户扇区I)的第二完整性数据(例如,呈对应于数据完整性字段554的CRC的形式的错误数据)。与码字560-0相关联的元数据547-0还包含对应于与不同码字相关联的扇区的第二完整性数据(例如,对应于数据完整性字段552的地址数据)。即,元数据547-0的第二完整性数据552对应于码字560-0内的扇区以及不同码字(例如,560-1)内的扇区。因此,与码字560-0/560-1相关联的经调整元数据格式包含对应于多个扇区(例如,在此实例中,扇区O到3)的第二完整性数据(例如,对应于字段552及554的完整性数据)。
[0058]元数据547-0的数据字段558-0及元数据547-1的数据字段558-1各自是52B错误数据字段。在此实例中,对应于字段558-0及558-1的错误数据(展示为BCHECC29)是29位错误校正码(ECC),所述29位错误校正码(ECC)覆盖分别对应于有效负载545-0 (例如,用户扇区O及用户扇区I)及545-1(例如,用户扇区2及用户扇区3)的1024B的用户数据以及与其相关联的相应56B的元数据547-0及547-1。因此,对应于字段558-0及558-1的错误数据支持每码字(例如,每1080B) 29位校正。实施例并不限于此实例。图5中所图解说明的经调整元数据格式的数据字段558-0及558-1可称为如上文结合图2所描述的第三完整性数据。
[0059]码字560-0及560-1可连同对应于所述数据页的额外码字一起写入到存储器装置(例如,存储器装置210)。例如,可响应于读取操作而校验元数据547-0及547-1的第三完整性数据(例如,完整性数据字段558-0及558-1的ECC码)。第三完整性数据的校验可通过例如图2中所展示的组件230的组件执行。在若干个实施例中,在执行第三完整性数据的校验之后,可(例如,通过完整性组件234)执行元数据547-0及547-1的第二完整性数据的校验(例如,数据完整性字段554的CRC)。在若干个实施例中,完整性组件234可在每扇区基础上产生对应于若干个码字中的特定一者的至少一个扇区(例如,码字560-0的用户扇区O)的第四完整性数据。如上文所述,组件234可用对应于所述至少一个扇区(例如,用户扇区O)且包含第四完整性数据(例如,错误数据,例如对应于用户扇区O的CRC)的经调整元数据(例如,具有主机格式的元数据,例如图3中所展示的元数据341)替换与若干个码字中的特定一者相关联的元数据(例如,与码字560-0相关联的元数据547-0)。
[0060]在若干个实施例中,组件(例如组件236)可执行对应于所述若干个码字中的所述特定一者的至少一个扇区的经调整(例如,经修改)元数据的第四完整性数据的校验。所述第四完整性数据的校验可包含将对应于所述若干个码字中的所述特定一者的所述至少一个扇区的经修改元数据的第四完整性数据与对应于所述至少一个扇区的第一完整性数据进行比较。例如,组件236可将所述第四完整性数据(例如,由完整性组件234产生的CRC)与先前产生(例如,举例来说,由插入组件220产生且存储于控制器的缓冲器中)的CRC进行比较。在若干个实施例中,可在将所述至少一个扇区转发到主机之前移除(例如,经由组件236)对应于所述至少一个扇区的经调整元数据。然而,如上文所指示,在若干个实施例中,可将由组件236 (例如,从组件234)接收的经修改元数据中的一个或一个以上部分提供到主机接口 206而不移除。
[0061]还可响应于(例如)部分读取操作而校验元数据547-0及547-1的第三完整性数据(例如,完整性数据字段558-0及558-1的ECC码)。在这些实施例中,可通过组件(例如图2中所展示的组件230)执行第三完整性数据的校验。在若干个实施例中,在执行第三完整性数据的校验之后,可(例如,通过合并组件228)执行元数据547-0及547-1的第二完整性数据的校验(例如,数据完整性字段554的CRC)。在校验元数据547-0及547-1的第二完整性数据之后,合并组件228经配置以将元数据从图5中所展示的经调整格式转换成主机格式(例如,如图3中所展示,在每扇区基础上包含完整性数据的格式)。合并组件228可用与部分读取操作相关联地接收的一个或一个以上主机扇区替换从存储器装置210读取的页的扇区中的一者或一者以上,且可将所述数据及相关联元数据传送到完整性组件224,所述完整性组件经配置以根据如上文所描述的主机格式来接收数据。在若干个部分读取操作中,合并组件228可不执行对应于从存储器装置210读取的页的码字(例如,码字560-0及560-1,以及对应于所读取页的其它码字)中的每一者的第二完整性数据的校验。例如,如果部分读取包含从存储器装置读取的与六个主机扇区合并的两个扇区(例如,用户扇区O及用户扇区I),那么合并组件228可校验完整性数据字段554的完整性数据(例如,对应于字段548-1、548-2、548-3、548-4及552的CRC)。然而,由于对应于所读取页的其它码字不包含将与主机扇区合并的扇区,因此合并组件228可经配置以不执行与那些码字相关联的第二完整性数据的校验。类似地,与此部分读取实例相关联地,合并组件228可经配置以放弃与不包含将与主机扇区合并的扇区的所读取页的那些码字相关联的元数据从经调整格式到主机格式的转换。放弃不包含与部分读取操作相关联的扇区的那些码字的元数据的转换及/或放弃与其相关联的第二完整性数据的校验可节省处理资源且具有其它益处。[0062]图6是根据本发明的一个或一个以上实施例的存储器控制器608的功能框图。控制器608可是例如结合图1所描述的控制器108的控制器,或例如结合图2所描述的控制器208的控制器。
[0063]在图6中所图解说明的实例中,控制器608包含存储器管理组件613及存储器控制组件611。存储器管理组件613包含与例如损耗均衡(例如,垃圾收集及/或回收)、错
误检测及/或校正、及/或块弃用的各种存储器管理功能以及与存储器装置610-1.....610-N相关联的各种其它存储器管理功能相关联的组件(例如,电路及/或固件)。存储器管理组件613可将主机命令(例如,经由主机接口 606从主机接收的命令)解析及/或格
式化成装置命令(例如,与操作存储器装置610-1.....610-N相关联的命令)。存储器管
理组件613还可产生装置命令(例如,以实现各种存储器管理功能)。存储器管理组件613经配置以将装置命令提供到存储器控制组件611。
[0064]存储器控制组件611经配置以控制与将数据写入到若干个存储器装置
610-1.....610-N、从存储器装置610-1.....6IO-N读取数据及擦除存储器装置
610-1.....610-N内的数据(例如,块)相关联的存储器操作。存储器操作可是基于主机
命令(例如,经由主机接口 606接收到控制器608的主机命令)的操作(例如,读取及/或写入),及/或可是基于由控制组件611及/或存储器管理组件613起始的内部产生的装置命令(例如,与损耗均衡、错误检测及/或校正等相关联)。
[0065]耦合到控制组件611的存储器装置610-1、...、610_N可是非易失性存储器装置,例如图1中所述的装置110-1、...、110-N。在图6中所图解说明的实例中,存储器装置
610-1.....610-N是NAND快闪存储器装置。如上文所述,存储器装置610-1.....6IO-N内
的存储器单元可组织成具有与其相关联的若干个物理页的若干个块。
[0066]存储器控制组件611包含错误校正组件619,所述错误校正组件可包含经配置以
检测及/或校正与被写入到存储器装置610-1.....6IO-N及/或从存储器装置610-1.....610-N读取的数据相关联的错误的ECC引擎或其它电路。在若干个实施例中,错误校正组件619可採用BCHECC (例如,例如上文结合图2、4及5所描述的BCHECC)以检测提供到其的数据中的位错误。所检测位错误可或可不经由错误校正组件619校正(例如,取决于所检测的错误位的数目及所使用的ECC的类型等)。如果若干个错误位可经由组件619校正,那么所述操作是组件619可与所述特定操作的完成相关联地继续进行校正的可校正位错误。如果所述若干个错误位不可经由组件619校正(例如,错误位的数目超出与组件619相关联的可校正位的阈值数目),那么所述操作是不可校正位错误。存储器控制组件611可经配置以将可校正位错误以及不可校正位错误报告给存储器管理组件613。
[0067]存储器管理组件613包含若干个管理表615。表615可维持与存储器装置610-1、...、610_N相关联的各种信息。例如,表615可包含关于装置610-1、...、610_N内的块的块已使用时间及/或块擦除计数的信息。表615可包含关于与关联于存储器装置610-1、...、610-N的块及/或页相关联的错误历史的信息。例如,表615可维持与装置
610-1.....610-N相关联的若干个错误计数(例如,写入操作错误计数、读取位错误计数、
读取操作错误计数及/或擦除错误计数以及其它)。写入操作错误是指未能执行的写入操作(例如,主机起始或装置起始)。读取操作错误是指未能执行的读取操作(例如,主机起始或装置起始)。读取位错误可是指导致检测到与正读取的数据(例如,页)相关联的若干个错误位的读取操作。如上文所描述,所述若干个所检测错误可或可不经由错误校正组件(例如,619)校正。如果所检测错误的数目高于经由错误校正组件(例如,619)可校正的错误的阈值数目,那么将所述位错误称为不可校正位错误。表615可维持由与存储器装
置610-1.....610-N相关联的块经历的可校正及/或不可校正读取位错误的计数。表615
还可包含LBA表以及其它。
[0068]控制器608的存储器管理组件613包含冗余管理组件617,其可是RAID (独立磁盘冗余阵列,其中术语“磁盘”仅是来自使用硬盘驱动器的先前实施方案的遗留物)单元617。RAID单元617可用于经由与将存储器装置操作为RAID相关联的冗余来提供数据可靠性。举例来说,RAID单元617可包含RAID异或(XOR)电路,以及与各种RAID级相关联的其它电路。
[0069]在若干个实施例中,控制器608经配置以主动检测与各种操作(例如读取及写入操作)相关联的错误发生(例如,位错误及/或操作错误)并从其恢复,同时维持在主机接口 606与存储器装置610-1、...、610-N之间传送的数据的完整性。控制器608经配置以从
使用中移除失败的存储器资源(例如,页、块及/或装置610-1.....610-N)以防止未来的
不可校正错误。
[0070]例如,存储器管理组件613可起始对存储器控制组件611的擦除命令(例如,以准
备好存储器装置610-1.....610-N内的块来用于写入)。控制组件611可检测与所述擦除
操作相关联的擦除错误的发生且可将错误发生报告给存储器管理组件613。在擦除错误的情形中,数据恢复并非是必需的,这是因为块内的任何有效数据原本应在擦除操作的执行之前被移动到不同块。与所述擦除错误相关联的块可在擦除错误的数目达到阈值数目时被弃用。在若干个实施例中,擦除错误的阈值数目是一个;然而,实施例并不限于此。
[0071]在各种实施例中,在控制器608正执行各种装置操作及/或主机操作(例如,读取及/或写入操作等)时,所述控制器可执行各种存储器管理功能,例如损耗均衡功能(例如,垃圾收集及/或回收)、错误检测/校正功能(例如,与ECC相关联的)、页及/或块弃用
功能及/或RAID功能,以及与存储器装置610-1.....610-N相关联的各种其它存储器管理
功能。因此,可在对用户无感知影响的情况下执行各种存储器管理功能。控制器608根据本文中所描述的实施例执行错误恢复操作同时维持数据完整性的能力可减少要做的装置制造测试(例如,在提供给所述领域中的消费者之前在装运前执行的测试)的量。例如,本发明的实施例可减少或防止与确定坏块或坏存储器装置(例如,610-1、...、610-N)的位置相关联的装置裂造测试的发生,这是因为此测试可经由例如图6中所图解说明的那些组件(例如,611、613、615、617及619)的硬件组件而在实地执行。即,存储器装置610-1、...、
610-N可未相对于与存储器装置610-1.....610-N相关联的坏块位置而进行测试。通过将
存储器装置(例如,610-1.....610-N)的装运前测试移位到控制器608的硬件组件来减少
及/或消除此测试可减少与装置的装运前测试相关联的成本,同时对用户产生极少(如果有)感知影响。
[0072]作为一实例,连同主机读取操作一起,可使用错误校正组件619来校验从存储器
装置610-1.....610-N读取的数据以确定(例如,检测)数据中的位错误。如果检测到若
干个位错误(例如,如果有)且位错误的数目低于组件619可校正的位错误的阈值数目(例如,位错误是可校正位错误),那么所述数据将被校正并提供到主机。所述可校正位错误的发生被报告给存储器管理组件613,存储器管理组件613可维持与从其读取所述数据的块(例如,在表615中)相关联的位错误计数(例如,可校正位错误的计数),且可在所述位错误计数超过特定位错误计数阈值的情况下弃用所述块。如果所检测位错误的数目高于组件619可校正的位错误的阈值数目(例如,位错误是不可校正位错误),那么可使用RAID单元617来自动恢复所请求读取数据且可将其提供到主机。在若干个实施例中,存储器管理组件613响应于不可校正位错误的发生的所接收指示(例如,经由来自错误校正组件619的报告)而自动起始所读取数据的恢复。存储器管理组件613可维持与从其读取所述数据的块(例如,在表615中)相关联的位错误计数(例如,不可校正位错误的计数),且可在所述位错误计数超过特定位错误计数阈值的情况下弃用所述块。在弃用块(例如,响应于位错误计数超过位错误计数阈值)之前,可使用RAID单元617恢复与所述块相关联的数据且可将所述数据移动到新块(例如,可用好块)。
[0073]可类似地处置与装置读取操作相关联(例如,由控制组件611起始的读取操作与存储器管理过程(例如回收)相关联)的位错误。例如,如果组件619检测到可校正位错
误,那么可校正所述数据并将其移动到存储器装置610-1.....610-N内的新块(与提供到
与主机读取操作相关联的主机相反)。可校正位错误的发生被报告给存储器管理组件613,存储器管理组件613可维持与从其读取所述数据的块相关联的位错误计数,且可在所述位错误计数超过特定位错误计数阈值的情况下弃用所述块。如果所检测位错误的数目高于组件619可校正的位错误的阈值数目(例如,位错误是不可校正位错误),那么可使用RAID单元617来立即恢复所请求读取数据且可将其移动到新块。不可校正位错误的发生被报告给存储器管理组件613,存储器管理组件613可维持与从其读取所述数据的块相关联的位错误计数,且可在所述位错误计数超过特定位错误计数阈值的情况下弃用所述块。在弃用块(例如,响应于位错误计数超过位错误计数阈值)之前,可使用RAID单元617恢复与所述块相关联的数据且可将所述数据移动到新块(例如,可用好块)。
[0074]可以与上文所描述的方式类似的方式连同对应于主机及装置读取操作的位错误一起处置操作读取错误(例如,操作主机读取错误及操作装置读取错误)。举例来说,如果读取请求失败,那么可将所述失败的指示提供到存储器管理组件613,存储器管理组件613可自动起始所请求读取数据的恢复(例如,经由RAID单元617)。
[0075]可以与上文所描述的方式类似的方式连同对应于主机及装置读取操作的位错误及/或连同操作读取错误一起处置操作写入错误(例如,操作主机写入错误及操作装置写入错误)。举例来说,如果写入请求失败,那么可将所述失败的指示提供给存储器管理组件613,存储器管理组件613可自动起始所请求写入数据的恢复(例如,经由RAID单元617)。在若干个实施例中,存储器管理组件613响应于写入错误的发生的所接收指示(例如,经由来自控制组件611的报告)而自动起始写入数据的恢复。存储器管理组件613可维持与所述数据将写入到其的块(例如,在表615中)相关联的写入错误计数,且可在所述写入错误计数超过特定写入错误计数阈值的情况下弃用所述块。连同写入数据的自动恢复(例如,经由RAID单元617) —起,可将经恢复写入数据移动到新块(例如,可用好块)。
[0076]益论
[0077]本发明包含用于提供数据完整性的设备(例如,计算系统、存储器系统、控制器等)及方法。举例来说,一个或一个以上方法实施例可包含:接收将写入到若干个存储器装置(例如,单个存储器装置)的若干个数据扇区;将对应于所述若干个扇区且包含第一完整性数据的第一元数据附加到所述若干个扇区,所述第一元数据具有特定格式;产生将提供于第二元数据中的第二完整性数据,所述第二完整性数据对应于所述若干个扇区中的至少一者(其中所述第二元数据具有第二格式);及产生将提供于所述第二元数据中的第三完整性数据,所述第三完整性数据包含对应于所述第二完整性数据及所述若干个扇区中的所述至少一者的错误数据。
[0078]将理解,当元件称为“在”另一元件“上”、“连接到”另一元件或“与”另一元件“耦合”时,其可是直接在所述另一元件上、与所述另一元件连接或耦合,或者可存在介入元件。相比之下,当元件称为“直接在”另一元件“上”、“直接连接到”另一元件或“与”另一元件“直接耦合”时,不存在介入元件或层。如本文中所使用,术语“及/或”包括相关联的所列举物项中的一者或一者以上的任一组合及所有组合。
[0079]如本文中所使用,术语“及/或”包括相关联的所列举物项中的一者或一者以上的任一组合及所有组合。如本文中所使用,除非另有所述,否则术语“或”意指逻辑包含或。即,“A或B”可包含(仅A)、(仅B)或(A与B两者)。换句话说,“A或B”可意指“A及/或B”或“A与B中的一者或一者以上”。
[0080]将理解,尽管本文中可使用术语第一、第二、第三等来描述各种元件,但这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件进行区分。因此,在不背离本发明的教示的情况下可将第一元件称为第二元件。
[0081]尽管本文中已图解说明及描述了具体实施例,但所属领域的技术人员将了解,经计算以实现相同结果的布置可代替所展示的具体实施例。本发明打算涵盖本发明的一个或一个以上实施例的改动或变化形式。应理解,已以说明性方式而非限定性方式做出以上说明。在审阅以上说明后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的一个或一个以上实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的一个或一个以上实施例的范围应参考随附权利要求书连同此些权利要求书被授权给的等效物的全部范围一起来确定。
[0082]在前述【具体实施方式】中,出于简化本发明的目的,将一些特征一起聚集于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中的特征多的特征的意图。而是,如所附权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,将所附权利要求书借此并入到【具体实施方式】中,其中每一权利要求独立地作为单独实施例。
【权利要求】
1.一种设备,其包括经配置以耦合到若干个存储器装置的控制器,所述控制器经配置以: 接收将写入到所述若干个存储器装置的若干个数据扇区; 将对应于所述若干个扇区且包含第一完整性数据的第一元数据附加到所述若干个扇区,其中所述第一元数据具有第一格式; 产生将提供于具有第二格式的第二元数据中的第二完整性数据,所述第二完整性数据对应于所述若干个扇区中的至少一者;及 产生将提供于所述第二元数据中的第三完整性数据,所述第三完整性数据包含对应于所述第二完整性数据及所述若干个扇区中的所述至少一者的错误数据。
2.根据权利要求1所述的设备,其中所述控制器经配置以在产生所述第二完整性数据之前执行所述第一完整性数据的校验。
3.根据权利要求1所述的设备,其中: 对应于将写入到所述存储器装置的所述若干个扇区的所述第一元数据的所述第一完整性数据在每扇区基础上包含错误数据;且 其中对应于第一数目个扇区中的至少一者的所述第二元数据的所述第二完整性数据在多扇区基础上包含错误数据。
4.根据权利要求1所述的设备,其中所述控制器经配置以将所述若干个扇区及具有所述第二格式的对应第二元数据写入到所述若干个存储器装置,且其中所述控制器进一步经配置以: 与读取操作相关联地从所述若干个存储器装置接收所述第一数目个扇区及对应第二元数据; 执行所述第三完整性数据的所述错误数据的校验; 随后执行所述第二完整性数据的错误数据及地址数据中的至少一者的校验;及 在将所述若干个扇区提供到主机之前将与所述第一数目个扇区相关联的所述元数据格式从所述第二格式调整回到所述第一格式。
5.根据权利要求4所述的设备,其中所述控制器经配置以在将所述第一数目个扇区提供到所述主机之前将与所述第一数目个扇区相关联的所述元数据格式从所述第二格式调整回到所述第一格式包括所述控制器经配置以: 针对所述若干个扇区在每扇区基础上产生错误数据;及 在将所述若干个扇区提供到所述主机之前执行每一扇区的所述错误数据的校验。
6.根据权利要求1到5中任一权利要求所述的设备,其中所述控制器经配置以附加所述第一元数据包括:所述控制器经配置以在与写入操作相关联地产生所述第二完整性数据之前在每扇区基础上产生所述第一完整性数据的错误数据并将所述错误数据插入到所述第一元数据中。
7.根据权利要求1到5中任一权利要求所述的设备,其中所述若干个数据扇区包括第一数目个数据扇区,且其中所述控制器进一步经配置以与部分页写入操作相关联地: 从所述若干个存储器装置接收对应于数据页的第二数目个扇区,所述第二数目个扇区与对应于其且具有所述第二格式的元数据相关联; 将与来自所述若干个存储器装置的所述页的所述扇区相关联的元数据格式从所述第二格式调整到所述第一格式;及 通过用所述第一数目个扇区中的至少一者替换对应于所述数据页的所述第二数目个扇区中的至少一者来形成经合并页。
8.根据权利要求7所述的设备,其中所述控制器经配置以在用所述第一数目个扇区中的所述至少一者替换对应于所述数据页的所述第二数目个扇区中的所述至少一者之前执行对应于所述第二数目个扇区的所述元数据的错误数据的校验。
9.根据权利要求1到5中任一权利要求所述的设备,其中所述若干个扇区包括第一数目个扇区,且其中所述控制器经配置以将所述第一数目个扇区及具有所述第二格式的对应第二元数据作为数据页写入到所述若干个存储器装置,且其中所述控制器进一步经配置以与部分页读取操作相关联地: 从所述若干个存储器装置接收对应于数据页的第二数目个扇区,所述第二数目个扇区与对应于其且具有所述第二格式的元数据相关联; 执行对应于与所述部分页读取操作相关联的所述第二数目个扇区中的选定一者或一者以上的所述元数据的错误数据的校验; 将与所述第二数目个扇区中的所述选定一者或一者以上相关联的所述元数据格式调整到所述第一格式,使得对应于所述选定扇区的所述元数据在每扇区基础上包含完整性数据;及 在将所述部分页中的所述选定扇区提供到主机之前执行对应于所述选定扇区的所述完整性数据的校验。
10.根据权利要求9所述的设备,其中所述控制器进一步经配置以在执行对应于从所述若干个存储器装置接收的所述选定扇区的所述完整性数据的所述校验之前与所述部分页读取操作相关联地执行对应于所述选定扇区的所述元数据的完整性数据的校验。`
11.根据权利要求1到5中任一权利要求所述的设备,其中所述控制器包括固态驱动器存储器控制器,且所述若干个存储器装置包括若干个固态存储器装置。
12.一种用于提供数据完整性的方法,其包括: 接收将写入到若干个存储器装置的若干个数据扇区,所述若干个扇区具有包含与其相关联的第一完整性数据的第一元数据,其中所述第一元数据具有特定元数据格式; 产生将提供于具有经调整元数据格式的第二元数据中的第二完整性数据,所述第二完整性数据对应于所述若干个扇区中的至少一者;及 产生将提供于所述第二元数据中的第三完整性数据,所述第三完整性数据包含对应于所述第二完整性数据及所述若干个扇区中的所述至少一者的错误数据。
13.根据权利要求12所述的方法,其中所述特定元数据格式在每扇区基础上包含所述第一完整性数据,且所述经调整元数据格式在多扇区基础上包含所述第二完整性数据。
14.根据权利要求12所述的方法,其进一步包括用所述第二元数据替换所述第一元数据。
15.根据权利要求12所述的方法,其中所述第二元数据包含所述第一完整性数据。
16.根据权利要求12所述的方法,其中所述第二元数据不包含所述第一完整性数据。
17.根据权利要求12到16中任一权利要求所述的方法,其包含将所述若干个扇区及对应第二元数据写入到所述存储器装置。
18.根据权利要求12到16中任一权利要求所述的方法,其中所述方法包含与关联于被写入到所述存储器装置的所述若干个扇区中的一者或一者以上的读取操作相关联地执行提供于对应于所述一个或一个以上扇区的所述第二元数据中的所述第三完整性数据的校验。
19.根据权利要求18所述的方法,其中所述方法包含与关联于被写入到所述存储器装置的所述若干个扇区中的一者或一者以上的所述读取操作相关联地: 在所述第三完整性数据的所述校验之后,执行包含对应于所述若干个扇区中的所述一者或一者以上的错误数据的所述第二完整性数据的校验;及 将与所述若干个扇区中的所述一者或一者以上相关联的所述经调整元数据格式调整回到所述特定元数据格式。
20.根据权利要求19所述的方法,其中将与所述若干个扇区中的所述一者或一者以上相关联的所述经调整元数据格式调整回到所述特定元数据格式包含:用第三元数据替换所述第二元数据,所述第三元数据在每扇区基础上包含对应于所述若干个扇区中的所述一者或一者以上的第四完整性数据。
21.根据权利要求20所述的方法,其中所述方法包含在将所述若干个扇区中的所述一者或一者以上提供到主机之前将对应于所述若干个扇区中的所述一者或一者以上的所述第四完整性数据与对应于所述若干个扇区中的所述一者或一者以上的所述第一完整性数据进行比较。
22.根据权利要求12到16中任一权利要求所述的方法,其中所述方法包含: 在产生所述第二完整性数据之前,从所述存储器装置读取页,所述页包含多个扇区及具有所述经调整元数据格式的对应元数据; 执行与所述页相关联的完整性数据的校验; 将与所述多个扇区相关联的所述经调整元数据格式调整到所述特定元数据格式;及 在将写入页写入到所述存储器装置之前通过用所述所接收的若干个扇区中的一者或一者以上替换与所述读取页相关联的所述多个扇区中的一者或一者以上来形成所述写入页。
23.根据权利要求12到16中任一权利要求所述的方法,其包含使用耦合到所述若干个存储器装置的控制器来将所述第一元数据的所述第一完整性数据附加到所述若干个扇区。
24.一种用于提供数据完整性的方法,其包括: 接收将写入到存储器装置的若干个数据扇区作为数据页的至少一部分,其中所述若干个扇区中的每一者具有与其相关联的第一完整性数据; 形成与所述页相关联的若干个数据群组,其中所述若干个群组中的每一者包含所述若干个扇区中的至少一者及对应于其的元数据,其中: 与所述若干个群组中的至少一者相关联的所述元数据包含第二完整性数据,所述第二完整性数据对应于所述若干个群组中的所述至少一者的所述若干个扇区中的所述至少一者以及所述若干个群组中的至少一个不同群组的所述若干个扇区中的至少一个扇区;且 与所述若干个群组中的每一者相关联的所述元数据包含对应于所述若干个群组中的所述相应至少一者的所述若干个扇区中的所述至少一者的第三完整性数据以及对应于所述相应群组自身的所述第二完整性数据。
25.根据权利要求24所述的方法,其中所述方法包含: 将所述若干个群组写入到所述存储器装置;及 响应于与所述若干个群组中的特定一者的所述至少一个扇区相关联的读取操作而执行与所述若干个群组中的所述特定一者相关联的所述元数据的所述第三完整性数据的校验。
26.根据权利要求25所述的方法,其中所述方法包含在执行与所述若干个群组中的所述特定一者相关联的所述元数据的所述第三完整性数据的所述校验之后: 执行与所述若干个群组中的所述特定一者相关联的所述元数据的所述第二完整性数据的校验; 在每扇区基础上产生对应于所述若干个群组中的所述特定一者的所述至少一个扇区的第四完整性数据 '及 用对应于所述若干个群组中的所述特定一者的所述至少一个扇区的经调整元数据替换与所述若干个群组中的所述特定一者相关联的所述元数据,所述经调整元数据包含所述第四完整性数据。
27.根据权利要求26所述的方法,其中所述方法包含执行对应于所述若干个群组中的所述特定一者的所述至少一个扇区的所述经调整元数据的所述第四完整性数据的校验。
28.根据权利要求27所述的方法,其中执行所述第四完整性数据的所述校验包含:将对应于所述若干个群组中的所述特定一者的所述至少一个扇区的所述经调整元数据的所述第四完整性数据与对应于所述至少一个扇区的所述第一完整性数据进行比较。
29.根据权利要求28所述的方法,其中所述方法包含在将所述至少一个扇区提供到主机之前移除对应于所述至少一个扇区的所述经调整元数据。
30.根据权利要求24到29中任一权利要求所述的方法,其中所述第一完整性数据包含对应于所述相应扇区中的每一者的地址完整性数据及错误数据,且其中所述方法进一步包括针对所述若干个扇区中的每一者执行所述地址完整性数据及所述错误数据的校验。
【文档编号】G06F11/08GK103620565SQ201280026666
【公开日】2014年3月5日 申请日期:2012年5月29日 优先权日:2011年5月31日
【发明者】泰瑞·M·克罗宁, 约瑟夫·M·杰德罗 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1