flow control

flow controlPCIE每个VirtualChannel都维护一个独立的FlowControlCreditPool。发送端要发送TLP,首先得获得Credit。FlowControl对3种TLP有效:1.PostedRequest(P)-Messages和MemoryWrites;2.Non-PostedRequest(NP)-所有的Reads,I/Owrites,Con…

大家好,又见面了,我是你们的朋友全栈君。

PCIE每个Virtual Channel都维护一个独立的Flow Control Credit Pool。发送端要发送TLP,首先得获得Credit。Flow Control对3种TLP有效:

1. Posted Request(P) – Messages和Memory Writes;

2. Non-Posted Request(NP) – 所有的Reads, I/O writes, Configuration Writes,和AtomicOps;

3. Completions(CPL) – 与NP相关的Completion。

并区分这3中TLP的Header和Data,所以Flow Control Credit的类型有6种:

flow control

在L0/L0s状态,对于每种被设成non-infinite的FC Credit,UpdateFC需要每隔30us至少发送一次,如果Control Link寄存器中的Extended Sync比特位置1,则每个120us至少发送一次。

 

在powerup之后,如果要开始进行正常的传输操作,需要先对默认的virtual channel(VC0)进行Flow control的初始化,如果enable了新的virtual channel,也需要对这个新的channel进行初始化。

Virtual Channel的初始化分为两步:

FC_INIT1

FC_INIT2

当VC0进入DL_Init状态后,或VC1-VC7被enable后,就会进入FC_INIT1。

进入FC_INIT1之后,TL层必须停止使用该VC上发送TLP;

按照1. InitFC1-P, 2. InitFC1-NP, 3. InitFC1-Cpl的顺序发送InitFC1 DLLP,并且每34us至少发送一遍;在Recovery或Configuration状态中所消耗的时间不计入34us内;强烈建议在没有其他TLP或DLLP发送的情况下,尽量多发送InitFC1 DLLP;

除非为了保证最低所需的InitFC1 DLLP的发送,Data  Link层不能停止其他包的发送,包括所有Physical Layer发起的包(OS),ACK/NAK DLLP,使用已完成初始化的VC来发送的TLP;

如果收到InitFC1和InitFC2 DLLP,记录FC unit的值,如果P/NP/Cpl都已被记录,则将FI1置1,然后进入FC_INIT2。

在FC_INIT2时:

TL层必须停止在该VC上发送TLP;

按照1. InitFC2-P, 2. InitFC2-NP, 3. InitFC2-Cpl的顺序发送InitFC2 DLLP,并且每34us至少发送一遍;在Recovery或Configuration状态中所消耗的时间不计入34us内;强烈建议在没有其他TLP或DLLP发送的情况下,尽量多发送InitFC2 DLLP;

除非为了保证最低所需的InitFC2 DLLP的发送,Data  Link层不能停止其他包的发送,包括所有Physical Layer发起的包(OS),ACK/NAK DLLP,使用已完成初始化的VC来发送的TLP;

如果收到InitFC1和InitFC2 DLLP,忽略FC unit的值,只要收到任意InitFC2 DLLP,则将FI2置1,然后退出FC_INIT2。

 

转载于:https://www.cnblogs.com/lybinger/p/10334028.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134781.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dijkstra算法详解—简单易懂[通俗易懂]

    dijkstra算法详解—简单易懂[通俗易懂]dijkstra算法详解(迪杰斯特拉算法)~~简单易懂,代码附有详细注释,含动态演示图片

    2025年8月13日
    3
  • 博客背景颜色怎么改_皮肤图片

    博客背景颜色怎么改_皮肤图片步骤:管理博客–>博客设置–>鼠标箭头移至当前模板–>鼠标右键–>检查–>找到checked=“checked”readonly将这段代码剪切后–>粘贴

    2022年10月9日
    2
  • 【计算机网络】常用网络命令

    【计算机网络】常用网络命令实验目的了解 ping ipconfig netstat tracert ARP route nslookup 等常用网络工具的功能以及使用方法 并通过这些工具发现或者验证网络中的故障

    2025年9月1日
    2
  • pmp证书(职称证书丢失补办流程)

    前言OpenSSL中的概念很多,网上的文档也非常的多,在这里做一下总结,首先明确以下内容。Https访问完整流程1)客户端发起一个https请求,连接到服务器的443端口。2)服务端把自己的信息以数字证书的形式返回给客户端(证书内容有密钥公钥,网站地址,证书颁发机构,失效日期等)。证书中有一个公钥来加密信息,私钥由服务器持有。3)验证证书的合法性客户端收到服务器的响应后会先验证证书的合法性(证书中包含的地址与正在访问的地址是否一致,证书是否过期)。4)生成随机密码(RSA签名)如果验

    2022年4月18日
    126
  • 【机器学习】数据归一化——MinMaxScaler理解

    【机器学习】数据归一化——MinMaxScaler理解文章目录前言公式实例前言前阵在查sklearn的归一化方法MinMaxScaler的时候,发现找到的文章解释的一塌糊涂,一般都是扔个公式加一堆代码就敷衍了事了,所以这次写一篇讲述MinMaxScaler核心功能的文章。公式会查MinMaxScaler的基本上都应该理解数据归一化,本质上是将数据点映射到了[0,1]区间(默认),但实际使用的的时候也不一定是到[0,1],你也可以指定参数feature_range,映射到其他区间,这个后面再讲。首先了解该计算公式:Xstd=X−X.min(axis

    2022年10月11日
    1
  • 出行的好帮手 – Google地图

    出行的好帮手 – Google地图

    2021年8月6日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号