背景技术
针对多种目的,利用多种不同类型的设备和系统执行多种不同类型的电子通信。一种类型的电子通信系统包括与两个或多个不同组件之间基于分组的通信有关的通信。例如,计算机典型地包括通过总线与外设进行通信的中央处理单元(CPU)。指令和其它信息在CPU与外设之间的通信总线或其它链路上传递,而且通常使用分组数据流。
在典型的基于分组的高性能系统中,实现分组排序规则以确保精确的数据传输,并满足其它期望的性能特性。这些规则通常与具体的协议相关,这些规则的实施对于系统的连续且可靠的操作是重要的。
基于分组的系统的操作所面临的一个挑战涉及对多个分组流的处理。典型地,采用基于分组的通信的系统采用其上传递多个分组流的数据路径。当同时传送多个分组流时,这些分组流通常在数据路径中的特定点处合并,由此而沿着该数据路径传递。在数据路径中两个或更多个分组流合并的点将会是性能瓶颈。例如,合并分组流典型地涉及传递流的信道的使用。通常,当以多个信道实现时,将会出现数据冲突。另外,当被处理的数据量较大时,以及当对通信进行协调时需要遵循特定协议时,使用这种信道时的协调变得具有挑战性。
上文讨论的挑战与包括分组通信的多种通信方法有关。一种类型的基于分组的通信方法包括使用PCI(外围组件互连)系统。PCI是微处理器与附加设备之间的互连系统,其中扩展槽距离较近以便进行高速操作。使用PCI,计算机可以支持新的PCI卡,同时继续支持作为较早标准的工业标准结构(ISA)扩展卡。PCI被设计为独立于微处理器的设计,并与微处理器的时钟速度同步。PCI使用有源路径(在多站式总线上)来传输地址和数据信号,在一个时钟周期中发送地址,并且在下一个时钟周期中发送数据。PCI总线可以组装有适配器,其中所述适配器要求对彼此和/或系统存储器的快速访问,而且能够由主机处理器以接近于处理器的全部原始总线速度的速度来访问。利用突发传输来实现PCI总线上的读取和写入传输,即在第一周期中以发送地址而开始,并在特定数目的连续周期中发送数据序列。在起始器与目标设备之间协商突发脉冲的长度,并且该长度可以具有任意的长度。PCI类型的结构得到广泛使用,现在安装在多数桌面计算机上。
PCI Express结构展现出与PCI结构的相似性,具有某些改变。PCIExpress结构采用开关替代了PCI结构中的多站式总线,所述开关提供了输入-输出(I/O)总线的扇出(fan-out)。开关的扇出能力便于一系列的插入式高性能I/O的连接。所述开关是逻辑元件,可以在还包含主桥的组件中实现。PCI开关在逻辑上可以被看作是例如PCI-PCI桥的集合,其中一个桥是上游桥,经过其下游侧将专用本地总线与包括额外的PCI-PCI桥的组的上游侧相连。
在PCI Express类型的系统中传递的分组流通常如上文所述而合并,这会成为系统中的性能考虑。合并执行的速度和精度对PCIExpress类型的系统的操作产生影响。此外,分组流的处理必须与和PCIExpress相关的协议(或无论哪一个所实现的系统协议或标准)兼容。利用PCI Express系统,这些协议典型地规定了在合并分组流时应当使用的具体排序规则,以便遵守该协议(或标准)。与这些类型的协议兼容、同时实现期望的性能(例如相对低的等待时间和相对高的带宽)是一种挑战。
这些和其它限制提出了对基于分组的通信的实施方式的挑战,其中所述基于分组的通信具有多种通信方法,包括PCI Express通信方法。
具体实施方式
虽然本发明可以经受多种修改和备选形式,作为示例在附图中示出了本发明的详细说明,并对其进行详细描述。然而应当理解的是,其意图并不是把本发明限制为所述具体实施例。相反,本发明将会覆盖落入本发明范围中的所有修改、等同物和备选,其中本发明的范围由所附权利要求限定。
本发明可以应用于涉及电子通信的多种电路和方法,尤其是涉及基于分组的信息的通信。虽然本发明不必限于这种应用,通过对这个环境中的示例进行讨论,可以获得对本发明各个方面的最佳理解。
根据本发明的示例实施例,一种通信方法包括在基于协议的系统中处理分组数据。根据分组仲裁方法对分组数据(包括例如来自源缓冲器组或目的缓冲器组的多个分组类型)进行排序,所述分组仲裁方法包括实施指定协议的排序规则,还包括以便于和该协议兼容的方式实施性能规则。在这点上,相对于用于具体通信方法的协议,能够实现由性能驱动的处理方法(例如独立地)。
在一个实施方式中,根据协议对分组数据流进行布置并在公共通信链路上传递。根据所述协议,对流中的分组数据相对于其它分组数据进行排序,从而在公共通信链路上传递。然后根据一个或多个基于性能的规则,对已排序的分组数据进一步进行排序,同时保持与对分组数据进行排序所根据的协议的兼容。
在一些应用中,在链路的接收端,对沿着分组通信链路(例如,如上所述)在排序装置中传递的分组数据进行排序。分组接收仲裁方法应用特殊协议的排序规则,而且还包括应用性能规则。例如,一旦如上文所述对分组数据进行了排序并将其沿着通信链路进行传递,那么通信链路接收点处的分组仲裁功能处理分组以向接收功能传递。
在一个实施方式中,不同的分组类型存储在接收点处分立的信道缓冲器中,每一个信道缓冲器都与特定的分组类型相关。协议仲裁功能为每一个缓冲器、或能够按照协议排序规则进行数据传输的多个缓冲器产生“有效”信号。然后,性能仲裁功能根据性能规则从这些“有效”信道中选择信道,以沿着该信道传递至接收功能。在一些应用中,单一的通信接口/链路装置既实现了上述仲裁方法,即对沿着链路传递的分组数据进行排序,还实现了分组接收仲裁功能(即该组合执行发送和接收功能两者)。
在另一个实施方式中,使用多个通信信道来传递分组数据流。协议和性能规则用于根据多种特性,例如目的地、源以及和分组数据有关的时戳特性,而选择传递分组数据的信道。在满足协议的同时,通过从这些被指示为有效的信道中选择信道(根据协议规则)而提高性能,从所选信道有效地针对具体应用而传递分组数据。另外,还以某种方式执行对信道上数据传递的管理,以减小或消除信道间的数据冲突。
在本发明的另一个示例实施例中,利用分立的协议功能和性能功能而实现基于协议的分组处理仲裁方法。所述协议功能产生特定通信链路上的分组流通信的控制(即信号),所述控制便于流的合并以及其它通信功能。性能功能还产生用于分组流通信的控制,所述控制便于特定的基于性能的功能,同时与所述协议功能控制一同保持与基于协议的规则的兼容。在这点上,由性能功能产生的控制便于对性能规则(方法)进行调整,而且不会冒违反协议的风险(例如一个块能够执行协议规则,而这些协议规则由具有不同性能要求的多个接口块重复使用)。这些控制被实现用于通信控制,例如用于控制通信链路中特定点处的分组数据合并。此外,所述控制可以选择性地(例如分开地)用于实现协议兼容和与性能有关的目标。
在一些实施方式中,协议功能适于和不同的性能功能一同实现,便于多种不同的基于性能的处理方法。例如,不同类型的数据或不同的数据通信装置和应用经常从不同类型的与性能有关的通信方法中获益。不同类型的分组数据(例如滞后请求、非滞后请求和完成)可以在信源与目的地之间传递。在这点上,性能功能与协议功能的分离能够使不同的基于性能的规则(功能)和公共协议功能以及公共分组处理仲裁器一同实现。此外,不同的性能功能可以和用于对特定分组流或多个流进行处理的具体协议功能一同实现。
在本发明的另一个示例实施例中,一种通信系统包括:与多个组件相连的通信链路;以及链路控制器(例如仲裁器),被配置用于控制通信链路上和/或多个组件之间的分组流通信。例如,使用软件方法来实现链路控制器,所述软件方法包括使用分离的协议和性能功能而产生控制的协议和性能仲裁器。所述协议功能根据系统通信协议而产生用于对分组流进行处理的控制信号。所述性能功能(或多个功能)产生控制信号,所述控制信号用于实现与分组流处理相关的、基于性能的特定条件。
在一个实施方式中,所述通信链路是被配置用于根据特定调整后的标准而操作的标准链路,所述标准具有特定的通信协议要求。所述协议功能根据协议而控制分组流的通信。此外,所述链路控制器实现了一个或多个性能功能和协议功能,同时保持与调整后的标准兼容。这个方法便于针对特定通信方法而定制性能功能,而不需把这些性能功能与协议功能进行整合。
在另一个实施方式中,根据PCI Express标准(上文所述)来配置通信链路,并利用PCI Express链路(例如总线或开关)来实现通信链路。根据PCI Express标准(或有关的/派生的标准)来实现PCI Express总线和通信系统的各个方面。协议功能被配置为与PCI Express协议兼容,并由分离的仲裁器与一个或多个性能功能一同实现。协议仲裁器使用PCI Express协议功能来控制分组数据流中分组数据的合并和有关排序,以遵守PCI Express标准。此外,性能仲裁器根据所选择的性能协议而控制分组数据的排序,同时遵守基于协议的排序所依据的PCIExpress协议。
关于与“PCI Express”应用一同实现和/或与“PCI Express”兼容而实现的上述功能(以及这里的其它功能),可以参考“PCI ExpressBase Specification Revision 1.0a”、2003年4月,它可以从PCI-SIG(PCI-专业组)of Portland,Oregon得到。与该PCI Express BaseSpecification兼容的方法可以被看作是“PCI Express-兼容”。
现在转向附图,图1A示出了根据本发明另一个示例实施例的PCIExpress分组通信接口100。PCI Express分组通信接口100包括分组源110和分组宿114功能,它们控制PCI Express链路130上传递的分组数据的呈现。分组源110和分组宿114分别实现分离的协议和性能仲裁器112和116,从而分别根据PCI Express和性能协议,对分组数据进行排序。
在输入信道120、122、124和126中的一个或多个信道上接收分组数据流。分组源110实现协议仲裁器112,以实施PCI Express BaseSpecification所规定的排序规则并,呈现(例如分配)“有效”信号,所述“有效”信号指示P/NP/CPL分组信道(信道120、122、124和126之一)具有满足PCI Express协议排序要求的有效分组。当排序规则允许一个信道中的分组向另一个信道传递分组时,利用同时发生的“有效”指示而指示多个信道可用。分组宿114实现性能仲裁器116,以选择从哪个有效信道接收分组。
取决于应用,源110和宿114使用多种方法中的一个或多个方法来实现仲裁器。在一些实施方式中,与性能仲裁器116一同,或作为性能仲裁器116的备选,选择性地实现例如仲裁器117和118的额外的性能仲裁器,每一个仲裁器的配置都针对与所选择的性能有关的通信特性而实现。
在另一个实施方式中,宿114实现性能仲裁器116,以使用每一个分组所提供的时戳信息而选择具有最早分组的信道(即在满足PCIExpress协议的有效分组之中)。就是说,在源110标记为有效的信道120、122、124和126中(根据协议仲裁器112所执行的PCI Express标准),宿114检查被指示具有有效分组的每一个信道上可用的分组数据的时戳。利用这种方法,不仅遵守了PCI Express协议,而且还确保首先传递最早的分组(从时戳上来看)。在这点上,这个方法可以和先来先服务(FCFS)分组处理一同使用。
在另一个实施方式中,通过宿114使用性能仲裁器116并基于具体分组通信的特性,为多个(有效)信道之一赋予优先级,从而实现了仲裁方案。例如,可以相对于以下一项或多项来赋予优先级:分组目的地(例如通过PCI Express链路130相连的设备)、分组源(输入信道上的设备)或信道缓冲器中的分组个数(例如相对于其它信道缓冲器队列的信道队列)。可以实现这些基于性能的优先级方案,而不必对源110使用协议仲裁器112所实现的协议排序规则进行改变或冒违反该规则的风险。
图1B是根据本发明另一个示例实施例的用于通信的装置105,所述通信涉及在基于分组的系统的接收端进行分组处理。图1B可以按照与图1A类似的方式而实现。图1V具有协议仲裁器152和性能仲裁器156-158,它们分别对分组数据执行协议排序和性能排序。
根据分组类型,在缓冲器172-178中对通过PCI Express链路接收到的输入分组数据170进行设置(例如每一个缓冲器存储特定分组类型)。虽然示出了4个缓冲器172-178,装置105可以实现大量的缓冲器和/或缓冲器类型,以满足具体的应用需求。
控制器150实现协议仲裁器152,它通过把缓冲器172-178中的一个或多个缓冲器分配为“有效”缓冲器而对分组进行排序。然后,控制器150实现一个或多个性能仲裁器156-158,以便从表示为“有效”的缓冲器172-178中选择一个或多个缓冲器,从其中把分组传递到接收功能。尽管图1B中没有示出,协议仲裁器152和性能仲裁器156-158可以被实现为分别与源块和宿块(例如图1A中的110和114)、而不是与控制器150进行通信。
在一个实施方式中,图1A和1B分别所示的装置100和105在公共通信链路上实现,图1A中的链路130和图1B中的链路170是同一个链路。在这点上,装置100是公共链路的发送部分,而装置105是公共链路的接收部分。示出了实现协议和性能仲裁器的每一个发送和接收部分,使用不同的协议和/或性能规则选择性地实现所述仲裁器。
在另一个实施方式中,图1A和1B分别所示的装置100和105实现为单一的通信装置,该装置具有双向PCI Express发射机/接收机功能。
图2是根据本发明另一个示例实施例的方法流程图,所述方法用于在基于分组的系统中进行分组处理。在块210处,从多个分组数据流(一个或多个信道上)中接收用于在基于协议的通信链路上传递的分组数据。例如,相对于其它数据流,同时接收每一个数据流中的一部分或全部,以及例如在多个信道上接收数据。在块220处,使用正在传送分组数据的特定系统的通信协议(或多个协议),产生用于在通信链路上传送分组数据的排序方案。例如,当使用PCI Express系统时,在块220处,将PCI Express通信协议(例如与分组排序优先级有关)用于对分组数据进行排序。排序方案分配用于传递每一个分组的具体顺序,从而在块230处,把具有准备传输(根据通信协议)的分组的每一个通信信道或多个信道标识为有效信道。
在块240处,在已经对分组数据进行排序、并且已经标识出一个或多个有效通信信道之后,调用(执行)基于性能的规则,重新分配用于传递分组数据的排序和/或通信信道,同时保持与块220和230处使用的协议的兼容。例如,性能协议可以实现例如目的地、源和/或时戳特性的特定分组特性,从而对在通信链路(例如开关、总线或仿真链路)上传递的分组进行排序。一个或多个重要性分级可以被分配给特定的分组特性,而且当对所传递的分组进行排序时,所述重要性分级用于对单独分组相对于其它分组的重要性进行衡量。
使用所产生的排序方案以及被标识有效的通信信道,根据基于性能的协议而产生基于性能的排序方案和信道选择。这些基于性能的协议可以独立于通信协议的实施方式而实现,从而在块240处可以针对不同的数据和/或通信方法而实现不同类型的基于性能的协议,同时使用公共通信协议。
一旦在块240处对分组数据进行排序并选择特定的通信信道后,在块250处,根据基于性能的排序方案和信道选择,在一个或多个通信链路(例如PCI Express链路)上传递分组数据。根据基于通信协议的排序方案执行这个分组数据的传递,因而便于和该通信协议兼容。
图3示出了根据本发明另一个示例实施例的用于通信的装置300,所述通信涉及在基于分组的系统中进行分组处理。分组处理装置310包括由控制器316(例如使用分离的协议和性能仲裁器)分别用于对通信链路330上的分组数据进行排序和传送的协议和性能功能312和314。分组处理装置310与主CPU320、存储器350以及一个或多个组件352(例如显示器或磁盘驱动器)相连。
链路330与开关332相连,而开关332又与包括设备340、342、344和346的多个设备相连。链路330和开关332可以一同实现,和/或利用通信协议(例如与PCI Express协议)来仿真。
当要通过通信链路330传递来自信源(例如来自存储器350)的分组数据时,控制器316通过协议仲裁方案实现协议功能,根据预定的协议规则对数据进行排序。然后,控制器316还通过与协议仲裁方案分离的性能仲裁方案来实现性能功能314,根据基于性能的规则进一步对数据进行排序。然后将根据协议功能排序并通过性能功能314进一步增强的数据传递给设备340-346中的一个或多个设备。
取决于应用,以多种方式来实现装置300。例如,当利用通用桌面/移动PCI Express计算方法来实现时,装置300提供I/O(输入/输出)互连功能,例如包括存储器和I/O桥以及PCI Express通信链路控制和/或仿真。当利用基于PCI Express的服务器/工作站或网络系统来实现时,装置300包括芯片组的实施方式,所述芯片组具有面向CPU组件、存储器组件和其它组件的通信链路,以及基于PCI Express的链路和相应的PCI Express通信链路控制和/或仿真。
上文所述以及附图所示的多个实施例仅提供作为演示,不应被解释为对本发明做出限制。基于上文的讨论和示出,本领域的技术人员可以容易地理解,可以对本发明做出多种修改和改变,不需要严格遵照这里示出和说明的典型实施例和应用。例如,使用相似的方法,可以实施除了PCI Express之外的协议。另外,一个或多个上述示例实施例和实施方式可以由多个PCI Express设备和其它方法来实现,包括芯片和印刷电路板(PCB)。上述示例实施例和实施方式还可以与多个电路、设备、系统和方法进行集成,包括与存储器、显示器、网络和移动通信一同使用的设备和方法。此外,在PCI和PCI Express类型应用的背景中所讨论的多个实施例可以使用多个设备和通信方法来实现,包括不一定用于PCI或PCI Express的设备和方法。这些方法与本发明的多个示例实施例一同实现。这些修改和改变不会背离所附权利要求中提出的本发明的真实精神和范围。