CRC/EDC校验器系统和方法

申请号 CN95196066.0 申请日 1995-09-15 公开(公告)号 CN1113474C 公开(公告)日 2003-07-02
申请人 西尔拉斯逻辑公司; 发明人 C·P·佐克;
摘要 当在纠正扫描中正在纠正一 块 数据时,EDC/CRC校验器(70)执行EDC/CRC校验,借此免除块纠正后的用于EDC/CRC目的的 缓冲器 访问 。在纠正扫描中,累计一个EDC/CRC和,在完成该块的扫描时,块中的零EDC/CRC字节证实已纠正了该块。在块的单一纠正扫描中,将未纠正的最新码字的字节加在累计和上。(必要时)纠正前一码字中与最新码字的字节具有字节同步关系的字节,并(在发生纠正时)将包含用来纠正前一码字的字节的错误模式的错误模式因子也加在累计和上。在示出的 实施例 中,将块概念 化成 具有码字的列,字节同步关系为使正在累计一个未纠正的字节时,对紧接的前一码字的对应字节进行纠正。本 发明 的各实施例能同时处理多个码字。
权利要求

1.一种用于校验以形式存储在缓冲器中的信息字节的系统,该 系统包括:
一个纠正单元,它在缓冲器的纠正访问期间输出供在纠正块中的 指定字节中使用的错误模式;
一个CRC/EDC校验器,它确认块是纠正的;
其特征在于CRC/EDC校验器在缓冲器的纠正访问期间,通过将从 块中选择的一个字节加到和上,随后用对于选择的字节的错误值纠正 选择的字节和将包含用于该选择字节的错误值的因子加在和上,确认 该块是纠正了的。
2.权利要求1的系统,其中该CRC/EDC校验器进行运算求出块中 字节之和。
3.权利要求2的系统,其中在纠正访问期间,在正被校正的字节 与正被求和的字节之间存在着字节位置同步关系。
4.如权利要求1的系统,进一步包含:
在其中累计所述和的一个存储装置;
一个加法器,它将下述各项加到累计在存储器中的和上;
(1)尚未被纠正单元纠正的缓冲器中的一个字节;及
(2)已加在和上的一个字节的一个错误模式。
5.权利要求4的系统,其中加在和上的字节与正在加上其错误模 式的字节具有字节位置同步关系。
6.权利要求5的系统,其中将缓冲器概念化成包括多个列与行, 及其中加在缓冲器中的字节与相加其错误模式的字节在同一行中。
7.权利要求5的系统,其中该错误模式是包含在加在累加和上的 错误模式因子中的,及其中该错误模式因子还包含一个常数倍。
8.权利要求7的系统,其中常数倍的值取决于字节位置同步关 系。
9.一种用于校验存储在缓冲器中的信息字节的方法,该方法的特 征在于以下步骤:
访问缓冲器中的第一选择的字节并将该第一选择的字节加在累 加和上;
利用缓冲器中的用于第二选择的字节的错误模式纠正缓冲器中 的第二选择的字节;
将用于第二选择字节的该错误模式加在累加和上;
当累加和有预定值时,确认错误模式纠正第二选择字节。
10.权利要求9的方法,其中在第一选择的字节与第二选择的字 节之间存在着字节位置同步关系。
11.权利要求10的方法,其中将缓冲器概念化成包括多个列与 行,及其中第一选择的字节与第二选择的字节在同一行中。
12.权利要求10的方法,其中该错误模式包含在加到累加和上的 错误模式因子中,及其中该错误模式因子还包含一个常数倍。
13.权利要求12的方法,其中常数倍的值取决于字节位置同步关 系。
14.权利要求9的方法,其中信息字节在缓冲器的一遍扫描中以 块格式存储至缓冲器中,该方法进一步包括:
在该一遍扫描中将该第一选择的字节加在累加和上;
在累加和上加上用于第一选择的字节的错误模式。
15.权利要求14的方法,还包括在将第一选择的字节加在累加和 上之后,利用该错误模式来纠正第一选择的字节。
16.权利要求15的方法,其中该错误模式包含在加在累加和上的 错误模式因子中,及其中该错误模式因子还包含一个常数倍。
17.权利要求16的方法,其中该常数倍的值取决于字节位置同步 关系。
18.权利要求14的方法,进一步包括:
在访问时将该第一选择字节加在累加和上;如果需要纠正则第一 选择字节尚未纠正;
利用用于第二字节的错误模式纠正块中的第二字节;第二字节在 尚未纠正时已加在累加和中;
将用于第二字节的错误模式加在累加和上;然后接着在同一遍扫 描中,
将第三字节加在累加和上;
用用于该第一选择字节的错误模式纠正第一字节;
将用于该第一选择字节的错误模式加在累加和上;和
当和有预定值时,确认错误模式纠正第二选择字节。
19.权利要求18的方法,其中在第一选择的字节与第二选择的字 节之间存在着字节位置同步关系。
20.权利要求19的方法,其中将缓冲器概念化成包括多个列与 行,及其中第一选择的字节与第二字节在同一行中。
21.权利要求19的方法,其中该错误模式包含在加在累加和上的 错误模式因子中,及其中该错误模式因子还包含一个常数倍。
22.权利要求21的方法,其中常数倍的值取决于字节位置同步关 系。
23.权利要求18的方法,其中在完成通过块的单一遍扫描访问 时,如果已经正确地纠正了该块,累加和便是零。
24.权利要求9的方法,进一步包括:
在访问一个未纠正的数据字节时,判定该块中一个与位置相关的 数据字节是否具有可利用的错误模式,该与位置相关的数据字节已加 在累加和上;以及,如果存在可利用的错误模式,将用于与位置相关的数据字节的可利用的错误模式加在累加和 上;和
当累加和有预定值时,确认可用错误模式纠正位置相关数据字 节。
25.权利要求24的方法,还包括
在顺序访问块中的未纠正的数据字节期间纠正与位置相关的数 据字节。
26.权利要求24的方法,其中该与位置相关的数据字节与被访问 的未纠正数据字节成字节同步关系。
27.权利要求9的方法,进一步包括:
在访问用于最新码字的未纠正的数据字节时,判定前一码字中的 一个对应数据字节是否具有可利用的错误模式,该前一码字的该对应 数据字节已加在累加和上,以及如果存在可利用的错误模式,将用于前一码字的对应数据字节的可利用错误模式加在累加和 上;和
当累加和有预定值时,确认块已经被纠正。
28.权利要求27的方法,还包括
在正在将最新码字的未纠正的数据字节加到累加和的同时,纠正 该前一码字的对应数据字节。
29.权利要求27的方法,其中该前一码字的对应数据字节与正在 加到累加和上的最新码字的数据字节具有字节同步关系。

