《PCIe 带宽为什么总是跑不满?从 UI 到吞吐量一文讲透(含 PCIe 6.0)》

🚀 从 UI 到吞吐量:一条 PCIe 数据是如何变成 GB/s 的(含 PCIe 6.0 + 误码率)

在 PCIe 开发、验证、性能分析中,我们经常听到这些概念:

  • GT/s
  • GB/s
  • UI(Unit Interval)
  • 编码(8b/10b、128b/130b)
  • 吞吐量(Throughput)
  • 误码率(BER)

但这些其实不是独立知识点,而是描述:

👉 同一条数据在不同层级的“形态变化”


👉 本文换一种方式讲清楚:

从“一个 bit 在链路上传输”开始,一路推导到最终吞吐量


一、故事的起点:一个 bit 需要多长时间?

PCIe 本质是高速串行链路(SerDes)。

最底层问题只有一个:

👉 一个 bit 需要多少时间发送?


1️⃣ UI(Unit Interval)

UI=1/Symbol Rate

👉 可以理解为:

链路上的最小时间单位


示例

代际 速率 UI
Gen1 2.5 GT/s 400 ps
Gen3 8 GT/s 125 ps
Gen5 32 GT/s 31.25 ps
Gen6 64 GT/s 15.625 ps

👉 结论:

  • 速率越高 → UI 越小
  • UI 越小 → 信号越难(抖动/损耗/串扰)

二、一个 UI 里传什么?——Symbol

有了时间单位,还需要定义:

👉 每个 UI 里传多少信息


2️⃣ Symbol(符号)

👉 Symbol = 每个 UI 传输的信息单位


PCIe 1.0 ~ 5.0(NRZ)

  • 2 个电平(0/1)
    👉 1 Symbol = 1 bit

PCIe 6.0(PAM4)

  • 4 个电平
    👉 1 Symbol = 2 bit

👉 关键变化:

模式 每 Symbol
NRZ 1 bit
PAM4 2 bit

三、GT/s 到底是什么?

👉 GT/s = 每秒多少个 Symbol


因此:

  • NRZ:GT/s ≈ Gbps
  • PAM4:GT/s × 2 = Gbps

示例:PCIe 6.0

64 GT/s × 2 = 128 Gbps

👉 这是物理层裸速率


四、为什么不能直接用这些 bit?——编码的出现

现实链路存在问题:

  • 时钟恢复困难
  • 长时间无跳变
  • DC 不平衡

👉 所以必须引入:

四、编码(Encoding)

目的:

👉 让信号能可靠传输


1️⃣ 8b/10b(Gen1 / Gen2)

  • 8 bit → 10 bit

👉 效率:

80%

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值