1、存储器类型:ROM 也有很多种,PROM 是可编程的 ROM,PROM 和 EPROM(可擦除可编程 ROM)两者区别是,PROM 是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而 EPROM 是通过紫外光的照射擦除原先的程序,是一种通用的存储器。另外一种 EEPROM 是通过电子擦出,价格很高,写入时间很长,写入很慢。 举个例子,手机软件一般放在 EEPROM 中,我们打电话,有些最后拨打的号码,暂时是存在 SRAM 中的,不是马上写入通话记录(通话记录保存在 EEPROM 中) ,因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的
2、。 微机的发展初期,BIOS 都存放在 ROM(Read Only Memory,只读存储器)中。ROM 内部的资料是在 ROM 的制造工序中,在工厂里用特殊的方法被烧录进去的,其中的内容只能读不能改,一旦烧录进去,用户只能验证写入的资料是否正确,不能再作任何修改。如果发现资料有任何错误,则只有舍弃不用,重新订做一份。ROM 是在生产线上生产的,由于成本高,一般只用在大批量应用的场合。ROM 指的是“只读存储器” ,即 Read-Only Memory。这是一种线路最简单半导体电路,通过掩模工艺, 一次性制造,其中的代码与数据将永久保存(除非坏掉) ,不能进行修改。这玩意一般在大批量生产时才会
3、被用的,优点是成本低、非常低,但是其风险比较大,在产品设计时,如果调试不彻底,很容易造成几千片的费片,行内话叫“掩砸了”! 由于 ROM 制造和升级的不便,后来人们发明了 PROM( Programmable ROM,可编程ROM) 。最初从工厂中制作完成的 PROM 内部并没有资料,用户可以用专用的编程器将自己的资料写入,但是这种机会只有一次,一旦写入后也无法修改,若是出了错误,已写入的芯片只能报废。PROM 的特性和 ROM 相同,但是其成本比 ROM 高,而且写入资料的速度比 ROM 的量产速度要慢,一般只适用于少量需求的场合或是 ROM 量产前的验证。PROM 指的是“可编程只读存储器
4、”既 Programmable Red-Only Memory。这样的产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM) 。PROM 在出厂时,存储的内容全为 1,用户可以根据需要将其中的某些单元写入数据 0(部分的 PROM 在出厂时数据全为 0,则用户可以将其中的部分单元写入1), 以实现对其“编程”的目的。PROM 的典型产品是“双极性熔丝结构” ,如果我们想改写某些单元,则可以给这些单元通以足够大的电流,并维持一定的时间,原先的熔丝即可熔断,这样就达到了改写某些位的效果。另外一类经典的 PROM 为使用“肖特基二
5、极管”的 PROM,出厂时,其中的二极管处于反向截止状态,还是用大电流的方法将反相电压加在“肖特基二极管” ,造成其永久性击穿即可。 EPROM 指的是 “可擦写可编程只读存储器” ,即 Erasable Programmable Read-Only Memory。 它的特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。这一类芯片特别容易识别,其封装中包含有“石英玻璃窗” ,一个编程后的 EPROM 芯片的“石英玻璃窗”一般使用黑色不干胶纸盖住, 以防止遭到阳光直射。 EPROM(Erasable Programmable ROM,可擦除可编程 ROM)芯
6、片可重复擦除和写入,解决了 PROM 芯片只能写入一次的弊端。EPROM 芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到 EPROM 擦除器。EPROM 内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=1224V,随不同的芯片型号而定) 。EPROM 的型号是以 27 开头的,如27C020(8*256K)是一片 2M Bits 容量的 EPROM 芯片。EPROM 芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的
7、紫外线照射而使资料受损。鉴于 EPROM 操作的不便(过程复杂,时间较长) ,后来出的主板上的 BIOS ROM 芯片大部分都采用 EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程 ROM) 。它的最大优点是可直接用电信号擦除,也可用电信号写入。EEPROM 的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以 Byte 为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了 EPROM Eraser 和编程器的束缚。EEPROM 在写入数据时,仍要利用一定的编程电压,此时,只需用厂商提供的专用刷新程序就可以轻而易举地改写
8、内容,所以,它属于双电压芯片。借助于 EEPROM 芯片的双电压特性,可以使 BIOS 具有良好的防毒功能,在升级时,把跳线开关打至“ON”的位置,即给芯片加上相应的编程电压,就可以方便地升级;平时使用时,则把跳线开关打至“OFF”的位置,防止 CIH 类的病毒对 BIOS 芯片的非法修改。所以,至今仍有不少主板采用 EEPROM 作为 BIOS 芯片并作为自己主板的一大特色。EEPROM 不能取代 RAM 的原因是其工艺复杂, 耗费的门电路过多,且重编程时间比较长,同时其有效重编程次数也比较低。 Flash memory 指的是“闪存 ”,也是一种非易失性的内存,属于 EEPROM 的改进产
9、品。FLASH ROM 则属于真正的单电压芯片。Flash ROM 是利用浮置栅上的电容存储电荷来保存信息,因为浮置栅不会漏电,所以断电后信息仍然可以保存。也由于其机构简单所以集成度可以做的很高,容量可以很大。FLASH 在使用上很类似 EPROM,因此,有些书籍上便把 FLASH ROM 作为 EPROM 的一种。事实上,二者还是有差别的。它的特点是必须按块(Block)擦除(每个区块的大小不定,包含若干个字节,不同厂家的产品有不同的规格), 而 EEPROM 则可以一次只擦除一个字节(Byte) 。只有在写入时,才以 Byte 为最小单位写入。FLASH ROM 芯片的读和写操作都是在单电
10、压下进行,不需跳线,只利用专用程序即可方便地修改其内容;FLASH ROM 的存储容量普遍大于 EPROM,约为 512K 到至 8M KBit,由于大批量生产,价格也比较合适,很适合用来存放程序码,近年来已逐渐取代了 EPROM,广泛用于主板的 BIOS ROM。FLASH 的另外一大应用领域是用来作为硬盘的替代品,具有抗震、速度快、无噪声、耗电低的优点,但是将其用来取代 RAM 就显得不合适,因为 RAM 需要能够按字节改写,而 Flash ROM 做不到。近年来,NAND 的使用越来越多。据 iSuppli 公司估计,2005 年第一季度,NAND 闪存收益首次超过 NOR 闪存。消费电
11、子对低成本固态存储器贪婪的需求将继续推动整个产业对NAND 的需求。据估计,2007 年,NAND 将占到闪存的 61%。目前 NAND 的需求主要在移动闪存卡,USB 驱动器和 MP3 播放器。而 NOR 闪存主要集中在无线和嵌入式产品两大广阔市场,其中高密度和高平均售价(ASP)NOR 闪存集中于移动电话行业的推动,其主要供应商有 Intel, Spansion 和 ST。近年来,NAND 一直鼓吹自己是移动电话中 NOR 的替代者,但是 iSuppli 分析师认为,大批 NOR 供应商推出移动电话领域,并没有足够的 NAND来填补。因为 NAND 供应商目前生产针对移动存储市场的高密度器
12、件,对移动电话使用较低密度 NAND(即 128Mb 到 1Gb)的供给正在萎缩,一旦可能,低密度 NAND 器件会抬高价格。NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。 NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取 512 个字节,采用这种技术的 Flash 比较廉价。用户不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash 的开发板除了使用 NAND Flah 以外,还作上了一块小
13、的 NOR Flash 来运行启动代码。 一般小容量的用 NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用 NAND FLASH,最常见的 NAND FLASH 应用是嵌入式系统采用的 DOC(Disk On Chip)和我们通常用的“ 闪盘“,可以在线擦除。目前市面上的 FLASH 主要来自Intel,AMD,Fujitsu 和 Toshiba,而生产 NAND Flash 的主要厂家有 Samsung 和 Toshiba。FLASH 存储器结合了 ROM 和 RAM 的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据,同时可以快速读取
14、数据,BIOS、U 盘和 MP3 里用的就是这种存储器。在过去的 20 年里,嵌入式系统一直使用 ROM(EPROM)作为它们的存储设备,然而近年来 Flash 全面代替了 ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader 以及操作系统或者程序代码或者直接当硬盘使用(U 盘) 。 NOR 和 NAND 是现在市场上两种主要的非易失闪存技术。Intel 于 1988 年首先开发出NOR flash 技术,彻底改变了原先由 EPROM 和 EEPROM 一统天下的局面。特点是芯片内执行(XIP,eXecute In Place),这样运用程序可以直接在 flash 闪存内运行
15、,不必把代码读入到系统 RAM 中。NOR 的传输效率高,但是写入和擦除速度很慢。紧接着,1989 年,东芝公司发表了 NAND flash 结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。NAND 结构提供高的单元密度,写入和擦除的速度很快。难处在于flash 的管理和需要特殊的系统接口。Flash 可以对称为块的存储器单元块进行擦写和再编程。任何 flash 器件的写入操作只能在空或者已擦除的单元内进行。故写入操作前必须先执行擦除。NAND 器件擦除简单,而 NOR 则要求进行擦除前先将目标快内所有的位写为 0。但是经过了十多年之后,仍然有相当多的硬件工程师分不
16、清 NOR 和 NAND 闪存。 “flash 存储器“ 经常可以与“NOR 存储器“互换使用。许多业内人士也搞不清楚 NAND 闪存技术相对于 NOR 技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时 NOR 闪存更适合一些。而 NAND 则是高数据存储密度的理想解决方案。 两者的比较如下:对比如下:NOR 内的代码可以直接执行,读取速度快,常存储操作系统等;NAND 内的代码则需要额外的 RAM;NAND 的存储密度高,并且写入和擦除的速度也很快(NAND 的 4ms 擦除速度远比NOR 的 5s 快。 ) ; NAND 的擦除单元更小,相应的擦除电路更少。 NAND 以大
17、容量为主流(8128MB ) ,NOR 以小容量为主流(116MB) 。具体介绍如下:NOR 是现在市场上主要的非易失闪存技术。NOR 一般只用来存储少量的代码;NOR 主要应用在代码存储介质中。NOR 的特点是应用简单、无需专门的接口电路、传输效率高,它是属于芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在(NOR 型)flash 闪存内运行,不必再把代码读到系统 RAM 中。在 14MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NOR flash 带有 SRAM 接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字
18、节。NOR flash 占据了容量为116MB 闪存市场的大部分。 NAND 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用 NAND 的困难在于 flash 的管理和需要特殊的系统接口。 1、性能比较: flash 闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何 flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND 器件执行擦除操作是十分简单的,而 NOR 则要求在进行擦除前先要将目标块内所有的位都写为 1。 由于擦除 NOR 器件时是以 64128KB 的块进行的,执行一个写
19、入/擦除操作的时间为 5s,与此相反,擦除 NAND 器件是以 832KB 的块进行的,执行相同的操作最多只需要4ms。 执行擦除时块尺寸的不同进一步拉大了 NOR 和 NADN 之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时 ),更多的擦除操作必须在基于 NOR 的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素: NOR 的读速度比 NAND 稍快一些。 NAND 的写入速度比 NOR 快很多。 NAND 的 4ms 擦除速度远比 NOR 的 5s 快。 大多数写入操作需要先进行擦除操作。 NAND 的擦除单元更小,相应的擦除电路更少。 (注:NO
20、R FLASH SECTOR 擦除时间视品牌、大小不同而不同,比如,4M FLASH,有的SECTOR 擦除时间为 60ms,而有的需要最大 6s。) 2、接口差别: NOR flash 带有 SRAM 接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。 NAND 器件使用复杂的 I/O 口来串行地存取数据,各个产品或厂商的方法可能各不相同。8 个引脚用来传送控制、地址和数据信息。 NAND 读和写操作采用 512 字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND 的存储器就可以取代硬盘或其他块设备。 3、容量和成本: NAND flash 的单元尺寸几乎是 NO
21、R 器件的一半,由于生产过程更为简单,NAND 结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。 NOR flash 占据了容量为 1 16MB 闪存市场的大部分,而 NAND flash 只是用在 8128MB的产品当中,这也说明 NOR 主要应用在代码存储介质中,NAND 适合于数据存储,NAND 在 CompactFlash、Secure Digital、PC Cards 和 MMC 存储卡市场上所占份额最大。 4、可靠性和耐用性: 采用 flahs 介质时一个需要重点考虑的问题是可靠性。对于需要扩展 MTBF 的系统来说,Flash 是非常合适的存储方案。可以从寿命 (
22、耐用性)、位交换和坏块处理三个方面来比较 NOR 和 NAND 的可靠性。 A) 寿命 (耐用性 ) 在 NAND 闪存中每个块的最大擦写次数是一百万次,而 NOR 的擦写次数是十万次。NAND 存储器除了具有 10 比 1 的块擦除周期优势,典型的 NAND 块尺寸要比 NOR 器件小 8 倍,每个 NAND 存储器块在给定的时间内的删除次数要少一些。B) 位交换 所有 flash 器件都受位交换现象的困扰。在某些情况下(很少见, NAND 发生的次数要比NOR 多),一个比特(bit)位会发生反转或被报告反转了。 一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致
23、系统停机。如果只是报告有问题,多读几次就可能解决了。 当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于 NAND 闪存,NAND 的供应商建议使用 NAND 闪存的时候,同时使用EDC/ECC 算法。 这个问题对于用 NAND 存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用 EDC/ECC 系统以确保可靠性。C) 坏块处理 NAND 器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。 NAND 器件需要对介质进行初始化扫描以发现坏块,并将坏块
24、标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。5、易于使用: 可以非常直接地使用基于 NOR 的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。 由于需要 I/O 接口,NAND 要复杂得多。各种 NAND 器件的存取方法因厂家而异。 在使用 NAND 器件时,必须先写入驱动程序,才能继续执行其他操作。向 NAND 器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在 NAND 器件上自始至终都必须进行虚拟映射。 6、软件支持: 当讨论软件支持的时候,应该区别基本的读/写/ 擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性
25、能优化。 在 NOR 器件上运行代码不需要任何的软件支持,在 NAND 器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND 和 NOR 器件在进行写入和擦除操作时都需要 MTD。 使用 NOR 器件时所需要的 MTD 要相对少一些,许多厂商都提供用于 NOR 器件的更高级软件,这其中包括 M-System 的 TrueFFS 驱动,该驱动被 Wind River System、 Microsoft、QNX Software System、Symbian 和 Intel 等厂商所采用。 驱动还用于对 DiskOnChip 产品进行仿真和 NAND 闪存的管理,包括
26、纠错、坏块处理和损耗平衡。 (纠正一点:NOR 擦除时,是全部写 1,不是写 0,而且,NOR FLASH SECTOR擦除时间视品牌、大小不同而不同,比如,4M FLASH,有的 SECTOR 擦除时间为60ms,而有的需要最大 6S。)NOR FLASH 的主要供应商是 INTEL ,MICRO 等厂商,曾经是 FLASH 的主流产品,但现在被 NAND FLASH 挤的比较难受。它的优点是可以直接从 FLASH 中运行程序,但是工艺复杂,价格比较贵。 NAND FLASH 的主要供应商是 SAMSUNG 和东芝,在 U 盘、各种存储卡、MP3 播放器里面的都是这种 FLASH,由于工艺上
27、的不同,它比 NOR FLASH 拥有更大存储容量,而且便宜。但也有缺点,就是无法寻址直接运行程序,只能存储数据。 另外 NAND FLASH 非常容易出现坏区,所以需要有校验的算法。 在掌上电脑里要使用 NAND FLASH 存储数据和程序,但是必须有 NOR FLASH 来启动。除了 SAMSUNG 处理器,其他用在掌上电脑的主流处理器还不支持直接由 NAND FLASH 启动程序。因此,必须先用一片小的 NOR FLASH 启动机器,在把 OS 等软件从 NAND FLASH 载入 SDRAM 中运行才行,挺麻烦的。 NAND flash 和 NOR flash 总结:NAND Flas
28、h 和 NOR Flash 是目前市场上两种主要的非易失闪存芯片。NOR 一般只用来存储少量的代码,特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在 flash 闪存内运行,不必再把代码读到系统 RAM 中。NOR 的传输效率很高,在 14MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NAND 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用 NAND 的困难在于 flash 的管理和需要特殊的系统接口。与 NOR Flash 相比,NAND Flash 在容量、功耗、使用寿命等方面的优势使其
29、成为高数据存储密度的理想解决方案。NOR Flash 的传输效率很高,但写入和擦除速度较低; 而 NAND Flash 以容量大、写速度快、芯片面积小、单元密度高、擦除速度快、成本低等特点,在非易失性类存储设备中显现出强劲的市场竞争力。NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取 512个字节,采用这种技术的 Flash 比较廉价。用户不能直接运行 NAND Flash
30、 上的代码,因此好多使用 NAND Flash 的开发板除了使用 NAND Flah 以外,还作上了一块小的 NOR Flash来运行启动代码。 一般小容量的用 NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用 NAND FLASH,接口差别:Nor Flash 采用 SRAM 的接口,因此方便寻址,可以将程序放在其中直接运行,而 Nand Flash 只有 8 个 I/0 口,通过 CLE(Command latch enable)和 ALE(Address latch enable)来开关 I/O 线上是数据、命令、地址,因此需要严格的满足 Nand Fla
31、sh 器件提供的时序。 性能差别:对于 Flash 的写入速度,其实是写入和擦除的综合速度, Nand Flash 擦除很简单,而 Nor Flash 需要将所有位全部写 0(这里要说明一下,Flash 器件写入只能把 1 写为0,而不能把 0 写为 1,也就说,其写入的方式是按照逻辑与来进行的,譬如原来地址上的数据是 0x01,写入 0x98,地址存在的数据就是 0x01而 NAND Flash 则需 IO 接口,因此使用时需要写入驱动程序。2、NAND 器件执行擦除操作是十分简单的,而 NOR 则要求在进行擦除前先要将目标块内所有的位都写为 1;NOR 的读速度比 NAND 稍快一些;NA
32、ND 的写入速度比 NOR 快很多;NAND 的 4ms 擦除速度远比 NOR 的 5s 快;大多数写入操作需要先进行擦除操作;NAND的擦除单元更小,相应的擦除电路更少;NOR flash 带有 SRAM 接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节;NAND 器件使用复杂的 I/O 口来串行地存取数据,各个产品或厂商的方法可能各不相同。8 个引脚用来传送控制、地址和数据信息;NAND 读和写操作采用 512 字节的块,这一点有点像硬盘管理此类操作,很自然地,基于 NAND 的存储器就可以取代硬盘或其他块设备;NAND 在容量和成本方面占据优势。NOR 主要运用在代码存储
33、介质中,NAND 适用于数据存储,NAND 在CompactFlash,Secure Digital, PC Cards 和 MMC 存储卡市场上份额最大。NAND 的擦除次数比 NOR 多;NOR 和 NAND 都受位交换现象的困扰。使用 NAND 时,一般需要采用错误探测/错误更正(EDC/ECC)算法。对于使用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用 EDC/ECC 系统以确保可靠性。NOR Flash 容易使用,可以像其他存储器那样连接,并可以在上面直接运行代码。NAND 在需要 I/O 接口,使用时,必须先写入驱动程序,才能继续执行其他操作,向 NAND 写入信息不能向坏块写入,这意味NAND 器件上需要进行虚拟映射。