计算机高级缓存,高级计算机系统结构高速缓存.pptx

② 程序特征与Cache的读写 怎样判断哪些数据和程序代码是经常被访问的? “程序执行的局部性规律” ;包括:时间局部性规律和空间局部性规律 — 时间局部性规律: 程序执行过程中近期被访问的信息可能很快将被再次访问; 典型情况是程序中存在着大量的循环。 — 空间局部性规律: 那些与被访问的地址相邻近的信息可能很快被访问; 典型情况是程序顺序执行。;? 按照“局部性规律”, 数据或者代码被访问后, 该数据和代码以及临近的数据代码近期被再次访问的概率, 大于近期未被访问的数据/代码被访问的概率。;程序执行的局部性规律具有普适性, 如: ? LRU淘汰算法 ? 动态分支预测技术 ? 内存中存放近期被访问的页表, 大多数情况都能够满足应用需求 ? 80386/486处理器的TLB表命中率超过90%。;③ 命中率 ? Cache容量与命中率 ? Cache的结构与命中率 ? 与软件以及所处理的数据量大小成反比④ Cache的淘汰算法 ? 先进先出算法 ? 随机淘汰 ? LRU(最近最久未使用淘汰)算法 ? LFU算法(访问次数最少的内容被淘汰)⑤ Cache命中与否的判断 通过判断该数据/代码的地址是否在Cache中, 而不是判断该数据/代码本身。;一、高速缓存的结构及工作原理 高速缓存的三种主要结构: ? 全关联式高速缓存 ? 直接对应式高速缓存 ? 多组关联式高速缓存 ;1、全关联式高速缓存 高速缓存由两部分组成, 即地址部分(称为标签)和数据部分, 如下图所示(假设地址24位, 字长32位):;

; 处理器对存贮器的访问过程:;全关联式的优缺点分别是:; 假设:;? 对于所有总共256页, 需要8位地址作为标签(即地址的高8位A23~A16), 指明访问哪一个页面; 每页64K。;索引;② 特征说明 ? 所有页面的相同页内地址竞争同一标签字段 即只要索引值相同, 256个页面的页地址竞争该索引值对应的标签字段; ? 索引不变, 只需修改标签字段 索引字段保持不变, 变化的是标签(即页号)和数据部分。由于索引值不变, 因此索引值不需要比较, 一次译码即可找到。 ??? 只比较一次 用CPU给出地址的高8 (即页号)与标签字段比较, 相等则命中, 不相等则不命中。 ;③ 优缺点说明 ? 优点 一次比较即可判断命中与否, 速度快。 ? 缺点 ? 数据位置固定, 灵活性差; ? 由于“程序执行的时间局部性规律” , 命中率可能很低。 比如: 反复且轮流读取索引值相同但标签不同的两个或多个单元(比如01FFF8和12FFF8, 可能出现命中率为0 (如果采用全关联式结构, 则每次都能命中)。;3、多组关联式高速缓存 包括双组关联、四组关联、八组关联等。 ① 结构及工作原理 全关联式与直接对应式的结合。 以双组关联为例, 假设: 内存16M, Cache 64K。 ;对于32K页面, 页内地址只需要15位, 共512个页面,需要9位地址作标签。 ;标签;② 优缺点比较 优点: ?与直接对应相比, 由比较一次变为比较两次,同一索引值由竞争同一标签位置变为竞争两个标签位置, 竞争减少一半。因此, 命中率较直接对应式高。;基本结构的演进;1、全关联式结构; 标记 0页 标记 1页

标记 15页;2、直接对应式结构;由于分组, 一个内存地址逻辑上被分成三个部分:; 标记 0页 标记 1页

标记 15页;3、组关联式结构;;例: 32个字节为一个页, Cache共计16页, 采用双组关联(两页为一组), 按字节编址。问内存129号单元映射到Cache的哪一组?;二、高速缓存的数据一致性 1、高速缓存内容丢失;Cache内容与它对应主存内容不一致例:;A2;? 回写方式 (Write-Back — 写回);如果地址A1及内容x+y要被新的内容(地址A2和内容D2)淘汰, 则首先检查A1的“更新位”, 如果为1, 表明当前Cache内容与对应的主存内容不一致; 则先将A1内容(如上例的x+y)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值