PCIe学习笔记(14)

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消息的格式如图:

PCIE-DMA是一种基于PCIe接口的直接内存访问技术,能够实现高速数据传输。在我的学习笔记中,我详细记录了与PCIE-DMA相关的知识和学习心得。 首先,我了解到PCIE-DMA技术的基本原理和作用。PCIE-DMA可以通过PCIe总线直接访问系统内存中的数据,而不需要过多的CPU干预,提高数据传输的速度和效率。这种技术在需要大量数据传输的场景下非常有效,比如高性能计算、数据采集等。 其次,我深入学习PCIE-DMA的工作原理。PCIE-DMA的核心是DMA控制器,它负责管理和控制数据传输的流程。当设备需要读写内存中的数据时,它通过DMA控制器发送请求,然后DMA控制器生成一个事务,将数据直接传输到或从内存中。这样就大大减少了CPU的参与,提高了数据传输的效率。 另外,我还学习PCIE-DMA的配置和编程方法。PCIE-DMA的配置主要包括硬件配置和软件配置两个部分。硬件配置通常涉及到DMA控制器和PCIe接口的初始化和配置,软件配置则需要编写驱动程序来驱动DMA控制器和处理数据传输过程中的事件和异常。这部分内容对于我来说还比较新颖,需要更多的实践和实践。 最后,我总结了PCIE-DMA的应用场景和发展前景。PCIE-DMA在高性能计算、数据采集等领域具有广阔的应用前景。随着数据量的不断增加和传输速度的要求越来越高,PCIE-DMA技术的需求也将越来越大。因此,对于我来说,学习掌握PCIE-DMA技术非常有价值。 通过学习和记录PCIE-DMA的相关知识和经验,我对这项技术有了更深入的理解和掌握。希望将来能通过应用PCIE-DMA技术解决实际问题,为科研和工程项目的顺利进行做出贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值