计算机组成原理课程设计

长治学院

课程设计报告

课程名称:计算机组成原理课程设计

设计题目:    研制一台性能简单的实验计算机           

    别:            计算机系                       

    业:         计算机科学与技术                        

    别:             第四组                

学生姓名:                  :   

起止日期:20##年7月4日~ 20##年7月10日  

指导教师:             

目录

1.课程设计的目的. 1

1.1计算机的硬件基本组成. 1

1.2计算机中机器指令的设计. 1

1.3计算机中机器指令的执行过程. 1

1.4微程序控制器的工作原理. 1

1.5微指令的格式设计原理. 1

2.设计要求. 1

3设计方法及过程. 3

3.1整机设计. 3

3.2设计指令系统. 5

3.3设计微指令及指令的微程序. 5

3.3.1计算微地址. 5

3.3.2指令的执行流程. 5

3.3.3编写指令的微程序. 8

3.4.编写并执行应用程序. 10

3.4.1 手工汇编. 10

3.4.2 机器汇编. 10

4心得体会. 15

5.参考文献:. 16

1.课程设计的目的

1.1计算机的硬件基本组成

计算机分为软件系统和硬件系统;软件系统又分为:系统软件和应用软件;硬件系统分为:运算器,控制器,存储器,出入设备,输出设备。

1.2计算机中机器指令的设计

计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。
1.3计算机中机器指令的执行过程

完成一条指令的功能可以分成两个主要阶段:取指和执行。
(1).取指(Fetch)——从主存储器中取出指令代码进入CPU。
(2).执行(Execution)——是将指令代码翻译成它代表的功能(被称为译码)、并发出有关控制信号实现这个功能。
1.4微程序控制器的工作原理

微程序控制器的工作原理:是依据读来的机器指令的操作码找到与之对应的一段微程序的入口地址,并按由指令具体功能所确定的次序,逐条从控制存储器中读出微指令,以“驱动”计算机各功能部件正确运行。
1.5微指令的格式设计原理


2.设计要求

研制以台性能如下的实验计算机。

(1)没有外部设备;

(2)运算器采用单累加器多寄存器结构;

(3)操作数寻址方式有:立即数寻址、寄存器寻址、直接寻址;

(4)设计由如下指令组成的指令系统,其中A为累加器A,RX为通用寄存器。将指令的二进制编码填入表中;

                             表1 指令助记符

(5)计算各指令的微地址并写出各指令的微程序;

(6)编写汇编语言程序实现如下功能:将内存某个单元的数据进行左移一位,并将结果放入00D中,进行保存;

(7)将该应用程序机器汇编、机器装入、并连续运行,察看运行结果并验证程序的正确性;

(8)将下列程序手工汇编、手工装入并运行,察看运行结果。

ORG 300

START:  MOV A1,#01

        RLC A1

        LDA 00D

 END

3设计方法及过程

3.1整机设计

                       图1  单累加器多寄存器结构

3.2设计指令系统

                             表2 指令的功能及编码

3.3设计微指令及指令的微程序

3.3.1计算微地址

微程序入口地址形成方法:

MD10 MD9 MD8 MD7 MD6 MD5 MD4 MD3 MD2 MD1 MD0

0   0   0   0   0    I7    I6      I5    I2     1   1

取指微指令放在000H处。

3.3.2指令的执行流程 

1. 直接寻址:11位操作数地址由指令第一字节低3位和第二字节8位直接给出

  Eg: LDA  ADDR  ;  (ADDR)--->A

     STA  ADDR ;  A--->(ADDR)

计算机组成原理课程设计

2.寄存器直接寻址

  指令第一字节含寄存器选择码,决定选哪个寄存器并对其操作

 Eg:MOV A,RX;(RX)--->A

计算机组成原理课程设计

3.立即数寻址

  指令第二字节8位为立即数可操作的数据

 Eg:MOV  A, RX ;  RX--->A

