第一章 课程设计概述
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
0000 0000
数据开关的状态→R0
ADD A
0001 0000
XXXX XXXX
R0+[A]→R0
STA A
0010 0000
XXXX XXXX
R0→[A]
OUT A
0011 0000
XXXX XXXX
[A]→LED
JMP A
0100 0000
XXXX XXXX
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
SWB
控制台指令
0
0
读内存(KRD)
0
1
写内存(KWE)
1
1
启动程序(RP)
根据以上要求设计数据通路框图如附页中图1所示。微指令格式如表3所示,当微指令
格式确定之后,下一步就是确定后续微指令地址,通常的方法是先确定微程序分支处的
微地址,因为微程序分支处需要进行判断测试,这些微地址确定以后,就可以在一个“微
地址表”中将分支微地址填入相应的分支微地址单元,避免以后的设计中因重复使用而
造成错误,对于其他位置就可以按一条微指令对应一个微地址随意填写。
表3: 微指令格式
24
23
22
21
20
19
18
17
16
15 14 13
12 11 10
9 8 7
6
5
4
3
2
1
S3
S2
S1
S0
M
Cn
WE
A9
A8
A
B
C
uA5
uA4
uA3
uA2
uA1
uA0
A字段 B字段
15
14
13
选择
0
0
0
0
0
1
LDRi
0
1
0
LDDR1
0
1
1
LDDR2
1
0
0
LDIR
1
0
1
LOAD
1
1
0
LDAR
12
11