计算机组成原理课程设计设计一个微程序控制器.docx

上传人:b****3 文档编号:4415577 上传时间:2022-12-01 格式:DOCX 页数:15 大小:392.93KB
下载 相关 举报
计算机组成原理课程设计设计一个微程序控制器.docx_第1页
第1页 / 共15页
计算机组成原理课程设计设计一个微程序控制器.docx_第2页
第2页 / 共15页
计算机组成原理课程设计设计一个微程序控制器.docx_第3页
第3页 / 共15页
计算机组成原理课程设计设计一个微程序控制器.docx_第4页
第4页 / 共15页
计算机组成原理课程设计设计一个微程序控制器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

计算机组成原理课程设计设计一个微程序控制器.docx

《计算机组成原理课程设计设计一个微程序控制器.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计设计一个微程序控制器.docx(15页珍藏版)》请在冰豆网上搜索。

计算机组成原理课程设计设计一个微程序控制器.docx

计算机组成原理课程设计设计一个微程序控制器

第一章设计概述

1.1课程设计的目的

本课程设计的教学目是在掌握计算机系统的组成及内部工作机制,理解计算机各功能部件工作原理的基础上,深入掌握数据信息流和控制信息流的流动过程,进一步加深计算机系统各模块间相互关系的认识和整机的概念,培养开发和调试计算机的技能,在设计实践中提高应用所学专业知识分析问题和解决问题的能力。

1.2设计任务和基本要求

本课程设计以TDN-CM++计算机组成原理教学实验系统为平台设计完成。

1.按给定的数据格式和指令系统,设计一个微程序控制器。

2.设计给定机器指令系统以及微程序流程图,按微指令格式写出微程序的为指令代码。

3.连接逻辑电路完成启动,测试,编程,测试,效验和运行,并观测运行过程及结果。

4.将微程序控制器模块与运算器模块,存储器模块联机,组成一台模型计算机。

5.用微程序控制器控制模型机的数据通路。

6.通过在模型机上运行由机器指令组成的简单程序,掌握机器指令与微指令的关系,建立计算机整机的概念,掌握计算机的控制机制。

7.按指定的应用项目进行汇编指令格式及功能设计,并设计相应的机器指令代码,按照模型机数据通路设计实现机器指令功能的微程序.在PC机上编辑机器指令和微程序,装载代码到TDN-CM++实验系统并运行,实现应用要求。

 

第二章规定项目的验证实现

 

2.1规定项目任务和要求:

任务:

从输入设备输入一个数与内存中地址为0AH存放的数字1相加结果送地址为0BH单元中。

并能从内存中取出到外围设备显示之。

要求:

通过此验证实验来学会数据通路电路图的连接、机器指令的设计、微指令设计中相关字段的作用、微程序流程图的设计以及能熟练掌握用微程序控制数据通路来实现机器指令的功能,为以后的实验设计做好准备。

2.2规定项目实现原理:

(1)在本设计中,数据通路的控制将由微程序控制器来完成。

计算机从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

(2)本设计采用五条机器指令:

IN、ADD、STA、OUT、JMP;其相应的机器指令和汇编程序如下:

地址(二进制)内容(二进制)助记符注释

0000000000000000INR

;“input”—>R

0000000100010000ADD[0AH],R

R

+[0AH]—>R

0000001000001010

0000001100100000STAR

[0BH]R

—>[0BH]

0000010000001011

0000010100110000OUT[0BH];[0BH]-LED

0000011000001011

0000011101000000JMP00H00H-PC

0000100000000000

00001001

0000101000000001

00001011

2.3规定项目实现过程:

(1)连接线路:

按图1链接实验线路。

最后保证实验中的各个原件及数据线路如图2所示。

图1接线图

(2)读懂项目给出的程序

按照规定格式,机器指令及微指令二进制代码表已编辑成十六进制文件。

本项目的程序如下:

程序机器指令格式说明

$P0000$P060D$PXXXX

$P0110$P0740机器指令代码

$P020A$P0800

$P0320$P0A01十六进制地址

$P0530

微程序微指令格式说明:

$M00018110$M06959A01$MXXXXXXXX

$M0101ED82$M0700E00D微指令代码

$M0200C048$M08001001

$M0300E004$M0901ED83十进制地址

$M0400B005$M0A01ED87

$M0501A206$M0B01ED8E

