亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

PCI

2019-11-17 05:40:28
字體:
來源:轉載
供稿:網友

  Peripheral Component Interconnect(PCI),似乎它的名字暗示的一樣,是描述如何通過一個結構化和可控制的方式把系統中的外設組件連接起來的一個標準。標準的PCI Local Bus規范描述了系統組件電氣連接的方法和它們行為的方法。本章探討linux核心如何初始化系統的PCI總線和設備。



圖6.1是一個PCI基礎的系統的邏輯圖。PCI總線和PCI-PCI橋(bridge)是系統組件聯系在一起的粘合劑。CUP和video設備連在主要的PCI總線,PCI總線0。一個非凡的PCI設備,PCI-PCI橋把主總線連接到次PCI總線,PCI總線1。按照PCI規范的術語,PCI總線1描述成為PCI-PCI橋的下游而PCI總線0是橋的上游。連接在次PCI總線上的是系統的SCSI和以太網設備。物理上橋、次要PCI總線和這兩種設備可以在同一塊PCI卡上。系統中的PCI-ISA橋支持老的、遺留的ISA設備,本圖顯示了一個超級I/O控制芯片,控制鍵盤、鼠標和軟驅。

 

6.1 PCI Address Space(PCI地址空間)

 

CPU和PCI設備需要訪問它們所共享的內存。這些內存讓設備驅動程序控制這些PCI設備并在它們之間傳遞信息。一般地共享的內存包括設備的控制和狀態寄存器。這些寄存器用于控制設備和讀取它的狀態。例如:PCI SCSI設備驅動程序可以讀取SCSI設備的狀態寄存器,判定它是否可以向SCSI磁盤寫一塊信息?;蛘咚梢詫懭肟刂萍拇嫫髯屗P閉的設備開始運行。

 

CPU的使用的系統內存可以用作這種共享內存,但是假如這樣的話,每一次PCI設備訪問內存,CPU都不得不停頓,等待PCI設備完成。對于內存的訪問通常有限制,同一時間只能有一個系統組件答應訪問。這會使得系統速度降低。答應系統的外部設備在一個不受控的方式下訪問主內存也不是一個好主意。這會非常危險:一個惡意的設備會讓系統非常不穩定。

 

外部設備由它們自己的內存空間。CPU可以訪問這些空間,但是設備對于系統內存的訪問受到嚴格的控制,必須通過DMA(Direct Memory access直接內存存取)通道。ISA設備可以訪問兩種地址空間:ISA I/O(輸入/輸出)和ISA內存。PCI由三中:PCI I/O、PCI內存和PCI配置空間(configuration space)。CPU可以訪問所有的地址空間其中PCI I/O和PCI內存地址空間由設備驅動程序使用而PCI配置空間由Linux和心中的PCI初始化代碼使用。

 

Alpha AXP處理器沒有對于除了系統地址空間之外的地址空間的天生的訪問模式。它需要使用支持芯片來訪問象PCI配置空間這樣的其他地址空間。它使用了一個地址空間的映射方案,從巨大的虛擬地址空間中偷出一部分映射到PCI地址空間。

 

6.2 PCI Configuration Headers(PCI配置頭)

 

系統中的每一個PCI設備,包括PCI-PCI橋都由一個配置數據結構,位于PCI配置地址空間中。PCI配置頭答應系統識別和控制設備。這個頭位于PCI配置地址空間的確切位置依靠于設備使用的PCI拓撲。例如,插在PC主板一個PCI槽位的一個PCI顯示卡配置頭會在一個位置,而假如它被插到另一個PCI槽位則它的頭會出現在PCI配置內存中的另一個位置。但是不管這些PCI設備和橋在什么位置,系統都可以發現并使用它們配置頭中的狀態和配置寄存器來配置它們。

 

