半岛体存储器常见类型简介

news2024/11/16 1:35:49

前言

  1. 个人邮箱:zhangyixu02@gmail.com
  2. 在学习 ESP32 的存储器结构时,发现 DRAM 是 Data RAM 而非 Dynamic RAM,IRAM 是 Instruction RAM 而非 Internal RAM 。突然发现自己对于这一块的知识还比较混乱,因此查阅相关资料进行学习整理。

半岛体存储器常见类型

  1. 如下为半导体存储的一些常见的类型介绍。

在这里插入图片描述

ROM

只读存储器(Read Only Memory),非易失性。在 ROM 诞生之初,仅可下载一次。随着时代发展可多次擦写,主要特性是断电数据不丢失。ROM 当今依旧有存在意义,这个一般用于存储启动程序 BIOS 程序,例如 ESP32 的一级引导程序就是存储在 ROM 这样能防止他人恶意篡改启动程序,造成未知的破坏。

掩膜 ROM

利用掩膜工艺制造,一旦做好,不能更改,因此只适合于存储成熟的固定程序和数据。例如 ESP32 一级引导程序可烧录进该 ROM 中,防止被篡改。

PROM

通过特殊方法可编程ROM,只能被编程一次。

EPROM

通过特殊方法可擦写可编程ROM,擦写可达1000次。

EEPROM

电子可擦除,例如刚学单片机时我们可利用I2C协议将数据存储进来断电保存。

FLASH

这是如今最为常见的存储技术,一般程序都存储进 Flash 中。但有些人习惯将 Flash 划分出 ROM 这一行列。这两种说法都行,看个人习惯。

NOR FLASH

一般上电即可使用,读取速度非常快,支持随机访问,非常适合存储和直接执行代码(XIP,Execute In Place)。因此像 STM32 的内置 Flash 和 ESP32 的外置 Flash 均采用这种。

NAND FLASH

并非在上电后即可直接使用,它通常需要经过初始化过程才能正常工作。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。因此广泛应用于各种需要大规模数据存储的场景。例如固态硬盘(SSD),U盘和存储卡(如SD卡、microSD卡)等。

RAM

随机访问存储器(Random Access Memory),易失性,它可以随时读写,且速度很快。程序中的各种变量,堆栈都是存储在 RAM 中,被初始化非 0 的变量会在系统启动初期会被引导程序从 Falsh 拷贝进 RAM 中用以提高访问效率。你可以将程序全部拷贝进 RAM 用以提高程序执行效率,不过需要注意,RAM 的价格远高于 ROM。

SRAM

容量小、价格高,优点是不需要软件初始化直接上电就能用。因此广泛应用与单片机这类内存需求量小,而且希望开发尽量简单的应用场景。

DRAM

容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。因此广泛应用于 PC 机这种内存需求量大的应用场景。

SDRAM

SDRAM 是 DRAM 技术的发展演变,是DRAM 技术的一种类型。它对传统 DRAM 的改进。它通过与系统时钟同步,提供了更高的性能和效率。

DDR

SDRAM 技术的延伸,DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。

DDR2

DDR2 是 DDR SDRAM 内存的第二代产品。它在 DDR 内存技术的基础上加以改进,从而其传输速度更快,耗电量更低,散热性能更优良。

DDR3

DDR3在DDR2的基础上继承发展而来,其数据传输速度为DDR2的两倍,同时容量更为扩大。

FRAM

具有高速读写、高耐久性、低功耗、抗辐射性等特点。广泛应用于数据记录、医疗设备、传感器和航空航天等领域。

常见的存储器组合

  1. 需要注意,有些人喜欢将 ROM 说成是 Flash。你可以认为 Flash 是 ROM 的一个子版本,也可以说 Flash 就是 ROM,或者说 ROM 和 Flash是不同的东西,都行,这不过是历史遗留的术语争论。
  2. 我们只需要知道其中的发展历史,清楚不同名称背后的含义即可。

STM32

  1. STM32 的存储器结构简单,一般就一个内置 NOR Flash + 一个内置 SRAM
  2. 这种这样它的 Flash 和 RAM 上电即可使用,无需复杂的初始化。
  3. 但这样造成的结果就是,STM32 的 Flash 和 RAM 都很少,因为这种类型的 Flash 和 RAM 较为昂贵。

