www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]闡述實際電力自動化裝置開發(fā)過程中如何提升嵌入式系統(tǒng)CPU運行效率,進行軟件效率優(yōu)化。雖然現(xiàn)代超標量體系結(jié)構(gòu)的CPU標稱性能很強大,但需要采取有針對性的措施進行優(yōu)化,才能發(fā)揮其真正性能。在實踐中,根據(jù)超標量體系結(jié)構(gòu)CPU的特點,有針對性的進行軟件優(yōu)化和代碼重構(gòu),優(yōu)化前后性能有大幅度的提升。這說明CPU體系結(jié)構(gòu)特定的軟件優(yōu)化對發(fā)揮系統(tǒng)性能有著

引言

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

1 超標量體系結(jié)構(gòu)PowerPC芯片特點

1.1 超標量體系結(jié)構(gòu)芯片

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

1.2 PowerPC芯片特點

1.2.1 流水線機制

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

1.2.2 總線頻率

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

1.2.3 16 KB的指令Cache和16 KB的數(shù)據(jù)Cache

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

(1) 指令Cache運作機制

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

(2) 數(shù)據(jù)Cache運作機制

每次訪問數(shù)據(jù)時,若數(shù)據(jù)未在數(shù)據(jù)Cache中,即數(shù)據(jù)Cache未命中,則一次從內(nèi)存中讀出連續(xù)32字節(jié)數(shù)據(jù)到數(shù)據(jù)Cache。同時將數(shù)據(jù)Cache中最久未訪問的數(shù)據(jù)淘汰出Cache。

2 從超標量流水線機制的角度進行優(yōu)化

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

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

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

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

2.2.1 循環(huán)體代碼并行執(zhí)行的優(yōu)化

代碼舉例1:
for(i=0;i<1000;i++) {
Y[i]=Y[i]+Y[i-1];
}

該代碼循環(huán)體代碼之間因為存在相關數(shù)據(jù),導致代碼無法被CPU并行執(zhí)行,需要避免類似代碼。

代碼舉例2:
for(i=0;i<1000;i++) {
Y[i]=X[i]+Z[i];
}

該代碼循環(huán)體代碼之間不存在相關,能被CPU并行執(zhí)行。CPU執(zhí)行時代碼如下:
Y[0]=X[0]+Z[0],
Y[1]=X[1]+Z[1],
Y[2]=X[2]+Z[2],
Y[3]=X[3]+Z[3],

2.2.2 代碼順序執(zhí)行避免跳轉(zhuǎn)的優(yōu)化

跳轉(zhuǎn)的語句主要有if_else結(jié)構(gòu)、switch_case結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等。

if_else結(jié)構(gòu)可以將選擇概率最大的語句放到if語句之后。因為取指時,緊接著if語句的指令會被取到。這樣發(fā)生跳轉(zhuǎn)的次數(shù)降低,流水線被中斷的概率降低。

盡量降低循環(huán)嵌套層數(shù)和循環(huán)次數(shù),這樣發(fā)生跳轉(zhuǎn)的次數(shù)也降低。

2.2.3 避免小段程序代碼循環(huán)的優(yōu)化

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

3 從指令Cache的角度進行優(yōu)化

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

從前面分析可知,若程序取指環(huán)節(jié)能從指令Cache中讀取,而不是每次都從內(nèi)存中讀取,則能顯著提高程序執(zhí)行速度。

3.2 從提高指令Cache命中的角度進行優(yōu)化

① 盡量使程序順序執(zhí)行。
② 避免大量相似的代碼重復實現(xiàn)、分散調(diào)用。
③ 盡量將相同的代碼在一個地方循環(huán)執(zhí)行,提高指令Cache的命中率。不要分散執(zhí)行,導致多次讀取同一段代碼到指令Cache中。

3.2.1 多個相似函數(shù)的優(yōu)化

