ROM、RAM、FLASH 基本介绍

随机存储器(RAM)

RAM 是一种可读/写存储器,特点是存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。**RAM **通常都是在 掉电之后就丢失数据典型的RAM就是计算机的内存。

RAM 又分为 SRAM(静态随机存储器以触发器原理寄存信息)和 DRAM(动态随机存储器以电容充放电原理寄存信息)。SRAM 速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。DRAM 保留数据的时间很短,速度也比 SRAM慢,不过它还是比任何的 ROM 都要快,但从价格上来说 DRAM 相比 SRAM 要便宜很多,计算机内存就是DRAM 的。

DDR RAM(Date-Rate RAM)也称作 DDR SDRAM,这种改进型的 RAM 和 SDRAM 是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了,这是目前电脑中用得最多的内存

内存(DRAM)工作原理

内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即 DRAM),动态内存中所谓的"动态",指的是当我们将数据写入 DRAM 后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作

具体的工作过程是这样的:一个 DRAM 的存储单元存储的是 0 还是 1 取决于电容是否有电荷,有电荷代表 1,无电荷代表 0。但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电;若电量小于 1/2,则认为其代表 0,并把电容放电,藉此来保持数据的连续性。

只读存储器(ROM)

ROM 是能对其存储的内容读出,而不能对其重新写入的存储器。ROM 在系统停止供电的时候仍然可以保持数据

PROM 指的是可编程只读存储器(Programmable Red-Only Memory)。这样的产品只允许写入一次,所以也被称为**一次可编程只读存储器(**One Time Progarmming ROM,OTP-ROM),软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了。

EPROM 指的是可擦写可编程只读存储器(Erasable Programmable Read-Only Memory)。它的特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间

EEPROM 指的是电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory)。它的最大优点是可直接用电信号擦除,也可用电信号写入。EEPROM 不能取代 RAM 的原因是其工艺复杂,耗费的门电路过多,且重编程时间比较长,同时其有效重编程次数也比较低。

ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢

闪存(FLASH)

FLASH 存储器又称闪存,它结合了 ROM 和 RAM 的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据

目前 Flash 主要有 NOR Flash 和 NADN Flash。

NOR Flash NADN Flash
接口理解 地址、数据总线分开 地址、数据总线共用
读写单位 字节
组成结构 扇区、字节 块、页
擦除单位 扇区

NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。

NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取 512 个字节,采用这种技术的 Flash 比较廉价。用户不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash的开发板除了使用 NAND Flash 以外,还加上了一块小的 NOR Flash 来运行启动代码。

一般小容量的用 NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用 NAND FLASH,能提供极高的单元密度,可以达到高存储密度。

NOR Flash 和 NADN Flash 比较

  1. 性能比较:

任何 flash 器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除NOR 要求在进行擦除前先要将目标块内所有的位都写为 1。

NOR 的速度比 NAND 稍快一些;NAND 的写入速度比 NOR 快很多NAND的 4 ms 擦除速度远比 NOR 的 5 s 快。

  1. 接口差别:

NOR flash带有 SRAM 接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

NAND 器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同

NAND读和写操作采用 512 字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。

  1. 容量和成本:

NAND Flash 的单元尺寸几乎是 NOR 器件的一半,由于生产过程更为简单,NAND 结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

NOR Flash占据了容量为 1~16MB 闪存市场的大部分,而 NAND Flash 只是用在 8~128MB 的产品当中,这也说明 NOR 主要应用在代码存储介质中,NAND 适合于数据存储

  1. 易于使用:

可以非常直接地使用基于 NOR 的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。

在使用 NAND 器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在 NAND 器件上自始至终都必须进行虚拟映射。

  1. 寻址:

NAND 每次读取数据时都是指定块地址、页地址、列地址,列地址就是读的页内起始地址,每次都是先将数据读入页缓冲区内,再由 I/O 输入地址在缓冲区内寻址,其实这里列地址只是指定起始地址的作用。NAND 是以页为基本单位 操作的写入数据也是首先在页面缓冲区内缓冲,数据首先写入这里,再写命令后,再统一写入页内。因此 NAND 页缓冲区的作用就是保证芯片的按页的读、写操作,是 I/O 操作与芯片操作的接口、桥梁,因为数据是从 I/O 输入的,又是每次一个字节,因此需要缓冲。即使每次改写一个字节,都要重写整个页,因为它只支持页写,而且如果页内有未擦除的部分,则无法编程,在写入前必须保证页是空的。
NOR 的读、写字节为基本单位操作的,但擦除是以扇区操作的。综上所述在芯片操作上,NAND 要比 NOR 快很多,因为 NAND 是页操作的而 NOR 是字节操作的。

闪存最关键的限制可能是写/擦除周期数有限。多数商用基于快闪产品都保证能进行高达 100 万个写周期。这一数字看起来似乎很大,对于 NOR 闪存,很可能是这样,因为将一个软件或 BIOS 保存很长时间可能没问题。不过,在典型的经常进行文件写入、检索和重写的 NAND 应用中,这些周期很快耗完,而大多数用户可能不进行计数。对于频繁更新的关键数据的存储,闪存可能不适合。

为应对这种限制,可采用固件或文件系统驱动器,对存储器写的次数进行逐次计数。这些软件将动态地重新映射这些块,在扇区间分享写操作。换句话说,万一写操作失败,软件通过写验证和重新映射向未使用的扇区授权写操作。

像 RAM 一样,闪存可以一个字节或一个字一次进行读或编程,但**擦除必须是一次进行一个完整的块,将块中的所有位重新置位为 1。**这意味着需要花更多时间进行编程。例如,如果将一位(0)写入一个块,要对该块重新编程,就必须完全擦除此块,而不是仅仅重写该位。

ROM、RAM、DRAM、SRAM和FLASH的区别_什么是sram-CSDN博客