计算机组成--cache存储器--地址映射

本文深入解析了缓存(cache)技术,旨在解决CPU与主存间的速度差异,通过介绍空间与时间局部性原理,阐述了缓存与CPU、主存间的交互机制。详细探讨了缓存命中率的概念及提升策略,主存与缓存的地址映射方式,包括全相联映射、直接映射和组相联映射,以及它们各自的优缺点。

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

cache的功能:为了解决CPU和主存之间速度不匹配的一种技术,其原理基于程序运行中具有的空间局部性时间局部性

cpu和cache之间的数据交换是以字为单位的,而cache和主存之间的数据交换是以块为单位的

cache的命中率:h=cache中完成存取的总次数/(cache中的次数+主存中完成的次数),所以h越接近1则性能越好

主存与cache的地址映射:与主存相比,cache的容量很小,它保存的内容只是主存内容的一个子集,因此,把主存地址定位到cache中,称为地址映射

地址映射的三种常用方式:全相联映射方式,直接映射方式,组相联映射方式

全相联映射方式:当计算机要访问某个数据的时候,通过访存指令指定一个内存地址(包括主存和cache),然后要在指令中的块号与cache中所有行的标记同时比较,如果命中,则按字地址从cache中读取一个字,否则,则按内存地址从主存中读取这个字,缺点是比较器电路难于设计实现,因此使用与小容量的cache采用

直接映射方式:根据主存进行取模来地址映射,比如主存有256块,而cache只有8行,则,cache的标记位数有8位,其中3位作为行号,后面5位作为0-31的二进制表示,举例,如果主存块数位256,每个块有4个字,则内存地址为10位,也就是指令中必须给出10位的内存地址,这种方式比较电路简单,但是容易发生冲突,因此适用于大容量cache的场合

组相联映射方式:就是前面两种方式的折中,将cache进行分组,比如将8行的cache分成4组,每组两行,cache的标记组成为2位的组号,6位0-63的二进制表示,在每组的里面进行类似全相联映射的比较

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值