计算机组成原理课程设计报告重庆大学.docx

上传人:b****7 文档编号:10421695 上传时间:2023-02-11 格式:DOCX 页数:25 大小:512.32KB
下载 相关 举报
计算机组成原理课程设计报告重庆大学.docx_第1页
第1页 / 共25页
计算机组成原理课程设计报告重庆大学.docx_第2页
第2页 / 共25页
计算机组成原理课程设计报告重庆大学.docx_第3页
第3页 / 共25页
计算机组成原理课程设计报告重庆大学.docx_第4页
第4页 / 共25页
计算机组成原理课程设计报告重庆大学.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

计算机组成原理课程设计报告重庆大学.docx

《计算机组成原理课程设计报告重庆大学.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告重庆大学.docx(25页珍藏版)》请在冰豆网上搜索。

计算机组成原理课程设计报告重庆大学.docx

计算机组成原理课程设计报告重庆大学

 

计算机组成原理课程设计报告

题目:

微程序设计

专业:

计算机科学与技术

班级:

指导老师:

 

目录

 

一、摘要

二、设计要求

三、微程序控制器原理

四、总体设计

五、测试

六、结论

七、参考文献目录

八、个人总结

 

重庆大学本科学生课程设计任务书

课程设计题目

微程序设计

学院

计算机学院

专业

计算机科学与技术

年级

2008

已知参数和设计要求:

用微程序控制器实现以下指令功能:

交换指令:

xchgrmreg,addr;功能:

(reg)(addr),addr是8位二进制地址

加法指令:

addird,rs,imme;功能:

rd(rs)+imme

addmrd,rs,addr;功能:

rd(rs)+(addr)

带右移的加法运算:

addri,rj,n;ri(ri)+(rj)>>n,rj中内容不变

学生应完成的工作:

根据模型计算机的数据路径以及微程序控制器的工作原理,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。

参考实验5.3、6.1。

上机调试并输出正确结果,给出完整的设计报告。

课程设计的工作计划:

任务下达日期 年月 日

完成日期年月日

指导教师(签名)

学生(签名)

(签名)

一、

摘要

利用CPU与复杂机设计实验中所学到的实验原理以及编程思想,硬件设备,

自拟编写指令的应用程序,用微程序控制器实现了一系列的指令功能。

完成了各指令的格式以及编码设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序。

在本设计中完成了,交换指令:

XCHGRMregaddr;加法指令:

ADDIrd,rs,imme;ADDMrd,rs,addr;带右移(n位)的加法运算:

ADDNri,rj,n。

关键词:

微程序控制器原理微指令编码机器指令微代码

指令格式设计流程图

二、设计要求

要求:

用微程序控制器实现以下指令功能(各类指令至少包括一条),设计各机器指令格式以及编码,并实现各机器指令功能的微代码,根据定义的机器指令,自拟编写包含以下机器指令的应用程序。

交换指令:

xchgrmreg,addr;功能:

(reg)(addr),addr是8位二进制地址

xchgmmaddr1,addr2;功能:

(addr1)(addr2),addr是8位二进制地址

加法指令:

addird,rs,imme;功能:

rd(rs)+imme

addmrd,rs,addr;功能:

rd(rs)+(addr)

带右移的加法运算:

addri,rj,n;ri(ri)+(rj)>>n,rj中内容不变

三、微程序控制器原理

下面讲述一下模型计算机的数据格式及指令系统。

1.数据格式

模型机规定采用定点补码表示法表示数据,字长为8位,8位全用来表示数据(最高位不表示符号),数值表示范围是:

0≤X≤28-1。

2.指令设计

模型机设计三大类指令共十五条,其中包括运算类指令、控制转移类指令,数据传送类指令。

运算类指令包含三种运算,算术运算、逻辑运算和移位运算,设计有6条运算类指令,分别为:

ADD、AND、INC、SUB、OR、RR,所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。

控制转移类指令有三条HLT、JMP、BZC,用以控制程序的分支和转移,其中HLT为单字节指令,JMP和BZC为双字节指令。

数据传送类指令有IN、OUT、MOV、LDI、LAD、STA共6条,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存储器之间的数据交换,除MOV指令为单字节指令外,其余均为双字节指令。

实验中我们将指令LDI、OR、RR分别替换为ADDI、ADDM、XECHAGE、ADDN,并对流程控制做相应的修改。

3.指令格式

