在
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 中斷上下文 如網絡卡接收到資料告訴核心包到了,網絡卡在等核心的回答 同時網絡卡還有優化吞吐量等工作要...