ESP32

  1. ESP32 往往一个内置掩膜 ROM + 一个外置 NOR Flash + 一个外置 SRAM + 一个内置 SRAM + 一个 RTC Slow memory + 一个 RTC FAST memory
  2. 看到上面的内容,是不是懵逼了。我这里一一介绍:
  • 内置掩膜 ROM : 这个一般用来存储一级引导程序。这里将会初始化外置 SRAM外置 Flash NOR Flash芯片内部硬件加载等程序。同时,这里还将会一些乐鑫不愿意公开ROM API 函数,我们最终只能够看到他的头文件。如果我们也想制作一些不被他人看到的 API 函数同时又没有对应的硬件支持,其实那么我们可以学习 :

    • 【北京迅为】嵌入式学习之Linux系统编程篇 – 库的相关概念
    • 如何保护自己知识产权,建立代码护城河——建立自己的静态库,x86和arm平台的实例讲解
  • 外置 NOR Flash : 二级 Bootloader应用程序都将会存储在这里。ESP32 可以利用 Cache 加速访问外置 NOR Flash,利用 MMU对外置 NOR Flash 进行内存管理

  • 内置 SRAM : 内置掩膜 ROM进行一级引导程序时候,肯定需要对应的 SRAM 配合,这个时候就会利用到这里。一级引导程序结束后,一些对实时性要求较高的任务和频繁访问的数据就可以放在这里面。

  • 外置 SRAM : 这个需要一级引导程序执行完成后,该部分才可以使用。外置 SRAM 主要用于扩展内存容量,适合用于存储较大的数据缓冲区图形处理数据音频数据、以及其他不需要频繁快速访问的大块数据

  • RTC Slow memory : 访问速度较慢,主要用于睡眠期间存储关键数据。ESP32 进入深度睡眠后,储在深度睡眠期间需要保留的数据,如状态信息、计数器值等。设备唤醒后,可以从 RTC Slow Memory 中读取之前保存的系统状态,以便快速恢复或执行某些特定操作。

  • RTC FAST memory : 访问速度接近常规的 SRAM ,远比 RTC Slow Memory 快,主要用于设备唤醒时刻立即需要的数据或代码

PC机

  1. 一般PC机都是:很小容量的 BIOS(NorFlash)+ 很大容量的硬盘(类似于 NAND Flash )+ 大容量的 DRAM。
  • NOR Flash : 用于存储 BIOS 程序,初始化 NAND Flash 和 DRAM。这个坏了,整个电脑就宣布报废了。
  • NAND Flash : 存储电脑程序,如果这个崩溃了,我们可以在电脑上电时候按住某个按键,例如 F12 进入BIOS 界面。然后电脑插入一个带系统的 U 盘重新烧机。
  • DRAM : 程序运行是各种数据流,或者一些期待快速运行的程序存储在这里面。

参考

  1. C站:存储器的分类整理(SRAM/DRAM/NOR FLASH/Nand FLASH)
  2. C站:ROM、RAM、FLASH、IRAM、IROM、DRAM、DROM等简单介绍
  3. C站:ROM、RAM、IROM、IRAM、DRAM、SRAM、Flash
  4. C站:半导体存储器的分类

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

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

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(一)---UnrealCV获取深度+分割图像

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程使用的环境: ubuntu 22.04 ros2 humblewindows11 UE5.4.3python8 本系列教程将涉及以…

04-正弦波,衰减正弦波,正弦波脉冲冲串的产生

1.设置波形线宽 点击Waveforms a 2.添加Comment 3.添加正弦波 3.1先添加一个电压源 3.2增加波形窗口 3.3右键选择Advanced 3.31原始正弦波 名称含义①DC offset直流偏置②Amplitude幅值③Freq频率④Tdelay延迟⑤Theta衰减⑥Phi相位⑦Ncycles产生正弦波的个数 设置完成后&am…

数据结构与算法——BFS(广度优先搜索)

算法介绍: 广度优先搜索(Breadth-First Search,简称BFS)是一种遍历或搜索树和图的算法,也称为宽度优先搜索,BFS算法从图的某个节点开始,依次对其所有相邻节点进行探索和遍历,然后再…

第T8周:使用TensorFlow实现猫狗识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 文章目录 一、前期工作1.设置GPU(如果使用的是CPU可以忽略这步)2. 导入数据 二、数据预处理1、加载数据2、再次检查数据3. 配置数据集4…

低代码开发的崛起:机遇与挑战

近年来,“低代码”开发平台的迅速崛起,已经成为IT行业中不可忽视的趋势。这些平台承诺让非专业人士也能快速构建应用程序,通过减少代码编写的需求,大幅提高开发效率。对于许多企业而言,低代码开发工具成为了一个加速数…

Real-Time Open-Vocabulary Object Detection:使用Ultralytics框架进行YOLO-World目标检测

Real-Time Open-Vocabulary Object Detection:使用Ultralytics框架进行YOLO-World目标检测 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用Ultralytics框架进行YOLO-World目标检测进行训练进行预测进行验证 扩展目标跟踪设置提示 参考文献 前言 由…

windows核心编程 第14章,虚拟内存:获取系统信息

windows核心编程 第14章,虚拟内存:获取系统信息 14,获取系统消息 文章目录 windows核心编程 第14章,虚拟内存:获取系统信息14.1 系统信息 14.1 系统信息 许多操作系统的值是根据主机而定的,比如页面的大小&#xff0…

无人机挂载垂直抛投灭火弹技术详解

