欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

功率知曉線程調(diào)度和處理器的動態(tài)使用的制作方法

文檔序號:6593258閱讀:204來源:國知局
專利名稱:功率知曉線程調(diào)度和處理器的動態(tài)使用的制作方法
功率知曉線程調(diào)度和處理器的動態(tài)使用背景計算機系統(tǒng)功耗管理對于延長電池的操作能力并降低總體功耗而言是重要的,這 在財務和環(huán)境上都是有益的。甚至對于非移動計算機,降低功率要求對于節(jié)省重要的全球 資源并在依賴電池備份系統(tǒng)時,如在公共事業(yè)電源中斷期間延長操作是有益的。雖然計算系統(tǒng)的大多數(shù)組件在系統(tǒng)操作期間使用電源,但處理器使用不成比例的 系統(tǒng)電源份額。許多計算機系統(tǒng),包括基于消費者的系統(tǒng),都包括多個處理器和/或具有多 個核的處理器。多個處理器允許計算機并行地執(zhí)行增大的工作量,然而額外的處理器也會 增大功耗。大多數(shù)現(xiàn)代處理器具有非常低功率的空閑功率狀態(tài),這可以對多核系統(tǒng)上每一 個核應用,并可以由操作系統(tǒng)進行控制。另外,處理器頻率可以在每一個核或每一個核組的 基礎上伸縮,以降低系統(tǒng)電源使用。概述提供本概述是為了介紹以下在詳細描述中進一步描述的提供功率知曉線程調(diào)度 和處理器的動態(tài)使用的簡化概念。本概述并不旨在標識所要求保護的主題的必要特征,也 不旨在用于幫助確定所要求保護的主題的范圍。公開了用于提供功率知曉線程調(diào)度和處理器的動態(tài)使用的示例性技術和裝置。根 據(jù)一個或多個實施例,監(jiān)視多核系統(tǒng)以確定核活動。檢索電源策略以便為核啟動性能和功 率節(jié)省計劃。多核系統(tǒng)的一個或多個核基于電源策略和核活動來停止(park)(置于系統(tǒng)指 定的低功率狀態(tài))。當停止一個或多個核時,留下已啟動(impark)的核來處理所有剩余系 統(tǒng)活動。在某些實施例中,可以修改電源策略以包括影響功率節(jié)省或系統(tǒng)性能的其他因素。 在至少一個其他實施例中,除停止一個或多個核之外,多核系統(tǒng)還可以動態(tài)地調(diào)整一個或 多個已啟動的核的功率狀態(tài)。附圖簡述參考附圖來描述詳細描述。在附圖中,附圖標記中最左邊的數(shù)字標識該附圖標記 首次出現(xiàn)的附圖。不同附圖中的相同附圖標號指示相似或相同的項目。

