1.5 PCI-X總線簡介
PCI-X總線仍采用並行總線技術。PCI-X總線使用的大多數總線事務基於PCI總線,但是在實現細節上略有不同。PCI-X總線將工作頻率提高到533MHz,並首先引入了PME(Power Management Event)機製。除此之外,PCI-X總線還提出了許多新的特性。
1.5.1 Split總線事務
Split總線事務是PCI-X總線一個重要特性。該總線事務替代了PCI總線的Delayed數據傳送方式,從而提高了Non-Posted總線事務的傳送效率。下文以存儲器讀為例,說明PCI-X設備如何使用Split總線事務。
PCI-X總線在進行存儲器讀總線事務時,總線事務的發起方(Requester)使用Split總線事務與總線事務接收端(Completer)進行數據交換,其步驟如下。
(1) Requester向Completer發起存儲器讀請求總線事務。
(2) 這個存儲器讀請求在到達Completer之前,可能會經過多級PCI-X橋。這些PCI-X橋使用Split Response周期結束當前總線事務,釋放上遊PCI總線。之後繼續轉發這個存儲器讀請求,直到Completer認領這個存儲器讀請求總線事務。
(3) Completer認領存儲器讀請求總線事務後,將記錄將Requester的ID號,並使用Split Response周期結束存儲器讀請求總線事務。
(4) Completer準備好數據後,將重新申請總線,並使用存儲器讀完成總線事務主動地將數據傳送給Requester。在這個完成報文中包含Requester的ID號,因為完成報文使用ID路由而不是地址路由。
(5) 這些完成報文根據ID路由方式,最終到達Requester。Requester從完成報文中接收數據並完成整個存儲器讀請求。
與Delayed總線事務相比,Requester獲得的數據是Completer將數據完全準備好後,由Completer主動傳遞的,而不是通過Requester通過多次重試獲得的,因此能夠提高PCI-X總線的使用效率。PCI-X總線提出的Split總線事務被PCIe總線繼承。
1.5.2 總線傳送協議
PCI-X總線改變了PCI總線使用的傳送協議。目標設備可以將主設備發送的命令鎖存,然後在下一個時鍾周期進行譯碼操作。與PCI總線事務相比,PCI-X總線采用的這種方式,雖然在總線時序中多使用了一個時鍾周期,但是可以有效提高PCI-X總線的運行頻率。
因為主設備通過數據線將命令發送到目標設備需要一定的延時。如果PCI總線頻率較高,目標設備很難在一個時鍾周期內接收完畢總線命令,並同時完成譯碼工作。而如果目標設備能夠將主設備發出的命令先進行鎖存,然後在下一個時鍾周期進行譯碼則可以有效解決這個譯碼時間Margin不足的問題,從而提高PCI-X總線的頻率。PCI-X 1.0總線可以使用的最高總線頻率為133MHz,而PCI-X 2.0總線可以使用的最高總線頻率為533Mhz,遠比PCI總線使用的總線頻率高。
除了信號傳送協議外,PCI-X總線在進行DMA讀寫時,可以不進行Cache共享一致性操作,而PCI總線進行DMA讀寫時必須進行Cache一致性操作。在某些特殊情況下,DMA讀寫時進行Cache共享一致性不但不能提高總線傳送效率,反而會降低。第3.3節將詳細討論與Cache一致性相關的PCI總線事務。
此外PCI-X總線還支持亂序總線事務,即Relaxed Ordering,該總線事務被PCIe總線繼承。對於某些應用,PCI-X設備使用Relaxed ordering方式,可以有效地提高數據傳送效率。但是支持Relaxed Ordering的設備,需要較多的數據緩存和硬件邏輯處理這些亂序,這為PCI-X設備的設計帶來了不小的困難。
1.5.3 基於數據塊的突發傳送
在PCI總線中,一次突發傳送的大小為2個以上的雙字,一次突發傳送所攜帶的數據越多時,突發傳送的總線利用率也越高。
而PCI總線的突發傳送仍然存在缺陷。在PCI總線中,數據發送端知道究竟需要發送多少字節的數據,但是接收端並不清楚到底需要接收多少數據。這種不確定性,為接收端的緩衝管理帶來了較大的挑戰。
為此PCI-X總線使用基於數據塊的突發傳送方式,發送端以ADB(Allowable Disconnect Boundary)為單位,將數據發送給接收端,一次突發讀寫為一個以上的ADB。采用這種方式,接收端可以事先預知是否有足夠的接收緩衝,接收來自發送端的數據,從而可以及時斷連當前總線周期,以節約PCI-X總線的帶寬。在PCI-X總線中,ADB的大小為128B。
由於ADB的引入,PCI總線與Cache相關的總線事務如Memory Read Line、Memory Read Multiline和Memory Write and Invalidate,都被PCI-X總線使用與ADB相關的總線事務替代。因為通過ADB,PCI-X橋(HOST主橋)可以準確地預知即將訪問的數據在Cache中的分布情況。
PCI-X總線還增加了一些其他特性,如在總線事務中增加傳送字節計數,限製等待狀態等機製,並增強了奇偶校驗的管理方式。但是PCI-X總線還沒有普及,就被PCIe總線替代。因此在PC領域和嵌入式領域很少有基於PCI-X總線的設備,PCI-X設備僅在一些高端服務器上出現。因此本節不對PCI-X總線做進一步描述。事實上,PCI-X總線的許多特性都被PCIe總線繼承。
1.6 小結
本章主要介紹了PCI總線的基本組成部件,PCI設備如何提交中斷請求,以及PCI-X總線對PCI總線的功能增強。本章的重點在於PCI總線的Posted和Non-Posted總線事務,以及PCI總線如何使用Delayed傳送方式處理Non-Posted總線事務,請讀者務必深入理解這兩種總線事務的不同。
最後更新:2017-04-03 16:48:37