基于ISA(工業(yè)標(biāo)準(zhǔn)架構(gòu))總線的首個(gè)擴(kuò)展卡最初在1978年問(wèn)世,由于要求提升系統(tǒng)整體性能,MCA(微通道架構(gòu))等總線系統(tǒng)或是擴(kuò)展的ISA總線隨后也相繼出現(xiàn)。鑒于數(shù)據(jù)通道寬度(主要是8或16位)和總線架構(gòu)的速度問(wèn)題,許多標(biāo)準(zhǔn)都限制了帶寬。此外,萬(wàn)一錯(cuò)誤配置了總線,很難確定差錯(cuò)在哪里,因此調(diào)試這個(gè)系統(tǒng)時(shí)就會(huì)遇到各種問(wèn)題。根據(jù)這些舊的總線標(biāo)準(zhǔn)的經(jīng)驗(yàn),新的標(biāo)準(zhǔn)PCI(外設(shè)部件互連)最終得以確定。本文將探討PCI標(biāo)準(zhǔn)的局限性,以及下一代PCI Express是如何以節(jié)約成本的方式得以實(shí)現(xiàn)的。
為了克服舊標(biāo)準(zhǔn)的上述局限,1992年人們建立了PCI。其目的是構(gòu)建一個(gè)更高帶寬的標(biāo)準(zhǔn),有即插即用功能和更穩(wěn)健的協(xié)議。PCI協(xié)議支持差錯(cuò)校驗(yàn),通過(guò)與計(jì)算機(jī)的BIOS(基本輸入輸出系統(tǒng))通信實(shí)現(xiàn)即插即用功能,并通過(guò)標(biāo)準(zhǔn)的控制/狀態(tài)軟件接口就地址范圍或PCI插卡功能等信息進(jìn)行交換。如果出現(xiàn)地址范圍重疊等差錯(cuò),計(jì)算機(jī)本身可以提供一些反饋。一個(gè)基本的32位33MHz的PCI系統(tǒng),可支持的傳輸速率高達(dá)132MBps。但是,這個(gè)架構(gòu)也有一些限制因素??偩€是單向的(發(fā)起方和被請(qǐng)求的目標(biāo)設(shè)備不能在同一時(shí)間進(jìn)行通信),且?guī)讉€(gè)卡要共享一條總線。如果一張卡正在傳輸數(shù)據(jù),所有其他的可訪問(wèn)總線的部件必須等待。此外,在系統(tǒng)中無(wú)法處理PCI帶寬的低性能卡將進(jìn)行“重試”請(qǐng)求,以確保有更多時(shí)間來(lái)處理數(shù)據(jù)。這就大大降低了整個(gè)系統(tǒng)的帶寬。PCI的另一個(gè)限制是各種應(yīng)用對(duì)所需求帶寬不斷增加,特別是在視頻、通信和總線領(lǐng)域。圖1列出的一些應(yīng)用,已經(jīng)接近或超過(guò)了理論上的PCI帶寬132MBps。

圖1:各種應(yīng)用的帶寬需求對(duì)比理論上PCI提供的132MBps。
PCI還有其他一些缺點(diǎn),如限制只能有5個(gè)部件訪問(wèn)總線。由于PCI總線特殊的無(wú)端接總線的反射,電路板的設(shè)計(jì)也更加困難。數(shù)據(jù)路徑寬度為32或64位的并行線也對(duì)時(shí)序有苛刻的要求。
根據(jù)以往經(jīng)驗(yàn),PCI-SIG(PCI特別興趣小組)與行業(yè)內(nèi)的領(lǐng)先公司合作,定義了PCI的下一代標(biāo)準(zhǔn)。新標(biāo)準(zhǔn)最初被稱為3G IO(第三代輸入輸出),后來(lái)改名為大家熟悉的PCI Express。PCI Express的首個(gè)規(guī)范于2002年4月公布,其解決了原有PCI標(biāo)準(zhǔn)的所有限制因素。為了克服無(wú)端接的大量并行總線并增加帶寬,PCI Express轉(zhuǎn)變?yōu)檫\(yùn)行速率2.5Gbps的串行鏈路,提供兩個(gè)方向同時(shí)進(jìn)行的2Gbps的原始數(shù)據(jù)率。為了滿足更高的帶寬要求,規(guī)范允許使用幾個(gè)并行的“通道”。因此對(duì)于目前計(jì)算機(jī)的低帶寬應(yīng)用,有很多x1和x4通道;對(duì)于有高帶寬的要求,例如顯卡,則有x16的插槽。
由于PCI Express規(guī)范使用基于層的協(xié)議,類似于OSI的層次模型,它很容易改變物理層和保留上層協(xié)議。這種做法已被最近發(fā)布的PCI Express 2.0規(guī)范所采納,使得鏈路速度高達(dá)5Gbps。然而,大多數(shù)新的設(shè)計(jì)開(kāi)始仍然是基于PCI Express 1.1版本的2.5Gbps。
一個(gè)PCI Express系統(tǒng)可以用幾個(gè)部件組成。所有的系統(tǒng)都需要有一個(gè)根聯(lián)合體(Root Complex)對(duì)整個(gè)系統(tǒng)進(jìn)行管理。交換設(shè)備(Switch)是用來(lái)將幾個(gè)卡連接到另一個(gè)PCI Express鏈路,“端設(shè)備”則代表了用戶應(yīng)用。橋接是端設(shè)備的特殊形式,可以將舊的PCI應(yīng)用連接至PCI Express總線。FPGA主要用于端設(shè)備或橋接應(yīng)用。
在PCI Express應(yīng)用中FPGA起著重要的作用,主要有三種設(shè)計(jì)方法:
*PCI-Express至PCI橋和FPGA
*外部的PCI-Express PHY和FPGA
*PCI-Express的PHY集成在FPGA之中
第一種使用PCI-Express至PCI橋的方法,優(yōu)點(diǎn)是可以重用舊的PCI設(shè)計(jì),但由于額外的橋接單元,成本很高。在橋和FPGA之間,這個(gè)應(yīng)用仍然被PCI的缺點(diǎn)所限制,在成本方面處于不利地位。