$M0C01ED96$M1200A017

$M0D028201$M13018001

$M0E00E00F$M14002018

$M0F00A015$M15070A01

$M1001ED92$M1600D181

$M1101ED94$M17070A10

$M18068A11

(3)联机运行验证:

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

表1

SWB

SWA

控制台指令

0

0

读内存(KRD)

0

1

写内存(KRD)

0

1

启动程序(RP)

联机运行程序时,进入软件界面,装载机器指令及微指令后,调整控制台,使SWA=1,SWB=0,即启动程序。

接着选择(运行)→(通路图)→(复杂模型机)功能菜单打开相应的动态数据通路图,按相应功能键即可联机运行、监控、调试程序。

在验证过程中,首先采用但不运行,仔细看每一条机器指令的执行过程,明白其每一步对应的微指令,为下一步完成项目的设计实现打下基础。

2.4验证结果:

从输入设备输入的数字4,联机运行,得到的输出结果是5,与理论计算结果一致。

说明微程序控制实现了机器指令的功能。

 

第三章:

指定应用项目的设计实现

3.1指定项目任务和要求:

将以K为地址的内存单元的内容X与以N为间接地址的内存单元的内容Y,执行(X+Y)减6的运算,结果送R

3.2项目任务分析及解决方案:

在机器指令中设置N=0AH在内存地址0AH中存放0CH,而内存0CH中存放Y的值即4,内存地址0BH中存放X的值7.运算时,通过微程序控制从内存中通过间接寻址取出Y的值送往R

,从内存中直接寻址取出X的值7,进行或地运算结果放R

执行减法运算时,把R

的值送往

3.3实现原理:

(1)机器汇编指令设计:

本设计采用8条机器指令:

IN、STA、MOV、NOT、EOR、STO、OUT、HLT;其相应的机器指令和汇编程序如下:

(其中[[]]表示间接寻址,[]表示直接寻址)

地址(二进制)内容(二进制)助记符注释

0000000000000000INR

;“X=input”—>R

0000000100010000STAR

[[11]];X=R

—>[[11]]

0000001000000001

0000001100100000MOV[10],R

;Y=[10]—>R

0000010000010000

0000010100110000NOTR

;Y—>R

0000011001000000EOR[[11]],R

;X⊕Y—>R

0000011100010001

0000100000110000NOTR

;X⊕Y—>R

0000100101110000STOR

[13];R

—>[13]

0000101000010011

0000101101010000OUT[13][13]

0000110000010011

0000110101100000HLT

0001000000000100

0001000100010111

0001001000000000

0001001100000000

0001011100000000

(2)微程序设计:

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,设计如图4的三个控制台操作微程序。

其功能说明见表1。

按照数据通路可画出机器指令的微程序流程图如图4所示。

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

(1)测试。

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

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

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

 

控制台

00

20

KWE(01)KRD(00)RP(11)

212023

242201

3027

(3)微指令代码设计:

微指令格式如表1所示。

当微指令格式确定以后,下一步就是确定后续微指令地址。

通常的方法是先确定微程序分支处的微地址,因为微程序分支处需要进行判断测试。

这些微地址确定以后,就可以在一个“微地址表”中将分支微指令填入相应得分支地址单元,避免以后的设计中因重复使用而造成错误。

对于其它位置就可以按一条微指令对应一个微地址随意填写。

表2微指令格式

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

μA5

μA4

μA3

μA2

μA1

μA0

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

RD-B

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

当全部微指令设计完毕后,应将每条微指令代码化,表3即为将图3微程序流程图按微指令格式转化而得到的“二进制代码表”。

表3二进制微代码表

微地址

S3S2S1S0MCNWEA9A8

A

B

C

μA5…μA0

00

000000011

000

000

100

010000

01

000000011

110

110

110

000010

02

000000001

100

000

001

001000

03

000000001

110

000

000

000111

04

000000101

000

001

000

000001

05

000000001

110

000

000

000110

06

000000001

001

000

000

000001

07

000000001

110

000

000

000100

10

000000000

001

000

000

000001

11

000000011

110

110

110

000110

12

000000011

110

110

110

000101

13

000000011

010

001

000

011111

14

000000011

110

110

110

010101

15

000000011

110

110

110

011100

16

000000011

000

000

000

001110

17

000000011

110

110

110

