内存(RAM或ROM)和FLASH存储的真正区别总结

转载自:
http://blog.csdn.net/liangkaiyang/article/details/5955653
1.什么是内存
     什么是内存呢?在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来讲,有了存储器,才有记忆功能,才能保证正常工做。存储器的种类不少,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存一般是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,而且不依赖于电来保存信息,可是由机械部件带动,速度与CPU相比就显得慢的多。内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具有数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。

2.内存工做原理:
内存是用来存放当前正在使用的(即执行中)的数据和程序,咱们日常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的'动态',指的是当咱们将数据写入DRAM后,通过一段时间,数据会丢失,所以须要一个额外设电路进行内存刷新操做。

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

ROM也有不少种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)二者区别是,PROM是一次性的,也就是软件灌入后,就没法修改了,这种是早期的产品,如今已经不可能使用了,而EPROM是经过紫外光的照射擦出原先的程序,是一种通用的存储器。另一种EEPROM是经过电子擦出,价格很高,写入时间很长,写入很慢。

从一有计算机开始,就有内存。内存发展到今天也经历了不少次的技术改进,从最先的DRAM一直到FPMDRAM、EDODRAM、SDRAM等,内存的速度一直在提升且容量也在不断的增长。

3.ROM和RAM指的都是半导体存储器
1)ROM是Read Only Memory的缩写
     是一种半导体内存,其特性是一旦储存资料就没法再将之改变或删除。一般用在不需常常变动资料的电子或电脑系统中,资料而且不会由于电源关闭而消失。
     只能读出事先所存数据的固态半导体存储器。英文简称ROM。ROM所存数据,通常是装入整机前事先写好的,整机工做过程当中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,于是经常使用于存储各类固定程序和数据。除少数品种的只读存储器(如字符发生器)能够通用以外,不一样用户所需只读存储器的内容不一样。
     为便于使 用和大批 量 生产 ,进一步发展了可编程只读存储器(PROM)、可擦可编程序只读存储器(EPROM)和电可擦可编程只读存储器(EEPROM)。EPROM需用紫外光长时间照射才能擦除,使用很不方便。20世纪 80 年代制出的 EEPROM ,克服了EPROM的不足,但集成度不高 ,价格较贵。因而又开发出一种新型的存储单元结构同 EPROM 类似的快闪存储器 。其集成度高、功耗低 、体积小 ,又能在线快速擦除 ,于是得到飞速发展,并有可能取代现行的硬盘和软盘而成为主要的大容量存储媒体。大部分只读存储器用金属-氧化物-半导体(MOS)场效应管制成。

2)RAM是Random Access Memory的缩写。
   又称为随机存取存储器;存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短期使用的程序。

简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特色是易挥发性,即掉电失忆。ROM 一般指固化存储器(一次写入,反复读取),它的特色与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。 
     
     ROM在系统中止供电的时候仍然能够保持数据,而RAM一般都是在掉电以后就丢失数据,典型的RAM就是计算机的内存。 

4.RAM分为两大类:
1)一种称为静态RAM(Static RAM/SRAM),SRAM速度很是快,是目前读写最快的存储设备了,可是它也很是昂贵,因此只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。

2)另外一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它仍是比任何的ROM都要快,但从价格上来讲DRAM相比SRAM要便宜不少,计算机内存就是DRAM的。 

DRAM分为不少种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。

DDR RAM(Date-Rate RAM)也称做DDR SDRAM,这种改进型的RAM和SDRAM是基本同样的,不一样之处在于它能够在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,并且它有着成本优点,事实上击败了Intel的另一种内存标准-Rambus DRAM。在不少高端的显卡上,也配备了高速DDR RAM来提升带宽,这能够大幅度提升3D加速卡的像素渲染能力。 

