新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PCI Express體系結(jié)構(gòu)概述

PCI Express體系結(jié)構(gòu)概述

作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
雖然PCI總線取得了巨大的成功,但是隨著處理器主頻的不斷提高,PCI總線提供的帶寬愈發(fā)顯得捉襟見肘。PCI總線也在不斷地進(jìn)行升級(jí),其位寬和頻率從最初的32位/33MHz擴(kuò)展到64位/66MHz,而PCI-X總線更是將總線頻率提高到533MHz,能夠提供的最大理論帶寬為4263MB。但是PCI總線仍無法解決其體系結(jié)構(gòu)中存在的一些缺陷。PCI總線面臨著一系列挑戰(zhàn),包括帶寬、流量控制和數(shù)據(jù)傳送質(zhì)量等。

PCI總線的最高工作頻率為66M,最大位寬為64b,從理論上講,PCI總線可以提供的最大傳輸帶寬為532MB。然而PCI總線作為一個(gè)共享總線,在其上的所有PCI設(shè)備必須要共享PCI總線的帶寬。同時(shí)由于PCI總線的協(xié)議開銷,導(dǎo)致PCI總線可以實(shí)際利用的數(shù)據(jù)帶寬遠(yuǎn)小于其峰值帶寬。

本文引用地址:http://m.butianyuan.cn/article/201612/330453.htm

PCI總線采用提高總線位寬和頻率的方法增加其傳輸帶寬。但是這種方法從性能價(jià)格比的角度上看,并不是最優(yōu)的。數(shù)據(jù)總線位寬的提高將直接影響芯片的生產(chǎn)成本,64位的PCI總線接口需要設(shè)計(jì)者使用更多的芯片引腳,從而導(dǎo)致64位的PCI總線接口芯片的價(jià)格遠(yuǎn)高于32位的PCI總線接口芯片。與32位PCI總線接口相比,設(shè)計(jì)者還需要使用更多的印制板層數(shù)來實(shí)現(xiàn)64位PCI總線接口。

而提高總線頻率,除了給硬件工程師帶來了一系列信號(hào)完整性的問題之外,更直接影響PCI總線的負(fù)載能力。一條33MHz的PCI總線最多可以驅(qū)動(dòng)10個(gè)負(fù)載,而66Mhz的PCI總線最多只能驅(qū)動(dòng)4個(gè)負(fù)載。因此片面提高PCI總線的頻率和位寬,并不能有效地提高PCI總線的帶寬。

除此之外PCI總線在設(shè)計(jì)之初并沒有考慮服務(wù)質(zhì)量的問題。有些實(shí)時(shí)數(shù)據(jù)采集卡,音頻或者視頻的多媒體應(yīng)用需要PCI總線提供額定帶寬,而PCI總線上的設(shè)備只能輪流使用PCI總線,當(dāng)一個(gè)設(shè)備長(zhǎng)期占用PCI總線時(shí),將阻止其他PCI設(shè)備使用PCI總線,從而影響了PCI總線的傳送質(zhì)量。

基于以上幾個(gè)原因,PCI總線在某種程度上說并不能完全適應(yīng)現(xiàn)代處理器系統(tǒng)的需要,而使用PCIe總線可以有效解決PCI總線存在的一些問題。首先PCIe總線可以提供更大的總線帶寬,PCIe V3.0支持的最高總線頻率為4GHz,遠(yuǎn)高于PCI-X總線提供的最高總線頻率。

其次PCIe總線支持虛通路VC(Virtual Channel)技術(shù),優(yōu)先級(jí)不同的數(shù)據(jù)報(bào)文可以使用不同的虛通路,而每一路虛通路可以獨(dú)立設(shè)置緩沖,從而相對(duì)合理地解決了數(shù)據(jù)傳送過程中存在的服務(wù)質(zhì)量問題。

