專利名稱:一種bch碼譯碼方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種BCH碼譯碼方法和裝置。
背景技術(shù):
目前,NAND(與非)閃存在功耗、速度、數(shù)據(jù)可靠性、重量以及靜音等方面具有非 常明顯的優(yōu)勢,隨著輕薄型筆記本電腦在整個PC(PersonalCompUter,個人計算機)市場份 額的持續(xù)增加,NAND的這些優(yōu)勢變得更加具有吸引力,基于NAND閃存的固態(tài)存儲盤(SSD, Solid State Disk)正在逐步走入這些應(yīng)用。NAND閃存可分為兩大架構(gòu)單層單元SLC(Single Level Cell)和多層單元 MLC (Mul ti Level Cell), MLC由于成本低,容量大,但其工作性能不如SLC穩(wěn)定,據(jù)統(tǒng)計,采 用MLC NAND閃存(MLC NAND Flash Memory)存取數(shù)據(jù)的誤碼率大概為10_5,為保證讀取數(shù) 據(jù)的準確性,需采用糾錯碼ECC(Error Correction Code)技術(shù)對其實現(xiàn)糾多比特(bit)隨 機錯誤。針對BCH編譯碼的實現(xiàn),譯碼是難點,在所有的譯碼算法中常用的有=Peterson算 法、Berlekamp-Massey迭代算法(簡稱BM法)、歐幾里得(Euclid)算法。其中,Peterson 算法適用糾錯數(shù)較少的譯碼,它的計算量在上述三種算法中最大;BM算法和Euclid算法適 用于糾錯數(shù)較大的譯碼器,Euclid算法比BM迭代算法容易理解,但運算量較大,且比BM迭 代算法的硬件結(jié)構(gòu)復(fù)雜。另外考慮到二進制BCH碼的特殊性,所以在設(shè)計中采用譯碼速度 快而最常用的BM迭代算法。發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),在BM迭代算法中,包括常用 的 iBM(Inversionless Berlecamp-Massey)算 法 禾口 riBM(Reformulation inversionlessBerlecamp-Massey)算法,其中,riBM算法是對iBM算法的推導(dǎo)和改進,其 關(guān)鍵路徑縮短為原來的一半,大大提高了 VLSI設(shè)計性能,但是,riBM算法是針對RS (Reed Solomon)碼提出的適用于FPGA設(shè)計的并行BM迭代算法,由于RS碼為BCH碼的特例,其譯 碼過程比BCH碼復(fù)雜,因此,如果將riBM算法應(yīng)用于普遍的BCH碼的譯碼過程中,將造成資 源的極大浪費。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種BCH碼譯碼方法和裝置,能夠在占用較少的FPGA資源并保 證高速的前提下,實現(xiàn)BCH碼譯碼。本發(fā)明實施例的上述目的是通過如下技術(shù)方案實現(xiàn)的一種BCH碼譯碼方法,所述方法包括根據(jù)接收碼計算伴隨式;利用迭代算法根據(jù) 所述伴隨式計算錯誤位置多項式;利用錢式搜索算法根據(jù)所述錯誤位置多項式確定錯誤位 置;對所述確定的錯誤位置上的錯誤值進行糾錯得到恢復(fù)碼。其中,利用迭代算法根據(jù)所 述伴隨式計算錯誤位置多項式包括設(shè)置錯誤位置多項式在零次迭代下的初始值和所述錯 誤位置多項式的輔助多項式在零次迭代下的初始值為零;設(shè)置錯誤值多項式在零次迭代下的初始值和所述錯誤值多項式的輔助多項式在零次迭代下的初始值為所述伴隨式的系數(shù); 設(shè)置錯誤位置多項式在零次迭代零次冪下的初始值和所述錯誤位置多項式的輔助多項式 在零次迭代零次冪下的初始值為1 ;設(shè)置迭代系數(shù)在零次迭代下的初始值為0 ;設(shè)置迭代限 制條件在零次迭代下的初始值為1 ;根據(jù)上述設(shè)置的初始值計算錯誤值多項式的輔助多項 式、錯誤位置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件;根據(jù)上述設(shè)置的初始值以 及根據(jù)上述計算獲得的錯誤值多項式的輔助多項式、錯誤位置多項式的輔助多項式、迭代 系數(shù)以及迭代限制條件,計算錯誤值多項式;根據(jù)上述設(shè)置的初始值以及根據(jù)上述計算獲 得的計算錯誤值多項式、錯誤值多項式的輔助多項式、錯誤位置多項式的輔助多項式、迭代 系數(shù)以及迭代限制條件計算錯誤位置多項式,獲得錯誤位置多項式。一種BCH碼譯碼裝置,所述裝置包括第一計算單元,用于根據(jù)接收碼計算伴隨 式;第二計算單元,用于利用迭代算法根據(jù)所述伴隨式計算錯誤位置多項式;確定單元,用 于利用錢式搜索算法根據(jù)所述錯誤位置多項式確定錯誤位置;糾錯單元,用于對所述確定 單元確定的錯誤位置上的錯誤值進行糾錯得到恢復(fù)碼。其中,第二計算單元包括設(shè)置模 塊,用于設(shè)置錯誤位置多項式在零次迭代下的初始值和所述錯誤位置多項式的輔助多項式 在零次迭代下的初始值為零;設(shè)置錯誤值多項式在零次迭代下的初始值和所述錯誤值多項 式的輔助多項式在零次迭代下的初始值為所述伴隨式的系數(shù);設(shè)置錯誤位置多項式在零次 迭代零次冪下的初始值和所述錯誤位置多項式的輔助多項式在零次迭代零次冪下的初始 值為1 ;設(shè)置迭代系數(shù)在零次迭代下的初始值為0 ;設(shè)置迭代限制條件在零次迭代下的初始 值為1 ;控制模塊,用于根據(jù)設(shè)置模塊設(shè)置的初始值計算錯誤值多項式的輔助多項式、錯誤 位置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件;第一計算模塊,用于根據(jù)設(shè)置模塊 設(shè)置的初始值以及控制模塊的計算結(jié)果計算錯誤值多項式;第二計算模塊,用于根據(jù)設(shè)置 模塊設(shè)置的初始值以及控制模塊和第一計算模塊的計算結(jié)果計算錯誤位置多項式,獲得錯 誤位置多項式。本發(fā)明實施例的BCH碼譯碼方法和裝置,根據(jù)BCH 二進制碼制的特點,對riBM譯 碼方法進行了兩點優(yōu)化,即當?shù)蝦為奇數(shù)次時,差值λ (r)恒為0,因此,可以將迭代2t 次迭代減少為t次;且RS碼譯碼中需要用錯誤值多項式ω (r)糾錯,而對于二進制BCH碼, 其糾正值必為1,因此錯誤值多項式ω (r)可以被簡化。如此,本發(fā)明實施例在占用較少的 FPGA資源并保證高速實現(xiàn)的情況下,實現(xiàn)了 BCH譯碼方法中的難點,即根據(jù)伴隨式求錯誤 位置多項式,并且,通過對riBM算法的改進,使并行BM迭代算法在資源和速度上都得到了 優(yōu)化。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,并不 構(gòu)成對本發(fā)明的限定。在附圖中圖1為本發(fā)明實施例的BCH碼譯碼方法流程圖;圖2為圖1所示實施例的步驟102的流程圖;圖3為本發(fā)明實施例BCH碼譯碼裝置的組成示意圖;圖4為本發(fā)明實施例的第一計算模塊的電路組成示意圖;圖5為圖4所示的第一計算模塊的簡化示意圖6為本發(fā)明實施例的多個第一計算模塊的電路組成示意圖;圖7為本發(fā)明實施例的控制模塊的電路組成示意圖;圖8為本發(fā)明實施例的第二計算模塊的電路組成示意圖;圖9為圖6所示的第二計算模塊的簡化示意圖;圖10為本發(fā)明實施例的多個第二計算模塊的電路組成示意圖;圖11為本發(fā)明實施例的第二計算單元的電路組成示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面結(jié)合實施例和附 圖,對本發(fā)明實施例做進一步詳細說明。在此,本發(fā)明的示意性實施例及其說明用于解釋本 發(fā)明,但并不作為對本發(fā)明的限定。圖1為本發(fā)明實施例提供的一種BCH碼譯碼方法流程圖,在本實施例中,錯誤位置多項式表示為
權(quán)利要求
1.一種BCH碼譯碼方法,其特征在于,所述方法包括 根據(jù)接收碼計算伴隨式;利用迭代算法根據(jù)所述伴隨式計算錯誤位置多項式,包括設(shè)置錯誤位置多項式在零次迭代下的初始值和所述錯誤位置多項式的輔助多項式在 零次迭代下的初始值為零;設(shè)置錯誤值多項式在零次迭代下的初始值和所述錯誤值多項式 的輔助多項式在零次迭代下的初始值為所述伴隨式的系數(shù);設(shè)置錯誤位置多項式在零次迭 代零次冪下的初始值和所述錯誤位置多項式的輔助多項式在零次迭代零次冪下的初始值 為1 ;設(shè)置迭代系數(shù)在零次迭代下的初始值為0 ;設(shè)置迭代限制條件在零次迭代下的初始值 為1 ;根據(jù)上述設(shè)置的初始值計算錯誤值多項式的輔助多項式、錯誤位置多項式的輔助多項 式、迭代系數(shù)以及迭代限制條件;根據(jù)上述設(shè)置的初始值以及根據(jù)上述計算獲得的錯誤值多項式的輔助多項式、錯誤位 置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件,計算錯誤值多項式;根據(jù)上述設(shè)置的初始值以及根據(jù)上述計算獲得的計算錯誤值多項式、錯誤值多項式的 輔助多項式、錯誤位置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件計算錯誤位置多 項式,獲得錯誤位置多項式;利用錢式搜索算法根據(jù)所述錯誤位置多項式確定錯誤位置; 對所述確定的錯誤位置上的錯誤值進行糾錯得到恢復(fù)碼。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于錯誤位置多項式在零次迭代下的初始值和所述錯誤位置多項式的輔助多項式在零次迭代下的初始值為零表示為Xi(O) =^(O) =0其中,i = 1,2,......t;錯誤值多項式在零次迭代下的初始值和所述錯誤值多項式的輔助多項式在零次迭代 下的初始值為所述伴隨式的系數(shù),數(shù)學(xué)式表示為= &(O) = S,,其中,Si為所述伴隨式的 系數(shù),i = 0,1,...,2t-l ;錯誤位置多項式在零次迭代零次冪下的初始值和所述錯誤位置多項式的輔助多項式 在零次迭代零次冪下的初始值為1,數(shù)學(xué)式表示為Xci(O) = b0(0) = 1 ; 迭代系數(shù)在零次迭代下的初始值為0,數(shù)學(xué)式表示為k(0) = 0 ; 迭代限制條件在零次迭代下的初始值為1,數(shù)學(xué)式表示為Y (0) = 1。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)上述設(shè)置的初始值計算錯誤值多項 式的輔助多項式、錯誤位置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件,包括根據(jù)所述設(shè)置的初始值和下式計算錯誤值多項式的輔助多項式、錯誤位置多項式的輔 助多項式、迭代系數(shù)以及迭代限制條件 如果Mr)興0并且k(r)彡0,則&(r + l) = i(r),(/ = 0,l,……, )‘ i.θ( (r +1) = (r), ( 二 0,1,……2卜 1);否貝丨j,Y{r + \) = 50{r) k{r + 1) = -k(r)(r+ 1) = V, (0,(/ = 0,1,……,/)4θ + 1) = Αθ·),( · = 0,1,……2 -1),其中,r 為 /(r + l) = /(r) k(r + l) = k(r) + l迭代次數(shù),i為次方項。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)上述設(shè)置的初始值以及根據(jù)上述計 算獲得的錯誤值多項式的輔助多項式、錯誤位置多項式的輔助多項式、迭代系數(shù)以及迭代 限制條件,計算錯誤值多項式,包括利用下式,根據(jù)上述設(shè)置的初始值以及經(jīng)過上述計算獲得錯誤值多項式的輔助多項 式、錯誤位置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件,計算錯誤值多項式;
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,根據(jù)上述設(shè)置的初始值以及根據(jù)上述計 算獲得的計算錯誤值多項式、錯誤值多項式的輔助多項式、錯誤位置多項式的輔助多項式、 迭代系數(shù)以及迭代限制條件計算錯誤位置多項式,獲得錯誤位置多項式,包括利用下式,根據(jù)上述設(shè)置的初始值以及經(jīng)過上述計算獲得的計算錯誤值多項式、錯誤 值多項式的輔助多項式、錯誤位置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件計算 錯誤位置多項式
6.一種BCH碼譯碼裝置,其特征在于,所述裝置包括 第一計算單元,用于根據(jù)接收碼計算伴隨式;第二計算單元,用于利用迭代算法根據(jù)所述伴隨式計算錯誤位置多項式,該第二計算 單元包括設(shè)置模塊,用于設(shè)置錯誤位置多項式在零次迭代下的初始值和所述錯誤位置多項式的 輔助多項式在零次迭代下的初始值為零;設(shè)置錯誤值多項式在零次迭代下的初始值和所述 錯誤值多項式的輔助多項式在零次迭代下的初始值為所述伴隨式的系數(shù);設(shè)置錯誤位置多 項式在零次迭代零次冪下的初始值和所述錯誤位置多項式的輔助多項式在零次迭代零次 冪下的初始值為1 ;設(shè)置迭代系數(shù)在零次迭代下的初始值為0 ;設(shè)置迭代限制條件在零次迭 代下的初始值為1 ;控制模塊,用于根據(jù)設(shè)置模塊設(shè)置的初始值計算錯誤值多項式的輔助多項式、錯誤位 置多項式的輔助多項式、迭代系數(shù)以及迭代限制條件;第一計算模塊,用于根據(jù)設(shè)置模塊設(shè)置的初始值以及控制模塊的計算結(jié)果計算錯誤值 多項式;第二計算模塊,用于根據(jù)設(shè)置模塊設(shè)置的初始值以及控制模塊和第 一計算模塊的計算結(jié)果計算錯誤位置多項式,獲得錯誤位置多項式; 確定單元,用于利用錢式搜索算法根據(jù)所述錯誤位置多項式確定錯誤位置; 糾錯單元,用于對所述確定單元確定的錯誤位置上的錯誤值進行糾錯得到恢復(fù)碼。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述設(shè)置模塊設(shè)置的初始值具體為 錯誤位置多項式在零次迭代下的初始值和所述錯誤位置多項式的輔助多項式在零次迭代下的初始值為零表示為Xi(O) =^(O) =0其中,i = 1,2,......t;錯誤值多項式在零次迭代下的初始值和所述錯誤值多項式的輔助多項式在零次迭代 下的初始值為所述伴隨式的系數(shù),數(shù)學(xué)式表示為4(0) = ^,(0) = ^,.,其中,Si為所述伴隨式的 系數(shù),i = 0,1,...,2t-l ;錯誤位置多項式在零次迭代零次冪下的初始值和所述錯誤位置多項式的輔助多項式 在零次迭代零次冪下的初始值為1,數(shù)學(xué)式表示為Xci(O) = b0(0) = 1 ; 迭代系數(shù)在零次迭代下的初始值為0,數(shù)學(xué)式表示為k(0) = 0 ; 迭代限制條件在零次迭代下的初始值為1,數(shù)學(xué)式表示為Y (0) = 1。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述控制模塊包括 接收子模塊,用于接收所述設(shè)置模塊設(shè)置的迭代限制條件的初始值,以及第零次冪的 錯誤值多項式的系數(shù);判斷子模塊,用于根據(jù)所述第零次冪的錯誤值多項式的系數(shù)和所述迭代限制條件的 初始值,判斷所述第零次冪的錯誤值多項式的系數(shù)是否為零,以及所述迭代限制條件的初 始值是否大于等于零,并據(jù)此產(chǎn)生下一次迭代的控制指令、以及下一次迭代的迭代系數(shù) Y (r+Ι);其中,下一次迭代的控制指令包括下一次迭代的錯誤位置多項式的輔助多項式的系 Wb^r+ \)、下一次迭代的錯誤值多項式的輔助多項式的系數(shù)+ 、以及下一次迭代的迭 代限制條件k(r+l);其中,如果Mr)乒0并且k(r)彡0,則其中,r為迭代次數(shù),i為次方項。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一計算模塊包括2t個第一計算子 模塊,分別根據(jù)公式Si (r +1) 二 Y{r). δ~+2 (r) - S~(r)· ΘΜ (r), (/ = 0,1,2,...... ,2/-1)進行第 0 次冪至第 2t_l 次冪的迭代運算,其中,每一個第一計算子模塊包括第一乘法器,用于對上一次冪的錯誤值多項式的系數(shù)和本次迭代的迭代系數(shù)進行乘法 運算;第一數(shù)據(jù)選擇器,用于根據(jù)控制模塊的控制指令,從所述上一次冪的錯誤值多項式的 系數(shù)以及錯誤值多項式的輔助多項式的系數(shù)中選擇一個;第一寄存器,用于存儲所述第一數(shù)據(jù)選擇器的輸出,作為所述第一數(shù)據(jù)選擇器的錯誤 值多項式的輔助多項式的系數(shù)的輸入;第二乘法器,用于對第零次冪的錯誤值多項式的系數(shù)和所述錯誤值多項式的輔助多項 式的系數(shù)進行乘法運算;第一加法器,用于對所述第一乘法器的乘法運算結(jié)果和所述第二乘法器的乘法運算結(jié) 果進行相加,得到錯誤值多項式的系數(shù);
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第二計算模塊包括t個第二計算子 模塊,分別根據(jù)公式
全文摘要
本發(fā)明實施例提供一種BCH碼譯碼方法和裝置,所述方法包括根據(jù)接收碼計算伴隨式;利用迭代算法根據(jù)所述伴隨式求解錯誤位置多項式;利用錢式搜索算法根據(jù)所述錯誤位置多項式確定錯誤位置;對所述確定的錯誤位置上的錯誤值進行糾錯得到恢復(fù)碼。本發(fā)明實施例的BCH碼譯碼方法和裝置通過對riBM算法的改進,使并行BM迭代算法在資源和速度上都得到了優(yōu)化。
文檔編號H03M13/15GK102045073SQ20091020554
公開日2011年5月4日 申請日期2009年10月26日 優(yōu)先權(quán)日2009年10月26日
發(fā)明者張琴, 梁劍, 邢繼元 申請人:成都市華為賽門鐵克科技有限公司