首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是部分旗帜失速?

什么是部分旗帜失速?
EN

Stack Overflow用户
提问于 2018-04-16 23:21:54
回答 1查看 1.1K关注 0票数 14

我刚检查了这是彼得·科德斯的回答,他说,

当读取标志时会出现部分标志暂停,如果它们发生在任何情况下。P4从来没有部分标志档,因为它们从来不需要合并。相反,它有错误的依赖关系。有几个答案/评论混淆了术语。他们描述了一个错误的依赖关系,但又称它为部分标志失速.这是一个减速,因为只写了一些标志,但术语“部分标志失速”是发生在之前的SnB英特尔硬件,当部分标志写必须合并。英特尔SnB-家庭CPU插入一个额外的uop,以合并标志,没有拖延。Nehalem和早期失速~7个周期。我不知道AMD CPU的罚款有多大。

我还不明白什么是“部分旗帜失速”。我怎么知道发生了什么?除了有时读取标志之外,是什么触发了事件?合并标志是什么意思?在什么情况下,“一些标志被写入”,但不发生部分标志合并?要了解国旗摊位,我需要了解些什么?

EN

回答 1

Stack Overflow用户

发布于 2021-01-27 07:17:16

修改uop的标志只能更新标志寄存器的一部分。RAT有一个标志/e标志/r标志寄存器的条目和一个掩码,该掩码显示由uop更改的标志,该标志导致条目指向要分配的物理寄存器。如果出现一系列读和写相同标志的指令,则为每个写指定一个单独的物理寄存器,并且每个读都使用以前的物理寄存器。在这些寄存器中将写入该标志和所有其他标志将是清楚的。这就是为什么当前的物理寄存器不能被使用时,从一个不同的标志,而不是在掩码中没有在旗子老鼠的入口,因为它将读取一个明确的位,而不是真正的状态的标志,已被抛出。在旧的微体系结构上,会出现延迟,直到标志寄存器的状态在RRF中有效(等待每个标志设置uop在其之前的uop退出,以插入它们在RRF标志寄存器中设置的位,其中每个uop被检查以知道它使用/更改的体系结构寄存器,这是一种比x86宏更容易解释的格式)。

在使用PRF方案(SnB以后)的微体系结构上,当没有专用的RRF寄存器时,需要一个合并uop来保持一个统一的标志寄存器,否则退休的用户将指向一个没有意义的物理寄存器,其中只有一个标志在其中。合并uop发生在修改指令(如incdec )的每个部分标志之后。add修改所有6个状态标志,因此不需要合并uop。我认为这可能意味着状态、控制和系统标志在PRF方案上分别重命名,因为add不需要合并uop。显然,CF标志是重命名为SPAZO群集

部分注册档类似。ah (都是在写入axeaxrax以指向同一个寄存器时更新的)。它只需要2来表示,因为只有2个互斥寄存器。如果在先前对一个较小寄存器的写入退出之前从eax读取,则分配程序将暂停(因为ROB条目不能对同一个操作数有2个依赖项),直到完全寄存器出现在RRF中,然后将两个条目重命名为RRF寄存器以用于rax

在以后使用PRF方案的微体系结构中,这是很困难的,因为不再保留用于rax的单个RRF。因此,需要使用合并uop,这也恰好比以前的微体系结构的失速方法更快。

合并uop实现

  1. 合并uop的一个实现可能是在每次写入部分标志/寄存器之前插入它,合并uop在将其全部写入新的物理寄存器之前从完全寄存器/标志寄存器中读取。然后,为写入分配相同的寄存器,这将导致写入自然地合并到。然后,下面的读取可以读取寄存器/任何标志的任何部分。这基本上在每个部分标志写入指令和一个先前标志写入指令(部分或完全)之间以及在每个部分寄存器写入和先前(完全/部分)写入寄存器之间建立了一个依赖链。在这种情况下,老鼠从来没有部分重命名。
  2. 它可以在写入部分寄存器之后立即分配。合并uop接受以前的物理寄存器(它始终是一个完整的rax/eax写入,或者在使用标志的情况下,一个完整的状态标志更新,比如由add或合并uop完成的更新)和新的物理寄存器,并将它们组合到新的物理寄存器中。这意味着分配程序插入了它。如果由解码器插入,则当先前的鼠指针未知时,分配器可以在不同的周期中分配该uop。
  3. 它可以在读取之前立即分配,读取器在大鼠中具有统一状态。这意味着大鼠将rax/eax分别追踪到axalah。在这种情况下,需要合并的2个物理寄存器是从大鼠中提取的。

优化手册意味着它是后两个场景之一,“合并uop发生在每个部分寄存器写入之后”(即写入axalaheax)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49867597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档