组合逻辑控制器组成结构及工作原理解析

组合逻辑控制器组成结构及工作原理解析

按照控制信号产生的方式不同,控制器分为微程序控制器和组合逻辑控制器两类

微程序控制器是将全部控制信号存贮在控制存储器中。

优点:控制信号的逻辑设计、实现及改动都较容易。

缺点:产生控制信号所需的时间较长。

组合逻辑控制器,又称硬布线方案控制器,是用组合逻辑的门电路实现控制信号。

优点:产生控制信号所需的延迟时间少,对提高系统的运行速度有利。

缺点:控制信号的逻辑设计复杂,用门电路实现也较困难,尤其要变动一些设计更不方便。(见图)

一、组合逻辑控制器的组成与运行原理

1、组成: PC、IR、脉冲源和启停控制逻辑与微程序控制器相同,不同的是:

●微程序控制器中的控制存储器在组合逻辑控制器中变成时序控制信号形成部件,是用组合逻辑的门电路实现的;

●微程序控制器中的下地址形成部件在组合逻辑控制器中变成节拍发生器,是由计数器线路实现的;

●增加了指令译码器,用于标识每一条不同的指令。

2、运行原理: 依据执行过程中的操作码、当前指令所处的执行步骤等输入信号,用组合逻辑门电路直接、快速地形成并送出指令当前执行步骤要求的控制信号。

二、TEC-8教学计算机的组成与设计

1、简介: TEC-8教学计算机字长8位 ,地址总线16位(可寻址64K内存) ,控制器用组合逻辑控制器。

●运算器是Am2901(见图)

●16个通用寄存器中,R0、R1、R2和R3作为通用寄存器,其余12个作为专用寄存器

R5,R4用作16位的PC(程序计数器)

R7,R6用作16位的SP(堆栈指示器)

R9,R8用作内存读写地址AR

R11,R10用作指令转移或子程序的地址

2、指令系统概述

●指令中用到的符号:

DR:目的寄存器

SR: 源寄存器

OFFSET: 变址偏移量

DATA: 立即数

X: 一个bit位,可取值0或1

C、Z、V、S: 分别代表进位、结果为0、溢出 和结果的符号位

●指令长度:单字节或双字节指令两种

●指令的操作码:采用操作码位数逐段扩展的技术,最少4位,最多8位

●指令的分类:首先按操作数的个数来分

(1)双操作数指令Ⅰ:

格式:

格式:

操作码

0 X X X

DR

SR

已实现5条指令:ADD DR, SR ;加法指令

(使用R3~R0) SUB DR, SR ;减法指令

CMP DR, SR ;比较指令

AND DR, SR ;逻辑与指令

MOV DR, SR ;传送指令

(2)单操作数指令Ⅰ:

1 0 X X X X

DR/SR/IO

PORT地址

已实现8条指令:SHR DR ;逻辑右移指令

(使用R3~R0) SHL DR ;逻辑左移指令

PUSH DR;压栈指令

POP DR;出栈指令

CMP DR, SR ;比较指令

STO SR ;存数指令

LOD DR ;取数指令

IN I/O PORT ;输入指令

OUT I/O PORT ;输出指令

(3)单操作数指令Ⅱ:

格式:

格式:

操作码

1 1 0 0

DR INC DR; 加1指令

(4)双操作数指令Ⅱ:

格式:

操作码

1 1 0 1

DR

DATA MOVE DR, DATA; 立即数转送指令

(5)双字节指令

转移指令:JR OFFSET;无条件转移指令

JZ OFFSET;结果为0转移指令

JNZ OFFSET;结果不为0转移指令

JC OFFSET;结果有进位转移指令

JNC OFFSET ;结果无进位转移指令

操作码

格式:

1 1 1 0

X X X X

OFFSET/IO PORT/DATA

(6)无操作数指令:已实现7条

PUSHF ;压栈指令

POPF ;出栈指令

STC ;进位位C置1

CLC ;进位位C置0

RET ;返回主程序

JMP ;转移指令,转移地址由R11,R10给出

CALL ;调用子程序指令,转移地址由R11,R10给出

格式:

操作码

1 1 1 1

X X X X

指令的执行步骤:(对于8位字长教学实验机)

读指令:地址寄存器低位(R8) ←指令的低位地址(R4)

地址寄存器高位(R9) ←指令的高位地址(R5)

修改指令地址 PC←PC+1

读内存 ,指令寄存器←读出的指令

分析指令

执行指令:

●通用寄存器之间的运算和传送,可一步完成

●读写内存或读写外设操作,通常要三步完成,前两步用于向地址寄存器送入低、高位各8位地址,第三步完成内存的读、写操作。

注:一条指令可仅在通用寄存器之间操作,可仅包括读写内存或外设,或它们一次、多次的不同的组合,因此,不同指令的执行步骤和操作内容是不一样的。

判中断请求:有中断请求,转去响应中断并处理;

无中断请求,执行下一条指令。

其次按指令的功能来分:

A组指令: ADD,SUB,CMP,AND,MOV,SHR,SHL,INC,IN,OUT,STC,CLC 共12条 这类指令主要在CPU内通用寄存器间传送,在取指令之后一步完成。

B组指令:

LOD,STO,PUSH,POP,PUSHF,POPF,MVD

这类指令完成的是一次内存读、写,在取指令之后可三步完成。前两步用于向地址寄存器送入低、高位各8位地址,第三步完成内存的读、写操作。

C组指令:

CALL, RET, JMP, JR, JNZ, JZ, JNC, JC

这类指令完成的是与指令转移有关的操作,相对转移指令有5条: JR, JNZ, JZ, JNC, JC

转移地址=当前指令地址+指令第二字节中的偏移量

其中JNZ, JZ, JNC, JC属于条件转移指令,条件成立时转移要四步完成:前两步送读偏移量的内存地址,后两步读出偏移量计算转移地址送PC;条件不成立顺序执行,只须两步。

CALL , RET两条指令比较复杂,

为恢复或保存断点需两次读写内存,共需六步,还用两步为CALL指令给出子程序的入口地址。

节拍发生器

(1)作用:是用多位触发器的输出信号的不同组合状态,来标识每条指令的执行步骤。

(2)触发器的个数的确定:触发器输出能组合出的状态数应等于或大于全部指令执行状态的数目。

(3)为指令的执行状态分配编码:

原则:从一个状态变到另一状态时,状态发生变化的触发器的数目应尽量少,即4个二进制位中只变一个。

(4)写出每位触发器状态变化的逻辑表达式:

方法:状态用四位编码表示。

①当从一个状态转换到另一个状态时,若一位触发器的状态由0变为1或仍保持1时,该情形要写进表达式中。

②当状态变化一定会发生时(不受任何条件限制),由原状态的4位编码组成一个条件写进表达式中。

③当状态变化是在某些条件成立时才会出现,则由原状态的4位编码再“与”上这些条件后写进表达式中。