微控制器和基本模型机 实现实验

42
微微微微微微微微微微 微微微微

Upload: akiko

Post on 12-Jan-2016

170 views

Category:

Documents


11 download

DESCRIPTION

微控制器和基本模型机 实现实验. 微程序控制器的一般组成和工作原理. 1 、 基本组成 组成的结构框图如图所示 。. 微程序控制器. uIR. uMAR. 主要由 3 部分组成: ① 控制存储器 CM 是微程序控制器的核心。用来存放实现全部指令系统所对应 的微程序。它的容量根据指令系统的大小而定,其字长由控 制命令的多少、微指令的编码格式及地址字段的宽度而定。 一般采用 TTL 型 ROM (或 EPROM ) 实现。 ② 微指令寄存器 uIR - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

微控制器和基本模型机实现实验

Page 2: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

微程序控制器的一般组成和工作原理

1 、 基本组成 组成的结构框图如图所示。

微程序控制器

uIR uMAR

Page 3: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

主要由 3 部分组成: ① 控制存储器 CM 是微程序控制器的核心。用来存放实现全部指令系统所对应 的微程序。它的容量根据指令系统的大小而定,其字长由控 制命令的多少、微指令的编码格式及地址字段的宽度而定。 一般采用 TTL 型 ROM (或 EPROM )实现。 ② 微指令寄存器 uIR 也称控制数据寄存器,用来存放从 CM 中取出的一条微指令的 信息。它的位数同微指令字长相等。 ③ 微地址形成部件 用来产生初始微地址和后继微地址,以保证微指令的连续执 行。包括微地址寄存器 uMAR ,存放部件送来的微地址。

Page 4: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

2 、工作过程 工作过程是在微程序控制器的控制下计算机执行机器指令的过 程。 可描述为: ① 执行取指令公共操作 公共操作通常由一个取指微程序完成,可能仅由一二条微指 令组成。 取指微指令的入口微地址→ uMAR → M(uMAR) → uIR

→ 有关微指令,控制其它部件实现取指操作→ 机器指令 存入 IR

一般取指微程序的入口地址为 CM 的 0 单元 ② 由机器指令中 OP Code 通过微地址形成部件产生该机器指 令所对应的微程序的入口地址→ uMAR

③ 从 CM 中逐条对应微指令并执行 ④ 完成了一条机器指令的一个微程序后,又回到取指微程序 的入口地址,继续第①步

Page 5: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

DVCC 实验系统中微程序控制器的硬件电路

可分成 4 个组成部分:

控制存储器 CM ;

微地址发生器

微代码发生器

微代码和指令译码器

硬件系统框图如下:

Page 6: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

Page 7: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

1 、控制存储器 CM ;

Page 8: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

◆ 3 片 2816 芯片 ( U17-U19 )

◆ 24 位微指令

◆ 手动方式、自动方式写入微指令

◆ 2816 地址线 A0-A5 的连接:

U13 ( 74LS374 )的输出端

U1 (单片机)输出口

U12 ( 74LS245 )的输出端

Page 9: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

Page 10: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

◆ 2816 数据线 D0-D7 的连接 数据线为输入时,连接:① U20 、 U21 、 U22 ( 74LS245 ) ② U2 、 U3 、 U4 ( 74LS245 )

Page 11: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

数据线为输出时,连接:① U2 、 U3 、 U4 ( 74LS245 ) ② U23 、 U24 、 U27 ( 74LS273 、 74LS175 )

Page 12: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

2 、微地址发生器 3 种方式产生微地址:

① 手动方式 由 6 个开关和 74LS374 锁存微地址;

② 自动方式 由单片机 P2.0-P2.5 输出微地址;

③ 强制方式 在手动或自动执行程序指令时判断条件确定后继

地址采用 。

由 U14 、 U15 、 U16 ( 74LS74 )

和 U1274LS245 )产生微地址,电路图如下:

Page 13: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

Page 14: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

Page 15: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

3 、微代码产生器 2 种方式产生微代码 ( 1 )手动方式 24 个开关 MK1- MK24 和 3 片 74LS245 组合产生 24 位微指令代码输入 2816 ; ( 2 )自动方式 由单片机 P0.0-P0.7 输出微指令代码经 3 片 74LS245 送入 2816 ;

