Home PCIe数据传输
Post
Cancel

PCIe数据传输

  • 与PCI总线不同(PCI设备共享总线),PCIe总线使用端到端的连接方式,互为接收端和发送端,全双工,基于数据包的传输;

  • 物理底层采用差分信号(PCI链路采用并行总线,而PCIe链路采用串行总线),一条Lane中有两组差分信号,共四根信号线,而PCIe Link可以由多条Lane组成,可以支持1、2、4、8、12、16、32条;

PCIe规范定义了分层的架构设计,包含三层:

PCIe层次结构

Transaction层 负责TLP包(Transaction Layer Packet)的封装与解封装。

Data Link层 负责DLLP包(Data Link Layer Packet)的封装与解封装,此外还负责链接错误检测和校正,使用Ack/Nak协议来确保传输可靠;此外还负责QoS,流控、排序等功能;

Physical层 负责Ordered-Set包的封装与解封装,物理层处理TLPs、DLLPs、Ordered-Set三种类型的包传输;

数据包的封装与解封装,与网络包的创建与解析很类似

PCIe包层次结构

需要注意的是,在PCIe体系结构中,事务层,数据链路层和物理层存在于每一个端口(Port)中, 也就是说Switch中必然存在一个以上的这样的结构(包括事务层,数据链路层和物理层的)。一个简化的模型如下图所示:

PCIe层次对应的端口模型

This post is licensed under CC BY 4.0 by the author.

PCIe总线概要

PCIe事务层(Transaction Layer)(第三层)