寄存器和RAM之间的区别

  • Post author:
  • Post category:其他




概述

寄存器是“存储设备”,主要用于存储和检查微型计算机的状态。

这里所说的“状态”也包含运算中的数据。

RAM是Random Access Memory(随机存取存储器)的缩写,所以是可以随时保存任意数据的“存储装置”。不限于微型计算机的状态,可以保存各种各样的数据。



寄存器

寄存器大致分为两种。安装在CPU上的通用寄存器(或累加器)和控制微型计算机外围功能的控制寄存器。



CPU上的通用寄存器

它用于保存和检查CPU的状态。具体来说,是运算中的数据、中断或子例程中程序分支时的返回地址、运算结果为负值、为零时的信息和进位值等。CPU的通用寄存器通过硬件直接连接到CPU,因此它的优点是它比通过内部总线访问数据的RAM更快。



外围功能的控制寄存器

外围功能包括定时器、通用同步/异步传输(USART)、SPI(串行外围接口)通信、A-D转换器和D-A转换器。寄存器用于设置这些外围功能。

基本上,与CPU的通用寄存器不同,它不会存储操作过程中或结果数据,但微型计算机有一个寄存器,用于存储访问数据的CRC计算值。



RAM

RAM的主要特点有以下两个。



可以放入任意数据

要保存的数据没有限制。您还可以临时存储CPU计算过程中的数据。但是,在这种情况下,如上所述,由于通过内部总线,所以访问比CPU的通用寄存器慢。另外,对于Cortex-M4,您也可以加入指令代码并执行它。



可以按顺序保存大量数据

Cortex-M4的通用寄存器只有12个32位寄存器,但在RAM的情况下,它可以存储以千字节为单位的数据。因为数据是按地址顺序排列的,所以你可以创建一个数据表,然后按顺序访问它。通过通信功能将收发数据表化后,可以使用DMA(Direct Memory Access:直接存储器访问)高效地处理大量数据。



逻辑构成

寄存器和RAM的逻辑配置不同。很大的原因是,寄存器需要小容量的高速访问,RAM容量大,不需要像寄存器那样高速访问。寄存器通常由触发器组成。数据与时钟同步捕获。触发器是一种常用的便捷电路,因为存储数据的工作原理简单、易于理解。但是,如果使用触发器来保存RAM这样的大量数据,逻辑规模就会变得巨大,微型计算机的成本就会变高。因此,RAM被称为RAM单元的电路。由于寄存器比RAM更频繁地访问,所以不希望每次产生穿透电流。因此,RAM单元处理大量数据,只用于RAM访问速度不如寄存器快。



与C编译器的关系

C语言的编译器也使用寄存器和RAM。那是在分配变量的时候。本地变量通常分配给寄存器,全局变量分配给RAM。由于局部变量只能在函数中使用,所以当您退出函数时,它会消失。因此,您可以将其作为临时数据分配给寄存器。但是,全局变量可以从函数中拔出,因此分配给任何人都可以随时随地访问的RAM。



版权声明:本文为qq_18191333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。