常见的ROM(只读存储器)及其区别(超详细)

news2024/9/23 13:20:34

目录

1. 掩模 ROM (Mask ROM)

2. 可编程 ROM (Programmable ROM, PROM)

3. 可擦写可编程 ROM (Erasable Programmable ROM, EPROM)

4. 电可擦写可编程 ROM (Electrically Erasable Programmable ROM, EEPROM)

5. 闪存 (Flash Memory)

6. NVRAM (Non-Volatile RAM)

各类 ROM 的主要区别


ROM(只读存储器,Read-Only Memory)是一种非易失性存储器,存储的数据在断电后不会丢失,广泛用于嵌入式系统、固件存储等场景。ROM 的种类较多,根据可编程性和可擦写性不同,可以分为: Mask ROM、PROM、EPROM、EEPROM、Flash、NVRAM。

1. 掩模 ROM (Mask ROM)

掩模 ROM 是最早期的一种 ROM,数据在制造芯片时由制造商永久性地写入,用户无法修改。由于其数据是通过物理掩模写入芯片的,所以修改数据需要重新制作整个芯片。常用于需要长期保存数据且不会更改的场合,如传统的 BIOS。

特点:

  • 写入数据时不可变,无法修改。
  • 制造成本较低,批量生产时具有成本优势。
  • 适用于量产的、数据固定不变的应用。

缺点:

  • 不灵活,一旦设计完成无法更改。

2. 可编程 ROM (Programmable ROM, PROM)

PROM 是一种在制造过程中未预写入数据的 ROM,用户可以在出厂后通过一次性编程将数据写入其中。编程通常是通过烧写的方式实现,一旦写入数据后无法再更改。

特点:

  • 用户可以在制造后自行编程,但只能写入一次。
  • 与 Mask ROM 相比具有灵活性,但依然不可重复写入。

缺点:

  • 数据一旦写入后无法更改。

3. 可擦写可编程 ROM (Erasable Programmable ROM, EPROM)

EPROM 是一种可擦写的 ROM,用户可以通过紫外线照射来清除其内容,然后重新编程。EPROM 的数据会在编程后保持不变,但可以通过特定操作清除并重新写入。

特点:

  • 可以多次编程,具有较好的灵活性。
  • 通过紫外线擦除芯片内容后可以重新编写。

缺点:

  • 擦除过程较为复杂,需使用紫外线照射。
  • 擦写次数有限(一般在 1000 次左右)。

4. 电可擦写可编程 ROM (Electrically Erasable Programmable ROM, EEPROM)

EEPROM 可以通过电信号来擦除和重新写入数据,而不需要紫外线照射。与 EPROM 相比,EEPROM 具有更方便的可擦写性,因此它广泛用于需要频繁修改数据的应用场合。

特点:

  • 数据可以通过电信号擦除和重新写入,擦写过程较为方便。
  • 擦写次数比 EPROM 多,典型擦写次数为 10,000 到 1,000,000 次。

缺点:

  • 速度较慢,特别是与现代的存储技术相比。
  • 单位成本较高。

5. 闪存 (Flash Memory)

闪存是一种特殊类型的 EEPROM,它允许一次性擦除和重写大量数据(通常是整个块),并且比 EEPROM 擦写速度更快。由于其高效性和容量大,闪存被广泛用于固态硬盘(SSD)、USB 驱动器和嵌入式系统的固件存储中。

特点:

  • 擦写速度较快,支持块级擦写。
  • 擦写寿命较长,典型擦写次数为 100,000 次到 1,000,000 次。
  • 容量较大,适合大规模数据存储。

缺点:

  • 尽管擦写速度比传统 EEPROM 快,但与 RAM 相比仍然较慢。
  • 数据擦写时需要擦除整块存储区域,写入时需注意存储器的管理。

6. NVRAM (Non-Volatile RAM)

NVRAM 是一种结合了 RAM 速度与 ROM 非易失性特点的存储器。虽然它是 RAM,但由于电源失效时它可以保持数据,所以也被归类为 ROM 的一种。NVRAM 通常依靠电池或其他技术来维持数据。

