今天给大家总结一下我们常见的 存储器 的一些区别;这些常见的存储器在平时的学习和工作当中是经常都会接触的,如果我们对它们有一个非常熟悉的了解,对我们理解一些东西还是非常有帮助的。
一、从存储器的层次展开讲:
如下图图1所示,是在看深入理解 计算机 操作系统书里面讲解到的存储器层次结构图:
图1
当然这里涉及到的存储器类型没有那么多,我们今天主要来分享: RAM ROM flashNO Rf lashNandflashsramsdramddr等常见存储器,下面我们就来开始正式来分享了:
1、ram和rom:
ram(randomaccessmemory):它是一种随机存储器。存储单元的内容可以按需要来随意取出或者存入,而且存取的速度与存储单元的位置无关;同时它也有缺点,就是在断电的时候,它里面保存的内容全部会被丢失;它主要的作用就是存储代码和数据供 CPU 在需要的时候调用;按照存储信息的不同,我们又可以把它分为两种类型的存储器(下面会专门介绍这两种存储器,这里先不介绍):
静态随机存储器(sta TI cram,简称sram)
动态随机存储器(dyna mi cram,简称 dram )
rom(read-onlymemory):它是一种只读存储器,也就是说它只能读出事先规定的存储数据,一旦存储进去后,就不能对里面的数据进行修改了,而且它不会因为断电了而丢失数据。
2、sram和sdram:
sram:它是一种静态随机存储器(sta TI cram,简称sram),一般的话,这种存储器不需要刷新 电路 就能保存它内部存储的数据。它的特点是:读写速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲,三级缓冲(在我们上面的存储器的层次结构可以看到。)。
dram:它是一种动态随机存储器(dynamicram,简称dram),但是它与静态随机存储器就不同了,动态随机存取存储器,需要不断的刷新,才能保存数据。它的特点是:保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的(内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的“动态”,指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作)。
3、flash:flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(N VR AM的优势),U盘和MP3里用的就是这种存储器。在以往,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,它用作存储Bootloader以及操作系统或者程序代码,或者直接当硬盘使用(U盘)。而flash又被分为两种类型:
NORFlash
NADNFlash
这两种flash应该是我们平时见的最多的存储器了,下面我们来着重来看一下他们的区别:
(1)性能比较:
任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
由此可见:
NOR的读速度比NAND稍快一些。
但是NAND的写入速度比NOR快很多。
NAND的4ms擦除速度远比NOR的5s快。
大多数写入操作需要先进行擦除操作。
NAND的擦除单元更小,相应的擦除电路更少。
(2) 接口 差别:
NORflash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。
(3)成本上:
NORFlash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NORFLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。
NANDFlash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NANDFlash上的代码,因此好多使用NANDFlash的开发板除了使用NANDFlah以外,还加上了一块小的NORFlash来运行启动代码。
一般小容量的用NORFlash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NANDFLASH,最常见的NANDFLASH应用是嵌入式系统采用的DOC(DiskOnChip)和我们通常用的“闪盘”,可以在线擦除。
(4)易于使用:
可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。
由于nandflash需要I/O接口,所以要复杂得多。各种NAND器件的存取方法因厂家而异。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
(5)寻址:
NAND每次读取数据时都是指定块地址、页地址、列地址,列地址就是读的页内起始地址,每次都是先将数据读入页缓冲区内,再由I/O输入地址在缓冲区内寻址,其实这里列地址,只是指定起始地址的作用。NAND是以页为基本单位操作的。写入数据也是首先在页面缓冲区内缓冲,数据首先写入这里,再写命令后,再统一写入页内。因此NAND页缓冲区的作用就是,保证芯片的按页的读、写操作,是I/O操作与芯片操作的接口、桥梁,因为数据是从I/O输入的,又是每次一个字节,因此需要缓冲。即使每次改写一个字节,都要重写整个页,因为它只支持页写,而且如果页内有未擦除的部分,则无法编程,在写入前必须保证页是空的。
NOR的读、写是字节为基本单位操作的,但擦除是以扇区操作的。综上所述在芯片操作上,NAND要比NOR快很多,因为NAND是页操作的而NOR是字节操作的。
(6)应用:
NAND正是基于这种构造:块、页,无法字节寻址,页读写本身就靠的是内部复杂的串、并行转换,因此也没有很多地址引脚,所以其地址、数据线共用,所以容量可以做的很大。NOR是和SRAM一样的可随机存储的,也不需要驱动,因此,其地址就有限,所以容量普遍较小,其实是受限于地址线。基于以上几点,
在工业领域,NOR用的较多,特别是程序存储,少量数据存储等。
在消费领域,大量数据存储,NAND较多。
责任编辑人:CC