新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于TI C6000系列DSP的C/C++程序优化技术

基于TI C6000系列DSP的C/C++程序优化技术

作者:时间:2009-06-16来源:网络收藏

摘 要:在现代的开发中,越来越多地采用C/c++作为开发语言,而C/C++成为’软件开发的重要环节。在此介绍 的软件开发流程,重点讨论的C/C++,包括流程,C/C++代码优化方法,编写线形汇编代码优化方法等。为的C/C++软件开发提供了全面的优化和方法,对实际系统的开发具有重要的现实意义。
关键词:;程序优化;软件流水;线性汇编

本文引用地址:http://www.eepw.com.cn/article/152470.htm


0 引 言
目前在DSP平台上编程多使用汇编语言与C语言,为了追求代码的高效,过去一般用汇编语言来编制。DSP程序汇编语言简洁高效,能够直接操作DSP的内部寄存器、存储空间、外设,但可读性、可修改性、可移植性较差;随着DSP应用范围不断延伸,应用的日趋复杂,汇编语言程序在可读性、可修改性、可移植性和可重用性的缺点日益突出,软件需求与软件生产力之间的矛盾日益严重。引入高级语言(如C语言,C++,Java),可以解决该矛盾。在高级语言中,C语言是一种较为高效的高级语言,在可读性、可移植性等方面优于汇编指令。各个DSP芯片公司都相继推出了相应的C语言编译器。
但由于DSF结构的特殊性,使得该平台上的C语言编译器无法充分发挥DSP器件的性能优势。同样功能的C语言程序,效率往往只有直接书写的汇编程序的几分之一甚至几十分之一,因此有必要根据DSP的特性对C语言编写的程序进行进一步的优化。


l TMS320C6000处理器介绍
TMS320C6000是TMS320产品中的新一代高性能DSP芯片,共分为两大。其中定点系列为TMS320C62xx和TMS320C64xx;浮点系列为TMS320C67xx。由于TMS320C6000的开发主要面向数据密集型算法,它有着丰富的内部资源和强大的运算能力,所以被广泛地应用于数字通信和图像处理等领域。
C6000系列CPU中的8个功能单元可以并行操作,并且其中两个功能单元为硬件乘法运算单元,大大地提高了乘法速度。DSP采用具有独立程序总线和数据总线的哈佛总线结构,仅片内程序总线宽度就可达到256位,即每周期可并行执行8条32位指令;片内两套数据总线的宽度分别为32位;此外,DSP还有一套32位DMA专用总线用于传输。灵活的总线结构使得数据瓶颈对系统性能的限制大大缓解。C6000的通用寄存器组能支持32位和40位定点数据操作,另外C67xx和C64xx还分别支持64位双精度数据和64位双字定点数据操作。除了多功能单元外,流水是提高DSP程序执行效率的另一主要手段。由于TMS320C6000的特殊结构,功能单元同时执行的各种操作可由VLlW长指令分配模块来同步执行,使8条并行指令同时通过流水线的每个节拍,极大地提高了机器的吞吐量。


2 C6000软件开发流程
图1为C6000的软件开发流程图。图中阴影部分是开发C代码的常规流程,其他部分用于辅助和加速开发讨程.

C/C++源文件首先经过C/C++编译器(C/C++cornpiler)转换为C6000汇编源代码。编译器、优化器(optimizer)和交叠工具是C/C++编译器的组成部分。编译器使用户能一步完成编译、汇编和连接;优化器调整合修改代码以提高C程序的效率;交叠工具把C/C++语句和对应的汇编语句交叠列出。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