cpu - 需要有关寄存器文件的解释

标签 cpu cpu-registers

有人可以用通俗易懂的简单语言解释一下注册文件到底是什么吗?
我对 CPU 的工作原理有基本的了解,对汇编代码也没什么经验,但我就是找不到任何(好的)解释。
这就是我们所说的“CPU 寄存器”吗?它是高速缓冲存储器(指的是距离 CPU 最近[或之上]的某个硬件组件)吗?如果是这样 - 为什么它被称为“注册文件”?文件不只是一个抽象吗?它与我们在汇编编码中使用的可寻址单词有什么关系吗? (%eax、%ebx、%ecx 等...)
我尝试用谷歌搜索并阅读维基百科中的“注册文件”,但找不到答案。

最佳答案

寄存器是一种快速的内存存储。汇编语言中的寄存器名称只是指令集公开的寄存器,它可能会也可能不会直接映射到硬件寄存器。现代CPU经常使用寄存器重命名来重新排列指令,使它们同时执行,因此用于存储值的寄存器数量可能会大得多。 Register file是他们的一组。

在硬件中,寄存器实际上是由触发器构成的任何数据存储装置。管道之间必须有寄存器, block 之间的输入/输出端口也可能有很多触发器,每个 block 也有很多寄存器来计算和存储中间值,就像软件中的变量一样

关于cpu - 需要有关寄存器文件的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21497241/

相关文章:

linux - 使用 malloc/free on callstack 在 Linux 64 位上从 Signal Handler 回溯

c++ - 虚拟方法错误 (0x0) 地址

pytorch - 切换 GPU 设备会影响 PyTorch 反向传播中的梯度吗?

multithreading - x86 超线程对缓存未命中的说明

asp.net - 如何以编程方式检查网站CPU使用情况?

assembly - ds :si and es:di mean in assembly? 做什么

c - 请澄清我对 C 中位域和 union 的理解

c++ - 获取 CPU 滴答和测量时间

java - CPU模拟,随机化突发、等待和优先级

assembly - X 在 EAX、EBX、ECX 中是什么意思……在汇编中?