问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深入解析PCIe带宽问题

创作时间:
作者:
@小白创作中心

深入解析PCIe带宽问题

引用
CSDN
1.
https://blog.csdn.net/bcs_01/article/details/142212445

PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,广泛应用于计算机硬件设备的连接。在讨论PCIe性能时,带宽问题是一个核心话题。本文将从理论带宽、实际带宽、带宽利用率等多个维度,深入分析PCIe的带宽特性及其影响因素。

理论带宽、实际带宽、带宽利用率、单向带宽、双向带宽

PCIe的理论带宽计算公式为:链路速率 x Lane number。如果计算双向带宽,还需要再乘以2(PCIe是双工通信)。例如,PCIe 3.0 x16的理论带宽为:8Gbps x 16 = 16GB/s。

在讨论实际带宽时,更多是一个工程问题。实际带宽定义为单位时间传输的数据量。工程上做带宽评估通常记录发起数据请求的时间和响应返回的时间,然后用:请求的数据量/时间来计算实际带宽。

带宽利用率的计算公式为:实际带宽 / 理论带宽。项目上做带宽优化就是分析系统中影响性能的因素,然后调节这些因素来提高带宽利用率。

在分析带宽时,通常会拆分成读带宽和写带宽两个部分。单独分析时,通常只计算单向带宽。做带宽利用率计算时,也只用实际带宽/单向理论带宽来计算。但有些数据请求者(如DMA)可以同时发出读请求和写请求,此时就需要用双向理论带宽来计算。

协议开销分析

在讨论PCIe带宽时,需要理解开销(Overhead)的概念。PCIe为了高效安全地传输数据,定义了一些额外的命令控制字段与响应字段,这些不属于数据的信息都算作开销。

从协议层引入的开销包括TLP Prefixes、TLP header以及TLP Digest。TLP Header分3DW和4DW两种类型,其中的Length字段定义了Data Payload部分的字节数,PCIe一个请求的最大数据量为4096 bytes。PCIe还定义了MPS(Max_Payload_Size)和RCB(Read_Completion_Boundary)两个因子来限制PCIe一个请求中能携带的最大数据传输量。

链路层开销包括TLP Sequence Number和LCRC,以及Ack/Nak机制和流控机制带来的额外开销。

物理层编码开销在Gen1和Gen2上为1/5,在Gen3/4/5上采用128b/130b编码策略,编码开销影响较小。Gen6和Gen7采用PAM4编码,没有编码开销。

物理层Symbol开销包括STP Frame Symbol、End Frame Symbol、SDP Symbol等。在Gen3以上速率时,传输DLLP时会带两个SDP Symbol,传输TLP时会带4个STP Symbol,End Frame Symbol也会变成4个。

PCIe实际带宽分析

以一个PCIe拓扑结构图为例,讨论PCIe带宽分析。主要考虑Memory到EP的数据搬运过程,通常使用DMA进行数据搬运。带宽分析的思想是定义一批数据量,统计从数据搬运开始到所有数据搬完所花费的时间,然后用数据量/时间计算出带宽。

影响PCIe性能的主要因素包括:

  1. MPS和RCB值
  2. DMA工作机制(如LinkList技术、Shadow Register技术、Doolbell技术等)
  3. PCIe Ack/Nak机制
  4. PCIe的灵活路由技术
  5. 缓存大小、DDR性能等其他组件的影响

总结

PCIe的带宽分析是一个系统性问题,需要考虑多个组件和因素的相互影响。对系统方案不熟悉,就无法全面分析PCIe性能。在产品设计中,通常不会给出PCIe实际带宽的具体数值,而是通过内控过程来确保性能达标。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号