组成原理课程设计具有运算及间接寻址功能的复杂模型机的设计课程设计报告.docx
《组成原理课程设计具有运算及间接寻址功能的复杂模型机的设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计具有运算及间接寻址功能的复杂模型机的设计课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
组成原理课程设计具有运算及间接寻址功能的复杂模型机的设计课程设计报告
计算机组成原理课程设计-具有运算及间接寻址功能的复杂模型机的设计
东莞理工学院
本科课程设计
课程设计题目:
具有运算及间接寻址功能的复杂模型机的设计
学生姓名:
学号:
系别:
计算机学院
专业班级:
14级计算机科学与技术4班
指导教师姓名:
黄仁泰
目录
一.课程设计性质和目的.............................3
二.课程设计任务...................................3
三.所用的设备及软件.............................3
四、课程设计原理..................................3
五.课程设计的详细设计...........................7
六.课程设计内容(方法步骤)和调试步骤............11
七.实验结果(数据记录).............................11
八.心得体会.......................................12
九.回答问题.......................................13
一、课程设计性质和目的
《计算机组织与体系结构》课程设计是计算机科学与技术专业本科学生在学习完《计算机组织与体系结构》课程之后的一个重要的实践环节。
要求学生在教师的指导下,综合运用已学过的《计算机组织与体系结构》中的各种知识和技能,独立完成一项较为完整、并具有一定难度的课程设计任务。
使学生在掌握“TDN-CM计算机组成原理教学实验系统”部件单元的基础上通过对复杂模型机的设计,以达到对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
通过模型机的设计和调试,连贯运用计算机组成原理课程学习到的知识,建立计算机整机概念,培养独立工作和创新思维
二、课程设计任务
具有运算及间接寻址功能的复杂模型机的设计,
•机器指令程序如下:
•IN01,R0;(R0)=80H设计时同学们可以给R0送入其它数值
•LDA01,20H,R1;将[20H]存储单元的数据26H作为存储器的地址,再把该地址中的数据0BH送R1;即存储器间接寻址
•ADCR1,R0;
•RRCR0,R2;
•OUT10,R2
•STA00,0AH,R0
•OUT10,R0
•HALT
三、所用的设备及软件
设备:
TDN-CM或TDN-CM教学实验系统一台、PC机一台、排线若干
软件:
CMCC软件
四、课程设计的基本工作原理
1.数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
7
6543210
符号
尾数
其中第7位为符号位,数值表示范围是:
-
≤X≤
-1。
2.指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
(1)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7654
32
10
OP-CODE
RS
RD
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
RS或RD
选定的寄存器
00
R0
01
R1
10
R2
9条算术逻辑指令的名称、功能和具体格式见表1。
算术逻辑指令的助记符、功能和具体格式
助记符
指令格式
功能
CLRRD
0111
00
RD
0RD
MOVRS,RD
1000
RS
RD
RSRD
ADCRS,RD
1001
RS
RD
RS+RD+CYRD
SUCRS,RD
1010
RS
RD
RS-RD-CYRD
INCRD
1011
RD
RD
RD+1RD
ANDRS,RD
1100
RS
RD
RS
RDRD
COMRD
1101
RD
RD
RDRD
RRCRSRD
1110
RS
RD
RLCRS,RD
1111
RS
RD
LADM,D,RD
00
M
00
RD
(E)RD
RD(E)
EPC
D
STAM,D,RD
00
M
01
RD
D
JMPM,D
00
M
10
00
D
BZCM,D
00
M
11
00
当CY=1或Z=1时EPC
D
INaddr,RD
0100
01
RD
(addr)RD
OUTaddr,RD
0101
10
RD
RD(addr)
HALT
0110
00
00
停机
表1
(2)访问指令及转移指令
模型机设计2条访内指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
76
54
32
10
00
M
OP-CODE
RD
D
其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:
寻址模式
有效地址E
说明
00
E=D
直接寻址
01
E=(D)
间接寻址
10
E=(RI)+D
RI变址寻址
11
E=(PC)+D
相对寻址
本模型机规定变址寄存器RI指定为寄存器R2。
(3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
7654
32
10
OP-CODE
addr
RD
其中,addr=01时,选中“INPUTDEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUTDEVICE”中的数码块作为输出设备。
(4)停机指令
指令格式如下:
7654
32
10
OP-CODE
00
00
HALT指令,用于实现停机操作。
3.指令系统
本模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
表8-1列出了各条指令的格式、汇编符号、指令功能。
4.微指令格式
S3、S2、S1、S0、M、Cn控制运算的工作方式:
WE控制主存、输入设备
Y1、Y2、和输出设备的读写功能;
A9、A8通过74LS139二四译码器译码输出
Y0、Y3,分别接输入设备的SW-B、主存的CE、输出设备的LED-B及其它情况。
微指令字长共24位,其控制位顺序如表2所示:
表2控制位顺序表
24
23
22
21
20
19
18
17
16
151413
121110
987
6
5
4
3
2
1
S3
S2
S1
S0
M
CN
WE
A9
A8
A
B
C
uA5
uA4
uA3
uA2
uA1
uA0
A字段B字段C字段
12
11
10
选择
0
0
0
0
0
1
RS-B
0
1
0
RD-B
0
1
1
RI-B
1
0
0
299-B
1
0
1
ALU-B
1
1
0
PC-B
15
14
13
选择
0
0
0
0
0
1
LDRi
0
1
0
LDDR1
0
1
1
LDDR2
1
0
0
LDIR
1
0
1
LOAR
1
1
0
LDAR
9
8
7
选择
0
0
0
0
0
1
P
(1)
0
1
0
P
(2)
0
1
1
P(3)
1
0
0
P(4)
1
0
1
AR
1
1
0
LDPC
其中UA5~UA0为6位的后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。
C字段中的P
(1)~P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。
AR为算术运算是否影响进位及判零标志控制位,其为零有效。
B字段中的RS-B、R0-B、RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通。
指令寄存器(IR)用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到指令寄存器中,然后再对其进行译码、运行。
指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试,通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器”根据指令中的操作码译码强置微控制器的微地址,使下一条微指令指向相应的微程序首地址。
上述系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备;另一块是数码块,它作为输出设备。
例如,输入时,二进制开关数据直接经过三态门送到总线上,只要开关顺序不变,输入的信息就不变。
输出时,将输出数据送到数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示
五.课程设计的详细设计
1.复杂模型机的数据通路图
2.微程序流程图及微地址的确定
图2微程序流程图
3.机器指令设计
首先根据指令要求编写机器指令代码,根据表1及数据通路图1,编写程序。
根据表1编写机器指令代码如下所示:
程序助记符
$P0044IN01R0
$P0111LDA0120HR1
$P0220
$P0394ADCR1R0
$P04E2RRCR0R2
$P055AOUT10R2
$P0604STA000AHR0
$P070A
$P0858OUT10R0
$P0960HALT
$P2026将[20H]存储单元的数据26H作为存储器的地址.
$P260B把该地址中的数据0BH送R1;即存储器间接寻址
4.微代码设计文档
根据微指令格式表2,并参照微指令流程图2,将每条指令代码化(将该微程序存于一个*.txt文本中)。
微程序如下:
$M00018108
$M0D00A00E
$M0101ED82
$M0E01B60F
$M0200C050
$M0F95EA25
$M0300A004
$M1001ED83
$M0400E0A0
$M1101ED85
$M0500E006
$M1201ED8D
$M0600A007
$M1301EDA6
$M0700E0A0
$M14001001
$M0801ED8A
$M15030401
$M0901ED8C
$M16018016
$M0A00A03B
$M173D9A01
$M0B018001
$M18019201
$M0C00203C
$M1901A22A
$M2205DB81
$M1A01B22C
$M230180E4
$M1B01A232
$M24018001
$M1C01A233
$M2595AAA0
$M1D01A236
$M2600A027
$M1E318237
$M2701BC28
$M1F318239
$M2895EA29
$M20009001
$M2995AAA0
$M21028401
$M2A01B42B
$M300D8171
$M2B959B41
$M31959B41
$M2C01A42D
$M32019A01
$M2D65AB6E
$M3301B435
$M2E0D9A01
$M3405DB81
$M2F01AA30
$M35B99A01
$M360D9A01
$M37298838
$M38019801
$M3919883A
$M3A019801
$M3B070A08
$M3C068A09
5.接线图
图4、实验电路图
六.课程设计内容(方法步骤)和调试步骤
1.实验步骤
(1)按图4连接实验线路,检查无误后接通电源。
(2)联机读/写程序
用联机软件的“【转储】—【装载】”功能将该实验对应的文件*.txt载入实验系统。
(3)联机运行使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
拨动总清开关CLR(1→0→1),微地址清零,程序计数器清零,程序首址为00H。
联机运行程序时,进入软件界面,装载机器指令及微指令后,选择“【运行】-【通路图】-【复杂模型机】”功能菜单打开相应动态数据通路图,按相应功能键即可联机测试、运行、监控、调试程序。
①单步运行程序。
单步运行一条微指令,对照微程序流程图,观察微地址显示灯是否和流程一致。
②连续运行程序?
使“STATEUNIT”中的STEP开关置为“ECEX”状态。
STOP开关置为“RUN”状态。
拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。
七、实验结果(数据记录)
八、心得体会
三天的计算机组成与体系课程设计,我认识到将书本知识理解好和把课程设计做好并不是等价的,仅仅看书理解是不够的,不会将学到的知识运用到实际操作中去,将理论知识学习的再好也没用。
这次复杂模型机的设计,让我真正做到了学以致用,在实践中对所学知识有了更进一步的理解。
而且进一步提升了本人的团队协作能力,我们的团队,不是一开始就将工作分工,而是对任务进行分析理解,将一些比较大的问题进行探讨后在进行分工,我们要的并不仅仅是完成老师交给我们的任务,更加重要的是在完成的过程中不断进步。
在这次与组员的合作过程,让我深刻体会到了团结精神对工作所产生的高效性、准确性。
本次的课程设计实验,是我真正意义上第一次设计复杂模型机,在之前只是在其他人建立好的基础上进行修改,并没有很好的运用到已学到的知识,在这次课程设计,我编写了机器指令和微指令,设计了微程序流程图,当最后运行程序运行成功的时候,感觉还是有点开心的。
当然,在做课程设计的过程中也遇到了些许的困难。
首先是的接线问题,在一开始接线时只是追求速度,想要快一点做完,最终不得不在测试失败的情况下检查错误并将错误改正。
其次是微地址的确定的问题上,通过和同学探讨和询问老师,将设计的不是很合理的内容进行了改正,最终运行通过。
九、回答问题
班级:
14级计科4班学号:
201441402426姓名:
林荣碟
(1)写出指令SBCR1,R2的机器码.
(2)当(R1)=10H,[30H]存储单元的数据F0H送R2时,写出程序运行ORR2,R1后的R1,R2结果。
(3)让实验箱运行到指令SBCR1,R2的第四条微指令,写出该时的控制信号并编写出该条微指令。
答:
(1)10100110
(2)R1=E3HR2=04H
R2=R1-R2-CY=DC
R1=E3HR2=DC
(3)011010
$M1A01B22C(微指令)
00011010000000011011001000101100
控制信号LDDR2RS-B无