计组之存储系统:6、Cache-主存映射方式(全相连映射、直接映射、组相连映射)
6、Cache-主存映射方式
- 思维导图
- 待解决问题
- 三种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 的单元。
组相联映射(可放到特定分组)
1、同直接映射相同,2块为一组,分四组时,以后俩位就直接反映了组号,所以也不用保存,因此,标记位保存20位即可
2、访存步骤:首先根据主存块号的后12位确定所属分组号;其次若主存块号的前20位与分组内的某个标记匹配且有效位=1,则Cache命中;最后访问块内地址为 001110的单元。
各种映射的优缺点:
见思维导图
HUAvHUA: 图片和考研王道的ppt一模一样,你确定你不是偷的别人图? 要是这样,就有一点太无耻了,还不标注来源。还能说明,你压根就不懂,需要别人的知识来保证你上传的知识没有错误
haier49999: 那个电容为什么叫栅极电容,它明明没有接在栅极上?
verbose_collation: 修改位为1是脏位,修改位为0不是脏位
verbose_collation: ,每个cache行必须配置一个修改位,以反映此行是否被CPU修改过(脏位)。当某行被换出时,根据此行修改位为1还是为0,决定是将该行内容写回主存还是简单地弃之而不顾。
shaoli723: CSDN烂就是因为有太多这种低级作者