5.再不明白的请看例子:
举个例子,手机软件通常放在EEPROM中,咱们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是立刻写入经过记录(通话记录保存在EEPROM中),由于当时有很重要工做(通话)要作,若是写入,漫长的等待是让用户忍无可忍的。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不只具有电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时能够快速读取数据(NVRAM的优点),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)做为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用做存储Bootloader以及操做系统或者程序代码或者直接当硬盘使用(U盘)。 

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

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)和咱们一般用的'闪盘',能够在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。
------------------------------------------------------------黄金分界线----------------------------------------------------------------------------------------git

问题1:什么是DRAM、SRAM、SDRAM?
答:名词解释以下
DRAM--------动态随即存取器,须要不断的刷新,才能保存数据,并且是行列地址复用的,许多都有页模式
SRAM--------静态的随机存储器,加电状况下,不须要刷新,数据不会丢失,并且通常不是行列地址复用的
SDRAM-------同步的DRAM,即数据的读写须要时钟来同步

问题2:为何DRAM要刷新,SRAM则不须要?
答:这是由RAM的设计类型决定的,DRAM用了一个T和一个RC电路,致使电容会漏电和缓慢放电,因此须要常常刷新来保存数据

问题3:咱们一般所说的内存用的是什么呢?这三个产品跟咱们实际使用有什么关系?
答:内存(即随机存贮器RAM)可分为静态随机存储器SRAM,和动态随机存储器DRAM两种。咱们常常说的“
内存”是指DRAM。而SRAM你们却接触的不多。

问题4:为何使用DRAM比较多、而使用SRAM却不多?

答:1)由于制造相同容量的SRAM比DRAM的成本高的多,正由于如此,才使其发展受到了限制。所以目前SRAM基本上只用于CPU内部的一级缓存以及内置的二级缓存。仅有少许的网络服务器以及路由器上可以使用SRAM。

   2)存储单元结构不一样致使了容量的不一样:一个DRAM存储单元大约须要一个晶体管和一个电容(不
包括行读出放大器等),而一个SRAM存储单元大约须要六个晶体管。DRAM和SDRAM因为实现工艺问题,容量
较SRAM大,可是读写速度不如SRAM。

问题5:用得最多的DRAM有什么特色呢?它的工艺是什么状况?(一般所说的内存就是DRAM)

答:1)DRAM须要进行周期性的刷新操做,咱们不该将SRAM与只读存储器(ROM)和Flash Memory相混淆,由于SRAM是一种易失性存储器,它只有在电源保持连续供应的状况下才可以保持数据。“随机访问”是指存储器的内容能够以任何顺序访问,而无论前一次访问的是哪个位置。

2)DRAM和SDRAM因为实现工艺问题,容量较SRAM大。可是读写速度不如SRAM,可是如今,SDRAM的速度也已经很快了,时钟好像已经有150兆的了。那么就是读写周期小于10ns了。

3)SDRAM虽然工做频率高,可是实际吞吐率要打折扣。以PC133为例,它的时钟周期是7.5ns,当CAS latency=2 时,它须要12个周期完成8个突发读操做,10个周期完成8个突发写操做。不过,若是以交替方式访问Bank,SDRAM能够在每一个周期完成一个读写操做(固然除去刷新操做)。

4)其实如今的主流高速存储器是SSRAM(同步SRAM)和SDRAM(同步DRAM)。目前能够方便买到的SSRAM最大容量是8Mb/片,最大工做速度是166MHz;能够方便买到的SDRAM最大容量是128Mb/片,最大工做速度是133MHz。

问题6:用得比较少但速度很快,一般用于服务器cache的SRAM有什么特色呢?

答:1)SRAM是静态的,DRAM或SDRAM是动态的,静态的是用的双稳态触发器来保存信息,而动态的是用电子,要不时的刷新来保持。SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。

2)SRAM实际上是一种很是重要的存储器,它的用途普遍。SRAM的速度很是快,在快速读取和刷新时可以保持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。因此SRAM的电路结构很是复杂。

3)从晶体管的类型分,SRAM能够分为双极性与CMOS两种。从功能上分,SRAM能够分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的全部访问都在时钟的上升/降低沿启动。地址、数据输入和其它控制信号均于时钟信号相关。


