当前位置:首页 >> 其它课程 >>

计算机组成与体系结构 第6章 计算机的控制器部件


第6章
计算机的控制器部件

本章主要内容
? 控制器的功能组成与指令执行步骤
? 微程序控制器部件 ? 组合逻辑控制器部件

2

控制器的功能与组成
1. 控制器的功能:
器 指令步骤标记线路 提供控制信号的部件 控制执行指令
控制各部件协调运行,即为各

部件提供控制信号。

2. 控制器的组成: 程序计数器
分类 : 微程序的控制器 硬布线的控制器

指令寄存

3

控制器的功能
计算机的功能是执行程序 程序是依次排列起来的指令代码 控制器的功能就在于: 正确地分步完成每一条指令规定的功能, 正确且自动地连续执行指令; 再进一步说,就是向计算机各功能部件提供 协调运行每一个步骤所需要的控制信号。
4

控制器的组成
①程序计数器PC:存放指令地址,有+1或接收新值功能。 ②指令寄存器IR:存放指令内容:操作码与操作数地址。 主脉冲源与启停控制线路,按需要给出主脉冲信号。 ③指令执行步骤标记线路: 指明每条指令的执行步骤。 ④控制信号记忆或产生线路:给出计算机各功能部件部件协同运 行所需要的控制信号。 各部件包括 运算器部件 也包括 控制器部件 设计中的难点,在于解决对运算器、控制器的控制
5

主存储器部件

总线及输入/输出接口(输入/输出设备)

控制器的组成

6

控制信号提供方法
? 生成法
? 将操作码和微操作序号作为输入,写出控制信

号和下一微操作序号的逻辑表达式,然后,用 相应的逻辑器件实现。 ? 组合逻辑控制器,也称硬布线控制器

? 查表法
? 将每一操作码的每个微操作对应的全部控制信

号和下一操作步骤事先存储在控制存储器中, 需要的时候从控存中读出。 ? 微程序控制器
7

主振

时序控制

控制条件
译码

信号
时 序 启停
数据总线 控制总线

组合逻辑 方案的 控制器
PC

形成部件
….

IR

控制器信号

地址总线
输出 设备 输入 设备 主 存

地 址 寄 存 器 械

运算器
部件
8

主振
控制条件

控制
下 地 址

映射
IR

微程序 方案的 控制器
PC

存储器
….

启停
数据总线 控制总线

微指令寄存器

地址总线
输出 设备 输入 设备 主 存

地 址 寄 存 器 械

运算器
部件
9

微程序控制器基本原理
转取操作数或执行指令

转取执行指令或中断

转取执行指令或中断

? ?
转执行指令

取指令微程序段 取操作数微程序段

?
转取指令

中断处理微程序段 开始执行指令

? ? ?

AND指令微程序段

ADD指令微程序段

10

微程序控制器指令执行流程
? 读当前指令到IR,且PC=PC+1; ? 根据指令的操作码,得到该指令的微程序 入口地址; ? 读取该指令的微指令,并送到相应的计算 机部件,完成微操作,同时,得到下一微 指令的地址; ? 重复上一步,直到本条指令执行完毕; ? 判中断标志,如有,则进行中断处理; ? 转取指令,执行下一条指令
11

微程序控制器的运行原理
? 每条指令一个执行步骤用到的全体控制信号 组成一微指令 ? 每条指令可以包括一到多个微操作 ? 用多条微指令解释每条指令的整个执行过程 ? 全部微指令的集合叫做微程序 ? 执行一条微指令所用的时间被称为一个微周 期。 ? 微指令的格式和内容:
? 下地址字段

控制命令字段
12

微程序控制器组成

clock

13

微程序控制器设计
? 定序器
? 根据指令操作码、指令当前步骤以及条件码,

确定下一步骤的微程序地址

? 微指令
? 给出当前指令的当前步骤要完成指令规定的功

能,各功能部件所需要的控制信号。对控制器 本身而言,则是要给出下一步骤的微程序地址。 ? 水平 ? 垂直
14

下地址
? 顺序执行下一条微指令 ? 无条件转移到某条微指令 ? 根据微指令的某一状态结果,选择顺序执 行或转向某一地址 ? 微子程序调用,要使用到微堆栈 ? 多路转移 ? 根据指令操作码,转移到指令的入口地址
15

定序器组成

16

微指令设计
? 微指令字长
? 缩短控制存储器的字长

? 微程序的长度
? 控制存储器的容量

? 提高性能
? 提高整个计算机指令执行性能

17

微指令设计
? 直接控制法
? 直接给出各部件需要的控制信号(0或1)

? 字段直接编译法
? 将某些互斥信号进行编码,由译码器给出这些

信号,可缩短微指令字长

? 垂直型微指令
? 采用对微操作码译码的方式给出控制信号,可

进一步缩短微指令字长
18

微程序控制器特点
? 采用ROM存储控制信号的方式,可扩展性 好 ? 兼容性实现比较容易 ? 容易实现复杂的指令系统 ? 性能比较低 ? 并行性不好 ? 主要用在CISC中
19

组合逻辑控制器
? 采用逻辑电路直接提供全部控制信号 ? 输入
? ? ? ?

操作码 指令状态字 指令步骤编码(节拍) 外部信号(Reset等)

? 输出
? 全部控制信号

? 主要解决的问题
? 节拍转换 ? 控制信号生成
20

节拍发生器
? ? ? ? ? 控制每条指令的执行步骤 用触发器实现 有限状态自动机 用触发器状态表示当前执行步骤 状态自动机自动转入下一状态

21

节拍发生器设计举例
我们假定某机器的指令系统有两条指令A和B,其中A指令需要4个步骤完成, 而B指令只需要3个步骤。为此,节拍发生器需要有2个触发器,用它形成的4 个状态来标记不同的步骤。如给A指令分配的节拍状态是00→01→10→11,B 指令分配的节拍状态为00→10→11。 T0 0 0 0 1 1 1 1 T1 0 0 1 0 0 1 1 A 1 0 1 1 0 1 0 B 0 1 0 0 1 0 1 T0’ 0 1 1 1 1 0 0 T1’ 1 0 0 1 1 0 0

T0’=/T0*/T1*/A*B+/T0*T1*A*/B+T0*/T1 T1’=/T0*/T1*A*/B+T0*/T1
22

控制信号生成
? 直接利用逻辑电路生成控制信号
? 大规模集成电路 ? 现场可编程器件

? 输入
? 节拍状态 ? 条件码

? 指令操作码

? 输出
? 控制信号
23

组合逻辑控制器特点
? 直接用逻辑电路实现,用节拍标记指令步 骤,性能良好 ? 可扩展性差,兼容性不好 ? 适合实现比较精简的指令系统 ? 较容易实现并行 ? 常用于实现RISC

24

指令的执行过程
冯. 诺依曼 结构的计算机 即存储程序的计算机,设置内存,存放程序 和数据,在程序运行之前存入。 执行程序: 正确从程序首地址开始; 正确分步执行每一条指令, 并形成下条待执行指令的地址; 正确并自动地连续执行指令, 直到程序的最后一条指令。
25

每条指令的执行步骤
—读取指令
是一次读 内存操作 指令地址送入主存地址寄存器 公共操作 读主存,读出内容送入指定的寄存器

