复杂模型机的组成与程序运行课程设计_
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内蒙古师范大学计算机与信息工程学院《计算机组成原理》
课程设计报告
题目: 复杂模型机的组成与程序运行(3)
1 任务描述
设计题目名称:复杂模型机的组成与程序运行(3)
要求:基于EL_JY_Ⅱ8型计算机组成原理实验系统,设计一个简单的计算机整机系统—模型机受到实验系统的限制,硬件部分基本不做改动。在充分分析和研究实验系统的组成及工作原理的基础上,确定模型机的数据通路结构,根据指令和微指令的译码情况,设计机器指令格式和微指令格式(不能超出硬件的限制),设计完成以下几条机器指令和相应的微程序,输入程序并运行跟踪观察结果。指令有四种不同的寻址方式可选择。
IN 01,R2 “D-INPUT”中的开关状态->R2
COM R2 R2->R2
RLC R2,R0 CY ->R2, R2->R0
MOV R2,R0 R2->R0
AND 00,0DH,R0 R0 * [0DH] -> R0 ;直接寻址方式
STA 10,0EH,R2 R2 ->[0EH+R1] ;变址寻址方式
JMP 00,01H 01H -> PC ;直接寻址方式
HALT
0DH、0EH单元内容分别为02H、03H。
2 设计设备
EY-JY-II8型计算机组成原理实验系统一套,排线若干。
3 设计原理和方法
3.1 设计原理
3.1.1 数据格式:
本实验计算机采用定点补码表示法表示数据,字长为8位,其格式如下:
其中第7位为符号位,数值表示范围是:-1≤X<1
3.1.2 指令格式:
本实验中的三条算术逻辑指令COM、RLC、MOV用单字节表示,寻址方式采用寄存器直接寻址其格式如下:
其中OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
本实验中的两条访问指令,即存数STA、与运算AND,一条转移指令,即无条件转移JMP,指令格式如下:
其中OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用),D为位移量(正负均可),M为寻址模式,其定义如下:
寻址模式M 有效地址E 说明
00
01
10
11
E=D
E=(D)
E=(RI)+D
E=(PC)+D
直接寻址
间接寻址
RI变址寻址
相对寻址
本实验规定编址寄存器RI指定为寄存器R2。
本实验的输入IN指令采用单字节指令,其格式如下:
7 6 5 4 3 2 1 0
OP-CODE addr Rd
其中
本实验中的停机指令HALT,指令格式如下:
7 6 5 4 3 2 1 0
OP-CODE 00 00
HALT
3.1.3 指令系统
本实验共有8条基本指令,其中算术指令3条,访问内存指令和程序控制指令3条,输入指令1条,停机指令1条。表1-2列出了各条指令的格式、汇编符号和指令功能。
3.1.4 按微指令格式,参照微程序流程图1-1将每条微指令代码化,译成二进制微代码。
表 1-1
图 1-1(b)微程序流程图
4 代码清单
4.1 微程序代码清单
4.2 机器指令代码清单
化简后的微代码:
微地址(二进制) 微代码(十六进制)
00 007F88
01 005B42
02 016FDF
03 014FC4
04 015F16
05 014FC6
06 0025C7
07 9453D5
10 005B4A
11 005B4C
12 014FDD
13 007FC1
14 01CFDE
15 005B43
16 005B45
17 000FC1
20 0041DA
21 3001DB
化简后的机器指令:
5 设计运行结果分析
5.1 实验步骤
5.1.1 写微代码
使K1、K2、K3、K4拨到写状态。在“CLASS SELECT”状态按“实验选择”键,输入08或8及确认后,进入实验八程序,显示为“ES08”,按下“确认”键,显示为“CTL1_”,对微代码进行操作。输入“1”显示“CTL1_1”其意义是写微代码。然后显示“U-ADDR”,这时输入微地址“******”该微地址是用6位二进制数表示的2位八进制数,然后按“确认”键,显示“U-CODE”,这时输入微代码“******”,按“确认”显示“PULSE”,按“单步”完成一条微代码的输入,重新显示“U-ADDR”提示输入第二条微代码地址。
5.1.2 微代码校验
先将K1、K2、K3、K4拨到读状态,按照键盘说明使之显示“CTL1_”时,输入“2”按“确认”进入读代码状态,读的过程和写过程类似。按确认后显示“U-ADDR”,提示输入代码地址,输入后按“确认”显示“PULSE”,按“单步”完成一条微指令的读过程,重新显示“U-ADDR”,微代码显示灯显示为读出的微代码。
5.1.3 写机器指令
先将K1、K2、K3、K4拨到运行状态,按键盘说明选择实验后,按“取消”键进入对机器指令操
当微地址显示灯显示“001100”时,按“确认”显示“CODE--”,提示输入机器指令,按“确认”显示“PULSE”,再按“单步”使之再显示“001100”时输入下一条指令,直到指令输入完成,按“取消”退出写机器指令状态。
5.1.4 验机器指令
拨动CLR清零,选择实验后按“确认”进入实验再按“取消”进入机器指令操作状态,显示“CTL2_”,输入“2”按“确认”,显示“PULSE”,一次一次按“单步”当微地址显示灯显示“001010”时,数据总线上显示的为写入的机器指令,读的过程注意微地址灯。地址灯和数据总线的对应关系。
5.1.5 运行程序
运行程序之前拨动CLR清零。同上面一样只是当显示“CTL2_”时输入“3”按“确认”进入机器指令运行状态显示“RUN CODE”,可以“单步”运行程序也可以“全速”运行,运行过程中提示输入相应的量,运行结束后观察实验运行结果。
5.2 运行过程
当程序全速运行后,微地址显示灯依次显示10、13、01进入流程图的开始状态,随后依次显示02、37,此时通过P(1)测试进行判断执行下面哪个指令流程。先运行IN指令后,微地址显示灯依次显示17、01然后显示02、37,此时程序运行到COM,微地址显示灯依次显示:20、32、01,当程序运行到RLC后,微地址显示灯依次显示:21、33、24,当程序运行到MOV时流程走22、01,当流程分别经过15、03、04时通过P(2)进行判断执行转移指令中的STA还是JMP, 当流程经过JMP时,微地址显示灯显示:27。当流程分别经过16、05、06、07、25时,通过P(2)进行判断执行转移指令中的STA还是JMP,当流程经过STA时,微地址显示灯显示26,当流程执行到HALT即微地址显示灯显示23时执行停机指令,程序结束。
5.3 结果分析
运行结果:全速运行之后只运行COM 指令,并且一直单一的循环。
出错情况:在输入机器指令时未能把全部机器指令写进去,写一半的时候微地址显示灯就会灭,或微地址显示灯不能自动加一.因此只写入了IN,COM,RLC,MOV等指令。读机器指令时只读出了COM 指令的地址02。其余的没能读出。微代码的地址为25到36的后继位地址出错。因此读写机器指令时出错。在写机器指令时微代码的后继位地址有时会被修改,因此随时验证微代码的后继位地址。(经过反复测试和实验验证后,证明是机箱的原因,因为机箱的微地址显示灯坏了)
6 设计小结(即收获和体会)
通过本次课程设计了解了复杂模型机的结构,以及它的原理。通过给定的指令,基于EL_JY_Ⅱ8型计算机组成原理实验系统,设计了简单的计算机整机系统。在充分分析和研究实验系统的组成及工作原理的基础上,确定了模型机的数据通路结构,根据指令和微指令的译码情况,设计了机器指令格式和微指令格式。虽然最后的结果不理想,未能验证成功但对复杂模型机有了一定的了解。
通过本次课程设计体会到团结的重要性,在做实验的过程中细心和耐心是非常重要的。