第六章 存储器系统(3)高速缓存与存储管理

上传人:012****78 文档编号:132721192 上传时间:2020-05-19 格式:PPT 页数:41 大小:188KB
返回 下载 相关 举报
第六章 存储器系统(3)高速缓存与存储管理_第1页
第1页 / 共41页
第六章 存储器系统(3)高速缓存与存储管理_第2页
第2页 / 共41页
第六章 存储器系统(3)高速缓存与存储管理_第3页
第3页 / 共41页
第六章 存储器系统(3)高速缓存与存储管理_第4页
第4页 / 共41页
第六章 存储器系统(3)高速缓存与存储管理_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第六章 存储器系统(3)高速缓存与存储管理》由会员分享,可在线阅读,更多相关《第六章 存储器系统(3)高速缓存与存储管理(41页珍藏版)》请在金锄头文库上搜索。

1、6 3高速缓冲存储器 主存是一个影响性能的关键因素因为处理器的运行速度提高 但由DRAM组成的主存的存取时间较慢 跟不上处理器运行速度SRAM速度较快 但其容量较小 价格较贵 无法大量用于微机系统 Cache asafeplaceforhidingorstoringthings 解决方案 高速缓冲存储器Cache Memory 完全用硬件实现主存速度的提高 6 3 1高速缓存的工作原理 高速缓存 在相对容量较大而速度较慢的主存DRAM与高速处理器之间设置的少量但快速SRAM组成的存储器高速命中 Hit 处理器读取主存的内容已包含在Cache中 可以直接读取Cache 不用访问主存高速缺失 Mi

2、ss 处理器读取主存的内容不在Cache中 需要访问主存读取一个数据块 高速缓存的读操作 1 高速缓存的结构 主存以字 字节 为寻址单位Cache以行 线Line 槽Slot 为寻址单位Cache行包含B个主存字 对应一个主存块Cache与主存间的数据传送以数据块为单位主存划分成M 2n B个 主存块 Cache具有m个 Cache行 Cache由数据存储器和标签存储器组成数据存储器 高速缓存主存数据标签存储器 保存数据所在主存的地址信息 示意图 高速缓存Cache和主存的组成结构 2 高速缓存的容量和行大小 高速缓存性能的主要指标是命中率 Hitrate 命中率 HitRate 高速命中的概

3、率对于高速缓存容量希望它足够大 使存取时间接近高速缓存希望它尽量小 使单位成本接近主存受可用的芯片面积限制同时还和运行的程序有关对于Cache行大小从很小增大 命中率开始会有提高进一步增大 命中率可能反而减小 最优 3 高速缓存的数量 单级与多级Cache片上高速缓存 On chipCache 第1级高速缓存 L1Cache 第2级高速缓存 L2Cache 第3级高速缓存 L3Cache 统一与分离Cache统一 Unified Cache单个高速缓存既用于高速缓冲保存指令也用于保存数据分离 Split Cache一个专用于缓冲指令 I Cache 一个专用于缓冲数据 D Cache 6 3

4、2地址映射 Cache通过地址映象 mapping 的方法确定主存块与Cache行之间的对应关系 确定一个主存块应该存放到哪个Cache行中直接映象 directmapping 将一个主存块存储到唯一的一个Cache行全相联映象 fullyassociativemapping 可以将一个主存块存储到任意一个Cache行组相联映象 setassociativemapping 可以将一个主存块存储到唯一的一个Cache组的任意一个行 直接映象 2 4 8路组相联映象使用较多 1 直接映射 DirectMapping 将每个主存块固定地映射到某个Cache行第i个Cache行只能存储所有主存页的第i

5、个主存块硬件简单 易于实现 会发生冲突 利用率较低高速缓存容量m 2s行 2s w字Cache行 2w个字 具有2s行主存容量M 2n字 2n w主存块 2t个主存页每个主存页的容量 高速缓存容量2s wn位主存地址由3个部分组成 n t s w高t位作标签s位地址作为索引最低w位区别字比较s索引的一个标签存储器内容 说明是否命中 组成图 示例图 直接映射的组成 直接映射的示例 2 全相关映射 FullAssociativeMapping 将一个主存块存储到任意一个Cache行使用灵活 利用率高 但实现电路比较复杂高速缓存容量m 2s行 2s w字主存容量M 2n字 2n w主存块标签存储器保

