專利名稱::用于中斷的動態優先權排序的方法及裝置的制作方法
技術領域:
:本發明涉及計算機系統,尤其涉及可提供應用硬件機制執行的中斷程序的計算機系統,即用于中斷的動態優先權排序的方法及裝置。
背景技術:
:大多數的微處理器,甚至更一般的計算機系統,都會提供至少兩種不同等級的中斷優先權(interruptpriority),可稱為高優先權(HighPriority)及低優先權(LowPriority)。為了簡化起見,此處著重對僅具有此兩種等級的中斷優先權的系統來進行說明。低優先權的中斷會優先于微處理器程序代碼的正常執行流程,而高優先權的中斷則優先于程序代碼的正常執行流程,以及低優先權的中斷。通常,帶寬相對較低的事件(如鍵盤及鼠標的工作),會被分配為低優先權的中斷,而帶寬較高的事件,如對USB緩沖處理、MP3緩沖處理或繪圖卡的響應,會被分配為高優先權的中斷。中斷源(interruptsource)常在集成電路(integratedcircuit,IC)的制造過程中,被預先分配到低或高的中斷接腳。因此,在IC所用的軟件完整開發出來以前,事件的優先權便以硬件接線的方式,有效地納入許多IC的設計中。預先分配中斷優先權的做法會造成系統設計的問題,特別是對于不能簡單歸類為高帶寬或低帶寬的中斷,或是等級會改變的中斷而言。例如,通用異步收發器UART(UniversalAsynchronousReceiver/Transmitter)需要比鍵盤(低優先權中斷)高得多的帶寬,但是比起繪圖控制器裝置(高優先權中斷)所需的帶寬,又低了許多。如果UART中斷所分配的中斷優先權與繪圖控制器裝置相同,則當UART中斷服務例程(InterruptServiceRoutine,ISR)執行時,繪圖控制器的對應ISR將有無法適時處理的危險。反之,如果UART中斷所分配的中斷優先權與帶寬較低的裝置(如鍵盤)相同,則鍵盤的中斷會使UART的ISR無法收到適時地處理。由于現有公知技術在IC制造過程中,會強迫設計者排出中斷的優先級,潛在地導致軟件開發上的嚴重問題,所以需要一種改進的方法及裝置,來控制中斷優先權的分配方式。
發明內容本發明的主要目的,在于提供一種用以將中斷請求連接至計算機的方法及裝置。為了實現上述目的,本發明提供一種為計算機中斷源提供一可選擇的優先權等級的方法,包含(a)根據一第一中斷優先權,處理在一第一中斷請求連接所允許的中斷;(b)根據一不同的第二中斷優先權,處理在一不同的第二中斷請求連接所允許的中斷;(c)提供對應于一特定中斷源的一或多個中斷請求控制位,這些中斷請求控制位具有一可在軟件控制下進行選擇的狀態;以及(d)根據該中斷請求控制位的狀態,對該特定中斷源上所出現的允許一中斷請求,響應以(i)在允許該特定中斷源的該中斷請求的期間,若相對應的該中斷請求控制位處于一第一狀態,則允許該第一中斷請求連接上的一中斷請求,以及(ii)在允許該特定中斷源的該中斷請求的期間,若該對應中斷請求控制位處于一不同的第二狀態,則允許該第二中斷請求連接上的一中斷請求。本發明還提供一種用來提供一具有一可選擇的優先權等級的中斷源輸入的計算機裝置,包含(a)一第一中斷請求連接,配置為當該第一請求連接出現一適當的中斷請求信號時,起始位在一第一優先權等級的一中斷服務例程;(b)一第二中斷請求連接,配置為當該第二請求連接出現一適當的中斷請求信號時,起始位在一不同的第二優先權等級的一中斷服務例程;(c)一中斷源,用來接收來自于一特定中斷源的至少一中斷請求信號;(d)一或多個控制位,相關于該中斷源;以及(e)一邏輯電路,配置為當該相關控制位處于一第一狀態時,將該中斷源上所允許的一中斷連接至該第一中斷請求連接,而當該相關控制位處于一不同的第二狀態時,則將該中斷連接至該第二中斷請求連接。也就是說,本發明的一具體實施例,為一種使微處理器中斷源可選擇其優先權等級的方法。該方法包括根據第一優先權及第二優先權,處理對應的第一請求連接(指傳輸第一請求的管道)及第二請求連接(指傳輸第一請求的管道)上的中斷,以及提供對應于一特定中斷源且具有以軟件進行選擇(software-selectable)的狀態的請求控制位。該方法還包括依據該控制位的狀態,響應在一特定中斷源所允許的中斷請求;若控制位處于第一狀態,則允許第一請求連接上的中斷;以及若控制位處于另一不同狀態,則允許第二請求連接上的中斷。本發明的另一具體實施例,則包括提供一可選擇優先權等級的中斷請求輸入的計算機裝置。該裝置包括一第一中斷請求連接,用以在出現適當的中斷請求信號時,啟動一位居第一優先權等級的中斷服務例程,以及一第二中斷請求連接,用以在出現適當的中斷請求信號時,啟動一位居第二優先權等級的中斷服務例程。該裝置還包括一中斷源、關聯于該中斷源的一或多個控制位以及一邏輯電路,若控制位處于第一狀態,則該邏輯電路將一來自該中斷源的中斷耦合至第一請求連接,而若控制位處于第二狀態,則該邏輯電路將該中斷耦合至第二請求連接。本發明的實施例與細節在參照附圖及相關說明后,將更容易理解。在本說明書中,相同的參考圖號表示相同的結構或功能。圖1為現有技術中的中斷請求連接的方框圖;圖2為本發明用于動態選擇中斷優先權選擇的中斷請求連接邏輯的方框圖;圖3為顯示防止具不兼容優先權的中斷同時允許的硬件邏輯電路的簡化方框圖;圖4為顯示在具有多重不同優先權的中斷的系統中,可選擇優先權的中斷的方框圖;圖5為顯示擴充圖3的電路,以用于圖4的電路的方框圖。具體實施例方式圖1顯示中斷源通常是如何連接到一般常用微處理器的高優先權及低優先權中斷的接腳。Ik表示一中斷源(或說是中斷源連接)K。圖中顯示了N個高優先權與M個低優先權中斷源的連接。N個高優先權中斷源以一第一高優先權中斷源I0102、一第二高優先權中斷源I1104及一最后高優先權中斷源IN-1106來表示。同樣地,M個低優先權中斷接腳以一標號為IN的第一低優先權中斷源108(該第一中斷緊接著最后一個高優先權中斷IN-1)、一標號為IN+1的第二低優先權中斷源110及一標號為IN+M-1的最后低優先權中斷源112來表示。因此,全部N+M個中斷源就可顯示出來,而中斷源Ik則借助范圍從0到N+M-1的下標K來作區別。每個中斷源通常具有一相關的屏蔽位(maskbit),或者說,相關于該特定中斷請求源的一單獨屏蔽位,在此以分別標號成MH,0、MH,1及MH,N-1的高優先權屏蔽位114、116及118,與分別標號成ML,N、ML,N+1及ML,N+M-1的低優先權屏蔽位120、122及124來代表。這些屏蔽位通常配置在緩存器中,可由微處理器的地址/數據總線來控制。屏蔽位會借助適當的硬件邏輯電路,如與門(ANDgate)126,而使來自于相關中斷源的中斷或是允許(enable)或是禁止(disable)。MH,K代表高優先權中斷屏蔽緩存器的一位K,而ML,K則代表低優先權中斷屏蔽緩存器的一位K。H_int表示一連接,其連接至微處理器的一高優先權中斷請求連接,L_int則表示一連接至微處理器的一低優先權中斷請求連接的連接。處于允許狀態(如對應的屏蔽位被設為1)時,由任一個高優先權中斷源102、104、…106所允許的中斷(如借助設定一中斷允許位),將被耦合至一高優先權中斷接腳128(H_int)(使H_int也被設定)。這樣的連接可借助適當的硬件邏輯電路來實現,如或門(ORgate)130。同樣地,若設定任一個已允許的低優先權中斷源的位,適當的邏輯電路也可使一低優先權中斷接腳132(L_int)被設定。一個例子是,可將鍵盤及鼠標連接到低優先權中斷IN與IN+1,而將USB及MP3中斷連接到高優先權中斷I0與I1。但一般而言,在一具兩種優先權等級的系統中,可能有N種高優先權中斷及M種低優先權中斷,其中N及M相互獨立。若任一中斷源允許一中斷,且對應的屏蔽緩存器被允許(如被設為1),則配合硬件邏輯電路,該中斷會被耦合至高優先權中斷請求連接128(H_int),或低優先權中斷請求連接132(L_int),而允許微處理器內的中斷。因此,該中斷將借助一軟件中斷服務例程(ISR)來處理。如圖2,其中斷源的標號,范圍從0到N+M-1,與圖1電路中所顯示的相類似。圖2的N+M個中斷源以一第一中斷源I0202、一第二中斷源I1204及一最后中斷源IN+M-1206來表示。如圖所示,在軟件控制下,任一中斷源所產生的中斷可被選擇性地允許,以允許高優先權中斷連接128(H_int)或低優先權中斷連接132(L_int)。此種軟件控制,可借助設定(在軟件控制下)每個中斷源的兩個相關屏蔽位(高優先權屏蔽位及低優先權屏蔽位)的值來進行。圖2的實施例中,高優先權屏蔽位MH,K總共有N+M個,而低優先權屏蔽位ML,K總共也有N+M個,使得屏蔽位的總數為2(N+M)。這些屏蔽位構成控制位,可為N+M個中斷請求連接的每一個,選擇一優先權等級。圖2所示的電路包含兩倍于圖1電路的屏蔽位。N+M個高優先權屏蔽位表示為位MH,0208、MH,1210及...MH,N+M-1212。中斷源的控制及允許可借助任何適當的控制方式(如邏輯電路)來提供。在上述例子中,邏輯電路為與門126與或門230的結合。圖2的或門230所具有的輸入可能是圖1的或門130的二倍,因為每個中斷源(如圖示)耦合至中斷請求連接H_int128及L_int130。當然,本發明并不需要為每個中斷源提供用來允許中斷優先權的可選性的控制位。事實上,在實際的應用中,根據不同中斷源所連接到不同裝置的個別特性不同,本發明的應用可以是只有一部分的中斷源被允許其中斷優先權的可選性(只有一部份的中斷源可以在不只一種中斷優先權中擇一使用)。對于一特定中斷源,允許高與低優先權屏蔽同時被允許是完全可以接受的,不過這要視運用這種雙優先權中斷輸入源的計算機系統的細節而定。例如,這類系統可在起始ISR的執行時,先響應高優先權的中斷,并將高與低優先權屏蔽的位都清除。因此,在某些系統中,同時允許高與低優先權的中斷,等同于只有允許高優先權的中斷。即使對于擴充為具多重不同優先權等級的系統而言,也可允許一個以上的優先權等級同時產生。一個例子是,允許多個優先權等級,等同于僅允許其中的優先權等級最高的。因此,在某些系統設計中,可同時允許中斷優先權等級的任意特定組合。然而,在其它的系統設計中,對于特定的中斷源,防止同時允許一個以上的優先權等級是有用的。這樣的防止功能可以用軟件來實施。例如,對于任何特定的中斷源,用以設定中斷屏蔽的位的軟件可配置為一次只設定一個位,并且先清除該特定中斷源的所有其它的屏蔽位。此種防止同時允許不兼容的中斷優先權等級的功能也可用硬件來實施。圖3顯示一種用硬件來完成此功能的方式。如圖3所示,高與低優先權屏蔽位(MH,K及ML,K)并不會直接從數據及地址總線寫到緩存器。而是一高優先權屏蔽位K的允許寫入(writeenable)會被譯碼為信號ENH,K302,而用來寫入一低優先權屏蔽位的仿真允許寫入信號,則相似地被解碼為ENL,K。中斷允許位(一般借助數據總線來允許)表示為D306。這三個關聯于某特定中斷源的信號,由一組合邏輯電路方框312進行處理,以單獨允許一低優先權的中斷處理、一高優先權的中斷處理或兩者都不允許。對一特定的中斷源K而言,組合邏輯電路方框312會使緩存器308中的高優先權屏蔽位MH,K與緩存器310中的低優先權屏蔽位ML,K被設為互斥(mutuallyexclusive)。此處可利用任何適當的邏輯電路,來實現上述的互斥狀態。如圖3所示,借助一時脈信號ENH,K|(D&ENL,K)將值為D&~(D&ENL,K)的數據送入緩存器308,即可在緩存器308中設定高優先權屏蔽位MH,K。同樣地,借助一時脈信號ENL,K|(D&ENH,K)將值為D&~(D&ENH,K)的數據送入緩存器310,即可于緩存器310中設定低優先權屏蔽位ML,K。這是可防止同時允許一種以上優先權等級的中斷的一種方式。熟悉計算機設計技術的人應會了解到,有許多其它可能的實施方式,并且很容易就能設計出理想的組合邏輯電路方框312,以實現上述的功能。系統可采用具有多重等級的中斷優先權。就處理器響應一特定等級的中斷優先權的方式而言,其指導規則可能會相當復雜,但一個簡單的情況是,每個較高等級的中斷將中斷微處理器程序的執行,并且也將中斷任何依一較低等級的中斷而執行的ISR。上述實施中斷的方法可延伸至具有多重等級的中斷優先權的系統,這與所具有的優先權等級的數目無關,也與處理器用以處理不同等級優先權的邏輯電路無關。圖4所示的例子,提供了J個不同優先權等級的中斷請求連接,以INT1430、INT2432及INTJ434來表示。此例也提供N個中斷源(或說是中斷源連接),以I0402、I1404及IN-1406來表示。在此例的實施方式下,控制位可允許每個中斷源選擇性地被允許,以將一中斷請求信號耦合至J個不同優先權等級的中斷請求連接中的任意一個。為實現上述功效,此實施例會對每個中斷源Ik,就J個優先權等級中的每一個分別提供一中斷屏蔽位,所以屏蔽位的總數會等于N乘以J。屏蔽位以MA,B的形式來表示,其中A為中斷優先權下標(范圍從1到J),而B為中斷源下標(范圍從0到N-1)。因此,M1,0408、M1,1410及M1,N-1412表示屏蔽位,當其被設定時,會允許對應的中斷源I0402、I1404或IN-1406,以耦合到第一優先權中斷請求連接INT1430。此處可使用任何適合的硬件邏輯電路來實現此目的。圖4中,上述的耦合借助與門126與一或門436來實現,類似于圖2的電路。相似的硬件邏輯電路用來將來自于一中斷源Ik的中斷,耦合到第二優先權中斷請求連接INT2432。可設定一適當的屏蔽位,如M2,0414、M2,1416及M2,N-1418所示,來允許上述的耦合。對于第J個優先權中斷請求連接INTJ434而言,耦合同樣借助一適當的屏蔽位(如MJ,0420、MJ,1422、MJ,N-1424所示)來允許。當然,圖4顯示一般的情況,而在某些具體實施例中,將允許一部份所選取的中斷源Ik,而僅耦合至計算機的J個優先權中斷請求連接中所選取的部分。現說明圖4所示情況的另一種實施例,其中某些中斷源不具有可選擇的優先權,某些具有可從部分的可用中斷請求優先權中選取的優先權,而某些則具有可從任何可用中斷請求優先權中選取的優先權。考慮一個具有N個中斷源(I0到IN-1)及J個不同優先權中斷請求連接(INT1到INTJ)的系統,其中N大于J。首先,某些中斷源是不可選擇的。例如,每個中斷源I1到IJ可借助僅能耦合(若適當的屏蔽位被允許)至一單一的優先權中斷請求連接,而給予固定的優先權。例如,I1可能只耦合至INT1,I2只耦合至INT2,這樣到最后IJ只耦合至INTJ。接著,超出IJ(稱為IJ+1,IJ+2,...,IN-1)的一群中斷源會被允許,以選擇性地耦合至J個優先權中斷請求連接中的任一個(如圖4所示的用于所有中斷源的情況)。最后,I0會被允許,以選擇性地耦合至J個可用的優先權中斷請求連接的一子集合,如INT1、INT3、INT5及INTJ。上述的例子提出了廣泛的變化方式,其中某些中斷源可被賦予有限制的優先權可選擇性,其它中斷源可被賦予最大的優先權可選擇性,而另外的則給予固定的優先權。許多技術可用來允許一特定中斷源IK的一組相關控制位,以使此特定中斷源可選擇性地耦合至優先權中斷請求連接,如果需要還可避免沖突,如中斷源同時耦合至不兼容的中斷請求連接。以軟件為基礎實現這些目的的技術的一例子,其包含對用于設定及清除每個中斷源的控制位的軟件進行配置,用來在每當有一中斷源要耦合至一中斷請求連接時,除了其中一適當的位會被設定外,該中斷源的所有相關控制位(如屏蔽位)都會被清除。圖5可用于圖4所示電路的一硬件技術的方框圖,該硬件技術可防止一中斷源IK同時耦合至不兼容的多個優先權中斷請求連接。圖5很明顯是上述圖3的硬件技術直接的延伸。一般而言,一中斷源IK的一組相關控制位,并不需為每個可選擇優先權的中斷請求連接都提供一單獨的位。例如,不用為J個優先權中斷中的每一個提供個別的允許位(如圖4所示),IK所需的一組控制位可由一多個位的二進制數的位組成。該多個位的二進制數可以用硬件來譯碼,以避免有任何可能的值會將IK同時耦合至不兼容的中斷請求連接。在此技術實例的簡化版中,IK的相關二進制數(控制位)會使IK能耦合至一組一或多個兼容的優先權中斷請求連接,其對應于該二進制數的數值。因此,如二進制數1001會譯碼為將IK上的中斷耦合至INT9。另一例中,二進制數1001會解碼為將IK同時耦合至INT3及INT5(假設這些是相容的)。至少有一個值,如0000,會保留為無效狀態(nullstate),用來將與任何優先權中斷請求連接的耦合禁止。因此,當對應于一特定中斷源的控制位被設定為無效狀態時,所有來自該中斷源的中斷會被處理器忽略。在上述方式中,一個四位的二進制數所構成的控制位,足以選擇性地將IK耦合至多達15個不同優先權中斷請求連接的其中一個,并在無效狀態中將任何耦合禁止,用來防止相關的中斷源IK同時被耦合至互相不兼容的優先權中斷請求連接。本發明不受上述具體實施例的限制,其中的任何或全部的實例組件都可以用不同但等效的組件來代替,且所述組件及/或等效組件的每一功能性組合,可視為本發明的另一種具體實施例。因此,上述組件的每一功能性組合,以及此種組件的等效組件的每一功能性組合,均為本發明的具體實施例,這當然排除了那些只構成公知技術例子的組合。權利要求1.一種為計算機中斷源提供一可選擇的優先權等級的方法,其特征在于包含(a)根據一第一中斷優先權,處理在一第一中斷請求連接所允許的中斷;(b)根據一不同的第二中斷優先權,處理在一不同的第二中斷請求連接所允許的中斷;(c)提供對應于一特定中斷源的一或多個中斷請求控制位,這些中斷請求控制位具有一可在軟件控制下進行選擇的狀態;以及(d)根據該中斷請求控制位的狀態,對該特定中斷源上所出現的允許一中斷請求,響應以(i)在允許該特定中斷源的該中斷請求的期間,若相對應的該中斷請求控制位處于一第一狀態,則允許該第一中斷請求連接上的一中斷請求,以及(ii)在允許該特定中斷源的該中斷請求的期間,若該對應中斷請求控制位處于一不同的第二狀態,則允許該第二中斷請求連接上的一中斷請求。2.如權利要求1所述的方法,其特征在于所述步驟(c)還包括提供相關于該特定中斷請求源的一單獨屏蔽位,用來允許每個可選擇的中斷優先權等級。3.如權利要求2所述的方法,其特征在于所述步驟(c)還包括使用一邏輯電路,在同時允許多個不同優先權等級的中斷的情況下,防止該屏蔽位被設定到某一特定中斷請求源。4.如權利要求1所述的方法,其特征在于,還包括(f)提供多個中斷源;(g)相對應于這些中斷源中的每一個,都提供一組一或多個中斷請求控制位,其中每組中斷請求控制位都具有可在軟件控制下進行選擇的一狀態;(h)根據對應的多個中斷優先權等級,處理在多個不同中斷請求連接所允許的中斷;以及(i)依該相關控制位的該狀態所指示的,將每一中斷源耦合至一對應的中斷請求連接。5.如權利要求4所述的方法,其特征在于所述以軟件配置處理其中與每一這些中斷源相作用的該組相關控制位,用來將該中斷源上的一中斷耦合至這些不同中斷請求連接中的某一個,或完全不耦合至這些不同中斷請求連接中的任何一個。6.一種用以提供一具有一可選擇的優先權等級的中斷源輸入的計算機裝置,其特征在于包含(a)一第一中斷請求連接,配置為當該第一請求連接出現一適當的中斷請求信號時,起始位于一第一優先權等級的一中斷服務例程;(b)一第二中斷請求連接,配置為當該第二請求連接出現一適當的中斷請求信號時,起始位于一不同的第二優先權等級的一中斷服務例程;(c)一中斷源,用來接收來自于一特定中斷源的至少一中斷請求信號;(d)一或多個控制位,相關于該中斷源;以及(e)一邏輯電路,配置為當該相關控制位處于一第一狀態時,將該中斷源上所允許的一中斷耦合至該第一中斷請求連接,而當該相關控制位處于一不同的第二狀態時,則將該中斷耦合至該第二中斷請求連接。7.如權利要求6所述的計算機裝置,其特征在于,還包括(f)多個中斷源;以及(g)相關于每一不同中斷源的不同的一組一或多個中斷控制位。8.如權利要求6所述的計算機裝置,其特征在于所述每組中斷控制位可配置為多個不同狀態,這些狀態至少包含包括該相關中斷源與該第一中斷請求連接耦合的一第一狀態,以及該相關中斷源與該第二中斷請求連接耦合的一第二狀態。9.如權利要求8所述的計算機裝置,其特征在于所述每組中斷控制位包括與用這些中斷請求連接成一對一對應的多數中斷請求屏蔽位,這些中斷請求屏蔽與這些中斷源間的對應關系是可選擇的(selectable)。10.如權利請求6所述的計算機裝置,其特征在于,還包含一邏輯電路,其配置使得這些中斷控制位的狀態不會使得相關的該中斷源耦合到多個不同中斷請求連接。全文摘要本發明公開了一種可以借助動態選擇優先權等級來處理來源中斷的方法及裝置,應用在具有至少兩個不同中斷請求連接的系統,其可以在不同的優先權等級處理中斷,以響應在這些不同連接上所允許的中斷。其將一特定中斷源所允許的中斷耦合至這些請求連接中,并通過軟件控制等選取一特定連接。借助提供每一特定中斷源一組相關控制位,可實現中斷源與中斷請求連接間的選擇性的耦合。該組控制位可由每一可選擇的不同優先權的一個中斷屏蔽位所組成,也可選擇防止一中斷源同時耦合至不兼容的中斷請求連接。文檔編號G06F13/26GK1494002SQ0315845公開日2004年5月5日申請日期2003年9月10日優先權日2003年1月31日發明者安南·C·蒙特里歐,安南C蒙特里歐申請人:威盛電通公司