—分析指令 —按指令规定内容执行指令
R_R类型指令 读写内存类型指令 输入输出类型指令 其他类型指令 不同指令的操作步骤数, 和具体操作内容差异很大,

是每一条指令的特定操作

可能执行 一次或多次

—检查有无中断请求
若有,则响应中断并转中断处理 若无,则转入下一条指令的执行过程

形 成 下 一 条 指 令 地 址

公共操作

26

典型指令的执行过程举例
2000 0001 ADD r0, r1 ; 加法指令 2001 0790 MVRR r9, r0 ; 传送指令 2002 E709 STRA [2007] , r9 ; 写内存指令, 这是一条双字指令, 2007 ; 第二个字中的 807 是直接地址 2004 8280 IN 80 ; 读串行口数据到R0低8位 2005 44FA JRC 2000 ; 若C为1转移到2000,否则顺序执行 2006 8F00 RET ; 子程序返回指令 其他一些指令与这里的几条指令有相当多的共同特性,属于 同一组的指令的执行步骤非常类似。

27

加法指令
读取指令 ① ② 执行指令 ③

ADD R0, R1

AR ? PC(注) 读主存,IR ? 读出内容 PC ? PC + 1

ALU ? R0 ALU ? R1 执行 + R0 ? ALU,记忆结果特征

形 成 下 条 指 令 地 址

结束,判中断
28

MVRR R9, R0
读取指令 ① ② AR ? PC(注) 读主存,IR ? 读出内容 PC ? PC + 1
ALU ? 0 ALU ? R0 执行 + R9 ? ALU
形 成 下 条 指 令 地 址

执行指令 ③

结束,判中断
29

STRA [2007] , R9
(地址 2007 存在指令的第二个字中)

读取指令

① ② ③
④ ⑤

AR ? PC 读主存,IR ? 读出内容 PC ? PC + 1 AR ? PC , PC ? PC+ 1 读主存,AR ? 读出内容
ALU ? 0 , ALU ? R9 ,+ 写主存, 总线 ? ALU ,

执行指令

形 成 下 条 指 令 地 址

结束,判中断
30

输入指令
读取指令 ① ②

IN 80
形 成 下 条 指 令 地 址 形 成 下 条 指 令 地 址

AR ? PC(注) 读主存,IR ? 读出内容 PC ? PC + 1

执行指令 ③ ④

AR ? I/O Port 读外设,ALU ? 读出数据 ALU ? 0 执行 + R0 ? ALU

结束,判中断
31

相对转移指令
读取指令 ① ②

JRC 2000
形 成 下 条 指 令 地 址

AR ? PC(注) 读主存,IR ? 读出内容 PC ? PC + 1 若 c = 1 则: ALU ? PC ALU ? offset(IR低字节) 二者相加,结果送PC 否则,PC 不接收二者之和

执行指令



结束,判中断

32

子程序返回指令 RET
读取指令 ① ② AR ? PC 读主存,IR ? 读出内容 PC ? PC + 1

执行指令



AR ? SP SP ? SP + 1 ④ 读主存, PC?读出内容

形 成 下 条 指 令 地 址

结束,判中断
33

/Reset
PC ? 0

AR ? PC PC?PC+1

A组

寄存器之间 运算与传送

B组

AR?地址 IR?(AR)
B、C、D组

读、写内存 或 I/O 接口
D组

C组

读、写内存 AR?地址

读、写内存 PC?地址
34

16 位机的基本指令、扩展指令执行流程图

TEC-2000 教学机系统的组成
计算机

终端
PC机

串 行 接 口

接 内口 存实 主存储器 扩 验 硬布线 控制器 (8 / 16位) 展 中 实断 验实 按键 开关 指示灯 验
35

微程序 控制器

运算器 (8 / 16 位)

电源
+5V

当前微指令地址

寄存器 控制存储器
微指令 下地址部件 /CC
/OE

几个寄存器 送内部总线 的接收允许 的选择控制

.

...

.

内存与I/O片选 信号及读写命令

.. ..

送入/出设备 串行入/出 2

2片译码器
微指令寄存器
下地址 字段 /OE

3片译码器
3 4 内存 I/O端口 3位地址 高位地址

电平转换线路 时钟分频线路
CLK 2

扩展实验 串行接口芯片
时钟信号

+5V 直流电源
I/O 片选 Reset 读写命令

3

微指令地址 映射部件

控制命 令字段

条件码

