基于记录缓冲的低功耗指令Cache方案
计算机研究与发展ISSN 1000-1239P CN 11-1777P T PJournal of Computer Research and Development 43(4):744~751,2006收稿日期:2005-02-01;修回日期:2005-06-22 基金项目:国家自然科学基金项目(60475012)基于记录缓冲的低功耗指令Cache 方案马志强 季振洲 胡铭曾(哈尔滨工业大学计算机科学与技术学院 哈尔滨 150001)(mzq@pact5181hit 1edu 1cn)A Low -Power Instruction Cache Design Based on Record BufferM a Zhiqiang,Ji Zhenzhou,and Hu Mingzeng(School of Comp uter Science and T echnology ,H ar bin I ns titute of T echnology ,H ar bin 150001)Abstract Most modern microprocessors employ on -chip caches to bridge the enormous speed disparities be -tw een the main memory and central processing unit (CPU ),but these caches consume a sig nificant fraction of total energ y dissipation,especially the pow er dissipated by instruction cache itself is often a significant part of the pow er dissipated by the entire on -chip caches 1Using buffer can filter most of instruction cache accesses and reduce it .s power consumption,but there arestill m any unnecessary data array accesses left,based on this idea 1In this paper,a low -pow er instruction cache called RBC is proposed 1With the record buffer and the modification on data array,RBC can filter most of the unnecessary cache activ ities,thus re -ducing energ y consumption significantly 1Ex periments on 10SPEC2000benchmarks show that,compared w ith conventional block buffering cache,24133%energy savings for instruction cache can be achieved,at the cost of only 6101%slow dow n and 3175%area overhead 1Key words low -power;instruction cache;buffer;CPU摘 要现代微处理器大多采用片上Cache 来缓解主存储器与中央处理器(CPU )之间速度的巨大差异,但Cache 也成为处理器功耗的主要来源,尤其是其中大部分功耗来自于指令Cache 1采用缓冲器可以过滤掉大部分的指令Cache 访问,从而降低功耗,但仍存在相当程度不必要的存储体访问,据此提出了一种基于记录缓冲的低功耗指令Cache 结构RBC 1通过记录缓冲器和对存储体的改造,RBC 能够过滤大部分不必要的存储体访问,有效地降低了Cache 的功耗1对10个SPEC2000标准测试程序的仿真结果表明,与传统基于缓冲器的Cache 结构相比,在仅牺牲6101%处理器性能和3175%面积的基础上,该方案可以节省24133%的指令Cache 功耗1关键词低功耗;指令Cache;缓冲器;CPU中图法分类号 T P3021 引 言随着集成工艺的发展,芯片的集成度和速度都得到极大的提高,由此带来的功耗问题也越来越突出1大量的能量消耗给封装、散热、供电及可靠性带来很大的麻烦,而且会降低移动设备中电池的使用寿命1现代的处理器大多采用片上Cache 来弥合主Cache访问也产生相当程度能量消耗,例如DEC 21164和Intel StrongARM-110分别有25%和43%的功耗来自于片上Cache[1,2]1因此,作为功耗的主要来源,Cache便成为降低整个处理器功耗的理想选择1近年来出现了很多结构级低功耗Cache技术1 Phased Cache[3]采用串行的访问方式,数据读取要等到Tag比较结束后方可进行,避免了不必要处存储体访问,但可能因增加访问周期而影响性能1Filter Cache[4]、L-cac he[5]、块缓冲(block buffering)[6]和多行缓冲器(multiple line buffer)[7]等在CPU与L1级Cache之间增加一级更小的L0级存储体,如果它能承担绝大部分L1级Cache访问,就可以有效降低其功耗,块缓冲方法在后面还会详细介绍1文献[7]还提出了另一种方法,它将Cache的存储体按照横向或纵向分为多个子块,只有数据所在的子块会被访问,减少了多余的活动量1可重构Cache则动态地调节硬件参数(如容量、块大小等),采用对不同应用选择不同策略的方法降低功耗[8,9]1还有一些基于压缩的低功耗技术,例如:FV-CACHE[10]和DZC-CACH E[11]用较少存储空间保存编码后的数据,一定程度上减少了Cache的访问量1通常指令Cache(I-Cache)的访问量较数据Cache(D-Cache)要大得多,所以I-Cache的功耗占据主要部分1本文针对I-Cache访问特点,提出一种基于记录缓冲的低功耗Cache结构RBC1利用记录缓冲跟踪程序的执行历史区分有效指令和无效指令,并且通过存储体改造过滤无效访问,RBC能够有效降低I-Cache的功耗12传统块缓冲C ache结构RBC是一种基于缓冲器的Cache设计方案,在介绍具体的结构前,我们首先来分析传统块缓冲Cache模型BBC1图1所示为传统BBC结构模型,其主要思想是:Cache块较大,对于大多数程序来说,指令流具有很好的时空局域性,连续的多次访问很可能命中同一块,如果在首次访问时将该块内容用缓冲器保存起来,接下来就不需要再访问存储体1因为访问缓冲器的功耗远小于访问存储体,整个Cache功耗便被节省下来1Fig11Block buffering cache1图1基于块缓冲的Cache结构缓冲命中率是评价缓冲器性能最重要的指标,代表了缓冲器过滤存储体访问的能力,它与缓冲块容量和数量息息相关1缓冲块容量太小不能有效的利用数据流的局域性,太大又会造成不必要的浪费,方便起见,通常与Cache块大小保持一致1较大数量的缓冲块能够提高命中率,但却增加了硬件的复杂度和缓冲器功耗1研究表明,对I-Cache来说,多缓冲块并不能明显提高缓冲命中率,所以本文选用单块缓冲,同时缓冲块大小与Cache块一致13RBC结构设计这部分将具体介绍RBC的原理、设计方案以及如何通过电路改造实现这一方案,最后讨论对访问延迟以及面积的影响1311RBC实现原理BBC通过缓冲器来降低Cache存储体访问量,从而来达到降低功耗的目的1但我们发现,在余下的存储体访问中仍然存在相当程度不必要的指令访问,我们称这种不需要访问的指令为无效指令,反之为有效指令,同时称对无效指令的访问为无效访问1接下来举例说明无效访问产生的原因1可以说无效访问是程序流中存在的转移指令造成的1例如图2所示的一段程序分别存储在Cac he的块A和块B,假设块大小为32B,每条指令4B,程序从地址0x00400000开始执行,当执行到0x00400008时,如果条件转移指令beq满足,程序跳转到地址0x00400034处,此时块A中位于地址0x0040000c 至0x0040001c间的指令便不会被执行,可视其为无效指令,块B中0x00400020至0x00400030间的指令也有类似情况1马志强等:基于记录缓冲的低功耗指令Cache方案Fig 12 Inv alid instruct ions in cache block access 1图2 Cache 块访问中的无效指令对Cache 存储体的访问是按整块进行的,读取块中无效指令会造成浪费1因程序中存在大量的转移指令,而且很难保证它们都位于块的结尾处,所以无效访问在I -Cache 中大量存在,浪费就变得相当可观1如果能消减这些无效访问,便可以有效降低I-Cache 的功耗1312 设计方案要消减无效访问,首先需要区分有效指令和无效指令1本文提出一种基于访问历史的方法,即通过缓冲器记录那些曾经执行过的指令,并认为这些指令是有效指令,其余则为无效指令1这就要求缓冲器具有记录功能,我们称有记录访问历史功能的缓冲器为记录缓冲器(record buffer)1当缓冲失效时,若将这些记录信息写入Cache 块中,待再次访问该块时便可利用这些历史信息过滤无效访问1这种基于历史记录的判断方法会出现错误,即访问到因之前未被访问而标记为无效的指令1错误判断可分为两类:第1类命中缓冲器中无效指令;第2类命中Cache 块中无效指令1第1类误判相当错误过滤引起的缓冲失效,只需要从存储体中读取相应剩余数据;而遇到第2类误判时,指令因被屏蔽而不能读出,需要再一次读取剩余数据1连续访问两次存储体,会对Cache 的性能产生一定影响1因为指令转移的倾向性,前次被认为无效的指令以后也几乎不会被访问到,所以这种判断方法的正确率很高,性能损失可以控制在可以接受的范围内1313 电路改造接下来我们将详细阐述RBC 是如何通过电路改造来实现这一方案的131311 基准Cache 结构本文研究只针对L1级I -Cache,我们选择单块缓冲的BBC 作为基准Cache,并实现了RBC 模型1参考目前比较流行的处理器,Cache 参数配置如下:容量16KB,块大小32B,指令长度32b,显然,每块能容纳8条指令,采用4路组相联结构,访问延迟为1个时钟周期,与CPU 间的总线宽度为32b 131312 记录缓冲如前所述,记录缓冲器应该具有记录被访问指令的能力1如图3所示,我们为每条指令扩展了一个记录位(record bit)和一个有效位(valid bit)1Fig 13 Structure of the recor der buffer 1图3 记录缓冲块结构有效位用来指示对应指令是否有效,1表示有效,0表示无效1当缓冲数据来自下一级存储体时,所有有效位为1;当缓冲数据来自于Cache 存储体时,有效位来自相应Cache 块中的记录位,存储体中的记录位将在下一节介绍1记录位用来记录对应指令是否被访问过,每次缓冲替换后所有记录位置0,以后被访问指令相对应记录位置1,这个过程用来发现无效指令1当缓冲失效时,记录位的信息如果与以前的不同,则需要写回存储体1方法很简单,只需根据缓冲数据的来源和与有效位的比较就可做出正确的判断131313 存储体的改造在Cache 存储体中我们同样为每条指令增加一个记录位,该位采用标准SRAM 单元存储,用来控制对应指令的存储单元是否允许访问11表示有效指令允许访问,0表示无效指令拒绝访问1与文献[11]中方法类似,本文同样采用控制字线(word line)的方式决定指令存储单元是否可以被访问,图4所示为改造后的Cache 存储体电路结构,通过读写控制电路,记录位利用指令字线I WL 控制对指令存储单元的访问1当R W EN 始终为低时,只有记录位为1才能够打开I WL ,否则对指令存储单元的访问将被拒绝,这样被标记为无效的指令便不会被访问,同时不影响有效指令的访问;当R W EN 为高时,I WL 不受记录位控制,指令存储单元的访问则不受限制1正常情况下R W EN 始终为低,无效指令将被过滤掉,只有当需要写入数据,或者命中缓冲中无效指令而重载整个块时,R W EN 在控制逻辑的作用下为高,强制访问整个块1F ig 14 Data ar ray modification 1(a)Conventional SRAM cell for recorder bit;(b)Control log ic;and (c)M od-ified SRAM cell for RBC instructions 1图4 存储体电路改造1(a)用于记录位的传统SRAM 存储单元;(b)控制电路;(c)改造后的指令存储31314 输出放大器的改造与文献[11]采用的方法不同,本文对输出放大器的改造是通过控制指令信号线ISEN SE 来完成1如图5所示,在记录位输出放大器的控制下,I SENSE 决定是否触发指令单元的信号放大器1当访问无效指令时,ISEN SE 无效,指令单元信号放大器不会做出任何响应,我们不关心输出数据的内容;当访问有效指令时,I SENSE 随主信号线SENSE 变化,不会影响正常访问1但是,记录位需要写入缓冲,用来指示对应指令是否有效,因此其输出放大器由主信号SENSE 控制1F ig 15 Sense amplifier modification 1(a)Conventional sense amplifier for recor der bit;(b)Control logic;and (c)Mo dified sense amplifier for RBC instructions 1图5 输出放大器电路改造1(a)用于记录位的传统输出放大器;(b)控制电路;(c)改造后的指令输出放大器314 RBC 整体结构经过改造后RBC 的整体结构如图6所示1图中以灰色标出经过改造的部件1与传统基于缓冲器的Cache 结构不同是,缓冲T ag 比较时,需要判断有效位的状态,如果有效位为0,会发出Reload 信号给R W EN 重新读取剩下的数据1对RBC 的访问过程如图7所示,与传统BBC 相比,主要增加了指令有效位检测,用来检查是否出现错误的判断,若出现需是再次读取原Cache 块中的剩余数据1747马志强等:基于记录缓冲的低功耗指令Cache 方案Fig16Cache architecture of RBC1图6RBC整体结构F ig17Access flo w in RBC1图7R BC访问过程315访问延迟及面积开销改造后的存储体访问会增加7%的数据访问延迟,但实际情况下,T ag通路往往在Cache访问延迟中占据主导地位,而且通过改变存储体大小和组织方式能够使损失降低到可以忽略的程度[11]1对指令有效性判断只须操作一位,非常简单,所以延迟也很小,另外可以与T ag比较同时进行,延迟将被隐藏1因此,有效位检查并不会影响Cache的访问延迟,该结构对访问延迟几乎没有影响1面积上的开销主要来自于存储体所增加的记录位存储单元以及相应的控制电路,增加的记录位输出放大器和缓冲块记录位因为数量有限,增加的面积可以忽略不计1存储体中每32b增加一个记录位,面积增加为1P32,相应的控制电路门数量与记录位相当,同样以一个记录位1P32的开销计算,这样存储体增加的面积为1P16=6125%1我们采用CACT I310[12]评估容量为16KB的不同组织Cache 结构,其中存储体约占总面积的60%,总面积大约增加3175%,显然面积上的牺牲也是很小的14实验与仿真411仿真环境本文采用SimpleScalar[13]作为实验的仿真平台1如前所述,我们采用BBC作为基准Cache,并且实现了BBC和RBC模块,替换原有的L1级I-Cache1平台的其他参数配置如表1所示:Table1Configuration of the Simulated Processor表1仿真平台配置参数表Parameter ValueBranch predictor2084-entry Bimodal PredictorIssue w idth4Decode w idth4Function units4IALU,1IM UL,2M EM PORT,4FALU,1FM U LDL1Cache16KBs,32B blocks,4-way mapped,LRU,latency1cycleDL2Cache256KBs,64B blocks,4-way mapped,LRU,latency6cyclesM emory Ideal,latency182cycles748计算机研究与发展2006,43(4)412标准测试程序(benchmark)本文选择了10个典型SPEC2000标准测试程序进行仿真,其中包括6个整数类型和4个浮点类型测试程序1编译器采用gcc-21712,输入数据文件均来自测试数据集(test data set),所有的仿真程序都执行到结束,运行统计信息见表21Table2Benchmark Program s表2标准测试程序Category Benchmark Inst1CountData Count Load StoreCINT2000gcc1597466178410421201232897468gz i p2571400355555883631245783685mcf2007916404433575233180161parser3242985034849523548373240564vortex935213739729116831962086490535vpr1694109902396532352122349824 CFP2000ammp54408780381639844267540130474art1769758191410618323145462709equak e1368981607368355340123699168mes a2976133660555093175303580876413错误判断率与缓冲命中率本文提出了一种基于执行历史的方法来区分指令的有效性,误判率(误判次数与访问次数的比值)的高低便成为一个值得关注的问题1图8所示为统计得到所有应用程序的误判率,进一步将其分为第1类误判(MP1)和第2类误判(MP2)1可以发现第1类误判率很低,平均只有0150%,因此,对缓冲性能影响不大1我们更关心第2类误判,因为它将会影响Cache的性能,虽然个别程序第2类误判率偏高,如mcf为6104%,parser为5168%及equake为5127%,但其余都低于5%,平均3187%,第2类误判率也在可承受范围内1总的误判率平均只有不足5%,即95%以上的判断都是正确的,显然判断准确率很高,该方法是可行的1缓冲命中率(缓冲器命中次数与访问次数的比值)是评价缓冲器性能的重要指标,该值越大表示过滤掉的Cache访问越多1图9所示为BBC和RBC 两种结构下缓冲命中率对比,在Cache结构固定的情况下,两种结构的缓冲命中率差别不大,所有程序都达到或接近80%,平均79187%和79137%,说明单缓冲结构很适用于I-Cache设计1由于第1类误判影响,RBC缓冲命中率会有所降低,但降低的程度与第1类误判率相当1因此,记录缓冲几乎不会对缓冲器性能造成影响1F ig18M iss prediction rates in RBC1图8RBC中的错误判断Fig19Buffer hit rates in BBC and RBC1图9BBC与RBC的缓冲命中率另外,RBC只是针对I-Cache优化方案,对程序数据类型并不敏感1从图8和图9给出的指标看,本方案既适用于整数类型程序,也适用于浮点类型程序1414功耗分析存储访问体功耗大致与被访问数据量成正比,可通过访问指令数来分析无效过滤对功耗的影响1为此,我们跟踪了所有的存储体访问,从而得到两种结构下被访指令数量总和A,则相对BBC,RBC的指令节省效率为(A BBC-A RBC)P A BBC,最终的实验结果如图10所示1显然,RBC可以有效降低存储体访问量,最差的情况可节省29112%(vpr),基本都达到和超过30%,有些程序甚至超过40%(parser 为43127%和art为49139%),平均可减少36117%1去掉访问标记位增加的1P32,平均可节省33105%存储体访问1我们用CACT I[12]得到Cache不同部件的功耗,选用的工艺为0118L m,电压117V,本文只考虑标准结构的功耗问题,不采用CACT I默认的优化策略1实验测得缓冲器的访问功耗P buf=0102847nJ,存储体访问功耗P mem=1103578nJ,除此之外的访问控制功耗P cont rol=0123454nJ1BBC的Cache访问功耗749马志强等:基于记录缓冲的低功耗指令Cache方案F ig 110 Reduct ion rates on data ar ray accesses 1图10 存储体访问节省效率可计算为P BBC =P buf +(1-R buf )(P mem +P c o ntrol ),其中R buf 为缓冲命中率,计算可得P BB C =0129295nJ,存储体访问功耗占其中的73161%1RBC 平均可以减少33105%的存储体访问,则节省功耗73161%@33105%=24133%1415 对性能的影响如前所述,遇到第2类误判时需要一个额外的存储体访问周期,会影响到系统的性能1图11所示即为两种结构下IPC 对比情况,对照图8可以发现,第2类误判率较高的,性能影响也较大,最坏的情况IPC 降低9106%(parser),而对一些程序几乎没有影响,如:ammp 和art 1因此,RBC 会一定程度降低系统的性能(平均6101%),但相对于功耗的减少量,性能下降的程度是可以接受的1F ig 111 Perfo rmance (IPC)deg radation 1图11 对性能(I PC)的影响5 结 论缓冲器可以有效降低I -Cache 的访问量,但在余下的访问中仍然存在相当程度的不必要存储体访问1据此,本文提出一种基于记录缓冲的低功耗指令Cache 结构RBC 1通过修改缓冲器使其具有记录和发现无效指令的功能,并且通过存储体改造过滤无效存储体访问,RBC 能够有效地降低I -Cache 功耗1采用SimpleScalar 运行10个SPEC2000标准测试程序的结果表明,相对同参数的BBC,RBC 能够降低33105%的存储体访问量,平均节省功耗24133%1虽然这种结构在面积和性能上会造成一定的损失,但与节省的功耗相比,这样的牺牲是可以接受的1参考文献1J 1H 1Edmondson,P 1I 1Rubi nfeld,et al 1Internal organization of the Alpha 21164,a 300-M Hz 64-bit quad -i ssue CM OS RIS C microprocessor 1Digital Tech 1J 1,1995,7(1):119~1352J 1M ontenaro,et al 1A 160M Hz 32b 015W CM OS RISC micro -processor 1Int 1Solid -State Circuits Conf 1,San Francisco,CA,19963A 1Hasegaw a,I 1Kaw asaki,K 1Yamada,e t al 1SH 3:H i gh code density,low pow er 1IEEE M icro,1995,15(6):11~194J 1Kin,M 1Gupta,W 1H 1M angione -S mith 1The filter cache:An energy efficient memory structure 1T he 30th Int .l M icroarch-i tecture Symp,Los Alamitos,CA,19975N 1Bellas,I 1N 1Hajj,C 1D 1Polychronopoulos,et al 1Architec -tural and com piler techniques for energy reduction in high -perfor -mance microproces sors 1IE EE T rans 1VLSI Syst 1,2000,8(3):317~3266C 1L 1Su,A 1M 1Despain 1Cache design for energy efficiency 1The 28th Int .l System Sciences Conf 1,Haw aii,19957K 1Ghose,M 1B 1Kamble 1Reduci ng pow er in superscalar proces -s or caches using subbanking,multiple line buffers an d bit -line seg -mentati on 1Int .l Symp 1Low Pow er Electronics and Desi gn,San Diego,Californ i a,19998D 1H 1Albon esi 1Selective CACHE w ays:On demand cach e re -s ource allocation 1IEEE P ACM Int .l Symposium on M icroarchitec -ture (M ICRO -32),Haifa,Israel,19999P 1Ranganathan,S 1Adve,N 1Jouppi 1Reconfigurable caches and th eir application to media processing 1Int .l Symposium on Com -puter Arch i tecture (IACA)1Vancouver,BC,Canada,200010J 1Yang,R 1Gupta 1Energy efficient frequent value data cache de -si gn 1Int 1Symp 1M icroarchitecture,Istanbul,Turkey,200211L 1Villa,M 1Zhang,K 1Asanovi c 1Dynamic zero compression for cache en ergy reduction 1IEEE P ACM Int .l Symposi um on M icroar -chitecture (M ICRO -33),M onterey,California,200012P 1Shivakumar,N 1P 1Jouppi 1CACT I 310:An integrated cache timing ,pow er,and area model 1http:P P ww P techre -ports P Compaq -DEC P WRL -2001-2.html,200113D 1Burge,T 1Austin 1The simplescalar tool set,version 2101U -niv 1of Wisconsi n,Tech 1Rep 1:CS -T R -97-1342,1997750计算机研究与发展 2006,43(4)M a Zhiqiang ,born in 19771Received his B 1A .s and M 1A .s 1degr ees in t he School of Computing Science and T echnology ,Harbin Institute of T echnology ,Heilongjiang in 2000and 2002respectively 1Since 2002,he has been a P h 1D 1candidate in t he School of Computing Sc-i ence and T echnolog y,Harbin Inst itute o f T echnology 1His cur -rent research interests are low -power system and computer ar -chitectur e 1马志强,1977年生,博士研究生,主要研究方向为低功耗系统和计算机体系结构1Ji Zhenzhou ,born in 19651P rofessor and doctor supervisor of Harbin Institute of T echnolog y 1His curr ent research interests include computer architecture,parallel pro -cessing and neuron netw ork 1季振洲,1965年生,教授,博士生导师,主要研究方向为计算机体系结构、并行处理技术和神经计算机网络技术1Hu Mingzeng ,bor n in 19351Professor and doctor super visor of Harbin Institute of T echno logy 1His current research interests include computer architecture,par allel com -puting and netw ork security 1胡铭曾,1935年生,教授,博士生导师,主要研究方向为计算机系统结构、并行计算和网络安全1Research BackgroundA ll modern microprocessors incorporate one or tw o levels of on -chip caches to bridge the enor mous speed dispar ities between the main memory and the central processing unit (CPU )1T o allow fast pipeline clock frequencies to be used,t hese caches are implement -ed using arrays of densely packed static RAM cells 1T he device count for these caches are often a sig nificant fraction of the total tr an -si stor budget for the entire chip,and thus they are a significant source of power dissipation 1In this paper,w e introduced a low -po wer instruction cache called RBC 1T he key idea behind RBC is that,for the instr uctions enter ing the I -cache during the pr ogram ex ecution,part of them are never or r ar ely accessed,techniques called reorder buffer in iden -tify ing these instr uctions though hardw ar e method are dev eloped,and then circuit modificatio ns ar e made in the data ar ray to filter most of the necessar y data accesses 1T he simulatio n r esult shows that the cache act ivities and energy can be saved efficiently by our proposed method 1Our w ork is suppor ted by the National N atural Science Foundatio n of China (60475012)1751马志强等:基于记录缓冲的低功耗指令Cache 方案。
DSP中指令Cache的低功耗设计
数 , 而降低指令 C ce 从 ah 的功耗 。此外在 L eB f r n i u e控制 器 中添加 了重装控制单 元 , 当指令 C ce 生缺失 时, ah发 能将 片外存储单
元 中的指令 直接 送给 C U, 而最 大限度地减 少由于 C ce 失所引起 C U取 指的延迟。经验证 , P 从 ah 缺 P 该设 计在降低功耗 的同时, 还
Ke r s Ca h ; n fe ;o p we ;e l e gn y wo d : c e Li e Bu r l w o r r f l n i e i
摘
要: 设计 了一种 低功耗指令 C ce 来减 少 C U对指令 C ce a : h P ah 之 &L eB fr n , P ah 的访 问次
t a e d sg al n t o l e u e t e p we o s mp in b t as mp o e t e i sr c i n Ca h e f r a c . h t t e i n C l o n y r d c h o r c n u t u lo i r v h n tu t c e p ro m n e h o o
Y NG io a g QU L n xa g Z NG h d nLo o r i sr c o c e d s n C mp tr En i e r g a d A p - A X a g n , i g in , HA S u a . w p we n tu t n Ca h ei . o u e g n e i n p H i g n
y Wha’ r ,t lo mii z s te Ca h s e at b a dn e l n ie t h ie Bu r muai eut s o r . t S mo e i as nmie h c e mis p n l y d i g rf le gn o te L n fe.i lt n r s l h w y i S o s
基于路访问轨迹的指令高速缓存低功耗策略
sr tg f o tae y o lw po r o s mp in e - so it i sr ci n a h b s d n we c n u to s ta s c ae n t to c c e a e o wa — c e s r c i prpo e u y a c s ta k s o s d. Re un a tc e k n c e s s o r lt d d t ra r ei i t d y e tbls i g a d ma n an n y d d nthi h c s a d a c s e fun ea e aa a ry a e l nae b sa ih n n i ti i பைடு நூலகம் wa — m
wih ta iina n t ci a h wa - c e sta k n t ci n c c e a h e e r a e ucin o c e s so a t r dto li sr t u on c c e, y a c s r c i sr to a h c iv s a g e tr d to fa c s e ftg u
传感器与微 系统 ( rnd cr n coyt eh o g s Ta sue dMi ss m T cn l i ) a r e oe
21 0 2年 第 3 1卷 第 9期
一种低功耗动态可重构cache方案
一种低功耗动态可重构cache方案
赵欢;苏小昆;李仁发
【期刊名称】《计算机应用》
【年(卷),期】2009(029)005
【摘要】嵌入式系统中,处理器功耗是十分受关注的,研究表明嵌入式系统中cache 存储器的功耗占处理器总功耗的30%~60%.为此提出一种低功耗动态可重构的cache方案Tournament cache,该cache方案通过在传统cache结构的基础上增加三个计数器和一个寄存器,在程序运行的过程中,根据计数器统计的结果动态调整cache的相联度,使得相联度在1、2或4路之间变化,以适应不同程序段的需要,从而降低系统的功耗.实验结果表明,此cache方案对比传统的四路组相联的cache能耗节省超过40%,而且性能的降低几乎可以忽略.
【总页数】4页(P1446-1448,1451)
【作者】赵欢;苏小昆;李仁发
【作者单位】湖南大学,计算机与通信学院,长沙,410082;湖南大学,计算机与通信学院,长沙,410082;湖南大学,计算机与通信学院,长沙,410082
【正文语种】中文
【中图分类】TP302
【相关文献】
1.一种低功耗动态可重构cache算法的研究 [J], 任小西;刘清
2.一种低功耗的动态可重构Cache设计 [J], 何勇;肖斌;陈章龙;涂时亮
3.嵌入式系统中低功耗动态可重构Cache的研究 [J], 刘楚;
4.一种改进的记录缓冲低功耗指令cache方案 [J], 马志强;季振洲;胡铭曾
5.用于低功耗的动态可重构cache结构 [J], 陈黎明;邹雪城;雷鑑铭;刘政林
因版权原因,仅展示原文概要,查看原文内容请购买。
基于对指令数据区分访问的混合cache低功耗策略
L w o rd sg tae y fru iid c c e o p we e in srtg o n fe a h b s d o iiin a c s fi sr to n aa a e n dvso c e so n tucin a d d t
W ANG L a g ,Z i n 。 HANG S e g b n AN Yo g la g h n . i g ,T n —in ,P o g fn AN Y n — g e
Absr c t a t: Thi p rp o o e e sr tg flw o rde i o i e a he b s d o nay i hepr s n t ds spa e r p s d a n w tae y o o p we sgn frunf d c c a e n a l zng t e e tmeho . i
在常规 混合 cce ah 结构上 增加 一标 限制 了处理 器每 次 访 问的路 数 , 而 从
达到低 功耗 的效 果。详 细 阐明 了该方法 的原理 和硬件 实现 , 并将 其 应 用到 自主研 发 的龙腾 c 2微 处 理 器上 。 实
意义 。C S电路 中功 耗包 括 动 态功 耗 和静 态 功耗 两 部分 。 MO 前者是 由漏 电流引起的 ; 后者是 由短 路电流和状态改变时充放 电引起的。对于按地址关 联 cc e动 态功 耗 占主体地 位。组 ah , 相连 cce因为每次访 问要从 cc e S A 中并 行地读出一 ah ah 的 R M 组 中的所有 路 , 但最后只有一路数据被使用 , 造成功耗损失 , 所
验结果 表 明 , 方 法不损耗 cce 能 , 该 ah 性 面积牺牲仅 14 % , .5 总功耗 降低 了 2 .% 。 31
基于程序段的可重构cache与处理器低能耗算法
t et t t nc i cm ua o m B . h grh a enrazdi e i —aa zr B m lt g u e u i eta o - p o pttnt e( ) T e o tm hs e l e t m pnl e. ys uan m r s m oh o l h i i l a i b e i nh S y i i n o
能耗 平均节 省 了4 .% , 9 1 而平均性 能损 失为 8 7 。 .% 关键词 :可 重构 高速 缓冲存储 器 ;动 态电压缩放 ; 自适应 算 法;运行程序 段 ;低 能耗
中图分 类号 : P0 T 33
文献标 志码 :A
文章编 号 :10 .65 20lc e u n y n e e yr n i g p o r m p a e, h lo t m s d a sae ma h n rg v r ig c c ea d d — ot e a d co k f q e c .I v r n n — r g a h s t e ag r h u e tt c i ef o en n a h n e a r u i o tr nn a h Ssz ,a ds t n r c s o ’ o a e a d co k fe u n yb a c lt g te r t f h oa f-h p a c s e mi i g c c e’ ie n et g p o e s r Sv h g n lc q e c y c lu ai ai o e ttlo c i c e s i r n h o t
彭蔓蔓 ,李仁发 ,彭 方 ,王宇明
( 南大 学 计 算机 与通信 学 院, 沙 408 ) 湖 长 10 2
摘 要 :运 用可重构 cce和动 态 电压 缩放技 术 , ah 为处理 器及 其 cc e提 出了一种 基 于程 序段 的 自适 应低 能耗 ah
基于预缓冲机制的低功耗指令Cache
能会有所下降。
() 3采用动态可重构技 术。动态可重构技术可以在程序运
图 1 顶缓 冲结构
缓冲数组包括标志缓冲 区和数据缓 冲区,两者都 由 3个 数据块组成 : 标志缓冲 区由预取标志缓冲(T ) F B 、当前标志缓
第3 8卷 第 1 期
Vo _8 13
・
计
算
机
工
程
21 0 2年 1月
J n a y 01 a u r 2 2
No 1 .
Co p e g n e i g m utrEn i e rn
开发研究与设计技术 ・
文 编号 1 3 8 o )— 28 0 章 : 0 - 2 2 2 1 o — 2 文献 识 A 0 4 ( 10 6 标 码:
Lo p we n t u to c s d o e i t fe e h n s w. o rI s r c i n Ca heBa e n Pr d c Bu f rM c a im
Ⅵ, ANG e ZHANG he g b n , ANG n - u Y, S n - ig W Da g h i
行的过程中动态地 调节硬件参数 ,但这种方法实现 起来较为
复杂 ,硬件 改动也 比较大 。
冲( T ) D ) 当前数据缓冲(DB 和备份数据缓冲( D ) F B、 C ) B B 组成 。 标 志缓冲 区和数据缓冲区是一一对应关系 ,所 以,两者在控 制部件 的控制下动作相同 ,为了说 明方便 ,本文 以数组缓冲 区为例 : D F B主要用来存放预测将来会 执行 的指令 , D C B主
一种基于Cache机制的低功耗Flash控制器设计
第23卷第1期西安邮电大学学报Vol. 23 No. 1 2018 年1 月JO U R N A LO FX I'A N U N IV ERSITY O FPO STSA N D TELEC O M M U N ICA TIO N S Jan. 2018d o i:10. 13682/j. iss n. 2095-6533. 2018. 01. 011一种基于C a c h e机制的低功耗F la s h控制器设计连汉丽、陈亚南、焦继业2,雷水艳2(1.西安邮电大学理学院,陕西西安710121; 2.西安邮电大学电子工程学院,陕西西安710121)摘要:为降低消费类电子产品中嵌入式F lash的读取功耗,设计了一种基于C ache机制的F lash控制器。
将Cache机制引入F lash控制器中,运用控制变量的方法,分析了容量、关联度和行长与Cache命中率、微控制器功耗的关系,给出了Cache相应的参数。
结果表明,容量选择1024字节、关联度和行长选择4字/1路模式时,Cache具有较高命中率,微控制器功耗的优化效果最为明显。
关键词:嵌入式Flash; C ache;低功耗;命中率中图分类号:TP3 文献标识码:A 文章编号:2095-6533(2018)01-0070-04A low power flash controller design based on cache mechanismLIAN Hanli1,CHEN Yanan1,JIAOJiye2,LEI Shuiyan2(1 School of Science;2 School of Electronic Engineering,Xi?an University of Posts and Telecommunications,Xi?an 710121)Abstract:In o rder to solve the problem of high pow er consum ption of em bedded F lash read inconsum er electron ics,a F lash controller based on Cache m echanism w as designed. Introducing aCache m echanism in F lash controller and U sin g the m ethod of controlling variables, effects of cap acity,correlation,and line-w ords on the Cache hit rate and m icrocontroller pow er consum ptionw ere studied and design the Cache param eters. T he results show that Cache h w hen the capacity is 1024 byte and the param eter of correlation and l 4w ords / 1w ay. U nder the sam e co n d ition s,the optim ization effect of the pow er consum ption ofthe m icrocontroller s also m ost obvious.Keyw ords:em bedded fla sh,cach e,low pow er co n su m p tion,htt rate近年来,随“智能社会”相关技术发展需求,微 控制器倍受关注[12]。
一种嵌入式设备低功耗混合Cache的实现方法
一种嵌入式设备低功耗混合Cache的实现方法专利名称:一种嵌入式设备低功耗混合Cache的实现方法技术领域:本发明涉及一种嵌入式设备缓冲存储器的处理方法,尤其是一种嵌入式设备低功耗混合Cache的实现方法,属于计算机存储器层次结构设计领域。
背景技术:目前,对于以电池供电的便携式嵌入式设备而言,降低其整体功耗具有越来越大的现实意义。
而在这些嵌入式设备中,Cache的功耗占整体功耗的40%左右,因此研究如何降低Cache的功耗成为嵌入式设备设计者普遍关注的问题。
嵌入式系统通常采用固定容量的指令Cache和数据Cache,但是不同程序对指令Cache和数据Cache的需求是不平衡的,从而导致某种Cache的容量不足而另一种Cache却有空闲。
而混合Cache却不存在这种问题,但混合Cache的容量一般都比较大,访问功耗也就比较大,降低了其普遍适用性。
针对混合Cache 的特点,前人提出一种低功耗分类访问方案,该方案通过增加一个类型指示位,将Cache的每一块动态化分为指令块和数据块,在访问过程中,只有类型匹配的块才被访问,从而可以过滤对不必要的存储体访问,节省了访问功耗。
但该方案不能满足程序运行时对Cache容量的动态需求。
申请号为 03116564. 8,200810156535. 2、200910096957. X 的中国专利申请分别公开了低功耗Cache实现的几种方法。
第一种方法只能面向指令Cache,该方法设立了索引标志寄存器,来保存行匹配和组选择结果,利用预测的方法和环形历史缓冲区来减少对索引标志寄存器的访问,实现对指令Cache降低功耗。
第二种方法是通过增加一个Cache控制器,实现了将频繁访问的数据拷贝到Cache中,而将引起预取时间局部下降的数据,直接从主存读出,同时根据历史记录,生成标记信息表(该表可以由软件修改),加载到Cache控制器中,控制其操作,从而降低Cache的功耗;第三种是基于程序需求改变Cache组相联度的方法,该方法主要修改了 Cache的组相联度,对于Cache的类型和有效性并未加以判断,且每组的组相联度必须相同。
低功耗高速片上缓冲存储器(Cache)设计的开题报告
低功耗高速片上缓冲存储器(Cache)设计的开题报告一、研究背景随着许多应用的逐渐普及,包括移动设备、嵌入式系统和物联网设备,对于低功耗高速存储器的需求越来越高。
由于移动设备和嵌入式系统的功耗有限,使用过多的功率会导致电池的寿命缩短,同时在物联网设备中,使用更高性能的存储器会增加成本和延长产品上市时间。
因此,研究低功耗高速片上缓冲存储器(Cache)设计非常重要,以满足这些应用的要求。
二、研究目的本研究的主要目的是设计一种低功耗高速片上缓冲存储器(Cache),以满足移动设备、嵌入式系统和物联网设备等应用的需求。
具体地说,我们希望实现以下目标:1. 实现低功耗的设计,以延长设备电池寿命和减少能源消耗。
2. 实现高速的设计,以提高系统的响应速度和性能。
3. 实现片上缓存存储器的设计,以减少系统的内存访问时间和增加数据访问带宽。
三、研究内容本研究的主要内容包括以下三个方面:1. 优化电路设计,实现低功耗的设计。
我们将采用一些技术来降低电路的功耗,例如采用低功耗时钟分频器、优化时序、使用省电模式等。
2. 优化电路设计,实现高速的设计。
我们将采用一些技术来提高电路的响应速度,例如采用更快的传输线、优化布局和布线等。
3. 实现片上缓存存储器的设计。
我们将使用SRAM存储器和片上总线来实现片上缓存存储器的设计,并采用一些技术来减少系统的内存访问时间和增加数据访问带宽,例如使用预取技术、优化替换算法等。
四、研究方法本研究将采用如下方法:1. 文献调研。
我们将调研相关的文献和资料,了解现有低功耗高速片上缓冲存储器(Cache)的设计,以及最新的技术和方法,为本研究的设计提供参考。
2. 硬件设计。
我们将使用HDL语言设计低功耗高速片上缓冲存储器(Cache)的硬件,并使用一些EDA工具,如ModelSIM、Quartus等,进行验证和测试。
3. 性能评估。
我们将使用一些指标来评估设计的性能和效果,例如功耗、速度、带宽等,以验证设计的有效性和实用性。
一种改进的记录缓冲低功耗指令cache方案
doi:10.3969/j .issn .1671-7775.2010.01.016一种改进的记录缓冲低功耗指令cache 方案马志强1,季振洲2,胡铭曾2(1.哈尔滨工程大学计算机科学与技术学院,黑龙江哈尔滨150001; 2.哈尔滨工业大学计算机科学与技术学院,黑龙江哈尔滨150001)摘要:针对记录缓冲低功耗cache 过滤大部分无效访问、降低功耗的同时无法降低静态功耗的问题,在记录缓冲基础上提出一种改进方案.设计了针对指令存储单元的状态控制电路,在相应的控制逻辑的驱动下自动将不常用的指令存储单元设置为休眠状态,从而有效节省cache 的静态功耗.为验证方案的有效性,采用10个SPEC2000标准测试程序进行仿真,并与传统缓冲cache 在功耗、性能及面积上进行比较.结果表明该方案在牺牲少量性能和面积的基础上可有效节省指令cache 的静态和动态功耗.关键词:cache;低功耗;静态功耗;动态功耗;缓冲器中图分类号:TP302 文献标志码:A 文章编号:1671-7775(2010)01-0072-06An enhanced energy effi ci ent i n structi on cache based on record bufferM a Zh iqiang 1,J i Zhenzhou 2,Hu M ingzeng2(1.College of Computer Science and Technol ogy,Harbin Engineering University,Harbin,Heil ongjiang 150001,China; 2.School of Com 2puter Science and Technol ogy,Harbin I nstitute of Technol ogy,Harbin,Heil ongjiang 150001,China )Abstract:To s olve the p r oble m that l ow 2power recorder buffer cache (RBC )has no contributi on t o static power saving while saving the active power consump ti on by filtering the unnecessary data array accesses,an enhanced recorder buffer cache (ERBC )is p r oposed based on RBC .The state contr ol circuit f or in 2structi on st orage unit is designed .Actuated by the contr ol l ogic,this circuit could p lace invalid instruc 2ti on st orage unit in sleep state,thus the static power consump ti on can be saved .To verify the validity of ERBC,si m ulati on is conducted by using ten SPEC2000standard test p r ogra m.The result is compared with traditi onal buffer cache in ter m s of power consump ti on,perf or mance and chi p area .The rresults show that ERBC can save both active and static power efficiently at the cost of little sl owdown and area in 2crease ment .Key words:cache;l ow 2power consu mp ti on;static power consu mp ti on;active power consu mp ti on;buffer收稿日期:2008-12-18基金项目:国家自然科学基金资助项目(60475012)作者简介:马志强(1977—),男,黑龙江大庆人,博士,讲师(mazhiqiang@hrbeu .edu .cn ),主要从事计算机体系结构、可信计算研究.季振洲(1965—),男,黑龙江哈尔滨人,教授,博士生导师(jzz@hit .edu .cn ),主要从事计算机体系结构、并行处理研究. 功耗已经成为电路设计的一个重要指标,而cache 因具有集成密度高、存储容量大、高速度、访问频繁等特点,成为处理器功耗的主要元件[1].因此,降低cache 功耗便成为低功耗处理器设计的关键,也成为近年来研究的热点.C MOS 集成电路的功耗主要分为动态和静态两部分:动态功耗来自信号翻转,当电路的工作条件确定后,其大小决定于电路活动量;静态功耗来自反向漏电流,电路通电后即使不工作静态功耗也会产生,因此其大小主要决定于工艺水平.早期的工艺条件下静态功耗所占比例很小,第1期 马志强等:一种改进的记录缓冲低功耗指令cache 方案73 因此针对动态功耗的研究较多.例如,过滤法在CP U 与cache 之间增加一级更小的存储体,用来过滤不必要的cache 访问[2];重构法根据程序对cache 需求不同动态调节硬件配置,对cache 需求不高的应用程度采用较低的参数配置[3-4];数据压缩法用较少存储空间保存编码后数据降低存储体访问宽度[5].这些方法都是通过降低cache 活动量来达到降低动态功耗的目的.近年来工艺不断改进,晶体管门电压不断降低,漏电功耗所占的比例加大.工艺每更新一代,静态功耗大约增长5倍;当工艺达到0.1μm 以下时,其将成为功耗的主要部分[6].因此,对静态功耗的研究逐渐受到关注.低静态功耗技术主要有:gated 2VDD 通过低漏晶体管有选择地关闭一些存储单元的供电,但会造成存储信息的丢失[7-8];single 2VDD 动态改变阀值电压或供电点压[6],则可在不丢失信息的情况下使存储单元处于休眠状态.由于指令流具有很好的时空局部性,采用缓冲器可以有效降低I 2cache 访问量,但仍会留下相当程度不必要的指令访问.文献[9]分析了这一现象,并提一种记录缓冲cache 结构RBC,有效降低动态功耗,但该结构对静态功耗无贡献.文中拟在RBC 基础上,增加对指令存储单元状态控制电路,使其可以有效控制静态功耗.1 前期工作传统块缓冲结构BBC,通过缓冲器来降低cache 存储体访问量,达到降低功耗目的.但余下的访问中仍然存在相当程度不被执行的指令,称为无效指令.文献[9]分析了无效指令的产生原因,并且提出了一种基于执行历史的预测法来发现无效指令,最后通过硬件改造将其过滤.图1为RBC 中存储体与记录缓冲器的结构.图1 RBC 中存储体与记录缓冲器结构Fig .1 Structure of recorder buffer in RBC首先为存储体和缓冲器中的每一条指令增加一个记录位,用来识别指令是否执行过(1执行,0未执行);在存储体中记录位还通过控制逻辑屏蔽无效指令的访问.缓冲器中还需增加有效位,用来指示对应指令是否有效,它来自于存储体中的记录位.访问到有效位为0的指令被认为是一次误判,为保证程序正确执行,剩余指令将被重新读取.虽然屏蔽无效指令访问可以降低cache 的动态功耗,但对于静态功耗没有贡献.既然无效指令不必访问,将它们的存储单元设置为休眠状态,便可以达到降低静态功耗的目的.为此,提出文中的改进方案ERBC .2 ERBC 结构设计2.1 存储单元的改造ERBC 中的存储体组织方式沿用RBC,但修改了控制逻辑,用来维护存储单元的状态.图2为ER 2BC 采用的控制逻辑.改造包括如下两点.(1)采用single 2VDD 方法[6]控制存储单元状态,减少静态功耗.如图2所示,若记录位为0,VAL 2I D 信号将关闭为存储单元提供电压的p MOS 管T1.T1关闭以后,VVDD 电压逐渐降低,达到一定程度时,施密特触发器S1将打开长沟道n MOS 管T2.适当地设定T2尺寸可将VVDD 保持在维持单元状态的最低电压,使之进入休眠状态,休眠存储体可减少98%的静态功耗.(2)通过字线WL 控制门G1控制无效指令的访问.ERBC 中的记录位同样利用指令字线I W L 控制对指令存储单元的访问,在G1的控制下,只有记录位为1才能够打开I W L,否则对存储单元的访问将被拒绝,这样无效指令便被屏蔽,同时不会影响有效指令的访问.图2 存储单元的电路改造Fig .2 Data array modificati on所提方案中,一旦发生误判,需要通过重置记录位唤醒存储单元,然后重新载入该块.文中通过记录江苏大学学报(自然科学版)74 第31卷位的写入控制实现这一策略.图3为改造后的记录位写入控制电路.通常情况下RELOAD 信号始终为低,此时该信号不会影响记录位的正常写入操作.但当发现误判时,RELOAD 信号将被设置为高,强行设置DAT A 信号都为高,同时打开写入信号WR I TE -EN,标志位被重置为1,存储单元被唤醒.图3 唤醒逻辑Fig .3 W ake up l ogic2.2 输出器的改造因为ERBC 中可能出现误判,为了避免发生冲突,文中为指令存储单元设计了两套输出放大器:主放大器和辅放大器.图4是读出放大器的电路改造.根据图4中(a )部分,主放大器完成正常状态下的指令读取,辅放大器则仅用来重载误判时被唤醒的指令.辅放大器只有RELOAD 信号有效时工作,正常情况下RE LOAD 信号始终为低,不影响主放大器的工作.图4 读出放大器的电路改造Fig .4 Sense a mp lifier modificati on访问无效指令时,由于指令字线被屏蔽,切断了两条位线BL 的放电通路,因此它们之间不存在电压差.主放大器在遇到这种情况时会产生竞争抖动,不但输出状态不可预知,还会造成功耗的浪费.为避免这种情况,文中为其增加两个NMOS 晶体管强制主放大器输出为0,具体的改造方法如图4中(b ),(c )部分所示.ZERO 信号受记录位放大器输出的驱动,当记录位为0时,ZERO 信号打开P1管使OUT 接地,强制输出为0.当记录位为1时,P1管关闭,输出放大器正常工作.P2管的控制端始终接地,作用是平衡正反两个输出点间的负载.2.3 访问过程对ERBC 的访问过程可分为如图5所示的5种情况:如果缓冲命中并且命中有效指令,则直接从缓冲器中取得数据,这种情况为C1;如果缓冲命中但命中无效指令,需要激活并且重载剩余指令,这种情况为C2;如果缓冲未命中但命中cache 中的有效指令,则直接返回块中取得数据,这种情况为C3;如果缓冲未命中但命中cache 中的无效指令,同样需要激活并且重载剩余指令,这种情况为C4;最后一种情况为C5,即缓冲器和cache 都未命中.图5 ERBC 的访问过程Fig .5 Access fl ow in ERBC2.4 访问延迟及面积开销对于有效指令的存储体访问,如图2所示,I W L与WL 之间有一个与门G1的延迟,改造后的存储体延迟会有所增加,但适当增加G1的设计尺寸可使延迟增量降低到可以忽略的程度.事实上,Tag 通路往往是访问的关键路径,延迟占据主导地位.因此,有效指令访问不会增加cache 的延迟.无效指令访问需要一个时钟周期的唤醒延迟,因此延迟开销出现在发生误判的时候,但也要根据具体情况而定.当遇到C2情况时,即命中缓冲期中的无效指令,因这种误判在cache 访问的开始就可以检测到,唤醒及重载操作可以在当前时钟周期内完成.但遇到C4的情况时,因存储体访问结束后误判才能被检测到,只有等下一个时钟周期才能完成第1期 马志强等:一种改进的记录缓冲低功耗指令cache方案75 唤醒和重载操作.显然,第一种误判不会增加访问延迟,但第二种误判则增加一个时钟开销.面积上的开销主要来自于存储体所增加的有效位存储单元以及相应的控制电路.输出放大器以及缓冲器数量有限,增加的面积可以忽略不计.存储体中每32位增加一个有效位,面积增加为1/32,相应的控制电路门数量与有效位相当,同样以一个记录位的开销计算,这样存储体增加的面积为1/16.我们采用eCACTI[11]评估基准指令cache结构,其中存储体约占总面积的48.82%,总面积大约增加3.05%,因而面积上的开销很小.3 试验与仿真3.1 仿真环境文中采用Si m p leScalar[10]作为试验的仿真平台,BBC作为基准cache,并且实现了BBC和ERBC 模块,替换原有的L1级指令cache,平台的其他参数配置见表1.表1 仿真平台配置参数表Tab.1Conf i gura ti on of si m ul a ted processor参数赋值转移预测器20842entry B i m odal p redict or发射宽度4解码宽度4功能单元4I A LU,1I M UL,2ME MP ORT,4F ALU,1F MULL1级指令cache32K B s,32Byte bl ocks,42way mapped,LRU,latency1cycle,buffer size32Byte L1级数据cache32K B s,32Byte bl ocks,42way mapped,LRU,latency1cycleL2级cache512K B s,64Byte bl ocks,42way mapped,LRU,latency6cycles存储器I deal,latency182cycles3.2 标准测试程序(Bench mark)文中从SPEC2000中选择了表2中所示10个典型程序进行仿真,包括6个整数型和4个浮点型,此处各程序的代号,与图6-9中的横坐标对应.程序采用gcc22.7.2编译,输入数据文件来自测试数据集,所有的仿真程序都执行到结束,并且每个程序执行指令数都超过10亿条.表2 标准测试程序Tab.2 Bench mark program s种类测试程序名称代号指令数量访问数据数量读写C I N T2000gap11169578056363225750119277734 gcc22016068927670458019218411293 gzi p33367270641818223499249242827 parser442025584021225284439438871541 vortex5980819434226513391861553547379 vp r61566700982442016590124332330CFP2000a mmp754909875571593504494391400434 art81478590534464186314128543916 equake91443346165438727559111482808 mesa1028803775116307693783043295943.3 错误判断率及其对性能的影响文中采用基于执行历史的方法来判断指令的有效性,误判率(误判次数与访问次数的比值)的高低便成为一个值得关注的问题.图6-9中的横坐标1~10与表2中程序代号对应,而横坐标值“11”表示average.图6所示为统计得到各程序的误判率,进一步将其分为第一类误判MP1(C2情况)和第二类误判MP2(C4情况).可以发现第一类误判率很低,第二类误判稍高,但也在可承受范围内.总的误判率平均只有3.69%,准确率很高,说明该方法是可行的.第二类误判会影响cache的性能,图7给出了IPC对比情况,对照图6可以发现第二类误判率较高,性能影响也较大,但总的影响不大,平均只有5.22%.图6 误判率Fig.6 M iss p redicti on rate江苏大学学报(自然科学版)76 第31卷图7 对性能(IPC )影响Fig .7 Perfor mance (IPC )degradati on3.4 无效指令的访问和存储覆盖率定义无效指令的访问覆盖率AR 为cache 访问中无效指令所占比例.另外,定义无效指令的存储覆盖率SR 为无效指令在cache 存储体中所占比例.这两个值反应了程序执行全过程,无效指令在cache 访问和存储中所占有的比率.如无特殊说明,下文提到的两种覆盖率均为平均值,仍用AR 和SR 表示.显然,AR 越大表明可以过滤掉的无效指令越多,节省的动态功耗越大.同理,SR 越大,处于休眠状态的存储体越多,静态功耗的节省越大.图8所示为试验得到的各应用程序的两类无效指令覆盖率.图8 无效指令的访问及存储覆盖率Fig .8 Access and st orage coverage of invalid instructi on由图8可见,对于不同的应用程序,无效指令在cache 访问和存储中所占的比例是很可观的,平均可以达到35.02%和43.14%,因此文中提出的方法是高效可行的.3.5 功耗分析文中选用eCACTI [11]测量cache 的功耗,并在eCACTI 上实现了BBC 和ERBC 模型.模拟过程中选用的工艺为0.10μm ,电压1.2V,采用的优化配置参数为(1,1,4,1,2,8).动态功耗来自于每一次cache 访问,如前面的分析,对ERBC 的访问可分为5种情况,表3给出了每一种情况下的功耗,表中n 代表被访问块中无效指令个数.表3 ERBC 与BBC 的访问功耗Tab .3 Access power of BBC and ERBC状态BBC 功耗/m WERBC 功耗/m WC1 2.13812.1470C2—2.1470+4.0915n C339.614040.6148-3.9676nC4—41.6067C577.993479.9861-3.9676n存储体是静态功耗消耗最大的部件,根据仿真结果,BBC 结构每时钟静态功耗为24.71mW ,其中22.68mW 来自于存储体,比例高达91.78%.而RBC 中,有两个影响因素:第一是存储中的无效指令,例如当前周期无效指令存储覆盖率为SR ,则该周期可节省静态功耗22.68×SR ×98%mW ,其中98%是休眠存储体可以节省的静态功耗比例;第二是有效位带来的额外静态功耗,每一条指令增加一个无效位,产生的额外功耗为22.68/32=0.71mW ,故该周期静态功耗为(24.71-22.68×SR ×98%+0.71)mW.文中将两种功耗带入仿真程序,得到两种结构下不同程序的两类功耗,比较后得到ERBC 的功耗节省效率如图9所示.显然,两类功耗都得到有效削减,其中动态功耗平均可节省21.14%,而静态功耗的效果则更突出,平均可达到32.54%.图9 动态与静态功耗节省率Fig .9 Active and static power saving4 结 论文中在低动态功耗cache 结构RBC 的基础上提出一种改进方案,增加了存储单元的状态控制电路和相应的控制逻辑,使得改进后的结构ERBC 可以从动态和静态两个方面节省cache 功耗.采用10个SPEG2000标准测试程序进行仿真,并与传统缓冲cache 进行比较,结果表明,ERBC 能够在损失较小面积和性能的前提下,有效降低cache 的动态和静态两类功耗.第1期 马志强等:一种改进的记录缓冲低功耗指令cache 方案77 参考文献(References)[1] Montanar o J,W itek R T,Anne K,et al .A 1602MHz322b 0.52W C MOS R I S C m icr op r ocess or [J ].D igital Technical Journal ,1997,9(1):49-62.[2] Ki m C G,Park J W ,Lee J H,et al .A s mall data cachef or multi m edia 2oriented embedded system s[J ].Journal of Syste m s A rchitecture ,2008,54(1),161-176.[3] Chen L i m ing,Zou Xuecheng,Lei J ian m ing,et al .Dy 2nam ically reconfigurable cache f or l ow 2power e mbedded syste m [C ]∥Proceedings of Third International Confe 2rence on N atural Co m putation .Piscata way:I EEE Com 2puter Society,2007:180-184.[4] Zhang C J,Vahid F,Najjar W.A highly configurablecache f or l ow energy e mbedded syste m s [J ].AC MTransactions on Em bedded Co m puting Syste m s ,2005,4(2):363-387.[5] 马志强,季振洲,胡铭曾.基于超窄数据的低功耗数据cache 方案[J ].计算机研究与发展,2007,44(5):775-781.M a Zhiqiang,J i Zhenzhou,Hu M ingzeng .A l ow power data cache design based on very narr ow 2width value[J ].Journal of Co m puter R esearch and D evelop m ent ,2007,44(5):775-781.(in Chinese )[6] Ki m N S,Flautner K,B laau w D,et al .Single 2V DD andsingle 2V T super 2dr owsy techniques for l ow 2leakage high 2perfor mance instructi on caches[C ]∥Proceedings of the 2004International Sym posium on L o w Po w er Electronicsand D esign .Ne w York:A ss ociati on f or Computing Ma 2chinery,2004:54-57.[7] PowellM ,Yang S H,Falsafi B,et al .Gated 2V dd :a cir 2cuit technique t o reduce leakage in deep 2sub m icr on cache me mories [C ]∥P roceedings of the International Sym posium on L o w Po w er Electronics and D esign,D igest of Technical Papers .Piscata way:I EEE,2000:90-95.[8] Zhang C J,Yang J,Vahid F .Low static 2power frequent 2value data caches[C ]∥Proceedings of the D esign,A uto 2m ation and Test in Europe Conference and Exhibition .Piscataway:I EEE Computer Society,2004:214-219.[9] 马志强,季振洲,胡铭曾.基于记录缓冲的低功耗指令cache 方案[J ].计算机研究与发展,2006,43(4),744-751.M a Zhiqiang,J i Zhenzhou,Hu M ingzeng .A l ow 2power instructi on cache design based on record buffer [J ].Journal of Co m puter Research and D evelop m ent ,2006,43(4):744-751.(in Chinese )[10] Burger D,Austin T M.The Si m p leScalar t ool set,ver 2si on 2.0[J ].AC M S I G ARCH Co m puter A rchitecture N e w s ,1997,25(3):13-25.[11] M a m idi paka M ,Dutt N.eCACTI :an enhanced power es 2ti m ati on model f or on 2chi p caches[R ].Irvine:Univer 2sity of Calif ornia,2004:1-25.(责任编辑 梁家峰)。
