目录
易失性存储器
掉电会丢失数据。相对地,读写速度较快。典型代表:内存。
易失性存储器一般默认为RAM,RAM是随机存储器。随机存储器,指当读取或写入存储器中的消息时,所需要的时间与这段信息所在的位置无关。在早期计算机中,曾使用磁鼓作为存储器,磁鼓存储器是顺序读写设备,相当于一个罗盘,数据可能需要转数圈才能读取,数据分布不均。而RAM可随机读取其内部任意地址的数据,时间都是相同的。
RAM:SRAM、DRAM、SDRAM。
SRAM
静态随机存储器,上电时不需要刷新也能保存数据。
SRAM速度快,价格昂贵。
SRAM是依靠锁存器来存储数据,每个存储单元(存储1bit数据)需要花费6个晶体管。所以集成度低,占用面积大。
典型代表:CPU缓存cache。
DRAM
动态随机存储器,上电时需要不断刷新才能保存数据。
DRAM容量大,价格低廉。
DRAM是依靠电容的电荷来存储数据(检测电流,有电流,则数据bit为1,否则为0),每个存储单元(存储1bit数据)只需要花费1个电容和1个晶体管。所以集成度低,占用面积大。
此外,时间一长,1电容会放电,0电容会充电。电容的电荷只能保存2ms左右,所以计算机一般每隔2ms刷新一次。每次刷新一行存储单元。
典型代表:系统内存。
SDRAM
同步动态随机存储器,即数据的读取需要时钟来同步。时钟上升沿表示有效数据,即在1个时钟周期可表示1个有效数据。
DDR SDRAM
存储特性和SDRAM没有区别,区别在于DDR SDRAM的时钟上升沿和下降沿各表示一个有效数据,即在1个时钟周期可表示2个有效数据。在时钟频率相同的情况下,提高了一倍的速度。
DDRII和DDRIII,通讯方式没有区别,主要是提高了通讯同步时钟频率。
非易失性存储器
掉电不会丢失数据。相对地,读写速度较慢。典型代表:硬盘。
非易失性存储器种类很多,半导体类有ROM和FLASH,其它的有光盘、软盘和机械硬盘等。ROM是随机存储器。
MASK ROM
掩码式只读存储器,存储内容由半导体制造厂按用户提出的要求在芯片生产过程中直接写入,无法修改。
OTPROM
一次可编程只读存储器,存储内容由用户用专门的设备一次性写入,之后无法修改。
EPROM
可擦除可编程只读存储器,可重复擦写。使用紫外线照射芯片内部擦除数据,擦除和写入都要专门的设备。目前已淘汰,由EEPROM替代。
EEPROM
电可擦除可编程只读存储器,可重复擦写。擦除和写入都是直接使用电路控制,不需要专门的设备。可以按字节为单位修改,无需整个芯片擦除。
FLASH:NOR FLASH、NAND FLASH
闪存,可重复擦写。容量一般比EEPROM大。擦除时,一般以扇区(多个字节)为单位。如有的FLASH以4096字节为一个扇区,最小的擦除单元为1个扇区。典型代表:U盘。
特性 | NOR FLASH | NAND FLASH |
同容量存储器成本 | 较贵 | 较便宜 |
集成度 | 较低 | 较高 |
介质类型 | 随机存储 | 连续存储 |
地址线和数据线 | 独立分开 | 共用 |
擦除单元 | 以“扇区/块”擦除 | 以“扇区/块”擦除 |
读写单元 | 可以以“字节”为单位读写 | 必须以“块”为单位读写 |
读取速度 | 较高 | 较低 |
写入速度 | 较低 | 较高 |
坏块 | 较少 | 较多 |
是否支持 XIP | 支持 | 不支持 |
典型的NOR FLASH就是W25Qxx。
NOR FLASH的特点就是芯片内执行(XIP,Execute In Place),这样应用程序可以直接在flash内存内运行,不必再把代码读到系统 RAM 中。
NAND FLASH擦除单元比NOR FLASH更小,相应的擦除电路也就更小,所以可以达到高存储密度。
NOR FLASH内存小,尺寸大,容量大小为1MB~32MB;NAND FLASH内存大,尺寸小,较廉价,容量大小为16MB~512MB。
NOR FLASH读速度快,但写入和擦除速度都很慢;NAND FLASH读速度稍满,但写入速度和擦除速度很快。
NOR FLASH数据线和地址线分开,所以相对而言读写速度快一些;NAND FLASH数据线和地址线共用,对读写速度有一定影响。
NOR FLASH的接口和RAM一样;NAND FLASH是使用I/O口来串行存取数据。
NOR FLASH每个块的最大擦写次数是10万次;NAND FLASH每个块的最大擦写次数是100万次。所以NAND FLASH比NOR FLASH更耐用。
NOR FLASH常用于保存代码和关键数据;NAND FLASH用于保存数据。
固态硬盘
控制单元+FLASH芯片。
FLASH的存储特性:
1)在写入数据之前必须先擦除。
2)擦除时会把数据位全重置为1。
3)写入数据时只能把为1的数据位改为0。
4)擦除时必须按最小单位来擦除(一般为扇区)。
NOR FLASH:可以一个字节写入。
NAND FLASH:必须以块或扇区为单位进行读写。