微程序设计组成原理课程设计报告_第1页
微程序设计组成原理课程设计报告_第2页
微程序设计组成原理课程设计报告_第3页
微程序设计组成原理课程设计报告_第4页
微程序设计组成原理课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、 目录i成绩评定表1.2ii成绩评定表2.3iii课程设计任务书.4一、 摘要.5二、 微程序控制器原理.5三、 总体设计(系统构成).6四、 详细设计.7五、 测试.13六、 设计中出现的问题和解决方法.17七、 结论.18八、 参考文献.18九、 个人总结.18本科学生课程设计任务书课程设计题目微程序设计学院计算机学院专业网络工程年级2008已知参数和设计要求:用微程序控制器实现以下指令功能调用:calladdr ;指令功能与80x86相同,addr是8位二进制地址 返回:ret 存储器到存储器传送:mov memi , memj; memi ß(memj), i<>

2、j,memi内存单元地址带右移的加法运算:add ri , rj , n; ri ß(ri)+(rj)>>n ,rj中内容不变 n=0-7学生应完成的工作:根据模型计算机的数据路径以及微程序控制器的工作原理,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。参考实验5.3、6.1。上机调试并输出正确结果,给出完整的设计报告。目前资料收集情况(含指定参考资料):计算机组成原理实验指导书计算机组成和设计,david a.patterson编,清华大学出版社,2003年12月计算机组织与结构,william stallings编

3、,高等教育出版社,2001年8月计算机组成与系统结构,李亚民编,清华大学出版社,2000年4月课程设计的工作计划: 序号课程设计工作进度起止日期1课程设计任务书下发2010.12.62文献查阅和资料准备2010.12.6-2010.12.203课程设计编码的设计与测试2011.1.4-2011.1.54撰写设计报告和设计验收2011.1.6-2011.1.9任务下达日期 2010 年 12 月 6 日完成日期 2011 年 1 月 9 日指导教师 (签名)学生 (签名)一.摘要利用cpu与简单模型机设计实验中所学到的实验原理以及编程思想,硬件设备,自拟编写指令的应用程序,用微程序控制器实现了一

4、系列的指令功能。分析了本次课程设计需要实现得指令,并结合前几次实验所学知识,我们选择了简单模型机来完成此次设计。本实验要实现一个简单的 cpu,并且在此cpu 的基础上,继续构建一个简单的模型计算机。完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序cpu 在写入相应的微指令后,就具备了执行机器指令的功能。在本设计中完成了基本的数据输入输出(in,out),带左移的加法运算(add ri , rj , n; ri ß(ri)+(rj)<<n ,rj中内容不变),存储器到存储器的传送(mov memi , memj)以及call与re

5、t指令的实现。整个过程可分为分析功能,设计程序流程图,编写微指令,编写微程序,联机输入调试几部分。 关键词:微程序控制器原理 设计流程图 微指令编码 编写微程序 2、 微程序控制器原理2.1设计要求 用微程序控制器实现以下指令功能,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。参考实验5.3、6.1,在此基础上增加如下指令调用:calladdr ;指令功能与80x86相同,addr是8位二进制地址 返回:ret ;返回存储器到存储器传送:mov memi , memj; memi ß(memj), i<>j,memi内

6、存单元地址带左移的加法运算:addri , rj , n; ri ß(ri)+(rj)<<n ,rj中内容不变 2.2微程序设计的基本思想将微操作用微指令表示,固化在存储单元,编制对机器指令进行取指、译码和执行的微指令序列(微程序),执行该微程序,完成该机器指令的执行。其基本结构如下: 图12.3设计原理及设计思想要实现以上指令功能,结合所学知识,我们选择简单模型机来实现。本设计的核心是一个简单的cpu,cpu由运算器(alu),微程序控制器(mc),通用寄存器(r0),指令寄存器(ir),程序计数器(pc)和地址寄存器(ar)组成。这个cpu 在写入相应的微指令后,就具

7、备了执行机器指令的功能,但是机器指令一般存放在主存当中,cpu 必须和主存挂接后,才有实际的意义,所以还需要在该cpu 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。其基本组成如下图所示: 图2系统的程序计数器(pc)和地址寄存器(ar)集成在一片cpld 芯片中 。clr 连接至con单元的总清端clr,按下clr 按钮,将使pc 清零,ldpc 和t3 相与后作为计数器的计数时钟,当load为低时,计数时钟到来后将cpu 内总线上的数据打入pc。此次设计,本机模型共实现七条指令:in(输入),out(输出),addr(带左移的加法),call(调用),ret(返回)

8、,mov mem1,mem2(移动),hlt(停机)。三、总体设计(系统构成) 分析理解完设计要求过后,利用cpu的运算器(alu),微程序控制器(mc),通用寄存器(r0),指令寄存器(ir),程序计数器(pc)和地址寄存器(ar)等各个功能部件,完成以下步骤,实现微程序设计。 i.通过分析cpu各个功能部件之间的关系,根据所选模型机,连接电路。ii. 根据数据通路,写出每条指令的执行过程,画出微程序流程图。 iii.根据微程序流程图,参照a,b,c字段的含义,设计微指令。 iv.编写机器指令微代码和微指令程序。 v.通过联机操作方式,输入程序并测试。4、 详细设计4.1步骤一:选择并连接电

