[关闭]
@jtahstu 2015-06-29T11:38:04.000000Z 字数 12734 阅读 1620

控制器

计算机组成原理


第5章 控制器

本章学习内容

5.1 控制器的功能与组成

5.1.1 控制器的功能

控制器的基本功能:控制指令的执行。

具体地说,就是从主存中读出指令,并对指令加以分析,产生一系列控制序列,控制系统中相应的部件完成该指令所定义的功能(执行指令)。一条指令执行完毕,根据指令流向,执行下一条指令,如此反复。

从本质上看,控制指令的执行就是将指令转换成与指令功能对应的微操作序列。

除此以外,控制器必须具有检测和处理异常情况(如运算溢出)和特殊请求(如打印机请求传送打印字符)的功能。检测是通过中断机构(中断控制逻辑)实现的,处理过程其本质是执行中断处理程序的过程,即执行指令的过程。

5.1.2 控制器的组成

控制器由以下六个部分组成
(1)指令部件
(2)时序控制部件
(3)程序状态寄存器
(4)微操作控制信号形成部件
(5)中断控制逻辑(中断机构)
(6)控制台

(1)指令部件
指令部件的主要功能是完成取指令和分析指令。
①程序计数器 PC (指令计数器、指令地址寄存器)
程序计数器用于保证程序按规定的序列正确运行,并提供将要执行指令的指令地址。
②指令寄存器 IR
指令寄存器用于存放当前正在执行的指令。
③指令译码器 ID
指令译码器是指令分析部件,对指令寄存器中的指令操作码进行译码分析,产生相应操作的控制电位,提供给微操作控制信号形成部件。
④地址形成部件
根据机器所规定的各种寻址方式,形成操作数有效地址。

(2)时序控制部件
时序控制部件:用于产生一系列时序信号,为各个微操作定时,以保证各个微操作的执行顺序。
微操作:机器最简单的基本操作
从宏观(即程序控制)上看,计算机的解题过程实质上是指令序列即一条条指令的执行过程。
从微观(即指令控制)上看,计算机的解题过程是微操作序列即一个个(或一组组)微操作的执行过程。

(3)程序状态寄存器
程序状态寄存器:用于存放程序的工作状态(如管态、目态等)和指令执行的结果特征(如结果为零、结果溢出等),把它所存放的内容称为程序状态字(PSW)。PSW表明了系统的基本状态,是控制程序执行的重要依据。不同的机器,PSW的格式及内容不完全相同。

例:8086 CPU中的PSW的格式

CF:进位 PF:奇偶 AF:半进位
ZF:结果为0 SF:符号 TF:单步
IF:中断允许 DF:地址增/减量 OF:溢出

(4)微操作控制信号形成部件
微操作控制信号形成部件:根据指令部件提供的操作控制电位、时序部件所提供的各种时序信号以及有关的状态条件,产生各指令的微操作控制信号。
不同的指令,完成不同的功能,需要不同的微操作控制信号序列。每条指令都有自己对应的微操作序列。控制器必须根据不同的指令,在不同的时间,产生并发出不同的微操作控制信号,控制有关部件协调工作,完成指令所规定的任务。

(5)中断控制逻辑(中断机构)
用于实现异常情况和特殊请求的检测与处理。

(6)控制台
控制台用于实现人与机器之间的通信联系,如启动或停止机器的运行、监视程序运行过程、对程序进行必要的修改或干预等。
早期有硬件控制台,用于设置地址和指令。现在,在大型机中有软件控制台。通过控制台命令,控制机器的启停,干预机器的工作。

5.1.3 控制器的组成方式

控制器的组成方式主要是指微操作控制信号形成部件采用何种组成方式产生微操作控制信号。

根据产生微操作控制信号的方式不同,控制器可分为组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型三种。
(1)组合逻辑型
组合逻辑控制器是根据控制要求和状态,采用组合逻辑技术来实现的。其微操作信号发生器是由门电路组成的复杂树形网络构成的。
组合逻辑控制器也称为硬联逻辑或硬布线逻辑。
组合逻辑控制器的设计目标:使用最少器件数和取得最高操作速度。

