PCIe协议之-TLP Header详解(四)

✨前言

PCIe中的Message主要是为了替代PCI中采用边带信号,这些边带信号的主要功能是中断,错误报告和电源管理等。所有的Message请求采用的都是4DW的TLP Header,但是并不是所有的空间都被利用上了,例如有的Message就没有使用Byte8到Byte15的空间。
Message请求的TLP Header格式如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面的表格中提到了,Message主要有九个类型:

  1. INTx Interrupt Signaling
  2. Power Management
  3. Error Signaling
  4. Locked Transaction Support
  5. Slot Power Limit Support
  6. Vendor‐Defined Messages
  7. Ignored Messages (related to Hot‐Plug support in spec revision 1.1)
  8. Latency Tolerance Reporting (LTR)
  9. Optimized Buffer Flush and Fill (OBFF)

下面将分别进行介绍一下,

🌟INTx Interrupt Messages(中断消息)

PCI 2.3提出了MSI(Message Signaled Interrupt),但是早期的PCI并不支持这一功能,PCIe为此定义了一种Virtual Wire来模拟PCI的中断引脚(INTA-INTD)。如下图所示:
在这里插入图片描述

👉INTx Message的使用规则如下:

它们没有数据有效负载,因此保留长度字段。
· 它们仅由上游端口发行。检查收到的数据包的此规则是可选的,但如果检查,违规行为将作为格式错误的 TLP 进行处理。
· 他们需要使用默认流量类别TC0。接收方必须对此进行检查,违规行为将作为格式错误的 TLP 进行处理。
· 链路两端的组件必须跟踪四个虚拟中断的当前状态。如果一个中断的逻辑状态在上游端口发生变化,则必须发送适当的 INTx 消息。
· 当命令寄存器的中断禁用位设置为 = 1 时,INTx 信号被禁用(物理中断线的情况)。
· 如果在器件中设置中断禁用位时任何虚拟 INTx 信号处于活动状态,则上行端口必须发送相应的 Deassert_INTx 消息。
· 交换机必须独立跟踪每个下游端口的四个 INTx 信号的状态,并组合上游端口的状态。
· 根联合体必须独立跟踪四个 INTx 线的状态,并以特定于实现的方式将它们转换为系统中断。
· 他们使用路由类型“本地终止接收器”来允许交换机重新映射指定的中断引脚。因此,INTx消息中的请求者ID可以由最后的发送器分配。

🌟Power Management Messages(电源管理消息)

在这里插入图片描述

👉电源管理消息使用规则如下:

· 电源管理消息没有数据有效负载,因此保留长度字段。
· 他们需要使用默认流量类别TC0。接收方必须检查这一点并将违规行为作为格式错误的 TLP 进行处理。
· PM_Active_State_Nak 在观察到来自链路邻居的将链路电源状态更改为 L1 的请求后从下游端口发送,但它选择不这样做(本地 - 终止于接收器路由)。
· PM_PME 由请求电源管理事件的组件向上游发送(隐式路由到根联合体)。
· PM_Turn_Off 向下游发送到所有端点(从根联合体路由隐式广播)。
· PME_TO_Ack 由端点向上游发送。对于具有多个下游端口的交换机,在所有下游端口都收到该消息之前,该消息不会被转发到上游(收集并路由到根联合体路由)。

🌟Error Messages(错误消息)

在这里插入图片描述

👉错误信息使用规则如下:

· 他们需要使用默认流量类别TC0。接收方必须检查这一点并将违规行为作为格式错误的 TLP 进行处理。
· 它们没有数据有效负载,因此保留长度字段。
· 根联合体将错误消息转换为系统特定的事件。

🌟Locked Transaction Support

在这里插入图片描述

👉Unlock Message使用规则:

· 他们需要使用默认流量类别TC0。接收方必须检查这一点并将违规行为作为格式错误的 TLP 进行处理。
· 它们没有数据有效负载,并且长度字段被保留。

🌟Set Slot Power Limit Message

在这里插入图片描述

👉Set_Slot_Power_Limit消息使用规则:

· 他们需要使用默认流量类别 TC0。接收方必须检查这一点并将违规行为作为格式错误的 TLP 进行处理。
· 数据有效负载为1 DW,因此长度字段设置为1。仅 32 位数据有效负载的低 10 位用于时隙功率缩放;高有效负载位必须设置为零。
· 只要数据链路层转换到 DL_Up 状态,或者在数据链路层已经报告 DL_Up 状态时发生对时隙功能寄存器的配置写入,就会自动发送此消息。
· 如果插槽中的卡消耗的电量已经低于指定的电量限制,则可以忽略该消息。

🌟Vendor‐Defined Message 0 and 1

在这里插入图片描述
在这里插入图片描述

👉厂商自定义Message使用规则:

· 数据有效负载可能包含也可能不包含在任一类型中。
· 2. 消息通过Vendor ID 字段进行区分。
· 3. 属性位[2]和[1:0]不保留。
· 4. 如果接收者无法识别该消息:
• 类型 1 消息被默默丢弃
• 类型 0 消息被视为不支持的请求错误条件

🌟Ignored Messages

在这里插入图片描述

👉热插拔Message使用规则:

· 它们由下游端口驱动至插槽中的卡。
· 注意按钮消息由插槽设备向上游驱动。

🌟Latency Tolerance Reporting Message

在这里插入图片描述
在这里插入图片描述

👉LTR Message使用规则:

· 他们需要使用默认流量类别TC0。接收方必须检查这一点并将违规行为作为格式错误的 TLP 进行处理。
· 它们没有数据有效负载,并且长度字段被保留。

🌟Optimized Buffer Flush and Fill Messages

在这里插入图片描述
在这里插入图片描述

👉OBFF Message使用规则:

· 他们需要使用默认流量类别TC0。接收方必须检查这一点并将违规行为作为格式错误的 TLP 进行处理。
· 它们没有数据有效负载,并且长度字段被保留。
· 请求者ID必须设置为发送端口的ID。

✨小结:

消息请求TLP在PCIe架构中扮演着重要角色,它允许硬件设备以非常高效的方式与系统其他部分进行通信。这种通信方式减少了对传统IRQ(中断请求)线路的依赖,并允许实现更加复杂和灵活的硬件控制逻辑。通过这种方式,系统可以更快地响应硬件事件,优化功耗管理,并提高系统的整体稳定性和性能

  • 46
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
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、付费专栏及课程。

余额充值