计算机组成原理(第三版)唐朔飞-第九章控制单元的功能-课后习题

目录

第九章

9.1设CPU内有这些部件:PC、IR、MAR、MDR、AC、CU。

(1)写出取指周期的全部微操作。
(2)写出减法指令“SUB X”、取数指令“LDA X”、存数指令“STA X”(X均为主存地址)在执行阶段所需全部微操作。
(3)当上述指令为间接寻址时,写出执行这些指令所需的全部微操作。
(4)写出无件转移指令“JMP Y”和结果溢出则转指令“BAO Y”执行阶段所需的全部微操作。
答:
(1)不论什么指令,取指周期都需有下列微操作:
P C → M A R 现行指令地址 → M A R I → R 命令存储器读 M ( M A R ) → M D R 现行指令从存储器中读至 M D R M D R − I R 现行指令 → I R O P ( I R ) → C U 指令的操作码 → C U ( P C ) + 1 → P C 形成下一条指令的地址 \begin{array}{} &PC→MAR &现行指令地址→MAR \\ &I→R &命令存储器读 \\ &M(MAR)→MDR& 现行指令从存储器中读至MDR \\ &MDR-IR &现行指令→IR \\ &OP(IR)→CU& 指令的操作码→CU \\ &(PC)+1→PC &形成下一条指令的地址 \end{array} PCMARIRM(MAR)MDRMDRIROP(IR)CU(PC)+1PC现行指令地址MAR命令存储器读现行指令从存储器中读至MDR现行指令IR指令的操作码CU形成下一条指令的地址
(2)①减法指令SUB X执行阶段所需的全部微操作:
A d ( I R ) → M A R 指令的地址码字段 → M A R I → R 命令存储器读 M ( M A R ) → M D R 操作数从存储器中读至 M D R ( A C C ) − ( M D R ) → A C C 两数相减结果送 A C C \begin{array}{} Ad(IR)→MAR &指令的地址码字段→MAR \\ I→R &命令存储器读 \\ M(MAR)→MDR &操作数从存储器中读至MDR \\ (ACC)-(MDR)→ACC &两数相减结果送ACC \end{array} Ad(IR)MARIRM(MAR)MDR(ACC)(MDR)ACC指令的地址码字段MAR命令存储器读操作数从存储器中读至MDR两数相减结果送ACC
②取数指令LAD X执行阶段所需的全部微操作
A d ( I R ) → M A R 指令的地址码字段 → M A R I → R 命令存储器读 M ( M A R ) → M D R 操作数从存储器中读至 M D R M D R → A C C 操作数 \begin{array}{} Ad(IR)→MAR &指令的地址码字段→MAR \\ I→R &命令存储器读 \\ M(MAR)→MDR &操作数从存储器中读至MDR \\ MDR→ACC &操作数 \end{array} Ad(IR)MARIRM(MAR)MDRMDRACC指令的地址码字段MAR命令存储器读操作数从存储器中读至MDR操作数
③存数指令 STA X执行阶段所需的全部微操作
A d ( I R ) → M A R 指令的地址码字段 → M A R I → W 命令存储器写 A C C − M D R 欲写入的数据 → M D R M D R → M ( M A R ) 数据写至存储其中 \begin{array}{} Ad(IR)→MAR &指令的地址码字段→MAR \\ I→W &命令存储器写 \\ ACC-MDR &欲写入的数据→MDR \\ MDR→M(MAR) &数据写至存储其中 \end{array} Ad(IR)MARIWACCMDRMDRM(MAR)指令的地址码字段MAR命令存储器写欲写入的数据MDR数据写至存储其中
(3)当上述指令为间接寻址时,需增加间址周期的微操作。这三条指令在间址周期的微操作相同,即
A d ( I R ) → M A R 指令的地址码字段 → M A R I → R 命令存储器读 M ( M A R ) → M D R 数据写至存储器中 \begin{array}{} Ad(IR)→MAR &指令的地址码字段→MAR \\ I→R &命令存储器读 \\ M(MAR)→MDR &数据写至存储器中 \end{array} Ad(IR)MARIRM(MAR)MDR指令的地址码字段MAR命令存储器读数据写至存储器中
进入执行周期,三条指令的第一个微操作均为 M D R → M A R ( 有效地址送 M A R ) MDR→MAR(有效地址送MAR) MDRMAR(有效地址送MAR),其余微操作不变。
(4)①无条件转移指令JMP Y执行阶段的微操作
A d ( I R ) → P C 转移 ( 目标 ) 地址 Y → P C \begin{array}{} Ad(IR)→PC &转移(目标)地址Y→PC \end{array} Ad(IR)PC转移(目标)地址YPC
②结果溢出则转指令BAOY执行阶段的微操作
Z ⋅ A d ( I R ) → P C 当 Z = 1 时,转移 ( 目标 ) 地址 Y → P C ( Z 为标记触发器,结果为 0 时 Z = 1 ) \begin{array}{} Z·Ad(IR)→PC &当Z=1时,转移(目标)地址Y→PC(Z为标记触发器,结果为0时Z=1) \end{array} ZAd(IR)PCZ=1时,转移(目标)地址YPC(Z为标记触发器,结果为0Z=1)

