optimization - Intel Skylake 的统一调度器与 AMD Zen 的单独调度器

标签 optimization x86 intel cpu-architecture amd-processor

英特尔 Skylake 有一个单一的“统一”调度程序(来自 WikiChip 的左侧图)。

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

这两种设计的优点和缺点是什么?

它如何影响 x86 代码的微优化? (我知道这可能会变得相当复杂和微妙,请参阅 How are x86 uops scheduled, exactly? 的相关问题,在撰写本文时,该问题更具体针对具有统一调度程序的 Intel CPU)。

最佳答案

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

  1. 它们更小,因此使用的电路更少,内部距离也更短。
  2. 它们可以放置在更靠近其功能单元的位置。
  3. 个人决策规模较小,因为它们只能提交给较少的内部部门。

缺点可能是:

  1. 可供调度的指令较少,当一种类型的指令多于另一种类型的指令时,这就会成为问题。
  2. 如果一个单元充满了可能在另一个单元上运行的指令,则需要额外的接线来在另一个单元上重新安排时间。

关于optimization - Intel Skylake 的统一调度器与 AMD Zen 的单独调度器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45713948/

相关文章:

javascript - 用 jQuery 动画替换 setInterval

linux - 如何使用awk读取每n个字符而不是每行的文件?

windows - NASM 教程使用 int 80h,但这不适用于 Windows

hadoop - 如何使用Intel hadoop中的spark-shell从hdfs读取?

ruby-on-rails - 在没有外部依赖的情况下像 New Relic 一样在本地测量 Rails 性能

php - 148 是不是包含的文件太多

assembly - 用 32 位 x86 汇编语言清除屏幕的最佳方法是什么(视频模式 13h)

linux - 端口映射 I/O 地址空间的位置

c++ - 利用 sandy bridge 的硬件真随机数生成器?

c - 函数指针属于哪个缓存?