ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:194.91KB ,
资源ID:5579234      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5579234.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(分析影响cache命中率的因素.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

分析影响cache命中率的因素.docx

1、分析影响cache命中率的因素分析影响cache命中率的因素摘要:存储器是计算机的核心部件之一。由于CPU和主存在速度上的存在着巨大差异,现代计算机都在CPU和主存之间设置一个高速、小容量的缓冲存储器cache。而它完全是是由硬件实现,所以它不但对应用程序员透明,而且对系统程序员也是透明的。Cache对于提高整个计算机系统的性能有着重要的意义,几乎是一个不可缺少的部件。关键字:cache容量;失效率;块大小;相联度;替换策略。一、概述存储器是计算机的核心部件之一。其性能直接关系到整个计算机系统性能的高低。如何以合理的价格,设计容量和速度都满足计算机系统要求的存储器系统,始终是计算机系统结构设计

2、的中关键的问题之一。计算机软件设计者和计算机用户对于存储器容量的需求是没有止境的,他们希望容量越大越好,而且要求速度快、价格低。仅用单一的存储器是很难达到这一需求目标的。较好的方法是采用存储层次,用多种存储器构成存储器的层次结构。其中“cache-主存”和“主存-辅存”层次是常见的两种层次结构,几乎所有现代的计算机都同时具有这两种层次。我们都知道,程序在执行前,需先调入主存。在这里主要讨论的是“cache-主存”层次。“cache-主存”是在为了弥补主存速度的不足,这个层次的工作一般来说,完全是由硬件实现,所以它不但对应用程序员透明,而且对系统程序员也是透明的。如前所述,为了弥补CPU和主存在

3、速度上的巨大差异,现代计算机都在CPU和主存之间设置一个高速、小容量的缓冲存储器cache。Cache对于提高整个计算机系统的性能有着重要的意义,几乎是一个不可缺少的部件。Cache是按块进行管理的。Cache和主存均被分割成大小相同的块。信息以块为单位调入cache。相应的,CPU的访存地址被分割成两部分:块地址和块内位移。在这里的cache专指CPU和主存之间的cache。对Cache的性能分析可以从三个方面进行:降低失效率、减少失效开销、减少Cache命中时间。这里主要是用实验数据分析影响cache命中率的因素。1.按照产生失效的原因不同,可以把Cache失效分为三类:(1)强制性失效(

4、Compulsory miss)当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。这种失效也称为冷启动失效或首次访问失效。(2)容量失效(Capacity miss)如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生失效。这种失效称为容量失效。(3)冲突失效(Conflict miss)在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。这就是发生了冲突失效。这种失效也称为碰撞失效(collision)或干扰失

5、效(interference)。降低Cache失效率的方法:增加Cache块大小、提高相联度、Victim Cache、伪相联Cache、硬件预取技术、由编译器控制的预取和编译器优化。2.替换算法 :(1)先进先出法(FIFO);(2)随机法:为了均匀使用一组中的各块,这种方法随机地选择被替换的块。(3)最近最少使用法LRU(Least Recently Used):选择近期最少被访问的块作为被替换的块。但由于实现比较困难,现在实际上实现的LRU都只是选择最久没有被访问过的块作为被替换的块。 二、对影响Cache失效率因素的分析 1. 对矩阵200*200的乘法进行测试,源代码test.c如下

6、:#include#define r 200#define l 200main() int i=0,j=0,k=0,m=1,n=1; int arl,blr,crr; for(int i=0;ir;i+) for(int j=0;jl;j+) aij=1; bij=n; n+; for(int k=0;kl;k+) cij=cij+aik*bkj; 注意:必须将代码存储在SimpleScalar的文件下。运行命令:./.bin/sslittle-na-sstrix-gcc test.c ./simplesim-3.0/sim-cache a.out2. Cache容量对性能影响(1)容量配置在

7、命令行对SimpleScalar模拟器的一级数据的容量进行配置,在配置的过程中,保证cache块大小、相联度、替换策略参数不变。通过改变组数来改变Cache的容量大小,执行程序,具体运行结果及相应的配置参数如下表1所示。表1: Cache容量对性能影响上表相应的折线图如下所示:图1:Cache容量对性能影响(2)结果分析从图1中我们可以看出,随着Cache的容量不断增加,程序的失效率不断降低。由此可见,Cache的容量对于Cache性能有着重要影响。一般来说,容量越大,Cache性能越好,发生失效的概率就越低。3.Cache块大小对性能的影响(1)块大小配置在命令行对SimpleScalar模

8、拟器的一级数据的块大小进行配置,在配置过程中,相联度、替换策略等参数,对于容量固定为8k、16k、32k,64k,分别改变cache块大小,执行程序,具体运行结果及配置参数如下表表26所示表2: Cache块大小对性能影响图2: Cache块大小对性能影响表3: Cache块大小对性能影响图3: Cache块大小对性能影响表4: Cache块大小对性能影响图4: Cache块大小对性能影响表5: Cache块大小对性能影响图5: Cache块大小对性能影响经过测试,我们得到各个容量下,失效率随块大小的变化情况。具体如下所示:表6: Cache块大小对性能影响上表相应的折线图如下所示图6: Ca

9、che块大小对性能影响(2)结果分析从图6中我们可以看出各个容量下失效率随块大小的变化情况。每条不同颜色的曲线代表在某一Cache容量下,失效率随块大小的变化情况。从图中可以发现两点规律:(1) 对于给定的Cache 容量,当块大小增加时,失效率开始时处于下降趋势,后来反而会上升。(2) Cache容量越大,会使失效率达到最低的拐点的块大小增大。在这里,导致失效率先下降后上升的原因在于增加块大小产生双重作用。一方面会减少强制性失效,因为程序局部性原理,增加块大小增加了利用空间局部性的机会;另一方面,在容量一定情况下,增加块大小会减少总的块数目,会增加冲突失效,在Cache容量较小时,还可能增加

10、容量失效。刚开始增加块大小时,由于块大小还不是很大,上述第一种作用超过第二种作用,使失效率降低。当块大小增加到一定程度时,第二种作用会超过第一种作用,使失效率上升。4. Cache相联度对性能的影响(1)相联度进行配置在命令行对SimpleScalar模拟器的一级数据的相联度进行配置,在配置过程中,保证cache块大小、容量、替换策略参数不变,改变相联度,执行程序,具体运行配结果及其置参数如下表711所示。表7: Cache相联度对性能影响图7: Cache相联度对性能影响表8: Cache相联度对性能影响图8: Cache相联度对性能影响表9: Cache相联度对性能影响图9: Cache相

11、联度对性能影响表10: Cache相联度对性能影响图10: Cache相联度对性能影响经过测试,我们得到各个容量下,失效率随块大小的变化情况。具体如下图所示:表11: Cache相联度对性能影响图11: Cache相联度对性能影响(2)结果分析在容量固定的情况下,将相联度从1变化到16,组数也随之发生了变化。在图11中,通过对比我们可以发现,无论容量是8KB或者是64KB,在相联度为2以后的数据中,失效率不再随着相联度的变化而改变,反而稳定在一个固定的水平上。从上述实验结果可以发现,相联度的增加在一定的范围内可以促进Cache性能的改善,但这个范围非常有限,仅在1路、2路组相联上起作用。5.C

12、ache的替换策略对性能的影响(1)配置替换策略改变SimpleScalar模拟器的一级数据cache dl1的替换策略进行配置,在配置过程中,将Cache的块大小固定为32byte,相联度固定为2,对于2k、4k、8k,16k,分别改变替换策略,执行程序,具体运行配置参数如下表1216所示。表12: Cache替换策略对性能影响图12: Cache替换策略对性能影响表13: Cache替换策略对性能影响图13: Cache替换策略对性能影响表14: Cache替换策略对性能影响图14: Cache替换策略对性能影响表15: Cache替换策略对性能影响图15: Cache替换策略对性能影响经

13、过测试,我们得到各个容量下,失效率随块大小的变化情况。具体如下图所示:表16: Cache替换策略对性能影响图16: Cache替换策略对性能影响(2)结果分析从图16中我们可以发现,在Cache容量较小的情况下,随机策略相对较好,而随着Cache容量的增加,最近最少使用(LRU)和先进先出(FIFO)策略的效果较好。所以一般的计算机默认的采用LRU替换策略。由于主存中的块比Cache中的要多,所以当要从主存调入一个块到Cache中时,会出现该快所映像到的一组Cache块已被占用的情况。这是需要强制其中的一块移出Cache,以接纳新的Cache块。这就需要替换策略选择替换的块。替换策略主要是在对Cache块进行淘汰时,如何选择要替换的块的策略。目前主要又三种替换策略:最近最少使用(LRU)策略、先进先出(FIFO)策略、随机(RANDOM)策略。这三种替换策略各有优劣。好的替换策略会将使用率高的Cache块更长时间的驻留在Cache中,从而降低Cache失效率,提高Cache性能。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1