目录
一、存储器的种类
二、易失性存储器(RAM)
1. DRAM
(1)SDRAM
(2)DDR SDRAM
2. SRAM
3. DRAM与SRAM的应用场合
三、非易失性存储器
1. ROM
(1)MASK ROM
(2)OTPROM
(3)EPROM
(4)EEPROM
2. Flash存储器
3. 两种Flash存储器使用场合
4. EEPROM与Flash区别
一、存储器的种类
存储器按其存储介质特性主要分为 “易失性存储器” 和 “非易失性存储器” 两大类( “ 易失 / 非易失 ” 是指存储器断电后,它存储的数据内容是否会丢失的特性 )。由于一般 易失性存储器存取速度快(典型代表-内存),而 非易失性存储器可长期保存数据(典型代表-硬盘),所以它们都在计算机中占据着重要角色。
二、易失性存储器(RAM)
RAM( Random Access Memory,随机存储器 )。“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。 现在RAM已经专门用于指代作为计算机内存的易失性半导体存储器。根据RAM 的存储机制,又分为动态随机存储器 DRAM(Dynamic RAM) 以及静态随机存储器 SRAM (Static RAM) 两种。
1. DRAM
动态随机存储器 DRAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0。但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,因此它需要定期刷新操作,这就是 “动态”(Dynamic)一词所形容的特性。
刷新操作会对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电;若电量小于 1/2,则认为其代表 0,并把电容放电,借此来保证数据的正确性。
(1)SDRAM
根据DRAM的通信方式,又分为同步和异步两种,这两种方式 根据通信时是否需要使用时钟信号来区分。
由于使用时钟同步的通信速度更快,所以同步 DRAM使用更为广泛,这种 DRAM被称为SDRAM (Synchronous DRAM)。
(2)DDR SDRAM
为进一步提高SDRAM 的通信速度,设计了 DDRSDRAM 存储器(Double Data Rate SDRAM)。它的存储特性与SDRAM没有区别,但SDRAM只在上升沿表示有效数据,在1个时钟周期内,只能表示1位数据;而DDR SDRAM在时钟的上升沿及下降沿各表示一个数据,也就是说在1个时钟周期内可以表示2位数据,在时钟频率同样的情况下,提高了一倍的速度。
DDRIl 和 DDRIII 的通信方式 并没有区别,主要是 通信同步时钟的 频率提高了。
2. SRAM
静态随机存储器 SRAM的存储单元以锁存器来存储数据。电路结构不需要定时刷新充电,就能保持状态(断电数据还是会丢失),所以这种存储器被称为“静态”(Static) RAM。
同样地,SRAM根据其通信方式也分为同步(SSRAM) 和异(SRAM)
相对来说,异步 SRAM 用得比较广泛。
3. DRAM与SRAM的应用场合
从结构来说,DRAM的结构简单得多,所以生产相同容量的存储器,DRAM的成本要更低,且集成度更高。而DRAM中的电容结构则决定了它的存取速度不如SRAM。
所以在实际应用场合中,SRAM一般只用于 CPU内部的高速缓存(Cache),而外部扩展的内存一般使用 DRAM。在STM32系统的控制器中,只有STM32F429 型号或更高级的芯片才支持扩展SDRAM,其他型号如 STM32F1、 STM32F2及 STM32F407等,只支持扩展SRAM。
三、非易失性存储器
非易失性存储器种类非常多,半导体类的有 ROM和 Flash,其他还有光盘、软盘及机械硬盘。
1. ROM
ROM( Read Only Memory,只能读的存储器 )。
(1)MASK ROM
MASK(掩膜)ROM ,存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改,其主要优势是大批量生产时成本低。当前在生产量大、数据不需要修改的场合还有应用。
(2)OTPROM
OTPROM ( One Time Programable ROM,一次可编程存储器 )。这种存储器出厂时里面并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。在NXP公司生产的控制器芯片中,常使用OTPROM来存储密钥或设备独有的mac地址等内容。
(3)EPROM
EPROM( Erasable Programmable ROM,可重复擦写的存储器 ),它解决了 PROM芯片只能写入一次的问题。这种存储器使用紫外线照射芯片内部擦除数据,擦除和写入都要专用的设备。现在这种存储器基本淘汰,被 EEPROM取代。
(4)EEPROM
EEPROM( Electrically Erasable Programmable ROM,电可擦除存储器 )。可重复擦写,它的擦除和写入都是直接使用电路控制,不需要再使用外部设备来擦写。而且可以按字节为单位修改数据,无需擦除整个芯片。现在主要使用的ROM芯片都是 EEPROM。
2. Flash存储器
Flash存储器又称为闪存,也是可重复擦写的存储器。它的容量一般比EEPROM大得多,且在擦除时,一般以多个字节为单位。如有的Flash 存储器以4096个字节为扇区,最小的擦除单位为一个扇区。根据存储单元电路的不同,Flash 存储器又分为 NOR Flash 和NAND Flash。
① NOR 与 NAND 共性:在数据写入前都 需要进行 擦除操作,而 擦除操作一般是以 “ 扇区 / 块 ” 为单位的。
② NOR 与 NAND 特性差别:其 内部 “ 地址 / 数据线 ” 是否分开。
③ 是否支持 XIP 描述一种 立即执行的特性(eXecute In Place):
NOR的 地址线和数据线 分开,可以按 “ 字节 ” 读写数据,符合 CPU的指令译码 执行要求,所以假如 NOR中存储了 代码指令,CPU 给 NOR一个地址,NOR 就能向 CPU 返回一个数据让 CPU执行,中间不需要 额外的处理操作。
NAND 的数据和地址线 共用,只能按 “ 块 ” 来读写数据,假如 NAND 上存储了 代码指令,CPU 给 NAND 地址后,它无法 直接返回 该地址的数据,所以 不符合 指令译码要求。
④ NAND 的擦除单位 与 RAM 有区别,且 读写速度 比RAM 要 慢得多。
⑤ Flash 的擦除次数 都是有限的(现在普遍是 10万次左右),当它的使用接近 寿命极限的时候,可能会出现 写操作失败。
⑥ NAND 通常是 整块擦写的,块内有一位失效 整个块就会失效,这被称为 坏块。从整体来说 NOR 坏块更少,寿命更长。由于可能存在坏块,所以 Flash 存储器需要使用 “ 探测 / 错误更正 ”(EDC / ECC) 算法 来确保数据的正确性。
3. 两种Flash存储器使用场合
NOR Flash一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。
NAND Flash一般应用在大数据量存储的场合,包括SD卡、U盘以及固态硬盘等。
4. EEPROM与Flash区别
(1)FLASH是按块进行访问,EEPROM按字节进行访问。
(2)EEPROM可以进行大约10万次的擦写操作,适用于需要频繁存储数据的应用。Flash可以进行大约100万到1000万次的擦写操作,适用于需要更长寿命的应用。
(3)EEPROM相对于Flash来说,存储密度较低,适用于存储少量的数据。Flash可以存储更大量的数据,适用于存储较大的文件或程序。
(4)EEPROM的擦写速度相对较慢,通常为毫秒级。Flash的擦写速度相对较快,通常为微秒级。
(5)EEPROM一般都是用作存储程序运行时要掉电不丢失的数据,FLASH一般是用来存储程序的。
(6)EEPROM相对于Flash来说,成本较高。Flash成本相对较低。
(7)EEPROM可以通过串行或并行方式进行编程和擦除操作。Flash通常采用并行方式进行编程和擦除操作。