计算机组成原理课程设计微程序设计论文.doc

上传人:精*** 文档编号:1160760 上传时间:2024-12-28 格式:DOC 页数:20 大小:1.12MB
下载 相关 举报
计算机组成原理课程设计微程序设计论文.doc_第1页
第1页 / 共20页
计算机组成原理课程设计微程序设计论文.doc_第2页
第2页 / 共20页
计算机组成原理课程设计微程序设计论文.doc_第3页
第3页 / 共20页
计算机组成原理课程设计微程序设计论文.doc_第4页
第4页 / 共20页
计算机组成原理课程设计微程序设计论文.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、张 干 余桓桓 (微程序设计) 目录一、 摘要 2二、 微程序控制原理 22.1 设计要求 22.2 设计原理 22.3 设计思想 5三、总体设计 6 3.1 数据格式 6 3.2 机器指令设计 6 3.3 指令系统 7 3.4 具体设计分析 7四、实验步骤 94.1 接线并装载程序 94.2 联机运行程序 104.3 实验过程微指令代码 18五、常见问题和解决方法 19六、个人总结 19七、参考文献 21一、 摘要利用CPU与复杂模型机设计实验中所学到的实验原理以及编程思想,硬件设备,结合所学知识,自拟编写指令的应用程序,用微程序控制器实现了一系列的指令功能。完成了各指令的格式以及编码的设计

2、,实现了各机器指令微代码,形成具有一定功能的完整的应用程序。在本设计中完成了基本的数据输入输出(IN,OUT),带右移的加法运算(ADD R0 , R2 , N; Ri (R0)+(R2)N ,R2中内容不变),利用堆栈空递减的设计思想实现了子程序调用指令(CALL)和返回指令(RET),采用寄存器间接寻址方式实现了寄存器与内存单元内容的交换(SWPB Ri, Rj), 此外还利用了寄存器间接相对寻址方式实现了装载指令(LDR Ri,Rj,IMME)。 关键词:微程序控制器原理 微指令编码寻址方式 设计流程图二、微程序控制原理2.1 设计要求用微程序控制器实现以下指令功能,设计各指令格式以及编

3、码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序子程序调用:CALL addr ;要求堆栈“空递减”,addr 是8 位二进制地址子程序返回:RET交换指令: SWPB Ri,Rj ;将寄存器Rj 指定的存储单元的内容传送到Ri中,并将Ri 的内容写入到该内存单元。i 不等于j。装载指令:LDR Ri,Rj,IMME ;将存储单元Rj+IMME 指定的存储单元的内容,装载到寄存器Ri ,IMME 是8 位二进制立即数带右移的加法运算: ADD Ri , Rj , N ; Ri(Ri)+(Rj)N ,先右移再相加,N=0-72.2 设计原理 微程序控制器的基本任务是

4、完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理图框如下图所示:图1 微程序控制器原理图框在本设计中控制存储器采用3 片2816 的E2PROM,具有掉电保护功能,微命令寄存器18 位,用两片8D 触发器(273)和一片4D(175)触发器组成。微地址寄存器共6

5、位,用三片正沿触发的双D 触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。本实验平台提供的微指令字长为24位,控制位顺序如下表:表1 微指令格式其中MA5MA0 为6 位的后续微地址,A、B、C 为三个译码字段,分别由三个控制位译码出多位。C 字段中的P为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图2所

6、示,图中I7I2 为指令寄存器的第72 位输出,SE5SE0 为微控器单元微地址锁存器的强置端输出,指令译码逻辑在IR 单元的INS_DEC(GAL20V8)中实现。图2 指令译码原理图S3S0的具体功能如下: 表2 运算器逻辑功能表2.3 设计思想分析设计要求中的五条指令可以画出如下微指令流程图:NOP39383635340103SWPBLDRRETLDIHLTOUTINCALLRS-ARPC-AR,PC加1PC-AR,PC加1RS-RDPC-AR,PC加1PC-AR,PC加1PC-AR,PC加1RS-AADD00PM-IRPC-AR,PC加1NOP3730313332RS-ANOP2D26

7、RS-BM-ARS-ARRS-ARA+1-RSM-RDRS-IOM-ARIO-RDM-ARM-BM-PCM-B12A-RDRD-MM-A29110A08PC-AR,PC加10101202E2A2710091321012F2B28220101B-PCPC-MA-1-RSRS-AA+B-RDRD-AAB-B1614A+B-AR2CM-RD010101231524250101 图3 微指令流程图 三、总体设计3.1 数据格式 模型机规定采用定点补码表示法表示数据,字长为位,8 位全用来表示数据(最高位不表示符号),数值表示范围是: 0X281。3.2 机器指令设计除了设计要求的五条指令(CALL,R

8、ET,ADD,LDR,SWPB)外,为了能够构成一段简短的汇编程序,我们增加了五条指令(IN,OUT,LDI,MOV,HLT)。ADD为运算类指令,SWPB、LDR、IN、OUT、LDI、MOV为数据传送类指令,CALL、RET、HLT为控制转移指令。在这些指令中RET,SWPB,MOV,HLT为单字节指令,其余的均为双字节指令。所有单字节指令格式如图4 单字节指令格式其中,OP-CODE 为操作码,RS 为源寄存器,RD 为目的寄存器,并规定:图5 寄存器选择方式IN和OUT的指令格式如下: 图6 IN和OUT的指令格式其中括号中的1 表示指令的第一字节,2 表示指令的第二字节,OP-COD

