PCIe Flow Control规则

Flow Control分类

flow control将TLPs分为下面3类,它们的credit分别处理。

Posted Requests(P)

MEM_WR、Messages

Non-Posted Requests(NP)

MEM_RD、IO_RD、CFG_RD、IO_WR、CFG_WR

Completions(CPL)

CPL、CPLD

对于每类TLP,Header和Data部分的Credit单独处理;

 对于Data而言,Credit单位为4DW;

对于Header而言,Creadit单位为最长的Header长度+TLP digest的长度;

每类TLP所消耗的Credits如下图所示,其中n=RoundUp(Length/4DW);

 发送端处理FC规则

 CREDITS_CONSUMED

 在链路初始化时设置为0;

 每次接收到TLP后,CREDITS_CONSUMED做下式更新,其中Increment表示当前TLP所需要消耗Credits:

CREDIT_CONSUMED≔(CREDIT_CONSUMED+Incrementmod 2^[Files Size]

CREDITS_LIMIT

    在链路初始化过程中不设置;

在FC初始化时设置初值;

每次接收到Update FC时,如果如果DLLP值与当前值不一致则刷新CREDITS_LIMIT,否则保持;

TLP发送条件

    除了CREDIT_LIMIT被设置为无限Credits的情况下,TLP发送必须满足下面公式:

CUMULATIVE_CREDITS_REQUIRED(CREDIT_CONSUMED+<Credits_Needed_for_pending_TLP>mod 2^[Files Size]

(CREDITS_ LIMIT-CUMULATIVE_CREDITS_REQUIRED)≤2^[Files Size]/2

当发送“nullified” TLP时不更新CREDITS_CONSUMED。

接收端FC处理规则

CREDITS_ALLOCATED

链路初始化时,根据buffer大小和分配策略设置初始值;

当接收到TLP后,其做如下更新,其中Increment为处理完TLP后释放出来的空间:

CREDITS_ALLOCATED:=(CREDITS_ALLOCATED+Increment)mod2^[Files Size]

CREDITS_RECEIVED(可选)

链路初始化时设置为0;

当接收到TLP后,其做如下更新,其中Increment为接收到TLP所需要空间:

CREDITS_RECEIVED:=(CREDITS_RECEIVED+Increment)mod2^[Files Size]

满检查(可选)

当满足下面公式,表示接收端缓存溢出:
CREDITS_ALLOCATED-CREDITS_RECEIVED≥2^[Files Size]/2

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCIE(Peripheral Component Interconnect Express)是一种计算机扩展总线标准,用于连接外部设备与计算机主板之间的数据传输。PCIe连接的设备可以是显卡、声卡、网卡等。 Flow control(流量控制)是PCIE中的一种基础机制,用于在设备之间传输数据时确保数据的可靠传输。 PCIEflow control可以分为两种方式:Credit-based Flow Control(基于信用控制)和Acknowledgment/Negative Acknowledgment Flow Control(确认/否定确认控制)。 基于信用控制是PCIE中最常用的流量控制机制。发送方设备在发送数据之前会向接收方设备发送一个信用(credit)值,表示发送方设备可以发送的最大数据量。接收方设备在接收到数据后会发回一个更新的信用值给发送方设备,发送方设备根据接收到的信用值确定下一次可以发送的数据量。通过这种方式,可以有效控制不同速度的设备之间的数据传输,避免数据丢失或信道阻塞。 确认/否定确认控制是PCIE中的一种备用方式,当发送方设备发送数据后,接收方设备会发回一个确认或否定确认信号给发送方设备,以告知是否成功接收数据。如果发送方设备收到否定确认信号,则会重新发送数据,确保数据的可靠性。 总结来说,PCIE中的flow control机制是为了确保数据的可靠传输而设计的。基于信用控制和确认/否定确认控制是两种常用的流量控制方式,可以根据不同的需求选择适合的方式来控制数据的传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值