9、路因为选择的是简单模型机,则参照以下简单模型机电路图连接电路:连线完成后,仔细检查是否有错连,漏连以及反连的情况,确认无误后,打开电源,听是否有“滴滴”的报警声,若没有,则连线完成。4.2步骤二: 根据需要设计的指令,画出微程序流程图 分析指令,根据计算机的工作过程,结合取址阶段,执行阶段cpu的各个工作,设计出以下微程序流程图:0b30a<<1r0a+br0r0rr0br0anoppcarpc+1pcr0outbpcinarinarpcb#memr0mempcr0meminr0noppcarpc+1pcmemirp<1>01010101010101addinouthl

10、tmovcallret0001033030040506073233353a08090a3e3c图34.3步骤三:根据微程序流程图,参照a,b,c字段的含义,设计微指令利用程序计数器作为每一个小节程序段的开始,当拟定“取指”指令后,利用p<1>字段进行判别测试各个指令的程序入口。微指令格式及a,b,c字段含义如下: 图4其中ma5ma0 为6 位的后续微地址,a、b、c 为三个译码字段,分别由三个控制位译码出多位。c 字段中的p<1>为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支, s3-s

11、0的具体功能如下图: 根据以上指令格式以及程序流程图的设计,将每条指令微代码化,结果如下:地址十六进制高五位s3-s0a字段b字段c字段ma5-ma00000000100000000000000000000000101006d430000000001101011010000110310707000010000011100000111000030001404000000000001010000000100040024050000000000100100000001010504b206000000001010001000000110060014070000010000010100000001110

12、703b2010000000010100010000000013218300100011011001100000000000133280401001010000000010000000001350000350000000000000000001101013a186008000110000110000000001000081030190001000000110000000010010918600a0001100001100000000010100a2004010010000000000100000000013e006d4b0000000001101101010010110b002c0c00000

13、00000101100000011000c1051410000000001010001010000013c00d341001100001101001101000001将其化为十六进制微程序如下:$m 00 000001 ;nop$m 01 006d43 ;pc->ar,pc+1$m 03 107070 ;mem->ir,p<1> ;/带左移的加法/$m 30 001404 ;r0->a$m 04 002405 ;r0->b$m 05 04b206 ;a+b->r0$m 06 001407 ;r0->a$m 07 03b201 ;a<<

14、1->r0 ;/in/$m 32 183001 ;in->r0 ;/out/$m 33 280401 ;r0->out ;/hlt停机/$m 35 000035 ;nop ;/mov/$m 3a 186008 ;in->ar$m 08 103009 ;mem->r0$m 09 18600a ;in->ar$m 0a 200401 ;r0->mem ;/call/$m 3e 006d4b ;pc->ar,pc+1$m 0b 002c0c ;pc->b$m 0c 105141 ;men->pc ;/ret/$m 3c 00d341 ;b-

15、>pc4.4步骤四:编写机器指令微代码和微指令程序机器指令和微指令格式说明如下:in: 完成需要相加的两个数据i,j的输入,并分别存入a,b中。out:完成程序运行结果的输出,显示在相应的out单元addr:完成带左移的加法mov:完成存储器到存储器的传送,先送出mem中的地址到r0,继而改变mem地址,再将r0的地址送回mem,以达到存储器到存储器的传送要求。call:实现程序的调用,完成指令间的跳转。ret:返回call所调用时的pc值hlt:停机操作最后形成的实验程序如下:;*$p 00 20;begin: in r0$p 01 00;addr r0 r0(带左移的加法)$p 02

16、 30;out r0$p 03 e0;call fun1$p 04 20$p 05 50;hlt停机$p 20 a0;mov men men$p 21 30;out r0$p 22 c0; ret;* ;/取指令/$m 00 000001 ;nop$m 01 006d43 ;pc->ar,pc+1$m 03 107070 ;mem->ir,p<1> ;/带左移的加法/$m 30 001404 ;r0->a$m 04 002405 ;r0->b$m 05 04b206 ;a+b->r0$m 06 001407 ;r0->a$m 07 03b201

17、;a<<1->r0 ;/in/$m 32 183001 ;in->r0 ;/out/$m 33 280401 ;r0->out ;/hlt停机/$m 35 000035 ;nop ;/mov/$m 3a 186008 ;in->ar$m 08 103009 ;mem->r0$m 09 18600a ;in->ar$m 0a 200401 ;r0->mem ;/call/$m 3e 006d4b ;pc->ar,pc+1$m 0b 002c0c ;pc->b$m 0c 105141 ;men->pc ;/ret/$m 3c

18、00d341 ;b->pc4.5步骤5:通过联机操作方式,输入程序并测试联机输入:选择联机软件的“【转储】【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程序和微程序写入指定单元。选择联机软件的“【转储】【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标左键单击指令区的微存tab 按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6 位数据并回车,编辑框消失,并以红色显示写入的数据。联机运行

