网络应用设备的流调度和结构的制作方法

文档序号:6475297阅读:156来源:国知局
专利名称:网络应用设备的流调度和结构的制作方法
背景(1)领域本公开的方法和系统总地涉及提高数据流处理的效率,并且更特别地涉及用于多个处理器的改良的流调度方法和系统。
(2)相关技术描述数量不断增加的商务、服务以及其他的提供者正在互联网上扩展他们的出售物。可是,用于提供网络服务的基本结构被数据传送相关性所约束。不幸的是,一个给定服务经常是从被认为是该服务中央位置的单个网络位置中被提供。这个位置可以通过一个目的地互联网协议(IP)地址识别,该目的地互联网协议(IP)地址与能够接收并处理该请求的一个服务器相对应。现有技术的系统试图通过在目的地IP地址处提供多个服务器来减轻对一个给定服务的需求,其中,所述服务器通过一个了解内容(content-aware)的流交换机来管理。所述了解内容的流交换机拦截对于应用程序或服务的请求并且最好对保持相对低的处理负载的服务器启动一个流。现有技术系统因此包括用于把一个客户请求传送给最佳适合的服务器的方法,其中,可以使用包括与服务器当前负载和最近动作相关的信息、客户机和服务器之间的网络拥塞以及客户-服务器接近信息在内的服务器度量来识别该最佳适合服务器。在某些系统中,在地理上和/或经过网络跳跃等测量的、在客户机和服务器之间的距离可能很大,而且这样的信息可以成为选择最佳适合的服务器中的一个因素。在某些方法和系统中,获取服务器负载信息包括一个称为“pinging(强制应答)”的处理,一种可能经常不准确的技术。
当前没有一个系统或方法提供关于处理器负载以及对确定最佳适合处理器来说重要的其他因素的精确和可靠的信息。
所需要的是这样一种系统和方法,其利用来自多个处理器中固有的而不是非固有的数据以便确定用于分布流到处理器的一个有效算法。

发明内容
通过在诸如互联网之类的整个网络上分布服务和应用程序,本公开方法和系统提供一种可缩放的结构和方法来便于网络服务和应用程序的分配。在一个实施例中,利用一个可以包括应用程序处理器的交换结构能够实现该方法和系统,该应用程序处理器能够根据用户简档执行应用程序和服务。在一个实施例中,该应用程序处理器利用LINUX操作系统来提供一个开放式体系结构用于下载、修改以及其他情况下管理应用程序。该交换结构还可以包括一个前端处理器,其与网络和应用程序处理器接口,识别来自用户的数据流,并且把该数据流从该网络分布到应用程序处理器用于根据用户简档进行应用程序处理。在一个实施例中,前端处理器能够识别来自非用户的数据流,并且按照标准的网络交换把这种数据流交换到一个适当的目的地。在一个实施例中,该前端处理器包括流调度,基于包括例如策略在内的现有流处理需求来在几个应用程序处理器之中以及之间分布用户流。
在一个实施例中,该应用程序处理器和前端处理器可以被连接到一个控制处理器,其能够进一步访问包括用户简档信息和应用程序数据的本地和远程储存装置,该用户简档信息和应用程序数据可以被转送到前端或应用程序处理器。控制处理器可以进一步集合来自应用程序和前端处理器中的健康和维护信息,并且提供一个通信路径用于在管理处理器和前端以及应用程序处理器之间分发健康、维护和/或控制信息。
在一个实施例中,在此公开的方法和系统能够包括一个交换机功能性,该交换机功能性可以位于服务器网络的前端,而在另一实施例中,该网络设备可以在连接网络的路由器之间。
在一个实施例中,前端处理器可以是网络处理器模块(NPM),而至少一个应用程序处理器可以是流处理器模块(FPM)。控制处理器可以包括一个控制处理器模块(CPM)。在这个实施例中,NPM可以与诸如互联网的一个通信系统网络接口,接收流并对其分类,并且按照可以基于FPM应用的一个流调度把流分配给FPM。至少一个FPM可以宿有应用程序和网络服务,那些应用程序和网络服务利用驻留在该FPM上的一个或多个处理器来处理来自各个流中的数据。CPM可以协调交换机的不同组件,包括NPM和FPM,允许管理对该交换机的接入,并且支持对本地储存装置的访问。本地储存装置可以存储图象、配置文件以及数据库,当在FPM上执行应用程序时,可以利用它们。
在一个实施例中,该方法和系统还可以允许CPM访问可存储应用程序和数据库的一个远程储存装置。对至少一个管理服务器(MS)模决的一个接口能够通过该CPM接收并集合来自交换组件(例如,NPM,FPM,CPM)中的健康和状态信息。在一个实施例中,MS模块可以驻留在一个分离的主机上。在另一实施例中,管理服务器模块功能性可以被结合在驻留于一个CPM上的一个处理器中。
在一个实施例中,一个内部交换以太网控制总线连接交换机的内部组件并且便于管理和控制操作。内部交换以太网控制总线可以与能被用于内部分组转发的一个交换数据路径相分离。
在一个实施例中,可以以选定的冗余度来执行NPM、CPM、FPM以及在NPM、CPM和FPM之间的相互连接,以便增强容错操作以及因此增强系统可靠性。例如,在其中可以实现两个NPM、十个FPM以及两个CPM的一个实施例中,两个NPM能够操作在冗余的或互补的配置中。另外,这两个CPM可以操作在一个冗余的配置中,使第一CPM是操作的而第二CPM用作为备份。NPM和CPM可以通过能够确定一个特定NPM或CPM是否可能有故障等等的管理服务器模块来进行控制。在此同一个示例中,多达两个的FPM能够被识别作为预备的FPM,以便在一个FPM故障的情况下协助确保八个FPM能够在一个给定时刻起作用,尽管本领域普通技术人员将认识到这样一个示例被提供用于说明,并且预备的或起作用的FPM的数量能够依赖于系统要求等等而改变。所说明的FPM可以被配置来宿有一个或多个应用程序,并且某些应用程序可以驻留于多个FPM上来允许有效地服务于被极大需求的应用程序。进入这个配置中的交换机的数据流可以从一个始发者中被接收、被一个NPM处理并且被返回给该始发者、被一个NPM处理并被转发给一个目的地、被一个NPM转发给一个流处理器并通过NPM被返回给该始发者、或者被一个NPM转发给一个流处理器并被该NPM转发给一个目的地。在两个或多个NPM被配置用于互补操作的一个实施例中,被第一NPM接收到的一个流可以被处理、被转发给一个第二NPM、并且被第二NPM转发给一个目的地。在另一实施例中,第一NPM可以接收一个流并且立即把该流转发给第二NPM用于处理并转发到一个目的地。在互补的NPM实施例中,FPM处理还可以被包括在所描述的数据路径之内。
在一个实施例中,熟知的Linux操作系统能够被安装在FPM和CPM处理器上,从而提供一个开放式体系结构,该开放式体系结构允许例如驻留在该FPM上的应用程序的安装和修改。在一个实施例中,NPM可以在一个MIPS处理器上执行熟知的VxWorks操作系统而在一个网络处理器上执行一个小的可执行的操作系统。
在此处的方法和系统提供一个流调度方案来优化应用程序处理器的使用。在一个实施例中,应用程序处理器可以被理解为属于一个组,其中在一个给定组内的应用程序处理器被相同地配置。因此可对于不同的组来执行流调度和调整。
在一个实施例中,来自一个给定组中的应用程序处理器可以以规定的时间间隔报告资源信息给控制处理器。该资源信息可以包括来自应用程序处理器中的固有数据,比如CPU利用、存储器利用、分组丢失、队列长度或缓冲器占用等等之类的。利用诊断或其他应用程序处理器特定的信息可以提供该资源信息。
控制模块能够处理一个给定组的应用程序处理器的资源信息,并且根据该资源信息计算一个流调度向量,其中,在某些实施例中,当前资源信息能够与历史资源信息结合来计算该流调度向量。该流调度向量能够被提供给前端处理器并且其后被前端处理器利用来把各个流引导到不同的应用程序处理器。例如,一个前端处理器能够识别一个流和与之相关的请求,识别被配置来处理该流/请求的应用程序处理器组,并且其后协商一个相应的流调度向量以便确定该流/请求应该被引导到哪个应用程序处理器用于处理。
在下面的说明书和附图中其他的目的和优点将变得明显。