Page 16: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

4 、微代码和指令译码器 ( 1 )微指令的控制字段位的译码 U17 、 U18 ( 2 片 2816 )的输出 16 位锁存于 U23 、 U24 ( 74LS273 ); U19 的输出 2 位锁存于 U27 ( 74LS175 )。

Page 17: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

U23 、 U24 ( 74LS273 )的输出 M 9- M 24 中的 M13-M15 经 GAL16V8 译码得 A 字段 6 个命令; M10-M12 经 74LS138 译码得 B字段 6 个命令; M9 和 U27 输出 M7 、 M8 经 74LS138 译码得 C 字段 6 个命令。

Page 18: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

( 2 ) 指令操作码和判断条件字和译码

Page 19: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

Page 20: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

微指令和微程序1 、微指令格式

2 、采用直接控制法和字段编码法结合方法设计水平型和 断定方式微指令 ( 1 )直接控制的微命令 算术逻辑运算控制微命令: S0 、 S1 、 S2 、 S3 、 M 、 CN 读写控制命令: WE WE=1 写 ; WE=0 读 地址译码控制命令: B1 、 B0 B1 、 B0 的不同组合产生不同控制信号选中不同部件: 0 0 开关的选通信号 0 1 RAM ( 6264 )芯片的选通信号 1 0 8 段 LED 显示器的选通信号 1 1 未选通部件

Page 21: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

D24

D23

D22

D21

D20

D19

D18

D17

D16

S3 S2 S1 S0 M CN WE B1 B0

( 2 )字段编码的微命令 将余下 9 位分成 3 段分别称为 A 字段、 B 字段、 C 字段,每字段包含 3 位,分别产生 6 个相斥性微命令。 A 字段命令

LDRi :寄存器 R0-R3 的数据锁存信号

LDDR1 :数据寄存器 DR1 的锁存信号

LDDR2 :数据寄存器 DR2 的锁存信号

LDIR :指令寄存器 IR 的锁存信号 LOAD :程序计数器 PC 的锁存信号 LDAR :地址寄存器 AR 的锁存信号

D15

D14

D13

选择

0 0 0

0 0 1 LDRi 0 1 0 LDDR1

0 1 1 LDDR2

1 0 0 LDIR

1 0 1 LOAD

1 1 0 LDAR

Page 22: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

B 字段命令

RSB :源寄存器( R0-R3 )的选通信号 RDB :目标寄存器( R0-R3 )的选通信号 RIB : 变址寄存器( R0-R3 )的选通信号 299B :移位寄存器输出允许信号;判零电路 标志位 ALUB : ALU 结果输出允许信号 PCB :程序计数器 PC 输出允许信号

C 字段命令

P(1) :P(2) : 条件判断

P(3) : 根据指令 I4-I7 、开关 SWA 、 P(4) : SWC 产生下条微指令地址

AR : 判零电路、进位控制位LDPC :程序计数器 PC 的打入脉冲

D12

D11

D10

选择

0 0 0

0 0 1 RSB

0 1 0 RDB

0 1 1 RIB

1 0 0 299B

1 0 1 ALUB

1 1 0 PCB

D9 D8 D7 选择0 0 0

0 0 1 P(1)

0 1 0 P(2)

0 1 1 P(3)

1 0 0 P(4)

1 0 1 AR

1 1 0 LDPC

Page 23: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

24 2322

21 20 1918

17 1615 14

1312 11

109 8 7 6 5 4 3 2 1

S3

S2

S1

S0 M C

NWE

B1

B0

A B CUA5

UA4

UA3

UA2

UA1

UA0

微指令格式设计为:

Page 24: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

3 、 5 条基本机器指令及其功能 外设输入指令 IN : 开关 KD0-KD7 值 R0

二进制加法指令 ADD [ADDR] : R0+ ( ADDR ) R0

存数指令 STA [ADDR] : R0 ( ADDR ) 输出到外设指令 OUT [ADDR] : ( ADDR ) LED 显示器 无条件转移指令 JMP ADDR : ( ADDR ) PC

4 、机器指令的微程序 (1) 取指令操作 ( 取指令操作码 )

◆ 取指微操作: PC AR , PC+1 PC ; ( RAM ( AR )) BUS IR

