检测外围组件互连(pci)快速网络中的丢失和乱序的发布写入分组的制作方法

文档序号:6348539阅读:193来源:国知局
专利名称:检测外围组件互连(pci)快速网络中的丢失和乱序的发布写入分组的制作方法
技术领域
本发明一般地涉及计算机系统,更具体地说,涉及在快速外围组件互连(PCIe)网络中写入数据。
背景技术
外围组件互连(PCI)是在计算机中连接硬件设备的计算机总线架构。PCI express (PCIe)是PCI的更高版本,它使用点对点串行连接,而非PCI所采用的共享并行总线架构。采用PCIe的计算机系统通过发送分组进行通信。

发明内容
相应地,本发明在第一方面提供了一种用于处理PCIe网络中的分组的系统,所述系统包括接收器,其与PCIe交换机通信以接收PCIe发布的写入分组,所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符;存储机制,其用于存储所述请求设备的预期标记标识符;比较器,其用于将所接收的标记标识符与所述预期标记标识符相比较以及响应于所接收的标记标识符不匹配所述预期标记标识符而设置错误标志ο所述系统还可以包括用于响应于完成所述比较而递增所述请求设备的所述预期标记标识符的递增器。优选地,在所述请求设备与所述接收设备之间定期同步所接收的标记标识符和所述预期标记标识符。优选地,所述接收设备是PCIe根复合体设备,并且所述存储机制包括通过请求设备标识符索引的设备表。优选地,所述接收设备是PCIe端点,并且所述存储机制包括与所述请求设备对应的寄存器。所述系统还可以包括位于请求设备处的发布的写入分组机制,其用于访问标识接收设备的PCIe发布的写入分组以及用于将对应于所述接收设备的当前标记标识符插入所述发布的写入分组中的标记字段;位于所述请求设备处的存储机制,其用于存储对应于所述接收设备的当前标记标识符;位于所述请求设备处的与PCIe交换机通信的发送器,其用于经由所述PCIe交换机将所述PCIe发布的写入分组发送到所述接收设备。所述系统还可以包括位于所述请求设备处的递增器,其用于响应于完成所述插入而递增与所述接收设备对应的当前标记标识符。在第二方面,本发明提供了一种用于处理PCIe网络中的分组的方法,所述方法包括在接收设备处接收PCIe发布的写入分组,所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符;确定所述请求设备的预期标记标识符;将所接收的标记标识符与所述预期标记标识符相比较;以及响应于所接收的标记标识符不匹配所述预期标记标识符而设置错误标志。优选地,所述方法还包括响应于完成所述比较而递增所述请求设备的所述预期标记标识符。所述方法还可以包括在请求设备处访问标识接收设备的PCIe发布的写入分组;确定与所述接收设备对应的当前标记标识符;将所述当前标记标识符插入所述发布的写入分组中的标记字段;以及将发布的写入分组发送到所述接收设备。所述方法还可以包括响应于完成所述插入而递增与所述接收设备对应的当前标记标识符。优选地,将所述请求设备处的当前标记标识符与所述接收设备处的预期标记标识符定期同步。优选地,所述请求设备是所述PCIe网络中的根复合体设备,并且确定当前标记标识符包括访问地址查找表和下行标记表中的一个或多个。优选地,所述请求设备是 PCIe网络中的端点,并且确定当前标记标识符包括读取与所述接收设备对应的寄存器。在第三方面,提供了一种包括计算机程序代码的计算机程序,当所述计算机程序代码被载入计算机系统并在其上执行时,将导致所述计算机系统执行第二方面中的方法的所有步骤。一个示例性实施例包括用于处理快速外围组件互连(PCIe)网络中的分组的计算机程序产品。所述计算机程序产品包括可由处理电路读取的有形存储介质,所述有形存储介质存储由所述处理电路执行以执行方法的指令。所述方法包括在接收设备处接收PCIe 发布的写入分组,所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符。确定所述请求设备的预期标记标识符。将所接收的标记标识符与所述预期标记标识符相比较。如果所接收的标记标识符不匹配所述预期标记标识符,则设置错误标志ο另一示例性实施例是一种用于处理PCIe网络中的分组的系统。所述系统包括接收器,其与PCIe交换机通信以接收PCIe发布的写入分组。所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符。所述系统还包括存储机制,其用于存储所述请求设备的预期标记标识符。所述系统还包括比较器,其用于将所接收的标记标识符与所述预期标记标识符相比较以及在所接收的标记标识符不匹配所述预期标记标识符时设置错误标志。另一示例性实施例是一种用于处理PCIe网络中的分组的方法,所述方法包括在接收设备处接收PCIe发布的写入分组,所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符。确定所述请求设备的预期标记标识符。将所接收的标记标识符与所述预期标记标识符相比较。如果所接收的标记标识符不匹配所述预期标记标识符,则设置错误标志。进一步的示例性实施例是一种用于处理PCIe网络中的分组的计算机程序产品。 所述计算机程序产品包括可由处理电路读取的有形存储介质,所述有形存储介质存储由所述处理电路执行以执行方法的指令。所述方法包括在请求设备处访问标识接收设备的 PCIe发布的写入分组。确定与所述接收设备对应的当前标记标识符。将所述当前标记标识符插入所述发布的写入分组中的标记字段。经由PCIe网络将所述发布的写入分组发送到所述接收设备。进一步的示例性实施例包括一种用于处理PCIe网络中的分组的系统。所述系统包括位于请求设备处的发布的写入分组机制,其用于访问标识接收设备的PCIe发布的写入分组,以及用于将与所述接收设备对应的当前标记标识符插入所述发布的写入分组中的标记字段。所述系统还包括位于所述请求设备处的存储机制,其用于存储与所述接收设备对应的当前标记标识符。所述系统还包括位于所述请求设备处的与PCIe交换机进行通信的发送器,所述发送器经由所述PCIe交换机将所述PCIe发布的写入分组发送到所述接收设备。


