分析cache的运行机制和设计理念

分析cache的运行机制和设计理念

ID:11199244

大小:124.00 KB

页数:6页

时间:2018-07-10

分析cache的运行机制和设计理念_第1页
分析cache的运行机制和设计理念_第2页
分析cache的运行机制和设计理念_第3页
分析cache的运行机制和设计理念_第4页
分析cache的运行机制和设计理念_第5页
资源描述:

《分析cache的运行机制和设计理念》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、分析Cache的运行机制和设计理念随着双核时代的到来,CPU的Cache越来越受到DIYer的重视。本文吸收了其它高手发表的文章观点,浅谈一下Cache的运行和设计原理。1.CPUCache简介Cache其是就是CPU和内存之间的一个中转站。由于目前CPU的频率(速度)已经大大超过内存,往往CPU会为了读取或存储数据白白浪费几十个时钟周期。这造成了巨大的资源浪费。于是Cache的设计思想被提上日程,几经实验修改后,逐渐形成了我们现在所能够看到的Cache架构。在现代CPU设计中,设计师们要解决的最主要问题,就是找到一个在CPU和内存之间平衡的均点

2、。Cache作为CPU--->内存的中转站,在其中发挥了巨大的作用。CPU在请求数据或指令时,除了常规的在内存中进行查找外,还会在Cache中进行查找。一旦命中,就可以直接从Cache中读取,节约大量时间。正因为如此,Cache在现代CPU中显得越来越重要。2.Cache的实现原理众所周知,Cache属于SRAM(SaticRandomAccessMemory),它利用晶体管的逻辑开关状态来存取数据。也正因为如此,SRAM内部的电路构造比起常见的DRAM(DynamicRandomMemory)要复杂得多,导致了成本的巨增。这也是SRAM不能普及

3、的一个重要原因。Cache在计算机存储系统中没有编配固定的地址,这样程序员在写程序时就不用考虑指令是运行在内存中还是Cache中,Cache对于计算机上层来说是完全透明的。CPU在读取数据时,会首先向内存和Cache都发送一个查找指令。如果所需要的数据在Cache中(命中),则直接从Cache读取数据,以节约时间和资源。CPU对Cache的搜索叫做Tagsearch,即通过Cache中的CAM(ContentAddressedMemory)对希望得到的Tag数据进行搜索。CAM是一种存储芯片,延迟很低,常用于网络设备中用作路由选择。CPU进行Ta

4、gsearch的过程是这样的:在Cache中数据或指令是以行为单位存储的,一行又包含了很多字。如现在主流的设计是一行包含64Byte。每一行拥有一个Tag。因此,假设CPU需要一个标为Tag1的行中的数据,它会通过CAM对Cache中的行进行查找,一旦找到相同Tag的行,就对其中的数据进行读取。在现代计算机中,虽然Cache的容量一直在增涨,但现在桌面处理器中Cache最大的也不过4MB,设计师们是如何保证在这小小的Cache中保存的数据或指令就一定是CPU需要的呢?这就要利用到CPU运行时的两个基本局限性:时间局限性和空间局限性。所谓时间局限性

5、,是指CPU在某一时刻使用到的数据或指令,在下一时刻也会被重复利用。比如3D游戏中,同一场景会在不同时间被渲染多次,如果在第一次渲染中Cache存储了相关指令、数据,那么在下一次需要重复渲染时,就能够直接从Cache中读取相关内容。而空间局限性,指的是CPU在读取某一地址的数据时,也有可能会用到该地址附近的数据。也就是说,CPU需要的数据在很多时候是连续的。例如在听歌或看电影时,数据流总是连续的(正常播放状态下)。这样的应用对于CPU来说是很有利的,数据预读取单元也能够发挥最大作用。Cache正是利用了上述两个局限性,得已实现并工作。设计师们能够

6、充分利用这两个局限,在容量较小的Cache中存入CPU在将来某时刻需要的内容。需要指出的是,很多程序在执行指令或数据时,所呈现出来的局限性是不同的。有可能执行指令的时候呈现出时间局限性,而数据呈现出空间局限性,因此设计师们把L1Cache分成了InstructionCache(指令缓存)和DataCache(数据缓存)。3.Cache的运行原理前面已经说过,Cache的数据存储是以行(Line)为单位的,每一行又包含64Byte。行是存储在“框架”(Blockframe)这种数据容器中的,而框架则直接与内存相对应。很明显,Cache中可能包含数个

7、框架。那么这些Cache框架是怎么与内存相对应相联系的呢?有三种办法。第一种方法叫完全相联法。即内存中的数据可以存储在任何Cache框架中,同一数据也可以存储在不同的框架中。这样数据的存储相当灵活,CPU在查找时也很方便:只需在框架中对比找出需要的Tag行,即实现命中,显著的提升了命中率。然而这样做的缺陷也很明显:对于容量较大的Cache来说,CPU需要在成百的框架中查找需要的Tag行,延迟大大增加。因此这种设计方式只适用于容量较小的Cache。由于完全相联法的这种局限性,设计师们很快提出了另一种旨在降低延迟的组织方式:直接映象法。和完全相联不同

8、,在直接映象中内存会将数据存入的Cache框架地址“记住”,以后再次存储时就只能使用该框架。这样做的好处是使CPU只需要进行一次Tags

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。