{
PC

DC23~20 DC13~10 /MIO REQ /WE A3~A0 B3~B0 I8~I0 SST2~SST0 SCI1~SCI0 SSH1~SSH0

串行接口 Intel 8251芯片 串行入/出
8 低8位 地址总线 8位 数据总线 并行 数据 入/出

其他通用

送译码电路

ARL 低位地址
寄存器
/OE

4

C_/D

I/O 接口

晶 振
CLK

SCC

送地址寄存器 16

Cout

程序计数器

IR
指令寄存器 8位 8位

(在运算器芯片内) 移位信号
转移地址

8位 运算器 部件

Cin 移位 信号

8位 内存储器 部件
高位 地址总线 5 8位 数据总线

片选

/OE
读写命令

扩展实验

启 停 控 制
CK

+1 8位内部总线IB SCI SSH
Cin

3

ARH
高位地址 寄存器

/INT

节拍 发 生 器

时序 控制信号 形成部件

/OE

...

移位信号 ... 进位信号
SST

(接地) /OE

INTP
片选 读写命令 /OE

CZVS

.

状态位 触发器

移位 信号 Cy Zr Ov F

8位运算器 部件

Cin

移位信号 8位内部总线IB

移位 信号
来自八位开关

8位 内存储器 部件

INTS

中 断 实 验 线 路

3个无锁按键(中断源) 来自八位开关

TEC2000 总体框架

36

控制器应提供的控制信号
四 个
指 示 灯 显 示 状 态 各 用

Y15~Y0 用16个指示灯显示结果 SST C Z V S
Gal 20V8

SCI

Cy F=0 Over F15

Cin

运 算 器 部 件 (4 片 Am2901)

Gal 20V8

RAM15 Q15

RAM0 Q0

D15~D0 用16个数据开关提供输入数据 I8~6 I5~3 I2~0 A3~0 B3~0

SSH

I8~6 I5~3 I2~0 SST

SCI SSH A口

B口

通过24位微型开关 提供控制信号

37

(1)对运算器的控制
24位控制信号,同24位微型开关内容,
A3~A0,B3~B0,I8~I6, I5~I3, I2~I0 SST2~0, SSH1~0, SCI1~0

寄存器分配:
R4:SP R5: PC

约定用法:R0:I/O指令约定使用,也是通用累加器

38

(2)读写主存储器或I/O接口
从学习指令执行步骤考虑,理解对主存储器读写的控制, 分成两步: 1. 传送主存地址,以选择被读写的存储单元; 2. 给出读写命令, 读操作时,把读出数据保存起来, 写操作时,还要给出写入的数据。 从学习指令执行步骤考虑,理解对接口电路读写的控制, 分成两步: 1. 传送IO端口地址,以选择被读写的芯片; 2. 给出读写命令, 读操作时,把读出数据保存起来, 写操作时,还要给出写入的数据。
39

对内存和 I/O接口的读写
/MIO(0:有内存或串口读写,1:无) REQ (0:读写内存, 1:读写串行口) /WE (0:写操作, 1:读操作)
0 0 0 写内存 0 0 1 读内存 0 1 0 写串口 0 1 1 读串口 1 XX 无内存和串口的读写操作

40

(3)对总线的控制
总线是用于连接计算机各个功能部件的线路和 连接线,通常由具有三态输出功能的器件构成,以 便用分时地方式,在不同时刻把不同的数据发送到 总线上,任何时刻仅能有一个数据发送到总线上; 总线上的数据可以被送到需要接收数据的部件 或者线路,多个线路可以同时接收同一个来源数据。 计算机中总要使用 3 种类型的总线: 数据总线,地址总线,控制总线

41

(4)对内部总线和特定寄存器的控制
选择送内部总线的信息来源 DC12~0 信号名称 注释 000 001 010


控制指定寄存器接收信息 DC22~0 信号名称 注释 000 001 010 011 100 NC /GIR
不用 指令寄存器

/SWTOIB 来自开关 /RTOIB /ETOIB /FTOIB /STOIB /INTVH /INTVL
ALU的输出 符号扩展16 状态位输出 符号扩展8位 中断向量的 高、低 8 位

/GARL 地址寄存器低位 /GARH 地址寄存器高位 /INTR
取原中断优先级

011 100 101 110

101
110 110

/INTN
/EI /DI

置新中断优先级
开中断 关中断
42

110

NC

不用

本章主要内容
? 控制器的功能组成与指令执行步骤
? 微程序控制器部件 ? 组合逻辑控制器部件

43

微程序控制器组成与设计

(1)微程序控制器的运行原理 (2)教学计算机的微程序控制器的实际组成 (3)微程序解释的基本指令执行流程图 (4)微指令的格式设计 (5)指令执行流程举例与说明

44

(1) 微程序控制器的运行原理
每条指令一个执行步骤用到的全体控制信号组成一微指令 每条微指令可以包括一到多个微操作。 用多条微指令(一个微程序)解释每条指令的执行过程。 全部的微程序有机地组合在一起,被保在控制存储器中。 执行一条微指令所用的时间被称为一个微周期。 微指令的格式和内容: 一个微周期 下地址字段 控制命令字段 接 收 微 指 令

读与执行微指令的 并行流水技术

执行第 i条微指令 形成第 i+1条微指令地址 读出第 i+1条微指令

45

下地址字段的内容
得到下地址的方法: 在微指令下地址 字段中表示清楚: 1. 由指令操作码得到 使用哪种方法, 2. 微指令顺序执行 哪个(些)判断条件, 3. 微指令必转或条件转移 要用的有关地址等, 并用专门电路完成必 多路微地址转移 要支持和处理, 微指令的下地址是微 4. 微子程序调用和返回 程序设计中要重点解 5. 按次数循环一段微程序 决的问题之一, 技术、技巧性强, 6. 其他:如特定入口微地址 应学得好些。
在教学计算机中,解决下地址使用了 Am2910 器件
46

Am2910器件
装数 减量 保持

D11~D0 /RLD 寄存器/计数器 R/C 零检 测
出栈/入栈 保持/清零

CP

/FULL 微堆桟指针 ?SP

R为零

/CC /CCEN 命 令 译 码 器

5字 * 12位 微堆桟 F 微程序计数 器 ?PC
增 量 器 /OE

I3~I0

清零 选择

D R F ?PC 多路选择器

/PL /MAP /VECT Y11~Y0

CI
47

完成 功能

R/C 内容

R/C 使能 操作 信号

/CC=高 /CC=低 Y输出 堆栈 Y输出 堆栈

0 1 2 3 4 6
8

初始化 条件转微子 功能分支 条件微转移 入栈与装数 读手拨开关
R/C 非零循环 非零 零

/PL /PL /MAP /PL 注1 /PL /VECT
减1 /PL /PL /PL /PL 减1 /PL /PL 零

0 清除 0 清除 ? PC D 压入 D D ? PC D ? PC 压入 ? PC 压入 ? PC D
F ?PC ? PC ? PC F D 弹出 弹出 F ?PC F ? PC ? PC 弹出 ? PC
48 弹出

弹出 弹出

10 微子返回 14 顺序执行 15 三路转移 非零

微命令字段的编码译码方法
1.直接控制法
直接用微指令字的一位作一个控制信号则简单且速度快, 但会使微指令字变得很长。

2.字段直接编译法
把互斥的命令分在一组加以编码,经译码器给出命令, 速度会稍慢,但可大大减短微指令字长度,确保互斥。

3.字段间接编译法
是对直接译码的的一种改进,可进一步缩短微指令字长 度,即一个字段的某些微命令还受另一字段的制约。

4.常数源字段
微指令中分配几位,用于给出特定用途的有关数值。
49

下地址 8个灯 CI3~0 19 17 4 2 40 38 36 34 14 D7 ~ D0 31 /CC I3~I0 CP AM2910 /PL 6 /MAP Y7 ~ Y0 20 18 3 1 39 37 35 33 7 89 11 12 19 16 15 11 1 CLK /OE 12 9 6 5 2 19 16 15 12 11

CI SCC 8个灯 SCC3~0

当前地址 8个灯

(2) 微程序控制器组成
2~5 21 20

9 6 5 2 19 16 15 12 9 6 5 2 11 Q7~Q0 CLK

Q7~Q0

Q7~Q0 CLK /CLR

374
D7~D0

273
D7~D0

377

1

1 GAL20V8 13
23 18~16 14 6~10 C Z /INT S /Reset IRH4~IRH0

D7~D0 14 13 8 7 4 3

18 17 14

13 8 7 4 3

18 17 14 CI3~0

13 8 7 4 3 18 17 SCC3~0

下地址
22 19~15 13~11 /OE D7 ~ D0 20 /CE MAPROM A7 ~ A0 3~10
VCC A8 GND

/MIO REQ /WE I2~I0 18~16 13~11 D6~D0

20

19~15 13~11 D7~D0 /CE MPROM1 A8 A7 ~ A0 3~10 25

20

19~15 13~11 D7~D0 /CE MPROM2 A8 A7 ~ A0 25 3~10

. 20 /CE .

MPROM3

A8 A7 ~ A0 25 3~10

.

IRH7 ~ IRH0

.
25 3~10 A8 A7 ~ A0 20 /CE MPROM5 D7~D0 19~15 13~11 B3~B0 A3~A0 20

.
25 3~10 A8 A7 ~ A0 /CE MPROM6 D7~D0 19~15 13~11 SST SSH SCI 20

25

.

20

3~10 A8 A7 ~ A0 D7~D0 19~15 13~11

25 A8

3~10 A7 ~ A0

/CE MPROM4

/CE MPROM7 D7~D0 19~15 13~11 DC23~20 DC13~10

SA I8~I6

SB I5~I3

接 插 件 连 接
SA I8~I6 IRH7~IRH0 SB I5~I3 /MIO REQ 1 13 34 /WE I2~I0 5789 1 13 A3~A0 2~5 B3~B0 6~9 1 SST SCI 3~5 SSH 6~9 1 13 DC2 2~5 DC1 6~9 C Z /INT S /Reset

.

1 13

CLK GAL1 /OE 15~18 19~22

2~5 6~9

CLK GAL2 /OE 16~18 20 ~ 22

CLK CLK GAL3 GAL5 /OE /OE 15~18 19~22 13 16~18 19~22 SST SCI SSH IRL7~IRL4

CLK GAL7 /OE 15~18 19~22 DC2 DC1 IRL7~IRL0

CK /GAL_OE C_/M SA I8~I6 SB I5~I3

/MIO REQ /WE I2~I0 IRL3~IRL0 2~5

IRH7~IRH0 18 16 14 12 9753 1A1~1A4 2A1~2A4

7~10

7~10

2~5

IRHDRV 244
NewIns MicroP

GAL4
15 16 21 22

GAL6
15 16 21 22

1Y1~1Y4 2Y1~2Y4 2468 11 13 15 17 19 16 15 12 9 6 5 2 D7~D0 IRH 377 CLK /OE Q7~Q0 18 17 14 13 8743 IBH7~IBH0

18 16 14 12 9753 1A1~1A4 2A1~2A4 1 1G 19 2 G IRLDRV 244 / ETOIB 1Y1~1Y4 2Y1~2Y4 2468 11 13 15 17 19 16 15 12 9 6 5 2 D7~D0 CLK IRL 377 /OE Q7~Q0 18 17 14 13 8743

这些插针在微程序时 应将每排右边两个短接

...... ......
两个一排/列的插针 微程序时不要短接

A3~A0 11 CK1 1 /GIR

B3~B0

11 CK1 /GIR 1

IBL7~IBL0

16位微程序控制器线路逻辑图

56位的微指令字长, 微下地址字段16位, 控制命令字段40位, 7 片 28C64 组成控存。 1 片 28C65,从指令操 作码产生微地址, 1 片 374 存 8 位下地址, 1 片 273 存 8 位条件码, 1 片377存8位现微地址。 1 片Am2910给出下一条 微指令地址, 1 片GAL 按判断条件产 生微指令转移信号/CC; 5 片GAL用作为 5 片 8位 的 D 触发器的寄存器, 2 片GAL 实现两个4 位的 2 选 1 芯片功能。 8 或 16位的指令寄存器。
50

微程序控制器
微指令转移 的控制条件

B 口二选一

A 口二选一

IR.DR

IR.SR

0MRW SA I8~6 B口 0SST DC2 0 I2~0 SB I5~3 A口 SSHSCI DC1

SCC Gal /SCC

微下 地址

CI SCC 3~0 3~0

/G

微指令寄存器
CP

Am2910

MAPROM

控制存储器( ROM)
读命令

指令操作码
1. 确定指令功能与格式 2. 划分指令执行步骤 3.分配微指令地址 4. 设计微指令内容 5. 把新微指令写入控存 6. 需要时修改 MAPROM 和 SCC Gal等 7. 调试并且运行

51

TEC-2000 教学机系统的组成
计算机

终端
PC机

串 行 接 口

微程序 /硬布线 控制器

电源
运算器 (16 位)
+5V

主存储器 (16位) 按键 室开关 指示灯

中 内断 存实 扩验 展接 实口 验实 验
52

每条指令的执行步骤
—读取指令
是一次读 内存操作 指令地址 (在程序计数器PC中) 送入主存地址寄存器 读主存,读出内容送入指令寄存器 IR 公共操作

—分析指令 —按指令规定内容执行指令
R_R类型指令 读写内存类型指令 输入输出类型指令 其他类型指令 可能执行 不同指令的操作步骤数, 和具体操作内容差异很大, 一次或多次

是每一条指令的特定操作

可以复合

—检查有无中断请求
若有,则响应中断并转中断处理 若无,则转入下一条指令的执行过程 公共操作

形 成 下 一 条 指 令 地 址

53

/Reset
PC ? 0 AR ? PC PC?PC+1
A组

寄存器之间 运算与传送

B组

IR?(AR) AR?地址 /MAP
B、C、D组

读、写内存 或 I/O 接口
D组

C组

读、写内存 AR?地址

读、写内存 PC?地址
54

(3) 基本指令、扩展指令执行流程图

00

0→PC、关中断
01

加电启动,按RESET按钮

PC→AR、PC+1→PC
02 31 04 05 06 07 A组 08 09 0A 0B 0C 0D 0E 0F 10 转移 11 DR+SR→DR DR-SR→DR DR and SR→DR DR or SR→DR DR xor SR→DR DR-SR DR and SR SR→DR DR+1→DR DR-1→DR SHL DR SHR DR
判断是否转移

加电启动时, 执行 0?PC
PC→AR、PC+1→PC 3A
伪中断处理,空操作

MEM→IR

接下来的两步, 完成取指操作
按指令操作码, 读出相应微指令 按指令具体功能, 再分别用 1、2、 3、4 步完成不同 指令组的中各条 指令的执行过程 最后检查中断请 求信号,有请求 时则响应中断, 否则开始下一条 指令的执行过程
55

03

/MAP

30

有中断 无中断

STR→Q、判中断

B、D组

不转移

PC+OFFSET→PC B组 R0→IO IO→R0 FLAG→MEM MEM→FLAG SR→MEM MEM→DR MEM→Q MEM→PC

PORT→AR 12 15 SP-1→SP、AR 17 SP→AR、SP+1→SP DR→AR 19 SR→AR 1B 1D PC→AR、PC+1→PC 1E PC→AR、PC+1→PC 1F PC→AR、PC+1→PC 23 SP→AR、SP+1→SP

13 14 16 PC→MEM、Q→PC 22 18 1A 1C D组 20 SP-1→SP、AR 21 24

(2) 16位机微程序基本指令流程框图

(4)TEC-2000 教学机微指令格式设计
微指令的下地址字段 分成 3 个子字段,总共使用17位码 (微指令中用16位)。 4位 1位 8位 4位 微下地址 2910的命令码 微转移条件

9 位微下地址字段用于直接给出下一条微指令的地址, 常用 8 位, 使用微指令字中最高8位编码 。
最高一位用于扩展功能,单独接线。 4 位的命令码,用于选择Am2910的16个命令, 如前一页 的表格内容所示。 4 位的微转移条件给出微指令转移所依据的条件,与教 学机具体设计有关。
56

控制命令字段
给出计算机各功能部件协同运行所需要的控制信号 划分成若干字段,分别用于控制各部件

控制运算器部件
如:运算功能,数据来源,结果处理等

控制总线 主存 入出接口(设备)
如: 指出是主存读、写还是入出设备读、写 把什么数据送到有关总线等

控制控制器部件 (下地址字段)
主要是正确给出下条微指令的地址
57

为每一条微指令分配微地址

需要为每一条微指令在控存中分配一个 合适的地址,这是合理地组织微程序的重要 工作; 1. 首先确定微指令中下地址字段的组成; 2. 再按每一条微指令在控存中的位置, 来安排下地址字段各部分的编码, 这与控制器的 具体线路与方案 有关。

58

微指令控制信号字段编码
为每一条微指令各项微操作确定 其所要求的控制信号 如: 使 IR,AR 等寄存器接收的信号 控制 PC 增量和接收的信号 读写主存,读写外设的信号 控制运算器操作的信号 等 这要看被控制的具体对象的具体要求
59

(5) 指令执行流程举例
下址 CI3~0 SCC3~0 0MRW 0 I2~0

ADD DR, SR IN IO-PORT
B口

MVRR DR, SR CALA ADR
DC2 DC1

SA I8~6 SB I5~3

A口 0 SST SSH SCI

00 00 00 30

E E 2 3

0 0 0 0

4 1 4 4

3 0 0 1

2 1 1 B

0 0 0 8

5 0 0 0

5 0 0 0

0 0 0 1

1 0 0 0

3 1 0 0

0 0 0 0

30 14 30 00 00 00 30

3 3 3 E E E 3

0 6 0 0 0 0 0

4 4 3 4 1 4 0

4 7 7 3 7 3 2

B 1 3 2 0 3 2

8 0 0 0 0 1 0

0 0 0 5 0 4 5

0 0 0 5 0 0 5

0 0 0 0 0 0 0

0 0 0 1 0 0 0

0 3 0 3 0 3 0

0 2 0 0 0 0 60 1

指令执行流程举例
下址 CI3~0 SCC3~0 0MRW 0 I2~0

ADD DR, SR IN IO-PORT
SA I8~6 SB I5~3

MVRR DR, SR CALA ADR
0 SST SSH SCI DC2 DC1

B口

A口

00 00 00

E E 2

0 0 0

4 1 4

3 0 0

2 1 1

0 0 0

5 0 0

5 0 0

0 0 0

1 0 0

3 1 0

0 0 0

第 1 条微指令和第 2 条微指令用于完成读取指令,具体操作 功能是: PC?AR ,PC+1?PC;PC 是 R5,A口 和 B口 均选5, B口内容+1 送 B口;输出A口的内容送AR寄存器。读主存, 读 出内容? IR ; 微指令都是顺序执行,故 2910选 14# 命令。 第 3 条微指令按读出的指令的操作码,形成相应微指令的地 址,读出该条微指令并将其写入微指令寄存器, 2910选 2# 命令, 控制运算器的 I8~I6 选 001 码,保证运算器的各寄存器内容不变 化。 无存储器和IO读写,故/MIO REQ /WE 选 100 码。 61

指令执行流程举例
下址 CI3~0 SCC3~0 0MRW 0 I2~0

ADD DR, SR IN IO-PORT
SA I8~6 SB I5~3

MVRR DR, SR CALA ADR
DC2 DC1

B口

A口 0 SST SSH SCI

00 00 00 30 30

E E 2 3 3

0 0 0 0 0

4 1 4 4 4

3 0 0 1 4

2 1 1 B B

0 0 0 8 8

5 0 0 0 0

5 0 0 0 0

0 0 0 1 0

1 0 0 0 0

3 1 0 0 0

0 0 0 0 0

第 3 条微指令和第 4 条微指令 用于完成两个累加器之间的 相加和传送操作。具体操作是:2 累加器相加,DR+SR?DR, A口和B口 编码来自指令寄存器,故SA 和 SB都给 1 值;下微指 令转判中断请求, 故 2910选 3# 命令且 SCC 为 0000, 必转 30。

第 4 条微指令,完成两个累加器之间的数据传送,累加器 SR的内容和 0相加,存入DR寄存器中,不保存标志位的值,故 62 SST为000,无存储器和 IO读写。这两条微指令内容有些类似。

指令执行流程举例
下址 CI3~0 SCC3~0 DC1 0MRW 0 I2~0

ADD DR, SR IN IO-PORT
SA I8~6 SB I5~3

MVRR DR, SR CALA ADR
SSH SCI DC2

B口

A口 0 SST

14 30

3 3

6 0

4 3

7 7

1 3

0 0

0 0

0 0

0 0

0 0

3 0

2 0

第 5、6 两条微指令完成读串行接口,具体操作是:先送 IO 端口地址( 在 IR 的低 8位)到地址寄存器AR,DC1 为 2 选 IR 的低 8位送内部总线,经 ALU ( 送出 D+0 )到 AR (DC2 为 3 是 AR 接收);IN 指令时转14# 微指令(下地址 3 个字段为 14 3 6); 下一微指令完成读串口输入到内部总线,把D+0 送到 ALU并 写进 R0( B 口选 0000);转判中断请求, 故 CI 选 3# 且 SCC 为 0000, 必转 30。

63

指令执行流程举例
下址 CI3~0 SCC3~0 DC1 0MRW 0 I2~0

ADD DR, SR IN IO-PORT
SA I8~6 SB I5~3

MVRR DR, SR CALA ADR
DC2

B口

A口 0 SST SSH SCI

00 00 00 30

E E E 3

0 0 0 0

4 1 4 0

3 7 3 2

2 0 3 2

0 0 1 0

5 0 4 5

5 0 0 5

0 0 0 0

1 0 0 0

3 0 3 0

0 0 0 1

后 4 条微指令之间顺序执行,前 3 条的 CI 都是 E,依次完 成:1. PC?AR,PC+1? PC;(控制命令同读取指令的第1步) ; 2. 读内存 (MRW=001) 送 Q (D+0 ?Q) (子程序入口); 3. 修改堆栈指针并送AR, SP-1 ?SP,AR;SP 是 R4,即R4 的内容-1 ? R4 和 AR ( DC2 为 3 是 AR 接收); 4. 写断点( PC的内容)到堆栈 , 即 A 口指定的寄存器 (R5) 的内容经数据总线送到内存并写入;子程序的入口地址 (在 Q 中) (Q的内容+0)送入 PC(B 口指定 R5)。下地址控制完成转向 64 判中断请求的微指令的地址 30 处 。

教学计算机的微程序控制器
信息流图示部分
典型指令的执行过程举例: 2000 0001 ADD r0, r1 2001 0790 MVRR r9, r0 2002 8800 MVRD r0, 2100 2100 2004 8309 STRR [R0], R9 (写内存) 2005 8280 IN 80 (读串行口) 2006 44FB JRC, 2002 2007 8F00 RET
65

运算器
4275
C Z V S

控制器
程序 计数器

ALU
42 75 3041

+

乘 商 寄 存 器

1234 6688

2000 2001
PC AR
地址寄存器 2000

控制 存储器
微指令寄存器

主振 脉冲 微程序 定序器 映射

操作数 地址

寄存器组
R9

指令寄存器 0001 操作码

.
用于运算器

IR

下地址字段内容

数据总线 地址总线 2000
00001 001 0790 8800 2100 8309 8280 44FB 8F00

控制总线 ADD R0,R1

接口
输入/出设备
主存储器

2007

AR ?PC PC ? PC+1 读内存,IR?读出内容 66 R0 ? R0 + R1

运算器
4275
C Z V S

控制器
程序 计数器

主振

脉冲

ALU 4725 1234 6688

+ 0

乘 商 寄 存 器

2001 2002
PC AR
地址寄存器 2001

控制 存储器
微指令寄存器

微程序 定序器 映射

操作数 地址

寄存器组
R9 4275

指令寄存器 0790 操作码

.
用于运算器

IR

下地址字段内容

数据总线 地址总线 2000
0001 0790 0790 8800 2100 8309 8280 44FB 8F00

控制总线 MVRR R9, R0 AR ? PC PC ? PC+1 读内存,IR ?读出内容 67 R9 ? R0 + 0

接口
输入/出设备
主存储器

2007

运算器
2100
C Z V S

控制器
0
程序计数器

主振

脉冲

ALU
2100

+

乘 商 寄 存 器

1234 6688

802 2003 2004
PC AR
地址寄存器 2002 2003

控制 存储器
微指令寄存器

微程序 定序器 映射

操作数 地址

寄存器组
R9 4275

指令寄存器 8800 操作码

.
用于运算器

IR

下地址字段内容

数据总线 地址总线 2000
0 001 0790 8800 2100 8309 8280 44FB 78BD 78BD 8F00

控制总线

MVRD R0, 2100

接口
输入设备 主存储器

AR?PC, PC ? PC+1 读内存,IR?读出内容 AR?PC,PC ? PC+1

读内存,R0 ? D+0

2007

68

运算器
2100
C Z V S

控制器
0
程序计数器

主振

脉冲

ALU
2100

+

乘 商 寄 存 器

1234 6688

802 2005
PC AR
地址寄存器 2004 2100

控制 存储器
微指令寄存器

微程序 定序器 映射

操作数 地址

寄存器组
R9 4275

指令寄存器 8309 操作码

.
用于运算器

IR

下地址字段内容

数据总线 地址总线 2000
0 001 0790 8800 2100 8309 8280 44FB 78BD 78BD 8F00

控制总线
AR?PC, PC ? PC+1 读内存,IR?读出内容 AR?R0+0

STRR [R0], R9

接口
输入设备 主存储器

写内存,总线 ?R9+0

2007

69

运算器
C Z V S

控制器
程序 计数器

主振

脉冲

ALU
3041 A

乘 商 寄 存 器

1234 6688

2006
PC AR
地址寄存器 2005 80

控制 存储器
微指令寄存器

微程序 定序器 映射

操作数 地址

寄存器组
R9

指令寄存器 8280 操作码

.
用于运算器

IR

下地址字段内容

数据总线 地址总线 2000
0 001 0790 8800 2100 8309 8280 44FB

控制总线

IN 80

接口
输入/出设备
主存储器

AR?PC PC ? PC+1 读内存,IR?读出内容

2007

8F00

AR?I/O port 70 读设备,R0?读出内容

运算器
C Z V S

控制器
程 序计数器
A

主振

脉冲

ALU

乘 商 寄 存 器

1234 6688

805 2007 806
PC AR
地址寄存器 2006

控制 存储器
微指令寄存器

微程序 定序器 映射

操作数 地址

寄存器组
R9

指令寄存器 44FB 操作码

.
用于运算器

IR

下地址字段内容

数据总线 地址总线 2000
0 001 0790 8800 2100 8309 8280 44FB

控制总线

JRC 2002

接口
输入/出设备
主存储器

AR?PC PC ? PC+1 读内存,IR ? 读出内容

2007

8F00

若C=1, 则 PC?PC+offset 否则 do nothing71

本章主要内容
? 控制器的功能组成与指令执行步骤
? 微程序控制器部件 ? 组合逻辑控制器部件

72

组合逻辑(硬连线)控制器设计
? 组合逻辑控制器的组成和运行原理

? 组合逻辑控制器的设计过程与技术
(1) 指令系统与指令编码设计

(2) 控制器应提供的控制信号
(3) 指令执行步骤划分和功能确定 (4) 节拍发生器(TIMING)设计与实现

(5) 时序控制信号产生部件的设计与实现
73

组合逻辑控制器的组成与运行原理
在讲解过微程序的控制器之后,再来讨论组合逻辑控制器的组成和 运行原理就变得容易了, 因为二者有很多共同点。 它们都用于控制指令的执行过程, 并且使用几乎相同的执行步骤和几 乎完全相同的控制信号,来完成对控制器之外的其他各功能部件的控制作 用,因此可以简化对这些内容设计原理和方法的论述。 两种控制器实质性的差别,表现在处理指令各执行步骤的接续关系 的方案和给出时序控制信号的办法完全不同,从而造成控制器的具体组成 和运行原理、运行性能上的一些差异。比较它们的逻辑图可看出两种控制 器组成的主要差异: 微程序控制器中的控存变成这里的时序信号产生部件,还取消了微指 令寄存器;原来的下地址部件变成了这里的节拍发生器;原来的微地址映 射部件变成这里的操作码译码器;一些信号连接关系也有某些变化。

74

组合逻辑控制器的组成与运行原理
(1)组合逻辑控制器用节拍发生器(Timing,几个触发器构成的时序逻
辑电路)不同的状态组合来区分一条指令不同的执行步骤,指令执行步骤的接 续是通过变换节拍发生器的状态组合完成的,不同于微程序控制器中通过下地 址部件给出不同的微指令地址来实现。这里用节拍发生器取代了原来的下地址 部件。

(2)组合逻辑控制器是通过由 “与—或” 两级逻辑关系构成的时序控
制信号产生部件来直接给出全部的时序控制信号。送到第一级各“与门”的输 入信号是指令操作码和节拍发生器的节拍状态(可能还有控制条件),每个与门 产生一个与项输出,相关的与项输出信号送到第二级的 “或门” ,每个或门 输出的就是一个时序控制信号。全部的时序控制信号由许多个 “与—或”逻 辑门给出。与用控制存储器存放全部控制信号的微程序控制方案不同,这里用 时序控制信号产生部件取代了原来的控制存储器,还取消了那里的微指令寄存 器线路,把控制信号直接送到被控制的部件。

75

主振

组合逻辑控制器的组成和运行原理
节 拍 发 生 器

时序控制

控制条件 译码
程序计数器

信号
形成部件
….

启停
数据总线 控制总线 地址总线

OP

IR

PC

指令寄存器

输出
设备

输入
设备

主存储器
部件

地 址 寄 存 器

运算器
部件
76

T4~T0 2 4 6 8 11 1A1~A4 2A1

IRH7~IRH0

2468

11 13 15 17

教学机的组合逻辑控制器 8 或16位的指令寄存器,
.

1A1~A4 2A1~2A4

TimingDRV 244
1Y1~Y4 2Y1 18 16 14 12 9 T4~T0 ...... ......
插针 组合逻辑应短接

IRHDRV 244
1Y1~Y4 2Y1~2Y4 9753 IRH3~0 18 16 14 12 IRH7~4 ...... ......
插针 组合逻辑应短接

.
GAL1
16 17
/MIO

.
GAL2 GAL3
15~18 19~22

.
GAL5
16~22 SST SCI SSH IRL7~IRL4

/OE /OE /OE /OE /OE 13 1~5 6~11 14 23 13 1~5 6~11 14 23 13 1~5 6~11 14 23 13 1~5 6~11 14 23 13 1~5 6~11 14 23

GAL7
15~22 DC2 DC1

18 20~22
/WE I2~0

REQ

16~18 20~22 I8 ~ I3 IRL3~IRL0

2~5

10~7

10~7

2~5

GAL4
15 16 21 22
NewIns MicroP 这些短路子组合逻辑 应将每排左边两个短接

GAL6
15 16 21 22

A3~A0
/MIO REQ /WE

I8~I3 I2~I0 B3~B0

1 片100引脚的MACH, 5 片 8 输出引脚的GAL, 二者互斥运行,构成时序 控制信号形成部件,提供 35 位的控制信号。 2 片GAL与GAL3共同提 供运算器A、B口信号。

SST SCI C Z Link

SSH DC2 DC1

MACH
NewIns

节拍信息
T4~T0 MACH_ON Reset OC_/M 送ALU等部件 某些控制信号

16 17 18 19 20 /INT 23

TIMING GAL
2345 6789

指令信息
IRH7~IRH0 IRL7~IRL0 18 16 14 12 9 7 5 3 1A1~1A4 2A1~2A4

10 14 1

1 IRLDRV 244 19 / 1Y1~1Y4 2Y1~2Y4 ETOIB 2468 11 13 15 17
1G 2G

CK2 CK 19 16 15 12 9 6 5 2 11 CK1 Q7~Q0 21 22 15 CLK 1 IRH 377 START/HALT /OE D7~D0 2 4 5 6 /GIR 18 17 14 13 8743 IBH7~IBH0 送两片 中断GAL 和地址寄存器

22 17 14 16 18~2115 /GAL_OE

节拍发生器(1 片GAL) , 产生 4 位节拍状态信号。
2 片GAL用于启动、停止 等控制电路。
GAL1~GAL7公用于组合和微 77 程序两种控制器。

GAL
7

SwitchCtrl GAL
1~10

Step Reset /Start Start Clk

5个控制开关 及其它有关控制信号

19 16 15 12 9 6 5 2 D7~D0 IRL 377 CLK /OE Q7~Q0 18 17 14 13 8743

11 CK1 1 /GIR

IBL7~IBL0

16位组合逻辑控制器线路逻辑图

TEC-2000 16位机指令与执行流程设计
TEC-2000 分为 16 位和 8 位字长的两种型号。16 位机与 8 位机,从其指令格式、指令系统和运行的软件来看,是完全 不同的两种机型,但是从整体硬件组成和使用的器件来看,又 有相当多的类似之处。再从设计与实现的基本原理来看,二者 同样有许多类似或相同之处,例如各自对组合逻辑和微程序两 种控制器使用几乎完全相同的执行步骤。 关于 16 位机组合逻辑控制器设计过程中,可以直接跳过 对指令执行步骤的划分和功能确定,对使用的控制信号的选择 等内容的详细讨论,直接引用微程序控制器的设计结果即可; 针对两种控制器的区别,重点讲解节拍发生器的设计与实现, 时序控制信号产生部件的设计与实现,并强调设计中有关的原 理性知识,顺便提到一些实现中对所用电路的选择原则。
78

/Reset 1000 PC ? 0
0000 AR ? PC PC?PC+1 0010 IR?(AR) B、C、D组 0011 寄存器之间 运算与传送 A组 0110 AR?地址
C组

B组

0100 读、写内存 或 I/O 接口
D组

0111 读、写内存 AR?地址

0101 读、写内存 PC?地址
79

16 位机的基本指令、扩展指令执行流程图(组合逻辑方案)

1000 00
0→ PC、 关 中 断
加 电 启 动 ,按 RESET按 钮

0000 01
PC→ AR、 PC+1→ PC

加电启动时, 执行 0?PC 接下来的两步, 完成取指操作

0010 02
MEM→ IR

0011 指5 0
06 A组 04 DR+SR→ DR DR-SR→ DR DR and SR→ DR DR or SR→ DR DR xor SR→ DR DR-SR DR and SR SR→ DR DR+1→ DR DR-1→ DR SHL DR SHR DR
判断是否转移

XXXX
3A XXXX

31

PC→ AR、 PC+1→ PC

03

/MAP

令8 0
07 09

伪中断处理,空操作

操B 0
0C B、 D组

0A

XXXX 30

有中断 无中断

STR→ Q、 判 中 断

作E 0
0F

0D

码1 1 转移
10

不转移

PC+OFFSET→ PC

0110 指5 1 1 令7 19 操 1B 1D 作 1E
12 1F 码 23 PORT→ AR SP-1→ SP、 AR SP→ AR、 SP+1→ SP DR→ AR SR→ AR PC→ AR、 PC+1→ PC PC→ AR、 PC+1→ PC PC→ AR、 PC+1→ PC SP→ AR、 SP+1→ SP

0100

B组 R0→ IO IO→ R0 FLAG→ MEM MEM→ FLAG SR→ MEM MEM→ DR MEM→ Q MEM→ PC 13 指 14 0101 令 16 PC→ MEM、 Q→ PC 18 操 1A 0111 1C 作 D组 20 SP-1→ SP、 AR 码 24

指 22 令 操 21 作 码

按指令具体功能, 再分别用 1、2、 3、4 步完成不同 指令组的中各条 指令的执行过程 最后检查中断请 求信号,有请求 时则响应中断, 否则开始下一条 指令的执行过程
80

16 位机组合逻辑控制器的指令执行流程设计
图 7-4 16位 机 微 程 序 基 本 指 令 流 程 框 图

(1)节拍发生器的设计原理
TEC-2000 16位机实现了29条指令,使用了 8 个节拍 (不含响应中断的步骤),为此,节拍发生器至少要使用 4 位 触发器,可以产生最多 24 个节拍; 使用 4个触发器(分别命名为 T3 T2 T1 T0)不同的状态组 合来区分每一个节拍,例如,用T3 T2 T1 T0 =1000 来标识最顶 上一行的那个节拍,如此等等,正象前页一图所示。如何为每 个节拍分配 4个触发器的状态组合,需要遵循的原则是:尽量 做到从当前节拍切换到下一个节拍时,只有一个触发器的状态 发生变化,办不到时,也要尽量使状态发生变化的触发器数目 最少。此外,还要考虑有利于对写出的节拍发生器的逻辑表达 式的逻辑化简。前一页给出的设计结果已经较好地体现了上述 设计要求。 接下来的工作是按上图给出的设计结果,写出设计与实现这 一节拍发生器的线路所依据的逻辑表达式。
81

节拍发生器的设计原理
按照节拍状态转换图(有限状态图)的结果,设计这一节 拍发生器的逻辑线路的首要任务,是写出该节拍发生器线路的 逻辑表达式。具体要求是写出反映每一个触发器的完整的状态 转换序列的逻辑表达式。在该表达式中: (1)用一个与项表示在一个节拍中该触发器取值为 1 的一种状 态,参加与运算的元素是: ? 进到本节拍的前一个节拍的 4个触发器的取值状态 (用 Ti 和 /Ti分别表示该触发器的 1 状态和 0 状态); ? 从前一个节拍得以进到本节拍的限制条件(可能没有),如 指令组(用代表该指令组的表达式表示)或具体的一条指令 (用相应指令的操作码表示)等。 (2)再把所有节拍中该触发器取值为 1 的情形用或项表示在一 个表达式中。下面看实际的例子。

82

T3 T2 T1 T0 1000 /Reset
PC ? 0

T3 := C-M# * /Reset

0000
AR ? PC PC?PC+1

0011
寄存器之间 运算与传送

T2 := C-M#*Reset*/T3*/T2*T1*/T0*IR15 + C-M#*Reset*/T3*T2*T1*/T0 + C-M#*Reset*/T3*T2*T1*T0 + C-M#*Reset*/T3*T2*/T1*/T0 * IR15*IR14*IR11
T1 := C-M#*Reset*/T3*/T2*/T1*/T0 + C-M#*Reset*/T3*/T2*T1*/T0 + C-M#*Reset*/T3*T2*T1*/T0 * IR15*IR14*/IR11 + C-M#*Reset*/T3*T2*/T1*/T0 * IR15*IR14*IR11

0010
IR?(AR)

A组

B组

BCD组

0110
AR?地址

0100
读、写内存 或 I/O 接口

C组

D组

0111
读、写内存 AR?地址

0101
读、写内存 PC?地址

16 位机的基本指令、扩展指令执行流程图

T0 := C-M#*Reset*/T3*/T2*T1*/T0*/IR15 + C-M#*Reset*/T3*T2*T1*T0 + C-M#*Reset*/T3*T2*T1*/T0 * IR15*IR14*/IR11 + C-M#*Reset*/T3*T2*/T1*/T0 83 * IR15*IR14*IR11

(2)时序控制信号形成部件的设计与实现
时序控制信号形成部件用于提供计算机各功能部 件运行所要求的每一位控制信号。 设计与实现的过程是: 1) 设计指令执行流程表; 2) 按流程表写出每一位控制信号的逻辑表达式;
用一个与项表示一位控制信号在流程表的一个横行中为 1 的情形; 用一个或项汇总这位控制信号在流程表中所有横行中为 1 的全部情形; 按前两步方法依次写出每一个控制信号的逻辑表达式,若可能,适当化减。

