基本模拟机设计与实现计算机组成原理课程设计.docx

上传人:b****7 文档编号:23929016 上传时间:2023-05-22 格式:DOCX 页数:20 大小:908.16KB
下载 相关 举报
基本模拟机设计与实现计算机组成原理课程设计.docx_第1页
第1页 / 共20页
基本模拟机设计与实现计算机组成原理课程设计.docx_第2页
第2页 / 共20页
基本模拟机设计与实现计算机组成原理课程设计.docx_第3页
第3页 / 共20页
基本模拟机设计与实现计算机组成原理课程设计.docx_第4页
第4页 / 共20页
基本模拟机设计与实现计算机组成原理课程设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基本模拟机设计与实现计算机组成原理课程设计.docx

《基本模拟机设计与实现计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《基本模拟机设计与实现计算机组成原理课程设计.docx(20页珍藏版)》请在冰豆网上搜索。

基本模拟机设计与实现计算机组成原理课程设计.docx

基本模拟机设计与实现计算机组成原理课程设计

目录

1.绪论-1-

1.1课设目的及意义-1-

1.2课设内容及要求-1-

2.功能描述-2-

2.1微程序控制电路-2-

2.2微指令格式-2-

2.3.控制台微操作-3-

2.4数据通路框图-4-

3.设计思路-5-

3.1设计思路-5-

3.2设计代码表-6-

4.机器指令程序-7-

5.线路连接图-8-

6.微程序流程及说明-9-

7.运行调试及结果分析-11-

方法一:

手动写入-11-

方法二:

联机读/写程序-12-

8.设计体会及总结-16-

9.参考文献-17-

1.绪论

1.1课设目的及意义

(1)在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。

(2)为其定义五条机器指令,并编写相应的微程序,具体上级调试掌握整机的概念。

(3)掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。

1.2课设内容及要求

(1)设计实现一个简单的模型机,该模型机由运算器、寄存器、译码电路、存储器、和存储微指令用的控制存储器组成。

(2)实现5条机器指令:

IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)。

(3)可通过手动写入或联机的方式将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,观察该段程序的运行,验证编写的指令和微指令的执行情况是否符合设计要求,并对程序运行结果的正、误分析其原因。

(4)要求学生动手操作实验设备,掌握微程序设计思想和设计方法。

 

2.功能描述

2.1微程序控制电路

若采用手动写入方式实现基本模型机功能,则应先微代码手动写入控存2816中。

控存采用3片ROM,微指令寄存器18位,用两片8D触发器和一片4D触发器组成。

微地址寄存器6位,用三片正沿触发的双D触发器组成。

在不判别的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。

当T4时刻进行判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”完成地址修改。

实验电路有一个编程开关,具有三种状态:

PROM(编程)、READ(校验)、RUN(运行)。

当处于“编程状态”时,可根据微地址和微指令格式将微指令二进制代码写入控存2816中;当处于“校验状态”时,可以对写入控存的二进制代码进行验证;当处于“运行状态”时,只要给出微程序的入口地址,则可根据微程序流程图自动执行微程序。

2.2微指令格式

微指令长24位,其控制位顺序如下:

24

23

22

21

20

19

18

17

16

151413

121110

987

6

5

4

3

2

1

S3

S2

S1

S0

M

Cn

WE

A9

A8

A

B

C

uA5

uA4

uA3

uA2

uA1

uA0

图2.1微代码定义示意图

前面9位为直接控制字段,直接与相应的控制门连接。

后面UA5-UA0为6位的后续微地址,即跳转地址。

而中间的A、B、C三个译码字段,分别由三个控制位译码出多位。

其含义如下:

 

A字段

B字段

C字段

15

14

13

选择

12

11

10

选择

9

8

7

选择

0

0

0

0

0

0

0

0

0

0

0

1

LDRi

0

0

1

RS-B

0

0

1

P

(1)

0

1

0

LDDR1

0

1

0

RS-D

0

1

0

P

(2)

0

1

1

LDDR2

0

1

1

RI-B

0

1

1

P(3)

1

0

0

LDIR

1

0

0

299-B

1

0

0

P(4)

1

0

1

LOAD

1

0

1

ALU-B

1

0

1

AR

1

1

0

LDAR

1

1

0

PC-B

1

1

0

LDPC

图2.2控制位含义示意图

C字段中的P

(1)-P(4)是四个测试字位。

其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实验微程序的顺序、分支、循环运行。

B字段中的RD-B、R0-B、RI-B分别为原寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来警醒三个工作寄存器R0、R1及R2的选通译码。

指令寄存器用来保存当前正在执行的一条指令。

当执行一条指令时,先把它从内存取到缓冲寄存器,然后再传送到指令寄存器。

指令划分为操作码和地址码字段,由二进制构成,为了执行任何一条给定的指令,必须对操作码进行测试P

(1),通过节拍脉冲T4的控制以便识别所要求的操作。

“指令译码器”根据指令的操作码进行译码,强置微控制单元的微地址,使下一条微指令指向相应的微程序。

