当前位置: 首页 > news >正文

嵌入式系统存储体系

一、存储系统概述

主要分为三种:高速缓存(cache)、主存和外存。
在这里插入图片描述

二、高速缓存Cache

  1. 高速缓冲存储器中存放的是当前使用得最多得程序代码和数据,即主存中部分内容的副本,其本身无自己的地址空间。
  2. 在嵌入式系统中Cache全部集成在嵌入式微处理器内,一般32位的微处理器内置。
  3. 可分为数据Cache、指令Cache(如哈弗架构)或者混合Cache(如冯诺伊曼架构)。不同处理器其Cache大小不一样。
  4. CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在就称为Cache命中,否则称为Cache未命中。则对主存储器进行操作,并将有关内容写入Cache。
  5. 写入Cache有2种方法:
    a. 通写(Write Through):Cache与对应内存内容同步更新。
    b. 回写(Write Back):只有写入Cache内容移除时才更新对应内存内容。(此种方式性能最好,但是存在系统掉电的存储问题)。
    在这里插入图片描述
    Cache结构框图

三、主存

  1. 主存是处理器能直接访问的存储器,用来存放系统和用户的程序和数据。
  2. 嵌入式系统的主存可位于SOC内和SOC外,片内存储器存储容量小、速度快、片外存储器容量大。
  3. 可以做主存的存储器有:
    ROM类(存放代码和常数数据):Nor Flash、EPROM、E2PROM、PROM等
    RAM类:SRAM、DRAM、SDRAM等

静态随机存取存储器SRAM
存储信息:六管基本存储电路,功耗低,不需要刷新
典型芯片规格:2114(1KX4) ,6116(2KX8),6264(8KX8),62128(16KX8),62256(32X8)
在这里插入图片描述
动态随机存取存储器DRAM

  1. 存储信息的基本单元(1位)电路可采用4管、3管和单管电路。
  2. 为维持动态存储单元所存储的信息,必须不断刷新。
  3. 与SRAM不同的是:节省外部引脚,同样容量的DRAM外部地址线引脚是SRAM一半。DRAM采用行/列地址选通,将地址通过内部分成2路。
  4. DRAM控制器:解决刷新和多路,DRAM不能和CPU直接通信,需要DRAM控制器来连接。
    在这里插入图片描述

SDRAM(Synchronous DRAM,同步DRAM)

  1. CPU和RAM共享相同的时钟周期,以相同的速度同步工作,即一个时钟周期内存工作一次。
  2. 基于双存储器结构,内含两个交错的存储阵列,读取效率得到成倍提高,是DRAM中速度最快的一种。
  3. DDR SDRAM( Double Date Rate SDRAM,双倍传输速率的SDRAM)在一个时钟周期内内存可以工作两次,因而理论上是SDRAM的2倍,但实际上达不到。

四、外存

外存是处理器不能直接访问的存储器,用来存放用户的各种信息,容量大。
在嵌入式系统中常用的外存有:

  1. NandFlash
  2. DOC (Disk On Chip)
  3. CF(Compact Flash)
  4. SD(Secure Digital)
  5. MMC(Multi Mediacard)

电子盘

  1. 电子盘采用半导体芯片来存储数据,具有体积小、功耗低和极强的抗震性等特点。
  2. 在嵌入式系统中普遍采用各种电子盘作为外存。
  3. 常用的电子盘有:NandFlash、MMC、SD、Memory Stick、CF、SM、DOC等。

五、NandFlash和NorFlash对比

NandFlash: 逻辑与,具有容量大、回写速度快、芯片面积小等特点,主要用于外存。
NorFlash: 逻辑或,具有随机存储速度快、电压低、功耗低、稳定性高等特点,主要用于主存。
在这里插入图片描述
NandFlash外部接口示例
在这里插入图片描述
NandFlash 内部架构图示例
在这里插入图片描述

http://www.lryc.cn/news/143857.html

相关文章:

  • 【Java架构-版本控制】-Gitlab安装
  • 关于disriminative 和 generative这两种模型
  • 关于Java中@Transient主键的作用的一些介绍
  • 死信队列理解与使用
  • tomcat 启动 java war 包
  • leetcode分类刷题:滑动窗口(三、两个序列+窗口定长类型)
  • 一个简单的web应用程序的创建
  • 分类行为的排斥作用
  • 表现层消息一致性处理
  • 【C语言进阶(8)】自定义数据类型1:结构体
  • 【Spring Boot】以博客管理系统举例,完整表述SpringBoot从对接Vue到数据库的流程与结构。
  • TabView 初始化与自定义 TabBar 属性相关
  • 线程池等待对象回调函数执行(CreateThreadpoolWait)
  • npm yarn pnpm npx nvm 命令怎么区分怎么用
  • 解锁市场进入成功:GTM 策略和即用型示例
  • 深度学习12:胶囊神经网络
  • unity 提取 字符串中 数字 修改后返回 字符串
  • GWO-LSTM交通流量预测(python代码)
  • mysql建表问题
  • RocketMQ:一个纯java的开源消息中间件--开发测试环境搭建
  • MySQL-Centos下MySQL5.7安装教程
  • nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)
  • bh004- Blazor hybrid / Maui 使用 BootstrapBlazor UI 库快速教程
  • k8s挂载映射操作详解
  • DevOps团队如何提高Kubernetes性能
  • springboot整合modbus4J(二)
  • ROS2之topic
  • C语言数值表示——进制、数值存储方式
  • linux————keepalived+LVS(DR模式)
  • 8月28日,每日信息差