高速缓存-直接映射&全相联&组相联

有三种高速缓存:
直接映射高速缓存:每个组里面只有一行
组相联高速缓存:没什么特点的状态
全相联高速缓存:一共只有一个组

高速缓存确定一个请求是否命中,然后抽取被请求的字的过程,分为三部:
1⃣️组选择
2⃣️行匹配
3⃣️字抽取

直接映射高速缓存

组选择
从w的地址中抽出s个索引位确定是哪个组
高速缓存-直接映射&全相联&组相联
行匹配
在直接高速缓存(每一组只有一行)中很容易:
有效位设置了 && ( 高速缓存行中的标记位==w地址中的标记位 )
高速缓存-直接映射&全相联&组相联
字选择
块偏移提供了第一个字节的偏移,把这个偏移当作一个数组的索引拿出来就好,如上图的右半部分

????是????

有这样一个高速缓存
高速缓存-直接映射&全相联&组相联

  • 标记+索引唯一地标识来存储器中地每一个块
  • 8个存储器块,4个高速缓存

高速缓存-直接映射&全相联&组相联高速缓存-直接映射&全相联&组相联

组相连

组选择:跟直接映射的是相同的
行匹配:这个麻烦一点,还需要依次判断有没有那么一行跟地址中的标记位相同
字抽取:同直接映射
高速缓存-直接映射&全相联&组相联

全相联

全相联是一个组包含了所有的行
组选择
组选择特别简单,因为只有一个组嘛
行匹配和字抽取
高速缓存-直接映射&全相联&组相联