Pcie学习笔记(24)

news2024/11/14 21:32:36

Ordering and Receive Buffer Flow Control

流量控制(FC)用于防止接收端缓冲区溢出,并使其符合定义的排序规则。请注意,请求者使用流量控制机制来跟踪代理中可用的队列/缓冲区空间,如图2-48所示。也就是说,流控制是点对点的(跨一个链接),而不是端到端的。流控制并不意味着请求已经到达了它的最终Completer。

流量控制与用于实现发送端和接收端之间可靠信息交换的数据完整性机制是正交的。流量控制可以将从发送端到接收端的TLP信息流视为完美的,因为数据完整性机制确保损坏和丢失的TLP通过重传得到纠正。

每个虚拟通道维护一个独立的流量控制信用池。FC信息通过DLLP在链路的两端传递。DLLP的VC ID字段用于携带正确的Flow Control信用所需的VC ID。

流量控制由事务层与数据链路层合作处理。事务层为接收到的TLP执行流量控制计算功能,并根据可用的传输信用“门控”TLP传输,即使这些TLP最终被取消

注:流量控制是事务层的一个功能,因此,在接口上传输的以下类型的信息不与流量控制积分相关联:LCRC、分组分帧符号、其他特殊符号和数据链路层到数据链路层之间的通信包。这一事实的含义是,这些类型的信息必须由接收方以它们到达的速率进行处理。

此外,任何从事务层传输到数据链路和物理层的TLP必须首先通过流量控制“门控”。因此,无论是发送还是接收的流量控制机制都不知道数据链路层是否由于链路上的错误而重复传输TLP。

流量控制规则

•流量控制信息使用流量控制数据包(FCPs)传输,FCPs是DLLP的一种

