【计算机组成原理】3.2.2 只读存储器ROM

2024-09-01 23:20

本文主要是介绍【计算机组成原理】3.2.2 只读存储器ROM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3.2.2 只读存储器ROM

00:00

各位同学大家好,在这个小节中我们要学习ROM芯片。上一小节中我们学习了两种具体的RAM芯片,分别是DRAM和SRAM。RAM芯片可以支持随机存取,读写速度会很快,但是它是一种易失性的存储芯片,也就是如果我们断电之后,RAM芯片里的数据就会消失。然而我们生活中很多数据在没有电的时候,我们也需要保证能够被保存。这一小节中我们会介绍几种类型的ROM芯片,分别是这些名字。这些ROM芯片都是非易失性,也就是断电之后数据不会丢失。好,来依次看一下这些ROM芯片。

00:40

第一种叫MROM,这是它的英文全称,叫做掩模式只读存储器。我们在第一个小节当中说过,所谓ROM指的是read only memory,就是只能读而不能写的一种存储器。MROM这种芯片里的数据初始化这个步骤是由厂家负责完成的,客户提出自己的要求,需要往里边写入什么数据。那厂家在生产芯片的时候,就会使用一种掩模技术,把这个数据直接写到这个芯片里边,并且厂家写入信息之后,这些信息以后任何人就不能再重写。所以这种芯片是纯粹意义上的只读read only memory,以后只能从中读取数据,而不能往里面写数据。那这种芯片的特点就是可靠性高,但是灵活性差,并且生产周期长,而且这种掩模技术只适合批量定制,就是制造一个掩模的模板成本会比较高。

01:39

好,后来为了提高这个只读存储器的灵活性,就有人发明了PROM,p指的是programmable,可编程的只读存储器。用户买了这样的一个存储芯片之后,他可以用专门的一个PROM写入器来写入他想要写的信息。但是写入一次之后就不可以再更改。相比于上面这种只读存储器,PROM的这个灵活性就大大增加了,可以由用户自己来个性化的定制往里边写的数据。同样的PROM也是一个纯粹意义上的只读存储器,只能从里面读数据,不能往里面重复写数据。

02:19

后来随着技术的发展,又有人发明了EPROM。这个E指的是erasable,就是可擦除的可编程的只读存储器。就是说用户在第一次写入信息之后,他还可以用某一种特别的方法来擦除这个EPROM里的数据,然后再进行重新写入。所以虽然他的名字叫做read only只能读,然而我们通过一些特殊的手段,其实也可以往里面重复的写数据。

02:49

根据用户擦除数据的这个手段不同,我们可以把EPROM又进一步的分为这样的两个类型。一种叫UVEPROM,UV这个是紫外线的意思,顾名思义对于这种ROM芯片,我们只需要用紫外线在这个芯片的一个石英窗口上给它照射8到20分钟,然后大喊一句我擦,就可以把所有的信息给擦除。注意是所有的信息全部都擦除,你并不能选择擦除部分信息,要擦就只能全部一起擦。好,所以这种EPROM它的灵活性是不够高的那后来又有人发明了EEPROM,也有的地方会把它写成E的平方PROM。第一个E是electricity的意思,就是我们可以用电来擦除,并且这种擦除方式可以支持我们擦除固定的字。

03:41

好,再往后随着EEPOM的技术发展,就有人发明了Flash Memory,也就是闪速存储器,也可以简称为闪存。我们熟悉的U盘还有SD卡那些就是闪存。这种闪存芯片保留了EEPOM的优点,就是在断电之后也可以保存信息。另外还可以进行多次的快速的擦除和重写。这一点想一想我们平时用的U盘就不难理解。

04:09

需要注意的是,由于闪存这种flash memory在写入数据的时候,需要先把数据进行电擦除,然后再进行写入。而读出数据的时候直接读就行了。所以由于写入数据的时候这些步骤会比较麻烦。因此对于用闪存芯片制造的各种各样的存储设备,通常写的速度要比读的速度更慢。大家也可以试一下自己的U盘是不是写比读更慢。这种闪存芯片我们要往里面写数据或者要读数据都是很方便的,既可读又可写。但是我们依然会把它归为ROM类的芯片。

04:49

另外由于这种芯片它的存储元只需要使用单个MOS管就可以,因此每一个存储元的体积比RAM的存储元体积要更小,所以闪存的位密度要更高。也就是说对于两块体积都相同的芯片来说,在工艺水平相同的情况下,闪存芯片上这个存储元的数量要比RAM芯片上存储元的数量更多,也就可以保存更多的二进制比特位,所以这是位密度的意思,这一点大家应该也有体会。现在很多U盘都是动辄128GB或者64GB,如果你有坏掉的U盘,那你可以把它拆掉看一下,看一下里边的存储芯片体积是不是很小。本质原因就是每一个存储元的体积比较小,所以存储元的集成度就会很高。

05:40

