DSP

《大话处理器》连载——微架构(5) DSP更深的流水线

2019-07-13 11:03发布

        不同的处理器会有不同的流水线划分。在TI C6000 DSP中,所有指令的执行都可分为Fetch(取指)、Decode(译码)、Execute (执行)3个大的步骤,每个大的步骤又可以细分为一些小的步骤:   C6000流水线节拍   DSP流水线描述         在MIPS中,MEM操作和ALU运算放在不同的节拍,在DSP中,它们都被放在指令的执行节拍中。在MIPS中,寄存器写回是单独一个节拍,在DSP中,这个过程也被放在了执行节拍中。从这个角度来看,DSP的节拍划分更符合软件人员的视角,不管是ALU运算,还是MEM操作,还是寄存器写回等等,这些都是指令的执行过程,唯一的区别在于,不同指令的执行时间不一样。         在TI C64内核中,简单的指令(如加法等)只需要1个cycle,乘法等指令需要2个cycle,load/store需要5个cycle,分支指令需要6个cycle。在TI C66内核中,有的指令甚至需要10个cycle。         下图为C6000 DSP的流水线:   DSP流水线           在图上星型标注的位置,指令2处于E2节拍,指令3处于E1节拍,即使指令3和指令2使用相同的运算单元,这条流水线也能顺利运行,这是因为功能单元的E1和E2阶段也是流水线结构的。