扩展式单位错误校正及多位错误检测的制作方法

文档序号:6348816阅读:240来源:国知局
专利名称:扩展式单位错误校正及多位错误检测的制作方法
技术领域
背景技术
用于计算机系统及各种电子装置中的数据及其它信息通常由称作位的许多信息片断组成。每一位均具有例如二进制0或二进制1的值。在一些情形中,例如物理缺陷、宇宙射线及不恰当使用的因素可改变存储于这些系统或装置中的数据信息的单个位的值或多个位的值。因此,在一些情形中可出现错误数据信息。许多常规系统或装置可包括用以检测并校正数据信息中的一些特定错误的错误检测与校正组件。举例来说,一些系统具有用以校正数据信息的单个错误位的组件。然而,甚至在包括错误检测与校正组件的情况下, 一些常规系统也可不恰当地检测或错误地校正一些错误,从而导致潜在的系统误操作。

发明内容


图1展示根据本发明的实施例具有控制模块111的系统的框图。图2展示根据本发明的实施例包括具有若干组件的控制模块的系统的局部框图, 所述系统可在其写入操作中使用所述组件。图3展示根据本发明的实施例包括具有若干组件的控制模块的图2系统的局部框图,所述系统可在其读取操作中使用所述组件。图4展示根据本发明的实施例具有组织成不同子集的数据信息的系统的局部框图。图5展示根据本发明的实施例具有分组成不同群组的数据信息的系统的局部框图。图6展示根据本发明的实施例包括用以实施矩阵的控制模块的系统的局部框图。图7及图8展示根据本发明的实施例包括具有用以产生错误信息位的值的逻辑组件的控制模块的系统的局部框图。图9展示根据本发明的实施例当在第一数据信息传送中检测到单位错误时写入错误校正信息的实例性值及读取错误校正信息的各种实例性值。图10展示根据本发明的实施例当在第二数据信息传送中检测到单位错误时读取错误校正信息的各种实例性值。图11展示根据本发明的实施例当在第三数据信息传送中检测到单位错误时读取错误校正信息的各种实例性值。
图12展示根据本发明的实施例当在第四数据信息传送中检测到单位错误时读取错误校正信息的各种实例性值。图13展示根据本发明的实施例当在偶数个数据信息传送中检测到错误时读取错误校正信息的各种实例性值。图14展示根据本发明的实施例当在奇数个数据信息传送中检测到错误时读取错误校正信息的各种实例性值。图15展示根据本发明的实施例包括用以实施具有一般数据信息组织的矩阵的控制模块的系统的局部框图。图16展示根据本发明的实施例依据写入错误校正信息EC写入值及不同读取错误校正信息EC读取值的值计算的不同校正子的不同实例性值。图17展示根据本发明的实施例依据写入错误校正信息及读取错误校正信息的值计算的校正子的实例性值。图18展示根据本发明实施例包括存储器子系统的系统。
具体实施例方式图1展示根据本发明的实施例具有控制模块111的系统100的框图。系统100可包括电子产品或包括于电子产品中,例如计算机、电视、蜂窝式电话或其它电子产品。系统100 包括用以促进在处理器120与存储器装置140之间的线112及线114上传送数据(DATA) 及其它信息的存储器控制器110。所述数据信息包括数据位。系统100使用控制模块111来产生当在系统100的写入操作中将数据信息存储到存储器装置140中时与所述数据信息相关联的错误校正信息(EC)。系统100还使用控制模块111来产生当在系统100的读取操作中从存储器装置140检索数据信息时与所述数据信息相关联的其它错误校正信息。控制模块111比较在写入及读取操作期间所产生的错误校正信息两者以确定所述数据信息中是否已出现错误。取决于错误类型,控制模块111可校正所述错误或将所述错误指示为不可校正。举例来说,如果所述错误是单位错误,那么控制模块111可校正所述错误,或者如果所述错误是多位错误,那么控制模块111可发出通知所述系统所述错误为不可校正的或所述数据信息被破坏的指示(例如,信号或旗标)。单位错误意味着数据信息的仅一个数据位是错误的。多位错误意味着数据信息的两个或两个以上数据位是错误的。可校正本文中所描述的一些多位错误。举例来说,如果多位错误具有属于特定群组的仅奇数个错误数据位(如下文更详细论述),那么可校正所述奇数个错误数据位。系统可经配置以校正此些多位错误。可由硬件(例如,物理组件)、软件(例如,编程指令)或固件(硬件与软件的组合)或硬件、软件与固件的某个组合来实施控制模块111。图1作为一实例而展示整个控制模块111位于存储器控制器110中。然而,整个控制模块111可位于处理器112中或位于存储器114中。或者,控制模块111的不同部分可分散于存储器控制器110、处理器120及存储器装置140当中的不同位置中。在一些情况下,整个系统100可包封于单个集成电路(IC)封装(或IC芯片)中, 使得在这些情况下,系统100可称为芯片上系统。或者,系统100的组件可包封于不同IC 封装中。举例来说,存储器控制器110及存储器装置140可包封于可包括其中形成存储器控制器110及存储器装置140的组件的单个半导体裸片或多个半导体裸片的同一 IC封装中。所属领域的技术人员可认识到,系统100可包括未展示以帮助集中于本文中所描述的实施例的其它组件。系统100可包括下文参考图2到图18所述的系统的组件。图2展示根据本发明的实施例包括具有若干组件的控制模块222的系统200的局部框图,系统200可在写入操作中使用所述组件。举例来说,系统200可在写入操作中激活写入命令(例如,写入)。控制模块222包括接收器205,所述接收器用以在线212上接收具有数据位的数据信息(例如,数据写入)并经由线213将所述数据信息传送到写入递送单元206。例如处理器(例如,图1的处理器120)的装置可经由线212将数据信息提供到控制模块222。控制模块222还包括用以产生与数据信息相关联的错误校正信息(例如, EC写入)的写入错误校正信息产生器225。响应于写入信号,存储器装置240存储数据信息及错误校正信息。图3展示根据本发明的实施例包括具有若干组件的控制模块222的图2系统200 的局部框图,系统200可在其读取操作中使用所述组件。如图3中所示,系统200可在读取操作中激活读取命令(例如,读取)。控制模块222 (其为用于写入操作的控制模块)包括读取递送单元306,所述读取递送单元用以从存储器装置240接收在写入操作(例如上文参考图2所描述的写入操作)中存储于存储器装置MO中的数据信息(例如,数据读取)及错误校正信息(例如,EC写入)两者。如图3中所示,控制模块222还包括读取错误校正信息产生器325,所述读取错误校正信息产生器用以产生当在读取操作中从存储器装置240 检索数据信息(例如,数据读取)时与所述数据信息相关联的错误校正信息(例如,EC读取)。读取错误校正信息产生器325与图2的写入错误校正信息产生器225可为同一产生器,因为控制模块222基于相同的数据信息而产生读取及写入错误校正信息。然而,如果数据信息中已出现错误,那么所述数据信息可具有在其被存储时与在其被检索时不同的值。控制模块222进一步包括用以比较错误校正信息EC读取及EC写入两者并产生比较结果(也称为校正子)的比较器与校正单元326。取决于所述比较结果的值,比较器与校正单元3 可在未检测到错误时保持数据信息不变、校正所述数据信息或将错误指示为不可校正。举例来说,如果比较结果指示错误校正信息EC读取与EC写入的值相同,那么控制模块222经由线313将数据信息传送到发射器305以供进一步处理而不修改所述数据信肩、ο 在另一实例中,如果比较结果指示错误校正信息EC读取与EC写入的值不同,那么控制模块222确定数据信息中已出现错误。如果控制模块222将所述错误识别为单位错误,那么其可通过例如以下方式来校正错误数据位双态触发所述错误数据位的值,使得逻辑0值变为逻辑1值,或者逻辑1值变为逻辑0值。如果控制模块222将所述错误识别为多位错误,那么其可将所述错误指示为不可校正。响应于不可校正错误指示,系统200可执行适当的任务,例如中止其与读取操作相关的当前过程。然而,如上文所提及,可校正本文中所描述的一些多位错误。举例来说,系统200可经配置以在多位错误具有属于仅一个特定数据群组的仅奇数个错误数据位的情况下校正所述多位错误。 系统200可以类似于或等同于下文参考图4及图5所述的系统400及500的方式的方式来组织数据信息的数据位及错误校正信息的错误信息位。图4展示根据本发明的实施例具有组织成不同子集401、402、403及404的数据信息450的系统400的局部框图。为了帮助集中于本文中所述的实施例,图4仅展示系统 400的可在系统400的写入操作中使用的一些组件。在写入操作期间,系统400可接收可在类似于或等同于图1的线112或图2的线212的线412上传送的数据信息450。线412 可包括用以同时接收(意味着并行接收)数据信息的数据位的1 位宽总线(1 条单独的线)。如图4中所示,数据信息450可包括1 个数据位(位O(BITtl)到位127 (BIT127))。 系统400在线412上从装置(例如类似于图1的处理器120的处理器)同时接收数据信息 450的1 个数据位,以便在线412中的每一者上接收位O(BITtl)到位127 (BIT127)中的一者ο在此处所述的实施例中,系统400可将数据信息450的数据位组织成四个子集 401、402、403及404,使得每一子集均包括相等数目的32个数据位。举例来说,子集401包括位0 (BIT0)到位31 (BIT31),子集402包括位32 (BIT32)到位63 (BIT63),子集403包括位 64 (BIT64)到位 95 (BIT95),且子集 404 包括位 96 (BIT96)到位 127 (BIT127)。如图4中所示,为便于描述本文中所述的实施例,将数据信息450的位O(BITtl)到位127 (BIT127)重新标记为位A、B、C及D。举例来说,将位0 (BIT0)到位31 (BIT31)重新标记为数据位A。到数据位A31。将位32 (BIT32)到位63 (BIT63)重新标记为数据位B。到数据位 B31。将位64 (BIT64)到位95 (BIT95)重新标记为数据位C。到数据位C31。将位96 (BIT96)到位127 (BIT127)重新标记为数据位Dtl到数据位D31。图4作为一实例而展示数据信息450具有1 个数据位且组织成偶数个子集(例如四个子集401、402、403及404)。然而,数据位的数目、子集的数目或两者可变化且可为奇数。举例来说,可将128个数据位组织成8个子集,其中每一子集具有16个数据位。在另一实例中,可将所述数据信息分组成16个群组,其中每一群组具有8个数据位。图5展示根据本发明的实施例具有分组成不同群组的数据信息550的系统500的局部框图。为了帮助集中于本文中所述的实施例,图5仅展示系统500的可在其写入操作中使用的一些组件。系统500可以类似于图4的系统400的方式的方式来组织数据信息550。 举例来说,系统500可在线512上接收数据信息550的1 个数据位(例如,BITtl到BIT127) 并将所述1 个数据位组织成四个子集,所述子集包括具有数据位A0到数据位A31的子集、 具有数据位Btl到数据位B31的子集、具有数据位Ctl到数据位C31的子集、具有数据位Dtl到数据位D31的子集。线512分别类似于或等同于图1、图2及图4的线112、线212及线412。 在图5中,系统500可在单独的传送中传送所述子集,使得子集的数目(例如,4)等于传送的数目(例如,4),如下文详细描述。如图5中所示,系统500还将数据信息550的数据位分组成包括群组0 O^RP 0)到群组31(GRP 31)的32个群组。所述群组中的每一者均包括来自所述子集中的每一者的一个数据位。举例来说,群组0包括数据位Ac^BpCci及Dtl,群组1包括数据位ApBpC1及D1, 且群组31包括数据位A31、B31、C31及D31。控制模块555包括错误校正信息产生器(EC GENERATOR) 525,所述错误校正信息产生器用以产生与数据信息550相关联的错误校正信息551并经由线514将错误校正信息 551及数据信息550传送到存储器装置M0。图5作为一实例而展示系统500将数据信息550及错误校正信息551两者存储于存储器装置540中。系统500可替代地将错误校正信息551的一部分或错误校正信息551的全部存储于不同位置中,例如,类似于或等同于图1 的存储器控制器110的存储器控制器中。在图5中,错误校正信息551包括错误信息位ECtl到ECn。系统500还将错误校正信息551分组成若干群组,例如包括位ECc^ECyEC6及EC9的群组、包括位ECpECpEQ及 EC10的群组及包括位EC2、EC5, EC8及EC11的群组。系统500将来自每一群组的错误信息位串行地传送到线514中的一者,以便在不同的传送中传送同一群组的每一错误信息位。举例来说,系统500将错误信息位EQ、EC3、EC6及EC9串行地传送到线514中的一者,以便分别在传送1、传送2、传送3及传送4中传送位EC。、EC3> EC6及EC9。系统500还在线514中的每一者上串行地传送来自每一群组的数据位,以便在不同的传送中传送同一群组的每一数据位。举例来说,系统500分别在四个不同传送(例如传送传送1、传送2、传送3及传送 4)中在线514中的一者上串行地传送群组GRP 0的数据位k0、B0, C0及队。图5作为一实例而展示按如所示的次序(位A、B、C及D)传送数据信息。然而,所述顺序可改变。此外, 图5展示对位ECtl到EC11进行分组的实例。可进行对错误校正位进行分组的其它方式,例如,EC0到EC3处于一个群组中,EC4到EC7处于第二群组中且EC8到EC11处于第三群组中。由于在线514中的单独线上传送数据信息550的群组中的每一者及错误校正信息 551的群组中的每一者,因此线514的数目等于数据信息550的群组的数目与错误校正信息 551的群组的数目的总和。在此实例中,线514的数目为35 (32个数据位群组+3个错误信息位群组=35)。当数据组织成如图4及图5中所示的子集及群组时,图5的线514中的单个故障可致使单个群组中的多个数据位出故障。简单错误校正方法(例如修改型汉明码)的错误校正能力可校正单位错误,检测两个位的所有错误,且可能误检测或误校正且因此提供达三个或三个以上数据位的错误的不可靠数据。假定单个故障可因此有时实现未检测到的数据破坏,则需要简单错误校正方法的扩展来至少实现检测由那些单一故障所导致的所有多位错误。此处所示的扩展码产生实现校正所有单位错误,检测但不校正所有偶数个位错误并校正奇数个位错误,其中所述位错误出现在单个群组中。虽然可能误检测或误校正涉及多个群组的多位错误,但那样的机会通常非常小。尽管此处的实例展示围绕数据组织的群组多路复用成如图5中所示的群组,但可使用围绕常见故障机制组织的任何分组将数据分成子集及分组,使得可可靠地检测或校正此些群组中的多位错误。图6展示根据本发明的实施例包括用以实施矩阵660的控制模块666的系统600 的局部框图。矩阵660含有数据信息650与错误校正信息651之间的关系。矩阵660是在制作系统之前(例如,在系统600的设计阶段期间)创建的。基于矩阵660,包括例如硬件、 软件或固件或这些组件的组合的组件作为实施矩阵660的方式。可使用硬件、软件及固件的各种组合部分地基于汉明码而创建矩阵660。汉明码可为奇权、单错误校正、双错误检测 (SE⑶ED)码。因此,还可将矩阵660视为基于奇权SE⑶ED汉明码创建的常规H矩阵的修改型版本。基于数据信息650,控制模块666在系统600的写入操作及系统600的读取操作两者期间计算错误校正信息651的错误信息位ECtl到EC11的值。在写入操作中,错误信息位 EC0到EC11的值(在写入操作期间由控制模块666计算)表示与待存储于系统600的存储器装置中的数据信息相关联的错误校正信息651的值。在读取操作中,错误信息位ECtl到 EC11的值(在读取操作期间由控制模块666计算)表示与从所述存储器装置检索的数据信息相关联的错误校正信息651的值。由于控制模块666使用相同的矩阵来读取并写入,因此其可包括相同或类似的组件以在写入及读取操作两者中计算错误信息位ECtl到EC11的值。矩阵660含有数据信息650与错误校正信息651之间的关系。控制模块666包括实施矩阵660以在写入及读取操作中基于数据信息而计算错误信息位ECtl到EC11的值的组件。在写入及读取操作中错误信息位ECtl到EC11的值使得控制模块666 (或系统600)能够检测错误并校正可能在数据信息中出现的一些特定错误。图6展示控制模块666实施基于具有1 个数据位的数据信息(例如,数据信息 650)及具有12个错误信息位的错误校正信息(例如,错误校正信息651)的特定实例而创建的矩阵660。然而,控制模块666可实施基于具有不同组织的数据信息及错误校正信息而创建的矩阵。为便于描述本文中的各种实施例,使用上文参考图5所述的数据信息550的相同数据组织(例如,子集)及分组来创建矩阵660。因此,在图6中,系统600使用具有组织成以下四个子集的1 个数据位的数据信息650 包括数据位A0到A31的子集、包括数据位Btl 到B31的子集、包括数据位Ctl到C31的子集及包括数据位Dtl到D31的子集。所述子集被分组成32个群组0到31。系统600在四个传送中传送所述四个子集,每一子集一个传送。可如下创建矩阵660。如图6中所示,矩阵660包括两个部分部分661(上部分)及部分662(下部分)。 每一部分均包括若干行及若干列。矩阵660的列数等于数据位群组的数目(例如,32)与每一群组中数据位的数目 (例如,4)的乘积加上错误信息位的数目(例如,12)。因此,在图6中,矩阵660中的列数为(32X4)+12 = 140。为简单起见,图6省略这些群组下的列中的群组6到四的细节。所属领域的技术人员将容易认识到,为基于SECDED型汉明码检测并校正1 个位的数据信息中的错误,除数据位以外还可使用9个错误信息位(类似于位ECtl到EC11)。因此,基于常规SECDED型汉明,创建具有恰好9个错误信息位的矩阵(例如矩阵660)便足够。然而,由于系统600在一条线上在具有每一群组中的四个位的四个传送中传送数据信息群组,因此创建具有9个以上错误信息位的矩阵660可改进系统600的效率,特别是检测其中多个数据位出故障的情况的能力,而常规修改型汉明码可误检测或误校正这些故障。为了传送错误信息位,额外线(除用以传送数据位的线之外)可包括于系统600中。举例来说,系统600可包括类似于图5的线514的用以传送数据位及错误信息位的线。如图 5中所示,除用于传送数据位的线之外,还包括三条额外线以传送错误信息位ECtl到ECn。在图6的系统600中,如果包括仅两条额外线(而不是三条,如图5中所示)以传送错误信息位ECtl到EC11且如果系统600在四个传送(此为用于传送数据位的相同数目个传送)中在两条额外线上传送两个错误信息位,那么所述两条线允许传送仅8个错误信息位(每一传送中的两个位乘以四个传送)。对于基于SE⑶ED型汉明码来检测并校正1 个位的数据信息中的错误,8个额外错误信息位不够。然而,如果系统600中包括三条额外线(类似于图5中的用于传送位ECcJIj EC11的三条线)以传送错误信息位且如果系统600在四个传送中在所述三条额外线上传送信息位,那么所述三条线允许传送12个错误信息位(每一传送中的三个位乘以四个传送)。所述12个错误信息位大于可用于基于SE⑶ED型汉明码来检测并校正1 个位的数据信息中的错误的9个错误信息位。因此,在系统600中(或在图5的系统500中),12个位可用于错误信息位。在矩阵660中,错误校正信息651的列数基于错误信息位的数目。如本文中所论述,由于错误信息位被选择为12个,因此错误校正信息651的列数为12,如图6中所示。矩阵660的部分662中的行数等于传送的数目。由于系统600包括用以传送数据信息650的四个传送(例如,图5中的传送5、传送6、传送7及传送8),因此部分662中的行数等于4(在图6中展示为部分662中的“行下部”区段中的行1到行4)。在群组0到 31中的每一者内,将每一数据位指派给部分662中的不同行,使得群组0到31中的每一者均包括对角指派给部分662中的行及列的对应数据位。如图6中所示,群组0到31中的每一者中的部分662中的数据位的对角指派类似于在I矩阵中指派的值。矩阵660的部分661中的行数可经选择以便满足表达式KCT ^ L。在此表达式中, R为行数,T为传送的数目(其在此实例中为4),L为系统600在其上传送数据信息650及错误校正信息651的线的数目,C代表组合,且意味着等于或大于(至少)。换句话说, 如果已知R的值,那么项KCT表示可获得的所有可能唯一组合的数目(多少个唯一组合), 其中每一唯一组合均具有R个行当中的“T”个不同行。因此,KCT彡L意味着由KCT表示的值(唯一组合的数目)应等于或大于L。在此处所述的实例中,已知T及L的值;T为4 (传送的数目)且L为35,其为可包括35位宽数据路径(35条单独的线)以同时传送32个数据位加上12个错误信息位中的三者的线(例如图5的线514)的数目。基于T及L的已知值,可计算行数R以使得KCT ^ L。举例来说,依据计算,如果R = 7 (7个行),那么EC4 = 35彡35。如果,R = 8,那么KC4 = 70。因此,如果矩阵660中的部分661的一行被选择为R =7 (EC4 = 35)或R = 8,那么其满足KC4彡35。在创建矩阵660中,选择R = 8 (但可使用 R= 7),此意味着矩阵660在部分661中具有8个行,在图6中展示为部分661中的“行上部”区段中的行1到行8)。虽然可使用R = 7,但如此处所述,选择R = 8个行而不是R = 7可提供矩阵660的部分661中的对称性且可简化系统600的设计。在此处所示的各种实施方案中,情况还是存在用于12个错误信息位的空间,其中四个位是矩阵660的部分662 中的位,从而为8个其它EC位留出空间。上文描述展示如何选择矩阵660的行及列。下文描述展示如何在矩阵660的行及列中指派数据信息650的数据位及错误校正信息651的错误信息位。在群组0到31中的每一者内,可将属于同一群组的每一数据位指派给所述群组内的列中的一者,例如群组0中的4个列中的Ac^BtlA及队。接着,可将所述四个数据位的实例(例如,实例VBpC。及D。)指派给部分661中的行1到行8当中的任何四个不同的行。 将含有一个群组的四个实例的行的组合选择为相对于所有其它群组的行组合为唯一的。举例来说,在群组0中,将AtlAA及Dtl的实例指派给行1、行2、行3及行4。因此,在此实例中,将属于群组0的数据位指派给行1、行2、行3及行4的组合。在群组1中,将A1、Bp C1 及D1的实例指派给行1、行2、行3及行5。因此,在此实例中,将群组1的数据位指派给行 1、行2、行3及行5的组合,所述组合不同于群组0的行1、行2、行3及行4的组合,其也不同于群组2的行组合,群组2的行组合为行1、行2、行3及行6。遵循以上型式,可将数据信息650的数据位指派给矩阵660的列及行,以便将群组 0到31中的每一者中的数据位指派给矩阵660的部分661中的行1到行8的唯一组合。图 6仅展示群组0到31中的一些群组的行及列的指派的一个实例。可创建其它指派,只要指派给群组0到31的行组合相对于彼此是唯一的即可。指派给群组0到31中的每一者的唯一行组合创建矩阵660内的每一群组的唯一签名或标识(ID)。每一群组的唯一 ID使得系统600能够在数据信息650中出现一些特定错误及特定群组中出现错误的情况下识别所述群组。任一特定群组的唯一 ID对应于与仅所述特定群组的数据位相关联的位ECtl到EC7的唯一组合,使得所述特定群组的每一位促成位ECtl到EC7的唯一组合的对应位。举例来说,如图6中所示,位ECc^ECpEC2及EC3的组合与仅群组GRP 0的数据位ApBc^Ctl及Dtl相关联,使得仅数据位ApBc^Ctl及Dtl促成组合EQ、 ECpEC2及EC3的值。在其它实例中,位ECc^ECpEC2及EC4的组合与仅群组1的数据位(例如,A^Bp C1及D1)相关联,且位EQ、EQ、EC3及EC4W组合与仅群组5的数据位(例如,A5、 B5、CJD5)相关联。控制模块666基于数据信息650在写入或读取操作期间计算错误信息位ECtl到 EC11中的每一者的值。控制模块666可对矩阵660的同一行的所有列中的数据位的值进行逻辑组合(例如执行“异或”逻辑运算)以产生对应于所述行的错误信息位的值。举例来说,如图6的部分661中的行1中所示,控制模块666基于行1中的群组0到5的所有数据位且在群组6到四中的任一者具有其指派给行1的数据位的实例的情况下还基于行1中的群组6到四的数据位来计算错误信息位ECtl的值。如图6的部分661中的行4中所示, 控制模块666基于群组0、群组5、群组30的所有数据位且在群组6到四中的任一者具有其指派给行4的数据位的实例的情况下还基于行4中的群组6到四的数据位来计算错误信息位EC3的值。如图6的部分661中的行8中所示,控制模块666基于群组4、群组30、 群组31的所有数据位且在群组6到四中的任一者具有其指派给行4的数据位的实例的情况下还基于行4中的群组6到四的数据位来计算错误信息位EC7的值。如图6的部分662 中的“行下部”区段中的行1中所示,控制模块666基于群组0到31中的每一者的所有数据位A0到A31来计算错误信息位EC8的值,并基于群组0到31中的每一者的所有数据位~ 到来计算错误信息位EC9的值。当在系统600中实施矩阵660时,将不具有数据位指派的位置视为空或零。系统600的控制模块666可包括用以基于矩阵660的数据信息650与错误校正信息651之间的关系来计算错误信息位ECtl到EC11的值的组件,例如逻辑组件。举例来说,控制模块666可包括下文参考图7及图8所述的逻辑组件。图7及图8展示根据本发明的实施例包括具有用以产生错误信息位ECtl到EC11的值的逻辑组件的控制模块777的系统700的局部框图。如图7中所示,控制模块777包括 “异或”逻辑组件(例如,逻辑门)780到787。提供到“异或”逻辑组件780到787中的每一者的输入的数据位对应于指派给矩阵的上部分(类似于或等同于图6的矩阵660的部分 661)中的同一行的数据位。举例来说,“异或”逻辑组件780的输入处的数据位Atl…IV··及 “W”可对应于所述矩阵的上部分的第一行(例如,图6的部分661中的行1)。此处,“W”表示指派给一个群组的数据位的实例(如果有)或指派给两个或两个以上群组的数据位的实
1例(如果有)。举例来说,如果图6的矩阵660的部分661的行1中的群组6到四中的一者(或一者以上)具有数据位的一实例(或若干实例),那么图7中的“W”表示那些数据位。如果图6的矩阵660的部分661的行1中的群组6到四概不具有数据位的实例,那么图7中的“W”表示无(在“W”处无数据位输入)。类似地,取决于矩阵中的数据位指派,“异或”逻辑组件781到787的输入处的“X”、 “Y”、“Z”、“ffff”、“XX”、“YY”及“ZZ”可表示或可不表示所述矩阵的上部分的其它行(例如, 行2到行8)处的数据位的实例。如图8中所示,控制模块777还可包括“异或”逻辑组件708到711。提供到“异或”逻辑组件708到711中的每一者的输入的数据位对应于指派给矩阵的下部分(类似于或等同于图6的矩阵660的部分66 中的同一行的数据位。举例来说,“异或”逻辑组件 708的输入处的数据位A0到A31可对应于所述矩阵的下部分的第一行(例如,图6的部分 662中的行1)。在另一实例中,“异或”逻辑组件709的输入处的数据位Btl到^可对应于所述矩阵的下部分的第二行(例如,图6的部分662中的行2)。所属领域的技术人员将认识到,在图7及图8中,展示为具有此多个输入的“异或” 逻辑组件中的每一者仅为了便于描述本文中的实施例。然而,图7及图8中的“异或”逻辑组件中的每一者均可使用用以执行既定逻辑功能(例如,“异或”逻辑功能)的逻辑门网络来实施。图7及图8展示控制模块777的仅一部分以集中于产生错误信息位ECtl到EC11的组件。然而,控制模块777可包括类似于控制模块111(图1)、控制模块222(图2及图3)、 控制模块阳5(图幻或控制模块666(图6)的组件及功能的组件及功能。举例来说,图7 及图8中所示的组件可为控制模块777的类似于图2及图3的控制模块222的写入及读取递送单元206及306的单元的部分。在系统700的写入操作期间,控制模块777将数据信息的数据位及错误校正信息的错误信息位两者存储到系统700的存储器装置中。类似于图2及图3的控制模块222的功能,在图7及图8的系统700的读取操作期间,控制模块777从系统700的存储器装置检索所存储数据位及所存储错误信息位两者。控制模块777还基于所检索数据信息而产生新的错误校正信息。接着,控制模块777将新的错误校正信息与所存储错误校正信息(其是在读取操作中检索的)进行比较以产生比较结果(校正子)。控制模块777可包括用以执行所述比较的比较器与校正单元(未展示于图7及图8中,但可类似于图3的控制模块222 的单元326)。控制模块777接着基于矩阵而将比较结果与数据信息的群组的ID进行比较以确定是否已出现错误且所述错误(如果出现)是否可校正。图9、图10、图11及图12展示其中分别在单个传送中(例如在传送1、传送2、传送3及传送4中)检测到错误的实例。图13展示其中在偶数个传送中检测到错误的实例。 图14展示其中在奇数个传送中检测到错误的实例,其中所述奇数大于1。为便于论述,图9 到图14展示与群组0到31中的仅一些群组相关的实例。系统可以类似于下文参考图9到图14或参考图16及17所述的方式的方式检测或校正未在这些实例中或在其它实例中描述的群组中的错误。图9展示根据本发明的实施例当在第一数据信息传送中检测到单位错误时写入错误校正信息951的实例性值及读取错误校正信息901、902、903及904的各种实例性值。在图9中,标签“写入实例”表示系统中的实例性写入操作,其中基于在所述实例性写入操作期间存储于系统的存储器装置中的数据信息(例如图5的数据信息550)而产生写入错误校正信息(EC写入值)951。参考图9所述的系统可包括上文参考图1到图8所述的系统。在图9中,标签“读取实例1”到“读取实例4”表示用以读取在实例性写入操作期间存储于系统的存储器装置中的数据信息的不同实例性读取操作。读取错误校正信息值(EC写入值)901、902、903及904对应于可基于在不同实例性读取操作期间从系统的存储器装置检索的数据信息而产生的可能值。参考图9所述的系统可包括用以实施矩阵(例如图6的矩阵660)的组件,且使用那些组件(例如“异或”逻辑组件)来产生EC写入值951及EC读取值901、902、903、904 或905并使用这些EC写入及EC读取值来检测在读取操作期间可能出现在数据信息中的错误。以下部分论述写入实例及读取实例1 ;在稍后的段落中论述其它读取实例(例如读取实例2到读取实例4)。如图9中所示,EC写入值951包括12个错误信息位ECtl到EC11, 其中八个位ECtl到EC7形成EC写入值951的一部分,且四个位EC8到EC11形成EC写入值951 的另一部分。EC写入值951的位ECc^Ij EC11的实例性值为1、0、1、0、1、1、1、1、0、0、1、1 (在写入操作期间从写入数据信息产生)。EC读取值901还包括12个错误信息位ECtl到EC11,其中八个位ECtl到EC7形成EC 读取值901的一部分,且四个位EC8到EC11形成EC读取值901的另一部分。EC读取值901 的位ECc^Ij EC11的实例性值为0、1、0、1、1、1、1、1、1、0、1、1(在读取操作期间从读取数据信
息产生)。系统将EC写入值951的位EC8到EC11与EC读取值901的对应位EC8到EC11进行比较以检测可能出现在在读取操作期间所检索的数据信息中的错误。如图9中所示,EC写入951的位EC8的值为“0”,且EC读取写入901的位EC8的值为“ 1 ”。具有EC写入值951及 EC读取值901的位EC8到EC11的部分中的位中的一者的值之间的差指示检测到错误;在数据信息(读取数据信息)中可能已出现单位错误或多位错误。在此实例中使用EC写入值 951及EC读取值901的四个位EC8到EC11来进行错误检测,因为所述系统使用四个传送来传送数据信息及错误校正信息。如果系统使用不同数目(例如,八)个传送来传送数据信息及错误校正信息,那么所述系统使用等于传送的数目(例如,八)个的不同数目(例如, 八)个错误信息位来进行错误检测。如上文实例中所述,EC写入值951及EC读取值901在四个位EC8到EC11当中具有位EC8的值差。基于图6的矩阵660中的数据信息与错误校正信息关系且基于图8的组件,位EC8与传送1相关联。因此,传送1中可能已出现错误(如在图9中指示为传送1错误)。如果所述错误是单位错误,那么传送1的数据位^到中的一者可能是错误的。在此情况下,系统可识别数据位Atl到A31中的哪一者是错误的并校正所述错误。如果EC8到 EC11中的偶数个位在写入值951与读取值(在此特定实例中为901)之间不同,那么所述错误为不可校正的。如果EC8到EC11中的奇数个位在写入值951与所述读取值之间不同,那么数据错误可能为可校正的,此取决于ECc^Ij EC7值中的位差,如下文所解释。在图9的实例中,系统通过比较具有EC写入值951及EC读取值901的八个错误信息位ECtl到EC7(校验字节)的部分来确定所述错误是否为可校正或不可校正错误。
如图9中所示,EC写入值951的位ECtl到EC7具有值1、0、1、0、1、1、1、1,且EC读取值901的位EC(1到EC7具有值0、1、0、1、1、1、1、1。因此,EC写入值951及EC读取值901的对应位EC。EC1, EC2及EC3具有位间值差。基于这些值差,系统基于用于创建位ECtl到EC7 的矩阵(例如,图6的矩阵660)来检验相对于位ECtl到EC7的群组的指派以确定是否将位 ECc^ECpEC2及EC3的组合指派给所述矩阵中的任一群组(例如群组0到31中的一者)。如果所述群组指派概不与位ECc^ECpEC2及EC3的组合相匹配,那么所述系统将错误识别为不可校正的,因为在同一传送中但在不同群组中的多个位可为错误的。举例来说,传送1中的群组0到31中的两者或两者以上中的两个或两个以上数据位Atl到是错误的。在多位错误情况下,系统可发出所述错误不可校正的指示。如果具有位间值差的位的组合与群组中的仅一者的指派相匹配且EC写入值与EC 读取值之间的位EC8到EC11中的仅一者具有位间值差,那么系统将错误识别为单位错误并校正错误位。在此实例中,如图6中所示,位EC(I、EC1、EC2&EC3的组合指派给仅群组0。因此,所述系统将数据位Atl识别为错误的并(例如)通过以下方式来校正所述位如果当在读取操作期间检索数据位A0时其具有值“0” (错误值),那么将数据位A0的值从“0”改变 (例如,双态触发)为“1”。在相反的数据情形中,如果当在读取操作期间检索数据位Atl时其具有值“ 1”(错误值),那么系统将数据位A0的值从“ 1,,改变为“0”。在此实例中,识别数据位Atl是因为根据如上文所论述的矩阵(例如,图6的矩阵660),错误信息位EC8指派给其中传送群组0的位Atl的传送1。在上文实例(图9中的读取实例1)中,如果EC读取值901及EC写入值951具有相同值,那么系统确定尚未出现错误并保持从存储器装置检索的数据信息不变。举例来说, 如果EC读取值901及EC写入值951两者的错误信息位ECtl到EC11具有相同值(例如,1、0、 1、0、1、1、1、1、0、0、1、1(如EC写入值951中所示),那么所述系统识别尚未出现错误。如果所述值不同(指示检测到错误),那么所述系统可检验EC读取值901及EC写入值951两者的位EC8到EC11的值。如果在EC读取值901的4位集合EC8到EC11与EC写入值951的4 位集合EC8到EC11之间仅一个位不同,那么可能已出现单位错误。如果EC读取值901的4 位集合EC8到EC11与EC写入值951的4位集合EC8到EC11之间不存在差,但存在ECtl到EC7 值的差,那么可能已出现不可校正的错误。如果EC读取值901的4位集合EC8到EC11与EC 写入值951的4位集合ECi^Ij EC11之间存在两个、三个或四个差,那么可能已出现多位错误。图9还展示系统可使用产生EC写入值951的相同写入操作在其它实例性读取操作期间产生的其它实例性EC读取值902、903及904。如果在读取操作期间产生EC读取值902且在写入操作期间产生EC写入值951, 那么所述系统可基于包括位ECjIj EC11的下部分中的仅一个错误信息位(EC8)的值差而识别数据信息中可能已出现单位错误或多位错误。接着,所述系统可进一步识别EC读取值 902(0、1、0、0、1、0、1、1)及 EC 写入值 951(1、0、1、0、1、1、1、1)的上部分(位 ECtl 到 EC7)具有 EC读取值902的位EC。、EC1, EC2及EC5的组合与EC写入值951的位EC。、EC1、EC2及EC5的组合之间的位间值差。基于图6的矩阵,所述系统识别位ECc^ECpEC2及EC5的组合指派给仅群组2。因此,在此实例中,所述系统识别可能已出现单位错误。由于在群组2的传送1 中传送数据位A2 (基于所述矩阵),因此所述系统将数据位A2识别为错误的并校正所述位。如果在读取操作期间产生EC读取值903且在写入操作期间产生EC写入值951,那么所述系统可基于包括位ECjIj EC11的下部分中的仅一个错误信息位(EC8)的值差而识别数据信息中可能已出现单位错误或多位错误。接着,所述系统可进一步识别EC读取值 903(0、1、1、1、0、1、1、1)及 EC 写入值 951(1、0、1、0、1、1、1、1)的上部分(位 ECtl 到 EC7)具有 EC读取值903的位EC。、EC1, EC3及EC4的组合与EC写入值951的位EC。、EC1、EC3及EC4的组合之间的位间值差。基于图6的矩阵,所述系统识别位ECc^ECpEC3及EC4的组合仅指派给群组5。因此,在此实例中,所述系统识别可能已出现单位错误。由于在群组5的传送1 中传送数据位A5 (基于所述矩阵),因此所述系统将数据位A5识别为错误的并校正所述位。如果在读取操作期间产生EC读取值904且在写入操作期间产生EC写入值951, 那么所述系统可基于包括位ECjIj EC11的下部分中的仅一个错误信息位(EC8)的值差而识别数据信息中可能已出现单位错误或多位错误。接着,所述系统可进一步识别EC读取值 904(1、0、1、1、1、0、0、0)及 EC 写入值 951(1、0、1、0、1、1、1、1)的上部分(位 ECtl 到 EC7)具有EC读取值903的位EC3、EC5, EC6及EC7的组合与EC写入值951的位EC3、EC5, EC6及EC7 的组合之间的位间值差。基于图6的矩阵,所述系统识别位EC3、EC5、EC6及EC7的组合仅指派给群组30。因此,在此实例中,所述系统识别可能已出现单位错误。由于在群组30的传送1中传送数据位A3tl (基于所述矩阵),因此所述系统将数据位A3tl识别为错误的并校正所述位。图10展示根据本发明的实施例当在第二数据信息传送中检测到单位错误时读取错误校正信息的各种实例性值。图10中的实例使用相同的EC写入值951 (图9)但具有不同的EC读取值1005、1006、1007及1008。图9与图10的实例之间的差异在于图10中的错误是在数据信息的不同传送中检测到的。在图9中,传送1具有错误。然而,在图10中, 传送2具有如由EC写入值951与EC读取值1005、1006、1007及1008中的每一者之间的位 EC9的值差所指示的错误。在图9及图10的实例中,系统以类似方式检测并识别单位错误及具有所述错误的群组。然而,在图10中,由于位ECdg派给其中传送数据位Btl到的传送2,因此所述系统将数据位~、B2, ^或 。(取决于识别了哪一群组,如图10中所示)识别为错误的并校正所述位。图11展示根据本发明的实施例当在第三数据信息传送中检测到单位错误时读取错误校正信息的各种实例性值。图11中的实例使用相同的EC写入值951(图9)但具有不同的EC读取值1109、1110、1111及1112。图9与图11的实例之间的差异在于在图11中, 传送3具有如由EC写入值951与EC读取值1109、1110、1111及1112中的每一者之间的位 EC10的值差所指示的错误。在图9及图11的实例中,所述系统以类似方式检测并识别单位错误及具有所述错误的群组。然而,在图11中,由于位ECltl指派给其中传送数据位Ctl到C31 的传送3,因此所述系统将数据位(;名、(5或(3(|(取决于识别了哪一群组,如图11中所示) 识别为错误的并校正所述位。图12展示根据本发明的实施例当在第四数据信息传送中检测到单位错误时读取错误校正信息的各种实例性值。图12中的实例使用相同的EC写入值951 (图9)但具有不同的EC读取值1213、1214、1215及1216。图9与图12的实例之间的差异在于在图12中, 传送4具有如由EC写入值951与EC读取值1213、1214、1215及1216中的每一者之间的位 EC11的值差所指示的错误。在图9及图12的实例中,所述系统以类似方式检测并识别单位错误及具有所述错误的群组。然而,在图12中,由于位EC1Jg派给其中传送数据位Dtl到D31的传送4,因此所述系统将数据位Dq、D2、D5或D3tl (取决于识别了哪一群组,如图12中所示) 识别为错误的并校正所述位。图13展示根据本发明的实施例当在偶数个数据信息传送中检测到错误时读取错误校正信息的各种实例性值。图13中的实例使用相同的EC写入值951 (图9)但具有不同的EC读取值1317及1318。图9与图13的实例之间的差异在于在图13中,多个传送具有错误,例如偶数O或4)个传送具有错误。两个传送(例如传送2及幻具有由EC读取值 1317的位EC9及ECltl与EC写入值951的位EC9及ECltl之间的位间值差所指示的错误。四个传送(例如传送1、2、3及4)具有由EC读取值1318的位EC8、EC9、EC10及EC11与EC写入值951的位EC8、EC9, EC10及EC11之间的位间值差所指示的错误。偶数个传送(例如,图13中的两个或四个传送)中的错误指示已出现多位错误。 系统将与例如在图13的实例中的偶数个传送相关联的多位错误视为不可校正的。因此, 如图13的实例中所示,如果检测到多位错误,那么所述系统可发出所述错误不可校正的指示。在多位错误中,位ECc^Ij EC7中的每一者的值可产生或可不产生与单个群组的指派相匹配的组合。即使所述组合与单个群组的指派相匹配,所述组合也可能是无效的。图13将位 EC0到EC7中的每一者的值展示为“0/1”以指示不管这些位中的每一者的值如何(不论是 “0”还是“1”),如果系统检测到(基于位EC8到EC11的值)偶数个数据信息传送具有错误, 那么所述系统都可忽略位ECtl到EC7的值。图14展示根据本发明的实施例当在奇数个数据信息传送中检测到错误时读取错误校正信息的各种实例性值。图14中的实例使用图13的相同EC写入值951但具有不同的EC读取值1419及1420。图13与图14的实例之间的差异在于图13展示检测到具有错误的偶数个传送而图14展示检测到具有错误的奇数个传送。在图14中,EC读取值1419与EC读取值1420之间的差异在于EC读取值1419的位ECtl到EC7的值可不使得能够识别群组0到群组31当中的特定群组。相比之下,在EC读取值1420中,位ECtl到EC7的值使得能够识别群组0到31当中的特定群组。奇数个传送(例如,图14中的3个传送)中的错误指示已出现多位错误。然而, 在此情况下,由于位EC8到EC11的值指示奇数个错误数据位(如同在图14的实例中),因此可在位ECtl到EC7的值识别群组0到31当中的特定群组的情况下校正错误数据位。在多位错误情况下,例如在图14的实例中,位ECcJUEC7中的每一者的值可产生或可不产生与单个群组的指派相匹配的组合。图14将EC读取值1419中的位ECtl到EC7中的每一者的值展示为“0/1”以指示其中EC写入值951与EC读取值1419的对应位ECtl到EC7 之间的位间比较不产生与单个群组的指派相匹配的组合的实例。然而,EC写入值951与EC 读取值1420的对应位ECtl到EC7之间的比较产生与单个群组的指派相匹配的组合。举例来说,EC写入值951的位ECtl到EC7具有值1、0、1、0、1、1、1、1,而EC读取值 1420 的位EC(1到EC7具有值0、1、0、1、1、1、1、1。因此,EC 写入值 951 的位 EC。、EC” EC2 及 EC3与EC读取值1420的位EQ、EC1, EC2及EC3具有位间值差。基于这些位间值差,系统识别位ECc^ECpEC2及EC3的组合指派给图6的矩阵660中的群组0。因此,在此情况下,所述系统确定已出现具有多个错误数据位的多位错误,其中所述多个错误数据位属于仅群组0。 由于已连同奇数个错误数据位识别特定群组,因此可校正所述错误数据位。在图14中,EC读取值1420还使得能够识别在群组0中可能已出现奇数个错误数据位,因为EC写入值951的位EC8、EC9及EC11与EC读取值1420的位EC8、EC9及EC11之间的位间值差指示三个不同的传送(例如,图5中的传送1、2及4)具有错误。使用其中群组 0具有分别在传送1、2、3及4中传送的数据位A0、B0, C0及Dtl的图5实例,所述奇数(3)个错误数据位是位Ac^Btl及队。图14展示其中属于特定群组的多个错误数据位的奇数数目为3的实例。在一些系统或装置中,每一群组均可包括8个或8个以上数据位。因此,在这些系统中,错误校正信息还可使得能够在已出现具有3、5、7的奇数或大于7的其它奇数个的多个错误数据位的错误且所述多个错误数据位属于仅特定群组的情况下识别所述特定群组。一些常规系统或装置有时可能不恰当地检测(例如,误识别或忽略)或错误地校正具有仅奇数个的多个错误数据位的错误,例如在与图14中的EC读取值1420相关联的实例中所述的错误。在一些常规系统中不恰当地检测或校正错误可导致遭破坏的数据信息及潜在的系统误操作。然而,在本文中所述的系统中,恰当地检测错误(例如在与图14中的EC读取值 1420相关联的实例中所述的错误)可防止误识别多位错误或防止忽略多位错误或两种情况,借此避免不恰当地校正错误或防止出现遭破坏的数据信息或潜在的系统误操作。如上文所述,系统或装置可具有一定数目个群组,每一群组中具有M个数据位。M 是大于1的整数且可为奇数或偶数。所述系统或装置在所述系统或装置的单独线上传送每一群组的M个数据位。M还可为因单个实际故障所致的数据错误的数目;在此处使数据乘以4路(在4个含32个数据位的传送中发送1 个数据位)的实例中,单个线故障可导致多达4个数据错误。基于本文中的描述而产生的错误校正信息可使得系统或装置能够在已出现具有多个错误数据位的错误的情况下及在多个错误数据位属于所述群组当中的仅一特定群组的情况下识别所述特定群组。所述多个错误数据位的总数可为奇数或偶数。如果错误数据位的总数是奇数,那么其可大于1且至多等于M。如果M个以上的位实际上是错误的,那么将发生混迭/抵消以使所得校正子指示较少位为错误的,例如< M个位。如果错误数据位的总数是偶数,那么其可大于1且至多等于M。可校正单个群组中的具有仅奇数个错误数据位的多位错误。图15展示根据本发明的实施例包括用以实施具有一般数据信息组织的矩阵1560 的控制模块1555的系统1500的局部框图。可以类似于图6的矩阵660的方式的方式来创建矩阵1560,只不过用一些一般数据位指派替换矩阵660中的一些特定数据位指派及值。 举例来说,如图15中所示,系统1500可将数据信息1560组织成四个子集及N个群组,其中 N是所述群组的数目且数据信息1550的数据位的总数等于N与每一群组中的列数的乘积。 作为一实例,在图6的矩阵660中N等于32。图15作为一实例而展示每一群组具有4个列。列数可变化。图15展示矩阵1560以图解说明可以上文参考图6所述的方式的方式来创建类似于矩阵660(图6)的矩阵,使得还可创建不同于矩阵660的矩阵以供在具有不同于用于使用矩阵660的系统或装置中的数据位组织及分组的数据位组织及分组的系统或装置中使用。在图15中,部分1550中的每一列对应于单独的数据位。部分1551中的每一列对应于单独的错误信息位。部分1550的行中的1位指示相应数据位促成由部分1551中的1 位识别的错误信息位的最终值(总和)。
如图15中所示,群组0到N-I中的每一者中的数据位指派给矩阵1560的部分1561 中的行1到行8的唯一组合。图15展示具有针对每一群组的特定行组合的矩阵1560的实例然而,可使用其它指派,只要指派给群组0到N-I中的每一者的行组合彼此间是唯一的且每一群组中的1位的数目始终相同且遵循先前所给出的“KCT ^ L”规则即可。指派给数据信息1550的群组0到N-I中的每一者的部分1561中的唯一行组合创建唯一 ID以使得系统1500能够在数据信息1550中出现一些特定错误且所述错误出现在特定群组中的情况下识别所述群组。举例来说,基于矩阵1560,群组0的数据位指派给部分1561的行1、2、3及4,不指派给部分1562的行5、6、7及8。如图15中所示,部分1561的行1、2、3及4指派给错误信息位ECc^ECpEC2及EC4。因此,群组0具有11110000的ID。在类似型式中,群组1具有 11101000的ID,且群组N-I具有00001111的ID。在部分1562中,每一群组的第一位指派给部分1562的第一行,其中每一群组的随后位指派给部分1562的连续行。在一些情况下,数据信息1550的群组可经布置使得矩阵部分1550/1561可具有对称结构。举例来说,如果系统1500将数据信息1550的1 个位组织成四个各自含32个位的子集,且错误校正信息1551具有12个位(如图15中所示),那么矩阵1560可经创建使得群组0到N-I可对称地布置于部分1561中。举例来说,如图15中所示,群组0的部分 1561中的每一列均具有矩阵值11110000(或OxFO),且群组N-I的部分1561中的每一列均具有与群组0的OxFO对称(位反转)的矩阵值00001111 (或OxOF)。群组1的部分1561 中的每一列均具有部分1561中的11101000(或0xE8)的值,且群组N_2的部分1562中的每一列均具有与群组1的OxES对称的矩阵值00010111 (或0x17),等等。对称矩阵可允许实施所述矩阵的组件(例如,逻辑电路)的类似加载及输入。图16展示根据本发明的实施例依据写入错误校正信息EC写入值1651及不同读取错误校正信息EC读取值1616、1617、1618及1619的值计算的不同校正子1666、1677、 1688及1699的不同实例性值。参考图16所述的系统可包括用以实施图15的矩阵1560以检测并识别错误位的组件。图16中的校正子1666、1677、1688或1699的值使得所述系统能够在多位错误包括属于多个群组中的仅一个特定群组的多个错误数据位的情况下及在所述多个群组中的其它群组概不具有错误的情况下防止误识别所述多位错误及忽略所述多位错误中的至少一种情况。举例来说,如果多位错误包括属于仅一个特定群组的总奇数个错误数据位且如果所述多个群组中的其它群组概不具有错误,那么系统可正确地检测此多位错误。在此实例中,基于校正子的值,所述系统还可识别所述特定群组的标识且可校正所述错误。在图16中,基于EC写入值1651与EC读取值1616的位的值之间的位间比较来计算校正子1666。因此,由于EC写入值1651及EC读取值1616中的每一者均具有12个位, 因此校正子1666也具有12个位。所述系统可对写入值1651及EC读取值1616的位ECtl到 EC1JA行位间“异或”运算以计算校正子1666中的对应位的值。如果校正子1666的所有位均为“0”,那么所述系统确定数据信息中尚未出现错误。然而,图16展示其中校正子1666的所有位的值均不为“0”但其具有部分1630(对应于位EC0到EC7)中的值1111000及部分1646(对应于位EC8到EC11)中的值1000。在此实例中,校正子1666的部分1646的位EC8的值“ 1 ”指示检测到数据信息中的错误。响应于此检测,所述系统检验校正子1666的部分1630及使用矩阵1560指派的群组的ID以确定部分1630的值是否对应于所述群组中的仅一者的ID。如果其对应,那么校正子1666将所述错误识别为单位错误并校正所述错误。由在部分1646中具有仅一个“1”的校正子识别单位错误。如果部分1630的值不对应于所述群组中的仅一者的ID,那么所述系统可发出错误不可校正的指示。在校正子1666的实例中,部分1630中的值(11110000)对应于仅群组0的 ID (11110000)。因此,所述系统识别出现在群组0中的错误并识别群组0的列1 (基于部分 1646中的位EC8的值“1”)中的数据位(例如,矩阵660中的Atl)是错误的并校正所述位。校正子1677、1688及1699中的每一者均展示已出现多位错误。所述系统可以类似于用于计算校正子1666的方式的方式来计算校正子1677、1688及1699。如上文参考图 9到图15所述,所述系统将由位(例如位EC8到EC11)指示的偶数个错误数据位的多位错误视为不可校正的。因此,在其中检测到偶数个错误数据位的多位错误的图16实例中,所述系统保持数据信息不变且发出错误不可校正的指示。然而,基于所述校正子(例如校正子1677、1688及1699),如果检测到奇数个错误数据位的多位错误且如果所述奇数个错误数据位属于仅一个特定群组(如校正子1688中所示),那么所述系统可校正所述错误数据位。或者,所述系统可保持不可校正错误数据位不被校正并发出不可校正或遭破坏数据指
7J\ ο如果校正子的一部分(例如图16的部分1647、1648或1649)具有一定数目(奇数或偶数)个带有相同值(例如“1”)的多个位,那么所述系统可确定已出现多位错误。如图 16中所示,部分1647具有带有相同值“ 1,,的位EC9及ECltl,部分1648具有带有相同值“ 1,, 的位EC8, EC9及EC11,且部分1649具有带有相同值“ 1,,的位EC8, EC9, EC10及ECno因此,基于部分1647、1648或1649中的位的值,所述系统可确定与校正子1677、1688及1699相关联的数据信息中已出现多位错误。图17展示根据本发明的实施例依据写入错误校正信息EC写入值1751及读取错误校正信息EC读取值1701的值计算的校正子1799的实例性值。EC写入值1751与EC写入值1651 (图16)具有相同值。然而,图17中的EC读取值1701不同于图16的EC读取值 1616。因此,图17的校正子1799具有不同于图16的校正子1666的值的值。举例来说,图 16的部分1630具有不同于图17的部分1730的值11100100的值11110000。类似于图16的实例,校正子1799的部分1747的位EC8的值“1”指示检测到数据信息中的错误。基于校正子1799的部分1730中的值11100100,所述系统识别值11100100 对应于仅群组2的ID。所述系统还识别群组2的列1 (基于部分1747的位EC8的值“1”) 中的第一数据位(例如,矩阵660中的A2)是错误的并校正所述位。在一些情形中,如果校正子具有带有值“ 1,,的仅一个位且所有其它位均为“ 0 ”,例如“000000001000” (例如,位 EC8 到位 EC11 当中的一个“1”)或“000001000000” (例如,位 ECc^IjEC7当中的一个“1”)或与具有值“1”的仅一个位的某个其它组合,那么系统可识别当在读取操作期间从存储器装置检索错误信息位时数据信息的数据位尚未出现错误但所述错误信息位中的仅一者可能已出现错误。在这些情形中,所述系统可忽略由所述校正子识别的错误并保持从存储器读取的数据信息不变且将数据信息视为有效的。在其它情形中,本文中所述的系统有时可能误识别或误校正多位错误。举例来说,如果出现来自同一行中的两个或两个以上群组的两个或两个以上错误位,那么所述系统可能误识别或误校正多位错误。在系统或装置(例如本文中所述的系统或装置)中,出现多位错误的可能性非常小。因此,如上文所提及,所述系统误识别或误校正多位错误的可能性也非常小以致其通常可忽略不计。图18展示根据本发明的实施例的系统1800。系统1800包括处理器1801与1802、 存储器子系统1803、图像传感器装置1820、系统存储器控制器1810、图形控制器1834、输入与输出(I/O)控制器1850、显示器1852、键盘1854、指向装置1856、外围装置1858、系统收发器1859以及用以无线地向系统1800发射信息及从系统1800接收信息的天线1870。系统 1800还可包括用以在系统1800的各组件当中传送信息的总线1861及其中附接系统1800 的组件中的一些组件的电路板1805(例如,母板)。取决于其应用,系统1800可省略图18 中所示的组件中的一些组件或者可添加更多组件。处理器1801及1802中的一者或两者可包括通用处理器、专用集成电路(ASIC)或其它类型的处理器。取决于其应用,系统1800可省略处理器1801及1802中的一者。处理器1801及1802中的一者或两者可包括单核心处理器或多核心处理器。处理器1801及 1802中的一者或两者可执行一个或一个以上编程命令以处理数据及其它信息。所述信息包括由系统1800的系统存储器控制器1810或其它组件提供的信息。图像传感器装置1820包括具有互补金属氧化物半导体(CM0Q像素阵列的CMOS 图像传感器或具有电荷耦合装置(CCD)像素阵列的CCD图像传感器。存储器子系统1803包括控制模块1888以及存储器装置1840、1841及1842。图18 展示其中控制模块1888以及存储器装置1840、1841及1842包封于同一 IC封装1807中的实例,其中控制模块1888以及存储器装置1840、1841及1842可与所述IC封装的板垂直地布置成堆叠配置。或者,控制模块1888以及存储器装置1840、1841及1842可分散于系统 1800中的不同位置中。此外,控制模块1888的至少一部分或整个控制模块1888还可包括于系统存储器控制器1810中或包括于处理器1801及1802中的一者或两者中。存储器子系统1803包括本文中所述的组件的各种实施例。举例来说,存储器子系统1803包括本文中所述的系统的至少一部分,例如上文参考图1到图17所述的控制模块。 因此,图18的控制模块1888可在写入及读取操作期间产生与数据信息的数据位群组相关联的错误校正信息且可基于所述错误校正信息来计算校正子以使得能够校正系统1800中的数据信息中的单位错误并检测所述数据信息中的多位错误。所述校正子还可使得控制模块1888能够在检测到具有属于群组当中的特定群组的仅奇数个的多个错误数据位的多位错误的情况下识别所述特定群组。控制模块1888可校正属于所述特定群组的所述奇数个错误数据位。或者,控制模块1888可保持属于所述特定群组的所述奇数个可校正错误数据位不被校正且发出不可校正或遭破坏数据指示。控制模块1888还可在校正子不指示其中已出现具有仅奇数个的多个错误数据位的多位错误的特定群组的情况下发出不可校正或遭破坏数据指示。作为响应,处理器1801及1802中的一者或两者可从控制模块1888接收此指示并执行适当任务。存储器装置1840、1841及1842中的至少一者可包括易失性存储器装置、非易失性存储器装置或两者的组合。举例来说,存储器装置1840、1841及1842中的至少一者可包括动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置、快闪存储器装置、相变存储器装置、或这些存储器装置的组合。对设备(例如,系统100、200、400、500、600、700、1500及1800)的图解说明意在提
供对各种实施例的结构的一般理解,而并非意在提供对可能利用本文中所述结构的设备及系统的所有组件及特征的完整描述。上文所述的组件中的任一者均可以若干种方式(包括经由软件的模拟)实施。 因此,上文所述的设备的至少一部分或整个设备(例如,系统100、200、400、500、600、700、 1500或1800)均可表征为本文中的“若干模块”(或“模块”)。此些模块可根据设备(例如,系统100、200、400、500、600、700、1500或1800)的设计师的期望,且根据各种实施例的
特定实施方案的需要而包括硬件电路、单处理器及/或多处理器电路、存储器电路、软件程序模块以及对象及/或固件及其组合。举例来说,此些模块可包括于系统操作模拟封装中, 例如软件电信号模拟封装、功率使用及分布模拟封装、电容-电感模拟封装、功率/热耗散模拟封装、信号发射-接收模拟封装及/或用于操作或模拟各种潜在实施例的操作的软件与硬件的组合。各种实施例的设备(例如,系统100、200、400、500、600、700、1500或1800)可包括
用于高速计算机、通信及信号处理电路、单处理器或多处理器模块、单个或多个嵌入式处理器、多核处理器、数据交换机及包括多层、多芯片模块的专用模块中的电子电路或者包括于所述电子电路中。此些设备及系统可进一步包括为多种电子系统内的子组件,所述电子系统例如为电视、蜂窝式电话、个人计算机(例如,膝上型计算机、桌上型计算机、手持式计算机、平板计算机等)、工作站、无线电、视频播放器、音频播放器(例如,MP3(动画专家组,音频层幻播放器)、车辆、医学装置(例如,心脏监测器、血压监测器等)、机顶盒及其它系统。本文中所述的一个或一个以上实施例包括用以使得能够校正数据信息的数据位群组中的单位错误并检测数据信息的数据位群组中的多位错误的设备及方法。所述设备及方法还使得能够在检测到的多位错误具有属于所述群组当中的仅一特定群组的奇数个错误数据位的情况下识别所述特定群组。上文参考图1到图18描述了包括额外设备(例如, 系统100、200、400、500、600、700、1500或1800)及方法的其它实施例。上述描述及图式图解说明本发明的一些实施例以使得所属领域的技术人员能够实践本发明的各实施例。其它实施例可并入有结构、逻辑、电、过程及其它改变。一些实施例的各部分及特征可包括于其它实施例的部分及特征中或替代其它实施例的部分及特征。 在阅读并理解上文描述之后,所属领域的技术人员将即刻明了许多其它实施例。提供发明摘要以遵循37C.F.R. § 1. 72 (b),其要求将允许读者快速探知技术揭示内容的本质及要旨的摘要。提交本摘要是基于如下理解其并非将用于解释或限定权利要求书的范围或含义。
权利要求
1.一种方法,其包含在耦合到装置的线上传送数据信息,所述数据信息包括多个群组;及产生与所述数据信息相关联的错误校正信息以在多位错误包括属于所述多个群组中的仅一个特定群组的多个错误数据位的情况下及在所述多个群组中的其它群组概不具有错误的情况下防止误识别所述多位错误及忽略所述多位错误中的至少一种情况。
2.根据权利要求1所述的方法,其中所述错误校正信息进一步使得能够识别所述特定群组的标识。
3.根据权利要求1所述的方法,其中所述错误数据位的总数为奇数。
4.根据权利要求1所述的方法,其进一步包含 校正所述多个错误数据位。
5.根据权利要求1所述的方法,其中产生所述错误校正信息包括 当将所述数据信息传送到所述装置时,产生第一多个错误信息位;及当从所述装置传送所述数据信息时,产生第二多个错误信息位。
6.根据权利要求5所述的方法,其中在以下情况下检测到所述多个错误数据位 所述第一多个错误信息位的第一部分的奇数个位与所述第二多个错误信息位的第一部分的奇数个位具有位间值差;及所述第一多个错误信息位的第二部分的位与所述第二多个错误信息位的第二部分的位具有位间值差。
7.根据权利要求6所述的方法,其中所述第一多个错误信息位的所述第二部分的所述位的总数为偶数,且所述第二多个错误信息位的所述第二部分的所述位的总数为偶数。
8.根据权利要求7所述的方法,其中所述第一多个错误信息位的所述第一部分的所述位的总数为偶数,且所述第二多个错误信息位的所述第一部分的所述位的总数为偶数。
9.根据权利要求1所述的方法,其中所述群组中的每一者中的所述数据位的数目等于 M,其中M为大于1的整数,且所述错误数据位的总数大于1且至多等于M。
10.根据权利要求1所述的方法,其中基于汉明码而产生所述错误校正信息。
11.一种方法,其包含在耦合到装置的线上传送数据信息,所述数据信息包括若干群组; 产生与所述数据信息相关联的错误校正信息,其中部分地基于汉明码而产生所述错误校正信息;基于所述错误校正信息而计算校正子;及在多位错误包括属于多个群组中的仅一个特定群组的多个错误数据位的情况下及在所述多个群组中的其它群组概不具有错误的情况下,基于所述校正子而防止误识别所述多位错误及忽略所述多位错误中的至少一种情况。
12.根据权利要求11所述的方法,其中所述校正子使得能够识别所述特定群组的标识。
13.根据权利要求11所述的方法,其中所述错误数据位的总数为奇数。
14.根据权利要求11所述的方法,其中产生所述错误校正信息包括当将数据信息传送到所述装置时,产生与所述数据信息相关联的第一错误校正信息;当从所述装置传送所述数据信息时,产生与所述数据信息相关联的第二错误校正信息,且其中产生所述校正子包括当从所述装置传送所述第一错误校正信息时将所述第一错误校正信息与所述第二错误校正信息进行比较。
15.根据权利要求11所述的方法,其中在所述装置的写入操作期间将所述数据信息传送到所述装置,且在所述装置的读取操作期间从所述装置传送所述数据信息。
16.根据权利要求11所述的方法,其中所述群组中的每一者包括若干数据位,且在一定数目个传送中传送所述群组中的每一者的所述数据位,其中所述校正子包括具有等于所述传送的所述数目的多个位的第一部分,其中在所述错误数据位的总数为奇数的情况下, 所述多个位具有奇数个位而在所述奇数个位当中具有相同值。
17.根据权利要求16所述的方法,其中所述校正子包括具有若干位的第二部分,所述位具有用于在所检测到的所述多位错误属于所述特定群组的情况下识别所述特定群组的位值。
18.一种方法,其包含给在装置中传送的数据信息中的多个群组中的每一群组指派一标识,使得所述多个群组中的每一群组的所述标识是唯一的;在所述数据信息中已出现单个错误位的情况下及在所述单个错误位属于所述多个群组中的特定群组的情况下,识别所述特定群组的所述标识;及在多位错误包括属于仅所述特定群组的多个错误数据位的情况下及在所述多个群组中的其它群组概不具有错误的情况下,防止误识别所述多位错误及忽略所述多位错误中的至少一种情况。
19.根据权利要求18所述的方法,其中所述错误数据位的总数为奇数。
20.根据权利要求19所述的方法,其进一步包含在所述多个错误数据位属于仅所述特定群组的情况下,识别所述特定群组的所述标识。
21.根据权利要求18所述的方法,其进一步包含校正所述特定群组的所述错误数据位。
22.根据权利要求18所述的方法,其中指派所述标识是基于一矩阵,所述矩阵含有所述数据信息与和所述数据信息相关联的错误校正信息之间的关系。
23.根据权利要求22所述的方法,其中部分地基于单错误校正双错误检测SE⑶ED汉明码而创建所述矩阵。
24.根据权利要求18所述的方法,其进一步包含将所述数据信息组织成若干子集,使得所述子集中的每一者在一定数目个传送当中的同一个传送中传送;将所述数据信息的数据位分组成所述多个群组,使得所述子集中的每一者包括来自所述多个群组中的每一群组的一个数据位;给所述传送中的每一者指派所述错误校正信息的第一错误信息位当中的一个错误信息位;及给所述多个群组当中的多个群组的数据位指派所述错误校正信息的第二错误信息位当中的一个错误信息位,其中所述群组中的每一者的所述标识对应于所述第二错误信息位的唯一组合。
25.根据权利要求M所述的方法,其中将所述子集组织为偶数个子集。
26.根据权利要求M所述的方法,其中将所述子集组织为奇数个子集。
27.根据权利要求M所述的方法,其中将所述子集组织为总数为4的子集。
28.根据权利要求M所述的方法,其中组织所述数据信息使得所述子集中的每一者包括相同数目个数据位。
29.一种设备,其包含若干线,其用以传送包括多个数据位群组的数据信息;及模块,其经配置以计算校正子从而在多位错误包括属于所述多个群组中的仅一个特定群组的多个错误数据位的情况下及在所述多个群组中的其它群组概不具有错误的情况下基于所述校正子而防止误识别所述多位错误及忽略所述多位错误中的至少一种情况。
30.根据权利要求四所述的设备,其中所述模块进一步经配置以在所述错误数据位的总数为奇数的情况下识别所述特定群组的标识。
31.根据权利要求四所述的设备,其中所述模块经配置以基于汉明码而产生与所述数据信息相关联的错误校正信息,且其中所述校正子是基于所述错误校正信息而计算的。
32.根据权利要求四所述的设备,其中所述模块进一步经配置以校正所述数据信息中的单位错误。
33.根据权利要求四所述的设备,其中所述模块进一步经配置以校正所述多个错误数据位。
34.根据权利要求四所述的设备,其中所述线经配置以在多个传送中传送所述数据信息,且其中所述模块包括若干逻辑组件,所述逻辑组件经配置以对在所述传送中的每一者中传送的所述数据位执行第一逻辑运算以产生所述错误校正信息的第一部分的至少一个错误信息位,所述至少一个错误信息位用于计算所述校正子的至少一个位的值。
35.根据权利要求34所述的设备,其中所述逻辑组件进一步经配置以对所述群组中的至少两者的所述数据位执行第二逻辑运算以产生所述错误校正信息的额外部分的至少一个额外错误信息位,所述至少一个额外错误信息位用于计算所述校正子的至少一个额外位的值。
36.根据权利要求35所述的设备,其中所述逻辑组件包括第一“异或”门,其具有经配置以接收用于所述第一逻辑运算的所述数据位的若干输入;及第二“异或”门,其具有经配置以接收用于所述第二逻辑运算的所述数据位的若干输入。
37.一种设备,其包含若干线,其经配置以传送包括若干群组的数据信息,所述群组中的每一者包括若干数据位,所述线中的每一者经配置以在多个传送中串行地传送所述群组中的一者的所述数据位;及模块,其经配置以实施矩阵,所述矩阵包括第一部分,其使得能够检测所述多个传送当中的奇数个传送中的错误;及第二部分,其使得能够识别所述群组中的仅一者的数据位是否已出现所述所检测到的错误。
38.根据权利要求37所述的设备,其中所述模块经配置以基于汉明码而实施所述矩阵。
39.根据权利要求37所述的设备,其中所述模块经配置以基于来自所述群组中的至少两者的数据位的值而产生指派给所述矩阵的所述第一部分的每一错误信息位的值。
40.根据权利要求39所述的设备,其中所述模块进一步经配置以基于来自所述群组中的每一者的仅一个数据位的值而产生指派给所述矩阵的所述第二部分的每一错误信息位的值。
41.根据权利要求40所述的设备,其中所述第一部分具有总数等于T的第一错误信息位,其中T为所述传送的数目,且其中所述第二部分具有总数至少等于所述矩阵的所述第二部分中的行的数目的第二错误信息位,使得所述行的唯一组合的数目乘以T至少等于用于传送所述数据信息的所述线的数目加上用于传送所述第一错误信息位及所述第二错误信息位的额外线的数目。
42.一种系统,其包含处理器;存储器装置;及模块,其经配置以经由若干线在所述存储器装置与所述处理器之间传送数据信息,所述数据信息包括若干数据位群组,所述模块进一步经配置以在检测到具有仅奇数个的多个错误数据位的错误之后即刻计算校正子以识别所述群组当中的特定群组的标识,其中所述多个错误数据位属于仅所述特定群组。
43.根据权利要求42所述的系统,其中所述模块经配置以基于奇权单位错误校正双位检测SE⑶ED汉明码而产生与所述数据信息相关联的错误校正信息,且其中所述校正子是基于所述错误校正信息而计算的。
44.根据权利要求42所述的系统,其中所述模块经配置以在检测到具有仅所述奇数个的多个错误数据位的所述错误的情况下将所述数据信息指示为不可校正,其中所述多个错误数据位属于仅所述特定群组。
45.根据权利要求42所述的系统,其中所述处理器经配置以在检测到具有仅所述奇数个的多个错误数据位的所述错误的情况下从所述模块接收数据信息中的错误是不可校正的指示,其中所述多个错误数据位属于仅所述特定群组。
46.根据权利要求42所述的系统,其中所述处理器、所述存储器装置及所述模块中的至少两者包封于同一集成电路封装中。
全文摘要
一些实施例包括用以在多位错误包括属于多个数据位群组中的仅一个特定群组的多个错误数据位的情况下及在所述多个群组中的其它群组概不具有错误的情况下防止误识别所述多位错误及忽略所述多位错误中的至少一种情况的设备及方法。
文档编号G06F12/00GK102378967SQ201080014994
公开日2012年3月14日 申请日期2010年4月1日 优先权日2009年4月2日
发明者戴维·R·雷斯尼克 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1