TW201333828A - 以中斷資料模擬訊息發訊中斷之方法 - Google Patents

以中斷資料模擬訊息發訊中斷之方法 Download PDF

Info

Publication number
TW201333828A
TW201333828A TW101140763A TW101140763A TW201333828A TW 201333828 A TW201333828 A TW 201333828A TW 101140763 A TW101140763 A TW 101140763A TW 101140763 A TW101140763 A TW 101140763A TW 201333828 A TW201333828 A TW 201333828A
Authority
TW
Taiwan
Prior art keywords
interrupt
data
memory
msi
processor
Prior art date
Application number
TW101140763A
Other languages
English (en)
Other versions
TWI502513B (zh
Inventor
Yen Hsiang Chew
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW201333828A publication Critical patent/TW201333828A/zh
Application granted granted Critical
Publication of TWI502513B publication Critical patent/TWI502513B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)

Abstract

在此說明一些以中斷資料模擬式訊息發訊中斷之方法。本發明的一實施例包含:一記憶體解碼器,用以監控一個分派給一個裝置之預定的記憶體區塊;一中斷控制器,用以響應於自該裝置起始至對一預定之記憶體區塊的投遞式寫入資料異動,而接收一來自該記憶體解碼器之模擬式訊息發訊中斷(MSI)信號;以及一執行單元,用以使用擷取自該預定之記憶體區塊的中斷資料,執行與該裝置相聯結之一中斷服務常式(ISR),來服務該MSI,而不必經由一輸入輸出(IO)資料異動自該裝置取得該中斷資料。

Description

