第12课【嵌入式常见存储器类型】ROM RAM 一次性 DDR双倍速率 Flash

news2024/12/26 14:41:53

目录

  • 存储器
    • 易失性存储器
      • RAM
        • DRAM
          • SDRAM
          • DDR SDRAM
        • SRAM
        • DRAM/SRAM总结
    • 非易失性存储器
      • ROM
        • MASK ROM
        • OTPROM
        • EPROM
        • EEPROM
      • FLASH

存储器

存储器是组成计算机的重要部分,它可以存储数据,能让计算机拥有“记忆”。目前根据断电后,存储的数据是否会丢失的特性,可以将存储器分为两大类:

  • 易失性存储器:这类存储器在断电后,内部存储的数据就会消失。计算机中的内存就属于非易失性存储器
  • 非易失性存储器:这类存储器在断电后,内部存储的数据不会消失。典型例子就是计算机中的硬盘

两者各有特点,易失性存储器的数据存取速度会比非易失性存储器快,而非易失性存储器通常能持久的保存数据。两者通过细分还有以下分类,如图:

在这里插入图片描述

非易失性存储器和易失性存储器速度对比
上面的简介说到【易失性存储器的数据存取速度会比非易失性存储器快】,通常会将计算机中的内存和硬盘对比来解析,主要从结构上分析,内存是控制器+存储颗粒的纯电路结构,而硬盘是控制器+电机+磁头+磁盘的半机械结构,机械结构的速度远跟不上电信号传导的速度。这种差异在不同的测试条件下:顺序读写和随机读写,表现得尤为明显,顺序读写的情况下,两者的速度差距可能只是6-8倍,但是随机读写的情况下,两者的速度差距可能达到十万倍。内存的响应速度可以达到纳秒级,硬盘的响应速度仅仅是毫秒级

易失性存储器

RAM

RAM指的是Random Access Memory 随机访问存储器,随机访问指的是数据的读写速度和其存储位置无关的特性,随机存储器数据存取时间都相同。在过去,计算机数据是通过磁鼓这种顺序存储器来存储的,其存储介质是磁性涂层,涂层附着在圆筒之上,读写数据时,需要按照顺序读写磁性涂层,越靠后的数据读取时间越长,数据的读写速度和其存储位置相关,不能和RAM一样直接访问特定数据块。现在的RAM已经专门用于指代易失性存储器

根据RAM内的存储器件机制的不同,RAM还分为DRAM(Dynamic RAM 动态随机存储器)和SRAM(Static RAM 静态随机存储器)

DRAM

DRAM的核心元件是电容,理想情况下,用充满电荷的电容表示逻辑1,放尽电荷的电容表示逻辑0。而实际情况下,表示1的电容往往会自行放电,导致其电荷量偏低,表示0的电容往往会自行充电,导致其电荷量偏高,所以DRAM的电路中需要定期去刷新每个电容的状态,其名称中的“动态”指的就是定期动态刷新的特性,定期刷新操作会对电荷量超过1/2的电容进行充电,对电荷量低于1/2的电容进行放电,以确保数据的准确性

在这里插入图片描述

SDRAM

DRAM的通讯方式还分为同步和异步两种,两者通过是否需要时钟信号进行区分。同步通讯需要时钟信号,通讯速度相对较快,所以应用范围也比较广。SDRAM指的是Synchronous Dynamic RAM 异步动态随机存储器,采用同步通讯方式,在时钟信号的上升沿,对数据信号进行采样,此时采样到的电平数据是有效数据,具体通讯时序图如下:

在这里插入图片描述

DDR SDRAM

为了进一步提高SDRAM的通讯速度,人们设计出了DDR SDRAM(Double Data Rate SDRAM),其存储特性和SDRAM几乎相同。只不过相对于SDRAM的仅在时钟上升沿对数据进行采样,DDR SDRAM会在时钟上升沿和下降沿都对数据进行采样,这样在一个时钟周期里,DDR SDRAM的数据读写效率会是SDRAM的两倍

