1. PCI Express技术简介
PCI Express(PCI-E)是一种强大可靠、可伸缩、灵活并且合乎成本效益的 I/O 互连方式,采用目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。
PCI Express 的主要特点有:
l 和PCI 接口兼容的串行架构:无需改变当前的操作系统,同时还能保持原有的平台配置和器件驱动器接口。不仅消除了局限性,还能够简单、快速地整合到未来系统中,可供业内广泛采用。
l 带宽可升级性与频率和/或互联宽度:通过拓宽通道可以提高每条链路的带宽,以便满足应用要求,如台式机内更宽的图形端口和服务器平台内的多个总线桥接(PCI Express 到 PCI-X、千兆位级以太网或 InfiniBand)。指标规定接口宽度为 x1、x2、x4、x8、x12、x16 或 x32 通道。独有的频率可升级性和源同步时钟,简化了数据同步。此外,还包括积极的功耗管理、QoS、isochrony、热插拔和RAS功能。
l 分层架构和分组协议:该架构由软件层、交易层、数据链路层和物理层组成。分层实现了可升级性、模块化和设计重用。通过时间复用对电路交换,不会发生带宽浪费的情况。
2. Xilinx公司的PCI Express解决方案
PCI-E作为高速链路技术,需要设计者具有强的高速模拟设计技能和高速逻辑设计技能。Xilinx为PCI-E设计人员提供了一种快速的解决方案,利用芯片内嵌的高速收发模块和可编程结构,来简化PCI-E的实现难度。此外,FPGA器件可提供经过模拟电路验证的互用性测试的能力,在设计之前就可保证产品的兼容性。
l 代码支持
(介绍IP Core)
l 完整的开发板套件
为了在更方便地运用PCI Express 总线高性能的同时, 进一步降低开发难度, 设计应用系统时可以利用, Xilinx PCI Express 开发板等,目前包括M(给出开发板的型号)。这些开发板符合PCIExpress规范, 并且通过了相关测试。通常,这些开发板由上述的可编程设计方案或桥接设计方案实现PCI Express接口, 并提供相应的驱动程序, 同时在板上集成了可编程逻辑器件(CPLD或FPGA)和其它必要的资源, 为用户留有充足的I/O口和大量FPGA 引脚, 用户通过配置接口芯片和对FPGA 编程即可方便地实现所需功能, 从而避免了布板连线的麻烦。采用这种设计方案可以有效地缩短研发周期, 降低研发风险。但此类开发板的价格一般较高,并不适用于大批量的应用。
10.4.2 基于FPGA的PCI Express接口开发1. PCI-E总线原理
PCI-E的连接是建立在一个双向的序列的(1-bit)点对点连接基础之上,这称之为“传输通道”。与PCI 连接形成鲜明对比的是PCI是基于总线控制,所有设备共同分享的单向32位并行总线。PCIe是一个多层协议,由一个对话层,一个数据交换层和一个物理层构成。物理层又可进一步分为逻辑子层和电气子层。逻辑子层又可分为物理代码子层(PCS)和介质访问控制子层(MAC)。 PCI-E总线采用分层传输协议,具体发送过程如图M所示。设备或应用程序的信息(包括头和数据部分)在传输层(Transition Layer)计算可选的端到端CRC(ECRC)字段, 并将该字段附加到数据包中, 形成传输层数据包TLP(Transition Layer Packet); TLP 在数据链路层(Data Link Layer)添加2 个字节的序列码和4 个字节链路CRC (LCRC), 形成数据链路层数据包DLLP(Data Link Layer Packet); DLLP 在物理层(PhysicalLayer) 再添加1 个字节的起始帧和1 个字节的结束帧形成物理层数据包PLP(Physical Layer Packet)。然后, PLP 在物理层经过字节拆分、扰频、8b 10b 编码、并串转换等过程将数据包由差分驱动接口以2.5Gbps( 目前工作频率下) 的速率传输出去, 接收设备执行大致相反的过程完成数据包接收和拆解。其中, 字节拆分用于将数据包的字节分配到各个通道上(只适用于×1 以上的通道), 以充分利用各通道来加快数据传输速度。
图M PCI总线的工作流程
|