《计算机系统结构》课件(单博炜)第4、5章 存储系统、 并行处理机.ppt

《计算机系统结构》课件(单博炜)第4、5章 存储系统、 并行处理机.ppt

  1. 1、本文档共177页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

写回法和写直达法是两种常用的写策略,它们具有以下特点。写回法把开销花费在替换时,而写直达法则是把开销花费在每次写Cache时都要附加一个比写Cache时间长得多的写主存时间。写回法和写直达法都需要有少量缓冲器。写回法中缓冲器用于暂存要写回的块,使之不必等待被替换块写回主存后才开始进行Cache取;写直达法中则用于缓冲由写Cache导致的要写回主存昀内容,使CPU不必等待这些写主存完成就可往下运行。写回法使主存的通信量比写直达法的要小得多(如采用写回法有利于省去许多将中间结果写入主存的无谓开销),但它增加了Cache的复杂性(如需要设置修改位以确定是否需要写回以及控制先写回后才调入的执行顺序),并且写回法在块替换前,会存在主存内容与Cache内容不一致的问题。写直达法的可靠性比写回法的可靠性要高。写直达法需花费大量缓冲器和其他辅助逻辑来减少CPU为等待写主存所耗费的时间,相对而言写回法的实现成本则要低得多。在出现写不命中时,这两种方法都面临着一个在写时是否取的问题。这有两种解决方法:一种是不按写分配法,即当Cache写不命中时只写入主存,该单元所在块不从主存调入Cache;另一种是按写分配法,即当Cache写不命中时除写入主存外,还把该单元所在块由主存调入Cache。这两种策略对不同的写策略其效果不同,但差别不大。写回法一般采用“按写分配”,写直达法一般采用“不按写分配”。采用写回法和写直达法还与使用场合有关:一般单处理机Cache多数采用写回法以节省成本;而共享主存的多处理机系统为保证各处理机经主存交换信息时不出错(为提高可靠性),多数采用写直达法。至于Cache的内容跟不上已变化了的主存内容的问题,一种解决方法是当IOP向主存写入(输入)新内容时,由操作系统用某个专用指令清除整个Cache。这种方法的缺点是使Cache对操作系统和系统程序员非透明。另一种方法是当IOP向主存写入新内容时,由专用硬件自动地将Cache肉对应区域的副本作废,而不必由操作系统干预,从而保持了Cache的透明性。另外,采用CPU、IOP共享一个Cache也是一种办法。多处理机系统的Cache结构及一致性多处理机系统的一般形式,是由多个CPU和多个I/O处理机组成共享主存的系统。对于共享主存的多处理机系统,绝大多数还是采用各个CPU具有自己私有Cache的方式与共享主存连接。在这样的系统中,由于Cache的透明性,仅靠采用写直达法并不能保证同一主存单元在各个Cache中的对应内容都一致。例如,在图4.37所示的系统中,处理机A和处理机B通过各自的Cachea和Cacheb共享主存。在处理机A写入Cachea的同时,采用写直达法也写入了主存,如果恰好Cacheb中也有此单元,则其内容并未变化,此时若处理机B也访问此单元,就会因读到的是原先的内容而出错。因此,还需要采取措施以保证包含此单元的所有Cache的内容都一致才行。对于在共享主存的多处理机系统中,多个Cache与主存内容不一致的问题。解决的方法有三种:播写法。当任何处理机要写入Cache时,不仅写入自己Cache的目标块和主存中,还把信息播写到其他包含此单元的Cache中,或者让其他Cache包含此单元的块作废。控制某些共享信息不得进入Cache。目录表法。在CPU读、写Cache不命中时,先得查在主存中的目录表,以判定目标块是否已在别的Cache内,以及是否正在被修改等,然后再决定如何读、写此块。如果一个I/O处理机修改了共享主存的内容,它会使某些CPU的Cache中与之相对的内容与主存内容不一致,解决方法有两种:当I/O处理机未经Cache而往主存写入新内容时,由操作系统通过专用指令清除整个Cache,但这样会使Cache对操作系统和系统程序员不透明。当I/O处理机向主存的某个区域写入新内容时,由专用硬件自动地将所有Cache中对应此区域的副本作废,而无须操作系统进行任何干预,从而保持了Cache的透明性。Cache的取算法所谓取算法是指将信息从主存调入Cache的规则,取算法的选择会对Cache的命中率有所影响。Cache一般采用按需取进法,即在Cache不命中时,才将要访问的单元所在的块(行)调入Cache。为了进一步提高Cache块命中率,还可以采用预取算法。预取算法是指在用到某信息块之前就将其预取进Cache的算法。为了便于硬件实现,通常只预取直接顺序的下一块,至于何时取进该块,预取算法有两种不同的方法:恒预取和不命中时预取。恒预取是指只要访问到主存第i块的某个字,不论Cache是否命中,恒发预取命令;不命中时预取是指只当访问第i块的某个字不命中时,才发预取命令。采用预取法并非一定能提高命中率和效率,它还与下面的因素有关:

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档