6、存完整的主存块地址 t n wn位主存地址由2个部分组成 n t w高t位作标签最低w位区别字高速缓存控制逻辑必须比较全部标签存储器的内容 才能确定是否命中 组成图 示例图 全相关映射的组成 全相关映射的示例 3 组相关映射 SetAssociativeMapping 将多个Cache行作为一个组 Set 组内各个Cache行采用全相关映射 各个组间采用直接映射取直接映射的简单和全相关映射的灵活 而克服两者的不足所有组中同位置Cache行称为一路 Way 通常采用2 4 8或16个为一组 分别被称为2路 4路 8路或16路组合相关映射比较s索引的2 4 8或16个标签存储器内容 说明是否命中

7、组成图 示例图 只有一路 每组只有一个Cache行 就是直接相关映射只有一组 每个Cache行都是一路 就是全相关映射 组相关映射的组成 组合相关映射的示例 6 3 3替换算法 直接映象只有一个Cache行可以选择组合相关和全相关有多个Cache行可以选择替换算法有多种 1 随机法 random 随意选择被替换的行 不依赖以前的使用情况2 先进先出法 FIFO firstinfirstout 替换最早 存放时间最长 的行3 最近最少使用法 LRU least recentlyused 本指替换近期最少使用的行 实际实现的是替换最久没有被使用的行4 最不常用 LFU least frequent

8、lyused 替换使用次数最少的行 LRU替换算法 LRU能较好地反映程序的局部性 因而其命中率较高 应用广泛 但实现的硬件较复杂2路组相联 使用一个U位 某个Cache块被访问 该块U位置1 对应块U位置0 替换U位为0的块4 8 16路组相联 运用堆栈型算法 最近访问的块放上面 最下面存放最久没有访问的块 替换最下面的块 6 3 4写入策略 处理器对高速缓存的访问主要是读取访问写入操作数的问题较复杂一些写命中 写入的数据在高速缓存中确认命中 才可以对Cache块写入 写入后可能导致与主存内容不一致要解决主存内容更新问题 保持数据的正确性写未命中 指令对主存进行写入的操作数没有在高速缓存中此

9、时 写入的数据是否还要将其读回Cache呢 1 写命中的处理 直写策略 writethrough 写入Cache的同时也写入主存 下一级存储器 优点 简单可靠缺点 总线操作频繁 影响工作速度解决方法 在Cache与主存间设置一级 多级缓冲器 形成实用的 缓冲直写 提高速度回写策略 writeback 只写入Cache 在被替换时才写回主存优点 可以减少写入主存次数 提高速度缺点 硬件结构比较复杂实现方法 设置一个表明Cache是否被修改的更新位 update 污染位dirtybit 替换时只需将被修改的Cache块内容写入主存 2 写未命中的处理 写未命中 指令对主存进行写入的操作数没有在高速

10、缓存中此时 写入的数据是否还要将其读回Cache呢 写分配法 writeallocate 先把数据所在的块调入Cache 然后再进行写入类似读失效的方式 也称fetchonwrite不写分配法 no writeallocate 直接把数据写入下一级存储器 不将相应的块调入Cache 也称writearound直写策略通常配合不写分配法回写策略一般采用写分配法 3 数据一致性协议 系统存在多级 多个Cache 一个主存数据可能具有多个副本 需要保持数据一致数据一致性协议 用硬件方法解决高速缓存的数据一致性问题MESI协议是广泛应用的数据一致性协议修改M 该Cache块已经被修改 与主存不同 而且

11、只在这个Cache中可用唯一E 该Cache块与对应主存块相同 而且不存在于其它Cache中共享S 该Cache块与对应主存块相同 但可能存在于其它Cache中无效I 该Cache块包含的数据无效 6 3 580486的L1Cache 指令和数据共用的4路组合相关Cache结构8KB容量分成128组 每组有4路 每组每路为一行 每行为16个字节 128位 每行对应21位标签 一个有效位每组中4路对应3位LRU位 用于实现伪LRU替换算法采用4级缓冲直写策略 允许6个连续的写操作而无等待写缺失时 采用不写分配法 只将数据写入主存 不进行Cache的回填 示意图 80486第一级高速缓存的结构 6

