当前位置: 首页 > news >正文

PCIe的通信

参考书籍:《PCI Express Base Specification, Rev. 4.0 Version 1.0》

相较于PCI的优势

传统 PCI 采用 32 位并行共享总线设计,所有设备共用带宽,新增设备就会进一步拖慢整体速度;更关键的是,并行传输在高频下会遭遇严重的信号串扰、时钟偏移问题,面对显卡、高速 SSD 等新一代高带宽设备的需求,PCI 显得力不从心。

为了解决这一问题,PCIe选择了串行差分传输作为基础技术路线。

与并行总线的多线同步传输不同,PCIe 的每条通道仅用一对差分信号线传输数据,通过嵌入时钟的编码方案(如 8b/10b)让时钟与数据同步传输;同时,差分信号具备天然的抗干扰能力,让 PCIe 可以轻松突破高频传输的物理限制。更灵活的是,PCIe 支持多通道聚合(x1/x4/x8/x16),带宽可线性叠加,再配合点对点交换架构,让每个设备都能独享链路带宽。

PCIe链路

image
基础 PCIe 链路由两对低电压差分驱动信号对组成:一对发送对和一对接收对。

每条链路必须支持至少 1 条通道 —— 每条通道包含一组差分信号对(1 对用于传输,1 对用于接收)。为扩展带宽,链路可聚合多条通道(表示为 xN,N 可为任意支持的链路宽度)。例如,在 2.5 GT/s 速率下运行的 x8 链路,其总原始比特率为 20 Gbps(8×2.5 Gbps)。

这种设计下,每个设备都通过独立的点对点链路连接,而点与点之间通过Packet(包)来通信。

PCIe协议架构

image
PCIe 采用了分层协议架构,从上层到下层分为事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer):

  • 事务层是 PCIe 协议栈的最上层,直接对接 CPU 和设备的高层需求。它的核心作用是生成和解析事务层包(TLP, Transaction Layer Packet)。

PCIe 通过TLP的结构化设计,实现了地址与数据的并行传输

  • 数据链路层为事务层传来的 TLP 添加序列号(Sequence Number)和链路 CRC(LCRC, Link CRC),用于检测传输错误和保证数据包顺序;

如果接收端发现数据包丢失或损坏,会通过 ACK/NACK 机制请求重传,确保数据的完整性;

  • 物理层是 PCIe 与硬件介质的接口,分为逻辑子块电气子块两部分。逻辑子块负责编码和解码,将数字信号转换成适合高速传输的格式;电气子块负责差分信号的发送(TX)和接收(RX)。

数据包的组成

image
首先是事务层生成的TLP,它的组成是:

  • Header:包含事务类型、目标地址、长度、属性等控制信息,是地址信息的载体;
  • Data Payload:事务携带的用户数据;
  • ECRC(可选):端到端循环冗余校验,用于检测整个 TLP 在传输过程中的完整性。

其次是数据链路层添加的序列号和LCRC,序列号用于保证包的传输顺序,LCRC 用于检测链路级传输错误。

最后是物理层添加的帧头和帧尾,用于标识包的边界,并通过编码机制转换为高速差分信号。

PCIe拓扑结构

image
传统 PCI 采用 “共享总线” 设计,所有设备挤在同一条总线上争抢带宽,而 PCIe 的拓扑是一个清晰的层级结构,核心是 “根复合体 — 交换机 — 端点设备” 的三级架构:

  • 最顶端是根复合体(RC),直接连接 CPU 与内存,是整个系统的神经中枢;
  • 中间层是交换机(Switch),类似网络交换机,把根复合体的单一路径扩展为多条分支,让多个设备同时高速传输;
  • 最底层是端点设备,比如显卡、SSD、网卡等,是真正产生和处理数据的终端。
http://www.jsqmd.com/news/313975/

相关文章:

  • 程序员如何利用AI进行数据可视化
  • 计算机毕业设计 | SpringBoot+vue学生干部管理系统 高校教务管理系统(附源码+论文)
  • 【路径规划】基于 RRT快速扩展随机树算法的路径规划代码,给定地图中,从起始点到目标点规划一条无碰撞路径附Matlab代码
  • 中医五行和阴阳本质是什么?精确化依据是什么?
  • 关于多对一,一对多,多对多的个人理解
  • 【Harmonyos】开源鸿蒙跨平台训练营DAY7:Flutter鸿蒙实战轮播图搜索框和导航指示器
  • 利用DuckDB的bitstring_agg函数配合bit_count快速求不同值的计数
  • 热力学计算技术或将大幅降低AI图像生成能耗
  • 多代理系统VS单体AI:性能对比与选型建议
  • 用TRAE如何实现开源AI智能体“Clawdbot”
  • Context7 MCP
  • 零散HTML页面整合为交互式Demo系统的专业的技术规划与实现路径
  • Memory MCP
  • 【Redis架构优化篇】吃透Docker+Redis:从单节点到主从哨兵,配置模板直接抄
  • Playwright MCP
  • 使用 TRAE进行团队开发
  • Gitlab MCP
  • 恒小花分期商城额度怎么使用以及怎么提现出来
  • 基于大语言模型协同标注的政策文本技术实体识别研究
  • 延迟绑定机制与ret2dlresolve
  • 完整教程:Leetcode 70 好数对的数目 | 与对应负数同时存在的最大正整数
  • Spring 中 REST API 调用工具对比:RestTemplate vs OpenFeign
  • 【游戏推荐】展翅翱翔 全DLC(WINGSPAN)免安装中文版
  • Simulink 程序状态声音提示方案-PART-蜂鸣-程序提示
  • k8s部署dify
  • k8s部署harbor(storageclass+ingress)
  • k8s新版本nfs-csi
  • iPhone XS 全面解析:宣传图/配色/参数速查 + 体验亮点 + 二手选购避坑清单
  • 2026年了,作为一个程序员你觉得是业务重要还是技术重要?
  • 随机数预测与爆破canary