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