看完兩章后感覺此書干貨很多(有時候覺得廢話也挺多),特別是關(guān)于橋的配置/bus號/device號的分配過程的描述的比較詳細。
要點:
- PCI設(shè)備能直接使用的地址是PCI總線域的地址,處理器能夠直接使用的是存儲器域的地址,PCI主橋負責在這兩種地址之間轉(zhuǎn)換。當然為了方便管理,可以把這兩種地址設(shè)置為相同的值(如果是I/O地址,則一定相同)。
- 每一條PCI總線上都有一個總線仲裁器,每一個PCI主設(shè)備都有獨立的總線仲裁信號,并與PCI總線仲裁器一一相連。可見一條PCI總線可以掛接PCI主設(shè)備的數(shù)目,除了與負載能力相關(guān)外,還和仲裁器能夠提供的仲裁信號數(shù)目直接相關(guān)。某PCI主設(shè)備使用PCI總線進行數(shù)據(jù)傳遞時,首先置REQ#信號有效,向PCI仲裁器發(fā)出申請,如果仲裁器允許PCI主設(shè)備獲得總線使用權(quán),則將相應(yīng)GNT#信號置為有效。之后此PCI主設(shè)備就獲得了總線使用權(quán),可開始數(shù)據(jù)通信。
- 如果感覺CPU寫PCI設(shè)備時速度低,考慮檢查是否是Posted傳送方式(只支持存儲器空間寫請求)。
- 如果感覺各設(shè)備相互影響,PCI總線利用效率低,考慮Non-Posted傳送方式(一般用于存儲器空間讀請求、IO/讀寫請求、配置讀寫請求)下是否支持了Split總線事務(wù)。
- PCI橋一般都沒有私有寄存器,操作系統(tǒng)也不需要為PCI橋提供專門的驅(qū)動程序,這也是這類橋被稱為透明橋的原因。(俺覺得這并不表示橋不需要配,只是不需要用戶寫驅(qū)動,因為它是被內(nèi)核自帶的PCI總線驅(qū)動配置的)
關(guān)于中斷,下表為PCI橋規(guī)范推薦使用的建立下游PCI設(shè)備的INTx信號與上游PCI總線INTx信號之間的映射關(guān)系。
PCI設(shè)備INTx#信號與PCI總線INTx#信號的映射關(guān)系
設(shè)備號 | PCI設(shè)備的INTx#信號 | PCI總線的INTx#信號 |
---|---|---|
0, 4, 8, 12, 16, 20, 24, 28 | INTA# | INTA# |
INTB# | INTB# | |
INTC# | INTC# | |
INTD# | INTD# | |
1, 5, 9, 13, 17, 21, 25, 29 | INTA# | INTB# |
INTB# | INTC# | |
INTC# | INTD# | |
INTD# | INTA# | |
2, 6, 10, 14, 18, 22, 26, 30 | INTA# | INTC# |
INTB# | INTD# | |
INTC# | INTA# | |
INTD# | INTB# | |
3, 7, 11, 15, 19, 23, 27, 31 | INTA# | INTD# |
INTB# | INTA# | |
INTC# | INTB# | |
INTD# | INTC# |
我畫了個簡化版的映射關(guān)系圖,適合最常見的場景,只有一層橋,所有設(shè)備只使用INTA。很明顯,這樣映射的主要好處就是負載均衡。
明天繼續(xù)閱讀PCI總線的數(shù)據(jù)交換部分,一些硬件細節(jié)應(yīng)該可以跳過,希望盡快進入軟件相關(guān)章節(jié)。
-
存儲器
+關(guān)注
關(guān)注
38文章
7484瀏覽量
163765 -
PCI
+關(guān)注
關(guān)注
4文章
663瀏覽量
130251 -
i/o
+關(guān)注
關(guān)注
0文章
33瀏覽量
4589
發(fā)布評論請先 登錄
相關(guān)推薦
評論