2024年3月17日发(作者:)

计算机组成原理课后答案第七章

1 .控制器有哪几种控制方式? 各有何特点?

解:控制器的控制方式可以分为3 种:同步控制方式、异步控制方式和联合控制方式。

同步控制方式的各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节

拍电位和工作脉冲。这种控制方式设计简单,容易实现;但是对于许多简单指令来说会有

较多的空闲时间,造成较大数量的时间浪费,从而影响了指令的执行速度。异步控制方式

的各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时

间,就占用多少时间。异步控制方式没有时间上的浪费,因而提高了机器的效率,但是控

制比较复杂。

联合控制方式是同步控制和异步控制相结合的方式。

2 .什么是三级时序系统?

解:三级时序系统是指机器周期、节拍和工作脉冲。计算机中每个指令周期划分为若

干个机器周期,每个机器周期划分为若干个节拍,每个节拍中设置一个或几个工作脉冲。

3 .控制器有哪些基本功能? 它可分为哪几类? 分类的依据是什么?

解:控制器的基本功能有:

(1) 从主存中取出一条指令,并指出下一条指令在主存中的位置。

(2) 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。

(3) 指挥并控制CPU 、主存和输入输出设备之间的数据流动。

第 1 页 共 19 页

计算机组成原理课后答案第七章

控制器可分为组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型3 类,分类的依

据在于控制器的核心——— 微操作信号发生器(控制单元CU)的实现方法不同。

4 .中央处理器有哪些功能? 它由哪些基本部件所组成?

解:从程序运行的角度来看,CPU 的基本功能就是对指令流和数据流在时间与空间上

实施正确的控制。对于冯? 诺依曼结构的计算机而言,数据流是根据指令流的操作而形成

的,也就是说数据流是由指令流来驱动的。

5 .中央处理器中有哪几个主要寄存器? 试说明它们的结构和功能。

解:CPU 中的寄存器是用来暂时保存运算和控制过程中的中间结果、最终结果及控制、

状态信息的,它可分为通用寄存器和专用寄存器两大类。通用寄存器可用来存放原始数据

和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。专用寄存器是专门用来

完成某一种特殊功能的寄存器,如程序计数器PC 、指令寄存器IR 、存储器地址寄存器

MAR 、存储器数据寄存器MDR 、状态标志寄存器PSWR 等。

6 .某机CPU 芯片的主振频率为8MHz ,其时钟周期是多少μs ? 若已知每个机

器周

期平均包含4 个时钟周期,该机的平均指令执行速度为0 .8MIPS ,试问:

(1) 平均指令周期是多少μs ?

(2) 平均每个指令周期含有多少个机器周期?

第 2 页 共 19 页

计算机组成原理课后答案第七章

(3) 若改用时钟周期为0 .4μs 的CPU 芯片,则计算机的平均指令执行速度又

是多少MIPS ?

(4) 若要得到40 万次/s 的指令执行速度,则应采用主振频率为多少MHz 的

CPU芯片?

解:时钟周期= 1 ÷ 8MHz = 0 .125μs

(1) 平均指令周期= 1 ÷ 0 .8MIPS = 1 .25μs

(2) 机器周期= 0 .125μs × 4 = 0 .5μs

平均每个指令周期的机器周期数= 1 .25μs ÷ 0 .5μs ÷ 4 = 2 .5

(3) 平均指令执行速度= 1

0 .4 × 4 × 2 .5 = 0 .25MIPS

(4) 主振频率= 4MHz

7 .以一条典型的单地址指令为例,简要说明下列部件在计算机的取指周期和执行周

期中的作用。

(1) 程序计数器PC ;

第 3 页 共 19 页

计算机组成原理课后答案第七章

(2) 指令寄存器IR ;

(3) 算术逻辑运算部件ALU ;

(4) 存储器数据寄存器MDR ;

(5) 存储器地址寄存器MAR 。

解:(1) 程序计数器PC :存放指令地址;

(2) 指令寄存器IR :存放当前指令;

(3) 算术逻辑运算部件ALU :进行算逻运算;

(4) 存储器数据寄存器MDR :存放写入或读出的数据/指令;

(5) 存储器地址寄存器MAR :存放写入或读出的数据/指令的地址。

以单地址指令“加1(INC A)”为例,该指令分为3 个周期:取指周期、分析取数

周期、

执行周期。3 个周期完成的操作如表6唱2 所示。

PC (PC) → MAR — —

IR 指令→ MDR → IR — —

第 4 页 共 19 页

计算机组成原理课后答案第七章

ALU (PC) + 1 — (A) + 1 MAR 指令地址→ MAR A → MAR —

MDR 指令→ MDR (A) → MDR (A) + 1 → MDR

8 .什么是指令周期? 什么是CPU 周期? 它们之间有什么关系?

