《计算机体系结构》第六次实验 cache.docVIP

  • 17
  • 0
  • 约3.41千字
  • 约 9页
  • 2020-03-15 发布于河北
  • 举报

《计算机体系结构》第六次实验 cache.doc

Cache实验报告 姓名:王宇航 学号 安全0901 Cache实验报告 一、实验要求: 1.阅读分析附件模拟器代码 要求:1)读懂 2)关键注释 3)总结关键参数和算法的实现方法 2.通过读懂代码加深了解cache的实现技术 3.结合书后习题1进行测试 4.通过测试和进行实验设计了解参数和算法选择的特点和相互关系(比较,组合等),需要定性和量化结合说明,可以用数字或图表等多种描述手段配合说明。 二、实验代码: 1. LRU页面置换算法 程序一共有3中模式: Direct_mapped 2 Set_associate 3 Fully_associate 对于第一种,直接映射,显然用不到LRU算法,因为每一个地址在cache中只有一个地方可以去。 对于后两种,组相联映射和全相联映射,就需要用到LRU算法了。 其中,全相联映射等于是只有一个set的Set_associate,而LRU正是用在一个set中,所以,后面两种模式的LRU问题可以归结为一种:一个set中,来了一个没有的页面,需要置换出一个,应该置换出哪一个的问题。 那么,具体过程如下: 1 这个set中的每一个block都有一个lru值,初始为0。 2 每次访问这个set的时候,不管是否命中,这个set中的所有block的lru值都+1。 3 当需要置换出去一个页面的时候,选择一个lru值最大的那个置换出入,用来放入刚刚进来的。 4 不管是否命中,刚刚访问过的,或者加入的那个block的lru值置为0。 if(xlru[index][z])//选择lru值最大的一个 { x=lru[index][z]; y=z; } if(z==((assoc*2)-2))//没有命中时 { newarray[index][y+1]=tag; //把lru值最大的替换掉 misscount++; c=misstype(blockaddress[j],NOofblock,j); cc=1; for(m=0;m(assoc*2);m=m+2)//所有的lru值+1 lru[index][m]++; lru[index][y]=0;//把lru值最大的替换掉 } z=z+2; 2. 用于判断缺页类型的算法 在程序中,体现了3中缺页的类型: Compulsory Miss:之前没有出现的地址,肯定不会命中 Conflict Miss:由于冲突而产生的不命中 Capacity Miss:由于容量不足而导致的不命中 在函数int misstype(int ba, int nb, int l)中。 ba:表示当前不命中的地址 nb:表示NOofblock,即cache中block的数目 l:表示当前ba在访问序列bytearray数组中的位置 before数组,用来表示当前已经访问过了那些页面。 blarray数组,表示相邻两次访问ba之间,访问过的地址。 变量b,表示blarray数组的大小。 Compulsory Miss: 那么,只要当前访问的页面,在之前没有访问过,那么,就是Compulsory Miss这种类型。 代码上就是:遍历before数组,看看有没有和ba相同的,没有的话就是Compulsory Miss,同时不要忘记把ba加入到before数组,供下次使用。 Conflict Miss: 在统计相邻两次访问ba之间的不同的地址数目时,数组blarray的大小b就是这个值。那么只要和nb比较一下,只要bnb,表示其实还有多余的空间可以使ba在之前不被调出,就说明其实是ba由于冲突而被调出,即Conflict Miss。 Capacity Miss: 反之,如果bnb,就表示,相邻两次访问ba之间的地址数目过大,导致空间不够使用,即Capacity Miss。 三、实验过程: 1. 原始代码测试 第一个测试:Direct mapped 第二个测试:two-way set associative 第三个测试:fully associative 可见三次测试的结果是相同的,因为我们给的三组输入数据是相同的。 下面我们用书上的例子进行测试: 第一个测试:Direct mapped: 如图,和课本的结果吻合。全部miss,由于其中有3种不同的地址,所以Compulsory miss的数目是3. 第二个测试:two-way set associative 如图,和课本的结果吻合。只有一个hit,由于其中有3种不同的地址,所以Compulsory miss的数目是3. 第三个测试:fully associative 如图,和课本的结果吻合。有2个hit,由于其中有3种不同的地址,所以Compulsory miss的数目是3. 综上,上述三种模式

文档评论(0)

1亿VIP精品文档

相关文档