实验4

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机系统结构实验报告班级1班实验日期4.11实验成绩姓名学号实验名称Cache性能分析实验目的、要求实验目的:(1)加深对Cache的基本概念呢、基本组织结构以及基本工作原理的理解(2)掌握Cache容量、相联度、块大小对Cache性能的影响(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响实验内容、步骤及结果(1)简单设计实验,理解Cache预取Cache预取的思想:发生指令不命中是取两个块:被请求指令块和顺序的下一个指令块。被请求指令块返回时放入Cache,而预取的指令块则放在缓冲器中;如果某次Cache访问不命中,而相应的指令块正好在缓冲器里,则取消对存储器的访问,直接从缓冲器中读取这一块,同时发出对下一指令块的预取访问请求。设计实验模拟Cache的预取:手动输入以下地址序列,分别使用预取和不预取的方法执行,观察记录命中情况。实验结果如下(不过由于MyCache模拟器计算不命中率时认为在缓冲器中命中认为是访问了两次,其中一次为不命中,后一次为命中):地址序列不预取预取0不命中不命中31命中命中32不命中命中63命中命中64不命中不命中70命中命中预取能够降低不命中率,提高性能。(2)思考题Intel酷睿i5-2430MCPU双核三级缓存一级缓存:64KB*2内核独享分离式32KBData32KBInstruction二级缓存:256KB*2内核独享混合Cache三级缓存:3MB内核共享混合CacheAMDAthlon64X2CPU双核二级缓存一级缓存:128KB*2内核独享分离式64KBData64KBInstruction二级缓存:1MB内核独享混合Cache(3)探究性实验(Cache的友好性)次数改进前(ms)改进后(ms)1918931522917333193996433864105883631598803895总结通过预取、分块等技术可以减少平均访问时间,提高CPU的性能。附录publicclassDemo1{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintn=1000;int[][]a=newint[n][n];int[][]b=newint[n][n];longstartTime;longendTime;for(inti=0;in;i++){for(intj=0;jn;j++){a[i][j]=i+j;b[i][j]=i+j;}}startTime=System.currentTimeMillis();calMatrix1(a,b,n);endTime=System.currentTimeMillis();System.out.println(endTime-startTime);startTime=System.currentTimeMillis();calMatrix2(a,b,n);endTime=System.currentTimeMillis();System.out.println(endTime-startTime);}publicstaticint[][]calMatrix1(inta[][],intb[][],intn){int[][]c=newint[n][n];for(inti=0;in;i++){for(intj=0;jn;j++){for(intk=0;kn;k++){c[i][j]+=a[i][k]*b[k][j];}}}returnc;}publicstaticint[][]calMatrix2(inta[][],intb[][],intn){int[][]c=newint[n][n];intB=500;for(intjj=0;jjn;jj=jj+B){for(intkk=0;kkn;kk=kk+B){for(inti=0;in;i++){for(intj=jj;jmin(kk+B,n);j=j+1){intr=0;for(intk=kk;kmin(kk+B,n);k=k+1){r=r+a[i][k]*b[k][j];}c[i][j]=r;}}}}returnc;}publicstaticintmin(inta,intb){if(ab)returnb;elsereturna;}}

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功