130511 何彬实验四 模型机的设计与实现.docx
《130511 何彬实验四 模型机的设计与实现.docx》由会员分享,可在线阅读,更多相关《130511 何彬实验四 模型机的设计与实现.docx(32页珍藏版)》请在冰豆网上搜索。
130511何彬实验四模型机的设计与实现
武汉工程大学
计算机科学与工程学院
《计算机组成原理》实验报告
专业班级
网络工程
(1)班
实验时间
2015年5月27日
姓名学号
实验地点
机电大楼322实验室
何彬1305120411
指导教师
韩晓民
实验项目
实验四模型机的设计与实现
实验类别
综合性
实验学时
4
实验目的及要求
实验目的:
理解CMX08系统中模型机的设计方法;
掌握模型机的基本组成,熟悉数据通路的设计;
掌握指令系统的设计思想,能够根据系统需求设计指令系统;
理解微控制器的设计方法,掌握微控制器的组成,掌握微程序、微指令、微命令间的关系。
实验内容和要求:
1.完成实验指导书上3.1基本模型机的设计与实现及3.4复杂模型机的设计与实现。
2.综合应用本课程所学知识,分析模型机设计与实现的步骤、方法。
按计算机的设计步骤,组织设计方案,并写入实验报告。
3.在设计的计算机上运行一段程序,分析运行过程及结果。
4.对本次实验进行总结。
成绩评定表
类别
评分标准
分值
得分
合计
实验表现
按时出勤、遵守纪律
认真完成各项实验内容
30分
报告质量
填写内容完整、体现设计过程和结果;实验总结能体现问题和收获;认真地完成实验思考题
70分
说明:
评阅教师:
韩晓民
日期:
年月日
实验内容
3.1 基本模型机的设计与实现
一、实验目的
1.在掌握部件单元电路实验的基础上,构造一台基本模型计算机。
2.为其定义5条机器指令,并编写相应的微程序,上机调试掌握整机概念。
二、实验设备
Dais-CMX08+计算器组成原理教学实验系统一台。
三、实验原理
手动控制实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从EM主存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
四、指令系统
1.指令格式
765
4
32
10
OP-CODE
0
Rs
Rd
Addr
其中OP-CODE为操作码段,位于指令字节高三位(IR7~IR5);第四位IR4是保留位,指定为零;低四位为源与目的寄存器地址,它们的编码见下表;Addr定义操作数或操作地址。
Rs或Rd
选定的寄存器
00
01
10
11
R0
R1
R2
R3
2.指令系统
设计五条机器指令:
IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)。
助记符
机器指令码
说明
INRd,IOL
00100000
i/o(数据开关)偶字节→rd
ADDRd,[addr]
01000000XXXXXXXX
Rd+[addr]→Rd
STA[addr],Rd
01100000XXXXXXXX
Rd→[addr]
OUT[addr],IOH
10000000XXXXXXXX
[addr]→i/o(奇字节)
JMP000H
10100000XXXXXXXX
addr→PC
其中IN为单字节(8位)指令,其余为二字节指令,XXXXXXXX为addr对应的二进制地址码。
根据以上要求设计数据通路框图,如图3-1-1所示。
系统涉及到的微程序流程见图3-1-2,当拟定“取指”微指令时,该微指令的判别测试字段为IR(M2)=0。
由于“取指”微指令是所有微程序公用的微入口,因此IR(M2)的测试结果出现多路分支。
本机用指令寄存器的前3位(IR7~IR5)作为测试条件,出现8路分支,占用8个固定微地址单元。
当全部微程序设计完毕后,应将每条微指令代码化,表3-1-1就是按照图3-1-2的微程序流程定义的微指令格式转化而成的“二进制微代码表”。
指令寄存器IR用来保存当前正在执行的一条指令。
执行时通过IBus总线打入指令寄存器。
指令划分为操作码和操作数段,为了执行任何给定的指令,必须对操作码进行测试并打入指令译码器ID。
在下一微周期的T1节拍完成操作码段的转移,μPC指向与指令相对应的微入口。
图3-1-1 基本模星级数据通路
本系统提供十六位准双向的I/O设备,由S15~S8组成I/O的奇字节,由S7~S0组成I/O的偶字节。
形成按字节寻址的十六位字操作体系。
其输入/输出特性定义到“位”,当该位为“1”时可作为输入源用。
也就是说它最多能容入十六位输入或十六位输出。
例如:
输入时,二进制数据开关经过三态门送到数据总线,只要开关状态不变,输入的信息也不变。
输出时,将输出数据送到数据总线上,当IOW有效时,将数据打入输出锁存器,驱动发光管显示。
图3-1-2 基本模型机微程序流程图
按“在线态”规定的微控制格式,参照微指令流程,编制十六进制格式的微指令代码文件。
M23
M22
M21
M20
M19
M18
M17
M16
M15
M14
M13
M12
M11
M10
M9
M8
M7
M6
M5
M4
M3
M2
M1
M0
E/M
IP
MWR
R/M
目的编码
OP
M
CN
S2
S1
S0
源编码
XP
W
ALU
Iu
IE
IR
Icz
Ids
源编码
目的编码
M10
M9
M8
功能
M19
M18
M17
功能
X2
X1
X0
O2
O1
O0
1
1
1
禁止
1
1
1
禁止
1
1
0
ALU
1
1
0
MAR
1
0
1
SP
1
0
1
BX
1
0
0
IOR
1
0
0
AX
0
1
1
MRD
0
1
1
SP
0
1
0
XRD
0
1
0
IOW
0
0
1
RRD
0
0
1
XWR
0
0
0
PC
0
0
0
RWR
其中IR为取指控制位,当IR=0时由Ids指定操作码长度。
Ids=0时,指令字节的高四位定义为操作码段;遇Ids=1时,操作码段以字节为单位,可容纳256条指令的微操作。
实验所用的机器指令程序:
地址
指令代码
助记符
功能
000
20
inr0,io偶
i/o(数据开关)偶字节→r0
001
4060
addr0,[addr]
r0+[RM]→r0
003
6061
sta[addr],r0
r0→[RM]
005
8061
out[addr],io奇
[RM]→i/o(奇字节)
007
a000
jmp00h
[RM]→pc
五、实验环境判断与设置
在进入实验操作之前对实验环境作如下判别
1、若处“搭接”态,必须卸去实验连接,然后参阅本书P124页5.2.2小节,把实验环境设为“微控”、“在线”。
2、若处非“微控”态,参阅本书P124页5.2.2小节,把实验环境设为“微控”、“在线”。
六、实验方法
㈠键盘操作
⑴机器程序与对应的微控制程序的写入:
在待令状态下,键入数字键“1”,然后再键入【减址】命令键,实验装置装载基本模型机代码程序及对应的微程序。
⑵运行程序
①单拍运行:
每按一次【单拍】按钮模型机运行一拍,系统提供可变时序,非“取指”微周期它的节拍按
次序循环,在取指微周期按
次序循环。
②微单步:
每按一次【单步】命令键运行一条微指令,对照微程序流程,观察微址是否和流程一致。
对照微指令表,观察执行结果是否和理论值一致。
③宏运行(指令单步或宏调用):
每按动一次【宏运】命令键,运行一条机器指令。
对照机器指令程序,观察PC地址是否和流程一致。
④程序运行与暂停:
按动【运行】命令键使模型机进入实时运行状态;在实时运行状态按左下方任一数字键即可暂停模型机程序的运行,以便实验者查看模型机现场。
㈡联机运行
若在联机状态下,首先应打开mxj1.asm(基本模型机机器指令及对应微指令代码文件),然后点击工具栏“装载”按钮开始装载,如源程序无语法错误即可完成装载,进入调试状态。
可点击工具栏快捷按钮(具体操作请参阅本书第六章6.5节):
单拍:
单节拍运行微指令微单步:
单周期运行微指令
单步:
单步跟踪机器指令宏单步:
单步跨越机器指令
运行:
以全速方式运行模型机程序暂停:
暂停正在运行的模型机程序
表3.1.1 基本模型机微指令表
微址00002)1)________________________________________________________________________________________________________________________
M23
M22
M21
M20
M19
M18
M17
M16
代码
M15
M14
M13
M12
M11
M10
M9
M8
代码
M7
M6
M5
M4
M3
M2
M1
M0
代码
后续
微址
说明
E/M
IP
MWR
R/M
o2
o1
o0
OP
M
CN
S2
S2
S0
X2
X1
X0
XP
W
ALU
Iu
IE
IR
Icz
Ids
000
1
1
1
1
1
1
1
1
ff
1
1
1
1
1
1
1
1
ff
1
1
1
1
1
1
1
1
ff
+1
空操作
001
1
1
1
1
1
1
0
0
fc
1
1
1
1
1
0
0
0
f8
1
1
1
1
1
1
1
1
ff
+1
Pc→ar
002
0
1
1
1
1
1
1
1
7f
1
1
1
1
1
0
1
1
fb
1
1
1
1
1
0
1
0
fa
操作码
[RM]→IR
640
1
0
1
1
0
0
0
1
b1
1
1
1
1
1
1
0
0
fc
0
1
1
0
1
1
0
1
6d
001
io偶→rd
680
1
0
1
1
1
1
0
0
bc
1
1
1
1
1
0
0
0
f8
1
1
1
1
1
1
1
1
ff
+1
PC+1→ar
681
0
1
1
1
1
0
1
0
7a
1
1
1
1
1
0
1
1
fb
1
1
1
1
1
1
1
1
ff
+1
[RM]→b
682
1
0
1
1
1
1
0
0
bc
1
1
0
0
0
1
1
0
c6
1
1
1
1
1
1
1
1
ff
+1
b→ar
683
0
1
1
1
1
0
1
0
7a
1
1
1
1
1
0
1
1
fb
1
1
1
1
1
1
1
1
ff
+1
[RM]→b
684
1
1
1
1
1
0
0
0
f8
1
1
1
1
1
0
0
1
f9
1
1
1
1
1
1
1
1
ff
+1
rd→a
685
1
1
1
1
0
0
0
1
f1
0
1
1
0
0
1
1
0
66
0
1
1
0
1
1
0
1
6d
001
a+b→rd
6c0
1
0
1
1
1
1
0
0
bc
1
1
1
1
1
0
0
0
f8
1
1
1
1
1
1
1
1
ff
+1
PC+1→ar
6C1
0
1
1
1
1
0
1
0
7a
1
1
1
1
1
0
1
1
fb
1
1
1
1
1
1
1
1
ff
+1
[RM]→b
6C2
1
0
1
1
1
1
0
0
bc
1
1
0
0
0
1
1
0
c6
1
1
1
1
1
1
1
1
ff
+1
b→ar
6C3
0
1
0
1
1
1
1
1
5f
1
1
1
1
1
0
0
1
f9
1
1
1
0
1
1
0
1
ed
001
rd→[RM]
700
1
0
1
1
1
1
0
0
bc
1
1
1
1
1
0
0
0
f8
1
1
1
1
1
1
1
1
ff
+1
PC+1→ar
701
0
1
1
1
1
0
1
0
7a
1
1
1
1
1
0
1
1
fb
1
1
1
1
1
1
1
1
ff
+1
[RM]→b
702
1
0
1
1
1
1
0
0
bc
1
1
0
0
0
1
1
0
c6
1
1
1
1
1
1
1
1
ff
+1
b→ar
703
0
1
1
1
0
1
0
1
75
1
1
1
1
1
0
1
1
fb
1
1
1
0
1
1
0
1
ed
001
[RM]→io奇
740
1
0
1
1
1
1
0
0
bc
1
1
1
1
1
0
0
0
f8
1
1
1
1
1
1
1
1
ff
+1
PC+1→ar
741
0
0
1
1
1
1
1
1
3f
1
1
1
1
1
0
1
1
fb
1
1
1
0
1
1
0
1
ed
001
[RM]→pc
实验结果:
3.4 复杂模型机的设计与实现
一、实验目的
综合运用所学计算机原理知识,设计并实现较为完整的模型计算机。
二、实验设备
Dais-CMX08+计算机组成原理教学实验系统一台,实验用导线若干。
三、数据格式及指令系统
1.数据格式
模型机规定采用定点补码表示数据,且字长为8位,其格式如下:
7
6543210
符号
尾 数
2.指令格式
模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
⑴算术逻辑运算指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7654
32
10
OP-CODE
Rs
Rd
其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:
Rs或Rd
选定的寄存器
00
01
10
11
R0
R1
R2
R3
⑵访问指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
7
6
54
32
10
0
0
M
2OP-CODE
Rd
D(低八)
⑶停机指令
7654
32
10
OP-CODE
00
00
其中“00M”为源码段,2OP-CODE为目的码段(LDA、STA指令使用)。
D为十六位地址段(低八在前,高八随后),M为源寻址模式,其定义如下:
寻址模式M
有效地址E
说明
00
01
10
11
E=D
E=(D)
E=(SP)+D
E=(PC)+D
直接寻址
间接寻址
SP变址寻址
相对寻址
⑷I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
7654
32
10
110M
2OP-CODE
Rd
格式中“110M”为源码段,其中M=0为IN指令,M=1为OUT指令,Rd为源与目的寄存器。
2OP-CODE为字与字节操作段。
它的定义如下:
32
说明
00
偶递偶(字节)
01
奇递奇(字节)
1X
字操作
3.指令系统
本模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
下表列出了各条指令的格式、汇编符号、指令功能。
助记符
指令格式
功 能
LDAM,D,Rd
0
0
M
00
Rd
E→Rd
STAM,D,Rd
0
0
M
01
Rd
Rd→E
JMPM,D
0
0
M
10
00
E→PC
BZCM,D
0
0
M
11
00
当CY=1或Z=1时,E→PC
MOVRd,Rs
0
1
0
0
Rs
Rd
Rs→Rd
ADCRd,Rs
0
1
0
1
Rs
Rd
Rs+Rd+CY→Rd
SBCRd,Rs
0
1
1
0
Rs
Rd
Rs-Rd-CY→Rd
ANDRd,Rs
0
1
1
1
Rs
Rd
Rs∧Rd→Rd
CLRRd
1
0
0
0
00
Rd
0→Rd
INCRd
1
0
0
1
00
Rd
Rd+1→Rd
CPLRd
1
0
1
0
00
Rd
Rd→Rd
RRCRd
1
0
1
1
00
Rd
CY→Rd
RLCRd
1
1
0
0
00
Rd
CY→Rd
INRd,I/O
1
1
0
1
00
Rd
I/O→Rd
OUTRd,I/O
1
1
1
0
00
Rd
Rd→I/O
HALT
1
1
1
1
00
00
停机
图3-4-1 复杂模型机微程序流程图
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码,并将二进制代码表转换成十六进制格式文件。
M23
M22
M21
M20
M19
M18
M17
M16
M15
M14
M13
M12
M11
M10
M9
M8
M7
M6
M5
M4
M3
M2
M1
M0
E/M
IP
MWR
R/M
目的编码
OP
M
CN
S2
S1
S0
源编码
XP
W
ALU
Iu
IE
IR
Icz
Ids
源编码
目的编码
M10
M9
M8
功能
M19
M18
M17
功能
X2
X1
X0
O2
O1
O0
1
1
1
禁止
1
1
1
禁止
1
1
0
ALU
1
1
0
MAR
1
0
1
SP
1
0
1
BX
1
0
0
IOR
1
0
0
AX
0
1
1
MRD
0
1
1
SP
0
1
0
XRD
0
1
0
IOW
0
0
1
RRD
0
0
1
XWR
0
0
0
PC
0
0
0
RWR
实验列举的机器指令程序:
地址
指令代码
助记符
功能
000
D0
INRX0
i/o→r0
001
D6
INR2
io奇→r2
002
58
ADCR0,R2
rS+rD→rD
003
41
MOVR1,R0
rS→rD
004
C0
RLCR0
rlcrD
005
0C00
BZC00H
bzc00h
007
F0
HALT
停机
四、实验环境判断与设置
在进入实验操作之前对实验环境作如下判别
1、若处“搭接”态,必须卸去实验连接,然后参阅本书P124页5.2.2小节,把实验环境设为“微控”、“在线”。
2、若处非“微控”态,参阅本书P124页5.2.2小节,把实验环境设为“微控”、“在线”。
五、实验方法
㈠键盘操作
⑴机器程序与对应的微控制程序的写入:
在待令状态下,键入数字键“4”,然后再键入【减址】命令键,实验装置自动装载复杂模型机代码程序及对应的微程序。
⑵运行程序
①单拍运行:
每按一次【单拍】按钮模型机运行一拍,系统提供可变时序,非“取指”微周期它的节拍按
次序循环,在取指微周期按
次序循环。
②微单步:
每按一次【单步】命令键运行一条微指令,对照微程序流程,观察微址是否和流程一致。
对照微指令表,观察执行结果是否和理论值一致。
③宏运行(指令单步或宏调用):
每按动一次【宏运】命令键,运行一条机器指令。
对照机器指令程序,观察PC地址是否和流程一致。
④程序运行与暂停:
按动【运行】命令键使模型机进入实时运行状态;在实时运行状态按左下方任一数字键即可暂停模型机程序的运行,以便实验者查看模型机现场。
㈡联机运行
若在联机状态下,首先应打开mxj4.asm(复杂模型机机器指令及对应微指令代码文件),然后点击工具栏“装载”按钮开始装载,如源程序无语法错误即可完成装载,进入调试状态。
可点击工具栏快捷按钮(具体操作请参阅本书第六章6.5节):
:
单拍:
单节拍运行微指令微单步:
单周期运行微指令
单步:
单步跟踪机器指令宏单步:
单步跨越机器指令
运行:
以全速方式运行模型机程序暂停:
暂停正在运行的模型机程序
表3.4.1 复杂模型机微指令表
微址00002)1)________________________________________________________________________________________________________________________
M23
M22
M21
M20
M19
M18
M17
M16
代码
M15
M14
M13
M12
M11
M10
M9
M8
代码
M7
M6
M5
M4
M3
M2
M1
M0
代码
后续
微址
说明
E/M
IP
MWR
R/M
o2
o1
o0
OP
M
CN
S2
S2
S0
X2
X1
X0
XP
W
ALU
Iu
IE