100000

20

000000011

110

110

110

010010

21

000000011

110

110

110

010100

22

000000001

010

000

000

010111

23

000000011

000

000

000

000001

24

000000000

010

000

000

011000

25

000001110

000

101

000

000001

26

000000001

101

000

110

000001

27

000001110

000

101

000

010000

30

000001101

000

101

000

010001

31

000000001

011

000

000

011000

32

000000011

010

001

000

011011

33

011010011

001

101

000

000001

34

000000001

110

000

000

011001

35

000000001

010

000

000

011110

36

000001110

000

101

000

000001

37

000010011

001

101

000

000001

40

000000001

110

000

000

100001

41

000000101

000

001

000

000001

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

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

指令划分为操作码和地址码字段,由二进制数构成。

为了执行任何给定的指令,必须对操作码进行测试[P

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

“指令寄存器”(实验板上标有“INSDECODE”的芯片)根据指令中的操作码译码结果强置微控器单元的微地址,使下一条微指令指向相应得微程序首地址。

本系统使用两种外部设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是数码管,它作为输出设备(OUPUTDEVICE)。

例如:

输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。

输出时,将输出的数据送到数据总线BUS上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码管显示。

3.4指定项目的实现过程:

(1)按图1连接实验电路

(2)联机写程序:

按照规定格式,将机器指令及微指令二进制代码表(如表4)编辑成十六进制的.txt文件。

机器代码:

程序

$P0000

$P0110

$P0211

$P0320

$P0410

$P0530

$P0640

$P0711

$P0830

$P0970

$P0A13

$P0B50

$P0C13

$P0D60

$P1004

$P1117

$P1300

$P1700

微程序

$M00018110

$M0101ED82

$M0200C048

$M0300E007

$M04028201

$M0500E006

$M06009001

$M0700E004

$M08001001

$M0901ED83

$M0A01ED85

$M0B01A21F

$M0C01ED95

$M0D01ED9C

$M0E00000E

$M0F01EDA0

$M1001ED92

$M1101ED94

$M1200A017

$M13018001

$M14002018

$M1500E016

$M1600E019

$M17070A10

$M18068A11

$M1900B01A

$M1A01A21B

$M1B699A01

$M1C00E01D

$M1D00A01E

$M1E070A01

$M1F099A01

$M2000E021

$M21028201

(3)联机运行:

联机运行程序时,进入软件界面,装载机器指令及微指令后,选择(运行)→(通路图)→(复杂模型机)功能菜单打开相应的动态数据通路图,按相应功能键即可联机运行、监控、调试程序。

3.5实现结果:

理论计算:

Y=04,取反之后其值为FBH,在与X=05异或之后结果为FEH,再经取反后,结果为01。

即最后的输出设备数码管上显示01后,即说明设计内容得到实现。

实验所得:

通过监控、调试等多步操作之后,数码管上显示的数字为01,并且在单步执行中可以看到各个环节均为以上分析的理论结果,这强有力的说明了设计内容得到实现,设计成功。

 

第四章收获、体会、建议

本次计算机组成原理课程设计是做过的所有课设里感觉头脑思路最清楚的一个,觉得最要感谢的是老师在指导书里给出了示例,并更让我们自己运行验证,通过验证规定项目,我们对整个设计有了初步的了解,再看自己的设计题目,很快就有了思路,知道具体该先做什么后做什么了;在具体开始做设计的时候,我们一开始就犯了个错误,花了很多的时间研究ABC字段各自的作用,就导致进度比其他组慢了一些,后来发现没那么复杂,根据示例设计给出的二进制微代码就能写出正确的代码;再就是设计的时候一开始忽略了存X的时候也要间接存,是在老师的指导下才意识到了,有对原来的设计做了些改动,才最终达到了设计题目的要求,通过了老师的验收。

这次课程设计使我们进一步体会了“学有所用”,通过一学期的课程学习,在学期末利用学到的知识做除自己的简单设计,对于我们来说的确是很好的锻炼,可以加深对课本上知识的理解,也提高了我们的动手能力和团队合作的能力。

很感谢老师在课设过程中给我们做的讲解,让我们能及时纠正自己思路上的偏差,并最终完成了设计任务。

参考文献:

《计算机组成原理》科学出版社白中英著

《计算机组成原理与应用》工业出版社王子齐著

 

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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