计算机组成原理实验报告.docx
《计算机组成原理实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
![计算机组成原理实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/2/568ca0a4-8472-4af6-903f-5dbf39fc2cbb/568ca0a4-8472-4af6-903f-5dbf39fc2cbb1.gif)
计算机组成原理实验报告
《计算机组成原理》实验报告
班级:
计科
姓名:
学号:
指导老师:
中国矿业大学计算机科学与技术学院
2014年11月24号
目录
实验1.1基本运算器实验
1.1.1---------------------------------------------------------------实验目的
1.1.2---------------------------------------------------------------实验设备
1.1.3---------------------------------------------------------------实验原理
1.1.4---------------------------------------------------------------实验步骤
1.1.5---------------------------------------------------------------实验思考
1.1.6---------------------------------------------------------------实验结果
1.1.7---------------------------------------------------------------实验体会
实验3.2微程序控制器实验
3.2.1---------------------------------------------------------------实验目的
3.2.2---------------------------------------------------------------实验设备
3.2.3---------------------------------------------------------------实验原理
3.2.4---------------------------------------------------------------实验步骤
3.2.5---------------------------------------------------------------实验思考
3.2.6---------------------------------------------------------------实验体会
实验5.1CPU与简单模型机设计实验
5.1.1---------------------------------------------------------------实验目的
5.1.2---------------------------------------------------------------实验设备
5.1.3---------------------------------------------------------------实验原理
5.1.4---------------------------------------------------------------实验步骤
5.1.5---------------------------------------------------------------实验思考
5.1.6---------------------------------------------------------------实验体会
实验5.3复杂模型机设计实验
5.3.1---------------------------------------------------------------实验目的
5.3.2---------------------------------------------------------------实验设备
5.3.3---------------------------------------------------------------实验原理
5.3.4---------------------------------------------------------------总体设计
5.3.5---------------------------------------------------------------实验步骤
5.3.6---------------------------------------------------------------实验思考
5.3.7---------------------------------------------------------------实验体会
实验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中所有模块集成在一片FPGA中。
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。
移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。
图中显示的是一个4X4的矩阵(系统中是一个8X8的矩阵)。
每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:
(1)对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。
(2)对于循环右移功能,右移对角线同互补的左移对角线一起激活。
例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。
(3)对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。
使用另外的逻辑进行移位总量译码和符号判别。
运算器的逻辑功能表如表1-1-1所示,其中S3S2S1S0CN为控制信号,FC为进位标志,
FZ为运算器零标志,表中功能栏内的FC、FZ表示当前运算会影响到该标志。
1.1.4实验步骤
(1)连接实验电路,并检查无误。
(2)将时序与操作台单元的开关KK2置为‘单拍’档,开关KK1、KK3置为‘运行’档。
(3)打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。
然后按动CON单元的CLR按钮,将运算器的A、B和FC、FZ清零。
(4)用输入开关向暂存器A置数。
(5)用输入开关向暂存器B置数。
(6)改变运算器的功能设置,观察运算器的输出。
图1-1-6数据通路图
1.1.5实验思考:
1.运算器的组成:
运算器是计算机对各种数据和信息进行算术和逻辑运算的部件,由各种逻辑电路组成,它们包括寄存器、加法器、移位器、多路选择器和一些控制电路。
2.运算器的数据通路:
3.运算器运算功能的选择:
运算器主要包括逻辑运算、移位运算、算术运算。
4.运算器的各组成部件的控制信号的作用:
算术/逻辑单元ALU:
ALU将依据锁存器A、B的数据进行处理。
锁存器:
锁存器A、B用来暂存来自通用寄存器、存储器或外部设备的数据。
给ALU提供参加运算的数据。
一旦数据进入锁存器,不管外部数据怎么变化,都不能改变锁存器的内容。
通用寄存器组:
通用寄存器可供程序员访问,用来作为累加器、变址寄存器、操作数寄存器等来使用。
数据缓存寄存器DR:
作为ALU运算结果和通用寄存器之间信息传送中时间上的缓冲。
补偿cpu和内存、外围设备之间在操作速度上的差别。
状态寄存器PSW:
用来存放在运算过程中得到的状态标志,以便供程序判断使用。
1.1.6实验结果:
1.1.7实验体会:
通过本次实验了解运算器的组成结构(即输入逻辑、输出逻辑、算术逻辑单元),掌握运算器的工作原理(主要是加法器)。
知道运算器的输出跟数据总线相连,同时两个输入端通过两个锁存器也与数据总线相连。
同时,数据显示灯连接上数据总线,用来显示数据总线的内容。
暂存器的作用也体现了出来(暂存中间结果),教材上的数据通路结构在此更是体现到了,各部件之间的信息传送通过内总线来完成。
三态门的功能以及工作原理也比较清晰了。
将这些知识组织起来,并亲手实践,在实践过程中,连线比较枯燥,刚开始连错了,造成重大失误,后来纠正后,一次成功,这也说明了实验过程中的各个环节都是非常重要的。
最终,将结果记录下来,完成了本次实验。
本次实验,提高了我对组成原理实验的积极性,更教育了我实验要认真,要培养了我实验要认真,要严谨的态度,将课本知识运用到实践之中,也提高了对课程学习的热情。
实验3.2微程序控制器实验
3.2.1实验目的
(1)掌握微程序控制器的组成原理。
(2)掌握微程序的编制、写入,观察微程序的运行过程。
3.2.2实验设备
PC机一台,TD-CMA实验系统一套。
3.2.3实验原理
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1所示。
图3-2-1微程序控制器组成原理框图
本实验安排了四条机器指令,分别为ADD(00000000)、IN(00100000)、OUT(00110000)
和HLT(01010000),括号中为各指令的二进制代码,指令格式如下:
助记符机器指令码说明
IN00100000INR0
ADD00000000R0+R0R0
OUT00110000R0OUTHLT01010000停机
实验中机器指令由CON单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,见图3-2-8所示。
图3-2-8数据通路图
表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所示连接实验线路,仔细查线无误后接通电源。
2.对微控器进行读写操作,分两种情况:
手动读写和联机读写。
1)手动读写
(1)手动对微控器进行编程(写)
2)联机读写
(1)将微程序写入文件
(2)写入微程序
(3)校验微程序
;//***************************************//
;////
;//微控器实验指令文件//
;////
;//ByTangDuCO.,LTD//
;////
;//***************************************//
;//****StartOfMicroControllerData****//
$M00000001;NOP
$M01007070;CON(INS)->IR,P<1>
$M04002405;R0->B
$M0504B201;A加B->R0
$M30001404;R0->A
$M32183001;IN->R0
$M33280401;R0->OUT
$M35000035;NOP
;//*****EndOfMicroControllerData*****//
3.2.5实验思考
微指令与机器指令的关系:
1.一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。
因此,一条机器指令的功能是若干条微指令组成的序列来实现的。
简而言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
2.从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器(它是微程序控制器的一部分。
微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三部分组成。
其中,微指令寄存器又分为微地址寄存器和微命令寄存器两部分)有关,与此相关也有相对应的硬设备。
3.从一般指令的微程序执行流程图3-2-2可以看出。
每个CPU周期就对于一条微指令
与实验一的区别
实验一为深刻理解计算机执行运算的过程与结果,实验二为理解微指令执行的过程与结果。
分析ADD的每条微指令的指令格式和功能:
控制信号的作用:
1.WE控制信号的功能:
WE是存储器RAM的写命令信号,WE=1时,RAM进行写操作,WE=0时,RAM进行读操作。
2.当STEP开关为0时态,一旦按下启动键,运行触发器Cr一直处于1状态,因此时序TS1-TS4将周而复始地发送出去;当STEP为1时,一旦按下启动键,机器便处于单步运行状态,即此次只读一条指令,可以观察微指令的代码与当前微指令的执行结果。
3. S3,S2,S1,S0,M,Cn控制信号共同起到选择ALU进行哪种运算。
4. LOAD是PC加1信号,P
(1)-P(4)是四个测试判别信号,其功能是根据机器指令及相应微代码进行译码,使微程序输入相应的微地址入口,从而实验微程序的顺序,分支,循环运行。
5. LDRi控制信号,其功能是根据机器指令来进行三个工作寄存器.R0,R1及R2的选择存入译码。
6. RS-B,RD-B,RI-B分别为源寄存器选通输出信号,目的寄存器选通输出信号及变址寄存器选通输出信号,其功能是根据机器指令来进行三个工作寄存器R0,R1,R2的选通输出译码,如图3.2.1
表3-2-1微指令格式
23
22
21
20
19
18-15
14-12
11-9
8-6
5-0
M23
M22
WR
RD
IOM
S3-S0
A字段
B字段
C字段
MA5-MA0
A字段B字段C字段
14
13
12
选择
11
10
9
选择
8
7
6
选择
0
0
0
NOP
0
0
0
NOP
0
0
0
NOP
0
0
1
LDA
0
0
1
ALU_B
0
0
1
P<1>
0
1
0
LDB
0
1
0
R0_B
0
1
0
保留
0
1
1
LDR0
0
1
1
保留
0
1
1
保留
1
0
0
保留
1
0
0
保留
1
0
0
保留
1
0
1
保留
1
0
1
保留
1
0
1
保留
1
1
0
保留
1
1
0
保留
1
1
0
保留
1
1
1
LDIR
1
1
1
保留
1
1
1
保留
3.2.6实验体会:
通过本次实验可以更加的了解到计算机系统的一些基本的指令。
同时了解到一些指令所占用的字节数。
同时我们也了解到一些微程序的控制和实现。
S3、S2、S1、S0、M、CN是算术逻辑运算器ALU的运算选择控制信号,选择ALU执行哪种运算。
通过改变S3、S2、S1、S0、M、CN控制信号,能够实现操作数与被操作数的算术运算或逻辑运算。
实验5.1CPU与简单模型机设计实验
5.1.1实验目的
(1)掌握一个简单CPU的组成原理。
(2)在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3)为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
5.1.2实验设备
PC机一台,TD-CMA实验系统一套。
5.1.3实验原理
本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。
CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图5-1-1所示。
这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
图5-1-1基本CPU构成原理图
本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:
IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高
4位为操作码):
助记符机器指令码说明
IN00100000INR0
ADD00000000R0+R0R0
OUT00110000R0OUT
JMPaddr11100000********addrPC
HLT01010000停机
其中JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。
设计一段机器程序,要求从IN单元读入一个数据,存于R0,将R0和自身相加,结果存于R0,再将R0的值送OUT单元显示。
根据要求可以得到如下程序,地址和内容均为二进制数。
地址内容助记符说明
0000000000100000;START:
INR0从IN单元读入数据送R0
0000000100000000;ADDR0,R0R0和自身相加,结果送R0
0000001000110000;OUTR0R0的值送OUT单元显示
0000001111100000;JMPSTART跳转至00H地址
0000010000000000;
0000010101010000;HLT停机
5.1.4实验步骤
1.按图5-1-5连接实验线路。
2.写入实验程序,并进行校验,分两种方式,手动写入和联机写入。
1)手动写入和校验
(1)手动写入微程序
(2)手动校验微程序
(3)手动写入机器程序
(4)手动校验机器程序
2)联机写入和校验
;//***************************************
//
;//
//
;//CPU与简单模型机实验指令文件
//
;//
//
;//ByTangDuCO.,LTD
//
;//
//
;//***************************************
//
;//******StartOfMainMemoryData******
//
$P0020;START:
INR0从IN单元读入数据送R0
$P0100;ADDR0,R0R0和自身相加,结果送R0
$P0230;OUTR0R0的值送OUT单元显示
$P03E0;JMPSTART跳转至00H地址
$P0400;
$P0550;HLT停机
;//*******EndOfMainMemoryData*******//
;//****StartOfMicroControllerData****//
$M00000001;NOP
$M01006D43;PC->AR,PC加1$M03107070;MEM->IR,P<1>
$M04002405;R0->B
$M0504B201;A加B->R0
$M1D105141;MEM->PC
$M30001404;R0->A
$M32183001;IN->R0
$M33280401;R0->OUT
$M35000035;NOP
$M3C006D5D;PC->AR,PC加1
;//**EndOfMicroControllerData**//
5.1.5实验思考
与实验二的区别:
实验二使理解微指令执行的过程与结果,实验三则是将微指令结合起来组成微程序进行实现
指令格式理解:
模型机设计四大类指令共十条,其中包括算术指令逻辑指令,I/O指令,存算指令,取算指令,转移指令。
算术指令 :
7条算术指令并用单字节表示,寻址方式采用寄存器寻址
OP-CODE为操作码,RS为源寄存器,DS目的寄存器
访存指令及转移指令 :
条访问指令:
即存算STA,取算LDA;2条转移指令:
即无条件转移指令JMP,有进位跳转指令BZC,指令格式如下:
其中,OP-CODE为操作码,RD为源寄存器