计算机组成原理课程设计Word格式文档下载.docx
- 文档编号:17057102
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:51
- 大小:266.16KB
计算机组成原理课程设计Word格式文档下载.docx
《计算机组成原理课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计Word格式文档下载.docx(51页珍藏版)》请在冰豆网上搜索。
4.设计内容
4.1设计原理
图1微程序控制器原理
1.COP2000模型机的微程序控制器原理
微程序控制器原理框图如图2所示。
它主要有控制存储器、微指令寄存器和地址转移逻辑三大部分组成。
其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。
图2微程序控制器原理框图
(1)控制存储器
控制存储器用来存放实现全部指令系统的微程序,机器运行时只读不写。
其工作过程是:
每读出一条微指令,则执行这条微指令接着以读出下一条微指令,又执行这条微指令……
(2)微指令寄存器
微指令寄存器用来存放由控制存储器读出的一条微指令信息。
其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
(3)地址转移逻辑
在一般情况下,微指令由控制存储器读出后直接给出下一微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。
如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。
当微程序出现分支时,意味着微程序出现条件转移。
在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器人内容,并按改好人内容去读下一条微指令。
地址转移逻辑就承担着自动完成修改微地址的任务。
2.COP2000模型机指令系统的特点:
①总体概述
COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:
运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。
微程序控制部分也可以用组合逻辑控制来代替。
模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。
相比而言8位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。
模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。
指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。
而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。
在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。
模型机的缺省的指令集分几大类:
算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。
②模型机的寻址方式如表1所示
表1模型机的寻址方式
模型机的寻址方式
寻址方式说明
指令举例
指令说明
累加器寻址
操作数为累加器A
CPLA
将累加器A的值取反
隐含寻址累加器A
OUT
将累加器A的值输出到输出端口寄存器OUT
寄存器寻址
参与运算的数据在R0~R3的寄存器中
ADDA,R0
将寄存器R0的值加上累加器A的值,再存入累加器A中
寄存器间接寻址
参与运算的数据在存储器EM中,数据的地址在寄存器R0-R3中
TOA,@R1
将寄存器R1的值作为地址,把存储器EM中该地址的内容送入累加器A中
存储器直接寻址
参与运算的数据在存储器EM中,数据的地址为指令的操作数。
ANDA,40H
将存储器EM中40H单元的数据与累加器A的值作逻辑与运算,结果存入累加器A
立即数寻址
参与运算的数据为指令的操作数。
JIANA,#10H
从累加器A中减去立即数10H,结果存入累加器A
3.COP2000模型机微指令系统的特点(包括其微指令格式的说明等):
该模型机的微命令是以直接表示法进行编码的,其特点是操作控制字段中的每一位代表一个微命令。
这种方法的优点是简单直观,其输出直接用于控制。
缺点是微指令字较长,因而使控制存储器容量较大。
②微指令格式的说明
微程序控制器由微程序给出24位控制信号,而微程序的地址又是由指令码提供的,也就是说24位控制信号是由指令码确定的。
该模型机的微指令的长度为24位,其中微指令中只含有微命令字段,没有微地址字段。
其中微命令字段采用直接按位的表示法,哪位为0,表示选中该微操作,而微程序的地址则由指令码指定。
这24位操作控制信号的功能如表2所示:
(按控制信号从左到右的顺序依次说明)
表2微指令控制信号的功能
操作控制信号
控制信号的说明
XRD
外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
EMWR
程序存储器EM写信号。
EMRD
程序存储器EM读信号。
PCOE
将程序计数器PC的值送到地址总线ABUS上。
EMEN
将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
IREN
将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器μPC。
EINT
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP
PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。
MAREN
将数据总线DBUS上数据打入地址寄存器MAR。
MAROE
将地址寄存器MAR的值送到地址总线ABUS上。
OUTEN
将数据总线DBUS上数据送到输出端口寄存器OUT里。
STEN
将数据总线DBUS上数据存入堆栈寄存器ST中。
RRD
读寄存器组R0~R3,寄存器R?
的选择由指令的最低两位决定。
RWR
写寄存器组R0~R3,寄存器R?
CN
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
FEN
将标志位存入ALU内部的标志寄存器。
X2
X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。
X1
X0
WEN
将数据总线DBUS的值打入工作寄存器W中。
AEN
将数据总线DBUS的值打入累加器A中。
S2
S2、S1、S0三位组合决定ALU做何种运算。
S1
S0
COP2000中有7个寄存器可以向数据总线输出数据,但在某一特定时刻只能有一个寄存器输出数据.由X2,X1,X0决定那一个寄存器输出数据,如表3所示。
表3寄存器输出
X2X1X0
输出寄存器
000
IN_OE外部输入门
001
IA_OE中断向量
010
ST_OE堆栈寄存器
011
PC_OEPC寄存器
100
D_OE直通门
101
R_OE右移门
110
L_OE左移门
111
没有输出
COP2000中的运算器由一片EPLD实现.有8种运算,通过S2,S1,S0来选择。
运算数据由寄存器A及寄存器W给出,运算结果输出到直通门D,如表4所示。
表4直通门D输出
S2S1S0
功能
A+W加
A-W减
A|W或
A&
W与
A+W+C带进位加
A-W-C带进位减
~AA取反
A输出A
4.2设计过程与步骤
1.计算机中实现乘法和除法的算法流程与相应的硬件实现原理
(1)无符号乘法
①算法流程如图3所示:
图3乘法流程图
②硬件原理如图4所示:
图4乘法原理框图
(2)无符号除法
①算法流程如图5所示:
图5除法流程图
②硬件原理框如图6所示:
图6除法原理框图
2.将2中算法与COP2000实验仪的硬件资源相对应
(1)无符号乘法的硬件分配情况如表5所示
表5乘法硬件分配
硬件名称
实现算法功能描述
寄存器R0
计算时用来存放过程积和结果积
寄存器R1
①初始化时,用来存放被乘数;
②在程序执行的过程中,用来存放向左移位后的被乘数。
寄存器R2
①初始化时,用来存放乘数;
②在程序执行的过程中,用来存放向右移位后的乘数。
累加器A
执行ADDA,R?
(加法)、SHLR?
(左移一位)、SHRR?
(右移一位)等命令时所必须使用的寄存器。
寄存器W
(加法)、CHECKR?
#II(检测乘数最后一位是否为1)等双操作数命令时所必须使用的寄存器。
左移门L
用来实现相应数据左移一位的运算,并能够控制该运算后的结果是否输出到数据总线。
直通门D
用来控制ALU的执行结果是否输出到数据总线。
右移门R
用来实现相应数据右移一位的运算,并能够控制该运算后的结果是否输出到数据总线。
程序计数器PC
①控制程序按顺序正常执行;
②当执行转移指令时,从数据线接收要跳转的地址,使程序能够按需要自动执行。
③当要从EM中读取数据时,由PC提供地址。
存储器EM
存储指令和数据。
微程序计数器μPC
向微程序存储器μM提供相应微指令的地址。
微程序存储器μM
存储相应指令的微指令。
输出寄存器OUT
将运算结果(R0)输出到输出寄存器OUT。
堆栈ST
当存储于累加器A的值将要受到破坏时,将其数据保存在堆栈ST中,使程序能够正常地执行。
(2)无符号除法硬件分配情况如表6所示
表6除法硬件分配
①初始化时,用来存放除数
②在程序执行过程中,用来存放向右移位后的过程除数
初始化时,用来存放被除数;
在程序执行过程中,用来保存当前算得的商。
寄存器R3
初始化时,用来保存除数,运算过程中其值也不改变。
①计算时用来存放中间结果;
②执行CMPR?
A(比较)JIANA,R?
(减法)等命令时所必须使用的寄存器。
执行JIANA,R?
(减法)等双操作数命令时所必须使用的寄存器。
将运算结果输出到输出寄存器OUT(R2:
商,R1:
余数)。
3.在COP2000集成开发环境下设计新的指令/微指令系统
(1)新的指令集如表7所示
表7新指令集表
助记符
机器码1
机器码2
_FATCH_
000000XX00-03
实验机占用,不可修改。
复位后,所有寄存器清0,首先执行_FATCH_指令取指
TOR?
#II
000001XX04-07
II
将立即数II送到寄存器R?
中
TOA,,R?
000010XX08-0B
将寄存器R?
的值送到累加器A中
JIAR?
A
000011XX0C-0F
的值加入累加器A中
000100XX10-13
将立即数II加入寄存器R?
JIANR?
000101XX14-17
从累加器A中减去寄存器R?
的值
CHECKR?
000110XX18-1B
TIAOMM
000111XX1C-1F
MM
ZF=1,跳转
TIAOCMM
001000XX20-23
CF=1,跳转
TIAOZMM
001001XX24-27
无条件跳转
未使用
001010XX28-2B
SHLR?
001011XX2C-2F
左移
SHRR?
001100XX30-33
右移
CMPR?
001101XX34-37
比较
OUTR?
001110XX38-3B
输出
(2)新的微指令集如表8所示
表8新微指令集表
状态
微地址
微程序
数据输出
数据打入
地址输出
运算器
移位控制
μPC
PC
T0
00
CBFFFF
浮空
指令寄存器IR
PC输出
A输出
写入
+1
01
FFFFFF
02
03
T1
04
C7FBFF
存储器值EM
寄存器R?
05
06
07
TOA,R?
08
FFF7F7
寄存器值R?
09
0A
0B
T2
0C
FFF7EF
0D
FFFA98
ALU直通
标志位C,Z
加运算
0E
0F
T3
10
寄存器A
11
C7FFEF
12
13
14
FFFF8F
15
16
FFFA99
减运算
17
18
19
1A
FFFE93
寄存器A标志位C,Z
与运算
1B
1C
C6FFFF
寄存器PC
1D
1E
1F
20
21
22
23
24
25
26
28
29
2A
2B
2C
2D
FFF9DF
ALU左移
2E
2F
30
31
FFF9BF
ALU右移
32
34
35
36
FFFE99
37
38
FFD7FF
用户OUT
39
FFD7F7
寄存器A用户OUT
3A
3B
4.用新指令集编写实现乘法、除法功能的汇编语言程序
(1)4位乘法的汇编语言程序清单:
TOR0,#00H;
中间积
TOR1,#9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)