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

byt*_*ire 3 embedded cpu-registers

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

  1. 微控制器内部的CPU寄存器,例如ARM微控制器中的R1,R2,PC,以及
  2. 内存地址空间内的某些"特殊"位置.

"寄存器"这个术语背后是否存在过重的原因或历史?

Chr*_*ton 7

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

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

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

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