專利名稱:中斷控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種中斷控制器。
計算機系統(tǒng)的設(shè)備(例如磁盤控制器)可以與系統(tǒng)的微處理器交互作用,以執(zhí)行特定的功能(例如從硬盤驅(qū)動器檢索數(shù)據(jù))。在這個交互中,設(shè)備可能需要臨時地中斷進行中的微處理器的操作,以便微處理器能服務(wù)該設(shè)備。
例如,微處理器可指令磁盤控制器從硬盤驅(qū)動器檢索一個數(shù)據(jù)塊,而在磁盤控制器正在檢索數(shù)據(jù)的同時,微處理器可執(zhí)行其它操作,諸如例如執(zhí)行程序代碼。在控制器檢索數(shù)據(jù)并將數(shù)據(jù)存儲在系統(tǒng)內(nèi)存中后,控制器就可以通知微處理器。
控制器通知微處理器的一個方法是生成一個中斷請求。根據(jù)該中斷請求,微處理器通常暫時停止任何進行中的操作,以便例如從系統(tǒng)內(nèi)存讀取該數(shù)據(jù)并根據(jù)該數(shù)據(jù)作出決定。
中斷請求一般是通過中斷請求信號傳達的。對于邊沿觸發(fā)式中斷請求來說,中斷請求信號通過改變邏輯狀態(tài)(例如從高邏輯狀態(tài)變成低邏輯狀態(tài))來指示中斷請求。電平觸發(fā)式中斷請求一般是由中斷請求信號的邏輯狀態(tài)(高或低)指示的。所以,邊沿觸發(fā)式中斷請求是通過中斷請求信號的預(yù)定轉(zhuǎn)換來指示的,電平觸發(fā)式中斷請求是通過中斷請求信號的預(yù)定邏輯電平來指示的。
典型的計算機系統(tǒng)具有許多可能需要微處理器留意的設(shè)備,因此具有許多可能生成中斷請求的設(shè)備。然而,微處理器可能只有一個中斷請求輸入引腳,所以一次只能處理一個中斷請求。為了解決這個難題,計算機系統(tǒng)可以有一個中斷控制器來接收各設(shè)備的中斷請求信號,為這些信號所指示的中斷請求排定優(yōu)先級,將一個中斷請求定向到微處理器去獲得服務(wù)。
這樣的一個中斷控制器可以是英特爾公司生產(chǎn)的8259A可編程中斷控制器。8259A中斷控制器可在其8個中斷輸入引腳上接收多達8個不同的中斷請求信號。因為在短時間間隔內(nèi)可能會發(fā)生許多中斷請求,8259A控制器排定各中斷請求的優(yōu)先次序,并(通過一個輸出中斷請求信號)將中斷請求的表示一次一個地提供給微處理器的中斷請求輸入引腳。
當中斷控制器激活微處理器的中斷請求輸入引腳以表明有中斷請求時,一個中斷確認序列開始。在這個序列期間,8259A中斷控制器提供一個被微處理器接收的中斷值。對于微處理器來說,該中斷值標識生成中斷請求的中斷信號并起著指向中斷表中一個單元的索引作用。這個單元存儲著微處理器可以為服務(wù)該中斷請求而執(zhí)行的一個中斷處理例程的地址。在通常被稱為主從方案的方案中,為了處理多于8個的中斷請求信號,可以將兩個或更多的8259A中斷控制器級聯(lián)在一起。
8259A主要是為只用于一個微處理器而設(shè)計的。參看
圖1,多處理器計算機系統(tǒng)8也可能使用中斷控制器10,諸如由英特爾公司生產(chǎn)的部件號為82093AA的I/O高級可編程中斷控制器(IOAPIC)。該中斷控制器10通過高級可編程中斷控制器(APIC)總線11與系統(tǒng)8的微處理器12傳送信息。
APIC總線11一般包含兩個雙向數(shù)據(jù)線和一個時鐘線。當中斷控制器10希望向其中一個微處理器12傳送一定的中斷請求時,中斷控制器10向APIC總線11提供信號,該信號指示的信息諸如是一個APIC地址(它標識要接收并服務(wù)該中斷請求的特定微處理器12)和中斷表的索引。
系統(tǒng)8一般有另外的電路用于方便中斷控制器10的使用。例如,為了與APIC總線11通信,每個微處理器12一般都有一個局部APIC接口14。系統(tǒng)8可能也包括一個包含8259A控制器的橋電路16,為較老版本的操作系統(tǒng)提供后向兼容。如下文所述,例如當操作系統(tǒng)首次啟動系統(tǒng)8時,可能需要這種后向兼容。
通常,有些較老版本的操作系統(tǒng)在系統(tǒng)的啟動期間期望在傳統(tǒng)的系統(tǒng)總線上(而不是在APIC總線上)確認中斷請求。對于這些較老版本的系統(tǒng),中斷控制器10可以與橋16交互作用,以所謂的虛擬線模式(virtual wire mode)模擬較老的8259A控制器的響應(yīng)。為此,在啟動期間,中斷控制器10通過APIC總線11上的消息發(fā)送中斷請求。然而,中斷請求的確認發(fā)生在系統(tǒng)總線上。
即使不在虛擬線模式中運行,中斷控制器10也能以不涉及APIC總線11的方式向微處理器發(fā)送中斷請求。例如,中斷控制器10可以將系統(tǒng)管理中斷(SMI)請求和非屏蔽中斷(NMI)請求直接提供給微處理器12相應(yīng)的中斷SMI和NMI中斷輸入引腳。
中斷控制器10可以接收來自許多不同的源的中斷請求信號,這些源諸如是工業(yè)標準體系結(jié)構(gòu)(ISA)總線18的中斷請求線、外圍部件互連(PCI)總線(一種符合位于Portland的PCI特殊利益集團提供的PCI規(guī)范2.0版或97214的總線)的中斷請求線(未予示出)和/或母板的中斷請求線(未予示出)。所有這些中斷請求信號都是中斷請求的可能的源,每個中斷請求都可以與一個不同的中斷處理程序相關(guān)聯(lián)。此外,由于使用多個微處理器,所以可以將不同中斷請求的處理分配給不同的微處理器12。為了跟蹤所有的與中斷請求信號相關(guān)聯(lián)的信息,中斷控制器10可包含一個中斷請求重定向表20。
該重定向表20通常包含重定向表項21(例如,重定向表項具有64位的寄存器單元,稱為RTE
、RTE[1]、RTE[2]…RTE[22]和RTE[23]),它們的每一個都與中斷控制器10的一個不同的中斷請求輸入引腳相關(guān)聯(lián)。參看圖13,每個重定向表項21例如可包括一個狀態(tài)位28,指示相關(guān)聯(lián)的輸入引腳的待處理中斷請求。每個重定向表項21也可包含一個目的地位字段22,存儲一個標識要處理源于該相關(guān)引腳的中斷請求的微處理器的值。重定向表項21的中斷向量位字段36可以存儲一個指示一個中斷向量的值。每個重定向表項21的其它位例如可以規(guī)定中斷請求在相關(guān)輸入引腳上是如何表示的(例如是電平觸發(fā)的還是邊沿觸發(fā)的),重定向表項21的其它位也可以被用來屏蔽中斷請求,阻止從中斷控制器10向上傳播到一個微處理器12。
重定向表項21一般不被用來為由中斷控制器10在內(nèi)部生成的中斷請求信號存儲信息。所以,源于這些信號的中斷請求不被通過APIC總線11傳達給微處理器。例如,中斷控制器10內(nèi)部的邏輯可以有選擇地將從有些中斷請求輸入引腳上接收的信號組合起來,生成一個輸出的SMI中斷請求信號(稱為SMIOUT#)。盡管該SMIOUT#信號在中斷控制器10的一個SMI輸出引腳17上出現(xiàn),該SMIOUT#信號所指示的中斷請求卻不會被提供到APIC總線11,因為該SMIOUT#信號沒有相關(guān)聯(lián)的重定向表項21。
然而,一種將一個表項21分配給該SMIOUT#信號的方法是通過一個外部網(wǎng)絡(luò)將該SMIOUT#信號從輸出引腳17傳送到一個輸入引腳。這樣,該SMIOUT#信號就被分配給與從外部網(wǎng)絡(luò)接收該SMIOUT#信號的輸入相關(guān)聯(lián)的表項21。然而,為此要占用一個輸入引腳,并且可能需要外部板路由選擇(external board routing)。
中斷控制器10通常以循環(huán)方式一次一個地搜索各表項21,以確定表項21的狀態(tài)位28是否指示一個待處理的中斷請求。這種循環(huán)式搜索的結(jié)果是,中斷控制器10可能不能立即照管待處理的中斷請求。中斷控制器10一般要搜索每個表項21,即使與該項相關(guān)聯(lián)的中斷請求輸入引腳是不用的。
所以,繼續(xù)需要一種減少這種循環(huán)查詢機制的延遲的中斷控制器。也繼續(xù)需要一種在重定向表中為內(nèi)部生成的中斷請求信號存儲信息的中斷控制器。
概括地說,在一個實施例中,一個中斷控制器包括一個具有用于接收外部中斷請求信號的輸入引腳的組件。該中斷控制器也包括一個中斷生成邏輯、一個存儲器和多路轉(zhuǎn)換邏輯,它們都安裝在該組件內(nèi)。該中斷生成邏輯生成內(nèi)部中斷請求信號,該多路轉(zhuǎn)換邏輯選擇性地在該存儲器的單元中為內(nèi)部的或外部的中斷請求信號存儲中斷信息。
概括地說,在另一個實施例中,一個中斷控制器包括用于接收中斷請求信號的導(dǎo)線、一個存儲器、一個寄存器和控制邏輯。每個中斷請求信號都能指示一個中斷請求。該寄存器是可寫的,用來標識供掃描的存儲器的單元的集合。該控制邏輯在該單元集合掃描中斷請求,但不在存儲器的其它單元中掃描中斷請求。
從以下說明、附圖和權(quán)利要求,本發(fā)明的優(yōu)點和其它特點將變得顯而易見。
圖1是現(xiàn)有技術(shù)的一個計算機系統(tǒng)的框圖。
圖2是圖1的中斷控制器的重定向表項的示意圖。
圖3是按照本發(fā)明一個實施例的計算機系統(tǒng)的框圖。
圖4是按照本發(fā)明一個實施例的中斷控制器的框圖。
圖5是表示圖4的中斷控制器的中斷信號的映射的圖。
圖6是表示圖4的中斷控制器所使用的掃描序列的表。
圖7是圖4的主控制單元的框圖。
圖8、9、10、11和12是圖7的監(jiān)控電路的電路示意圖。
圖13是圖7的表訪問電路的電路示意圖。
參看圖3,按照本發(fā)明的可編程中斷控制器的一個實施例30可以將(重定向表32的)重定向表項36分配給在控制器30內(nèi)部生成的內(nèi)部中斷請求信號和由控制器30的輸入引腳31接收的外部中斷請求信號。這種安排的結(jié)果是,不耗費任何中斷輸入引腳31就能將內(nèi)部生成的中斷請求(通過APIC總線56)傳達到微處理器150。
此外,如下文所述,在控制器30內(nèi)部生成的中斷請求信號,可以在控制器30的外部中斷輸出引腳39上出現(xiàn),通過一個消息接發(fā)電路出現(xiàn)(例如在APIC總線56上的一個消息),或者同時以這兩種方式出現(xiàn)。在有些實施例中,控制器30包括一個封裝了控制器30的電路的單芯片集成電路(IC)組件33,中斷請求輸入引腳31從該組件伸出,將該電路連接到外部接收的中斷請求信號。在這種情況下,術(shù)語“內(nèi)部的”和“內(nèi)部地”指的是由安置在該組件內(nèi)的控制器30的電路生成的信號。
該控制器30可以有若干其它特點。例如,為了減少因掃描重定向表項36而產(chǎn)生的延遲,控制器30可以被構(gòu)造成能在掃描時屏蔽掉一些表項36。如下文所述,被屏蔽的重定向表項可以是不是正在被用來存儲中斷信息的表項。
該控制器30的另一個特點是,該控制器能選擇性地將重定向表項36分配給內(nèi)部生成的中斷請求信號或者外部接收的中斷請求信號。這種安排的結(jié)果是,用來存儲表32的存儲空間得到節(jié)省,因為不必將未在使用的中斷請求輸入引腳分配給任何重定向表項36。
也參看圖4,更具體來說,每個重定向表項36存儲與一個中斷請求例程信號相關(guān)聯(lián)的信息(例如包含一個代表指向某中斷處理程序的中斷向量的值的信息)。該中斷請求信號可以是由控制器30以外的設(shè)備在外部生成的,也可以是由控制器30在內(nèi)部生成的。舉例來說,可以在控制器30內(nèi)對來自中斷請求輸入引腳31的信號進行邏輯組合,生成一個SMI中斷請求信號(稱為PRE_SMIOUT)。PRE_SMIOUT信號不但可以在控制器30的外部引腳39上出現(xiàn)(作為被稱作SMIOUT#的信號(其中后綴“#”表示一個負邏輯再生)),PRE_SMIOUT信號也可以被分配給一個重定向表項36。結(jié)果,可以將源于PRE_SMIOUT#信號的中斷請求傳達到APIC總線56。
在有些實施例中,內(nèi)部生成的中斷請求信號的其它例子包括由控制器30的確立寄存器38提供的信號。該確立寄存器38位于控制器30的寄存器單元34中,它可以提供例如16個中斷請求信號(稱作INTAS[15∶0])。該寄存器38例如可由微處理器150其中之一寫入一個表示對應(yīng)INTAS[15∶0]信號其中之一的中斷請求的值。
例如,在有些實施例中,值“4”可使INTAS[3]信號指示一個中斷請求,值“15”可使INTAS[15]信號指示一個中斷請求。使具體實施例而定,這些中斷請求可以由中斷請求信號的一個轉(zhuǎn)換(對于邊沿觸發(fā)式中斷請求)或者一個狀態(tài)(對于電平觸發(fā)式中斷請求)來指示。盡管是內(nèi)部生成的,每個INTAS[15∶0]信號都可以被分配給重定向表項36的其中之一,如下文所述。
在有些實施例中,控制器30并不為每個中斷請求信號(無論是外部還是內(nèi)部生成的)都分配一個重定向表項36,因為中斷請求信號的數(shù)目可能會大于重定向表項36的數(shù)目。相反,可以將重定向表項36用于內(nèi)部/外部生成的中斷信號的一部分,以便排除其余的中斷請求信號。這種安排的結(jié)果是,節(jié)省了表的空間,可以縮短重定向表項36的掃描時間,可以有效地忽略未使用的中斷請求信號或中斷請求輸入引腳。
舉例來說,參看圖5,重定向表32可以有64個重定向表項36(例如分配給64個位寄存器單元RTE
、RTE[1]、RTE[2]、…和RTE[63]的表項),每一個表項都可以被分配給一個不同的中斷請求信號??捎脕磉M行分配的中斷請求信號包括由ISA總線(未予示出)的中斷請求線提供并由控制器30的中斷請求輸入引腳接收的16個中斷請求信號(稱作INTIO[15∶0])。在有些實施例中,INTIO[15∶0]信號是雙向的。中斷請求信號也包括另外48個中斷請求信號(稱作INTIN[47∶0]),它們是由諸如PCI中斷請求線和母板中斷請求線等其它中斷源提供并由中斷請求輸入引腳接收的。
接著這個例子,在有些實施例中,可以將具有最高的寄存器存儲單元RTE[63]的重定向表項36,分配用來存儲對應(yīng)INTIN[47]信號、SMIOUT#信號和INTAS[15]信號的其中之一(從而排除其它兩個信號)的中斷信息。可以將具有寄存器存儲單元RTE[62∶48]的重定向表項36,分配用來存儲對應(yīng)INTIN[46∶32]信號或者INTAS[14∶0]信號(從而排除其它15個信號)的信息??梢詫⒕哂屑拇嫫鞔鎯卧猂TE[47∶16]的重定向表項36分配用來存儲對應(yīng)INTIN[31∶0]信號的信息,可以將具有寄存器存儲單元RTE[15∶0]的重定向表項36分配用來存儲對應(yīng)INTIO[15∶0]信號的中斷信息。
如下文所述,寄存器單元34(見圖4)的(由微處理器)可寫的寄存器位(稱作ASRTEN和SMI63,下文作說明)被用來如上所述地有選擇地將中斷信號分配給希望的表項36??梢杂羞x擇地對寄存器單元34的其它寄存器位(稱作RTEDIS[2∶0](見圖6),下文作說明)進行編程設(shè)置,以有選擇地屏蔽掉不使用的項36。這會有益于例如減少掃描表項36時的延遲,因為如下文所述,每搜索一項36就占用一個PCI時鐘周期。
如果沒有重定向表項36被屏蔽,則掃描就以遞增方式從最低寄存器存儲單元的表項(RTE
)循環(huán)進行到最高寄存器存儲單元的表項(RTE[63]),一次一個單元。
參看圖6,在有些實施例中,用RTEDIS[2∶0]位來屏蔽重定向表項36的連續(xù)的塊,使之不受掃描。在這些實施例中,掃描從最低寄存器存儲單元(RTE
)開始向上地連續(xù)進行,直到到達一個由RTEDIS[2∶0]位指示的寄存器存儲單元。發(fā)生這個情況時,掃描就跳到最高寄存器存儲單元(RTE[63]),然后(在下一個PCI時鐘周期)返回到最低寄存器存儲單元(RTE
),重復(fù)掃描循環(huán)。
其它實施例是可能的。例如,可以用寄存器位來更具體地指明若干個要作掃描屏蔽的相鄰的寄存器存儲單元塊或分別指明要作掃描屏蔽的各寄存器存儲單元。
回到圖4,為執(zhí)行上述功能,控制器30中可包含一個主控制單元40,它接收中斷請求信號,并根據(jù)它們的邏輯狀態(tài),維護和更新表項36的位。主控制單元40也提供一個指針(稱作SINDEX[5∶0],下文作說明),用來指向正被掃描的表32的存儲單元,如下文所述。
主控制單元40接收中斷請求信號并按(上述的)ASRTEN和SMI63位所指示的那樣向表項36有選擇地分配這些信號。主控制單元40就這樣接收INTIO[15∶0]信號、INTIN[47∶0]信號,PRE_SMIOUT信號和串行中斷信號(稱作SERIRQ[15∶0],由串行中斷請求接口42提供)。在有些實施例中,PRE_SMIOUT信號是由INTIO[15∶0]信號中選定的一些信號的邏輯組合而生成的。同INTIO[15∶0]信號一樣,SERIRQ[15∶0]信號指示ISA總線(未予示出)的中斷線的邏輯狀態(tài),并且是雙向的。如下文所述,在有些實施例中,寄存器單元34的一個位(稱作SSLTEN,下文作說明)指定是用INTIO[15∶0]信號還是代之以用SERIRQ[15∶0]信號。
主控制單元40與各種類型的總線通信。例如,主控制單元40通過串行中斷請求接口42與串行中斷總線44通信(以接收SERIO[15∶0]),通過APIC接口50與APIC總線56通信。主控制單元40可以用串行總線接口通過串行總線與位于其它I/O子系統(tǒng)(例如與不同的PCI總線相連的系統(tǒng))中的其它(類似于控制器30的)控制器通信。主控制單元40也可以與流線型APIC(SAPIC)接口52通信。
可以不用APIC接口56而是用SAPIC接口52通過PCI總線58向微處理器12傳輸中斷信息。控制器30的PCI接口54既將SAPIC接口52連接到PCI總線58,也將寄存器單元34連接到PCI總線58。
控制器30也包括一個兼容控制單元48,后者在兼容方式中可被用來保持與諸如8259A控制器的老式控制器的向后兼容。例如,可以用兼容控制單元48來有選擇地將INTIN[47∶0]信號變換成INTIO[15∶0]信號。在有些實施例中,兼容控制單元48(根據(jù)寄存器單元34的某個寄存器(未予示出)的內(nèi)容)有選擇地對INTIO[15∶0]信號和一個SMI信號(稱作SMI_IN)進行邏輯組合,生成PRE_SMIOUT信號。
參看圖6,在有些實施例中,主控制單元40包括一個監(jiān)控電路60,它接收所有中斷請求信號并通過一個時鐘同步電路傳送它們。監(jiān)控電路60以這種方式將(已經(jīng)被分配表項36的)中斷請求信號與PCI時鐘(稱作PCLK)同步,并將這些數(shù)字信號變換成一個多位信號(稱作INT NEW[63∶0])的各位。中斷請求信號被變換到的位位置直接對應(yīng)于與該中斷請求信號相關(guān)聯(lián)的表項36的存儲單元。例如,如果INTIN[33]信號被分配給具有寄存器存儲單元RTE[49]的表項36,則INT_NEW[49]位指示該INTIN[33]信號的狀態(tài)。監(jiān)控電路60也生成一個代表INT_NEW[63∶0]信號、但落后INT_NEW[63∶0]信號一個PCI時鐘周期的多位信號(稱作INT_OLD[63∶0])。
狀態(tài)電路62接收INT_NEW[63∶0]和INT_OLD[63∶0]信號,并根據(jù)它們的各位的邏輯狀態(tài),檢測中斷請求。狀態(tài)電路62以這種方式,通過觀測INT_NEW[63∶0]信號的各位的邏輯狀態(tài)并將這些狀態(tài)與預(yù)定的邏輯電平作比較而檢測電平觸發(fā)式中斷請求。狀態(tài)電路62檢測邊沿觸發(fā)式中斷請求的方法是,觀測INT_NEW[63∶0]和INT_OLD[63∶0]兩種信號的各位的狀態(tài),以檢測其中一個位的轉(zhuǎn)換。根據(jù)這些觀測,狀態(tài)電路62對由寄存器單元34接收的一個多位信號(稱作STAT[63∶0])的各位進行置位或清除。STAT[63∶0]信號的每個不同位用來提供對應(yīng)于給定重定向表項36的不同信號的狀態(tài)位28(見圖2)。
仍然參看圖6,主控制單元40也包括一個生成一個多位信號(稱作RIRR[63∶0])的遠程中斷請求寄存器電路68。RIRR[63∶0]信號中的每個位被用來更新一個不同表項36的一個不同的RIRR位域26。RIRR位域26不用于邊沿觸發(fā)式中斷請求。然而,對于電平觸發(fā)式中斷請求來說,RIRR電路68與一個中斷結(jié)束(EOI)電路64和監(jiān)控電路60交互作用,以判定某電平觸發(fā)式中斷請求何時被(微處理器)的局部APIC/SAPIC確認以及何時從該局部APIC接收到一個中斷結(jié)束(EOI)消息和一個匹配中斷向量。
監(jiān)控電路60用一個表存取電路66來生成選擇表項36的SINDEX[5∶0]指針。SINDEX[5∶0]指針所指向的表項36中存儲的值,由一個多位信號(稱作EDATA[63∶0])指示,該信號由寄存器單元34提供并由監(jiān)控電路60接收。
參看圖7,監(jiān)控電路60加倍中斷請求信號的時鐘,以生成INT_NEW[63∶0]信號的各個位。為此,監(jiān)控電路60生成一個代表延遲一個PCI時鐘信號的INT_NEW[63∶0]信號的中間多位信號(稱作INT_MID[63∶0]),這樣,監(jiān)控電路60包括一個D型觸發(fā)器80,它提供INT_MID[63]位,是由PCLK信號定時的。配置位SMI63當被確立時,即高電平時,(通過多路轉(zhuǎn)換器82)選擇反相的PRE_SMIOUT信號(PRE_SMIOUT#),傳送到觸發(fā)器80的輸入端。如果配置位SMI63被撤銷,即低電平,多路轉(zhuǎn)換器82就將多路轉(zhuǎn)換器86的輸出信號傳送到觸發(fā)器80的輸入端。多路轉(zhuǎn)換器86所提供的輸出信號是由ARSTEN配置位的邏輯狀態(tài)控制的。ASRTEN位被確立時,即高電平時,使多路轉(zhuǎn)換器86選擇INTAS[15]信號作為其輸出信號;如果被撤銷時,則使多路轉(zhuǎn)換器86選擇INTIN[47]信號作為其輸出信號。
參看圖8,監(jiān)控電路60也包括一個多位的D型觸發(fā)器90,它由PCLK信號定時,提供INT_MID[62∶48]位。該觸發(fā)器90的輸入端與一個多位的多路轉(zhuǎn)換器92的輸出端相連。多路轉(zhuǎn)換器92的選擇由ASRTEN配置位的邏輯狀態(tài)控制。當ASRTEN配置位被確立時,即高電平時,該多路轉(zhuǎn)換器92就將INTAS[14∶0]信號傳送到觸發(fā)器90的輸入端;當ASRTEN配置位被撤銷時,即低電平時,該多路轉(zhuǎn)換器92就將INTIN[46∶32]信號傳送到觸發(fā)器90的輸入端。
如圖9所示,INT_MID[47∶16]位是由一個多位的D型觸發(fā)器88提供的,該觸發(fā)器(在其輸入端)接收INTIN[31∶0]信號,并且是由PCLK信號定時的。
如圖10所示,INT_MID[15∶0]位是由一個多位的D型觸發(fā)器92提供的,該觸發(fā)器是由PCLK信號定時的。該觸發(fā)器92的輸入端與一個多位的多路轉(zhuǎn)換器94的輸出端相連。多路轉(zhuǎn)換器94的選擇由SSLTEN配置位的邏輯狀態(tài)控制。這樣,SSLTEN配置位的邏輯狀態(tài)決定該多路轉(zhuǎn)換器94是將SERIRQ[15∶0]信號(如果該SSLTEN位被確立,即高電平)還是將INTIO[15∶0]信號(如果該SSLTEN位被撤銷,即低電平)傳送到觸發(fā)器92的輸入端。
如圖11所示,INT_NEW[63∶9]和INT_NEW[7∶0]位是由一個多位的D型觸發(fā)器98提供的,該觸發(fā)器接收INT_MID[63∶9]和INT_MID[7∶0]位,并且是由PCLK信號定時的。由INT_NEW[8]位指示的中斷請求可能反相,也可能不反相,這取決于一個控制多路轉(zhuǎn)換器100的選擇的配置位(稱作INVRT8)的電平。當該INVRT8位被確立時,即高電平時,多路轉(zhuǎn)換器100就將INT_MID[8]#位傳送到觸發(fā)器98的相應(yīng)輸入端。否則,多路轉(zhuǎn)換器100就將非反相的INT_MID[8]位傳送到這個輸入端。
觸發(fā)器98提供INT_NEW[63∶0]位,后者被一個多位的D型觸發(fā)器96接收的輸入端。該觸發(fā)器96在其輸出端提供INT_OLD[63∶0]信號,是由PCLK信號定時的。
參看圖12,表存取電路66包括一個多位的D型觸發(fā)器104,它在其輸出端提供SINDEX[5∶0]指針信號,是由PCLK信號定時的。當一個(稱作RTAXES的)信號被確立時,即高電平時,表明PCI接口54正在訪問寄存器單元34。發(fā)生這個情況時,多位的多路轉(zhuǎn)換器106就將該SINDEX[5∶0]指針信號傳送回觸發(fā)器104的輸入端,以保留該SINDEX[5∶0]指針信號所指示的當前值。如果RTAXES信號是被撤銷時,即低電平時,多路轉(zhuǎn)換器106就把多路轉(zhuǎn)換器110的多位輸出信號傳送到觸發(fā)器104的輸入端。
多路轉(zhuǎn)換器110的選擇是由一個多位比較電路108的輸出信號控制的。該比較電路108將SINDEX[5∶0]指針信號所代表的值與值“111111b”(后綴“b”表示二進制表示法),該值表示SINDEX[5∶0]指針信號可以表示的最大允許值(即63)進行比較。如果達到這個最大值,比較電路108就確立其輸出信號,使多路轉(zhuǎn)換器110將一個代表“000000b”的多位信號傳送到觸發(fā)器104的輸入端。
如果SINDEX[5∶0]指針信號指示的值沒有達到這個最大值,多路轉(zhuǎn)換器110就將由另一個多位多路轉(zhuǎn)換器112的輸出端提供的一個多位信號傳送到觸發(fā)器104的輸入端。該多路轉(zhuǎn)換器112的選擇由一個多位比較電路114的輸出信號控制。
該比較電路114在一組輸入端接收SINDEX[5∶0]信號,在另一組輸入端接收一個并置信號。該并置信號的三個最高有效位表示RTEDIS[2∶0]位的反相,并置信號的三個最低有效位表示“111b”。如果SINDEX[5∶0]信號所指示的值等于該并置信號所代表的值,多路轉(zhuǎn)換器通過將一個表示“111111b”的多位信號傳送到觸發(fā)器104的輸入端而使SINDEX[5∶0]信號等于“111111b”。然而,如果不是,多路轉(zhuǎn)換器112就將一個加一計數(shù)器116的輸出端傳送到觸發(fā)器104的輸入端。該加一計數(shù)器116接收SINDEX[5∶0]信號,同時將該信號代表的值加1,然后提供一個表示該相加結(jié)果的多位輸出信號。
盡管參照有限數(shù)量的實施例說明了本發(fā)明,本領(lǐng)域的熟練人員將明白有許多的修改和改變。后附的權(quán)利要求旨在包括所有這些在本發(fā)明的精神和范圍內(nèi)的修改和改變。
權(quán)利要求
1.一種中斷控制器,包含接收中斷請求信號的導(dǎo)線,其中每個中斷請求信號能指示一個中斷請求;一個包含能存儲關(guān)于中斷請求信號的信息的單元的存儲器;一個寄存器,該寄存器是可寫的,用來標識一個供掃描的第一單元集合和一個第二單元集合;在該第一單元集合掃描中斷請求、但不在該第二單元集合掃描中斷請求的控制邏輯。
2.權(quán)利要求1的中斷控制器,其中,該第一單元集合包含相鄰的單元塊。
3.權(quán)利要求1的中斷控制器,其中,該信息包含中斷請求狀態(tài)信息。
4.權(quán)利要求1的中斷控制器,其中,該控制邏輯讀取該第一單元集合,以檢測中斷請求,該中斷控制器進一步包含一個接口電路,用于在該控制邏輯檢測到中斷請求之一時通知微處理器。
5.一種方法,包含接收第一種中斷請求信號;將該第一種中斷請求信號的至少兩個組合起來生成一個第二中斷請求信號;在一個存儲單元為該第一種中斷請求信號的任一個或為該第二中斷請求信號存儲中斷信息,該中斷信息能指示一個中斷請求;和在該中斷信息指示中斷請求時通知處理器。
6.一種方法,包含接收中斷請求信號,每個中斷請求信號能指示一個中斷請求;分配用于存儲關(guān)于中斷請求信號的信息的存儲單元;存儲標識要掃描的一個存儲器單元集合的掃描信息;和為檢測中斷請求而掃描該存儲單元集合,但不搜索其余的存儲單元。
7.權(quán)利要求6的方法,其中,該掃描包含遍歷一個相鄰的單元塊。
8.權(quán)利要求6的方法,其中,該掃描包含讀取該單元集合,以檢測中斷請求;和在檢測到中斷請求之一時通知微處理器。
9.一種中斷控制器,包含一個有用于接收外部中斷請求信號的輸入引腳的組件;位于該組件內(nèi)的用于生成內(nèi)部中斷請求信號的中斷生成邏輯;一個位于該組件內(nèi)并包含一個存儲單元的存儲器;和位于該組件內(nèi)的用于在該存儲單元為內(nèi)部中斷請求信號或外部中斷請求信號有選擇地存儲中斷信息的多路轉(zhuǎn)換邏輯。
10.權(quán)利要求9的中斷控制器,其中,該中斷生成邏輯包含一個存儲一個值的確立寄存器;和用于根據(jù)該值生成內(nèi)部中斷請求信號的確立邏輯。
11.權(quán)利要求10的中斷控制器,其中,該值是可以由該組件外部的設(shè)備改變的。
12.權(quán)利要求9的中斷控制器,其中,該中斷生成邏輯接收至少一個外部中斷請求信號。
13.權(quán)利要求9的中斷控制器,其中,該內(nèi)部中斷請求信號包含一個SMI中斷請求信號。
14.權(quán)利要求9的中斷控制器,進一步包含一個接口電路,用于在一個表示中斷信息被存儲的信號指示一個中斷請求時將該中斷信息傳送給微處理器。
全文摘要
一個中斷控制器包括用于接收中斷請求信號的導(dǎo)線、一個存儲器、一個寄存器和控制邏輯。每個中斷請求信號能指示一個中斷請求。該存儲器能夠存儲關(guān)于中斷請求信號的信息,該寄存器是可寫的,用來標識供掃描的存儲器的單元的集合。該控制邏輯在該單元集合掃描中斷請求,但不在存儲器的其它單元掃描中斷請求。在有些情況中,中斷請求信號的數(shù)量超過單元的數(shù)目。對于這些情形,在這些單元中存儲關(guān)于選定的中斷信號的信息。
文檔編號G06F13/20GK1298519SQ99805621
公開日2001年6月6日 申請日期1999年4月13日 優(yōu)先權(quán)日1998年4月29日
發(fā)明者K·哈倫, T·夸克 申請人:英特爾公司