本發(fā)明屬于存儲器和糾錯編碼領(lǐng)域中的bch譯碼,具體涉及一種低資源損耗、低延遲的bch譯碼方法。
背景技術(shù):
1、存儲器在空間中常常會因?yàn)槎喾N因素而發(fā)生錯誤的隨機(jī)翻轉(zhuǎn),只會影響存儲內(nèi)容是否正確,而不損害器件本身的錯誤是軟錯誤。減少軟錯誤的影響有很多種方法,其中廣泛應(yīng)用于工業(yè)與民用領(lǐng)域的方法是ecc(error?correction?code),即通過糾錯算法來給每一幀固定數(shù)據(jù)位數(shù)的數(shù)據(jù)添加少量冗余校驗(yàn)位,在寫入存儲器之前按照預(yù)定的糾錯算法進(jìn)行編碼,讀出存儲器以后進(jìn)行解碼,來判別是否出現(xiàn)錯誤,并找到對應(yīng)的錯誤位置進(jìn)行糾錯[1]。而針對多比特錯誤,需要性能更強(qiáng)大的糾錯編碼如bch碼。
2、當(dāng)下占據(jù)消費(fèi)電子最大出貨量的往往是mcu級的嵌入式產(chǎn)品,在這些產(chǎn)品中,儲存程序與數(shù)據(jù)的存儲單元一般容量在kb和mb級別,有可能在一幀數(shù)據(jù)發(fā)生多位錯誤且錯誤圖樣較少。對于這種存儲量較小但存儲內(nèi)容重要且容錯率較小、存儲靠近內(nèi)核且訪存速度要求高的嵌入式存儲器件,一般選用bch并行化編譯碼電路作為ecc方案。在對電路進(jìn)行優(yōu)化的情況下可以取得良好的延時和頻率性能,同時將資源損耗控制在可以接受的范圍內(nèi)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提出了一種面向高誤碼率存儲器的低資源損耗、低延遲頻率bch譯碼方法。
2、本發(fā)明采用的技術(shù)方案如下:
3、一種面向高誤碼率存儲器的bch譯碼方法,其特征在于,包括在有限域規(guī)則下進(jìn)行的如下步驟:
4、1)將外部輸入的碼字多項(xiàng)式r(x),按照公式(1)、(2)采用伴隨式計(jì)算電路計(jì)算伴隨式si即si(x),(aj)i表示有限域本原多項(xiàng)式aj的i次冪,注意在該有限域的所有多項(xiàng)式中,系數(shù)(在式(1)中指r0~rn-1即碼字二進(jìn)制值)指二進(jìn)制值,而0,x~xn-1則表示二進(jìn)制值的位置:
5、r(x)=r0+r1x……+rn-1xn-1??????????式(1)
6、
7、2)采用差錯方程生成電路按照公式(3)(4)得到差錯方程系數(shù)δj,其中t為最大糾錯能力,v指錯誤位的順序引索:
8、sj+v+δ1?sj+v-1+…+?δv-1sj+1+δvsj=0?1≤j≤2t-v??式(3)
9、
10、3)復(fù)用驗(yàn)證方程子電路的chien搜索電路來求解差錯方程,最終得到出錯位置;其中設(shè)定chien搜索電路的復(fù)用周期為m,其中m的值在1到n之間,通過計(jì)數(shù)器控制每一個時鐘周期搜索n/m個位置。
11、進(jìn)一步,伴隨式生成電路由位異或器來進(jìn)行模加計(jì)算,將外部輸入的碼字多項(xiàng)式r(x),以二進(jìn)制邏輯序列形式作為使能邏輯信號,用于控制異或器輸入的選通開關(guān),碼字中r(x)對應(yīng)的每一位二進(jìn)制數(shù)ri,控制其所在位數(shù)i所對應(yīng)的有限域中的元素ai的二進(jìn)制表示序列是否作為異或器輸入。
12、進(jìn)一步,差錯方程生成電路采用常數(shù)模乘器與模加運(yùn)算器(位異或)進(jìn)行差錯方程計(jì)算,常數(shù)模乘器是根據(jù)有限域中本原多項(xiàng)式相關(guān)的降冪恒等式,將多項(xiàng)式乘法結(jié)果在實(shí)數(shù)域和有限域的系數(shù)關(guān)系進(jìn)行映射,并根據(jù)所用的常數(shù)對映射關(guān)系進(jìn)行邏輯優(yōu)化轉(zhuǎn)化為純異或邏輯。
13、進(jìn)一步,計(jì)數(shù)器計(jì)數(shù)為1的時候輸入第1組,計(jì)數(shù)為m時輸入第m組,若n/m有余數(shù),則搜索m+1個周期,分成m+1組,將該組中可能的錯誤位置對應(yīng)的有限域元素一一代入差錯方程中進(jìn)行驗(yàn)證,在錯誤個數(shù)處于糾錯能力范圍之內(nèi)的前提下,若方程值為零,代表此處所代表的位置發(fā)生了錯誤。
14、本發(fā)明的有益效果如下:
15、本發(fā)明基于皮特森譯碼理論,對于n位編碼字長度、k位數(shù)據(jù)位、t位糾錯能力的(n,k,t)bch碼,通過復(fù)用錢氏搜索電路的驗(yàn)證方程子電路,結(jié)合伴隨式生成電路、差錯方程生成電路和計(jì)數(shù)器實(shí)現(xiàn)bch譯碼,與以往查表譯碼法、bm(berlekamp-massey)迭代法不同的是,本發(fā)明使譯碼器電路面積得到顯著降低,同時,可以自行調(diào)整錢氏搜索電路驗(yàn)證方程子電路的復(fù)用情況,結(jié)合實(shí)際場景,達(dá)到低譯碼拍次、低資源損耗的結(jié)果。實(shí)驗(yàn)表明,本發(fā)明在糾錯能力小于5的情況下具有相當(dāng)高的應(yīng)用價值。
1.一種面向高誤碼率存儲器的bch譯碼方法,其特征在于,包括在有限域規(guī)則下進(jìn)行的如下步驟:
2.如權(quán)利要求1所述的面向高誤碼率存儲器的bch譯碼方法,其特征在于,步驟1)中伴隨式生成電路由位異或器來進(jìn)行模加計(jì)算,將外部輸入的碼字多項(xiàng)式r(x),以二進(jìn)制邏輯序列形式作為使能邏輯信號,用于控制異或器輸入的選通開關(guān),碼字中r(x)對應(yīng)的每一位二進(jìn)制數(shù)ri,控制其所在位數(shù)i所對應(yīng)的有限域中的元素ai的二進(jìn)制表示序列是否作為異或器輸入。
3.如權(quán)利要求1所述的面向高誤碼率存儲器的bch譯碼方法,其特征在于,步驟2)中差錯方程生成電路采用常數(shù)模乘器與模加運(yùn)算器進(jìn)行差錯方程系數(shù)的計(jì)算。
4.如權(quán)利要求3所述的面向高誤碼率存儲器的bch譯碼方法,其特征在于,所述常數(shù)模乘器是根據(jù)有限域中本原多項(xiàng)式相關(guān)的降冪恒等式,將多項(xiàng)式乘法結(jié)果在實(shí)數(shù)域和有限域的系數(shù)關(guān)系進(jìn)行映射,并根據(jù)所用的常數(shù)對映射關(guān)系進(jìn)行邏輯優(yōu)化轉(zhuǎn)化為純異或邏輯。
5.如權(quán)利要求1所述的面向高誤碼率存儲器的bch譯碼方法,其特征在于,步驟3)中計(jì)數(shù)為1的時候輸入第1組,計(jì)數(shù)為m時輸入第m組,若n/m有余數(shù),則搜索m+1個周期,分成m+1組,將該組中可能的錯誤位置對應(yīng)的有限域元素一一代入差錯方程中進(jìn)行驗(yàn)證,在錯誤個數(shù)處于糾錯能力范圍之內(nèi)的前提下,若方程值為零,代表此處所代表的位置發(fā)生了錯誤。
6.如權(quán)利要求5所述的面向高誤碼率存儲器的bch譯碼方法,其特征在于,根據(jù)復(fù)用周期數(shù)m設(shè)置相應(yīng)組數(shù)的輸出和輸出寄存器,每組寄存器的位寬為n/m,即與每個周期chien搜索電路搜索的位置數(shù)相同,同時第x周期中chien搜索電路所搜索的位置集合應(yīng)該與第x個輸出和第x個輸出寄存器中所存的碼字所在位置集合一致。
7.如權(quán)利要求6所述的面向高誤碼率存儲器的bch譯碼方法,其特征在于,在第x周期chien搜索電路得到差錯圖樣后,將該差錯圖樣與第x個輸入寄存器中的碼字做異或運(yùn)算,使該碼字部分中錯誤位進(jìn)行翻轉(zhuǎn)得到正確的碼字,并存儲至第x個輸出寄存器中。