跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

PCIe 4.0协议,你真的懂了吗?

一、什么是PCIe

PCIe,全称Peripheral Component Interconnect Express,是一种高速串行计算机扩展总线标准。简单来说,它就是让电脑硬件之间通信更快的一种技术。

传输方式

PCIe使用全双工传输,即TX和RX都采用串行差分信号进行数据传输。这样,数据可以同时双向传输,大大提高了传输效率。

Lane

一条Lane由一对TX差分线和一对RX差分线组成。理论上,可以有2的n次方条Lane,最多支持32条Lane。Lane越多,带宽越高。

带宽

PCIe 4.0的最高时钟频率是16GHz,一条Lane的带宽约为1.969GB/s。这意味着,PCIe 4.0的带宽是非常惊人的。

发送端和接收端

发送端将原始数据包封装成协议规定的格式,再转化成串行数据流发出。接收端将串行数据流收集后,按照协议规定逆向解析出原始的数据包。

PCIe与PCI的区别

PCIe使用的串行传输方式取代了PCI的并行传输方式。因为并行总线在时钟频率和布线方面会有很多限制,而高速串行在很多领域有着取代传统并行的趋势。

二、PCIe结构拓扑

Root Complex(RC)

RC是PCIe树的根,连接CPU、Memory子系统,并可以连接多个PCIe端口。

Switch

Switch可以将一个PCIe端口转换成多个PCIe端口。

Endpoint

PCIe终端设备成为Endpoint,可以挂在RC上,也可以挂在Switch上。

三、PCIe封/拆包流程

一个原始的数据包通过Transaction、Data Link、Physical三层逻辑的处理,变成了可以发送的包。反之,接收的包也可以通过这三层逻辑解出原始的数据包。

四、各层逻辑功能

事务层

PCIe上的通信是基于Transaction的。根据地址空间不同,Transaction可以分为Memory、I/O、Configuration、Message四类。

Prefixes

Prefixes是Header的扩展,可以省去,也可以有一个或多个。

Header

Header包含了Fmt、Type、TC、LN、TH、TD、EP、Attr[2] & Attr[5:4]、AT、Length、Transaction ID、字节使能等重要信息。

地址

Transaction的路由规则有三种方式:基于地址、基于ID、隐式路由。

Payload

要传输的数据。

Digest

如果Header中的TD有效,会有一个DW的ECRC。

链路层

主要是为了确保TLP传输的可靠性,在TLP头部增加了序列号,在TLP尾部增加了校验。

物理层

Logical Sub-Block

主要实现发送逻辑和接收逻辑。

Electrical Sub-Block

主要实现差分信号的收发。

本文只是对PCIe 4.0协议的概述,更详细的内容,请关注「新派编程网」(www.xjpbg.com)的后续文章。

——「新派编程网」资深编辑 林译川 敬上

相关文章