59
单单单单单单 单单单单单 一, 单单单单 单单单单单单单单 8 单单单单单 单单单单单单单 , 单单单单单单单单单单单单单单单单单单单 , 单单单单 256 单单单单单单单单 8 单单单单单单 单单 1 单 2 单单单单单单单 单单 / 单单单单单单 单单单单单单单单单单单单单单单单 ,。 单单单单单单单单单单单 , 单单单单单单单单单单单单单单单 单单单单 、一 单单 单单单单单单单 一。 单单单单单 单单单单 I/O 单单单单单单单单单单 单单单 / 单单单单 / 单单单单单单单单 8单 4单 4单 TEC-2000 TEC-2000 教教教教教教教教 教教教教教教教教

TEC-2000 教学机的指令格式

  • Upload
    khan

  • View
    202

  • Download
    0

Embed Size (px)

DESCRIPTION

TEC-2000 教学机的指令格式. 8 位 4 位 4 位. 目的寄存器. 源寄存器. 操 作 码. I/O 端 口 地 址. 相对转移指令的偏移量. 直接数 / 内存地址 / 指令中变址偏移量. 单字指令 仅用一个指令字, 第一个指令字 分为三个部分。 最高 8 位是操作码。从这个意义上讲 , 教学机的基本指令是固定长度的操作码结构 , 最多支持 256 条基本指令。 - PowerPoint PPT Presentation

Citation preview

Page 1: TEC-2000  教学机的指令格式

单字指令仅用一个指令字,第一个指令字分为三个部分。 最高 8 位是操作码。从这个意义上讲 , 教学机的基本指令是固定长度的操作码结构 , 最多支持 256 条基本指令。 最低的 8 位有多种用法:给出 1 或 2 个寄存器的编号,或入 / 出端口的地址,或用于给出相对转移指令的偏移量。

双字指令要用两个指令字 , 第二个指令字的内容可能是立即数、一个直接地址或一个变址位移量。

操 作 码 目的寄存器 源寄存器 I/O 端 口 地 址 相对转移指令的偏移量

直接数 / 内存地址 / 指令中变址偏移量

8 位 4 位 4 位 TEC-2000 TEC-2000 教学机的指令格式教学机的指令格式

Page 2: TEC-2000  教学机的指令格式

TEC-2000 16 位机基本指令系统指令格式 汇编语句 操作数个数 CZVS 指令分组 功能说明00000000 DRSR ADD DR , SR 2 **** A DR←DR+SR00000001 DRSR SUB DR , SR 2 **** A DR←DR-SR00000010 DRSR AND DR , SR 2 **** A DR←DR and S

R 00000011 DRSR CMP DR , SR 2 **** A DR-SR00000100 DRSR XOR DR , SR 2 * • • • A DR←DR xor S

R 00000101 DRSR TEST DR , SR 2 * *** A DR and SR 00000110 DRSR OR DR , SR 2 * • • • A DR←DR or SR 00000111 DRSR MVRR DR, SR 2 • • • • A DR←SR00001000 DR0000 DEC DR 1 **** A DR←DR-100001001 DR0000 INC DR 1 **** A DR←DR+100001010 DR0000 SHL DR 1 * • • • A DR,C←DR*2 00001011 DR0000 SHR DR 1 * • • • A DR,C←DR /201000001 OFFSET JR ADR 1 • • • • A 无条件跳转 01000100 OFFSET JRC ADR 1 • • • • A C=1 时跳转01000101 OFFSET JRNC ADR 1 • • • • A C=0 时跳转01000110 OFFSET JRZ ADR 1 • • • • A Z=1 时跳转01000111 OFFSET JRNZ ADR 1 • • • • A Z=0 时跳转

Page 3: TEC-2000  教学机的指令格式

TEC-2000 16 位机基本指令系统

指令格式 汇编语句 操作数个数 CZVS 指令分组 功能说明10000000 0000000 JMPA ADR 1 • • • • B 无条件跳到 AD

R ADR ( 16 位)10000001 DRSR LDRR DR , [SR] 2 • • • • B DR←[SR]

10000010 I/O PORT IN I/O PORT 1 • • • • B R0←[I/O PORT]

10000011 DRSR STRR [DR] , SR 2 • • • • B [DR]←SR

10000100 00000000 PSHF 0 • • • • B FLAG 入栈10000101 0000SR PUSH SR 1 • • • • B SR 入栈10000110 I/O PORT OUT I/O PORT 1 • • • • B [I/O PORT]←R

0

10000111 DR POP DR 1 • • • • B 出栈到 DR

00001000 DR0000 MVRD DR, DATA 2 • • • • B DR←DATA

