一、存储系统概述
主要分为三种:高速缓存(cache)、主存和外存。
二、高速缓存Cache
- 高速缓冲存储器中存放的是当前使用得最多得程序代码和数据,即主存中部分内容的副本,其本身无自己的地址空间。
- 在嵌入式系统中Cache全部集成在嵌入式微处理器内,一般32位的微处理器内置。
- 可分为数据Cache、指令Cache(如哈弗架构)或者混合Cache(如冯诺伊曼架构)。不同处理器其Cache大小不一样。
- CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在就称为Cache命中,否则称为Cache未命中。则对主存储器进行操作,并将有关内容写入Cache。
- 写入Cache有2种方法:
a. 通写(Write Through):Cache与对应内存内容同步更新。
b. 回写(Write Back):只有写入Cache内容移除时才更新对应内存内容。(此种方式性能最好,但是存在系统掉电的存储问题)。
Cache结构框图
三、主存
- 主存是处理器能直接访问的存储器,用来存放系统和用户的程序和数据。
- 嵌入式系统的主存可位于SOC内和SOC外,片内存储器存储容量小、速度快、片外存储器容量大。
- 可以做主存的存储器有:
ROM类(存放代码和常数数据):Nor Flash、EPROM、E2PROM、PROM等
RAM类:SRAM、DRAM、SDRAM等
静态随机存取存储器SRAM
存储信息:六管基本存储电路,功耗低,不需要刷新
典型芯片规格:2114(1KX4) ,6116(2KX8),6264(8KX8),62128(16KX8),62256(32X8)
动态随机存取存储器DRAM
- 存储信息的基本单元(1位)电路可采用4管、3管和单管电路。
- 为维持动态存储单元所存储的信息,必须不断刷新。
- 与SRAM不同的是:节省外部引脚,同样容量的DRAM外部地址线引脚是SRAM一半。DRAM采用行/列地址选通,将地址通过内部分成2路。
- DRAM控制器:解决刷新和多路,DRAM不能和CPU直接通信,需要DRAM控制器来连接。
SDRAM(Synchronous DRAM,同步DRAM)
- CPU和RAM共享相同的时钟周期,以相同的速度同步工作,即一个时钟周期内存工作一次。
- 基于双存储器结构,内含两个交错的存储阵列,读取效率得到成倍提高,是DRAM中速度最快的一种。
- DDR SDRAM( Double Date Rate SDRAM,双倍传输速率的SDRAM)在一个时钟周期内内存可以工作两次,因而理论上是SDRAM的2倍,但实际上达不到。
四、外存
外存是处理器不能直接访问的存储器,用来存放用户的各种信息,容量大。
在嵌入式系统中常用的外存有:
- NandFlash
- DOC (Disk On Chip)
- CF(Compact Flash)
- SD(Secure Digital)
- MMC(Multi Mediacard)
电子盘
- 电子盘采用半导体芯片来存储数据,具有体积小、功耗低和极强的抗震性等特点。
- 在嵌入式系统中普遍采用各种电子盘作为外存。
- 常用的电子盘有:NandFlash、MMC、SD、Memory Stick、CF、SM、DOC等。
五、NandFlash和NorFlash对比
NandFlash: 逻辑与,具有容量大、回写速度快、芯片面积小等特点,主要用于外存。
NorFlash: 逻辑或,具有随机存储速度快、电压低、功耗低、稳定性高等特点,主要用于主存。
NandFlash外部接口示例
NandFlash 内部架构图示例