看板 LinuxDev 關於我們 聯絡資訊
※ 引述《timemaker (Coder and Coffee)》之銘言: : 各位板友好 : 我在開發embedded linux遇到了省電模式下功耗降不下來的問題 : 因為DDR RAM已開啟Self refresh power down功能 : 只有在threads存取RAM時會耗比較多的電 : 我目前的想法在省電模式下時 : 能否避免threads存取RAM? : 只留一個監控thread看是否使用者有按按鍵 : 若是的話再喚醒其餘的threads : 我所使用的是pthread : 是否有推荐的API以避免threads於省電模式下存取RAM? : 謝謝 我所知道的要降功耗有幾種方式 1. CPU dvfs. 透過不同頻率與電壓組合達到省電效果 這邊smp跟asmp會有差異 SMP下通常只有一組可以操控 會遷就於 max load cpu的需求 2. soc那看是否有其他core比較省電 由該CPU POWER OFF 較耗電的CPU EX: BIG/LITTLE 可以斷大核電 然後有需要再開大核 或者是其他異質CPU 將 smp的CPU suspend 後完全斷電 上電後resume喚起. 3. CPU 進入省電模式 , 在arm中就是執行 WFI INSTRUCTIONS 系統的 key 配置為中斷模式. spi 中斷進來會觸發喚醒原先的 wfi 4. multicore 可以呼叫 cpu_down 去讓secondary停在wfi 達到將secondary卸載 offline,要在加回來就呼叫 cpu_up 5. 其實應該先看CPU吃多少電 系統是否還有其他更耗電的裝置 是否有推荐的API以避免threads於省電模式下存取RAM? ==>除非你的東西都在CACHE內 不然你是做不到這一點的 如果計算能力夠 DDR其實可以降頻看看 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.74.10 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1520086945.A.B29.html ※ 編輯: DontGoIntel (122.116.74.10), 03/03/2018 22:22:48 ※ 編輯: DontGoIntel (122.116.74.10), 03/03/2018 22:23:22
askacis: 基本上就是降頻關周邊IO,比如說sleep mode下 lan card 03/05 16:14
askacis: 本來如果跑1000, 就切到100/10之類的省那一丁點電, 03/05 16:15
askacis: 東省西省就過了,2019 歐盟規範更嚴,省電是大議題 03/05 16:16
TianBonBon: 樓主實務經驗豐富,讚 03/07 01:31
timemaker: 謝謝你的建議 03/08 23:06