2.2.8.6 厂商定义消息
厂商定义消息允许扩展PCI Express消息功能,可以作为PCI Express规范的一般扩展,也可以是厂商特定的扩展。本节通用地定义了与这些消息相关的规则。
- 厂商定义消息(见表2-25)使用图2-28中显示的头标格式。
- requester ID是特定实现的。强烈建议requester ID字段包含与请求者相关联的值。
- 如果使用按ID路由,则byte8和9形成一个16位的destination ID字段——否则这些字节是保留的。
- byte 10和11形成一个16位的厂商ID字段,由定义消息的厂商根据PCI-SIG定义。
- byte12到15可供厂商定义。
- 数据有效载荷可以包含在任何类型的厂商定义消息中(如果没有包含数据有效载荷,则TLP类型为Msg;如果包含数据有效载荷,则TLP类型为MsgD)。
- 由不同厂商或PCI-SIG定义的消息通过VendorID字段中的值来区分。
- 特定厂商定义的消息的进一步区分超出了本文档的范围。
- 对特定厂商定义的消息的支持是实现特定的,并且超出了本文档的范围。
- 完成者(Completers)会默默丢弃它们未设计接收的厂商定义类型1消息——这不是错误条件。
- 完成者处理接收到的不支持的厂商定义type0消息,作为不支持的请求(Unsupported Request),并且根据第6.2节报告错误。
- [PCIe-to-PCI-PCI-X-Bridge-1.0]为旨在与PCI-X设备ID消息互操作的厂商定义消息定义了额外的要求。这包括对Tag[7:0]字段和Length[9:0]字段内容的限制,以及对消息头标byte12到15的特定使用。仅打算在PCI Express环境中使用(即,不打算解决PCI Express到PCI/PCI-X桥接器背后的目标)的厂商定义消息不受额外规则的约束。
2.2.8.6.1 PCI-SIG定义的VDMs
PCI-SIG定义的VDMs是使用PCI-SIG厂商ID(0001h)的厂商定义type1消息。作为厂商定义type1消息,如果完成者没有实现它,则每个都会被默默丢弃。 除了其他厂商定义type1消息的规则外,以下规则适用于PCI-SIG定义的VDMs的形成:
- PCI-SIG定义的VDMs使用图2-29中显示的头标格式。
- 请求者ID字段必须包含与请求者相关联的值。
- 消息代码必须是01111111b。
- 厂商ID必须是0001h,这是分配给PCI-SIG的。
- 子类型字段用于区分特定的PCI-SIG定义的VDMs。
2.2.8.6.2 LN消息
LN协议定义了LN消息,这些是PCI-SIG定义的厂商type1消息(VDMs)。每个消息的有效载荷通常包含一个已更新或已逐出的寄存缓存行的64位地址。64位单地址格式既用于64位也用于32位地址。由于每个LN消息都是厂商定义type1消息,如果完成者(Completer)接收到一个正确形成的LN消息,而完成者不认识该消息,则必须默默丢弃它。
LN消息可以被定向到使用基于ID的路由的单个EP,或者广播到给定根端口下的所有设备。广播LN消息是否发送到RC(根复合体&#x