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