PCie协议之-TLP Header详解(一)

✨前言:

在PCIe通信过程中,事务层数据包(Transaction Layer Packets,简称TLP)扮演着非常重要的角色。TLP用于在设备之间传递数据和控制信息,它们是PCIe的基本信息传输单元。
TLP可分为几个部分,最核心的是TLP Header,它负责携带有关数据包的关键信息,包括数据包类型、长度以及传输方向等等。下面是TLP Header的详细结构以及各部分的作用:
格式(Format)和类型(Type)字段:这个字段由多个比特组成,两者相结合定义了TLP的类型,例如内存读取、内存写入、I/O操作等等。格式字段告诉我们这个TLP是32位还是64位地址,而类型字段告诉我们是进行读取还是写入等操作。
长度(Length)字段:长度字段告知接收设备这个TLP包含了多少个数据载荷(Data Payload)DWORDs(32-bit words)。这对于正确解析TLP非常重要。
请求者ID(Requester ID)和目标ID(Completer ID)字段:这些字段包含了发起TLP的设备和预期接收这个TLP的设备的ID。在回应一个操作时,这两个字段会互换其值。
标记(Tag)字段:标记字段用于将具体的TLP关联到发起它的特定事务。这对于支持多个并发事务的设备来说尤其重要。
第一和最后的DW地址(First and Last DW Byte Enables)字段:对于内存写入操作,这些字段指示了在数据包的第一个和最后一个DWORD中,哪些字节是有效的。这对于包括不是4字节倍数的内存写入操作很重要

PCI Express (PCIe) TLP (Transaction Layer Packet) 是 PCI Express 协议个重要部分,它用于在不同的 PCIe 设备之间传输数据。PCIe TLP 由四个部分组成:头部、有效载荷、可选的可扩展有效载荷和 FCS(帧校验序列)。 具体来说,PCIe TLP 的格式如下: |---------------------------| | PCIe TLP 头部 (12 字节) | |---------------------------| | 有效载荷 (0 - 1024 字节) | |---------------------------| | 可扩展有效载荷 (0 - 1024 字节) | |---------------------------| | FCS(帧校验序列)(4 字节) | |---------------------------| PCIe TLP 头部包括以下字段: - TC(传输类别):指定 TLP 的类型,比如请求(Memory Read/Write)、Completion 等。 - TD(传输方向):指定 TLP 的传输方向,是从上游设备到下游设备还是相反。 - EP(端点):指定 TLP 的目标设备端口号。 - Length(长度):指定有效载荷的长度。 - First DW BE(第个双字节字节 Enable):指定有效载荷的第个双字节的哪些字节是有效的。 - Last DW BE(最后个双字节字节 Enable):指定有效载荷的最后个双字节的哪些字节是有效的。 - Tag(标签):可选字段,用于匹配请求和 Completion TLP- Requester ID(请求者 ID):可选字段,用于标识发起 TLP 的设备。 - Completer ID(完成者 ID):可选字段,用于标识处理 TLP 的设备。 PCIe TLP 的有效载荷可以是数据、地址或控制信息。可扩展有效载荷在某些情况下用于传输额外的数据或信息。FCS 是个校验序列,用于检测传输中的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天Aileft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值