所有单字节指令(ADD、AND、INC、SUB、OR、RR、HLT和MOV)格式如下:

7654

32

10

OP-CODE

RS

RD

其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定:

RS或RD

选定的寄存器

00

01

10

11

R0

R1

R2

R3

 

IN和OUT的指令格式为:

7654

(1)

32

(1)

10

(1)

7-0

(2)

OP-CODE

RS

RD

P

其中括号中的1表示指令的第一字节,2表示指令的第二字节,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,P为I/O端口号,占用一个字节,系统的I/O地址译码原理见图3-1(在地址总线单元)。

图3-1I/O地址译码原理图

由于用的是地址总线的高两位进行译码,I/O地址空间被分为四个区,如表3-1所示:

表3-1I/O地址空间分配

A7A6

选定

地址空间

00

IOY0

00-3F

01

IOY1

40-7F

10

IOY2

80-BF

11

IOY3

C0-FF

系统设计五种数据寻址方式,即立即、直接、间接、变址和相对寻址,LDI指令为立即寻址,LAD、STA、JMP和BZC指令均具备直接、间接、变址和相对寻址能力。

LDI的指令格式如下,第一字节同前一样,第二字节为立即数。

7654

(1)

32

(1)

10

(1)

7-0

(2)

OP-CODE

RS

RD

data

LAD、STA、JMP和BZC指令格式如下。

 

7654

(1)

32

(1)

10

(1)

7-0

(2)

OP-CODE

RS

RD

data

其中M为寻址模式,具体见表3-2,以R2做为变址寄存器RI。

表3-2寻址方式

寻找模式M

有效地址E

地址空间

00

01

10

11

E=D

E=(D)

E=(RI)+D

E=(PC)+D

直接寻址

间接寻址

RI变址寻址

相对寻址

4.指令系统

本模型机共有15条基本指令,表3-3列出了各条指令的格式、汇编符号、指令功能。

 

表3-3指令描述

四、总体设计

本模型机的数据通路框图如图4-1所示。

图4-1数据通路框图

和前面的实验相比,复杂模型机实验指令多,寻址方式多,只用一种测试已不能满足设计要求,为此指令译码电路需要重新设计。

如图4-2所示在IR单元的INS_DEC中实现。

图4-2指令译码原理图

本实验中要用到四个通用寄存器R3…R0,而对寄存器的选择是通过指令的低四位,为此还得设计一个寄存器译码电路,在IR单元的REG_DEC(GAL16V8)中实现,如图4-3所示

图4-3寄存器译码原理图

根据机器指令系统要求,设计微程序流程图及确定微地址,如图4-4所示(替换法,前后指令略去)。

图4-4微程序流程图

按照系统建议的微指令格式,见表4-1,参照微指令流程图,将每条微指令代码化,译成二进制代码表,见表4-2,并将二进制代码表转换为联机操作的十六进制格式文件。

 

表4-1微指令格式

表4-2微指令二进制代码表

地址

十六进制

高五位

S3-S0

A字段

B字段

C字段

MA5-MA0

00

000001

000000

0000

000

000

000

000001

01

006D43

00000

0000

110

110

101

000011

03

107070

00010

0000

111

000

001

110000

30

006D49

00000

0000

110

110

101

001001

08

106009

00010

0000

110

000

000

001001

09

083001

00011

0000

011

000

000

000001

11

101012

00010

0000

001

000

000

010010

12

002413

00000

0000

010

010

000

010011

13

04B201

00000

1001

011

001

000

000001

14

106015

00010

0000

110

000

000

010101

15

101016

00010

0000

001

000

000

010110

16

002417

00000

0000

010

010

000

010111

17

04B201

00000

1001

011

001

000

000001

18

200401

00100

0000

000

010

000

000001

19

06421A

00000

1100

100

001

000

011010

1A

06C201

00000

1101

100

001

000

000001

20

106021

00010

0000

110

000

000

100001

21

101022

00010

0000

001

000

000

100010

22

200623

00100

0000

000

011

000

100011

23

003201

00000

0000

011

001

000

000001

24

002425

00000

0000

010

010

000

100101

25

04B226

00000

1001

011

001

000

100110

26

006D67

00000

0000

110

110

101

100111

27

102028

00010

0000

010

000

000

100010

28

001629

00000

0000

001

011

000

101001

29

02B201

00000

0101

011

001

000

000001

32

006D4A

00000

0000

