新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Linux的智能手機省電設計

        基于Linux的智能手機省電設計

        作者: 時間:2016-12-19 來源:網絡 收藏

        引言

        本文引用地址:http://www.104case.com/article/201612/331514.htm

        智能手機中包含了很多耗能設備, 諸如MP3、MPEG- 4、Wi-Fi、數碼相機、3D 游戲等等。在手機電池容量還沒有實現質的飛躍的前提下, 我們不得不考慮手機電源節能的問題。我主要通過了以下四個方面來闡述在基于Linux 平臺上的智能手機的解決方案。

        CPU 的選擇

        盡管現在有了各種在不過多加重功耗負擔的前提下提高性能的技術, 但用一個芯片來處理這么多各種各樣的任務, 恐怕已經不是一個很好的選擇了。一是因為這些功能對芯片處理功能的要求可能各不相同, 二是因為一個負擔著如此眾多任務的芯片勢必需要很高的速度, 降低功耗變得很困難。

        在這種情況下, 多CPU 系統(MPCore)成為一個必然的趨勢。多CPU 系統的一個明顯的優勢是: 針對不同的任務處理需要, 不同的CPU 可以各盡其職, 將自身的優勢充分發揮, 由此帶給手機最優化的性能表現。另一個優勢顯然還是體現在對功耗的控制上: 假如用單CPU 來完成所有的功能, 不可避免地需要一個很高的CPU 速度, 從而造成很高的功耗。用一顆高速CPU 來完成這樣的任務, 無疑是大牛拉小車, 同時浪費很多能源。多CPU 系統可以根據不同的任務需要合理地啟動、停止相應的CPU 來完成任務,不需要的時候處于停歇狀態, 實現最大限度地控制功耗。

        既然我們選擇了多CPU 的架構, 那么接下來CPU 的性能就是我們要考慮的第二大問題。一般的情況下, 我們是在CPU 的性能( Performance) 和功耗(Power Consumption) 方面進行比較和選擇。通常可以采用每執行1M次指令所消耗的能量來進行衡量, 即Watt/MIPS。

        我們把CPU 的功率消耗分為兩大部分: 內核消耗功率PCORE和外部接口控制器消耗功率PI/O, 總的功率等于兩者之和, 即PPCORE+PI/O。對于PCORE, 關鍵在于其供電電壓和時鐘頻率的高低; 對于PI/O 來講, 除了留意各個專門I/O 控制器的功耗外, 還必須關注地址和數據總線寬度。

        在數字集成電路設計中, CMOS 電路的靜態功耗很低, 與其動態功耗相比基本可以忽略不計。CMOS 電路動態功耗的計算公式如下:

        Pd=CT*V2*f, 其中Pd 是CMOS 芯片的動態功耗, C是CMOS芯片的負載電容, V 是CMOS 芯片的工作電壓, f 是CMOS 芯片的工作頻率。

        由上可見, 當CPU 確定后, 我可以通過降低頻率和電壓來減少系統的功耗。

        在CPU 的選擇方面, 我們推薦采用Intel 的Xscale 芯片, 以及IBM的PowerPC405G 芯片。

        動態電源管理(DPM)

        系統不可能始終處于滿負荷狀態, 因為系統的工作量隨時都在改變。動態電源管理(DPM) 通過選擇性的將空閑的系統組件置于低能耗狀態實現了系統整體能耗的最優化。

        我們更為關注的是DPM在Linux 框架結構下的實現。圖1 展示了電源管理和嵌入式Linux 堆棧之間的關系。

        電源管理和嵌入式Linux 堆棧之間的關系


        以下是一些于電源管理相關的接口以及API:

        內核接口。在針對Linux 的DPM 架構中, 內核中的DPM 子系統負責維持系統的電源狀態, 并把DPM 系統的各個電源得到管理的元件聯系在一起。DPM 子系統通過多個API 直接與設備驅動程序通信, 這些API 把驅動程序從完全運行狀態轉為各種電源得到管理的狀態。策略管理器( 或應用軟件自身) 通過多個API向DPM 子系統提供指導, 這些API 定義各種策略, 并在定義好的運行點之間轉移整個系統。

        驅動程序接口。啟用了DPM 的設備驅動程序比默認驅動程序具有更多“狀態”: 由外部事件通過各種狀態來驅動它們, 或通過來自內核DPM 子系統的回調來驅動它們, 從而反映并遵循運行策略。驅動程序API 還允許驅動程序登記它們連接和管理的各個設備的基本運行特征, 從而實現更精細的策略決策。

        用戶程序API, 用戶程序( 應用軟件) 分為三類:

        (1)可感知電源管理的應用軟件;

        (2)可感知電源管理的“包裝器”中的傳統應用軟件;

        (3)不帶電源管理的傳統應用軟件。

        可感知電源管理的應用軟件能夠充分利用來自策略管理器的API, 從而建立各自的基礎約束, 并強制電源管理策略發生變化, 以便匹配各自的執行要求。不直接帶有電源管理功能的傳統應用軟件可以“包裝”到代碼或補丁中, 從而實現相當的效果, 它們還可以按照默認行為來運行, 這取決于更寬范圍的默認策略管理。

        嵌入式Linux DPM 下的實際機制包括各種API, 比如dpm_set_os ()( 內核) 、assert_constraint ()、remove_constraint () 和set_operating_state () ( 內核和驅動程序) 、set_policy () 和set_task_state()( 經由系統調用的用戶級接口) , 以及/proc 接口。

        電源管理策略在系統電源管理中扮演了極為關鍵的角色。DPM的策略抽象模型的執行體系類似于狀態機。在DPM中有2個概念很重要: 一個是執行點(operating points), 另一個是執行狀態( operating states) 。DPM的執行點來自一些獨立的系統參數, 包括執行電壓, 頻率, 以及總線帶寬等等。隨著事件的改變, 系統的狀態也不斷的改變( 如圖2 所示) 。在DPM中, 每個系統狀態都是一個執行狀態, 包括空閑態、活動態和睡眠態。

        系統的狀態不斷的改變

        自適應電壓調整(AVS)

        在CPU 的選擇部分, 我們知道了系統能耗是與電壓和頻率緊密相關的。現在我們來探討一下調整電壓在降低能耗方面的作用。在電壓調整方面, 自適應電壓調整是一種很有效的方法。自適應電壓調整AVS(Adaptive Voltage Scaling)是通過反饋機制將電源電壓調整到給定工作負載(處理量)所需的最小值。這種閉環方式可進一步減小功耗, 但需要將部分電源管理電路置入主處理器。


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 浦东新区| 财经| 汝州市| 曲阜市| 腾冲县| 黔西县| 南溪县| 上饶市| 延安市| 宿迁市| 内黄县| 文昌市| 贵州省| 葵青区| 大同县| 开封市| 宜君县| 西林县| 美姑县| 丹江口市| 兴山县| 阳江市| 荥阳市| 灵宝市| 巴林左旗| 连云港市| 玉门市| 平顶山市| 渝中区| 姜堰市| 沙田区| 醴陵市| 邮箱| 洛南县| 涿鹿县| 罗定市| 江安县| 玛纳斯县| 文成县| 汉中市| 房山区|