论文部分内容阅读
在多核缓存下共享内存控制器的系统中,线程内部在 bank上的并发性被隐藏了,不同线程之间的干扰让空间局部性大大降低。一个线程的访存请求会被其它线程的请求延迟,导致了很大的不公平性和吞吐率的下降,一部分 CPU核心会长期占用共享内存导致了其他核心的饥饿现象发生。 针对在 CMP系统下多线程访问内存的低效性、不公平性问题,本文提出了一种根据线程特性的分组调度策略,目的是在保证系统公平性的前提下,更多的让线程内部的并发性展现出来,提高整个内存系统的性能。调度算法由三个部分组成,第一个是选择线程进行分组,将并发性强的线程和内存密集型的线程分开调度,减少互相干扰的可能。第二个部分是子队列的优先级设置,我们针对不同的线程特性设置了不同的优先级策略,让线程的特性被更好的利用。第三个部分是队列间的调度,算法优先调度并发型的队列,原因是它们在多核环境下所带来的性能提升相比于行命中请求来说更高。 最后将我们的调度算法和其他的三种内存调度进行了对比测试,通过三种不同特性的测试集,结果表明我们的算法能在保证公平性的基础上提高系统的吞吐率,和现在最好的PAR-BS相比我们对系统的公平性提高了百分之十,系统的加速比提高了百分之六。