1 ROM介绍
ROM即为只读存储器,全拼是Read Only Memory。
1.1 “只读”的由来
ROM叫只读存储器是因为最早的ROM(MROM)确实是只能读取不能写入,一旦出厂不能再写,需要在出厂之前预设好它的数据,并且它是掉电不丢失的,又称为固定存储器。但是随着技术的进步以及发展的需要,PROM(一次写入之后就不可更改), EPROM, EEPROM, FLASH,SSD 在ROM的基础上被发明了出来,这些都是可编程ROM,也就是说既可以读又可以写,要想在只读存储器中存入或改变数据,必须具备特定的条件。所以ROM叫作只读存储器是受当时技术的限制,然后这个名字一直叫到了现在。
其实,现阶段ROM、RAM是可读与可读可写存储器的一种框架,MROM、PROM等是基于ROM框架的一种实现;DRAM、SRAM、SDRAM是基于RAM框架的一种实现
1.2 与RAM的比较
不同于前文讲述的RAM这种易失性存储器,ROM是非易失性存储器。
- RAM:支持随机存取,读写速度会很快,但是它是一种易失性的存储芯片,如果断电,芯片内的数据就会消失。
- ROM:非易失性,断电后数据不会丢失。
1.3 ROM结构图
地址译码器根据输入地址总线进行译码,选择某条输出(称字线),由它再去使能驱动该字线的各位线,选通的字线与不同位线在存储单元体内形成独立的数据表示,一条字线对应一个字,字中的不同数据比特由多个位线提供。
下图a是以熔丝为存储元件的8×4ROM(通常以“字线×位线”来表示存储器的存储容量)的原理图。它以保留熔丝表示存入的是“0”,以熔断熔丝表示存入的是“1”。例如,存入字0的是“0110”,存入字1的是“1011”。
从图中可以得到如下结论为:
-
没有支持写操作的结构
-
CS为外部输入的片选使能信号,控制是否从此ROM模块进行数据输出,在ROM中,一般都设置片选端。当片选=0时,ROM工作;当片选=1时,ROM被禁止,其输出为“1”电平或呈高阻态。 片选信号可以用来扩展ROM的字数。
-
地址总线发送地址,地址译码器选通所需要读取的地址,该地址的存储值输出到输出缓冲器
-
熔丝可以理解为在出厂时是否通过电流将其烧断,标记存储值,如图(a)
-
假设片选型号低电平使能,地址总线为000,则译码器会选通并拉高最上面一条线,即为打开所有如下图所示的存储单元的位选开关,实现最上面一条线上四个存储单元中数据的读取,最左侧和最右侧熔丝没断,连接到地为0,经过反向缓冲器输出为1;中间两个熔丝熔断,到地电阻无限大,电压为1,经过反向缓冲器输出为0
- ROM的地址译码器是与门的组合,它的输出是全部地址输入的最小项。可以把译码器表示成图b所示的与阵列,图中与阵列水平线和垂直线交叉处标的“点”表示有“与”的联系。
- 存储单元体实际上是或门的组合,ROM的输出数即或门的个数。译码器的每个最小项都可能是或门的输入,但是,某个最小项能否成为或门的输入取决于存储信息,因此存储单元体可看成是一个或阵列。
- 由上分析,可以从另一角度来看ROM的结构:它由两个阵列组成——“与”门阵列和“或”门阵列,其中“或”的内容是由用户设置的,因而它是可编程的,而与阵列是用来形成全部最小项的,因而是不可编程的。
2 ROM的分类与演进
2.1 MROM
掩膜式只读存储器,MROM(Mask Read Only Memory)芯片由厂家初始化,客户提出自己的要求,需要往里面写入什么数据,厂家生产芯片的时候,就会使用一种掩模式技术,把数据直接写进芯片。厂家一旦写入信息,以后任何人不能重改。这种芯片,只能读出数据,不能往里面写数据。这也是ROM的由来。
其原理图如下
从中可以看到,MOSFET源极连接关系在芯片掩膜中就确定了,所以MROM是无法编程的,其中的内容也是不会发生改变的。在MCU中,MROM一般用于实现一些固化于芯片内部的功能,如引导程序,某些内置的库函数等。
特点:可靠性高,但是灵活性差,只适合批量定制(需要生产掩模式模板),成本比较低。
2.2 PROM
可编程只读存储器,PROM(Programmable Read-Only Memory)为了解决上面的问题,PROM芯片应运而生。也称为OTPROM,一次编程唯读记忆体(One Time Programmable Read Only Memory,OTPROM)内部所用的晶片与写入原理同EPROM,但是为了节省成本,封装上不设置透明窗,因此编程写入之后就不能再抹除改写。这种芯片可以通过专门的PROM写入器,往芯片里面写入需要的信息。但只能写一次,之后不可更改。
在出厂时,所有熔丝均处于图(b)的状态,即存储器中存储的内容是0。用户可对其进行编程,用大电流使源极熔丝熔断即可将此位置为1。此编程过程是一次性不可逆的,也就是所谓的一次编程(OTP)。
上面的原理图中描述的是基于熔丝原理的PROM,事实上,目前更为广泛使用的是反熔丝技术。二者的区别在于,熔丝(Fuse)在初始状态是闭合的,可通过编程使其断开;反熔丝(Antifuse)在初始状态是断开的,可通过编程使其闭合。反熔丝技术的基本原理见下图
- 典型产品是“双极性熔丝结构”,如果想改写某些单元,则可以给这些单元通以足够大的电流,并维持一定的时间, 原先的熔丝即可熔断,这样就达到了改写某些位的效果。
- 另外一类经典的PROM为使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,还是用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可。
2.3 EPROM
可擦除可编程只读存储器,EPROM(Erasable Programmable Read-Only Memory)。EPROM`芯片,可以擦除可以编程。虽然它也叫“只读”,但是需要说明的是
- 可以进行多次重写
- 重写的手段有一定的特殊性
根据用户擦除数据的手段不同,可以把EPROM分为:
- UVEPROM:用紫外光照射8-20分钟,擦除所有信息。其一般用电信号编程用紫外线擦除,这种芯片要使用昂贵的陶瓷封装,预留一个石英玻璃所制的透明窗,以便进行紫外线曝光,以擦除原有信息。写入程式后通常会用贴纸遮盖透明窗,以防日久不慎曝光过量影响资料。而且在擦除过程中不能选择性地擦除存储字单元,如果用户需要改程序,必须擦除整个存储阵列。
- EEPROM:也场记为
E^2PROM
,可用电擦除的方式擦除特定的字。EEPROM的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM Eraser和编程器的束缚。EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用厂商提供的专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。 借助于EEPROM芯片的双电压特性,可以使BIOS具有良好的防毒功能,在升级时,把跳线开关打至“ON”的位置,即给芯片加上相应的编程电压,就可以方便地升级;平时使用时,则把跳线开关打至“OFF”的位置,防止病毒对BIOS芯片的非法修改。
EPROM与之后讲的EEPROM及Flash的基本原理是相同的,都是基于浮栅技术(Floating-gate MOSFET)。浮栅MOS管的结构示意图如下
悬浮栅极位于两层二氧化硅绝缘层之间,因此存储于其中的电荷可以得到长久的保持。EPROM、EEPROM及Flash的Memory cell简化结构示意图如下
三者的区别主要在于其编程的方式不同。
- EPROM通过紫外线(UV)照射进行数据擦除,浮栅中的电荷形成光电流泄漏走
- EEPROM与Flash均是通过超薄氧化层的Fowler-Nordheim隧道电流使浮栅充放电
EEPROM的Memory cell是由FLOTOX(Floating- gate tuneling oxide transister)及一个附加的晶体管(Transister)组成,由于FLOTOX的特性及两管结构,所以可以单元读/写。技术上,Flash是结合EPROM和EEPROM技术达到的,很多Flash使用雪崩热电子注入方式来编程,擦除和EEPROM一样用Fowler-Nordheim tuneling。但主要的不同是,Flash对芯片提供大块或整块的擦除,这就降低了设计的复杂性,它可以不要EEPROM单元里那个多余的Tansister,所以可以做到高集成度,大容量。另外Flash的浮栅工艺也有所不同,写入速度更快。
2.4 Flash
Flash Memory,闪速存储器。是英特尔公司90年代中期发明的一种高密度、非易失性的读/写半导体存储器。
- 特点一:(可重写与非易失)Flash既有EEPROM的优点,断电后可以保存信息,又有RAM的特点,可以进行多次快速擦除重写,是一种全新的存储结构。同时由于需要先擦除再写入,因此闪存写的速度要比读的速度慢。
- 特点二:(单电压)Flash属于真正的单电压芯片,它的读和写操作都是在单电压下进行。Flash是利用浮置栅上的电容存储电荷来保存信息,因为浮置栅不会漏电,所以断电后信息仍然可以保存。Flash的每一个记忆胞(存储阵列中的cell)都具有一个“控制闸”与“浮动闸”,利用高电场改变浮动闸的临限电压即可进行编程动作。
- 特点三:(擦写粒度)Flash最大特点是必须按块(Block或Sector)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而EEPROM则可以一次只擦除一个字节(Byte)。
- 特点四:(存储密度)它的存储元只需要使用单个MOS管,因此每个存储元的体积比RAM存储元体积要更小,所以闪存的位密度要更高。也就是对于两块体积相同的芯片来说,工艺水平相同的情况下,闪存芯片上存储元的数量要比RAM更多,也就是保存更多的二进制比特位。Flash ROM的存储容量普遍大于EEPROM,约为512K到至8M KBit,由于大批量生产,价格也比较合适,很适合用来存放程序码。
Flash主要分为NAND型与NOR型。现在NAND Flash常用于固态硬盘、USB随身盘、记忆卡等用途,NOR Flash则用于BIOS/UEFI ROM晶片等用途。
虽然这种芯片可读可写,但由于其是由ROM发展而来,所以依然归为同时也称为ROM类的芯片。
2.5 SSD
SSD,固态硬盘(Solid State Drives),有控制单元和存储单元构成。闪存芯片作为存储单元,存储二进制数据。控制单元用来控制固态硬盘多块闪存芯片的读或者写。
与纯Flash的闪存区别在于控制单元不一样,但是其二者存储介质类似,都可以进行多次快速的擦除重写。
SSD速度快,功耗低,价格高。
个人电脑常用SSD取代传统机械硬盘。同时也由于SSD比机械硬盘造价高,所以像很多云存储中心主要还是使用机械硬盘,比如百度云。
3 ROM特点与相关产品形态
ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据,适合那些在生命周期中几乎不会被更改的软件。
- 电脑和手机的操作系统、CPU和GPU的程序,这种装配了重要软件的只读记忆体也可叫作“固件”
- 游戏机等可编程设备的软件也可以通过包含只读存储器的卡带进行分发s
- ROM还可以指快闪记忆体,尽管后者除了“唯读”之外也能够“删除”体内资料。
3.1 bios芯片
计算机的主存用来存放一系列的指令和数据。CPU的任务就是从主存中取指令并执行指令。
- RAM(主存)具有易失性,断电后数据全部消失,计算机关机后,主存中数据消失。
- CPU作为计算机指挥中心,在起初需要做什么事情,均需要需要给它提供指令,只能根据写好的指令来一步一步地执行。
- 刚开机的时候,主存里面没有数据指令,所以CPU就需要从主板上的一块ROM芯片上读取开机需要的指令,把操作系统、应用程序等指令数据重新调入主存。这块ROM芯片其实就是BIOS芯片。它里面存储了自举装入程序。ROM芯片是非易失性的,即便计算机没有被供电,ROM里面存储的自举装入程序相关的指令数据同样不会丢失。
- 虽然Bios芯片通常是被集成在主板上。但在逻辑上,应该看作是主存的一部分。当提到主存的时候,除了熟悉的内存条之外,还应该加上BIOS芯片。两者结合才是一个完整的主存。CPU会给RAM和ROM进行一个统一的编址。
一些名词解释:
- 自举装入程序:CPU在刚开始执行的那一段程序,根据那一段程序的指引,CPU可以指挥I/O系统,把辅存中存储的操作系统相关的数据放入主存。
- 统一编址:如果ROM芯片的容量是1KB,那么CPU会把0~1023这1K个地址分配给ROM芯片;RAM芯片的地址其实就是从1024往后编址。这就是统一编制。
3.2 手机
购买手机的时候RAM指的是内存,ROM指辅存。
参考文献
ROM(只读存储器)_rom可以写入数据吗-CSDN博客
3.4只读存储器ROM-CSDN博客
只读存储器的工作原理_百度知道
唯读记忆体 - 维基百科,自由的百科全书
ROM - 活着的虫子 - 博客园
ROM、RAM存储器原理详解以及DRAM、SRAM、SDRAM 、FLASH存储器的介绍_rom的原理_17岁boy想当攻城狮的博客-CSDN博客
RAM,ROM,固态(SSD),硬盘它们间有何关系?_ssd属于rom吗-CSDN博客
RAM、ROM、硬盘及内存 - 知乎
ROM_51CTO博客_nero burning rom
浅谈存储器_prom管工作原理-CSDN博客
sec 16-04 Memory Concepts - YouTube
半导体存储器总结 | 高明飞的博客