DATA ( 16 位)10001100 00000000 POPF 1 * *** B FLAG← 出栈10001111 00000000 RET 1 • • • • B 子程序返回11001110 00000000 CALA ADR 1 • • • • D 调用子程序 ADR ( 16 位)

Page 4: TEC-2000  教学机的指令格式

指令执行步骤概述 划分与设计指令执行步骤,是控制器部件重要的教学内容,这一设计要依据指令的格式和功能、控制器部件的组成、被控制对象运行方式以及它们彼此之间的连接关系等多个方面的实际情况共同决定,就是说,它解决的是信息随着时间在这些部件之间的流动关系,与指令系统、计算机整机和它的各个部件都有关系,因此也就比较难以全面理解与掌握。

下面分成两个步骤,从 3 个角度来介绍上述内容。

1. 准备性知识:指令执行步骤简介;教学计算机组成框图。

2. 典型指令执行步骤介绍: ( 1 )指令执行步骤简单的文字描述; ( 2 )指令执行步骤与信息流动的时间空间对应关系; ( 3 )教学计算机的典型指令执行步骤,和每一步骤中对各个部件的控制作用。

Page 5: TEC-2000  教学机的指令格式

每条指令的执行步骤— 读取指令

指令地址 ( 在程序计数器 PC 中 ) 送入主存地址寄存器读主存,读出内容送入指令寄存器 IR

— 分析指令— 按指令规定内容执行指令

不同指令的操作步骤数, 和具体操作内容差异很大 ,

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

形成下一条指令地

址R_R 类型指令读写内存类型指令输入输出类型指令其他类型指令

可能执行 一次或多次

可以复合

是一次读内存操作 公共操作

公共操作

是每一条指令的特定操作

Page 6: TEC-2000  教学机的指令格式

TEC-2000 教学机系统的组成

计算机

终端

PC 机

微程序/ 硬连线控制器

运算器

(16 位 )

主存储器( 16 位)

按键 室开关 指示灯

串行接

中断实验

接口实验

内存扩展实验

电 源+5V

Page 7: TEC-2000  教学机的指令格式

( 1 )指令执行步骤与信息流动图示部分

典型指令的执行过程举例:2000 0001 ADD r0, r1 ; 加法指令2001 0790 MOV r9, r0 ; 传送指令2002 E709 STRA [2007] , r9 ; 写内存指令 , 这是一条双字指令 ,

2007 ; 第二个字中的 2007 是直接地址2004 1280 IN 80 ; 读串行口数据到 R0 低 8 位2005 44FA JRC, 800 ; C 为 1 转移到 2000, 否则顺序执

行2006 8F00 RET ; 子程序返回指令

2007  其他一些指令与这里的几条指令有相当多的共同特性,属于同一组的指令的执行步骤非常类似。

Page 8: TEC-2000  教学机的指令格式

读取指令 ① AR PC ② 读主存, IR 读出内容 PC PC + 1 执行指令 ③ ALU R0 ALU R1 执行 + R0 ALU ,记忆结果特征结束,判中断

指令执行步骤简单的文字描述加法指令 ADD R0 , R1

形成下条指令地

Page 9: TEC-2000  教学机的指令格式

寄存器内容传送指令MOV R9 , R0

读取指令 ① AR PC ② 读主存, IR 读出内容 PC PC + 1 执行指令 ③ ALU 0 ALU R0 执行 + R9 ALU结束,判中断

形成下条指令地

Page 10: TEC-2000  教学机的指令格式

写寄存器内容到主存MOV [2007] , R9

读取指令 ① AR PC ② 读主存, IR 读出内容 PC PC + 1

执行指令 ③ AR PC , PC PC+ 1 ④ 读主存, AR 读出内容

⑤ 写主存 , 总线 ALU , ALU 0 , ALU R9 , +结束,判中断

(地址 807 存在指令的第二个字中)

(注)

形成下条指令地

Page 11: TEC-2000  教学机的指令格式

输入指令 IN 80

形成下条指令地

读取指令 ① AR PC ② 读主存, IR 读出内容 PC PC + 1

执行指令 ③ AR I/O Port

④ 读外设, ALU 读出数据 ALU 0 执行 + R0 ALU结束,判中断

形成下条指令地

Page 12: TEC-2000  教学机的指令格式

相对转移指令 JR C, 800

读取指令 ① AR PC (注) ② 读主存, IR 读出内容 PC PC + 1

执行指令 ③ 若 c = 1 则: ALU IP

ALU offset ( IR 低字节) 二者相加,结果送 PC

否则,顺序执行结束,判中断

形成下条指令地

Page 13: TEC-2000  教学机的指令格式

子程序返回指令 RET

读取指令 ① AR PC

② 读主存, IR 读出内容 PC PC + 1

执行指令 ③ AR SP

SP SP + 1

④ 读主存 , PC 读出内容

