首页 > 知识点讲解
       高速缓存
知识路径: > 计算机系统基础知识 > 硬件基础知识 > 存储系统 > 虚拟存储器基本工作原理、多级存储体系 > 
被考次数:5次     被考频率:中频率     总体答错率:44%     知识难度系数:     
相关知识点:4个      
        高速缓存(Cache)用来存放当前最活跃的程序和数据,其特点是:容量一般在几千字节到几兆字节之间;速度一般比主存快5~10倍,由快速半导体存储器构成;其内容是主存局部域的副本,对程序员来说是透明的。
        Cache一般位于CPU与主存之间,主要包括管理模块、由相联存储器构成的存储表以及小容量高速度存储器,如下图所示。应用中首先判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定将主存的一块信息放到Cache存储器的哪一块里。
        
        Cache的组成
               高速缓存的地址映像
               CPU工作时给出的是主存的地址,要从Cache存储器中读写信息,就需要将主存地址转换成Cache存储器的地址,这种地址的转换叫作地址映像。Cache的地址映像有以下三种方法:
               (1)直接映像。直接映像是指主存的块与Cache块的对应关系是固定的,如下图所示。在这种映像方式下,由于主存中的块只能存放在Cache存储器的相同块号中,因此,只要主存地址中的主存区号与Cache中的主存区号相同,则表明访问Cache命中。一旦命中,根据主存地址中的区内块号立即可得到要访问的Cache存储器中的块,而块内地址就是主存地址中给出的低位地址。
               
               直接映像示意图
               直接映像方式的优点是地址变换很简单,缺点是灵活性差。例如,不同区号中块号相同的块无法同时调入Cache存储器,即使Cache中有空闲块也无法使用。
               (2)全相联映像。全相联映像的示意图如下图所示。同样,主存与Cache存储器均分成容量相同的块。这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中。
               
               全相联映像示意图
               进行地址变换时,利用主存地址高位表示的主存块号与Cache中保存的主存块号进行比较,若相同即为命中。这时根据块号就可知道要访问的是哪一块。Cache存储器的块找到后,块内地址就是主存的低位地址。这时便可以读写Cache块中的内容。在变换时,当找到主存块号命中时,还必须知道主存的这一块存到了Cache的哪一块里面。
               全相联映像的主要优点是主存的块调入Cache的位置不受限制,十分灵活。其主要缺点是无法从主存块号中直接获得所对应Cache的块号,变换比较复杂,速度比较慢。
               (3)组相联映像。这种方式是前面两种方式的折衷。具体做法是将Cache中的块再分成组。例如,假定Cache有16块,再将每两块分为1组,则Cache的块就分为8组。主存同样分区,每区16块,再将每两块分为1组,则每区的块就分为8组。
               组相联映像就是规定组采用直接映像方式而块采用全相联映像方式。也就是说,主存任何区的0组只能存到Cache的0组中,1组只能存到Cache的1组中,依此类推。组内的块则采用全相联映像方式,即一组内的块可以任意存放。也就是说,主存一组中的任一块可以存入Cache相应组的任一块中。
               这种方式下,通过直接映像方式来决定组号,在一组内再用全相联映像方式来决定Cache中的块号。由主存地址高位决定主存区号与Cache中区号比较可决定是否命中。主存后面的地址即为组号。
               高速缓存的替换算法
               替换算法的目标就是使Cache获得最高的命中率。常用算法有如下几种:
               (1)随机替换算法。这种方法是用随机数发生器产生一个要替换的块号,将该块替换出去。
               (2)先进先出算法。这种方法是将最先进入Cache的信息块替换出去。
               (3)近期最少使用算法。这种方法是将近期最少使用的Cache信息块替换出去。
               (4)优化替换算法。这种方法必须先执行一次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。
               高速缓存的性能分析
               Cache的性能是计算机系统性能的重要方面。命中率是Cache的一个重要指标。Cache的设计目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。设Hc为Cache的命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache存储器的等效加权平均访问时间ta为:
               ta=Hctc+(1-Hctm=tc+(1-Hc)(tm-tc
               这里假设Cache访问和主存访问是同时启动的,其中,tc为Cache命中时的访问时间,(tm-tc)为失效访问时间。如果在Cache不命中时才启动主存,则:
               ta=tc+(1-Hctm
               在指令流水线中,Cache访问作为流水线中的一个操作阶段,Cache失效将影响指令的流水。因此,降低Cache的失效率是提高Cache性能的一项重要措施。当Cache容量比较小时,容量因素在Cache失效中占有比较大的比例。降低Cache失效率的方法主要有选择恰当的块容量、提高Cache的容量和提高Cache的相联度等。
               Cache的命中率与Cache容量的关系是:Cache容量越大,则命中率越高,随着Cache容量的增加,其失效率接近0%(命中率逐渐接近100%)。但是,增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。
               在多级Cache的计算机中,Cache分为一级(L1 Cache)、二级(L2 Cache)等,CPU访存时首先查找L1 Cache,如果不命中,则访问L2 Cache,直到所有级别的Cache都不命中,才访问主存。目前,CPU内的Cache通常为二级结构。通常要求L1 Cache的速度足够快,以赶上CPU的主频。L1 Cache的容量一般都比较小,为几千字节到几十千字节;L2 Cache则具有较高的容量,一般为几百字节到几兆字节,以具有足够高的命中率。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2020年下半年
   数据库系统工程..
   上午试卷 综合知识
第2题
选择题
在CPU和主存之间设置高速缓存(Cache)的目的是为了解决( )的问题。

35%
   2017年上半年
   数据库系统工程..
   上午试卷 综合知识
第6题
选择题
以下关于Cache(高速缓冲存储器)的叙述中,不正确的是( )。

51%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有