PCIe分岔--避免向英特尔接入数据流

描述

INVEA-TECH和CESNET(捷克共和国国家研究所和教育网)演示了一个方法,并行使用两个FPGA PCIe Gen 3×8接口来维持从100Gbps以太网端口到CPU主机的数据传输。这个概念叫做分岔(bifurcation),几年前在英特尔Core I7 CPU中被引进。Intel 试图允许将CPU的PCIe的16个端口分开,使得他们可以处理两个独立的任务,当然相反模式下也能工作,比如将两个外部PCIe8端口合并为一个16端口。使用分岔在单个FPGA上建立一个100Gbps的系统,这消除了对额外PCIe切换芯片的需求,可以节省成本、板上空间和大约6W的功率。

CESNET和INVEA-TECH进行了一系列实验来展示PCIe分岔的好处。测试程序包括装载一块赛灵思Virtex-7 H580T 3D FPGA的FPGA卡。两块FPGA PCIe x8硬块接入卡上的PCIe x16卡槽。运行了Linux设备驱动的FPGA固件将数据传输给位于PC RAM中的环形缓冲区。PCIe x8接口使用round-robin的方式将数据传输给单个缓存。下面的方块图显示了实验过程:

数据

在FPGA生成的超过100Gbps的流量中,例化了随机的分组数据生成器。下图显示了传输速率的结果:

数据

DMA引擎在FPGA组包中例化,因此分组长度不会影响原始PCIe吞吐量。可达到的吞吐量为107Gbps。注意到,至少需要8个CPU核为较小的分组缩放进程,以达到目标的100Gbps。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分