计算机组成原理实验汇总.docx
- 文档编号:12933784
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:36
- 大小:499.60KB
计算机组成原理实验汇总.docx
《计算机组成原理实验汇总.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验汇总.docx(36页珍藏版)》请在冰点文库上搜索。
计算机组成原理实验汇总
计算机组成原理实验教程
杭州师范大学国际服务工程学院
1.1基本运算器实验
1.1.1实验目的
(1)了解运算器的组成结构。
(2)掌握运算器的工作原理。
1.1.2实验设备
PC机一台,TD-CMA实验系统一套。
1.1.3实验原理
本实验的原理如图1-1-1所示。
运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。
如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。
ALU中所有模块集成在一片CPLD中。
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。
移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。
图中显示的是一个4X4的矩阵(系统中是一个8X8的矩阵)。
每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:
(1)对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。
(2)对于循环右移功能,右移对角线同互补的左移对角线一起激活。
例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。
(3)对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。
使用另外的逻辑进行移位总量译码和符号判别。
图1-1-1运算器原理图
运算器部件由一片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为低有效,其余为高有效。
图1-1-2交叉开关桶形移位器原理图
暂存器A和暂存器B的数据能在LED灯上实时显示,原理如图1-1-3所示(以A0为例,其它相同)。
进位标志FC、零标志FZ和数据总线D7…D0的显示原理也是如此。
图1-1-3A0显示原理图
ALU和外围电路的连接如图1-1-4所示,图中的小方框代表排针座。
运算器的逻辑功能表如表1-1-1所示,其中S3S2S1S0CN为控制信号,FC为进位标志,FZ为运算器零标志,表中功能栏内的FC、FZ表示当前运算会影响到该标志。
图1-1-4ALU和外围电路连接原理图
表1-1-1运算器逻辑功能表
运算类型
S3S2S1S0
CN
功能
逻辑运算
0000
X
F=A(直通)
0001
X
F=B(直通)
0010
X
F=AB(FZ)
0011
X
F=A+B(FZ)
0100
X
F=/A(FZ)
移位运算
0101
X
F=A不带进位循环右移B(取低3位)位(FZ)
0110
0
F=A逻辑右移一位(FZ)
1
F=A带进位循环右移一位(FC,FZ)
0111
0
F=A逻辑左移一位(FZ)
1
F=A带进位循环左移一位(FC,FZ)
算术运算
1000
X
置FC=CN(FC)
1001
X
F=A加B(FC,FZ)
1010
X
F=A加B加FC(FC,FZ)
1011
X
F=A减B(FC,FZ)
1100
X
F=A减1(FC,FZ)
1101
X
F=A加1(FC,FZ)
1110
X
(保留)
1111
X
(保留)
*表中“X”为任意态,下同
1.1.4实验步骤
(1)按图1-1-5连接实验电路,并检查无误。
图中将用户需要连接的信号用圆圈标明(其它实验相同)。
图1-1-5实验接线图
(2)将时序与操作台单元的开关KK2置为‘单拍’档,开关KK1、KK3置为‘运行’档。
(3)打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。
然后按动CON单元的CLR按钮,将运算器的A、B和FC、FZ清零。
(4)用输入开关向暂存器A置数。
拨动CON单元的SD27…SD20数据开关,形成二进制数01100101(或其它数值),数据显示亮为‘1’,灭为‘0’。
置LDA=1,LDB=0,连续按动时序单元的ST按钮,产生一个T4上沿,则将二进制数01100101置入暂存器A中,暂存器A的值通过ALU单元的A7…A0八位LED灯显示。
(5)用输入开关向暂存器B置数。
拨动CON单元的SD27…SD20数据开关,形成二进制数10100111(或其它数值)。
置LDA=0,LDB=1,连续按动时序单元的ST按钮,产生一个T4上沿,则将二进制数10100111
置入暂存器B中,暂存器B的值通过ALU单元的B7…B0八位LED灯显示。
(6)改变运算器的功能设置,观察运算器的输出。
置ALU_B=0、LDA=0、LDB=0,然后按表1-1-1置S3、S2、S1、S0和Cn的数值,并观察数据总线LED显示灯显示的结果。
如置S3、S2、S1、S0为0010,运算器作逻辑与运算,置S3、S2、S1、S0为1001,运算器作加法运算。
如果实验箱和PC联机操作,则可通过软件中的数据通路图来观测实验结果(软件使用说明请看附录一),方法是:
打开软件,选择联机软件的“【实验】—【运算器实验】”,打开运算器实验的数据通路图,如图1-1-6所示。
进行上面的手动操作,每按动一次ST按钮,数据通路图会有数据的流动,反映当前运算器所做的操作,或在软件中选择“【调试】—【单节拍】”,其作用相当于将时序单元的状态开关KK2置为‘单拍’档后按动了一次ST按钮,数据通路图也会反映当前运算器所做的操作。
重复上述操作,并完成表1-1-2。
然后改变A、B的值,验证FC、FZ的锁存功能。
图1-1-6数据通路图
表1-1-2运算结果表
运算类型
A
B
S3S2S1S0
CN
结果
逻辑运算
65
A7
0000
X
F=(65)FC=()FZ=()
65
A7
0001
X
F=(A7)FC=()FZ=()
0010
X
F=()FC=()FZ=()
0011
X
F=()FC=()FZ=()
0100
X
F=()FC=()FZ=()
移位运算
0101
X
F=()FC=()FZ=()
0110
0
F=()FC=()FZ=()
1
F=()FC=()FZ=()
0111
0
F=()FC=()FZ=()
1
F=()FC=()FZ=()
算术运算
1000
X
F=()FC=()FZ=()
1001
X
F=()FC=()FZ=()
1010(FC=0)
X
F=()FC=()FZ=()
1010(FC=1)
X
F=()FC=()FZ=()
1011
X
F=()FC=()FZ=()
1100
X
F=()FC=()FZ=()
1101
X
F=()FC=()FZ=()
2.1静态随机存储器实验
2.1.1实验目的
掌握静态随机存储器RAM工作特性及数据的读写方法。
2.1.2实验设备
PC机一台,TD-CMA实验系统一套。
2.1.3实验原理
实验所用的静态存储器由一片6116(2K×8bit)构成(位于MEM单元),如图2-1-1所示。
6116有三个控制线:
CS(片选线)、OE(读线)、WE(写线),其功能如表2-1-1所示,当片选有效(CS=0)时,OE=0时进行读操作,WE=0时进行写操作,本实验将CS常接地。
图2-1-1SRAM6116引脚图
由于存储器(MEM)最终是要挂接到CPU上,所以其还需要一个读写控制逻辑,使得CPU能控制MEM的读写,实验中的读写控制逻辑如图2-1-2所示,由于T3的参与,可以保证MEM的写脉宽与T3一致,T3由时序单元的TS3给出(时序单元的介绍见附录2)。
IOM用来选择是对I/O还是对MEM进行读写操作,RD=1时为读,WR=1时为写。
表2-1-1SRAM6116功能表
图2-1-2读写控制逻辑
实验原理图如图2-1-3所示,存储器数据线接至数据总线,数据总线上接有8个LED灯显示D7…D0的内容。
地址线接至地址总线,地址总线上接有8个LED灯显示A7…A0的内容,地址由地址锁存器(74LS273,位于PC&AR单元)给出。
数据开关(位于IN单元)经一个三态门(74LS245)连至数据总线,分时给出地址和数据。
地址寄存器为8位,接入6116的地址A7…A0,6116的高三位地址A10…A8接地,所以其实际容量为256字节。
图2-1-3存储器实验原理图
实验箱中所有单元的时序都连接至时序与操作台单元,CLR都连接至CON单元的CLR按钮。
实验时T3由时序单元给出,其余信号由CON单元的二进制开关模拟给出,其中IOM应为低(即MEM操作),RD、WR高有效,MR和MW低有效,LDAR高有效。
2.1.4实验步骤
(1)关闭实验系统电源,按图2-1-4连接实验电路,并检查无误,图中将用户需要连接的信号用圆圈标明。
(2)将时序与操作台单元的开关KK1、KK3置为运行档、开关KK2置为‘单步’档(时序单元的介绍见附录二)。
(3)将CON单元的IOR开关置为1(使IN单元无输出),打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。
图2-1-4实验接线图
(4)给存储器的00H、01H、02H、03H、04H地址单元中分别写入数据11H、12H、13H、14H、15H。
由前面的存储器实验原理图(图2-1-3)可以看出,由于数据和地址由同一个数据开关给出,因此数据和地址要分时写入,先写地址,具体操作步骤为:
先关掉存储器的读写(WR=0,RD=0),数据开关输出地址(IOR=0),然后打开地址寄存器门控信号(LDAR=1),按动ST产生T3脉冲,即将地址打入到AR中。
再写数据,具体操作步骤为:
先关掉存储器的读写(WR=0,RD=0)和地址寄存器门控信号(LDAR=0),数据开关输出要写入的数据,打开输入三态门(IOR=0),然后使存储器处于写状态(WR=1,RD=0,IOM=0),按动ST产生T3脉冲,即将数据打入到存储器中。
写存储器的流程如图2-1-5所示(以向00地址单元写入11H为例):
图2-1-5写存储器流程图
(5)依次读出第00、01、02、03、04号单元中的内容,观察上述各单元中的内容是否与前面写入的一致。
同写操作类似,也要先给出地址,然后进行读,地址的给出和前面一样,而在进行读操作时,应先关闭IN单元的输出(IOR=1),然后使存储器处于读状态(WR=0,RD=1,IOM=0),此时数据总线上的数即为从存储器当前地址中读出的数据内容。
读存储器的流程如图2-1-6所示(以从00地址单元读出11H为例):
图2-1-6读存储器流程图
如果实验箱和PC联机操作,则可通过软件中的数据通路图来观测实验结果(软件使用说明请看附录1),方法是:
打开软件,选择联机软件的“【实验】—【存储器实验】”,打开存储器实验的数据通路图,如图2-1-7所示。
进行上面的手动操作,每按动一次ST按钮,数据通路图会有数据的流动,反映当前存储器所做的操作(即使是对存储器进行读,也应按动一次ST按钮,数据通路图才会有数据流动),或在软件中选择“【调试】—【单周期】”,其作用相当于将时序单元的状态开关置为‘单步’档后按动了一次ST按钮,数据通路图也会反映当前存储器所做的操作,借助于数据通路图,仔细分析SRAM的读写过程。
图2-1-7数据通路图
3.2微程序控制器实验
3.2.1实验目的
(1)掌握微程序控制器的组成原理。
(2)掌握微程序的编制、写入,观察微程序的运行过程。
3.2.2实验设备
PC机一台,TD-CMA实验系统一套。
3.2.3实验原理
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1所示。
图3-2-1微程序控制器组成原理框图
控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4,时序单元的介绍见附录2。
微程序控制器的组成见图3-2-2,其中控制存储器采用3片2816的E2PROM,具有掉电保护功能,微命令寄存器18位,用两片8D触发器(273)和一片4D(175)触发器组成。
微地址寄存器6位,用三片正沿触发的双D触发器(74)组成,它们带有清“0”端和预置端。
在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。
当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。
图3-2-2微程序控制器原理图
在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:
编程、校验、运行。
考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。
以向00H单元中写入332211为例,对于控制存储器进行编辑的具体操作步骤如下:
首先将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)。
再连续两次按动开关ST,地址加1,MC单元指示灯M7——M0显示01H单元低8位数据。
如校验的微指令出错,则返回输入操作,修改该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。
位于实验平台MC单元左上角一列三个指示灯MC2、MC1、MC0用来指示当前操作的微程序字段,分别对应M23——M16、M15——M8、M7——M0。
实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址置数后将开关KK4拨至‘减1’档,则每次随着开关ST的两次拨动操作,字节数依次从高8位到低8位递减,减至低8位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。
微指令字长共24位,控制位顺序如表3-2-1:
表3-2-1微指令格式
其中MA5…MA0为6位的后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。
C字段中的P<1>为测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图3-2-3所示,图中I7…I2为指令寄存器的第7…2位输出,SE5…SE0为微控器单元微地址锁存器的强置端输出,指令译码逻辑在IR单元的INS_DEC(GAL20V8)中实现。
图3-2-3指令译码原理图
从图3-2-2中也可以看出,微控器产生的控制信号比表3-2-1中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。
本实验除了用到指令寄存器(IR)和通用寄存器R0外,还要用到IN和OUT单元,从微控器出来的信号中只有IOM、WR和RD三个信号,所以对这两个单元的读写信号还应先经过译码,其译码原理如图3-2-4所示。
IR单元的原理图如图3-2-5所示,R0单元原理如图3-2-7所示,IN单元的原理图见图2-1-3所示,OUT单元的原理图见图3-2-6所示。
图3-2-4读写控制逻辑图3-2-5IR单元原理图
图3-2-6OUT单元原理图图3-2-7R0原理图
本实验安排了四条机器指令,分别为ADD(00000000)、IN(00100000)、OUT(00110000)和HLT(01010000),括号中为各指令的二进制代码,指令格式如下:
实验中机器指令由CON单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,见图3-2-8所示。
几条机器指令对应的参考微程序流程图如图3-2-9所示。
图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,所有微地址均用16进制表示。
向下的箭头指出了下一条要执行的指令。
P<1>为测试字,根据条件使微程序产生分支。
图3-2-8数据通路图
图3-2-9微程序流程图
将全部微程序按微指令格式变成二进制微代码,可得到表3-2-2的二进制代码表。
表3-2-2二进制微代码表
地址
十六进制
高五位
S3-S0
A字段
B字段
C字段
MA5-MA0
00
000001
00000
0000
000
000
000
000001
01
007070
00000
0000
111
000
001
110000
04
002405
00000
0000
010
010
000
000101
05
04B201
00000
1001
011
001
000
000001
30
001404
00000
0000
001
010
000
000100
32
183001
00011
0000
011
000
000
000001
33
280401
00101
0000
000
010
000
000001
35
000035
00000
0000
000
000
000
110101
3.2.4实验步骤
1.按图3-2-10所示连接实验线路,仔细查线无误后接通电源。
如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。
图3-2-10实验接线图
2.对微控器进行读写操作,分两种情况:
手动读写和联机读写。
1)手动读写
(1)手动对微控器进行编程(写)
将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘控存’档,KK5置为‘置数’档。
使用CON单元的SD05——SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。
将时序与操作台单元的开关KK5置为‘加1’档。
IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的中8位。
IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。
重复
、
、
、
四步,将表3-2-2的微代码写入2816芯片中。
(2)手动对微控器进行校验(读)
将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘校验’档,KK4置为‘控存’档,KK5置为‘置数’档。
使用CON单元的SD05——SD00给出微地址,连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯M7——M0显示该单元的低8位。
将时序与操作台单元的开关KK5置为‘加1’档。
连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯M15——M8显示该单元的中8位,MC单元的指数据指示灯M23——M16显示该单元的高8位。
重复
、
、
、
四步,完成对微代码的校验。
如果校验出微代码写入错误,重新写入、校验,直至确认微指令的输入无误为止。
2)联机读写
(1)将微程序写入文件
联机软件提供了微程序下载功能,以代替手动读写微控器,但微程序得以指定的格式写入到以TXT为后缀的文件中,微程序的格式如下:
如$M1F112233,表示微指令的地址为1FH,微指令值为11H(高)、22H(中)、33H(低),本次实验的微程序如下,其中分号‘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 汇总