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

一、存储器的种类

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

易失性存储器可以理解为是我们电脑的内存条(一般都是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时,必须先写入驱动程序,才能继续执行其他操作。

STM32F429入门(十九):ROM RAM SRAM FLASH相关推荐

  1. 单片机中的ROM,RAM和FLASH的作用

    本文部分参考自:http://blog.sina.com.cn/s/blog_98ca54fc01017y4t.html 并在此基础上进行整理,添加了关于flash的问题. 之前从较为抽象的角度介绍了 ...

  2. 路由器中Rom/Ram/NVRAM/FLASH的区别

    路由器采用了以下几种不同类型的内存,每种内存以不同方式协助路由器工作. A.只读内存(ROM).  B.闪存(FLASH).  C.随机存取内存(RAM).  D.非易失性RAM(NVRAM). 1. ...

  3. 【硬创邦】跟hoowa学做智能路由(十):扩充RAM和FLASH

    前几篇好多人都说路由器的内存太小了,FLASH太小了怎么办.那我们这章就介绍下怎么给路由器扩充内存和存储器. 站在玩家兴趣身份上来说,这章的内容会让以后更精彩,操作技术上也存在一些难度,请大家认真操作 ...

  4. 安卓Andriod使用入门(十九)【网络视频播放器】

    有时侯明白人的一生当中,深刻的思念是维系自己与记忆的纽带.它维系着所有的过往.悲喜,亦指引我们深入茫茫命途.这是我们宿命的背负.但我始终甘之如饴地承受它的沉沉重量,用以平衡轻浮的生. MainActi ...

  5. 【Electron】Electron开发入门(九):添加Flash插件

    一.Electron官方开启Flash插件说明:https://electronjs.org/docs/tutorial/using-pepper-flash-plugin 看了这篇文章,并且各种操作 ...

  6. WebGL入门(十九)-三维视图通过调整正射投影矩阵/盒状可视空间实现三角形的显示与消失

    三维视图正射投影矩阵 1.demo效果 2.相关知识点 2.1 正射投影 2.2 Matrix4.setOrtho()函数 3. demo代码 1.demo效果 如上,通过上下键调整正投影矩阵参数fa ...

  7. 常用存储器(ROM/RAM/FLASH/SDRAM/SRAM/DDR/EEPROM/emmc)

    单片机 ROM /RAM/FLASH区别 1.ROM,RAM和FLASH在单片机中的作用 ROM--存储固化程序的(存放指令代码和一些固定数值,程序运行后不可改动) c文件及h文件中所有代码.全局变量 ...

  8. ROM、RAM和FLASH的区别是什么?SRAM、DRAM、PROM、EPROM、EEPROM

    ROM.RAM和FLASH的区别是什么? SRAM.DRAM.PROM.EPROM.EEPROM 一.性能对比 1.ROM和RAM指的都是半导体存储器,ROM在系统停止供电的时候仍然可以保持数据,而R ...

  9. ROM、RAM、Flash的区别

    关键的一些名词: PROM,EPROM,EEPROM,SPD,SRAM,DRAM,RDRAM,SDRAM,DDRSDRAM,NORFlash,NADNFlash,HDD,SSD,SLC,MLC,TLC ...

最新文章

  1. Linux 下安装cnpm淘宝镜像命令npm
  2. 图片上加动图怎么弄_用PS把千张图片拼成心爱的人的样子,只需三步!
  3. [moka同学笔记]redis练习Demo
  4. android蓝牙打印机
  5. 无穷级数求和7个公式_亿图在线公式编辑器使用方法入门篇
  6. json vs obj
  7. iOS开发之网络编程--6、NSURLSessionConfiguration笔记
  8. ARCore-Unity3d教程3 - Unity Demo发布
  9. hadoop 权限错误 Permission denied: user=root, access=WRITE, inode=/:hdfs:super
  10. SDRAM控制器设计(9)用读写FIFO优化及仿真验证
  11. 3dMax 闪退未保存的解决方案
  12. php三D立体模拟,【HTML5】3D模型--百行代码实现旋转立体魔方实例
  13. 企业移动互联网营销的最佳切入点在哪里?
  14. oracle实例由,Oracle 数据库的实例由( )组成
  15. android webview 无法显示图片,Android解决WebView加载微信公众号文章不显示图片
  16. 使用拦截器防止表单重复提交
  17. 征服统计学08|天天在用的P值到底是个啥?
  18. 这些大文件传输工具总结,建议外贸人士收藏
  19. GPU阵列 安特卫普大学展示桌面超级计算机Fastra II
  20. 用Python找回微信撤回信息,(来自程序员的小骄傲)就算你撤回我也看的到~

热门文章

  1. 软件设计---抽象类与接口
  2. 不错的ChatGPT Prompts/调教指南
  3. 初出茅庐:主程的历练
  4. Microcontrollers and Embedded Systems
  5. 电子邮件营销做好客户分类很关键
  6. 营销技巧 | 五步推销法,助你成王者
  7. 70进货卖100利润是多少_我用85元钱进货,卖了100元,请问利润是多少,它的利润是百分之几,用什么方法计算方式...
  8. 实习笔记 —— Spring基础
  9. 看了《墨攻》,感觉还不错
  10. Python态势感知系统(附源码)