计算机组成原理文档.docx
- 文档编号:23295715
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:39
- 大小:150.66KB
计算机组成原理文档.docx
《计算机组成原理文档.docx》由会员分享,可在线阅读,更多相关《计算机组成原理文档.docx(39页珍藏版)》请在冰豆网上搜索。
计算机组成原理文档
目录
1需求分析1
1.1课程设计目的1
1.2课程设计内容及要求1
1.3TDN-CM++计算机组成原理实验教学系统特点2
1.4微指令格式分析2
1.5指令译码电路分析5
1.6寄存器译码电路分析6
1.7时序分析7
2总体设计9
2.1数据格式和机器指令描述9
2.2机器指令设计11
3详细设计15
3.1控制台微程序流程的详细设计15
3.2运行微程序流程的详细设计18
4.微程序二进制代码表28
5实现阶段30
5.1所用模型机数据通路图及引脚接线图30
5.2测试程序及结果32
心得体会34
参考资料34
1需求分析
1.1课程设计目的
本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。
目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。
1.2课程设计内容及要求
基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。
设计过程中要求考虑到以下各方面的问题:
(1)指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器);
(2)数据类型(无符号数,有符号数,整型,浮点型);
(3)存储器划分(指令,数据);
(4)寻址方式(立即数寻址,寄存器寻址,直接寻址等);
(5)指令格式(单字节,双字节,多字节);
(6)指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出)。
要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。
1.3TDN-CM++计算机组成原理实验教学系统特点
TDN-CM++计算机组成原理实验教学系统,由西安唐都科教仪器公司生产,具备支持开放式实验教学方法的结构特点。
实验采用负逻辑模式,即灯亮为“0”,灯灭为“1”。
系统采用部件单元式结构,包括运算器、存储器、控制器、信号及时序控制、内总线、外总线、外围接口及输入输出设备、大规模可编程逻辑器件等计算机功能部件的单元电路。
系统所具有的软硬件结构对用户的实验设计具有完全的开放性,其数据线、地址线、控制线都是由用户来实施连接,系统中的运算器结构、控制器结构及微程序指令的格式及定义均可由用户根据教学需要来灵活改变或重新设计。
1.4微指令格式分析
微指令格式如下表:
表1-1微代码定义
S3S2S1S0MCN
WE
A9A8
A
B
C
μA5~μA0
242322212019
18
1716
151413
121110
987
654321
每个字段的具体含义如下:
(1)字段24~19控制运算器的控制端,通过改变S3~CN来决定对数据进行何种算术或逻辑运算。
本设计中全部为正逻辑运算。
算术运算
逻辑运算
无进位
有进位
M
0
0
1
CN
1
0
×
(2)字段18为控制对主存W/R的开关
A9
A8
WE
说明
0
1
0
对主存进行对操作
0
1
1
对主存进行写操作
(3)字段17、16控制24译码器的输出端,对Y0、Y1、Y2进行选择。
A9
A8
Yi
操作
说明
0
0
Y0
选中SW-B
INPUTUNIT的开关
0
1
Y1
选中CE
MAINMEN的控制片选开关
1
0
Y2
选中LED-B
OUTPUTUNIT的开关
1
1
×
NULL
(4)字段15~7为A、B、C三个开关控制端。
A字段
15
14
13
开关
说明
0
0
1
LDDRi
控制寄存器Ri的写入
0
1
0
LDDR1
暂存器DR1的控制开关
0
1
1
LDDR2
暂存器DR2的控制开关
1
0
0
LDIR
指令寄存器IR的控制开关
1
0
1
LOAD
非自动输入的数据装载入PC计数器的控制开关
1
1
0
LDAR
地址寄存器AR的控制开关
0
0
0
NULL
空操作
B字段
12
11
10
开关
说明
0
0
1
RS-B
寄存器R0、R1、R2的输出开关
0
1
0
RD-B
寄存器R0、R1、R2的输出开关
0
1
1
RI-B
寄存器R0、R1、R2的输出开关
1
0
1
ALU-B
运算器ALU的输出开关
1
1
0
PC-B
PC计数器的输出开关
1
0
0
299-B
本设计中不涉及
0
0
1
NULL
空操作
C字段
9
8
7
开关
说明
0
0
1
P
(1)
指令译码器中的P
(1)为低电平有效
0
1
0
P
(2)
指令译码器中的P
(2)为低电平有效
0
1
1
P(3)
指令译码器中的P(3)为低电平有效
1
0
0
P(4)
指令译码器中的P(4)为低电平有效
1
1
0
LDPC
将自动输入的数据加1后输入到PC计数器中的控制开关
1
0
1
AR
本设计中不涉及
0
0
1
NULL
空操作
(5)字段6~1为该条微程序的八位二进制后继地址,其决定顺序执行哪条微程序。
1.5指令译码电路分析
指令译码原理工作图如下:
图1.1指令译码原理图
P
(1)~P(4)为低电平有效,当选用时该信号为零;I7~I2表示机器指令前六位;SE5~SE1表示能够强置改变入口地址的后五位。
根据上图得出指令译码器的逻辑表达式如下:
拟定机器指令通过上式即可算出每条子程序的入口地址。
1.6寄存器译码电路分析
寄存器译码原理图如下:
图1.2寄存器译码原理图
寄存器的输入、输出不仅决定于输入、输出开关,还与机器指令的后四位(即I3~I0)有关,由其决定哪个寄存器被选中。
1.6.1寄存器的输入
LDRi为寄存器的输入开关,且为低电平有效(即LDRi=0),I1、I0对寄存器进行选择,决定数据进入哪个寄存器。
LDRi
I1
I0
LDR0
0
0
0
LDR1
0
0
1
LDR2
0
1
0
1.6.2寄存器的输出
RS-B、RD-B、RI-B为寄存器的输出开关,且为低电平有效。
I3~I0对寄存器进行选择,决定从哪个寄存器输出指令。
R0-B
RS-B
RI-B
I3
I2
I1
I0
R0-B
0
1
1
X
X
0
0
1
0
1
0
0
X
X
R1-B
0
1
1
X
X
0
1
1
0
1
0
1
X
X
R2-B
0
1
1
X
X
1
0
1
0
1
1
0
X
X
1
1
0
X
X
X
X
1.7时序分析
T1、T2、T3、T4为节拍控制端,本设计用了T4节拍控制端,当指令通过译码器P
(1)时,P
(1)对操作码进行测试,通过节拍脉冲T4的控制,以便识别所要求的操作。
图1.3时序信号图
TS1时进行微程序控制器控制,TS2时进行微指令寄存器控制,TS时控制LDIR、LDAR,TS4时对P
(1)、P
(2)、P(3)、P(4)、AR、LOPC、LDRi、LDDR1、LDDR2进行控制。
2总体设计
2.1数据格式和机器指令描述
2.1.1数据格式
本设计中所有需要处理的数据全部采用定点无符号整数表示,8个bit位,格式如下:
7
6
5
4
3
2
1
0
数值
数据的范围是0~28,即0~255。
2.1.2机器指令描述
机器指令描述见下表:
表2-1机器指令描述
指令
类别
指令名称
指令格式
助记符
寻址方式
说明
输
入
输
出
类
指
令
输入指令
7
6
5
4
3
2
1
0
OP
R2
INR2
寄存器寻址
IN→R2
输出指令
7
6
5
4
3
2
1
0
OP
OUTR0
直接寻址
R0→LED-B
存
储
器
访
问
指
令
取数指令
7
6
5
4
3
2
1
0
OP
R0
7
6
5
4
3
2
1
0
Addr
LDAaddr,R0
直接寻址
[addr]→R0
存数指令
7
6
5
4
3
2
1
0
OP
R0
7
6
5
4
3
2
1
0
Addr
STAR0,addr
直接寻址
R0→[addr]
寄存器间传送指令
7
6
5
4
3
2
1
0
OP
R2
R0
MOVR2,R0
寄存器寻址
R2→R0
无条件转移
7
6
5
4
3
2
1
0
OP
7
6
5
4
3
2
1
0
Addr
JMPaddr
立即寻址
Addr→PC
停机指令
7
6
5
4
3
2
1
0
OP
STP
程序到此处终止
算术加法指令
7
6
5
4
3
2
1
0
OP
R0
R0
7
6
5
4
3
2
1
0
Addr
ADDR0,Addr,R0
直接寻址
R0+[Addr]→R0
逻辑与运算指令
7
6
5
4
3
2
1
0
OP
R0
R0
7
6
5
4
3
2
1
0
Addr
ANDRs,Addr,Rd
直接寻址
R0∧[Addr]→R0
2.2机器指令设计
2.2.1控制台指令
PC计数器在用清零开关CLR清零后,通过控制台开始进行机器指令的读写和执行,此处将00Q的后继地址设为20(即010000)。
此时只有P(4)有效,即P(4)=0,P
(1)=P
(2)=P(3)=1。
强置改变有一个特点,当SEi为1时无效,不能改变;只有SEi为0时,才能对该位上的数进行改变;但只能由0变成1,而不能逆转。
(1)强置写指令
当进行机器指令写入时,将SWB,SWA置成01状态,通过指令译码器的逻辑表达式即可算出入口地址。
SE5=1
SE4=1
SE3=1
SE2=1
SE1=0
SE5~SE2均无效,只有SE1有效,即可得出010000改变为010001,即强置写的入口地址为21。
(2)强制写指令
当进行机器指令写入时,将SWB,SWA置成00状态,通过指令译码器的逻辑表达式即可算出入口地址。
SE5=1
SE4=1
SE3=1
SE2=1
SE1=1
SE5~SE1均无效,不能对010000进行改变,即强置写的入口地址为20。
(3)程序执行指令
当进行机器指令写入时,将SWB,SWA置成11状态,通过指令译码器的逻辑表达式即可算出入口地址。
SE5=1
SE4=1
SE3=1
SE2=0
SE1=0
SE5~SE3均无效,SE2和SE1有效,即可得出010000改变为010011,即强置写的入口地址为23。
2.2.2运行微程序机器指令
PC计数器在用清零开关CLR清零后,通过控制台进入机器指令执行状态,然后开始运行微程序。
此时只有P
(1)有效,即P
(1)=0,P
(2)=P(3)=P(4)=1,且SWB,SWA仍为11。
此处将运行P
(1)的上一步微指令的后继地址设为40(即100000),应用指令译码器的逻辑表达式对其进行改变得出微程序入口地址。
由于决定入口地址的只有机器指令的前四位(即I7~I4),则通过拟定其先得出入口地址,并检验拟定的前四位是否合理,如下表所示。
表2-2机器指令前四位
机器指令名称
指令前四位
SE5~SE1
入口地址
备注
IN
0000
11111
100000即40
根据机器指令前四位得出的入口地址没有重复,说明机器指令前四位拟定合理。
MOV
0001
11110
100001即41
ADD
0010
11101
100010即42
AND
0011
11100
100011即43
STA
0100
11011
100100即44
LDA
0101
11010
100101即45
OUT
0110
11001
100110即46
JMP
0111
11000
100111即47
STP
1000
10111
101000即50
根据寄存器译码分析可以得出机器指令的后四位。
指令名称
指令后四位
说明
IN
0010
“INPUTDEVICE”→R0
ADD
0000
R0+[Addr]→R0
STA
R0→Addr
LDA
[Addr]→R0
AND
R0*[Addr]→R0
MOV
1000
R2→R0
OUT
0000
指令执行时不涉及寄存器的访问
JMP
STP
通过以上可得出完整的机器指令,如下表所示。
表2-3机器指令码
助记符
机器指令码
说明
INR2
00000010
IN→R2
ADDR0,Addr,R0
00100000
R0+[Addr]→R0
xxxxxxxx
STAR0,addr
01000000
R0→[addr]
xxxxxxxx
LDAaddr,R0
01010000
[addr]→R0
xxxxxxxx
ANDRs,Addr,Rd
00110000
R0*[Addr]→R0
xxxxxxxx
MOVR2,R0
00011000
R2→R0
OUTAddr
01100000
[Addr]→LED-B
xxxxxxxx
JMPaddr
01110000
Addr→PC
xxxxxxxx
STP
10000000
程序到此处终止
3详细设计
3.1控制台微程序流程的详细设计
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
11
000
000
100
NULL
P(4)
3.1.1公操作
10
00
对机器进行总清零CLR1-0-1。
选中P(4),通过译码形成入口地址。
3.1.2强置写
形成入口地址后,执行写操作。
1.
11
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
11
110
110
110
NULL
LDAR
PC-B
LDPC
14
(1)打开PC-B将数据送到总线上;
(2)打开LDAR将数据从总线流到AR中;
15
(3)打开LDPC,让自动加1的数据进入PC中。
2.
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
00
010
000
000
NULL
SW-B
LDDR1
NULL
(1)打开SW-B将数据送到总线上,
(2)打开LDDR1将数据从总线流到DR1中。
3.
S3S2S1S0MCN
WE
A9A8
A
B
C
000001
1
01
000
101
000
F=A
WE
CE
NULL
ALU-B
NULL
(1)打开ALU-B将数据送到总线上,其间DR1中的数据
相当于在ALU中做F=A的运算;
3.1.3强置读
形成入口地址后,执行写操作。
10
1.
16
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
11
110
110
110
NULL
LDAR
PC-B
LDPC
17
(1)打开PC-B将数据送到总线上;
(2)打开LDAR将数据从总线流到AR中;
(3)打开LDPC,让自动加1的数据进入PC中。
2.
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
01
010
000
000
NULL
WE
CE
LDDR1
NULL
(1)打开CE、WE置成00状态,将数据从主存送到总线;
(2)打开LDDR1将数据从总线流到DR1中。
3.
S3S2S1S0MCN
WE
A9A8
A
B
C
000001
1
10
000
101
000
F=A
NULL
LED-B
NULL
ALU-B
NULL
(1)打开ALU-B将数据送到总线上,其间DR1中的数据
相当于在ALU中做F=A的运算;
(2)打开LED-B,数据从总线流到输出单元,在数码管
上显示出来,完成数据读操作。
3.1.4执行程序
形成入口地址后,开始执行程序。
13
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
11
000
000
000
NULL
所有都为空操作,只是要通过后继地址转入到运行微程
序的流程中。
3.1.5控制台流程图
综合以上所有操作,即可得出控制台的总流程图。
图3.1控制台流程图
3.2运行微程序流程的详细设计
3.2.1公操作
02
01
从控制台强制执行流程,开始运行微程序。
对运行微程序来说,所有的子流程都要运行取指的公操作,然后才能进行各自的操作。
1.
40
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
11
110
110
110
NULL
LDAR
PC-B
LDPC
(1)打开PC-B,将PC中的数据(指令操作码地址)送到
总线上;
(2)打开LDAR将数据从总线流到AR中;
(3)打开LDPC,让自动加1的数据进入PC中。
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
01
100
000
001
NULL
WE
CE
LDIR
NULL
P
(1)
2.
(1)打开CE、WE置成00状态,对主存进行读操作,访问AR中保存地址的地址单元中指令;
(2)打开LDIR,将主存中被访问的地址单元中指令送到IR;
(3)选中P
(1),根据刚保存到IR中的指令,通过指令译码器,形成执行该指令的微程序入口地址。
3.2.2IN指令操作
完成公操作后,根据形成的入口地址运行IN指令操作。
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
00
001
000
000
NULL
SW-B
LDRi
NULL
SW→R2
(1)打开SW-B,将“INPUTDEVICE”中输入的数据流
到总线上;
(2)打开LDRi,根据IN指令的后两位决定让数据从总
线上进入到目的寄存器R2中。
3.2.3MOV指令操作
完成公操作后,根据形成的入口地址运行MOV指令操作。
01
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
11
001
011
000
NULL
LDRi
RI-B
NULL
(1)打开RS-B,根据MOV指令的I3、I2打开原始寄
存器R2输出门让其中保存的数据,流到总线上;
(2)打开LDRi,根据指令的后两位打开目的寄存器R0
输入门,让数据从总线上进入到R0中。
3.2.4ADD指令操作
完成公操作后,根据形成的入口微地址运行ADD指令操作。
1.
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
11
110
110
110
NULL
LDAR
PC-B
LDPC
(1)打开PC-B,将PC中的数据(指令地址码
地址)送到总线上;
(2)打开LDAR将数据从总线流到AR中;
07
(3)打开LDPC,让自动加1的数据进入PC中。
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
01
1010
000
000
NULL
WE
CE
LDAR
NULL
2.
(1)打开CE、WE置成00状态,将数据(指令
地址码)从主存送到总线上;
(2)打开LDAR将数据从总线流到AR中。
3.
S3S2S1S0MCN
WE
A9A8
A
B
C
000000
0
01
011
000
000
NULL
WE
CE
LDDR2
NULL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 文档