關於Linux的快速啟動(fastboot)和低功耗(low power)的學習記錄

來源:互聯網
上載者:User

  我今天想查一下Intel工程師放在CSDN的一個視頻,名字倒是查出來叫:Moblin系統的快速啟動核心技術剖析,但是怎麼找也找不找了。這是一個好的技術介紹。難道給刪除了。不知道CSDN是否上次查圖片的時候,禁止了所有的視頻。沒辦法了,翻箱倒櫃,找到了以前做的一些筆記,先記錄下來。不過不保證完全忠於原著。可能有刪減。聊勝於無嘛。如果能再次公開那些技術視頻就好了,我本來是想找codec和容器的資料,記得也是Intel工程師給的,後來發現什麼都不見了。

  Intel在Meego(原Moblin)的革新,一是快速啟動,二是低功耗,進入了Linux的mainline,使得阿土(ubutu)和fadora能號稱在十秒的層級上開機啟動。這在手持功能中是非常重要的。下面記錄可能不完全反映原來視頻的內容,加入了我的一些理解,對不感興趣的部分跳過,如果有任何技術問題,應當不歸於INTEL的工程師。

快速啟動

  系統的開機,從我們按power開始到能夠正常使用,包含三部分的內容:一、BIOS/BSP的啟動時間;二、系統平台(作業系統)的啟動時間;三、案頭UI和應用的啟動時間。

  第一部分和硬體有關,和系統平台無關,不討論。

  第二部分是實現快速啟動的核心關鍵區段。有下面的四個關鍵技術:

關鍵技術1:核心模組(包括裝置驅動)的快速載入

  • 儘可能將核心模組編譯到Kernel image內部:減少需要另行獨立載入的模組的方式,節省時間
  • 非同步核心模組初始化:提高核心模組處理的並行化,可同時檢測多個硬體裝置來減少啟動時間。

關鍵技術2:加速檔案讀取效率(Sreadahead:super read ahead)

  • 採用Sreadahead,提高對SSD的檔案讀取速度:對開機檔案放入kernel page cache中。

關鍵技術3:最佳化顯示驅動,實現X server的快速啟動(fast X)

  • 減少顯卡驅動載入所消耗的時間,減少顯卡驅動所佔記憶體
  • 加速X Server啟動時間:對XKB(leyboard layouts)結果進行緩衝,以便以後直接使用,X可直接使用kernel啟動時檢測到的使用模式。

關鍵技術4:最佳化init指令碼

  • 精簡不必要的背景程式和服務(nfs server, mail server)
  • 並行啟動必要的背景程式服務(例如dbus,hal,connman)

  第三部分是我們啟動上層應用和服務,在智能手機中要好好斟酌啟動的順序。

低功耗技術


關鍵技術1:減少裝置群組件/外設的功耗

  • 原則1:對不使用的組件/外設關閉,如果無法關閉,進入睡眠以降低功耗


  • 原則2:對於休眠的組件/外設,非必要時不喚醒


  • 原則3:在一個喚醒周期中,儘可能完成更多的工作,使得組件/外設可以更長的休眠時間


  • 基礎:組件休眠控制技術


  • 方式:


    • 各功能塊獨立供電,優選底功耗器件,可進行開關控制,使用者可設定節能模式


    • 電源最佳化管理功能設計、實現底層硬體、系統軟體和應用軟體多層協同


    • 狀態切換機制:Idle態(調低CPU時鐘頻率,關閉部分組件,動態電壓調節)


  • 例子:


    • 例子1:屏低功耗:背光自適應調節優先管理以及屏保


    • 例子2:智能的網路連接管理:對於wifi/wapi,避免長時間不斷搜尋,對與資料包的轉寄,先存起來,在周期廣播信標幀是才發送,避免填寫模組一直處於工作狀態,提供休眠期


    • 例子3:USB,對於slave模式,從master中充電,對於master模式,不工作時進入休眠。

 

關鍵技術2:系統平台低功耗方案

  • 原則1:CPU在工作喚醒周期,儘可能多處理,以儘可能延長睡眠時期;


  • 原則2:多個事件同時喚醒,降低喚醒頻率


  • 基礎:CPU的低功耗工作模式


  • 方式1:kernel低功耗最佳化


    • 例子1:Linux Kernel對電源管理的最佳化:根據過往的記錄判斷當前進入哪個層級的C state 。


    • 例子2:對P State的智能控制:控制採用On demand cupfreq govener,即按需CPU頻率調節技術。


    • 例子3:儘可能同步喚醒:包括kernel tickless idle, 全域Timer技術,合并/同步外設中斷時鐘


  • 方式2:使用者空間程式的低功耗最佳化


    • 例子1:避免頻繁的中斷事件:最佳化系統各應用,合并/同步事件的觸發事件


    • 例子2:減少頻繁I/O處理,合并寫操作,使用較大緩衝,減少讀寫操作的頻率


    • 例子3:在應用程式開發中:處理時應儘可能完成多的任務,允許休眠更長的時間


    • 例子4:硬體編解碼比軟體編解碼效率高

 

背景知識:CPU的三個state

  • C State:A set of Idle States,即一系列休眠狀態:關閉不使用的cycle,越進階別的C state,休眠越深,但喚醒需要的時間和耗電更大


  • P state方式:Performent State, 通過降低CPU頻減少CPU點壓(降頻減壓)來減少功耗,可採用按需頻率管控進行最佳化(Ondemand cpufreq governor)。【按需分配是最理想的模式】


  • 此外還有T state,Thermal State:是用於處理CPU過熱的情況

 

相關連結:我的嵌入式Linux相關文章

我的Linux相關文章


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.