TM-CAM:一种高效的容软错误相联存储器*
2014-09-29黎铁军王发源张民选
孙 岩,黎铁军,王发源,张民选
(国防科学技术大学计算机学院,湖南 长沙 410073)
1 引言
相联存储器CAM(Content Addressable Memory)可对输入的待比较数据与所存储的数据进行全并行的比较。由于它速度很快,广泛应用于需要高速全相联的局部数据搜索应用中[1]。在微处理器中,地址转换缓冲器和一些高速Cache就是由CAM和SRAM组成CAM-RAM结构,通过对输入的地址和CAM中存储的内容进行比较来命中SRAM中相应的项,从而得到需要访问的数据[2]。CAM-RAM结构具有高速度和低功耗的特性,因此是一种常用且重要的部件。
作为存储部件的一种,CAM对软错误非常敏感。当集成电路的特征尺寸减小到纳米级,CAM因软错误引起的可靠性问题变得更加严峻[3]。与随机访问存储器不同,CAM无法使用错误保护码来纠正软错误。CAM一般处于存储部件的关键路径上,开销较大的保护技术会严重影响系统性能。因此,针对CAM研究开销小、结构简单的软错误缓解技术具有重要的意义。
2 容软错误CAM结构
CAM对输入的搜索字进行比较,一般没有读操作,因此不能直接在CAM上用编码的方法检测软错误。然而,在CAM-RAM结构中,CAM中存储地址,RAM中存储数据,这为CAM使用错误编码提供了可能。有研究[4]在CAM-RAM结构的RAM阵列中增加一列存储单元,用于储存对应CAM项的校验位,如图1所示。
Figure 1 Structure of soft error tolerance CAM图1 容软错误CAM结构
当输入搜索字与CAM中的一项匹配时,该CAM项的校验位将会随着相对应的RAM项读出,与此同时搜索字的校验位也被计算出来。接着两个校验位进行比较,如果结果相同,说明该匹配正确,为真匹配,反之为假匹配。该方法只能检测出假匹配,却不能检测出假失配。文献[4]通过使用一种称为“近似匹配(Close Hit)”的检测方法来检测假失配。但是,这种方法较复杂,带来的面积开销和性能损失也相对较大。本文针对这一问题提出TM-CAM结构,使用一种高效的三值匹配线机制检测假失配。该方法相对简单,面积开销较小,性能损失几乎可以忽略不计。
3 TM-CAM结构
3.1 三值匹配线机制
CAM中的假失配是指当输入搜索字与待比较字原本应当匹配,但待比较字的一位发生翻转,导致比较结果错误地不匹配。因此,在只发生一位错误的前提下,假失配应当表现为搜索字与CAM中存储字只有一位不相同,即海明距离为1。因此,如果能检测出搜索字与CAM存储字中海明距离为1的项,即可能为假失配。
为此,本文提出三值匹配线机制,实现搜索字与存储字海明距离为1的检测。与传统的匹配线不同,三值匹配线机制中除了逻辑“0”和“1”,还存在介于二者之间的第三个值。对于或非CAM结构来说,当搜索字与存储字的所有位都匹配时,与匹配线连接的所有下拉NMOS管关闭,匹配线为逻辑“1”;当有且仅有一位不匹配时,NMOS管有一个打开,由于此时管电阻较大,匹配线在一定时间内放电到逻辑“0”与“1”中间的状态;当存在两位或以上不匹配时,下拉NMOS管至少两个导通,匹配线放电到逻辑“0”。因此,三值匹配线不仅能检测出匹配或不匹配,而且还能辨别出一位或一位以上不匹配。
图2是本文提出的三值匹配线示意图。矩形框表示一个CAM单元,NMOS管为下拉管,匹配线连接到一个灵敏放大器上。为了实现三值匹配线机制,需要对匹配线灵敏放大器进行一定的修改,使之成为匹配线三值灵敏放大器MLTSA(Match Line Ternary Sense Amplifier)。
Figure 2 Triple-value match line mechanism图2 三值匹配线机制
图3a表示普通匹配线的模型。当所有位都匹配的情况下,匹配线模型为一个电容CML,表示匹配线的寄生线电容和与之相连的下拉晶体管漏极电容;当一位不匹配的情况下,匹配线的模型为一个等效电容CML和一个电阻REQ并联的形式,REQ为不匹配的CAM单元中下拉晶体管的等效电阻。当所有位都匹配时,由于没有接地的通路,匹配线维持逻辑“1”;当一位不匹配时,由于晶体管等效电阻REQ不大,电容CML中的电荷很快泄放掉,匹配线的值成为逻辑“0”。
图3b表示本文提出的三值匹配线模型。当所有位匹配时与普通匹配线类似,为一个等效电容CML,匹配线电压在电源电压附近;当一位不匹配时,匹配线的模型为等效电容CML和等效电阻REQ1并联的形式,但REQ1较大,一定时间内(约为半时钟周期)CML中的电荷无法完全泄放,匹配线电压介于地和电源电压之间;当两位不匹配时,匹配线模型为等效电容CML与等效电阻REQ2并联的形式,由于此时REQ2减小,电荷在一定时间内能够泄放掉大部分,匹配线的电压在地电压附近;当两位以上不匹配时,等效电阻进一步减小,匹配线的电压达到更低的水平。
Figure 3 Models of match line图3 匹配线模型
图4表示三值匹配线模拟波形。设定两个阈值电压:高阈值电压VTH和低阈值电压VTL,如果匹配线电压大于VTH,认为所有位匹配;电压介于VTH和VTL之间的,认为有且仅有一位不匹配;如果电压低于VTL,则认为至少有两位不匹配。这样,匹配线电压被划分为三个区域。
Figure 4 Simulation waveform of triple-value match line图4 三值匹配线模拟波形
3.2 三值灵敏放大器
三值灵敏放大器MLTSA对三值匹配线的电压进行放大,供后续逻辑使用。MLTSA的输出至少为两位,表1给出一种可能的编码方式,编码由两位组成,分别表示为MLA和MLB。
Table 1 Truth table of triple-value match line表1 三值匹配线真值表
图5是MLTSA的一种电路实现结构。该电路使用了两个不同阈值(VM)的反相器。晶体管MT1和MT2组成高阈值反相器,其阈值为图4中的VTH;MT4和MT5组成低阈值反相器,其阈值为VTL;MT3为一个传输管。由ML信号产生TA和TB后,通过D触发器得到匹配线MLA和MLB,其值满足表1的定义。
Figure 5 Structure of MLTSA图5 匹配线三值灵敏放大器(MLTSA)结构
为了设计精确的MLTSA,VTH和VTL必须进行仔细调整,反相器的尺寸尤为关键。反相器的开关阈值VM可通过调整NMOS和PMOS尺寸的比例实现精确控制[5]。VM定义为Vin=Vout的点,其值可以由电压传输特性与直线Vin=Vout的交点求得。在这一区域中,由于VDS=VGS,因此两个晶体管总是饱和的,使二者的电流相等即可得到VM的解析式。一般来说VDD足够高,能够保证晶体管处于饱和状态,即VDSAT<VM-VT。与此同时,忽略沟长调制效应,于是有:
其中,kn和kp分别为NMOS和PMOS管的器件增益因子,当工艺确定时为常数,VDSATn和VDSATp分别为NMOS和PMOS管的饱和电压,VM为反相器的开关阈值电压,VTn和VTp分别为NMOS和PMOS管的阈值电压,VDD为电源电压。
求解VM得到:
其中,r表示为:
其中,υsatn和υsatp分别为NMOS和PMOS管的载流子饱和漂移速度,Wn和Wp分别为NMOS和PMOS管的沟道宽度。
假设两晶体管栅氧厚度相同。当VDD与VTn和VTp及VDSATn和VDSATp相比较大时,式(2)简化为:
式(4)表明,阈值VM取决于比值r,它是PMOS与NMOS管相对驱动强度的比。若需要VM较大,可提高r的值,如果降低r的大小,将会提高NMOS晶体管的强度,使得VM靠近GND。
由以上的推导,可以得出使开关阈值等于VM的PMOS和NMOS管沟道宽度和长度之比:
其中,k′n和k′p分别为NMOS和PMOS管的工艺跨导参数。
4 TM-CAM访问算法
对于一个输入搜索字,TM-CAM可能输出三种结果:
(1)不匹配位数为0。这时读出对应RAM中的一组数据及校验位,同时计算搜索字校验位。之后比较读出和计算得到的校验位,如果相同则为真匹配,反之为假匹配。
(2)不匹配位数为1。读出对应RAM中的一组数据及校验位,同时计算搜索字校验位。之后比较读出和计算得到的校验位,如果相同则为假失配,反之为真失配。
(3)不匹配位数大于或等于2。此时一定为真失配。图6表示了本文提出的TM-CAM访问算法。
Figure 6 Access algorithm of TM-CAM图6 TM-CAM访问算法
TM-CAM在RAM中增加了一个很小的CAM校验位列,带来的面积开销也很小。三值匹配线机制和三值灵敏放大器对海明距离为1的情况进行检测,为判断假失配创造了条件,但没有增加额外的延时。搜索字校验位计算与RAM读操作并行进行,延时被隐藏。TM-CAM访问算法只增加了一级校验位比较逻辑,但由于位数很少,逻辑简单,只有极小的延时增加。分析来看,本文提出的TM-CAM结构的面积开销很小,对性能的影响几乎可以忽略,因此具有很高的效率,能够有效提高CAM电路的可靠性。
5 实验与分析
为了进行评估,本文采用65nm CMOS工艺实现了TM-CAM的三值匹配线和三值灵敏放大器,并采用SPICE模拟进行验证。
在TM-CAM结构中,三值灵敏放大器决定了三值匹配线中三种值的电压范围,是设计的重点。在图5由MT1和MT2组成的反相器中,需要将转换阈值提高到VDD/2以上,应尽量增大PMOS管、减小NMOS管的尺寸。而由MT4和MT5组成的反相器中正好相反。图7a表示MT1和MT2组成的反相器的电压传输特性,由于PMOS管较大而NMOS管较小,其电压传输特性曲线右移。对于MT4和MT5组成的反相器与之相反,如图7b所示。两个反相器的转换阈值VM分别约在0.65V和0.40V附近,这也决定了三值匹配线机制中匹配线电压的三个范围。
图8表示三值灵敏放大器的传播延时。在后一级连接D触发器的情况下,两个传播延时分别为33.6ps和34.1ps。这与普通的匹配线灵敏放大器延时相近,因此三值匹配线机制不会对CAM的整体性能造成任何影响。
图9表示TM-CAM软错误注入模拟结果。当0位不匹配时,匹配线ML大于0.65V,经过三值灵敏放大器后,MLA和MLB都为逻辑“0”;当一位不匹配时,ML的电压在时钟下降沿到来之前降低到0.40V~0.65V,MLA和MLB的值分别为逻辑“1”和“0”;当两位及以上不匹配时,ML的电压降低到0.40V以下,MLA和MLB的值都为逻辑“1”。实验结果表明,TM-CAM结构能够准确检测出三种匹配情况。
在TM-CAM访问算法中,如果存在大量海明距离为1的真失配,有可能带来较大的性能损失。这是由于在海明距离为1的真失配时,普通的CAM不会进行任何操作,而在TM-CAM中要将对应的RAM项读出并比较校验位。此时RAM的读操作、校验位计算和比较都是无效操作,将显著降低系统的性能。
Figure 7 Inverter voltage-transfer characteristic of MLTSA图7 三值灵敏放大器中反相器电压传输特性
Figure 8 Simulation waveform of MLTSA图8 匹配线三值灵敏放大器模拟波形
本文使用Sim-Alpha模拟器对由CAM-RAM构建的DL1Cache、IL1Cache和DTLB的失效率进行统计。模拟程序选用SPEC2000中的九组整数测试程序。结果表明,DL1Cache、IL1Cache和DTLB的平均失效率分别为0.88%、0.28%和0.01%。由于海明距离为1的真失配属于访问失效中很少的一种情况,因此发生的概率会很低,这种情况引起的性能损失可以忽略。
6 结束语
本文提出了一种容软错误相联存储器结构TM-CAM,通过三值匹配线机制和三值灵敏放大器,能够检测CAM中发生的所有假匹配和假失配错误,其结构简单有效。在检测出错误后,可以采用相应的机制重新执行指令,或重取数据来改正错误。对于可靠性要求较高的系统,校验位也可以使用ECC等编码机制,如果发生错误可以通过编码来自行纠正。实验结果表明,本文所提出的技术能够以较小的开销有效地缓解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.
附中文参考文献:
[3] 李晓维,胡瑜,张磊,等.数字集成电路容错设计[M].北京:科学出版社,2011.