第6章 MSI和MSI X中斷機制

2021-07-26 20:41:43 字數 2369 閱讀 7847

pci匯流排中,所有需要提交中斷請求的裝置,必須能夠通過

intx

引腳提交中斷請求,而

msi機制是乙個可選機制。而在

pcie

匯流排中,

pcie

裝置必須支援

msi或者

msi-x

中斷請求機制,而可以不支援

intx

中斷訊息。 在

pcie

匯流排中,

msi和

msi-x

中斷機制使用儲存器寫請求

tlp向處理器提交中斷請求,下文為簡便起見將傳遞

msi/msi-x

中斷訊息的儲存器寫報文簡稱為

msi/msi-x

報文。不同的處理器使用了不同的機制處理這些

msi/msi-x

中斷請求,如

powerpc

處理器使用

mpic

中斷控制器處理

msi/msi-x

中斷請求,本章將在第

6.2節中介紹這種處理情況;而

x86處理器使用

fsb interrupt message

方式處理

msi/msi-x

中斷請求。

不同的處理器對

pcie

裝置發出的

msi報文的解釋並不相同。但是

pcie

裝置在提交

msi中斷請求時,都是向

msi/msi-x capability

結構中的

message address

的位址寫

message data

資料,從而組成乙個儲存器寫

tlp,向處理器提交中斷請求。

有些pcie

裝置還可以支援

legacy

中斷方式

[1]。但是

pcie

匯流排並不鼓勵其裝置使用

legacy

中斷方式,在絕大多數情況下,

pcie

裝置使用

msi或者

msi/x

方式進行中斷請求。

pcie

匯流排提供

legacy

中斷方式的主要原因是,在

pcie

體系結構中,存在許多

pci裝置,而這些裝置通過

pcie

橋連線到

pcie

匯流排中。這些

pci裝置可能並不支援

msi/msi-x

中斷機制,因此必須使用

intx

訊號進行中斷請求。 當

pcie

橋收到pci

裝置的intx

訊號後,並不能將其直接轉換為

msi/msi-x

中斷報文,因為

pci裝置使用

intx

訊號進行中斷請求的機制與電平觸發方式類似,而

msi/msi-x

中斷機制與邊沿觸發方式類似。這兩種中斷觸發方式不能直接進行轉換。因此當

pci裝置的

intx

訊號有效時,

pcie

橋將該訊號轉換為

assert_intx

報文,當這些

intx

訊號無效時,

pcie

橋將該訊號轉換為

deassert_intx

報文。

與legacy

中斷方式相比,

pcie

裝置使用

msi或者

msi-x

中斷機制,可以消除

intx

這個邊帶訊號,而且可以更加合理地處理

pcie

匯流排的「序」。目前絕大多數

pcie

裝置使用

msi或者

msi-x

中斷機制提交中斷請求。

msi和msi-x

機制的基本原理相同,其中

msi中斷機制最多只能支援

32個中斷請求,而且要求中斷向量連續,而

msi-x

中斷機制可以支援更多的中斷請求,而並不要求中斷向量連續。與

msi中斷機制相比,

msi-x

中斷機制更為合理。本章將首先介紹

msi/msi-x capability

結構,之後分別以

powerpc

處理器和

x86處理器為例介紹

msi和

msi-x中斷機制。

[1] 通過傳送

assert_intx

和deassert_intx

訊息報文進行中斷請求,即虛擬中斷線方式。

第6章 MSI和MSI X中斷機制

在 pci匯流排中,所有需要提交中斷請求的裝置,必須能夠通過 intx 引腳提交中斷請求,而 msi機制是乙個可選機制。而在 pcie 匯流排中,pcie 裝置必須支援 msi或者 msi x 中斷請求機制,而可以不支援 intx 中斷訊息。在 pcie 匯流排中,msi和 msi x 中斷機制使用...

第6章 MSI和MSI X中斷機制

在 pci匯流排中,所有需要提交中斷請求的裝置,必須能夠通過 intx 引腳提交中斷請求,而 msi機制是乙個可選機制。而在 pcie 匯流排中,pcie 裝置必須支援 msi或者 msi x 中斷請求機制,而可以不支援 intx 中斷訊息。在 pcie 匯流排中,msi和 msi x 中斷機制使用...

第6章 中斷和中斷處理程式 學習筆記

1 硬體傳送乙個中斷碼給cpu,該中斷碼被稱為中斷請求線 2 中斷服務例程 isr 他是裝置驅動程式的一部分,裝置驅動程式是用於管理裝置的核心 isr是被核心呼叫來響應中斷的,它執行於中斷上下文 3 中斷上下文 如網絡卡接收到資料告訴核心包到了,網絡卡在等核心的回答 同時網絡卡還有優化吞吐量等工作要...