鑒于處理器和應(yīng)用程序的復(fù)雜性增加,當(dāng)前一代操作系統(tǒng)(OS)主要關(guān)注軟件完整性,而部分忽略了從現(xiàn)有硬件中提取最大性能的需求。
處理器的性能與操作系統(tǒng)允許的一樣。嵌入式或其他計(jì)算平臺(tái)不僅包括物理資源(內(nèi)存、CPU 內(nèi)核、外圍設(shè)備和總線(xiàn)),通過(guò)資源分區(qū)(虛擬化)進(jìn)行管理,還包括性能資源,如 CPU 周期、時(shí)鐘速度、內(nèi)存和 I/O 帶寬,以及主/緩存內(nèi)存空間。這些資源通過(guò)優(yōu)先級(jí)或時(shí)間片等古老方法進(jìn)行管理,或者根本不管理。結(jié)果,處理器未得到充分利用并消耗過(guò)多的能量,從而剝奪了它們真正的性能潛力。
大多數(shù)現(xiàn)有的管理計(jì)劃都是零散的。CPU 周期由優(yōu)先級(jí)和時(shí)間隔離管理,這意味著需要在預(yù)設(shè)時(shí)間內(nèi)完成的應(yīng)用程序?qū)⒈槐A粼摃r(shí)間,無(wú)論它們是否實(shí)際需要它。由于緩存未命中、未命中推測(cè)和 I/O 阻塞,無(wú)法安全地預(yù)測(cè)執(zhí)行時(shí)間,因此保留時(shí)間通常比所需時(shí)間長(zhǎng)。為了確保智能手機(jī)中的調(diào)制解調(diào)器堆棧接收足夠的 CPU 周期來(lái)進(jìn)行呼叫,其他應(yīng)用程序可能會(huì)被限制為不同時(shí)運(yùn)行。這就解釋了為什么一些未命名品牌手機(jī)的用戶(hù)抱怨說(shuō),當(dāng)手機(jī)響起時(shí),GPS會(huì)掉線(xiàn)。
除此之外,電源管理最近引起了極大的興趣。請(qǐng)注意“單獨(dú)”特征。大多數(shù)部署的解決方案都擅長(zhǎng)檢測(cè)空閑時(shí)間、使用系統(tǒng)響應(yīng)緩慢的模式,或 CPU 可以以較低時(shí)鐘速度運(yùn)行從而節(jié)省能源的特定應(yīng)用程序。例如,英特爾提出了Hurry Up and Get Idle(HUGI)。要理解HUGI,請(qǐng)考慮以下類(lèi)比:有人可以使用印地汽車(chē)全速到達(dá)目的地,然后將其停放,但也許使用普銳斯及時(shí)到達(dá)那里會(huì)更實(shí)用。您認(rèn)為哪個(gè)使用更少的氣體?基于使用模式的電源管理過(guò)于粗糙,無(wú)法始終有效地挖掘所有節(jié)能機(jī)會(huì)。
理想情況下,開(kāi)發(fā)人員希望改變時(shí)鐘速度/電壓以匹配瞬時(shí)工作負(fù)載,但這不能僅通過(guò)關(guān)注正在運(yùn)行的應(yīng)用程序來(lái)完成。開(kāi)發(fā)人員也許能夠確定應(yīng)用程序按時(shí)完成的最低時(shí)鐘速度,但是他們是否可以放慢時(shí)鐘速度,不知道其他等待運(yùn)行的應(yīng)用程序如果延遲會(huì)受到怎樣的影響?單獨(dú)管理任務(wù)和時(shí)鐘速度(電源)不能導(dǎo)致最佳能耗。獲勝的方法將同時(shí)管理/優(yōu)化所有性能資源,但至少要管理時(shí)鐘速度和任務(wù)調(diào)度。想象一下,任務(wù)調(diào)度員是行程計(jì)劃員,時(shí)鐘經(jīng)理是汽車(chē)司機(jī)。如果汽車(chē)減速,則必須重新計(jì)劃行程。驅(qū)動(dòng)程序可能由于路況不佳(緩存未命中)而必須減速,或者在鐵路障礙處停車(chē)(多線(xiàn)程中的障礙,由于分配的 I/O 帶寬不足而阻塞緩沖區(qū)為空等)。表現(xiàn)出數(shù)據(jù)依賴(lài)執(zhí)行時(shí)間的應(yīng)用程序也存在一個(gè)問(wèn)題,因?yàn)樗鼈兺瓿傻臅r(shí)間在完成之前是未知的。應(yīng)該提前為這些應(yīng)用分配什么時(shí)鐘速度?
先進(jìn)的性能管理解決方案
管理性能資源的一個(gè)例子是VirtualMetrix性能管理(PerfMan),它通過(guò)參數(shù)驅(qū)動(dòng)的算法控制所有性能資源。該軟件調(diào)度任務(wù)、更改時(shí)鐘速度、確定空閑周期,并根據(jù)性能數(shù)據(jù)(如消耗的帶寬和停用的指令)分配 I/O 帶寬和緩存空間。這種方法(如圖 1 所示)解決了碎片問(wèn)題,甚至可以實(shí)現(xiàn)最佳資源分配,甚至可以考慮現(xiàn)代處理器和數(shù)據(jù)相關(guān)應(yīng)用程序的執(zhí)行速度的不可預(yù)測(cè)性。
圖1:PerfMan 使用參數(shù)驅(qū)動(dòng)的算法控制所有性能資源,從而實(shí)現(xiàn)最佳資源分配。
正在申請(qǐng)專(zhuān)利的已完成工時(shí)分配算法使用閉環(huán)方法,該方法通過(guò)將已完成的工作與仍要執(zhí)行的工作進(jìn)行比較來(lái)做出分配決策,以系統(tǒng)提供的任何可測(cè)量的性能量表示。例如,如果應(yīng)用程序是填充緩沖區(qū)的視頻播放器或通信協(xié)議,則 PerfMan 可以跟蹤緩沖區(qū)填充級(jí)別并確定時(shí)鐘速度和運(yùn)行時(shí)間,以便及時(shí)填充緩沖區(qū)。完成的時(shí)間不可避免地會(huì)有所不同,因此決策會(huì)周期性地更新。在許多情況下,緩沖區(qū)會(huì)過(guò)度填充,以防止在緩沖區(qū)空時(shí)阻塞,這可能導(dǎo)致計(jì)時(shí)沖突。PerfMan 能夠精確分配性能,將緩沖保持在最低限度并減少內(nèi)存占用。該算法可以處理混合在一起的硬、軟和非實(shí)時(shí)應(yīng)用程序。
如果將應(yīng)用程序執(zhí)行圖量化為簡(jiǎn)單的性能參數(shù),并且截止時(shí)間在重要時(shí)已知,則算法將動(dòng)態(tài)調(diào)度以及時(shí)滿(mǎn)足截止時(shí)間。即使是非實(shí)時(shí)應(yīng)用程序也需要一些性能分配,以避免無(wú)限期推遲。分配應(yīng)用程序所需的最小處理器資源會(huì)增加系統(tǒng)利用率,從而導(dǎo)致更高的可能工作負(fù)載。該方法不依賴(lài)于嚴(yán)格的優(yōu)先級(jí),盡管可以使用它們。執(zhí)行中的優(yōu)先級(jí)或順序是應(yīng)用程序在等待輪到運(yùn)行時(shí)表現(xiàn)出的緊迫性的直接結(jié)果,這是要執(zhí)行的基本工作/已完成范式的函數(shù)。
擴(kuò)展到更多維度
如果任務(wù)已準(zhǔn)備好在現(xiàn)有操作系統(tǒng)中運(yùn)行,它們將運(yùn)行,但它們是否需要運(yùn)行?如果操作系統(tǒng)知道它們不會(huì)影響它們的運(yùn)行,它們是否可以延遲(強(qiáng)制空閑)?
了解每個(gè)任務(wù)的時(shí)間以及它是正在運(yùn)行還是等待運(yùn)行,使軟件能夠自動(dòng)確定最小時(shí)鐘速度和運(yùn)行時(shí)間。因此,在所有負(fù)載條件下,一切都按時(shí)完成。將時(shí)鐘速度與瞬時(shí)工作負(fù)載相匹配并不意味著時(shí)鐘速度始終最小化。低能耗的目標(biāo)有時(shí)需要高速爆發(fā),然后是空閑,就像英特爾的 HUGI 一樣。但即便如此,運(yùn)行速度超過(guò)最佳利用率(每單位時(shí)間執(zhí)行的操作)所指示的速度也沒(méi)有好處。在等待內(nèi)存操作完成時(shí)快速計(jì)時(shí)不會(huì)節(jié)省能源。
該算法的口號(hào)是“以最低的能耗實(shí)現(xiàn)最高的利用率/工作負(fù)載”,這在很大程度上是通過(guò)管理所有性能資源的閉環(huán)算法來(lái)實(shí)現(xiàn)的。
在多核系統(tǒng)中,無(wú)法同時(shí)實(shí)現(xiàn)平衡的負(fù)載、低多線(xiàn)程屏障延遲和最低的總體能耗。若要解決此問(wèn)題,可以將 PerfMan 配置為優(yōu)化一個(gè)或多個(gè)性能屬性。如果目標(biāo)是最低能耗,那么不平衡的系統(tǒng)(某些內(nèi)核負(fù)載高,而其他內(nèi)核為空并因此關(guān)閉)可能會(huì)提供最低的能耗,但代價(jià)是執(zhí)行延遲更長(zhǎng),整體性能較低。
加速線(xiàn)程以減少屏障延遲也可能導(dǎo)致更高的能耗。但是,滿(mǎn)足截止日期(硬或軟)會(huì)覆蓋所有其他考慮因素?;陂]環(huán)的精確性能資源分配算法可以安全地保持更高的工作負(fù)載水平,這反過(guò)來(lái)又允許將核心整合比現(xiàn)有方法進(jìn)一步推動(dòng),從而實(shí)現(xiàn)更高的能耗降低。
在 VMX Linux 上的實(shí)現(xiàn)
PerfMan已實(shí)現(xiàn)為獨(dú)立于常駐操作系統(tǒng)運(yùn)行的瘦內(nèi)核(sdKernel)。它已移植到 Linux 2.6.29 (VMX Linux),如圖 2 所示。安卓端口即將完成。該軟件接管 Linux 任務(wù)調(diào)度并與現(xiàn)有的電源管理基礎(chǔ)架構(gòu)互通。sdKernel 的單獨(dú)版本提供虛擬化,并支持符合 POSIX 標(biāo)準(zhǔn)的環(huán)境中的硬實(shí)時(shí)任務(wù)。在許多平臺(tái)上,調(diào)度/上下文切換都處于亞微秒級(jí)別,但由于大多數(shù) Linux 系統(tǒng)調(diào)用對(duì)于硬實(shí)時(shí)應(yīng)用程序來(lái)說(shuō)太慢了,因此 sdKernel 為基本外圍設(shè)備、計(jì)時(shí)器和其他資源提供了 API。
圖2:在 Linux 實(shí)現(xiàn)中,PerfMan 接管 Linux 任務(wù)調(diào)度并與現(xiàn)有的電源管理基礎(chǔ)架構(gòu)互通。
通過(guò)監(jiān)控性能,該軟件可以檢測(cè)異常執(zhí)行模式,預(yù)測(cè)即將到來(lái)的操作系統(tǒng)崩潰和崩潰。在這種情況下,sdKernel 將通知任務(wù)關(guān)鍵型應(yīng)用程序停止使用 Linux 系統(tǒng)調(diào)用,并在重新啟動(dòng) Linux 時(shí)暫時(shí)切換到 sdKernel API(安全模式)。
VMX Linux 支持真實(shí)和非實(shí)時(shí)應(yīng)用程序的混合,具有高效的性能隔離,同時(shí)最大限度地降低了能耗。它還可以提供硬件隔離/安全性和安全著陸。
基準(zhǔn)測(cè)試顯示結(jié)果
使用 VMX 設(shè)計(jì)的電能表實(shí)時(shí)測(cè)量的能耗是系統(tǒng)累積的,并與各個(gè)應(yīng)用程序相關(guān)聯(lián)。媒體播放器應(yīng)用程序(視頻和音頻)首先使用標(biāo)準(zhǔn) Linux 2.6.29(圖 3 紅色圖表)和 VMX Linux(圖 3 藍(lán)色圖表)在 OMAP35xx BeagleBoard 上運(yùn)行。
圖3:在 OMAP35xx BeagleBoard 上使用 VMX Linux 可實(shí)現(xiàn) 95% 的平均負(fù)載,并及時(shí)完成。
性能合規(guī)性(性能組合圖)顯示應(yīng)用程序任務(wù)按時(shí)完成的程度(中心線(xiàn))。該行下方表示違反最后期限。請(qǐng)注意,使用 VMX Linux,在沒(méi)有預(yù)緩沖和違反截止時(shí)間的情況下實(shí)現(xiàn)了 95% 的平均負(fù)載,但它已經(jīng)接近了。使用 VMX Linux 時(shí),46 秒視頻的總電路板能耗從 68.7 W*sec 下降到 27.6 W*sec。顯示的數(shù)據(jù)表示預(yù)設(shè)間隔內(nèi)的平均值。作為額外的好處,當(dāng)Linux故意崩潰時(shí),視頻會(huì)消失,但音樂(lè)以安全模式播放,沒(méi)有可聽(tīng)見(jiàn)的故障。
簡(jiǎn)而言之,該實(shí)施創(chuàng)造了一種新的績(jī)效管理方法,并取得了令人興奮的結(jié)果。審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235304 -
gps
+關(guān)注
關(guān)注
22文章
2986瀏覽量
169426 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7152瀏覽量
125613
發(fā)布評(píng)論請(qǐng)先 登錄
兆芯版中科方德桌面操作系統(tǒng)V5.0升級(jí)上線(xiàn) 低功耗 高性能 強(qiáng)安全三大維度實(shí)現(xiàn)突破
鴻道Intewell操作系統(tǒng):人形機(jī)器人底層操作系統(tǒng)
理想汽車(chē)智駕操作系統(tǒng)解讀

鴻道Intewell操作系統(tǒng)的Linux實(shí)時(shí)拓展方案

國(guó)產(chǎn)銀河麒麟操作系統(tǒng)V10和星光麒麟V1.0操作系統(tǒng)如何選擇?

deepin操作系統(tǒng)介紹

如何在windows上emulate不同操作系統(tǒng)
什么是嵌入式操作系統(tǒng)?
linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點(diǎn)及組成
新手學(xué)操作系統(tǒng)(第一周)

工控機(jī)支持什么操作系統(tǒng)
Linux操作系統(tǒng)運(yùn)行參數(shù)自動(dòng)調(diào)整技術(shù)

簡(jiǎn)單認(rèn)識(shí)RTOS實(shí)時(shí)操作系統(tǒng)
Windows操作系統(tǒng)是什么?它有哪些特點(diǎn)?
Windows操作系統(tǒng)中的常用命令

評(píng)論