圖2A和2B
當(dāng)僅需純粹的PCI Express接口,而不需要其它邏輯時(shí),外部的PCI Express PHY和FPGA(圖2A)相結(jié)合可能極具吸引力。利用被稱為PIPE的并行接口,PCI Express PHY可以連接到FPGA。雖然PIPE接口被認(rèn)為是一個(gè)標(biāo)準(zhǔn),但不同廠商在實(shí)現(xiàn)方面有著細(xì)微的差別,因此物理層芯片就不容易互換。此外,工業(yè)級(jí)的外部PCI Express PHY芯片也不太容易買到,要不就是價(jià)格昂貴。此外,許多應(yīng)用程序使用領(lǐng)先的器件,可用的領(lǐng)先的PCI Express PHY芯片也是很有限的。
因此,如果只有一個(gè)PCI Express接口鏈路,而且在FPGA中只要少量的額外邏輯(除了溫度范圍的限制,以及可用的領(lǐng)先器件),這種做法頗有意義。對(duì)于所有其他應(yīng)用,最好是考慮一個(gè)整合的解決方案,如圖2B所示。
如果采用整合的解決方案,首個(gè)挑戰(zhàn)是尋找一個(gè)低成本的器件。在過(guò)去,PCI Express需要的串行鏈路一般只在高端昂貴的FPGA中才有。然而,今天許多應(yīng)用需要較低成本的解決方案。中檔LatticeECP2M,或最近推出的LatticeECP3 FPGA系列,擁有適合這種應(yīng)用的一些功能。這兩種器件都集成了可用于實(shí)現(xiàn)PCI Express x1或x4的串行通道。除了低成本優(yōu)勢(shì)外,與高端FPGA解決方案相比,這兩類器件的功耗也非常低。該“節(jié)能方案”使系統(tǒng)工程師能夠降低功耗,因此只需要使用較小供電電源。圖3展示了近期推出的ECP3 FPGA系列的結(jié)構(gòu)圖。

