今天给大家总结一下我们常见的存储器的一些区别;这些常见的存储器在平时的学习和工作当中是经常都会接触的,如果我们对它们有一个非常熟悉的了解,对我们理解一些东西还是非常有帮助的。
一、从存储器的层次展开讲:
如下图图1所示,是在看深入理解计算机 *** 作系统书里面讲解到的存储器层次结构图:
图1
当然这里涉及到的存储器类型没有那么多,我们今天主要来分享:RAM ROM flash NORflash Nandflash sram sdram ddr等常见存储器,下面我们就来开始正式来分享了:
1、ram和rom:
ram(random access memory):它是一种随机存储器。存储单元的内容可以按需要来随意取出或者存入,而且存取的速度与存储单元的位置无关;同时它也有缺点,就是在断电的时候,它里面保存的内容全部会被丢失;它主要的作用就是存储代码和数据供CPU 在需要的时候调用;按照存储信息的不同,我们又可以把它分为两种类型的存储器(下面会专门介绍这两种存储器,这里先不介绍):
静态随机存储器(staTIc ram,简称sram)
动态随机存储器(dynamic ram,简称dram)
rom(read-only memory):它是一种只读存储器,也就是说它只能读出事先规定的存储数据,一旦存储进去后,就不能对里面的数据进行修改了,而且它不会因为断电了而丢失数据。
2、sram和sdram:
sram:它是一种静态随机存储器(staTIc ram,简称sram),一般的话,这种存储器不需要刷新电路就能保存它内部存储的数据。它的特点是:读写速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲,三级缓冲(在我们上面的存储器的层次结构可以看到。)。
dram:它是一种动态随机存储器(dynamic ram,简称dram),但是它与静态随机存储器就不同了,动态随机存取存储器,需要不断的刷新,才能保存数据。它的特点是:保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的(内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的“动态”,指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新 *** 作)。
3、flash:flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在以往,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,它用作存储Bootloader以及 *** 作系统或者程序代码,或者直接当硬盘使用(U盘)。而flash又被分为两种类型:
NOR Flash
NADN Flash
这两种flash应该是我们平时见的最多的存储器了,下面我们来着重来看一下他们的区别:
(1)性能比较:
任何flash器件的写入 *** 作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入 *** 作之前必须先执行擦除。NAND器件执行擦除 *** 作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除 *** 作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的 *** 作最多只需要4ms。
由此可见:
NOR的读速度比NAND稍快一些。
但是NAND的写入速度比NOR快很多。
NAND的4ms擦除速度远比NOR的5s快。
大多数写入 *** 作需要先进行擦除 *** 作。
NAND的擦除单元更小,相应的擦除电路更少。
(2)接口差别:
NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
NAND读和写 *** 作采用512字节的块,这一点有点像硬盘管理此类 *** 作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。
(3)成本上:
NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。
NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还加上了一块小的NOR Flash来运行启动代码。
一般小容量的用NOR Flash,因为其读取速度快,多用来存储 *** 作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。
(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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)