專利名稱:用于提高事件處理的渦輪加速性能的方法和裝置的制作方法
技術領域:
本發(fā)明的實施例涉及中斷事件處理;更具體地,本發(fā)明的實施例涉及提高事件處理的性能。
背景技術:
在多內核處理器中,控制處理內核以使用可用的功率余量來最大化性能是令人期望的。在不是所有的處理內核都必須用于處理特定的工作負荷的情況下,關閉空閑的內核并將功率引導到其他活動的內核。通常通過以更高的頻率操作活動的內核來將活動的內核轉換到渦輪加速模式(turbo mode)。多內核處理器中的任務和事件處理算法通常是偽隨機的并且不考慮當內核操作于渦輪加速模式時的影響。因此,影響了系統的整體性能。
根據下面給出的詳細描述以及本發(fā)明的各個實施例的附圖可以更充分地理解本發(fā)明的實施例,然而,其不應被用于將本發(fā)明限制到特定的實施例,而只是用于解釋和理解。圖1示出了計算機系統的實施例,該計算機系統包括用于響應于中斷事件來選擇處理元件以執(zhí)行任務的裝置。圖2是用于響應于中斷事件來選擇處理元件以執(zhí)行任務的處理的一個實施例的流程圖。圖3說明了與本發(fā)明的一個實施例一起使用的計算機系統。圖4說明了與本發(fā)明的一個實施例一起使用的點對點計算機系統。
具體實施例方式介紹了用于提高事件處理的性能的裝置的實施例。在一個實施例中,裝置包括多個處理元件和任務路由邏輯。如果處理元件中的至少一個處理元件處于渦輪加速模式,那么任務路由邏輯至少基于性能損失的比較來選擇用于執(zhí)行任務的處理元件。在以下描述中,闡述了大量細節(jié)以提供對本發(fā)明的實施例的更透徹的解釋。然而, 對本領域技術人員顯而易見的是,可以在沒有這些具體細節(jié)的情況下實施本發(fā)明的實施例。在其他示例中,以框圖的形式而非細節(jié)的形式示出了公知的結構和設備,以避免模糊本發(fā)明的實施例。在其他示例中,沒有詳細地描述公知的部件或方法,例如,微處理器架構、虛擬機監(jiān)視器、功率控制、時鐘門控、以及已知邏輯的操作細節(jié),以避免不必要地模糊本發(fā)明。
但是,應當牢記,所有這些以及類似的術語應與合適的物理量相關聯,并且僅僅是應用到這些量的方便的標記。除非明確地聲明,否則根據以下討論顯而易見的是,應該意識至IJ,貫穿本說明書的使用諸如“處理”或“計算”或“運算”或“確定”或“顯示”等術語的討論指代計算機系統或類似的電子計算設備的動作和處理過程,其對表示為計算機系統的寄存器和存儲器內的物理(電子)量的數據進行操作,并將所述數據轉換成類似地表示為計算機系統存儲器或寄存器或其它這種信息存儲、傳輸或顯示設備內的物理量的其它數據。本發(fā)明的實施例還涉及用于執(zhí)行本文中的操作的裝置??梢葬槍π枰哪康奶貏e地構造一些裝置,或者它可以包括由存儲在計算機中的計算機程序選擇性地激活或重新配置的通用計算機??梢詫⑦@種計算機程序存儲在計算機可讀存儲介質中,例如但不限于,任何類型的盤,其包括軟盤、光盤、CD_R0M、DVD-R0M、以及磁光盤、只讀存儲器(ROM)、隨機存取存儲器(RAM)、EPROM、EEPROM、NVRAM、磁或光卡,或適合用于存儲電子指令的任何類型的介質,并且每一個都耦合到計算機系統總線。本文描述的方法和裝置用于選擇用于事件處理的處理元件。更具體地說,參考多內核處理器計算機系統主要地討論了選擇用于事件處理的處理元件。然而,用于選擇用于事件處理的處理元件的方法和裝置并不限制于此,因為可以在任何集成電路設備或系統上或與任何集成電路設備或系統相關聯地實現該方法和裝置,所述集成電路設備或系統例如是蜂窩電話、個人數字助理、嵌入式控制器、移動平臺、臺式平臺和服務器平臺,以及結合任何類型的處理元件,例如內核、硬件線程、軟件線程、或邏輯處理器、加速器內核、或其他處理資源。此外,選擇用于事件處理的處理元件可以發(fā)生在任何硬件/軟件環(huán)境中,例如操作系統或在硬件上執(zhí)行的管理程序。MM介紹了用于提高事件處理的性能的裝置的實施例。在一個實施例中,裝置包括多個處理元件和任務路由邏輯。如果處理元件中的至少一個處理元件處于渦輪加速模式,那么任務路由邏輯至少基于性能損失的比較來選擇用于執(zhí)行任務的處理元件。圖1示出了計算機系統的實施例,該計算機系統包括用于響應于事件來選擇處理元件以執(zhí)行任務的裝置。沒有示出許多相關的部件(例如總線和外圍設備)以避免模糊本發(fā)明。參考圖1,在一個實施例中,處理器160包括性能計算邏輯110、任務路由邏輯130、渦輪加速模式邏輯140、以及多個處理元件,例如處理元件131-134。在一個實施例中,性能計算邏輯還包括存儲器111。在一個實施例中,處理元件包括線程、進程、上下文、邏輯處理器、硬件線程、內核、 加速器內核或共享對處理器160的其他共享資源(例如,預留單元、執(zhí)行單元、更高層高速緩存、存儲器等)的訪問的任何處理元件。在一個實施例中,處理元件是線程單元,即,能夠具有由軟件線程獨立地調度以用于執(zhí)行的指令的元件。在一個實施例中,物理處理器是集成 電路,其包括任意數量的其他處理元件,例如內核或硬件線程。在一個實施例中,內核是位于集成電路上的能夠針對另一個內核保持獨立架構狀態(tài)的邏輯。每一個獨立地保持的架構狀態(tài)與至少某些專用的執(zhí)行資源相關聯。在一個實施例中,硬件線程是位于集成電路上的能夠針對另一個硬件線程保持獨立架構狀態(tài)的邏輯。 每一個獨立地保持的硬件線程共享對執(zhí)行資源的訪問。在一些實施例中,可交換地使用內核和硬件線程。在一個實施例中,內核或硬件線程也被稱為處理元件。
在一個實施例中,操作系統或管理軟件將硬件線程、內核、或處理元件視為單獨的邏輯處理器。軟件程序能夠在每一個邏輯處理器上單獨地調度操作。此外,在一些實施例中,每一個內核包括用于執(zhí)行多個軟件線程的多個硬件線程。在一個實施例中,管 理程序(未示出)提供軟件(例如,虛擬機)和硬件資源(例如,處理器160)之間的接口。在一個實施例中,管理程序對硬件進行抽象以使得多個虛擬機獨立地并行運行。在一個實施例中,虛擬機提供程序的軟件執(zhí)行環(huán)境,所述程序例如是任務、用戶級應用、客戶機軟件、操作系統、另一個虛擬機、虛擬機監(jiān)視器、其他可執(zhí)行代碼、 或它們的任何組合。在一個實施例中,管理程序將硬件資源(例如,內核、硬件線程、處理元件)分配給不同的程序。在一個實施例中,計算機系統包括用于經由互連發(fā)送和接收信號的輸入/輸出 (I/O)緩沖器?;ミB的示例包括射電收發(fā)機邏輯(GTL) (Gunning Transceiver Logic)總線、GTL+總線、雙倍數據速率(DDR)總線、泵式總線(pumped bus)、差分總線、高速緩存一致總線(cache coherent bus)、點對點總線、多點下傳(multi-drop)總線或實現任何已知總線協議的其他已知互連。在一個實施例中,計算機系統(具體地說,處理器160)根據高級配置和電源接口 (ACPI)規(guī)范(參見,2006年10月10日發(fā)布的高級配置和電源接口規(guī)范3. Ob版)支持不同的功率狀態(tài)(例如,C2-狀態(tài)和C3-狀態(tài))。在一個實施例中,休眠狀態(tài)(例如,C2-狀態(tài)和C3-狀態(tài))也被稱為空閑狀態(tài)。在一個實施例中,處于空閑狀態(tài)的處理元件被稱為休眠內核、空閑內核或非活動內核。在一個實施例中,功率門控關閉對空閑處理元件的功率供應。 空閑處理元件必須被喚醒以便再次開始執(zhí)行程序。在一個實施例中,渦輪加速模式邏輯140控制處理元件131-134以使得如果至少另一個處理元件保持空閑那么至少一個活動處理元件以更高的頻率操作。因此,由活動處理元件使用可用的功率和熱余量以增加或提高系統的整體性能。在一個實施例中,這種操作模式在本文中被稱為渦輪加速模式。當處于渦輪加速模式時,渦輪加速模式邏輯140將一個或多個空閑處理元件的功率和熱余量重新分配給一個或多個活動處理元件以增加一個或多個處于活動狀態(tài)的處理元件的操作頻率。在一個實施例中,使處理器轉換到渦輪加速模式或從渦輪加速模式轉換(例如, 轉換到較高的性能水平或轉換到較低性能水平)的因素在本文中被稱為事件。在一個實施例中,事件是可重新路由到處理元件131-134的中斷事件。在一個實施例中,處理器160響應于事件而執(zhí)行一些對應的任務或服務。在一個實施例中,中斷事件來自設備,例如,盤驅動器、網卡和輸入/輸出設備。在一個實施例中,性能計算邏輯110計算用于服務事件的性能損失。在一個實施例中,因為響應于處理事件而執(zhí)行一個任務或若干任務,處理器160使用額外的時間來完成工作負荷。在一個實施例中,性能損失被表示為百分比。例如,如果工作負荷要花費IOms 來執(zhí)行,那么10%的性能損失將使得工作負荷花費11. Ims (即,IOms/(1-0. 10))來完成。在一個實施例中,當處理器160處于渦輪加速模式時,任務路由邏輯130接收任務 101 (作為事件的結果)。例如,在一個實施例中,處理元件131處于渦輪加速模式,而處理元件132處于空閑模式。在一個實施例中,渦輪加速路由邏輯130基于與在不同的處理元件(無論是活動處理元件還是休眠處理元件)之間進行選擇相關聯的性能損失,來選擇處理元件中的一個以完成任務101在一個實施例中,如果空閑處理元件被用來執(zhí)行任務101,其性能損失在本文中被稱為喚醒性能損失(WPL)。在一個實施例中,將活動處理元件(處于渦輪加速模式)轉換到較低操作頻率以使得功率被引導以喚醒休眠處理元件。在一個實施例中,性能計算邏輯基于與活動處理元件相關聯的操作頻率的降低和正由活動處理元件執(zhí)行的程序的頻率縮放因子,來確定WPL。普通技術人員將意識到,可以使用其他因子和組合來確定WPL。在一個實施例中,頻率縮放因子是比率,其中,以該比率將頻率增加(或降低)轉換成針對特定工作負荷的性能增加(或降低)。例如,對于操作頻率10%的增加導致性能 10%的增加的工作負荷,等價于縮放因子為1。例如,操作頻率的降低導致0.75%的性能降低等價于縮放因子為0. 75。在一個實施例中,存儲器111存儲關于正在由活動處理元件執(zhí)行的程序的頻率縮放因子的信息。在一個實施例中,存儲器111存儲關于當活動處理元件從渦輪加速模式轉變到其它模式時操作頻率的降低的信息。在一個實施例中,這些信息由監(jiān)視邏輯(未示出) 收集并且包括用于預測/估計當前值的平均歷史值。在一個實施例中,如果活動處理元件被用來執(zhí)行任務101,其性能損失在本文中被稱為活動性能損失(APL)。在一個實施例中,性能計算邏輯110基于用于執(zhí)行任務101(響應于事件)的處理時間的量和與正在由活動處理元件執(zhí)行的程序相關聯的使用值來確定 APL。在一個實施例中,基于用于服務事件的處理時間除以用于程序工作負荷的總的運行時間來確定APL。普通的技術人員將意識到,可以使用其他因子和組合來確定APL。在一個實施例中,存儲器111存儲關于用于處理事件的處理時間的量的信息。在一個實施例中,這些信息由監(jiān)視邏輯(未示出)收集并且包括用于預測/估計當前值的平均歷史值。在一個實施例中,監(jiān)視邏輯還提供與正在由活動處理元件執(zhí)行的程序相關聯的使用值。在一個實施例中,如果處理器160處于渦輪加速模式,則任務路由邏輯130基于潛在的性能損失的比較來確定處理元件以服務事件。在一個實施例中,任務路由邏輯130基于來自渦輪加速模式邏輯140的信息來確定處理器160 (或處理元件131-134中的任意一個)是否處于渦輪加速模式中。在一個實施例中,如果WPL小于APL,那么任務路由邏輯130選擇空閑處理元件來服務事件。否則,任務路由邏輯130將事件發(fā)送到活動處理元件(處于渦輪加速模式中)。在一個實施例中,處理元件可以操作于不同的休眠狀態(tài)下,其中所述不同的休眠狀態(tài)的范圍從具有較短退出時延和適度功率節(jié)省的淺度C-狀態(tài)(例如,ACPI Cl狀態(tài))到具有較長退出時延和較高功率節(jié)省的深度C-狀態(tài)(例如,ACPI C3)。因此,取決于休眠內核所處的C-狀態(tài),包括WPL和APL的性能損失的確定是不同的。在一個實施例中,從深度 C-狀態(tài)喚醒處理元件比喚醒處于淺度C-狀態(tài)的處理元件代價更高(導致更高的性能損失)。圖2是用于響應于中斷事件來選擇(處理器的)處理元件以執(zhí)行任務的處理的一個實施例的流程圖。由可以包括硬件(電路、專用邏輯等)、軟件(例如在通用計算機系統或專用機器上運行的)、或上述二者的組合的處理邏輯來執(zhí)行該處理。在一個實施例中,結合控制器(例如,參照圖1的任務路由邏輯130)來執(zhí)行該處理。在一個實施例中,由參照圖3的計算機系統來執(zhí)行該處理。參考圖2,在一個實施例中,處理邏輯以接收可重新路由的事件(處理框200)作為開始。響應于該事件,處理邏輯執(zhí)行任務或服務。
在一個實施例中,處理邏輯確定是否有任何(處理器的)處理元件操作于渦輪加速模式中(處理框210)。在一個實施例中,如果沒有處理元件操作于渦輪加速模式中,則處理邏輯選擇任何處理元件以服務該事件(處理框241)。在另一個實施例中,如果沒有處理元件操作于渦輪加速模式中,則處理邏輯選擇處于功率節(jié)省模式的處理元件,例如休眠內核,以服務該事件。否則,在一個實施例中,如果任何處理元件處于渦輪加速模式中,則處理邏輯確定潛在的性能損失。在一個實施例中,處理邏輯確定在空閑處理元件被用來執(zhí)行任務時的喚醒性能損失(WPL)(處理框220)。在一個實施例中,處理邏輯基于與活動處理元件相關聯的操作頻率的降低和正在由活動處理元件執(zhí)行的程序的頻率縮放因子來確定WPL。在一個實施例中,處理邏輯確定在活動處理元件被用來執(zhí)行任務時的活動性能損失(APL)(處理框221)。在一個實施例中,處理邏輯基于用于執(zhí)行該任務的處理時間的量和與正在由活動處理元件執(zhí)行的程序相關聯的使用值來確定APL。在一個實施例中,處理邏輯將WPL與APL進行比較(處理框230)。在一個實施例中,如果WPL小于APL,那么處理邏輯選擇空閑處理元件來執(zhí)行該任務(處理框242)。否則, 處理邏輯選擇處于渦輪加速模式的活動處理元件來執(zhí)行該任務(處理框243)??梢栽诟鞣N電子設備和邏輯電路中實現本發(fā)明的實施例。此外,包括本發(fā)明的實施例的設備或電路可以被包括在各種計算機系統內。本發(fā)明的實施例還可以被包括在其他計算機系統拓撲和架構中。例如,圖3說明了結合本發(fā)明的一個實施例的計算機系統。處理器705訪問來自 1級(Li)高速緩沖存儲器706、2級(L2)高速緩沖存儲器710、以及主存儲器715的數據。 在本發(fā)明的其他實施例中,高速緩沖存儲器706可以是多級高速緩沖存儲器,其由Ll高速緩沖存儲器以及計算機系統存儲器分層中的諸如L2高速緩沖存儲器的其他存儲器組成, 并且高速緩沖存儲器710是隨后的更低級高速緩沖存儲器,例如L3高速緩沖存儲器或更多級高速緩沖存儲器。此外,在其他實施例中,計算機系統可以具有作為不止一個處理器內核的共享高速緩沖存儲器的高速緩沖存儲器710。處理器705可以具有任意數量的處理內核。然而,可以用硬件、軟件、或它們的一些組合在系統內的其他設備中或者在分布于整個系統的其他設備中實現本發(fā)明的其他實施例。在一個實施例中,處理器705包括類似于部件的邏輯,例如,參照圖1的任務路由邏輯 130。可以在各種存儲器源中,例如,動態(tài)隨機存取存儲器(DRAM)、硬盤驅動器 (HDD) 720、基于NVRAM技術的固態(tài)盤725,或者包含各種存儲設備和技術的、經由網絡接口 730或經由無線接口 740位于遠離計算機系統的存儲器源,實現主存儲器715。高速緩沖存儲器可以位于處理器內或在與處理器接近的位置,例如在處理器的本地總線707上。此外, 高速緩沖存儲器可以包含相對快的存儲器單元,例如六晶體管(6T)單元、或具有大約相等或更快的訪問速度的其他存儲器單元。
然而,本發(fā)明的其他實施 例可以存在于圖3的系統中的其他電路、邏輯單元、或設備中。此外,本發(fā)明的其他實施例可以分布于圖3中說明的整個若干電路、邏輯單元、或設備中。類似地,至少一個實施例可以實現在點對點計算機系統中。例如,圖4說明了在點對點(PtP)配置中安排的計算機系統。特別地,圖4示出了在其中通過多個點對點接口使處理器、存儲器和輸入/輸出設備互連的系統。圖4的系統還可以包括若干處理器,為了清楚起見只示出了其中的兩個處理器 870、880。處理器870、880中的每一個可以包括本地存儲器控制器中心(MCH)811、821以與存儲器850、851連接。處理器870、880可以使用PtP接口電路812、822經由點對點(PtP) 接口 853交換數據。處理器870、880中的每一個可以使用點對點接口電路813、823、860、 861經由各自的PtP接口 830、831與芯片組890交換數據。芯片組890也可以經由高性能圖形接口 862與高性能圖形電路852交換數據。本發(fā)明的實施例可以耦合到計算機總線 (834或835)、或在芯片組890中、或耦合到數據存儲設備875、或耦合到圖4的存儲器850。然而,本發(fā)明的其他實施例可以存在于圖4的系統中的其他電路、邏輯單元或設備中。此外,本發(fā)明的其他實施例可以分布于圖4中說明的整個若干電路、邏輯單元或設備中。本發(fā)明并不限于所描述的實施例,并且可以在所附權利要求的精神和范圍內使用修改和改變來進行實施。例如,應當意識到,本發(fā)明可適于與所有類型的半導體集成電路 (“IC”)芯片一起使用。這些IC芯片的示例包括但不限于處理器、控制器、芯片組部件、可編程邏輯陣列(PLA)、存儲器芯片、網絡芯片等。此外,應當意識到,可以給出示例性的尺寸 /模型/值/范圍,盡管本發(fā)明的實施例并不限定為是相同的。由于制造技術(例如,光刻術)隨著時間變得成熟,所以可以預期能夠制造出更小尺寸的設備。雖然對于本領域的普通技術人員來說,在讀完上述描述之后本發(fā)明的實施例的許多改變和修改將毋庸置疑地變得顯而易見,但是可以理解,以說明的方式描述和示出的任何特定實施例決不旨在被認為是限制性的。所以,提到的各個實施例的細節(jié)并不旨在限制權利要求的范圍,其中所述權利要求只在其本身中陳述被認為對本發(fā)明是必不可少的那些特征。
權利要求
1.一種處理器,包括包括第一內核和第二內核的多個內核;以及渦輪加速模式邏輯,用于如果所述第一內核處于空閑狀態(tài)則增加所述第二內核的操作頻率,其中,增加所述第二內核的操作頻率以使用由于處于空閑狀態(tài)的所述第一內核而產生的所述第一內核的可用功率容量;耦合到所述第一內核的第一高速緩存和耦合到所述第二內核的第二高速緩存;耦合到所述第一內核和所述第二內核的存儲器接口邏輯;耦合到所述第一內核和所述第二內核的總線接口邏輯。
2.根據權利要求1所述的處理器,其中,所述渦輪加速模式邏輯用于通過增加所述第二內核的操作頻率以使用由于處于空閑狀態(tài)的所述第一內核而產生的所述第一內核的可用功率容量,來提高系統的整體性能,其中,所述處理器是所述系統的一部分。
3.根據權利要求1所述的處理器,其中,所述渦輪加速模式邏輯用于響應于事件的發(fā)生將處于空閑狀態(tài)的所述第一內核的可用功率重新分配給所述第二內核。
4.根據權利要求1所述的處理器,其中,所述渦輪加速模式邏輯用于如果所述第一內核處于空閑狀態(tài)則增加所述第二內核的操作頻率,其中,增加所述第二內核的操作頻率以使用由于處于空閑狀態(tài)的所述第一內核而產生的所述第一內核的熱余量。
5.根據權利要求1所述的處理器,其中,所述渦輪加速模式邏輯用于響應于事件的發(fā)生將處于空閑狀態(tài)的所述第一內核的熱余量重新分配給所述第二內核。
6.根據權利要求1所述的處理器,其中,當所述第二內核由于所述第一內核處于空閑狀態(tài)而接收到更多的功率時,所述第二內核操作在比正常模式的操作頻率更高的操作頻率。
7.根據權利要求1所述的處理器,其中,所述第一內核的空閑狀態(tài)是由高級配置和電源接口(ACPI)規(guī)范定義的休眠狀態(tài)中的一種。
全文摘要
介紹了用于提高事件處理的性能的裝置的實施例。在一個實施例中,該裝置包括多個處理元件和任務路由邏輯。如果處理元件中的至少一個處理元件處于渦輪加速模式,那么任務路由邏輯至少基于性能損失的比較來選擇用于執(zhí)行任務的處理元件。
文檔編號G06F15/16GK102306111SQ20111019365
公開日2012年1月4日 申請日期2010年9月26日 優(yōu)先權日2009年12月3日
發(fā)明者(已故) J·P·阿拉雷, O·法利克, R·D·韋爾斯 申請人:英特爾公司