PCIe VSC、VSEC、DVSEC

news2024/11/20 13:28:06


🔥点击查看精选 PCIe 系列文章🔥
🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥


📢 声明

  • 🥭 作者主页:【MangoPapa的CSDN主页】。
  • ⚠️ 本文首发于CSDN,转载或引用请注明出处【https://mangopapa.blog.csdn.net/article/details/132179674】。
  • ⚠️ 本文目的为 个人学习记录知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
  • ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
  • 😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
  • 📧 邮箱:mangopapa@yeah.net
  • 💬 直达博主:loveic_lovelife 。(搜索或点击扫码)

文章目录

  • 1. Vendor-Specific Capability (VSC)
  • 2. Vendor-Specific Extended Capability (VSEC)
  • 3. Designated Vendor-Specific Extended Capability (DVSEC)
  • 4. 参考


  PCIe 定义了三类可由供应商 Vendor 自行指定的能力结构:Vendor-Specific Capability (VSC)、Vendor-Specific Extended Capability (VSEC) 及 Designated Vendor-Specific Extended Capability (DVSEC)。其中,VSC 兼容 PCI,VSEC 及 DVSEC 不兼容 PCI。VSEC 由单个 Vendor 独立使用,DVSEC 由多个相关的 Vendor 共同使用。



1. Vendor-Specific Capability (VSC)

  Vendor-Specific Capability (VSC),供应商指定能力,是一种兼容 PCI 配置空间的能力结构,其结构如下图所示。该能力结构位于 PCIe 配置空间的前 256B 内,其前 3B 格式固定,Capability Length、Next Capability Pointer 及 Capability ID 各占 1B。
在这里插入图片描述



2. Vendor-Specific Extended Capability (VSEC)

  Vendor-Specific Extended Capability (VSEC),是一种可选的供应商指定扩展能力,供单个供应商使用,可以实现在 PCIe Function 或 RCRB 中。VSEC 能力结构如下图所示。
在这里插入图片描述
  跟 VSC 相比,VSEC 位于 PCIe 配置空间 257B~4KB 的区域,其前 8B 格式固定,Capability Header 及 Vendor-Specific Header 如下图所示。

在这里插入图片描述
  值得说明的是,单个 PCIe Function 或 RCRB 内可以实现多个 VSEC 结构,从而支持多个自定义的扩展能力。多个 VSEC 通过 Vendor-Specific Header 中的 VSEC ID 来区分。



3. Designated Vendor-Specific Extended Capability (DVSEC)

  Designated Vendor-Specific Extended Capability (DVSEC),特定的供应商指定扩展能力,可选,供多个供应商使用,单个 PCIe Function 或 RCRB 内可以实现多个 DVSEC 结构。DVSEC 结构如下图所示。
在这里插入图片描述

  跟 VSEC 相比,DVSEC Header 中多了 2B Vendor-Specific Header。原 VSEC ID 挪到 Byte[9:8]的位置,原来的位置替换为 DVSEC Vendor ID。如下图所示。

在这里插入图片描述
  举个例子,

  • 对于 UCIe 协议,DVSEC Vendor ID=TBD(还没分配),DVSEC ID=0x00h 表示 UCIe Link DVSEC,DVSEC ID=0x01 表示 CiSRB DVSEC。
  • 对于 CXL,DVSEC Vendor ID=0x8086 @CXL 1.1, 0x1E98 @CXL 2.0,DVSEC ID=0x00 表示 PCIe DVSEC for CXL Devices,0x02 表示 Non-CXL Function Map DVSEC,0x03 表示 CXL Extensions DVSEC for Ports,0x05 表示 GPF DVSEC,0x07 表示 PCIe DVSEC for Flex Bus Port,等等。


4. 参考

  1. PCI Express Base Spec 6.0.1
  2. pci - Difference between DVSEC, VSEC and RCRB - Stack Overflow

— END —


🔥 精选往期 PCIe 协议系列文章,请查看【 PCIe 专栏】🔥

⬆️ 返回顶部 ⬆️

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

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

相关文章

[LeetCode - Python] 11.乘最多水的容器(Medium);26. 删除有序数组中的重复项(Easy)

1.题目: 11.乘最多水的容器(Medium) 1.代码 1.普通双指针对撞 贪心算法 class Solution:def maxArea(self, height: List[int]) -> int:# 对撞双指针# 对比记录最大面积,并移动短板,重新计算;left,…

人工智能(AIGC)在多领域的应用

文章目录 内容创作领域艺术创作领域媒体与广告领域教育与培训领域科研与创新领域总结 人工智能(AI)的快速发展正在为各行各业带来深刻的变革,其中人工智能生成内容(AIGC)技术的应用尤为引人瞩目。AIGC利用深度学习等技…

编码技巧——Sentinel的blockHandler与fallback

本文介绍Sentinel的blockHandler与fallback的区别,背景是:发生限流时,配置的sentinel的blockhandler没有生效而fallback生效了;排查原因,从而给出Sentinel配置异常降级和限流降级的代码写法; 在查看源码前…

“尚硅谷”Mysql数据库DDL补充

