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


1.3 PCI總線的存儲器讀寫總線事務

總線的基本任務是實現數據傳送,將一組數據從一個設備傳送到另一個設備,當然總線也可以將一個設備的數據廣播到多個設備。在處理器係統中,這些數據傳送都要依賴一定的規則,PCI總線並不例外。

PCI總線使用單端並行數據線,采用地址譯碼方式進行數據傳遞,而采用ID譯碼方式進行配置信息的傳遞。其中地址譯碼方式使用地址信號,而ID譯碼方式使用PCI設備的ID號,包括Bus NumberDevice NumberFunction NumberRegister Number。下文將以1?1中的處理器係統為例,簡要介紹PCI總線支持的總線事務及其傳送方式。

1?2所示,PCI總線支持多種總線事務。而本節重點介紹存儲器讀寫總線事務,I/O讀寫總線事務,並在第2.4節詳細介紹配置讀寫總線事務。值得注意的是,PCI設備隻有在係統軟件初始化配置空間之後,才能夠被其他主設備訪問。

PCI設備的配置空間被初始化之後,該設備在當前的PCI總線樹上將擁有一個獨立的PCI總線地址空間,即BAR((Base Address Register)寄存器所描述的空間,有關BAR寄存器的詳細說明見第2.3.2節。

處理器與PCI設備進行數據交換,或者PCI設備之間進行存儲器數據交換時,都將通過PCI總線地址完成。而PCI設備與主存儲器進行DMA操作時,使用的也是PCI總線域的地址,而不是存儲器域的地址,此時HOST主橋將完成PCI總線地址到存儲器域地址的轉換,不同的HOST主橋進行地址轉換時使用的方法並不相同。

PCI總線的配置讀寫總線事務與HOST主橋與PCI橋相關,因此讀者需要了解HOST主橋和PCI橋的詳細實現機製之後,才能深入理解這部分內容。本篇將在第2.4節詳細介紹這些內容。在下文中,我們假定所使用的PCI設備的配置空間已經被係統軟件初始化。

PCI總線支持以下幾類存儲器讀寫總線事務。

(1)      HOST處理器對PCI設備的BAR空間進行數據讀寫,BAR空間可以使用存儲器或者I/O譯碼方式。HOST處理器使用PCI總線的存儲器讀寫總線事務和I/O讀寫總線事務訪問PCI設備的BAR空間。

(2)      PCI設備之間的數據傳遞。在PCI總線上的兩個設備可以直接通信,如一個PCI設備可以訪問另外一個設備的BAR空間。不過這種數據傳遞在PC處理器係統中,較少使用。

(3)      PCI設備對主存儲器進行讀寫,即DMA讀寫操作。DMA讀寫操作在所有處理器係統中都較為常用,也是PCI總線數據傳送的重點所在。在多數情況下,DMA讀寫操作結束後將伴隨著中斷的產生。PCI設備可以使用INTA#INTB#INTC#INTD#信號提交中斷請求,也可以使用MSI機製提交中斷請求。

1.3.1 PCI總線事務的時序

PCI總線使用第1.2節所述的信號進行數據和配置信息的傳遞,一個PCI總線事務的基本訪問時序如1?3所示,與PCI總線事務相關的控製信號有FRAME#IRDY#TRDY#DEVSEL#等其他信號。

 

1.3 PCI總線的存儲器讀寫總線事務 - maoxingbing - 毛毛蟲的爹

當一個PCI主設備需要使用PCI總線時,需要首先發送REQ#信號,通過總線仲裁獲得總線使用權,即GNT#信號有效後,使用以下步驟完成一個完整PCI總線事務,對目標設備進行存儲器或者I/O地址空間的讀寫訪問。

(1)      PCI主設備獲得總線使用權之後,將在CLK1的上升沿置FRAME#信號有效,啟動PCI總線事務。當PCI總線事務結束後,FRAME#信號將被置為無效。

(2)      PCI總線周期的第一個時鍾周期(CLK1的上升沿到CLK2的上升沿之間)為地址周期。在地址周期中,PCI主設備將訪問的目的地址和總線命令分別驅動到AD[31:0]C/BE#信號上。如果當前總線命令是配置讀寫,那麼IDSEL信號線也被置為有效,IDSEL信號與PCI總線的AD[31:11]相連,詳見第2.4.4節。

(3)      IRDY#TRDY#DEVSEL#信號都有效後,總線事務將使用數據周期,進行數據傳遞。當IRDY#TRDY#信號沒有同時有效時,PCI總線不能進行數據傳遞,PCI總線使用這兩個信號進行傳送控製。

(4)      PCI總線支持突發周期,因此在地址周期之後可以有多個數據周期,可以傳送多組數據。而目標設備並不知道突發周期的長度,如果目標設備不能繼續接收數據時,可以disconnect當前總線事務。值得注意的是,隻有存儲器讀寫總線事務可以使用突發周期。

一個完整的PCI總線事務遠比上述過程複雜的多,因為PCI總線還支持許多傳送方式,如雙地址周期、fast back-to-back(快速背靠背)、插入等待狀態、重試和斷連、總線上的錯誤處理等一係列總線事務。本篇不一一介紹這些傳送方式。

1.3.2 PostedNon-Posted傳送方式

PCI總線規定了兩類數據傳送方式,分別是PostedNon-Posted數據傳送方式。其中使用Posted數據傳送方式的總線事務也被稱為Posted總線事務;而使用Non-Posted數據傳送方式的總線事務也被稱為Non-Posted總線事務。

其中Posted總線事務指PCI主設備向PCI目標設備進行數據傳遞時,當數據到達PCI橋後,即由PCI橋接管來自上遊總線的總線事務,並將其轉發到下遊總線。采用這種數據傳送方式,在數據還沒有到達最終的目的地之前,PCI總線就可以結束當前總線事務,從而在一定程度上解決了PCI總線的擁塞。

Non-Posted總線事務是指PCI主設備向PCI目標設備進行數據傳遞時,數據必須到達最終目的地之後,才能結束當前總線事務的一種數據傳遞方式。

顯然采用Posted傳送方式,當這個Posted總線事務通過某條PCI總線後,就可以釋放PCI總線的資源;而采用Non-Posted傳送方式,PCI總線在沒有結束當前總線事務時必須等待。這種等待將嚴重阻塞當前PCI總線上的其他數據傳送,因此PCI總線使用Delayed總線事務處理Non-Posted數據請求,使用Delayed總線事務可以相對緩解PCI總線的擁塞。Delayed總線事務的詳細介紹見第1.3.5節。

PCI總線規定隻有存儲器寫請求(包括存儲器寫並無效請求)可以采用Posted總線事務,下文將Posted存儲器寫請求簡稱為PMW(Posted Memory Write),而存儲器讀請求、I/O讀寫請求、配置讀寫請求隻能采用Non-Posted總線事務。

下文以1?1的處理器係統中的PCI設備11向存儲器進行DMA寫操作為例,說明Posted傳送方式的實現過程。PCI設備11進行DMA寫操作時使用存儲器寫總線事務,當PCI設備11獲得PCI總線x1的使用權後,將發送存儲器寫總線事務到PCI總線x1。當PCI1發現這個總線事務的地址不在該橋管理的地址範圍內將首先接收這個總線事務,並結束PCI總線x1的總線事務。

此時PCI總線x1使用的資源已被釋放,PCI設備11PCI設備12可以使用PCI總線x1進行通信。PCI1獲得PCI總線x0的使用權後,將轉發這個存儲器寫總線事務到PCI總線x0,之後HOST主橋x將接收這個存儲器寫總線事務,並最終將數據寫入主存儲器。

由以上過程可以發現,Posted數據請求在通過PCI總線之後,將逐級釋放總線資源,因此PCI總線的利用率較高。而使用Non-Posted方式進行數據傳送的處理過程與此不同,Non-Posted數據請求在通過PCI總線時,並不會及時釋放總線資源,從而在某種程度上影響PCI總線的使用效率和傳送帶寬。

1.3.3 HOST處理器訪問PCI設備

HOST處理器對PCI設備的數據訪問主要包含兩方麵內容,一方麵是處理器向PCI設備發起存儲器和I/O讀寫請求;另一方麵是處理器對PCI設備進行配置讀寫。

PCI設備的配置空間中,共有6BAR寄存器。每一個BAR寄存器都與PCI設備使用的一組PCI總線地址空間對應,BAR寄存器記錄這組地址空間的基地址。本書將與BAR寄存器對應的PCI總線地址空間稱為BAR空間,在BAR空間中可以存放I/O地址空間,也可以存放存儲器地址空間。

PCI設備可以根據需要,有選擇地使用這些BAR空間。值得注意的是,在BAR寄存器中存放的是PCI設備使用的“PCI總線域”的物理地址,而不是“存儲器域”的物理地址,有關BAR寄存器的詳細介紹見第2.3.2節。

HOST處理器訪問PCI設備I/O地址空間的過程,與訪問存儲器地址空間略有不同。有些處理器,如x86處理器,具有獨立的I/O地址空間。x86處理器可以將PCI設備使用的I/O地址映射到存儲器域的I/O地址空間中,之後處理器可以使用INOUT等指令對存儲器域的I/O地址進行訪問,然後通過HOST主橋將存儲器域的I/O地址轉換為PCI總線域的I/O地址,最後使用PCI總線的I/O總線事務對PCI設備的I/O地址進行讀寫訪問。在x86處理器中,存儲器域的I/O地址與PCI總線域的I/O地址相同。

對於有些沒有獨立I/O地址空間的處理器,如PowerPC處理器,需要在HOST主橋初始化時,將PCI設備使用的I/O地址空間映射為處理器的存儲器地址空間。PowerPC處理器對這段“存儲器域”的存儲器空間進行讀寫訪問時,HOST主橋將存儲器域的這段存儲器地址轉換為PCI總線域的I/O地址,然後通過PCI總線的I/O總線事務對PCI設備的I/O地址進行讀寫操作。

PCI總線中,存儲器讀寫事務與I/O讀寫事務的實現較為類似。首先HOST處理器在初始化時,需要將PCI設備使用的BAR空間映射到“存儲器域”的存儲器地址空間。之後處理器通過存儲器讀寫指令訪問“存儲器域”的存儲器地址空間,HOST主橋將“存儲器域”的讀寫請求翻譯為PCI總線的存儲器讀寫總線事務之後,再發送給目標設備。

值得注意的是,存儲器域和PCI總線域的概念,PCI設備能夠直接使用的地址為PCI總線域的地址,在PCI總線事務中出現的地址也為PCI總線域的地址;而處理器能夠直接使用的地址為存儲器域的地址。理解存儲器域與PCI總線域的區別對於理解PCI總線至關重要,本篇將在第2.1節專門討論這兩個概念。

以上對PCI總線的存儲器與I/O總線事務的介紹並沒有考慮PCI橋的存在,如果將PCI橋考慮進來,情況將略微複雜一些。下文將以1?1為例說明處理器如何通過HOST主橋和PCI1PCI設備11進行存儲器讀寫操作。當處理器對PCI設備11進行存儲器寫操作時,這些數據需要通過HOST主橋xPCIx1,最終到達PCI設備11,其訪問步驟如下。值得注意的是,以下步驟忽略PCI總線的仲裁過程。

(1)      首先處理器將要傳遞的數據放入通用寄存器中,之後向PCI設備11映射到的存儲器域的地址進行寫操作。值得注意的是,處理器並不能直接訪問PCI設備11PCI總線地址空間,因為這些地址空間是屬於PCI總線域的,處理器所能直接訪問的空間是存儲器域的地址空間。處理器必須通過HOST主橋將存儲器域的數據訪問轉換為PCI總線事務才能對PCI總線地址空間進行訪問。

(2)      HOST主橋x接收來自處理器的存儲器寫請求,之後處理器結束當前存儲器寫操作,釋放係統總線。HOST主橋x將存儲器域的存儲器地址轉換為PCI總線域的PCI總線地址。並向PCI總線x0發起PCI寫請求總線事務。值得注意的是,雖然在許多處理器係統中,存儲器地址和PCI總線地址完全相等,但其含義完全不同。

(3)      PCI總線x0上的PCI設備01PCI設備02PCI1將同時監聽這個PCI寫總線事務。最後PCIx1接收這個寫總線事務,並結束來自PCI總線x0PCI總線事務。之後PCIx1PCI總線x1發起新的PCI總線寫總線事務。

(4)      PCI總線x1上的PCI設備11PCI設備12同時監聽這個PCI寫總線事務。最後PCI設備11通過地址譯碼方式接收這個寫總線事務,並結束來自PCI總線x1上的PCI總線事務。

由以上過程可以發現,由於存儲器寫總線事務使用Posted傳送方式,因此數據通過PCI橋後都將結束上一級總線的PCI總線事務,從而上一級PCI總線可以被其他PCI設備使用。如果使用Non-Posted傳送方式,直到數據發送到PCI設備11之後,PCI總線x1x0才能依次釋放,從而在某種程度上將造成PCI總線的擁塞。

處理器對PCI設備11進行I/O寫操作時隻能采用Non-Posted方式進行,與Posted方式相比,使用Non-Posted方式,當數據到達目標設備後,目標設備需要向主設備發出“回應”,當主設備收到這個“回應”後才能結束整個總線事務。本節不再講述處理器如何對PCI設備進行I/O寫操作,請讀者思考這個過程。

處理器對PCI設備11進行存儲器讀時,這個讀請求需要首先通過HOST主橋xPCIx1到達PCI設備,之後PCI設備將讀取的數據再次通過PCIx1HOST主橋x傳遞給HOST處理器,其步驟如下所示。我們首先假設PCI總線沒有使用Delayed傳送方式處理Non-Posted總線事務,而是使用純粹的Non-Posted方式。

(1)      首先處理器準備接收數據使用的通用寄存器,之後向PCI設備11映射到的存儲器域的地址進行讀操作,

(2)      HOST主橋x接收來自處理器的存儲器讀請求。HOST主橋x進行存儲器地址到PCI總線地址的轉換,之後向PCI總線x0發起存儲器讀總線事務。

(3)      PCI總線x0上的PCI設備01PCI設備02PCIx1將監聽這個存儲器讀請求,之後PCI1接收這個存儲器讀請求。然後PCIx1PCI總線x1發起新的PCI總線讀請求。

(4)      PCI總線x1上的PCI設備11PCI設備12監聽這個PCI讀請求總線事務。最後PCI設備11接收這個存儲器讀請求總線事務,並將這個讀請求總線事務轉換為存儲器讀完成總線事務之後,將數據傳送到PCIx1,並結束來自PCI總線x1上的PCI總線事務。

(5)      PCIx1將接收到的數據通過PCI總線x0,繼續上傳到HOST主橋x,並結束PCI總線x0上的PCI總線事務。

(6)      HOST主橋x將數據傳遞給處理器,最終結束處理器的存儲器讀操作。

顯然這種方式與Posted傳送方式相比,PCI總線的利用率較低。因為隻要HOST處理器沒有收到來自目標設備的“回應”,那麼HOST處理器到目標設備的傳送路徑上使用的所有PCI總線都將被阻塞。因而PCI總線x0x1並沒有被充分利用。

由以上例子,我們可以發現隻有“讀完成”依次通過PCI總線x1x0之後,存儲器讀總線事務才不繼續占用PCI總線x1x0的資源,顯然這種數據傳送方式並不合理。因此PCI總線使用Delayed傳送方式解決這個總線擁塞問題,有關Delayed傳送方式的實現機製見第1.3.5節。

1.3.4 PCI設備讀寫主存儲器

PCI設備與存儲器直接進行數據交換的過程也被稱為DMA。與其他總線的DMA過程類似,PCI設備進行DMA操作時,需要獲得數據傳送的目的地址和傳送大小。支持DMA傳遞的PCI設備可以在其BAR空間中設置兩個寄存器,分別保存這個目標地址和傳送大小。這兩個寄存器也是PCI設備DMA控製器的組成部件。

值得注意的是,PCI設備進行DMA操作時,使用的目的地址是PCI總線域的物理地址,而不是存儲器域的物理地址,因為PCI設備並不能識別存儲器域的物理地址,而僅能識別PCI總線域的物理地址。

HOST主橋負責完成PCI總線地址到存儲器域地址的轉換。HOST主橋需要進行合理設置,將存儲器的地址空間映射到PCI總線之後,PCI設備才能對這段存儲器空間進行DMA操作。PCI設備不能直接訪問沒有經過主橋映射的存儲器空間。

許多處理器允許PCI設備訪問所有存儲器域地址空間,但是有些處理器可以設置PCI設備所能訪問的存儲器域地址空間,從而對存儲器域地址空間進行保護。例如PowerPC處理器的HOST主橋可以使用Inbound寄存器組,設置PCI設備訪問的存儲器地址範圍和屬性,隻有在Inbound寄存器組映射的存儲器空間才能被PCI設備訪問,本篇將在第2.2節詳細介紹PowerPC處理器的這組寄存器。

由上所述,在一個處理器係統中,並不是所有存儲器空間都可以被PCI設備訪問,隻有在PCI總線域中有映像的存儲器空間才能被PCI設備訪問。經過HOST主橋映射的存儲器,具有兩個“地址”,一個是在存儲器域的地址,一個是在PCI總線域的PCI總線地址。當處理器訪問這段存儲器空間時,使用存儲器地址;而PCI設備訪問這段內存時,使用PCI總線地址。在多數處理器係統中,存儲器地址與PCI總線地址相同,但是係統程序員需要正確理解這兩個地址的區別。

下文以PCI設備11向主存儲器寫數據為例,說明PCI設備如何進行DMA寫操作。

(1)      首先PCI設備11將存儲器寫請求發向PCI總線x1,注意這個寫請求使用的地址是PCI總線域的地址。

(2)      PCI總線x1上的所有設備監聽這個請求,因為PCI設備11是向處理器的存儲器寫數據,所以PCI總線x1上的PCI Agent設備都不會接收這個數據請求。

(3)      PCIx1發現當前總線事務使用的PCI總線地址不是其下遊設備使用的PCI總線地址,則接收這個數據請求,有關PCI橋的Secondary總線接收數據的過程見第3.2.1節。此時PCIx1將結束來自PCI設備11Posted存儲器寫請求,並將這個數據請求推到上遊PCI總線上,即PCI總線x0上。

(4)      PCI總線x0上的所有PCI設備包括HOST主橋將監聽這個請求。PCI總線x0上的PCI Agent設備也不會接收這個數據請求,此時這個數據請求將由HOST主橋x接收,並結束PCIx1Posted存儲器寫請求。

(5)      HOST主橋x發現這個數據請求發向存儲器,則將來自PCI總線x0PCI總線地址轉換為存儲器地址,之後通過存儲器控製器將數據寫入存儲器,完成PCI設備的DMA寫操作。

PCI設備進行DMA讀過程與DMA寫過程較為類似。不過PCI總線的存儲器讀總線事務隻能使用Non-Posted總線事務,其過程如下。

(1)      首先PCI設備11將存儲器讀請求發向PCI總線x1

(2)      PCI總線x1上的所有設備監聽這個請求,因為PCI設備11是從存儲器中讀取數據,所以PCI總線x1上的設備,如PCI設備12,不會接收這個數據請求。PCIx1發現下遊PCI總線沒有設備接收這個數據請求,則接收這個數據請求,並將這個數據請求推到上遊PCI總線上,即PCI總線x0上。

(3)      PCI總線x0上的設備將監聽這個請求。PCI總線x0上的設備也不會接收這個數據請求,最後這個數據請求將由HOST主橋x接收。

(4)      HOST主橋x發現這個數據請求是發向主存儲器,則將來自PCI總線x0PCI總線地址轉換為存儲器地址,之後通過存儲器控製器將數據讀出,並轉發到HOST主橋x

(5)      HOST主橋x將數據經由PCIx1傳遞到PCI設備11PCI設備11接收到這個數據後結束DMA讀。

以上過程僅是PCI設備向存儲器讀寫數據的一個簡單流程。如果考慮處理器中的Cache,這些存儲器讀寫過程較為複雜。

PCI總線還允許PCI設備之間進行數據傳遞,PCI設備間的數據交換較為簡單。在實際應用中,PCI設備間的數據交換並不常見。下文以1?1為例,簡要介紹PCI設備11將數據寫入PCI設備01的過程;請讀者自行考慮PCI設備11PCI設備01讀取數據的過程。

(1)      首先PCI設備11PCI寫總線事務發向PCI總線x1上。PCIx1PCI設備12同時監聽這個寫總線事務。

(2)      PCIx1將接收這個PCI寫請求總線事務,並將這個PCI寫總線事務上推到PCI總線x0

(3)      PCI總線x0上的所有設備將監聽這個PCI寫總線事務,最後由PCI設備01接收這個數據請求,並完成PCI寫事務。

1.3.5 Delayed傳送方式

如上文所述,如果處理器使用Non-Posted總線周期對PCI設備進行讀操作,或者PCI設備使用Non-Posted總線事務對存儲器進行讀操作時,如果數據沒有到達目的地,那麼在這個讀操作路徑上的所有PCI總線都不能被釋放,這將嚴重影響PCI總線的使用效率。

為此PCI橋需要對Non-Posted總線事務進行優化處理,並使用Delayed總線事務處理這些Non-Posted總線事務,PCI總線規定隻有Non-Posted總線事務可以使用Delayed總線事務。PCI總線的Delay總線事務由Delay讀寫請求和Delay讀寫完成總線事務組成,當Delay讀寫請求到達目的地後,將被轉換為Delay讀寫完成總線事務。基於Delay總線請求的數據交換如1?4所示。

 1.3 PCI總線的存儲器讀寫總線事務

    假設處理器通過存儲器讀、I/O讀寫或者配置讀寫訪問PCI設備22時,首先經過HOST主橋進行存儲器域與PCI總線域的地址轉換,並由HOST主橋發起PCI總線事務,然後通過PCI12,最終到達PCI設備22。其詳細步驟如下。

(1)      HOST主橋完成存儲器域到PCI總線域的轉換,然後啟動PCI讀總線事務。

(2)      PCI1接收這個讀總線事務,並首先使用Retry周期,使HOST主橋擇時重新發起相同的總線周期。此時PCI1的上遊PCI總線將被釋放。值得注意的是PCI橋並不會每一次都使用Retry周期,使上遊設備擇時進行重試操作。在PCI總線中,有一個“16 Clock”原則,即FRAME#信號有效後,必須在16個時鍾周期內置為無效,如果PCI橋發現來自上遊設備的讀總線事務不能在16個時鍾周期內結束時,則使用Retry周期終止該總線事務。

(3)      PCI1使用Delayed總線請求繼續訪問PCI設備22

(4)      PCI2接收這個總線請求,並將這個Delayed總線請求繼續傳遞。此時PCI2也將首先使用Retry周期,使PCI1擇時重新發起相同的總線周期。此時PCI2的上遊PCI總線被釋放。

(5)      這個數據請求最終到達PCI設備22,如果PCI設備22沒有將數據準備好時,也可以使用Retry周期,使PCI2擇時重新發起相同的總線周期;如果數據已經準備好,PCI設備22將接收這個數據請求,並將這個Delayed總線請求轉換為Delayed總線完成事務。如果Delayed總線請求是讀請求,則Delayed總線完成事務中含有數據,否則隻有完成信息,而不包含數據。

(6)      Delayed總線完成事務將“數據或者完成信息”傳遞給PCI2,當PCI1重新發出Non-Posted總線請求時,PCI2將這個“數據或者完成信息”傳遞給PCI1

(7)      HOST主橋重新發出存儲器讀總線事務時,PCI1將“數據或者完成信息”傳遞給HOST主橋,最終完成整個PCI總線事務。

由以上分析可知,Delayed總線周期由Delayed總線請求和Delayed總線完成兩部分組成。下文將Delayed讀請求總線事務簡稱為DRR(Delayed Read Request)Delayed讀完成總線事務簡稱為DRC(Delayed Read Completion);而將Delayed寫請求總線事務簡稱為DWR(Delayed Write Request)Delayed寫完成總線事務簡稱為DWC(Delayed Write Completion)

PCI總線使用Delayed總線事務,在一定程度上可以提高PCI總線的利用率。因為在進行Non-Posted總線事務時,Non-Posted請求在通過PCI橋之後,可以暫時釋放PCI總線,但是采用這種方式,HOST/PCI橋將會擇時進行重試操作。在許多情況下,使用Delayed總線事務,並不能取得理想的效果,因為過多的重試周期也將大量消耗PCI總線的帶寬。

為了進一步提高Non-Posted總線事務的執行效率,PCI-X總線將PCI總線使用的Delayed總線事務,升級為Split總線事務。采用Split總線事務可以有效解決HOST/PCI橋的這些重試操作。Split總線事務的基本思想是發送端首先將Non-Posted總線請求發送給接收端,然後再由接收端主動地將數據傳遞給發送端。

除了PCI-X總線可以使用Split總線事務進行數據傳送之外,有些處理器,如x86PowerPC處理器的FSB(Front Side Bus)總線也支持這種Split總線事務,因此這些HOST主橋也可以發起這種Split總線事務。在PCIe總線中,Non-Posted數據傳送都使用Split總線事務完成,而不再使用Delayed總線事務。本章將在第1.5.1節簡要介紹Split總線事務和PCI-X總線對PCI總線的一些功能上的增強。



如果是存儲器、I/O讀或者配置讀總線事務,這個回應包含數據;如果是I/O寫或者配置寫,這個回應不包含數據。

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

  上一篇:go linux內核體係結構
  下一篇:go 第3章 PCI總線的數據交換