以中斷資料模擬訊息發訊中斷之方法 發明領域
本發明之實施例,一般係有關一些資料處理系統。更明確而言,本發明之實施例,係有關一些模擬式訊息發訊中斷技術。
發明背景
該等訊息發訊中斷(MSI),為一個特徵,其可使一個裝置功能,能夠使用一個所舉為例之記憶體寫入資料異動,而藉由對一個系統專屬性位址寫入一個系統專屬性資料值,來請求服務。一個MSI資料異動,可使一個裝置功能,能夠藉由在其匯流排上面,將該MSI資料異動,作為一個內送記憶體寫入,傳送至該前端匯流排(FSB)或處理器匯流排,來請求一個中斷服務。由於一個MSI資料異動,在產生上係以一個記憶體寫入之形式,該等MSI資料異動,可支援一些類似重送、發起方放棄、標的方放棄、或正常完成等資料異動條件。就一些加增之利益而言,該等MSI資料異動,可藉由移除帶外中斷常式,來簡化電路板設計,以及可代表另一個趨向無傳統配備式環境之步驟。
該等訊息發訊中斷,可容許一個裝置,將某一小量之資料,寫至一個記憶空間內的一個特定位址。該晶片集會將該對應之中斷,遞送給一個處理器(亦被稱作一個中央處理器或CPU)。一個有關訊息發訊中斷之誤解是,彼等 容許該裝置傳送資料給該CPU,而作為該中斷的一部分。上述被傳送為部份寫入之資料,會被該晶片集使用來決定要觸發何者CPU上面之何者中斷;其無法供該裝置傳達額外之資料給該中斷處理常式。
該等MSI資料異動的一項缺點,為服務一個中斷所涉及之潛時。舉例而言,當一個裝置使用MSI來請求一個中斷服務時,該裝置會產生一個包含一個系統專屬性訊息和一個系統專屬性位址之MSI資料異動。一旦有一個處理器接收到該MSI資料異動,該處理器勢必要與該請求裝置進行通訊,以擷取服務該中斷所需要之資料。該處理器接著可能會使用接收自該裝置之中斷資料來服務該中斷。然而,上述與該裝置進行通訊所涉及之潛時,可能會相當長。結果,每個經由一個MSI資料異動所服務之中斷,會涉及一個長潛時,以及會增加舉例而言該等使該裝置耦合至該處理器之FSB、記憶體控制器中心(MCH)、`和/或輸入輸出控制器中心(ICH)的訊務。
依據本發明的一個實施例,特別提出一種處理器,其包含:一個記憶體解碼器,用以監控一個分派給一個裝置之預定的記憶體區塊;一個中斷控制器,用以響應該裝置所啟始而至該預定之記憶體區塊的一個投遞式寫入資料異動,而接收一個來自該記憶體解碼器之模擬式訊息發訊中斷(MSI)信號;和一個執行單元,以使用上述擷取自該預定之記憶體區塊的中斷資料,執行一個與該裝置相聯 結之中斷服務常式(ISR),來服務該MSI,而不必經由一個輸入輸出(IO)資料異動自該裝置取得該中斷資料。
100‧‧‧系統
101‧‧‧處理器
102‧‧‧晶片集
103-104‧‧‧裝置
105‧‧‧記憶體
106‧‧‧處理器匯流排
107‧‧‧IO匯流排或互連器
108‧‧‧處理器快取記憶體
109‧‧‧中斷控制器
110‧‧‧記憶體控制中心(MCH)
111‧‧‧中斷資料
112‧‧‧解碼器邏輯
115‧‧‧輸入輸出控制器中心(ICH)
116‧‧‧裝置
200‧‧‧系統
300‧‧‧系統
301‧‧‧作業系統(OS)
302-303‧‧‧裝置驅動器
306,307‧‧‧中斷服務常式(ISR)
308-309‧‧‧中斷資料暫存器
310,311‧‧‧控制和狀態暫存器(CSR)
312‧‧‧快取記憶體線
312-314‧‧‧記憶體區塊
315‧‧‧裝置驅動器中斷資料參數
315,316‧‧‧中斷資料位址/尺度
317,318‧‧‧中斷請求邏輯
400‧‧‧中斷資料
410‧‧‧中斷向量
401‧‧‧服務請求符號或標籤
402‧‧‧CSR暫存器值
403‧‧‧直接記憶體存取(DMA)位址
404‧‧‧裝置專屬性訊息
405‧‧‧裝置功率狀態資料
406‧‧‧裝置熱資料和熱控制資料
407‧‧‧資料
500‧‧‧方法
501-505‧‧‧運作
600‧‧‧方法
601-604‧‧‧運作
700‧‧‧記憶體區塊
701‧‧‧中斷向量資訊登錄項
702-704‧‧‧實體中斷向量登錄項
800‧‧‧方法
801-806‧‧‧運作
900‧‧‧系統
901‧‧‧處理器
902‧‧‧晶片集
903-904‧‧‧裝置
905‧‧‧記憶體
906‧‧‧前端匯流排(FSB)
907‧‧‧匯流排或互連器
908‧‧‧快取記憶體
909‧‧‧處理器核心
910‧‧‧記憶體控制中心(MCH)
911‧‧‧輸入輸出控制中心(ICH)
912‧‧‧圖形裝置
本發明之實施例,係藉由範例而無限制意地例示在所附諸圖之繪圖中,其中,類似之參考數字,係指明相似之元件。
圖1為一個例示依據一個實施例具有改良式MSI中斷處理功能之系統的範例之方塊圖;圖2為一個例示依據一個他型實施例具有改良式MSI中斷處理功能之系統的範例之方塊圖;圖3為一個例示依據一個實施例之資料處理系統的架構之範例的方塊圖;圖4為一個例示依據一個實施例可儲存中斷資料之資料結構的方塊圖;圖5為一個例示依據一個實施例可模擬一個MSI中斷的方法之流程圖;圖6為一個例示依據另一個實施例可模擬一個MSI中斷的方法之流程圖;圖7為一個例示依據一個實施例可儲存具有多重中斷向量之中斷資料的資料結構之方塊圖;圖8為一個例示依據另一個實施例可模擬一個MSI中斷的方法之流程圖;圖9為一個例示依據一個實施例之資料處理系統的範例之方塊圖;而 圖10則為一個例示依據另一個實施例之資料處理系統的範例之方塊圖。
較佳實施例之詳細說明
本發明之各種實施例和形態,將參照下文所討論之細節加以說明,以及該等伴隨之繪圖將例示該等各種實施例。下文之說明內容和繪圖,係例示本發明,而不應被詮釋為限制本發明。眾多之特定細節在說明上,係為提供本發明各種實施例之完全理解。然而,在某些實例中,不說明一些習見的或傳統上之細節,以提供本發明之實施例的簡明討論。
本專利說明書中對“一個實施例”或“某一實施例”之指稱意謂的是,一個連同該實施例所說明之特定特徵、結構、或特性,可使包含在本發明的至少一個實施例中。本專利說明書內之各處中的片語“在一個實施例中”之出現,非必然全部指稱同一實施例。
依據某些實施例,有一個機制提供,其可容許一個裝置,藉由傳送一些包含一個中斷向量之中斷資料或訊息給該處理器,來請求一個MSI中斷,直接模擬一個MSI中斷,而非勢必要傳送一個實體MSI中斷請求給一個有關MSI之系統界定式位址。該中斷資料,並非受限於一個傳統式MSI請求所需要之格式或尺度。結果,一個裝置能以比起一個正規MSI請求或將容許者更多種之格式,傳送更多之資料給該處理器。一個與該處理器或一個晶片集相聯結之解 碼器邏輯經配置,可監控及偵測該模擬式MSI請求,以及可調用一個中斷控制器,使基於該中斷資料,來發佈一個MSI中斷。
依據一個實施例,就每個能夠處置MSI中斷之裝置而言,會有一個特定之記憶體分派給該裝置。此一區塊之記憶體,可能分派自一個處理器快取記憶體(舉例而言,該處理器等級-2(L2)或等級-3(L3)快取記憶體),或者自一個耦合至該處理器之系統記憶體的特定記憶體區域。每個裝置舉例而言,能夠經由一個投遞式寫入資料異動,直接存取其相聯結之記憶體區塊(舉例而言,使用直接快取記憶體或記憶體存取技術)。一個與一個裝置相聯結之記憶體區塊的尺度,可能會依據該特定之組態或需要而改變,其係可能在該系統或裝置之初值設定期間加以配置。
依據一個實施例,當有一個裝置正要聲明一個MSI時,與其傳送一個正規MSI請求訊息給該MSI有關的一個系統界定式位址,該裝置經配置,可將所有在該中斷服務期間要被利用之必需資料(本說明書亦被稱作中斷資料),經由一個投遞式寫入資料異動,傳送及儲存至該相關聯之記憶體區塊。該中斷資料,亦包含一個與該裝置的一個中斷服務常式(ISR)相聯結之中斷向量。響應該投遞式寫入資料異動,該解碼器邏輯,會被配置來調用一個中斷控制器,諸如一個高級可規劃中斷控制器(APIC),而自該記憶體區塊,擷取該中斷向量。在一個實施例中,一個MSI中斷,會直接傳送至該處理器,以及該MSI之中斷向量,會 被該處理器APIC截取。該解碼器邏輯,可能聲明一個信號(舉例而言,交替切換一條內部資料發訊線)給該處理器APIC,以通知一個待解決之模擬MSI中斷的處理器APIC。在一個實施例中,該解碼器邏輯經配置,可:1)自記憶體區塊取得該中斷向量,以及將此中斷向量傳送給該處理器APIC;以及/或者2)將該記憶體區塊位址,傳遞給該處理器APIC,以及該處理器APIC,接著會基於上述接收到之記憶體區塊位址,而自該記憶體區塊,取得該中斷向量。
當該處理器調用一個與一個裝置之中斷向量相聯結的中斷服務常式(ISR)時,該處理器可存取上述特別分派給該裝置之記憶體區塊,以擷取該中斷資料,以及使用該中斷資料,來服務該中斷,而非勢必要佔用一段可能相當長之時間,以經由一個或多個IO資料異動,自該裝置取得該同一資料。
依據一個又一實施例,上述要儲存進該記憶體區塊內之中斷資料,可能包含多重之中斷向量,彼等各係與一個ISR或一個ISR之進入點相聯結。響應一個至該記憶體區塊之投遞式寫入資料異動的偵測,該解碼器邏輯會被配置,使自該記憶體區塊,擷取該等中斷向量。就每個中斷向量而言,該解碼器邏輯經配置,可調用該中斷控制器,而自該記憶體區塊,存取該中斷向量,以及可調用一個處理器或一個處理器核心,來執行一個與該中斷向量相聯結之ISR。此等中斷向量,可能與一些可服務一個裝置或多重裝置之多重功能的ISR常式相聯結。結果,一個單一投遞式 寫入資料異動,可請求多重之MSI中斷,其中包含該等相關聯之中斷服務期間要被利用的所有必需之中斷資料,而非勢必要個別地請求多重至該MSI有關之系統界定式位址的MSI中斷。
圖1為一個例示依據一個實施例具有改良式MSI中斷處理功能之系統的範例之方塊圖。參照圖1,該系統100包含但非受限之處理器101,其係經由一個處理器匯流排106(亦被稱作前端匯流排或FSB),使耦合至一個晶片集102,其中,該晶片集102,係經由一個IO匯流排或互連器107,使耦合至一個或多個裝置103-104。該處理器101,可能表示具有單一或多重處理器核心之單一或多重處理器。該處理器101,進一步包含一個MCH 110,而使該處理器101或其他類似裝置103-104等裝置,能夠透過一個記憶體匯流排或互連器,來存取該記憶體105。在一個實施例中,該處理器101,包含一個具有特別分派給該等裝置103-104之某一定快取記憶體線的處理器快取記憶體108,以儲存一個中斷資料111。當該中斷控制器109(亦被稱作一個中斷處理常式或APIC),要調用該處理器101的一個執行單元(未示出),來處置一個類似一個裝置所請求之MSI中斷的中斷時,該執行單元,可直接存取一個與該裝置相聯結之快取記憶體108的對應區塊,來擷取該裝置之中斷資料111,以求服務該MSI中斷,而非勢必要經由一個或多個IO資料異動(舉例而言,經由該晶片集102和該等匯流排106-107),自該裝置取得該同一資料。
依據一個實施例,當有一個類似裝置103或裝置104之裝置,正要聲明一個MSI時,該裝置經配置,可將所有在該中斷服務期間要被利用之中斷資料111,經由一個投遞式寫入資料異動,而儲存至該快取記憶體108之相關聯區塊。該中斷資料111,進一步包含代表一個與該裝置相聯結之ISR的進入點之中斷向量。該解碼器邏輯112經配置,可監控及偵測任何至該等被分派之快取記憶體線的投遞式寫入資料異動,以求偵測一些起始自該等裝置103-104之模擬MSI中斷。在某些實施例中,該解碼器邏輯112,亦可能常駐在該晶片集102內,以及使耦合至該MCH 110,以偵測至該記憶體105之寫入。響應此種投遞式寫入資料異動之偵測,該解碼器邏輯112,可自該等被分派之快取記憶體線,擷取或使該中斷控制器109擷取一個中斷向量。該中斷控制器109,接著會調用該處理器101,來服務與該中斷向量相聯結之中斷。當該處理器101,基於該中斷向量,調用一個與該裝置相聯結之中斷服務常式(ISR)時,該處理器101,可自該被分派與該裝置相聯結之快取記憶體線,存取該中斷資料111,以及可使用該中斷資料,來服務該中斷,而非勢必要經由一個或多個IO資料異動,自該裝置取得該同一中斷資料。
一些要被分派之特定快取記憶體線的理由之一,是為避免該等被寫入至此等被分派之快取記憶體線的中斷資料,自動被該快取記憶體線取代演算法(舉例而言,最近最少使用(LRU)快取記憶體線取代方案)所取代。舉例 而言,該裝置103可將該中斷資料,推進該快取記憶體線312內,以請求一個MSI中斷。該處理器101,會岔行至該裝置103之ISR 306,以及會執行該ISR之回傳功能。當該處理器101,在服務該中斷(假定該處理器核心1正在服務該中斷)時,一個來自另一個處理核心(核心2)之第二程序,會自該系統記憶體105存取資料,以及會遭遇一個快取記憶體失誤,此會使該快取記憶體線312之中斷資料內容,自動被該系統記憶體105內之資料取代。此將會使該ISR 306,存取來自該快取記憶體線312不再有效之中斷資料,以及折衷處理該整個系統。此外,預先分派一些快取記憶體線,亦可在一個寫入至該被分派之快取記憶體線的寫入,在觸發上係由一個自動快取記憶體線資料取代事件,而非由自一個裝置至該被分派之快取記憶體線的實體模擬式MSI投遞式寫入資料異動時,避免該解碼器邏輯112,錯誤地調用一個處理器來服務一個中斷。在一個實施例中,該被分派之快取記憶體線在分派上,係藉由標記其對自動取代為不可行,以及其係藉由將其之快取記憶體線或記憶體位址,寫入進該裝置103之中斷資料暫存器308內,而使分派給一個裝置(舉例而言,該裝置103),以使該裝置103為唯一可寫入至該快取記憶體線之裝置。
值得注意的是,上述如圖1中所顯示之組態,在說明上僅屬例示性。該等就裝置103-104被分派來儲存中斷資料111之記憶體區塊,亦可使分派自其他類似系統記憶體105之記憶體,以及可經由該MCH 110被該處理器101存 取。亦值得注意的是,該MCH 110可能與該晶片集102相整合,其中,該晶片集102,進一步包含一個輸入輸出控制器中心(ICH)115,使如圖2中所示,控制一些類似裝置103-104等之IO裝置。
圖3為一個例示依據一個實施例之資料處理系統的架構之範例的方塊圖。該系統300可能使體現為如圖1中所顯示之系統100或圖2之系統200的一部分。參照圖3,該系統300包含各種來自該記憶體105而由該處理器101執行之軟體組件,其中包括但非受限之作業系統(OS)301和一些分別運作該等裝置103-104之裝置驅動器302-303。該OS 301可能為多種之作業系統,諸如微軟公司之微軟視窗(Windows®)、蘋果公司之Mac OS®/iOS®、谷歌公司(Google®)之安卓(Android®)、Linux®或Unix®作業系統。該OS 301經配置,可透過一個匯流排或互連器,使經由彼等對應之裝置驅動器302-303,與該等裝置103-104進行通訊。
當有一個裝置(舉例而言,該裝置103),希望請求一個MSI中斷時,該裝置會被配置來發佈一個投遞式寫入資料異動,給一個有關MSI之系統界定式位址,其中包括一個代表該相關聯之ISR的進入點之中斷向量。該MSI請求可使一個中斷控制器,調用該處理器101,使回傳該ISR(舉例而言,該ISR 306),以服務該中斷。傳統上,當該ISR被調用時,該處理器勢必要經由一個或多個IO資料異動,來存取該對應之裝置,而擷取該必需之中斷資料,諸如該裝置的一個或多個暫存器(舉例而言,控制和狀態暫存器或CSR) 之資料,此可能會消耗一段相當長之時間。
依據一個實施例,就每個裝置103-104而言,當有一個MSI中斷被該處理器101服務時,會有一個專屬性記憶體區塊,被分派來儲存要被該對應之ISR利用的中斷資料,其中,該中斷資料,包含與一個要被服務之MSI相聯結的中斷向量。該記憶體區塊,可分派自該處理器快取記憶體108,或者取而代之的是,分派自上述類似記憶體105之系統記憶體的一個特定區域。此種記憶體區塊之分派,係可在該系統300之初始設定(舉例而言,啟動)期間,或者在該等裝置驅動器302-303之初始設定期間。或者,一個記憶體區塊,係可能在一個裝置與該系統連接(舉例而言,被一個即插即用式管理器偵測到)時,動態地加以分派。
舉例而言,依據一個實施例,在彼等裝置之初始點期間,該系統韌體,諸如一個基本輸入輸出系統(BIOS)、一個啟動載入程序、或一個低階OS初始設定組件,可分派及分配一個記憶體區塊給每個裝置。舉例而言,該系統可能會直接配置或寫入一個特定之快取記憶體線位址和/或尺度、或一些與每個裝置之對應記憶體區塊相關聯的記憶體位址和/或尺度,進該裝置的一個預定暫存器(舉例而言,該等暫存器308-309)內。該系統可能就每個裝置分派一個固定大小之記憶體區塊,諸如該等記憶體區塊312-314。舉例而言,在該系統初始設定期間,該系統可能會分別分派及寫入該被分派之區塊的一個記憶體位址和/或尺度,進一個類似該等裝置103-104之中斷資料暫存器308-309的預定暫 存器內。繼而,當該等裝置驅動器302-303被該OS 301載入及初始設定時,每個裝置103-104,可自其之中斷資料暫存器(舉例而言,該等暫存器308-309),擷取該快取記憶體線位址或記憶體位址,以及可在其想要傳送一個MSI中斷給該處理器101時,舉例而言,經由一個所舉為例之直接快取記憶體存取(DCA)或直接記憶體存取(DMA)法,而直接存取該相關聯之記憶體區塊(舉例而言,該等記憶體區塊312-314),以求儲存該中斷資料。同理,在該系統初始設定期間,該OS 301亦可能將先前分派給該等裝置102-103經分派之記憶體區塊的同一記憶體位址和/或尺度,寫入至一個裝置驅動器302-303之斷續資料參數(舉例而言,中斷資料位址/尺度315-316),以求在該ISR中斷資料服務處理期間,自該同一記憶體區塊,存取該裝置中斷資料。
在一個特定之實施例中,在該初始設定期間,該OS 301會分派一條快取記憶體線(舉例而言,該等快取記憶體線312-314),以及會將該等記憶體位址,寫入至該裝置驅動器中斷資料暫存器(舉例而言,該等暫存器308-309)和一個裝置驅動器中斷資料參數(舉例而言,該中斷資料位址/尺度315-316)兩者。為例示計,當該裝置103希望中斷該處理器101時,該裝置103會主動迅速地使用先前儲存在其中斷資料暫存器308內之記憶體位址,將其包含一個中斷向量之中斷資料,作為一個投遞式寫入資料異動,而經由DCA傳送進該快取記憶體線312內,此可能係由該解碼器邏輯112來偵測。該解碼器邏輯112,可響應該偵測,而將一個 模擬式MSI信號,傳送給一個中斷控制器109。響應該模擬式MSI信號,該控制器109,會被配置而自該快取記憶體線312存取該中斷向量,以及會觸發該處理器101,以岔行至與該中斷向量相聯結之裝置驅動器的ISR 306。當該ISR 306被調用時,該處理器101會使用該裝置驅動器中斷資料參數315所指向之快取記憶體線位址,來取得該裝置103之中斷資料,以及會使用該中斷資料來處理該中斷。在該初始設定期間,將同一快取記憶體線或記憶體位址,儲存該裝置資料暫存器308和該裝置驅動器302內的一個中斷資料參數315兩者內,可使該裝置103和上述執行該裝置驅動器302之處理器101(舉例而言,兩個分開之實體),能夠知道在何處傳送及擷取中斷資料(包含該(等)中斷向量),而非勢必要彼此查詢。
或者,依據另一個實施例,當有一個裝置驅動器被該OS 301載入及初始設定時,該裝置經配置,可與該OS 301或該BIOS進行通訊,以請求一個具某一特定尺度之記憶體區塊(來自該處理器快取記憶體或系統記憶體)。舉例而言,一個裝置驅動器,可呼叫一個至該BIOS或OS 301之特定應用程式規劃介面(API),以協商一個來自該處理器快取記憶體108或系統記憶體105之記憶體區塊。在回應上,該系統會分派及提供一個起始記憶體位址和/或尺度,給該裝置驅動器,而可能在該裝置驅動器之整個活動期間,被該裝置驅動器保存(在該記憶體105內),或者其可被寫入該裝置的一個暫存器(舉例而言,該等中斷資料暫存器308-309) 內。結果,每個裝置驅動器,具有上述為儲存該中斷資料而協商該等記憶體區塊之各種尺度的能力,此並非受限於一些傳統式MSI請求訊息。
僅為例示計,其係假定該裝置驅動器302,經配置可控制及運作該裝置103,以及該記憶體區塊312,業已分派給該裝置103,以儲存該中斷資料。當該裝置103有一個中斷事件發生時,該裝置103經配置,可將該相關聯之中斷資料,儲存至該記憶體區塊312內。值得注意的是,一個驅動器之請求器,在該裝置配置期間,僅會被調用一次,以保留(請求)一個MSI中斷,其可能包括:設立該中斷向量、使其連結該裝置之中斷服務常式回傳功能、以及保留一個可儲存該中斷資料之記憶體區塊。該裝置包含一個額外之邏輯、韌體、或軟體,其可在希望傳送一個MSI中斷給該處理器時,主動迅速地將其包含其本身之CSR值、填妥之DMA緩衝儲存器位址、裝置訊息、標籤、和其他資料的中斷資料,推至該處理器快取記憶體或記憶體。當此動作完成時,該裝置驅動器302之中斷服務常式,便不再需要使用多重之IO資料異動就其中斷資料而輪詢該裝置。舉例而言,當該裝置103希望聲明一個MSI中斷給該處理器101時,一個可能被體現為一個DCA/DMA邏輯或韌體之中斷請求邏輯317,會主動迅速地將該裝置103之中斷資料(舉例而言CSR 310、DMA填妥之緩衝儲存器位址、中斷訊息、標籤、等等),推進該記憶體區塊312內,而作為一個投遞式寫入資料異動。該中斷資料進一步包含一個或多個與該中斷相 聯結之中斷向量。
一旦該中斷資料,業已儲存進該記憶體區塊312內,該解碼器邏輯112,會隨著該解碼器邏輯112的持續或定期監控該等被分派給裝置103-104之快取記憶體線處的活動,而偵測此種資料異動。響應該偵測,該解碼器邏輯112經配置,會傳輸一個模擬式MSI請求信號,給該中斷控制器109。響應該模擬式MSI請求,該中斷控制器109,會使該處理器101,岔行至其之中斷處理常式,以及會呼叫該裝置驅動器302之ISR 306。在此實施例中,該解碼器邏輯112,可能會自該中斷資料111,擷取該中斷向量,以及會將該中斷向量,交給該中斷控制器109。或者,該解碼器邏輯112,會以一個MSI中斷請求信號,和一個特定之快取記憶體線,通知該中斷控制器109,使擷取該MSI中斷請求有關之中斷向量,以及該中斷控制器109,接著會自該快取記憶體線,擷取該中斷向量,以觸發該處理器101,使岔行至與該中斷向量相聯結之ISR 306。
當該ISR 306被調用時,該處理器101經配置,可基於與該被分派之記憶體區塊相聯結之記憶體位址,來存取該記憶體區塊312,而擷取其中所儲存之中斷資料,以及使用該被擷取之中斷資料來服務該MSI中斷,而非勢必要經由一個或多個IO資料異動,來存取該裝置103。在此一方式中,本發明的一個實施例,可提供一種替代選擇之方式,來觸發一個MSI中斷,而非勢必要使該裝置,依據一個MSI規範,藉由寫入至一個系統界定之位址,來請求一個MSI 中斷。此外,上述要推至該快取記憶體108之中斷資料的量,並非受限於該MSI訊息中所界定者。一個裝置可推動多如其想要為該中斷資料之部分的資訊,只要該裝置可協商該快取記憶體108有足夠儲存它的空間。因此,一個至一個被分派之預定記憶體區塊的單一投遞式寫入資料異動,可容許一個裝置請求一個有關該裝置之MSI中斷,加上推動所有在該對應之中斷服務期間被利用的必需之中斷資料,彼等在一個傳統之MSI請求中,通常或將會不合適。
值得注意的是,該中斷控制器(舉例而言,處理器APIC-高級可規劃中斷控制器),可處理與該MSI中斷相聯結之中斷向量,以及可使該處理器101,岔行至其之中斷處理常式。該中斷處理常式,將會調用該ISR 306。每個裝置之MSI中斷資料,包含一個映射至該裝置ISR的獨一中斷向量。當該解碼器邏輯112,偵測到一個投遞式寫入資料異動為要至某一定分派給一個裝置之快取記憶體線時,其會將該投遞式寫入異動資料(舉例而言,該中斷向量)傳遞給該處理器APIC。該處理器APIC會使用該中斷向量,來查找上述可能常駐在某些被`指定之記憶體位址處的中斷處理常式。該中斷處理常式,接著會調用該裝置驅動器之ISR 306回傳功能服務中斷。在此實施例中,該ISR 306會自該記憶體312取得其之中斷資料,而非勢必要使用多重之IO資料異動來輪詢該裝置103。
依據一個實施例,當該裝置103希望請求一個MSI中斷時,該裝置103之中斷請求邏輯317經配置,可發佈 一個投遞式寫入資料異動,給一個至一個匯流排(舉例而言,該IO匯流排和/或FSB)之預先配置而對應於該記憶體區塊312的記憶體位址,以使其中包含所有必需之中斷資料,其中包括一個中斷向量。該記憶體位址,可能係擷取自該中斷資料暫存器308,以及係由該裝置驅動器302保存。一旦該中斷資料,業已儲存進該記憶體區塊312內,以及被該解碼器邏輯112偵測到,該解碼器邏輯112經配置,可將一個模擬式MSI請求信號,傳輸給一個可能常駐在該處理器101或一個晶片集102內之中斷控制器。該中斷控制器,可使該處理器101,岔行至該ISR 306。當執行該ISR 306時,該處理器101經配置,可存取該記憶體區塊312,以擷取該中斷資料,諸如一個對應於該CSR暫存器310之CSR資訊、一些裝置專屬性訊息、和其他必須之資訊。基於該資訊,該處理器101,可決定該裝置103所請求之中斷服務的類型、該裝置103之狀態、和/或該裝置103之狀態;以及可據以使用該擷取之中斷資料,來服務該請求之中斷。在服務該中斷之後,該處理器101,可能會經由一個或多個IO或記憶體映射之IO資料異動,更新該裝置103之某一定暫存器,而通知該裝置103,該中斷業已被服務。依據一個實施例,就截取該模擬式MSI中斷,可能存在有多重預先配置之記憶體位址。舉例而言,當一個第一裝置和一個第二裝置,有任何一個想要發佈一個具有中斷資料之模擬式MSI中斷給該處理器時,該第一裝置,可能會寫入至一個類似0xA之第一記憶體位址,以及該第二裝置可能會寫入至一個類 似0xB之第二記憶體位址。
依據一個實施例,在服務該MSI中斷時,該中斷資料取決於一個分派之記憶體區塊的尺度,可包含多種可被該ISR 306利用之資訊。舉例而言,誠如圖4中所示,該中斷資料400可能包括但非受限:中斷向量410、服務請求符號或標籤401、CSR暫存器值402、直接記憶體存取(DMA)位址403、裝置專屬性訊息404、裝置功率狀態資料405、裝置熱資料和熱控制資料406、和其他資料407。該服務請求符號或標籤401,可能會被一個ISR利用,來決定該中斷服務期間應被執行之服務或功能的類型(舉例而言,一個要被處理之填妥的直接記憶體存取緩衝儲存器;有一個錯誤情況發生,以及需要錯誤恢復;可供要被處理之資料;或裝置預備接收資料;等等)。該服務請求符號或標籤401,可能係由一個專門按該裝置之需要而做調整的裝置邏輯開發器和/或裝置軟體開發器在內部加以界定。該CSR暫存器值402,可能係擷取自該裝置的一個或多個CSR暫存器,以及經由該投遞式寫入資料異動,發佈給該記憶體區塊312。值得注意的是,該等資訊401-407,在顯示上僅為例示計;或多或少之資訊401-407在納入上,可能取決於該特定之組態。
舉例而言,該中斷資料400,可能進一步包括任何之裝置暫存器值、先進先出(FIFO)登錄項、佇列登錄項,或者在一個ISR回傳期間(在該MSI中斷業已接收到,以及該處理器執行業已進入該ISR之後),可能會另外使用一個或 多個IO資料異動,來查詢該等裝置暫存器,而取得任何其他之裝置資訊。該裝置功率狀態資訊405,可能容許該裝置,響應其功率狀態中之改變,或者響應一個功率狀態變換事件,而主動迅速地中斷該處理常式。該裝置熱資料和熱控制資訊406,可能容許該裝置,響應一個熱事件,諸如過熱或啟通/啟斷一個風扇或冷卻系統之需要,而主動迅速地中斷該處理常式。該其他資料資訊407,可能包括某些相對“小尺度”中斷資料,諸如鍵擊和/或一些來自一個類似滑鼠、觸摸板或鍵盤等之使用者輸入裝置的坐標資訊。
圖5係例示依據一個實施例可以中斷資料來模擬 一個MSI中斷之方法的一個流程圖。該方法500可能由上文所述之系統100或200來執行。參照圖5,在區塊501處,該處理邏輯,可就每個該等裝置,分派一個記憶體區塊(舉例而言,該處理器快取記憶體線或系統記憶體),以儲存與該裝置相關聯之中斷資料。該中斷資料,可能經由一個投遞式寫入資料異動,由一個裝置儲存進其相關聯之記憶體區塊。在區塊502處,一個類似解碼器邏輯之處理邏輯,會監控該被分派之記憶體區塊,以偵測是否有任何一個裝置為求請求一個MSI中斷已存取該記憶體區塊。在區塊503處,響應代表一個MSI請求之被分派的記憶體區塊之存取的偵測,會有一個中斷向量,自上述儲存該中斷資料之記憶體區塊被擷取。在區塊504處,會有一個與該中斷向量相關聯之ISR被調用。此外,該中斷資料,會擷取自上述與該裝置相聯結之記憶體區塊。在一個實施例中,該中斷資料在儲 存上,可能係基於一個儲存在一個裝置驅動器中斷資料參數登錄項中之快取記憶體線位址。在區塊505處,該中斷資料會被利用來服務該MSI中斷,而非勢必要經由一個IO資料異動就該同一資料而與該裝置進行通訊。因此,一個至某一被分派給一個裝置之預定的記憶體區塊之單一投遞式寫入資料異動,加上推動所有在該對應之中斷服務期間被利用之必需中斷資料,彼等在一個傳統之MSI請求中,通常或將會不合適。
圖6為一個例示依據另一個實施例可模擬一個 MSI中斷的方法之流程圖。該方法600可能係由一個裝置和/或圖3之裝置驅動器來執行。參照圖6,在區塊601處,響應一個有關中斷一個處理器之事件,會取得一個與該裝置相聯結之預先分派的記憶體區塊之記憶體位址。舉例而言,在該系統和/或該裝置之初值設定期間,該記憶體區塊,可能係分派自一個處理器之處理器快取記憶體,或者自該系統記憶體。該等記憶體位址,可能係得自該裝置的一個預定之暫存器,其中,該記憶體位址,係先前儲存在該暫存器中(舉例而言,在類似該匯流排或該等裝置之點查的初值設定期間)。在區塊602處,該處理邏輯會發佈一個投遞式寫入資料異動給該記憶體位址,使該中斷資料(舉例而言,圖4之中斷資料400)直接儲存至一個專門分派給該裝置的一個記憶體位置。該中斷資料,進一步包括一個與該裝置之ISR相聯結的中斷向量。繼而,響應一個ISR處接收到來自一個處理器的一個中斷回傳,該中斷資料係擷取自 該被分派之記憶體區塊,而非勢必要經由一個IO資料異動取得來自該裝置之同一中斷資料。在區塊604處,該中斷資料會被利用,使經由該ISR來服務該模擬式MSI中斷。值得注意的是,該等區塊601-602之運作,可能由一個類似圖3之邏輯317-318的中斷請求邏輯來執行,而該等區塊603-604之運作,係可能由圖3之ISR 306-307來執行。
本發明之實施例可見的是,可使一個裝置能夠在 為使用一個單一接合式匯流排寫入資料異動之服務而中斷該處理器時,能主動迅速地將類似其之CSR暫存器值和其他資料的特定資訊,推進該處理器之快取記憶體內或該系統記憶體之特定區域內。該處理器對其服務該中斷所需要之資訊,可具有快速之存取,以及並非勢必要經由一個IO資料異動來輪詢該裝置的一個暫存器,此可能會既無效率且耗費時間。該裝置可見的是,可能會選擇地僅推動該處理器所需要之資訊的子集,舉例而言,如圖4中所示,來服務該中斷。理應察覺到的是,一個裝置設計員,可能會選擇使用傳統用以服務一個MSI中斷之方法、一個如上文所說明之改良式MSI方法、或該兩種方法之組合。該MSI處理方法之抉擇,在選擇上可能取決於該等裝置之複雜性,和/或時間點下可用之頻寬或處理能力(舉例而言,在該等環境下,“推動”而非“輪詢”會更有效率)。在一個實施例中,若該裝置需要額外之空間來儲存其之中斷資料,便可能會有多重之快取記憶體線被分派給一個裝置。
依據某些實施例,一個裝置推至該對應被分派之 記憶體區塊的中斷資料,包括與多重ISR相聯結之多重中斷向量,或一個與多重裝置或單一裝置相聯結之單一ISR的多重進入點。結果,一個單一之投遞式寫入資料異動,可就一個或多個裝置,請求多重之MSI中斷。舉例而言,一個裝置可請求多重之MSI中斷,可就與該裝置相聯結之多重功能中的一個,請求一個MSI中斷。或者,一個在該匯流排(舉例而言,一個基架匯流排)上面之中斷接合代理器,可截取該等來自多重裝置之MSI請求,以及可結合多重裝置之多重MSI中斷請求,以及經由一個至某一除該傳統式MSI請求位址外包括所有與該等中斷向量相聯結之必需中斷資料的預定之記憶體區塊的單一投遞式寫入資料異動,來請求多重之MSI中斷。一些可能想要執行中斷接合之裝置,可能包括一些耦合至一個共用基架匯流排或一個可處理多重視訊串流之裝置的網路裝置。響應一個“結合”MSI中斷請求,該中斷控制器,可將不同中斷向量之處理,分配給不同之處理器或不同之處理器核心。彼等傳統式中斷機構,僅有能力每次傳送一個中斷向量給該處理器。
圖7為一個例示依據一個實施例可儲存具有多重 中斷向量之中斷資料的資料結構之方塊圖。該記憶體區塊700可能代表圖3之記憶體區塊312-314中的任何一個。參照圖7,該記憶體區塊700,包括一個可儲存代表其中包含若干中斷向量之資訊的登錄項701和該等實體中斷向量登錄項702-704。該記憶體區塊700,進一步包括其他可能與圖4中所示者相同或相類似之中斷資料400。值得注意的是,該 中斷資料400,可能與該等中斷向量702-704中的至少兩個共用,或者取而代之的是,某些該等中斷向量702-704,可能具有其自己之中斷資料,其可能會與該中斷資料400相同或相類似。該中斷資料亦可能會不相同,其中可能會添加一些額外之中斷資料欄位(舉例而言,中斷資料1、...、中斷資料N),彼等可能包含一些與圖4中所說明者相類似之子欄位。亦應注意的是,上述如圖7中所示之資料結構,在說明上僅屬例示性;其他之格式亦可能會被利用。
圖8為一個例示依據另一個實施例可用中斷資料 來模擬一個MSI中斷的方法之流程圖。該方法800可能由如上文所述之系統100或200來執行。參照圖8,在區塊801處,該處理邏輯可就每一裝置兮派一個記憶體區塊(舉例而言,該等處理器快取記憶體線或系統記憶體),以儲存與該裝置相聯結之中斷資料。該中斷資料可能經由一個投遞式寫入資料異動,藉由一個裝置使儲存進其相聯結之記憶體區塊。在區塊802處,上述類似解碼器邏輯之處理邏輯,可監控該被分派之記憶體區塊,以偵測是否有任何裝置已為求請求一個MSI中斷而存取該記憶體區塊。響應上述代表一個MSI請求之被分派的記憶體區塊之存取的偵測,在區塊803處,會自該記憶體區塊擷取多重之中斷向量。在區塊804處,就每一中斷向量而言,一個中斷控制器經配置,可對一個處理器或處理器核心,分配上述處理該中斷向量之任務,其可能包括執行一個與該中斷向量相聯結之ISR。在區塊805處,會有一個或多個ISR被調用,以服務該MSI中斷, 其中,亦會自該記憶體區塊,擷取一個額外之中斷資料,以便在區塊806處之中斷服務期間被利用。
圖9為一個例示依據一個實施例之資料處理系統 的範例之方塊圖。舉例而言,該系統900可能代表圖1和圖2之系統100和200中的任何一個。該系統900可能代表一個桌上型電腦、一個膝上型電腦、一個連網板、一個伺服器、一個手機(舉例而言、智慧型行動電話)、一個媒體播放器、一個個人數位助理(PDA)、一個個人通話裝置、一個遊戲機、一個網路路由器或中心、一個無線基地台或中繼站、一個機上盒、或彼等之組合。值得注意的是,雖然圖9例示了一個資料處理系統之各種組件,其並非意在表示該等組件互連之任何特定的架構或方法;因為此等細節對本發明之實施例並不具有密切關係。亦應察覺到的是,一些具有較少之組件或許較多之組件的網路電腦、手持電腦、手機、和其他資料處理系統,亦可能為本發明之實施例所使用。
參照圖9,在一個實施例中,該系統900包含一個 處理器901,和一個可使包括一個記憶體905和一些裝置903-904之各種組件經由一條匯流排或互連器907耦合至該處理器901的晶片集902。該處理器901可能代表一個單一處理器或多重處理器,其中包含一個單一處理器核心或多重處理器核心909。該處理器901可能代表一個或多個通用型處理器,諸如一個微處理器、一個中央處理器(CPU)、等等。 更明確而言,該處理器901可能為一個複雜指令集運算(CISC)微處理器、一個精簡指令指令集運算(RISC)微處理 器、一個極長指令字組(VLIW)微處理器、或一個可體現其他指令集之處理器、或一些體現一個指令集組合之處理器。該處理器901亦可能為一個或多個專屬型處理器,諸如一個應用專屬性積體電路(ASIC)、一個現場可程式化閘陣列(FPGA)、一個數位信號處理器(DSP)、一個網路處理器、一個圖形處理器、等等。舉例而言,該處理器901可能為美國加州聖克拉拉之英特爾公司上市的奔騰4(PentiumTM 4)、奔騰雙核心、酷睿2(CoreTM 2 Duo)、Quad、XeonTM、ItaniumTM、XScaleTM、或StrongARMTM微處理器。該處理器901經配置,可執行該等用以執行本說明書所討論之運作和步驟的指令。
該晶片集902可能包含一個記憶體控制中心 (MCH)910和一個輸入輸出控制中心(ICH)911。該MCH 910可能包含一個與記憶體905相通訊之記憶體控制器(未示出)。該MCH 910亦可能包含一個與該圖形裝置912相通訊之圖形介面。在本發明的一個實施例中,該圖形介面可能經由一個加速圖形埠(AGP)、一個外設互聯標準(PCI)快捷匯流排、或其他類型之互連器,而與該圖形裝置912相通訊。該ICH 911可能會提供一個介面給該等類似裝置903-904之輸入/輸出裝置。該等裝置903-904中的任何一個,可能為一個儲存裝置(舉例而言,一個硬碟、快閃記憶體裝置)、一個(些)萬用串列匯流排(USB)埠、一個鍵盤、一個滑鼠、一個(些)平行埠、一個(些)串行埠、一個印表機、一個網路介面(線接式或無線)、一個無線收發器(舉例而 言,無線保真度(WiFi)、藍芽(Bluetooth)、或蜂巢式收發器)、一個媒體裝置(舉例而言,一個聲訊/視訊編解碼器或控制器)、一個匯流排橋接器(舉例而言,PCI-PCI橋接器)、或其他裝置。
該MCH 910有時被稱為北橋,以及該ICH 911有 時被稱為南橋,不過,某些人會在彼等之間作技術上之區分。誠如本說明書所使用,該等術語MCH、ICH、北橋、和南橋,係預計應作廣意理解,以涵蓋各種包括朝向一個處理器傳送一些中斷信號之功能的晶片。在某些實施例中,該MCH 910可能係與該處理器901整合在一起。在此種組態中,該晶片集902如圖10中所示,係運作為一個可執行該等MCH 910和ICH 911之某些功能的介面晶片。此外,該圖形加速器912,可能會被整合在該MCH 910或該處理器901內。
該記憶體905可能儲存該等包括該處理器901或 任何其他裝置所執行之指令序列的資料。舉例而言,多種作業系統、裝置驅動器、韌體(舉例而言,輸入輸出基本系統或BIOS)、和/或應用程式之可執行程式碼和/或資料,可使載入該記憶體905內,以及由該處理器901來執行。一個作業系統可為任何類型之作業系統,諸如舉例而言,來自微軟公司之Windows®作業系統、來自蘋果公司之Mac OS®/iOS®作業系統、來自谷歌公司(Google®)之安卓(Android®)作業系統、Linux®、Unix®、或其他實時作業系統。在一個實施例中,該記憶體905可能包含一個或多個揮發性儲存 (或記憶體)裝置,諸如隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(SDRAM)、靜態隨機存取記憶體(SRAM)、或其他類型之儲存裝置。一個非揮發性記憶體,亦可能加以利用,諸如一個硬碟或一個快閃儲存裝置。該前端匯流排(FSB)906,可能為一個分支式(Multi-Drop或點對點式互連器。術語FSB預計係涵蓋各種類型至該處理器901之互連器。該晶片集902可能經由一些點對點介面,與其他類似該等裝置903-904之裝置相通訊。
該快取記憶體908,可能為任何類型之處理器快 取記憶體,諸如級-1(L1)快取記憶體、L2快取記憶體、L3快取記憶體、L4快取記憶體、尾級快取記憶體(LLC)、或彼等之組合。該快取記憶體908,可能與該處理器901之處理器核心909共用。該快取記憶體908在體現上,可能位於該處理器901內,以及/或者位於該處理器901之外部。該處理器901可能進一步包含一個直接快取記憶體存取(DCA)邏輯,以使其他類似該等裝置903-904之裝置,能夠直接存取該快取記憶體908。該處理器901和/或該晶片集902,可能進一步包含一個中斷控制器,以處置該等處理中斷,諸如該等訊息發訊式中斷。
該處理器901可能進一步包含一個或多個暫存器 檔案,其中包括但非受限之整數暫存器、浮點暫存器、向量或擴展暫存器、狀態暫存器、和一個指令指標暫存器、等等。該術語“暫存器”在本說明書中,係被用來指稱該等集成板上處理器儲存位置,彼等係被用作識別運算元之巨 指令的一部分。換言之,本說明書所指稱之暫存器,為由該處理器之外側(由一個程式設計師之觀點)可見者。然而,該等暫存器不應受限於意指某一特定類型之電路。更確切地說,一個暫存器僅需要有能力儲存及提供資料,以及執行本說明書所說明之功能便可。本說明書所說明之暫存器,可使用任何數目之不同技術,諸如一些專屬型實體暫存器、一些一些使用暫存器重新命名之動態分派式實體暫存器、一些專屬型和動態分派式實體暫存器之組合、等等,以一個處理器內之電子電路,來加以體現。在一個實施例中,該等整數暫存器,可儲存32-位元或64-位元之整數資料。一個暫存器檔案,可能包含一些用以分組資料之擴展式多媒體SIMD暫存器(舉例而言,XMM)。此種暫存器可能包括一些涉及SSE2、SSE3、SSE4、GSSE和以上(一般指稱為“SSEx”)技術之128位元寬之XMM暫存器和256位元寬暫存器(彼等可能會將該等XMM暫存器,合併進彼等之低次位元中),以保存此種分組資料運算元。
依據一個實施例,該等程序快取記憶體908和/ 或記憶體905,有一部分會被利用就該等裝置903-904中的至少一個分派一個記憶體區塊,以儲存該中斷資料。當有一個裝置想要請求一個MSI中斷時,該裝置便會發佈一個投遞式寫入資料異動給該記憶體區塊,以儲存其之中斷資料,其中包括一個或多個中斷向量。上述與該處理器901相聯結之解碼器邏輯112經配置,可監控該被分派之記憶體區塊,以及響應此種偵測,會有一個中斷控制器被調用,使 基於上述擷取自該記憶體區塊之中斷向量,來發佈一個具有該中斷資料之模擬式MSI中斷。其後,有一個與該裝置相聯結之ISR會被調用,以使用上述擷取自該記憶體區塊之中斷資料,來服務該MSI中斷,而如上文所說明,非勢必要經由一個IO資料異動,而與該裝置相通訊。
先前詳細說明之某些部分,業已藉由一些針對一 個電腦記憶體內之資料位元的運作之演算法和符號表示式來表現。此等在演算法上之描述和表示,為資料處理技藝之專業人士比起本技藝之其他專業人士在最有效地傳達彼等之工作主旨上所使用的方式。在此有一個演算法,以及通常被認為一個會導致所想要之結果的有條理之運作序列。該等運作為該等需要實體操控物理量者。
然而,理應牢記在心的是,所有此等和類似之術 語,係要與該等適當之物理量相聯結,以及僅為一些應用至此等量之方便標示。除非另有明確陳述,誠如由上文之討論顯而易見的是,遍及此說明內容,該等利用類似以下之申請專利範圍中所闡明的術語之討論,係指稱一個電腦系統或類似之電子運算裝置的動作和程序,其可操控該等表示為該電腦系統之暫存器和記憶體內的物理(電子)量之資料,以及將其變換成該電腦系統記憶體或暫存器或其他此類資料儲存、傳輸、或顯示裝置內之物理量的其他資料。
本發明之實施例,亦涉及一個用以執行本說明書中之運作的裝置。此種電腦程式係儲存在一個非暫時性電腦可讀取式媒體中。一個電算機可讀取式媒體,包括任何用以儲存一個在形式上可被一個電算機(舉例而言,電腦) 讀取之資訊的機構。舉例而言,一個電算機可讀取式(舉例而言,電腦可讀取式)媒體,包括一個電算機(舉例而言,電腦)可讀取式儲存媒體(舉例而言,唯讀記憶體(“ROM”)、隨機存取記憶體(“RAM”)、磁碟片儲存媒體、光學儲存媒體、快閃記憶體裝置)。
先前諸圖中所描繪之程序或方法在執行上,可能藉由一個處理邏輯,其係由一個硬體(舉例而言,電子電路、專屬型邏輯、等等)、一個軟體(舉例而言,體現在一個非暫時性電腦可讀取式媒體上面)、或兩者之組合。雖然該等程序或方法,在上文之說明中,係藉由某些串列式運作,理應察覺到的是,該等說明之某些運作,可能以某一不同之順序來執行。此外,某些運作可能以並列而非串列方式來執行。
本發明之實施例在說明上,並非參照任何特定之程式語言。理應察覺至的是,有眾多之程式語言,可能被用來體現本發明在本說明書中所說明之實施例的授義內容。
本發明之實施例,在前文之詳細說明書中,業已參照其特定之範例性實施例加以說明。顯而易見的是,在不違離本發明如下文之申請專利範圍中所闡明的廣意精神和界定範圍下,係可能完成各種之修飾體。因此,該等詳細說明和繪圖,當被視為屬例示性,而非有限制意。
100‧‧‧系統
101‧‧‧處理器
102‧‧‧晶片集
103-104‧‧‧裝置
105‧‧‧記憶體
106‧‧‧處理器匯流排
107‧‧‧IO匯流排或互連器
108‧‧‧處理器快取記憶體
109‧‧‧中斷控制器
110‧‧‧記憶體控制中心(MCH)
111‧‧‧中斷資料
112‧‧‧解碼器邏輯
116‧‧‧裝置

Claims (20)

  1. 一種處理器,其包含:一記憶體解碼器,用以監控一分派給一裝置之預定的一記憶體區塊;一中斷控制器,用以響應於自該裝置啟始而至該預定之記憶體區塊的一投遞式寫入資料異動,而接收一來自該記憶體解碼器之模擬式訊息發訊中斷(MSI)信號;和一執行單元,用以使用擷取自該預定之記憶體區塊的中斷資料,執行與該裝置相聯結之一中斷服務常式(ISR)以服務該MSI,而不必經由一輸入輸出(IO)資料異動自該裝置取得該中斷資料。
  2. 如申請專利範圍第1項之處理器,其中,該ISR係基於一擷取自該預定之記憶體區塊的中斷向量,而非經由一MSI請求訊息而調用。
  3. 如申請專利範圍第1項之處理器,其中,該模擬式MSI信號係基於來自該預定之記憶體區塊的投遞式寫入資料異動,而非基於該MSI有關的一系統界定式位址而產生。
  4. 如申請專利範圍第1項之處理器,其中該記憶體區塊係在該裝置之初值設定期間,自一與該執行單元相聯結之快取記憶體和一的系統記憶體中至少一者而受分派。
  5. 如申請專利範圍第1項之處理器,其中該記憶體區塊係自一與該執行單元相聯結之處理器快取記憶體而受分 派,且其中該中斷資料係藉由該裝置經由一直接快取記憶體存取(DCA)資料異動,該交易異動係透過耦合該裝置至該處理器之一匯流排,而儲存進該記憶體區塊內。
  6. 如申請專利範圍第1項之處理器,其中該中斷資料包含一裝置暫存器、一表示該裝置之運作狀態的裝置控制和狀態暫存器(CSR)、該裝置之功率狀態、及/或該裝置之熱狀態的資料。
  7. 如申請專利範圍第1項之處理器,其中該中斷資料包含一暫存器、一先進先出(FIFO)、及/或該裝置的一佇列,該佇列表示一裝置控制資料、一填妥之資料緩衝器的位址、一用於處理之可用裝置資料的位址、及/或一要被填妥之可用緩衝器的位址之資料。
  8. 一種方法,其包含:藉由與一處理器相聯結的一記憶體解碼器,來監控分派給一裝置之一預定記憶體區塊;藉由該記憶體解碼器響應於自該裝置啟始之至該預定之記憶體區塊的投遞式寫入資料異動,來產生一模擬式訊息發訊中斷(MSI)信號;以及藉由一中斷控制器,使用一擷取自該預定之記憶體區塊的中斷資料,來調用與該裝置相聯結的一中斷服務常式(ISR),以服務該MSI,而非勢必要經由一輸入輸出(IO)資料異動而自該裝置取得該中斷資料。
  9. 如申請專利範圍第8項之方法,其中該ISR係基於一擷取自該預定之記憶體區塊的中斷向量,而非經由一MSI請 求訊息而受調用。
  10. 如申請專利範圍第8項之方法,其中該模擬式MSI信號係基於來自該預定之記憶體區塊的投遞式寫入資料異動,而非基於該MSI有關的一系統界定式位址而產生。
  11. 如申請專利範圍第8項之方法,其中該記憶體區塊,係在該裝置之初值設定期間,自一與該執行單元相聯結之快取記憶體和一的系統記憶體的至少一者而受分派。
  12. 如申請專利範圍第8項之方法,其中該記憶體區塊係自一與該執行單元相聯結之處理器快取記憶體而受分派,且其中該中斷資料係藉由該裝置,經由一直接快取記憶體存取(DCA)資料異動,該交易異動係透過耦合該裝置至該處理器之一匯流排,而儲存進該記憶體區塊內。
  13. 如申請專利範圍第8項之方法,其中該中斷資料包含一裝置暫存器、一表示該裝置之運作狀態的裝置控制和狀態暫存器(CSR)、該裝置之功率狀態、及/或該裝置之熱狀態的資料。
  14. 如申請專利範圍第8項之方法,其中,該中斷資料包含一暫存器、一先進先出(FIFO)、及/或該裝置的一佇列,該佇列表示一裝置控制資料、一填妥之資料緩衝器的位址、一用於處理之可用裝置資料的位址、及/或一要被填妥之可用緩衝器的位址之資料。
  15. 一種系統,其包含:一匯流排; 一耦合至該匯流排之裝置;一記憶體解碼器,用以監控一分派給該裝置之預定的記憶體區塊;一中斷控制器,用以響應於自該裝置啟始而至該預定之記憶體區塊的一個投遞式寫入資料異動,而接收一個來自該記憶體解碼器之模擬式訊息發訊中斷(MSI)信號;和一個執行單元,用以使用擷取自該預定之記憶體區塊的中斷資料,執行與該裝置相聯結之一中斷服務常式(ISR),來服務該MSI,而不必經由一輸入輸出(IO)資料異動,自該裝置取得該中斷資料。
  16. 如申請專利範圍第15項之系統,其中該ISR係基於一個擷取自該預定之記憶體區塊的中斷向量,而非經由一個MSI請求訊息而受調用。
  17. 如申請專利範圍第15項之系統,其中該模擬式MSI信號係基於來自該預定之記憶體區塊的投遞式寫入資料異動,而非該MSI有關的一個系統界定式位址而產生。
  18. 如申請專利範圍第15項之系統,其中該記憶體區塊係在該裝置之初值設定期間,分派自一個與該執行單元相聯結之快取記憶體和一的系統記憶體的至少一者而受分派。
  19. 如申請專利範圍第15項之系統,其中該記憶體區塊,係自一與該執行單元相聯結之處理器快取記憶體而受分派,且其中該中斷資料係藉由該裝置經由一直接快取記 憶體存取(DCA)資料異動,該交易異動係透過耦合該裝置至該處理器之一匯流排,而儲存進該記憶體區塊內。
  20. 如申請專利範圍第15項之系統,其中,該中斷資料包含一裝置暫存器、一表示該裝置之運作狀態的裝置控制和狀態暫存器(CSR)、該裝置之功率狀態、及/或該裝置之熱狀態的資料。
TW101140763A 2011-11-03 2012-11-02 以中斷資料模擬訊息發訊中斷之方法 TWI502513B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/059179 WO2013109233A2 (en) 2011-11-03 2011-11-03 Method to emulate message signaled interrupts with interrupt data

Publications (2)

Publication Number Publication Date
TW201333828A true TW201333828A (zh) 2013-08-16
TWI502513B TWI502513B (zh) 2015-10-01

Family

ID=48799784

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101140763A TWI502513B (zh) 2011-11-03 2012-11-02 以中斷資料模擬訊息發訊中斷之方法

Country Status (3)

Country Link
US (1) US8996760B2 (zh)
TW (1) TWI502513B (zh)
WO (1) WO2013109233A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922252B2 (en) 2015-06-22 2021-02-16 Qualcomm Incorporated Extended message signaled interrupts (MSI) message data

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384154B2 (en) * 2011-11-03 2016-07-05 Intel Corporation Method to emulate message signaled interrupts with multiple interrupt vectors
WO2013147766A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Method for implementing secure data channel between processor and devices
US8996774B2 (en) * 2012-06-27 2015-03-31 Intel Corporation Performing emulated message signaled interrupt handling
US9104472B2 (en) * 2013-02-04 2015-08-11 Freescale Semiconductor, Inc. Write transaction interpretation for interrupt assertion
MY186256A (en) 2015-12-21 2021-06-30 Intel Corp Emulated msi interrupt handling
IL282388B2 (en) * 2018-10-18 2024-01-01 Sternum Ltd Applying security measures in code files to prevent exploiting stack weaknesses

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968411B2 (en) 2002-03-19 2005-11-22 Intel Corporation Interrupt processing apparatus, system, and method
US7617332B2 (en) * 2003-05-01 2009-11-10 International Business Machines Corporation Method and apparatus for implementing packet command instructions for network processing
US7409483B2 (en) * 2003-12-19 2008-08-05 Intel Corporation Methods and apparatuses to provide message signaled interrupts to level-sensitive drivers
DE102004042170B4 (de) * 2004-08-31 2009-02-19 Advanced Micro Devices, Inc., Sunnyvale Nachrichtenbasierte Interrupttabelle
US20060259658A1 (en) * 2005-05-13 2006-11-16 Connor Patrick L DMA reordering for DCA
US8463969B2 (en) * 2005-06-30 2013-06-11 Intel Corporation Extended message signal interrupt
US7979619B2 (en) * 2008-12-23 2011-07-12 Hewlett-Packard Development Company, L.P. Emulating a line-based interrupt transaction in response to a message signaled interrupt

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922252B2 (en) 2015-06-22 2021-02-16 Qualcomm Incorporated Extended message signaled interrupts (MSI) message data

Also Published As

Publication number Publication date
WO2013109233A3 (en) 2013-10-10
TWI502513B (zh) 2015-10-01
US20140237144A1 (en) 2014-08-21
WO2013109233A2 (en) 2013-07-25
US8996760B2 (en) 2015-03-31

Similar Documents

Publication Publication Date Title
TWI502513B (zh) 以中斷資料模擬訊息發訊中斷之方法
CN109314726B (zh) 操作系统容器之间通讯的系统和方法
WO2019095655A1 (zh) 一种数据交互方法和计算设备
EP2430539B1 (en) Controlling a rate at which adapter interruption requests are processed
JP5923838B2 (ja) 割り込み分配スキーム
US8505032B2 (en) Operating system notification of actions to be taken responsive to adapter events
US9244881B2 (en) Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
US11036661B2 (en) Directed interrupt virtualization
JP2013531328A (ja) 周辺機器のページフォルト(pagefault)を処理する機構
CA2800632C (en) Enable/disable adapters of a computing environment
US8996774B2 (en) Performing emulated message signaled interrupt handling
TWI516944B (zh) 以多重中斷向量模擬訊息發訊中斷之方法
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
KR20170013882A (ko) 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc)
IL223597A (en) Store / store and block commands for communication with adapters
TWI502361B (zh) 加速信息發信中斷處理的處理器、方法及系統
JP2007516536A (ja) オペレーティングシステムに可視的な割り込みハンドリングを用いてホットキー入力を処理する方法及び装置
US8793329B2 (en) Facilitating communication between isolated memory spaces of a communications environment
US10284501B2 (en) Technologies for multi-core wireless network data transmission

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees