所以,“+”操作控制信号的逻辑表达式如下:
“+”=加法指令·(cy2+cy4)+减法指令·cy2+转移指令·cy2+…
设机器有7位操作码(OP0~OP6),假设加法指令的操作码为0001100,形成的加法指令信号的逻辑表达式为:
加法指令= OP0OP1OP2OP3OP4OP5OP6
如,某机器128条指令,用7位操作码(OP0~OP6),如果其中有16条算术逻辑运算指令,可以将这些指令的3位操作码都设计相同的编码,如OP0OP1OP2=
001,而其他位OP3~OP6编码表示16个不同的指令.
设命令A是所有算术逻辑运算在cy2周期需要产生的,逻辑表达式:
A=加法指令·cy2+减法指令·cy2+逻辑加指令·cy2+…
=(加法指令·+减法指令+逻辑加指令+…)·cy2
= OP0·OP1·OP2·cy2
只需要一个与门,就可实现命令A.
2. 微程序控制器
(1)微程序,微指令和微命令
在计算机中,一条指令的功能是通过按一定次序执行一系列基本操作完成的,这些基本操作称为微操作.例如,前面讲到的加法指令,分成四步(取指令,计算地址,取数,加法运算)完成,每一步实现若干个微操作.实现这些微操作的控制命令就是微命令.
微操作是指最基本的,不可再分的操作,如前面提到的:
PC→AB; W/R=0; DB→IR等.
PC→AB等就是微命令.
微指令:在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作称为微指令,所以微指令就是把同时发出的控制信号的有关信息汇集起来而形成的.将一条指令分成若干条微指令,按次序执行这些微指令,就可以实现指令的功能.组成微指令的微操作又称微命令.
微程序:计算机的程序由指令序列构成,而计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序.
(2)微指令的编码方式;
1)直接控制法
在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成“1”或“0”,这样就可打开或关闭某个控制门,这就是直接控制法.
2)字段直接编译法
在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(相应的控制位为“0”).所谓微周期,指的是一条微指令所需的执行时间.如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的.
选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示, 就是字段直接编译法.
3)字段间接编译法
字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法.
如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法.
(3)微地址的形式方式.
1)微程序入口地址的形成
<1>一级转移方式
当操作码的位数与位置固定时,可直接使操作码与入口地址的部分位对应.
<2>多级转移方式
先按照指令类型标志转移到某条微指令,以区分出是哪一大类,然后可以进一步按指令操作码转移,区分出是该指令中的哪一类具体操作.
2)微程序后继地址的形成
<1>以增量方式产生后继微地址.
在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址.
<2>增量与下址字段结合产生后继微地址
将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送µPC,否则顺序执行下一条微指令(µPC+1).
(五) 指令流水线
1. 指令流水线的基本概念
(1)流水线基本原理
流水线技术是一种显著提高指令执行速度与效率的技术.方法是:指令取指完成后,不等该指令执行完毕即可取下一条指令.
如果把一条指令的解释过程进一步细分,例如,把分析,执行两个过程分成取指,译码,执行,访存和写回寄存器五个子过程,并用五个子部件分别处理这五个子过程.
这样只需在上一指令的第一子过程处理完毕进入第二子过程处理时,在第一子部件中就开始对第二条指令的第一子过程进行处理.随着时间推移,这种重叠操作最后可达到五个子部件同时对五条指令的子过程进行操作.
(2)影响流水线性能的因素
在流水线中会出现三种相关,影响流水线的畅通流动,这三种相关是结构相关,数据相关和控制相关.
结构相关是当多条指令进人流水线后,硬件资源满足不了指令重叠执行的要求时产生的.
数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的.
控制相关是当流水线遇到分支指令和其他改变PC值的指令时引起的.
(3)流水线性能
流水线的性能通常用吞吐率,加速比和效率3项指标来衡量.