说明书全文

发明领域

本发明涉及纠错系统,包括但不限于利用CRC(循环冗余码)校 验特征的纠错系统。

背景技术

诸如盘驱动器等信息存储装置通常具有纠错能。从装置转换的 信息通常以字节的形式存储在缓冲器中。存储的信息通常格式化成多 个字节。对于CD(密致盘)盘驱动器,缓冲器包含多个扇区(在处 理计算机数据时)或(在处理数字音频数据时),在这里统称为块。
根据纠错能力,各扇区通常具有多个CRC或EDC(检错码)校验 字节。图2例示组合成86列每列26个字节的块。在块内,各列字节 构成一个列码字,各列的最后两个字节构成列码字的ECC(纠错码) 部分而各列的其余部分(即前面24个字节)构成该列码字的数据部 分。例如,字节0000,0086,0172,......,1978构成列码字CW0的 数据部分;字节0001,0087,0173,...,1979构成列码字CW1的数 据部分;以此类推。如图2中所示,各块的最后四个数据字节(诸如 字节2060,2061,2062,2063)包含纠错信息并相应地称作EDC或 CRC字节。在某些格式中,CRC字节不一定是一块的数据部分的最后字 节。例如,不完全充满图2的块的数据格式可将CRC字节放在数据后 面而在CRC字节后面放入零的填充字节直到填满块为止。
除了纠错多项式的运算之外,CRC或EDC校验字节提供额外的校 验措施。通常,CRC字节是通过将数据字节(或者如本例中的位)作 为字节值(或位值)数据多项式D(X)的系数对待并计算D(X)Xn-k而 生成的,其中K为数据码元数,n-k为CRC码元数,而G(X)为CRC发 生器多项式。对于密致盘(CD)驱动器,CRC发生器是位值的。
历史上,利用CRC或EDC字节的缓冲器校验发生在缓冲器已校正 之后。具体地,在纠错阶段中,缓冲器的字节是作为码字被访问的并 用纠错多项式在上面运算。纠错多项式在码字上的运算导致指示码字 中出错的字节的出错指针以及用来校正这些指针所定位的字节的错误 模式的生成。生成出错指针与错误模式之后,为了纠正指针指示的字 节的目的而访问缓冲器中的字节。
纠正了指针指示的字节之后,为CRC或EDC校验的特殊目的再度 访问缓冲器。在CRC或EDC校验中,将由缓冲器中所有字节(包括CRC 字节)构成的多项式除以CRC发生器多项式。如果余数为零,便确认 该块的正确纠正。
虽然CRC或EDC特征有利地提供附加的数据完整性保证,用于 CRC/EDC校验特殊需要的缓冲器访问降低了总体运算速度。
EDC/CRC校验器在纠正扫描(PASS)中正在纠正一块数据时执行 EDC/CRC校验,借此避免块纠正之后为EDC/CRC目的的缓冲器访问。 在纠正扫描中,累计EDC/CRC和,而在该块完成该扫描时如果该块中 的EDC/CRC字节证实该块已被纠正则该和为零。在块的单一纠正扫描 中,将未纠正的最新码字加在累计和上。(必要时)纠正与最新码字 的字节具有字节同步关系的前一码字的字节,以及(在发生纠正时) 还将包含用来纠正前一码字的字节的错误模式的错误模式因子加在累 计和上。在例示的实施例中,将块概念化成具有码字的列及字节同步 关系为当正在累计一个未纠正的字节时,下一个前一码字的对应字节 发生纠正。
发明概述
从而,本发明的EDC/CRC校验器允许在正用于最新码字CWn的校 正子生成的块字节上执行CRC校验,同时为前一码字(诸如CWn-1) 的对应位置的字节执行纠正。在为前一码字的对应字节执行纠正时, 也将用于前一码字的对应字节的错误模式因子加在累计和上,因为早 先已将这一对应字节作为未纠正的字节加在该和上。实际上,错误模 式因子为错误模式的常数倍。常数倍的值取决于所实现的字节位置同 步关系。
有利地,本发明的EDC/CRC校验器进行EDC/CRC校验而不需要对 缓冲器的单独访问。再者,本发明与并不完全充满块并在数据结束后 放置CRC字节及在CRC字节后面填充零的填充字节直到充满块为止的 数据格式是兼容的。
从下面对附图中所示的较佳实施例的更具体的描述中,本发明的 上述与其它目的、特征及优点将是显然的,附图中的参照字符在全部 各种视图中都指相同的部件。附图没有必要按比例,而是将重点放在 说明本发明的原理上。

