复杂模型机的组成与运行实验报告

内蒙古师范大学计算机与信息工程学院

《计算机组成原理》

课程设计报告

题目十五:复杂模型机的组成与运行

目 录

1[ 任务描述] ................................................................................................................. 2

1.1 题目名称 ...................................................................................................................................... 2 1.2 要 求 ........................................................................................................................................ 2 1.3 实验目的 ..................................................................................................................................... 2`

2 [设计设备] .................................................................................................................. 2 3 [设计原理和方法] ...................................................................................................... 2

3.1 设计原理 ...................................................................................................................................... 3 3.1.1数据格式 ................................................................................................................................... 3 3.1.2指令设计 ................................................................................................................................... 3 3.1.3指令格式 ................................................................................................................................... 3 3.1.4指令系统 ................................................................................................................................... 4 3.2 设计依据 ...................................................................................................................................... 5 3.2.1 详细设计 .................................................................................................................................. 5 3.3.2实验操作 ................................................................................................................................... 8

4 [代码清单] .................................................................................................................. 9

4.1微程序流图 ................................................................................................................................... 9 4.2 机器指令代码 ............................................................................................................................ 10 4.3 微程序代码 ................................................................................................ 错误!未定义书签。

5 [设计运行结果分析] ................................................................................................ 13

5.1 实验结果: ................................................................................................................................ 13 5.2 出错情况: ................................................................................................ 错误!未定义书签。

6 [设计小结] ................................................................................................................ 14 7[致谢] ......................................................................................................................... 15 8[参考文献] ................................................................................................................. 16 附录一:数据通路框图 ............................................................................................. 17 附录二:复杂模型机实验电路连线图 ..................................................................... 17

题目五 复杂模型机的组成与程序运行

1[ 任务描述]

1.1 题目名称:复杂模型机的组成与程序运行

1.2 要 求:基于TD-CMA 计算机组成原理教学实验系统,设计一个复杂计算机整机系

统—模型机,分析其工作原理。根据模型机的数据通路以及微程序控制器的工作原理,设计完成以下几条机器指令和相应的微程序,输入程序并运行。 START: IN R0,00H ;从IN 单元读入计数初值 LDI R1,0FH ;立即数0FH 送R1 AND R0,R1 ;得到R0 低四位 LDI R1,00H ;装入和初值00H BZC RESULT ;计数值为0 则跳转 LDI R2,60H ;读入数据始地址

LOOP: LAD R3,[RI],00H ;从MEM 读入数据送R3,变址寻址,偏移量为 00H ADD R1,R3 ;累加求和

INC RI ;变址寄存加1,指向下一数据 LDI R3,01H ;装入比较值 SUB R0,R3

BZC RESULT ;相减为0,表示求和完毕 JMP LOOP ;未完则继续

RESULT: STA 70H,R1 ;和存于MEM 的70H 单元 OUT 40H,R1 ;和在OUT 单元显示 JMP START ;跳转至START HLT ;停机

1.3 实验目的:该实验通过从端口00H读入一个计数初值,以该计数初值为基准从MEM的50H单元开始的连续的计数初值个数的累加和,最后将求得的累加和从端口40H输出显示。

2 [设计设备]

实验设备:西安唐都科教仪器公司生产的TD-CMA 实验系统一套,PC机一台,数据连接导线若干,电源。

3 [设计原理和方法]

通过已经学过的计算机组成原理知识,在TD-CMA实验系统上设计一个复杂模型机。

3.1 设计原理 3.1.1数据格式

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

3.1.2指令设计

该复杂模型机设计包含运算类指令、控制类指令、数据传输类指令三大类指令。 运算类指令仅用到了算术运算,算术运算设计有3 条运算类指令,分别为:ADD(两寄存器值加法)、INC(寄存器值自加1)、SUB(两寄存器值减法)。所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。

控制转移类指令有三条HLT(停机)、JMP(无条件跳转到指定的指令地址)、BZC(判断寄存器内容是否为0,为0则跳转到指定的指令地址),用以控制程序的分支和转移,其中HLT为单字节指令,JMP 和BZC 为双字节指令。

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

3.1.3指令格式

A、算术逻辑运算指令格式如下格式如下

其中RS为源操作数寄存器,RD为目的操作数寄存器。并且规定了用两位二进制数来表示R0、R1、R2、R3寄存器,规定其表示方式如下表所示:

B、I/O指令格式(IN和OUT指令)如下

其中括号中的1 表示指令的第一字节,2 表示指令的第二字节, RS为源寄存器,RD 为目的寄存器, I/O 端口号占用一个字节。 C、访问指令及控制转移指令格式如下:

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

b、LAD、STA、JMP 和BZC 指令格式如下表所示:

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

D、停机指令格式如下

3.1.4指令系统

本模型机共有 11 条基本指令,其中算术逻辑运算单元3条,分别为SUB、ADD、INC.控制转移指令两条,分别为JMP、BZC.输入输出指令两条,分别为IN和OUT。寻址数据转移指令两条,分别为LDI、

LAD。停机指令一条,为HALT.表3-1-2 列出了各条指令的汇编符号、指令格式及指令功能说明。详细说明见表3.1.2。

表3.1.2 指令描述

表3.1.2 指令描述

3.2 设计依据

该复杂模型机通过已经学过的计算机组成原理知识,根据提供的实验箱,设计出了相应的机器指令,根据机器指令,由各种译码电路分析各条机器指令所要完成的工作,翻译分析得到相应的多条微程序指令,由微程序控制硬件及软件完成相应的操作。其中由P(1)、P(2)、p(3)测试得到相应的微程序入口,由微指令的低六位得到微指令的后继地址,一直到执行完所有的机器指令完成相应的工作,到停机指令为止。

3.2.1 详细设计

由于复杂模型机实验的指令较多,寻址方式也较复杂,仅采用一种测试是不能够满足要求的,因此参照实验手册上的指令译码电路设计了电路图,如图2二所示:

图二 指令译码原理图

该复杂模型机实验涉及到四个通用寄存器R0、R1、R2、R3,对寄存器的选择通过对指令低四位进行测试,判断得到相应的寄存器号。如:涉及到寄存器R0,则可能在低两位或者低三、四位为0表示。该功能寄存器译码电路,在IR 单元的REG_DEC(GAL16V8)中实现。译码

电路如图三所示。

图三 寄存器译码原理图

B 微指令格式

根据机器指令系统要求,设计确定微地址。 微指令格式如下所示:

C 二进制代码表

参照微指令流程图,将每条微指令代码化,译成二进制代码表(表3.1.3),并将二进制代码表转换为联机操作时的十六进制格式文件。

表3.1.3 二进制代码表

3.3.2实验操作

A 复杂模型机系统实验连线图(见附录一)

该实验图是复杂模型机在根据设计的指令系统设计出来的(此处借鉴了实验指导书的复杂模型机的实验连线图)。 B 实验步骤

在该复杂模型机实验中,我采用的是联机写入和校验的方式。 1>根据实验连线图(见附录二)正确连接电路。 2>联机写入和校验

联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微程序和机器程序得以指定的格式写入到以TXT 为后缀的文件中,本次实验程序见代码清单,程序中分号‘;’为注释符,分号后面的内容在下载时将被忽略掉。在软件界面上可以通过单步、单拍、运行、结束等按钮执行程序。记录运行结果。

4 [代码清单] 4.1微程序流图

图1 微程序流图

微程序流程图说明了微指令执行过程中指令流和数据流的方向。能更具体地看到具体的指令流和数据流的起点和和终点。其中起点可能是PC程序计数器、AR地址寄存器、主存MEM、通用寄存器R0、R1、R2、R3、IN端口等。终点可能是AR、MEM、OUT端口、暂存器A、B等。

4.2 机器指令代码

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

; // 复杂模型机实验指令文件 // ; // //

; // By TangDu CO.,LTD // ; // //

; //*************************************** // ; //****** Start Of Main Memory Data ****** // $P 00 20 ; START: IN R0,00H 从IN 单元读入计数初值 $P 01 00

$P 02 61 ; LDI R1,0FH 立即数0FH 送R1 $P 03 0F

$P 04 14 ; AND R0,R1 得到R0 低四位 $P 05 61 ; LDI R1,00H 装入和初值00H $P 06 00

$P 07 F0 ; BZC RESULT 计数值为0 则跳转 $P 08 16

$P 09 62 ; LDI R2,60H 读入数据始地址 $P 0A 60

$P 0B CB ; LOOP: LAD R3,[RI],00H 从MEM 读入数据送R3, 变址寻址,偏移量为 00H $P 0C 00

$P 0D 0D ; ADD R1,R3 累加求和

$P 0E 72 ; INC RI 变址寄存加1,指向下一数据 $P 0F 63 ; LDI R3,01H 装入比较值 $P 10 01

$P 11 8C ; SUB R0,R3

$P 12 F0 ; BZC RESULT 相减为0,表示求和完毕 $P 13 16

$P 14 E0 ; JMP LOOP 未完则继续 $P 15 0B

$P 16 D1 ; RESULT: STA 70H,R1 和存于MEM 的70H 单元 $P 17 70

$P 18 34 ; OUT 40H,R1 和在OUT 单元显示

$P 19 40

$P 1A E0 ; JMP START 跳转至START $P 1B 00

$P 1C 50 ; HLT 停机 $P 60 01 ; 数据 $P 61 02 $P 62 03 $P 63 04 $P 64 05 $P 65 06 $P 66 07 $P 67 08 $P 68 09 $P 69 0A $P 6A 0B $P 6B 0C $P 6C 0D $P 6D 0E $P 6E 0F

; //***** End Of Main Memory Data *****// ; //** Start Of MicroController Data **// $M 00 000001 ; NOP

$M 01 006D43 ; PC->AR, PC 加1 $M 03 107070 ; MEM->IR, P $M 04 002405 ; RS->B $M 05 04B201 ; A 加B->RD $M 06 002407 ; RS->B $M 07 013201 ; A 与B->RD $M 08 106009 ; MEM->AR $M 09 183001 ; IO->RD $M 0A 106010 ; MEM->AR $M 0B 000001 ; NOP $M 0C 103001 ; MEM->RD $M 0D 200601 ; RD->MEM $M 0E 005341 ; A->PC $M 0F 0000CB ; NOP, P $M 10 280401 ; RS->IO $M 11 103001 ; MEM->RD $M 12 06B201 ; A 加1->RD $M 13 002414 ; RS->B $M 14 05B201 ; A 减B->RD $M 15 002416 ; RS->B $M 16 01B201 ; A 或B->RD $M 17 002418 ; RS->B

$M 18 02B201 ; A 右环移->RD $M 1B 005341 ; A->PC $M 1C 10101D ; MEM->A

$M 1D 10608C ; MEM->AR, P $M 1E 10601F ; MEM->AR $M 1F 101020 ; MEM->A

$M 20 10608C ; MEM->AR, P $M 28 101029 ; MEM->A $M 29 00282A ; RI->B $M 2A 04E22B ; A 加B->AR $M 2B 04928C ; A 加B->A, P $M 2C 10102D ; MEM->A $M 2D 002C2E ; PC->B $M 2E 04E22F ; A 加B->AR $M 2F 04928C ; A 加B->A, P $M 30 001604 ; RD->A $M 31 001606 ; RD->A

$M 32 006D48 ; PC->AR, PC 加1 $M 33 006D4A ; PC->AR, PC 加1 $M 34 003401 ; RS->RD $M 35 000035 ; NOP

$M 36 006D51 ; PC->AR, PC 加1 $M 37 001612 ; RD->A $M 38 001613 ; RD->A $M 39 001615 ; RD->A $M 3A 001617 ; RD->A $M 3B 000001 ; NOP

$M 3C 006D5C ; PC->AR, PC 加1 $M 3D 006D5E ; PC->AR, PC 加1 $M 3E 006D68 ; PC->AR, PC 加1 $M 3F 006D6C ; PC->AR, PC 加1

; //** End Of MicroController Data **//

5 [设计运行结果分析] 5.1 实验结果:

实验结果分析:本实验通过复杂模型机实现了从内存60H单元开始的几个数据的累加求和。 根据现有指令,在模型机上实现以下运算:从IN 单元读入一个数据,根据读入数据的低4 位值X,求1+2+…+X 的累加和,01H 到0FH 共15 个数据存于60H 到6EH 单元。

6 [设计小结]

通过课程设计,加深了我对计算机整机的综合理解,掌握微程序控制器的组成原理以及微程序的编制、调试技术及模型机设计的基本方法,强化设计能力和实验动手能力。 计算机组成原理是计算机科学与技术专业一门非常重要的课程,在计算机专业的学习中起着相当重要的作用,是掌握计算机硬件知识和计算机内部处理过程的理论基础,因此,本次课程设计是对计算机组成原理所学理论知识的一次大检阅,是集知识的综合应用和动手能力于一体的一次大型的演练。

通过本次课程设计,我对计算机的基本组成、工作原理,以及他们之间的通信方式 ,微程序控制器的设计、微指令和微程序的编制、调试以及执行等过程在理论的基础上面有了更加深刻的理解,并加深了对理论课程的理解。

在实践过程中,老师的指导,与其他同学相互协作、相互交流,加强了我们之间的团队精神,并从以下几方面得到较深体会: 1、加深了对实验原理的认识

本实验主要运用的原理是微程序控制的控制器工作原理。计算机所识别的全部指令都是由微指令组成的微程序,指令的执行是通过来执行相应的微程序来完成的。实验中将所要求的所有指令变成对应的微程序,写入控制存储器中,以后在执行用户程序的过程中,每次都先从内存储器中取出一条机器指令,其解释执行过程都是从控制存储器中读出相应的微程序,执行每条微指令的过程。

2、熟悉了微程序流程图的画法和微指令的设计方法

画微程序流程图,要先确立每条机器指令所需要的微周期数,此时要注意遵循确立的原则。即写总线的微操作不能安排在同一条微指令中;当一微指令使用T4节拍时,其后续微操作不能与它安排在同一条微指令中;互斥微操作不能安排在同一条微指令中。 3、对理论在实践中的应用有深刻的理解

这次课程设计提供了理论用于实践的机会,使我们真正弄懂了微指令的编写过程。指令的构成是设计过程中的一个难点,我们一定要真正地弄懂它,进而弄清楚指令的功能,理解整个设计的目的。

4、激发了学习的积极性

此次课程设计的过程中,弄清了以前在上理论课时的疑难问题,因此信心有了很大的增强,对计算机组成原理这门课程的兴趣也不断提高,在一定程度上增强了学习的积极性。 5、培养了我在做事方面的耐心及细心程度

由于这次设计的线路复杂度高,连接线路是一种细活,稍微不小心把一条线路搞错就全错了,经过对实验箱的具体认识,重复了5遍才把实验电路连接正确,真的感觉细心和耐心在做实验中的重要性。在以后的学习、工作中,我们都要耐心、仔细,不能忽视任何一个细小的问题,只有这样,我们才以最高的效率完成任务。想要成功,必须使自己有一颗不断地挑战困难,战胜困难的心。 6、 增强了团队合作精神

在实验过程中,遇到了一些自己不会的知识点,通过老师讲解、同学之间的相互讨论及同组人的商量,这些问题都得到了解决。这体现了团队的力量的强大。在今后的生活、学习中,这种精神将会在更多地方用到。

7[心得]

通过本次课程设计了解了简单模型机的结构及其原理,通过给定的机器指令,基于计算机组成及工作原理的基础上,确定了模型机的数据通路结构,根据机器指令和微指令的译码情况,设计了机器指令格式和微指令格式。虽然最后的结果不是很理想,未能完全将其功能实现,但对简单模型机有了一定的了解。

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

最后感谢老师的指导。

8[参考文献]

[1] 计算机组成原理与与汇编语言程序设计(第二版) 徐洁 俸远祯主编 电子工业出版社,2007年8月

[2] 计算机组成原理与系统结构实验教程 西安唐都科教仪器开发有限责任公司编著并出版,2007年10月

[3] 计算机组成原理 白中英主编 科学出版社出版 2008年1月

附录一:数据通路框图

附录二:复杂模型机实验电路连线图


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn