在图2中,第一阶段:没有C6000知识的用户能开发自己的C代码,然后使用CCS中的代码剖析工具,确定C代码中可能存在的低效率段,为进一步代码优化做好准备。第二阶段:C代码优化阶段。在这个阶段,主要利用intrinsics函数以及编译器编译选项来提高代码的性能。优化后利用软件模拟器检查代码的效率,如仍不能达到期望的效率,则进入第三阶段。第三阶段:写线性汇编优化。在这个电感生产厂家阶段中,用户把最耗费时间的代码抽取出来,重新用线性汇编写,然后使用汇编优化器优化这些代码。在第一次写线性汇编时,可以不考虑流水线和寄存器分配。然后,提高线性汇编代码性能,往代码中添加更多的细节,如分配寄存器等。由于这一阶段所需的时间要比第二阶段多,所以整个代码的优化尽量放在第二阶段来完成,而少使电感厂家用线性汇编代码优化。
3.2 C/C++代一体电感器码优化方法 为了使C/C++代码获得最好的性能,可以使用编译选项、软件流水、内联函数和循环展开等方法来对代码进行优化,以提高代码执行速度,并减小代码尺寸。 3.2.1 编译器选项优化 C/C++编译器可以对代码进行不同级别的优化。高级优化由专门的优化器完成,低级的和目标DSP有关的优化由代码生成器完成。图3为编译器、优化器和代码生成器的执行图。 
当优化器被激活时,将完成图3所示的过程。C/C++语言源代码首先通过一个完成预处理的解析器(Parser),生成一个中间文件(.if)作为优化器(Optimi-zer)的输入。优化器生成一个优化文件(.opt),这个文件作为完成进一步优化的代码生成器(Code Genera-tor)的输入,最终生成汇编文件(.asm)。 最简单执行优化的方法是采用cl6x编译程序,在命令行设置一On选项即可。n是优化的级别(n为0,1,2,3),它控制优化的类型和程度。 3.2.2 软件流水优化 软件流水是编排循环指令,使循环的多次迭代并行执行的技术。使用一02和一03选项编译C/C++程序时,编译器就从程序中收集信息,尝试对程序循环做软件流水。 图4显示一个软件流水循环。图4中A,B,C,D和E表示1次迭代中的各条指令;A1,A2,A3,A4和A5表示一条指令执行的各阶段。循环中,一个周期最多可并行执行5条指令,即图中阴影部分所示的循环核(Loop K插件电感ernel)部分。循环核前面的部分称为流水循环填充(Pipelined Loop Prolog),循环核后面部分称为循环排空(Pipelined Loop Epilog一体电感器)。 
3.2.3 内联函数优化 通过下面的方法改进C语言程序,可使编译出的代码性能显著提高: (1)使用intrinsics(内联函数)替代复杂的C/C++代码; (2)使用字(Word)访问存放在32位寄存器的高16位和低16位字段的数据; (3)使用双字访问存放在64位寄存器的32位数据(仅指C64xx/C67XX)。 C6000编译器提供了许多内联函数,它们直接对应着C62X/C64X/C67X指令可快速优化C代码。这些内联函数不易用C/C++语言实现其功能。内联函数用前下划线“_”特别标示,其使用方法与调用函数一样。例如C语言的饱和加法只能写为需要多周期的函数:  这段复杂的代码可以用_sadd()内联函数实现,它是一个单周期的C6x指令。 result=_sadd(a,b); 要提高C6000数据处理率,应使一条Load/Store指令能访问多个数据。C6000有与内联函数相关的指令,例如_add2(),_mpyhl(),_mpylh()等,这些操作数以16位数据形式存储在32位寄存器的高位部分和低位部分。当程序需要对一连串短型数据进行操作时,可使用字1次访问2个短型数据,然后使用C6000相应指令来处理数据。相似的在C64x或C67x中,有时需要执行64位的LDDW来访问两个32位数据,4个16位数据,甚至8个8位数据。 3.2.4 循环展开 循环展开是改进性电感生产厂家能的另一种,即把小循环的迭代展开,以让循环的每次迭代出现在代码中。这种方法可增加并行执行的指令数。当每次迭代操作没有充分利用C6000结构的所有资源时,可使用循环展开提高性能。 有3种使循环展开的方法:
ABB开发出无需高架电线的电动公交车15秒闪充技
全球领先的电力和自动化技术集团ABB已开发出一项全新的快速充电技术,为世界上第一个大容量闪充电动公交系统提供动力。
在日内瓦召开的第60届公共交通国际联会(UITP)上,AB EG8011驱动光耦加负压/upload/community/2020/06/05/1591346669-88148.pdf,EG8001驱动光耦加负压,兄弟们看看哪里不对 2.5 GHz高线性度瓦级CMOS功率放大器的设计 摘 要: 设计了一个工作于2.5 GHz、最高输出功率达到31.8 dBm的CMOS功率放大器(PA),该PA由两级放大器组成,两级放大器均采用全差分电路结构。为了实现1 W以上的输出功率,第二
2/3 首页 上一页 1 2 3 下一页 尾页 |