网络工程师培训资料:Cache知识点

网络工程师 责任编辑:zyx1212 2013-11-08

添加老师微信

备考咨询

加我微信

摘要:平均存取速度=Cache存取速度×Cache命中率+主存存取速度×失效率

网络工程师考试报名网络工程师考试大纲 网络工程师考试时间

网络工程师考试教材 网络工程师培训

2.2.3【知识点】Cache

1. 命中率与平均存取速度

平均存取速度=Cache存取速度×Cache命中率+主存存取速度×失效率

2. 地址映像

地址映像是把主存地址空间映像到Cache地址空间,即按某种规则把主存的块复制到Cache中。

全相连映像

主存中任何一个块均可以映像装入到Cache中的任何一个块的位置上。主存地址分为块号和块内地址两部分,Cache地址也分为块号和块内地址。Cache的块内地址部分直接取自主存地址的块内地址段。主存块号和Cache块号不相同,Cache块号根据主存块号从块表中查找。

直接映像

把主存分成若干区,每区与Cache大小相同。区内分块,主存每个区中块的大小和Cache中块的大小相等,主存中每个区包含的块的个数与Cache中块的个数相等。任意一个主存块只能映像到Cache中指定的块中,即相同块号的位置。主存地址分为三部分:区号、块号和块内地址,Cache地址分为:块号和块内地址。直接映像方式下,数据块只能映像到Cache中指定的位置,故不存在替换算法的问题。它不同于全相连Cache,地址仅需比较一次。Cache的块号I与主存的块号J有函数关系:I=J Mod M。其中,M为Cache的总块数。

组相连映像

组相连映像是前两种方式的折衷。主存按Cache容量分区,每个区分为若干组,每组包含若干块。Cache也进行同样的分组和分块。主存中一个组内的块数与Cache中一个组内的块数相等。组间采用直接方式,组内采用全相连方式。组的容量等于1时,即直接映像,组的容量等于整个Cache的容量时,即全相连映像。

例: 一个具有4KB直接相联Cache的32位微处理器,主存的容量为16MB,假定该cache的块为4个32位的字。

(1)指出主存地址中区号、块号和块内地址的位数;

(2)求主存地址为ABCDEF(16进制)的单元在Cache中的什么位置?

试题分析:

Cache容量:4KB    主存容量:16MB     映像方式:直接映像

把主存分成若干区,每区与Cache大小相同。区内分块,主存每个区中块的大小和Cache中块的大小相等,主存中每个区包含的块的个数与Cache中块的个数相等。任意一个主存块只能映像到Cache中指定的块中,即相同块号的位置。主存地址分为三部分:区号、块号和块内地址,Cache地址分为:块号和块内地址。

主存的区号:16M/4KB=212=12位;

主存块号  :4KB/(4×32bit)=28=8位;

块内地址  :4×32bit =16Byte=4个字(因为一个字为32bit)=22字=2位;

ABCDEF = 1010 1011 1100 1101 1110 1111

该存储单元在Cache的位置为:

区号 = 1010 1011 1100     块号 = 1101 1110     块内地址 = 1111

数据的存储一般以"字"为单位进行。但在计算机里我们保留对字节的寻址和编码,不管是16位,还是32位,还是64位处理器,像第二小题主存地址为ABCDEF(16进制)这是一个24位地址码,而主存字地址为22位。 计算机只会按字进行操作,以及它的传输运算,包括直接相连Cache映象。 所以我们只按字寻指与编码,而并不涉及到更低位(字节)。

ABCDEF=1010 1011 1100 1101 1110 1111

在Cache中的位置:块号:1101 1110   块内地址:11

注:后两位为字节寻址,这里不用了。(ABCDEC、ABCDED、ABCDEE、ABCDEF这四个字节地址为同一字地址)在同一个Cache块内地址。

Cache的写入策略

在一个常见的应用程序中,其50%的指令是与数据存取相关的,而其中又有近30%的指令与读取有关。也就是说,CPU在运行中进行的读取操作频率要远远大于写入操作。它的写入依赖于三种写入策略:

写回法:当CPU更新Cache时,并不同时更新内存中的相应数据。这种方法减少了访问内存的次数,缩短了时间。但在保持与内存内容的一致性上存在在隐患,并且使用写回法,必须为每个缓存块设置一个修改位,来反映此块是否被CPU修改过。

全写法:和写回法相反,当Cache数据更新时,也同时更新内存数据。Cache不用设置修改位或相应的判断器。这种方法的好处是,当Cache命中时,由于缓存和内存是同时写入的,所以可以很好的保持缓存和内存内容的一致性。

写一次法:这是一种基于上面两种方法的写策略,它的特点是,除了第一次更新Cache的时候要同时更新内存,其它时候都和写回法一样,只修改Cache。这就在内存一致性和延迟中找到了一个较好的平衡。

3.  Cache的替换策略

所谓替换策略,是指Cache中数据的更新方法。目前常见的Cache替换策略有三种,分别是:

先进先出(First In First Out,FIFO),即替换最早进入Cache的数据。

最不经常使用(east Frequency Used,FU),即替换被CPU访问次数最少的块。

近期最少使用(east Recenty Used,RU),即替换在近段时间里,被CPU访问次数最少的块,也是比较理想的替换算法。

返回目录:网工知识点全析及训练第二章:计算机硬件知识

编辑推荐:

网工知识点全析及训练第一章:网络工程师指南

2013年软考网络工程师考前试题及答案汇总
2013年计算机软考网络工程师基础知识讲义


更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!