需要说明的是,所有的TMS320C6x指令都是条件执行的,在E1节拍完成执行条件的判断,如果执行条件不满足,则指令在E1节拍终止。表2-8给出了定点流水线的节拍和相应的操作。
表2-8 定点流水线的节拍和相应的操作
以基于TMS320C64x的定点流水线为例说明指令执行过程,其时钟周期如图2-14所示。
图2-14 时钟周期
定点流水线指令执行过程程序如下。
定点DSP指令的流水线操作可分为7种指令类型,类型1~类型5见表2-9。
表2-9 定点DSP指令的流水线操作(类型1~类型5)
类型6为跳转指令,只在E1节拍跳转,延迟为5;类型7为NOP指令,没有任何操作,延迟为0。
所有类型的功能单元等待时间均为1;若表2-9中执行条件不成立,则指令不会产生计算结果,和跳转指令相似,在E1节拍后无操作。
浮点DSP的流水线操作可分为14种指令类型,这14种不同指令的流水线操作描述如下。(www.xing528.com)
·单周期指令:和定点DSP指令一样,参考表2-9;功能单元等待时间为1。
·16×16位乘法指令:和定点DSP指令一样,参考表2-9;功能单元等待时间为1。
·STORE指令:和定点DSP指令一样,参考表2-9;功能单元等待时间为1。
·LOAD指令:和定点DSP指令一样,参考表2-9;功能单元等待时间为1。
·跳转指令:和定点DSP指令一样;功能单元等待时间为1。
·NOP指令:和定点DSP指令一样;功能单元等待时间为1。
·双周期DP指令:E1节拍计算低位结果并写入寄存器;E2节拍计算高位结果并写入寄存器;其他节拍无操作;延迟为1;功能单元等待时间为1。
·4周期指令:E1节拍读源操作数并开始计算;E2节拍继续计算;E3节拍继续计算;E4节拍计算结果并写入寄存器;其他节拍无操作;延迟为3;功能单元等待时间为1。
·INTDP指令:E1节拍读源操作数并开始计算;E2节拍继续计算;E3节拍继续计算;E4节拍计算低位结果并写入寄存器;E5节拍计算高位结果并写入寄存器;其他节拍无操作;延迟为4;功能单元等待时间为1。
·DP比较指令:E1节拍读低位源操作数并开始计算;E2节拍读高位源操作数并开始计算,得到计算结果,并写入寄存器;其他节拍无操作;延迟为1;功能单元等待时间为2。
·ADDDP/SUBDP指令:E1节拍读低位源操作数并开始计算;E2节拍读高位源操作数并开始计算,E3~E5节拍继续计算;E6节拍计算低位结果并写入寄存器;E7节拍计算高位结果并写入寄存器;其他节拍无操作;延迟为6;功能单元等待时间为2。
·MPYID指令:E1~E4节拍读源操作数并开始计算;E5~E8节拍继续计算;E9节拍计算结果并写入寄存器;其他节拍无操作;延迟为8;功能单元等待时间为4。
·MPYID指令:E1~E4节拍读源操作数并开始计算;E5~E8节拍继续计算;E9节拍计算低位结果并写入寄存器;E10节拍计算高位结果并写入寄存器;其他节拍无操作;延迟为9;功能单元等待时间为4。
·MPYDP指令:E1节拍读低位源操作数并开始计算;E2节拍读源操作数SRC1的低位和SRC2的高位并继续计算;E3节拍读源操作数SRC1的高位和SRC2的低位并继续计算;E4节拍读高位源操作数并继续计算;E5~E8节拍继续计算;E9节拍计算低位结果并写入寄存器;E10节拍计算高位结果并写入寄存器;其他节拍无操作;延迟为9;功能单元等待时间为4。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。