目录
一、概述
嵌入式存储体系分为三种:高速缓存(cache)、主存及外存。片内存储一般都会集成Cache,片内的RAM和ROM,片内的RAM和ROM由于成本的制约不会太大,大多数的主存空间都是放在片外的,在片外除了主存还有外存。主存中主要放置常数数据和code。外存成本低,容量大。
二、高速缓存Cache
高速缓存器是为了加速CPU对主存的读写操作速度。Cache在嵌入式系统中是集成在片内的,而在计算机中cache是片外的。高速缓冲存储器中存放的是当前使用的最多的程序代码和数据,即主存的部分内容副本。
在嵌入式系统中Cache全部集成在嵌入式微处理器中,一般32位MCU都会内置Cache。Cache可以分为数据Cache指令Cache(哈佛架构)、混合Cache(冯诺依曼架构),不同的处理器Cache大小不一样。
2.1 读Cache
CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在称为Cache命中,否则称为Cache未命中。对命中操作直接操作Cache,否则操作主存。
2.2 写Cache
CPU写数据时首先把数据写到Cache中,然后由Cache回写到主存中 ,写入Cache时有两种方法:
- 通写(write through):Cache与对应的内存内容同步更新
- 回写(write back):只有写入Cache内容移出时才更新对应内存内容
三、主存
主存是处理器能直接访问的存储器,用来存放系统和用户的程序和数据。嵌入式系统的主存可以位于SOC内核SOC外,片内存储器存储容量小,速度快(读写速度和计算速度),片外存储器容量大。可以作为主存的存储器有
- ROM类:Nor Flash、E2PROM、EPROM(多次读写更新)、PROM(一次性,已固化)等
- RAM类:SRAM(低功耗,无需刷新)、DRAM(存储容量大,管脚少,需刷新)、SDRAM等