欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

虛擬中斷模式接口和用于虛擬化中斷模式的方法

文檔序號(hào):6479759閱讀:332來源:國知局
專利名稱:虛擬中斷模式接口和用于虛擬化中斷模式的方法
技術(shù)領(lǐng)域
本發(fā)明涉及中斷和在系統(tǒng)的部件之間的中斷模式兼容性并且特別地涉及一種用 于代表中斷生成設(shè)備來虛擬化中斷模式從而中斷生成設(shè)備可以與其它系統(tǒng)部件恰當(dāng)?shù)鼗?操作的方法。
背景技術(shù)
在前幾代計(jì)算機(jī)硬件和計(jì)算機(jī)系統(tǒng)中,多種不同類型的并行總線用于將部件互 連(比如通過主橋?qū)⑼鈬鶬/O設(shè)備互連到處理器和存儲(chǔ)器總線)。起初,包括并行信號(hào) 線以實(shí)現(xiàn)同時(shí)傳送字節(jié)、16位的字、32位的字或者64位的字的總線提供比串行通信介質(zhì) (其中位值被接連地連續(xù)傳送并且由接收端口合并成字節(jié)、16位的字、32位的字或者64 位的字)更高的數(shù)據(jù)傳送帶寬。然而,在時(shí)鐘速率高時(shí),在總線中的并行信號(hào)線之間的 信號(hào)偏斜可能變成越來越難解決的問題,并且隨著在微處理器和其它集成電路內(nèi)的特征 密度的減少,將集成電路部件與并行總線連接所需要的大量管腳表示著相對(duì)于處理能力 而言越來越高的成本和空間約束。因而,與較舊的并行總線相比,串行通信介質(zhì)現(xiàn)在可 以提供更大的數(shù)據(jù)傳送帶寬、更易于并入系統(tǒng)中、對(duì)集成電路設(shè)計(jì)和封裝施加更少約束 并且還更為經(jīng)濟(jì)。較舊的基于總線的通信介質(zhì)(包括外圍部件互連(“PCI”)和高級(jí) 技術(shù)附件(“ΑΤΑ”))正在被更快、更經(jīng)濟(jì)的串行通信介質(zhì)如PCIe和SATA所取代。較新技術(shù)取代較舊技術(shù)的過程一般為漸進(jìn)的,因而致力于在較新技術(shù)中并入向 后兼容性。例如,較新的PCIe提供向后兼容性特征,從而設(shè)計(jì)成與基于PCI的部件對(duì) 接的較舊部件可以與較新的基于PCIe的部件對(duì)接。然而,盡管致力于在引入較新技術(shù)期 間提供向后兼容性,但是仍然出現(xiàn)問題。作為一個(gè)例子,雖然較新的PCIe串行通信介質(zhì) 和控制器使用通過較新的串行通信介質(zhì)傳輸?shù)南硖峁?duì)PCI通信介質(zhì)中使用的基于 多專用管腳和跡線的中斷機(jī)制的模擬,但是新的PCIe兼容的外圍設(shè)備(如I/O設(shè)備控制 器)可能無法實(shí)施較舊的PCI中斷模式。雖然不支持較舊的基于PCI的中斷模式的較新 的基于PCIe的設(shè)備與設(shè)計(jì)成支持基于PCIe的部件的計(jì)算機(jī)系統(tǒng)正確地互操作,但是這樣 的設(shè)備盡管與PCIe互連兼容卻仍然可能無法在用PCIe互連改進(jìn)的較舊計(jì)算機(jī)系統(tǒng)中正確 工作。在技術(shù)過渡期間,并入較舊技術(shù)的部件和較新技術(shù)的部件二者的計(jì)算機(jī)系統(tǒng)的設(shè) 計(jì)者、制造商、銷售商和用戶因此不斷認(rèn)識(shí)到需要促進(jìn)橋接較新技術(shù)的部件與較舊技術(shù) 的部件之間的不兼容性(比如在設(shè)計(jì)成與繼續(xù)在并入或者連接到較新技術(shù)的部件的計(jì)算 機(jī)系統(tǒng)中使用的較舊技術(shù)的部件對(duì)接的基本輸入輸出系統(tǒng)(“BIOS”)層與操作系統(tǒng)之 間的不兼容性)的方法和設(shè)備。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例針對(duì)用于代表包括I/O設(shè)備控制器的中斷生成設(shè)備來虛擬化中 斷模式從而缺乏較舊中斷模式的較新中斷生成設(shè)備可以用于繼續(xù)依賴于較舊中斷模式的 系統(tǒng)中的方法。在本發(fā)明的一個(gè)實(shí)施例中,修改PCIe交換機(jī)或者基于PCIe的主橋,或者引入新部件以提供中斷模式虛擬化功能或者虛擬中斷模式接口,其代表中斷生成設(shè)備 (如I/O設(shè)備控制器)向操作系統(tǒng)、BIOS層和與I/O設(shè)備控制器通信的其它部件提供虛擬 中斷模式。通過提供中斷模式虛擬化特征,盡管中斷生成設(shè)備不再支持較舊技術(shù)的中斷 模式,主橋、PCIe交換機(jī)或另外的部件仍向上游部件提供較舊技術(shù)的中斷模式的接口, 該上游部件包括一個(gè)或多個(gè)執(zhí)行BIOS和/或一個(gè)或多個(gè)操作系統(tǒng)的CPU。


