999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式系統超標量體系CPU的高效軟件優化技術

2012-09-25 02:59:32張云
單片機與嵌入式系統應用 2012年3期
關鍵詞:指令效率優化

張云

(國電南京自動化股份有限公司,南京 211100)

引 言

公司基于超標量體系結構的某款PowerPC芯片開發出了電力系列自動化裝置,它對實時性要求很高。但軟件的運行效率低,這就需要我們針對該芯片的超標量體系結構特點進行軟件優化。實踐中,在針對性優化后進行對比實驗,裝置軟件運行效率大大提高,實際效果良好。

1 超標量體系結構PowerPC芯片特點

1.1 超標量體系結構芯片

PowerPC芯片屬于超標量體系結構。超標量體系結構是一種微處理器設計模式,它能夠在一個時鐘周期內執行多條指令。在超標量體系結構設計中,處理器或指令編譯器判斷指令能否獨立于其他順序指令而執行,或是依賴于另一指令,必須按順序執行。然后處理器使用多個執行單元并行執行兩個或更多獨立指令。

1.2 PowerPC芯片特點

1.2.1 流水線機制

該芯片一條指令,可簡單分為取指、譯碼、執行,提交4個時鐘周期操作。同一周期,CPU的不同部件可并行執行多條指令的不同操作,從而達到指令并行,提高CPU的吞吐率。

1.2.2 總線頻率

該芯片的主頻達到400MHz,但訪問內存的總線頻率是100MHz,只有主頻的1/4。由此可見,當訪問內存數據時,其運行時間比執行計算程序慢多了。當系統大量訪問內存時,系統運行速度會明顯下降。

1.2.3 16KB的指令Cache和16KB的數據Cache

PowerPC芯片中指令Cache和數據Cache中訪問指令和數據的速度與主頻一樣。同樣,當讀取指令和數據時在Cache中讀取的速度約是內存中讀取速度的4倍。

(1)指令Cache運作機制

每次指令運行時若指令未在指令Cache中,即指令Cache未命中,則一次從內存中讀出待執行的連續32字節(32字節相當于8個浮點數)指令到指令Cache。同時將指令Cache中最久未訪問的代碼淘汰出Cache。32字節相當于3~5條普通C語言代碼。

(2)數據Cache運作機制

每次訪問數據時,若數據未在數據Cache中,即數據Cache未命中,則一次從內存中讀出連續32字節數據到數據Cache。同時將數據Cache中最久未訪問的數據淘汰出Cache。

2 從超標量流水線機制的角度進行優化

2.1 超標量流水線機制對程序效率的分析

從前面的流水線機制可以看到,若指令能達到盡可能的并行,程序運行效率會明顯提高。這就需要優化代碼,讓編譯器優化成并行指令。

2.2 從提高指令并行和流水線不被打斷的角度進行優化

要提高指令并行,主要就要提高代碼并行可能性。防止流水線不被打斷,就是要盡量避免跳轉。

2.2.1 循環體代碼并行執行的優化

代碼舉例1:

該代碼循環體代碼之間因為存在相關數據,導致代碼無法被CPU并行執行,需要避免類似代碼。

代碼舉例2:

該代碼循環體代碼之間不存在相關,能被CPU并行執行。CPU執行時代碼如下:

2.2.2 代碼順序執行避免跳轉的優化

跳轉的語句主要有if_else結構、switch_case結構、循環結構等。

if_else結構可以將選擇概率最大的語句放到if語句之后。因為取指時,緊接著if語句的指令會被取到。這樣發生跳轉的次數降低,流水線被中斷的概率降低。

盡量降低循環嵌套層數和循環次數,這樣發生跳轉的次數也降低。

2.2.3 避免小段程序代碼循環的優化

比如2~3句的小循環,可以適當展開。一是可以提高循環內指令并行的可能性。二是可以減少跳轉次數。循環體代碼超過10句普通C語言代碼,可以不要展開。

3 從指令Cache的角度進行優化

3.1 指令Cache對程序效率的分析

從前面分析可知,若程序取指環節能從指令Cache中讀取,而不是每次都從內存中讀取,則能顯著提高程序執行速度。

3.2 從提高指令Cache命中的角度進行優化

①盡量使程序順序執行。

②避免大量相似的代碼重復實現、分散調用。

③盡量將相同的代碼在一個地方循環執行,提高指令Cache的命中率。不要分散執行,導致多次讀取同一段代碼到指令Cache中。

3.2.1 多個相似函數的優化

代碼舉例3:

優化為

這樣相同的代碼一次即可從內存讀到Cache中,另外2次指令都是從Cache中讀取。

3.2.2 大函數拆分的優化

由于函數體較大,超出了指令Cache的大小,導致第1次循環結束、第2次循環開始時,函數體前面內容已經被調出Cache。同樣代碼又重新從內存中讀取到Cache中,如此反復,實際的結果是函數體Func代碼被三次從內存中讀取到Cache中,導致效率大大降低。

