專利名稱:具有群集id和群集內(nèi)id的邏輯apic id的創(chuàng)建的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例一般涉及處理器的中斷。
背景技術(shù):
高級(jí)可編程中斷控制器(APIC)是根據(jù)可編程過程或優(yōu)先級(jí)接收中斷請(qǐng)求并提供中斷輸出的可編程中斷控制器(PIC)。本地APIC用在處理器(諸如微處理器)中。I/OAPIC用在芯片組裝置(諸如輸入/輸出(I/O)控制集線器(ICH))和外圍裝置中。外圍裝置的示例包括耦合到ICH的裝置,其與外圍部件互連(PCI)標(biāo)準(zhǔn)之一或PCI Express(PCIe)標(biāo)準(zhǔn)之一、諸如由PC1-SIG 2006年12月20日提供的PCI Express 基本規(guī)范版本2. O兼容。xAPIC是擴(kuò)展APIC,其類似于早期的APIC,但具有一些附加特征,并且在xAPIC架構(gòu)中,本地和I/O APIC通過系統(tǒng)總線而不是通過APIC總線通信。另外的擴(kuò)展xAPIC包含附加擴(kuò)展和特征。處理器封裝可包含多于I個(gè)核,每一個(gè)核可包含多于I個(gè)處理器。物理模式中斷是中斷裝置通過物理標(biāo)識(shí)號(hào)指定處理器或者廣播到所有處理器的中斷。邏輯模式中斷是中斷裝置通過邏輯標(biāo)識(shí)號(hào)指定處理器的中斷。APIC中斷傳遞包含定向中斷(單個(gè)處理器目標(biāo))、多播(多個(gè)處理器目標(biāo))和廣播(所有處理器)。在最低優(yōu)先級(jí)中斷中,使用過程來選擇處于最低處理器優(yōu)先級(jí)的處理器以響應(yīng)該中斷。最低優(yōu)先級(jí)可以在芯片組中判定一經(jīng)常以專門的方式,或使用處理器優(yōu)先級(jí)的過期數(shù)據(jù)。因?yàn)閮?yōu)先級(jí)信息經(jīng)常不可靠,所以一些芯片組僅選擇特定處理器(諸如通過循環(huán)技術(shù)(round robin technique)),并以廣播方式向該處理器提供中斷,其中其它處理器也接收中斷,但不響應(yīng)它們。邏輯模式在定向中斷中提供了明顯更大的靈活性,并且是微軟Windows和一些Linux壓縮包裝操作系統(tǒng)所用的模式。xAPIC架構(gòu)的邏輯模式給操作系統(tǒng)軟件提供了在初始化邏輯APIC標(biāo)識(shí)號(hào)(ID)方面的靈活性,該ID是系統(tǒng)中每個(gè)處理器的獨(dú)特標(biāo)識(shí)符。(處理器還具有物理APIC ID。)其它處理器以及裝置或IOxAPIC使用這個(gè)ID向這個(gè)處理器發(fā)送中斷。給定在初始化邏輯xAPIC ID方面的靈活性,在平臺(tái)的實(shí)際物理拓?fù)渑c如何分配ID之間沒有關(guān)系。雖然操作系統(tǒng)初始化允許操作系統(tǒng)在給處理器分組方面具有更大的靈活性,但是在平臺(tái)級(jí),這使定向邏輯模式中斷路由變得復(fù)雜。通過廣播中斷并在中斷匹配本地處理器邏輯的本地APIC ID時(shí)使本地處理器邏輯接受該中斷來進(jìn)行邏輯模式中斷的路由。讓每個(gè)處理器檢查每個(gè)中斷導(dǎo)致了性能和功率低效。例如,在廣播方法下,每個(gè)處理器盡管在該處理器處于低功率狀態(tài)時(shí)也檢查看看中斷是否被定向到該處理器。由于中斷發(fā)生得相當(dāng)經(jīng)常,使得處理器難以停留在深低功率狀態(tài)。另外,性能降低了,原因在于,在向中斷未定向的封裝發(fā)送中斷時(shí),在互連上存在業(yè)務(wù)量。在一種方法下,操作系統(tǒng)已經(jīng)試圖使處理器的邏輯群集用于同一封裝中的處理器,其方式是通過按處理器啟動(dòng)的順序分配邏輯ID。如果依賴這種方法,那么它僅提供了部分解決方案,并且仍使用廣播。從而,存在用于創(chuàng)建可以有效的方式路由到處理器的邏輯APIC的需要。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┮环N用于創(chuàng)建邏輯處理器標(biāo)識(shí)號(hào)的方法,包括
在處理器封裝的創(chuàng)建邏輯中接收物理處理器標(biāo)識(shí)號(hào);以及
使用所述物理處理器標(biāo)識(shí)號(hào)來創(chuàng)建邏輯處理器標(biāo)識(shí)號(hào),其中所述邏輯處理器標(biāo)識(shí)號(hào)中的每個(gè)對(duì)應(yīng)于所述物理處理器標(biāo)識(shí)號(hào)之一,以及其中所述邏輯處理器標(biāo)識(shí)號(hào)各包括處理器群集標(biāo)識(shí)號(hào)和群集內(nèi)標(biāo)識(shí)號(hào)。本申請(qǐng)還提供一種處理器封裝,包括
多個(gè)處理器,各包括物理高級(jí)可編程中斷控制器(APIC);以及 邏輯APIC ID創(chuàng)建邏輯,用于
接收物理處理器標(biāo)識(shí)號(hào);以及
使用所述物理處理器標(biāo)識(shí)號(hào)來創(chuàng)建邏輯處理器標(biāo)識(shí)號(hào),其中所述邏輯處理器標(biāo)識(shí)號(hào)中的每個(gè)對(duì)應(yīng)于所述物理處理器標(biāo)識(shí)號(hào)之一,以及其中所述邏輯處理器標(biāo)識(shí)號(hào)各包括處理器群集標(biāo)識(shí)號(hào)和群集內(nèi)標(biāo)識(shí)號(hào)。
根據(jù)下面給出的具體實(shí)施方式
和本發(fā)明實(shí)施例的附圖將更全面理解本發(fā)明,然而,這不應(yīng)認(rèn)為是將本發(fā)明局限于所描述的具體實(shí)施例,而只是用于說明和理解。圖1是根據(jù)本發(fā)明的一些實(shí)施例包含多核處理器封裝、輸入/輸出集線器和裝置的系統(tǒng)的框圖表示。圖2是根據(jù)本發(fā)明的一些實(shí)施例包含多核處理器封裝、輸入/輸出集線器和裝置的系統(tǒng)的框圖表示。圖3是供本發(fā)明一些實(shí)施例之用的電路板上插座(socket)的框圖表示。圖4是供本發(fā)明一些實(shí)施例之用的物理APIC ID寄存器的框圖表示。圖5是供本發(fā)明一些實(shí)施例之用的邏輯APIC ID寄存器的框圖表示。圖6是邏輯APIC ID創(chuàng)建邏輯的框圖表示。圖7例示了供本發(fā)明一些實(shí)施例之用的根據(jù)物理APIC ID生成邏輯APIC ID。圖8例示了根據(jù)本發(fā)明一些實(shí)施例的每個(gè)封裝具有四個(gè)核且每個(gè)核具有兩個(gè)邏輯處理器的兩插座系統(tǒng)的物理和邏輯APIC ID。圖9是供本發(fā)明一些實(shí)施例之用的具有多個(gè)條目的APIC重定向表的框圖表示。圖10是供本發(fā)明一些實(shí)施例之用的APIC重定向表?xiàng)l目的框圖表示。
具體實(shí)施例方式在一些實(shí)施例中,系統(tǒng)根據(jù)處理器物理ID創(chuàng)建每個(gè)處理器的邏輯APIC ID。邏輯APIC ID包含處理器群集ID和群集內(nèi)的處理器號(hào)(群集內(nèi)ID)。邏輯APIC ID創(chuàng)建成使得群集內(nèi)的所有處理器都包含在同一處理器封裝中。這幫助減少了互連上的業(yè)務(wù)量,原因在于,中斷可只定向到一個(gè)處理器封裝,而不是廣播到所有處理器封裝。另外,這降低了功耗,原因在于,其它處理器封裝中的處理器(或者在一些情況下同一處理器封裝內(nèi)的其它群集)不接收中斷,并且因此不必確定中斷是否定向到它們。在一些情況下,這防止處理器必須從休眠狀態(tài)出來。在一些實(shí)施例中,邏輯目的標(biāo)識(shí)號(hào)可包含可用來響應(yīng)于中斷的處理器。處理器選擇邏輯選擇其中一個(gè)可用處理器接收中斷。在以下論述中,物理APIC ID是物理處理器標(biāo)識(shí)號(hào)的示例,而邏輯APIC ID是邏輯處理器標(biāo)識(shí)號(hào)的示例。邏輯APIC ID創(chuàng)建邏輯是邏輯標(biāo)識(shí)號(hào)創(chuàng)建邏輯的示例。1.系統(tǒng)概述
圖1例示了可用在本發(fā)明一些實(shí)施例中的系統(tǒng),但是其它實(shí)施例可包含包括不同細(xì)節(jié)的系統(tǒng)。參考圖1,系統(tǒng)包含多處理器封裝,該封裝至少包含耦合到輸入/輸出集線器(IOH)12的處理器封裝O和處理器封裝I。IOH 12包含IOH I/O APIC 14、重定向邏輯18和處理器選擇邏輯20。包含PCIe I/O AP IC 28的PCIe裝置26通過中斷接口電路30耦合到IOH
12。裝置36(諸如鍵盤和鼠標(biāo))通過IOH I/O APIC 14提供中斷。IOH I/O APIC 14、I/
OPCIe APIC 28和本地APIC 72-1...72-4和78-1...78-4可以是各種類型的APIC,諸如xAPIC或擴(kuò)展xAPIC。備選地,可以使用APIC之外的其它中斷控制器。封裝O包含核O和I以及在本文稱為非核42的附加電路。核O包含處理器70_1和70-2,這些處理器分別包含本地APIC 72-1和72_2,而核I包含處理器70_3和70_4,這些處理器分別包含本地APIC 72-3和72-4。封裝I包含核2和3以及稱為非核52的附加電路。核I包含處理器76-1和76-2,這些處理器分別包含本地APIC 78-1和78_2,而核3包含處理器76-3和76-4,這些處理器分別包含本地APIC 78-3和78_4。封裝O和I將包含未具體例示的各種部件。存儲(chǔ)器64 (諸如主存儲(chǔ)器DRAM)耦合到非核42,而存儲(chǔ)器66耦合到非核52。存儲(chǔ)器60 (包含保存操作系統(tǒng)(OS)的硬盤驅(qū)動(dòng)器)耦合到IOH 12。在存儲(chǔ)器60與IOH 12之間可存在中間部件。BIOS存儲(chǔ)器62耦合到IOH 12。處理器70-1、70-2、70-3和70-4分別具有物理APIC ID P0、P1、P2和P3。處理器70-1、70-2、70-3和70-4分別具有物理APIC ID P0、P1、P2和P3。邏輯APIC ID創(chuàng)建邏輯(圖6中)分別基于物理ID 041、?2和?3以及P16、P17、P18和P19提供邏輯APIC IDL0、L1、L2 和 L3 以及 L16、L17、L18 和 L19。(當(dāng)然,P0...P4 和 P16...P19 以及 L0...L3 和L16...L19表示ID位,并不是字母“P”或“L”和數(shù)字。)在一些實(shí)施例中,封裝O和I包含多于2個(gè)核(例如見圖8),并且一個(gè)核可包含多于2個(gè)處理器。在所例不的實(shí)施例中,在P3與P16之間的物理ID中以及在L3與L16之間的對(duì)應(yīng)邏輯ID中存在間隙。這個(gè)的原因是,在這些實(shí)施例中,群集包含16個(gè)處理器的ID,而無論是否存在16個(gè)實(shí)際處理器。處理器封裝可包含I個(gè)芯片(管芯)或多于I個(gè)芯片。處理器封裝可包含O個(gè)、I個(gè)或多于I個(gè)存儲(chǔ)器芯片。重定向邏輯18從裝置26接收值(例如16位值),并向封裝O或封裝I提供中斷??梢栽诟鞣N地方判定哪個(gè)處理器用于響應(yīng)于中斷。例如,根據(jù)該實(shí)施例,可以在IOH 12中的處理器選擇邏輯20中,和/或在非核中的處理器選擇子邏輯(諸如非核42中的處理器選擇子邏輯46或非核52中的處理器選擇子邏輯56)中進(jìn)行判定。子邏輯48中的過濾器48和子邏輯56中的過濾器58可用于例如基于功率狀態(tài)(c狀態(tài))和/或處理器優(yōu)先級(jí)濾出不考慮的處理器。在處理器選擇邏輯20中可使用類似過濾器。在一些實(shí)施例中,沒有處理器選擇邏輯20,而是只有處理器選擇子邏輯。圖2類似于圖1,并且例示了具有IOH APIC 114、重定向邏輯118、處理器選擇邏輯120和中斷接口電路130的IOH 112,它們可類似于或等同于圖1中的IOH APIC 14、重定向邏輯18、處理器選擇邏輯20和中斷接口電路30。圖2還例示了包含處理器群集O和處理器群集I的處理器封裝O、包含處理器群集2和處理器群集3的處理器封裝1、包含處理器群集2(N-1)和處理器群集2 (N-1)+1的處理器封裝N-1。處理器封裝O、L...N-1通過互連142-0,142-1...142-N-1耦合到IOH 112。在一些實(shí)施例中,存在分開的互連以將處理器分開,而在其它實(shí)施例中,只有一組互連用于每個(gè)處理器封裝,或一組中斷用于每個(gè)群集。中斷的群集ID指示哪個(gè)群集要接收中斷。例如,假設(shè)群集ID是0000000000000010b (其中b指示二進(jìn)制)。那將指示群集2
要接收中斷。相比中斷被廣播到所有處理器的方法,這涉及較少功率并涉及互連上的較少業(yè)務(wù)量。不在互連142-0和142-N-1上發(fā)送中斷,因此在這些互連上有較少業(yè)務(wù)量,這有助于帶寬和功率降低。再者,群集0、1、3、2(N-1)和2(N-1)+1中的處理器不必檢查中斷是否定向到它們,這降低了功率(特別是在處理器必須從深低功率狀態(tài)出來以確定中斷是否定向到它的情況下)。不同群集中的處理器之間因?yàn)榈攸c(diǎn)可能也存在較少的高速緩存線業(yè)務(wù)量。其它實(shí)施例在處理器封裝中可包含甚至更多的處理器群集。其它部件(諸如非核,如果包含的話)在圖2中未示出。可存在附加部件,諸如IOH與處理器封裝之間的橋。另外,系統(tǒng)中可存在多于I個(gè)Ι0Η。圖3例示了包含插座的電路板190 (諸如印刷電路板),插座包含插座O以容納處理器封裝0,插座N-1以容納處理器封裝N-1,以及插座194以容納IOH芯片。在一些實(shí)現(xiàn)中,電路板190包含用于處理器封裝和用于各種其它芯片的附加插座,但是在其它實(shí)現(xiàn)中,電路板190只包含2個(gè)插座。本文所用的術(shù)語“插座”涵蓋了用于將芯片耦合到電路板的各種技術(shù)。2.APIC ID 初始化
在一些實(shí)施例中,物理APIC ID例如在從復(fù)位狀態(tài)出來時(shí)通過硬件和/或微代碼靜態(tài)地初始化/鎖存,并保持到下一加電循環(huán)(power cycle)為止。圖4例示了保存32位物理APIC ID的寄存器110,在一些實(shí)施例中APIC ID包含在對(duì)應(yīng)的本地APIC中。在邏輯模式中所用的邏輯APIC ID在處理器群集內(nèi)被劃分成兩個(gè)字段——16位寬群集ID和16位寬邏輯ID。邏輯ID的16個(gè)最高有效位含有目的群集的地址或標(biāo)識(shí)號(hào),而較低16位標(biāo)識(shí)群集內(nèi)的各個(gè)本地APIC單元。邏輯ID部分可以是群集中每個(gè)處理器I位的位屏蔽——例如,位O將設(shè)置用于處理器群集中的處理器0,位I用于處理器群集中的處理器1,等等。圖5例示了保存32位邏輯APIC ID的寄存器112,其中位16到31保存群集ID,而位O到15保存群集內(nèi)邏輯ID。作為實(shí)際問題,許多系統(tǒng)將具有少量的處理器群集,使得例如只需要I位或2位來標(biāo)識(shí)群集ID。在不同的實(shí)施例中,其余位可以進(jìn)行不同地處理。例如,其中一些位在一些系統(tǒng)中省略了,而在其它系統(tǒng)中使用了。通過初始化算法,可基于平臺(tái)拓?fù)湓谶壿婣PIC ID與物理APIC ID之間建立永久關(guān)系。這給路由結(jié)構(gòu)提供了特定處理器封裝(插座)的知識(shí),以與進(jìn)行廣播相反的方式路由中斷。在處理器群集可裝有限制為16個(gè)處理器的情況下,如果在處理器封裝中存在多于16個(gè)處理器,那么每個(gè)封裝將存在多個(gè)群集。如果在群集中存在少于16個(gè)處理器,那么可使用APIC ID的填充。邏輯APIC ID創(chuàng)建邏輯216根據(jù)物理APIC ID創(chuàng)建邏輯APIC ID。邏輯APIC ID創(chuàng)建邏輯216可以用硬件、軟件或微代碼或者它們的組合來實(shí)現(xiàn)。硬件可以在非核或本地APIC中,或者其它地方。在一些實(shí)施例中,得出邏輯APIC ID,使得對(duì)物理APIC ID的較低4位(即1〈〈物理APIC ID [3:0])“解碼”,以在群集內(nèi)提供16位邏輯ID。物理APIC ID的其余16位然后形成邏輯xAPIC ID的群集ID部分。由此使用如下公式,根據(jù)本地xAPIC ID導(dǎo)出邏輯xAPIC ID:
邏輯 APIC ID=[(物理 APIC ID[19:4]〈〈16) I I (1〈〈物理 APIC ID[3:0])]
在該公式中,符號(hào)I I意思是“或”,但可以用加代替,并且將獲得相同的結(jié)果。這個(gè)公式可以類似如下的方式重新闡述:
邏輯ID= (1〈〈本地xAPIC ID[3:0]) //群集內(nèi)邏輯ID
I(本地 xAPIC ID [19:4]〈〈16) //群集 ID圖7例示了在得出邏輯APIC的過程示例中將寄存器210中的物理APIC ID轉(zhuǎn)換成寄存器212中的邏輯APIC ID。位20-31可以省略,或者用于各種目的。圖8示出了通過處理器封裝O和I中的物理APIC ID獲得邏輯APIC ID的示例,每個(gè)處理器封裝包含各有2個(gè)處理器的4個(gè)核。由于每個(gè)封裝存在少于16個(gè)處理器,因此每個(gè)封裝只有I個(gè)群集。參考封裝0,處理器PO的物理APIC ID顯示為OOOOOb0 “b”用于二進(jìn)制。第一個(gè)O來自群集ID,并指示該群集是封裝O中的群集。為了在圖中節(jié)省空間,在圖8中未例示來自群集ID的其它位。四個(gè)加下劃線的O在群集內(nèi)ID中,并指示物理APICID是O (沒有列出所有O)。 在以上論述的過程之后,通過在群集內(nèi)邏輯ID中的最低有效位(LSB)中以“I”開始,其它的包含0,然后將“I”移位物理ID的前4位中發(fā)現(xiàn)的量,來創(chuàng)建邏輯APIC ID。由于處理器PO的物理ID的前4位是0000,所以“I”不移位,并且因此邏輯ID是OOOlh(其中“h”是指十六進(jìn)制)。十六進(jìn)制用于允許在圖8中例示大數(shù)。群集ID(O)保持與物理ID的位4-19中的相同。在處理器Pl的情況下,物理ID的4個(gè)LSB是0001,因此“ I”被移位I位,使得群集ID對(duì)于群集O是0,而邏輯ID是0002h,這是通過將I移位I位引起的。例如,在處理器P5的情況下,將“I”向左移位5位,這用十進(jìn)制表示是32,或者用十六進(jìn)制表示是20。對(duì)封裝I遵循相同原則,只是群集ID在物理和邏輯APIC ID中都是
1例如根據(jù)實(shí)現(xiàn)的方便,初始化可發(fā)生在多個(gè)時(shí)間點(diǎn)。什么時(shí)候可發(fā)生初始化的示例包括:當(dāng)從復(fù)位狀態(tài)出來時(shí),當(dāng)初始化物理APIC ID時(shí),或者在操作系統(tǒng)第一次讀取邏輯APIC ID的時(shí)候。填充APIC ID的以上算法如果需要的話可以確保每個(gè)APIC群集都限制于單個(gè)處理器封裝。3.處理器選擇邏輯和重定向
處理器選擇邏輯從可用的選項(xiàng)中選擇處理器接收中斷。讓本地APIC接收中斷是處理器接收中斷的一個(gè)示例。在現(xiàn)有技術(shù)中,已經(jīng)通過最低優(yōu)先級(jí)方案為中斷選擇了處理器。然而,如下面所說明的,在判定哪個(gè)處理器要接收中斷時(shí),可以考慮不同于或者除了處理器優(yōu)先級(jí)之外還有的因素。操作系統(tǒng)可選擇群集和群集內(nèi)可用于中斷的至少一個(gè)處理器。這個(gè)信息可直接或間接包含在由諸如圖1中裝置26的裝置所提供的中斷中。例如,在直接實(shí)現(xiàn)中,中斷可包含16位字段,以位映像方式一位用于群集中的每個(gè)處理器(但是在可能不使用某些位的情況下,可能存在少于16個(gè)處理器)。當(dāng)“I”在與處理器相關(guān)聯(lián)的位置時(shí),該處理器是可用的,這種位置在以上論述的公式中和圖8中用于根據(jù)物理APIC ID提供邏輯APIC ID。這可稱為邏輯目的ID。作為一個(gè)示例,邏輯目的ID位屏蔽可以是00101101,其指示處理器P0、P2、P3和P5可用于中斷。這假定在群集中存在8個(gè)處理器,因此未示出左邊的最高8位。當(dāng)然,可以顛倒“O”和“ I ”的角色,因此O表示可用的處理器,而I表示不可用的處理器。上面論述的處理器選擇邏輯可以選擇哪個(gè)可用處理器要接收中斷。注意,雖然通常只有一個(gè)處理器接收中斷,但在某些情況下,中斷可定向到多于I個(gè)處理器。作為備選,來自裝置36的中斷可以包含索引(諸如16位索引),其提供到重定向表中的索引,這可包含在圖1的重定向邏輯19中。參考圖9,重定向表230例如包含用于不同索引值的64位條目。條目234是一個(gè)示例。圖10示出了根據(jù)一些實(shí)施例的示例條目234的細(xì)節(jié),但是在其它實(shí)施例中,它可以不同。參考圖10,位48-63指示群集ID,其在圖10的示例中指示群集2要接收中斷。結(jié)合圖2看示例。仍參考圖10,邏輯目的ID列出了可用處理器供處理器選擇邏輯(或子邏輯)考慮。目的ID位屏蔽Ollb指示處理器PO和Pl可用,而其它處理器不可用。為了便于例示,在圖10中只示出了 16位中的3位。作為另一個(gè)示例,目的位屏蔽可以是00101101b,其指示處理器P0、P2、P3和P5可用,而P1、P4、P6和P7不可用。在這個(gè)示例中沒有處理器P8-P15。可能只有一個(gè)處理器可用。位0-31可以給出各種類型的路由信息,諸如是否涉及定向中斷(direct interrupts)。圖10中示出了“最低優(yōu)先級(jí)”,但是可以考慮所提到的其它因素,諸如功率狀態(tài),使得嚴(yán)格來說,它可能不被認(rèn)為是最低優(yōu)先級(jí)選擇。存在可用于基于處理器功率狀態(tài)和優(yōu)先級(jí)的知識(shí)在群集內(nèi)路由中斷的幾種可能實(shí)現(xiàn)?!胺呛恕敝械囊粋€(gè)可能實(shí)現(xiàn)將使用處理器功率狀態(tài)知識(shí)和優(yōu)先級(jí)來提供中斷路由,以實(shí)現(xiàn)將性能結(jié)論(performance implication)考慮進(jìn)去的兩種功率已知中斷路由(power aware interrupt routing)。非核將具有處理器C狀態(tài)(功率節(jié)省狀態(tài))的知識(shí)-這些
例如稱為C0、C1、C2…C6——其中CO是處理器(或核)正在運(yùn)行代碼的狀態(tài),而CL...C6是處理器停止的空閑狀態(tài):C1是最低功率節(jié)省狀態(tài),而C6是較高功率節(jié)省狀態(tài)。再者,進(jìn)入Cl的等待時(shí)間(以及微架構(gòu)邊界效應(yīng))可以是最低的,而對(duì)于C6,那些是最高的。為了從較深C狀態(tài)(諸如C6)提供最高值,可以期望考慮已經(jīng)進(jìn)入C6狀態(tài)的處理器停留在那個(gè)狀態(tài)的時(shí)間為最長可能的間隔。在這個(gè)可能實(shí)現(xiàn)中,非核將通過(I)標(biāo)識(shí)最低標(biāo)號(hào)的C狀態(tài)的處理器,并(2)在這些處理器當(dāng)中找到具有最低優(yōu)先級(jí)的處理器作為中斷的目標(biāo),來標(biāo)識(shí)目標(biāo)。有多種可實(shí)現(xiàn)這些方法的方式。一種實(shí)現(xiàn)可保持封裝中處理器在各種C狀態(tài)的位映射(bitmap),將這些位映射對(duì)照進(jìn)來的目標(biāo)位映射進(jìn)行比較,并拾取該位映射中最高或最低 APIC ID 作為目標(biāo)(An implementation can retain a bitmap of the processorsin a package in various C-states, AND these against the incoming target bit mapand pick the highest or lowest APIC ID in that bitmap as the target)。可以使用其它實(shí)現(xiàn)細(xì)節(jié)。附加信息和實(shí)施例
本文提到的“邏輯”可以用電路、軟件或微代碼或者它們的組合實(shí)現(xiàn)。
實(shí)施例是本發(fā)明的實(shí)現(xiàn)或示例。說明書中提到“實(shí)施例”、“一個(gè)實(shí)施例”、“一些實(shí)施例”或“其它實(shí)施例”是指結(jié)合這些實(shí)施例所描述的特定特征、結(jié)構(gòu)或特性包含在至少一些實(shí)施例中,但不一定包含在所有實(shí)施例中?!皩?shí)施例”、“一個(gè)實(shí)施例”或“一些實(shí)施例”的各種出現(xiàn)不一定都指相同實(shí)施例。當(dāng)說元件“A”耦合到元件“B”時(shí),元件A可以直接耦合到元件B,或者例如通過元件C間接耦合。當(dāng)說明書或權(quán)利要求書提到部件、特征、結(jié)構(gòu)、過程或特性A “引起”部件、特征、結(jié)構(gòu)、過程或特性B,是指“A”是“B”的至少部分原因,但是可能還有至少一個(gè)其它部件、特征、結(jié)構(gòu)、過程或特性幫助引起“B”。同樣,A響應(yīng)B,不是指它就不響應(yīng)C。如果說明書提到“可以”、“可能”或者“能夠”包含部件、特征、結(jié)構(gòu)、過程或特性,則該特定部件、特征、結(jié)構(gòu)、過程或特性不是必須被包含。如果說明書或權(quán)利要求書提到“一個(gè)”元件,則并不意味著只有一個(gè)元件。本發(fā)明不限于本文描述的具體細(xì)節(jié)。實(shí)際上,在本發(fā)明的范圍內(nèi)可以進(jìn)行以上說明書和附圖的許多其它改變。由此,是包含對(duì)其任何修改的如下權(quán)利要求書來限定本發(fā)明的范圍。
權(quán)利要求
1.一種用于創(chuàng)建邏輯處理器標(biāo)識(shí)號(hào)的方法,包括: 在處理器封裝的創(chuàng)建邏輯中接收物理處理器標(biāo)識(shí)號(hào);以及 使用所述物理處理器標(biāo)識(shí)號(hào)來創(chuàng)建邏輯處理器標(biāo)識(shí)號(hào),其中所述邏輯處理器標(biāo)識(shí)號(hào)中的每個(gè)對(duì)應(yīng)于所述物理處理器標(biāo)識(shí)號(hào)之一,以及其中所述邏輯處理器標(biāo)識(shí)號(hào)各包括處理器群集標(biāo)識(shí)號(hào)和群集內(nèi)標(biāo)識(shí)號(hào)。
2.如權(quán)利要求1所述的方法,還包括形成包括來自在適當(dāng)位置移位的對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)的一組位的所述處理器群集標(biāo)識(shí)號(hào)。
3.如權(quán)利要求2所述的方法,還包括響應(yīng)于對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)的位中的其它位的值而形成所述群集內(nèi)標(biāo)識(shí)號(hào)。
4.如權(quán)利要求3所述的方法,其中,所述群集內(nèi)標(biāo)識(shí)號(hào)各通過將值移位對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)的一些位中包括的量來形成。
5.如權(quán)利要求3所述的方法,其中,所述邏輯處理器標(biāo)識(shí)號(hào)(邏輯ID)中的每個(gè)按照涉及對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)(物理ID)的下列公式來形成:邏輯 ID=[(物理 ID[19:4]〈〈16) | | (1〈〈物理 ID[3:0])]。
6.如權(quán)利要求3所述的方法,其中,將所述邏輯處理器標(biāo)識(shí)號(hào)和所述物理處理器標(biāo)識(shí)號(hào)中的相應(yīng)標(biāo)識(shí)號(hào)定向到所述處理器封裝中的處理器。
7.如權(quán)利要求6所述的方法,其中,所述處理器各包括本地高級(jí)可編程中斷控制器(APIC)。
8.如權(quán)利要求3所述的方法,其中,所述邏輯處理器標(biāo)識(shí)號(hào)是邏輯高級(jí)可編程中斷控制器(APIC)標(biāo)識(shí)號(hào)(ID),以及所述物理處理器標(biāo)識(shí)號(hào)是物理APIC ID。
9.如權(quán)利要求8所 述的方法,其中,所述邏輯高級(jí)可編程中斷控制器標(biāo)識(shí)號(hào)和所述物理APIC ID 是 xAPIC ID。
10.如權(quán)利要求8所述的方法,其中,所述邏輯高級(jí)可編程中斷控制器標(biāo)識(shí)號(hào)和所述物理APIC ID是擴(kuò)展xAPIC ID。
11.一種處理器封裝,包括: 多個(gè)處理器,各包括物理高級(jí)可編程中斷控制器(APIC);以及 邏輯APIC ID創(chuàng)建邏輯,用于: 接收物理處理器標(biāo)識(shí)號(hào);以及 使用所述物理處理器標(biāo)識(shí)號(hào)來創(chuàng)建邏輯處理器標(biāo)識(shí)號(hào),其中所述邏輯處理器標(biāo)識(shí)號(hào)中的每個(gè)對(duì)應(yīng)于所述物理處理器標(biāo)識(shí)號(hào)之一,以及其中所述邏輯處理器標(biāo)識(shí)號(hào)各包括處理器群集標(biāo)識(shí)號(hào)和群集內(nèi)標(biāo)識(shí)號(hào)。
12.如權(quán)利要求11所述的處理器封裝,其中,所述邏輯APICID創(chuàng)建邏輯用于形成包括來自在適當(dāng)位置移位的對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)的一組位的所述處理器群集標(biāo)識(shí)號(hào)。
13.如權(quán)利要求12所述的處理器封裝,其中,所述邏輯APICID創(chuàng)建邏輯用于響應(yīng)于對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)的位中的其它位的值而形成所述群集內(nèi)標(biāo)識(shí)號(hào)。
14.如權(quán)利要求11所述的處理器封裝,其中,所述處理器封裝還包括非核。
15.如權(quán)利要求14所述的處理器封裝,其中,所述非核包括用于解碼要使用哪個(gè)處理器來響應(yīng)于中斷的處理器選擇邏輯。
16.如權(quán)利要求15所述的處理器封裝,其中,所述非核包括用于過濾不考慮的處理器的過濾器。
17.如權(quán)利要求16所述的處理器封裝,其中,所述過濾器用于基于功率狀態(tài)來過濾第一處理器。
18.如權(quán)利要求17所述的處理器封裝,其中,所述過濾器用于基于功率狀態(tài)來過濾第二處 理器。
全文摘要
本申請(qǐng)涉及具有群集ID和群集內(nèi)ID的邏輯APICID的創(chuàng)建。在一些實(shí)施例中,設(shè)備包含邏輯中斷標(biāo)識(shí)號(hào)創(chuàng)建邏輯以接收物理處理器標(biāo)識(shí)號(hào),并通過使用物理處理器標(biāo)識(shí)號(hào)創(chuàng)建邏輯處理器標(biāo)識(shí)號(hào)。每一個(gè)邏輯處理器標(biāo)識(shí)號(hào)對(duì)應(yīng)于其中一個(gè)物理處理器標(biāo)識(shí)號(hào),并且邏輯處理器標(biāo)識(shí)號(hào)各包含處理器群集標(biāo)識(shí)號(hào)和群集內(nèi)標(biāo)識(shí)號(hào)。處理器群集標(biāo)識(shí)號(hào)各形成為包含來自在適當(dāng)位置移位的對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)的一組位,并且群集內(nèi)標(biāo)識(shí)號(hào)各響應(yīng)于對(duì)應(yīng)物理處理器標(biāo)識(shí)號(hào)位中其它位的值形成。描述了其它實(shí)施例。
文檔編號(hào)G06F13/24GK103077138SQ20131001367
公開日2013年5月1日 申請(qǐng)日期2008年8月28日 優(yōu)先權(quán)日2007年9月6日
發(fā)明者S.D.考什基, K.K.蒂魯瓦盧爾, J.B.克羅斯蘭, S.穆思拉薩納盧爾, R.S.帕塔薩拉蒂, L.P.霍德 申請(qǐng)人:英特爾公司