Atom的处理流水线
Atom的功耗需求要远高于比它复杂很多的ARM处理器。例如Cortex A-8。答案就在于Atom处理器的前端,特别是处理器流水线的解码部分。因为x86处理器的解码部分非常的陈旧,它就像是堆满各种垃圾杂物的旧车库一样,从来没有人打扫。在此,复杂的x86架构硬件需要更多的电能来催动,而ARM处理器则完全不需要如此费劲。
| IF1 |
IF2 |
IF3 |
ID1 |
ID2 |
ID3 |
SC |
IS |
IRF |
AG |
DC1 |
DC2 |
EX1 |
FT1 |
FT2 |
IWB/DC |
| Instruction Fetch |
Decode |
Dispatch |
Reg. File |
Data cache read |
Execute |
Exceptions & MT |
Write-back |
Atom处理器流水线流程
Atom需要使用3个时钟周期,从32KB的高速指令缓存中取出指令,放到预取缓冲区中。预取缓冲区会将所有的指令排列为一个预解码列队。整个列队的长度足够喂饱解码单元,让其以每个时钟周期处理两个指令的速度进行解码。另外在这个阶段,分支预测机制也是同样的速度。
通过这个预解码队列,指令会被送入正确的解码硬件。Atom的解码部分由2组快速的硬件解码单元和一组更长的低速微码ROM组成。低速微码ROM可以解析更长的,更复杂的指令。不过Intel并没有揭示长短指令的平均百分比。这一项参数非常关键,如果指令越短,那么解码单元的执行效率就越高。虽然不清楚快速解码单元的运行效率,但是预解码和解码总共会花费3个时钟周期。
最终,解码单元作为一个整体,包括了2个硬件解码单元和一个微码ROM,能够以每个时钟周期(1~2个线程)排列出16条指令,组成指令预解码列队。执行单元会以每个时钟周期1个指令的速度对其进行处理。
版权作品 未经许可 请勿转载
|