19、:将时序与操作台单元的开关kk1 和kk3 置为运行档,进入软件界面,选择菜单命令 “【实验】【简单模型机】”,打开简单模型机数据通路图。按动con 单元的总清按钮clr,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序,当模型机执行完jmp 指令后,检查out 单元显示的数是否为in 单元值的2 倍。在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、数据总线以及微指令显示和下位机是否一致。5、 测试 对应微指令$m 01 006d43 ;pc->ar,pc+1(取指中) 对应微指令$m 32 183001 ;in->r0(in中)对应微指令$

20、m 05 04b206 ;a+b->r0(addr中)对应微指令$m 07 03b201 ;a<<1->r0(addr中) 对应微指令$m 33 280401 ;r0->out(out中) 对应微指令$m 0c 105141;men->pc (call中)对应微指令$m 0a 200401;r0->mem(mov中)实验结果:实验结果完全符合当初的设计,各个微指令都实现了预先的设计目标,机器程序的测试也达到了预期的效果。程序执行的各个阶段均按正确的数据通路运行。六、设计中出现的问题和解决方法(一)出现问题:问题一:编码前画流程图时散转到add,in,o

21、ut,mov,call,ret时,不知道微指令地址如何规定。问题二:将机器指令和微指令以联机写入的方式写入后,打入03h,发现做了add并将结果右移一次之后,在r0出现了c0(本应为0c)。(二)对应的解决方法: 问题一解决方法:询问指导老师后,知道微指令地址等于散转地址加机器操作码的值。按此规则规定各微指令地址:add为30,in为32,out为33,hlt为35,call为3e,ret为3c。问题二出现运行错误可能是指令写错了,或者就是接线的问题,我们找了实验的时候的正确代码,联机写入运行,发现出现相同的问题,于是将前者的原因排除,检查连线,发现out单元的d0.d7接口与数据总线的xd7

22、.xd0接口连线有误。七、总结这次组成原理课程设计,我们两人一组,在平时组成原理实验的基础上,完成微程序设计。我们一起查阅所需资料,在实验室编写程序,并在完成后撰写课程设计实验报告。我们积极配合,在一天的时间内,基本完成了本次课程设计要求的基本要求和功能。通过紧张有序的课程设计实践,不仅让我们对基本模型机、微程序的编制、写入过程有了进一步的了解, 也让我们觉得自己的动手能力有了很大的提高。在课堂上,我们学习了一系列与这次课程设计相关的知识,包括微指令格式,微程序控制器工作原理,一台指令的执行过程,以及在指令执行过程时的数据通路等等,但是经过这次课程设计,我们懂得了如何将这些具备的知识融合起来,

23、根据需要的指令来编写机器代码和微程序,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。通过本次课程设计,所取得收获与暴露的不足如下:·收获:深入掌握部件单元电路,并在此基础上,构建简单模型机和复杂模型机。能够根据需要的机器指令,编写微程序。 掌握了机器指令码和微指令码如何编写,能够熟练的联机操作并根据数据通路检验代码的正误,调试程序。·不足:因为对机器指令码与微指令码不熟悉,所以在编码过程中,必须对照着表格,一点点的写出0,1串,致使效率很低,并且很容易发生错误。八.参考文献1计算机组成原理实验指导书,计算机学院编2计算机组成原理,蒋本珊编,清华大学出版社,2004

24、年3月3计算机组织与结构,william stallings编,高等教育出版社,2001年8月4计算机组成与系统结构,李亚民编,清华大学出版社,2000年4月九.个人总结9.1计算机组成原理课程设计主要任务分配 这次课程设计,由黄进(20085670)和王博君(20085680)两人一组完成,具体任务分配情况如下: 黄进同学:编写实验程序,负责编写call指令,out指令,addr指令的微指令,连接电路,联机运行和测试 王博君同学:设计流程图,负责编写mov指令,in指令,ret指令的微指令,连接电路,联机运行和测试9.2计算机组成原理课程设计个人总结 黄进通过本次课程设计,我学会 了综合运用

25、所学知识来设计并实现一个基本模型机,既巩固的知识,也锻炼的自己的动手能力。通过此次锻炼,我有如下几点心得总结:1.在这次计算机组成原理课程设计中,掌握了微程序设计的基本原理及步骤,了解了简单cpu的组成和它们之间的工作原理和协调方式。在自己动手编写微程序的过程中,掌握了微程序的编写运用,模型机的数据路径及微程序控制器的工作原理。在我负责的任务中,编写各个机器指令的微指令时,我开始对于控制信号a,b,c字段各个信号的具体含义并不十分清楚,导致编码时遇到困难。经过老师的讲解后,弄清楚了其含义,顺利编写出了微指令。2.在编写实验程序的过程中,对散转p<1>的理解有错误,导致微程序和机器指令不能对应,经过仔细检查与和同组同学讨论,最后正确做到了各个程序段的入口选择。同时,也认识到了实践的重要性,课堂上学到的知识只有经过亲自动手检验,才会更加印象深刻。3.这次课程设计增强了我的动手能

温馨提示

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

评论

0/150

提交评论