MOV  RX,A;  A--->RX

计算机组成原理课程设计

4.各指令的微程序中的微地址

                            表3 微指令的首地址

5.样机指令系统和指令执行流程

   表4样机指令系统和指令执行流程

3.3.3编写指令的微程序

表4 指令的微地址及微指令

M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13 M12

S0  S1  S2  S3  /CG OT  LP’OB  /   CP’CL’OI

M11 M10 M09 M08 M07 M06 M05 M04 M03 M02 M01 M00

/CN  M  XI  XO  GI  P+1 DR  MLD WR’RR’RC’WC’

3.4.编写并执行应用程序

  编写汇编程序如下:

           ORG 100

    START  MOV A,#01

       MOV R,#02

       ADD A,R

       STA 00A

END

3.4.1 手工汇编

(1)设计单累加器多寄存器结构的运算器, 开关KA、KB、KC、KR分别置左、右、右、下.开关拨向IN,整机实验。

(2)将微程序写入控存(开关拨向CM)

                            表5 手工汇编

3.4.2 机器汇编

   FD-CES系统软件是为FD-CES实验仪与PC机相连以构成高层次实验系统用的配套软件,它提供屏幕编辑,汇编,反汇编,调试等功能,该软件在Windows下运行。“FD-CES计算机组成实验仪系统软件”由“FD-CES Assember”和“FD-CES Debugger”两大功能模块组成。

 点击“FD-CES Assember” ,进入编辑环境,可编辑微指令定义文件(BIT.DEF),指令定义文件(INS.DEF),微程序(MOP*.MID)和汇编源程序(*.ASM),它提供屏幕编辑,汇编,反汇编和微程序代码的转换功能。

(1)微程序(文件后缀为.mid)

;This is an example for multi accumulator ( book page-155 ):

;get the first instrution

;000H~002H

-00876A

-

-

;SUB A,RI

;003H~006H

-368EBC

-00876A

-

-

;ADD A,RI

;007H~00AH

-9BAEBC

-00876A

-

-

;MOV A,#DATA

;013H~016H

-308FFA

-00876A

-

-

;MOV A,RI

;017H~01AH

-FA8EBC

-00876A

-

-

;MOV RI,A

;01BH~01EH

-808EBF

-00876A

-

-

;STA ADDR

;01FH~022H

-00CFFA

-800EB6

-00876A

-

;RLC A

;023H~026H

-20AFBE

-00876A

-

-

;MOV RI,DATA

;027H~02AH

-008ABF

-008B6A

-

-

;HALT

;02BH

-E0089F

-A008AB

;JC ADDR

;02FH

-000DBE

 (2)指令定义(INS.DIF)

   采用单累加器多寄存器结构(具体操作为在行首处键入“?2”)

;This is an example for multi accumulator ( book page-153): 

?2

-MOV

    2

    A,#DATA

    010000Ri

    DATA

-MOV

    4

    A,Ri

    01000100

    DATA

-MOV

    3

    Ri,A

    011000Ri

    DATA

-STA

    3

    ADDR

    01100aaa

    a7-a0

-RLC

    3

    A

    10000000

-MOV

    2

    Ri,#DATA

    100001Ri

-SUB

    4

    A,Ri

    000000Ri

-ADD

    4

    A,Ri

    000001Ri

-HALT

    1

    10100000

(3)微指令位定义文件(BIT.DEF)

定义24位长的微指令的各位意义,在调试是将显示对应位的微操作的有效操作,高电平操作,低电平操作,或无效操作。
/CN M X1 X0 S3 S2 S1 S0 OI CL CP NONE

CG OT LP OB GI P+1 DR MLD WC RC RR WR

(4)源程序(.ASM)

     定义伪指令(ORG)和 结束伪指令(END);

     程序中使用的数一律是十六进制;

     汇编源程序之后将产生目标文件(*.OBJ)和列表文件(*.LST),当调试时则需将目标文件(*.OBJ)下载至内存;

     ORG 100

     MOV A,#01

     MOV R,#02

     ADD A,R

     STA 00A

