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

Embedded 为什么内存位置也称为寄存器?,embedded,cpu-registers,Embedded,Cpu Registers,在嵌入式系统和系统编程中,术语寄存器用于指 微控制器内的CPU寄存器,例如R1、R2、ARM微控制器中的PC,以及 内存地址空间中的某些“特殊”位置 “寄存器”一词以这种方式重载有什么原因或历史吗?两者都是寄存器,即具有特殊用途的一小块内存。CPU寄存器(自然)不是内存映射的,因为它们可以通过CPU指令访问。而控制CPU核心外的外围硬件的寄存器通常映射到特定地址 简单地说,1之间唯一的真正区别。二,。这就是你访问它们的方式。但是有各种各样的寄存器:CPU寄存器可以是与给定硬件相关的非常专门的东西

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

  • 微控制器内的CPU寄存器,例如R1、R2、ARM微控制器中的PC,以及
  • 内存地址空间中的某些“特殊”位置

  • “寄存器”一词以这种方式重载有什么原因或历史吗?

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

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


    wikipedia的页面看起来很好地阅读了这个主题。

    从功能上讲,寄存器是一个可以存储值的元素(如D型触发器的多位数组或等效元素)

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

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

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

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


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

    概述。还想提到的是,微芯片PIC将所有片上数据存储器称为“寄存器”,大多数体系结构将其称为RAM。这进一步加重了这个术语的负担,并进一步增加了混淆。虽然照片通常很奇怪,只是因为它是哈佛大学的拱门而不是冯·诺依曼。