首页 理论教育 定点和浮点DSP的流水线操作解析

定点和浮点DSP的流水线操作解析

时间:2023-07-02 理论教育 版权反馈
【摘要】:表2-8给出了定点流水线的节拍和相应的操作。表2-8定点流水线的节拍和相应的操作以基于TMS320C64x的定点流水线为例说明指令执行过程,其时钟周期如图2-14所示。表2-9定点DSP指令的流水线操作类型6为跳转指令,只在E1节拍跳转,延迟为5;类型7为NOP指令,没有任何操作,延迟为0。浮点DSP的流水线操作可分为14种指令类型,这14种不同指令的流水线操作描述如下。

定点和浮点DSP的流水线操作解析

需要说明的是,所有的TMS320C6x指令都是条件执行的,在E1节拍完成执行条件的判断,如果执行条件不满足,则指令在E1节拍终止。表2-8给出了定点流水线的节拍和相应的操作。

表2-8 定点流水线的节拍和相应的操作

978-7-111-37346-9-Chapter02-25.jpg

以基于TMS320C64x的定点流水线为例说明指令执行过程,其时钟周期如图2-14所示。

978-7-111-37346-9-Chapter02-26.jpg

图2-14 时钟周期

定点流水线指令执行过程程序如下。

978-7-111-37346-9-Chapter02-27.jpg

978-7-111-37346-9-Chapter02-28.jpg

定点DSP指令的流水线操作可分为7种指令类型,类型1~类型5见表2-9。

表2-9 定点DSP指令的流水线操作(类型1类型5)

978-7-111-37346-9-Chapter02-29.jpg

类型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。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