为什么内存位置也称为寄存器?

时间:2015-04-15 14:46:33

标签: embedded cpu-registers

在嵌入式系统和系统编程中,术语寄存器用于指代

  1. 微控制器内的CPU寄存器,例如, ARM微控制器中的R1,R2,PC和
  2. 某些特殊的'内存地址空间内的位置。
  3. 这个术语背后是否有原因或历史记录'这种方式超负荷?

3 个答案:

答案 0 :(得分:7)

从功能上讲,寄存器是一个元素(例如D型触发器的多位数组或等价物),您可以在其中存储值。

除了用于保存操作数和ALU计算结果的传统CPU寄存器外,还有特殊功能寄存器(片内或关闭)专用于其他用途。例如,实现串行端口的UART外设可能有一个寄存器来保存除数,该除数从其时钟获得波特率,一个用于输出数据,一个用于接收数据,一个用于模式设置的位图。 / p>

在具有内存映射I / O 的计算机上,特殊功能寄存器出现在内存空间中,并通过内存访问指令进行访问(尽管有时存在约束,例如只有特定的访问宽度法律)。相反,在 I / O映射机器上,只有用于访问I / O端口地址的特殊指令,以及(至少在双用途外部总线上)一个控制信号,用于指示是否存在访问权限是内存或I / O空间。

进一步令人困惑的是,有一些传统的处理器设计,如8051,其中CPU寄存器也可以作为普通的存储器位置进行访问。在许多其他机器中,虽然CPU寄存器存储在寄存器文件而不是存储器中,但它们在指令字的位域中具有“地址”,指定哪个寄存器是操作数或结果 - 带有编号寄存器的RISC架构这一点特别明显。

答案 1 :(得分:2)

I / O或特殊功能寄存器通常是内存映射但它们仍然是寄存器,因为它们不是通用的内存,而是I / O外设控制和状态寄存器。

与内存映射随机访问读/写或只读内存不同,寄存器通常具有定义的上电/复位状态等特性,并且可能是r / w,r / o或w / o个别位级别。此外,它们的值可以独立于写入它们的任何值而改变,因为它们也可由相关外围设备写入;这通常是互惠的 - 处理器在外设读取时写入,反之亦然;通常在比特级别而不是单词级别。通常,单个地址可以引用两个寄存器,一个是只读的,另一个是只写的。

答案 2 :(得分:1)

两者都是寄存器,这是一小部分具有特殊用途的存储器。 CPU寄存器(自然地)不是存储器映射的,因为它们可以通过CPU指令访问。控制CPU内核外部硬件的寄存器通常映射到特定地址。

简单地说,1和2之间唯一真正的区别就是你如何访问它们。但是有各种各样的寄存器:CPU寄存器可以是与给定硬件相关的非常专业的东西,而不一定只是用于保存程序计算结果的通用“累加器”。

processor registers的维基百科页面看起来非常好读这个主题。