- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于抽象解释技术Cache分析方法
基于抽象解释技术Cache分析方法
摘要:在WCET分析中,最重要的一类工作就是Cache分析。目前,大多数的基于抽象解释技术的Cache分析中,分析算法是作用于整个程序的,如果能够根据程序的层次结构,挖掘程序执行在Cache中的局部特性,那么就可以有效地提高WCET的分析精度。
关键词:WCET 抽象解释 多层Cache分析
1 Cache分析
Cache是一个高速小容量的临时存储器,它是在主存储器和CPU之间的一个容量相对较小的SRAM,Cache中保存着主存中部分内容的副本。CPU在读写数据时,首先访问Cache,只有当Cache中无CPU所需的数据时,CPU才去访问主存。而目前大容量Cache命中率很高,大大提高了CPU访问数据的速度,从而提高了系统的性能。由此可见Cache的命中率将严重影响程序的执行时间。Cache分析就是分析出程序运行时访问Cache时的命中情况。
2 Cache简介
Cache工作的基本原理是程序的局部性原理。所谓的局部性原理是程序会重复访问近期使用过的指令和数据。Hennessy和Patterson根据经验对此进行了量化:程序
90%的时间是在执行10%的代码。主要有以下几个关键的方面:①时间局部性――最近被访问过的指令或数据在不久之后可能再次被访问。②空间局部性――程序访问了某个存储单元,则不久之后临近的存储单元可能被访问,即程序在一段时间内所访问的存储器空间可能集中在一定的范围之内。③顺序性――这是一个空间局部性的特殊情况。执行程序时访问了地址为s处,那么不久之后可能访问地址为s+1处。
Cache的容量很小,它保存的内容仅是主存内容的一个子集,且Cache与主存的数据交换是以块为单位。Cache主要有三个特征:容量、块的大小和相联度。容量是指Cache能容纳的字节数;块的大小是指当Cache失效时,从主存中读取的连续字节的大小;相联度是指一个特定的主存块可能存储在Cache中位置的数量。根据相联度的不同,存在三种Cache和主存之间的映射方式:如果一个主存块只能拷贝到Cache的一个特定行的位置上,这样的映射方式叫做直接映射;如果主存的一个块可以直接拷贝到Cache中的任意一行上,这叫全相联映射;最后一种映射方式是前两种映射方式的折中方式,即组相联映射方式。
对于直接映射的Cache,主存分成如干个与Cache大小相同的区,区内每一块映射到Cache中的某个固定位置上,主存块拷贝到Cache里存放的位置由该块地址中的块号决定。对于直接映射组织方式,如果主存中的主存块具有相同的块号,那么它们就会映射到Cache的同一个位置,因此当访问Cache时,需要一个方法确定该Cache内容所对应的主存块,Cache存储主存块地址的区号来区分不同的主存块。直接映射方式的优点是硬件简单,成本低。缺点是每个主存块只有在一个固定的Cache里的位置可存放,容易产生冲突。因此适合大容量Cache采用。
全相联映射的Cache,由于主存块可能存在Cache的任意位置,所以当访问Cache时,就要搜索整个Cache空间。查找主存块时,将请求地址与Cache中存储的所有的主存块的地址相比较,直到找到匹配的或者未找到。全相联的映射方式相对于直接映射则非常灵活,但它的比较器电路难于设计和实现,因此只适合于小容量Cache采用。
第三种为组相联映射。首先Cache分成若干个组,每组包含若干块,然后主存按照Cache容量分区,每个区再根据Cache的分组情况同样的分成如干组,每组中包含的块数与Cache中每组块数一致。前面介绍过,组相联映射为直接映射和全相联映射的折中,主要表现在根据前面介绍的分组情况,组间采用直接映射,而组内采用全相联映射。这就结合了直接映射和全相联映射各自的优点,且在一定程度上避免了各自的缺点。
Cache中存储的内容是主存中部分内容的副本,所以可能是指令也可能是数据。当Cache只用来存储指令时,这样的Cache叫做指令Cache;当只存储数据,就叫做数据Cache;若既存储指令也存储数据,则这样的Cache叫做联合Cache或指令/数据Cache。
3 Cache替换策略
Cache的容量有限且其工作原理要求它尽量保存最新数据,这就必然要产生主存块的替换。
3.1 随机(RAND)替换。该方法从Cache的位置中随机地选取一个换出。这种方法比较简单,在硬件上容易实现,且速度较快,但该方法没有遵循Cache的工作原理,所以命中率和工作效率较低。
3.2 先进先出(FIFO)。该方法选取最先被调入Cache的主存块进行替换。这个替换方法不符合程序的局部性原理,因为最先被调入Cache并且多次命中的主存块很可
文档评论(0)