通常,系統的設計使得每一個PCI槽位的PCI配置頭都有一個和它在板上的槽位相關的偏移量。所以,舉例來說,板上的第一個槽位的PCI配置可能位于偏移0而第二個槽位的在偏移256(所有的頭都一樣長度,256字節),依此類推。定義了系統相關的硬件機制使得PCI配置代碼可以嘗試檢查一個給定的PCI總線上的所有可能的PCI配置頭,試圖讀取頭中的一個域(通常是Vendor Identification 域)得到一些錯誤,從而知道那些設備存在而那些設備不存在。PCI Local Bus規范描述了一種可能的錯誤信息:試圖讀取一個空的PCI槽位的Verdor Identification和Device Indentification域時候返回0xFFFFFFFF。



圖6.2顯示了256字節的PCI配置頭的布局。它包括以下域:

參見include/linux/pci.h

 

Vendor Identification 唯一的數字,描述這個PCI設備的發明者。Digital的PCI Vendor Identification 是0x1011而Intel是0x8086。


Device Identification 描述設備自身的唯一數字。例如Digital的21141快速以太網設備的設備標識符是0x0009。

Status 此域給除了設備的狀態,它的位的含義由PCI Local Bus規范規定。

Command 系統通過寫這個域控制這個設備。例如:答應設備訪問PCI I/O內存。

Class Code 標識了設備的類型。對于每一種設備都有標準分類:顯示、SCSI等等。對于SCSI的類型編碼是0x0100。

Base Address Registers 這些寄存器用于確定和分配設備可以使用的PCI I/O和PCI內存的類型、大小和位置。

Interrupt Pin PCI卡的物理管腳中的4個用于向PCI總線傳遞中斷。標準中把它們標記為A、B、C和D。Interrupt Pin域描述了這個PCI設備使用那個管腳。通常對于一個設備來說這時硬件決定的。就是說每一次系統啟動的時候,這個設備都使用同一個中斷管腳。這些信息答應中斷處理子系統治理這些設備的中斷。

Interrupt Line PCI配置頭中的Interrupt Line域用于在PCI初始化代碼、設備驅動程序和Linux的中斷處理子系統之間傳遞中斷控制。寫在這里的數字對于設備驅動程序來講是沒有意義的,但是它可以讓中斷處理程序正確地把一個中斷從PCI設備發送到Linux操作系統中正確的設備驅動程序的中斷處理代碼處。Linux如何處理中斷參看第7章。

 

6.3 PCI I/O and PCI Memory Address(PCI I/O和PCI內存地址)

 

這兩種地址空間用于設備和CPU上運行的Linux核心的它們的設備驅動程序通訊。例如:DECchip 21141快速以太網設備把它的內部寄存器映射到了PCI I/O空間。然后它的Linux設備驅動程序通過讀寫這些寄存器來控制設備。顯示驅動程序通常使用大量的PCI內存空間來放置顯示信息。

 

直到PCI系統建立起來并使用PCI配置頭中的Command域打開了設備對于這些地址空間的訪問為止,設備都無法訪問這些空間。應該注重的是只有PCI配置代碼讀寫PCI配置地址,Linux的設備驅動程序只是讀寫PCI I/O和PCI內存地址。

 

6.4 PCI-ISA Bridges(PCI-ISA橋)

 

這種橋把對于PCI I/O和PCI內存地址空間的訪問轉換成為ISA I/O和ISA內存訪問,用來支持ISA設備?,F在銷售的多數系統都包括幾個ISA總線插槽和幾個PCI總線插槽。這種向后的兼容的需要會不斷減少,將來會有只有PCI的系統。在早期的Intel 8080基礎的PC時代,系統中的ISA設備的ISA 地址空間(I/O和內存)就被固定下來。甚至一個S5000 Alpha AXP基礎的計算機系統的ISA軟驅驅動器的ISA I/O地址也會和第一臺IBM PC一樣。PCI規范保留了PCI I/O和PCI內存的地址空間中的較低的區域保留給系統中的ISA外設并使用一個PCI-ISA橋把所有對于這些區域的PCI內存訪問轉換為ISA訪問。

 



