PCIe(一)——基础知识

1 PCIe简介

  PCI Express (peripheral component interconnect express) 简称 PCIe,是一种高速串行计算机扩展总线标准。是一种全双工总线,使用高速串行传送方式,能够支持更高的频率,连接的设备不再像 PCI 总线那样共享总线带宽。PCIe目前发布了4个版本——PCIe1.0、PCIe2.0、PCIe3.0、PCIe4.0
  PCIe 总线在实际工程实践中得到了良好的应用,主要应用在光纤、PCIe 数据采集卡、FPGA 加速卡、存储子系统等所有需要和主机进行高速数据交互的场所。

2 PCIe总线架构

  PCIe总线结构复杂,这里只做简单介绍。
  PCIe架构与以太网的OSI模型类似,是一种分层架构。分为事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。这些层的每一部分都分为两部分:一部分处理出站(要发送的)信息,另一部分处理入站(接收的)信息。
  PCIe体系中通过数据包在设备之间传递信息,数据包在事务层和链路层形成。
在这里插入图片描述

事务层

  事务层主要责任是事务层包TLP(Transaction Layer Packet)的组装和拆卸。事务层接收来自PCIe设备核心层的数据,并将其封装为TLP。TLP负责传达事务。
  负责读取和写入以及确定时间的类型。
  负责管理TLP的基于信用的流控制。
  每个数据包都有一个唯一标识符,该标识符使响应数据包可以定向到数据的发起者。
  支持不同的寻址方式,具体取决于事务类型(内存、IO、配置和消息)。
  数据包可能还具有诸如 No Snoop、Relaxed Ordering 和基于 ID 的排序(IDO)之类的属性。
  支持四个地址空间:包括三个PCI地址空间内存、IO、配置)并添加消息空间。该规范使用消息空间来支持所有先前 PCI 的边带信号,例如中断、电源管理请求等,作为带内消息事务。

数据链路层

  数据链路层充当事务层和物理层之间的中间阶段。主要负责链路管理和数据完整性。包括错误检测和数据纠正。
  数据链路层的发送方接收事务层组装的TLP,计算并应用数据保护代码和TLP序列号,以及将他们提交给物理层以在链路上传输。
  数据链路层的接收方负责检测接收到TLP的完整性,并将他们提交给事务层进一步处理。
  检测到错误时,此层负责请求重发TLP,直到接收到正确信息或者确定链路失败为止。
  为了和数据层数据包区分开,当指链路层数据包时,将称为“链路层数据包(DLLP)”

物理层

  PCIe总线的物理层为PCIe设备之间的数据通讯提供介质,为数据传送提供可靠的物理环境。包括用于接口操作的所有电路、驱动器和输入缓冲器、串并转换、PLL和阻抗匹配。还包括接口初始化和维护有关的逻辑功能。
  物理层以实现特定的格式与数据链路层交换信息。将链路层接收的信息转化为适当的序列化格式,并以与连接到链路另一端的设备兼容的频率和通道宽度在PCIe链路上传输该信息。
  物理层是PCIe体系中最重要也是最难实现的部分。PCIe总线的物理层定义了LTSSM (Link Training and Status State Machine)状态机。PCIe链路使用该状态机管理链路状态,并进行链路训练、链路回复和电源管理。
  PCIe总线使用端到端的连接方式,在PCIe链路的两端只能各连接一个设备。这两个设备互为数据发送端和数据接收端。
  在PCIe总线的物理链路的一个通路中(Lane),有两组差分信号。其中发送端的TX和接收端的RX使用一组差分信号连接,该链路被称为发送端的发送链路,也是接收端的接收链路;发送端的RX和接收端的TX使用另一组差分信号连接,该链路被称为发送端的接收链路。一个PCIe可以由多个Lane组成。
  目前PCIe链路支持1、2、4、8、16、32个Lane。即x1、x2、x4等宽度的PCIe链路。每个lane上使用的总线频率与PCIe总线使用的版本有关。
  带宽计算:吞吐量 = 传输数率 * 线路编码方案。

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCIE(Peripheral Component Interconnect Express)是一种计算机扩展总线标准,用于连接外部设备与计算机主板之间的数据传输。PCIe连接的设备可以是显卡、声卡、网卡等。 Flow control(流量控制)是PCIE中的一种基础机制,用于在设备之间传输数据时确保数据的可靠传输。 PCIE的flow control可以分为两种方式:Credit-based Flow Control(基于信用控制)和Acknowledgment/Negative Acknowledgment Flow Control(确认/否定确认控制)。 基于信用控制是PCIE中最常用的流量控制机制。发送方设备在发送数据之前会向接收方设备发送一个信用(credit)值,表示发送方设备可以发送的最大数据量。接收方设备在接收到数据后会发回一个更新的信用值给发送方设备,发送方设备根据接收到的信用值确定下一次可以发送的数据量。通过这种方式,可以有效控制不同速度的设备之间的数据传输,避免数据丢失或信道阻塞。 确认/否定确认控制是PCIE中的一种备用方式,当发送方设备发送数据后,接收方设备会发回一个确认或否定确认信号给发送方设备,以告知是否成功接收数据。如果发送方设备收到否定确认信号,则会重新发送数据,确保数据的可靠性。 总结来说,PCIE中的flow control机制是为了确保数据的可靠传输而设计的。基于信用控制和确认/否定确认控制是两种常用的流量控制方式,可以根据不同的需求选择适合的方式来控制数据的传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值