下载此文档

指令系统设计课案.pdf


文档分类:高等教育 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
该【指令系统设计课案 】是由【青山代下】上传分享,文档一共【20】页,该文档可以免费在线阅读,需要了解更多关于【指令系统设计课案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..程设计说明书题目指令系统设计院系:专业班级:学号:学生姓名:指导教师:2014年12月16日:..计算机科学与工程院系监控与嵌入式教研室学号学生姓名专业(班级)-CPTH超强型计算机组成原理教学实验系统搭建电路图,在实验箱技上实现指令系统。,进行系统分析。,要求有四种寻址方式;。;;,了解题目要求做什么。,解决难题。。[1]:科学出版社,1994[2]平玲娣,,出版日期:2004[3](第二版).北京:科学出版社,1998参[4]DJ-CPTH超强型计算机组成原理与系统结构实验指导书考[5].合肥:[6]张晨曦,王志英,张春元,戴蔡,,2004[7](第二版).清华大学出版社,2002指导教师签字教研室主任签字2014年11月18日:..指导教师评语:成绩:指导教师:年月日:..本设计采用的系统是DJ-CPTH型计算机组成原理实验系统,采用总线结构,并采用模块结构化设计,提供了两种实验模式:。系统提供两种控制器方式,即微程序控制器和组合逻辑控制器。本次使用的是微程序控制器。本次课程设计正是用到了用户设计指令/微指令的功能。设计的内容简要如下::ADDCA,#*;ADDCA,R?;ADDCA,*;ADDCA,***@R?;:SUBCA,#*;SUBCA,R?;SUBCA,*;SUBCA,***@R?;:MOVA,#*;MOV*,A;******@R?,#*;MOVR?,#*;关键字:指令系统,微程序,计算机组成原理,DJ-CPTHI:..1.............................................................................................................................................................................................................................................................................................................................................................................................................................22实验环境介绍..............................................................................................................................................................................................................................................................................................................................................................................................43系统设计及实现........................................................................................................................................................................................................................................................................................................................................................................................................................114总结.........................................................................................................................................................................................................................................................................................................................................14参考文献......................................................................................................................15i:..1图1--1数据输出功能表表1-2运算器功能控制X2X1X0输出寄存器S2S1S0功能000IN_OE外部输入门000A+W加001IA_OE中断向量001A-W减010ST_OE堆栈寄存器010A|W或011PC_OEPC寄存器011A&W与100D_OE直通门100A+W+C带进位加101R_OE右移门101A-W-C带进位减110L_OE左移门110~AA取反111没有输出111A输出A1:..1-3其余功能简介XRD外部设备读信号MAROEMAR地址输出EMWR存储器写允许MARENMAR写允许EMRD存储器读允许OUTENOUT寄存器写允许EMEN存储器接数据总线STEN堆栈寄存器写使能PCOEPC地址输出RRD通用寄存器读允许IRENIR,uPC写允许RWR通用寄存器写允许移位是否带进位ELP预置允许FEN标志寄存器(存标志位)AEN选通A(A可写)WEN选通W(W可写)以上三个表格正是本次课程设计的模型机功能简介,课程设计中的微指令功能正是由这些功能参数结合完成的。本次课程设计是由模型机作为一个整体来实验,由前面的实验课程中可以得知,此模型机可以手动由开关输入输出;现在应切换至由软件介入控制。J1接入J2,使系统处于非手动状态;控制方式又原先的逻辑控制切换至“微程序控制”,还有一个切换至CPTH控制的开关。最后,就是连接电脑和仪器的串行口。2:..2要设计指令就要了解本次实验的环境,以便于设计指令。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寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。因此指令的设计就受限于四个状态周期之中。、开关电源、软件三大部分组成。实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展单元、总线接口区、微动开关/指示灯、逻辑笔、脉冲源、管理单片机、24个按键、字符式LCD、RS232。3:..提供的寻址方式有以下五种。累加器寻址:操作数为累加器A,例如“CPLA”是将累加器A值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。寄存器寻址:参与运算的数据在R0-R3的寄存器中,例如“ADDA,R0”指令是将寄存器R0的值加上累加器A的值,再存入累加器A中。寄存器间接寻址:参与运算的数据在存储器EM中,数据的地址在寄存器R0-R3中,如“MOVA,***@R1”指令是将寄存器R1的值做为地址,把存储器EM中该地址的内容送入累加器A中。存储器直接寻址:参与运算的数据在存储器EM中,数据的地址为指令的操作数。例如“ANDA,40H”指令是将存储器EM中40H单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。立即数寻址:参与运算的数据为指令的操作数。例如“SUBA,#10H”是从累加器A中减去立即数10H,结果存入累加器A。以上五种寻址方式的具体实现就在系统设计里具体介绍。4:..3本设计项目的内容是带进位的加减法指令实现,由此可知,为了测试项目就需要其他的指令辅助。带进位的加减法需要四种寻址方式,为了测试这四种寻址方式,也要借由四种存储指令将操作数存入其中。我选取的四种寻址方式:寄存器寻址,内存寻址,立即数寻址,寄存器间接寻址。经过一系列的实验,以及模型机的指令结构描述。基本上,组成每个指令的微指令中的最后一个为CBFFFF,原因如下:单看高8位“CB”代表EMRD,PCOE,IREN为低电平(使能状态),PCOE将地址送到地址线端,由EMRD功能得到了指令,IREN将指令存入IR寄存器当中,同时,uPC的值也与IR的相同。PCEMIRuPCADDBUS图3-1指令读取CBFFFF完成了读取指令的功能,是设计过程中最为重要的环节,本指令系统基本上每条指令中都有这个微指令,可见其重要性。若具体到带进位加减法的设计,那就是按照指令本身着手,比如ADDCA,#?,这个是实现将立即数和寄存器A相加在存入A的功能。构思如下::根据立即数为操作数,首先找到存放的地方——EM(内存)。Step2:实现加法操作,需要ALU的帮助,而其中的累加器A是我们的另一个操作数,现在的步骤正是将立即数存入另一个寄存器W中。Step3:A中的数与W中的数相加,送入数据缓冲器,再将数据缓冲器中的内容写入寄存器A。Step4:读取下一条指令。以上只是想法,真实的实现步骤可能并不是按照所述发展。具体见设计详述。现在讲述辅助指令的构成:四种寻址方式的Move指令。为了实现加减法,需要这样的辅助指令,至于输入输出指令,构思的时候并没有涉及,主要就是节省设计时间;但就一个指令系统而言,那是必需的;否则,无法实现交互。项目5:..就是CPTH实验仪已经实现了各个部件数据的显示。按照思路,首先就是实现指令的书写。在设计指令时,我们把ADDCA,#?称为助记符,其中ADDC就是名称,A是左操作数,而#?是右操作数。在CPTH微程序设计软件中,提供了相应的功能。机器码的选择也可以交由设计者自行选择。请注意,指令集里的_FATCH_是默认的,是指令入口地址。其指令是CBFFFF。如果删除,则无法通过该软件修改。图3-2指令集设计界面设计好指令集后,就可以进一步的设计微程序。微程序由四个状态周期构成,意味着程序功能的实现受到了限制,也表明功能简单需要组合实现更多的功能。图3-3微程序设计界面当然,指令设计完成后,要存档。带进位加法的操作数中有立即数,所以要将立即数读取出来并存放到ALU的W寄存器中,立即数又是暂时存取在内存单元。那么我们就知道第一步所要启用的功能,EMRD,EMEN两个使能;当然,还要WEN置零;但是立即数的存取地址我们并不知道,这个存取地址由PC提供,所以,PCOE需要置零。就此,我们完成了ADDCA,#*的第一步。6:..功能借由S2S1S0这三位实现置为010实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现进位存储。当A+W后直接送入数据寄存器,接下来就是把数据寄存器的内容送到累加器A。而这只需一条指令就能完成。最后还要取下一条指令。所以这条指令的微程序就是,FFFE94,CBFFFF。,R?带进位加法的操作数中有通用寄存器,那么将通用寄存器中的数存入W寄存器中就是第一步。RRD,WEN就需要使能,剩下的就不需要。接下来,加法功能借由S2S1S0这三位实现置为010实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现了进位存储。当A+W后直接送入数据寄存器,接下来就是把数据寄存器的内容送到累加器A。最后还要取下一条指令。所以这条指令的微程序就是FFF7EF,FFFE94,CBFFFF。,***@R?带进位加法的操作数中有通用寄存器间接寻址。这个实现就费些功夫,首先要在通用寄存器中存入地址,而这个地址实际上是指向内存单元。我们要做的就是将内存单元的值放入W寄存器。那么该如何实现呢?既然要内存单元的值那么肯定需要知道内容所在地址。我们将R?中的值交给MAR保管,因为读取其中的值需要MAR帮助。所以,MAREN,RRD置零。接下来,读取内存单元的值并存入W寄存器。现在EMEN,EMRD,MAROE,WEN需要置零。其中,MAROE就是将内存偏移地址给EM,并找取内存单元的值。之后,加法功能借由S2S1S0这三位实现置为010实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现了进位存储。当A+W后直接送入数据寄存器,接下来就是把数据寄存器的内容送到A中。最后还要取下一条指令。四个状态周期全都用上。所以这条指令的微程序就是FF77FF,D7BFEF,FFFE94,CBFFFF。,*带进位加法的操作数中有内存单元。和寄存器的间接寻址很相似,不过差别就在于内存单元地址的获取。这个偏移地址的获取通过PCOE,EMEN,EMRD,MAREN置零,这样就将偏移地址存入MAR寄存器中。接下来,读取内存单元的值并存入W寄存器。现在EMEN,EMRD,MAROE,7:..WENMAROE就是将内存偏移地址给EM,并找取内存单元的值。之后,加法功能借由S2S1S0这三位实现置为010实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现了进位存储。当A+W后直接送入数据寄存器中,接下来就是把数据寄存器的内容送到A中。最后还要取下一条指令。四个状态周期全都用上。所以这条指令的微程序就是,D7BFEF,FFFE94,CBFFFF。,#*这是辅助指令,用于将用户想存取的内容放到相应的位置。这个指令将立即数存入累加器A。首先,立即数的获取。PCOE,EMRD,EMEN置零,获取到了立即数,接着就要存储到A寄存器中。AEN置零。这个功能的实现其实只用到了一条微指令。最后还要取下一条指令。所以这条指令的微程序就是C7FFF7,CBFFFF。?,#*这个辅助指令,是将立即数放入到通用寄存器R?。首先,立即数的获取。PCOE,EMRD,EMEN置零,获取到立即数,并把数据放到数据总线上。接下来,RWD置零,立即数就写入到通用寄存器R?。最后取下一条指令。这条指令的微程序就是C7FBFF,CBFFFF。7.******@R?,#*这个指令的设计难度不亚于带进位加法寄存器间接寻址。为什么这么讲?第一,这个指令的左右操作数的寻址方式比较难以实现;第二,微指令的状态周期限制。首先,将立即数存入ST堆栈寄存器中。PCOE,EMRD,EMEN,STEN置零,由此实现立即数的存储。我们将R?中的值交给MAR保管,因为存储内存单元值需要MAR帮助。所以,MAREN,RRD置零。接着,将ST寄存器的值放入到内存单元。EMWR,EMEN,MAROE置零。选通ST寄存器,X2X1X0的值置为010。最后,再取下一条指令。这条指令的微程序就是C7EFFF,FF77FF,B7BF5F,CBFFFF。*,A8:..单元的指令,被拒绝了。(总结再详谈)寄存器A的数值存储到内存单元中只需要一条微指令足以。EMWR,PCOE,EMEN置零,目的就是指定可写的内存单元。接着就是将A的数值存放到内存中,X2X1X0置为100,目的就是将数据缓冲器输出到数据总线,S2S1S0置为111,就是直接输出A的内容到数据缓冲器中。最后,再取下一条指令。这条指令的微程序就是B7FF97,CBFFFF。注:带进位减法的指令实现,与加法的不同仅在于功能也就是S2S1S0置为101。这里就不再详细描述指令的具体实现步骤。,#*这条指令的微程序就是C7FFEF,FFFE95,CBFFFF。图3-4SUBCA,#*,R?这条指令的微程序就是FFF7EF,FFFE95,CBFFFF。9:..3-5SUBCA,R?,***@R?这条指令的微程序就是FF77FF,D7BFEF,FFFE95,CBFFFF。图3-6SUBCA,***@R?,*这条指令的微程序就是C77FFF,D7BFEF,FFFE95,CBFFFF。10:..3-7SUBCA,*简易流程图实验过程并没有截图记录,所以借用。调入你已经保存好的指令系统。Likethis,图3-8调入指令系统Step2:11:..,Likethis,图3-9输入源程序12:..:F7,执行“单微指令运行”功能,观察执行每条微指令时,数据是否按照设计要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及uPC如何工作是否正确。到此为止,我们利用CPTH软件系统已经建成了一个新的指令系统/微程序。新的指令系统从汇编助记符到指令机器码到微指令都与原来的指令系统有所不同。13:..4其实设计这些指令我并没有参考其余章节的内容,就是通过第二至第四章就可以编出指令了。2,3章的内容介绍了大部分功能组件的实现,通过小键盘控制也对指令的存取运行有了一定的认识。第4章模型机的综合实验便是认识和熟悉指令,微程序的概念。本次课程设计的内容也是比较简单的,比方说这个小项目就是设计带进位加减法,并使用四种寻址方式。在综合实验中都有涉及,比较有意思的就是辅助指令的设计,因为牵涉到了立即数到寄存器的间接寻址以及立即数存到内存单元两条指令,所以就开始设计。很快,也就十几分钟,不过上机测试的时候出现了些问题,便继续纠正。不过,立即数存内存单元这个指令因为ERROR告吹。(推测是因为不支持)课程设计的内容,如果仔细琢磨的话,还是蛮有用的,对于组成原理这门课程的认识也有不小的帮助。看似简单的指令设计,其实牵涉到很多的内容。这个新版的课程设计内容,也更基础;虽然比起用汇编写程序,并且根据你写程序,设计相应的指令这个项目要简单。但重心上是回到了指令设计。设计上需要理解总线的使用调度,以免出现,地址冲突,数据传输冲突等问题。至少我是遇到了这样的问题,同样的,只设计所要求的指令会导致测试上的麻烦,没有辅助指令的输入,仍然无法实现,测试指令的时候也可以通过软件的逻辑图输入你的内容做测试。,应该是一种想法,就是目前的指令效率是最高的吗?指令的设计难道就是有一种方案吗?这个指令方案倒是可以有多个,但是效率上的改变无法得知。但有一点是可以肯定的,你的指令状态周期越少,那么效率是要高的,同时意味着你对功能的调度全面,新的表达称为性能压榨。14:..[1]:科学出版社,1994[2]平玲娣,,出版日期:2004[3](第二版).北京:科学出版社,1998[4]DJ-CPTH超强型计算机组成原理与系统结构实验指导书[5].合肥:[6]张晨曦,王志英,张春元,戴蔡,,2004[7](第二版).清华大学出版社,200215

指令系统设计课案 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小1.86 MB
  • 时间2024-04-14