高速缓冲器Cache

1. 高速缓存的概念
  • 根据程序运行存取的局部性原理,于是提出了高速缓存(Cache)的概念,Cache是一种更小、速度更快的存储设备。作为更大、更慢存储设备的缓存区。

  • 存储器层次结构的基本思想:对于每个k,位于第k层的更快更小的存储设备作为位于k+1层的更大更慢存储设备的缓存。根据局部性原理,程序访问第k层的数据比访问第k+1层的数据要频繁。

  • 第k+1层更大、更慢、更便宜的设备被划分成块,数据以块为传输单位在层与层间进行传输复制,第k层存储第k+1层数据块的子集。

2. 缓存不命中
  • 冷(强制性)不命中:当缓存为空时,对任何数据的请求都不命中。
  • 冲突不命中:大多数缓存将第k+1层的某个块限制放置在第k层块的一个小的子集中(不停交叉替换,导致不命中),冲突不命中发生在缓存足够大,但是这些多个数据对象会映射到同一个缓存块。
  • 容量不命中:发生在活跃块集合的大小比缓存大。
3. 高速缓存通用组织

包含组,块,字节。
在这里插入图片描述
寻址方式
首先定位其所在的,然后比较tag是否存在,若存在的话定位到块偏移的位置。
在这里插入图片描述

4. 高速缓存实例
  1. 直接映射高速缓存(E=1):每一组只有一行。
  2. 组相联高速缓存(E=2):每组两行。
  3. 全相联映射缓存:每行都比较tag。
5. 编写高速缓存友好的代码
  • 让通用或共享的功能或函数–最常见情况运行的快(专注在核心函数和内循环上)
  • 尽量减少每个循环内部的缓存不命中数量(反复引用变量;步长为1的参考模式)
6. 存储器山
  • 读吞吐量(读带宽):每秒从存储系统中读取的字节数(MB/s)
  • 存储器山:测量读取吞吐量作为空间和时间局部性的函数(紧凑方式去描述存储系统性能)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值