專利名稱:功率/性能服務(wù)質(zhì)量的基于優(yōu)先級(jí)的調(diào)節(jié)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器的領(lǐng)域,特別是涉及在計(jì)算機(jī)系統(tǒng)中提供服務(wù)
質(zhì)量(QoS)。
背景技術(shù):
半導(dǎo)體加工和邏輯設(shè)計(jì)方面的進(jìn)步允許在集成電路器件上可存在 的邏輯(logic)數(shù)量的增加。因此,計(jì)算機(jī)系統(tǒng)配置已經(jīng)從系統(tǒng)中的單個(gè) 或多個(gè)集成電路發(fā)展到個(gè)體集成電路上存在的多個(gè)核心和多個(gè)邏輯處 理器。處理器或集成電路通常包括單個(gè)處理器管芯,其中該處理器管 芯可包括任何數(shù)量的處理資源,例如核心、線程和/或邏輯處理器。
在具有多個(gè)線程的處理器中,由于共享諸如高速緩存、存儲(chǔ)器和 功率之類的資源, 一個(gè)線程的行為可能影響同一個(gè)處理器核心上另一 個(gè)線程的行為。 一個(gè)線程的行為通常在共享資源和流水線的使用方面 引起不公平。實(shí)際上,當(dāng)一個(gè)線程的性能相對(duì)同一個(gè)核心上的其它線 程明顯改變時(shí),通常因共享資源的不平衡使用而發(fā)生性能方面的不可 預(yù)見的改變。
因此,執(zhí)行低優(yōu)先級(jí)(priority)應(yīng)用程序的 一個(gè)線程或核心可能對(duì)執(zhí) 行較高優(yōu)先級(jí)應(yīng)用程序的核心或線程的性能產(chǎn)生不利影響。例如,后 臺(tái)應(yīng)用程序、如病毒掃描可能正在使用足夠的共享資源的第一核心上 執(zhí)行,從而對(duì)正執(zhí)行后臺(tái)應(yīng)用程序的第二核心的性能產(chǎn)生不利影響。 以前一直使用電壓和頻率的調(diào)節(jié)(throttle)來節(jié)省功率。但是,這些努力 通常涉及調(diào)節(jié)線程或核心而不考慮當(dāng)前應(yīng)用程序、虛擬機(jī)或操作系統(tǒng) 任務(wù)的優(yōu)先級(jí)。相反,某些努力集中在資源分割(partitioning)上以便對(duì) 所有應(yīng)用程序提供服務(wù)質(zhì)量。然而,不考慮優(yōu)先級(jí)或功耗的分割可能引起不利的性能和功率使用。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種裝置,包括 多個(gè)處理元件的第一處理元件,將與多個(gè)軟件實(shí)體的第一軟件實(shí) 體相關(guān)耳關(guān);以及
優(yōu)先級(jí)了解管理邏輯,接收所述第一軟件實(shí)體的優(yōu)先等級(jí),并才艮 據(jù)所述第一軟件實(shí)體的所述優(yōu)先等級(jí)來修改所述第一處理元件的操作 點(diǎn)。
根據(jù)本發(fā)明的第二方面,提供了一種裝置,包括 處理器,包括
第一處理元件,將與第一軟件實(shí)體相關(guān)聯(lián); 第二處理元件,將與第二軟件實(shí)體相關(guān)聯(lián);
存儲(chǔ)元件,保存與所述第 一軟件實(shí)體相關(guān)聯(lián)的第一優(yōu)先等級(jí)以及 與所述第二軟件實(shí)體相關(guān)聯(lián)的第二優(yōu)先等級(jí),其中,所述第一優(yōu)先等 級(jí)高于所述第二優(yōu)先等級(jí);以及
優(yōu)先級(jí)了解管理器,根據(jù)所述第一優(yōu)先等級(jí)高于所述第二優(yōu)先等 級(jí),將所述第一處理元件的第一操作點(diǎn)設(shè)置成比所述第二處理元件的 第二操作點(diǎn)更高的操作點(diǎn)。
根據(jù)本發(fā)明的第三方面,提供了一種裝置,包括
優(yōu)先級(jí)使用邏輯,指示與第一優(yōu)先等級(jí)相關(guān)聯(lián)的資源的使用情況 以及與第二優(yōu)先等級(jí)相關(guān)聯(lián)的所述資源的使用情況,其中,所述第一 優(yōu)先等級(jí)低于所述第二優(yōu)先等級(jí);以及
優(yōu)先級(jí)了解管理邏輯,耦合到所述優(yōu)先級(jí)使用邏輯,以便響應(yīng)與 第 一優(yōu)先等級(jí)相關(guān)聯(lián)的所述資源的使用超過預(yù)定使用量,而降低將與 所述第 一優(yōu)先等級(jí)的軟件實(shí)體相關(guān)聯(lián)的第 一處理元件的操作點(diǎn)。
附圖中的各圖以舉例而不是限制的方式來說明本發(fā)明。
圖1圖解說明多處理元件的一實(shí)施例,包括根據(jù)關(guān)聯(lián)應(yīng)用程序優(yōu)
先級(jí)來設(shè)置處理元件的操作點(diǎn)(operatingpoint)的優(yōu)先級(jí)管理器。
圖2a圖解說明能夠修改處理元件的速率和共享資源的分配的功
率/性能邏輯的一實(shí)施例。
圖2b圖解說明能夠修改處理元件的速率和高速緩沖存儲(chǔ)器的分
配的功率/性能邏輯的 一 實(shí)施例。
圖3圖解說明能夠修改處理元件的速率和存儲(chǔ)器帶寬的分配的功 率/性能邏輯的一實(shí)施例。
具體實(shí)施例方式
在以下描述中,闡述大量具體細(xì)節(jié),例如具體資源、跟蹤資源的 使用情況的具體邏輯、應(yīng)用程序優(yōu)先級(jí)的具體通信等的實(shí)例,以便提 供對(duì)本發(fā)明的充分理解。然而,本領(lǐng)域的技術(shù)人員會(huì)清楚,這些具體 細(xì)節(jié)不一定要用于實(shí)施本發(fā)明。在其它情況下,沒有詳細(xì)描述諸如微 處理器體系結(jié)構(gòu)、虛擬機(jī)監(jiān)控器(monitor)/機(jī)器、功率/時(shí)鐘選通(gating)/ 調(diào)制以及已知邏輯的具體操作細(xì)節(jié)之類的公知組件或方法,以免不必 要地影響對(duì)本發(fā)明的理解。
本文所述的方法和裝置用于根據(jù)與處理元件相關(guān)聯(lián)的軟件實(shí)體的 優(yōu)先級(jí)來調(diào)節(jié)處理元件的功率和/或性能。具體來說,主要對(duì)于虛擬化 環(huán)境中的多個(gè)核心來討論基于優(yōu)先級(jí)的調(diào)節(jié)。但是,基于優(yōu)先級(jí)的調(diào) 節(jié)的方法和裝置不受此限制,因?yàn)樗鼈兛稍谥T如蜂窩電話、個(gè)人數(shù)字 助理、嵌入式控制器、移動(dòng)平臺(tái)、臺(tái)式平臺(tái)和服務(wù)器平臺(tái)之類的任何 集成電路器件或系統(tǒng)上或者與其關(guān)聯(lián)地實(shí)現(xiàn),以及結(jié)合諸如核心、硬 件線程(hardthread)、軟件線程或邏輯處理器或者其它處理資源之類的 任何類型的處理元件來實(shí)現(xiàn)。另外,基于優(yōu)先級(jí)的調(diào)節(jié)可在諸如傳統(tǒng)行。
參照?qǐng)D1,示出能夠根據(jù)與處理元件相關(guān)聯(lián)的軟件實(shí)體的優(yōu)先級(jí)
來調(diào)節(jié)處理元件的處理器的一實(shí)施例。硬件120包括處理器125、集 線器(hub)150和存儲(chǔ)器160。集線器125包括用于處理器121與存儲(chǔ)器 130之間的通信的任何設(shè)備,例如存儲(chǔ)器控制器集線器或芯片組。注 意,集線器125可以集成在處理器121或存儲(chǔ)器130中。存儲(chǔ)器160 可以專用于處理器125或者與系統(tǒng)中的其它設(shè)備共享。存儲(chǔ)器160的 實(shí)例包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)RAM(SRAM)、非易失 性存儲(chǔ)器(NV存儲(chǔ)器)和長期存儲(chǔ)裝置。
處理器125通常包括通過互連(interconnect)來發(fā)送和接收總線信 號(hào)的輸入/輸出(1/0)緩沖器?;ミB的實(shí)例包括射電收發(fā)邏輯(gunning transceiver logic)(GTL)總線、GTL+總線、雙倍數(shù)據(jù)速率(DDR)總線、 并發(fā)總線(pumpedbus)、差分總線、高速H存一致性總線(cache coherent bus)、點(diǎn)對(duì)點(diǎn)總線、多支路總線(multi-dropbus)或者實(shí)現(xiàn)任何已知總線 協(xié)議的其它已知互連。
處理器125包括多個(gè)處理元件、如處理元件130-133。處理元件表 示線程、進(jìn)程、上下文、邏輯處理器、硬件線程、核心和/或共享對(duì)處 理器中的諸如保留(reservation)單元、執(zhí)行單元和高級(jí)高速緩存/存儲(chǔ)器 之類的其它共享資源的訪問(access)的任何處理元件。處理元件又可稱 作線程單元,即能夠使指令被獨(dú)立調(diào)度來供軟件線程執(zhí)行的元件。物 理處理器通常表示集成電路,它可能包括任何數(shù)量的其它處理元件、 如核心或硬件線程。
核心通常表示設(shè)置在集成電路上的能夠保持獨(dú)立體系結(jié)構(gòu)狀態(tài)的 邏輯,其中,各獨(dú)立保持的體系結(jié)構(gòu)狀態(tài)與至少一些專用執(zhí)行資源相 關(guān)聯(lián)。與核心相比,硬件線程通常表示設(shè)置在集成電路上的能夠保持 獨(dú)立體系結(jié)構(gòu)狀態(tài)的任何邏輯,其中,獨(dú)立保持的體系結(jié)構(gòu)狀態(tài)共享 對(duì)執(zhí)行資源的訪問。
可以看到,當(dāng)某些處理資源^皮共享而其它處理資源專用于體系結(jié)構(gòu)狀態(tài)時(shí),硬件線程與核心的命名(nomenclature)之間的界限重疊。核 心和硬件線程又通常由操作系統(tǒng)或管理軟件看作是單獨(dú)的邏輯處理 器,其中軟件能夠單獨(dú)調(diào)度各邏輯處理器上的操作。換言之,軟件將 物理處理器上的兩個(gè)核心或線程看作是兩個(gè)獨(dú)立的處理器。另外,各 核心可能包括用于執(zhí)行多個(gè)軟件線程的多個(gè)硬件線程。因此,處理元 件包括能夠保存上下文的上述資源(例如核心、線程、硬件線程或其它 元件)的任一個(gè)。
管理程序110將提供例如虛擬機(jī)(VM)105-107等軟件與例如硬件 120等硬件之間的接口。管理程序通常對(duì)硬件120進(jìn)行抽象,以便允 許多個(gè)虛擬機(jī)和/或客戶(guest)應(yīng)用程序在硬件120上獨(dú)立運(yùn)行。虛擬 機(jī)105-107可以是操作系統(tǒng)、應(yīng)用程序、客戶軟件或者要在硬件120 上執(zhí)行的其它軟件。雖然示出虛擬化環(huán)境,但是,硬件120可存在于 其它固件和軟件環(huán)境中,例如在硬件120上執(zhí)行的傳統(tǒng)操作系統(tǒng)。因 此,任何任務(wù)、軟件程序、應(yīng)用程序、用戶級(jí)應(yīng)用程序、客戶軟件、 操作系統(tǒng)、虛擬機(jī)、虛擬機(jī)監(jiān)控器、或者能夠被分配優(yōu)先級(jí)的其它可 執(zhí)行代碼稱作軟件實(shí)體。
在一個(gè)實(shí)施例中,處理元件(PE)130-133與軟件實(shí)體相關(guān)聯(lián)。作為 第一個(gè)實(shí)例,將軟件實(shí)體、如管理程序110和虛擬機(jī)105-108直接分 配給PE 130-133,或者PE 130-133專用于執(zhí)行管理程序110和虛擬枳i 105-108。作為另一個(gè)實(shí)例,軟件實(shí)體只通過由PE 130-133執(zhí)行軟件實(shí) 體的代碼/任務(wù)來與PE 130-133相關(guān)聯(lián)。如上所述,處理元件125的實(shí) 例包括核心、線程、上下文、邏輯處理器以及它們的組合。
在一個(gè)實(shí)施例中,根據(jù)與處理元件130相關(guān)聯(lián)的軟件實(shí)體的優(yōu)先 等級(jí)(priority level)來設(shè)置處理元件、如處理元件130的纟乘作點(diǎn)。處理 元件的操作點(diǎn)表示處理元件的速率/功率等級(jí)、可用于處理元件的資源 的分配/性能等級(jí)或者它們的組合。作為一個(gè)實(shí)例,通過^f務(wù)改諸如時(shí)鐘、 頻率、電壓或功率之類的資源來改變處理元件的速率,以改變處理元 件的操作點(diǎn)。這些不同的功率和頻率狀態(tài)通常稱作P狀態(tài)或T狀態(tài),它們是操作點(diǎn)的解釋性實(shí)例。另外,可對(duì)于不同的操作點(diǎn)來改變其它
速率機(jī)制、如指令發(fā)出(issue)和存儲(chǔ)器訪問(access)發(fā)出的速率。
作為另一個(gè)實(shí)例,通過修改諸如存儲(chǔ)器、存儲(chǔ)器帶寬、高速緩存、 取硬件(fetchhardware)、解碼硬件、無序硬件、保留硬件以及處理元件 所使用的其它任何邏輯/硬件之類的共享資源的分配,來改變處理元件 的^^喿作點(diǎn)。因此,處理元件的操作點(diǎn)包括處理元件的速率以及處理元 件可用的共享資源的分配的任何組合。換言之,操作點(diǎn)可包括諸如高 速緩存等共享資源的分配/性能以及處理元件的速率等級(jí)、如電壓和頻 率。
為了進(jìn)行說明"叚定處理元件130的第一操作點(diǎn)包括全功率/電壓、 全時(shí)鐘/頻率、對(duì)共享高速緩存的全部路(way)的訪問以及未禁止的用于 訪問存儲(chǔ)器的令牌/信用,而處理元件130的第二操作點(diǎn)包括降低的電 壓/功率、降低的時(shí)鐘頻率、僅對(duì)共享高速緩存的一部分的訪問以及禁
止的用于訪問存儲(chǔ)器的令牌/信用。雖然這個(gè)實(shí)例完全是解釋性的,但 它表明操作點(diǎn)可包括指定等級(jí)的資源的任何組合。
優(yōu)先級(jí)了解管理器(priority aware manager"40將接收與處理元件 130相關(guān)聯(lián)的軟件實(shí)體的優(yōu)先等級(jí),并且將根據(jù)該優(yōu)先等級(jí)來修改處 理元件130的操作點(diǎn)。在一個(gè)實(shí)施例中,優(yōu)先級(jí)了解管理器140將根 據(jù)優(yōu)先等級(jí)來確定處理元件130的操作點(diǎn)。例如,假定虛擬機(jī)(VM)105 是將在后臺(tái)運(yùn)行的、被分配了低優(yōu)先級(jí)的病毒掃描軟件,并且將使用 PE 130來執(zhí)行VM 105。在這里,VM 105的優(yōu)先級(jí)存儲(chǔ)在優(yōu)先級(jí)存儲(chǔ) 元件135中,以指示VM 105的優(yōu)先等級(jí)。或者,當(dāng)PE 130承擔(dān)執(zhí)行 VM 105的任務(wù)時(shí),PE 130的優(yōu)先等級(jí)可保存在優(yōu)先級(jí)元件135中。 根據(jù)與PE 130相關(guān)聯(lián)的VM 105的低優(yōu)先級(jí),管理器140將PE 130 的操作點(diǎn)修改為低操作點(diǎn)。如上所述,較低操作點(diǎn)可包括PE130的諸 如較低電壓、較低頻率或較低功率之類的較低速率以及諸如對(duì)高速緩 存的減少數(shù)量的路的訪問之類的對(duì)共享資源的減少的訪問這兩者的組 合。'為了進(jìn)一步說明該實(shí)例,假定管理程序110是為了在PE133上執(zhí) 行而調(diào)度的高優(yōu)先級(jí)應(yīng)用程序。根據(jù)優(yōu)先級(jí)元件135中為管理程序110 和PE 133所保存的高優(yōu)先級(jí),管理器140將PE 133的操作點(diǎn)設(shè)置成 比PE 130的操作點(diǎn)更高的操作點(diǎn),例如更高的電壓、更高的頻率和/ 或?qū)蚕碣Y源增加的訪問。下面參照?qǐng)D2和圖3來討i侖操作點(diǎn)的其它
實(shí)例、如高速緩存和存儲(chǔ)器帶寬等級(jí)的分配。操作點(diǎn)可通過用于改變 資源或修改對(duì)共享資源的訪問的任何已知方法來設(shè)置或修改。例如, 電壓可通過電路或選通來降低,而時(shí)鐘可經(jīng)過調(diào)制、倍增(multiplied)、 劃分(divided)、選通或抑制。
注意,上文中參考了高和低優(yōu)先級(jí)。但是,可使用優(yōu)先級(jí)的任何 等級(jí)或者任何數(shù)量的等級(jí)。例如,可存在少至兩個(gè)優(yōu)先等級(jí)或者多達(dá) 與軟件實(shí)體相同數(shù)量的優(yōu)先等級(jí)。作為一個(gè)解釋性實(shí)例,假定對(duì)于圖
1存在四個(gè)優(yōu)先等級(jí),其中管理程序110為優(yōu)先等級(jí)一、即最高優(yōu)先 等級(jí),VM 105為最低優(yōu)先等級(jí)四,VM 106為優(yōu)先等級(jí)二,以及VM 107
為優(yōu)先等級(jí)三。在序號(hào)_及律師備審案件目錄號(hào)(attorney docket
number) 42.P24869的同時(shí)待審的申請(qǐng)中更詳細(xì)地討i侖了軟件優(yōu)先級(jí)到 硬件的通信。
在另一個(gè)實(shí)施例中,軟件實(shí)體確定其它軟件實(shí)體的優(yōu)先等級(jí),并 對(duì)與所述其它軟件實(shí)體相關(guān)聯(lián)的處理元件分配操作點(diǎn)。例如,可以是 虛擬機(jī)監(jiān)控器(VMM)的管理程序110既為處理元件130上的低優(yōu)先級(jí) VM 105調(diào)度指令,又確定處理元件130將被修改/設(shè)置到低操作點(diǎn)。 在這里,處理元件130的所選操作點(diǎn)由VMM 110寫入優(yōu)先級(jí)元件135, 優(yōu)先級(jí)元件135也可設(shè)置在PE 130的體系結(jié)構(gòu)狀態(tài)寄存器中。然后, 管理器140通過修改適當(dāng)?shù)墓β实燃?jí)、頻率等級(jí)或資源分配等級(jí),來 增強(qiáng)操作點(diǎn)。雖然在這個(gè)實(shí)例中將VMM描述為判定優(yōu)先級(jí)和才乘作點(diǎn) 的軟件實(shí)體,但是,任何軟件實(shí)體、如操作系統(tǒng)或?qū)S么a都可確定 優(yōu)先等級(jí)和/或操作點(diǎn)。
除了根據(jù)優(yōu)先等級(jí)來確定操作點(diǎn)之外,管理器140還可能根據(jù)資源使用情況來確定操作點(diǎn)。如上所述,在一個(gè)實(shí)施例中,管理器140 能夠控制處理元件的速率以及對(duì)處理元件的硬件資源分配。因此,管 理器140的策略可能不僅考慮軟件實(shí)體優(yōu)先等級(jí),而且還考慮軟件實(shí)
體對(duì)其它優(yōu)先級(jí)的軟件實(shí)體的影響。作為一個(gè)實(shí)例,如果VM105、即 病毒掃描軟件沒有影響管理程序110或其它高優(yōu)先級(jí)應(yīng)用程序,即沒 有使用過多的資源145、例如功率、頻率、高速緩存、存儲(chǔ)器或其它 資源,則功率管理器140可確定不減小PE130的操作點(diǎn)。相反,如果 包括VM 105的優(yōu)先等級(jí)正使用過多的資源145,則功率管理器140 可根據(jù)VM 105的優(yōu)先等級(jí)以及資源145的使用情況來減小PE 130的 操作點(diǎn)。
因此,功率/性能管理器140可包括集中或分布的任何量的邏輯, 以便確定軟件實(shí)體/處理元件的優(yōu)先級(jí)、確定處理元件的速率、確定資 源的性能、設(shè)置處理元件的速率、設(shè)置資源的性能分配、實(shí)現(xiàn)功率/性 能管理策略或者它們的組合。
在一個(gè)實(shí)施例中,資源145包括指示與優(yōu)先等級(jí)相關(guān)聯(lián)的資源145 的使用情況的優(yōu)先級(jí)使用邏輯。因此,如果較低優(yōu)先等級(jí)正使用過多 的資源145、即超過資源145的預(yù)定量,則該使用邏輯將向管理器140 指示過度使用。作為第一個(gè)實(shí)例,使用邏輯向管理器140指示PE130 正使用處理器125的多少功率預(yù)算。如果那個(gè)功率量超過閾值、如 20%,則功率管理器邏輯140確定P是否將修改PE130的操作點(diǎn)。由 于VM105是低優(yōu)先級(jí)應(yīng)用程序,所以,如果確定PE 130的功庫毛正影 響其它較高優(yōu)先級(jí)的軟件實(shí)體,則管理器140可通過任何數(shù)量的上述 速率控制或性能控制機(jī)制來減小PE 130的操作點(diǎn)。速率控制機(jī)制的其 它實(shí)例包括頻率縮放、時(shí)鐘調(diào)制、時(shí)鐘抑制、指令發(fā)出調(diào)節(jié)、存儲(chǔ)器 發(fā)出調(diào)節(jié)或者其它基于源的速率調(diào)制技術(shù)。
使用邏輯的另一個(gè)實(shí)例包括存儲(chǔ)器帶寬邏輯151。如圖所示,邏 輯151設(shè)置在集線器150中,以便跟蹤與優(yōu)先等級(jí)相關(guān)聯(lián)的存儲(chǔ)器互 連上的業(yè)務(wù)。在這里,如果過多的存儲(chǔ)器帶寬被低優(yōu)先等級(jí)使用,則管理器140可減小對(duì)與那個(gè)較低優(yōu)先等級(jí)相關(guān)聯(lián)的處理元件、如處理
元件130的帶寬分配。雖然在集線器150中示出,但是,邏輯151可 存在于硬件120中的任何位置。
來看圖2a,示出能夠控制處理元件速率和共享資源分配的功率/ 性能邏輯的一實(shí)施例。在這里,速率控制模塊255將修改處理元件 (PE)251-254的速率。例如,在最高操作點(diǎn)上,將PE 251設(shè)置到最高 電壓、功率、頻率、時(shí)鐘、指令發(fā)出容量以及存儲(chǔ)器訪問容量。但是, 在將操作點(diǎn)修改成較低操作點(diǎn)時(shí),可減少上述基于速率的機(jī)制的一個(gè)
或多個(gè)。例如,可抑制PE 251的時(shí)鐘周期。注意,改變PE 251-254 中的一個(gè)PE的資源可影響其它PE。在傳統(tǒng)上,^^共電壓干線用于PE 251-254;但是,可提供單獨(dú)的電力干線,以便允許獨(dú)立調(diào)制電壓,從 而控制單個(gè)PE的速率而不影響其它PE。
除了基于速率的機(jī)制之外,功率/性能管理器275還可修改共享資 源260的分配,以便確保較高優(yōu)先級(jí)軟件實(shí)體的足夠資源容量。在這 里,監(jiān)控器265將跟蹤不同優(yōu)先等級(jí)對(duì)共享資源260的使用情況。如 果低優(yōu)先級(jí)正使用過多共享資源260,即影響其它較高優(yōu)先等級(jí),則 管理器275可使用速率控制255來減小源、即與低優(yōu)先等級(jí)關(guān)聯(lián)的PE 對(duì)共享資源260的使用。相反,管理器275可使用分配邏輯270將共 享資源260的分配修改成低優(yōu)先級(jí)。
為了進(jìn)行說明,假定PE 251與低優(yōu)先級(jí)軟件實(shí)體相關(guān)聯(lián),而PE 252與較高優(yōu)先級(jí)軟件實(shí)體相關(guān)聯(lián)。在一個(gè)實(shí)施例中,缺省情況下將 PE251設(shè)置成較低操作點(diǎn)以節(jié)省功率。例如,管理器275使用速率控 制255來降低PE251的電壓和頻率,以便節(jié)省功率。在另一個(gè)實(shí)施例 中,在由監(jiān)控器265檢測到較低優(yōu)先等級(jí)正影響較高優(yōu)先等級(jí)的性能 之前,允許PE251正常工作。在這里,監(jiān)控器265確定較低優(yōu)先等級(jí) 正使用過多的共享資源260。因此,管理器275將與較低優(yōu)先級(jí)軟件 實(shí)體相關(guān)聯(lián)的PE251設(shè)置到較低操作點(diǎn)。
從以上所述注意到,管理器275可實(shí)現(xiàn)用于降低操作點(diǎn)的任何策略。例如,管理器275可使用諸如電壓和頻率之類的速率控制機(jī)制以 及諸如分配邏輯270之類的分配機(jī)構(gòu)來確保PE251只能使用共享資源 260的一部分。換言之,確保較高優(yōu)先等級(jí)使用共享資源260的至少 一部分。共享資源260包括由諸如高速緩存、存儲(chǔ)器、存儲(chǔ)器訪問機(jī) 構(gòu)或者其它已知的共享硬件、固件或軟件之類的一個(gè)以上處理元件共 享的任何資源。
來看圖2b,圖解說明能夠修改處理元件的速率和高速緩沖存儲(chǔ)器 的分配的功率/性能邏輯的一實(shí)施例。高速緩存200可通過任何方式來 組織,例如直接映射高速緩存、全關(guān)聯(lián)(flilly associated)高速緩存或組 關(guān)聯(lián)(setassociative)高速緩存。如圖所示,高速緩存200是具有K路、 即四路205-208的組關(guān)聯(lián)高速緩存。組201包括各個(gè)路中相同的偏移 位置。在這里,額外字段210-216與高速緩存200的各組相關(guān)聯(lián),以 便指示與對(duì)應(yīng)組中的位置相關(guān)聯(lián)的優(yōu)先等級(jí)。注意,額外字段可用于
跟蹤任何條目(entry)(例如位置、路、組或其它配置)中的優(yōu)先等級(jí)。
在一個(gè)實(shí)施例中,當(dāng)引入與第一優(yōu)先等級(jí)相關(guān)聯(lián)的高速緩存線高 速緩存200時(shí),計(jì)數(shù)器220則遞增第 一優(yōu)先等級(jí)的計(jì)數(shù),而當(dāng)逐出(evict) 與第一優(yōu)先等級(jí)相關(guān)聯(lián)的高速緩存線時(shí),則遞減該計(jì)數(shù)。因此,跟蹤 與第一優(yōu)先等級(jí)相關(guān)聯(lián)的第一數(shù)量的條目。以類似方式,可對(duì)于多個(gè) 優(yōu)先等級(jí)來跟蹤高速緩存200的使用情況。根據(jù)由計(jì)數(shù)器220所跟蹤 的不同優(yōu)先級(jí)的使用情況等級(jí),管理器230確定該優(yōu)先等級(jí)、即與該 優(yōu)先等級(jí)上的軟件實(shí)體相關(guān)聯(lián)的處理元件的操作點(diǎn)。
如前面所述,可減小源元件、如與較低優(yōu)先級(jí)高速緩存線相關(guān)聯(lián) 的處理元件的速率,來降低源元件使用高速緩存200的速率。單獨(dú)地 或者加上速率控制,管理器230可修改高速緩存200的分配策略。在 這里,允許與掩碼(mask)240相關(guān)聯(lián)的優(yōu)先等級(jí)訪問高速緩存200的若 干部分、即一些路,如掩碼240所示。例如,假定低優(yōu)先等級(jí)正使用 高速緩存200的75%,它正影響正使用高速緩存的25。/。的高優(yōu)先等級(jí) 的軟件實(shí)體。管理器230將掩碼240設(shè)置為二進(jìn)制1000,它表示與較低優(yōu)先等 級(jí)相關(guān)聯(lián)的處理元件只可訪問高速緩存200的路205?;蛘?,可保持 或增加較高優(yōu)先等級(jí)的操作點(diǎn)。作為一個(gè)實(shí)例,掩碼240可設(shè)置為 1111,它表示與4^高優(yōu)先級(jí)軟件實(shí)體相關(guān)聯(lián)的處理元件可訪問高速鄉(xiāng)爰 存200的所有路。因此,較低優(yōu)先等級(jí)僅被允許訪問高速緩存200的 一路,從而確保受影響的優(yōu)先等級(jí)可以不受干擾地訪問高速緩存200 的至少三路。在這個(gè)實(shí)例中,通過將掩碼用于各優(yōu)先等級(jí)來執(zhí)行分配。 但是,任何分配策略和邏輯可用于根據(jù)優(yōu)先級(jí)來專用于、限制或約束
高速緩存的一部分。在序號(hào)_及律師備審案件目錄號(hào)(attomey
docket number) 42.P24235的同時(shí)待審的申請(qǐng)中也更詳細(xì)地討論了跟蹤 高速緩存的優(yōu)先級(jí)使用情況。
然后參照?qǐng)D3,圖解說明能夠修改處理元件的速率以及對(duì)設(shè)備、 如存儲(chǔ)器的訪問的分配的功率/性能邏輯的 一 實(shí)施例。與高速緩沖存儲(chǔ) 器相似,單獨(dú)地或加上速率控制,管理器330還可修改對(duì)不同操作點(diǎn) 中的共享設(shè)備的訪問策略。在這里,處理元件306-309使用環(huán)優(yōu)先級(jí) (ringpriority)來訪問存儲(chǔ)器340,并且分配邏輯315能夠?yàn)榕c不同優(yōu)先 等級(jí)相關(guān)聯(lián)的存儲(chǔ)器訪問分配不同的帶寬量。雖然圖解說明了環(huán)訪問 形式,但是,可對(duì)于串行互連等以相似方式來進(jìn)行訪問的跟蹤和分配。
在一個(gè)實(shí)施例中,信用或控制優(yōu)先級(jí)隊(duì)列用于訪問存儲(chǔ)器340。 處理元件、如元件306請(qǐng)求對(duì)存儲(chǔ)器的訪問。將訪問請(qǐng)求排隊(duì),因此, 向處理元件306發(fā)出用于訪問存儲(chǔ)器的信用/令牌。作為一個(gè)實(shí)例,監(jiān) 控器325包括與信用隊(duì)列相關(guān)聯(lián)的字段,它們可用來跟蹤與存儲(chǔ)器訪 問請(qǐng)求相關(guān)聯(lián)的優(yōu)先等級(jí)和/或處理元件。因此,如前面圖2所示,可 通過與優(yōu)先等級(jí)相關(guān)聯(lián)的所請(qǐng)求的信用數(shù)量來跟蹤對(duì)較高等級(jí)高速緩 存的未命中和/或?qū)Υ鎯?chǔ)器的訪問的次數(shù)。
作為另一個(gè)實(shí)例,帶寬監(jiān)控器325包括將與各優(yōu)先等級(jí)相關(guān)聯(lián)的 計(jì)數(shù)器。對(duì)于來自特定優(yōu)先等級(jí)的每一個(gè)訪問,遞增關(guān)聯(lián)的計(jì)數(shù)器。 對(duì)于預(yù)定時(shí)間量,如果計(jì)數(shù)器達(dá)到關(guān)聯(lián)的優(yōu)先等級(jí)的闊值,則通知管理器330。用于跟蹤存儲(chǔ)器帶寬、使用情況或訪問的其它任何已知邏
輯可用在帶寬監(jiān)控器325中。
當(dāng)管理器330收到關(guān)于較低優(yōu)先等級(jí)正使用過多存儲(chǔ)器帶寬的通 知時(shí),它則可修改PE 306-309的速率和/或相應(yīng)地修改對(duì)PE 306-309 分配的帶寬。例如,性能管理器330和分配邏輯315偏置(bias)信用或 控制優(yōu)先級(jí)隊(duì)列,以便對(duì)與較低優(yōu)先等級(jí)相關(guān)聯(lián)的處理元件、如處理 元件306允許較少信用/令牌。另外還可改變PE 306的速率,例如通 過減少每個(gè)周期發(fā)出的指令數(shù)量或者降低PE306的頻率,來減少在源 上請(qǐng)求的存儲(chǔ)器訪問的量。
以上闡述的方法、軟件、固件或代碼的實(shí)施例可通過機(jī)器可訪問 或機(jī)器可讀介質(zhì)中存儲(chǔ)的、處理元件可執(zhí)行的指令或代碼來實(shí)現(xiàn)。機(jī) 器可訪問/可讀介質(zhì)包括以機(jī)器、如計(jì)算機(jī)或電子系統(tǒng)可讀的形式提供 (即存儲(chǔ)和/或發(fā)送)信息的任何機(jī)構(gòu)。例如,機(jī)器可訪問介質(zhì)包"fe:隨 機(jī)存取存儲(chǔ)器(RAM),例如靜態(tài)RAM(SRAM)或動(dòng)態(tài)RAM(DRAM); ROM;磁或光存儲(chǔ)介質(zhì);閃速存儲(chǔ)設(shè)備;電、光、聲或其它形式的傳 播信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào))等等。
本說明書中提到"一個(gè)實(shí)施例"或"一實(shí)施例"表示結(jié)合該實(shí)施 例描述的具體特征、結(jié)構(gòu)或特性包含在本發(fā)明的至少 一個(gè)實(shí)施例中。 因此,在本說明書的各個(gè)位置中出現(xiàn)的詞組"在一個(gè)實(shí)施例中"或"在 一實(shí)施例中"不一定都表示同一個(gè)實(shí)施例。此外,具體特征、結(jié)構(gòu)或 特性可通過任何適當(dāng)方式在一個(gè)或多個(gè)實(shí)施例中結(jié)合。
在以上說明書中,參照具體示范性實(shí)施例提供了詳細(xì)描述。但是 很顯然,可在不背離所附權(quán)利要求書闡述的本發(fā)明的廣義精神和范圍 的前提下,對(duì)本發(fā)明進(jìn)行各種修改和改變。因此,說明書和附圖要被 視為是解釋性的而非限制性的。此外,實(shí)施例及其它示范性語言的前 述使用不 一 定表示相同的實(shí)施例或者相同的實(shí)例,而是可能表示不同 的且有區(qū)別的實(shí)施例,也可能表示相同的實(shí)施例。
權(quán)利要求
1. 一種裝置,包括多個(gè)處理元件的第一處理元件,將與多個(gè)軟件實(shí)體的第一軟件實(shí)體相關(guān)聯(lián);以及優(yōu)先級(jí)了解管理邏輯,接收所述第一軟件實(shí)體的優(yōu)先等級(jí),并根據(jù)所述第一軟件實(shí)體的所述優(yōu)先等級(jí)來修改所述第一處理元件的操作點(diǎn)。
2. 如權(quán)利要求l所述的裝置,其中,所述第一和第二處理元件的 每一個(gè)/人包括核心、線程和上下文的組中選取。
3. 如權(quán)利要求l所述的裝置,其中,修改所述第一處理元件的操 作點(diǎn)的優(yōu)先級(jí)了解管理邏輯包括修改所述第一處理元件的速率的速率 控制邏輯。
4. 如權(quán)利要求3所述的裝置,其中,修改所述第一處理元件的操 作點(diǎn)的優(yōu)先級(jí)了解管理邏輯包括修改對(duì)所述第 一處理元件的共享資源 分配的分配控制邏輯。
5. 如權(quán)利要求l所述的裝置,其中,修改所述第一處理元件的操: 作點(diǎn)的步驟包括修改所述第 一處理元件的電壓電平。
6. 如權(quán)利要求l所述的裝置,其中,修改所述第一處理元件的操 作點(diǎn)的步驟包括調(diào)制與所述第 一處理元件相關(guān)聯(lián)的時(shí)鐘。
7. 如權(quán)利要求l所述的裝置,其中,修改所述第一處理元件的才喿 作點(diǎn)的步驟包括修改所述第 一處理元件的頻率。
8. 如權(quán)利要求l所述的裝置,其中,修改所述第一處理元件的操 作點(diǎn)的步驟包括修改所述第 一處理元件的存儲(chǔ)器訪問速率。
9. 如權(quán)利要求l所述的裝置,其中,修改所述第一處理元件的操 作點(diǎn)的步驟包括修改所述第 一處理元件的指令發(fā)出速率。
10. 如權(quán)利要求1所述的裝置,其中,修改所述第一處理元件的 操作點(diǎn)的步驟包括修改與所述第 一處理元件相關(guān)聯(lián)的資源的使用量。
11. 如權(quán)利要求10所述的裝置,其中,所述資源是高速緩沖存儲(chǔ) 器,以及修改所述資源的使用量的步驟包括修改所述第 一處理元件可 訪問的高速緩沖存儲(chǔ)器的量。
12. 如權(quán)利要求10所述的裝置,其中,所述資源是存儲(chǔ)器,以及 修改所述資源的使用量的步驟包括修改對(duì)所述存儲(chǔ)器的訪問的量。
13. 如權(quán)利要求1所述的裝置,其中,所述第一軟件實(shí)體^Mv包括操作系統(tǒng)、虛擬機(jī)監(jiān)控器(VMM)、虛擬機(jī)(VM)、用戶級(jí)應(yīng)用程序和客 戶軟件的組中選取。
14. 一種裝置,包括 處理器,包括第一處理元件,將與第一軟件實(shí)體相關(guān)聯(lián); 第二處理元件,將與第二軟件實(shí)體相關(guān)聯(lián);存儲(chǔ)元件,保存與所述第一軟件實(shí)體相關(guān)聯(lián)的第一優(yōu)先等級(jí)以及 與所述第二軟件實(shí)體相關(guān)聯(lián)的第二優(yōu)先等級(jí),其中,所述第一優(yōu)先等 級(jí)高于所述第二優(yōu)先等級(jí);以及優(yōu)先級(jí)了解管理器,根據(jù)所述第一優(yōu)先等級(jí)高于所述第二優(yōu)先等 級(jí),將所述第一處理元件的第一操作點(diǎn)設(shè)置成比所述第二處理元件的 第二操作點(diǎn)更高的操作點(diǎn)。
15. 如權(quán)利要求14所述的裝置,其中,所述第一操作點(diǎn)包括處于 比所述第二操作點(diǎn)上的所述第二處理元件的速率更高的速率的所述第 一處理元件。
16. 如權(quán)利要求14所述的裝置,其中,所述第一和第二處理元件 是核心,以及所述第 一操作點(diǎn)包括比所述第二操作點(diǎn)的第二電壓和第 二頻率更高的第一電壓和第一頻率。
17. 如權(quán)利要求14所述的裝置,其中,所述第一處理元件的所述 第一操作點(diǎn)包括對(duì)高速緩沖存儲(chǔ)器的第一數(shù)量的路的訪問,以及所述 第二處理元件的所述第二操作點(diǎn)包括對(duì)所述高速緩沖存儲(chǔ)器的第二數(shù) 量的路的訪問,路的所述第 一數(shù)量大于路的所述第二數(shù)量。
18. —種裝置,包括優(yōu)先級(jí)使用邏輯,指示與第 一優(yōu)先等級(jí)相關(guān)聯(lián)的資源的使用情況 以及與第二優(yōu)先等級(jí)相關(guān)聯(lián)的所述資源的使用情況,其中,所述第一優(yōu)先等級(jí)低于所述第二優(yōu)先等級(jí);以及優(yōu)先級(jí)了解管理邏輯,耦合到所述優(yōu)先級(jí)使用邏輯,以便響應(yīng)與 第 一優(yōu)先等級(jí)相關(guān)聯(lián)的所述資源的使用超過預(yù)定使用量,而降低將與 所述笫 一優(yōu)先等級(jí)的軟件實(shí)體相關(guān)聯(lián)的第 一處理元件的操作點(diǎn)。
19. 如權(quán)利要求18所述的裝置,其中,所述第一處理元件的所述 第 一操作點(diǎn)包括所述第 一處理元件的第 一速率,以及所述第二處理元 件的所述第二操作點(diǎn)包括所述第二處理元件的第二速率,所述第 一速 率大于所述第二速率。
20. 如權(quán)利要求18所述的裝置,其中,所述第一處理元件的所述 第一操作點(diǎn)包括所述資源的第一分配量,以及所述第二處理元件的所 述第二操作點(diǎn)包括所述資源的第二分配量,所述第一分配量大于所述 第二分配量。
21. 如權(quán)利要求18所述的裝置,其中,所述第一處理元件的所述 第一操作點(diǎn)包括對(duì)高速緩沖存儲(chǔ)器的第一部分的訪問,以及所述第二 處理元件的所述第二操作點(diǎn)包括對(duì)所述高速緩沖存儲(chǔ)器的第二部分的 訪問,所述第一部分大于所述第二部分。
22. 如權(quán)利要求21所述的裝置,其中,所述優(yōu)先級(jí)使用邏輯包括 跟蹤邏輯,所述跟蹤邏輯跟蹤與所述第一優(yōu)先等級(jí)相關(guān)聯(lián)的所述高速 緩沖存儲(chǔ)器中的第 一數(shù)量的條目以及與所述第二優(yōu)先等級(jí)相關(guān)聯(lián)的第 二數(shù)量的條目。
23. 如權(quán)利要求18所述的裝置,其中,所述第一處理元件的所述 第一操作點(diǎn)包括訪問存儲(chǔ)器的第一數(shù)量的信用,以及所述第二處理元 件的所述第二操作點(diǎn)包括訪問所述存儲(chǔ)器的第二數(shù)量的信用,信用的 所述第一數(shù)量大于信用的所述第二數(shù)量。
24. 如權(quán)利要求23所迷的裝置,其中,所迷優(yōu)先級(jí)使用邏輯包括跟蹤邏輯,所述跟蹤邏輯跟蹤對(duì)所述笫一處理元件發(fā)出的用于訪問所 述存儲(chǔ)器的第三數(shù)量的信用以及對(duì)所述第二處理元件發(fā)出的用于訪問 所述存儲(chǔ)器的第四數(shù)量的信用。
全文摘要
本發(fā)明的名稱是“功率/性能服務(wù)質(zhì)量的基于優(yōu)先級(jí)的調(diào)節(jié)”。本文描述了用于根據(jù)軟件實(shí)體的優(yōu)先級(jí)來調(diào)節(jié)處理元件的功率和/或性能的方法和裝置。優(yōu)先級(jí)了解功率管理邏輯接收軟件實(shí)體的優(yōu)先等級(jí),并相應(yīng)地修改與軟件實(shí)體相關(guān)聯(lián)的處理元件的操作點(diǎn)。因此,在節(jié)省功率模式中,將執(zhí)行低優(yōu)先級(jí)應(yīng)用程序/任務(wù)的處理元件降低到較低操作點(diǎn),即較低電壓、較低頻率、已調(diào)節(jié)指令發(fā)出、已調(diào)節(jié)存儲(chǔ)器訪問和/或?qū)蚕碣Y源的較少訪問。另外,使用邏輯可能跟蹤每個(gè)優(yōu)先等級(jí)的資源使用情況,這允許功率管理器從資源本身的觀點(diǎn)根據(jù)各優(yōu)先等級(jí)對(duì)彼此的影響來確定操作點(diǎn)。此外,軟件實(shí)體本身可分配操作點(diǎn),功率管理器對(duì)其進(jìn)行增強(qiáng)。
文檔編號(hào)G06F9/50GK101414269SQ20081009247
公開日2009年4月22日 申請(qǐng)日期2008年4月9日 優(yōu)先權(quán)日2007年4月9日
發(fā)明者D·K·紐厄爾, J·摩西, R·K·G·伊利卡爾, R·葉爾, T·福瑟姆 申請(qǐng)人:英特爾公司