实验七多Cache一致性——监听协议7.1实验目的1.加深对多Cache一致性的理解;2.进一步掌握解决多Cache一致性的监听协议的基本思想;3.掌握在各种情况下,监听协议是如何工作的。能给出要进行什么样的操作以及状态的变化情况。7.2实验平台多Cache一致性监听协议模拟器,《计算机系统结构实验教程》附书光盘中提供,清华大学出版社。设计:张晨曦教授(xzhang2000@sohu.com),版权所有。开发:程志强。7.3实验内容及步骤首先要掌握该模拟器的使用方法。(见7.4节)1.对于以下访问序列,写出监听协议所进行的操作:所进行的访问是否发生了替换?是否发生了写回?监听协议所进行的操作CPUA读第5块否否将存储器号为5的块送到cacheA的1中,再送到cpuA中CPUB读第5块否否将存储器号为5的块送到cacheB的1中,再送到cpuB中CPUC读第5块否否将存储器号为5的块送到cacheC的1中,再送到cpuC中CPUB写第5块是否将要写的送到chcheB1中,其他cache中的5失效CPUD读第5块否是CacheB1中5传到存储器5再送到CacheD1中,再送到cpuD中CPUB写第21块是否将存储器号为21的块送到cacheB的1中,替换掉原来存的5,??CPUB向CacheB1写入数据)CPUA写第23块否否将存储器号为23的块送到cacheA的3中,cpuA向CacheA3写入数据CPUC写第23块否是将CacheA中的23块内容写回存储器,再将此块内容送到CacheC的3中,cpuC向CahceC3写入数据CPUB读第29块是是将CacheB1的21块内容写回存储器21块,之后在将29块内容送到CacheB中1,再送到cpuB中CPUB写第5块是否将存储器5中的数据读入CacheB1,cpuB将内容写到CacheB1中,其他cpu中的5的内容作废2.自己编写一个访问序列,写出监听协议所进行的操作:所进行的访问是否发生替换是否发生写回监听协议所进行的操作CPUA读第5块否否将存储器号为5的块送到cacheA的1中,再送到cpuA中CPUB读第5块否否将存储器号为5的块送到cacheB的1中,再送到cpuA中CPUC写第5块否否将存储器号为5的块送到cacheC的1中,将要写的数据写到CacheC1中,其它失效CPUD读第5块否是将cacheC的1中5的内容写回到存储器5,然后再送到cacheD的1中,再送到cpuD中CPUD写第5块否否命中,写到CacheD1中,作废CacheD1中5CPUB写第29块否否将存储器号为29的块送到cacheB的1中,CPUB向CacheB1写入数据CPUA写第29块否否将存储器号为29的块送到CacheA的1中,cpuA向CacheA1写入数据CPUC写第29块否是将CacheA的1中29的内容写回到存储器然后将此块送到CacheC的1中,cpuC向CacheC1写入数据CPUB读第21块否是存储器21块内容送到cacheB中的1中CPUB读第20块否否将存储器号为20的块送到cacheB的0中,再送到cpuB中4.根据上述结果,画出相关的状态转换图。C写5号单元D读5号单元7.4监听协议模拟器使用方法该模拟器模拟4个CPU(A、B、C、D)访存的工作过程。每个CPU中都有一个Cache,该Cache包含4个块,其块地址为0~3。集中共享存储器中有32个块,其块地址为0~31。每个块的状态用色块来表示,其中灰色表示“无效”状态,淡青色表示“共享”,橘红色表示“独占”。对于每个CPU,可以指定所要进行的访问是读还是写(从列表中选),并在输入框中输入所要访问的主存块号,然后用鼠标点击在其右边的标有↓的按钮,模拟器就将开始演示该访问的工作过程。该模拟器的主菜单有4个:配置,控制,统计,帮助。1.配置该菜单用于进行配置参数的显示与设置。你可以修改动画播放速度:把游标往右边拖拽可提高播放速度,往左边拖拽可降低播放速度。你还可以选择是否进行优化传块。优化传块是指当要访问的块在某个Cache中,且处于独占状态时,可以不用等该块写回主存后再从主存调块,而是可以直接将该块传送给发出访问请求的结点。本模拟器采用直接映象方法和写回法。2.控制可以通过该菜单中的选项来控制模拟器的执行。该菜单下有以下3个选项:单步执行、连续执行、复位。(1)单步执行选用该方式后,点击鼠标或点击左上角的“步进”按钮,都会使模拟器前进一步。(2)连续执行选用该方式后,用鼠标点击标有↓的按钮,模拟器会连续演示一次访存的整个过程,直至该访问结束。(3)复位使模拟器复位,回到初始状态。也可以通过点击窗口内左上角的选项和按钮来控制模拟器的执行,其功能与上述菜单选项相同。3.统计该菜单用于显示模拟器的统计结果,包括各处理机的访问次数、命中次数、不命中次数以及命中率。4.帮助该菜单下有“关于”和“使用说明”两个选项。实验八多Cache一致性——目录协议8.1实验目的1.加深对多Cache一致性的理解;2.进一步掌握解决多Cache一致性的目录协议的基本思想;3.掌握在各种情况下,目录协议是如何工作的。能给出要进行什么样的操作以及状态的变化情况。8.2实验平台多Cache一致性目录协议模拟器,《计算机系统结构实验教程》附书光盘中提供,清华大学出版社。设计:张晨曦教授(xzhang2000@sohu.com),版权所有。开发:程志强。8.3实验内容及步骤首先要掌握该模拟器的使用方法。(见8.4节)1.对于以下访问序列,写出目录协议所进行的操作:所进行的访问目录协议所进行的操作CPUA读第6块读不命中;本地:向宿主结点发读不命中(A,6)消息宿主:把数据块送给本地结点共享集合为:{A}CPUB读第6块读不命中;本地:向宿主结点发读不命中(B,6)消息宿主:把数据块发送给本地结点共享集合为:{A}+{B}CPUD读第6块读不命中本地:向宿主结点发读不命中(D,6)消息宿主:把数据块发送给本地结点共享集合为:{A,B}+{D}CPUB写第6块写命中本地:向宿主结点发写命中(B,6)消息宿主:向远程结点A发作废(6)消息宿主:向远程结点D发作废(6)消息共享集合为:{B}CPUC读第6块读不命中本地:向宿主结点发读不命中(C,6)消息宿主:远程结点发取数据块(6)的消息远程:数据块送给宿主结点宿主:数据块送给本地结点共享集合为:{B}+{C}CPUD写第20块写不命中本地:向宿主结点发写不命中(D,20)消息宿主:把数据块发送给本地结点共享集合为:{D}CPUA写第20块写不命中本地:向宿主结点发写不命中(A,20)消息宿主:给远程结点发送取并作废(20)消息远程:把数据块送给宿主结点把Cache中的该块作废宿主:把数据块送给本地结点共享集合为:{A}CPUD写第6块写不命中本地:向宿主结点发写不命中(D,6)消息宿主:向远程结点发作废(6)消息宿主:向远程结点发作废(6)消息宿主:把数据块送给本地结点共享集合为:{D}CPUA读第12块写不命中本地:向被替换块的宿主结点发写回并修改共享集(A,20)消息本地:向宿主结点发写不命中(A,20)消息宿主:把数据块送给本地结点共享集合为:{A}2.自己编写一个访问序列,写出目录协议所进行的操作:所进行的访问CPUA读第6块读不命中本地:向宿主结点发读不命中(A,6)消息宿主:把数据块送给本地结点;5.共享集合为:{A}CPUB读第5块读不命中本地:向宿主结点发读不命中(B,5)消息宿主:把数据块送给本地结点共享集合为:{B}CPUC读第6块读不命中本地:向宿主结点发读不命中(C,6)消息宿主:把数据块送给本地结点共享集合为:{A+C}CPUD写第6块写不命中本地:向宿主结点发读不命中(D,6)消息向远程结点发作废(6)的消息5向远程结点发作废(6)的消息宿主:把数据块送给本地结点;7共享集合为:{D}CPUD读第6块读命中读回CPUDCPUD写第20块读不命中本地:向宿主结点发读不命中(D,20)消息宿主:把数据块送给本地结点共享集合为:{D}CPUB读第5块读命中读回CPUBCPUA写第20块写不命中本地:向宿主结点发读不命中(A,20)消息宿主向远程结点发送取并作废(20)的消息远程:把数据块送给宿主结点,把Cache中的该块作废宿主:把数据块送给本地结点共享集合为:{A}CPUD写第20块写不命中本地:向宿主结点发读不命中(D,20)消息向远程结点发送取并作废(20)的消息远程:把数据块送给宿主结点,把Cache中的该块作废宿主:把数据块送给本地结点共享集合为:{D}2.根据上述结果,画出相关的状态转换(仅画出与上表相关的部分)。图8.4目录协议模拟器使用方法该模拟器模拟4个CPU(A、B、C、D)访存的工作过程。每个CPU中都有一个Cache,该Cache包含4个块,其块地址为0~3。分布式存储器中有32个块,其块地址为0~31。Cache中每个块的状态用色块来表示,其中灰色表示“无效”状态,淡青色表示“共享”,橘红色表示“独占”。主存中块的状态由其右边的目录项的颜色来表示,未缓冲状态由黄色来表示,其他两种状态同Cache块。对于每个CPU,可以指定所要进行的访问是读还是写(从列表中选),并在输入框中输入所要访问的主存块号,然后用鼠标点击在其右边的标有↓的按钮,模拟器就将开始演示该访问的工作过程。该模拟器的主菜单有4个:配置,操作,统计,帮助。1.配置该菜单用于进行配置参数的显示与设置。你可以修改动画播放速度:把游标往右边拖拽可提高播放速度,往左边拖拽可降低播放速度。你还可以选择是否进行优化传块。优化传块是指当要访问的块在某个Cache中,且处于独占状态时,可以不用等该块写回主存后再从主存调块,而是可以直接将该块传送给发出访问请求的结点。本模拟器采用直接映象方法和写回法。2.操作可以通过该菜单中的选项来控制模拟器的执行。该菜单下有以下3个选项:单步执行、连续执行、复位。(1)单步执行选用该方式后,敲任意键、点击鼠标或点击左上角的“步进”按钮,都会使模拟器前进一步。(2)连续执行选用该方式后,用鼠标点击标有↓的按钮,模拟器会连续演示一次访存的整个过程,直至该访问结束。(3)复位使模拟器复位,回到初始状态。3.统计该菜单用于显示模拟器的统计结果,包括各处理机的访问次数、命中次数、不命中次数以及命中率。4.帮助该菜单下有“关于”和“使用说明”两个选项。