加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1. PCI Express規(guī)范演進(jìn)
    • 2. 7系列FPGA PCI Express概述
    • 3. 用于Virtex XT和HT設(shè)備的PCI Express Gen 3集成IP
    • 4. 7系列FPGA的PCIe新功能
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Xilinx 7系列FPGA PCI Express IP核簡介

2小時(shí)前
167
閱讀需 20 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

前言:Xilinx?7系列FPGA集成了新一代PCI Express集成塊,支持8.0Gb/s數(shù)據(jù)速率的PCI Express 3.0。本文介紹了7系列FPGA PCIe Gen3的應(yīng)用接口及一些特性。

1. PCI Express規(guī)范演進(jìn)

PCIe是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn),旨在替代傳統(tǒng)的PCI和AGP總線標(biāo)準(zhǔn),提供更高的數(shù)據(jù)傳輸速率和更好的信號(hào)完整性?。PCIe規(guī)范自2003年推出以來,已經(jīng)從最初的1.0升級(jí)到了7.0,提供了更高的帶寬和速度。?表1總結(jié)了PCIe基本規(guī)范的演變。

表1:PCIe基本規(guī)范的演變

1.由于數(shù)據(jù)包開銷、流量開銷和其他系統(tǒng)效率低下,可實(shí)現(xiàn)的系統(tǒng)帶寬小于有效帶寬。

除了修訂基本規(guī)范外,PCI-SIG還推廣了支持特定應(yīng)用的配套規(guī)范。一個(gè)正在迅速采用的配套規(guī)范是I/O虛擬化,特別是Single Root I/O虛擬化(SR-IOV)。SR-IOV大大提高了共享和虛擬化環(huán)境中的I/O利用率,Xilinx 7系列FPGA支持此功能。

2. 7系列FPGA PCI Express概述

每個(gè)Xilinx 7系列FPGA系列都支持PCIe集成根端口和端點(diǎn)解決方案。Artix?-7設(shè)備最多支持Gen2x4硬核配置。Kintex?-7和Virtex-7 T設(shè)備最多支持Gen2x8硬核配置。Virtex-7 XT和HT設(shè)備具有集成的Gen 3硬核內(nèi)核,最多8個(gè)通道。除了PCIe IP的集成外,第三方聯(lián)盟合作伙伴Northwest Logic和PLDA還提供針對(duì)Kintex-7和Virtex-7系列的Gen3x8軟IP解決方案。表2總結(jié)了每個(gè)器件家族支持的IP層級(jí)。

表2:7系列FPGA支持的Lane寬度和速度等級(jí)

7系列FPGA的集成IP可以使用簡單的基于GUI的工具流進(jìn)行配置,以創(chuàng)建端點(diǎn)、根端口或根復(fù)合體解決方案。系統(tǒng)設(shè)計(jì)者能夠控制許多可配置的參數(shù),如通道寬度、線速率、最大有效載荷大小、FPGA邏輯接口速度、參考時(shí)鐘頻率和基址寄存器設(shè)置。另外,Xilinx還提供參考設(shè)計(jì)以加快設(shè)計(jì)進(jìn)度。這些目標(biāo)參考設(shè)計(jì)包括PCIe設(shè)計(jì)的所有組件,如DMA控制器、自定義IP、設(shè)備驅(qū)動(dòng)程序軟件應(yīng)用程序。

3. 用于Virtex XT和HT設(shè)備的PCI Express Gen 3集成IP

Virtex-7 XT和HT設(shè)備支持多個(gè)集成的Gen 3集成塊,每個(gè)集成塊最多八個(gè)通道。該集成塊能夠使用128B/130B編碼以每通道8.0Gb/s的規(guī)定數(shù)據(jù)速率運(yùn)行。表3顯示了具有Gen 3集成塊的7個(gè)系列器件以及每個(gè)設(shè)備的塊數(shù)。

表3:Virtex-7 系列具有Gen 3功能的硬塊器件

