5.5.2主存储器与Cache的地址映射方式

笔记写在语雀的知识库文档里,一章一章整理,太多了就想先把小节知识放上来。

对这一块知识还挺感兴趣的?
课堂上听得差不多后整理笔记做题目还是完全不知道怎么写
就以题目学习+B站学习视频继续完善了以下笔记和理解。

计算机菜鸟,有误麻烦各位大佬指正。(认真看完感觉有收获 (逃

主存储器与Cache的地址映射方式

与主存相比, Cache的容量很小,它保存的内容只是主存内容的一个子集

地址映射完全由硬件实现,由于采用硬件,这个地址变换过程很快,软件人员丝毫感觉不到Cache的存在,这种特性称为Cache的透明性。

补充存储单元等相关知识

https://blog.csdn.net/loverszhaokai/article/details/5988772

位(Bit)字节(Byte)字(Word)字长
表示一个二进制数码0或1,是计算机存储处理信息的最基本的单位一个字节由8个位组成它代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算单位字的位数叫做字长。不同档次的机器有不同的字长

在将主存字块加载到Cache中,同时将主存的字块号存放到Cache存储体的标记中。
在这里插入图片描述
在这里插入图片描述

1.直接映射

在这里插入图片描述

按照Cache的块数大小来将主存的字块分区。

例如Cache有4块,主存有128块,那么主存可分为32个区,每个区有4块,分别编号为0,1,2,3。
其中,主存中任意区编号为0的字块(有多个)只能加载到Cache中字块0(只有一个)的位置。

在访问中,CPU给出一串主存地址,这个地址可分为三部分:
主存字块标记+Cache字块地址+字块内地址

大致过程:首先将CPU给的地址的主存字块标记与Cache的标记一一进行比较,看Cache中是否命中这个内容。若命中,则根据Cache字块地址定位找到字块内地址。

不足点
Cache利用率不高。按上面的例子,当Cache只有字块0放入主存0区字块0,Cache中其他字块都是空的,那么主存1区的字块0仍然无法放入Cache中的其他字块中,它必须放入到Cache的字块0上。

题目示例

设主存容量为256K字, Cache容量为2K字,块长为4。在直接映射方式下,设计主存地址格式。

解:
主存256K字,则主存地址长度18位。块长4,则块内地址2位;
Cache共有2K/4=512块,则Cache块地址9位
在这里插入图片描述

2.全相联映射

在这里插入图片描述

主存中的任何一个块可以放到Cache中的任何一个块。

在访问中,CPU给出一串主存地址,这个地址可分为三部分:
主存字块标记+字块内地址

大致过程:首先将主存字块标记与Cache的标记一一进行比较,看Cache中是否命中这个内容。若命中,则按字地址从Cache中读取。

题目示例

设主存容量为256K字, Cache容量为2K字,块长为4。在全相联映射方式下,设计主存地址格式。

解:
主存256K字,则主存地址长度18位。块长4,则块内地址2位;
在这里插入图片描述

3.组相联映射

在这里插入图片描述

将Cache的块分组,每组中含有的块数称为几路,同时将主存的字块分区,此时区的大小与Cache的组的大小一样(区分于直接映射的分区),其中主存中任意区的字块0可以放到Cache中的0组,至于在0组中的哪一块,就是随意的了。

在访问中,CPU给出一串主存地址,这个地址可分为三部分:
主存字块标记(m-(c-r)位)+组地址(c-r位)+块内地址(b位)

大致过程:当CPU给定一个主存地址时,首先用中间的c-r位找到Cache的相应组,然后将高m-c+r位与该组2r行中的所有标记同时进行比较。哪行的标记与之相符,哪行就命中。此后再以主存地址的低b位检索此行中的字,完成所要求的存取操作。如果此组没有一行的标记与之相符,即Cache不命中。
这里是先找到Cache的相应组,再用主存字块标记与相应组的标记进行比较。区分于全相联映射的逐一比较。

题目示例

某处理器包含一个片内Cache,容量为8
KB,且采用4路组相联结构,块的大小为4个32位字。当Cache未命中时,以分组方式从主存读取4个字到Cache,假定主存容量为16 MB。
试说明: (1) Cache共分为多少组? (2)写出主存的字节地址的格式,并说明地址格式中的不同字段的作用和位数。

解:
(1)
∵4路组相联映射
∴ r=2
∵每块4字
∴b=2
∵块的大小为4个32位字,每字32位
∴每字包含4字节,则块的大小为16个字节
∵Cache容量为8KB
∴Cache的块数为8KB/4KB=29
∴c=9
∴Cache分组为:29/22=128组
(2)
主存容量为16M字节
则主存的块数为:16MB/16B=220
所以m=20
组地址(c-r)=9-2=7
主存字块标记(m-(c-r))=20-7=13
块内字地址(b)=2
块内字节地址(本题中每字4字节)=2

主存字块标记组地址(c-r)块内字地址块内字节地址
13722
  • 9
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值