结束,判中断

形成下条指令地

Page 14: TEC-2000  教学机的指令格式

程序计数器

运算器 控制器

控制信号产生部件

用于运算器

输入设备 输出设备

主存储器

控制总线

0001

78BD

0790

CZVS

接口

.

PC

ARIR

数据总线

地址总线

ALU

乘商寄存器

66881234

R9

操作数地址

操作码

寄存器组

地址寄存器

指令寄存器

节拍发生器

2000

E7092007128044FA8F00

2000

2007

3041

主振 脉冲

Page 15: TEC-2000  教学机的指令格式

程序 计数器

运算器 控制器

控制信号产生部件

用于运算器

输入 / 出设备主存储器

控制总线

CZVS

接口

.

PCAR

IR

数据总线地址总线

ALU

乘商寄存器

66881234

R9

操作数地址

操作码

寄存器组

地址寄存器

指令寄存器

节拍发生器

主振 脉冲

30412000

2000

2001

0001

4275

4275

AR PC

读内存, IR 读出内容R0 R0 + R1

PC PC+1

+

ADD R0,R10001

78BD

07902000

E7092007128044FA8F00

2007

Page 16: TEC-2000  教学机的指令格式

程序 计数器

运算器 控制器

控制信号产生部件

用于运算器

输入 / 出设备主存储器

控制总线

CZVS

接口

.

PCAR

IR

数据总线地址总线

ALU

乘商寄存器

66881234

R9

操作数地址

操作码

寄存器组

地址寄存器

指令寄存器

节拍发生器

主振 脉冲

47252001

2001

2002

0790

4275

4275

AR PC

读内存, IR 读出内容R9 R0 + 0

PC PC+1

0+

MOV R9, R00001

78BD

07902000

E7092007128044FA8F00

2007

Page 17: TEC-2000  教学机的指令格式

78BD

程序计数器

运算器 控制器

控制信号产生部件

用于运算器

输入设备

主存储器

控制总线

0 401

CZVS

接口

.

PC

ARIR

数据总线地址总线

ALU

乘商寄存器

66881234

R9 4275

操作数地址

操作码

寄存器组

地址寄存器

指令寄存器

节拍发生器

主振 脉冲

3041802

E709

2003

20032007

2004

0

ARPC , PC PC+1读内存, IR 读出内容

读内存, AR 读出内容ARPC , PC PC+1

写内存 , 数据总线 R9+0

4725

+

MOV [2007], R90001

4275

07902000

E7092007128044FA8F00

2007

Page 18: TEC-2000  教学机的指令格式

程序 计数器

运算器 控制器

控制信号产生部件

用于运算器

输入 / 出设备主存储器

控制总线

CZVS

接口

.

PC

ARIR

数据总线地址总线

ALU

乘商寄存器

66881234

R9

操作数地址

操作码

寄存器组

地址寄存器

指令寄存器

节拍发生器

主振 脉冲

30412004

2004

2005

1280

A

ARPC

读内存, IR 读出内容

读设备, R0 读出内容

PC PC+1

80

ARI/O port

IN 8000010790

2000

E7092007128044FA8F00

2007 4275

Page 19: TEC-2000  教学机的指令格式

程 序计数器

运算器 控制器

控制信号产生部件

用于运算器

输入 / 出设备主存储器

控制总线

CZVS

接口

.

PC

ARIR

数据总线地址总线

ALU

乘商寄存器

66881234

R9

操作数地址

操作码

寄存器组

地址寄存器

指令寄存器

节拍发生器

主振 脉冲

A2005

2005

2006

44FA

IP , ARPC

若 C=1, 则 PCIP+offset读内存, IR 读出内容PC PC+1

否则 顺序执行

2005 2000 2006

JR C, 8000001

4275

07902000

E7092007128044FA8F00

2007

Page 20: TEC-2000  教学机的指令格式

程序 计数器

运算器 控制器

控制信号产生部件

用于运算器

输入 / 出设备

控制总线

CZVS

接口

.

PC

ARIR

数据总线地址总线

ALU

乘商寄存器

66881234

R9

操作数地址

操作码

寄存器组

地址寄存器

指令寄存器

节拍发生器

主振 脉冲

A2006

2006

FF0

8F00

IP , ARPC

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

读内存 ,PCMEM

2007

RET

ARSP

FF0

FF1

SP SP+1

A00

堆栈 FF0 单元存 A00

0001

4275

07902000

E7092007128044FA8F00

2007

Page 21: TEC-2000  教学机的指令格式

PC 0

AR PCPCPC+1

IR(AR)

/MAP

寄存器之间运算与传送

读、写内存AR 地址

AR 地址

读、写内存 或 I/O 接口

读、写内存 PC 地址

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

A组

B组

C组