3) 编译得到的逻辑表达式,并写入可编程芯片中 4) 对设计结果进行调试、改错,直到全部正确。 5) 把新设计的指令与原有指令用在同一程序中并运 行,检查设计结果的正确性。
84

指令执行流程表设计
与微程序控制器中的微程序相比较,组合逻辑的控制器 需提供的控制信号有某些变化: ① 微程序中使用的下地址字段不再有用,这里通过节拍发生器 解决指令执行步骤的衔接关系,少了16 bits ② 微指令中的 SA 和 SB不再有用,又少了2 bits,在组合逻辑 控制器中,全部累加器编号都直接写在表达式中。 ③ 指令操作码,微指令中不出现,但在组合逻辑控制器中的每 一个节拍中,要用其区分不同指令,故必须出 现在指令执行流 程表中; ④ 需要提供的其他控制信号,对两种控制器可以相同,故也可以 通过直接修改相关为程序的内容来完成。
85

指令执行流程表举例
下址 指令操作码 节拍 CI3~0 SCC3~0 MRW I2~0

ADD DR, SR IN IO-PORT
SA I8~6 SB I5~3

MVRR DR, SR CALA ADR
SST SCISSH DC2 DC1

B口

A口

0000 0010 00 2

无 关 0

100 011 001 000 100 000

