计组之存储系统:6、Cache-主存映射方式(全相连映射、直接映射、组相连映射)

思维导图

在这里插入图片描述

待解决问题

在这里插入图片描述

三种Cache-主存映射方式

在这里插入图片描述

1、全相连映射:随意放
2、直接映射:0%8=0,8%8=0;所以cache的0号块存放0,8,16…
3、组相连映射:0%4=0,4%4=0;所以cache的0组存放0,4,8…
4、如何区分Cache中存放的是哪个主存块?
我们第一反应是给cache每一块增加一个标记位,用于保存主存的块号,但是计算机硬件只能保存0和1;假如默认标记为0时cache中未存放数据,但是当你访问cache时,会认为你将主存0号块的数据放入了其中,但其实该cache是空的,所以需要增加一个有效位。

全相联映射(随意放)

在这里插入图片描述

访存步骤:
1、主存地址的前22位, 1对比Cache中所有块2的标记;
2、若标记匹配且有效位=1,则Cache命中,访问块内地址为2!!-3001110 的单元。

直接映射(只能放固定位置)

在这里插入图片描述

1、与全相连映射相比,对于主存地址分析可知,Cache的块号刚好与主存地址的后3为相同(Cache总块数为8),所以在进行标记时,就不需要在标记这三位了,所以从原来的22位变成了19位
2、访存步骤:根据主存块号的后3位确定Cache行,在主存块号的前19位与Cache标记匹配且有效位=1,最后访问块内地址为 001110 的单元。

组相联映射(可放到特定分组)

在这里插入图片描述

扫描二维码关注公众号,回复: 12776493 查看本文章

1、同直接映射相同,2块为一组,分四组时,以后俩位就直接反映了组号,所以也不用保存,因此,标记位保存20位即可
2、访存步骤:首先根据主存块号的后12位确定所属分组号;其次若主存块号的前20位与分组内的某个标记匹配且有效位=1,则Cache命中;最后访问块内地址为 001110的单元。

各种映射的优缺点:

见思维导图

猜你喜欢

转载自blog.csdn.net/qq_41587740/article/details/109104899
今日推荐