好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

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

课程设计题目:计算机组成原理 专 业 名 称: 计算机科学与技术 班 级: 关 童: 张一轮: 孙吉阳:9

老 师 姓 名:单博炜

2015年12月31日 第一章 课程设计概述

1.1 课程设计的教学目的

本课程设计的教学目的是在掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握数据信息流和控制信息流的流动过程,进一步加深计算机系统各模块间相互关系的认识和整机的概念,培养开发和调试计算机的技能。在设计实践中提高应用所学专业知识分析问题和解决问题的能力。 1.2 课程设计任务和基本要求

本课程设计以TDN-CM++计算机组成原理教学实验系统为平台设计完成。 1 按给定的数据格式和指令系统,理解微程序控制器的设计原理。

2 设计给定及其指令系统以及微程序流程图,按微指令格式写出微程序的微指令代码。 3 链接逻辑电路,完成启动、测试、编程、校验和运行,并观测运行过程及结果。 4 将微程序控制器模块与运算器模块、存储器模块联机,组成一台模型计算机。 5 用微程序控制器控制模型机的数据通路。

6 通过在模型机上运行由机器指令组成的简单程序,掌握机器指令与微指令的关系,建立计算机的整机概念,掌握计算机的控制机制。

7 按指定应用项目进行汇编指令格式及功能设计,并设计相应的机器指令代码,按照模型机数据通路设计实现机器指令功能的微程序。在PC机上编辑机器指令和微程序,装载代码到TDN-CM++实验系统并运行,实现应用要求。

第二章 规定应用项目的验证实现

2.1 设计原理

在部件实验中,我们是人为用二进制开关来模拟一些控制信号来完成数据通路的控制。而在本课程设计中,数据通路的控制将由微程序控制器来完成。计算机从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

本设计的规定项目采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如表1(前4位是操作码):

表1:

指令助记符 IN ADD A STA A OUT A JMP A 操作码 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 地址码 功能说明 数据开关的状态→R0 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX R0+[A]→R0 R0→[A] [A]→LED A→PC IN为单字长(8位),含义是将数据开关8位数据输入到R0寄存器;ADD为双字长指令,第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相加,结果放在R0;STA为双字长指令,含义是将R0中的内容存储到以第二字A为地址内存单元中;OUT为双字长指令,含义是将内存中以第二字为地址的数据读到数据总线上,由数码管进行显示;JMP是双字长指令,执行该指令时,程序无条件转移到第二字所指定的内存单元地址。

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了三个控制台操作微程序:存储器读操作”(KRD):拨动总清开关CLR后,当控制台开关SWB、SWA置为“00”时,按START微动开关,可对RAM进行连续手动读操作;存储器写操作(KWE):拨动总清开关CLR后,当控制台开关SWB、SWA置为“01”时,按START微动开关,可对RAM进行连续手动写入;启动程序:拨动总清开关CLR后,当控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入第01号“取指”微指令,启动程序运行。这三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如表2:

表2:

SWA 0 0 1 SWB 0 1 1 控制台指令 读内存(KRD) 写内存(KWE) 启动程序(RP) 根据以上要求设计数据通路框图如附页中图1所示。微指令格式如表3所示,当微指令格式确定之后,下一步就是确定后续微指令地址,通常的方法是先确定微程序分支处的微地址,因为微程序分支处需要进行判断测试,这些微地址确定以后,就可以在一个“微地址表”中将分支微地址填入相应的分支微地址单元,避免以后的设计中因重复使用而造成错误,对于其他位置就可以按一条微指令对应一个微地址随意填写。

表3: 微指令格式

24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 S3 S2 S1 S0 M Cn WE A9 A8 A字段 B字段 15 14 13 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 选择 A B C

6 5 4 3 2 uA1 1 uA0 uA5 uA4 uA3 uA2 LDRi LDDR1 LDDR2 LDIR LOAD 1 1 0 LDAR 12 11 10 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 选择 RS-B ALU-B PC-B C字段: 9 0 0 0 0 1 1 1 8 0 0 1 1 0 0 1 7 0 1 0 1 0 1 0 选择 P(1) P(4) LDPC 按照数据通路可画出机器指令的微程序流程图如图2所示,当拟定“取值”微指令时,该微指令的判别测试字段为P(1)测试,由于取值指令是所有微程序都是用的公用微程序,因此P(1)测试结果出现多路分支,本机使用指令寄存器的前四位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定的微地址单元。控制台操作作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定的微地址单元,当分支地址单元固定后,其余每条微指令各占用控存一个微地址单元,随意填写即可,注意:微程序流程图上的单元地址为八进制。指令寄存器(IR)用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到缓存,然后在传送到指令寄存器中。

图2 微程序流程图

当全部微程序设计完毕后,应将每条微指令代码化,表4即为将图2微程序流程图按微指令格式转化得到的“二进制微代码表”。下图为表4:

