论文部分内容阅读
随着集成电路工艺的改进以及处理器性能的日益提高,CPU与主存储器之间速度的差异越来越大,主存的速度成为制约芯片性能提高的主要瓶颈。尽管有多种解决方案可以解决该问题,但在处理器中增加一个Cache是目前被普遍应用的一种有效方法。具体到本论文,3级流水的RISCCPU(亦称Minicore)在100MHz的主频运行时,其片上FLASH的读操作需要4个周期的等待,也就是总共5个周期可以读取一个数据,这对于某些性能较高的需求并不适用。而Cache命中时一个周期就能读取一个数据,可以满足某些性能较高的需求。本论文设计的Cache期望能在100MHz的主频下达到90%以上的命中率,且面积最优。
论文设计的Cache是分离式的Cache,一个指令Cache和一个数据Cache。指令Cache容量为1KB,数据Cache容量为256B。指令Cache和数据Cache均设计为4路组关联映射,Block大小均设计为16B,在两个Cache中均实现了写穿策略,读操作分配策略,伪LRU(LeastRecentlyUsed,最近最少使用)替换算法。论文在充分理解Cache基本原理的基础上,在RISCCPU内核中实现了ICache和DCache的状态机,解决了在不使能、使能时命中以及使能时缺失三种情况下对指令和数据的处理问题;论文采用伪LRU替换算法,该算法采用k-1(k是组关联映射中WAY的数目,论文中k=4)个状态位来决定要替换的行,保留了LRU算法的优点又避免了其缺点,经仿真验证性能较高;为提高Cache缺失时的性能,论文对FLASH模块做了一些优化;同时为兼容Cache,论文对Minicore内核中总线矩阵的逻辑也做了一些改进。
论文对所做的设计进行了VCS仿真和FPGA验证,经仿真,Cache功能正确且对于论文采用的4个应用较为普遍且循环较多的程序,系统加了Cache后命中率都能达到90%以上,加了Cache后CPU的平均执行速度比不加Cache提升了2~3倍,其中命中率最低的程序速度提升也能达到1.6倍。