计算机组成原理课程设计汇本基本模型机设计分析实现.docx
《计算机组成原理课程设计汇本基本模型机设计分析实现.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计汇本基本模型机设计分析实现.docx(15页珍藏版)》请在冰豆网上搜索。
![计算机组成原理课程设计汇本基本模型机设计分析实现.docx](https://file1.bdocx.com/fileroot1/2023-1/26/b75a2e05-5b1f-4b08-8bbe-202801d9a440/b75a2e05-5b1f-4b08-8bbe-202801d9a4401.gif)
计算机组成原理课程设计汇本基本模型机设计分析实现
课程设计(大作业)报告
课程名称:
计算机组成原理
设计题目:
基本模型机设计与实现
院系:
信息技术学院
班级:
计算机科学与技术3班
设计者:
学号:
指导教师:
设计时间:
2017.6.19~2017.6.23
学院
信息技术学院
课程设计(大作业)任务书
:
院(系):
信息技术学院
专业:
计算机科学与技术学号:
任务起止日期:
2017.6.19~2017.6.23
课程设计题目:
基本模型机设计与设计
课程设计要求:
本课程设计以ZYE1603B计算机组成原理及系统结构教学实验系统为平台,设计完成。
1.按给定的数据格式和指令系统,设计一个微程序控制器。
2.设计给定机器指令系统以及微程序流程图,按微指令格式写出微程序的为指令代码。
3.连接逻辑电路完成启动、测试、编程、测试、效验和运行,并观测运行过程及结果。
4.将微程序控制器模块与运算器模块,存储器模块联机,组成一台模型计算机。
5.用微程序控制器控制模型机的数据通路。
6.通过在模型机上运行由机器指令组成的简单程序,掌握机器指令与微指令的关系,建立计算机整机的概念,掌握计算机的控制机制。
7.按指定的应用项目进行汇编指令格式及功能设计,并设计相应的机器指令代码,按照模型机数据通路设计实现机器指令功能的微程序。
在PC机上编辑机器指令和微程序,装载代码到ZYE1603B实验系统并运行,实现应用要求。
工作计划及安排:
2017年6月19日上午:
集中进行课程设计题目的讲解和分解,提出学生需要掌握的硬件和软件方面的知识和要求;以及在课程设计期间的安全和纪律要求,熟悉开发环境(ZYE1603B)(4401机房)。
2017年6月19日下午:
查阅资料、确定题目,了解各人(小组)设计安排,就设计过程进行集中讲解,解决设计过程存在的问题。
2017年6月20日~6月22日:
在机房进行系统的设计。
2017年6月23日上午:
分组讨论,进行交流,了解学生的掌握情况,对本周的学习情况进行总结,对后续的设计提出要求;对存在的问题进行分析和解决。
(机房)。
2017年6月23日下午:
答辩,成绩评定。
指导教师签字
2017年6月19日
课程设计(大作业)成绩
学号:
:
指导教师:
课程设计题目:
基本模型机设计与实现
总结:
指导教师评语:
成绩:
填表时间:
指导教师签名:
课程设计(大作业)报告
一、课程设计的教学目的
1.在“微程序控制器的组成与微程序设计实验”的基础上,进一步将其中各单元组成系统构造一台模型计算机。
2.本实验定义五条机器指令,编写相应的微程序,并上机调试运行,形成整机概念。
课程设计容设计一台基本模型机,并实现相关的指令。
二、课程设计任务和基本要求
本课程设计以TDN-CM++计算机组成原理教学实验系统为平台设计完成。
1.按给定的数据格式和指令系统,设计一个微程序控制器。
2.设计给定机器指令系统以及微程序流程图,按微指令格式写出微程序的为指令代码。
3.连接逻辑电路完成启动,测试,编程,测试,效验和运行,并观测运行过程及结果。
4.将微程序控制器模块与运算器模块,存储器模块联机,组成一台模型计算机。
5.用微程序控制器控制模型机的数据通路。
6.通过在模型机上运行由机器指令组成的简单程序,掌握机器指令与微指令的关系,建立计算机整机的概念,掌握计算机的控制机制。
7.按指定的应用项目进行汇编指令格式及功能设计,并设计相应的机器指令代码,按照模型机数据通路设计实现机器指令功能的微程序.在PC机上编辑机器指令和微程序,装载代码到TDN-CM++实验系统并运行,实现应用要求。
三、设计任务及分析
(1)设计任务:
从输入设备读取数据X并将其存入以A为间接地址的存单元,将X与R0.寄存器中的容Y执行X⊕
,结果送到以B为直接地址的存单元保存。
(2)分析:
A:
给R0寄存器直接置入01H.
B:
从数据开关给间接地址为0CH的存单元置数,(03H).
C:
给R0中的容取反,结果存在R0中.
D:
将间接地址0CH中直接地址0EH中的容(03H)放入DR1中,R0中的容放入DR2中,将DR1和DR2种的数进行异或运算,结果放在R0中.
E:
将R0中的容存在直接地址为0DH的存单元中.
四、设计原理
模型机在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一段微程序。
本实验采用五条机器指令:
IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):
助记符
机器指令码
说明
IN
00000000
“INPUTDEVICE”中的开关状态 RO
ADDaddr
00010000××××××××
进制加法,R0+[addr] R0
STAaddr
00100000××××××××
存数,RO [addr]
OUTaddr
00110000××××××××
输出,[addr]
BUS
JMPaddr
01000000××××××××
无条件转移,addr
PC
其中IN为单字长(8位)指令,其余为双字长指令,××××××××为addr对应的二进制地址码。
根据模型机的数据通路图(如图1所示)和指令的要求定义微代码如下:
微程序
24~21
20
19
18
17
16
15~13
12~10
9~7
6~1
控制信号
S3~S0
M
CN
RD
M17
M16
A
B
P
uA5~uA0
表1微代码定义
A字段
B字段
P字段
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_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
RD_G
0
1
0
P2
0
1
1
LDDR2
0
1
1
RI_G
0
1
1
P3
1
0
0
LDIR
1
0
0
299_G
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
AR
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
表2A、B、P字段
表中μA5~μA0为6位后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。
P字段中的P
(1)~P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。
B字段中的RS-B、RD-B、RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。
A字段中的LDRI为从输入设备组件中读入数据使能控制信号。
指令寄存器(IR)用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从存取到缓冲寄存器中,然后再传送至指令寄存器。
指令划分为操作码和地址码字段,由二进制数构成。
为了执行任何给定的指令,必须对操作码进行测试[P
(1)],通过节拍脉冲T4的控制以便识别所要求的操作。
“指令寄存器”(实验板上标有“INSDECODE”的芯片)根据指令中的操作码译码结果强置微控器单元的微地址,使下一条微指令指向相应得微程序首地址。
本系统使用两种外部设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是数码管,它作为输出设备(OUPUTDEVICE)。
例如:
输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。
输出时,将输出的数据送到数据总线BUS上,当写信号(W/R)有效时,将数据打入输出锁存器,在数码管显示。
图1基本模型机数据通路图
(1)运算器。
运算器又由运算逻辑单元、数据暂存器、通用寄存器组成。
在图1模型机的结构图中,ALU、ALU_G和74299组成运算逻辑单元,其中ALU是由2个4位的74LS181串联成8位的运算器,ALU_G是ALU-G实现用于控制ALU的运算结果的输出,74299用74LS299实现用于对ALU的运算结果进行移位运算;数据暂存器在图1中由DR1和DR2组成,DR1和DR2都是用74LS273实现,它们用于存储运算器进行运算的两个操作数;通用寄存器在图1中由R0、R1和R2组成,R0、R1和R2都是用74LS374实现,它们用作目的寄存器和源寄存器。
(2)控制器。
控制器由微程序控制器、指令寄存器、地址寄存器和程序计数器组成。
在图1中微程序控制器表示为MControl,它里面存放了指令系统对应的全部微程序,微程序控制器是由微控制存储器和3个138译码器实现(A138、B138和P138),用于产生控制信号来控制各个组件的工作状态;在图1中指令寄存器表示为IR,指令寄存器由一个74LS273实现,用于存放当前正在执行的指令;在图1中地址寄存器表示为AR,地址寄存器由一个74LS273实现,在读取或者写入存储器时用于指明要读取或写入的地址;程序计数器在图1中由PC_G和PC组成,其中PC是由八位二进制同步计数器实现,用于产生程序指针pc的下一个值,PC_G由PC-G实现,用于存储程序的程序指针pc的值。
(3)存储器。
存储器在图1中表示为MEN,存储器用静态随机存储器6116实现,用来存储用户程序和数据。
(4)数据总线。
数据总线用于连接运算器、存储器、输入输出等模块,数据总线由ccp_DataBus实现。
(5)输入输出。
输入输出类似于键盘和显示器。
(6)时序产生器。
在图1中T1、T2、T3和T4等控制信号都是由时序产生器生产,时序产生器由时序电路实现如图2所示,时序产生器一个周期中产生四个脉冲信号T1~T4,这四个脉冲信号用于控制组件的执行顺序,组件在这些信号的控制下有序的执行,一个周期中完成一条微指令的执行。
系统涉及到的微程序流程如图1所示,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P1测试结果出现多路分支。
本次课程设计用指令寄存器的前4位(I7-I4)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P4测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用控存一个微地址单元随意填写。
当全部微程序设计完毕之后,应将每条微指令代码化:
当全部微程序设计完毕后,应将每条微指令代码化,表3即为将图2的微程序流程图按微指令格式转化而成的二进制微代码表。
微地址
S3S2S1S0MCNWEM17M16
A
B
P
μA5…μA0
00
0000 00011
000
000
100
010000
01
0000 00011
110
110
110
000010
02
0000 00001
100
000
001
001000
03
0000 00001
110
000
000
000100
04
0000 00001
011
000
000
000101
05
0000 00011
010
001
000
000110
06
1001 01011
001
101
000
000001
07
000000001
110
000
000
001101
10
000000000
001
000
000
000001
11
000000011
110
110
110
000011
12
000000011
110
110
110
000111
13
000000011
110
110
110
001110
14
000000011
110
110
110
010110
15
000000101
000
001
000
000001
16
000000001
110
000
000
001111
17
000000001
010
000
000
010101
20
000000011
110
110
110
010010
21
000000011
110
110
110
010100
22
000000001
010
000
000
010111
23
000000011
000
000
000
000001
24
000000000
010
000
000
011000
25
000001110
000
101
000
000001
26
000000001
101
000
110
000001
27
000001110
000
101
000
010000
30
000001101
000
101
000
010000
表3二进制代码表
00
WRITE(01)READ(00)RUN(11)
212023
2422
01
3027
运行:
01
02
10
INADDSTAOUTJMP
1011121314
0103071626
041517
01
050125
06
01
01
图2微程序流程图
五、操作步骤
1.本实验设计机器指令程序如下表所示。
地址(二进制)
容(二进制)
助记符
说明
00000000
00000000
IN
将输入数据送R0寄存器
00000001
00100000
STA[08H]
R0—>[08H]
00000010
00001000
地址
00000011
00110000
OUT[08H]
[08H]—>BUS
00000100
00001000
地址
00000101
01000000
JMP[00H]
00H—>PC
00000110
00000000
跳转地址
实验一:
实验中机器指令解释表
地址(二进制)
容(二进制)
助记符
说明
00000000
00000000
IN
将输入数据送R0寄存器
00000001
00010000
ADD[0AH]
RO+[0AH]—>R0
00000010
00001010
地址
00000011
00100000
STA[0BH]
R0—>[0BH]
00000100
00001010
地址
00000101
00110000
OUT[0BH]
[0BH]—>LED
00000110
00001011
地址
00000111
01000000
JMP[00H]
00H—>PC
00001000
00000000
跳转地址
00001010
00000001
加数,可自定
00001011
求和结果保存在0B单元中
实验二:
实验中机器指令解释表
2.根据下图连接线路
基本模型机实验接线图
3.联机写程序
按照规定格式,将机器指令及表3微指令二进制表编辑成十六进制的规定格式文件。
微指令格式中的微指令代码为将表3中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。
使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。
其中参考程序一对应的文件名为“基本模型机1.TXT”,参考程序二对应的文件名为“基本模型机2.TXT”。
实验一的机器指令:
$P0000$P0120$P0208
$P0330$P0408$P0540
$P0600
实验二的机器指令:
$P0000$P0110$P020A
$P0320$P040B$P0530
$P060B$P0740$P0800
$P0A01
微程序(以上两程序公用):
$M00018110$M0101ED82$M0200C048
$M0300E004$M0400B005$M0501A206
$M06959A01$M0700E00D$M08001001
$M0901ED83$M0A01ED87$M0B01ED8E
$M0C01ED96$M0D028201$M0E00E00F
$M0F00A015$M1001ED92$M1101ED94
$M1200A017$M13018001$M14002018
$M15070A01$M1600D181$M17070A10
$M18068A11
4.联机运行
首先使各个开关的状态为:
SIGNALUNIT中的SP03开关设置为“STEP”状态,SP04开关设置为“RUN”状态;CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态;开关单元的开关SWB、SWA为“11”。
使开关单元的总清开关CLR(1à0à1)清零后,程序首址为00H。
通过联机软件进入调试界面,联机运行程序时,进入软件界面,转储→装载,再弹出窗口选择要装载的文件(*.txt格式),在装载完机器指令及微指令后,选择(运行)→(通路图)→(复杂模型机)功能菜单打开相应的动态数据通路图,按相应功能键即可联机运行、监控、调试程序。
本试验采用微指令单步运行。
可以通过调试程序的操作界面控制程序的运行,同时观察运行过程和结果。
六、实验结果
实验一:
实验二:
七、实验总结
通过本次实验,我对基本模型机设计与实现有了进一步的了解,理解它的功能特性和使用方法,对整个模型计算机的程序运行有了更全面的了解。
让我能够在掌握部件单元电路实验的基础上,将微程序控制器模块与运算器模块、存储器模块组合成一起,组成一台基本模型计算机;能够用微程序控制器来控制模型机的数据通道;并且通过CPU运行五条机器指令组成的简单程序,掌握了机器指令与微指令的关系,建立了利用指令控制整机(输入、输出、运算、存储系统)的概念。
而对运算如何运算,如何无条件跳转都知道,特别是在屏幕动态流线显示流程的帮助下,更容易理解程序的整个流程。
这次实验是个综合性的实验,难度比较大,,因为本实验的接线比较多,某一或两条线坏了,导致无法进行实验。
几经波折,接线才算成功。
但是接着那仪器总是一开始没有输入数据的时候就是09而不是00,我们弄了好多次都不成功,花了好多时间,好不容易才把实验做正确。
这次试验很需要耐心,但是理解了整个流程以及接线正确之后其实也不算太难的,只要认真细心就可以做好的。
这次实验加强了我的理解能力和实验能力,也更加巩固、完善和深化了我的知识体系。
八、参考书籍
《计算机组成原理》科学白中英著
《计算机组成原理与应用》工业王子齐著