华 北 电 力 大 学 实 验 报 告
(2)根据机器指令中的操作码,通过微地址形成的电路,找到与该机器指令所对应的微程序入口地址。
(3)逐条取出对应的微程序,每一条微指令提供一个微命令序列,控制有关的操作。执行完一条微指令后,根据微地址形成方法产生后继微地址,读取下一条微指令。
(4)执行完对应于一条机器指令的一段微程序后,返回到“取机器指令用的微指令”,开始又一个机器指令周期。
4.5.4微指令的编码方式
采用直接控制法的编制方式。
4.5.5微程序的顺序控制方式
1.初始微地址的形成
每一种机器指令由一段对应的微程序解释执行,其入口就是我们所说的初始微地址。
(1)取机器指令
设置一小段公用的“取机器指令的微程序”,实现取指操作。这段微程序可以从0#单元或者其他特定单元开始。 (2)功能转移
取出机器指令后,根据指令代码转换成微程序段的入口地址,称为功能转移。 一级功能转移:根据指令操作码,一次转移到相应微程序入口。
2.微程序的设计
针对模型机数据通路结构的需要,将微操作控制字段分为三个部分:
(1)基本数据通路操作的控制字段,其中包含输入选择、ALU功能选择、移位选择、内总线输出分配;
(2)访问主存的控制字段,其中包含地址选择、读写控制;
(3)辅助操作的控制字段,即将前两类基本操作未能包括的其它零星操作(如开中断、关中断等)归为一类,称为辅助操作; 3.时序系统的设计
4、CPU控制流程
第 页 共 页
华 北 电 力 大 学 实 验 报 告
模型机微指令格式: AI(3) BI(3) ALU(6) 移位器(2) 内总线(4) EMAR SMBR SIR R
1.基本数据通路控制字段
(1)AI:ALU的A输入端选择,3位
000 无输入 001 R0 -->A 010 R1 -->A 011 C-->A 100 D-->A 101 PC-->A 110 SP-->A
(2)BI:ALU的B输入端选择,3位
000 无输入 001 R0 -->B 010 R1 -->B 011 C-->B 100 D-->B 101 MBR-->B
AI与BI字段都有一段编码组合尚未定义,可供扩充微命令。
(3)ALU:即ALU功能选择信号MS3S2S1S0Cn,共6位,采取直接控制法 (4)移位器:2位
00 无操作
01 DM(直传) 10 SR(右移) 11 SL(左移)
(6)内总线输出分配:4位
0000 无输出,不发打入脉冲 0001 CPR0 0010 CPR1 0011 CPC
第 页 共 页
W 顺序控制 华 北 电 力 大 学 实 验 报 告
0100 CPD 0101 CPMAR 0110 CPMBR 0111 CPPC 1000 CPIR 1001 CPSP 2.访存操作控制字段
EMAR: 1位,为1时由MAR向地址总线提供有效地址,为0时MAR与地址总线脱离。 SMBR: 1位 SIR: 1位
R: 1位,为1时读主存,同时作为EMAR。 W: 1位,为1时写入主存。
以上五位采取直接控制法。若EMAR为0,CPU不访存,但可由DMA控制器提供地址。SMBR同理。若W与R均为0,则CPU不工作。 3.顺序控制字段SC,4位 0000 微程序顺序执行
0001 按指令操作码OP断定,分支转移
0010 无条件转移,由微指令最高8位提供转移微地址
0011 按OP与DR(目的寻址方式是寄存器型或非寄存器型)断定,分支转移
0100 按J(转移成功与否)与PC(指令中指定寄存器是否为PC)断定,分支转移 0101 按源寻址方式断定,分支转移 0110 按目的寻址方式断定,分支转移
0111 转微子程序,将返回微地址存入一个专设的返回微地址寄存器中,并由微指令第 34--27位
提供微子程序入口,
1000 从微子程序返回,由返回微地址寄存器提供返回地址
4.6操作流程图和时间表
第 页 共 页
华 北 电 力 大 学 实 验 报 告
操作时间表(以寄存器间址为例):
MOV指令:
FT0:EMAR R SIR PC->A, Y=A+1, DM CPC ST0:PC/Ri->A, Y=A DM CPMAR
ST1:EMAR R SMBR MBR->B, Y=B, DM CPC DT0:Rj->A Y=A DM CPMAR ET0:C->A Y=A DM CPMBR ET1:EMAR W
ET2:PC->A Y=A DM CPMAR
ADD指令:
FT0:EMAR R SIR PC-> A, Y=A+1, DM CPC ST0:PC/Ri->A, Y=A DM CPMAR
ST1:EMAR R SMAR MBR->B, Y=B, DM CPC DT0:Ri->A Y=A DM CPMAR
DT1:EMAR R SMBR MBR->B Y=B DM CPD ET0:C->A D->B Y=A+B DM CPMBR ET1:EMAR W
第 页 共 页
华 北 电 力 大 学 实 验 报 告
ET2:PC->A Y=A DM CPMAR
NEG指令:
FT0:EMAR R SIR PC->A, Y=A+1, DM CPC ST0:PC/Ri->A, Y=A DM CPMAR
ST1:EMAR R SMAR MBR->B, Y=B, CPC DT0:Ri->A Y=A DM CPMAR
DT1:EMAR R SMBR MBR->B Y=B DM CPD ET0:Ri->A或C->A Y=0-A DM ET1:EMAR W
ET2:PC->A Y=A DM CPMAR
JMP指令:
FT0:EMAR R SIR PC->A, Y=A+1, DM CPC ET0:Ri->A Y=A DM CPMAR ET1:Ri->A Y=A DM CPPC
4.7微指令码
表:微指令码(以MOV (R0),(R1) ;ADD (R0),(R1) ;NEG (R1) ;JMP (R0)为例)
第 页 共 页