优点:速度快
缺点:微操作信号发生器结构不规整,设计、调试、维修较困难,难以实现设计自动化。一旦控制部件构成之后,要想增加新的控制功能是不可能的。

(2)存储逻辑型
存储逻辑型控制器称为微程序控制器。它是采用存储逻辑来实现的。
存储逻辑型控制器的实现方法:
把微操作信号代码化,使每条机器指令转化成为一段微程序存入控制存储器中。执行指令时,读出控存中的微指令,由微指令产生微操作控制信号。

优点:
设计规整,调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。
缺点:由于它增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢。

(3)组合逻辑和存储逻辑结合型
组合逻辑和存储逻辑结合型控制器称为PLA控制器,它是吸收前两种的设计思想来实现的。
PLA控制器实际上也是一种组合逻辑控制器,但它的输出程序可编的,某一微操作控制信号由PLA的某一输出函数产生。
PLA控制器是组合逻辑技术和存储逻辑技术结合的产物,它克服了两者的缺点,是一种较有前途的方法。

三种类型控制器的根本区别在于微操作信号发生器的实现方法不同,而控制器中的其他部分基本上是大同小异的。
微操作信号发生器

5.2 控制器的控制方式与时序系统

5.2.1 控制方式

控制器的控制方式需解决的问题是:
如何在时间上对各种微操作信号加以控制。

控制方式可分为:
(1)同步控制
(2)异步控制
(3)联合控制

(1)同步控制方式
同步控制方式:任何指令的运行或指令中各个微操作的执行,均由确定的具有统一基准时标的时序信号所控制。
即所有的操作均由统一的时钟控制,在标准的时间内完成。
在同步控制方式下,每个时序信号的结束就意味着对应操作的完成,随即开始执行后续的微操作或下条指令的运行。

典型的同步控制方式是:
以微操作序列最长的指令和执行时间最长的微操作为标准,把一条指令执行过程划分为若干个相对独立的阶段(称为周期)或若干个时间区间(称为节拍),采用完全统一的周期(或节拍)控制各条指令的执行。

优点:时序关系简单,控制方便
缺点:浪费时间。
因为对比较简单的指令,将有很多节拍是不用的,处于等待。所以,在实际应用中都不采用这种典型的同步控制方式,而是采用某些折衷的方案。

(2)异步控制方式
异步控制方式:没有统一的同步信号,采用问答方式进行时序协调,将前一操作的回答信号作为下一操作的启动信号。
该方式不再有统一的周期、节拍,各个操作之间采用应答方式衔接,前一操作完成后给出回答信号,启动下一个操作。

这种方式可根据每条指令的操作的实际需要而分配时间,所以没有时间上的浪费,效率高。但设计复杂且费设备。

(3)联合控制方式
联合控制方式:将同步控制和异步控制相结合。
联合控制方式通常的设计思想:在功能部件内部采用同步方式或以同步方式为主的控制方式;在功能部件之间采用异步方式。
实际上现代计算机中几乎没有完全采用同步或完全采用异步的控制方式,大多数都采用联合控制方式。

5.2.2 时序系统

通常,设计时序系统主要是针对同步控制方式。
1.指令周期与机器周期
指令周期:从取指令、分析指令到执行完一条指令所需的全部时间。
由于各种指令的操作功能不同,繁简程度不同,因此各种指令的指令周期也不尽相同。

机器周期(CPU周期):指令周期中的某一相对独立的工作阶段所需的时间。
一条指令的指令周期由若干个机器周期所组成,每个机器周期完成一个基本操作。
一般机器的CPU周期有取指周期、取数周期、执行周期等。

2.节拍
节拍:把一个机器周期等分成若干个时间区间,每一时间区间称为一个节拍。一个节拍对应一个电位信号,控制一个或几个微操作的执行。

