PCIe LTR 使用指南

1. Endpoints

  1. 每当 Endpoint 对请求的响应时间需求有变化时,都应该发送 LTR 消息。在发送 LTR 消息变更要求的响应时间时,设备应该考虑到所有可能的延时,包括:

    1. 参考时钟(reference clock)关闭的状态下,恢复时钟所需的时间。
    2. 链路层从其他状态恢复到 L0 状态所需要的时间。
    3. LTR 消息发送的时间。
    4. 系统准备好处理新请求所需的时间。
  2. 如果是要降低对某类请求的响应延迟时间的容忍度(即要求系统在更快的时间内响应),那么应该在发送该类型的请求之前,尽量早的发送 LTR 消息,从而给系统足够的时间准备。

  3. 如果是要提高对某类请求的响应延迟时间的容忍度(即允许系统在更长的时间内响应),那么应该在使用之前的 latency tolerance 的请求发出后,立即发送 LTR 消息变更 latency tolerance 值。例如,当前的 No-Snooop latency tolerance 的值是10 ms,打算改成 20 ms,那么在以 10 ms 的要求发出最后一个 No-Snoop 请求之后,立即发出 LTR 消息,将 No-Snoop latency tolerance 值改为 20 ms。

  4. 为了让提升整个系统的电源效率,建议 Endpoint 在自己内部的缓存区中尽量的多缓存一些请求然后批量发出来。


对于包含多个 Function 的 PCIe Device,还有几个特殊规则:

  1. 首先应该选出该 Device 上所有 Function 的 latency tolerance 的最小值,然后使用该值创建 LTR 消息。
  2. 当 Device 上任何一个 Function 的 latency tolerance 发生改变时,都需要发送 LTR 消息。

2. Root Complex


关于 LTR, Root Complex 需要遵循的规则如下:


  1. 只要不超过 Endpoint / Switch 的 latency tolerance,那么 RC 可以延迟处理 Endpoint / Switch 的请求。一种使用场景就是将某个 Endpoint 提交的请求先缓存起来,攒到一块儿统一处理。

  2. 如果在一组请求的处理过程中更新了 latency tolerance,那么 RC 必须在处理下一个请求之前更新成最新的 latency tolerance值,并且要在比之前的 latency tolerance 值更短的时间内完成更新。 (If the latency requirements are updated while a series of Requests is in progress, the new values must be comprehended by the RC prior to servic‐ing the next Request, and within less time than the previously reported latency requirements.)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值