2 1 1 3

0 0 0 0

5 0 0
DR DR

5 0 0
SR SR

0 0 0 1

4 0 0 0

3 1 0 0

0 0 0 0

0011 00000000 100 001

0011 00000111 0110 10000010 0100 10000010 0110 11001110 0100 11001110 0111 11001110 0101 11001110

100 100 100 111 011 111 100 011 001 111 100 011 000 010

3 1 3 2 0 3 2

0 0 0 0 0 1 0

0 0

0 0

5 0 4 5

5 0 0 5

0 0 0 0 0 0 0

0 0 0 4 0 0 0

0 3 0 3 0 3 0

0 2 0 0 0 0 86 1

按流程表写出每一位控制信号的逻辑表达式:
用一个与项表示一位控制信号在流程表的一个横行中为 1 的情形; 用一个或项汇总这位控制信号在流程表中所有横行中为 1 的全部情形; 按前两步方法依次写出每一个控制信号的逻辑表达式, 若可能适当化简。 例如:MRW字段中的: R = /T3*T2*/T1*/T0*IR15*/IR14*/IR13*/IR12*/IR11*/IR10*IR9*/IR8 I2~I0 字段中的: I2 = /T3*/T2*T1* T0*/IR15*/IR14*/IR13*/IR12*/IR11* IR10*IR9* IR8 + /T3* T2* T1*/T0* IR15*/IR14*/IR13*/IR12*/IR11*/IR10*IR9*/IR8 + /T3* T2*/T1*/T0* IR15*/IR14*/IR13*/IR12*/IR11*/IR10*IR9*/IR8 + /T3* T2*/T1*/T0* IR15*/IR14*/IR13*/IR12*/IR11*/IR10*IR9*/IR8 /I0 = /T3*/T2*T1*/T0 + /T3*/T2*T1* T0*/IR15*/IR14*/IR13*/IR12*/IR11* IR10*IR9* IR8 + /T3*T2*/T1* T0* IR15* IR14*/IR13*/IR12* IR11* IR10*IR9*/IR8

