计算机组成原理上机实验报告 本文关键词:上机,原理,实验,计算机,报告
计算机组成原理上机实验报告 本文简介:《计算机组成原理实验》课程实验报告实验题目组成原理上机实验班级1237-小姓名学号时间2014年5月成绩实验一基本运算器实验1.实验目的(1)了解运算器的组成原理(2)掌握运算器的工作原理2.实验内容输入数据,根据运算器逻辑功能表1-1进行逻辑、移位、算术运算,将运算结果填入表1-2。表1-1运算器
计算机组成原理上机实验报告 本文内容:
《计算机组成原理实验》课程
实
验
报
告
实验题目
组成原理上机实验
班
级
1237-小
姓
名
学
号
时
间
2014年5月
成
绩
实验一
基本运算器实验
1.
实验目的
(1)
了解运算器的组成原理
(2)
掌握运算器的工作原理
2.
实验内容
输入数据,根据运算器逻辑功能表1-1进行逻辑、移位、算术运算,将运算结果填入表1-2。
表
1-1
运算器逻辑功能表
运算类型
A
B
S3
S2
S1
S0
CN
结果
逻辑运算
65
A7
0
0
0
0
X
F=(
65
)
FC=(
)
FZ=(
)
65
A7
0
0
0
1
X
F=(
A7
)
FC=(
)
FZ=(
)
0
0
1
0
X
F=(
)
FC=(
)
FZ=(
)
0
0
1
1
X
F=(
)
FC=(
)
FZ=(
)
0
1
0
0
X
F=(
)
FC=(
)
FZ=(
)
移位运算
0
1
0
1
X
F=(
)
FC=(
)
FZ=(
)
0
1
1
0
0
F=(
)
FC=(
)
FZ=(
)
1
F=(
)
FC=(
)
FZ=(
)
0
1
1
1
0
F=(
)
FC=(
)
FZ=(
)
1
F=(
)
FC=(
)
FZ=(
)
算术运算
1
0
0
0
X
F=(
)
FC=(
)
FZ=(
)
1
0
0
1
X
F=(
)
FC=(
)
FZ=(
)
1
0
1
0(FC=0)
X
F=(
)
FC=(
)
FZ=(
)
1
0
1
0(FC=1)
X
F=(
)
FC=(
)
FZ=(
)
1
0
1
1
X
F=(
)
FC=(
)
FZ=(
)
1
1
0
0
X
F=(
)
FC=(
)
FZ=(
)
1
1
0
1
X
F=(
)
FC=(
)
FZ=(
)
表1-2
运算结果表
3.
实验原理
本实验的原理如图1-1所示。
运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器
A
和暂存器
B,三个部件同时接受来自
A
和
B
的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如
ARM),各部件对操作数进行何种运算由控制信号
S3…S0和
CN
来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为
ALU
的输出。如果是影响进位的运算,还将置进位标志
FC,在运算结果输出前,置
ALU
零标志。ALU
中所有模块集成在一片
CPLD
中。
图
1-1
运算器原理图
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-2所示。
图1-2中显示的是一个
4X4
的矩阵(系统中是一个
8X8
的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:
(1)对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接
0。
(2)对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在
4
位矩阵中使用‘右
1’和‘左
3’对角线来实现右循环
1
位。
(3)对于未连接的输出位,移位时使用符号扩展或是
0
填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。
运算器部件由一片
CPLD
实现。ALU
的输入和输出通过三态门
74LS245
连到
CPU
内总线上,另外还有指示灯标明进位标志
FC
和零标志
FZ。请注意:实验箱上凡丝印标注有马蹄形标记‘
’,表示这两根排针之间是连通的。图中除
T4
和
CLR,其余信号均来自于
ALU
单元的排线座,实验箱中所有单元的
T1、T2、T3、T4
都连接至控制总线单元的
T1、T2、T3、T4,CLR
都连接至
CON
单元的
CLR
按钮。T4
由时序单元的
TS4
提供(时序单元的介绍见附录二),其余控制信号均由
CON
单元的二进制数据开关模拟给出。控制信号中除
T4
为脉冲信号外,其余均为电平信号,其中
ALU_B
为低有效,其余为高有效。
暂存器
A
和暂存器
B
的数据能在
LED
灯上实时显示,原理如图1-3
所示(以
A0
为例,其
线路连接图
它相同)。进位标志
FC、零标志
FZ
和数据总线
D7…D0
的显示原理也是如此。
图1-3
A0显示原理图
运算器的逻辑功能表如表1-1
所示,其中
S3
S2
S1
S0
CN
为控制信号,FC
为进位标志,FZ
为运算器零标志,表中功能栏内的
FC、FZ
表示当前运算会影响到该标志。
4.实验结果
运算类型
A
B
S3
S2
S1
S0
CN
结果
逻辑运算
65
A7
0
0
0
0
X
F=(
65
)
FC=(
0
)
FZ=(
)
65
A7
0
0
0
1
X
F=(
A7
)
FC=(
0
)
FZ=(
)
0
0
1
0
X
F=(
26
)
FC=(
0
)
FZ=(
)
0
0
1
1
X
F=(
E7
)
FC=(
0
)
FZ=(
)
0
1
0
0
X
F=(
9A
)
FC=(
0
)
FZ=(
)
移位运算
0
1
0
1
X
F=(
CA
)
FC=(
1
)
FZ=(
)
0
1
1
0
0
F=(
32
)
FC=(
1
)
FZ=(
)
1
F=(
B2
)
FC=(
1
)
FZ=(
)
0
1
1
1
0
F=(
CA)
FC=(
0
)
FZ=(
)
1
F=(CA
)
FC=(
0
)
FZ=(
)
算术运算
1
0
0
0
X
F=(
65
)
FC=(
1
)
FZ=(
)
1
0
0
1
X
F=(
0C
)
FC=(
1
)
FZ=(
)
1
0
1
0(FC=0)
X
F=(
33
)
FC=(
1
)
FZ=(
)
1
0
1
0(FC=1)
X
F=(
0D
)
FC=(
1
)
FZ=(
)
1
0
1
1
X
F=(BE
)
FC=(
1
)
FZ=(
)
1
1
0
0
X
F=(
64
)
FC=(
0
)
FZ=(
)
1
1
0
1
X
F=(
66
)
FC=(
0
)
FZ=(
)
5.实验心得
通过本次试验,了解了运算器的组成原理和工作原理,初步了解这门实验课的方法和步骤等,这只是一次很简单的实验,为的就是为后面几次相对比较复杂的实验打下坚实的基础,以便于更好的学习。
实验二
静态随机存储器实验
1.
试验目的
掌握静态随机存储器RAM工作特性及数据的读写方法
2.实验内容
1.
向存储器中指定的地址单元输入数据,地址先输入AR寄存器,再将数据送入总线后,存到指定的存储单元,观察数据在各部件上的显示结果。
2.
从存储器中指定的地址单元读出数据,地址先输入AR寄存器,读出的数据送入总线,观察数据在各部件上的显示结果。
3.实验原理
实验所用的静态存储器由一片
6116(2K×8bit)构成(位于
MEM
单元),如图
2-1
所示。6116
有三个控制线:CS(片选线)、OE(读线)、WE(写线),其功能如表
2-1
所示,当片选有效(CS=0)时,OE=0
时进行读操作,WE=0
时进行写操作,本实验将
CS
常接地。
由于存储器(MEM)最终是要挂接到
CPU
上,所以其还需要一个读写控制逻辑,使得
CPU能控制
MEM
的读写,实验中的读写控制逻辑如图
2-2
所示,由于
T3
的参与,可以保证
MEM的写脉宽与
T3
一致,T3
由时序单元的
TS3
给出(时序单元的介绍见附录
2)。IOM
用来选择是对
I/O
还是对
MEM
进行读写操作,RD=1
时为读,WR=1
时为写。如表2-2所示。
表
2-1
SRAM
6116
功能表
图
2-2
读写控制逻辑
表
2-2
读写逻辑控制表
IOM
WR
RD
IN
OUT
MEM
1
1
0
有效
1
0
1
有效
0
1
0
写
0
0
1
读
实验原理图如图
2-3
所示,存储器数据线接至数据总线,数据总线上接有
8
个
LED
灯显示
D7…D0
的内容。地址线接至地址总线,地址总线上接有
8
个
LED
灯显示
A7…A0
的内容,地址由地址锁存器(74LS273,位于
PC&AR
单元)给出。数据开关(位于
IN
单元)经一个三态门(74LS245)连至数据总线,分时给出地址和数据。地址寄存器为
8
位,接入
6116
的地址A7…A0,6116
的高三位地址
A10…A8
接地,所以其实际容量为
256
字节。
实验箱中所有单元的时序都连接至时序与操作台单元,CLR
都连接至
CON
单元的
CLR
按钮。实验时
T3
由时序单元给出,其余信号由
CON
单元的二进制开关模拟给出,其中
IOM
应为低(即
MEM
操作),RD、WR
高有效,MR
和
MW
低有效,LDAR
高有效。
图
2-3
存储器实验原理图
4.实验心得
通过本次试验,了解了静态随机存储器RAM工作特性及数据的读写方法,同时知道了组成原理的理论课也很重要,没有理论课的基础,实验时就不知道怎么弄了,只有把理论和实践结合起来才能学好这门课。
实验三
系统总线与总线接口
1.
实验目的
(1)
理解总线的概念及其特性
(2)
掌握控制总线的功能和应用
2.
实验内容
1、
输入设备将一个数打入
R0
寄存器。
2、
输入设备将另一个数打入地址寄存器。
3、
将
R0
寄存器中的数写入到当前地址的存储器中。
4、将当前地址的存储器中的数用
LED
数码管显示。
3.
实验原理
实验接线图
由于存储器和输入、输出设备最终是要挂接到外部总线上,所以需要外部总线提供数据信号、地址信号以及控制信号。在该实验平台中,外部总线分为数据总线、地址总线、和控制总线,分别为外设提供上述信号。外部总线和
CPU
内总线之间通过三态门连接,同时实现了内外总线的分离和对于数据流向的控制。地址总线可以为外部设备提供地址信号和片选信号。
表
3-2
读写逻辑控制表
IOM
WR
RD
IN
OUT
MEM
1
1
0
有效
1
0
1
有效
0
1
0
写
0
0
1
读
在理解读写控制逻辑的基础上我们设计一个总线传输的实验。实验所用总线传输实验框图如图
3-3
所示,它将几种不同的设备挂至总线上,有存储器、输入设备、输出设备、寄存器。这些设备都需要有三态输出控制,按照传输要求恰当有序的控制它们,就可实现总线信息传输。
图
3-3
总线传输实验框图
4.
实验心得
通过本次试验,我们对总线的概念和其特性及控制总线的功能和应用得到更多的了解。学会了自己译码,自己译出控制信号等,感觉这是一门比较有趣的课程,希望这能在以后的学习和工作中带来一定的益处。
实验四
微程序控制器实验
1.
实验目的
(1)
掌握微程序控制器的组成原理
(2)
掌握微程序的编制、写入,观察微程序的运行过程
2.实验内容
设计以下机器指令的微程序,如表4-2所示:
表4-2
机器指令的微程序
助记符
机器指令码
说明
IN
0010
0000
IN
→R0
ADD
0000
0000
R0
+
R0→R0
OUT
0011
0000
R0→OUT
HLT
0101
0000
停机
本实验安排了四条机器指令,分别为
ADD(0000
0000)、IN(0010
0000)、OUT(0011
0000)和
HLT(0101
0000),括号中为各指令的二进制代码
3.实验原理
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图
4-1
所示。
图4-1微程序控制器组成原理框图
微程序控制器的组成见图4-2,其中控制存储器采用
3
片
2816
的
E2PROM,具有掉电保护功能,微命令寄存器
18
位,用两片
8D
触发器(273)和一片
4D(175)触发器组成。微地址寄存器
6
位,用三片正沿触发的双
D
触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2
时刻打入微地址寄存器的内容即为下一条微指令地址。当
T4
时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。
首先将
KK1
拨至‘停止’档、KK3
拨至‘编程’档、KK4
拨至‘控存’档、KK5
拨至‘置数’档,由
CON
单元的
SD05——SD00
开关给出需要编辑的控存单元首地址(000000),IN
单元开关给出该控存单元数据的低
8
位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后
MC
单元低
8
位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时
MC
单元的指示灯
MA5——MA0
显示当前地址(000000),M7——M0
显示当前数据(00010001)。然后将
KK5
拨至‘加
1’档,IN
单元开关给出该控存单元数据的中
8
位(00100010),连续两次按动开关
ST,完成对该控存单元中
8
位数据的修改,此时
MC
单元的指示灯
MA5——MA0
显示当前地址(000000),M15——M8
显示当前数据(00100010);再由
IN
单元开关给出该控存单元数据的高
8
位(00110011),连续两次按动开关
ST,完成对该控存单元高
8
位数据的修改此时
MC
单元的指示灯
MA5——MA0
显示当前地址(000000),M23——M16
显示当前数据(00110011)。此时被编辑的控存单元地址会自动加
1(01H),由
IN
单元开关依次给出该控存单元数据的低
8
位、中
8
位和高
8
位配合每次开关
ST
的两次按动,即可完成对后续单元的编辑。
编辑完成后需进行校验,以确保编辑的正确。以校验
00H
单元为例,对于控制存储器进行校验的具体操作步骤如下:首先将
KK1
拨至‘停止’档、KK3
拨至‘校验’档、KK4
拨至‘控存’档、KK5
拨至‘置数’档。由
CON
单元的
SD05——SD00
开关给出需要校验的控存单元地址(000000),连续两次按动开关
ST,MC
单元指示灯
M7——M0
显示该单元低
8
位数据(00010001);KK5
拨至‘加
1’档,再连续两次按动开关
ST,MC
单元指示灯
M15——M8
显示该单元中
8
位数据(00100010);再连续两次按动开关
ST,MC
单元指示灯
M23——M16
显示该单元高
8
位数据(00110011)。
位于实验平台
MC
单元左上角一列三个指示灯
MC2、MC1、MC0
用来指示当前操作的微程序字段,分别对应
M23——M16、M15——M8、M7——M0。实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址置数后将开关
KK4
拨至‘减
1’档,则每次随着开关
ST
的两次拨动操作,字节数依次从高
8
位到低
8
位递减,减至低
8
位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。
表
4-1
微指令格式
其中
MA5…MA0
为
6
位的后续微地址,A、B、C
为三个译码字段,分别由三个控制位译码出多位。C
字段中的
P为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图
4-3
所示,图中
I7…I2
为指令寄存器的第
7…2
位输出,SE5…SE0
为微控器单元微地址锁存器的强置端输出,指令译码逻辑在
IR
单元的
INS_DEC(GAL20V8)中实现。
从图
4-2
中也可以看出,微控器产生的控制信号比表
4-1
中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。
本实验除了用到指令寄存器(IR)和通用寄存器
R0
外,还要用到
IN
和
OUT
单元,从微控器出来的信号中只有
IOM、WR
和
RD
三个信号,所以对这两个单元的读写信号还应先经过译码,其译码原理如图
4-4
所示。IR
单元的原理图如图
4-5
所示,R0
单元原理如图
4-7
所示,IN
单元的原理图见图
4-3
所示,OUT
单元的原理图见图
4-6
所示。
图
4-3
指令译码原理图
图
4-4
读写控制逻辑
图4-5
IR单元原理图
实验中机器指令由
CON
单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,见图
4-8
所示。
图
4-8
数据通路图
4.实验心得
通过本次试验,我学习到了微程序控制器的组成原理及其编制、写入。每一条控制代码,都是由几个控制代码组合而成,这用到了前面几次实验的知识,也让我掌握了自己编写控制代码的能力,感觉这次实验中收获良多,相信对最后一次实验会有很大的帮助。
实验五
简单模型机设计实验
1.
实验目的
(1)
掌握一个简单CPU的组成原理
(2)
在掌握部件单元电路的基础上,进一步将其构造成一台基本模型计算机
(3)
为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念
2.实验内容
用所设计的5条机器指令编写一汇编语言程序,运行该程序并观察程序运行的结果。要求该程序必须包含IN、ADD、OUT、JMP、HLT指令并且程序的长度在6条指令以上。
设计一段机器程序,要求从
IN
单元读入一个数据,存于
R0,将
R0
和自身相加,结果存于R0,再将
R0
的值送
OUT
单元显示。
3.实验原理
简单模型机微程序流程图
本实验要实现一个简单的
CPU,并且在此
CPU
的基础上,继续构建一个简单的模型计算机。CPU
由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图
5-1-1
所示。这个
CPU
在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU
必须和主存挂接后,才有实际的意义,所以还需要在该
CPU
的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
除了程序计数器(PC),其余部件在前面的实验中都已用到,在此不再讨论。系统的程序计数器(PC)和地址寄存器(AR)集成在一片
CPLD
芯片中
。CLR
连接至
CON
单元的总清端CLR,按下
CLR
按钮,将使
PC
清零,LDPC
和
T3
相与后作为计数器的计数时钟,当
LOAD为低时,计数时钟到来后将
CPU
内总线上的数据打入
PC。
图
5-2
程序计数器(PC)原理图
本模型机和前面微程序控制器实验相比,新增加一条跳转指令
JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):
其中
JMP
为双字节指令,其余均为单字节指令,********为
addr
对应的二进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求
CPU
自动从存储器读取指令并执行。根据以上要求,设计数据通路图,如图
5-3
所示。
图
5-3
数据通路图
本实验在前一个实验的基础上增加了三个部件,一是
PC(程序计数器),另一个是
AR(地址寄存器),还有就是
MEM(主存)。因而在微指令中应增加相应的控制位,其微指令格式如表5-1
所示。
4.实验结果
5.实验心得
通过本次实验我了解到了微程序和微指令与微程序之间的关系,这几次实验中我获益良多,平时我们能见到的都是计算机的外部结构,在计算机组成原理的学习中,逐步对计算机的内部结构有了一些了解,但始终都停留在理论阶段。而在简单模型机设计中,让让我对运算器的内部结构有了更深的了解,并且对计算机组成原理也有了更深层次的理解,同时这次课程设计还锻炼了我的实验动手能力,也培养了我的认真负责的科学态度。