3.1 PCIe Gen 3收發(fā)器在7系列中的優(yōu)勢(shì)

GTH收發(fā)器包含允許在PCIe Gen 3數(shù)據(jù)速率下非常穩(wěn)健運(yùn)行的功能。這些功能包括:

?收發(fā)器加重/均衡

?自適應(yīng)連續(xù)時(shí)間線性均衡器(CTLE)

?自適應(yīng)決策反饋均衡器(DFE)

收發(fā)器加重電路設(shè)計(jì)用于克服高頻信道插入損耗,并實(shí)現(xiàn)為3抽頭FIR濾波器。這些抽頭是可編程的,通常,用戶不需要顯式設(shè)置抽頭值,因?yàn)檫@是由PCIe Gen 3鏈路均衡協(xié)議自動(dòng)處理的。

GTH收發(fā)器中的CTLE和DFE電路協(xié)同工作,可補(bǔ)償高達(dá)20dB的損耗。CTLE采用全自動(dòng)自適應(yīng)算法,持續(xù)監(jiān)測(cè)輸入信號(hào),并優(yōu)化高通濾波器功能的頻率響應(yīng)。這種自適應(yīng)功能減輕了用戶的負(fù)擔(dān),解決了過均衡或欠均衡的問題。

DFE由七個(gè)固定抽頭和四個(gè)獨(dú)立的滑動(dòng)抽頭實(shí)現(xiàn)。當(dāng)PCIe在背板上使用時(shí),這非常有用,這在許多有線通信數(shù)據(jù)中心應(yīng)用中都很常見。與CTLE類似,DFE也完全自適應(yīng)于抽頭值和滑動(dòng)抽頭的位置。

3.2 PCIe Gen3數(shù)據(jù)吞吐量

PCI-SIG的目標(biāo)是將每一代PCIe的有效數(shù)據(jù)吞吐量翻一番,第3代也不例外。重要的是要注意,有效數(shù)據(jù)吞吐量(有時(shí)稱為有效數(shù)據(jù)傳輸速率)與原始數(shù)據(jù)傳輸速率(如8Gb/s線路速率)不同。有效數(shù)據(jù)吞吐率取決于許多變量,例如:

?Lane寬度

?線速率

?系統(tǒng)最大有效負(fù)載大小和最大讀取請(qǐng)求大小

?TLP開銷

?鏈路管理(數(shù)據(jù)鏈路層數(shù)據(jù)包)

?編碼丟失

?DMA開銷

當(dāng)配置為在具有256字節(jié)系統(tǒng)最大有效負(fù)載大小的真實(shí)系統(tǒng)中運(yùn)行的具有x8 Gen 3功能的內(nèi)核時(shí),用于PCIe的7系列Gen 3集成塊能夠?qū)崿F(xiàn)每個(gè)方向超過7GB/s的持續(xù)吞吐量。

3.3 與內(nèi)存接口

大多數(shù)PCIe應(yīng)用程序使用某種類型的內(nèi)存進(jìn)行數(shù)據(jù)緩沖,通常是DDR SDRAM。

圖1:DDR3內(nèi)存與Virtex-7 XT/HT FPGA的接口

在確定內(nèi)存帶寬要求時(shí),設(shè)計(jì)人員應(yīng)使用2.5倍的帶寬乘數(shù)來考慮讀寫方向和任何額外的開銷,如內(nèi)存尋址。

例如,如果從PCIe鏈路持續(xù)傳輸6.5GB/s,并且所有這些數(shù)據(jù)都緩沖在DDR3內(nèi)存中,則設(shè)計(jì)人員可以計(jì)算以下內(nèi)容以確定內(nèi)存帶寬和/或接口寬度要求。

確定內(nèi)存帶寬要求

持續(xù)傳輸所需的總內(nèi)存帶寬:

6.5 GB/s*2.5=16.25 GB/s

