專利名稱:控制聚合i/o端口的功率消耗的方法和系統(tǒng)的制作方法
控制聚合I/O端口的功率消耗的方法和系統(tǒng)
背景技術:
在大型數(shù)據(jù)中心的操作中,其包括每個耗散數(shù)百瓦功率的許多緊密封裝服務器計算機系統(tǒng),保持溫度是主要問題和支出。在許多情況下,用以控制數(shù)據(jù)中心內(nèi)的溫度的設備成本可能達到或超過服務器設備的成本。由于關于溫度的問題和成本以及要節(jié)能的壓力,計算機系統(tǒng)制造商實現(xiàn)了功率降低技術。大多數(shù)的功率降低技術已經(jīng)集中于服務器的處理器和存儲器。例如,在處理負載低時的時間段期間,可以在較低功率消耗模式下(例如,在降低的時鐘頻率下)操作服務器的一個或多個處理器。同樣地,在處理負載是或被預期很低時的時間段期間,主存儲器的各部分可以使其內(nèi)容被重新定位,并且將主存儲器的各部分斷電??梢赃M一步降低服務器的功率消耗的任何系統(tǒng)或技術將在市場中提供競爭優(yōu)勢。
為了示例性實施例的詳細描述,現(xiàn)在將對附圖進行參考,在所述附圖中
圖1示出了根據(jù)至少一些實施例的計算機系統(tǒng)。圖2示出了根據(jù)至少一些實施例的各組可執(zhí)行指令與I/O端口之間的功能關系;以及
圖3示出了根據(jù)至少一些實施例的方法。注釋和命名法
特定術語遍及以下描述和權利要求被用來指代特定系統(tǒng)部件。如本領域的技術人員將認識到的,計算機公司可以用不同的名稱來指代部件。本文并不意圖對在名稱而不是功能方面不同的部件之間進行區(qū)分。在以下討論中和權利要求中,以開放方式來使用術語“包括”和“包含”,并且因此應將其解釋為意指“包括但不限于”。并且,術語“耦合”或“耦合”意圖意指間接、直接、光學或無線電連接。因此,如果第一設備耦合到第二設備,則該連接可以是通過直接電連接、通過經(jīng)由其他設備和連接的間接電連接、通過光學連接或通過無線連接。“功率消耗模式”應指代一種設備的操作模式,其將上限設置為設備在被利用時可能消耗的功率的量,但是不應指代設備的利用狀態(tài)。例如,應將在“全開”功率消耗模式下操作的設備視為處于“全開”功率消耗模式,無論設備正在被其最大可能地利用(且正在吸取較高功率)還是設備根本并未被利用(和吸取較低功率)。換言之,不應將僅僅基于設備的利用率的變化的功率使用變化視為功率消耗模式的變化。“聚合”和“聚合”應意指相對于通信網(wǎng)絡的輸入/輸出(I/O)端口而言,該I/O端口表現(xiàn)為到軟件棧的單個邏輯I/O端口?!熬酆稀焙汀熬酆稀睉庵赶鄬τ诖鎯W(wǎng)絡的I/O端口而言,該I/o端口表示到存儲設備的冗余路徑。
具體實施例方式以下討論針對本發(fā)明的各種實施例。雖然這些實施例中的一個或多個可能是優(yōu)選的,但不應將公開的實施例解釋為或以其他方式用作限制本公開的范圍,包括權利要求。另外,本領域的技術人員將理解的是以下描述具有廣泛的應用,并且任何實施例的討論僅僅意圖是該實施例的示例,并且并不意圖暗示本公開的范圍(包括權利要求)局限于該實施例。圖1圖示出根據(jù)至少一些實施例的計算機系統(tǒng)100。特別地,計算機系統(tǒng)100包括通過集成主橋14被耦合到主存儲器陣列12和各種其他外圍計算機系統(tǒng)部件的主處理器10。計算機系統(tǒng)100可以實現(xiàn)多個主處理器10。主處理器10經(jīng)由主機總線16耦合到主橋14,或者可以將主橋14集成到主處理器10中。因此,除圖1中所示的那些或作為其替代,計算機系統(tǒng)100可以實現(xiàn)其他總線配置或總線橋。主存儲器12通過存儲器總線18耦合到主橋14。因此,主橋14包括通過維護(asserting)控制信號以用于存儲器訪問來控制到主存儲器12的事務處理的存儲器控制單元。在其他實施例中,主處理器10直接地實現(xiàn)存儲器控制單元,并且主存儲器12可以直接地耦合到主處理器10。主存儲器12充當用于主處理器10的工作存儲器,并且包括其中存儲程序、指令和數(shù)據(jù)的存儲器設備或存儲器設備陣列。主存儲器12可以包括任何適當類型的存儲器,諸如動態(tài)隨機存取存儲器(DRAM)或各種類型的DRAM設備中的任何一個,諸如同步 DRAM (SDRAM)、擴展數(shù)據(jù)輸出 DRAM (ED0DRAM)或蘭巴斯(Rambus) DRAM (RDRAM)0 主存儲器12是存儲程序和指令的非暫時性計算機可讀介質(zhì)的示例,并且其他示例是磁盤驅(qū)動器和閃速存儲器設備。在一些實施例中,由在處理器10上執(zhí)行的軟件生成的文本和視頻被提供給經(jīng)由高級圖形端口總線22、串行總線(PCI Express)或其他適當類型的總線耦合到主橋14的圖形處理單元(GPU)20。替換地,顯示驅(qū)動器設備可以耦合到主擴展總線26或輔助擴展總線(即,外圍部件互連(PCI)總線32)中的一個。圖形處理單元20耦合到的顯示設備24可以包括能夠在其上面表示任何圖像或文本的任何適當電子顯示設備。在其中計算機系統(tǒng)100是服務器系統(tǒng)(例如,在具有多個其他服務器系統(tǒng)的機架安裝外殼中)的實施例中,可以省略圖形處理單元20和顯示設備24。仍參考圖1,說明性計算機系統(tǒng)100還包括將主擴展總線26橋接至各種輔助擴展總線的第二橋接器28,所述輔助擴展總線諸如低管腳計數(shù)(LPC)總線30和外圍部件互連(PCI)總線32??梢杂芍T如通用串行總線(USB)的橋設備28來支持各種其他輔助擴展總線。然而,計算機系統(tǒng)100不限于任何特定的芯片組制造商,并且因此可以等價地使用來自多種制造商中的任何一個的橋設備和擴展總線協(xié)議。固件集線器34經(jīng)由LPC總線30耦合到橋設備28。固件集線器34包括包含可由主處理器10執(zhí)行的軟件程序的只讀存儲器(ROM)。該軟件程序包括在加電自我測試(POST)期間和剛好在其之后執(zhí)行的過程(procedure)以及存儲器參考代碼的程序。POST過程和存儲器參考代碼在計算機系統(tǒng)的控制被移交至操作系統(tǒng)之前執(zhí)行計算機系統(tǒng)內(nèi)的各種功能。計算機系統(tǒng)100還包括被說明性地耦合到PCI總線32的多個輸入/輸出(I/O)端口設備36。I/O端口設備36耦合到一個或多個網(wǎng)絡類型。例如,在特定實施例中,I/O端口設備36是網(wǎng)絡接口卡(NIC),其將計算機系統(tǒng)100耦合到通信網(wǎng)絡,諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和/或因特網(wǎng)。在又一其他實施例中,I/O端口設備是存儲適配器卡,其經(jīng)由存儲網(wǎng)絡(例如,光纖信道)將計算機系統(tǒng)100耦合到一個或多個遠程定位長期存儲設備(例如,硬盤、光盤)??梢缘葍r地使用其他類型的I/o端口設備。雖然圖1圖示出被耦合到同一 PCI總線32的I/O端口設備36,但在其他實施例中,I/O端口設備36可以耦合到不同的PCI總線,或者具有不同的通信協(xié)議的總線(例如,一個I/O端口卡被耦合到PCI總線且第二I/O端口設備被耦合到主擴展總線)。仍參考圖1,計算機系統(tǒng)100還可以包括經(jīng)由LPC總線30被耦合到橋接器28的超級I/o控制器38。超級I/O控制器38控制許多計算機系統(tǒng)功能,例如與諸如“軟”盤驅(qū)動器40和“軟”盤42、光盤驅(qū)動器44和光盤46、鍵盤48以及定點設備50 (例如鼠標)的各種輸入和輸出設備對接。超級I/O控制器38常常由于執(zhí)行許多計算機系統(tǒng)功能而被稱為“超級”。計算機系統(tǒng)100還可以包括長期數(shù)據(jù)存儲設備,諸如經(jīng)由說明性PCI總線32 (未示出總線適配器以免使圖過于復雜)耦合到橋接器28的磁盤驅(qū)動系統(tǒng)52。磁盤驅(qū)動系統(tǒng)52可以是單個驅(qū)動器或作為獨立(或廉價)磁盤(RAID)系統(tǒng)的冗余陣列操作的驅(qū)動器陣列。雖然說明性磁盤驅(qū)動系統(tǒng)52被示為被耦合到PCI總線24,但磁盤驅(qū)動系統(tǒng)可以等價地耦合至其他總線,諸如主擴展總線26或其他輔助擴展總線。每個I/O端口設備36實現(xiàn)至少一個通信端口,并且每個I/O端口設備36可以實現(xiàn)多個通信端口。例如,在采用NIC形式的I/O端口設備36的說明性情況下可以實現(xiàn)四個或八個通信端口,并且因此可以實現(xiàn)四個或八個單獨可控接口。作為另一示例,在采用存儲適配器卡形式的I/O端口設備36的說明性情況下,每個存儲適配器可以實現(xiàn)四個或八個通信端口,并且因此可以實現(xiàn)到遠程定位存儲器的四個或八個單獨可控接口。根據(jù)各種實施例,可以出于故障容忍度和/或增加通信吞吐量的目的將兩個或更多端口分組、分隊或聚合??梢栽谙嗤腎/O端口設備上實現(xiàn)聚合端口,或者端口可以跨越多個I/O端口設備。此外,計算機系統(tǒng)100可以實現(xiàn)多個聚合隊。圖2示出了根據(jù)至少一些實施例的被處理器10執(zhí)行以實現(xiàn)聚合的各種軟件的說明性關系。特別地,計算機系統(tǒng)實現(xiàn)了支持遠程通信的操作系統(tǒng)(0/S) 60??梢允褂弥С诌h程通信的任何當前可用或后來開發(fā)的操作系統(tǒng)。在圖2的說明性情況下,操作系統(tǒng)60支持軟件棧62。在其中I/O端口設備36是通信網(wǎng)絡接口設備的情況下,軟件棧62可以是傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)棧,但可以同時地或替換地實現(xiàn)其他通信協(xié)議(例如,IPX、NetBEUI).在其中I/O端口設備36是存儲網(wǎng)絡設備的情況下,軟件棧62是存儲網(wǎng)絡棧,諸如SCSI棧。操作系統(tǒng)60且特別是說明性軟件棧62使得一個或多個應用程序63能夠通過網(wǎng)絡和/或遠程定位存儲設備向例如其他計算機系統(tǒng)進行通信。每個端口 64具有與之相關聯(lián)的驅(qū)動器68 (在一些情況下,可以替換地將每個單獨驅(qū)動器稱為小端口驅(qū)動器)。在其中每個I/o端口設備36由同一賣方制造且具有相同能力的情況下,驅(qū)動器68可以是重復程序。然而,I/O端口設備不需要由同一賣方制造或者具有相同的能力。例如,在I/O端口設備36是NIC的情況下,一個NIC可以實現(xiàn)100兆位每秒(Mbps)數(shù)據(jù)吞吐量,同時另一 NIC可以實現(xiàn)1000 Mbps (千兆位)吞吐量,并且在這些替換實施例中驅(qū)動器可以是賣方和/或能力特定的。盡管具有不同的賣方和/或不同的能力,根據(jù)本發(fā)明的實施例,仍可以將各種I/O端口設備或其端口聚合。在其中每個端口 64獨立地操作的情況下,說明性棧軟件62直接與每個驅(qū)動器68通信;然而,根據(jù)各種實施例,端口 64被聚合。為了使得能夠?qū)崿F(xiàn)聚合,聚合軟件70在說明性軟件棧62與各種驅(qū)動器68之間對接。雖然圖2將軟件棧62和聚合軟件70示為單獨的軟件片段(Pieces),但在一些情況下,可以將該功能在單個程序中組合,如虛線71所圖示的。更特別地,在通信網(wǎng)絡的情況下,聚合軟件70與軟件棧42通信且向軟件棧呈現(xiàn)用于每組聚合端口的單個邏輯端口(即,看起來像單個驅(qū)動器)。同樣地,在通信網(wǎng)絡的情況下,聚合軟件70表現(xiàn)為每個驅(qū)動器68的軟件棧。在I/O端口設備是NIC的情況下,可使用多個市售聚合軟件產(chǎn)品,諸如可從加利福尼亞州帕洛阿爾托市的惠普公司獲得的自動端口聚合(APA) LAN監(jiān)視軟件。在存儲網(wǎng)絡的情況下,聚合以作為到端存儲設備(end-storage device)的冗余鏈路的I/O端口形式出現(xiàn)。針對到存儲設備的冗余鏈路,可以從任何聚合端口發(fā)送出存儲通信,并且其仍到達端存儲設備。由此可見,在其中所有I/O端口 64被聚合的圖2的說明性情況下,可以從I/O端口 64中任何一個發(fā)送出存儲通信,并且其仍到達特定端存儲設備(例如,硬盤)。在存儲網(wǎng)絡的情況下,軟件棧62可以知道用聚合I/O端口 64表示的冗余鏈路, 但是聚合軟件70進行關于存儲通信從哪個I/O端口流出的判定,并且因此執(zhí)行聚合功能。這里再次地,雖然說明性圖2將軟件棧62和聚合軟件示為單獨軟件片段,但可以將該功能組合成單個程序,如虛線71所圖示的。然而,除端口 64的聚合之外,根據(jù)各種實施例的聚合軟件70還在I/O端口級執(zhí)行關于功率管理的任務。在深入研究功率管理功能之前,并且為了更好地理解各種實施例,本說明書首先描述相關技術的功率管理的缺點。在其中端口 64獨立地操作的情況下(B卩,無組隊或聚合),一些相關技術系統(tǒng)實現(xiàn)基于端口的不活動性操作的功率節(jié)省特征。例如,如果端口空閑達到預定時間量,則該端口可以被其各自的驅(qū)動器置于較低功率消耗模式。然而,并未跨越端口協(xié)調(diào)相關技術中的關于功率消耗模式的判定。此外,在其中端口被組隊或聚合的情況下,相對于單個端口進行功率消耗模式修改可能對總體操作不利。考慮其中一個端口充當主端口的情況(所有通信被從該主端口發(fā)送出,并且通過該主端口接收所有通信)以及充當熱待機的第二端口。如果第二端口基于不活動性而被置于降低功率消耗模式,則第二端口將不會具有在主端口發(fā)生故障的情況下快速地且無縫地載送負載的能力。由于不能跨組隊或聚合端口應用協(xié)調(diào)控制,所以相關技術設備在此類情況下不能實現(xiàn)功率消耗模式控制(即,功率消耗模式控制被關掉,并且端口始終在峰值功率消耗模式下運行)。根據(jù)各種實施例,除實現(xiàn)用于端口 64的聚合策略之外,聚合軟件70還實現(xiàn)每個I/O端口 64的功率消耗模式的協(xié)調(diào)控制,其中功率消耗模式控制取決于所實現(xiàn)的聚合的類型。本說明書首先轉(zhuǎn)到功率消耗模式(和相關峰值功率狀態(tài))的描述,然后至在本文中稱為“活動-待機”情況下的功率消耗模式控制,后面是在本文中稱為“活動-活動”的情況下的功率消耗模式控制。I/O端口設備具有各種功率消耗模式。在其中在經(jīng)由PCI總線耦合到計算機系統(tǒng)部件的I/o端口設備36上實現(xiàn)端口 64的說明性情況下,可能的功率消耗模式包括DO “全開”模式、D3h(rt “關”模式和兩個中間功率消耗模式Dl和D2。此外,根據(jù)串行總線
(PCIe)動態(tài)功率分配(DPA)標準,DO模式具有多個子狀態(tài),其中,每個子狀態(tài)定義所消耗功率、性能和/或其他特性之間的權衡。每個功率消耗模式可以具有不同的峰值功率狀態(tài)。例如,說明性DO “全開”模式具有第一峰值功率狀態(tài),并且說明性D2中間模式具有第二峰值功率狀態(tài),其中,第二峰值功率狀態(tài)低于第一峰值功率狀態(tài)。可以用多種操作技術中的任何一個來實現(xiàn)較低峰值功率狀態(tài),諸如用于I/O端口設備上的電路的較低時鐘速率、由I/o端口設備降低的通信頻率以及I/O端口設備的降低的存儲器使用。因此,為了使設備在其功率消耗模式下被最大可能地利用,功率消耗模式的變化導致功率消耗的變化。雖然每個功率消耗模式具有峰值功率狀態(tài),但設備不需要在峰值功率狀態(tài)下操作一峰值功率狀態(tài)僅僅是可以基于特定模式下的利用率被吸取的峰值功率。例如,在說明性DO “全開”狀態(tài)中操作的設備(但該設備不在被利用)吸取特定量的功率以保持設備上的各種電路活動,但是吸取或耗散比設備被完全利用的情況下少的功率。然而,即使是針對未被利用的設備,功率消耗模式的變化也可能導致較低功率使用。例如,其功率消耗模式從說明性DO “全開”變成D3tot “關”狀態(tài)的空閑設備在D3h(rt “關”狀態(tài)下將吸取比DO “全開”更少的功率,即使未發(fā)生利用率的變化。為了本說明書的平衡,對功率消耗模式的變化的參考隱含地包括峰值功率狀態(tài)的變化,再次地,理解成功率變化可以來自變化的利用率(當在功率消耗模式的極限處操作時)、甚至在不存在用于特定模式的完全利用的變化功率消耗或同時來自兩者。在說明性活動-待機模式下操作的端口 64表示其中端口 64被聚合的情況,并且通過聚合軟件70的操作表現(xiàn)為到軟件棧62的單個端口。然而,在活動-待機模式下,一個端口(例如,端口 64A)被指定為主端口,并且其余端口(例如,端口 64B — 64D)被指定為輔助端口。說明性主端口 64A發(fā)送和接收所有通信,并且其余端口作為待機端口進行操作,準備在主端口故障的情況下接管作為主端口的職責。為了快速地且無縫地接管作為主端口的職責,在其中在幾乎沒有延遲的情況下端口能夠接管有故障主端口(即,熱待機)的功率消耗模式下操作輔助端口。根據(jù)在活動-待機模式下操作的實施例,聚合軟件70實現(xiàn)跨所有聚合端口的功率控制策略,其并未負面地影響活動-待機操作模式。例如,考慮其中所有端口 64處于其最高功率消耗模式且其中端口 64A是主端口的情況。如果聚合軟件70判定或被命令降低端口 64的功率消耗,則聚合軟件70可以將端口中的一個選擇為唯一熱待機端口(例如,端口64B)。還可預期一個以上的熱待機端口,但是為了方便起見,本討論采取單個熱待機端口。所選熱待機被留在其中能夠通過熱待機來快速地且無縫地接管通信的功率消耗模式。換言之,聚合軟件70避免改變熱待機端口和主端口的功率消耗模式。其余端口(例如,端口 64C和64D)被置于降低功率消耗模式。在實現(xiàn)端口 64的PCI設備的說明性情況下,主端口 64A和熱待機端口 64B兩者被置于或留在DO “全開”模式,而其余端口 64C和64D被置于降低功率消耗模式(例如,D3hot “關”模式)。如果在說明性活動-待機情況下期望進一步的功率降低,并且能夠容忍數(shù)據(jù)通信吞吐量降低,則聚合軟件70可以改變主端口 64A和熱待機端口 64B的功率消耗模式(例如,DO的子狀態(tài))。在主端口故障的情況下,聚合軟件70將熱待機設置為主端口 ;另外,知道用于活動-待機情況的功率策略的聚合軟件70可以選擇另一(未發(fā)生故障)端口并提高所選端口的功率消耗模式以變成新的熱待機。例如,在初始主端口 64A故障時,聚合軟件將端口 64B設置為主端口,將另一端口(例如,端口 64C)選擇為熱待機端口,并且將新的熱待機為端口64C置于用于熱待機操作的適當功率消耗模式。在一些情況下,用于熱待機端口的適當功率消耗模式將是與主端口相同的功率消耗模式。仍參考圖2,本說明書現(xiàn)在轉(zhuǎn)到端口的操作的說明性活動-活動模式。在說明性活動-活動模式下操作的端口 64表示其中端口 64被聚合且通過聚合軟件70的操作對軟件棧62表現(xiàn)為單個端口的情況。然而,在活動-活動模式下,每個端口參與同端口附著到的網(wǎng)絡的通信。例如,在實現(xiàn)到存儲網(wǎng)絡的通信的端口的說明性情況下,每個端口 64在到網(wǎng)絡附著存儲設備的通信中擔任活動角色。同樣地,在實現(xiàn)到通信網(wǎng)絡的通信的端口的說明性情況下,每個端口在通信中擔任活動角色。然而,活動角色不需要跨所有端口是相同的。例如,在實現(xiàn)到通信網(wǎng)絡的通信的端口 64的說明性情況下,一個端口(例如,端口 64A)可以既發(fā)送又接收消息分組,并且其余端口(例如,端口 64B—64D)可以僅從網(wǎng)絡發(fā)送消息分組。在其他情況下,每個端口 64可以既發(fā)送又接收消息分組。無論在活動-活動模式下實現(xiàn)的精確機制如何,聚合軟件70跨所有聚合端口實現(xiàn)功率控制策略,其并不負面地影響活動-活動操作模式。例如,考慮其中所有端口 64處于其最高功率消耗模式且所有端口以某種形式參與到網(wǎng)絡的通信的情況。如果聚合軟件70判定或被命令降低端口 64的功率消耗,則聚合軟件70通過降下(lowering)功率消耗模式或一個或多個端口 64的功率狀態(tài)來降低功率消耗。在一個情況下,聚合軟件可以均勻地降低所有端口 64的功率消耗模式。例如,聚合軟件可以將所有端口的功率消耗模式從DO“全開”模式變成DO的子狀態(tài)中的一個。然而,降低活動-活動模式下的功率不需要功率消耗模式下的均勻降低。例如,在一些情況下,聚合軟件可以在聚合端口 64的較小子集上降低功率消耗模式以實現(xiàn)功率降低。例如,在其中一個端口既發(fā)送又接收消息分組(例如,端口 64A)且其余端口被用作只發(fā)送(例如,端口 64B和64C)的情況下,聚合軟件可以降低只發(fā)送端口中的一個或多個的功率消耗模式以降低功率消耗。在一些情況下,功率消耗模式的降低包括將端口置于關閉狀態(tài)。除降低功率之外,聚合軟件70還可以負責增加功率。例如,聚合軟件70可以判定或被命令以基于通信負載的實際或預期增加來增加可用通信容量。聚合軟件70可以在預期利用率增加之前提高功率消耗模式,諸如網(wǎng)絡服務器的用于端口 64是通信網(wǎng)絡端口的一天中的忙碌時間,或者可預期大的數(shù)據(jù)備份的用于端口 64是存儲網(wǎng)絡端口的一天中的預期時間。就像功率消耗模式的降低,可以均勻地施加(例如,所有端口被置于DO“全開”模式)或者非均勻地施加功率消耗模式的增加。而且,聚合軟件70可以考慮活動-活動和活動-待機說明性模式下的端口特定參數(shù)。如上所述,可以在每個I/o端口設備上實現(xiàn)一個端口 64,可以在單個I/O端口設備上實現(xiàn)多個端口,并且I/O端口設備不需要具有相同的制造商、品牌或型號。在這些實施例中,聚合軟件70可以考慮特定參數(shù)進行功率消耗模式修改。作為示例,考慮在單個I/O端口設備上實現(xiàn)端口 64C和64D(用虛線72圖示出)。在這樣的情況下,不可能不同地或者至少明顯不同地設置端口 64C和64D的功率消耗模式(例如,雖然兩個端口可以在不同的“可操作”功率消耗模式下操作,但不可能將一個端口關閉而留下第二個可操作)。無論是在活動-待機還是在活動-活動操作中,在選擇要關閉的端口時(例如,說明性D3“關”狀態(tài)),聚合軟件70可以選擇關掉同一 I/O端口設備72上的端口,其可以包括將特定功能移動至其他端口(例如,分別將主和熱待機移動至端口 64A和64B)。如果可以使得所有其端口 64不活動并設置在較低功率消耗模式,則可以將I/O端口設備72斷電。這樣做導致顯著的功率節(jié)省。
此外,給定端口 64可以跨越不同的賣方和能力,端口 64可以具有用于特定利用率的變化功率消耗。聚合軟件70在實現(xiàn)特定功率策略時可以選擇最高效的(從功率角度出發(fā))一個或多個端口以用于預期利用率。例如,端口 64A和64B可以具有類似的峰值消息分組操作速率,但是可以在功率消耗方面不同(例如,相對于較舊的設備而言較新的硬件設備)。因此,在實現(xiàn)功率策略時(包括改變功率消耗模式以降低I/O的總功率使用)時,聚合軟件可以選擇在最低功率消耗下提供期望功能的設備或設備組。當需要附加功能或容量時,不那么高效的端口可以將其功率消耗模式提高,使得端口參與或更多地參與總體通信?;谂c特定端口相關聯(lián)的參數(shù)來改變功率策略可在活動-活動和活動-待機情況下應用。仍參考圖2,根據(jù)至少一些實施例,聚合軟件70僅負責知道和實現(xiàn)用于計算機系統(tǒng)100的聚合I/O的功率策略。例如,聚合軟件可以始終嘗試實現(xiàn)用于I/O端口的功率消耗模式,其在最低功率消耗下提供足夠量的帶寬或吞吐量能力。然而,在至少一些實施例中,聚合軟件70是被頻繁地計劃用于執(zhí)行且具有管理員權限的內(nèi)核級軟件。然而,在一些情況下,不需要如計劃和執(zhí)行聚合軟件70那樣頻繁地進行功率策略判定,并且因此為了降低聚合軟件的復雜性,一些實施例實現(xiàn)功率策略管理程序74。功率策略管理程序74至少與聚合軟件70通信,并且命令聚合軟件70實現(xiàn)關于I/O端口的功率策略的變化。在特定實施例中,功率策略管理程序74是用戶級程序,并且因此與聚合軟件70相比不那么頻繁地運行且具有較低權限。在一些情況下,在計算機系統(tǒng)100內(nèi)執(zhí)行功率策略管理程序74,但是在其他情況下在不同的計算機系統(tǒng)中執(zhí)行。功率策略管理程序74可以獨立地進行關于功率策略的判定(在一些情況下基于從聚合軟件接收到的數(shù)據(jù),諸如利用率),或者功率策略管理程序74可以從其他程序接收命令(未明確地示出),并且基于從聚合軟件70學習的計算機系統(tǒng)100的當前狀態(tài)和較高級命令來設計特殊化策略。圖3示出了根據(jù)至少一些實施例的方法(例如,軟件)。特別地,該方法開始(方框300)并前進至將多個輸入/輸出(I/O)端口聚合(方框302);以及控制計算機系統(tǒng)中的功率消耗(方框304)。控制功率消耗包括從在計算機系統(tǒng)中執(zhí)行的功率策略管理程序向同樣在計算機系統(tǒng)中執(zhí)行的聚合軟件發(fā)送命令(方框306),聚合軟件實現(xiàn)聚合;并響應于該命令而改變I/O端口中的至少一個的功率消耗模式(方框308)。其后,該方法結束(方框310)。根據(jù)在本文中提供的描述,本領域的技術人員很容易能夠?qū)⑷缢龅貏?chuàng)建的軟件與適當?shù)耐ㄓ没驅(qū)S糜嬎銠C硬件組合以根據(jù)各種實施例來創(chuàng)建計算機系統(tǒng)和/或計算機子部件,以創(chuàng)建用于執(zhí)行各種實施例的方法的計算機系統(tǒng)和/或計算機子部件,以及和/或創(chuàng)建用于存儲軟件或程序以實現(xiàn)各種實施例的方法方面的非暫時性計算機可讀存儲介質(zhì)。以上討論意圖說明本發(fā)明的原理和各種實施例。一旦完全認識到以上公開,許多變更和修改對于本領域的技術人員而言將是顯而易見的。例如,每個部件具有最大數(shù)目的功率循環(huán),在那之后,設備很可能將發(fā)生故障。在一些實施例中,在本文中所討論的協(xié)調(diào)控制在做出關于用于設備的功率消耗模式的判定時將設備的功率循環(huán)的數(shù)目考慮在內(nèi)。此夕卜,本發(fā)明人使用不同的術語“程序”或“軟件”來幫助讀者區(qū)分可由處理器執(zhí)行的指令的各種功能單元,并且并不意味著存在基本差異(除被編碼成執(zhí)行不同任務之外)。事實上,可以用相同的編程語言來編寫每個程序和/或軟件且其具有被共享或重疊的許多元素。意圖在于將以下權利要求解釋為涵蓋所有此類變更和修改。
權利要求
1.一種方法,其包括將計算機系統(tǒng)的多個輸入/輸出(I/O)聚合;通過以下各項來控制計算機系統(tǒng)中的功率消耗從功率策略管理程序向在計算機系統(tǒng)中執(zhí)行的聚合軟件發(fā)送命令,所述聚合軟件實現(xiàn)所述聚合;以及響應于所述命令改變所述多個I/o端口中的至少一個的功率消耗模式。
2.根據(jù)權利要求1所述的方法,其還包括其中,發(fā)送所述命令還包括發(fā)送用以降低功率消耗的命令;以及其中,改變所述功率消耗模式還包括將所述多個I/O端口的第一 I/O端口的功率消耗模式從具有第一峰值功率狀態(tài)的第一功率消耗模式變成具有低于所述第一峰值功率消耗的第二峰值功率狀態(tài)的第二功率消耗模式。
3.根據(jù)權利要求1所述的方法,其還包括將所述多個I/o端口中的第一 I/O端口作為主端口來操作,并且將所述多個I/O端口中的第二和第三I/o端口作為熱待機端口來操作;以及其中,改變所述功率消耗模式還包括將所述第三I/o端口的功率消耗模式從具有第一峰值功率狀態(tài)的第一功率消耗模式變成具有低于所述第一峰值功率消耗的第二峰值功率狀態(tài)的第二功率消耗模式。
4.根據(jù)權利要求3所述的方法,其還包括確定所述第一 I/O端口已經(jīng)經(jīng)歷故障;以及然后將所述第二 I/O端口設置為主端口 ;以及將所述第三I/O端口的功率消耗模式變成所述第一功率消耗模式。
5.根據(jù)權利要求1所述的方法,其還包括操作所述多個I/o端口,使得每個I/O端口參與同所述計算機系統(tǒng)耦合到的網(wǎng)絡的通信;以及其中,改變所述功率消耗模式還包括將所述多個I/o端口的功率消耗模式從具有用于每個I/O端口的第一峰值功率狀態(tài)的第一功率消耗模式變成具有與所述第一峰值功率消耗不同的用于每個I/o端口的第二峰值功率狀態(tài)的第二峰值消耗模式。
6.根據(jù)權利要求5所述的方法,其中,改變所述I/O端口的功率消耗模式還包括選自由以下各項組成的組的至少一個變成具有比所述第一峰值功率消耗模式低的峰值功率狀態(tài)的所述第二峰值功率消耗模式;以及變成具有比所述第一峰值功率消耗模式高的峰值功率狀態(tài)的所述第二峰值功率消耗模式。
7.根據(jù)權利要求1所述的方法,其中,聚合還包括將是選自由以下各項組成的組的至少一個的所述多個I/O端口聚合適配器端口,其被配置成跨因特網(wǎng)與設備通信;以及適配器端口,其被配置成與存儲設備通信。
8.一種計算機系統(tǒng),其包括處理器;多個輸入/輸出(I/o)適配器,其被耦合到處理器,所述I/O適配器被配置成耦合到網(wǎng)絡;存儲器,其被耦合到處理器,所述存儲器存儲指令,所述指令在被處理器執(zhí)行時促使處理器實現(xiàn)軟件棧;將所述多個I/O端口聚合;從功率策略管理程序向執(zhí)行所述多個I/o端口的聚合的聚合軟件遞送命令;以及響應于所述命令改變所述多個I/o端口中的至少一個的功率消耗模式。
9.根據(jù)權利要求8所述的計算機系統(tǒng),其還包括其中,當所述處理器遞送命令時,所述指令還促使處理器遞送命令以降低功率消耗模式;以及其中,當所述處理器改變功率消耗模式時,所述指令還促使處理器將所述多個I/o端口中的第一 I/o端口的功率消耗模式從具有第一峰值功率狀態(tài)的第一功率消耗模式變成具有低于所述第一峰值功率狀態(tài)的第二峰值功率狀態(tài)的第二功率消耗模式。
10.根據(jù)權利要求8所述的計算機系統(tǒng),其還包括其中,在功率消耗模式變化之前,所述計算機系統(tǒng)將所述多個I/o端口中的第一 I/O端口作為主端口來操作,將所述多個I/o端口中的第二 I/O端口作為熱待機端口來操作,并且將所述多個I/o端口的其余I/O端口作為熱待機端口來操作;以及其中,當所述處理器改變功率消耗模式時,所述指令促使處理器將其余I/o端口的功率消耗模式從具有第一峰值功率狀態(tài)的第一功率消耗模式變成具有低于所述第一峰值功率狀態(tài)的第二峰值功率狀態(tài)的第二功率消耗模式。
11.根據(jù)權利要求10所述的計算機系統(tǒng),其中,所述聚合軟件的指令還促使所述處理器確定所述第一 I/o端口已經(jīng)經(jīng)歷故障;以及然后將所述第二 I/o端口設置為主端口 ;以及將所述多個I/O端口中的第三I/O端口的功率消耗模式變成所述第一功率消耗模式。
12.根據(jù)權利要求8所述的計算機系統(tǒng),其還包括其中,在功率消耗模式變化之前,所述計算機系統(tǒng)操作所述多個I/o端口,使得每個I/ O端口參與同網(wǎng)絡的通信;以及其中,當所述處理器改變功率消耗模式時,所述指令促使處理器將所述多個I/o端口的功率消耗模式從具有用于每個I/O端口的第一峰值功率狀態(tài)的第一功率消耗模式變成具有用于每個I/o端口的第二峰值功率狀態(tài)的第二功率消耗模式, 所述第二峰值功率狀態(tài)不同于所述第一峰值功率狀態(tài)。
13.根據(jù)權利要求12所述的計算機系統(tǒng),其中,當所述處理器改變所述多個I/O端口的功率消耗模式時,所述指令促使所述處理器進行選自由以下各項組成的組的至少一個變成第二功率消耗模式,其中,所述第二峰值功率狀態(tài)低于所述第一峰值功率狀態(tài);以及變成所述第二峰值功率消耗模式,其中,所述第二峰值功率狀態(tài)高于所述第一峰值功率狀態(tài)。
14.根據(jù)權利要求8所述的計算機系統(tǒng),其中,所述多個I/O端口還包括選自由以下各項組成的組的至少一個適配器端口,其被配置成跨因特網(wǎng)進行通信;以及適配器端口,其被配置成與存儲設備通信。
15.根據(jù)權利要求8所述的計算機系統(tǒng),其中,所述存儲器是選自由以下各項組成的組的一個或多個隨機存取存儲器(RAM);只讀存儲器(ROM);硬盤驅(qū)動器;以及光盤驅(qū)動器。
16.一種存儲指令的非暫時性計算機可讀介質(zhì),所述指令在被處理器執(zhí)行時促使處理器將被耦合到所述處理器的多個I/O端口聚合;從功率策略管理程序接收命令,所述命令是關于用于所述多個I/o端口的功率策略;以及響應于所述命令改變所述多個I/o端口中的至少一個的功率消耗模式。
17.根據(jù)權利要求16所述的非暫時性計算機可讀介質(zhì),其還包括其中,當處理器將所述多個I/O端口聚合時,所述指令促使所述處理器將所述多個I/O 端口中的第一 I/O端口作為主端口來操作;將所述多個I/O端口中的第二 I/O端口作為熱待機端口來操作,并且將所述多個I/O端口中的其余I/O端口作為熱待機端口來操作;以及其中,當處理器改變功率消耗模式時,所述指令促使處理器將所述其余I/o端口的功率消耗模式從具有第一峰值功率狀態(tài)的第一功率消耗模式變成具有低于所述第一峰值功率消耗的第二峰值功率狀態(tài)的第二功率消耗模式。
18.根據(jù)權利要求17所述的非暫時性計算機可讀介質(zhì),其中,所述指令還促使處理器 確定所述第一 I/O端口已經(jīng)經(jīng)歷故障;以及然后將所述第二 I/O端口設置為主端口 ;以及將所述多個I/o端口中的第三I/O端口的功率消耗模式變成第一功率消耗模式。
19.根據(jù)權利要求16所述的非暫時性計算機可讀介質(zhì),其還包括其中,當處理器將所述多個I/o端口聚合時,所述指令促使處理器操作所述多個I/O端口,使得每個I/O端口參與同網(wǎng)絡的通信;以及其中,當處理器改變功率消耗模式時,所述指令促使處理器將所述多個I/o端口的功率消耗模式從具有用于每個I/O端口的第一峰值功率狀態(tài)的第一功率消耗模式變成具有用于每個I/o端口的第二峰值功率狀態(tài)的第二功率消耗模式, 所述第二峰值功率狀態(tài)不同于所述第一峰值功率狀態(tài)。
20.根據(jù)權利要求19所述的計算機系統(tǒng),其中,當處理器改變所述多個I/O端口的功率消耗模式時,所述指令促使所述處理器進行選自由以下各項組成的組的至少一個變成所述第二功率消耗模式,其中,所述第二峰值功率狀態(tài)低于所述第一峰值功率狀態(tài);以及變成所述第二峰值功率消耗模式,其中,所述第二峰值功率狀態(tài)高于所述第一峰值功率狀態(tài)。
全文摘要
控制聚合I/O端口的功率消耗。說明性實施例中的至少一些是包括以下各項的方法將多個輸入/輸出(I/O)端口聚合;以及控制計算機系統(tǒng)中的功率消耗??刂乒β氏陌◤墓β什呗怨芾沓绦蛳蛟谟嬎銠C系統(tǒng)中執(zhí)行的聚合軟件發(fā)送命令,該聚合軟件實現(xiàn)聚合;以及響應于該命令而改變I/O端口中的至少一個的功率消耗模式。
文檔編號G06F1/32GK103026317SQ201080068348
公開日2013年4月3日 申請日期2010年7月30日 優(yōu)先權日2010年7月30日
發(fā)明者A.A.納塔拉簡 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)