论文部分内容阅读
随着计算机技术的发展,计算机的应用深入到各个领域,计算机的安全问题日益受到重视。标签内存架构在计算机安全领域有着重要的应用,然而标签内存架构导致了额外的且不可忽略的程序运行时间开销,阻碍了标签内存架构的实际应用。因此,如何降低标签内存架构导致的额外的程序运行时间开销是一个重要的课题。本文基于Rocket处理器设计了一种位于末级缓存和内存控制器之间的标签缓存,以减少标签内存架构的访存数量,从而降低程序在标签内存架构处理器上运行的时间开销。针对标签缓存的设计本文主要完成了以下工作:(1)本文首先从提高标签缓存命中率的角度出发,设计了压缩率分别为512:1和512:2的两种层次化压缩存储方式。然后结合缓存相关的设计方法策略,确定了标签缓存采用多路组相联映射策略、PLRU替换策略、写回策略以及串行的存储器访问策略,并设计了存储器结构。(2)根据以上方法策略,本文设计了512:1压缩率和512:2压缩率两种标签缓存的电路并进行了优化。电路主要包括:分流单元,操作产生单元,操作执行单元,写回单元等。优化策略主要包括:创建空的缓存行以减少不必要的访存;无效无用的缓存行以提高缓存空间利用率;使用标签计数器以减少对缓存的不必要访问;进行更新检查以减少不必要的写操作;并行化访问以提高标签缓存处理多任务的能力。(3)在处理并行写任务时,由于层次化压缩结构的存在,标签表之间的一致性成为标签缓存设计的关键问题。因此,本文设计了一种锁机制以强制写操作的顺序性,从而保证了标签表之间的一致性。实验部分,本文首先对所设计的标签缓存进行了基于虚拟验证平台的验证以及基于汇编和C语言的验证,确定了标签缓存的正确性。然后,对添加了不同压缩率标签缓存的处理器进行了基于程序运行时间的性能测试,测试结果显示,512:1压缩率相较于512:2压缩率更有优势;512:1压缩率的标签缓存使得标签内存架构处理器的性能相对于没有标签缓存的标签内存架构处理器平均提升20%以上,相对于非标签内存架构处理器损失在2%以下。最后,对采用512:1压缩率标签缓存的处理器进行了逻辑综合,结果显示,标签缓存几乎没有导致处理器的频率损失;但是每增加16KB的缓存容量,会导致约5%的面积损失,但是对一个缓存来说这是可以接受的。综上所述,本文设计的标签缓存以可以接受的面积代价,有效地降低了标签内存架构处理器的程序运行时间开销。