微地址 00 01 02 03 04 05 06 07 10 11 12 13 14 15 S3 S2 S1 S0 M Cn WE A9 A8 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 A 000 110 100 110 011 010 001 110 001 110 110 110 110 000 B 000 110 000 000 000 001 101 000 000 110 110 110 110 001 C 100 110 001 000 000 000 000 000 000 110 110 110 110 000 μA5.....μA0 010000 000010 001000 000100 000101 000110 000001 001101 000001 000011 000111 001110 010110 000001 16 17 20 21 22 23 24 25 26 27 30 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 110 010 110 110 010 000 010 000 101 000 000 000 000 110 110 000 000 000 101 000 101 101 000 000 110 110 000 000 000 000 110 000 000 001111 010101 010010 010100 010111 000001 011000 000001 000001 010000 010001 本系统使用两种外部设备,一种是二进制代码开关,它作为输入设备(INPUT DEVICE);另一种是数码管,它作为输出设备(OUTPUT DEVICE).例如:输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线BUS上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码管显示。本设计的机器指令程序及相应的汇编程序如下:

地址(二进制) 内容(二进制) 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1001 0000 1010 0000 1011 2.2 操作步骤

1 按附页中图3进行连线。

2 测试:在联机软件CMPP中打开复杂模型机的数据通路图,在测试菜单中点击“开始”,按照提示进行测试。 3 写程序:采用联机读/写程序

按下面规定格式,用联机软件在CMPP中建立将机器指令及微指令的二进制代码编辑成十六进制的*.TXT文档,并用联机软件的转储功能将该格式文件装载到实验系统中。

程序:$P0000 微程序:$M00018110 $P0110 $M0101ED82 $P020A $M0200C048 $P0320 $M0300E004 $P040B $M0400B005 $P0530 $M0501A206 $P060B $M06959A01 $P0740 $M0700E00D $P0800 $M08001001

0000 0000 0001 0000 0000 1010 0010 0000 0000 1011 0011 0000 0000 1011 0100 0000 0000 0000 助记符 IN R0 ADD[0AH],R0 注释 \→R0 R0+[0AH]→R0 OUT[0BH] [0BH]→LED STA R0,[0BH] R0→[0BH] JMP 00H 00H→PC 自定 求和结果 0000 0001 $P0A01 $M0901ED83 $M0A01ED87 $M0B01ED8E $M00C01ED96 $M0D028201 $M0E00E00F $M0F00A015 $M1001ED92 $M1101ED94 $M1200A017 $M15070A01 $M1600D181 $M17070A10 $M18068A11 4 运行程序

联机运行:联机运行程序时,进入软件界面,装在机器指令及微指令后,选择【运行】→【通路图】→【复杂模型机】功能菜单打开相应动态数据通路图,按相应功能键即可联机运行、监控、调试程序。

第三章 指定应用项目的设计实现

3.1 设计任务:

将指令中所带数据X与以R0内容K为地址的内存单元内容Y执行X减Y的反的运算,结果送入Y的上一个内存单元。

3.2 任务分析及解决方案:

对该任务而言,可以看出,该任务中涉及到了减法运算和逻辑非运算。根据题目,X存于R0寄存器中,Y存在于以K为直接地址的 R1寄存器中,然后将Y取反,存入R1,将R0与R1中内容相减存入R0,最后将结果存入R1寄存器中以60位地址的单元中。 3.3 设计原理:

整体设计原理与第二章规定项目设计原理相似,其中,数据通路框图如附页图1所示。本任务采用的的五条机器指令为:IN(输入),SUB(二进制减法),AND(逻辑非运算后求逻辑与),STA(存数),OUT(输出),其功能和格式见表5。

表5: 指令助记符 LDI R0 01 LAD M R1 03 STA M 61 R1 NOT Y SUB R0 R1 STA M 60 R1 操作码 0110 0000 1100 0001 1100 0001 0100 0101 1000 0100 1101 0000 地址码 功能说明 将01存入R0 将02存入R1 地址60存入R1 对R1取反 R0减R1 将R0内容给地址60 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 图4:微程序流程图

而该微程序流程图如下:

全部微程序设计完毕后,每条代码微指令化,表5即为将图4微程序流程图按微指令格式转化得到的该任务的“二进制代码表”:

表5:二进制代码表

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

计算机组成原理课程设计报告课程设计题目:计算机组成原理专业名称:计算机科学与技术班级:关童:张一轮:孙吉阳:9老师姓名:单博炜2015年12月31日第一章课程设计概述1.1课程设计的教学目的本课程设计的教学目的是在掌握计算机系统组成及内部工作机制、理解计算机各功
推荐度:
点击下载文档文档为doc格式
5l1dp9jd3e7b8vd538ce5nrap1rg1l00xh3
领取福利

微信扫码领取福利

微信扫码分享