第10章控制器的功能与设计
第10章 控制器的功能与设计
本章主要介绍计算机中控制器的基本原理、功能与实现,要求学生掌握指令在计算机中的执行过程,硬布线控制器和微程序控制器的基本原理和设计技术。
重点提示: 指令周期分析 硬布线控制器 微程序控制器 微程序设计技术
10-1 重点难点指导
10-1-1 微操作
微操作:完成一条指令执行的最基本操作,是CPU的基本的或说是原子的操作。 一个程序的执行由指令的顺序执行组成。每条指令执行是一个指令周期,每个指令周期由更短的CPU周期(如取指、间址、执行、中断)组成。每个CPU周期的完成又涉及到一个或多个更短的操作,即微操作。
微操作可做如下分类:
相容性的微操作:是指在同时或同一个节拍周期(或微周期)内可以并行执行的微
操作。
相斥性的微操作:是指不能在同时或不能在同一个节拍周期(或微周期)内并行执
行的微操作。
10-1-2 指令周期分析
不同的指令,所包含的CPU周期数也是不同的,一条指令的指令周期至少需要两个CPU周期,而复杂一些的指令周期,则需要更多的CPU周期。但进一步分析发现,完成不同指令的过程中,有些操作是相同或相似的,如取指令、取操作数地址(当间接寻址时)以及进入中断周期由中断隐指令完成的一系列操作。
下述几个CPU周期非常典型,通过对其进行分析,可更好的理解指令周期。 取指周期 间址周期 执行周期 中断周期
10-1-3 CPU控制
通过对于上一节指令执行过程的分析,我们就可以确定控制器的功能,这是设计和实现
控制器的基础。
分析控制器功能的三个步骤: 1. 定义CPU的基本元素; 2. 描述CPU完成的微操作;
3. 确定要使微操作完成,控制器必须具备的功能。 所有的微操作可按如下分类: 在寄存器之间传送数据;
将数据由寄存器传送到外部界面(如系统总线); 将数据由外部界面传送到寄存器;
以寄存器作为输入、输出,完成算术或逻辑运算。 控制器完成两项基本任务:
排序:根据正被执行的程序,控制器使CPU以适当的顺序按步通过一串微操作。 执行:控制器使每个微操作得以完成。 控制器的输入包括: 时钟
指令寄存器 标志
来自控制总线的控制信号(或者称为反馈信号) 控制器的输出包括:
CPU内的控制信号:这有两类,一类用于控制数据传送路径,另一类用于启动指
定的ALU功能。
到控制总线的控制信号:这亦有两类,对存储器的控制信号和到I/O模块的控制信
号。
控制器的控制方式:控制不同操作序列时序信号的方法,称为控制器的控制方式。 常用的控制方式有: 同步控制:在任何情况下,指令在执行时所需的机器周期数和时钟周期数都是固定
不变的,称为同步控制方式。
异步控制:每条指令、每个操作控制信号需要多少时间就占用多少时间。 联合控制:前两种方式的结合。
CPU内部的典型组织形式是内部总线,其他的组织形式也是允许的,但通常是要使用某种内部总线或一组内部总线:
10-1-4 硬布线控制器
设计思想:把控制器看作产生专门固定时序控制信号的逻辑电路,而此逻辑电路以使用最少元件和取得最高操作速度为设计目标。
这种逻辑电路是一种由门电路和触发器构成的复杂树形网络,故称之为硬布线控制器。 硬布线控制器的最大优点是速度快,这点可以通过其设计方法得到说明;但其缺点是:设计、调试困难,整个控制器繁杂、零乱,缺乏规整性,扩充指令困难。
控制器的输入信号来源有三个:
来自指令操作码译码器的输出I; 来自执行部件的反馈信息B;
来自时序产生器的时序信号。
硬布线控制器的基本原理:某一微操作控制信号C是指令操作码译码器输出I、时序信号(节拍电位M,节拍脉冲T)和状态条件信号B的逻辑函数,即Cf(I,M,T,B)。
设计硬布线控制器的步骤是:
1. 将各指令的CPU周期微流程用微操作表示;
2. 将指令微流程中的各个微操作落实到具体的CPU周期、节拍周期或节拍脉冲; 3. 对于指令流程图中的出现的每一个微操作,用一个逻辑与表达式来表示;
“与”项包括:
①指令操作码的译码信息 ②寻址方式译码信息
③PSW中的状态信息或命令信息 ④来自内存或I/O接口的信息 ⑤CPU周期信息
⑥节拍周期或节拍脉冲信息;
4. 对微操作信号进行逻辑综合,这一步是对第3步得到的所有同名微操作进行逻辑
或;
最终逻辑表达式形式为:CiXXXXXXXXX
5. 对于以上第3步和第4步的每一个微操作的逻辑表达式用逻辑器件实现。目前多用
阵列逻辑实现。
从上述步骤可知,硬布线控制器的设计过程十分繁琐,其结构也十分复杂,特别是当指令系统比较庞大,操作码多,寻址方式多时,其复杂度会成倍增加。但其优点是速度快,每个微操作控制信号只需要两级门延迟(一级与、一级或)就可产生。
10-1-5 微程序控制器
微程序控制器具有规整性、灵活性、可维护性等一系列优点,微程序设计技术是利用软件方法来设计硬件的一门技术。
微程序控制的基本思想:微程序控制是将程序设计的思想引入硬件逻辑控制,把控制信号编码并有序的存储起来,将一条指令的执行过程替换成多条微指令的读出和控制的过程,这样做使得控制器的设计变得容易并且控制器的结构也十分规整,查错也很容易。若要扩充指令的功能或增加新指令,只要修改被扩充的指令的微程序或重新设计一段微程序就可以了,大大简化了系列机的设计。
微程序控制的缺点:每条指令的执行都需要若干次存储器的读操作,使得指令的执行速度比硬布线控制方式慢很多。
微指令:描述一个时间内出现的一组微操作,被称为一条微指令。这样指令的序列被称为微程序。
微命令:控制部件通过控制线向执行部件发出的各种控制命令,即相当于经过编码的微操作。
微周期:执行一条微指令所需要的时间叫做一个微周期。
一条水平型微指令的基本格式:微命令字段、条件字段和微地址字段。
微程序控制器的实质是将指令执行所需的微操作以微命令、微指令形式进行编码后,存储在控制存储器CM中,待指令执行时,从CM中取出微指令,发出对应的微操作。
微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。
机器指令与微指令的关系
1. 一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,
一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
2. 从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存
储器有关,后者与控制存储器有关。
3. 执行一条指令所需要的时间被称为指令周期,而执行一条微指令的时间被称为微指
令周期。在微程序控制器中,为了简化设计,可让微指令周期时间与CPU周期时间恰好相等。
微程序控制器的设计步骤:
1. 微命令编码设计:首要问题是找出哪些微命令是互斥的,哪些微命令是相容的; 2. 微指令下地址字段设计:微程序地址空间分配,下地址形成方式设计; 3. 各条指令的微程序设计;
微指令编码原则:
每一条微指令的宽度要尽量短,这意味着减少CM的容量;
微程序也要尽量短,这不但意味着指令执行速度提高,而且也意味着CM容量小。
微指令编码常用方法:
直接表示法:每一位代表一个微命令;
编码表示法:将相斥的微命令组成一个小组,组内采用编码方式; 混合表示法:前两种方式的结合。
微地址字段的长度:保证能够访问到整个控存空间。 条件字段的长度:能够表示出所有的下地址产生方式。
微指令执行的顺序控制问题,实际上是如何确定下一条微指令的地址问题。通常,产生后继微地址有两种方法。
计数器方式 多路转移方式 具体形式主要有: 顺序方式 无条件转移 条件转移 多分支转移
采用多路分支转移方式的优点是可实现高速的多分支转移,缺点是CM单元的分配太死,而且会留下闲置单元。
微指令的格式大体分成两类:水平型微指令和垂直型微指令。 水平型微指令与垂直型微指令的比较:
1. 水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。 2. 水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
3. 由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型
微指令则相反,微指令字比较短而微程序长。
4. 水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较
容易掌握。
10-1-6 一台计算机设计的基本步骤
一台计算机设计的基本步骤是:
1. 指令系统设计:指令是软件、硬件的交界面,是计算机设计过程中必须首先考虑
的问题。
2. 数据通路设计:根据指令的功能,希望达到的运行速度以及价格等设计目标,确
定硬件结构,包括:运算器的宽度、算术运算、逻辑运算功能设定、寄存器设置、CPU内部数据通路的宽度和结构等。
3. 指令流程设计:根据CPU的硬件设置和结构,确定各类指令的指令流程。
4. 控制器的设计:确定控制器类型,硬布线控制器还是微程序控制器。若采用硬布
线控制器则需要设计控制器的时序系统,把指令流程中的每一个微操作落实到某个确定的时序中;若采用微程序控制器,则需要考虑微指令的格式设计,以及与每条机器这里所对应的微程序的设计。
10-2 典型例题解析
1、某机共有52个微操作控制信号,构成5个相斥类的微命令组,各组分别包含5、8、2、15、22个微命令。已知可判定的外部条件有两个,微指令字长28位。
(1)按水平型微指令格式设计微指令,要求微指令的下地址字段直接给出后续微指令 地址。
(2)指出控制存储器的容量。
解析:
(1)根据5个相斥类的微命令组,各组分别包含5、8、2、15、22个微命令,考虑到 每组必须增加一种不发命令的情况,条件测试字段应包含一种不转移的情况,则5个控制字段分别需给出6、9、3、16、23种状态,对应3、4、2、4、5位(共18位),条件测试字段取2位。根据微指令字长为28位,则下地址字段取28-18-2=8位,其微指令格式如图10-2-1所示。
5个 微命令 3位
8个 微命令
4位
2个 微命令 2位
15个 微命令
4位
22个 微命令
5位
2个 判定条件 2位
8位
图10-2-1 示例微指令格式
2、某机有5条微指令,每条微指令发出的控制信号如表10-2-1所示。采用直接控制方式设计微指令的控制字段,要求其位数最少,而且保持微指令本身的并行性。
表10-2-1 微指令发出的控制信号
解析:
由表10-2-1可见,控制信号 c、g、i 仅在微指令 I1同时出现,可合并用 1位控制字段表示。控制信号 b、h 仅在微指令 I2 中同时出现,也可合并用 1 位控制字段表示。这样 10 个控制信号 a~j 可压缩到7个,其格式如图10-2-2所示。
1
2
3
4
5
6
7
图10-2-2 示例微指令格式
3、图10-2-3给出了某机微程序控制器的部分微指令序列,图中每一框代表一条微指令。分支点a由指令寄存器IR5,IR6两位决定,分支点b由条件码标志C0决定。现采用断定方式实现微程序的顺序控制,已知微地址寄存器长度为8位。要求:
(1)设计实现该微指令序列的微指令字顺序控制字段格式。 (2)给出每条微指令的二进制编码地址。 (3)画出微地址转移逻辑图。
C图10-2-3 某机微程序控制器的部分微指令序列
解析:
(1)已知微地址寄存器长度为8位,故推知控存容量为256单元。所给条件中微程序有两处分支转移。如不考虑其他分支转移,则需要2位判别测试位P1,P2(直接控制),故顺序控制字段共10位,其格式如下,μAi表示微地址寄存器的某一位。
2位
8位
(2)当P1=0,P2=0时,由μA1~μA8寄存器的内容作为下一条微指令的地址。
当P1=1,P2=0时,用判别标志P1和指令寄存器IR5,IR6 的内容来判别分支点a处的微程序转移。假定微指令B规定下地址字段为10000000,并假定用IR5,IR6来修改微地址寄存器最后两位(μA7,μA8),于是a处得到四个转移地址:10000000(微指令C),10000001(微指令E),10000011(微指令F)。
当P1=0、P2=1时,用判别表示P2和条件标志C0来判别分支点b处得两路微程序转移。假定微指令C规定下地址字段为11000000,并假定用C0来修改μA6,于是b处得到2个转移地址:11000000(微指令J),11000100(微指令I)。
除C,D,E,F,I,J六条微指令的微地址需特殊安排外,其它各条微指令的微地址可随意安排,原则上是微地址号不能重复,且在控存容量的限度之内。表10-2-2列出了每条微指令的二进制编码地址。
表10-2-2 微指令的二进制编码地址
(3)转移逻辑表达式如下:
μA8=P1·IR6·Ti μA7=P1·IR5·Ti μA6=P2·C0·Ti
其中Ti为节拍脉冲信号。在P1条件下,当IR6=1时,Ti脉冲到来时微地址寄存器的第8位μA8将置“1”,从而将该位由“0”修改为“1”。则μA8的“0”状态保持不变。μA7,μA6的修改也类似。
根据转移逻辑表达式,很容易画出转移逻辑电路图,可用触发器强置“1”端实现。
10-3 练习题
一、选择题
1、 CPU中控制器的功能是。
A.产生时序信号 B.从主存取出一条指令 C.完成指令操作的译码
D.从主存取出指令,完成指令操作码译码,并产生有关的操作控制信号,以解释执行该指令
2、 下面有关CPU的寄存器的描述中,正确的是_______。
A.CPU中的所有寄存器都可以被用户程序使用
B.一个寄存器不可能既作数据寄存器,又作地址寄存器 C.程序计数器用来存放指令
D.地址寄存器的位数一般和存储器地址寄存器MAR的位数一样 3、 下面有关程序计数器PC的叙述中,错误的是_______。
A.PC用来存放下一条将要执行的指令的地址
B.在执行转移型指令时,PC的值一定被修改为目标指令的地址 C.在指令顺序执行时,PC的值总是自动加上当前指令的长度 D.PC的位数一般和存储器地址寄存器MAR的位数一样 4、 指令周期是指_______。
A.CPU从主存取出一条指令的时间 B.CPU执行一条指令的时间
C.CPU从主存取出一条指令加上CPU执行这条指令的时间 D.在CPU内部,数据从一个寄存器传送到另一个寄存器的时间 5、 下面有关指令周期的叙述中,错误的是_______。
A.指令周期的第一个子周期一定是取指子周期
B.乘法指令的执行子周期和加法指令的执行子周期一样长 C.在有间接寻址方式的指令周期中,至少访问两次内存
D.在一条指令执行结束、取下条指令之前查询是否有中断发生 6、 以下有关机器周期的叙述中,错误的是_______。
A.通常把通过一次总线事务访问一次主存或I/O的时间定为一个机器周期 B.一个指令周期包含多个机器周期
C.不同的指令周期所包含的机器周期数可能不同 D.每个指令周期都包含一个中断响应机器周期 7、 以下句子中,正确的是_______。
A.一条指令的取出阶段需要1个CPU周期时间 B.一条指令的取出阶段需要2个CPU周期时间 C.一条指令的执行阶段需要至少1个CPU周期时间 D.一条指令的执行阶段需要至少2个CPU周期时间
8、 微程序控制器的基本思想是:将微操作控制信号按一定规则进行编码,形成_______,
存放到一个只读存储器里。当机器运行时,一条又一条地读出它们,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。 A. 微操作 B.微程序 C.微指令 D. 微地址
9、 一条机器指令是由若干条_______组成的序列来实现的,而机器指令的总和便可实现整
个指令系统。 A. 微操作 B. 微指令 C.指令 D. 微程序 10、相对于硬布线控制器,微程序控制器的优点在于_______。
A.速度较快 B.结构比较规整
C.复杂性和非标准化程度较低 D.增加或修改指令较为容易 11、同步控制是_______。
A. 只适用于CPU控制的方式 B. 只适用于外围设备控制的方式 C. 由统一时序信号控制的方式
D. 所有指令执行时间都相同的方式
12、异步控制常用于_______作为其主要控制方式
A. 在单总线结构计算机中访问主存与外围设备时 B. 微型机的CPU控制其中 C. 硬联线控制的CPU中 D. 微程序控制器中
13、请在以下叙述中选出两个正确描述的句子_______。
A. 同一个CPU周期中,可以并行执行的微操作叫相容性微操作 B. 同一个CPU周期中,不可以并行执行的微操作叫相容性微操作 C. 同一个CPU周期中,可以并行执行的为操作叫相斥性微操作 D. 同一个CPU周期中,不可以并行执行的微操作叫相斥性微操作
14、由于CPU内部的操作速度较快,而CPU访问一次主存所花的时间较长,因此机器周期
通常用_______来规定。
A. 主存中读取一个指令字的最短时间 B. 主存中读取一个数据字的最长时间 C. 主存中写入一个数据字的平均时间 D. 主存中读取一个数据字的平均时间
15、微程序控制器中,机器指令与微指令的关系是_______。
A. 每一条机器指令由一条为指令来执行
B. 每一条机器指令由一段用为指令编成的为程序来解释执行 C. 一段机器指令组成的程序可由一条为指令来执行 D. 一条为指令由若干条机器指令组成
16、就微命令的编码方式而言,若微操作命令的个数已确定,则_______。
A. 直接表示法比编码表示法的微指令字长短 B. 编码表示法比直接表示法的微指令字长短 C. 编码表示法与直接表示法的微指令字长相等
D. 编码表示法与直接表示法的微指令字长大小关系不确定 17、下列说法中正确的是_______。
A. 微程序控制方式和硬联线控制方式相比较,前者可以使指令的执行速度更快 B. 若采用微程序控制方式,则可用μPC取代PC
C. 控制存储器可以用掩模ROM、EPROM或闪速存储器实现 D. 指令周期也称为CPU周期
18、下列各条中,不属于微指令结构设计所追求的目标的是_______。
A. 提高微程序的执行速度 B. 提高微程序设计的灵活性 C. 缩短微指令的长度
D. 增大控制存储器的容量
19、为了确定下一条微指令地址,通常采用断定方式,其基本思想是_______。
A. 用程序计数器PC来产生后续微指令地址
B. 用微程序计数器μPC来产生后续微指令地址
C. 通过微指令控制字段由设计者指定或者由设计者指定的判别字段控制产生后续微指令地址
D. 通过指令中指定一个专门字段来控制产生后续微指令地址
二、填空题
1、微程序设计技术是利用______方法设计______的一门技术,具有______等一系列优点。 2、硬联线控制器的基本思想是:某______控制信号是______译码输出、______信号、______信号的函数。
3、在微指令格式中,微命令的编码通常采用以下三种方法:(1)______,(2)______,(3)______。
4、在硬联线控制器中,把控制部件看作为产生专门固定时序控制信号的逻辑电路。这种逻辑电路是一种由______和______构成的复杂树形网络。当执行不同的指令时,通过激活一系列彼此很不相同的______来实现对指令的解释。
5、微程序控制器的核心部件是______,它是一种______存储器。
6、控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做______,而执行部件接受此控制命令后所进行的操作叫做______。
7、微程序控制器主要由______、______、______三大部分组成,其中______是只读存储器,用来存放______。
三、综合应用题
1、图10-3-1所示为双总线结构的机器,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为主存地址寄存器,DR为数据缓冲寄存器,ALU由+、-控制信号决定可完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有控制信号,例如Yi表示Y寄存器的输入控制信号,Rio为寄存器Ri的输出控制信号。未标志符的线为直通线,不受控制。
B总线
图10-3-1 双总线结构的机器结构图
指令“SUB R1, R3”完成(R3)-(R1)→R3的功能操作,指令“STA R1,(R2)”的含义是将寄存器R1的内容传送至(R2)为地址的存储单元中,画出上述指令周期流程图,并列出相应的微操作控制信号序列。
2、图10-3-2所示的处理机逻辑框图中,有两条独立的总线和两个独立的存贮器。已知指令存贮器IM最大容量为16384字(字长18位),数据存贮器DM最大容量是65536字(字长16位)。各寄存器均有“打入”(Rin)和“送出”(Rout)控制命令,但图中未标出。
2
图10-3-2 处理机逻辑框图
(1)指出下列寄存器的位数:
程序计数器PC、指令寄存器IR、累加器AC0和AC1,通用寄存器R0~R3,指令存储器地址寄存器IAR,指令存储器数据寄存器IDR、数据存储器地址寄存器DAR,数据存储器数据寄存器DDR。
(2)设处理机指令格式为:
加法指令可写为“ADD X(Ri)”。其功能是(AC0)+((Ri+X)→AC1,其中((Ri)+X)部分通过寻址方式指向数据存储器,现取Ri为R1。试画出ADD指令从取指令开始到执行结束的操作序列图,写明基本操作步骤和相应的微操作控制信号。
3、有一ALU不能做减法,但它能加两个输入寄存器并能对两个寄存器的各位取逻辑反。数是以2的补码形式存储的。请列出实现减法控制器必须完成的微操作。 4、若使用图10-3-3的CPU完成AC与一个数相加操作,写出下列情况下的微操作序列:(1)该数为一个立即数;(2)该数为直接寻址的操作数;(3)该数为间接寻址的操作数。
地址线数据线
图10-3-3 示例CPU
5、某计算机的数据通路如图10-3-4所示,其中M-主存, MBR-主存数据寄存器, MAR-主存地址寄存器, R0~R3-通用寄存器, IR-指令寄存器, PC-程序计数器(具有自增能力), C、D-暂存器, ALU-算术逻辑单元(此处做加法器看待), 移位器-左移、右移、直通传送。所有双向箭头表示信息可以双向传送。
图10-3-4 某计算机的数据通路
请按数据通路图画出“ADD(R1),(R2)+”指令的指令周期流程图。该指令的含义是两个数进行求和操作。其中源操作地址在寄存器R1中,目的操作数寻址方式为自增型寄存器间接寻址(先取地址后加1)。
6、某计算机有如下部件:ALU,移位器,主存M,主存数据寄存器MDR,主存地址寄存器MAR,指令寄存器IR,通用寄存器R0~R3 ,暂存器C和D。如图10-3-5所示
+1
ALU
图10-3-5 某计算机部件
(1)请将各逻辑部件组成一个数据通路,并标明数据流向。 (2)画出“ADD R1,(R2)+ ”指令的指令周期流程图,指令功能是 (R1)+((R2))→R1。
7、假设某机器有80条指令,平均每条指令由4条微指令组成,其中有一条取指微指令是所有指令公用的。已知微指令长度为32位,请估算控制存储器容量。
8、已知某机采用微程序控制方式,控存容量为512×48位。微程序可在整个控存中实现转移,控制微程序转移的条件共4个,微指令采用水平型格式。后继微指令地址采用断定方式。请问:
(1)微指令的三个字段分别应为多少位?
(2)画出对应这种微指令格式的微程序控制器逻辑框图。
9、微地址转移逻辑表达式如下: μA8=P1·IR6·T4
μA7=P1·IR5·T4 μA6=P2·C·T4
其中μA6~μA8为微地址寄存器相应位,P1和P2为判别标志,C为进位标志,IR5和IR6为指令寄存器的相应位,T4为时钟周期信号。说明上述逻辑表达式的含义。
10、一个简单CPU其指令周期有4个主要阶段:取指、间址、执行和中断。硬布线方式实现时,有两个2位标志用来指定当前阶段。 (1)为何需要这些标志?
(2)为什么微程序式控制器不需要这些标志? 11、某机运算器框图如图10-3-6所示,其ALU由通用函数发生器组成,M1-M3位多路开关,采用微程序控制。若用微指令对该运算器要求的所有控制信号进行微指令编码格式设计,列出各控制字段的编码表。
M2
图10-3-6 某机运算器框图
12、图10-3-7示出7条指令的微程序流程图,其中一个方框表示一条微指令,框内字母代表微命令码。微指令地址采用断定方式并规定用7位二进制数表示(用八进制写出),P(i)为判别测试标志,其值由微命令中转移控制字段给出,具体含义如下:
P(0):按微指令下址字段执行下一条微指令 P(1):按指令寄存器IR7,IR6,IR5修改微地址寄存器后3位并按新地址执行下一条微指令 P(5):按进位标志Ci修改微地址寄存器最高位并按年新地址执行下一条微指令
(000)2
图10-3-7 指令的微程序流程图
要求:(1)按微指令①的微地址为起始条件,标出全部微指令的微地址(标在方框右上角)。
12的五条微指令,列表写出每条微指令在控存中的地(2)对标定 ①、②、③、⑧、○址以及每条微指令的内容。
13、设有一运算器数据通路如图10-3-8所示,假设操作数a和b(补码)已分别放在通用寄存器R1和R2中。ALU有+、-、M(传送)三种操作功能。
MDR->AR1->AR2->AR2->A
图10-3-8 一运算器数据通路如
(1)指出相容性微操作和相斥性微操作。
(2)用字段直接译码法设计使用此运算器的微指令格式。
14、图10-3-9中R1、R2、R3是三个寄存器,A和B是两个三选一的多路开关,通路的选择分别是AS0、AS1和BS0、BS1端控制,例如BS0BS1=11时,选择R3,BS0BS1=01,选择R
1等。S1、S2是ALU的两个操作控制端,其功能如下:
ASAS
图10-3-9 示例运算器
S1S2=00时,ALU输出=A;
S1S2=01时,ALU输出=A+B; S1S2=10时,ALU输出=A-B; S1S2=11时,ALU输出=AB。 (1)设计运算器通路控制的微指令格式。 (2)假定需运算的两个数a和b分别存放在寄存器R1和R2中,R3中存放修正量3(0011),试设计余三码编码的十进制加法微程序,并代码化。
15、假设某计算机的运算器框图如图10-3-10所示。
图10-3-10 某计算机的运算器框图
其中ALU为16位的加法器(高电平工作),SA 、SB为16位锁存器,4个通用寄存器由D触发器组成,O端输出,其读写控制如表10-3-1和10-3-2所示:
表10-3-1 读控制
10-3-2 写控制
要求:(
1(2)画出ADD,SUB两条微指令程序流程图。
10-4 参考答案
一、选择题
1、D 2、D 3、B 4、C 5、B 6、D 7、C 8、C 9、B 10、D 11、C 12、A 13、AD 14、A 15、B 16、B 17、C 18、D 19、C
二、填空题
1、软件 操作控制器 规整性、灵活性、可维性 2、微操作 指令操作码 时序 状态条件 3、直接表示法 字段直接译码法 混合表示法 4、门电路 寄存器 控制信号 5、控制存储器 只读存储器 6、微命令 微操作
7、控制存储器 微指令寄存器 地址转移逻辑 控制存储器 微程序
三、综合应用题 1、解:
指令流程见图10-4-1和10-4-2。
PCo, G, ARi PCo, G, ARi
R/W=RR/W=R
DRo, G, IRi DRo, G, IRi
R3o, G, Yi R2o, G, ARi
R1o, G, Xi R1o, G, DRi
-, G, R3iR/W=W
图10-4-1 “SUB R1, R3”指令流程 图10-4-2 “STA R1,(R2)” 指令流程
2、解:
(1)PC=14位 IR=18位 AC0=AC1=16位 R0~R3=16位
IAR=14位 IDR=18位 DAR=16位 DDR=16位 (2)加法指令“ADD X(Ri)”是一条隐含指令,其中一个操作数来自AC0。另一个操作数在数据存储器中,其地址由通用寄存器的内容(Ri)加上指令格式中的X 量值决定,可认为这是一种变址寻址。指令周期的操作流程如图10-4-3所示:
PCout, IARin
读IM, IDRin
IDRout, IRin
R1out, IRout, +, IARin
AC1out, DARin
读DM, DDRin
AC0out(BUS1), +, DDRout(BUS2), ACin
图10-4-3 指令周期的操作流程
3、解:
要使该ALU作减法,至少要执行如下微操作:连接在ALU第二个输入端的寄存器各位取逻辑反、ALU最低位进位置1。
4、解:
(1)立即数:说明操作数在指令中,即IR中,微操作序列如下:
IR→Y AC+Y→Z Z→AC
(2)直接寻址:IR中存放操作数的地址
IR→MAR MM→MBR
MBR→Y AC+Y→Z Z→AC
(3)间接寻址:IR中存放操作数地址的地址
IR→MAR MM→MBR MBR→MAR MM→MBR MBR→Y AC+Y→Z Z→AC
5、解:
“ADD (R1),(R2)+”指令是SS型指令,两个操作数均在主存中。其中源操作数地址在R1中,所以是R1间接寻址。目的操作数地址在R2中,由R2间接寻址,但R2的内容在取出操作数以后要加1进行修改。指令周期流程图如图10-4-4所示。
取指令取源操作数取目的 操作数
图10-4-4 指令周期流程图
6、解:
(1)各功能部件连接成如图10-4-5所示数据通路:
图10-4-5 连接后的数据通路
(2
)此指令为RS型指令,一个操作数在R1中,另一个操作数在R2为地址的内存单元中,相加结果放在R1中。指令周期流程图如图10-4-6所示。
送当前指令地址到MAR
取当前指令到IR,
PC + 1,为取下条指令做好准备
①
②
③
④
图10-4-6 指令周期流程图
说明:①取R1操作数→C暂存器。②送地址到MAR。③取出内存单元中的操作数→D暂存器。④相加后将和数→R1。
7、解:
控存至少需容纳(4-1)×80+1=241条微指令,每条微指令长度为32位,则控存容
21
量至少为241×32位。
8、解:
(1)由于需要在整个控存内转移,因此微指令地址字段为9位,转移条件有4个,再加上顺序执行共5个条件,因此条件字段需要3位,微操作字段最多为48-9-3=36位。 (2)如图10-4-7所示。
图10-4-7 微程序控制器框图
9、解:
说明如下含义:P1条件同指令中的IR5和IR6有关,根据这两位的值进行并行四路转移。P2条件和进位位C有关,根据C的取值进行两路转移。每个逻辑表达式中的T4说明微地址的形成是在第4个时钟周期。
10、解:
(1)因为在硬布线控制器中,一个指令周期的4个主要阶段(取指、间址、执行和中断)中的每个阶段都需要若干更小的时间单位(节拍电位)来完成,而且每个阶段所要发出的控制信号也是不同的,因此需要CPU来记录当前正在执行的阶段,来控制微操作信号的发出。例如,在取指阶段,发出的控制信号“读存储器”将得到一个指令字,而在间址、执行阶段,得到的分别是地址和数据。
(2)微程序控制器把指令的执行转化成了微指令的执行,因此它不需要记录当前正在执行的阶段,只要发出微指令所包含的微命令,即可完成微指令,进而完成指令的执行。
11、解:
图中共有24个控制信号。当24个控制信号全部用微指令产生时,可采用字段译码法进行编码控制。采用的微指令格式如下(其中目的操作数字段与打入信号段可以合并公用,后者加上节拍脉冲控制即可):
22
12、解:
11随意(但必须在控(1)①000 ②025 ③026 ④021 ⑤022 ⑥023 ⑦024 ⑧020 ⑨、⑩、○
12100 存的容量范围之内) ○
(2)五条微指令在CM中的地址及每条微指令内容如表10-4-1所示。
表10-4-1 微指令内容
13、解:
(1)相斥性微操作有如下五组:
移位器(R、L、V) ALU(+、-、M)
A选通门的4个控制信号 B选通门的7个控制信号
寄存器的输入与输出控制信号,即输入时不能输出,反之亦然 相容性微操作:
A选通门的任一信号与B选通门控制信号 B选通门的任一信号与A选通门控制信号 AUL的任一信号与加1控制信号
寄存器的4个输入控制信号可以是相容性的 五组控制信号中组与组之间是相容性的
(2)每一小组的控制信号由于是相斥性的,故可以采用字段直接译码法。微指令格式如下:
3位
001:MDR→A 010:R1→A 011:R2→A 100:R3→A
3位
001:PC→B 010:R1→B 011:R1#→B 100:R2→B 101:R2#→B 110:R3→B 111:R3#→B
2位 01:+ 10:- 11:M
2位 01:R 10:L 11:V
1位 1:+1
4位 0001:PCout 0010:PCin 0011:R1out 0100:R1in 0101:R2out 0110:R2in 0111:R3out 1000:R3in
23
14、解:
(1)采用水平微指令格式,且用直接控制方式。顺序控制字段假设4位,其中一位判别测试位。
当P=
0时,直接用μAR1~μAR3形成下一个微地址。 当P=1时,对μAR3进行修改后形成下一个微地址。
(2)余三码“十进制加法”微程序如图10-4-8所示。第一条微指令执行后判别有无进位。如进位标志C=1,则和数中加上3(0011);如进位标志C=0,则和数中减去3。
图10-4-8 十进制加法微程序
001
010
010
15、解:
微指令字长12位,微指令格式如下:
F2—写RO—R3的选择控制。 F3—打入SA的控制信号。 F4—打入SB的控制信号。
F5—打开非反向三态门的控制信号LDALU。
F6—打开反向三态门的控制信号,并使加法器最低位加1。
24
F7-锁存器SB清零RESET信号。
F8- 一段微程序结束,转入取机器指令的控制信号。 R— 寄存器读命令 W—寄存器写命令
、SUB两条指令的微程序流程图如图10-4-9所示。
图10-4-9 微程序流程图
25
(2)ADD