ROM、RAM 和 Flash 的区别

news2024/11/18 6:04:27

目录

  • 一、ROM
  • 二、RAM
    • 1、内存工作原理
  • 三、Flash


在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD 等,能长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比就显得慢的多。内存指的就是主板上的存储部件,是 CPU 直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。

存储器分类有很多方法,下图是一个按照存储介质的不同的分类示意图(红底是易失性存储器,蓝底是非易失性存储器x):


本文主要针对 ROM、RAM、Flash 这三种存储器进行介绍。

一、ROM

ROM(Read-Only Memory)是一种只读存储器,它的数据是在制造过程中被写入的,在工作是只能读出,用户无法对其进行修改,而不像随机存储器那样能快速地、方便地加以改写。ROM 可以存储固定的程序和数据,例如操作系统启动程序和固件程序等。由于其只读的特性,ROM 在电子设备中常用于存储固定程序和数据。

ROM 特性如下:

  1. ROM数据不能随意更新,但在任何时候都可以读
  2. 掉电可保留数据

ROM 有很多种,PROM 是可编程的 ROM,PROM 和 EPROM(可擦除可编程 ROM)两者区别是,PROM 是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种 EEPROM 是通过电子擦出,价格很高,写入时间很长,写入很慢。

ROM分类:

  1. MROM:是一种特殊类型的 ROM,它使用金属线进行数据的编码和存储。
  2. PROM:可编程一次性(无法修改的 ROM)
  3. EPROM: 紫外线可擦除可编程的 ROM
  4. EEPROM: 电可擦除可编程的 ROM
    • 按字节进行删除和重写,所以写入时间很长,写入很慢
    • 可以随机访问和修改任何一个字节
    • 目前的 EEPROM 都是几十千字节到几百千字节的,绝少有超过 512k

二、RAM

RAM(Random Access Memory)是一种随机存取存储器,它可以被任意读取和写入。RAM 是电子设备临时存储数据的地方,它的数据在设备上电之后才能被存储,断电后数据会被清空。RAM 的速度快,读取和写入速度都比较快,但是容量相对较小。

