多處理器系統(tǒng)中的操作系統(tǒng)管理的中斷引導(dǎo)的制作方法
【專利說明】
【背景技術(shù)】
[0001]所有現(xiàn)代計算平臺實施了一種稱為中斷處理的機制。一般說來,設(shè)備向系統(tǒng)生成稱為中斷的信號以便請求異步服務(wù)被執(zhí)行。響應(yīng)于該中斷,系統(tǒng)執(zhí)行中斷句柄。中斷句柄是如下這樣的計算機程序,即:其當(dāng)被處理器執(zhí)行時促使系統(tǒng)執(zhí)行所請求的服務(wù)或響應(yīng)于該中斷的其他合適動作。中斷句柄可以進(jìn)而調(diào)度附加操作被執(zhí)行,以便輔助對該中斷做出響應(yīng)或?qū)﹃P(guān)聯(lián)于該中斷的數(shù)據(jù)進(jìn)行處理。
[0002]在現(xiàn)代計算平臺中,通常存在幾個可以生成中斷的設(shè)備,每個具有其自己的中斷句柄。每個設(shè)備生成中斷的速率一般是可變的。處理每個中斷所花費的時間量也可以變化。
[0003]在多處理器系統(tǒng)中,每個單個中斷通常被定向到單一的處理器;然而,某些中斷體系結(jié)構(gòu)允許中斷被定向到處理器的集群。一般說來,多處理器系統(tǒng)被設(shè)計為,使得在嘗試最優(yōu)化總體系統(tǒng)吞吐量、等待時間和功率消耗中的一個或多個的同時,將中斷分布到系統(tǒng)的處理器的子集中。例如,在某些系統(tǒng)中,所有中斷都被定向到執(zhí)行中斷句柄的專用處理器。在某些系統(tǒng)中,靜態(tài)地為每個生成中斷的設(shè)備或進(jìn)程(即,中斷源)指派用于其中斷句柄的處理器。
[0004]在某些系統(tǒng)中,基于硬件的中斷控制器可以基于該中斷控制器本地的信息,動態(tài)地將每個中斷指派給處理器中的一個。在某些系統(tǒng)中,中斷控制器在處理器集合中以循環(huán)方式指派該處理器集合處理每個中斷,其中,所述處理器集合中的每個處理器使用各種中斷句柄被編程。在某些實施例中,中斷控制器將每個中斷廣播給處理器集合,所述處理器集合中的每個處理器選擇是否接受該中斷。在某些系統(tǒng)中,中斷被定向到當(dāng)前正處理最低優(yōu)先級任務(wù)的處理器的子集內(nèi)的處理器。
【發(fā)明內(nèi)容】
[0005]本摘要以簡化形式介紹下面在詳細(xì)說明書中進(jìn)一步描述的所選概念。本摘要既不旨在標(biāo)識所要求保護的主題的關(guān)鍵或基本特征,其也不旨在限制所要求保護的主題的范圍。
[0006]提供一種操作系統(tǒng),在其中,中斷路由器基于來自處理器集合的總體負(fù)載信息,動態(tài)地將每個中斷源引導(dǎo)到所述處理器集合內(nèi)的處理器。基于由關(guān)聯(lián)的中斷施加的負(fù)載和對于處理器的目標(biāo)總體負(fù)載,將中斷源指派給處理器。例如,每個處理器可以隨時間維護關(guān)于其處理的每個中斷的信息。操作系統(tǒng)接收該歷史負(fù)載信息,以便確定由于來自給定設(shè)備的給定類型的中斷產(chǎn)生的預(yù)期負(fù)載、系統(tǒng)上的總體負(fù)載和對于每個處理器的目標(biāo)負(fù)載。給定中斷源的集合、其預(yù)期負(fù)載以及對于每個處理器的目標(biāo)負(fù)載,則可以在系統(tǒng)的運行時間期間動態(tài)地將每個中斷源指派給處理器。在規(guī)律的基礎(chǔ)上,給定系統(tǒng)的當(dāng)前操作狀況,則可以改變這些指派。還可以基于每個處理器的當(dāng)前功率狀態(tài)來確定所述指派,以避免唯一地激活空閑處理器來處理中斷,以及允許處理器變得空閑從而節(jié)省功率。
[0007]一個挑戰(zhàn)在于測量由于中斷源產(chǎn)生的總體負(fù)載,因為中斷句柄可以響應(yīng)于處理中斷而調(diào)用同一處理器上的附加處理。
[0008]相應(yīng)地,在一方面中,在包括多個處理器的計算機中,中斷路由器接收關(guān)于中斷的信息。所述中斷路由器確定由于由所述多個處理器對中斷進(jìn)行的中斷處理產(chǎn)生的所述計算機上的負(fù)載。所述中斷路由器將每個中斷源指派給所述多個處理器中所選的一個或多個,所述選擇是根據(jù)所述確定的負(fù)載,以便將所述負(fù)載分布到所述處理器中。所述中斷路由器可以周期性地重復(fù)以下:對由于中斷處理產(chǎn)生的所述計算機上的負(fù)載的確定,以及將每個中斷源指派給所述多個處理器中所選的一個。
[0009]在一個實施方案中,中斷路由器從多個處理器中標(biāo)識可用于處理中斷的一定數(shù)量的處理器,并且從所標(biāo)識的可用于處理中斷的一定數(shù)量的處理器中選擇一定數(shù)量的處理器,使得所選處理器的數(shù)量與所確定的負(fù)載除以目標(biāo)每處理器負(fù)載相匹配。所述負(fù)載可以通過以下來確定:響應(yīng)于每個中斷,在被指派給該中斷的處理器上執(zhí)行對于該中斷的中斷句柄,以及,在關(guān)聯(lián)于被指派給該中斷的處理器的存儲器中,存儲指示由于執(zhí)行所述中斷句柄所消耗的處理時間量的數(shù)據(jù)。中斷路由器對針對中斷的、來自多個處理器的所存儲數(shù)據(jù)進(jìn)行匯聚。
[0010]所述處理時間量可以通過以下來確定:存儲當(dāng)開始執(zhí)行中斷句柄時的系統(tǒng)時間戳,計算與當(dāng)結(jié)束執(zhí)行所述中斷句柄時觀測的系統(tǒng)時間戳之間的差,以及,存儲所述計算的差。確定所述處理時間量可以進(jìn)一步包括:對于任何被所述中斷句柄調(diào)用的進(jìn)程,存儲當(dāng)開始執(zhí)行所述進(jìn)程時的系統(tǒng)時間戳,計算與當(dāng)結(jié)束執(zhí)行所述進(jìn)程時觀測的系統(tǒng)時間戳之間的差,以及存儲數(shù)據(jù),所述數(shù)據(jù)指示出針對進(jìn)程計算的差和針對中斷句柄計算的差。確定所述處理時間量可以進(jìn)一步包括:對于任何搶占式活動,諸如中斷或其他過程搶占由另一中斷句柄或執(zhí)行關(guān)聯(lián)工作的進(jìn)程進(jìn)行的中斷處理,計算當(dāng)暫停被搶占的中斷處理時與當(dāng)重新開始被搶占的中斷處理時所觀測的系統(tǒng)時間戳之間的差,以便具有用于執(zhí)行搶占式活動的時間量,使得針對中斷句柄計算的差將用于執(zhí)行搶占式活動的時間量排除在外。
[0011]這些各種方面和實施方案可以用計算機實施進(jìn)程、計算機或包括計算機存儲介質(zhì)的制品來體現(xiàn)。
[0012]在下面的說明書中參考了附圖,附圖形成其部分,并且在其中作為圖示示出了該技術(shù)的特定示例實施方案。應(yīng)當(dāng)理解,在不脫離本公開內(nèi)容的范圍的情況下,可以利用其他實施例,并且可以做出結(jié)構(gòu)上的改變。
【附圖說明】
[0013]圖1是操作系統(tǒng)管理的中斷引導(dǎo)可以在其中被實施的示例計算機的框圖。
[0014]圖2是實施基于操作系統(tǒng)的中斷路由器的示例多處理器系統(tǒng)的框圖。
[0015]圖3圖示出了在跟蹤處理器上的中斷句柄時使用的數(shù)據(jù)結(jié)構(gòu)。
[0016]圖4是標(biāo)識可用于指派給中斷源的處理器的示例實施方案的流程圖。
[0017]圖5是將中斷源指派給處理器的示例實施方案的流程圖。
[0018]圖6是將中斷源重新指派給處理器的示例實施方案的流程圖。
[0019]圖7是跟蹤中斷源對計算機系統(tǒng)的影響的示例實施方案的流程圖。
【具體實施方式】
[0020]下面的小節(jié)提供基于操作系統(tǒng)的中斷引導(dǎo)可以在其中被實施的示例操作環(huán)境。
[0021]參考圖1,下面的描述旨在提供對可以使用這樣的中斷路由器的通用計算機的簡要、一般性描述。所述計算機可以是各種各樣通用或?qū)S糜嬎阌布渲弥械娜我粋€??梢赃m合的周所周知的計算機示例包括但不限于個人計算機、服務(wù)器計算機、手持或膝上設(shè)備(例如,媒體播放器、筆記本計算機、蜂窩電話、個人數(shù)字助理、話音記錄器)、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、游戲控制臺、可編程消費電子裝置、網(wǎng)絡(luò)PC、微型計算機、大型計算機、包括以上系統(tǒng)或設(shè)備中任一個的分布式計算環(huán)境等。
[0022]圖1圖示出了適合計算機的示例。這僅是適合計算機的一個示例,并且不旨在關(guān)于這樣的計算機的使用范圍或功能性建議任何限制。
[0023]參考圖1,采用基本配置的示例計算機100包括至少一個處理單元102和存儲器104。該計算機可以包括多個處理單元和/或諸如圖形處理單元120之類的附加協(xié)同處理單元。取決于計算機的確切配置和類型,存儲器104可以是易失性的(例如RAM