Cache地址映射与变换方法

(配图来自MOOC华中科技大学计算机原理课程)

Cache与主存按块进行信息交换,其地址映射方法有三种:

1.全相联映射

当CPU从Cache中读取字的时候,需要将主存地址中的标记(块号)与Cache中所有行的标记进行比较,如果标记相同,则根据偏移地址在Cache的该行内取出相应的字,送给CPU;如果没有相同的标记,则从主存内找到相同标记的块,送到Cache中。

如1F的标记0000111不在Cache中,所以去主存中取相应的块,存入Cache;

类似的如20,24;

当标记在Cache中,根据偏移地址取出相应的字。

(1)应为主存中的块是随意放入Cache中,知道Cache填满,所以不存在空间被闲置;

(2)直到Cache被填满后,才会出现块冲突的情况;

(3)需要与Cache中所有行的标记进行比较。

2.直接映射

直接映射相较于全相联映射又进行了分区,每区的行数为Cache的行数。

当CPU从Cache中取字时,根据主存地址的index部分确定行号,将相应行的Tag与标记进行比较,如果符合再按偏移地址取出相应的字送到CPU。否则从主存中取出对应块放入对应的行中。

(1)每区的相同Index的块都只能存放在Cache对应的行中,空间利用率低;

(2)相同Index的块同时只能有一个存放在Cache中;

(3)只需要与对应行的Tag进行比较即可。

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

兼有前两种映射方式的特点,把主存分成和Cache大小相同的若干个分组,对应组号的主存能自由移入Cache中。

如果Cache是8行的,如果令分组数为1,那组相联映射就相当于是全相联映射。而若分组数为8,就相当于直接映射。(此处图片应当有误,是课程ppt错了吗)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值