解码指令的模式



我正在分析Agner Fog的"用汇编语言优化子例程:x86平台的优化指南"。尤其是我正在努力理解第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. CPU的前端可以在一个时钟周期内解码多个(宏)指令。每个宏指令解码为1个或多个微操作(μ操作)。4-1-1模式意味着第一个并行解码器可以处理解码到4μops的复杂指令。但第二个和第三个并行解码器只能处理每个解码到1μop的指令(如果不满足,它们就不会消耗指令)。

  2. 解码到2μops的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)
    

相关内容

  • 没有找到相关文章

最新更新