PCI基礎(chǔ)知識
PCI基礎(chǔ)知識
PCI總線的組成:HOST橋、PCI橋、PCI設(shè)備
PCI采用的是樹型拓撲結(jié)構(gòu),每一個PCI device相當(dāng)于樹的一個結(jié)點或者葉子,對整個PCI Bus的遍歷可以采用遍歷樹的算法,在對樹進行遍歷之后,可以獲得整個PCI Bus的資源需求情況,從而進行統(tǒng)一的分配。
PCI總線上有多個設(shè)備,當(dāng)他們需要通信時,都必須向PCI總線仲裁器提出申請,當(dāng)?shù)玫皆试S后才能在總線中發(fā)送數(shù)據(jù)
PCI總線上的設(shè)備可以通過四根中斷請求信號INTA INTB INTC INTD向處理器發(fā)出中斷請求;其中INTA是單功能設(shè)備,其他的是多功能設(shè)備
總線x1上的通訊和總線x2上的通訊無關(guān),同一條總線上的設(shè)備可以自由通訊
PCI總線操作的一具典型的特點就是支持BURST傳輸。什么是BURST傳輸呢?首先你得知道PCI的數(shù)據(jù)總線和地址總線是復(fù)用的。這就是說在同樣的總線上,一段時間是地址,一段時間是傳輸數(shù)據(jù)。如果沒有BURST傳輸,那么完成一次數(shù)據(jù)傳輸之前都得發(fā)一次地址,這就是總線有一半的時間都在傳地址,這使得總線和利用率很低。有了BURST傳輸,可以先發(fā)一個起始地址和數(shù)據(jù)長度N, 之后傳輸數(shù)據(jù)0~N-1就可以直接發(fā)數(shù)據(jù),不用再發(fā)地址了。
PCI總線32位中,第一個16位表示域,第二個8位表示一個總線編號,第三個5位表示一個設(shè)備號,最后是3位,表示功能號。
在系統(tǒng)引導(dǎo)階段,PCI硬件設(shè)備保持未激活狀態(tài),但每個PCI主板均配備有能夠處理PCI的固件,固件通過讀寫PCI控制器中的寄存器,提供了對設(shè)備配置地址空間的訪問。
HOST橋
HOST主橋是用來隔離處理器的存儲器域與PCI總線域的特殊橋片,管理PCI總線域。在其所管理的PCI設(shè)備中所有設(shè)備的配置空間都由HOST主橋通過配置讀寫總線周期訪問的
PCI總線上的設(shè)備都有自己的設(shè)備地址,處理器空間地址和PCI總線地址通過HOST主橋進行隔離。(HOST主橋中有很多的寄存器,可以使得處理器工作的頻率和總線工作的頻率不一樣,通過寄存器緩存數(shù)據(jù),當(dāng)處理器需要訪問PCI設(shè)備時,需要通過HOST主橋進行地址轉(zhuǎn)換,把處理器地址轉(zhuǎn)換成PCI總線地址,然后才能訪問PCI設(shè)備;同理,PCI設(shè)備中的數(shù)據(jù)要想往外走,也要通過HOST主橋進行地址轉(zhuǎn)換。說到底,HOST主橋就是一個橋梁)
同一HOST橋中的設(shè)備可以通訊(HOST主橋可以通過設(shè)置Inbound寄存器來讓不同的PCI總線域中的設(shè)備進行通訊)
上游總線就是PCI橋靠近HOST主橋的一端總線、下游總線就是另外一端總線
在一個處理器系統(tǒng)中,有幾個HOST主橋,就有幾個PCI總線域。
PCI橋
PCI橋是PCI總線的一個重要組成部件,該部件的存在使得PCI總線極具拓展性。
PCI的可擴展性指的是PCI總線上可以掛個PCI橋,然后PCI橋會推出另一條PCI總線,PCI總線上又可以掛載PCI橋,再推出PCI總線...(但是,PCI總線以HOST主橋為樹根,連接的設(shè)備上限為256,其中包括HOST橋和PCI橋
PCI橋的作用可以隔離PCI設(shè)備,不影響各條總線的帶寬
如果PCI橋出現(xiàn)問題,那么PCI橋下的設(shè)備之間可以自由通訊但是無法將數(shù)據(jù)發(fā)送到外面
PCI設(shè)備
PCI Agent設(shè)備:一個PCI設(shè)備既可以是主設(shè)備也可以是從設(shè)備,但是在同一個時刻,這個PCI設(shè)備或者為主設(shè)備或者為從設(shè)備。PCI總線規(guī)范將PCI主從設(shè)備統(tǒng)稱為PCI Agent設(shè)備。
PCI設(shè)備的地址可以由系統(tǒng)軟件動態(tài)分配,解決了地址沖突。(每個PCI設(shè)備有一個獨立的配置空間,里面有設(shè)備在總線上的地址;注:PCI橋的配置空間中有其PCI子樹使用的地址范圍)
PCI設(shè)備與存儲器直接進行數(shù)據(jù)交換的過程也被稱為DMA。PCI總線進行DMA操作時,需要得到數(shù)據(jù)的大小和目的地址(PCI總線域的物理地址,HOST主橋會負責(zé)地址轉(zhuǎn)換)
PCI設(shè)備配置地址空間的前64字節(jié)是標準化的,它提供了廠商號,設(shè)備號,版本號等信息,唯一標識一個PCI設(shè)備。
PCIe基礎(chǔ)知識
pcie全稱叫做:Peripheral Component Interconnect(外圍組件互聯(lián)),屬于局部總線,主要功能就是連接外圍設(shè)備
pcie的組成有:RC(根節(jié)點)、siwtch(pcie橋)、EP(設(shè)備)
pcie總線有獨立的地址空間,所以CPU想要通過pcie訪問外圍設(shè)備,需要對pcie的地址空間進行映射
pcie分多版本的,x1、x2、x4、x8、x16...各級之間傳輸速率呈倍數(shù)增加,但價格也呈倍增加。PCI-E的接口根據(jù)總線位寬不同而有所差異,包括X1、X4、X8以及X16,而X2模式將用于內(nèi)部接口而非插槽模式。
pcie傳輸和網(wǎng)絡(luò)類似封裝成包,有協(xié)議棧。
pcie使用端到端的連接方式,正常設(shè)備與設(shè)備之間只能連接一個,但通過pcie橋可以擴展。
PCI是并行總線;PCI-X是并行總線;PCIe是高速差分總線
高速差分總線替代并行總線是大勢所趨。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。