文章目录
1. 单片机内存结构
内存是单片机内部重要的功能单元,可以分为两个部分,寄存器是在CPU内部的存储单元,存储器是在CPU外部的存储单元,分为RAM和ROM。对单片机来说,因为CPU和存储器在一个片内,所以可以认为寄存器是片内RAM的一部分。
2. 寄存器作用和特点
2.1 寄存器的作用
- 在CPU内的组成部分,能由CPU直接随机存取,用于暂存指令,数据和地址;
- 寄存器内数据执行算术及逻辑运算;存于寄存器中的地址可用来指向内存的某个位置,即寻址;
2.1 寄存器的特点
相比于RAM,寄存器速度快很多,容量有限,将不需要操作的数据存放在主存储器中,主存储器中的数据必须放入寄存器才能够进行操作。
3. 存储器的作用和特点
3.1 存储器的特点
主要功能存储程序和各种数据,并在计算机运行过程中高速自动的完成程序或数据的存取,有了存储器,计算机才有记忆功能,才能保证正常工作。
3.2 RAM和ROM的区别
3.2.1 RAM/ROM介绍
- RAM:随机读取存储器,任一单元读取速度与单元所处位置无关,所以称为随机读取,掉电后数据丢失。(早期的计算机曾经使用磁鼓作为内存,是典型的顺序读写设备,随机是指数据不是线性依次存储,而是由指定地址进行数据读写)
- ROM:只读存储器,只能进行读操作,不能进行擦写操作,掉电后数据仍然可以保存。
3.2.2 RAM/ROM硬件原理
- RAM采用电容作为数据硬件存储单元,电容断电情况下会漏电,表现为数据掉电丢失。
- ROM采用浮栅场效应管,断电时可长期保留电子,理论可达10年,具有数据保存功能。
3.3 RAM分类
- DRAM:存储的硬件单元是电容,容量非常小,充电后,电子只能保存几毫秒,因此需要不断给电容充电,周期充电过程称为刷新,电脑上内存条存储器类型是DRAM,容量一般比较高,G字节数量级,原因是没有一直通电,发热量少,是高度集成的前提。
- SRAM:存储的硬件单元是双稳态触发器,工作时,存储电路一直通电,有电流就会有发热,很难大规模集成,所以常见的缓存容量,通常在M字节数量级上。速度高于DRAM,低于CPU,用于CPU和内存件的缓存。
- 为什么MCU中RAM这么少?
SRAM生产工艺,会占用大量硅片面积,因此集成读较低,相同容量的DRAM内存可以设计为较小的内存,SRAM需要很大的体积,功耗较大。设置层层缓存结构的原因,主要是由速度/价格/结构导致的:速度匹配,CPU速度大于内存大于磁盘,中间不缓存一下读写就受到限制,不能让速度快乙方一直等待速度慢的一方。
3.4 RAM存储内容
写代码定义的数组,变量;代码端的代码由ROM读到RAM。const定义的数组和变量也存在ROM里面,不可修改,掉电不会损失数据。
RAM则用来存取各种动态的输入输出数据、中间计算结果以及与外部存储器交换的数据和暂存数据。运行游戏、程序速度快慢看的是RAM,也就是动态内存,不是看ROM。
3.5 ROM的发展
早期ROM只能读,不能擦写,后来出现了可编程只读存储器EEPROM,另一种衍生品是闪存Flash,与EEPROM很相似,区别在对存储单元的擦写上,EEPROM只能以字节为单位,Flash以扇区为单位。Flash的擦写速度快,使用范围广,如电脑固态硬盘,固态硬盘,U盘,SD卡等等。
4 哈佛/冯诺依曼结构区别
- 冯诺依曼结构:将程序和数据存储器结合,程序指令存储器地址和数据存储器地址指向同一存储器中的不同物理地址,所以程序指令和宽度是一样的。
取指令和取操作数是在同一总线上,分时复用进行;缺点是高速运行时,不能同时取指令和取操作数,从而形成传输过程的瓶颈。 - 哈佛结构:冯诺依曼结构的计算机采用代码与数据的统一编址,哈佛结构是将程序和数据存储在不同的存储空间中,是独立编址,独立访问的,代码空间与数据空间完全分开。
优缺点:理论来说,哈佛结构有较高的执行效率。
51单片机采用的是程序存储器空间和数据存储器空间截然分开的哈佛结构。