计算机组成原理 实验报告.docx

上传人:b****7 文档编号:9037528 上传时间:2023-02-02 格式:DOCX 页数:50 大小:2.16MB
下载 相关 举报
计算机组成原理 实验报告.docx_第1页
第1页 / 共50页
计算机组成原理 实验报告.docx_第2页
第2页 / 共50页
计算机组成原理 实验报告.docx_第3页
第3页 / 共50页
计算机组成原理 实验报告.docx_第4页
第4页 / 共50页
计算机组成原理 实验报告.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

计算机组成原理 实验报告.docx

《计算机组成原理 实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理 实验报告.docx(50页珍藏版)》请在冰豆网上搜索。

计算机组成原理 实验报告.docx

计算机组成原理实验报告

计算机组成原理实验报告

实验一基本运算器实验

一、实验目的

1.了解运算器的组成结构

2.掌握运算器的工作原理

3.深刻理解运算器的控制信号

二、实验设备

PC机一台、TD-CMA实验系统一套

三、实验原理

1.(思考题)运算器的组成包括算数逻辑运算单元ALU(ArithmeticandLogicUnit)、浮点运算单元FPU(FloatingPointUnit)、通用寄存器组、专用寄存器组。

1算术逻辑运算单元ALU(ArithmeticandLogicUnit)

ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。

在某些CPU中还有专门用于处理移位操作的移位器。

通常ALU由两个输入端和一个输出端。

整数单元有时也称为IEU(IntegerExecutionUnit)。

我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。

2浮点运算单元FPU(FloatingPointUnit)

FPU主要负责浮点运算和高精度整数运算。

有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。

3通用寄存器组

通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。

4专用寄存器

专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。

而运算器内部有三个独立运算部件,分别为算术、逻辑和移位运算部件,逻辑运算部件由逻辑门构成,而后面又有专门的算术运算部件设计实验。

下图为运算器内部原理构造图

2.运算器的控制信号

实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。

T4由时序单元的TS4提供(脉冲信号),其余控制信号均由CON单元的二进制数据开关模拟给出。

控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。

下图为ALU和外围电路的连接。

图中的小方框代表排针座。

在运算器的工作过程中,S3S2S1S0和CN为控制信号,FC为进位标志,FZ为运算器零标志。

运算器的逻辑功能见下表,表中功能栏的FC、FZ表示当前运算会影响到该标志。

(思考题)运算器功能的选择:

如图在表中,可以通过调整S3S2S1S0和CN的值来改变运算类型,功能如上图所示,不同的S3S2S1S0和CN的值对应不同的运算类型和结果。

CON单元的数据开关控制数据的形成。

(思考题)运算器的数据通路:

以下为数据通路图

(思考题)运算器的各组成部件的控制信号的作用:

LDA和LDB控制存入数据的位置(具体运行方式如上图所示)

SD27到SD20通过开和关两个状态控制输入数据

而S3S2S1S0和Cn控制运算的类型(Cn只用于移位运算)

四、实验内容

