最新江西师范大学体系计算题.docx
《最新江西师范大学体系计算题.docx》由会员分享,可在线阅读,更多相关《最新江西师范大学体系计算题.docx(32页珍藏版)》请在冰豆网上搜索。
最新江西师范大学体系计算题
第一章
1.49有一台计算机,不同类型指令在理想Cache(无访问失败)与实际Cache(有访问失败)两种情况下的性能如下表。
求理想Cache相对于实际Cache的加速比?
指令类型出现频率理想CacheCPI实际CacheCPI
运算指令40%13
取数指令20%28
存数指令15%28
控制指令25%24
解:
理想Cache情况下指令的平均时钟周期数CPI为:
CPI理想=
=1×40%+2×20%+2×15%+2×25%=1.6
实际Cache情况下指令的平均时钟周期数CPI为:
CPI实际=
=3×40%+8×20%+8×15%+4×25%=5.0
S=实际CacheCPU执行时间/理想CacheCPU执行时间
=(IC×时钟周期×CPI实际)/(IC×时钟周期×CPI理想)=CPI/CPIA=5.0/1.6
=3.12
1.45用一台80MHz处理机执行标准测试程序,它包含的指令数和相应的平均时钟周期数如表1-10所示,求该处理机的有效CPI、MIPS和程序执行时间。
表1-10题1.46的指令数和相应的平均周期数
指令类型
指令数
平均周期数
整数运算
46000
1
数据传输
36000
2
浮点运算
14000
2
控制指令
9000
2
解:
该处理机指令的平均时钟周期数CPI为:
CPI=
=46/105×1+36/105×2+14/105×2+9/105×2=1.6
所以MIPS=时钟频率/(CPIB×106)=(80×106)/(1.6×106)=50
TCPU=IC/(MIPS×106)=105000/(50×106)=0.21(ms)
1.44某工作站采用时钟频率为15MHz、处理速率为10MIPS的处理机来执行一个测试程序。
假定每次存储器存取为1个时钟周期,试问:
(1)此计算机的有效CPI是多少?
(2)假定将处理机的时钟频率提高到30MHz,但存储器的工作速率不变,这样,每次存储器存取需要2个时钟周期。
如果30%指令每条只需要一次存储器存取操作,另外5%指令每条需要二次存储器存取操作,假定测试程序的指令数不变,并与原工作站兼容,试求改进后的处理机的CPI。
解:
(1)由MIPS=时钟频率/(CPI×106),
则有:
CPIA=时钟频率/(MIPS×106)=1.5。
(2)当时钟频率为15MHZ时,假设不进行存储操作指令的CPI为x,则要进行一次存储操作指令的CPI为1+x,要进行二次存储操作指令的CPI为2+x,因此有:
1.5=x×65%+(1+x)×30%+(2+x)×5%
解得x=1.1
当时钟频率为30MHZ时,不进行存储操作指令的CPI不变为1.1,要进行一次存储操作指令的CPI为2+x=3.1,要进行二次存储操作指令的CPI为4+x=5.1,因此平均CPI为:
CPIB=1.1×65%+3.1×30%+5.1×5%=1.9
所以MIPSB=时钟频率/(CPIB×106)=(30×106)/(1.9×106)=15.8
第二章
2.13在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。
k:
MOVER1,R0;R1←(R0)
k+1:
MULR0,R2,R1;R0←(R2)×(R1)
k+2:
ADDR0,R2,R3;R0←(R2)+(R3)
(1)就程序本身而言,可能有哪几种数据相关?
(2)在程序实际执行过程中,哪几种数据相关会引起流水线停顿?
(3)画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期?
解:
(1)就程序本身而言,可能有三种数据相关。
若3条指令顺序流动,则k指令对R1寄存器的写与k+1指令对R1寄存器的读形成的“先写后读”相关。
若3条指令异步流动,则k指令对R0寄存器的读与k+1指令对R0寄存器的写形成的“先读后写”相关,k+2指令对R0寄存器的写与k+1指令对R0寄存器的写形成的“写—写”相关。
(2)在程序实际执行过程中,二种数据相关会引起流水线停顿。
一是“先写后读”相关,k指令对R1的写在程序执行开始后的第四个时钟;k+1指令对R1的读对指令本身是第三个时钟,但k+1指令比k指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟要读R1。
不能在同一时钟周期内读写同一寄存器,因此k+1指令应推迟一个时钟进入流水线,产生了流水线停顿。
二是“写—写”相关,k+1指令对R0的写对指令本身是第六个时钟,而要求该指令进入流水线应在程序执行开始后的第三个时钟,所以对R0的写是在程序执行开始后的第八个时钟。
k+2指令对R0的写对指令本身是第五个时钟,而k+2指令比k+1指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟,所以对R0的写是在程序执行开始后的第八个时钟。
不能在同一时钟周期内写写同一寄存器,因此k+2指令应推迟一个时钟进入流水线,产生了流水线停顿。
另外,可分析“先读后写”相关不会产生流水线的停顿。
(3)由题意可认位该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如下图所示。
若3条指令顺序流动,共需要9个时钟周期。
空间
存数K存数K+1存数K+2存数
运二K+1运二
运一K+1运一K+2运一
取数K取数K+1取数K+2取数
译码K译码K+1译码K+2译码
取指K取指K+1取指K+2取指时间
0123456789
2.23有一条5个功能段的线性动态多功能流水线如图所示,其中1→2→3→5功能段组成加法流水线,1→4→5功能段组成乘法流水线,设每个功能段的延迟时间均相等为△t。
用这条流水线计算F=
,画出流水线时空图,并计算流水线的实际吞吐率、加速比和效率。
解:
由于该流水线为动态双功能流水线,计算要求先加后乘,因此应先设置加法功能,连续计算出(a1+b1)、(a2+b2)、(a3+b3)、(a4+b4)四个加法后;再设置乘法功能,而且按[(a1+b1)×(a2+b2)]×[(a3+b3)×(a4+b4)]顺序做3个乘法。
因此可画出该流水线的时空图如图所示,图中A=a1+b1,B=a2+b2,C=a3+b3,D=a4+b4。
由时空图可以看出,在总共12个△t的时间内输出7个结果,所以有:
TP=n/Tn=7/12△t
而当用串行方法完成操作时,需要四次加法和三次乘法,完成一次加法需要4△t,完成一次乘法需要3△t,完成该运算总共需要时间为:
T0=4×4△t+3×3△t=25△t
所以S=T0/Tn=2.08
E=有效时空区面积/全部时空区面积
=(4×4△t+3×3△t)/(5×12△t)=0.42
2.24有一条3个功能段的流水线如下图所示,每个功能段的延迟时间均为△t,但是,功能段S2的输出要返回到它自己的输入端循环执行一次。
输入输出
△t△t△t
(1)如果每隔一个△t向流水线连续输入任务,这条流水线会发生什么问题?
(2)求这条流水线能够正常工作的实际吞吐率、加速比和效率。
(3)可用什么办法来提高流水线的吞吐率,画出改进后的流水线结构。
解:
(1)每个任务在段S2要反馈循环一次,执行时间为2Δt,其它各段的执行时间为Δt,因此应按瓶颈段的执行时间2Δt流入任务,才不会发生冲突现象,否则会发生流水线的阻塞。
(2)若连续输入n个任务,则流水线的实际吞吐率、加速比和效率分别为:
TP=n/(4Δt+2(n–1)Δt)=n/2(n+1)Δt→1/2Δt
S=4nΔt/(4Δt+2(n–1)Δt)=2n/(n+1)→2
E=4nΔt/3(4Δt+2(n–1)Δt)=2n/3(n+1)→2/3
(3)为提高流水线的吞吐率,可重复设置段S2,并使两个段S2串连在一起,从而消除瓶颈段S2,而且各段执行时间相等为Δt,流水线的段数为4。
流水线的结构如下图所示。
输入输出
△t△t△t△t
2.25在一个5段的流水线处理机上需经9△t才能完成一个任务,其预约表为:
(1)写出流水线的初始冲突向量。
(2)画出流水线任务调度的状态有向图。
(3)求出流水线的最优调度策略及最小平均延迟时间和流水线的最大吞吐率。
(4)按最优调度策略连续输入8个任务时,流水线的实际吞吐率是多少?
解:
(1)根据初始冲突向量的构成方法,对预约表各行中打“×”的拍数求出差值,除去重复的后汇集在一起,即得到延迟禁止表为F={1,5,6,8}。
由F可得到初始冲突向量为:
C=(10110001)
(2)根据后继冲突向量的递推规则Cj=SHR(k)(Ci)∨C0则可得出所有的后继状态,具体有:
C0四个后继状态:
C1=SHR
(2)(C0)∨C0=101111017
C2=SHR(3)(C0)∨C0=10110111
C3=SHR(4)(C0)∨C0=1011101132
C4=SHR(7)(C0)∨C0=10110001=C0747
C1二个后继状态:
C5=SHR
(2)(C1)∨C0=10111111
C6=SHR(7)(C1)∨C0=10110001=C07
C2二个后继状态:
C7=SHR(4)(C2)∨C0=10111011=C33472
C8=SHR(7)(C2)∨C0=10110001=C0
C3二个后继状态:
C9=SHR(3)(C3)∨C0=10110111=C2
C10=SHR(7)(C3)∨C0=10110001=C0
C5一个后继状态:
C11=SHR(7)(C5)∨C0=10110001=C0
由后继状态和引起状态转移的时间间隔可得到状态有向图如上图所示。
(3)由状态转移有向图可得到无冲突的任务调度策略及其平均延迟时间,如下表所示。
调度策略平均延迟时间特别地,从C0出发的[3,(4,3)]也是一个
(2,2,7)(2+2+7)△t/3=3.67△t任务调度策略,除第一条有向弧外,第二、三条
(2,7)(2+7)△t/2=4.5△t有向组成一个环路,该调度策略为(4,3)。
从表
(3,4,7)(3+4+7)△t/3=4.67△t中可以得到平均延迟时间最小的调度策略为(4,
(3,7)(3+7)△t/2=5△t3),该调度策略则为最优调度策略,相应的最小
(4,3,7)(4+3+7)△t/3=4.67△t平均延迟时间为3.5△t,所以流水线的最大吞吐
(4,7)(4+7)△t/2=5.5△t率为:
(7)7△tTPmax=1/(3.5△t)=0.286/△t
3,(4,3)(4+3)△t/2=3.5△t
(4)按最优调度策略[3,(4,3)]连续输入8个任务时,流水线的实际吞吐率为:
TP=8/[(3+4+3+4+3+4+3+9)△t]=0.24/△t
第三章
3.26设16个处理器编号分别为0,1,…,15,要用单级互连网络,当互连函数分别为:
(1)Cube3(Cube1)(5)Butterfly(Butterfly)(8)
(9)
(13)
时,第13号处理器分别与哪一个处理器相连?
解:
(1)因为Cube3(Cube1(X3X2X1X0))=Cube3(X3X2X1X0)=X3X2X1X0
所以13→Cube3(Cube1(1101))=0100→4
(5)因为Butterfly(Butterfly(X3X2X1X0))=Butterfly(X0X2X1X3)=X3X2X1X0
所以13→Butterfly(Butterfly(1101))=1101→13
(8)因为
(X3X2X1X0)=X0X3X2X1所以13→
(1101)=1110→14
(9)因为
(X3X2X1X0)=X3X2X0X1所以13→
(1101)=1110→14
(13)因为
(X3X2X1X0)=X1X2X3X0所以13→
(1101)=0111→7
3.30在有16个处理器的均匀洗牌网络中,若要使第0号处理器与第15号处理器相连,需要经过多少次均匀洗牌和交换置换。
解:
0(0000B)号处理器与15(1111B)号处理器相连要对四位取反。
交换置换一次只能对一位取反,所以要四次交换置换。
交换置换每次取反只对最低位,要有三次移位,所以要四次均匀洗牌置换。
即变换为0000(E)→0001(σ)→0010(E)→0011(σ)→0110(E)→0111(σ)→1110(E)→1111。
3.34在编号分别为0,1,2,……,9的16个处理器之间,要求按下列配对通信:
(B、1),(8、2),(7、D),(6、C),(E、4),(A、0),(9、3),(5、F)。
试选择所用互连网络类型、控制方式,并画出该互连网络的拓扑结构和各级的交换开关状态图。
解:
16个处理机通过N=16的互连网络互联,通信配对连接的二进制编号为:
(0、A):
0000---1010(8、2):
1000---0010
(1、B):
0001---1011(9、3):
1001---0011
(2、8):
0010---1000(A、0):
1010---0000
(3、9):
0011---1001(B、1):
1011---0001
(4、E):
0100---1110(C、6):
1100---0110
(5、F):
0101---1111(D、7):
1101---0111
(6、C):
0110---1100(E、4):
1110---0100
(7、D):
0111---1101(F、5):
1111---0101
显然要求互连网络实现的互联函数为f(X3X2X1X0)=X3X2X1X0,为多重方体置换。
N=16的STARAN网络在级控方式下实现的是方体置换,且当级控信号为F=f3f2f1f0=1010时,实现的互联函数是Cube3(Cube1(X3X2X1X0))=X3X2X1X0。
所以采用N=16的STARAN网络在级控方式且级控信号F=1010时,可实现要求配对通信。
3.41写出N=8的蝶式置换的互连函数,如采用Omega网络,则需几次通过才能完成此变换?
画出Omega网络实现此变换的控制状态图。
解:
(1)N=8的蝶式置换的互连函数为:
β(X2X1X0)=X0X1X2
(2)根据Omega网络采用单元控制终端标记法寻径方法,蝶式交换的连接关系及用N=8的Omega网络实现该连接的开关要求如下表所示。
SDd2d1d0K2级开关K1级开关K0级开关
00000与K21上输出端连接与K11上输出端连接与K01上输出端连接
14100与K22下输出端连接与K14上输出端连接与K03上输出端连接
22010与K23上输出端连接与K11下输出端连接与K02上输出端连接
36110与K24下输出端连接与K14下输出端连接与K04上输出端连接
41001与K21上输出端连接与K11上输出端连接与K01下输出端连接
55101与K22下输出端连接与K14上输出端连接与K03下输出端连接
63011与K23上输出端连接与K11下输出端连接与K02下输出端连接
77111与K24下输出端连接与K14下输出端连接与K04下输出端连接
由表可见,当实现八个结点对连接时,对K2级开关的要求将发生下列争用开关输出端的冲突:
0→0和4→1争用开关K21上输出端
1→4和5→5争用开关K22下输出端
2→2和6→3争用开关K23上输出端
3→6和7→7争用开关K24下输出端
因此,为避免K2级开关输出端的冲突,八个结点对连接分两次实现。
第一次实现:
0→0、1→4、2→2、3→6;第二次实现:
4→1、5→5、6→3、7→7。
分两次实现连接也避免K1级开关K11和K14输出端的冲突,K0级四个开关没有输出端的冲突。
(3)Omega网络分2次连接的开关状态如下图。
第一次
第二次
3.55对于4方体网络见图3-65,从结点0000到结点1111,有多少条最短路径?
为什么?
用E—立方维序寻径算法找出其中一条最短路径。
解:
(1)当源节点与目的节点的海明距离为h,则有h!
条最短路径。
结点0000到结点1111的海明距离为4,所以有1×2×3×4=24条最短路径。
(2)方向位向量R=S⊕D=0000⊕1111=1111,V=S=0000(源节点)
r1=1,V=V⊕2i-1=0000⊕0001=0001;
r2=1,V=V⊕2i-1=0001⊕0010=0011;
r3=1,V=V⊕2i-1=0011⊕0100=0111;
r4=1,V=V⊕2i-1=0111⊕1000=1111(目的结点)。
所以,0000与1111有一条最短路径为:
S=0000→0001→0011→0111→1111=D。
第四章
4.52浮点数系统使用的阶码基值re=2,阶值位数q=2,尾数基值rm=10,尾数位数p′=1,即按照使用的二进制位数来说,等价于p=4。
计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。
解:
最小尾数值:
rm-1=10-1=0.1
最大尾数值:
1-rm-p′=1-10-1=0.9
最大阶值:
2q-1=3
可表示数的最小值:
1×rm-1=10-1=0.1
可表示数的最大值:
rm2q-1×(1-rm-p′)=103(1-10-1)=900
可表示数的个数:
2q×rmp′(rm-1)/rm=22×101(10-1)/10=36
4.53一台机器要求浮点数的字长的精度不低于10-7.2,表数的范围正数不小于1038,且正负对称。
尾数用原码、纯小数表示,阶码用移码、整数表示。
设计这种浮点数的格式。
解依题意,取表数范围N=1038,表数精度δ=10-7.2。
由式(4-4)得:
=6.99,上取整,得到阶码字长q=7。
由式(4-5)得:
,上取整,得到尾数字长p=24。
从而加上一个尾数符号位和一个阶码符号位,浮点数的总字长为:
p+q+2=24+7+2=33。
实际浮点数总字长应为8的倍数,故取浮点数总字长为40位。
多出的7位可以加到尾数字长p中用于提高浮点数的表数精度,也可以加到阶码字长q中来扩大浮点数的表数范围。
暂且让p增加6位,q增加1位,即p=30,q=8。
如图4-8所示是设计出来的浮点数格式。
图4-8例4.2浮点数的设计格式
4.58用于文字处理的某专用机,每个文字符用4位十进制数字(0~9)编码表示,空格用︼表示。
在对传送的文字符和空格进行统计后,得出它们的使用频度如下:
︼:
0.200:
0.171:
0.062:
0.083:
0.114:
0.08
5:
0.056:
0.087:
0.138:
0.039:
0.01
(1)若对数字0~9和空格采用二进制编码,试设计编码平均长度最短的编码。
(2)若传送106个文字符号,且每个文字符号后均自动跟一个空格,按最短的编码,共需传送多少个二进制位?
若传送波特率为9600bPS,共需传送多少时间?
(3)若对数字0~9和空格采用4位定长码编码,重新计算问题
(2)。
解:
(1)∵操作码编码的平均长度最短为Huffman编码,生成的Huffman树,如图所示,相应的Huffman编码如表所示。
l=
×li=3.23(位)。
(2)根据题意,每个字符的二进制码的平均长度为:
3.23×(4+1)=16.15(位)。
若要传输106个字符,则要传输二进制位数为:
106×16.15=1.615×107(位)
若波特率为56Kb/s,则传输时间为:
1.615×107/(56×103)=288(s)。
(3)当采用四位定长编码时,则需要传输二进制位数为:
106×4(4+1)=2×107(位),传输时间为:
2×107/(56×103)=357(s)。
10
1010
︼
101010
370
51642
Ii
Pi
Huffman编码
Li
︼
0.20
10
2
0
0.17
000
3
7
0.13
010
3
3
0.11
110
3
2
0.08
0010
4
4
0.08
0011
4
6
0.08
0110
4
1
0.06
0111
4
5
0.05
1110
4
8
0.03
11110
5
9
0.01
11111
5
98
4.60一台模型机共有7条指令,各指令的使用频度分别为:
35%,25%,20%,10%,5%,3%,2%,有8个通用数据寄存器,2个变址寄存器。
(1)要求操作码的平均长度最短,请设计操作码的编码,并计算操作码编码的平均长度。
(2)设计8位字长的寄存器—寄存器型指令3条,16位字长的寄存器一存储器型变址寻址方式指令4条,变址范围不小于正、负127。
请设计指令格式,并给出指令各字段的长度和操作码的编码。
解:
(1)∵操作码编码的平均长度最短为Huffman编码,生成的Huffman树如图所示,相应的Huffman编码如表所示。
l=
×li=2.35(位)
Ii
Pi
Huffman编码
Li
2-4编码(3/4)
Li
I1
0.35
00
2
00
2
I2
0.25
01
2
01
2
I3
0.20
10
2
10
2
I4
0.10
110
3
1100
4
I5
0.05
1110
4
1101
4
I6
0.03
11110
5
1110
4
I7
0.02
11111
5
1111
4
(2)由于通用寄存器有8个,则指令中通用寄存器字段应为3位;操作码字段2位可有4个码点,用三个码点表示三条指令,另一个码点则作为扩展标志。
所以3条8位长的寄存器—寄存器型指令格式如下:
由于变址寄存器有2个,则指令中变址寄存器字段应为1位;变址范围-127~+127,则