<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于TI C6000系列DSP的C/C++程序優(yōu)化技術(shù)

基于TI C6000系列DSP的C/C++程序優(yōu)化技術(shù)

作者: 時(shí)間:2009-06-16 來(lái)源:網(wǎng)絡(luò ) 收藏

摘 要:在現代的開(kāi)發(fā)中,越來(lái)越多地采用C/c++作為開(kāi)發(fā)語(yǔ)言,而C/C++成為’軟件開(kāi)發(fā)的重要環(huán)節。在此介紹 的軟件開(kāi)發(fā)流程,重點(diǎn)討論的C/C++,包括流程,C/C++代碼優(yōu)化方法,編寫(xiě)線(xiàn)形匯編代碼優(yōu)化方法等。為的C/C++軟件開(kāi)發(fā)提供了全面的優(yōu)化和方法,對實(shí)際系統的開(kāi)發(fā)具有重要的現實(shí)意義。
關(guān)鍵詞:;程序優(yōu)化;軟件流水;線(xiàn)性匯編

本文引用地址:http://dyxdggzs.com/article/152470.htm


0 引 言
目前在DSP平臺上編程多使用匯編語(yǔ)言與C語(yǔ)言,為了追求代碼的高效,過(guò)去一般用匯編語(yǔ)言來(lái)編制。DSP程序匯編語(yǔ)言簡(jiǎn)潔高效,能夠直接操作DSP的內部寄存器、存儲空間、外設,但可讀性、可修改性、可移植性較差;隨著(zhù)DSP應用范圍不斷延伸,應用的日趨復雜,匯編語(yǔ)言程序在可讀性、可修改性、可移植性和可重用性的缺點(diǎn)日益突出,軟件需求與軟件生產(chǎn)力之間的矛盾日益嚴重。引入高級語(yǔ)言(如C語(yǔ)言,C++,Java),可以解決該矛盾。在高級語(yǔ)言中,C語(yǔ)言是一種較為高效的高級語(yǔ)言,在可讀性、可移植性等方面優(yōu)于匯編指令。各個(gè)DSP芯片公司都相繼推出了相應的C語(yǔ)言編譯器。
但由于DSF結構的特殊性,使得該平臺上的C語(yǔ)言編譯器無(wú)法充分發(fā)揮DSP器件的性能優(yōu)勢。同樣功能的C語(yǔ)言程序,效率往往只有直接書(shū)寫(xiě)的匯編程序的幾分之一甚至幾十分之一,因此有必要根據DSP的特性對C語(yǔ)言編寫(xiě)的程序進(jìn)行進(jìn)一步的優(yōu)化。


l TMS320C6000處理器介紹
TMS320C6000是TMS320產(chǎn)品中的新一代高性能DSP芯片,共分為兩大。其中定點(diǎn)系列為T(mén)MS320C62xx和TMS320C64xx;浮點(diǎn)系列為T(mén)MS320C67xx。由于TMS320C6000的開(kāi)發(fā)主要面向數據密集型算法,它有著(zhù)豐富的內部資源和強大的運算能力,所以被廣泛地應用于數字通信和圖像處理等領(lǐng)域。
C6000系列CPU中的8個(gè)功能單元可以并行操作,并且其中兩個(gè)功能單元為硬件乘法運算單元,大大地提高了乘法速度。DSP采用具有獨立程序總線(xiàn)和數據總線(xiàn)的哈佛總線(xiàn)結構,僅片內程序總線(xiàn)寬度就可達到256位,即每周期可并行執行8條32位指令;片內兩套數據總線(xiàn)的寬度分別為32位;此外,DSP還有一套32位DMA專(zhuān)用總線(xiàn)用于傳輸。靈活的總線(xiàn)結構使得數據瓶頸對系統性能的限制大大緩解。C6000的通用寄存器組能支持32位和40位定點(diǎn)數據操作,另外C67xx和C64xx還分別支持64位雙精度數據和64位雙字定點(diǎn)數據操作。除了多功能單元外,流水是提高DSP程序執行效率的另一主要手段。由于TMS320C6000的特殊結構,功能單元同時(shí)執行的各種操作可由VLlW長(cháng)指令分配模塊來(lái)同步執行,使8條并行指令同時(shí)通過(guò)流水線(xiàn)的每個(gè)節拍,極大地提高了機器的吞吐量。


2 C6000軟件開(kāi)發(fā)流程
圖1為C6000的軟件開(kāi)發(fā)流程圖。圖中陰影部分是開(kāi)發(fā)C代碼的常規流程,其他部分用于輔助和加速開(kāi)發(fā)討程.

C/C++源文件首先經(jīng)過(guò)C/C++編譯器(C/C++cornpiler)轉換為C6000匯編源代碼。編譯器、優(yōu)化器(optimizer)和交疊工具是C/C++編譯器的組成部分。編譯器使用戶(hù)能一步完成編譯、匯編和連接;優(yōu)化器調整合修改代碼以提高C程序的效率;交疊工具把C/C++語(yǔ)句和對應的匯編語(yǔ)句交疊列出。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>