解:指令周期是指取指令、分析取数到执行指令所需的全部时间。CPU 周期(机器周

期)是完成一个基本操作的时间。一个指令周期划分为若干个CPU 周期。

9 .指令和数据都存放在主存,如何识别从主存储器中取出的是指令还是数据?

解:指令和数据都存放在主存,它们都以二进制代码形式出现,区分的方法为:

(1) 取指令或数据时所处的机器周期不同:取指周期取出的是指令;分析取数或执

行周期取出的是数据。

(2) 取指令或数据时地址的来源不同:指令地址来源于程序计数器;数据地址来源

于地址形成部件。

10 .CPU 中指令寄存器是否可以不要? 指令译码器是否能直接对存储器数据寄存

器MDR 中的信息译码? 为什么? 请以无条件转移指令JMP A 为例说明。

解:指令寄存器不可以不要。指令译码器不能直接对MDR 中的信息译码,因为在

取指周期MDR 的内容是指令,而在取数周期MDR 的内容是操作数。以JMP A 指

令为

第 5 页 共 19 页

计算机组成原理课后答案第七章

例,假设指令占两个字,第一个字为操作码,第二个字为转移地址,它们从主存中取

出时都

需要经过MDR ,其中只有第一个字需要送至指令寄存器,并且进行指令的译码,而

第二

个字不需要送指令寄存器。

11 .设一地址指令格式如下:

@ OP A

现在有4 条一地址指令:LOAD(取数) 、ISZ(加“1”为零跳) 、DSZ(减“1”

为零跳) 、STORE(存数) ,在一台单总线单累加器结构的机器上运行,试排出这4 条

指令的微操作序列。要求:当排ISZ 和DSZ 指令时不要破坏累加寄存器Acc 原来的内容。

解:(1) LOAD(取数)指令

PC → MAR ,READ ;取指令

MM → MDR

MDR → IR ,PC + 1 → PC

A → MAR ,READ ;取数据送Acc

第 6 页 共 19 页

计算机组成原理课后答案第七章

MM → MDR

MDR → Acc

(2) ISZ(加“1”为零跳)指令

取指令微操作略。

A → MAR ,READ ;取数据送Acc

MM → MDR

MDR → Acc

Acc+ 1 → Acc ;加1

If Z = 1 then PC + 1 → PC ;结果为0

Acc → MDR ,WRITE ;保存结果

MDR → MM

Acc - 1 → Acc ;恢复Acc

(3) DSZ(减“1”为零跳)指令

第 7 页 共 19 页

PC + , 1

计算机组成原理课后答案第七章

取指令微操作略。

A → MAR ,READ ;取数据送Acc

MM → MDR

MDR → Acc

Acc - 1 → Acc ;减1

If Z = 1 then PC + 1 → PC ;结果为0

Acc → MDR ,WRITE ;保存结果

MDR → MM

Acc+ 1 → Acc ;恢复Acc

(4) STORE(存数)指令:

取指令微操作略。

A → MAR ;Acc 中的数据写

入主存单元

第 8 页 共 19 页

PC + , 1

计算机组成原理课后答案第七章

Acc → MDR ,WRITE

MDR → MM

12 .某计算机的CPU 内部结构如图6唱22 所示。两

组总线之间的所有数据传送通过ALU 。ALU 还具有

完成以下功能的能力:F = A ; F = BF = A + 1 ; F = B + 1F =

A - 1 ; F = B - 1

写出转子指令(JSR)的取指和执行周期的微操作序列。JSR 指令占两个字,第一个

字是操作码,第二个字是子程序的入口地址。返回地址保存在存储器堆栈中,堆栈指示器

始终指向栈顶。

解: ① PC → B ,F = B ,F → MAR ,Read ;取指令的第一个字

② PC → B ,F = B + 1 ,F → PC

③ MDR → B ,F = B ,F → IR

④ PC → B ,F = B ,F → MAR ,Read ;取指令的第二个字

⑤ PC → B ,F = B + 1 ,F → PC

⑥ MDR → B ,F = B ,F → Y

第 9 页 共 19 页

计算机组成原理课后答案第七章

⑦ SP → B ,F = B - 1 ,F → SP ,F → MAR ;修改栈指针,返回地址压

入堆栈

⑧ PC → B ,F = B ,F → MDR ,Write

⑨ Y → A ,F = A ,F → PC ;子程序的首地址→ PC

⑩ End

13 .某机主要部件如图6唱23 所示。

(1) 请补充各部件间的主要连接线,并注明数据流动方向。

(2) 拟出指令ADD (R1 ) ,(R2 ) + 的执行流程(含取指过程与确定后

继指令地址) 。该指令的含义是进行加法操作,源操作数地址和目的操作数地址分别在寄