D组

/Reset

B 、 C 、 D组

微程序控制器方案

Page 22: TEC-2000  教学机的指令格式

PC 0

AR PCPCPC+1

IR(AR)

寄存器之间运算与传送

读、写内存AR 地址

AR 地址

读、写内存 或 I/O 接口

读、写内存 PC 地址

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

A 组B组

C组

D组

/Reset

B 、 C 、 D组

硬连线控制器方案

Page 23: TEC-2000  教学机的指令格式

二、控制器的功能与组成

1. 控制器的功能 : 控制执行指令 控制各部件协调运行,即为各部件提供控制信号。

2. 控制器的组成: 程序计数器 指令寄存器 指令步骤标记线路 提供控制信号的部件

分类 : 微程序的控制器 硬布线的控制器

Page 24: TEC-2000  教学机的指令格式

1. 控制器的功能计算机的功能是执行程序

程序是依次排列起来的指令代码

控制器的功能就在于 : 正确地分步完成每一条指令规定的功能 , 正确且自动地连续执行指令 ;

再进一步说,就是向计算机各功能部件提供 协调运行每一个步骤所需要的控制信号。

Page 25: TEC-2000  教学机的指令格式

指令的执行过程 冯 . 诺依曼 结构的计算机 即存储程序的计算机,设置内存,存放

程序和数据,在程序运行之前存入。

执行程序: 正确从程序首地址开始; 正确分步执行每一条指令, 并形成下条待执行指令的地址; 正确并自动地连续执行指令, 直到程序的最后一条指令。

Page 26: TEC-2000  教学机的指令格式

每条指令的执行步骤— 读取指令

指令地址送入主存地址寄存器读主存,读出内容送入指定的寄存器

— 分析指令— 按指令规定内容执行指令

不同指令的操作步骤数, 和具体操作内容差异很大 ,

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

形成下一条指令地

址R_R 类型指令读写内存类型指令输入输出类型指令其他类型指令

可能执行 一次或多次

是一次读内存操作

公共操作

公共操作

是每一条指令的特定操作

Page 27: TEC-2000  教学机的指令格式

2. 控制器的组成① 程序计数器 PC :存放指令地址,有 +1 或接收新值功能。

② 指令寄存器 IR :存放指令内容:操作码与操作数地址。

主脉冲源与启停控制线路,按需要给出主脉冲信号。

③ 指令执行步骤标记线路: 指明每条指令的执行步骤。

④控制信号记忆或产生线路:给出计算机各功能部件部件协同运行所需要的控制信号。

运算器部件 主存储器部件总线及输入 / 输出接口 ( 输入 / 输出设备 )

控制器部件

各部件包括

也包括

设计中的难点,在于解决对运算器、控制器的控制

Page 28: TEC-2000  教学机的指令格式

TEC-2000 教学机系统的组成

计算机

终端

PC 机

微程序控制器

运算器(8 / 16 位 )

主存储器( 8 / 16

位)按键 开关 指示灯

串行接

接口实验

中断实验

内存扩展实验

电 源+5V

硬布线控制器

Page 29: TEC-2000  教学机的指令格式

条件码

微指令下地址部件

微指令地址映射部件

晶振

启停控制

节拍发生器

时序 控制信号形成部件

移位信号进位信号

状态位触发器

8位运算器部件

8 位 运算器 部件

8位内存储器部件

8位内存储器部件

高位地址寄存器

程序计数器

指令寄存器8 8位 位

微指令寄存器

控制存储器

2片译码器

( )在运算器芯片内

3片译码器电平转换线路时钟分频线路

扩展实验串行接口芯片

串行接口I ntel 8251芯片

中断实验线路

+5V直流电源

其他通用

I / O 接口

扩展实验

低位地址寄存器

CK

IR

PC

转移地址 +1

送地址寄存器

Cout

移位信号

Cin

移位信号

/OE

C Z V S SSTCy ZrOv F

移位信号

SCI SSHCi n

移位信号

几个寄存器的接收允许

送内部总线的选择控制

I / O内存与 片选信号及读写命令 /送入 出设备

移位信号

Ci n

8 I B位内部总线来自八位开关 来自八位开关

片选

读写命令/ OE

8位数据总线

高位地址总线

8位数据总线

3 5

48

8低 位地址总线

送译码电路

并行数据

/入 出

C_/D

I/O

读写命令

片选

片选

读写命令

/ OE

/ OE( )接地

8 I B位内部总线

/串行入 出

时钟信号

CLK

DC23~20 DC13~10

/MIO REQ /WE

A3~A0 B3~B0 I8~I0

SST2~SST0 SCI1~SCI0SSH1~SSH0

/OE内存

3位地址I / O端口高位地址

3 4

3 ( )个无锁按键 中断源