而DDR II SDRAM,DDR III SDRAM相对于DDR SDRAM,区别并不大,只是在支持的时钟频率上有所提升

SRAM

与DRAM不同,SRAM的核心元件是锁存器,锁存器在通电情况下,保存的数据可以不丢失,而且也不用频繁刷新充电/放电。其结构如下图

在这里插入图片描述

DRAM/SRAM总结

DRAM和SRAM各有特点,DRAM结构简单,核心元件仅为一个电容,所以它制造时的集成程度较高,同等容量的制造成本也相对较低。但也由于其核心元件为电容的缘故,需要去定期刷新电容的电荷量,这种定期刷新的操作会让存储以外的控制电路等变得复杂,同时刷新操作也会影响数据读写的速度,所以DRAM的读写速度相对较慢

在这里插入图片描述

非易失性存储器

ROM

ROM指的是Read Only Memory 只读存储器,在过去想要长期的保存数据,需要通过难以恢复的手段改变存储器中电路:例如熔断内部线路,掩膜等等,这样的存储器用户很难再次去改变其中的数据,在当时被称为ROM。到后来,技术上已经发展出了EPROM ,EEPROM,Flash等可擦写的存储器,使得任何人都可以轻松修改存储器中的数据,但习惯上依旧把这样的存储器成为ROM,用于持久的存储数据

MASK ROM

MASK ROM是正宗的ROM 只读存储器。在工厂生产MASK ROM时,会通过特殊MASK掩膜工艺将数据保存到MASK ROM中,这种工艺是不可逆的,一旦写入,就不可以修改。其优点是工艺成熟,生产成本低,可以用来存储某些不可修改或不支持修改的数据,例如产品序列号,MAC地址等

OTPROM

OTP ROM指的是One Time Programmable ROM 一次性编程ROM。这种存储器,在生产时,不会写入任何数据,用户使用时,可以通过特殊的编程器向其写入数据,但写入操作只能执行一次,写入数据后,便不可以再修改

EPROM

EPROM指的是Erasable Programmable ROM 可擦除编程ROM。这种存储器属于OTP ROM的升级版,其中的数据可以通过特殊的编程器进行擦出和写入,编程器的原理主要是靠紫外线照射,所以对使用环境的光线有一定要求。目前此ROM已经被EEP ROM取代,很少使用

EEPROM

EEP ROM指的是Electric Erasable Programmable ROM电可擦除编程ROM。这种存储器无需使用特别的编程器,只需要通过内部的控制电路通过电信号就可以进行数据的擦除和写入。而且可以按照字节去修改数据,无需整片擦除

FLASH

Flash被称为闪存,属于可以重复擦出的存储器。但Flash的容量相对于EEP ROM要大得多,而且Flash的数据擦除写入操作,是基于多个字节的,例如会将4096个字节当做一个扇区,以扇区作为单位进行数据读写操作。Flash根据存储单元的特性,分为NOR Flash和NAND Flash。以下为两者特性的对比:

在这里插入图片描述

Nor Flash和NAND Flash在写入数据前都需要对存储单元进行擦除操作,而在其他的特性上,两者差别非常大,是它们之间的数据线和地址线硬件设计上是否分离导致的

Nor Flash的数据线与地址线分离,可以按字节读写数据,并且只要通过地址线输入一个地址,就可以立刻通过数据线获得地址对应的数据,无需任何等待和中间操作,这完全符合CPU的译指需求;而NAND Flash的数据线地址线共用,只能通过块读写数据,通过地址线输入一个地址,并不能马上得到对应的数据,这不符合CPU的译指需求,若代码或数据存储于NAND Flash上,直接进行数据读写操作会非常慢,可以将其加载到速度更快的RAM中,再间接的数据进行所需的操作。相对于RAM,虽然NAND Flash速度上差了很多个数量级,读写单元也不同,但仍可以将NAND Flash看作是一种断电不丢失数据的RAM

