系统加速利器Hardware Cache(一)——三种类型的Cache

本文介绍了Hardware Cache的作用,包括加快系统运行速度,以及三种类型的Cache:直接映射、全相联和组相联。直接映射Cache查找速度快但可能引发冲突;全相联Cache冲突概率低但查找速度慢;组相联Cache则是两者的折中方案。文章通过实例详细解析了这三种Cache的工作原理。

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

Hardware cache的目的


Hardware Cache的是为系统加速而生的,这个是众所周知的事情。不过为了本文内容的完整性,我在此还是先将hardware cache的功能讲一下,不过我会尽量简短一点。

cpu访问hardware cache的速度要远高于访问主内存的速度,为了加快系统运行速度,会将主内存的部分数据放在hardware cache中,这样cpu就不必每次都访问主内存,如果要访问的数据在cache中命中,则直接从cache中读数据或者直接修改cache中的数据即可,从而加快了系统运行速度。至于由于hardware cache的引入,出现的多master环境下内存不一致问题,我们在后面的章节讨论。

这里有两个问题要特别注意:
第一,hardware cache由于比较昂贵,所以一般容量较小,而主内存一般容量很大,所以主内存中的数据不可能全部放在hardware cache中,所以cache中的内容在必要的时候会同步到内存,以便能装入新的内容。

第二,hardware的操作单位是cache line,cache line的长度由芯片设计而定,本文我们以32B cache line分析。

三种类型的cache


我们以32K的cache容量,32B的cache line size来分析。32K的cache容量,每个cache line是32B,所以总共有1024个cache line。

直接映射的cache

直接映射的cache方案中,每个cache line所对应的物理内存都是固定的,映射关系如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值