全部科目 > 网络工程师 >
2019年下半年 上午试卷 综合知识
第 1 题
知识点 Cache   CPU   高速缓存   高速缓存(Cache)  
关键词 Cache   CPU   多级高速缓存   高速缓存  
章/节 计算机硬件知识  
 
 
CPU内外常设置多级高速缓存Cache),其主要目的是( )。
 
  A.  扩大主存的存储容量
 
  B.  提高CPU访问主存数据或指令的效率
 
  C.  扩大存储系统的容量
 
  D.  提高CPU访问外存储器的速度




 
 
相关试题     计算机硬件知识 

  第32题    2024年下半年  
以下关于 CISC (Complex Instruction Set Computer.复杂指令集计算机)和RISC (Reduced Instruction Set Computer,精简指令集计算机)的叙述中,错误的是(2)。

  第38题    2024年下半年  
相联存储器按(3)访问。

  第14题    2013年下半年  
循环冗余校验标准CRC-16的生成多项式为G(x)=x16+x15+x2+1,它产生的校验码是(13)位。接收端发现错误后采取的措施是(14)。

 
知识点讲解
· Cache
· CPU
· 高速缓存
· 高速缓存(Cache)
 
        Cache
        Cache即高速缓冲存储器,是为了解决CPU和主存之间速度匹配问题而设置的。它是介于CPU和主存之间的小容量存储器,存取速度比主存快。其改善系统性能的依据是程序的局部性原理。
        .Cache主要由两部分组成,即控制部分和存储器部分。
        .Cache存储器部分用来存放主存的部分副本。
        .控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中。
 
        CPU
        CPU即中央处理器,它是计算机系统的核心部分。刚才所列的系统性能评价指标都是围绕CPU的。当然,这些指标的评价结果是建立在CPU与其他系统部件(如内存)的协同工作的基础上的。单就CPU而言,考察它在系统中的工作性能要关注CPU利用率、队列长度、每秒中断次数,等。
 
        高速缓存
        高速缓存(Cache)由快速半导体存储器构成,用来存放当前最活跃的程序和数据,其内容是主存局部域的副本,对程序员来说是透明的。
               高速缓存的组成
               Cache存储器中控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块里。
               现代CPU中Cache分为了多个层级,如下图所示。
               
               三级Cache示意图
               在多级Cache的计算机中,Cache分为一级(L1 Cache)、二级(L2Cache)、三级(L3 Cache)等,CPU访存时首先查找L1 Cache,如果不命中,则访问L2Cache,直到所有级别的Cache都不命中,才访问主存。通常要求L1 Cache的速度足够快,以赶上CPU的主频。如果Cache为两级,则L1 Cache的容量一般都比较小,为几千字节到几十千字节;L2 Cache则具有较高的容量,一般为几百字节到几兆字节,以使高速缓存具有足够高的命中率。
               高速缓存中的地址映像方法
               在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换成Cache存储器的地址,这种地址的转换称为地址映像。Cache的地址映像有如下3种方法。
               (1)直接映像。直接映像是指主存的块与Cache块的对应关系是固定的,如下图所示。
               
               直接映像示意图
               在这种映像方式下,由于主存中的块只能存放在Cache存储器的相同块号中,因此,只要主存地址中的主存区号与Cache中记录的主存区号相同,则表明访问Cache命中。一旦命中,由主存地址中的区内块号立即可得到要访问的Cache存储器中的块,而块内地址就是主存地址中给出的低位地址。
               直接映像方式的优点是地址变换很简单,缺点是灵活性差。例如,不同区号中块号相同的块无法同时调入Cache存储器,即使Cache存储器中有空闲的块也不能利用。
               (2)全相联映像。全相联映像如下图所示。同样,主存与Cache存储器均分成大小相同的块。这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中。
               
               全相联映像示意图
               例如,主存为64MB,Cache为32KB,块的大小为4KB(块内地址需要12位),因此主存分为16384块,块号从0~16383,表示块号需要14位,Cache分为8块,块号为0~7,表示块号需3位。存放主存块号的相联存储器需要有Cache块个数相同数目的单元(该例中为8),相联存储器中每个单元记录所存储的主存块的块号,该例中相联存储器每个单元应为14位,共8个单元。
               在地址变换时,利用主存地址高位表示的主存块号与Cache中相联存储器所有单元中记录的主存块号进行比较,若相同即为命中。这时相联存储器单元的编号就对应要访问Cache的块号,从而在相应的Cache块中根据块内地址(上例中块内地址是12位,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的一个重要指标,但不是最主要的指标。Cache设计的目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。设Hc为Cache的命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache存储器的等效加权平均访问时间ta为:
               ta=Hctc+(1-Hc)tm=tc+(1-Hc)(tm-tc
               这里假设Cache访问和主存访问是同时启动的,其中,tc为Cache命中时的访问时间,(tm-tc)为失效访问时间。如果在Cache不命中时才启动主存,则
               ta=tc+(1-Hc)tm
               Cache的命中率与Cache容量的关系如下图所示。Cache容量越大,则命中率越高,随着Cache容量的增加,其失效率接近0%(命中率逐渐接近100%)。但是,增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。
               
               Cache容量与命中率的关系
               在指令流水线中,Cache访问作为流水线中的一个操作阶段,Cache失效将影响指令的流水。因此,降低Cache的失效率是提高Cache性能的一项重要措施。当Cache容量比较小时,容量因素在Cache失效中占有比较大的比例。降低Cache失效率的方法主要有选择恰当的块容量、提高Cache的容量和提高Cache的相联度等。
 
        高速缓存(Cache)
        Cache是一种比常见内存(RAM)更快的存储器,在存储位置上位于处理器和外部内存之间,一般称之为高速缓冲存储器。众所周知,程序由代码和数据组成,在一般情况下由于容量限制代码和数据需要存放在内存中,当处理器要执行程序时就需要不断地访问内存,出于技术和成本问题,内存的读取速度通常比CPU的速度慢很多,因此这会严重制约系统的实际性能。
        在实际程序运行过程中,处理器对内存的访问并不是完全随机的,在某个时间段内,CPU总是访问当前内存地址的相邻地址,也就是说程序对内存的访问符合局部性原理。基于程序局部性原理,通过在CPU和外部存储设备之间设计高速缓冲器(Cache),让其进行外部存储设备的局部存储,从而可以提升CPU对外部存储设备的访问效率。Cache的主要功能是对外部存储设备(一般指内存)的缓冲,在一般的Cache设计中,Cache把整个内存分成大小相同的块,块的大小因不同Cache芯片的实现而不同。因此,Cache内部的地址是由块号和块内偏移组成。下图给出了Cache的逻辑工作示意图,其实现过程如下。
        
        Cache工作机制示意图
        (1)Cache收到CPU访问内存的地址。
        (2)Cache将CPU访问内存的地址分解为块号和块内偏移。
        (3)利用(2)中分解的块号查找Cache内部的Cache块。
        (4)如果用(2)中的块号找到一个Cache块,即表示命中,然后用(2)中分解的块内偏移去索引该块中的数据:如果当前是读内存,即可立即将Cache中缓存的数据返回给CPU;如果是写操作,根据Cache的类型不同,动作会不同。
        (5)如果(3)中没有找到对应的Cache块,即表示未命中。
        (6)如果Cache未命中,Cache首先查找Cache内部有没有空闲块。
        (7)如果(6)中Cache找到一个空闲块,就在该块中装入CPU访问内存地址对应的内存块,同时,如果是读内存操作就把这个地址对应的数据返回给CPU。如果是写内存操作,根据Cache的类型不同,动作也会不同。
        (8)如果在(6)过程中没有找到一个空闲块,需要使用Cache管理中的块替换策略,找出Cache中可替换出去的块。如果CPU是读内存操作,那么根据替换块的块号和状态,Cache会决定是否把这个块回写到内存中(或者直接废除),最后在该替换出去的块中装入CPU访问内存地址对应的内存块,同时把这个地址对应的数据返回给CPU。如果CPU是写内存操作,根据Cache的类型不同,Cache的动作也会不同。
        根据程序访问的局部性原理可知,CPU在某一特定的时间段内会对Cache保持很高的命中率。因此,在该时间段内,CPU就可以直接从Cache中获取指令或数据,从而提升系统的性能。根据Cache的工作机制,可以把Cache分为多种类型,典型的包括回写式Cache和写通式Cache。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

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