计算机组成原理课程设计,跳转,转移指令的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、课程设计的题目
基本模型机的设计——跳转、转移指令的实现
2、设计的目的及设计原理
2.1课程设计目的
运用所学的知识,通过使用软件HKCPT掌握各个单元模块的工作原理将其组成完整的系统,并了解程序编译、加载的过程,以及通过微单步、单拍调试理解模型机中的数据流向。此次课程设计主要目的有两个:其一,掌握各个单元模块的工作的原理,进一步将其组成完整的系统,构造一台基本的模型计算机;其二,是学会规划读/写内存、寄存器、数值计算等功能,并且编写相应的微程序,在具体上机的过程中,高度各个模块单元以便掌握整机的概念。
2.2课程设计原理
计算机中CPU是核心,它的实现是通过指令和微指令实现的,指令对应一段微程序,而且微程序是用微指令来实现的,微指令是有几个微命令组成,从而能够保证指令的实现。
在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之配合的微指令来实现的,即每条机器指令都对应一个微程序。
在各个模块实验中,各模块的控制信号都是由实验者手动模拟产生的。而在真正的实验系统中模型机的运行是在微程序的控制下进行的,可实现指定的指令功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和与之相配合的时序来完成,即1条机器指令对应一个微程序。
部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而这次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用五条机器指令:SUB(减法)、ADD(二进制加法)、STA(存数)、MOV(赋值)、JMP(无条件转移)、JC、RRC(循环右移)。
3、根据设计要求给出模型机的逻辑框图
其中运算器由2片74L181构成8位字长的ALU单元。2片74LS374作为2个数据锁存器(DR1、DR2),8芯插座ALU-IN作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。数据输入锁存器DR1的EDR1为低电平,并且D1CK有上升沿时,那来自数据总线的数据打入锁存器DR1。同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。
模型机逻辑框图如下:
4、设计指令系统,并分析指令格式
4.1指令系统
此次实验涉及的指令有以下几种:
MOV R1,#Data 将立即数Data送到寄存器A中
MOV R0,#Data 将立即数Data送到寄存器RI中
MOV A, #Data 将立即数Data送到寄存器A中
JMP Addr 跳转到Addr处开始执行
JC Addr 如果有进位(借位)跳转到Addr处开始执行RLC A 带进循环左移一位
Add A,R0 将寄存器R0中的数据加到累加器A中
Sub A,R1 将累加器A中的数据减去寄存器R1中的数据STA Addr 将寄存器中内容写入存储器中
HALT 停机指令
指令系统如下表:
4.2指令格
式
一般指令由操作码和操作码组成,如下所示:
此实验所涉及指令的格式如下: MOV 指令采用双字节指令,其格式如下:
第1字节:操作码及Ri
第2字节:Data
JMP 指令采用双字节指令,其格式如下:
第1字节:操作码 第2字节:Addr
JC 指令采用双字节指令,其格式如下:
第1字节:操作码 第2字节:Addr
RLC 指令采用单字节指令,其格式如下:
第1字节:操作码
ADD 指令采用单字节指令,其格式如下:
第1字节:操作码
SUB 指令采用单字节指令,其格式如下:
第1字节:操作码及Ri
STA 取数据指令,其格式如下:
第1字节:操作码Data 第2字节:Addr
停机指令(HALT ),其格式如下:
第1字节:操作码
5.微程序的设计及其实现的方法
5.1微程序入口地址的形成
在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至少有24个微操作控制信号,可由微代码直接实现。如果采用多组编码译码,那么24位微代码通过二进制可实现2n个互斥微操作控制信号。
每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。
5.2微指令格式的设计
一条微指令的一般格式是如下图:
5.3后续微地址的产生方法
由于本系统中指令系统规模不大,功能较简单,微指令采用全水平、不编码的方式,每一个微操作控制信号由一位微代码来表示,24位微代码至少可表示24个不同的微操作控制信号。用增量方式来控制微代码的运行顺序,每一条指令的微程序连续存放在微指令存储器连续的单元中。在本系统内,MLD为置微地址的控制信号,MCK为工作脉冲。当MLD=0、MCK有上沿时,把MD0~MD7的值作为微程序的地址,打入微地址寄存器。当MLD=1、MCK有上升沿时,微地址计数器自动加1。微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。例如,确定了一条程序的微程序入口地址微07H,那么当执行完07H这条微指令后微地址加1,指向08H微地址。微地址寄存器由2片74LS161组成。在模型机停止状态下,微地址被清零。在实验平台开始运行时,微地址从00H开始运行。且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令。
6.模型机当中时序的设计安排
时序电路由监控单元来控制时序输出(PLS1,PLS2,PLS3,PLS4)。所用的时序电路
可以产生4个等间隔的时序信号PLS1,PLS2,PLS3,PLS4.为了便于监控程序流程,由监控单元输出PO信号和SIGN脉冲来实现STEP(微单步)、GO(全速)和HALT(暂停)。当试验处于运行状态,并且是微单步执行时,PLS1,PLS2,PLS3,PLS4分别发出一个脉冲,全速执行时,PLS1,PLS2,PLS3,PLS4脉冲将周而复始地发送出去。
由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散传方式,微地址采用计数增量方式,所以可确定模型机中的时序单元所产生的每一拍的作用。