圖3:LatticeECP3中檔FPGA框圖,內(nèi)有集成的SERDES模塊。
利用這些FPGA的另一個(gè)優(yōu)點(diǎn)是它們能夠處理PCI Express使用的擴(kuò)頻時(shí)鐘。許多其他的“單芯片”解決方案推薦使用外部的PLL和去除抖動(dòng)來(lái)處理時(shí)鐘,這意味著電路板上會(huì)有兩到三個(gè)額外的器件。這些器件也可用在工業(yè)溫度范圍。
既然這些FPGA的串行鏈路只能實(shí)現(xiàn)物理層的SERDES部分,所以需要額外的邏輯來(lái)實(shí)現(xiàn)完整的PCS。這由軟IP核來(lái)完成,它可以配置成x1或x4 PCI Express端點(diǎn)。萊迪思的ispLEVER設(shè)計(jì)軟件包括一個(gè)稱為IPexpress的工具,通過(guò)GUI來(lái)配置功能,如PLL、存儲(chǔ)器等,還有軟IP。PCI Express核可從萊迪思網(wǎng)站上下載,使用IP Express進(jìn)行配置并產(chǎn)生編程文件。即使沒(méi)有有效許可證,也可以運(yùn)行這個(gè)應(yīng)用數(shù)小時(shí),從而獲得一個(gè)全面的系統(tǒng)*估。
為了符合系統(tǒng)的需要,配置PCI Express核的某些功能是非常重要的。例如, PCI Express提供不同的有效載荷大小。有效載荷的規(guī)模越大,核中需要的FIFO也越大。為了節(jié)約資源,可以通過(guò)IPexpress來(lái)選擇針對(duì)PCI Express核的正確有效載荷的大小。還有一些應(yīng)加以調(diào)整的其他參數(shù),以針對(duì)系統(tǒng)要求優(yōu)化FPGA的利用率。
在許多項(xiàng)目開(kāi)發(fā)中,只有在開(kāi)發(fā)后期才能得到樣機(jī)電路板。為了熟悉PCI Express的協(xié)議,可從萊迪思獲取PCI Express設(shè)計(jì)套件。該套件包含了電路板,可用于x1或x4的插槽,并有一些演示配置:
* 基本方法
o 用戶訪問(wèn)內(nèi)存和寄存器
o 在電腦上運(yùn)行演示與在電路板上的PCIe IP核之間提供簡(jiǎn)單的互動(dòng)
* 吞吐量
o 在PCIe核和SERDES之間演示和測(cè)量帶寬性能
o 使用DMA在PC機(jī)內(nèi)存和PCI Express卡之間傳送數(shù)據(jù)
設(shè)計(jì)人員可以選擇使用其中一個(gè)準(zhǔn)備好的編程文件,在30分鐘內(nèi)構(gòu)建一個(gè)完整的演示。套件不僅提供了硬件設(shè)計(jì)文件,而且還提供驅(qū)動(dòng)程序和運(yùn)行在PC上的應(yīng)用程序,這樣就為設(shè)計(jì)人員的應(yīng)用提供了一個(gè)良好的起點(diǎn)。圖4展示了萊迪思的一個(gè)完整的PCI Express演示設(shè)計(jì)。

圖4:Lattice PCI Express的演示。
用協(xié)議分析儀和示波器可以調(diào)試系統(tǒng)。但是,利用功能或者RTL級(jí)仿真時(shí),設(shè)計(jì)人員已經(jīng)可以找到許多問(wèn)題。
系統(tǒng)調(diào)試的三個(gè)主要方法:
* 串行環(huán)回
* 激勵(lì)發(fā)生器和測(cè)試器
* 總線功能模型
萊迪思的PCI Express核包含一個(gè)簡(jiǎn)單的采用串行環(huán)回的測(cè)試平臺(tái)。借助一些來(lái)自測(cè)試平臺(tái)的互動(dòng)建立PCI Express鏈路,并發(fā)送一些數(shù)據(jù)包。這是仿真設(shè)計(jì)的非?;镜姆椒?。
一個(gè)更先進(jìn)的方法是使用激勵(lì)發(fā)生器和測(cè)試器。FPGA中串行鏈路的仿真模型被一個(gè)模型所取代,后者生成數(shù)據(jù)包,并檢查FPGA內(nèi)的邏輯響應(yīng)。
最全面且成本昂貴的方法是建立總線功能模型。有幾個(gè)供應(yīng)商提供PCI Express的仿真模型。根據(jù)總線功能模型,設(shè)計(jì)人員可以測(cè)試應(yīng)用程序,以及FPGA的串行鏈路與整個(gè)系統(tǒng)的互動(dòng)。
-
FPGA
+關(guān)注
關(guān)注
1660文章
22427瀏覽量
636827 -
PCI
+關(guān)注
關(guān)注
5文章
689瀏覽量
134306 -
總線
+關(guān)注
關(guān)注
10文章
3043瀏覽量
91694
發(fā)布評(píng)論請(qǐng)先 登錄
PCI Express標(biāo)準(zhǔn)技術(shù)性概述
針對(duì)可編程PCI Express解決方案的評(píng)估方法
PCI Express 至PCI 橋設(shè)計(jì)原理及應(yīng)用
PCI Express插槽,什么是PCI Express插槽
采用中檔FPGA設(shè)計(jì)面向PCI Express系統(tǒng)的解決方案
PCI Express總線
LSI推出PCI Express固態(tài)存儲(chǔ)解決方案樣片
PCI Express解決方案的介紹
如何創(chuàng)建和使用Xilinx的UltraScale PCI Express解決方案
PCI Express系統(tǒng)中DMA的基本功能介紹
PCI Express接口標(biāo)準(zhǔn)的特點(diǎn)及在FPGA中的應(yīng)用
WSN中LEACH協(xié)議局限性的分析與改進(jìn)
PCI標(biāo)準(zhǔn)的局限性及PCI Express系統(tǒng)的解決方案分析
評(píng)論