【问题标题】:Is it more expensive to read a register or to read from memory? [duplicate]读取寄存器还是从内存中读取更昂贵? [复制]
【发布时间】:2020-09-28 01:42:20
【问题描述】:

我想知道:在 x86 架构上,从寄存器读取值或从 RAM 读取值需要更多时间/CPU 周期吗?我会假设 RAM,因为 CPU 必须与某种地址/内存总线接口,而使用寄存器它从硬编码区域读取。这是正确的,还是需要考虑其他因素?

【问题讨论】:

标签: x86 ram cpu-registers


【解决方案1】:

寄存器存在于 CPU 上,内存必须通过总线从芯片中读取。所以寄存器应该总是更快。

【讨论】:

  • L1d 缓存也存在于每个 CPU 内核中,但是读取寄存器的速度更快(延迟更低,微指令更少),无需通过加载端口。请注意,这被标记为 x86,并且所有 x86 CPU 的缓存已超过 25 年。 (不包括基于 8086 的微控制器。)
  • 但是,读取一些特殊寄存器(如控制寄存器、调试寄存器或 MSR)可能会更慢。
猜你喜欢
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 2010-10-13
相关资源
最近更新 更多