•流量控制信用的单位是4 DW数据。(为啥有两种单位?4DW和下面的区别?

•对于报头:

◦不支持TLP前缀的接收器的流量控制信用单位是一个最大大小的报头和TLP摘要的总和

◦支持End-End TLP前缀的接收器的流量控制信用单位是一个最大大小的头,TLP摘要和一个TLP中允许的最大数量的End-End TLP前缀的总和。

◦流量控制的接收器支持Local TLP Prefixes的管理是依赖于Local TLP Prefixes 类型。

每个虚拟通道有独立的流量控制

•流量控制区分三种类型的TLP:

◦Posted Request (P) -消息和内存写

◦Non-Posted Request(NP) -所有读,I/O写,配置写和AtomicOps

◦Completion(Cpl) -与相应的NP请求相关联

•此外,Flow Control在三种类型中分别区分以下类型的TLP信息:

◦Headers (H)

◦Data (D)

因此,每个虚拟通道的Flow Control可以跟踪六种类型的信息

TLP消耗的流量控制信用如表所示。

•组件必须为该组件支持的所有虚拟通道实现独立的流量控制

流量控制仅由硬件自动初始化默认的虚拟通道(VC0)

◦当数据链路层在DL_Init状态下复位时,VC0被初始化。

•当其他虚拟通道被软件启用时,每个新启用的VC将遵循流量控制初始化协议。

软件通过在链路上的两个组件中设置虚拟通道的VC使能位来启用虚拟通道

注意:有可能多个vc同时遵循Flow Control初始化协议——每个vc都作为一个独立的进程遵循初始化协议。

软件通过清除链路上两个组件中虚拟通道的VC使能位来禁用虚拟通道。

◦禁用一个组件的虚拟通道会重置该组件中的虚拟通道的流量控制跟踪机制。

InitFC1和InitFC2 FCPs仅用于流量控制初始化

•指定禁用虚拟通道的InitFC1、InitFC2或UpdateFC FCP将被丢弃而无效。

•在任何虚拟通道的FC初始化期间,包括作为链路初始化的一部分初始化的默认VC,接收器初始发布的VC信用值必须等于或大于表2-44所示的值。

如果缩放流量控制不支持或支持但未激活,使用“比例因子1”列中的值

•如果缩放流量控制是支持和激活的,使用与信用类型相关的比例因子列中的值

•不支持根端口之间的点对点流量的RC必须在每个根端口上发布无限的Completion credits信用

•支持部分或全部根端口之间点对点流量的RC可以选择性地在这些根端口上发布非无限Completion credits积分。在这种情况下,RC必须确保避免死锁,并维护指向RC的Completion的前进进度。请注意,由于RC转发的Non-Posted Request可能没有明确分配完成缓冲空间,因此可能会暂时停止Completion traffic(由于暂时缺乏信用)。

不支持缩放流量控制的接收器不得累计向发送器发出超过2047个未使用的数据有效载荷或127个报头。支持按比例流量控制的接收方不得累计向发送方发出超过表3-2所示的最大信用值的未使用数据或报头。

◦组件可以选择检查是否违反此规则。如果实现此检查的组件确定违反了此规则,则该违反是流控制协议错误(FCPE)如果选中,这是一个与接收端口相关的报告错误

•如果在初始化过程中进行了Infinite Credit advertisement(值为00h或000h),则初始化后不需要进行Flow Control更新。

◦如果发送UpdateFC DLLP,信用值字段必须为Clear,且必须被接收方忽略。

接收方可以选择检查非零更新值(违反此规则)。如果执行此检查的组件确定违反了此规则,则该违反是流量控制协议错误(FCPE)。如果检查,则报告与接收端口相关的错误(参见6.2节)。

•如果在初始化过程中,给定类型(P、NP或Cpl)只有数据或报头发布(但不是两者都发布),并且有无限的积分,则仍然需要传输UpdateFC DLLPs,但是与数据/报头(发布为无限)对应的信用字段必须设置为零,并且必须被接收方忽略。

◦接收器可以选择检查非零更新值(违反此规则)。如果执行此检查的接收方确定违反了此规则,则该违反是流量控制协议错误(FCPE)。▪如果选中,这是一个与接收端口相关的报告错误(见6.2节)。

•如果缩放流量控制被激活,UpdateFCs中的HdrScale和DataScale字段必须匹配初始化期间发布的值(参见3.4.2节)。

◦接收方可以选择检查是否违反此规则。如果执行此检查的接收方确定违反了此规则,则该违反是流量控制协议错误(FCPE)。▪如果选中,这是一个与接收端口相关的报告错误(见6.2节)。

使用未使能的VC接收的TLP是畸形TLP。

始终使能VC0。

对于VCs 1-7,当VC资源控制寄存器中相应的VC Enable位被设置时,当FC协商该VC退出FC_INIT1状态并进展到FC_INIT2状态时,VC被认为是启用的

◦这是一个与接收端口相关的报告错误(见6.2节)。

•在该虚拟通道的初始化通过退出FC_INIT2状态完成之前,不允许使用任何虚拟通道0-7进行TLP传输。。

对于VCs 1-7,软件必须使用VC资源状态寄存器中的VC Negotiation Pending位,以确保在链路上两个组件的FC_INIT2状态退出协商完成之前不会使用VC。

下面章节中使用的[Field Size]参数如表2-45所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模型优化之剪枝

文章目录 什么是神经网络剪枝剪枝的好处不同粒度的剪枝剪枝的分类非结构化剪枝结构化剪枝 哪些层的参数更容易被剪掉剪枝效果 什么是神经网络剪枝 神经网络剪枝 在训练期间删除连接密集张量将变得稀疏(用零填充)可以通过结构化块( n m nm nm&…

【无标题】playbook的基本使用

1、使用ansible安装并启动ftp服务 [root1 ~]# vim /etc/ansible/hosts s0 ansible_ssh_host10.0.0.12 ansible_ssh_port22 ansible_ssh_userroot ansible_ssh_pass1 s1 ansible_ssh_host10.0.0.13 ansible_ssh_port22 ansible_ssh_userroot ansible_ssh_pass1 s2 ansible_s…

Android 12系统源码_屏幕设备(二)DisplayAdapter和DisplayDevice的创建

前言 在Android 12系统源码_屏幕设备(一)DisplayManagerService的启动这篇文章中我们具体分析了DisplayManagerService 的启动流程,本篇文章我们将在这个的基础上具体来分析下设备屏幕适配器的创建过程。 一、注册屏幕适配器 系统是在Disp…

43.x86游戏实战-DXX寻找吸怪坐标

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

Xshell中弹出“ssh服务器拒绝了密码请再试一次”时,如何解决

在使用Xshell连接Ubuntu系统时,可能会弹出这个错误 可能原因如下​ 密码输入错误Ubantu系统默认禁止root用户登录ssh。 解决方法: 1. 先用root登录 (由于我买的是云服务器,所以拿这个来举例) 注:要在本地shell中登录…

基于jqury和canvas画板技术五子棋游戏设计与实现(论文+源码)_kaic

摘 要 网络五子棋游戏如今面临着一些新的挑战和机遇。一方面,网络游戏需要考虑到网络延迟和带宽等因素,保证游戏的实时性和稳定性。另一方面,网络游戏需要考虑到游戏的可玩性和趣味性,以吸引更多的玩家参与。本文基于HTML5和Canv…

银河麒麟V10忘记Root密码怎么办?

银河麒麟V10忘记Root密码怎么办? 一:进入GRUB模式二:输入GRUB账号密码三:修改启动参数四:修改root密码五:重启系统六:验证root密码 💖The Begin💖点点关注,收…

就想刷题过?新手必看的华为认证题库最强背题经验技巧

华为认证作为网络和IT领域的重要资格认证,其难度不容小觑。许多考生为了顺利通过考试,选择背题库作为备考策略。 (重点说一下啊,不提倡刷题,能学知识,把技术学透,肯定是最佳的。) …

Java基于数据库、乐观锁、悲观锁、Redis、Zookeeper分布式锁的简单案例实现(保姆级教程)

1. 分布式锁的定义 分布式锁是一种在分布式系统中用来协调多个进程或线程对共享资源进行访问的机制。它确保在分布式环境下,多个节点(如不同的服务器或进程)不会同时访问同一个共享资源,从而避免数据不一致、资源竞争等问题。 2…

简单记录:两台服务器如何超快速互传文件/文件夹

在服务器间传输文件和文件夹是一个常见的任务,尤其是在需要同步数据或进行备份时。以下是使用 scp 命令在两台服务器之间进行文件传输的基本步骤。 服务器A 至 服务器B:文件传输指南 前提条件 确保服务器A和服务器B之间网络互通。确认您有权限访问目标…

如何让孩子喜欢上读书?

1.选择合适的书籍:根据孩子的兴趣和年龄选择合适的书籍,让孩子参与选书的过程,这样可以增加他们对阅读的主动性和兴趣。同时,避免过分强调阅读的功利性,让孩子自由选择他们感兴趣的书籍。   2.定期的阅读时间和活动&…

谷粒商城实战笔记-211~212-商城业务-认证服务-环境搭建

这一部分的主要内容是开发商城的认证服务。 文章目录 一,211-商城业务-认证服务-环境搭建1,创建模块2,引入相关依赖3,各种配置3.1 注册中心配置3.2 启用注册中心3.3 本节域名配置 4,页面模板4.1 html模板4.2 静态资源上…

python---数据可视化篇

目录 1.matplotlib简介 2.安装并且导入对应的模块 3.设置中文字体 4.创建画布 5.绘制折线图 6.对于折线图的美化 7.散点图的绘制 8.双y轴叠加图 9.簇形柱状图 10.百分比堆积柱状图 11.绘制多个子图(一个画布上面) 1.matplotlib简介 matplotl…

C盘扩容遇到恢复分区怎么办?

文章目录 1.0 问题描述2.0 了解恢复分区是啥3.0 恢复分区可以删除吗?(需确认好!)4.0 删除恢复分区(需要谨慎操作)4.0.1 管理员打开CMD4.0.2 查看磁盘 给C盘扩容 1.0 问题描述 想要给C盘扩容,但…

Hyper-v ubuntu22 上外网方法

1. 前置步骤 步骤一,首先新建一个虚拟网络交换机,我这里名称为vEthernet (hyper-v-ubuntu),选【内部网络】 步骤二, 在网络设置中,找到可以上网的网卡,这里我用的是无线网卡WLAN,设置共享连接…

【SpringBoot】SpringBoot的运行原理

SpringBoot项目中都有一个如下的启动类。 SpringBootApplication public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class,args);} }其中SpringBootApplication是这个启动类的核心注解,在它下面又有三个子…

