DSP

C6000 DSP 优化

2019-07-13 10:54发布

C62x : 定点DSP,VelociTI 架构第一款C67x:浮点DSP,VelociTI 架构第二款C64x:定点DSP,VelociTI 架构第三款C6000 DSP内部包含:可编程取址单元,指令分发单元,指令译码单元,2路数据每路4个功能单元,32个32bit寄存器(C62x & C67x),64个32bit寄存器(C64x & C64+),控制寄存器,控制逻辑,测试仿真中断逻辑等。C6000的Pipeline特点:一个指令周期可并行8个指令;DSP 代码优化流程:

C6000的code generation工具会在循环代码中尽可能地利用硬件资源,以实现性能最优化。每个开发阶段的工作:


C6000定义的各种数据类型长度:
注意:
  • 不要认为int和long类型的数据长度是一样的;
  • 尽量使用short类型进行定点乘法运算,C6000对16bit的性能最高,1个cycle可执行一条short*short,而一条int*int需要5个cycle;
  • 使用int或者unsigned int变量作为循环计数变量的类型,避免不必要的符号扩展指令;
  • 在浮点DSP上使用浮点指令需要打开 -mv6700 (C6700DSP),以使得代码生成器利用硬件浮点资源,否则使用定点资源;
  • C6400 DSP, C64+ DSP可使用 -mv6400 / -mv6400plus 让代码生成器使用额外的硬件和指令资源;