孫 巖,黎鐵軍,王發(fā)源,張民選
(國防科學(xué)技術(shù)大學(xué)計算機(jī)學(xué)院,湖南 長沙 410073)
相聯(lián)存儲器CAM(Content Addressable Memory)可對輸入的待比較數(shù)據(jù)與所存儲的數(shù)據(jù)進(jìn)行全并行的比較。由于它速度很快,廣泛應(yīng)用于需要高速全相聯(lián)的局部數(shù)據(jù)搜索應(yīng)用中[1]。在微處理器中,地址轉(zhuǎn)換緩沖器和一些高速Cache就是由CAM和SRAM組成CAM-RAM結(jié)構(gòu),通過對輸入的地址和CAM中存儲的內(nèi)容進(jìn)行比較來命中SRAM中相應(yīng)的項,從而得到需要訪問的數(shù)據(jù)[2]。CAM-RAM結(jié)構(gòu)具有高速度和低功耗的特性,因此是一種常用且重要的部件。
作為存儲部件的一種,CAM對軟錯誤非常敏感。當(dāng)集成電路的特征尺寸減小到納米級,CAM因軟錯誤引起的可靠性問題變得更加嚴(yán)峻[3]。與隨機(jī)訪問存儲器不同,CAM無法使用錯誤保護(hù)碼來糾正軟錯誤。CAM一般處于存儲部件的關(guān)鍵路徑上,開銷較大的保護(hù)技術(shù)會嚴(yán)重影響系統(tǒng)性能。因此,針對CAM研究開銷小、結(jié)構(gòu)簡單的軟錯誤緩解技術(shù)具有重要的意義。
CAM對輸入的搜索字進(jìn)行比較,一般沒有讀操作,因此不能直接在CAM上用編碼的方法檢測軟錯誤。然而,在CAM-RAM結(jié)構(gòu)中,CAM中存儲地址,RAM中存儲數(shù)據(jù),這為CAM使用錯誤編碼提供了可能。有研究[4]在CAM-RAM結(jié)構(gòu)的RAM陣列中增加一列存儲單元,用于儲存對應(yīng)CAM項的校驗位,如圖1所示。
Figure 1 Structure of soft error tolerance CAM圖1 容軟錯誤CAM結(jié)構(gòu)
當(dāng)輸入搜索字與CAM中的一項匹配時,該CAM項的校驗位將會隨著相對應(yīng)的RAM項讀出,與此同時搜索字的校驗位也被計算出來。接著兩個校驗位進(jìn)行比較,如果結(jié)果相同,說明該匹配正確,為真匹配,反之為假匹配。該方法只能檢測出假匹配,卻不能檢測出假失配。文獻(xiàn)[4]通過使用一種稱為“近似匹配(Close Hit)”的檢測方法來檢測假失配。但是,這種方法較復(fù)雜,帶來的面積開銷和性能損失也相對較大。本文針對這一問題提出TM-CAM結(jié)構(gòu),使用一種高效的三值匹配線機(jī)制檢測假失配。該方法相對簡單,面積開銷較小,性能損失幾乎可以忽略不計。
CAM中的假失配是指當(dāng)輸入搜索字與待比較字原本應(yīng)當(dāng)匹配,但待比較字的一位發(fā)生翻轉(zhuǎn),導(dǎo)致比較結(jié)果錯誤地不匹配。因此,在只發(fā)生一位錯誤的前提下,假失配應(yīng)當(dāng)表現(xiàn)為搜索字與CAM中存儲字只有一位不相同,即海明距離為1。因此,如果能檢測出搜索字與CAM存儲字中海明距離為1的項,即可能為假失配。
為此,本文提出三值匹配線機(jī)制,實現(xiàn)搜索字與存儲字海明距離為1的檢測。與傳統(tǒng)的匹配線不同,三值匹配線機(jī)制中除了邏輯“0”和“1”,還存在介于二者之間的第三個值。對于或非CAM結(jié)構(gòu)來說,當(dāng)搜索字與存儲字的所有位都匹配時,與匹配線連接的所有下拉NMOS管關(guān)閉,匹配線為邏輯“1”;當(dāng)有且僅有一位不匹配時,NMOS管有一個打開,由于此時管電阻較大,匹配線在一定時間內(nèi)放電到邏輯“0”與“1”中間的狀態(tài);當(dāng)存在兩位或以上不匹配時,下拉NMOS管至少兩個導(dǎo)通,匹配線放電到邏輯“0”。因此,三值匹配線不僅能檢測出匹配或不匹配,而且還能辨別出一位或一位以上不匹配。
圖2是本文提出的三值匹配線示意圖。矩形框表示一個CAM單元,NMOS管為下拉管,匹配線連接到一個靈敏放大器上。為了實現(xiàn)三值匹配線機(jī)制,需要對匹配線靈敏放大器進(jìn)行一定的修改,使之成為匹配線三值靈敏放大器MLTSA(Match Line Ternary Sense Amplifier)。
Figure 2 Triple-value match line mechanism圖2 三值匹配線機(jī)制
圖3a表示普通匹配線的模型。當(dāng)所有位都匹配的情況下,匹配線模型為一個電容CML,表示匹配線的寄生線電容和與之相連的下拉晶體管漏極電容;當(dāng)一位不匹配的情況下,匹配線的模型為一個等效電容CML和一個電阻REQ并聯(lián)的形式,REQ為不匹配的CAM單元中下拉晶體管的等效電阻。當(dāng)所有位都匹配時,由于沒有接地的通路,匹配線維持邏輯“1”;當(dāng)一位不匹配時,由于晶體管等效電阻REQ不大,電容CML中的電荷很快泄放掉,匹配線的值成為邏輯“0”。
圖3b表示本文提出的三值匹配線模型。當(dāng)所有位匹配時與普通匹配線類似,為一個等效電容CML,匹配線電壓在電源電壓附近;當(dāng)一位不匹配時,匹配線的模型為等效電容CML和等效電阻REQ1并聯(lián)的形式,但REQ1較大,一定時間內(nèi)(約為半時鐘周期)CML中的電荷無法完全泄放,匹配線電壓介于地和電源電壓之間;當(dāng)兩位不匹配時,匹配線模型為等效電容CML與等效電阻REQ2并聯(lián)的形式,由于此時REQ2減小,電荷在一定時間內(nèi)能夠泄放掉大部分,匹配線的電壓在地電壓附近;當(dāng)兩位以上不匹配時,等效電阻進(jìn)一步減小,匹配線的電壓達(dá)到更低的水平。
Figure 3 Models of match line圖3 匹配線模型
圖4表示三值匹配線模擬波形。設(shè)定兩個閾值電壓:高閾值電壓VTH和低閾值電壓VTL,如果匹配線電壓大于VTH,認(rèn)為所有位匹配;電壓介于VTH和VTL之間的,認(rèn)為有且僅有一位不匹配;如果電壓低于VTL,則認(rèn)為至少有兩位不匹配。這樣,匹配線電壓被劃分為三個區(qū)域。
Figure 4 Simulation waveform of triple-value match line圖4 三值匹配線模擬波形
三值靈敏放大器MLTSA對三值匹配線的電壓進(jìn)行放大,供后續(xù)邏輯使用。MLTSA的輸出至少為兩位,表1給出一種可能的編碼方式,編碼由兩位組成,分別表示為MLA和MLB。
Table 1 Truth table of triple-value match line表1 三值匹配線真值表
圖5是MLTSA的一種電路實現(xiàn)結(jié)構(gòu)。該電路使用了兩個不同閾值(VM)的反相器。晶體管MT1和MT2組成高閾值反相器,其閾值為圖4中的VTH;MT4和MT5組成低閾值反相器,其閾值為VTL;MT3為一個傳輸管。由ML信號產(chǎn)生TA和TB后,通過D觸發(fā)器得到匹配線MLA和MLB,其值滿足表1的定義。
Figure 5 Structure of MLTSA圖5 匹配線三值靈敏放大器(MLTSA)結(jié)構(gòu)
為了設(shè)計精確的MLTSA,VTH和VTL必須進(jìn)行仔細(xì)調(diào)整,反相器的尺寸尤為關(guān)鍵。反相器的開關(guān)閾值VM可通過調(diào)整NMOS和PMOS尺寸的比例實現(xiàn)精確控制[5]。VM定義為Vin=Vout的點(diǎn),其值可以由電壓傳輸特性與直線Vin=Vout的交點(diǎn)求得。在這一區(qū)域中,由于VDS=VGS,因此兩個晶體管總是飽和的,使二者的電流相等即可得到VM的解析式。一般來說VDD足夠高,能夠保證晶體管處于飽和狀態(tài),即VDSAT<VM-VT。與此同時,忽略溝長調(diào)制效應(yīng),于是有:
其中,kn和kp分別為NMOS和PMOS管的器件增益因子,當(dāng)工藝確定時為常數(shù),VDSATn和VDSATp分別為NMOS和PMOS管的飽和電壓,VM為反相器的開關(guān)閾值電壓,VTn和VTp分別為NMOS和PMOS管的閾值電壓,VDD為電源電壓。
求解VM得到:
其中,r表示為:
其中,υsatn和υsatp分別為NMOS和PMOS管的載流子飽和漂移速度,Wn和Wp分別為NMOS和PMOS管的溝道寬度。
假設(shè)兩晶體管柵氧厚度相同。當(dāng)VDD與VTn和VTp及VDSATn和VDSATp相比較大時,式(2)簡化為:
式(4)表明,閾值VM取決于比值r,它是PMOS與NMOS管相對驅(qū)動強(qiáng)度的比。若需要VM較大,可提高r的值,如果降低r的大小,將會提高NMOS晶體管的強(qiáng)度,使得VM靠近GND。
由以上的推導(dǎo),可以得出使開關(guān)閾值等于VM的PMOS和NMOS管溝道寬度和長度之比:
其中,k′n和k′p分別為NMOS和PMOS管的工藝跨導(dǎo)參數(shù)。
對于一個輸入搜索字,TM-CAM可能輸出三種結(jié)果:
(1)不匹配位數(shù)為0。這時讀出對應(yīng)RAM中的一組數(shù)據(jù)及校驗位,同時計算搜索字校驗位。之后比較讀出和計算得到的校驗位,如果相同則為真匹配,反之為假匹配。
(2)不匹配位數(shù)為1。讀出對應(yīng)RAM中的一組數(shù)據(jù)及校驗位,同時計算搜索字校驗位。之后比較讀出和計算得到的校驗位,如果相同則為假失配,反之為真失配。
(3)不匹配位數(shù)大于或等于2。此時一定為真失配。圖6表示了本文提出的TM-CAM訪問算法。
Figure 6 Access algorithm of TM-CAM圖6 TM-CAM訪問算法
TM-CAM在RAM中增加了一個很小的CAM校驗位列,帶來的面積開銷也很小。三值匹配線機(jī)制和三值靈敏放大器對海明距離為1的情況進(jìn)行檢測,為判斷假失配創(chuàng)造了條件,但沒有增加額外的延時。搜索字校驗位計算與RAM讀操作并行進(jìn)行,延時被隱藏。TM-CAM訪問算法只增加了一級校驗位比較邏輯,但由于位數(shù)很少,邏輯簡單,只有極小的延時增加。分析來看,本文提出的TM-CAM結(jié)構(gòu)的面積開銷很小,對性能的影響幾乎可以忽略,因此具有很高的效率,能夠有效提高CAM電路的可靠性。
為了進(jìn)行評估,本文采用65nm CMOS工藝實現(xiàn)了TM-CAM的三值匹配線和三值靈敏放大器,并采用SPICE模擬進(jìn)行驗證。
在TM-CAM結(jié)構(gòu)中,三值靈敏放大器決定了三值匹配線中三種值的電壓范圍,是設(shè)計的重點(diǎn)。在圖5由MT1和MT2組成的反相器中,需要將轉(zhuǎn)換閾值提高到VDD/2以上,應(yīng)盡量增大PMOS管、減小NMOS管的尺寸。而由MT4和MT5組成的反相器中正好相反。圖7a表示MT1和MT2組成的反相器的電壓傳輸特性,由于PMOS管較大而NMOS管較小,其電壓傳輸特性曲線右移。對于MT4和MT5組成的反相器與之相反,如圖7b所示。兩個反相器的轉(zhuǎn)換閾值VM分別約在0.65V和0.40V附近,這也決定了三值匹配線機(jī)制中匹配線電壓的三個范圍。
圖8表示三值靈敏放大器的傳播延時。在后一級連接D觸發(fā)器的情況下,兩個傳播延時分別為33.6ps和34.1ps。這與普通的匹配線靈敏放大器延時相近,因此三值匹配線機(jī)制不會對CAM的整體性能造成任何影響。
圖9表示TM-CAM軟錯誤注入模擬結(jié)果。當(dāng)0位不匹配時,匹配線ML大于0.65V,經(jīng)過三值靈敏放大器后,MLA和MLB都為邏輯“0”;當(dāng)一位不匹配時,ML的電壓在時鐘下降沿到來之前降低到0.40V~0.65V,MLA和MLB的值分別為邏輯“1”和“0”;當(dāng)兩位及以上不匹配時,ML的電壓降低到0.40V以下,MLA和MLB的值都為邏輯“1”。實驗結(jié)果表明,TM-CAM結(jié)構(gòu)能夠準(zhǔn)確檢測出三種匹配情況。
在TM-CAM訪問算法中,如果存在大量海明距離為1的真失配,有可能帶來較大的性能損失。這是由于在海明距離為1的真失配時,普通的CAM不會進(jìn)行任何操作,而在TM-CAM中要將對應(yīng)的RAM項讀出并比較校驗位。此時RAM的讀操作、校驗位計算和比較都是無效操作,將顯著降低系統(tǒng)的性能。
Figure 7 Inverter voltage-transfer characteristic of MLTSA圖7 三值靈敏放大器中反相器電壓傳輸特性
Figure 8 Simulation waveform of MLTSA圖8 匹配線三值靈敏放大器模擬波形
本文使用Sim-Alpha模擬器對由CAM-RAM構(gòu)建的DL1Cache、IL1Cache和DTLB的失效率進(jìn)行統(tǒng)計。模擬程序選用SPEC2000中的九組整數(shù)測試程序。結(jié)果表明,DL1Cache、IL1Cache和DTLB的平均失效率分別為0.88%、0.28%和0.01%。由于海明距離為1的真失配屬于訪問失效中很少的一種情況,因此發(fā)生的概率會很低,這種情況引起的性能損失可以忽略。
本文提出了一種容軟錯誤相聯(lián)存儲器結(jié)構(gòu)TM-CAM,通過三值匹配線機(jī)制和三值靈敏放大器,能夠檢測CAM中發(fā)生的所有假匹配和假失配錯誤,其結(jié)構(gòu)簡單有效。在檢測出錯誤后,可以采用相應(yīng)的機(jī)制重新執(zhí)行指令,或重取數(shù)據(jù)來改正錯誤。對于可靠性要求較高的系統(tǒng),校驗位也可以使用ECC等編碼機(jī)制,如果發(fā)生錯誤可以通過編碼來自行糾正。實驗結(jié)果表明,本文所提出的技術(shù)能夠以較小的開銷有效地緩解CAM中的軟錯誤問題。
[1] Sun Y,Zhang J X,Zhang M X,et al.Reducing vulnerability to soft errors in sub-100nm content addressable memory circuits[J].Journal of Semiconductors,2010,31(2):025013-1-025013-5.
[2] Mupid A,Mutyam M,Vijaykrishnan N,et al.Variation analysis of CAM cells[C]∥Proc of International Symposium&Exhibits on Quality Electronic Design,2007:333-338.
[3] Li Xiao-wei,Hu Yu,Zhang Lei,et al.Fault tolerant design of digital integrated circuits[M].Beijing:Science Press,2011.(in Chinese)
[4] Luong D H.Soft-error tolerant cache architectures[D].Tokyo:The University of Tokyo,2006.
[5] Rabaey J M,Chandrakasan A,Nikolic B.Digital integrated circuits:A design perspective[M].2nd Edition.NJ:Prentice Hall,2003.
附中文參考文獻(xiàn):
[3] 李曉維,胡瑜,張磊,等.數(shù)字集成電路容錯設(shè)計[M].北京:科學(xué)出版社,2011.