论文部分内容阅读
同时多线程处理器(SMT)允许同时从多个线程取指令执行,可以使线程间的线程级并行性以及线程内的指令级的并行性得到了充分的挖掘。在减少指令槽的水平浪费的同时,也减少了垂直浪费,从而同时多线程处理器大大地提高了处理器的指令吞吐率。同时多线程的执行产生了较传统单线程处理器更多的功耗,但具体的每个线程占总体功耗的比例不尽相同。本论文针对SMT的研究,提出了基于线程级功耗的评估方法以及相对应的取指调度策略。该策略可以在系统运行的过程中,动态地统计出各线程对各部件的详细功耗情况,每个周期都对各线程所产生的功耗进行衡量排序。在下一周期进行取指时,处理器根据各线程的功耗大小进行动态取指。从而,在兼顾系统性能的基础上,尽可能地减少系统运行中的峰值功耗,减少系统运行过程中因局部功耗过大而导致“走停”现象的产生。与传统的ICOUNT取指策略相比较,通过实验结果表明:每周期峰值功耗平均降低4.87%,每周期均值功耗可以降低约2.3%。在最好的情况下,峰值功耗可以降低约60%,能够降低系统在运行过程中某一周期功耗过大,或某一段时间功耗过大,导致处理器出现“走停”现象发生的可能性。另外,本文还将DIP Cache替换策略思想在SMT上实现,通过对原有的Cache结构的改变,运用新的替换算法,验证SMT的性能变化情况。与传统的LRU替换算法相比较,实验结果表明:在单线程情况下,部分线程的性能可以得到一定提高,其中art负载程序可以提高近25%,但是随着负载数的不断增加,由于资源竞争程度的不断增加,该算法造成的Cache失效率会不断增大。同时我们也从实验观察得知,采样组是私有还是共享也对系统性能造成一定的影响当采用私有采样组时,整体采样组数增加,系统性能更接近ICOUNT的性能。(?)整体性能没有在CMP体系下提高的性能明显。