【计算机组成原理】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

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们