示例:如果使用具有1866Mb/s DDR3功能的內(nèi)存,設(shè)計(jì)人員可以計(jì)算數(shù)據(jù)接口必須有多寬才能跟上16.25 GB/s。轉(zhuǎn)換為Gb/s:

16.25GB/s*8位/字節(jié)=130Gb/s。

計(jì)算DDR3內(nèi)存所需的接口寬度:

每個(gè)引腳130 Gb/s÷1866 Mb/s=約70個(gè)引腳

此計(jì)算表明,以1866 Mb/s運(yùn)行的標(biāo)準(zhǔn)72針DDR3接口可以跟上x8 Gen 3 PCI Express鏈路的全雙工數(shù)據(jù)。支持較慢DDR數(shù)據(jù)速率(如1600 Mb/s)的FPGA需要額外的引腳和組件。

3.4 PCIe Gen3其他高性能功能

PCIe Gen3集成塊包含許多功能,可實(shí)現(xiàn)更好的系統(tǒng)性能。這些功能包括:

?用于流量類型的高性能專用AXI4接口(增強(qiáng)型AXI-4流)

?跨越256位寬接口的數(shù)據(jù)

?內(nèi)置標(biāo)簽管理,最多可處理64個(gè)未完成的讀取請(qǐng)求

?靈活的接收緩沖;可配置高達(dá)8KB的請(qǐng)求空間和16KB的完成空間

?內(nèi)置多功能和SR-IOV支持

AXI4接口上的奇偶校驗(yàn)保護(hù)

?對(duì)所有內(nèi)部緩沖存儲(chǔ)器進(jìn)行ECC保護(hù)

?可調(diào)整大小的基址寄存器(RBAR)

?地址翻譯服務(wù)(ATS)

?原子操作事務(wù)

?TLP處理提示能力(TPH)

?優(yōu)化緩沖區(qū)沖洗/填充能力(OBFF)

?動(dòng)態(tài)功率分配能力(DPA)

?功率預(yù)算能力(PB)

3.5 可擴(kuò)展、優(yōu)化的AXI接口

Xilinx部署的AMBA?4 AXI4規(guī)范允許以一致的方式連接IP塊,同時(shí)更好地利用設(shè)計(jì)資源。

所有適用于7系列FPGA的PCIe解決方案均按照AMBA4 AXI4規(guī)范設(shè)計(jì)。AXI接口提供了三種風(fēng)格,每種風(fēng)格都針對(duì)不同的客戶用例量身定制。

1.Basic AXI4-Stream:此接口類似于舊Xilinx FPGA系列中的傳統(tǒng)TRN接口。該接口是將基于TRN的設(shè)計(jì)遷移到7系列設(shè)備的最簡單接口,由發(fā)送和接收AXI4流接口組成。此接口可用于Artix-7、Kintex-7和Virtex-7 T FPGA上的PCI Express解決方案(在Virtex-7 XT設(shè)備上不可用)。

圖2:AXI4流基本界面

2.Enhanced AXI4-Stream:此接口類似于基本的AXI4 Stream接口,但通過將數(shù)據(jù)流拆分/組合為Completer和Requester流對(duì)其進(jìn)行了擴(kuò)展。增強(qiáng)版本還允許可選功能,如數(shù)據(jù)包去分級(jí)、數(shù)據(jù)重新排列和完成標(biāo)簽管理。此接口可用于PCI Express解決方案的Virtex-7 HT和XT FPGA(在Virtex-7 T、Artix-7和Kintex-7設(shè)備上不可用)。見圖3。

圖3:增強(qiáng)型AXI4流接口

3.AXI4:這是一個(gè)內(nèi)存映射接口,用于基于處理器系統(tǒng)的內(nèi)核。此接口是嵌入式設(shè)計(jì)的遷移路徑,可用于PCIe解決方案的Artix-7、Kintex-7和Virtex-7 T、HT和XT FPGA。

圖4:AXI4接口

4. 7系列FPGA的PCIe新功能

