TWI538414B - 用於多模式bch碼編碼的方法及使用該方法的編碼器 - Google Patents
用於多模式bch碼編碼的方法及使用該方法的編碼器 Download PDFInfo
- Publication number
- TWI538414B TWI538414B TW103119198A TW103119198A TWI538414B TW I538414 B TWI538414 B TW I538414B TW 103119198 A TW103119198 A TW 103119198A TW 103119198 A TW103119198 A TW 103119198A TW I538414 B TWI538414 B TW I538414B
- Authority
- TW
- Taiwan
- Prior art keywords
- matrix
- coding
- combining
- data
- encoder
- Prior art date
Links
Landscapes
- Error Detection And Correction (AREA)
Description
本發明關於一種編碼器,特別是關於一種多模式編碼器,用於不同BCH碼,包含任何碼長、碼率或GF(2m)中的數字m。
Bose-Chaudhuri-Hocquenghem(BCH)碼是非常普遍使用於儲存與通訊設備的錯誤更正碼,BCH碼能偵測及修正由於存儲設備通道中的噪聲和缺陷,隨機發生的錯誤。對於BCH碼的編碼,常利用線性反饋移位暫存器與某些邏輯積體電路的組合來實現。習知的線性反饋移位暫存器電路如第1圖所示。為了加速運算,該電路通常採平行運算方式設計。第1圖中的符號p表示在第j個時脈中,用以進行同步計算之輸入的R’(j)的p位元資料。於編碼後,輸出計算的結果Z(j)。如果該碼長為n位元,編碼的程序會在[n/p]個時脈後完成。
關於BCH編碼的詳細說明如下。一具有n位元的編碼BCH碼字,具有k位元訊息,在編碼過程中應用了一生成多項式:g(x)=xR+g' R-1xR-1+g' R-2xR-2+…+g' 2x2+g' 1x1+g' 0,而其中R=n-k+1。當使用一個能同步進行p個平行計算編碼的編碼器時,對於一具有k位元訊息的n位元的初始處理資料以p位元為單位切割為R’(1)、R’(2)...R’(n/p)(R’(n/p)不需要為p位元),並依序於每時脈中輸入至該編碼器以進行運算。基於一通式,在第j個時脈(1≦j≦n/p)中,輸出的計算值為:Z(j)=Fp×[Z(j-1)+R'(j)]。應注意的是Z(0)中所有元素都是0。為了便利運算,以下表示
中R’(j)為第j個p位元。Z(j)具有R位元,各表示為Z0(j)、Z1(j)...ZR-1(j)。其它以上公式內表示式進一步描述如下:
令F'=[Fp的首P欄|Fp],可以得到Z(j)的轉置矩陣:
能滿足以上運算的電路,也能達成如第1圖所示的編碼運算。一編碼的碼字能於第[n/p]時脈後獲得。
前述的方法僅能用在相同的伽羅瓦場GF(2m)中,碼率跟碼長是固定的。對某些應用來說,可能需要不同的碼長、碼率、GF(2m)中的次方m及平行參數p。傳統上,這些需求能藉由的特定BCH編碼器來實現。因而,硬體的複雜性變高了。為了減少硬體複雜性,某些設計人員可能會加入一些多工器到線性反饋移位暫存器中以共用暫存器。然而,因為加入這些多工器而多出的面積成本與延時會損及產品本身的價值。
因此,需要一種對於不同BCH碼,能共享一線性反饋移位暫存器的方法與使用該方法的編碼器。此外,該方法能加大共同子表達式在矩陣中的搜尋空間,以減少硬體邏輯面積。
如上所述,在BCH碼的編碼的設計電路現有方案中,硬體的複雜度偏高且面積成本大。因此一種對於不同BCH
碼,能共享一線性反饋移位暫存器的方法與使用該方法的編碼器是非常迫切需要的。
因此,依照本發明的一種態樣,一種用於多模式BCH碼編碼的方法,包含步驟:建立複數個編碼矩陣;以一側對齊方式結合該編碼矩陣,以形成一結合矩陣;於該結合矩陣中尋找共同子表達式;及使用該結合矩陣編碼一訊息,其中每一編碼矩陣具有以下形式
而,其中對於一具有k位元訊息的n位元的初始處理資料以p位元為單位切割,R定義為R=n-k+1;g’R-1、g’R-2...及g’0為一生成多項式g(x)=xR+g' R-1xR-1+g' R-2xR-2+…+g' 2x2+g' 1x1+g' 0的係數;任二編碼矩陣具有相同或相異的n及/或k。
依照本案構想,在結合矩陣中,不為編碼矩陣元素所佔之處以0補足。編碼矩陣依序排列於該結合矩陣的一側。該結合矩陣中至少一編碼矩陣使用在該結合矩陣中另一編碼矩陣的共同子表達式。當結合矩陣中最小的編碼矩陣能容置在鄰近其它編碼矩陣所形成0之處的一部分,該最小的編碼矩
陣設置於該處且兩側各鄰近一編碼矩陣。較佳的情況是二相鄰編碼矩陣以複數個0分隔開。
此外,依照本發明的另一種態樣,一種用於多模式BCH碼編碼的編碼器,包含:一結合矩陣單元,用以提供複數個編碼矩陣於將其內元素與一具有p位元的輸入資料相乘,並於一第一時脈中輸出結果為一計算資料;一線性反饋移位暫存器,用以線性地移位該計算資料為一輸出資料,並於一第二時脈中輸出該輸出資料;及一加法器,用以接收該輸出資料與一具有p位元的切割的處理資料,將該輸出資料與切割的處理資料相加,及於該第二時脈中輸出該相加結果為另一輸入資料至該結合矩陣單元,其中一具有k位元訊息的n位元的初始處理資料以p位元為單位切割,作為切割的處理資料依序地輸入該加法器;一編碼的碼字於第[n/p]個時脈獲得;第二時脈落後於第一時脈一個時脈。
該編碼矩陣以一側對齊方式形成一結合矩陣於該結合矩陣單元中,且該結合矩陣單元依照對應的BCH碼,使用一編碼矩陣內元素或一編碼矩陣內元素連同另一編碼矩陣中的共同子表達式,進行乘法運算。而其中每一編碼矩陣具有以下形式
,其中對於該具有k位元訊息的n位元的初始處理資料以p位元為單位切割,R定義為R=n-k+1;g’R-1、g’R-2...及g’0為一生成多項式g(x)=xR+g' R-1xR-1+g' R-2xR-2+…+g' 2x2+g' 1x1+g' 0的係數;任二編碼矩陣具有相同或相異的n及/或k。
10‧‧‧編碼器
100‧‧‧結合矩陣單元
110‧‧‧結合矩陣部
120‧‧‧邏輯運算部
200‧‧‧線性反饋移位暫存器
300‧‧‧加法器
第1圖為用於一BCH碼的傳統編碼器。
第2圖為依照本發明,用於編碼多模式BCH碼的編碼器。
第3圖顯示用於一實施例中的一結合矩陣部的結構。
第4圖顯示用於另一實施例中的一結合矩陣部的結構。
第5圖顯示用於又一實施例中的一結合矩陣部的結構。
第6圖顯示用於再一實施例中的一結合矩陣部的結構。
第7圖為依照本發明,一編碼方法的流程圖。
本發明將藉由參照下列的實施例而更具體地描述。
請參閱第2圖至第4圖,藉以說明依照本發明的一實施例。一用來編碼多模式BCH碼的編碼器10包括一結合矩陣單元100、一線性反饋移位暫存器200及一加法器300。每一BCH碼的模式可具有不同的碼率、碼長或伽羅瓦場GF(2m)中的次方m。藉由該編碼器10,任何數量模式的組合都可能實現。
結合矩陣單元100用來提供數個編碼矩陣,用以將一編碼矩陣內元素或一編碼矩陣內元素連同另一編碼矩陣中的共同子表達式,與一句有p位元的輸入資料,進行乘法運算。它也可以進一步在一第一時脈中,輸出前述結果為一計算資料。編碼矩陣以一側對齊方式形成一結合矩陣於該結合矩陣單元100中。結合矩陣單元100依照對應的BCH碼,進行乘法運算。結合矩陣儲存於一結合矩陣部110中。為了對結合矩陣部110有較明確的理解,請參閱第3圖。
第3圖顯示使用於一實施例中,結合矩陣部110的結構。應注意的是該結合矩陣部110能為任何的電子元件,比如唯讀記憶體(ROM)陣列,以記憶該編碼矩陣的元素(0或1)。在第3圖中,3個方塊用來各自表示3個編碼矩陣。結合矩陣部110在結合矩陣單元100的全部面積以R1 x(R1+R2+R3)來表示。每一子面積F1(具有邊長R1的編碼矩陣1)、F2(具有邊長R2的編碼矩陣2)及F3(具有邊長R3的編
碼矩陣3)用來描述編碼矩陣在結合矩陣部110的相對位置。每一編碼矩陣的元素布置在相對應的子面積中。
如第3圖所示,結合矩陣中未被編碼矩陣元素所佔之處以0補足。較理想的情況是編碼矩陣依序排列於該結合矩陣的一側,最好是由大至小依序排列。當然,其他序列,諸如由小至大或插入最小的於兩大者間,也是可行的方式。在結合矩陣的上方側,編碼矩陣R1、R2與R3由左排列至右。有一點應注意的是,結合矩陣的另一側長度應該與最大編碼矩陣R1的邊長相同。這是維持結合矩陣面積最小化(節省面積成本)及減少空間浪費的方法。
依照本發明,每一編碼矩陣能被用來與一p位元輸入資料相乘並接著輸出其結果。一具有k位元訊息的n位元的初始處理資料以p位元為單位切割,並作為切割的處理資料依序地輸入該加法器。這些步驟已於先前技術描述過,此處不再贅述。因而,每一編碼矩陣具有以下的形式,而R定義為R=n-k+1;g’R-1、g’R-2...及g’0為一生成多項式
g(x)=xR+g' R-1xR-1+g' R-2xR-2+…+g' 2x2+g' 1x1+g' 0的係數。可以理解的是任二編碼矩陣可具有相同或相異的n及/或k。這意味著來自每一編碼矩陣的編碼的碼字能有不同的碼率、碼長或伽羅瓦場GF(2m)中的次方m。易言之,結合矩陣能依照其的設計,提供不同模式的BCH碼。
結合矩陣單元100進一步具有一邏輯運算部120,以進行乘法運算。依照本發明的精神,在二個或更多編碼矩陣中的某些共同子表達式,能被找到並利用之。舉例而言,如果F1與F2有共同子表達式,對於二個不同BCH碼的乘法運算的計算,能藉由邏輯運算部120,利用F1中共同子表達式進行。亦即,結合矩陣中至少一編碼矩陣使用了結合矩陣中的另一編碼矩陣的共同子表達式。如此一來,多工器就可避免使用於線性反饋移位暫存器200中。這樣設計的好處在於可避免因插入多工器,而造成使用額外的面積與因之造成的延時。依照本發明,其它編碼矩陣不具共同子表達式,比如F3,亦可存在。所有的編碼矩陣不需要都具有共同子表達式。
如同一般常用的線性反饋移位暫存器,線性反饋移位暫存器200能線性地移位該計算資料為一輸出資料,並於一第二時脈中輸出該輸出資料。加法器300接收該輸出資料(如第2圖中Z(j)所示)與一具有p位元,來自初始處理資料之切割的處理資料(如第2圖中R’(j)所示),將該輸出資料與切
割的處理資料相加,及於該第二時脈中輸出該相加結果為另一輸入資料至該結合矩陣單元。第二時脈落後第一時脈一個時脈。由加法器300來的輸入資料又輸入到結合矩陣單元100以在第二時脈中為計算之用。一編碼的碼字Z(如第2圖所示)能於第[n/p]個時脈獲得。
在另一實施例中,該二編碼矩陣可佔有相同的空間。請見第4圖。第4圖中的F1與F2具有相同的面積並佔有相同大小的空間,但功能上並不相同。依照本發明的精神,編碼矩陣的排列將二個相同大小的編碼矩陣排列在一起,如F1與F2所示。較小的F3置於F2旁。結合矩陣的其餘部分以0填滿。
當然,編碼矩陣的數量不限於3個。它可以是任何大於或等於2的數目。在第5圖中,應用了4個編碼矩陣(F1、F2、F3與F4)。在結合矩陣單元110中最小的編碼矩陣(F4)能容置在鄰近其它編碼矩陣(F2與F3)所形成0之處的一部分中。最小的編碼矩陣(F4)位於0的位置且兩側各鄰近二編碼矩陣(F2與F3)。F4不必排列於接近F3,結合矩陣的上方側。
由設計人員的角度來看,可能會在二相鄰編碼矩陣間加0而辨認每一編碼矩陣,以便除做工作能更方便地進行。在這種情況下,二相鄰編碼矩陣便藉由數個0而分隔開。請見第6圖。如上所述,第6圖的實施例藉由排列F3於F1與F2間而
描述。亦即,最小的編碼矩陣式排列在兩個較大的矩陣中間。這又是另一種相異於其它實施例的排列方式。
從以上的說明,可以找到一種用於多模式BCH碼編碼的方法。請參閱第7圖。該方法有以下步驟:建立數個編碼矩陣(S01);以一側對齊方式結合該編碼矩陣,以形成一結合矩陣(S02);於該結合矩陣中尋找共同子表達式(S03),及使用該結合矩陣編碼一訊息(S04)。每一編碼矩陣應有以下的形式:,而
n、k、R、g’R-1、g’R-2...及g’0的定義已說明如上。結合矩陣中,不為編碼矩陣元素所佔之處以0補足。編碼矩陣依序排列於該結合矩陣的一側。該結合矩陣中至少一編碼矩陣使用在該結合矩陣中另一編碼矩陣的共同子表達式。當結合矩陣中最小的編碼矩陣能容置在鄰近其它編碼矩陣所形成0之處的一部分,該最小的編碼矩陣設置於該處且兩側各鄰近一編碼矩陣。二相鄰編碼矩陣以複數個0分隔開。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10‧‧‧編碼器
100‧‧‧結合矩陣單元
110‧‧‧結合矩陣部
120‧‧‧邏輯運算部
200‧‧‧線性反饋移位暫存器
300‧‧‧加法器
Claims (15)
- 一種用於多模式BCH碼編碼的方法,包含步驟:建立複數個編碼矩陣;以一側對齊方式結合該編碼矩陣,以形成一結合矩陣;於該結合矩陣中尋找共同子表達式;及使用該結合矩陣編碼一訊息,其中每一編碼矩陣具有以下形式
- 如申請專利範圍第1項所述的方法,其中在結合矩陣中,不為編碼矩陣元素所佔之處以0補足。
- 如申請專利範圍第1項所述的方法,其中編碼矩陣依序排 列於該結合矩陣的一側。
- 如申請專利範圍第1項所述的方法,其中該結合矩陣中至少一編碼矩陣使用在該結合矩陣中另一編碼矩陣的共同子表達式。
- 如申請專利範圍第1項所述的方法,其中當結合矩陣中最小的編碼矩陣能容置在鄰近其它編碼矩陣所形成0之處的一部分,該最小的編碼矩陣設置於該處且兩側各鄰近一編碼矩陣。
- 如申請專利範圍第1項所述的方法,其中二相鄰編碼矩陣以複數個0分隔開。
- 一種用於多模式BCH碼編碼的編碼器,包含:一結合矩陣單元,用以提供複數個編碼矩陣於將其內元素與一具有p位元的輸入資料相乘,並於一第一時脈中輸出結果為一計算資料;一線性反饋移位暫存器,用以線性地移位該計算資料為一輸出資料,並於一第二時脈中輸出該輸出資料;及一加法器,用以接收該輸出資料與一具有p位元的切割的處理資料,將該輸出資料與切割的處理資料相加,及於該第二時脈中輸出該相加結果為另一輸入資料至該結合矩陣單元,其中一具有k位元訊息的n位元的初始處理資料以p位元為單位切割,作為切割的處理資料依序地輸入該加法器; 一編碼的碼字於第[n/p]個時脈獲得;第二時脈落後於第一時脈一個時脈;n為初始處理資料的長度,k為訊息的長度,p為一個時脈內可以處理的資料數目,n及p為正整數且1<n<p。
- 如申請專利範圍第7項所述的編碼器,其中該編碼矩陣以一側對齊方式形成一結合矩陣於該結合矩陣單元中,且該結合矩陣單元依照對應的BCH碼,使用一編碼矩陣內元素或一編碼矩陣內元素連同另一編碼矩陣中的共同子表達式,進行乘法運算。
- 如申請專利範圍第8項所述的編碼器,其中每一編碼矩陣具有以下形式,而
- 如申請專利範圍第8項所述的編碼器,其中該結合矩陣 單元進一步具有一邏輯運算部,以進行乘法運算。
- 如申請專利範圍第7項所述的編碼器,其中在結合矩陣中,不為編碼矩陣元素所佔之處以0補足。
- 如申請專利範圍第7項所述的編碼器,其中編碼矩陣依序排列於該結合矩陣的一側。
- 如申請專利範圍第7項所述的編碼器,其中該結合矩陣中至少一編碼矩陣使用在該結合矩陣中另一編碼矩陣的共同子表達式。
- 如申請專利範圍第7項所述的編碼器,其中當結合矩陣中最小的編碼矩陣能容置在鄰近其它編碼矩陣所形成0之處的一部分,該最小的編碼矩陣設置於該處且兩側各鄰近一編碼矩陣。
- 如申請專利範圍第7項所述的編碼器,其中二相鄰編碼矩陣以複數個0分隔開。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103119198A TWI538414B (zh) | 2014-06-03 | 2014-06-03 | 用於多模式bch碼編碼的方法及使用該方法的編碼器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103119198A TWI538414B (zh) | 2014-06-03 | 2014-06-03 | 用於多模式bch碼編碼的方法及使用該方法的編碼器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201547213A TW201547213A (zh) | 2015-12-16 |
TWI538414B true TWI538414B (zh) | 2016-06-11 |
Family
ID=55407626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103119198A TWI538414B (zh) | 2014-06-03 | 2014-06-03 | 用於多模式bch碼編碼的方法及使用該方法的編碼器 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI538414B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI603190B (zh) * | 2016-09-30 | 2017-10-21 | 旺宏電子股份有限公司 | 用以尋找一碼字中錯誤位置的方法及電子裝置 |
-
2014
- 2014-06-03 TW TW103119198A patent/TWI538414B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201547213A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6928602B2 (en) | Encoding method and encoder | |
US20090089642A1 (en) | Low-density parity-check (ldpc) encoder | |
CN107239362B (zh) | 一种并行crc校验码的计算方法及系统 | |
US7539918B2 (en) | System and method for generating cyclic codes for error control in digital communications | |
KR102118328B1 (ko) | 2의 멱이 아닌 길이로 확장된 폴라 코드의 코딩 및 디코딩 | |
KR102519667B1 (ko) | 일반화된 텐서곱(gtp) 코드의 효율적인 인코딩 방법 및 그 장치 | |
US9065482B1 (en) | Circuit for forward error correction encoding of data blocks | |
US6978415B1 (en) | Variable redundancy cyclic code encoders | |
US11316534B2 (en) | Encoding method and device, decoding method and device, and storage medium | |
US9337869B2 (en) | Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same | |
TWI538414B (zh) | 用於多模式bch碼編碼的方法及使用該方法的編碼器 | |
KR960705272A (ko) | 프로그램 가능 중복/신드롬 생성기(programmable redundancy/syndrome generator) | |
US9467173B2 (en) | Multi-code Chien's search circuit for BCH codes with various values of m in GF(2m) | |
RU2605672C1 (ru) | Реконфигурируемый кодер рида-соломона | |
KR101636406B1 (ko) | 저지연 신드롬 계산을 위한 bch 디코더의 전처리 장치 및 방법 | |
KR101619049B1 (ko) | 병렬 bch 디코더 | |
US20100031126A1 (en) | System and method for using the universal multipole for the implementation of a configurable binary bose-chaudhuri-hocquenghem (BCH) encoder with variable number of errors | |
US9287898B2 (en) | Method and circuit for shortening latency of Chien'S search algorithm for BCH codewords | |
Hu et al. | Low complexity parallel Chien search architecture for RS decoder | |
CN105227192B (zh) | 一种用于多模式bch码编码的方法及使用该方法的编码器 | |
US9641194B2 (en) | Method for encoding multi-mode of BCH codes and encoder thereof | |
TWI523437B (zh) | Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法 | |
TWI514778B (zh) | 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路 | |
RU157943U1 (ru) | Параллельный реконфигурируемый кодер бчх кодов | |
EP2778904A1 (en) | Method and System of Improved Reed-Solomon Decoding |