9.2控制单元的功能是什么?其输入受什么控制?

答:
控制单元的主要功能是发出各种不同的控制信号
其输入受时钟信号、指令寄存器的操作码字段、标志和来自系统总线的控制信号的控制。

9.3什么是指令周期、机器周期和时钟周期?三者有何关系?

答:
指令周期是CPU取出并执行一条指令所需的全部时间,即完成一条指令的时间。
机器周期是所有指令执行过程中的一个基准时间,通常以存取周期作为机器周期。
时钟周期是机器主频的倒数也可称为节拍,它是控制计算机操作的最小单位时间。
一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期内的时钟周期数也可以不等。

9.4 能不能说CPU的主频越快,计算机的运行速度就越快?为什么?

答:
不能说机器的主频越快,机器的速度就越快。
因为机器的速度不仅与主频有关,还与机器周期中所含的时钟周期以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含的时钟周期数不同,机器的速度也不同。机器周期中所含时钟周期数少的机器,速度更快。
此外,机器的速度还与其他很多因素有关,如主存的速度、机器是否配有 Cache、总线的数据传输率、硬盘的速度以及机器是否采用流水技术等等。机器速度还可以用 MIPS(每秒执行百万条指令数)和 CPI(执行一条指令所需的时钟周期数)来衡量。

9.5设机器A的CPU主频为8MHz,机器周期4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期,每个指令周期中含几个机器周期。如果机器B的CPU主频为12MHz,且机器周期也含4个时钟周期,试问B机的平均指令执行速度为多少 MIPS?

答:
由主频为 8 M H z 8MHz 8MHz,得时钟周期为 1 ÷ 8 = 0.125 μ s 1\div 8=0.125\mu s 1÷8=0.125μs
机器周期为 0.125 × 4 = 0.5 μ s 0.125\times 4=0.5\mu s 0.125×4=0.5μs
根据平均指令执行速度为 0.4 M I P S 0.4MIPS 0.4MIPS,得平均指令周期为 1 ÷ 0.4 = 2.5 μ s 1\div 0.4=2.5\mu s 1÷0.4=2.5μs
每个指令含 2.5 ÷ 0.5 = 5 2.5\div 0.5=5 2.5÷0.5=5 个机器周期。
若主频为 12 M H z 12MHz 12MHz,得时钟周期为 1 / 12 μ s 1/12μs 1/12μs,机器周期为 4 × ( 1 / 12 μ s ) = 1 / 3 μ , 4\times (1/12\mu s)=1/3\mu , 4×(1/12μs)=1/3μ指令执行周期为 5 × 1 / 3 μ s 5\times 1/3\mu s 5×1/3μs
B机的平均指令执行速度为 3 / 5 = 0.6 M I P S 3/5=0.6MIPS 3/5=0.6MIPS

9.6设某计算机的CPU主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有4个机器周期,试问该计算机的平均指令执行速度为多少MIPS。若CPU主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论?

