常用存储器
RAM 存储器
RAM 是“Random Access Memory”的缩写,被译为随机存储器。所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关
。而RAM可随读取其内部任意地址的数据,时间都是相同的
,因此得名。实际上现在RAM已经专门用于指代作为计算机内存的易失性半导体存储器。
根据 RAM 的存储机制,又分为动态随机存储器 DRAM(Dynamic RAM)以及静态随机存储器 SRAM(Static RAM)两种。
实际应用场合中,SRAM 一般只用于 CPU 内部的高速缓存(Cache)
,而外部扩展的内存
一般使用 DRAM。在 STM32 系统的控制器中,只有 STM32F429 型号或更高级的芯片才支持扩展 SDRAM,其它型号如 STM32F1、STM32F2 及 STM32F407 等型号只能扩展SRAM。
DRAM
RAM的一种,需要电荷刷新,掉电数据丢失
,动态随机存储器 Dynamic
RAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0。
SDRAM
DRAM的一种,使用时钟同步进行刷新。由于使用时钟同步的通讯速度更快,所以SDRAM 使用更为广泛,这种 DRAM 被称为 SDRAM(Synchronous
DRAM)。
DDR SDRAM
Double Data Rate
SDRAM 进一步提高 SDRAM 的通讯速度,DDR SDRAM 在时钟的上升沿及下降沿各表示一个数据,也就是说在 1 个时钟周期内可以表示 2 位数据,在时钟频率同样的情况下,提高了一倍的速度.
SRAM
相对于DRAM电路结构不需要定时刷新充电,就能保持状态(当然,如果断电了,数据还是会丢失的)。
同样地,SRAM 根据其通讯方式也分为同步(SSRAM)和异步 SRAM,相对来说,异步SRAM 用得比较广泛
ROM 存储器
Read Only Memory,原指只读存储器,后设计出方便写入的存储器,现在一般用于指代非易失性半导体存储器,包括FLASH 存储器,有些人也把它归到 ROM 类里边。
MASK ROM 不可修改
MASK(掩膜) ROM 就是正宗的“Read Only Memory”,存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改,其主要优势是大批量生产时成本低。当前在生产量大,数据不需要修改的场合,还有应用。
OTPROM 可修改一次
OTPROM(One Time Programable ROM)是一次可编程存储器。这种存储器出厂时内部并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。在 NXP 公司生产的控制器芯片中常使用 OTPROM 来存储密钥或设备独有的 mac 地址等内容。
EPROM 可重复擦写的存储器(基本不用)
EPROM(Erasable Programmable ROM)是可重复擦写的存储器,它解决了 PROM 芯片只能写入一次的问题。这种存储器使用紫外线照射芯片内部擦除数据,擦除和写入都要专用的设备。现在这种存储器基本淘汰,被 EEPROM 取代。
EEPROM 电可重复擦除 单字节写入
EEPROM(Electrically Erasable Programmable ROM)是电可擦除存储器。EEPROM 可以重复擦写,它的擦除和写入都是直接使用电路控制,不需要再使用外部设备来擦写。而且可以按字节为单位
修改数据,无需整个芯片擦除。现在主要使用的 ROM 芯片都是EEPROM。
FLASH 存储器
1.可重复擦写
2.的容量一般比 EEPROM 大得多
3.在擦除时,一般以多个字节为单位,一个扇区
4.FLASH 存储器又分为 NOR FLASH 和 NAND FLASH
NOR 、NAND FLASH (地址线数据线是否复用,能不能以单字节读取)
NOR与 NAND 的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇区
/块”为单位的。而 NOR 与 NAND 特性的差别,主要是由于其内部“地址/数据线”是否分 开
.
于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要求,所以假如 NOR 上存储了代码指令,CPU 给 NOR 一个地址,NOR就能向 CPU返回一个数据让 CPU 执行,中间不需要额外的处理操作。
于 NAND 的数据和地址线共用,只能按“块”来读写数据,假如 NAND上存储了代码指令,CPU 给 NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。
在功能上可以认为 NOR是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM有区别,且读写速度比 RAM 要慢得多。
NOR FLASH 一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而NAND FLASH一般应用在大数据量存储的场合,包括SD 卡、U 盘以及固态硬盘等,都是 NAND FLASH 类型的。