在坏块方面,当存在某一个位存储单元失效时,NAND Flash由于只能通过块进行读写,所以损坏位存储单元所在的整个块都会失去作用;对于Nor Flash类似,坏块的影响只波及了所在字节。由于坏块的存在,Flash芯片需要EDC/ECC探测,错误更正算法来确保数据的正确性

在应用领域上,Nor Flash由于其读取速度快,支持随机读写,支持XIP特性等特点,运用在经常需要更新和读取代码的场合,如嵌入式设备,机顶盒等固件存储。NAND Flash由于写入速度快,支持连续读写,制造成本低等特点,被运用在U盘,固态硬盘制造等领域

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

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

相关文章

TiDB v7.1.0 版本 Resource Control体验

作者: Ming 原文来源: https://tidb.net/blog/8abfaa25 简介 近期迎来了 TiDB v7.1.0 版本,也是2023年首发的LTS(Long-Term Support Release)版本,相比于之前的 v6.5.0 LTS版本已经过去了很长时间&…

Android PagerSnapHelper改造RecyclerView为ViewPage,kotlin

Android PagerSnapHelper改造RecyclerView为ViewPage&#xff0c;kotlin <?xml version"1.0" encoding"utf-8"?> <androidx.recyclerview.widget.RecyclerView xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tool…

Spring Web vs Spring Webflux

当你需要构建Web应用程序时&#xff0c;Spring Web 和 Spring Webflux 是Spring生态系统中的两个框架&#xff0c;但它们之间有一些关键区别。 Spring Web 是一个传统的Web框架&#xff0c;它构建在Servlet API之上。它旨在处理阻塞式I/O&#xff0c;即线程在从数据库或其他服务…

CTFHub | 过滤cat

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

Springboot读取配置文件的方式以及多环境读取的方式

Springboot读取配置文件的方式以及多环境读取的方式 一.首先介绍一下读取配置文件中的值的方式1.Value注解2.ConfigurationProperties注解赋值3.使用 Environment 读取配置文件 多环境读取 在项目中我们可能需要灵活的配置一些参数&#xff0c;就会将这些参数写到yaml文件或者p…

C++技能系列 ( 4 ) - 深入理解C++临时对象【解析与提高性能手段】

系列文章目录 C技能系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream w…

Ubuntu设置虚拟机共享目录/mnt/hgfs下无文件显示相关问题归纳

文章目录 问题一&#xff1a;/mnt目录下无hgfs文件夹问题二&#xff1a;/mnt/hgfs 文件夹为空 问题一&#xff1a;/mnt目录下无hgfs文件夹 问题背景&#xff1a; 在打开共享目录A的时候&#xff0c;突然改变共享目录&#xff0c;也就是从A改到了B&#xff0c;但是资源管理器还…

TiDB v7.1.0版本 相关(部署、在线扩容、数据迁移)测试

作者&#xff1a; tomxu 原文来源&#xff1a; https://tidb.net/blog/69083bca TiDB v7.1.0版本 相关&#xff08;部署、在线扩容、数据迁移&#xff09;测试 一、服务器信息参数 | 序号 | 服务器型号 | 主机名 | 配置 | | IP地址 | 用户名 | 密码 | | -- | --------- | …

chatgpt赋能python:Python怎么过滤异常值-降噪数据的利器

Python怎么过滤异常值 - 降噪数据的利器 什么是异常值 在数据分析和机器学习领域&#xff0c;我们常常需要对数据进行预处理&#xff0c;其中一个常见的问题就是异常值。也可以称为噪声数据或离群点&#xff0c;指数据集中与其他值相差较大的点。通常这些异常值出现的原因有很…

6.10 面向对象抽象

抽象类 1 概念 Java中可以定义被abstract关键字修饰的方法,这种方法只有声明,没有方法体,叫做抽象方法. Java中可以定义被abstract关键字修饰的类,被abstract关键字修饰的类叫做抽象类 如果一个类含有抽象方法,那么它一定是抽象类 抽象类中的方法实现交给子类来完成 2 抽象…

MsSqlServer配置管理器TCP/IP属性