3) 编译得到的逻辑表达式,并写入现场可编程芯片中 4) 把新设计的指令与原有指令用在同一程序中并运行,检查 设 计结果的正确性。 5) 对设计结果进行调试、改错,直到全部正确;
87

组合逻辑与微程序控制器比较
? 相同点
? 完成相同的功能 ? 控制信号基本相同

? 不同点
? 控制信号生成部件的组成和实现方式不同 ? 步骤标记实现方式不同 ? 性能不同

88


相关文章:
计算机组织与系统结构第六章习题答案
( 2) 取指令部件的功能是什么?( 3) 控制器的功能是什么?( 4) 为什么对...(NF ⊕ V F)=0) 则 PC=PC+2+Imm8 否则 PC=PC+2 ( 1) 该计算机的...
第06章 计算机的控制器部件
宋佳兴 计算机组成与体系结构 重点: 重点: 难点: 难点 学生先预习,带着问题...课堂讲授、与学生讨论结合 二、教学内容 第6章 计算机的控制器部件 本章主要...
计算机体系结构第6章答案
传输时间 控制器开销 5、从盘面到缓冲存储器 从缓冲存储器到主机 6、面密度 ...假设磁盘子系统的组成部件和它们的 MTTF 如下: (1)磁盘子系统由 10 个磁盘...
计算机系统结构第6章部分习题参考答案
计算机系统结构 武汉大学出版社计算机系统结构 武汉大学出版社隐藏>> 第6 章 部分习题参考答案 6.1 (题目略) 题目略)【解】16 台处理器仿 ILLIAC-IV 机模式的...
《计算机组成原理》第6章习题答案
计算机组成原理》第6章习题答案_工学_高等教育_教育...解: 微命令是控制计算机各部件完成某个基本微操作的...由计算机的设计者事先编制好并存放在控制储器中的,...
计算机组成与体系结构试卷 6
5.( 0.21 )10 = ( )2 = ( )8 = ( )16 6.控制器部件计算机的...计算机组成与体系结构 课程试卷 2007—2008 学年第 二 学期 — 答题纸 _ 题...
计算机组成与体系结构
1.2 构成计算机的各类部件的功能及其相互关系计算机由控制器、运算器、存储器、...第1章 计算机组成与体系结构 3 1.3 各种体系结构的特点与应用 1.3.1 复杂...
第2章 计算机体系结构 习题与答案
第2章 计算机体系结构 习题与答案_工学_高等教育_...诺依曼原理,冯?诺依曼结构计算机包含哪几部分部件,其...由五大部分组成:运算器、控制器、存储器、输入设备...
计算机系统结构_第六章练习 答案
计算机系统结构_第六章练习 答案_工学_高等教育_教育专区。清华出版 第二版 练习...且前后其他的指令均没有相关性,数据进入流出每个功能部件, 包括访问存储器都...
计算机组成与体系结构测试题--答案
计算机组成与体系结构》模拟题答案 一、选择题 1...节省加法器的位数 D. 便于控制 6. 某 SRAM 芯片...在 CPU 中,哪些寄存器属于控制用的指令部件?它们各...
更多相关标签:
计算机控制器中的部件 | 控制器部件实验 | 计算机控制器的部件 | 控制器的指令部件是指 | 控制器主要由指令部件 | 控制器部件 | 微程序控制器组成实验 | 控制器的组成 |