数据类型 原则:所选择的类型越简单越好,能保存数值的类型越小越好,节省空间。 数值型 整型 特点 1、如果不设置无符号还是有符号,默认是有符号,如果(ˇ?ˇ) 想设置无符号我,需要添加unsigned关键字。 2…

Netty框架自带类DefaultEventExecutorGroup的作用,用来做业务的并发

一、DefaultEventExecutorGroup的用途 DefaultEventExecutorGroup 是 Netty 框架中的一个类,用于管理和调度事件处理器(EventExecutor)的组。在 Netty 中,事件处理是通过多线程来完成的,EventExecutor 是处理事件的基…

【Fegin技术专题】「原生态」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(中)

你可以使用 Jersey 和 CXF 这些来写一个 Rest 或 SOAP 服务的java客服端。 你也可以直接使用 Apache HttpClient 来实现。但是 Feign 的目的是尽量的减少资源和代码来实现和 HTTP API 的连接。 *通过自定义的编码解码器以及错误处理,你可以编写任何基于文本的 HTT…

day22-513.找树左下角的值

513.找树左下角的值 力扣题目链接(opens new window) 给定一个二叉树,在树的最后一行找到最左边的值。 示例 1: 示例 2: 思路 迭代 迭代的思路最简单,只需层序记录每一层的第一个结点即可,代码如下: class Solution { publi…

HR专家:未来零代码开发将成求职热门,你准备好了吗?

一名五十五岁的农民,毫无程式设计经验,靠著自己自学零码开发,竟为他的家乡建起了六个数位资讯系统,其中一个更是带动了乡村“厕所革命”。阿里云说,“也许10-15年以前,公司的招聘会要求员工能够使用 WORD, …

【沁恒蓝牙mesh】CH58x USB功能开发记录(三)

本博文主要记录 ,【沁恒蓝牙mesh】CH58x USB功能开发记录(三),数据收发基于寄存器级别解释 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎📝 个人主页&#xf…

阿秀思考了很久,最后还是决定啦!

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 小伙伴们大家好,我是阿秀。 经常看我文章的应该知道今年我过得很是颠簸,从今年二月份到现在我经历了很多事。 从《关于我组长跑路我被顶上来了这件事》、《天啦撸&#x…

再谈领导力和组织能力

(1)一个笑话 说的是一个人去买鸟: 问左边的鸟多少钱,卖鸟的人说十块钱。问为啥这么贵?卖鸟的人说它长的好看。 问右边的鸟多少钱,卖鸟的人说二十块钱。问为啥这么贵?卖鸟的人说它会学人讲话。 问…

JVM如何调优

一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参…

面试热题(LRU缓存)

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 …

实现5*5正方形网格x轴和y轴显示对应数值组件封装

实现5*5正方形网格x轴和y轴显示对应数值组件封装 需求&#xff1a;按5*5的正方形网格&#xff0c;根据目标数据的x和y轴值显示对应的文字&#xff0c;实现效果图如下&#xff1a;&#xff08;当前目标数值&#xff1a;x2&#xff0c;y2&#xff09; 代码如下&#xff1a; <…

华为运动健康,十年创新天地宽

我听一位朋友讲过这样一个故事。某天早上&#xff0c;急诊科的医生迎来了一位患者&#xff0c;患者进来后直接说&#xff1a;“大夫&#xff0c;我房颤了。” 这位医生非常诧异&#xff0c;因为心脏房颤确实非常危急&#xff0c;但很多时候并没有明显的生理体征&#xff0c;患者…

源码下载安装nginx

文章目录 下载安装nginx1、准备工作2、下载源码包3、安装4、启动nginx5、网页访问首页 下载安装nginx 1、准备工作 Nginx的安装需要提前安装Linux的几个库&#xff0c;避免编译和配置错误 安装gcc编译器 yum install gcc -y安装openssl库 yum install openssl openssl-dev…

CSS 盒模型是什么?它包含哪些属性?标准盒模型/怪异盒模型

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 盒模型⭐ 标准盒模型⭐ 怪异盒模型⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感…

SQL必知必会读书笔记

文章目录 **不同的DB语法格式不尽相同**第一课 了解SQL术语 第二课 检索数据语法格式检索列检索唯一不同值限制结果&#xff08;数量&#xff09; 第三课 排序检索数据使用说明 第四课 过滤数据WHERE子句操作符 第五课 高级数据过滤1、组合WHERE子句2、IN操作符3、NOT操作符 第…

kube-prometheus 使用 blackbox-exporter 进行icmp 监控

安装kube-prometheus 后默认在monitoring namespace中有创建 blackbox-exporter deployment。但默认没有icmp的module配置&#xff0c;无法执行ping探测。因为即使有icmp module&#xff0c;默认配置也是无法执行ping探测的&#xff08;这篇文章要解决的就是这个问题&#xff0…

尚品汇总结十:秒杀模块(面试专用)

1、需求分析 所谓“秒杀”&#xff0c;就是商家发布一些超低价格的商品&#xff0c;所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉&#xff0c;往往一上架就被抢购一空&#xff0c;有时只用一秒钟。 秒…