9、E 为操作码,RS 为源寄存器,RD 为目的寄存器,P 为I/O 端口号,占用一个字节。LDI和LDR指令格式如下:第一字节同前一样,第二字节为立即数。图7 LDI和LDR指令格式CALL指令格式如下:第一字节同前一样,第二字节为子程序入口地址。图8 CALL指令格式3.3 指令系统 本实验共安排了十条基本指令,下表列出了各指令的格式,汇编符号,功能表3 模型机的指令系统3.4 具体设计分析根据微指令的设计流程图,结合所学知识写出微指令的二进制代码表如下:微地址十六进制高五位S3-S0A字段B字段C字段UA5-UA00000 00 0100000000000000000000 00010100

10、 6D 43000000000 11011010100 00110310 70 7000010000011100000111 00000810 60 0900010000011000000000 10010918 30 0100011000001100000000 00010A10 60 1000010000011000000001 00001028 04 0100101000000001000000 00011110 30 0100010 000001100000000 00011200 6D 5300000000011011010101 00111310 20 14000100000010

11、00000001 01001402 A2 1500000010101000100000 00011500 16 1600000000000101100001 01101604 B2 01000001101011001 00000 00012010 20 2100010000001000000010 000121 00 64 2200000000011001000010 00102200 14 2300000 000000101000010 00112306 32 2400000110001100100010 010024 20 0C 2500100000000011000010 0101250

12、0 D3 4100000000110100110100 00012606 B2 2700000110101100100010 01112700 64 2800000000011001000010 10002810 51 4100010000010100010100 00012910 10 2A00010000000100000010 1010 2A00 24 2B 00000000001001000010 10112B04 E2 2C00000100111000100010 11002C10 30 0100010000001100000000 00012D 10 10 2E0001000000

13、0100000010 11102E20 06 2F00100000000001100010 11112F 00 32 0100000 000001100100000 00013100 6D 6000000000011011010110 00003200 6D 4800000000011011010110 10003300 6D 4A00000000011011010110 10103400 34 0100000000001101000000 00013500 00 3500000000000000000011 01013600 6D 51 00000000011011010101 000137

14、00 14 2600000000000101000010 01103800 6D 6900000000011011010110 10013900 64 2D000000000110 01000010 1101 表4 微指令二进制代码表在本模型机中,共有4个通用寄存器(R0,R1,R2,R3),在实现CALL指令的时候需要建立堆栈,就需要一个堆栈指针SP,需要占用一个通用寄存器(本设计中占用R1)。根据现有指令在模型机上实现以下运算:在主存中60H处建立一个堆栈,采用堆栈空递减方式,用R1作为堆栈指针,从IN单元输入一个数,再将04H右移两位,再与R0相加并送到R0。在将R0送到显示出来。根据要

15、求可以得到如下程序,地址和内容均为二进制数。地址(H) 内容(H) 助记符 说明00 20 00 IN R0,00H 从IN单元读入一个数02 62 20 LDI R2,20H 将20H送给R204 61 60 LDI R1,60H 将60H送给R106 15 0D CALL PM 调用子程序PM08 08 02 ADD R0,R2 02H 将R2右移两位,再将R0与R2 0A 30 40 OUT 40H,R0 将R0的内容在显示单元显示出来0C 50 HLT 停机0D 8B 20 PM: LDR R3,R2,20H 将R2+20H的主存中的内容送到R30F 9E SWPB R2,R3 将R2

16、和R3对应的主存中的内容交换10 75 RET 子程序结束 ;数据段40 4141 04四、实验步骤41 接线并装载程序4.11 按图9连接实验电路图,仔细检查连线后打开实验箱电源。4.12 联机写入实验程序并进行校验。并将机器指令和微指令装载到指定的存储单元中。图9 实验电路接线图 4.2联机运行程序过程 为了检验指令的正确性,将这些指令组合成一段小汇编程序,通过联机运行与调试来检验设计的正确性,联机软件的主要步骤的运行图像如下:图10为LDI指令的主要执行过程:图10 MEM-R1图11和图12为SWPB R2,R3的主要执行过程:图11 R3-AR图12 MEM-A图13、图14和图15

17、为CALL指令的主要执行过程:图13 MEM-B图14 R1-AR图15 B-PC图16和图17为LDR R3,R2,20H的主要执行过程图像:图16 A+B-AR图17 MEM -R3图18和图19为RET指令的执行过程图像:图18 R1-1-R1图19 R1-AR图20、图21和图22为ADD R0,R2 02H指令主要执行过程:图20 MEM-B图21 AB-B图22 A+B-R0图23 为OUT指令执行的主要过程:图23 OUT 40H,R04.3 实验过程微指令代码$M 00 000001 ;NOP$M 01 006D43 ;PC-AR PC+1$M 03 107070 ;MEM-A

