免费智能真题库 > 历年试卷 > 信息系统管理工程师 > 2014年上半年 信息系统管理工程师 上午试卷 综合知识
  第3题      
  知识点:   存储器   高速缓冲存储器   高速缓冲存储器(Cache)   Cache   地址映像
  关键词:   Cache   地址映像   高速缓冲存储器   数据   主存   存储器        章/节:   计算机硬件知识       

 
在高速缓冲存储器Cache)-主存层次结构中,地址映像以及和主存数据的交换由( )完成。
 
 
  A.  硬件
 
  B.  中断机构
 
  C.  软件
 
  D.  程序计数器
 
 
 

 
  第4题    2009年下半年  
   28%
以下关于Cache的叙述中,正确的是 (4)。
  第4题    2014年上半年  
   34%
计算机系统的内存储器主要由( )构成。
  第4题    2016年上半年  
   40%
以下关于SRAM(静态随机存储器)和DRAM(动态随机存储器)的说法中,正确的是(4)。
   知识点讲解    
   · 存储器    · 高速缓冲存储器    · 高速缓冲存储器(Cache)    · Cache    · 地址映像
 
       存储器
        存储器是存放二进制形式信息的部件。在计算机中它的主要功能是存放程序和数据。程序是计算机操作的依据,数据是计算机操作的对象。不论是程序和数据,在存储器中都以二进制形式的“1”或“0”表示,统称为信息。我们可以对存储器中的内容进行读或写操作。
        按存储器在计算机中的功能分类:
        (1)高速缓冲存储器(Cache)。目前由双极型半导体组成,构成计算机系统中的一个高速小容量存储器。其存取速度能接近CPU的工作速度,用来临时存放指令和数据。
        (2)主存储器。主存储器是计算机系统中的重要部件,用来存放计算机运行时的大量程序和数据,主存储器目前一般用MOS半导体存储器构成。
        CPU能够直接访问的存储器称内存储器,高速缓存和主存都是内存储器。在配置了高速缓存的计算机内,主存储器和高速缓存之间要不断交换数据。
        如果计算机没有配置高速缓存,内存储器就是主存储器,两个名称可以换用。
        (3)辅助存储器。辅助存储器又称外存储器。外存储器主要由磁表面存储器组成,近年来,光存储器应用已很广泛,渐渐成为一种重要的辅助存储器。外存储器的内容需要调入主存后才能被CPU访问。外存储器的特点是容量大,所以可存放大量的程序和数据。
 
       高速缓冲存储器
        高速缓冲存储器是一种采用和CPU工艺相类似的半导体器件构成的存储装置,其速度可与CPU相匹配,但容量较小,只能存放一小段程序和数据。由于程序具有局部性,在短时间内程序和数据各自相对集中在一小块存储区内。因此在一小段时间内CPU可以不必访问主存,而访问速度较快的高速缓冲存储器,从而提高了指令的执行速度。
        在高档微机中为了获得更高的效率,不仅设置了独立的指令高速缓冲存储器和数据高速缓冲存储器,还把高速缓冲存储器设置成二级或三级。高速缓存通常由双极型半导体存储器或SRAM组成。地址映像以及和主存数据交换机构全由硬件实现,并对程序员透明。
        目前,访问高速缓冲存储器的时间一般为访问主存时间的1/4~1/10。由于半导体器件成本下降很快,高速缓冲存储器存储器已在大、中、小及微型机上普通采用。如下图所示为高速缓冲存储器的基本结构图,主存和高速缓冲存储器均是模块化的(例如以页为单位),并且两者之间交换数据以页为单位进行。CPU访存地址送到高速缓冲存储器,经相联存储映像表的地址映射变换,如果CPU要访问的内容在高速缓冲存储器中,则称为“命中”,则从高速缓冲存储器中读取数据送CPU;如果CPU要访问的内容不在高速缓冲存储器中,则称为“不命中”或“失靶”,则CPU送来地址直接到主存中读取数据。这时,访存地址是同时送到高速缓冲存储器和主存中的。如果访问“未命中”,除了本次访问对主存进行存取外,主存和高速缓冲存储器之间还要通过多字宽通路交换数据。主存内容在写入高速缓冲存储器过程中,如果高速缓冲存储器已满,要按某种替换策略将高速缓冲存储器中一页调出写回主存。这种替换算法可以是最近最少使用算法(LRU)或其他算法,这由相应的管理逻辑来实现。
        
        高速缓冲存储器基本结构图
 
       高速缓冲存储器(Cache)
        目前由双极型半导体组成,构成计算机系统中的一个高速小容量存储器。其存取速度能接近CPU的工作速度,用来临时存放指令和数据。
 
       Cache
        Cache的功能是提高CPU数据输入输出的速率,突破所谓的“冯.诺依曼瓶颈”,即CPU与存储系统间数据传送带宽限制。高速存储器能以极高的速率进行数据的访问,但因其价格高昂,如果计算机的内存完全由这种高速存储器组成则会大大增加计算机的成本。通常在CPU和内存之间设置小容量的高速存储器Cache。Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似Cache。
               Cache基本原理
               使用Cache改善系统性能的依据是程序的局部性原理。依据局部性原理,把内存中访问概率高的内容存放在Cache中,当CPU需要读取数据时就首先在Cache中查找是否有所需内容,如果有,则直接从Cache中读取;若没有,再从内存中读取该数据,然后同时送往CPU和Cache。如果CPU需要访问的内容大多都能在Cache中找到(称为访问命中),则可以大大提高系统性能。
               如果以h代表对Cache的访问命中率(“1-h”称为失效率,或者称为未命中率),t1表示Cache的周期时间,t2表示内存的周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3。则:
               t3=t1×h+t2×(1-h
               系统的平均存储周期与命中率有很密切的关系,命中率的提高即使很小也能导致性能上的较大改善。
               例如,设某计算机主存的读/写时间为100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%,取数的命中率为95%。在执行某类程序时,约有1/5指令需要存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置Cache后,每条指令的平均访存时间约为:
               (2%×100ns+98%×10ns)+1/5×(5%×100ns+95%×10ns)=14.7ns
               映射机制
               当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定所需数据是否已在Cache中,若命中则直接对Cache进行访问。这个过程被称为Cache的地址映射(映像)。在Cache的地址映射中,主存和Cache将均分成容量相同的块(页)。常见的映射方法有直接映射、全相联映射和组相联映射。
               (1)直接映射。直接映射方式以随机存取存储器作为Cache存储器,硬件电路较简单。直接映射是一种多对一的映射关系,但一个主存块只能够复制到Cache的一个特定位置上去。
               例如,某Cache容量为16KB(即可用14位表示),每块的大小为16B(即可用4位表示),则说明其可分为1024块(可用10位表示)。则主存地址的最低4位为Cache的块内地址,然后接下来的中间10位为Cache块号。如果内存地址为1234E8F8H的话(一共32位),那么最后4位就是1000(对应十六进制数的最后一位“8”),而中间10位,则应从E8F(1110 1000 1111)中获取,得到10 1000 1111。因此,内存地址为1234E8F8H的单元装入的Cache地址为10 1000 1111 1000。
               直接映射方式的优点是比较容易实现,缺点是不够灵活,有可能使Cache的存储空间得不到充分利用。例如,假设Cache有8块,则主存的第1块与第17块同时复制到Cache的第1页,即使Cache其他页面空闲,也有一个主存页不能写入Cache。
               (2)全相联映射。全相联映射使用相联存储器组成的Cache存储器。在全相联映射方式中,主存的每一页可以映射到Cache的任一页。如果淘汰Cache中某一页的内容,则可调入任一主存页中的内容,因而较直接映射方式灵活。
               在全相联映射方式中,主存地址不能直接提取Cache页号,而是需要将主存页标记与Cache各页的标记逐个比较,直到找到标记符合的页(访问Cache命中),或者全部比较完后仍无符合的标记(访问Cache失败)。因此这种映射方式速度很慢,失掉了高速缓存的作用,这是全相联映射方式的最大缺点。如果让主存页标记与各Cache标记同时比较,则成本又太高。全相联映像方式因比较器电路难于设计和实现,只适用于小容量Cache。
               (3)组相联映射。组相联映射是直接映射和全相联映射的折中方案。它将Cache中的块再分成组,通过直接映射方式决定组号,通过全相联映射的方式决定Cache中的块号。在组相联映射方式中,主存中一个组内的块数与Cache的分组数相同。
               例如:容量为64块的Cache采用组相联方式映像,每块大小为128个字,每4块为一组。若主存容量为4096块,且以字编址,那么主存地址应该为多少位?主存区号(组号)为多少位?这样的题目,首先根据主存与Cache块的容量需一致,即每个内存块的大小也是128个字,因此共有128×4096个字(219个字),即主存地址需要19位。因为Cache分为16组,所以主存需要分为4096/16=256组,即28组,因此主存组号需8位。
               在组相联映射中,由于Cache中每组有若干可供选择的页,因而它在映像定位方面较直接映像方式灵活;每组页数有限,因此付出的代价不是很大,可以根据设计目标选择组内页数。
               淘汰算法
               当Cache产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。但是当Cache已存满数据后,新数据必须淘汰Cache中的某些旧数据。最常用的淘汰算法有随机淘汰法、先进先出法(First In and First Out, FIFO)和近期最少使用淘汰法(Least Recently Used, LRU)。其中平均命中率最高的是LRU算法。
               写操作
               因为需要保证缓存在Cache中的数据与内存中的内容一致,相对读操作而言,Cache的写操作比较复杂,常用的有以下几种方法。
               (1)写直达(write through)。当要写Cache时,数据同时写回内存,有时也称为写通。
               (2)写回(write back)。CPU修改Cache的某一行后,相应的数据并不立即写入内存单元,而是当该行从Cache中被淘汰时,才把数据写回到内存中。
               (3)标记法。对Cache中的每一个数据设置一个有效位。当数据进入Cache后,有效位置1;而当CPU要对该数据进行修改时,数据只需写入内存并同时将该有效位清0。当要从Cache中读取数据时需要测试其有效位:若为1则直接从Cache中取数,否则从内存中取数。
 
       地址映像
        当CPU访问内存时,用的是访问主存的地址,由该地址变为访问Cache的地址称为"地址变换"。变换过程采用硬件实现,以达到快速访问的目的。地址映像方式有全相联方式、直接方式和组相联方式。
   题号导航      2014年上半年 信息系统管理工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第3题    在手机中做本题