軟件優(yōu)化概念和匯編優(yōu)化PPT課件_第1頁
軟件優(yōu)化概念和匯編優(yōu)化PPT課件_第2頁
軟件優(yōu)化概念和匯編優(yōu)化PPT課件_第3頁
軟件優(yōu)化概念和匯編優(yōu)化PPT課件_第4頁
軟件優(yōu)化概念和匯編優(yōu)化PPT課件_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、Two main goals of software optimisation Faster execution time. Small code size Trade off between the two goals第1頁/共46頁Basic knowledge To implement efficient software, the programmer must be familiar with: Processor architecture. Programming language (C, assembly or linear assembly). The code generat

2、ion tools (compiler, assembler and linker).第2頁/共46頁Code Optimisation ProcedureO ptim ise A lgorithmP rogram in C and com pile w ithoutany optim isationC odeFunctioning?M ake thenecessarycorrection(s)P rofile C odeR esultS atisfactory?U se intrinsicsP rofile C odeR esultS atisfactory?S et n=0 (-O n)C

3、 om pile code w ith-O n optionC odeFunctioning?M ake thenecessarycorrection(s)P rofile C odeR esultS atisfactory?N 3?NNNYNNNN o furtheroptim isation isrequiredYN o furtheroptim isation isrequiredYP ass to nextstep ofoptim isaion(N =N +1)yN o furtheroptim isation isrequiredIdentify C odeFunctions to

4、be furtheroptim ised fromP rofiling R esultC onvert code needingoptim isation to linearassem blyC odeFunctioning?M ake thenecessarycorrection(s)R esultS atisfactory?N o furtheroptim isation isrequiredW rite code in handassem blyYNYNYY第3頁/共46頁軟件優(yōu)化要點 1個時鐘周期內(nèi)讓盡可能多的功能單元在執(zhí)行指令。趨近8*主頻(MHz) MIPS 前提:滿足各種資源限制

5、(resource bound) 途徑:(1)資源合理分配、充分使用(2)算法映射結(jié)構(gòu) DSP適合對大量數(shù)據(jù)做相同的運算第4頁/共46頁軟件優(yōu)化要點(續(xù)) 相同的工作放在一起完成,形成循環(huán),便于軟件流水。 充分利用指令局部性和數(shù)據(jù)局部性的特點Cache第5頁/共46頁優(yōu)化的3個層次 1. 手工匯編優(yōu)化 2. 線性匯編優(yōu)化 3. C語言級的優(yōu)化 2&3 和編譯器交流:Feedback of loop資源分配情況設(shè)置-k編譯器選項, 保留asm文件compilerassembly目的: 軟件流水第6頁/共46頁C6000手工匯編語言優(yōu)化 并行指令 填充延遲間隙 展開循環(huán) 存取帶寬優(yōu)化(使用

6、LDW/LDDW) 軟件流水第7頁/共46頁使用并行指令n哪些指令可以并行?第8頁/共46頁并行指令n哪些指令可以并行? (1)兩條取指令并行: 放“|”在第二個ldh前 .d1改為.d2,A改為B第9頁/共46頁填充延遲間隙nNOP:相當(dāng)于未優(yōu)化n為了消除NOP,如何調(diào)整指令順序?第10頁/共46頁填充延遲間隙Sub和b指令移到ldh指令后:nLD的nop由4降為2nB的nop被消除第11頁/共46頁填充延遲間隙優(yōu)化結(jié)果第12頁/共46頁循環(huán)代碼展開舉例第13頁/共46頁循環(huán)展開: 減少B的開銷, 但增加代碼尺寸n循環(huán)次數(shù)減少一半第14頁/共46頁字長優(yōu)化使用字訪問半字?jǐn)?shù)據(jù)使用雙字字訪問字?jǐn)?shù)

7、據(jù)第15頁/共46頁使用LDH的點積第16頁/共46頁使用LDW進行優(yōu)化第17頁/共46頁使用LDW/MPYH第18頁/共46頁軟件流水 產(chǎn)生高性能循環(huán)代碼 執(zhí)行并行指令 填充延遲間隙 功能單元使用最大化 由開發(fā)工具產(chǎn)生 由編譯器選項-o2或o3引入 匯編優(yōu)化器/C優(yōu)化器產(chǎn)生第19頁/共46頁代碼舉例 這個循環(huán)執(zhí)行5次需要多少周期? (不考慮延遲間隙) 周期第20頁/共46頁非流水代碼第21頁/共46頁流水代碼第22頁/共46頁軟件流水中的術(shù)語填充(建立循環(huán))循環(huán)(單周期循環(huán)3次迭代)排空(完成最后操作)第23頁/共46頁流水代碼第24頁/共46頁軟件流水步驟1 . 用C語言實現(xiàn)算法并驗證2

8、. 寫C6x線性匯編代碼3 . 畫相關(guān)圖4 . 分配功能單元和寄存器5 . 建編排表6 . 將編排表轉(zhuǎn)換為C6x匯編代碼第25頁/共46頁第一步:用C語言實現(xiàn)算法并驗證第26頁/共46頁第二步:寫C62xx線性匯編代碼線性匯編不需要指出和考慮: 功能單元 寄存器 延遲間隙 并行指令第27頁/共46頁簡單估計指令功能單元每周期可使用數(shù)目需要數(shù)目LDH,LDH.D22MPY.M21B.S21ADD,SUB.L(.D/.S)2(2-6)2第28頁/共46頁第三步:畫相關(guān)圖第29頁/共46頁畫相關(guān)圖步驟:1 、畫節(jié)點(包括:指令、結(jié)果、通路)2 、在通路旁標(biāo)出父指令執(zhí)行周期3 、安排功能單元 安排必須

9、的功能單元 節(jié)點分配到A、B兩側(cè) 對所有節(jié)點分配功能單元平分.D、.S、.M最小化交叉通路平衡功能單元仲裁第30頁/共46頁畫點積相關(guān)圖1. 畫節(jié)點(1)第31頁/共46頁畫點積相關(guān)圖1. 畫節(jié)點(2)循環(huán)傳遞通路第32頁/共46頁畫點積相關(guān)圖1. 畫節(jié)點(3)第33頁/共46頁畫點積相關(guān)圖2. 標(biāo)出父指令執(zhí)行周期第34頁/共46頁畫點積相關(guān)圖3. 安排功能單元(1)第35頁/共46頁畫點積相關(guān)圖3. 安排功能單元(2)第36頁/共46頁畫點積相關(guān)圖3. 安排功能單元(3)第37頁/共46頁第四步:分配功能單元 根據(jù)功能單元和交叉通路的使用,可在單周期循環(huán)內(nèi)編排這些指令。第38頁/共46頁第四步:分配寄存器第39頁/共46頁第五步:建編排表(1)第40頁/共46頁循環(huán)填充長度 抽出最長數(shù)據(jù)通路 計算長度: 5+2+1=8周期 編排表列出0-7周期 填充:第0-6周期 循環(huán):第7周期編排周期057第41頁/共46頁填寫指令建議l 從最長數(shù)據(jù)通路開始l 盡可能早開始(第0周期)l 一旦確定指令執(zhí)行的周期,在這以后的周期內(nèi),連續(xù)發(fā)生各次迭代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論