PCIe学习笔记(26)

Error Forwarding(错误转发)

错误转发(也称为数据中毒),通过设置EP位表示。下面是一些使用错误转发的例子:

•例#1:从主存读取遇到不可纠正的错误

•例#2:PCI写到主存的奇偶校验错误

•例#3:内部数据缓冲区或缓存上的数据完整性错误

错误转发使用模型

•错误转发仅用于读取完成数据,AtomicOp完成数据,AtomicOp请求数据或写数据,从不用于错误在“头”(请求阶段,地址/命令等)的情况。

报头错误的请求/完成通常不能被转发,因为真正的目的地不能被确定,因此,转发可能会导致直接或副作用,如数据损坏,系统故障等。

•错误转发用于通过系统、系统诊断等控制错误的传播

•注意,错误转发不会导致链路层重试——只有当链路上存在传输错误时,才会重试中毒的TLP(由数据链路层中的TLP错误检测机制确定)。

◦中毒的TLP最终可能导致请求的发起者(在事务层或更高层)在读取操作的情况下重新发出它,或采取其他一些行动。

Rules For Use of Data Poisoning(数据中毒)

•对发射器的TLP中毒的支持是可选的。

•数据中毒仅适用于写请求(Posted或Non-Posted)、带有数据的消息、AtomicOp请求、读完成或AtomicOp完成中的数据

通过设置EP位表示TLP的中毒。

◦发射机被允许仅为包括数据有效载荷的TLPs设置EP位。如果为任何不包含数据负载的TLP设置了EP位,则不指定接收方的行为

•如果下游端口支持中毒TLP Egress Blocking,设置了“中毒TLP Egress Blocking使能”位,并且有一个中毒的TLP目标从出口端口发出,则端口必须将该TLP作为中毒TLP Egress Blocked错误处理,除非存在更高优先级的错误。进一步指出:

◦端口不能传输TLP。

◦如果DPC(数据包校验)没有被触发,并且TLP是一个Non-Posted Request,端口必须返回一个Completion with Unsupported Request Completion Status。

◦如果DPC被触发,端口必须按照章节2.9.3的描述行为

###(1、DPC(Downstream Port Containment):DPC 是一种用于处理PCIe链路中错误情况的机制。当PCIe链路上的一个设备发送错误信号时,DPC机制允许系统针对该错误进行处理,以避免错误的传播和影响其他设备。具体而言,DPC机制会隔离出故障设备,从而限制错误的影响范围,确保其他设备继续正常工作。

2、DPC则是一种用于处理PCIe链路中错误情况的机制。当PCIe链路上的一个设备发送错误信号时,DPC机制允许系统采取相应的措施来隔离故障设备,以限制错误的传播范围,确保其他设备继续正常工作。DPC机制依赖于AER提供的错误信息来进行错误处理。

在PCIe架构中,AER和DPC通常结合使用,以提供更全面的错误处理和容错机制。当PCIe设备发生错误时,AER会检测和报告错误的详细信息,而DPC则可以根据这些错误信息采取相应的措施,例如隔离故障设备,以维护整个PCIe系统的稳定性和可靠性。

所以,AER用于检测和报告PCIe设备的错误,而DPC用于处理错误情况并限制错误的传播范围,两者共同为PCIe系统提供了强大的错误处理和容错功能。

虽然AER和DPC在某种程度上可以协同工作,但它们是独立的机制,并不是逻辑上的包含关系。AER提供了错误的检测和报告,而DPC则是根据这些错误信息来采取相应的隔离措施,以维护系统的稳定性和可靠性

参考:【PCIE】AER和DPC解释_pcie dpc-CSDN博客

•以下带有中毒数据的请求不能修改目标位置的值:

配置写请求

以下任何一个目标控制寄存器或控制结构在Completer: I/O写请求,内存写请求,或非供应商定义的消息与数据

◦AtomicOp请求

除非有更高优先级的错误,否则Completer必须将这些请求作为中毒TLP Received error来处理,并且如果请求是Non-Posted的,Completer还必须返回一个Completion Status为Unsupported Request (UR)的Completion。无论所报告的错误的严重程度如何,所报告的错误必须作为不可纠正的错误处理,而不是可咨询的非致命错误。

SW必须以与未中毒时相同的方式路由请求,除非请求的目标是交换机本身的位置,在这种情况下,SW是请求的完成者,必须遵循上述规则。

完成超时机制 (Completion Timeout Mechanism)

在任何split transaction协议中,都存在与请求者未能收到预期的完成相关的风险。为了允许请求者以标准的方式尝试从这种情况中恢复,定义了完成超时机制。该机制仅在没有合理预期完成将被返回时激活,并且不应在正常操作条件下发生。注意,这里指定的值不反映预期的服务延迟,并且不能用于估计典型的响应时间。

P发出要求完成的请求的CI Express设备功能必须实现完成超时机制。配置请求例外(见下文)。在传输请求时,完成超时机制会为每个需要一个或多个完成的请求激活。由于交换机不会自动发起需要完成的请求,因此对完成超时支持的要求仅限于RC、PCI Express-PCI桥和EP

完成超时机制可以通过配置软件禁用。完成超时限制在设备控制2寄存器的完成超时值字段中设置。完成超时是与请求函数相关的报告错误

注意:一个有多个完成的内存读请求,只有当所有的完成都被请求者收到才被认为是完成的。如果在Completion Timeout计时器到期之前返回了部分(但不是全部)请求的数据,则允许请求者保留或丢弃在计时器到期之前返回的数据。

配置请求的完成超时对PCI Express到PCI/PCI Express桥的支持有特殊要求。默认情况下,PCI Express to PCI/PCI- x桥不启用向桥后的PCI/PCI- x设备返回配置请求的CRS (Configuration Request Retry Status)。这可能导致长时间的完成延迟,必须通过根复合体中的完成超时值来理解。根据[PCI -to-PCI-PCI- x -Bridge-1.0]中提到的限制,系统软件可以通过在设备控制寄存器中设置桥配置重试使能位,使PCI Express到PCI/PCI- x桥返回CRS。

完成超时前缀/报头日志功能

与完成超时相关联的请求TLP的前缀/报头可以由实现AER能力的请求者记录。对前缀/报头记录的支持由高级错误能力和控制寄存器中的完成超时前缀/报头日志能力位的值表示。

  • 13
    点赞
  • 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、付费专栏及课程。

余额充值