IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F429入门(十九):ROM RAM SRAM FLASH -> 正文阅读

[嵌入式]STM32F429入门(十九):ROM RAM SRAM FLASH

存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有 了存储器计算机才具有记忆功能。

一、存储器的种类

存储器按其存储介质特性主要分为“易失性存储器”和“非易失性存储器”两大类。 其中的“易失/非易失”是指存储器断电后,它存储的数据内容是否会丢失的特性。由于一 般易失性存储器存取速度快,而非易失性存储器可长期保存数据,它们都在计算机中占据着重要角色。在计算机中易失性存储器最典型的代表是内存非易失性存储器的代表则是硬盘

易失性存储器可以理解为是我们电脑的内存条(一般都是DRAM,再嵌入式用的是SRAM),非易失性存储器可以理解为是电脑中的机械硬盘,他们传输的速率是有着很大的区别的。再优秀的CPU也不可能一直在等着机械硬盘的传输完成,所以我们需要内存条相互协调。

二、RAM(Random Access Memory)

随机存储器,所谓―随机存取,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。根据 RAM 的存储机制,又分为动态随机存储器 DRAM(Dynamic RAM)以及静态随机存储器 SRAM(Static RAM)两种。

(1)DRAM的存储单元结构——使用电容的电荷来表示数据

?

电容本身具有放电特性,所以DRAM有个功能,会定时充电,维持正确数据。动态随机存储器 DRAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0,但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,因此 它需要定期刷新操作,这就是“动态(Dynamic)”一词所形容的特性。

刷新操作会对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电;若电量小于 1/2, 则认为其代表 0,并把电容放电,藉此来保证数据的正确性。

SDRAM(Synchronous DRAM):根据DRAM的通讯方式,又分为同步和异步两种,这两种方式根据通讯时是否需要使用时钟信号来区分。比如下面的利用时钟同步的通讯时序,它在时钟的上升沿表示有效数据。这种通讯速度更快。

DDR SRAM(Double Data Rate SDRAM):

这是为了进一步提高SDRAM的通讯速度所设计的。它的存储特性与 SDRAM 没有区别,但 SDRAM 只在上升沿表示有效数据, 在 1 个时钟周期内,只能表示 1 个有数据;而 DDR SDRAM 在时钟的上升沿及下降沿各表示一个数据,也就是说在 1 个时钟周期内可以表示 2 数据,在时钟频率同样的情况下,提 高了一倍的速度。至于 DDRII 和 DDRIII,们的通讯方式并没有区别,主要是通讯同步时钟的频率提高了。 当前个人计算机常用的内存条是 DDRIII SDRAM 存储器,在一个内存条上包含多个 DDRIII SDRAM 芯片。

种类特点
普通SDRAM在上升沿时同步数据
DDRII SDRAM在上升沿及下降沿都同步数据,时钟极限频率800MHz
DDRIII SDRAM在上升沿及下降沿都同步数据,时钟极限频率1600MHz

?(2)SRAM的存储单元结构——以锁存器来存储数据

?

这种电路结构不需要定时刷新充电,就能保持状态(当然,如果断电了,数据还是会丢失的),所以这种存 储器被称为“静态(Static)”RAM。

SRAM 根据其通讯方式也分为同步(SSRAM)异步 SRAM,相对来说,异步 SDRAM 用得较多。

综上,我们可以对DRAM和SRAM进行对比:

对比 DRAM 与 SRAM 的结构,可知 DRAM 的结构简单得多,所以生产相同容量的存 储器,DRAM 的成本要更低,且集成度更高。而 DRAM 中的电容结构则决定了它的存取 速度不如 SRAM。

所以在实际应用场合中,SRAM一般只用于CPU内部的高速缓存(Cache),而外部扩展的内存一般用DRAM。

同步与异步存储器:(根据有无时钟线划分)

同步方式:

?

?异步方式:

?三、ROM(Read Only Memory)

种类特性
MASK ROM出厂时固化,不可修改
OTPROM用户可写入一次,之后不可修改
EPROM可重复擦写,需要使用专用紫外线照射设备擦除
EEPROM可重复擦写,电擦除,使用方便

四、FLASH

FLASH 存储器又称为闪存,它也是可重复擦写的储器。它的容量一般比 EEPROM 大得多,且在擦除时,一般以多个字节为 单位。如有的 FLASH 存储器以 4096 个字节为扇区,最小的擦除单位为一个扇区。根据存 储单元电路的不同,FLASH 存储器又分为 NOR FLASHNAND FLASH。FLASH在写入新数据之前,必须先将原来的数据擦除,这一点跟硬盘不相同,它需要将此块的数据全都置1,之后我们再写入数据0。

NOR FLASH与NAND FLASH的对比:

