资源描述
成 绩 评 定 表
学生姓名
刘建成
班级学号
专 业
计算机科学和技术
课程设计题目
多寄存器减法\右移位\输入输出等指令试验计算机设计
评
语
组长签字:
成绩
日期
年6月21 日
课程设计任务书
学 院
信息学院
专 业
计算机科学和技术
学生姓名
刘建成
班级学号
课程设计题目
多寄存器减法\右移位\输入输出等指令试验计算机设计
实践教学要求和任务:
利用EL-JY-II型计算机组成原理试验仪提供硬件资源,经过设计(包含整机结构设计、指令设计、微程序设计、微指令设计、调试程序设计等)、组装、调试三个步骤完成一台微程序控制复杂试验计算机设计。具体要求以下:
1、 掌握试验计算机整机结构。熟悉试验计算机组装和调试方法。
2、 设计以下几条机器指令格式,指令格式能够采取单字长或双字长设计。
算术减法运算指令:SUB rs,rd (功效rs - rd -> rd)
输入输出指令:IN #DATA,rd (功效DATA -> rd)
OUT Ri (功效Ri值 -> LED输出)
转移指令: JMP ADDR (功效ADDR -> PC)
右移位运算指令:RRC rs,rd(功效rs值带进位循环右移一位-> rd)
3、 设计微指令格式, 编写上述每条机器指令所对应微程序,并上机调试。
4、经过以下程序编写调试,验收机器指令、微指令、微程序设计结果。
IN #data,R0
IN #data,R2
SUB R0, R2
RRC R2, R0
OUT R0
JMP 00H
工作计划和进度安排:
第17周:部署课程设计任务,查阅资料,分组设计,试验室组装和调试。
第20周:调试,验收,答辩,编写课程设计汇报。
指导老师:
6月21日
专业责任人:
6 月22日
学院教学副院长:
6 月22日
目录
1. 试验计算机设计 1
1.1整机逻辑框图设计及整机逻辑框图 1
1.2指令系统设计 3
1.3微操作控制部件设计 5
1.3.1微指令编码格式设计 5
1.3.2微操作控制信号设计 6
1.3.3微程序次序控制方法设计 7
1.4编写调试程序 15
2. 试验计算机组装 15
3. 试验计算机调试 16
3.1 调试前准备 16
3.2调试步骤和调试结果 19
3.3心得体会 19
4、参考文件 20
1. 试验计算机设计
1.1整机逻辑框图设计及整机逻辑框图
输入设备
数据暂存器LT2
数据暂存器LT1
74299
寄存器R2
寄存器R2
寄存器R2
程序计数器PC
地址寄存器AR
存放器(MEM)
脉冲源立即序
指令寄存器IR
微控器
输出设备
此模型机是由运算器,控制器,存放器,输入设备,输出设备五大部分组成。
图1.1模型机结构图
1.运算器又是有299,74LS181完成控制信号功效算逻部件,暂存器LDR1,LDR2,及三个通用寄存器R0,R2等组成。
2.控制器由程序计数器PC、指令寄存器、地址寄存器、时序电路、控制存放器及对应译码电路组成。
3.存放器RAM是经过CE和W/R两个微命令来完成数据和程序存放功效。
4输入设备是由置数开关SW控制完成。
5. 输出设备有两位LED数码管和W/R控制完成
图1-1中运算器ALU由U7--U10四片74LS181组成,暂存器1由U3、U4两片74LS273组成,暂存器2由U5、U6两片74LS273组成。微控器部分控存由U13--U15三片2816组成。除此之外,CPU其它部分全部由EP1K10集成。
存放器部分由两片6116组成16位存放器,地址总线只有低八位有效,所以其存放空间为00H--FFH。
输出设备由底板上四个LED数码管及其译码、驱动组成,当D-G和W/R均为低电平时将数据总线数据送入数码管显示。在开关方法下,输入设备由16位电平开关及两个三态缓冲芯片74LS244组成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方法或联机方法下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因另外加数据输入电路能够不用。
本系统数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上数据打入指令寄存器、地址寄存器和程序计数器时,只有低八位有效。
1.2指令系统设计
Rs或rd
选定寄存器
00
R0
01
R1
10
R2
要求:表1.1寄存器表
(1)存放器访问及转移指令
设计2条访问指令,即存数(STA),取数(LDA),2条转移指令,即无条件转移(JMP),结果为零或有进位转移指令(BZC),指令格式见表1.2存放器访问表:
表1.2存放器访问表
7 6
5 4
3 2
1 0
00
M
OP-CODE
rd
D
其中OP-CODE为操作码,rd为寄存器。M为寻址模式,D为位移量,D随M不一样其定义也不相同
(2)寻址方法见表1.3寻址模式表:
表1.3寻址模式表
寻址模式M
有效地址E
说 明
00
E=D
直接寻址
01
E=(D)
间接寻址
10
E=(R1)+D
R1变址寻址
11
E=(PC)+D
相对寻址
注:本机要求变址寄存器R1指定为寄存器R2。
(3)I/O指令
输入(IN)和输出(OUT)指令采取单字节指令,格式见表1.4I/O操作码表:
7 6 5 4
3 2
1 0
OP-CODE
addr
rd
表1.4I/O操作码表
其中,当OP-CODE=0100且addr=10时,从“数据输入电路”中开关组输入数据;当OP-CODE=0100且addr=01时,将数据送到“输出显示电路”中数码管显示。
(4) 指令助记符,功效及格式见表1.5:
表1.5指令格式
汇编符号
指令格式
功 能
CLR rd
MOV rs,rd
ADC rs,rd
SBC rs,rd
0111 00 rd
1000 rs rd
1001 rs rd
1010 rs rd
0 rd
rs rd
rs+rd+cy rd
rs-rd-cy rd
INC rd
AND rs,rd
COM rd
RRC rs,rd
1011 rs rd
1100 rs rd
1101 rs rd
1110 rs rd
rd+1 rd
rs∧rd rd
rd rd
cy rs
rs rd
RLC rs,rd
1111 rs rd
cy rs
rs rd
LDA M,D,rd
00 M 00 rd
D
E rs
STA M,D,rd
00 M 01 rd
D
rd E
JMP M,D
00 M 10 00
D
E PC
BZC M,D
00 M 11 00
D
当CY=1或Z=1时,
E PC
IN addr,rd
OUT addr,rd
0100 01 rd
0101 10 rd
addr rd
rd addr
HALT
0110 00 00
停机
(5) 指令编码: 表1.6指令编码表:
地址(二进制)
指令(二进制)
指令(十六进制)
助记符
0000 0000
0100 01 00
44
IN #data, R0
0000 0001
0100 01 10
46
IN #data, R2
0000 0010
1010 00 10
A2
SUB R0, R2
0000 0011
1110 10 00
E8
RRC R2, R0
cy R2
rs rd
0000 0100
0101 10 00
58
OUT,R0
0000 0101
0000 10 00
08
JMP 00H
0000 0110
0000 00 00
00
1.3微操作控制部件设计
1.3.1微指令编码格式设计
设计三个控制操作微程序:
存放器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。
存放器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。
开启程序(RUN):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,开启程序运行
表1.7 本系统微程序字长共24位,其控制次序
24
23
22
21
20
19
18
17
16
15 14 13
12 11 10
9 8 7
6
5
4
3
2
1
S3
S2
S1
S0
M
Cn
WE
1A
1B
F1
F2
F3
uA5
uA4
uA3
uA2
uA1
uA0
其中uA5-uA0为6位后续地址,F1,F2,F3为三个译码字段,分别由三个控制位译出多位,。
1.3.2微操作控制信号设计
微指令中个控制位含义以下:
S3、S2、S1、S0、M、CN是控制运算器逻辑和算术运算微命令。WE是写内存微命令,状态“1”有效。1A、1B是输入电路选通、内存RAM选通、输出LED选通控制微命令,分别对应状态“11”、“10”、“01”。 状态“00”为无效。F1、F2、F3为三个译码字段,分别由三个控制位经指令译码电路74138译码输出8种状态,前7种状态分别对应一组互斥性微命令中一个,状态“111”为无效。F3字段包含P1- P4四个测试字位。其功效是依据机器指令代码及对应微指令代码进行译码测试,使微程序转入对应微地址入囗,从而实现微程序次序、分支、循环运行。
控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下其它地方就能够一条微指令占用控存一个微地址单元随意填写。
机器指令实施过程以下:首先将指令在外存放器地址送上地址总线,然后将该地址上指令传送至指令寄存器,这就是“取指”过程。以后必需对操作码进行P1测试,依据指令译码将后续微地址中某几位强制置位,使下一条微指令指向对应微程序首地址,这就是“译码”过程。然后才次序实施该段微程序,这是真正指令实施过程。
在全部机器指令实施过程中,“取指”和“译码”是必不可少,而且微指令实施操作也是相同,这些微指令称为公用微指令。
表1.8F1、F2、F3三个字段编码方案
F1字段
F2字段
F3字段
15 14 13
选择
12 11 10
选择
9 8 7
选择
0 0 0
LDRi
0 0 0
RAG
0 0 0
P1
0 0 1
LOAD
0 0 1
ALU-G
0 0 1
AR
0 1 0
LDR2
0 1 0
RCG
0 1 0
P3
0 1 1
自定义
0 1 1
自定义
0 1 1
自定义
1 0 0
LDR1
1 0 0
RBG
1 0 0
P2
1 0 1
LAR
1 0 1
PC-G
1 0 1
LPC
1 1 0
LDIR
1 1 0
299-G
1 1 0
P 4
1.3.3微程序次序控制方法设计
1.微程序控制部件组成原理
[1] 运算器单元(ALU UINT)
运算器单元由以下部分组成:两片74LS181组成了并-串型8位ALU;两个8位寄存器DR1和DR2为暂存工作寄存器,保留参数或中间运算结果。ALUS0~S3为运算控制端,Cn为最低进位输入,M为状态控制端。ALU输出经过三态门74LS245连到数据总线上,由ALU-B控制该三态门。
[2] 寄存器堆单元(REG UNIT)
该部分由3片8位寄存器R0、R1、R2组成,它们用来保留操作数用中间运算结构等。三个寄存器输入输出均以连入数据总线,由LDRi和RS-B依据机器指令进行选通。
[3] 指令寄存器单元(INS UNIT)
指令寄存器单元中指令寄存器(IR)组成模型机时用它作为指令译码电路输入,实现程序跳转,由LDIR控制其选通。
[4] 时序电路单元(STATE UNIT)
用于输出连续或单个方波信号,来控制机器运行。
[5] 微控器电路单元(MICRO-CONTROLLER UNIT)
微控器关键用来完成接收机器指令译码器送来代码,使控制转向对应机器指令对应首条微代码程序,对该条机器指令功效进行解释或实施工作。由输入W/R信号控制微代码输出锁存。由程序计数器(PC)和地址寄存器(AR)实现程序取指功效。
[6] 逻辑译码单元(LOG UNIT)
用来依据机器指令及对应微代码进行译码使微程序转入对应微地址入口,从而实现微程序次序、分支、循环运行,及工作寄存器R0、R1、R2选通译码。
[7] 主存放器单元(MAIN MEM)
用于存放试验中机器指令。
[8] 输入输出单元(INPUT/OUTPUT DEVICE)
输入单元使用八个拨动开关作为输入设备,SW-B控制选通信号。输出单元将输入数据置入锁存器后由两个数码管显示其值。
图1.2微程序控制原理图
2.微程序入口地址形成方法
因为每条机器指令全部需要取指操作,所以将取指操作编制成一段公用微程序,通常安排在控存0号或特定单元开始一段控存空间内。
每一条机器指令对应着一段微程序,其入口就是初始微地址。首先由“取指令”微程序取出一条机器指令到IR中,然后依据机器指令操作码转换成该指令对应微程序入口地址。这是一个多分支(或多路转移)情况,常见三种方法形成微程序入口地址。
(1)一级功效转移
假如机器指令操作码字段位数和位置固定,能够直接使操作码和入口地址码部分位相对应。比如,某计算机有16条机器指令,指令操作码用4位二进制数表示,分别为0000、0001、…、1111。现以字母Q表示操作码,令微程序入口地址为Q11B,比如000011B为MOV指令入口地址,000111B为ADD指令入口地址,001011B为SUB指令入口地址……。
由此可见,相邻两段微程序入口地址相差4个单元
(2)二级功效转移
若各类指令操作码位数和位置不固定时,需采取分级转移,第一次先按指令类型标志转移,以区分出指令属于哪一类,如单操作数指令、双操作数指令等。在每一类机器指令中操作码位数和位置应该是固定,第二次即可按操作码区分出具体是哪条指令,方便转移到对应微程序入口。
(3)经过PLA电路实现功效转移
可编程逻辑阵列PLA实质上是一个译码-编码阵列,含有多个输入和多个输出,PLA输入是机器操作码和其它判别条件,PLA输出就是对应微程序入口地址,这种方法对于变长度、变位置操作码处理更为有效而且转移速度较快。
3.控存下地址确定方法
在转移到一条机器指令对应微程序入口地址后,则开始实施微程序,每条微指令实施完成时,需依据其中次序控制字段要求形成后继微指令地址。
(1)增量方法(次序-转移型微地址)
这种方法和机器指令控制方法相类似,它也有次序实施、转移和转子之分。次序实施时,后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令次序控制字段产生转移微地址。所以,微程序控制器中应该有一个微程序计数器(μPC)。为了降低成本,通常情况下部是将微地址寄存器μAR改为含有计数功效寄存器以替换μPC。
在非次序实施微指令时,用转移微指令实现转移。转移微指令次序控制字段分成两部分:转移控制字段(BCF)和转移地址字段(BAF)
“起始和转移地址发生器”功效有两个:其一是当一条新机器指令装入IR时,它就形成机器指令微程序段起始地址且装入μPC,而且伴随节拍电位信号到来,μPC自动地增加一个增量,方便连续地从CM中读出微指令,对应微操作控制信号按要求次序发送到CPU各个部分。第二个功效是当微指令指示其测试状态标志、条件代码或机器指令一些位时,它就对指定条件进行测试,若满足转移条件,就把新转移地址装入μPC,实现转移;不然不装入新地址,微程序就次序实施。所以,每次从CM中取出一条新微指令时,μPC全部增加,只有下列情况例外:
• 碰到END微指令时,就把“取指”微程序入口地址装入μPC,开始取指令周期;
• 当一条新指令装入IR时,就把该指令微程序入口地址装入μPC;
• 碰到转移微指令且满足转移条件时,就把转移地址装入μPC。
增量方法优点是简单,易于掌握,编制微程序轻易,每条机器指令所对应一段微程序通常安排在CM连续单元中;其缺点是这种方法不能实现两路以上并行微程序转移,所以不利于提升微程序实施速度。
(2)断定方法
断定方法和增量方法不一样,它不采取μPC,微指令地址由微地址寄存器μAR提供。在微指令格式中,设置一个下地址字段,用于指明下一条要实施微指令地址。当一条微指令被取出时,下一条微指令地址(即下地址字段)送μAR。它相当于每条微指令全部含有转移微指令功效。采取这种方法就无须设置专门转移微指令,但增加了微指令字长度。
(3)增量方法和断定方法结合
这种控制方法中,微地址寄存器μAR有计数功效(断定方法中微地址寄存器μAR无计数功效),但在微指令中仍设置一个次序控制字段,这是一个增量方法和断定方法相结合方法。其次序控制字段通常由两部分组成:次序地址字段和测试字段。
① 次序地址字段。可由设计者指定通常是微地址高位部分,用来指定后继微地址在CM中某个区域内。
② 测试字段。依据相关状态测试结果确定其地址值,通常对应于微地址低位部分,相当于在指定区域内确定具体分支。所依据测试状态可能是指定开关状态、指令操作码、状态字等。测试字段假如只有一位,则微地址特产生两路分文;若有两位,则最多可产生四路分支;依这类推,测试字段为n位为最多可产生2n路分支。
③ 若无转移要求,则微地址寄存器计数得到后继微指令地址。
1.3.4微程序设计:
每条指令对应微程序步骤图:
开始
PC->AR,PC+1
RAM->D_BUS->LR
P(1)测试
rs->D_BUS
D_BUS->LT2
rd->D_BUS
D_BUS->LT1
LT1->LT1
LT1->LT1
LT1+1->D_BUS->LT1
LT1->LT1
LT1+LT2->D_BUS->rd
rs->299
带进位左移位
299->rd
rd->LED
PC->AR,PC+1
LT1->D_BUS,
D_BUS->PC
D_INPUT->D_BUS
D_BUS->rd
图1.3总步骤图
(1) 输入指令IN
图1.4 IN指令微程序步骤图
(2) 输出指令OUT
图1.5 OUT指令微程序步骤图
(3) 转移指令JMP
图1.6 JMP指令相 对寻址微程序步骤图
(3) 减法指令SUB
图1.7 SUB指令相对寻址微程序步骤图
(4) 移位指令RRC
rs 299
带进位右环移
299 rd
图1.8 移位指令相对寻址微程序步骤图
1.3.5微程序中各微指令二进制编码、16进制编码
表5 微指令代码
位地址(八进制)
位地址(二进制)
微代码(十六进制)
00
000000
007F88
01
000001
005B42
02
000010
016FFD
03
000011
014FC4
04
000100
015F20
05
000101
015FC6
06
000110
014FC7
07
000111
015F20
10
001000
005B4A
11
001001
005B4C
12
001010
014FFB
13
001011
007FC1
14
001100
01CFFC
15
001101
014FCE
16
001110
0025CF
17
001111
9453E5
20
010000
005B43
21
010001
005B45
22
010010
005B4D
23
010011
005B66
24
010100
018FC1
25
010101
02F5C1
26
010110
007FD6
27
010111
3C03C1
30
011000
0001C1
31
011001
0041EA
32
011010
0021EC
33
011011
0041F2
34
011100
0041F3
35
011101
0041F6
36
011110
3001F7
37
011111
3001F9
40
100000
010FC1
41
100001
0379C1
42
100010
011F41
43
100011
007EA4
44
100100
007FC1
45
100101
844920
46
100110
014FE7
47
100111
002BE8
50
10100
9459E9
51
101001
944920
52
101010
0025EB
53
101011
9403FE
54
101100
0049ED
55
101101
0449EE
56
101110
0C49EF
57
101111
0049F0
60
110000
0C7F31
61
110001
9403C1
62
110010
0003C1
63
110011
0025F5
64
110100
041341
65
110101
B803C1
66
110110
0C03C1
67
110111
287DF8
70
111000
000DC1
71
111001
187DFA
72
111010
000DC1
73
111011
06F3C8
74
111100
FF73C9
75
111101
016E10
76
111110
0041C1
1.4编写调试程序
(1)具体代码以每条指令代码所对应机器码(16进制编码)和地址码:
IN #data,R0
IN #data,R2
SUB R0-R2→R2
RRC
R2 R0
OUT R0
JMP 00H
(2)每条指令代码所对应机器码和地址码:
地址(十六进制) 机器码(十六进制)
00 44
01 46
02 A2
03 E8
04 58
05 08
06 00
2. 试验计算机组装
连接硬件系统连接硬件系统,图2.1连线图:
图2.1连线图
3. 试验计算机调试
3.1 调试前准备
1、根据试验指导说明书连接硬件系统图3.1
图3.1
2、开启试验软件,打开试验课题菜单,选中试验课题打开试验课题参数对话窗口:
微指令操作图3.2微指令操作图:
开启试验软件,打开试验课题菜单,选中试验课题打开试验课题参数对话窗口:
图3.2微指令操作图
微指令操作:
1)写:在微指令操作编辑框(图3.2)中输入试验指导书中微指令程序(格式:两位八进制微地址+空格+六位十六进制微代码),或直接打开随机附带程序EX8.MSM,将试验箱上K4K3K2K1拨至“0010”写状态,然后按"写入"按钮,微程序写入控制存放器电路;
2)读:将试验箱上K4K3K2K1拨至“0100”读状态,在“读出微地址”栏中填入两位八进制地址,按"读出"按钮,则对应微代码显示在“读出微代码”栏中;
3)保留:按"保留"按钮,微程序代码保留在一给定文件(*.MSM)中;
4)打开:按"打开"按钮,打开已经有微程序文件,并显示在编辑框中
图3.3机器指令操作
机器指令操作:
1)写:在机器指令编辑框(图3.3)中输入试验指导书中机器指令程序(格式:两位十六进制地址+空格+2位或 4位十六进制代码),或直接打开随机附带程序EX8.ASM,将试验箱上K4K3K2K1拨至 “0101”运行状态,拨动“CLR”开关对地址和微地址清零,然后按"写入"按钮,机器指令写 入存放器电路;注:对于8位机,十六进制代码为2位;对于16位机,十六进制代码能够是2位,也能够是4位。
2)读:将试验箱上K4K3K2K1拨至“0101”运行状态,在“读出指令地址”栏中填入两位十六进制地址,拨动“CLR”开关对地址和微地址清零,然后按"读出"按钮,则对应指令代码显示在“读出指令代码”栏中。
3)保留:按"保留"按钮,机器指令程序保留在一给定文件(*.ASM)中。
4)打开:按"打开"按钮,打开已经有机器指令程序文件,并显示在编辑框中。
5)单步:在运行状态下运行程序前,先拨动“CLR”开关对地址和微地址清零,然后每按一次"单步"按钮,实施一条微指令。可从试验箱指示灯和显示LED观察单步运行结果。
6)连续:在连续运行程序前,先拨动“CLR”开关对地址和微地址清零,然后按"连续"按钮,可连续实施程序。可从试验箱指示灯和显示LED观察连续运行结果。
7)停止:在连续运行程序过程中,可按"停止”按钮暂停程序实施。此时地址和微地址并不复位,仍能够从暂停处单步或连续实施.
3.2调试步骤和调试结果
做完调试前准备工作后,能够经过联机上“运行”或“单步”进行调试,经过数据显示灯读出结果并分析。
单步:在运行状态前提下,选择操作→单步,点击弹出窗口图,然后
拨动“CLR”开关对地址和微地址清零,然后每按一次"单步"按钮,实施一条微指令。可从试验箱指示灯和显示LED观察单步运行结果。
连续:在运行状态前提下,选择操作→连续,点击弹出窗口图,先拨动“CLR”开关对地址和微地址清零,然后按"连续"按钮,可连续实施程序。可从试验箱指示灯和显示LED观察连续运行结果。
停止:在连续运行程序过程中,可按"停止”按钮暂停程序实施。此时地址和微地址并不复位,仍能够从暂停处单步或连续实施。
输入:23H,16H
输出:86H
经过以上结果可知,此次机器指令、微指令、微程序设计正确。
3.3心得体会
经过此次试验,我学到了很多,包含我在课堂上没有掌握内容。所以我很珍爱这次试验经历。而且经过者从试验我感受到了同学合作关键性。能够说,没有同学帮助我就极难完成这个试验。经过这次试验怎样去思索,怎样去做好试验统计。同时我也认识到了自己不足,和她人之间还存在一定差距,以后要更努力学习,缩小和她人差距。
4、参考文件
白中英著 《计算机组成原理第四版》 北京:科学出版社
杨雨彤著 《计算机组成原理试验指导书》 沈阳:沈阳理工大学
马秀丽,刘念著 《EL--JY--II型计算机组成原理试验系统试验指导书》 沈阳理工大学信息学院应用教研室
展开阅读全文