采用改进时序的低功耗组相联高速缓冲存储器的制作方法

文档序号:6448318阅读:259来源:国知局

专利名称::采用改进时序的低功耗组相联高速缓冲存储器的制作方法
技术领域
:本发明涉及采用改进后的时序控制设计的低功耗的多路组相联高速缓冲存储器(cache)。高速缓存即cache通常可根据映射方法的不同分为三种全相联映射cache,直接映射cache和组相联映射cache。在这三种Cache中,全相联映射Cache的命中率是最高的,但是它的命中取数时间和功耗也是最大的。直接映射cache的命中取数时间是最短的,但是它的命中率是最低的。组相联映射cache的命中率和命中取数时间处于全相联映射和直接映射cache之间,因此目前处理器中多数采用组相联cache作为片上高速缓冲存储器,通常在处理器中应用的是2路、4路、8路以及16路组相联cache。目前的组相联cache设计方法主要有以下两种(1)采用传统的四路datasram(datasram存储cache数据部分的静态存储器)与tagsram(tagsram存储cache标签部分的静态存储器)并行读出的时序,在tag比较器得出比较结果后选中一路数据输出。在这种读出时序的cache中降低功耗主要采用以下技术将datasram分块以减少字线和位线上的电容负载,采用电流读写方式以减少位线上的电压摆幅,使用脉冲控制信号以减少静态功耗等。采用这种控制时序的N路组相联cache要读出各路datasram的数据,因此在命中时浪费了(N-1)路的datasram读出功耗,而在Cache失效时则浪费了N路datasram的读出功耗。采用这种设计方法的组相联cache如A.KemalGoksel,RobertH.Krambeck,PhillipP.Thomas,MeanseaTsay,ChengYuehChen,Donaldg.Clemons,FrankD.Larocca,andLiang-pengMai,“AcontentAddressableMemoryManagementUnitwithOn-ChipDataCache”,IEEEJ.Solid-StateCircuits,vo1.24,pp.592-596,Oct.1989;HiroyukiMizuno,NozomuMatsuzaki,KenichiOsada,ToshinobuShinbo,NagatoshiOhki,HiroshiIshida,KoichiiroIshibashi,andTokuoKure,“A1-V,100-MHz,10-mWCacheUsingaSeperatedBit-LineMemoryHierarchyArchitectureandDominoTagComparators”,IEEEJ.Solid-StateCircuits,vol.31,pp.1618-1624,Nov.1996。(2)可预测组相联cache(PSApredictiveassociativecache)。这种组相联cache根据程序计数器PC的值或者根据流水线中load指令的目标地址值进行命中cache的预测,只对预测将要命中的一路datasram进行读出(和N路tag的读出并行进行),如果tag比较结果表明预测成功则数据直接经多路选择器输出,而如果tag比较结果表明预测失败时则需要抛弃已经读出的一路数据,再重新对真正命中的一路datasram进行读出。采用这种技术设计的电路如BCalder,D.GrunwaldandJ.Emer,“PredictiveSequentialCache.InProceedingsoftheSecondIEEESynposiumonHigh-PerformanceComputerArchitecture,Feb.1996;B.BatsonandT.N.Vijaykumar,“Reactiveassociativecaches”,InProceedingsofthe2001InternationalConferenceonParallelArchitecturesandCompiliaation,Sept.2001。这种设计方法的优点是在预测成功率高的时候可以得到很高的cache读取速度,同时由于只对一路(预测成功)或两路(预测失败)datasram进行读出,功耗比传统的N路datasram全部读出要降低许多。但是这种Cache的缺点也是很明显的首先硬件电路复杂度大大增加,需增加查找表(look-uptable)的硬件电路;其次电路最坏情况(worst-case)的命中取数时间(决定处理器最高工作频率的关键参数)比传统的数据并行读出cache增加60%以上,并且即使在cache不命中的情况下仍会对一路datasram进行读出,浪费了该路datasram的读出功耗。鉴于以上缺点,对高速低功耗cache的设计方法仍需进行进一步研究。本发明提出的N路组相联cache电路(这里N为2-16的整数)由tag部分11、data部分12、tag比较器15、输出数据多路选择器18组成,其电路框图如图1所示。其中tag部分11是由tag时序控制电路13和tag阵列及读写外围电路14经电路连接组成,data部分由data时序控制电路16和data存储阵列及外围读写电路17经电路连接组成。tag阵列及外围控制与读写电路14的电路框图如图2所示,该电路由tag存储阵列21、tag位线预充电电路22、tag阵列字线预译码及译码电路23、tag写数据驱动电路24以及tag数据读出灵敏放大器电路25经电路连接组成。data阵列及外围控制与读写电路的电路框图如图3所示,该电路由data存储阵列31、data位线预充电电路32、data阵列的字线预译码及译码电路33、data写数据驱动电路34及data数据读出灵敏放大器电路35经电路连接组成。其中的时序控制采用如下方式在对cache进行load操作时,datasram部分的读出在tag比较器的比较结果稳定后进行,且仅对经tag比较后命中的一路datasram进行读出。本发明中,在多路组相联cache的load操作开始后,tagsram的读操作进行的同时不对datasram进行读操作。在对cache进行load操作时,datasram部分的读出在tag比较器的比较结果稳定后进行,且仅对经tag比较后命中的一路datasram进行读出。而且对任何一路datasram的读操作都是由tag比较器的输出信号控制的,只有在该路命中的情况下才会对这一路datasram进行读出。本发明中,上述时序控制的具体过程如下在对组相联cache进行load操作时,首先由tag时序控制电路13产生tag读出控制信号(主要包括tag字线选择信号和tag灵敏放大器使能信号)对N路tag进行并行读出,在对tag存储阵列进行数据读出的时候data存储阵列不进行任何操作。读出的tag存储数据输入tag灵敏放大器(包含在14中),放大后的信号tag<0N-1>与输入的地址信号相应部分PA<0N-1>在tag比较器15中进行比较。tag比较器15的输出信号即tag命中信号输入到data的时序控制电路16中用以控制datasram的读出操作。如果有任何一路的tag与PA相等,则由该路的命中信号通过data时序控制电路16产生相应于命中的一路的datasram的字线选通信号和datasram的灵敏放大器使能信号,将相应的一路data读出及放大,并通过数据输出多路选择器18输出;如果tag比较器15的比较结果表明没有任何一路tag的数据与PA相等,说明处理器要读取的数据并不存储在高速缓存cache中,则不对任何datasram进行读出操作,由tag比较器15直接给出cache失效信号。本发明中,组相联cache的store操作时序与传统的并行读取cache和PSAcache都是相同的,即store操作的功耗并没有改变。电路的硬件组成与传统的并行读写组相联cache相比,并没有增加硬件复杂度,而load操作的功耗则比传统的并行读取组相联cache大幅度降低。在组相联cache命中时减少了(N-1)路datasram的读出功耗,而在cache失效是减少了N路datasram的读出功耗。与可预测组相联Cache(PSA)相比,本发明的电路硬件复杂度远低于PSA,并且最坏情况的cache取数时间短于PSA,本发明的cache电路在cache命中时的功耗与PSA基本相同,但在cache失效时的功耗比PSA少一路datasram的读出功耗。具体分析如下在一个组相联cache的load操作周期开始后,首先进行的是各路tagsram的读出操作,这段时间内datasram不进行任何操作。在各路tagsram的数据读出并经灵敏放大器放大后,由tag比较器将灵敏放大后的tag数据与输入地址相应部分的PA进行比较,如果比较结果相等,则hit<0N-1>中有一路信号为有效电平(假设h<k>有效),表明处理器要读取的数据存储在第k路datasram中,则接下来由hit<k>控制对第k路datasram进行读出和灵敏放大操作,并通过多路选择器将该路数据输出。相应于不同的load操作时序,传统的并行读出组相联cache、PSACache以及本发明的组相联cache在load操作中所消耗的功耗是不同的,图5所示是这三种不同load操作时序的组相联cache的读出功耗的比较。传统的并行读出组相联cache的load操作功耗主要由N路tagsram的读出功耗和N路datasram的读出功耗组成,在cache命中时浪费了(N-1)路datasram的读出功耗,而在cache失效时则浪费了N路datasram的读出功耗。可预测组相联cache(PSACache)的读出功耗有两种情况在预测成功时cache的load操作功耗包括N路tagsram的读出功耗和一路datasram的读出功耗,而在预测失败时则包括N路tagsram的读出功耗和两路datasram的读出功耗。本发明的组相联cache在cache命中时的load操作功耗为N路tagsram的读出功耗加上一路datasram的读出功耗,而在cache失效时的load功耗仅为N路tag的读出功耗。图2显示tag阵列及外围控制与读写电路的电路框图。图3显示data阵列及外围控制与读写电路的电路框图。图4显示三种不同控制时序的组相联cache的load操作时序图,图4(a)为传统并行读出组相联cache的load操作时序,图4(b)为PSACache的load操作时序,图4(c)为本发明的组相联cache的load操作时序。图5显示三种不同控制时序的组相联cache的功耗组成图。图6显示采用本发明的组相联cache命中时关键路径的电路图。图7显示采用本发明的组相联cache命中时的load周期时序信号波形图。图8显示采用本发明的时序控制方法设计的8KB四路组相联cache电路框图。图9显示应用本发明的控制时序实现的8KB四路组相联cache的仿真波形图。表1显示应用本发明的控制时序实现的8KB四路组相联cache的功耗与传统的并行读出组相联cache以及可预测组相联cache的功耗比较。图中标号11为tagsram部分,12为datasram部分,13为tag时序控制电路,14为tag阵列及读写外围电路,15为tag比较器,16为data时序控制电路,17为data存储阵列及外围读写电路,18为输出数据多路选择器,21为tag存储阵列,22为tag位线预充电电路,23为tag阵列字线预译码及译码电路,24为tag写据驱动电路,25为tag数据读出灵敏放大器电路,31为data存储阵列,32为data位线预充电电路,33为data阵列的字线预译码及译码电路,34为data写数据驱动电路,35为data数据读出灵敏度放大器电路。图4所示为三种不同组相联cache的load操作时序图,其中,图4(a)为传统并行读出组相联cache的load操作时序,图4(b)为PSACache的load操作时序,图4(c)为本发明的组相联cache的load操作时序。本发明的load操作的关键路径电路见图6所示,时序控制信号图见图7所示。以下的描述中均假定对控制信号而言高电平为有效电平。在一个load周期开始后,cache的全局地址信号addr变为该周期要读写的地址,图7中load信号变高,表示本周期进行cache的load操作。此时tagsram的读使能信号tag_rden变高,在字线电平稳定后tag阵列41的灵敏放大器的使能信号tag_sae也变高,则将N路tag_sram中存储的数据读出并放大,在灵敏放大器的输出信号稳定后,tag比较器的控制信号compare变为高电平,在tag比较器中将经灵敏放大后的tag信号与本周期的PA相比,在cache命中时比较器的输出hit<0n>会有一路为高电平,假定hit<k>为高电平,即第k路命中,则由hit<k>控制第k路datasram(12)的时序控制电路16产生该路datasram的读使能信号data_rden和灵敏放大器使能信号data_sae,将该路datasram中存储的数据读出并经各路datasram的多路选择和输出驱动电路18驱动后输出数据。图8所示为采用本发明提出的低功耗组相联cache设计方法设计的一个用于MIPS32处理器的8KB四路组相联cache的电路框图。该8KBCache采用标准的0.18umCMOS1P6M工艺实现。该电路的电路仿真波形如图9所示,经HSPICE仿真得到该电路工作于263MHz时的load功耗在cache命中时为195mW,cache失效时为162mW。该电路的load功耗与相同工艺实现的传统的并行读出组相联cache的load功耗以及可预测组相联Cache的load功耗比较见表1。从该表中可以清楚地看出采用本发明提出的低功耗组相联cache设计技术设计的8KB四路cache的功耗远低于传统的并行读出组相联cache,同时功耗也略低于电路复杂度更高的可预测组相联cache。表权利要求1.一种采用改进时序控制的低功耗多路组相联cache,由tagsram部分(11)、datasram部分(12)、tag比较器(15)、输出数据多路选择器(18)经电路连接组成。其特征在于tag部分(11)由tag时序控制电路(13)和tag阵列及读写外围电路(14)经电路连接组成,data部分由data时序控制电路(16)和data存储阵列及外围读写电路(17)经电路连接组成;tag阵列及外围控制与读写电路(14)由tag存储阵列、tag位线预充电电路、tag阵列字线预译码及译码电路、tag写数据驱动电路以及tag数据读出灵敏放大器电路经电路连接组成。data阵列及外围控制与读写电路由data存储阵列、data位线预充电电路、data阵列的字线预译码及译码电路、data写数据驱动电路及data数据读出灵敏放大器电路经电路连接组成;cache进行load操作时datasram部分的读出在tag比较器的比较结果稳定后进行,且仅对经tag比较后命中的一路datasram进行读出。2.根据权利要求1所述的低功耗多路组相联cache,其特征在于根据改进的时序控制,在多路组相联cache的load操作开始后,tagsram的读操作进行的同时不对datasram进行读操作。3.根据权利要求1所述的低功耗多路组相联cache,其特征在于在对多路组相联cache进行load操作时,任何一路datasram的读操作都是由tag比较器的输出信号控制的,只有在该路命中的情况下才会对这一路datasram进行读出。4.根据权利要求1所述的低功耗多路组相联cache,其特征在于在对多路组相联cache进行load操作时,cache命中时的功耗为各路tagsram的读出功耗与一路datasram的读出功耗之和,而在cache失效时的功耗则为各路tagsram的读出功耗。全文摘要本发明为一种采用改进时序控制的低功耗组相联高速缓冲存储器(cache)。其具体的load操作时序采取了在对各路tagsram进行读出的同时不对任何一路datasram进行读出操作的方式,在tag比较器的比较结果稳定后对命中的一路datasram进行数据读出操作(cache命中时)或不对任何一路datasram进行读出(cache失效时)。本发明的硬件电路由tagsram部分、datasram部分、tag比较器、data输出多路选择及驱动电路经电路连接组成。本发明的组相联高速缓冲存储器的功耗比传统的cache功耗大大降低。文档编号G06F12/00GK1450457SQ03116419公开日2003年10月22日申请日期2003年4月16日优先权日2003年4月16日发明者孙慧,王佳静,李侠,卜涛,郭靖,章倩苓,周晓方,闵昊申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1