代碼舉例4:

被優化為:

將函數體Func分成幾個單獨的子函數:Func1、Func2、Func3,然后分別循環。這樣Func1循環時,由于代碼量較小,整個函數體都在Cache中。Func2、Func3類似。這樣的結果是,函數體Func1、Func2、Func3都只從內存被讀一次到Cache中。

4 從數據Cache的角度進行優化

4.1 數據Cache對程序效率的分析

從前面分析可知,在程序取操作數環節,若能從數據Cache中讀取操作數,而不是每次都從內存中讀取則能提高程序執行速度。

4.2 從提高數據Cache命中的角度進行優化

①訪問數據時,最好是對同一段數據在一個地方集中訪問。

②訪問數據時,最好是根據數據的順序依次訪問。比如對數組的訪問,最好是按數組成員依次訪問,效率較高。

③為了使程序能夠連續訪問數據,需要調整數據結構、重構代碼使得數據結構和程序配合,提高數據Cache的命中率。

4.2.1 數組連續訪問的優化

代碼舉例5:

被優化為:

這樣優化后,數據每次訪問都是連續的。

4.2.2 將不連續數據訪問重構為連續訪問的優化

代碼舉例6:

被優化為:

5 軟件優化實驗結果

5.1 優化對比實驗

在自動化裝置的主要消耗資源的實時掃描任務中進行了代碼分析,并按上述可能優化措施進行了優化。優化前實時掃描任務占用資源為系統CPU總資源的52%。代碼優化后實時掃描任務占用CPU資源只有系統總資源的31%。

對比可以看出,系統效率提高了40%,效果是非常明顯的。

結 語

雖然CPU的標稱性能指標非常高,但其有專用的體系結構,對一般開發者的編程開發方式而言并不是完全匹配,導致發揮不出CPU的潛力。所以有針對性的根據CPU的體系結構特點進行分析,并采取針對性的優化措施,才能真正發揮其性能,滿足嵌入式強實時性要求。

[1]John L Hennesy,David A Patterson.計算機系統結構:一種定量的方法[M].北京:清華大學出版社,2002.

猜你喜歡
指令效率優化
聽我指令:大催眠術
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
跟蹤導練(一)2
“錢”、“事”脫節效率低
中國衛生(2014年11期)2014-11-12 13:11:32
主站蜘蛛池模板: 精品久久蜜桃| 久久综合干| 毛片久久久| 国产精品免费电影| 国产精品蜜芽在线观看| 久操中文在线| 99国产精品一区二区| 亚洲人成在线免费观看| 欧美精品伊人久久| 伦精品一区二区三区视频| 日韩精品成人网页视频在线| 日本成人不卡视频| 国产高清国内精品福利| 日本国产在线| 蜜臀AVWWW国产天堂| 在线欧美一区| a级毛片免费网站| 久久综合亚洲鲁鲁九月天| 欧美另类视频一区二区三区| av手机版在线播放| 视频一本大道香蕉久在线播放| 日韩欧美国产综合| 沈阳少妇高潮在线| 中国一级毛片免费观看| 欧美成人精品高清在线下载| 久久久久久久久18禁秘| 青青热久麻豆精品视频在线观看| 成人自拍视频在线观看| 日本一本在线视频| 国产你懂得| 凹凸国产熟女精品视频| 九九这里只有精品视频| 在线免费观看a视频| 成人av手机在线观看| 久草国产在线观看| 亚洲精品成人片在线观看| 亚洲第一网站男人都懂| 青青青视频免费一区二区| 成人一级免费视频| 一本大道AV人久久综合| 国产成人凹凸视频在线| 多人乱p欧美在线观看| 国产噜噜噜| 亚洲精品无码久久久久苍井空| 中文字幕无线码一区| 日本成人不卡视频| 欧美在线天堂| 久久精品国产精品青草app| 国产亚洲视频免费播放| 亚洲天堂网站在线| 91精品啪在线观看国产60岁| 97影院午夜在线观看视频| 欧美激情综合一区二区| 好紧好深好大乳无码中文字幕| 亚洲一级毛片| 久久综合伊人 六十路| 青青热久麻豆精品视频在线观看| 日韩欧美一区在线观看| 美女被躁出白浆视频播放| 亚洲αv毛片| 在线观看免费黄色网址| 国产亚洲精品在天天在线麻豆 | 免费国产不卡午夜福在线观看| 91精品网站| 又爽又大又光又色的午夜视频| 欧美自慰一级看片免费| 69av免费视频| 久草视频福利在线观看| 久久久国产精品免费视频| 幺女国产一级毛片| 成人在线观看不卡| 一级香蕉视频在线观看| 精品人妻AV区| 国产门事件在线| 伊人久久精品无码麻豆精品| 97久久精品人人做人人爽| 波多野结衣视频网站| 中文字幕 91| 香蕉久久国产超碰青草| 亚洲精品图区| 亚洲啪啪网| 国产三级国产精品国产普男人|