3、脉冲(定时脉冲)
节拍提供了一项基本操作所需的时间分段,但有的操作如打入寄存器,还需严格的定时脉冲,以确定在哪一时刻打入。节拍的切换,也需要严格的同步定时。所以在一个节拍内,有时还需要设置一个或几个工作脉冲,用于寄存器的复位和接收数据等。
脉冲:一个节拍内设置的一个或几个工作脉冲。

周期、节拍、脉冲构成了三级时序系统,它们之间关系如下图所示。图中包括两个机器周期M1、M2,每个周期包含四个节拍W0~W3,每个节拍内有一个脉冲P。

微型机中常用的时序系统与上述三级时序系统有所不同,称之为时钟周期时序系统。下图所示,一个指令周期包含三个机器周期:取指周期、存储器读周期和存储器写周期,三个周期中分别包含4个、3个、3个时钟周期。

5.3 微程序控制器及微程序设计技术

5.3.1 基本概念

① 微命令 直接作用于部件或控制门电路的控制命令。是构成控制信号序列的最小单位。

② 微操作 由微命令控制实现的最基本的操作。

③ 微指令 用以产生一组微命令,控制完成一组微操作的二进制编码字称为微指令。

④ 微程序:一系列微指令的有序集合称为微程序。
程序、指令、微程序、微指令、微命令、微操作的关系

一段程序由若干条指令构成;
每一条指令对应一段微程序;
一段微程序由若干条微指令构成;
一条微指令包含若干个微命令;
一个微命令对应一个微操作。

微程序设计的目的是实现定义的机器指令。其属于硬件设计范畴;
程序设计是利用机器指令编写系统软件或应用软件,其属于软件设计范畴。

5.3.2 微程序控制器的组成及其工作过程

微程序控制器的组成

① 控制存储器CM:简称控存。控存的每个单元存放一条微指令代码。
② 微指令寄存器μIR:存放从控存中读取的微指令。

微指令通常分为两大字段:
操作控制字段:产生一组微命令,控制有关部件完成微指令所规定的微操作。
地址(顺序)控制字段:指示下条微指令地址的形成方式或直接给出下条微指令地址。

③ 微地址形成电路:用于产生起始微地址和后继微地址,保证微程序的连续执行。
④ 微地址寄存器μMAR:接受微地址形成电路送来的地址,为读取微指令准备好控存的地址。

微程序控制器的工作过程
微程序控制器的工作过程实际上就是在微程序控制器的控制下计算机执行机器指令的过程。
① 启动取指令微程序
取指令的公共操作通常由一个取指微程序来完成。 具体的执行是:在机器开始运行时,自动将取指微程序的入口微地址送MAR,并从CM中读出相应的微指令送入IR。微指令的操作控制字段产生有关的微命令,用来控制计算机实现取机器指令的公共操作。
② 根据IR中的指令码,通过微地址形成电路产生该指令的微程序的起始微地址,并送入μMAR中。
③ μMAR中的微地址经译码、驱动,从被选的控存单元中取出一条微指令并送入μIR。
④ μIR中的微指令的操作控制字段产生一组微命令并送往有关的功能部件,控制其完成所规定的微操作。
⑤μIR中微指令的地址控制字段及有关状态条件送往微地址形成电路,产生下条微指令的地址,再去读取并执行下条微指令。如此循环,直到一条机器指令的微程序全部执行完毕。
⑥执行完一条机器指令对应的微程序后又回到取指微程序的入口地址,继续取下一条指令并执行。如此周而复始,直到整个程序执行完毕为止。

5.3.3 微程序设计的几个相关问题

(1)微指令操作控制字段的编码,如何对微指令的操作控制字段进行编码来表示各个微命令。
(2)微程序的寻址,即如何根据指令代码转入到其对应的初始微地址,及后继微地址寻址的各种方法。
(3)微程序设计方法。
下面将围绕这三个问题展开讨论。

通用的操作控制字段的编码方法
1.直接控制法(不译法)
微指令操作控制字段的每一位都直接表示一个微命令,该位为“1”,表示执行这个微命令,为“0”表示不执行该微命令。由于这种方法不需译码,所以也称不译法。
优点:结构简单,并行性强,操作速度快。
缺点:微指令字太长,信息效率低。

