李 坤
杭州鴻泉物聯網技術股份有限公司 浙江 杭州310030
現階段,嵌入式系統的應用較為廣泛,在科學技術領域以及日常生產生活中均有涉及,其自身嵌入式特性,通常情況下人們并不會注意到,在實際研究中,嵌入式系統屬于較為復雜的研究領域,其研究時長不短,但定義依然缺乏統一的標準。通常情況下是根據應用層面進行解讀,在系統應用中使用較為常見的定義是將特定應用作為中心,將計算機技術作為基礎,在系統中的軟件以及硬件設備需要結合實際需求,增加或者是減少,形成在功耗、安全性等方面滿足計算機應用需求的系統。
嵌入式系統中存在兩大部分,也就是嵌入式硬件與嵌入式軟件,因此研究系統的功耗問題需要從這兩部分入手。首先,嵌入式硬件是整體系統運行的基礎部分,因此使用的低功耗軟件技術需要硬件部分的幫助和支持。在嵌入式系統運行過程中,主要硬件構成有嵌入式微處理器以及外圍設備等,前者屬于系統的核心部分,在系統使用初期階段,低功耗優化技術主要實施部分是硬件,因此,這一技術在硬件層次上較為成熟,其低功耗優化技術產品在市場上較為常見[1]。
硬件層次部分使用的低功耗技術主要工藝有電路級以及微結構優化,優化級別具有層次性,主要是從低級到高級。現階段,由于技術水平不斷提高,硬件層次使用的低功耗優化技術發展相較于其他技術來說,速度較慢,但研究其優化技術發展,硬件層次依然在整體系統優化技術上發揮基礎性作用。
嵌入式系統在實際應用中,低功耗問題一直是系統中的重點問題,實現其有效設計,也是系統中的難點問題,設計人員需要在整體設計過程中分析不同的影響因素,保證綜合性,以此降低功耗。在硬件層次上需要使用低功耗優化方式,實現系統有效優化,在軟件層次上也要設計相應的嵌入式軟件。系統自身特點影響,嵌入式系統中的軟件基本是處于固化狀態,因此軟件部分也是優化技術中難以替代的部分。嵌入式系統中的軟件功耗問題是整體系統中的重要組成部分,設計人員需要依靠平臺,在開發過程中創新低功耗軟件,保證硬件層次與軟件層次的同時優化,降低系統功耗。
(一)循環優化過程。通常情況下,編譯優化過程在性能提高同時,實現功耗降低主要致力于兩方面,其一是優化縮短執行時間,對功耗降低具有重要作用;其二是優化措施對功耗降低也會產生一定弊端,在指令開發過程中,存在大多數優化,會增加單位時間損傷的功耗問題。實際功耗優化過程中,需要平衡性能與功耗之間的關系。實施高層循環優化措施以及低層循環優化,對功耗會產生相應影響,因此不能僅僅局限于單一優化功能作用,需要保持綜合性的目光看待優化。分析指令級功能優化過程中,一部分方法是從編譯過程獲得的,降低軟件整體功耗問題,使用的低功耗編譯技術是選擇低功能指令取代高功能指令,以此提高整體編譯效果。
循環開展優化可以發掘不同部分之間的指令級,實現有效并行,降低循環控制中語句的執行次數,實現語句跳轉,縮短整體執行時間,對功耗降低具有重要作用。軟件使用過程中,實現流水過程,也能夠縮短執行時間,降低功耗。經過相關實驗研究,軟件流水可對功耗產生的影響在一定程度上與高層循環變化具有聯系,產生依賴作用。高層優化方法可以選擇循環置換以及循環分塊等,降低功耗,有效優化之后能夠縮短整體執行時間。
(二)內聯優化過程。編譯過程中,并不是指單一過程循環,可以選擇循環交換或者是循環合并方式,實現循環優化,也可以移動語句或者是循環數組訪問下標對齊等方式。在不同優化過程中,使用調用連接可以依據相應的標準優化。這一過程需要保存現場,變量以及內容均需保存,實現PC跳轉,消耗一定能量。使用內聯方式消除這一部分的功耗,但并不需要所有的過程都直接使用內聯方式,需要制定相應的標準,在實際使用中,內聯方式的不合理性會造成代碼數量的增加,對系統中的程序讀取環節增加功耗。使用功耗的標準:
首先調用過程中,其頻率較高,實施內聯后單個過程也不會超過相應指令大小,具有較為明顯的降低現象,在現場保存以及恢復過程中會發生相應的損耗,有效降低相應功耗;在過程中調用次數較少會直接內聯,存在一次或者是兩次,根據具體程序調整少數定義;在調用過程中,代碼量較少情況下,使用調用或者是返回指令現場保存時間相比于調用本身,占用空間較大[2]。
嵌入式設備不斷發展進步,其中較為主要的功耗問題對系統產生較為嚴重的制約作用,需要不斷降低系統性能或者是在較少系統損耗情況下,提高功耗優化研究價值。通過軟件層次、硬件層次分析功耗的不同研究方向,結合相應影響因素,提出可行性評價,在編譯優化角度中,實現高級語言與低級語言的編譯,選擇相應低功耗指令以及循環優化,有效降低系統功耗。