7系列FPGA PCIe解決方案中添加了許多新功能,為設(shè)計(jì)人員提供了PCIe性能、靈活性和易用性。

4.1 PCIe IP塊的快速初始化

PCIe基本規(guī)范要求PCIe鏈路在電源穩(wěn)定后100ms內(nèi)準(zhǔn)備好進(jìn)行鏈路訓(xùn)練。傳統(tǒng)上,這對(duì)大型FPGA(>100000個(gè)邏輯單元)來說是一個(gè)挑戰(zhàn),因?yàn)槭褂贸R姷?a class="article-link" target="_blank" href="/baike/522796.html">閃存設(shè)備配置大型FPGA可能需要100多ms。

傳統(tǒng)上使用"蠻力"方法來解決100ms的要求。通常,設(shè)計(jì)人員使用最快、最寬的閃存設(shè)備來實(shí)現(xiàn)必要的帶寬,以滿足配置時(shí)間要求。在某些情況下,需要使用多個(gè)閃存設(shè)備和CPLD來實(shí)現(xiàn)所需的帶寬。雖然從軟件的角度來看,這可能是最簡單的方法,但由于BOM成本的增加,它通常是最昂貴的。這種方法還使用了寶貴的FPGA I/O,特別是在使用寬輸入總線時(shí),并且隨著Xilinx FPGA的尺寸增長到200萬個(gè)邏輯單元甚至更高,這種方法很快就會(huì)過時(shí)。

注意:此問題通常僅限于端點(diǎn)附加卡設(shè)計(jì)。

4.2 Tandem PROM和Tandem PCIe

Tandem PROM方法是7系列器件中的新方法,是最簡單、最便宜的實(shí)現(xiàn)方法。在構(gòu)建PCIe IP核時(shí),用戶指示實(shí)現(xiàn)工具通過簡單的軟件交換機(jī)創(chuàng)建兩級(jí)比特流。比特流的第一階段僅包含配置PCIe集成塊所需的配置幀。配置后,F(xiàn)PGA啟動(dòng)序列發(fā)生,PCIe鏈路變?yōu)榛顒?dòng)狀態(tài),因此很容易滿足100毫秒的要求。然后,在PCIe枚舉/配置系統(tǒng)過程中加載FPGA配置的其余部分。兩階段比特流方法可以使用廉價(jià)的閃存設(shè)備來保存比特流。

圖5:串聯(lián)PROM方法

Tandem PCIe解決方案基于Tandem PROM技術(shù)構(gòu)建,允許用戶通過PCI Express鏈路加載第二級(jí)比特流。

4.3部分重構(gòu)

要實(shí)現(xiàn)通過PCIe連接的多個(gè)用戶應(yīng)用程序,可以使用部分重新配置工具流。該方法依賴于比特流壓縮來滿足100ms的要求。初始比特流包含與內(nèi)部配置訪問端口(ICAP)連接的PCe IP核。FPGA的大部分未配置。然后通過使用比特流壓縮來減小初始比特流的大小,從而允許快速初始化。

FPGA未配置部分的部分比特流通過PCe鏈路實(shí)時(shí)下載。使用部分重新配置工具流,設(shè)計(jì)者創(chuàng)建一個(gè)或多個(gè)可以駐留在主機(jī)中的應(yīng)用程序(部分比特流)。高性能計(jì)算市場(chǎng)中的協(xié)同處理算法加速器等應(yīng)用受益于這種動(dòng)態(tài)可重編程性。

圖6:部分重新配置工具流程

4.4數(shù)據(jù)跨接

Xilinx對(duì)7系列FPGA中的PCIe集成塊進(jìn)行了許多增強(qiáng),以提高內(nèi)核的性能。大多數(shù)基于FPGA的解決方案要求用戶界面上的事務(wù)層數(shù)據(jù)包(TLP)以對(duì)齊的方式接收,即當(dāng)TLP結(jié)束時(shí)。在下一個(gè)時(shí)鐘周期之前,無法從IP核讀取下一個(gè)TLP。

