PCIe专题学习——2.4

2023-11-03

之前我们讲了对PCIe的一些基础概念做了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol)主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。

一:事务层Flow Control概述

话说,前端时间小编想探访一下故宫深邃与博大,就就兴致勃勃的去了,在长安街上过了无数个安检终于到达了天安门城楼之下,通过天安门城楼之后就看到了梦寐以求的故宫,准备买票呀~当走到售票窗口时,看到一行字,小编失望极了,因为上面写着"故宫限流了~售票截止"!我的天呐~白跑一趟~当时小编就想,如果来之前能得到限流的信息就好了~

讲到这里,不要为小编叹息呢~小编今天给大家带来个新朋友“Flow Control”。从英文的字面意思来看,它跟小编在故宫遇到的“限流”差不多是一个意思~

 

在PCIe协议中,如果要发送以恶搞TLP,就必须要保证接收端有足够的缓存(buffer)来接收,为了实现这一功能,接收端回随时回报可用的缓存空间。

 

在接收端有一个缓存空间叫做VC bufferr,其中VC代表的是Virtual Channel,翻译过来就是虚拟通道,VC buffer可以存放从发送端传递过来的TLPs;

  • PCIe可以支持8虚拟通道(VC),每个VC之间可以相互独立传输TLPs, 当一个VC buffer满的时候,并不影响其他VC继续传输。

  • 有关VC的详细内容会在后续章节介绍,本文就不再展开了~

在flow control中,还有一个很重要的概念不得不提一下:信用机制(Credit-based Mechanism),因为接收端的可用VC buffer是以信用机制的方式告知发送端,在这里,信用积分代表接收端VC buffer的可用空间。

接收端通过发送DLLP(Data Link Layer Packets)来告知发送端VC buffer的信用积分(也就是告知VC buffer可用空间),当缓存空间快满的时候,发送端会停止发送TLP,以防止VC buffer容量不足而造成发送端传输的数据被丢失,从而避免要求发送端重新发送刚才发送的数据,最终达到更加有效利用网络带宽。