2.3.控制台微操作

本实验采用五条机器指令:

IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)。

其中IN为单字长,其余为双字长指令。

为了向RAM写入、读出机器指令,并能启动程序执行,还须设计三个控制台操作微程序。

存储器读(KRD):

拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。

存储器写(KWE):

拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM连续手动写操作。

启动程序(RP):

拨动总清开关CLR后,控制台开关SWB、SWA为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。

上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:

SWB

SWA

控制台指令

0

0

读内存(KRD)

0

1

写内存(KWE)

1

1

启动程序(RP)

 

图2.3控制台指令定义示意图

2.4数据通路框图

3.设计思路

3.1设计思路

计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出提条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成。

即一条机器指令对应一个微程序。

本系统有两种外部I/O设备,一种是二进制数码开关,作为输入设备(INPUT);另一种是两位十六进制数LED数码管,作为输出设备(OUTPUTUNIT)。

在输入时,二进制开关数据直接经过三态门送到总线上。

只要开关状态不变,输入的信息也不变。

输出时,将输出数据送到数据总线上,当写信号(WE)有效时,将数据打入输出锁存器,驱动数码块显示。

3.2设计代码表

微地址

S3

S2

S1

S0

M

CN

WE

A9

A8

A

B

C

UA5…UA0

00

0

0

0

0

0

0

0

1

1

000

000

100

010000

01

0

0

0

0

0

0

0

1

1

110

110

110

000010

02

0

0

0

0

0

0

0

0

1

100

000

001

001000

03

0

0

0

0

0

0

0

0

1

000

000

001

000100

04

0

0

0

0

0

0

0

0

1

011

000

000

000101

05

0

0

0

0

0

0

0

1

1

010

101

000

000110

06

1

0

0

1

0

1

0

1

1

001

101

000

000001

07

0

0

0

0

0

0

0

0

1

110

000

000

001101

10

0

0

0

0

0

0

0

0

0

001

000

000

000001

11

0

0

0

0

0

0

0

1

1

110

110

110

000011

12

0

0

0

0

0

0

0

1

1

110

110

110

000111

13

0

0

0

0

0

0

0

1

1

110

110

110

001110

14

0

0

0

0

0

0

0

1

1

110

110

110

010110

15

0

0

0

0

0

0

1

0

1

000

001

000

000001

16

0

0

0

0

0

0

0

0

1

110

000

000

001111

17

0

0

0

0

0

0

0

0

1

010

000

000

010101

20

0

0

0

0

0

0

0

1

1

110

110

110

010010

21

0

0

0

0

0

0

0

1

1

110

110

110

010100

22

0

0

0

0

0

0

0

0

1

010

000

000

010111

23

0

0

0

0

0

0

0

1

1

000

000

000

00000

24

0

0

0

0

0

0

0

0

0

010

000

000

011000

25

0

0

0

0

0

1

1

1

0

000

101

000

000001

26

0

0

0

0

0

0

0

0

1

101

000

110

000001

27

0

0

0

0

0

1

1

1

0

000

101

000

010000

30

0

0

0

0

0

1

1

0

1

000

101

000

010001

表3.1二进制微代码表

4.机器指令程序

本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。

本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。

本实验设计机器指令程序如下:

地址(二进制)内容(二进制)助记符说明

0000000000000000IN“INPUTDEVICE”0000000100010000ADD[0AH]R0+[02H]→R0

0000001000001010

0000001100100000STA[0BH]R0→[03H]

0000010000001011

0000010100110000OUT[0BH][03H]→BUS

0000011000001011

0000011101000000JMP[00H]00H→PC

0000100000000000

00001001

0000101000000001自定加数01H

0111结果保存在0B单元

 

5.线路连接图

图5.1实验连接图

6.微程序流程及说明

当拟定“取址”微指令时,该微指令的判别测试字段为P

(1)测试。

由于“取址”微指令是所有微程序都使用的公用微指令,因此P

(1)测试结果出现多路分支。

本次课程设计使用指令寄存器的前4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。

6.1微程序流程图

控制台操作为P(4)测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。

当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用一个微地址单元随意填写。

当输入00000000(00)微地址的时候,就从控制台入口开始了流程,对应二进制代码表,微地址00的下一条微指令地址即为010000,对应的是20,也就走到了控制台的第二步P(4),当前正在执行的微指令从控制

当做完判断后,就沿着那条分支继续走,存储器取出后放在微指令寄存器中,该寄存器的各个控制位的输出直接连到各个控制门上。

进入到跳转地址图示如下:

图6.2控制台流程图

 

7.运行调试及结果分析

方法一:

手动写入

1)手动写入程序

1.先将机器指令对应的微代码正确的写入2816中。

2.使用控制台KWE和KRD微程序进行机器指令程序的装入和检查。

A.使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。

B.拨动总清开关CLR(0→1),微地址寄存器清零,程序计数器清零。

然后使控制台SWB、SWA开关置为“01”,按动一次启动开关START,微地址显示指示灯显示“010001”,再按动一次START,微地址灯显示“010100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,完成该条指令的写入。

