计算机组成原理之高速Cache存储器学习笔记

1 原因

1.1内存(存储器)的存取速度大大低于cpu的速度,导致cpu等待造成资源浪费

1.2cpu的访存权限不如i/o设备,避免cpu与i/o设备争夺访存

1.3指令和数据在内存的地址分布不是随机的,访问具有相对的局部性(程序访问的局部性原理)

2 工作原理

2.1 一般才用高速的SAMR制作

2.2将内存和Cache都分成若干块,每个块内包含若干字,块的大小相同,每个缓存块的标记表示与其建立对应关系的内存块

2.3命中率:在一个程序执行期间,访问cache的总命中次数/访问cache的总命中次数+访问内存的总次数

2.4cache容量是总成本价与命中率的折中值,块长与命中率的关系取决于各程序的局部特性

3 Cache的基本结构

主要由cache存储体,地址映射变换机构,cache替换机构组成

3.1 cache存储体

以块为单位与内存交换信息,cache访存的优先级最高

3.2 地址映射变换机构

将cpu送来的内存地址转换为cache地址,主要是块号之间的转换

如果转换后的cache块已与cpu欲访问的内存块之间建立了对应关系,即已名字,可直接访问cache存储体

否则cpu访问内存,cpu访问内存时不仅将要访问的字取出,同时将其所在的内存块一并调入cache(cache未处于装满状态),

若此时cache已满,则采取替换策略

3.3 替换机构

当cache已满,按照一定的策略替换内存块

cache对用户是透明的,用户编程用到的地址是内存地址

3.4 cache的读写操作

对cache块内写入的信息,必须与被映射的内存块类的信息一致

写直达法:操作时同时写入cache和内存

写回法:写操作时只写入cache,当cache被替换时才写回内存

4 cache的改进

4.1 单一缓存和两级缓存

单一缓存:cpu与内存之间只有一个缓存,该缓存与cpu制作在同一个芯片内,又称为片内缓存,

片内缓存可提高片外总线的利用率,cpu可直接访问cache而不必占用芯片外的总线

两级缓存:片内缓存在芯片内,容量有限 .在内存和片内缓存之间增加一级缓存,称为片外缓存(由静态RAM组成)。

且片外缓存与cpu之间不使用系统总线

4.2 统一缓存和分立缓存

统一缓存:指令和数据都放在同一缓存内的cache

分立缓存:指令和数据分别存放在两个缓存中

原因:与内存结构有关,若指令和数据存放在同一内存里,则采用统一缓存,否则采用分立缓存

与机器对指令执行的控制方式有关。当采用超前控制或流水线控制方式时,一般采用分立缓存

5 cache—内存地址映射

5.1 直接映射(块与块的对应是相对固定的)

5.2 全相联映射(灵活性大的映射关系)

5.3 组相联映射(折中)

6 替换策略

6.1 先进先出

6.2近期最少使用

6.3随机法


猜你喜欢

转载自blog.csdn.net/qq_37566910/article/details/79049424