RAM 分类:

  1. 静态 RAM(static RAM/SRAM
    • SRAM 速度非常快,不需要刷新电路即能保存数据,是目前最快的存储设备
    • 集成度比较低,非常昂贵,多用于一级缓存、二级缓存(L1/L2 Cache)
  2. 动态 RAM(Dynamic RAM/DRAM
    1. DRAM 特点
      • DRAM 保留数据的时间很短,需要内存刷新电路,每隔一段时间,刷新充电一次,否则数据会消失
      • 速度比 SRAM 慢,不过它比任何 ROM 都要快
      • 价格便宜,内存一般都是 DRAM
    2. DRAM 分类(有很多种,其中目前最流行的一种是 DDR RAM)
      • FPM DRAM(Fast page mode DRAM):一种较旧类型的异步 DRAM,它通过允许以更快的速度重复访问单个“页面”内存来改进以前的类型。 1990 年代中期使用。
      • EDO DRAM(Extended data out DRAM):一种较旧类型的异步 DRAM,其访问时间比早期类型更快,因为它能够在上次访问的数据仍在传输的同时启动新的内存访问。在 1990 年代后期使用。
      • DDR RAM(Date-Rate RAM):这种 RAM 可以在一个时钟读写两次数据
      • SDRAM:同步的 DRAM,即数据的读写需要时钟来同步
      • DDR SDRAM(Double data rate SDRAM):可以通过双泵(在时钟脉冲的上升沿和下降沿传输数据)在每个时钟周期传输两倍的数据(两个连续字)

1、内存工作原理

内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即 DRAM),动态内存中所谓的’动态’,指的是当我们将数据写入 DRAM 后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

具体的工作过程是这样的:一个 DRAM 的存储单元存储的是 0 还是 1 取决于电容是否有电荷,有电荷代表 1,无电荷代表 0。

  • 但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,这就是数据丢失的原因;
  • 刷新操作定期对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电;
  • 若电量小于1/2,则认为其代表 0,并把电容放电,藉此来保持数据的连续性。

从一有计算机开始,就有内存。内存发展到今天也经历了很多次的技术改进,从最早的 DRAM 一直到 FPMDRAM、EDODRAM、SDRAM等,内存的速度一直在提高且容量也在不断的增加。

三、Flash

Flash 是一种可擦写的存储器,它结合了 ROM 和 RAM 的优点。它的数据可以被任意读取和写入,并且可以擦除和重新写入。Flash 的数据在断电后仍然能够保持,因此它可以作为长期存储器使用。Flash 的速度相对于 RAM 较慢,但相对于传统的硬盘存储器来说速度快得多。

Flash特性:

  1. 可擦除可编程,跟 EEPROM 一样
  2. 断电不会丢失
  3. 可以快速读取数据
  4. Flash 跟 EEPROM 最大的区别是 Flash 按扇区操作,相对于 EEPROM 的改进就是擦除时不再以字节为单位,而是以块为单位

Flash 有两种:

  1. NOR Flash
    • 用户可以直接运行装载在 NOR Flash 中的代码(主要是因为有 XIP 技术,片上执行,不像 NAND Flash 得将代码复制到 RAM 中才可以执行),这样可以减少 SRAM 的容量从而节约了成本。
    • 地址线和数据线分开,可以实现 RAM 一样的随机寻址,可以读取任意一个字节
    • 但擦除还是要以块为单位
  2. NADN Flash
    • NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取 512 个字节,采用这种技术的 Flash 比较廉价。用户不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash 的开发板除了使用 NAND Flash 以外,还作上了一块小的 NOR Flash 来运行启动代码。

一般小容量的用 NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用 NAND FLASH,最常见的 NAND FLASH 应用是嵌入式系统采用的 DOC(Disk On Chip)和我们通常用的’闪盘’,可以在线擦除。目前市面上的 FLASH 主要来自 Intel,AMD,Fujitsu 和 Toshiba,而生产 NAND Flash 的主要厂家有 Samsung 和 Toshiba。

总而言之,NOR Flash 和 NAND Flash 比较,NOR 可以支持随机访问,支持 XIP,NAND 不行;NOR 容量小,读的比 NAND 快;NAND 的容量较大,虽然读起来也快;NOR 写擦除都很慢,所以一般放代码段,而 NAND 写和擦除都很快,所以没有这个应用上的限制。

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

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

相关文章

RocketMQ 消息示例-topic、broker、messagequeue

topic主题里面是会有一些队列的。 可以看到消费的消息来自于不同的broker。broker后面还带有queueid,可以看到brokera后面是带有四个队列。 同理brokerb也会有四条队列。 创建topic并没有指定创建在哪个broker上面。它会去创建在默认的broker cluster上面。 brokerC…

DataFlow 专业版 标准版奶牛管理系统软件

DataFlow 专业版 标准版奶牛管理系统软件特点:是一个控制挤奶和奶牛监测的综合管理系统,能够通过挤奶设备等进行信息采集,生成报告、图表、分析、任务列表和终生奶牛卡历史等。该系统还可以控制和支持分群门、饲喂系统和称重系统等奶厅相关组…

嵌入向量生成与查询

嵌入向量生成与查询 文本嵌入模型 M3E 是 Moka Massive Mixed Embedding 的缩写 Moka,此模型由 MokaAI 训练,开源和评测,训练脚本使用 uniem,评测 BenchMark 使用 MTEB-zh Massive,此模型通过千万级 (2200w) 的中文句…

React 原理分析

优质博文:IT-BLOG-CN 一、简介 为什么我要用react?JQuery也挺好的呀? 1、因为浏览器和JavaScript一直在更新,新版前端框架可以更好对接新的API,更好的利用浏览器的能力, 提供更新潮强大的功能。 2、react…

C++中,如何使你设计的迭代器被标准算法库所支持。

iterator(读写迭代器) const_iterator(只读迭代器) reverse_iterator(反向读写迭代器) const_reverse_iterator(反向只读迭代器) 以经常介绍的_DList类为例,它的迭代…

番茄间的一分钟休息

很多人喜欢使用番茄工作法,在25分钟内集中工作。这种方法提高了25分钟内的工作效率,但是也增加了自己的疲劳程度。 我建议,在25分钟的工作时间内,要保持对自己身体的觉察。如果感觉呼吸短促,有一些紧张,用…

C0007.Clion中添加ui文件及运行的完整步骤

1.创建ui文件 选择Ui文件目录,右击,打开Qt Designer; 创建完成后,保存ui界面,并且命名为test.ui; 2.新建头文件test.h 在include目录中,新建头文件,文件名为test.h 3.新建test.…

ScrapeGraphAI 大模型增强的网络爬虫

在数据驱动的动态领域,从在线资源中提取有价值的见解至关重要。从市场分析到学术研究,对特定数据的需求推动了对强大的网络抓取工具的需求。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线…

C++语言学习(1): std::endl 在做什么?

std::endl 是一个函数(而不是变量): std::endl 会向控制台写入 \n 字符,并且刷新缓冲。 刷新缓冲肯定比不刷新缓冲慢。 这就是为什么有些 guide 里提到,少用 std::endl, 多用 \n.

Notepad++ 之 AndroidLogger插件

背景 最近一段时间在分析Android log 定位问题,Notepad 之前用的比较少,现在看log觉得确实好用,美中不足的是 看Android log的时候不像 logcat -v color 可以区分不同等级的颜色,于是调研了一下,发现大部分都是使用An…

DAY84服务攻防-端口协议桌面应用QQWPS 等 RCEhydra 口令猜解未授权检测

Day84:服务攻防-端口协议&桌面应用&QQ&WPS等RCE&hydra口令猜解&未授权检测_wps漏洞复现 rce-CSDN博客https://blog.csdn.net/qq_61553520/article/details/137119893?ops_request_misc%257B%2522request%255Fid%2522%253A%25220E34BCAF-166A-4…

Python 实现指定股票三日趋势分析脚本及原理详解

以下是一个基于Python的股票三日趋势分析脚本,它能够分析指定股票在三天内的趋势变化情况。脚本主要依赖pandas、numpy、matplotlib和yfinance等库。分析内容包括收盘价的涨跌趋势、成交量变化,并生成可视化图表来帮助用户更好地理解短期趋势。 脚本的分…

汇总binder相关一些常见面试题-安卓系统常见面试题

背景: 国庆前有几个学员朋友在群里讨论了几个binder相关的面试题,讨论较为激烈,这里马哥统一整理一下列出来了,并且也补充了几个,大家有兴趣的可以尝试做一下,后续方便每个学员进行查缺补漏。后续会进行整…

三维地图场景学习总结 20241002

1. 学习内容 1.1 cesium 学习 基础教程:提供了cesium的配置方式及简单案例 dvgis:该网址提供了关系cesium的使用案例 1.2 OpenStreetMap 学习 List_of_OSM-based_services:提供了openstreetmap所有相关工具及相关使用案例 1.3 三维场景渲…

生信初学者教程(十一):数据校正

文章目录 介绍加载R包导入数据准备数据ComBatremoveBatchEffectVoom SNM批次效应校正结果比较校正后的结果输出校正后的结果总结介绍 批次效应在生物学数据分析中是一个普遍存在的问题,它指的是由于实验过程中非生物学因素(如样本处理时间、实验条件、测序平台等)的差异,导…

如何使用ssm实现基于HTML的中国传统面食介绍网站的搭建+vue

TOC ssm758基于HTML的中国传统面食介绍网站的搭建vue 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔…

前端框架对比和选择指南

前端框架对比和选择指南 随着 Web 开发技术的快速发展,前端框架已经成为了现代 Web 开发的核心工具之一。它们为开发人员提供了快速构建高效、交互性强的应用的基础。当前流行的前端框架主要包括 React.js、Vue.js 和 Angular.js。在这篇技术博客中,我们…

dubbo微服务

一.启动nacos和redis 1.虚拟机查看是否开启nacos和redis docker ps2.查看是否安装nacos和redis docker ps -a3.启动nacos和redis docker start nacos docker start redis-6379 docker ps二.创建三个idea的maven项目 1.第一个项目dubboapidemo 2.1.1向pom.xml里添加依赖 …

uniapp微信小程序使用ucharts遮挡自定义tabbar的最佳解决方案

如图所示: 使用的ucharts遮挡住了我自定义的tabbar(如果不是提需求的有病,我才不会去自定义tabbar) 查阅了不少文档,说是开启 ucharts 的 canvas2d 即可: 官网文档地址: uCharts官网 - 秋云…

忽有庞然大物,拔山倒树而来 – 盖RAD Studio 12.2是也

忽有庞然大物,拔山倒树而来 – 盖RAD Studio 12.2是也 不知为什么, 在看到RAD Studio 12.2推出的新功能之后, 脑中出现的第1个反应就是小时候唸的”忽有庞然大物,拔山倒树而来” 这句话, 因为12.2的新功能出乎我意料之外的巨大, 根本不象是一个0.2…