微程序控制器模型计算机设计.docx
《微程序控制器模型计算机设计.docx》由会员分享,可在线阅读,更多相关《微程序控制器模型计算机设计.docx(10页珍藏版)》请在冰豆网上搜索。
微程序控制器模型计算机设计
基于微程序控制器的模型计算机设计
1.课程设计的目的:
1)、融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,从而清晰地建立计算机的整机概念。
2)、学习设计和调试计算机的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计的实践和经验。
2.课程设计要求:
根据给定的数据格式和指令系统,一台微程序控制的8位模型计算机,并运
行能完成一定功能的机器语言程序进行验证。
课程设计完成的内容
1)系统的总体设计,画出模型机数据通路框图;
2)微程序控制器的设计,包括设计所有机器指令的微程序流程图;设计微指令格式(建议采用全水平型微指令),设计微程序代码表(根据微程序流程图和微指令格式来设计);
3)根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序
4)画出模型机的原理图;
5)画出模型计算机指令执行波形图
3.课程设计报告内容:
1)、系统主要功能
A、数据格式
数据字规定采用定点整数补码表示法,字长8位,其中最高位为符号位,其格式如下:
7
6543210
符号位
尾数
B、指令格式
本设计CPU指令系统中使用5条机器指令,其格式与功能说明如下:
表1模型机指令系统及指令编码形式
助记符
机器指令码
Addr地址码
功能说明
IN
20H
“INPUT”中的数据→R0
ADDaddr
40H
XXH
R0+[addr]→R0
STAaddr
60H
XXH
R0→[addr]
OUTaddr
80H
XXH
[addr]→BUS
JMPaddr
A0H
XXH
addr→PC
IN指令为单字长(字长为8bits)指令,其功能是将数据开关的8位数据输
入到R0寄存器。
ADD指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器的内容与内存中地址为A的数相加,结果存放在R0寄存器中。
STA指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功
能是将R0寄存器中的内容存储到以第二个字为地址的内存单元中。
OUT指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将内存中以第二个字为地址的内存单元中的数据读出到数据总线,显示之。
JMP指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功
能是程序无条件转移到第二个字指定的内存单元地址。
2)、总体设计
总体设计的主要任务是根据指令系统的要求,选定所用器件,设计总框图(数据通路)。
总体设计的主要步骤如下:
A、对指令系统中的各条指令进行分析,得出所需要的占领周期与操作序列,以便确定各器件的类型和数量;
B、构成一个总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所要求的数据通路都能实现,并满足技术指标的要求;
C、检查全部指令周期的操作序列,确定所需要的控制点和控制信号;
D、检查所设计的数据通路,尽可能降低成本,简化线路,优化性能。
以上过程可以反复进行,以便得到一个较好的方案。
方案确定后,检查所选用的各个器件是否满足数据通路的要求。
数据通路的设计和器件的选择应同时进行,接入总线的器件都要有三态输出,以便与总线连接。
本课题采用下图中所示的设计方案,本方案没有考虑乘法和除法指令操作,采用单总线结构,使用的许多器件都是三态输出。
这种方案便于总线的连接和扩
展,但缺点是指令和数据的传送都要经过总线,因此对总线的使用权就要分配得
当。
图1.系统总体框图(数据通路图)
3)、微程序控制器
数据通路图一旦确定,数据流的通路,运算器和控制器的结构也就确定了。
图1中各功能器件上标注的控制信号,就是微程序控制器设计的依据。
A、微指令格式
微指令格式采用水平型微指令格式,微指令格式如下:
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
******
******
******
******
******
******
S3
S2
S1
S0
M
Cn
LOAD
WE
LDR0
LDDR1
15
14
13
12
11
10
9
8
7
6
4
5
3
2
1
0
LDDR2
LDIR
LDAR
ALU-B
R0-B
SW-B
PC-B
RAM-B
LDPC
P1
******
UA4
UA3
UA2
UA1
UA0
各字段说明如下:
uA4~uA0:
微程序控制器的微地址输出信号,是下一条要执行的微指令的地址。
S3、S2、S1、S0:
由微程序控制器输出的ALU操作选择信号,以控制执行16种算术操作或16中逻辑操作中的某一种操作。
M:
微程序控制输出的ALU操作方式选择信号。
M=0执行算术操作;M=1执行逻辑操作。
Cn:
微程序控制器输出的进位标志信号,Cn=1表示ALU运算时最低位有进位;Cn=0则表示无进位。
LOAD:
PC程序计数器初始值装载信号
WE:
WE=0.存储器读;WE=1,存储器写。
LDR0:
R0通用寄存器装载信号
LDDR1:
DR1暂存器装载信号
LDDR2:
DR2暂存器装载信号
LDIR:
IR寄存器装载信号
LDPC:
PC程序计数器自动加一信号
LDAR:
AR寄存器装载信号
ALU-B:
ALU运算结果输出三态门控信号
R0-B:
R0输出三态门控信号
SW-B:
SW输出三态门控信号
PC-B:
PC输出三态门控信号
RAM-B:
RAM输出三态门控信号
P1:
微程序分支处的判别测试。
P1=1,控制器对当前的机器指令进行翻译。
******:
无定义,备用
B、微程序控制器
微指令长度为31位,据此可以确定控制存储器的字长也应为31位。
微指令格式确定后,微程序的横向设计在于正确选择数据通路,纵向设计在于确定后继微指令地址。
纵向设计的通常做法是先确定微程序分支处的微地址,因为微程序分支处需要进行判别测试,这些微地址确定后,就可以在“微地址表”中把相应的微地址单元填进去,以免后面的设计中重复使用,以致造成设计错误。
当拟定“取指”微指令时,该微指令的判别测试字段应指明P1测试。
“取指”微指令是所有微程序都使用的公用微指令,P1测试的结果导致微程序出现多路分支。
在本模型机中,只拟设计5条机器指令,故用指令寄存器的前3位(IR7-IR5)作为测试条件,微程序可以实现8路转移,但我们只用到前5路分支后的微地址分别定为00100B-10100B(即04H-14H)。
C、微程序流程图:
图2.微程序流程图
E、微代码表设计如下:
地址
*****
*****
*****
*****
*****
*****
S3
S2
S1
S0
C
n
L
OA
D
W
E
L
D
R
0
L
D
D
R
1
L
D
D
R
2
L
D
I
R
L
D
A
R
A
L
U
|
B
R
0
|
B
S
W
|
B
P
C
|
B
R
A
M
|
B
L
D
P
C
P
1
*
*
*
*
U
A
4
U
A
3
U
A
2
U
A
1
U
A
0
0
0
00
00
22
81
1
1
1
1
0
1
00
00
41
40
1
1
1
0
4
00
02
04
00
1
1
0
8
00
00
22
89
1
1
1
1
1
0
9
00
00
21
0A
1
1
1
1
0
A
00
00
81
0B
1
1
1
1
1
0
B
00
01
08
0F
1
1
1
1
1
1
0
F
03
81
90
00
1
1
1
1
1
1
0
C
00
00
22
8D
1
1
1
1
1
1
0
D
00
00
21
0E
2
1
1
1
1
0
E
00
04
08
00
1
1
1
0
00
00
22
91
1
1
1
1
1
1
1
00
00
21
0E
1
1
1
1
1
1
2
00
00
01
00
1
1
4
00
00
81
0F
1
1
1
1
1
1
1
5
00
08
01
00
1
1
F、微程序控制器的逻辑结构框图
4.汇编语言测试程序
根据指令系统编写汇编语言测试程序。
IN;
ADD10H;
STA11H;
OUT11H;
JMP00H;
5.机器语言测试程序
根据设计的指令格式,将汇编语言测试程序手工转换成机器语言源程序,并将其写入到模型机中的RAM中去。
与上述汇编语言源程序对应的机器语言源程序如下:
助记符
RAM地址
机器代码
功能说明
IN
00
20
SW→R0
ADD10H
01
40
R0+[10H]→R0
02
10
STA11H
03
60
R0→[11H]
04
11
OUT11H
05
80
[11H]→BUS
06
11
JMP00H
07
A0
Addr→PC
08
00
数据段
***
***********
***********
***********
***********
10
65H
***********
11
***********
6、详细设计原理图:
各元件如下图所示,根据数据通路,画出模型计算机整体原理图。
7、机器指令运行波形:
9.设计总结及体会
虽然这只是一次的简单的课程设计,可是平心而论,也耗费了不少的心血,这就让我不得不佩服专门从事这方面的技术前辈,才意识到要想在此方面有所成就需要克服的困难太多了。
要有足够的耐心和毅力,不怕失败,一次次的调试直到成功为止。
遇到不懂得及时查资料,并记录。
没有不能弄懂的事情,只有不想去弄懂的人,只要努力了就有收获。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
这次课程设计必将成为我人生旅途上一个非常美好的回忆!
参考文献
[1]罗克露,单立平,刘辉,俸志刚.计算机组成原理.北京:
电子工业出版社,2004。
[2]张兴忠,阎宏印,武淑红.数字逻辑与数字系统.北京:
科学出版社,2004。
[3]杨春武,于艳丽,刘敬晗.tec-ca学生实验指导书.北京:
清华大学科教仪器厂,2005。