寧亞飛
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
目前,CMOS 技術(shù)已縮小到深納米級(jí),實(shí)現(xiàn)了集成電路和系統(tǒng)的高集成度、低開(kāi)銷(xiāo)和高性能。然而,隨著晶體管特征尺寸的大幅度減小,CMOS器件對(duì)軟錯(cuò)誤的敏感性也在顯著增加,這將導(dǎo)致數(shù)據(jù)損壞、執(zhí)行失敗,在最壞情況下甚至?xí)霈F(xiàn)系統(tǒng)崩潰。當(dāng)質(zhì)子和中子等輻射粒子與集成電路的敏感節(jié)點(diǎn)碰撞時(shí),會(huì)產(chǎn)生額外的電荷,導(dǎo)致錯(cuò)誤的瞬態(tài)脈沖或節(jié)點(diǎn)翻轉(zhuǎn),這被稱(chēng)為軟錯(cuò)誤[1-2]。軟錯(cuò)誤包括單節(jié)點(diǎn)翻轉(zhuǎn)(Single Node Upset,SNU)、雙節(jié)點(diǎn)翻轉(zhuǎn)(Double Node Upsets,DNUs)、三節(jié)點(diǎn)翻轉(zhuǎn)(Triple Node Upsets,TNUs)、四 節(jié) 點(diǎn)翻 轉(zhuǎn)(Qua?druple Node Upsets,QNUs)。軟錯(cuò)誤會(huì)影響處在惡劣輻射環(huán)境中的納米級(jí)CMOS 電路和系統(tǒng)的可靠性。因此,需要對(duì)納米級(jí)電路進(jìn)行有效的加固處理。本研究提出一種基于三模冗余和三級(jí)錯(cuò)誤攔截的四節(jié)點(diǎn)翻轉(zhuǎn)容忍鎖存器設(shè)計(jì)(TTEQNUTL)。該鎖存器由3 個(gè)單節(jié)點(diǎn)翻轉(zhuǎn)自恢復(fù)模塊(分別為SNUSR1、SNUSR2、SNUSR3)、1 個(gè)三級(jí)錯(cuò)誤攔截模塊和7 個(gè)傳輸門(mén)組成。每個(gè)SNUSR 模塊均包含兩個(gè)普通C 單元和兩個(gè)鐘控C 單元,四個(gè)C 單元可形成一個(gè)環(huán)形結(jié)構(gòu)。由于每個(gè)SNUSR 模塊都具有SNU 自恢復(fù)能力,錯(cuò)誤攔截模塊可用三級(jí)方式對(duì)錯(cuò)誤進(jìn)行攔截。因此,本研究提出的鎖存器可實(shí)現(xiàn)QNUs 容忍。
本研究提出的鎖存器結(jié)構(gòu)如圖1所示。該鎖存器由18個(gè)C 單元(其中7個(gè)是鐘控C 單元)和7個(gè)傳輸門(mén)組成,D和Q分別代表著輸入和輸出,CLK和NCLK分別為系統(tǒng)的時(shí)鐘信號(hào)和負(fù)系統(tǒng)的時(shí)鐘信號(hào)。
圖1 TTEQNUTL鎖存器結(jié)構(gòu)示意圖
當(dāng)CLK=1、NCLK=0時(shí),鎖存器處于透明期,7個(gè)傳輸門(mén)打開(kāi),7個(gè)鐘控C單元關(guān)斷,輸入數(shù)據(jù)傳入到節(jié)點(diǎn)Q、NA1、NA3、NB1、NB3、NC1和NC3。
當(dāng)CLK=0、NCLK=1時(shí),鎖存器處于鎖存期,7個(gè)傳輸門(mén)關(guān)斷,7個(gè)鐘控C單元打開(kāi)。
本研究所提出的TTEQNUTL 鎖存器能夠?qū)崿F(xiàn)對(duì)SNU、DNUs、TNUs 和QNUs 的完全容忍。本研究只分析鎖存器在鎖存期內(nèi)的容錯(cuò)原理。在透明模式下,即使高能粒子撞擊內(nèi)部節(jié)點(diǎn)造成翻轉(zhuǎn),輸入信號(hào)也能快速對(duì)邏輯值進(jìn)行刷新。下面分別對(duì)SNU、DNUs、TNUs和QNUs進(jìn)行容錯(cuò)分析。
由于鎖存器是由C 單元組成,C 單元可容忍其中一個(gè)輸入的變化,且輸出不會(huì)受到影響。因此,當(dāng)其中某個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),將不會(huì)對(duì)其他節(jié)點(diǎn)產(chǎn)生影響,剩余節(jié)點(diǎn)仍保持正確的邏輯值,并能把發(fā)生翻轉(zhuǎn)的節(jié)點(diǎn)恢復(fù)成正確的邏輯值,實(shí)現(xiàn)了SNU自恢復(fù),也即實(shí)現(xiàn)SNU容忍。
鎖存器發(fā)生DNUs容忍時(shí),有以下3種情況。
2.2.1 發(fā)生翻轉(zhuǎn)的2 個(gè)節(jié)點(diǎn)位于三級(jí)錯(cuò)誤攔截模塊中,則SNUSR 模塊中的節(jié)點(diǎn)不發(fā)生翻轉(zhuǎn)。例如,N5、N6 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn),此時(shí)會(huì)引起N8 節(jié)點(diǎn)翻轉(zhuǎn),剩余節(jié)點(diǎn)則保持正確的邏輯值。NA2、NB2節(jié)點(diǎn)通過(guò)CE13 將N5 節(jié)點(diǎn)恢復(fù)為正確的邏輯值,NB4、NC4 節(jié) 點(diǎn)可通 過(guò)CE14 將N6 恢復(fù)為 正確的邏輯值,N5、N6 節(jié)點(diǎn)會(huì)將N8 節(jié)點(diǎn)恢復(fù)為正確的邏輯值。
2.2.2 每個(gè)SNUSR 模塊中最多有1 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。例如,NA1、N5 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí)并不會(huì)引起其他節(jié)點(diǎn)翻轉(zhuǎn)。由于SNUSR 模塊具有SNU 自恢復(fù)性,因此NA1 節(jié)點(diǎn)可自恢復(fù)過(guò)來(lái),NA2、NB2 節(jié)點(diǎn)通過(guò)CE13將N5節(jié)點(diǎn)恢復(fù)過(guò)來(lái)。
2.2.3 每個(gè)SNUSR 模塊中最多有2 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。例如,NA1、NA3 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),此時(shí)會(huì)引起NA2、NA4 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。由于SNUSR2 和SNUSR3 模塊中的節(jié)點(diǎn)不受影響,通過(guò)C 單元的阻塞作用,N5、N6 和N7 節(jié)點(diǎn)將保持正確的邏輯值,Q節(jié)點(diǎn)也保持正確的邏輯值。綜上所述,鎖存器可實(shí)現(xiàn)DNUs容忍。
鎖存器發(fā)生TNUs容忍時(shí),有以下4種情況。
2.3.1 發(fā)生翻轉(zhuǎn)的3 個(gè)節(jié)點(diǎn)位于三級(jí)錯(cuò)誤攔截模塊中,SNUSR 模塊中的節(jié)點(diǎn)不發(fā)生翻轉(zhuǎn)。例如,當(dāng)N5、N8 和Q 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),此時(shí)將不會(huì)引起其他節(jié)點(diǎn)翻轉(zhuǎn)。由于3 個(gè)SNUSR 模塊中的節(jié)點(diǎn)不受影響,可通過(guò)CE13、CE16 和CE18 依次將N5、N8和Q節(jié)點(diǎn)恢復(fù)為正確的邏輯值。
2.3.2 每個(gè)SNUSR 模塊中最多有1 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。例如,NA1、N5和Q節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),并不會(huì)引起其他節(jié)點(diǎn)翻轉(zhuǎn)。NA1、N5 和Q 節(jié)點(diǎn)可通過(guò)CE4、CE13和CE18恢復(fù)過(guò)來(lái)。
2.3.3 每個(gè)SNUSR 模塊中最多有2 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。例如,NA1、NA3 和N5 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),此時(shí)會(huì)引起NA2、NA4 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。由于SNUSR2 和SNUSR3 模塊中的節(jié)點(diǎn)不受影響,N6、N7 節(jié)點(diǎn)保持正確的邏輯值,因而N8、N9 節(jié)點(diǎn)保持正確的邏輯值,Q節(jié)點(diǎn)也保持正確的邏輯值。
2.3.4 每個(gè)SNUSR 模塊中最多有3 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。當(dāng)NA1、NA3 和NA4 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),會(huì)引起NA2 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。由于SNUSR2 和SNUSR3模塊中的節(jié)點(diǎn)不受影響,在C 單元的阻塞作用下,N5、N6和N7節(jié)點(diǎn)將保持正確的邏輯值,Q節(jié)點(diǎn)也能保持正確的邏輯值。綜上所述,鎖存器可以實(shí)現(xiàn)TNUs容忍。
鎖存器發(fā)生QNUs容忍時(shí),有以下5種情況。
2.4.1 發(fā)生翻轉(zhuǎn)的4 個(gè)節(jié)點(diǎn)位于三級(jí)錯(cuò)誤攔截模塊中,SNUSR 模塊中的節(jié)點(diǎn)不發(fā)生翻轉(zhuǎn)。當(dāng)N5、N6、N8 和Q 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),并不會(huì)引起其他節(jié)點(diǎn)翻轉(zhuǎn)。由于3 個(gè)SNUSR 模塊中的節(jié)點(diǎn)不受影響,N5、N6 和N8 節(jié)點(diǎn)分別通過(guò)CE13、CE14 和CE16恢復(fù)過(guò)來(lái),Q 節(jié)點(diǎn)可通過(guò)CE18 節(jié)點(diǎn)恢復(fù)為正確的邏輯值。
2.4.2 每個(gè)SNUSR 模塊中最多有1 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。例如,NA1、N5、N8 和Q 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn),此時(shí)并不會(huì)引起其他節(jié)點(diǎn)翻轉(zhuǎn)。由于SNUSR 模塊具有SNU 自恢復(fù)性,所以NA1 節(jié)點(diǎn)可自恢復(fù)到正確的邏輯值,N5 和N8 節(jié)點(diǎn)則通過(guò)CE13 和CE16 恢復(fù)過(guò)來(lái),Q 節(jié)點(diǎn)可通過(guò)CE18 節(jié)點(diǎn)恢復(fù)為正確的邏輯值。
2.4.3 每個(gè)SNUSR 模塊中最多有2 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。例如,當(dāng)NA1、NA3、N5 和N8 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),此時(shí)會(huì)引起NA2、NA4 節(jié)點(diǎn)也發(fā)生翻轉(zhuǎn)。由于SNUSR2和SNUSR3模塊中的節(jié)點(diǎn)不受影響,N6、N7 節(jié)點(diǎn)保持正確的邏輯值,N9 節(jié)點(diǎn)也保持正確的邏輯值,在C單元的阻塞作用下,Q節(jié)點(diǎn)也將保持其原有的邏輯值不變。
2.4.4 一個(gè)SNUSR 模塊中最多有3 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。當(dāng)NA1、NA3、NA4 和N5 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),會(huì)引起NA2 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。由于SNUSR2 和SNUSR3 模塊中的節(jié)點(diǎn)不受影響,通過(guò)C 單元的阻塞作用,N6、N7 節(jié)點(diǎn)將保持正確的邏輯值,N8、N9節(jié)點(diǎn)也保持正確的邏輯值,因此Q 節(jié)點(diǎn)將保持其正確的邏輯值。
2.4.5 一個(gè)SNUSR 模塊中最多有4 個(gè)節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)。當(dāng)NA1、NA2、NA3 和NA4 節(jié)點(diǎn)發(fā)生翻轉(zhuǎn)時(shí),并不會(huì)引起其他節(jié)點(diǎn)翻轉(zhuǎn)。由于C 單元的阻塞作用,N5、N6 和N7 節(jié)點(diǎn)將保持正確的邏輯值,因此Q 節(jié)點(diǎn)也保持正確的邏輯值。綜上所述,鎖存器可實(shí)現(xiàn)QNUs容忍。
本研究對(duì)基于三模冗余和三級(jí)錯(cuò)誤攔截的四節(jié)點(diǎn)翻轉(zhuǎn)容忍的鎖存器與LCHRNAN 鎖存器[3]、DNCS 鎖 存 器[4]、DeltaDICE 鎖 存 器[5]、HRCE 鎖 存器[6]、HLDRL 鎖 存 器[7]、LCTNURL 鎖 存 器[8]和IHTRL 鎖存器[9]進(jìn)行對(duì)比,具體包括面積、延遲和功耗等方面的比較。比較結(jié)果見(jiàn)表1和表2。
表1 開(kāi)銷(xiāo)對(duì)比
表2 與TNUs自恢復(fù)鎖存器開(kāi)銷(xiāo)相對(duì)變化 單位:%
由表1 的第2 列可以看出,本研究所提出的鎖存器的功耗僅次于HRCE 鎖存器,從第3 列和第5列可以看出,該鎖存器有著最小的延遲和PDP。
本研究提出了一種基于三模冗余和三級(jí)錯(cuò)誤攔截的四節(jié)點(diǎn)翻轉(zhuǎn)容忍鎖存器,該鎖存器能夠?qū)崿F(xiàn)SNU,DNUs,TNUs 和QNUs 的完全容忍,與兩個(gè)鎖存器(LCTNURL,IHTRL)平均值相比,提出的鎖存器功耗降低了30.77%,延遲降低了48.56%,PDP 降低了66.92%。