服务器 频道

解析:从Atom微处理器到通用处理器市场


Intel Silverthorne Atom Microarchitecture

  由于顺序执行架构必须按照指令原定的顺序执行,因此最怕碰到的情况就是流水线停滞(pipeline stall),这种情况可以被高延迟缓存操作导致——特别是需要访问缓慢的内存的时候,这时顺序执行架构需要停工而一直等待数据的到来,性能可想而知,并且电力也一直在无谓的浪费,无疑非常糟糕。

IF1IF2IF3ID1ID2ID3SCISIRFAGDC1DC2EX1FT1FT2IWB/DC
Instruction FetchDecodeDispatchReg. FileData cache readExecuteExceptions & MTWrite-back
16 stage Pipeline: Intel Silverthorne Atom

  乱序执行架构可以通过简单地挑选另外的指令来执行解决,对于完全的顺序架构来说显然无计可施。最后,Atom实现了一个折中的方案:半乱序架构。这种方案采用了一种叫做SIR(Safe Instruction Recognition,安全指令识别)的算法,该算法的机制是这样:当Atom需要执行一条高延迟的浮点运算,而后面跟着一条短延迟的整数操作时,顺序执行机制需要等浮点操作完成之后才能去执行后面的整数操作;但是采用SIR就可以先查看两条指令所需的数据是否有关联,如果没有关联SIR就允许将后面的整数操作提前执行,从而节省时间提高效率。它实际上就是在特殊情形下的乱序执行。

  SIR只在很少的特殊情况下有效,它使Atom的顺序执行没有那么纯粹——当然这些情况不多见,因此通常仍然认为Atom是一种顺序架构。


Atom的HTT超线程技术和Pentium/Nehalem的一样都属于SMT,和Itanium 2的CMT不同

  在解码之后,指令们将会先保存在一个队列当中,按照HTT超线程技术存在与否,分发器在当中寻找同一线程的两条指令,或两条线程的各一条指令来执行,分发阶段占用两个流水线级。


Sun UltraSPARC T1处理器,8核心,每核4个线程(基于FMT技术)

  HTT超线程技术是多线程技术的一种,它可以以较小的晶体管代价(因此功耗代价也很小)获得不错的性能提升。在某种程度上,它也可以缓解顺序执行架构的停滞问题:当一线程在执行长延迟的内存读取的时候,分发器就可以全部选择另一个线程的两条指令来执行,这一点让它看起来很像CMT(粗粒度多线程技术)。很多顺序架构的处理器都采用了各种各样的多线程技术来降低高延迟内存读取的影响以及提升指令执行效率,如上图的Sun UltraSPARC T1。或许Atom未来会进一步采用CMT和FMT技术。各种多线程技术可以看下面:

 

1
相关文章