圖1示出了包括PCI并行互連的簡單 計(jì)算機(jī)系統(tǒng)的一般化框圖。圖2提供了包括PCIe串行互連而不是PCI并行互連的簡單計(jì)算機(jī)系統(tǒng)的高級(jí)框 圖式表示。圖3A-G圖示了通用計(jì)算機(jī)系統(tǒng)內(nèi)的I/O設(shè)備控制器與運(yùn)行操作系統(tǒng)程序的CPU 之間的通信。圖4圖示了 PCI總線架構(gòu)中運(yùn)用的INTx中斷機(jī)制。圖5A-C圖示了較新的幾代PCI中和PCIe中運(yùn)用的MSI中斷機(jī)制。圖6示出了一種使PCIe與早于PCIe外圍互連的較舊操作系統(tǒng)和BIOS層相兼容 的基本方法。圖7圖示了近來已經(jīng)出現(xiàn)的兼容性問題。圖8圖示了根據(jù)本發(fā)明實(shí)施例的一種克服圖7中所示不兼容性問題的方法。圖9A-F提供了控制流程圖,這些控制流程圖示出了表示本發(fā)明一個(gè)實(shí)施例的虛 擬INTx接口在PCIe交換機(jī)內(nèi)的邏輯實(shí)施。圖10圖示了包括交換機(jī)平臺(tái)的高端計(jì)算機(jī)系統(tǒng)。
具體實(shí)施例方式本發(fā)明針對(duì)一種可以并入位于中斷生成設(shè)備(如I/O設(shè)備控制器)與中斷接收 CPU之間的交換機(jī)、主橋或者其它部件中的中斷模式虛擬化功能。本發(fā)明的一個(gè)實(shí)施例 是在PCIe交換機(jī)或者PCIe兼容的主橋中包括的中斷模式虛擬化特征。然而,中斷模式 虛擬化可以并入于許多不同類型的通信介質(zhì)內(nèi)的許多不同部件中。圖1示出了包括PCI并行互連的簡單計(jì)算機(jī)系統(tǒng)的一般化框圖。計(jì)算機(jī)系統(tǒng)包 括分別通過處理器系統(tǒng)總線110、存儲(chǔ)器總線112、高級(jí)圖形端口( “AGP” )總線114 和內(nèi)部主橋總線116與存儲(chǔ)器104、圖形再現(xiàn)設(shè)備106和I/O橋108互連的中央處理單元 (“CPU” ) 102。I/O橋108用于將附加設(shè)備互連到存儲(chǔ)器橋118并且從而互連到存儲(chǔ)器 104和CPU 102。這些附加設(shè)備包括經(jīng)由ATA鏈路122與I/O橋互連的盤驅(qū)動(dòng)器120、 經(jīng)由其它類型的通信介質(zhì)(如串行鏈路126)與I/O橋108互連的一個(gè)或者多個(gè)I/O設(shè)備 控制器124,以及經(jīng)由PCI總線136互連的若干I/O設(shè)備控制器130-134。I/O橋108與 存儲(chǔ)器橋118共同組成主橋138PCI總線136是真實(shí)的并行總線,通過在連接到PCI總線的各種設(shè)備之間的爭用 來獲得對(duì)該總線的接入??偩€地址對(duì)應(yīng)于PCI總線上的用于設(shè)備的時(shí)隙,不同類型的PCI 總線提供不同數(shù)目的時(shí)隙。獲得PCI總線的設(shè)備可以將PCI總線的整個(gè)帶寬用于向所選 目標(biāo)設(shè)備傳送數(shù)據(jù)。雖然在圖1中未示出,但是可以通過附加橋設(shè)備將PCI總線附加地橋接到一個(gè)或者多個(gè)附加類型的數(shù)據(jù)總線和其它互連介質(zhì)。I/O設(shè)備控制器130-134可 以控制各種類型的外圍設(shè)備中的任何一種,例如包括以太網(wǎng)控制器,其通過外部通信介 質(zhì)接收和傳輸數(shù)據(jù)、通過PCI總線存儲(chǔ)和檢索來自存儲(chǔ)器104的數(shù)據(jù)、通過PCI總線存儲(chǔ) 和檢索來自存儲(chǔ)器104的數(shù)據(jù)、生成針對(duì)CPU 102的中斷并且從CPU接收命令。 通信總線(如PCI總線)包括復(fù)雜的硬件和固件并且根據(jù)分級(jí)協(xié)議層來傳送數(shù) 據(jù)。關(guān)于PCI總線的海量信息在教科書中和因特網(wǎng)上都可以找到,該信息包括對(duì)協(xié)議 棧、編程接口、硬件操作和特性以及硬件實(shí)施的詳細(xì)討論。在過去十年間,PCI總線架構(gòu)的局限性被認(rèn)識(shí)到,并且隨著微處理器和系統(tǒng)互連 的頻率的增加、隨著集成電路密度的增大以及隨著包括以太網(wǎng)在內(nèi)的外部通信介質(zhì)的帶 寬的增加已經(jīng)變得更為明顯。由于PCI總線架構(gòu)亟需增加帶寬,所以與并行總線架構(gòu)關(guān) 聯(lián)的關(guān)鍵問題限制PCI部件的操作頻率可以增加的程度。另外,PCI需要用于連接各設(shè) 備的大量管腳,并且基于多管腳的連接的開支和占用空間隨著可以生產(chǎn)的基于硅晶片的 集成電路上的特征密度持續(xù)增加而變得越來越難以負(fù)擔(dān)。另外,用于接入總線的基于爭 用的仲裁限制可以連接到總線的設(shè)備的數(shù)目,而同時(shí)對(duì)設(shè)備互連的需求已經(jīng)開始急劇增 力口。出于所有這些原因,在過去五年間開發(fā)和部署了一種新的PCIe互連架構(gòu)。PCIe提供與PCI架構(gòu)的較高級(jí)協(xié)議兼容性、但其基于通過縱橫式交換機(jī)管理的 連接的設(shè)備之間的直接串行通信鏈路。在PCIe端點(diǎn)與PCIe交換機(jī)之間的每個(gè)點(diǎn)到點(diǎn)互 連包括一個(gè)或者多個(gè)通道(lane),每個(gè)通道包括兩對(duì)差動(dòng)驅(qū)動(dòng)的串行線,其中一對(duì)用于 從端點(diǎn)到交換機(jī)的傳輸,而另一對(duì)用于從交換機(jī)到端點(diǎn)的傳輸。因此,每個(gè)通道提供端 點(diǎn)與交換機(jī)之間的全雙工通信。在PCIe端點(diǎn)與PCIe交換機(jī)之間的給定鏈路可以包括一 個(gè)、兩個(gè)、四個(gè)、八個(gè)、12個(gè)、16個(gè)或者32個(gè)通道,從而可以調(diào)整用于端點(diǎn)與交換機(jī)之 間通信的總帶寬以滿足端點(diǎn)設(shè)備和系統(tǒng)的總體需求。交換機(jī)可以彼此互連以實(shí)現(xiàn)到大量 設(shè)備的分級(jí)扇出。圖2提供了包括PCIe串行互連介質(zhì)而不是PCI并行總線的簡單計(jì)算機(jī)系統(tǒng)的高 級(jí)框圖式表示。圖2中所示系統(tǒng)的許多部件與圖1中所示部件相同并且用相同標(biāo)號(hào)來表 示。然而,圖2中的系統(tǒng)運(yùn)用SATA互連140這一串行通信介質(zhì)而不是ATA并行總線 (圖1中的122)以反映用更高帶寬、更低成本的串行通信介質(zhì)取代并行通信介質(zhì)的發(fā)展趨 勢。I/O橋108被修改成包括PCIe端口和與PCIe交換機(jī)142的多通道互連而不是與PCI 并行總線的基于多管腳的連接。PCIe交換機(jī)用作縱橫式交換機(jī)用于在I/O橋與各種PCIe 端點(diǎn)130-135之間建立點(diǎn)到點(diǎn)互連,并且也可以提供端點(diǎn)設(shè)備的點(diǎn)到點(diǎn)互連。多個(gè)點(diǎn)到 點(diǎn)連接可以通過PCIe交換機(jī)同時(shí)傳送數(shù)據(jù)。盡管需要改變I/O橋內(nèi)的較低級(jí)協(xié)議層以適 應(yīng)PCIe通信介質(zhì),但是較高級(jí)協(xié)議層與較舊的PCI協(xié)議兼容,從而I/O橋上游的系統(tǒng)部 件可以繼續(xù)使用較舊的PCI協(xié)議來與I/O設(shè)備通信。目前,PCIe通道內(nèi)的兩對(duì)串行通信 線中的每對(duì)可以每秒傳送2.5吉比特,對(duì)于總的全雙工帶寬就是每秒5吉比特。在第二代 PCIe中,帶寬已經(jīng)加倍,且在第三代PCIe中,帶寬有望再次顯著增加。圖3A-G圖示了在通用計(jì)算機(jī)系統(tǒng)內(nèi)的I/O設(shè)備控制器與運(yùn)行操作系統(tǒng)程序的 CPU之間的通信。I/O設(shè)備控制器302可以例如已經(jīng)從通信或者存儲(chǔ)設(shè)備接收到數(shù)據(jù)塊 304用于傳送到存儲(chǔ)器306以供后續(xù)操作系統(tǒng)處理。在這樣的情形中,I/O設(shè)備控制器和 操作系統(tǒng)可以通過存儲(chǔ)器中的先入先出(“FIFO”)隊(duì)列308來通信。FIFO隊(duì)列包括隊(duì)列條目陣列310、隊(duì)列頭指針312和隊(duì)列尾指針314。如圖3B中所示,I/O設(shè)備控制 器一般進(jìn)行直接存儲(chǔ)器訪問,從而允許I/O設(shè)備控制器經(jīng)由外圍總線316、主橋318和存 儲(chǔ)器總線320向存儲(chǔ)器306傳輸數(shù)據(jù)塊(圖3中的304)以存儲(chǔ)于FIFO隊(duì)列308中的第一 可用隊(duì)列條目322中。一般通過將模運(yùn)算用于遞增和遞減頭和尾指針來將FIFO隊(duì)列作為 循環(huán)隊(duì)列管理。稍后,如圖3C中所示,CPU可以經(jīng)由存儲(chǔ)器總線320、主橋318和處理 器系統(tǒng)總線324訪問入列的數(shù)據(jù)塊。一般而言,CPU使入列的數(shù)據(jù)塊從FIFO隊(duì)列中出 列并且將數(shù)據(jù)塊移到存儲(chǔ)器的某一其它部分,操作系統(tǒng)或者在操作系統(tǒng)之上運(yùn)行的更高 級(jí)程序可以隨后從該存儲(chǔ)器部分使用數(shù)據(jù)塊,如 圖3D中所示??蛇x地,數(shù)據(jù)塊可以離開 FIFO隊(duì)列而由I/O設(shè)備控制器放入存儲(chǔ)器中,其中引用存儲(chǔ)于FIFO隊(duì)列中的存儲(chǔ)數(shù)據(jù)塊 而不是數(shù)據(jù)塊本身。在某些情況下,經(jīng)由存儲(chǔ)器駐留FIFO隊(duì)列在I/O設(shè)備控制器與CPU之間的通信 可能不是時(shí)間關(guān)鍵的。在這樣的情況下,處理器可以無需在如圖3B中所示由I/O設(shè)備控 制器使條目入列之后立即如圖3C中所示訪問入列的條目并且使該條目出列。然而這樣的 情況是罕見的。一般而言,由于I/O設(shè)備控制器可能無規(guī)律地使數(shù)據(jù)入列到FIFO隊(duì)列, 有時(shí)候迅速地使許多數(shù)據(jù)塊入列到FIFO隊(duì)列而有時(shí)候又長時(shí)間保持休止(quiescent),所 以在CPU上執(zhí)行的操作系統(tǒng)需要迅速地檢測由I/O設(shè)備控制器入列到FIFO的數(shù)據(jù)塊并且 使這些數(shù)據(jù)塊出列以使得FIFO隊(duì)列不會(huì)溢出,從而I/O設(shè)備控制器不會(huì)由于FIFO隊(duì)列 溢出而中斷或者延遲并且從而較高級(jí)協(xié)議定時(shí)器也不會(huì)由于使得操作系統(tǒng)內(nèi)的較高級(jí)例 程或者較高級(jí)應(yīng)用程序可訪問數(shù)據(jù)的延遲而到期。一般而言,有兩種用于向操作系統(tǒng)通知I/O設(shè)備控制器已經(jīng)將新條目入列到存 儲(chǔ)器FIFO隊(duì)列以供操作系統(tǒng)處理的不同策略。在圖3E中示出了稱為“輪詢”的第一策 略。在該策略中,操作系統(tǒng)包括圖3E中的簡單控制流程圖360所示的事件環(huán),其中操作 系統(tǒng)連續(xù)執(zhí)行任務(wù)362,在每個(gè)任務(wù)之后在步驟364中檢查要新入列到各種FIFO隊(duì)列的 條目。當(dāng)如在步驟366中確定的那樣在FIFO隊(duì)列上檢測到輸入時(shí),則在步驟368中處置 該輸入。由于需要迅速檢測和處置入列的數(shù)據(jù)項(xiàng),所以在步驟362中執(zhí)行的任務(wù)一般為 更大概念任務(wù)的很微小的部分。輪詢是一種有效策略,當(dāng)條目以恒定的、規(guī)則的速率被入列到FIFO隊(duì)列時(shí)尤其 如此,從而可以調(diào)節(jié)輪詢頻率以匹配條目入列頻率,并且因此很少的輪詢操作被浪費(fèi)用 于檢查空隊(duì)列。在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,輪詢一般過于低效而無法被頻繁和廣泛地使用。 檢查存儲(chǔ)器中的FIFO隊(duì)列和其它數(shù)據(jù)結(jié)構(gòu)以發(fā)現(xiàn)新輸入數(shù)據(jù)的指示需要大量處理周期開 支。當(dāng)I/O設(shè)備以及其它中斷生成設(shè)備休止時(shí),那些周期被徒勞地花費(fèi),而當(dāng)I/O設(shè)備 以高速率突發(fā)傳送數(shù)據(jù)時(shí),輪詢頻率可能過低而無法防止由于流控制反壓力所致的隊(duì)列 溢出和數(shù)據(jù)傳送中斷。圖3F示出了操作系統(tǒng)檢測新入列的輸入數(shù)據(jù)的一種替代方法。如圖3F中所示, 在I/O設(shè)備控制器將條目入列到FIFO隊(duì)列之后,I/O設(shè)備控制器生成中斷信號(hào)370,其 被傳輸至CPU并且導(dǎo)致在CPU的硬件中產(chǎn)生的中斷。中斷生成導(dǎo)致操作系統(tǒng)進(jìn)行的正 常指令執(zhí)行序列中斷并且導(dǎo)致分支到中斷服務(wù)例程。圖3G圖示了從操作系統(tǒng)的觀點(diǎn)來看的中斷處置。在圖3G中,操作系統(tǒng)當(dāng)前正 在執(zhí)行如下例程,該例程包括第一列382所表示的有序指令序列。曲線箭頭如箭頭380在圖3G中表示執(zhí)行指令和遞增指令引用寄存器。I/O設(shè)備控制器在指令序列382中的指 令384執(zhí)行期間生成由CPU檢測的中斷。在完成該指令的執(zhí)行之后,執(zhí)行分支到中斷服 務(wù)例程(“ISR”)386,該ISR保存操作系統(tǒng)執(zhí)行的當(dāng)前上下文并且通過調(diào)用適當(dāng)?shù)闹袛?處理程序例程310將該中斷分派到中斷處理程序。中斷處理程序例如可以使入列的條目 從FIFO隊(duì)列中出列并且更改數(shù)據(jù)結(jié)構(gòu)以指示數(shù)據(jù)的接收,從而操作系統(tǒng)可以隨后處理數(shù) 據(jù)或者將數(shù)據(jù)傳遞給較高級(jí)操作系統(tǒng)例程或者應(yīng)用程序。當(dāng)中斷處理程序完成執(zhí)行時(shí), 執(zhí)行返回到如果未出現(xiàn)中斷則將已經(jīng)被執(zhí)行的下一指令310,其中從中斷處理程序的返回 一般由恢復(fù)原始被中斷的操作系統(tǒng)例程382的上下文的從中斷返回指令來促進(jìn)。由于可 以用信號(hào)通知許多不同中斷并且由于中斷可能在時(shí)間上接近地或者甚至同時(shí)出現(xiàn),所以 中斷信號(hào)通知一般伴有特權(quán)級(jí)改變、關(guān)鍵代碼中禁用中斷和用于使接收的中斷入棧的機(jī) 制。圖4圖示了在PCI總線架構(gòu)中運(yùn)用的INTx中斷機(jī)制。如上文討論的那樣,PCI 為并行總線。在共同信號(hào)線上復(fù)用地址和數(shù)據(jù),其中在每個(gè)周期中傳送32或者64位。 如圖4中所示, PCI總線402除了數(shù)據(jù)和地址信號(hào)線404之外還包括若干中斷信號(hào)線406。 在PCI總線中有表示為A、B、C和D的四個(gè)中斷信號(hào)線。占用PCI總線上的時(shí)隙的每 個(gè)I/O設(shè)備控制器被配置成使用四個(gè)中斷之一來用信號(hào)通知CPU。如果在PCI總線時(shí)隙 中有多于四個(gè)設(shè)備,則多個(gè)設(shè)備最終分享一個(gè)或者多個(gè)中斷。當(dāng)主橋410檢測到PCI總線 上的中斷信號(hào)時(shí),PCI總線上的主中斷信號(hào),主橋通過響應(yīng)于PCI總線中斷而用信號(hào)通知 高級(jí)可編程中斷控制器(“APIC” )中斷來將PCI總線中斷信號(hào)轉(zhuǎn)變成APIC 412中斷。 APIC然后引發(fā)CPU中斷,向CPU傳遞關(guān)于出現(xiàn)的中斷的字節(jié)或者字編碼信息,從而操 作系統(tǒng)可以使用編碼的信息以確定中斷的性質(zhì)并且相應(yīng)地處置中斷。因此,如圖4的下 部中所示,可以向I/O設(shè)備控制器414分配PCI總線中斷A。在用信號(hào)通知該中斷時(shí), 主橋410將中斷轉(zhuǎn)變成APIC中斷416并且用信號(hào)通知對(duì)應(yīng)的APIC中斷,從而APIC又引 發(fā)CPU中的適當(dāng)對(duì)應(yīng)中斷。這一 PIC總線中斷架構(gòu)稱為“INTx”中斷機(jī)制或者“INTx 中斷模式”。在PCIe和PCI總線的較新版本中,運(yùn)用稱為“消息告知中斷”(“MSI”)機(jī) 制的不同中斷機(jī)制。圖5A-D圖示了在較近的幾代PCI中和在PCIe中運(yùn)用的MSI中斷機(jī) 制。如圖5A中所示,支持MSI中斷的I/O設(shè)備控制器提供寄存器502-504,這些寄存器 允許在CPU上運(yùn)行的操作系統(tǒng)配置MSI中斷。這些寄存器映射到CPU的地址空間,從 而CPU可以在MSI中斷配置期間向寄存器寫入值以及從寄存器讀取值,就如同CPU向存 儲(chǔ)器寫入和從存儲(chǔ)器讀取一樣。在圖5A中,在I/O設(shè)備控制器中以及在系統(tǒng)存儲(chǔ)器508 上方示出的虛線矩形中示出了寄存器以圖示操作系統(tǒng)將位于I/O設(shè)備中的寄存器視為可 被操作系統(tǒng)訪問的存儲(chǔ)器地址空間的一部分。操作系統(tǒng)如向?qū)嶋H存儲(chǔ)單元寫入一樣向這 些寄存器寫入。然而,虛線指示寄存器并非存儲(chǔ)器寄存器,而是改為位于I/O設(shè)備中。 在系統(tǒng)初始化期間,操作系統(tǒng)經(jīng)歷如下過程,通過該過程發(fā)現(xiàn)經(jīng)由外圍互連與CPU互連 的設(shè)備并且查詢這些設(shè)備的能力。當(dāng)操作系統(tǒng)發(fā)現(xiàn)能夠進(jìn)行MSI中斷的設(shè)備并且操作系 統(tǒng)選擇運(yùn)用MSI中斷機(jī)制時(shí),那么如圖5B中所示,操作系統(tǒng)將該意思的指示放入控制寄 存器502中。再次,操作系統(tǒng)向操作系統(tǒng)的存儲(chǔ)器地址空間內(nèi)的地址寫入,然后該寫入 被主橋510引導(dǎo)至I/O設(shè)備而不是存儲(chǔ)器。在配置過程期間,地址寄存器503被配置有I/O設(shè)備控制器向其寫入數(shù)據(jù)值以便生成中斷的地址。數(shù)據(jù)寄存器504也被配置成包含數(shù)據(jù)值。該數(shù)據(jù)值的某些較低位可以由I/O設(shè)備改變以根據(jù)I/O設(shè)備請求的矢量數(shù)目以及 操作系統(tǒng)允許I/O設(shè)備使用的矢量的數(shù)目來指示不同中斷。隨后如圖5C中所示,當(dāng)I/O 設(shè)備控制器希望生成到CPU的中斷時(shí),I/O設(shè)備控制器向503中的地址發(fā)出存儲(chǔ)器寫入操 作,從而向該地址寫入數(shù)據(jù)寄存器504中存儲(chǔ)的數(shù)據(jù)值的修改版本以指示需要在CPU中 引發(fā)的中斷類型。主橋可以檢測寫入操作并且將它轉(zhuǎn)變成到CPU的中斷,或者可選地, 可以向系統(tǒng)存儲(chǔ)器執(zhí)行寫入,并且低級(jí)過程可以檢測到這樣的寫入并且在CPU內(nèi)生成中 斷。稱為“MSI-X”的新近的中斷機(jī)制提供數(shù)目增加的可以由I/O設(shè)備控制器的功能用 信號(hào)通知的可能的中斷矢量、增加了 I/O設(shè)備控制器可以向其寫入以便生成中斷的地址 的數(shù)目,并且通過附加特征提供附加靈活性。在現(xiàn)代設(shè)備中優(yōu)選MSI中斷機(jī)制,因?yàn)樗?允許消除物理中斷-管腳連接和跡線并且提供數(shù)目更大的不同中斷信號(hào)以避免需要中斷 生成設(shè)備共享給定的中斷信號(hào)線。圖6示出了一種使PCIe與早于PCIe外圍互連的較舊操作系統(tǒng)和BIOS層相兼容 的基本方法。如圖6中所示,符合PCIe的I/O設(shè)備控制器602、PCIe外圍互連604和在 主橋606內(nèi)的符合PCIe的I/O橋可以并入計(jì)算機(jī)系統(tǒng)中以便將計(jì)算機(jī)系統(tǒng)從PCI更新成 PCIe0然而,操作系統(tǒng)和上游部件可以保持不變,因?yàn)獒槍?duì)PCI協(xié)議的較高級(jí)接口也可 以用于PCIe外圍互連。在串行通信架構(gòu)與并行總線架構(gòu)之間的不同完全封裝于硬件端口 和連接以及PCI協(xié)議棧的前兩層內(nèi)。為了提供全兼容性,推薦新的PCIe兼容的I/O設(shè)備 控制器以提供MSI中斷并且提供對(duì)較舊的INTx機(jī)制的PCIe模擬。INTx中斷通過PCIe 串行通信介質(zhì)作為消息來發(fā)送、但是在主橋或者另一部件中被轉(zhuǎn)變以生成到CPU的較舊 式的INTx中斷信號(hào)。圖7圖示了近來已經(jīng)出現(xiàn)的兼容性問題。如圖7中所示,還有許多計(jì)算機(jī)系統(tǒng) 具有繼續(xù)使用較舊式的INTx中斷機(jī)制702的操作系統(tǒng)和/或BIOS系統(tǒng)。如參照圖6所 討論的那樣,可以更新這些系統(tǒng)以使用PCIe外圍互連704。然而,隨著越來越多系統(tǒng)轉(zhuǎn) 為使用PCIe,許多I/O設(shè)備控制器制造商已經(jīng)完全停止對(duì)較舊式的INTx中斷的支持。因 此如圖7中所示,系統(tǒng)制造商和用戶可能經(jīng)常嘗試將缺乏對(duì)INTx中斷的支持的較新的I/ O設(shè)備控制器706包括到具有設(shè)計(jì)成僅使用較舊式的INTx中斷702的較舊式的操作系統(tǒng) 和BIOS層的系統(tǒng)中。事實(shí)上,缺乏對(duì)較舊式的INTx中斷的支持的I/O設(shè)備控制器不能 在這樣的環(huán)境中恰當(dāng)工作。圖8圖示了根據(jù)本發(fā)明實(shí)施例的一種克服圖7中所示不兼容性問題的方法。本 發(fā)明的實(shí)施例在不支持INTx中斷機(jī)制的I/O設(shè)備控制器的上游引入虛擬INTx接口 802。 這一虛擬INTx接口 802可以便利地實(shí)施于如圖802中所示的PCIe交換機(jī)內(nèi),但其也可以 可選地實(shí)施于I/O橋內(nèi)或者實(shí)施為單獨(dú)設(shè)備。虛擬INTx接口 802向操作系統(tǒng)提供到I/O 設(shè)備控制器的虛擬接口,其中,僅支持MSI和MSI-X中斷的較新的I/O設(shè)備控制器看來 似乎支持MSI和MSI-X中斷以及較舊式的INTx中斷。虛擬INTx接口從并不支持INTx 中斷機(jī)制的I/O設(shè)備控制器接收MSI存儲(chǔ)器寫入操作并且將這些MSI存儲(chǔ)器寫入轉(zhuǎn)變成 INTx中斷模擬消息,當(dāng)虛擬INTx接口實(shí)施于PCIe交換機(jī)中時(shí)該INTx中斷模擬消息隨后 被轉(zhuǎn)發(fā)至主橋804??蛇x地,當(dāng)實(shí)施為I/O橋的一部分時(shí),虛擬INTx接口可以將MSI存 儲(chǔ)器寫入轉(zhuǎn)變成主橋804內(nèi)的INTx中斷模擬消息。此外,虛擬INTx接口向操作系統(tǒng)和BIOS層提供INTx兼容性指示和信息并且在不支持INTx模擬的虛擬化I/O設(shè)備控制器上 配置MSI中斷。 圖9A-F提供了控制流程圖,這些控制流程圖示出了表示本發(fā)明一個(gè)實(shí)施例的虛 擬INTx接口在PCIe交換機(jī)內(nèi)的邏輯實(shí)施。圖9A將高級(jí)的虛擬INTx實(shí)施圖示為位于I/ O設(shè)備控制器與I/O橋或者主橋之間的PCIe交換機(jī)或者專用設(shè)備內(nèi)的事件處置環(huán)。在步 驟902中,針對(duì)PCIe外圍互連上的所有端點(diǎn)設(shè)備配置一組數(shù)據(jù)結(jié)構(gòu)和其它信息。然后, 在包括步驟903-913的連續(xù)環(huán)中,虛擬INTx接口連續(xù)等待下一事件并且當(dāng)事件與虛擬 INTx接口有關(guān)時(shí)適當(dāng)?shù)靥幹檬录?。例如,?dāng)虛擬INTx接口檢測到由I/O設(shè)備控制器為 了在CPU上引發(fā)中斷而傳輸?shù)拇鎯?chǔ)器寫入操作的接收時(shí),則在步驟905中調(diào)用例程“使 中斷有效”。當(dāng)虛擬INTx接口如在步驟907中檢測到的那樣從CPU接收到中斷清除信 號(hào)時(shí)(其中CPU向I/O設(shè)備中的位或者虛擬INTx接口中的位寫入),則在步驟908中調(diào) 用例程“使中斷無效”。當(dāng)虛擬INTx接口在步驟909中檢測到操作系統(tǒng)或者BIOS訪問 I/O設(shè)備控制器內(nèi)存儲(chǔ)的兼容性信息時(shí),虛擬INTx接口在步驟910中調(diào)用兼容性響應(yīng)例 程。當(dāng)檢測到的事件如在步驟911中確定的那樣為主機(jī)嘗試配置端點(diǎn)設(shè)備時(shí),在步驟912 中調(diào)用例程“配置”。全捕獲事件處理程序在步驟913中適當(dāng)處置PCIe交換機(jī)內(nèi)的虛擬 INTx接口可以檢測到的所有其它事件。圖9B提供了在圖9A的步驟902中調(diào)用的例程“配置端點(diǎn)數(shù)據(jù)結(jié)構(gòu)”的控制流 程圖。在步驟914-918的for循環(huán)中,針對(duì)連接到PCIe外圍互連的每個(gè)設(shè)備生成和初始 化數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)可以隨各種實(shí)施而變化、但是包括連接到PCIe的每個(gè)端點(diǎn)設(shè)備 的地址的指示和該設(shè)備的配置狀態(tài)的指示。起初,配置狀態(tài)為“未配置”。圖9C提供了在圖9A的步驟905中調(diào)用的例程“使中斷有效”的控制流程圖。 這一例程在步驟919中截獲由I/O設(shè)備控制器或者連接到PCIe的其它中斷生成設(shè)備生成 的存儲(chǔ)器寫入命令。在步驟920中,例程“中斷”找到與發(fā)送中斷消息的設(shè)備對(duì)應(yīng)的數(shù) 據(jù)結(jié)構(gòu)。當(dāng)該設(shè)備如在步驟922中確定的那樣被虛擬化且處于INTx中斷模式時(shí),在步 驟924中由虛擬INTx接口將中斷消息轉(zhuǎn)變成INTx中斷模擬消息(使INTx消息有效)。 在設(shè)備被虛擬化并且在INTx中斷模式中操作的情況下,在步驟925中向主橋轉(zhuǎn)發(fā)轉(zhuǎn)變的 INTx中斷模擬消息。當(dāng)設(shè)備未被虛擬化或者未在INTx中斷模式中操作時(shí),則在步驟925 中向主橋轉(zhuǎn)發(fā)918中接收的原始寫入命令。圖9D提供了用于在圖9A的步驟908中調(diào)用的例程“使中斷無效”的控制流程 圖。在步驟926中,例程“使中斷無效”檢測到由操作系統(tǒng)或者BIOS生成的向I/O設(shè) 備中的位的寫入或者截獲由操作系統(tǒng)或者BIOS生成的向虛擬INTx接口中的位的寫入。 在步驟927中,例程“使中斷無效”找到與操作系統(tǒng)或者BIOS將位寫入操作所針對(duì)的設(shè) 備對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)。當(dāng)該設(shè)備如在步驟928中確定的那樣被虛擬化并且在INTx中斷模式 中時(shí),在步驟929中向主橋轉(zhuǎn)發(fā)使INTx無效消息這一 INTx中斷模擬消息。圖9E提供了用于在圖9A的步驟907中調(diào)用的例程“兼容性響應(yīng)”的控制流程 圖。這一例程在步驟930中截獲由I/O設(shè)備控制器或者連接到PCIe的其它中斷生成設(shè)備 對(duì)操作系統(tǒng)或者BIOS層訪問包含表示設(shè)備的特性和兼容性的數(shù)據(jù)的寄存器以便促進(jìn)設(shè)備 的配置的響應(yīng)。如在步驟932中確定的那樣,當(dāng)設(shè)備的響應(yīng)指示設(shè)備支持MSI和較舊式 的INTx中斷二者時(shí),或者當(dāng)設(shè)備的響應(yīng)指示設(shè)備僅支持較舊式的INTx中斷時(shí),則虛擬INTx接口和 PCIe交換機(jī)在步驟940中向主橋轉(zhuǎn)發(fā)該響應(yīng)。當(dāng)設(shè)備的響應(yīng)指示設(shè)備僅支 持MSI中斷時(shí),虛擬INTx接口在步驟934中更改響應(yīng)以指示響應(yīng)設(shè)備支持MSI中斷和 INTx中斷二者,并且在步驟936-937中找到和更新與設(shè)備對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)以指示設(shè)備已 經(jīng)被虛擬INTx接口虛擬化。圖9F提供了用于在圖9A的步驟909中調(diào)用的例程“配置”的控制流程圖。在 步驟950中接收如下信號(hào)或者消息,該信號(hào)或者消息表示操作系統(tǒng)或者BIOS嘗試配置I/ O設(shè)備控制器或者連接到PCIe外圍互連的其它中斷生成設(shè)備。當(dāng)配置信號(hào)或者消息如在 步驟952中確定的那樣表示嘗試初始化設(shè)備以用于MSI中斷時(shí),則虛擬INTx接口在步驟 954中找到與被配置的設(shè)備對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)并且更新數(shù)據(jù)結(jié)構(gòu)以指示該設(shè)備將在MSI中斷 模式中操作。然后,在步驟956中,虛擬INTx接口將配置信號(hào)或者消息轉(zhuǎn)發(fā)到該設(shè)備 上。否則,當(dāng)如在步驟958中確定的那樣配置信號(hào)或者消息被引導(dǎo)至該設(shè)備以配置該設(shè) 備用于INTx中斷時(shí),則在步驟960中發(fā)現(xiàn)用于該設(shè)備的數(shù)據(jù)結(jié)構(gòu)并且在步驟962中檢查 該數(shù)據(jù)結(jié)構(gòu)以確定該設(shè)備是否被虛擬化。當(dāng)設(shè)備被虛擬化時(shí),在步驟964中更新數(shù)據(jù)結(jié) 構(gòu)以指示該設(shè)備被虛擬化并且在INTx模式中操作,并且將配置消息或者信號(hào)轉(zhuǎn)變成MSI 配置過程。在任一情況下,然后在步驟966中向設(shè)備轉(zhuǎn)發(fā)一個(gè)或者多個(gè)配置信號(hào)或者消 息。在一種情況下,當(dāng)設(shè)備未被虛擬化時(shí),可以直接傳遞配置消息或者信號(hào)。在設(shè)備 被虛擬化的情況下,則將INTx配置轉(zhuǎn)變成MSI配置,這可能涉及到多次設(shè)備-寄存器寫 入。在某些情況下,特定配置操作可能涉及到信號(hào)序列或者操作序列。通過對(duì)例程“配 置”的單獨(dú)調(diào)用來單獨(dú)處理序列中的所有信號(hào)或者操作,不過在步驟964中并非序列中的 所有信號(hào)或者操作都可能需要轉(zhuǎn)變成MSI消息??蛇x地,可以實(shí)施“配置”以在一次調(diào) 用中處置序列中的所有信號(hào)或者操作。當(dāng)配置信號(hào)或者消息指示既不配置MSI樣式的中 斷也不配置INTx中斷時(shí),則在步驟968中處置接收的配置信號(hào)或者消息。虛擬INTx接口可以實(shí)施為在圖9C-F的步驟918、950和930中接收中斷消息、 配置消息或者配置信號(hào)和對(duì)兼容性訪問的響應(yīng)的消息和/或信號(hào)接收部件,以及可以實(shí) 施為配置中斷生成設(shè)備、對(duì)能力查詢做出響應(yīng)并且轉(zhuǎn)變來自虛擬化中斷生成設(shè)備的中斷 消息的消息和/或信號(hào)處理部件。許多不同可選實(shí)施方式是可能的。已經(jīng)在上文討論中廣義地表征了表示本發(fā)明一個(gè)實(shí)施例的虛擬INTx接口。用于 舊式INTx中斷機(jī)制以及較新的MSI和MSI-X機(jī)制的設(shè)備配置、中斷生成以及其它方面 的具體方法和協(xié)議可以隨實(shí)施方式不同而變化。另外,本發(fā)明的替代實(shí)施例可以用來向 其它類型的通信介質(zhì)和數(shù)據(jù)傳送信道中引入虛擬中斷接口以便為無法模擬較舊中斷方法 和機(jī)制的較新的設(shè)備恢復(fù)兼容性。無論精確的實(shí)施細(xì)節(jié)和接口如何,虛擬中斷接口都需 要確定哪些設(shè)備被虛擬化、需要將較舊式的設(shè)備的配置轉(zhuǎn)變成較新式的配置過程,并且 需要截獲較新式的中斷消息或者信號(hào)以便模擬那些較新式的中斷消息或者信號(hào),從而上 游設(shè)備、固件和軟件可以使用較舊式的方法和接口與設(shè)備交互。雖然按照特定實(shí)施例描述了本發(fā)明,但本發(fā)明并不打算限于這些實(shí)施例。本領(lǐng) 域技術(shù)人員將清楚在本發(fā)明的精神內(nèi)的修改。例如,虛擬INTx中斷接口可以并入PCIe 交換機(jī)中、作為PCIe交換機(jī)與主橋之間的單獨(dú)分立部件、位于主橋內(nèi),或者可能作為分 立部件位于主橋上游??梢允褂萌魏螖?shù)目的不同軟件、固件和硬件模塊、使用不同類型 的邏輯電路,以及使用不同編程語言、控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)以及通過改變其它這樣的編程和設(shè)計(jì)變量來實(shí)施虛擬INTx中斷接口。在具有多個(gè)交換機(jī)和附加扇出級(jí)的更復(fù)雜的 PCIe通信介質(zhì)中,虛擬INTx中斷接口可以實(shí)施于最高級(jí)交換機(jī)中或者可以可選地實(shí)施于 每個(gè)交換機(jī)中以處置直接連接到該交換機(jī)的任何端點(diǎn)設(shè)備。雖然已經(jīng)在簡單計(jì)算機(jī)系統(tǒng) 的背景中討論了虛擬INTx接口,但是虛擬INTx接口可以用在包含于包括刀片外殼的高 端計(jì)算機(jī)系統(tǒng)中的復(fù)雜切換平臺(tái)中。圖10圖示了包括交換機(jī)平臺(tái)的高端計(jì)算機(jī)系統(tǒng)。交 換機(jī)平臺(tái)可以在下游P2P部件如下游P2P部件1004中、在上游P2P部件如上游P2P部件 1006中提供虛擬INTx接口,或者將虛擬INTx接口提供為交換機(jī)內(nèi)的單獨(dú)層或者部件。
前文描述出于說明的目的而使用具體術(shù)語以提供對(duì)本發(fā)明的透徹理解。然而本 領(lǐng)域技術(shù)人員將清楚實(shí)現(xiàn)本發(fā)明無需具體細(xì)節(jié)。出于圖示和描述的目的而提供對(duì)本 發(fā)明 具體實(shí)施例的前文描述。它們并非打算窮舉本發(fā)明或者使本發(fā)明限于公開的精確形式。 鑒于上述教導(dǎo)許多修改和變化是可能的。實(shí)施例被示出和描述以便最佳說明本發(fā)明的原 理及其實(shí)際應(yīng)用,由此使本領(lǐng)域技術(shù)人員能夠以與設(shè)想的具體用途相適應(yīng)的各種修改最 好地利用本發(fā)明和各種實(shí)施例。本發(fā)明的范圍意欲由所附權(quán)利要求及其等效物限定。
權(quán)利要求
1.一種虛擬中斷模式接口,包括消息和/或信號(hào)接收部件,其接收中斷消息、配置消息或者配置信號(hào)以及對(duì)訪問兼 容性寄存器的響應(yīng);以及消息和/或信號(hào)處理部件,其當(dāng)中斷生成設(shè)備不支持第二中斷模式并且所述消息和/或信號(hào)接收部件已經(jīng)接收到 針對(duì)所述中斷生成設(shè)備的用以將所述中斷生成設(shè)備配置成在所述第二中斷模式中操作的 配置消息或者信號(hào)時(shí),將所述中斷生成設(shè)備配置成在第一中斷模式中操作,所述中斷生 成設(shè)備之后虛擬地在所述第二中斷模式中操作;并且將所述消息和/或信號(hào)接收部件從虛擬地在所述第二中斷模式中操作的一個(gè)或者多 個(gè)中斷生成設(shè)備接收的每個(gè)第一中斷模式中斷消息轉(zhuǎn)變成第二中斷模式中斷,并且向接 收的第一中斷模式中斷消息的預(yù)計(jì)接收方轉(zhuǎn)發(fā)所述第二中斷模式中斷。
2.根據(jù)權(quán)利要求1所述的虛擬中斷模式接口,其中所述第二中斷模式為PCI INTx中斷模式;并且 其中所述第一中斷模式為PCIe MSI或者M(jìn)SI-X中斷模式。
3.根據(jù)權(quán)利要求2所述的虛擬中斷模式接口,其被并入以下各項(xiàng)之一內(nèi) 在所述中斷生成設(shè)備與PCIe交換機(jī)之間引入的設(shè)備;所述PCIe交換機(jī); 主橋設(shè)備;以及在所述PCIe交換機(jī)與主橋設(shè)備之間引入的設(shè)備。
4.根據(jù)權(quán)利要求3所述的虛擬中斷模式接口,其中所述虛擬中斷模式接口并入其中的所述PCIe交換機(jī)、主橋設(shè)備或者分立設(shè)備通 過PCIe互連與所述中斷生成設(shè)備互連;并且其中所述虛擬中斷模式接口并入其中的所述PCIe交換機(jī)、主橋設(shè)備或者分立設(shè)備與 至少一個(gè)CPU互連,響應(yīng)于由所述中斷生成設(shè)備生成的中斷消息而在所述CPU上引發(fā)中 斷。
5.根據(jù)權(quán)利要求1所述的虛擬中斷模式接口,還包括用于每個(gè)中斷生成設(shè)備的數(shù) 據(jù)結(jié)構(gòu),其包括所述中斷生成設(shè)備的中斷模式和當(dāng)前狀態(tài)的指示。
6.根據(jù)權(quán)利要求5所述的虛擬中斷模式接口,其中初始化與每個(gè)中斷生成設(shè)備對(duì)應(yīng)的 數(shù)據(jù)結(jié)構(gòu)以指示尚未配置所述中斷生成設(shè)備。
7.根據(jù)權(quán)利要求6所述的虛擬中斷模式接口,其中當(dāng)所述消息和/或信號(hào)接收部件從 中斷生成設(shè)備接收到對(duì)訪問兼容性寄存器的響應(yīng)時(shí),所述消息和/或信號(hào)處理部件確定所述響應(yīng)是否指示所述中斷生成設(shè)備僅能在所述第一中斷模式中操作; 當(dāng)所述響應(yīng)指示所述中斷生成設(shè)備僅能在所述第一中斷模式中操作時(shí),更改所述響 應(yīng)以指示所述中斷生成設(shè)備能夠在所述第二中斷模式和所述第一中斷模式二者中操作、 更新表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)以指示所述中斷生成設(shè)備被虛擬化并且向兼容性 響應(yīng)的預(yù)計(jì)接收方轉(zhuǎn)發(fā)更改的響應(yīng);并且當(dāng)所述響應(yīng)指示所述中斷生成設(shè)備能夠在所述第二中斷模式和所述第一中斷模式二 者中操作時(shí),或者當(dāng)所述響應(yīng)指示所述中斷生成設(shè)備僅能在第二中斷模式中操作時(shí),向 所述兼容性響應(yīng)的預(yù)計(jì)接收方轉(zhuǎn)發(fā)所述響應(yīng)。
8.根據(jù)權(quán)利要求6所述的虛擬中斷模式接口,其中當(dāng)所述消息和/或信號(hào)接收部件接 收到針對(duì)中斷生成設(shè)備的配置消息或者配置信號(hào)時(shí),所述消息和/或信號(hào)處理部件確定所述配置消息或者配置信號(hào)是否表示嘗試將所述中斷生成設(shè)備配置成在所述第 一中斷模式中操作;當(dāng)所述配置消息或者配置信號(hào)表示嘗試將所述中斷生成設(shè)備配置成在所述第一中斷 模式中操作時(shí),向所述中斷生成設(shè)備轉(zhuǎn)發(fā)所述配置消息或者配置信號(hào);以及當(dāng)所述配置消息或者配置信號(hào)表示嘗試將所述中斷生成設(shè)備配置成在所述第二中斷 模式中操作時(shí),根據(jù)表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)確定所述中斷生成設(shè)備是否被虛擬化; 當(dāng)所述中斷生成設(shè)備被虛擬化時(shí),更新表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)以指示所 述中斷生成設(shè)備正虛擬地在所述第二中斷模式中操作、將所述配置消息或者配置信號(hào)轉(zhuǎn) 變成第一中斷模式配置消息并且向所述中斷生成設(shè)備轉(zhuǎn)發(fā)所述第一中斷模式配置消息, 并且當(dāng)所述中斷生成設(shè)備未被虛擬化時(shí),向所述中斷生成設(shè)備轉(zhuǎn)發(fā)所述配置消息或者配置信號(hào)。
9.根據(jù)權(quán)利要求6所述的虛擬中斷模式接口,其中當(dāng)所述消息和/或信號(hào)接收部件從 中斷生成設(shè)備接收到第一中斷模式中斷消息時(shí),所述消息和/或信號(hào)處理部件根據(jù)表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)確定所述中斷生成設(shè)備是否被虛擬化并且正 虛擬地在所述第二中斷模式中操作;當(dāng)所述中斷生成設(shè)備被虛擬化并且正虛擬地在所述第二中斷模式中操作時(shí),將所述 中斷消息轉(zhuǎn)變成第二中斷模式中斷消息或者信號(hào)并且向所述中斷消息的預(yù)計(jì)接收方轉(zhuǎn)發(fā) 所轉(zhuǎn)變的中斷消息或者信號(hào);并且當(dāng)所述中斷生成設(shè)備未被虛擬化并且未虛擬地在所述第二中斷模式中操作時(shí),向所 述中斷消息的預(yù)計(jì)接收方轉(zhuǎn)發(fā)所述中斷消息或者信號(hào)。
10.根據(jù)權(quán)利要求6所述的虛擬中斷模式接口,其中當(dāng)所述消息和/或信號(hào)接收部件 檢測到實(shí)體針對(duì)被虛擬化并且虛擬地在所述第二中斷模式中操作的中斷生成設(shè)備嘗試的 中斷清除操作時(shí),所述消息和/或信號(hào)處理部件向所述實(shí)體返回第二中斷模式使模擬無效消息。
11.一種用于向操作系統(tǒng)或者BIOS虛擬化中斷生成設(shè)備的方法,所述方法包括 當(dāng)所述中斷生成設(shè)備不支持第二中斷模式并且已經(jīng)接收到針對(duì)所述中斷生成設(shè)備的用以將所述中斷生成設(shè)備配置成在所述第二中斷模式中操作的配置消息或者信號(hào)時(shí), 將所述中斷生成設(shè)備配置成在第一中斷模式中操作并且虛擬地在所述第二中斷模式中操 作;并且將從虛擬地在所述第二中斷模式中操作的中斷生成設(shè)備接收的第一中斷模式中斷消 息轉(zhuǎn)變成第二中斷模式中斷并且向所接收的第一中斷模式中斷消息的預(yù)計(jì)接收方轉(zhuǎn)發(fā)所 述第二中斷模式中斷。
12.根據(jù)權(quán)利要求11所述的方法,其中所述第二中斷模式為PCI INTx中斷模式;并且 其中所述第一中斷模式為PCIe MSI或者M(jìn)SI-X中斷模式。
13.根據(jù)權(quán)利要求12所述的方法,被執(zhí)行于以下各項(xiàng)之一內(nèi) 在所述中斷生成設(shè)備與PCIe交換機(jī)之間引入的設(shè)備;所述PCIe交換機(jī); 主橋設(shè)備;以及在所述PCIe交換機(jī)與主橋設(shè)備之間引入的設(shè)備。
14.根據(jù)權(quán)利要求13所述的方法,其中所述方法執(zhí)行于其中的所述PC Ie交換機(jī)、主橋設(shè)備或者分立設(shè)備通過PCIe互連 與所述中斷生成設(shè)備互連;并且其中所述方法執(zhí)行于其中的所述PCIe交換機(jī)、主橋設(shè)備或者分立設(shè)備與至少一個(gè) CPU互連,響應(yīng)于由所述中斷生成設(shè)備生成的中斷消息而在所述CPU上引發(fā)中斷。
15.根據(jù)權(quán)利要求11所述的方法,還包括創(chuàng)建和維護(hù)用于每個(gè)中斷生成設(shè)備的數(shù)據(jù)結(jié) 構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括所述中斷生成設(shè)備的中斷模式和當(dāng)前狀態(tài)的指示。
16.根據(jù)權(quán)利要求15所述的方法,還包括初始化與每個(gè)中斷生成設(shè)備對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu) 以指示尚未配置所述中斷生成設(shè)備。
17.根據(jù)權(quán)利要求15所述的方法,還包括當(dāng)接收到來自中斷生成設(shè)備的對(duì)訪問一個(gè)或者多個(gè)兼容性寄存器的響應(yīng)時(shí), 確定所述響應(yīng)是否指示所述中斷生成設(shè)備僅能在所述第一中斷模式中操作; 當(dāng)所述響應(yīng)指示所述中斷生成設(shè)備僅能在所述第一中斷模式中操作時(shí),更改所述響 應(yīng)以指示所述中斷生成設(shè)備能夠在所述第二中斷模式和所述第一中斷模式二者中操作、 更新表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)以指示所述中斷生成設(shè)備被虛擬化并且向所述響 應(yīng)的預(yù)計(jì)接收方轉(zhuǎn)發(fā)所更改的響應(yīng);并且當(dāng)所述響應(yīng)指示所述中斷生成設(shè)備能夠在所述第二中斷模式和所述第一中斷模式 二者中操作時(shí),或者當(dāng)所述響應(yīng)指示所述中斷生成設(shè)備僅能在所述第二中斷模式中操作 時(shí),向所述兼容性響應(yīng)的預(yù)計(jì)接收方轉(zhuǎn)發(fā)所述響應(yīng)。
18.根據(jù)權(quán)利要求15所述的方法,還包括當(dāng)接收到針對(duì)中斷生成設(shè)備的配置消息或者配置信號(hào)時(shí),確定所述配置消息或者配置信號(hào)是否表示嘗試將所述中斷生成設(shè)備配置成在所述第 一中斷模式中操作;當(dāng)所述配置消息或者配置信號(hào)表示嘗試將所述中斷生成設(shè)備配置成在所述第一中斷 模式中操作時(shí),向所述中斷生成設(shè)備轉(zhuǎn)發(fā)所述配置消息或者配置信號(hào);并且當(dāng)所述配置消息或者配置信號(hào)表示嘗試將所述中斷生成設(shè)備配置成在所述第二中斷 模式中操作時(shí),根據(jù)表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)確定所述中斷生成設(shè)備是否被虛擬化; 當(dāng)所述中斷生成設(shè)備被虛擬化時(shí),更新表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)以指示所 述中斷生成設(shè)備正虛擬地在所述第二中斷模式中操作、將所述配置消息或者配置信號(hào)轉(zhuǎn) 變成第一中斷模式配置消息或者配置信號(hào)并且向所述中斷生成設(shè)備轉(zhuǎn)發(fā)所述第一中斷模 式配置消息,并且當(dāng)所述中斷生成設(shè)備未被虛擬化時(shí),向所述中斷生成設(shè)備轉(zhuǎn)發(fā)所述配置消息或者配置信號(hào)。
19.根據(jù)權(quán)利要求15所述的方法,還包括當(dāng)接收到來自中斷生成設(shè)備的第一中斷模式中斷消息時(shí),根據(jù)表示所述中斷生成設(shè)備的數(shù)據(jù)結(jié)構(gòu)確定所述中斷生成設(shè)備是否被虛擬化并且正 虛擬地在所述第二中斷模式中操作;當(dāng)所述中斷生成設(shè)備被虛擬化并且正虛擬地在所述第二中斷模式中操作時(shí),將所述 中斷消息轉(zhuǎn)變成第二中斷模式中斷消息或者信號(hào)并且向所述中斷消息的預(yù)計(jì)接收方轉(zhuǎn)發(fā) 所轉(zhuǎn)變的中斷消息或者信號(hào);并且當(dāng)所述中斷生成設(shè)備未被虛擬化并且未虛擬地在所述第二中斷模式中操作時(shí),向所 述中斷消息的所述預(yù)計(jì)接收方轉(zhuǎn)發(fā)所述中斷消息或者信號(hào)。
20.根據(jù)權(quán)利要求16所述的方法,還包括當(dāng)檢測到實(shí)體針對(duì)被虛擬化并且虛擬地在所述第二中斷模式中操作的中斷生成設(shè)備 嘗試的中斷清除操作時(shí),向所述實(shí)體返回第二中斷模式使模擬無效消息。
全文摘要
本發(fā)明的實(shí)施例涉及用于表示包括I/O設(shè)備控制器的中斷生成設(shè)備來虛擬化中斷模式從而缺乏較舊中斷模式的較新中斷生成設(shè)備可以使用于繼續(xù)依賴于較舊中斷模式的系統(tǒng)中的方法。在本發(fā)明的一個(gè)實(shí)施例中,修改PCIe交換機(jī)或者基于PCIe的主橋,或者引入新部件以提供中斷模式虛擬化功能或者虛擬中斷模式接口,其表示中斷生成設(shè)備(如I/O設(shè)備控制器向)向與I/O設(shè)備控制器通信的操作系統(tǒng)、BIOS層和其它部件提供虛擬中斷模式。
文檔編號(hào)G06F13/42GK102016812SQ200880128884
公開日2011年4月13日 申請日期2008年4月28日 優(yōu)先權(quán)日2008年4月28日
發(fā)明者D·D·賴?yán)? D·L·馬修斯, H·E·布林克曼, P·V·布朗內(nèi)爾 申請人:惠普開發(fā)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
定边县| 安吉县| 仪陇县| 胶南市| 武平县| 阜平县| 义马市| 盐池县| 申扎县| 巴彦县| 滕州市| 绥中县| 漠河县| 阿克苏市| 剑河县| 革吉县| 洪雅县| 宣恩县| 安福县| 乌兰浩特市| 岢岚县| 区。| 连云港市| 密云县| 台东县| 兖州市| 宝应县| 通海县| 崇文区| 肥西县| 东方市| 开平市| 乌恰县| 航空| 定边县| 肥西县| 湖口县| 广宗县| 应城市| 屯门区| 金坛市|