附图说明

图1为利用按照本发明的EDC/CRC校验器的示范性纠错系统的示 意性方框图
图2展示存储在缓冲器中的一个数据扇区,该扇区概念化成以行 与列存储。
图3A为展示按照本发明的一个实施例的EDC/CRC校验器电路的示 意图。
图3B为展示按照本发明的实施例的EDC/CRC校验器电路的示意 图,其中数据字节与错误模式是基本上可以同时访问的。
图4A为展示按照本发明的实施例的EDC/CRC校验器电路的示意 图,其中一次可以处理两个码字(诸如两列)。
图4B为展示与图4A的电路等效的EDC/CRC校验器电路的示意 图。
图4C为展示按照本发明的实施例的EDC/CRC校验器电路的示意 图,其中一次可以处理两个码字(诸如两列)并且其中的数据字节与 错误模式是基本上可以同时访问的。
图5展示概念化为分成两个交错的块的一个缓冲器,各块依次具 有概念化为组织成行与列的字节。
图6为描述包含在EDC/CRC校验操作中的步骤的流程图
图7为展示图4A的校验器的面向芯片的实现的示意性方框图。
发明详述
图1示出通过系统控制器10与缓冲器(一般性地用虚线15描绘) 通信的纠错系统。缓冲器中存储有多个诸如图2中所示的块。图1的 纠错系统还包括一个发生器或发生部件20(诸如用于生成校正子); 一个计算器或计算部件30(诸如用于计算错误模式);一个校正器 或校正部件60;及一个EDC校验器部件70。图1的纠错系统的全部活 动都由控制器10监控,诸如利用在总线CBUS上传输的控制与其它信 号。
如图1中所示,将EDC/CRC校验器70连接成在线ERR上接收来自 校正器60的错误模式及在线GDAT上接收缓冲器数据。系统控制器10 利用控制总线CBUS监控EDC/CRC校验器70以及校正器60与缓冲器存 取的全体操作。参照名为“通用纠错系统”的Chris Zook在1994年 9月16日提交的美国专利申请(序列号为08/307,259),在密致盘 (CD)驱动器的上下文中理解系统控制器的操作与校正,通过引用将 其结合在此。然而,应理解本发明的原理不限于这一实例,而是在广 义上可应用于EDC/CRC校验。
如下面更详细地描述的,在系统控制器10的监控下,EDC/CRC校 验器70有利地与校正器60协同操作在缓冲器正在校正字节的同一扫 描中执行校正准确性的EDC/CRC验证。
图3A示出适用于处理数据(如存储在图2的缓冲器中)的EDC/CRC 校验器及用于说明本发明的原理的功能示意图。图3A的校验器70的 特色为以累计寄存器702的形式的存储器。累计寄存器702是由寄存 器馈入开关或MUX704馈入的,该开关是由最终连接到系统控制器10 上的选择线705操作的。寄存器馈入MUX704连接在三个交替的信号源 上:加法器706;行乘法器708;及列乘法器710。行乘法器708连接 在加法器712上。寄存器702的内容-余数或累计和-可在寄存器输 出线714上获得。寄存器输出线714连接在列乘法器710、加法器712 与加法器706上。
将来自缓冲器的未纠正的数据字节作用在去往与715的第一端 的线GDAT上。与门715的第二端接收来自系统控制器10的信号 NOT_LAST_COL。只要校验器70仍在为求和目的从缓冲器中获取数据 字节,信号NOT_LAST_COL有效地选通来自缓冲器的未纠正的数据字 节,通过与门715作用在加法器712上。
加法器712将寄存器702中的累计和(在线714上获取)与来自 缓冲器的未纠正的数据字节(作用在线GDAT上)加在一起。将加法器 712产生的和作为输入作用在行乘法器708上。如上所述,来自行乘 法器708的输出为作用在MUX704上的可选择输入之一。
携带来自校正器60的错误模式的线ERR连接在乘法器716上。为 了在当前码字与前一码字之间提供字节同步位移(即列位移),乘法 器716乘以一个常数X8mod G(X)以生成一个错误模式因子。将乘法器 716生成的积(错误模式因子)作用在加法器706的第一输入端上, 加法器706的第二输入端连接在上述寄存器输出线714上。
图3A中,行乘法器708的乘法常数为X8·86mod G(X),它的作用 为前进到下一行(即在缓冲器中前进86个字节,每一字节8位)。列 乘法器710的乘法常数为X-(86·24-1)·8mod G(X),它的作用为从一个列 码字的数据部分的最后字节移动到下一列码字的顶部(即在缓冲器中 向后移动2063字节,每一字节8位)。
图3A中的说明包括未纠正的数据的一个字节(在线GDAT上)与 块中另一字节位置同步的字节的错误模式不能立即一起获得,而是顺 序地作用在校验器上(首先是错误模式,随后是数据字节)的情况。 另一方面,图3B的实施例示出一个校验器70′,其中未纠正的数据字 节与错误模式两者是可以同时访问的。图3B的实施例中,去掉加法器 706,使MUX704成为一个两输入端开关,并将乘法器716的输出作为 第三输入作用在加法器712上。
图4A示出配置成处理两个码字(诸如一次两列)的校验器70″, 如为了性能原因在某些实施例中可能希望的。图4A的实施例可用于诸 如将缓冲器概念化成包含两个交错的块及一次处理缓冲器的两个码字 时。例如,图5示出两个交错的块(偶块与奇块),块中各列中的字 节构成一个列码字。这便是,表示为0000,0043,0086,...,0989 的字节构成偶块的第一列码字的数据部分;字节0001,0044, 0087,...,0990构成偶块的第二列码字的数据部分,以此类推到各偶 块与奇块中总数为43个列码字。再者,如图5中所示,各块的最后两 个字节(具体地表示为1030,1031的字节)为EDC或CRC字节。
图4A的校验器70″包含一个累计寄存器702″。对寄存器702″的馈 入是由开关或MUX704″控制的,如用选择信号705″控制的。校验器 70″接收四个输入信号:一个低位数据输入信号DATL;一个低位错误模 式输入信号ERRL;一个高位数据输入信号DATH;及一个高位错误模式 输入信号ERRH。参照图5的交错块情况,例如,低位输入可对应于偶 块而高位输入可对应于奇块。即,DATL可以是来自偶块的列码字 CWevenN的所选择的字节的未纠正的数据;ERRL可以是用于一个字节 (在列码字CWevenN-1中)的错误模式,该字节是与列码字CWevenN的 选择的字节有规定的字节同步关系的;DATH可以是来自奇块的列码字 CWoddN的所选择的字节的未纠正的数据;ERRH可以是用于一个字节(在 列码字CWoddN-1中)的错误模式,该码字是与列码字CWoddN的所选择 的字节有同步关系的。
校验器70″还包括5个乘法器,包含列乘法器710″;行乘法器 708″;及分别设置在线DATH、ERRL与ERRH上的乘法器750、760与770。 乘法器708”、710”、750、760与770的乘法常数由表1提供。
               表1     乘法器       乘法常数     708″ x86·8modG(x)     710″ x-(86·24-2)8modG(x)     750 x8modG(x)     760 x16modG(x)     770 x24modG(x)
