新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PCI總線的存儲器讀寫總線事務

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

作者: 時間:2016-12-15 來源:網(wǎng)絡 收藏
總線的基本任務是實現(xiàn)數(shù)據(jù)傳送,將一組數(shù)據(jù)從一個設備傳送到另一個設備,當然總線也可以將一個設備的數(shù)據(jù)廣播到多個設備。在處理器系統(tǒng)中,這些數(shù)據(jù)傳送都要依賴一定的規(guī)則,PCI總線并不例外。

PCI總線使用單端并行數(shù)據(jù)線,采用地址譯碼方式進行數(shù)據(jù)傳遞,而采用ID譯碼方式進行配置信息的傳遞。其中地址譯碼方式使用地址信號,而ID譯碼方式使用PCI設備的ID號,包括Bus Number、Device Number、Function Number和Register Number。下文將以圖1?1中的處理器系統(tǒng)為例,簡要介紹PCI總線支持的總線事務及其傳送方式。

本文引用地址:http://www.2s4d.com/article/201612/330476.htm

如表1?2所示,PCI總線支持多種總線事務。而本節(jié)重點介紹存儲器讀寫總線事務,I/O讀寫總線事務,并在第2.4節(jié)詳細介紹配置讀寫總線事務。值得注意的是,PCI設備只有在系統(tǒng)軟件初始化配置空間之后,才能夠被其他主設備訪問。

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

處理器與PCI設備進行數(shù)據(jù)交換,或者PCI設備之間進行存儲器數(shù)據(jù)交換時,都將通過PCI總線地址完成。而PCI設備與主存儲器進行DMA操作時,使用的也是PCI總線域的地址,而不是存儲器域的地址,此時HOST主橋?qū)⑼瓿蒔CI總線地址到存儲器域地址的轉(zhuǎn)換,不同的HOST主橋進行地址轉(zhuǎn)換時使用的方法并不相同。

PCI總線的配置讀寫總線事務與HOST主橋與PCI橋相關(guān),因此讀者需要了解HOST主橋和PCI橋的詳細實現(xiàn)機制之后,才能深入理解這部分內(nèi)容。本篇將在第2.4節(jié)詳細介紹這些內(nèi)容。在下文中,我們假定所使用的PCI設備的配置空間已經(jīng)被系統(tǒng)軟件初始化。

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

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

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

(3)PCI設備對主存儲器進行讀寫,即DMA讀寫操作。DMA讀寫操作在所有處理器系統(tǒng)中都較為常用,也是PCI總線數(shù)據(jù)傳送的重點所在。在多數(shù)情況下,DMA讀寫操作結(jié)束后將伴隨著中斷的產(chǎn)生。PCI設備可以使用INTA#、INTB#、INTC#和INTD#信號提交中斷請求,也可以使用MSI機制提交中斷請求。

1.3.1PCI總線事務的時序

PCI總線使用第1.2節(jié)所述的信號進行數(shù)據(jù)和配置信息的傳遞,一個PCI總線事務的基本訪問時序如圖1?3所示,與PCI總線事務相關(guān)的控制信號有FRAME#、IRDY#、TRDY#、DEVSEL#等其他信號。


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

(1)當PCI主設備獲得總線使用權(quán)之后,將在CLK1的上升沿置FRAME#信號有效,啟動PCI總線事務。當PCI總線事務結(jié)束后,F(xiàn)RAME#信號將被置為無效。

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

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

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

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

1.3.2Posted和Non-Posted傳送方式

PCI總線規(guī)定了兩類數(shù)據(jù)傳送方式,分別是Posted和Non-Posted數(shù)據(jù)傳送方式。其中使用Posted數(shù)據(jù)傳送方式的總線事務也被稱為Posted總線事務;而使用Non-Posted數(shù)據(jù)傳送方式的總線事務也被稱為Non-Posted總線事務。

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

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

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

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


上一頁 1 2 3 下一頁

關(guān)鍵詞: PCI總線存儲器讀寫總

評論


技術(shù)專區(qū)

關(guān)閉