图1A示出了在此公开的网络设备的四个示例操作模式;图1B示出了在此公开的系统和方法的基于边缘的防火墙实施例的一个说明;图2是根据本公开方法和系统的设备框图;图3A是通过图2设备的基本数据流的框图;图3B是图2设备的一个存储区网络实施例的框图;图4是根据图2的系统的冗余体系结构图;图5是图2和4的系统的网络处理器模块(NPM)的简图;图6A、6B、6C、6D、6E和6F详述了图5 NPM的网络接口的实施例;图7说明了在图5所说明的NPM内的底板上的一个交叉;图8是图2和4实施例的流处理器模块(FPM)的结构框图;
图9是根据图2和4典型系统的一个说明的控制处理器模块(CPM)结构的框图;和,图10是一个框图,说明了图2-4的方法和系统的流调度的逻辑流。
具体实施例方式
为了提供一个总体的理解,现在将描述某些说明实施例;可是,本领域普通技术人员应该理解在此描述的系统和方法可以被调整并修改以便提供用于其他相配应用程序的系统和方法,并且不偏离本发明的范围可以进行其他增加和改进。
对于此处的公开内容,一个应用可以被理解为能够以硬件、软件或者它们的组合形式被实现的一个数据处理单元,其中,该数据处理单元可以包括许多状态其可以为零或任何正整数。
为着要在此描述该方法和系统的目的,一个处理器可以被理解为能够执行指令的任何元件或组件,包括但是不限制为一个中央处理单元(CPU)。
所公开的系统和方法涉及一个网络设备,该网络设备可以被连接在网络中以及连接在网络各处,该网络比如是互联网,以便使应用程序和服务在整个网络上对于来自预订用户的数据流都可用。虽然该设备可以执行本领域普通技术人员理解的通常归于交换机的那些功能,并且同样地,该设备可以作为本领域普通技术人员理解的一个交换机被连接在网络中以及连接在网络各处,但是该设备通过提供技术智能从而另外允许在该网络各处分布应用程序,以便在按照本领域普通技术人员目前理解的交换操作来把数据流转发到下一目的地之前,识别在该交换机处接收的数据流、基于该数据流再调用一个简档、把一个策略应用到该数据流、并且按照该简档和/或策略来使该数据流被应用程序或服务所处理。在一个实施例中,下一目的地可以是一个网络地址或者是被连接到该网络设备上的另一设备。通过在网络各处分布业务来增加业务的有效性,则与为了满足应用程序和服务的增加需求而出现的替换解决方案相关的可缩放性问题被解决。
图1A显示了四个示范模式和在此呈现的网络设备或装置的操作的相应说明示例,其中,这样的模式被提供用于说明而非限制。作为一个示例,如图1A所示的第一模式可以被利用用于一个防火墙应用程序,其中,数据流可以被网络设备接收并且另外在可以被认为是一个“通过或者丢弃”的场景中被处理。在这样的应用程序中,该网络设备能够接收来自一个接口中的数据流并且根据由该防火墙提供的许可而利用一个第二接口来把该流传递到一个目的地,或者该数据流可以被丢失(即,未被转发到目的地)。在标记为“修改、源和发送”的图1A的第二场景中,被网络设备接收的一个数据流可以被第一接口接收、修改并通过第二接口转发到一个目的地。第二场景的示例实施例包括内容插入。在图1A的第三场景中,该网络设备可以起作用作为一个代理,在其中数据流能够在第一数据接口处被接收、处理并且返回,并且类似地从第二数据接口中收到的数据流可以通过第二接口被处理并被返回,在其中,各自的数据流能够是相关的或者有关的。图1A的第三场景的样例实施例包括事务处理业务和协议转换。在图1A的第四样例实施例中,该网络设备能够被利用用于例如包括VoIP会议、内容插入和应用程序高速缓存在内的应用程序,在其中,数据流可以在第一接口处被接收、被处理并且通过第一接口被返回。
图1B提供网络设备的另外一个说明并且示范了一个基于边缘的防火墙实施例200的一个数据流,其合并了按照在此公开的方法和系统的网络设备。在此说明中,从一个用户到互联网服务提供者(ISP)A202以及从一个用户到ISP B204的、以互联网请求形式的数据流被输入到一个数字用户线路接入多路复用器(DSLAM)206并且其后被转送给ISP A相关的超级POP内的一个异步传输模式(ATM)交换机208,其聚集数据流并且把该流转发给路由器210。路由器210把数据流业务引导给识别来自分别的ISP用户202、204中的流并且应用各自的防火墙策略的网络装置或者设备12。在说明的实施例中,ISP A和B是网络设备12的用户,并且据此提供简档和按照这样的简档提供应用程序/服务,用于由与该简档一致的设备进行分布和处理。在该说明性实施例中,除了各自的防火墙策略之外,应用程序例如可以被应用到各自的数据流。在各自的处理被网络设备12执行之后,在该说明实施例中,来自ISP A用户202的数据流与应用于该数据的应用程序一起被转送给互联网212,同时来自ISP B用户204的数据流与应用于该数据的策略一起被转送给ISP B214。
网络设备12还可以识别另外不属于一个用户并因此不适合用于应用程序处理的数据,其中,这种数据可以按照本领域普通技术人员目前已知的交换机被交换到一个目的地。本领域普通技术人员也应该认识到虽然此公开内容提供了连接在通常称为互联网的网络之内的设备,但是该互联网应用程序被提供用于说明而非限制。在一个实施例中,其中所述设备与诸如互联网之类的一个通信系统一起被使用,该设备可以被连接在一个服务器网络的前端,或者可替换地,可以被连接在连接网络的路由器之间,尽管在此公开的该设备并不限制于这种实施方案。
图2示出了网络设备12的另外一个说明框图10,该网络设备可以宿有应用程序并连接入以及连接到诸如互联网之类的网络的基础设施的各处,从而相应地在该网络各处分布被宿有的应用程序和/或服务。本领域普通技术人员将认识到图2的实例是意欲使本公开内容方便理解而不意欲作为一个限制。正如图2指出的,所说明的设备12包括通过独立地保持两个千兆位以太网连接(在该说明实施例中)来便于网络流进入网络设备12和从其出来的两个网络处理器模块(NPM)14。本领域普通技术人员将认识到千兆位以太网连接只是一个高速数据链路,而其它如此的数据链路可以来作为代替而没有偏离本系统和方法的范围。例如,在设备12被在线地插入把用户连接到互联网核心的主干的这样一个实施例中,千兆位以太网连接可以任选地接口到一个用户网络16和互联网核心18。本领域普通技术人员将认识到在另一实施例中,单个NPM可以被利用,并且两个千兆位以太网连接例如可以连接于两个不同的网络。另外,本领域技术人员将认识到对于本说明系统,设备12可以利用单个双向接口来连接到用户网络16和互联网核心18。图2的NPM14经由以太网通过一个交叉连接20连接到至少一个流处理器模决(FPM)22和至少一个控制处理器模块(CPM)24,流处理器模块(FPM)22把应用程序和业务应用到数据流,控制处理器模块(CPM)24可以处理数据流请求并且收集来自NPM14和FPM22中的健康和维护信息。
每个所说明的NPM14、FPM22和CPM24也连接到高速交换结构上,所述高速交换结构互连所有模块并且允许在NPM14、FPM22和CPM24模块之间数据流的内部分组转发。在典型实施例中通过一个100Base-T以太网控制总线26,CPM24同样地独立连接到FPM22和NPM14,该100Base-T以太网控制总线26可以是双冗余内部交换的100M字节/秒以太网控制平面。所说明的CPM24通过一个100Base-T以太网也连接到一个管理服务器(MS)模块28、连接到一个本地存储器装置30以及通过一个千兆位以太网连接而连接到一个数据中心32。MS模块28考虑了数据收集、应用程序装载以及从FPM22中的应用程序删除,同时本地存储器装置30和数据中心32可以存储与应用程序或简档信息相关的数据。在图2说明的系统中,有两个NPM14、至少两个CPM24和十个FPM22,虽然这样一个系统只是说明性的,但是本领域普通技术人员将认识到可以利用更少或更多数目的这些组件而没有偏离本系统和方法的范围。在图2说明的系统中,两个NPM可以操作在互补的或冗余的配置中,而两个CPM可以被配置用于冗余。
正如所指出的,使用根据所说明的原则所述的一个结构,设备12可以被放置在诸如互联网之类的正常网络方案内,其中,设备12例如可以位于服务器网络的前端、或者替换地以及附加地位于连接网络的路由器之间。使用被配置用于设备模块的固件和/或软件,设备12可以被配置来向用户提供应用程序,其中,应用程序可以包括病毒检测、入侵检测、防火墙、内容过滤、秘密保护以及基于策略的浏览-尽管这些应用程序只是一个说明而不意欲作为一个限制。在一个实施例中,NPM14能够接收数据分组或流并且在把分组转发到适当的目的地之前完全处理这种分组。在同一实施例中,NPM14能够接收并且转发该分组到一个适当的目的地。还是在同一实施例中,NPM14可以识别需要可由位于FPM22上的应用程序执行的处理的那些数据分组;而在这些范例中,NPM14能够执行流调度以便确定哪一FPM22能适当地并且最有效地处理该数据,其中,该数据分组或流能因此被转送给选定的FPM22用于处理。在一个实施例中,不是所有的FPM22都可以处理所有类型的处理请求或数据分组。另外,为了处理一个数据请求,在某些情况中,一个FPM22可能需要来自本地存储器装置30或远程储存装置32中的信息,其中,NPM14能够通过CPM24引导存储数据的检索并且其后把该存储数据转发给FPM22。一个FPM22其后可以转送处理的数据给NPM14用于转发给一个适当的目的地。利用诸如图1和3所提供的那些设备的设备12结构,应用程序服务提供者通过在诸如互联网之类的网络各处集成业务并使业务可用,从而能够更有效地向用户提供服务,而不是在经常规定为单个IP地址的单个位置处提供服务。
图3A示出通过图1的设备12的数据流的简图。正如图3A所指出的,NPM14可以在用户接口和网络核心之间提供一个接口。图3A的NPM14能够接收来自第一接口14a的数据,并且取决于数据请求,能够处理数据并且使用第一接口14a或者第二接口14b发送所述已处理的数据。可选择地,NPM14能够转发该接收的数据给一个FPM22,该FPM22其后能够把处理的数据返回给NPM14以使用第一接口14a或者第二接口14b来传输或转发。同样地,NPM14能够接收来自第二接口14b的数据、处理该数据并且使用第一接口14a或者第二接口14b发送该处理的数据。另外,由NPM14通过第二接口14b接收的数据可以被转送给FPM22用于处理,其中,FPM22能够把该处理的数据返回给NPM14用于通过第一接口14a或者第二接口14b传输。在另外一个示例中,由NPM14接收的数据可以被多个FPM22处理,其中,所述数据可以通过该NPM14被转送给多个FPM22,并且被返回给NPM14用于转发给一个目的地。
在一个实施例中,其中,两个NPM被配置用于互补的操作,在第一NPM处接收到的数据能够被第一NPM处理、被发送给第二NPM、并且被第二NPM转发给一个目的地。可选择地,在第一NPM处接收的数据可以被转送给第二NPM、被处理并且相应地被转送给一个目的地。在另外一个场景中,在两个NPM的任一个处接收的数据可以被转送给任何一个FPM22、被处理并且返回给任一NPM用于转发给目的地。本领域普通技术人员将认识到数据移动和处理的示例进入设备10、在设备10内部以及退出设备10都只是用于说明而非限制,并且在补充实施例中例如可以交换对第一NPM而第二NPM的引用而不偏离本方法和系统的范围。
图3B示出了图2和3A的系统,被配置来根据如本领域通常已知的一个存储区网络(SAN)进行操作。在图3B的结构中,如图3A所示出的NPM14和FPM22集成被保留,可是,NPM14和FPM22还保持了与一个或多个储存装置23的接口,储存装置23可以是本领域通常已知的任何储存装置,包括但是不限制为RAM、ROM、软盘、盘驱动、ZIP驱动、RAID系统、全息摄影存储器等等,并且这种例子被提供用于说明而非限制。正如图3B所指出的,数据可以在NPM14处被接收并且被直接转送到储存装置23;或者被NPM14接收的数据在被FPM22转发给储存装置23之前可以被转送给一个或多个FPM22,其中,在把数据转发给存储器23之前FPM22可以对该数据执行处理。同样地,在图3B结构中,数据可以被NPM14或者FPM22从存储器23中检索。在图3B结构中,NPM14和FPM22保持可以容纳数据输入和输出的外部接口。
图4说明了实现双冗余结构的图2系统的替换表示。在图4的冗余结构的实施例中,有位于十四机架机框中的两个NPM14a、14b,两个CPM24a、24b,以及十个FPM22a-22n。在图4系统中,八个FPM22被提供用于典型的设备12操作,令两个FPM22被提供以在操作的八个FPM22之中至多两个故障的情况下作为替换。正如图4所指出的,冗余内部交换的100M字节/秒(100Base-T)以太网控制平面170a、170b提供在每一NPM14a、14b、CPM24a、24b以及FPM22a-22n之间的连接。所说明的系统还包括双结构链路172a、172b,其中,每个FPM22a-22n和CPM24a、24b连接于每个结构链路172a、172b上,而第一NPM14a连接到第一结构链路172b,第二NPM14b连接到第二结构链路172b,以便允许每个NPM14a、14b彼此无关地操作。
另外,正如在图4中所指出的,图4的NPM14a、14b保持到网络的两个千兆位以太网连接,其中,连接之一可以是到包括用户网络等等的一个用户,而另外一个连接可以是到互联网核心。可选择地,所说明的CPM24a、24b保持一个千兆位以太网连接来与被说明为图2的数据中心32的一个远程储存装置进行通信。
图5示出了根据图2和4所说明的一个NPM14的示意框图。正如在图2和4中所指出的,设备或交换机12可以包括一个或多个NPM14,并且当一个以上的NPM14被利用时,NPM14可以被配置用于冗余或互补操作。
一个NPM14可以包括在图5中说明的一个模块的和任选的子系统,如网络接口子系统40。此子系统40物理上连接交换机12和网络,从而在交换机12和网络之间提供一个数据流。NPM14还包括连接到网络接口子系统40上的一个网络处理器42。网络处理器42例如可以是一个IQ2000网络处理器,并且本领域普通技术人员将认识到此示例是作为一个例示而非一种限制,其中执行在此所述功能的任何类似设备都可以同样地来代替。另外,第二处理器可以共同位于NPM结构内而没有偏离本方法和系统的范围。在所说明的IQ2000网络处理器42的情况下,网络接口系统40可以使用一个FOCUS总线连接到网络处理器42的端口A和B,其中,这些端口在下文中将被称为FOCUS端口A和B,并且在其中标记为C和D的两个剩余的FOCUS端口在网络处理器42上可用。
网络接口子系统40可以是NPM结构的一个可改变组件,其中,不同的选项可以是各种印刷电路板(PCB)设计或可插入的任选板,然而,本领域普通技术人员将认识到实现网络接口子系统40的这些方法只是说明性的而在此的方法和系统不限制为这些技术。
例如,图6A到6F提供图5的NPM14的许多说明性的网络接口子系统40选项。参见图6A,到图5的网络处理器42的两个千兆位以太网接口50、52通过网络处理器42的两个嵌入的千兆位以太网媒质访问控制设备(MAC)来被支持。在图6A的网络接口子系统40的实施例中,千兆位以太网操作所需要的唯一外部设备包括千兆位以太网物理层设备(PHY)54a、54b和光接口56a、56b。在说明实施例中,第一光接口56a可以耦合到用户的网络设备,而第二光接口56b可以耦合到互联网核心。
现在参见图6B,有一个对于图5的NPM14的说明结构,其中,FOCUS端口A和B通过一个外部八10/100 MAC60a、60b可以支持直到八个10/100以太网端口。在图6B中,两个外部八端口10/100 MAC60a、60b耦合到FOCUS端口以及耦合到两个外部八端口10/100PHY设备62a、62b。PHY设备分别耦合到八RJ-45连接64a、64b。在图6B的结构中,一组八RJ-45端口64a可以专用于用户的网络,而剩余的八RJ-45端口64b可以耦合到互联网核心。在一个实施例中,图6B的结构可以允许软件或固件来配置该端口作为独立的数据流,如此以致在用户的端口上接收的数据能够在一个互联网端口上被返回。
现在参见图6C,有图5说明的NPM14的一个网络接口子系统40的结构,其中,与连接到A和B FOCUS端口的一个分段和重装配设备(SAR)70a、70b一起协作,交换机12可以接收ATM信元。在图6C的结构中,其中0C-3c ATM操作被说明,四个光接口72a提供用户接口,而四个光接口72b提供互联网核心接口。分别的用户和互联网光接口72a、72b耦合到一个四端口成帧器76a、76b,其提供输入给传输SAR 70a(TX,″到”交换机12),或者接收来自接收机SAR 70b(RX,″来自”交换机12)的输出。在所说明的结构中,SAR 70a、70b利用一个32比特SRAM 77和一个64比特SDRAM 78,虽然这样一个实施例只是用于例示。在图6C说明的系统中,SAR UTOPIA端口通过一个现场可编程门阵列(FPGA)79与FOCUS A和B端口接口。本领域普通技术人员将认识到正如利用在此提供的其他图表一样,图6C的网络接口子系统只提供用于说明而不意欲限制本方法和系统的范围;因此,组件另外可以被替换以便执行同一功能,在其中例如能够发送和接收的单个SAR可以替代图6C说明中描述的两个SAR70a、70b。
现在参见图6D,这里有图4说明的NPM14的一个网络接口子系统40的结构,其中0C-12c ATM操作可以被使能。在说明的系统中,一个0C-12c光接口80a可以耦合到用户,而第二0C-12c光接口80b可以耦合到互联网核心。与图6C相反,图5D仅仅说明了一个两端口成帧器82,它其后接口到TX和RX SAR 84a、84b、FPGA86以及网络处理器42的相应FOCUS端口。
现在参见图6E,这里有图5的网络接口子系统40的一个0C-3C分组在SONET上(POS)的结构。在图6E说明的结构中,四个光接口90a可以接口到用户,而四个光接口90b可以专用于互联网核心。光接口90a、90b分别耦合到一个四端口成帧器92a、92b,其通过一个FPGA94接口到A和BFOCUS端口。本领域普通技术人员将认识到因为PPP(点到点协议)封装的分组被插入到SONET有效载荷包封(SPE)中,所以所有POS链路被级连,并且图6E中利用的FPGA94因此可能类似于图6D的FPGA86。
参见图6F,这里有用于两端口0C-12c POS应用的图5的网络接口子系统40的一个结构。在说明的系统中,一个光接口100a可以耦合到用户,并且另外一个光接口100b可以耦合到互联网核心。图6F的光接口100a、100b耦合到一个两端口成帧器102,其接口到一个FPGA104用于连接到A和B FOCUS端口。
返回到图5,说明的网络处理器42也连接于一个CPU子系统110,该CPU子系统110包括诸如QED RM700A 400MHz MIPS处理器之类的一个MIPS处理器112,诸如Galileo GT64120A系统控制器/PC桥之类的一个系统控制器/PCI桥114、本地SDRAM116以及一个可编程的逻辑设备(PLD)118。在说明实施例中,PLD118使得该板特定的控制寄存器和各种设备是可访问的。正如所说明的,PLD118被连接到具有本地SDRAM116的GT64120A 114上的一个本地高速总线,并且充当本地高速总线120和较低速度外围总线122之间的一个缓冲器,该较低速度外围总线122具有自举PROM闪存124和非易失性的RAM(NVRAM)126用于设定和参数的半永久存储器,并且用于提供时刻和日期的一个实时时钟。连接到PCI桥接的图5的PCI总线127还包括两个快速以太网MAC 128a、128b,比如包括集成的PHY的Intel GD82559ER 100Mbit MAC,以便通过一个主和次100Base-T以太网通道在NPM14和CPM24之间提供冗余连接。所说明的MAC128a、128b位于PCI总线上并且在PCI内部缓冲器和所定义的缓冲器之间执行本地MIPS存储器112内的描述符的直接存储器存取(DMA)传送。MAC128a、128b能够支持一个无限制的突发尺寸并且能够被PCI桥性能限制。在一个实施例中,在一个控制平面应用程序中可以利用流控制以便避免不必要的分组丢失。所说明的GT64120A114允许CPU112和另外一个本地总线主控来访问PCI存储器和/或设备总线。
图5的NPM14还包括一个交换结构子系统130,其在NPM14和交换机12内的另外一个模块之间提供高速、无阻塞的数据连接。该连接包括对另一冗余或互补NPM14的两个链路以及对每个CPM24的一个链路。该结构的所说明的NPM14部分包括两个Focus连接设备132a、132b,其中,一个Focus连接设备132a使用一个FOCUS总线而被连接到IQ2000 42端口C,而另外一个Focus连接设备132b被连接到端口D。
在说明的系统中,Focus连接设备132a、132b上的十六比特FOCUS总线上的端口,除了本地端口八个之外,都被附接到一个Cypress QuadHotlink千兆比特收发机134,该收发机134是一个串行到解串行(SerDes)设备136,其具有双冗余I/O能力并且被配置用于双信道结合模式。双信道结合模式以一个十六比特信道的形式把两个信道耦合在一起,其中,这里可能每一设备有两个这样的十六比特信道。现在参见图7,该双冗余串行I/O能力,与底板上的交叉协作,允许任何时隙被连接到任何其它时隙,如此以致当仅仅一个NPM14存在时不需要一个分组或者一个数据路由向量修改。图5的Serdes设备136把来自底板的进入串行数据流变换成并行数据,用于转发到Focus连接设备132a、132b。同样地,Serdes 136在把数据放置在底板上之前,把来自Focus连接设备132a、132b的并行数据转换为串行数据。
例如,利用图4说明的系统,一个Focus连接设备132a、132b被连接到IQ2000 FOCUS C和D端口,并且在其中Focus连接设备132a、132b每一个都保持八个端口,在说明的系统中,其中这里有十四个槽的机框并且这里有用于FPM22a-22n的十个槽、用于NPM14a、14b的两个槽以及用于CPM24a、24b的两个槽,该Focus连接设备端口可以被配置为如表1和2所示表1连接到IQ2000 FOCUS端口C的Focus连接设备(132a)


