1、 摘要 本次计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程设计,编写指令的应用程序,用微程序控制器实现一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了相关指令的格式以及编码的设计,实现了机器指令微代码,完成具有一定功能的程序。在基本模型机的基础上构建一组能实现输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移指令等8个功能的指令,这些指令的助记符不得与指导书上相同。指令包括立即数寻址、寄存器直接寻址、存储器直接寻址三种寻址方式。利用新构建的指令系统编程,实现交换两存储单元数据的功能。关键字:指令系统,寻址方式,算术逻辑目录摘要1目录
2、21系统分析41.1 设计背景41.2 设计目标62系统设计72.1 模型机的指令系统设计72.2 模型机的微指令设计82.3实现除法功能的程序设计113系统实现134总结165参考文献171系统分析1.1 设计背景一台计算机所能执行的各种指令集合称为指令系统或指令集。一台特定的计算机只能执行自己指令系统中的指令。因此,指令系统就是计算机的机器语言。指令系统表征着计算机的基本功能和使用属性,它是计算机系统设计中的核心问题。指令系统的设计主要括指令功能、操作类型的设计,寻址方式和指令格式的设计。 计算机的性能与它所设置的指令系统有很大的关系,指令系统反映了计算机的主要属性,而指令系统的设置又与机
3、器的硬件结构密切相关。指令是计算机执行某种操作的命令,而指令系统是一台计算机中所有机器指令的集合。通常性能较好的计算机都设置有功能齐全、通用性强、指令丰富的指令系统,而指令功能的实现需要复杂的硬件结构来支持。 本课程设计的模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能
4、,存储器的读写。简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。本设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的24位控制位分别介绍如下:XRD:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM写信号EMRD:程序存储器EM读信号PCOE:将程序计数器PC的值送到地址总线ABUS上EMEN:将程序存储器EM与数据总线DBU
5、S接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUSIREN:将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPCEINT:中断返回时清除中断响应和中断请求标志,便于下次中断。ELP:PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。MAREN:将数据总线DBUS上数据打入地址寄存器MARMAROE:将地址寄存器MAR的值送到地址总线ABUS上OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里STEN:将数据总线DBUS上数据存到堆栈寄存器里RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定RWR:写寄
6、存器组R0-R3,寄存器R?的选择由指令的最低两位决定CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位FEN:将标志位存入ALU内部的标志寄存器X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1WEN:将数据总线DBUS的值打入工作寄存器W中AEN:将数据总线DBUS的值打入累加器A中S2,S1,S0三位组合决定ALU做何种运算,见表2表1 选择具体的寄存器X2 X1 X0输出寄存器0 0 0IN_OE 外部输入门0 0 1IA_OE 中断向量0 1 0ST_OE 堆栈寄存器0 1 1PC_OE PC寄存器1 0 0D_OE 直通门1 0 1R_OE 右
7、移门1 1 0L_OE 左移门1 1 1没有输出表2 ALU运算S2 S1 S0功能0 0 0A+W 加0 0 1A-W 减0 1 0A|W 或0 1 1A & W 与1 0 0A+W+C 带进位加1 0 1A-W-C 带进位减1 1 0A A取反1 1 1A 输出A1.2 设计目标本课程设计要求实现机器指令:MOV(传送)、OUTE(输出)、 AND(逻辑与)、ORE(逻辑或)、ADDE(不带进位算术加)、ADDCE(带进位算术加)、SUBE(不带进位算术减)、JCE、JZE、JMPE(转移指令)。并且要包括立即数寻址,寄存器直接寻址,存储器直接寻址三种寻址方式。最后要在设计的指令系统基础上
8、,编写程序实现除法功能。2系统设计2.1 模型机的指令系统设计根据设计要求,设计出的指令要包括传送、逻辑与、逻辑或、算术加、减运算、输入、输出、转移这八种指令,且要运用立即数寻址、寄存器直接寻址、存储器直接寻址三种寻址方式。由此设计出新的指令系统,如下截图 图2.1新的指令系统2.2 模型机的微指令设计(1)微指令的24位控制位如下:(2) 设计出的微指令集如下表:助记符 状态微地址微程序数据输出数据打入地址输出运算器uPCPC_FETCH_T000CBFFFF指令寄存器IRPC输出A输出写入101FFFFFFA输出102FFFFFFA输出103FFFFFFA输出1ADD A,#*T204C7
9、FFEF存储器值EM寄存器WA输出11T105FFFE90ALU直通寄存器A,标志位C,ZPC输出加运算1T006CBFFFF指令寄存器IRPC输出A输出写入107FFFFFFA输出1SUB A,#*T208C7FFEF存储器值EM寄存器WPC输出A输出11T109FFFE91ALU直通寄存器A 标志位C,Z减运算1T00ACBFFFF指令寄存器IRPC输出A输出写入10BFFFFFFA输出1AND R,#*T30CC7FFEFA输出1T20DFFF7F7指令寄存器IRPC输出A输出写入1T10EFFFE93A输出1T00FCBFFFFA输出1OUTT110FFDF9FALU直通用户OUTA输
10、出1T011CBFFFF指令寄存器IRPC输出A输出写入112FFFFFFA输出113FFFFFFA输出1JMP *T114C6FFFF存储器值EM寄存器PCPC输出A输出1写入T015CBFFFF指令寄存器IRPC输出A输出写入116FFFFFFA输出117FFFFFFA输出1MOV R?,#*T118C7FBFF存储器值EM寄存器R?PC输出A输出11T019CBFFFF指令寄存器IRPC输出A输出写入11AFFFFFFA输出11BFFFFFFA输出1JZ *T11CC6FFFF存储器值EM寄存器PCPC输出A输出1写入T01DCBFFFF指令寄存器IRPC输出A输出写入11FFFFFFF
11、A输出120FFFFFFA输出1RR R?T121FFF7F7存储器值EM寄存器PCPC输出A输出1写入T022FFF9BF指令寄存器IRPC输出A输出写入123CBFFFFA输出124FFFFFFA输出1MOV A,#*25C7FFF726CBFFFF27FFFFFF28FFFFFFAND A,#*29C7SUB R1,AFFEF2AFFFE932BCBFFFF2CFFFFFFMOV A,R2DFFF7F72FCBFFFF30FFFFFF31FFFFFFEND32CBFFFF33FFFFFF34FFFFFF35FFFFFF2.3实现除法功能的程序设计程序设计思路:先将两个立即数存入寄存器r0
12、(被除数)和r1(除数),然后判断除数是否为零,是则输出结果为0,结束程序,否则继续第二步,将除数右移一位,再检查除数是否为零,是则输出结果r0中的数结束,否则进入第三步,将除数右移然后将被除数右移,检查被除数是否为零,是则输出0结束,否则调到第三步继续运行。判断r1是否为0发#*r0#*r1除数右移结束除数是否为0被除数,除数右移被除数是否为0输出r0源程序截图如下:3系统实现1.按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,生成.mac文件和.mic文件。2.在DJ-CPT816实验软件中新建.asm文件,输入程序:MOV A,#00H MOV R0,#11H M
13、OV R1,#07H AND R1,#01H JZ S1 ADD A,#01 S1:AND R1,0FH JZ S2 RR R1 AND R1,0FH JZ S3 S5:RR R1 RR R0 AND R0,0FH JZ S2 AND R1,0FH JZ S4 JMP S5 S2:MOV A,#00H JMP E S3:MOV A,R0 JMP E S4:AND A,0FH JZ S6 MOV A,R0 SUB A,#01 JMP E S6:MOV A,R0 E:OUT A END 3. 将程序另存为.asm文件,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,如图3.1 图3.1程
14、序、机器码、反汇编指令4.实验结果:使用DJ-CPTH运行此程序后得出了正确的结果,故实现了设计要求。15安徽理工大学课程设计(论文)4总结通过本次课程设计,我巩固了所学的计算机组成原理中有关指令系统、总线系统等方面的知识,进一步加深了对计算机组成原理实验仪的使用方法的了解,能够更加熟练的使用计算机组成原理实验仪,同时还让我复习并运用了算法设计与分析和汇编语言的内容,此次课程设计进一步巩固和提高了自己的基础知识。通过这次课程设计,既锻炼了我的动手能力,又锻炼了我的动脑能力,使我理论联系实际,使所学的知识不再枯燥无味,将所学的知识运用到实际,让我掌握这些知识更牢固。在查找资料的同时也锻炼了自己的
15、自学能力,还提高了获取有用信息的能力。 同时课程设计过程中与组内成员的积极合作培养了自己的团队意识,让自己再一次认识到了团队合作的重要性。此次做课程设计也为自己积累了必要的经验,做课程设计或者以后做项目一定在最开始有个大体的设计思路,按照设计思路一步步的做,没有设计思路盲目做的话,会导致设计混乱,浪费大量时间。而且在做课程设计的过程中需要查阅大量资料,积极与组员合作,选择方法时要严谨,如果遇到错误要尽快寻求到解决的办法,以防止影响以后的设计。 本次课程设计对我来说是一次很好的实践机会,锻炼了自己的动手能力,让我能够过活学活用知识,在实践中加深对所学课程的理解,让我充分认识到了理论与实践的重要性。在以后的学习与生活中,要不断的把课本所学的知识与生活实际相结合,让自己知道自己所学知识的用处以及发现有待加强和学习的地方。总之,此次课程设计,自己获益匪浅。5参考文献1. 白中英.计算机组成原理(第二版).北京:科学出版社,19982. 平玲娣,潘雪增.计算机组成与设计浙江大学出版社,出版日期:20043. 裘雪红,李博成,车向全等.计算机组成与系统结构.北京:高等教育出版社,20094.DJ-CPTH超强型计算机组成原理与系统结构实验指导书17