【嵌入式基础】内存(Cache,RAM,ROM,Flash)

1. 前言

最近在看赛普拉斯的一款芯片CYW8019规格书,里面有好几个内存的关键字(如下图的右上方),本文将聊它们的含义和作用。
在这里插入图片描述

2. Cache

Cache是集成在CPU内部的极高速缓存。一般来讲,它的访问速度几乎可以媲美CPU。CPU在访问Cache的时候几乎不会浪费多少时间,不过,速度的提升是用容量为代价的,容量很小。

为什么需要Cache ?当CPU访问内存的时候,并不是立刻就能访问到它想访问的内存,而是有个“WaitState”的过程。那么,把常用的数据放在Cache中,CPU在访问的时候直接访问Cache就行了,不用耗费时间去访问内存了。

在读内存的时候,CPU先读Cache,看看有没有想要的数据的“副本”,有的话直接读取,没有的话在去读内存。写内存时,CPU先将数据写在Cache中,Cache写满后更新到内存中,同时清空Cache。

3. RAM

RAM(Random Access Memory)随机存储器。内容可按需随意存取,且存取的速度与存储单元的位置无关,掉电丢数据。

按照存储信息的不同,分为静态堆积存储器(Static RAM,SRAM)和动态随机存储器(Danamic RAM,DRAM)。

SRAM 不需要刷新电路既能保存数据;DRAM每隔一段时间,需要刷新充电一次,否则内部的数据会消失。

SRAM具有较高性能,但是集成度低,既相同容量的DRAM内存可设计成较小的体积,而SRAM却需要很大的体积,且功耗较高。

SRAM速度非常快,是目前读写最快的存储设备了,而且不需要刷新。缺点是价格比较贵,所以只在要求很苛刻的地方使用,比如CPU的一级缓存,二级缓存。
DRAM保留数据的时间很短,速度也比SRAM慢,不过还是比任何的ROM都要快,价格上比SRAM便宜很多,计算机内存就是DRAM的。

SDRAM(Synchronous DRAM)即同步动态随机存储器。同步是指工作需要同步时钟,内部命令的发送与数据传输都已它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性一次存储,而是自由指定地址进行数据读取。

DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM基本是一样的,不同之处在于它可以在一个时钟读取两次数据,这样就使得传输速度加倍了。这是目前电脑用得最多的内存,而且它有成本优势。

还有一种是PSAM,Pseudo static random access memory,指的是伪静态随机存储器。内部的内存颗粒跟SDRAM的颗粒相似,但外部的接口跟SRAM相似,不需要SDRAM那样负责的控制器和刷新机制,PSRAM的接口跟SRAM的接口是一样的。

4. ROM

ROM(Read-Only Memory)只读存储器,是一种只能读出事先存储的数据的固态半导体存储器 ,掉电不丢数据。ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是:PROM是一次性的,也就是软件烧录后,就无法修改了,这是早期产品了,现在已经不可能使用了;而EPROM是通过紫外线的照射擦除原先的程序,是一种通用的存储器。
还有一种EEPROM是通过电子擦除,价格很高,写入时间很长。手机软件一般放在EEPROM中。

5. Falsh

闪存,是一种长寿命的非易失性(在断电情况下不丢数据)的存储器,数据删除不是以单个字节为单位而是以固定的区块为单位(注意:NOR Flash为字节存储),区块一般为256K到20MB。

Flash主要有两种:NOR Flash 和 NAND Flash。

任务Flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除操作。NAND Flash擦除十分简单,而NOR Flash则要求在进行擦除前要将目标块内所有的位都写1。

5.1 NOR Flash

NOR Flash的读取和我们常见的SDRAM的读取是一样的,用户可以直接运行装载在NOR Flash里面的代码,这样可以减少SRAM的容量从而节约成本。

一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息。

5.2 NAND Flash

NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价,在NAND Flash上不能运行代码。

一般大容量的用NAND Flash。

5.3 NOR Flash和NAND Flash性能对比

  • NOR器件擦除时是以64 ~ 128KB的块进行的,执行一个写入/擦除操作的时间为5秒;NAND器件是以8 ~ 32KB的块进行的,执行相同的操作最多只需要4ms。
  • NOR的读速度比NAND要稍快些。
  • NOR可以在片内执行程序。
  • NAND的写入速度要比NOR快很多。
  • 大多数写入操作需要先将进行擦除操作,NOR要求在进行擦除前先将目标块内所有的位写为1。
  • NAND的擦除单元更小,相应的擦除电路更少。

5.4 NOR Flash和NAND Flash接口对比

  • NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易存取其内部的每个字节。
  • NAND Flash使用复杂的I/O来串行地存取数据,各个产品或厂商的方法可能各个不相同。8个引脚用来传送控制、地址和数据信息。

6. 总结

作为合格的嵌入式工程师,内存的概念及应用场景是必需了解的知识点。了解内存的概念,可以更方便得熟悉整个系统的架构。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强人电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值