PCI總線的組成結(jié)構(gòu)
如圖1?1所示在一個處理器系統(tǒng)中,與PCI總線相關(guān)的模塊包括,HOST主橋、PCI總線、PCI橋和PCI設(shè)備。PCI總線由HOST主橋和PCI橋推出,HOST主橋與主存儲器控制器在同一級總線上,PCI設(shè)備可以方便地通過HOST主橋訪問主存儲器,即進行DMA操作。
值得注意的是,PCI設(shè)備的DMA操作需要與處理器系統(tǒng)的Cache進行一致性操作,當PCI設(shè)備通過HOST主橋訪問主存儲器時,Cache一致性模塊將進行地址監(jiān)聽,并根據(jù)監(jiān)聽的結(jié)果改變Cache的狀態(tài)。
在一些簡單的處理器系統(tǒng)中,可能不含有PCI橋,此時所有PCI設(shè)備都是連接在HOST主橋推出的PCI總線上,此外在一些處理器系統(tǒng)中可能含有多個HOST主橋,如在圖1?1所示的處理器系統(tǒng)中含有HOST主橋x和HOST主橋Y。
1.1.1HOST主橋
HOST主橋是一個很特別的橋片,其主要功能是隔離處理器系統(tǒng)的存儲器域與處理器系統(tǒng)的PCI總線域,管理PCI總線域,并完成處理器與PCI設(shè)備間的數(shù)據(jù)交換。處理器與PCI設(shè)備間的數(shù)據(jù)交換主要由“處理器訪問PCI設(shè)備的地址空間”和“PCI設(shè)備使用DMA機制訪問主存儲器”這兩部分組成。
為簡便起見,下文將處理器系統(tǒng)的存儲器域簡稱為存儲器域,而將處理器系統(tǒng)的PCI總線域稱為PCI總線域,存儲器域和PCI總線域的詳細介紹見第2.1節(jié)。值得注意的是,在一個處理器系統(tǒng)中,有幾個HOST主橋,就有幾個PCI總線域。
HOST主橋在處理器系統(tǒng)中的位置并不相同,如PowerPC處理器將HOST主橋與處理器集成在一個芯片中。而有些處理器不進行這種集成,如x86處理器使用南北橋結(jié)構(gòu),處理器內(nèi)核在一個芯片中,而HOST主橋在北橋中。但是從處理器體系結(jié)構(gòu)的角度上看,這些集成方式并不重要。
PCI設(shè)備通過HOST主橋訪問主存儲器時,需要與處理器的Cache進行一致性操作,因此在設(shè)計HOST主橋時需要重點考慮Cache一致性操作。在HOST主橋中,還含有許多數(shù)據(jù)緩沖,以支持PCI總線的預(yù)讀機制。
HOST主橋是聯(lián)系處理器與PCI設(shè)備的橋梁。在一個處理器系統(tǒng)中,每一個HOST主橋都管理了一顆PCI總線樹,在同一顆PCI總線樹上的所有PCI設(shè)備屬于同一個PCI總線域。如圖1?1所示,HOST主橋x之下的PCI設(shè)備屬于PCI總線x域,而HOST主橋y之下的PCI設(shè)備屬于PCI總線y域。在這顆總線樹上的所有PCI設(shè)備的配置空間都由HOST主橋通過配置讀寫總線周期訪問。
如果HOST主橋支持PCI V3.0規(guī)范的Peer-to-Peer數(shù)據(jù)傳送方式,那么分屬不同PCI總線域的PCI設(shè)備可以直接進行數(shù)據(jù)交換。如圖1?1所示,如果HOST主橋y支持Peer-to-Peer數(shù)據(jù)傳送方式,PCI設(shè)備y01可以直接訪問PCI設(shè)備01或者PCI設(shè)備11,而不需要通過處理器的參與。但是這種跨越總線域的數(shù)據(jù)傳送方式在PC架構(gòu)中并不常用,在PC架構(gòu)中,重點考慮的是PCI設(shè)備與主存儲器之間的數(shù)據(jù)交換,而不是PCI設(shè)備之間的數(shù)據(jù)交換。此外在PC架構(gòu)中,具有兩個HOST主橋的處理器系統(tǒng)也并不多見。
在PowerPC處理器中,HOST主橋可以通過設(shè)置Inbound寄存器,使得分屬于不同PCI總線域的設(shè)備可以直接通信。許多PowerPC處理器都具有多個HOST主橋,有關(guān)PowerPC處理器使用的HOST主橋詳見第2.2節(jié)。
評論