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

【嵌入式系统设计师(软考中级)】第二章:嵌入式系统硬件基础知识(2)

文章目录

  • 3.嵌入式系统的存储体系
    • 3.1 存储系统的层次结构
    • 3.2 内存管理单元(MMU)
    • 3.3 RAM和ROM的种类
      • 3.3.1 RAM类型对比
      • 3.3.2 ROM类型对比
    • 3.4 高速缓存(Cache)
    • 3.5 其他存储设备
      • 3.5.1 新型存储技术
      • 3.5.2 外存接口技术

3.嵌入式系统的存储体系

3.1 存储系统的层次结构

多级存储结构是一种将不同类型的存储设备按照访问速度、容量和成本组织成层次结构的方法。这种结构旨在平衡性能和成本,使得系统能够在需要时快速访问数据,同时以较低的成本存储大量数据。

在这里插入图片描述

金字塔层次模型(自上而下):

存储级别硬件类型速度(访问延迟)容量范围成本(美元/GB)典型应用场景
寄存器SRAM0.3~1 ns几十~几百字节无单独定价CPU内部数据暂存
L1 CacheSRAM1~5 ns32~64 KB(核心独享)500~1000指令/数据高速缓存
L2 CacheSRAM5~15 ns256 KB~1 MB200~500核心/集群共享缓存
L3 CacheSRAM/eDRAM15~50 ns2~32 MB50~200多核共享缓存
主存DDR SDRAM50~200 ns4~128 GB5~20运行程序和数据存储
外存eMMC/UFS/Flash10~100 μs128 GB~2 TB0.1~0.5SSD/嵌入式存储
远程存储云服务器5~100 ms≈无上限0.02~0.1冷数据归档

性能-成本平衡策略

  1. 缓存命中率优化

    • L1命中率>90%时,平均访问时间接近SRAM速度
      T a v g = h 1 T L 1 + ( 1 − h 1 ) ( h 2 T L 2 + ( 1 − h 2 ) T D R A M ) T_{avg} = h_1T_{L1} + (1-h_1)(h_2T_{L2} + (1-h_2)T_{DRAM}) Tavg=h1TL1+(1h1)(h2TL2+(1h2)TDRAM)
  2. 成本控制技术

    • 缓存分级:用少量SRAM加速高频访问
    • 混合存储:Optane+SSD+HDD分层存储
  3. 嵌入式系统特化

    • 牺牲L3 Cache换取更低功耗(如Cortex-M系列无L3)
    • 用NOR Flash替代部分DRAM(XIP执行)
  4. 计算题示例

    • 某系统L1命中率95%(5ns),L2命中率60%(15ns),DRAM访问100ns,求平均访问时间?
    • T a v g = 0.95 × 5 + 0.05 × ( 0.6 × 15 + 0.4 × 100 ) = 4.75 + 0.05 × 49 = 7.2 ns T_{avg} = 0.95×5 + 0.05×(0.6×15 + 0.4×100) = 4.75 + 0.05×49 = 7.2 \text{ns} Tavg=0.95×5+0.05×(0.6×15+0.4×100)=4.75+0.05×49=7.2ns

3.2 内存管理单元(MMU)

在这里插入图片描述

内存管理单元是计算机系统中负责虚拟内存与物理内存转换的核心硬件组件,主要功能包括:

  1. 地址转换
    通过页表(Page Table)实现虚拟地址到物理地址的映射,支持4KB/2MB等页规格。现代MMU采用多级页表结构(如x86-64的4级页表),通过TLB(转换后备缓冲器)加速查询,典型命中率>95%。

  2. 内存保护
    为每个内存页设置权限位(读/写/执行),防止越界访问。例如:代码段设为只读+可执行,数据段设为可读写。

  3. 缓存控制
    管理Cache与内存的一致性策略(如Write-back/Write-through),标记内存区域是否可缓存(Cacheable/Non-cacheable)。

  4. 特性扩展

    • 大页支持:减少TLB(Translation Lookaside Buffer,转换后备缓冲器)缺失(如1GB大页)
    • ASID(地址空间ID):加速进程切换
    • NUMA优化:非统一内存访问调度

3.3 RAM和ROM的种类

3.3.1 RAM类型对比

类型特点功耗典型应用
SRAM高速/无需刷新Cache/寄存器
DRAM需刷新/密度高主内存(DDR4/LPDDR5)
PSRAM伪静态DRAM低成本嵌入式设备

SRAM(静态随机存取存储器)、DRAM(动态随机存取存储器)和 PSRAM(伪静态随机存取存储器)各自具有独特的特性和应用场景。SRAM 因其快速的访问速度和无需刷新的优势,常用于高速缓存以加速数据的读取过程。DRAM 则凭借其结构简单、成本效益高以及更高的密度,广泛应用于计算机的主存储器中,尽管它需要定期刷新来维持数据。PSRAM 是一种结合了 DRAM 和 SRAM 特性的存储技术,通过内置的刷新机制简化外部电路设计,适合于那些对成本敏感同时又需要较高性能的应用场景,如嵌入式系统和移动设备中,作为高效能内存解决方案。这三种存储技术各有优势,在现代计算和电子设备的设计中发挥着重要作用。