其实,事务层(Transaction Layer)和链路层(Data Link Layer)是Flow control机制的共同监护人,如下图:

  • Device A和Device B均会把其事务层对应的可用空间(FC Buffer)告知链路层,链路层会在适当的时间生成Flow control DLLPs将可用空间的信息转送至接收端。(Device A to Device B, Device B to Device A

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCIe专题学习——2.4 的相关文章

  • windows PCIe 工具: TeleScan

    TeleScan PE for Windows 用户可以通过TeleScan PE来扫描系统中的PCI PCIe设备 xff0c 并提供了读写其配置空间中的寄存器的功能 download Teledyne LeCroy PCI Expres
  • pci和pcie的区别

    原文地址 xff1a https blog csdn net u013253075 article details 80835489 最近在学习驱动开发过程中涉及到PCI相关知识 xff0c 在网上看了很多文章 xff0c 良莠不齐 xff
  • PCIe MSI-X 中断 设置 过程

    主机侧初始化 msi span class token operator span map span class token operator 61 span span class token operator lt span span c
  • PCIe RAS

    对于Linux系统针对RAS的AER错误处理机制完成 PCIe RAS简单来讲就是PCIe的错误检测 纠正以及汇报的机制 它可以方便我们准确的定位 xff0c 纠正和分析错误增强系统的健壮性和可靠性 PCIe错误的分类 PCIe错误分为可校
  • Jetson Xavier RC EP 的PCIe互通测试(12)

    一 硬件连接 xff1a 交叉线 X16引脚定义 xff1a 从此面看 xff1a 从上到下 xff0c 依次为A1 A2 A3 从背面看 xff1a 从上到下 xff0c 依次为B1 B2 B3 注意断开 xff1a A2 A3 B1 B
  • FPGA基于XDMA实现PCIE X8通信方案测速 提供工程源码和QT上位机程序和技术支持

    目录 1 前言2 我已有的PCIE方案3 PCIE理论4 总体设计思路和方案5 vivado工程详解6 驱动安装7 QT上位机软件8 上板调试验证9 福利 xff1a 工程代码的获取 1 前言 PCIE xff08 PCI Express
  • LabVIEW FPGA PCIe开发讲解-实战篇:实验61:PCIe DMA+8位ADC(模拟数据采集卡)

    1 实验内容 现在很多电脑PC或者工控机主板上面都集成了PCIe插座 可以直接插入PCIe板卡 优点是卡槽标准 插拔简单 传输速度极快 对于高速采集测试测量领域 PCIe用途非常广泛 最大极限带宽可以到6 6GB s 这个速度可以直接用来做
  • [PCIe] SR-IOV (单根虚拟化) 及linux驱动浅析(device的PF和VF及其驱动)

    网上从服务器和虚拟化层面介绍SR IOV应用的文章很多了 本文重点从支持SR IOV的设备 EP 及其驱动来讨论 对于SR IOV的设备 EP 来说 无非就是一个device通过物理功能 PF 虚拟出关联的若干个虚拟功能 VF host的驱
  • #PCIE# PCIE基础知识篇(3)

    写在前面 本文章转载自老狼知乎 感谢分享 随着AMD新一代CPU的发布 PCIe 4 0 Gen4 也进入了人们的视线 然而Intel随后宣传PCIe 4 0对消费市场用处不大 AMD则反讽Intel吃不到葡萄说葡萄酸 正在吃瓜群众搬板凳看
  • 多点通讯之Multi-drop

    PCI Express system architecture里面有这么一句话 I O devices share the PCI bus and are connected to it in a multi drop fashion 对m
  • 大带宽、高速率接口对比---USB、PCIE、SATA、HDMI和以太网等接口

    一 PCIE接口 二 USB接口 三 SATA接口 SATA 编码方式 原始频宽 传输速率 有效速率 排线最长长度 SATA1 0 SATA2 0 8bit 10bit 3Gb s 300MB s 275MB s 1M SATA3 0 8b
  • M.2/sata2.0/3.0接口,PCI-E1.0/2.0/3.0/4.0x2x4x8x16速率汇总

    B站 硬件科普 PCIe到底是个什么东西 他在电脑里是干什么的 PCIE2 0 PCIE3 0 PCIE4 0 PCIE5 0接口的带宽 速率计算 sata2和sata3接口区别 https diy pconline com cn grap
  • PCIe热插拔:通知试热插拔&暴力热插拔

    PCIE热插拔 某些特殊的应用场合可能要求PCIe设备能够以高可靠性持续不间断运行 为此 PCIe总线采用热插拔 Hot Plug 和热切换 Hot Swap 技术 来实现不关闭系统电源的情况下更换PCIe卡设备 热切换和热插拔的主要区别是
  • 说一说PCIe5.0的速率和带宽

    最近 有一个并不肤浅的同事问了我一个问题 U 2的带宽是多少 为什么有人说U 2最大是32GB s 首先 从PCIe5 0 CEM规范里我们查到 对于一条lane来说 PCIe5 0 的Basic bandwidth为32 0 GT s 这
  • PCIe专题学习——4.0(物理层结构解析)

    之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link lay
  • PCIe架构下memory空间、IO空间、PCIe配置空间简介

    转载自 PCIe架构下memory空间 IO空间 PCIe配置空间简介 1 4种空间迷魂阵 PCIe架构下定义了4种地址空间 Memory空间 IO空间 配置空间和message空间 我们先看一下PCIe spec关于这四种空间的定义 1
  • PCIe专题学习——3.2(数据链路层Ack/Nak机制解析)

    之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link lay
  • macOS DriverKit:制作 PCI dext 来替换内置驱动程序

    我正在尝试在 DriverKit 中编写一个用户空间 PCI 驱动程序 用于教育 研究目的 我找到了一个来自 WorthDoingBadly 的示例其中包含 PCI 设备 dext 的样板代码 我已删除了漏洞利用代码 我已将其修改为通过以下
  • 使用 pci_enable_msi_block

    我正在尝试在内核模块中启用多个 MSI irq 线 我正在 RC 模式下操作 问题是当我打电话时pci enable msi block 它不会分配超过 1 个 MSI 如果我打电话pci enable msi block dev 32 它
  • 我是否需要在 Linux 3.12 驱动程序中“启用”PCIe 内存区域?

    我有从 PCIe 驱动程序的probe 函数调用的代码 大致基于此post https stackoverflow com a 5195061 32836 EDIT 基于安德烈亚斯 邦贝 https stackoverflow com a

随机推荐

  • strerror函数

    strerror函数 在linux编程下 经常看到很多的函数调用的返回值都会有一句话 错误代码存放在errno中 比如 open write creat 函数就会把错误原因放入errno中 最开始我也是很纳闷的 这个是什么啊 具体怎么看这个
  • Lightroom Classic 安装教程 2023最新版本

    Lightroom Classic是一个用于处理和编辑数字照片的软件 由Adobe开发和发布 它包括图片管理 RAW图像处理 编辑和输出功能 并提供大量的调整工具和预设 让用户可以轻松地对照片进行色彩校正 曝光调整 修剪和旋转 去除瑕疵和噪
  • 创建一个没有文件名的任意后缀的文件

    今天在实习的时候用WebStorm配置Eslint的时候遇到这个问题 就是需要一个 eslintrc的文件 但是我直接新建一个文档改后缀名不能使用 于是就想到了老师上课的时候让我们自己新建一个 gitignore包 办法如下 很小白的操作
  • idea git远程修改大小写字母,本地未修改,git pull faild warning redirecting to

    当他人远程修改了git分支的某字母 大小写修改 本地拉取失败或出现两个分支 只是某字母大小写不同 时 可以打开该项目 找到 git文件夹 如果没有则勾选隐藏的项目 git refs remotes origin 找到对应分支 进入文件修改名
  • QT QTableWidget 遍历导出时的一个空指针问题

    文章目录 如何遍历导出QTableWidget 空指针导致的程序崩溃 原因分析 解决方法 如何遍历导出QTableWidget 正常情况下在QT开发时 我们可以使用以下代码导出QTableWidget中的数据到一个文本文件 tbl gnss
  • 数学建模模型大全_数学建模——预测模型

    拟合 拟合是最基本的预测方法 matlab中提供了polyfit fit函数 用法示例 x p 注 拟合阶数过高意义不大 易出现过拟合现象 一般 3阶 MATLAB中还提供了 拟合工具箱 在命令行窗口输入 cftool 即可调用 时间序列
  • 【C语言初阶】 选择结构(分支语句)

    博客主页 小王又困了 系列专栏 C语言 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 1 选择结构和条件判断 2 用if语句实现选择结构 2 1在C语言中选择结构主要是用if语句实现的 为了让大家进一步了解if语句的应用 我们举个
  • JSR303校验

    1 什么是JSR303校验 JSR是Java Specification Requests的缩写 意思是Java 规范提案 是指向JCP Java Community Process 提出新增一个标准化技术规范的正式请求 任何人都可以提交J
  • CTFShow web入门刷题记录-命令执行

    CTFShow web入门刷题记录 命令执行 web29 考点 preg match对于 flag 的字符的过滤 使用f 代替flag完成绕过 匹配任何字符串 文本 包括空字符串 代表任意字符 0个或多个 ls file 匹配任何一个字符
  • 西瓜书--第五章.神经网络

    个性签名 整个建筑最重要的是地基 地基不稳 地动山摇 而学技术更要扎稳基础 关注我 带你稳扎每一板块邻域的基础 博客主页 七归的博客 创作不易 走过路过别忘了三连击了哟 关注作者 不仅幸运爆棚 未来更可期 Triple attack 三连击
  • Medical Image Segmentation Review:The Success of U-Net

    目录 医学图像分割综述 UNet的成功 1 摘要与介绍 2 分类 2 1 2D Unet 2 2 3D UNet 3 UNet扩展 3 1对于跳跃连接的增强与改进 3 1 1 增加跳跃连接数量 3 1 2 对跳跃连接过程中的特征进行处理 3
  • React笔记之组件-复杂state的使用(4)

    前置简介 上一节 https juejin im post 6867454175781847047 我们简单说了state的使用 本节说明一下复杂的state使用方式 如果state里不止有 n 怎么办 类组件中 state 中有多个值 d
  • 翰高数据库安装连接

    1 背景 最近公司在做一个军用机场跑道异物检测设备 但是由于各国之间的关系紧张 军放要求我们软件做一个国产数据库的适配 经查阅才知道这个翰高数据库用的内核为postgresql 然后再这个基础上做了一定修改与优化 废话不多说 安排 2 数据
  • jenkins 部署 和构建java项目

    1 准备环境依赖 jdk yum install jdk 8u261 linux x64 rpm 2 下载jenkins yum install https mirrors tuna tsinghua edu cn jenkins redh
  • 什么是 DevOps?看这一篇就够了!

    文章目录 一 前因 二 记忆 三 他们说 3 1 Atlassian 回答 什么是 DevOps 3 2 微软回答 什么是 DevOps 3 3 AWS 回答 什么是 DevOps 四 DevOps 文化 4 1 什么是文化 4 2 什么是
  • 特征重要性计算方法及神经网络的特征重要性

    这是我第63篇文章 这篇文章主要简单讲一些常用特征重要性计算方法及神经网络的特征重要性计算方法 1 几种常用的特征重要性计算方法 1 1 树模型特征重要性 像xgboost lightgbm等树模型都有自己计算特征重要性的方法 其特征重要性
  • 【面试题】fiddler怎么抓包,目的是什么?

    如何抓包 fiddler可以抓web app请求 web端主要是配置好设置然后信任证书 app需要在web中配置好端口 使用手机访问给定的证书地址 下载证书并安装到手机上 然后在手机的无线网络里设置下代理 目的 1 不知道接口的情况下 答
  • Unity实现UI跟随物体

    在项目有时候需要一个光标来提示物体的位置 并且可点击 我这里分享一个自己在开发过程中的小方法 首先的思路就是创建一个ui组件作为光标 不管是image 还是button 按自己实际需求而定 然后可以设置中心点pivot 接下来就是让这个光标
  • 创建蓝图函数

    如果把蓝图类当作C 类的设计图 那么函数是必不可少的 即成员函数 蓝图类中添加函数 改名 myPrint 类似于宏 这里也有输入输出参数接口 只是函数自带执行数据类型 而宏完全自定义 只打印出hello即可 在事件图表中 允许输入 按A键时
  • PCIe专题学习——2.4

    之前我们讲了对PCIe的一些基础概念做了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link lay