两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

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

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

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