pcie的msi與msi-x-串行VS並行

http://blog.csdn.net/dog250/article/details/6313280

    之所以可以實現如此的msi中的message,是因爲pcie不僅僅是一條總線,而是一套協議,它是串行的,而非傳統總線的並行形式,串行總線最適合定義協議了,然而不管怎樣,cpu引腳以及其局部總線(前端總線)是並行的,因此針對於pcie,有一個稱爲root complex的傢伙負責並串轉換。由於pcie實現複雜的協議,因此它的一個端點可以往root complex發送一個消息,root complex接收到一個msi時,它會將這個message轉換,依然向cpu的intr引腳發送一個高電平,然後cpu的inta引腳拉低的時候root complex將msi中取出的中斷號取出來發送到數據總線上,也就是說,root complex代替pcie總線上連接的設備發送了intr高電平給cpu,然後代替各個設備發送了中斷號給cpu處理,因此就解除了cpu和各個設備之間的耦合,只要root complex這個二傳手負責二者的交互即可。
     在傳統的pci中斷體系中,每一個pci總線上的設備被分配一個特定的中斷號,然後當設備需要中斷cpu時,設備直接發出int信號,然後在cpu的inta引腳拉低的時候將自己的中斷號放在數據總線上,一切都要設備自己負責,這一切的緣由一部分就是因爲pci的並行性,實現事務很複雜,而pcie是串行的,很容易定義協議包,因此很容易就實現了由root complex代理中斷的功能,因此設備也就可以動態的分配獨佔的中斷號了,因爲中斷號的分配完全是軟件解決的,而不再像傳統pci那樣是硬件解決的了,軟件的最大特點就是其靈活性,因此pcie更適合大量設備的環境,中斷處理程序再也不需要大量遍歷共享中斷號的設備來確定中斷源了。
     聯想一下以太網,或者ip網,它們的成功不是硬件的複雜性和高效性,而是不失高效性下的靈活性,這些體系或者機制的共同點就是它們的總線都是串行的,串行的總線可以方便的實現協議,而不用考慮並行同步的問題,這些協議是基於握手的,因此這些協議比硬件硬連線實現的機制更加靈活,如果採用硬連線並行機制,我們除了得到了短距離的快速傳輸外,幾乎無法傳輸任何控制信息,還需要另外的控制總線和相關的時序,這就增加了芯片引腳的數量和集成電路設備的複雜性,因此串行線路在更高層次上是比並行線路更具有優勢的,並行線路需要額外的控制電路時序來提供約束,而串行線路只需要協議包本身就可以提供約束。
附:一張可以體現pcie的圖

pcie

發佈了15 篇原創文章 · 獲贊 9 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章