组成原理课程设计

网上找到一个好东西,不知道是那一届前辈的,转载下。。

原网址http://hi.baidu.com/zhanggan25/blog/item/55d10b953ca8a6087af480cf.html

 

中国计量学院

 

 计算机组成原理课程实践(报告)

 

 

  题目       基本模型机的设计与设计                  

 

 

设计目的

通过对一个简单模型机的设计与实现

,对计算机的基本组成、部件的设计、部件间的

连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解

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

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

采用设备

Dais-CMH+/CMH 计算器组成原理教学实验系统一台,实验用扁平线、导线若干,电脑一台

设计内容

第一阶段:

1.熟悉系统数据通路,包括原理框图与实验箱布置

2.根据数据通路实现实验连线

3.熟悉仿真软件的使用

4.熟悉仿真软件支持的程序与微程序格式

第二阶段:

1.根据系统流程图,编写程序与微程序并调试通过

2.记录运行情况

第三阶段:

1.将ADD指令改为减操作并调试通过

2.验收,完成相应的实验报告

设计原理

部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前三位为操作码):

(2) 程序

P00    20 ;    IN      R0
P01    
40 ;    ADD    R0 ,     09H
P02    
09
P03    
60 ;     STA    0BH ,    R0
P04    0B
P05    
80 ;     OUT    BUS ,    0AH
P06    0A 
P07    A0 ;     JMP     00H
P08    
00
P09    
55 ;     DATA
P0A    AA ;     DATA

 (3) 微程序

微程序写法:

根据基本模型机系统数据通路框图以及微指令流程图,将每条微指令代码化,译成二进制代码表,在译成二进制代码时要根据基本模型机系统通路图来定哪些开关有效,根据是否有效置10对应写入微指令格式中,并将二进制代码表转换成十六进制格式文件。

M00 00 00 00 80
M01 
20 00 60 40
M02 
00 80 10 12
M03 
00 80 40 20
M04 
00 80 08 A0
M05 A0 
00 04 60
M06 
40 29 02 80
M07 
00 80 40 68
M08 
00 00 00 80
M09 
00 00 02 81
M0A 
20 00 60 C0
M0B 
20 00 60 E0
M0C 
20 00 60 C8
M0D 
20 00 60 A8
M0E 
00 00 00 80
M0F 
00 00 00 80
M10 
00 40 20 89
M11 
20 00 60 48
M12 
00 80 01 89
M13 
00 80 40 28
M14 
03 80 00 80
M15 
00 C0 20 80
M16 A0 
80 01 80
M17 
00 00 00 80
M18 
00 00 00 80



M3F 
00 00 00 80

(4) 实现情况及记录:

首先,将实验箱与电脑连接,然后打开Dais-CMH+ 计算机组成原理教学实验系统,然后输入以上的程序和微程序,按装载,如果装载成功后,通过按微单步,一步步实现微程序,观察每一步数据的变化.

实验中,PC是程序计数器,用来计程序运行的步数

执行记录情况:

执行如下操作,首先我装入的数据为03

PC=01->AR=00
RAMDB
=20->IR=20
PC
=02->AR=01
IN
=03->RO=03
RAMDB
=40->IR=40
PC
=03->AR=02
RAMDB
=00->AR=09
RAMDB
=00->DR2=00
PC
=03->DR1=03
ALU
=03->RO=03
PC
=04->AR=03
RAMDB
=60->IR=60
PC
=05->AR=04
RAMDB
=00->AR=0B
RO
=03->RAMDB=03
PC
=06->AR=05
RAMDB
=80->IR=80
PC
=07->AR=06
RAMDB
=03->AR=0B
RAMDB
=03->OUT=03
PC
=08->AR=07
RAMDB
=A0->IR=A0
PC
=09->AR=08
RAMDB
=00->PC=00

设计总结

通过紧张有序的课程设计实践,不仅让我对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与模型机的硬件结构和怎么去设计微程序等过程有了进一步的了解, 也让我觉得自己的动手能力有了很大的提高;自信心也增强了,在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。

起初第一次讲解时,由于对计算机总体结构不怎么熟悉、没认真预习、思考不够认真、对书本的知识不够扎实以及前几次实验都忘得差不多了,所以不知道从哪里开始着手,直到那天课结束也是一脸的茫然,不知道这次课程设计到底在做什么,整体上没有一点把握,心想这次课程设计肯定惨了。但在第二次讲解前,我对以前做过的实验重新看了一遍,在设计时随着老师的一次次详细的讲解及同学的不断讨论,通过自己不断思考,我渐渐的才对这次课程设计有了初步了解,此时感觉自己对这次课程设计认识有了质的提高, 自己的思路也慢慢清晰,自信心也增强了。接下来, 关于写程序、微程序(包括汇编程序和二进制代码及微程序代码)时主要考验的是你的耐心,在写微指令时一定要一步一步依照基本模型机系统数据通路框图,对每一条数据通路找到哪些开关是开放的,然后将其置10对应写入微指令格式中,然后对微指令32位格式从左往右将其转换为16进制,在这些操作中考验的就是一个人的耐心,万一哪里疏忽了,就很容易出错,以免‘一失足成千古恨’,最后测试时就很难成功,造成大量时间浪费,很多工作都将重做。所以我们在做这些小的步骤时一定要耐心。最后是验收,验收不仅是来考察你在这几天中学到了多少东西,通过验收你可以对许多知识能够重新和彻底理解,就象验收时虽然好几个问题刚开始都答不出来,通过老师的讲解,感觉自己搞懂了很多.

通过这次实践,我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时向老师和同学请教,解决问题,从而更好的掌握书本中知识。还有通过这次实践也让我懂得了:学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。因此,我会认真地对待我的每一次实验。

 

 

posted on 2010-12-27 13:23  CrazyAC  阅读(694)  评论(0)    收藏  举报