/INT

/OE

{下地址字段

控制命 令字段

. . . . . . . . .

. . . . . .

INTS

INTP

Reset

3

SCC

16

寄存器

当前微指令地址

/CC

2

/串行入 出

2

.

ARL

ARH

/OE

CLK

3-3 图 TEC-2000总体框图

Page 30: TEC-2000  教学机的指令格式

时序控制

信号

形成部件

译码

IR PC

输出

设备

输入

设备主

存运算器部件

节拍

启停

地址寄存器械

数据总线

地址总线控制总线

….

控制条件

控制器信号

主振 硬连线方案的控制器

Page 31: TEC-2000  教学机的指令格式

PC 0

AR PCPCPC+1

IR(AR)

寄存器之间运算与传送

读、写内存AR 地址

AR 地址

读、写内存 或 I/O 接口

读、写内存 PC 地址

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

A组

B组

C组

D组

/Reset

B 、 C 、 D组

Page 32: TEC-2000  教学机的指令格式

(3) 控制器应提供的控制信号Y15~Y0 用 16 个指示灯显示结果

D15~D0

RAM15

Q15

RAM0

Q0

CinCyF=0OverF15

运 算 器 部 件(4 片 Am2901)

A3~0 B3~0I8~6 用 16 个数据开关提供输入数据

CZVS

SSH

SST SCI

I5~3 I2~0

SCI SSH A 口 B 口I8~6 I5~3 I2~0 SST 通过 24 位微型开关 提供控制信号

各用四个指示灯显示状

Gal20V8

Gal20V8

Page 33: TEC-2000  教学机的指令格式

对运算器的控制24 位控制信号,同 24 位微型开关内容, A4~A0 , B4~B0 , I8~I6 , I5~I3 , I2~I0

SST2~0 , SSH1~0 , SCI1~0

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

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

Page 34: TEC-2000  教学机的指令格式

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

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

Page 35: TEC-2000  教学机的指令格式

对内存和 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 无内存和串口的读写操作

Page 36: TEC-2000  教学机的指令格式

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

Page 37: TEC-2000  教学机的指令格式

对内部总线和特定寄存器的控制选择送内部总线的信息来源

DC12~0 信号名称 注释 000 /SWTOIB 来自开关

001 /RTOIB ALU 的输出

010 /ETOIB 符号扩展 16 位

011 /FTOIB 状态 位输出

100 /STOIB 符号扩展 8 位

101 /INTVH 中断向量的

110 /INTVL 高、低 8 位

110 NC 不用

控制指定寄存器接收信息DC22~0 信号名称 注释 000 NC 不用

001 /RIR 指令寄存器

010 /GARL 地址寄存器低位

011 /GARH 地址寄存器高位

100 /INTR 取原中断优先级

101 /INTN 置新中断优先级

110 /EI 开中断

110 /DI 关中断

Page 38: TEC-2000  教学机的指令格式

硬连线(组合逻辑)控制器

1. 组合逻辑控制器的组成和运行原理

2. 组合逻辑控制器的设计过程与技术 ( 1 ) 指令系统与指令编码设计 ( 2 ) 控制器应提供的控制信号 ( 3 ) 指令执行步骤划分和功能确定 ( 4 ) 节拍发生器( TIMING )设计与实现 ( 5 ) 时序控制信号产生部件的设计与实现

Page 39: TEC-2000  教学机的指令格式

1. 组合逻辑控制器的组成与运行原理

在讲解过微程序的控制器之后,再来讨论组合逻辑控制器的组成和运行原理就变得容易了 , 因为二者有很多共同点。 它们都用于控制指令的执行过程 , 并且使用几乎相同的执行步骤和几乎完全相同的控制信号,来完成对控制器之外的其他各功能部件的控制作用,因此可以简化对这些内容设计原理和方法的论述。

两种控制器实质性的差别,表现在处理指令各执行步骤的接续关系的方案和给出时序控制信号的办法完全不同,从而造成控制器的具体组成和运行原理、运行性能上的一些差异。比较它们的逻辑图可看出两种控制器组成的主要差异: 微程序控制器中的控存变成这里的时序信号产生部件,还取消了微指令寄存器;原来的下地址部件变成了这里的节拍发生器;原来的微地址映射部件变成这里的操作码译码器;一些信号连接关系也有某些变化。

Page 40: TEC-2000  教学机的指令格式

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

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

Page 41: TEC-2000  教学机的指令格式

时序控制

信号

形成部件

译码

OP IR PC

输 出

设 备

输 入

设 备

主存储器

部件

运算器 部件

启停

地址寄存器

数据总线

地址总线控制总线

….

控制条件

主振组合逻辑控制器的组成和运行原理

节拍发生

程序计数器

指令寄存器

Page 42: TEC-2000  教学机的指令格式

插针组合逻辑应短接

插针组合逻辑应短接

GAL1 GAL2 GAL3 GAL5 GAL7

GAL6

TimingDRV 244 IRHDRV 244

MACH

IRH 377 START/HALT GAL

TIMING GAL

Step Reset /Start

CK2 CK

送 ALU等部件

送两片中断GAL

和地址寄存器

15 21 22

2 3 4 5 6 7 8 9

Reset10

1

CK111

IBH7~IBH0

18 17 14 13 8 7 4 3

IRH7~IRH0

19 16 15 12 9 6 5 2

T4~T0

OC_/M1416 17 18 19 20

2 4 6 8 11T4~T0

18 16 14 12 9

IRH7~IRH02 4 6 8 11 13 15 17

IRH7~4IRH3~018 16 14 129 7 5 3

/WE

6~11 14 231~5 1~5 6~11 14 23

REQ

1~5 6~11 14 23 1~5 6~11 14 23

/MIOI2~0

16 17 18 20~22

I8 ~ I3

16~18 20~22 15~18

2~5

15 16 21 22

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

131313/OE/OE

1313/OE

SST SCI SSH

16~22

DC2 DC115~22

A3~A0

I8~I3/MIO REQ /WE I2~I0

B3~B0SST SCI SSH

DC2 DC1

MACH_ON

LinkNewIns

IRL7~IRL4

NewIns MicroP

Start Clk

/OE/OE

IRL3~IRL0

GAL410~7 10~7

19~22

1~5 6~11 14 23

..

2 4 5 6 7

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

14

1~10SwitchCtrl GAL22 /GAL_OE

某些控制信号

1516 18~21

/INT 23

17

ZC

T4~T0

..

2~5

15 16 21 22

这些短路子组合逻辑应将每排左边两个短接

......

..................

D7~D0

Q7~Q0 CLK

1A1~A4 2A1

1Y1~Y4 2Y1

1A1~A4 2A1~2A4

1Y1~Y4 2Y1~2Y4

/OE1

节拍信息

指令信息

/GIRIRLDRV 244

IRL 377

2 4 6 8 11 13 15 17

IRL7~IRL0

IBL7~IBL0

18 17 14 13 8 7 4 3

19 16 15 12 9 6 5 2

18 16 14 12 9 7 5 31A1~1A4 2A1~2A4

1Y1~1Y4 2Y1~2Y4

Q7~Q0

D7~D011 CK1

/OE /GIR1

G1G2

1

19/ETOIB

CLK

教学机的组合逻辑控制器

8 或 16 位的指令寄存器,

1 片 100引脚的 MACH ,5 片 8 输出引脚的 GAL ,二者互斥运行,构成时序控制信号形成部件,提供35 位的控制信号。

2 片 GAL 与 GAL3 共同提供运算器 A 、 B 口信号。

节拍发生器 (1 片 GAL) ,产生 4 位节拍状态 信号。

2 片 GAL 用于启动、停止等控制电路。GAL1~GAL7 公用于组合和微程序两种控制器。

Page 43: TEC-2000  教学机的指令格式

2. TEC-2000 16 位机指令与执行流程设计 TEC-2000 是原有型号的基础上,经过较大的改进与完善重新设计的,分为 16 位和 8 位字长的两种型号。

16 位机与 8 位机,从其指令格式、指令系统和运行的软件来看,是完全不同的两种机型,但是从整体硬件组成和使用的器件来看,又有相当多的类似之处。再从设计与实现的基本原理来看,二者同样有许多类似或相同之处,例如各自对组合逻辑和微程序两种控制器使用几乎完全相同的执行步骤。

关于 16 位机组合逻辑控制器设计过程中,可以直接跳过对指令执行步骤的划分和功能确定,对使用的控制信号的选择等内容的详细讨论,直接引用微程序控制器的设计结果即可;针对两种控制器的区别,重点讲解节拍发生器的设计与实现,时序控制信号产生部件的设计与实现,并强调设计中有关的原理性知识,顺便提到一些实现中对所用电路的选择原则。

Page 44: TEC-2000  教学机的指令格式

PC 0

AR PCPCPC+1

IR(AR)

寄存器之间运算与传送

读、写内存 AR 地址

AR 地址

读、写内存 或 I/O 接口

读、写内存 PC 地址

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

A组

B组

C组

D组

/Reset

B 、 C 、 D组

1000

0000

0010

0011

0110 0100

0111 0101

Page 45: TEC-2000  教学机的指令格式

0→ PC、关中断

PC→ AR PC+1→ PC、

MEM→ I R

/ MAP

12151719

131416181A1C2024

DR+SR→ DR0405060708090A0B0C0D0E0F1011

DR-SR→ DRDR and SR→ DR

DR xor SR→ DRDR-SR

DR or SR→ DR

DR and SRSR→ DR

DR+1→ DRDR-1→ DRSHL DRSHR DR判断是否转移

PC+OFFSET→ PC

SP-1→ SP AR、SP→ AR SP+1→ SP、

DR→ ARSR→ AR

PC→ AR PC+1→ PC、PC→ AR PC+1→ PC、PC→ AR PC+1→ PC、SP→ AR SP+1→ SP、

PORT→ AR R0→ I OI O→ R0

FLAG→ MEMMEM→ FLAG

MEM→ DRSR→ MEM

MEM→ QMEM→ PC

SP-1→ SP AR、

PC→ MEM Q→PC、

转移

不转移

, RESET加电启动 按 按钮

00

01

02

03

30

STR→ Q、判中断

31

PC→ AR PC+1→ PC、

伪中断处理,空操作

3A

无中断

1B1D1E

1F23

21

22

有中断

A组

B D、 组

D组

B组

7-4 16图 位机微程序基本指令流程框图

加电启动时,执行 0PC

接下来的两步,完成取指操作

按指令具体功能 ,

再分别用 1 、 2 、3 、 4 步完成不同指令组的中各条指令的执行过程

最后检查中断请求信号,有请求时则响应中断,否则开始下一条指令的执行过程

1000

0000

0010 0011

0110 0100

0101

0111

指令操作码

16 位机组合逻辑控制器的指令执行流程设计

XXXX

XXXX

XXXX

Page 46: TEC-2000  教学机的指令格式

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

Page 47: TEC-2000  教学机的指令格式

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

Page 48: TEC-2000  教学机的指令格式

PC 0

AR PCPCPC+1

IR(AR)

寄存器之间运算与传送

读、写内存AR 地址

AR 地址读、写内存或 I/O 接口

读、写内存 PC 地址

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

A 组 B 组

C 组 D 组

/Reset

B C D 组

1000

0000

0010

0011

0110 0100

0111 0101

T3 := C-M# * /Reset

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

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 * IR15*IR14*IR11

T3 T2 T1 T0

Page 49: TEC-2000  教学机的指令格式

用 VHDL 语言描述节拍发生器的状态 转换 --the state changes at the rising edge of the clocklibrary ieee;use ieee.std_logic_1164.all;

entity state_mac is port ( CP, RESET: in std_logic; IR: in std_logic_vector (15 downto 0); state_out: out std_logic_vecto r(3 downto 0) );end entity state_mac;

Page 50: TEC-2000  教学机的指令格式

architecture performance of state_mac isbegin process (CP, RESET) is variable state: std_logic_vector(3 downto 0) := "ZZZZ"; begin if (RESET = '0') then state := "1000"; ELSE If cp’event and cp=’1’ then case state is when "1000" => state:= "0000"; when "0000" => state:= "0010"; when "0010" => if (IR(15 downto 14)="00" or IR(15 downto 14)="01") then state := "0011"; --Instuctions Group A else state := "0110"; --Instructions Group BCD end if; when "0011" =>state := "0000"; when "0110" => if (IR(15 downto 14)="11" AND IR(11)='0') then state := "0111"; --Instructions Group C else state := "0100"; --Instructions Group BD end if;

Page 51: TEC-2000  教学机的指令格式

when "0100" => if IR(15 downto 14)="11" then state := "0111"; --Instruction Group D  else state := "0000"; -- Group B end if; when "0111" =>state := "0101"; when "0101" => state := "0000"; --memory reading or writing when others =>state := state; end case; end if; end if; state_out <= state; end process;end architecture performance;

Page 52: TEC-2000  教学机的指令格式

(2) 时序控制信号形成部件的设计与实现

时序控制信号形成部件用于提供计算机各功能部件运行所要求的每一位控制信号。设计与实现的过程是: 1. 设计指令执行流程表; 2. 按流程表写出每一位控制信号的逻辑表达式;

用一个与项表示一位控制信号在流程表的一个横行中为 1 的情形; 用一个或项汇总这位控制信号在流程表中所有横行中为 1 的全部情形; 按前两步方法依次写出每一个控制信号的逻辑表达式,若可能,适当化减。

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

Page 53: TEC-2000  教学机的指令格式

下址 CI3~0 SCC3~0 MRW I2~0 SA I8~6 SB I5~3 B 口 A 口 SST SCISSH DC2 DC1

0000 无 100 001 2 0 5 5 0 4 3 0

0010 关 001 000 1 0 0 0 0 0 1 0

00 2 0 100 000 1 0 0 0 0 0 0 0

0011 00000000 100 001 3 0 DR SR 1 0 0 0

0011 00000111 100 100 3 0 DR SR 0 0 0 0

0110 10000010 100 111 1 0 0 0 0 0 3 2

0100 10000010 011 111 3 0 0 0 0 0 0 0

0110 11001110 100 011 2 0 5 5 0 4 3 0

0100 11001110 001 111 0 0 0 0 0 0 0 0

0111 11001110 100 011 3 1 4 0 0 0 3 0

0101 11001110 000 010 2 0 5 5 0 0 0 1

指令执行流程表举例 ADD DR, SR MVRR DR, SR IN IO-PORT CALA ADR

节拍 指令操作码

Page 54: TEC-2000  教学机的指令格式

按流程表写出每一位控制信号的逻辑表达式 : 用一个与项表示一位控制信号在流程表的一个横行中为 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. 对设计结果进行调试、改错,直到全部正确 ;

Page 55: TEC-2000  教学机的指令格式

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY decode IS PORT ( IR: IN STD_LOGIC_VECTOR (15 DOWNTO 0); STATE: IN STD_LOGIC_VECTOR (3 DOWNTO 0); FLAG: IN STD_LOGIC_VECTOR (3 DOWNTO 0); MIO: OUT STD_LOGIC; REQ: OUT STD_LOGIC; WE: OUT STD_LOGIC; ADDR_A: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ADDR_B: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SCI: OUT STD_LOGIC_VECTOR(1 DOWNTO 0); SSH: OUT STD_LOGIC_VECTOR(1 DOWNTO 0); I: OUT STD_LOGIC_VECTOR(8 DOWNTO 0); SST: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); DC1: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); DC2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END;