在这种方法中,有N个微命令,操作控制字段就需N位。在实际机器中,微命令数达几百个,使微指令字长达到难以接受的地步。同时在几百个微命令中有很多是互斥的,不允许同时出现的(如R0→BUS1,R1→BUS1),将它们安排在同一条微指令内,只会使信息效率降低。
因此在实际机器中,往往与其它方法混合使用,仅部分位采用直接控制法。

2.最短编码法
将所有的微命令进行统一编码,每条微指令只定义一个微命令。若微命令总数为N,则最短编码法中操作控制字段的长度L,应满足下列关系:
L≥log2N

优点:最短编码法所得的微指令字长最短。

缺点:
①要通过微命令译码器译码才能得到所需的微命令。微命令越多,译码器就越复杂;
②这种方法在某一时间只能产生一个微命令,不能充分利用机器硬件所具有的并行性,指令执行效率低。
所以这种方法很少独立使用。

3.字段直接编码法
将微指令操作控制字段划分为若干个子字段,每个子字段的所有微命令进行统一编码。
子字段的划分原则:
① 把互斥的微命令(即不允许同时出现的微命令)划分在同一字段内,相容的(即允许同时出现)微命令划分在不同字段内。
② 字段的划分应与数据通路结构相适应。
字段直接编码法的微指令结构

(2)微程序的寻址
微程序的寻址,即如何根据指令代码转入到其对应的初始微地址,及后继微地址寻址的各种方法。

相关概念:

微程序的初始微地址(微程序的入口地址):指令所对应微程序的第一条微指令所在控制存储器单元的地址。
后继微地址:后继微指令所在控存单元的地址。
1.初始微地址的形成
机器指令从主存取到IR以后,要由机器指令操作码转换为该指令所对应的微程序入口地址,即形成初始微地址。
初始微地址形成方式
(1) 一级功能转移
一级功能转移:根据指令操作码,直接转移到相应微程序的入口,即指令操作码直接参与形成微程序的入口地址。
当指令操作码的位置与位数均固定时,可直接用操作码作为微地址的低位。

例:模型机有16条指令,操作码对应IR的低4位,当取出指令后,直接由IR的低4位,作为微地址的低4位。
一级功能转移适用于指令操作码的位置和长度比较规整的和固定的情况。

(2) 二级功能转移
如果机器指令的操作码的位数和位置不固定,则需采用二级功能转移。
二级功能转移:先按指令类型标志转移,以区分出哪一类指令。在每类指令中假定位置和位数是固定的,在第二级按操作码区分出具体是哪条指令,转移到相应微程序入口。
二级功能转移
2.后继微地址的形成
找到初始微地址后,开始执行相应的微程序。每条微指令执行完毕,都要根据要求形成后继微地址,以保证微程序的正常执行。
后继微地址的形成方法对微程序编制的灵活性影响很大,主要有两种基本类型: 增量方式和断定方式。

1.增量方式(顺序-转移型微地址)
顺序执行时后继微地址就是现行微地址加上一个增量;
转移时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。

优点:简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;
缺点:这种方式不能实现多路转移。

2.断定方式
断定方式的后继微地址可由微程序设计者指定,或者根据微指令所规定的测试结果直接决定后继微地址的全部或部分值。
这是一种直接给定与测试断定相结合的方式,其顺序控制字段一般由两部分组成:非测试段和测试段。

测试段如果只有一位,则微地址将产生两个分支;若有两位,则最多可产生四个分支;依次类推;测试段为n位最多可产生2n个分支。

例:某机的微指令格式为:
A、B为两个判定条件
可实现4路转移。
采用断定方式可以实现快速转移,其缺点时,编制微程序时,地址安排比较复杂。

(3)微程序设计方法
在进行微程序设计时,应尽量缩短微指令字长,减少微程序长度,提高指令执行效率。但以上指标是互相制约的,应全面分析和权衡。
1.水平型微指令及水平型微程序设计
水平型微指令是指一次能定义并执行多个微微命令的微指令。
优点:
并行操作能力强,效率高,执行一条机器指令所需微指令数目少,时间短;

