东北大学计算计组成原理课程设计报告_第1页
东北大学计算计组成原理课程设计报告_第2页
东北大学计算计组成原理课程设计报告_第3页
东北大学计算计组成原理课程设计报告_第4页
东北大学计算计组成原理课程设计报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——东北大学计算计组成原理课程设计报告计算机组成原理课程设计报告

班级:计算机1206班姓名:苏君君学号:20233966

完成时间:2023/1/16

一、课程设计目的

1.在试验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步把握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;

2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;

3.培养综合实践及独立分析、解决问题的能力。

二、课程设计的任务

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

三、课程设计使用的设备(环境)1.硬件

?COP2000试验仪?PC机2.软件

?COP2000仿真软件

四、课程设计的具体内容(步骤)

1.详细了解并把握COP2000模型机的微程序控制器原理,通过综合试验来实现(1)该模型机指令系统的特点:

①总体概述

COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄放器W、左移门L、直通门D、右移门R、寄放器组R0-R3、程序计数器PC、地址寄放器MAR、堆栈寄放器ST、中断向量寄放器IA、输入端口IN、输出端口寄放器OUT、程序存储器EM、指令寄放器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合规律控制来代替。

模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。指令码的最低两位用来选择R0-R3寄放器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储

器,找到执行该指令的微程序。而在组合规律控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制规律,实现模型机的各种功能。模型机有24位控制位以控制寄放器的输入、输出,选择运算器的运算功能,存储器的读写。

模型机的缺省的指令集分几大类:算术运算指令、规律运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。

②模型机的寻址方式

表1模型机的寻址方式

模型机的寻址方式累加器寻址寻址方式说明操作数为累加器A隐含寻址累加器A参与运算的数据在R0~R3的寄放器中参与运算的数据在存储器EM中,数据的地址在寄放器R0-R3中参与运算的数据在存储器EM中,数据的地址为指令的操作数。参与运算的数据为指令的操作数。指令举例CPLAOUT指令说明将累加器A的值取反将累加器A的值输出到输出端口寄放器OUT将寄放器R0的值加上累加器A的值,再存入累加器A中将寄放器R0的值作为地址,把存储器EM中该地址的内容送入累加器A中将存储器EM中55H单元的数据与累加器A的值作规律与运算,结果存入累加器A从累加器A中减去马上数55H,结果存入累加器A寄放器寻址ADDA,R0寄放器间接寻址MOVA,@R0存储器直接寻址ANDA,55H马上数寻址SUBA,#55HCOP2000模型机指令的最低两位(IR0和IR1)用来寻址R0~R3四个寄放器;IR2和IR3与ELP微控制信号,Cy和Z两个程序状态信号协同,控制PC的置数即程序的转移。各种转移的条件判断规律如下所示:PC置数规律

当ELP=1时,不允许PC被预置当ELP=0时

当IR3=1时,无论Cy和Z什么状态,PC被预置当IR3=0时

若IR2=0,则当Cy=1时PC被预置若IR2=1,则当Z=1时PC被预置

本模型机时序控制采用不定长机器周期的同步控制方式,一条指令最多分四个节拍。

系统提供的默认指令系统包括以下7类指令:算术运算指令:ADDA,R?ADDA,@R?ADDA,MMADDA,#IIADDCA,R?ADDCA,@R?ADDCA,MMADDCA,#IISUBA,R?SUBA,@R?SUBA,MMSUBA,#IISUBCA,R?SUBCA,@R?SUBCA,MMSUBCA,#II

(2)该模型机微指令系统的特点(包括其微指令格式的说明等):①总体概述

微命令是用直接表示法表示的,其特点是操作控制字段中的每一位代表一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。

②微指令格式的说明

模型机有24位控制位以控制寄放器的输入、输出,选择运算器的运算功能,存储器的读写。微程序控制器由微程序给出24位控制信号,而微程序的地址又是由指令码提供的,也就是说24位控制信号是由指令码确定的。该模型机的微指令的长度为24位,其中微指令中只含有微命令字段,没有微地址字段。其中微命令字段采用直接按位的表示法,哪位为0,表示选中该微操作,而微程序的地址则由指令码指定。这24位操作控制信号的功能如表2所示:(按控制信号从左到右的顺序依次说明)

规律运算指令:ANDA,R?ANDA,@R?ANDA,MMANDA,#IIORA,R?ORA,@R?ORA,MMORA,#IICPLA移位指令:RRARLARRCARLCA数据传输指令:MOVA,R?MOVA,@R?MOVA,MMMOVA,#IIMOVR?,AMOV@R?,AMOVMM,AMOVR?,#II跳转指令:JCMMJZMMGOTOMMCALLMMRET中断返回指令:RETI输入/输出指令:READMMWRITEMMINOUT表2微指令控制信号的功能操作控制信号XRDEMWREMRD控制信号的说明外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。程序存储器EM写信号。程序存储器EM读信号。PCOEEMENIRENEINTELPMARENMAROEOUTENSTENRRDRWRCNFENX2X1X0WENAENS2S1S0将程序计数器PC的值送到地址总线ABUS上。将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。将程序存储器EM读出的数据打入指令寄放器IR和微指令计数器μPC。中断返回时清除中断响应和中断请求标志,便于下次中断。PC打入允许,与指令寄放器的IR3、IR2位结合,控制程序跳转。将数据总线DBUS上数据打入地址寄放器MAR。将地址寄放器MAR的值送到地址总线ABUS上。将数据总线DBUS上数据送到输出端口寄放器OUT里。将数据总线DBUS上数据存入堆栈寄放器ST中。读寄放器组R0~R3,寄放器R?的选择由指令的最低两位决定。写寄放器组R0~R3,寄放器R?的选择由指令的最低两位决定。决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。将标志位存入ALU内部的标志寄放器。X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄放器。将数据总线DBUS的值打入工作寄放器W中。将数据总线DBUS的值打入累加器A中。S2、S1、S0三位组合决定ALU做何种运算。COP2000中有7个寄放器可以向数据总线输出数据,但在某一特定时刻只能有一个寄放器输出数据.由X2,X1,X0决定那一个寄放器输出数据。

