已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书题目: 指令系统设计院 系: 计算机科学与工程学院 专业班级: 学 号: 学生姓名: 指导教师: 2013年 11 月 25 日 安徽理工大学课程设计(论文)任务书 计算机科学与工程 院系 教研室学 号 学生姓名 专业(班级) 设计题目指令系统设计设计技术参数1.本系统采用DJ-CPTH超强型计算机组成原理教学实验系统搭建电路图,在实验箱上实现指令系统。2.利用软件工程中的可行性研究以及分析方法,进行系统分析设计要求1.在基本模型机的基础上构建一组能实现输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移等功能的指令。2.利用新构建的指令系统编程,分别实现异或运算。工作量1.课程设计说明书5000字;2.画出流程图,编写微指令代码和程序。工作计划1.首先认真研究老师所给的题目,了解题目要求做什么。2.查阅资料,解决难题。3.编写源程序并调试之。4.写课程设计说明书参考资料1 张昆藏计算机系统结构北京:科学出版社,19942 著平玲娣,潘雪增计算机组成与设计浙江大学出版社,出版日期:2004-1-13 白中英计算机组成原理(第二版)北京:科学出版社,19984 DJ-CPTH超强型计算机组成原理与系统结构实验指导书指导教师签字教研室主任签字 2013年11月25日 指导教师评语:成绩: 指导教师: 年 月 日安徽理工大学课程设计(论文)成绩评定表摘要在飞速发展的科技社会中,计算机被应用到各行各业,各个领域中。人们渐渐地步入自动化、智能化的生活阶段。本次计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,设计基本模型机的指令系统(包括逻辑与,逻辑或,算术加,减运算,输入,输出,转移,传送指令),形成具有一定功能的完整的应用程序。简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对有关知识的深入学习打下基础。关键词:指令系统,微指令,机器指令,异或目录1.系统分析1 1.1 设计准备1 1.2 设计目标32.系统设计4 2.1 指令、微指令系统设计4 2.2 模型机的微指令设计5 2.3 异或程序设计63.系统实现7 3.1 程序编写与分析7 3.3 调试结果84.总结10 4.1 设计体会10 4.2设计改进10参考文献11安徽理工大学课程设计(论文)1.系统分析1.1 设计准备CPTH 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。模型机为8 位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。相比而言8 位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。模型机的指令码为8 位,根据指令类型的不同,可以有0 到2 个操作数。指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。24 位控制位分别介绍如下:XRD:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM写信号EMRD:程序存储器EM读信号PCOE:将程序计数器PC的值送到地址总线ABUS上EMEN:将程序存储器EM与数据总线DBUS接通,有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:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位FEN:将标志位存入ALU内部的标志寄存器WEN:将数据总线DBUS的值打入工作寄存器W中AEN:将数据总线DBUS的值打入累加器A中X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1-1S2,S1,S0三位组合决定ALU做何种运算,见表1-2X2 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 右移门1 1 0L_OE 左移门1 1 1没有输出表1-1 数据输出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 输出A表1-2 运算功能1.2 设计目标本课程设计要求实现机器指令: IN:将数据输入到累加器AMOV:转移CPL:取反AND:与OR:或OUT:输出要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。最后要在设计的指令系统基础上,编写程序实现异或。2.系统设计2.1 指令、微指令系统设计1打开CPTH组成原理实验软件,选择文件|新建指令系统/微程序,清除原来的指令/微程序系统,观察软件下方的“指令集”窗口,如图2-1所示,所有指令码都“未使用”。图2-1 指令集窗口2选择第二行,即“机器码1”为0000 01XX行,在下方的“助记符”栏填入数据装载功能的指令 助记符“IN”,按“修改”按钮确认。3选择第三行,即“机器码1”为0000 10XX行,在下方的“助记符”栏填入指令助记符“MOV”,在“操作码1”栏选择“R1”,表示第一操作数为立即数,在“操作数2”栏选择“A”,表示第二操作数为累加器A。按“修改”按钮确认。4选择第四行,即“机器码1”为0000 11XX行,在下方的“助记符”栏填入指令助记符“MOV”,在“操作码1”栏选择“A”, 表示第一操作数为累加器A,在“操作数2”栏选择“R”,表示第二操作数为立即数。按“修改”按钮确认。5.选择第五行,即“机器码1”为000100XX行,在下方的“助记符”栏填入指令助记符“CPL”,在“操作码1”栏选择“A”,表示第一操作数为累加器A取反,没有操作数2。按“修改”按钮确认。6. 选择第六行,即“机器码1”为000101XX行,在下方的“助记符”栏填入指令助记符“AND”,在“操作码1”栏选择“A”, 表示第一操作数为累加器A,在“操作数2”栏选择“R”,表示第二操作数为立即数。按“修改”按钮确认。7. 选择第七行,即“机器码1”为000110XX行,在下方的“助记符”栏填入指令助记符“OR”,在“操作码1”栏选择“A”, 表示第一操作数为累加器A,在“操作数2”栏选择“R”,表示第二操作数为立即数。按“修改”按钮确认。8. 选择第五行,即“机器码1”为0001 00XX行,在下方的“助记符”栏填入输出数据功能的指令助记符“OUT”,由于此指令隐含指定了将累加器A输出到输出寄存器,所以不用选择“操作码1”和“操作数2”,也可在“操作码1”栏选择“A”,按“修改”按钮确认,结果如图2-2所示。图2-2 指令集窗口结果2.2 模型机的微指令设计(1)微指令的24位控制位如下:XRD EMWR EMRD PCOE EMEN IREN EINT ELP MAREN MARDE OUTEN STEN RRD RWR CN FEN X2 X1 X0 WEN AEN S2 S1 S0(2)设计出的微指令集如图2-3、2-4所示:图2-3 微指令集1图2-4 微指令集22.3 异或程序设计程序设计思路:有等式,则有程序流程图如图2-5:开始先后输入两个数第一个数存入R1中第二个数存入R0中将R0取反,再和R1与的结果存入R2将R1取反,再和R0与结果存入A将A和R2或的结果存入A输出A图2-5 流程图3.系统实现3.1 程序编写与分析 按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,生成.mac文件和.mic文件。在DJ-CPT816实验软件中新建.asm文件,输入程序: IN /准备输入第一个二进制数MOV R1,A /输入第一个二进制数到寄存器R1 IN /准备输入第二个二进制数MOV R0,A /输入第二个二进制数到寄存器R0CPL A /对累加器A里面的值取反AND A,R1 /将A和R1与的结果放到累加器A中MOV R2,A /将累加器A里的值存入R2MOV A,R1 /将R1中的值存到累加器A中CPL A /对累加器A里面的值取反AND A,R0 /将A和R0与的结果放到累加器A中OR A,R2 /将A和R2或的结果放到累加器A中OUT /将输出A的值END调试窗口如图3-1所示。图3-1 调试窗口3.3 调试结果把计算机与试验仪器相连接,打开试验仪器,导入新建的指令系统,编译下载该asm文件,装载正确后单步运行,检查运行结果是否符合要求。实验结果如图3-2、3-3、3-4所示:图3-2 调试过程1图3-3 调试过程2图3-4 输出结果图 置K23K16 为00000100,第二次置K23K16为00000110,输出的是00000010。4.总结4.1 设计体会经过一个星期的课程设计,使我明白了知识的重要性,但更重要的是成员之间的团结合作。此次课程设计我们小组做的是运用微指令实现异或运算设计与实现。在设计过程中,我们遇到了我们之前没有遇到过的很多问题,这也说明了操作系统这门课不仅要对理论知识充分掌握,更重要的是动手操作,这样才能加深对理论知识的理解和明白在实际操作过程中可能遇到的问题并解决问题。解决问题的过程中少不了大家的相互交流和上网查询资料,还可以请导师进行指导,经过问题的分析和探索总算得以圆满的解决,更是增加了我们对这门课程的兴趣。总之这次设计让我了解掌握了很多东西,受益匪浅。经过本次课程设计,真正的发现理论与实际结合得重要性,有时并不是理论知识学得好动手能力就会高,当真正动起手来发现自己需要学得知识还是很多的,在以后的学习中,自己一定会加强理论与实际的结合,让自己达到新型社会需要人才的标准。在此次的设计中,感谢老师对我们的帮助和指导。过程还不够完善,希望老师继续指导4.2设计改进本系统由于立即数寻址方式未能做好,所以程序代码方面效率不是太高。主要是因为:修改助记符和微指令时并没有按照规范的步骤修改,就通过记事本方式修改了.mic文件,.mac文件和.dat文件,虽然运行结果运行可以,但立即数那一块运行有问题。所以本系统要想改善的话,应该重新做微指令那块,但考虑到时间问题就没有重新做微指令了,虽然程序不是很精简,但运行也没什么问题。还有就是指令合并没做,这样可以使程序代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论