缺点:
微指令字长,增加控存的横向容量;
设计者只有熟悉数据通路,才有可能编制出理想的微程序,用户一般不易掌握。

采用水平型微指令编制微程序称为水平微程序设计。

2.垂直型微指令与垂直型微程序设计
垂直型微指令是指一次只能执行一个微命令的微指令。
缺点:
并行操作能力差,效率低,执行一条机器指令所需微指令数目多,执行时间长、效率低;

优点:
用户不必过多地熟悉数据通路的细节便可进行微程序设计,容易掌握和利用。
采用垂直型微指令编制微程序称为垂直微程序设计。

3 混合型微指令

在实际中,对于一台计算机来说,不应把微指令局限于某一种类型,常常是两者兼而有之。
具有两者特点的微指令称为混合型微指令。

5.4 实验用模型机的微程序设计

下面以实验中的模型机来讨论微程序的设计
设计中需要解决的主要问题:
(1)定义模型机的指令系统
确定模型机的指令及各指令的功能。
(2)进行微程序设计实现所定义的指令系统 即实现每条指令的功能。
模型机的数据通路图
(1)定义模型机的指令系统
为简化设计过程,模型机中定义五条机器指令:
IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):

助记符 机器指令码 说 明
IN 0000 0000 “INPUT DEVICE” 中
的开关状态至R0
ADD addr 0001 0000 … R0+[addr]R0
STA addr 0010 0000 … R0[addr]
OUT addr 0011 0000 … [addr]BUS
JMP addr 0100 0000 … addrPC

其中IN为单字长(8位),其余为双字长指令,… 为addr对应的二进制地址码,为8位。

(2)进行微程序设计实现所定义的指令
①根据模型机的数据通路图,设计指令执行流程。
五条指令的流程如下图所示:
各条指令的执行流程

指令流程设计是微程序设计的基础,下面以加法指令流程设计为例作详细介绍。

ADD addr 0001 0000 … R0+[addr]R0
当执行取指令微程序将加法指令代码( 0001 0000)取出时,确定是加法指令后,下面该进行什么操作。

首先要进行PC->AR,PC+1,以便读出指令中的地址部分;
当地址到达AR后,便将内存中指令的地址码部分读出到BUS,读出的地址码还要访问其指向的内存单元,即进行:
RAM->BUS,BUS->AR

下面将R0的值送入DR1,即指令流程:
R0->DR1
最后,将DR1的值加上DR2的值,将结果送入R0,即指令流程:
(DR1)+(DR2)->R0
到此,指令功能已完成,指令流程结束。

说明:
(1)上图中每个方框对应指令流程中的一步,也即对应一条微指令。
(2)每条指令在执行前要执行两步取指令的操作。
(3)图中的P(1) 其实质是根据指令码形成微程序入口地址电路。

②确定各条微指令的地址。
首先确定每个微程序第一条微指令的地址,即入口地址。
在该模型机中,采用一级功能转移,将指令代码的高4位中的低3位作为地址的低3位。
即IN指令的指令代码的高4位为0000,则入口地址为001 000 即八进制10

ADD 指令代码的高4位为0001,则入口地址为001 001 即八进制11
其它指令分别为
STA :12
OUT:13
JMP:14

确定后继微地址
在该模型机中,采用在微指令的地址控制字段直接给出后继微地址。
由于是采用这种方式,其它微指令可任意存放在控存的单元,只要能通过地址字段前后衔接就可以。

每段微程序的最后一条微指令的后地址微地址需是转向取指令微程序的入口地址,在该模型机中,为000001。
控制台操作微程序设计
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
(1)存储器读操作:拨动总清开关CLR后,控制台开关SWB、SWA为“0 0”时,按START微动开关,可对RAM连续手动读操作。

存储器写操作:拨动总清开关CLR后,控制台开关SWB、SWA为“0 1”时,按START微动开关,可对RAM连续手动写入操作。
启动程序:拨动总清开关CLR后,控制台开关SWB、SWA为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。

