计算机组成原理课程设计报告 下载本文

内容发布更新时间 : 2024/6/22 19:00:38星期一 下面是文章的全部内容请认真阅读。

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

课程设计题目:计算机组成原理 专 业 名 称: 计算机科学与技术 班 级: 关 童: 张一轮: 孙吉阳: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