有人可以用通俗易懂的简单语言解释一下注册文件到底是什么吗?
我对 CPU 的工作原理有基本的了解,对汇编代码也没什么经验,但我就是找不到任何(好的)解释。
这就是我们所说的“CPU 寄存器”吗?它是高速缓冲存储器(指的是距离 CPU 最近[或之上]的某个硬件组件)吗?如果是这样 - 为什么它被称为“注册文件”?文件不只是一个抽象吗?它与我们在汇编编码中使用的可寻址单词有什么关系吗? (%eax、%ebx、%ecx 等...)
我尝试用谷歌搜索并阅读维基百科中的“注册文件”,但找不到答案。
最佳答案
寄存器是一种快速的内存存储。汇编语言中的寄存器名称只是指令集公开的寄存器,它可能会也可能不会直接映射到硬件寄存器。现代CPU经常使用寄存器重命名来重新排列指令,使它们同时执行,因此用于存储值的寄存器数量可能会大得多。 Register file是他们的一组。
在硬件中,寄存器实际上是由触发器构成的任何数据存储装置。管道之间必须有寄存器, block 之间的输入/输出端口也可能有很多触发器,每个 block 也有很多寄存器来计算和存储中间值,就像软件中的变量一样
关于cpu - 需要有关寄存器文件的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21497241/