说明:图中的P(4),实际上是根据控制台开关SWB、SWA的状态形成3路不同的微程序入口地址电路。

关于启动程序的运行
先执行00号单元的微指令,00号单元的微指令进行P(4)测试,当SWB、SWA为“11”时,转入执行23号单元的微指令,23号单元的微指令没有进行什么操作,只是它的下地址为01,即转入取指令微指令。

其它是手动写入程序至内存及手动读出程序验证其正确性的两个控制台微程序。

③微指令代码化
根据微指令格式,将微程序流程中的每条微指令代码化,转成相应的二进制代码,写入控存中的相应单元。
模型机的微指令的格式

说明:
(1)在模型机中,采用混合型微指令设计方法。
(2)微指令的操作控制字段采用了直接 给出微命令和译码法相接合的方法。
(3)微指令的地址控制字段采用直接给出下一条微指令的地址以实现微指令之间的衔接。
微指令的代码化

将上表按地址写入到控存中,模型机的微程序设计转入调试阶段。
④调试
现在可以根据定义的指令设计一段调试程序,验证全部微程序流程图是否正确。
调试程序
内容 助记符
00000000 IN
00010000 00001010 ADD [0AH]
00100000 00001011 STA [0BH]
00110000 00001011 OUT [0BH]
01000000 00000000 JMP [00H]
以上是程序代码段

数据段定义如下:
地址 内容
0000 1010 00000001
0000 1011 (?)求和结果

该程序段的功能是:将输入开关的值先读入到R0,然后将R0中的值加上[0AH]内存单元的值再送给R0,再将R0的值送入内存单元[0BH],并将[0BH]中的内容输出到LED.最后程序跳转到程序的开始处,又重新执行。
(程序从存储器00位置存放。)
附:微程序控制实验
实验目的
(1)通过实验原理图进一步理解微程序控制器的组成;
(2)通过微程序写入、校验操作,进一步理解微指令、微程序、微地址、控制存等相关概念。

实验步骤
(1)熟悉实验原理图;
(2)按要求连线;
(2)微程序的写入
A.将编程开关置为PROM(编程状态)。
B.将实验板上“STATE UNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。
C.用二进制模拟开关置微地址MA5—MA0。

D 在MK24—MK1开关上置微代码,24位开关对应24位显示灯,开关量为“0”时灯亮,开关量为“1”时灯灭。
E.启动时序电路(按动启动按钮“START”),既将微代码写入到 E2PROM 2816的相应地址对应的单元中。
F.重复C—E步骤,将表4—2的微代码写入2816。

② 校验
A.按实验指导书上的步骤手动校验;
B.使用计算机组成原理集成软件进行校验。

附:基本模型机设计实验
实验目的
通过在模型计算机上采用微程序设计方法实现简单的指令系统来掌握微程序设计的一般方法,以及基于微程序控制器计算机的工作过程,建立计算机的整机概念。

实验步骤
(1)结合模型机的数据通路图理解模型机指令的微程序流程图及控制台的微程序流程图。
(2)结合数据通路图初步理解各微指令代码。

(3)按实验指导书连线。
(4)将模型机调试程序及微程序通过集成软件分别写入内存及控存。
(5)在集成软件环境中运行调试程序,观察每条机器指令的执行流程与设计的流程是否一致,定义的微指令功能是否实现。

实验习题
在原有指令系统的基础上,扩充一条减法指令,并重新设计一段调试程序,检查指令的功能是否实现。
实验习题解答
步骤:
(1)定义指令的格式(含操作码)及功能
(2)确定完成指令功能所需的基本操作(即指令流程)
(3)根据起始微地址形成方法(即指令代码与起始微地址的对应关系)确定该指令所对应的第一条微指令应存放的控存位置。

(4)根据直接给出下地址的方法确定其它微指令的微地址。
(5)确定微每条微指令的所对应的代码。
(6)将改变后的全部微指令代码写入控存,微指令扩充完成。

