閱讀452 返回首頁    go 阿裏雲 go 技術社區[雲棲]


第6章 MSI和MSI-X中斷機製

PCI總線中,所有需要提交中斷請求的設備,必須能夠通過INTx引腳提交中斷請求,而MSI機製是一個可選機製。而在PCIe總線中,PCIe設備必須支持MSI或者MSI-X中斷請求機製,而可以不支持INTx中斷消息。

PCIe總線中,MSIMSI-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中斷方式。但是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中斷機製提交中斷請求。

MSIMSI-X機製的基本原理相同,其中MSI中斷機製最多隻能支持32個中斷請求,而且要求中斷向量連續,而MSI-X中斷機製可以支持更多的中斷請求,而並不要求中斷向量連續。與MSI中斷機製相比,MSI-X中斷機製更為合理。本章將首先介紹MSI/MSI-X Capability結構,之後分別以PowerPC處理器和x86處理器為例介紹MSIMSI-X中斷機製。



通過發送Assert_INTxDeassert_INTx消息報文進行中斷請求,即虛擬中斷線方式。

最後更新:2017-04-03 16:48:37

  上一篇:go 2.1 存儲器域與PCI總線域
  下一篇:go POJ 3407 求球麵距離