论文部分内容阅读
在嵌入式设备中,Cache虽然弥补了微处理器和存储器之间的存储墙问题,但其本身也占据了大量功耗。因此,Cache的低功耗设计越来越被人们所重视。由于指令Cache相比于数据Cache拥有更好的时间和空间局部性,更具优化潜力,本文仅对指令Cache进行优化。本文首先介绍了指令Cache的基本组成和基本结构,同时分析了影响指令Cache能耗、延时、能耗延时积的参数,对近年来各种降低指令Cache功耗的方法进行了综述。接下来根据MCU(Micro Controller Unit)系统设计流程,对指令Cache进行SystemC级别的行为分析,通过嵌入式处理器测试程序集mibench分析不同参数配置下指令Cache能耗延时积的变化。最后,对设计的指令Cache基于smic 180nm工艺进行了电路设计。选取指令容量大于10KB的测试程序进行性能测试:对于整个存储系统,从指令Cache取指的能耗延时积相比于从SRAM(Static Random-Access Memory)和flash取指分别降低了26.936%、93.68%,优于Ambiq apollo2的11.621%和60.559%,满足本文的设计指标。在指令Cache的访问方法和算法上,本文主要做了如下优化:1)分别在时钟的上升和下降沿触发Tag Cache和Data Cache,将分步访问方法中2个时钟周期的操作合并至1个时钟周期内,避免了时序的过大牺牲。2)加入路预测算法,且对PLRU(Pseudo Least Recently Used)替换策略的实现方式进行修改,使路预测算法直接复用PLRU寄存器的值进行预测,避免了更多的硬件和功耗开销。3)对指令Cache进行可重构化设计,通过对tag位宽度的修改避免了指令Cache在不同配置间切换时对数据清零的可重构算法,避免了重构时的时间和功耗损失,同时在一定程度上提高了命中率。