几点说明:
(1)指令对应的微程序的入口地址是由指令操作码确定的,即确定了操作码就确定了微程序的入口地址。也就是说,若该地址被其它微指令占用,必须进行微地址调整。

例:若定义的减法指令格式及功能如下:
助记符 格式
SUB addr 01010000 …
功能: R0-[addr]R0
则指令操作码01010000,则经过微地址形成电路得到的起始微地址为15(八进制),而15单元已被STA指令的微指令占用,此时必须调整。

(2)如何确定微指令的编码?
对于操作控制字段,可根据微指令的功能按数据通路图来确定,(一种简便的方法是参考原有的微指令代码作相应变化);
对于地址控制字段,先将微指令安排在空闲的控存中,然后按地址将其按序衔接。
5.5 硬布线控制器(组合逻辑型)
1基本思想
硬布线控制器是早期设计计算机控制器的一种方法。
这种方法是把控制部件看作为产生专门固定时序控制信号的逻辑电路。这种逻辑电路是一种由门电路和触发器构成的复杂树形逻辑网络,故称之为硬布线控制器。
2 硬联线控制器的结构如图:

逻辑网络的输入信号来源有三个:
(1)来自指令操码译码器的输出Im;
(2)来自执行部件的反馈信息Bj;
(3)来自时序产生器的时序信号。
逻辑网络N的输出信号就是微操作控制信号,它用来对执行部件进行控制。

3 硬联逻辑的模型机举例

下面以LDA 指令为例来说明组合逻辑控制器执行指令的过程。
LDA X 功能是将X地址存储单元的内容送入寄存器A。
设指令译码器的译码结果为LDA=1,在该指令的6个节拍中控制字是如何实现指令功能的。

T0 EP=1, LM=1
T1 LI=1, ER=1
(将LDA X 指令中的地址部分读出至IR)
T2 CP=1 (PC+1->PC)
T3 LM=1, EI=1 (X->MAR)
T4 ER=1, LA=1 ([X]->A)
T5 该节排轮空

5.6 流水线技术
对于指令的执行,可有几种控制方式:
顺序方式
重叠方式
先行控制
流水线控制方式

顺序方式指的是各条机器指令之间顺序串行的执行,即执行完一条指令后,方可取出下一条指令来执行。
这种方式控制简单,但速度慢,机器各部件的利用率低。为了加快指令的执行速度,充分利用计算机系统的硬件资源,计算机中常采用重叠方式、先行控制方式,以及流水线控制方式。
5.6.1 重叠控制
通常,一条指令的执行过程可以分为3个阶段:取指、分析、执行。假定每个阶段所需的时间为t,采用顺序方式执行n条指令所需的时间为
T=3nt

最早出现的重叠是“取指K+1”和“执行K”在时间上的重叠,称为一次重叠,这将使处理机速度有所提高,所需执行时间减少为
T=3t+(n-1) 2t =(2n+1)t

如果进一步增加重叠,使“取指K+2”、“分析K+1”和“执行K”重叠起来,称为二次重叠,则处理机速度还可以进一步提高,所需执行时间减少为
T=3t+(n-1)t=(2+n)t
重叠控制方式
5.6.2 先行控制原理
先行控制是重叠控制的一种改进方式。在重叠控制中,“执行K”和“分析K+1”重叠,如果所有指令的“分析”与“执行”的时间均相等,则重叠的流程是非常流畅的,无任何阻碍,机器的指令分析部件和执行部件功能充分地发挥,机器的速度也能显著地提高。

但是,现代计算机的指令系统很复杂,各种类型指令难于做到“分析”与“执行”时间始终相等。此时,各个阶段的控制部件就有可能出现间断等待的问题。这样,指令的分析部件和执行部件都不能连续地、流畅地工作,从而使机器的整体速度受到影响。

为了使各部件能连续地工作,则提出先行控制的方式。图6-22中“分析”和“执行”阶段之间有等待的时间间隔Δt,但它们各自的流程中却是连续的。先行控制的主要目的是使各阶段的专用控制部件不间断的工作,以提高设备的利用率及执行速度。
5.6.3 流水工作原理

