武汉理工大学计算机组成原理课程设计--跳转指令的实现
更新时间:2023-09-07 09:06:01 阅读量: 教育文库 文档下载
课 程 设 计
题 目 学 院 专 业 班 级 姓 名 指导教师
基本模型机的设计 计算机科学与技术 计算机科学与技术
计算机0609
王凌霄 程
艳 芬
2009 年 1 月 2 日
课程设计任务书
学生姓名: 王凌霄 专业班级: 计算机0609 指导教师: 程艳芬 工作单位:计算机科学与技术学院 题 目: 基本模型机的设计——跳转指令的实现 初始条件:
理论:学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。
实践:计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。
2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。 3、课程设计的书写报告应包括: (1)课程设计的题目。
(2)设计的目的及设计原理。
(3)根据设计要求给出模型机的逻辑框图。 (4)设计指令系统,并分析指令格式。
(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方
法以及微程序入口地址的形成)。
(6)模型机当中时序的设计安排。 (7)设计指令执行流程。
(8)给出编制的源程序,写出程序的指令代码及微程序。 (9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中
跳转指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。
(10)课程设计总结(设计的特点、不足、收获与体会)。
时间安排:设计时间为第18周
周一:熟悉相关资料。 周二:系统分析,设计程序。 周三、四:编程并上实验平台调试 周五:撰写课程设计报告。
指导教师签名: 2008年 12 月 25 日 系主任(或责任教师)签名: 2008年 12 月 26 日
基本模型机的设计 ——跳转指令的实现
1设计的目的及设计的原理
1.1设计的目的
1、掌握了各个单元模块的工作原理,进一步将其组成整的系统,构造成1台基本的模型计算机。
2、根据实验要求,规划读写内存、寄存器、数值计算等功能,并且编写相应的微程序。用软件HKCPT的微单步功能观察指令运行状态,掌握微程序控制原理。
3、利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念,具体上机调试各个模块单元以便进一步掌握整机的概念。
1.2设计的原理
在各个模型实验中,各模块的控制信号都是由实验者手动模拟产生的。而在真正的试验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都由微指令和与之相配合的时序来完成,既1条机器指令对应1个微程序。
2模型机的总体设计
2.1基本模型机系统分析与设计
1、简单的模型计算机是由算术逻辑运算单元、微程序单元、堆栈寄存器单元、累加器、
启停、时序单元、总线和存储器单元组成。
2、在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减指令。把通用寄存器作为累加器A们进行左、右移等操作指令,整体构成一个单累加器多寄存器的系统。
3、根据设计要求,对实验仪硬件资源进行逻辑组合,便可设计出该模型机的整机逻辑框图。
2.2模型机的逻辑框图
3设计指令系统
本实验平台内采用的是8位数据总线和8位地址总线,在设计指令系统时考 虑有如下几种类型的指令和寻址方式及编码方式:
3.1指令类型
3.1.1算术/逻辑运算类指令
如:加法、减法、取反、逻辑运算
ADD A,Ri , SUB A,Ri
3.1.2移位操作类指令
带进位或不带进位的移位指令 RRC A , RLC A , RR A
3.1.3数据传送类指令
CPU内部寄存器之间数据传递 MOV A , Ri MOV Ri , A
3.1.4程序跳转指令
跳转指令分为无条件跳转指令和有条件跳转指令。可根据寄存器内容为零来标志(ZD)、
有无进位来标志(CY),也可根据用户自定义标志。 JMP addr 无条件跳转 JZ addr ZD=0 时跳转 JC addr CY=0 时跳转 JN addr 自定义
3.1.5存储器操作类指令
存储器读/写指令。把内存某单元内容写入寄存器中或把寄存器中的内容写入存储器。如: LDA addr (addr)->A STA addr (A)->addr
3.2操作数寻址方式及编码
3.2.1直接地址寻址
如:双字节指令
LDA addr (addr)->A STA addr (A)->addr
第1字节
操作码 第2字节
操作数地址addr
3.2.2寄存器直接寻址
指令字节中含有寄存器选择码,决定选择哪个寄存器进行操作。 如:单字节指令
MOV A , Ri (Ri)->A
单字节
操作码与Ri选择码
如:双字节指令
MOV Ri ,#data data->Ri
第1字节
操作码与Ri选择码 第2字节
Data
3.2.3寄存器间接寻址
如:单字节指令
MOV A ,@Ri (Ri)->A
Ri选择码
操作码
3.2.4立即数寻址
如:单字节指令
MOV A ,#data data->A MOV Ri,#data data->Ri 第1字节
操作码与Ri选择码 第2字节
Data
4设计微程序及其实现的方法
4.1微指令格式的设计
在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可右微代码直接实现。如果采用多组编码译码,那么24位微代码通过二进制译码可实现2n个互斥的微操作控制信号。
由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。
4.2后续微地址的产生方法
每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。微
指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下下一条微指令地址。例如:确定了一条程序的微程序入口地址位07H,那么当执行完07H这条微指令后微地址加1,指向08H微地址。微地址寄存器由2篇74LS161组成,当模型机在停机状态下,微地址被清零。当实验平台开始运行时,微地址从00H开始运行。且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令。
4.3微程序入口地址的形成
在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0~MD7,
这种方法成为“按操作码散转”(如下表所示)。
5模型机当中时序的设计安排
1、由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程
序的入口地址采用操作码散转方式,微地址采用技术增量方式,所以可确定模型机中时序单元中所产生的每一节拍的作用。
2、在本实验中,由监控单元产生了一个PLS-O的信号来控制时序产生(如下图所示)。PLS-O信号经过时序单元的处理产生了4个脉冲信号。4个脉冲信号组成一个为周期,为不同的寄存器提供工作脉冲。它们分别实现的功能是:(1)PLS1:微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1.(2)PLS2:PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。(3)PLS3:把24位微指令打
入3片微指令锁存器。(4)PLS4:把当前总线上的数据打入微指令选通的寄存器中。 SIGN PLS1 PLS2 PLS3 PLS4
6设计指令执行流程
在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令周期中都必须有一个机器周期作为“取指令周期”,成为公操作周期。而一条指令共需要几个机器周期取决于指令在机器内实现的复杂程度。
对于微程序控制的计算机,在设计指令执行流程时,要保证每条指令所含有的微操作的必要性和合理性,还要知道总线IAB,IDB,OAB,ODB仅是传输信息的通路,没有寄存器信息的功能,而且必须包证总线传输信息时信息的唯一性。例如本次课程设计中用到的取值微指令、ADD、JMP、RRC、MOVE等指令
6.1取值微指令的执行流程
在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。在处于停机状态时,脉冲PLS1对微地址寄存器无效,微地址寄存器保持为0。脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器中,把模型机置为运行状态,使微程序锁存器输出有效。PLS3把微程序存储器00H单元中内容打入微指令锁存器中,并且输出取指微指令。PLS4把从程序存储器中读出的数据打入指令寄存器中。 在模型机处于运行状态时,脉冲PLS1将微地址寄存器加1,脉冲PLS2将PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。PLS4把当前总线上的数据打入当前微指令所选通的寄存器。
6.2 ADD指令的执行流程
例如:ADD A,Ri,该指令功能为(A)+(Ri)->A,需执行以下微操作:
(PC)+1 PCCK PC ;PC加1,为取下一条指令字节准备
1,PLS4(A) EDR DR1 ;累加器A内容送ALU 2,PLS4(Ri) EDR DR2 ;寄存器Ri内容送ALU
,M,S3,S2,S1,S0X0,X1,ERA
IDB A ;使ALU执行加法,经IDB送入A (A)+(Ri) Cn
C
n 4
ALU O,M
CY ;据加法结果置进位标志
OBUS
(PC) PC IAB OAB ;PC计数器内容做访问内存地址 BUSEIR1,PLSA(RAM) RM ODB IDB IR1 ;从内存该地址单元读出指令寄存器IR1.
此程序由四个微指令周期:
1.PC+1为取下条字节准备,累加器A内容送ALU的DR1锁存器 2.寄存器Ri内容送ALU的DR2锁存器
3.ALU将计算结果送累加器A,据加法结果置进位标志CY 4.取指微指令,从内存读出指令送指令寄存器
6.3 JMP指令的执行流程
例如:JMP addr,该指令功能为addr->PC,需执行如下操作:
(PC)+1 PCCK PC ;PC加1,为取下一条指令字节准备
BUSPLSA(RAM) RM ODB IDB IR2 ;取本指令第二字节IR2 OBUSIR2 PC LAB OAB ;由IR2内容形成转移地址送PC OBUS(PC) PC IAB OAB ;PC计数器内容做访问内存地址 BUSEIR1,PLSA(RAM) RM ODB IDB IR1 ;从内存该地址单元读出指令寄存器IR1
此程序由两个微指令周期:
1.PC+1从内存中取得指令第2个字节送入IR2.
2.IR2内容形成地址转移到PC,从内存中读出指令字节送指令寄存器。
6.4 RRC指令的执行流程
例如:RRC A,该指令功能是将累加器A中的内容带进位CY循环右移一位,即->CY->A7->A6-> ->A1->A0->,需执行如下微操作:
(PC)+1 PCCK PC ;PC加1,为取下一条指令字节准备
X0,X1,ERA,PLS3 (A)、CY A,CY ;控制累加器A带CY右环移一位 OBUS (PC) PC IAB OAB ;PC计数器内容做访问内存地址 BUSEIR1,PLSA (RAM) RM ODB IDB IR1 ;从内存该地址单元读出指令寄存器IR1
此程序由两个微指令周期:
1.PC加1,为取下一条指令字节准备,控制累加器A带CY右环移一位 2.取指微指令,从内存中读出指令送指令寄存器
6.5 MOV指令的执行流程
6.5.1双字节指令MOV A,#data
该指令功能为data->A,需执行如下操作:
PC ;PC加1,为取本指令下一字节备 (PC)+1 PCCK
BUSX0,X1,EIR1,PLSA
ODB IDB A;取出本指令第二字节 (RAM) RM
(PC)+1 PCCK PC ;PC加1,为取下一条指令字节备
OBUS (PC) PC IAB OAB ;PC计数器内容做访问内存地址 BUSEIR1,PLSA (RAM) RM ODB IDB IR1 ;从内存该地址单元读出指令寄存器IR1.
此程序由两个微指令周期:
1.PC+1从内存中取得指令第2个字节送入累加器A。 2.PC+1执行取指微指令,从内存中读出指令送指令寄存器
6.5.2 双字节指令MOV Ri,#data 该指令功能为data->A,需执行如下操作:
(PC)+1 PCCK PC ;PC加1,为取本指令下一字节备
BUSRR,SA,SA (RAM) RM ODB IDB Ri ;取出本指令第二字节
(PC)+1 PCCK PC ;PC加1,为取下一条指令字节备
OBUS (PC) PC IAB OAB ;PC计数器内容做访问内存地址 BUSEIR1,PLSA (RAM) RM ODB IDB IR1 ;从内存该地址单元读出指令寄存器IR1
此程序由两个微指令周期:
1.PC+1从内存中取得指令第2个字节送入寄存器Ri。 2.PC+1执行取指微指令,从内存中读出指令送指令寄存器
7源程序以及程序的指令代码及微程序
7.1跳转、转移指令实现的源程序
MOV A,#82 RRC A MOV A,#32 RLC A MOV A,#18 RLC A JZ 08 ADD A,R0
JC 12 JMP 0A MOV R1,#42 ADD A,R1 STA 40 HALT
7.2 程序的指令序列
00 MOV A,#82
02 RRC A; 03 MOV A,#32; 05 RLC A; 06 MOV A,#18; 08 RLC A; 09 JZ 08; 0B ADD A,R0; 0C JC 12; 0E JMP 0A; 10 MOV R1,#42; 12 ADD A,R1;
7.3 微指令序列 M23-M0
00 [00],[00],[00] 取指指令 01 [00],[00],[00] 02 [00],[00],[00]
03 [00],[00],[00] A->Dbus->DR1 04 [00],[00],[00] Ri->Dbus->DR2 05 [00],[00],[00] ALU->Dbus->A 06 [00],[00],[00] 取指指令
13 STA 40; 15 HALT; 16 HALT; 17 HALT; 18 HALT; 19 HALT; 1A HALT; 1B HALT; 1C HALT; 1D HALT; 1E HALT; 1F HALT;
07 [00],[00],[00] Ri->Dbus->DR2 08 [00],[00],[00] ALU->Dbus->A 09 [00],[00],[00] 取指指令 0A [00],[00],[00]Ri->Dbus->IR2 0B [00],[00],[00] [IR2]- >Abus,Dbus->A
0C [00],[00],[00] 取指指令
0D [00],[00],[00] 0E [00],[00],[00]
0F [00],[00],[00] Ri->Dbus->A 10 [00],[00],[00] 取指指令 11 [00],[00],[00] 12 [00],[00],[00]
13 [00],[00],[00] A->Dbus->Ri 14 [00],[00],[00] 取指指令 15 [00],[00],[00] 16 [00],[00],[00]
17 [00],[00],[00] Dbus->A 18 [00],[00],[00] 取指指令 19 [00],[00],[00] 1A [00],[00],[00]
1B [00],[00],[00] Dbus->Ri 1C [00],[00],[00] 取指指令 1D [00],[00],[00] 1E [00],[00],[00]
1F [00],[00],[00] Dbus->IR2 20 [00],[00],[00] [IR2]->Abus,RAM->Dbus->A 21 [00],[00],[00] 取指指令 22 [00],[00],[00]
23 [00],[00],[00] Dbus->IR2 24 [00],[00],[00] [IR2]->Abus,A->Dbus->RAM 25 [00],[00],[00] 取指指令 26 [00],[00],[00]
27 [00],[00],[00] A>>1 28 [00],[00],[00] 取指指令 29 [00],[00],[00] 2A [00],[00],[00] 2B [00],[00],[00] A<<1 2C [00],[00],[00] 取指指令 2D [00],[00],[00] 2E [00],[00],[00]
2F [00],[00],[00] Dbus->IR2 30 [00],[00],[00] [IR2]->Abus,Dbus->PC 31 [00],[00],[00] 32 [00],[00],[00]
33 [00],[00],[00] A->Dbus->DR1 34 [00],[00],[00] RAM->Dbus->DR2
35 [00],[00],[00] ALU->A 36 [00],[00],[00] 取指指令 37 [00],[00],[00] A->Dbus->DR1 38 [00],[00],[00] RAM->Dbus->DR2
39 [00],[00],[00] ALU->A 3A [00],[00],[00] 取指指令 3B [00],[00],[00] 3C [00],[00],[00] 3D [00],[00],[00] 3E [00],[00],[00] 3F [00],[00],[00] 停机
8. 使用软件HKCPT的实现过程
武汉理工大学《计算机组成原理》课程设计说明书
微地址 00H
M23-M0 4AFFFF
数据流程 取指微指令 RAM->Dbus->IR1 由两个微指令周期组成 Dbus->A 取指微指令 RAM->Dbus->IR1 由两个微指令周期组成 A>>1 取指微指令 RAM->Dbus->IR1 由两个微指令周期组成 Dbus->A 取指微指令 RAM->Dbus->IR1
数据总线 5FH
地址总线 00H
操作寄存器 IR1=5FH
MOV A,#82 17H 18H DDFBFF 4DFFFF RRC A 27H 28H FFF1EF 4DFFFF MOV A,#32 17H 18H DDFBFF 4DFFFF RLC A 2BH 2CH FFE9EF CDFFFF MOV A,#18 17H 18H DDFBFF 4DFFFF
82H 9FH
01H 02H
A=82H IR1=9FH
41H 5FH
无效 03H
A=41H IR1=5FH
32H AFH
04H 05H
A=32H IR1=AFH
由两个微指令周期组成 A<<1 取指微指令 RAM->Dbus->IR1 由两个微指令周期组成 Dbus->A 取指微指令 RAM->Dbus->IR1 18H AFH 07H 08H A=18H IR1=AFH 64H 5FH 无效 06H A=64H IR1=5FH
RLC A 2BH 2CH FFE9EF CDFFFF JZ 08 2FH 30H D4FFFF 4DFFFF
由两个微指令周期组成 A<<1 取指微指令 RAM->Dbus->IR1 由两个微指令周期组成 Dbus->IR2 [IR2]->Abus,Dbus->PC 由四个微指令周期组成 A->Dbus->DR1 Ri->Dbus->DR216
30H B3H
无效 09H
A=30H IR1=B3H
08H 0CH
0AH 0BH
IR2=08H IR1=0CH
ADD A,R0 03H 04H FFFCF9 FF7F79
30H FFH
无效 无效
DR1=30H DR2=FFH
9课程设计总结
这次课程设计让我学到了更多的东西。
一、 应该在做实验以前就浏览实验内容,明确实验流程,了解实验要用到的专业知识,
并通过查资料解决实验前发现的问题,做到心中有数。
二、 虽然之前做过一些预习,但是到了实际实验的时候又会发现一些意想不到的问题
要做临时的处理。
三、 做的时候应该有耐心,因为机器等原因,很多时候要重新开始,要耐心做完。同
时也要细心,因为微指令的步骤很多,而且数字很多,对于二进制与十六进制的转换要细心。
四、 通过上机操作可以加深理解,平时没有发现的问题也能够发现及解决。而且也能
提高我们的动手能力。
五、 更加理解了指令执行的流程,也理解了微程序是怎样一步步工作的。
六、 不仅要完成实验要求上的内容,更要明白计算机的工作原理,这才是最重要的。
对于实验的每一步都应该深入思考。
七、 这次设计是两人一组的,我们要有团队合作精神,互相帮助,共同进步。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------_____________
正在阅读:
武汉理工大学计算机组成原理课程设计--跳转指令的实现09-07
全站仪测角、测距记录表08-31
高中语文面试重点课文05-03
身边的公共设施教案05-24
人文完整版(医师定期考核题库)03-26
当代中国需要礼乐重建12-26
高中语文课前演讲稿06-11
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 武汉理工大学
- 指令
- 组成
- 原理
- 课程
- 实现
- 计算机
- 设计
- 2017-2018年苏州市吴中区度苏教版八年级上期中考试数学试题含答案
- 强化三基管理确保安全生产
- 翻译专业翻译基础知识考研必备
- 党建知识竞赛题库
- 2015-2020年中国电饭煲行业分析预测及未来发展趋势报告
- 中国地质大学(武汉)环境化学00 Introduction
- 2015北京大学外国哲学考研 招生人数 参考书 报录比 复试分数线 考研真题 考研经验 招生简章
- Newcastle-Ottawa Scale (NOS)文献质量评价量表(中文版)
- 矿井水文地质学基础知识
- 2011年乡镇副镇长述职报告
- 部编(统编)人教版四年级上册小学语文期末专题复习(句子专项训练)
- ABB-ACS510-变频器 标准宏快速调试说明
- 西安交通大学考研真题管理学-2005
- 毕业设计(论文)开题报告
- 学前教育学考试大纲
- 管道的设计计算——管径和管壁厚度(精)
- 社会主义核心价值体系(新)
- BWD3K干式变压器温控器使用说明书
- 2019秋行政组织学形考任务五
- 19年高考物理大一轮复习第14章选考部分第4讲光的干涉、衍射和偏振电磁波与相对论学案