《计算机组成原理》实验报告.docx
《《计算机组成原理》实验报告.docx》由会员分享,可在线阅读,更多相关《《计算机组成原理》实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
《计算机组成原理》实验报告
目录
一、课程设计目的1
二、课程设计题目1
1、设计一个微程序控制器1
2、设计一个具有带进位加法和立即数寻址方式的模型机1
三、实验设备仪器2
四、微程序控制器2
1、设计目标2
2、实验步骤2
3、运行调试2
五、设计一个具有加法功能和直接寻址方式的模型机4
1、设计目标4
2、指令格式4
3、准备知识4
4、设计微指令5
六、设计一个具有带进位加法和立即数寻址方式的模型机9
1、问题描述9
2、设计目标9
3、指令格式9
4、准备知识10
5、设计微指令12
6、建立联机操作文件16
7、连接实验线路17
8、运行与调试17
七、实验心得与总结19
参考资料19
一、课程设计目的
通过这次课程设计,掌握计算机的基本组成原理,熟悉整套的实验设备系统,并对计算机的各部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有深入的了解。
提高动手能力,实现理论与实践相结合。
二、课程设计题目
1、设计一个微程序控制器
(1)设计内容
设计一个微控制器,使得装载的微程序顺序执行,并有跳转功能。
(2)设计要求
装载的微程序能按照流程图正确执行,并能强制地址转换跳出循环,跳到另一个微程序地址,能在地址总线上显示每一步的微程序地址。
2、设计一个具有带进位加法和立即数寻址方式的模型机
(1)设计内容
设计一台模型计算机,实现下列指令系统,并通过给定的工作程序验证下述指令系统。
(2)设计要求
本模型机能够实现IN(输入)、ADD(加法)、STA(存数)、OUT(输出)、JMP(无条件转移)指令系统,并能在数据总线和地址总线上显示正确的数值。
三、实验设备仪器
硬件环境为PC-386以上微机,西安唐都科教仪器公司的TDN-CM+计算机组成原理实验台。
软件环境采用WINDOWS操作系统,西安唐都科教仪器公司的TDN-CM+计算机组成原理实验软件,ispDesignEXPERT实验软件。
四、微程序控制器
1、设计目标
装载的微程序能按照流程图正确执行,并能强制地址转换跳出循环,跳到另一个微程序地址,能在地址总线上显示每一步的微程序地址。
能在单步执行的过程中,对微程序的运行进行控制,从而实现在不同的微程序入口的跳转。
2、实验步骤
(1)按下面所示连接实验线路,仔细检查无误后,接通电源。
(2)进行微程序的装载。
(3)装载成功后,将程序计数器清零,然后将MICRO-CONTROLLER单元的编程开关设置为RUN,将STATE单元的“STEP”和“STOP”分别设置为“STEP”和“RUN”。
(4)将原来接到MA5~MA0的数据线接到SE1~SE6上面。
(5)按动“START”,使得其单步运行。
3、运行调试
(1)通过微程序流程图,查看他们之间的跳转
(2)使用说明
要强置地址时,只要将当前微指令的下一条指令的地址和要调到的地址值进行同或运算,便得出要在SWITCH单元的CN~S3中输入的数据。
(3)测试数据和结果
1.不强制微地址时,则在微地址00→20→22→27→20不断循环。
2.当微地址跳到27时(此时UA0~UA5中显示010111),在SWITCH的CN~S3单元中输入111100,按动START开关,微地址跳到了23,成功地跳出循环,实现跳转。
3.再按动START开关,则微地址在01→02→10→01不断循环。
4.在UA0~UA5显示001000时(即10),在SWITCH的CN~S3单元中输入111110时跳到微地址11,输入为111101时跳到12,输入为111100时跳到13。
5.实验结果正确,实验完成。
五、设计一个具有加法功能和直接寻址方式的模型机
1、设计目标
设计一台具有输入、输出、带进位加法、储存和跳转功能的模型计算机,
在设计完本程序后,所设计模型机能够完成从一个外设输入一个数到指定的寄存器中,另外输入立即数并将其存入另一个、寄存器中,两数进行进位相加并将结果保存到第一个寄存器,输出结果,并显示。
另外,实现无条件跳转至开始。
2、指令格式
助记符号
机器指令码
功能
IN
00000000
“InputDEVICE”中的开关状态->R0
ADDaddr
00010000XXXXXXXX
R0+[addr]->R0
STAaddr
00100000XXXXXXXX
R0->[addr]
OUTaddr
00110000XXXXXXXX
[addr]->LED
JMPaddr
01000000XXXXXXXX
addr->PC
3、准备知识
(1)微指令格式
微指令字长共24位,其控制位顺序如下表所示:
A字段
B字段
C字段
15
14
13
选择
12
11
10
选择
9
8
7
选择
0
0
0
0
0
0
0
0
0
0
0
1
LDRi
0
0
1
RS-B
0
0
1
P
(1)
0
1
0
LDDR1
0
1
0
RD-B
0
1
0
P
(2)
0
1
1
LDDR2
0
1
1
RI-B
0
1
1
P(3)
1
0
0
LDIR
1
0
0
299-B
1
0
0
P(4)
1
0
1
LOAD
1
0
1
ALU-B
1
0
1
AR
1
1
0
LDAR
1
1
0
PC-B
1
1
0
LDPC
表中uA0~uA5为6位的下一条微指令的地址,A、B、C为3个译码字段,分别由三个控制位译码出多位。
C字段中的P
(1)~P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,其原理如图2所示。
图中I7~I2为指令寄存器的7~2位输出,SE5~SE1为微控器单元微地址锁存器的强制端输出。
AR为算术运算是否影响进位及判零标志控制位,其为零有效。
B字段中的RS-B、R0-B、RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令进行三个工作寄存器R0、R1及R2的选通译码,其原理图如图3所示,图中I0~I3为指令积存器的第0~3位,LDRi为打入工作寄存器信号的译码器使能控制位。
(2)微程序控制电路
4、设计微指令
电路连接图
(1)画出微程序流程图
(2)设计微指令
(3)微程序代码
根据以上编写的微程序,以及微指令代码化的方法得到的微程序代码为:
(3)工作程序的设计
将题目设计的模型机的指令用汇编语言描述其具体结构为:
地址
内容
助记符
说明
00000000
00000000
IN
Input->R0
00000001
00010000
ADD[0AH]
R0+[0AH]->R0
00000010
00001010
00000011
00100000
STA[0BH]
R0->[0BH]
00000100
00001011
00000101
00110000
OUT[0BH]
[0BH]->LED
00000110
00001011
00000111
01000000
JMP01H
01H->PC
00001000
00000001
00001001
00001010
00000001
自定义
00001011
求和结果
工作程序代码为:
$P0000
$P0110
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P0801
$P0A01
(4)根据数据通路图写出指令实现信号
助记符
信号
IN
PC→AR,PC+1
LDPC,PC-B,LDAR
RAM→BUS,BUS→IR
W/R,CE,LDIR
INPUT→BUS
SW-B,LDRi
ADD
PC→AR,PC+1
LDPC,PC-B,LDAR
RAM→BUS,BUS→IR
W/R,CE,LDIR
PC→AR,PC+1
LDPC,PC-B,LDAR
RAM→BUS,BUS→DR2
W/R,CE,LDDR2
R0→DR1
LDRi.LDDR1
(DR1)+(DR2)→R0
S3-S0,M,Cn,ALU-B
STA
PC→AR,PC+1
LDPC,PC-B,LDAR
RAM→BUS,BUS→AR
W/R,CE,LDAR
R0→BUS,BUS→RAM
LDRi,W/R,CE
OUT
PC→AR,PC+1
LDPC,PC-B,LDAR
RAM→BUS,BUS→AR
W/R,CE,LDAR
RAM→BUS,BUS→DR1
W/R,CE,LDDR1
DR1→LED
ALU-B,LED-B,W/R
JMP
PC→AR,PC+1
LDPC,PC-B,LDAR
RAM→BUS,BUS→PC
W/R,CE,LDPC
(5)程序运行结果
显示正确的结果。
六、设计一个具有带进位加法和立即数寻址方式的模型机
1、问题描述
本题目设计的是一台具有输入、输出、带进位加法、储存和跳转功能的模型计算机,并写出工作程序和测试数据验证所设计的指令系统。
2、设计目标
在设计完本程序后,所设计模型机能够完成从一个外设输入一个数到指定的寄存器中,另外输入立即数并将其存入另一个、寄存器中,两数进行进位相加并将结果保存到第一个寄存器,输出结果,并显示。
另外,实现无条件跳转至开始。
3、指令格式
助记符号
机器指令码
功能
IN
00000000
Input->R0
ADCImm
11100000XXXXXXXX
R0+Imm+CY->R0
STAaddr
00100000XXXXXXXX
R0->[addr]
OUTaddr
00110000XXXXXXXX
[addr]->LED
JMPaddr
01000000XXXXXXXX
[addr]->PC
4、准备知识
(6)微指令格式
微指令字长共24位,其控制位顺序如下表所示:
A字段
B字段
C字段
15
14
13
选择
12
11
10
选择
9
8
7
选择
0
0
0
0
0
0
0
0
0
0
0
1
LDRi
0
0
1
RS-B
0
0
1
P
(1)
0
1
0
LDDR1
0
1
0
RD-B
0
1
0
P
(2)
0
1
1
LDDR2
0
1
1
RI-B
0
1
1
P(3)
1
0
0
LDIR
1
0
0
299-B
1
0
0
P(4)
1
0
1
LOAD
1
0
1
ALU-B
1
0
1
AR
1
1
0
LDAR
1
1
0
PC-B
1
1
0
LDPC
表中uA0~uA5为6位的下一条微指令的地址,A、B、C为3个译码字段,分别由三个控制位译码出多位。
C字段中的P
(1)~P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,其原理如图2所示。
图中I7~I2为指令寄存器的7~2位输出,SE5~SE1为微控器单元微地址锁存器的强制端输出。
AR为算术运算是否影响进位及判零标志控制位,其为零有效。
B字段中的RS-B、R0-B、RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令进行三个工作寄存器R0、R1及R2的选通译码,其原理图如图3所示,图中I0~I3为指令积存器的第0~3位,LDRi为打入工作寄存器信号的译码器使能控制位。
(2)指令译码电路
(3)寄存器译码电路
寄存器译码
微程序控制电路
5、设计微指令
(1)画出微程序流程图
(2)设计微指令
微地址
S3
S2
S1
S0
M
CN
WE
A9
A8
A
B
C
UA5….UA0
00
0
0
0
0
0
0
0
1
1
000
000
000
000001
01
0
0
0
0
0
0
0
1
1
110
110
110
000010
02
0
0
0
0
0
0
0
0
1
100
000
001
001000
03
0
0
0
0
0
0
0
0
1
011
000
000
000100
04
0
0
0
0
0
0
0
1
1
010
001
000
000101
05
1
0
0
1
0
1
0
1
1
001
101
101
000001
06
0
0
0
0
0
0
0
0
1
110
000
000
000111
07
0
0
0
0
0
0
1
0
1
000
001
000
000001
08
0
0
0
0
0
0
0
0
0
001
000
000
000001
0E
0
0
0
0
0
0
0
1
1
110
110
110
000011
0A
0
0
0
0
0
0
0
1
1
110
110
110
000110
0B
0
0
0
0
0
0
0
1
1
110
110
110
011000
0C
0
0
0
0
0
0
0
1
1
110
110
110
001101
0D
0
0
0
0
0
0
0
0
1
101
000
110
000001
18
0
0
0
0
0
0
0
0
1
110
000
000
001111
0F
0
0
0
0
0
0
0
0
1
010
000
000
010101
15
0
0
0
0
0
1
1
1
0
000
101
000
000001
(3)微程序代码
根据以上编写的微程序,以及微指令代码化的方法得到的微程序代码为:
$M00018001
$M0101ED82
$M0200C048
$M0300B004
$M0401A205
$M05959B41
$M0600E007
$M07028201
$M08001001
$M0E01ED83
$M0A01ED86
$M0B01ED98
$M0C01ED8D
$M0D00D181
$M1800E00F
$M0F00A015
$M15070A01
(4)工作程序的设计
将题目设计的模型机的指令用汇编语言描述其具体结构为:
地址
内容
助记符
说明
00000000
00000000
IN
Input->R0
00000001
11100000
ADCImm
R0+Imm+cy->R0
00000010
00001010
00000011
00100000
STA[0BH]
R0->[0BH]
00000100
00001011
00000101
00110000
OUT[0BH]
[0BH]->LED
00000110
00001011
00000111
01000000
JMP
Addr->PC
00001000
00000001
工作程序代码为:
$P0000
$P01E0
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P0801
(5)指令实现信号
助记符
信号
IN
PC->AR,PC+1
LDPC,PC-B,LDAR
RAM->BUS,BUS->IR
W/R,CE,LDIR
INPUT->BUS
SW-B,LDRi
ADC
PC->AR,PC+1
LDPC,PC-B,LDAR
RAM->BUS,BUS->DR2
W/R,CE,LDDR2
R0->DR1
LDRi.LDDR1
(DR1)+(DR2)+cy->R0
S3-S0,M,Cn,ALU-B
STA
PC->AR,PC+1
LDPC,PC-B,LDAR
RAM->BUS,BUS->AR
W/R,CE,LDAR
R0->BUS,BUS->RAM
LDRi,W/R,CE
OUT
PC->AR,PC+1
LDPC,PC-B,LDAR
RAM->BUS,BUS->AR
W/R,CE,LDAR
RAM->BUS,BUS->DR1
W/R,CE,LDDR1
DR1->LED
ALU-B,LED-B,W/R
JMP
PC->AR,PC+1
LDPC,PC-B,LDAR
RAM->BUS,BUS->PC
W/R,CE,LDPC
(6)程序运行结果
输入01H,经运行后LED显示为0B,实验成功。
6、建立联机操作文件
为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立的,要求:
a、测试用的工作程序排在文件的前面,每个内存地址及代码占一行;
b、微指令代码排在文件的后面,每个微地址及微指令代码占一行;
7、连接实验线路
复杂模型机系统连线图
8、运行与调试
(1)系统与PC机联机
实验系统安装有一个标准的DB型9针RS-232C串口插座,使用配套的串行通信电缆分别插在实验系统及PC机的串口,即可实现系统与PC机的联机操作。
(2)下载工作程序和微程序
使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中。
其中,自带电线的实验箱用NCMP53软件,启动软件后使用F4[装载]进行下载;外接电源线的实验箱用CMPP软件,启动软件后在菜单中选择[转储]/[装载]进行下载。
(3)运行
数据通路结构框图
七、实验心得与总结
上学期学过计算机组成原理课,虽然已经对计算机的运行有了初步的认识,但是还只能是基于理论还不能真实的感受到计算机的工作流程。
经过组成原理程序设计这门课,不仅增强了我的动手能力(这正是大学课程所需的),而且从中我学得了课本上学不到的东西,比如细心的操作和问题的解决。
通过这门课,我对计算机的硬件是如何通过调用微程序运作的、如何设计程序让计算机进行运算等操作有了进一步的了解。
也许这还不够,但是上这门课真正的开阔了我的视野!
参考资料
(1)《计算机组成原理》课本
(2)《计算机组成原理》实验指导书