亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式系統(tǒng)低功耗的軟件實現(xiàn)方案

        2011-06-22 08:18:42宋彥郭兵沈艷
        關(guān)鍵詞:低功耗功耗中斷

        宋彥,郭兵,沈艷

        (1.四川大學計算機學院,成都610064;2.電子科技大學)

        宋彥(碩士生),主要研究領(lǐng)域為嵌入式實時系統(tǒng);郭兵(教授),主要研究領(lǐng)域為嵌入式實時系統(tǒng)、SoC和中間件;沈艷(副教授),主要研究領(lǐng)域為分布式測量系統(tǒng)、嵌入式系統(tǒng)開發(fā)、無線傳感器網(wǎng)絡(luò)和機器人。

        引 言

        在全球倡導“低碳經(jīng)濟”的背景下,嵌入式系統(tǒng)的功耗也成為備受關(guān)注的熱點問題,尤其是移動終端及手持設(shè)備等,對功耗的要求也更加嚴格。嵌入式系統(tǒng)功耗包括硬件所產(chǎn)生的功耗和軟件所產(chǎn)生的功耗,其中軟件所產(chǎn)生的功耗常常被忽略。嵌入式系統(tǒng)是典型的軟件驅(qū)動執(zhí)行系統(tǒng)。硬件的電路活動直接導致系統(tǒng)功耗的產(chǎn)生;軟件的指令執(zhí)行和數(shù)據(jù)存取等操作驅(qū)動了底層電路活動,間接導致系統(tǒng)功耗的產(chǎn)生。因此,如何降低嵌入式系統(tǒng)軟件所產(chǎn)生的功耗成為研究熱點。

        1 嵌入式軟件功耗計算模型

        嵌入式硬件電路的低功耗設(shè)計是“系統(tǒng)省電的基礎(chǔ)”,而嵌入式軟件的低功耗設(shè)計是“系統(tǒng)省電的源頭”。1994年Tiwari等人首先提出對軟件功耗進行研究,并且建立了基本的指令級功耗模型,以486DX為例探討了低功耗編譯技術(shù)。按照嵌入式系統(tǒng)硬件低功耗設(shè)計的方法和思路,嵌入式軟件低功耗設(shè)計是研究在一定性能約束下嵌入式軟件的功耗優(yōu)化問題,可以歸屬于靜態(tài)功耗優(yōu)化技術(shù)。嵌入式軟件功耗的一般計算模型可表示為:

        Es表示軟件功耗,Ps表示軟件的平均功率(可通過一組基準程序測試獲得平均值),Ts表示軟件的運行時間,Cs表示軟件/硬件某種功耗相關(guān)特征的度量,功耗—特征關(guān)聯(lián)模型Ps=f(Cs)表示Ps是Cs的函數(shù)。如何確定功耗函數(shù)f是目前軟件功耗優(yōu)化研究的一個重要內(nèi)容。嵌入式軟件功耗函數(shù)確定以后,軟件功耗的影響因素、影響程度及因素間的相互關(guān)系就很明確。各項研究表明,采用不同的源程序結(jié)構(gòu)會對硬件工作方式造成影響,進而會影響軟件功耗。因此,從軟件功耗計算模型出發(fā),尋找硬件的功耗相關(guān)特征,并針對源程序本身進行優(yōu)化,通過軟件控制硬件的活動,就可以從源頭上降低整個系統(tǒng)的功耗。

        2 嵌入式軟件功耗優(yōu)化技術(shù)

        隨著嵌入式系統(tǒng)功能和性能不斷增強,嵌入式軟件規(guī)模的不斷增長,對嵌入式系統(tǒng)功耗的影響也更加明顯。嵌入式系統(tǒng)被廣泛應(yīng)用于手持式或便攜式移動產(chǎn)品中,由于這些設(shè)備往往依靠電池進行供電,所以要在軟/硬件層次上降低系統(tǒng)能量的消耗,盡可能地延長電池的使用壽命,滿足用戶的應(yīng)用需求。接下來就從軟件層分析軟件功耗優(yōu)化技術(shù)。

        2.1 源程序結(jié)構(gòu)級功耗優(yōu)化

        實現(xiàn)同一邏輯功能,采用不同的指令組合方式或者是不同的指令排列順序都會造成不同的軟件能耗。源程序結(jié)構(gòu)級功耗優(yōu)化,是保持源程序功能不變的前提下,對源程序的語法結(jié)構(gòu)進行重新構(gòu)造,尋求軟件的最低功耗結(jié)構(gòu)。因此,針對不同的體系結(jié)構(gòu)的微處理器,選擇合適的源程序優(yōu)化方法。下面就給出兩種比較典型的源程序結(jié)構(gòu)級的優(yōu)化方法。

        ①程序結(jié)構(gòu)重排。不同的程序結(jié)構(gòu)可造成不同的軟件功耗,如在固定次數(shù)的循環(huán)中,當采用增計數(shù)循環(huán)時,經(jīng)過編譯后的ARM處理器二進制程序判斷是否進行下一次循環(huán)的步驟是:首先經(jīng)過一次加法(ADD)操作,然后經(jīng)過比較(CMP)操作,最后根據(jù)比較結(jié)果判別是否進入循環(huán)(BCC)操作。一次循環(huán)該過程需要 3條二進制指令。當采用減計數(shù)循環(huán)時,判斷是否進入循環(huán)的步驟是:首先經(jīng)過一次減法(SUBS)操作,然后根據(jù)減法設(shè)置的寄存器位(以ARM處理器為例,該位是 R15中的條件碼標志位Z)判斷是否進入循環(huán)(BNE)操作。一次循環(huán)該過程需要兩條2進制指令。因此,通過循環(huán)結(jié)構(gòu)中減計數(shù)循環(huán)代替增計數(shù)循環(huán)的方法,循環(huán)的多次執(zhí)行能夠減少軟件運行時執(zhí)行的二進制總指令數(shù)量,從而有效降低嵌入式軟件能耗。

        ②優(yōu)化數(shù)據(jù)類型。以32位體系結(jié)構(gòu)來說,不同類型的數(shù)據(jù)表示在內(nèi)存中的呈現(xiàn)形式將導致不同的后續(xù)處理步驟,從而造成軟件功耗的差異。對于非32位數(shù)據(jù),CPU會消耗更多的時鐘周期來處理邊界不對齊、變量存儲范圍檢查等情況。因此,對于存放在寄存器中的局部變量,除了8位或者16位運算外,盡量不要使用char和 short類型數(shù)據(jù),而應(yīng)該使用由符號或者無符號32位int類型數(shù)據(jù)。對于除法運算,一般使用無符號32位int類型數(shù)據(jù),速度更快,能耗更低。

        2.2 采用中斷驅(qū)動技術(shù)的功耗優(yōu)化

        在嵌入式系統(tǒng)中,串口通信是比較常見的一種通信方式。通常,串口數(shù)據(jù)傳輸有查詢方式和中斷方式兩種,UART收發(fā)數(shù)據(jù)是通過從存儲器或I/O端口位置進行讀寫來實現(xiàn)的。大多數(shù)的情況串口是空閑的,而且無法得知下一個串口數(shù)據(jù)何時到達。為了節(jié)約能量,可以讓CPU處于休眠狀態(tài)。在該狀態(tài)下的系統(tǒng)時鐘仍然工作,并且UART處于可接受狀態(tài),但這不是最優(yōu)的設(shè)計方案。最佳方案是讓CPU處理掉電模式,此時系統(tǒng)時鐘停止工作,芯片功耗降到了最低。下面以串口收發(fā)數(shù)據(jù)為例說明中斷的實現(xiàn)過程。

        ①接收數(shù)據(jù)。當采用中斷模式時,從接收移位寄存器接收到一個完整的字節(jié),并將數(shù)據(jù)送入數(shù)據(jù)輸入寄存器時產(chǎn)生一個中斷,中斷處理程序從端口讀入字節(jié),清除中斷源。當串口任務(wù)從ISR或接口函數(shù)以獨占的方式訪問緩沖區(qū)時,中斷就會停止。如果應(yīng)用程序不及時取出緩沖區(qū)中的字節(jié),緩沖區(qū)滿后就會導致接收數(shù)據(jù)丟失。

        ②發(fā)送數(shù)據(jù)。字節(jié)存儲與輸出緩沖區(qū),當UART的發(fā)送端準備發(fā)送字節(jié)時,將會產(chǎn)生一個中斷,串口任務(wù)將字節(jié)從緩沖區(qū)中取出,通過中斷服務(wù)子程序產(chǎn)生一個信號量,喚醒串口發(fā)送任務(wù)。

        需要指出的是,對于實時性要求嚴格的系統(tǒng),采用中斷的方式會增加系統(tǒng)的響應(yīng)時間,這樣就會造成系統(tǒng)實時性的降低。因此,中斷適用于實時性要求不高而對功耗要求嚴格的系統(tǒng)。

        2.3 通過軟件控制器件的工作模式

        微處理器以及各種接口控制器都有不同的功耗模式,在系統(tǒng)設(shè)計的過程中如果能充分利用這些功耗模式,就可以顯著地降低系統(tǒng)的功耗。正常模式下處理器將打開所有的功能模塊全速運行,因此處理器可以選擇關(guān)閉部分或全部的功能模塊,使系統(tǒng)進入低功耗模式。

        S3C2410A是一個典型、應(yīng)用廣泛的32位ARM 微處理器。S3C2410A的時鐘控制邏輯能夠產(chǎn)生系統(tǒng)需要的時鐘,S3C2410A有兩個 PLL(Phase Locked Loop),一個用于FCLK、HCLK、PCLK,另一個用于 USB模塊(48 MHz)。時鐘控制邏輯能夠由軟件控制,不將PLL連接到各接口模塊,以降低處理器時鐘頻率,從而降低功耗。S3C2410A針對不同任務(wù)提供最佳功率管理策略,功率管理模塊是系統(tǒng)工作在如下4種模式。

        正常模式:功率管理模塊向CPU和所有外設(shè)提供時鐘,此時所有外設(shè)都是開啟的,系統(tǒng)功耗達到最大。用戶可以通過軟件控制不需要的開關(guān)以降低功耗。

        低速模式:直接使用外部時鐘作為FCLK,該模式下的功耗僅由外部時鐘決定。

        空閑模式:時鐘FCLK不連接到CPU內(nèi)核,而是連接到所有的其他外圍接口??臻e模式降低了CPU內(nèi)核部分的功耗。任何對CPU的中斷請求都可以將從空閑模式喚醒。

        掉電模式:功率管理模塊斷開內(nèi)部電源,CPU和除喚醒單元意外的外設(shè)都不會產(chǎn)生功耗。掉電模式需要兩個獨立電源,一個是給喚醒邏輯單元供電,另一個給包括CPU在內(nèi)的其他模式供電。在掉電模式下,第二個電源將被關(guān)掉。掉電模式可以由外部中斷EINT[15:0]或RTC喚醒。

        在S3C2410A處理器中,為了減少功耗,一般采用軟件控制系統(tǒng)時鐘,上述4種模式之間不允許隨意轉(zhuǎn)換,后面的優(yōu)化部分利用S3C2410A的電源管理模式,使系統(tǒng)工作在低功耗模式。可用的轉(zhuǎn)換模式如圖1所示。

        圖1 S3C2410A電源管理轉(zhuǎn)換模式

        通常情況下,嵌入式系統(tǒng)各個模塊不是同時進行工作的,充分利用各個器件低功耗模式,可以降低整個系統(tǒng)的平均功耗。以手機為例,大多數(shù)情況下手機是處于待機狀態(tài),工作模式分為通話、收發(fā)短信、音/視頻播放和游戲等。手機在待機狀態(tài)下系統(tǒng)大部分都可以進入停機模式,即使在使用狀態(tài)時也可以根據(jù)功能要求讓閑置控制器保持在低功耗模式。

        3 GSM終端系統(tǒng)軟件設(shè)計

        該終端系統(tǒng)的硬件平臺采用Samsung公司的S3C2410A微處理器和SIMCOM公司的GSM模塊SⅠM100-E,嵌入式操作系統(tǒng)選擇μ C/OS-II實時操作系統(tǒng)。本文主要是對GSM應(yīng)用相關(guān)的功能設(shè)計與實現(xiàn),搭建該軟件平臺是用來進行嵌入式軟件功耗優(yōu)化,驗證功耗的降低程度。該系統(tǒng)設(shè)計目標主要完成短消息收發(fā)和語音通話功能。系統(tǒng)軟件體系結(jié)構(gòu)如圖2所示。

        圖2 GSM終端軟件體系結(jié)構(gòu)

        3.1 任務(wù)劃分及資源分配

        μ C/OS-II提供了多任務(wù)的機制,在軟件設(shè)計時,開發(fā)者只需要對每個任務(wù)的功能實現(xiàn)進行程序設(shè)計,而不必專注程序細節(jié)的具體運行。該終端系統(tǒng)的任務(wù)劃分及資源分配如表1所列。

        表1 任務(wù)劃分及資源分配表

        該終端系統(tǒng)按照應(yīng)用功能,劃分為8個任務(wù):起始任務(wù)、短消息接收任務(wù)、短消息發(fā)送任務(wù)、呼出任務(wù)、呼入任務(wù)、鍵盤掃描任務(wù)、串口任務(wù)和顯示任務(wù)。起始任務(wù)用來建立一系列的信號量;短消息接收任務(wù)用來完成短消息的查看、刪除、回復(fù)處理;短消息發(fā)送任務(wù)用來完成短消息的編輯、發(fā)送處理;呼出任務(wù)用來完成輸入、呼出處理;呼入任務(wù)主要負責接聽、拒接處理、呼叫轉(zhuǎn)移處理(本系統(tǒng)未實現(xiàn)該功能);鍵盤任務(wù)用來掃描鍵值,判斷用戶的輸入;顯示任務(wù)負責界面的初始化,以及顯示正在運行的是哪一個任務(wù)。μ C/OS-II對任務(wù)的調(diào)度是按照優(yōu)先級的大小進行的,因此,完成系統(tǒng)任務(wù)的劃分之后,需要對任務(wù)的優(yōu)先級進行劃分。

        3.2 主函數(shù)設(shè)計

        主函數(shù)中,首先是目標系統(tǒng)硬件初始化階段,包括最小硬件初始化ARM Target_Init()、無線模塊GSM_Init()及 LCD_Init();然后調(diào)用OSInit()對 μ C/OS-II初始化,接下來在主函數(shù)中建立系統(tǒng)優(yōu)先級最高的任務(wù)StartTask(),最后調(diào)用OSStart()啟動多任務(wù)操作系統(tǒng),交給內(nèi)核進行任務(wù)管理。主程序代碼如下:

        需要說明的是,主函數(shù)盡管定義為一個返回整數(shù)值的函數(shù),但是語句“return 0;”是不可能執(zhí)行的,使用μ C/OS-II必須在啟動函數(shù)OSStart()之后再初始化系統(tǒng)時鐘,目的是防止在任務(wù)啟動之前就進行時鐘中斷。

        3.3 EⅠNT4中斷服務(wù)程序

        一個嵌入式系統(tǒng),中斷是必須使用的,尤其是對時間要求及其嚴格的產(chǎn)品中,幾乎所有的工作都要依靠中斷完成。在μ C/OS-II實時操作系統(tǒng)中,如果過于頻繁地利用中斷就會削弱μ C/OS-II的性能,但是中斷是必須使用的。中斷服務(wù)函數(shù)在每次中斷產(chǎn)生的時候就會被調(diào)用,因此中斷服務(wù)函數(shù)的執(zhí)行時間應(yīng)該盡可能地短,只需要發(fā)送相應(yīng)的信號量給等待資源的任務(wù),復(fù)雜的處理任務(wù)交給任務(wù)去執(zhí)行。在ADS編譯器中,IRQ服務(wù)程序必須用__irq關(guān)鍵字聲明,這樣編譯器才能夠自動生成處理器模式切換代碼和保護現(xiàn)場、恢復(fù)代碼。

        本文使用的ZLG7290芯片的從地址slave address為70H(01110000B),有效的按鍵動作、普通鍵的單擊連擊和功能鍵狀態(tài)變化都會令系統(tǒng)寄存器SystemReg的KeyAvi位置1。/INT引腳信號正常為高電平,當按鍵被按下時變?yōu)榈碗娖接行?。EINT4中斷服務(wù)程序需要完成鍵盤信號量的發(fā)送,以喚醒鍵盤任務(wù),然后調(diào)用OSIntExit()退出中斷服務(wù)程序。

        由于篇幅的限制,對于該GSM終端系統(tǒng)的任務(wù)設(shè)計部分不在此敘述。GSM終端實現(xiàn)了基本的短消息發(fā)送和語音通話功能,為下一節(jié)的軟件功耗優(yōu)化提供了較好的實例平臺。

        4 軟件功耗優(yōu)化在GSM終端上的實現(xiàn)

        在前面兩節(jié)內(nèi)容的基礎(chǔ)之上,將軟件功耗優(yōu)化技術(shù)應(yīng)用于GSM終端,以驗證軟件優(yōu)化對整個系統(tǒng)帶來的實際節(jié)能效果。針對GSM終端系統(tǒng),主要采用下面兩種優(yōu)化方法。

        4.1 設(shè)置CPU的工作模式

        本文的主要目的是降低系統(tǒng)空閑狀態(tài)下的能量消耗,使系統(tǒng)盡可能工作在低功耗狀態(tài),因此,這里主要是通過設(shè)置CPU工作模式,選擇CPU的掉電模式為該系統(tǒng)的低功耗模式,當系統(tǒng)空閑時,即無應(yīng)用任務(wù)執(zhí)行,使系統(tǒng)進入低功耗模式,以降低系統(tǒng)的功耗。

        μ C/OS-II為用戶提供了空閑任務(wù)接口函數(shù)OSTask-Idle-Hook(),當系統(tǒng)在沒有應(yīng)用任務(wù)執(zhí)行時,就運行空閑任務(wù)OSTaskIdle(),運行時給空閑計數(shù)器OSIdleCtr加1,該任務(wù)是由系統(tǒng)建立并且優(yōu)先級最低,此時可以調(diào)用OSTaskIdleHook(),OSTaskIdleHook()調(diào)用CPU的特定指令(假設(shè)CPU的低功耗指令是STOP),這樣就可以使CPU進入低功耗模式(按照2.3小節(jié)電源轉(zhuǎn)換關(guān)系),等待中斷的發(fā)生。當中斷發(fā)生時,CPU就會退出低功耗模式,執(zhí)行中斷服務(wù)子程序,中斷服務(wù)子程序就會向更高級的任務(wù)發(fā)送信號量,使得高優(yōu)先級的任務(wù)開始執(zhí)行。當所有任務(wù)再次等待事件發(fā)生時,μ C/OS-II在中斷服務(wù)子程序完成之后,又會切換至空閑任務(wù),這樣OSTaskIdleHook()就會再次被OSTaskIdle()調(diào)用,使CPU進入低功耗模式。

        4.2 UART中斷方式代替查詢方式

        當串口采用中斷方式進行數(shù)據(jù)的接收和發(fā)送時,進入中斷后,先屏蔽發(fā)送和接收中斷,以UART0為例,通過下面一條語句:

        當正常發(fā)送和接收結(jié)束后,清中斷掛起和中斷源掛起寄存器:

        需要編寫串口發(fā)送和接收中斷服務(wù)程序,本文編寫的中斷服務(wù)函數(shù)原型為:

        針對串口部分進行優(yōu)化,主要原因是GSM終端系統(tǒng)工作是通過控制串口發(fā)送AT命令,要對串口頻繁進行操作,優(yōu)化后就可以減少CPU大量的查詢時間,這樣就減少了CPU的功耗。

        結(jié) 語

        本文采用HIOKI3334功率分析儀測試處理器的功耗,功率分析儀的正負極分別接入CPU供給電源的兩端,然后進行測試。首先測試GSM終端系統(tǒng)在空閑狀態(tài)下的初始功耗值,然后測試優(yōu)化后的系統(tǒng)在同樣工作狀態(tài)下的功耗值。兩種情況下功耗測量硬件條件相同,不同的是軟件的執(zhí)行方式,使得實驗結(jié)果在軟件層面上具有可比性。優(yōu)化前,系統(tǒng)空閑狀態(tài)下CPU的功耗為0.116 W;優(yōu)化后,系統(tǒng)空閑時就會進入低功耗模式,此時CPU的功耗為0.057 W。實驗結(jié)果表明,低功耗模式比空閑模式功耗下降大約50.86%。因此,對于依靠電池進行供電的移動設(shè)備來說,要充分利用器件的工作模式,通過軟件優(yōu)化降低系統(tǒng)空閑期間的功耗,延長電池使用時間。

        [1]V Tiwari,S Malik,A Wolfe.Power analysis of embedded software:a first step towards software power minimization[J].IEEE Transactions on VLSI Systems,1994,2(4):437-445.

        [2]Samsung Electronics.S3C2410X 32-Bit RISC Microprocessor User's Manual,2003.

        [3]C Hwang,H Wu.A predictive system shutdown method for energy saving of event-driven computation[C].International Conference on Computer-Aided Design,1997.

        [4]羅剛,郭兵,沈艷,等.源程序級和算法級嵌入式軟件功耗特性的分析與優(yōu)化方法研究[J].計算機學報,2009,32(9):1869-1875.

        [5]郭兵,沈艷,邵子立,綠色計算的重定義與若干探討[J].計算機學報,2009,32(12):2311-2319.

        [6]周寬久,遲宗正.嵌入式軟硬件低功耗優(yōu)化研究綜述[J].計算機應(yīng)用研究,2010,27(2):423-425.

        [7]Jean J Labrosse.嵌入式實時操作系統(tǒng) μ C/OS-II[M].邵貝貝,等譯.北京:北京航空航天大學出版社,2003.

        猜你喜歡
        低功耗功耗中斷
        一種高速低功耗比較器設(shè)計
        跟蹤導練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        揭開GPU功耗的面紗
        個人電腦(2016年12期)2017-02-13 15:24:40
        數(shù)字電路功耗的分析及優(yōu)化
        電子制作(2016年19期)2016-08-24 07:49:54
        “功耗”說了算 MCU Cortex-M系列占優(yōu)
        電子世界(2015年22期)2015-12-29 02:49:44
        IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
        ADI推出三款超低功耗多通道ADC
        IDT針對下一代無線通信推出低功耗IQ調(diào)制器
        低功耗加權(quán)cache替換策略
        国产亚洲av看码精品永久| 亚洲av无码片在线播放| 亚洲va中文字幕| 狠狠躁夜夜躁人人爽天天天天97| 天堂最新在线官网av| 女同中文字幕在线观看| 亚洲精品一区二区三区52p| 妺妺窝人体色www看人体| 妺妺窝人体色www看美女| 亚洲av无码之日韩精品| 国产日产精品久久久久久| 熟妇与小伙子露脸对白| 丝袜美腿亚洲综合第一页| 国产欧美日韩中文久久| 久久er99热精品一区二区| 欧美国产日本精品一区二区三区| 久久久久久久尹人综合网亚洲 | 中文字幕亚洲永久精品| 蜜乳一区二区三区亚洲国产| 久久久久av综合网成人| 三叶草欧洲码在线| 一区二区无码中出| 国产精品亚洲一区二区三区正片| 国产在线a免费观看不卡| 国产精品妇女一区二区三区| 少妇厨房愉情理伦bd在线观看| 99精品国产99久久久久久97| 2021国产精品一区二区在线| 国产视频一区二区三区在线看| 久久久国产精品123| 国产成人无码av一区二区| 亚洲视频99| 国产三级黄色在线观看| 视频一区二区免费在线观看| 一区二区三区中文字幕p站| 乱色精品无码一区二区国产盗| 国产精品污www一区二区三区| 国产粉嫩嫩00在线正在播放| 日本a爱视频二区三区| 国产女人精品视频国产灰线| 乱色熟女综合一区二区三区|