C次之、B最低。CPU执行程序的轨迹图如下:
程序A服务B服务C服务0 10 20 30 40 50 60 70 80 90 t/usA请求B请求C请求
第9章
2. 控制单元的功能是什么?其输入受什么控制?
答:控制单元的主要功能是发出各种不同的控制信号。其输入受时钟信号、指令寄存器的操作码字段、标志和来自系统总线的控制信号的控制。
3. 什么是指令周期、机器周期和时钟周期?三者有何关系? 答:CPU每取出并执行一条指令所需的全部时间叫指令周期;
机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作(指令步)所需时间,通常安排机器周期长度等于主存周期;
时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应完成一个微操作所需时间,通常时钟周期等于计算机主频的倒数。
4. 能不能说机器的主频越快,机器的速度就越快,为什么? 解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与数据通路结构、时序分配方案、ALU运算能力、指令功能强弱等多种因素有关,要看综合效果。
5. 设机器A的主频为8MHz,机器周期含4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期,每个指令周期中含几个机器周期?如果机器B的主频为12MHz,且机器周期也含4个时钟周期,试问B机的平
均指令执行速度为多少MIPS?
解:先通过A机的平均指令执行速度求出其平均指令周期,再通过主频求出时钟周期,然后进一步求出机器周期。B机参数的算法与A机类似。计算如下:
A机平均指令周期=1/0.4MIPS=2.5μs A机时钟周期=1/8MHz=125ns
A机机器周期=125ns×4=500ns=0.5μs
A机每个指令周期中含机器周期个数=2.5μs÷0.5μs=5个 B机时钟周期 =1/12MHz?83ns B机机器周期 =83ns×4=332ns
设B机每个指令周期也含5个机器周期,则: B机平均指令周期=332ns×5=1.66μs
B机平均指令执行速度=1/1.66μs=0.6MIPS 结论:主频的提高有利于机器执行速度的提高。
6. 设某机主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4个机器周期,试问该机的平均指令执行速度为多少MIPS?若机器主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论?
解:先通过主频求出时钟周期,再求出机器周期和平均指令周期,最后通过平均指令周期的倒数求出平均指令执行速度。计算如下:
-6
时钟周期=1/8MHz=0.125×10s
-6-6
机器周期=0.125×10s×2=0.25×10s
-6-6
平均指令周期=0.25×10s×4=10s
-6
平均指令执行速度=1/10s=1MIPS
-6-6
当参数改变后:机器周期= 0.125×10s×4=0.5×10s
-6-6
平均指令周期=0.5×10s×4=2×10s
-6
平均指令执行速度=1/(2×10s) =0.5MIPS
结论:两个主频相同的机器,执行速度不一定一样。
7. 某CPU的主频为10MHz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为1MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为0.4μs的CPU芯片,则计算机的平均指令执行速度为多少MIPS?若要得到平均每秒80万次的指令执行速度,则应采用主频为多少的CPU芯
- 16 -
片?
解:先通过主频求出时钟周期时间,再进一步求出机器周期和平均指令周期。
-6
时钟周期=1/10MHz=0.1×10s
-6-6
机器周期=0.1×10s×4=0.4×10s
-6
平均指令周期=1/1MIPS=10s
-6-6
每个指令周期所含机器周期个数=10s /0.4×10s =2.5个 当芯片改变后:机器周期=0.4μs×4=1.6μs 平均指令周期=1.6μs×2.5=4μs 平均指令执行速度=1/4μs=0.25MIPS
若要得到平均每秒80万次的指令执行速度,则:
-6
平均指令周期=1/0.8MIPS=1.25×10=1.25μs 机器周期=1.25μs÷2.5=0.5μs 时钟周期= 0.5μs÷4=0.125μs CPU主频=1/0.125μs=8MHz
8. 某计算机的主频为6MHz,各类指令的平均执行时间和使用频度如下表所示,试计算该机的速度(单位用MIPS表示),若上述CPU芯片升级为10MHz,则该机的速度又为多少?
指令类别 平均指令执行时间 使用频度 存取 0.6μs 35% 加、减、比较、转移 乘除 其它 0.8μs 45% 10μs 1.4μs 5% 15% 作的时序是由专门的应答线路控制,即控制单元发出执行某一微操作的控制信号后,等待执行部件完成了该操作后发回“回答”或“结束”信号,再开始新的微操作。联合控制是同步控制和异步控制相结合的方式,即大多数操作(如CPU内部各操作)在同步时序信号的控制下进行,少数时间难以确定的微操作(如涉及I/O操作)采用异步控制。
11. 设CPU内部结构如图9.4所示,此外还设有B、C、D、E、H、L六个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如Bi为寄存器B的输入控制;Bo为B的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。
(1)ADD B,C ((B)+(C) ?B) (2)SUB A,H ((AC)-(H) ?AC)
解:先画出相应指令的流程图,然后将图中每一步数据通路操作分解成相应的微操作,再写出同名的微命令即可。
?(1) ADD B,C指令流程及微命令序列如下:
PC→BUS→MAR取指周期PCo,MARiMARo,MDRiMDRo,IRi+1Bo,YiCo,ALUiYo, + ,ZiZo,Bi
M(MAR)→MDRMDR→BUS→IRPC+1→PCB→BUS→YC→BUS→ALUY-BUS→ZZ→BUS→AC解: (1)指令平均运行时间 =(0.6×0.35+0.8×0.45+10×0.05+1.4×0.15)μs= 1.28μs
机器平均运行速度 = 1/1.28μs≈0.78MIPS
(2)时钟周期 = 1/6MHz≈0.167μs
指令平均运行周期数 = 1.28μs ÷0.167μs≈7.66CPI 若CPU芯片升级为10MHz,时钟周期 = 1/10MHz=0.1μs 指令平均运行时间 = 0.1μs×7.66=0.766μs 机器平均运行速度 = 1/0.766μs≈1.3MIPS
10. 试比较同步控制、异步控制和联合控制的区别。
答:同步控制是指任何一条指令或指令中任何一个微操作的执行都是事先确定的,并且都受同一基准时标的时序信号所控制的方式。异步控制无基准时标信号,微操
- 17 -
执行周期 (2) SUB A,H指令流程及微命令序列如下:
PC→BUS→MAR取指周期PCo,MARiMARo,MDRiMDRo,IRi+1ACo,YiHo,ALUiACo, - ,ZiZo,ACi执行周期间址周期取指周期PC→BUS→MARM(MAR)→MDRMDR→BUS→IRPC+1→PCAd(IR)→BUS→MARM(MAR)→MDRMDR→Ad(IR)PCo,MARiMARo,1→R,MDRiMDRo,IRi+1IRo,MARiMARo,1→R,MDRiMDRo,IRiIRo,MARiMARo,1→R,MDRiMDRo,YiR1o,ALUiYo, - ,ZiZo,R1iM(MAR)→MDRMDR→BUS→IRPC+1→PCAC→BUS→YH→BUS→ALUAC-BUS→ZZ→BUS→AC执行周期Ad(IR)→MARM(MAR)→MDRMDR→BUS→YR1→BUS→ALUBUS-Y→ZZ→BUS→R1
13. 设CPU内部结构如图9.4所示,此外还设有R1~R4四个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如R2i为寄存器R2的输入控制;R2o为R2的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。
(1)ADD R2,@R4 ; ((R2)+((R4)) ?R2,寄存器间接寻址) (2)SUB R1,@mem ; ((R1)-((mem)) ?R1,存储器间接寻址) 解:(1)ADD R2,@R4的指令周期信息流程图及微操作控制信号如下:
PC→BUS→MAR取指周期PCo,MARiMARo,1→R,MDRiMDRo,IRi+1R4o,IRiIRo,MARiMARo,1→R,MDRiMDRo,YiR2o,ALUiYo, + ,ZiZo,R2iM(MAR)→MDRMDR→BUS→IRPC+1→PC间址周期R4→BUS→Ad(IR)Ad(IR)→MARM(MAR)→MDR执行周期
14. 设单总线计算机结构如图9.5所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为锁存器。假设指令地址已存于PC中,画出“LDA *D”和“SUB X,D”指令周期信息流程图,并列出相应的控制信号序列。
说明: (1)“LDA *D”指令字中*表示相对寻址,D为相对位移量。 (2)“SUB X,D”指令字中X为变址寄存器XR,D为形式地址。
(3)寄存器的输入和输出均受控制信号控制,例如,PCi表示PC的输入控制信号,MDRo表示MDR的输出控制信号。
(4)凡是需要经过总线实现寄存器之间的传送,需要在流程图中注明,如PC?Bus?MAR,相应控制信号为PCo和MARi。 解:(1)“LDA *D”指令周期信息流程图及微操作控制信号如下:
MDR→BUS→YR2→BUS→ALUBUS+Y→ZZ→BUS→R2
(2)SUB R1,@mem指令周期信息流程图及微操作控制信号如下:
- 18 -
PC→BUS→MAR取指周期PCo,MARiMARo,1→R,MDRiMDRo,IRi+1PCo,Ad(IR)o,EARiEARo,MARiMARo,1→R,MDRiMDRo,ACCiM(MAR)→MDRMDR→BUS→IRPC+1→PCPC+Ad(IR)→EAR执行周期EAR→BUS→MARM(MAR)→MDRMDR→BUS→ACC
(2)“SUB X,D” 指令周期信息流程图及微操作控制信号如下:
PC→BUS→MAR取指周期PCo,MARiMARo,1→R,MDRiMDRo,IRi+1PCo,Ad(IR)o,EARiM(MAR)→MDRMDR→BUS→IRPC+1→PCPC+Ad(IR)→EAREAR→BUS→MAR务程序的入口地址,试写出中断隐指令的微操作及节拍安排。
解:设软件查询程序首址为0号内存单元,则中断隐指令的微操作命令及节拍安排
如下: T0 0 SP T1 ,SP? MAR
T2 SP?W,SP+1 M(MAR) T3 PSW?MAR,MDR?SP T4 1? W,SP+1?MDR, ?M(MAR) PC?EINT 由于题意中没有给出确切的数据通路结构,故上述节拍分配方案的并行性较低。?PC,MDR?0 ?MDR,1?MAR
2. 写出完成下列指令的微操作及节拍安排(包括取指操作)。 (1)指令ADD R1,X完成将R1寄存器的内容和主存X单元的内容相加,结果存于R1的操作。 (2)指令ISZ X完成将主存X单元的内容增1,并根据其结果若为0,则跳过下一条指令执行。 解:设采用单总线结构的CPU数据通路如下图所示,且ALU输入端设两个暂存器C、D(见17题图)。并设采用同步控制,每周期3节拍:
busPCMARSPMDRCUIRAC地址线数据线控制线EARo,MARiMARo,1→R,MDRiMDRo,ACCiACCo,Xo,Ki=-,LATCHiLATCHo,ACCi
执行周期M(MAR)→MDRMDR→BUS→XACC-X→LATCHLATCH→BUS→ACC
第十章
1. 假设响应中断时,要求将程序断点存在堆栈内,并且采用软件办法寻找中断服
(1)指令ADD R1,X的微操作及节拍安排如下: 取指周期:T0 PC?MAR,1? R
T1 M(MAR) ?MDR,PC+1?PC T2 MDR?IR,OP(IR) ?ID
执行周期1:T0 Ad(IR)?MAR,1?R T1 M(MAR) ?MDR
T2 MDR?D
执行周期2:T0 R1?C
T1 +
T2 ALU?R1
- 19 -
(2)指令ISZ X的微操作及节拍安排: 取指周期同(1):略
执行周期1: T0 Ad(IR)?MAR,1?R T1 M(MAR)?MDR
T2 MDR?C,+1?ALU
执行周期2:T0 ALU?MDR,1?W
T1 (PC+1)·Z+ PC·Z?PC
12. 能否说水平型微指令就是直接编码的微指令,为什么?
解:不能说水平型微指令就是直接编码的微指令,因为符合水平型微指令特征的微指令都属于水平型微指令,常见的有:直接编码、字段直接编码、字段间接编码,及混合编码等。直接编码的微指令只是最典型的一种。
15. 设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下: 解:因为控制存储器共有512*48=29*48
所以,下址字段应有9位,微指令字长48位 又因为控制微程序转移的条件有4个,4+1<=23 所以判断测试字段占3位
因此控制字段位数为:48-9-3=36 微指令格式为: 48 13 12 10 9 1 控制字段 测试字段 下址字段
21. 下表给出8条微指令I1~I8及所包含的微命令控制信号,设计微指令操作控制字段格式,要求所使用的控制位最少,而且保持微指令本身内在的并行性。
解:为使设计出的微指令操作控制字段最短,并且保持微指令本身内在的并行性,应采用混合编码法。首先找出互斥的微命令组,为便于分析,将微命令表重画如下:
由表中微命令的分布情况可看出:a、b、c、d、e微命令的并行性太高,因此不能放在同一字段中。另外,由分析可知,在2、3、4分组的互斥组中,3个一组的微命令互斥组对控制位的压缩作用最明显。因此,应尽可能多的找出3个一组的互斥组。现找出的互斥组有:cfj,dij,efh,fhi,bgj,ehj,efj??等等。
从中找出互不相重的互斥组有两个:dij,efh。则:微指令操作控制字段格式
安排如下:
1 1 1 1 2 2 a b c efh dij 各字段编码分配如下: a:0 无操作,1 a微命令;
b:0 无操作,1 b微命令; c: 0 无操作, 1 c微命令; g :0 无操作, 1 g微命令;
dij :00 无操作;01 d微命令;10 i微命令;11 j
微命令;
efh:00 无操作;01 e微命令;10 f微命令;11 h
微命令
与采用直接控制法比较:直接控制法:10个微命令需10位操作控制位;本方案中10个微命令需8位操作控制位,压缩了2位。
- 20 -