计算机组成原理 并行、cache、虚拟存储器 练习题
一、填空题
1.有关高速缓冲存储器Cache的说法正确的是( ) 。
A、只能在CPU以外
B、CPU内外都可以设置Cache
C、只能在CPU以内
D、若存在Cache,CPU就不能再访问内存
正确答案:B
2.采用虚拟存储器的主要目的是( )。
A、提高主存储器的存取速度
B、扩大主存储器的存储空间,并能进行自动管理调度
C、提高外存储器的存取速度
D、扩大外存储器的存储空间
正确答案:B
3.常用的虚拟存储系统由( ) 两级存储器组成,其中辅存是大容量的磁表面存储器。
A、主存 — 辅存
B、Cache — 辅存
C、主存 — Cache
D、通用寄存器 — 主存
正确答案:A
4.从下列有关存储器的描述中,选择出正确的答案:
A、多体交叉存储主要解决扩充容量问题;
B、访问存储器的请求是由CPU发出的;
C、Cache与主存统一编址,即主存空间的某一部分属于Cache;
D、Cache的功能全由硬件实现。
正确答案:D
5.相联存储器是按( ) 进行寻址的存储器。
A、地址指定方式
B、堆栈存取方式
C、内容指定方式
D、地址指定与堆栈存取方式结合
正确答案:C
6.交叉存储器实质上是一种( )存储器,它能执行独立的读写操作。
A、多模块,并行
B、多模块,串行
C、整体式,并行
D、整体式,串行
正确答案:A
7.下面说法正确的是( )。
A、半导体RAM信息可读可写,且断电后仍能保持记忆
B、半导体RAM属挥发性存储器,而静态的RAM存储信息是非挥发性的
C、静态RAM、动态RAM都属挥发性存储器,断电后存储的信息将消失
D、ROM不用刷新,且集成度比动态RAM高,断电后存储的信息将消失
正确答案:C
8.存储单元是指( )。
A、存放一个二进制信息位的存储元
B、存放一个机器字的所有存储元集合
C、存放一个字节的所有存储元集合
D、存放两个字节的所有存储元集合
正确答案:B
9.在计算机的存储体系中,Cache的作用是______。
A、提高存储体系的速度
B、增加存储体系的容量
C、降低存储体系的复杂性
D、提高存储体系的可靠性
正确答案:A
10.双端口RAM在( )情况下会发生读/写冲突。
A、左端口和右端口的地址码不同
B、左端口和右端口的地址码相同
C、左端口和右端口的数据码不同
D、左端口和右端口的数据码相同
正确答案:B
11.【2015统考真题】某计算机使用四体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是( )。
A、8004和8008
B、8002和8007
C、8001和8008
D、8000和8004
正确答案:D
题目解析:
每个访存地址对应的存储模块序号(0,1,2,3)如下所示:
其中,模块序号=访存地址%存储器交叉模块数。
判断可能发生访存冲突的规则如下:给定的访存地址在相邻的四次访问中出现在同一个存储模块内。据此,根据上表可知8004和8000对应的模块号都为0,即表明这两次的访问出现在同一模块内且在相邻的访问请求中,满足发生冲突的条件。
12.【2009统考真题】假设某计算机的存储系统由 Cache和主存组成,某程序执行过程中访存1000次,其中访问 Cache缺失(未命中)50次,则 Cache的命中率是( )。
A、5%
B、9.5%
C、50%
D、95%
正确答案:D
题目解析:
命中率= Cache命中次数/总访问次数。注意看清题目,题中说明的是缺失50次,而不是命中50次,仔细审题是做对题的第一步。
13.【2009统考真题】某计算机的 Cache共有16块,采用二路组相联映射方式(即每组2块)。每个主存块大小为32B,按字节编址,主存129号单元所在主存块应装入的 Cache组号是( )。
A、0
B、2
C、4
D、6
正确答案:C
题目解析:
由于 Cache共有16块,采用2路组相联,因此共分为8组,组号为0,1,2…,7.主存的某字块按模8映射到 Cache某组的任一字块中,即主存的第0,8,16;…字块可以映射到 Cache第0组的任一字块中。每个主存块大小为32B,因此129号单元位于第4块主存块中(注意是从0开始的),因此将映射到 Cache第4组的任一字块中。
注意:由于在计算机系统结构和计算机组成原理的某些教材中介绍的组相联与此处的组相联并不相同,导致部分读者对题目理解错误。读者应以真题为准,以后再出现类似的题目,应以此种解答方式为标准。而且组号通常是从0而不是从1开始的(从选项也可看出)
14.【2012统考真题】假设某计算机按字编址, Cache有4行, Cache和主存之间交换的块大小为1个字。若 Cache的内容初始为空,采用2路组相联映射方式和LRU替换策略,则访问的主存地址依次为0,4,8,2,0,6,8,6,4,8时,命中 Cache的次数是( )。
A、1
B、2
C、3
D、4
正确答案:C
题目解析:
15.某32位计算机的 Cache容量为16KB, Cache行的大小为16B,若主存与 Cache地址映像采用直接映像方式,则主存地址为0x1234E8F8的单元装入 Cache的地址是( )。
A、00010001001101
B、01000100011010
C、1010001111000
D、11010011101000
正确答案:C
题目解析:
因为 Cache容量为16KB=214B,所以 Cache地址长14位。主存与 Cache地址映像采用直接映像方式,将32位的主存地址0x1234E8F8写成二进制,根据直接映射的地址结构可知,取低14位就是 Cache地址。
16.在 Cache中,常用的替换策略有随机法(RAND)、先进先岀法(FIFO)、近期最少使用法(LRU),其中与局部性原理有关的是( )
A、随机法(RAND)
B、先进先出法(FIFO)
C、近期最少使用法(LRU)
D、都不是
正确答案:C
题目解析:
LRU算法根据程序访问局部性原理选择近期使用得最少的存储块作为替换的块。
17.【2016统考真题】有如下C语言程序段:
for(k=0;k<1000;k++)
a[k]=a[k]+32;
若数组a和变量k均为int型,int型数据占4B,数据 Cache采用直接映射方式,数据区大小为1KB、块大小为16B,该程序段执行前 Cache为空,则该程序段执行过程中访问数组a的 Cache缺失率约为( )。
A、1.25%
B、2.5%
C、12.5%
D、25%
正确答案:C
题目解析:
分析语句"a[k]=a[k]+32":首先读取a[k]需要访问一次a[k],之后将结果赋值给a[k]需要访问一次,共访问两次。第一次访问a[k]未命中,并将该字所在的主存块调入 Cache对应的块中,对该主存块中的4个整数的两次访问中,只在访问第一次的第一个元素时发生缺失,其他的7次访问中全部命中,因此该程序段执行过程中访问数组a的 Cache缺失率约为1/8(即12.5%)。
18.虚拟存储器的常用管理方式有段式、页式、段页式,对于它们在与主存交换信息时的单位,以下表述正确的是( )。
A、段式采用"页"
B、页式采用"块"
C、段页式采用"段"和"页"
D、页式和段页式均仅采用"页"
正确答案:D
题目解析:
页式虚拟存储方式对程序分页,采用页进行交互;段页式则先按照逻辑分段,然后分页,以页为单位和主存交互,因此选项D正确。
19.已知单个存储体的存储周期为110ns,总线传输周期为10ns,采用低位交叉编址的多模块存储器时,存储体数应( )。
A、小于11
B、等于11
C、大于11
D、大于等于11
正确答案:D
题目解析:
为保证第二次启动某个体时,其上次存取操作已完成,存储体的数量应大于等于11(110ns/10ns=11)
20.四模块交叉存储器中,十六进制地址32A6H在 。
A、模块0
B、模块1
C、模块2
D、模块3
正确答案:C
二、填空题
21.双端口存储器和多模块交叉存储器都属于( )存储器结构。但是前者采用( )技术,而后者采用( )技术。
正确答案:并行 空间并行 时间并行
22.Cache是一种( )存储器,它是为了解决CPU和主存间速度不匹配而采用的一项重要的硬件技术。现发展为( )体系;( )分设体系。
正确答案:高速缓冲 多级cache 指令cache和数据cache
23.使用高速缓冲存储器是为了解决( )问题,存储管理主要由( )实现。使用虚拟存储器是为了解决( )问题,存储管理主要由( )实现。
正确答案:CPU和主存的速度匹配,提高主存速度 硬件 扩大主存容量和地址分配 软件
24.主存容量为4MB,虚存容量为1GB,则虚存地址和物理地址各为多少位()()?如页面大小为4KB,则页表长度是多少( )?
正确答案:30 22 256K
题目解析:
解析:
已知主存容量为4MB,虚存容量为1GB
∵222=4M ∴物理地址为22位
又 ∵230=1G ∴虚拟地址为30位
页表长度为 1GB÷4KB=230÷212=218=256K
25.某虚拟存储器采用页式存储管理,使用LRU页面替换算法,若每次访问在一个时间单位内完成,页面访问序列如下:1、8、1、7、8、2、7、2、1、8、3、8、2、1、3、1、7、1、3、7。已知主存只允许放4个页面,初始状态时4个页面是全空的,则页面失效次数是 ( )。
正确答案:6
题目解析:
【解析】
LRU算法的思想:每页设置一个计数器,每次命中一页,该页对应的计数器清零,其他各页的计数器加1;需要替换时,将计数值最大的页换出,所以,对应的访问过程及相应的计数器的内容、替换结果如下:
访问序列
1
8
1
7
8
2
7
2
1
8
3
8
2
1
3
1
7
1
3
7
调入的页号
a
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
b
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
7
7
7
7
c
7
7
7
7
7
7
7
3
3
3
3
3
3
3
3
3
3
d
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
各计数器的值
a
0
1
0
1
2
3
4
5
0
1
2
3
4
0
1
0
1
0
1
2
b
0
1
2
0
1
2
3
4
0
1
0
1
2
3
4
0
1
2
0
c
0
1
2
0
1
2
3
0
1
2
3
0
1
2
3
0
1
d
0
1
0
1
2
3
4
0
1
2
3
4
5
6
7
注:红色标注的页是未命中的访问——共6次
26.主存与CACHE的地址映射有( A )、( B )、( C )三种方式。
正确答案:全相联映射 直接映射 组相联映射
三、综合题
27.存储器容量为64M,字长64位,模块数m = 8,分别用顺序方式和交叉方式进行组织。存储周期T = 100ns,数据总线宽度为64位,总线周期τ = 10ns。问顺序存储器和交叉存储器的带宽各是多少?
正确答案:
64 ×10^7(位/ S) 301 ×10^7 (位/ S)
题目解析:
解析:
信息总量: q = 64位 ×8 =512位
顺序存储器和交叉存储器读出8个字的时间分别是:
t2 = m T = 8×100ns =8×10-7 (s)
t1 = T + (m - 1)τ= 100 + 7×10 = 1.7 ×10-7 (s)
顺序存储器带宽是:
W2 = q / t2 = 512÷(8×10-7)= 64 ×107(位/ S)
交叉存储器带宽是:
W1 = q / t1 = 512÷(1.7 ×10-7)= 301 ×107 (位/ S)
28.CPU执行一段程序时, cache完成存取的次数为2420次,主存完成存取的次数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。
正确答案:86.2%
题目解析:
解析:
先求命中率h
h=nc/(nc +nm )=2420÷(2420+80)=0.968
则平均访问时间为ta
ta=0.968×40+(1-0.968) ×240=46.4(ns)
r =240÷40=6
cache/主存系统的效率为e
e=1/[r+(1-r)×0.968]=86.2%
29.一个组相联cache由64个行组成,每组4行,主存储器包含4k个块,每块128个字。 求表示内存地址的格式。
正确答案:
64行, 4行一组,共64/4=16组;主存储器有4K个块,每块128字,共2的19次方个字,所以低7位表示块内偏移,因为4K/16为区数256,用8位二进制数表示,故19位内存地址表示为最高8位(表示区号)、中间4位(表示区内组号)、最低7位(表示块内字偏移量)。
题目解析:
64行, 4行一组,共64/4=16组;主存储器有4K个块,每块128字,共2的19次方个字,所以低7位表示块内偏移,因为4K/16为区数256,用8位二进制数表示,故19位内存地址表示为最高8位(表示区号)、中间4位(表示区内组号)、最低7位(表示块内字偏移量)。
30.有一个处理机,内存容量 1MB,字长 1B,块大小 16B, cache 容量 64KB, 若 cache 采用直接映射式,请给出 2 个不同标记的内存地址,它们映射到同一个 cache 行。
正确答案:见解析
题目解析:
解析:
1MB字节=2^20字节,用20位地址表示;
64 KB Cache/16B 共有 = 4K行 = 2^12 行,tag区数=1MB/64KB = 16=2^4,即16个区。
因此内存地址可表示为:4位(tag区号)+12位(行号)+4位(字偏移地址)。
两个内存地址映射到同一个 cache 行的地址满足的条件是:12 位的行号相同,而 4 位的tag区号标记不同即可,例如下面的两个内存地址就满足要求:
0000 000000000000 0000 = 00000H 与 0001 000000000000 0000 =10000H 映射到cache同一行。