存器R1 和R2

中,目的操作数寻址方式为自增型寄存器间址。

解:(1) 将各部件间的主要连接线补充完后如图6唱24 所示。

(2) 指令ADD (R1 ) ,(R2 ) + 的含义为

((R1 )) + ((R2 )) → (R2 )

(R2 ) + 1 → R2

第 10 页 共 19 页

计算机组成原理课后答案第七章

指令的执行流程如下:

① (PC) → MAR ;取指令

② Read

③ M(MAR) → MDR → IR

④ (PC) + 1 → PC

⑤ (R1 ) → MAR ;取被加数

⑥ Read

⑦ M(MAR) → MDR → C

⑧ (R2 ) → MAR ;取加数

⑨ Read

⑩ M(MAR) → MDR → D

(R2 ) + 1 → R2 ;修改目的地址

(C) + (D) → MDR ;求和并保存结果

第 11 页 共 19 页

计算机组成原理课后答案第七章

Write

MDR → MM

14 .CPU 结构如图6唱25 所示,其中有一个累加寄存器AC 、一个状态条件

寄存器和其他4 个寄存器,各部件之间的连线表示数据通路,箭头表示信息传送方向。

(1) 标明4 个寄存器的名称。

(2) 简述指令从主存取出送到控制器的数据通路。

(3) 简述数据在运算器和主存之间进行存取访问的数据通路。

解:(1) 这4 个寄存器中,a 为存储器数据寄存器MDR ,b 为指令寄存器IR

c 为存储器地址寄存器MAR ,d 为程序计数器PC 。

(2) 取指令的数据通路:

PC → MAR → MM → MDR → IR

(3) 数据从主存中取出的数据通路(设数据地址为X) :

X → MAR → MM → MDR → ALU → AC

数据存入主存中的数据通路(设数据地址为Y) :

第 12 页 共 19 页

计算机组成原理课后答案第七章

Y → MAR ,AC → MDR → MM

15 .什么是微命令和微操作? 什么是微指令? 微程序和机器指令有何关系? 微

程序和程序之间有何关系?

解:微命令是控制计算机各部件完成某个基本微操作的命令。微操作是指计算机中最

基本的、不可再分解的操作。微命令和微操作是一一对应的,微命令是微操作的控制信号,

微操作是微命令的操作过程。微指令是若干个微命令的集合。微程序是机器指令的实时解

释器,每一条机器指令都对应一个微程序。微程序和程序是两个不同的概念。微程序是由

微指令组成的,用于描述机器指令,实际上是机器指令的实时解释器,微程序是由计算机

的设计者事先编制好并存放在控制存储器中的,一般不提供给用户;程序是由机器指令组

成的,由程序员事先编制好并存放在中央处理器主存储器中。

16 .什么是垂直型微指令? 什么是水平型微指令? 它们各有什么特点? 又有什

么区别?

解:垂直型微指令是指一次只能执行一个微命令的微指令;水平型微指令是指一次能

定义并能并行执行多个微命令的微指令。垂直型微指令的并行操作能力差,一般只能实现

一个微操作,控制1 ~ 2 个信息传送通路,效率低,执行一条机器指令所需的微指令数

目多,执行时间长;但是微指令与机器指令很相似,所以容易掌握和利用,编程比较简单,

不必过多地了解数据通路的细节,且微指令字较短。水平型微指令的并行操作能力强,效

率高,灵活性强,执行一条机器指令所需微指令的数目少,执行时间短;但微指令字较长,

增加了控存的横向容量,同时微指令和机器指令的差别很大,设计者只有熟悉了数据通路,

才有可能编制出理想的微程序,一般用户不易掌握。

第 13 页 共 19 页

计算机组成原理课后答案第七章

17 .水平型和垂直型微程序设计之间各有什么区别? 串行微程序设计和并行微程

序设计有什么区别?

解:水平型微程序设计是面对微处理器内部逻辑控制的描述,所以把这种微程序设计

方法称为硬方法;垂直型微程序设计是面向算法的描述,所以把这种微程序设计方法称为

软方法。在串行微程序设计中,取微指令和执行微指令是顺序进行的,在一条微指令取出

并执行之后,才能取下一条微指令;在并行微程序设计中,将取微指令和执行微指令的操

作重叠起来,从而缩短微周期。

18 .图6唱26 给出了某微程序控制计算机的部分微指令序列。图中每一框代表

一条微指令。分支点a 由指令寄存器IR 的第5 、6 两位决定。分支点b 由条件码C0

决定。现采用下址字段实现该序列的顺序控制。已知微指令地址寄存器字长8 位。

(1) 设计实现该微指令序列的微指令字之顺序控制字段格式。

(2) 给出每条微指令的二进制编码地址。

(3) 画出微程序控制器的简化框图。