110

110

101

001000

34

006D51

00000

0000

110

110

010

100001

36

006D54

00000

0000

110

110

101

010100

37

000198

00000

0000

000

000

110

011000

38

0001D9

00000

0000

000

000

111

011001

39

006D60

00000

0000

110

110

101

100000

3A

001624

00000

0000

001

011

000

100100

按照图4-5连接好电路,检测无误后打开电源与软件连接。

图4-5实验连线图

 

在txt文档中键入以下代码并将文件通过软件装载入器件单元中。

;////

;//课程设计(复杂模型机)实验指令文件//

;////

;//ByTangDuCO..LTD//

;////

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

;//******StartOfMainMemoryData******//

$P0020;START:

INR0,00H从IN单元读入计数初值

$P0100

;-------------------------

$P0261;ADDM;rd<-(rs)+immeRD:

R1,

$P036E

;------------------------

$P0461;ADDM;rd<-(rs)+(addr)

$P056E

;------------------------

$P0620;INR0,00H从IN单元读入计数初值

$P0700

$P0890;XCHGRM

$P096E

;-----------------------

$P0A20;INR0,00H从IN单元读入计数初值

$P0B00

$P0C21;INR1,00H从IN单元读入计数初值

$P0D00

$P0EA4;ADDN

$P0F04

;-----------------

$P10E0;JMPSTART跳转至START

$P1100

$P1250;HLT停机

$P6001;数据

$P6102

$P6203

$P6304

$P6405

$P6506

$P6607

$P6708

$P6809

$P690A

$P6A0B

$P6B0C

$P6C0D

$P6D0E

$P6E0F

;//*****EndOfMainMemoryData*****//

;//**StartOfMicroControllerData**//

$M00000001;NOP

$M01006D43;PC->AR,PC加1

$M03107070;MEM->IR,P<1>

$M04002405;RS->B

$M0504B201;A加B->RD

$M06002407;RS->B

$M07013201;A与B->RD

$M08106009;MEM->AR

$M09183001;IO->RD

$M0A106010;MEM->AR

$M0B000001;NOP

$M0C103001;MEM->RD

$M0D200601;RD->MEM

$M0E005341;A->PC

$M0F0000CB;NOP,P<3>

$M10280401;RS->IO

$M11101012;MEM->RD

$M12002413;A加1->RD

$M1304B201;RS->B

$M14106015;A减B->RD

$M15101016;RS->B

$M16002417;A或B->RD

$M1704B201;RS->B

$M18200401;A右环移->RD

$M1906421A

$M1A06C201

$M1B005341;A->PC

$M1C10101D;MEM->A

$M1D10608C;MEM->AR,P<2>

$M1E10601F;MEM->AR

$M1F101020;MEM->A

$M20106021;MEM->AR,P<2>

$M21101022

$M22200623

$M23003201

$M24002425

$M2504B226

$M26006D67

$M27102028

$M28001629;MEM->A

$M2902B201;RI->B

$M2A04E22B;A加B->AR

$M2B04928C;A加B->A,P<2>

$M2C10102D;MEM->A

$M2D002C2E;PC->B

$M2E04E22F;A加B->AR

$M2F04928C;A加B->A,P<2>

$M30001604;RD->A

$M31001606;RD->A

$M32006D48;PC->AR,PC加1

$M33006D4A;PC->AR,PC加1

$M34006D51;RS->RD

$M35000035;NOP

$M36006D54;PC->AR,PC加1

$M37000198;RD->A

$M380001D9;RD->A

$M39006D60;RD->A

$M3A001624;RD->A

$M3B000001;NOP

$M3C006D5C;PC->AR,PC加1

$M3D006D5E;PC->AR,PC加1

$M3E006D68;PC->AR,PC加1

$M3F006D6C;PC->AR,PC加1

;//**EndOfMicroControllerData**//

 

五、测试

运行:

将时序与操作台单元的开关KK1和KK3置为‘运行’档,进入软件界面,选择菜单命令“【实验】—【简单模型机】”,打开简单模型机数据通路图。

按动CON单元的总清按钮CLR,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序。

INRO(addi与addm相同)

MEMA(rd(rs)+imme)

A+BR1(rd(rs)+imme)

INR0,MEMA,R0MEM(xchgm)

AR0(xchgm:

(reg)(addr))

R0=IN,R1=IN(带循环右移加法addn)

R0A,R1B,A+BR0