现在将参考附图仅通过实例的方式描述本发明的优选实施例,这些附图是图1示出了可由一个示例性实施例实现的PCIe网络;图2示出了可由一个示例性实施例实现的PCIe分组标头和有效负载格式;图3示出了可由一个示例性实施例实现的使用顺序标记生成发布的写入分组的过程;图4示出了可由一个示例性实施例实现的使用顺序标记接收发布的写入分组的过程;图5示出了可由一个示例性实施例实现的包括根复合体和多个端点的PCIe网络;图6示出了可由一个示例性实施例实现的PCI功能结构;以及图7示出了可由一个示例性实施例实现的一件制品。
具体实施例方式外围组件互连(PCI)和快速PCI (PCIe)实现上行和下行两个方向的“发布的写入存储器请求”的概念,其中包含发布的写入命令、写入地址和写入数据的分组在中间位置 (例如,PCIe交换机)处发布,然后才到达会发生写入的最终目的地(例如,端点或根复合体)。发布的写入分组没有关联的完成,因此不会指示它们是否丢失并且没有检测它们是否丢失的机制。PCIe的一个问题是随着PCIe、PCIe到PCIe桥、根复合体、交换机以及端点复杂性的增加,存在很小(但不为零)的以静默的方式丢弃、复制或重新排列发布的写入存储器请求的概率。因此,在出现分组丢失、重复分组或分组乱序时,在PCIe中使用发布的写入存储器请求会在主机或适配器存储器中遗留漏洞(或未知值)并且这些漏洞可能破坏数据完整性。一个示例性实施例包括PCIe分组标头的事务标识符中的PCIe定义的标头标记字段的新定义。此新定义使用标记字段作为由请求者生成并由完成者检验的端到端序号。定义了新的功能结构以控制和初始化新定义的标记字段。在各示例性实施例中,PCIe 交换机保持未受使用新标记字段提供发布的存储器写入分组的端到端检查的影响。在 "PCI Express Base Specification, Revision 2. 0 (PCI Express 基本规范,修订版 2. 0, PCI-SIG,2006年12月20日,其全部内容在此引入作为参考)”中描述了有关PCIe的详细 fn息ο图1示出了可由一个示例性实施例实现的PCIe网络。图1包括经由PCIe交换机 104通信的根复合体设备102(例如,位于主机系统中)和多个端点设备106(例如,存储控制器、网络适配器等)。如在此使用的,术语“请求设备”指PCIe网络中生成发布的存储器写入请求的设备。所述请求设备可以是根复合体设备102,也可以是端点设备106。如在此使用的,术语“接收设备”指PCIe网络中接收发布的存储器写入请求并完成存储器写入(即, 将指定数据写入指定地址)的设备。所述接收设备可以是根复合体设备102,也可以是端点设备106。所述接收设备在此还称为“完成者”或“完成设备”。如在此使用的,术语“PCIe 设备”指在PCIe网络中通信的设备(例如,经由PCIe交换机104)。根复合体设备102和端点设备106都是PCIe设备的实例。在一个示例性实施例中,PCIe交换机104是基于PCI的透明多主机交换机104,例如与本申请一起共同受让给Gregg的美国专利第7,519,761号中披露的交换机,此交换机可具备多个北向(north facing)端口以便将交换机104连接到多个主机。多主机交换机 104可以包括在各种交换机配置中,其中包括具有一个多主机交换机的配置、具有多个多主机交换机的配置以及包括一个或多个多主机交换机和一个或多个单主机交换机的配置。交换机104被设计为包括通过交换机准确地路由分组的控件。图2示出了可由一个示例性实施例实现的PCIe分组标头和有效负载格式。标准的 PCIe分组标头格式由一个示例性实施例实现,但存在一个例外标记字段202被重新定义为由发布的写入的请求者生成并由发布的写入的完成者检验的端到端序号。通过以此方式使用标记字段202,发布的写入的完成者可以检验已接收到由请求者发送的所有分组(即, 按次序接收并接收一次)。图2中所示的示例性发布的存储器写入请求分组通过为‘00000’ b的“类型”字段标识。如果地址字段如图所示是八字节字段,则格式字段(“Fmt”)为‘11’ b,并且如果地址字段是四字节字段,则格式字段为‘10’ b。保留“R”位和“保留”字段并将其设为0。 “TC”字段是业务类,“TD”字段指示事务层分组(TLP)摘要(四字节循环冗余校验或“CRC”) 是否被附加到分组末尾。“EP”字段指示TLP是否被污染,“Attr”(属性)字段包括松散排序和无窥探位,并且“长度”字段是分组数据有效负载的长度,以四字节为单位。“请求者 ID” (RID)字段指示请求者的总线号(八位),设备号(三位)和功能号(五位)。“最后一个双字字节”和“第一个双字字节”字段是双字字节使能;每一个为四位并且指示最后一个和第一个双字(四字节双字)中有效的有效负载字节。地址字段指向要在完成者(在此还称为接收设备)处写入分组数据有效负载的位置。八字节地址包含在“地址W3:32]”和“地址[31:2]”中,而四字节地址包含在“地址[31:2]”中,此时不存在地址 [63:32]。包含要写入的数据的“分组数据有效负载”字段的长度可以从4到4096个字节。图3示出了可由一个示例性实施例实现的使用顺序标记生成发布的写入分组的过程。图3中所示的过程包括由示例性实施例实现的额外处理(S卩,标准PCIe处理以外的处理),即请求设备使用标记字段202作为标识丢失的、重复的和乱序的分组的顺序计数器。图3中所示的部分或全部处理可以由发布的写入分组机制实现。图3中所示的处理可以由硬件和和/或软件实现并位于请求设备中或可以由请求设备访问。在方块302,请求设备生成接收设备的发布的写入分组。所述发布的写入分组标识接收设备,例如通过低位地址字段和高位地址字段。在方块304,请求者设备确定接收设备的当前标记标识符。在各示例性实施例中,将当前标记标识符存储在位于请求设备中或可由请求设备访问的寄存器、备份表或其他存储机制中。在方块306,将当前标记标识符写入发布的写入分组中的标记字段202。在方块308,递增接收设备的当前标记标识符(例如,通过递增器),然后在方块310,将发布的写入数据分组发送(例如,经由发送器)到接收设备。在一个示例性实施例中,只有当所述分组指示发布的写入数据请求时才将当前标记标识符写入标记字段。图4示出了可由一个示例性实施例实现的使用顺序标记接收发布的写入分组的过程。图4中所示的过程包括由各示例性实施例实现的额外处理(即,标准PCIe处理以外的处理),即请求设备使用标记字段202作为标识丢失的、重复的和乱序的分组的顺序计数器。所述处理可以由硬件和和/或软件实现并位于请求设备中或可以由请求设备访问。 在方块402,在接收设备处接收(例如,经由接收器)发布的写入分组,发布的写入分组来自请求设备。在方块404,从所接收的分组的标记字段202提取所接收的标记标识符。在方块406,确定与请求设备关联的预期标记标识符。在各示例性实施例中,将请求设备的预期标记标识符存储在位于接收设备中或可由接收设备访问的寄存器、查找表或其他存储机制中。在方块410,判定(例如,使用比较器)所接收的标记标识符是否等于预期标记标识符。如果不相等,则执行方块412,设置指示丢失的、重复的或乱序的分组的错误标志。在一个示例性实施例中,设置错误标志会导致执行标准的错误PCIe错误/恢复处理。如果在方块410处判定所接收的标记等于预期标记,则在方块414继续处理所接收的分组。在方块 408,递增与请求设备关联的预期标记标识符(例如,使用递增器)以准备接收下一分组。图5示出了具有通过PCIe交换机506互连的根复合体502和多个端点504的PCIe 网络,PCIe交换机506包括多个PCIe桥(在该实例中为B1-B5)。图5中所示的PCIe网络或系统可由一个示例性实施例实现以检测丢失的、重复的和乱序的发布的写入分组。在图 5中所示的实施例中,每个端点504与单个设备(即,根复合体50 通信,但是在其他示例性实施例中,各端点与多个设备进行通信。图5中所示的每个端点504具有包含其发送到根复合体502的发布的存储器写入请求的当前标记标识符值的单个寄存器以及包含其从根复合体502接收的发布的存储器写入请求的预期标记标识符值的单个寄存器。此外,每个端点504包括用于接收和发送分组的接收器/发送器522、一个或多个用于递增标记标识符值的递增器,以及一个或多个用于将预期标记标识符值与所接收的标记标识符值进行比较的比较器。在一个示例性实施例中,端点504可以包含接收器或发送器,具体取决于端点504是只作为接收设备还是只作为请求设备。在端点与多个设备通信的一个示例性实施例中,所述端点至少包括用于存储额外标记(多个)的额外寄存器(多个),以及可选地包括额外的递增器和/或比较器。图5中所示的示例性根复合体502包括当从端点504接收上行发布的存储器写入分组时使用的接收器/发送器524、设备表508、请求者标识符(RID)内容可寻址存储器 (CAM)、比较器512以及递增器514。如本领域中公知的,使用CAM是一种将RID与端点进行关联的方式。备选的示例性实施例可以实现做出此关联的其他方法。如图5中所示,端点 504包括寄存器(“UpTagReg”)以存储要添加到被发送到根复合体502的上行发布的写入请求分组的标记的当前标记标识符值。当在上行方向接收分组时,根复合体502是接收设备而端点504是请求设备。在一个示例性实施例中,根复合体502可以包含接收器或发送器,具体取决于根复合体502是只作为接收设备还是只作为请求设备。在一个示例性实施例中,连同实现顺序标记所需的额外处理一起执行标准PCIe处理。如图5中所示,根复合体502经由接收器/发送器5M接收分组,并且使用RID CAM 510作为设备表508的索引。发布的写入分组包括标记字段202,标记字段202包含由端点 504插入该分组的所接收的标记标识符。在图5中所示的实施例中,将来自请求设备的标记字段的预期值存储在PCIe设备表508中。使用比较器512将设备表508中的标记字段值所确定的标记标识符的预期值与所接收的标记字段进行比较。响应于两个值不相等,设置标志或启动恢复过程。递增器514递增标记标识符的预期值并且该预期值被存储回设备表 508中与请求设备对应的位置。
图5中所示的示例性根复合体502还包括用于生成要发送(例如,经由接收器/发送器524)到端点504的下行发布的存储器写入分组时使用的地址查找表516、下行标记表 518和第二递增器520。在生成下行分组时,根复合体502是请求设备而端点504是接收设备。在一个示例性实施例中,连同实现顺序标记所需的额外处理一起执行标准PCIe处理。如图5中所示,由根复合体502生成发布的分组并且使用地址查找表516作为下行标记表518的索引以确定接收设备的当前标记标识符。在一个示例性实施例中,下行标记表包含与每个端点504关联的单字节当前标记标识符。所述当前标记标识符被插入发布的写入分组的标记字段202,然后被传送到指定的接收设备。递增器520递增当前标记标识符并且该标识符被存储回下行标记表518。当在接收设备(例如,端点504)处接收到所述分组时,接收设备检验所接收的标记标识符是否等于存储在寄存器(“DownTagReg”)中的预期标记标识符。如果两个值不匹配,则设置标志以指示错误或启动恢复过程。对于上行发布的写入存储器请求的一个示例性实施例而言并且如图5所示,存在多个端点504 (例如,包括虚拟功能或“VF”、物理功能或“PF”等),每个端点504都具有唯一 RID且可将分组发送到根复合体502。在图5中所示的示例性实施例中,上行交换机路由是隐式的,因为在该实例中,访问控制服务(ACQ强制所有请求前往根复合体502。在一个示例性实施例中,每个端点504(和RID)维护运行的当前标记值。通过诸如下面图6中所示的端到端序号(ESEQ)功能结构在系统启动时初始化所述运行的当前标记值。当生成请求时,针对每个请求递增标记字段。标记字段的这种使用很大程度上与PCIe标记的使用一致,但是,在各示例性实施例中,标记字段不再是不透明句柄并且它具有生成规则。在一个示例性实施例中,标记值从“OxFF”绕回“0x00”。标记值范围的选择确保在任意时刻,标记字段值是唯一标识符。在一个示例性实施例中,根复合体502维护每个RID的预期标记。 在一个示例性实施例中,标记中的不匹配导致根复合体502将端点置于错误状态。在一个示例性实施例中,根复合体502中示出的上行标记顺序功能可作为通常可用的地址转换和保护机制的扩展实现。例如,高级微设备(AMD)定义了 I/O存储器管理单元(IOMMU) ,Intel定义了直接存储器访问(DMA)重映射以执行地址转换和保护。在这两种实施方式中,请求者的身份(RID)都用于确定个体请求者的地址转换表和访问权限。设备表包含有关单个请求者的信息。在一个示例性实施例中,标记序号功能被添加到现有的设备表。对于下行发布的写入存储器请求的一个示例性实施例而言并且如图5所示,根据地址路由下行请求。根复合体502维护PCIe地址范围与PCIe端点之间的关系。根复合体 502维护每个PCIe端点的运行的当前标记值。如图5所示,每个端点504维护通过如下面图6中所示的ESEQ功能结构在系统启动时初始化的运行的当前标记值。在一个示例性实施例中,当在根复合体502处生成请求时,针对每个请求递增标记字段。在一个示例性实施例中,标记值从“OxFF”绕回“0x00”。标记值范围的选择确保在任意时刻,标记字段值是唯一标识符。在一个示例性实施例中,标记值中的不匹配导致端点指示错误,并且可以使用PCIe 的AER寄存器和报告机制来报告错误。图6示出了可由一个示例性实施例实现以初始化在发布的写入分组的标记排序中使用的寄存器的PCI功能结构。在一个示例性实施例中,该PCI功能结构应用于PCIe网络中的请求设备和接收设备对以同步每个对的两端。所述同步定期执行,这意味着它在系统初始化时执行并可选地作为恢复操作的一部分执行。图6中所示的示例性PCI功能结构设置端到端序号功能寄存器字段中的位以指示支持上行ESEQ生成,并且所述功能结构设置端到端序号功能寄存器字段中的位以指示支持下行ESEQ生成。如本领域中公知的,下一功能指针字段指向列表中的下一功能结构。ESEQ功能标识符字段定义与本功能结构关联的唯一功能号。图6中所示的示例性命令设置ESEQ控制寄存器中的位以使用上行启动标记启用上行ESEQ生成,设置ESEQ控制寄存器中的位以使用下行启动标记启用下行ESEQ检查,以及设置一个用于指示已检测到下行ESEQ错误(或备选地,指示要使用PCIe的高级错误报告或“AER”机制)的位。上行标记启动字段包含上行ESEQ生成的启动值,而下行标记启动字段包含下行ESEQ检查的启动值。各示例性实施例的技术效果和优势包括能够检验PCIe网络中的发布的存储器写入请求已被按次序接收并被接收一次。这可提高PCIe的可靠性。在此使用的术语仅出于描述特定实施例的目的,并非对本发明进行限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同时包括复数形式,除非上下文另外明确指出。 将进一步理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指定存在声明的特性、整数、步骤、操作、元件和/或组件,但并不排除存在或增加一个或多个其他特性、整数、 步骤、操作、元件、组件和/或它们的组合。以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。本领域的技术人员将理解,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了在此通常被称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采取体现在任何有形表达介质(在介质中具有计算机可用程序代码)中的计算机程序产品的形式。可以使用一个或多个计算机可用或计算机可读介质的任意组合。 所述计算机可用或计算机可读介质可以例如是(但不限于)电、磁、光、电磁、红外线或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的实例(非穷举列表)可以包括以下项具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPR0M或闪存)、光纤、便携式光盘只读存储器 (CDROM)、光存储设备、诸如那些支持因特网或内联网的传输介质或磁存储设备。要指出的是,所述计算机可用或计算机可读介质甚至可以是程序被打印在其上的纸张或其他适合的介质,因为所述程序可以通过例如光扫描所述纸张或其他介质被电子地捕获,然后被编译、 解释或另外以适合的方式被处理(如果必要),然后被存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的介质。计算机可用介质可以包括其中包含计算机可用程序代码(在基带中或作为载波的一部分)的传播数据信号。可以使用任何适当的介质(包括但不限于无线、有线、光缆、RF等)来传输计算机可用程序代码。用于执行本发明的操作的计算机程序代码可以使用包含一种或多种编程语言的任意组合来编写,所述编程语言包括诸如Java、Smalltalk, C++之类的面向对象的编程语言或类似语言以及诸如“C”编程语言之类的常规过程编程语言或类似的编程语言。所述程序代码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络-包括局域网(LAN) 或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。参考方法、装置(系统)和计算机程序的流程图和/或方块图描述了本发明的优选实施例。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,以便通过所述计算机或其他可编程数据处理装置的处理器执行的所述指令产生用于实现在一个或多个流程图和/ 或方块图方块中指定的功能/操作的装置。这些计算机程序指令也可以被存储在可引导计算机或其他可编程数据处理装置以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质中的指令产生一件包括实现在所述一个或多个流程图和/或方块图方块中指定的功能/操作的指令装置的制品。所述计算机程序指令还可被加载到计算机或其他可编程数据处理装置,以导致在所述计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的过程,从而在所述计算机或其他可编程装置上执行的指令提供用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的过程。如上所述,各实施例可以体现为计算机实现的过程和实施这些过程的装置的形式。在各示例性实施例中,本发明体现在由一个或多个网络元件执行的计算机程序代码中。 各实施例包括图7中所示的位于计算机可用介质702中的计算机程序产品700,其中计算机程序代码逻辑704包含体现在作为制品的有形介质中的指令。用于计算机可用介质702的示例性制品可以包括软盘、CD-ROM、硬盘、通用串行总线(USB)闪盘或任何其他计算机可读存储介质,其中,当计算机程序代码逻辑704被加载到计算机中并由计算机执行时,所述计算机变成实施本发明的装置。各实施例包括计算机程序代码逻辑704,例如,无论存储在存储介质中,被加载到计算机中和/或由计算机执行,或通过某种传输介质传输(例如通过电线或电缆,通过光纤或通过电磁辐射),其中,当计算机程序代码逻辑704被加载到计算机中并由计算机执行时,所述计算机变成实施本发明的装置。当在通用微处理器上实现时,计算机程序代码逻辑704段配置所述微处理器以创建专用逻辑电路。附图中的流程图和方块图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还应指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
权利要求
1.一种用于处理PCIe网络中的分组的系统,所述系统包括接收器,其与PCIe交换机通信以接收PCIe发布的写入分组,所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符;存储机制,其用于存储所述请求设备的预期标记标识符;比较器,其用于将所接收的标记标识符与所述预期标记标识符相比较以及响应于所接收的标记标识符不匹配所述预期标记标识符而设置错误标志。
2.如权利要求1中所述的系统,还包括用于响应于完成所述比较而递增所述请求设备的所述预期标记标识符的递增器。
3.如权利要求1或2中所述的系统,其中在所述请求设备与所述接收设备之间定期同步所接收的标记标识符和所述预期标记标识符。
4.如上述任一权利要求中所述的系统,其中所述接收设备是PCIe根复合体设备,并且所述存储机制包括通过请求设备标识符索引的设备表。
5.如上述任一权利要求中所述的系统,其中所述接收设备是PCIe端点,并且所述存储机制包括与所述请求设备对应的寄存器。
6.如上述任一权利要求中所述的系统,还包括位于请求设备处的发布的写入分组机制,其用于访问标识接收设备的PCIe发布的写入分组以及用于将对应于所述接收设备的当前标记标识符插入所述发布的写入分组中的标记字段;位于所述请求设备处的存储机制,其用于存储对应于所述接收设备的当前标记标识符;位于所述请求设备处的与PCIe交换机通信的发送器,其用于经由所述PCIe交换机将所述PCIe发布的写入分组发送到所述接收设备。
7.如权利要求6中所述的系统,还包括位于所述请求设备处的递增器,其用于响应于完成所述插入而递增与所述接收设备对应的当前标记标识符。
8.一种用于处理PCIe网络中的分组的方法,所述方法包括在接收设备处接收PCIe发布的写入分组,所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符;确定所述请求设备的预期标记标识符;将所接收的标记标识符与所述预期标记标识符相比较;以及响应于所接收的标记标识符不匹配所述预期标记标识符而设置错误标志。
9.如权利要求8中所述的方法,其中所述方法还包括响应于完成所述比较而递增所述请求设备的所述预期标记标识符。
10.如权利要求8或9中所述的方法,还包括在请求设备处访问标识接收设备的PCIe 发布的写入分组;确定与所述接收设备对应的当前标记标识符;将所述当前标记标识符插入所述发布的写入分组中的标记字段;以及将发布的写入分组发送到所述接收设备。
11.如权利要求8至10中的任一权利要求中所述的方法,还包括响应于完成所述插入而递增与所述接收设备对应的当前标记标识符。
12.如权利要求8至11中的任一权利要求中所述的方法,其中将所述请求设备处的当前标记标识符与所述接收设备处的预期标记标识符定期同步。
13.如权利要求8至12中的任一权利要求中所述的方法,其中所述请求设备是所述 PCIe网络中的根复合体设备,并且确定当前标记标识符包括访问地址查找表和下行标记表中的一个或多个。
14.如权利要求8至13中的任一权利要求中所述的方法,其中所述请求设备是PCIe网络中的端点,并且确定当前标记标识符包括读取与所述接收设备对应的寄存器。
15.一种包括计算机程序代码的计算机程序,当所述计算机程序代码被载入计算机系统并在其上执行时,将导致所述计算机系统执行如权利要求8至14中的任一权利要求中所述的方法的所有步骤。
全文摘要
一种处理快速外围组件互连(PCIe)网络中的分组的装置、方法和计算机程序,所述装置、方法和计算机程序提供了在接收设备处接收PCIe发布的写入分组的手段,所述PCIe发布的写入分组包括所接收的标记标识符和标识请求设备的请求设备标识符。确定所述请求设备的预期标记标识符。将所接收的标记标识符与所述预期标记标识符相比较。如果所接收的标记标识符不匹配所述预期标记标识符,则设置错误标志。
文档编号G06F13/38GK102341797SQ201080010456
公开日2012年2月1日 申请日期2010年5月28日 优先权日2009年6月2日
发明者T·格雷格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1