计算机组成原理课程设计报告
班级:08计算机 0803 班 姓名: 陈祥 学号: 20082908 完成时间: 2011.1.3
一、课程设计目的
1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系; 2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;
3.培养综合实践及独立分析、解决问题的能力。
二、课程设计的任务
针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。
三、 课程设计使用的设备(环境) 1.硬件
? COP2000实验仪 ? PC机 2.软件
? COP2000仿真软件
四、课程设计的具体内容(步骤)
1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现
1.该模型机指令系统的特点:
从指令字长来看该模型机指令系统包含单字长和双字长两种格式的指
令,字长为8位,对于需要访问内存的指令都是双字长的,指令系统中大多数指令是单字长;从指令操作码是定长和变长来看,这里认为,虽然ADD A, R?和ADD A, @R?都是执行加法操作,但他们是不同的指令,将指令格式中寻址寄存器的两位也认为是操作码的一部分,这两条指令的操作码不同。因此,指令系统的指令格式是定长操作码的,操作码为6位。
1)双字长的指令格式如下: A OP R? 举例: 助记符 ADD A, MM ADD A, #II MOV A, MM 机器码1 000110xx 000111xx 011110xx 机器码2 MM II MM
2)单字长的指令格式如下: OP R? 举例:
助记符 ADD A, R? OR A, R? MOV R?, A 机器码1 000100xx 011000xx 100000xx 机器码2
2.该模型机微指令系统的特点(包括其微指令格式的说明等): 该模型机微指令系统的微指令格式是水平型微指令,微指令的字长为24
位,是机器字长的3倍,每条微指令仅包含微操作控制字段,无顺序控制字段。操作控制字段的每一位对应一个微操作,采用字段直接译码的方式对系统进行控制。微指令的具体格式如下: XRD EMRD EMEN EINT MAREN ELP OUTEN STEN RRD RWR CN FEN X2 X1 X0 WEN AEN S2 EMWR PCOE IREN MAROE S1 S0 举例:微指令CBFFFF:取指令
1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2。计算机中实现乘法和除法的原理 (1)无符号乘法
①实例演示(即,列4位乘法具体例子演算的算式):
×
1
1 0
0 1 0 1 0 0 0
1 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 被乘数 乘数 位积 位积 位积 位积 结果
移位相加
②硬件原理框图: 右移 左移 CY ALU ST A W 被乘数 R0 乘数 R1 4 R2 开始
中间结果清0 乘数右移一位 移出位为1?
Yes
中间结果加被乘数 No
被乘数左移一位 移位次数为4
Yes
保存中间结果
结束
(2)无符号除法
①实例演示(即,列4位除法具体例子演算的算式): 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 除数右移一位
1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 数右移一位
0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 除数右移一位
0 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 数右移一位
0 0 0 0 0 1 0 1
③算法流程图:
No
------商 ------被除数
------不够减,商上0,------做差后的被除数 ------够减,商上1,除------做差后的被除数 ------不够减,商上0,------做差后的被除数 ------够减,商上1,除------移位4次后,余数
②硬件原理框图:
商 左移
R2
右移
CY ALU ST A W R0 R1 被除数
③算法流程图:
开始
商清0
除数左移四位
被除数与除数比较
Yes
CY=0
No 除数右移一位
商左移一位
被除数减除数 No
CY=0
Yes
商+1 No
移位次数为4 除数 溢出 Yes 保存结果
结束
3.对应于以上算法如何分配使用COP2000实验仪中的硬件 (初步分配,设计完成后再将准确的使用情况填写在此处) 1)乘法程序的硬件分配: 硬件名称 R0 R1 R2 R3 A W PC EM IR ST MAR 硬件名称 R0 R1 R2 R3 A W PC EM IR ST MAR 在乘法算法中的功能 1用来存放被乘数2保存乘积结果 用来存放乘数 未使用 用做计数器,来控制程序循环次数 1、存放中间结果2、用来存放操作数参加ALU的运算 用来存放操作数参加ALU的运算 程序计数器 内存(存放程序) 指令寄存器 堆栈寄存器,可以用来暂存寄存器A的值 地址寄存器 在除法运算中的功能 用来存放被除数 用来存放除数 用来存放商 1用作计数器,控制循环的次数2保存余数 1、存放中间数据2、用来存放操作数参加ALU的运算 用来存放操作数参加ALU的运算 程序计数器 内存(存放程序) 指令寄存器 堆栈寄存器,可以用来暂存寄存器A的值 地址寄存器 2)除法程序的硬件分配 4.在COP2000集成开发环境下设计全新的指令/微指令系统 设计结果如表所示(可按需要增删表项) (1) 新的指令集
(设计两个不同指令集要分别列表) 助记符 _FATCH_ 机器码1 机器码2 指令说明 实验机占用,不可修改。复位后,所有寄存器清0,首先执行 _FATCH_ 指令取指 MOV R?,#II 000001XX II 将立即数II送到寄存器R?中 000000XX