解码指令的模式

时间:2016-04-11 18:40:15

标签: parallel-processing x86 cpu-architecture pipelining

我正在分析Agner Fog's "Optimizing subroutines in assembly language: An optimization guide for x86 platforms"。 特别是我试图理解第12.7章。还有一个我无法理解的问题。作者写道:

  

PM处理器中的指令解码遵循4-1-1模式。 (融合)的模式   例12.6b中循环中每条指令的μops为2-2-2-2-2-1-1-1。这不是最佳的,   解码需要6个时钟周期。这不仅仅是退休时间,所以我们可以   得出结论,指令解码是例12.6b中的瓶颈。总执行   时间是每次迭代6个时钟周期或每个计算的Y [i]值3个时钟周期。

  1. 指令解码遵循4-1-1模式以及如何知道它是什么意思?
  2. 循环模式是2-2-2-2-2-1-1-1。好的,但为什么需要6个周期来解码我不知道。为什么?

1 个答案:

答案 0 :(得分:4)

  1. CPU的前端可以在一个时钟周期内解码多个(宏)指令。每个宏指令解码为1个或多个微操作(μop)。 4-1-1模式的含义是第一个并行解码器可以处理解码到最多4μs的复杂指令。但是第二个和第三个并行解码器只能处理每个解码为1μs的指令(如果不满意,它们不会使用该指令)。

  2. 解码为2μs的5条指令必须由第一个解码器使用,然后尾部允许一些并行。

    2 2 2 2 2 1 1 1 (Macro-instruction stream, μops per instruction)
    ^ x x
    4 1 1  (Decode cycle 0)
    
    . 2 2 2 2 1 1 1
      ^ x x
      4 1 1  (Decode cycle 1)
    
    . . 2 2 2 1 1 1
        ^ x x
        4 1 1  (Decode cycle 2)
    
    . . . 2 2 1 1 1
          ^ x x
          4 1 1  (Decode cycle 3)
    
    . . . . 2 1 1 1
            ^ ^ ^
            4 1 1  (Decode cycle 4)
    
    . . . . . . . 1
                  ^ x x
                  4 1 1  (Decode cycle 5)
    
    . . . . . . . . (Instruction stream fully consumed)