一種存儲系統(tǒng)糾刪碼編碼、解碼電路及編解碼電路的制作方法
【專利說明】
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息存儲領(lǐng)域,尤其涉及一種存儲系統(tǒng)糾刪碼編碼、解碼電路及編解碼電路。
【【背景技術(shù)】】
[0002]在數(shù)據(jù)傳輸和數(shù)據(jù)存儲領(lǐng)域,糾刪碼都是一個很重要的概念。糾刪碼的原理是以M個數(shù)據(jù)塊,計算出N個校驗(yàn)數(shù)據(jù)塊。在一共M+N個數(shù)據(jù)塊中,只要丟失的數(shù)據(jù)塊不超過N個,就可以恢復(fù)出全部原始數(shù)據(jù)。尤其在數(shù)據(jù)存儲領(lǐng)域,是保證數(shù)據(jù)可靠性很重要的一個手段。在存儲領(lǐng)域,一般如果可以容忍三盤失效,就已經(jīng)達(dá)到了系統(tǒng)的可靠性指標(biāo)。
[0003]目前糾刪碼多使用RS編碼等方式實(shí)現(xiàn),可以實(shí)現(xiàn)任意大小的M+N。這種M和N任選的方式,靈活性很大,但實(shí)現(xiàn)開銷也很大。以常用的RS碼為例,實(shí)現(xiàn)M= 15,N = 3的單字節(jié)糾刪碼,需要幾十個時鐘周期延時。
【
【發(fā)明內(nèi)容】
】
[0004]為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種存儲系統(tǒng)糾刪碼編碼、解碼電路,以提高編碼或解碼的效率。
[0005]一種存儲系統(tǒng)糾刪碼編碼電路,包括三個糾刪碼編碼電路單元,所述糾刪碼編碼電路單元包括用于輸入待編碼數(shù)據(jù)的輸入端口、以及輸出端口,所述糾刪碼編碼電路用于將輸入的待編碼數(shù)據(jù)與對應(yīng)系數(shù)用伽羅華域乘法進(jìn)行相乘,得到伽羅華域乘法輸出,并將多個伽羅華域乘法輸出進(jìn)行異或,得到校驗(yàn)數(shù)據(jù),任意兩個糾刪碼編碼電路單元的系數(shù)之間線性無關(guān)。
[0006]在一個實(shí)施例中,所述三個糾刪碼編碼電路單元為第一糾刪碼編碼電路單元、第二糾刪碼編碼電路單元和第三糾刪碼編碼電路單元;
[0007]所述第一糾刪碼編碼電路單元具有異或邏輯器件,在所述第一糾刪碼編碼電路單元中,所述伽羅華域乘法輸出為輸入的所述待編碼數(shù)據(jù);
[0008]所述第二糾刪碼編碼電路單元具有異或邏輯器件和伽羅華域乘法器,在所述第二糾刪碼編碼電路單元中,一部分所述伽羅華域乘法輸出由所述伽羅華域乘法器將輸入的對應(yīng)的待編碼數(shù)據(jù)與對應(yīng)的系數(shù)進(jìn)行相乘得到,一部分所述伽羅華域乘法輸出為對應(yīng)的待編碼數(shù)據(jù);
[0009]所述第三糾刪碼編碼電路單元具有異或邏輯器件和伽羅華域乘法器,在所述第三糾刪碼編碼電路單元中,一部分所述伽羅華域乘法輸出由所述伽羅華域乘法器將輸入的對應(yīng)的待編碼數(shù)據(jù)與對應(yīng)的系數(shù)進(jìn)行相乘得到,一部分所述伽羅華域乘法輸出為對應(yīng)的待編碼數(shù)據(jù)。
[0010]本發(fā)明還提供了一種與所述的存儲系統(tǒng)糾刪碼編碼電路配合的存儲系統(tǒng)糾刪碼解碼電路,包括:第一糾刪碼編碼電路單元、第二糾刪碼編碼電路單元、第三糾刪碼編碼電路單元和兩個譯碼乘法模塊,所述譯碼乘法模塊包括第一輸入端、第二輸入端、第三輸入端、第四輸入端、第五輸入端、第六輸入端、第七輸入端、第八輸入端、第九輸入端和輸出端;
[0011]所述譯碼乘法模塊用于將第一伽羅華域乘法值、第二伽羅華域乘法值、第三伽羅華域乘法值、第四伽羅華域乘法值、第五伽羅華域乘法值和第六伽羅華域乘法值進(jìn)行異或;其中,所述第一伽羅華域乘法值為第一輸入端、第五輸入端與第九輸入端的伽羅華域乘法值,第二伽羅華域乘法值為第二輸入端、第六輸入端與第七輸入端的伽羅華域乘法值,第三伽羅華域乘法值為第三輸入端、第四輸入端與第八輸入端的伽羅華域乘法值,第四伽羅華域乘法值為第三輸入端、第五輸入端與第七輸入端的伽羅華域乘法值;第五伽羅華域乘法值為第二輸入端、第四輸入端與第九輸入端的伽羅華域乘法值;第六伽羅華域乘法值為第一輸入端、第六輸入端與第八輸入端的伽羅華域乘法值;
[0012]將所述待編碼數(shù)據(jù)中丟失的數(shù)據(jù)用零替代,分別輸入所述存儲系統(tǒng)糾刪碼解碼電路的第一糾刪碼編碼電路單元、第二糾刪碼編碼電路單元和第三糾刪碼編碼電路單元,分另Ij得到第一中間數(shù)據(jù)、第二中間數(shù)據(jù)和第三中間數(shù)據(jù);
[0013]將所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)和第三中間數(shù)據(jù)分別與所述存儲系統(tǒng)糾刪碼編碼電路產(chǎn)生的第一糾刪碼編碼電路單元產(chǎn)生的第一校驗(yàn)數(shù)據(jù)、第二糾刪碼編碼電路單元產(chǎn)生的第二校驗(yàn)數(shù)據(jù)、第三糾刪碼編碼電路單元產(chǎn)生的第三校驗(yàn)數(shù)據(jù)異或,分別得到第一計算數(shù)據(jù)、第二計算數(shù)據(jù)和第三計算數(shù)據(jù);
[0014]第一譯碼乘法模塊的第一輸入端、第二輸入端和第三輸入端分別輸入第一個丟失的數(shù)據(jù)、第二個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第一糾刪碼編碼電路單元的系數(shù);所述第一譯碼乘法模塊的第四輸入端、第五輸入端和第六輸入端分別輸入第一個丟失的數(shù)據(jù)、第二個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第二糾刪碼編碼電路單元的系數(shù);所述第一譯碼乘法模塊的第七輸入端、第八輸入端和第九輸入端分別輸入第一個丟失的數(shù)據(jù)、第二個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第三糾刪碼編碼電路單元的系數(shù);
[0015]第二譯碼乘法模塊的第二輸入端和第三輸入端分別輸入第二個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第一糾刪碼編碼電路單元的系數(shù);所述第二譯碼乘法模塊的第五輸入端和第六輸入端分別輸入第二個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第二糾刪碼編碼電路單元的系數(shù);所述第二譯碼乘法模塊的第八輸入端和第九輸入端分別輸入第二個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第三糾刪碼編碼電路單元的系數(shù);第二譯碼乘法模塊的第一輸入端、第四輸入端和第七輸入端分別輸入所述第一計算數(shù)據(jù)、第二計算數(shù)據(jù)和第三計算數(shù)據(jù)。
[0016]在一個實(shí)施例中,還包括第三譯碼乘法模塊和第四譯碼乘法模塊;
[0017]所述第三譯碼乘法模塊的第一輸入端和第三輸入端分別輸入第一個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第一糾刪碼編碼電路單元的系數(shù);所述第三譯碼乘法模塊的第四輸入端和第六輸入端分別輸入第一個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第二糾刪碼編碼電路單元的系數(shù);所述第三譯碼乘法模塊的第七輸入端和第九輸入端分別輸入第一個丟失的數(shù)據(jù)和第三個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第三糾刪碼編碼電路單元的系數(shù);第三譯碼乘法模塊的第二輸入端、第五輸入端和第八輸入端分別輸入所述第一計算數(shù)據(jù)、第二計算數(shù)據(jù)和第三計算數(shù)據(jù);
[0018]所述第四譯碼乘法模塊的第一輸入端和第二輸入端分別輸入第一個丟失的數(shù)據(jù)和第二個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第一糾刪碼編碼電路單元的系數(shù);所述第四譯碼乘法模塊的第四輸入端和第五輸入端分別輸入第一個丟失的數(shù)據(jù)和第二個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第二糾刪碼編碼電路單元的系數(shù);所述第四譯碼乘法模塊的第七輸入端和第八輸入端分別輸入第一個丟失的數(shù)據(jù)和第二個丟失的數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置對應(yīng)的第三糾刪碼編碼電路單元的系數(shù);第四譯碼乘法模塊的第四輸入端、第六輸入端和第九輸入端分別輸入所述第一計算數(shù)據(jù)、第二計算數(shù)據(jù)和第三計算數(shù)據(jù)。
[0019]在一個實(shí)施例中,還包括第一伽羅華域到二進(jìn)制域映射表、第二伽羅華域到二進(jìn)制域映射表、第三伽羅華域到二進(jìn)制域映射表、第四伽羅華域到二進(jìn)制域映射表、第一減法器、第二減法器和第三減法器,所述第一伽羅華域到二進(jìn)制域映射表、第二伽羅華域到二進(jìn)制域映射表、第三伽羅華域到二進(jìn)制域映射表和第四伽羅華域到二進(jìn)制域映射表的輸入分別與第一譯碼乘法模塊、第二譯碼乘法模塊、第三譯碼乘法模塊和第四譯碼乘法模塊的輸出連接,所述第一減法器用于將所述第二伽羅華域到二進(jìn)制域映射表的輸出減去第一伽羅華域到二進(jìn)制域映射表的輸出,所述第二減法器用于將所述第三伽羅華域到二進(jìn)制域映射表的輸出減去第一伽羅華域到二進(jìn)制域映射表的輸出,所述第三減法器用于將所述第四伽羅華域到二進(jìn)制域映射表的輸出減去第一伽羅華域到二進(jìn)制域映射表的輸出。
[0020]在一個實(shí)施例中,還包括第一二進(jìn)制域到伽羅華域映射表、第二二進(jìn)制域到伽羅華域映射表和第三二進(jìn)制域到伽羅華域映射表,所述第一二進(jìn)制域到伽羅華域映射表、第二二進(jìn)制域到伽羅華域映射表和第三二進(jìn)制域到伽羅華域映射表的輸入分別與所述第一減法器、第二減法器和第三減法器的輸出連接。
[0021 ] 在一個實(shí)施例中,還包括至少兩個M路選擇器,M路選擇器用于將輸入的丟失數(shù)據(jù)在所述待編碼數(shù)據(jù)中的位置信息,輸出為對應(yīng)的糾刪碼編碼電路單元的系數(shù)至譯碼乘法模塊的對應(yīng)輸入端;其中,M為待編碼數(shù)據(jù)的個數(shù)。
[0022]在一個實(shí)施例中,
[0023]將M個待編碼數(shù)據(jù)、第一校驗(yàn)數(shù)據(jù)、第二校驗(yàn)數(shù)據(jù)和第三校驗(yàn)數(shù)據(jù)依次排列組成一個M+3個數(shù)據(jù)的數(shù)組;所述數(shù)據(jù)的M+3個數(shù)據(jù)對應(yīng)的第一組系數(shù)中的系數(shù)依次為enl_l、6111_2吣enl_M、8’ hl、8’ h0、8’ h0 ;所述數(shù)據(jù)的M+3個數(shù)據(jù)對應(yīng)的第二組系數(shù)中的系數(shù)依次為en2_l、en2_2-en2_M、8’ h0、8’ hl、8’ hO ;所述數(shù)據(jù)的M+3個數(shù)據(jù)對應(yīng)的第三組系數(shù)中的系數(shù)依次為 en3_l、en3_2…en3_M、8,h0、8’ h0、8’ hi ;其中,enl_l、enl_2…enl_M 依次為第一糾刪碼編碼電路單元的M個待編碼數(shù)據(jù)對應(yīng)的系數(shù),en2_l、en2_2…6112_11依次為第一糾刪碼編碼電路單元的M個待編碼數(shù)據(jù)對應(yīng)的系數(shù),en3_l、en3_2…en3_M依次為第一糾刪碼編碼電路單元的M個待編碼數(shù)據(jù)對應(yīng)的系數(shù);
[0024]若所述數(shù)組中的某個數(shù)據(jù)丟失則用零替代所述丟失的數(shù)據(jù);
[0025]第一譯碼乘法模塊的第一輸入端、第