CN200780046902.7
2007.11.09
CN101573694A
2009.11.04
授权
有权
授权|||实质审查的生效|||公开
G06F12/16
英特尔公司
S·艾勒特; R·法肯索尔; P·梁
美国加利福尼亚
2006.12.19 US 11/642,906
永新专利商标代理有限公司
邬少俊;王 英
可以使用不同的ECC方案将不同大小的数据结构存储在存储器中。存储设备可以包括多个ECC引擎以支持对不同大小的数据结构进行的错误校正操作。
1、 一种装置,包括:存储器阵列;第一纠错码(ECC)引擎,其耦合到所述存储器阵列以便对第一大小的数据结构执行ECC编码和ECC解码;以及第二ECC引擎,其耦合到所述存储器阵列以便对第二大小的数据结构执行ECC编码和ECC解码,其中所述第二大小的数据结构大于所述第一大小的数据结构。2、 根据权利要求1所述的装置,其中所述第一大小的数据结构是4位长。3、 根据权利要求2所述的装置,其中所述第二大小的数据结构是256位长。4、 根据权利要求1所述的装置,其中所述存储器阵列由多个存储单元组成,每一个存储单元能够在每单元存储两位。5、 根据权利要求4所述的装置,其中所述第一ECC引擎能够校正每一4单元码字中的一个单元错误。6、 根据权利要求5所述的装置,其中所述第一ECC引擎使用具有多个码字的编码方案,每一个码字由用户数据值和奇偶校验数据值组成,其中对于所述多个码字中的至少两个,所述用户数据值与所述奇偶校验数据值匹配。7、 根据权利要求5所述的装置,其中所述第二ECC引擎能够校正每一133单元码字中的一个单元错误。8、 一种方法,包括:使用第一纠错码(ECC)方案将第一大小的第一值写到存储器阵列;以及使用第二ECC方案将第二大小的第二值写到所述存储器阵列。9、 根据权利要求8所述的方法,还包括从所述存储器阵列读取所述第一值并使用所述第一ECC方案执行错误校正。10、 根据权利要求9所述的方法,还包括从所述存储器阵列读取所述第二值并使用所述第二ECC方案执行错误校正。11、 根据权利要求8所述的方法,其中使用所述第一ECC方案将所述第一值写到所述存储器阵列包括使用控制模式写所述第一值。12、 根据权利要求11所述的方法,其中所述第一ECC方案是能够校正每半字节中的一个单元错误的四进制ECC方案。13、 根据权利要求8所述的方法,其中使用所述第二ECC方案将所述第二值写到所述存储器阵列包括使用目标模式写所述第二值。14、 根据权利要求13所述的方法,其中所述第二ECC方案是能够校正每码字中的一个单元错误的四进制ECC方案。15、 根据权利要求8所述的方法,其中所述存储器阵列是非易失性存储单元阵列。16、 一种系统,包括:互连;耦合到所述互连的控制器;耦合到所述互连的无线接口;以及耦合到所述互连的存储设备,其中所述存储设备包括:存储器阵列;第一纠错码(ECC)引擎,其耦合到所述存储器阵列以便对第一大小的数据结构执行ECC编码和ECC解码;以及第二ECC引擎,其耦合到所述存储器阵列以便对第二大小的数据结构执行ECC编码和ECC解码,其中所述第二大小的数据结构大于所述第一大小的数据结构。17、 根据权利要求16所述的系统,其中所述存储设备是闪速存储设备,并且其中所述存储器阵列由多个存储单元组成,每一个存储单元能够在每单元存储两位。18、 根据权利要求16所述的系统,其中所述第一大小的数据结构是4位长。19、 根据权利要求18所述的系统,其中所述第二大小的数据结构是256位长。20、 根据权利要求18所述的系统,其中所述共享接口包括对应于第一物理存储区域的第一芯片使能信号和对应于第二物理存储区域的第二芯片使能信号。21、 根据权利要求16所述的系统,其中所述第一ECC引擎能够校正每一4单元码字中的一个单元错误,并且所述第二ECC引擎能够校正每一133单元码字中的一个单元错误。
用于小数据结构的ECC保护的方法、系统和装置 技术领域 本文描述的实施例涉及将的错误控制编码(ECC)用于存储设备,更具体地,涉及在非易失性存储设备中使用多个ECC方案。 背景技术 使用片上ECC的存储器架构经常具有限制。例如,采用大页面ECC(例如,256位)的闪速存储器解决方案可能具有重写限制。使用每单元伪单个位(PSBC)的闪速存储器解决方案可能具有可靠性限制。PSBC能够校正任何单元的编程状态下的小的偏移,但是不能校正大的偏移。 使用ECC的相变存储器(PCM)可能受奇偶校验单元的耐久性的限制。 附图说明 通过以下结合附图进行的详细说明,可以获得对本发明的实施例的更深理解,其中: 图1示出以目标模式编程的存储块; 图2示出以控制模式编程的存储块; 图3是示出用于小数据值的ECC引擎的框图; 图4是示出半字节ECC编码器的框图; 图5是示出半字节ECC解码器的框图; 图6是示出用于具有目标模式和控制模式ECC能力的设备的写路径的框图; 图7是示出用于具有目标模式和控制模式ECC能力的设备的读路径的框图; 图8是系统框图。 具体实施方式 在下面的描述中,为了解释的目的,阐明了许多细节以便对本发明的实施例有透彻的理解。然而,对于本领域技术人员而言显而易见的是,并不需要这些具体细节以便实施如在下文中所要求保护的本发明。例如,尽管针对闪速存储设备描述了一些实施例,但实施例也可以适用于其它类型的存储器,包括但不限于位可变存储器(bit alterable memory),例如相变存储器。另外,尽管本文提到了具体的存储器大小,但应该理解,这些是仅仅用于说明的例子,而且也可以在其它实施例中使用更大或更小的存储器大小、缓冲器大小、总线或互连宽度等。 在下面的描述和权利要求中,可以使用术语“包括”和“包含”以及它们的派生词,并且旨在将它们视为彼此的同义词。另外,在下面的描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应该理解,这些术语并非旨在作为彼此的同义词。而是,在特定的实施例中,“连接”可以用来表示两个或更多元件是彼此直接的物理或电接触。“耦合”可以意味着两个或更多元件是直接的物理或电接触。然而,“耦合”还可以意味着两个或更多元件不是彼此直接接触,但是仍然相互协作或相互作用。 存储器阵列可以由每个单元能够存储一个或多个位的存储单元组成。可以如下配置存储器阵列。可以将阵列划分为多个分区。在一些实施例中,可以将阵列划分为8个分区。分区的大小可以取决于存储设备的大小。可以将每个分区进一步划分为多个块。每个块的大小可以是256千字节(KB)。可以将每个块进一步划分为1KB的编程区域,并且可以将每个区域细分为32个32字节(256位)段。 如在本文中所使用的那样,将“目标模式”定义为向系统提供一次向存储器阵列写大量数据(例如,1KB)的能力的编程模式。在目标模式中,系统在块擦除周期之间仅可对存储器的每个1千字节(KB)区域写一次。 如在本文中所使用的那样,将“控制模式”定义为向系统提供向存储器阵列写小数据片段的能力的编程模式。在一些实施例中,该小数据片段可以是4位的“半字节”。在控制模式中,每一个半字节最初被擦除,并且具有数据值1111b(0xF)。半字节的值可以被编程为在0x0和0xE之间(包括0x0和0xE)的任意值,并且可以在时钟擦除周期之间被写多次。因此,在控制模式中,存储器是位可变的。 根据数据被存储的类型,可以以控制模式或目标模式将数据写到存储器阵列。 图1示出根据一些实施例的已经以目标模式编程的存储器的一部分(100)。在一些实施例中,这部分存储器可以是非易失性存储单元阵列的一部分。例如,这部分存储器(100)可以是被细分为32个码字(106)的1KB编程区域。每个码字(106)包括用户数据部分(102)和奇偶校验部分(104)。在一些实施例中,用户数据的长度可以是256位。在多层单元(MLC)存储器阵列中,可以在128个单元中存储256位的用户数据。奇偶校验数据的长度可以是10位,并且在多层单元存储器阵列中,可以将其存储在5个单元中。 用于以目标模式生成奇偶校验单元(104)的ECC方案可以是能够检测和/或校正每个133单元码字(106)中的至少一个单元错误的四进制ECC方案。 在一些实施例中,可以同时对以目标模式编程的这部分存储器(100)进行编程以使耦合效应最小化。 图2示出根据一些实施例的已经以控制模式编程的存储器的一部分(200)。在一些实施例中,这部分存储器可以是非易失性存储器单元阵列的一部分。这部分存储器(200)可以是被细分为两个部分的编程区域,这两个部分为:用于存储为4位半字节(202)的用户数据的区域和用于相关联的奇偶校验数据(208)的区域。在一些实施例中,这部分存储器可以是被划分为512字节的用户数据存储空间(202)和512字节的奇偶校验数据存储空间(204)的1KB编程区域。将用户和奇偶校验区域进一步细分为用户半字节(210)和奇偶校验半字节(212)。可以在多层单元存储器阵列中的两个单元中存储4位用户半字节。也可以在多层单元存储器阵列中的两个单元中存储相应的4位奇偶校验半字节。在控制模式中每一个用户半字节(210)及其相应的奇偶校验半字节(212)包括一个码字。 用于以控制模式生成奇偶校验单元(204)的ECC方案可以是能够检测和/或校正每个4单元码字(206)中的至少一个单元错误的四进制ECC方案。 在一些实施例中,可以分别对以控制模式编程的这部分存储器(200)中的每个半字节(202)进行编程。ECC可以用于补偿由于在单元编程期间的耦合效应所导致的错误。 因此,如图1所示,可以将大数据值(例如,码字106)写入到使用能够在大数据值中校正至少一个单元错误的ECC方案的存储器阵列中。另外,如图2所示,可以将较小的数据值(例如,码字206)写入到使用能够在较小的数据值中校正至少一个单元错误的ECC方案的存储器阵列中。随后可以从存储器阵列中读出大数据值和/或小数据值。在读取每一相应的数据值时,可以使用适当的ECC方案来执行错误检测和/或校正,以检测和/或校正每一大数据值中的至少一个单元错误或者每一小数据值中的一个单元错误。 图3是ECC引擎(300)的框图,其用于在如上面关于图2所描述的小数据值(例如,半字节)中检测和/或校正错误。为了易于描述,将其称为“半字节ECC引擎”,然而,应当认识到,可以对其进行调整以适应除了半字节大小的数据值或代替半字节大小的数据值的其它大小的数据值。 半字节ECC引擎(300)包括一个或多个编码器(304)和一个或多个解码器(306)。 在一些实施例中,编码器(304)是半字节编码器,以便基于包含在要写到存储器阵列的主用户数据(302)中的4个用户位(308)编码4个奇偶校验位(314)。在编码期间,主用户数据可以包括要编程到非易失性存储单元中的总计128个用户位。可以由所述编码器(304)中的一个对用于用户数据的每一个半字节的奇偶校验分别进行编码。然后,可以将编码的奇偶校验位(314)与主用户数据一起写到存储器阵列。 在一些实施例中,解码器(306)是半字节解码器,以对预期的奇偶校验位(312)和接收的来自主数据(302)的奇偶校验位(310)进行解码。然后,解码器可以提供用于错误检测和/或错误校正目的的错误模式(316)。在解码期间,主数据(302)可以包括从非易失性存储器阵列中读取的128个用户位和128个奇偶校验位。 图4是根据一些实施例的诸如图3所示的编码器(304)的半字节编码器的框图。半字节编码器(400)的输入是一个半字节的用户输入数据(402)。对于四进制编码方案,可以使用查找表(404)来编码4个奇偶校验位(406)。在一些实施例中,查找表可以是16×4的查找表。在其它实施例中,可以使用矩阵乘法器代替查找表来进行编码。 下面的表1示出了用于半字节编码器的一个可能的编码方案。许多其它的编码方案也是可能的。将任何可能的四进制编码方案用于每单元两位的存储器时,可以校正由4个单元构成的组中的任何单个的失效单元。 用户半字节 奇偶校验半字节 00 00 01 32 02 13 03 21 10 23 11 11 12 30 13 02 20 31 21 03 22 22 23 10 30 12 31 20 32 01 33 33表1 在一些实施例中,如在表1所示的实施例中,对于一个以上的码字编码方案会具有与用户数据匹配的奇偶校验数据。例如,如表1所示,对于码字0000、1111、2222和3333,用户数据与奇偶校验数据匹配。 图5是根据一些实施例的诸如图3所示的解码器(306)的半字节解码器的框图。半字节解码器(500)的输入包括预期的奇偶校验半字节(502)和接收的奇偶校验半字节(504)。预期的奇偶校验半字节通过对从存储器阵列中读出的用户半字节进行编码来确定。对预期的奇偶校验半字节(502)和接收的奇偶校验半字节(504)执行XOR操作(506)。XOR操作的结果是4位的校验子(syndrome)(508)。可以使用查找表(510)以便基于该校验子(508)来确定错误模式(512)。在一些实施例中,查找表(510)可以是16×8的查找表。错误模式(512)可以是8位错误模式,包括4个用户位和4个奇偶校验位。错误模式(512)中的任何值为1的位表示从阵列中读取的码字中的该位包含错误。为了校正错误,可以翻转出错的位。 图6是根据一些实施例的用于具有目标模式和控制模式ECC能力的存储设备的写路径的框图。可以以如上面关于图1和2所描述的目标模式或控制模式来写用户数据(602)。模式可以由用户或系统来选择,并且可以由模式选择信号(611)来表示。程序缓冲器(612)可以用于存储要写到阵列中的目标/控制模式选择。 对于要以目标模式来写的用户数据(602),可以将256位的用户数据写到程序缓冲器(604)。然后,可以使用目标模式ECC编码器(608)来编码用于用户数据的奇偶校验位。目标模式ECC编码器将编码10个奇偶校验位来用于检测和/或校正每256位用户数据中的至少一个错误。然后,可以将目标模式ECC奇偶校验位存储在程序缓冲器(610)中。然后,可以将用户数据(602)和奇偶校验位写到存储器阵列(614)。也可以将模式选择位(611)写到存储器阵列以表示用于错误校正的模式。 当以控制模式写用户数据(602)时,可以将128位的用户数据写入到程序缓冲器(604)中。然后,可以使用控制模式ECC编码器(606)来编码用于用户数据的奇偶校验位。控制模式ECC编码器(606),例如图4所示的编码器,将为每个用户半字节编码一个奇偶校验半字节来用于检测和/或校正每半字节用户数据中的至少一个错误。然后,可以将编码的奇偶校验数据存储在程序缓冲器(604)中。当已经编码了奇偶校验数据时,可以将用户数据和奇偶校验数据写到存储器阵列(614)。 图7是根据一些实施例的用于具有目标模式和控制模式ECC能力的存储设备的读路径的框图。可以以如上面关于图1和2所描述的目标模式或控制模式预先写入从阵列中读取的主数据(702)。根据模式,需要使用适当的ECC解码方案。这可以使用可从存储器阵列中读取的目标/控制模式选择信号(706)来确定。模式选择信号(706)将确定在执行错误校正时使用两个复用错误模式(712)(目标模式或控制模式)中的哪一个。 在目标模式中,可以从阵列中读取256位的用户数据(702)。另外,可以从阵列中读取10个奇偶校验位(704)。目标模式ECC解码器(710)将基于主数据(702)和奇偶校验位(704)生成错误模式。然后,可以对错误模式和主数据(702)执行XOR校正操作(716),以生成256位校正后的数据值(718)。 在控制模式中,可以从阵列中读取256位的数据。这些256位既包括128位的用户数据又包括128个奇偶校验位。如上所述,每一半字节的用户数据具有相关联的半字节的奇偶校验数据。控制模式半字节ECC引擎(708)如上面关于图3-5所描述的那样对用户数据和奇偶校验数据进行操作,以生成错误模式。然后,可以对错误模式和主数据(702)执行XOR校正操作(716),以生成校正后的数据值(718)。在控制模式中,仅仅128位校正后的数据值将是有效的用户数据。剩余的128位将由存储在阵列中的奇偶校验位组成。 图8是根据一个实施例的系统的框图。该系统可以包括经由互连(810)通信的控制器(802)。控制器(802)可以是微控制器、一个或多个微处理器、多核微处理器、数字信号处理器(DSP)或另一种类型的控制器。可以由电池(804)或使用另一电源(例如交流电源)向该系统供电。 可以将多种输入/输出(I/O)设备耦合到互连(810)。所述I/O设备可以包括诸如显示器、键盘、鼠标、触摸屏或其它I/O设备的产品。还可以将无线网络接口(812)耦合到互连(810)。该无线接口(812)可以使得能够在该系统和其它设备之间进行蜂窝或其它无线通信。在一个实施例中,该无线接口(812)可以包括偶极天线。 该系统还包括能够支持ECC的存储设备(820)。该存储设备可以是非易失性存储设备,例如但不限于,闪速存储设备或相变存储设备。该存储设备可以内置到该系统中,或者可以是诸如卡形式的可移除存储介质的一部分,可以将其插入到任选的闪存卡接口或其它类型的接口(814)中。 存储设备(820)可以包括存储器阵列(834)和耦合到该阵列的ECC逻辑(822)。该存储设备也可以包括其它元件,然而,为了易于理解,本文并未示出这些部件。ECC逻辑可以既包括控制模式ECC引擎(824)又包括目标模式ECC引擎(826)。控制模式ECC引擎(824)可以包括一个或多个如上面关于图3-7所描述的半字节编码器和半字节解码器。目标模式ECC引擎(826)可以包括一个或多个256位ECC编码器和解码器,以为每一个256位的用户数据生成10个奇偶校验位,并如上面关于图6-7所描述的那样检测/校正每256位用户数据中的至少一位。 在一些实施例中,存储器阵列可以是每单元能够存储两个或更多位的多层存储单元阵列。 因此,在各个实施例中公开了用于小数据结构的ECC保护的方法、装置和系统。在上面的描述中,阐述了许多具体细节。然而,应当理解,可以在没有这些具体细节的情况下实施实施例。在其它情况下,为了不使本说明书难以理解,未详细示出公知的电路、结构和技术。实施例是参考其具体的示例性实施例来描述的。然而,对于受益于本公开的人员而言显而易见的是,可以在不脱离本文描述的实施例的较宽的精神和范围的情况下,对这些实施例进行各种修改和改变。因此,本申请和附图应被视为是示例性的而非限制性的。
《用于小数据结构的ECC保护的方法、系统和装置.pdf》由会员分享,可在线阅读,更多相关《用于小数据结构的ECC保护的方法、系统和装置.pdf(18页珍藏版)》请在专利查询网上搜索。
可以使用不同的ECC方案将不同大小的数据结构存储在存储器中。存储设备可以包括多个ECC引擎以支持对不同大小的数据结构进行的错误校正操作。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1