◆ 取指微程序流程图

Page 25: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

● PC AR : LDAR =1 , LDPC=1 ( LOAD=1 ), PCB=0 PC+1 PC :● ( RAM ( AR )) BUS IR : LDIR=1 , RAM CE=0

P ( 1 ) =0

◆ 取指微命令

◆ 取指令微程序( 2 条)

微地址 S3 S2 S1 S0 M CN WE B1 B0 A B C UA5…UA0

0   1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0

0   2 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0

Page 26: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

(2) 加法指令 ◆ 加法指令微操作: PC AR , PC+1 PC ; ( RAM ( AR )) BUS AR

( RAM ( AR )) BUS DR2

R0 DR1

DR1 + DR2 BUS R0

◆ 加法指令微程序流程图

Page 27: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

◆ 加法指令微程序( 5 条)

微地址 S3 S2 S1 S0 M CN WE B1 B0 A B C UA5…UA0

0   9 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1

0   3 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

0   4 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1

0   5 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0

0   6 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1

● PC AR : LDAR =1 , LDPC=1 ( LOAD=1 ), PCB=0 PC+1 PC :● ( RAM ( AR )) BUS AR : LDAR=1 , RAM CE =0● ( RAM ( AR )) BUS DR2 : LDDR2=1 , RAM CE=0● R0 DR1 : LDDR1=1 , RSB=0● DR1 + DR2 BUS R0 : LDR0K=1 , ALUB=0

◆ 加法指令微命令

Page 28: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

(3) 外设输入指令 ◆ 外设输入指令微操作: SW R0

◆ 外设输入指令微命令 :

SW R0 : SW CE =0 ; LDRIK=1

◆ 外设输入指令微程序( 1 条)

微地址 S3 S2 S1 S0 M CN WE B1 B0 A B C UA5…UA0

0   8 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1

Page 29: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

(4) 存数指令微操作和微程序

◆ 存数指令微操作: PC AR , PC+1 PC ; ( RAM ( AR )) BUS AR

R0 ( RAM ( AR )) ◆ 存数指令微命令 : ● PC AR : LDAR =1 , LDPC=1 ( LOAD=1 ), PCB=0 PC+1 PC : ● ( RAM ( AR )) BUS AR : LDAR=1 , RAM CE =0

● R0 ( RAM ( AR )) : RAM CE =0, RSB=0

◆ 存数指令微程序( 3 条)

微地址 S3 S2 S1 S0 M CN WE B1 B0 A B C UA5…UA0

0 A 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1

0   7 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1

0   D 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1

Page 30: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

(5) 输出外设指令微操作和微程序 (6) 无条件转移指令微操作和微程序

5 、基本指令的微程序流程图

Page 31: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

读写微指令的控制程序的微程序流程图

6 、微程序的微代码表

Page 32: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

微地址 S3 S2 S1 S0 M CN WE B1 B0 A B C UA5…UA0

0   0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0

0   1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0

0   2 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0

0   3 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

0   4 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1

0   5 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0

0   6 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1

0   7 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1

0   8 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1

0   9 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1

0 A 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1

0   B 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0

0   C 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0

0   D 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1

0   E 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1

0   F 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1

1   0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0

1   1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0

1   2 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1

1   3 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

1   4 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0

1   5 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1

1   6 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1

1 7 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0

1   8 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1

Page 33: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

5 条机器指令的机器码 ( 二进制代码 )

1 、助记符指令 外设输入指令 : IN

二进制加法指令 : ADD [ADDR]

存数指令 : STA [ADDR]

输出到外设指令 : OUT [ADDR]

无条件转移指令 : JMP ADDR

2 、机器码指令 ◆ IN 指令为单字节指令,该字节为指令操作码; IN 指令的机器码为: 0000 0000 ( 00H )

◆ ADD [ADDR] 指令为双字节指令,一字节为指令操作码,一字节 为地址码;寻址方式为存储器间接寻址。 ADD [ADDR] 指令的机器码为: 0001 0000 XXXX XXXX

( 10 XXH )

Page 34: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

例 : 实现 R0 和 RAM 中 20H 单元的内容相加的加法指令应为: ADD [20H] ( 10 20 H )

