前言
这一小节,我们学习只读存储器ROM。
上一小节,学习了两种RAM芯片,分别是SRAM和DRAM。RAM芯片可以支持随机存取,读写速度会很快,但是它是一种易失性的存储芯片,如果断电,芯片内的数据就会消失。在生活中,有很多数据,在没有电的时候,也希望被保存。这一小节,会介绍几种ROM芯片,断电之后数据不会丢失。
二、介绍
1.MROM
MROM芯片由厂家初始化,客户提出自己的要求,需要往里面写入什么数据,那么厂家生产芯片的时候,就会使用一种掩模式技术,把数据直接写进芯片。厂家一旦写入信息,以后任何人不能重改。所以这种芯片,只能读出数据,不能往里面写数据。
特点:可靠性高,但是灵活性差,只适合批量定制(需要生产掩模式模板)
2.PROM
为了解决上面的问题,有人发明了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就是指辅存。
三、主存中的ROM
经过之前的学习,我们知道,计算机的主存用来存放一系列的指令和数据。
CPU的任务就是从主存中取指令并执行指令。
在上一小节,我们知道RAM芯片是一种易失性芯片,断电之后,RAM里面的数据会全部丢失。
也就是当计算机关机之后,主存里面的数据全部都没有了。当我们再次开机的时候,就需要把操作系统、应用程序等指令数据重新调入主存。而操作系统是安装在辅存里面的。
那么CPU作为计算机的指挥中心,刚开始需要做什么事情,也是需要给它提供一系列的指令的。
CPU很傻,只能根据写好的指令来一步一步地执行。
由于刚开机的时候,主存里面没有数据指令,所以CPU就需要从主板上的一块ROM芯片上读取开机需要的指令。如下:
这块ROM芯片其实就是BIOS芯片。它里面存储了自举装入程序。
自举装入程序:CPU在刚开始执行的那一段程序,根据那一段程序的指引,CPU可以指挥I/O系统,把辅存中存储的操作系统相关的数据放入主存。所以这一块ROM芯片里面,存储的程序就是用来引导开机的。
ROM芯片是非易失性的,即便计算机没有被供电,ROM里面存储的自举装入程序相关的指令数据同样不会丢失。
📔注意
虽然这块ROM芯片通常是被集成在主板上。但在逻辑上,应该看作是主存的一部分。
在这门课里面,当我们提到主存的时候,除了熟悉的内存条之外,还应该加上BIOS芯片。两者结合才是一个完整的主存。
通常,CPU会给RAM和ROM进行一个统一的编址。
统一编址:如果ROM芯片的容量是1KB,那么CPU会把0~1023这1K个地址分配给ROM芯片;RAM芯片的地址其实就是从1024往后编址。这就是统一编制。
四、回顾
需要记住ROM的各个名称及特性。
RAM芯片支持随机存取,其实ROM芯片也具有随机存取的特性。对于一个ROM芯片,给定一个想要访问的存储单元的地址,访问的速度并不会因为地址而改变。
所以RAM和ROM的概念并不是完全相对立的。