05循环右移4位变成50—>R0

六、总结

通过本次课程设计,学会了综合的运用所学的计算机组成原理知识来设计并实现一个基本的模型机,并会利用该模型机进行应用程序的编写,实现一系列功能。

1.掌握了复杂模型机CPU的组成原理。

深刻掌握了CPU各个组成部分,即运算器、程序控制器、通用寄存器、指令寄存器、程序计数器和地址寄存器的工作原理和协调方式。

2.学会利用编程思想设计出清晰的流程图,深入理解各个程序段入口选择的方法。

3.掌握了指令的格式及编码,学会了编写所要实现的机器指令的微指令,并能通过设计的微程序流程图,编写出完整的指令程序。

4.培养了我们的团队合作意识。

通过团队分工合作,相互探讨、学习,终于圆满的完成了本次课程设计。

七、参考文献

《计算机组成原理实验指导书》

《计算机组成与系统结构》,李亚民编,清华大学出版社,2000年4月

《计算机组成与设计》,DavidA.Patterson编,清华大学出版社,2003年

八、

个人总结

 

组成原理课程设计总结

在圆满的完成了本次课程设计后,我受益良多。

首先,对于组成原理课程中的诸多知识点。

原来模糊的地方,现在变得清晰明了;以前有所理解的知识,有了更深刻的认识;并通过实际的联机操作,逐步观察各条指令的执行过程(指令的传输、数据的流通、主存和寄存器的数据变化、程序控制器对各部件的控制等)。

本次实验中遇到的难点有:

(1).对于如何进行设计,刚开始没有一个基本的概念,根本不知如何下手,最后在老师的提点下,有所理解,艰难的迈出了第一步;

(2).流程图的设计还相对简单,但对微指令的实现,要自行编码,着实是一项巨大的工作量;(3).加法指令较为简单,完成也比较顺利,但加法移位又成为一个难点,最后在查阅许多资料后,终于突破难点;交换指令也在数据传送是出现过小问题,但最终都一一克服。

其次,锻炼了我们的实际动手能力。

在我们日常的学习生活中,重点大多放在对理论知识的学习和理解,平时的实验课也比较少。

因此,像这种让我们有充足的时间去实战的机会是很少的。

在这些难道的机会面前,我们也是惜时如金,专注也每一分每一秒。

设计指令,绘制流程图,转换成代码,实验台连线,联机运行,观察执行过程。

每个环节,我都认真完成,争取做到最好。

最后,在实验过程中,我学会了团队合作。

面对实验中的诸多难点,我也清楚的认识到,一个人的力量是渺小的,终究是有限的。

我们的成功需要同伴的协作和共同努力。

成功不是一个的,是大家共同努力的结果,是大家智慧的结晶。

 

08级计算机科学与技术4班

20085572周洁

2011年1月8日

《计算机组成原理课程设计》个人总结

通过本次课程设计,不仅加强了理论知识的理解,更增强了我的动手实践能力;学会了如何设计一个复杂机模型,并根据其特点进行指令的设计和微程序的编写。

在此次试验中,对CPU的组成有了深入了解,并加深了CPU指令执行流程的理解,对于如何访址和从主存中取值加强了了解。

在设计指令时,微程序流程图的设计能够理解并设计,但在设计微指令时遇到了一定困难,其中对于指令的格式各字段对应功能理解不是很明白。

在尝试数次后,对照机器自带指令的二进制表进行了替换,把我们所需要实现的功能对应进去,再根据我们设计的流程图修改后续地址。

通过这种方法设计出了所需要实现功能的微指令。

其中加法指令较容易实现,带循环右移加法和交换指令实现较复杂,最后经老师指点并查阅相关资料才攻克难题。

在试验中最重要的就是锻炼了我的动手实践能力,独立连接电路,检查电路错误原因都提高了我对硬件器件的操作能力。

同时,自己设计指令也加强了独立思考能力,完成后的喜悦就是一种学以致用的成功收获。

最后,通过此次试验也让我学会了团队合作。

人各有所长,通过团队合作难题也更能被攻克。

在团队合作中要尽力完成自己的任务,再保证结果正确的同时还要向队友学习其长处,指出其不足,这样就可以称为一支合格的团队。

成果都是属于大家的。

 

08级计算机科学与技术4班

20085576孙加智

2011-1-8

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

当前位置:首页 > 自然科学 > 数学

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

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