◆ STA [ADDR] 指令为双字节指令,一字节为指令操作码,一字 节为地址码;寻址方式为存储器间接寻址。 STA [ADDR] 指令的机器码为: 0010 0000 XXXX XXXX

( 20 XXH )

Page 35: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

例 : 实现将 R0 内容传送到 RAM 中 0AH 单元的存数指令应为: STA [ 0AH] ( 20 0AH )

◆ OUT [ADDR] 指令为双字节指令,一字节为指令操作码,一字 节为地址码;寻址方式为存储器间接寻址。 OUT [ADDR] 指令的机器码为: 0011 0000 XXXX XXXX

( 30 XXH )

Page 36: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

例 : 实现将 RAM 中 0AH 单元的内容输出到外设 LED 显示器的外设输 出指令应为: OUT [ 0AH] ( 30 0AH )

Page 37: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

◆ JMP ADDR 指令为双字节指令,一字节为指令操作码,一字 节为地址码;寻址方式为存储器直接寻址。 JMP ADDR 指令的机器码为: 0100 0000 XXXX XXXX ( 40 XXH )例 : 实现转移执行地址为 0AH 单元的指令的转移指令应为: JMP 0AH ( 40 0AH )

Page 38: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

采用基本机器指令的编程 ◆ 采用 5 条机器指令助记符指令编写实现特定功能简单程序段;

◆ 助记符指令程序段转换成机器码程序;

例 : 编写一段程序实现将开关输入的一个 8 位数据存放于 RAM 的10H 单元内,同时在 LED 显示器上显示。

助记符指令 机器码指令

IN 00 H

STA [10H] 20 10H

OUT [10H] 30 10H

JMP 00H 40 00H

◆ 指令的地址分配:一般 CPU复位后 PC 为 0 ,表示 CPU 执行起始地址为 00H 单元的指令。

Page 39: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

以上机器码指令程序可安排为:

RAM 单元地址 机器码 00H 00 H 01H 20 H 02H 10 H 03H 30 H 04H 10 H 05H 40 H 06H 00 H

Page 40: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

设计任务 1

采用 5 条机器指令,编写一段程序实现将从外部开关输入的被加数与存放于某个存储单元的加数相加之和存放于另一个存储单元的功能。

设计任务 2

采用 5 条机器指令,编写一段程序实现将以 30H 为起始地址的5 个单元分别存放数据 01H 、 02H 、 03H 、 04H 、 05H 的功能。

设计任务 3

设计减法指令取代加法指令构成基本模型机的 5 条机器指令。采用这 5 条机器指令,编写一段程序实现将从外部开关输入的被减数与存放于某个存储单元的减数相减之差存放于另一个存储单元的功能。

Page 41: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

微程序的读、写、和机器指令程序运行的操作

1 、 DVCC 系统箱上的操作 ● 写微程序 ① 设置 “编程开关”、 “运行控制”、 “运行方式”开关状态; ② 用模拟开关 UA0~ UA5 设置 6 位微地址,用 模拟开关 MK1~ MK24 设置 24 位微代码; ③ 按动“启动运行”开关,启动时序电路,将微代码写入到 2816

的相应地址单元中; ● 读微程序 ① 设置 “编程开关”、“运行控制”、“运行方式”开关状态; ② 用模拟开关 UA0~ UA5 设置 6 位微地址; ③ 按动“启动运行”开关,启动时序电路,观察显示灯 LMD1~ LMD24 的状态,读出微代码;

Page 42: 微控制器和基本模型机 实现实验

计 算 机 组 成 设 计

2 、 PC 机上的操作 运行 DVCC 组成原理实验集成调试软件,系统提供菜单和多个显 示窗口,在屏幕上点击相应菜单或图标可以输入、修改微指令代 码和机器指令代码,也可以单步、连续运行指令,可以观察数据 的动态流向、寄存器和存储器单元的数据的显示。

例:加法指令 ( ADD[0AH] )的微程序执行的动态过程及其数据流向。 在主存 RAM 地址为 00H处 开始存放 指令 ADD[ 0AH] 和 JMP 00H 指令的机器码 。在操作界面的 RAM 中输入 00 10 ( ADD[ 0AH] ) 01 0A

02 40 ( JMP 00H ) 03 00

采用单步调试方式可以观察到执行每条微指令的数据流向和结果