12、 3 6Pentium的L1Cache 指令和数据分离的2路组合相关Cache结构指令Cache和数据Cache都是8KB 共16KB8KB容量分成128组 每组2路 每行32字节LRU算法 回写策略 可动态改变为直写策略 一次写 writeonce 协议 Pentium采用MESI协议 配合第一次直写 以后回写 实现L1和L2Cache的数据一致 6 4存储管理 存储器是计算机系统的重要资源 操作系统的主要功能之一是存储管理 如何动态地为多个任务分配存储器IA 32处理器从硬件上支持并加速操作系统的存储管理 分段和分页机制构成存储管理单元MMU分段 segment 将程序按照逻辑关系分成可大

13、可小的模块分页 page 将程序分成为若干个大小相同的模块 6 4 1段式存储管理 系统维护段表硬件实现转换 1 段选择器 保护方式的16位段寄存器被定义为段选择器包含3个域 指向一个段描述符索引域记录段描述符在 描述符表 内的位置表指示位TI指示要寻址的描述符表请求特权层RPL反映请求本次存取的特权级别 2 描述符 描述符是保护方式引入的数据结构 8个字节64位 段描述符 描述 段的属性段界限 segmentlimit 用于存储空间保护基地址 baseaddress 用于形成物理地址访问权字节 accessrightsbyte 段访问权限 该段当前是否驻留主存 该段所具有的特权层和段类型 用

14、于特权保护 3 操作数寻址过程 1 段选择器的TI域指明描述符表 获得描述符表基地址 2 利用索引值指向该段的段描述符 3 从段描述符中取出段基地址 从逻辑地址中取出段内偏移地址 4 基地址与偏移地址相加 得到操作数的线性地址 存储器操作数的寻址过程 6 4 2页式存储管理 页式存储管理便于构成虚拟存储器处于主存和辅存之间通过硬件的存储管理单元MMU在核心软件或操作系统管理下利用磁盘文件比实际主存空间大的虚拟存储空间虚拟存储器可以简化存储管理有效地使用主存空间为各个程序 进程 呈现统一的地址空间实现程序间的保护 pagefile sys 1 分页组织 线性地址 段基地址 偏移地址不分页式 物理

15、地址 线性地址分页管理 线性地址转换为物理地址页目录基地址寄存器CR3包含页目录的物理起始地址页目录保存页目录项 包含页表的地址及有关信息页表保存页表项 包含主存页面的地址及有关信息 示意图 分页机制 系统维护页表硬件实现转换 页目录项和页表项 P存在位 页表或页面是否在物理存储器中R W读 写位 指明页面是只读的 还是可读可写U S用户 管理员位 页面仅能由管理员层的程序使用 还是用户层和管理员层的程序均能使用PWT页直写位 控制页表或页面使用直写还是回写的高速缓存写入策略PCD页高速缓存禁止位 控制页表或页面禁止还是使用高速缓存A访问位 页面进行读或写操作时置位D写操作位 dirty脏位

16、页面进行写操作时被置位 示意图 CR3 页目录项和页表项 2 分页操作 处理器设置称为转换后备缓冲器TLB的快表比较快表 如果有一个地址匹配得到页面起始地址 加上偏移量 就是物理地址如果没有地址匹配2级查表转换为物理地址 1 CR3包含页目录起始地址 指定页目录项 2 页目录项包含页表起始地址 指定页表项 3 页表项包含页面起始地址 加上偏移量 才是物理地址 3 Win32的虚拟地址分配 掌握存储系统的层次结构和局部性原理掌握SRAM的存储结构和引脚熟悉DRAM的引脚特点和刷新熟悉各种半导体ROM芯片的特点掌握地址译码方法和138译码器了解PC机主存的分配和应用掌握高速缓存的工作原理熟悉地址映射 替换算法和写入策略熟悉IA 32处理器分段分页存储管理机制 教学要求 第6章存储系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号