ROM和RAM指的都是半导体存储器
ROM在系统停止供电的时候仍然可以保持数据
RAM通常都是在掉电之后就丢失数据,典型的就是计算机的内存。
一、ROM也有很多种:PROM(可编程的ROM)、EPROM(可擦除可编程ROM)、EEPROM
1、PROM是一次性的,早期的产品,现在已经不可能使用了;
2、EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器;
3、EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢;
举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通讯记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。
二、RAM有两大类:静态RAM(StaticRAM/SRAM)和动态RAM(Dynamic RAM/DRAM)
1、SRAM
2、DRAM
2.1、DDR RAM(Data-Rate RAM)也称作DDR SDRAM
2.2、SDRAM(Synchronous DRAM,同步动态随机存储器)
三、Flash(闪存)
目前Flash主要有NOR Flash和NADN Flash
1、类型
分为NOR(或非)、 NAND(与非)
2、接口理解
NOR(或非)----地址、数据总线分开;
NAND(与非)----地址、数据总线共用。
3、读写单位:
NOR(或非)----字节;
NAND(与非)----页
4、组成结构:
NOR(或非)----扇区、字节;
NAND(与非)----块、页;
5、擦除单位:
NOR(或非)----扇区;
NAND(与非)----块;
6、读写擦除速度
NOR的读速度比NAND稍快一些。
NAND的写入/擦除速度比NOR快很多。
flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
NAND的擦除单元更小,相应的擦除电路更少。
(注:NOR FLASH SECTOR擦除时间视品牌、大小不同而不同,比如,4M FLASH,有的SECTOR擦除时间为60ms,而有的需要最大6s。)
7、容量
NOR flash占据了容量为1~16MB闪存市场的大部分
NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储
8、可靠性和耐用性:
可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。
A)寿命(耐用性)
在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。
NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。
B)位交换
所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特(bit)位会发生反转或被报告反转了。
一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。
当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。
C)坏块处理
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。
9、易于使用:
基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。
由于NANDLFASH需要I/O接口,所以要复杂得多。各种NAND器件的存取方法因厂家而异。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
10、软件支持:
在NOR器件上运行代码不需要任何的软件支持;
在NAND器件上进行执行操作时,通常需要 驱动程序,也就是内存技术驱动程序(MTD);
NAND和NOR器件在进行写入和擦除操作时都需要MTD。
11、寻址:
NAND每次读取数据时都是指定块地址、页地址、列地址,列地址就是读的页内起始地址,每次都是先将数据读入页缓冲区内,再 由I/O输入地址 在缓冲区内寻址,其实这里列地址,只是指定起始地址的作用。NAND是以页为基本单位 操作的。写入数据也是首先在页面缓冲区内缓冲,数据首先写入这里,再写命令后,再统一写入页内。因此NAND页缓冲区的作用就是,保证芯片的按页的读、写操作,是I/O操作与芯片操作的接口、桥梁,因为数据是从I/O输入的,又是每次一个字节,因此需要缓冲。即使每次改写一个字节,都要重写整个页,因为它只支持页写,而且如果页内有未擦除的部分,则无法编程,在写入前必须保证页是空的。
NOR的 读、写是字节为基本单位操作的,但擦除是以扇区操作的。
综上所述在芯片操作上,NAND要比NOR快很多,因为NAND是页操作的而NOR是字节操作的。
12、应用:
NAND 正是基于这种构造:块、页,无法字节寻址,页读写本身就靠的是内部复杂的串、并行转换 ,因此也没有很多地址引脚,所以其地址、数据线共用,所以容量可以做的很大 。
NOR 是和SRAM一样的可随机存储的,也不需要驱动,因此,其地址就有限,所以容量普遍较小,其实是受限于地址线。
基于以上几点,在工业领域,NOR 用的较多,特别是程序存储,少量数据存储等。
在消费领域,大量数据存储,NAND较多。
Flash ROM是利用浮置栅上的电容存储电荷来保存信息,因为浮置栅不会漏电,所以断电后信息仍然可以保存。也由于其机构简单所以集成度可以做的很高,容量可以很大。Flash rom写入前需要用电进行擦除,而且擦除不同与EEPROM可以以byte(字节)为单位进行,flash rom只能以sector(扇区)为单位进行。不过其写入时可以byte为单位。flash rom主要用于bios,U盘,Mp3等需要大容量且断电不丢数据的设备
存储器局限性
闪存最关键的限制可能是写/擦除周期数有限。
为应对这种限制,可采用固件或文件系统驱动器,对存储器写的次数进行逐次计数。这些软件将动态地重新映射这些块,在扇区间分享写操作。换句话说,万一写操作失败,软件通过写验证和重新映射向未使用的扇区授权写操作。
像RAM一样,闪存可以一个字节或一个字一次进行读或编程,但擦除必须是一次进行一个完整的块,将块中的所有位重新置位为1。这意味着需要花更多时间进行编程。例如,如果将一位(0)写入一个块,要对该块重新编程,就必须完全擦除此块,而不是仅仅重写该位。