CN105980998B - 每功能下行端口控制 - Google Patents

每功能下行端口控制 Download PDF

Info

Publication number
CN105980998B
CN105980998B CN201580007347.1A CN201580007347A CN105980998B CN 105980998 B CN105980998 B CN 105980998B CN 201580007347 A CN201580007347 A CN 201580007347A CN 105980998 B CN105980998 B CN 105980998B
Authority
CN
China
Prior art keywords
function
address
endpoint device
pcie
rid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580007347.1A
Other languages
English (en)
Other versions
CN105980998A (zh
Inventor
卫斯理·邵
林沐晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105980998A publication Critical patent/CN105980998A/zh
Application granted granted Critical
Publication of CN105980998B publication Critical patent/CN105980998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Abstract

每功能下行端口控制(Per‑Function Downstream Port Containment,pF‑DPC)是快捷外围部件互连标准(Peripheral Component Interconnect express,PCIe)中的下行端口控制(Downstream Port Containment,DPC)的扩展。pF‑DPC将非致命错误限制在端点设备的特定功能而不将PCIe端口与所述端点设备之间的链路去激活。用于pF‑DPC的PCIe端口可滤除(例如,丢弃)携带路由标识符(routing identifier,RID)和/或分配给受非致命错误影响的功能的地址的包,同时通过对应链路继续转发携带与剩余可运作功能关联的RID/地址的包。

Description

每功能下行端口控制
相关申请案交叉申请
本申请要求2014年2月5日由Wesley Shao和Lin Muhui递交的发明名称为“每功能下行端口控制(Per-Function Downstream Port Containment)”的第14/173,643号美国非临时专利申请案的在先申请优先权,该在先申请的全部内容以引入的方式并入本文本中。
技术领域
本发明大体上涉及快捷外围部件互连标准(Peripheral ComponentInterconnect Express,PCIe)总线,以及在具体实施例中,涉及每功能下行端口控制(downstream port containment,DPC)。
背景技术
外围部件互连标准(Peripheral Component Interconnect,PCI)总线是用于附接计算机中的硬件设备的本地计算机总线。PCI总线支持处理器总线的功能。连接到总线的设备,在处理器看来,是直接连接到了处理器总线,并会被分配处理器的地址空间中的地址。附接的设备可以采取以下形式中的任一者:能安装到母板本身上的集成电路或能安装在卡槽中的扩展卡。快捷PCI(PCI Express,PCIe)是原PCI总线标准的高速扩展,并且对总线设备进行了众多改进,包括更高的最大系统总线吞吐量、更少的管脚数、更小的物理足迹和更好的性能扩展。
发明内容
本发明的描述每功能下行端口控制的实施例大体上实现了技术优势。
根据一项实施例,提供了一种用于每功能下行端口控制的方法。在本示例中,所述方法包括在快捷外围部件互连标准(Peripheral Component Interconnect,PCI)(PCIExpress,PCIe)接口上接收读或写请求。所述读或写请求包括与端点设备的第一功能关联的第一路由标识符(routing identifier,RID)。所述方法还包括:检测所述端点设备的所述第一功能的非致命错误,通过在地址表中搜索与所述第一RID关联的条目来确定分配给所述端点设备的所述第一功能的第一地址范围,以及滤除携带所述第一RID或所述第一地址范围内的地址的包而不将所述PCIe接口与所述端点设备之间的链路去激活。还提供了一种用于执行所述方法的装置。
根据另一项实施例,提供了一种快捷外围部件互连标准(Peripheral ComponentInterconnect Express,PCIe)交换结构。在本示例中,所述PCIe结构包括上行PCIe接口和耦合在所述上行PCIe接口与端点设备之间的下行PCIe接口。所述下行PCIe接口用于接收包括与所述端点设备的第一功能关联的第一路由标识符(routing identifier,RID)的读或写请求。所述下行PCIe接口还用于:检测所述端点设备的所述第一功能的非致命错误,通过在地址表中搜索与所述第一RID关联的条目来确定分配给所述端点设备的所述第一功能的一个或多个地址范围,以及滤除携带所述第一RID或所述一个或多个地址范围内的地址的包而不将所述PCIe接口与所述端点设备之间的链路去激活。
根据又一项实施例,提供了另一种用于每功能下行端口控制的方法。在本示例中,所述方法包括在外围部件互连标准(Peripheral Component Interconnect,PCI)接口上接收读或写请求。所述读或写请求包括分配给端点设备的第一功能的第一地址。所述方法还包括:检测所述端点设备的所述第一功能的非致命错误,通过在地址表中搜索与所述第一地址关联的条目来确定分配给所述端点设备的所述第一功能的第一路由标识符(routingidentifier,RID),以及滤除携带所述第一RID的包而不将所述PCIe接口与所述端点设备之间的链路去激活。还提供了一种用于执行所述方法的装置。
根据又一项实施例,提供了另一种快捷外围部件互连标准(PeripheralComponent Interconnect Express,PCIe)交换结构。在本示例中,所述PCIe交换结构包括上行PCIe接口和耦合在所述上行PCIe接口与端点设备之间的下行PCIe接口。所述下行PCIe接口用于:接收携带分配给端点设备的第一功能的第一地址的读或写请求,检测所述端点设备的所述第一功能的非致命错误,通过在地址表中搜索与所述第一地址关联的条目来确定分配给所述端点设备的所述第一功能的第一路由标识符(routing identifier,RID),以及滤除携带所述第一RID的包而不将所述PCIe接口与所述端点设备之间的链路去激活。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了一实施例PCIe网络的图;
图2示出了一实施例PCIe架构的图;
图3A至图3B示出了另一实施例PCIe网络的图;
图4示出了一请求头格式的图;
图5示出了另一请求头格式的图;
图6示出了完成头格式的图;
图7示出了一错误消息格式的图;
图8示出了用于进行执行每功能DPC的一实施例方法的流程图;
图9示出了用于进行执行每功能DPC的另一实施例方法的流程图;以及
图10示出了一实施例通信设备的方框图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
下文将详细论述本发明实施例的制作和使用。应了解,本文所揭示的概念可以在多种具体环境中实施,且所论述的具体实施例仅作为说明而不限制权利要求书的范围。进一步的,应理解,可在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,对本文做出各种改变、替代和更改。
下行端口控制(Downstream Port Containment,DPC)是PCIe标准的建议扩展,设计用于自动禁止发生非致命(或致命)错误后的链路以便防止可能扩散的数据损坏以及在软件支持时启动错误恢复。因此,DPC的工作原理为:在检测到与端点设备提供的功能关联的错误时禁止与该端点设备关联的链路。然而,端点设备可提供多个功能,且在一些实例中,非致命错误可能不会影响端点设备提供的所有功能。在这类实例中,可能不需要完全关闭/禁止PCIe端口与端点设备之间的链路,因为这样做可能会阻止CPU接入端点设备提供的剩余可运作功能。另外,如果受影响的功能是交换机的上行端口,那么完全禁止PCIe交换机上行端口与其上行设备(根端口或另一交换机的下行端口)之间链路可能导致禁用链路下的整个子结构,包括交换机和其所有端口以及下行设备,都变得不可访问。
本发明的各方面提供了一种每功能DPC(per-Function DPC,pF-DPC),其是DPC的扩展,pF-DPC将非致命错误限制在端点设备的特定功能而不禁止PCIe端口与端点设备之间的链路。更具体地,用于pF-DPC的PCIe端口可滤除(例如,丢弃)携带路由标识符(routingidentifier,RID)和/或分配给受非致命错误影响的功能的地址的包,同时通过对应链路继续转发携带与剩余可运作功能关联的RID/地址的包。在一些实施例中,利用RID转发和地址转发两者的PCIe结构中的PCIe端口可建立并维护将RID与分配给端点功能的地址和/或地址范围关联的地址表。PCIe端口可使用这些表确定与遇到错误的端点功能关联的地址或RID,从而允许PCIe端口在执行pF-DPC时提供全面滤除。这些和其它方面将在下文详细描述。
图1示出了PCIe网络100,其包括中央处理器(central processing unit,CPU)101,用于通过PCIe交换结构110访问多个端点设备160、170、180。CPU 101可为任意主机系统处理器,而端点设备160至180可包括用于提供功能供CPU 101使用的任意设备,包括用户接口(例如,屏幕、键盘等)、外部存储(例如,磁盘等)等。PCIe交换结构110是用于根据快捷PCI 3.0或其衍生物等快捷PCI标准操作的高速互连总线。图2更详细地示出了PCIe架构,图2示出了PCIe网络200,CPU 201通过PCIe网络200经由PCIe交换结构210访问多个端点设备260至270。如图所示,PCIe交换结构210包括根联合体212和交换机214。根联合体212可通过本地总线耦合到CPU 201,并可用于替CPU 201生成事务请求。尽管根联合体212描述为分立设备,但在一些实施例中,根联合体212可集成在CPU 201的板上。根联合体212包括根端口220,其可为耦合到CPU 201的快捷PCI端口。在一些实施例中,根联合体212包括不止一个PCIe端口。交换机214包括耦合到根端口220的上行端口230和分别耦合到端点260、270的下行端口240、250。
端点设备可提供多个功能,本文中称为端点功能。可为每个端点功能分配唯一的RID和不重叠地址的若干范围。图3A示出了PCIe网络300,其包括通过下行端口340、350连接到端点设备360、370的上行端口330。如图所示,端点设备360、370是多功能设备,端点设备360包括功能362、364、366,端点设备370包括功能372、374、376。PCIe网络300可支持基于RID的路由和基于地址的路由。下行端口340分配有第一RID(RID1),功能362分配有第二RID(RID2)和地址200至299,功能364分配有第三RID(RID3)和300至399,功能366分配有第四RID(RID4)和地址400至499,下行端口350分配有第五RID(RID5),功能372分配有第六RID(RID6)和地址600至699,功能374分配有第七RID(RID7)和地址700至799,功能376分配有第八RID(RID8)和地址800至899。
偶然的非致命错误一般仅影响端点设备的单个端点功能。图3B示出了下行端口340检测到功能364中的非致命错误的实例。下行端口340用于每功能DPC,因此滤除去往功能364的包而不禁止链路346。更具体地,下行端口340用于滤除携带RID3或地址300至399的范围中的地址,同时通过链路346继续传送携带RID2/RID4或范围200至299/400至499内地址的包。在一些实施例中,可在入口和出口两个方向滤除包。
以下是下行端口340如何能够启动每功能DPC的示例。下行端口340从上行端口接收携带RID3或范围300至399中地址的读或写请求,然后在记分板表中创建条目以便跟踪请求的状态。下行端口340然后通过链路346转发请求并等待响应。在转发请求后,下行端口340可通过各种方式检测功能364的错误。在一个示例中,超时时间在接收完成包之前到期。在另一个示例中,下行端口340接收包括完成中止(completion abort,CA)状态或不支持请求(unsupported request,UR)状态的错误消息或完成包。在各实施例中,完成包包括与转发的读或写请求关联的标识符(例如,标记字段)。这个标识符可用于通过查询记分板表以确定与标识符关联的条目来确定先前转发的请求包中携带的RID或地址。或者,错误消息或完成包可直接携带RID3和/或范围300至399中的地址。在确定功能364已发生非致命错误之后,下行端口340可向上行端口330发送携带RID1的合成错误消息或完成包以避免上行端口330中的超时。在本示例中,下行端口340可为PCIe交换机下行端口或根端口。在一些实施例中,当合成的错误消息携带与下行端口关联的RID时,上行端口330可忽略合成的错误消息并继续上行转发错误消息。这样,仅需在下行端口中执行每功能DPC滤除。或者,上行端口330可与下行端口340并行执行每功能DPC,在这种情况下,滤除操作分布/重复于整个PCIe结构中。这可改进冗余和/或提供每功能DPC支持,不管使用的下行端口部件。
请求包可以携带端点功能的RID或地址。图4示出了携带端点功能的地址(例如,内存的64位寻址)的请求头格式400,如可包括在读或写请求中的。如图所示,请求头格式400指定分配给端点功能的一个或多个地址/地址范围以及请求设备(例如,根联合体、端点等)的请求者ID。图5示出了携带端点功能的RID的请求头格式500,如可能会包括在读或写请求中的。
非致命错误可以通过接收携带完成中止(completion abort,CA)或不支持请求(unsupported request,UR)状态的错误消息或完成包来检测出。图6示出了完成头格式600。如图所示,完成头格式600包括完成者ID、请求者ID、完成状态和标记字段。完成包用于要求完成的非发送请求,例如,读请求。完成状态字段可携带CA或UR状态。标记字段匹配开放请求,完成者ID(Completer ID)字段确定原始请求的目标。图7示出了错误消息格式700。如图所示,错误消息可包括请求者ID。PCIe错误消息用于在处理内存写等没有完成的发送请求时报告错误。错误消息的请求者ID(Requester ID)字段匹配生成该消息的设备或位于该设备上行的下行端口。
本发明的各方面提供了一种用于执行每功能DPC的方法。图8示出了用于执行每功能DPC的的方法800,如可由下行PCIe端口执行的。如图所示,方法800开始于步骤810,在步骤810中,PCIe端口接收携带RID的读或写请求。然后,方法800前进到步骤820,在步骤820中,PCIe端口通过与该RID关联的链路转发该读或写请求。随后,方法800前进到步骤830,在步骤830中,PCIe端口通过该链路接收错误消息或完成包。该错误消息或完成包指示与该RID关联的功能发生了非致命错误。接着,方法800前进到步骤840,在步骤840中,PCIe端口通过在地址表中搜索对应于该RID的条目来确定分配给该功能的地址。每个条目可将该RID与分配给该功能的地址或地址范围关联。然后,方法800前进到步骤850,在步骤850中,PCIe端口滤除携带该RID或分配给该功能的地址的包而不将该链路去激活。
在一些实施例中,用于执行每功能DPC的技术包括将地址映射到RID。图9示出了用于执行每功能DPC的方法900,如可由PCIe端口执行的。如图所示,方法900开始于步骤910,在步骤910中,PCIe端口接收携带地址的读或写请求。然后,方法900前进到步骤920,在步骤920中,PCIe端口通过与功能关联的链路转发该读或写请求。随后,方法900前进到步骤930,在步骤930中,PCIe通过该链路接收错误消息或完成包。该错误消息或完成包指示与该地址关联的功能发生了非致命错误。接着,方法900前进到步骤940,在步骤940中,PCIe端口通过在地址表中搜索对应于该地址的条目来确定分配给该功能的RID。随后,方法900前进到步骤950,在步骤950中,PCIe端口通过在地址表中搜索对应于确定的RID的条目来确定分配给该功能的剩余地址。然后,方法900前进到步骤960,在步骤960中,PCIe端口滤除携带分配给该功能的RID或地址的包而不将该链路去激活。
在一些实施例中,PCIe事务可包括发送事务(例如,MemWr)和非发送事务(例如,Cfg、IO、MemRd等)两者。在各实施例中,PCIe错误可包括可校正的错误和不可校正的错误。不可校正的错误可以是致命的或非致命的。DPC可为由不可校正的错误触发的可选能力。当DPC被触发时,整个链路被禁止,必要的完成被合成,不接受其它上行和下行事务层包。有利地,DPC提供停止了由其它TLP造成的错误的更稳健和标准化的错误遏制,通过合成完成来减少超时,以及使用详细的头日志来隔绝将由软件处理的错误,从而提高错误恢复的可能性。然而,一旦链路被禁止,整个子层都会受影响,把代价高昂且可能难处理的恢复强加给子层中的所有设备,会对PCIe结构产生不利。这个问题在单根输入输出虚拟化(singleroot input output virtualization,SR-IOV)设备中更严重,这些SR-IOV设备可具有几十(或甚至数百)个PCIe功能。
本发明的各方面为基于ID的路由和基于地址的路由提供了每功能DPC。PCIe RID可为包括总线号、设备号和功能号的路由ID(<Bus#><Dev#><Func#>)。
每功能DPC可由非致命错误触发,可包括事务导向方法,该方法可以可靠地确定端点功能RID和/或地址。非致命错误可以出现在各种情况中,例如,中毒的TLP、完成超时、完成者中止、非预期的完成、端到端循环冗余检查(end-to-end cyclic redundancy check,ECRC)错误、不支持的请求、接入控制服务(access control service,ACS)违规、组播(multicast,MC)受阻TLP错误、原子出口受阻错误、TLP前缀受阻错误以及其它。非致命错误可以来自端点设备或来自下行端口。
下行请求可以包括与端点功能关联的地址或RID。到端点设备的流可在记分板上记录为开放事务。端点设备可使用指示状态的完成包和/或错误消息作为响应。指示错误状态的完成包可标记有端点功能RID以确定已被阻止进一步访问(逻辑链路断开)的PCIe功能。
指示错误状态的完成包可标记有下行端口RID或端点功能RID。完成包可包括与记分板表中的端点RID关联的匹配完成标记或包括可匹配到地址表中的端点功能RID的端点功能地址。
非致命错误消息通常可流向根联合体,可以包括端点功能RID或下行端口RID。非致命错误消息可标记有端点功能RID以确定已被阻止进一步访问(逻辑链路断开)的PCIe功能。当下行端口已为受错误影响的功能启动每功能DPC时,非致命错误消息可标记有下行端口RID。因此,接收携带下行端口RID的非致命错误消息的PCIe端口可忽略非致命错误消息。
上行部件(根联合体、根端口和交换机)可在PCIe结构枚举期间侦听PCIe配置空间访问并且发现下行交换机端口(相对于端点)的RID,因为指示设备是端点还是交换机端口的设备类型寄存器位于众所周知的地址处。侦听的结果可以存储在实施pF-DPC的上行部件内的地址表中。
记分板可由用于每功能DPC的PCIe端口来管理。这些记分板在一些方面可与现有根联合体/端口中发现的那些类似,可用于记录未完成的事务以便匹配完成。记分板的输入可以是标记输出、RID或地址。以下表1示出了记分板的示例。
表1
地址表可由用于每功能DPC的PCIe端口来管理。地址表可用于记录地址范围(例如,BAR)、表项所属的PCIe功能的RID,以及设备是端点还是交换机端口。可为SR-IOV虚拟功能单独维护地址表。可以为遗留功能、SR-IOV物理功能(physical function,PF)和虚拟功能(virtual function,VF)维护不同数目的BAR或地址范围。可以通过在PCIe结构枚举期间进行侦听来获知遗留功能和SR-IOV物理功能的BAR/地址范围。更具体地,操作系统可通过访问结构的配置空间寄存器来枚举PCIe结构。访问作为配置事务(ID路由)出现在PCIe链路上。如果下行端口遇到下行流动的这类事务,其可以检查包并且确定BAR是否正在被访问和配置,因为非VF设备(遗留和PF设备)的BAR位于众所周知的地址处。因此,下行端口硬件可以通过“侦听”自己建立完整的地址地图。在枚举时,可以由软件对VF的BAR/地址范围进行编程。以下表2示出了为遗留或物理功能维护的地址表的示例,以下表3示出了为虚拟功能维护的地址表的示例。
表2
表3
每功能DPC可在下行端口中实施,因此物理上靠近错误源,比用于限制在根联合体的功能层级控制的技术可更有效。
在各实施例中,具有pF-DPC能力的下行端口可用于:记录状态寄存器中端点功能的RID和/或地址,停止涉及有问题的设备/功能的任何业务(两个方向),滤除标记有端点RID的新请求/完成,通过在地址表中查找条目来滤除具有与该端点RID匹配的地址的新请求,以及中断软件以报告故障事件。软件可以用于处理错误条件和/或清除错误状态。然后,下行端口硬件可以用于允许再次访问设备/功能。PCIe端口与提供受错误影响的功能的端点设备之间的链路在整个每功能DPC恢复过程中可保持活动。
在一项实施例中,下行端口可接收携带地址的PCIe读请求,并且在VF内存空间寄存器中创建条目。与地址关联的设备/功能可能已遇到故障并可能没有在超时之前作出响应。下行端口可具有pF-DPC能力,并可在接收到请求事务时打开新记分板条目并记录目标地址。如果在超时时间到期之前未收到完成,那么pF-DPC端口可声明超时,并可使用记分板中的目标地址在地址表中查找条目以及确定该地址已被分配给哪个VF。pF-DPC端口可根据以下公式确定故障VF的RID:VF_RID=(Target_Addr–BAR_Base)/BAR_Size*VF_Stride+1stVF_Offset。然后,pF-DPC端口可滤除被标记VF的RID的新请求/完成,滤除具有与该RID匹配的地址的新请求,以及在状态寄存器中记录VF_RID并且通过中断将故障报告给软件。
图10示出了设备1000的实施例的方框图,设备1000可等同于以上所述的一个或多个设备。设备1000可包括处理器1004、存储器1006和多个接口1010、1012、1014,它们可(或可不)如图10所示排列。处理器1004可为能够执行计算和/或其它与处理有关的任务的任意部件,存储器1006可为能够为处理器1004存储程序和/或指令的任意部件。接口1010、1012和1014可为允许设备1000向或从PCIe接口传送数据或控制信息的任意部件或部件的集合。
尽管进行了详细的描述,但应理解,可在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,对本文做出各种改变、替代和更改。此外,本发明的范围不希望限于本文中所描述的特定实施例,所属领域的一般技术人员将从本发明中容易了解到,过程、机器、制造工艺、物质成分、构件、方法或步骤(包括目前存在的或以后将开发的)可执行与本文所述对应实施例大致相同的功能或实现与本文所述对应实施例大致相同的效果。相应地,所附权利要求范围包括这些流程、机器、制造、物质组分、构件、方法及步骤。

Claims (23)

1.一种用于每功能下行端口控制的方法,其特征在于,所述方法包括:
在快捷外围部件互连标准PCIe接口上接收读或写请求,所述读或写请求包括与端点设备的第一功能关联的第一路由标识符RID;
检测所述端点设备的所述第一功能的非致命错误;
通过在地址表中搜索与所述第一路由标识符关联的条目来确定分配给所述端点设备的所述第一功能的第一地址范围;以及
滤除携带所述第一路由标识符或所述第一地址范围内的地址的包而不将所述PCIe接口与所述端点设备之间的链路去激活。
2.根据权利要求1所述的方法,其特征在于,所述条目中的每一个将所述第一路由标识符与分配给所述端点设备的所述第一功能的所述第一地址范围中的地址关联。
3.根据权利要求1或权利要求2所述的方法,其特征在于,确定分配给所述端点设备的所述第一功能的所述第一地址范围包括:
在所述地址表中确定与所述第一路由标识符关联的一个或多个地址范围。
4.根据权利要求3所述的方法,其特征在于,还包括:
在接收所述读或写请求之前将所述条目写入所述地址表中。
5.根据权利要求4所述的方法,其特征在于,将所述条目写入所述地址表中包括:
侦听传送给所述端点设备的所述第一功能的配置空间访问包以确定与所述第一路由标识符关联的设备类型以及确定与所述第一路由标识符关联的一个或多个地址或地址范围。
6.根据权利要求1-2,4-5中任一权利要求所述的方法,其特征在于,所述端点设备包括第二功能,所述第二功能在所述端点设备的所述第一功能发生所述非致命错误之后保持运作,所述第二功能分配有第二地址集合,所述第二地址集合与分配给所述第一功能的所述第一地址范围不同。
7.根据权利要求6所述的方法,其特征在于,滤除携带所述第一地址范围的包而不将所述PCIe接口与所述端点设备之间的链路去激活包括:
在所述PCIe接口处接收第一业务流和第二业务流,所述第一业务流携带所述第一地址范围中的一个或多个地址,所述第二业务流携带所述第二地址集合中的一个或多个地址;以及
通过所述链路转发所述第二业务流而不通过所述链路转发所述第一业务流。
8.根据权利要求7所述的方法,其特征在于,还包括:
丢弃所述第一业务流;以及
向所述第一业务流的发送方发送指示完成中止CA状态或不支持请求UR状态的错误消息或合成完成包,其中,所述错误消息或完成包携带与所述PCIe接口关联的第二RID。
9.根据权利要求1-2,4-5,7-8中任一权利要求所述的方法,其特征在于,检测所述端点设备的所述第一功能的所述非致命错误包括:
接收与所述读或写请求关联的错误消息,其中,所述错误消息包括所述第一路由标识符。
10.根据权利要求1-2,4-5,7-8中任一权利要求所述的方法,其特征在于,检测所述端点设备的所述第一功能的所述非致命错误包括:
接收包括标记字段的完成包,所述标记字段标识所述读或写请求,其中,所述完成包包括所述第一路由标识符和完成中止CA状态或不支持请求UR状态。
11.根据权利要求1所述的方法,其特征在于,所述PCIe接口耦合到用于执行每功能下行端口控制的PCIe下行端口,所述方法还包括:
接收包括完成中止CA状态或不支持请求UR状态的错误消息或完成包;以及
当所述错误消息或所述完成包指示分配给所述PCIe下行端口的下行RID时,忽略所述错误消息或所述完成包。
12.一种快捷外围部件互连标准PCIe交换结构,其特征在于,包括:
上行PCIe接口;以及
耦合在所述上行PCIe接口与端点设备之间的下行PCIe接口,其中,所述下行PCIe接口用于执行权利要求1至11中的任一权利要求。
13.一种用于每功能下行端口控制的方法,其特征在于,所述方法包括:
在外围部件互连标准PCI接口上接收读或写请求,所述读或写请求包括分配给端点设备的第一功能的第一地址;
检测所述端点设备的所述第一功能的非致命错误;
通过在地址表中搜索与所述第一地址关联的条目来确定分配给所述端点设备的所述第一功能的第一路由标识符RID;以及
滤除携带所述第一路由标识符的包而不将所述PCIe接口与所述端点设备之间的链路去激活。
14.根据权利要求13所述的方法,其特征在于,还包括:
通过在所述地址表中搜索与所述第一路由标识符关联的条目来确定分配给所述端点设备的所述第一功能的一个或多个地址范围;以及
滤除携带所述一个或多个地址范围内的地址的包而不将所述PCIe接口与所述端点设备之间的链路去激活。
15.根据权利要求13或权利要求14所述的方法,其特征在于,所述条目将所述第一路由标识符与所述第一地址关联,以及所述第一地址在分配给所述端点设备的所述第一功能的第一地址范围中。
16.根据权利要求15所述的方法,其特征在于,所述端点设备包括第二功能,所述第二功能在所述端点设备的所述第一功能发生所述非致命错误之后保持运作,所述第二功能分配有与所述第一地址范围不同的第二地址范围。
17.根据权利要求16所述的方法,其特征在于,还包括:
在所述PCIe接口处接收第一业务流和第二业务流,所述第一业务流携带所述第一地址范围内的一个或多个地址,所述第二业务流携带所述第二地址范围内的一个或多个地址;以及
通过所述链路向所述端点设备转发所述第二业务流而不通过所述链路转发所述第一业务流。
18.根据权利要求13所述的方法,其特征在于,检测所述端点设备的所述第一功能的所述非致命错误包括:
接收包括RID字段的第一错误消息,所述RID字段标识所述第一功能或下行端口。
19.根据权利要求13所述的方法,其特征在于,检测所述端点设备的所述第一功能的所述非致命错误包括:
接收包括字段的完成包,所述字段标识所述读或写请求,其中,所述完成包包括完成中止CA状态或不支持请求UR状态。
20.一种快捷外围部件互连标准PCIe交换结构,其特征在于,包括:
上行PCIe接口;以及
耦合在所述上行PCIe接口与端点设备之间的下行PCIe接口,其中,所述下行PCIe接口用于执行权利要求13至19中的任一权利要求。
21.一种计算机程序产品,其特征在于,包括存储程序的计算机可读存储介质,所述程序包括执行以下操作的指令:
在快捷外围部件互连标准PCIe接口上接收读或写请求,所述读或写请求包括与端点设备的第一功能关联的第一路由标识符RID;
检测所述端点设备的所述第一功能的非致命错误;
通过在地址表中搜索与所述第一路由标识符关联的条目来确定分配给所述端点设备的所述第一功能的第一地址范围;以及
滤除携带所述第一路由标识符或所述第一地址范围内的地址的包而不将所述PCIe接口与所述端点设备之间的链路去激活。
22.根据权利要求21所述的计算机程序产品,其特征在于,所述条目中的每一个将所述第一路由标识符与分配给所述的端点设备的所述第一功能的所述第一地址范围中的地址关联。
23.根据权利要求21或权利要求22所述的计算机程序产品,其特征在于,所述确定分配给所述端点设备的所述第一功能的所述第一地址范围的指令包括执行以下操作的指令:
在所述地址表中确定与所述第一路由标识符关联的一个或多个地址范围。
CN201580007347.1A 2014-02-05 2015-02-04 每功能下行端口控制 Active CN105980998B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/173,643 2014-02-05
US14/173,643 US9195552B2 (en) 2014-02-05 2014-02-05 Per-function downstream port containment
PCT/CN2015/072242 WO2015117553A1 (en) 2014-02-05 2015-02-04 Per-Function Downstream Port Containment

Publications (2)

Publication Number Publication Date
CN105980998A CN105980998A (zh) 2016-09-28
CN105980998B true CN105980998B (zh) 2019-04-19

Family

ID=53754918

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580007347.1A Active CN105980998B (zh) 2014-02-05 2015-02-04 每功能下行端口控制

Country Status (4)

Country Link
US (1) US9195552B2 (zh)
EP (2) EP3611626A1 (zh)
CN (1) CN105980998B (zh)
WO (1) WO2015117553A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547557B2 (en) * 2014-11-10 2017-01-17 Dell Products L.P. Peripheral bus error containment and recovery
TWI597953B (zh) * 2015-11-25 2017-09-01 財團法人工業技術研究院 具故障轉移能力的快速周邊元件互連網路系統與操作方法
US10078543B2 (en) 2016-05-27 2018-09-18 Oracle International Corporation Correctable error filtering for input/output subsystem
US10817447B2 (en) * 2016-11-14 2020-10-27 Intel Corporation Input/output translation lookaside buffer (IOTLB) quality of service (QoS)
US10289592B1 (en) * 2017-11-09 2019-05-14 Funai Electric Co., Ltd. Location-based address adapter and system
US10585819B2 (en) * 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
US10636577B2 (en) 2018-05-25 2020-04-28 Qualcomm Incorporated Safe handling of link errors in a peripheral component interconnect express (PCIE) device
CN108959127B (zh) * 2018-05-31 2021-02-09 华为技术有限公司 地址转换方法、装置及系统
CN108920297A (zh) * 2018-07-13 2018-11-30 郑州云海信息技术有限公司 一种诊断黑盒日志中pcie报错信息的方法和系统
US10521388B2 (en) 2018-09-28 2019-12-31 Intel Corporation Multi-uplink device enumeration and management
US11038749B2 (en) * 2018-12-24 2021-06-15 Intel Corporation Memory resource allocation in an end-point device
CN114356644B (zh) * 2022-03-18 2022-06-14 阿里巴巴(中国)有限公司 Pcie设备故障处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242371A (zh) * 2008-03-14 2008-08-13 杭州华三通信技术有限公司 基于PCIe交换架构路由器堆叠的方法、系统和装置
CN102681481A (zh) * 2012-05-24 2012-09-19 山西联华伟业科技有限公司 一种基于usb总线的plc通讯方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752346B2 (en) * 2007-12-21 2010-07-06 Aprius, Inc. Universal routing in PCI-Express fabrics
US7913024B2 (en) * 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
CN101710314B (zh) * 2009-11-17 2013-02-27 中兴通讯股份有限公司 高速外围部件互连交换控制器及其实现方法
US8582454B2 (en) * 2010-04-08 2013-11-12 Netscout Systems, Inc. Real-time adaptive processing of network data packets for analysis
US9086945B2 (en) * 2011-09-01 2015-07-21 Dell Products, Lp System and method to correlate errors to a specific downstream device in a PCIe switching network
US9086965B2 (en) * 2011-12-15 2015-07-21 International Business Machines Corporation PCI express error handling and recovery action controls
US9672167B2 (en) * 2013-07-22 2017-06-06 Futurewei Technologies, Inc. Resource management for peripheral component interconnect-express domains

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242371A (zh) * 2008-03-14 2008-08-13 杭州华三通信技术有限公司 基于PCIe交换架构路由器堆叠的方法、系统和装置
CN102681481A (zh) * 2012-05-24 2012-09-19 山西联华伟业科技有限公司 一种基于usb总线的plc通讯方法

Also Published As

Publication number Publication date
EP3103019B1 (en) 2019-11-20
US9195552B2 (en) 2015-11-24
CN105980998A (zh) 2016-09-28
EP3103019A4 (en) 2017-03-08
WO2015117553A1 (en) 2015-08-13
US20150220409A1 (en) 2015-08-06
EP3103019A1 (en) 2016-12-14
EP3611626A1 (en) 2020-02-19

Similar Documents

Publication Publication Date Title
CN105980998B (zh) 每功能下行端口控制
US11429550B2 (en) System and method for extended peripheral component interconnect express fabrics
US7120711B2 (en) System and method for communicating over intra-hierarchy and inter-hierarchy links
US10210120B2 (en) Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
CN101814060B (zh) 在背靠背非透明桥中进行系统间协议交换的方法和装置
CN105721357A (zh) 交换设备、外围部件互连高速系统及其初始化方法
US10585609B2 (en) Transfer of storage operations between processors
US10078543B2 (en) Correctable error filtering for input/output subsystem
CN102347896A (zh) 一种基于以太网加载fpga和dsp的平台及其实现方法
CN109977061A (zh) 一种中断处理方法及中断处理装置
US20120324078A1 (en) Apparatus and method for sharing i/o device
US7272745B2 (en) Data protection system
JP2012163995A (ja) 情報処理装置
CN106156069B (zh) 日志系统和日志记录方法
IL193912A (en) Apparatus, method and computer program product for generating trace data
JP2003122700A (ja) 共通通信インターフェースを有する集積回路
US7136944B2 (en) Method and apparatus for using address traps to pace writes to peripheral devices
CN102033799B (zh) 中断接脚的异常状态侦测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant