打印
[技术问答]

ROM和RAM

[复制链接]
1986|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hearstnorman323|  楼主 | 2024-2-22 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
存储器区分

内存是计算系统最重要的元素,计算机或嵌入式设备就无法执行任务。由于存储器的种类繁多,所以本文将从存储器与 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。

  • PROM(Programmable ROM):可编程ROM,只能被编程一次。
  • EPROM(Erasable Programmable ROM,EPROM):可擦写可编程ROM,擦写可达1000次。
  • EEPROM(Electrically Erasable Programmable ROM,电子可擦除EPROM):指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。
  • 闪存(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的变种,变成了一类存储器的统称:

  • 狭义的EEPROM:这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。
  • 广义的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来运行启动代码。


使用特权

评论回复
沙发
根特皇宫w| | 2024-2-24 16:21 | 只看该作者
对于嵌入式系统,选择适当类型的Flash存储器通常涉及对性能、成本和系统架构的综合考虑。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

1162

帖子

1

粉丝