答:
根据主频为 8 M H z 8MHz 8MHz
得时钟周期为 1 / 8 = 0.125 μ s 1/8=0.125\mu \mathrm{s} 1/8=0.125μs
机器周期为 0.125 × 2 = 0.25 μ s 0.125\times 2=0.25\mu \mathrm{s} 0.125×2=0.25μs
指令周期为 0.25 × 4 = 1 μ s 0.25\times 4=1\mu \mathrm{s} 0.25×4=1μs
平均指令执行速度为 1 M I P S 1MIPS 1MIPS
若机器的主频不变,每个机器周期平均含4个时钟周期,每条指令平均有4个机器周期,
则指令周期为 0.125 × 4 μ s × 4 = 2 μ s 0.125\times 4\mu s\times 4=2\mu \mathrm{s} 0.125×4μs×4=2μs
故平均指令执行速度为 1 / 2 = 0.5   M I P S 1/2=0.5\space \mathrm{M}\mathrm{I}\mathrm{P}\mathrm{S} 1/2=0.5 MIPS

结论:因为机器的速度不仅与主频有关,还与机器周期中所含的时钟周期以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含的时钟周期数不同,机器的速度也不同。机器周期中所含时钟周期数少的机器,速度更快。

9.7某CPU的主频为10MHz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为1MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期。若改用时钟周期为 0.4 μ s 0.4 \mu s 0.4μs的CPU芯片,则计算机的平均指令执行速度为多少 MIPS?若要得到平均每秒 80万次的指令执行速度,则应采用主频为多少的 CPU芯片?

答:
根据主频为 10 M H z 10MHz 10MHz
则时钟周期为 1 / 10 = 0.1 μ s 1/10=0.1\mu s 1/10=0.1μs
机器周期为 4 × 0.1 μ s = 0.4 μ s 4\times 0.1\mu s=0.4\mu s 4×0.1μs=0.4μs
平均指令执行速度为 1 M I P S 1MIPS 1MIPS
则平均指令周期为 1 μ s 1\mu s 1μs
每个指令周期含 1 / 0.4 = 2.5 1/0.4=2.5 1/0.4=2.5 个机器周期。

若时钟周期为 0.4 μ s 0.4μs 0.4μs
则机器周期为 4 × 0.4 μ s = 1.6 μ s 4\times 0.4\mu s=1.6\mu s 4×0.4μs=1.6μs
每个指令周期含 2.5 2.5 2.5 个机器周期,
则平均指令周期为 4 μ s 4μs 4μs
则平均执行速度为 1 / 4 = 0.25  MIPS 1/4=0.25\ \text{MIPS} 1/4=0.25 MIPS.

若平均指令执行速度为 0.8 M I P S 0.8 MIPS 0.8MIPS
平均指令周期为 1 / 0.8 = 1.25 μ s 1/0.8=1.25\mu s 1/0.8=1.25μs
每个指令周期包含 2.5 2.5 2.5 个机器周期,
每个机器周期包含 4 4 4个时钟周期,
则时钟周期为 1.25 μ s ÷ 2.5 ÷ 4 = 0.125 μ s 1.25\mu s\div 2.5\div 4=0.125\mu s 1.25μs÷2.5÷4=0.125μs
则CPU 芯片的主频为 1 / 0.125 μ s = 8 MHz 1/0.125\mu s=8\text{MHz} 1/0.125μs=8MHz.

9.8某计算机的主频为6MHz,各类指令的平均执行时间和使用频度如下表所示,试计算该机的速度(单位用MIPS表示)。若上述CPU芯片升级为10MHz,则该机的运行速度又为多少?

指令类别 存取 加、减、比较、转移 乘除 其他
平均指令执行时间 0.6 μs 0.8 μs 10 μs 1.4 μs
使用频度 35% 45% 5% 15%

答:
根据表平均指令执行时间及使用频度,得
(1)该机的速度为
1 / ( 0.6 × 35 % + 0.8 × 45 % + 10 × 5 % + 1.4 × 15 % ) = 1 / 1.28 = 0.78125 M I P S 1/(0.6\times 35%+0.8\times 45%+10\times 5%+1.4\times 15%)=1/1.28=0.78125MIPS 1(0.6×35+0.8×45+10×5+1.4×15)=11.28=0.78125MIPS
(2)芯片主频改为10MHz,该机的速度为
( 0.78125 M I P S × 10 M H z ) / 6 M H z = 1.302083333 M I P S (0.78125MIPS\times 10MHz)/6MHz=1.302083333MIPS (0.78125MIPS×10MHz)6MHz=1.302083333MIPS

9.9 试比较同步控制、异步控制和联合控制的区别。

