Cache的原理与地址映像机制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主存和缓存的编址
主存储器 主存块号
标记
Cache
缓存块号
字块 0 字块 1
0 0 1
字块 0
字块 1
……
……
1
~
2 -1
n位
m
~
字块 M-1
2c-1
~ ~
c位
~ ~
字块 C-1
m位
主存块号 M块
b位
块内地址 B个字
b位
缓存块号 块内地址 C块 B个字
二、地址映像机制
地址映像机制
AC = f ( A M )
Cache原理 与地址映像机制
重点
Cache的工作原理 Cache的基本结构 地址映像机制 替换策略
一、Cache的工作原理
1. 问题的提出
CPU 和主存(DRAM)的速度差异
避免 CPU “空等” 现象
程序访问的局部性原理
时间局部性
空间局部性
一、Cache的工作原理
1. 问题的提出
CPU 和主存(DRAM)的速度差异
tc × 100% 则 e= h × tc+ (1-h)× tm
3. Cache 的 读 操作
开始 CPU发出访问地址 是 命中? 否 Cache满? 否 访问Cache 取出信息送CPU 访问主存 取出信息送CPU 将新的主存块 调入Cache中 执行替换算法 腾出空位
是
结束
4. Cache 的基本结构
并行查找
硬件: 相联存储器 单体多字存储器
二、地址映像机制
练习
某计算机cache采用4路组相联映像, 已知cache容量为16KB,主存容量为 2MB,每个字块有8个字,每个字32位。 (1)主存地址多少位,各字段如何划分? (2)设cache起始为空,CPU从主存单元 地址0开始依次读出101个字,并重复此次 序读11次,求命中率。 (3)若cache速度是主存的5倍,问采用 cache比不采用cache速度提高多少?
…
二、地址映像机制
3. 组相联
特点:
主存地址块映射到Cache的固定组中 的任意块 直接映像和全相联映像的折衷
二、地址映像机制
3. 组相联
若主存第i 块映象第k 组,则:
k=i mod(Q) (Q为Cache的组数) 设Q=2q,则当表示为二进制数时,k实 际上就是i 的低 q 位: i: k q位
字块2c+1-1
字块2c+1
… …
c位
m位
b位
字块2m-1
不命中
二、地址映像机制
1. 直接相联
特点:
主存地址块映射到Cache的固定块
j=i mod (M )
实现简单 空间利用率低,冲突概率高
二、地址映像机制
2. 全相联
Cache 存储器 m = t+c
标记 标记 字块0 字块1 …
主存储器
常用的地址映像方式 直接映像方式
全相联映像方式
组相联映像方式
二、地址映像机制
1. 直接相联
t位 Cache存储体 0 标记 * 1 标记
比较器(t位) 主存储体
字块 0 字块 1
字块0 字块1
…
…
字块2c-1
2c-1
标记 字块
2c-1
字块2c
字块2c +1
=
有效位=1? 是 命中 否
≠ 主存地址 Cache 主存字 字块 块标记 字块地址 内地址 t位
标记 标记 字块 0 字块 2 标记 标记 字块 1 字块 3
主存储器
字块0
字块1 字块2c-r - 1 字块2c-r
字块2c-r + 1
0
1
…
…
…
…
…
2 -1
c-r
标记 字块 2c-2 主存地址
标记 字块 2c-1 字块内地址 b位
…
主存字块标记
组地址
q = c-r 位 s=t+r 位 m位
字块2c-r+1 字块2m-1
避免 CPU “空等” 现象
CPU 缓存
容量小 速度高
主存
容量大 速度低
字
块
2. Cache的命中率
命中
主存块 调入 缓存 主存块与缓存块 建立 了对应关系
标记记录 与某缓存块建立了对应关系的 主存块号 未命中
主存块 未调入 缓存
主存块与缓存块 未建立 对应关系
命中率
CPU 欲访问的信息在 Cache 中的 比率
二、地址映像机制
3. 组相联
n 路组相联:每组中有n 个块(n=M/G )
n 称为相联度。
相联度越高,Cache空间的利用率就越高,
块冲突概率就越低,命中率也就越高。
全相联 直接映象 组相联
n (路数) M 1 1<n<M G (组数) 1 M 1<G<M
二、地址映像机制
4. 查找方法
基于目录表的查找
二、地址映像机制
4. 查找方法
基于目录表的查找
只需查找候选位置 所对应的目录表项
二、地址映像机制
4. 查找方法
并行查找 顺序查找
二、地址映像机制
4. 查找方法
顺序查找
主候选位置 (MRU块)
二、地址映像机制
4. 查找方法
并行查找
硬件: 相联存储器 单体多字存储器
二、地址映像机制
4. 查找方法
命中率 与 Cache 的 容量 与 块长 有关 H
C
命中率
CPU 欲访问的信息在 Cache 中的 比率
命中率 与 Cache 的 容量 与 块长 有关
H 1 容量大
容量小 BC
Cache –主存系统的效率
效率 e 与 命中率 有关
访问 Cache 的时间 e= × 100% 平均访问时间
设 Cache 命中率 为 h,访问 Cache 的时间为 tc , 访问 主存 的时间为 tm
地址总线
由CPU完成
访问主存 替换Cache
主存块号
块号
块内地址
Cache Cache 替换机构 替换机构
否
可装进?
否
命中?
主存Cache 地址映像 变换机构
主
访问主存装入Cache 是 是 Cache地址 直接通路 块号 块内地址
CPU
存
Cache存储体
Cache 存储体
数据总线
二、地址映射机制
字块0
字块1 … 字块2c-1
标记
字块2c-1
…
主存地址
主存字块标记 字块内地址
字块2m-1
m=t+c位
b位
二、地址映像机制
2. 全相联
特点:
主存地址块映射到Cache的任意块 空间利用率高,冲突概率低 实现复杂
wenku.baidu.com、地址映像机制
3. 组相联
组
Cache 共 Q 组,每组内两块(r = 1)
主存储器 主存块号
标记
Cache
缓存块号
字块 0 字块 1
0 0 1
字块 0
字块 1
……
……
1
~
2 -1
n位
m
~
字块 M-1
2c-1
~ ~
c位
~ ~
字块 C-1
m位
主存块号 M块
b位
块内地址 B个字
b位
缓存块号 块内地址 C块 B个字
二、地址映像机制
地址映像机制
AC = f ( A M )
Cache原理 与地址映像机制
重点
Cache的工作原理 Cache的基本结构 地址映像机制 替换策略
一、Cache的工作原理
1. 问题的提出
CPU 和主存(DRAM)的速度差异
避免 CPU “空等” 现象
程序访问的局部性原理
时间局部性
空间局部性
一、Cache的工作原理
1. 问题的提出
CPU 和主存(DRAM)的速度差异
tc × 100% 则 e= h × tc+ (1-h)× tm
3. Cache 的 读 操作
开始 CPU发出访问地址 是 命中? 否 Cache满? 否 访问Cache 取出信息送CPU 访问主存 取出信息送CPU 将新的主存块 调入Cache中 执行替换算法 腾出空位
是
结束
4. Cache 的基本结构
并行查找
硬件: 相联存储器 单体多字存储器
二、地址映像机制
练习
某计算机cache采用4路组相联映像, 已知cache容量为16KB,主存容量为 2MB,每个字块有8个字,每个字32位。 (1)主存地址多少位,各字段如何划分? (2)设cache起始为空,CPU从主存单元 地址0开始依次读出101个字,并重复此次 序读11次,求命中率。 (3)若cache速度是主存的5倍,问采用 cache比不采用cache速度提高多少?
…
二、地址映像机制
3. 组相联
特点:
主存地址块映射到Cache的固定组中 的任意块 直接映像和全相联映像的折衷
二、地址映像机制
3. 组相联
若主存第i 块映象第k 组,则:
k=i mod(Q) (Q为Cache的组数) 设Q=2q,则当表示为二进制数时,k实 际上就是i 的低 q 位: i: k q位
字块2c+1-1
字块2c+1
… …
c位
m位
b位
字块2m-1
不命中
二、地址映像机制
1. 直接相联
特点:
主存地址块映射到Cache的固定块
j=i mod (M )
实现简单 空间利用率低,冲突概率高
二、地址映像机制
2. 全相联
Cache 存储器 m = t+c
标记 标记 字块0 字块1 …
主存储器
常用的地址映像方式 直接映像方式
全相联映像方式
组相联映像方式
二、地址映像机制
1. 直接相联
t位 Cache存储体 0 标记 * 1 标记
比较器(t位) 主存储体
字块 0 字块 1
字块0 字块1
…
…
字块2c-1
2c-1
标记 字块
2c-1
字块2c
字块2c +1
=
有效位=1? 是 命中 否
≠ 主存地址 Cache 主存字 字块 块标记 字块地址 内地址 t位
标记 标记 字块 0 字块 2 标记 标记 字块 1 字块 3
主存储器
字块0
字块1 字块2c-r - 1 字块2c-r
字块2c-r + 1
0
1
…
…
…
…
…
2 -1
c-r
标记 字块 2c-2 主存地址
标记 字块 2c-1 字块内地址 b位
…
主存字块标记
组地址
q = c-r 位 s=t+r 位 m位
字块2c-r+1 字块2m-1
避免 CPU “空等” 现象
CPU 缓存
容量小 速度高
主存
容量大 速度低
字
块
2. Cache的命中率
命中
主存块 调入 缓存 主存块与缓存块 建立 了对应关系
标记记录 与某缓存块建立了对应关系的 主存块号 未命中
主存块 未调入 缓存
主存块与缓存块 未建立 对应关系
命中率
CPU 欲访问的信息在 Cache 中的 比率
二、地址映像机制
3. 组相联
n 路组相联:每组中有n 个块(n=M/G )
n 称为相联度。
相联度越高,Cache空间的利用率就越高,
块冲突概率就越低,命中率也就越高。
全相联 直接映象 组相联
n (路数) M 1 1<n<M G (组数) 1 M 1<G<M
二、地址映像机制
4. 查找方法
基于目录表的查找
二、地址映像机制
4. 查找方法
基于目录表的查找
只需查找候选位置 所对应的目录表项
二、地址映像机制
4. 查找方法
并行查找 顺序查找
二、地址映像机制
4. 查找方法
顺序查找
主候选位置 (MRU块)
二、地址映像机制
4. 查找方法
并行查找
硬件: 相联存储器 单体多字存储器
二、地址映像机制
4. 查找方法
命中率 与 Cache 的 容量 与 块长 有关 H
C
命中率
CPU 欲访问的信息在 Cache 中的 比率
命中率 与 Cache 的 容量 与 块长 有关
H 1 容量大
容量小 BC
Cache –主存系统的效率
效率 e 与 命中率 有关
访问 Cache 的时间 e= × 100% 平均访问时间
设 Cache 命中率 为 h,访问 Cache 的时间为 tc , 访问 主存 的时间为 tm
地址总线
由CPU完成
访问主存 替换Cache
主存块号
块号
块内地址
Cache Cache 替换机构 替换机构
否
可装进?
否
命中?
主存Cache 地址映像 变换机构
主
访问主存装入Cache 是 是 Cache地址 直接通路 块号 块内地址
CPU
存
Cache存储体
Cache 存储体
数据总线
二、地址映射机制
字块0
字块1 … 字块2c-1
标记
字块2c-1
…
主存地址
主存字块标记 字块内地址
字块2m-1
m=t+c位
b位
二、地址映像机制
2. 全相联
特点:
主存地址块映射到Cache的任意块 空间利用率高,冲突概率低 实现复杂
wenku.baidu.com、地址映像机制
3. 组相联
组
Cache 共 Q 组,每组内两块(r = 1)