cache映射

从主存到cache

假设把每个内存块分为4份,每次从主存中读取都是以块为单位,一次读取一个块。
(因为根据空间的局部性原理,当需要用到一个地址时,后续很大概率要用到其相邻的地址,因此一次读取一个块这种预读操作可以减少读取次数并提高缓存的命中率)
在这里插入图片描述

cache映射

直接映射

主存中的每一个块只能被放置到Cache中唯一的一个指定位置。
若这个位置已有内容,则产生块冲突,原来的块将无条件地被替换出去。

直接映像的块冲突概率最高。因为每个主存块只能映射到指定的Cache块,当多个主存块试图映射到同一个Cache位置时,就会发生冲突。

组相联映射

将Cache空间分成大小相同的组,主存的一个数据块可以装到对应的cache组内的任一个位置,即组间采取直接映射,组内采取全相联映射。

组相联映像是直接映像和全相联映像的折中。

组相联映像的块冲突概率介于直接映像和全相联映像之间。在组内,块冲突概率较低,因为类似于全相联映像,主存块可以映射到组内的任意位置;但在组间,块冲突概率则较高,因为类似于直接映像,每个主存块只能映射到特定的组

2个块为一组则称为二路组相联
8个块为一组则称为八路组相联

全相联映射

主存中的任何一个块均可以映像装入到Cache中任何一个块的位置上。
这种方式灵活,Cache的块冲突概率最低、空间利用率最高。

全相联映像的块冲突概率最低。因为主存块可以映射到Cache中的任意位置,只要Cache中有空闲区,都能调入,所以只有当Cache块全部满了时才会发生冲突

主存物理地址 = 标记 + 块内地址
主存物理地址 = 标记 + 组号 + 块内地址
主存物理地址 = 标记 + cache行号 + 块内地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值