计算机组成原理学习笔记第4章 4.9——Cache地址映射与变换方法

有诗云:苔花如米小,也学牡丹开。——袁枚
本篇笔记整理:Code_流苏(CSDN)

★观前提示:本专栏笔记内容适合有一定的基础或复习时观看,内容如有错,还请大家评论指出!非常感谢!

0. 思维导图

在这里插入图片描述

1. 主存与Cache地址映射概述

前两节内容解决了如何查找,那么我们应该怎么把主存中的数据映射到Cache中呢?如何搬迁才能实现快速查找?
在这里插入图片描述

★Cache三种常见的地址映射方式

1️⃣全相联映射
2️⃣直接映射
3️⃣组相联映射
不同的映射方式,对应的搬迁时的规则和方法不同。下面来一起看一下三种映射的特点和原理。

2. 全相联映射的工作原理

在这里插入图片描述

  • 主存分块,Cache行 (Line),两者大小相同
  • 设每块4个字,主存大小为1024个字,则第61个字的主存地址为:
    00001111 01 (块号 块内地址)
  • 主存分块后地址就从一维变成二维
  • 映射算法:主存的数据块可映射到Cache任意行,同时将该数据块地址对应行的标记存储体中保存。

在这里插入图片描述
工程观视图如下:

在这里插入图片描述

①全相联映射的特点
Cache利用率
块冲突率
淘汰算法复杂

②应用场合
小容量Cache

3. 直接映射的工作原理

在这里插入图片描述

  • 主存分块,Cache行 (Line),两者大小相同
  • 主存分块后还将以Cache行数为标准进行分区,
  • 设每块4个字,主存大小为1024个字,
    Cache分为4行,第61个字的主存地址为:
    000011 11 01 (区号,区内块号,块内地址)
    主存地址从一维变成三维
  • 映射算法
    Cache共n行,主存第j块号映射到Cache 的行号为:i=j mod n
    即主存的数据块映射到Cache特定行
    在这里插入图片描述

工程观视图如下:
在这里插入图片描述

映射方式 映射特点 应用场合
全相联映射 Cache利用率高
块冲突率低
淘汰算法复杂
小容量Cache
直接映射 Cache利用率低
块冲突率高
淘汰算法简单
大容量Cache

★附文字表述:
1️⃣直接映射
①特点
Cache利用率低
块冲突率高
淘汰算法简单
②应用场合
大容量Cache

2️⃣全相联映射
①特点
Cache利用率高
块冲突率低
淘汰算法复杂
②应用场合
小容量Cache

4. 组相联映射的工作原理

在这里插入图片描述

  • 主存分块,Cache行 (Line),两者大小相同
  • Cache分组(每组中包含k行),本例假定K=4
  • 主存分块后还将以Cache组数为标准进行分组;
  • 设每块4个字,主存大小为1024个字,
    Cache分为2组,第61个字的主存地址为:
    0000111 1 01 (主存组号,Cache组号,块内地址)
    主存地址从一维变成三维
  • 映射算法
    Cache共n组,主存第j块号映射到Cache 的组号为: i=j mod n
    即主存的数据块映射到Cache特定组的任意行
    在这里插入图片描述
    工程观视图如下
    在这里插入图片描述
    三种映射方式的联系与比较

在这里插入图片描述

★小总结:在上一节的学习中,学习到了相联储存器,这节内容去了解Cache地址映射与变换方法,了解到了起映射的三种方式:全相联映射、直接映射、组相联映射,并对其特点等做了总结。通过本节内容的学习与记录,认识到了Cache地址映射与变换方法,也了解了它们的特点与联系,收获颇多。

笔记内容学习资料:计算机组成原理微课版(谭志虎、秦磊华等编著)
课件资料及视频学习:MOOC计算机组成原理(华中科大)
计算机组成原理专栏——笔记及测验练习都在这
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心。

猜你喜欢

转载自blog.csdn.net/qq_51646682/article/details/124565253