【存储器专题】ROM和RAM

存储器区分

内存是计算系统最重要的元素,计算机或嵌入式设备就无法执行任务。由于存储器的种类繁多,所以本文将从存储器与 CPU 的接口、程序运行的角度,系统而详细介绍各种存储器的分类与用途,以便于区分各种存储器。
计算机内存有两种基本类型 -主内存(RAM 和 ROM)和辅助内存(硬盘、驱动器、U盘等)。随机存取存储器 (RAM)是主要的易失性存储器,只读存储器 (ROM)是主要的非易失性存储器。下图是按照存储器掉电是否数据是否丢失区分。
内存分类

ROM区分

ROM:只读存储器(Read Only Memory)的简称,非易失性。它是一种只能读出事先所存的数据的固态半导体存储器。部分拥有 CPU 的总线接口,可以执行代码(需要配合RAM,因为程序的执行过程肯定有写操作的)。这是很早期的定义了,现今 ROM 的概念已经非常广了,通常掉电后数据不会消失的半导体存储器都泛称为 ROM ,现在ROM也不仅仅是只读的了,只是时代在发展,ROM还叫ROM。比如手机参数里所说的 ROM 通常就是指 NAND FLASH 类存储器,但这些 ROM 基本上都是不支持执行代码的。

实际运用的时候会把内置储存和Flash分成两个部分,一块可以被写入,一块不能被写入。可以被写入的地方用来储存通讯录、照片、音乐、APP之类的,不可被写入的地方用来存放操作系统的软件。手机的ROM,从最早的NOR Flash发展到NAND Flash,现在的智能手机几乎全都是eMMC了(和TF卡是一个东西)。单片机的Flash还是维持在小容量的NOR Flash。

为了便于使用和大批量生产,进一步发展出了可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)。EPROM需要用紫外线长时间照射才能擦除,使用很不方便。1980s又出现了电可擦除可编程只读存储器(EEPROM),它克服了EPROM的不足,但是集成度不高、价格较贵。于是又发展出了一种新型的存储单元结构同EPROM类似的快闪存储器(FLASH MEMORY)。FLASH集成度高、功耗低、体积小,又能在线快速擦除,因而获得了快速发展。

因此,ROM进一步分为4种类型:PROM、EPROM、EEPROM、Flash。

  1. PROM(Programmable ROM):可编程ROM,只能被编程一次。
  2. EPROM(Erasable Programmable ROM,EPROM):可擦写可编程ROM,擦写可达1000次。
  3. EEPROM(Electrically Erasable Programmable ROM,电子可擦除EPROM):指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。
  4. 闪存(flash memmory):基于EEPROM,也就是我们常说的Flash。它已经成为一种重要的存储技术。固态硬盘(SSD)、U盘等就是一种基于闪存的存储器。它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。它于EEPROM的最大区别是,FLASH按扇区(block)操作,而EEPROM按照字节操作。FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因此适合用于做程序存储器。

由于今天已经存在多种EEPROM的变种,变成了一类存储器的统称:

  1. 狭义的EEPROM:这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。
  2. 广义的EEPROM:因为Flash也是电擦除的ROM,Flash属于广义的EEPROM,但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫它Flash。

Flash做的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。上M的rom一般都是Flash。Flash分为Nor Flash和Nand flash。

  • 速度上:读取方式Nor Flash数据线和地址线分开,可以实现RAM一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。Nand Flash同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(Nand Flash按块来擦除,按页来读,Nor Flash没有页)
  • 速度上:由于Nand Flash引脚上复用,因此读取速度比Nor Flash慢一点,但是擦除和写入速度比Nor Flash快很多,NOR Flash大约需要5s,而NAND FLASH通常不超过4ms。
  • 容量上:Nand Flash内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的Flash都是Nand型的。小容量的2~12M的Flash多是nor型的。
  • 寿命上:Nand Flash的擦除次数是Nor Flash的数倍。而且Nand flash可以标记坏块,从而使软件跳过坏块。Nor flash 一旦损坏便无法再用。因为Nor flash可以进行字节寻址,所以程序可以在Nor flash中运行。嵌入式系统多用一个小容量的Nor Flash存储引导代码,用一个大容量的Nand Flash存放文件系统和内核。

Flash区分

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

NOR Flash:目前市面上一种主流的非易失性闪存技术之一,支持掉电保存数据,其读取速度快,多用来存储操作系统等重要信息。相对于 NAND Flash,NOR Flash有类似于RAM的接口,可以通过 CPU 总线随机访问,所以可以作为传统的 ROM 直接运行程序。NOR Flash的成本较高,在容量小的时候收益才较大。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR Flash里面的代码,这样可以减少SRAM的容量从而节约了成本。

NADN Falsh:是目前市面上另一种主流的非易失性闪存技术之一,支持掉电保存数据,具有容量较大,改写速度快的优点。但不能通过 CPU 总线随机访问,依赖 NAND Flash控制器访问的设备,是不能直接执行程序。通常作为广义上的 ROM 来使用,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还需要一块小NOR Flash来运行启动代码。

  1. EEPROM
  • 2
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值