- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LRU替换算法 LRU能较好地反映程序的局部性,因而其命中率较高,应用广泛;但实现的硬件较复杂 2路组相联:使用一个U位。某个Cache块被访问,该块U位置1;对应块U位置0。替换U位为0的块 4/8/16路组相联:运用堆栈型算法。最近访问的块放上面,最下面存放最久没有访问的块。替换最下面的块 6.3.4 写入策略 处理器对高速缓存的访问主要是读取访问 写入操作数的问题较复杂一些 写命中:写入的数据在高速缓存中 确认命中,才可以对Cache块写入,写入后可能导致与主存内容不一致 要解决主存内容更新问题,保持数据的正确性 写未命中:指令对主存进行写入的操作数没有在高速缓存中 此时,写入的数据是否还要将其读回Cache呢? 1. 写命中的处理 直写策略(write through) 写入Cache的同时也写入主存(下一级存储器) 优点:简单可靠 缺点:总线操作频繁、影响工作速度 解决方法:在Cache与主存间设置一级/多级缓冲器,形成实用的“缓冲直写”,提高速度 回写策略(write back) 只写入Cache,在被替换时才写回主存 优点:可以减少写入主存次数、提高速度 缺点:硬件结构比较复杂 实现方法:设置一个表明Cache是否被修改的更新位(update,污染位dirty bit)。替换时只需将被修改的Cache块内容写入主存 2. 写未命中的处理 写未命中:指令对主存进行写入的操作数没有在高速缓存中 此时,写入的数据是否还要将其读回Cache呢? 写分配法( write allocate ) 先把数据所在的块调入Cache,然后再进行写入 类似读失效的方式,也称fetch on write 不写分配法( no-write allocate ) 直接把数据写入下一级存储器,不将相应的块调入Cache,也称write around 直写策略通常配合不写分配法 回写策略一般采用写分配法 3. 数据一致性协议 系统存在多级、多个Cache,一个主存数据可能具有多个副本,需要保持数据一致 数据一致性协议:用硬件方法解决高速缓存的数据一致性问题 MESI协议是广泛应用的数据一致性协议 修改M:该Cache块已经被修改(与主存不同),而且只在这个Cache中可用 唯一E:该Cache块与对应主存块相同,而且不存在于其它Cache中 共享S:该Cache块与对应主存块相同,但可能存在于其它Cache中 无效I:该Cache块包含的数据无效 6.3.5 80486的L1 Cache 指令和数据共用的4路组合相关Cache结构 8KB容量分成128组,每组有4路,每组每路为一行,每行为16个字节(128位) 每行对应21位标签,一个有效位 每组中4路对应3位LRU位,用于实现伪LRU替换算法 采用4级缓冲直写策略,允许6个连续的写操作而无等待 写失效时,采用不写分配法,只将数据写入主存,不进行Cache的回填 示意图 80486第一级高速缓存的结构 返回 6.3.6 Pentium的L1 Cache 指令和数据分离的2路组合相关Cache结构 指令Cache和数据Cache都是8KB,共16KB 8KB容量分成128组,每组2路,每行32字节 LRU算法,回写策略(可动态改变为直写策略) 一次写(write once)协议 Pentium采用MESI协议,配合第一次直写,以后回写,实现L1和L2 Cache的数据一致 操作 L1状态 L1数据 L2数据 ? 复位或清洗后 ? 读入数据 ? 第1次直写 ? 再次回写 ? 发生替换后 无效I 共享S 唯一E 修改M 共享S 无效 有效 有效 有效 有效 无效 有效 有效 无效 有效 6.4 存储管理 存储器是计算机系统的重要资源,操作系统的主要功能之一是存储管理: 如何动态地为多个任务分配存储器 IA-32处理器从硬件上支持并加速操作系统的存储管理: 分段和分页机制构成存储管理单元MMU 分段(segment) 将程序按照逻辑关系分成可大可小的模块 分页(page) 将程序分成为若干个大小相同的模块 6.4.1 段式存储管理 系统维护段表 硬件实现转换 1. 段选择器 保护方式的16位段寄存器被定义为段选择器 包含3个域,指向一个段描述符 索引域 记录段描述符在“描述符表”内的位置 表指示位TI 指示要寻址的描述符表 请求特权层RPL 反映请求本次存取的特权级别 15 3 2 10 段选择器=段寄存器 索引 TI RPL 2. 描述符 描述符是保护方式引入的数据结构,8个字节64位,段描述符:“描述”段的属性 段界限(segment limit):用于存储空间保护 基地址(base address):用于形成物理地址 访问权字节(access rights byte)
文档评论(0)