一、引子
这一小节,我们学习只读存储器ROM。
上一小节,学习了两种RAM芯片,分别是SRAM和DRAM。详情请戳:3.3Sram和Dram
RAM芯片可以支持随机存取,读写速度会很快,但是它是一种易失性的存储芯片,如果断电,芯片内的数据就会消失。
在生活中,有很多数据,在没有电的时候,也希望被保存。
这一小节,会介绍几种ROM芯片,断电之后数据不会丢失。
二、介绍
1.MROM
MROM
芯片由厂家初始化,客户提出自己的要求,需要往里面写入什么数据,那么厂家生产芯片的时候,就会使用一种掩模式技术,把数据直接写进芯片。厂家一旦写入信息,以后任何人不能重改。
所以这种芯片,只能读出数据,不能往里面写数据。
这种芯片,可靠性高,但是灵活性差,只适合批量定制(需要生产掩模式模板)
2.PROM
为了解决上面的问题,有人发明了PROM
芯片。
这种芯片可以通过专门的PROM写入器,往芯片里面写入需要的信息。
但只能写一次,之后不可更改。
3.EPROM
之后,又有人发明了EPROM
芯片,可以擦除可以编程。
虽然它也叫“只读”,但是通过一些特殊的手段,也可以往里面写数据。
根据用户擦除数据的手段不同,可以把EPROM分为:UVEPROM
和EEPROM
。
4.Flash Memory
之后,又有人发明了Flash Memory
。
这种闪存,保留了EEPROM的优点,断电后可以保存信息,可以进行多次快速擦除重写。
虽然这种芯片可读可写,但依然归为ROM类的芯片。
它的存储元只需要使用单个MOS管,因此每个存储元的体积比RAM存储元体积要更小,所以闪存的位密度要更高。也就是对于两块体积相同的芯片来说,工艺水平相同的情况下,闪存芯片上存储元的数量要比RAM更多,也就是保存更多的二进制比特位。
5.SSD
之后,又出现了SSD固态硬盘
。
固态硬盘由闪存芯片作为存储介质,也就是由闪存芯片来存储二进制数据。
另外,还需要一个控制单元,用来控制固态硬盘多块闪存芯片的读或者写。
由于SSD比机械硬盘造价高,所以像很多云存储中心主要还是使用机械硬盘,比如百度云。
我们买手机,可能会看到这样的介绍:
==RAM
就是指内存,ROM
就是指辅存。==
三、运行过程
经过之前的学习,我们知道,计算机的主存
用来存放一系列的指令和数据。
CPU
的任务就是从主存中取指令并执行指令。
在上一小节,我们知道RAM芯片是一种易失芯片,断电之后,RAM里面的数据会全部丢失。
也就是当计算机关机之后,主存里面的数据全部都没有了。
当我们再次开机的时候,就需要把操作系统、应用程序等指令数据重新调入主存。
如下:
操作系统安装在辅存里面的。
那么CPU作为计算机的指挥中心,刚开始需要做什么事情,也是需要给它提供一系列的指令的。
CPU很傻,只能根据写好的指令来一步一步地执行。
由于刚开机的时候,主存里面没有数据指令,所以CPU就需要从主板上的一块ROM芯片上读取开机
需要的指令。如下:
这块ROM芯片其实就是BIOS芯片。它里面存储了自举装入程序。
自举装入程序
:CPU在刚开始执行的那一段程序,根据那一段程序的指引,CPU可以指挥I/O系统,把辅存中存储的操作系统相关的数据放入主存。
所以这一块ROM芯片里面,存储的程序就是用来引导开机的。
ROM芯片是非易失性的,即便计算机没有被供电,ROM里面存储的自举装入程序相关的指令数据同样不会丢失。
BIOS界面:
:notebook_with_decorative_cover:注意
虽然这块ROM芯片通常是被集成在主板上。
但在逻辑上,应该看作是主存的一部分。
在这门课里面,当我们提到主存的时候,除了熟悉的内存条之外,还应该加上BIOS芯片。两者结合才是一个完整的主存。
通常,CPU会给RAM和ROM进行一个统一的编址。
统一编址:如果ROM芯片的容量是1KB,那么CPU会把0~1023
这1K个地址分配给ROM芯片;RAM芯片的地址其实就是从1024
往后编址。这就是统一编制。
四、回顾
需要记住ROM的各个名称及特性。
RAM芯片支持随机存取,其实ROM芯片也具有随机存取的特性。对于一个ROM芯片,给定一个想要访问的存储单元的地址,访问的速度并不会因为地址而改变。
所以RAM和ROM的概念并不是完全相对立的。