目录
学习重点
- 程序局部性原理
- Cache工作原理
- Cache基本结构
- Cache读写
- 读流程
- 写直达法
- 写回法
- Cache改进
- Cache与主存映射
- 直接相连
- 全相连
- 组相连
- 替换算法
1.概述
-
引入Cache原因:提高访存速度,避免cpu空等
-
示意图:
- 缓存:容量小,速度快
- 主存:容量大,速度慢
-
程序局部性原理:
- 时间局部性原理:当前用的指令和数据在未来会用到
- 空间局部性原理:当前用的指令和数据相邻的指令和数据未来会用到
2.Cache工作原理
-
主存与缓存编址示意图
- 标记:放对应的主存块号
- 主存块与缓存块的块内地址相同
-
命中与未命中:
- 命中,主存块调入缓存
- 未命中,主存块未调入缓存
-
命中率:命中的/所有的
命中率和Cache容量和块长有关 -
字块长:
每个字块中字的数量,一个字包含n个位(bit)
3.Cache基本结构
- 地址映射变换机构:执行映射变换(主存块号—>缓存块号映射)
- 替换机构:执行缓存替换
4.Cache读写
-
读:
-
写:
- 写直达法:
写操作及写入Cache又写入主存 - 写回法:
写操作只把数据写入Cache,Cache被替换时再把数据写回主存
- 写直达法:
5.Cache改进
- 增加Cache级数
- 现代计算机每个核有自己的Cache,一般为3级
- 分为片载Cache和片外Cache
- 统一缓存变为分立缓存:
- 指令Cache
- 数据Cache
6.Cache主存地址映射
6.1 直接相联映射
主存中任意给定块只能放到给定的Cache块中。
- Cache地址取出标记与主存字块标记对比,相等命中,否则不命中
- 优缺点:
- 查询快
- Cache利用率低
- 冲突概率大
6.2 全相联映射
主存中任意一个块可以放到任意一个Cache块中。
- 主存字块标记和Cache中所有标记对比,相同命中
- 优缺点:
- 查询慢
- Cache利用率高
- 冲突(替换)概率小
6.3 组相联映射
直接相连和全相连的折中。
把Cache块分为若干组,每组2^i
个块(i=1,2,3...),几个块称为几路组相连。
主存中任意给定块只能放到给定的组中。
- 主存字块标记和组地址对应组中所有标记做对比,有相同命中
- 全相连和直接相连的折中方式
- 分1组:全相连(多级缓存中远离Cpu的Cache)
- 每组只有1块:直接相连(多级缓存中靠近Cpu的Cache)
7.替换算法
- FIFO:先进先出
- LRU:最近最久未使用
- 随机替换
8.辅助存储器
-
特点:
不直接与CPU交换信息
辅助存储器位置见第一张图 -
硬磁盘:
主机:cpu+主存
磁盘控制器:- 和主机使用总线相连
- 对硬盘(磁盘)直接控制
-
软盘:已退出市场
-
光盘:
一代:热作用,不可擦写
二代:热磁效应,可擦写