(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的锁存功能。

实验结果及解释

运算类型

A

B

S3S2S1S0

CN

结果

解释

逻辑运算

65

A7

0000

X

F=65FC=0FZ=0

F=A(直通)

65

A7

0001

X

F=A7FC=0FZ=0

F=B(直通)

65

A7

0010

X

F=25FC=0FZ=0

F=AB(逻辑乘法)

65

A7

0011

X

F=E7FC=0FZ=0

F=A+B(逻辑加法)

65

A7

0100

X

F=9AFC=0FZ=0

F=/A(逻辑非运算)

移位运算

65

A7

0101

X

F=CAFC=0FZ=0

F=A不带进位循环右移B(取低三位)位

65

A7

0110

0

F=32FC=0FZ=0

F=A逻辑右移一位

65

A7

1

F=B2FC=1FZ=0

F=A带进位循环右移一位

65

A7

0111

0

F=CAFC=1FZ=0

F=A逻辑左移一位

65

A7

1

F=CAFC=0FZ=0

F=A带进位循环左移一位

算术运算

65

A7

1000

X

F=65FC=0FZ=0

置FC=CN

65

A7

1001

X

F=0CFC=1FZ=0

F=A加B

65

A7

1010

(FC=0)

X

F=0CFC=1FZ=0

F=A加B加FC

65

A7

1010

(FC=1)

F=0DFC=1FZ=0

65

A7

1011

F=BEFC=1FZ=0

F=A减B

65

A7

1100

F=64FC=0FZ=0

F=A减1

65

A7

1101

F=66FC=0FZ=0

F=A加1

五、实验中遇到的问题以及解决办法

在算术运算中,在进行1010运算时,不知道如何控制FC的值。

解决办法:

使用1000运算对FC赋值,问题解决。

六、实验体会

本次实验内容比较简单也很容易理解,从整体上对运算器有了基本认知。

通过简单地操作以及观察电脑的数据通路图对运算器的运作有了整体的了解。

实验二微程序控制器

一、实验目的

1.掌握微程序控制器的组成原理。

2.掌握微程序的编制、写入,观察微程序的运行过程。

二、实验设备

PC机一台,TD-CMA实验系统一套

三、实验原理

1.微程序控制器原理框图(思考题)

各部分作用:

(1)控制存储器:

用来存放实现全部指令系统的微程序,是一种只读型存储器(即只读不写)。

其工作过程是:

每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令……

(2)微指令寄存器(微地址寄存器和微命令寄存器):

微指令寄存器用来存放由控制存储器读出的一条微指令信息。

其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。

(3)地址转移逻辑:

在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。

如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。

当微程序出现分支时,意味着微程序出现条件转移。

在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。

地址转移逻辑就承担自动完成修改微地址的任务。

(4)OP:

指令的操作码,表示该指令应进行什么性质的操作。

2.微指令的格式及编码方法

微指令的格式大体分成两类:

水平型微指令和垂直型微指令。

(1)水平型微指令

一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。

水瓶微指令的一般格式如下:

控制字段

判别测试字段

下地址字段

(2)垂直型微指令

微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。

下面用4条垂直型微指令的微指令格式加以说明。

设微指令字长为16位,微操作码3位。

寄存器-寄存器传送型微指令。

15131287320

000

源寄存器编址

目标寄存器编址

其他

功能是把源寄存器数据送目标寄存器。

运算控制型微指令。

15131287320

001

左输入源编址

右输入源编址

ALU

其功能是选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。

访问主存微指令。

151312873210

010

寄存器编址

存储器编址

读写

其他

其功能是将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。

条件转移微指令。

151312430

011

D

测试条件

其功能是根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。

3.微指令的编码方法

(1)直接表示法

微指令结构如下图。

特点是操作控制字段中的每一位表示一个微命令。

(2)编码表示法

微指令结构图如下。

编码表示法是把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组(字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。

(3)混合表示法

这种方法是把直接表示法与字段编码法混合使用,以便能综合考虑微指令字长、灵活性、执行微程序速度等方面的要求。

4.微程序控制器与计算器的数据通路

图中MA5…MA0为6位的后续微地址,SE5..SE0是微控器单元微地址锁存器的强制端输出

MCR表示控制字段NMA表示P字段

IN为输入单元OUT为输出单元

左图为微程序的相关指令流程图。

由于微程序控制器的数据通路走向已有箭头标出,不再进行详细解释。

对运算器数据通路的解释:

IN微指令00100000:

IN单元载入数据,将数据置入R0暂存器。

ADD微指令00000000:

将R0打入A,R0打入B后,A和B相加(通过ALU算术逻辑单元)后,打入RO。

OUT微指令00110000:

将RO打入OUT单元。

HLT微指令01010000:

停机。

四、实验内容

1.按照实验指导书连接好实验线路。

2对微控器进行读写操作,分两种。

1)手动读写

(1)手动对微控器进行编程(写)

1.按图所示连接实验线路,仔细查线无误后接通电源。

如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。

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)联机读写

用联机软件的“【转储】—【装载】”功能将该格式(*.TXT)文件装载入实验系统。

装入过程中,在软件的输出区的‘结果’栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。

;//***************************************//

;////

;//微控器实验指令文件//

;////

;//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.运行微程序

运行时也分两种情况:

本机运行和联机运行。

1)本机运行

①将时序与操作台单元的开关KK1、KK3置为‘运行’档,按动CON单元的CLR按钮,将微地址寄存器(MAR)清零,同时也将指令寄存器(IR)、ALU单元的暂存器A和暂存器B清零。

②将时序与操作台单元的开关KK2置为‘单拍’档,然后按动ST按钮,体会系统在T1、T2、T3、T4节拍中各做的工作。

T2节拍微控器将后续微地址(下条执行的微指令的地址)打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号;T3、T4节拍根据T2节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支。

③按动CON单元的CLR按钮,清微地址寄存器(MAR)等,并将时序与单元的开关KK2置为‘单步’档。

④置IN单元数据为00100011,按动ST按钮,当MC单元后续微地址显示为000001时,在CON单元的SD27…SD20模拟给出IN指令00100000并继续单步执行,当MC单元后续微地址显示为000001时,说明当前指令已执行完;在CON单元的SD27…SD20给出ADD指令00000000,该指令将会在下个T3被打入指令寄存器(IR),它将R0中的数据和其自身相加后送R0;接下来在CON单元的SD27…SD20给出OUT指令00110000并继续单步执行,在MC单元后续微地址显示为000001时,观查OUT单元的显示值是否为01000110。

2)联机运行

联机运行时,进入软件界面,在菜单上选择【实验】-【微控器实验】,打开本实验的数据通路图,也可以通过工具栏上的下拉框打开数据通路图,数据通路图如图3-2-8所示。

将时序与操作台单元的开关KK1、KK3置为‘运行’档,按动CON单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的MAR)为000001时,置CON单元SD27…SD20,产生相应的机器指令,该指令将会在下个T3被打入指令寄存器(IR),在后面的节拍中将执行这条机器指令。

仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。

也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。

按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确。

运行过程:

CON单元SD27..SD20给出微指令,而后IN单元输入数据。

