ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:248.25KB ,
资源ID:10283617      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10283617.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(指令系统设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

指令系统设计.docx

1、指令系统设计课程设计说明书题目: 指令系统设计 院 系: 专业班级: 学 号: 学生姓名: 指导教师: 2014 年 12 月 16 日 安徽理工大学课程设计(论文)任务书 计算机科学与工程 院系 监控与嵌入式 教研室学 号学生姓名专业(班级)设计题目 指令系统设计设计技术参数1.本系统采用DJ-CPTH超强型计算机组成原理教学实验系统搭建电路图,在实验箱上实现指令系统。 2.利用软件工程中的可行性研究以及分析方法,进行系统分析。设计要求1.构建一组能实现带进位的加法和减法运算的指令系统,要求有四种寻址方式;2.编程测试指令系统。工作量1.课程设计说明书约5000字;2.编写微指令代码构建微指

2、令系统;3.编写程序测试指令系统工作计划1.首先认真研究老师所给的题目,了解题目要求做什么。2.查阅资料,解决难题。3.编写源程序并调试之。 4.写课程设计说明参考资料 1 张昆藏计算机系统结构北京:科学出版社,19942 平玲娣,潘雪增.计算机组成与设计.浙江大学出版社,出版日期:20043 白中英计算机组成原理(第二版)北京:科学出版社,1998 4 DJ-CPTH超强型计算机组成原理与系统结构实验指导书5 李敬兆.8086/8088和基于RAM核汇编语言程序设计.第二版.合肥:中国科学技术大学出版社.2012 6张晨曦,王志英,张春元,戴蔡,肖晓强.计算机体系结构.高等教育出版社,200

3、4 7李文兵.计算机组成原理(第二版).清华大学出版社,2002指导教师签字教研室主任签字 2014年 11 月 18 日安徽理工大学课程设计(论文)成绩评定表指导教师评语:成绩: 指导教师: 年 月 日 摘要本设计采用的系统是DJ-CPTH型计算机组成原理实验系统,采用总线结构,并采用模块结构化设计,提供了两种实验模式:1.手动模式2.自动运行。系统提供两种控制器方式,即微程序控制器和组合逻辑控制器。本次使用的是微程序控制器。本次课程设计正是用到了用户设计指令/微指令的功能。设计的内容简要如下:1.带进位加法:ADDC A,#*;ADDC A,R?;ADDC A,*;ADDC A,R?;2.

4、带进位减法:SUBC A,#*;SUBC A,R?;SUBC A,*;SUBC A,R?;3.辅助指令:MOV A,#*;MOV *,A;MOV R?,#*;MOV R?,#*;关键字:指令系统,微程序,计算机组成原理,DJ-CPTH目录1原理介绍 11.1实验仪器逻辑图 11.2功能简介 11.3 微程序控制器 22 实验环境介绍 32.1 模型机的总体结构 32.2 模型机的组成 32.3 模型机的寻址方式 43 系统设计及实现 53.1 设计思路 53.2 指令设计详述 63.3 实验过程 114 总结 144.1设计体会 144.2设计改进 14参考文献 151原理介绍1.1实验仪器逻

5、辑图图1-1 DJ-CPTH超强型计算机组成原理教学实验系统逻辑时序图1.2功能简介 表1-1 数据输出功能表 表1-2 运算器功能控制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 右移门1 1 0L_OE 左移门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-3 其

6、余功能简介XRD外部设备读信号MAROEMAR地址输出EMWR存储器写允许MARENMAR写允许EMRD存储器读允许OUTENOUT寄存器写允许EMEN存储器接数据总线STEN堆栈寄存器写使能PCOEPC地址输出RRD通用寄存器读允许IRENIR,uPC写允许RWR通用寄存器写允许EINT清除中断寄存器值CN移位是否带进位ELP预置允许FEN标志寄存器(存标志位)AEN选通A(A可写)WEN选通W(W可写)以上三个表格正是本次课程设计的模型机功能简介,课程设计中的微指令功能正是由这些功能参数结合完成的。1.3 微程序控制器本次课程设计是由模型机作为一个整体来实验,由前面的实验课程中可以得知,此

7、模型机可以手动由开关输入输出;现在应切换至由软件介入控制。J1接入J2,使系统处于非手动状态;控制方式又原先的逻辑控制切换至“微程序控制”,还有一个切换至CPTH控制的开关。最后,就是连接电脑和仪器的串行口。2 实验环境介绍2.1 模型机的总体结构要设计指令就要了解本次实验的环境,以便于设计指令。CPTH 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计

8、数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。以上功能在原理介绍部分已经涉及,就不再赘述模型机为8 位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。相比而言8 位机实验减少了烦琐的连线,但其原理却更容易被理解、吸收。模型机的指令码为8 位,根据指令类型的不同,可以有0 到2 个操作数。指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中

9、,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。因此指令的设计就受限于四个状态周期之中。2.2 模型机的组成CPTH计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展单元、总线接口区、微动开关/指示灯、逻辑笔、脉冲源、管理单片机、24个按键、字符式LCD、RS232。

10、2.3 模型机的寻址方式寻址方式尤为重要,寻址方式的多寡决定了指令的实现方式,而本模型机所提供的寻址方式有以下五种。累加器寻址:操作数为累加器A,例如“CPL A”是将累加器A 值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。寄存器寻址:参与运算的数据在R0-R3 的寄存器中,例如 “ADD A,R0”指令是将寄存器R0 的值加上累加器A的值,再存入累加器A中。寄存器间接寻址:参与运算的数据在存储器EM 中,数据的地址在寄存器R0-R3中,如 “MOV A,R1”指令是将寄存器R1 的值做为地址,把存储器EM 中该地址的内容送入累加器A中。存储器

11、直接寻址:参与运算的数据在存储器EM 中,数据的地址为指令的操作数。例如“AND A,40H”指令是将存储器EM 中40H 单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。立即数寻址:参与运算的数据为指令的操作数。例如 “SUB A,#10H”是从累加器A中减去立即数10H,结果存入累加器A。以上五种寻址方式的具体实现就在系统设计里具体介绍。3 系统设计及实现3.1 设计思路本设计项目的内容是带进位的加减法指令实现,由此可知,为了测试项目就需要其他的指令辅助。带进位的加减法需要四种寻址方式,为了测试这四种寻址方式,也要借由四种存储指令将操作数存入其中。我选取的四种寻址方式:寄存器寻址,

12、内存寻址,立即数寻址,寄存器间接寻址。经过一系列的实验,以及模型机的指令结构描述。基本上,组成每个指令的微指令中的最后一个为CBFFFF,原因如下:单看高8位“CB”代表EMRD,PCOE,IREN为低电平(使能状态),PCOE将地址送到地址线端,由EMRD功能得到了指令,IREN将指令存入IR寄存器当中,同时,uPC的值也与IR的相同。图3-1 指令读取CBFFFF完成了读取指令的功能,是设计过程中最为重要的环节,本指令系统基本上每条指令中都有这个微指令,可见其重要性。若具体到带进位加减法的设计,那就是按照指令本身着手,比如ADDC A,#?,这个是实现将立即数和寄存器A相加在存入A的功能。

13、构思如下:Step1:根据立即数为操作数,首先找到存放的地方EM(内存)。Step2:实现加法操作,需要ALU的帮助,而其中的累加器A是我们的另一个操作数,现在的步骤正是将立即数存入另一个寄存器W中。Step3:A中的数与W中的数相加,送入数据缓冲器,再将数据缓冲器中的内容写入寄存器A。Step4:读取下一条指令。以上只是想法,真实的实现步骤可能并不是按照所述发展。具体见设计详述。现在讲述辅助指令的构成:四种寻址方式的Move指令。为了实现加减法,需要这样的辅助指令,至于输入输出指令,构思的时候并没有涉及,主要就是节省设计时间;但就一个指令系统而言,那是必需的;否则,无法实现交互。项目里没有实

14、现的原因也很简单,就是CPTH实验仪已经实现了各个部件数据的显示。3.2 指令设计详述按照思路,首先就是实现指令的书写。在设计指令时,我们把ADDC A,#?称为助记符,其中ADDC就是名称,A是左操作数,而#?是右操作数。在CPTH微程序设计软件中,提供了相应的功能。机器码的选择也可以交由设计者自行选择。请注意,指令集里的_FATCH_是默认的,是指令入口地址。其指令是CBFFFF。如果删除,则无法通过该软件修改。图3-2 指令集设计界面设计好指令集后,就可以进一步的设计微程序。微程序由四个状态周期构成,意味着程序功能的实现受到了限制,也表明功能简单需要组合实现更多的功能。图3-3 微程序设

15、计界面当然,指令设计完成后,要存档。1.ADDC A,#*带进位加法的操作数中有立即数,所以要将立即数读取出来并存放到ALU的W寄存器中,立即数又是暂时存取在内存单元。那么我们就知道第一步所要启用的功能,EMRD,EMEN两个使能;当然,还要WEN置零;但是立即数的存取地址我们并不知道,这个存取地址由PC提供,所以,PCOE需要置零。就此,我们完成了ADDC A,#*的第一步。接下来,设计的就是核心内容带进位加法,这又是如何实现的呢?首先加法功能借由S2S1S0这三位实现置为010实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现进位存储。当A+W后直接送入数据寄存器,接下来就是把数据

16、寄存器的内容送到累加器A。而这只需一条指令就能完成。最后还要取下一条指令。所以这条指令的微程序就是C7FFEF,FFFE94,CBFFFF。2.ADDC A,R?带进位加法的操作数中有通用寄存器,那么将通用寄存器中的数存入W寄存器中就是第一步。RRD,WEN就需要使能,剩下的就不需要。接下来,加法功能借由S2S1S0这三位实现置为010实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现了进位存储。当A+W后直接送入数据寄存器,接下来就是把数据寄存器的内容送到累加器A。最后还要取下一条指令。所以这条指令的微程序就是FFF7EF,FFFE94,CBFFFF。3.ADDC A,R?带进位加法

17、的操作数中有通用寄存器间接寻址。这个实现就费些功夫,首先要在通用寄存器中存入地址,而这个地址实际上是指向内存单元。我们要做的就是将内存单元的值放入W寄存器。那么该如何实现呢?既然要内存单元的值那么肯定需要知道内容所在地址。我们将R?中的值交给MAR保管,因为读取其中的值需要MAR帮助。所以,MAREN,RRD置零。接下来,读取内存单元的值并存入W寄存器。现在EMEN,EMRD,MAROE,WEN需要置零。其中,MAROE就是将内存偏移地址给EM,并找取内存单元的值。之后,加法功能借由S2S1S0这三位实现置为010实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现了进位存储。当A+W后

18、直接送入数据寄存器,接下来就是把数据寄存器的内容送到A中。最后还要取下一条指令。四个状态周期全都用上。所以这条指令的微程序就是FF77FF,D7BFEF,FFFE94,CBFFFF。4.ADDC A,*带进位加法的操作数中有内存单元。和寄存器的间接寻址很相似,不过差别就在于内存单元地址的获取。这个偏移地址的获取通过PCOE,EMEN,EMRD,MAREN置零,这样就将偏移地址存入MAR寄存器中。接下来,读取内存单元的值并存入W寄存器。现在EMEN,EMRD,MAROE,WEN需要置零。其中,MAROE就是将内存偏移地址给EM,并找取内存单元的值。之后,加法功能借由S2S1S0这三位实现置为01

19、0实现A+W,至于进位就交由FEN实现,这就是标志寄存器实现了进位存储。当A+W后直接送入数据寄存器中,接下来就是把数据寄存器的内容送到A中。最后还要取下一条指令。四个状态周期全都用上。所以这条指令的微程序就是C77FFF,D7BFEF,FFFE94,CBFFFF。5.MOV A,#*这是辅助指令,用于将用户想存取的内容放到相应的位置。这个指令将立即数存入累加器A。首先,立即数的获取。PCOE,EMRD,EMEN置零,获取到了立即数,接着就要存储到A寄存器中。AEN置零。这个功能的实现其实只用到了一条微指令。最后还要取下一条指令。所以这条指令的微程序就是C7FFF7,CBFFFF。6.MOV

20、R?,#*这个辅助指令,是将立即数放入到通用寄存器R?。首先,立即数的获取。PCOE,EMRD,EMEN置零,获取到立即数,并把数据放到数据总线上。接下来,RWD置零,立即数就写入到通用寄存器R?。最后取下一条指令。这条指令的微程序就是C7FBFF,CBFFFF。7.MOV R?,#*这个指令的设计难度不亚于带进位加法寄存器间接寻址。为什么这么讲?第一,这个指令的左右操作数的寻址方式比较难以实现;第二,微指令的状态周期限制。首先,将立即数存入ST堆栈寄存器中。PCOE,EMRD,EMEN,STEN置零,由此实现立即数的存储。我们将R?中的值交给MAR保管,因为存储内存单元值需要MAR帮助。所以

21、,MAREN,RRD置零。接着,将ST寄存器的值放入到内存单元。EMWR,EMEN,MAROE置零。选通ST寄存器,X2X1X0的值置为010。最后,再取下一条指令。这条指令的微程序就是C7EFFF,FF77FF,B7BF5F,CBFFFF。8.MOV *,A这条辅助指令的设计是为了将数值存储到内存单元。因为立即数存储到内存单元的指令,被拒绝了。(总结再详谈)寄存器A的数值存储到内存单元中只需要一条微指令足以。EMWR,PCOE,EMEN置零,目的就是指定可写的内存单元。接着就是将A的数值存放到内存中,X2X1X0置为100,目的就是将数据缓冲器输出到数据总线,S2S1S0置为111,就是直接

22、输出A的内容到数据缓冲器中。最后,再取下一条指令。这条指令的微程序就是B7FF97,CBFFFF。注:带进位减法的指令实现,与加法的不同仅在于功能也就是S2S1S0置为101。这里就不再详细描述指令的具体实现步骤。9.SUBC A,#*这条指令的微程序就是C7FFEF,FFFE95,CBFFFF。图3-4 SUBC A,#*简易流程图10.SUBC A,R?这条指令的微程序就是FFF7EF,FFFE95,CBFFFF。图3-5 SUBC A,R? 简易流程图11.SUBC A,R?这条指令的微程序就是FF77FF,D7BFEF,FFFE95,CBFFFF。图3-6 SUBC A,R? 简易流程

23、图12.SUBC A,*这条指令的微程序就是C77FFF,D7BFEF,FFFE95,CBFFFF。图3-7 SUBC A,* 简易流程图3.3 实验过程实验过程并没有截图记录,所以借用。Step1:调入你已经保存好的指令系统。Like this,图3-8 调入指令系统Step2:在源程序窗口输入程序,Like this,图3-9 输入源程序Step3:按快捷键F7,执行“单微指令运行”功能,观察执行每条微指令时,数据是否按照设计要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及uPC如何工作是否正确。到此为止,我们利用CPTH 软件系统已经建成了一个新的指令系统/微程

24、序。新的指令系统从汇编助记符到指令机器码到微指令都与原来的指令系统有所不同。4 总结4.1设计体会其实设计这些指令我并没有参考其余章节的内容,就是通过第二至第四章就可以编出指令了。2,3章的内容介绍了大部分功能组件的实现,通过小键盘控制也对指令的存取运行有了一定的认识。第4章模型机的综合实验便是认识和熟悉指令,微程序的概念。本次课程设计的内容也是比较简单的,比方说这个小项目就是设计带进位加减法,并使用四种寻址方式。在综合实验中都有涉及,比较有意思的就是辅助指令的设计,因为牵涉到了立即数到寄存器的间接寻址以及立即数存到内存单元两条指令,所以就开始设计。很快,也就十几分钟,不过上机测试的时候出现了

25、些问题,便继续纠正。不过,立即数存内存单元这个指令因为ERROR告吹。(推测是因为不支持)课程设计的内容,如果仔细琢磨的话,还是蛮有用的,对于组成原理这门课程的认识也有不小的帮助。看似简单的指令设计,其实牵涉到很多的内容。这个新版的课程设计内容,也更基础;虽然比起用汇编写程序,并且根据你写程序,设计相应的指令这个项目要简单。但重心上是回到了指令设计。设计上需要理解总线的使用调度,以免出现,地址冲突,数据传输冲突等问题。至少我是遇到了这样的问题,同样的,只设计所要求的指令会导致测试上的麻烦,没有辅助指令的输入,仍然无法实现,测试指令的时候也可以通过软件的逻辑图输入你的内容做测试。4.2设计改进其

26、实改进倒谈不上,应该是一种想法,就是目前的指令效率是最高的吗?指令的设计难道就是有一种方案吗?这个指令方案倒是可以有多个,但是效率上的改变无法得知。但有一点是可以肯定的,你的指令状态周期越少,那么效率是要高的,同时意味着你对功能的调度全面,新的表达称为性能压榨。参考文献1 张昆藏计算机系统结构北京:科学出版社,19942 平玲娣,潘雪增.计算机组成与设计.浙江大学出版社,出版日期:20043 白中英计算机组成原理(第二版)北京:科学出版社,19984 DJ-CPTH超强型计算机组成原理与系统结构实验指导书5 李敬兆.8086/8088和基于RAM核汇编语言程序设计.第二版.合肥:中国科学技术大学出版社.20126张晨曦,王志英,张春元,戴蔡,肖晓强.计算机体系结构.高等教育出版社,20047李文兵.计算机组成原理(第二版).清华大学出版社,2002

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1