计算机组成原理_Cache与主存的映射方式

本文详细介绍了计算机组成原理中的Cache与主存的三种映射方式:全相联映射、直接映射和组相联映射。通过实例解释了不同映射方式下,主存地址如何映射到Cache,并描述了访存过程,帮助理解Cache的工作机制。

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

计算机组成原理总目录

Cache与主存的映射方式

1. 全相联映射

在以全相联映射的Cache中,主存中的每一块可以装入Cache中任意位置
故在Cache中,需要能表示主存地址的标记位,以及确保Cache块是否有效的有效位

  • 标记位:代表该Cache块(行)是哪一个主存块的复制
  • 有效位:代表该Cache块是否有效、是否可以访问,以一位表示是否有效

假设计算机的主存地址空间大小为4MB,按字节编址,Cache有4个Cache块(行),块大小为2KB
在这里插入图片描述
全相联映射下的访存过程,假设访问主存的地址 Adr = 【000 0000 0101 100 0001 0010】

  1. 首先将【主存地址Adr的前11位】与【Cache的标记位进行匹配】
  2. 若匹配成功且有效位 = 1,即为Cache命中,则可根据后11位的块内地址访问该Cache块
  3. 若匹配失败或有效位 = 0,即为Cache未命中,则访问主存中对应的块

2. 直接映射

在以直接映射的Cache中,主存块在Cache中的位置 = 主存块号 % Cache总块数,同样包括标志位和有效位

在直接相联中的标志位的位数可以这么理解:

因为主存块在Cache中的位置 = 主存块号 % Cache总块数
故实际上就是将主存块按照Cache的大小进行分组

在上述例子中,主存以四个块为一组,每一组与Cache的块一一对应,也就是说,我们只需要知道是主存块号是第几组就行了
即 主存2048个块按4块为一组分组,得到的组数 = 2048 / 4 = 512组 = 29
在这里插入图片描述

假设计算机的主存地址空间大小为4MB,按字节编址,Cache有4个Cache块(行),块大小为2KB在这里插入图片描述
直接映射下的访存过程,假设访问主存的地址 Adr = 【000 0000 01 01 100 0001 0010】

  1. 首先根据第11~12位,得出该主存块可能是Cache的第1块中
  2. 然后将【主存地址Adr的前9位】与【第一个Cache块的标记位】进行匹配
  3. 若匹配成功且有效位 = 1,即为Cache命中,然后先根据第10~11位确定组内的第几块,最后根据后11位访问Cache块
  4. 若匹配失败或有效位 = 0,即为Cache未命中,则访问主存中对应的块

3. 组相联映射

在以组相联映射的Cache中,主存块所属的分组 = 主存块号 % Cache分组数,同样包括标志位和有效位

在组相联映射中的标记位的位数可以这么理解:

因为主存块在Cache中的位置 = 主存块号 % Cache分组数
实际上就是全相联映射和直接映射两种方式的结合,即包含了分组,同时在分组内主存块又可以任意放入Cache对应的分组内

假设我们采用二路组相联映射(2块为一组)对Cache进行分组,Cache有8块,则可以分为4组
如下图,在主存中,橙色块 = 【主存块号】%【Cache分组数(4)】 = 0( 属于Cache的第0组)
同时主存的橙色块可以任意放入Cache的橙色分组中
在这里插入图片描述

假设计算机的主存地址空间大小为4MB,按字节编址,Cache有4个Cache块(行),块大小为2KB
在这里插入图片描述

直接映射下的访存过程,假设访问主存的地址 Adr = 【000 0001 01 1 100 0001 0010】

  1. 首先根据主存地址Adr的第11位计算得出,该主存块可能在Cache的第1组中
  2. 然后将【Adr的前10位】与【第1组内的Cache块标记位】进行匹配
  3. 若匹配成功且有效位 = 1,即为Cache命中,然后即可根据后11位访问Cache块
  4. 若匹配失败或有效位 = 0,即为Cache未命中,则访问主存中对应的块
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小-黯

免费的,尽力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值