Bootstrap

PCIE学习笔记(二)PCIe总线的拓扑结构,协议层,数据传输流程

目录

PCIe总线的拓扑结构

PCI Express协议分层

物理层(Physical Layer)

数据链路层(Link Layer)

处理层(Transaction Layer)

软件层(Software Layer)

数据传输时候的流程

TLP和DLLP报文格式


PCIe总线的拓扑结构

PCIe采用的是树形拓扑结构, 一般由根组件(Root Complex),交换设备(Switch),终端设备(Endpoint)等类型的PCIe设备组成

Root Complex: 根桥设备,是PCIe最重要的一个组成部件; Root Complex主要负责PCIe报文的解析和生成。RC接受来自CPU的IO指令,生成对应的PCIe报文,或者接受来自设备的PCIe TLP报文,解析数据传输给CPU或者内存。

Switch: PCIe的转接器设备,目的是扩展PCIe总线。和PCI并行总线不同,PCIe的总线采用了高速差分总线,并采用端到端的连接方式, 因此在每一条PCIe链路中两端只能各连接一个设备, 如果需要挂载更多的PCIe设备,那就需要用到switch转接器。switch在linux下不可见,软件层面可以看到的是switch的上行口(upstream port, 靠近RC的那一侧) 和下行口(downstream port)。

一般而言,一个switch 只有一个upstream port 可以有多个downstream port.

PCIe endponit: PCIe终端设备,是PCIe树形结构的叶子节点。比如网卡,NVME卡,显卡都是PCIe ep设备。

图1:PCIe 体系结构拓扑图

PCI Express协议分层

 

PCI Express体系结构采用分层设计,就像网络通信中的七层OSI结构一样,这样利于跨平台的应用。PCI-Express体系结构如图2所示。它共分为四层,从下到上分别为:

  • 物理层(Physical Layer
  • 数据链路层(Link Layer
  • 处理层(Transaction Layer
;