表1. 基准
4.2性能表现分析
存储器控制器以执行没有重排序作为性能比较的基础。即控制器使用按序策略:列存取只执行最早挂起的访问。如图2黑色的条状代表按序策略性能。unit load取得DRAM峰值带宽(2GB/s)的97%,3%的开销是有时预充电/激活延迟;unit load到unit持续带宽14%的下降是因为读和写交叉,读访问和写访问转换需要1周期的数据引脚高阻态;unit conflict由于体内行来回交换使得带宽下降到峰值得51%;random只有unit load 的15%带宽,因为存取一个字需要7 DRAM周期。
4.3.1 简单调度
简单的First-ready存取调度策略平均提高25%性能。First-ready调度采用ordered优先,如表1,来决定所有的调度。First-ready调度者考虑所有的挂起访问并且为不违反时序和资源限制的最早挂起的访问调度1个DRAM操作。这个调度算法最明显的好处就是当等待为了最早挂起访问的预充电或者激活操作时,可以同时对其他体进行存取,DRAM内部多体并行。
图2. 按序和first-ready存取调度下的存储器带宽
图2,first-ready调度算法比按序在微基准最多增加性能79%。unit load提高较小;Random提高125%,因为他们能够显著提高每次行激活列存取的数量。
4.3.2 复杂调度
更加具有挑战性的调度算法能够进一步提高性能,这部分将研究4种调度算法进一步提高存储器带宽。如图3,包含random的基准偏向关预充电策略,这种策略只要激活行没有挂起访问就进行体预充电。对于大部分其他基准,开和关预充电策略相差甚微。除了Unit load用col/closed算法表现差,其他基准都有较大性能提高。
图3.各种存取调度算法情况下的存储器带宽
5、结论
本文创新点:存储器存取调度大大地增加了DRAM存取带宽的利用,缓冲存储器访问命令,按照某个顺序选择执行,既有体间并行又最大化利用每个行命令的列存取数量,使得系统性能提高。在大部分基准下,关闭页调度策略是有利的。这部分地因为DRAM有合并最后列存取请求的体预充电的能力。调度算法是否行优先或者列优先在性能上差异较小。最后,调度读优先于写可提高性能。存储器存取调度是最大利用日益宝贵的存储器带宽资源的重要技术。