圖1是可以用來實現(xiàn)功率知曉線程調(diào)度和處理器的動態(tài)使用的至少一個實施例 的說明性系統(tǒng)。圖2示出了創(chuàng)建核停止掩碼并利用線程調(diào)度器來實現(xiàn)掩碼以允許將工作分配到 處理器的過程的至少一個實施例的流程圖。圖3A和3B示出了根據(jù)本發(fā)明的至少一個實施例的說明性核利用。更具體而言, 圖3B示出了響應于如圖3A所示的說明性系統(tǒng)核利用的對核利用的說明性修訂。圖4示出了評估線程調(diào)度和處理器的動態(tài)使用并確定處理器的修訂配置的說明 性過程的至少一個實施例的流程圖。圖5示出了提供功率知曉線程調(diào)度和處理器的動態(tài)使用的說明性過程的至少一 個實施例的流程圖。圖6示出了提供功率知曉線程調(diào)度和處理器的動態(tài)使用的說明性過程的至少一 個實施例的另一流程圖,還包括域空閑考慮。
圖7示出了為功率知曉線程調(diào)度和處理器的動態(tài)使用提供附加設置的至少一個 實施例的說明性流程圖。詳細描述處理器可以允許低功率空閑功率狀態(tài),包括不消耗功率(零瓦特)的空閑狀態(tài)。當 沒有有用的工作要執(zhí)行時,操作系統(tǒng)可以指示一個或多個處理器(或簡稱為“核”)進入空 閑功率狀態(tài)(即,處理器休眠狀態(tài))。最大化花費在這些低功率狀態(tài)的時間可以提高系統(tǒng)能 量效率和/或延長電池壽命。除這些處理器空閑功率狀態(tài)之外,處理器還可以提供單獨或 結合處理器核電壓的同時降低的對伸縮處理器頻率的控制。這些控制可被統(tǒng)稱為處理器功 率管理(PPM)特征。處理器可以便于每秒數(shù)十億次的執(zhí)行。盡管具有這一大容量來執(zhí)行計算機指令, 但處理器可以在短時間內(nèi)具有相當大的工作負載變化。例如,短如打字員的鍵擊之間的延 遲的時間段可以允許PPM短暫地降低處理器功率或者甚至進入簡短的休眠狀態(tài)。雖然幾分 之一秒的功率看起來是微不足道的,但是比較長的時間內(nèi)累積的功率節(jié)省會是顯著的。因此,當處理器沒有足夠的工作負載來證明較高的功率狀態(tài)是恰當?shù)臅r候,PPM可 以通過指示未使用的處理器進入低功率狀態(tài)或休眠狀態(tài)(“停止”狀態(tài))來降低功率需求。 停止的核可以被置于使用最少電量或根本不使用電量的處理器空閑功率狀態(tài)(ACPI C狀 態(tài))。要在系統(tǒng)上執(zhí)行的活動工作將在啟動的處理器上進行時間多路復用。因此,此處在隨后的各個章節(jié)中公開了方便提供功率知曉線程調(diào)度和處理器的動 態(tài)使用的技術和裝置。說明性環(huán)境圖1是可以用來實現(xiàn)功率知曉線程調(diào)度和處理器的動態(tài)使用的至少一個實施例 的說明性系統(tǒng)100。系統(tǒng)100包括計算設備102。例如,計算設備可以是移動計算機102(1)、 臺式計算機102(2),和/或服務器102 (N),以及其他可能的計算設備。在非?;镜呐渲?中,計算設備102通常包括一個或多個處理器(“處理器”)104。例如,處理器104可以是并 行或串行配置的多個獨立處理器和多核處理單元中的至少一個,或者單獨地或者是不同的 組合。多核處理器可以具有包括在同一個芯片或集成電路上的兩個或更多處理器(“核”)。 術語“處理器”、“核”和“邏輯處理器”在全文中可互換地使用,除非參考特定元素特別另外 指明。另外,計算設備102還包括系統(tǒng)存儲器106。取決于計算設備的確切配置和類型, 系統(tǒng)存儲器可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等等)或兩種類型的 某種組合。系統(tǒng)存儲器106通常包括操作系統(tǒng)108、一個或多個程序模塊110,且可以包括 程序數(shù)據(jù)112。操作系統(tǒng)108可以包括負責指示處理器功率管理(PPM)特征的使用的內(nèi)核功率管 理器114。內(nèi)核功率管理器114可以使用性能狀態(tài)(ρ狀態(tài))或線性扼流狀態(tài)(t狀態(tài))來 調(diào)整處理器104的性能(例如,速度)。例如,內(nèi)核功率管理器114可以在可能時平衡處理 器104的功耗與當前工作負載以節(jié)省能量。另選地或另外地,內(nèi)核功率管理器114可以允 許處理器104響應于工作負載需求來提供最大處理能力。此外,當沒有諸如程序模塊110 的線程等活動線程準備運行時,內(nèi)核功率管理器114可以指示處理器104中的一個或多個 進入低功率休眠狀態(tài)。
操作系統(tǒng)108可以提供用于跨系統(tǒng)100中的所有可用的處理器104來對工作單元 (線程)進行排隊、調(diào)度、確定優(yōu)先順序和分派的模塊,這些模塊可以被表示為統(tǒng)稱為內(nèi)核 線程調(diào)度器116的模塊集合。當活動線程準備運行時,內(nèi)核調(diào)度器116經(jīng)由一個或多個模 塊將線程都分派到任何可用核以便進行處理。一般而言,內(nèi)核功率管理器114和內(nèi)核調(diào)度器116在對處理器104的控制和操作 方面具有競爭利益。內(nèi)核功率管理器被配置成最小化處理器104的功耗,并且因此試圖降 低處理器104中的一個或多個的頻率和/或功率狀態(tài)。相反,內(nèi)核調(diào)度器116被配置成最 大化處理吞吐量,并由此偏愛將工作分發(fā)到所有處理器104。計算設備102可具有附加特征或功能。例如,計算設備102還可包括附加數(shù)據(jù)存 儲設備(可移動和/或不可移動),諸如例如磁盤、光盤或磁帶。這些附加存儲在圖1中由 可移動存儲118和不可移動存儲120示出。計算機存儲介質(zhì)可包括以用于存儲諸如計算機 可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術實現(xiàn)的易失性和非易 失性、可移動和不可移動介質(zhì)。系統(tǒng)存儲器106、可移動存儲118和不可移動存儲120都是 計算機存儲介質(zhì)的示例。因此,計算機存儲介質(zhì)包括但不限于,RAM、R0M、EEPR0M、閃存或其 它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它 磁性存儲設備、或能用于存儲所需信息且可以由計算設備102訪問的任何其它介質(zhì)。任何 這樣的計算機存儲介質(zhì)都可以是計算機設備102的一部分。計算設備102還可具有諸如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備等輸入 設備122。還可直接或經(jīng)由到計算設備102的連接來包括諸如顯示器、揚聲器、打印機等一 個或多個輸出設備124。計算設備100還可包括允許該設備諸如通過網(wǎng)絡來與其他計算設備進行通信的 通信連接126。通信連接126是通信介質(zhì)的一個示例。通信介質(zhì)通??梢跃唧w化為計算機 可讀指令、數(shù)據(jù)結構或程序模塊。術語“已調(diào)制數(shù)據(jù)信號”指的是其一個或多個特征以在信 號中編碼信息的方式被設定或更改的信號。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),如 有線網(wǎng)絡或直接線連接,以及諸如聲學、RF、紅外線及其他無線介質(zhì)之類的無線介質(zhì)。計算 機可讀介質(zhì)可以是可由計算設備102訪問的任何可用介質(zhì)。作為示例而非限制,計算機可 讀介質(zhì)可包括“計算機存儲介質(zhì)”和“通信介質(zhì)”。各種模塊和技術在此處可在諸如程序模塊等由一個或多個計算機或其他設備執(zhí) 行的計算機可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括用于執(zhí)行特定任務 或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等。這些程序模塊等可以作為 本機代碼執(zhí)行或諸如在虛擬機或其它即時(just-in-time)編譯執(zhí)行環(huán)境中下載和執(zhí)行。 通常,程序模塊的功能可以在各個實施例中按需進行組合或分布。這些模塊和技術的實現(xiàn) 可以存儲在某種形式的計算機可讀介質(zhì)上或通過某種形式的計算機可讀介質(zhì)傳輸。說明性處理器配置圖2示出了創(chuàng)建核停止掩碼并利用線程調(diào)度器來實現(xiàn)掩碼以允許將工作分配到 處理器的過程200的至少一個實施例的流程圖。過程200被示為邏輯流程圖中一組框的集 合,這表示可用硬件、軟件或其組合實現(xiàn)的一系列操作。在軟件的上下文中,各個框表示當 由一個或多個處理器執(zhí)行時完成所述操作的計算機可執(zhí)行指令。一般而言,計算機可執(zhí)行 指令包括執(zhí)行特定功能或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等。描
6述操作的次序并不旨在被解釋為限制,并且任何數(shù)量的所述框可以按任何次序和/或并行 地組合以實現(xiàn)該過程。除了過程200之外,本發(fā)明通篇所描述的其他過程也應如此解釋。出 于討論的目的,過程200參考圖1所示的系統(tǒng)100來描述。如圖2所示,在202,在系統(tǒng)存儲器中創(chuàng)建核停止掩碼。例如,在202,內(nèi)核功率管 理器114可以創(chuàng)建駐留在操作系統(tǒng)108中的核停止掩碼。說明性核停止掩碼(“位掩碼” 或簡稱為“掩碼”)204可以提供表示對應的核的單元格。如圖2所示,說明性系統(tǒng)包括八個 核,然而,也可以使用更多或更少的核。位掩碼204在每一單元格中包括位值,其中“1”表 示已停止的核,而“0”表示已啟動的核。已停止的核是被置于低功率休眠狀態(tài)的核。在某 些實施例中,已停止的核沒有功耗,由此使用零瓦特。在某些實施例中,核具有諸如共享硬 件電路之類的依賴性。如果兩個核都可以被置于低功率狀態(tài),則依賴性也可以被隱式地置 于低功率狀態(tài)。由此,可以選擇與另一個掩碼相比將最大化功率節(jié)省的核停止掩碼。例如, 關閉單個處理器插槽中的所有核可能比關閉兩個處理器插槽中的一半的核節(jié)省更多功率。 位掩碼204包括四個已停止的核,編號(從右到左,零到七)為3、5、6、和7。由此,核0、1、 2和4是已啟動的核。根據(jù)一個或多個實施例,在206位掩碼204可以倒排以創(chuàng)建倒排位掩碼208。例 如,內(nèi)核功率管理器114可以創(chuàng)建倒排位掩碼208。倒排位掩碼包括對應于每一個單元格 (即,核)的倒排位值。因此,可以優(yōu)選用“1”指定的核來處理數(shù)據(jù),而可以不優(yōu)選用“0”指 定的核來處理應用程序線程。在210,諸如通過內(nèi)核調(diào)度器116來確定應用程序調(diào)度。例如,計算設備102可以 運行程序模塊110中的一個或多個。一些程序模塊110可以包括單線程程序,而其他程序 模塊可以包括多線程模塊。通常,內(nèi)核調(diào)度器116基于諸如優(yōu)先級、核可用性、親和性(調(diào) 度限制)以及其他因素等多個因素來將每一線程調(diào)度到可用核。當線程在數(shù)量上超過可用 核時,則內(nèi)核調(diào)度器116交替線程或以其他方式調(diào)度線程以確保線程最終取得進展(即,由 處理器執(zhí)行)。處理器104可以在單個核上每秒交替線程許多次,由此為內(nèi)核調(diào)度器116提 供將線程有效地調(diào)度到可用核的機會。雖然許多程序模塊不會將線程分配到特定處理器,但某些復雜程序模塊可能需要 由特定處理器執(zhí)行線程,這被稱為設置線程的處理器親和性。程序模塊線程親和性掩碼212 表示如由程序模塊110確定的被請求處理線程的核。例如,第一程序模塊可以具有第一親 和性掩碼212(1),其表示線程必須由內(nèi)核調(diào)度器116調(diào)度到核0和1。與第二程序模塊相 關聯(lián)的第二親和性掩碼212(2)可以指示線程可以被調(diào)度到核2和3,而另一個程序模塊可 以包括親和性掩碼212 (P),其表示線程可以被調(diào)度到任一個可用核(所有核都被示為被選 中)。應該注意,親和性掩碼212 (P)是特殊情況,因為它有效地不包括對將線程分配到核的 約束。在某些實施例中,在214,使用“AND (與)”操作符來一次一個地將程序模塊親和性 掩碼212與倒排位掩碼208組合以確定對于可用的處理器集218的適合的處理器集合。在 220,使用第一親和性掩碼212(1)來創(chuàng)建第一可用處理器集218(1)。過程200可以包括對 于每一個程序模塊的操作210、214和220 (即,對于倒排位掩碼208和親和性掩碼212的每 一次組合)的迭代過程。由此,在操作210、214和220的第二次迭代期間,使用第二親和性 掩碼212 (2)來創(chuàng)建第二可用處理器集218 (2),以此類推。
7
如上文所討論的,使用每一個核(例如,核0……核7)的位值來確定用于調(diào)度線程 的可用處理器集218。在兩個操作數(shù)(即,核的組合位值)都包括表示線程親和于特定核的 “1”的情況下,“AND”操作符216返回核位值“1”。例如,當?shù)谝挥H和性掩碼212(1)與倒排 位掩碼208組合時,核0和1兩者都是活動核并且將返回核位值“1”,而其余核2-7包括核 位值“0”,如在第一可用處理器集218(1)中說明性地示出的。第二親和性掩碼212 (2)在核3處包括核值“ 1 ”,而倒排位掩碼208指示核3已被 停止。內(nèi)核調(diào)度器116可以選擇覆蓋倒排位掩碼,以適應在第二可用處理器集218 (2)中表 示的第二親和性掩碼212(2),其中核3包括核值“1”,因此將工作轉移到在倒排位掩碼208 中被指定為已停止的核(隨后可以被啟動)。在某些實施例中,可以使用任意數(shù)量的試探來 調(diào)度線程。可以使用線程的親和性方面的最優(yōu)核,同時忽略倒排位掩碼208。如果最優(yōu)核 已停止,則退回可以包括將同一個NUMA(非均勻存儲器存取)節(jié)點中的處理器選為優(yōu)選核。 調(diào)度器將核停止倒排掩碼視作運行線程的優(yōu)選位置的提示,但它將在相信什么是性能最佳 選項的硬限制(硬親和性)之間進行選擇。在所有核都被指定為可用的情況下,如在親和性掩碼212(P)中,可以忽略位值, 因為程序模塊指示它允許任何核執(zhí)行線程。親和性掩碼212 (P)可以包括由倒排位掩碼208 指示的任一個核處的調(diào)度的核,諸如核0、1、2和4,如由可用處理器集218(P)通過核值示出 “1/0” ( “1”或者“0”,同時至少一個核必須具有核值“1”,以允許調(diào)度親和性掩碼212 (P) 的工作)來表示的。在某些實施例中,當確定將工作分配到可用核時,可用處理器集218(P) 可以選擇已啟動并且空閑的核。在理想情況下,工作輪換可以將工作分配到核0、1、2和3, 由此留下核4未使用,并可能在后續(xù)動作中停止。如下面所討論的其他考慮事項可以確定 響應于親和性掩碼212 (P)給哪些核分配工作以創(chuàng)建優(yōu)選位置。例如,優(yōu)選位置可以基于諸 如可任選存儲器存取性能之類的因素。如上文參考圖2所描述的,可以使用操作210、214和220來調(diào)度線程。另外,可以 通過諸如延遲過程調(diào)用(DPC),計時器,處理中斷,或其他處理器工作等操作210、214和220 來在過程200中執(zhí)行其他工作。根據(jù)一個或多個實施例,圖2示出了一時間片內(nèi)的示例核使用222。例如,來自可 用處理器集218的活動核的組合可能導致給定時間檢查間隔(諸如,但不限于100毫秒) 期間的核使用222。核使用222中的核4可以或可以不被表示為取決于工作是否被調(diào)度到 可用處理器集218(P)中的核4,如上文所討論的。從內(nèi)核功率管理器114的觀點來看,在理 想情況下,核使用222將包括核4的核值“0”,由此最小化已啟動的核的數(shù)量,并導致功耗 降低。不管核使用222如何,可以為下一時間片創(chuàng)建新的核停止掩碼,可以使用來自核使用 222的信息來確定新的核停止掩碼。在某些情況下,可能不需要核3,因為核2可以具有足 夠的處理利用以滿足第二親和性掩碼212(2)并且仍是已啟動的核。圖3A和3B示出了根據(jù)本發(fā)明的至少一個實施例的說明性核利用。更具體而言, 圖3B示出了響應于如圖3A所示的說明性系統(tǒng)核利用的對核利用的說明性修訂。根據(jù)一個或多個實施例,圖3A示出了包括多個核302、304、306和308的系統(tǒng)300, 但在系統(tǒng)300的替換實施例中可以包括更多或更少的核。內(nèi)核功率管理器114可以使用電 源策略來控制核。電源策略可以確定活動核的數(shù)量,并影響內(nèi)核功率管理器114如何計算 可用核的集合??梢允褂秒娫床呗詠硐拗瓶捎煤说臄?shù)量,或允許內(nèi)核功率管理器114伸縮可用核的數(shù)量。平臺支持的核數(shù)量可以隨不同的系統(tǒng)而變化,由此需要靈活的方案以允許 由內(nèi)核功率管理器在未提前知道有多少核可用的情況下指定核的數(shù)量。因此,在某些實施 例中,要使用的核數(shù)量可被表達為最大核利用的百分比。因此,核的實現(xiàn)可能需要將百分數(shù) 舍入到表示核數(shù)量的下一可用數(shù)字。例如,核使用百分比可以計算為60%。如果系統(tǒng)包括 四個核,則該百分數(shù)可以被舍入為75%,并且三個核將啟動,而一個核停止。每一核都包括表示該核的工作負載的核利用(“核效用”)310,其被表達為獨立于 核的性能狀態(tài)的總時間中的核運行時間的百分比。例如,核0 302可以具有80%的核效用, 指示該核正在執(zhí)行比核“0”的最大工作負載容量少20%的工作。因此,100%的核效用表示 核正在執(zhí)行最大容量工作,而具有0%核效用的核表示未使用的核。在某些實施例中,內(nèi)核 功率管理器114可以監(jiān)視核效用310。另外,每一核都可以包括性能狀態(tài)(高級配置和電源接口(ACPI)p狀態(tài))312。ρ 狀態(tài)312是核頻率和電壓設置,并由內(nèi)核功率管理器114進行控制。ρ狀態(tài)312類似于電動 機的扼流控制。100%的ρ狀態(tài)312表示核的最大性能狀態(tài),而50%的ρ狀態(tài)表示核處于最 大頻率的一半,且核電壓電平相應地降低。應該注意,核的實際功耗可能不與P狀態(tài)312 — 致或成比例。例如,由于諸如核功率泄漏、核基本功耗和/或其他因素等因素,使核的P狀 態(tài)312翻倍可能不會使核的功耗翻倍。在某些實施例中,內(nèi)核功率管理器114可以諸如通 過參考電源策略來確定和/或控制P狀態(tài)312。每一核都包括表示核相對于總工作負載容量的工作負載的輸出利用值(“輸出效 用” )314。例如,輸出效用314可以具有標度0-10000,其中0表示無利用,10000表示最大 利用。輸出效用314可以通過將核效用310和ρ狀態(tài)312相乘來計算。例如,核0 302包 括80 %的核效用和80 %的ρ狀態(tài),因此輸出效用是6400。在某些實施例中,輸出效用314 被內(nèi)核功率管理器114用來確定核停止決定和/或確定ρ狀態(tài)312設置,如參考電源策略。在某些實施例中,系統(tǒng)300可以包括核塊316,如第一核塊316(1)和第二核塊 316(2),然而,可以在系統(tǒng)300中實現(xiàn)更多或更少的核塊。核塊316可以表示具有單個電路 且具有多個核的平臺,如雙核或多核處理器。每一核塊316都可以包括獨特的功耗特性。例 如,核可以包括當塊中的任一個核被啟動時出現(xiàn)的活動水平功耗、核泄漏,或其他功耗。例 如,如果第一核塊316(1)中的兩個核被啟動并具有輸出效用10000,則組合功耗可以是2χ 瓦特。如果第一核塊316(1)中的核0 302隨后被停止(例如,輸出利用是0),而核1 304保 持不變,則由于諸如功率泄漏、活動功耗和/或其他因素之類的與核塊316相關聯(lián)的因素, 組合功耗可以大于χ瓦特。當核1隨后被停止時,所產(chǎn)生的功耗可以是0瓦特。因此,停止 核以使得整個核塊在其他核被隨后停止之前變?yōu)橥V故怯欣模纱俗畲蠡β使?jié)省。如圖3Α所示,系統(tǒng)300的說明性實現(xiàn)包括核3 308停止,而其他核啟動(即,活 動)。雖然核3包括100%的ρ狀態(tài),但這可能不表示電能被供給到核3。換言之,內(nèi)核功率 管理器114可以停止一個核,同時使ρ狀態(tài)處于大于0%的水平。在示例利用情形下,內(nèi)核功率管理器114可以計算系統(tǒng)300的輸出,以確定最 大總系統(tǒng)效用30000(即,3個已啟動的核X 10000 = 30000)的總系統(tǒng)效用12600(艮口, 6400+3200+3000 = 12600)。上面所引用的利用數(shù)旨在解釋可以使用總系統(tǒng)效用來執(zhí)行的 計算的性質(zhì),由此不限于本發(fā)明。圖3Β在經(jīng)修訂的系統(tǒng)318中示出了響應于如圖3Α所示的總系統(tǒng)利用的對核利用的說明性修訂。經(jīng)修訂的系統(tǒng)318包括對核302、304、306和308的停止/啟動狀態(tài)的修訂。 如上文所指出的,參考系統(tǒng)300,在一示例中,計算出總系統(tǒng)效用為12600。因此,內(nèi)核功率 管理器114可以在不降低該系統(tǒng)滿足當前工作負載需求的能力的情況下停止其他核,因為 總系統(tǒng)效用小于兩個核的最大利用容量(即,12600 < 20000)。根據(jù)某些實施例,內(nèi)核功率 管理器114可以或許基于電源策略或其他因素來選擇要停止的核,這對系統(tǒng)用戶是完全透 明的。用戶透明性包括沒有用戶可感知到的系統(tǒng)或應用程序性能影響,除其更佳的能源效 率的主要目標外。實現(xiàn)核停止所需的任何變化可被限于非常低級別的操作系統(tǒng)內(nèi)部組件, 并因此對于與核停止相關聯(lián)的最終用戶而言沒有行為或體驗變化。當停止第二核時,經(jīng)修訂的系統(tǒng)的最大總系統(tǒng)效用將下降到20000(2個 核X 10000)。內(nèi)核功率管理器114可以停止在先前狀態(tài)(如圖3A所示)中是活動的任一 個核。如上文所討論的,停止核2 306以完全停止第二核塊316 (2)可能是有利的,從而導致 核塊320停止。因此,與停止核0 302或核1 304而不是核2 306相比,已停止的核塊320 可以增加功率節(jié)省。為了適應對系統(tǒng)318的任何用戶的透明變化,必須吸收已停止的核(核2)的輸 出效用或將其重新分配到其余已啟動的核(即,核O和核1)。從圖3A中,核2的輸出效 用是3000。因此,在一種情況下,已啟動的核可通過使每一個核都具有經(jīng)修改的輸出效用 322 (假設對于每一個核的額外輸出效用1500)來同等地共享負擔。在某些情況下,當將效 用分配到已啟動的核時,可以使用已停止的核的總效用的其他部分。例如,已啟動的核可以 接近容量運行(總效用接近作為最大效用的10000)。在這樣的情況下,具有較大的帶寬的 核可以吸收更多的已停止的核的總效用。在一個或多個實施例中,內(nèi)核功率管理器114可以分別將核0 302和核1304的核 效用310調(diào)整到79%和47%。另外,內(nèi)核功率管理器114可以將兩個已啟動的核的ρ狀態(tài) 312增大到100%。因此,經(jīng)修訂的系統(tǒng)318的總系統(tǒng)效用仍舊等于系統(tǒng)300的總系統(tǒng)效用 12600。經(jīng)修訂的系統(tǒng)318示出了對已停止/啟動的狀態(tài)、核效用310和/或ρ狀態(tài)312的 一種可能的修訂,以適應對用戶透明同時導致經(jīng)修訂的系統(tǒng)318的功耗降低的核修訂。然 而,可以在系統(tǒng)318中作出導致功耗降低并且對用戶透明的許多其他修訂。例如,核1 304 的核效用310可以增大到94%,而ρ狀態(tài)降低到50%,從而導致總效用4700。修訂策略可 由考慮內(nèi)核功率管理器114和內(nèi)核調(diào)度器116的競爭利益的電源策略來確定??梢栽陔娫床呗灾袑崿F(xiàn)可能影響經(jīng)修訂的系統(tǒng)318的其他考慮事項。例如,非時 間敏感線程(例如,后臺線程)可能對核停止決定造成較少的影響,同時使變化對用戶保持 透明。更具體而言,通過包括跨在給定核上執(zhí)行的線程優(yōu)先級的平均運行時的分布,內(nèi)核功 率管理器114可以伸縮核的計算出的利用,以使得不會像高優(yōu)先級線程和工作負載那樣考 慮低優(yōu)先級線程和工作負載。圖4示出了評估線程調(diào)度和處理器的動態(tài)使用并確定處理器的修訂配置的說明 性過程400的至少一個實施例的流程圖。除操作系統(tǒng)108中和/或駐留在系統(tǒng)存儲器106 上的其他模塊之外,過程400可以由內(nèi)核功率管理器114實現(xiàn)。根據(jù)一個或多個實施例,內(nèi)核功率管理器114評估用于監(jiān)視輸出效用314(以及包 括核效用310、ρ狀態(tài)312等其他因素)的時間段??梢赃x擇等于、或長于可用于處理每一線程的時間片的時間段。內(nèi)核功率管理器114可以按給定頻率啟動對核的監(jiān)視。在404,內(nèi)核功率管理器114可以計算總系統(tǒng)利用和最大總系統(tǒng)利用。內(nèi)核功率管 理器114可以在406查閱電源策略以確定如何調(diào)整核使用,以平衡內(nèi)核功率管理器114的 功率節(jié)省需求和內(nèi)核調(diào)度器116和核可用性(處理性能)需求。在408,可以使用其他因素 來確定是否要調(diào)整核使用,如果是,則確定如何調(diào)整使用以實現(xiàn)系統(tǒng)目標,諸如對用戶的透 明變化,適應熱要求,和/或適應其他約束。在410,內(nèi)核功率管理器114可以為核計算新配置。例如,內(nèi)核功率管理器可以計 算新位掩碼202,如2所示。在一個或多個實施例中,在410,可以調(diào)整位掩碼以創(chuàng)建可用處 理器集218。在412,內(nèi)核功率管理器114可以實現(xiàn)來自410的配置。在某些實施例中,過 程400可以重復以創(chuàng)建動態(tài)核分配,如通過以預定頻率進行重復。或者,過程400可以在給 定時間段內(nèi)創(chuàng)建靜態(tài)核分配。說明性操作圖5示出了提供功率知曉線程調(diào)度和處理器的動態(tài)使用的說明性過程500的至少 一個實施例的流程圖。關于過程的排序和實現(xiàn),過程500應該與圖2的過程200類似地解 釋。例如,過程500中描述操作的次序并不旨在解釋為限制,并且任何數(shù)量的所描述的框可 以按任何次序和/或并行組合以實現(xiàn)該過程。出于討論的目的,過程500參考圖1所示的 系統(tǒng)100來描述。根據(jù)一個或多個實施例,“時間校驗(TimeCheck),,周期性的評估例程可以從502 開始。例如,延遲過程調(diào)用(DPC)可以從502開始。在某些實施例中,經(jīng)由以固定周期性速 率(通過時間值的電源策略參數(shù)“時間校驗”配置的,如100毫秒、50毫秒或另一個時間值) 運行的DPC,在每一核上輸入狀態(tài)機。在504,內(nèi)核功率管理器114可以收集核的度量。例 如,DPC被排到每一當前活動核以抓取活動核的度量。度量可以包括核利用、線程優(yōu)先級分 布、每一個核的就緒線程的平均等待時間,和/或空閑狀態(tài)駐留的成功和失敗度量,還有其 他可能的度量。在506,內(nèi)核功率管理器114可以計算諸如核停止掩碼204之類的位掩碼。例如, 可以基于利用閾值、電源策略,和/或任何依賴關系來為目標數(shù)量的活動核計算新的值。在 508,可以更新活動集,如通過實現(xiàn)由內(nèi)核功率管理器114管控的過程200以創(chuàng)建可用處理 器集218。在510,可以由操作系統(tǒng)108實現(xiàn)活動集。在512,內(nèi)核功率管理器114可以確定 是否已經(jīng)添加了(已啟動的)核。如果啟動了核,則可以在514通知內(nèi)核調(diào)度器116,并可 以開始使用已啟動的核來調(diào)度線程。這些已啟動的核可以是遠程線程調(diào)度(即,從不同的 處理器)的目標,或者可以主動地選擇從其他處理器選擇線程。在某些實施例中,可以重新 分配線程以便在已啟動的核上運行,由此減少來自其他已啟動的核的工作負載。在516,可以由內(nèi)核功率管理器114計算預期核輸出利用,并且該核輸出利用可以 包括來自506的已啟動的核。由此,使用對應于在506確定的活動核的數(shù)量的新的值來計 算預期處理器利用。在518,內(nèi)核功率管理器114可以計算ρ狀態(tài)的新的值。在某些實施例 中,在每一個核上調(diào)度DPC以更新其目標ρ狀態(tài)。在一示例中,如果預期利用提高,則在沒 有核啟動的情況下(在512)p狀態(tài)值還可以增大。然而,如果在512啟動核,則ρ狀態(tài)可以 增大或縮小,以平衡內(nèi)核調(diào)度器116的處理需求和內(nèi)核功率管理器114的功率節(jié)省需求。
11
在520,內(nèi)核功率管理器114基于518處的結果來確定是否應該修訂ρ狀態(tài)和/或 t狀態(tài)(線性扼流狀態(tài))當前值。如果在520修改ρ狀態(tài)和/或t狀態(tài),則在522,內(nèi)核功 率管理器114可以將過渡DPC排到受影響的核。由此,由內(nèi)核調(diào)度器116調(diào)度的線程可以 被調(diào)度到以如在520實現(xiàn)的新ρ狀態(tài)和/或t狀態(tài)運行的核。在524,內(nèi)核功率管理器114確定在506是否停止了核。例如,來自516的預期核 輸出利用可能小于當前利用。如果在524已經(jīng)停止核,則內(nèi)核功率管理器114可以在526 通知內(nèi)核調(diào)度器116終止將線程調(diào)度到新停止的核。對于添加或移動到活動核掩碼的任何 核,為該核調(diào)度DPC。如參考圖3A和3B所描述的,可以將來自已停止的核的工作重新分配 到一個或多個已啟動的核。在某些實施例中,可以將新已停止的核置于可用的最深c狀態(tài)。 最后,在528,可以重復過程500。圖6示出了提供功率知曉線程調(diào)度和處理器的動態(tài)使用的說明性過程600的至少 一個實施例的另一個流程圖,還包括域空閑考慮。過程600包括如圖5所描述的許多子過 程,因此,將不描述圖5中的那些子過程。在602,內(nèi)核功率管理器114可以確定是否啟用域空閑考慮。如果啟用域空閑考 慮,則在604,域主抓取域(例如,核塊316或所有核)的度量。在某些實施例中,在606,域空閑考慮可以發(fā)起另一個決定。如果啟用域空閑考慮, 則在608,內(nèi)核功率管理器114可以計算域目標ρ狀態(tài)。最后,在610,可以重復過程600。圖7示出了提供用于功率知曉線程調(diào)度和處理器的動態(tài)使用的附加電源策略設 置及其他輸入的過程700的至少一個實施例的流程圖。在某些實施例中,核停止可被實現(xiàn) 為對計算用于處理器性能狀態(tài)的目標狀態(tài)的現(xiàn)有狀態(tài)機的增強。將基于多個因素來確定要 在任何給定時刻使用的核的正確數(shù)量,如下面參考過程700所描述的。根據(jù)一個或多個實施例,在702,可以使用當前電源策略來設置要利用的核數(shù)量。 在704,可以設置核的最小或最大數(shù)量。內(nèi)核功率管理器114可以計算以能量高效的方式完 成給定工作負載所需的活動核的數(shù)量。在某些情況下,運行最小數(shù)量的核可以有益于功率 節(jié)省,并有益于內(nèi)核功率管理器114。相反,運行最大數(shù)量的核可以提供最高性能水平,由此 有益于內(nèi)核調(diào)度器116。在706,可以由內(nèi)核功率管理器114使用子過程706(1)……706(4)中的一個或多 個來實現(xiàn)用于核停止的附加電源策略參數(shù)。在706(1),可以調(diào)整用于停止和/或啟動核的 必需時間間隔。例如,可以通過改變間隔來操縱停止和/或啟動核的頻率。在某些實施例 中,可以在第一間隔停止核,而在第二間隔啟動核。例如,偏愛功率節(jié)省的策略可以頻繁地 如每隔100毫秒停止核,可以只可每隔500毫秒啟動核。在706 (2),內(nèi)核功率管理器114可以實現(xiàn)增大和/或減小策略。例如,第一策略選 項可以一次只停止設定數(shù)量的核,如一次一個核。第二策略選項可以停止或啟動核以實現(xiàn) 理想的核利用,由此一次停止和/或啟動多個核。第三策略可以轉到一個極端或另一個極 端(或者盡可能多地停止,或者盡可能多地啟動)。在706 (3),可以基于處理器的忙碌度來增大或減小所需利用閾值。例如,處理器可 以直到該處理器(或其他處理器)在給定時間段內(nèi)包括忙碌狀態(tài)才經(jīng)歷停止或啟動狀態(tài)變 化。這可以使處理器減少在停止和啟動狀態(tài)之間快速連續(xù)翻轉。最后,在706(4),可以實現(xiàn)用于伸縮已啟動的核的策略。例如,內(nèi)核功率管理器114可以基于當前活動集中的處理器核的數(shù)量來計算理想的目標處理器性能狀態(tài)。為在 功率節(jié)省、性能,以及對特定工作負載的響應性之間提供最佳折衷,內(nèi)核功率管理器114可 以有利地以較高性能狀態(tài)運行較小數(shù)量的處理器,或相反以較低性能狀態(tài)運行較大數(shù)量的 核。在708,可以由內(nèi)核功率管理器114使用子過程708(1)和708 (2)中的一個或多 個來實現(xiàn)核和/或系統(tǒng)試探。在708(1),內(nèi)核功率管理器114可以基于深處理器空閑功率 狀態(tài)(休眠狀態(tài))的成功使用來計算所需活動核的數(shù)量以及活動使用中的核的最佳性能狀 態(tài)。這可以使內(nèi)核功率管理器能夠檢測何時沒有跨活動(已啟動的)核集合高效地使用較 深的空閑狀態(tài)。為節(jié)能而仍提供性能,將更多核置于停止狀態(tài),并且提高其余活動核的性能 狀態(tài)以確保工作被高效地執(zhí)行是有益的。在708(2),可以使用平均等待時間以使得準備好將線程分配(分派)給核。例 如,內(nèi)核功率管理器114可以通過使用處于就緒狀態(tài)的線程的平均等待時間的分布來計算 所需處理器核的數(shù)量,這允許內(nèi)核功率管理器伸縮使用中的核的數(shù)量以減少處于就緒狀態(tài) 的線程能夠運行之前的等待時間,由此提高性能和響應性。在一示例中,當大量線程需要運 行時,在降低核的P狀態(tài)的同時啟動核是有利的,因為每一個核一次只能處理一個線程。由 此,在某些情況下,更多核可用性將使得能夠處理大量線程。在710,內(nèi)核功率管理器114可以使用空閑狀態(tài)依賴性來調(diào)整核停止實現(xiàn)。當內(nèi)核 功率管理器114選擇應該停止或啟動哪些特定核時,它將首先檢查核的空閑狀態(tài)依賴關系 以確定哪些核可以共享電源或時鐘資源,并基于共享控制來以最高能效方式選擇停止或啟 動核。在712,在確定是否要停止或啟動一個或多個核時,可以考慮性能和扼流狀態(tài)關 系。共享性能狀態(tài)或節(jié)流控制的核可以一起停止或啟動,以實現(xiàn)更大的能效。在714,可以考慮核封裝(塊)關系,如圖3A和3B中所描述的關于核塊的效率的 依賴性,且更具體而言,在停止一新核塊中的另一個核之前停止一核塊。最后,在716,在實 現(xiàn)核停止考慮事項時,內(nèi)核功率管理器114可以使用存儲器位置。例如,兩個或更多核可以 具有封裝關系,諸如這些核共享具有共享存儲體(例如,NUMA(非均勻存儲器存取)節(jié)點) 的物理處理器封裝。與不共享共享的存儲體的核相比,共享的存儲體可以允許核具有減少 的存儲器存取時間。結論上文所描述的技術、系統(tǒng)和裝置涉及提供功率知曉線程調(diào)度和處理器的動態(tài)使 用。雖然已經(jīng)用對結構特征和/或方法動作專用的語言描述了這些技術、系統(tǒng)和裝置,但是 應該理解,所附權利要求不必限于所述的具體特征或動作。相反,這些具體特征和動作是作 為實現(xiàn)這些技術和裝置的示例性形式而公開的。
權利要求
一種用于平衡具有多個核的計算設備的性能和功率節(jié)省的方法,包括定義使用哪些核(202、204)來處理工作;確定電源策略(210、214、406)以便對已定義的和未定義的核啟動性能和功率節(jié)省計劃;以及基于所述電源策略來停止所述未定義的核(222)中的至少一個。
2.如權利要求1所述的方法,其特征在于,所述確定電源策略還包括 創(chuàng)建核停止掩碼(202);確定線程處理器親和性(210);通過組合所述核停止掩碼和所述線程處理器親和性掩碼(214)以創(chuàng)建可用處理器集 (220),來為所述核提供所述性能和功率節(jié)省計劃的至少一部分;以及 基于所述可用處理器集和活動地處理工作的核(222)來計算停止或啟動哪些核。
3.如權利要求2所述的方法,其特征在于,所述確定電源策略作為迭代過程(210、214、 220)動態(tài)地進行。
4.如權利要求1所述的方法,其特征在于,還包括基于所述電源策略(512)來伸縮所述 已定義的核中的至少一個。
5.如權利要求4所述的方法,其特征在于,所述伸縮所述已定義的核中的至少一個包 括調(diào)整核的核效用或功率狀態(tài)(P狀態(tài))中的至少一個以增加功率節(jié)省(512)。
6.如權利要求1所述的方法,其特征在于,所述停止所述未定義的核中的至少一個包括確定已啟動的核塊是否包括已停止的核(316(2));以及如果確定所述已啟動的核塊具有所述已停止的核,則停止所述已啟動的核塊中的至少 一個已啟動的核(320)。
7.如權利要求1所述的方法,其特征在于,還包括使用下列各項中的至少一個來修改 所述電源策略核和系統(tǒng)試探(708); 處理器依賴關系(710、714、718);以及 用于核停止的核策略參數(shù)(706)。
8.一種方法,包括監(jiān)視多核系統(tǒng)中的核活動(402);檢索用于所述多核系統(tǒng)的電源策略(406),所述電源策略平衡所述多核系統(tǒng)中的每一 個核的功率節(jié)省和處理性能;以及基于所述電源策略(412),響應于所述核活動來停止至少一個核。
9.如權利要求8所述的方法,其特征在于,所述停止核包括將核功率狀態(tài)降低到最小 功率處理器空閑功率狀態(tài)(C狀態(tài))(524)。
10.如權利要求8所述的方法,其特征在于,還包括調(diào)整所述多核系統(tǒng)中的至少一個已 啟動的核的功率狀態(tài)(520)。
11.如權利要求8所述的方法,其特征在于,所述響應于所述核活動來停止至少一個核 是以預定頻率動態(tài)發(fā)起的(502、524)。
12.如權利要求8所述的方法,其特征在于,所述監(jiān)視多核系統(tǒng)中的核活動是在預定時間段內(nèi)進行的(402),并且其中所述響應于所述核活動來停止至少一個核是響應于所監(jiān)視 的核活動檢測到的功率節(jié)省機會動態(tài)地進行的(210、214、220)。
13.如權利要求8所述的方法,其特征在于,所述響應于所述核活動來停止至少一個核 包括將工作轉移到已啟動的核,如與程序調(diào)度相關聯(lián)的親和性掩碼所允許的(712、714)。
14.如權利要求8所述的方法,其特征在于,還包括修訂所監(jiān)視的核活動以創(chuàng)建經(jīng)修訂的核活動(508);基于所述電源策略(512),響應于所述經(jīng)修訂的核活動來啟動至少一個核;以及將至少一個線程重新分配到所述至少一個已啟動的核(514)。
15.一種多邏輯處理器系統(tǒng),包括多個處理器(104);以及耦合到所述多個處理器的控制器(106),所述控制器實現(xiàn)性能調(diào)度;實現(xiàn)功率節(jié)省策略;以及通過停止所述多個處理器中的一個或多個來平衡所述性能調(diào)度和功率節(jié)省策略。
16.如權利要求15所述的系統(tǒng),其特征在于,所述控制器從駐留在系統(tǒng)存儲器中的內(nèi) 核功率管理器(114)接收實現(xiàn)所述功率節(jié)省策略的指令。
17.如權利要求15所述的系統(tǒng),其特征在于,所述功率節(jié)省策略(702)包括核停止掩碼 (202),所述核停止掩碼與程序模塊調(diào)度組合以確定其上調(diào)度工作的所得處理器集(116、 220)。
18.如權利要求15所述的系統(tǒng),其特征在于,所述多個處理器包括具有多個核的至少 一個核塊(300)。
19.如權利要求18所述的系統(tǒng),其特征在于,平衡所述性能調(diào)度和功率節(jié)省策略包括 為具有至少一個已停止的核的核塊中的已啟動的核創(chuàng)建核停止優(yōu)先化(318、714)。
20.如權利要求15所述的系統(tǒng),其特征在于,還包括調(diào)整至少一個已啟動的核的功率 狀態(tài)(520)。
全文摘要
公開了用于提供功率知曉線程調(diào)度和處理器的動態(tài)使用的技術和裝置。在某些方面,監(jiān)視多核系統(tǒng)以確定核活動??梢詫⒑嘶顒优c平衡功率節(jié)省計劃與性能計劃的電源策略進行比較。一個或多個核可響應于該比較而停止以降低多核系統(tǒng)的功耗。在其他方面,可以在預定間隔執(zhí)行功率知曉調(diào)度以動態(tài)停止或啟動核。其他方面包括響應于核活動與電源策略的比較來調(diào)整已啟動的核的功率狀態(tài)。
文檔編號G06F12/00GK101981529SQ200980112179
公開日2011年2月23日 申請日期2009年2月16日 優(yōu)先權日2008年3月28日
發(fā)明者A·J·瑞茨, A·U·基什安, A·馬歇爾, N·S·賈齊, Y·鄧 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
大姚县| 平阴县| 苗栗市| 金华市| 任丘市| 河津市| 邛崃市| 独山县| 铁岭市| 泽普县| 云霄县| 胶南市| 黎川县| 五原县| 武威市| 江阴市| 城固县| 万盛区| 湾仔区| 渭源县| 彭水| 伊金霍洛旗| 苏尼特右旗| 探索| 策勒县| 辛集市| 漳浦县| 阜南县| 右玉县| 那坡县| 襄城县| 菏泽市| 湘西| 中阳县| 尼勒克县| 金川县| 汝城县| 三穗县| 甘德县| 永定县| 陈巴尔虎旗|