【问题标题】:The difference between dispatch,commit,issue and squash width in a cpu corecpu核心中dispatch、commit、issue和squash宽度的区别
【发布时间】:2020-02-29 17:35:59
【问题描述】:

有人能解释一下 cpu 核心中的 dispatch、commit、issue 和 squash 宽度之间的区别吗,它以无序的方式执行。

据我所知:

  • 问题宽度 - 可以并行执行多少条指令
  • 调度宽度 - 重新排序缓冲区中可以有多少条指令(不确定)

我不知道其他两个。解释会很有帮助

【问题讨论】:

  • “壁球宽度”?你确定这是真的吗?压缩指令(例如,从错误预测的分支的错误路径中丢弃指令,并且不将其结果写回架构状态)完全是一回事,但它通常没有有限的宽度。
  • 如果您阅读lighterra.com/papers/modernmicroprocessors 之类的内容(这非常好,如果您还没有阅读过),这些术语中的大部分都会从上下文中变得清晰(甚至完全定义)。还有像realworldtech.com/sandy-bridge(David Kanter 对英特尔微架构的深入探讨)或 Agner Fog 的微架构 pdf(同样是 x86 微架构)解释 ROB 的问题和 commit = retire from the ROB。 agner.org/optimize
  • @PeterCordes,壁球宽度,是我试图在 gem5 中建模的无序 cpu 的参数。而“squash”参数定义为宽度,默认值为8。
  • 好的,gem5 上下文很重要。英特尔术语使用与许多其他计算机架构人员/教科书相反的“调度”和“问题”。一个是一个周期内可以重命名并添加到ROB+调度器的指令数,另一个是一个周期内可以从调度器发送到执行端口的指令数。 (在 x86 CPU 中,load+ALU(内存源 x86 指令)的微融合意味着问题宽度在融合域中测量,但调度宽度在未融合域中测量。)
  • 看来GEM5使用的是非Intel约定,所以dispatch = rename limit (not ROB size)

标签: cpu cpu-architecture instructions gem5


【解决方案1】:
  1. 问题宽度:解码可以推送多少条指令 执行(EX)阶段。通常受问题队列 (IQ) 大小的限制 (在 EX 中,指令首先被推入 IQ,然后“调度” 到 ALU/Functional-Units 以“真正”执行)

  2. 调度宽度:有多少指令可以从 IQ 移动到 ALU/FU。 受限于 ALU/FU 的数量,或者我们的智商有多少 读/循环。

  3. 提交/压缩宽度:每次提交/压缩多少条指令 循环。 GEM5 似乎正在对带宽要求进行建模 与每个周期的提交/壁球相关(通常它涉及 从 ROB 中删除条目并调整重命名表)

【讨论】:

    猜你喜欢
    • 2012-03-24
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多