PCIe

转向32GT/s PCI Express设计所面临的挑战

作者:Rita Horner,Synopsys高级技术营销经理

在计算和网络应用中采用PCI Express® (PCIe) 接口非常普遍,这些应用包括中央处理器(CPU)、图 形 处 理器(GPU)、网络接口卡(NIC)、交换机、服务器以及诸如固态设备(SSD)之类更 新型的存储系统,等等。然而,当今的网络和快速兴起的人工智能(AI)应用均 要求在加速器 和GPU中 采用更大的带宽以 及更快的互连,以便发送和接收更大量的数据。

鉴于PCIe在此类应用中的广泛使用以及越来越大的带宽需求,PCI-SIG产业联盟最近宣布了最新规范PCIe 5.0,它把数据速率提高到32GT/s,并使链路带宽增加一倍,从64GB/s 提高到128GB/s。 图1显示了PCIe 互连和总带宽的演变。

图1:PCI-SIG带宽增长

图1:PCI-SIG带宽增长

PCI、PCIX、PCIE、CPCI介绍

一、PCI:

PCI,外设组件互连标准(Peripheral Component Interconnection),是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准。此标准允许在计算机内安装多达10个遵从PCI标准的扩展卡。最早提出的PCI总线工作在33MHz频率之下,传输带宽达到133MB/s(33MHz * 32bit/s),基本上满足了当时处理器的发展需要。随着对更高性能的要求,1993年又提出了64bit的PCI总线,后来又提出把PCI 总线的频率提升到66MHz。目前广泛采用的是32-bit、33MHz的PCI 总线,64bit的PCI插槽更多是应用于服务器产品。从结构上看,PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供信号缓冲,能在高时钟频率下保持高性能,社和为显卡,声卡,网卡,MODEM等设备提供连接接口,工作频率为33MHz/66MHz。

访问PCIe BAR空间

google了一圈,发现xilinx论坛的一个回答比较好, 链接如下:

https://forums.xilinx.com/t5/PCI-Express/PCI-express-Base-Address-Regist...

里面讲了如何访问BAR指定的mem空间。

下面对BAR空间以及配置空间的访问做一个系统的总结,其实就是在回答以下几个问题:
1. PCIe中四种tlp和BAR空间的关系是怎样的?
2. tlp是怎么发起的?
3. tlp是怎么到相应的下游设备的?

一、四种tlp和BAR空间的关系

四种传输如下

类型 说明
mem req tlp 访问mem空间
io req tlp 访问io空间

视频:通过 PCIe 进行调试

了解在 Vivado 中通过 PCIe 进行远程调试的优势。该 QTV 主要介绍所有软硬件组件以及向 PCIe 设计添加 XVC 功能所需的步骤。

UltraScale系列芯片包含PCIe的Gen3 Integrated Block IP核在内的多种不同功能的IP核都会有一页设置为PCIe:BARs,设置IP核的Base address register 的相关参数,如图1所示:

图1 PCIe:BARs 配置图

图1 PCIe:BARs 配置图

Xilinx 7系列(KC705/VC709)FPGA的EDK仿真

作者:俞则人

一:前言

好久没写博客了,前段时间有个朋友加微信请教关于PCIe的一些学习方法。本人也不是专家,只是略知一些皮毛。对于大家反馈的问题未必能一一解答,但一定知无不言。以后我会常来博客园看看,大家可以把问题直接在评论区提出来。这篇博客是应部分网友的要求写的,Xilinx升级到7系列后,原来的pcie ip核trn接口统统转换成了axis接口,这可愁坏了之前用xapp1052的朋友,一下子不好用了,该怎么办?对此我的想法是:如果您两年左右的verilog代码经验,建议您直接使用axis接口,如果您觉得使用不方便,大可在外面再包一层您自己觉得好用的接口。博主公司有这方面的技术积累,但涉及到商业利益,我不能在此出售源代码,如有私下合作,可谈。PCIe_to_RapidIO, PCIe_to_FC, PCIe_to_Enet等各类接口转换都没问题。如果您刚接触PCIe,想要更清楚得理解axis接口的PCIe IP核是如何工作的,那么这篇系统级的博客对您将会非常有用,同时博主也会给出一个用Block_design搭的带有DMA功能的简易EP,大家只要自己写个简单的控制逻辑就可以操作EP端的DMA,对于没有经验的工程师,是一个比较容易的技术迁移。

X4 PCIe Gen2参考设计

该演示展示了S2C的4-Lane PCIe Gen2 GTX Module运行在S2C Virtex-7 Prodigy Logic Module的特性。GTX连接器实现PCIe接口和Samtex GTX接口的物理互连变换。

GTX收发器信号抓取到Virtex-7 Prodigy Logic Module的GTX连接器上。通过连接S2C的4-Lane PCIe Gen2 GTX Module和Virtex-7 Prodigy Logic Module,运行速度最高科大8Gbps。

通过参考设计的演示来证明4-Lane PCIe Gen2和S2C的硬件平台联合工作的有效性。PCIe设备可以在Windows或者Linux工作站上识别。PCIe设备的配置信息,如通道宽度、链接速度、供应商ID和子系统ID可在工作站上读取。S2C的4-Lane PCIe Gen2 GTX Module向下兼容PCIe Gen1,所以PCIe Gen1应用的开发和验证亦可在S2C的Virtex-7 Prodigy Logic Module上进行。

功能

  • 通过PCIe接口对FPGA内实例化的块内存进行访问
  • Xilinx 7系列集成了PCI Express解决方案,包括:
  • 基于PCIe的高速接口设计

    作者:李晓宁,姚远程,秦明伟 2016年微型机与应用第1期

    摘要:PCIe总线是第三代I/O总线的代表,提供高性能、高速、点到点的串行连接,支持单双工传输,通过差分链路来互连设备。该设计由Xilinx公司的Virtex-6 FPGA平台和PC机组成,为了实现PFGA与CPU之间的高速通信,开发了基于FPGA IPcore 的PCIe总线 DMA数据传输平台。通过硬件测试表明,该接口设计方案成本低,传输速率可以达到 1.5 Gb/s。

    0引言

      随着电子行业的飞速发展,人们对数据处理能力和存储速率的要求越来越高,并行数据传输的PCI总线技术逐渐成为系统整体性能提升的瓶颈[1]。尤其在接收机的设计中,总线架构关系到系统的整体性能。串行点对点的PCIe总线克服了PCI总线在系统带宽、传输速度等方面固有的缺陷,有效地提高了系统的整体性能。目前实现PCIe总线功能有两种方法:采用FPGA实现PCIe的功能[2];使用PCIe桥接芯片。由于通过FPGA实现PCIe接口要比使用PCIe桥接芯片更加灵活,成本更低,可靠性更好,所以采用前者完成FPGA与PC机之间的信息的交互。

    PCIe调试心得_DMA part3

    作者: East  FPGA那点事儿

    上一章讲述了PCIe总线如何提高DMA的效率。

    本章以服务器常用的4通道1000M以太网卡为例讲述如何实现多个虚拟DMA通道。

    1.多通道DMA发

    4通道以太网卡的数据相互独立,需要4个虚拟DMA发通道实现4路数据独立传输。4个虚拟DMA发通道如下:

    4个虚拟DMA发通道

    视频: UltraScale FPGAs PCIe 性能演示

    同步内容