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