答:
同步控制方式是指,任何一条指令或指令中任何一个微操作的执行都是事先确定的,并且都是受统一基准时标的时序信号所控制的方式,每一个操作出现的时间与基准时标保持一致。

异步控制方式不存在基准时标信号,没有固定的周期节拍和严格的时钟同步,执行每条指令和每个操作需要多少时间就占用多少时间。这种方式微操作的时序由专门的应答线路控制,即当 控制单元CU 发出执行某一微操作的控制信号后,等待执行部件完成了该操作后发回“回答”(或“结束”)信号,再开始新的微操作,使 CPU 没有空闲状态,但因需要采用各种应答电路,故其结构比同步控制方式复杂。

同步控制和异步控制相结合就是联合控制方式。这种方式对各种不同指令的微操作实行大部分统一、小部分区别对待的办法。例如,对每条指令都有的取指令操作、CPU内部各操作,采用同步方式控制;对那些时间难以确定的微操作,如I/O操作,则采用异步控制,以执行部件送回的“回答”信号作为本次微操作的结束。

9.10什么是典型的同步控制?为了提高CPU的效率,在同步控制方式中又有哪些方式?以8085的输出指令为例,说明它属于哪种控制方式?

答:
典型的同步控制:
同步控制方式是指,任何一条指令或指令中的任何一个微操作的执行都是事先确定的,并且都收统一基准时标的时序信号所控制的方式。典型的同步控制方式,每个机器周期都包含4个节拍。如果机器内的存取周期不统一,那么只有把最长的存取周期作为机器周期。

为了提高 CPU 的效率,在同步控制中又有三种方案:
(1)采用定长的机器周期。不论指令所对应的微操作序列有多长,也不管微操作的简繁,一律以最长的微操作序列和最繁的微操作为标准,采用完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行各种不同的指令。
(2)采用不定长的机器周期。每个机器周期内的节拍数可以不等。通常把大多数微操作安排在一个较短的机器周期内完成,而对于某些复杂的微操作,采用延长机器周期或增加节拍的办法来解决。
(3)采用中央控制和局部控制相结合的方法。将机器的大部分指令安排在统一的较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些操作(如乘除法和浮点运算)采用局部控制方式来完成。
举例:Intel8085 输出指令中每个周期内包含的节拍不同,属于不定长的机器周期的同步控制方式。

9.11 设CPU内部结构如图9.4所示,此外还设有B、C、D、E、H、L 6个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如 B i B_i Bi为寄存器B的输入控制; B o B_o Bo为寄存器B的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。

( 1 ) A D D    B , C       ( ( B ) + ( C ) → B ) ( 2 ) S U B    A , H       ( ( A C ) − ( H ) → A C ) (1)ADD\ \ B,C \ \ \ \ \ ((B) + (C)→B) \\ (2)SUB\ \ A,H \ \ \ \ \ ((AC)-(H)→AC) (1)ADD  B,C     ((B)+(C)B)(2)SUB  A,H     ((AC)(H)AC)
在这里插入图片描述
答:
先画出相应指令的流程图,然后将图中每一步数据通路操作分解成相应的微操作,再写出同名的微命令即可.
(1) ADD B,C指令流程及微命令序列如下:
在这里插入图片描述
(2) SUB A,H指令流程及微命令序列如下:
在这里插入图片描述

9.12 CPU结构同上题,写出完成下列指令所需的全部微操作和控制信号(包括取指令)。

(1)寄存器间接寻址的无条件转移指令“JMP @B”。
(2)间接寻址的存数指令“STA @ X”。
答:
(1) 微操作                        控制信号 微操作 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 控制信号 微操作                        控制信号
P C → B u s → M A R           P C o , M A R i M ( M A R ) → M D R           M A R o , R / W = R , M D R i ( 1 → R ) 读 M D R → B u s → I R           M D R o , I R i ( P C ) + 1 → P C                 + 1 A d ( I R ) → P C                   转移 ( 目标 ) 地址 B → P C                                B o P C i PC→Bus→MAR\ \ \ \ \ \ \ \ \ PC_o,MAR_i\\ M(MAR)→MDR\ \ \ \ \ \ \ \ \ MAR_o,R/W =R, MDR_i(1→R)读\\ MDR→Bus→IR\ \ \ \ \ \ \ \ \ MDR_o,IR_i\\ (PC)+1→PC\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +1\\ Ad(IR)→PC \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 转移(目标)地址\\ B→PC\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ B_oPC_i PCBusMAR         PCoMARiM(MAR)MDR         MARoR/W=RMDRi(1R)MDRBusIR         MDRoIRi(PC)+1PC               +1Ad(IR)PC                  转移(目标)地址BPC                              BoPCi