18、R P$M 08 106009 ;MEM-AR$M 09 183001 ;IO-RD$M 0A 106010 ;MEM-AR$M 10 280401 ;RS-IO$M 11 103001 ;MEM-RD$M 12 006D53 ;PC-AR PC+1$M 13 102014 ;MEM-B$M 14 02A215 ;AB-B$M 15 001616 ;RD-A$M 16 04B201 ;A+B-RD$M 20 102021 ;MEM-B$M 21 006422 ;RS-AR$M 22 001423 ;RS-A$M 23 063224 ;A-1-RS$M 24 200C25 ;PC-MEM$M 2

19、5 00D341 ;B-PC$M 26 06B227 ;A+1-RS$M 27 006428 ;RS-AR$M 28 105141 ;MEM-PC$M 29 10102A ;MEM-A$M 2A 00242B ;RS-B$M 2B 04E22C ;A+B-AR$M 2C 103001 ;MEM-RD$M 2D 10102E ;MEM-A$M 2E 20062F ;RD-MEM$M 2F 003201 ;A-RD$M 30 001412 ;RS-A$M 31 006D60 ;PC-AR PC+1$M 32 006D48 ;PC-AR PC+1$M 33 006D4A ;PC-AR PC+1$M

20、34 003401 ;RS-RD$M 35 000035 ;HTL$M 36 006D51 ;PC-AR PC+1$M 37 001426 ;RS-A$M 38 006D69 ;PC-AR PC+1$M 39 00642D ;RS-AR从联机软件与实验平台相结合来看,我们成功的实现了设计要求的五条指令。实验结果与预期的结果相一致。五、常见问题和解决方法1.刚开始在处理CALL指令在主存单元建立了一个空递减的堆栈的时候。因为通用寄存器太少,原打算将主存中的一个指定单元作为堆栈指针SP,但是,这在实现起来需要多次访问主存。可是,在指令设计过程中发现执行这些指令只需要三个通用寄存器,因此,可以将其中

21、一个通用寄存器用来作为堆栈指针SP,这样实现起来也比较容易。2.在设计微指令过程中,每一条微指令都包含24位,对于微指令后六位属于后继地址,虽然后继地址一般可以任意选择,但是为了有条理并且为了保证地址不冲突,可以尽量采取顺序编址,这样编址也跟便于人们的理解。3.这个问题也是在平时实验课上最常见的问题,电路的接线问题,由于需要连接的线比较多,所以要想不出错是不容易的。比如:线路接反,错位,少接等情况。在这些情况下寻找出错原因是很困难的,但是,针对本复杂模型机,可以通过联机软件进行连线检测,可以很快检查有没有出错以及出错原因。六、个人总结通过本次课程设计是对平时的计算机组成原理实验的一个升华,这短

22、短的几天时间里,为了设计出质量较高的机器指令与微指令,我们通过查资料,反复看实验指导书,几乎动用了以前在实验课上学到的所有知识。不仅锻炼了我的思维能力,更锻炼了我的动手实践能力。在设计微指令的过程中,由于每条微指令都有24位二进制位组成,每一位都代表不同的功能。为了尽可能在指令设计过程中少出问题,我们花了很大一部分时间去弄清楚每一位每个字段的不同功能。为了设计更有效的机器指令,我们又花了很多时间去弄懂了机器指令如何译码成微指令,它们之间靠什么联系起来,以及在机器指令中如何使用寄存器。也正是因为如此,使得我对CPU的工作原理有了更深一步的理解。并能够将所学的计算机组成原理知识融会贯通。对机器代码

23、,微指令代码在机器内部的运行有了进一步的理解。对复杂模型机的整个流程也有了相当熟练的掌握。在这次设计中,我还发现要想在程序的设计过程中少走弯路,在设计代码前设计流程图是非常重要的。流程图是我们设计思路的体现,通过流程图我们可以发现设计中存在的优点与不足并且还便于我们修改,而且通过流程图写出的程序逻辑性很强。通过这次课程设计,我进一步巩固了以前学到的知识,同时也学到了很多新的知识,但更为重要的是我看到了自身在学习过程中存在的不足,尤其是对硬件方面,例如:在本模型机上我仍然不太理解译码原理,同时机器指令中的二进制代码是如何对应译码电路的I7I2,同时对于译码原理图的化简都存在困难,可以看出这些都是对以前所学知识掌握牢固的原因。 七、参考文献计算机组成原理实验指导书,重庆大学计算机学院编计算机组成原理,蒋本珊编,清华大学出版社,2004年3月计算机组织与结构,William Stallings编,高等教育出版社,2001年8月计算机组成与系统结构,李亚民编,清华大学出版社,2000年4月、 20 / 20

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922