這些解決方案在數(shù)據(jù)流中引入了缺口,從而降低了整體數(shù)據(jù)吞吐量。7系列FPGA能夠在用戶界面上跨包(允許一個(gè)TLP在同一時(shí)鐘周期結(jié)束,而另一個(gè)開始),從而允許PCIe內(nèi)核以全線速率運(yùn)行。這對(duì)于需要全線速帶寬的超高端應(yīng)用非常重要。對(duì)于不需要極端帶寬且更喜歡對(duì)齊數(shù)據(jù)包的應(yīng)用程序,增強(qiáng)的AXI Stream接口具有可選的對(duì)齊功能。

圖7:7系列數(shù)據(jù)跨接

除了支持跨數(shù)據(jù)包外,7系列FPGA還具有提高整體性能的功能,例如改進(jìn)了用戶對(duì)信用分配方案的控制,以及新的流量控制功能,使用戶能夠更精細(xì)地控制已發(fā)布和未發(fā)布的流量。

4.5 讀取請(qǐng)求完成的標(biāo)簽管理

當(dāng)傳輸大于典型系統(tǒng)讀取完成邊界大小64字節(jié)的讀取請(qǐng)求TLP時(shí),設(shè)計(jì)者必須承擔(dān)的一項(xiàng)艱巨任務(wù)是處理多個(gè)完成和無序返回。通常,設(shè)計(jì)者必須存儲(chǔ)傳出讀取請(qǐng)求的標(biāo)簽,然后將這些標(biāo)簽與傳入的完成TLP進(jìn)行協(xié)調(diào)和管理。此外,設(shè)計(jì)者還必須監(jiān)控錯(cuò)誤情況,如完成超時(shí)。

標(biāo)簽管理是發(fā)送讀取請(qǐng)求的總線主控DMA設(shè)計(jì)的一個(gè)必要功能,換句話說,就是從生產(chǎn)者“拉取”數(shù)據(jù)。這是通過管理傳出讀取請(qǐng)求的標(biāo)簽并將傳入的完成與這些標(biāo)簽進(jìn)行協(xié)調(diào)來實(shí)現(xiàn)的。Virtex-7 HT和XT設(shè)備的PCIe解決方案可選地提供此標(biāo)簽管理功能,大大簡化了DMA設(shè)計(jì)人員的設(shè)計(jì)要求。

4.6 多功能

7系列FPGA能夠作為多功能設(shè)備運(yùn)行。這種類型的設(shè)備具有多種功能,所有功能都共享一個(gè)PCIe鏈路。每個(gè)功能都有自己的PCIe配置頭空間。因此,從主機(jī)系統(tǒng)軟件的角度來看,每個(gè)功能在其自己的PCIe鏈路上都表現(xiàn)為一個(gè)單獨(dú)的PCIe設(shè)備。這大大簡化了設(shè)備驅(qū)動(dòng)程序的開發(fā)和可移植性,因?yàn)轵?qū)動(dòng)程序開發(fā)人員可以創(chuàng)建單個(gè)驅(qū)動(dòng)程序,并為每個(gè)硬件功能復(fù)制它。見圖8。

圖8:多功能設(shè)備

4.7 Single Root I/O虛擬化

Single Root I/O虛擬化(SR-IOV)允許在單個(gè)root(CPU子系統(tǒng))上運(yùn)行的多個(gè)客戶機(jī)(操作系統(tǒng))訪問I/O設(shè)備,而不會(huì)在不支持SR-I0V的虛擬化系統(tǒng)中產(chǎn)生軟件損失。類似于多功能設(shè)備如何為每個(gè)物理功能提供單獨(dú)的配置空間,SR-IOV通過為訪問I/O設(shè)備的每個(gè)客戶操作系統(tǒng)提供虛擬功能(虛擬配置空間)來工作。因此,每個(gè)客戶操作系統(tǒng)都有自己的I/O設(shè)備“視圖”。

