專利名稱::Crc/edc校驗器系統的制作方法本申請與下列同時提交的專利申請有關名為“多用途糾錯計算電路”的ChrisZook于1994年9月16日提交的美國專利申請(序列號為08/306,918);名為“通用糾錯系統”的ChrisZook于1994年9月16日提交的美國專利申請(序列號為08/307,259);通過引用將上文全部結合在此。本發明涉及糾錯系統,包括但不限于利用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與緩沖器存取的全體操作。參照名為“通用糾錯系統”的ChrisZook在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乘以一個常數X8modG(X)以生成一個錯誤模式因子。將乘法器716生成的積(錯誤模式因子)作用在加法器706的第一輸入端上,加法器706的第二輸入端連接在上述寄存器輸出線714上。圖3A中,行乘法器708的乘法常數為X8·86modG(X),它的作用為前進到下一行(即在緩沖器中前進86個字節,每一字節8位)。列乘法器710的乘法常數為X-(86·24-1)·8modG(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</tables>乘法器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的乘法常數為X16modG(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·X16modG1(x)=ERRH16·X16modG1(x)[I]=[E0E1E2…E70000000]E0+E2+E3+E4+E5+E6+E7.輸出的位0為與圖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)為EDC或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)X8modG(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·8modG(X),并將積存儲在寄存器702中。從而,在步驟S10上,將下一個未糾正的數據字節因子D(X)X8·86modG(X)加在寄存器702中的值(REGSUM)上。當來自該塊的全部未糾正的數據字節都已加到寄存器702中時(諸如在步驟S10上)便執行步驟S12,并且只進行處理最后的碼字的錯誤模式因子。在步驟S12上,將寄存器702的內容乘以行乘法器708的乘法常數X86·8modG(X)。在執行了步驟S10或S12之一之后,在步驟S14上將ROWCOUNT的值增加一。結果在步驟S16上判定增加后的ROWCOUNT值不等于24,為當前碼字的下一字節執行在步驟S4上開始的循環。然而,如果增加后的ROWCOUNT值等于24,則執行步驟S18。ROWCOUNT的值不允許超過24,因為在每一個列碼字中只有24個數據字節。在步驟S18上,有鑒于前進到一個新列,列乘法器710的作用為將寄存器702的內容乘以列調整常數X-(86·24-1)·8modG(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表4100000000000100100011111111101100011011110110100100000000000011000001111111110110001101111011010010000000000001111000111111111110000110111101101111000000000001110100011111111011100011011110100101100000000001110010001111111000110001101111010100110000000001101001000111111100011000110111101100011000000001100100100011111111101100011011100100001100000001111010010001111010110110001101110100000110000001110101001000111000011011000110111100000011000001101010100100011101101101100011001100000001100001100101010010001111010110110001110100000000110001111010101001000010101011011000111100000000011001110101010100100101110101101100001100000000001101101010101010010011011010110110010100000000000111111101010101001100101101011011001100000000000010101110101010100111110110101101110表5表6表7100000000000100100010101110000001110111000100011110000000000011100001010111000001111011100010010111000000000000000000101011100000111101110001001011100000000000000000010101110001011110111000111001110000000000000000001010111001101111011100000000111000000000000000000101011100110111101110000000011100000000000000000010101110011011110111000000001110000000010000000001010000001101111011100000000111000000001000000000101000000110111101110000000011100000000100000000010100000011011110111000000001110000000010000000001011000001101111000000000000111000010001000000000010100000110111100000000000011100011000100000000110010000011011110000000000001110011100010000000100001000001101111000000000000111001110001000000011000100000110100000000000000011110111000100000110100010000011010權利要求1.一種用于校驗以塊形式存儲在緩沖器中的信息字節的系統,該系統包括一個糾正單元,它在緩沖器的糾正訪問期間輸出供在糾正塊中的指定字節中使用的錯誤模式;一個CRC/EDC校驗器,它在緩沖器的糾正訪問期間在塊中的字節上操作并使用CRC/EDC信息來確認該塊是糾正了的。2.權利要求1的系統,其中該CRC/EDC校驗器進行運算求出塊中字節之和。3.權利要求2的系統,其中在糾正訪問期間,在正被校正的字節與正被求和的字節之間存在著字節位置同步關系。4.權利要求3的系統,其中在糾正掃描中,校驗器將從塊中選擇的一個字節加到和上,隨后在用對于選擇的字節的錯誤值糾正選擇的字節時,還將包含用于該選擇的字節的錯誤值的一個因子加在和上。5.權利要求2的系統,其中在糾正掃描中,校驗器將從緩沖器中選擇的一個字節加在和上,此后在對于用選擇的字節的錯誤值糾正該選擇字節時,還將包含用于該選擇字節的錯誤值的因子加在和上。6.一種與用糾正單元糾正緩沖器中的字節同步的校驗緩沖器中的信息字節的CRC/EDC校驗器系統,該校驗器包括在其中累計一個和的一個存儲裝置;一個加法器,它將下述各項加到累計在存儲器中的和上;(1)尚未被糾正單元糾正的緩沖器中的一個字節;及(2)已加在和上的一個字節的一個錯誤模式。7.權利要求6的校驗器,其中加在和上的字節與正在加上其錯誤模式的字節具有字節位置同步關系。8.權利要求7的校驗器,其中將緩沖器概念化成包括多個列與行,及其中加在緩沖器中的字節與相加其錯誤模式的字節在同一行中。9.權利要求7的校驗器,其中該錯誤模式是包含在加在累計和上的錯誤模式因子中的,及其中該錯誤模式因子還包含一個常數倍。10.權利要求9的校驗器,其中常數倍的值取決于字節位置同步關系。11.一種用于校驗存儲在緩沖器中的信息字節的方法,該方法包括訪問緩沖器中的第一選擇的字節并將該第一選擇的字節加在累計和上;利用緩沖器中的用于第二選擇的字節的錯誤模式糾正緩沖器中的第二選擇的字節;以及將用于第二選擇字節的錯誤模式加在累計和上。12.權利要求11的方法,其中在第一選擇的字節與第二選擇的字節之間存在著字節位置同步關系。13.權利要求12的方法,其中將緩沖器概念化成包括多個列與行,及其中第一選擇的字節與第二選擇的字節在同一行中。14.權利要求12的校驗器,其中該錯誤模式包含在加到累計和上的錯誤模式因子中,及其中該錯誤模式因子還包含一個常數倍。15.權利要求14的校驗器,其中常數倍的值取決于字節位置同步關系。16.一種校驗存儲在緩沖器中的信息字節的方法,該方法包括順序訪問緩沖器中的字節;將緩沖器中第一選擇的字節加在累計和上,如果它需要糾正則所訪問的字節尚未經過糾正;利用用于第二選擇的字節的錯誤模式糾正緩沖器中的第二選擇字節;將用于第二選擇字節的錯誤模式加在累計和上。17.權利要求16的方法,其中在第一選擇的字節與第二選擇的字節之間存在著字節位置同步關系。18.權利要求16的校驗器,其中將緩沖器概念化成包括多個列與行,及其中加在緩沖器上的字節與加上錯誤模式的字節在同一行中。19.權利要求16的校驗器,其中該錯誤模式包含在加到累計和上的錯誤模式因子中,及其中該錯誤模式因子還包含一個常數倍。20.權利要求19的校驗器,其中常數倍的值取決于字節位置同步關系。21.一種在緩沖器的一遍掃描中校驗以塊格式存儲在緩沖器中的信息字節的方法,該方法包括在該一遍掃描中將第一選擇的字節加在累計和上;然后接著在同一遍中在累計和上加上用于第一選擇的字節的錯誤模式。22.權利要求21的方法,還包括在將第一選擇的字節加在累計和上之后,利用該錯誤模式來糾正第一選擇的字節。23.權利要求22的校驗器,其中該錯誤模式包含在加在累計和上的錯誤模式因子中,及其中該錯誤模式因子還包含一個常數倍。24.權利要求23的校驗器,其中該常數倍的值取決于字節位置同步關系。25.一種校驗以塊格式存儲在緩沖器中的信息字節的方法,該方法包括在通過塊的單一掃描訪問中,順序訪問緩沖器中的字節;在訪問時將第一字節加在累計和上;如果需要糾正則第一字節尚未糾正;利用用于第二字節的錯誤模式糾正塊中的第二字節;第二字節在尚未糾正時已加在累計和中;將用于第二字節的錯誤模式加在累計和上;然后接著在同一遍掃描中,將第三字節加在累計和上;用用于第一字節的錯誤模式糾正第一字節;以及將用于第一字節的錯誤模式加在累計和上。26.權利要求25的方法,其中在第一選擇的字節與第二選擇的字節之問存在著字節位置同步關系。27.權利要求26的方法,其中將緩沖器概念化成包括多個列與行,及其中第一選擇的字節與第二選擇的字節在同一行中。28.權利要求26的校驗器,其中該錯誤模式包含在加在累計和上的錯誤模式因子中,及其中該錯誤模式因子還包含一個常數倍。29.權利要求28的校驗器,其中常數倍的值取決于字節位置同步關系。30.權利要求25的校驗器,其中在完成通過塊的單一遍掃描訪問時,如果已經正確地糾正了該塊,累計和便是零。31.一種對在緩沖器中的數據塊中的字節上執行EDC/CRC校驗的方法,該方法包括順序地訪問塊中的未糾正的數據字節并在訪問一個累計和時加上各未糾正的數據字節;在訪問一個未糾正的數據字節時,判定該塊中一個與位置相關的數據字節是否具有可利用的錯誤模式,該與位置相關的數據字節已加在累計和上;以及,如果存在可利用的錯誤模式,將用于與位置相關的數據字節的可利用的錯誤模式加在累計和上。32.權利要求31的方法,還包括在順序訪問塊中的未糾正的數據字節期間糾正與位置相關的數據字節。33.權利要求31的方法,其中該與位置相關的數據字節與被訪問的未糾正數據字節成字節同步關系。34.一種對在緩沖器中的數據塊中的字節執行EDC/CRC校驗的方法,這些字節是組織成碼字的,該方法包括順序地將塊中用于一個最新碼字的糾正的數據字節加到累計和中;在訪問用于最新碼字的未糾正的數據字節時,判定前一碼字中的一個對應數據字節是否具有可利用的錯誤模式,該前一碼字的該對應數據字節已加在累計和上,以及如果存在可利用的錯誤模式,將用于前一碼字的對應數據字節的可利用錯誤模式加在累計和上。35.權利要求34的方法,還包括在正在將最新碼字的未糾正的數據字節加到累計和的同時,糾正該前一碼字的對應數據字節。36.權利要求34的方法,其中該前一碼字的對應數據字節與正在加到累計和上的最新碼字的數據字節具有字節同步關系。全文摘要當在糾正掃描中正在糾正一塊數據時,EDC/CRC校驗器(70)執行EDC/CRC校驗,借此免除塊糾正后的用于EDC/CRC目的的緩沖器訪問。在糾正掃描中,累計一個EDC/CRC和,在完成該塊的掃描時,塊中的零EDC/CRC字節證實已糾正了該塊。在塊的單一糾正掃描中,將未糾正的最新碼字的字節加在累計和上。(必要時)糾正前一碼字中與最新碼字的字節具有字節同步關系的字節,并(在發生糾正時)將包含用來糾正前一碼字的字節的錯誤模式的錯誤模式因子也加在累計和上。在示出的實施例中,將塊概念化成具有碼字的列,字節同步關系為使正在累計一個未糾正的字節時,對緊接的前一碼字的對應字節進行糾正。本發明的各實施例能同時處理多個碼字。文檔編號H03M13/01GK1164941SQ95196066公開日1997年11月12日申請日期1995年9月15日優先權日1994年9月16日發明者C·P·佐克申請人:西爾拉斯邏輯公司