分析Cache运行机制和设计理念.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分析Cache的运行机制和设计理念 随着双核时代的到来,CPU的Cache越来越受到DIYer的重视。本文吸收了其它高手发表的文章观点,浅谈一下Cache的运行和设计原理。1. CPU Cache简介Cache其是就是CPU和内存之间的一个中转站。由于目前CPU的频率(速度)已经大大超过内存,往往CPU会为了读取或存储数据白白浪费几十个时钟周期。这造成了巨大的资源浪费。于是Cache的设计思想被提上日程,几经实验修改后,逐渐形成了我们现在所能够看到的Cache架构。在现代CPU设计中,设计师们要解决的最主要问题,就是找到一个在CPU和内存之间平衡的均点。Cache作为CPU---内存的中转站,在其中发挥了巨大的作用。CPU在请求数据或指令时,除了常规的在内存中进行查找外,还会在Cache中进行查找。一旦命中,就可以直接从Cache中读取,节约大量时间。正因为如此,Cache在现代CPU中显得越来越重要。2. Cache的实现原理众所周知,Cache属于SRAM(Satic Random Access Memory),它利用晶体管的逻辑开关状态来存取数据。也正因为如此,SRAM内部的电路构造比起常见的DRAM(Dynamic Random Memory)要复杂得多,导致了成本的巨增。这也是SRAM不能普及的一个重要原因。Cache在计算机存储系统中没有编配固定的地址,这样程序员在写程序时就不用考虑指令是运行在内存中还是Cache中,Cache对于计算机上层来说是完全透明的。CPU在读取数据时,会首先向内存和Cache都发送一个查找指令。如果所需要的数据在Cache中(命中),则直接从Cache读取数据,以节约时间和资源。CPU对Cache的有哪些信誉好的足球投注网站叫做Tag search,即通过Cache中的CAM(Content Addressed Memory)对希望得到的Tag数据进行有哪些信誉好的足球投注网站。CAM是一种存储芯片,延迟很低,常用于网络设备中用作路由选择。CPU进行Tag search的过程是这样的:在Cache中数据或指令是以行为单位存储的,一行又包含了很多字。如现在主流的设计是一行包含64Byte。每一行拥有一个Tag。因此,假设CPU需要一个标为Tag 1的行中的数据,它会通过CAM对Cache中的行进行查找,一旦找到相同Tag的行,就对其中的数据进行读取。在现代计算机中,虽然Cache的容量一直在增涨,但现在桌面处理器中Cache最大的也不过4MB,设计师们是如何保证在这小小的Cache中保存的数据或指令就一定是CPU需要的呢?这就要利用到CPU运行时的两个基本局限性:时间局限性和空间局限性。所谓时间局限性,是指CPU在某一时刻使用到的数据或指令,在下一时刻也会被重复利用。比如3D游戏中,同一场景会在不同时间被渲染多次,如果在第一次渲染中Cache存储了相关指令、数据,那么在下一次需要重复渲染时,就能够直接从Cache中读取相关内容。而空间局限性,指的是CPU在读取某一地址的数据时,也有可能会用到该地址附近的数据。也就是说,CPU需要的数据在很多时候是连续的。例如在听歌或看电影时,数据流总是连续的(正常播放状态下)。这样的应用对于CPU来说是很有利的,数据预读取单元也能够发挥最大作用。Cache正是利用了上述两个局限性,得已实现并工作。设计师们能够充分利用这两个局限,在容量较小的Cache中存入CPU在将来某时刻需要的内容。需要指出的是,很多程序在执行指令或数据时,所呈现出来的局限性是不同的。有可能执行指令的时候呈现出时间局限性,而数据呈现出空间局限性,因此设计师们把L1 Cache分成了Instruction Cache(指令缓存)和Data Cache(数据缓存)。3. Cache的运行原理前面已经说过,Cache的数据存储是以行(Line)为单位的,每一行又包含64Byte。行是存储在“框架”(Block frame)这种数据容器中的,而框架则直接与内存相对应。很明显,Cache中可能包含数个框架。那么这些Cache框架是怎么与内存相对应相联系的呢?有三种办法。第一种方法叫完全相联法。即内存中的数据可以存储在任何Cache框架中,同一数据也可以存储在不同的框架中。 这样数据的存储相当灵活,CPU在查找时也很方便:只需在框架中对比找出需要的Tag行,即实现命中,显著的提升了命中率。然而这样做的缺陷也很明显:对于容量较大的Cache来说,CPU需要在成百的框架中查找需要的Tag行,延迟大大增加。因此这种设计方式只适用于容量较小的Cache。 由于完全相联法的这种局限性,设计师们很快提出了另一种旨在降低延迟的组织方式:直接映象法。和完全相联不同,在直接映象中内存会将数据存入的Cache框架地址“记住”,以后再次存储时就只能使用该框架。这样

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档