首先IN单元数据打入R0(微指令00100000),将R0打入A,R0打入B后,A和B相加(通过ALU算术逻辑单元)后,打入RO(微指令00000000),将RO打入OUT单元(微指令00110000)。

实验结果:

OUT单元的显示值为01000110

与实验一的区别:

两者有交叉的部分,但实验一主要是使用运算器,通过手动控制的情况下,输入命令实现了逻辑运算、算术运算、移位运算,而实验二主要是在使用微程序控制器的情况下,通过存储微指令而后输入微指令实现微程序控制运算的进行,

而微指令中又是通过地址寻找下一个微指令以此进行下去。

但本实验中只实现了算术运算(R0+R0)。

微指令和机器指令的关系:

第一,一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。

因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。

简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。

第二,从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。

与此相关,也有相对应的硬设备。

第三,每一个CPU周期(从内存读取一条指令字的最短时间)对应一条微指令。

五、实验中遇到的问题以及解决办法

在输入完成后,运行的过程中译码器无法正确译码,操作一直都是ADD指令。

原因:

接线错误,写微地址的SE5..SE0无法取出正确的微地址以及判别标志p1接线错误,无法实现地址转移。

解决方法:

修正接线。

六、实验体会

本次实验相比较上次实验而言有一定的难度,本次实验对我最大的启发是细节的重要性,只有正确的接线,才有可能做出正确的结果。

以后在接线过程中一定要细心再细心,对每一条线都认真核对。

实验三CPU与简单模型机实验

一、实验目的

1.掌握一个简单CPU的组成原理。

2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。

3.为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。

二、实验设备

PC机一台,TD-CMA实验系统一套。

三、实验原理

1.基本CPU构成原理图如下:

工作原理:

PC程序计数器装入指令地址,PC程序计数器中取出地址,读出命令而后放入指令寄存器IR,指令寄存器IR中的操作码OP被译码,取指周期结束。

而后控制器发出指令开始使其运作。

2.CPU的数据通路图

3.指令周期流程图

4.与实验二的区别

指令上来说,增加了一条JMP指令,跳转指令。

增加了三个部件:

PC程序计数器、MEM主存、AR寄存器,用来完成实验二的手动输入指令的过程。

实验二是手动输入指令,而实验三则是由cpu代替人手实现输入指令的过程。

5.指令格式

一条指令的结构的表示:

操作字段OP

地址码字段A

地址码:

三地址指令

OP码

A1

A2

A3

二地址指令

OP码

A1

A2

一地址指令

OP码

A

零地址指令

OP码

二地址指令:

从操作数的物理位置来说,分为存储器–存储器(SS)型指令,寄存器-寄存器(RR)型指令,寄存器-存储器(RS)型指令。

四、实验内容

1.写入实验程序,并进行校验,可用手动或联机写入。

 

(1)手动写入或校验 

1)手动写入微程序 

① 将开关KK1置为“停止”,KK3置“编程”,KK4置“控存”,KK5置为“置         数”挡; 

② 使用CON单元的SD5~SD0给出微地址,IN单元给出低8位应写入的数 据,连续两次按动开关ST,将IN单元的数据写到该单元的低8位; 

③ 开关KK5置为“加1”挡; 

④ IN单元给出低8位应写入的数据,连续两次按动开关ST,将IN单元的 数据写到该单元的中8位;IN单元给出低8位应写入的数据,连续两         次按动开关ST,将IN单元的数据写到该单元的高8位; 

⑤ 重复①、②、③、④四步,将表5-1-2的微代码写入EPROM2816芯片。

 2)手动检验微程序 

① 将KK1置为“停止”,KK3置为“校验”,KK4置为“控存”,KK5置为“置         数” 

② 使用CON单元的SD05~SD00给出微地址,连续两次按动开关ST,MC单元的数据指示灯M7~M0显示该单元的低8位; 

③ 将开关KK5置为“加1”挡; 

④ 连续两次按动开关ST,MC单元的数据指示灯M15~M8显示该单元的中8         位;MC单元的数据指示灯M23~M16显示该单元的高8位; 

⑤ 重复①、②、③、④四步,完成对微代码的校验。

 3)手动写入机器指令程序 

① 将KK1置为“停止”,KK3置为“校验”,KK4置为“主存”,KK5置为“置         数” 

② 使用CON单元的SD05~SD00给出地址,IN单元给出该单元应写入的数据, 连续两次按动开关ST,将IN单元的数据写到该存储器单元; 

③ 开关KK5置为“加1”挡; 

④ IN单元给出下一个地址(地址自动加1)应写入的数据,连续两次按动 开关ST,将IN单元的数据写到该存储器单元中;然后地址会又加1, 

        只需在IN单元输入后续地址(地址自动加1)应写入的数据,连续两  次按动开关ST,即可完成对该单元的写入。

 

⑤ 亦可①、②两步,将所有机器指令写入主存芯片中。

 4)手动校验机器指令程序 

① 将KK1置为“停止”,KK3为“校验”,KK4为“主存”,KK5为“置数” ② 使用CON单元的SD07~SD00给出地址,连续两次按动开关ST,CPU内总         线的数据指示灯D7~D0显示该单元的数据; 

③ 开关KK5置为“加1”挡;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1