




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书题目:模型机指令系统的设计与实现院 系: 专业班级: 学 号: 学生姓名: 指导教师: 2010年12月10日 安徽理工大学课程设计(论文)任务书学 号学生姓名专业(班级)设计题目模型机指令系统的设计与实现设计技术参数(1)用微程序控制器实现设计任务;(2)要满足指令系统的性能要求;(3)设计说明书能很好地反映设计内容设计要求参考实验指导书第四章模型机综合实验(微程序控制器)设计的过程,运用其微指令格式,独立设计指令系统。并用该指令系统中的指令编一完成简单运算的程序,并进行调试运行。工作量 要求设计说明书的字数在3000字以上。工作计划2010.11.22-11.24 根据设计要
2、求,查找相关资料,完成需求分析;2010.11.25-11.28 进行系统的概要设计;2010.11.29-12. 01 进行系统的详细设计和微程序的书写;2010.12.02-12.05 对系统进行调试分析,写出课程设计报告。参考资料 1 白中英.计算机组成原理(第四版).科学出版社.20082 dj-cpth超强型计算机组成原理与系统结构实验指导书.启东市东疆计算机有限公司.2008指导教师签字教研室主任签字2010年6月20日指导教师评语:成绩: 指导教师: 年 月 日目录1 问题描述51.1 设计目的51.2 设计要求52 数据格式和指令系统62.1 数据格式62.2 指令格式62.3
3、指令系统83 模型机的数据通路94 详细设计115 调试分析136 设计体会15参考文献161 问题描述1.1 设计目的本课程设计是计算机组成原理课程结束以后开设的大型实践性教学环节。通过本课程设计,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对微程序控制器的理解,进一步巩固所学的理论知识,并提高运用所学知识分析和解决实际问题的能力;锻炼计算机硬件的设计能力、调试能力;培养严谨的科学实验作风和良好的工程素质,为今后的工作打下基础。1.2 设计要求(1) 确定设计目标参考指导书上模型机综合实验设计的过程,运用其微指令格式,独立设计指令系统。并用该指令系统中的指令编写一个简单运算的程序
4、,并进行调试运行。(2) 确定指令系统确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。(3) 总体结构与数据通路总体结构设计包含确定各部件设置以及它们之间的数据通路结构。在此基础上,拟出各种信息传送路径,以及实现这些传送所需要的微命令。(4) 设计指令执行流程数据通路确定后,就可以设计指令系统中每条指令的执行流程。根据指令的复杂程度,每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一个微指令中,哪些微操作不能安排在同一条微指令中。(5) 确定微程序地址根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。(6)
5、微程序的编写根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码,写入到控制存储器中的相应单元中。(7) 调试在模型机上,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。2 数据格式和指令系统2.1 数据格式模型机规定采用定点补码表示数据,字长是8位的,其中最高位为符合位,其它都是数值位。数据格式如表2-1所示76543210符号位数值位表2-1 数据格式2.2 指令格式模型机设计四大类指令,即数据处理、数据存储、数据传送、程序控制,具体有数据传送指令、算
6、术运算类指令、逻辑运算指令、程序控制类指令、输入输出类指令、字符串类指令、系统控制指令。指令格式,是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。操作码字段表征指令的操作特性与功能,而地址码字段通常指定参与操作的操作数的地址。因此,一条指令的结构可用如下形式来表示:操作码字段op地址码字段a表2-2 指令格式微指令是一组实现一定操作功能的微命令的组合。图2-1表示一个具体的微指令结构。图2-1 微指令结构上图中24位控制位分别介绍如下:xrd:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。 emwr:程序存储器em写信号emrd:程序存储器em读信号
7、 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上数
8、据存到堆栈寄存器里rrd:读寄存器组r0-r3,寄存器r?的选择由指令的最低两位决定rwr:写寄存器组r0-r3,寄存器r?的选择由指令的最低两位决定cn:决定运算器是否带进位移位,cn=1带进位,cn=0不带进位fen:将标志位存入alu内部的标志寄存器x2,x1,x0三位组合来译码选择将数据送到dbus上的哪个寄存器,见表2-3wen:将数据总线dbus的值打入工作寄存器w中aen:将数据总线dbus的值打入累加器a中s2,s1,s0三位组合决定alu做何种运算,见表2-4x2 x1 x0输出寄存器0 0 0in_oe 外部输入门0 0 1ia_oe 中断向量0 1 0st_oe 堆栈寄存
9、器0 1 1pc_oe pc寄存器1 0 0d_oe 直通门1 0 1r_oe 右移门1 1 0l_oe 左移门1 1 1没有输出表2-3 数据输出选择器原理图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表2-4 运算器的选择2.3指令系统模型机的指令集分几大类: 算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。2.3.1数据传输指令主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换
10、指令、清寄存器指令等等。这类指令主要用来实现主存和寄存器之间,或寄存器和寄存器之间的数据传送。2.3.2算术运算指令该指令包括二进制定点加、减、乘、除指令,浮点加、减乘、除指令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算指令等。这类指令主要用于定点或浮点的算术去处。2.3.3逻辑运算指令这类指令包括逻辑加、逻辑乘、按们加,逻辑移位等指令,主要用于无符号数的们操作、代码的转换、判断及运算。2.3.4程序控制指令又叫转移指令。机器执行到某条指令时,出现了几种不同的结果,这时机器必须执行一条转移指令,根据不同结果进入转移,从而改变程序原来执行的顺序。在注册软件的时候经常遇到。2.3
11、.5输入输出指令主要是用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和cpu之间,或外围设备与外围设备之间的信息传送。2.3.6字符串处理指令字符串处理指令是一种非数值处理指令,一般包括字符串传送、字符串转换、字符串比较、字符串查询等等。2.3.7特权指令特权指令是指具有特殊权限的指令。这种指令如果使用不当就会破坏系统,所以一般不直接提供给用户用。3 模型机的数据通路 模型机的数据通路如图3-1所示:图3-1 模型机的数据通路图3-2示出了模型机的运算器的数据通路:图3-2 模型机的运算器的数据通路其中alu为算术逻辑单元,r1、r2、r3为三个寄存器。4 详细设计根据图2-1微
12、指令格式,我们可以 了解到许多的微指令在执行的时候,只需要把它所需要用到的位置有效(即为0)就可以了。我们知道,每个程序开始执行的第一条微指令必须是取指操作。而取指操作要做的工作是从程序存储器em中读出下条将要执行的指令,并将指令的机器码存入指令寄存器ir和微程序计数器upc中,读出下条将要执行的指令。要从em中读数,emrd必需有效;读em的地址要从pc输出,所以pcoe要有效,它有效的同时还会使pc加1;iren是将em读出的指令码存入upc和ir。此微指令的状态为“t0”,微地址“0 0”,微程序“cbffffh”,这是个取指操作。不管是要做什么指令最后必需是取指令,所以这个微指令是在每
13、个指令的后面都有的。下面举例说明一个指令的设计方法:ladd a,#* 取名规则:为了表现出是自己设计的,把最前面都加了个l(李),但为了方便记忆,后面保持和默认的指令名字一致,便于区分出自己的指令,同时也有助于程序的阅读。指令作用:累加器a加立即数,完成加法操作。设计方法:立即数的加法指令分为两步:1、 从em中读出立即数,送到dbus,并存入工作寄存器w中,从em中读数,emrd应该有效,读em的地址由pc输出,pcoe要有效,读出的数据要送到dbus,emen应该有效,数据存入w中,wen应该有效,根据上述描述,“ladd a,#*”指令的t1状态微指令的值为“c7ffefh”。2、 执
14、行加法操作,并将结果存入a中。执行的是加法操作,根据表2-4可知,s2s1s0的值应该是000(二进制表示的),结果无需移位直接输出到dbus,根据表2-3可短,x2x1x0的值应该为100(二进制表示的),从dbus将数据再存入a中,aen应该有效。与此同时,abus 和ibus空闲,取指操作可以并行执行,也就是以pc为地址,从em中读出下条将要执行指令的机器码,并打入ir和upc中,由上述可知:emrd、pcoe、iren要有效,而t0状态时将emrd、pcoe、iren、x2x1x0、aen、s2s1s0都应该置成有效和相应的工作方式,此微指令的值为“cbff90h”注:因为取指令可以并
15、行执行,所以这里没有再给出取指操作。而是将它并到第二个操作里面去了。根据上述方法,再设计一个减立即数的指令的话就比较的简单了,因为只需要将上面的加、变成减即s2s1s0不在为000而是001(由表2-4可知)。其它的指令和这个指令的设计方法都是一样的。下面是我所设计的自己的一套指令系统,如表4-1所示:助记符 状态微地址微程序数据输出数据打入地址输出运算器upcpc_fetch_t000cbffff指令寄存器irpc输出a输出写入101ffffffa输出102ffffffa输出103ffffffa输出1ladd,#*t204c7ffef存储器值em寄存器wa输出11t105fffe90alu直
16、通寄存器a,标志位c,zpc输出加运算1t006cbffff指令寄存器irpc输出a输出写入107ffffffa输出1lsub a,#*t208c7ffef存储器值em寄存器wpc输出a输出11t109fffe91alu直通寄存器a 标志位c,z减运算1t00acbffff指令寄存器irpc输出a输出写入10bffffffa输出1lint10cffff17用户in寄存器aa输出1t00dcbffff指令寄存器irpc输出a输出写入10effffffa输出10fffffffa输出1loutt110ffdf9falu直通用户outa输出1t011cbffff指令寄存器irpc输出a输出写入112f
17、fffffa输出113ffffffa输出1lmov r?,at114fffb9falu直通寄存器r?a输出1t015cbffff指令寄存器irpc输出a输出写入116ffffffa输出117ffffffa输出1lmov *,at218c77fff存储器值em地址寄存器marpc输出a输出11t119b7bf9falu直通存储器emmar输出a输出1t01acbffff指令寄存器irpc输出a输出写入11bffffffa输出1ljmp *t11cc6ffff存储器值em寄存器pcpc输出a输出1写入t01dcbffff指令寄存器irpc输出a输出写入11effffffa输出11fffffffa输
18、出1lmov r?,#*t120c7fbff存储器值em寄存器r?pc输出a输出11t021cbffff指令寄存器irpc输出a输出写入122ffffffa输出123ffffffa输出1ljz *t124c6ffff存储器值em寄存器pcpc输出a输出1写入t025cbffff指令寄存器irpc输出a输出写入126ffffffa输出127ffffffa输出1ljct128c6ffff存储器值em寄存器pcpc输出a输出1写入t029cbffff指令寄存器irpc输出a输出写入12affffffa输出12bffffffa输出1表4-1 新建的指令系统上表是我所建立的指令系统,指令也不是很多。本来
19、想设计ljnz的指令,意思是如果不想等就跳转,可是经过调试没能做出来。5 调试分析设计完了一个指令系统之后,不能说设计好了就行了,还要对它进行测试。我也做了多次自我的测试,现在举个例子:start:lmov a,#01loop:lsub a,#01ljc loopljz loopljmp start其用我所建立的指令系统将程序汇编成机器码,反汇编指令如表5-1所示:程序地址机器码反汇编指令指令说明007c 01lmov a,#01立即数01h存入累加器a023c 01lsub a,#01累加器a减104a0 02ljc 02若有进位跳到程序02地址06a4 02ljz 02若a=0跳转到程序0
20、2地址08ac 00ljmp 00无条件跳转到程序开始表5-1 程序反汇编指令上述程序跟踪结果,如图5-1所示:06 ljz 0202 lsub a,#0104 ljc 0204 ljc 0202 lsub a,#0100 lmov a,#0102 lsub a,#0106 ljz 0204 ljc 02 00 lmov a,#0108 ljmp 00图5-1 程序跟踪结果根据调试的结果得知,所建立的指令系统可以使用。6 设计体会通过近一个星期的课程设计,结果设计出来了这么一个看似很一般的指令系统。但是我感觉从中还是学习到了不少东西。把以前从书本上学习到的东西完全应用到实践当中。一开始在书上看到的一些什么指令系统、微指令等等东西的时候不知所云,因为它们都是计算机能够识别的,对我来说就很难认识了;而且它们听上去又很抽象,感觉跟人的思维完全不同,又不能从形象的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人情感开发与互助平台合同
- 合同解除及索赔协议
- 改造造价咨询合同范本
- 工地焊接合同范本
- 1999年建筑合同范本
- 保洁简式合同范本
- 维修平台转让合同范本
- 房东租客专用合同范本
- 单位吊顶装修合同范本
- 农村自建租房合同范本
- 眼外伤急救处理
- 2025年证券投资顾问专业考试新版真题试卷(附答案)
- 国家数据局《2024年“数据要素×”项目案例集》
- 2025-2030年中国激光美容仪器行业市场深度分析及发展趋势与投资研究报告
- 电梯维保人员入职安全培训课件
- 矿山收购居间人合同协议
- 皮带工培训课件
- 建筑施工各工种一会三卡样表(安全生产班前会、作业要点卡、风险提示卡、应急处置卡)
- 精神科护理不良事件分析讨论
- 督灸技术操作流程图及考核标准
- 电梯维护保养与安全操作实务培训
评论
0/150
提交评论