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. 总结

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

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

  1. 内存(RAM ROM)外存(硬盘 闪存)

    电脑.手机上的RAM.ROM.内存.闪存.运行内存.机身内存.存储空间等都"傻傻分不清楚",后来花了不少时间,才把这几者的来龙去脉分清楚. 总的来说上面那些算是存储器,从存储器的材 ...

  2. RAM ROM FLASH的区别

    文章目录 一.ROM 程序存储器 二.Falsh存储器 三.RAM随机访问存储器 四.三者之间的区别 作为一个初学单片机的初学者,常常把ROM RAM FLASH这几个都单词搞得晕头转向的.由此记下此 ...

  3. 【嵌入式基础小知识】Nand Flash VS Nor Flash

    没有胜利者,我们只是活下来了,从此便是无尽的噩梦. – 塞尔克(萨拉热窝围城战幸存者) 一.概述 在嵌入式领域,我们经常会遇到 Flash 这个存储介质,通常是用来存储程序或者数据的. 但是如果细究起 ...

  4. RAM,ROM,FLASH

    一:keil编译成功时显示的data.xdata.code 程序编译成功时会在信息框内显示data.xdata.code各被占了多少字节,keil工具可以设置变量默认放在哪个存储区,默认是data d ...

  5. 浅析嵌入式开发中的RAM和ROM

    在嵌入式开发中常常会遇到RAM,ROM,flash,内存等等一些问题,先梳理一下备用. 1.ROM:只读存储器.优点:容量大,掉电不丢失:缺点:读取速度慢.事实上,"只读"定义不准 ...

  6. 内存,RAM(DDR),ROM(EEPROM、flash),存储卡(emmc,sd,tf)以及Cache的区别与联系

    参考:内存,RAM,ROM,Cache的区别与联系 作者:一只青木呀 发布时间:2020-09-26 09:55:40 网址:https://blog.csdn.net/weixin_45309916 ...

  7. 内存专题--各种RAM/ROM/Cache/Flash等内存概念与区别

    内存,或内存储器,又称为主存储器,是关系到计算机运行性能高低的关键部件之一,无疑是非常重要的.为了加快系统的速度,提高系统的整体性能,我们看到,计算机中配置的内存数量越来越大,而内存的种类也越来越多. ...

  8. 对RAM,ROM,NOR/NAND FLASH等常见内存设备类型的理解

    对RAM,ROM,NOR/NAND FLASH等常见内存设备类型的理解 RAM DRAM SDRAM DDR SDRAM SRAM ROM EEPROM FLASH NOR FLASH NAND FL ...

  9. 内存、RAM、ROM、Cache的关系

    1.内存 内存在电脑中起着举足轻重的作用.内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE). 2.RAM RAM:随机存取存储器(random a ...

  10. 有关计算机存储器的几个名词的概念和辨析(内存,外存,RAM,ROM,磁盘等)

    自己总结: 1.内存不一定都是RAM,ROM也可以是内存的一部分. (ROM是只读存储器(Read-Only Memory),也是计算机内部存储器中的一种,而硬盘是外部存储器) 内部存储器 内部存储器 ...

最新文章

  1. 替代离线RL?Transformer进军决策领域,「序列建模」成关键
  2. 360压缩电脑版_360压缩国际版
  3. 图像纹理合成及纹理传输算法学习(附源码)。
  4. [UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库
  5. python笔记之for循环
  6. redux 存值 及 取值 的操作
  7. Linux+CLion+cmake 动态链接库的使用
  8. Entity Framework Core 软删除与查询过滤器
  9. go rpc安装方法
  10. Eclipse中设置自动生成的author,date等注释
  11. 经典算法——单向链表反转
  12. linux 远程桌面 命令,linux 命令 远程连接
  13. vi - vim的一些遗忘点
  14. 财务自由之路读书笔记二
  15. 天天生鲜商品详情页HTML+css
  16. matlab ofdm系统 过采样和欠采样,过采样和欠采样
  17. Docker文档笔记
  18. Centos下查看和修改网卡Mac地址
  19. 责任编辑-www.saierhaowaigua.net
  20. PostgreSQL 源码解读(109)- WAL#5(相关数据结构)

热门文章

  1. 准备重装系统?且慢,学会这一招,可以解决大小故障。
  2. java获取屏幕_抓取当前屏幕信息
  3. python cnn 实例_学习python的算法-Faster RCNN算法复现
  4. Linux 命令(151)—— pwd 命令
  5. eaysUI版本兼容问题
  6. 计算机主机平时怎么保养,电脑如何保养和维护?电脑日常保养和维护技巧
  7. 网络怎么改变计算机,怎么更改电脑上网IP地址
  8. IOT技术专家伏治军谈IOT技术发展趋势
  9. “网安三人行”盘点:软件供应链安全的那些事儿
  10. 什么是`前端路由`?什么时候使用`前端路由`?`前端路由`存在哪些优缺点?