作者:Ann Steffora Mutschler
在編寫軟件時,設計工程師如何確定它將在特定目標平臺上消耗多少功率?雖然這個問題看起來很簡單,但答案并非如此。
Synopsys低功耗解決方案集團技術營銷總監Cary Chin表示,該行業才剛剛開始發展在該領域
獲取一些數據的能力?!爱斘覀兡軌蜃龅竭@一點時,我認為你會發現移動應用程序的編寫方式實際上與你在筆記本電腦上運行的應用程序不同,因為它們將更好地優化功能,并且可能會在緩存數據方面做不同的事情。
不過,要達到這一點并不容易。ARM的操作系統架構師Jason Parker表示,高能效軟件需要從一開始就成為設計的一部分。“設計師需要不斷問自己,‘這是解決這個問題最省電的方法嗎?’試圖將電源管理和效率改造到現有設計中是一項艱巨的工作,而且所有的銀彈在很久以前就用完了。多處理器設計為電源管理開辟了額外的技術和限制。
了解表面之下發生的事情是一個開始。線程和進程是表示 CPU 執行和可見內存空間的軟件抽象。線程表示 CPU 的執行狀態,例如程序計數器、寄存器和標志。他解釋說,進程是受限的進程內存空間,供一個或多個線程在其中執行,而MMU則用于提供此內存。一個進程中通??梢杂卸鄠€線程,并且它們都共享相同的數據。
在單核處理器中,CPU 由操作系統內核調度程序在線程之間共享,執行由線程調度管理,線程優先級和時間切片和切換線程稱為上下文切換。相比之下,多處理器 (MP) 將多個高效 CPU 組合在一起,可以以比單個高性能 CPU 更低的總功耗提供更高的聚合性能,并提供更多的電源管理選項,Parker 指出。
MP系統分為對稱系統和非對稱系統?!胺菍ΨQ系統可以在不同的內核上運行不同的操作系統,協同工作以提供整個系統解決方案。例如,智能手機具有用于 Android 用戶界面的 ARM CortexA8 應用處理器,以及在 RF 調制解調器中運行實時電話堆棧的不同 Cortex R4 處理器,以及用于圖形、視頻和低功耗音頻的附加內核。這些系統的優點是可以定制每個子系統的處理器和資源,以最小的功耗提供預期的性能。缺點是系統架構通常是固定的,可能無法實現未來的要求,例如新的視頻格式。
同時,對稱系統在相同的內核上運行單個操作系統內核,并有一個連貫的內存系統將它們連接在一起,Parker解釋說?!癝MP 操作系統將同時運行多個線程,旨在通過集群內的核心分擔工作負載。結構良好的代碼和算法是可并行化的,能夠利用多核的性能?,F有的代碼和串行算法可能無法利用多個內核。SMP 操作系統中的電源管理系統將通過使用 DVFS 擴展內核的性能來控制功耗,并將關閉未使用/未充分利用的內核。
當今復雜的 SoC 包含 SMP 和 AMP 子系統的混合體,其功耗針對各自的任務進行了優化。例如,“多核Cortex A9系統為開放平臺操作系統提供了靈活性,其中未來的應用需求是未知的,而LTE調制解調器的CPU要求在設計時是已知的,”他說。
實現最佳核心利用率
但是,僅僅了解系統的結構是不夠的。為了實現軟件對內核的最佳利用率,應實施某些技術,同時牢記內核利用率是由子系統分區以及系統代碼和算法的進一步并行化驅動的。Parker說:“操作系統調度器可以通過將線程及其數據保留在相同或本地CPU上來最大限度地提高執行效率,而應用程序軟件可以通過使用線程親和性來強制執行。
最大限度地提高內核利用率將推動最大性能。然而,對于每個硅工藝來說,它可能不是最節能的解決方案,特別是那些具有電源管理功能的解決方案,當所需的總軟件負載只是總性能的一小部分時,可以優化線程調度。例如,在一個 CPU 上總負載為 80% 的雙核系統中,要問的關鍵問題是:
1. 內核是否以 100% 的性能運行一個 CPU,而關閉第二個 CPU?
2. 內核是否以 50% 的性能運行兩個 CPU,頻率、電壓和總功耗較低?
Parker說,除了子系統分區之外,還有其他方法可以優化軟件利用內核的方式,但這取決于手頭的任務,包括使用虛擬機管理程序將多個操作系統整合到單個CPU或集群上。此外,虛擬化操作系統的許多實例可以使用虛擬化分布在多個內核上,例如在 Web 服務器的情況下。在天平的另一端,令人尷尬的并行問題可以移交給 GPU,例如在圖像處理中使用 Open CL。
“中間是事情有趣的地方,”他說。“現有系統如何跨多個內核進行擴展?這是一個 30 年來一直存在的性能問題,以及最近的電源成本問題。對于現有代碼和幾個內核(少于 《》 個)來說,使用線程是一種可行的解決方案,但它們很難編程。測量和分析一如既往地是所需的工程技能。如果沒有對系統有很好的了解,就很難充分利用多核硬件。
何時使用多核
Synopsys 的 Chin 表示,如今一切都朝著多核的方向發展,“隨著處理器的頻率不斷提高,這推動了技術的發展,并使電源問題越來越嚴重。試圖通過在某些處理單元中將內核復制到雙核、四核、六核或更多內核來增加吞吐量或提高處理能力的想法一直是大多數處理器制造商所走的道路。在過去的 8 或 10 年里,人們一直在談論這個問題。
“因此,我們看到了很多處理器——英特爾酷睿 i5、酷睿 i7 等四核和六核處理器在今天非常主流,非常有趣,盡管移動電子產品的架構還沒有真正走上這條路。我想說,這更像是異構內核的想法,在這種內核中,您將特定內核用于更具體的任務。在移動應用程序中,對優化處理器功能以滿足手頭特定任務的需求更大,“他指出。
但是,某些應用程序在多核環境中的表現比其他應用程序更好。“在服務器場和移動設備方面,你將看到的性能改進之間的最大區別在于,在服務器場上,虛擬化、數據庫和谷歌搜索等應用程序在算法上是并行化的,可以很容易地進行線程化。當你在云或服務器場環境中時,你也有擁有很多很多用戶的好處,這為整個場提供了另一個層次的并行化和功能,“Chin說。
在這些環境中,并行化并擁有盡可能多的內核是有意義的,因為啟動服務器場的整個想法是提高利用率?!拔覀兊南敕ㄊ?,如果可以的話,讓您的農場以接近 100% 的利用率運行,24/7,無論是在線金融應用程序還是季節性圣誕節訂購。你希望這與世界其他地區的使用相平衡,“他繼續說道?!皩τ谝苿討贸绦?,您只能在操作系統和要運行的應用程序中執行一定數量的線程。在像智能手機這樣的東西上,這個想法不是讓它一直運行。事實上,這個想法恰恰相反。你希望它盡可能少地運行。
審核編輯:黃飛
-
處理器
+關注
關注
68文章
19348瀏覽量
230267 -
cpu
+關注
關注
68文章
10879瀏覽量
212201 -
服務器
+關注
關注
12文章
9234瀏覽量
85645 -
操作系統
+關注
關注
37文章
6850瀏覽量
123433 -
線程
+關注
關注
0文章
505瀏覽量
19705
發布評論請先 登錄
相關推薦
評論