專利名稱:用于在計算機系統(tǒng)中傳遞中斷的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施方式一般涉及信息處理領(lǐng)域,更具體涉及在計算系統(tǒng)和微處理器中
傳遞中斷的領(lǐng)域。
背景技術(shù):
隨著處理器包含更多異類或同類計算核、且計算機系統(tǒng)包含更多處理器,對中斷 的管理越來越困難。某些現(xiàn)有技術(shù)已經(jīng)使用存儲器映射輸入/輸出(匪IO)方案來管理中 斷,其中處理器或核(在此一般稱為"代理")通過為中斷通信信息特別保留的存儲器(例 如DRAM)區(qū)傳遞中斷信息。例如,其中要對高級可編程中斷控制器(APIC)編程的一種現(xiàn)有 的中斷傳遞技術(shù)可通過匪IO區(qū)將要編程的信息傳遞至APIC。 通過匪IO向/從APIC傳遞中斷信息會具有若干缺點,這些缺點會隨著代理數(shù)量 的增多從而中斷通信量的增多而加劇。例如,匪IO訪問會要求與APIC相關(guān)聯(lián)的存儲器區(qū) 與非高速緩存(UC)的訪問屬性映射,這具有與其相關(guān)聯(lián)的高性能開銷。該UC接口還加強 串行化行為,而這并不為APIC寄存器的大子集所需。 使用匪IO接口還需要使用后寫入語義并提供對APIC的讀和寫的排序控制有限的 代理,這會影響在基本中斷相關(guān)指令所需的讀/寫次數(shù)較多的情況下發(fā)送中斷的效率。例 如,在某些現(xiàn)有技術(shù)的匪10實現(xiàn)中,經(jīng)由處理器間的中斷(IPI)將中斷從一個處理器發(fā)送 至另一個處理器在軟件不需要保證中斷已經(jīng)離開本地APIC時可能需要1次UC讀和2次UC 寫,或在軟件需要保證中斷已經(jīng)離開本地APIC時可能需要2次UC讀和2次UC寫。
使用現(xiàn)有技術(shù)的匪IO接口會限制為中斷傳遞高效地提供系統(tǒng)軟件所需機制的能 力。具體示例包括改變中斷優(yōu)先級的操作,這在某些現(xiàn)有技術(shù)實現(xiàn)中可通過系統(tǒng)軟件向任 務(wù)優(yōu)先級寄存器(TPR)寫入來實現(xiàn);以及"中斷結(jié)束"(EOI)操作,這可通過系統(tǒng)軟件向APIC 的EOI寄存器寫入來實現(xiàn)。系統(tǒng)軟件可能需要這些操作的完成與任何重排優(yōu)先級操作的完 成相關(guān)聯(lián),從而在這些操作之前確定發(fā)送的任何中斷在這些操作之后立即結(jié)束。在缺少這 些保證的情況下,系統(tǒng)軟件會使用低效的基于輪詢的機制,這會增加APIC通信量。
使用基于匪IO的中斷信息還會影響計算機系統(tǒng)中的其它部件。例如,使用現(xiàn)有技 術(shù)的MMIO中斷通信接口技術(shù)會增加虛擬化復(fù)雜程度和APIC訪問虛擬化的開銷。例如,用于 訪問中斷控制器的指令可能需要使用虛擬機監(jiān)控器(VMM)來支持計算機系統(tǒng)中的虛擬化。 之前討論的關(guān)于匪IO操作的開銷會與VMM用來進入和離開系統(tǒng)中的虛擬機的開銷混合。
最后,當(dāng)通過匪IO連接時,檢測和加強APIC接口中的保留位會具有高實現(xiàn)成本, 尤其是當(dāng)使用APIC的代理數(shù)量增加時。某些現(xiàn)有技術(shù)中斷傳遞技術(shù)可能限制將保留位位 置用于未來的可擴展體系結(jié)構(gòu),因為遺產(chǎn)軟件可能不正確地對寄存器之一進行寫入。
至少因為上述原因,某些現(xiàn)有技術(shù)中斷傳遞技術(shù),包括使用匪10傳遞中斷信息的 那些技術(shù)可能不適合支持多核處理器中處理核的數(shù)量的增加或多處理器系統(tǒng)中處理器的 數(shù)量的增加。
本發(fā)明的實施方式在各附圖中是作為實施例而非作為限制示出的,在附圖中相同 的附圖標(biāo)記指代相同的元素,并且其中 圖1示出其中可以使用本發(fā)明的至少一個實施方式的微處理器的框圖; 圖2示出其中可以使用本發(fā)明的至少一個實施方式的共享總線計算機系統(tǒng)的框
圖; 圖3示出其中可以使用本發(fā)明的至少一個實施方式的點對點互連計算機系統(tǒng)的 框圖; 圖4示出其中可以實現(xiàn)本發(fā)明的至少一個實施方式的邏輯的框圖;
圖5是可用于執(zhí)行本發(fā)明的至少一個實施方式的操作的流程圖。
具體實施例方式
圖1示出其中可以使用本發(fā)明的至少一個實施方式的微處理器。具體而言,圖1 示出具有一個或多個處理器核105和110的微處理器100,各個處理器核分別具有與其關(guān)聯(lián) 的本地高速緩存107和113。圖1中還示出了共享的高速緩存存儲器115,其可存儲在本地 高速緩存107和113中的每一個中存儲的信息中的至少某些的各種版本。在某些實施方式 中,微處理器100還可包括圖1中未示出的其它邏輯,諸如集成存儲器控制器、集成圖形控 制器以及計算機系統(tǒng)中用來執(zhí)行諸如1/0控制之類的其它功能的其它邏輯。在一個實施方 式中,多處理器系統(tǒng)中的各個微處理器或多核處理器中的各個處理器核可包括或可與邏輯 119相關(guān)聯(lián),以實現(xiàn)根據(jù)至少一個實施方式的中斷傳遞技術(shù)。該邏輯可包括電路、軟件,或既 包括電路又包括軟件,以在多個核或處理器之間實現(xiàn)比現(xiàn)有技術(shù)實現(xiàn)更高效的中斷傳遞。
在一個實施方式中,邏輯119可包括APIC接口寄存器或多個寄存器,這些寄存器 的內(nèi)容可在不使用匪IO的情況下通過一組標(biāo)準(zhǔn)指令或?qū)S脤崿F(xiàn)指令來操縱或讀取。例如, 在一個實施方式中,邏輯119包括寄存器接口,可使用原生指令集體系結(jié)構(gòu)(ISA)與其通 信。在一個實施方式中,相比于某些現(xiàn)有技術(shù),支持可經(jīng)由原生ISA連接的寄存器、多個寄 存器或其它存儲可減少與傳遞中斷相關(guān)聯(lián)的訪問循環(huán)次數(shù)和開銷。在一個實施方式中,可 使用現(xiàn)有技術(shù)的MSR地址經(jīng)由現(xiàn)有技術(shù)的讀和寫操作(例如"RDMSR"和"WRMSR"指令)使 用和訪問專用模型的寄存器或多個寄存器(MSR)。在其它實施方式中,注冊用于中斷控制 器的新的讀/寫指令集和地址空間。在一個實施方式中,新的APIC寄存器接口中明確支持 新的語義,相比于現(xiàn)有技術(shù),這能減少傳遞中斷信息所必需的訪問循環(huán)次數(shù)。在一個實施方 式中,可將現(xiàn)有的微體系結(jié)構(gòu)機制用于保留位檢查,以確保使用用于未來體系結(jié)構(gòu)擴展的 保留寄存器位置。在一個實施方式中,某些系統(tǒng)軟件可繼續(xù)使用遺產(chǎn)匪IO接口。因此,至 少一個實施方式可既提供遺產(chǎn)接口又提供本文中所描述的新APIC寄存器接口 。在一個實 施方式中,使用MSR的新APIC寄存器接口的實現(xiàn)可以實現(xiàn)成本相對低增加地與遺產(chǎn)接口共 存。 例如,圖2示出其中可以使用本發(fā)明的一個實施方式的前端總線(FSB)計算機系 統(tǒng)。任一處理器201、205、210或215可訪問來自處理器核223、227、233、237、243、247、253、 257之一中或與其相關(guān)聯(lián)的任一本地一級(Ll)高速緩存存儲器220、225、230、235、240、 245、250、255的信息。此外,任一處理器201、205、210或215可訪問來自共享二級(L2)高速緩存203、207、213、217中的任一個或經(jīng)由芯片組265訪問來自系統(tǒng)存儲器260的信息。 圖2中的一個或多個處理器可包括邏輯219或可與邏輯219相關(guān)聯(lián),以實現(xiàn)根據(jù)至少一個 實施方式的中斷傳遞技術(shù)。 除圖2所示的FSB計算機系統(tǒng)之外,可以結(jié)合本發(fā)明的各實施方式使用其它系統(tǒng) 配置,包括點對點(P2P)互連系統(tǒng)和環(huán)互連系統(tǒng)。圖3的P2P系統(tǒng)例如可包括若干處理器, 其中作為示例僅示出了兩個處理器370、380。處理器370、380可各包括本地存儲器控制器 集線器(MCH)372、382來與存儲器32、34連接。處理器370、380可以使用點對點(PtP)接 口電路378、388經(jīng)由PtP接口 350來交換數(shù)據(jù)。處理器370、380均可使用點對點接口電路 376、394、386、398經(jīng)由單獨的PtP接口 352、354來與芯片組390交換數(shù)據(jù)。芯片組390還 可經(jīng)由高性能圖形接口 339來與高性能圖形電路338交換數(shù)據(jù)。本發(fā)明的各實施方式可位 于具有任何數(shù)量的處理核的任何處理器中,或位于圖3的PtP總線代理的每一個中。在一 個實施方式中,任何處理器核可包括本地高速緩存存儲器(未示出)或可與本地高速緩存 相關(guān)聯(lián)。此外,可在兩個處理器外部的任一個處理器中包括共享的高速緩存(未示出),并 經(jīng)由p2p互連與這些處理器連接,從而如果將處理器置于低功率模式時,可將任一個或兩 個處理器的本地高速緩存信息存儲在共享的高速緩存中。圖3中的一個或多個處理器或核 可包括邏輯319或可與邏輯319相關(guān)聯(lián),以實現(xiàn)根據(jù)至少一個實施方式的中斷傳遞技術(shù)。
圖4示出執(zhí)行本發(fā)明的至少一個實施方式的邏輯。具體地,圖4示出可用來存儲 用于實現(xiàn)根據(jù)一個實施方式的中斷傳遞的信息的兩個APIC中斷命令寄存器(ICR)。例如, 根據(jù)一個實施方式,寄存器401包括保留位31-20和用于實現(xiàn)APIC傳遞的多個其它控制 位。此外,圖4包括用于存儲用來標(biāo)識中斷目標(biāo)代理的32位目的地識別(ID)字段的寄存 器405。在某些實施方式中,目的地ID字段可在與其它控制字段和位相同的寄存器401中。 此外,在某些實施方式中,ICR 401和405是MSR' s,而在其它實施方式中,它們是其它寄存 器或存儲區(qū)。在一個實施方式中,可使用多種現(xiàn)有MSR寫和讀指令操縱和讀取寄存器401 和405中存儲的位,而在其它實施方式中,可定義并使用新指令來操縱和讀取寄存器401和 405的內(nèi)容。 在一個實施方式中,可使用圖4中示出所包括的寄存器和信息來減少對單個寄存 器寫入的中斷事務(wù),這與基于后寫入語義的現(xiàn)有技術(shù)不同,這需要最少1UC讀和2UC寫(如 果軟件不需要保證中斷已經(jīng)離開本地APIC),或2UC讀和2UC寫(如果軟件需要保證中斷已 經(jīng)離開本地APIC)。 在一個實施方式中,處理器可通過對本地APIC的中斷命令寄存器進行寫入產(chǎn)生 處理器間的中斷(IPI)。在一個實施方式中,APIC ICR包括表明此中斷的傳遞狀態(tài)的遺產(chǎn) 傳遞狀態(tài)位(圖4中的位12),該位可具有只讀屬性。在一個實施方式中,ICR 401的位12 中的0值表明當(dāng)前無活動,而1值表明即將進行發(fā)送。在一個實施方式中,當(dāng)中斷已被發(fā)送 時,傳遞狀態(tài)位(ICR 401的位12)被清空。在支持遺產(chǎn)接口的情況下,系統(tǒng)軟件可在發(fā)送 IPI之前忙碌等待傳遞狀態(tài)位清空。類似地,如果發(fā)送操作的語義要求從本地APIC單元發(fā) 送中斷,則系統(tǒng)軟件可忙碌等待傳遞狀態(tài)位被清空。在APIC接口中,根據(jù)一個實施方式, ICR 401被組合到如圖4所示的單64位MSR中。對ICR 401的單次MSR寫入用于發(fā)出中 斷。根據(jù)一個實施方式,尤其是利用通往APIC ICR 401和405的寄存器接口,在對ICR進 行寫入以發(fā)送IPI之前不需要系統(tǒng)軟件檢查傳遞狀態(tài)位的狀態(tài)。
在一個實施方式中,使具體語義與典型的中斷控制器相關(guān)的操作——具體而言是 TPR寫入和EOI寫入——相關(guān)聯(lián)(和更高效的實現(xiàn))可提高中斷相關(guān)的傳遞和通信量的效 率,同時需要的軟件返工量最少。例如,用于經(jīng)由圖4中所示的ICR讀取和寫入TPR寄存器 的語義可確保由處理器優(yōu)先級變化引起的任何重排優(yōu)先級動作的結(jié)果在TPR之后的下一 指令被執(zhí)行之前被反映至處理器。在TPR寫入之后的指令邊界處可采取任何所得的可傳遞 中斷。經(jīng)由圖4的ICR訪問E0I寄存器確保由E0I引起的任何重排動作的結(jié)果在E0I之后 的下一指令被執(zhí)行之前被反映至處理器。在EOI寫入之后的指令邊界處可采取任何所得的 可傳遞中斷。 在一個實施方式中,可將用來實現(xiàn)圖4中所示的ICR' s的MSR的使用映射至與遺 產(chǎn)實現(xiàn)相同的地址空間中。例如,在一個實施方式中,在遺產(chǎn)寄存器偏移與MSR偏移之間保 持一一對應(yīng),除行為中存在語義變化的寄存器之外。在一個實施方式中,遺產(chǎn)寄存器可以是 128位邊界上的32位寄存器。然而,在其中128位邊界上的32位寄存器對應(yīng)于64位MSR 的一個實施方式中,可根據(jù)以下公式計算MSR寄存器偏移
"MSR寄存器偏移二遺產(chǎn)寄存器偏移/16" 然而,對于根據(jù)一個實施方式的ICR,如圖4所示,兩個32位遺產(chǎn)寄存器被組合成 一個64位MSR。 在一個實施方式中,本發(fā)明解決了與現(xiàn)有技術(shù)中與APIC連接的基于匪IO的接口 相關(guān)聯(lián)的問題。此外,本發(fā)明的實施方式的至少一個實現(xiàn)還為與至少一個實施方式相關(guān)聯(lián) 的需要既支持遺產(chǎn)又支持ICR的系統(tǒng)提供低實現(xiàn)成本增加。 圖5a示出不論其中使用該實施方式的處理器或系統(tǒng)配置如何,均可結(jié)合本發(fā)明 的至少一個實施方式使用的操作的流程圖。具體而言,圖5a示出根據(jù)一個實施方式的在使 用遺產(chǎn)技術(shù)傳遞中斷時用于經(jīng)由支持遺產(chǎn)的協(xié)議傳遞中斷的技術(shù)。在操作501a,輪詢傳遞 狀態(tài)位(圖4中的位12),直到ICR接口可用。在操作505a,當(dāng)狀態(tài)位無效時,在510a執(zhí) 行遺產(chǎn)UC匪IO讀取。在其中遺產(chǎn)寄存器是32位長度的一個實施方式中,通過將目的地 寫成高和低模式發(fā)送中斷。例如,將中斷目標(biāo)地址寫入通用寄存器(例如x86處理器中的 "EAX")。為了與遺產(chǎn)模式兼容,在操作515a,使用UC匪IO寫操作來寫入ICR目的地ID高 部分。在操作520a,通過對ICR的低位(例如,較低32位)執(zhí)行UC匪IO寫入可將ICR的 模式和向量字段寫入,以表明各種遺產(chǎn)中斷特性。在操作525a,通過執(zhí)行UC匪IO讀取循環(huán) 同時將ICR的狀態(tài)字段置為無效,輪詢ICR直到中斷離開本地APIC。 圖5b示出不論其中使用該實施方式的處理器或系統(tǒng)配置如何,均可結(jié)合本發(fā)明 的至少一個實施方式使用的操作的流程圖。在一個實施方式中,通過由如圖4中所示的一 個或多個MSR' s組成的ICR接口傳遞中斷,其中目的地字段在高32位中,而模式/向量信 息在低32位中。在操作501b,中斷的目標(biāo)地址存儲在第一通用寄存器(例如"EDX")中,而 在操作505b,模式和向量信息存儲在第二通用寄存器(例如"EAX")中。在操作510b,對應(yīng) 于MSR地址空間中的ICR的ICR偏移地址存儲在第三通用寄存器(例如"ECX")中。在操作 515b,執(zhí)行指令以將第一和第二通用寄存器中的內(nèi)容或其中指向的內(nèi)容寫入第三通用寄存 器中存儲的地址。在一個實施方式中,該指令是現(xiàn)有技術(shù)MSR寫入指令(例如"WRMSR")。在 其它實施方式中,該指令可以是新定義的指令,具體而言是實現(xiàn)上述技術(shù)的處理器的ISA。
至少一個實施方式的一個或多個方面可以由存儲在機器可讀介質(zhì)上的代表性數(shù)據(jù)來實現(xiàn),該數(shù)據(jù)表示處理器中的各種邏輯,其在被機器讀取時使得該機器制造執(zhí)行此處 所描述的技術(shù)的邏輯。被稱為"IP核"的這些表示可以被存儲在有形的機器可讀介質(zhì)("帶") 上,并被提供給各個顧客或生產(chǎn)設(shè)施以加載到實際制造該邏輯或處理器的制造機器中。
因此,描述了用于指導(dǎo)微架構(gòu)存儲器區(qū)域訪問的方法和裝置。應(yīng)當(dāng)理解,以上描述 旨在是說明性的而非限制性的。在閱讀并理解以上描述之后,許多其它實施方式對本領(lǐng)域 技術(shù)人員而言將是顯而易見的。因此,本發(fā)明的范圍應(yīng)參考所附權(quán)利要求書以及這些權(quán)利 要求享有權(quán)利的等效方案的完全范圍來確定。
權(quán)利要求
一種裝置,包括用來將中斷信息從至少第一代理傳遞至至少第二代理的邏輯,其中所述邏輯包括在不訪問存儲器映射的輸入/輸出(MMIO)區(qū)的情況下傳遞通過至少一個指令操縱的中斷信息的中斷控制接口。
2. 如權(quán)利要求1所述的裝置,其特征在于,所述中斷控制接口包括用來存儲表明至少一個待發(fā)送中斷的狀態(tài)信息的中斷控制寄存器(ICR)。
3. 如權(quán)利要求2所述的裝置,其特征在于,所述ICR包括向量字段。
4. 如權(quán)利要求3所述的裝置,其特征在于,所述ICR包括模式字段。
5. 如權(quán)利要求1所述的裝置,其特征在于,所述至少一個指令對應(yīng)于分別從專用模型寄存器(MSR)讀取信息或向?qū)S媚P图拇嫫?MSR)寫入信息的操作。
6. 如權(quán)利要求l所述的裝置,其特征在于,所述中斷控制接口向高級可編程中斷控制器(APIC)傳遞中斷信息或從高級可編程中斷控制器(APIC)傳遞中斷信息。
7. 如權(quán)利要求6所述的裝置,其特征在于,所述中斷控制接口支持與所述APIC的遺產(chǎn)通信和與所述APIC的非遺產(chǎn)通信。
8. 如權(quán)利要求7所述的裝置,其特征在于,所述APIC是多個本地APIC之一,其中所述每一個APIC對應(yīng)于不同的代理。
9. 一種方法,包括在不使用存儲器映射輸入/輸出(匪IO)存儲的情況下經(jīng)由包括一個或多個專用模型寄存器(MSR)的中斷控制寄存器(ICR)傳遞中斷,其中傳遞所述中斷包括在第一通用寄存器中存儲所述中斷的目標(biāo)地址;在第二通用寄存器中存儲中斷模式和向量信息;在第三通用寄存器中存儲ICR偏移地址;執(zhí)行將所述目標(biāo)地址和所述模式和向量信息寫入ICR偏移地址的指令。
10. 如權(quán)利要求9所述的方法,其特征在于,還包括如果使用遺產(chǎn)技術(shù)傳遞所述中斷,則根據(jù)支持遺產(chǎn)的協(xié)議傳遞所述中斷。
11. 如權(quán)利要求io所述的方法,其特征在于,所述支持遺產(chǎn)的協(xié)議包括輪詢狀態(tài)位直到所述ICR接口變得可用。
12. 如權(quán)利要求11所述的方法,其特征在于,所述支持遺產(chǎn)的協(xié)議還包括當(dāng)所述狀態(tài)位被置為無效時執(zhí)行未高速緩存的匪IO讀取。
13. 如權(quán)利要求12所述的方法,其特征在于,所述支持遺產(chǎn)的協(xié)議還包括將所述向量和模式信息寫入所述ICR中相應(yīng)的字段以表明遺產(chǎn)中斷特性。
14. 如權(quán)利要求13所述的方法,其特征在于,使用非高速緩存的匪IO寫入操作寫入所述ICR的模式和向量字段。
15. 如權(quán)利要求14所述的方法,其特征在于,所述支持遺產(chǎn)的協(xié)議包括輪詢所述ICR的狀態(tài)位,直到所述中斷離開對應(yīng)于所述ICR的高級可編程中斷控制器(APIC)。
16. —種系統(tǒng),包括用來存儲至少讀和寫指令的存儲器;具有多個高級可編程中斷控制器(APIC)的多個處理器,其中所述多個APIC中的每一個在不首先向所述存儲器中的存儲器映射的輸入/輸出(匪IO)地址空間寫入中斷信息或從其中讀取中斷信息的情況下,使用所述至少讀和寫指令經(jīng)由中斷控制寄存器(ICR)傳遞中斷信息。
17. 如權(quán)利要求16所述的裝置,其特征在于,所述ICR包括向量字段。
18. 如權(quán)利要求17所述的裝置,其特征在于,所述ICR包括模式字段。
19. 如權(quán)利要求18所述的裝置,其特征在于,所述至少讀和寫指令對應(yīng)于分別從專用模型寄存器(MSR)讀取信息的操作或向?qū)S媚P图拇嫫?MSR)寫入信息的操作。
20. 如權(quán)利要求19所述的裝置,其特征在于,所述中斷控制接口支持與所述多個APIC的遺產(chǎn)通信和與所述多個APIC的非遺產(chǎn)通信。
21. 如權(quán)利要求20所述的裝置,其特征在于,所述多個APIC對應(yīng)于不同的處理器。
全文摘要
一種實現(xiàn)計算機系統(tǒng)中的高效中斷通信的技術(shù)。在一個實施方式中,在不使用存儲器映射輸入/輸出(MMIO)的情況下,高級可編程中斷控制器(APIC)使用多種接口指令或操作經(jīng)由APIC接口寄存器中的一組位連接。
文檔編號G06F15/163GK101727414SQ20091020797
公開日2010年6月9日 申請日期2009年10月28日 優(yōu)先權(quán)日2008年10月28日
發(fā)明者J·B·克羅斯蘭, K·蒂魯瓦魯, L·胡德, R·帕塔薩拉蒂, S·考什克 申請人:英特爾公司