计算机组成原理课设报告微程序控制器设计Word格式文档下载.docx
- 文档编号:18241115
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:16
- 大小:1.23MB
计算机组成原理课设报告微程序控制器设计Word格式文档下载.docx
《计算机组成原理课设报告微程序控制器设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课设报告微程序控制器设计Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
IR2和IR3与ELP微控制信号,Cy和Z两个程序状态信号配合,控制PC的置数即程序的转移。
各种转移的条件判断逻辑如下所示:
PC置数逻辑
当ELP=1时,不允许PC被预置
当ELP=0时
当IR3=1时,无论Cy和Z什么状态,PC被预置
当IR3=0时
若IR2=0,则当Cy=1时PC被预置
若IR2=1,则当Z=1时PC被预置
(1)模型机的寻址方式分五种:
累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址;
(2)模型机有一些缺省的指令集,分几大类:
算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。
(3)模型机的指令集有:
算术运算指令:
ADDA,R?
ADDA@R?
ADDA,MMADDA,#II
SUBA,R?
SUBA,@R?
SUBA,MMSUBA,#II
数据传输指令:
MOVA,R?
MOVA,@R?
MOVA,MMMOVA,#IIMOVR?
AMOV@R?
AMOVMM,AMOVR?
#II
输入/输出指令:
INOUT
跳转指令:
JMPMM
移位指令:
RRARLARRCARLCANOP
中断返回指令:
RETI
该模型机微指令系统的特点(包括其微指令格式的说明等):
COP2000模型机的微指令字长为24位,全部为操作控制部分,不含顺序控制字段。
微指令编码采用直接表示法,微地址形成采用计数器方式。
微指令格式为水平型微指令。
模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。
24位控制位作用分别如下:
XRD:
外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
EMWR:
程序存储器EM写信号。
EMRD:
程序存储器EM读信号。
PCOE:
将程序计数器PC的值送到地址总线ABUS上。
EMEN:
将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
IREN:
将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。
EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP:
PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。
MAREN:
将数据总线DBUS上数据打入地址寄存器MAR。
MAROE:
将地址寄存器MAR的值送到地址总线ABUS上。
OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里。
STEN:
将数据总线DBUS上数据存入堆栈寄存器ST中。
RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定。
RWR:
写寄存器组R0-R3,寄存器R?
CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
FEN:
将标志位存入ALU内部的标志寄存器。
X2、X1、X0:
三位组合来译码选择将数据送到DBUS上的寄存器。
WEN:
将数据总线DBUS的值打入工作寄存器W中。
AEN:
将数据总线DBUS的值打入累加器A中。
S2、S1、S0:
三位组合决定ALU做何种运算。
表-2S2S1S0功能表表-3X2X1X0功能表
S2S1S0
功能
000
A+W加
001
A-W减
010
A或W
011
A与W
100
A+W+C带进位加
101
A–W–C带进位减
110
A取反
111
A直通
X2X1X0
输出寄存器
IN_OE外部输入门
LA_OE中断向量
ST_OE堆栈寄存器
PC_OEPC寄存器
D_OE直通门
R_OE右移门
L_OE左移门
没有输出
1.3设计环境
伟福COP2000型计算机组成原理实验仪,微机,相关虚拟软件。
第二章设计方案
2.1设计思路
根据所编写的指令系统的内容要求,首先用MOV指令给寄存器和累加器传送立即数,实现立即数寻址。
再用寄存器寻址方式,把寄存器的数据传送到另一个累加器,用ADD指令对两者进行相加运算。
用寄存器间接寻址方式,把寄存器里的数据作为地址,将这个地址对应的存储器里的数据传送到累加器,利用movr,a和text,jmp,jz等指令实现在存储器中存储一系列的数据。
微指令的的基本格式由操作控制字段和顺序控制字段组成,而此模型机只由操作控制字段组成,24位操作控制信号排列
2.2设计的指令系统
MOVA,#01H立即数寻址,传送指令,将01h传送给累加器a
LOOP:
MOVR0,#01H立即数寻址,将01h传送给r0
ADDA,R0寄存器寻址,加法操作,将r0的值与a相加,结果存入a中
SUBA,@R0寄存器间接寻址,减法将R0的值当作是内存地址,再将此地址的值与A相减,最后放入A。
ADDA,01H存储器直接寻址,寻找出01地址中的值,
用A和此地址的值相加,最后放入A
CPLA累加器寻址,将a的值取反
OUT
JMPLOOP//无条件跳转,跳转到LOOP
2.3指令流程图及其微程序清单
MOVA,#01H
MOVR0,#01H
ADDA,R0
SUBA,@R0
ADD,02H
Cola
JMPLOOP
第三章调试过程
3.1实验步骤
(1)本指令系统涉及8条指令,分别完成数据传送,进行加、减和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
具体指令设计如下:
(2)微程序设计
将窗口切换到“uM微程序”窗口,设计每条指令的微程序。
每个程序开始要执行的第一条微指令应是取指操作,因为程序复位后,PC和uPC的值都为0,所以微程序的0地址处就是程序执行的第一条取指的微指令。
取指操作要做的工作是从程序存储器EM中读出下条将要执行的指令,并将指令的机器码存入指令寄存器IR和微程序计数器uPC中,读出下条操作的微指令。
取指设计如下(CBFFFF):
1)MOVA,#01H这条指令是把立即数1从存储器EM中取出,放入累加器A中。
微程序设计如下(C7FFF7):
2)MOVR0,#01H这条指令是把立即数1从存储器EM中取出,放入寄存器R0中。
微程序设计如下(C7FBFF);
3)ADDA,R0这条指令是寄存器寻址,将R0的值取出放入W中与A相加,再将结果放入A。
它由三个指令周期。
微程序设计如下:
第一步,把R0的值放入累加器W中
第二步,从D中读出A的值并与W相加,结果放到A中
4)SUBA,@R0这条指令是寄存器间接寻址,将以R0为地址的数值取出放入W中与A相减,再将结果放入A。
它由四个指令周期。
第一步,把R0的值放入地址寄存器MAR中
第二步
从MAR中读出以R0为地址的值放入累加器W中
第三步将A的值与W值相减
5)CPLA将A的值取反在存入A中
6)OUT将累加器的值送到输出端并输出:
7)JMPLOOP
3.2出现的问题与解决办法
(1)在实验过程中运行后的结果与理论结果不一致。
答检查存入的机器指令和连线是否正确,检查输出结果,与理论值一样
(2)实验过程中,刚开始的时候,运算器看上去连线均没错,但是数据总线
不是显示红色的,所以无论如何都不能正常显示数据,
答只有将数据线设为红色才行
(3).在操作[文件|调入指令系统/微程序]时因为操作上的原因出错了。
查阅计算机主城原理的课本,后来经过几番尝试之后知道了怎么调入、怎么修改微指令。
(4)调试微程序出现了错误,经过改正查书改正过来了。
控制信号的问题,经过书上和老师的指导,才懂得了。
(5).应多次改进设计出更精准,更有用,更好的指令系统。
小结
这次微程序程序设计主要是要求我们设计一个指令系统,其中包含加,减,数据传送和无条件转移指令操作,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
在通过设计的过程中,大概理解了各种指令操作和寻址方式。
学会了能灵活理解他们之间的关系,包括像操作与寻址方式之间的搭配等。
刚刚看到课程题目时觉得无从下手,但是经过查阅相关资料之后对微指令有了了解。
自己编写了指令,接着便开始上机操作,设计指令系统时还算顺利,我觉得微程序的设计是个非常有意思的工作,不仅可以自己设计指令集,而且要自己动手开关控制信号,每一步都是在和计算机进行深层次接触,看着自己编的汇编程序在自己的指令集中一步步的运行直至成功,有种专业自豪感。
自从学习了计算机组成原理并做了课程设计,我觉得我才真正接触计算机。
兴趣固然重要,可踏实努力也是很重要的,在以后的专业道路上,我一定会多看书,多实践,多提问,多讨论,努力进取,只有这样才能取得成功。
为以后而奋斗。
在这次课程设计中,遇到了很多问题,像对各位数所代表的具体含义仍然不是十分清楚,在设计微程序的时候,对每一条指令所用的cpu周期不能灵活掌握,希望在以后的学习中可以对其进行更加深入的理解。
参看资料:
计算机组成原理(第二版)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 报告 微程序 控制器 设计