特点:

  • 在没有电源的情况下也能保存数据。
  • 读写速度接近于 RAM,性能较高。
  • 使用于需要高速访问数据并在断电后保存数据的场景,如嵌入式系统的配置存储。

缺点:

  • 价格昂贵。
  • 容量相对较小。

各类 ROM 的主要区别

ROM 类型可编程性可擦除性擦写方式应用场景
掩模 ROM不可编程不可擦除无法擦写量产固件、数据存储
PROM一次性可编程不可擦除无法擦写定制硬件、特定用途固件
EPROM可多次编程紫外线擦除需使用专用紫外线设备旧式微控制器、可更新固件
EEPROM可多次编程电信号擦除使用电信号擦除和重写配置存储、少量数据频繁修改
闪存可多次编程电信号擦除(块级擦除)批量电信号擦写固态硬盘、嵌入式固件、USB
NVRAM可读写自动保存数据(依赖电池)快速读取,写入时保存数据嵌入式系统配置、高速缓存存储

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2126864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CTF—杂项题目

1.ctfshow-Misc入门-misc17 1 用010editer打开图片后没有直接搜到ctf; 2 用binwalk分析文件发现有一个bzip2的隐藏文件并将其分离; 3 得到一个压缩文件D86.bz2; 4 但使用解压命令进行解压时,显示文件受损; 5 参考别人…

gbase8s之onlog相关文章

原因:总是在工作中会遇到抬杠的研发说insert没入库,特此写一篇onlog相关的文章 语法如下: onlog -l -d /data2/logbackup/gbase-0003_0_Log0000002093 --获取普通表的partnum: select ltrim(lower(hex(partnum)),0x) partnum from systabl…

数模方法论-整数规划

一、基本概念 整数规划是一种特殊的线性规划,其中某些或所有决策变量必须是整数。线性规划的概念可以阅读下面文章: 数模方法论-线性规划-CSDN博客https://blog.csdn.net/qq_41489047/article/details/142134282 这种方法用于解决那些要求解变…

[数据集][目标检测]高铁受电弓检测数据集VOC+YOLO格式1245张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1245 标注数量(xml文件个数):1245 标注数量(txt文件个数):1245 标注…

YoloV10改进策略:上采样改进|动态上采样|轻量高效,即插即用(适用于分类、分割、检测等多种场景)

摘要 本文使用动态上采样改进YoloV10,动态上采样是今天最新的上采样改进方法,具有轻量高效的特点,经过验证,在多个场景上均有大幅度的涨点,而且改进方法简单,即插即用! 论文:《DySa…

【第30章】Spring Cloud之Sentinel动态规则扩展

文章目录 前言一、规则管理及推送二、DataSource 扩展1. 引入依赖2. 规则文件3. 定义数据源信息 三、服务定义和测试1. 服务定义2. 并发测试3. 控制台查看规则 总结 前言 之前我们定义的流控和熔断规则应用每次重启之后就丢失了,是因为在控制定义规则这些规则仅在内…

Dotnet Publish 报错 - the process cannot access the file

Dotnet Publish 报错 - the process cannot access the file 问题描述: 我在使用自动化部署工具 Jenkins 时,遇到需要使用 dotnet publish 命令来发布.net core 项目时,报错了: The process cannot access the file because it …

若依RuoYi脚手架二次开发教程(二次开发必学技能)

文章目录 一、若依框架修改器二、新建业务模块1、在新模块中导入核心模块依赖2、父工程版本锁定3、添加新模块依赖 三、菜品管理(主子表)1、准备SQL并导入数据库2、配置代码生成信息3、下载代码并导入项目4、页面功能测试5、功能完善与升级改造6、页面调…

I.MX6U裸机-汇编LED灯实验

汇编基础语法参考:初识汇编语言-CSDN博客 本文主要参考正点原子《I.MX6U 嵌入式 Linux 驱动开发指南 》第八章 STM32 GPIO 回顾 我们一般拿到一款全新的芯片,第一个要做的事情的就是驱动其 GPIO,控制其 GPIO 输出高低电平,我们学习…