END

LST文件:

0100               1          ORG 100

 0100 FD01          2          MOV A,#01

 0102 FD02          3          MOV R,#02

 0104 C1            4          ADD A,R

 0105 600A          5          STA 00A

 0107               6          END

 (5) 微程序代码生成文件(.DAT),当调试时则需将转换后的数据文件(.DAT)下载至控存。

机器调试步骤:

1.整机框图选择

选择structure 3。

2.下载Micro Program

先将M/CM开关置于CM端,然后将微程序的代码MOP.DAT从PC机下载到实验计算机的控存中。

3.BIT.DEF

将微指令定义文件(BIT.DEF)读入。

4. Program

先将M/CM开关置于M端,然后将用户的调机程序的目标文件(1.obj)从PC机下载到实验计算机的内存中,并定义其在实验计算机内存中的起始地址(300)。

5.实验机运行

先将M/CM开关置于CM端,键入000 LOAD,然后先将M/CM开关置于M端,START AT输入起始地址(200),STEP开始单步运行程序。

4心得体会

为期一周的课程设计结束了,我收获颇多。通过本次实验,我更加清楚地理解了计算机硬件的基本组成,机器指令的设计,机器指令的执行过程;微程序控制器的工作原理,微指令的格式设计原理等概念,使得在课堂中学到的理论知识得到了实践。

课程设计过程中,当我遇到问题时,首先翻课本,向同学询问,这个过程又让我重新温故课本上设计中用到的不熟悉的知识点,使我更深刻的理解,并加深记忆。在实验开始时,自己设计指令系统,编写微程序的环节中,由于全是0,1代码,在有很多由于马虎而造成的错误,导致在后来写ASM文件时,写内存单元的地址时遇到不少错误。而后我重新返回最初设计的指令系统,微程序,找到错误加以修改,才使得程序可以运行。这个过程耽误了很多时间,是本次设计过程中比较失败之处。

     但是在些许失败的同时,我得到的远远大于失败。这次的课程设计使我懂得了理论与实际相结合是很非常重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正完成实验,从而提高自己的实际动手能力和独立思考的能力。在整个设计过程中,构思是很花费时间的。但是在组长的帮助下,我们在电路中遇到的关于编辑、编译、调试、仿真中的问题都一一解决了。当然,有时用错了方法,总是实现不了。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 

同时,通过这次的课程设计,也让我了解到计算机组成原理的重要性,以及它对我们专业的发展发挥的作用。对我们而言,知识上的收获很重要,但精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!同时在做课程设计时要能够从多方面去考虑,去研究,用多种方法去实现要求。此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,这些都让我受益非浅,今后的制作应该能够更轻松,自己也都能够解决并高质量的完成项目。

在设计过程认真学习了相关的知识,极大地拓宽了我的知识面,我感到收获不小。从开始熟悉这些知识到对整体设计的了解,再从画出整机逻辑图、设计指令系统,计算微地址,编写微程序到根据要求编写汇编语言程序以及上机调试,整个过程感觉很充实。尤其是写指令流程的时候,发现自己组成原理只是欠缺很多,有许多不懂的地方;编写指令微程序的时候,要求必须细心对照信号有效电平,编写01代码,不允许出一点差错,面对众多的01代码,我们不曾放弃,坚持到做出完美的设计。虽然遇到了这么多的困难,但当我通过自己查资料,向指导老师请教以及与同学互讨论,而设计出解决方案并成功实现时,那种成就感和满足感足以忘却所有的辛苦。

5.参考文献:

[1] 唐朔飞,[计算机组成原理],北京:高等教育出版社,20##年,1-429页

[2] 赵志英、涂时亮等,[计算机组成实验],上海:复旦大学出版社,20##年,1-208页

相关推荐