CPU的主要功能是负责指令的自动执行。CPU运行时,进入取指令、执行指令的循环。不同指令的功能不同、数据通路不同、执行时间不同,如何安排时序?例如寄存器指令和内存类指令的时间是不相同的,加法指令和乘法指令的时间也是不同的。
一般来说,指令的执行流程是这样的:取指令(PC++),指令译码,操作数地址计算,取操作数,数据操作指令执行,操作数地址计算,存操作数。有的指令长,有的指令短。
指令执行过程中和时间有关的基本概念:+ 时钟周期(完成一次微操作),
+ 机器周期=CPU周期(从内存取出一条指令的最短时间)课完成复杂操作。
+ 指令周期:从内存取指令并执行指令的时间
对于不同的指令,如何进行时间上的控制?有定长指令周期和变长指令周期两种。
定长指令周期:每条指令占用固定的机器周期。例如把1个指令周期分为4个机器周期(取指令、译码、执行、写回),再把每个机器周期分为4个节拍电位。1个节拍电位可以进行1次微操作。电平信号M1 M2 M3 M4 表示当前在那一个机器周期,电平信号 T1 T2 T3 T4 表示当前在那一个节拍。这样可以构建指令操作、微操作、时序之间的逻辑表达式,从而精确控制操作信号什么时候产生,持续多长时间。例如: MemRead=Mif (T2+T3) + Load * Mex * (T2+T3)。
现代时序系统使用变长指令周期,每条指令的机器周期按需分配,可以充分提高系统运行效率。它的原理是对每一条指令的每一个过程分配一个状态号码,每一个状态对应特定的微操作信号。其中有一个复杂的状态机(时序逻辑电路)记录当前状态,在时钟和指令的驱动下决定下一个状态。硬布线控制器根据当前的状态给出微操作控制信号序列。硬布线控制器的组合逻辑变简单了,但是状态机变复杂了。
然后把每一条指令的节拍、数据通路、控制信号列出来。依次为依据,设计CPU控制器。
网友评论