TCP/IP 属性&#xff08;“IP 地址”选项卡&#xff09; 使用 “TCP/IP 属性&#xff08;‘IP 地址’选项卡&#xff09;” 对话框&#xff0c;可以配置特定 IP 地址的 TCP/IP 协议选项。 只有选中 “IP All” &#xff0c;才能一次配置所有地址的 “TCP 动态端口” 和 “TCP…

Linux学习[16]bash学习深入2---别名设置alias---history指令---环境配置相关

文章目录 前言1. alias2. history3. 环境配置相关总结 前言 linux学习15里面简单提了一下alias指令&#xff0c;就表明它是一个别名的作用&#xff0c;这节就展开来写一下。 同时上一节一笔带过的history指令&#xff0c;这一节也进行例子的演示记录。 最后是环境相关的配置&a…

高斯过程(Gaussian Process)回归预测,例子,代码及可视化展示

高斯过程指的是一组随机变量的集合&#xff0c;这个集合里面的任意有限个随机变量都服从联合正态分布。&#xff08;联合正态分布是指多个随机变量的联合分布满足正态分布。联合分布是指多个随机变量同时满足的概率分布&#xff0c;一个常见的例子是考虑两个随机变量&#xff1…

【2023年最新】提高分类模型指标的六大方案详解

文章目录 数据增强特征选择调整模型参数模型集成迁移学习模型解释完结 当今&#xff0c;机器学习模型得到了广泛的应用&#xff0c;其中分类模型是其中最常见和重要的一种。在实际应用中&#xff0c;如何提高分类模型的指标&#xff0c;使其在不同场景下表现更佳并且具有更好的…

【Web网页制作】影视主题网页制作web页面开发(附源码)

【写在前面】 其实之前我就写过一篇关于我的家乡的页面&#xff0c;也有不少网友和我私下反馈&#xff0c;让我多出一些关于页面制作的&#xff0c;于是乎我就今天晚上抽出点时间来整理一篇关于影视内容的web页面制作&#xff0c;希望能够得到大家的喜欢。 【涉及内容】 web网页…

什么是进程?程序又是什么?程序运行在操作系统来看是怎么做的?

相信很多人都看到过课本上写的进程的概念&#xff0c;那么真的理解了吗&#xff1f; 课本上是这样讲的&#xff0c;课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等。 那么进程到底是什么&#xff1f;我先把内核层面上的概念拿出来&#xff1a;内核观点&a…

【算法基础】基础算法

快速排序 模板题&#xff1a;785. 快速排序 - AcWing题库 思路&#xff1a; 定义一个x&#xff08;一般喜欢用中间的&#xff09;&#xff0c;我们快速排序&#xff0c;让x左边的都比它小&#xff0c;同时让右边的都比它大。然后像二分一样不断细分&#xff0c;缩小范围进行同…

flink主要组件及高可用配置

背景 flink不论运行在哪种环境&#xff0c;例如Yarn&#xff0c;Mesos&#xff0c;Kebernute以及独立集群&#xff0c;每个应用都会包含重要的几个组件&#xff0c;本文就来讲述下flink的主要组件以及如何实现flink的高可用配置 flink主要组件 如图所示&#xff0c;flink主要…

TiDB 7.1 资源管控特性试用

作者&#xff1a; 啦啦啦啦啦 原文来源&#xff1a; https://tidb.net/blog/3ddb423a 一.背景 印象里 2022 年初的时候就有小伙伴在 asktug 提出 TiDB 未来是否会有多租户功能的问题了&#xff0c;没想到这么快就已经 GA 了。资源管控特性&#xff08;Resource Control&…

【论文阅读】Weighted Boxes Fusion(WBF)模型融合原理解读

论文地址&#xff1a;https://arxiv.org/pdf/1910.13302.pdf 代码地址&#xff1a;GitHub - ZFTurbo/Weighted-Boxes-Fusion: Set of methods to ensemble boxes from different object detection models, including implementation of "Weighted boxes fusion (WBF)"…