用于提高事件處理的渦輪加速性能的方法和裝置的制造方法
【專利說(shuō)明】用于提高事件處理的渦輪加速性能的方法和裝置
[0001]本申請(qǐng)是2010年9月26日提交的,申請(qǐng)?zhí)枮?01010293325.5的同名專利申請(qǐng)的分案申請(qǐng)。
技術(shù)領(lǐng)域
[0002]本發(fā)明的實(shí)施例涉及中斷事件處理;更具體地,本發(fā)明的實(shí)施例涉及提高事件處理的性能。
【背景技術(shù)】
[0003]在多內(nèi)核處理器中,控制處理內(nèi)核以使用可用的功率余量來(lái)最大化性能是令人期望的。在不是所有的處理內(nèi)核都必須用于處理特定的工作負(fù)荷的情況下,關(guān)閉空閑的內(nèi)核并將功率引導(dǎo)到其他活動(dòng)的內(nèi)核。通常通過(guò)以更高的頻率操作活動(dòng)的內(nèi)核來(lái)將活動(dòng)的內(nèi)核轉(zhuǎn)換到禍輪加速模式(turbomode)。
[0004]多內(nèi)核處理器中的任務(wù)和事件處理算法通常是偽隨機(jī)的并且不考慮當(dāng)內(nèi)核操作于渦輪加速模式時(shí)的影響。因此,影響了系統(tǒng)的整體性能。
【附圖說(shuō)明】
[0005]根據(jù)下面給出的詳細(xì)描述以及本發(fā)明的各個(gè)實(shí)施例的附圖可以更充分地理解本發(fā)明的實(shí)施例,然而,其不應(yīng)被用于將本發(fā)明限制到特定的實(shí)施例,而只是用于解釋和理解。
[0006]圖1示出了計(jì)算機(jī)系統(tǒng)的實(shí)施例,該計(jì)算機(jī)系統(tǒng)包括用于響應(yīng)于中斷事件來(lái)選擇處理元件以執(zhí)行任務(wù)的裝置。
[0007]圖2是用于響應(yīng)于中斷事件來(lái)選擇處理元件以執(zhí)行任務(wù)的處理的一個(gè)實(shí)施例的流程圖。
[0008]圖3說(shuō)明了與本發(fā)明的一個(gè)實(shí)施例一起使用的計(jì)算機(jī)系統(tǒng)。
[0009]圖4說(shuō)明了與本發(fā)明的一個(gè)實(shí)施例一起使用的點(diǎn)對(duì)點(diǎn)計(jì)算機(jī)系統(tǒng)。
【具體實(shí)施方式】
[0010]介紹了用于提高事件處理的性能的裝置的實(shí)施例。在一個(gè)實(shí)施例中,裝置包括多個(gè)處理元件和任務(wù)路由邏輯。如果處理元件中的至少一個(gè)處理元件處于渦輪加速模式,那么任務(wù)路由邏輯至少基于性能損失的比較來(lái)選擇用于執(zhí)行任務(wù)的處理元件。
[0011]在以下描述中,闡述了大量細(xì)節(jié)以提供對(duì)本發(fā)明的實(shí)施例的更透徹的解釋。然而,對(duì)本領(lǐng)域技術(shù)人員顯而易見的是,可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)施本發(fā)明的實(shí)施例。在其他示例中,以框圖的形式而非細(xì)節(jié)的形式示出了公知的結(jié)構(gòu)和設(shè)備,以避免模糊本發(fā)明的實(shí)施例。
[0012]在其他示例中,沒(méi)有詳細(xì)地描述公知的部件或方法,例如,微處理器架構(gòu)、虛擬機(jī)監(jiān)視器、功率控制、時(shí)鐘門控、以及已知邏輯的操作細(xì)節(jié),以避免不必要地模糊本發(fā)明。
[0013]但是,應(yīng)當(dāng)牢記,所有這些以及類似的術(shù)語(yǔ)應(yīng)與合適的物理量相關(guān)聯(lián),并且僅僅是應(yīng)用到這些量的方便的標(biāo)記。除非明確地聲明,否則根據(jù)以下討論顯而易見的是,應(yīng)該意識(shí)到,貫穿本說(shuō)明書的使用諸如“處理”或“計(jì)算”或“運(yùn)算”或“確定”或“顯示”等術(shù)語(yǔ)的討論指代計(jì)算機(jī)系統(tǒng)或類似的電子計(jì)算設(shè)備的動(dòng)作和處理過(guò)程,其對(duì)表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器內(nèi)的物理(電子)量的數(shù)據(jù)進(jìn)行操作,并將所述數(shù)據(jù)轉(zhuǎn)換成類似地表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其它這種信息存儲(chǔ)、傳輸或顯示設(shè)備內(nèi)的物理量的其它數(shù)據(jù)。
[0014]本發(fā)明的實(shí)施例還涉及用于執(zhí)行本文中的操作的裝置??梢葬槍?duì)需要的目的特別地構(gòu)造一些裝置,或者它可以包括由存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地激活或重新配置的通用計(jì)算機(jī)??梢詫⑦@種計(jì)算機(jī)程序存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,例如但不限于,任何類型的盤,其包括軟盤、光盤、CD-ROM、DVD-ROM、以及磁光盤、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、EPROM, EEPROM、NVRAM、磁或光卡,或適合用于存儲(chǔ)電子指令的任何類型的介質(zhì),并且每一個(gè)都耦合到計(jì)算機(jī)系統(tǒng)總線。
[0015]本文描述的方法和裝置用于選擇用于事件處理的處理元件。更具體地說(shuō),參考多內(nèi)核處理器計(jì)算機(jī)系統(tǒng)主要地討論了選擇用于事件處理的處理元件。然而,用于選擇用于事件處理的處理元件的方法和裝置并不限制于此,因?yàn)榭梢栽谌魏渭呻娐吩O(shè)備或系統(tǒng)上或與任何集成電路設(shè)備或系統(tǒng)相關(guān)聯(lián)地實(shí)現(xiàn)該方法和裝置,所述集成電路設(shè)備或系統(tǒng)例如是蜂窩電話、個(gè)人數(shù)字助理、嵌入式控制器、移動(dòng)平臺(tái)、臺(tái)式平臺(tái)和服務(wù)器平臺(tái),以及結(jié)合任何類型的處理元件,例如內(nèi)核、硬件線程、軟件線程、或邏輯處理器、加速器內(nèi)核、或其他處理資源。此外,選擇用于事件處理的處理元件可以發(fā)生在任何硬件/軟件環(huán)境中,例如操作系統(tǒng)或在硬件上執(zhí)行的管理程序。
[0016]臟
[0017]介紹了用于提高事件處理的性能的裝置的實(shí)施例。在一個(gè)實(shí)施例中,裝置包括多個(gè)處理元件和任務(wù)路由邏輯。如果處理元件中的至少一個(gè)處理元件處于渦輪加速模式,那么任務(wù)路由邏輯至少基于性能損失的比較來(lái)選擇用于執(zhí)行任務(wù)的處理元件。
[0018]圖1示出了計(jì)算機(jī)系統(tǒng)的實(shí)施例,該計(jì)算機(jī)系統(tǒng)包括用于響應(yīng)于事件來(lái)選擇處理元件以執(zhí)行任務(wù)的裝置。沒(méi)有示出許多相關(guān)的部件(例如總線和外圍設(shè)備)以避免模糊本發(fā)明。參考圖1,在一個(gè)實(shí)施例中,處理器160包括性能計(jì)算邏輯110、任務(wù)路由邏輯130、渦輪加速模式邏輯140、以及多個(gè)處理元件,例如處理元件131-134。在一個(gè)實(shí)施例中,性能計(jì)算邏輯還包括存儲(chǔ)器111。
[0019]在一個(gè)實(shí)施例中,處理元件包括線程、進(jìn)程、上下文、邏輯處理器、硬件線程、內(nèi)核、加速器內(nèi)核或共享對(duì)處理器160的其他共享資源(例如,預(yù)留單元、執(zhí)行單元、更高層高速緩存、存儲(chǔ)器等)的訪問(wèn)的任何處理元件。在一個(gè)實(shí)施例中,處理元件是線程單元,即,能夠具有由軟件線程獨(dú)立地調(diào)度以用于執(zhí)行的指令的元件。在一個(gè)實(shí)施例中,物理處理器是集成電路,其包括任意數(shù)量的其他處理元件,例如內(nèi)核或硬件線程。
[0020]在一個(gè)實(shí)施例中,內(nèi)核是位于集成電路上的能夠針對(duì)另一個(gè)內(nèi)核保持獨(dú)立架構(gòu)狀態(tài)的邏輯。每一個(gè)獨(dú)立地保持的架構(gòu)狀態(tài)與至少某些專用的執(zhí)行資源相關(guān)聯(lián)。在一個(gè)實(shí)施例中,硬件線程是位于集成電路上的能夠針對(duì)另一個(gè)硬件線程保持獨(dú)立架構(gòu)狀態(tài)的邏輯。每一個(gè)獨(dú)立地保持的硬件線程共享對(duì)執(zhí)行資源的訪問(wèn)。在一些實(shí)施例中,可交換地使用內(nèi)核和硬件線程。在一個(gè)實(shí)施例中,內(nèi)核或硬件線程也被稱為處理元件。
[0021]在一個(gè)實(shí)施例中,操作系統(tǒng)或管理軟件將硬件線程、內(nèi)核、或處理元件視為單獨(dú)的邏輯處理器。軟件程序能夠在每一個(gè)邏輯處理器上單獨(dú)地調(diào)度操作。此外,在一些實(shí)施例中,每一個(gè)內(nèi)核包括用于執(zhí)行多個(gè)軟件線程的多個(gè)硬件線程。
[0022]在一個(gè)實(shí)施例中,管理程序(未示出)提供軟件(例如,虛擬機(jī))和硬件資源(例如,處理器160)之間的接口。在一個(gè)實(shí)施例中,管理程序?qū)τ布M(jìn)行抽象以使得多個(gè)虛擬機(jī)獨(dú)立地并行運(yùn)行。在一個(gè)實(shí)施例中,虛擬機(jī)提供程序的軟件執(zhí)行環(huán)境,所述程序例如是任務(wù)、用戶級(jí)應(yīng)用、客戶機(jī)軟件、操作系統(tǒng)、另一個(gè)虛擬機(jī)、虛擬機(jī)監(jiān)視器、其他可執(zhí)行代碼、或它們的任何組合。在一個(gè)實(shí)施例中,管理程序?qū)⒂布Y源(例如,內(nèi)核、硬件線程、處理元件)分配給不同的程序。
[0023]在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)包括用于經(jīng)由互連發(fā)送和接收信號(hào)的輸入/輸出(I/O)緩沖器?;ミB的示例包括射電收發(fā)機(jī)邏輯(GTL) (Gunning Transceiver Logic)總線、GTL+總線、雙倍數(shù)據(jù)速率(DDR)總線、泵式總線(pumped bus)、差分總線、高速緩存一致總線(cache coherent bus)、點(diǎn)對(duì)點(diǎn)總線、多點(diǎn)下傳(mult1-drop)總線或?qū)崿F(xiàn)任何已知總線協(xié)議的其他已知互連。
[0024]在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)(具體地說(shuō),處理器160)根據(jù)高級(jí)配置和電源接口(ACPI)規(guī)范(參見,2006年10月10日發(fā)布的高級(jí)配置和電源接口規(guī)范3.0b版)支持不同的功率狀態(tài)(例如,C2-狀態(tài)和C3-狀態(tài))。在一個(gè)實(shí)施例中,休眠狀態(tài)(例如,C2-狀態(tài)和C3-狀態(tài))也被稱為空閑狀態(tài)。在一個(gè)實(shí)施例中,處于空閑狀態(tài)的處理元件被稱為休眠內(nèi)核、空閑內(nèi)核或非活動(dòng)內(nèi)核。在一個(gè)實(shí)施例中,功率門控關(guān)閉對(duì)空閑處理元件的功率供應(yīng)??臻e處理元件必須被喚醒以便再次開始執(zhí)行程序。
[0025]在一個(gè)實(shí)施例中,渦輪加速模式邏輯140控制處理元件131-134以使得如果至少另一個(gè)處理元件保持空閑那么至少一個(gè)活動(dòng)處理元件以更高的頻率操作。因此,由活動(dòng)處理元件使用可用的功率和熱余量以增加或提高系統(tǒng)的整體性能。在一個(gè)實(shí)施例中,這種操作模式在本文中被稱為渦輪加速模式。當(dāng)處于渦輪加速模式時(shí),渦輪加速模式