Spring Cloud Gateway动态路由及路由插件实现方案

前言 sim-framework之前使用Zuul作为网关,结合Eureka实现了动态路由及灰度路由,但是存在以下几个问题: 性能问题:Zuul基于线程隔离,一个请求需要一个线程处理,而Gateway基于事件驱动,少量线程…

Go项目布局

Go项目布局,自举语言,源码是靠Go自己实现的 所以Go源码可以参考作为项目布局 源码放在src目录下 cmd放main internal目录下放不希望外部访问的代码(业务) common目录下可以放直接 import外部访问的 etc放配置文件yaml

第二届海南大数据创新应用大赛 - 算法赛道冠军比赛攻略_海南新境界队

关联比赛: 第二届海南大数据创新应用大赛 - 智能算法赛 第二届海南大数据创新应用大赛 - 算法赛道冠军比赛攻略 首先很幸运能拿到这次初赛冠军,本着积极学习和提升自我的态度,团队成员通力合作是获胜关键,再次感谢。 赛题背景分析和理解 …

gpio的使用----->4412的裸机的使用(第三节)

这一节主要是 4412 的裸机的使用 0 4412 的硬件原理图 数据手册 然后是数据手册的解析: 每一组都有这几个 寄存器。 需要注意: 1、 4412 的中断是 与输入,输出在同一个级别的,与stm32不同。 2、 我是在uboot 上进行编程的&#x…