有人可以用简单的简单字解释注册文件的确切内容吗?
我对CPU的运行方式有了基本的了解,对汇编代码的经验也很少,但我找不到任何好的解释。
当我们说“CPU寄存器”时,这是我们的意思吗?它是一个高速缓冲存储器(意味着一些硬件组件位于最靠近CPU的位置)?如果是这样 - 为什么称为“注册文件”?不是文件只是一个抽象?它与我们在汇编编码中使用的可寻址单词有什么关系吗? (%eax,%ebx,%ecx等......)
我试图谷歌它并阅读维基百科的“注册文件”,但无法找到它的答案。
答案 0 :(得分:2)
寄存器是一种快速存储器。汇编语言中的寄存器名称只是指令集公开的寄存器,它们可能会也可能不会直接映射到硬件寄存器。现代CPU通常使用寄存器重命名来重新排列指令,使它们同时执行,因此用于存储值的寄存器数量可能会大得多。 Register file是他们中的一员。
在硬件中,寄存器实际上是由触发器构成的任何数据存储装置。在流水线之间必须有寄存器,在块之间可能还有许多触发器在输入/输出端口,并且每个块也有很多寄存器来计算和存储媒体间值,就像软件中的变量一样
答案 1 :(得分:1)
寄存器确实是CPU内部的一些硬件组件 。就速度而言,甚至比保存存储器的一小部分的本地副本的存储器高速缓存更接近。术语文件仅表示收集所有寄存器以及用于访问它们的硬件连接。它与磁盘或文件系统无关。