- 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营销策略的研究
1、相关定义
1.1、综合的概念
一般的逻辑综合过程如图5.2所示:逻辑综合过程要求的输入为:RTL级 描述描述的程序、约束条件、支持的工艺库等,输出是门级网表。 图5.2综合过程 图5.2所示的是完成一个系统的RTL描述后进行综合的过程。在对RTL 的系统描述进行综合时要加入一定的综合约束条件,包括系统面积、速度、关 键路径限制等,使系统的综合按照设计所期望的目标进行。 综合的过程实际上包括两个步骤:系统翻译和系统优化。系统翻译是将系 统的RTL描述转化为非优化的门级逻辑,而系统优化则是按照系统的综合约束 进行进一步的优化。优化的目的就是使系统能够按照实际所要求的速度和面积 进行正常的工作。
1.2、Cache 基本概念
将存储器层次化划分的依据有两个:第一是内存技术的性能价格比原则,第 二是程序访问的局部性原理[12]。 由于快速存储器较为昂贵,因此存储器层次结构组织成几个不同的层次—— 每一层都比其下一层具有更小的容量和更快的速度,当然每字节的价格也更高。 这种组织结构的目标是提供一个存储器系统,使其价格几乎相当于最便宜的一层 存储器的价格,但访问速度却与最快的一层接近。层次结构中各层之间通常是子 集关系,某一层中的所有数据总能在其下一层中找到,而下一层的数据也可以在 再下一层中找到,如此直到层次结构的最底层。 从图 2-2 中就可以看出:距离 CPU 越远的层次,存储容量越大,访问速度越 慢。不同层次的访问时间的变化系数为 10,而容量大小的变化系数为 100。 CPU [寄存器] C A C H E 存储器 I/O设备 存储总线 I/O 寄存器 Cache 存储器 磁盘存储 容量: 速度: 500byte 64KB 512MB 100GB 0.25ns 1ns 100ns 5ms 图 2-2 一个通用于嵌入式系统、台式机和服务器的典型多级存储器层次结构 另外,一个编写良好的计算机程序倾向于展示出良好的局部性。也就是:它 们倾向与引用的数据项邻近于其他最近引用过的数据项,或者邻近于最近自我引 用过的数据项。这种倾向性,被称为局部性原理[5]。 局部性通常有两种形式:时间局部性和空间局部性。最近被引用过的存储器 位置很可能在不远的将来被多次引用被称作时间局部性。如果一个存储器位置被 基于 ARM7TDMI 的 Cache 的设计与验证 10 引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置被称作空 间局部性。 基于以上两点将存储器层次化的原因,一个小而快的存储设备被引入进来。 在主存和 CPU 之间设置一个高速的容量相对较小的存储器, 把正在执行的指令 地址附近的一部分指令或数据从主存调入这个存储器,供 CPU 在一段时间内使 用。这对提高程序的运行速度有很大的作用。这个介于主存和 CPU 之间的高速小 容量存储器称作高速缓冲存储器(Cache)。 2.2.3 Cache 原理 Cache 与主存之间是以块(Cache Line)为单位进行数据交换的。当 CPU 读 取数据或者指令时,它同时将读取到的数据或者指令保存到一个 Cache 块中。当 CPU 第 2 次需要读取相同的数据时,它可以从相应的 Cache 块中得到相应的数据。 因为 Cache 的速度远远大于主存的速度,系统的整体性能就得到很大的提高。 比如,如果 Cache 块大小为 4 个字,当 CPU 从主存中读取地址为 n 的字数据 时,它同时将地址为 n、n+1、n+2 、n+3 的 4 个字的数据读取到 Cache 中的一个 块中。这样,当 CPU 需要读取地址为 n、n+1、n+2 、n+3 的数据时,它就可以 从 Cache 中得到该数据。 如果 CPU 需要的数据刚好在 Cache 里,这种情况称为缓存命中(Cache Hit)。 反之,如果 CPU 需要的数据不在 Cache 里,这样的情况称作缓存不命中(Cache Miss)。覆盖一个已存在的块的过程称为替换(Replacing)或驱逐(Evicting)这 个块。替换哪个数据块是由替换策略决定的,后面会做出详细介绍。 缓存不命中的种类有以下几种: (1) 冷不命中:一个空的缓存被称为冷缓存(Cold Cache),在这种情况下, 对任何数据的访问都不会命中。 (2) 冲突不命中:在这种情况下,缓存是足够大的,但是因为替换策略的原因, 将好几个对象映射到同一个缓存块,当程序重复引用这几个对象的时候,就 会引起不命中的情况。 (3) 容量不命中:程序通常是按照一系列阶段来运行的,每个阶段访问缓存块 的某个相对稳定不变的集合。当集合的大小超过缓存大小的时候,就会引起 不命中的情况。 Cache 命中率是命中的指令数与总的指令数之比。设
文档评论(0)