PCIe總線由若干層次組成,包括事務(wù)層、數(shù)據(jù)鏈路層和物理層。PCIe總線使用數(shù)據(jù)報(bào)文進(jìn)行數(shù)據(jù)傳遞,這些數(shù)據(jù)報(bào)文需要通過PCIe總線的這些層次。PCIe總線的這種數(shù)據(jù)傳遞方式與互聯(lián)網(wǎng)使用TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳遞有類似之處。

實(shí)際上在互聯(lián)網(wǎng)中存在的許多概念也存在于PCIe總線中,如交換、路由和仲裁機(jī)制等,不過這兩者之間在實(shí)現(xiàn)上的最大不同在于前者主要使用軟件程序?qū)崿F(xiàn)其協(xié)議棧,而后者使用硬件邏輯實(shí)現(xiàn)。

半導(dǎo)體工藝的逐步提高,使得更多的軟件算法可以使用硬件邏輯來實(shí)現(xiàn),這給從事IC Design的工程師帶來了巨大的挑戰(zhàn),因?yàn)樗麄兪褂肰erilog/VHDL程序書寫的算法,之前是使用C或者是C++這樣的高別語言實(shí)現(xiàn)的。

PCIe總線在系統(tǒng)軟件級(jí)與PCI總線兼容,基于PCI總線的系統(tǒng)軟件幾乎可以不經(jīng)修改直接移植到PCIe總線中。絕大多數(shù)PCI/PCI-X總線使用的總線事務(wù)都被PCIe總線保留,而PCI設(shè)備使用的配置空間也被PCIe總線繼承?;赑CI體系結(jié)構(gòu)的系統(tǒng)編程模型,幾乎可以在沒有本質(zhì)變化的前提下,直接在PCIe體系結(jié)構(gòu)中使用。

但是從體系系統(tǒng)的角度上看,PCIe總線還是增加了一些新的特性,其中一些特性不僅僅是稱呼上的變化,而且在功能上也得到了增強(qiáng)。如在PCIe體系結(jié)構(gòu)中出現(xiàn)的RC(Root Complex)。RC的主要功能與PCI總線中的HOST主橋類似,但是在HOST主橋的基礎(chǔ)上增加了許多功能。

在不同處理器系統(tǒng)中,RC的實(shí)現(xiàn)方式不同,因此僅僅用PCIe總線控制器稱呼RC是不夠的,實(shí)際上PCIe總線規(guī)范對(duì)RC并沒有一個(gè)合適的解釋。RC本身也是隨處理器系統(tǒng)的不同而不同,是一個(gè)很模糊的概念。

Intel并沒有使用PCIe總線控制器,而是使用RC管理PCIe總線,基于深層次的考慮。在x86處理器體系結(jié)構(gòu)中,RC并不僅僅管理PCIe設(shè)備的數(shù)據(jù)訪問,而且還包含訪問控制、錯(cuò)誤處理和虛擬化技術(shù)等一系列內(nèi)容。因此使用PCIe總線控制器統(tǒng)稱RC,在x86處理器體系結(jié)構(gòu)中,并不合適。

在PCIe總線中,還有一些特性與PCIe總線協(xié)議的實(shí)現(xiàn)相關(guān)。與PCI總線相比,PCIe總線使用端到端的連接方式,添加流量控制機(jī)制,并對(duì)“訪問序”做出了進(jìn)一步優(yōu)化。雖然從系統(tǒng)軟件的角度上看,PCI總線與PCIe總線基本一致。但是從硬件設(shè)計(jì)的角度上看PCIe總線完全不同于PCI總線,基于PCIe總線各類設(shè)備的硬件設(shè)計(jì)難度遠(yuǎn)大于基于PCI總線的對(duì)應(yīng)設(shè)備的設(shè)計(jì)難度。

目前PCIe總線規(guī)范,依然在迅猛發(fā)展,但并不是所有PCIe設(shè)備都支持這些在PCIe總線的最新規(guī)范中提及的概念。一般說來,PCIe總線規(guī)范提出的新的概念,最先在x86處理器系統(tǒng)的Chipset和Intel設(shè)計(jì)的EP中出現(xiàn)。


評(píng)論


技術(shù)專區(qū)

關(guān)閉