最后要说明的一点:
       SRAM不该该与SDRAM相混淆,SDRAM表明的是同步DRAM(Synchronous DRAM),这与SRAM是彻底不一样的。SRAM也不该该与PSRAM相混淆,PSRAM是一种假装成SRAM的DRAM。 
------------------------------------------------------------黄金分界线----------------------------------------------------------------------------------------算法

关于Nor和Nand的介绍和区别,在网络上有不少,若是不是常常用的话,还真的没法说出个因此然来。我也是转帖网络上的,目的是常常能看看。

         NOR和NAND是如今市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,完全改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调下降每比特的成本,更高的性能,而且象磁盘同样能够经过接口轻松升级。可是通过了十多年以后,仍然有至关多的硬件工程师分不清NOR和NAND闪存。

相“flash存储器”常常能够与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,由于大多数状况下闪存只是用来存储少许的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。 

一.存储区别比较
  NOR的特色是芯片内执行(XIP, execute In Place),这样应用程序能够接在flash闪存内运行,没必要再把代码读到系统RAM中。

NOR的传输效率很高,在1~4MB的小容量时具备很高的成本效益,可是很低的写入和擦除速度大大影响了它的性能。

  NAND结构能提供极高的单元密度,能够达到高存储密度,而且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和须要特殊的系统接口。

二.性能比较

  flash闪存是非易失存储器,能够对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操做只能在空或已擦除的单元内进行,因此大多数状况下,在进行写入操做以前必须先执行擦除。NAND器件执行擦除操做是十分简单的,而NOR则要求在进行擦除前先要将目标块内全部的位都写为0。

    因为擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操做的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操做最多只须要4ms。

    执行擦除时块尺寸的不一样进一步拉大了NOR和NADN之间的性能差距,统计代表,对于给定的一套写入操做(尤为是更新小文件时更多的擦除操做必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡如下的各项因素。

  ● NOR的读速度比NAND稍快一些。

    ● NAND的写入速度比NOR快不少。

  ● NAND的4ms擦除速度远比NOR的5s快。

    ● 大多数写入操做须要先进行擦除操做。

    ● NAND的擦除单元更小,相应的擦除电路更少。

三.接口差异

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

NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。

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

四.容量和成本

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

NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。

五.可靠性和耐用性

采用flahs介质时一个须要重点考虑的问题是可靠性。对于须要扩展MTBF的系统来讲,Flash是很是合适的存储方案。能够从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。

六.寿命(耐用性)

在NAND闪存中每一个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具备10比1的块擦除周期优点,典型的NAND块尺寸要比NOR器件小8倍,每一个NAND存储器块在给定的时间内的删除次数要少一些。

七.位交换问题

  全部flash器件都受位交换现象的困扰。在某些状况下(不多见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。

  一位的变化可能不很明显,可是若是发生在一个关键文件上,这个小小的故障可能致使系统停机。若是只是报告有问题,多读几回就可能解决了。

  固然,若是这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。

这个问题对于用NAND存储多媒体信息时倒不是致命的。固然,若是用本地存储设备来存储操做系统、配置文件或其余敏感信息时,必须使用EDC/ECC系统以确保可靠性。  

八.坏块处理

NAND器件中的坏块是随机分布的。之前也曾有过消除坏块的努力,但发现成品率过低,代价过高,根本不划算。

NAND器件须要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,若是经过可靠的方法不能进行这项处理,将致使高故障率。 易于使用能够很是直接地使用基于NOR的闪存,能够像其余存储器那样链接,并能够在上面直接运行代码。

因为须要I/O接口,NAND要复杂得多。各类NAND器件的存取方法因厂家而异。

在使用NAND器件时,必须先写入驱动程序,才能继续执行其余操做。向NAND器件写入信息须要至关的技巧,由于设计师毫不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。

九.软件支持

当讨论软件支持的时候,应该区别基本的读/写/擦操做和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。

在NOR器件上运行代码不须要任何的软件支持,在NAND器件上进行一样操做时,一般须要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操做时都须要MTD。

使用NOR器件时所须要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。

驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗。编程