Board logo

标题: FPGA与PCIE [打印本页]

作者: look_w    时间: 2017-10-20 20:50     标题: FPGA与PCIE

从并行到串行:


PCI Express(又称PCIe)是一种高性能、高带宽串行通讯互连标准,取代了基于总线的通信架构,如:PCI、PCI Extended (PCI-X) 以及加速图形端口(AGP)。


PCI-e的主要性能:



上述传统基于总线的互连几乎根本无法达到PCI-e所拥有的优秀性能。


PCI Express标准的制定是着眼未来的,它还在继续发展为系统提供更高的吞吐量。第一代PCIe约定的吞吐量是2.5千兆位/秒(Gbps),第二代则达到5.0Gbps,而最近发布的PCIe3.0标准则能支持8.0Gbps的速率。在PCIe标准继续利用最新的技术以提供不断增加的吞吐量的同时,利用分层协议、通过使驱动程序保持与现有PCI应用的软件兼容性将简化从PCI到PCIe的过渡。 虽然最初定位在电脑扩展卡和图形卡应用,但目前,PCIe已在更广泛的领域得到应用,包括:网络、通信、存储、工业和消费类电子产品等。


这里对PCI-e的详细协议不做介绍,只从整体上介绍PCI-e的概述、PCI-e的优势以及FPGA实现PCI-e的优势。


PCIe的优势以其复杂性为代价。PCIe是基于分组的串行连接协议,估计比PCI并行总线复杂10倍以上。这种复杂性部分源于在千兆赫速率所要求的并行到串行的数据转换以及转向基于分组的实现。






单从接口上就可以看出PCI与PCI-e的区别。一个是并行总线,一个是高速串行总线。

通常将PCI-e总线分为3层:

PCI-e协议层



通常将机械层和物理层合并为物理层,紧接着第二层为数据链路层,第三层为事务传输层,应用层不算在内。


物理层中的机械层:


机械层定义了诸如对连接器、卡外形尺寸、卡检测和热插拔等要求的机械环境。


物理层中的电气和逻辑层:


具体协议不在赘述,请查阅相关协议文档。






PCIe数据包:






在探讨下一个协议层特点之前,了解数据是如何在PCIe网络上传输的很重要。 PCI Express采用数据包在各系统间以及数字接口的各层和PCIe设备间传输数据。应用层发起事务传输,事务传输层把应用请求转换为一个PCIe事务包。数据链路层为该数据包增加一个序列号和链路CRC(LCRC)。数据链路层还确保该双向事务接收正确。最后,物理层在PCIe链路上传输该事务。









数据链路层:




数据链路层作为处理层和物理层的中间层,为处理层TLP在链路中传递提供可靠机制。数据链路层主要负责TLP的可靠传输。






数据链路层完成的主要任务是:





数据链路层跟踪链路连接的状态,并和处理层和物理层交流链路状态,通过物理层来完成对链路的管理。链路层中包含状态机DLCMSM(Data Link Control and Management State Machine)来完成这些任务。
PCI-e结构中的数据链路层



数据链路层在不可靠(有损耗)的物理链路上提供了可靠的数据传输服务。它是通过验证收到的TLP及使用接收到数据的正确认并在接收失败时重新传送数据来做到这点的。当TLP被发送时,它们被分配给序列号,并采用一个CRC码且把该码发送至物理层以用于串行链路上的传输。接收时,检查CRC和序列号。CRC内的错误或出序的序列号显示发生了传输错误,信号通过给出负确认(NAK)予以响应。接到NAK后,发送器重新传送数据包,该数据包被存储在专为此目的设置的“重传”缓存器内。若CRC序列号检查成功,接收器发出正确认(ACK)。对给定TLP来说,仅当收到ACK时,才对重传缓冲区进行数据刷新。使用此协议,数据链路层可以保证TLP的正确发送。
具体协议不在赘述,请查阅相关协议文档。
事务传输层:
事务传输层(transaction Layer specification)是请求和响应信息形成的基础。包括四种地址空间,三种处理类型,下图可以看出在transaction Layer 中形成的包的基本概括。

地址空间




事务传输层创制出站及接收入站事务传输层数据包(TLP)。TLP包括一个报头、一个可选数据配载以及一个可选的端到端CRC(ECRC)。TLP既可以是请求也可以是对请求(完成)的响应,它永远是4个字节(1个DWORD)的倍数。报头指定事务类型、优先级、地址,路由规则及其他数据包特征。发送事务传输层构建数据包报头、伺机添加ECRC并门控数据包的传输(直到有足够的远程流量控制额度可用)。接收事务传输层检查TLP格式和报头。


具体协议不在赘述,请查阅相关协议文档。


PCI-e基本功能和属性:


设计复杂性:


FPGA在PCI-E应用中的优势:


FPGA中嵌入了吉比特收发器等硬件IP。采用吉比特收发模块,可以在一片FPGA中实现高速串行协议,包括PCI-e、千兆以太网等。


使用FPGA设计PCI-e总线,省去PCI-e专用接口芯片,降低硬件成本,提高硬件集成度。利用FPGA的可编程特性,大大提高设计的灵活性、适应性和可扩展性。


Altera的PCIe硬核IP包含处理层,链路层和物理层所要求的全部功能,以及大多数的可选功能。只需在IPCompiler中经过简单的参数设置即可生成全功能的IP模块,如果是作为端点设备,可以使用Avalon-ST接口或Avalon—MM接口适配器,将应用层映射为处理层的TLP。Avalon—ST适配层将应用层的Avalon—ST接口映射到PCIe处理层的TLPs。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0