嵌入式系统存储体系

一、存储系统概述

主要分为三种:高速缓存(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 内部架构图示例

相关推荐
东城居士7 天前
理解Linux RTC驱动
linux·嵌入式系统
东城居士11 天前
理解Linux LCD驱动编程
linux·嵌入式系统·1024程序员节
东城居士25 天前
理解设备树下的platform驱动编写
linux·嵌入式系统
玄芯散人1 个月前
【金丹·76】CPU缓存三层塔
嵌入式系统·计算机体系结构·cpu缓存
东城居士1 个月前
Linux驱动阻塞与非阻塞访问的理解
linux·嵌入式系统
东城居士2 个月前
理解pinctrl和gpio子系统驱动
linux·嵌入式系统
东城居士2 个月前
验证第一个Linux字符驱动程序
linux·嵌入式系统
东城居士2 个月前
Linux驱动程序开发环境的快速搭建
linux·嵌入式系统
捷瑞电子工坊2 个月前
深入理解CMSIS内核函数:__disable_irq() 与 __enable_irq()
stm32·嵌入式系统·cmsis·中断控制·临界区保护
在水一缸4 个月前
从“铁锁”到开源:John Deere和解协议背后的维修权革命与技术启示
开源·嵌入式系统·软件架构·固件安全·维修权