專利名稱:根據Nand Flash多余空間來配置糾錯能力的BCH解碼器的制作方法
技術領域:
本發明涉及一種BCH解碼器,特別涉及一種根據Nand Flash多余空間來配置糾錯能力的BCH解碼器。
背景技術:
GF(2m)是一種伽羅華域,它是GF(2)域的擴展域,該域由系數在GF(2)域上的m次本原多項式p(x)生成,域中有一個本原元素α,其為本原多項式的根。GF(2m)域的基本性質如下 1.域中共有2m個元素,除0元素外,其余元素皆為α的冪。
2.該域中兩個元素相加,和仍為該域中的元素,且等于這兩個元素向量表示的各分量的異或。
3.設β1=αi和β2=αj分別為該域中的兩個元素,則β1×β2仍為該域中的元素,其值為α(i+j)%n,n=2m-1,%表示求模運算。
作為循環碼的(n,k)BCH碼,其碼字長度滿足n=2m-1,校驗位長度n-k滿足n-k≤mt,t是能夠糾正的錯誤數目,其生成多項式以GF(2m)域上的前2t個元素為根。而對于碼長不滿足n=2m-1的二進制BCH碼(n-l,k-l),其被稱為縮短BCH碼,可被看作前l個信息位為0所形成的碼字,因而其解碼方法與普通BCH碼相同。
現有二進制BCH解碼器的解碼過程通常可分為三步 第一步利用接收碼字計算校正子。
若r(x)=r0+r1x+r2x2+……rn-1xn-1為接收碼字多項式,t為BCH碼可糾正的錯誤數,則2t個校正子可以按照下式(1)計算 si=r0+r1αi+r2α2i+……rn-1α(n-1)i,i=1……2t(1) 其中α為GF(2m)的本原元素,si是第i個校正子。
第二步利用校正子計算錯誤位置方程。
主要是利用Berlekamp-Massey等算法解如下的牛頓恒等式(2) s1+σ1=0 s2+σ1s1+2σ2=0 s3+σ1s2+σ2s1+3σ3=0 . . . sv+σ1sv-1+……+σv-1s1+vσv=0 (2) sv+1+σ1sv+……+σv-1s2+σvs1=0 . . . s2t+σ1s2t-1+……+σv-1s2t-v+1+σvs2t-v=0 其中,s1……s2t是第一步計算出的校正子,σ1,σ2,……σv是錯誤位置方程的系數,v是該碼字中錯誤的個數,v≤t,由此可得到錯誤位置方程如下式(3) 1+σ1x+σ2x2+……+σvxv=0 (3) 而目前多采用簡化的無逆BMA算法來計算錯誤位置方程系數,所述算法描述如下 初始化(Initialize)σ0=1,β0=z,l0=0,δ0=1 開始(Begin)for k=0……t-1begin
σ2k+2=δ2kσ2k+d2kβ2k
結束(end) end 其中,σ是需要求得并輸出的錯誤位置方程系數,l是需要求得并輸出的碼字錯誤個數。其余皆是中間變量。
第三步利用錯誤位置方程搜索錯誤位置,并對錯誤位置的錯誤值進行糾正以實現解碼 主要是通過chien搜索等算法找到錯誤位置方程的根,所述根中包含錯誤位置的信息。例如,設αk為錯誤位置方程的根,即 1+σ1αk+σ2(αk)2+……+σv(αk)v=0 (4) 則相應錯誤位置位于2m-1-k處。
然而,對于現有用于通信的BCH解碼器,由于其碼字長度較短,大多采用串行方式進行解碼,即在計算校正子時直接采用上式(1)進行計算或者利用輸入碼字首先計算出校驗多項式再計算校正子,進行chien搜索的時候都采用串行搜索方法逐比特搜索,因此解碼器的面積比較小,同時由于碼字長度較短,因此譯碼延遲也是可以接受的。但當碼字長度較長時,如此譯碼則延遲太大,難以接受。此外,在計算過程中,現有許多解碼器都采用查表法來求得GF(2m)域的乘法,這樣就需要一個只讀存儲器(ROM)來存儲GF(2m)域元素表。當碼字長度較長時,所述元素表會很大,會占用大量的硬件資源。再有,現有采用直接求解或者查表的方法來求解錯誤位置方程時,當碼字長度較短時,所需硬件面積和譯碼延遲都較小,而當碼長很大時,所需硬件面積和譯碼延遲都會非常大。
還有,現有用于Nand Flash控制器的BCH解碼器,其糾錯能力是固定的,一般為4比特或8比特,其優點在于專用性較好,面積較小,適用于現有的16字節/512字節或128字節/4K字節的多余空間(spare area)。然而,由于工藝的進步,線寬的降低,Nand Flash存儲密度越來越高,錯誤概率也越來越大,因此新一代Nand Flash中的多余空間提高到了218字節/4K字節,這樣也就使得Nand Flash控制器能夠采用糾更多比特錯誤的BCH碼,來降低Nand Flash的錯誤率,而現有僅能糾正4比特或8比特錯誤是遠遠不夠的。另一方面,現有能夠糾正15比特以下錯誤的解碼器,由于其不可配置性,使得校驗比特長度固定并且大于16字節,只能用于新一代MLC/QLC型的Nand Flash,不能應用于普通的Nand Flash,其向下兼容性不好。
因此,如何解決現有BCH解碼器存在的諸多問題,實已成為本領域技術人員亟待解決的技術課題。
發明內容
本發明的目的在于提供一種延遲小、兼容性好的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器。
為了達到上述目的及其他目的,本發明提供的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器包括用于根據Nand Flash多余空間來配置解碼器的糾錯比特數的糾錯能力指示模塊;用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及輸入的碼字,采用迭代法并行計算出相應奇數序號的校正子的奇數校正子計算模塊;用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及所述奇數校正子計算模塊所計算出的奇數序號的校正子串行計算出偶數序號的校正子的偶數校正子計算模塊;用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及所計算出奇數序號和偶數序號的校正子,采用無逆簡化的BMA算法迭代求解出錯誤位置方程的各系數、及錯誤碼字的個數的解牛頓恒等式模塊;用于根據所述解牛頓恒等式模塊所求解出的錯誤位置方程的各系數和錯誤碼字的個數、及所述糾錯能力指示模塊所配置的糾錯比特數,搜索出錯誤比特在Nand Flash中位置以對其進行糾正,進而實現譯碼的chien搜索模塊。
其中,配置的糾錯比特數為8或15。
綜上所述,本發明的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器硬件復用率非常高,其糾錯能力可達到8比特或15比特,而且延遲小,其既可支持現在的普通Nand Flash,也支持下一代MLC/QLC型Nand Flash,還可以用于Nand Flash控制器中,也可以用于通信系統中的前向糾錯模塊中,具有較好的兼容性,且硬件復用率高。
圖1為本發明的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器的基本結構示意圖。
圖2為本發明的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器的奇數校正子計算模塊結構示意圖。
圖3為本發明的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器的解牛頓恒等式模塊結構示意圖。
圖4為本發明的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器的chien搜索模塊結構示意圖。
具體實施例方式 請參閱圖1,本發明的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器至少包括糾錯能力指示模塊、奇數校正子計算模塊、偶數校正子計算模塊、解牛頓恒等式模塊、及chien搜索模塊,其可對(4200,4096)縮短碼或(4291,4096)縮短碼進行解碼。
所述糾錯能力指示模塊用于根據Nand Flash多余空間來配置解碼器的糾錯比特數,通常可配置的糾錯比特數為8比特或15比特。
所述奇數校正子計算模塊用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及輸入的碼字,采用迭代法并行計算出相應奇數序號的校正子。當配置的糾錯比特數為15比特,需要計算的奇數校正子數目最多為15個,采用并行計算,則所述奇數校正子計算模塊中所包含的計算單元的數目為15個。當配置的糾錯比特數為8比特時,需要計算的校正子數目為8個,則15個計算單元中的后7個在8比特糾錯的情況下是不工作的,其對應的后7個輸出也為0。由于Nand Flash是以字節為單位輸入碼字,因此每輸入一個單位的碼字,所述奇數校正子計 算模塊即按照 進行一次迭代,在迭代last次后即可計算出相應奇數序號的校正子,其中,last=輸入的總的碼字長度/8,
是在計算序號為i的校正子時迭代第k+1次時所得到的值,
是在計算序號為i的校正子時迭代第k次時所得到的值,c7……c0是第k+1次輸入的一個字節的數據,c7為輸入碼字中的最低位,c0為輸入碼字中的最高位。當配置的糾錯比特數為8比特時,碼字長度為4200比特正好能夠被8整除,因此,最后一輪迭代仍按照上式進行,當配置的糾錯比特數為15比特,碼字長度為4291比特,不能被8整除,因此最后一次的迭代則按照下式進行 式中,c2……c0是最后一次輸入字節中的有效碼字。
請參見圖2,在本實施例中,所述奇數校正子計算模塊包括用于計算
和
的校正子更新單元;用于計算c7+c6αi+c5α2i+c4α3i+c3α4i+c2α5i+c1α6i+c0α7i和c2+c1α+c0α2的校正子增量計算單元;及用于將所述校正子更新單元和校正子增量計算單元所計算出的結果進行GF(213)域相加的第一加法器,其中,所述校正子更新單元采用變量與常數乘法器來實現,變量為
常數為α8i。對于15比特糾錯的情況,在最后一輪迭代(537次迭代)時,校正子更新單元用于計算
因此校正子更新單元就包含兩個變量與常數的乘法器。而GF(213)域變量與常數的乘法器即為一系列針對于每一位的異或門。例如,對于x=y×α,其中,y是GF(213)的變量,α是本原元素,是一個常數。若設y的向量表示和x的向量表示為,則可以得到x的各分量為 x0=y12 x1=y0^y12 x2=y1 x3=y2^y12 x4=y3^y12 x5=y4 x6=y5 x7=y6 x8=y7 x9=y8 x10=y9 x13=y10 x12=y11 上式中“^”表示異或,顯然,x=y×α的可采用異或門來實現,其余常數與變量的乘法器實現方法與前述例子相同。所述校正子增量計算單元在15比特糾錯最后一輪迭代時用于計算c2+c1α+c0α2,其可為8個帶選擇信號的異或門。
與現有技術相比,所述奇數校正子計算模塊的優勢在于 1)迭代式較為簡單。
2)利用校正子更新的同一性,使得8比特糾錯校正子的計算能夠完全復用15比特糾錯情況下的計算單元,從而使8比特糾錯校正子計算單元被完全包含進15比特糾錯的計算單元中,降低了硬件的面積。
3)在8比特糾錯的情況下,后7個計算單元是不工作的,這就降低了硬件的功耗。
4)采用并行更新的方法實現奇數序號的校正子的計算,提高了計算速度,能夠達到即時更新的效果,其計算延遲為0,特別適用于數據長度很長,解碼延遲要求很高的情況。
所述偶數校正子計算模塊用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及所述奇數校正子計算模塊所計算出的奇數序號的校正子串行計算出偶數序號的校正子。由于二進制BCH碼存在故所述偶數校正子計算模塊可包括用于計算的第一GF(213)域乘法器;及用于啟動所述第一GF(213)域乘法器的啟動單元,si是所述奇數校正子計算模塊所計算出的序號為i的校正子,s2i為序號為2i的校正子。所述第一GF(213)域乘法器可采用變量與變量乘法器來實現,其可由與門和異或門構成。因為,設兩個GF(213)的變量x1、x2,兩者的向量表示分別為 即令γ=x1x2=(γ12,γ11,γ10,γ9,γ8,γ7,γ6,γ5,γ4,γ3,γ2,γ1,γ0),則有其中,min(a,b)表示a和b中的最小值,max(a,b)表示a和b中的最大值,即j∈{j|αj(i)=1,j=0,……,24},i=0,1,……,12,式中,αj(i)指αj的向量表示中第i分量,由此可見,變量與變量乘法器可由與門和異或門構成。此外,當所述奇數校正子計算模塊所計算的校正子都為0時,即輸入碼字沒有錯誤,所述啟動單元不啟動所述第一GF(213)域乘法器。當配置的糾錯比特數為15比特,需要計算的偶數校正子數目最多為15個,當配置的糾錯比特數為8比特,需要計算的偶數校正子數目最多為8個。
與現有技術相比,所述偶數校正子計算模塊的優勢在于 1)采用GF(213)域乘法器,串行計算偶數校正子,降低了硬件的面積。
2)在輸入碼字無錯的情況下,所述第一GF(213)域乘法器不啟動,整個解碼結束,此時,譯碼延遲為0。
3)在8比特糾錯情況下,只計算前8個偶數序號校正子,并且由于兩者所處的域相同,因此8比特糾錯偶數序號的校正子計算可以完全復用15比特糾錯的硬件,而無需增加任何新硬件,提高了復用度,降低了硬件面積。
所述解牛頓恒等式模塊用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及所計算出奇數序號和偶數序號的校正子,采用無逆簡化的BMA算法以求解出錯誤位置方程的各系數、及錯誤碼字的個數。在本實施例中,奇數序號和偶數序號的校正子都由所述偶數校正子計算模塊輸出。請參見圖3,所述解牛頓恒等式模塊包括第二GF(213)域乘法器、第三GF(213)域乘法器、第二加法器、第四GF(213)域乘法器、第三加法器、及變量更新單元等。所述第二GF(213)域乘法器用于計算
其中,k=0……t-1,i=0……k,t為所配置的糾錯比特數,σ是錯誤位置方程系數;第三GF(213)域乘法器用于計算δ2kσ2k,其中,δ0=1;第二加法器用于當k為一定值而i為不同值時所述第二GF(213)域乘法器計算出的各結果進行GF(213)域累加,即用于計算例如,當k=0時,i只能為0,故所述第二加法器輸出值為
第四GF(213)域乘法器用于將所述第二加法器計算出的結果與β2k進行GF(213)相乘,即用于計算d2kβ2k,其中,β0=z,z為中間變量;第三加法器用于將所述第三GF(213)域乘法器和第四GF(213)域乘法器計算出的結果進行GF(213)域相加,即用于計算σ2k+2=δ2kσ2k+d2kβ2k;變量更新單元用于根據所述第二加法器計算出的結果對變量β、δ、及l進行更新的,其中,l是碼字錯誤個數,且l0=0,其可根據
當配置的糾錯比特數為15比特時,需要迭代15次,當配置的糾錯比特數為8比特,只需要迭代8次。
與現有技術相比,所述解牛頓恒等式模塊的優勢在于 1)利用3個乘法器和2個加法器進行串行迭代,使硬件規模和計算所需的時鐘周期數都很適中。
2)在進行8比特糾錯時,只需減少迭代次數,而無需增加硬件。
所述chien搜索模塊用于根據所述解牛頓恒等式模塊所求解出的錯誤位置方程的各系數和錯誤碼字的個數、及所述糾錯能力指示模塊所配置的糾錯比特數,搜索出錯誤比特在NandFlash中位置以對其進行糾正,進而實現譯碼。其可采用并行度為8的chien搜索算法進行搜索,即當Nand Flash處理數據的最小單元為1個字節,一次可搜索一個字節的錯誤。請參見圖4,當配置的糾錯比特數為15比特時,所述chien搜索模塊從α3901開始搜索,首先由所述chien搜索模塊的15個乘積因子計算及更新單元計算出15個基本乘積因子,即計算a1=σ1α3901,a2=σ2α2×3901,……,a15=σ15α15×3901,其中,σ1,……,σ15是解牛頓恒等式模塊輸出的錯誤位置方程中的第1階到第15階的系數,a1,……,a15是用于搜索的15個基本乘積因子,然后由所述chien搜索模塊的105個變量常數乘法器和120個GF域加法器進行相應運算,使輸出的8個并行求和分支為 sum1=σ0+a1+a2+……+a15 sum2=σ0+a1α+a2α2+……+a15α15 sum3=σ0+a1α2+α2α4+……+a15α30 sum4=σ0+a1α3+a2α6+……+a15α45, sum5=σ0+a1α4+a2α8+……+a15α60 sum6=σ0+a1α5+a2α10+……+a15α75 sum7=σ0+a1α6+a2α12+……+a15α90 sum8=σ0+a1α7+a2α14+……+a15α105 σ0是錯誤位置方程的0階系數。sum1,……,sum8是8個求和分支計算出的錯誤位置方程的值,進行完一輪搜索后,15個乘積因子計算及更新單元按照a1=a1α8,a2=α2α16,……,a15=a15α8×15對基本乘積因子進行更新,同時判斷單元判斷搜索到的錯誤數目是否等于解牛頓恒等式模塊輸出的碼字錯誤數目,若是,則停止搜索,否則繼續搜索。例如,設第k輪搜索中第i個求和分支計算出的結果為0,則所述chien搜索模塊輸出的錯誤行位置為k,輸出錯誤列位置的第i比特為0,其余比特皆為1,輸出的錯誤標志為1。當配置的糾錯比特數為15比特時,其搜索仍從α3901開始,但放棄開始的11次搜索結果。
與現有技術相比,所述chien搜索模塊的優勢在于 1)采用并行度為8的chien搜索算法,使其能夠方便的應用于Nand Flash控制器。
2)8比特糾錯的搜索可以完全利用15比特糾錯的搜索的硬件資源,無需增加任何硬件。
3)當搜索到的錯誤數目等于碼字錯誤數目時,停止搜索可減少解碼延遲,這對于錯誤數目較少時是非常有用的。
4)整個搜索模塊雖然采取并行搜索的模式,但只需存儲15個基本乘積因子,其余乘積因子都可以由這15個計算得到,降低了寄存器的數目,從而也降低了硬件的面積。
利用Synopsys公司的Design Compiler綜合工具和SMIC公司的0.13μm的工藝庫,對本發明和相同架構的單獨的15比特糾錯的解碼器分別進行綜合,得到本發明的硬件面積為228119平方微米。而同架構的15比特糾錯的解碼器面積為226804平方微米,兩者基本相同。
綜上所述,本發明的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器能夠支持(4200,4096)和(4291,4096)兩種縮短BCH碼,由于其譯碼延遲較低,因此適合于碼字長度較長時的解碼,又由于其支持兩種大小的多余空間,因此特別適用于Nand Flash控制器中的ECC模塊;再者,由于無需存儲GF(213)域的表,而完全通過與門和異或門來實現GF域乘法和加法,大大降低了硬件的面積其復用程度非常高,使整體電路面積與同架構的單獨的15比特糾錯的解碼器面積基本相同;還有,由于采用了當校正子無誤時不糾錯和搜索出的錯誤數目與計算得到的碼字錯誤數目相等時糾錯結束這兩項技術,使得譯碼延遲大大降低;此外,采用經過簡化的算法并在計算時盡量減少寄存器的使用,不需要的計算單元不啟動,使得面積和功耗都比較低。
權利要求
1.一種根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于包括
糾錯能力指示模塊,用于根據NandFlash多余空間來配置解碼器的糾錯比特數;
奇數校正子計算模塊,用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及輸入的碼字,采用迭代法并行計算出相應奇數序號的校正子;
偶數校正子計算模塊,用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及所述奇數校正子計算模塊所計算出的奇數序號的校正子串行計算出偶數序號的校正子;
解牛頓恒等式模塊,用于根據所述糾錯能力指示模塊所配置的糾錯比特數、及所計算出奇數序號和偶數序號的校正子,采用無逆簡化的BMA算法迭代求解出錯誤位置方程的各系數、及錯誤碼字的個數;
chien搜索模塊,用于根據所述解牛頓恒等式模塊所求解出的錯誤位置方程的各系數和錯誤碼字的個數、及所述糾錯能力指示模塊所配置的糾錯比特數,搜索出錯誤比特在Nand Flash中位置以對其進行糾正,進而實現譯碼。
2.如權利要求1所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述BCH解碼器為對(4200,4096)碼或(4291,4096)碼進行解碼的解碼器。
3.如權利要求1或2所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于配置的糾錯比特數為8或15。
4.如權利要求1所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述奇數校正子計算模塊在計算每一校正子時,當Nand Flash以字節為單位輸入碼字,則每輸入一個單位的碼字,所述奇數校正子計算模塊即進行一次迭代,在迭代last次后計算出相應奇數序號的校正子,last=輸入的總的碼字長度/8,且其按照進行迭代,其中,
是在計算序號為i的校正子時迭代第k+1次時所得到的值,
是在計算序號為i的校正子時迭代第k次時所得到的值,c7……c0是第k+1次輸入的一個字節的數據,c7為輸入碼字中的最低位,c0為輸入碼字中的最高位。
5.如權利要求4所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于當碼字長度為4291比特,最后一次迭代按式進行。
6.如權利要求4或5所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述奇數校正子計算模塊包括用于計算
和
的校正子更新單元;用于計算c7+c6αi+c5α2i+c4α3i+c3α4i+c2α5i+c1α6i+c0α7i和c2+c1α+c0α2的校正子增量計算單元;及用于將所述校正子更新單元和校正子增量計算單元所計算出的結果進行GF(213)域相加的第一加法器,其中,所述校正子更新單元采用變量與常數乘法器來實現,所述校正子增量計算單元為8個帶選擇信號的異或門。
7.如權利要求1所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述偶數校正子計算模塊包括用于計算
的第一GF(213)域乘法器;及用于啟動所述第一GF(213)域乘法器的啟動單元,其中,si是所述奇數校正子計算模塊所計算出的序號為i的校正子,s2i為序號為2i的校正子。
8.如權利要求7所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于當所述奇數校正子計算模塊所計算的校正子都為0時,所述啟動單元不啟動所述第一GF(213)域乘法器。
9.如權利要求1所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述解牛頓恒等式模塊包括用于計算
的第二GF(213)域乘法器,其中,k=0……t-1,i=0……k,t為所配置的糾錯比特數,σ是錯誤位置方程系數;用于計算δ2kσ2k的第三GF(213)域乘法器,其中,δ0=1;用于當k為一定值而i為不同值時所述第二GF(213)域乘法器計算出的各結果進行GF(213)域累加的第二加法器;用于將所述第二加法器計算出的結果與β2k進行GF(213)相乘的第四GF(213)域乘法器,其中,β0=z,z為中間變量;用于將所述第三GF(213)域乘法器和第四GF(213)域乘法器計算出的結果進行GF(213)域相加的第三加法器、及用于根據所述第二加法器計算出的結果對變量β、δ、及l進行更新的變量更新單元,其中,l是碼字錯誤個數,且l0=0。
10.如權利要求1所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述變量更新單元按照
11.如權利要求1所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述chien搜索模塊為采用并行度為8的chien搜索算法進行搜索的模塊。
12.如權利要求11所述的根據Nand Flash多余空間來配置糾錯能力的BCH解碼器,其特征在于所述chien搜索模塊包括一判斷搜索到的錯誤數目是否等于解牛頓恒等式模塊輸出的碼字錯誤數目的判斷單元。
全文摘要
一種根據Nand Flash多余空間來配置糾錯能力的BCH解碼器包括用于根據Nand Flash多余空間來配置解碼器的糾錯比特數的糾錯能力指示模塊;用于根據配置的糾錯比特數、及輸入的碼字,采用迭代法并行計算出相應奇數序號的校正子的奇數校正子計算模塊;用于根據所計算出的奇數序號的校正子串行計算出偶數序號的校正子的偶數校正子計算模塊;用于根據所計算出奇數序號和偶數序號的校正子,采用無逆簡化的BMA算法迭代求解出錯誤位置方程的各系數、及錯誤碼字個數的解牛頓恒等式模塊;用于根據所求解出的各系數和錯誤碼字的個數,搜索出錯誤比特位置以對其進行糾正,進而實現譯碼的chien搜索模塊,此譯碼延遲小,兼容性好,且硬件復用率高。
文檔編號H03M13/15GK101483442SQ200910046088
公開日2009年7月15日 申請日期2009年2月11日 優先權日2009年2月11日
發明者諸烜程, 華 周, 姜啟軍 申請人:芯原微電子(上海)有限公司, 芯原股份有限公司