这段文字描述了 Set_Slot_Power_Limit Message(设置插槽功率限制消息)的使用规则,主要涉及如何传递和设置插槽的功率限制值。下面是对本章的详细解读:
1. 消息的用途
• Set_Slot_Power_Limit Message 旨在从 下游端口(Downstream Port)(通常是根复合体(Root Complex)或交换机(Switch))传递插槽功率限制值到 上游端口(Upstream Port),这个上游端口可能连接到终端(Endpoint)、交换机或PCI-PCI桥接器(Bridge)等设备。
• 简单来说,这条消息是用来告知连接在同一链路上的设备其插槽的功率限制值。
2. 消息的格式
• 数据负载:该消息包含一个 1 DW(Double Word,双字) 的数据负载,TLP类型为 MsgD(即含数据的消息)。这意味着消息除了控制信息外,还带有实际的功率限制值。
• 流量类别:消息必须使用 默认的流量类别 TC0。接收端需要检查消息是否违反了这一规则。如果消息违反了,接收端必须将其视为格式错误的消息(Malformed TLP),并报告错误。
3. 数据负载的内容
• 这条消息的 数据负载 来自 下游端口的 Slot Capabilities register(插槽能力寄存器),并将其写入到连接链路另一端的上游端口的 Device Capabilities register(设备能力寄存器)。具体来说:
○ Byte 1(第1字节)的第1:0位:映射到 Slot Power Limit Scale(插槽功率限制缩放)字段。
○ Byte 0(第0字节)的第7:0位:映射到 Slot Power Limit Value(插槽功率限制值)字段。
○ Byte 2、Byte 3 以及 Byte 1 的第7:2位:这些位的值必须由发送端设置为0,接收端会忽略这些位的值。
4. 消息的自动发送触发条件
• 自动触发条件:下游端口(根复合体或交换机)在以下情况下必须自动发送 Set_Slot_Power_Limit Message:
1. 配置写入 Slot Capabilities register 时(即配置插槽能力寄存器时),并且数据链路层(DL)报告链路状态为 DL_Up。
2. 链路从非 DL_Up 状态过渡到 DL_Up 状态 时,且 Slot Control Register 中的 Auto Slot Power Limit Disable bit 被清除。如果插槽能力寄存器还未初始化,发送这条消息是可选的。
5. 接收端的处理
• 接收端的 上游端口(如终端、交换机或桥接器)需要将接收到的 Set_Slot_Power_Limit Message 中的数据负载复制到 设备能力寄存器,该寄存器用于描述该端口的功率限制。
6. 特定设备的例外
• 对于一些设备,如专门集成在系统板上的组件,或者功耗低于适配器规范中定义的最低功率限制的适配器组件,它们可以将 Slot Power Limit Scale 和 Slot Power Limit Value 字段硬编码为0,而不需要复制 Set_Slot_Power_Limit Message 的数据负载。
7. 总结
• Set_Slot_Power_Limit Message 用来在根复合体或交换机的下游端口和上游端口之间传递插槽的功率限制信息。
• 该消息带有1个双字(DW)的数据负载,包含插槽功率限制的值和缩放信息。
• 消息会根据特定的事件自动触发,确保上游端口了解插槽的功率限制。
• 接收端会根据这个限制值调整自己的设备能力寄存器,告知插槽功率限制。
• 对于某些特殊设备(如低功耗设备),它们可以直接使用硬编码的0值,而不需要根据消息内容设置功率限制。
这条消息的机制确保了系统中各个组件能够有效地管理和限制功耗,尤其是在插槽设备之间传递功率限制时。