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

本文详细解析了三种Cache-主存映射方式:全相联映射、直接映射和组相联映射。全相联映射允许主存块任意存放在Cache中,直接映射则每个主存块有固定的位置,而组相联映射结合两者特点,将主存块映射到特定组内。每种映射方式都有其优缺点,如全相联映射查找复杂但灵活性高,直接映射简单但可能产生冲突,组相联映射则在两者间寻求平衡。通过标记位和有效位来判断Cache中是否存有数据,并确定主存块位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维导图

在这里插入图片描述

待解决问题

在这里插入图片描述

三种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 的单元。

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

在这里插入图片描述

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

各种映射的优缺点:

见思维导图

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值