當(dāng)前位置:首頁(yè) > 百科知識(shí) > 工控 > 正文

pci總線

PCI是Peripheral Component Interconnect(外設(shè)部件互連標(biāo)準(zhǔn))的縮寫(xiě),它是目前個(gè)人電腦中使用最為廣泛的接口,幾乎所有的主板產(chǎn)品上都帶有這種插槽。PCI插槽也是主板帶有最多數(shù)量的插槽類型,在目前流行的臺(tái)式機(jī)主板上,ATX結(jié)構(gòu)的主板一般帶有5~6個(gè)PCI插槽,而小一點(diǎn)的MATX主板也都帶有2~3個(gè)PCI插槽,可見(jiàn)其應(yīng)用的廣泛性。

  PCI定義

  PCI總線特點(diǎn)

  PCI即PeripheralComponentInterconnect,中文意思是“外圍器件互聯(lián)”,是由PCISIG(PCISpecialInterestGroup)推出的一種局部并行總線標(biāo)準(zhǔn)。PCI總線是由ISA(IndustyStandardArchitecture)總線發(fā)展而來(lái)的,ISA并行總線有8位和16位兩種模式,時(shí)鐘頻率為8MHz,工作頻率為33MHz/66MHz。是一種同步的獨(dú)立于處理器的32位或64位局部總線。從結(jié)構(gòu)上看,PCI是在CPU的供應(yīng)商和原來(lái)的系統(tǒng)總線之間插入的一級(jí)總線,具體由一個(gè)橋接電路實(shí)現(xiàn)對(duì)這一層的管理,并實(shí)現(xiàn)上下之間的接口以協(xié)調(diào)數(shù)據(jù)的傳送。從1992年創(chuàng)立規(guī)范到如今,PCI總線已成為了計(jì)算機(jī)的一種標(biāo)準(zhǔn)總線。已成為局部總線的新標(biāo)準(zhǔn),廣泛用于當(dāng)前高檔微機(jī)、工作站,以及便攜式微機(jī)。主要用于連接顯示卡、網(wǎng)卡、聲卡。PCI總線是32位同步復(fù)用總線。其地址和數(shù)據(jù)線引腳是AD31~AD0。PCI的工作頻率為33MHz。

  PCI總線結(jié)構(gòu)

  PCI總線是一種樹(shù)型結(jié)構(gòu),并且獨(dú)立于CPU總線,可以和CPU總線并行操作。PCI總線上可以掛接PCI設(shè)備和PCI橋片,PCI總線上只允許有一個(gè)PCI主設(shè)備,其他的均為PCI從設(shè)備,而且讀寫(xiě)操作只能在主從設(shè)備之間進(jìn)行,從設(shè)備之間的數(shù)據(jù)交換需要通過(guò)主設(shè)備中轉(zhuǎn)。[1]PCI總線結(jié)構(gòu)如下圖所示。

  在處理器系統(tǒng)中,含有PCI總線和PCI總線樹(shù)這兩個(gè)概念。這兩個(gè)概念并不相同,在一顆PCI總線樹(shù)中可能具有多條PCI總線,而具有血緣關(guān)系的PCI總線組成一顆PCI總線樹(shù)。PCI總線由HOST主橋或者PCI橋管理,用來(lái)連接各類設(shè)備,如聲卡、網(wǎng)卡和IDE接口卡等。在一個(gè)處理器系統(tǒng)中,可以通過(guò)PCI橋擴(kuò)展PCI總線,并形成具有血緣關(guān)系的多級(jí)PCI總線,從而形成PCI總線樹(shù)型結(jié)構(gòu)。在處理器系統(tǒng)中有幾個(gè)HOST主橋,就有幾顆這樣的PCI總線樹(shù),而每一顆PCI總線樹(shù)都與一個(gè)PCI總線域?qū)?yīng)。

  與HOST主橋直接連接的PCI總線通常被命名為PCI總線0??紤]到在一個(gè)處理器系統(tǒng)中可能有多個(gè)主橋。

  PCI總線取代了早先的ISA總線。當(dāng)然與在PCI總線后面出現(xiàn)專門用于顯卡的AGP總線,與現(xiàn)在的PCIExpress總線相比,功能沒(méi)有那么強(qiáng)大,但是PCI能從1992用到現(xiàn)在,說(shuō)明他有許多優(yōu)點(diǎn),比如即插即用(PlugandPlay)、中斷共享等。在這里我們對(duì)PCI總線做一個(gè)深入的介紹。

  從數(shù)據(jù)寬度上看,PCI總線有32bit、64bit之分;從總線速度上分,有33MHz、66MHz兩種。目前流行的是32bit@33MHz,而64bit系統(tǒng)正在普及中。改良的PCI系統(tǒng),PCI-X,最高可以達(dá)到64bit@133MHz,這樣就可以得到超過(guò)1GB/s的數(shù)據(jù)傳輸速率。如果沒(méi)有特殊說(shuō)明,以下的討論以32bit@33MHz為例。

  不同于ISA總線,PCI總線的地址總線與數(shù)據(jù)總線是分時(shí)復(fù)用的。這樣做的好處是,一方面可以節(jié)省接插件的管腳數(shù),另一方面便于實(shí)現(xiàn)突發(fā)數(shù)據(jù)傳輸。在做數(shù)據(jù)傳輸時(shí),由一個(gè)PCI設(shè)備做發(fā)起者(主控,Initiator或Master),而另一個(gè)PCI設(shè)備做目標(biāo)(從設(shè)備,Target或Slave)。總線上的所有時(shí)序的產(chǎn)生與控制,都由Master來(lái)發(fā)起。PCI總線在同一時(shí)刻只能供一對(duì)設(shè)備完成傳輸,這就要求有一個(gè)仲裁機(jī)構(gòu)(Arbiter),來(lái)決定在誰(shuí)有權(quán)力拿到總線的主控權(quán)。

  當(dāng)PCI總線進(jìn)行操作時(shí),發(fā)起者(Master)先置REQ#,當(dāng)?shù)玫街俨闷鳎ˋrbiter)的許可時(shí)(GNT#),會(huì)將FRAME#置低,并在AD總線上放置Slave地址,同時(shí)C/BE#放置命令信號(hào),說(shuō)明接下來(lái)的傳輸類型。所有PCI總線上設(shè)備都需對(duì)此地址譯碼,被選中的設(shè)備要置DEVSEL#以聲明自己被選中。然后當(dāng)IRDY#與TRDY#都置低時(shí),可以傳輸數(shù)據(jù)。當(dāng)Master數(shù)據(jù)傳輸結(jié)束前,將FRAME#置高以標(biāo)明只剩最后一組數(shù)據(jù)要傳輸,并在傳完數(shù)據(jù)后放開(kāi)IRDY#以釋放總線控制權(quán)。

  這里我們可以看出,PCI總線的傳輸是很高效的,發(fā)出一組地址后,理想狀態(tài)下可以連續(xù)發(fā)數(shù)據(jù),峰值速率為132MB/s。實(shí)際上,目前流行的33M@32bit北橋芯片一般可以做到100MB/s的連續(xù)傳輸。

  PCI總線特點(diǎn)

  (1)傳輸速率高最大數(shù)據(jù)傳輸率為132MB/s,當(dāng)數(shù)據(jù)寬度升級(jí)到64位,數(shù)據(jù)傳輸率可達(dá)264MB/s。這是其他總線難以比擬的。它大大緩解了數(shù)據(jù)I/O瓶頸,使高性能CPU的功能得以充分發(fā)揮,適應(yīng)高速設(shè)備數(shù)據(jù)傳輸?shù)男枰?/p>

  (2)多總線共存采用PCI總線可在一個(gè)系統(tǒng)中讓多種總線共存,容納不同速度的設(shè)備一起工作。通過(guò)HOST-PCI橋接組件芯片,使CPU總線和PCI總線橋接;通過(guò)PCI-ISA/EISA橋接組件芯片,將PCI總線與ISA/EISA總線橋接,構(gòu)成一個(gè)分層次的多總線系統(tǒng)。高速設(shè)備從ISA/EISA總線卸下來(lái),移到PCI總線上,低速設(shè)備仍可掛在ISA/EISA總線上,繼承原有資源,擴(kuò)大了系統(tǒng)的兼容性。

  (3)獨(dú)立于CPUPCI總線不依附于某一具體處理器,即PCI總線支持多種處理器及將來(lái)發(fā)展的新處理器,在更改處理器品種時(shí),更換相應(yīng)的橋接組件即可。

  (4)自動(dòng)識(shí)別與配置外設(shè)用戶使用方便。

  (5)并行操作能力。

  PCI總線的主要性能

  (1)總線時(shí)鐘頻率33.3MHz/66.6MHz。

  (2)總線寬度32位/64位。

  (3)最大數(shù)據(jù)傳輸率132MB/s(264MB/s)。

  (4)支持64位尋址。

  (5)適應(yīng)5V和3.3V電源環(huán)境。

  即插即用的實(shí)現(xiàn)

  所謂即插即用,是指當(dāng)板卡插入系統(tǒng)時(shí),系統(tǒng)會(huì)自動(dòng)對(duì)板卡所需資源進(jìn)行分配,如基地址、中斷號(hào)等,并自動(dòng)尋找相應(yīng)的驅(qū)動(dòng)程序。而不象舊的ISA板卡,需要進(jìn)行復(fù)雜的手動(dòng)配置。

  實(shí)際的實(shí)現(xiàn)遠(yuǎn)比說(shuō)起來(lái)要復(fù)雜。在PCI板卡中,有一組寄存器,叫"配置空間"(ConfigurationSpace),用來(lái)存放基地址與內(nèi)存地址,以及中斷等信息。

  以內(nèi)存地址為例。當(dāng)上電時(shí),板卡從ROM里讀取固定的值放到寄存器中,對(duì)應(yīng)內(nèi)存的地方放置的是需要分配的內(nèi)存字節(jié)數(shù)等信息。操作系統(tǒng)要跟據(jù)這個(gè)信息分配內(nèi)存,并在分配成功后把相應(yīng)的寄存器中填入內(nèi)存的起始地址。這樣就不必手工設(shè)置開(kāi)關(guān)來(lái)分配內(nèi)存或基地址了。對(duì)于中斷的分配也與此類似。

  中斷共享的實(shí)現(xiàn)

  ISA卡的一個(gè)重要局限在于中斷是獨(dú)占的,而我們知道計(jì)算機(jī)的中斷號(hào)只有16個(gè),系統(tǒng)又用掉了一些,這樣當(dāng)有多塊ISA卡要用中斷時(shí)就會(huì)有問(wèn)題了。

  PCI總線的中斷共享由硬件與軟件兩部分組成。

  硬件上,采用電平觸發(fā)的辦法:中斷信號(hào)在系統(tǒng)一側(cè)用電阻接高,而要產(chǎn)生中斷的板卡上利用三極管的集電極將信號(hào)拉低。這樣不管有幾塊板產(chǎn)生中斷,中斷信號(hào)都是低;而只有當(dāng)所有板卡的中斷都得到處理后,中斷信號(hào)才會(huì)恢復(fù)高電平。

  軟件上,采用中斷鏈的方法:假設(shè)系統(tǒng)啟動(dòng)時(shí),發(fā)現(xiàn)板卡A用了中斷7,就會(huì)將中斷7對(duì)應(yīng)的內(nèi)存區(qū)指向A卡對(duì)應(yīng)的中斷服務(wù)程序入口ISR_A;然后系統(tǒng)發(fā)現(xiàn)板卡B也用中斷7,這時(shí)就會(huì)將中斷7對(duì)應(yīng)的內(nèi)存區(qū)指向ISR_B,同時(shí)將ISR_B的結(jié)束指向ISR_A。以此類推,就會(huì)形成一個(gè)中斷鏈。而當(dāng)有中斷發(fā)生時(shí),系統(tǒng)跳轉(zhuǎn)到中斷7對(duì)應(yīng)的內(nèi)存,也就是ISR_B。ISR_B就要檢查是不是B卡的中斷,如果是,要處理,并將板卡上的拉低電路放開(kāi);如果不是,則呼叫ISR_A。這樣就完成了中斷的共享。

  通過(guò)以上討論,我們不難看出,PCI總線有著極大的的優(yōu)勢(shì)。而近年來(lái)的市場(chǎng)情況也證實(shí)了這一點(diǎn)。

  總線設(shè)備

  在PCI總線中有三類設(shè)備,PCI主設(shè)備、PCI從設(shè)備和橋設(shè)備。其中PCI從設(shè)備只能被動(dòng)地接收來(lái)自HOST主橋,或者其他PCI設(shè)備的讀寫(xiě)請(qǐng)求;而PCI主設(shè)備可以通過(guò)總線仲裁獲得PCI總線的使用權(quán),主動(dòng)地向其他PCI設(shè)備或者主存儲(chǔ)器發(fā)起存儲(chǔ)器讀寫(xiě)請(qǐng)求。而橋設(shè)備的主要作用是管理下游的PCI總線,并轉(zhuǎn)發(fā)上下游總線之間的總線事務(wù)。

  一個(gè)PCI設(shè)備可以即是主設(shè)備也是從設(shè)備,但是在同一個(gè)時(shí)刻,這個(gè)PCI設(shè)備或者為主設(shè)備或者為從設(shè)備。PCI總線規(guī)范將PCI主從設(shè)備統(tǒng)稱為PCIAgent設(shè)備。在處理器系統(tǒng)中常見(jiàn)的PCI網(wǎng)卡、顯卡、聲卡等設(shè)備都屬于PCIAgent設(shè)備。

  在PCI總線中,HOST主橋是一個(gè)特殊的PCI設(shè)備,該設(shè)備可以獲取PCI總線的控制權(quán)訪問(wèn)PCI設(shè)備,也可以被PCI設(shè)備訪問(wèn)。但是HOST主橋并不是PCI設(shè)備。PCI規(guī)范也沒(méi)有規(guī)定如何設(shè)計(jì)HOST主橋。

  在PCI總線中,還有一類特殊的設(shè)備,即橋設(shè)備。橋設(shè)備包括PCI橋、PCI-to-(E)ISA橋和PCI-to-Cardbus橋。PCI橋的存在使PCI總線極具擴(kuò)展性,處理器系統(tǒng)可以使用PCI橋進(jìn)一步擴(kuò)展PCI總線。

  PCI橋的出現(xiàn)使得采用PCI總線進(jìn)行大規(guī)模系統(tǒng)互連成為可能。但是在目前已經(jīng)實(shí)現(xiàn)的大規(guī)模處理器系統(tǒng)中,并沒(méi)有使用PCI總線進(jìn)行處理器系統(tǒng)與處理器系統(tǒng)之間的大規(guī)模互連。因?yàn)镻CI總線是一個(gè)以HOST主橋?yàn)楦臉?shù)型結(jié)構(gòu),使用主從架構(gòu),因而不易實(shí)現(xiàn)多處理器系統(tǒng)間的對(duì)等互連。

  即便如此PCI橋仍然是PCI總線規(guī)范的精華所在,掌握PCI橋是深入理解PCI體系結(jié)構(gòu)的基礎(chǔ)。PCI橋可以連接兩條PCI總線,上游PCI總線和下游PCI總線,這兩個(gè)PCI總線屬于同一個(gè)PCI總線域,使用PCI橋擴(kuò)展的所有PCI總線都同屬于一個(gè)PCI總線域。

  其中對(duì)PCI設(shè)備配置空間的訪問(wèn)可以從上游總線轉(zhuǎn)發(fā)到下游總線,而數(shù)據(jù)傳送可以雙方向進(jìn)行。在PCI總線中,還存在一種非透明PCI橋,該橋片不是PCI總線規(guī)范定義的標(biāo)準(zhǔn)橋片,但是適用于某些特殊應(yīng)用。

  主要性能

 ?。?)傳輸速率高最大數(shù)據(jù)傳輸率為132MB/s,當(dāng)數(shù)據(jù)寬度升級(jí)到64位,數(shù)據(jù)傳輸率可達(dá)264MB/s。這是其他總線難以比擬的。它大大緩解了數(shù)據(jù)I/O瓶頸,使高性能CPU的功能得以充分發(fā)揮,適應(yīng)高速設(shè)備數(shù)據(jù)傳輸?shù)男枰?/p>

  (2)多總線共存采用PCI總線可在一個(gè)系統(tǒng)中讓多種總線共存,容納不同速度的設(shè)備一起工作。通過(guò)HOST-PCI橋接組件芯片,使CPU總線和PCI總線橋接;通過(guò)PCI-ISA/EISA橋接組件芯片,將PCI總線與ISA/EISA總線橋接,構(gòu)成一個(gè)分層次的多總線系統(tǒng)。高速設(shè)備從ISA/EISA總線卸下來(lái),移到PCI總線上,低速設(shè)備仍可掛在ISA/EISA總線上,繼承原有資源,擴(kuò)大了系統(tǒng)的兼容性。

  (3)獨(dú)立于CPUPCI總線不依附于某一具體處理器,即PCI總線支持多種處理器及將來(lái)發(fā)展的新處理器,在更改處理器品種時(shí),更換相應(yīng)的橋接組件即可。

  (4)自動(dòng)識(shí)別與配置外設(shè)用戶使用方便。

  (5)并行操作能力。

  PCI(PeripheralComponentInterconnect)總線是一種高性能局部總線,是為了滿足外設(shè)間以及外設(shè)與主機(jī)間高速數(shù)據(jù)傳輸而提出來(lái)的。在數(shù)字圖形、圖像和語(yǔ)音處理,以及高速實(shí)時(shí)數(shù)據(jù)采集與處理等對(duì)數(shù)據(jù)傳輸率要求較高的應(yīng)用中,采用PCI總線來(lái)進(jìn)行數(shù)據(jù)傳輸,可以解決原有的標(biāo)準(zhǔn)總線數(shù)據(jù)傳輸率低帶來(lái)的瓶頸問(wèn)題。

  總線特點(diǎn)

  PCI總線是一種同步的獨(dú)立于處理器的32位或64位局部總線,最高工作頻率為33MHz,峰值速度在32位時(shí)為132MB/s,64位時(shí)為264MB/s,總線規(guī)范由PCISIG發(fā)布。ISA總線相比,PCI總線和有如下顯著的特點(diǎn):

 ?。?)高速性

  PCI局部總線以33MHz的時(shí)鐘頻率操作,采用32位數(shù)據(jù)總線,數(shù)據(jù)傳輸速率可高達(dá)132MB/s,遠(yuǎn)超過(guò)以往各種總線。而早在1995年6月推出的PCI總線規(guī)范2。l已定義了64位、66MHz的PCI總線標(biāo)準(zhǔn)。因此PCI總線完全可為未來(lái)的計(jì)算機(jī)提供更高的數(shù)據(jù)傳送率。另外,PCI總線的主設(shè)備(Master)可與微機(jī)內(nèi)存直接交換數(shù)據(jù),而不必經(jīng)過(guò)微機(jī)CPU中轉(zhuǎn),也提高了數(shù)據(jù)傳送的效率。

 ?。?)即插即用性

  目前隨著計(jì)算機(jī)技術(shù)的發(fā)展,微機(jī)中留給用戶使用的硬件資源越來(lái)越少,也越來(lái)越含糊不清。在使用ISA板卡時(shí),有兩個(gè)問(wèn)題需要解決:一是在同一臺(tái)微機(jī)上使用多個(gè)不同廠家、不同型號(hào)的板卡時(shí),板卡之間可能會(huì)有硬件資源上的沖突;二是板卡所占用的硬件資源可能會(huì)與系統(tǒng)硬件資源(如聲卡、網(wǎng)卡等)相沖突。而PCI板卡的硬件資源則是由微機(jī)根據(jù)其各自的要求統(tǒng)一分配,決不會(huì)有任何的沖突問(wèn)題。因此,作為PCI板卡的設(shè)計(jì)者,不必關(guān)心微機(jī)的哪些資源可用,哪些資源不可用,也不必關(guān)心板卡之間是否會(huì)有沖突。因此,即使不

  考慮PCI總線的高速性,單憑其即插即用性,就比ISA總線優(yōu)越了許多。

 ?。?)可靠性

  PCI獨(dú)立于處理器的結(jié)構(gòu),形成一種獨(dú)特的中間緩沖器設(shè)計(jì)方式,將中央處理器子系統(tǒng)與外圍設(shè)備分開(kāi)。這樣用戶可以隨意增添外圍設(shè)備,以擴(kuò)充電腦系統(tǒng)而不必?fù)?dān)心在不同時(shí)鐘頻率下會(huì)導(dǎo)致性能的下降。與原先微機(jī)常用的ISA總線相比,PCI總線增加了奇偶校驗(yàn)錯(cuò)(PERR)、系統(tǒng)錯(cuò)(SERR)、從設(shè)備結(jié)束(STOP)等控制信號(hào)及超時(shí)處理等可靠性措施,使數(shù)據(jù)傳輸?shù)目煽啃源鬄樵黾印?/p>

 ?。?)復(fù)雜性

  PCI總線強(qiáng)大的功能大大增加了硬件設(shè)計(jì)和軟件開(kāi)發(fā)的實(shí)現(xiàn)難度。硬件上要采用大容量、高速度的CPLDFPGA芯片來(lái)實(shí)現(xiàn)PCI總線復(fù)雜的功能。軟件上則要根據(jù)所用的操作系統(tǒng),用軟件工具編制支持即插即用功能酶設(shè)備驅(qū)動(dòng)程序。

 ?。?)自動(dòng)配置

  PCI總線規(guī)范規(guī)定PCI插卡可以自動(dòng)配置。PCI定義了3種地址空間:存儲(chǔ)器空間,輸入輸出空間和配置空間,每個(gè)PCI設(shè)備中都有256字節(jié)的配置空間用來(lái)存放自動(dòng)配置信息,當(dāng)PCI插卡插入系統(tǒng),BIOS將根據(jù)讀到的有關(guān)該卡的信息,結(jié)合系統(tǒng)的實(shí)際情況為插卡分配存儲(chǔ)地址、中斷和某些定時(shí)信息。

 ?。?)共享中斷

  PCI總線是采用低電平有效方式,多個(gè)中斷可以共享一條中斷線,而ISA總線是邊沿觸發(fā)方式。

 ?。?)擴(kuò)展性好

  如果需要把許多設(shè)備連接到PCI總線上,而總線驅(qū)動(dòng)能力不足時(shí),可以采用多級(jí)PCI總線,這些總線上均可以并發(fā)工作,每個(gè)總線上均可掛接若干設(shè)備。因此PCI總線結(jié)構(gòu)的擴(kuò)展性是非常好的。由于PCI的設(shè)計(jì)是要輔助現(xiàn)有的擴(kuò)展總線標(biāo)準(zhǔn),因此與ISA,EISA及MCA總線完全兼容。

 ?。?)多路復(fù)用

  在PCI總線中為了優(yōu)化設(shè)計(jì)采用了地址線和數(shù)據(jù)線共用一組物理線路,即多路復(fù)用。PCI接插件尺寸小,又采用了多路復(fù)用技術(shù),減少了元件和管腳個(gè)數(shù),提高了效率。

 ?。?)嚴(yán)格規(guī)范

  PCI總線對(duì)協(xié)議、時(shí)序、電氣性能、機(jī)械性能等指標(biāo)都有嚴(yán)格的規(guī)定,保證了PCI的可靠性和兼容性。由于PCI總線規(guī)范十分復(fù)雜,其接口的實(shí)現(xiàn)就有較高的技術(shù)難度。


內(nèi)容來(lái)自百科網(wǎng)