PCIe传输速率计算方法 2020-03-25 计算机组成原理 暂无评论 3666 次阅读 PCIe传输速率计算方法 PCIe是全双工的总线,一个lane由两对差分信号线,即4根信号线。Lane的数量称为位宽,在一个PCIe cycle,N个lane可同时接收和发送各N个比特信息。 不同版本的PCIe总线,其工作时钟频率不同,但一般都是在100MHz的基准频率上通过PLL达到的高频率。 PCe的带宽有几种衡量指标: 原始传输速率(Raw Transfer Rate):即每一秒内传输的次数,单位是GT/s —— Giga Transmissionper second (千兆传输/秒),其数值等于PCIe总线的时钟频率,与lane数量无关。 有效带宽(吞吐量):有效带宽和原始传输速率、Lane的数量、编码方案效率有关,只算单方向上的,单位是MB/s、GB/s。(1GB/s = 1Gbps/8)。编码方案效率:对于8b/10b编码,其值为0.8=(8/10),对于128b/130b编码,其值为0.985=(128/130)。 吞吐量 = 原始传输速率 x Lane的数量 x 编码方案效率 ÷ 8 比如对于PCIe 3.0,总线频率为8GHz,编码方案为128b/130b,所以×16设备的吞吐量为:`8 * 16 * 0.985 / 8 = 15.76 GB/s ≈ 16GB/s`, 实际带宽:吞吐量仅仅考虑了信号编码折损,但是总线上还得传输TLP头部、链路管理包,这些都是Overhead,实际带宽需要考虑这些损耗。 PCIe总线各版本的吞吐量数据如下: ![pcie-transfer-rate.png](https://blog.moper.net/usr/uploads/2020/03/26059747.png) 我们一般所说的PCIe总线带宽指的吞吐量。需要注意的是,少数文章中提到的吞吐量是指双向吞吐量,即传输和发送速率的总和,这种计算方式下PCIe 3.0的吞吐量则由16GB/s变为32GB/s。不过双向吞吐量这种计算方式并不合理,过于乐观,所以很少使用,比如对于PCIe数据接收,CPU需要先向PCIe设备发送读取请求,然后等待并接收PCIe发送的数据,包含了两个方向的数据传递。 转自http://blog.bytemem.com/post/pcie-transfer-rate-calculation 标签: PCIE, 速率 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。