專(zhuān)利名稱(chēng):用于仿真數(shù)據(jù)處理系統(tǒng)內(nèi)的中斷體系結(jié)構(gòu)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)據(jù)處理系統(tǒng),并且更具體地涉及用于數(shù)據(jù)處理系統(tǒng)內(nèi)的中斷處理的方法,系統(tǒng)和程序產(chǎn)品。更具體地,本發(fā)明涉及用于仿真數(shù)據(jù)處理系統(tǒng)內(nèi)的中斷體系結(jié)構(gòu)的方法,系統(tǒng)和程序產(chǎn)品。
背景技術(shù):
在計(jì)算機(jī)系統(tǒng)中,中斷通常被用于向處理器報(bào)告需要特殊處理的事件的發(fā)生。例如,中斷可以被用于從接受處理器請(qǐng)求服務(wù),報(bào)告錯(cuò)誤狀態(tài)或?qū)?shù)據(jù)的接收,或僅是在設(shè)備之間傳遞信息。
在傳統(tǒng)的多處理器(MP)計(jì)算機(jī)系統(tǒng)中,使用硬件和/或軟件機(jī)制,以各種方法處理中斷。傳統(tǒng)的MP計(jì)算機(jī)系統(tǒng)可以使用全局中斷控制器,全局中斷控制器基于(例如)中斷的優(yōu)先級(jí)和正由各個(gè)處理器執(zhí)行的處理(如果有的話)的優(yōu)先級(jí)選擇處理器,以便為外部或處理器間的中斷服務(wù)。為了便于對(duì)與中斷有關(guān)的通信的高效的處理,全局中斷控制器和處理器使用專(zhuān)用的硬件寄存器和/或預(yù)先定義的存儲(chǔ)器地址偏移量傳遞中斷請(qǐng)求,中斷結(jié)束(EOI)消息,處理器優(yōu)先級(jí)和其它與中斷有關(guān)的信息。
與實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)中的中斷方案有關(guān)的一個(gè)困難是設(shè)計(jì)者可能希望包括在所述數(shù)據(jù)處理系統(tǒng)內(nèi)的各種硬件和軟件組件可能不服從單一的中斷標(biāo)準(zhǔn),諸如由Santa Clara,California的Intel公司開(kāi)發(fā)的非專(zhuān)有的OpenPIC(開(kāi)放的可編程中斷控制器)體系結(jié)構(gòu)或?qū)S械腎/O APIC(輸入/輸出高級(jí)可編程中斷控制器)體系結(jié)構(gòu)。各種中斷體系結(jié)構(gòu)在中斷通信,位次序,中斷優(yōu)先級(jí)指定等之間的不一致可以造成中斷硬件以及操作系統(tǒng)軟件的不兼容。
本發(fā)明意識(shí)到,盡管有這種明顯的不兼容,以實(shí)現(xiàn)異類(lèi)的中斷體系結(jié)構(gòu)的硬件和軟件組件開(kāi)發(fā)數(shù)據(jù)處理系統(tǒng)也是希望的。
發(fā)明內(nèi)容
鑒于上面所述,本發(fā)明提供了用于仿真數(shù)據(jù)處理系統(tǒng)中的中斷體系結(jié)構(gòu)的方法,系統(tǒng)和程序產(chǎn)品。
根據(jù)至少一個(gè)實(shí)施例,為了仿真數(shù)據(jù)處理系統(tǒng)中的中斷體系結(jié)構(gòu),中斷仿真代碼從操作系統(tǒng)接收請(qǐng)求訪問(wèn)第一中斷體系結(jié)構(gòu)中的第一資源的第一調(diào)用。響應(yīng)由中斷仿真代碼對(duì)第一調(diào)用的接收,中斷仿真代碼將第一資源映射到所述數(shù)據(jù)處理系統(tǒng)的中斷硬件中的第二資源。映射操作包括確定不同的第二中斷體系結(jié)構(gòu)內(nèi)的第二資源的標(biāo)識(shí)符。然后中斷仿真代碼發(fā)起對(duì)由所述中斷硬件實(shí)現(xiàn)的第二資源的訪問(wèn)。
在下面詳細(xì)的書(shū)面說(shuō)明中,本發(fā)明的所有目的,特征和優(yōu)點(diǎn)將成為是明顯的。
在所附的權(quán)利要求中提出了被認(rèn)為是本發(fā)明的特點(diǎn)的新的特征。然而當(dāng)結(jié)合附圖進(jìn)行閱讀時(shí),通過(guò)參考下面對(duì)示例實(shí)施例的詳細(xì)描述,將更好地理解本發(fā)明以及優(yōu)選的使用模式,其中圖1是一種數(shù)據(jù)處理系統(tǒng)的高層方框圖,其中可以有利地采用本發(fā)明;圖2是一個(gè)層次圖,說(shuō)明根據(jù)本發(fā)明使用中斷仿真軟件諸如固件和/或操作系統(tǒng)管理程序(管理程序)仿真數(shù)據(jù)處理系統(tǒng)內(nèi)的中斷體系結(jié)構(gòu);圖3是現(xiàn)有技術(shù)的PowerPC中斷體系結(jié)構(gòu)的邏輯視圖;圖4A和4B分別示出了根據(jù)傳統(tǒng)的OpenPIC中斷體系結(jié)構(gòu)的中斷源單元內(nèi)的向量?jī)?yōu)先級(jí)和目的地寄存器;圖4C給出了根據(jù)本發(fā)明的實(shí)施例用于仿真中斷體系結(jié)構(gòu)的影子屏蔽位,優(yōu)先級(jí)值和服務(wù)器值;圖5A是在包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于在啟動(dòng)或重置時(shí)初始化仿真的中斷體系結(jié)構(gòu)的示例處理的高層邏輯流程圖;圖5B是在不包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于在啟動(dòng)或重置時(shí)初始化仿真的中斷體系結(jié)構(gòu)的示例處理的高層邏輯流程圖;圖6A是在包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于設(shè)置仿真的外部中斷向量入口(XIVE)的示例處理的高層邏輯流程圖;圖6B是在不包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于設(shè)置仿真的外部中斷向量入口(XIVE)的示例處理的高層邏輯流程圖;圖6C是在包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于讀仿真的外部中斷向量入口(XIVE)的示例處理的高層邏輯流程圖;圖6D是在不包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于讀仿真的外部中斷向量入口(XIVE)的示例處理的高層邏輯流程圖;圖7A是在包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于禁止外部中斷源的示例處理的高層邏輯流程圖;圖7B是在不包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于禁止外部中斷源的示例處理的高層邏輯流程圖;圖7C是在包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于允許外部中斷源的示例處理的高層邏輯流程圖;圖7D是在不包括硬件屏蔽位的本發(fā)明的實(shí)施例中用于允許外部中斷源的示例處理的高層邏輯流程圖;圖8是根據(jù)本發(fā)明用于寫(xiě)仿真的當(dāng)前處理器優(yōu)先級(jí)寄存器(CPPR)的示例處理的高層邏輯流程圖;圖9是根據(jù)本發(fā)明用于發(fā)送信號(hào)通知處理器間中斷(IPI)的示例處理的高層邏輯流程圖;圖10A是根據(jù)本發(fā)明用于讀仿真的外部中斷請(qǐng)求寄存器(XIRR)的示例處理的高層邏輯流程圖;和圖10B是根據(jù)本發(fā)明用于發(fā)送中斷結(jié)束(EOI)的示例處理的高層邏輯流程圖。
具體實(shí)施例方式
參考附圖并且尤其是參考圖1,示出了示例的數(shù)據(jù)處理系統(tǒng)100的高層方框圖,本發(fā)明可以被有利地實(shí)施在該數(shù)據(jù)處理系統(tǒng)內(nèi)。如圖所示,數(shù)據(jù)處理系統(tǒng)100是包括用于處理數(shù)據(jù)和指令的處理單元102a-102n的多處理器數(shù)據(jù)處理系統(tǒng)。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,處理單元102實(shí)現(xiàn)精簡(jiǎn)指令集計(jì)算機(jī)(RISC)硬件體系結(jié)構(gòu),諸如由New York,Armonk的IBM公司開(kāi)發(fā)的POWER體系結(jié)構(gòu)。在本發(fā)明的其它可供選擇的實(shí)施例中,可以使用復(fù)雜指令集計(jì)算機(jī)(CISC)硬件體系結(jié)構(gòu)。
處理單元102被連接到系統(tǒng)互連104以便進(jìn)行通信,系統(tǒng)互連104可以包括用于在被附加在其上的設(shè)備之間傳輸?shù)刂罚瑪?shù)據(jù)和控制信息的一個(gè)或多個(gè)總線和/或開(kāi)關(guān)。在給出的實(shí)施例中,被附加的設(shè)備包括提供與系統(tǒng)存儲(chǔ)器108的接口的存儲(chǔ)器控制器106和一個(gè)或多個(gè)主橋110a,110b,每個(gè)主橋提供到相應(yīng)的中間總線112a,112b的接口。例如,在一個(gè)實(shí)施例中,每個(gè)中間總線112是外圍組件互連(PCI)總線,并且每個(gè)主橋110是PCI主橋。如圖1中進(jìn)一步示出的,中間總線112a,112b又分別提供了用于附加另外的設(shè)備116a-h和116i-116p的插槽,所述的設(shè)備可以包括網(wǎng)絡(luò)接口卡,I/O適配器,非易失存儲(chǔ)設(shè)備適配器,另外的總線橋等。在數(shù)據(jù)處理系統(tǒng)100的操作過(guò)程中,各種這些設(shè)備116可以異步地(通過(guò)未示出的中斷線)向相關(guān)聯(lián)的主橋110要求中斷,以便請(qǐng)求某種類(lèi)型的服務(wù)。這些外部中斷請(qǐng)求(被這樣稱(chēng)呼是因?yàn)樗鼈兪窃谔幚韱卧?02外部產(chǎn)生的)最初被主橋110a,110b中的下行中斷源單元(ISU)114a,114b管理。
被連接到系統(tǒng)互連104的設(shè)備還包括中斷提交單元(IPU)118,其接收處理單元102產(chǎn)生的中斷(即,處理器間中斷(IPI))和接收自下行ISU114的外部中斷,并且將其提交給處理單元102a-102n以便進(jìn)行處理。中斷提交單元118(可以執(zhí)行中斷提交軟件的處理單元102和/或?qū)S玫闹袛嘤布?shí)現(xiàn)中斷提交單元118)可以通過(guò)系統(tǒng)互連104,或可替換地通過(guò)專(zhuān)用的中斷線122a-122n中的一個(gè)將中斷傳遞到一個(gè)或多個(gè)處理單元102。如圖所示,IPU118包括上行ISU120,上行ISU120作為IPU118和下行ISU114的接口,并且在由主橋110實(shí)現(xiàn)的中斷體系結(jié)構(gòu)和由IPU118實(shí)現(xiàn)的中斷體系結(jié)構(gòu)之間提供任何必要的轉(zhuǎn)換。
在數(shù)據(jù)處理系統(tǒng)100的操作過(guò)程中,處理單元102執(zhí)行來(lái)自系統(tǒng)存儲(chǔ)器108以及電可擦寫(xiě)可編程只讀存儲(chǔ)器(EEPROM)116a的各種指令,以便執(zhí)行所希望的任務(wù)。這些指令包括固件136,應(yīng)用134,一個(gè)或多個(gè)操作系統(tǒng)132的一個(gè)或多個(gè)實(shí)例,和創(chuàng)建,管理和調(diào)度操作系統(tǒng)132的實(shí)例以便執(zhí)行的管理程序(操作系統(tǒng)管理程序)130。如下面進(jìn)一步討論的,固件136和管理程序130包括用于獨(dú)立于由IPU114,主橋110和設(shè)備116實(shí)現(xiàn)的實(shí)際的下層硬件中斷體系結(jié)構(gòu)(多個(gè)體系結(jié)構(gòu)),仿真被選擇的中斷體系結(jié)構(gòu)的指令。
現(xiàn)在參考圖2,以下層中斷硬件200給出了表示數(shù)據(jù)處理系統(tǒng)100的示例軟件環(huán)境的層次圖。在圖1的數(shù)據(jù)處理系統(tǒng)100中,中斷硬件200至少包括中斷提交單元118,主橋110和設(shè)備116。
如圖2所示,在最高邏輯層應(yīng)用134在一個(gè)或多個(gè)下層操作系統(tǒng)實(shí)例132的控制下,并且使用由一個(gè)或多個(gè)下層操作系統(tǒng)實(shí)例132提供的資源執(zhí)行。與操作系統(tǒng)通過(guò)定義完善的中斷寄存器接口直接與中斷硬件通信的傳統(tǒng)的實(shí)現(xiàn)相反,操作系統(tǒng)132通過(guò)中斷仿真代碼與中斷硬件200通信,在優(yōu)選實(shí)施例中所述的中斷仿真代碼包括固件136和管理程序130。即,操作系統(tǒng)132的與中斷有關(guān)的調(diào)用被固件136或管理程序130內(nèi)的運(yùn)行時(shí)抽象服務(wù)(RTAS)202接收,操作系統(tǒng)132假定存在仿真的中斷體系結(jié)構(gòu)。RTAS202和管理程序130(它們至少了解緊接著的下層中斷硬件200的中斷體系結(jié)構(gòu))將所述與中斷有關(guān)的調(diào)用轉(zhuǎn)換為中斷硬件200的適當(dāng)?shù)男问健?br>
例如,響應(yīng)對(duì)調(diào)用210a的接收,RTAS202將仿真的中斷體系結(jié)構(gòu)的操作系統(tǒng)調(diào)用210a轉(zhuǎn)換為緊接著的下層硬件中斷體系結(jié)構(gòu)的不同的調(diào)用210b,并且將調(diào)用210b傳遞到中斷硬件200??商鎿Q地或另外,RTAS202可以將調(diào)用210a轉(zhuǎn)換為中間調(diào)用210c,中間調(diào)用210c進(jìn)一步被管理程序130轉(zhuǎn)換為緊接著的下層硬件中斷體系結(jié)構(gòu)的調(diào)用210d。管理程序130可以類(lèi)似地將直接從操作系統(tǒng)132接收的仿真的中斷體系結(jié)構(gòu)中的調(diào)用212a轉(zhuǎn)換為所述緊接著的下層硬件中斷體系結(jié)構(gòu)中的不同的調(diào)用212b,并且將調(diào)用212b傳遞到下層中斷硬件200。
在一個(gè)優(yōu)選實(shí)施例中,取決于中斷調(diào)用的預(yù)期目標(biāo),可以或是由RTAS202或是由管理程序130處理操作系統(tǒng)中斷調(diào)用。例如,屬于外部中斷源的中斷調(diào)用被RTAS 202接收和轉(zhuǎn)換,并且指向中斷提交單元118的中斷調(diào)用被管理程序130接收和轉(zhuǎn)換。還應(yīng)當(dāng)理解,對(duì)這些調(diào)用的響應(yīng)(如果有的話)也需要適當(dāng)?shù)霓D(zhuǎn)換。
雖然沒(méi)有被要求以便實(shí)現(xiàn)本發(fā)明,固件136或OS(多個(gè)OS)132可以可選擇地還包括平臺(tái)抽象層(PAL)204。PAL 204進(jìn)一步從產(chǎn)生操作系統(tǒng)調(diào)用諸如調(diào)用210a和處理單元(多個(gè)處理單元)102或被實(shí)際用于服務(wù)于這些調(diào)用的硬件資源之間的獨(dú)立性的軟件中“抽象”硬件資源。
根據(jù)本發(fā)明,由操作系統(tǒng)132實(shí)現(xiàn)的中斷體系結(jié)構(gòu)獨(dú)立于由IPU118實(shí)現(xiàn)的下層中斷體系結(jié)構(gòu),由IPU118實(shí)現(xiàn)的下層中斷體系結(jié)構(gòu)又獨(dú)立于由主橋110實(shí)現(xiàn)的下層中斷體系結(jié)構(gòu)。因此,為了正確地處理數(shù)據(jù)處理系統(tǒng)100內(nèi)的異步的中斷,可能需要兩層或多層仿真或轉(zhuǎn)換(1)主橋110和IPU118的中斷體系結(jié)構(gòu)之間的轉(zhuǎn)換,和(2)IPU118和操作系統(tǒng)(多個(gè)操作系統(tǒng))132的中斷體系結(jié)構(gòu)(多個(gè)體系結(jié)構(gòu))之間的轉(zhuǎn)換。
為了促使更好地理解本發(fā)明,下面參考特定的實(shí)施例描述本發(fā)明,其中在實(shí)現(xiàn)OpenPIC中斷體系結(jié)構(gòu)的IPU118和實(shí)現(xiàn)IntelI/O APIC中斷體系結(jié)構(gòu)的主橋上仿真PowerPC中斷體系結(jié)構(gòu)(與AIX和Linux操作系統(tǒng)兼容的一種兼容RISC平臺(tái)體系結(jié)構(gòu)(RPA)的中斷體系結(jié)構(gòu))。在被與本申請(qǐng)共同受讓的美國(guó)專(zhuān)利No.5,701,495中詳細(xì)描述了PowerPC中斷體系結(jié)構(gòu),并且通過(guò)引用將其完整地結(jié)合在此。在可從Santa Clara,CA的Intel公司得到的Intel82093AA I/O高級(jí)可編程中斷控制器(I/O APIC)數(shù)據(jù)表中描述了I/O APIC中斷體系結(jié)構(gòu)。
作為對(duì)PowerPC中斷體系結(jié)構(gòu)的一個(gè)介紹,現(xiàn)在參考圖3,圖3使用三個(gè)層示出了PowerPC中斷體系結(jié)構(gòu)的邏輯實(shí)現(xiàn)中斷源層300,中斷路由層302和中斷提交層304。中斷源層300包括各個(gè)中斷源314,它們可以要求中斷(即,發(fā)送信號(hào),指出中斷源314處的中斷狀態(tài)的出現(xiàn))以便請(qǐng)求服務(wù)。中斷源層300標(biāo)識(shí)中斷源,并且給其分配優(yōu)先級(jí)和服務(wù)器號(hào)。中斷路由層302將所有中斷狀態(tài)路由到中斷提交層304內(nèi)的中斷管理區(qū)域的適當(dāng)?shù)膶?shí)例。中斷提交層304溝通中斷源和這樣的軟件,所述軟件接受所述中斷狀態(tài),指出對(duì)中斷的接受,通知中斷提交層304它已經(jīng)處理的該中斷,并且重置中斷狀態(tài)。
如所說(shuō)明的,每個(gè)中斷源314為每個(gè)支持的中斷源線包括一個(gè)外部中斷向量入口(XIVE)316。外部中斷源314通過(guò)相關(guān)的XIVE 316發(fā)送信號(hào)通知相應(yīng)的中斷源的中斷請(qǐng)求的存在。XIVE 316是4字節(jié)的寄存器,高位的兩個(gè)字節(jié)(位0-15)被保留,緊接著低位字節(jié)的字節(jié)(位16-23)指明PowerPC中斷服務(wù)器號(hào),并且低位字節(jié)(位24-31)指明中斷優(yōu)先級(jí)。在服務(wù)器號(hào)字節(jié)中,低的值被用于指定個(gè)別的處理單元,并且高的值被用于指定全局服務(wù)器(即,處理單元組)。在中斷優(yōu)先級(jí)字節(jié)中,最低的中斷優(yōu)先級(jí)(0XFF)起禁止該中斷源的作用,并且0X00被為專(zhuān)用中斷源保留。除了這些專(zhuān)用的優(yōu)先級(jí)值之外,AIX僅使用值0X01到0X04,并且Linux僅使用值0X05。
中斷提交層304包括與處理器或服務(wù)器(即,用于中斷處理的處理器的邏輯組)相關(guān)聯(lián)的寄存器(根據(jù)本發(fā)明,仿真的寄存器),所述操作系統(tǒng)(多個(gè)操作系統(tǒng))與所述處理器或服務(wù)器接合以便創(chuàng)建和處理各個(gè)中斷。在PowerPC中斷體系結(jié)構(gòu)中,中斷提交層304的定義根據(jù)系統(tǒng)內(nèi)的處理器或服務(wù)器的數(shù)目而改變,并且包括下面的寄存器(1)排隊(duì)的中斷請(qǐng)求寄存器(QIRR)308-至少每個(gè)處理器一個(gè),并且每個(gè)非特定處理器服務(wù)器隊(duì)列一個(gè),包括兩個(gè)寄存器(a)最優(yōu)先的請(qǐng)求寄存器(MFRR)-一個(gè)8位的寄存器,保持著為特定處理器而排隊(duì)的最優(yōu)先的處理器間的優(yōu)先級(jí);和(b)中斷源規(guī)格寄存器(ISSR),被用于配置MFRR的源規(guī)格。
(2)外部中斷請(qǐng)求寄存器(XIRR)310-被在每個(gè)處理器上實(shí)現(xiàn),以便給用于中斷的系統(tǒng)軟件提供單一的源標(biāo)識(shí)符,并且包括兩個(gè)寄存器(a)當(dāng)前處理器優(yōu)先級(jí)寄存器(CPPR)-一個(gè)8位的寄存器,以256個(gè)優(yōu)先級(jí)值中的一個(gè)指出當(dāng)前處理器的優(yōu)先級(jí)。最低優(yōu)先級(jí)是0XFF,并且最高優(yōu)先級(jí)是0X00。中斷提交層僅向具有比CPPR的當(dāng)前設(shè)置更優(yōu)先的中斷狀態(tài)的相關(guān)處理器發(fā)送信號(hào);和(b)外部中斷源寄存器(XISR)-一個(gè)24位的寄存器,包含被發(fā)送信號(hào)的中斷源的系統(tǒng)范圍內(nèi)的唯一的標(biāo)識(shí)符。低位的4位指出16個(gè)中斷等級(jí)中的一個(gè),或總線單元控制器(BUC)318內(nèi)的源(SRC)。高位的20個(gè)位表示總線單元控制器的總線單元ID(BUID)(通過(guò)以多個(gè)順序的BUID報(bào)告它自己,單個(gè)物理的BUC可以支持多于16個(gè)等級(jí))。值0表示當(dāng)前沒(méi)有掛起的外部中斷,并且值2表示MFRR包含比CPPR更優(yōu)先的等級(jí)。
(3)LINK寄存器312-一種僅見(jiàn)于II型中斷提交控制器內(nèi)的寄存器,并且被用于形成每個(gè)處理單元(per-processing-unit)的中斷提交控制器的環(huán)形鏈表,所述的中斷提交控制器包括服務(wù)于一服務(wù)器隊(duì)列的組。該環(huán)形鏈表替代I型的中斷提交控制器內(nèi)的中斷路由層的相應(yīng)功能。
中斷提交層304中的這些寄存器中的每一個(gè)在邏輯上在中斷路由層302內(nèi)具有各自相關(guān)的輸入和/或輸出端口320-334,以便允許進(jìn)行到或來(lái)自中斷源層300的通信。
如下面表I中所示,在傳統(tǒng)的PowerPC中斷體系結(jié)構(gòu)中,通過(guò)用于各個(gè)處理單元的存儲(chǔ)器映射中斷管理區(qū)域(IMA)表達(dá)中斷提交層304。處理單元的IMA的起始地址被稱(chēng)為它的基地址(BA),并且每個(gè)處理單元的基地址都不同。各個(gè)處理單元的BA被在配置時(shí)設(shè)置,并且具有下面表I中提出的結(jié)構(gòu)。
表I
雖然具有與PowerPC中斷體系結(jié)構(gòu)的某些類(lèi)似處,OpenPIC中斷體系結(jié)構(gòu)為中斷提交層采用不同的IMA。具體地,OpenPIC中斷體系結(jié)構(gòu)采用表II中提出的數(shù)據(jù)結(jié)構(gòu)。
表II
如通過(guò)表I和II的比較可見(jiàn),在PowerPC和OpenPIC中斷體系結(jié)構(gòu)的寄存器之間存在某些功能的對(duì)應(yīng)關(guān)系。例如,4個(gè)OpenPIC IPI發(fā)送命令端口在功能上相應(yīng)于單個(gè)PowerPC MFRR,OpenPIC CTPR相應(yīng)于PowerPC CPPR,OpenPIC IAR相應(yīng)于PowerPC XISR,并且OpenPICEOI寄存器相應(yīng)于向PowerPC XIRR寫(xiě)。
然而,還有使得不同的中斷體系結(jié)構(gòu)之間映射變得復(fù)雜的若干難點(diǎn)。例如,OpenPIC中斷體系結(jié)構(gòu)定義每個(gè)處理器4個(gè)IPI寄存器,它們中的每一個(gè)可以被設(shè)置為傳遞不同優(yōu)先級(jí)的IPI。在另一方面,PowerPC中斷體系結(jié)構(gòu)僅實(shí)現(xiàn)每個(gè)處理器一個(gè)MFRR。因?yàn)閮蓚€(gè)感興趣的操作系統(tǒng),AIX和Linux這兩者僅傳遞一種優(yōu)先級(jí)的IPI,僅有一個(gè)IPI寄存器被使用。然而,為了遵從OpenPIC中斷體系結(jié)構(gòu),為每個(gè)處理器在IMA中出現(xiàn)全部的4個(gè)IPI寄存器,但是它們的內(nèi)容被邏輯或(OR),并且軟件被約束為僅設(shè)置一個(gè)寄存器(例如,在BA+0X040)。此外,重要的是要注意,在OpenPIC中斷體系結(jié)構(gòu)中,IPI不需要明確的EOI調(diào)用,因?yàn)閷?duì)中斷的確認(rèn)被認(rèn)為暗示著EOI調(diào)用。然而在PowerPC中斷體系結(jié)構(gòu)內(nèi),包括IPI在內(nèi)的所有中斷必須接收EOI調(diào)用;因此,在OpenPIC中斷體系結(jié)構(gòu)上仿真PowerPC中斷體系結(jié)構(gòu)時(shí),對(duì)IPI的EOI調(diào)用(由0X02的XISR值標(biāo)識(shí))被忽略。
必須被管理以便仿真PowerPC中斷體系結(jié)構(gòu)的OpenPIC和PowerPC中斷體系結(jié)構(gòu)之間的另一個(gè)不同是在OpenPIC中斷體系結(jié)構(gòu)內(nèi)缺少用于外部中斷的真正的查詢(xún)功能。即,如在上面表I內(nèi)可注意到的,對(duì)PowerPC中斷體系結(jié)構(gòu)內(nèi)的BA+0的讀允許不對(duì)中斷進(jìn)行確認(rèn)的XIRR的非破壞性的讀(通過(guò)BA+4的破壞性的讀確認(rèn)中斷)。OpenPIC中斷體系結(jié)構(gòu)沒(méi)有定義對(duì)中斷寄存器的查詢(xún)。
鑒于上述PowerPC和OpenPIC中斷體系結(jié)構(gòu)之間相應(yīng)的和不同的特征,本發(fā)明引入了若干由管理程序130實(shí)現(xiàn)的中斷提交層例程,以便在OpenPIC中斷提交層實(shí)現(xiàn)上仿真PowerPC中斷體系結(jié)構(gòu)。在表III中總結(jié)了并且在下面詳細(xì)描述了這些中斷提交層例程。
表III
如上所見(jiàn),在服從OpenPIC的IPU 118上仿真PowerPC中斷體系結(jié)構(gòu)還需要進(jìn)行中斷源層調(diào)用轉(zhuǎn)換,在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中所述轉(zhuǎn)換由RTAS 202執(zhí)行。IPU 118的上行ISU 120實(shí)現(xiàn)了每個(gè)外部中斷源兩個(gè)由OpenPIC定義的寄存器向量?jī)?yōu)先級(jí)寄存器(VecPri)和目的地寄存器(Dest)。一般地,這些每個(gè)中斷源的寄存器對(duì)相應(yīng)于下行ISU 114內(nèi)的IOAPIC中斷源寄存器對(duì)。由上行ISU 120處理OpenPIC和IOAPIC中斷源寄存器對(duì)之間的不同格式的必要的轉(zhuǎn)換。
如圖4A所示,OpenPIC VecPri寄存器400包括標(biāo)識(shí)外部中斷源的向量字段402,保留字段404,408和412,表示該中斷源的優(yōu)先級(jí)的優(yōu)先級(jí)字段406,表示中斷信號(hào)是正沿觸發(fā)(‘0’)還是有效低電平觸發(fā)(‘1’)的感知字段410,表示用于該源的向量,優(yōu)先級(jí)和目的地信息當(dāng)前是否正被中斷控制器使用,并且從而不應(yīng)改變的有效位(ACT),和MASK位416,當(dāng)MASK位被設(shè)置時(shí),禁止來(lái)自該源的任何其它中斷。
在優(yōu)選實(shí)施例中,相應(yīng)于VecPri寄存器400,中斷仿真代碼(例如,管理程序130和固件136)在存儲(chǔ)器中保持相應(yīng)于VecPri寄存器400的圖4C的影子VecPri“寄存器”430。如圖所示,影子VecPri寄存器430包括相應(yīng)于前面所述的字段406和416的優(yōu)先級(jí)字段436和屏蔽位446。此外,影子VecPri寄存器430還包括服務(wù)器字段432,其被用于確定如何設(shè)置在下面以圖4B說(shuō)明的VecPri寄存器的相關(guān)的目的地寄存器。
如圖4B所示,OpenPIC目的地(Dest)寄存器是32位的向量,它使用每個(gè)目的地一個(gè)位指明了該中斷的目的地(多個(gè)目的地)。如果選擇了單個(gè)目的地,則來(lái)自相關(guān)中斷源的中斷將被指引到該目的地。如果選擇了多個(gè)目的地,則來(lái)自該中斷源的中斷被使用特定于實(shí)現(xiàn)的分布算法分布在所選擇的目的地處理器之間。
為了在OpenPIC VecPri和Dest寄存器上仿真PowerPC中斷體系結(jié)構(gòu)的XIVE,RTAS 202支持若干不同的例程以便將對(duì)XIVE的訪問(wèn)轉(zhuǎn)換為VecPri和Dest訪問(wèn)。在下面的表IV中總結(jié)了這些例程表IV
如下面詳細(xì)的說(shuō)明,取決于中斷硬件是否實(shí)現(xiàn)了如圖4A中所示的用于每個(gè)外部中斷源的硬件屏蔽位416,本發(fā)明支持上述例程的不同的實(shí)施例。
現(xiàn)在參考圖5A,給出了引導(dǎo)處理的一部分的高層邏輯流程圖,通過(guò)該流程,在包括硬件屏蔽位的數(shù)據(jù)處理系統(tǒng)100的第一實(shí)施例內(nèi)的仿真的中斷環(huán)境內(nèi),固件136初始化中斷處理。如圖所示,處理在方框500開(kāi)始(或從早先的處理繼續(xù)),并且然后進(jìn)入方框502,方框502示出固件136通過(guò)將IPU 118內(nèi)的每個(gè)OpenPIC VecPri寄存器400的優(yōu)先級(jí)字段406寫(xiě)為最低優(yōu)先值禁止所有的外部中斷源。
在方框502中示出的禁止外部中斷源中,重要的是要注意,對(duì)于IPI和外部中斷兩者,PowerPC和OpenPIC中斷體系結(jié)構(gòu)采用不同的優(yōu)先級(jí)值大小和含義。在下面的表V中總結(jié)了用于IPI和外部中斷兩者的PowerPC和OpenPIC優(yōu)先級(jí)值之間的映射。
表V
在方框502之后,處理進(jìn)入方框506,其所給出固件136重置每個(gè)VecPri寄存器400內(nèi)的屏蔽位416,以便允許外部中斷源中斷。此外,在方框508,固件136初始化IPU 118內(nèi)的每個(gè)處理單元102的OpenPICCTPR為最高優(yōu)先值(0XF)。此后,在方框510,固件136將控制傳遞給操作系統(tǒng)132的實(shí)例以便繼續(xù)引導(dǎo)處理。
在引導(dǎo)處理中的該點(diǎn),中斷被解除屏蔽(被允許),但是操作系統(tǒng)實(shí)例132被保護(hù)不受中斷的影響直到它至少將一個(gè)處理器的優(yōu)先級(jí)從最高優(yōu)先級(jí)降低,并且將至少一個(gè)中斷源的優(yōu)先級(jí)從最低優(yōu)先級(jí)升高為止。以這種方式,操作系統(tǒng)實(shí)例132可以推遲中斷直到它準(zhǔn)備好并且能夠正確地處理該中斷為止。
現(xiàn)在參考圖5B,其給出了引導(dǎo)處理的一部分的高層邏輯流程圖,通過(guò)該流程,在不包括硬件屏蔽位的數(shù)據(jù)處理系統(tǒng)100的第二實(shí)施例內(nèi)的仿真的中斷環(huán)境內(nèi),固件136初始化中斷處理。如圖所示,處理在方框520開(kāi)始(或從早先的處理繼續(xù)),并且然后進(jìn)入方框522,方框522示出固件136通過(guò)將IPU 118內(nèi)的每個(gè)OpenPIC VecPri寄存器400的優(yōu)先級(jí)字段406寫(xiě)為最低優(yōu)先值禁止所有的外部中斷源。
在方框522之后,處理進(jìn)入方框524,方框524示出固件136還將每個(gè)中斷源的影子OpenPIC VecPri寄存器430中的優(yōu)先級(jí)字段436設(shè)置為最低優(yōu)先級(jí)。接著,處理進(jìn)行到方框526,方框526示出固件136將每個(gè)影子OpenPIC VecPri寄存器430中的MASK位446設(shè)置為允許外部中斷源中斷。此外,在方框528,固件136初始化IPU118內(nèi)的每個(gè)處理單元102的OpenPIC CTPR,以及相應(yīng)的仿真的CPPR為最優(yōu)先值(0XF)。此后,在方框530,固件136將控制傳遞給操作系統(tǒng)132的實(shí)例以便繼續(xù)引導(dǎo)處理。
現(xiàn)在參考圖6A,其給出了根據(jù)實(shí)現(xiàn)了硬件MASK位416的本發(fā)明的第一實(shí)施例,用于設(shè)置仿真的外部中斷向量入口(XIVE)的示例處理的高層邏輯流程圖。示出的處理可以被執(zhí)行,例如,以便響應(yīng)在操作系統(tǒng)實(shí)例132上的設(shè)備驅(qū)動(dòng)注冊(cè),能夠由外部中斷源進(jìn)行中斷。
如圖所示,響應(yīng)固件136從操作系統(tǒng)實(shí)例132接收set_XIVE調(diào)用,處理從方框600開(kāi)始,set_XIVE調(diào)用在由操作系統(tǒng)實(shí)例132采用的仿真的中斷體系結(jié)構(gòu)內(nèi)指明中斷源標(biāo)識(shí)符,服務(wù)于來(lái)自該源的中斷的所希望的服務(wù)器以及中斷優(yōu)先級(jí)。如上所述,在由操作系統(tǒng)實(shí)例132設(shè)想(assumed)的PowerPC中斷體系結(jié)構(gòu)內(nèi),在數(shù)據(jù)處理系統(tǒng)100內(nèi)中斷源被唯一地以BUID/SRC對(duì)標(biāo)識(shí)。如方框602所示,響應(yīng)對(duì)中斷源標(biāo)識(shí)符的接收,固件136將PowerPC中斷源標(biāo)識(shí)符映射為相應(yīng)的OpenPIC和IOAPIC中斷源標(biāo)識(shí)符,以便標(biāo)識(shí)用于該中斷源的VecPri和Dest寄存器400,420,和相應(yīng)的影子寄存器430。
接著,在方框603,固件136在影子服務(wù)器字段432中保存用于該中斷源的指定的服務(wù)器。此外,如方框604所示,固件136確定用于該中斷源的所述指定的服務(wù)器是否是包括多個(gè)處理單元102的全局服務(wù)器。如方框606所示,如果是的,固件136在IPU 118內(nèi)為該中斷源設(shè)置OpenPICDest寄存器420,以便指出被指定的處理單元組。在另一方面,如方框610所示,如果被指定的服務(wù)器不是全局服務(wù)器,固件136為指出的中斷源設(shè)置OpenPIC Dest寄存器420,以便標(biāo)識(shí)被指定的處理單元102。
在方框606或610之后,處理進(jìn)入方框614,方框614示出固件136將中斷源內(nèi)的VecPri寄存器400的優(yōu)先級(jí)字段406更新為相應(yīng)于set_XIVE調(diào)用中指明的PowerPC的值的OpenPIC優(yōu)先級(jí)值。此后,處理在方框616結(jié)束。
現(xiàn)在參考圖6B,其給出了根據(jù)本發(fā)明的沒(méi)有實(shí)現(xiàn)硬件MASK位416的第二實(shí)施例,用于設(shè)置仿真的外部中斷向量入口(XIVE)的示例處理的高層邏輯流程圖。如圖所示,響應(yīng)固件136從操作系統(tǒng)實(shí)例132接收set_XIVE調(diào)用,處理從方框620開(kāi)始,set_XIVE調(diào)用在由操作系統(tǒng)實(shí)例132采用的仿真的中斷體系結(jié)構(gòu)內(nèi)指明中斷源標(biāo)識(shí)符,服務(wù)于來(lái)自該源的中斷的所希望的服務(wù)器以及中斷優(yōu)先級(jí)。如上所述,在由操作系統(tǒng)實(shí)例132設(shè)想的PowerPC中斷體系結(jié)構(gòu)內(nèi),在數(shù)據(jù)處理系統(tǒng)100內(nèi)中斷源被唯一地以BUID/SRC對(duì)標(biāo)識(shí)。如方框622所示,響應(yīng)對(duì)中斷源標(biāo)識(shí)符的接收,固件136將PowerPC中斷源標(biāo)識(shí)符映射為相應(yīng)的OpenPIC和IOAPIC中斷源標(biāo)識(shí)符,以便標(biāo)識(shí)用于該中斷源的VecPri和Dest寄存器400,420和相應(yīng)的影子寄存器430。
接著,在方框623,固件136分別在在影子服務(wù)器字段432和影子優(yōu)先級(jí)字段436中保存用于該中斷源的指定的服務(wù)器和中斷優(yōu)先級(jí)。此外,如方框624所示,固件136確定用于該中斷源的所述指定的服務(wù)器是否是包括多個(gè)處理單元102的全局服務(wù)器。如方框626所示,如果是的,固件136在IPU 118內(nèi)為該中斷源設(shè)置OpenPIC Dest寄存器420,以便指出被指定的處理單元組。在另一方面,如方框630所示,如果被指定的服務(wù)器不是全局服務(wù)器,固件136為指出的中斷源設(shè)置OpenPIC Dest寄存器420,以便標(biāo)識(shí)被指定的處理單元102。
在方框626或630之后,處理進(jìn)入方框632,方框632示出固件136確定用于該中斷源的影子MASK位446是否被設(shè)置以便允許(取消屏蔽)中斷。如果不是,處理簡(jiǎn)單地在方框636終止,這是因?yàn)樵撝袛嘣吹闹袛啾黄帘瘟?。然而,如果固?36在方框632確定影子MASK位446被設(shè)置為允許中斷,固件136將該中斷源的VecPri寄存器400的優(yōu)先級(jí)字段406更新為相應(yīng)于set_XIVE調(diào)用中指明的PowerPC值的OpenPIC優(yōu)先值。此后,處理在方框636結(jié)束。
現(xiàn)在參考圖6C,其示出了在實(shí)現(xiàn)了硬件MASK位406的本發(fā)明的第一實(shí)施例內(nèi)用于讀仿真的外部中斷源向量入口(XIVE)的示例處理的高層邏輯流程圖。響應(yīng)固件136從操作系統(tǒng)實(shí)例132接收get_XIVE調(diào)用,處理從方框640開(kāi)始,get_XIVE調(diào)用請(qǐng)求特定中斷源的XIVE316的值。如上所述,在PowerPC中斷體系結(jié)構(gòu)內(nèi)該中斷源被以BUID/SRC對(duì)標(biāo)識(shí)。
響應(yīng)對(duì)get_XIVE調(diào)用的接收,如方框642所示,固件136將PowerPC中斷源標(biāo)識(shí)符映射為相應(yīng)的OpenPIC和IOAPIC中斷源標(biāo)識(shí)符,以便標(biāo)識(shí)用于該中斷源的VecPri和Dest寄存器400,420,和相應(yīng)的影子寄存器430。接著,在方框644,固件136將被與從影子服務(wù)器字段432獲得的相關(guān)的PowerPC服務(wù)器號(hào)連接在一起的用于該中斷源的VecPri寄存器400的優(yōu)先級(jí)字段406的值(在正確地映射為PowerPC優(yōu)先級(jí)值之后)返回給操作系統(tǒng)實(shí)例132。此后,處理在方框626終止。
現(xiàn)在參考圖6D,其示出了在沒(méi)有實(shí)現(xiàn)硬件MASK位406的本發(fā)明的第二實(shí)施例內(nèi)用于讀仿真的外部中斷源向量入口(XIVE)的示例處理的高層邏輯流程圖。如圖所示,響應(yīng)固件136從操作系統(tǒng)實(shí)例132接收get_XIVE調(diào)用,處理從方框650開(kāi)始,get_XIVE調(diào)用請(qǐng)求特定中斷源的XIVE 316的值。如上所述,在PowerPC中斷體系結(jié)構(gòu)內(nèi)該中斷源被以BUID/SRC對(duì)標(biāo)識(shí)。
如方框652所示,響應(yīng)對(duì)get_XIVE調(diào)用的接收,固件136將PowerPC中斷源標(biāo)識(shí)符映射為相應(yīng)的OpenPIC和IOAPIC中斷源標(biāo)識(shí)符,以便標(biāo)識(shí)用于該中斷源的VecPri和Dest寄存器400,420,和相應(yīng)的影子寄存器430。接著,在方框654,固件136將被與從影子服務(wù)器字段432獲得的相關(guān)的PowerPC服務(wù)器號(hào)連接在一起的用于該中斷源的影子優(yōu)先級(jí)字段436的值(在正確地映射為PowerPC優(yōu)先級(jí)值之后)返回給操作系統(tǒng)實(shí)例132。此后,處理在方框656終止。
現(xiàn)在參考圖7A,其示出了根據(jù)本發(fā)明的第一實(shí)施例,用于禁止中斷源的示例處理的高層邏輯流程圖,在本發(fā)明的第一實(shí)施例中假設(shè)上行ISU120實(shí)現(xiàn)了物理MASK416位以便允許和禁止中斷源的中斷。如圖所示,響應(yīng)固件從操作系統(tǒng)實(shí)例132接收int_off調(diào)用,處理從方框700開(kāi)始,int_off調(diào)用包括標(biāo)識(shí)將被禁止中斷的中斷源的PowerPC BUID/SRC對(duì)。處理進(jìn)入方框702,其示出了固件136將BUID/SRC對(duì)映射為OpenPIC和IOAPIC中斷源標(biāo)識(shí)符。接著,如方框704所示,固件136將用于被標(biāo)識(shí)的中斷源的VecPri寄存器400的MASK位416設(shè)置為禁止(屏蔽)中斷。此后,處理在方框706結(jié)束。
現(xiàn)在參考圖7B,其示出了根據(jù)本發(fā)明的第二實(shí)施例,用于禁止中斷源的示例處理的高層邏輯流程圖,在本發(fā)明的第二實(shí)施例中假設(shè)上行ISU120沒(méi)有實(shí)現(xiàn)了物理MASK位以便允許和禁止中斷源的中斷。如圖所示,響應(yīng)固件從操作系統(tǒng)實(shí)例132接收int_off調(diào)用,處理從方框710開(kāi)始,int_off調(diào)用包括標(biāo)識(shí)將被禁止中斷的中斷源的PowerPC BUID/SRC對(duì)。然后,處理進(jìn)入方框712,其示出了固件136將BUID/SRC對(duì)映射為OpenPIC和IOAPIC中斷源標(biāo)識(shí)符。接著,如方框714和716所示,固件136將用于被標(biāo)識(shí)的中斷源的影子VecPri寄存器430的影子MASK位446設(shè)置為禁止(屏蔽)中斷,并且將VecPri寄存器400的優(yōu)先級(jí)字段406的值設(shè)置為最低優(yōu)先級(jí)。此后,處理在方框718結(jié)束。
應(yīng)當(dāng)注意,在圖7B示出的處理中,兩個(gè)分離的機(jī)構(gòu)被用于禁止中斷源進(jìn)行中斷-影子MASK位416和優(yōu)先級(jí)字段406的值。這兩個(gè)機(jī)制都被使用,從而中斷不會(huì)不注意地被共享同一中斷線的其它中斷源的設(shè)備驅(qū)動(dòng)器將優(yōu)先級(jí)字段406的值設(shè)置為不是最低優(yōu)先級(jí)的其它優(yōu)先級(jí)而被允許。
現(xiàn)在參考圖7C,其示出了根據(jù)本發(fā)明的第一實(shí)施例用于允許外部中斷源進(jìn)行中斷的示例處理的高層邏輯流程圖,在本發(fā)明的第一實(shí)施例中,上行ISU 120實(shí)現(xiàn)了物理的MASK位416以便允許和禁止由中斷源進(jìn)行中斷。
如圖所示,響應(yīng)由固件136從操作系統(tǒng)實(shí)例132接收int_on調(diào)用,圖7C的處理從方框720開(kāi)始,其中int_on調(diào)用包括標(biāo)識(shí)著將被禁止中斷的中斷源的PowerPC BUID/SRC對(duì)。然后,處理進(jìn)入方框722,其示出固件136將BUID/SRC對(duì)映射為相應(yīng)的OpenPIC和IOAPIC中斷源標(biāo)識(shí)符。接著如方框724所示,固件136將用于被標(biāo)識(shí)的中斷源的VecPri寄存器400的MASK位416重置為允許(解除屏蔽)中斷。此后,處理在方框728終止。
現(xiàn)在參考圖7D,其示出了根據(jù)本發(fā)明的第二實(shí)施例,用于允許外部中斷源進(jìn)行中斷的示例處理的高層邏輯流程圖,在本發(fā)明的第二實(shí)施例中,上行ISU 120沒(méi)有實(shí)現(xiàn)物理的MASK位416以便允許和禁止由中斷源進(jìn)行中斷。
如圖所示,響應(yīng)由固件136從操作系統(tǒng)實(shí)例132接收int_on調(diào)用,圖7D的處理從方框730開(kāi)始,其中int_on調(diào)用包括標(biāo)識(shí)著將被禁止中斷的中斷源的PowerPC BUID/SRC對(duì)。然后,處理進(jìn)入方框732,其示出固件136將BUID/SRC對(duì)映射為相應(yīng)的OpenPIC和IOAPIC中斷源標(biāo)識(shí)符。接著如方框734和736所示,固件136將用于被標(biāo)識(shí)的中斷源的影子MASK位446重置為允許(解除屏蔽)中斷,并且從影子優(yōu)先級(jí)字段436恢復(fù)VecPri優(yōu)先級(jí)字段406的值。此后,處理在方框738終止。
現(xiàn)在參考圖8,其示出了根據(jù)本發(fā)明用于寫(xiě)仿真的當(dāng)前處理器優(yōu)先級(jí)寄存器(CPPR)的示例處理的高層邏輯流程圖。如上所述,PowerPC CPPR指明了有關(guān)的處理器的當(dāng)前優(yōu)先級(jí)。
如圖所示,響應(yīng)管理程序120從操作系統(tǒng)實(shí)例132接收H_CPPR調(diào)用,圖8的處理從方框800開(kāi)始,其中H_CPPR調(diào)用包括用于指明的處理單元102的所希望的優(yōu)先級(jí)。然后處理進(jìn)入方框802,其示出固件136將PowerPC優(yōu)先級(jí)值映射為相應(yīng)的OpenPIC優(yōu)先級(jí)。接著如方框804和806所示,管理程序130將該P(yáng)owerPC優(yōu)先級(jí)值寫(xiě)到指明的處理單元102的影子CPPR,并且將相應(yīng)的OpenPIC優(yōu)先級(jí)值寫(xiě)到被指明的處理單元102的CTPR。此后,處理在方框808終止。應(yīng)當(dāng)理解,雖然示出的方法在影子CPPR內(nèi)存儲(chǔ)PowerPC優(yōu)先級(jí)值,可替換地影子CPPR可以存儲(chǔ)OpenPIC格式的優(yōu)先級(jí)值。
現(xiàn)在參考與9,其示出了根據(jù)本發(fā)明用于發(fā)送信號(hào)通知處理器間中斷(IPI)的示例處理的高層邏輯流程圖。響應(yīng)管理程序130從操作系統(tǒng)實(shí)例132接收H_IPI調(diào)用,圖9的處理從方框900開(kāi)始,H_IPI調(diào)用指明了在仿真的PowerPC體系結(jié)構(gòu)中進(jìn)行中斷的所希望的服務(wù)器(處理單元),以及被請(qǐng)求的處理器間中斷的優(yōu)先級(jí)。響應(yīng)對(duì)H_IPI調(diào)用的接收,管理程序130將被指出的服務(wù)器從PowerPC中斷體系結(jié)構(gòu)映射到處理單元102。
接著,管理程序130在方框904確定指出的處理單元102的OpenPICIPI發(fā)送端口0寄存器當(dāng)前是否被設(shè)置為由H_IPI請(qǐng)求指出的優(yōu)先級(jí)。如上所述,雖然OpenPIC中斷體系結(jié)構(gòu)規(guī)定每個(gè)處理器4個(gè)IPI發(fā)送命令端口,優(yōu)選地管理程序130邏輯地對(duì)這些寄存器的值進(jìn)行或運(yùn)算,以便如同PowerPC中斷體系結(jié)構(gòu)中那樣實(shí)現(xiàn)單個(gè)IPI發(fā)送端口(即,MFRR)。如方框912所示,如果在方框904做出IPI發(fā)送端口0被設(shè)置為所需要的優(yōu)先級(jí)的確定,管理程序130通過(guò)在做出請(qǐng)求的處理單元102的目的地寄存器內(nèi)設(shè)置用于目標(biāo)處理單元102的適當(dāng)?shù)奈灰?assert)被請(qǐng)求的IPI。
然而,如果當(dāng)前沒(méi)有在OpenPIC IPI發(fā)送端口0寄存器內(nèi)設(shè)置正確的優(yōu)先級(jí),管理程序130在方框906確定OpenPIC IPI發(fā)送端口0寄存器當(dāng)前是否正被使用。在優(yōu)選實(shí)施例中,為各個(gè)處理單元102在存儲(chǔ)器內(nèi)實(shí)現(xiàn)相應(yīng)的影子“在使用中”標(biāo)志,并且通過(guò)參考用于指出的處理單元102的“在使用中”標(biāo)志做出該確定。如果用于指出的處理單元102的OpenPICIPI發(fā)送端口0寄存器當(dāng)前正被使用,在方框908處理在等待一個(gè)被選擇的時(shí)間段之后返回方框906。一旦影子“在使用中”標(biāo)志指出OpenPIC IPI發(fā)送端口0寄存器不再被使用,在在方框912要求IPI之前,在方框910,管理程序130在做出請(qǐng)求的處理單元102的OpenPIC IPI發(fā)送端口0寄存器內(nèi)設(shè)置所希望的OpenPIC優(yōu)先級(jí)。然后,在方框914管理程序130為指出的處理單元102設(shè)置影子“在使用中”標(biāo)志。在方框914之后,處理在方框916終止。
現(xiàn)在參考圖10A,其示出了根據(jù)本發(fā)明,用于讀仿真的外部中斷請(qǐng)求寄存器(XIRR)的示例處理的高層邏輯流程圖。響應(yīng)管理程序130從操作系統(tǒng)實(shí)例132接收H_XIRR調(diào)用,處理從方框1000開(kāi)始,H_XIRR調(diào)用請(qǐng)求向處理單元102提出中斷的中斷源的身份。如方框1002所示,響應(yīng)對(duì)H_XIRR調(diào)用的接收,管理程序130從OpenPIC IMA讀OpenPIC IAR的值,并且將該IAR值映射為形成做出請(qǐng)求的中斷源的仿真的XISR值的PowerPC BUID/SRC對(duì),所述的IAR值是用于該中斷源的VecPri向量402的值。如方框1004所示,為了形成仿真的XIRR310的值,管理程序130將影子CPPR值預(yù)先計(jì)劃(prepend)為所述BUID/SRC對(duì)。
此外,如方框1006和1008所示,管理程序130將影子CPPR的值設(shè)置為中斷源的PowerPC的優(yōu)先級(jí),并且將影子X(jué)ISR設(shè)置為0以便確認(rèn)該中斷,并且指出當(dāng)前沒(méi)有中斷被掛起。然后管理程序130在方框1010將在方框1004形成的被連接的CPPR/XISC值作為被請(qǐng)求的XIRR值返回給操作系統(tǒng)實(shí)例132。此后,處理在方框1012終止。
現(xiàn)在參考圖10B,其示出了根據(jù)本發(fā)明用于發(fā)送中斷結(jié)束(EOI)的示例處理的高層邏輯流程圖。響應(yīng)管理程序130從操作系統(tǒng)實(shí)例132接收H_EOI調(diào)用,圖10B的處理從方框1020開(kāi)始。因?yàn)镻owerPC中斷體系結(jié)構(gòu)規(guī)定每個(gè)外部中斷源和IPI接收一個(gè)特定的,相應(yīng)的EOI,該EOI包括由進(jìn)行處理的處理單元102的新的CPPR值和做出請(qǐng)求的中斷源的BUID/SRC組成的XIRR值。此后,處理進(jìn)入方框1022,其示出從H_EOI調(diào)用中接收到的XIRR值中提取組成的CPPR和XISR值。如方框1024所示,管理程序130在用于做出調(diào)用的處理單元102的影子CPPR中保存CPPR值,并且在方框1026確定XISR值是否是0X02,即,該EOI是否屬于IPI。如果是的,如方框1028所示,管理程序130重置OpenPIC IPI發(fā)送端口0內(nèi)的“在使用中”標(biāo)記,但是忽略該EOI調(diào)用,這是因?yàn)镺penPIC不需要IPI的EOI。此后,處理在方框1040終止。
在另一方面,如果管理程序130在方框1026確定該EOI不屬于IPI,處理進(jìn)入方框1030。方框1030示出管理程序130將在方框1022提取的XISR值映射到上行ISU 120內(nèi)的OpenPIC VecPri和Dest寄存器對(duì)以及下行ISU114內(nèi)的相應(yīng)的IOAPIC寄存器對(duì)。然后管理程序130在方框1032將‘0’值寫(xiě)到OpenPIC EOI寄存器OpenPIC IMA。管理程序130還向下行ISU114中的相應(yīng)的IOAPIC寄存器發(fā)出EOI。此后,處理在方框1040終止。
如上所述,本發(fā)明提供了用于在數(shù)據(jù)處理系統(tǒng)內(nèi)仿真中斷體系結(jié)構(gòu)的方法,系統(tǒng)和程序產(chǎn)品。根據(jù)本發(fā)明,由一個(gè)或多個(gè)操作系統(tǒng)實(shí)例實(shí)現(xiàn)的中斷體系結(jié)構(gòu)獨(dú)立于由中斷提交單元實(shí)現(xiàn)的下層中斷體系結(jié)構(gòu),由中斷提交單元實(shí)現(xiàn)的下層中斷體系結(jié)構(gòu)又獨(dú)立于由下行中斷源單元實(shí)現(xiàn)的下層中斷體系結(jié)構(gòu)。通過(guò)以這種方式對(duì)中斷體系結(jié)構(gòu)分層,由中斷體系結(jié)構(gòu)不兼容帶來(lái)的數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)中的限制被消除了。
雖然參考優(yōu)選實(shí)施例進(jìn)行說(shuō)明特別地示出了本發(fā)明,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)其進(jìn)行形式上和細(xì)節(jié)上的各種改變而不脫離本發(fā)明的精神和范圍。例如,雖然以操作本發(fā)明的功能的計(jì)算機(jī)執(zhí)行軟件描述了本發(fā)明的方面,應(yīng)當(dāng)理解,可替換地本發(fā)明可以被實(shí)現(xiàn)為用于數(shù)據(jù)處理系統(tǒng)的程序產(chǎn)品。定義本發(fā)明的功能的程序可以被通過(guò)各種信號(hào)承載介質(zhì)傳遞到數(shù)據(jù)處理系統(tǒng),所述的各種信號(hào)承載介質(zhì)包括但不限于不可寫(xiě)存儲(chǔ)介質(zhì)(例如,CD-ROM),可寫(xiě)存儲(chǔ)介質(zhì)(例如,軟盤(pán)或硬盤(pán)驅(qū)動(dòng)器),和通信介質(zhì),諸如數(shù)字和模擬網(wǎng)絡(luò)。因此應(yīng)當(dāng)理解,這種信號(hào)承載介質(zhì),當(dāng)載有或編碼有操作本發(fā)明的功能的計(jì)算機(jī)可讀指令時(shí),提供了本發(fā)明的可替代的實(shí)施例。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng)內(nèi)的數(shù)據(jù)處理方法,所述方法包括中斷仿真代碼,其從操作系統(tǒng)接收請(qǐng)求訪問(wèn)第一中斷體系結(jié)構(gòu)內(nèi)的第一資源的第一調(diào)用;響應(yīng)所述中斷仿真代碼對(duì)第一調(diào)用的接收所述中斷仿真代碼將所述第一資源映射到所述數(shù)據(jù)處理系統(tǒng)的中斷硬件內(nèi)的第二資源,所述映射包括確定所述第二資源在不同的第二中斷體系結(jié)構(gòu)內(nèi)的標(biāo)識(shí)符;和所述中斷仿真代碼發(fā)起對(duì)由所述中斷硬件實(shí)現(xiàn)的所述第二資源的訪問(wèn)。
2.如權(quán)利要求1的方法,其中所述中斷仿真代碼包括第一和第二中斷仿真代碼;所述第一資源屬于所述數(shù)據(jù)處理系統(tǒng)內(nèi)的處理器的中斷管理區(qū)域;所述映射包括所述第一中斷仿真代碼將所述第一資源映射到第二資源;和所述方法還包括響應(yīng)所述中斷仿真代碼對(duì)操作系統(tǒng)以與所述數(shù)據(jù)處理系統(tǒng)內(nèi)的外部中斷源有關(guān)的第三資源為目標(biāo)的第二調(diào)用的接收,所述第二中斷仿真代碼將所述第三資源映射到所述第二中斷體系結(jié)構(gòu)內(nèi)的第四資源。
3.如權(quán)利要求1的方法,其中所述發(fā)起訪問(wèn)包括將所述第二資源的標(biāo)識(shí)符從所述第二中斷體系結(jié)構(gòu)轉(zhuǎn)換到不同的第三中斷體系結(jié)構(gòu)。
4.如權(quán)利要求1的方法,其中所述映射包括映射所述第一資源的存儲(chǔ)位置。
5.如權(quán)利要求1的方法,其中所述映射包括將所述第一調(diào)用內(nèi)指出的優(yōu)先級(jí)值從所述第一中斷體系結(jié)構(gòu)映射到所述第二中斷體系結(jié)構(gòu)。
6.如權(quán)利要求1的方法,其中所述第二資源包括優(yōu)先級(jí)字段,它指出外部中斷源在所述第二中斷體系結(jié)構(gòu)內(nèi)的優(yōu)先級(jí);所述方法還包括提供相應(yīng)于所述優(yōu)先級(jí)字段的影子優(yōu)先級(jí)字段;和在訪問(wèn)所述優(yōu)先級(jí)字段之前,將所述優(yōu)先級(jí)字段的值拷貝到所述影子優(yōu)先級(jí)字段。
7.一種程序產(chǎn)品,包括計(jì)算機(jī)可使用的介質(zhì);和所述計(jì)算機(jī)可使用介質(zhì)內(nèi)的中斷仿真代碼,其中所述中斷仿真代碼響應(yīng)從操作系統(tǒng)接收請(qǐng)求訪問(wèn)第一中斷體系結(jié)構(gòu)內(nèi)的第一資源的第一調(diào)用(1)通過(guò)確定第二資源在不同的第二中斷體系結(jié)構(gòu)內(nèi)的標(biāo)識(shí)符,將所述第一資源映射到數(shù)據(jù)處理系統(tǒng)的中斷硬件內(nèi)的所述第二資源;和(2)發(fā)起對(duì)由所述中斷硬件實(shí)現(xiàn)的所述第二資源的訪問(wèn)。
8.如權(quán)利要求7的程序產(chǎn)品,其中所述中斷仿真代碼包括第一和第二中斷仿真代碼;所述第一資源屬于所述數(shù)據(jù)處理系統(tǒng)內(nèi)的處理器的中斷管理區(qū)域;所述第一中斷仿真代碼將所述第一資源映射到第二資源;和其中所述中斷仿真代碼響應(yīng)對(duì)操作系統(tǒng)以與所述數(shù)據(jù)處理系統(tǒng)內(nèi)的外部中斷源有關(guān)的第三資源為目標(biāo)的第二調(diào)用的接收,使用所述第二中斷仿真代碼將所述第三資源映射到所述第二中斷體系結(jié)構(gòu)內(nèi)的第四資源。
9.如權(quán)利要求7的程序產(chǎn)品,其中所述中斷仿真代碼通過(guò)將所述第二資源的標(biāo)識(shí)符從所述第二中斷體系結(jié)構(gòu)轉(zhuǎn)換到不同的第三中斷體系結(jié)構(gòu),發(fā)起對(duì)所述第二資源的訪問(wèn)。
10.如權(quán)利要求7的程序產(chǎn)品,其中所述中斷仿真代碼映射所述第一資源的存儲(chǔ)位置。
11.如權(quán)利要求7的程序產(chǎn)品,其中所述中斷仿真代碼將所述第一調(diào)用內(nèi)指出的優(yōu)先級(jí)值從所述第一中斷體系結(jié)構(gòu)映射到所述第二中斷體系結(jié)構(gòu)。
12.如權(quán)利要求7的程序產(chǎn)品,其中所述第二資源包括優(yōu)先級(jí)字段,它指出外部中斷源在所述第二中斷體系結(jié)構(gòu)內(nèi)的優(yōu)先級(jí);所述中斷仿真代碼提供了相應(yīng)于所述優(yōu)先級(jí)字段的影子優(yōu)先級(jí)字段,并且在訪問(wèn)所述優(yōu)先級(jí)字段之前,將所述優(yōu)先級(jí)字段的值拷貝到所述影子優(yōu)先級(jí)字段。
13.一種數(shù)據(jù)處理系統(tǒng),包括一個(gè)或多個(gè)處理單元;被連接到所述一個(gè)或多個(gè)處理單元的中斷硬件;被連接到所述一個(gè)或多個(gè)處理單元的存儲(chǔ)器,所述存儲(chǔ)器包括操作系統(tǒng);和中斷仿真代碼,其響應(yīng)從操作系統(tǒng)接收請(qǐng)求訪問(wèn)第一中斷體系結(jié)構(gòu)內(nèi)的第一資源的第一調(diào)用(1)通過(guò)確定第二資源在不同的第二中斷體系結(jié)構(gòu)內(nèi)的標(biāo)識(shí)符,將所述第一資源映射到數(shù)據(jù)處理系統(tǒng)的中斷硬件內(nèi)的所述第二資源;和(2)發(fā)起對(duì)由所述中斷硬件實(shí)現(xiàn)的所述第二資源的訪問(wèn)。
14.如權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中所述中斷仿真代碼包括第一和第二中斷仿真代碼;所述第一資源屬于所述一個(gè)或多個(gè)處理單元內(nèi)的一個(gè)處理單元的中斷管理區(qū)域;所述第一中斷仿真代碼將所述第一資源映射到第二資源;和其中所述中斷仿真代碼響應(yīng)對(duì)操作系統(tǒng)以與所述數(shù)據(jù)處理系統(tǒng)內(nèi)的外部中斷源有關(guān)的第三資源為目標(biāo)的第二調(diào)用的接收,使用所述第二中斷仿真代碼將所述第三資源映射到所述第二中斷體系結(jié)構(gòu)內(nèi)的第四資源。
15.如權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中所述中斷仿真代碼通過(guò)將所述第二資源的標(biāo)識(shí)符從所述第二中斷體系結(jié)構(gòu)轉(zhuǎn)換到不同的第三中斷體系結(jié)構(gòu),發(fā)起對(duì)所述第二資源的訪問(wèn)。
16.如權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中所述中斷仿真代碼映射所述第一資源的存儲(chǔ)位置。
17.如權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中所述中斷仿真代碼將所述第一調(diào)用內(nèi)指出的優(yōu)先級(jí)值從所述第一中斷體系結(jié)構(gòu)映射到所述第二中斷體系結(jié)構(gòu)。
18.如權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中所述第二資源包括優(yōu)先級(jí)字段,它指出在所述中斷硬件內(nèi)的外部中斷源在所述第二中斷體系結(jié)構(gòu)內(nèi)的優(yōu)先級(jí);所述存儲(chǔ)器包括相應(yīng)于所述優(yōu)先級(jí)字段的影子優(yōu)先級(jí)字段;和所述中斷仿真代碼在訪問(wèn)所述優(yōu)先級(jí)字段之前,將所述優(yōu)先級(jí)字段的值拷貝到所述影子優(yōu)先級(jí)字段。
全文摘要
為了在數(shù)據(jù)處理系統(tǒng)中仿真中斷體系結(jié)構(gòu),中斷仿真代碼從操作系統(tǒng)接收請(qǐng)求訪問(wèn)第一中斷體系結(jié)構(gòu)內(nèi)的第一資源的第一調(diào)用。響應(yīng)所述中斷仿真代碼對(duì)第一調(diào)用的接收,所述中斷仿真代碼將所述第一資源映射到所述數(shù)據(jù)處理系統(tǒng)的中斷硬件內(nèi)的第二資源。所述映射操作包括確定在不同的第二中斷體系結(jié)構(gòu)內(nèi)所述第二資源的標(biāo)識(shí)符。然后所述中斷仿真代碼發(fā)起對(duì)由所述中斷硬件實(shí)現(xiàn)的所述第二資源的訪問(wèn)。
文檔編號(hào)G06F13/26GK1760845SQ20051010839
公開(kāi)日2006年4月19日 申請(qǐng)日期2005年10月13日 優(yōu)先權(quán)日2004年10月14日
發(fā)明者M·E·哈克, M·S·威廉姆斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司