6.5 PCI-PCI Bridges(PCI-PCI橋)

 

PCI-PCI橋是非凡的PCI設備,把系統中的PCI總線粘和在一起。簡單系統中只有一個PCI總線,當時單個PCI總線可以支持的PCI設備的數量有電氣限制。使用PCI-PCI橋增加更多的PCI總線答應系統支持更多的PCI設備。這對于高性能的服務器尤其重要。當然,Linux完全支持使用PCI-PCI橋的使用。

 

6.5.1 PCI-PCI Bridges: PCI I/O and PCI Memory Windows

 

PCI-PCI橋只向下游傳遞對于PCI I/O和PCI內存讀和寫的一個子集。例如在圖6.1中,只有讀和寫的地址屬于SCSI或者以太網設備的時候PCI-PCI橋才會把讀寫的地址從PCI總線0傳遞到總線1,其余的都被忽略。這種過濾阻止了不必要的地址信息遍歷系統。為了達到這個目的,PCI-PCI橋必須編程設置它們必須從主總線向次總線通過的PCI I/O和PCI內存地址空間訪問的基礎(base)和限制。一旦系統中的PCI-PCI橋設置好,只要Linux設備驅動程序只是通過這些窗口存取PCI I/O和PCI內存空間,PCI-PCI橋是不可見的。這是個重要的特性,使得Linux的PCI設備驅動程序的作者的日子好過了。但是它也讓Linux下的PCI-PCI橋在一定程度上需要技巧才能配置,我們不久就會看到。

 

6.5.2 PCI-PCI Bridges: PCI Configuration Cycles and PCI Bus Numbering(PCI-PCI橋:PCI配置cycle和PCI總線編號)

 

既然CPU的PCI初始化代碼可以定位不在主PCI總線上的設備,必須有一種機制使得橋可以決定是否把配置cycle從它的主接口傳遞到次接口上。一個cycle就是它顯示在PCI總線上的地址。PCI規范定義了兩種PCI地址配置格式:類型0和類型1,分別在圖6.3和圖6.4中顯示。類型0的PCI配置cycle不包含總線號,被這個PCI總線上的所有的PCI設備解釋用于PCI地址配置。配置cycle的位32:11看作是設備選擇域。設計系統的一個方法是讓每一個位選擇一個不同的設備。這種情況下為11可能選擇槽位0的PCI設備,位12選擇槽位1的PCI設備,依此類推。另一種方法是把設備的槽位號直接寫到位31:11中。一個系統使用哪一種機制依靠于系統的PCI內存控制器。


 

