关于编制微程序控制简单模型机的组成原理课程设计报告Word文档下载推荐.docx
《关于编制微程序控制简单模型机的组成原理课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《关于编制微程序控制简单模型机的组成原理课程设计报告Word文档下载推荐.docx(18页珍藏版)》请在冰点文库上搜索。
关键词:
微程序控制器原理微指令编码机器指令微代码设计流程图
二、微程序控制器原理
1.设计要求:
用微程序控制器实现以下指令功能,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。
参考实验、,在此基础上增加如下指令
调用:
CALLaddr;
指令功能与80X86相同,addr是8位二进制地址
返回:
RET;
存储器到存储器传送:
MOVmemi,memj;
memi←(memj),i<
>
j,memi内存单元地址
带左移的加法运算:
ADDRi,Rj,N;
N,Rj中内容不变
2、设计原理及设计思想:
本设计的核心是一个简单的cpu,CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如下图所示。
CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
这此次设计中用到了程序计数器,系统的程序计数器(PC)和地址寄存器(AR)集成在一片CPLD芯片中。
CLR连接至CON单元的总清端CLR,按下CLR按钮,将使PC清零,LDPC和T3相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线上的数据打入PC。
本模型机共有七条指令:
IN(输入)、ADD(二进制加法)、OUT(输出)、,HLT(停机),call(调用)相当于JMP(无条件转移)、ret(返回)、shl(左移)其指令格式如下(高4位为操作码):
其中call指令为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。
根据以上要求,设计数据通路图如下图:
数据通路图
利用CPU的运算器(ALU)、微程序控制器(MC)、通用寄存器(R0)、指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)等的各项功能即这个简单的模型机,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,编写满足要求的应用程序。
通过以下几大步骤完成所需设计。
a.通过分析CPU各个功能部件之间的相互关系,完成实验所需电路图设计,
b.规划出整个应用程序所需要的流程图,为微代码的编写提供清晰的思路
c.利用流程图所给思想,设计微代码格式,编写微指令以及机器指令微代码
d.通过联机操作方式完成测试,检测是否能完成要求中的功能进行分析总结,策划优化方案
A、系统涉及到的微程序流程见下图所示,当拟定“取指”微指令时,该微指令的判别测试字段为P<
1>
测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P<
的测试结果出现多路分支。
本设计用指令寄存器的高6位(IR—IR2)作为测试条件,出现七路分支,占用七个固定微地址单元,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写,微程序流程图上的单元地址为16进制。
00
01
03
30
INADDOUTHTLMOVCALLRET
323033353A3C36
060901010B01
0E
070A0C
0F
080D
01
01
B、电路连接图
C、设计微代码格式,编写微指令以及机器指令微代码
设计思想为:
利用程序计数器(PC)作为每一小节程序段的开始,当拟定“取指”指令后,利用P<
字段进行判别测试。
IN,OUT,ADD,MOV,CALL,RET,SHL,RET作为并行的程序入口。
IN:
完成需要相加的两个数据i、j的输入,并分别存入A、B中,等待运算。
OUT:
完成程序运行结果的输出,在相应的软件OUT的单元以及硬件设施的OUT单元的数码管中均有显示。
ADD:
完成带左移的加法操作,即ADDRi,Rj,N;
N。
首先完成A+B的操作,然后再利用指令编写完成左移功能。
MOV:
完成存储器到存储器的传送,先送出MEM中地址到R0,继而改变MEM地址,再将R0的地址送回MEM,以达到存储器到存储器的传送的要求。
CALL:
实现程序的调用。
借鉴JMP指令思想,完成指令间的跳转,以实现调用的目的。
在设计中,为使调用效果能有更直接的体现,我们将SHL(左移)操作嵌入到调用过程中,使结果更加具体的展现。
RET:
返回CALL所调用时B中所存储的PC值,达到返回的作用。
SHL:
实现左移操作,作为CALL指令所调用的内容,使CALL指令实现具体的功能,使结果更清晰直接。
HLT:
停机操作。
1、利用流程图所给思想,设计微代码格式,编写微指令以及机器指令微代码
a.机器指令以及微指令格式说明如下:
b.微代码设计中微指令说明
微指令格式
S0---S3的具体功能如下展示:
c.根据以上指令格式以及流程图的设计,将每条指令微代码化,形成微代码表,作为应用程序代码的依据。
所设计的二进制微代码表如下:
d.最后形成的实验程序如下:
;
试
将最后所形成的实验程序装载到联机软件中,刷新指令区域;
将MC单元的编程开关档以及MEM单元的编程开关档均置为“运行”;
按动CON单元总清零按钮CLR,然后通过软件运行程序,观察单步执行结果,并进行分析检测正误。
各步的执行结果如以下图片所示:
1.程序开始运行
(2)从IN单元读入数据送到R0
(3)将R0中的数据送到A中保存
(4)读入的第2个数据送入B中进行保存
(5)进行加法后的结果左移一位操作
(6)将R0中保存的结果送交OUT单元进行显示输出
(7)开始执行CALL指令操作,将PC跳转时的值暂存于B中
(8)执行CALL指令后进行跳转
(9)在调用过程中,实现左移操作
(10)执行RET操作,将暂存于B中的PC值返回到PC中
(11)开始执行MOV操作,从IN中读入数据修改AR值达到修改MEM单元作用
(12)将MEM单元值暂存与R0中
(13)修改MEM单元值
(14)从R0中送回原MEM单元值,完成存储器到存储器的传送
所有运行均正常。
六、总结:
通过本次课程设计,学会了综合的运用所学的计算机组成原理知识来设计并实现一个基本的模型机,并会利用该模型机进行应用程序的编写,实现一系列功能。
1.掌握了简单CPU的组成原理。
深刻掌握了CPU的各个组成部分,即运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)的工作原理和协调方式。
2.学会利用编程思想设计出清晰的流程图,特别注意到各个程序段入口选择的方法。
3.掌握了指令的格式及编码,会编写所要实现的机器指令的微指令,并能通过设计的微程序流程,编写出完整的指令程序。
4.能将所学的计算机组成原理知识融会贯通,设计出较好的模型机。
掌握了微程序的编写运用,模型计算机的数据路径以及微程序控制器的工作原理利用微程序了解释所需的机器指令,以达到设计的目的,完成课程设计的要求
5.理解了团队合作的力量。
通过团队的分工合作,相互探讨,相互帮组,整个课程设计才顺利完成,也达到了我们预期的目的。
通过本次课程设计,所取得收获与暴露的不足如下:
收获:
a)能很好的分工合作,能很好的团队合作,保证了设计的顺利完成;
b)各组员都积极参与,共享设计思想,学会清晰而准确的设计流程图、微代码等;
c)在设计的过程中,能取长补短,在实践中求真理,认真改善设计方案;
d)整个设计思想有自己的方案,不局限于参考,能很好的达到各项标准要求;
e)本设计最具特色的是不仅完成了CALL指令的调用,同时嵌入SHL(左移)操作,使程序功能更强大,充分发挥出CALL的作用。
不足:
a)设计前的准备欠缺,导致了设计过程中的一些阻碍;
b)部分步骤比较简单化,尚有深入的余地;
c)整体的设计也有待提高。
《计算机组成原理实验指导书》
《计算机组成和设计》,David编,清华大学出版社,2003年12月
《计算机组织与结构》,WilliamStallings编,高等教育出版社,2001年8月
《计算机组成与系统结构》,李亚民编,清华大学出版社,2000年4月