最近几年随着闪存芯片的一个技术发展,又出现了一个大家都耳熟能详的东西SSD,也就是固态硬盘。我们的固态硬盘其实也是由闪存芯片来存储二进制数据的。那除了以闪存芯片作为存储介质之外,还需要有一个专门的控制单元,用来控制固态硬盘里面多块闪存芯片的读和写这些操作。所以很多固态硬盘和U盘它们的存储介质其实都是闪存芯片,它和U盘的核心区别在于控制单元不一样。同样的,固态硬盘也可以进行多次的快速擦除和重写。

06:19

由于固态硬盘的速度快,功耗低,因此现在很多个人电脑上都在用固态硬盘来取代传统的机械硬盘。然而由于固态硬盘的造价要比机械硬盘,比这种磁盘要更高。所以像很多云存储中心,像百度云之类的,他们的存储中心主要还是使用机械硬盘,这是为了控制成本。

06:42

好,另外再给大家分享一个小小的拓展,其实我们的手机储存也是使用flash芯片作为这个存储介质的,只不过手机里边使用的这种flash芯片比SSD固态硬盘里使用的flash芯片,它的集成度会更高。那集成度更高是不是就意味着体积会更小?另外手机里存储芯片它的功耗也会更低,因为这样可以更省电,让我们的手机更持久。缺点就是价格更贵,这点大家应该也有感受,就是我们很多厂商卖手机的时候,64GB的辅存,还有256GB的辅存,它的价格差异是很大的,那这就是因为手机里使用的存储芯片,它的成本比较高。

07:28

好,再次强调我们的闪存芯片虽然可以读也可以写,但是它依然属于ROM,也就是read only memory,也就是只读存储器。所以大家在买手机的时候,有可能会看到这样的一个文字宣传,就是某手机它的RAM是8GB然后ROM是256GB,那以后大家就知道了,所谓的RAM指的就是它的内存,然后所谓的ROM指的就是它的辅存。好,这是我们需要简单了解的几种ROM,需要注意它们各自的特性。那每一种ROM的英文缩写,建议大家结合它的英文全称来进行记忆,不然的话很容易混淆。

08:10

好,接下来我们再来看一下计算机内部一个很重要的RAM芯片。通过之前的学习,我们知道计算机的主存是用来存放一系列的指令和数据的,那CPU要做的事情就是从主存里边取一条一条的指令,并且执行这些指令。然而上个小节我们说过,RAM这种芯片,它是一种易失性的芯片,也就是断电之后RAM里的数据会全部丢失。也就是说我们计算机关机之后,主存里的数据全部都没了。

08:42

那当我们再一次开机的时候,是不是意味着我们需要把操作系统还有各种应用程序相关的一些指令数据,把它重新给调入主存。而我们知道操作系统又是安装在辅存里边的,那CPU作为计算机的指挥中心,刚开始他要做什么事,其实也需要我们给他提供一系列的指令。CPU其实很傻,只能根据我们写好的指令来一步一步的执行。所以由于开机的时候,主存里面完全没有数据,没有指令,那CPU就需要从主板上面的一块ROM芯片上来读取开机所需要执行的那些指令。这块ROM芯片就是BIOS芯片,其中存储了自举装入程序。

09:26

学过操作系统的同学应该听过这个概念,所谓自举装入程序就是指CPU在刚开始执行的那一段程序。根据这一段程序的指引,CPU可以指挥IO系统把辅存当中存储的操作系统相关的数据给放到主存。所以这一块儿ROM芯片里边存储的这些程序就是用来引导开机的。那我们说过ROM芯片是非易失性的,也就是说即便我们的计算机没有被供电,那ROM里边存储的这个自举装入程序相关的这些指令数据同样不会丢失。所以主板上的这块芯片是十分重要的,那自己重装过电脑的同学肯定都见过BIOS的这个界面。

10:13

我们需要补充的一点是,虽然这块ROM芯片通常是被集成在主板上,但是逻辑上我们应该把它看作是主存的一部分。也就是说在这一课里边,当我们提到到主存的时候,除了指我们熟悉的内存条之外,我们还应该加上这个BIOS芯片,二者结合才是一个完整的主存。通常CPU会给RAM和ROM进行一个统一的编址。那什么叫统一编址呢?就是说如果这块ROM芯片它的容量是1KB,那么CPU会把0到1023这1K个地址是分配给ROM芯片的。然后RAM芯片也就是这个内存条,它的地址其实是从1024开始往后编号的,所以这就是所谓的统一编址。

11:04

好的,这个小节当中我们简单的介绍了几种ROM,大家需要注意各种ROM的名称和特性,有可能作为选择题考察。另外我们需要注意,虽然ROM芯片它的名字R和O指的是read only只能读,然而我们介绍的后面这三大类的ROM芯片其实也都可以写。对于闪存来说,写的速度一般来说要比读的速度更慢,因为写之前我们需要先进行擦除。

11:32

最后还需要注意一点,RAM芯片它是Random Access Memory的一个缩写,也就是支持随机存取。事实上ROM芯片也具有随机存取的特性,也就是说对于一个ROM芯片,我们给定一个想要访问的存储单元的地址,那么我们访问的速度并不会因为这个地址而改变。所以ROM和RAM的概念并不是完全相对立的。好的,以上就是这一小节的全部内容。

这篇关于【计算机组成原理】3.2.2 只读存储器ROM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128333

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja