微程序设计

实验目的

  1. 掌握微程序设计。

  2. 熟悉实验调试软件的使用。

实验原理

模型计算机硬件系统的数据通路见理论课教材。CPU的字长为16位,内部采用16位宽的单总线结构,包括运算器和控制器两个部件。系统总线采用单总线结构,包括16位的数据总线DB、16位的地址总线AB和控制总线CB。CPU内部总线IB与系统总线之间通过DR、AR相联。主存储器的字长也是16位,并且按字编址,不支持字节访问。

微指令的编码方式采用字段直接编码方式,微指令格式见理论课教材。本实验只使用固定转移,即BM字段值固定为0。下面以一条指令为例,说明微程序的设计。假设要实现的指令如下:

MOV #5AA5H,R1

该指令的功能为将立即数#5AA5H传送给寄存器R1。

一条指令的完成需要经过几个阶段,包括取指阶段、取操作数阶段、执行阶段。为简化设计,这里只考虑完成这一条指令,源操作数寻址方式只考虑立即寻址,没有取目的操作数的过程,在执行阶段直接将源操作数送入目的寄存器R1。示例微程序见表 1

表 1. 示例微程序

微地址(H)

微指令(H)

微指令字段(H)

微命令

F0

F1

F2

F3

F4

F5

F6

F7

F8

F9

取指令

000

20010001

1

0

0

0

0

1

0

0

0

001

PCoe, ARce

001

00029002

0

0

0

0

0

2

1

1

0

002

RD, DRces, PCinc

002

48000003

2

2

0

0

0

0

0

0

0

003

DRoe, IRce

取数

003

20010004

1

0

0

0

0

1

0

0

0

004

PCoe,ARce

004

00029005

0

0

0

0

0

2

1

1

0

005

RD, DRces, PCinc

005

500000006

2

4

0

0

0

0

0

0

0

006

DRoe, RYce

006

8C000000

4

3

0

0

0

0

0

0

0

000

RYoe,GRSce

预习要求

1)认真阅读、理解实验原理,掌握微程序设计方法。

2)编写“INC 0040H”的微程序,填入表 2

表 2. 实验任务的微程序

微地址(H)

微指令(H)

微指令字段(H)

微命令

F0

F1

F2

F3

F4

F5

F6

F7

F8

F9

取指令

000

20010001

1

0

0

0

0

1

0

0

0

001

PCoe, ARce

001

00029002

0

0

0

0

0

2

1

1

0

002

RD, DRces, PCinc

002

48000003

2

2

0

0

0

0

0

0

0

003

DRoe, IRce

取操作数

003

0

004

004

0

005

005

0

006

006

0

007

007

0

008

执行

008

0

009

009

0

00A

00A

0

000

可以利用实验系统提供的微指令编码器。

实验任务

运行示例微程序

(1)输入微程序

表 1示例微程序通过调试软件输入到实验板的控存。

(2)输入主程序

首先将指令MOV #5AA5, R1翻译成机器码。查教材指令编码表,MOV指令编码的高4位是0001B,低12位是两个操作数的寻址方式,源操作数在前,目的操作数在后,各占6位,查教材寻址方式编码表,立即寻址的编码是011000B,R1寄存器寻址的编码是000001B,因此指令第一个字的二进制编码是0001-0110-0000-0001B,转换为16进制是1601H;指令的第二个字是立即数5AA5H。因此可以翻译出指令的机器码如下:

1601 5AA5 ; MOV #5AA5, R1

将1601 5AA5通过调试软件输入到实验模型机从0030H地址开始的主存单元。

(3)运行微程序

将有变化的数据记录在下表中(没有变化的留为空白)。分析运行结果是否正确。

微地址

微指令

IB

PC

AR

IR

DR

TR

Rn

000

001

002

003

004

005

006

编写INC 0040H指令的微程序并运行

将预习完成的表 2微程序通过调试软件输入到实验板的控存。

查指令编码表翻译出指令的机器码:

_________ __________ ; INC 0040H

从主存的0030H单元开始,存放指令的机器码。在0040H单元预先写入操作数,如FFFFH。运行微程序,将数据记录在下表中。微程序运行结束后,刷新主存显示,查看0040H单元的内容为_______。分析运行结果是否正确。

微地址

000

001

002

003

004

005

006

007

008

009

00A

编写包含微转移分支的微指令

选做。

参考文献

  • 肖铁军 等. 计算机组成原理(第3版). 清华大学出版社. 2021年9月第3版