<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 如何在ARM平臺上開發(fā)低功耗的軟件系統(tǒng)

          如何在ARM平臺上開發(fā)低功耗的軟件系統(tǒng)

          作者: 時間:2012-06-21 來源:網(wǎng)絡(luò) 收藏

          對于個別計算單元,選擇一種關(guān)機(jī)方案是很容易的。對于可以預(yù)測需要與否的單元,在不需要時通過應(yīng)用程序或操作系統(tǒng)就可以停止運(yùn)行這些單元。對于不可預(yù)測需要與否的單元,可以通過按需通電啟動系統(tǒng),也可以在空閑超過某段時間之后再自動斷電。子系統(tǒng)斷電的時標(biāo)可以通過以下兩方面來得出:通電但處于空閑狀態(tài)時的以及睡眠喚醒循環(huán)的能耗。從根本上講,這取決于應(yīng)用場合。但是,動力循環(huán)代碼的簡單循環(huán)計數(shù)將是最明顯的起點(diǎn)。

          測量數(shù)據(jù)表明,N e o n引擎相比C o r tex-A9等內(nèi)核的運(yùn)行功率要高大約10%。但是,對于傳統(tǒng)的信號處理算法,其性能提升了40% - 150%。在任務(wù)期間啟用NeON而在不需要時切斷Neon的好處很明顯。很常見的是,不但N e o n引擎可以在任務(wù)完成時切斷,而且整個處理器系統(tǒng)可以節(jié)省更多

          通常一個比較難的選擇是啟用計算組件提前完成計算(且因此切斷時間更長)還是完成計算時及時降低處理器速度以減少。圖6顯示了每次迭代的能耗數(shù)據(jù),這是簡單的基準(zhǔn)(Domeika, 2009)。采用不同的指令緩存和浮點(diǎn)協(xié)處理器組合,對于兩個時鐘速度,每個時鐘速度均要運(yùn)行此基準(zhǔn)四次。有兩個清晰的重點(diǎn)。首先,盡管指令緩存和浮點(diǎn)單元均減少了能耗,但是浮點(diǎn)單元比指令緩存的表現(xiàn)更優(yōu)異。

          圖6:系統(tǒng)組件電源利用

          其次,對于所有配置而言,每次迭代的能耗從本質(zhì)上講是相同的,與時鐘速度無關(guān)。因此,為了更快地完成任務(wù)而啟用所有功能并全速運(yùn)行要比調(diào)慢時鐘速度更加高效。

          多重處理

          眾所周知,與調(diào)高單核的功率相比,采用多核可以獲得更高的性能和更好的能效。使用多核系統(tǒng)時,我們必須考慮在不需要時選擇中止一個或多個內(nèi)核。A R M的研究表明,S M PLinux系統(tǒng)中單核循環(huán)的成本是50000個周期(大部分周期用于清除一級緩存),這意味著此操作將在幾百毫秒內(nèi)完成,而不是更短的時間內(nèi)完成,否則其能耗成本將超過其具有的優(yōu)勢。

          是主動研究型架構(gòu),其包含兩個內(nèi)核,一個高性能的內(nèi)核用于全功能操作,一個較小的配套內(nèi)核則以較低的性能完成低功率操作。需要較高的處理功率時,系統(tǒng)運(yùn)行較大的內(nèi)核。任務(wù)完成時,系統(tǒng)可以把所有信息傳遞給小內(nèi)核并關(guān)閉大內(nèi)核。需要逆向信息移動時,再切換回大內(nèi)核。如果這兩個內(nèi)核相連成為相關(guān)系統(tǒng),則切換的能耗成本可降到最低。

          關(guān)于操作系統(tǒng)

          不巧的是,在操作系統(tǒng)上運(yùn)行時,應(yīng)用程序員無法這樣靈活處理。緩存配置、S PM使用與否、組件的電源周期等很大程度上都是操作系統(tǒng)架構(gòu)和設(shè)備驅(qū)動程序來專門決定的。但是,應(yīng)用程序員仍然有很多東西需要考慮。

          研究已經(jīng)表明,設(shè)計不良的進(jìn)程間通信(I P C)會大大增加系統(tǒng)的能耗。一個簡單的技術(shù)稱為“矢量化”進(jìn)程間通信,這種技術(shù)批量處理小的消息并把大量小的消息作為一個大的消息來發(fā)送,這樣通常可以減少上下文的切換開銷。另外,減少進(jìn)程數(shù)量可明顯降低進(jìn)程間通信的需求。需要頻繁通信的進(jìn)程可以合并成一個進(jìn)程。

          在嵌入式Linux中運(yùn)行的最近研究(Tan, 2003)表明,分析和合理設(shè)計進(jìn)程間通信2 可以潛在改進(jìn)能耗多達(dá)60%。

          結(jié)論

          盡管我已經(jīng)強(qiáng)調(diào)了許多領(lǐng)域仍然屬于學(xué)術(shù)研究范圍,但我們現(xiàn)在還是可以做許多工作。結(jié)果相對比較簡單:減少外部內(nèi)存存取,減少指令執(zhí)行,并在不使用某些單元時關(guān)掉它們。

          在做出這個結(jié)論的同時,我想起了2 0 0 9年中期在一次培訓(xùn)課上與客戶的一次談話。這些客戶關(guān)心在包含了N e o n的C or tex-A8上實(shí)現(xiàn)信號處理算法且想要知道個別指令的確切能耗。我解釋說,實(shí)際上很多這種信息是未知的,而且不管在什么情況下,很難使用當(dāng)前的工具得出這些信息?;仡櫳衔?,我們已經(jīng)認(rèn)識到在捕獵大象的這個長期任務(wù)中,這些信息都是無關(guān)緊要的。實(shí)際上,客戶要捕獵的大象與房間中的其他大象相比,非常的小。不管是經(jīng)過分析還是持續(xù)跟蹤數(shù)據(jù),都可以得出更好的建議,那就是估算每次實(shí)現(xiàn)中涉及的數(shù)據(jù)存取次數(shù)和類型。這樣,再結(jié)合指令計數(shù),可以做出更加明智的選擇。與內(nèi)存存取布置不良相比,個別指令的功耗幾乎無關(guān)緊要。

          我們這些軟件人員要繼續(xù)對學(xué)術(shù)和工具供應(yīng)商施加壓力,讓他們在下一代工具中構(gòu)建出這些功能。這不容易但將會實(shí)現(xiàn)。

          最后,我必須提醒大家所有這些取決于您所用的系統(tǒng)、、應(yīng)用程序、操作系統(tǒng)、電池和用戶。就像俗話說的“優(yōu)勢各有不同”。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();