计算机组成原理实验报告复杂模型机的组成与运行.docx
《计算机组成原理实验报告复杂模型机的组成与运行.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告复杂模型机的组成与运行.docx(20页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验报告复杂模型机的组成与运行
内蒙古师范大学计算机与信息工程学院
《计算机组成原理》
课程设计报告
题目五:
复杂模型机的组成与运行
姓名
学号
班级
08计算机科学与技术汉师范班
指导教师
职称
日期
2011年7月15日
题目五复杂模型机的组成与程序运行
1[任务描述]
1.1题目名称:
复杂模型机的组成与程序运行
1.2要求:
基于TD-CMA计算机组成原理教学实验系统,设计一个复杂计算机整机系统—模型机,分析其工作原理。
根据模型机的数据通路以及微程序控制器的工作原理,设计完成以下几条机器指令和相应的微程序,输入程序并运行。
INR0,00H;从端口00H读入计数初值到R0
LDIR2,50H;读入数据始地址
LDIR1,00H;累加和初值00H
START:
LAD10,00H,R3;从MEM读入数据送R3,变址寻址,偏移量为00H
ADDR1,R3;累加求和
INCRI;变址寄存加1,指向下一数据
LDIR3,01H;送立即数入R3
SUBR0,R3;R0-R3->R0,与上一条指令一起实现DECR0
BZCRESULT;为0则跳转
JMPSTART;跳转至START
RESULT:
OUT40H,R1;和在OUT单元显示
HLT;停机
50H、51H、52H、53H、54H单元内容分别为02H、03H、04H、05H、06H。
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、算术逻辑运算指令格式如下格式如下
7654
32
10
操作码
RS
RD
其中RS为源操作数寄存器,RD为目的操作数寄存器。
并且规定了用两位二进制数来表示R0、R1、R2、R3寄存器,规定其表示方式如下表所示:
RS或RD
对应的寄存器
00
R0
01
R1
10
R2
11
R3
B、I/O指令格式(IN和OUT指令)如下
7654
(1)
32
(1)
10
(1)
76543210
(2)
操作码
RS
RD
I/O端口号
其中括号中的1表示指令的第一字节,2表示指令的第二字节,RS为源寄存器,RD为目的寄存器,I/O端口号占用一个字节。
C、访问指令及控制转移指令格式如下:
a、LDI的指令格式如下,第一字节同前一样,第二字节为立即数。
7654
(1)
32
(1)
10
(1)
76543210
(2)
操作码
RS
RD
Data
b、LAD、STA、JMP和BZC指令格式如下表所示:
7654
(1)
32
(1)
10
(1)
76543210
(2)
操作码
M
RD
D
其中M为寻址模式,具体见表3-1-1所示,以R2做为变址寄存器RI。
表3.1.1寻址模式说明表
寻址模式M
有效地址E
说明
00
E=D
直接寻址
01
E=(D)
间接寻址
10
E=(RI)+D
RI变址寻址
11
E=(PC)+D
相对寻址
D、停机指令格式如下
7654
32
10
操作码
**
**
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微指令格式
根据机器指令系统要求,设计确定微地址。
微指令格式如下所示:
23
22
21
20
19
18-15
14-12
11-9
8-6
5-0
M32
CN
WR
RD
IOM
S3-S0
A字段
B字段
C字段
UA5-UA0
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机器指令代码
;//*****StartOfMainMemoryData*****//
;//**其中地址和机器指令均为十六进制**//
;//地址机器指令助记符功能描述说明
$P0020;INR0,00H从IN单元读入计数初值
$P0100
$P0262;LDIR2,50H立即数50H送R1
$P0350
$P0461;LDIR1,00H装入和初值00H
$P0500
$P06CB;START:
LAD10,00H,R3从MEM读入数据送R3,变址寻址,偏移量为00H
$P0700
$P080D;ADDR1,R3累加求和
$P0972;INCRI变址寄存加1,指向下一数据
$P0A63;LDIR3,01H送立即数01H入R3
$P0B01
$P0C8C;SUBR0,R3<=====>DECR0,R0-R3->R0
$P0DF0;BZCRESULT为0跳转到RESULT处。
$P0E11;
$P0FE0;JMPSTART无条件跳转到START处。
$P1006
$P1134;RESULT:
OUT40H,R1从端口40将所求得的累加和输出显示
$P1240
$P1350;HLT停机
$P5002;数据
$P5103
$P5204
$P5305
$P5406
$P5507
;//*****EndOfMainMemoryData*****//
4.3微程序代码
;//**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
$M11103001;MEM->RD
$M1206B201;A加1->RD
$M13002414;RS->B
$M1405B201;A减B->RD
$M15002416;RS->B
$M1601B201;A或B->RD
$M17002418;RS->B
$M1802B201;A右环移->RD
$M1B005341;A->PC
$M1C10101D;MEM->A
$M1D10608C;MEM->AR,P<2>
$M1E10601F;MEM->AR
$M1F101020;MEM->A
$M2010608C;MEM->AR,P<2>
$M28101029;MEM->A
$M2900282A;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
$M34003401;RS->RD
$M35000035;NOP
$M36006D51;PC->AR,PC加1
$M37001612;RD->A
$M38001613;RD->A
$M39001615;RD->A
$M3A001617;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**//
5[设计运行结果分析]
5.1实验结果:
实验结果分析:
本实验通过复杂模型机实现了从内存50H单元开始的几个数据的累加求和。
从IN单元的OOH端口输入数4,实现了从50H单元开始的2、3、4、5的求和,求得的累加和的结果在OUT单元的40H端口输出,输出结果为“0EH”.结果与用笔在所编程序上得结果相符。
该结果验证了程序的正确性。
6[设计小结]
通过课程设计,加深了我对计算机整机的综合理解,掌握微程序控制器的组成原理以及微程序的编制、调试技术及模型机设计的基本方法,强化设计能力和实验动手能力。
计算机组成原理是计算机科学与技术专业一门非常重要的课程,在计算机专业的学习中起着相当重要的作用,是掌握计算机硬件知识和计算机内部处理过程的理论基础,因此,本次课程设计是对计算机组成原理所学理论知识的一次大检阅,是集知识的综合应用和动手能力于一体的一次大型的演练。
通过本次课程设计,我对计算机的基本组成、工作原理,以及他们之间的通信方式,微程序控制器的设计、微指令和微程序的编制、调试以及执行等过程在理论的基础上面有了更加深刻的理解,并加深了对理论课程的理解。
在实践过程中,老师的指导,与其他同学相互协作、相互交流,加强了我们之间的团队精神,并从以下几方面得到较深体会:
1、加深了对实验原理的认识
本实验主要运用的原理是微程序控制的控制器工作原理。
计算机所识别的全部指令都是由微指令组成的微程序,指令的执行是通过来执行相应的微程序来完成的。
实验中将所要求的所有指令变成对应的微程序,写入控制存储器中,以后在执行用户程序的过程中,每次都先从内存储器中取出一条机器指令,其解释执行过程都是从控制存储器中读出相应的微程序,执行每条微指令的过程。
2、熟悉了微程序流程图的画法和微指令的设计方法
画微程序流程图,要先确立每条机器指令所需要的微周期数,此时要注意遵循确立的原则。
即写总线的微操作不能安排在同一条微指令中;当一微指令使用T4节拍时,其后续微操作不能与它安排在同一条微指令中;互斥微操作不能安排在同一条微指令中。
3、对理论在实践中的应用有深刻的理解
这次课程设计提供了理论用于实践的机会,使我们真正弄懂了微指令的编写过程。
指令的构成是设计过程中的一个难点,我们一定要真正地弄懂它,进而弄清楚指令的功能,理解整个设计的目的。
4、激发了学习的积极性
此次课程设计的过程中,弄清了以前在上理论课时的疑难问题,因此信心有了很大的增强,对计算机组成原理这门课程的兴趣也不断提高,在一定程度上增强了学习的积极性。
5、培养了我在做事方面的耐心及细心程度
由于这次设计的线路复杂度高,连接线路是一种细活,稍微不小心把一条线路搞错就全错了,经过对实验箱的具体认识,重复了5遍才把实验电路连接正确,真的感觉细心和耐心在做实验中的重要性。
在以后的学习、工作中,我们都要耐心、仔细,不能忽视任何一个细小的问题,只有这样,我们才以最高的效率完成任务。
想要成功,必须使自己有一颗不断地挑战困难,战胜困难的心。
6、增强了团队合作精神
在实验过程中,遇到了一些自己不会的知识点,通过老师讲解、同学之间的相互讨论及同组人的商量,这些问题都得到了解决。
这体现了团队的力量的强大。
在今后的生活、学习中,这种精神将会在更多地方用到。
7[致谢]
在实验过程中,孟老师耐心地给我们讲解了该实验的过程,在实验过程中遇到的各种问题老师都耐心地讲解,使我更进一步了解了复杂模型机的工作流程,特别是老师在p<1>、p<2>、P<3>测试及一些译码电路的分析上的讲解,使我拓宽了知识面。
在此,向侯老师的帮助和、知识的更深层次的讲解及耐心的指导表示我最真诚的感谢
8[参考文献]
[1]计算机组成原理与与汇编语言程序设计(第二版)徐洁俸远祯主编电子工业出版社,2007年8月
[2]计算机组成原理与系统结构实验教程西安唐都科教仪器开发有限责任公司编著并出版,2007年10月
[3]计算机组成原理白中英主编科学出版社出版2008年1月
附录一:
数据通路框图
附录二:
复杂模型机实验电路连线图