• 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总线使用的版本有关。
      带宽计算:吞吐量 = 传输数率 * 线路编码方案。

  • 相关阅读:
    OpenNebula的配置与应用(二)
    C# --- WinForm基本知识与绘图(下)
    快速使用Spring Cache
    SpringBoot中properties和yml有什么区别?
    华为员工利用Bug越权访问机密卖给第三方,获利1.6万元,被判有期徒刑一年
    [附源码]Python计算机毕业设计Django学生疫情防控信息填报系统
    Navicat 与清华大学校企合作交流会圆满落幕
    【数据结构】插入排序(直接插入排序 && 希尔排序)
    docker基本管理
    【附源码】计算机毕业设计SSM实时跑步信息获取系统
  • 原文地址:https://blog.csdn.net/q1594/article/details/126766090