圖9:SR-IOV虛擬配置空間支持SR-IOV的適配器在虛擬化環(huán)境中的I/O效率方面有了巨大的提高。SR-IOV不僅成為企業(yè)IT市場(chǎng)(數(shù)據(jù)中心)廣泛采用的標(biāo)準(zhǔn),而且開始在通信和存儲(chǔ)網(wǎng)絡(luò)市場(chǎng)取得進(jìn)展。

4.8 高級(jí)錯(cuò)誤報(bào)告和端到端CRC

高級(jí)錯(cuò)誤報(bào)告(AER)是一個(gè)可選功能,它為基于PCIe的系統(tǒng)中可能發(fā)生的錯(cuò)誤類型提供了更大的粒度和控制。在非AER PCIe系統(tǒng)中,只定義了三種類型的錯(cuò)誤:致命、非致命和可糾正。在大多數(shù)情況下,這三種定義的錯(cuò)誤類型沒有為系統(tǒng)提供足夠的信息,無法從錯(cuò)誤中優(yōu)雅地恢復(fù)。啟用AER后,系統(tǒng)軟件可以確定特定錯(cuò)誤的確切原因,并在可能的情況下嘗試恢復(fù)。

當(dāng)用戶啟用時(shí),7系列FPGA中的PCIe集成塊可選擇執(zhí)行自動(dòng)端到端CRC(ECRC)檢查和生成。已添加新端口以控制錯(cuò)誤生成,并在檢測(cè)到ECRC錯(cuò)誤時(shí)進(jìn)行標(biāo)記。設(shè)計(jì)者不再需要在FPGA中設(shè)計(jì)這種邏輯。AER和ECRC用于高可靠性和高可用性是關(guān)鍵驅(qū)動(dòng)因素的應(yīng)用。這些功能通常用于航空航天和國防、銀行和金融、通信和存儲(chǔ)等細(xì)分市場(chǎng)。

4.9 可調(diào)整大小的BAR

許多端點(diǎn)應(yīng)用程序包含大量的本地內(nèi)存,例如,高端圖形卡可以包含超過1 GB的DDR3 SDRAM。如基于32位的操作系統(tǒng),無法將如此多的內(nèi)存資源分配給單個(gè)實(shí)體。如果適配器沒有實(shí)現(xiàn)某種孔徑窗口方案,操作系統(tǒng)通常會(huì)忽略資源請(qǐng)求。因此,系統(tǒng)無法使用適配器??烧{(diào)整大小的基址寄存器(BAR)功能為設(shè)計(jì)者提供了一些控制,這樣就不會(huì)發(fā)生這種情況。如果系統(tǒng)無法分配適配器請(qǐng)求的全部資源,它可以將BAR調(diào)整到更小、更可接受的孔徑,從而使適配器仍能在系統(tǒng)內(nèi)運(yùn)行。7系列FPGA中的PCIe解決方案完全支持可調(diào)整大小的BAR功能。

4.10 Atomic操作

Atomic Operations引入了三種新的TLP類型,旨在通過直接在I/O總線(在本例中為PCIe)上創(chuàng)建標(biāo)準(zhǔn)同步原語(如互斥和自旋鎖)來提高系統(tǒng)性能和延遲。這在任何具有多個(gè)生產(chǎn)者和消費(fèi)者的系統(tǒng)中都很有用,例如多CPU系統(tǒng)。此功能的目標(biāo)應(yīng)用程序空間是協(xié)同處理和硬件加速適配器。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

專注FPGA技術(shù)開發(fā),涉及Intel FPGA、Xilinx FPGA技術(shù)開發(fā),開發(fā)環(huán)境使用,代碼風(fēng)格、時(shí)序收斂、器件架構(gòu)以及軟硬件項(xiàng)目實(shí)戰(zhàn)開發(fā),個(gè)人公眾號(hào):FPGA技術(shù)實(shí)戰(zhàn)。