Page 56: TEC-2000  教学机的指令格式

ARCHITECTURE behav OF decode IS SIGNAL C,Z: STD_LOGIC; SIGNAL CON: STD_LOGIC_VECTOR(33 DOWNTO 0); SIGNAL OP: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL DR,SR: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN C<=FLAG(3); Z<=FLAG(2); PROCESS (IR,STATE,C,Z) BEGIN OP<=IR (15 DOWNTO 8); DR<=IR (7 DOWNTO 4); SR<=IR (3 DOWNTO 0);

Page 57: TEC-2000  教学机的指令格式

CASE STATE IS WHEN "1000" => CON<="1000101010100000110010010000000111"; --0→ PC WHEN "0000" => CON<="1000101010101000100000110000001011"; --PC→AR WHEN "0010" => CON<="0010000000000000010000000000000001"; --MEM→IR

WHEN "0011" => CASE OP IS -- 执行 A 组指令 WHEN "00000000" => CON<="100"&SR&DR&"00000110000010010000000"; --ADD WHEN "00000001" => CON<="100"&SR&DR&"00000110010010010000000"; --SUB WHEN "00000010" => CON<="100"&SR&DR&"00000111000010010000000"; --AND ………….. WHEN "01000001" => CON<="1000101010100000110001010000100000"; --JR WHEN "01000100" => CON<="1000101010100000"&C&"10001010000100000"; --JRC WHEN "01000101" => CON<="1000101010100000"& NOT C&"10001010000100000"; --JRNC …………..

