计算机组成原理课程设计2.doc_第1页
计算机组成原理课程设计2.doc_第2页
计算机组成原理课程设计2.doc_第3页
计算机组成原理课程设计2.doc_第4页
计算机组成原理课程设计2.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书题目: 计算机组成原理课程设计 院 系: 计算机科学与工程学院 专业班级: * 学 号: * 学生姓名: * 指导教师: * 2011年 6月 29 日课程设计(论文)任务书 计算机科学与工程 院系 计算机硬件 教研室学 号*学生姓名*专业(班级)*设计题目设计一指令系统设计技术参数计算机组成原理教学实验仪一台,排线若干;pc机一台*dj-cpt816组成原理实验软件模型机的指令系统,微程序,微指令,程序通过cpth计算机组成原理教学实验系统设计指令/微指令系统。设计要求1.在基本模型机的基础上改进并实现in,lda,out,jmp,add,sub等6条指令的功能。2.设计相应的微程序。3. 在实验箱上实现指令系统。工作量 论文不少于15页,附带必要的图表工作计划学习微程序控制器,了解实验箱中的各部分结构。分析题目,查阅资料,画出流程图,设计出微指令。按实验要求连线,编写程序在实验箱上运行。写出课程设计报告。参考资料1 陈书开,王毅.计算机组成与系统结构.武汉:武汉大学出版社,20052 张功萱.计算机组成原理.北京:清华大学出版社,2005年09月3 王诚.计算机组成原理实验指导书.北京:清华大学出版社,20024 杨小龙.计算机组成原理与系统结构实验教程.西安:西安电子科技大学出版社,20045 袁开榜.计算机组成原理.北京:高等教育出版社,1995指导教师签字教研室主任签字 2011年 6月 29 日 指导教师评语:成绩: 指导教师: 年 月 日课程设计(论文)成绩评定表目录1系统分析11.1 设计背景11.2 设计的原理31.3模型机的逻辑框图32指令系统及其指令格式42.1指令系统42.2 指令的格式53微程序的设计及其实现的方法63.1微程序入口地址的形成73.2微指令格式的设计83.3后续微地址的产生方法83.3程序执行流程94程序的实现104.1源程序,程序的指令代码及微程序104.2 程序的指令代码104.3 微程序104.4 程序调试11总结13参考文献14摘要在飞速发展的科技社会中,计算机被应用到各行各业,各个领域中。人们渐渐地步入自动化、智能化的生活阶段。本次计算机组成原理课程设计课题是基本模型机的设计与实现。利用cpu与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,设计基本模型机的指令系统(包括逻辑与,逻辑或,算术加,减运算,输入,输出,转移,传送指令),形成具有一定功能的完整的应用程序。简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,cpu从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对有关知识的深入学习打下基础。关键词:指令系统,微指令,机器指令,加减运算iv安徽理工大学课程设计(论文)1.系统分析1.1 设计背景通过计算机组成原理理论课和几次实验的学习,尝试设计八类机器指令,并编写相应的微程序,完成由基本单元电路构成一台基本模型机,再经过调试指令和模型机使其在微程序的控制下自动产生各部件单元的正常工作控制信号。本课程设计的模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择r0-r3寄存器。在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,cpu从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由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内部的标志寄存器x2,x1,x0三位组合来译码选择将数据送到dbus上的哪个寄存器,见表1wen:将数据总线dbus的值打入工作寄存器w中aen:将数据总线dbus的值打入累加器a中s2,s1,s0三位组合决定alu做何种运算,见表2表1x2 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没有输出表2s2 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设计的原理计算机中cpu是核心,它是通过指令和微指令的执行来工作的。指令是计算机要完成的某一项功能。它对应到执行的过程中是一段微程序。一段微程序含多条为指令,而一条微指令又含多个微命令。一个微命令驱动某个硬件部件执行某种操作。通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。在各个模块实验中,个模块的控制信号都是有实验者手动模拟产生的。而在真正的实验系统中,模型机的运行是在微程序的控制下进行的,可实现特定的指令功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和与之配合的时序来完成,即一条机器指令由对应一个微程序。1.3.模型机的逻辑框图简单的模型计算机是由算术逻辑单元、微程序单元、堆栈寄存器单元、累加器,启停、时序单元、总线和存储器单元组成。在模型机中,我们将要实现ram的读写指令,寄存器的读写指令,跳转指令,alu的加、减、与、或指令。把通用寄存器作为累加器a,进行左、右移等指令,整体构成一个单累加器多寄存器的系统。运算器由2片74l181构成8位字长的alu单元。2片74ls374作为2个数据锁存器(dr1、dr2),8芯插座alu-in作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。数据输入锁存器dr1的edr1为低电平,并且d1ck有上升沿时,那来自数据总线的数据打入锁存器dr1。同样使edr2为低电平、d2ck有上升沿时把数据总线上的数据打入数据锁存器dr2。整机的逻辑框图如下:2.指令系统及其指令格式2.1指令系统 mov a , #10 ; /将立即数10传送到累加器a中mov r0, #20 ; /将立即数20传送到寄存器r0中 add a, r0 ; /将累加器a和寄存器r0中的内容相加,结果送入累加器a中mov r1, #10 ; /将立即数10传送到寄存器r1中sub a, r1 ; /将累加器a中的内容减去寄存器r1中的内容,结果送入累加器a;sta 10 ; /a-ramhalt ; /停机2.2指令格式一般指令由操作码和操作码组成,如下所示:操作码地址码 计算机操作数寻址方式及其编码的格式如下:1、 直接寻址方式:如双字节指令sta addr (a)-addr第1字节 i7i6i5i4i3i2i1i0 操作码 第2字节a7a6a5a4a3a2a1 操作地址addr2、 寄存器直接寻址:指令字节中含有寄存器选择码,决定选哪个寄存器进行操作。如:单字节指令mov a,rj (ri)-amov指令采用单字节指令,其格式如下: 单字节i7i6i5i4i3i2i1i0 操作码与ri选择码如:双字节指令mov ri, #data data-ri第1字节 i7i6i5i4i3i2i1i0 操作码及ri选择码 第2字节d7d6d5d4d3d2d1d0 data 3、寄存器间接寻址 如:单字节指令: mov a,ri (ri)-a ri选择码i7 i6i5i4i3i2i1i0 操作码4、立即数寻址如:mov a, #data data-amov ri, #data data-ri 第1字节i7i6i5i4i3i2i1i0 操作码及ri选择码 第2字节d7d6d5d4d3d2d1d0 data3.微程序的设计及其实现的方法3.1 微程序入口地址的形成在本实验平台的硬件设计是采用的24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可由微代码直接实现。若采用多组编码译码,那么24位的微代码通过二进制译码可实现2n个互斥的微操作控制信号。由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址md0-md7。这种方法称为“按操作码散转”(如下表所示)。微程序首地址形成md7md6md5md4md3md2md1md0001716151411按操作码散转指令操作码微程序首地址md7、md6i7i6i5i4md1、md0md7md0000001003h000011007h00010100bh00011100fh001001013h001011017h00110101bh00111101fh010001023h010011027h01010102bh01011102fh011001033h011011037h01110103bh01111103fh此次实验程序中的微程序指令如下表:指令助记符微地址有效值微指令十六进制编码mov a,ri0fh10h11h12hff7bff4dffffmov ri,a13h14h15h16h7fbdff4dffffmov a,#data17h18h19h1ahddfbff4dffffsta addr23h24h25h26hd5ffffbbfdff4dffffhalt3fhffdfff3.2微指令格式的设计一条微指令的一般格式是如下图:判别测试下地址操作控制顺序控制3.3后续微地址的产生方法由于本系统中指令系统规模不大,功能较简单,微指令采用全水平、不编码的方式,每一个微操作控制信号由一位微代码来表示,24位微代码至少可表示24个不同的微操作控制信号。用增量方式来控制微代码的运行顺序,每一条指令的微程序连续存放在微指令存储器连续的单元中。在本系统内,mld为置微地址的控制信号,mck为工作脉冲。当mld=0、mck有上沿时,把md0md7的值作为微程序的地址,打入微地址寄存器。当mld=1、mck有上升沿时,微地址计数器自动加1。 由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。为了更好地观察实验的各个中间过程中各寄存器的值,由监控单元产生一个pls-o的信号来控制时序产生。pls-o信号经过时序单元的处理产生了4个脉冲信号。4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。 pls1: 微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。pls2: pc计数器的工作脉冲,根据微指令的控制实现pc计数器加1和重置pc计数器(如跳转指令)等功能。pls3: 把24位微指令打入3片微指令锁存器pls4: 把当前总线上的数据打入微指令选通的寄存器3.4此次实验每条指令的执行流程如下:周期微操作指令助记符t0t1t2t3取指微指令pc-bus-ramram-bus-ir1 mov a,#10bus-aram-bus-ir1ram-bus-ir1 mov r0,#20ram-r0ram-bus-ir1 add a, r0a-锁存器dr1r0-锁存器dr2alu-aram-bus-ir1mov r1,#10ram-r1ram-bus-ir1sub a,r1a-锁存器dr1r1-锁存器dr2alu-aram-bus-ir1sta 10rambusir2a-ram(10h)ram-bus-ir1 halt置模型机为停机状态 4. 源程序,程序的指令代码及微程序 4.1源程序mov a,#10mov r0,#20add a,r0mov r1,#10sub a,r1mov r1,asta 10halt4.2程序的指令代码内存地址指令助记符指令码或立即数说明00hmov a,#105fh立即数 10h-a01h10h02hmov r0,#206ch立即数 20h-寄存器r003h20h04hadd a,r00cha内容+r0内容-a05hmov r1,#106dh立即数10h-寄存器r106h10h07hsub a,r11dha内容-r1内容-a08hsta 108fh将a内容写入ram地址10h09h10h0ahhaltffh停机4.3微程序mov a,#10: 00004d,ff,ff 取指指令 0017dd,fb,ff dbusa mov r0,20 00364d,fe,ff 取指指令 0013ff,bd,ff adbusriadd a,r0: 001c4d,ff,ff 取指指令 0037fffcfb adbusdr1 0038ddff7b ramdbusdr2 0039fffbbb aluamov r1,10: 003a4dffff 取指指令 0013ffbdff adbusrisub a,r1: 001c4d,ff,ff 取指指令 0037fffcfb adbusdr1 0038ddff7b ramdbusdr2 0039fffbbb aluasta 10 : 00144dffff 取指指令 0023d5ffff dbusir2 0024bbfdff ir2dbus; adbusramhalt : 00254dffff 取指指令 0003fffdfff 停机4.4程序的运行调试首先启动hkcpt软件,打开主窗口.在代码窗口输入汇编源程序,然后单步运行,微单步运行过程如下表格所示:微地址数据流程数据总线地址总线操作寄存器00h取指令ram-bus-ir15fh00hir1=5fhmov a,#5517hbus-a55h01ha=55h18h取指微指令ram-bus-ir16ch02hir1=6chmov r0, #661bh66h03h寄存器r0=66h1ch0ch04hir1=0chadd a, r003h55h无效dr1=55h04h66h无效dr2=66h05hbbh无效a=bbh06h6dh05hir1=6dhmov r1, #331bh33h06h寄存器r1=33h1ch1dh07hir1=1dhsub a, r107hbbh无效dr1=1dh08h33h无效dr2=33h09h88h无效a=88h0ah8fh08hir1=8fhsta 1023h10h09hir2=10h24h88h10hram(10)=88h25hffh0ahir1=ffhhalt3fh无效无效置停止状态4.总结4.1 设计体会通过近一个星期的课程设计,结果设计出来了这么一个看似很一般的指令系统。但是我感觉从中还是学习到了不少东西。把以前从书本上学习到的东西完全应用到实践当中。一开始在书上看到的一些什么指令系统、微指令等等东西的时候不知所云,因为它们都是计算机能够识别的,对我来说就很难认识了;而且它们听上去又很抽象,感觉跟人的思维完全不同,又不能从形象的角

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论