新聞中心

        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.104case.com/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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 五峰| 梁河县| 海门市| 剑阁县| 冷水江市| 青浦区| 陇川县| 泽州县| 四川省| 香格里拉县| 富源县| 乳山市| 连江县| 东阳市| 临沂市| 龙游县| 泰州市| 交口县| 东乌| 阿图什市| 新竹市| 三穗县| 汝城县| 长海县| 新河县| 固原市| 邵东县| 舒兰市| 榕江县| 莒南县| 葵青区| 洪湖市| 布尔津县| 岳阳县| 延长县| 佛学| 西乌珠穆沁旗| 乌拉特中旗| 白朗县| 班玛县| 大港区|