现在的位置: 首页 > 综合 > 正文

《大话处理器》连载——微架构(3) 从子弹射击到指令执行

2018年05月07日 ⁄ 综合 ⁄ 共 672字 ⁄ 字号 评论关闭

       子弹的射击过程,可以被分成3个步骤:上膛、瞄准、射击。指令的执行过程,其实也可以划分为类似的3个步骤:取指、译码、执行。

指令的执行过程和射击过程的类比

        指令存储在内存中,要被加载到内核中,这个过程就是取指。

         指令是经过一定格式编码的,例如,MIPS的 J型指令格式如下:

 

MIPS的 J型指令格式

 

        前面6 bit标识指令的操作码,即这条指令是干什么的,后面26 bit是这个跳转指令的跳转地址。指令是一串0、1序列,译码单元要将这条指令包含的有用数据解出来,如果是跳转指令,就要知道它的地址,如果是运算指令,就要知道的它的源操作数、目的操作数在哪,这样处理器才能进行后续的运算。

        指令的执行就是真正进行运算的步骤,执行a+b=c就是在这个阶段进行。

        低功耗嵌入式领域的经典产品ARM7就是采用这种3级流水线结构:

 

ARM7 3级流水线结构

 

         流水线节拍描述:

3级流水线

       指令的执行过程被划分为3个步骤,分别在不同的部件中执行。头2个cycle是指令的进流水线阶段,这时候处理器内部的3个部件没有百分百利用起来,在第3-5个cycle,处理器内部的3个部件全速运行,这时候处理器的执行效率最高。第6-7个cycle时,处于出流水的阶段,指令完全流出流水线时,指令执行结束。

        执行步骤划分得越细,则每个步骤执行的时间越少,处理器的执行频率可以越高。通用CPU的流水线深度要比嵌入式处理器长,因此频率也高。流水线深度越深,处理器的内部结构也越复杂。

抱歉!评论已关闭.