计G161第十组第一周课程设计报告.docx
《计G161第十组第一周课程设计报告.docx》由会员分享,可在线阅读,更多相关《计G161第十组第一周课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
计G161第十组第一周课程设计报告
计算机组成原理课程设计报告
——16位机微程序控制器指令系统的设计与实现
院(系、部):
信息工程学院
小组成员姓名
王一龙
孔瑶
李源
高昂
班级:
计G161
指导教师:
马莉
一、设计题目
16位机微程序控制器指令系统的设计与实现
二、设计目的
通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的:
1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;
2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;
3、学习微程序控制器的设计过程和相关技术。
三、设计说明
1、控制器设计是学习计算机总体组成和设计的重要的部分。
要在TEC—2000教学计
算机上完成这项设计,必须清楚懂得:
2、TEC—2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7GAL20V8组成。
3、TEC—2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号
都是由微程序小板上的7片控制存储器给出的。
4、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。
5、要明白TEC—2000教学机支持的指令格式及指令执行流程分组情况;理解TEC—2000教学中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。
6、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。
7、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,
具体过程包括:
(1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致;
(2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近;
(3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识地体会这些信号的控制作用;
(4)将设计好的微码,装入控制存储器的相应单元;
(5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。
四、设计内容
1、完成微程序控制器指令系统设计,主要内容是由学生自己设计29条基本指令和1条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。
2、首先看懂TEC—2000教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机组合逻辑控制器中已经设计好并正常运行的几条典型指令(例如ADD、MVRR、OUT、MVRD、JRC、RET等指令)的功能、格式和执行流程。
3、设计微程序控制器指令系统中各条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,例如ADC、STC、JRS、JRNS、LDRX、STRX、JMPR、CALR、LDRA等19条扩展指令。
4、单条运行指令,查看指令的功能、格式和执行流程。
5、用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。
五、任务分工
王一龙负责制作报告与微程序编码表
孔瑶负责解释STRR,PUHF,RCR的含义
李源负责制作基本操作指令流程图
高昂负责制作拓展操作指令流程图
课程学习日志:
周二上午课程设计动员,分组分配工作,下午阅读查询相关资料明确设计目的,制定计划。
周三上午理解29条基本操作指令,并制作流程图。
下午理解19条拓展指令并制作流程图与微程序编码表
周四上午初步完成第一周设计报告及分配到的指令详解,下午进一步完成设计报告。
六、课程设计环境
1、硬件环境:
PC机一台、TEC—2000实验机一台、微程序控制器实验板一块。
2、软件环境:
(1)Winxp、DOS
(2)TEC—2000仿真终端程序PCEC
(3)TEC—2000监控程序。
七、基本指令和扩展指令的执行流程框图
1.基本指令流程图
2.拓展指令流程图
附表基本指令和拓展指令十六进制微程序编码表
指令名
微址
下址
CI3-0
SCC3-0
0MEW
0I2-0
SAI8-6
SBI5-3
B
A
SST
SSHSCI
DC2
DC1
ALL
00FF
00
E
0
4
1
3
1
5
5
0
1
7
0
01FF
00
E
0
4
3
2
0
5
5
0
1
B
0
02FF
00
E
0
1
0
1
0
0
0
0
0
1
0
03FF
00
2
0
4
0
1
0
0
0
0
0
0
0
1AFF
30
3
0
0
4
9
0
0
0
0
0
0
1
1CFF
30
3
0
1
7
3
8
0
0
0
0
0
0
30FF
3A
3
2
4
7
0
0
0
0
0
0
0
3
31FF
02
3
0
4
3
2
0
5
5
0
1
B
0
中断隐指令
3AFF
00
E
0
4
0
1
0
0
0
0
0
7
0
3BFF
00
E
0
4
3
3
1
4
0
0
0
3
0
3CFF
00
E
0
0
4
1
0
0
5
0
0
5
1
3DFF
00
E
0
4
3
3
1
4
0
0
0
3
0
3EFF
00
E
0
0
2
1
0
0
0
0
0
0
1
3FFF
31
3
0
4
7
3
0
5
0
0
0
0
5
ADD
4000
04FF
30
3
0
4
1
B
8
0
0
1
0
0
0
SUB
4001
05FF
30
3
0
4
1
B
9
0
0
1
1
0
0
AND
4002
06FF
30
3
0
4
1
B
C
0
0
1
0
0
0
CMP
4003
09FF
30
3
0
4
1
9
9
0
0
1
1
0
0
XOR
4004
08FF
30
3
0
4
1
B
E
0
0
1
0
0
0
TEST
4005
0AFF
30
3
0
4
1
9
C
0
0
1
0
0
0
OR
4006
07FF
30
3
0
4
1
B
B
0
0
1
0
0
0
MVRR
4007
0BFF
30
3
0
4
4
B
8
0
0
1
0
0
0
DEC
4008
0DFF
30
3
0
4
3
3
9
0
0
1
0
0
0
INC
4009
0CFF
30
3
0
4
3
3
8
0
0
1
1
0
0
SHL
400A
0EFF
30
3
0
4
3
7
8
0
0
6
0
0
0
SHR
400B
0FFF
30
3
0
4
3
5
8
0
0
5
0
0
0
JR
4041
11FF
30
3
0
4
5
3
0
5
5
0
0
0
2
JRC
4044
10FF
30
3
4
4
0
1
0
0
0
0
0
0
0
JRNC
4045
10FF
30
3
4
4
0
1
0
0
0
0
0
0
0
JRZ
4046
10FF
30
3
4
4
0
1
0
0
0
0
0
0
0
JRNZ
4047
10FF
30
3
4
4
0
1
0
0
0
0
0
0
0
JMPA
4080
1EFF
24
3
0
4
3
2
0
5
5
0
1
3
0
LORR
4081
1BFF
00
E
0
4
4
9
0
0
0
0
0
3
0
IN
4082
12FF
14
3
6
4
7
1
0
0
0
0
0
3
2
OUT
4086
12FF
14
3
6
4
7
1
0
0
0
0
0
3
2
13FF
30
3
0
2
3
1
0
0
0
0
0
0
1
14FF
30
3
0
3
7
3
0
0
0
0
0
0
0
STRR
4083
19FF
00
E
0
4
3
1
8
0
0
0
0
3
0
PSH/F
4084
15FF
1A
3
7
4
3
3
1
4
0
0
0
3
0
4085
15FF
1A
3
7
4
3
3
1
4
0
0
0
3
0
16FF
30
3
0
0
0
1
0
0
0
0
0
0
3
POP/F
4087
17FF
1C
3
7
4
3
2
0
4
4
0
1
3
0
408C
17FF
1C
3
7
4
3
2
0
4
4
0
1
3
0
18FF
30
3
0
1
0
1
0
0
0
2
0
0
0
MVRD
4088
1DFF
1C
3
0
4
3
2
0
5
5
0
1
3
0
RET
408F
23FF
00
E
0
4
3
2
0
4
4
0
1
3
0
24FF
30
3
0
1
7
3
0
5
0
0
0
0
0
CALA
40CE
1FFF
00
E
0
4
3
2
0
5
5
0
1
3
0
20FF
00
E
0
1
7
0
0
0
0
0
0
0
0
21FF
00
E
0
4
3
3
1
4
0
0
0
3
0
22FF
30
3
0
0
2
2
0
5
5
0
0
0
1
ADC
4020
50FF
30
3
0
4
1
B
8
0
0
1
2
0
0
SBB
4021
51FF
30
3
0
4
1
B
9
0
0
1
2
0
0
RCL
402A
54FF
30
3
0
4
3
7
8
0
0
6
4
0
0
RCR
402B
55FF
30
3
0
4
3
5
8
0
0
5
4
0
0
ASR
402C
53FF
30
3
0
4
3
5
8
0
0
5
C
0
0
NOT
402D
52FF
30
3
0
4
3
3
F
0
0
1
0
0
0
JMPR
4060
5AFF
30
3
0
4
4
B
0
5
0
0
0
0
0
JRS
4064
69FF
30
3
5
4
0
1
0
0
0
0
0
0
0
JRNS
4065
69FF
30
3
5
4
0
1
0
0
0
0
0
0
0
6AFF
30
3
0
4
5
3
0
5
5
0
0
0
2
CLC
406C
56FF
30
3
0
4
0
1
0
0
0
3
0
0
0
STC
406D
57FF
30
3
0
4
0
1
0
0
0
4
0
0
0
EI
406E
58FF
30
3
0
4
0
1
0
0
0
0
0
6
0
DI
406F
59FF
30
3
0
4
0
1
0
0
0
0
0
7
0
CALR
40E0
64FF
00
E
0
4
3
3
1
4
0
0
0
3
0
65FF
00
E
0
0
4
1
0
0
5
0
0
0
1
66FF
30
3
0
4
4
B
0
5
0
0
0
0
0
LDRA
40E4
5BFF
00
E
0
4
3
2
0
5
5
0
1
3
0
5CFF
1C
3
0
1
7
1
0
0
0
0
0
3
0
LDRX
40E5
5DFF
00
E
0
4
3
2
0
5
5
0
1
3
0
5EFF
1C
3
0
1
5
9
0
0
0
0
0
3
0
STRX
40E6
61FF
00
E
0
4
3
2
0
5
5
0
1
3
0
62FF
00
E
0
1
5
B
0
0
0
0
0
3
0
63FF
30
3
0
0
3
9
0
0
0
0
0
0
1
STRA
40E7
5FFF
00
E
0
4
3
2
0
5
5
0
1
3
0
60FF
1A
3
0
1
7
1
0
0
0
0
0
3
0
IRET
40EF
67FF
00
E
0
4
3
2
0
4
4
0
1
3
0
68FF
23
3
0
1
0
1
0
0
0
2
0
4
0
STRR
指令格式:
10000011
下址:
00
CI3-0:
1110
SCC3-0:
0000(必转)
MEW:
100无读写操作,因为直接进行跳转。
I2-0:
数据来源A和B
SASB:
用于知名运算器A口B口的控制信号是有微指令中的A3-A0B3-B0给出还是由当前指令操作码给出。
I5-3:
R+S
SST:
000四个标志位的值保持不变。
SSH:
00无移位入出信号。
SCI:
00取进位标志C的值为0。
01取进位标志C的值为1。
DC2:
011AR高位接收
000无操作.
DC1:
000开关到内部总线
001ALU输出到内部总线
STRR含义:
举例,STRR[R0],R1
将R1中的数据写入R0
PSHF
标志进栈指令
(sp)<-(sp)-2((sp)+1,(sp))<-(flags)0-15
不影响标志位
CI3-0:
0011条件微转移
SCC3-0:
0111IR8=1时转
0000必转
MEW:
100无读写操作,因为直接进行跳转。
000内存写
I2-0:
数据来源A和B
SASB:
用于知名运算器A口B口的控制信号是有微指令中的A3-A0B3-B0给出还是由当前指令操作码给出。
I5-3:
001S-R
000R+S
SST:
000四个标志位的值保持不变。
SSH:
00无移位入出信号。
SCI:
00取进位标志C的值为0。
DC2:
011AR高位接收
000NC
DC1:
000开关到内部总线
11状态到内部总线
RCR
该指令为带C进位的循环右移。
该指令为A组指令,有1条微指令。
微址55表示该指令的首地址,执行完该微指令后,需要进行跳转微址为30,所以下址为30,需要进行条件微转移,所以CI3-0为0011,SCC为0000;0MRW控制读写内存,该微指令没有进行读写操作,所以取值为0100;在运算器中,R表示R输入端,S表示S输入端,该指令只需使用一个S输入端,不进行运算操作,只进行数据右移,在二进制右移就是将数据除2,而上面的数据是直接从取指令寄存器的数据,所以0I2-0为0011,SAI8-6为1000,SBI5-3为0101;A、B口均未使用,不需要指定寄存器,所以为0000;进行该指令的4个状态位直接送入对应的寄存器,将进位状态送给RAM15,所以0SST为0110;实现数据右移,所以SSHSCI为0100;未使用IR指令寄存器、AR地址寄存器、INTR中断优先级寄存器,所以DC2为0000;将开关送入内部总线,所以DC1为0000。