徐輝,寧亞飛,朱瑞,劉璇,周靜
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
隨著CMOS技術(shù)的快速發(fā)展,現(xiàn)代集成電路越來越容易受到由軟錯誤引起的可靠性問題的影響。軟錯誤是瞬態(tài)錯誤,主要是由中子、質(zhì)子、重離子、α粒子、電子等撞擊引起的[1-2]。軟錯誤包括單節(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)(Quadruple Node Upsets,QNUs)等。由于近年來先進(jìn)工藝的特征尺寸顯著減小,以及電荷共享機(jī)制,單個粒子撞擊的影響也會導(dǎo)致包括DNUs和TNUs在內(nèi)的多節(jié)點(diǎn)翻轉(zhuǎn)(Multiple Node Upsets,MNUs)[3]。很明顯,僅針對SNU的加固鎖存器[4-6]對于要求高可靠性的安全關(guān)鍵航空航天應(yīng)用已不再足夠。
為了解決加固鎖存器可靠性不高的問題,本文基于32nm CMOS工藝提出了一種低成本的QNUs自恢復(fù)鎖存器(Low-Cost Quadruple-Node-Upset Self-Recoverable Latch,LCQNUSRL)。該鎖存器由24個C單元構(gòu)成,形成6×4的陣列結(jié)構(gòu),構(gòu)建了四級過濾的容錯機(jī)制。當(dāng)鎖存器內(nèi)部任意四個節(jié)點(diǎn)發(fā)生翻轉(zhuǎn),經(jīng)過C單元的阻塞后,該鎖存器可自行恢復(fù)到正確值。由于高速傳輸路徑和時鐘門控技術(shù)的使用,本文提出的LCQNUSRL鎖存器有著較小的延遲和功耗。HSPICE仿真結(jié)果表明,與三個鎖存器(LCTNURL[7]、TNURL[8]、LC-TSL[9])平均值相比功耗降低了32.94%,延遲降低了30.2%,PDP降低了53.35%,晶體管數(shù)量增加了25%,使用較多的晶體管實(shí)現(xiàn)了QNUs自恢復(fù),有著更高的可靠性。此外,所提出的鎖存器對電壓和溫度的變化不敏感。
為了解決現(xiàn)有鎖存器的缺點(diǎn),提高鎖存器的可靠性,本文提出了一種低成本的QNUs自恢復(fù)鎖存器LCQNUSRL,鎖存器結(jié)構(gòu)如圖1所示。該鎖存器由24個C單元(CE1~CE24)和6個傳輸門(TG1~TG6)組成,其中CE19~CE24是鐘控C單元,可以減少鎖存器的功耗。D和Q分別是輸入和輸出,N2~N24是內(nèi)部節(jié)點(diǎn),CLK和NCLK分別為系統(tǒng)時鐘信號和負(fù)系統(tǒng)時鐘信號。該鎖存器24個C單元平均分成4列,構(gòu)建了四級過濾的容錯機(jī)制,每列由6個C單元構(gòu)成,每個C單元第一個輸入連接到下一個緊挨著的C單元的第二個輸入,最后一列C單元的輸出作為第一列C單元的輸入,形成一個反饋回路。
當(dāng)CLK=1,NCLK=0時,鎖存器處于透明期,6個傳輸門打開,6個鐘控C單元關(guān)斷,輸入數(shù)據(jù)傳入到節(jié)點(diǎn)Q、N2、N3、N4、N5和N6。假設(shè)輸入D=1,則Q=N2=N3=N4=N5=N6=1,經(jīng)過第一列C單元后,N7=N8=N9=N10=N11=N12=0,經(jīng)過第二列C單元后,N13=N14=N15=N16=N17=N18=1,同理可得,N19=N20=N21=N22=N23=N24=0。
當(dāng)CLK=0,NCLK=1時,鎖存器處于鎖存期,6個傳輸門關(guān)斷,6個鐘控C單元打開,形成一個反饋回路,鎖存器保持邏輯值。
圖1 本文提出的LCQNUSRL鎖存器
本文提出的LCQNUSRL鎖存器是一個QNUs自恢復(fù)鎖存器,下面來分析其容錯原理,所有的容錯原理都是在鎖存器鎖存期內(nèi)分析的。
SNU自恢復(fù):由于鎖存器由C單元組成,C單元可以容忍其中一個輸入的變化,而輸出不會受到影響,因此當(dāng)其中一列C單元的某個輸入節(jié)點(diǎn)發(fā)生翻轉(zhuǎn),將不會影響到下一列C單元的輸入節(jié)點(diǎn)。而鎖存器陣列的反饋將恢復(fù)發(fā)生翻轉(zhuǎn)的節(jié)點(diǎn),因此Q將保持正確的邏輯值,鎖存器可以實(shí)現(xiàn)SNU的自恢復(fù)。
DNUs自恢復(fù):鎖存器發(fā)生DNUs時,有以下兩種情況。
情況1:發(fā)生翻轉(zhuǎn)的兩個節(jié)點(diǎn)是同一列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q和N2發(fā)生翻轉(zhuǎn),此時會引起節(jié)點(diǎn)N8翻轉(zhuǎn),錯誤不會再繼續(xù)傳播下去。因?yàn)楣?jié)點(diǎn)N19~N24是正確的,通過CE19和CE24將節(jié)點(diǎn)N2和Q恢復(fù)到正確的邏輯值,N2和Q又通過CE2將N8恢復(fù)過來。
情況2:發(fā)生翻轉(zhuǎn)的兩個節(jié)點(diǎn)不是同一列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q和N7發(fā)生翻轉(zhuǎn),此時不會引起其它節(jié)點(diǎn)翻轉(zhuǎn),經(jīng)鎖存器陣列的反饋將這兩個翻轉(zhuǎn)的節(jié)點(diǎn)恢復(fù)過來。綜上所述,鎖存器可以實(shí)現(xiàn)DNUs的自恢復(fù)。
TNUs自恢復(fù):鎖存器發(fā)生TNUs時,有以下三種情況。
情況1:發(fā)生翻轉(zhuǎn)的三個節(jié)點(diǎn)是同一列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q、N2和N3發(fā)生翻轉(zhuǎn),會引起第二列N8和N9以及第三列N15翻轉(zhuǎn),錯誤至此不會再傳播下去。因?yàn)楣?jié)點(diǎn)N19~N24是正確的,通過CE19、CE20和CE24將節(jié)點(diǎn)N2、N3和Q恢復(fù)到正確的邏輯值,然后依次把N8、N9和N15恢復(fù)過來。
情況2:發(fā)生翻轉(zhuǎn)的三個節(jié)點(diǎn)是兩列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q、N2和N7發(fā)生翻轉(zhuǎn),會引起N8和N14翻轉(zhuǎn),至此不會再引起其它節(jié)點(diǎn)翻轉(zhuǎn)。通過最后一列鐘控C單元首先把Q和N2恢復(fù)過來,然后依次把N7、N8和N14恢復(fù)過來。
情況3:發(fā)生翻轉(zhuǎn)的三個節(jié)點(diǎn)是三列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q、N7和N13發(fā)生翻轉(zhuǎn),不會引起其它節(jié)點(diǎn)翻轉(zhuǎn),經(jīng)鎖存器陣列的反饋將這三個翻轉(zhuǎn)的節(jié)點(diǎn)恢復(fù)過來。綜上所述,鎖存器可以實(shí)現(xiàn)TNUs的自恢復(fù)。
QNUs自恢復(fù):鎖存器發(fā)生QNUs時,有以下四種情況。
情況1:發(fā)生翻轉(zhuǎn)的四個節(jié)點(diǎn)是同一列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q、N2、N3和N4發(fā)生翻轉(zhuǎn),會引起第二列C單元N8、N9和N10,第三列C單元N15和N16以及第四列C單元N22總計(jì)6個節(jié)點(diǎn)翻轉(zhuǎn)。因?yàn)镹19、N20、N21、N23和N24是正確的,通過CE19、CE20、CE21和CE24分別將N2、N3、N4和Q恢復(fù)過來,此時第一列C單元的輸入節(jié)點(diǎn)N2~N6和Q都是正確的,通過第一列C單元將N8、N9和N10恢復(fù)過來,同理,通過第二列C單元將N15和N16恢復(fù)過來,通過第三列C單元將N22恢復(fù)過來,發(fā)生翻轉(zhuǎn)的節(jié)點(diǎn)都恢復(fù)到了正確的邏輯值。
情況2:發(fā)生翻轉(zhuǎn)的四個節(jié)點(diǎn)是兩列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q、N2、N3和N7發(fā)生翻轉(zhuǎn),會引起N8、N9、N14、N15和N21翻轉(zhuǎn)。因?yàn)镹19、N20、N23和N24是正確的,通過CE19、CE20和CE24分別將N2、N3和Q恢復(fù)過來,此時第一列C單元的輸入節(jié)點(diǎn)N2~N6和Q都是正確的,通過第一列C單元將N7、N8和N9恢復(fù)過來,同理,N14、N15和N21可依次恢復(fù)到正確的邏輯值。
情況3:發(fā)生翻轉(zhuǎn)的四個節(jié)點(diǎn)是三列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q、N7、N13和N14發(fā)生翻轉(zhuǎn),會引起N20翻轉(zhuǎn)。因?yàn)镹23和N24是正確的,Q通過CE24恢復(fù)過來,N7通過CE1恢復(fù)過來,N13和N14分別通過CE7和CE8恢復(fù)過來,N20通過CE14恢復(fù)過來。
情況4:發(fā)生翻轉(zhuǎn)的四個節(jié)點(diǎn)是四列C單元的輸入節(jié)點(diǎn)。例如,節(jié)點(diǎn)Q、N7、N13和N19發(fā)生翻轉(zhuǎn),此時不會引起其它節(jié)點(diǎn)翻轉(zhuǎn)。因?yàn)镹23和N24是正確的,Q通過CE24恢復(fù)過來,而后N7、N13和N19經(jīng)鎖存器陣列的反饋恢復(fù)過來。綜上所述,本文提出的鎖存器可以實(shí)現(xiàn)QNUs的自恢復(fù)。
為了驗(yàn)證所提出的鎖存器對軟錯誤的容忍能力,使用HSPICE仿真工具進(jìn)行粒子故障注入實(shí)驗(yàn),仿真條件如下:采用PTM(Predictive Technology Model)32nm工藝,溫度設(shè)置為室溫25℃,供電電壓設(shè)置為0.9V,時鐘周期為2ns。鎖存器設(shè)計(jì)中的晶體管尺寸如下:PMOS晶體管尺寸均設(shè)為W/L=2,NMOS晶體管尺寸均設(shè)為W/L=1。
圖2顯示了所提出的鎖存器的故障注入仿真結(jié)果。仿真波形圖中閃電符號表示在該位置模擬故障注入。
圖2 LCQNUSRL故障注入
圖2(a)是模擬SNU和DNUs故障注入的仿真波形圖。如圖所示,對于SNU分別對Q和N9進(jìn)行故障注入;對于DNUs分別對(Q、N2)節(jié)點(diǎn)對和(Q、N7)節(jié)點(diǎn)對進(jìn)行故障注入。從波形圖中可以看出,所有翻轉(zhuǎn)的節(jié)點(diǎn)都可以自恢復(fù)到初始狀態(tài)。
圖2(b)是模擬TNUs故障注入的仿真波形圖。如圖所示,分別對{Q N2,N3},{Q,N2,N7}和{Q,N7,N13}3個節(jié)點(diǎn)組進(jìn)行故障注入,這3個節(jié)點(diǎn)組分別屬于情況1、情況2和情況3。從波形圖中可以看出,所有翻轉(zhuǎn)的節(jié)點(diǎn)都可以自恢復(fù)到初始狀態(tài)。
圖2(c)是模擬QNUs故障注入的仿真波形圖。如圖所示,分別對{Q,N2,N3,N4},{Q,N2,N3,N7},{Q,N7,N13,N14}和{Q,N7,N13,N19}4個節(jié)點(diǎn)組進(jìn)行故障注入。從波形圖可以看出,{Q,N2,N3,N4}節(jié)點(diǎn)組故障注入后產(chǎn)生的其它節(jié)點(diǎn)翻轉(zhuǎn)數(shù)量最多,但所有翻轉(zhuǎn)的節(jié)點(diǎn)都可以自恢復(fù)到初始狀態(tài)。對于另外三種情況,所有翻轉(zhuǎn)的節(jié)點(diǎn)也都可以自恢復(fù)到初始狀態(tài)。綜上所述,本文提出的鎖存器實(shí)現(xiàn)了QNUs自恢復(fù)。
本節(jié)將提出的鎖存器與DNCS鎖存器[10]、DONUT鎖存器[11]、HRCE鎖存器[12]、TNU-Latch鎖存器[3]、LCTNURL鎖存器[7]、TNURL鎖存器[8]和LC-TSL鎖存器[9]在相同的仿真條件(32nm CMOS工藝,溫度設(shè)置為室溫25℃,供電電壓設(shè)置為0.9V,時鐘周期為2 ns)下進(jìn)行對比,包括可靠性、面積、延遲和功耗等方面的比較。
各鎖存器可靠性比較結(jié)果如表1所示。從表1中可以看出,所提出的鎖存器具有QNUs自恢復(fù)能力,和另外7個鎖存器相比有著最高的可靠性。
表1 各鎖存器可靠性對比
表2給出了所提出的鎖存器和7個加固鎖存器的開銷對比。其中,功耗表示平均功耗(動態(tài)和靜態(tài)),延遲表示D到Q的傳輸延遲,即從D到Q上升和下降延遲的平均值。
從表2的第3列數(shù)據(jù)可以看出,所提出的鎖存器的延遲僅次于DNUs自恢復(fù)鎖存器HRCE[12],且僅增加了2.66%。從表2的第4列數(shù)據(jù)可以看出,本文所提出的鎖存器晶體管數(shù)量較多。為了實(shí)現(xiàn)更高的可靠性,本文結(jié)構(gòu)使用了較多的晶體管,但仍少于TNUs自恢復(fù)鎖存器TNURL[8]。
PDP能夠綜合衡量電路的功耗延遲特性,PDP越小,電路結(jié)構(gòu)的工作性能就越優(yōu)良[13]。從表2的第5列數(shù)據(jù)可以看出,與7個加固鎖存器相比,本文所提出的鎖存器的PDP僅次于DNUs自恢復(fù)鎖存器HRCE[12]。
表2 開銷對比
為了使對比結(jié)果更加直觀,使用公式(1)和公式(2)來計(jì)算開銷的相對變化。表3中給出了所提出的鎖存器和3個TNUs自恢復(fù)鎖存器的相對開銷比較。從中可以看出,與三個鎖存器平均值相比功耗降低了32.94%,延遲降低了30.2%,PDP降低了53.35%,晶體管數(shù)量增加了25%,使用較多的晶體管實(shí)現(xiàn)了QNUs自恢復(fù),有著更高的可靠性。
表3 開銷的相對變化(%)
Δ=(本文提出結(jié)構(gòu)-對比結(jié)構(gòu))/對比結(jié)構(gòu)×100%
(1)
Δ平均值=(本文提出結(jié)構(gòu)-對比結(jié)構(gòu)平均值)/對比結(jié)構(gòu)平均值×100%
(2)
現(xiàn)代鎖存器對納米級技術(shù)中的電壓和溫度變化越來越敏感[14],這里比較了8個鎖存器的功耗和延遲對電源電壓以及溫度變化的敏感性。圖3(a)和圖3(b)分別為電源電壓變化對鎖存器功耗和延遲的影響;圖4(a)和圖4(b)分別為溫度變化對鎖存器功耗和延遲的影響。電源電壓變化范圍為0.7~1.2V,溫度變化范圍為-40~100℃。
圖3(a)顯示了電源電壓變化對鎖存器功耗的影響。從圖中可以看出,功耗隨著電源電壓的增大而增大。這8個鎖存器中,DONUT[11]和TNURL[8]對電源電壓的變化更為敏感,所提出的鎖存器對電源電壓的變化并不敏感。圖3(b)顯示了電源電壓變化對鎖存器延遲的影響。從圖中可以看出,鎖存器的延遲隨著電源電壓的增大而減小。這8個鎖存器中,TNU-Latch[3]和DNCS[10]對電源電壓的變化更為敏感,所提出的鎖存器曲線波動較小,對電源電壓變化的敏感性較小。
圖3 電源電壓變化對鎖存器功耗和延遲的影響
圖4(a)顯示了溫度變化對鎖存器功耗的影響。從圖中可以看出,8個鎖存器中,DONUT[11]和TNURL[8]對溫度的變化最為敏感,所提出的鎖存器對溫度的變化不敏感。圖4(b)顯示了溫度變化對鎖存器延遲的影響。從圖中可以看出,所提出的鎖存器的延遲對溫度變化相對穩(wěn)定。綜上所述,所提出的鎖存器對電壓和溫度的變化不敏感。
圖4 溫度變化對鎖存器功耗和延遲的影響
本文基于32nm CMOS工藝提出了一種低成本的QNUs自恢復(fù)鎖存器(LCQNUSRL)。該鎖存器由24個C單元構(gòu)成,形成6×4的陣列結(jié)構(gòu),構(gòu)建了四級過濾的容錯機(jī)制。當(dāng)鎖存器內(nèi)部任意四個節(jié)點(diǎn)發(fā)生翻轉(zhuǎn),經(jīng)過C單元的阻塞后,該鎖存器可自行恢復(fù)到正確值。HSPICE實(shí)驗(yàn)表明,所提出的鎖存器在功耗、延遲和PDP方面都有著一定的優(yōu)勢,并且對電壓和溫度的變化不敏感。