基于CPLD的容錯(cuò)存儲器的設(shè)計(jì)實(shí)現(xiàn)
隨著各種電路和芯片的性能(速度、集成度等)不斷提高,尤其是在軍事、航空航天等用途中對可靠性的要求往往是第一位的,人們對于系統(tǒng)的可靠性方面的要求日益增加,這對電路系統(tǒng)的設(shè)計(jì)和制造都提出了嚴(yán)格的目標(biāo)要求。
本文引用地址:http://2s4d.com/article/21136.htm存儲器是電路系統(tǒng)中最常用的器件之一,采用大規(guī)模集成電路存儲芯片構(gòu)成。實(shí)際統(tǒng)計(jì)表明,存儲器在太空應(yīng)用中的主要錯(cuò)誤是由瞬態(tài)錯(cuò)誤(也叫單個(gè)事件擾動,seu)所引起的一位錯(cuò)[1]或者相關(guān)多位錯(cuò),而隨機(jī)獨(dú)立的多位錯(cuò)誤極少。半導(dǎo)體存儲器的錯(cuò)誤大體上分為硬錯(cuò)誤和軟錯(cuò)誤,其中主要為軟錯(cuò)誤。硬錯(cuò)誤所表現(xiàn)的現(xiàn)象是在某個(gè)或某些位置上,存取數(shù)據(jù)重復(fù)地出現(xiàn)錯(cuò)誤。出現(xiàn)這種現(xiàn)象的原因是一個(gè)或幾個(gè)存儲單元出現(xiàn)故障。軟錯(cuò)誤主要是由α粒子引起的。存儲器芯片的材料中含有微量放射性元素,他們會間斷地釋放α粒子。這些粒子以相當(dāng)大的能量沖擊存儲電容,改變其電荷,從而引起存儲數(shù)據(jù)的錯(cuò)誤。引起軟錯(cuò)誤的另一原因是噪聲干擾。同時(shí)在太空環(huán)境下,在帶電粒子足夠能量撞擊下,存儲器的存儲單元中的位發(fā)生翻轉(zhuǎn)從而產(chǎn)生seu錯(cuò)誤 [2] 。本文設(shè)計(jì)實(shí)現(xiàn)了用cpld技術(shù)和糾檢錯(cuò)芯片對存儲器進(jìn)行容錯(cuò),大大提高了系統(tǒng)的可靠性。下面是具體容錯(cuò)存儲器和門警電路的設(shè)計(jì)。
1 檢錯(cuò)與糾錯(cuò)原理
常用的能檢測2位錯(cuò)同時(shí)能糾正1位錯(cuò)(簡稱糾一檢二,sec-ded [3、4] )的糾錯(cuò)碼有擴(kuò)展?jié)h明碼(extended hamming code)和最佳奇權(quán)碼(optimal 他們的最小碼距都為4,兩者有相似之處,如冗余度一樣,對于數(shù)據(jù)位數(shù)k,校驗(yàn)位數(shù)r應(yīng)滿足2 r-1 ≥k+r。當(dāng)k=16時(shí),r=6,數(shù)據(jù)位長增加1倍,校驗(yàn)位數(shù)只需增加1位,編碼效率較高。另外從來源上講,兩者分別是漢明碼的擴(kuò)展碼和截短碼,也有資料稱最佳奇權(quán)碼為修正漢明碼(modified hamming code)。文獻(xiàn)[4]介紹了sec-ded和sec-aued)碼的編解碼理論。從性能上看最佳奇權(quán)碼比擴(kuò)展?jié)h明碼更為優(yōu)越,前者在糾檢錯(cuò)能力方面也優(yōu)于后者,他的3位錯(cuò)誤的誤糾概率低于后者,而4位錯(cuò)誤的檢測概率高于后者,最重要的是他便于硬件實(shí)現(xiàn),故應(yīng)用的最多,本文采用最佳奇權(quán)碼。
首先構(gòu)造最佳奇權(quán)碼的校驗(yàn)矩陣即h矩陣,最佳奇權(quán)碼的h矩陣應(yīng)滿足:
(1)每列含有奇數(shù)個(gè)1,且無相同列。
(2)總的1的個(gè)數(shù)少,所以校驗(yàn)位、伴隨式生成表達(dá)式中的半加項(xiàng)數(shù)少,從而生成邏輯所需的半加器少,可以節(jié)約器材、降低成本和提高可靠性。
(3)每行中1的個(gè)數(shù)盡量相等或接近某個(gè)平均值,這種決定生成邏輯及其級數(shù)的一致性,不僅譯碼速度快,同時(shí)線路勻稱。
應(yīng)用中采用(13,8,4)最佳奇權(quán)碼,數(shù)據(jù)碼為(d7 d6 d5 d4 d3 d2 d1 d0),校驗(yàn)碼為(c4 c3 c2 c1 c0),p矩陣和編碼規(guī)則分別為:
譯碼時(shí)把數(shù)據(jù)再次編碼所得到的新校驗(yàn)位與原校驗(yàn)位模2加,便得到伴隨式s,由其可判別錯(cuò)誤類型:1)若s=0,則認(rèn)為沒有錯(cuò)誤;
(2)若s≠0,且s含有奇數(shù)個(gè)1,則認(rèn)為產(chǎn)生了單位錯(cuò);若s≠0,且s含有偶數(shù)個(gè)1,則認(rèn)為產(chǎn)生了2位錯(cuò)。
2 存儲器容錯(cuò)芯片設(shè)計(jì)實(shí)現(xiàn)
2.1 存儲器設(shè)計(jì)實(shí)現(xiàn)方案
(1)備份行(或列)方案
這種方案是在存儲芯片的設(shè)計(jì)與制造過程中增加若干備份的行(或列)。在芯片測試時(shí),若發(fā)現(xiàn)失效的行(或列),則通過激光(或電學(xué))的處理,用備份行(或列)去代替。此方法的優(yōu)點(diǎn)是設(shè)計(jì)簡單,管芯面積增加較少,電路速度沒有損失。但是,他需要增加某些測試與修正實(shí)效行(或列)的工藝環(huán)節(jié),更重要的弱點(diǎn)是這種方案僅適用于ram,不能用于rom。
(2)糾錯(cuò)編碼方案
這種方案是在存儲芯片內(nèi)部采用糾錯(cuò)編碼,自動檢測并糾正錯(cuò)誤。此方案不需要額外的測試和糾正錯(cuò)誤等工藝環(huán)節(jié),除提高成品率外,還對可靠性有明顯改進(jìn)。這種方案最突出的優(yōu)點(diǎn)是特別適合rom;在對速度要求不高的情況下也可用于ram。他的主要缺點(diǎn)在于要占用額外的芯片面積,同時(shí)因編譯碼而影響芯片整個(gè)的工作速度。將用于存儲器系統(tǒng)級的糾錯(cuò)編碼等容錯(cuò)技術(shù)引入存儲器芯片內(nèi)部,是提高存儲芯片成品率和可靠性的有效措施。例如服務(wù)器中使用的ecc內(nèi)存就采用了此技術(shù)。
本文的容錯(cuò)存儲器采用糾錯(cuò)碼方案,其實(shí)現(xiàn)框圖如圖1所示。
2.2 糾檢錯(cuò)電路設(shè)計(jì)糾檢錯(cuò)電路必須配合cpu的讀寫時(shí)序進(jìn)行工作,可以將cpu的時(shí)序分為讀周期和寫周期。在寫周期時(shí),總線通過糾錯(cuò)電路直接將數(shù)據(jù)寫入到存儲器,同時(shí)數(shù)據(jù)通過糾錯(cuò)電路產(chǎn)生5 b校驗(yàn)碼寫入到冗余存儲器。讀周期時(shí)分成2步,第1步從存儲器和冗余存儲器分別讀取數(shù)據(jù)和校驗(yàn)位數(shù)據(jù)送入糾錯(cuò)電路鎖存;第2步進(jìn)行檢錯(cuò),如果沒有錯(cuò)誤直接將數(shù)據(jù)送出到數(shù)據(jù)總線,有2位錯(cuò)產(chǎn)生中斷進(jìn)行處理,有1位錯(cuò)對數(shù)據(jù)進(jìn)行糾錯(cuò)并送入數(shù)據(jù)總線。因需要的是正確數(shù)據(jù),如果是校驗(yàn)位出錯(cuò)則不進(jìn)行任何處理,直接輸出正確數(shù)據(jù)。
2.3 電路輸入輸出設(shè)計(jì)
rd,wr,clk為cpu輸入到糾檢錯(cuò)信號,通過控制電路產(chǎn)生芯片內(nèi)控制信號。在寫信號時(shí),db[7..0]從數(shù)據(jù)總線輸入,通過鎖存以后經(jīng)過三態(tài)控制(santai模塊)寫入到存儲器,同時(shí)數(shù)據(jù)通過校驗(yàn)碼產(chǎn)生模塊(paritygen)產(chǎn)生5 b校驗(yàn)碼,通過三態(tài)控制寫入冗余存儲器。讀信號時(shí),存儲器數(shù)據(jù)讀入糾檢錯(cuò)電路經(jīng)過鎖存后產(chǎn)生5 b校驗(yàn)碼,同時(shí)與從冗余存儲器讀入的5 b檢驗(yàn)碼一起通過錯(cuò)誤圖樣模塊(errorsample),產(chǎn)生錯(cuò)誤圖樣。通過錯(cuò)誤圖樣檢測錯(cuò)誤,當(dāng)數(shù)據(jù)產(chǎn)生錯(cuò)誤時(shí)通過糾錯(cuò)模塊(errorcorrect)糾錯(cuò)后將正確數(shù)據(jù)輸出到數(shù)據(jù)總線。errordetec為錯(cuò)誤狀態(tài)模塊,sef,def為錯(cuò)誤狀態(tài)信號。0,0時(shí)無錯(cuò),1,0時(shí)1位錯(cuò),1,1時(shí)2位錯(cuò)。電路實(shí)現(xiàn)的各部分功能模塊如圖2所示?!?
3 仿真及其波形本文采用altera公司的cpld器件epm7128作為設(shè)計(jì)環(huán)境 [5] ,圖3是糾檢錯(cuò)電路仿真圖形,用cpld實(shí)現(xiàn)糾檢錯(cuò)電路仿真,圖中118~205 ns時(shí)從數(shù)據(jù)線上寫入數(shù)據(jù)aa,359~443 ns時(shí)仿真了讀數(shù)據(jù)時(shí)產(chǎn)生1位錯(cuò)情況,601~692 ns時(shí)仿真了產(chǎn)生2位錯(cuò)情況,此時(shí)檢測到了2位錯(cuò),但是不能糾正。781~863 ns時(shí)仿真了校驗(yàn)位產(chǎn)生1位錯(cuò)時(shí)的情況。
4 分析與結(jié)論本文利用最佳奇權(quán)碼的基本原理設(shè)計(jì)的糾錯(cuò)碼電路可以校正單位錯(cuò),檢出2位錯(cuò),存儲器不因單位錯(cuò)而中斷工作,故其平均無故障時(shí)間mtbf增大,提高了可靠性。但是糾一檢二碼的新增器材又使mtbf有所下降。
在效率上,設(shè)在時(shí)間t內(nèi),發(fā)生1位錯(cuò)的次數(shù)為n 1 ,發(fā)生2位及多位錯(cuò)的次數(shù)為n 2 ,采用糾錯(cuò)碼時(shí),平均無故障時(shí)間為t 1 =t/(n 1 +n 2 ),采用最佳奇權(quán)碼后,1位錯(cuò)是可糾的,僅2位及多位錯(cuò)是不可糾的,作為出錯(cuò)處理。設(shè)由于采用糾錯(cuò)碼而增加器材δ%,因而采用最佳奇權(quán)碼后的平均無故障時(shí)間為:
據(jù)資料估計(jì),對于1位錯(cuò)占整個(gè)錯(cuò)誤的比例 增益g=4.6~9.3。通過cpld來實(shí)現(xiàn)存儲器的容錯(cuò),大大縮短了設(shè)計(jì)開發(fā)周期,降低了成本,同時(shí)提高了系統(tǒng)的可靠性。
評論