实验七基本模型机的设计与实现
- 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 基本模型机微程序流程图
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换成十六进制格式文件。
表7-10-1
M25M24M23M22M21M20M19M18
C B A AR未用P(3)A9A8
M17M16M15M14M13M12M11M10
CE LOAD CN M S0S1S2S3
M9M8M7M6M5M4M3M2
P(2)LDAR LDPC LDIR LDDR2LDDR1LDR0WE 876543M1M0
UA0UA1UA2UA3UA4UA5P(1)SW-B
A字段
C B A选择
000禁止
001PC-B
010ALU-B
011299-B
100Rs-B
101Rd-B
110保留位
111保留位
本实验设计的机器指令程序如下:
地址(二进制) 内容(二进制) 助记符 说 明
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 0000 JMP 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 ;空操作