乘法器750、760、770的输出端连接在开关或MUX780的相应输 入端上。MUX780的输出端连接在加法器790的第一输入端上;加法器 790的第二输入端连接在寄存器702″的输出线714″上。加法器790的 输出端连接在MUX704″的第一输入端上,MUX704″的其它两个输入端 连接在乘法器708″与710″的输出端上。如图3A实施例中,线DATL具 有与门715″连接在其上用于只要信号NOT_LAST_COL为on时便通过它 选通数据字节。
图4B示出基本上是图4A的电路70″的等效物的校验器电路70。 图4B的校验器电路70与图4A的电路70″有少许不同。第一差别涉及 信号DATL16、DATH16、ERRH16、及ERRL16的格式,它们是转换成16位值的。 具体地,ERRH16为通过连接ERRH与8个零位而得到的一个16位值,ERRH 在高位位置上。ERRL16是通过连接8个零位与ERRL得到的一个16位值, ERRL在低位位置上。DATH16与DATL16分别以ERRH16与ERRL6类似的方式构 成。由于连接以前错误与数据字节各为8位长度而CRC多项式为16 位长度,ERR或DAT乘以X8为简单地从低8位移位到高8位,并且(如 下面讨论的)方便了图4B中的乘法器765的使用而不是图4A的乘法 器750、760与770。
图4B与图4A的第二差别为线ERRH16与ERRL16馈入MUX767,后者 又依次馈入乘法器765。乘法器765的乘法常数为X16mod G(X)。乘 法器765与DATH16两者都连接在MUX780上。MUX780的输出端连接 加法器790上。
图7示出提供用于以两个16位多项式进行两个校验的两个 CRC/EDC电路的图4B的面向芯片的实现。图7的校验器70包括一对 左乘法器(premultiplier)芯片730(0),730(1);一对累计寄 存器732(0),732(1);及一个EDC比较器734。在校验器70中, 两个电路(通过各自的左乘法器730(0)、730(1))接收相同的错误模 式后面跟着相同的数据。
图7中,左乘法器730(0)利用多项式X16+X15+X2+1,而左乘 法器730(1)利用多项式X16+X2+X+1。对于图4B中所示的各乘法 器,例如,图7中的各左乘法器730具有其本身的异或逻辑门组。用 于左乘法器730的一个乘法器的逻辑门组的配置等效于用该乘法器独 有的一个16×16二进制矩阵去乘对该特定乘法器的输入信号(诸如配 对行与列并取其内积)以得出一个16位输出信号。如上面相对于乘法 以前的信号DATL16、DATH16、ERRH16与ERRL16所讨论的,输入信号(例如 诸如DATL等8位输入矢量)是在一端或另一端上用8个零填充以构成 用以乘法的(例如产生矢量DATL16)一个16位矢量的。
各乘法器的输出矢量的位为输入矢量的位的线性组合并从而能用 矩阵乘法得出,即〔0〕=〔I〕〔T〕K,其中〔I〕与〔0〕为位0在 右边的输入与输出行矢量,而〔T〕为用于乘以XmodG(X)的矩阵。
对于左乘法器730(0),说明乘法器765的乘法的16×16二进 制矩阵提供在表2中;用于行乘法器708″的矩阵提供在表3中;用于 列乘法器710″的矩阵提供在表4中。对于左乘法器730(1),说明乘 法器765的乘法的16×16二进制矩阵提供在表5中;用于行乘法器 708″的矩阵提供在表6中;用于列乘法器710″的矩阵提供在表7中。
作为上文的一个实例, ERRH·X24modG1(x)=ERRH·X8·X16mod G1(x)= ERRH16·X16mod G1(x)
     [I]=[E0 E1 E2...E70000000] 输出的位0为              E0 +E2 +E3 +E4 +E5 +E6 +E7 .  