3.3.2 ROM类型对比

类型全称特点
PROM可编程只读存储器出厂时未编程,用户可以一次性写入数据。一旦编程后,数据不可更改。
EPROM可擦除可编程只读存储器使用紫外线可以擦除其中的数据,允许重新编程。通常有一个透明的窗口用于紫外线照射。
EEPROM电可擦除可编程只读存储器不需要紫外线即可通过电信号擦除和重编程。支持字节级别的擦除和写入操作。
Flash ROM快闪存储器一种特殊的EEPROM技术,可以快速擦除或写入大量信息。分为NAND和NOR两种类型,广泛用于固态硬盘等。
Mask ROM掩膜只读存储器在制造过程中编程,成本低但灵活性差,适合大规模生产且内容固定的用途。
OTP-ROM一次性可编程只读存储器类似于PROM,但在制造时预先装载了所有可能的数据模式,用户只能选择性地烧录部分数据。

每种类型的ROM都有其适用场景,例如Mask ROM由于成本效益高适用于大规模生产的消费电子产品;而Flash ROM则因其便捷的可更新特性被广泛应用于软件和固件更新中。EPROM和EEPROM在需要现场更新程序代码的应用中非常有用,但由于其寿命限制(擦写次数),在设计时需考虑这些因素。

3.4 高速缓存(Cache)

缓存(Cache)是一种高速存储机制,位于处理器与主存储器之间,用于临时存放处理器频繁访问的数据和指令,以加快数据的读取速度并提高系统性能。它通过利用局部性原理——即程序倾向于在短时间内重复访问相同的数据或邻近的内存区域,来减少处理器等待数据的时间,从而有效提升处理速度和效率。缓存通常由SRAM构成,具有访问速度快的特点,但成本较高,因此容量相对有限。根据其位置和作用,缓存可以分为L1、L2、L3等级别,级别越低速度越快且距离CPU核心更近。

在这里插入图片描述

关键参数

  • 命中率:90%+为良好设计
  • 关联度:直接映射/组相联/全相联
  • 写策略:写直达(Write-through) vs 写回(Write-back)

嵌入式优化技术

  1. 锁定关键代码(Cache Locking)
    • 将中断处理程序锁定在Cache
  2. MPU配置(无MMU时)
    • 设置内存区域缓存策略
  3. 一致性维护
    • DMA操作需无效化Cache(ARM的Cache Clean/Invalidate操作)

3.5 其他存储设备

3.5.1 新型存储技术

类型原理特点应用场景
FRAM铁电效应高速/无限次擦写智能卡/数据日志
MRAM磁阻效应纳秒级访问/抗辐射航天电子
RRAM电阻变化高密度/低功耗未来替代Flash

3.5.2 外存接口技术

  • eMMC (Embedded Multi Media Card,嵌入式多媒体卡) :由于其简单易用、成本效益高,是许多中低端手机和平板电脑的首选存储解决方案。它集成了NAND Flash芯片与主控芯片,简化了产品设计。
  • UFS (Universal Flash Storage,通用闪存存储) :提供更快速度和更高效率的数据读写能力,满足高端设备对于快速启动、加载和多任务处理的需求。UFS采用了全双工模式,支持同时读写操作。
  • SD卡(Secure Digital Card):因其便携性和广泛兼容性,成为数码相机、摄像机及其他便携设备的标准存储介质。不同类型的SD卡(如SDHC, SDXC)支持不同的容量和速度等级。

相关文章:

  • Concepts (C++20)
  • 如何在 Postman 中,自动获取 Token 并将其赋值到环境变量
  • 每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)
  • Java 富文本转word
  • java方法引用
  • static成员
  • jQuery的removeClass(),一次删除多个class
  • 4.2 Prompt工程与任务建模:高效提示词设计与任务拆解方法
  • 【学习笔记】文件包含漏洞--相关习题
  • 全面解析 UGC 平台物品冷启动策略
  • 【Linux内核】内核中的中断管理
  • Activepieces - 开源自动化工具
  • 【动手学大模型开发】什么是大语言模型
  • 【阿里云大模型高级工程师ACP习题集】2.4 自动化评测答疑机器人的表现(⭐️⭐️⭐️ 重点章节!!!)
  • Java Collections工具类指南
  • 计算机组成与体系结构:直接内存映射(Direct Memory Mapping)
  • Spring Boot YML配置值“011“在代码中变为9的问题解析
  • leetcode 2799. 统计完全子数组的数目 中等
  • 玩转Docker | Docker部署LMS轻量级音乐工具
  • 加深对vector理解OJ题
  • 朝中社发表评论文章,谴责美军部署B1-B轰炸机至日本
  • 加拿大财长:加拿大需要抗击美国关税
  • 对话地铁读书人|超市营业员朱先生:通勤时间自学心理学
  • 蔚来李斌:当下国际贸易环境有不确定性,但坚信中国汽车产业最终将占全球四成份额
  • 新“出差三人组”亮相!神二十乘组简历来了
  • IMF将今年全球经济增长预期由3.3%下调至2.8%