计算机组成原理课设.docx
- 文档编号:29889115
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:24
- 大小:730.73KB
计算机组成原理课设.docx
《计算机组成原理课设.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课设.docx(24页珍藏版)》请在冰豆网上搜索。
计算机组成原理课设
计算机组成原理
课程设计
实验项目名称:
复杂模型机的设计
专业名称:
计算机科学与技术
一、课程设计题目
复杂模型机设计与实现
二、课程设计目的和任务
2、1设计目的
(1)巩固和加深课堂所学的计算机硬件系统知识;
(2)学习和掌握一般的硬件系统的设计方法;
(3)掌握计算机各模块的原理和相互关系,建立计算机整机概念
(4)利用基本模型机的构建与调试实验,完整地建立计算机硬件的整机模型,
掌握CPU的基本结构和控制流程,掌握指令执行的基本过程。
2、2设计任务
利用所学过的理论知识,特别是微程序设计的思想,设计基于微程序控制器的模型计算机,包括设计相应的硬件平台、机器指令系统和微指令等。
设计环境为TD-CMA计算机组成原理教学实验箱、微机,联机软件等。
同时设计好基于模型机的测试验证程序,并在设计好的硬件平台上调试通过,以验证所设计的模型机功能的可行性与可靠性。
在设计完成的前提下,撰写出符合要求的课程设计说明书并通过设计答辩。
1.基本模型机设计与实现
设计一台简单模型机,在具备基本必要的硬件平台的基础上,进一步要求其机器指令系统至少要包括五条不同类型指令:
如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条输出指令(假设助记符为OUT)、一条无条件转移指令(假设助记符为JMP)和一条停机指令(假设助记符为HLT);在设计好的模型机基础上,设计一个进行两个数求和运算的测试验证程序,用以验证模型机功能的可行性与可靠性。
2.在任务1的基础上,增加机器指令系统的功能,设计具有不少于10条机器指令的复杂指令系统模型机,包含算术逻辑指令、访问内存指令、控制转移指令、输入输出指令、停机指等令。
数据的寻址方式要包括直接、间接、变址和相对寻址等多种寻址方式。
利用设计的复杂模型机实现两个数的减法运算并判断差得正负,差为正数则输出A,差为负数则输出B,差为零则输出C。
在设计好的模型机基础上,进一步设计一个测试验证程序,验证模型机功能的可行性与可靠性。
3、基本模型机和复杂模型机的CPU数据字长为8位,采用定点补码表示。
指令字长为8的整数倍。
微指令字长为24位。
三、设备
TD-CMA计算机组成原理教学实验系统一台,排线若干
PC微机一台
四、总体设计
4、1设计目标
依据计算机系统的层次结构,本次设计的模型机可简化为图1所示的四层结构。
我们需要对每一个层次进行设计和实现。
对于最上层的应用程序,本次设计需要设计一个应用程序的测试实例来验证下面三层构成的模型机的功能可行性与可靠性。
通过进行全面深入的模型机设计需求分析,我们这次设计的模型机主要能够进行输入输出,直接、间接寻址以及简单的运算,共12条机器指令,包括算术运算指令(ADD,SUB,DEC,INC),逻辑运算指令(AND,OR),控制转移指令HLT,数据传输指令(IN,OUT,MOV,LDA,STA)。
4、2总体结构的设计
一台最简易的计算机,其硬件系统的组成必须包含CPU、主存、输入输出系统,当然还有连接些部件的系统总线。
CPU又进一步由运算器和控制器以及各种寄存器等组成。
对于微程序控制的计算机,控存中必须预先固化相应的微指令。
基于现有的基本实验箱平台,根据所设计模型机选择必要的元器件,并通过接插件(各种连线等)进行器件连接,组成所设计的模型机硬件系统(物理机),依据各部件之间的逻辑组成关系,设计出模型机的总体结构和数据通路。
数据通路图
本实验中要用到四个通用寄存器R3…R0,而对寄存器的选择是通过指令的低四位,为此还
得设计一个寄存器译码电路,在IR单元的REG_DEC(GAL16V8)中实现,如图5-3-4所示。
寄存器译码图
接线图
五、机器指令
5、1设计概述
模型机设计三大类指令共十五条,其中包括运算类指令、控制转移类指令,数据传送类指令。
运算类指令含三种运算,算术运算、逻辑运算和移位运算,设计有6条运算类指令,分别为:
ADD、AND、INC、SUB、OR、RR,所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。
控制转移类指令有一条HLT为单字节指令,数据传送类指令有IN、OUT、MOV、LAD、STA共5条,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存储器之间的数据交换,除MOV指令为单字节指令外,其余均为双字节指令。
我们所设计的复杂模型机共有12条机器指令,因此机器指令用前4位来代表其操作码。
5、2机器指令格式
所有单字节指令(ADD、AND、INC、DEC、SUB、OR、HLT和MOV)格式如下:
其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定:
IN和OUT的指令格式为:
系统的I/O地址译码原理如下图:
用地址总线的高俩位进行译码,I/O地址空间被分为四个区,如下图本设计中IOY0接IN单元,IOY1接OUT单元。
系统设计俩种数据寻址方式,即直接、间接寻址,LAD、STA指令均具备直接、间接、变址和相对寻址力。
LAD、STA指令格式如下
其中M为寻址模式,具体见下表:
寻址模式M
有效地址
说明
00
E=D
直接寻址
01
E=(D)
间接寻址
5、3指令系统:
指令类型
助记符
指令格式
指令功能
算术运算
ADD
0011
RS
RD
RD+RSRD
SUB
0100
RS
RD
RD-RSRD
DEC
1001
XX
RD
RD-1RD
INC
1010
XX
RD
RD+1RD
逻辑运算
AND
0101
RS
RD
OR
0110
RS
RD
控制转移
HLT
1000
XX
XX
停机
数据传送
MOV
0010
RS
RD
RSRD
IN
0000
XX
RD
D
[D]RD
OUT
0001
RS
XX
D
RS[D]
LDA
1100
M
RD
D
ERD
STA
1101
M
RD
D
RDE
5、4指令周期分析:
根据机器指令系统进行指令周期分析,确定出每条机器指令的CPU周期数。
对于微程序控制的计算机,进一步确定出每个CPU周期内的微操作(明确哪些微操作可以安排在同一CPU周期中,哪些微操作则不能)。
设计出每条机器指令的方框图形式的指令周期流程图。
指令周期流程图见附录
六、微指令
6、1主体思想
在本课程设计中,数据通路的控制由微程序控制器来完成。
计算机从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令的序列来完成,即一条机器指令对应一个微程序。
总体结构、数据通路设计及硬件实现、机器指令系统设计完成后,就可以根据机器指令系统进行指令周期分析,确定出每条机器指令的CPU周期数。
对于微程序控制的计算机,进一步确定出每个CPU周期内的微操作(明确哪些微操作可以安排在同一CPU周期中,哪些微操作则不能)。
设计出每条机器指令的方框图形式的指令周期流程图。
依据指令周期流程图以及指定的微指令格式,将设计出程序格式中的各字段(操作控制字段、P测试字段、直接微地址字段)相应的二进制代码(即对应的微命令编码)。
6、2设计微指令格式
该模型机共有36个指令周期,所以后续微地址用六位二进制表示。
其中uA5~uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。
P字段中的P1~P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。
具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3~uA0)与指令寄存器高四位(IR7~IR4)相或得到各路分支;P2测试用下址低2位(uA1~uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4与(ZI+CY)相或得到各路分支;P4测试用于控制台操作,它用下址低2位(uA1~uA0)与SWB、SWA相或得到各路分支。
在上述各测试下址中未用到的位均直接保留。
AR为算术运算是否影响进位及判零标志控制位,其为有效。
B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。
三字段中的其他位类似与此,均是某芯片的选通信号。
6、3设计微指令的相关微地址
根据后续微地址的形成方法(直接微地址或P测试转移后重新形成),确定每条微指令的相关后续微地址。
确定好微指令在控存中的存放地址,并将所有微指令写入到控存的相应存储单元中。
依据模型机的微程序流程图,当拟定“取指”微指令时,该微指令的判别测试字段为P<1>测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P<1>的测试结果出现多路分支。
依据已经设计好的硬件电路用指令寄存器的高6位(IR7—IR2)作为测试条件,出现5路分支,占用5个固定微地址单元,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写,微程序流程图上的单元地址为16进制。
P
(1)~P(4)为低电平有效,当选用时该信号为零;I7~I2表示机器指令前六位;SE5~SE1表示能够强置改变入口地址的后五位。
拟定机器指令通过上式即可算出每条子程序的入口地址。
机器指令
操作码
SE4------SE0
人口地址
IN
0000
11111
100000
OUT
0001
11110
100001
MOV
0010
11101
100010
ADD
0011
11100
100011
SUB
0100
11011
100100
AND
0101
11010
100101
OR
0110
11001
100110
HLT
1000
10111
101000
DEC
1001
10110
101001
INC
1010
10101
101010
LDA
1100
10011
101100
STA
1101
10010
101101
6、4微指令代码化
地址
高五位
S3—S0
A字段
B字段
C字段
后续位地址
十六进制表示
00
00000
0000
000
000
000
000001
000001
01
00000
0000
110
110
101
000010
006D42
02
00010
0000
111
000
001
100000
107060
20
00010
0000
110
110
101
000011
006D43
03
00010
0000
110
000
000
000100
106004
04
00011
0000
011
000
000
000001
183001
21
00000
0000
110
110
101
000101
006D45
05
00010
0000
110
000
000
000110
106006
06
00101
0000
110
000
000
000001
280401
22
00000
0000
011
010
000
000001
003401
23
00000
0000
001
011
000
000111
001607
07
00000
0000
010
010
000
001000
002408
08
00000
1001
011
001
000
000001
04B201
24
00000
0000
001
011
000
001001
001609
09
00000
0000
010
010
000
010000
002410
10
00000
1011
011
001
000
000001
05B201
25
00000
0000
001
011
000
010001
001611
11
00000
0000
010
010
000
010010
002412
12
00000
0010
011
001
000
000001
013201
26
00000
0000
001
011
000
010011
001613
13
00000
0000
010
010
000
010100
002414
14
00000
0011
011
001
000
000001
01B201
28
00000
0000
000
000
000
101000
000028
29
00000
0000
001
011
000
010101
001615
15
00000
1100
011
001
000
000001
063201
2A
00000
0000
001
011
000
010110
001616
16
00000
1101
011
001
000
000001
06B201
2C
00000
0000
110
110
101
010111
006D57
17
00010
0000
001
000
000
011000
101018
18
00010
0000
110
000
010
001100
10608C
2D
00000
0000
110
110
101
011001
006D59
19
00010
0000
110
000
000
011010
10601A
1A
00010
0000
001
000
000
011011
10101B
1B
00010
0000
110
000
010
001100
10608C
0C
00010
0000
011
000
000
000001
103001
0D
00100
0000
000
011
000
000001
200601
0E
00000
0000
101
001
101
000001
005341
七、组装与调试
在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。
首先调试每条微指令功能,再调试每条机器指令功能。
连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。
当所有功能模块都调试正常后,进入总调试。
根据设计好的模型机,进一步设计一个功能测试验证程序,运行程序并验证所涉及的模型机功能是否可行和可靠。
7、1手动写入微程序
①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘控
存’档,KK5置为‘置数’档。
②使用CON单元的SD05——SD00给出微地址,IN单元给出低8位应写入的数据,连续
两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。
③将时序与操作台单元的开关KK5置为‘加1’档。
④IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,IN单元的将
数据写到该单元的中8位。
IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开
关ST,将IN单元的数据写到该单元的高8位。
5重复①、②、③、④四步,将微代码写入。
手动校验微程序
①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘校验’档,KK4置为‘控
存’档,KK5置为‘置数’档。
②使用CON单元的SD05——SD00给出微地址,连续两次按动时序与操作台的开关ST,
MC单元的指数据指示灯M7——M0显示该单元的低8位。
③将时序与操作台单元的开关KK5置为‘加1’档。
④连续两次按动时序与操作台的开关ST,单元的指数据指示灯M15——M8显示该单MC
元的中8位,MC单元的指数据指示灯M23——M16显示该单元的高8位。
⑤重复①、②、③、④四步,完成对微代码的校验。
如果校验出微代码写入错误,重新写
入、校验,直至确认微指令的输入无误为止。
7、2手动写入机器程序
①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘主
存’档,KK5置为‘置数’档。
②使用CON单元的SD7——SD0给出地址,IN单元给出该单元应写入的数据,连续两次
按动时序与操作台的开关ST,将IN单元的数据写到该存储器单元。
③将时序与操作台单元的开关KK5置为‘加1’档。
④IN单元给出下一地址(地址自动加1)应写入的数据,连续两次按动时序与操作台的开
关ST,将IN单元的数据写到该单元中。
然后地址会又自加1,只需在IN单元输入后续地址的
数据,连续两次按动时序与操作台的开关ST,即可完成对该单元的写入。
⑤亦可重复①、②两步,将所有机器指令写入主存芯片中。
手动校验机器程序
①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘校验’档,KK4置为‘主
存’档,KK5置为‘置数’档。
②使用CON单元的SD7——SD0给出地址,连续两次按动时序与操作台的开关ST,CPU
内总线的指数据指示灯D7——D0显示该单元的数据。
③将时序与操作台单元的开关KK5置为‘加1’档。
④连续两次按动时序与操作台的开关ST,地址自动加1,CPU内总线的指数据指示灯D7
——D0显示该单元的数据。
此后每两次按动时序与操作台的开关ST,地址自动加1,CPU内
总线的指数据指示灯D7——D0显示该单元的数据,继续进行该操作,直至完成校验,如发现
错误,则返回写入,然后校验,直至确认输入的所有指令准确无误。
⑤亦可重复①、②两步,完成对指令码的校验。
如果校验出指令码写入错误,重新写入、
校验,直至确认指令的输入无误为止。
7、3调试运行程序
单步运行程序
A.使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
B.拨动总清开关CLR(0→1),微地址清零,PC计数器清零,程序首地址为00H。
C.单步运行一条微指令,每按动一次START键,即单步运行一条微指令。
对照微程序流程图,观察微地址显示灯是否和流程一致。
D.当运行结束后,可检查存数单元中的结果是否和理论值一致。
八、实验心得体会
此次课程设计,设计计算机模型机,收获颇多。
计算机组成原理课程设计,作为一门实践课,旨在让学生更深入地理解课堂上的理论知识,并能在实际操作中掌握模型机各个部分之间的紧密联系。
从第一天的开始搜集资料,连接设计图,到第二天学习有关模型机设计的关键步骤,这并不是一个容易的过程,模型机的设计基本上在计算机体系的底层进行工作,机器语言不容易理解,更不容易设计,经过认真分析学习计算机组成原理实验教学系统的时序功能部件、指令译码电路、寄存器组控制、微指令格式、微指令流程、微地址形成部件的功能结构和工作机制,列出相应逻辑方程,找出指令操作码字段与微程序入口地址形成、寄存器组控制的对应关系,确定每个时钟周期所进行的微操作,设计自己的微指令流程方框图,然后完成机器指令和微指令的代码编写工作,这个过程一不留神就会由于粗心而出错,在此次的课程设计过程是一个学习的过程,同时也是对我们所学知识的一个巩固,总体回顾这一个周的工作,虽然很辛苦,但最终在学习的基础之上,我们自己设计出了复杂的模型机,还是挺自豪的。
九、参考文献
1、《计算机组成原理》教材,陈智勇主编;
2、《CMA组成原理与系统结实验指导书》
十、附录
附录一
主存及微存中的内容
;//*************************************//
;////
;//CMASavedFile//
;////
;//ByTangDuCO.,LTD//
;////
;//*************************************//
;//*****StartOfMainMemoryData*****//
$P0000
$P0100;往R0送数
$P0221;将R0中的数放到R1中
$P03A0;R0+1放到R0中
$P0491;R1-1放到R1中
$P0534;R0+R1放到R0
$P0654;R0与R1放到R0
$P0764;R0或R1放到R0
$P0844;R0-R1放到R0
$P0910
$P0A40;将R0中的内容输出
;//*****EndOfMainMemoryData*****//
;//**StartOfMicroControllerData**//
$M00000001
$M01006D42
$M02107060
$M03106004
$M04183001
$M05106006
$M06280401
$M07002408
$M0804B201
$M09002410
$M0A106010
$M0B000001
$M0C103001
$M0D200601
$M0E005341
$M0F0000CB
$M1005B201
$M11002412
$M12013201
$M13002414
$M1401B201
$M15063201
$M1606B201
$M17101018
$M1810608C
$M1910601A
$M1A10101B
$M1B10608C
$M1C10101D
$M1D10608C
$M1E10601F
$M1F101020
$M20006D43
$M21006D45
$M22
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理