zoukankan      html  css  js  c++  java
  • FLASH ROM与EEPROM的区别

    EEPROM,虽然也叫“非易失性数据存储器”,但它不能直接参与ALU运算,只是用于掉电不丢失的数据存储。
    EEPROM和片内RAM 类似,也属于数据存储器,它的特点是数据掉电可保持,而程序存储器一般指ROM,用于存储用户程序代码。

    EEPROM和FLASH基本都是非易失性存储器。EEPROM应属于数据存储器,但是它制造工艺和FLASH更近似。

    FLASH是用于存储程序代码的,有些场合也可能用它来保存数据,当然前提是该单片机的FLASH工艺是可以自写的(运行中可擦写),但要注意FLASH的擦写次数通常小于一万次,而且通常FLASH只能按块擦除。EEPROM不能用来存程序,通常单片机的指令寻址不能到这个区域。EEPROM的擦写次数应有百万次,而且可以按字节擦写。
    EEPROM在一个PAGE内是可以任意写的,FLSAH则必须先擦除成BLANK,然后再写入,而一般没有单字节擦除的功能,至少一个扇区擦除。

    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和Mxic,而生产NAND Flash的主要厂家有Samsung和Toshiba及Hynix。

    FLASH ROM就是 ROM(只读存储器)和RAM(可读写的存储器)相对应。全称是read-only memory 最初的ROM熔丝类型的,只能烧写一次,之后就不能修改了。

    后来出现了可以用紫外线擦除,然后再次烧写的ROM,严格来讲已经不是只读的了。这种ROM叫做 EPROM(erasable programmable read-only memory)表示可擦除的ROM

    但是紫外线擦除很麻烦,后来又发明了不用紫外线,只用电就能擦除的ROM。这种ROM就叫做 EEPROM ,全称就是 electrically erasable programmable read-only memory,电可擦除并重新编程的只读存储器。EEPROM也写作E2PROM,简称E方

    实际使用中,不同种类的ROM因为性能,价格等的不同,分别用于不同的场合。

    比如经常说的U盘,用的一般是NAND FLASH,而单片机存放程序的ROM一般是NOR FLASH,因为后者具有可以不经RAM直接运行程序的特点。

    所有这些ROM都属于非易失存储器,即在掉电之后,数据也不会消失。(类似硬盘)

    在运行期间,程序ROM的内容一般不能被程序修改,所以单片机经常会配置EEPROM以便运行的数据可以得到存储,修改,并且掉电后仍然能够保持。

    本质上讲,存储程序的ROM其实很多也是EEPROM(有些是EPROM,还有用熔丝ROM的),但是因为一般都不具备在运行时自我修改的能力,所以对应用来说,认为是只读的。而在运行时可修改的那些则特意叫做EEPROM。

    现在随着技术发展,一次性的ROM越来越少,逐渐向EEPROM转变,但是习惯上,仍然把他们叫做ROM而不特意说明是EEPROM。

    Atmel公司已经开发可以动态修改属性的ROM,本身是EEPROM,但是可以通过设置将其中一部分设置为真正只读的ROM。这种设置并不能带来性能上的提高,反而还会增加器件的复杂度,但是这样可以有效地防止本不应该被修改的内容改变,还是有很重要的作用的。

  • 相关阅读:
    AJAX异步传输——以php文件传输为例
    js控制json生成菜单——自制菜单(一)
    vs2010中关于HTML控件与服务器控件分别和js函数混合使用的问题
    SQL数据库连接到服务器出错——无法连接到XXX
    PHP错误:Namespace declaration statement has to be the very first statement in the script
    【LeetCode】19. Remove Nth Node From End of List
    【LeetCode】14. Longest Common Prefix
    【LeetCode】38. Count and Say
    【LeetCode】242. Valid Anagram
    【LeetCode】387. First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/riskyer/p/3324903.html
Copyright © 2011-2022 走看看