实验七基本模型机的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七基本模型机的设计与实现
一、实验目的
⒈在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。
⒉为其定义5条机器指令,并编写相应的微程序,上机调试掌握整机概念。
二、实验设备
Dais-CMH+/CMH 计算器组成原理教学实验系统一台,实验用扁平线、导线若干。
三、实验原理
部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT (输出)、JMP(无条件转移),其指令格式如下(前三位为操作码):
=============================================================== 助记符机器指令码说明
--------------------------------------------------------------- IN R0,SW 0010 0000 数据开关状态→R0
ADD R0,[addr] 0100 0000 XXXXXXXX R0+[addr]→R0
STA [addr],R0 0110 0000 XXXXXXXX R0→[addr]
OUT [addr],LED 1000 0000 XXXXXXXX [addr]→LED
JMP addr 1010 0000 XXXXXXXX addr→PC
===============================================================
其中IN为单字节(8位),其余为双字节指令,XXXXXXXX为addr对应的二进制地址码。
根据以上要求设计数据通路框图,如图7-10-1所示。系统涉及到的微程序流程见图7-7-3,当拟定“取指”微指令时,该微指令的判别测试字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支。本机用指令寄存器的前3位(IR7~IR5)作为测试条件,出现8路分支,占用8个固定微地址单元。
当全部微程序设计完毕后,应将每条微指令代码化,表7-10-1即为将图7-10-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
下面介绍指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据总线上,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试P(1),通过
节拍脉冲T4的控制以便识别所要求的操作。“指令寄存器”根据指令中的操作码译码
强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。
本系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备(INPUT DEVICE);另一种是LED块,它作为输出设备(OUTPUT DEVICE)。例如:输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到外部数据总线上,当LDED有效时,将数据打入输出锁存器,驱
动LED显示。
图7-10-1基本模型机数据通路框图
图7-10-2基本模型机微程序流程图
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换成十六进制格式文件。
本实验设计的机器指令程序如下:
地址(二进制)内容(二进制)助记符说明
0000 0010 0000 IN R0,SW 数据开关内容→R0
0001 0100 0000 ADD R0,[09H] R0+[09H]→R0
0010 0000 1001
0011 0110 0000 STA [0BH],R0 R0→[0BH]
0100 0000 1011
0101 1000 0000 OUT [0BH],LED [0BH]→LED
0110 0000 1011
0111 1100 0000JMP 00H 00H→PC
1000 0000 0000
1001 0101 0101 用户自定义
1010 1010 1010 用户自定义
1011 求和结果存放单元
将微代码流程图代码化,本实验给出的微程序二进制代码转化成十六进制格式文件。机器指令及微程序按照规定的格式编写成十六进制格式文件,程序清单如下:
;机器指令格式说明("P"代表机器指令):
; PXX XX
; 地址机器代码
P00 20 ;IN R0,SW
P01 40 09 ;ADD R0,[09H]
P03 60 0B ;STA [0BH],R0
P05 80 0B ;OUT [0BH],LED
P07 A0 00 ;JMP 00H
P09 55
P0A AA
;32位微控制代码说明("M"代表微指令):
; MXX XX XX XX XX
; 微地址32位微指令代码
M00 00 00 00 80 ;空操作
M01 20 00 60 40 ;PC→AR,PC+1
M02 00 80 10 12 ;RAM→IR
M03 00 80 40 20 ;RAM→AR
M04 00 80 08 A0 ;RAM→DR2
M05 80 00 04 60 ;R0→DR1
M06 40 29 02 80 ;DR1+DR2→R0
M07 00 80 40 68 ;RAM→AR
M08 00 00 00 80 ;用户自定义单元
M09 00 00 02 81 ;SW→R0
M0A 20 00 60 C0 ;PC→AR,PC+1
M0B 20 00 60 E0 ;PC→AR,PC+1
M0C 20 00 60 C8 ;PC→AR,PC+1
M0D 20 00 60 A8 ;PC→AR,PC+1
M0E 20 00 60 E8 ;PC→AR,PC+1
M0F 20 00 60 98 ;PC→AR,PC+1
M10 00 40 20 89 ;SW→PC
M11 20 00 60 48 ;PC→AR,PC+1
M12 00 80 01 89 ;SW→RAM
M13 00 80 40 28 ;RAM→AR
M14 03 80 00 80 ;RAM→LED
M15 00 C0 20 80 ;RAM→PC
M16 80 80 01 80 ;R0→RAM
四、实验方法
(一)实验连线
将系统中所有模块按照要求进行实验连线。
(二)单机实验
⑴机器程序和与其对应的微控制程序的写入:
用【装载】命令键快速准确装入微控制程序,其操作方法是在闪动的“P.”下,键入数字键“1”(基本模型机代号),然后再键入【装载】命令键,实验装置自动装载由数字键定义的模型机机器程序及与其对应的微控制程序,装载完毕自动返“P.”待令。
⑵运行程序
①单步微指令