《Cache的原理与地址映像机制》由会员分享,可在线阅读,更多相关《Cache的原理与地址映像机制(27页珍藏版)》请在金锄头文库上搜索。
1、Cache原理 与地址映像机制重点Cache的工作原理Cache的基本结构地址映像机制替换策略1. 问题的提出 避免 CPU “空等” 现象 CPU 和主存(DRAM)的速度差异程序访问的局部性原理一、Cache的工作原理 空间局部性 时间局部性1. 问题的提出 避免 CPU “空等” 现象 CPU 和主存(DRAM)的速度差异缓存CPU主存容量小 速度高容量大 速度低一、Cache的工作原理字块主存块 调入 缓存主存块与缓存块 建立 了对应关系标记记录 与某缓存块建立了对应关系的 主存块号命中未命中主存块与缓存块 未建立 对应关系主存块 未调入 缓存2. Cache的命中率命中率CPU 欲访
2、问的信息在 Cache 中的 比率命中率 与 Cache 的 容量 与 块长 有关 命中率CPU 欲访问的信息在 Cache 中的 比率命中率 与 Cache 的 容量 与 块长 有关 Cache 主存系统的效率效率 e 与 命中率 有关设 Cache 命中率 为 h,访问 Cache 的时间为 tc ,访问 主存 的时间为 tm则 e = 100%tch tc+ (1h) tm访问 Cache 的时间平均访问时间e = 100%3. Cache 的 读 操作访问Cache 取出信息送CPU访问主存 取出信息送CPU将新的主存块 调入Cache中执行替换算法腾出空位结束命中?Cache满?CP
3、U发出访问地址开始是否是否4. Cache 的基本结构Cache 替换机构Cache 存储体主存Cache 地址映像 变换机构由CPU完成二、地址映射机制 主存和缓存的编址 主存块号主存储器012m1字块 0字块 1字块 M1主存块号块内地址m位b位n位M块B个字缓存块号块内地址c位b位C块B个字 字块 0字块 1字块 C1012c1标记Cache缓存块号二、地址映像机制地址映像机制AC = f ( AM )常用的地址映像方式l直接映像方式l全相联映像方式l组相联映像方式二、地址映像机制1. 直接相联字块2m1字块2c+1字块2c+11字块2c +1字块2c字块2c1字块1字块0主存储体字块
4、1标记字块 0标记字块 2c1标记Cache存储体t位0 12c1字块 字块地址主存字 块标记t 位c 位b 位主存地址比较器(t位) =不命中有效位=1?*m位Cache 内地址否是 命中字块2c+1字块2c字块0字块 0二、地址映像机制1. 直接相联特点: 主存地址块映射到Cache的固定块ji mod (M ) 实现简单 空间利用率低,冲突概率高二、地址映像机制2. 全相联字块2m1字块2c1字块1字块0字块2c1字块1字块0标记标记标记主存字块标记 字块内地址主存地址m = t + c 位b位m = t+cCache 存储器主存储器字块0二、地址映像机制2. 全相联特点: 主存地址块映
5、射到Cache的任意块 空间利用率高,冲突概率低 实现复杂二、地址映像机制3. 组相联字块2m1字块2c-r+1字块2c-r + 1字块2c-r字块2c-r 字块1字块0字块 3标记字块 1标记字块 2c1标记字块 2标记字块 0标记字块 2c2标记字块内地址组地址主存字块标记s = t + r 位q = cr 位b 位组012c-r1主存地址Cache主存储器m 位共 Q 组,每组内两块(r = 1)1字块0字块 1 字块 0字块2c-r字块2c-r+1二、地址映像机制3. 组相联特点: 主存地址块映射到Cache的固定组中的任意块 直接映像和全相联映像的折衷二、地址映像机制3. 组相联若主
6、存第i 块映象第k 组,则:ki mod(Q) (Q为Cache的组数)设Q2q,则当表示为二进制数时,k实际上就是i 的低 q 位:q 位ki:二、地址映像机制3. 组相联 n 路组相联:每组中有n 个块(nM/G )n 称为相联度。相联度越高,Cache空间的利用率就越高,块冲突概率就越低,命中率也就越高。 全相联 直接映象组相联n (路数)G (组数) M M111nM1GM二、地址映像机制4. 查找方法基于目录表的查找二、地址映像机制4. 查找方法基于目录表的查找只需查找候选位置所对应的目录表项二、地址映像机制4. 查找方法并行查找顺序查找二、地址映像机制4. 查找方法顺序查找主候选位置 (MRU块)二、地址映像机制4. 查找方法并行查找硬件: 相联存储器 单体多字存储器二、地址映像机制4. 查找方法并行查找硬件: 相联存储器 单体多字存储器二、地址映像机制 练习某计算机cache采用4路组相联映像 ,已知cache容量为16KB,主存容量为 2MB,每个字块有8个字,每个字32位。(1)主存地址多少位,各字段如何划分? (2)设cache起始为空,CPU从主存单元 地址0开始依次读出101个字,并重复此次 序读11次,求命中率。 (3)若cache速度是主存的5倍,问采用 cache比不采用cache速度提高多少?