我们平时讲的手机内存,256GB等概念,都在说的是NAND FLASH。

NOR 与 NAND 的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇区/块”为单位的。而 NOR 与 NAND 特性的差别,主要是由于其内部“地址/数据线”是否分开导致的。

为了区分上面的两大FLASH,我们首先来了解一下什么是XIP:

XIP就是WINCE XIP KERNEL(立即执行特性),是CE核心部分,XIP是为eXecute In Place的缩写,在微软的CE定义中,这块区域存放的是以非压缩格式存放,不需加载,由Bootloader直接调用执行。

在嵌入式中,我们可以说是芯片内执行,指应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。也就是nor flash不需要初始化,就可以直接在flash里面执行代码。这里面所说的并不是在存储器内执行,而是指CPU的取值模块可以直接nor flash中把指令取出来,供后面的译码和执行模块使用。

NAND FLASH器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。它的时序比较复杂,所以一般CPU最好集成NAND控制器。另外由于NAND FLASH没有挂接在地址总线上,如果想以它作为系统地启动盘,就需要CPU具有特殊的功能。

所以我们再来继续分析以上两种flash:

由于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要求,所以假如 NOR 上存储了代码指令,CPU 给 NOR 一个地址,NOR 就能向 CPU 返回一个数据让 CPU 执行,中间不需要额外的处理操作。 而由于 NAND 的数据和地址线共用,只能按“块”来读写数据,假如 NAND 上存储 了代码指令,CPU 给 NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。

若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。所以在 功能上可以认为 NOR 是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM 有区别, 且读写速度比 RAM 要慢得多。

FLASH 的擦除次数都是有限的(现在普遍是 10 万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。由于 NAND 通常是整块擦写,块内有一位失效整个块就会失效,这被称为坏块,而且由于擦写过程复杂,从整体来说 NOR 块块更少,寿命更长。 由于可能存在坏块,所以 FLASH 存储器需要“探测/错误更正(EDC/ECC)”算法来确保数据的正确性

由于两种 FLASH 存储器特性的差异,NOR FLASH 一般应用在代码存储的场合,如嵌 入式控制器内部的程序存储空间。而 NAND FLASH 一般应用在大数据量存储的场合,包括 SD 卡、U 盘以及固态硬盘等,都是 NAND FLASH 类型的。

最后总结:

NOR FLASH:

  1. 能像RAM一样寻址:带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

  2. 用户可以直接运行装在在NOR FLASH里面的代码:NOR Flash有自己的数据和地址总线,因此可采用类似RAM的随机访问。各单元之间是并联的,对存储单元进行统一编址(有独立地址线),所以可以随机访问任意一个字。

    应用程序可以直接在NOR Flash内运行(应用程序的Code和RO段可以直接在NOR Flash上运行,只需要把RW段和ZI段拷贝到RAM中运行即可),不必再把代码读到系统RAM中去。

    但NOR Flash不能像RAM以字节改写数据,只能按页依次写数据,故NOR Flash不能代替RAM。 原文链接:详述NOR Flash和NAND Flash区别_御风而行的蚂蚁的博客-CSDN博客

  1. 有更快的读取速度,处理小数据量的io操作速度更快。

  2. 擦除即可整页擦除,也可以整块擦除。擦写次数是10万次,不适合频繁擦写:Flash檫写的次数都是有限的,Flash写入和擦除数据时会导致介质的氧化降解。不能对Flash的某个特定的区域反复进行擦写操作。

  3. 随机存储介质,适合做程序存储并XIP。

  4. 在1-4MB的小容量时具有很高的成本效益

  5. 可靠性相对性更高

  6. 存储密度较低

NAND FLASH:

  1. 有更快的写入和擦除速度:页是读写数据的最小单元(512B),块是擦除数据的最小单元(8kb)

  2. NAND的擦鞋次数是100w次:通常NAND Flash的可擦写次数高于NOR Flash,但是由于NAND Flash通常是整块檫写,块内的页面中如果有一位失效整个快就会失效,而且由于擦写过程复杂,失败的概率相对较高,所以从整体上来说NOR Flash的寿命较长。

  3. 连续存储介质,适合做数据存储

  4. 容量较大,成本较低

  5. 可靠性相对较低

  6. 坏块随机分配,需要进行坏块管理:在NAND Flash中,由于坏块是随机分布的,因此需要进行扫描并将坏块打上标记。坏块的存在使得向NAND Flash写入信息需要相当的技巧,因为绝不能向坏块写入,这意味着在NAND Flash上自始自终都必须进行虚拟映射

  7. 存储密度较高

  8. 使用NAND FLASH时,必须先写入驱动程序,才能继续执行其他操作。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:03:16  更:2021-10-01 17:03:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:28:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码