例如,对于FMPYDP指令,在手册上给出的是:
Instruction Type 4-cycle
Delay Slots 3
Functional Unit Latency 1
这样理解:功能单元的延时时间(Function Uint Latency)是不包括在指令周期时(Delay_Slot)中的。因而总的执行时间是:4 cycles
而对于指令:MPYDP,在手册上给出的是:
Instruction Type MPYDP
Delay Slots 9
Functional Unit Latency 4
这个感觉是:在计算指令周期时(Delay_Slot),好像是包括了功能单元的延时时间(Function Uint Latency),不然该指令执行延时也太长了。
CVD:
这两者的概念是不一样的,Delay Slots是指输出寄存器的值要等几个cycle才能被使用,Functional Unit Latency是指该指令执行要连续地占用几个周期的功能单元,在这几个周期内该单元不能执行其他指令。
CVD:
在CHIP Smarter即将发布的智能汇编开发工具DSPer中,指令的这些信息都会直观地在代码中显示,如图:
chenpjh:
回复 CVD:
CHIP Smarter:
DSPer是你开发的?什么时候可以用?与CCS相比有什么突出的功能?
静候佳音!
chenpjh:
回复 CVD:
这儿有两个问题:
(1)总的指令周期数:应为二者之和;
(2)Delay Slots是可以通过pipeline来消化,进而提高DSP的执行速度,而Function Unit Latnecy不等于1时,不能通过pipeline进行流水,因而该功能单元不能被其它指令占用;
上面两观点对不对?
user5282335:
回复 chenpjh:
请问下:
当我计算一条指令的运行周期时:是否要加上Functional Unit Latency和Delay_Slot的周期?????