C.写完程序后须进行检验。

拨动总清开关CLR(0→1)后,微地址清零。

PC程序计数器清零,然后使控制台开关SWB、SWA为“00”,按动启动START,微地址灯将显示“010000”,再按START,微地址灯显示为“010010”,第三次按START,微地址灯显示为“010111”,再按START后,此时输出单元的数码管显示为该首地址中的内容。

不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。

2)手动运行程序

1.单步运行程序:

A.使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。

SWITCH单元的开关SWB、SWA为“11”。

B.拨动总清开关CLR(0->1),微地址清零,程序计数器清零。

程序首址为00H。

C.单步运行一条微指令,每按动一次START键,即单步运行一条微指令。

对照微指令流程图,观察微地址显示灯是否和流程一致。

D.单步运行结束后,检查存数单元(0BH)中的结果是否和理论值一致。

2.连续运行程序:

使“STATEUNIT”中的STEP开关置为“ECEX”状态。

STOP开关置为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。

拨动CLR开关,清微地址及程序计数器,然后拨动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。

停机后,检查存数单元(0BH)结果是否正确。

3)结果分析

本实验求的结果为03H,根据实验原理从INPUTDEVICE中输入数据02H给R0,取出01H,然后把这两个数进行相加,得到的结果为03H.与理论上02H+01H=03H与实验结果一致

方法二:

联机读/写程序

1)联机写入程序

按照规定格式,将机器指令及表2-2微指令二进制表成十六进制的如下格式文件。

程序机器指令格式说明:

$P0000$XXXX

$P0110机器指令代码

$P0202十六进制地址

$P0320

$P040B微指令格式说明:

$P0530$MXXXXXXXX

$P060B微指令代码

$P0740十六进制地址

$P0800注意:

因系统文件格式要求,微指令格文件和

$P0201控制存储器的微指令代码的第一字节(前8位)

$M00108101与第三字节(后8位)对换一下。

$M0182ED01

$M0248C000

$M0304E000

$M0505B000

$M0506A201

$M06019A95

$M070DE000

$M08011000

$M0983ED01

$M0A87ED01

$M0B8EED01

$M0C96ED01

$M0D018202

$M0E0FE000

$M0F15A000

$M1092ED01

$M1194ED01

$M1217A000

$M13018001

$M14182000

$M15010A07

$M1681D100

$M17100A07

$M18118A06

2)运行程序

(1)将02送到R0寄存器中

(2)将[0AH]所指向的数据01传到数据寄存器DR2中

(3)将DR1与DR2中的数据相加,将结果03传到R0寄存器

(4)将R0中数据03传送到[0BH]这个地址所指向的单元中

(5)将地址[0BH]所指向的数据03输出

8.设计体会及总结

8.1实验中出现的问题

(1)原理不清

当按照实验接线图接完全部的实验线路的时候才发现原来如果采用手动方式写入指令程序,则必须先将微代码写入到控存中。

于是小组成员又重新接线,将微代码写入2816中。

(2)基础知识不牢固

在写入控存微代码时,由于意外突然断电,于是重新将微代码写入控存。

在写到一半代码的时候,才想起控存使用的是ROM芯片,断电后可以保存数据,但已经浪费大量的时间。

在进行写内存的时候,小组成员针对是否应该先将数据写入到DDR1或者是RAM芯片中再进行本实验产生了分歧。

最终,仔细分析实验原理,一致认为不需要先写入到RAM或寄存器中,在本实验的写内存过程中即可实现。

(3)实施方法不科学

在实验开始后发现没有写控存,决定采用联机读/写程序的方式完成实验,可是发现原来本小组的实验箱连计算机的插头是坏掉的。

换了一个实验箱后又发现无法连接计算机。

在写控存时,将24个二进制微代码全部写入到控存后验证居然发现原来并没有按地址存入进去,于是又重写将这么多微代码到控存中。

8.2体会及总结

通过本次实验,不但了解了基本模型机的原理而且很好的巩固了课本上的知识,同时还通过本次实验积累了计算机硬件实验的经验和方法,主要有:

在实验开始的第一步必须要检查实验设备是否完好,避免出现连好了线路才发现设备问题无法完成实验的情况;

在实验开始前一定要做好预习工作,了解大概的实验原理同时进行思考提出问题,在实验的过程中边验证原理边解决问题;

边做实验边验证数据的正确性,避免重复返工;

小组成员一定要分工明确,提高效率,避免所有人都做一件事情而浪费时间。

总之,本次实验既巩固了知识,又积累了经验,加深对计算机科学的兴趣。

也为今后的学习打下了良好的基础。

9.参考文献

[1]王爱英.计算机组成与结构(第四版).北京;清华大学出版社,2007

[2]白中英.计算机组成原理.北京;清华大学出版社,2002

文档来源网络,版权归原作者。

如有侵权,请告知,我看到会立刻处理。

忽略此处..

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

当前位置:首页 > 工程科技 > 电力水利

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

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