X2X1X0000001010011100101110111输出寄放器IN_OE外部输入门IA_OE中断向量ST_OE堆栈寄放器PC_OEPC寄放器D_OE直通门R_OE右移门L_OE左移门没有输出COP2000中的运算器由一片EPLD实现.有8种运算,通过S2,S1,S0来选择。运算数据由寄放器A及寄放器W给出,运算结果输出到直通门D。

S2S1S0功能000001010011100101110111

A+W加A-W减A|W或A乘数为00010110(二进制),即为十进制的6。那么,可以通过笔算得到:

10001010×00010110=0000101111011100(0BDCH)

即十进制运算结果为:

138×22=3036

无符号乘法的实例演示如图1所示:

10001010;被乘数

×00010110;乘数

00000000;部分积初始值(0)

+00000000;乘数最低位为0,部分积加0,被乘数左移一

;位,乘数右移一位。

00000000;部分积

+10001010;乘数最低位为1部分积加被乘数,被乘数左

;移一位,乘数右移一位。

100010100;部分积

+10001010;乘数最低位为1,部分积加被乘数,被乘数左

;移一位,乘数右移一位。

1100111100;部分积

+0000000000;乘数最低位为0,部分积加0,被乘数左移一

;位,乘数右移一位。

1100111100;部分积

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

101111011100;计算的最终结果前面的0省去不写了

即:10001010×00010110=0000101111011100(0BDCH)

图14位无符号乘法实例演示

②硬件原理框图

下图2为COP2000软件自带的硬件结构图:

图2硬件原理框图

③算法流程图:

在模型机上实现无符号数乘法运算时,采用“加法—移位〞的重复运算方法。由于设计的时候不想过多与存取器打交道,所以就设计了压栈指令和出栈指令,用来保存高8位的结果。这也正是我的得意之处。具体的硬件分派见第3步的内容。因此,无符号乘法的算法流程图如图3所示。

开始初始化乘数与被乘数及存放最终结果的寄放器将R的值送入栈中先保存起来乘数是否为0N测试被乘数最低位是否为1YY计算部分积输出结果N终止被乘数带进位左移乘数不带进位右移

图3无符号乘法的算法流程图

(2)无符号除法

①实例演示(即,列8位除法具体例子演算的算式):

被除数为01111110(二进制),即为十进制的126;除数为00001011(二进制),即为十进制的11。那么,可以通过笔算得到:

01111110÷00001011=1011?0101

即十进制运算结果为:

126÷11=11?5

无符号除法的实例演示如图4所示01011

0000101101111110;被除数1011;除数;减去除数

11001;余数为负,C=1,商上0

1011;商左移一位,除数右移一位(1);加上除数

001001;余数为正,C=0,商上1

1011;商左移一位,除数右移一位(2);减去除数

1111101;余数为负,C=1,商上0

1011;商左移一位,除数右移一位(3)

;加上除数

00010000;余数为正,C=0,商上1

1001;商左移一位,除数右移一位(4);减去除数

00000101;余数为正,C=0,商上1,余数为5;余数为正不用处理

图4无符号除法的算法流程图

②硬件原理框图:

下图5为COP2000软件自带的硬件结构图:

图5无符号除法的硬件原理框图

③算法流程图:

在模型机上实现无符号数除法运算时,采用“加减交替算法〞的运算方法。因此,无符号除法的算法流程图如图6所示。

开始初始化被除数R0,除数R1,商R2为计算循环的次数,存入R3寄放器溢出处理Y除数R1为0N被除数R0减除数R1恢复除数R2,余数R0加除数R2终止Y有借位么NN余数R0为负Y商R2左移一位,加0商R2左移一位,加1除数R1右移一位,计数器R3减1除数R1右移一位,计数器R3减1Y计数器R3为1N被除数R0加除数除数R1Y计数器R3为1N被除数R0减除数R1N有进位么有借位么N

图6无符号除法的算法流程图

3.对应于以上算法如何分派使用COP2000试验仪中的硬件

(1)无符号乘法

符号乘法对应于COP2000试验仪的硬件具体分派使用状况如下表所示:

表3无符号乘法的硬件分派状况

硬件名称寄放器R0寄放器R1寄放器R2累加器A寄放器W左移门L直通门D右移门R实现算法功能描述存放被乘数;后来和R2一起用于存放左移后的被乘数。刚开始用来存放乘数;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论