非易失性存储器纠错系统和方法

文档序号:6454793阅读:211来源:国知局
专利名称:非易失性存储器纠错系统和方法
技术领域
本发明 一般涉及存储器系统,尤其涉及带有纠错的非易失性存储系统。
背景技术
用户电子设备,诸如蜂窝电话、数字音乐播放器、拇指(thumb) 驱动器以及其他手持设备,执行日益复杂的算法,例如用于解码压缩 数字音频和视频数据的算法和显示用户界面的算法。随着这些算法复 杂度的增加,存储这些算法的存储器的大小也增加了。
越来越多地,制造商开始转向非易失性存储器设备,诸如包括 NAND和NOR闪存设备的闪存设备。典型地,非易失性存储器设备 在逻辑单元中存储数据,例如内存页和内存块。通常,数据被写入一 个特定的页并可在该页中从各个位置读出。 一般地,块是可被擦除的 数据的最小单位。
在一个典型的闪存设备中,每个页具有一个载荷数据区和一个冗 余存储区,有时被称为开销区或者元数据区。该页的冗余存储区存储 了有关该页的信息,有关该页内数据的信息,和与该页纠错程序有关 的数据。
在诸如闪存的非易失性存储设备上访问和存储数据典型地使用 了虚拟地址。非易失性存储设备趋向于随使用而损耗,这样,固态的 非易失性存储器设备中的扇区可能会失去存储无错数据的容量。通过 读数据扇区和检查系统数据中的特定编码值来执行坏扇区的编目和 扇区映射的生成。 一般地,与数据扇区的数据相关联的纠错码(ECC) 被包括在冗余数据区中以用于数据中的噪音纠正。例如,当数据将被 写入存储器时,基于被写入的数据计算出ECC,并且该ECC与数据
6(例如,冗余数据区中) 一起存入存储器。当数据被访问时,从被访
问的数据中计算新的ECC,并且该计算出的ECC和与数据一起存储 的ECC进行比较。如果在计算的ECC和存储的ECC间存在差异, 则数据很有可能被损坏了且该扇区可能是坏的。在一些例子中,在数 据发送到后续的存储系统或者处理器之前,可使用多个ECC来纠正 数据。
尽管ECC方法可以处理存储器错误,但是在非易失性存储器中 读ECC和对损害的数据执行纠错的过程是一个耗时的过程。因此, 需要为非易失性存储器改善纠错的系统和方法。

发明内容
在一个实施例中,非易失性存储器具有第 一载荷数据区域和与第 一载荷数据区域相关的第一冗余存储区域。第一冗余存储区具有第一 部分,第二部分和第三部分。第一部分包括与第一载荷数据区域相关 联的第一载荷纠错码(ECC)数据。第二部分包括与第一载荷数据区 域相关联的第一元数据。第三部分包括与第一元数据相关联的第一元 数据ECC数据。
在另一个实施例中,系统具有非易失性存储器和纠错模块。该非 易失性存储器具有与第 一栽荷数据区域相关联的栽荷纠错码(ECC ) 数据和与载荷数据区域相关联的元数据ECC数据。该纠错模块包括 响应于接收到元数据ECC数据而执行纠错的逻辑。
在另一个实施例中,生成与数据载荷相关联的数据保护码。生成 与数据保护码相关的元数据保护码。该数据载荷存储于非易失性的载 荷数据区域中,数据保护码和元数据保护码存储于非易失性存储器的 冗余数据区域中。


