🔥点击查看精选 PCIe 系列文章🔥
🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥
📢 声明:
- 🥭 作者主页:【MangoPapa的CSDN主页】。
- ⚠️ 本文首发于CSDN,转载或引用请注明出处 https://mangopapa.blog.csdn.net/article/details/128538065。
- ⚠️ 本文为非盈利性质,目的为 个人学习记录 及 知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
- ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
- 😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
- 📧 邮箱:mangopapa@yeah.net
为了便于日常分析 TLP 日志,特此记录 TLP Header 中的常见 Feilds 及其释义,供个人查阅及诸位参考。
Fields | Description |
---|---|
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 源于可信的运行环境。 |
参考
- PCI Express Base Spec 6.0
|
🔥 精选往期 PCIe 协议系列文章🔥
- 【最新技术早知道】PCIe Gen5 还没用上,Gen6 就来了?PCIe 6.0 系列文章之:《PCIe 6.0,到底 6 在哪?》
- 【PCIe 6.0】颠覆性技术!你NRZ相守20年又怎样?看我PAM4如何上位PCIe 6.0 !
- 【PCIe 6.0】PCIe 6.0 新特性 - L0p 详解
- 【PCIe 6.0】PCIe 6.0 新特性 - DMWr (Deferrable Memory Write) 详解
- PCIe 参考时钟架构 (Refclk Architecture)
- PCIe地址转换服务(ATS)详解
- PCIe访问控制服务(ACS)
- 【PCIe页请求服务】到底到底到底是啥?半年搜遍全网找不到一篇介绍文章,没人写那我来写吧
⬆️ 返回顶部 ⬆️