嵌入式开发文档

基本信息

概述

PCIe is Peripheral Component Interconnect Express。2003年,PCI-SIG发布1.0版本。PCIe 取代了并行的 PCI 总线,改为高速串行、点对点。用 lane 表示带宽:x1 是 1 条 lane,x4 / x8 / x16 是多条 lane 并行。每个 lane 由一对发送差分 + 一对接收差分组成,全双工。

工作原理(通俗理解)

像多条并行的「双向车道」:每个 lane 是一条独立的高速收发通道,x4 就是 4 条车道并行提速。点对点意味着每个设备独占通道,不用共享、不会冲突。

信号

一对TX或RX就是一组Lane。

信号 说明
TX+ / TX- 发送差分对(每 lane 一对)
RX+ / RX- 接收差分对(每 lane 一对)
REFCLK+ / REFCLK- 100MHz 参考时钟(差分)
PERST# 复位(低有效)
CLKREQ# 时钟请求(低功耗管理)

速率(每 lane 每方向)

版本 速率 编码 有效速率
Gen1 2.5 GT/s 8b/10b 250 MB/s
Gen2 5 GT/s 8b/10b 500 MB/s
Gen3 8 GT/s 128b/130b 约 985 MB/s
Gen4 16 GT/s 128b/130b 约 1969 MB/s
Gen5 32 GT/s 128b/130b 约 3938 MB/s

PCIe的数据传输是有编码的,信号上传输的是编码数据,实际需要把编码位相关去除后,才是有效载荷。

上面的表格中的速率是单向的,实际PCIe是双向收发数据,需要把方向也计算上。 总带宽 = 单 lane 有效速率 × lane 数(每个方向各算一次)