随着城市化进程的加快,高层建筑、森林、化工园区等区域火灾防控难度日益增大。传统消防手段在面对复杂地形或高层火灾时,往往存在响应速度慢、作业难度大、人员安全风险高等问题。无人机挂载垂直抛投灭火弹技术的出现,为高效、安全、精准的火…

conda install vs pip install

1背景 最近使用pyinstaller打包python程序,启动程序的时候,发现了以下的报错信息 Failed to execute script "pyi_rth_pkgres" due to unhandled dll load failed while importing pyexpat后面查阅了相关文档,比如根据stackoverf…

Vue3+Ts封装下拉懒加载自定义指令

文件夹目录如下: 使用方式: <template><divclass="time-line"v-infinite-scroll="{loadMore: loadMoreItems,threshold: 100 // 当滚动到距离底部 100 像素时触发加载}"> </div> </template><script lang="ts" se…

7次多项式对若干个点进行拟合,并生成图像|MATLAB实现

文章目录 拟合运行结果完整代码拟合 MATLAB对数据进行拟合的意义是通过数学模型和统计方法对实际数据进行分析和预测。拟合可以帮助我们理解数据背后的规律和趋势,从而做出科学决策。 拟合的意义 揭示数据的规律 预测未来趋势 数据修正和异常检测 数据分析和模型验证 总之,…

Prometheus+Grafana保姆笔记(2)——监控Spring Boot微服务程序

Prometheus Grafana 的组合在微服务项目中可以完成许多DevOps任务&#xff0c;它们共同提供了强大的监控和可视化功能。 我们陆续介绍Prometheus Grafana 的相关用法。 上一期&#xff0c;我们介绍了PrometheusGrafana的安装&#xff0c; PrometheusGrafana保姆笔记&#…

javaFx桌面程序开发代码示例

程序效果&#xff1a; 弹窗内容&#xff1a; 1.启动类 HelloJavaFX&#xff1a; import javafx.application.Application; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene…

赵本山:你把这玩意借我带上,黄晓娟:驴蒙脸你要带这个?--小品《麻将豆腐》(中3)的台词与解说

赵本山&#xff1a;你把这玩意借我带上&#xff0c;黄晓娟&#xff1a;驴蒙脸你要带这个&#xff1f; --小品《麻将豆腐》&#xff08;中3&#xff09;的台词与解说 &#xff08;接上&#xff09; 黄晓娟&#xff08;饰演小姨子&#xff09;&#xff1a;忘了麻将 赵本山&…

车载客流计数器在公交系统中的应用

车载客流计数器在公交系统中的应用&#xff0c;已成为提升运营效率与服务质量的关键工具。随着大数据概念的深入人心&#xff0c;人们愈发认识到数据在决策中的核心地位。公交车客流统计的引入&#xff0c;正是基于这一认识&#xff0c;旨在为公交车辆的运营组织提供详实、精准…

MySQL:表的设计原则和聚合函数

所属专栏&#xff1a;MySQL学习 &#x1f48e;1. 表的设计原则 1. 从需求中找到类&#xff0c;类对应到数据库中的实体&#xff0c;实体在数据库中表现为一张一张的表&#xff0c;类中的属性对应着表中的字段 2. 确定类与类的对应关系 3. 使用SQL去创建具体的表 范式&#xff1…

【Linux多线程】线程同步 与 生产者消费者模型(无锁化模型)

文章目录 1. Linux线程同步1.1 条件变量1.2 同步概念与竞态条件1.3 条件变量函数示例代码1:示例代码2 1.4 为什么 pthread_ cond_ wait 需要互斥量1.5 条件变量使用规范 2. 生产者消费者模型3. 读者 写者 问题3.1 读写锁3.2 读写锁的相关接口 4. 扩展&#xff1a;无锁化模型4.1…

Python 如何创建和解析 XML 文件

XML&#xff08;可扩展标记语言&#xff09;是一种广泛使用的标记语言&#xff0c;主要用于存储和传输数据。它具有结构化、层次化的特点&#xff0c;常被用作数据交换格式。Python 提供了多种工具和库来处理 XML 文件&#xff0c;包括创建、解析和操作 XML 文档。 一、XML 简…

免费webp转jpeg或gif工具

1、”“添加webp文件&#xff1b;”-“移除webp文件&#xff1b;”>>“开始转换&#xff1b;”X“清空内容。 也可以把想要转换的文件全选&#xff0c;拖进窗口里。 2、默认将webp文件转换成同名的png文件放在原来的文件夹里。如果不是静态图片&#xff0c;则自动尝试转…

案例:ZooKeeper + Kafka消息队列集群部署

目录 消息队列 概念 使用场景 不适宜 适宜 消息队列的特征 存储 异步 异步的优点 同步 为什么需要消息队列 解耦 作用 冗余 扩展性 灵活性 峰值处理能力 可恢复性 顺序保证 Kafka 概念 Kafka技术名词 &#xff08;1&#xff09;Broker &#xff08;2&a…