计算机系统结构相关习题.docx
《计算机系统结构相关习题.docx》由会员分享,可在线阅读,更多相关《计算机系统结构相关习题.docx(26页珍藏版)》请在冰豆网上搜索。
计算机系统结构相关习题
《计算机体系结构》期末复习题答案
系别_________班级_________姓名__________学号__________
二、名词解释(每题2分)
1.计算机体系结构:
计算机系统结构就是计算机的机器语言程序员或编译程序编写者所看到的外特性,是硬件子系统的概念结构及其功能特性。
2.系列机:
所谓系列机是指同一厂家生产的具有相同的系统结构,但采取了不同的组成和实现的技术方案,形成了不同型号的多种机型。
3.模拟:
模拟是指用软件的方法在一台计算机上,实现另一台计算机的指令系统,被模拟的机器是不存在的,称为虚拟机,执行模拟程序的机器称宿主机。
4.程序的局部性原理:
程序访问局部性原理说明了计算机在程序执行过程中呈现出的一种规律,即程序往往重复使用它刚刚使用过的数据和指令。
局部性分为时间上的局部性和空间上的局部性两种。
所谓时间局部性是指近期被访问的代码,很可能不久又将再次被访问;空间局部性是指地址上相邻近的代码可能会被连续地访问。
5.MIPS:
它表示每秒百万条指令数。
6.高速缓冲存储器:
高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。
7.虚拟存储器:
虚拟存储器是由主存储器和辅助存储器组成,通过必须的软件和硬件的支持,使得CPU可以访问的存储器具有近似于主存的速度和近似于辅存的容量。
8.快表:
为了提高地址转换速度,缩短查表时间,采用一个小容量的、高速的相关存储部件,用来存放当前最经常用到的那一部分页表,采取按内容相联方式进行访问。
这样,查页表的时间就相当于访问小容量的相关存储器的时间,从而大大地提高了速度,这个小容量相关存储器称为快表。
9.程序定位:
把一个程序交给处理机运行,必须首先把这个程序的指令和数据装入到主存储器中。
一般情况下,程序所分配到的主存物理空间与程序本身的逻辑地址空间是不同的,把指令和数据中的逻辑地址(相对地址)转变成主存物理地址(绝对地址)的过程称为程序定位。
10.延迟转移技术:
为了使指令流水线不断流,在转移指令之后插入一条不相关的有效的指令,而转移指令被延迟执行,这种技术称为延迟转移技术。
11.窗口重叠技术:
为了能更简单、更直接地实现过程与过程之间的参数传递,大多数RISC机器的CPU中都设置有数量较大的寄存器组,让每个过程使用一个有限数量的寄存器窗口,并让各个过程的寄存器窗口部分重叠,这就是窗口重叠技术。
12.流水线技术:
把一个重复的时序过程分成若干个子过程,每个子过程都可以有效地在其专用功能段上和其他子过程同时执行的一种技术,称为流水线技术。
13.动态流水线:
动态流水线在同一时间内允许按多种不同运算的联结方式工作。
14.静态流水线:
静态流水线在同一时间内只能按一种运算的联结方式工作。
15.线性流水线:
线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
16.非线性流水线:
非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合于进行线性递归的运算。
17.流水线的吞吐率:
流水线单位时间完成的任务数。
18.超流水线计算机:
超级流水线结构是把每一个流水线(一个周期)分成多个(例如3个)子流水线,而在每一个子流水线中取出的仍只有一条指令,但总的来看,在一个周期内取出了三条指令。
即在一个时钟周期内能够分时发射多条指令的处理机。
19.向量的分段开采技术:
当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,采用循环结构处理这个长向量,这种技术称为向量循环开采技术,也称为向量分段开采技术。
三、简答题(每题5分)
1.什么是存储系统?
答:
存储系统是两个或两个以上的速度、容量、价格不同的存储器采用硬件,软件或软、硬件结合的办法联结成一个系统,使得整个系统看起来象一个存储器,其速度接近其中最快的一个,容量接近其中最大的一个,价格接近其中最便宜的一个。
2.简述全相联映象规则。
答:
(1)主存与缓存分成相同大小的数据块。
(2)主存的某一数据块可以装入缓存的任意一块空间中。
3.简述直接相联映象规则。
答:
(1)主存与缓存分成相同大小的数据块。
(2)主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。
(3)主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。
4.引起Cache与主存内容不一致的原因是什么?
为了保持Cache的一致性,在单计算机系统中一般采取哪些措施?
答:
不一致的原因:
(1)由于CPU写Cache,没有立即写主存
(2)由于I/O处理机或I/O设备写主存
采取措施:
(1)全写法,亦称写直达法(WT法—Writethrough)
方法:
在对Cache进行写操作的同时,也对主存该内容进行写入。
(2)写回法(WB法—Writeback)
方法:
在CPU执行写操作时,只写入Cache,不写入主存。
5.影响虚拟存储器命中率的因素有哪些?
它们是如何影响的?
答:
(1)页面大小:
当页面比较小时,随着页面的增大,命中率明显提高,但当页面增大到一定值时,命中率不再增大,而随着页面的增大而下降。
(2)主存容量:
当主存容量增加时,命中率不断提高;当容量增大到一定程度后,命中率的提高就不大了。
(3)页面调度方式:
页面的调度都是发生在产生缺页中断时进行,因此在程序刚开始运行时命中率很低,为此可以采用预取式调度法,提高命中率。
6.模拟与仿真的主要区别和适合场合是什么?
答:
模拟是指用软件的方法在一台计算机上,实现另一台计算机的指令系统,被模拟的机器是不存在的,称为虚拟机,执行模拟程序的机器称宿主机。
由于模拟采用纯软件解释执行方法,因此运行速度较慢,实时性差。
因此只适合于移植运行时间短,使用次数少,而且在时间上没有约束和限制的软件。
仿真是指用微程序的方法在一台计算机上实现另一台计算机的指令系统。
执行微程序的机器为宿主机,被实现的为目标机。
仿真的运行速度比模拟快,但仿真计算机的系统结构,因此对于系统结构差别较大的机器难于用仿真的方法实现软件移植。
7.什么是程序直接定位方式?
什么是程序静态定位方式?
答:
(1)直接定位方式程序员在编写程序时或编译程序对源程序进行编译时,就已经确切知道该程序应占用的主存物理空间。
因此可以直接使用实际主存物理地址来编写或编译程序。
目前大多不用这种方式。
(2)静态定位方式专门用装入程序来完成并要求程序本身可以重定位。
在程序装入主存的过程中,把那些带有标识的指令或数据中的逻辑地址全部变成主存的物理地址,集中一次完成地址变换,一旦装入主存就不能再变动了。
8.什么是程序动态定位方式?
答:
动态定位方式是利用类似变址寻址方法,有硬件支持完成。
程序装入主存时,指令或数据地址不作修改,只把主存的起始地址装入该程序对应的基址寄存器中。
在程序运行时,利用地址加法器,指令中的逻辑地址与已经存放在基址寄存器中的程序起始地址相加,就形成了主存的物理地址。
指令的地址码不需全部修改。
9.什么是指令的重叠解释方式?
重叠解释方式有哪三种?
答:
所谓重叠解释方式,即是在两条相邻指令的解释过程中,某些不同解释阶段在时间上存在重叠部分。
重叠解释方式分三种:
一次重叠、先行控制技术和多操作部件并行。
10.什么是数据相关,数据相关冲突可分为哪三种类型?
答:
数据相关是在几条相近的指令间共用相同的操作数时发生的。
例如,指令部件中的某一条指令在进行操作数地址计算时要用到一个通用寄存器的内容,而这个通用寄存器的内容又要由这条指令前的另一条指令产生,但前面那条指令还未进入执行部件,还未产生通用寄存器的内容,这时指令部件中的那条指令只能停下来等待。
数据相关冲突可分为RAW、WAR和WAW三种类型。
11.如有一个经解释实现的计算机,可以按功能划分成4级。
每一级为了执行一条指令需要下一级的N条指令解释。
若执行第一级的一条指令需K(ns)时间,那么执行第2、3、4级的一条指令各需要用多少时间(ns)?
解:
∵第二级的一条指令需第1级的N条指令解释
∴第二级的一条指令执行时间为NKns;
第三级的一条指令执行时间为N2Kns;
第四级的一条指令执行时间为N3Kns。
12.假设将某系统的某一部件的处理速度加快到10倍,但该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少?
解:
由题意可知fe=0.4,re=10,根据Amdahl定律
13.若某机要求有:
三地址指令4条,单地址指令192条,零地址指令16条。
设指令字长为12位,每个地址码长3位。
问能否以扩展操作码为其编码?
14.简述冯。
诺依曼计算机的特征。
答:
一般认为其主要特征有以下几点:
(1)机器以运算器为中心。
除了完成运算以外,机器内部的数据传输都经过运算器。
各部件的操作以及它们之间的协调由控制器集中控制。
(2)存储器按一维线性编址,顺序访问存储器地址单元,每个存储单元的位数固定。
(3)程序存储,指令和数据无区别存放在存储器中,指令和数据一样可以送到运算器中进行运算,指令与数据的区别主要在于地址区域不同。
(4)指令在存储器中按其执行顺序存放,由一个顺序控制器(亦称程序计数器或指令计数器)指定即将被执行的指令地址。
每读取一条指令后,计数器自动按顺序递增。
(5)指令由操作码和地址码组成,操作码指明操作类型,地址码指明操作数的地址和结果地址。
(6)数据以二进制表示。
15.试述页式管理虚拟存储器的工作过程。
答:
页式管理是将主存空间与虚存空间按固定的大小划分成块,每块称为一页。
页的大小和划分与程序的逻辑功能无关,由操作系统软件来执行。
一般而言,一页的大小应该是512Bit的整数倍,因为辅助磁盘存储的物理块的大小为512Bit。
虚页中的页称为虚页,实存中的各页称为实页,各虚页与实页之间按全相联方式映象,也就是虚页中的一页,可以存入主存中的任意一页的位置。
当CPU给出所要访问的虚地址后,根据用户号访问基址寄存器,求得用户的页表首地址Pa,然后与虚地址中的虚页号P相加,得到该页的表目,由此表目中得到该页存入主存中的实页号为p,将该页号读出与页内地址组装即可得到主存的实际地址。
16.简述计算机系统结构用软件实现和用硬件实现各自的优缺点。
答:
硬件实现:
速度快、成本高;灵活性差、占用内存少。
软件实现:
速度低、复制费用低;灵活性好、占用内存多。
17.简述字节多路、数组多路和选择通道的数据传送方式。
答:
(1)字节多路通道:
用于连接多台慢速外设,一般采用字节交叉传送数据的方式,即连接在通道上的各个设备轮流占用一个很短的时间片(通常小于100微秒)传输一个字节。
(2)选择通道:
是指每一个通道连接一台高速外设,也可以连接多台相同的高速外设,但通道只能对各台外设串行服务。
当某一设备工作时,则通道与该设备相连,一直到整个数组传送完后,才可能转向为其他设备服务。
(3)数组多路通道:
数组多路通道是字节多路通道与选择通道工作方式的综合,是在数组传送的基础上,再分时为多个高速外设服务。
它每次选择一个高速设备后传送一个数据块,并轮流为多台外围设备服务。
每台高速外设,如磁盘,其工作时间有寻址时间与传送时间之分。
而寻址时间很长,在这段时间中并不需要通道的控制,所以是通道空闲时间,那么通道可以为其他准备好的高速外设服务。
四、问答与计算题(每题15分)
1.某机主存容量为512KB,Cache的容量为32KB,每块的大小为16个字(或字节)。
划出全相联方式主、缓存的地址格式、目录表格式及其容量。
答:
主存块数:
512K/16=32K=215;缓存块数:
32K/16=2K=211;块内地址:
16=24
2.主存容量为512KB,Cache的容量为32KB,每块为64个字(或字节),缓存共分128组。
划出组相联方式主、缓存的地址格式、目录表格式及其容量。
答:
主存区数:
512K/32K=16=24;缓存组数:
128=27;缓存块数:
32K/64=512=29;
组内块数:
512/128=4=22;块内地址:
64=26
3.什么是方体置换?
写出方体置换函数的表达式,假设互联网有16个结点,请画出4个方体置换函数(即C0,C1,C2,C3)的输入端与输出端的连接关系。
答:
方体置换是实现二进制地址编号中第k位位值不同的输入端输出端之间的连接。
其表达式为:
C0立方置换函数:
C1立方置换函数:
0000
0000
1000
1000
C2立方置换函数:
C3立方置换函数:
4.在页式虚拟存储器中,一个程序由P1~P5共5个页面组成。
在程序执行过程中依次访问的页面如下:
P2,P3,P2,P1,P5,P2,P4,P5,P3,P2,P5,P2
假设系统分配给这个程序的主存有3个页面,分别采用FIFO、LFU和OPT三种页面替换算法对这3页主存进行调度。
(1)画出主存页面调入、替换和命中的情况表。
(2)统计三种页面替换算法的页命中率。
解:
三种替换算法的替换过程:
页地址流
2
3
2
1
5
2
4
5
3
2
5
2
FIFO
命中3次
2
2
3
2
3
2*
3
1
5
3*
1
5
2
1*
5*
2
4
5*
2
4
3
2*
4
3
2*
4
3
5
4*
3*
5
2
调
进
调
进
命
中
调
进
替
换
替
换
替
换
命
中
替
换
命
中
替
换
替
换
LRU
命中5次
2
2
3
2
3
1
2
3*
5
1
2*
2
5
1*
4
2
5*
5
4
2*
3
5
4*
2
3
5*
5
2
3*
2
5
3*
调
进
调
进
命
中
调
进
替
换
命
中
替
换
命
中
替
换
替
换
命
中
命
中
OPT
命中6次
2
2
3
2
3
2
3
1*
2
3*
5
2*
3
5
4*
3
5
4*
3
5
4*
3
5
2
3*
5
2
3
5
2
3
5
调
进
调
进
命
中
调
进
替
换
命
中
替
换
命
中
命
中
替
换
命
中
命
中
5.一个有快表和慢表的页式虚拟存储器,最多有64个用户,每个用户最多要用1024个页面,每页4K字节,主存容量8M字节。
(1)写出多用户虚地址的格式,并标出各字段的长度。
(2)写出主存地址的格式,并标出各字段的长度。
(3)快表的字长为多少位?
分几个字段?
各字段的长度为多少位?
(4)慢表的容量是多少个存储字?
每个存储字的长度为多少位?
答:
用户号:
64=26,虚页号:
1024=210,页内地址:
4K=212,主存页数:
8M/4K=211
(1)多用户虚地址:
用户号(6位)+虚页号(10位)+页内地址(12位)共28位
(2)主存地址:
主存实页号(11位)+页内地址(12位)共23位
(3)快表字长27位;分3个字段:
用户号6位,虚页号10位,实页号11位
(4)慢表容量为2(6+10),每个存储字长为:
主存页号+1=12位。
6.一个程序由五个虚页组成,采用LFU替换算法,在程序执行过程中依次访问的地址流如下:
4,5,3,2,5,1,3,2,3,5,1,3
(1)可能的最高页命中率是多少?
(2)至少要分配给该程序多少个主存页面才能获得最高的命中率。
(3)如果在程序执行过程中访问一个页面,平均要对该页面内的存储单元访问1024次,求访问存储单元的命中率。
解:
(1)由于在页地址流中互不相同的页共有5页,因此最多分配5个主存页面就可获得最高页中命中率,可能的最高命中率为
(2)因为LFU替换算法为堆栈型换算法,即随着分配给该程序的主存页面数的减少,其命中率单调递减,所以为获得最高命中率H=7/12,可采用逐步减少所分配的主存页数的方法来推算,若分配n个主存页面时可获得最高命中率,但分配n-1个页面时命中率却减少,则此时我们可以得出这样的结论:
至少要分配给该程序n个主存页面才能获得最高的命中率。
由表可知,至少要分配给该程序4个主存页面才能获得最高的命中率。
页地址流
4
5
3
2
5
1
3
2
2
5
1
3
S
(1)
堆S
(2)
栈S(3)
内S(4)
容S(5)
S(6)
4
5
4
3
5
4
2
3
5
4
5
2
3
4
1
5
2
3
4
3
1
5
2
4
2
3
1
5
4
2
3
1
5
4
5
2
3
1
4
1
5
2
3
4
3
1
5
2
4
n=1
实n=2
页n=3
数n=4
n>=5
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
(3)访问存储单元的命中率为
值得说明的是,在此例中,尽管LFU属于堆栈替换算法,但是分配的实际页数n也并不是越多越好,当命中率H达到饱和后,实际页数n的增加不仅不会提高命中率,反而会使实存的利用率下降。
7.假设一台模型计算机共有10种不同的操作码,如果采用固定长操作码需要4位。
已知各种操作码在程序中出现的概率如下表所示,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量(假设最短平均长度H=3.1位)。
指令序号
指令使用频度Pi
指令序号
指令使用频度Pi
I1
0.17
I6
0.09
I2
0.15
I7
0.08
I3
0.15
I8
0.07
I4
0.13
I9
0.03
I5
0.12
I10
0.01
答:
构造Huffman树如下:
Huffman编码如下表:
指令号
指令使
用频度Pi
Huffman
编码
码长
指令号
指令使
用频度Pi
Huffman
码
码长
I1
0.17
10
2
I6
0.09
0110
4
I2
0.15
000
3
I7
0.08
0111
4
I3
0.15
001
3
I8
0.07
1110
4
I4
0.13
010
3
I9
0.03
11110
5
I5
0.12
110
3
I10
0.01
11111
5
Huffman编码的平均码长为:
冗余量=(3.15-3.10)/3.15=1.59%
固定码长:
log210=4
冗余量=(4-3.10)/4=22.5%
8.一台模型机的各条指令的频度如下:
ADD(加):
43%SHR(右移):
1%
SUB(减):
13%CLL(循环左移):
2%
JOM(按页转移):
6%CLA(累加器清0):
22%
STO(存):
5%STP(停机):
1%
JMP(转移):
7%
试设计这9条指令的哈夫曼编码的操作码表示以及2-4等长扩展操作码表示,并计算这两种表示的平均操作码长度。
答:
构造Huffman树如下:
Huffman编码如下表:
指令
指令使
用频度Pi
Huffman
编码
码长
2-4扩展
码
码长
ADD
0.43
0
1
00
2
CLA
0.22
100
3
01
2
SUB
0.13
101
3
1000
4
JMP
0.07
1100
4
1001
4
JOM
0.06
1101
4
1010
4
STO
0.05
1110
4
1011
4
CLL
0.02
11110
5
1100
4
SHR
0.01
111110
6
1101
4
STP
0.01
111111
6
1110
4
Huffman编码的平均码长为:
2-4编码的平均码长为:
14.用一条4段浮点加法器流水线求8个浮点数的和:
Z=A+B+C+D+E+F+G+H,求流水线的吞吐率、加速比和效率,其中△t1=△t2=△t3=△t4=△t。
答:
可对原式作一简单变化,得到:
Z=[(A+B)+(C+D)]+[(E+F)+(G+H)]
7个加法8个数的流水线时空图如下:
从流水线的时空图中可以很清楚地看到,7个浮点加法共用了15个时钟周期。
流水线的吞吐率为:
流水线的加速比为:
流水线的效率为:
9.设有两个向量A,B,各有4个元素,若在如图所示的静态双功能流水线上,计算向量点积:
其中,1→2→3→5组成加法流水线,1→4→5组成乘法流水线。
又设每个流水线所经过的时间均为△t,而且流水线的输出结果可以直接返回到输入或暂存于相应的缓冲寄存器中,其延迟时间和功能切换所需的时间都可以忽略不计。
请使用合理的算法,能使完成向量点积A*B所用的时间最短,并求出流水线在此期间实际的吞吐率TP和效率E。
解:
首先,应选择适合于静态流水线工作的算法。
对于本题,应先连续计算al*bl、a2*b2、a3*b3和a4*b4共4次乘法,然后功能切换,按((albl+a2b2)+(a3b3+a4b4))经3次加法来求得最后的结果。
按此算法可画出流水线工作时的时空图。
由图可见,总共在15个△t的时间内流出7个结果,所以在这段时间里,流水线的实际吞吐率TP为7/15△t。
若不用流水线,由于一次求积需3△t,产生上述结果就需要43△t+34△t=24△t。
因此,加速比为S=24△t/(15△t)=1.6。
该流水线的效率可用阴影区面积和全部5个段的总时空图面积之比求得,即
简述题
1.MIPS指令实现的简单数据通路中,操作分成了哪5个时钟周期?
对MIPS的寄存器一寄存器ALU指令和store指令请各写出一条具体指令,并列出它们在在各个时钟周期的具体操作。
答:
5个时钟周期:
①取指令②指令译码/读寄存器③执行/有效地址计算④存储器访问/分支完成⑤写回
2.简述降低Cache失效率的方祛和原理。
计算题
1.计算机系统中有三个部件可以改进,这三个部件的部件加速比为:
部件加速比1=30;部件加速比2=20;部件加速比3=10
(1)如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?
(2)如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?
解:
(1)在多个部件可改进情况下,Amdahl定理的扩展:
已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:
得F3=0.36,即部件3的