论文部分内容阅读
同时多线程处理器(SMT)通过在每个时钟周期从多个同时运行的线程取指令执行,充分挖掘了线程内的指令级并行性和线程间的线程级并行性,减少了指令槽的水平浪费和垂直浪费,从而极大地提高了处理器的指令吞吐率,成为目前主流的微处理器体系结构之一。SMT的前端系统(包括:取指部件、1级Cache和分支预测器)是影响其性能的关键,也是目前学术界研究SMT的重点。本论文分别从其前端系统的三个部件出发,就取指策略、Cache的压缩存储技术及分支预测器进行了研究,提出两个有效的取指策略、一种简单的Cache压缩技术,以及一种基于值的分支预测方法,将这些研究成果结合起来构成一个新的前端系统,使其总体性能得到了大幅度的提高。具体的研究成果如下:一种有效的SMT取指策略——IPCBFP:该策略分析了目前性能最好的ICOUNT策略的取指特点,发现其存在线程指令分配不适当的问题,针对该问题提出一种新的取指策略IPCBFP,该策略通过很少的硬件支持即可使SMT的总体性能得到很大的提高,同时对系统中其他资源的利用也更加有效;一种具有QoS特性的取指策略:目前对在SMT中支持线程的QoS需求的研究非常少,仅有的一个策略其实现复杂度很高,不利于物理上的实现。本研究只从取指的角度来实现线程QoS的需求,提出一种新的取指策略,该策略在一定精度的范围内可以同时满足多个线程的QoS需求,与前人的研究成果相比,该策略的实现更加简单,但精度稍差;一种简单的Cache压缩存储技术和一种覆盖存储结构:在SMT的研究中,因多个线程竞争Cache导致Cache失效率大幅度增加和单线程性能下降的问题一直没有得到很好的解决,本研究从Cache压缩存储的角度来解决该问题,提出一种简单的Cache压缩存储技术和一种覆盖存储方法,获得了较好的研究结果,使Cache的潜在容量大大提高,有效地减少了Cache失效次数,提高了SMT的总体性能;该研究同时给出了关于Cache压缩技术在SMT下应用的一些结论;一种基于数据值的分支预测器VBBP:多线程共享分支预测器的空间导致分支预测命中率大幅度下降,极大地影响了单线程的性能,本研究从数据值的角度提出一种新的分支预测器,并作为一个辅助部件与传统的分支预测器共同使用;初步研究表明,该预测器有效地提高了分支预测的命中率;结合上述研究成果提出的一种新的SMT前端系统组成方式:新的前端系统有效地提高了SMT的总体性能。与传统的基于ICOUNT取指策略和gshare分支预测器的前端结构相比,其性能得到了大幅度的提高,加速比达到了55%。除此之外,本论文对目前最新的基于神经元网络的分支预测器在SMT下的性能也作