TWI514778B - 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路 - Google Patents
用於bch碼字之縮短秦式搜尋演算法延時的方法及電路 Download PDFInfo
- Publication number
- TWI514778B TWI514778B TW103111501A TW103111501A TWI514778B TW I514778 B TWI514778 B TW I514778B TW 103111501 A TW103111501 A TW 103111501A TW 103111501 A TW103111501 A TW 103111501A TW I514778 B TWI514778 B TW I514778B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- circuit
- error
- clock
- multiplexer
- Prior art date
Links
Landscapes
- Error Detection And Correction (AREA)
Description
本發明關於一種縮短秦式搜尋演算法的延時的方法與電路,特別是關於一種用於BCH碼字的縮短秦式搜尋演算法的延時的方法與電路。
在儲存與通信設備中,Bose-Chaudhuri-Hocquenghem(BCH)碼是最常被使用的錯誤更正碼技術之一。BCH碼能偵測及修正因在存儲設備通道中的噪聲和缺陷,隨機發生的錯誤。建構一個BCH碼字,碼長n、糾錯能力t及延伸場域GF(2m
)的一本原多項式需要被定義。BCH碼字的編碼程序能由線性反饋移位暫存器及某些邏輯電路的組合而簡易地實現。相較於BCH碼字的編碼程序,BCH碼字的解碼程序,如第1圖所示,是複雜了許多。
在接收一碼字後(S01),為了要解碼該碼字,依照特定的多項式計算徵狀碼(S02)。接著,依照該徵狀碼,
可以找到一錯誤位置多項式(S03)。接下來,藉由計算該錯誤位置多項式的根,可以得到錯誤位置數字(S04)。最後,一錯誤的碼字能由上述步驟糾正之(S05)。
傳統上,Peterson-Gorenstein-Zierler(PGZ)演算法或Berlekamp-Massey(BM)演算法可被用來找出上述錯誤位置多項式。因為PGZ演算法的複雜度高於BM演算法且BM演算法能達成較快的解碼速度,BM演算法在硬體實作中較受歡迎。
依照該錯誤位置多項式λ(x)=λ0
+λ1
x+...+λt
xt
,λ(x)的根能以1,α,α2
,...,αn-1
(n=2m
-1)取代至λ(x)中而簡易地尋獲。因為αn
=1且α-1
=αn-1
,是故,如果α1
為一錯誤位置數字,αn-1
為另一錯誤位置數字。傳統上,這種取代過程能由秦式搜尋迭代地運算,且實現於第2圖所示的電路中。
請參閱第2圖,該圖揭露一傳統的秦式搜尋模組10。該秦式搜尋模組10包括數個計算單元。每一計算單元101、102...或10t(t為任何大於2的整數)包括一多工器、一乘法器與一暫存器(即,計算單元101包括一多工器111、一乘法器121與一暫存器131,計算單元102包括一多工器112、一乘法器122與一暫存器132,計算單元10t包括一多工器11t、一乘法器12t與一暫存器13t)。取計算單元101做為例子。在運算中,多工器111接收錯誤位置多項式λ(x)的係數λ1
,乘法器121
將係數λ1
與α相乘,其乘積送至一加法器170並儲存於暫存器131中。其它計算單元以相同方式運作,不同的是計算單元10k(k為任何小於或等於t的正整數)將λk
與αk
相乘,並輸出該乘積至加法器170儲存於對應的暫存器。
加法器170累計由該計算單元101、102...及10t來的乘積與係數λ0
。從而能得到λ(α)=λ0
+λ1
α+...+λt
αt
。如果λ(α)等於零,α為λ(x)的一個根。α指出一個錯誤出現的位元,該位元能被校正。此外,其它位置並未包含錯誤位元。接著,開始迭代計算。仍以計算單元101作為例子。儲存於存器131內的乘積λ1
α,經由乘法器121輸入至多工器111。此時,新乘積λ1
α2
產生。相似地,λ2
α4
...及λt
α2t
各自由計算單元102...及10t中產生。從而,λ(α2
)=λ0
+λ1
α2
+...+λ1
α2t
能由加法器170得到。如果λ(α2
)等於零,α2
是λ(x)的一個根。α2
指出另一個錯誤出現的位元。該迭代計算在第n時脈完成後結束。
從上述說明可以明顯的知道,因為整個程序耗費n(2m
-1)次迭代運算,計算負荷相當顯著。然而,硬體實作能突破這種耗時問題且縮短秦式搜尋演算法的延時。而另一方面,因為資料傳輸量變得越來越大但傳輸速度要比以往更快,秦式搜尋演算法的延時還是應該要進一步被縮短。在所有BCH碼字解碼程序中,秦式搜尋耗時最多(約整體耗費時間的40%)。如何縮短秦式搜尋演算法延時是加強BCH碼字解碼效率的要點。
因為習知的秦式搜尋耗費太多比重的運算時間,若是能將該時間節省下來,BCH碼字的解碼會更加快速,故本發明即在提供用於縮短秦式搜尋演算法延時的方法及相關電路設計。
依照本發明的一種態樣,一種用於縮短秦式搜尋演算法延時的方法,包含步驟:決定一移位因子p;接收一BCH碼字;由該BCH碼字計算徵狀碼;基於該徵狀碼,找尋一錯誤位置多項式;及對該錯誤位置多項式進行秦式搜尋,以找到該錯誤位置多項式之根,其中p為由該BCH碼字的第一位元起連續零的數目,以伽羅瓦場GF(2m
)內的非零元素取代該錯誤位置多項式的變數,執行秦式搜尋之迭代計算,該非零元素範圍由αp+1
至αn
,其中n為該BCH碼字的碼長並等於2m
-1,m為一正整數。
依照本發明的另一種態樣,一種用於縮短秦式搜尋演算法延時的電路,包含:數個計算單元,每一計算單元以GF(2m
)內的一非零元素k,迭代地取代具有最高冪次t的一錯誤位置多項式之一特定冪次的變數,用以將該錯誤位置多項式之一對應的係數與k的特定冪次相乘,其結果作為一循環乘積,並輸出該循環乘積,其中k在各次的迭代計算中,由αp+1
至αn
循序地變化,其中n為一BCH碼字的碼長並等於2m
-1,p為由該BCH碼字的第一位元起連續零的數目,m為一
正整數;及一有限加法器,用以加總該錯誤位置多項式之一係數與在相同迭代計算中該計算單元輸出的所有循環乘積,加總結果作為一判斷因子。
在本案構想中,上述之電路,進一步包含一判斷模組用以判斷是否該判斷因子為零。錯誤位置多項式的係數由一錯誤位置多項式產生器所提供。
每一計算單元中包含:一係數多工器,用以接收該錯誤位置多項式對應的係數與一循環乘積,並於一第一時脈輸出該錯誤位置多項式對應的係數及於第一時脈後的時脈中輸出該循環乘積,做為一第一資料;一暫存器,電連接至該係數多工器,用以於一時脈中暫時儲存該第一資料並輸出該第一資料;一移位乘法器,電連接至該暫存器,用以將該第一資料乘上rk/α作為一第二資料並輸出該第二資料;一移位多工器,電連接至該暫存器與移位乘法器,用以接收該第一資料與第二資料,並於第一時脈後的一第二時脈輸出該第二資料及第二時脈後所有的時脈中輸出該第一資料;及一迭代乘法器,電連接至該移位多工器、係數多工器與有限加法器,用以接收該第一資料與第二資料,將該接收的第一資料或第二資料乘以αr
作為該循環乘積,並輸出該循環乘積至該有限加法器與係數多工器。其中r為一正整數,在一次迭代計算中由1變化到t,代表該計算單元對應錯誤位置多項式中變數的冪次順序。
依照本發明的又一種態樣,一種用於縮短秦式搜尋演算法延時的電路,包含:數個計算單元,每一計算單元以GF(2m
)內的一非零元素k,迭代地取代具有最高冪次t的一錯誤位置多項式之一特定冪次的變數,用以在第j次迭代計算中,同時將該錯誤位置多項式的一對應的係數與k的特定冪次相乘,k由αp+(j-1)s+1
變化至αp+js
,以作為循環乘積,並輸出第j次迭代計算中的該些循環乘積,其中n為一BCH碼字的碼長並等於2m
-1,p為由該BCH碼字的第一位元起連續零的數目,m與j為正整數,s為平行計算組的數量,當k的值為αn
時,運算終止;及s個有限加法器,每一有限加法器加總該錯誤位置多項式的一常數與對於在相同的迭代計算中該計算單元輸出之對應一特定的k值之所有的循環乘積,加總結果作為一判斷因子。
在本案構想中,上述之電路進一步包含一判斷模組用以判斷是否該判斷因子為零。錯誤位置多項式的係數由一錯誤位置多項式產生器所提供。
每一計算單元包含:一係數多工器,用以接收該錯誤位置多項式對應的係數與一循環乘積,並於一第一時脈輸出該錯誤位置多項式對應的係數及於第一時脈後的時脈中輸出該循環乘積,做為一第一資料;一暫存器,電連接至該係數多工器,用以於一時脈中暫時儲存該第一資料並輸出該第一資料;一移位乘法器,電連接至該暫存器,用以將
該第一資料乘上rk/α作為一第二資料並輸出該第二資料;一移位多工器,電連接至該暫存器與移位乘法器,用以接收該第一資料與第二資料,並於第一時脈後的一第二時脈輸出該第二資料及第二時脈後所有的時脈中輸出該第一資料;及s迭代乘法器,電連接至該移位多工器,每一迭代乘法器接收該第一資料與第二資料,用以將該接收的第一資料或第二資料乘以αqr
作為該循環乘積,並且各別地輸出該些循環乘積至該些有限加法器,其中迭代乘法器輸出循環乘積αt(p+s)
至該係數多工器,其中r為一正整數,在一次迭代計算中由1變化到t,代表該計算單元對應錯誤位置多項式中變數的冪次順序。q為一正整數,在一次迭代計算中範圍介於1至s。
本案另涉及一種用於解碼BCH碼字的錯誤更正碼解碼器,其包含上述之電路。
與傳統的秦式搜尋演算法相較,本發明能省略p次的迭代計算。因此,很明顯地,藉由應用本發明,秦式搜尋演算法的延時能顯著地被縮短。
10‧‧‧秦式搜尋模組
101‧‧‧計算單元
111‧‧‧多工器
121‧‧‧乘法器
131‧‧‧暫存器
102‧‧‧計算單元
112‧‧‧多工器
122‧‧‧乘法器
132‧‧‧暫存器
10t‧‧‧計算單元
11t‧‧‧多工器
12t‧‧‧乘法器
13t‧‧‧暫存器
170‧‧‧加法器
20‧‧‧電路
201‧‧‧計算單元
211‧‧‧係數多工器
221‧‧‧暫存器
231‧‧‧移位乘法器
241‧‧‧移位多工器
251‧‧‧迭代乘法器
202‧‧‧計算單元
212‧‧‧係數多工器
222‧‧‧暫存器
232‧‧‧移位乘法器
242‧‧‧移位多工器
252‧‧‧迭代乘法器
20t‧‧‧計算單元
21t‧‧‧係數多工器
22t‧‧‧暫存器
23t‧‧‧移位乘法器
24t‧‧‧移位多工器
25t‧‧‧迭代乘法器
270‧‧‧加法器
280‧‧‧錯誤位置多項式產生器
290‧‧‧判斷模組
30‧‧‧電路
301‧‧‧第一計算單元
311‧‧‧係數多工器
321‧‧‧暫存器
331‧‧‧移位乘法器
341‧‧‧移位多工器
3511‧‧‧第一迭代乘法器
3512‧‧‧第二迭代乘法器
351s‧‧‧第s迭代乘法器
302‧‧‧第二計算單元
312‧‧‧係數多工器
322‧‧‧暫存器
332‧‧‧移位乘法器
342‧‧‧移位多工器
3521‧‧‧第一迭代乘法器
3522‧‧‧第二迭代乘法器
352s‧‧‧第s迭代乘法器
30t‧‧‧第t計算單元
31t‧‧‧係數多工器
32t‧‧‧暫存器
33t‧‧‧移位乘法器
34t‧‧‧移位多工器
361t‧‧‧第一迭代乘法器
362t‧‧‧第二迭代乘法器
36st‧‧‧第s迭代乘法器
271‧‧‧第一有限加法器
272‧‧‧第二有限加法器
27s‧‧‧第s有限加法器
380‧‧‧錯誤位置多項式產生器
390‧‧‧判斷模組
第1圖為傳統BCH碼字解碼程序的流程圖。
第2圖為描述傳統秦式搜尋模組的方塊圖。
第3圖為依照本發明的一第一實施例,用於縮短秦式搜尋
演算法延時之電路的方塊圖。
第4圖說明一BCH碼字的結構。
第5圖說明另一BCH碼字的結構。
第6圖為第一實施例運作的流程圖。
第7圖為依照本發明的一第二實施例,用於縮短秦式搜尋演算法延時之電路的方塊圖。
第8圖說明應用本發明於一積體電路的錯誤更正碼解碼器。
本發明將藉由參照下列的實施例而更具體地描述。
請參閱第3圖,該圖描述一第一實施例。一電路20用以縮短秦式搜尋演算法延時。該電路20包括t個計算單元。為了簡化說明,僅繪示一第一計算單元201、一第二計算單元202及一第t計算單元20t。其餘計算單元並未描繪於此,但其結構與功用能由以下的說明而了解。電路20也包括一有限加法器270、一錯誤位置多項式產生器280及一判斷模組290。
所有的計算單元以相同的方式運作。唯一不同的是每一計算單元被用來迭代計算關於一錯誤位置多項式
的特定係數與特定冪次的變數。在此定義該錯誤位置多項式,λ(x),為λ(x)=λ0
+λ1
x+...+λt
xt
。這意味著λ(x)具有最高冪次t。該第一計算單元201被用來迭代計算關於λ1
與x的一次方。相似地,第二計算單元202用為λ2
與x的二次方。第t計算單元20t用為λt
與x的t次方。以第一計算單元201做為例子說明。該第一計算單元201迭代地以GF(2m
)中的一非零元素k,取代λ(x)中一次方的x。數字k可以是αp+1
、αp+2
...αn
。從而,k在各次的迭代計算中,由αp+1
至αn
循序地變化。對於本領域技術人員而言,執行秦式搜尋,以1、α1
、α2
...αn
迭代地取代而得到λ(x)的根是相當普遍的做法。對本發明而言,其縮短秦式搜尋演算法延時的精要在於省略p次的迭代計算。這也就是說由α1
至αp
能被省略不計算(依照本發明1並非一個根)。
此處,n是一個BCH碼字的碼長。它是一個整數且等於2m
-1。舉例而言,如果m是6,n將是26
-1,即63。對一特定的伽羅瓦場,數字m可以是任何的正整數。數字p為一移位因子且表示由該BCH碼字的第一位元起連續零的數目。請參閱第4圖與第5圖。一個BCH碼字能被分為二部分,即訊息部分與奇偶校驗部分。對BCH碼字而言,通常一編碼器編碼一訊息時,連續的零會由該碼字的第一位元開始出現。因此,將該連續的零移除,可製造一縮短的BCH碼字。這表示在該區域沒有錯誤產生,沒必要對其進行搜索。舉例而言,考慮一個可校正6個錯誤的BCH碼字(4174,4096),此即GF(213
)之標準
BCH碼字(8191,8113)之縮短碼字。一個縮短的BCH碼字能被辨識為具有連續零的標準BCH碼字,因而該移位因子p應為8191-4174=4071。此外,如果已知碼字有100位元全是零,移位因子p就應為100。應當強調的是p能對不同連續零的區域而變化。如第5圖所示,數個零可被保留在訊息部分開始的部分而不計入p的範圍。
依照本發明,當接收到一縮短的BCH碼字時,通常編碼器會告知有多少零(p)被移除以產生該縮短的BCH碼。因而該縮短的BCH碼字能被辨識為具有從頭開始連續p個零的標準BCH碼字。從而該縮短的BCH碼字能被增加p個零而還原回原來的BCH碼字,秦式搜尋可由應用本發明所提供的方法而進行。當然,也可直接應用本發明於標準的BCH碼字。
第一計算單元201將λ1
乘以k,λ1
αp+1
、λ1
αp+2
...λ1
αn
可於各次迭代計算獲得。這些值被定義為循環乘積。相似地,第二計算單元202得到λ2
α2(p+1)
、λ2
α2(p+2)
...λ2
α2n
,第t計算單元20t得到λt
αt(p+1)
、λt
αt(p+2)
...λt
αtn
。在每一迭代計算完成後,所有的計算單元同時輸出其對應的循環乘積到有限加法器270。有限加法器270加總λ(x)的常數項係數λ0
,及由該些計算單元輸出的所有循環乘積,作為一判斷因子。舉例而言,在一時脈中,判斷因子可以是λ0
+λ1
αp+3
+λ2
α2(p+3)
+...+λt
αt(p+3)
。該判斷因子由判斷模組290判斷是否為零。如果是,這就指出k為λ(x)的一個根。為了便於電路20的運作,
錯誤位置多項式產生器280被用來提供λ(x)的係數到特定的計算單元中。
計算單元詳細的說明描述如下。請再次參閱第2圖。第一計算單元201包括一係數多工器211、一暫存器221、一移位乘法器231、一移位多工器241及一迭代乘法器251。相似地,第二計算單元201具有一係數多工器212、一暫存器222、一移位乘法器232、一移位多工器242及一迭代乘法器252。第t計算單元20t具有一係數多工器21t、一暫存器22t、一移位乘法器23t、一移位多工器24t及一迭代乘法器25t。具有相同名稱的組件有類似的功能。仍然以第一計算單元201作為解說的例子,具有相同名稱的組件之不同處將於後段描述中被指出。
係數多工器211能接收由該錯誤位置多項式產生器280來之λ(x)的λ1
及由迭代乘法器251傳來的循環乘積。它於一第一時脈中輸出λ(x)的λ1
,並於第一時脈後的時脈中輸出循環乘積,作為一第一資料。這也就是說當在第一時脈時,第一資料是λ。在第二時脈中,第一資料變為λ1
αp+1
。暫存器221電連接至該係數多工器211。它能暫時儲存第一資料一個時脈並輸出該第一資料,即,第一資料能留在暫存器221一個時脈。移位乘法器231電連接至該暫存器221。它被用來將第一資料乘以k/α(αp
),做為一第二資料,並輸出該第二資料。應當注意到移位乘法器232將對應的第一資料乘以2k/α,移位
乘法器23t將對應的第一資料乘以tk/α。可以推論第r個移位乘法器將對應的第一資料乘以rk/α。此處,r為一正整數,在一次迭代計算中由1變化到t,代表該計算單元對應的錯誤位置多項式中變數的冪次順序。
移位多工器241電連接至該暫存器221與移位乘法器231。它能在所有時脈中接收第一資料與第二資料。在第二時脈中,移位多工器241輸出第二資料。在第二時脈後的所有時脈,到一BCH碼字的秦式搜尋結束為止,該移位多工器241輸出由該暫存器221來的第一資料。迭代乘法器251電連接至到移位多工器241、係數多工器211及有限加法器270。它接收第一資料與第二資料、將接收的第一資料或第二資料乘以αr
作為該循環乘積,並輸出循環乘積至有限加法器270與係數多工器211。數字r的定義如上所述。
本發明的方法能如下進行。請參閱第6圖。首先,在秦式搜尋開始前,決定一移位因子p(S11)。數字p應由一編碼器告知或由預設值決定。接著,接收一BCH碼字(S12)。由該BCH碼字計算徵狀碼(S13)。基於該徵狀碼找尋一錯誤位置多項式(S14)。最後,對該錯誤位置多項式執行秦式搜尋,由αp+1
至αn
,以找出其根(S15)。
依照本發明的精神,第一實施例的電路20能進一步平行計算。請見第7圖。該圖揭露用於縮短秦式搜尋演算法延時,具有平行計算能力的一電路30之第二實施例。
電路30包括t個計算單元。如同第一實施例,為了簡化說明,僅繪示一第一計算單元301、一第二計算單元302與一第t計算單元30t。其餘計算單元並未描繪於此,但其結構與功用能由以下的說明而了解。電路30也包括s個有限加法器、一錯誤位置多項式產生器380與一判斷模組390。一第一有限加法器271、一第二有限加法器272與一第s有限加法器27s也為討論解說的標的。
所有的計算單元以相同的方式運作。唯一不同的是每一計算單元被用來迭代計算關於一錯誤位置多項式的特定係數與特定冪次的變數。資引用第一實施例中的錯誤位置多項式λ(x)於第二實施例。第一計算單元301被用來迭代計算關於λ1
與x的一次方。相似地,第二計算單元302用為λ2
與x的二次方。第t計算單元30t用為λt
與x的t次方。以第一計算單元301做為例子。第一計算單元301以GF(2m
)中一非零元素k迭代地取代λ(x)中一次方的x。不同於第一實施例中的第一計算單元,電路30的每一計算單元支持平行計算。舉例而言,第一計算單元301能在一迭代計算中,同時將λ1
乘以k(k為一變數,由αp+1
變化至αp+s
)的一次方,作為循環乘積。接著輸
出該s個循環乘積。數字s為平行計算組的數量。這代表一計算單元能同時執行s個計算。第二實施例中的計算單元效率與速度是第一實施例中的計算單元的s倍。在下一個迭代計算中,k由αp+s+1
變化至αp+2s
。當k的值為αn
時,運算終止。綜上所述,k在第j次迭代計算中,由αp+(j-1)s+1
變化至αp+js
。舉例來說,在第8次的迭代計算中,k由αp+7s+1
變化至αp+8s
。
s個有限加法器被命名為一第一有限加法器271、一第二有限加法器272...及一第s有限加法器27s。僅繪示三者用於說明。每一有限加法器加總λ(x)的λ0
與對特定的k由該些計算單元於相同的迭代計算中輸出的所有的循環乘積,作為一判斷因子。為了更好地理解,以k為αp+s
作為一個例子。來自該第一計算單元301,對應於αp+s
的循環乘積為λ1
αp+s
。來自該第二計算單元302,對應於αp+s
的循環乘積為λ2
α2(p+s)
。來自第t計算單元30t,對應於αp+s
的循環乘積為λt
αt(p+s)
。第s有限加法器27s加總λ0
、λ1
αp+s
、λ2
α2(p+s)
...及λt
αt(p+s)
,作為該判斷因子。如果k是αp+s+1
,它是在第二次迭代計算中計算,且第一有限加法器271負責處理。
如同第一實施例的電路20,判斷因子由判斷模組390所判斷是否為零。如果是,這就指出k為λ(x)的一個根。為了便於電路30的運作,錯誤位置多項式產生器380被用來提供λ(x)的係數到特定的計算單元中。此外,判斷模組390
能具有平行計算能力,以同時處理判斷因子。該判斷模組390也能具有s個平行計算單元以跟上計算單元的速度。
計算單元詳細的說明描述如下。第一計算單元301包括一係數多工器311、一暫存器321、一移位乘法器331、一移位多工器341與s個迭代乘法器。為了簡化描述,僅顯示一第一迭代乘法器3511、一第二迭代乘法器3512一第s迭代乘法器351s。相似地,第二計算單元302包括一係數多工器312、一暫存器322、一移位乘法器332、一移位多工器342、一第一迭代乘法器3521、一第二迭代乘法器3522與一第s迭代乘法器352s。第t計算單元30t包括一係數多工器31t、一暫存器32t、一移位乘法器33t、一移位多工器34t、一第一迭代乘法器361t、一第二迭代乘法器362t與一第s迭代乘法器36st。具有相同名稱的組件有類似的功能。以第一計算單元301作為解說的例子,具有相同名稱的組件之不同處將於後段描述中被指出。
係數多工器311由該錯誤位置多項式產生器380接收λ(x)的λ1
及由第s迭代乘法器351s接收一循環乘積。它於一第一時脈輸出λ(x)的λ1
,於第一時脈後的時脈中輸出該循環乘積,作為一第一資料。此即當第一時脈時,第一資料是λ1
。在第二時脈中,第一資料變為λ1
αp+s
。暫存器321電連接至係數多工器311。它能暫時儲存第一資料一個時脈並輸出該第一資料。第一資料能留在暫存器321中一個時脈。移位乘法器331電連接至暫存器321。它是用來將第一資料乘以k/α(αp
),作
為一第二資料,並輸出該第二資料。應當注意到移位乘法器322將對應的第一資料乘以2k/α,移位乘法器32t將對應的第一資料乘以tk/α。可以推論一第r移位乘法器將對應的第一資料乘以rk/α。此處,r為一正整數,在一次迭代計算中由1變化到t,代表該計算單元對應的錯誤位置多項式中變數的冪次順序。q為一正整數,在一次迭代計算中範圍介於1至s。
移位多工器341電連接至暫存器321與移位乘法器331。它接收第一資料與第二資料,並於第二時脈輸出第二資料且於第二時脈後的時脈中輸出第一資料。s個迭代乘法器電連接至移位乘法器331。每一迭代乘法器接收第一資料與第二資料,將第一資料或第二資料乘以αq
,作為第q次迭代計算的循環乘積,並各別輸出該些循環乘積至該些有限加法器。一般來說,在第r計算單元中之第q迭代乘法器將第一資料或第二資料乘以αqr
,作為對應的循環乘積。應當注意的是輸出乘以αr(p+s)
至對應係數的循環乘積之第s迭代乘法器也輸出該循環乘積到係數多工器311。
請參閱第8圖。對於應用本發明的一解決方案,一控制器500,包括一錯誤更正碼編碼器510與一錯誤更正碼解碼器520,橋接於一主機600與一儲存設備700間。該主機600發出一訊息以儲存至儲存設備700。該訊息由錯誤更正碼編碼器510編碼並傳輸至該儲存設備700。這訊息能被編碼成一標準BCH碼字或一縮短的BCH碼字。當該訊息需要讀取
時,它會由錯誤更正碼解碼器520解碼且送回至主機600。依照本發明,錯誤更正碼解碼器520執行徵狀碼計算、錯誤位置多項式計算與秦式搜尋。實作上,控制器500是以積體電路(IC)或晶粒的形式存在。實際上,考量成本因素,該錯誤更正碼編碼器510與錯誤更正碼解碼器520可以在不同的IC或晶粒上。因此,除了以上論及的電路,本發明亦包含用於解碼BCH碼字,包括上述實施例中的電路之錯誤更正碼解碼器。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
20‧‧‧電路
201‧‧‧計算單元
211‧‧‧係數多工器
221‧‧‧暫存器
231‧‧‧移位乘法器
241‧‧‧移位多工器
251‧‧‧迭代乘法器
202‧‧‧計算單元
212‧‧‧係數多工器
222‧‧‧暫存器
232‧‧‧移位乘法器
242‧‧‧移位多工器
252‧‧‧迭代乘法器
20t‧‧‧計算單元
21t‧‧‧係數多工器
22t‧‧‧暫存器
23t‧‧‧移位乘法器
24t‧‧‧移位多工器
25t‧‧‧迭代乘法器
270‧‧‧加法器
280‧‧‧錯誤位置多項式產生器
290‧‧‧判斷模組
Claims (17)
- 一種用於縮短秦式搜尋演算法延時的方法,包含步驟:決定一移位因子p;接收一BCH碼字;由該BCH碼字計算徵狀碼;基於該徵狀碼,找尋一錯誤位置多項式;及對該錯誤位置多項式進行秦式搜尋,以找到該錯誤位置多項式之根,其中p為由該BCH碼字的第一位元起連續零的數目,以伽羅瓦場GF(2m )內的非零元素取代該錯誤位置多項式的變數,執行秦式搜尋之迭代計算,該非零元素範圍由αp+1 至αn ,其中n為該BCH碼字的碼長並等於2m -1,m為一正整數。
- 一種用於縮短秦式搜尋演算法延時的電路,包含:複數個計算單元,每一計算單元以GF(2m )內的一非零元素k,迭代地取代具有最高冪次t的一錯誤位置多項式之一特定冪次的變數,用以將該錯誤位置多項式之一對應的係數與k的特定冪次相乘,其結果作為一循環乘積,並輸出該循環乘積,其中k在各次的迭代計算中,由αp+1 至αn 循序地變化,其中n為一BCH碼字的碼長並等於2m -1,p為由該BCH碼字的第一位元起連續零的數目,m為一正整數;及 一有限加法器,用以加總該錯誤位置多項式之一係數與在相同迭代計算中該計算單元輸出的所有循環乘積,加總結果作為一判斷因子。
- 如申請專利範圍第2項所述之電路,進一步包含一判斷模組用以判斷是否該判斷因子為零。
- 如申請專利範圍第2項所述之電路,其中錯誤位置多項式的係數由一錯誤位置多項式產生器所提供。
- 如申請專利範圍第2項所述之電路,其中每一計算單元包含:一係數多工器,用以接收該錯誤位置多項式對應的係數與一循環乘積,並於一第一時脈輸出該錯誤位置多項式對應的係數及於第一時脈後的時脈中輸出該循環乘積,做為一第一資料;一暫存器,電連接至該係數多工器,用以於一時脈中暫時儲存該第一資料並輸出該第一資料;一移位乘法器,電連接至該暫存器,用以將該第一資料乘上rk/α作為一第二資料並輸出該第二資料;一移位多工器,電連接至該暫存器與移位乘法器,用以接收該第一資料與第二資料,並於第一時脈後的一第二時脈輸出該第二資料及第二時脈後所有的時脈中輸出該第一資料;及 一迭代乘法器,電連接至該移位多工器、係數多工器與有限加法器,用以接收該第一資料與第二資料,將該接收的第一資料或第二資料乘以αr 作為該循環乘積,並輸出該循環乘積至該有限加法器與係數多工器,其中r為一正整數,在一次迭代計算中由1變化到t,代表該計算單元對應錯誤位置多項式中變數的冪次順序。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第2項所述之電路。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第3項所述之電路。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第4項所述之電路。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第5項所述之電路。
- 一種用於縮短秦式搜尋演算法延時的電路,包含:複數個計算單元,每一計算單元以GF(2m )內的一非零元素k,迭代地取代具有最高冪次t的一錯誤位置多項式之一特定冪次的變數,用以在第j次迭代計算中,同時將該錯誤位置多項式的一對應的係數與k的特定冪次相乘,k由αp+(j-1)s+1 變化至αp+js ,以作為循環乘積,並輸 出第j次迭代計算中的該些循環乘積,其中n為一BCH碼字的碼長並等於2m -1,p為由該BCH碼字的第一位元起連續零的數目,m與j為正整數,s為平行計算組的數量,當k的值為αn 時,運算終止;及s個有限加法器,每一有限加法器加總該錯誤位置多項式的一常數與對於在相同的迭代計算中該計算單元輸出之對應一特定的k值之所有的循環乘積,加總結果作為一判斷因子。
- 如申請專利範圍第10項所述之電路,進一步包含一判斷模組用以判斷是否該判斷因子為零。
- 如申請專利範圍第10項所述之電路,其中錯誤位置多項式的係數由一錯誤位置多項式產生器所提供。
- 如申請專利範圍第10項所述之電路,其中每一計算單元包含:一係數多工器,用以接收該錯誤位置多項式對應的係數與一循環乘積,並於一第一時脈輸出該錯誤位置多項式對應的係數及於第一時脈後的時脈中輸出該循環乘積,做為一第一資料;一暫存器,電連接至該係數多工器,用以於一時脈中暫時儲存該第一資料並輸出該第一資料;一移位乘法器,電連接至該暫存器,用以將該第一資料乘上rk/α作為一第二資料並輸出該第二資料; 一移位多工器,電連接至該暫存器與移位乘法器,用以接收該第一資料與第二資料,並於第一時脈後的一第二時脈輸出該第二資料及第二時脈後所有的時脈中輸出該第一資料;及s個迭代乘法器,電連接至該移位多工器,每一迭代乘法器接收該第一資料與第二資料,用以將該接收的第一資料或第二資料乘以αqr 作為該循環乘積,並且各別地輸出該些循環乘積至該些有限加法器,其中迭代乘法器輸出循環乘積αt(p+s) 至該係數多工器,其中r為一正整數,在一次迭代計算中由1變化到t,代表該計算單元對應錯誤位置多項式中變數的冪次順序。q為一正整數,在一次迭代計算中範圍介於1至s。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第10項所述之電路。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第11項所述之電路。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第12項所述之電路。
- 一種用於解碼BCH碼字的錯誤更正碼解碼器,包含申請專利範圍第13項所述之電路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103111501A TWI514778B (zh) | 2014-03-27 | 2014-03-27 | 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103111501A TWI514778B (zh) | 2014-03-27 | 2014-03-27 | 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201537903A TW201537903A (zh) | 2015-10-01 |
TWI514778B true TWI514778B (zh) | 2015-12-21 |
Family
ID=54851042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103111501A TWI514778B (zh) | 2014-03-27 | 2014-03-27 | 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI514778B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108880567A (zh) * | 2017-05-11 | 2018-11-23 | 华邦电子股份有限公司 | 错误检查和纠正解码器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117425B2 (en) * | 2002-09-23 | 2006-10-03 | Agere Systems Inc. | Decoder architecture for reed solomon codes |
US7793197B2 (en) * | 2006-03-30 | 2010-09-07 | Fujitsu Limited | Error correction apparatus |
US8055977B2 (en) * | 2006-10-30 | 2011-11-08 | Fujitsu Limited | Decoding device, encoding/decoding device and recording/reproducing device |
US8230309B2 (en) * | 2006-11-01 | 2012-07-24 | Fujitsu Limited | Maximum likelihood detector, error correction circuit and medium storage device |
-
2014
- 2014-03-27 TW TW103111501A patent/TWI514778B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117425B2 (en) * | 2002-09-23 | 2006-10-03 | Agere Systems Inc. | Decoder architecture for reed solomon codes |
US7793197B2 (en) * | 2006-03-30 | 2010-09-07 | Fujitsu Limited | Error correction apparatus |
US8055977B2 (en) * | 2006-10-30 | 2011-11-08 | Fujitsu Limited | Decoding device, encoding/decoding device and recording/reproducing device |
US8230309B2 (en) * | 2006-11-01 | 2012-07-24 | Fujitsu Limited | Maximum likelihood detector, error correction circuit and medium storage device |
Non-Patent Citations (11)
Title |
---|
Ahmed, H.A.; Salah, H.; Elshabrawy, T.; Fahmy, H.A.H., "A low energy high speed Reed-Solomon decoder using Decomposed Inversionless Berlekamp-Massey Algorithm," in Signals, Systems and Computers (ASILOMAR), 2010 Conference Record of the Forty Fourth Asilomar Conference on , vol., no., pp.406-409, 7-10 Nov. 2010 * |
Bing Liu; Jun Gao; Gaoqi Dou; Wei Tao, "Majority decision based weighted symbol-flipping decoding for nonbinary LDPC codes," in Future Computer and Communication (ICFCC), 2010 2nd International Conference on , vol.3, no., pp.V3-6-V3-10, 21-24 May 2010 * |
Chenxu Wang; Yuhong Gao; Liang Han; Jinxiang Wang, "The design of parallelized BCH codec," in Image and Signal Processing (CISP), 2010 3rd International Congress on , vol.7, no., pp.3057-3059, 16-18 Oct. 2010 * |
Hoyoung Yoo; Youngjoo Lee; In-Cheol Park, "7.3 Gb/s universal BCH encoder and decoder for SSD controllers," in Design Automation Conference (ASP-DAC), 2014 19th Asia and South Pacific , vol., no., pp.37-38, 20-23 Jan. 2014 * |
Jewong Yeon; Hanho Lee, "High-performance iterative BCH decoder architecture for 100 Gb/s optical communications," in Circuits and Systems (ISCAS), 2013 IEEE International Symposium on , vol., no., pp.1344-1347, 19-23 May 2013 * |
Kristian, H.; Wahyono, H.; Rizki, K.; Adiono, T., "Ultra-fast-scalable BCH decoder with efficient-Extended Fast Chien Search," in Computer Science and Information Technology (ICCSIT), 2010 3rd IEEE International Conference on , vol.4, no., pp.338-343, 9-11 July 2010 * |
Massey, J.L., "Shift-register synthesis and BCH decoding," in Information Theory, IEEE Transactions on , vol.15, no.1, pp.122-127, Jan 1969 * |
Sarwate, D.V.; Shanbhag, N.R., "High-speed architectures for Reed-Solomon decoders," in Very Large Scale Integration (VLSI) Systems, IEEE Transactions on , vol.9, no.5, pp.641-655, Oct. 2001 * |
Stevens, P., "Extension of the BCH decoding algorithm to decode binary cyclic codes up to their maximum error correction capacities," in Information Theory, IEEE Transactions on , vol.34, no.5, pp.1332-1340, Sep 1988 * |
Te-Hsuan Chen; Yu-Ying Hsiao; Yu-Tsao Hsing; Cheng-Wen Wu, "An Adaptive-Rate Error Correction Scheme for NAND Flash Memory," in VLSI Test Symposium, 2009. VTS '09. 27th IEEE , vol., no., pp.53-58, 3-7 May 2009 * |
Trieu-Kien Truong; Yaotsu Chang; Yan-Haw Chen; Lee, C.-D., "Algebraic decoding of (103, 52, 19) and (113, 57, 15) quadratic residue codes," in Communications, IEEE Transactions on , vol.53, no.5, pp.749-754, May 2005 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108880567A (zh) * | 2017-05-11 | 2018-11-23 | 华邦电子股份有限公司 | 错误检查和纠正解码器 |
CN108880567B (zh) * | 2017-05-11 | 2022-03-08 | 华邦电子股份有限公司 | 错误检查和纠正解码器 |
Also Published As
Publication number | Publication date |
---|---|
TW201537903A (zh) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5170399A (en) | Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack | |
US6374383B1 (en) | Determining error locations using error correction codes | |
US5517509A (en) | Decoder for decoding ECC using Euclid's algorithm | |
JPH0464211B2 (zh) | ||
JPH0831803B2 (ja) | 誤り訂正のための方法と装置 | |
CN101814922A (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
US7870468B1 (en) | Reed-solomon decoder using a configurable arithmetic processor | |
JP2011165026A (ja) | エラー検出訂正システム | |
US20130139028A1 (en) | Extended Bidirectional Hamming Code for Double-Error Correction and Triple-Error Detection | |
CN101483442B (zh) | 根据Nand Flash多余空间来配置纠错能力的BCH解码器 | |
JP2004032737A (ja) | リード−ソロモン復号器 | |
KR20190003315A (ko) | 일반화된 텐서곱(gtp) 코드의 효율적인 인코딩 방법 및 그 장치 | |
CN105099467B (zh) | Qc-ldpc码的编码方法及编码装置 | |
JP2009094605A (ja) | 符号誤り検出装置および誤り検出符号生成装置 | |
WO2013189274A1 (zh) | 一种用于并行bch编码的电路、编码器及方法 | |
US6263471B1 (en) | Method and apparatus for decoding an error correction code | |
TWI514778B (zh) | 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路 | |
US20100174970A1 (en) | Efficient implementation of a key-equation solver for bch codes | |
RU2314639C1 (ru) | Устройство декодирования кодов рида-соломона | |
US9287898B2 (en) | Method and circuit for shortening latency of Chien'S search algorithm for BCH codewords | |
US9467173B2 (en) | Multi-code Chien's search circuit for BCH codes with various values of m in GF(2m) | |
US9608668B2 (en) | Error correcting apparatus, error correcting method, and program | |
US9459836B2 (en) | Simplified inversionless berlekamp-massey algorithm for binary BCH code and circuit implementing therefor | |
EP0793352B1 (en) | Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder | |
CN106603085B (zh) | 生成多项式的生成方法、生成装置、编码器、控制器及电子设备 |