在低功耗特性中,軟件可能實(shí)現(xiàn)起來并沒有那么難,從設(shè)計(jì)到實(shí)現(xiàn)的時(shí)間可能并不會(huì)耗時(shí)特別長,耗時(shí)最長的是后續(xù)的商用問題定位以及對功耗的優(yōu)化,這些都是建立在一定的實(shí)戰(zhàn)基礎(chǔ)上才能做的越來越好,在這里推薦幾種比較常用的優(yōu)化或者定位問題的手段供大家參考,希望能給大家?guī)硪恍椭?/p>

圖:低功耗軟件棧組成
19.1多子系統(tǒng)配置
比如某一個(gè)公共外設(shè),如果多個(gè)子系統(tǒng)共用的話,在芯片設(shè)計(jì)上建議每個(gè)子系統(tǒng)各放置一個(gè),這樣一可以節(jié)省系統(tǒng)運(yùn)行過程中的訪問帶寬,二可以做好訪問隔離,盡可能的降低了芯片通路訪問的復(fù)雜性和軟件設(shè)計(jì)的復(fù)雜性。
我們通過一個(gè)例子來說明一下:比如在一個(gè)系統(tǒng)中,只有一個(gè)DMA,存放在公共外設(shè)區(qū)(peri),這個(gè)時(shí)候如果AP需要訪問DMA的話,那么它需要先經(jīng)過自己系統(tǒng)的SUB BUS總線,再通過SYS BUS總線訪問到外設(shè)區(qū)的DMA;如圖19-1所示。

圖19-1 DMA部署優(yōu)化前布局示意
如BP需要訪問DMA的話,那么它也需要先經(jīng)過自己系統(tǒng)的SUB BUS總線,再通過SYS BUS總線訪問到外設(shè)區(qū)的DMA;如此這般,其他子系統(tǒng)都是同樣的訪問路徑。在這樣的情況下,有2個(gè)缺點(diǎn):一是訪問路徑過遠(yuǎn)增加了總線的繁忙程度,可能導(dǎo)致訪問延時(shí);二是可能存在資源競爭的發(fā)生,比如AP、BP或其他子系統(tǒng)同時(shí)訪問的話,可能需要做仲裁處理。
那么針對這種情況,我們可以做個(gè)優(yōu)化,就是把DMA在每個(gè)子系統(tǒng)內(nèi)部的device區(qū)各放置一個(gè),如圖19-2所示,各個(gè)CPU需要使用DMA時(shí),只用訪問自己內(nèi)部的DMA即可,這樣可以很好的化解前邊說的2個(gè)缺點(diǎn)。為什么說這樣設(shè)計(jì)也可以做到功耗優(yōu)化呢?試想如果AP側(cè)沒有這個(gè)DMA,那么在AP側(cè)喚醒而其他子系統(tǒng)都睡眠的情況下,AP側(cè)如果要訪問DMA,勢必需要給其他子系統(tǒng)上電,從而帶來功耗的浪費(fèi),而如果AP子系統(tǒng)內(nèi)部本身就有DMA的話就沒有必要給其他子系統(tǒng)上電。這個(gè)思想當(dāng)然可以用在任何IP的歸置上,需要根據(jù)實(shí)際的設(shè)計(jì)場景做對應(yīng)的優(yōu)化。

圖19-2 DMA部署優(yōu)化后布局示意
19.2并行處理
低功耗比較敏感的一個(gè)KPI是suspend和resume的時(shí)間,因?yàn)榈凸氖窍到y(tǒng)中的一個(gè)常態(tài),這一塊的處理時(shí)間當(dāng)然是越短越好,這樣可以讓用戶體驗(yàn)更流暢。一個(gè)好的思想是讓處理盡可能的并行起來,比如在suspend和resume的流程中,有一長段地址空間需要保存恢復(fù),那么如果是用CPU的話,效率是十分低下的,這個(gè)時(shí)候我們可以使用DMA來搬移數(shù)據(jù),同時(shí)CPU繼續(xù)處理低功耗處理的其他流程,在合適的點(diǎn)來檢查DMA的搬移狀態(tài)。我們可以通過以下例子來說明。
在suspend流程中,PD MEM中的內(nèi)容我們使用CPU來做下電前的保存動(dòng)作,如圖19-3所示,把內(nèi)容保存到DDR中,耗時(shí)T1,其他suspend處理耗時(shí)為T,那么suspend總耗時(shí)為T+T1,T1時(shí)長與PD MEM的大小強(qiáng)相關(guān),越大耗時(shí)越長。

圖19-3使用DMA搬移前
那么關(guān)于大內(nèi)存保存恢復(fù)這一塊,其實(shí)我們可以做一個(gè)優(yōu)化,那就是不使用CPU進(jìn)行處理,我們使用DMA去做搬移,CPU去做其他的suspend動(dòng)作,那么T1這個(gè)耗時(shí)就可能會(huì)省下來,總耗時(shí)為T,從而達(dá)到時(shí)長優(yōu)化的目的。如圖19-4所示。

圖19-4使用DMA搬移后
前邊講了suspend流程的并行處理優(yōu)化思想,對于resume流程來講,同樣適用,就不再做過多闡述。
19.3增加打點(diǎn)信息
因?yàn)樵诘凸牧鞒讨?,?huì)涉及到關(guān)閉時(shí)鐘或者關(guān)閉電源等操作,很多debug工具是無法使用的,一個(gè)好的手段是在內(nèi)存中劃分一片區(qū)域?qū)iT用來給低功耗流程打點(diǎn)使用,打入數(shù)據(jù)通常是系統(tǒng)中遞增的時(shí)間戳,這樣有2個(gè)好處:一是可以方便查看各個(gè)階段的耗時(shí),二是可以根據(jù)時(shí)間戳的遞增特性來快速的定位到哪一步出了異常。如圖19-5所示。
審核編輯 :李倩
-
cpu
+關(guān)注
關(guān)注
68文章
11218瀏覽量
222953 -
soc
+關(guān)注
關(guān)注
38文章
4514瀏覽量
227625 -
內(nèi)存
+關(guān)注
關(guān)注
9文章
3173瀏覽量
76115 -
低功耗
+關(guān)注
關(guān)注
12文章
2991瀏覽量
106250 -
dma
+關(guān)注
關(guān)注
3文章
577瀏覽量
105356
原文標(biāo)題:SoC低功耗問題定位及優(yōu)化的10個(gè)思路
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
SoC低功耗設(shè)計(jì)
行業(yè)最低功耗藍(lán)牙SoC NCV-RSL10有什么優(yōu)勢?
基于Kemet PL-N823-01和OnSemi RSL10藍(lán)牙低功耗SoC
【書籍評測活動(dòng)NO.19】 SoC底層軟件低功耗系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
《SoC底層軟件低功耗系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》基于Linux專門講解軟件低功耗框架和設(shè)計(jì)的書籍
《SoC底層軟件低功耗系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》閱讀筆記
SoC的低功耗設(shè)計(jì)
如何選擇低功耗藍(lán)牙SoC
DSP不同層次的低功耗設(shè)計(jì)研究思路綜述
STM32芯片超低功耗設(shè)計(jì)思路
BlueNRG-LP支持128個(gè)并發(fā)連接的藍(lán)牙低功耗SoC
超低功耗MCU的選型技巧與設(shè)計(jì)思路
功耗優(yōu)化的片上系統(tǒng)(SoC)解決方案,引領(lǐng)低功耗藍(lán)牙與2.4GHz應(yīng)用新潮流

SoC低功耗問題定位及優(yōu)化的10個(gè)思路
評論