(2) 微操作                        控制信号 微操作 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 控制信号 微操作                        控制信号
P C → B u s → M A R           P C o , M A R i M ( M A R ) → M D R           M A R o , R / W = R , M D R i ( 1 → R ) 读 M D R → B u s → I R        M D R o , I R i ( P C ) + 1 → P C                 + 1 X ( M D R ) M A R                 M D R o , M A R i M ( M A R ) → M D R           M A R o , R / W = R , M D R i ( 1 → R ) 读 M D R → M A R                 M D R o , M A R i A C → B u s → M D R        A C o , M D R i M D R → M ( M A R )        M D R o , R / W = W , M A R o ( 1 → W ) 写 PC→Bus→MAR\ \ \ \ \ \ \ \ \ PC_o,MAR_i\\ M(MAR)→MDR\ \ \ \ \ \ \ \ \ MAR_o,R/W=R, MDR_i(1→R)读\\ MDR→Bus→IR\ \ \ \ \ \ MDR_o,IR_i\\ (PC)+1→PC\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +1 \\ X(MDR)MAR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MDR_o,MAR_i\\ M(MAR)→MDR\ \ \ \ \ \ \ \ \ MAR_o,R/W =R, MDR_i(1→R)读\\ MDR→MAR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MDR_o,MAR_i\\ AC→Bus→MDR \ \ \ \ \ \ AC_o,MDR_i\\ MDR→M(MAR)\ \ \ \ \ \ MDR_o,R/W =W, MAR_o(1→W)写 PCBusMAR         PCoMARiM(MAR)MDR         MARoR/W=RMDRi(1R)MDRBusIR      MDRoIRi(PC)+1PC               +1X(MDR)MAR               MDRoMARiM(MAR)MDR         MARoR/W=RMDRi(1R)MDRMAR               MDRoMARiACBusMDR      ACoMDRiMDRM(MAR)      MDRoR/W=WMARo(1W)

9.13 设CPU内部结构如图9.4所示,此外还设有 R 1 R_1 R1~ R 4 R_4 R4 4个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如 R 2 i R_{2i} R2i为寄存器 R 2 R_2 R2的输入控制; R 2 o R_{2o} R2o为寄存器 R 2 R_2 R2的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。

( 1 ) A D D    R 2 , @ R 4 ; ( ( R 2 ) + ( ( R 4 ) ) → R 2 , 寄存器间接寻址 ) ( 2 ) S U B    R 1 , @ m e m ; ( ( R 1 ) − ( ( m e m ) ) → R 1 , 存储器间接寻址 ) (1)ADD\ \ R_2, @R_4 ;((R_2)+((R_4))→R_2,寄存器间接寻址) \\ (2)SUB\ \ R_1,@mem;((R_1)-((mem))→R_1,存储器间接寻址) (1)ADD  R2,@R4;((R2)+((R4))R2,寄存器间接寻址)(2)SUB  R1@mem;((R1)((mem))R1,存储器间接寻址)
答:
(1)ADD R2,@R4的指令周期信息流程图及微操作控制信号如下:
在这里插入图片描述
(2)SUB R1,@mem 指令周期信息流程图及微操作控制信号如下:
在这里插入图片描述

9.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)寄存器的输入和输出均受控制信号控制,例如, P C i PC_i PCi表示PC的输入控制信号, M D R o MDR_o MDRo表示MDR的输出
控制信号。
(4)凡是需要经过总线实现寄存器之间的传送,需在流程图中注明,如PC→Bus→MAR,相应的控制信号为 P C o 和 M A R i PC_o和MAR_i PCoMARi
在这里插入图片描述
答:
(1)“LDA *D”指令周期信息流程图及微操作控制信号如下:
在这里插入图片描述
(2)“SUB X,D” 指令周期信息流程图及微操作控制信号如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45735391/article/details/127311261