流水处理技术是在重叠、先行控制方式的基础上发展起来的,它基于重叠的原理,但却是在更高程度上的重叠。

流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。

这种方式类似于现代工厂的生产流水线,在那里每隔一段时间(Δt)从流水线上流出一个产品,而生产这个产品的总时间要比Δt大得多。由于流水线上各部件并行工作,同时对多条指令进行解释执行,机器的吞吐率将大大提高。
本章小结
控制器是计算机中的重要部件,它的基本功能是控制指令的正确执行,除此以外控制器还具有对异常情况和特殊请求的检测与处理功能。
控制器控制指令执行的功能其本质上是将指令转化为与指令功能相应的微操作序列。

为了完成控制器的功能,控制器由指令部件、时序控制部件、程序状态寄存器、微操作控制信号形成部件、中断控制逻辑、控制台等组成。
根据微操作控制信号形成部件产生微操作信号的方式,控制器可分为组合逻辑型、存储逻辑型和组合逻辑与存储逻辑结合型。

时序系统提供给CPU周期(也称机器周期)所需的时序信号。控制器利用这些时序信号进行定时,有条不紊地取出指令并执行。
微程序设计技术是利用软件方法设计控制器的一门技术,具有规整性、灵活性、可维护性等一系列优点,因而在计算机中得到了广泛应用。

一段程序由若干条指令构成,每一条指令对应一段微程序,一段微程序由若干条微指令构成,一条微指令包含若干个微命令,一个微命令对应一个微操作。
微控制器由控制存储器、微指令寄存器、微地址形成电路与微地址寄存器组成。

微程序控制器的工作过程实际上就是在微程序控制器的控制下计算机执行机器指令的过程。
微指令操作控制字段的编码、微程序的寻址是微程序设计中的两个重要问题。常用微指令操作控制字段的编码方法有直接控制法、最短编码法、字段直接编码法。

微程序寻址主要涉及微程序入口地址的形成及微指令后继微地址的形成方法。

硬布线控制器(组合逻辑)的基本思想:某一微操作控制信号是指令译码输出、时序信号和状态条件的逻辑函数,然后用门电路、触发器等器件实现。

本章学习目标

理解控制器的功能,掌握控制器的组成;
了解控制器中时序系统的作用;
掌握微程序控制器的组成与工作过程;
理解微程序、指令、微程序、微指令、微命令、微操作的基本概念,掌握其相互关系。
能根据指令功能与数据通路图写出指令的执行流程;
理解常用微指令操作控制字段的编码方法及其优缺点;
理解微程序的寻址及方法;
理解硬布线控制器的基本思想;
了解流水线技术。

本章习题

1、控制器 的功能是 ( )

2、控制存储器主要用来__
A 存放数据 B 存放程序
C 存放数据和程序 D 存放微程序

3、微程序控制器中,机器指令与微指令的关系是__
A 每一条机器指令由一条微指令来执行
B 每一条机器指令由一段用微指令编成的微程序来解释执行
C 一段机器指令组成的程序可由一条微指令来执行
D 一条微指令由若干条机器指令组成

4、为确定下一条微指令的地址,通常采用断定方式,其基本思想是__
A.用程序计数器PC来产生后继微指令地址
B.用微程序计数器μPC来产生后继微指令地址
C.通过微指令顺序控制字段由设计者指定或由设计者指定的判别字段控制产生后继微指令地址
D.通过指令中指定一个专门字段来控制产生后继微指令地址

5、在CPU中跟踪指令后继地址的寄存器是__
A.主存地址寄存器 B.程序计数器 C.指令寄存器 D.状态条件寄存器

6、简要叙述控制器的组成及各部分功能。

7、简要叙述微程序控制器的组成及各部分功能。

8、简要叙述微程序控制器的工作过程。

9根据某一数据通路图(见WORD文档)写出以下指令的执行流程。
SUB addr R0-[addr]->R1

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注