PCIe学习笔记(一)-------1.3 PCIe数据包(TLP,DLLP,PLP)

目录

1,PCIe的层次结构

2,PCIe数据包

2.1,TLP包

2.2,DLLP包

2.3,PLP包

1,PCIe的层次结构

PICe设备的体系结构可以分为三个层次:事务层(Transaction Layer)数据链路层(Data Link Layer)物理层(Physical)。每一个层次又可以分为两个部分,分别为处理发送和处理接收的部分。

也可以分为四个层次,将事务层以上的层次称为软件层(Software Layer)。

2,PCIe数据包

前文已经说过PCIe之间是以数据包的形式来传输数据的,协议共定义了3类数据包。与处理层相关的是处理层数据包(TLP),与数据链路层相关的是数据链路层数据包(DLLP),与物理层相关的是物理层数据包(PLP)。TLP包和DLLP包的大小如下图所以,DW代表一个双字(32bit),B代表一个Byte。

注意:物理层给TLP和DLP施加的Start (TLP施加的为K27.7,DLLP施加的为K28.2)字符并不一样,但End(K29.7)字符一样。

2.1,TLP包

TLP包起源于发送者的事务层,终止于接收者的事务层。但当TLP包经过数据链路层和物理层时,这两个层次也会对TLP包进行一定的处理

事务层处理:

1,发送)事务层接收由软件层传来的组成TLP核心部分所需要的信息,并将数据组装成Header 和 Data(有些TLP没有DATA)。如果Header中的TD比特位为1则根据Header和Data计算End-to-End CRC(ECRC),并将其附着在Data后面,如果TD为0,则该TLP不会有ECRC。

2,接收)通过ECRC判断TLP包是否有CRC错误,如果没错,则删掉ECRC,将其余数据传输给软件层,如果存在CRC错误,则......

数据链路层的处理:

1,发送)数据链路层接收事务层传过来的TLP包,然后在其前面加上12bit 的Sequence ID (上上图中为2B?),并根据目前所有的信息计算32bit 的CRC(LCRC),并附着在后面。

2,接收)检查TLP报的LCRC是否有CRC错误,如果有错误则丢弃TLP,然后发送NAK DLLP给Remote Device。如果没有错误,则将LCRC和Sequence ID去除,将其余数据发送给事务层,并且会发送ACK DLLP给Remote Device。

物理层的处理:

1,发送)物理层接收数据链路层传过来的TLP包,然后在其前面和后面分别附加1 Byte的 Start 和 End 帧字符。接收者根据这个来检测数据包的开始和结束。

2,接收)物理层将比特流经过一系列操作组装成数据包,并去除Start和 End帧字符后将数据传输给数据链路层。

2.2,DLLP包

DLLP包起源与发送者的数据链路层,终止于接收者的数据链路层。当DLLP包经过物理层时,物理层也会对其做一定处理。

DLLP包用于链路管理功能,包括ACK/NAK协议相关的TLP确认,电源管理流控制DLLP包在链路上两个直接连的数据链路层之间传输(没有路由功能),也就是在物理相连的两个PCIe设备之间传输。

数据链路层:

数据链路层存在多种DLLP包,数据链路层会在要发的DLLP包上附加16 bit的CRC。

物理层:

物理层接收数据链路层传过来的DLLP,然后在其前面和后面分别附加1 Byte的 Start 和 End 帧字符。接收者根据这个来检测包的开始和结束。

 

2.3,PLP包

PLP是一种非常简单的数据包。起源于发送者的物理层,终止于接收者的物理层。PLP的大小是4 Byte的整数倍,PLP包在链路上两个直接连的数据链路层之间传输(没有路由功能)。

PLP也被称为Ordered set(有序集)

PLP主要用于链路训练过程(LinkTraining process),时钟容差补偿(clock tolerance compensation)。

PLP包开始的第一个 Byte是 COM 字符,后面是定义PLP类型以及含有其他信息的3个或多个字符。

  • 7
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值