【笔记】PCIe TLP Header 中的常见 Feild 及其释义


🔥点击查看精选 PCIe 系列文章🔥
🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥


📢 声明

  • 🥭 作者主页:【MangoPapa的CSDN主页】。
  • ⚠️ 本文首发于CSDN,转载或引用请注明出处 https://mangopapa.blog.csdn.net/article/details/128538065
  • ⚠️ 本文为非盈利性质,目的为 个人学习记录知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
  • ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
  • 😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
  • 📧 邮箱:mangopapa@yeah.net

为了便于日常分析 TLP 日志,特此记录 TLP Header 中的常见 Feilds 及其释义,供个人查阅及诸位参考。

FieldsDescription
Fmt[2:0]Format,指示 Header 的格式,是否为 TLP Prefix,Header 的长度 3DW/4DW,是否携带 Data Payload 等,仅在 Non-Flit Mode 时有效。
Type[4:0]@NFM
Type[7:0]@FM
用以指示 TLP 的类型。
Len[9:0]Length,用以指示当前 TLP 的 Data Payload 长度,仅对带有 Data Payload 的 TLP 有效, 单位为 DW。
Attr[2:0]Attributes,通过该字段提供附加信息给接收端,告知接收端采用非默认方式来处理当前 TLP,常用于 TLP 排序、Snoop 硬件一致性管理等方面。
Requester ID[15:0]Request TLP 中 Transaction ID 的组成部分,请求者的 ID,包括 Bus Number、Device Number 及 Function Number。
Completer ID[15:0]Completion TLP 中 Transaction ID 的组成部分,完成者的 ID,包括 Bus Number、Device Number 及 Function Number。
Tag[9:0]@NFM
Tag[13:0]@FM
Transaction ID 的组成部分,用以 Request Outstanding。
TC[2:0]Traffic Class,PCIe QoS 相关,用以指示 Transaction 的服务优先级。
TD[0:0]TLP Digest,用以指示 TLP 末尾的 Digest 字段是否含有 ECRC。仅用于 NFM。FM 的 ECRC 相关指示放在了 TS。
TS[2:0]Trailer Size,用以指示该 TLP 是否存在 Trailer 并指示 Trailer Size,仅用于 Flit Mode。
First DW BE[3:0]First DW Byte Enables,用以指示当前 TLP Data Payload 中第一 DW 中的有效 Byte。
Last DW BE[3:0]Last DW Byte Enables,用以指示当前 TLP Data Payload 中末尾 DW 中的有效 Byte。
BC[11:0]Byte Count,用以指示为完成当前 Request 所剩余的 Data Payload Byte 数目。
BCM[0:0]Byte Count Modified,用以指示 Byte Count 字段是否被修改,仅用于 PCI-X Completer/Bridge,PCIe Completer/Bridge 不能设置该位。BCM 仅在 Non-Flit Mode 时有效,Flit Mode 没有 BCM。
EP[0:0]Error Poisoned,PCIe E2E 数据完整性相关,用以指示当前 TLP 的 Data Payload 被污染。
AT[1:0]Address Type,一般用于 ATS,仅对 Memory Read TLP 有效,用以指示当前地址的类型,00b Untranslated,01b Translation Request,10b Translated,11b Reserved。
Message Code[7:0]Message 编码,用以指示当前 Message 为哪种 Message。
Message Routing[2:0]该 Field 位域 Type 中,用以指示当前 Message 的路由信息。对于 Message TLP,其 Type[2:0] 用以指示 Message Routing 信息,000b 路由到 RC,001b 根据地址路由,010b 根据 ID 路由,011b 来自 RC 的广播消息,100b 至于本端 Rx 的消息,101b 仅用于 PME_TO_Ack,收集并路由到 RC,110~111b Reserved。
CS[2:0]Completion Status,在 Completion TLP 中指示 Completion 完成状态
TH[0:0]TLP Hints,用以指示 TLP Header 中是否含有 TPH 及 TPH TLP Prefix。
参考《PCIe TPH (TLP Processing Hints) 介绍》
PH[1:0]Processing Hints,位于 Address[1:0] 所在位置,TH=1 时 PH 有效,用以提供较粗粒度的 Processing Hints 控制能力。
ST[15:0]Steering Tag,对 TPH Hint 作更详细的分类,用以提供较细粒度的 Processing Hints 控制能力。ST[7:0] 位于 TLP Header,ST[15:8] 位于 TPH TLP Prefix。
Address[31/63:2]地址
LA[6:0]Lower Address,一般用于 Memory Read 的 Completion TLP 中,用以指明当前 Completion 所携带 Data Payload 的起始 Byte 地址。
OHC[4:0]Orthogonal Header Content,正交头内容,用以来指示其后是否存在 OHC、是何种 OHC,是 PCIe Flit Mode 下新加的一个 TLP 字段。
PV[0:0]PASID Valid,用于 Flit Mode。
PASID[19:0]Process Address Space ID,跟 Requester ID 一起作为 Request TLP 渎职空间的唯一标识。Non-Flit Mode 时位于 TLP Prefix 中,Flit Mode 时位于 OHC 文本中。
ER[0:0]Execute Request,仅在 PV=1 时有效。
PMR[0:0]Privileged Mode Request,仅在 PV=1 时有效。
NW[0:0]No Write,仅用于 Translation Request,用以指示当前地址不可写。
HV[1:0]Hints Valid,出现于 Flit Mode,用以指示 PH 及 ST 相关字段是否有效。
AV[0:0]AMA Valid,出现于 Flit Mode,用以指示 AMA 字段是否有效。
AMA[2:0]ATS Memory Attributes,出现于 Flit Mode,为优化 Memory 或 Cache 性能提供 Hints。
RSV[0:0]Requester Segment Valid,出现于 Flit Mode。
Requester_Segment[7:0]Flit Mode 时,用以指示 Requester 所在的 Hierarchy,位于 OHC-C 中。
DSV[0:0]Destination Segment Valid,出现于 Flit Mode。
Destination_Segment[7:0]Flit Mode 时,用以指示 ID 路由的 TLP 的 Detination 所在的 Hierarchy,位于 OHC-A3/A4/A5 中。
Completer_Segment[7:0]Flit Mode 时,用以指示 Conpleter 所在的 Hierarchy,位于 OHC-A5 中。
PR_Sent_Counter[7:0]应用于 IDE TLP。
Stream_ID[7:0]用以指示 IDE Stream 的 Stream ID。
Sub-Stream[3:0]用以指示 Sub-stream。
P[0:0]IDE TLP 中用以指示当前 TLP 包含 PCRC。
M[0:0]IDE TLP 中用以指示当前 TLP 包含 MAC。
K[0:0]IDE TLP 中用以指示当前 TLP 包含 Key 设置。
T[0:0]IDE TLP 中用以指示当前 TLP 源于可信的运行环境。

参考

  1. PCI Express Base Spec 6.0


— END —

🔥 精选往期 PCIe 协议系列文章🔥


⬆️ 返回顶部 ⬆️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MangoPapa

请作者喝瓶可乐吧

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

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

打赏作者

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

抵扣说明:

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

余额充值