组成原理课设.docx
- 文档编号:26241622
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:21
- 大小:477.58KB
组成原理课设.docx
《组成原理课设.docx》由会员分享,可在线阅读,更多相关《组成原理课设.docx(21页珍藏版)》请在冰豆网上搜索。
组成原理课设
1.课程设计目的
通过《计算机组成原理》课程设计,使学生进一步熟练掌握计算机各功能部件的内部构造和相互之间的联系(部件配置、相互连接和作用)、各功能部件的性能参数的相互匹配、机器指令级的各种功能和特性。
学生能够将所学知识融会贯通、进一步系统化,进一步提高硬件系统设计的能力,为以后的更高一级的硬件设计打下坚实基础。
2.课程设计任务
在现有的TEC-2000教学机系统上扩展4条指令。
要求:
(1)4条指令至少要用到4种寻址方式;
(2)4条指令分别由1步、2步、3步、4步完成;
(3)监控命令A、U必须能够支持这4条指令;
(4)扩展的指令不能是系统已有的基本指令和扩展指令。
3.系统组成原理及实现
(1)运算器
这部分的逻辑图见图1。
从图中可以看到,运算器部件主要包括两组独立的8位字长的运算器,各自由2片位片结构的运算器AM2901组成;还有状态标志(CZVS)寄存器和教学实验所需的相关逻辑部件。
AM2901的结构如图3-1所示。
图1运算器部件
①运算器部件的控制码:
控制码编码
I8~I6
I5~I3
I2~I0
寄存器结果选择
Q结果的选择
Y输出选择
运算功能选择
数据来源
R
S
000
无
F
F
R+S
A
Q
001
无
无
F
S-R
A
B
010
F->B
无
A
R-S
0
Q
011
F->B
无
F
R∪S
0
B
100
F/2->B
Q/2->Q
F
R∩S
0
A
101
F/2->B
无
F
/R∩S
D
A
110
2*F->B
2*Q->Q
F
R⊕S
D
Q
111
2*F->B
无
F
/(R⊕S)
D
0
②对主存和输入输出接口(设备)的控制
0
1
/MIO
REQ
/WE
有内存或串口读写
读写内存
写操作
无
读写串行口
读操作
③对几个特定的寄存器的接收操作控制
编码
SASB
A口
B口
16位机
0
微指令A口
微指令B口
1
IR的SR字段
IR的DR字段
8位机
0
IR的SR字段
IR的DR字段
1
微指令A口
微指令B口
④一般微程序的最后一条微指令为向下条指令跳转,而其余指令为顺序执行,这些条件控制码由CI3~0决定。
CI3~0
功能
0000(0#)
初始化
0010(2#)
MAPROM译码
0011(3#)
条件微转移
1110(14#)
顺序执行
(2)微程序控制器
图2微程序控制器组成
微指令格式
八块芯片存放的内容及意义
MAPROM:
实现从机器指令的操作码映射出对应的微程序首地址。
CM1:
存放下址。
CM2:
CI3~0,SCC30。
CI3~CI0提供Am2910芯片的命令码;SCC3~SCC0用于指出形成Am2910使用的/CC信号所依据的判断条件。
CM3:
0MRW,0I2~0。
MRW用来控制是对存储器读写和对I/O读写。
0I2~0,选择数据来源
CM4:
SA、I8~6,SB、I5~3。
I5~3控制运算功能,I8~6控制结果处理方案,SA,SB用于指明运算器A口,B口的地址信号。
CM5:
B口,A口。
运算器的A口,B口
CM6:
0SST,SSH、SCI。
SST用来控制标志寄存器的接受与保持,SSH用来控制最高、最低的移位输入信号的形成,SCI用来控制最低位进位输入信号。
CM7:
DC2,DC1。
DC1用来控制内部总线接受的数据来源,DC2用来控制内部总线的内容送到的目的地。
4.扩展4条指令
(1)4条指令的格式及功能
序号
指令
名称
格式
功能
寻址
方式
操作码
编码
入口
地址
1
NAND
NANDDR,SR
R^/S(1步)
寄存器寻址
30
90
2
ATRM
ATRMDR,[SR]
2(DR+[SR])—>DR(3步)
寄存器间接寻址
33
92
3
POPR
POPRDR
乘2出栈
(3步)
堆栈寻址
36
96
4
MOVL
MOVLDR,DATA
2DR+1->DR
(4步)
立即数寻址
39
99
(2)指令所对应的微程序
指令
名称
入口
地址
CM1
CM2
CM3
CM4
CM5
CM6
CM7
NAND
93
30
30
41
BD
00
10
00
DERC
98
00
E0
43
39
00
10
00
30
30
43
58
00
50
00
POPR
94
00
E0
43
20
44
01
30
00
E0
17
38
00
00
00
30
30
43
78
00
60
00
MOVL
90
00
E0
43
20
55
01
30
00
E0
17
38
00
00
00
00
E0
43
78
00
60
00
30
30
43
38
00
11
00
①.第1条指令NAND
第一步
编码
意义
下地址
30
指令执行完后执行得下一条指令的地址
CI3~0
0011
条件转移执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0001
数据来源于A和B寄存器
SAI8~6
1011
累加器:
F->B;Y输出结果
SBI5~3
1101
运算功能R^/S
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0001
接收标志位输出得值
SSH、SCI
0000
加0,通用寄存器逻辑移位
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
②.第2条指令DERC
第
一
步
下地址
00
指令执行完后执行得下一条指令的地址
CI3~0
1110
顺序执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0011
数据来源于B寄存器
SAI8~6
0011
累加器:
F->B;Y输出结果
SBI5~3
1001
选择指令中的寄存器,数据处理方式进行减操作
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0001
接收标志位输出得值
SSH、SCI
0000
加0,通用寄存器逻辑移位
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
第
二
步
下地址
30
指令执行完后执行得下一条指令的地址
CI3~0
0011
条件转移执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0011
数据来源于B寄存器
SAI8~6
0101
累加器:
F/2->B;Y输出结果
SBI5~3
1000
选择指令中的寄存器,数据处理方式进行加操作
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0101
接收标志进位输出得值
SSH、SCI
0000
加0,通用寄存器逻辑移位
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
③.第3条指令POPR
第一步
下地址
00
指令执行完后执行得下一条指令
CI3~0
1110
顺序执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0011
数据来源于B寄存器
SAI8~6
0010
累加器:
F->B;Y输出A的结果
SBI5~3
0000
选择指令中的寄存器,
数据处理方式进行加操作
B口
0100
微码B口字段
A口
0100
微码A口字段
0SST
0000
四个标志位保持不变
SSH、SCI
0001
无移位,运算cn+1
DC2
0011
地址寄存器高位接收
DC1
0000
内部总线信息来源来自开关
第二步
下地址
00
指令执行完后执行得下一条指令
CI3~0
1110
顺序执行
SCC3~0
0000
程序执行方式
0MRW
0001
读操作
0I2~I0
0111
数据来源于D
SAI8~6
0011
累加器:
F->B;Y输出结果
SBI5~3
1000
选择指令中的寄存器,
数据进行加处理
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0000
四个标志位保持不变
SSH、SCI
0000
加0,通用寄存器逻辑移位
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
第三步
下地址
30
指令执行完后执行得下一条指令
CI3~0
0011
条件转移执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0011
数据来源于B寄存器
SAI8~6
0111
累加器:
2F->B;Y输出结果
SBI5~3
1000
选择指令中的寄存器,
数据处理方式进行加操作
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0110
左移操作,另外三个标志位不变
SSH、SCI
0000
加0,通用寄存器逻辑移位
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
④.第4条指令MOVL
第一步
下地址
00
指令执行完后执行得下一条指令
CI3~0
1110
顺序执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0011
数据来源于B寄存器
SAI8~6
0010
累加器:
F->B;Y输出A的结果
SBI5~3
0000
数据处理方式进行加操作
B口
0101
微码B口字段
A口
0101
微码A口字段
0SST
0000
四个标志位保持不变
SSH、SCI
0001
无移位,运算cn+1
DC2
0011
信息来自地址寄存器高位
DC1
0000
内部总线信息来源来自开关
第二步
下地址
00
指令执行完后执行得下一条指令
CI3~0
1110
顺序执行
SCC3~0
0000
程序执行方式
0MRW
0001
读操作
0I2~I0
0111
数据来源于D
SAI8~6
0011
累加器:
F->B;Y输出结果
SBI5~3
1000
选择指令中的寄存器,
数据进行加处理
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0000
四个标志位保持不变
SSH、SCI
0000
加0,通用寄存器逻辑移位
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
第三步
下地址
00
指令执行完后执行得下一条指令
CI3~0
1110
顺序执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0011
数据来源于B寄存器
SAI8~6
0111
累加器:
2F->B;Y输出结果
SBI5~3
1000
选择指令中的寄存器,数据处理方式进行加操作
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0110
左移操作,另外三个标志位不变
SSH、SCI
0000
加0,通用寄存器逻辑移位
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
第四步
下地址
30
指令执行完后执行得下一条指令
CI3~0
0011
条件转移执行
SCC3~0
0000
程序执行方式
0MRW
0100
无读写操作
0I2~I0
0011
数据来源于B寄存器
SAI8~6
0011
累加器:
F->B;Y输出结果
SBI5~3
1000
选择指令中的寄存器,数据处理方式进行加操作
B口
0000
不使用指定寄存器
A口
0000
不使用指定寄存器
0SST
0001
接收ALU标志位输出的值
SSH、SCI
0001
无移位,运算cn+1
DC2
0000
寄存器接受信息不用
DC1
0000
内部总线信息来源来自开关
(3)MAPROM、CM1~CM7八块芯片内容的写入过程
将教学机的左下方的5个拨动开关置为00101,将要对其编程的芯片28C64B插到实验台上扩展存储器芯片的位置,一次一次,用E命令将其控制信号键入。
插入芯片MAPROM:
MAPROM的数据映象如下:
MAPROM
(4)修改监控制程序
①加入相应代码,实现相应汇编指令
;1WORD;3-FollowByTwoRegisters
TYPE3DW'ADD',0000H,'SUB',CMP0H
DW'CMRET,0300H,'AND',0200H,'OR',0600H,'XOR',0400H
DW'TEST',0500H,'MVRR',0700H
DW'ADC',2000H,'SBB',2100H,'NXOR',2200H
DW'NAND',0A100H,0
;2WORD7-FollowByARegisterAndAAdreINC
TYPE7DW'MVRD',8800H
INCW'MOVL',0AA00INC
;1WORD10-FollowByAReDECter(DR)
TYPE10DW'POP',8700H,'INC',0900H,'DECDEC0800H,
DECW'SHL',0A00HDECSHR',0B00H
DW'NOT',2D00H,'ASRTESTC00H,'RCL',2A00H
DW'ACR',2B00H,'ADTW',0A100H
DW'POPR',0BB00H,'DERC',0CC00H,0
②通过交叉汇编程序ASEC对修改过的监控程序Monitor.asm进行汇编生成新的监控程序Monitor.cod.
选择ROM芯片类型
选择文件写入方式(高位MONITOR)
选择文件写入方式(低位MONITOR)
数据写入成功
5.对扩展指令进行验证
经过验证结果均正确,说明扩展指令成功。
6.总结与体会
经过四个星期的学习与实践,我和小组同学终于成功完成此次课程设计,扩展出了四条汇编指令,并能够在机器上顺利运行。
总结四周学习的内容如下:
首先我们开始准备动手做实验前的预备知识,磨刀不误砍柴功嘛,实验前必须理解的内容是很多的。
第一步是复习并深入了解了指令的相关内容,TEC-2000教学机的指令格式、寻址方式并编写了一些汇编小程序增加对教学机各种指令的理解,另外对于指令的执行过程也有了进一步的理解,并熟悉了微指令的流程。
然后熟悉了微程序控制器的原理和执行过程,尤其是各个芯片和对应的控制信号该如何选择器功能是什么,只有理解了这些才能正确编出指令,否则会遇到重重困难。
最后监控程序的10中类型也要了解才能清楚自己编写的指令属于哪种类型,才能正确的修改监控程序。
其次就是动手作业了。
我们要对7个芯片进行写入,虽然有些繁琐,但正好锻炼了我的耐心和细心。
刚开始我们编写了几个指令也成功写好了芯片,经过验证也得到成功,尝到了小小的喜悦,但是这几个指令并不满足要求,还没有达到四种寻址方式,所以我们又重新开始编写指令,最终终于写出了符合要求的四条指令,然后写入芯片。
这个过程中也遇到了不少困难,由于硬件的东西容易损坏,特别是芯片,很容易写坏或者插拆时管脚损坏,这样所有的工作就得重新来过,虽然很麻烦但是我们还是重新做了好几次,保持耐性这也是实验教给我们的,最终我们还是成功的写好了芯片,指令也验证正确。
最后是监控程序的修改。
刚开始我们的三条指令都成功修改成功,唯独POPR这条指令试了好几次都没有成功,刚开始找不到原因,后来我发现,监控程序的ASM文件里10中TYPE里的指令书写似乎有一些规则,类似功能的可能是些在一行的,所以新编的指令应该找和它类似的指令写在一行,这样猜想了,结果竟然正确了,所以我想我的这个猜想应该是正确的吧。
总的来说在动手实践的过程中我们不仅对组成原理这门课程和TEC-2000教学机有了巩固和体会,学到了更多课堂和书本上没有的知识,更重要的是,我们得到了锻炼,磨练了意志力和耐心,细致和严谨,还有培养了团队精神,有了小组人的共同努力才能够顺利地完成了实验,另外还要感谢指导老师们对我们遇到的问题的积极解答。
这次课设中学到的一切我相信以后也会对我有用的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组成 原理