计算机组成原理课程设计_第1页
计算机组成原理课程设计_第2页
计算机组成原理课程设计_第3页
计算机组成原理课程设计_第4页
计算机组成原理课程设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

计算机组成原理课程设计报告一、课程设计目的1在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;2通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;3培养综合实践及独立分析、解决问题的能力。二、课程设计的任务针对 COP2000 实验仪,从详细了解该模型机的指令/ 微指令系统入手,以实现乘法和除法运算功能为应用目标,在 COP2000 的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。三、 课程设计使用的设备(环境)1硬件 COP2000 实验仪 PC 机2软件 COP2000 仿真软件4、课程设计的具体内容(步骤)1详细了解并掌握 COP 2000 模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点: 总体概述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 CPL A 将累加器 A 的值取反累加器寻址 隐含寻址累加器 AOUT 将累加器 A 的值输出到输出端口寄存器 OUT寄存器寻址 参与运算的数据在R0R3 的寄存器中 ADD A,R0将寄存器 R0 的值加上累加器 A 的值,再存入累加器 A 中寄存器间接寻址参与运算的数据在存储器 EM 中,数据的地址在寄存器 R0-R3 中MOV A,R1将寄存器 R1 的值作为地址,把存储器 EM 中该地址的内容送入累加器 A中存储器直接寻址参与运算的数据在存储器 EM 中,数据的地址为指令的操作数。AND A,40H将存储器 EM 中 40H 单元的数据与累加器 A 的值作逻辑与运算,结果存入累加器 A立即数寻址 参与运算的数据为指令的操作数。 SUB A,#10H从累加器 A 中减去立即数 10H,结果存入累加器ACOP2000 模型机指令的最低两位(IR0 和 IR1)用来寻址 R0R3 四个寄存器;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 类指令:算术运算指令: 逻辑运算指令: 数据传输指令: 跳转指令:AND A, R? AND A, R? AND A, MM AND A, #II OR A, R?OR A, R? OR A, MM OR A, #IICPL AMOV A, R? MOV A, R? MOV A, MM MOV A, #II MOV R?, A MOV R?, AMOV MM, A MOV R?, #IIJC MM JZ MM JMP MMCALL MM RET移位指令: 中断返回指令: 输入/输出指令:ADD A, R? ADD A, R? ADD A, MM ADD A, #II ADDC A, R? ADDC A, R? ADDC A, MM ADDC A, #II SUB A, R?SUB A, R? SUB A, MM SUB A, #II SUBC A, R? SUBC A, R? SUBC A, MM SUBC A, #IIRR A RL A RRC A RLC ARETI READ MMWRITE MM INOUT该模型机微指令系统的特点(包括其微指令格式的说明等): 总体概述该模型机的微命令是以直接表示法进行编码的,其特点是操作控制字段中的每一位代表一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。 微指令格式的说明模型机有 24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。微程序控制器由微程序给出 24 位控制信号,而微程序的地址又是由指令码提供的,也就是说 24 位控制信号是由指令码确定的。该模型机的微指令的长度为 24 位,其中微指令中只含有微命令字段,没有微地址字段。其中微命令字段采用直接按位的表示法,哪位为 0,表示选中该微操作,而微程序的地址则由指令码指定。这 24 位操作控制信号的功能如表 2 所示:(按控制信号从左到右的顺序依次说明)表 2 微指令控制信号的功能操作控制信号 控 制 信 号 的 说 明XRD 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。EMWR 程序存储器 EM 写信号。EMRD 程序存储器 EM 读信号。PCOE 将程序计数器 PC 的值送到地址总线 ABUS 上。EMEN 将程序存储器 EM 与数据总线 DBUS 接通,由 EMWR 和 EMRD 决定是将 DBUS 数据写到 EM 中,还是从 EM 读出数据送到 DBUS。IREN 将程序存储器 EM 读出的数据打入指令寄存器 IR 和微指令计数器 PC。EINT 中断返回时清除中断响应和中断请求标志,便于下次中断。ELP PC 打入允许,与指令寄存器的 IR3、IR2 位结合,控制程序跳转。MAREN 将数据总线 DBUS 上数据打入地址寄存器 MAR。MAROE 将地址寄存器 MAR 的值送到地址总线 ABUS 上。OUTEN 将数据总线 DBUS 上数据送到输出端口寄存器 OUT 里。STEN 将数据总线 DBUS 上数据存入堆栈寄存器 ST 中。RRD 读寄存器组 R0R3,寄存器 R?的选择由指令的最低两位决定。RWR 写寄存器组 R0R3,寄存器 R?的选择由指令的最低两位决定。CN 决定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。FEN 将标志位存入 ALU 内部的标志寄存器。X2X1X0X2、X1、X0 三位组合来译码选择将数据送到 DBUS 上的寄存器。WEN 将数据总线 DBUS 的值打入工作寄存器 W 中。AEN 将数据总线 DBUS 的值打入累加器 A 中。S2S1S0S2、S1、S0 三位组合决定 ALU 做何种运算。COP2000 中有 7 个寄存器可以向数据总线输出数据, 但在某一特定时刻只能有一个寄存器输出数据. 由 X2,X1,X0 决定那一个寄存器输出数据。X2 X1 X0 输出寄存器0 0 0 IN_OE 外部输入门0 0 1 IA_OE 中断向量0 1 0 ST_OE 堆栈寄存器0 1 1 PC_OE PC 寄存器1 0 0 D_OE 直通门1 0 1 R_OE 右移门1 1 0 L_OE 左移门1 1 1 没有输出COP2000 中的运算器由一片 EPLD 实现. 有 8 种运算, 通过 S2,S1,S0 来选择。运算数据由寄存器 A 及寄存器 W 给出, 运算结果输出到直通门 D。S2 S1 S0 功能0 0 0 A+W 加0 0 1 A-W 减0 1 0 A|W 或0 1 1 A&W 与1 0 0 A+W+C 带进位加1 0 1 A-W-C 带进位减1 1 0 A A 取反1 1 1 A 输出 A2。计算机中实现乘法和除法的原理(1)无符号乘法实例演示(即,列 4 位乘法具体例子演算的算式):1 0 0 1 ;被乘数 0 1 0 1 ;乘数0 0 0 0 ;初始值(零) 0 1 0 1 (0) ;乘数最低位为 1,部分积加乘数,被乘数左移;一位,乘数右移一位。 0 1 0 1 ;部分积 0 0 0 0 (1) ;乘数最低位为 0,部分积加 0,被乘数左;移一位,乘数右移一位。 0 0 1 0 1 ;部分积 0 1 0 1 (1) ;乘数最低位为 1,部分积加被乘数,被乘数左;移一位,乘数右移一位。0 1 1 0 0 1 ;部分积 0 0 0 0 (0) ;乘数最低位为 0,部分积加 0,被乘数左移一;位,乘数右移一位。 (0) 0 0 1 1 0 0 1 ;计算完毕,结果为 0011001 即:10010110=0011001ALUA WR2R1被乘数 乘数DL RR0(部分积和结果)判断乘数末位 乘数右移被乘数左移硬件原理框图:在模型机上实现无符号数乘法运算时,采用“加法移位”的重复运算方法。那么,无符号乘法的硬件原理框图如图 2 所示。算法流程图:在模型机上实现无符号数乘法运算时,采用“加法移位”的重复运算方法。因此,无符号乘法的算法流程图如图 3 所示。算法流程图(2)无符号除法实例演示(即,列 4 位除法具体例子演算的算式):被除数为 01100100(二进制) ,即为十进制的 100;除数为 1001(二进制) ,即为十进制的9。那么,可以通过笔算得到:011001001001=10110001即十进制运算结果为:初始化被乘数及乘数初始化部分积开始计算部分积乘数末位为1?结束被乘数左移一位(不带进位)乘数右移一位(不带进位)输出结果(R 0)乘数为 0? YNYN1009=111无符号除法的实例演示如图 4 所示0 1 0 1 11 0 0 1 0 1 1 0 0 1 0 0 ;被除数1 0 0 1 ;除数;减去除数1 1 0 1 0 ;余数为负,C=1,商上 0 1 0 0 1 ;商左移一位,除数右移一位;加上除数0 0 0 1 1 1 ;余数为正,C=0,商上 1 1 0 0 1 ;商左移一位,除数右移一位;减去除数1 1 1 1 1 0 0 ;余数为负,C=1,商上 01 0 0 1 ;商左移一位,除数右移一位;加上除数0 0 0 0 1 0 1 0 ;余数为正,C=0,商上 1 1 0 0 1 ;商左移一位,除数右移一位;减去除数0 0 0 0 0 0 0 1 ;余数为正,C=0,商上 1,余数为 1;余数为正不用处理硬件原理框图:ALUA WR1R0被除数 除数DL R标志位 C除数右移R2(商)R3(计数器)初始化:除数左移图 5 无符号除法的硬件原理框图在模型机上实现无符号数除法运算时,采用“加减交替算法”的运算方法。那么,无符号除法的硬件原理框图如图 5 所示。算法流程图:初始化被除数及除数计数器初始化商初始化开始做减法YN商 0余数为负?商 1计算结束?YN计算结束?YN做加法输出结果结束计算余数3对应于以上算法如何分配使用 COP2000 实验仪中的硬件(初步分配,设计完成后再将准确的使用情况填写在此处)(1)无符号乘法符号乘法对应于 COP2000 实验仪的硬件具体分配使用情况如下表所示:表 3 无符号乘法的硬件分配情况硬件名称 实现算法功能描述寄存器 R0 计算时用来存放部分积和最后的积寄存器 R1 初始化时,用来存放被乘数; 在程序执行的过程中,用来存放向左移位后的被乘数。寄存器 R2 初始化时,用来存放乘数; 在程序执行的过程中,用来存放向右移

温馨提示

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

评论

0/150

提交评论