類型1的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久视频在线视频| 欧美中文字幕在线观看| 久久偷看各类女兵18女厕嘘嘘| 欧美大码xxxx| 亚洲精品一区久久久久久| 亚洲国产精品一区二区三区| 国产成人a亚洲精品| 国产精品午夜国产小视频| 国产成人精品在线| 8090理伦午夜在线电影| 日韩精品中文字幕在线播放| 亚洲va电影大全| 亚洲欧美国产精品久久久久久久| 91精品国产色综合久久不卡98| 一区二区三区 在线观看视| 97免费中文视频在线观看| 69视频在线播放| 中文字幕精品在线视频| 亚洲欧美一区二区精品久久久| 成人性生交大片免费看视频直播| 欧美性猛交xxxx富婆| 亚洲在线观看视频网站| 亚洲精品成人免费| 亚洲视频日韩精品| 亚洲精品国精品久久99热一| 亚洲欧美中文日韩在线| 亚洲天堂av在线免费| 亚洲欧美日韩直播| 97视频在线观看免费| 国产精品视频色| 热re91久久精品国99热蜜臀| 激情亚洲一区二区三区四区| 欧美日韩综合视频| 欧美精品激情在线观看| 欧美孕妇孕交黑巨大网站| 国产精品久久久久久久久借妻| 亚洲综合国产精品| 日韩免费在线电影| 7777精品视频| 蜜臀久久99精品久久久久久宅男| 欧美情侣性视频| 视频在线观看99| 亚洲一区二区三区xxx视频| 不卡中文字幕av| 欧美电影在线观看高清| 成人午夜在线观看| 国产精品女视频| 欧美精品亚州精品| 在线视频欧美性高潮| 久久视频国产精品免费视频在线| 国内精品伊人久久| 亚洲免费视频网站| 日本精品免费一区二区三区| 亚洲国产精品资源| 欧美极品少妇全裸体| 国产精品美女主播| 亚洲网站视频福利| 97在线视频免费| 国产精品激情av电影在线观看| 欧美亚洲视频在线看网址| 亚洲美女精品久久| www.国产一区| 欧美电影免费播放| 91成人在线视频| 91在线|亚洲| 青青草原一区二区| 久久久人成影片一区二区三区| 成人免费在线视频网站| 亚洲一区国产精品| 亚洲精品第一页| 中文字幕久久久av一区| 欧美激情精品久久久久久蜜臀| 九九久久综合网站| 国产精品91久久| 欧美xxxwww| 亚洲欧美国内爽妇网| 亚洲女人天堂网| 91成人在线观看国产| 97在线视频免费看| 久久久久久香蕉网| 亚洲级视频在线观看免费1级| 中文字幕v亚洲ⅴv天堂| 91免费视频网站| 日韩中文字幕视频| 夜夜狂射影院欧美极品| 国产精品视频公开费视频| 亚洲视频网站在线观看| 久久视频免费观看| 欧美激情视频网| 91在线视频一区| 精品国产一区二区三区久久久狼| 亚洲第一综合天堂另类专| 亚洲美腿欧美激情另类| 国产一区二区三区在线| 亚洲999一在线观看www| 91av国产在线| 超碰97人人做人人爱少妇| 亚洲一品av免费观看| 国产精品网站视频| 欧美xxxx18国产| 亚洲人成网站999久久久综合| 亚洲大胆人体av| 国产在线视频欧美| 91探花福利精品国产自产在线| 日韩精品中文字幕视频在线| 成人国产亚洲精品a区天堂华泰| 精品国产美女在线| 97在线观看免费高清| 97超级碰碰碰| 日韩欧美第一页| 久久久在线观看| 国产精彩精品视频| 三级精品视频久久久久| 欧美精品免费播放| 亚洲精品v欧美精品v日韩精品| 亚洲人成网站在线播| 日韩在线观看网站| 色偷偷av一区二区三区乱| 久久久亚洲成人| 国产啪精品视频| 91沈先生作品| www.久久草.com| 国产99视频在线观看| 热久久视久久精品18亚洲精品| 国模视频一区二区三区| 97在线免费观看| 欧美第一黄色网| 亚洲成人教育av| 亚洲激情久久久| 中文字幕日韩欧美在线视频| 亚洲精品美女在线观看播放| 欧美成人激情在线| 色综合导航网站| 欧美xxxx做受欧美.88| 日韩欧美在线观看| 成人免费观看49www在线观看| 欧美一级片久久久久久久| 日韩中文有码在线视频| 欧美精品videosex牲欧美| 日韩免费观看视频| 国产精品69久久| 中国china体内裑精亚洲片| 日韩视频亚洲视频| www亚洲精品| 亚洲欧美日韩网| 永久免费毛片在线播放不卡| 伊人久久免费视频| 欧美国产日本在线| 国产精品尤物福利片在线观看| 九九九热精品免费视频观看网站| 国产欧美一区二区三区久久人妖| 上原亚衣av一区二区三区| 亚洲国产精品99久久| 国产日本欧美一区| 2019中文字幕免费视频| 国产精品视频地址| 国产在线拍揄自揄视频不卡99| 国产精品都在这里| 国产精品久久久久久久av大片| 亚洲剧情一区二区| 91天堂在线观看| 国产精品国产自产拍高清av水多| 国产在线观看91精品一区| 日韩在线观看免费全集电视剧网站|