解:(1) 该微程序流程有两处有分支的地方,第一处有4 路分支,由指令操作码IR

5 IR6 指向4 条不同的微指令,第二处有2 路分支,根据运算结果C0 的值决定后继

微地址。加上顺序控制,转移控制字段取2 位。图6唱26 中共有15 条微指令,则下

址字段至少需要4 位,但因已知微指令地址寄存器字长8 位(μMAR7 ~ μMAR0 ) ,

故下址字段取8位。微指令的顺序控制字段格式如图6唱27 所示。

第 14 页 共 19 页

计算机组成原理课后答案第七章

(2) 转移控制字段2 位:

00 顺序控制

01 由IR5 IR6 控制修改μMAR4 ,μMAR3 。

10 由C0 控制修改μMAR5 。微程序流程的微地址安排如图6唱28 所示。

每条微指令的二进制编码地址见表6唱3 。注:每条微指令前的微地址用十六进制表示。

微 指 令

微地址操作控制字段顺序控制字段

二进制微命令测试判别下地址

00000000 A 00 00000001 00000001 B 01 0000

0010 00000010 C 10 00000011 00000011 J 00 00

000100 00000100 L 00 00001011 00001010 D 00

00001011 00001011 O 00 00000000 00010010 E

00 00010011 00010011 G 00 00010100 0001010

0 K 00 00010101 00010101 M 00 00010110 0001

0110 N 00 00001011 00011010 F 00 00011011 0

0011011 H 00 00010101 00100011 I 00 0000101

1 (3) 微程序控制器的简化框图略。

19 .已知某机采用微程序控制方式,其控制存储器容量512 × 48 位,微程

第 15 页 共 19 页

计算机组成原理课后答案第七章

序可在整个控制存储器中实现转移,可控制转移的条件共4 个,微指令采用水平型格式,

后继指令地址采用断定方式,微指令格式如图6唱29 所示。

(1) 微指令中的3 个字段分别应为多少位?

(2) 画出围绕这种微指令格式的微程序控制器逻辑框图。

解:(1) 因为控制转移的条件共4 个,则判别测试字段为2 位;因为控存容量为

512

个单元,所以下地址字段为9 位;微命令字段是(48 - 2 - 9) = 37 位。

(2) 对应上述微指令格式的微程序控制器逻辑框图如图6唱30 。

20 .某机有8 条微指令I1 ~ I8 ,每条微指令所含的微命令控制信号如表6唱

4 所列。

微指令

微命令信号

a b c d e f g h i j

I1 √ √ √ √ √

I2 √ √ √ √

第 16 页 共 19 页

计算机组成原理课后答案第七章

I3 √ √

I4 √

I5 √ √ √ √

I6 √ √ √

I7 √ √ √

I8 √ √ √

a ~ j 分别代表10 种不同性质的微命令信号,假设一条微指令的操作控制字段为

8位,请安排微指令的操作控制字段格式,并将全部微指令代码化。解:因为微指令的操

作控制字段只有8 位,所以不能采用直接控制法。又因为微指令中有多个微命令是兼容性

的微命令,如微指令I1 中的微命令a ~ e ,故也不能采用最短编码法。最终选用字段

编码法和直接控制法相结合的方法。将互斥的微命令安排在同一段内,兼容的微命令安排

在不同的段内。b 、i 、j 这3 个微命令是互斥的微命令,把它们安排在一个段内,e 、

f 、h 这3 个微命令也是互斥的,把它们也安排在另一个段内。此微指令的操作控制字段

格式如图6唱31 所示。其中:字段1 的译码器输出对应的微命令为

00 无

01 b

10 i

第 17 页 共 19 页

计算机组成原理课后答案第七章

11 j

字段2 的译码器输出对应的微命令为

00 无

01 e

10 f

11 h

将全部8 条微指令代码化可以得到

I1 : 11100101

I2 : 10110010

I3 : 00000111

I4 : 01000000

I5 : 01011001

I6 : 10001111

第 18 页 共 19 页

计算机组成原理课后答案第七章

I7 : 01100011

I8 : 10000111

21 .在微程序控制器中,微程序计数器μPC 可以用具有加“1”功能的微地址寄

存器μMAR 来代替,试问程序计数器PC 是否可以用具有加“1”功能的存储器地址寄

存器MAR 代替?

解:在微程序控制器中不可以用MAR 来代替PC 。因为控存中只有微指令,为了降

低成本,可以用具有计数功能的微地址寄存器(μMAR)来代替μPC 。而主存中既有指令

又有数据,它们都以二进制代码形式出现,取指令和数据时地址的来源是不同的。

取指令:(PC) → MAR

取数据:地址形成部件→ MAR

所以不能用MAR 代替PC 。__

第 19 页 共 19 页