通过参考以下附图,本发明可被更好的理解,并且其众多特征和 优点对于本领域技术人员将变得明显。图l是处理系统的具体示例性实施例的一部分的框图。
图2是用于诸如图l所示的处理系统的分区非易失性存储器的框图。
图3是说明图2非易失性存储器的冗余存储区部分的选择内容的 一般框图。
图4是用于诸如图l所示的系统的处理系统的纠错模块的具体实 施例的框图。
图5是用于诸如图1所示的系统的处理系统的纠错模块和通用存 储器接口模块的具体实施例的框图。
图6是将数据写入非易失性存储器的方法的流程图。 图7是从非易失性存储器中读取数据的方法的流程图。 在不同图中的相同参考符号指示相似或者相同的项。
具体实施例方式
图1是具体示例性的处理系统100的一部分的框图。该系统100 包括中央处理单元(CPU) 102,非易失性存储器104,通用存储器接 口 (GPMI) 106,错误检测/纠正模块108,和易失性存储器,例如緩 存或者随机存取存储器(RAM) 110。来自非易失性存储器104的传 输数据114和纠错数据112可被存储在RAM 110中。CPU 102、非易 失性存储器104、 GPMI106、错误检测/纠正模块108和RAM110通 过通信总线116通信地耦合。
通常,CPU 102处理计算机可读指令,例如软件程序。在操作时, CPU 102生成到RAM 110和非易失性存储器104的存储器访问请求 以请求访问特定数据。GPMI 106可接收该存储器访问请求,获取请 求的载荷数据,并向错误检测/纠正模块108提供载荷数据、相关联的 错误检测码以及纠错码(ECC )数据。错误检测/纠正模块108可处理 该栽荷数据以识别载荷数据中错误的位置和值。错误检测/纠正模块 108可基于所识别的位置和值来纠正错误,并可在RAM 110中存储纠 4晉数据112。才艮据该方式,GPMI 106可通过总线116传输被请求的数据以存储在RAM 110中。错误检测/纠正模块108可从RAM 110 加载所传输的数据114,以基于由GPMI106提供的错误检测和ECC 数据进行处理。
通常,非易失性存储器104可被分区为数据载荷区和冗余数据 区。载荷数据可被存储在数据载荷区,而与载荷数据相关联的错误检 测和错误纠正数据可存储于冗余数据区。此外,根据特定的实施方式,
f曰妖松狄'J p辨妖多"1 Jt欽游^目天的7L欽雜错' 冗佘数据区或者可被存储于元数据冗佘数据区。
图2说明了用于处理系统(诸如图1的处理系统)的分区的非易 失性存储器104。非易失性存储器104被分区以形成载荷数据区204 和冗余数据区206。栽荷数据区204包括代表性的载荷区208, 210, 212和214。在具体实施例中,栽荷区208-214中的每一个可包括多达 512字节的载荷数据。
冗佘数据区206包括与每个单个载荷数据区208, 210, 212和 214相关联的冗余数据。所示的冗余数据区206包括奇偶校验区216, 220, 224, 228和232及校正子区218, 222, 226和230。在一个特 定的实施例中,奇偶校验区216, 220, 224, 228和232中的每一个 以及4交正子区218, 222, 226以及230中的每一个包括多达12字节 的信息,该信息与载荷区208, 210, 212和214中的其中一个的载荷 数据相关。
例如,载荷区208包括512字节的载荷数据。奇偶校验区216 和校正子区218的每一个分别包括12字节的奇偶校验数据和12字节 的校正子数据。12字节的奇偶校验数据和12字节的校正子数据与载 荷区208的512字节的栽荷数据相关联。在特定的例子中,奇偶校验 区域216, 220, 224, 228, 232中的每一个包括8个9比特的符号, 具有3个附加字节的对齐填充。校正子区218, 222, 226,230及234 中的每一个包括8个9比特的符号,具有3个附加字节的对齐填充。
通常,存储于奇偶校验区232的元数据奇偶校验数据和存储于校 正子区234中的计算出来的元数据校正子数据分别与奇偶校验区216,
9220, 224及228中的奇偶校验数据和校正子区218, 222, 226及230 中的校正子数据相关联。此外,冗余数据区206包括20字节的辅助 存储区236。元数据奇偶校验数据和元数据校正子数据代表存储于奇 偶校验区216, 220, 224和228以及校正子区218, 222, 226和230 中的数据的奇偶校验数据和校正子数据。在一个实施例中,奇偶校验 数据和校正子数据代表载荷数据的元数据。存储于奇偶校验区232和 校正子区234中的数据代表元数据的元数据。
通常,图2中的非易失性存储器104的分区及载荷区204和206 说明了一个代表性的2K内存页的系统存储覆盖区。来自错误检测/ 纠正模块108的校正子生成模块(图4中所示)的数据包括32比特 的信息,该信息存储于校正子区234和辅助存储区236中。
在一个可选实施例中,分区及载荷区可被调整为4K内存页的大 小。例如,数据载荷区204可被扩展为包括8个载荷区,每个栽荷区 具有大约512字节的信息。冗余数据区206中的每一个奇偶校验区 216, 220, 224及228以及每一个校正子区218, 222, 226及230可 类似地扩展为存储20字节的奇偶校验数据和20字节的校正子数据。 在这种情况下,奇偶校验数据区232和校正子数据区234可包括与奇 偶校验区216, 220, 224和228以及校正子区218, 222, 226及230 相关联的12个字节的奇偶校验和校正子数据,但辅助数据区236中 的辅助数据可能会增加。在一种情况下,辅助数据增加到大约68个 字节的信息。因此载荷奇偶校验/校正子区可由16个9比特的符号组 成,具有2字节的对齐填充,并且辅助奇偶校验/校正子区236可包含 8个9比特的符号,具有3字节的对齐填充。在另一个实施例中,元 数据ECC数据可存储在分离的数据区中。
在另一个实施例中,冗余数据区206和载荷数据区204可以是分 布的。在这种情况下,奇偶校验区216, 220, 224及228和校正子区 218, 222, 226及230会位于非连续的存储地址位置。例如,载荷数 据区204的载荷数据可存储于不同存储地址的分离的载荷分区,其分 布于冗余数据区206的冗余数据分区。例如,载荷区208,相关联的奇偶校验区216和校正子区218可被存储于非易失性存储器104内的 相邻的存储分区。
通常,奇偶校验及校正子数据提供可被错误检测/纠正模块108 用来检测和纠正载荷数据中的错误的信息。此外,如果奇偶校验/校正 子数据包含错误,则错误检测/纠正模块108可使用元数据ECC数据 来检测和纠正这样的错误。
图3说明了非易失性存储器104的冗余存储区206的一部分的选 择内容。通常,冗余存储区206包括纠错数据302,该数据可包括栽 荷奇偶校验数据和载荷校正子数据,如图2所示。此外,冗余存储区 206包括纠错码(ECC)数据304,该数据可括元数据奇偶校验数据 和元数据校正子数据。此外,冗余存储区206可包括逻辑地址信息306, 数据块状态信息308,循环冗余校正(CRC)数据310,以及与元数 据相关的其他数据312。
通常,载荷数据存储于非易失性存储器的载荷数据区,与载荷数 据相关联的冗余数据存储于该非易失性存储器的冗余数据区。冗余数 据包括与第一载荷数据区相关联的第一载荷纠错码(ECC),以及与 该第一栽荷数据区相关联的第一元数据。与第一元数据相关联的元数 据ECC数据也可被存储在冗余数据区。元数据ECC数据可被获取并 被用于纠正冗余数据中的错误,而无需从存储器中获取载荷数据。第 一元数据可包括循环冗余校验(CRC)码,或者其它类型的错误检测 数据。可选地,第一元数据可包括错误校正子,其可被纠错模块用来 纠正载荷数据或者与该载荷数据相关联的元数据中的错误。
图4是与诸如图1中系统100的处理系统一起使用的错误检观'J/ 纠正模块的一个具体实施例的框图。错误检测/纠正模块108包括校正 子生成模块402,错误方程解算和估算器406,纠错单元407,以及 AHB总线主仲裁器和控制器408。 AHB总线主仲裁器和控制器408 为获取校正子和纠正错误的访问请求执行加权的等级仲裁。
通常,AHB总线主仲裁器和控制器408将错误检测/纠正模块108 耦合到总线116,以便与系统100的其他模块以及组件进行通信。通常,通过执行猝发操作、固定优先级仲裁等,AHB总线主仲裁器和控 制器408为数据业务提供了高带宽和低延时。此外,AHB总线主仲裁 器和控制器408限制了来自NAND接口 (GPMI106)的迟延。
通常,校正子生成模块402通过通用存储器接口 (GPMI) 106 接收来自非易失性存储器104的数据块。所述数据块可包括固定数量 的载荷数据以及与该固定数量的载荷数据相关联的奇偶校验数据。校 正子生成模块402还可接收与数据块相关联的控制信息。该校正子生 成模块402根据载荷和奇偶校验数据计算校正子信息。该校正子生成 模块402向AHB总线主仲裁器和控制器408提供载荷数据、奇偶校 验数据及计算出的校正子。
总线主仲裁器和控制器408可包括异步先入先出(FIFO)寄存 器(如图5所示)以用于接收载荷数据、奇偶校验数据、计算出的校 正子信息以及控制信息。此外,当FIFO寄存器满了时,总线主仲裁 器408可向校正子生成模块402提供流控制信号。
可选地,校正子生成模块402可在系统存储器或其他存储位置, 诸如图1中的RAM 110中,存储载荷数据、奇偶校验数据,校正子 信息和控制信息,直至总线主仲裁器和控制器408以及错误方程解算 和估算器406可用于错误处理。
错误方程解算和估算器406从总线主仲裁器和控制器408接收载 荷数据的校正子410。错误方程解算和估算器406处理校正子410以 生成符号索引412和符号掩码414。符号索引412标识包含一个或多 个错误的符号,而符号掩码414指示该符号中的哪些特定比特需要被 执行补操作(complement)以纠正错误。当处理完成时,错误方程解 算和估算器406通知总线主仲裁器和控制器408,以使总线主仲裁器 和控制器408能提出下一组校正子410。错误方程解算和估算器406 将一对错误索引412和掩码414提供给纠错单元407,使其通过总线 主仲裁器和控制器408对特定的比特错误进行补操作。错误方程解算 和估算器406还可向总线主仲裁器和控制器408提供需要纠正多少错 误的指示或载荷数据无法纠正的指示。
12通常,如果校正子模块402将一个数据块标记为包含错误,则总 线主仲裁器和控制器408通过关键方程解算器安排一个错误纠正。从 而,校正子生成模块402对数据块执行错误检测,并且仅仅当检测到 错误时,错误方程解算和估算器406才执行错误纠正过程。
总线主仲裁器和控制器408可适于使用错误索引和错误掩码在 存储器的块中对数据比特进行补操作。被纠正的数据可存储在系统存 储器、诸如緩存器或者RAM存储器110的临时存储器、诸如非易失 性存储器104的非易失性存储器,和/或其任意组合中。
通常,错误方程解算和估算器406可为数据的可纠错块提供错误 索引412和错误掩码414,其中一个数据块包括n个符号减去2t个奇 偶校验符号。n个符号是指符号中的块的大小(例如,如图2中的载 荷数据区中的512个符号),符号(t)是指可被纠正的错误的数量。在 一个实施例中,在512字节块中的可被纠正的错误的数量可为8个。 根据所使用的错误纠正计算,或多或少可以纠正错误。
校正子生成模块402计算2t个校正子。错误方程解算和估算器 406生成一组2t个线性方程,包括2t个未知数。错误方程解算和估 算器406使用Euclidean算法解算这组方程,用次数为2"(例如,Z或 者x")的特殊多项式除以根据2t个校正子形成的校正子多项式。 一旦 该除法产生小于或等于可被纠正错误(t)数量的次数的余数,则错误方 程解算和估算器406终止该算法,并产生错误估算多项式和错误定位 多项式,以用来确定错误索引412和错误掩码414。
图5是纠错系统500的一个实施例的框图,纠错系统500包括纠 错模块和通用存储接口 (GPMI)模块以用于诸如图1的系统100的处理 系统。系统500包括通用存储接口(GPMI)并行输入/输出502,校正子 生成器402,纠错模块108,总线主仲裁器和控制器408,通用存储器 接口及计数器504,异步先入先出(FIFO)寄存器506和总线116。 GPMI 并行输入/输出502可通信地耦合到GPMI和计数器504以及校正子 生成器402。此外,GPMI并行输入/输出502可被耦合到非易失性存 储器104。校正子生成器402被耦合到异步FIFO 506、 GPMI和计数器504。 异步FIFO 506还被连接到GPMI和计数器504和总线主仲裁器和控 制器408。 GPMI和计数器504被连接到总线主仲裁器和控制器408 和纠错模块108。
纠错模块108包括关键方程解算(KES)接口 512,关键方程解算 器514, Chein搜索和Forney估算器516,符号至地址转换器518, 一个或多个寄存器520,以及纠错模块522。 KES接口512耦合到总 线主仲裁器和控制器408、关键方程解算器514以及纠错模块522。 Chein搜索/Forney估算器516被连接到符号至地址转换器518,该转 换器可被连接到一个或多个寄存器520和纠错模块522。纠错模块522 被连接到总线主仲裁器和控制器408。
总线主仲裁器和控制器408包括总线主接口 508以及仲裁器和控 制器510。总线主接口 508连接到总线116,仲裁器和控制器510连 接到GPMI和计数器504、异步FIFO 506, KES接口 512和纠错模 块522。
通常,GPMI并行输入/输出502向GPMI和计数器504提供地 址信息。校正子生成模块402向GPMI和计数器504提供块的数量。 此外,校正子生成模块402将载荷数据块和计算出的校正子数据、奇 偶校验数据及控制信息一起提供给异步FIFO 506。在读操作中,载荷 数据块被校正子生成模块402处理并被传送到异步FIFO 506。在一个 特定实施方式中,除了最后的写操作,校正子生成模块402的输出字 由32个比特的数据(意指载荷,奇偶校验或校正子比特)和4个标 志位組成。载荷数据块的最后一个输出字可以是一个状态字,其标识 在块中是否检测到能节省处理时间的特定条件。例如,如果符号生成 模块402并未检测到错误,可以避免进行错误纠正。异步FIFO 506 可向校正子生成模块402提供流控制信号以控制数据块和校正子信息 的传输。数据块以及相关联的奇偶校验及校正子信息可被写到异步 FIFO 506。
此外,还有多个从GPMI和计数器504以及从校正子生成模块402传输到总线主仲裁器和控制器408的控制信号,例如模式比特, 存储器地址,信道数量等等。典型地,控制信息可被包括在载荷数据 块的开始。
异步FIFO 506向GPMI和计数器504提供数据、校正子信息、 奇偶校正数据及控制信息。通常,控制信息可包括比特标志,其指示 新数据块的第一个字、数据块传输的开始和结束以及状态字标志。异 步FIFO 506的控制逻辑可监视FIFO的状态,并当FIFO没有足够的 空间给新数据时,向校正子生成模块402报告一个满状态。
GPMI和计数器504向KES接口 512传输数据及校正子信息。 KES接口 512向关键方程解算器514提供计算出的校正子数据以便进 行错误检测。如果数据块被标记为无错误,则GPMI和计数器504可 将该数据块传送到仲裁器和控制器510,绕过KES接口512。关键方 程解算器514向Chein搜索和Forney估算器单元516提供错误检测 信息。
一旦关键方程解算器514完成错误检测,KES接口 512向纠错 模块522提供块信息。Chein搜索和Forney估算器(CF)单元516为数 据块计算错误掩码和错误索引,并将其提供给纠错单元522。符号至 地址转换器518将符号索引转换为系统字对齐(word-aligned)的地 址,并将符号掩码转换为字对齐(word-aligned)的掩码。
纠错模块522执行字读-改-写操作以便完成错误纠正。根据系统 的操作模式,读-写-改纠正的次数可以变化。例如,对于8比特模式, 可能有高达16次的读-改-写的纠正,对于4比特模式,可能有高达8 次的读-改-写的纠正。
应当理解到,尽管以上的讨论集中于一般的读操作,但是可以以 多种方式应用错误纠正。例如,栽荷数据的改变还可能需要存储于非 易失性存储器的冗余数据区中的元数据ECC数据和元数据的改变。 可使用元数据纠正载荷数据中检测到的错误。恢复过程可被应用到栽 荷数据、栽荷错误检测数据(例如奇偶校验数据)、元数据、元数据 ECC数据等等。通过单独存储元数据、奇偶校验数据、元数据纠错码
15(ECC)数据和载荷数据,纠错模块108可访问一个或多个数据元以便 有效地纠正数据错误。
图6是向非易失性存储器写入数据的方法流程图。初始化存储器 写操作以将数据块写入非易失性存储器(方框602)。计算该数据块 的奇偶校验数据及校正子数据(方框604)。为奇偶校验数据及校正 子数据计算元数据纠错码(ECC)数据(方框606)。该数据块被写入 非易失性存储器的载荷数据区(方框608)。奇偶校验数据、校正子 数据以及元数据ECC数据被写入非易失性存储器的冗余数据区(方 框610)。
通常,每个写操作导致纠错模块基于栽荷数据(例如,元数据) 生成校正子数据,并基于校正子数据生成元数据ECC数据。在错误 纠正过程中,元数据ECC数据可被纠错模块用于纠正校正子数据, 校正子数据可被用于纠正载荷数据。这些纠错过程可被顺序执行或者 彼此独立地执行。
图7是从非易失性存储器读取载荷数据的方法流程图。初始化存 储器读操作以从非易失性存储器读取载荷数据(方框702)。校正子 生成模块接收栽荷数据(方框704)。校正子生成模块计算与栽荷数 据相关联的多个校正子(方框706 )。校正子生成模块向错误计算器 提供计算出的校正子(方框708)。错误计算器的关键方程解算器根 据校正子计算载荷数据错误(方框710)。错误计算器的Chdn搜索 和Forney计算器基于载荷数据错误生成错误掩码和错误索引(方框 712)。错误计算器的纠错模块基于错误掩码和错误索引在数据块中 校正比特(方框714)。
通常,从非易失性存储器中读取载荷数据可按照图7所描述的进 行。可选地,如果在非易失性存储器的冗余数据区中存储的栽荷奇偶 校验数据或者载荷元数据中检测到错误,则纠错模块获取与载荷元数 据相关联的元数据纠错码(ECC)。随后元数据ECC码被用于计算上述 与载荷元数据相关的多个校正子(如方框706 )。关键方程解算器根 据校正子计算栽荷元数据错误。Chein搜索和Forney计算器基于该载
16荷元数据错误生成错误掩码和错误索引。错误校正模块基于该错误掩 码和错误索引在载荷元数据内校正比特。从而,载荷数据的元数据可
根据存储于冗余数据区中的元数据ECC数据而被恢复,也无需加载 载荷数据,这样节省了时间和计算资源。
通过在非易失性存储器的冗余数据区中存储元数据和错误检测 数据,并将与元数据相关联的元数据纠错码(ECC)数据和错误检测数 据在冗余数据区中分开存储,纠错模块中的逻辑可校正在载荷数据和 栽荷数据的元数据中的比特错误,也无需加载载荷数据。
元数据ECC数据可包括与载荷数据的元数据相关联的校正子。 非易失性存储器可包括载荷ECC数据以及元数据ECC数据。数据载
区和校正子数据区。每一对相应的奇偶校验数据区和校正子数据区可 在冗余数据区中存储相应的元数据ECC数据。因此,第一数据载荷 可具有第 一奇偶校验数据和第 一元数据,它们存储在冗余数据区中。 第 一奇偶校验数据和第 一元数据可具有相应的第 一元数据ECC数据。 第二数据载荷可具有第二奇偶校验数据和第二元数据,它们存储在冗 余数据区中。在一个实施例中,第一元数据ECC数据包括第一和第 二元数据以及第一和第二奇偶校验数据的元数据ECC数据。在第二 实施例中,第二元数据ECC数据包括第二元数据和第二奇偶校验数 据的元数据ECC数据。
以上描述的主题应被认为是说明性的,而不是限制性的,所附的 权利要求用于覆盖所有这类改变、改进,以及其他的落入本发明的实 质精神和范围以内的实施例。因此,为了达到法律允许的最大范围, 本发明的范围将由随后的权利要求及其等价物的最广泛的可允许的 解释所确定,而不被前述的具体描述所限定或限制。
权利要求
1、一种非易失性存储器,包括第一载荷数据区;与第一载荷数据区相关联的第一冗余存储区,所述第一冗余存储区包括第一部分,所述第一部分包括与第一载荷数据区相关联的第一载荷纠错码(ECC)数据;第二部分,所述第二部分包括与第一载荷数据区相关联的第一元数据;以及第三部分,所述第三部分包括与第一元数据相关联的第一元数据ECC数据。
2、 如权利要求l所述的非易失性存储器,进一步包括 第二载荷数据区;并且其中,第一元数据与第一载荷数据区以及第二栽荷数据区相关联。
3、 如权利要求2所述的非易失性存储器,其中第一冗余存储区 包括与第二载荷数据区相关联的第二栽荷纠错码(ECC)数据。
4、 如权利要求1所述的非易失性存储器,其中第一栽荷纠错码 (ECC)数据包括奇偶校验数据和校正子数据。
5、 如权利要求1所述的非易失性存储器,其中第一载荷数据区 包括512字节的存储空间。
6、 如权利要求1所述的非易失性存储器,其中第一元数据包括 循环冗余校验(CRC)数据。
7、 如权利要求1所述的非易失性存储器,其中第一元数据包括 块状态数据。
8、 如权利要求1所述的非易失性存储器,其中第一元数据包括 与第 一载荷数据区相关联的逻辑地址数据。
9、 如权利要求l所述的非易失性存储器,进一步包括 第二栽荷区;与第二载荷数据区相关联的第二冗余存储区,第二冗余存储区包括第一部分,所述第一部分具有与第二载荷区相关联的第二栽荷纠 错码(ECC)数据;第二部分,所述第二部分具有与第二载荷区相关联的第二元数 据;以及,第三部分,所述第三部分包括与第二元数据相关联的第二元数据 ECC数据。
10、 一种系统,包括非易失性存储器,所述非易失性存储器包括与载荷数据区相关联 的载荷纠错码(ECC)数据,以及与载荷数据区相关联的元数据ECC数 据;纠错模块,包括响应于接收到元数据ECC数据而执行纠错的逻辑。
11、 如权利要求IO所述的系统,其中元数据ECC数据包括错误 校正子,并且其中所述纠错模块包括用于生成错误校正子的校正子生 成模块。
12、 如权利要求10所述的系统,其中所述纠错模块包括关键生 成模块,用于基于错误校正子来生成纠错信息,以纠正从非易失性存 储器存取的元数据中的错误。
13、 如权利要求12所述的系统,其中所述纠错信息包括错误索 引和错误掩码。
14、 如权利要求10所述的系统,其中所述非易失性存储器包括 载荷ECC数据和元数据ECC数据,每个都与第二载荷数据区相关联。
15、 如权利要求12所述的系统,其中所述纠错模块对元数据执 行Reed-Solomon纟H错。
16、 一种方法,包括 生成与数据载荷相关的数据保护码; 生成与该数据保护码相关的元数据保护码;以及 将所述数据载荷存储在非易失性存储器的载荷数据区中,并将所述数据保护码和所述元数据保护码存储在非易失性存储器的冗余数 据区中。
17、 如权利要求16所述的方法,其中所述数据保护码包括错误 检测数据和错误纠正数据。
18、 如权利要求17所述的方法,其中所述错误检测数据包括奇 偶校验数据。
19、 如权利要求16所述的方法,其中所述数据保护码包括循环 冗余校验(CRC)数据和纠错码(ECC)数据。
20、 如权利要求16所述的方法,其中所述元数据保护码包括与 所述数据保护码相关的纠错码(ECC)数据。
21、 如权利要求16所述的方法,其中所述生成数据保护码包括 为数据栽荷计算至少 一个奇偶校验数据和纠错码(ECC)数据。
22、 如权利要求16所述的方法,其中所述生成元数据保护码包 括计算元数据纠错码(ECC)数据。
23、 一种系统,包括访问非易失性存储器的纠错模块,所述纠错模块包括用于生成与 能够从非易失性存储器获取的数据块相关联的多个校正子的逻辑,所 述纠错模块进一步包括用于在数据块中校正比特错误的逻辑,和用于 使用元数据纠错码(ECC)数据来纠正从非易失性存储器中获取的元数 据中的比特错误的逻辑。
全文摘要
一种非易失性存储器,具有第一载荷数据区和与第一载荷数据区相关联的第一冗余存储区。第一冗余存储区包括第一部分、第二部分和第三部分。第一部分包括与第一载荷数据区相关联的第一载荷纠错码(ECC)数据。第二部分包括与第一载荷数据区域相关的第一元数据。第三部分包括与第一元数据相关联的第一元数据ECC数据。
文档编号G06F11/10GK101473308SQ200780017182
公开日2009年7月1日 申请日期2007年3月14日 优先权日2006年5月18日
发明者D·C·巴克尔, R·森德尔斯 申请人:矽玛特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1