高速缓存内容整理

175 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 在这里插入图片描述

cache访问过程

cpu获取数据--》通过给的主存地址,判断cache是否缓存有此数据--》有从cache拿,没有从主存拿 需要注意的是,无论是二级缓存、三级缓存还是内存都不能存储处理器操作的原始指令,这些指令只能存储在CPU的一级指令缓存中,而余下的二级缓存、三级缓存和内存仅用于存储CPU所需数据。

cache与主存之间是字块传送。

每个缓冲块需要一个标记来表示当前存放的事哪一个主存块,该标记的内容相当于主块的编号。

一般一级缓存用来缓存指令,二级、三级缓存等用来存储数据。

主存地址映射

直接映射(一路组相联):一个主存块,只能放到一个缓存块 在这里插入图片描述 组相联映射:一个主存块,能放到一个n个缓存块(n<缓存块的总数),下图中一个主存块可以选择放在同一组的2个缓存块之一。 在这里插入图片描述 全相联映射:一个主存块,能放到所有缓存块之一中。 在这里插入图片描述 帮助理解: 在这里插入图片描述

在这里插入图片描述

统一缓存和分立缓存

统一缓存:指令和数据都存在一个缓存。 分立缓存:指令和数据分别由指令缓存和数据缓存两个缓存分别存储。一般采用超前控制或流水线控制方式时,一般都采用分立缓存。

缓存块(线\line)替换

cache替换机构包含LRU阵列(链),LRU阵列(链)与缓存存储器区域的块一一对应,同步更新,即LRU中指定的块才会在缓存存储器区域中存在。

所谓8路组相连( 8-way set associative)的含义是指,每个组里面有8个行/线/line/块

LRU替换算法实现原理

在这里插入图片描述

在这里插入图片描述