董亮
(齊齊哈爾大學(xué) 通信與電子工程學(xué)院,黑龍江 齊齊哈爾 161006)
基于OLS碼的檢錯(cuò)糾錯(cuò)抗輻射加固設(shè)計(jì)*
董亮
(齊齊哈爾大學(xué) 通信與電子工程學(xué)院,黑龍江 齊齊哈爾 161006)
由輻射粒子引起的多單元翻轉(zhuǎn)(MCUs)已經(jīng)成為了影響存儲(chǔ)器可靠性的一個(gè)主要問(wèn)題。而存儲(chǔ)器抗MCUs的加固方法一般是使用可以糾正多個(gè)錯(cuò)誤的錯(cuò)誤糾正碼(ECCs)。使用了正交拉丁方(OLS)碼的故障容錯(cuò)系統(tǒng)被構(gòu)造用以糾正存儲(chǔ)器中的多個(gè)錯(cuò)誤。OLS碼是一類(lèi)一步大數(shù)邏輯可譯(OS-MLD)碼,可以使用非常簡(jiǎn)單的大數(shù)邏輯電路來(lái)進(jìn)行譯碼。由Verilog硬件描述語(yǔ)言實(shí)現(xiàn)設(shè)計(jì),并且使用ModelSim進(jìn)行了功能驗(yàn)證。
多單元翻轉(zhuǎn);錯(cuò)誤糾正碼;OLS碼;OS-MLD碼
隨著集成電路的進(jìn)步,存儲(chǔ)器越來(lái)越容易受到由來(lái)自地面和太空環(huán)境中輻射粒子影響引起多單元翻轉(zhuǎn)(Multiple Cell Upsets,MCUs)。MCUs可以導(dǎo)致存儲(chǔ)器存儲(chǔ)數(shù)據(jù)的錯(cuò)誤而引起系統(tǒng)失效。因此,需要對(duì)存儲(chǔ)器進(jìn)行抗輻射加固設(shè)計(jì)[1-3]。
目前,(n,k)錯(cuò)誤糾錯(cuò)碼(Error Correction Codes,ECCs)是存儲(chǔ)器中常用的容錯(cuò)技術(shù),其中n是碼長(zhǎng),k是信息位的個(gè)數(shù)。ECC加固技術(shù)是在存儲(chǔ)字的基礎(chǔ)上增加了冗余位用以檢測(cè)和糾正存儲(chǔ)器中發(fā)生的錯(cuò)誤翻轉(zhuǎn)。因此,ECC故障容錯(cuò)系統(tǒng)需要額外的編碼和譯碼電路;而其編碼和譯碼電路的復(fù)雜度又決定了自身的糾正能力和硬件的復(fù)雜度[4-6,12]。
漢明(Hamming)碼是最常用的 ECC碼,它可以用非常少的硬件開(kāi)銷(xiāo)來(lái)糾正存儲(chǔ)器中的錯(cuò)誤。但是,它只能對(duì)單個(gè)錯(cuò)誤進(jìn)行糾正,對(duì)兩個(gè)錯(cuò)誤進(jìn)行探測(cè)。隨著器件工藝尺寸的不斷減小,存儲(chǔ)器中發(fā)生多個(gè)錯(cuò)誤的概率也越來(lái)越高。因此,Hamming碼已經(jīng)不適合用來(lái)對(duì)存儲(chǔ)器進(jìn)行抗輻射加固保護(hù),而需要尋找使用糾正能力較高且額外電路對(duì)存儲(chǔ)器性能影響較少的其他ECC碼來(lái)對(duì)存儲(chǔ)器進(jìn)行抗輻射保護(hù)[7]。
在本設(shè)計(jì)中,使用了基于正交拉丁方的正交拉丁方(OLS)碼來(lái)對(duì)存儲(chǔ)器進(jìn)行抗輻射的加護(hù)設(shè)計(jì)。使用 OLS碼的原因是它屬于一步大數(shù)邏輯可譯(OS-MLD)碼,可以使用簡(jiǎn)單的大數(shù)邏輯譯碼電路來(lái)進(jìn)行多位MCUs的糾正。
正交拉丁方是指兩個(gè)拉丁方在同一位置上的數(shù)依次配置成對(duì)時(shí),如果這兩個(gè)有序數(shù)對(duì)恰好各不相同,則稱(chēng)這兩個(gè)拉丁方互為正交拉丁方。OLS碼正是在此基礎(chǔ)上來(lái)構(gòu)成的[8-9]:對(duì)于糾正能力為 t的 OLS碼,其奇偶校驗(yàn)矩陣H如下式所示:
式(1)中,I2tm是一個(gè) 2tm×2tm的單位矩陣,M1,M2,…,M2t是一系列的m×m2矩陣。M1,M2,…,M2t的矩陣形式如下:
為了滿(mǎn)足H矩陣的正交化,在構(gòu)造H矩陣過(guò)程中采用了 h個(gè)正交拉丁方。因此,M3,…,M2t可通過(guò) h個(gè)正交拉丁方 I1,I2,…,I2t-2變換得到[10]。正交拉丁方 I1,I2,…,I2t-2,lij∈1,2,…,m,如式(4)所示:
對(duì)于每一個(gè)m階正交拉丁方,都存在m個(gè)生成矩陣 Q1,Q2,…,Qm,則向量Vμ是關(guān)于矩陣 Qμ的一維向量:
所以,奇偶校驗(yàn)H矩陣中的子矩陣Mi可以寫(xiě)成關(guān)于向量 Vμ的一維列向量形式,如式(7)所示,其中 V1,V2,…,Vm由正交拉丁方L得到:
根據(jù)上述這些式子可以得到具有 m2個(gè)信息位、2tm個(gè)奇偶校驗(yàn)位和糾正能力為t的OLS碼奇偶校驗(yàn)矩陣H的具體結(jié)構(gòu)。本設(shè)計(jì)中構(gòu)造的OLS的參數(shù)有:信息位k=72=49、階數(shù)m=4、糾正能力 t=2以及冗余位2tm=28。因此,構(gòu)造的OLS碼是一個(gè)(77,49)碼。構(gòu)造這樣的OLS碼選擇了如下兩個(gè)拉丁方:
接著,按照式(1)~式(7),即可設(shè)計(jì)出(77,49)OLS碼的奇偶校驗(yàn)矩陣H,如圖1所示。
圖1 (77,49)OLS碼的奇偶校驗(yàn)矩陣H
使用(77,49)OLS碼構(gòu)造的故障容錯(cuò)系統(tǒng)如圖2所示。將信息位通過(guò)OLS碼的編碼器進(jìn)行編碼后存儲(chǔ)在存儲(chǔ)器中;在讀出的時(shí)候,如果保存的碼字有錯(cuò)誤,通過(guò)OLS碼的譯碼器后,可以糾正這些錯(cuò)誤,從而保證了存儲(chǔ)器中數(shù)據(jù)的正確性。
圖2 構(gòu)造的OLS碼故障容錯(cuò)系統(tǒng)
設(shè)計(jì)的(77,49)OLS碼編碼器可以由輸入向量與生成矩陣執(zhí)行向量乘法來(lái)得到,如圖3所示,因此只需要進(jìn)行簡(jiǎn)單的異或運(yùn)算即可。OLS碼由于其在糾正任意錯(cuò)誤時(shí)都滿(mǎn)足一步大數(shù)邏輯譯碼的條件,因此,其譯碼方式將采用一步大數(shù)邏輯譯碼的方式。(77,49)OLS碼譯碼器如圖4所示,主要有異或門(mén)和大數(shù)邏輯門(mén)來(lái)構(gòu)成進(jìn)行并行譯碼。大數(shù)邏輯門(mén)通過(guò)對(duì)五個(gè)正交校驗(yàn)和Ai進(jìn)行大數(shù)表決[5]:如果正交校驗(yàn)和 Ai中的多數(shù)為 1則輸出1;反之,則輸出 0。
圖3 (77,49)OLS碼編碼器設(shè)計(jì)
本設(shè)計(jì)構(gòu)造的 OLS碼由 Verilog硬件描述語(yǔ)言來(lái)實(shí)現(xiàn),采用的功能驗(yàn)證工具是Mentor公司開(kāi)發(fā)的ModelSim模擬器。首先,假設(shè)要將兩個(gè)49位的數(shù)據(jù)063b7697f8f82和11eef0f387f7d存儲(chǔ)在存儲(chǔ)器中;當(dāng)完成編碼操作后,分別獲得了063b7697f8f8266c2421和11eef0f387f7d79c526c這樣的兩個(gè)碼字,如圖5(a)所示,并將其分別存在存儲(chǔ)器的兩個(gè)字中;然后,進(jìn)行故障注入,先假設(shè)存儲(chǔ)的這兩個(gè)字分別發(fā)生了一個(gè)錯(cuò)誤,即分別變成了063b3697f8f8266c2421和 11eef0f307f7d79c526c這兩個(gè)碼字,經(jīng)過(guò)OLS譯碼器后,能夠獲得正確的輸出值063b7697f8f82和 11eef0f387f7d,如圖5(b)所示;最后,假設(shè)存儲(chǔ)的這兩個(gè)字分別發(fā)生了兩個(gè)錯(cuò)誤,即分別變?yōu)?e3b7697f8f8266c2421和 13eed0f387f7d79c526c這兩個(gè)碼字,在經(jīng)過(guò)編碼器譯碼后,也可以獲得正確的碼字,如圖5(c)所示。模擬驗(yàn)證結(jié)果證明了構(gòu)造的(77,49)OLS的錯(cuò)誤糾正功能是正確的,且可以應(yīng)用于對(duì)存儲(chǔ)器的抗輻射加固保護(hù)。
圖4 (77,49)OLS碼譯碼器設(shè)計(jì)
圖5 (77,49)OLS碼編碼和譯碼操作仿真
應(yīng)用于輻射環(huán)境下的存儲(chǔ)器需要進(jìn)行抗輻射加固來(lái)提高其可靠性能。本設(shè)計(jì)使用了正交拉丁方碼來(lái)對(duì)存儲(chǔ)器進(jìn)行加固,使其能夠糾正存儲(chǔ)器中多位的MCUs。由于正交拉丁方碼是根據(jù)正交拉丁方來(lái)構(gòu)造的,因此它的糾正能力是可調(diào)的(在其生成矩陣中加入多個(gè)正交拉丁方即可實(shí)現(xiàn)糾正能力的提高),這對(duì)于復(fù)雜環(huán)境下的應(yīng)用是非常重要的。本設(shè)計(jì)使用簡(jiǎn)單的異或電路設(shè)計(jì)了(77,49)OLS碼的編碼器,而且使用一步大數(shù)邏輯糾正譯碼來(lái)對(duì)其進(jìn)行譯碼。實(shí)驗(yàn)結(jié)果表明,對(duì)構(gòu)造的OLS碼進(jìn)行編碼和譯碼的故障注入,發(fā)現(xiàn)其可以對(duì)存儲(chǔ)器中的多個(gè)錯(cuò)誤進(jìn)行糾正,從而驗(yàn)證了該故障容錯(cuò)設(shè)計(jì)系統(tǒng)的有效性。
[1]Daniele Radaelli,Helmut Puchner,Skip Wong,et al.Investigation of multi-bit upsets in a 150 nm technology SRAM device.IEEE Trans.Nucl.Sci.,Dec.2005,52(6):2433-2437.
[2]易偉,徐欣,聶洪山.一種 NAND Flash存儲(chǔ)器抗輻射加固方法[J].微處理機(jī),2011,32(6):8-11.
[3]董文杰,孟景,林金永,等.控制系統(tǒng)抗輻射加固設(shè)計(jì)知識(shí)管理系統(tǒng)的構(gòu)建[J].航天工業(yè)管理,2015(5):42-43.
[4]黃繁榮,賀顯紅.星載測(cè)控應(yīng)答機(jī)抗輻射加固與可靠性平臺(tái)研究[J].遙測(cè)遙控,2015,36(5):68-74.
[5]徐鑫龍.抗輻射SRAM測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)集成電路,2016,25(3):52-55.
[6]袁雅婧,賴(lài)曉玲,朱啟,等.星載數(shù)字 ASIC抗輻射加固設(shè)計(jì)與實(shí)現(xiàn)方法[J].空間電子技術(shù),2015(6):41-44.
[7]Pedro Reviriego,Mark Flanagan,Juan Antonio Maestro.A(64,45)triple error correction code for memory applications.IEEE Trans.Device Mater.Rel.,Mar.2012,12(1):101-106.
[8]HSIAO M Y,BOSSEN D C,CHIEN R T.Orthogonal latin square codes,IBM J.Res.Develop.,1970,14(4):390-394.
[9]楊劉洋,呂翔.一種基于正交拉丁方序列和光正交碼的二維光正交碼MOLS/OOC[J].浙江師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,37(4):437-445.
[10]宋麗麗,來(lái)逢昌,肖立伊.32×32位三端口寄存器堆的加固設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2012,29(12):27-30,35.
[11]LIN S,COSTELLO D J.Error Control Coding,2nd ed.Englewood Cliffs,NJ,USA:Prentice-Hall,2004.
[12]Shih-Fu Liu,Pedro Reviriego,Juan Antonio Maestro.Efficient majority logic fault detection with difference-set codes for memory applications.IEEE Trans.Very Large Scale Integr.(VLSI)Syst.,2012,20(1):148-156.
Design of radiation hardened error detection and correction circuit based on OLS code
Dong Liang
(Institute of Communications and Electronics Engineering,University of Qiqihar,Qiqihaer 161006,China)
Multiple Cell Upsets(MCUs)caused by radiation is a major issue for memory reliability.An option to protect memories against MCUs is using advanced error correction codes(ECCs)that can correct more than one error.A fault-tolerant scheme is presented to protect a memory from MCUs using orthogonal latin square(OLS)code.The advantage of OLS code is that it is a type of one-step majority logic decodable(OS-MLD)codes,which can be decoded using very simple majority circuit.The scheme has been implemented in Verilog HDL,and it has also been validated by ModelSim simulator.
MCUs;ECCs;OLS code;OS-MLD code
TN431.2
A
10.16157/j.issn.0258-7998.2016.10.010
國(guó)家自然科學(xué)基金(61501275);黑龍江省青年科學(xué)基金(QC2015073);齊齊哈爾市工業(yè)攻關(guān)項(xiàng)目(GYGG-201511)
(2016-06-01)
董亮(1979-),男,碩士研究生,講師,主要研究方向:無(wú)線(xiàn)通信、集成電路。
中文引用格式:董亮.基于OLS碼的檢錯(cuò)糾錯(cuò)抗輻射加固設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(10):44-46.
英文引用格式:Dong Liang.Design of radiation hardened error detection and correction circuit based on OLS code[J].Application of Electronic Technique,2016,42(10):44-46.