与图3A相似,图4A与图4B的示例包含用于块的另一字节位置同 步的字节的未纠正的两个字节(在线GDAT上)与两个错误模式不能立 即一起获得的情况,而是顺序地作用在校验器70″上(首先是错误模 式,后随数据字节)。图4C实施例与图4A实施例不同之处在于图4C 的校验器70拥有基本上同时可获得的数据字节与错误模式的对。用 于图4C实施例的行与列乘法器常数与图4A实施例的那些相同。
在图4C实施例中,校验器70″″包括由列乘法器710″″或行乘法器 708″″(通过两输入端MUX705″″)馈入的寄存器702″″。寄存器输出线 714″″连接在加法器790″″的第一输入端上,加法器790″″的其它四个输 入端连接在各自的线DATL、DATH、ERRL及ERRH上。线DATH、ERRL及ERRH 分别具有连接在其上的乘法器750″″、760″″及770″″。加法器790″″的 输出端作用在行乘法器708″″的输入端上。与门715″″设置在线DATL 与DATH上。
操作
如上面参照图2描述的,例如,本发明的一个扇区包括86列的一 块,块中每一列中的字节构成一个码字。对于CRC/EDC校验目的,只 利用码字的数据部分。从而除非另有规定,此后所用的“码字”只指 码字的数据部分而言(不包含码字的ECC部分)。例如,表示为0000、 0086、0172、...1978的字节构成第一列码字的数据部分;字节0001, 0087,0173,...1979构成第二码字的数据部分,并依此类推到块中总 共86个码字。再者,如图1中所示,各块的最后四个数据字节(具体 地表示为诸如字节2060,2061,2062,2063)为BDC或CRC字节。
图7中示出包含在系统控制器对EDC/CRC的监控中的步骤。在步 骤S2中,将计数器ROWCOUNT与COLCOUNT的值以及累计寄存器702 中的值(REGSUM)初始化为零。同时将最后列标志(LASTCOL)初始 化为假。初始化步骤S2之后,便执行包括偶数编号的步骤S4至S22 的循环。
此循环开始时(步骤S4),作出判定是否对正在与用ROWCOUNT 与COLCOUNT的当前值引用的字节有同步字节关系的缓冲器中的字节 进行纠正。由于在所示的实施例中,字节同步关系是使前一码字(即 对于前一码字的字节ROWCOUNT,即〔COLCOUNT-1,ROWCOUNT〕)发 生纠正,在为缓冲器中的第一列码字执行该循环时将不实现纠正。
具体地,对于所示的实施例,字节位置同步为在步骤S2判定对于 块的字节(COLCOUNT-1,ROWCOUNT)是否有错误模式存在。如上所 述,在处理一块的第一码字时步骤1608的判定将是否定的。然而,在 处理以后的列码字中的判定可代表性地表示如下:当用ROWCOUNT与 COLCOUNT的当前值访问图1的字节0001时,关于错误模式的生成的 判定是对字节0000进行的;当ROWCOUNT与COLCOUNT的当前值指示 图1的字节0087时,有关错误模式生成的判定是对字节0086进行的; 等等。应理解本发明不限于这一特定字节同步关系,只要根据整个系 统的其它考虑合适也能采用其它位移(诸如不同程度的列位移)。
对于对应于第一码字以外的其它码字的循环的执行,前一码字的 对应字节可能需要纠正。需要纠正时,在步骤S6上将用于同步字节(诸 如前一码字的同步字节)的错误模式因子加到寄存器702中。该错误 模式因子是通过用乘法器716将错误模式(E(X),信号ERR所携带的) 乘以一个乘法器常数(X8mod·G(X))而得到的。换言之,在步骤S6 上寄存器702得到REGSUM+E(X)X8mod G(X)。同步字节从最新访问 的块的字节位移一列(即一个字节或8位)这一事实便是所同步的字 节的错误模式必须乘以X8modG(X)的原因。在循环的同一次执行中,步 骤S6中所用的错误模式也用来纠正缓冲器中的块中的数据字节。
在步骤S8上判定是否已将来自缓冲器的所有未纠正的数据字节 都加入寄存器702中(即COLCOUNT是否已超过了缓冲器中的码字数)。 这一判定是通过校验标志LASTCOL的值进行的。如果尚未加上来自缓 冲器的全部未纠正的数据字节,执行从步骤S10继续进行。否则,执 行从步骤S12继续进行。
在步骤S10上,校验器70从块中得到下一个未纠正的数据字节。 具体地,在步骤S10上来自块中的下一未纠正数据字节为数据字节 (COLCOUNT,ROWCOUNT)。对于循环的第一次执行,得到的第一字节 将是字节0000。对于循环的继续进一步执行,在步骤S10上以ECC列 码字的次序访问块中其它字节(诸如,字节0086,0172,...,1978, 0001,0087,...,1979,0002,...,2063)。在步骤S10上,将步骤 S10得到的字节作用(在线GDAT上)并加(用加法器712)到寄存器 702中的累计和(REGSUM)上。再将加法器712的和乘以行乘法器708 的行前进乘法常数X86·8mod G(X),并将积存储在寄存器702中。从而, 在步骤S10上,将下一个未纠正的数据字节因子D(X)X8·86mod G(X)加 在寄存器702中的值(REGSUM)上。
当来自该块的全部未纠正的数据字节都已加到寄存器702中时 (诸如在步骤S10上)便执行步骤S12,并且只进行处理最后的码字 的错误模式因子。在步骤S12上,将寄存器702的内容乘以行乘法器 708的乘法常数X86·8mod G(X)。
在执行了步骤S10或S12之一之后,在步骤S14上将ROWCOUNT 的值增加一。结果在步骤S16上判定增加后的ROWCOUNT值不等于24, 为当前码字的下一字节执行在步骤S4上开始的循环。然而,如果增加 后的ROWCOUNT值等于24,则执行步骤S18。ROWCOUNT的值不允许超 过24,因为在每一个列码字中只有24个数据字节。
在步骤S18上,有鉴于前进到一个新列,列乘法器710的作用为 将寄存器702的内容乘以列调整常数X-(86·24-1)·8mod G(X)。
步骤S18之后,在步骤S20上,将ROWCOUNT复位到零并将COLCOUNT 增加一。步骤S22校验是否设置了标志LASTCOL。如果未设置标志 LASTCOL,(在步骤S24上)进行校验看看COLCOUNT的值是否超过了 最后一列的号码(诸如COLCOUNT为86)。如果尚未超过该块中最后 一列(诸如最后码字),返回到步骤S2去为该块中新码字的第一字节 继续执行。否则,在返回到步骤S2去为块中的最后码字处理任何错误 模式之前,在步骤S26上将标志LASTCOL设置为真。
将用于块中最后码字的错误模式因子(如果有的话)加入寄存器 702之后,标志LASTCOL设定为“真”导致(在步骤S22)执行跳转至 步骤S28。在步骤S28上,对寄存器702的值(即值REGSUM)是否为 零作出判定。在所有循环完成时寄存器702中的值为用CRC发生器多 项式去除缓冲器中所有字节(包含CRC字节)构成的多项式时的余数。 寄存器702的零值证实校正器60所执行的纠错是正确的。
从而可以看出将块中有可能受到破坏(即未纠正)的数据字节加 到寄存器702中在时间上是与将块中位置上同步的字节的错误模式因 子(如果有的话)加入寄存器702协调的。
参照前面对包含在图7中的步骤的讨论明白了图3B的校验器 70′、图4A的校验器70″、图4B的校验器70及图4C的校验器70″″ 的操作。在图4A、图4B与图4C中一次处理两个码字。在图7实施例 中,为两个分支校验器电路70中每一个执行图6的步骤,各分支校 验器电路接收相同的数据但用两个16位多项式中不同的一个操作。 结束时,对于可纠正的块两个校验器电路必须都得出零。
从而,从上文中可以看出,按照本发明,在与通过缓冲器的实现 数据字节纠正的同一遍扫描中进行CRC/EDC校验。本发明的方法包含 顺序地访问缓冲器中的字节及将缓冲器中第一个选择的字节加到累计 和上(诸如步骤S10),如果需要对其纠正则被访问的字节尚未受到 纠正。虽然这一遍是针对第一选择的字节的,使用用于第二字节的错 误模式纠正该块中的第二字节,其中第一选择的字节与第二选择的字 节之间存在着字节位置同步关系,且第二字节在未纠正时已加入累计 和中。将用于第二字节的错误模式因子加到累计和上(诸如步骤S6)。 随后在同一遍中,将用于第一字节的错误模式因子加到累计和上。
虽已参照其较佳实施例具体展示与描述了本发明,熟悉本技术者 应理解可在其中进行形式上与细节上的各种改变而不脱离本发明的精 神与范围。例如在愿意时可提供两个以上的交错。
  表2                 表3                 表4 1000000000001001    0001111111110110    0011011110110100 1000000000000110    0000111111111011    0001101111011010 0100000000000011    1100011111111111    0000110111101101 1110000000000011    1010001111111101    1100011011110100 1011000000000011    1001000111111100    0110001101111010 1001100000000011    0100100011111110    0011000110111101 1000110000000011    0010010001111111    1101100011011100 1000011000000011    1101001000111101    0110110001101110 1000001100000011    1010100100011100    0011011000110111 1000000110000011    0101010010001110    1101101100011001 1000000011000011    0010101001000111    1010110110001110 1000000001100011    1101010100100001    0101011011000111 1000000000110011    1010101010010010    1110101101100001 1000000000011011    0101010101001001    1011010110110010 1000000000001111    1110101010100110    0101101011011001 1000000000000101    0111010101010011    1110110101101110
  表5                 表6                 表7 1000000000001001    0001010111000000    1110111000100011 1100000000000111    0000101011100000    1111011100010010 1110000000000000    0000010101110000    0111101110001001 0111000000000000    0000001010111000    1011110111000111 0011100000000000    0000000101011100    1101111011100000 0001110000000000    0000000010101110    0110111101110000 0000111000000000    0000000001010111    0011011110111000 0000011100000000    1000000000101000    0001101111011100 0000001110000000    0100000000010100    0000110111101110 0000000111000000    0010000000001010    0000011011110111 0000000011100000    0001000000000101    1000001101111000 0000000001110000    1000100000000001    0100000110111100 0000000000111000    1100010000000011    0010000011011110 0000000000011100    1110001000000010    0001000001101111 0000000000001110    0111000100000001    1000100000110100 0000000000000111    1011100010000011    0100010000011010
本申请与下列同时提交的专利申请有关:名为“多用途纠错计算 电路”的Chris Zook于1994年9月16日提交的美国专利申请(序 列号为08/306,918);名为“通用纠错系统”的Chris Zook于1994 年9月16日提交的美国专利申请(序列号为08/307,259);通过引 用将上文全部结合在此。
QQ群二维码
意见反馈