《匯編語言優(yōu)化》ppt課件_第1頁
《匯編語言優(yōu)化》ppt課件_第2頁
《匯編語言優(yōu)化》ppt課件_第3頁
《匯編語言優(yōu)化》ppt課件_第4頁
《匯編語言優(yōu)化》ppt課件_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第八講 匯編言語優(yōu)化學(xué)習(xí)內(nèi)容 描畫各種優(yōu)化方法 運用字訪問優(yōu)化點積代碼 運用軟件流水手工優(yōu)化匯編循環(huán)標(biāo)題一、優(yōu)化方法簡介二、并行指令三、填充延遲間隙四、展開循環(huán)五、字長優(yōu)化運用LDW六、各優(yōu)化方法小結(jié)七、軟件流水八、軟件流水步驟九、各種優(yōu)化總結(jié)一、優(yōu)化方法簡介 運用并行指令 用有用的指令取代NOP填充延遲間隙 循環(huán)展開 字長優(yōu)化運用LDW 軟件流水二、運用并行指令運用并行指令 哪些指令可以并行?并行指令 哪些指令可以并行? 兩條取指令并行: 放“|在第二個ldh前 .d1改為.d2,A改為B并行留意的問題 例如: ADD運用原來的A4值 假設(shè)在循環(huán)中: 循環(huán)之前清A4 不要忘記最后的累加并行指

2、令小結(jié) 首先使代碼正確執(zhí)行,然后試圖用并行指令。 并行代碼執(zhí)行速度快,但必需小心確保代碼按所期望執(zhí)行。 在循環(huán)代碼中,運用軟件流水可執(zhí)行并行指令。并行優(yōu)化結(jié)果三、填充延遲間隙填充延遲間隙 NOP:相當(dāng)于未優(yōu)化 為了消除NOP,如何調(diào)整指令順序?填充延遲間隙Sub和b指令移到ldh指令后:LD的nop由4降為2B的nop被消除填充延遲間隙優(yōu)化結(jié)果四、展開循環(huán)循環(huán)代碼舉例例1 去掉了第四次循環(huán)開銷例2 循環(huán)次數(shù)減少一半例3 消除了一切循環(huán)開銷循環(huán)展開舉例小結(jié)舉例周期數(shù)代碼尺寸循環(huán)217119112171131216五、字長優(yōu)化(運用字訪問半字?jǐn)?shù)據(jù))運用LDH的點積運用LDW進(jìn)展優(yōu)化運用LDW/MP

3、YH乘法指令小結(jié) 操作數(shù)可以是有符號的,也可以是無符號的 乘法指令需一個延遲間隙 4種根本乘法指令:六、各種優(yōu)化方法小結(jié)七、軟件流水軟件流水 產(chǎn)生高性能循環(huán)代碼 執(zhí)行并行指令 填充延遲間隙 功能單元運用最大化 由開發(fā)工具產(chǎn)生 由編譯器選項-o2或o3引入 匯編優(yōu)化器(輸入文件運用.sa擴(kuò)展名 而不是.asm)產(chǎn)生為什么學(xué)習(xí)軟件流水? 知道開發(fā)工具是如何產(chǎn)生優(yōu)化代碼的 讀懂開發(fā)工具的輸出代碼 檢查開發(fā)工具效率 手工優(yōu)化匯編代碼 了解軟件流水的任務(wù)情況代碼舉例 這個循環(huán)執(zhí)行5次需求多少周期? (不思索延遲間隙) 周期非流水代碼流水代碼軟件流水中的術(shù)語填充填充(建立循環(huán)建立循環(huán))循環(huán)循環(huán)(單周期循環(huán)

4、單周期循環(huán)3次迭代次迭代)排空排空(完成最后操作完成最后操作)流水代碼八、軟件流水步驟軟件流水步驟1 . 用C言語實現(xiàn)算法并驗證1 . 寫C6x線性匯編代碼1 . 畫相關(guān)圖1 . 分配功能單元和存放器1 . 建編排表1 . 將編排表轉(zhuǎn)換為C6x匯編代碼第一步:用C言語實現(xiàn)算法并驗證第二步:寫C62xx線性匯編代碼線性匯編不需求指出和思索:功能單元存放器延遲間隙并行指令簡單估計指令功能單元每周期可使用數(shù)目需要數(shù)目LDH,LDH.D22MPY.M21B.S21ADD,SUB.L(.D/.S)2(2-6)2第三步:畫相關(guān)圖相關(guān)圖中的名詞術(shù)語畫相關(guān)圖步驟:1 、畫節(jié)點(包括:指令、結(jié)果、通路)1 、在

5、通路旁標(biāo)出父指令執(zhí)行周期1 、安排功能單元1 安排必需的功能單元1 節(jié)點分配到A、B兩側(cè)1 對一切節(jié)點分配功能單元平分.D、.S、.M最小化交叉通路平衡功能單元仲裁畫點積相關(guān)圖1. 畫節(jié)點(1)畫點積相關(guān)圖1. 畫節(jié)點(2)循環(huán)傳送通路畫點積相關(guān)圖1. 畫節(jié)點(3)畫點積相關(guān)圖2. 標(biāo)出父指令執(zhí)行周期畫點積相關(guān)圖3. 安排功能單元(1)畫點積相關(guān)圖3. 安排功能單元2畫點積相關(guān)圖3. 安排功能單元3第四步:分配功能單元 根據(jù)功能單元和交叉通路的運用,可在單周期循環(huán)內(nèi)編排這些指令。第四步:分配存放器第五步:建編排表1循環(huán)填充長度 抽出最長數(shù)據(jù)通路 計算長度: 5+2+1=8周期 編排表列出0-7周期 填充:第0-6周期 循環(huán):第7周期編排周期057填寫指令建議l從最長數(shù)據(jù)通路開場l盡能夠早開場第0周期l一旦確定指令執(zhí)行的周期,在這以后的周期內(nèi),延續(xù)發(fā)生各次迭代l倒推跳轉(zhuǎn)和循環(huán)計數(shù)指令的發(fā)生周期第五步:建編排表2第六步:寫C

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論