1引言
三态按内容寻址存储器(TernaryContentAddressableMemory,TCAM)不仅可以像SRAM、DRAM 一样进行读写操作,还具有三态搜索功能,能够提供1、0及不关心(X)态的搜索支持,并在一个时钟周期内给出搜索结果,在路由网络查找、报文分类以及全相连Cache等相关计算机领域有着极其广泛的用途.但随着集成电路进入超深亚微米时代,存储器的软错误率(SoftErrorRate,SER)大大增加.而TCAM 采用了对软错误敏感的SRAM 单元,并且由于TCAM 的地线反弹噪声严重以及很难实现版图交织技术,因此TCAM 比普通存储器更易受到软错误的影响.更重要的是,增加加固电路必将带来更多的功耗,使TCAM 的高功耗问题雪上加霜.因此,如何实现低功耗的TCAM 抗软错误电路就成为人们新的研究热点.
目前国内外对CAM 的抗辐射研究主要有以下几点:(1)H.J.Lee提出一种可以瞬时检测软错误的电路结构,他在存储器的每个字电路内部进行奇偶校验,其优点是电路结构容易实现,但随着多位翻转概率的增加,其局限性也愈发明显;(2)K.Pagiamtzis等人提出了一种基于ECC技术的适合于BiCAM(二值CAM,只能存储0、1,不能存储X)的加固方案,该方案结构精炼,免疫效果显著,但只适用于BiCAM.此外,DRAM 拥有较高的临界电荷,并且其刷新特性能很好地解决软错误带来的逻辑问题,但如何将其运用到TCAM 的抗辐射应用中还有待商榷.
基于上述问题,本文改进了一种基于刷新机制
的TCAM 系统结构.
2TCAM 系统原理介绍
HideyukiNoda等人提出了一种采用相关联eDRAM(嵌入式DRAM)的高软错误免疫的TCAM 结构,该结构不断从eDRAM 中读取数据(经ECC编码),然后将错误的数据改正后再写入到存储器中.通过不断地刷新,可以防止软错误的积累,从而减少SER.但随着工艺尺寸不断缩小,该结构也出现了一系列的问题.首先,虽然NOR 型TCAM 结构的搜索速度极快,但是功耗问题却限制了其在低功耗领域的发展.这是因为从概率方面来看,TCAM 的匹配输出绝大多数为失配,全匹配只占极少数,而NOR型结构只要有一位发生失配就会产生功耗,故NOR型TCAM 功耗极大.其次,尽管单管DRAM 单元的基本操作简单,但其读即刷新的特性使得系统必须先进行数据的正确性分析,再依据结果判断是否进行纠错和写回,从而增加了系统的时序复杂度.最后,由于该系统只有一组汉明编码和译码纠错电路,故只能针对一位软错误进行纠正,无法修复多位翻转造成的逻辑错误.
本文针对该结构进行了适当的改进,系统结构:通过采用NAND型TCAM 结构以及新型匹配线技术来降低搜索功耗;用三管DRAM代替单管DRAM,以此优化系统时序;采用两组左右半区分工的汉明编码和译码纠错电路来消除部分两位软错误翻转所带来的影响.因此,整个系统是以TCAM 为核心,利用eDRAM 的刷新特性,将经过汉明码纠正的数据重写到TCAM内,从而实现抗辐射功能.
系统的时序.work信号为功能选择信号.当work信号为低电平时,系统进行外部写操作,此时外部数据通过位线(BL)写入eDRAM 和TCAM 当中.TCAM 内存储的是原始数据,而eDRAM 则存储经过汉明编码后的数据.当外部数据逐字写入TCAM 和eDRAM 后,work信号变为高电平,以表示系统拒绝接收外部数据,开始进行读、搜索以及刷新操作.刷新一方面是补偿eDRAM由于漏电造成的电荷损失,另一方面则是将经过译码纠正的数据重写到TCAM 和eDRAM 内,达到软错误免疫和纠正的目的.
假设系统在t0时刻发生了粒子轰击,对TCAM或eDRAM 的某一位造成了翻转.此时,该系统将不断地从eDRAM 中读取经过汉明编码的数据,然后将错误的数据修正后再写入到TCAM 中,从而防止软错误的积累.若TCAM 内发生的是两位翻转,系统也可以将eDRAM 的正确数据重写到TCAM 内,以此达到纠错的目的.由于本文采用了独特的左右双半区独立工作的汉明编码和译码纠错电路,因此假若两位错误发生在各自译码电路的工作区域,那么就与一位纠错相似,系统可以完成两位翻转的纠错.但若两位错误发生在同一工作区域,系统将无法进行错误修复.例如,72位源码分为高36位和低36位进行汉明编码,得到的42位编码数据分别存入DRAM 的左半区和右半区.若两位错误中一位发生在左半区,另一位发生在右半区,则系统可以修复该错误;若两位错误同时发生在左半区或右半区,则系统不能对其进行纠错.
3系统关键电路的设计与分析
3.1低功耗TCAM 匹配线设计
本文所采用的低功耗TCAM 匹配线结构示意图.该结构由多级串联构成,每一级由一个预充电路和四个NAND型TCAM 单元组成.预充电路由pre_clk信号控制,当其为低电平时,电路给其内部预充节点进行预充;当变为高电平后,该预充点将根据是否发生匹配来进行放电或保持.该结构的工作原理是:若第一级TCAM 发生匹配,那么第一级的匹配输出将发生翻转,指使第二级进行匹配判断;若第一级TCAM 没有发生匹配,则匹配输出保持不变,从而第二级也将保持在预充电阶段,不进行求值操作;以此类推.可以预见,只有当前一级匹配成功后,下一级才开始进行匹配判断.换句话说,只有匹配成功的级数才会产生功耗,失配的级数不会产生功耗,这样就大大降低了系统在搜索时产生的功耗.第一级匹配成功,其预充电路输出翻转信号;而第二级由于没有达到全匹配,因此其输出保持不变,导致第三级始终维持在预充电阶段,最终输出失配信息.三级电路中,只有前两级产生了功耗,并且第二级的功耗远小于第一级,从而达到降低搜索功耗的目的.
该匹配线最关键的地方是预充电路的设计.预充电路的本质是多米诺电路,因此PMOS反馈管宽长比的选择成为其中的重中之重.若宽长比太大,则会导致电路的上拉能力不足,从而产生严重的漏电现象,导致失配时预充点无法保持高电平;若宽长比太小,则会削弱电路的下拉能力,求值时无法将预充点下拉到GND.预充电路的设计思想,其中MP0为反馈管,a点为预充点.设计分为两步:第一步,让最远的TCAM 单元失配,其他全匹配,此时a点的电荷将会在失配处夹断.调整MP0,使得输出可以保持高电平.这样就能保证在最大漏电情况下有足够的上拉能力.第二步,进行全匹配,此时a点电荷将全部流入GND.再次调整MP0,使得输出变为低电平.这样就在有较强上拉能力的情况下,电路还有足够的下拉能力.两者取平均即为MP0的宽长比.
3.2汉明编码和译码纠错电路的实现
汉明码作为一种高码率的单位纠错编码,以其简单、高效且易于工程实现的优点,至今仍是应用最广泛的一类码.现以(4,7)汉明码为例,简单描述本文所采用的汉明编码和译码纠错电路的设计思路.
根据算式:2k-1k+m(m 为源码位宽,k 为校验位位宽),4位源码的校验位为3位,分别位于20 位(X0)、21 位(X1)以及22 位(X3).以矩阵和偶检验为基准,算出校验位上的值,而其他位则由源码按顺序填入.汉明编码电路,其核心为偶校验电路.汉明译码纠错电路.根据译码原理,首先利用偶校验检查编码后的数据是否出错.若没有发生错误,则偶校验检测器全输出0,即3-8译码器输出全为0,此时,同或门的一个输入端将一直保持高电平,因此,译码的输出即为同或门另一个输入端的输入,即源码数据,也就完成了译码操作;若发生错误,偶校验电路将生成发生错误的数据位数,错误位经过3-8译码器译码后其对应的输出将变为1,此时,该错误位上的同或门的一个输入端变为0,那么译码输出则为同或门另一个输入的由此可见,当左右半区各自对应一组汉明编码和译码纠错电路且发生两位翻转的情况时,若每个半区内只有一位翻转,那么系统就能对该两位错误进行纠正;反之,若两位错误同时位于同一半区,由于汉明码不能对两位及以上错误进行纠正,则系统也将不能纠错.
3.3三管DRAM 单元
eDRAM 结构是基于单管DRAM 单元的存储结构.其读写操作极为简单.在写周期期间数据被放在BL上.当存储器进入读周期时,电容将根据数据值的不同进行充电或放电.当然,在读操作之前,WL首先被预充.当WL打开时,根据BL上的电压波动判断读出的数据.并且,单管DRAM 的读操作即为刷新操作,即读数据的同时,也完成了数据的刷新.此时,若DRAM 内存放的是错误数据,读数据的同时也会将错误数据再次刷新到DRAM 内部.因此原系统需要先判断读出数据是否正确,再根据判断的结果进行纠错和写回,这就导致其在刷新纠错时的时序操作过于复杂.
为了解决上述问题,本文采用三管DRAM 单元以替代单管单元.尽管增加了面积开销,但其读写分离的特性使得三管DRAM 单元更适用于抗辐射TCAM 系统.在三管DRAM 单元中,存放在单元内的数据不受读操作的影响.更重要的是,三管DRAM 单元采用了双字线,即读和写各占一条字线.当其进行刷新操作时,只需先读出单元内存放的数据,再打开写字线,就可将数据重写到DRAM内,即完成了刷新操作.可以看出,系统只需将汉明译码纠错电路放在读路径,汉明编码电路放在写路径,刷新的同时也实现了纠错的功能,从而避免了单管DRAM 单元在译码前要进行数据判断的操作,降低了时序复杂度.此外,存储数据的非破坏特性使它对嵌入式存储器的应用极具吸引力.
4电路测试和仿真分析
4.1低功耗抗软错误TCAM 系统仿真策略
为了检验该结构的抗软错误能力以及低功耗特性,本文搭建了一个完整的168bit的系统,工艺库为SMIC0.13m1.2VCMOS工艺库,仿真软件为Hspice.仿真可分为无软错误时的功能仿真和出现软错误时的免疫性能仿真:前者检验被加固后的TCAM 电路功能以及速度、功耗等方面是否受到影响;后者利用S.Satoh等人提出的粒子辐射模型,即I(t)= Qt2-t1e-tt2-e-t( t1)或I(t)=- Qt2-t1e-tt2-e-t( t1)来检验加固后TCAM 对各种情况下出现的软错误的免疫能力.其中,Q 为引发翻转的临界电荷,t2为脉冲下降时间常数,t1为脉冲上升时间常数.上式分别表示在t时刻引发的01以及10的翻转.利用Spice语言描述该等效模型,并将其插入电路网表进行仿真.
4.2仿真结果与分析
功耗的仿真结果.相比于传统匹配线,本文中的新型匹配线功耗有了大幅度的降低.并且,其功耗还会随着存储器位宽的增加而进一步降低.此外,再采用该TCAM 匹配线后,抗辐射系统的搜索功耗仅为7.5fJbitsearch-1,与加固前(5.8fJbitsearch-1)相比,功耗只增加了29.8%.这是因为系统在进行搜索操作时,其他诸如读、写、刷新等操作都被禁能,只有TCAM 中的搜索模块在工作.并且,先进的低功耗NAND型TCAM匹配线结构更是降低了搜索的平均功耗.尽管与未加固相比有所提高,但提高的部分主要来源于系统内增加的缓冲器组和触发器组.其他的数据显示,系统的读取功耗为6.75fJ/bit,刷新功耗为24.83fJ/bit.显然,刷新操作占据了系统平均功耗的绝大部分.这里的功耗计算包含了系统的全部模块,不单单指匹配线.此外,由于加固电路未改变TCAM 的搜索路径,因此系统的搜索速度并未受加固的影响.
列出了本文所实现的抗软错误TCAM对八种情况下的软错误的免疫能力.可以看出,系统对所有的一位翻转都有极强的免疫能力,表现出极好的抗软错误特性.并且,当TCAM 发生多位翻转,且eDRAM 没有发生多位翻转时,系统也能进行正确的逻辑运算.此外,若eDRAM 内发生了单地址上的两位翻转,且两位翻转分别发生在左右汉明码电路各自的工作区域,即每组汉明码电路只对应一位软错误,此时根据汉明译码纠错的原理,系统依旧可以像发生一位错误一样,在系统刷新时进行错误纠正.但是,若两位翻转发生在同一汉明码电路的工作区域(同在左半区或右半区),系统就不能进行纠错,电路将把译码输出的错误数据刷新到TCAM 内部,从而导致搜索错误.因此,只有当eDRAM 内发生三位及以上翻转或者在同一汉明码电路的工作区域内发生两位及以上翻转的情况下,系统才会出错,否则系统就可对发生错误的位置进行纠正,从而达到免疫的目的.
5结束语
改进了一种基于刷新机制的TCAM 结构,通过新型NAND型TCAM 匹配线降低了系统功耗,双半区工作模式的汉明编码和译码纠错电路使得系统能免疫所有一位翻转及部分两位翻转,读写分离的三管DRAM 单元不仅简化了嵌入汉明码模块带来的刷新时序问题,其高临界电荷的特性更解决了TCAM在深亚微米时代严重的软错误现象.该系统的搜索功耗与未加固时相比只提高了29.8%,搜索速度未受影响.该系统对TCAM的低功耗及抗软错误加固技术的研究具有一定的参考价值.