【论文导读】Cache Decay: Exploiting Generational Behavior to Reduce Cache Leakage Power

处理器的memory system中存在相当数量的dead block(即最后一次touch直到被选择victim cacheline替换出去的cacheline)。这些cacheline的存在会增加系统的静态功耗,即Leakage Power。
deadblock
统计上dead time占总体时间的30%。

对cacheline设置为dead的策略:当维持cacheline的所需要的静态功耗等于从下一级cacheline取数据所消耗的动态功耗时,则可以将cachline 设置为dead。

经过统计之后,从L2获取数据所消耗的动态等于9x整体L1 cache的动态功耗,如果L1的cachline的数目为1024,那么就是当cacheline在9x1024即10 000个cycle后都没有被再次访问,就可以将cacheline设置为invaliate。

采用time-base cache decay的方式,考虑到专门为每一个cachline都设置一个计数器,那么时间代价太大,因此增加一个总体的计数器,在时间计数到达阈值时,就关闭cacheline。
在这里插入图片描述
考虑到如果设置了固定的计数,就将cacheline victim出去,可能会导致victim出去之后,就立刻被访问而发现miss,因此作者又设置了adaptive模式,即cache decay之后仍然计数,如果立刻被访问,那么就将decay interval增加,而如果过了很久才被访问,那么就将decay interval减小,这样以实现动态的适应。
在这里插入图片描述
比较有意思的几点

  • 其实即使没有实现高效的cachline victim出去,性能也不一定恶化很多,因为这样这里其实提前write back了dirty的cacheline
  • 如果是inclusive的cache hierarchy,比如存在L1D和L1I,可能需要L2对state的记录以实现SMC,这时的tag是应当保留的,以保证state能正确的被发现了
  • 考虑到多条dirty的cacheline可能同时到达阈值,而需要decay,那么需要将它们之前设置一定的时间间隔,以避免发生write back burst的情况

欢迎关注我的公众号《处理器与AI芯片》

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值