论文部分内容阅读
计算机内存系统是影响体系结构、系统软件和应用软件效能的最重要因素之一。过去几十年,由于处理器与内存之间的性能差距越来越大,内存系统已成为制约系统性能的瓶颈。近几年,高并发的数据处理程序越来越多。这类程序会向内存系统发出大量高度并发的访存请求,当这些访存请求局部性不足够好时,就会导致大量的Cache Miss,这时候MSHR(Miss Status Handling Registers)就可能会成为程序性能的瓶颈。MSHR是Cache中用于记录已经发向内存的读请求的一组寄存器,MSHR支持的未完成读请求的个数,是决定访存系统并发性的关键因素之一。而目前,典型处理器的MSHR支持的未完成读请求的个数一般较少,因此会成为这类高并发应用的瓶颈。 本文针对这个问题,提出了访存加速器的解决方案。访存加速器致力于支持更多的未完成读请求,从而提高系统的访存并发性。作者设计的访存加速器,支持的未完成读请求的个数可比MSHR多一个数量级。访存加速器位于CPU和内存之间,自行管理大量的内存读写请求。访存加速器内含一块CPU可见的空间,软件将访存请求写入,然后加速器将访存请求转发至内存。Zynq是Xilinx公司提供的一款集成了ARM核和FPGA的芯片,其硬件可编程性和FPGA可直接访问ARM核内部SPM(Scratchpad Memory)的特点,为我们在其上实际实现访存加速器提供了可能。作者在Zynq芯片上,以FPGA硬件编程的形式,实现了设计的访存加速器。使用ARM核内SPM作为CPU可见的空间。为了测试实现的访存加速器的效果,作者将HPCC RandomAccess Benchmark移植到了该平台上。通过分别运行原始版本和加速器版本的HPCC RandomAccess,作者获得了对比评测数据,并对评测结果进行了分析。