当前位置:文档之家› 计算机组成原理课程设计实验报告书

计算机组成原理课程设计实验报告书

计算机组成原理课程设计报告
班级:姓名:学号:
完成时间:
一、课程设计目的
1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;
2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;
3.培养综合实践及独立分析、解决问题的能力。

二、课程设计的任务
针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。

三、课程设计使用的设备(环境)
1.硬件
● COP2000实验仪
● PC机
2.软件
● COP2000仿真软件
四、课程设计的具体内容(步骤)
1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点:
1)指令系统特点与设计
模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。

指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。

而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。

在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。

模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。

指令系统包括以下七类:
2)模型机寻址方式
3)指令格式
该模型机微指令系统的特点(包括其微指令格式的说明等):
2)微指令设置说明
2.计算机中实现乘法和除法的原理
(1)无符号乘法
①实例演示(即,列4位乘法具体例子演算的算式):
被乘数为1001(二进制),即为十进制的9;乘数为0110(二进制),即为十进制的6。

那么,可以通过笔算得到:
1001×0110=00110110
即十进制运算结果为:
9×6=54
无符号乘法的实例演示如图1所示:
1 0 0 1 ;被乘数
× 0 1 1 0 ;乘数
0 0 0 0 ;初始值(零)
+ 0 0 0 0 (0);乘数最低位为0,部分积加0,被乘数左移一
;位,乘数右移一位。

0 0 0 0 ;部分积
+ 1 0 0 1 (1);乘数最低位为1,部分积加被乘数,被乘数左
;移一位,乘数右移一位。

1 0 0 1 0 ;部分积
+ 1 0 0 1 (1);乘数最低位为1,部分积加被乘数,被乘数左
;移一位,乘数右移一位。

1 1 0 1 1 0 ;部分积
+ 0 0 0 0 (0);乘数最低位为0,部分积加0,被乘数左移一
;位,乘数右移一位。

(0) 0 1 1 0 1 1 0 ;计算完毕,结果为00110110 即:1001×0110=00110110
②硬件原理框图:
③算法流程图:
在模型机上实现无符号数乘法运算时,采用“加法—移位”的重复运算方法。

因此,无
(2)无符号除法
①实例演示(即,列
被除数为01000011,即为十进制的6。

那么,可以通过笔算得到:
01000011÷0110=1011 (0001)
即十进制运算结果为:
67÷6=11 (1)
无符号除法的实例演示如图4所示
1 0 1 1
0 1 1 0 0 1 0 0 0 0 1 1 ;被除数
0 1 1 0 ;除数
0 1 0 0 0 0 1 1 0 ;被除数左移一位,比较,够减
0 1 1 0 ;相减,商上1
0 0 1 0 0 1 1 0
0 0 1 0 0 1 1 0 0 ;余数左移一位,比较,不够减
0 1 1 0 ;商上0
0 1 0 0 1 1 0 0 0 ;余数左移一位,比较,够减
0 1 1 0 ;相减,商上1
0 0 1 1 1 0 0 0
0 0 1 1 1 0 0 0 0 ;余数左移一位,比较,够减 0 1 1 0 ;相减,商上1
0 0 0 1
②硬件原理框图:
初始化:被除数左移
③算法流程图:
3.对应于以上算法如何分配使用COP2000实验仪中的硬件(1)乘法硬件分配情况表
(2)除法硬件分配情况表
4.在COP2000集成开发环境下设计全新的指令/微指令系统设计结果如表所示(可按需要增删表项)
(1)新的指令集
(设计两个不同指令集要分别列表)新的指令集(乘法和除法)
(2)新的微指令集
5.用设计完成的新指令集编写实现无符号二进制乘法、除法功能的汇编语言程序(1)乘法
4位乘法的汇编语言程序清单:
MOV R1,#07H
MOV R0,#05H
MOV R2,#00H
B1:TEST R0
JZ OVER
SHR R0
JC B2
B3:SHL R1
JMP B1
B2:MOV A,R1
ADD R2,A
JMP B3
OVER:ENDD
(2)除法(选作)
4位除法的汇编语言程序清单:
MOV R1,#43H
MOV R2,#06H
MOV R3,#04H
MOV R0,#01H
RL R2
RL R2
RL R2
RL R2
D:RL R1
MOV A,R1
SUB A,R2
JC B1
OR A,#01H
MOV R1,A
B1:MOV A,R3
SUB A,R0
JZ OVER
MOV R3,A
JMP D
OVER:ENDD
6.上述程序的运行情况(跟踪结果)
按下表填写描述以上各程序运行情况的内容。

按每个程序一张表进行。

乘法跟踪表格(截图)
除法跟踪表格(截图)
7.设计结果说明
1)在编写汇编程序时,算法流程图主要选用的是比较成熟的算法,避免出现不必要的错误。

但还是在编写除法的时候出现了错误,主要体现在被除数除数做减法后,够减不够减还有商1商0的问题上。

经过仔细研究与讨论后改正了一些逻辑错误,找到了正确答案。

2)在编写指令特别是微指令的时候,在跳转方面遇到了一些问题,没有考虑到微地址对跳转也会有影响。

3)另一方面就是在做ALU运算时,应该注意操作数应该打进哪里,避免不必要的丢失数据。

比如说都打进了累加器A,或者都打进了W。

五、本次课程设计的总结体会(不少于200字)
通过本次课程设计,我完全掌握了指令/微指令系统的设计方法,即利用另一套指令/微指令系统来实现指令的流水工作。

可以在现有的指令系统上进行扩充,加上一些自己设计的指令,还可以重新设计一套完全不同的指令/微指令系统。

本次实验我就是完全自己设计了一套指令系统,实现的乘法和除法运算,并设计成流水指令。

理解了一些提高计算机软硬件性能和部件性能的一些可行途径,了解了计算机系统中软硬件的划分和相互配合关系,初步从计算机体系结构的角度提高了系统性能的主体思路,能够站在相对以前更高的角度来分析和解决平时学习和实践中遇到的问题。

通过本次课程设计,增加了对计算机硬件系统知识的了解,同时使我对计算机硬件这一类的学科产生了浓厚的兴趣。

本次实验让我深刻体会到了计算机CPU内部的数据处理过程,使我对计算机的理解更深了一步。

通过指令系统的编写与对COP2000实验机的学习,我对计算机硬件结构的理解也更加全面,对指令,微指令,微操作实现的硬件设计有了一定掌握。

相信一定会为我以后的学习起到重要的作用。

相关主题