文章通过BWDSP模拟器对目前常用的几种替换算法和大小不同的指令Cache块进行仿真实验得出不同缺失率。实验结果表明,所提出的PLRU替换算法性能高于LRU, LFU, FIFO替换算法,并使BWDSP整体性能提高到为其他三种替换算法的1.12倍左右。
自1978年以来,我国的集成电路用量和产量几乎以平均每年20%的速度同步增长,集成电路生产中心也在向中国大陆转移,使我国IC产业迅速发展。目前IC制造工艺水平已达到28 nm,为设计高性能DSP系统打下了牢固的基础。DSP处理器速度与存储器速度之间的差异是DSP体系结构设计的一个瓶颈问题,在DSP处理器的存储层次中,Cache是离处理器内核最近的一层存储器,而Cache技术是有效解决DSP处理器的存储层问题的重要技术In。可以依据Cache的速度和命中率来配置Cache的参数,使Cache的性能达到最佳。
1 BWDSP处理器总体结构
BWDSP处理器是中国电子集团第38研究所自主研制的一款犯bit静态超标量处理器,采用8发射、11级流水线、SIMD架构。处理器指令总线宽度为512 bit,数据总线位宽为256 bit ;指令存储空间和数据存储空间在物理上是分开的,指令存储空间大小为2 MB,指令Cache空间为512 KB,数据存储空间为8 MB;取指程序计数器每变化一次,从指令Cache中取出8条指令为一个256 bit指令包进人指令流水线。BWDSP处理器的执行部件包含在4个执行宏中,分别为macro x , macro y , macro z , macro t o指令译码单元解析从指令包中得到的并行指令,并决定指令在那些执行宏中运行,进而为指令分配对应执行宏中的执行资源,并且把指令翻译为微操作,发射到4个执行宏。高性能DSP处理器总体结构如图1所示。
在高性能DSP处理器上对指令进行重复访问时,指令Cache的失效次数与指令空间大小的关系:首先计算第一次重复访问时的失效次数。设程序指令大小为M,即Mo=M/512个Cache行。当M≤512 KB时,程序被访问后,指令Cache每一组内至多包含一个Cache行的有效指令数据,不会因为冲突失效而发生替换,所以再次执行程序时,不会使指令Cache发生失效;当M在512 KB-1 024 KB时,访问完一遍之后,前512个Cache行的数据会填充每组内的一个 Cache行,而超过512个Cache行的部分,每个Cache行的指令数据有1/4的概率替换掉有效数据,因此,被替换出去的Cache行数约为(Mo-512)/4,即重复访问的失效概率约为(Mo-512)/4 M;对于M在1 024 KB-1 536 KB、1 536 KB-2 048 KB, 2 048 KB-∞的情况时,可用同样的方法分析得到访问一遍之后被替换出去的Cache行数目。
由上述可知,当执行程序指令空间小于512 KB(即Mo<512 KB)时,所有Cache行都不会被替换掉;而当执行程序指令空间大于512 KB时,被替换出去Cache行数呈线性增长,并且不同区间内增长的斜率依次变大。因此,当执行程序指令空间大于指令Cache大小时,指令Cache行被替换出去的概率与指令Cache的替换算法有关。
指令Cache参数包括:Cache容量大小、Cache块大小、组相联度和替换策略。在某种程度上,可通过优化Cache参数提高Cache的性能,但当 Cache容量增加到某一程度时,Cache命中率将迅速降低。指令Cache替换算法是影响指令Cache性能的主要因素,目前常见的指令Cache替换算法有Random, FIFO, LRU、 LFU , MRU, SCK -4 ,此外还有比较新颖的LNC算法。FIFIO和Random算法硬件实现简单,但其性能不佳;而常用的LRU算法性能最佳,但是硬件实现过于复杂,同时该算法占用时间较多。因此,LRU替换算法不是指令Cache最佳的替换算法。预取技术是利用空间局部性,若利用预取技术来克服LRU算法,其缺点将导致缺失不断增加。而采用PLRU算法对LRU算法进行改进,几乎不会影响Cache的缺失率,并且简化了硬件实现代价及复杂度。