浅谈主存和Cache间的地址映射

 我来答
华源网络
2022-06-25 · TA获得超过5581个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:145万
展开全部

最近在学计算机架构,正好学到主存与Cache间的地址映射,记录一下,方便以后复习回顾。

学一个东西要弄清楚这个东西有什么用,发明它的目的是什么。Cache和主存的地址映射则主要是为了加快CPU的处理速度,因为如果CPU每次都要从主存(如4GB)中找数据的话就太慢了,但是如果在Cache(如64K)中有对应主存的数据,这样就很快了。下面的地址映射方式都是想判断主存中某个数据在不在Cache中,只不过效率不同而已。

首先指明基础单位,简单来说,有4个基础单位: Bit Byte Block Word
其中

在主存和Cache间的地址映射过程中,都是使用 Block 作为基本单位来交换数据,因为这样更加高效

主存和Cache有三种地址映射方式

全相连映射大概如下图所示:

Cache和 Main Memory(MM) 都被分为一定数量的 Block ,即图中的b(0), b(1), ...

由图可知,Cache被分为 C/B-1 个 Block ,Main Memory被分为 M/B-1 个 Block (C是缓存大小,如64k=2^16 Bytes,同理B和M分别是 Block 和MM大小)

全相连映射方式比较简单,其思想是MM中的任意一个Block可以存在Cache中任意一个Block中,寻址方式如下图:

BTW:Associative Memory(相联存储器)的列数和Cache的列数一致

例题1:
Assume that cache capacity is 64KB in a computer system, data block size is 16 bytes, main memory capacity is 4MB, fully associative mapping is used.

直接相连映射与全相连映射的不同之处在于它将MM中的Block分成了一个个Area,每个Area的大小都和Cache相同,并且每个Area中的Block只能存在Cache中对应位置的Block,例如:MM中Area0的b(0)只能存在Cache中的b(0),Area1的b(0)也只能存在Cache中的b(0),以此类推。因此它也要求MM的大小必须是Cache大小的整数倍。

Ei是Area编号,Bi是Area中的Block编号,bi是Cache中Block编号,Block Address是Block中的地址

首先,由Bi选出Directory Table中对应的Block,该Block存着Area编号,将这个编号和MM Address的Ei比较一下,相同的话就说明在Cache中找到了对应MM中的数据(Hit),然后直接把MM Address的Bi和Block Address当做Cache Address去Cache找。

例题2:
Assume that cache capacity is 64KB in a computer system, data block size is 16 bytes, main memory capacity is 4MB, direct associative mapping is used.

组相连映射的思想相当于结合了前两种映射思想,在已经分好Area的基础上再进一步地分Group,每个Areaz里面有若干个Group,与直接相连映射不同的是,组相连映射要求的只是每个Group必须一一对应,而Group里面的Block则是随意对应(即全相连映射)

Gi是Group的编号,其余同直接相连映射
同理,先由Gi选出Directory Table中对应的Group,再把Ei和Bi与其内容作比较,相等就说明Cache中存在MM中的数据,然后直接把Directory Table中的bi和MM Address中的Gi当成Cache Address去Cache中找数据

例题3:
Assume that cache capacity is 32KB in a computer system, data block size is 64 bytes, main memory capacity is 1MB, set associative mapping is used and the group count is 128.

最后,总结一下三种映射方式,当组相连映射中的Group数量减少到1时,组相连映射变成全相连映射,当Group数量增加到Block总数时,组相连映射变成直接相连映射。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式