Optimization Intel Skylake的统一调度程序与AMD Zen的独立调度程序

Optimization Intel Skylake的统一调度程序与AMD Zen的独立调度程序,optimization,x86,intel,cpu-architecture,amd-processor,Optimization,X86,Intel,Cpu Architecture,Amd Processor,Intel Skylake有一个“统一”的调度程序(在WikiChip的左边) AMD Zen为每个整数执行单元使用单独的调度器,为浮点执行单元使用一个调度器(右图取自WikiChip,该图取自AMD演示文稿) 两种设计的优缺点是什么 它如何影响x86代码的微观优化?(我知道这可能会变得非常复杂和微妙,例如,在撰写本文时,一个相关问题更具体地针对具有统一调度程序的英特尔CPU)。拆分调度程序的优点可能是 它们更小,因此使用的电路更少,内部距离更短 它们可以放在更靠近其功能单元的位置 单个决策

Intel Skylake有一个“统一”的调度程序(在WikiChip的左边)

AMD Zen为每个整数执行单元使用单独的调度器,为浮点执行单元使用一个调度器(右图取自WikiChip,该图取自AMD演示文稿)

两种设计的优缺点是什么


它如何影响x86代码的微观优化?(我知道这可能会变得非常复杂和微妙,例如,在撰写本文时,一个相关问题更具体地针对具有统一调度程序的英特尔CPU)。

拆分调度程序的优点可能是

  • 它们更小,因此使用的电路更少,内部距离更短
  • 它们可以放在更靠近其功能单元的位置
  • 单个决策的规模较小,因为它们只能进入较少的内部单位
  • 缺点可能是:

  • 要调度的指令较少,当一种类型的指令比另一种类型的指令多时,这就成了一个问题
  • 如果一个单元中充满了可能在另一个单元上运行的指令,则需要在另一个单元上重新安排额外的接线

  • 我认为统一调度器的一个优点是,例如,可以在几乎所有SIMD ALU的代码中查找ILP。在AMD CPU中,如果大多数UOP只进入一个域,那么OOO窗口的大小将受到该调度程序的限制。IDK非常了解AMD CPU的调度方式,所以我不确定它有什么优势(除了电源或在某些方面更易于设计)。IDK如果AMD像Intel一样在问题/重命名时将UOP调度到端口,或者,如果单独的调度程序域允许UOP位于调度程序中,并根据每个周期可以运行的任何端口进行检查。