表2连接到IQ2000 FOCUS端口D的Focus连接设备(132b)

正如表1和2指出的,利用图4的NPM14,在图1和3中说明的冗余系统中,双NPM14a、14b可以访问所有的FPM22a-22n和每个CPM24a、24b,反之亦然。
图5的NPM14的第四个主要子系统是一个存储器子系统140。图5的存储器子系统是用于分组缓冲存储以及流查找表空间的单个RAM总线信道。在说明性实施例中,存储器子系统140包括一个搜索处理器142以及一些内容可寻址的存储器144,虽然本领域普通技术人员将认识到在此的本方法和系统不限制为存储器子系统140或它的组件。
返回到图5,被NPM14接收的数据可以被转送给IQ2000 42,IQ2000 42可以包括用于识别分组或数据流的指令。例如,CPU或处理器指令可以实现或利用一个散列表来识别对于一个识别的分组或流的服务或处理,在其中,该分组或流可随后例如根据服务或处理被转送给一个FPM22。可选择地,未被识别的分组可以被转送给MIPS112,该MIPS112可以包括用于识别该分组或流以及相关的处理或服务的指令。在一个实施例中,不能被MIPS112识别的分组可以被MIPS112转发给CPM24,CPM24还可以包括用于识别分组或流的指令。来自CPM24或MIPS112的标识信息可以被返回给IQ2000 42并且该散列表可以相应地利用该标识信息而被更新。
现在参见图8,是在图1-3中说明的系统的FPM22的基本示意框图。在图8的实施例中,FPM22是以Intel的440BX AGPset为基础的,大多数的FPM功能性类似于一个个人计算机(PC)。说明的FPM22因此可以被视为具有四个主要部分,其包括一个处理器或CPU120、一个440BXAGPset122、一个FOCUS接口以及外围设备。在图2和4的说明系统中,FPM22被同样地设计,虽然本领域普通技术人员将认识到在此公开的方法和系统可以包括不同的FPM设计。
参见图8,说明的FPM22实施例支持具有一个100兆赫处理器系统总线(PSB)的单个插座370 Intel Pentium III CPU150,虽然这样的处理器只是用于例示而非限制,但是本领域普通技术人员将认识到在此公开的方法和系统不被CPU选择或处理器组件所限制。同样地,本领域普通技术人员将认识到多个处理器150可以被合并在FPM结构内而没有偏离本方法和系统的范围。典型的FPM22还包括一个440BX图形加速端口(AGPset)152,其提供对于CPU150的主机/处理器支持。
在所说明的系统中移进和移出FPM22的数据分组使用一个称为FOCUS总线的16比特宽的100兆赫总线,并且在说明实施例中,一个全双工FOCUS总线从每个NPM14附接到每个FPM22,其中,在双冗余NPM14a、14b的说明实施例中,每个FPM22与两个NPM14a、14b通信。正如先前所指出的,该FOCUS总线信号在它被放置在底板上之前在NPM14a、14b上被串行化,以便改善信号完整性并且减少轨迹(trace)数。正如所说明的,FPM22上的解串行器154a、154b把信号从底板转换到一条总线并且该总线连接该解串行器154a、154b到一个Focus连接156,该Focus连接156通过一个FPGA158和输入输出处理器160来接口到440BXkGPset152。所说明的PRC是一个八路FOCUS交换机,其允许FPM22把分组适当地引导到正确的NPM14。
图8的FPM22还维持了包括控制平面接口、大容量储存装置和串行接口在内的外围设备。在所说明的FPM22中,控制平面提供一个专用路径用于通过两个快速以太网控制器130a、130b与FPM22通信,该两个快速以太网控制器130a、130b把AGP152接口到该冗余的控制平面。正如在图2和4中所指出的,它通常是通过控制平面与FPM22通信的CPM24a、24b。在说明实施例中,快速以太网控制器130a、130b连接到控制平面上,其是在两个CPM24处终止的交换的100兆比特/秒以太网网络。
所说明的FPM22还可以支持不同类型的大容量储存装置,其例如可以包括一个M系统DiskOnChip(DOC,芯片上盘)、一个2.5英寸盘驱动器、用于设定和参数的半永久存储的NVRAM等等。
现在参见图9,这是如图2和4的系统中呈现的一个样例CPM24的说明。正如先前指出的,CPM24执行一般的、交换机全部的功能并且通过一个数据接口被连接到其它交换组件,在说明实施例中,该数据接口是与用于FPM22的图7的数据接口相同的。本领域普通技术人员将认识到FPM22和CPM24模块的公用数据接口只是为了方便而不限制本方法和系统的范围。
正如早先讨论的,在说明实施例中,控制平面在一个CPM24处终止,其中,所说明的控制平面是双冗余的、专用的、交换的100兆比特以太网。交换单元被安装在CPM24上,并因此在其它模块和一个CPM24之间的所有点对点连接都通过该底板连接器被维持。
另外,CPM24控制交换机12自举过程且在交换机12是可操作时管理从交换机12去除模块和将模块插入交换机12。
在图9说明的CPM24中,主CPU170是一个奔腾III处理器,尽管在此的方法和系统不被如此限制,能够用执行在此描述的功能的任何处理器或CPU或设备来进行代替,而不偏离本方法系统的范围,其中,多个处理器或CPU可以另外被利用。在所说明的CPM24中,一个440BX图形加速端口(AGPset)172提供CPU170的主机/处理器支持。图9的AGP172支持一个PCI接口来连接到各种硬件设备。
三个快速以太网控制器174a、174b、174c也位于440BX172的PCI总线上。这三个快速以太网控制器174a之一提供与另外一个CPM24上的快速以太网的外部通信以及多路复用。其它两个快速以太网控制器174b、174c提供到NPM14和FPM22的专用通信路径。在图9说明的系统中,快速以太网控制器是一个Intel 82559ER,把MAC和PHY合并到单个组件中的完全集成的10BASE-T/100BASE-TX LAN解决方案,虽然这样的实施例只提供作为一个说明。在所说明的系统中,快速以太网控制器174b、174c接口到一个以太网交换机176,其提供十四个专用通信路径到控制平面,用于多达十个FPM22和两个NPM14。
数据分组利用一个十六比特宽的100MHz FOCUS总线来移进和移出所说明的CPM24。在说明的系统中,有把每个CPM24耦合到每个NPM14上的一个全双工FOCUS总线,其中,对于具有双冗余NPM14a、14b的图2和4所说明的系统,每个CPM24耦合到两个NPM14a、14b。Serdes设备178a、178b把来自底板的进入的串行数据流转换为并行数据用于转发给一个Focus连接设备180。同样地,Serdes178a、178b在把数据放置在底板上之前把来自Focus连接180的并行数据转换为串行数据。所说明的Focus连接180是被CPM24使用来把分组引导到正确的NPM14的一个交换机。在图9的系统中,分组通过一个FPGA184和输入输出处理器186而被移进和移出CPU存储器182,该FPGA184和输入输出处理器186把Focus连接180接口到AGP172。
再一次参见图2和4的系统,CPM24协调交换机的不同组件,包括NPM和FPM,并且同样地支持对一个本地储存装置30的访问,本地储存装置30还可以被称为一个本地存储器装置。在一个实施例中,本地储存装置30能够存储图像、配置文件和数据库用于在FPM22上执行应用程序。例如,本地设备30可以储存用户简档,该用户简档可以被检索以便被NPM14或FPM22使用。在一个实施例中,一个特定应用程序或用户的一个配置文件可以被检索并被复制到多个FPM22,例如从而在期望多个相同配置的FPM22的场景中提供增加的效率。在这样一个实施例中,FPM22可以对于一个用户而被分组。本地储存装置30可以是可删除或驻留在CPM24上的任何熟知的存储器组件,包括但是不局限于软盘、压缩光盘(CD)、数字视频设备(DVD)、等等。在说明的系统中,对于每个CPM24,有至少一个本地储存装置。同样地,在说明的系统中,本地储存装置30能够被分成一些区分以便容纳并保护某些处理器的需要,包括在各个FPM22上的处理器。在一个实施例中,本地储存装置30可以包括允许动态软件升级的两个完全相同的盘分区。在一个实施例中,两个盘分区可以包括相同的分区组,该分区组可以包括交换分区、被全部处理器使用的共同分区以及用于不同模块处理器(即,NPM、FPM、CPM)的特定分区。
所说明的CPM24还可以访问一个远程储存装置32,其中,此类远程存储器可以存储服务、数据库等等,其可能未被有效地储存在本地存储器装置30中。远程储存装置32可以是存储器组件的任何编辑(compilation),其可以依靠应用程序而被在物理上或逻辑上分区,并且本领域普通技术人员将认识到在此的方法和系统不被利用来创建该远程储存装置32的实际存储器组件所限制。
图2的CPM24也耦合到至少一个管理服务器(MS)模块28。在说明实施例中,该连接是一个100Base-T以太网连接。在图2的系统中,MS28可以接收并集合来自交换模块14、22、24中的健康和状态信息,其中,该健康和状态信息可以通过CPM24被提供给MS28。在NPM14、FPM22和CPM24被冗余提供的这样一个实施例中,例如,MS28可以激活一个特定设备12模块或使一个特定设备12模块不活动。在说明实施例中,MS28通过CPM24与设备12模块通信。在一个实施例中,MS28可以是一个PC、Sun工作站或其他类似操作的微处理器控制设备,其可以配备有微处理器可执行指令用于监视和控制该设备12模块。在一个实施例中,MS28可以包括一个可执行的项,其提供一个图形用户接口(GUI)用于设备12的监视和控制信息的显示。在一个实施例中,MS28可以是离开CPM24的一个分开的设备,而在另一实施例中,例如通过利用CPM24上的一个分开的处理器用于MS28功能性,则MS28的功能性可以被合并到CPM24中。
在一个实施例中,熟知的Linux操作系统可以被安装在FPM22和CPM24处理器上,从而提供一个开放式体系结构,其允许例如位于FPM22上的应用程序的安装和修改。在说明的系统中,可以利用MS28执行在交换模块上的应用程序的管理和控制。在说明实施例中,利用CPM24,则MS28管理可以被执行。在说明实施例中,诸如防火墙应用程序等等之类的应用程序因此可以利用MS28而被下载、删除、修改、在FPM22之间传送等等。
在一个实施例中,NPM14可以在MIPS处理器上执行熟知的VxWorks操作系统以及在IQ2000处理器42上执行一个可执行的小操作系统。本领域普通技术人员将认识到在此公开的方法和系统不局限于在各种交换模块上的操作系统的选择,而且允许一个开放式体系结构的任何操作系统可以代替,同时保持在本方法和系统的范围之内。
现在参见图10,这里是图2-4的说明系统和方法的流调度处理200的说明框图。正如图10所指出的,对于说明的系统,FPM22可以提供资源信息202给CPM24。资源信息的描述或定义可以是依靠于系统配置或者由系统配置定义的,并且可以包括能够根据一个预定义或已建立的流调度准则在NPM14和FPM22之间的流分布方面起帮助的任何信息。例如,在期望流被导向FPM22以便使FPM22的利用最优化的一个实施例中,资源信息可以包括诸如FPM CPU利用、FPM存储器利用、FPM分组丢失、FPM队列长度或缓冲器占用等等之类的固有的FPM数据,并且本领域普通技术人员将认识到这些度量或资源信息被提供只用于例示而非限制,并且其他资源信息可以从FPM22中被提供给CPM24而没有偏离本方法和系统的范围。同样地,任何上述说明的资源信息不需要被提供在在此公开的方法和系统的任何给定实施例中在说明实施例中,FPM22可以被认为属于一个FPM组,在此,一个FPM组包括相等配置的FPM22,并且因此一个给定的FPM22被分配给单个组。在其他实施例中,例如,如果组包括能够处理一个特定应用程序的FPM,则一个给定的FPM22可以被指配给不同的组。在一个实施例中,其中,十个FPM22被给出并且可以被分别地标记为数字一到十个,并且FPM一、四、五、八和九被相同地配置,而FPM二和三被相同地配置,并且FPM六、七和十被相同地配置,三个FPM组可以被相应地定义。对于根据说明实施例的一个系统和方法,响应于来自CPM24的一个查询请求,来自FPM组中的资源信息可以被提供给CPM202;或者,例如,资源信息可以以预定的时间间隔自动地被提供给CPM24,在预定的时间间隔期间FPM22被配置来发送该资源信息给CPM24。在一个实施例中,来自一个给定组中的FPM22可以在规定的时间把资源信息传送到CPM24,在另一实施例中,从一个单个FPM22到CPM24的资源信息的传送可以不是组关联的或者相关的。在一个实施例中,从FPM22到CPM24的资源信息传送对于所有的FPM22可以是同时的。
在说明的系统中,例如,一个FPM22能够以十分之一秒的间隔发送资源信息给CPM24,虽然本领域普通技术人员将认识到这样的定时只是提供用于例示,并且在此的方法和系统不限制为在FPM22和CPM24之间的资源信息传送的定时或调度。所说明的系统CPM24可以负责根据FPM22然后根据FPM组204解析FPM22的资源信息。例如,对于先前在此提供的三个FPM组说明,CPM24可以被配置来识别资源信息正在从中到达的FPM22,并且还要识别FPM22所属的组。本领域普通技术人员将认识到存在用于识别数据消息或传送源的不同的方法,例如包括在消息报头中识别的包含、CRC等等,并且在此的方法和系统不限制为资源信息可以与FPM22相关的技术或方法。
所说明的CPM24可以根据FPM组来安排来自FPM22中的信息,并且利用这样的信息来为FPM组204计算一个流调度向量。虽然FPM22能够以给定的间隔提供资源信息给CPM24,但是CPM流调度计算可以不与此种信息接收一致。在一个实施例中,不论何时获得FPM信息,CPM24都可以更新一个流调度向量;可是,在其它实施例中,在更新一个流调度向量之前,CPM24可以平均来自一个给定FPM22或FPM组中的多个更新。例如,CPM24能够被配置来以规定的时间间隔或者以规定的FPM更新间隔等等为一个给定组计算一个新的流调度向量,在其中在此的方法和系统不被CPM流调度向量计算的定时所限制。
在一个实施例中,CPM流调度向量计算间隔可以是位于一个给定FPM组内的一个应用程序的功能。例如,如果CPM承认一个FPM组结构包括需要一个给定时间来完成的应用程序,则流调度向量计算可以基于这样的信息来被执行。在FPM组流调度向量计算是应用程序相关的一个系统中,不同FPM组的FPM流调度向量可以与其他FPM组无关地被计算。
在一个实施例中,流调度向量可以基于来自FPM中的历史固有数据来被计算。在一个实施例中,使用一个过滤器,则此历史信息可以被合并到流调度向量中。
一个给定FPM组的一个计算的流调度向量可以有不同长度。例如,考虑具有可以被称为五、六、七的三个FPM22的一个FPM组。在一个给定间隔期间,CPM24可以决定FPM五和七被完全加载,而FPM六却不这样。在此情况下,FPM组的向量例如可以是识别FPM六的一个值,并且此向量例如可以保持不变直到FPM五和七指示一个降低的负载为止。在此相同FPM组的另一实施例中,在其中百分之四十的流将被FPM五处理、百分之四十被FPM六处理、并且百分之二十被FPM七处理,流调度向量可以是能以向量表达式排列的五个数值[FPM五;FPM六;FPM五;FPM六;FPM七]。
再一次参见图10,在CPM24为一个给定FPM组计算一个流调度向量之后,CPM可以把流调度向量转送206给NPM14。依赖于CPM结构,被更新的流调度向量从CPM24到NPM14的转送的速率可以不与CPM流调度向量计算一样。在某些实施例中,流调度向量从CPM24到NPM14的转送可以被配置为固定的间隔,其可以根据FPM组而改变。在其它实施例中,对于所有FPM组的被更新的流调度向量可以同时被传送给NPM14。在另一实施例中,一个新的流调度向量从CPM24到NPM14的转送可以仅仅基于一个预定准则而发生,例如,其可能需要在一个现有的流调度向量和新计算的流调度向量之间的一个规定差值。本领域普通技术人员将认识到在此的方法和系统不被一个CPM24和NPM14之间的流调度向量传送的频率或调度所限制。
正如在此指出的,NPM14接口到用户和/或网络等等,并且可以接收流、识别被该流请求的应用程序并且还识别哪些FPM22可以处理该流/请求。在使用图10的流调度方法的系统中,一旦NPM14识别一个接收流正在请求哪一(些)应用程序,则NPM14可以确定一个FPM组来处理该流。在一个实施例中,NPM14例如可以利用一个散列表来把对于应用程序或服务的一个请求与一个特定FPM组和/或流调度向量联系起来,尽管本领域普通技术人员将认识到有许多不同的技术用于把一个流或请求与一个处理器组关联,且在此的方法和系统不限制为任何特定的技术。NPM还可以利用所识别的FPM组的流调度向量来确定在所识别的FPM组之内的哪一FPM22将接收该流/请求用于处理。在所说明的流调度向量可以被利用的系统和方法中,NPM14可以被配置为根据流调度向量内容而把流引导到FPM22,这是通过按照在各自流调度向量中列出的FPM顺序、且当达到向量末端时返回到向量的开始,从而按顺序地把流指配给FPM22而进行的。本领域普通技术人员还将认识到一个流调度向量可以包括对FPM的指针、FPM识别等等,并且该方法和系统不被一个特定FPM被向量识别的技术所限制。
本领域普通技术人员将认识到图10的流程图及相关讨论只被提供用于说明而非限制。例如,虽然流程图讨论从FPM22到CPM24的资源信息传输的描述开始,但是本领域普通技术人员将认识到此处理可以不是图10处理中的最初步骤。在一个实施例中,初始的流调度向量可以被CPM24向NPM14提供,或者可选择地,NPM14可以对于不同的FPM组被配置一个初始的流调度向量。在图10中说明的处理因此能以一个确定的或不确定的方式所指示的那样被重复,而没有对于处理的一个给定“开始”或“结束”的特征。
公开的方法和系统相对现有技术的一个优点是公开了具有多个处理器的单个结构,其中,来自处理器的固有数据可以被利用来产生一个精确的流调度向量,用于在多个处理器中分布流或数据请求。
因此在上面已经描述的是一种用于在多个处理器之间分布流的方法和系统。这些流可以从诸如网络之类的一个外部源中被一个前端处理器接收,该前端处理器识别流和相关的请求,并且识别至少一个内部应用程序处理器来处理该请求/流。前端处理器利用与所识别的应用程序处理器相关的流调度向量,并且该流调度向量可以以来自应用程序处理器中的固有数据为基础,该应用程序处理器可以包括CPU利用、存储器利用、分组丢失以及队列长度或缓冲器占用。在某些实施例中,应用程序处理器可以被理解为属于一个组,其中,在一个组内的应用程序处理器可以被相同地配置。一个流调度向量可以对于不同的应用程序处理器组而被计算。在某些实施例中,一个控制处理器可收集固有的应用程序处理器数据、计算流调度向量并且把该流调度向量转送给前端处理器。
虽然所公开的方法和系统相对于它的特定实施例已经被描述,但是它并不被如此地限制。显然地,根据上面的教导,本方法和系统的许多修改和变化可能变得显而易见。例如,虽然所说明的系统把模块分成不同的组件,但是在适当之处,组件的功能性可以被合并成为单个模块而不会影响该方法和系统。虽然在此公开的方法和系统把资源信息从FPM到CPM传输以便进行流调度向量的计算,用于进一步转送给NPM,但是资源信息可以被传送给NPM用于在NPM处计算流调度向量。同样地,其他处理器可以被利用来处理固有的资源信息并且计算流调度向量。虽然在此处的公开是指一种“流调度向量”,但是这样的语言可以被理解为表示任何类型的调度的任何形式,并且调度不需要是向量、队列、阵列等等的形式,因为可以利用调度的其他形式或者用其他方式传送顺序信息而没有偏离本方法和系统的范围。
本领域技术人员可以在本方法和系统的原理和范围内对在此描述并说明来解释本方法和系统性质的细节、材料、步骤和各个部分配置进行许多附加的改变。因此,应该理解本方法和系统不被限制为在此公开的实施例,而是可以以不同于明确描述的其他方式被实践,并且要从下列权利要求中被理解,下列权利要求被解释为如法律所允许的那样宽的范围。
权利要求
1.一种用于在处理器间调度数据流的方法,包括接收一个处理请求;识别一个处理器组来处理该请求,该处理器组包括至少一个处理器;协商与所识别的处理器组相关的一个流调度,并且基于该相关的流调度来把该请求转送到所识别的处理器组中的至少一个处理器。
2.如权利要求1所述的方法,其中,接收一个处理请求包括接收来自一个网络的一个数据流。
3.如权利要求1所述的方法,其中,协商一个流调度还包括协商一个流调度向量。
4.如权利要求1所述的方法,其中,转送该请求包括在该协商的流调度中基于处理器间的顺序移动而转送该请求。
5.如权利要求4所述的方法,其中,在处理器间顺序移动包括在到达所述协商流调度结尾之后返回到所述协商的流调度的开始。
6.如权利要求1所述的方法,还包括基于来自所识别的处理器组中的固有数据来计算一个流调度。
7.如权利要求6所述的方法,其中,基于固有数据来计算一个流调度包括基于所识别的处理器组中处理器的CPU利用、存储器利用、分组丢失和队列长度或缓冲器占用来计算一个流调度。
8.如权利要求6所述的方法,其中计算一个流调度还包括接收来自所识别的处理器组中的处理器的固有数据。
9.如权利要求8所述的方法,其中,接收来自处理器中的数据还包括以规定的时间间隔接收数据。
10.如权利要求6所述的方法,其中计算一个流调度还包括过滤该固有数据。
11.如权利要求1所述的方法,还包括提供处理器组,该处理器组具有至少一个处理器并且在处理器组中的处理器包括至少一个相似的应用程序。
12.如权利要求1所述的方法,还包括提供处理器组,该处理器组具有至少一个处理器并且在处理器组中的处理器被相同地配置。
13.如权利要求12所述的方法,还包括计算处理器组的一个流调度。
14.如权利要求1所述方法,还包括提供处理器组,其中,不同的处理器组中的处理器包括至少一个不同的应用程序。
15.如权利要求1所述的方法,其中,协商一个流调度还包括提供一个初始流调度。
16.如权利要求1所述的方法,其中,识别一个处理器组包括识别与该请求相关的一个应用程序。
17.如权利要求1所述的方法,其中,识别一个处理器组包括协商一个散列表。
18.一种处理网络上的数据流的设备,包括具有至少一个处理器的至少一个流处理器模块;至少一个网络处理器模块,其具有至少一个处理器、用来接收来自该网络的数据流的至少一个接口、和指令,以便使该至少一个处理器来把数据流转发到能够处理该数据流的至少一个流处理器模块;和至少一个控制处理器模块,该至少一个控制处理器模块与至少一个流处理器模块通信,并且具有至少一个处理器和指令用于使该至少一个处理器接收来自该至少一个流处理器模块中的固有数据。
19.如权利要求18所述的设备,其中,所述至少一个流处理器模块包括至少一个存储器来存储至少一个应用程序。
20.如权利要求18所述的设备,其中,所述至少一个控制处理器模块与所述至少一个网络处理器模块通信。
21.如权利要求18所述的设备,其中,所述至少一个控制处理器模块包括用于使所述至少一个处理器来为该至少一个应用程序处理器组计算一个流调度的指令。
22.如权利要求18所述的设备,其中,所述固有数据包括CPU利用、存储器利用、分组丢失和队列长度或缓冲器占用中的至少一个。
23.如权利要求18所述的设备,其中,所述控制处理器模块还包括至少一个过滤模块。
24.如权利要求18所述的设备,其中,所述网络处理器模块还包括用于把流引导到所述流处理器模块的至少一个流调度。
25.如权利要求18所述的设备,其中,所述网络处理器模块还包括至少一个初始流调度。
26.如权利要求18所述的设备,其中,所述网络处理器模块还包括一个把所述数据请求与一个流调度关联的散列表。
27.如权利要求24所述的设备,其中,所述流调度还包括流处理器模块的一个列表。
28.一种用于在网络上调度数据流的设备,包括一个前端处理器,用于接收来自所述网络中的数据流;至少一个应用程序处理器组,用来处理所述流,至少一个流调度与所述至少一个应用程序处理器组相关;和,指令,用来使所述前端处理器识别至少一个应用程序处理器组来处理所述流、选择所识别的处理器组内的至少一个处理器、并且把所述流转送给选定的处理器。
29.如权利要求28所述的设备,其中,该至少一个流调度包括至少一个流向量。
30.如权利要求28所述的设备,还包括接收来自所述至少一个应用程序处理器组中的数据的至少一个控制处理器。
31.如权利要求30所述的设备,其中,所述控制处理器包括至少一个过滤器。
32.如权利要求28所述的设备,其中,所述至少一个应用程序处理器组包括至少一个处理器。
33.如权利要求32所述的设备,其中,所述至少一个处理器包括存储应用程序的至少一个存储器。
34.如权利要求28所述的设备,其中,所述前端处理器包括一个散列表,用于把一个数据流与至少一个应用程序处理器组关联。
35.一种用于在至少两个处理器间调度数据流的方法,包括基于来自所述至少两个处理器的历史性能数据来计算一个流调度。
36.如权利要求35所述的方法,其中,基于历史性能数据来计算一个流调度包括为所识别的处理器组中处理器的CPU利用、存储器利用、分组丢失和队列长度或缓冲器占用中的至少一个提供历史数据。
37.如权利要求35所述的方法,其中,基于历史性能数据来计算一个流调度包括为所识别的处理器组中处理器的CPU利用、存储器利用、分组丢失和队列长度或缓冲器占用中的至少一个提供目前存在的数据。
38.一种网络设备,包括至少一个流处理器模块,其具有至少一个处理器和用于存储由所述至少一个处理器执行的应用程序的至少一个存储器;至少一个网络处理器模块,其具有至少一个处理器、接收来自所述网络中的数据并且发送数据给所述网络的至少一个接口,以及指令,用来使所述至少一个处理器识别用于由流处理器模块存储器中的应用程序处理的一个数据请求,以及把所述数据请求转发给能够根据该数据请求处理该数据的一个流处理器模块;和至少一个控制处理器模块,其与所述流处理器模块和网络处理器模块通信,并且具有至少一个处理器和用于使所述至少一个处理器管理所述流处理器模块存储器中的应用程序的指令。
39.如权利要求38所述的网络设备,其中,用于使所述至少一个处理器来管理该流处理器模块存储器中的应用程序的所述控制处理器模块指令还包括使所述控制处理器模块来执行以下之一的指令下载应用程序到所述流处理器模块存储器,和从所述流处理器模块存储器中删除应用程序。
40.如权利要求38所述的网络设备,还包括与该控制处理器模块通信并且具有至少一个处理器的一个管理服务器模块。
41.如权利要求40所述的网络设备,其中,所述管理服务器模块还包括使该至少一个管理服务器处理器让该控制处理器模块执行以下之一的指令从所述管理服务器模块中下载应用程序到所述流处理器模块存储器,和从所述流处理器模块存储器中删除应用程序。
42.如权利要求38所述的网络设备,还包括耦合到所述控制处理器模块的一个本地存储器装置。
43.如权利要求38所述的网络设备,还包括耦合到所述控制处理器模块的一个远程存储器装置。
44.如权利要求38所述的网络设备,其中,所述控制处理器模块还包括指令来使所述至少一个控制处理器模块处理器来在一个管理服务器模块和所述流处理器模块之间转送数据。
45.如权利要求38所述的网络设备,还包括耦合到所述至少一个流处理器模块的至少一个储存装置。
46.如权利要求38所述的网络设备,还包括耦合到所述至少一个网络处理器模块的至少一个储存装置。
47.一种网络设备,包括至少一个流处理器模块,其具有至少一个处理器,和用于存储由所述至少一个处理器执行的应用程序的至少一个存储器;和第一网络处理器模块,其具有至少一个处理器、接收来自所述网络中的数据并且发送数据给所述网络的至少一个接口,和指令,用来使所述至少一个处理器识别用于由所述流处理器模块存储器中的应用程序处理的一个数据请求,并且把所述数据请求转发给能够根据该数据请求而处理该数据的一个流处理器模块;和第一控制处理器模块,其与所述第一网络处理器模块和流处理器模块通信并且具有至少一个处理器,和用于使所述至少一个处理器管理该流处理器模块存储器中的应用程序的指令。
48.如权利要求47所述的网络设备,还包括一个管理服务器模块,所述管理服务器模块与所述控制处理器模块通信并且具有至少一个处理器,所述至少一个处理器具有指令来管理在所述流处理器模块上的应用程序。
49.如权利要求47所述的网络设备,还包括一个第一控制平面,用来耦合所述第一网络处理器模块、所述流处理器模块和所述第一控制处理器模块。
50.如权利要求47所述的网络设备,还包括一个分离的第二控制平面,用来耦合所述第一网络处理器模块、所述流处理器模块和所述第一控制处理器模块。
51.如权利要求50所述的网络设备,还包括一个不同的第二网络处理器模块,其耦合到所述第一控制平面和所述第二控制平面,并且具有至少一个处理器、用来从该网络中接收数据并且发送数据给该网络的至少一个接口,以及指令,使该处理器识别用于由所述流处理器模块存储器中的应用程序处理的一个数据请求,并且把所述数据请求转发给能够根据所述数据请求来处理所述数据的一个流处理器模块;一个不同的第二控制处理器模块,其耦合到所述第一控制平面、所述不同的第二控制平面和所述管理服务器模块上,并且具有至少一个处理器。
52.如权利要求47所述的网络设备,还包括耦合到所述第一控制处理器模块的一个本地存储器装置。
53.如权利要求51所述的网络设备,还包括耦合到所述第一控制处理器模块和所述第二控制处理器模块的一个本地存储器装置。
54.如权利要求47所述的网络设备,还包括耦合到所述第一控制处理器模块的一个远程存储器装置。
55.如权利要求54所述的网络设备,还包括把所述远程存储器装置耦合到所述第一控制处理器模块的一个高速数据链路。
56.如权利要求47所述的网络设备,还包括耦合到所述第一控制处理器模块和所述第二控制处理器模块的一个远程存储器装置。
57.如权利要求56所述的网络设备,还包括把所述远程存储器装置耦合到所述第一控制处理器模块和所述第二控制处理器模块的一个高速数据链路。
58.如权利要求48所述的网络设备,还包括把所述管理服务器模决耦合到所述第一控制处理器模块的一个高速数据链路。
59.如权利要求51所述的网络设备,还包括一个管理服务器模块,所述管理服务器模块与所述控制处理器模块通信并且具有一个处理器,所述处理器具有指令来管理所述流处理器模块上的应用程序;和把所述管理服务器模块耦合到所述第一控制处理器模块和所述第二控制处理器模块的一个高速数据链路。
60.如权利要求48所述的网络设备,其中,所述管理服务器模块还包括一个处理器和用于使所述处理器发送和接收来自该第一控制处理器模块中的数据的指令。
61.如权利要求48所述的网络设备,其中,所述管理服务器模块是一个个人计算机。
62.如权利要求48所述的网络设备,其中,所述管理服务器模块还包括指令,用来接收来自第一网络处理器模块、所述流处理器模块和所述第一控制处理器模块中的健康和维护数据。
63.一种用于在网络中分布应用程序的方法,包括在一个网络装置处接收来自该网络的数据,识别至少一个应用程序以应用到该数据,根据该识别的应用程序来处理该数据,并且转发来自所述网络装置中的所述已处理的数据.
64.如权利要求63所述的方法,还包括把策略应用到该数据。
65.如权利要求63所述的方法,其中,识别至少一个应用程序还包括利用一个散列表来把该数据关联到至少一个应用程序。
66.如权利要求63所述的方法,其中,识别至少一个应用程序还包括把一个用户简档与该数据关联,并且,基于该用户简档选择至少一个应用程序。
67.如权利要求63所述的方法,其中,根据该识别的应用程序来处理该数据还包括把该数据引导到用于执行该识别的应用程序的至少一个处理器。
68.如权利要求67所述的方法,还包括为该识别的应用程序配置该处理器。
69.如权利要求6 3所述的方法,还包括基于该应用程序来选择至少一个处理器。
70.如权利要求63所述的方法,还包括基于处理器负载来选择至少一个处理器。
71.如权利要求63所述的方法,还包括基于把一个策略应用到该数据来选择至少一个处理器。
72.如权利要求63所述的方法,其中,识别应用到该数据的至少一个应用程序还包括识别该数据源,并且基于该数据源检索一个应用程序简档。
73.如权利要求63所述的方法,其中,转发来自该网络装置中被处理的数据还包括把该处理的数据转发到该网络。
74.如权利要求63所述的方法,其中,转发来自该网络装置中被处理的数据还包括把该处理的数据转发到一个储存装置。
75.如权利要求63所述的方法,还包括确定一个目的地来转发该处理的数据。
76.如权利要求63所述的方法,还包括在所述网络装置处把应用程序提供到处理器。
77.如权利要求76所述的方法,其中,在所述网络装置处把应用程序提供到处理器还包含从一个远程处理器和储存装置的至少一个中下载应用程序到处理器。
78.一种用于管理网络设备上应用程序的方法,包括提供至少一个流处理器模块,其具有至少一个处理器和用于存储应用程序的至少一个存储器;提供至少一个网络处理器模块,其连接到所述流处理器模块,具有至少一个处理器以及指令用于识别由所述流处理器模块上的应用程序处理的一个数据请求,并且把数据请求转送给能够处理所述数据请求的流处理器模块,以及把一个控制处理器模块连接到所述流处理器模块和所述网络处理器,所述控制处理器模块与所述流处理器模块和所述网络处理器模块通信,并且具有至少一个处理器和指令,所述指令用于使所述处理器执行下列操作之一从所述流处理器模块中删除应用程序,以及把应用程序存储到所述流处理器模块中。
79.如权利要求78所述的方法,还包括提供一个与所述控制处理器模块通信的管理服务器模块,所述管理服务器模块具有一个处理器和指令,用于控制在流处理器模块上的应用程序。
80.如权利要求78所述的方法,其中提供至少一个网络处理器模块还包括提供处理器指令用于接收来自该网络中的数据、处理来自该网络中的数据、接收来自所述流处理器模块的已处理的数据,并且把所述已处理的数据转送到一个网络目的地。
81.如权利要求78所述的方法,提供至少一个网络处理器模块还包括提供处理器指令用于把接收的数据转发到一个网络目的地。
82.如权利要求78所述的方法,其中,连接一个控制处理器模块进一步包括提供指令用于使该处理器执行对来自所述网络处理器模块的数据请求的处理。
全文摘要
一种用于在多个处理器之间分布流的方法和系统。该流可以被一个前端处理器从诸如网络的一个外部源中接收,该前端处理器识别流及其相关的请求,并且标识至少一个内部应用程序处理器来处理该请求/流。前端处理器利用与所识别的应用程序处理器相关的一个流调度向量,并且该流调度向量可以基于来自应用程序处理器的固有数据,可以包括CPU利用、存储器利用、分组丢失和队列长度或缓冲器占用。在一些实施例中,应用程序处理器能够被理解为属于一个组,其中在一个组内的应用程序处理器可以被相同地配置。一个流调度向量可以为不同的应用程序处理器组而被计算。在一些实施例中,控制处理器可以收集固有的应用程序处理器数据、计算流调度向量并且把该流调度向量转送给前端处理器。
文档编号G06F15/173GK1518694SQ01819421
公开日2004年8月4日 申请日期2001年9月25日 优先权日2000年9月25日
发明者M·阿克曼, J·弗格森, S·贾斯特斯, Y·科森斯基, M 阿克曼, 固厮, 够, 裆 申请人:横梁系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1