TW202308331A - 多位元組錯誤的辨識 - Google Patents
多位元組錯誤的辨識 Download PDFInfo
- Publication number
- TW202308331A TW202308331A TW111105685A TW111105685A TW202308331A TW 202308331 A TW202308331 A TW 202308331A TW 111105685 A TW111105685 A TW 111105685A TW 111105685 A TW111105685 A TW 111105685A TW 202308331 A TW202308331 A TW 202308331A
- Authority
- TW
- Taiwan
- Prior art keywords
- error
- byte
- code
- shortened
- bit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本發明提出一種辨識在一縮短錯誤碼之碼字內的多位元組錯誤的方法,其中該縮短錯誤碼是一個τ位元組修正錯誤碼,該縮短錯誤碼的碼字的位元組決定一第一範圍,同時只要滿足下列條件中的至少一個條件,即可辨識出無法修正的多位元組錯誤:(a) 至少有一個錯誤位置訊號不是位於第一範圍內;(b) 至少有一個錯誤位置訊號顯示第一範圍內的至少一個、但是少於τ個錯誤,而且不存在1位元組錯誤至(τ −1)位元組錯誤。
Description
所謂的錯誤碼可以是一個錯誤修正碼、一個錯誤辨識碼、或是一個錯誤辨識碼和一個錯誤修正碼的組合。
例如Bose-Chaudhuri-Hocquenghem-Code (BCH碼,參見 https://de.wikipedia.org/wiki/BCH-Code)是錯誤碼的一個例子。
例如,一種已知的解決方法是,以BCH碼將要修正的位元錯誤位置確定為BCH碼的一個Lokator多項式的零位。例如文獻[4]描述一種利用一個BCH碼在一擴展域
GF(2
m)內進行一個2位元錯誤修正的特殊的處理方式。從一個相應的第二級Lokator多項式出發,將這個多項式進行轉換,使經轉換的多項式的零位能夠被字寬m的一個參數確定。這個參數是由校正子成分決定。經轉換的多項式的零位在確定後被轉換到原本的Lokator多項式的零位。利用解碼器可以從原本的Lokator多項式的零位計算出要修正的位元位置。
文獻[4]也有描述如何利用BCH碼對3位元錯誤及4位元錯誤進行錯誤修正,以及利用一相應的里德-所羅門碼(Reed-Solomon-Code)修正位元組錯誤。
本發明的一個目的是改良已知的解決方法,特別是提出一種能夠有效辨識無法修正之多位元組錯誤的方法。
採用本發明之獨立申請專利項目之特徵的方法即可達到上述目的。附屬申請專利項目之內容為各種有利的實施方式。
為達到上述目的,本發明提出一種識別在一縮短錯誤碼的碼字中的多位元組錯誤的方法,其中:
- 該縮短錯誤碼是一τ 位元組修正錯誤碼,
- 該縮短錯誤碼的碼字的位元組決定一第一範圍,
- 只要滿足下列條件中的至少一個條件,即可辨識出無法修正的多位元組錯誤:
(a) 至少有一個錯誤位置訊號不是位於第一範圍內,
(b) 至少有一個錯誤位置訊號顯示第一範圍內的至少一個、但是少於τ個錯誤,而且不存在1位元組錯誤至(τ −1)位元組錯誤。
此處要指出的是,每一個位元組都可以具有
b個位元,其中
b≥ 1。Τ的值可以是一個大於1的整數。
如果辨識出τ位元組錯誤,而且有τ個錯誤位置訊號 位於第一範圍,則可以修正一個τ位元組錯誤。
如果沒有發現任何錯誤位置訊號,則不存在可辨識的錯誤。
在(b)的情況中,該至少一個錯誤位置訊號可以部分或全部位於第一範圍,或部分或全部不是位於第一範圍。
只要不是位於第一範圍,該錯誤位置訊號可以是位於一特定或非特定的範圍。只要確定錯誤位置訊號不提供任何解答或不提供有效的解答,即可確定是一非特定的範圍。
一種改良方式是,條件(a)還包括:該至少一個不是位於第一範圍的錯誤位置訊號位於一第二範圍,其中該第二範圍是由一未縮短錯誤碼的位元組決定,而且該等位元組不是縮短錯誤碼的位元組。
一種改良方式是,利用計數器測定至少一個錯誤位置訊號中若干數量的錯誤位置訊號。
一種改良方式是,利用錯誤位置訊號參照碼字的一個位元組。
一種改良方式是,利用錯誤碼的至少一個Lokator多項式測定該至少一個錯誤位置訊號。
一種改良方式是,縮短錯誤碼是一個在一擴展域
GF(2
m )上方長度為
n的BCH碼,其中
n<2
m −1,且
m≥ 3。
透過縮短可以從一個在擴展域
GF(2
m )上方長度為2
m -1的BCH碼確定縮短錯誤碼。例如,縮短錯誤碼是一修正τ位元組錯誤的BCH碼,其中τ ≥ 2。縮短錯誤碼較佳是能夠辨識比τ位元組錯誤更多的位元組錯誤。
一種改良方式是,縮短錯誤碼是一個在一擴展域
GF(2
m )上方的里德-所羅門碼(Reed-Solomon-Code)。
本發明還提出一種用於辨識縮短錯誤碼之碼字內的多位元組錯誤的裝置,其中:
- 該縮短錯誤碼是一修正τ位元組修正錯誤碼,
- 該縮短錯誤碼之碼字的位元組決定一第一範圍,
- 此裝置是用於辨識無法修正的多位元組錯誤,前提是滿足下列條件中的至少一個條件:
(a) 至少有一個錯誤位置訊號不是位於第一範圍內,
(b) 至少有一個錯誤位置訊號顯示第一範圍內的至少一個、但是少於τ個錯誤,而且不存在1位元組錯誤至(τ −1)位元組錯誤。
一種改良方式是,此裝置是一儲存器或儲存系統的一部分,或是獨立於該儲存器或儲存系統之外。
此裝置可以是儲存器的一部分,也可以是獨立於該儲存器之外。特別是此裝置可以包含一執行本文提及之步驟的處理單元。處理單元可以包含下列元件中的至少一種元件:處理器、微控制器、開關電路、ASIC、FPGA、邏輯單元。可以用至少一種物理單元的形式實現此處理單元。特別是可以將處理單元分散到複數個物理單元。
利用錯誤碼可以辨識及/或修正單一或複數個位元內的錯誤。可以將位元合併或組合成所謂的位元組。一個位元組包含
b個位元,其中
b≥ 1。
錯誤碼是一種能夠辨識及/或修正至少一個錯誤的碼。因此錯誤碼是一種錯誤辨識碼及/或錯誤修正碼。例如錯誤碼可以是:
- 一個τ位元組錯誤修正碼,
- 一個τ位元組修正及(τ + 1)位元組辨識碼,或是
- 一個τ位元組修正碼及一τ個以上位元組錯誤辨識碼。
其中較佳是τ ≥ 1。如前面所述,位元組包含至少一個位元。如果位元組剛好含有一個位元(
b= 1),則錯誤碼也稱為τ位元錯誤修正及(τ +1)位元錯誤辨識碼。
在傳輸數據或儲存數據時,可能會出現需要被辨識及/或修正的位元錯誤。例如可以對有效數據增加檢驗數據(也稱為檢驗位元或檢驗位元組)。在沒有錯誤的情況下,有效數據及檢驗數據的組合較佳是產生錯誤碼的一個碼字。錯誤碼通常包含複數個碼字,因此從錯誤碼的觀點來看,有效的佔用未顯示任何錯誤。為了完整性起見,此處要指出的是,多重錯誤也可以將一個碼字轉化成另一個碼字。在這種情況下,不存在可辨識的錯誤,雖然實際上有出現一多重錯誤。換句話說,這個碼字始終是位元的一個有效的佔用,因此錯誤碼沒有辨識到錯誤,或是不存在錯誤。
在以下根據位元組所作的說明中,每一個位元組都包含
b≥ 1個位元。與此相應的,在
b= 1的情況下,每一個位元組都只有一個位元。因此也可以用“位元“或“位元序列的名稱取代“位元組“或“位元組序列“的名稱。
在進行錯誤修正時,一個普遍的動機是要辨識及/或修正一位元組序列之位元組內預定數量的錯誤。需要修正的可能是全部的位元組,也可能只是一部分的位元組。如果有檢驗位元組,一種可能的選擇是不修正檢驗位元組。此外,另一種可能的選擇是對位元組序列的一部分位元組進行不以方式的處理:例如可以修正位元組序列的第一部分位元組中的錯誤,但是對位元組序列的第二位普位元組僅進行辨識。
為了修正有錯誤的位元組,需要辨識有錯誤的位元組的位置,以及為這個有錯誤的位元組確定一個修正值。
如果處理的是一個τ位元組錯誤修正錯誤碼,則對1至τ個有錯誤的位元組適用以下的情況:
利用一個錯誤位置訊號測定一個有錯誤的位元組的位置,如果相應的位元組有錯誤,則該錯誤位置訊號為第一值,如果相應的位元組沒有錯誤,則該錯誤位置訊號為第二值。例如,第一值是1,第二值是0。可以利於一個b位數的修正值測定用於修正有錯誤的位元組的值。如果將該修正值與有錯誤的位元組以模2加法相加,就可以導出修正過的值。
在
b= 1的情況下,
b位元位元組(也就是有B備位元的位元組)只有一個位元,同時一個錯誤就使一個位元序列
y=
y 0,...,
y
n −1變成一個有錯誤的位元序列
y’=
y’ 0,...,
y’
n −1。
可以透過一個二進制錯誤向量
e=
e 0,...,
e
n −1測定這個錯誤。因此下式成立:
y’=
y’ 0,...,
y’
n −1=
y 0+
e 0,...,
y
n −1+
e
n −1=
y+
e。 (1)
其中“+”代表模2加法。
如果
e
i = 1 ,其中
i∈ {0,...,
n−1},則
y ’ i =
y
i +
e
i =
y
i +1 =
y
i 同時在位置
i有一個錯誤,也就是說,在位置
i的錯誤位置訊號的值為1:
bfpi= 1。
如果
e
i = 0 ,其中
i∈ {0,...,
n−1},則
y
’ i =
y
i +
e
i =
y
i +0 =
y
i 同時在位置
i沒有錯誤,也就是說,在位置
i的錯誤位置訊號的值為0:
bfpi= 0。
在果
b= 1的情況下,錯誤向量
e的成分等於錯誤位置訊號
bfp 0,...,
bfp
n −1。
因此取代方程式(1),對於有錯誤的值y
’下式成立:
y ’=
y’ 0,...,
y’
n −1=
y 0+
bfp 0,...,
y
n −1+
bfp
n −1=
y+
bfp,
(2)
其中
bfp=
bfp 0,...,
bfp
n −1代表一個錯誤位置訊號向量。
如果位元組含有一個以上的位元(也就是說
b> 1),則以
Y
i (或
X
i )表示第
i個位元組,以及以
Y表示一個位元組序列。
可以利用一個二進制錯誤位置訊號
bfp
i = 1及一個錯誤值
E
i 描述位元組序列
Y’=
Y’ 1,...,
Y’
n 的第
i個位元組的錯誤。其中錯誤值
E
i 是一個
b位元的位元組。
與此相應的,錯誤位置訊號
bfp
i = 0,前提是:
E
i = 0。
對於一個可修正的錯誤而言,錯誤位置訊號向量bfp內錯誤向量的數量與位元組序列
Y’=
Y’ 0,...,
Y’
n −1內有錯誤的位元組的數量相等。例如,可以利用錯誤碼修正該位元組序列。
在
b> 1的情況下,錯誤向量
E=
E 0,...,
E
n −1是由
n個
b位元位元組組成,因此下式成立:
Y’=
Y’ 0,...,
Y’
n −1=
Y 0+
E 0, ...,
Y
n −1+
E
n −1=
Y+
E(3)
在方程式(3)中,運算符號“+”相當於模2加法。
因此以下的敘述成立:
- 如果
E
i ≠ 0,其中
i∈ {0,...,
n−1},則
bfp
i = 1,同時在第
i個位元組有一個錯誤。
- 如果
E
i = 0,則
bfp
i = 0,同時在第
i個位元組位置沒有錯誤。
此處描述的算式可以使用一個只有
τ位元組錯誤修正錯誤碼及根據錯誤位置訊號的數量,測定含有
τ個以上有錯誤的位元組的無法修正的錯誤。
例如,對線性錯誤碼而言,可以利用線性錯誤碼的錯誤校正子,測定錯誤的數量,也就是錯誤位置訊號的二進制值,如果
b> 1,則是測定長度為
b位元的錯誤值。
例如,此處描述的解決方法可視為縮短錯誤碼。可以從未縮短錯誤碼測定縮短錯誤碼,其中該未縮短錯誤碼具有較大的長度或長度大於縮短錯誤碼的碼字。
例如,縮短錯誤碼及未縮短錯誤碼可以具有相同數量的檢驗位元。例如, 縮短錯誤碼及未縮短錯誤碼都可以是一個
τ位元組錯誤修正錯誤碼。
可以從未縮短錯誤碼產生縮短錯誤碼,其中未縮短錯誤碼被縮短至少一個
b位元位元組。
如果
b= 1,則每一個
b位元位元組正好等於一個位元。在這種情況下,錯誤位置訊號辨識個別位元,也就是錯誤碼的碼字可能有錯誤的個別位置。
如使用的是
τ位元組錯誤修正錯誤碼,則在要修正的
b位元位元組內有
τ個錯誤的情況下,錯誤碼的要修正的位元組的
τ錯誤位置訊號被所產生的錯誤校正子確定為1。其他的錯誤位置訊號則等於0。
如果要修正的位元組的值為1的錯誤位置訊號的數量小於
τ,並符合以下的條件,就可以辨識出含有
τ個以上有錯誤的位元組的無法修正的多位元組錯誤:
- 沒有出現1位元組錯誤,
.
.
.
- 沒有出現(
τ−1)位元組錯誤 。
在測定錯誤修正時,如果將一個位元組位置的值為1的
τ個錯誤位置訊號中的一個錯誤位置訊號和未縮短錯誤碼在測定縮短錯誤碼時一樣的縮短,則可以辨識出縮短錯誤碼的位元組的小於
τ個錯誤位置訊號的值為1。
要修正的未縮短錯誤碼的位元組位置被稱為錯誤位置訊號的值域。因此在縮短錯誤碼的位元組內有1位元組錯誤、2位元組錯誤至
τ位元組錯誤的情況下,值為1的錯誤位置訊號是錯誤位置訊號的這個值域的所有元素。
反之,如果一個不是錯誤位置訊號的值域的一個元素的錯誤位置訊號被測定為1,則存在一個無法修正的錯誤。
如果另外還測出要修正的位元組不存在1位元組錯誤至(
τ-1)位元組錯誤,或是測得一個位於錯誤位置訊器的值域之外且其值為1的錯誤位置訊號,則最多可能有(
τ−1)個值為1的錯誤位訊號是錯誤位置訊號的值域的元素。值為1而且不是錯誤位置訊號之值域的元素的錯誤訊號的存在顯示有一個無法修正的錯誤。在這種情況下,無需測定位於值為1的錯誤位置訊器之值域內,而且值為1的錯誤位置訊號的數量。
範例
此處是以一個
τ位元組修正錯誤碼作為錯誤碼的例子。這個錯誤碼最多可以修正
τ個有錯誤的位元組,因此最多可以有
τ個錯誤位置訊號的值為1。
例如,這個
τ位元組修正錯誤碼是一個縮短錯誤碼。這個縮短錯誤碼是由一個未縮短的
τ位元組修正錯誤碼縮短
K個位元組
位元組
0, 位元組
1,..., 位元組
K −1所產生。
例如,如果縮短錯誤碼有
τ個以上的位元組含有一個錯誤,則可以測定一個錯誤校正子,那就是這個錯誤校正子等於未縮短錯誤碼的一個位元組錯誤的錯誤校正子,其中該錯誤出現在一個縮短的位元組。因此會在一個不存在於縮短錯誤碼的位置產生一個錯誤位置訊號:該錯誤位置訊號指向一個縮短的位元組,其中這個縮短的位元組不是縮短錯誤碼的碼字的一部分。這樣最多可以使(
τ− 1)個錯誤位置訊號(值為1)與縮短的錯誤訊號的位元組產生關連。因此縮短錯誤碼的位元組僅剩餘小於
τ個值仍然可以是1的錯誤位置訊號。
如果已知在修正錯誤時,
τ個值為1的錯誤位置訊是以錯誤校正子為基礎被測定的,其中一個位元組的一個值為1的錯誤位置訊號被測定,而且該位元組是未縮短錯誤碼的位元組,但不是縮短錯誤碼的位元組,這表示存在一個無法修正的錯誤。例如,這可以從縮短錯誤碼的位元組的值為1的錯誤位置訊號的數量小於
τ辨識出來。同樣的,這也可以從未縮短錯誤碼的一個位元的一個被測定的錯誤位置訊號辨識出來,其中該位元不是縮短錯誤碼的位元。
如果確定不存在1位元錯誤至(
τ−1)位元錯誤,同時錯誤碼是一個
τ位元組錯誤修正錯誤碼,則可以從要修正的錯誤碼的位元組被測定出的值為1的錯誤位置訊號的數量小於
τ,辨識出一個無法修正的錯誤。
因此在修正錯誤時,利用縮短錯誤碼的位元組的值為1的錯誤位置訊號的數量,可以辨識出一個無法修正的錯誤。
因此可以利用值為1的錯誤位置訊號的數量,以及顯示與縮短錯誤碼的一個碼字的位元組相應之位元組一個錯誤,因此無需其他的檢驗位元組,即可辨識出一個無法修正的錯誤。
無需為要修正的位元組測定值為1的錯誤位置訊號的準確數量。只需要確定此等錯誤位置訊號的數量小於或不等於
τ即可,但前提是縮短錯誤碼是一個
τ位元組錯誤修正錯誤碼,同時解碼的方式能夠測定最多
τ個錯誤位置訊號。
該等位元組可以選擇性的包含一讀出地址及/或寫入地址的地址位元或地址位元組,或是由讀出地址或寫入地址的導出。
此外,另一種選擇是測定是否存在1位元錯誤,以便將位元的同位性考慮進去。例如可以設置一個同位位元,並根據這個同位位元過濾特定的多位元組錯誤。
錯誤碼
以下將以線性碼為例進行說明。
為簡單易懂起見,首先說明
b= 1的情況,也就是說一個b位元位元組相當於一個單一位元。
一個
k位元的位元序列
x=
x 0,...,
x
k −1被編碼成一個碼字
y=
y 0,...,
y
n −1其中
n>
k> 1。此外下式成立
y=
x·
G, (4)
其中
G是一個被稱為錯誤碼的生成矩陣的(k,n)矩陣。在
b= 1的情況下,生成矩陣的元素是二進制的。也可以將生成矩陣的元素稱為擴展域
GF(2
m)。
生成矩陣的系統性形式可表示為:
G
sys= (P
k,n−k, I
k) (5)
其中
-
I
k 代表
k維度的單位矩陣,
-
P
k ,
n−
k 代表一個(
k,
n−
k)矩陣(同位矩陣)
根據方程式(5)的系統性形式生成矩陣,
H矩陣的系統性形式為
H
sys = (
I
n− k,
P
T n−k,k ) , (6)
其中
P
T n−k,k 是這個矩陣的轉換矩陣
P
k,n−k 。
將一個給定的生成矩陣的列進行線性組合,可以導出其他的生成矩陣。同樣的,將一個給定的
H矩陣的列進行線性組合,也可以導出其他的
H矩陣。
跟一個碼的每一個
H矩陣一樣,方程式(5)的
H矩陣的測定方式是對所屬的錯誤碼的一個碼字下式成立
H
sysy
= 0|。 (7)
其中0|代表一個具有純粹的零元素的行向量。
對一個有錯誤的字
y’=
y+
e=
y+
bfp同樣的下式也成立
H
sysy’
=
H
sys (
y+
e) =
H
sys ·
e=
H
sys ·
bfp=
s
sys ≠0|, (8)
其中可以將
s
sys =
H
sys ·
e=
H
sys ·
bfp稱為
H
sys 矩陣的錯誤校正子。
例如,如果將
H
sys 的列進行線性組合導出另一個
H矩陣,則該相應的錯誤校正子為
s=
H·
e可以透過
H矩陣的等級確定一個線性錯誤碼的檢驗位元的最小數量。
如果為錯誤碼的
H矩陣添加線性相關的列,則錯誤碼的檢驗位元的數量可以大於
H矩陣的等級。
從有錯誤的字
y’測定的錯誤校正子可用於修正錯誤,但前提是對所處理的錯誤向量的數量而言,這些錯誤向量的每一個錯誤向量都會產生不同的錯誤校正子。在修正錯誤時會測定相當於錯誤校正子的不同的位元位置。每一個錯誤位置都相當於一個錯誤位置訊號。如果錯誤位置訊號等於1,則參照的錯誤位置就沒有錯誤。
如果
b= 1,則經由該錯誤位置訊號參照一個單一的位元。也就是說每一個錯誤位置訊號修正一個位元,其中要修正的位元的修正值可以是等於1。在這種情況下,錯誤值等於錯誤位置訊號的值,因此無需另外給定錯誤值。如果
b= 1 ,二進制值的相加和相乘是以模2算法進行,也就是說在擴展域
GF(2)內進行。
如果
b≥ 2,則將一含有
k個
b位元位元組的位元組序列
X=
X 0,
X 2,...,
X
k −1編碼成一個碼字
Y=
Y 0,...,
Y
n −1。
在這種情況下,錯誤位置訊號是一個位元組錯誤位置訊號。例如,位元組錯誤位置訊號以值1暗示參照的位元組(包含
b個位元)在其
b個位元中至少一個位元有錯誤。如果位元組錯誤訊號的值為0,則參照的位元組沒有錯誤(或辨識不出錯誤)。
對一個
τ位元組錯誤修正碼而言,以下的說明成立,但前提是最多只有
τ個位元組錯誤:可以用一個二進制錯誤位置訊號
bfp
i 及一個位元組錯誤值
E
i 描述第
i個位元組的一個位元組錯誤。該位元組錯誤值
E
i 包含
b個位元。
如果一個位元組錯誤值
Ei≠0,則可以將錯誤位置訊號
bfp
i = 1分配到第
i個位元組。如果
E
i = 0,則可以將二進制錯誤位置訊號
bfp
i = 0分配到第
i個位元組。
錯誤位置訊號描述以下的情況:
- 一個特定的位元組位置有錯誤,而且已被(或能夠被)修正,或是
- 一個特定的位元組位置沒有錯誤。
錯誤位置訊號不會給定有錯誤的位元組位置的修正值。
如前面所述,可以將錯誤位置訊號描述為錯誤位置訊號向量的組合,也就是
bfp=
bfp 0,...,
bf
pn −1。
值為1的錯誤位置訊號的數量描述被錯誤位置訊號參照的位元組有多少是有錯誤的。
圖 7顯示測定是否存在一個無法修正的多位元組錯誤的流程圖的一個例子。這個流程圖顯示的順序及步驟僅是作為例子用的一種實施方式。圖7的流程圖包括以下的步驟:
步驟701: 測定一個碼字的位元組的錯誤位置訊號。一個位元組包含
b個位元,其中
b≥ 1。接著進入步驟702。在另外一種實施方式中則可以直接從步驟701跳到步驟705。
步驟702:測定錯誤位置訊號的數量是否等於0。如果這個數量等於0,則沒有辨識到任何錯誤。如果至少有一個錯誤位置訊號,則進入步驟703。在另外一種實施方式中則是直接跳到步驟705。
步驟703:測定縮短錯誤碼的位置錯誤訊號的數量是否小於
τ,以及是否不存在縮短錯誤碼的1位元組錯誤至(
τ−1)位元組錯誤。如果不滿足這個條件,則存在一個可以修正的錯誤,因此跳到步驟706。如果滿足這個條件,也就是未辨識到可以修正的錯誤,則進入步驟704。
縮短錯誤碼是一個
τ位元組錯誤修正錯誤碼。可以從一個未縮短錯誤碼確定該縮短錯誤碼。
步驟704:辨識到一個無法修正的多位元組錯誤,因為無法辨識到可以修正的錯誤。
步驟705:測定是否至少有一個錯誤位置訊號位於由縮短碼的碼字的位元組決定的一個範圍之外。如果有的話,則進入步驟704。否則就進入步驟703。
步驟706:修正最多
τ個有錯誤的位元組的錯誤。
所謂“一個1位元組錯誤至 (
τ−1)位元組錯誤”是給定任意數量(
τ)的錯誤類型。 例如
τ= 3,則包含1位元組錯誤及2位元組錯誤。如果
τ= 5,則包含1位元組錯誤、2位元組錯誤、3位元組錯誤、以及4位元組錯誤。
測定多位元組錯誤的例子
圖 1中的方塊圖顯示測定錯誤位置訊號的步驟。例如,利用一個錯誤校正子按解碼、錯誤修正及錯誤辨識的順序進行。校正子發生器提供一個位於錯誤位置訊號測定單元101之輸入端的錯誤校正子。單元101為要修正的位元組位置提供錯誤位置訊號
bfp 0,...,
bfp
n −1。錯誤位置訊號是作為計數器102的輸入值。圖1未顯示校正擬發生器。
計數器102計算出具有第一值的錯誤位置訊號的數量是否小於或好等於
τ。
可以用硬體及/或軟體實現校正子發生器、單元101、以及計數器102。
圖 2顯示圖1的一種特殊佈置,用於辨識無法修正的多位元組錯誤。
在圖2中,錯誤位置訊號測定單元101被拆解成
n個單元201至203,這些單元以錯誤校正子為基礎各測定錯誤位置訊號
bfp 0至
bfp
n −1中的一個錯誤位置訊號。如果第一值出現在各個單元201至203的出,則表示該錯誤位置訊號已被測定。
單元201至203的輸出端與計數器204連接。計數器204測定單元201至203中有多少個單元提供第一值,也就是說計數器204計算單元201至203(在一個給定的時間單位內)提供的第一值。
一個位於計數器204之後的比較器205測定計數器測定的錯誤位置訊號的數量
Anz(bfp)是否小於或等於
τ,其中
τ是錯誤碼能夠修正的錯誤的最大數量。
例如比較器205的輸出端輸出的值是
- 1,這表示
Anz(bfp)<
τ,
- 0,這表示
Anz(bfp)=
τ。
根據錯誤碼,例如利用錯誤校正子,可以測定錯誤位置訊號。下列錯誤位置訊號
- 1位元組錯誤,
- 2位元組錯誤,
.
.
.
- (
τ−1)位元組錯誤
位於一個或非門206(也稱為NOR門)的輸入端,其中每一個輸入端都有一個錯誤訊號。如果所有的輸入端的值都是0,則在或非門206的輸出端的值只有1。與此相應的,在或非門的輸出端的值1表示根據錯誤訊號沒有測定到任何錯誤。
此外,如果或非門206的輸入端的一個0位元組錯誤訊號的值為1,表示沒有出現任何錯誤,如果值為0,表示有出現一個錯誤。如果0位元組錯誤訊號的值為1,表示也沒有辨識到多位元組錯誤。
比較器的輸出端和與門207的第一輸入端連接,或非門206的輸出端和與門207的第二輸入端連接。
如果比較器205確定計數器204計算到的錯誤位置訊號的數量小於
τ,而且或非門206確定0位元組錯誤至(
τ−1)位元組錯誤均不存在,則與門207的輸出端的值只有1。
如果0位元組錯誤至(
τ−1)位元組錯誤沒有任何一個位元組錯誤出現,而且比較器205透過輸出值為1代表
Anz(bfp)<
τ,則與門207輸出的值為1。這表示有一個無法修正的多位元組錯誤。
圖 3顯示測定錯誤位置訊號之單元的另一種佈置方式,例如用於二進制的BCH碼,其中
b= 1,或是里德-所羅門碼(Reed-Solomon-Code),其中
b> 1。
錯誤校正子被導入Lokator多項式測定單元301。單元301提供的Lokator多項式由位於後面的Lokator多項式計算單元302進行處理。除了Lokator多項式外,單元302還獲得位元組位置
α 0至
α n −1,並在處理過後輸出錯誤位置訊號
bfp
i ,其中
i= 1,...,
n−1。接著由位於後面的計數器303計算錯誤位置訊號的數量。計數器303將錯誤位置訊號的數量
Anz(bfp)從輸出端輸出。
例如,可以利用Berlecam-Massey演算法以錯誤校正子為基礎測定Lokator多項式(參照文獻[1])。
Lokator多項式計算單元302為要修正的位元組位置
α 0至
α n −1測定
α i 的Lokator多項式是否等於0|或不等於0|。如果
α i 的Lokator多項式等於0|,則相應的錯誤位置訊號的值等於1,如果
α i 的Lokator多項式不等於0|,則相應的錯誤位置訊號的值等於0。例如,可以利用測定Lokator多項式的零位的Chien搜尋演算法測定Lokator多項式的值(參照文獻[2])。
錯誤位置訊號的值
bfp
i - 等於1,如果
α i 的Lokator多項式的值等於0|,
- 等於0,如果
α i 的Lokator多項式的值不等於0|。
α 0至
α n −1是一
m>3的擴展域
GF(2
m )的元素,
α是擴展域產生的元素,例如文獻[3]有關於擴展域特性的描述。
以下將以一個
b= 1的例子進行說明。這個例子是利用一個縮短錯誤碼
C 1處理8個數據位。縮短錯誤碼
C 1是一個縮短的3位元錯誤修正及4位元錯誤辨識BCH碼。所使用的擴展域為
GF(2
5)。8個數據位元受到16個檢驗位元的保護。因此錯誤碼
C 1的一個碼字具有8+15+1 = 24個位元。
例如,一個未縮短錯誤碼
C 2是一個3位元錯誤修正及4位元錯誤辨識BCH碼。錯誤碼
C 2的長度為2
5−1 = 31位元。
縮短錯誤碼
C 1是由未縮短錯誤碼
C 2縮短7個位元而形成。
未縮短錯誤碼的一個碼字
y 2=
y 2 0,
y 2 1,...,
y 2 30有31個位元,縮短錯誤碼的一個碼字
y 1=
y 1 0,
y 1 1,...,
y 1 23有24個位元。
可以刪除
H矩陣的行,以縮短一個線性碼。
圖 4顯示未縮短錯誤碼
C 2的一個
H 2矩陣,
圖 5顯示縮短錯誤碼
C 1的一個
H 1矩陣。
縮短錯誤碼的
H 1矩陣是由刪除未縮短錯誤碼的
H 2矩陣的30, 29, 28, 27, 26, 25, 24行所形成。因此未縮短錯誤碼被縮短位元
y 30,
y 29,
y 28,
y 27,
y 26,
y 25,
y 24。
縮短錯誤碼的
H 1矩陣有24行,因此縮短錯誤碼的一個碼字有24個位元。在這個實施例中,縮短錯誤碼的長度等於24。
α 0至
α i 是擴展域
GF(2
5)的元素。這些元素可以用不同的形式呈現(參照圖6的表格)。冪是用於說明擴展域
GF(2
m )模2
m −1:對於所使用的擴展域
GF(2
5),這相當於一個解釋模31算法。
圖 6顯示一個以冪顯示、多項式顯示、多元組顯示(也稱為向量顯示)等方式顯示模組多項式
p(
x) = 1+
x 2+
x 5產生之擴展域
GF(2
5)的元素的表格。
對於錯誤辨識而言,以下關係成立
- 對於一個0位元組錯誤(也就是沒有錯誤)
s 3 1=
s 3=
s 5= 0| 及
s
P = 0, (9)
- 對於一個1位元組錯誤
s 3 1= s
3≠ 0| 及
s
P = 1, (10)
- 對於一個2位元組錯誤
s 3 1≠
s 3及
s
P = 0 (11)
- 對於一個3位元組錯誤
s 3 1≠
s 3及
s
P = 1。 (12)
可以利用Lokator多項式進行BCH碼的錯誤修正。例如,文獻[2]、 [4] 或 [5]都有關於BCH碼的Lokator多項式的描述。
以下將以3位元錯誤修正為例進行說明。可以根據一第3級Lokator多項式
L(
z/3) =
=
z 3(
s 3 1+
s 3) +
z 2(
s 4 1+
s 1 s 3) +
z(
s 2 1 s 3+
s 5) +
s 3(
s 3 1+
s 3) +
s 1(
s 5 1+
s 5) (13)
的零位測定3位元錯誤:方程式(13)的Lokator多項式的3個零位顯示數據中的錯誤位置,也就是顯示錯誤位置訊號。
在0 ≤
i≤ 23的情況下,可以用以下的方式進行3位元錯誤的修正:檢驗下式
L(
α i /3) = 0| (14)
對
z=
α i 是否成立,也就是檢驗每一個要修正的位元位置
α 3·
i (
s 3 1 +
s 3) +
α 2·
i (
s 4 1+
s 1 s 3) +
α
i (
s 2 1 s 3+
s 5) +
s 3(
s 3 1+
s 3) +
s 1(
s 5 1+
s 5) = 0| (15)
根據Lokator多項式的零位,要修正的位元位置及這些錯誤位置訊號的值為1。其他所有位元位置的錯誤位置訊號的值都等於0。
此處的Lokator多項式
L(
z/3)是一個第三級多項式,也就是說這個多項式最多有3個不同的零位。在位元位置0至23內有一個3位元錯誤的情況下:
- 在
z=
α i 的情況下,如果Lokator多項式
L(
z/3)的值等於0|,則在第
i個位置有一個錯誤,同時錯誤位置訊號
bfp
i 的值為1。
- 在
z=
α i 的情況下,如果Lokator多項式
L(
z/3)的值不等於0|,則在第
i個位置沒有錯誤,同時錯誤位置訊號
bfp
i 的值為0。
這些測定工作可以同步進行,或至少是部分同步進行。由於可以同時或至少是部分同時進行處理,這對於縮短處理時間是有利的。
一種選擇是將
z=
α 0至
α 23依序或連續代入Lokator多項式
L(
z/3),並測定是否有
α i 及有那些
α i 使Lokator多項式
L(
z/3)的值等於0|。對這些零位而言,相應的錯誤位置訊號
bfp
i 的值等於1。如果Lokator多項式的值不等於0|,則相應的錯誤位置訊號的值等於0。
接著檢驗是否滿足下面兩個條件:
1. 在0 ≤
i≤ 23的情況下,值為1的錯誤位置訊號的數量是否小於3?
2. 0位元錯誤、1位元錯誤、2位元錯誤是否均不存在? (可以利用方程式(9)、(10)及(11)檢驗這個條件。)
如果滿足以上兩個條件,則在位元0至23中存在一個無法修正的錯誤。
另一種選擇是檢驗Lokator多項式
L(
α i ) = 0|
在
i≥ 24的情況下是否成立。由於Lokator多項式最多有3個不同的零位,因此Lokator多項式對0 ≤
i≤ 23最多還可以有兩個零位。
因此如果
L(
α j ) = 0| ,其中
j≥ 24,則可以辨識到有出現一個無法修正的錯誤。
在本實施例中,縮短錯誤碼的長度等於24。錯誤碼的位元稱為第0位元至第23位元。
根據方程式(13)的Lokator多項式
L(
z/3)的零位,這是一個第三級多項式,因此可以確定是否存在一個可修正的3位元錯誤或一個無法修正的多位元錯誤。此處是根據所出現的錯誤的錯誤校正子的成分
s 1、
s 3、
s 5測定Lokator多項式的係數。
作為第三級多項式,Lokator多項式
L(
z/3)具有3個零位
α i 1、
α i 2及
α i 3。如果這3個零位相當於縮短錯誤碼的位元位置,則存在一個可修正的3位元錯誤。在這種情況下,下式成立
0 ≤
i 1,
i 2,
i 3≤ 23。
與
i 1、
i 2、及
i 3相應的錯誤位置訊號
bfp
i 1、
bfp
i 2、
bfp
i 3都等於1,同時縮短錯誤碼有錯誤的字是在位元位置
i 1、
i 2、及i
3被修正。
如前面所述,縮短錯誤碼的要修正的位元組位置或要修正的位元位置被稱為(錯誤位置訊號的)值域。因此在這個例子中,這3個錯誤位置訊號就是值域的成分。
反之,在
j≥ 24的情況下,如果有一個不在值域內的零位
α j ,則最多只能有兩個值為1且位於值域內的錯誤位置訊號,這是因為一個第三級多項式只能有3個零位。
因此在縮短錯誤碼的位元內不能有可修正的3位元錯誤,前提是Lokator多項式的一個零位在一個位於縮短錯誤碼的位元位置之外的位元位置。由此可以推論在縮短錯誤碼的位元內有出現一個無法修正的多位元錯誤。
換句話說:如果測定到第三級Lokator多項式的一個零位
α j (其中
j≥ 24),因此相應的錯誤位置訊號位於縮短錯誤碼的值域之外,就可以辨識一個無法修正的多位元錯誤。
另一種可以辨識到出現一個無法修正的多位元錯誤情況是,當測定到作為第
m級Lokator多項式的零位的錯誤位置的數量小於測定到的縮短錯誤碼的位元的
m個錯誤位置訊號時,其中這些位元的錯誤位置訊號的值為1。
以下以一個例子說明以上描述的作業方式。
例如,假設有一個5位元錯誤出現在位元位置
y 14、
y 18、
y 19、
y 20、
y 21,並利用圖5之
H 1矩陣的相應的行的XOR總和(除外或總和)為這個位元錯誤測定校正子成分
s 1、
s 3、
s 5及
s
P :
這可以利用圖6顯示的擴展域
GF(2
5)的元素獲得驗證。
s 1= α 14+ α 18+ α 19+ α 20+ α 21= α 20 s 3= α 11+ α 23+ α 26+ α 29+ α 1= α 7 s 5= α 8+ α 28+ α 2+ α 7+ α 12= α 5 s P = 1+1+1+1+1 = 1 |
方程式(12)顯示對一個3位元錯誤的條件。在這個例子中:
s 3 1= α 3·20= α 29, s 3= α 6, s 3 1≠ s 3, s P = 1。 |
這應該可以滿足對上述3位元錯誤的條件。但是對目前的例子而言並非如此,因為如前面所述,這個例子實際上存在一個5位元錯誤。
但是此處作為例子用BCH錯誤碼只能修正3位元錯誤及辨識4位元錯誤。以下將說明在這樣的情況下要如何才能夠辨識一個(無法修正的)5位元錯誤。
首先乍看之下是有一個3位元錯誤。但是沒有任何一個錯誤位置訊號顯示修正位元0至23中一個有錯誤的位元(所有錯誤位置訊號的值都等於1)。
在0 ≤
i≤ 23的情況下,方程式(13)的Lokator多項式
L(
α i /3) ≠ 0|。 (16)
這可以將值
α 0至
α 23代入獲得驗證。因此所有錯誤位置訊號
bfp 0=
bfp 1= ... =
bfp 23= 0。
由於值為1的錯誤位置訊號的數量小於3,因此可以確定有一個無法修正的多位元錯誤出現在縮短錯誤碼的位元
y 0至
y 23中。
換句話說:一方面從方程式(13)得知有一個3位元錯誤,另一方面又沒有位何錯誤位置訊號可以證實這個看法。因此這兩個條件彼此衝突。由此可以得出有一個多位元錯誤的結論。這個多位元錯誤是無法修正的。特別是從現有的資料無法看出那些位元是有錯誤的。也不知道這是那一種多位元錯誤(在本例中是5位元錯誤),以及要如何修正這個多位元錯誤。但是能夠辨識到有一個多位元錯誤是的個很大的優點。這個事實可以被許多處理動作利用,例如可能需要進一步的錯誤修正、將一個儲存區標示為有錯誤、重新轉換、取代一個模組、及/或發出警告訊號。
對屬於未縮短錯誤碼、但不屬於縮短錯誤碼的位元
y 26、
y 29及
y 30而言
L(
α 26/3) =
L(
α 29/3) =
L(
α 30/3) = 0|。 (17)
在本例中,方程式(17)的Lokator多項式有3個零位
α 26。
α 29及
α 30。這些零位相當於未縮短錯誤碼的位元位置,但不是縮短錯誤碼的位元位置。
如果測定未縮短錯誤碼的一個位元位置的一個錯誤位置訊號的值為1,而且這個位元位置不是縮短錯誤碼的位元位置,則可以推論,對縮短錯誤碼的位元位置而言,值可以是1的錯誤位置訊號的數量小於
τ(前提是縮短錯誤碼是一個
τ位元錯誤修正錯誤碼)。
一種選擇是計算值為1的錯誤位置訊號的數量。例如,可以利用二進制計數器以(順序或平行)方式計數。在使用一個
τ位元錯誤修正的縮短錯誤碼的情況下,如果計數器計算出的數量小於
τ,則可以辨識到一個無法修正的錯誤,前提是沒有出現1位元錯誤至
τ位元錯誤。如果測定一個第
τ級Lokator多項式,就可以確定有出現一個無法修正的多位元錯誤,前提是縮短碼的位元位置的值為1的錯誤位置訊號的數量小於
τ。
如果確定一個錯誤位置的錯誤位置訊號等於1,而且這個錯誤位置不是縮短錯誤碼的位元位置,而是相當於未縮短錯誤碼的一個位元位置,這代表辨識到一個無法修正的錯誤。
可以利用連續式計數器或平行式計數器計算錯誤位置的數量,其中連續式計數器在每一次計數後都會回到其初始狀態。
可以同步或至少是部分同步測定錯誤位置訊號
bfp 0至
bfp 23的值。文獻[4]有描述如何為第二、第三及第四級Lokator多項式測定要修正的位元位置。從要修正的位元位置可以測定值為1的錯誤位置訊號。
也可以透過以軟體為基礎的搜尋方法測定錯誤位置訊號的值,這種搜尋方法將擴展域內所有相當於縮短錯誤碼之位元位置的元素都代入Lokator多項式,並為該相應的位元測定一個值為1的錯誤位置訊號,前提是Lokator多項式的代入的值為0|。例如文獻[2]有關於測定Lokator多項式之零位的搜尋方法的描述。
如果縮短錯誤碼是一個
b位元位元組錯誤修正碼(其中
b>1),而且可以從一個未縮短錯誤碼測定這個縮短錯誤碼,則可以用類似的方式測定錯誤位置訊號的值。
在進行錯誤修正時,可以測定到一個值為1的錯誤位置訊號,當然前提是在相應的位元組內存在一個錯誤。如果Lokator多項式的值等於0|,就可以測定到錯誤位置訊號的值為1,如果Lokator多項式的值不等於0|,就可以測定到錯誤位置訊號的值為0。例如文獻[5]有關於測定里德-所羅門碼的錯誤位置訊號的描述,其中文獻[5]將錯誤位置訊號稱為位元組錯誤位置訊號。
例如,文獻[1]及[4]有描述如何透過錯誤多項式測定修正有錯誤的位元組的錯誤的值或錯誤值。
雖然前面是以至少一個實施例為例進一步說明及描述本發明的細節,但是本發明並不受限於前面的實施例,熟習該項技術者從本發明自行導出的變化方式仍屬於本發明的受保護範圍。
參考文獻:[1] Wicker, S.: Error Control Systems for Digital Communication and Storage(數位通訊及儲存的錯誤控制系統), Prentice Hall, 1995, 214-224頁
[2] Wicker, S.: Error Control Systems for Digital Communication and Storage(數位通訊及儲存的錯誤控制系統), Prentice Hall, 1995, 205-210頁
[3] Lin, S; Costello, D.: Error Control Coding(錯誤控制編碼), Prentice Hall, 1983, 29-40頁
[4] Okano, H.; Imai, H.: A construction method for high speed decoders using ROMs for Bose-Chadhuri-Hocquenhem and Reed Solomon Code (使用ROMs之BCH碼及里德-所羅門碼的高速解碼器的建構方法), IEEE Trans. Comp. C36 (10), 165-1171頁
[5] DE 10 2017 125 617 B4
101、201、202、203、301、302:單元
102、204、303:計數器
205:比較器
206:或非門
207:與門
701、702、703、704、705、706:步驟
以上關於本發明之方法的明亦適用於此裝置。利用此裝置可以執行本發明之方法的各個步驟。以下將配合圖式及實施例,對以上描述的本發明的特性、特徵及優點,以及如何達到該等特性、特徵及優點,作進一步的說明。為了使以下的說明更為清楚,相同或相同作用的元件可能會以相同的元件符號標示。
圖1一個顯示錯誤位置訊號之測定步驟的方塊圖;
圖2顯示圖1的一種特殊佈置,用於辨識無法修正的多位元組錯誤;
圖3顯示測定錯誤位置訊號之單元的另一種佈置方式,例如用於二進制的BCH碼,其中
b= 1,或是里德-所羅門碼(Reed-Solomon-Code),其中
b> 1;
圖4顯示未縮短錯誤碼
C 2的一個
H 2矩陣;
圖5顯示縮短錯誤碼
C 1的一個
H 1矩陣;
圖6顯示一個以冪顯示、多項式顯示、多元組顯示等方式顯示模組多項式
p(
x) = 1+
x 2+
x 5產生之擴展域
GF(2
5)的元素的表格;
圖7顯示一個測定是否存在一無法修正之多位元組錯誤的流程圖的例子。
701、702、703、704、705、706:步驟
Claims (9)
- 一種識別在一縮短錯誤碼的碼字內的多位元組錯誤的方法,其中: - 該縮短錯誤碼是一 τ位元組修正錯誤碼, - 該縮短錯誤碼的碼字的位元組決定一第一範圍, - 只要滿足下列條件中的至少一個條件,即可辨識出無法修正的多位元組錯誤: (a) 至少有一個錯誤位置訊號不是位於第一範圍內, (b) 至少有一個錯誤位置訊號顯示第一範圍內的至少一個、但是少於 τ個錯誤,而且不存在1位元組錯誤至( τ−1)位元組錯誤。
- 如請求項1所述的方法,其中條件(a)還包括:該至少一個不是位於第一範圍的錯誤位置訊號位於一第二範圍,其中該第二範圍是由一未縮短錯誤碼的位元組決定,而且該等位元組不是縮短錯誤碼的位元組。
- 如前述請求項中任一項所述的方法,其中利用計數器測定至少一個錯誤位置訊號中若干數量的錯誤位置訊號。
- 如前述請求項中任一項所述的方法,其中利用錯誤位置訊號參照碼字的一個位元組。
- 如前述請求項中任一項所述的方法,其中利用錯誤碼的至少一個Lokator多項式測定該至少一個錯誤位置訊號。
- 如前述請求項中任一項所述的方法,其中縮短錯誤碼是一個在一擴展域 GF(2 m )上方長度為 n的BCH碼,其中 n<2 m −1,且 m≥ 3。
- 如前述請求項中任一項所述的方法,縮短錯誤碼是一個在一擴展域 GF(2 m )上方的里德-所羅門碼(Reed-Solomon-Code)。
- 一種用於辨識縮短錯誤碼之碼字內的多位元組錯誤的裝置,其中: - 該縮短錯誤碼是一 τ位元組修正錯誤碼, - 該縮短錯誤碼的碼字的位元組決定一第一範圍, - 此裝置是用於辨識無法修正的多位元組錯誤,前提是滿足下列條件中的至少一個條件: (a) 至少有一個錯誤位置訊號不是位於第一範圍內, (b) 至少有一個錯誤位置訊號顯示第一範圍內的至少一個、但是少於 τ個錯誤,而且不存在1位元組錯誤至( τ−1)位元組錯誤。
- 如請求項8所述的裝置,其中此裝置是一儲存器或儲存系統的一部分,或是獨立於該儲存器或儲存系統之外。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021109391.0 | 2021-04-14 | ||
DE102021109391.0A DE102021109391B3 (de) | 2021-04-14 | 2021-04-14 | Multibytefehler-Erkennung |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202308331A true TW202308331A (zh) | 2023-02-16 |
Family
ID=82702510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111105685A TW202308331A (zh) | 2021-04-14 | 2022-02-16 | 多位元組錯誤的辨識 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220345157A1 (zh) |
DE (1) | DE102021109391B3 (zh) |
TW (1) | TW202308331A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022101798B3 (de) | 2022-01-26 | 2023-07-20 | Infineon Technologies Ag | Fehlerverarbeitung |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494234A (en) * | 1982-12-29 | 1985-01-15 | International Business Machines Corporation | On-the-fly multibyte error correcting system |
DE68920142T2 (de) | 1989-08-24 | 1995-07-13 | Philips Electronics Nv | Verfahren und Einrichtung zur Decodierung von wortgeschützten Codewörtern durch einen nichtbinären BCH-Code gegen mindestens einen Symbolfehler. |
US5099482A (en) * | 1989-08-30 | 1992-03-24 | Idaho Research Foundation, Inc. | Apparatus for detecting uncorrectable error patterns when using Euclid's algorithm to decode Reed-Solomon (BCH) codes |
DE4105860C2 (de) * | 1991-02-25 | 1995-04-20 | Broadcast Television Syst | Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten |
JP3398560B2 (ja) | 1997-02-14 | 2003-04-21 | 松下電器産業株式会社 | 短縮化誤り訂正復号装置 |
US6192497B1 (en) * | 1998-08-27 | 2001-02-20 | Adaptec, Inc. | Parallel Chien search circuit |
US6507926B1 (en) | 1999-03-16 | 2003-01-14 | Trw Inc. | Mitigation of false co-channel uplink reception in a processing satellite communication system using stagger |
GB2399896A (en) * | 2002-07-31 | 2004-09-29 | Hewlett Packard Co | Identifying uncorrectable codewords in a reed-solomon decoder handling errors and erasures |
CN101814922B (zh) * | 2009-02-23 | 2013-06-19 | 国际商业机器公司 | 基于bch码的多位错纠错方法和装置以及存储系统 |
US9582354B2 (en) * | 2014-01-28 | 2017-02-28 | Infineon Technologies Ag | Apparatus and method for improving data storage by data inversion |
DE102017125617B8 (de) | 2017-11-02 | 2020-08-27 | Infineon Technologies Ag | Bestimmung und verwendung von bytefehlerpositionssignalen |
US10804935B2 (en) * | 2018-01-02 | 2020-10-13 | Intel Corporation | Techniques for reducing latency in the detection of uncorrectable codewords |
-
2021
- 2021-04-14 DE DE102021109391.0A patent/DE102021109391B3/de active Active
-
2022
- 2022-02-16 TW TW111105685A patent/TW202308331A/zh unknown
- 2022-04-13 US US17/719,648 patent/US20220345157A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102021109391B3 (de) | 2022-08-25 |
US20220345157A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9450613B2 (en) | Apparatus and method for error correction and error detection | |
US7278085B1 (en) | Simple error-correction codes for data buffers | |
US10200065B2 (en) | Apparatus and method for correcting at least one bit error within a coded bit sequence | |
JP3234130B2 (ja) | 誤り訂正符号復号化方法およびこの方法を用いる回路 | |
US9787329B2 (en) | Efficient coding with single-error correction and double-error detection capabilities | |
US20050188292A1 (en) | Method and apparatus for encoding special uncorrectable errors in an error correction code | |
JP2011514743A (ja) | 受信したシンボル列におけるフェーズドバーストエラー、消失、シンボルエラー、及び、ビットエラーを検出及び訂正するための方法及びシステム | |
US20090154916A1 (en) | Method and Apparatus for GPON GEM Error Correction Implementation | |
TW202308331A (zh) | 多位元組錯誤的辨識 | |
JP6930090B2 (ja) | 復号化装置、プログラム、及び情報伝送システム | |
JP2001524274A (ja) | 短縮ファイア符号エラートラッピング復号方法および装置 | |
RU2448359C1 (ru) | Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации | |
US8898535B2 (en) | Apparatus and method for detecting an error within a coded binary word | |
JP2020524930A (ja) | 短縮レイテンシ誤り訂正復号 | |
US20110138249A1 (en) | Apparatus and Method for Detecting an Error Within a Plurality of Coded Binary Words Coded by an Error Correction Code | |
JP2018074545A (ja) | データ処理システム及びデータ処理装置 | |
US10379937B2 (en) | Memory architecture including response manager for error correction circuit | |
KR100330642B1 (ko) | 오류정정방법및오류정정장치 | |
JPWO2013027483A1 (ja) | 誤り訂正復号装置 | |
Umanesan et al. | Parallel decoding cyclic burst error correcting codes | |
TW202024907A (zh) | 資料處理 | |
US20230267039A1 (en) | Error processing for non-volatile memories | |
Fujiwara et al. | Optimal two-level unequal error control codes for computer systems | |
US20240146333A1 (en) | Error correction | |
JP2691973B2 (ja) | 単一誤り訂正および多重誤り検出bch符号の復号装置 |