色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

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

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

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

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

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

          多重處理

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

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

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

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

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

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

          結(jié)論

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

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

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

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


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