專利名稱:將地址與數(shù)據(jù)線上的中斷請(qǐng)求信號(hào)轉(zhuǎn)換成中斷消息信號(hào)的機(jī)制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)中的中斷。
外圍部件互連(PCI)局部總線規(guī)范(修訂版2.1)(“PCI總線規(guī)范”)已經(jīng)制定,用于定義PCI總線。PCI總線規(guī)范為總線上的設(shè)備定義了一種互連機(jī)制和傳輸協(xié)議。PCI規(guī)范不時(shí)受到補(bǔ)充和修改。然而,PCI規(guī)范的指導(dǎo)原則是后向兼容的原則,按照這個(gè)原則,較新的PCI系統(tǒng)將支持較老的PCI外圍設(shè)備。
計(jì)算機(jī)系統(tǒng)中,包括輸入和/或輸出(I/O)外圍設(shè)備在內(nèi)的各種設(shè)備都會(huì)尋求中斷處理器。當(dāng)涉及到PCI總線時(shí),這種設(shè)備有時(shí)被稱作PCI代理。要中斷處理器,PCI代理可以向中斷控制器發(fā)送一個(gè)或多個(gè)中斷請(qǐng)求信號(hào)INTA#、INTB#、INTC#或INTD#。中斷控制器的響應(yīng)是向處理器提供中斷消息。中斷控制器是通過(guò)中斷輸入引線接受中斷請(qǐng)求信號(hào)的。中斷輸入引線有時(shí)被稱為中斷請(qǐng)求(IRQ)引線,是通過(guò)IRQ線與PCI總線相連的。在外圍設(shè)備與中斷控制器之間可以有個(gè)中斷路由器。
中斷控制器所接收的中斷信號(hào)有兩類信令語(yǔ)義(signalingsemantics)(1)邊沿觸發(fā)中斷語(yǔ)義;(2)電平觸發(fā)中斷語(yǔ)義。就邊沿觸發(fā)中斷來(lái)說(shuō),每次在中斷輸入引線檢測(cè)到邊沿(例如正向邊沿)時(shí),中斷控制器就觸發(fā)一個(gè)中斷事件。邊沿觸發(fā)中斷的問(wèn)題是,中斷控制器可能會(huì)遺漏第二個(gè)中斷的邊沿-如果它是在第一個(gè)中斷被服務(wù)之前發(fā)生的話。所以,在采用邊沿觸發(fā)中斷時(shí),一般只將一個(gè)外圍設(shè)備與中斷輸入引線相連。
就電平觸發(fā)中斷來(lái)說(shuō),中斷輸入引線上的某特定邏輯電壓電平(例如邏輯高電壓)導(dǎo)致中斷控制器觸發(fā)一個(gè)中斷事件。在采用電平觸發(fā)中斷時(shí),可以有一個(gè)以上的外圍設(shè)備向一個(gè)輸入引線提供中斷請(qǐng)求信號(hào)。然而,中斷輸入引線上由多個(gè)外圍設(shè)備提供的電壓電平與僅由一個(gè)外圍設(shè)備提供的電壓電平是不同的。所以,中斷控制器不是僅僅通過(guò)檢測(cè)中斷輸入引線上的電壓電平就能確定有多少外圍設(shè)備在提供中斷請(qǐng)求信號(hào)。根據(jù)檢測(cè)到的中斷輸入引線上該特定電平的變化,要向處理器發(fā)送中斷消息,并將中斷控制器中I/O重定向表中的一個(gè)狀態(tài)位置位。該狀態(tài)位在中斷控制器收到中斷結(jié)束(EOI)信號(hào)時(shí)被復(fù)位。如果在收到EOI之后,在中斷輸入端口上仍然能檢測(cè)到具有該特定電平的中斷信號(hào),就向處理器發(fā)送另一個(gè)中斷消息。
中斷控制器具有數(shù)量有限的中斷輸入引線。在當(dāng)前技術(shù)條件下,向計(jì)算機(jī)系統(tǒng)添加更多的外圍設(shè)備時(shí),需要增加中斷輸入引線的數(shù)量,否則外圍設(shè)備就需要等待更長(zhǎng)的時(shí)間才能得到中斷服務(wù)。
所以,需要一種改進(jìn)的系統(tǒng)來(lái)從外圍設(shè)備向處理器提供中斷請(qǐng)求。
在本發(fā)明一個(gè)實(shí)施例中,一個(gè)裝置包含用來(lái)接收以地址信號(hào)和數(shù)據(jù)信號(hào)為形式的中斷請(qǐng)求信號(hào)的地址與數(shù)據(jù)端口。該裝置也包含解碼邏輯電路,用來(lái)接收至少一些地址信號(hào)和數(shù)據(jù)信號(hào)并在解碼邏輯電路的若干解碼輸出線的其中之一上提供解碼信號(hào)。一個(gè)重定向表包含一個(gè)“發(fā)送未決”位,該位是根據(jù)解碼信號(hào)被置位的。
通過(guò)以下所作的詳細(xì)說(shuō)明和本發(fā)明實(shí)施例的附圖,將能更全面地理解本發(fā)明,不過(guò),這些說(shuō)明和附圖不應(yīng)被用來(lái)將本發(fā)明限定在所說(shuō)明的特定實(shí)施例,而應(yīng)被認(rèn)為只是為了方便解釋和理解。
圖1是按照本發(fā)明一個(gè)實(shí)施例的一個(gè)包含主橋接器(hostbridge)的計(jì)算機(jī)系統(tǒng)的框圖表示。
圖2是圖1的系統(tǒng)中的主橋接器一個(gè)實(shí)施例的框圖表示。
圖3是圖1的系統(tǒng)中的中斷控制器一個(gè)實(shí)施例的框圖表示。
圖4是圖2和3的I/O重定向表中“發(fā)送未決”位和相關(guān)電路一個(gè)實(shí)施例的框圖表示。
圖5是一個(gè)示例性外圍設(shè)備的框圖表示。
圖6是圖1的系統(tǒng)中的主橋接器另一個(gè)實(shí)施例的框圖表示。
參看圖1,計(jì)算機(jī)系統(tǒng)10包括處理器12、主橋接器16和可以按照PCI規(guī)范實(shí)現(xiàn)的I/O總線20。處理器12包括中斷控制器24,它可以是個(gè)可提前編程的中斷控制器(APIC)。處理器12與主橋接器16通過(guò)處理器總線26和串行總線28相連,串行總線可以是APIC串行總線。在有些實(shí)施例中,主橋接器16被稱為北橋接器(NorthBridge),處理器總線26被稱為前端總線(front side)或并行總線。
串行總線28可以從主橋接器16中的中斷控制器34向中斷控制器24提供中斷消息。中斷控制器34可以是個(gè)APIC。串行總線28可以包含兩路數(shù)據(jù)導(dǎo)線和一路時(shí)鐘信號(hào)導(dǎo)線,也可以從處理器12向中斷控制器34提供信號(hào),諸如中斷結(jié)束(EOI)信號(hào)。在多處理器系統(tǒng)中,串行總線28也可按照已知技術(shù)在最低優(yōu)先級(jí)中斷目的地仲裁中使用。
主橋接器16包括通過(guò)其從中斷請(qǐng)求線40接收中斷請(qǐng)求信號(hào)(例如IRQ信號(hào))的專用中斷(例如IRQ)端口38。中斷端口38可以是引線,其它結(jié)構(gòu),或者就是導(dǎo)線。中斷控制器34從端口38接收中斷請(qǐng)求信號(hào)。在一個(gè)實(shí)施例中,將中斷端口38視為中斷控制器34的一部分(因此也是主橋接器16的一部分)。在另一個(gè)實(shí)施例中,將中斷端口38視為主橋接器16的一部分,但不是中斷控制器34的一部分。只要中斷控制器38接收到中斷請(qǐng)求信號(hào),這種差別就不重要。
主橋接器16也包括地址、數(shù)據(jù)和其它端口42,通過(guò)其從地址、數(shù)據(jù)和其它線路44接收或向地址、數(shù)據(jù)和其它線路44提供地址、數(shù)據(jù)和其它信號(hào)。端口42可以是引線,其它結(jié)構(gòu),或者就是導(dǎo)線。端口38和42可以就是線路40和44的簡(jiǎn)單延續(xù)。中斷控制器34接收通過(guò)端口42的至少一些地址、數(shù)據(jù)和/或其它信號(hào)。在端口42所接收到的地址、數(shù)據(jù)和其它信號(hào)的一些或全部,在主橋接器16或其它地方用于中斷以外的各種目的。線路40和44以及本文所述的各種其它線路,可以是常規(guī)的導(dǎo)線(conductor traces),或者是各種其它形式的導(dǎo)線。根據(jù)本發(fā)明實(shí)施例,可將線路40和44視為是總線20的一部分或是獨(dú)立于總線20。
系統(tǒng)10包括可以通過(guò)向中斷控制器34提供中斷請(qǐng)求信號(hào)來(lái)中斷處理器12的外圍設(shè)備。圖1中表示了外圍設(shè)備和相關(guān)互連的例子。外圍設(shè)備50通過(guò)中斷線62并通過(guò)地址、數(shù)據(jù)和其它線路64與I/O總線20相連。要中斷處理器12,外圍設(shè)備50就在中斷線62上提供中斷請(qǐng)求信號(hào)(例如INTA#)。中斷請(qǐng)求信號(hào)通過(guò)總線20和中斷線40被傳送到中斷端口38。中斷控制器34對(duì)中斷請(qǐng)求信號(hào)的響應(yīng)是,向處理器12或另一個(gè)處理器(圖1中未予示出)提供適當(dāng)?shù)闹袛嘞ⅰ?br>
外圍設(shè)備52通過(guò)地址、數(shù)據(jù)和其它線路68(但不通過(guò)中斷線)與I/O總線20相連。要中斷處理器12,外圍設(shè)備52在地址、數(shù)據(jù)和其它線路68上提供中斷請(qǐng)求信號(hào)。在下文詳細(xì)討論的本發(fā)明一個(gè)實(shí)施例中,中斷請(qǐng)求信號(hào)涉及一個(gè)PCI寫(xiě)周期(write cycle)。中斷請(qǐng)求信號(hào)通過(guò)總線20和地址、數(shù)據(jù)和其它線路44被傳送。中斷控制器34對(duì)中斷請(qǐng)求信號(hào)的響應(yīng)是,向處理器12或另一個(gè)處理器(在圖1中未予示出的多處理器系統(tǒng)的情況下)提供適當(dāng)?shù)闹袛嘞ⅰ?br>
相應(yīng)地,主橋接器16可以根據(jù)來(lái)自兩類外圍設(shè)備的中斷請(qǐng)求信號(hào)向處理器12或另一個(gè)處理器提供中斷消息。第一類的外圍設(shè)備(例如外圍設(shè)備50)通過(guò)專用中斷線提供中斷請(qǐng)求信號(hào)(例如INTA#)。中斷請(qǐng)求信號(hào)由中斷控制器34通過(guò)中斷端口38接收。第二類的外圍設(shè)備(例如外圍設(shè)備52)例如通過(guò)地址和數(shù)據(jù)線提供中斷請(qǐng)求信號(hào)(例如包含一個(gè)PCI寫(xiě)周期)。中斷請(qǐng)求信號(hào)由中斷控制器34通過(guò)地址、數(shù)據(jù)和其它線路44接收。
外圍設(shè)備54、56和58表示外圍設(shè)備與總線20之間其它可能的接口。外圍設(shè)備54通過(guò)適配器72與總線20相連。適配器72可以通過(guò)線路74傳送中斷信號(hào),通過(guò)線路76傳送地址、數(shù)據(jù)和其它信號(hào)。導(dǎo)線74上提供的中斷請(qǐng)求信號(hào)被總線20傳送到中斷線40。外圍設(shè)備54與外圍設(shè)備52的相似之處,在于它通過(guò)地址、數(shù)據(jù)和其它線路-而不通過(guò)中斷線74-提供中斷請(qǐng)求信號(hào)。因此,就外圍設(shè)備54而言,中斷線74上沒(méi)有中斷請(qǐng)求信號(hào)。然而,可以將像外圍設(shè)備50一樣的外圍設(shè)備與適配器72相連。在這種情況下,適配器72就包含線路74上的中斷信號(hào)。或者,有些適配器也可能只包含線路76而不包含線路74。外圍設(shè)備56和58通過(guò)橋接器82與總線20相連。中斷請(qǐng)求信號(hào)通過(guò)線路94、90和84傳輸。地址、數(shù)據(jù)和其它信號(hào)通過(guò)線路98、96、92和86傳輸。
圖2表示了主橋接器16一個(gè)實(shí)施例的細(xì)節(jié)。地址、數(shù)據(jù)和其它端口42包括地址端口104、數(shù)據(jù)端口106和其它端口108。地址、數(shù)據(jù)和其它線路44包括地址線114、數(shù)據(jù)線116和其它線路118,它們分別傳輸?shù)刂沸盘?hào)、數(shù)據(jù)信號(hào)和其它信號(hào)(例如使能信號(hào))。
中斷線40上的中斷請(qǐng)求信號(hào)是通過(guò)端口38和導(dǎo)線120提供給I/O重定向表128或其它處理電路的。根據(jù)該信號(hào),包括I/O重定向表128的中斷控制器34向處理器提供中斷消息??梢酝ㄟ^(guò)串行總線控制器144再通過(guò)串行總線28,或者通過(guò)編碼/解碼邏輯電路148再通過(guò)處理器總線26,提供中斷消息。就通過(guò)處理器總線26發(fā)送中斷消息而言,處理器12要包含檢測(cè)該中斷消息的解碼電路,中斷控制器24要理解該消息。
響應(yīng)于接收一個(gè)中斷請(qǐng)求信號(hào)(其中至少有一部分是地址信號(hào)形式),中斷控制器34向串行總線28或處理器總線26提供中斷消息。在一個(gè)實(shí)施例中,主橋接器16能夠根據(jù)控制邏輯電路130中的一位,決定通過(guò)串行總線28還是處理器總線26來(lái)傳送中斷信號(hào)。
處理器總線26上的中斷消息包含一個(gè)確定要接收該中斷的處理器的地址。主橋接器16包含最低優(yōu)先級(jí)重定向電路,用來(lái)將中斷重定向到在多處理器系統(tǒng)的情況下具有最低優(yōu)先級(jí)的處理器。該電路可以跟蹤多處理器系統(tǒng)中各種處理器的任務(wù)優(yōu)先級(jí)。主橋接器16內(nèi)的中斷控制器34或其它電路可以檢測(cè)處理器12是否包含串行總線功能,以及/或者是否包含由處理器總線26接受中斷消息的能力。在處理器12不含能理解處理器總線26上的中斷消息的中斷控制器和解碼電路的情況下,中斷控制器34可以在串行總線28而不是處理器總線26上傳送中斷消息。主橋接器16可包含用來(lái)存放各種中斷信號(hào)和其它信號(hào)的隊(duì)列(未予示出)。中斷控制器34可包含用來(lái)存放中斷請(qǐng)求信號(hào)的隊(duì)列??刂七壿嬰娐?30輔助中斷控制器34的各種功能。
中斷請(qǐng)求信號(hào)可以以地址和數(shù)據(jù)信號(hào)(或許是其它信號(hào))的形式通過(guò)端口42提供并被中斷控制器34捕獲。在這種情況下,解碼邏輯電路122按中斷請(qǐng)求信號(hào)來(lái)譯碼地址和數(shù)據(jù)信號(hào)位的全部或一部分。在一個(gè)實(shí)施例中,解碼邏輯電路122在導(dǎo)線124上提供解碼的信號(hào)。在一個(gè)實(shí)施例中,解碼信號(hào)可能是個(gè)確立(assertion)信號(hào),也可能是個(gè)撤銷(xiāo)(deassertion)信號(hào)。導(dǎo)線124上的中斷請(qǐng)求確立/撤銷(xiāo)信號(hào)可以與導(dǎo)線120上的中斷請(qǐng)求信號(hào)相同。在這種情況下,I/O重定向表128可以完全等同地處置這些信號(hào)。
參看圖3,在一個(gè)實(shí)施例中,解碼電路122包括地址解碼器158和數(shù)據(jù)解碼器160。如果接收到一個(gè)特定地址或一個(gè)特定范圍內(nèi)的一個(gè)地址,地址解碼器158就在導(dǎo)線162上向控制邏輯電路130提供信號(hào),指示正在通過(guò)地址和數(shù)據(jù)線152和154(它們與線路114和116相連)向中斷控制器34提供中斷請(qǐng)求信號(hào)。在一個(gè)實(shí)施例中,指示中斷請(qǐng)求信號(hào)的地址包括基址加變址。舉例來(lái)說(shuō),基址可以是FEC00000h(h=十六進(jìn)制),變址可以是20h?;房梢允强捎商幚砥鳌⒉僮飨到y(tǒng)、或者其它硬件或軟件編程的??刂七壿嬰娐?30在導(dǎo)線64上向數(shù)據(jù)解碼器160提供使能信號(hào)。在一個(gè)實(shí)施例中,數(shù)據(jù)解碼器160譯碼數(shù)據(jù)信號(hào)的8個(gè)最低有效位(LSB),并根據(jù)數(shù)據(jù)位的狀態(tài),確立X個(gè)解碼輸出線124的其中之一。如果有8個(gè)數(shù)據(jù)位,就可以有多達(dá)256個(gè)解碼輸出線。
保持寄存器(holding register)170包含與每個(gè)解碼輸出線124一一對(duì)應(yīng)的寄存器。保持寄存器每個(gè)存放對(duì)應(yīng)一個(gè)解碼輸出線124上的電壓狀態(tài)。線路172進(jìn)而提供代表在保持寄存器170中存放的電壓狀態(tài)的信號(hào)。保持寄存器通過(guò)對(duì)應(yīng)一個(gè)線路124上的確立信號(hào)被置位(即具有邏輯高電壓),通過(guò)對(duì)應(yīng)一個(gè)線路124上的撤銷(xiāo)信號(hào)被復(fù)位。確立和撤銷(xiāo)信號(hào)的區(qū)別可能只是極性相反。在一個(gè)實(shí)施例中,導(dǎo)線152上一個(gè)不同地址就控制了在解碼輸出線124上是提供確立信號(hào)還是撤銷(xiāo)信號(hào)。在另一個(gè)實(shí)施例中,導(dǎo)線154上不同的數(shù)據(jù)信號(hào)控制著在解碼輸出線124中特定一條線上是提供確立信號(hào)還是撤銷(xiāo)信號(hào)。
參看圖3和4,線路172包括線路172-0、172-1、…、172-X-1,它們各與保持寄存器170中一個(gè)不同的寄存器相連。中斷線120包括中斷線120-0、120-1、120-2…、120-N-1,它們各與中斷端口38中一個(gè)不同的端口相連。在圖4的實(shí)施例中,I/O重定向表128包括X個(gè)項(xiàng),每項(xiàng)包括一個(gè)“發(fā)送未決”(SP)位(可以稱其為發(fā)送狀態(tài)位)。在一個(gè)SP位置位時(shí),有中斷消息發(fā)往處理器。SP位O-N-1在對(duì)應(yīng)的“或”門(mén)190、192、194、…、196的輸出被確立時(shí)置位(例如被設(shè)置到邏輯高電壓)?!盎颉遍T(mén)有線路120之一和線路172之一作為輸入。所以,中斷信號(hào)無(wú)論到達(dá)端口38之一還是到達(dá)解碼邏輯電路122,都會(huì)導(dǎo)致SP位O-N-1之一的置位。例如,當(dāng)中斷線120-0或線路172-0置位時(shí),SP位0被置位。(如果SP位是通過(guò)低電壓置位的,則“或”門(mén)可以用其它邏輯電路替代。在中斷端口38與“或”門(mén)之間可以有反相器。)SP位N-X-1在對(duì)應(yīng)的一個(gè)線路172-N-172-X-1被確立時(shí)置位。這樣,就可能有比中斷端口38個(gè)數(shù)更多的SP位。(注意,在有些實(shí)施例中和在一定的情況下,SP位O-X-1的狀態(tài)可以被不是來(lái)自線路120或172的信號(hào)的信號(hào)控制。)中斷控制器34可支持邊沿觸發(fā)中斷請(qǐng)求信號(hào)的可伸縮性(scalability)。就線路152和154上的邊沿觸發(fā)中斷而言,數(shù)據(jù)解碼器160確立線路124之一。將保持寄存器170中的對(duì)應(yīng)一個(gè)置位,導(dǎo)致對(duì)應(yīng)一個(gè)線路172被確立。線路172之一的確立導(dǎo)致對(duì)應(yīng)一個(gè)SP位被置位,當(dāng)該SP位被置位時(shí),特定一個(gè)保持寄存器170通過(guò)導(dǎo)線178被復(fù)位。然后就可以將這個(gè)I/O重定向項(xiàng)輸入到中斷發(fā)送滾動(dòng)計(jì)劃(interrupt delivery rotation scheme),供在適當(dāng)時(shí)間發(fā)送。當(dāng)中斷事件被去除時(shí),就不需要啟動(dòng)中斷請(qǐng)求撤銷(xiāo)寄存器操作,因?yàn)樾盘?hào)啟動(dòng)本身就可以表明有一個(gè)并且僅僅一個(gè)中斷事件將要被報(bào)告。正如輸入引線方案(input pin scheme)的情況一樣,定義為邊沿觸發(fā)的中斷的SP位,可以在中斷已經(jīng)在相關(guān)的消息機(jī)構(gòu)上被成功地發(fā)送時(shí)被復(fù)位。如果在中斷被發(fā)送到目的地之前多個(gè)中斷請(qǐng)求確立寄存器操作被接收到同一個(gè)I/O重定向表項(xiàng),只有一個(gè)中斷事件可以被檢測(cè)到。這種行為與專用引線方案是一致的。
對(duì)于電平觸發(fā)中斷來(lái)說(shuō),當(dāng)某設(shè)備對(duì)由多個(gè)設(shè)備共享的某線路發(fā)出中斷信號(hào)時(shí),該設(shè)備在該中斷首次啟動(dòng)時(shí)可以發(fā)出一個(gè)中斷請(qǐng)求操作。當(dāng)中斷信號(hào)變得不活動(dòng)時(shí),該設(shè)備可以向中斷控制器34發(fā)出一個(gè)中斷請(qǐng)求撤銷(xiāo)消息。中斷控制器34保持相應(yīng)保持寄存器位的激活,直到收到該撤銷(xiāo)消息。這種機(jī)制的約束條件是,收集輸入事件的設(shè)備和中斷控制器二者都知道中斷請(qǐng)求是按電平觸發(fā)中斷事件配置的。對(duì)這些事件來(lái)說(shuō),可能需要中斷請(qǐng)求撤銷(xiāo)寄存器事務(wù)處理來(lái)進(jìn)行正確的操作。線路116或118上的信號(hào)可以指示是否涉及邊沿或電平觸發(fā)中斷信號(hào)。
在圖4的實(shí)施例中,I/O重定向表128也包括中斷請(qǐng)求寄存器(IRR)位0、1、…、X-1,它們被用于電平觸發(fā)中斷的情況中。SP位在IRR位置位時(shí)復(fù)位。IRR位在某中斷消息被處理器接受時(shí)置位。要么電平確立消息(level assert message)被發(fā)出后沒(méi)有在處理器總線16上重試,要么串行總線28上的消息被接受。IRR位在EOI消息被接收時(shí)復(fù)位。對(duì)于串行和并行總線傳送二者來(lái)說(shuō),IRR位被復(fù)位,并寫(xiě)向?qū)?yīng)的EOI寄存器-該寄存器的向量(vector)與重定向項(xiàng)的向量域(vector field)匹配。
如果中斷得到服務(wù),就由外圍設(shè)備向解碼邏輯電路122提供一個(gè)撤銷(xiāo)信號(hào)。如果IRR位復(fù)位后,對(duì)應(yīng)的保持寄存器被置位,則有另一個(gè)中斷在等待確認(rèn)。對(duì)應(yīng)的SP位于是被置位。
圖5表示外圍設(shè)備52的一個(gè)實(shí)施例的細(xì)節(jié)。地址、數(shù)據(jù)和其它線路68包括地址線180、數(shù)據(jù)線182和其它線路184。中斷控制器174向地址線180的至少一些位提供中斷請(qǐng)求信號(hào)。中斷請(qǐng)求信號(hào)也可以包括數(shù)據(jù)線182和/或其它線路184上的位。在一個(gè)實(shí)施例中,中斷控制器174包括一個(gè)數(shù)據(jù)寄存器,其內(nèi)容控制外圍設(shè)備54是以中斷信號(hào)的形式還是以地址和數(shù)據(jù)信號(hào)以及關(guān)于該信號(hào)的特定細(xì)節(jié)的形式向?qū)S弥袛喽丝诎l(fā)送中斷請(qǐng)求信號(hào)。
本發(fā)明一個(gè)優(yōu)點(diǎn)是,中斷線40上的電平觸發(fā)中斷可以用寫(xiě)周期消息(write cycle messages)或其它基于地址信號(hào)的消息來(lái)替代。在一個(gè)實(shí)施例中,寫(xiě)周期消息可以確定中斷請(qǐng)求的起源。此外,不用增加專用地址線就能容易地增加“發(fā)送未決”位的位數(shù)。
中斷控制器34可以支持多個(gè)中斷請(qǐng)求信號(hào)輸入機(jī)構(gòu)。然而,為了避免可能發(fā)生的任何競(jìng)爭(zhēng)(race)情況,在一個(gè)實(shí)施例中,在給定時(shí)間只支持每個(gè)中斷請(qǐng)求信號(hào)一個(gè)機(jī)構(gòu)。各種到達(dá)時(shí)間和速率的交互可以與專用端口(例如引線)方法等同。一個(gè)事件從某個(gè)設(shè)備的多次激活將引出中斷請(qǐng)求確立/撤銷(xiāo)信號(hào),它可以提供一種與專用端口的操作一致的模型。
每個(gè)中斷控制器都可以有獨(dú)有的地址,以方便配置和對(duì)這個(gè)地址空間的任何訪問(wèn)-不管該啟動(dòng)資源可以到達(dá)的最終目的地。舉例來(lái)說(shuō),如果某系統(tǒng)含有兩個(gè)I/O總線,第一個(gè)含有中斷設(shè)備,第二個(gè)含有中斷控制器。中斷設(shè)備通過(guò)中斷控制器的獨(dú)有地址,就能將中斷請(qǐng)求確立信號(hào)引導(dǎo)到中斷控制器。注意,這種消息接發(fā)方案不需要中斷有不同于通往主存儲(chǔ)器的通路的“邊車(chē)”(sidecar)通路。發(fā)中斷請(qǐng)求確立信號(hào)可以具有清除以前的任何寫(xiě)事務(wù)(write transactions)的作用。
其它信息和實(shí)施例本說(shuō)明書(shū)不對(duì)各種眾所周知的部件、特征和導(dǎo)線進(jìn)行描述或解釋,討論這些東西對(duì)理解本發(fā)明并非必要,加入對(duì)這些東西的說(shuō)明會(huì)妨礙對(duì)本發(fā)明的闡述。此外,在對(duì)本發(fā)明實(shí)施例的構(gòu)造中,存在各種設(shè)計(jì)上的取舍和選擇,這些取舍和選擇要視具體實(shí)施例而變化。對(duì)舉例說(shuō)明過(guò)的以及沒(méi)有說(shuō)明過(guò)的各種部件的實(shí)現(xiàn),方法有各種各樣。
附圖中各方框的邊界是為了說(shuō)明的方便,不是限制各部件的界限-它們可以重疊。圖示各部件的相對(duì)大小不意味實(shí)際的相對(duì)大小。箭頭表示一個(gè)實(shí)施例中的主要數(shù)據(jù)流,但并非每個(gè)信號(hào)-諸如對(duì)數(shù)據(jù)流的請(qǐng)求-都作了這種表示。本文使用的“邏輯電路”并不意味不能采用軟件控制?!皩?dǎo)線”一詞要在廣義上理解,包括能傳導(dǎo)的器件-不過(guò)它們也有一些絕緣特性。在圖示各部件和導(dǎo)線之間可以有中間的部件或?qū)Ь€。
由中斷控制器34向中斷控制器24提供的中斷消息,可以先在主橋接器16、處理器總線26和/或串行總線28中作某些改變,再由中斷控制器24接收。例如,由中斷控制器34提供的中斷消息的各位可以被反轉(zhuǎn)或編碼??梢杂删幋a/解碼邏輯電路或其它電路添加地址位。
在一個(gè)實(shí)施例中,主橋接器16不包括在處理器總線26上發(fā)送中斷消息的功能。該實(shí)施例中,導(dǎo)線可能不連接I/O重定向表128與編碼/解碼邏輯電路148。如圖5中所示,在另一個(gè)實(shí)施例中,主橋接器16不包括在串行總線28上發(fā)送中斷消息的功能。該實(shí)施例中,串行總線控制器144和相關(guān)導(dǎo)線不包含在主橋接器16中。
在一個(gè)實(shí)施例中,處理器總線26上的信號(hào)是兩相信號(hào)。在第一相中,如果Aa3#位是0,則中斷事務(wù)類型是固定的(定向的);如果Aa3#位是1,則類型是重定向的或EOI。在第二相中,00的Ab5#和Ab6#位表示物理目的地方式。01的Ab5#和Ab6#位表示邏輯目的地方式。11的Ab5#和Ab6#位表示EOI。0和1的Aa3#和Ab6#位以及110的Aa3#、Ab5#和Ab6#位是保留的。
保持寄存器和SP位可以是與導(dǎo)線124平行的。
中斷控制器34不必是主橋接器16的一部分。在外圍設(shè)備(中斷代理或PCI設(shè)備)與中斷控制器之間可以有中斷路由器。解碼邏輯電路22可以位于中斷控制器34的外部。
短語(yǔ)“一個(gè)實(shí)施例”,指的是該短語(yǔ)之后的特定特點(diǎn)、結(jié)構(gòu)或特征包含在本發(fā)明的至少一個(gè)實(shí)施例中,并可能包含在本發(fā)明的不止一個(gè)實(shí)施例中。本說(shuō)明書(shū)中各處出現(xiàn)的“在一個(gè)實(shí)施例中”,也不一定都指同一個(gè)實(shí)施例。
術(shù)語(yǔ)“連接的”和“相連的”以及有關(guān)用語(yǔ)是在操作意義上使用的,不一定限于直接連接或相連。如果說(shuō)明書(shū)陳述某部件或特征功能“可以”、“能”、“可能”或“可能會(huì)”被包含或者具有某個(gè)特征,則不是非要要求該特定部件或特征功能被包含或者具有該特征。術(shù)語(yǔ)“響應(yīng)”包括完全或部分響應(yīng)。
閱讀本說(shuō)明書(shū)的本領(lǐng)域的技術(shù)人員會(huì)知道,可以在本發(fā)明的范圍內(nèi)由上述說(shuō)明和附圖作出許多其它變化。所以,界定本發(fā)明范圍的是包括對(duì)其補(bǔ)充在內(nèi)的以下各權(quán)利要求。
權(quán)利要求
1.一種裝置,包含地址和數(shù)據(jù)端口,用于接收以地址信號(hào)和數(shù)據(jù)信號(hào)形式的中斷請(qǐng)求信號(hào);解碼邏輯電路,用于接收至少一些地址信號(hào)和數(shù)據(jù)信號(hào)并在該解碼邏輯電路的若干解碼輸出線的至少之一提供解碼的信號(hào);重定向表,該表中包含一個(gè)發(fā)送未決位,該位根據(jù)解碼信號(hào)被置位。
2.權(quán)利要求1的裝置,進(jìn)一步包括一個(gè)根據(jù)解碼信號(hào)的確立而被置位的保持寄存器。
3.權(quán)利要求1的裝置,其中,中斷請(qǐng)求信號(hào)的形式是地址信號(hào)、數(shù)據(jù)信號(hào)和其它信號(hào)。
4.權(quán)利要求1的裝置,其中該裝置是個(gè)橋接器。
5.一種裝置,包含用于接收中斷請(qǐng)求信號(hào)的專用中斷端口;能接收以地址信號(hào)和數(shù)據(jù)信號(hào)為形式的中斷請(qǐng)求信號(hào)的地址和數(shù)據(jù)端口;解碼邏輯電路,用于根據(jù)接收的以地址信號(hào)和數(shù)據(jù)信號(hào)為形式的中斷請(qǐng)求信號(hào)在若干解碼輸出線之一提供解碼信號(hào);重定向表,該表中包含一個(gè)發(fā)送未決位,該位根據(jù)專用中斷端口處的中斷請(qǐng)求信號(hào)或根據(jù)解碼信號(hào)被置位。
6.權(quán)利要求5的裝置,其中,在中斷端口、一些解碼線和重定向表之間安置“或”門(mén)。
7.一種裝置,包含用于從中斷請(qǐng)求線接收中斷請(qǐng)求信號(hào)的專用中斷端口;接收地址信號(hào)和數(shù)據(jù)信號(hào)的地址和數(shù)據(jù)端口;解碼邏輯電路,用于接收至少一些地址信號(hào)和數(shù)據(jù)信號(hào)并從它們中譯碼中斷請(qǐng)求信號(hào);與專用中斷請(qǐng)求端口和解碼邏輯電路相連的重定向和控制電路,用于從中斷端口接收中斷請(qǐng)求信號(hào)和從解碼邏輯電路接收中斷請(qǐng)求信號(hào),并根據(jù)它們提供中斷消息。
8.權(quán)利要求7的裝置,其中,由解碼邏輯電路提供的中斷請(qǐng)求信號(hào)與由專用中斷端口提供的中斷請(qǐng)求信號(hào)是等同的。
9.權(quán)利要求7的裝置,其中,重定向和控制電路包括一個(gè)I/O重定向表。
10.權(quán)利要求7的裝置,其中,解碼邏輯電路包含在一個(gè)中斷控制器中。
11.一種裝置,包含用于從中斷請(qǐng)求線接收中斷請(qǐng)求信號(hào)的專用中斷端口;用于接收地址信號(hào)和數(shù)據(jù)信號(hào)的地址和數(shù)據(jù)端口;解碼邏輯電路,用于接收至少一些地址信號(hào)和數(shù)據(jù)信號(hào)并從它們中譯碼中斷請(qǐng)求信號(hào);與專用中斷請(qǐng)求端口和解碼邏輯電路相連的I/O重定向表,用于從中斷端口接收中斷請(qǐng)求信號(hào)和從解碼邏輯電路接收中斷請(qǐng)求信號(hào),并根據(jù)它們提供中斷消息。
12.權(quán)利要求11的裝置,其中,由解碼邏輯電路提供的中斷請(qǐng)求信號(hào)與由專用中斷端口提供的中斷請(qǐng)求信號(hào)是等同的。
13.權(quán)利要求11的裝置,其中,解碼邏輯電路包含在一個(gè)中斷控制器中。
14.一個(gè)計(jì)算機(jī)系統(tǒng),包含一個(gè)處理器;一個(gè)I/O總線;與I/O總線相連的外圍設(shè)備;一個(gè)橋接器,包含用于接收中斷請(qǐng)求信號(hào)的專用中斷端口;用于接收地址信號(hào)和數(shù)據(jù)信號(hào)的地址和數(shù)據(jù)端口;解碼邏輯電路,用于接收至少一些地址信號(hào)和數(shù)據(jù)信號(hào)并從它們中譯碼中斷請(qǐng)求信號(hào);與專用中斷請(qǐng)求端口和解碼邏輯電路相連的重定向和控制電路,用于從中斷端口接收中斷請(qǐng)求信號(hào)和從解碼邏輯電路接收中斷請(qǐng)求信號(hào),并根據(jù)它們提供中斷消息。
15.權(quán)利要求14的系統(tǒng),其中,至少一個(gè)外圍設(shè)備通過(guò)專用中斷端口提供中斷請(qǐng)求信號(hào)并且至少一個(gè)外圍設(shè)備通過(guò)地址和數(shù)據(jù)端口提供寫(xiě)周期形式的中斷請(qǐng)求信號(hào)。
16.權(quán)利要求14的系統(tǒng),其中,至少一個(gè)外圍設(shè)備能向解碼邏輯電路提供地址和數(shù)據(jù)信號(hào),用于從它們中譯碼中斷請(qǐng)求信號(hào)。
全文摘要
在本發(fā)明的一個(gè)實(shí)施例中,裝置(10)包括用于接收以地址信號(hào)和數(shù)據(jù)信號(hào)為形式的中斷請(qǐng)求信號(hào)(44)的地址和數(shù)據(jù)端口(104、106)。該裝置(10)也包括用于接收至少一些地址信號(hào)和數(shù)據(jù)信號(hào)并在解碼邏輯電路(122)的若干解碼輸出線(124)之一提供解碼信號(hào)的解碼邏輯電路(122)。重定向表(128)包含一個(gè)根據(jù)解碼信號(hào)被置位的“發(fā)送未決”位。在另一個(gè)實(shí)施例中,裝置(10)包括用于接收中斷請(qǐng)求信號(hào)的專用中斷端口(38)。該裝置(10)也包括能接收以地址信號(hào)和數(shù)據(jù)信號(hào)(114,116)為形式的中斷請(qǐng)求信號(hào)的地址和數(shù)據(jù)端口(104、106),以及根據(jù)接收的以地址信號(hào)和數(shù)據(jù)信號(hào)(114、116)為形式的中斷請(qǐng)求信號(hào)在若干解碼輸出線(124)之一提供解碼信號(hào)的解碼邏輯電路(122)。
文檔編號(hào)G06F13/24GK1283286SQ98812594
公開(kāi)日2001年2月7日 申請(qǐng)日期1998年12月11日 優(yōu)先權(quán)日1997年12月23日
發(fā)明者S·S·波羅夫斯基 申請(qǐng)人:英特爾公司