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 让代码生成器使用额外的硬件和指令资源;