一種基於BCH解碼器的IBM算法的優化方法與流程
2023-07-03 08:01:01 1
本發明涉及一種基於bch解碼器的ibm算法的優化方法,屬於高速存儲的技術領域。
背景技術:
對於一個1kbyte數據可糾t個錯誤的二元bch碼,求得σ(x)的過程就是由第一步得到的2t個伴隨式多項式s1,s2,…,s2t來確定錯誤位置多項式σ(x)=1+σ1x+σ2x2+σ3x3+…+σtxt的係數σ1,σ2,σ3,…σt,得到這個多項式後,就可以通過錢搜索來確定錯誤發生的位置並進行糾正。求解錯誤位置多項式一般採用無求逆的ibm((inversionlessbm))算法結構,ibm算法的電路實現方案如圖1所示,其中表示有限域乘法器,表示有限域加法器。ecc算法中,ibm模塊是解碼器中佔用fpga晶片中lut資源最多的模塊。
技術實現要素:
針對現有技術存在的技術問題,本發明提出一種基於bch解碼器的ibm算法的優化方法。
本發明的技術方案如下:
一種基於bch解碼器的ibm算法的優化方法,在ibm算法中通過乘法器縱向復用和乘法器橫向復用以減少lut的使用率。本發明利用流水線思想,通過犧牲運算速度能夠增加更多的數據通道,進一步提高數據的讀寫速率。
根據本發明優選的,所述的乘法器縱向復用時,所述乘法器數量為t+1。
根據本發明優選的,所述的乘法器橫向復用時,所述乘法器數量為3個。
根據本發明優選的,在ibm算法中,當伴隨式(s1,s2,…,s2t)每次移動進入ibm模塊迭代生成σ1,σ2,σ3,…σt時,計算m1,m2,m3中所有的乘法器和加法器;
乘法器縱向復用:將所述m1,m2,m3中的乘法器在不同時鐘周期進行復用,共需要t+1個乘法器;
所述乘法器橫向復用:所述ibm算法中包括3個乘法器,所述m1中的t+1個乘法器共用一個,所述m2中的t+1個乘法器共用一個,所述m3中t個乘法器共用一個,稱為橫向復用。
本發明的優勢在於:
本發明涉及實現高速存儲和通信領域的糾錯編碼ecc算法,根據圖1,ibm算法中具有3t+2個乘法器,一個乘法器大約佔用100個lut,減少ibm中乘法器的使用,便可以有效的降低lut的使用,增加了ecc的性能。本發明提出了兩種基於已有二元bch碼錯誤位置多項式的ibm算法的優化方案,減小了利用資源,提高了ecc的運算性能。
附圖說明
圖1是ibm算法的電路原理圖;
圖2是本發明所述優化方法與現有技術分別所用資源對比表。
具體實施方式
下面結合實施例和說明書附圖對本發明做詳細的說明,但不限於此。
如圖1、2所示。
實施例1、
一種基於bch解碼器的ibm算法的優化方法,在ibm算法中通過乘法器縱向復用和乘法器橫向復用以減少lut的使用率。
實施例2、
如實施例1所述的一種基於bch解碼器的ibm算法的優化方法,其區別在於,所述的乘法器縱向復用時,所述乘法器數量為t+1。所述的乘法器橫向復用時,所述乘法器數量為3個。
實施例3、
如實施例2所述的一種基於bch解碼器的ibm算法的優化方法,其區別在於,在ibm算法中,當伴隨式(s1,s2,…,s2t)每次移動進入ibm模塊迭代生成σ1,σ2,σ3,…σt時,計算m1,m2,m3中所有的乘法器和加法器;
乘法器縱向復用:將所述m1,m2,m3中的乘法器在不同時鐘周期進行復用,共需要t+1個乘法器;
所述乘法器橫向復用:所述ibm算法中包括3個乘法器,所述m1中的t+1個乘法器共用一個,所述m2中的t+1個乘法器共用一個,所述m3中t個乘法器共用一個,稱為橫向復用。
應用例、
以在gf(2m)伽羅華域下bch(8528,8192,24)為例,此時m=14,t=24,伴隨式(s1,s2,…,s2t)總共有48個。根據圖1中電路實現法案來設計ibm。
根據ibm算法,奇次伴隨式輸入後得到δ不為0,需要計算得到,此時需要m1乘法器,偶次伴隨式輸入時δ為0,不需要計算,此時需要m1乘法器,可以減少乘法器的利用。
方法一:第1個周期更新伴隨式序列r0,r1,…rt;第2個周期將r0,r1,…rt和σ0,σ1,…σt分別作為乘法器的兩個乘數,;第3、4個周期,分別運算有限域乘法器m1的乘法和加法;第5個周期得到乘法器m1的結果;第6個周期經過有限域加法a1得到δ;第7個周期將σ0,σ1,…σt和γ分別作為乘法器的兩個乘數;第8、9個周期,分別運算有限域乘法器m2的乘法和加法;第10個周期得到乘法器m2的結果;第11個周期將λ0,λ1,…λt和δ分別作為乘法器的兩個乘數;第12、13個周期,分別運算有限域乘法器m3的乘法和加法;第14個周期得到乘法器m3的結果;第15個周期輸入更新伴隨式序列r,γ=δ,由於運算後δ為0,所以此處直接對δ賦值δ=0,經過運算得到λ,σ,l,k=k+1的值。第16到23周期重複第7到14周期的運算;第24個周期經過運算得到λ,σ,l,k=k+1的值。這樣,ibm算法通過復用乘法器的方法,最後只需要t+1個乘法器,計算一次ibm需要24*24=576個周期。
方法二:在方法一的基礎上進一步復用,比如第二個周期中需要將r0,r1,…rt和σ0,σ1,…σt分別作為t+1個乘法器的乘數,而方法二中需要分別將r0和σ0作為第一個乘法器的乘數,得到結果之後,再將r1和σ1作為該乘法器的乘數,依次類推,直到所有的乘法計算完畢,再相加求得δ,之後再計算m2和m3中所有的乘法運算,最後只需要3個周期。計算1次ibm需要5617個周期。
經過仿真,上述三種方案需要lut的情況如圖2所示。因此說明,經過優化,有效減少了ecc的資源佔用率,進而提高的高速存儲器的存儲性能。
技術特徵:
技術總結
一種基於BCH解碼器的IBM算法的優化方法,在IBM算法中通過乘法器縱向復用和乘法器橫向復用以減少LUT的使用率。在IBM算法中,當伴隨式(S1,S2,…,S2t)每次移動進入IBM模塊迭代生成σ1,σ2,σ3,…σt時,計算m1,m2,m3中所有的乘法器和加法器;乘法器縱向復用:將所述m1,m2,m3中的乘法器在不同時鐘周期進行復用,共需要t+1個乘法器;所述乘法器橫向復用:所述IBM算法中包括3個乘法器,所述m1中的t+1個乘法器共用一個,所述m2中的t+1個乘法器共用一個,所述m3中t個乘法器共用一個,稱為橫向復用。本發明提出了基於已有二元BCH碼錯誤位置多項式的IBM算法的優化方案,減小了利用資源,提高了ECC的運算性能。
技術研發人員:王培培;趙瑞東;陳乃闊;耿士華
受保護的技術使用者:山東超越數控電子有限公司
技術研發日:2017.03.31
技術公布日:2017.07.18