PCIe学习笔记(12)

消息请求规则

主要涉及以下几种消息:

•INTx中断信令

•电源管理

•错误信令

•锁定事务支持

•槽位功率限制支持

•供应商定义消息

•延迟容错性报告(LTR)消息

•优化缓冲区刷新/填充(OBFF)消息

•设备就绪状态(DRS)消息

•功能就绪状态(FRS)消息

•精确时间测量(PTM)消息

以下规则适用于所有消息请求。接下来是特定于每种消息类型的其他规则。

•除了常见的报头字段,所有的消息请求还包括以下字段 (见图):

Requester ID[15:0]和标Tag9:0],形成Transaction ID

Message Code[7:0]-指定具体的消息体现在请求。

所有消息请求使用Msg或MsgD类型字段编码

•消息码字段必须完全解码(消息别名是不允许的)。

•Attr[2]字段不保留,除非特别指定为保留。

•除特别说明外,Attr[1:0]字段为保留字段。

LN不适用于Message Requests,该位为Reserved。

•除特别说明外,TH不适用于Message Requests,该位为Reserved。

AT[1:0]必须是00b。不要求或不鼓励接收方检查此选项。

•除特别说明外,第8到15字节为预留

消息请求是Posted,不需要完成

•消息请求遵循与内存写请求相同的排序规则

消息路由是使用Type字段的r[2:0]子字段确定的;

INTx中断信令-规则

消息信号中断(MSI或MSI- x)是PCI Express中首选的中断信号机制。然而,在某些系统中,可能存在不支持MSI或MSI- x机制的函数。在不能使用MSI或MSI-X机制的情况下,INTx虚拟线中断信令机制用于支持遗留端点和PCI Express/PCI(-X)桥SW必须支持这种机制。以下规则适用于INTx中断信令机制:

•INTx机制使用8个不同的消息(见表)。

•Assert_INTx/Deassert_INTx消息不包括数据负载(TLP类型是Msg)。

•Length字段保留

•对于Assert_INTx/Deassert_INTx消息,请求者ID中的Function Number字段必须为0。注意,对于非ARI和ARI请求者id,功能编号字段的大小是不同的。

•Assert_INTx/Deassert_INTx消息仅由上游端口发出。

◦接收方可以选择检查是否违反此规则。如果实现此检查的Receiver确定Assert_INTx/Deassert_INTx违反了此规则,则必须将该TLP作为Malformed TLP处理。

•Assert_INTx和Deassert_INTx中断消息必须使用默认的流量类指示器(TC0)

(缩写:RC =根复杂Sw =交换机(仅用于“链路”路由)Ep =端点Br = PCI Express(主要)到PCI/PCI- x(次要)桥r =支持作为接收器t =支持作为发射器)

Assert_INTx/Deassert_INTx消息对为每个指定为A, B, C和D的遗留PCI中断构成了四条“虚拟线”。以下规则描述了这些虚拟线的操作:

•每个链路两端的组件必须使用Assert/Deassert消息来跟踪四个虚拟线的逻辑状态,以表示每个相应虚拟线的活动和非活动转换(分别)。

◦Assert_INTx代表INTx (x = A, B, C, D)虚拟线的激活转换

◦Deassert_INTx代表INTx (x = A, B, C, D)虚拟线的非激活转换

•当INTx虚拟线的局部逻辑状态改变上游端口,端口必须沟通这一状态变化到下游端口的另一边相同的链接使用适当的Assert_INTx或Deassert_INTx消息。

注意:重复的Assert_INTx/Deassert_INTx消息没有效果,但不是错误。

•当命令寄存器的中断禁用位被设置时,INTx中断信令被禁用。

◦当中断禁用位设置时,任何INTx虚拟线都必须通过传输适当的Deassert_INTx消息来解除断言

•虚拟和实际PCI到PCI网桥必须根据网桥从侧设备的Device Number映射网桥从侧跟踪的虚线,如表2-19所示。

•Switch必须为每个下游端口独立跟踪四根虚拟线的状态,并在其上游端口上呈现一组“合并”的虚拟线。

•如果Switch下游端口变为DL_Down状态,与该端口关联的INTx虚线必须解除断言,并且Switch上游端口虚线状态相应更新。

◦如果这导致任何上游INTx虚拟线的撤销,适当的Deassert_INTx消息(s)必须由上游端口发送。

•RC必须为每个下游端口独立地跟踪四个INTx虚拟线的状态,并将这些虚拟信号映射到系统中断资源。

◦此映射的细节是系统实现特定的。

•如果根Complex的下行端口变为DL_Down状态,与该端口关联的INTx虚拟线必须解除断言,并且任何关联的系统中断资源请求必须被丢弃

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值