计算机组成原理(四)Cache存储器

Cache存储器的基本原理

  • Cache是一种高速缓冲寄存器,是为了解决CPU和主存之间速度不匹配而采用的一项关键技术。
  • Cache能够高速地向CPU提供指令和数据,从而加快程序的执行速度。
  • Cache 为了追求高速,包括管理在内的全部功能由硬件完成。

在这里插入图片描述
在这里插入图片描述

cache命中率、平均访问时间、效率

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 理解

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

地址映射

  • 主存容量远大于cache容量,所以当你要把一个主存块调入cache时,就有一个如何放置的问题(映射问题)

全相联映射

  • 全相联映射:将主存种一个块的地址与块的内容一起存入cache的行中,其中块地址存入cache行的标记部分中。
  • cache的数据块大小称为行。主存的数据块大小称为块。行与块是等长的。
  • 可以使得主存中的一个块直接拷贝到cache的任意一行,非常灵活。
  • 缺点:比较电路难于设计和实现,只适合小容量cache使用

在这里插入图片描述

直接映射

  • 这是一种多对一的映射方式,但是一个主存块只能拷贝到cache的一个特定行位置上。
  • cache 的行号i 和主存的块号 j 有如下函数关系:
    i = j m o d m ( n 为 c a c h e 中的总行号) i = j mod m (n为cache中的总行号) i=jmodm(ncache中的总行号)
  • 直接映射方式的优点:硬件简单,成本低。
    缺点:每一个主存块只有一个固定的行位置可以存放,容易发生冲突。适合大容量的cache采用。
  • 区别于组相联映射

在这里插入图片描述

组相联映射

  • 组相联映射方式是全相联映射和直接映射的混合:将cache 分成u 组,每一组v行,主存存放到哪一个组是固定的,至于存到该组的哪一行是灵活的。
    m = u ∗ v 组号 q = j m o d u m = u*v 组号 q = j mod u m=uv组号q=jmodu
  • 组相联映射方式中,每一组的行数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。

在这里插入图片描述

查找算法

  • 通过查找目录表实现
  • cache中设有一个目录表,该表所包含的项数与cache的块数相同,每一项对应cache中的一块,用于指出当前该块中存放的信息是哪一个主存块的。它实际上记录了该主存块的块地址的高位部分,称为标识(tag).每一个主存块能唯一地由其标识来确定。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cache 存储器替换策略

  • cache的工作原理要求它尽量保存最新数据

在这里插入图片描述

cache 存储器-写操作策略

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 简单点评:
    (1)全相联方式:其实就是组号为1的组相联方式,那么对于主存的地址的分配,就只有标记+块内地址,同时,这个标记的位置也就是内存中块的数目
    (2)直接映射方式:需要直接映射到cache中,所以要留有到底映射到哪一个cache的行,所以地址的组成是’标记+块数+块内地址’,其中,标记加上块数的部分的总的位数是主存中的块的数目,其中的块数应该是cache的行数
    (3)组相联映射:在全相联映射的基础上,增加了组号的问题,主存中地址的形式标记+组号+块内地址,其实,和直接映射相比,也就是将cache的行数换成了组数。

在这里插入图片描述
在这里插入图片描述

  • cache 的地址组成刚刚好是 块数加上块内地址

在这里插入图片描述

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值