Python复制数组并增加一个维度

二维数组扩增到三维数组 在处理nc文件过程中,读取的数据如果是多个时间点的数据,比如绿海模式的数据,它的格点的维度除了经纬度还有时间和高度。在进行格点数据插值到站点数据时,为了保持维度一致,也构造一个相同维度的…

【CSS in Depth 2 精译_029】5.2 Grid 网格布局中的网格结构剖析(上)

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对…

opencv之Canny边缘检测

文章目录 前言1.应用高斯滤波去除图像噪声2.计算梯度3.非极大值抑制4.应用双阈值确定边缘5.Canny函数及使用 前言 Canny边缘检测是一种流行的边缘检测算法,用于检测图像中的边缘。它通过一系列步骤将图像中的像素边缘突出显示出来,主要分为以下几个步骤…

ChatGLM3中的一些语法

ChatGLM3中的一些语法 flyfish 一、functools.cache functools.cache 是 Python 3.9 引入的装饰器,用于实现函数的结果缓存。它的全称是 functools.cache,能够自动缓存函数调用的结果。 import functoolsfunctools.cache def expensive_computation(…

Python 封装、继承和多态

在学习 Python 这门编程语言时,你会接触到一些重要的面向对象编程(OOP)概念,比如封装、继承和多态。这些概念不仅是 Python 的核心特性,也是理解和使用高级编程技巧的基础。本文将通俗易懂地解释这些概念,特…

MVC设计模式与delegate,tablview,Appdelegate,SceneDelegate

一、MVC MVC就是Model(模型)、View(视图)、Controller(控制器) 例如上面的 excel表, 数据、数据结构就是模型Model 根据数据形成的直观的、用户能直接看见的柱形图是视图View 数据构成的表格…

Linux网络——socket编程与UDP实现服务器与客户机通信

文章目录 端口号TCP/UDP网络字节序socket的常见APIUDP实现服务器与客户机通信服务器客户机运行效果如下 端口号 我们说即便是计算机网络,他们之间的通信也仍然是进程间通信 那么要如何在这么多计算机中,找到你想要的那个进程呢 在网络中标识的唯一的计…

反激电路的参数设计,基于TI-UC3843芯片,Simplis仿真验证

采用TI官方提供的UC3843芯片手册给的DEMO图,通过MATHCAD计算参数得出环路补偿的各项参数,最后使用simplis进行仿真验证,一起进行学习吧。 UCx84x 电流模式 PWM 控制器 datasheet (Rev. G) (semiee.com) UCx84x 系列控制集成电路提供了实现离…

【springboot过ingress后无法获取X-Forwarded-For头信息】

springboot过ingress后无法获取X-Forwarded-For头信息 一、现象结论修改步骤ingressspringboot 排查流程本文参考 一、现象 项目使用spring boot 2.7.18,有个新需求是校验X-Forwarded-For头的所有来源ip合法性,线上环境出现取不到X-Forwarded-For头的问…

【思博伦】史上最详细思博伦测试仪使用精讲!图解超赞超详细!!!

承接上文 目录 2.2.9.7 配置TCPFLAG 2.2.9.8 配置分片 2.2.9.9 添加VLAN标签 2.2.9.10 添加MPLS标签 2.2.9.11 添加Vntag标签 2.2.9.12 重新快速新建新的帧内容 ​​​​​​​2.2.10 导入Pcap包 2.2.11 发包配置 2.2.11.1 发包模式配置 ​​​​​​​2.2.11.2 配置…

【OJ】关于顺序表的经典题目(移除数组中指定元素的值、数组去重、合并两个有序的数组)

文章目录 前言题目1:移除数组中指定的元素题目描述解题思路方法1 :暴力法方法2:双指针法 题目2:数组去重题目描述解题思路双指针法 题目3:合并两个有序的数组题目描述解题思路方法1:暴力破解法方法2&#x…