首页 > 其他分享 >PCIe学习笔记(14)

PCIe学习笔记(14)

时间:2024-08-01 19:54:55浏览次数:10  
标签:Vendor 14 LN 笔记 PCIe 字段 消息 ID 定义

Vendor_Defined消息

Vendor_Defined Messages允许扩展PCI Express消息传递功能,既可以作为PCI Express规范的一般扩展,也可以作为特定于供应商的扩展。此处定义与这些消息关联的规则。

Message Code数量有限,PCIE协议定义了VDM (Vendor Defined Message),以此来扩展Message种类。

•Vendor_Defined消息(见表2-25)使用图2-28所示的报头格式。

◦请求者ID是具体实现的。强烈建议Requester ID字段包含与Requester关联的值。

◦如果使用ID路由,则字节8和9形成一个16位字段作为目的ID,否则这些字节被保留。

◦字节10和11形成一个16位字段的供应商Vendor ID,由PCI-SIG®定义的供应商定义的消息。

◦字节12至15可用于供应商定义

Note 1:端点/根复合体/网桥传输是具体实现的。SW必须使用路由r[2:0]字段值000b、010b和011b转发收到的消息

数据有效载荷可以包含在任一类型的Vendor_Defined Message中(如果不包含数据有效载荷,TLP类型为Msg;如果包含数据有效载荷,TLP类型为MsgD)。

•对于两种类型的Vendor_Defined消息,Attr[1:0]和Attr[2]字段不被保留。

•由不同供应商或PCI-SIG定义的消息通过供应商ID字段中的值来区分。

•Completers静默地丢弃它们未设计接收的接收的Vendor_Defined Type 1消息,这不是一个错误条件。

•Completers将收到不支持的Vendor_Defined Type 0消息作为不支持的请求处理,并根据6.2节报告错误。

PCI-SIG-Defined VDMs

PCI-SIG定义的vdm是使用PCI-SIG®Vendor ID (0001h)的供应商定义的Type 1消息。作为供应商定义的Type 1消息,如果Completer不实现它,则每个消息都会被Completer静默地丢弃。

与其他厂商定义的Type 1消息的形成规则不同,pci - sig定义的vdm的形成遵循以下规则:

•pci - sig定义的vdm使用如图所示的Header格式。

•请求者ID字段必须包含与请求者相关联的值。

•Message Code必须为01111111b。

•Vendor ID必须为0001h,这是分配给PCI-SIG的。

•Subtype字段用于区分pci - sig定义的vdm。

LN消息

LN协议定义了LN消息,它是pci - sig定义的vdm。每个消息的有效负载通常包含已更新或已退出的已注册cacheline的64位地址。单个64位地址格式用于64位和32位地址。由于每条LN消息都是供应商定义的Type 1消息,因此,如果Completer不能识别该消息,则需要接收到正确形式的LN消息的Completer静默丢弃该消息。

可以使用基于id的路由将LN消息定向到单个端点,也可以将其广播到给定根端口下面的所有设备。是否向RC中的所有根端口发送广播LN消息取决于具体实现。

与其他pci - sig定义的vdm不同,LN消息的形成遵循以下规则:

•LN消息的定义如表2-27和图2-30所示。

•每个消息必须包含一个2 DW数据负载。

•Fmt字段必须是011b (4 DW头,带数据)。

•TLP类型必须为MsgD。

•Length字段必须为2。

•TC[2:0]字段必须为000b。

•不保留IDO (ID-Based Ordering)位Attr[2]。

•不保留RO (relax Ordering)位Attr[1]。

•保留No Snoop位Attr[0]。

•保留LN位(LN read、LN Writes、LN completion必须设置LN位)。

•保留Tag字段。

•如果是广播版本,则Destination ID字段为Reserved。

•Subtype字段必须为00h。

•如果系统有效的缓存行大小为128字节,则“缓存地址”中的第6位必须为“清除”。对于接收到LN消息的LNR (Lightweight Notification Requester),如果在LNR控制寄存器中设置了LNR CLS位,配置了128字节的Cacheline,则LNR必须忽略Cacheline Address中第6位的值。

•NR (Notification Reason)字段的编码如表2-26所示,表示发送LN Message的具体原因。这些编码适用于直接和广播版本的LN消息。

LN消息的格式如图:

标签:Vendor,14,LN,笔记,PCIe,字段,消息,ID,定义
From: https://blog.csdn.net/yh_wrew/article/details/140856063

相关文章

  • Living-Dream 系列笔记 第71期
    众所周知,换根dp是非常套路的。换根真好玩(换根dp:当不同节点作为根时,dp结果不一致,若枚举每个节点作为根,则时间复杂度过高,在此种情形下,可使用换根dp处理相邻两节点间的贡献,从而达到快速换根的效果。使用场景:对于一棵树,寻找以某节点\(u\)为根时取得的最大值/最小值......
  • 旧笔记本安装Win8.1实录
    昨天发现一台尘封已久的LenovoideapadY550,给它装上了Windows10然后第二天系统挂掉了挂的原因是半夜万恶之源Windows更新开始造孽了刚好没电文件全坏了真解除封印因为文件已经没了我索性直接重装系统,降级到Win8.1真香!系统是Win8.1withupdate的精简版,开始菜单有关......
  • [学习笔记] 斜率优化
    引入斜率优化用于求解类似于\(f_i=f_j+a_ib_j+c_i\)使\(f_i\)最大或最小之类的形式的DP转移,标志就是其中有一项(如\(a_ib_j\))与\(i,j\)均有关联。求解令\(j\)为\(i\)的最优决策点,也就是\(f_i=f_j+a_ib_j+c_i\),我们将其进行一些移项可以得到\(f_j=-......
  • Pytorch笔记|小土堆|P5-6|Dataset类
    Dataset类作用:模型的数据集接口__init__将对象实例化,创建对象时obj=class(...,...)会立即被调用,需要提供(输入)类中使用到的变量。__getitem__通过img,label=obj[idx]获取(返回)每一个数据和label__len__通过len(obj)获取(返回)数据量点击查看代码fromtorch.utils.dataim......
  • 学习笔记第十六天
    1.结构体        1.1结构体的定义        结构体(Struct)是C语言中一种重要的复合数据类型,允许将不同类型的数据项组合成一个单一的类型。定义结构体使用struct关键字,其基本语法为:structStudent{         成员列表;};         //;不......
  • 14.前端html
    html一、基本介绍1、定义:html是一种超文本标记语言,也是一种标识性语言(不是编程语言)标记:记号(绰号)超文本:就是页面内容可以包含图片、链接,音乐,视频等素材。2、为什么学习html?(1)测试页面元素,了解页面页面元素(页面是html语言编写的)(2)进行ui自动化需用到元素定位3、html有哪些特......
  • Obsidian学习笔记-界面图标介绍(上)
     背景打开Obsidian,会看到界面是极简画风,初学者或许难以弄清界面边框上诸多小图标的含义,本文将详细介绍。(发现有点多,遂分量篇分享)一、功能页(左)这里用功能页代指页面左侧第一栏,这块也是Obsidian的功能标密集区。这里按照下面第一张图的划分,分区讲解。(1号下方目录上方......
  • Pixel Aligned Language Models论文阅读笔记
    Motivation&Abs近年来,大语言模型在视觉方面取得了极大的进步,但其如何完成定位任务(如wordgrounding等)仍然不清楚。本文旨在设计一种模型能够将一系列点/边界框作为输入或者输出。当模型接受定位信息作为输入时,可以进行以定位为condition的captioning。当生成位置作为输出时,模型......
  • Pytorch笔记|小土堆|P1-5
    Pytorch环境安装及配置1、创建conda环境,名为pytorchcondacreate-npytorchpython=3.102、在任务管理器的性能中确认显卡,是否支持CUDA。其次,确认显卡驱动,cuda9.2支持396.26以上的驱动,可以在命令行使用nvidia-smi来看自己驱动是否满足要求,如果低于396.26,可以使用各种管家更......
  • 【笔记】杂题选讲 2024.8.1 下午
    [AGC018F]TwoTrees[AGC018F]TwoTrees-洛谷|计算机科学教育新生态(luogu.com.cn)先判一下奇偶性。考虑做一个很强的钦定,奇数都填\(\pm1\),偶数都填\(0\)。对于同一棵树的一棵子树,考虑对子树内两个奇数点做匹配,要求匹配上的点一个\(+1\)一个\(-1\),这样就能在子树的根......