Page 58: TEC-2000  教学机的指令格式

WHEN "0110" => CASE OP IS -- 执行 B 、 C 、 D 组指令(传送地址) WHEN "10000000" => CON<="1000101010101000100000110000000011"; --JMPA WHEN "10000001" => CON<="100"&SR&"000000000010001000000000011"; --LDRR WHEN "10000010" => CON<="1000000000000000010001110000100011"; --IN ……….. WHEN "10000011" => WHEN OTHERS=>NULL;END CASE;

WHEN "0100" => CASE OP IS -- 执行 B 、 D 组指令(读写操作) WHEN "10000000" => CON<="0010000010100000110001110000000000"; --JMPA WHEN "10000001" => CON<="0010000"&DR&"00000110001110000000000"; --LDRR WHEN "10000010" => CON<="0110000000000000110001110000000000"; --IN ………..END CASE;

Page 59: TEC-2000  教学机的指令格式

WHEN "0101" => CASE OP IS -- 执行 D 组指令(读写操作) WHEN "11001110" => CON<="0000101010100000100000100000010000"; --CALA WHEN OTHERS=>NULL; END CASE; WHEN OTHERS=>NULL;END CASE;

MIO<=CON (33); REQ<=CON (32); WE<=CON (31); ADDR_A<=CON (30 DOWNTO 27); ADDR_B<=CON (26 DOWNTO 23); SCI<=CON (22 DOWNTO 21); SSH<=CON (20 DOWNTO 19); SST<=CON (9 DOWNTO 7); I<=CON (18 DOWNTO 10); DC1<=CON (6 DOWNTO 4); DC2<=CON (3 DOWNTO 0); END PROCESS;END;