代碼舉例3:
{
FuncA;//3個相似函數(shù)連續(xù)調(diào)用
FuncB;
FuncC;
}
優(yōu)化為
for(i=0;i<3;i++) {
Func(i);
}

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

3.2.2 大函數(shù)拆分的優(yōu)化

由于函數(shù)體較大,超出了指令Cache的大小,導致第1次循環(huán)結(jié)束、第2次循環(huán)開始時,函數(shù)體前面內(nèi)容已經(jīng)被調(diào)出Cache。同樣代碼又重新從內(nèi)存中讀取到Cache中,如此反復,實際的結(jié)果是函數(shù)體Func代碼被三次從內(nèi)存中讀取到Cache中,導致效率大大降低。

代碼舉例4:
for(i=0;i<3;i++) {
Func(i);
}
被優(yōu)化為:
for(i=0;i<3;i++) {
Func1(i);
}
for(i=0;i<3;i++) {
Func2(i);
}
for(i=0;i<3;i++) {
Func3(i);
}

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

4 從數(shù)據(jù)Cache的角度進行優(yōu)化

4.1 數(shù)據(jù)Cache對程序效率的分析

從前面分析可知,在程序取操作數(shù)環(huán)節(jié),若能從數(shù)據(jù)Cache中讀取操作數(shù),而不是每次都從內(nèi)存中讀取則能提高程序執(zhí)行速度。

4.2 從提高數(shù)據(jù)Cache命中的角度進行優(yōu)化

① 訪問數(shù)據(jù)時,最好是對同一段數(shù)據(jù)在一個地方集中訪問。
② 訪問數(shù)據(jù)時,最好是根據(jù)數(shù)據(jù)的順序依次訪問。比如對數(shù)組的訪問,最好是按數(shù)組成員依次訪問,效率較高。
③ 為了使程序能夠連續(xù)訪問數(shù)據(jù),需要調(diào)整數(shù)據(jù)結(jié)構(gòu)、重構(gòu)代碼使得數(shù)據(jù)結(jié)構(gòu)和程序配合,提高數(shù)據(jù)Cache的命中率。

4.2.1 數(shù)組連續(xù)訪問的優(yōu)化

代碼舉例5:
float afBuf[1000];
float xBuf[8][24];
Func {
for(i=0;i<24;i++) {
xBuf[0][i]=afBuf[0+i];
xBuf[1][i]=afBuf[24+i];
……
xBuf[7][i]=afBuf[168+i];
}
}

被優(yōu)化為:
Func {
for(i=0;i<8;i++) {
m=i*24;
xBuf[i][0]=afBuf[0+m]
xBuf[i][1]=afBuf[1+m];
……
xBuf[i][23]=afBuf[23+m];
}
}

這樣優(yōu)化后,數(shù)據(jù)每次訪問都是連續(xù)的。

4.2.2 將不連續(xù)數(shù)據(jù)訪問重構(gòu)為連續(xù)訪問的優(yōu)化

代碼舉例6:
floatafBufA[24];
floatafBufB[24];
floatafBufC[24];
floatxbuf[200];
Func {
xBuf[0]=afBufA[0];
xBuf[1]=afBufB[0];
xBuf[2]=afBufC[0];
……
xBuf[69]=afBufA[23];
xBuf[70]=afBufB[23];
xBuf[71]=afBufC[23];
}

被優(yōu)化為:
struct {
float fA;
float fB;
float fC;
} aBufABC[24];
floatxbuf[200];
Func {
xBuf[0]=aBufABC[0].fA;
xBuf[1]=aBufABC[0].fB;
xBuf[2]=aBufABC[0].fC;
……
xBuf[69]=aBufABC[23].fA;
xBuf[70]=aBufABC[23].fB;
xBuf[71]=aBufABC[23].fC;
}

5 軟件優(yōu)化實驗結(jié)果

5.1 優(yōu)化對比實驗

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

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

結(jié)語

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

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