具有智能控制的可变规模的交换机系统的制作方法

文档序号:7743747阅读:319来源:国知局
专利名称:具有智能控制的可变规模的交换机系统的制作方法
技术领域
本发明涉及一种方法和装置,用于控制可应用于话音和视频通信系统和数据/因特网连接的互连结构。尤其,本发明针对可应用于电子交换机的具有智能控制的第一可变规模的互连交换机技术,以及具有电子控制的光学交换机。
背景技术
无可怀疑,信息在全球的传送将是本世纪世界经济的驱动力。当前在个人、团体和国家之间传送的信息量势必显著地增加。因此,重要的问题是在不久的将来,是否会有有效的和低成本的基础设施来适当地适应许多团体之间传递的大量信息。如下所宣布的本发明肯定地回答了这个问题。
除了许多通信应用之外,还存在大量产品能实现的许多其它应用,这些产品包括大规模地并联的超级计算机、并联的工作站、紧密耦合的工作站的系统、以及数据库引擎。存在包括数字信号处理器的许多视频应用。还可以在包括医学成像的成像中使用交换机系统。其它应用包括包含视频游戏和虚拟现实的娱乐。
包括话音数据和视频的信息在全世界范围内许多团体之间的传送取决于交换机,这些交换机互连在整个世界上伸展的通信高速公路(highway)。例如,通过Cisco提供的设备所表示的当前技术允许16个I/O时隙(例如,适应OC-192协议),它提供160 GBS的总带宽。通过现有Cisco交换机的选择的互连可以增加I/O时隙的数量,但是这实质上导致成本的增加,并且显著地降低了每端口的带宽。因此,虽然当前广泛地使用Cisco交换机,但是可以明白,由现有Cisco产品表示的当前技术不能够适应将在全世界的通信高速公路上流通的、正在增加的信息潮流。本发明的受让人已经创建了一系列的专利汇集,以减轻适应在不久的将来在团体之间传送大量信息的当前问题和预先考虑的问题。为了充分理解本发明的实质的先进性,需要简单地概括所引用的以前发明,这里引用所有这些发明作为参考,并且作为本发明立足所根据的标准。
在1999年11月30日批准的、Coke S.Reed的美国专利第5,996,020号(“发明#1”)中揭示了一种如此的系统“A Multiple Level Minimum Logic Network(多层最小逻辑网络)”(MLML网络),这里引用该专利的学说作为参考。发明#1描述利用数据流技术的一种网络和互连结构,所述数据流技术是基于在整个互连结构中传递的消息分组的定时和定位的。在结构中分配交换机控制使之遍及多个节点,以致避免了提供全球控制功能和复杂逻辑结构的监管控制器。MLML互连结构的操作如同“偏转”或“热土豆”系统,其中使在每个节点处的处理和存储额外开销最小。全球控制器的排除以及还有在节点处的缓冲的排除使互连结构中的控制和逻辑结构量大大地减少,全面简化了控制部件以及网络互连部件,同时改进了吞吐量和取得分组通信的较短的等待时间。
尤其,Reed专利描述一种设计,在该设计中,通过使消息分组通过附加的输出端口由选择的路由传递到互连结构中相同层处的节点,而不是保持分组直到所要求的输出端口可用,而使在每个节点处的处理和存储额外开销大大地减少。具有这种设计,排除了在每个节点处使用缓冲器。
根据Reed专利的一个方面,MLML互连结构包括多个节点和按多个层结构选择地连接这些节点的多个互连线路,在多个层中的层包括一些环的经充分地互连的集合,其中多个层结构包括在层次结构中的多个J+1层以及在每个层处的多个C·2K节点(C是一个整数,表示节点所处位置的角的数量)。发送控制信息以解决互连结构中的数据发送冲突,在所述互连结构中,每个节点是相邻外面层上的一个节点的继承人,并且是在相同层上的一个节点的立即继承人。来自立即前驱的消息数据具有优先级。把控制信息从一个层上的节点发送到相邻外面层上的节点来警告即将发生的冲突。
Reed专利比现有技术具有实质上的先进性,在所述现有技术中,根据节点处的输入端口的可用性,通过互连结构发出分组而引向分组的终端目的地。在Reed专利中的节点可能能够在每个节点的输入端口处同时接收多个分组。然而,在Reed专利的一个实施例中,保证了只有一个不受阻挡的节点的可用性,可以把输入分组发送到该不受阻挡的节点,以致实际上,在该实施例中,Reed专利的节点不可能同时接收输入分组。然而,Reed专利确实教导了,每个节点可以考虑来自分组的当前层之下的不止一层的一个层的信息,因此,减少了吞吐量,并且达到了网络中的等待时间减少。
在1998年1月20日由John D Hesse提出的美国专利申请串号09/009,703中已经示出和描述了得到最优化网络结构的第二方法。(“发明#2”题为“AScaleable Low Latency Switch for Usage in Interconnect Structure”)。这个专利申请已转让给本申请的相同的实体,为了完整性,这里也引用其学说作为参考。发明#2描述一种可变规模的短—等待时间交换机,该交换机扩展了诸如在发明#1中所教导的多层最小逻辑(MLML)互连结构的功能,供在所有类型的计算机、网络和通信系统中使用。使用发明#2中描述的可变规模的短—等待时间交换机的互连结构使用一种方法,该方法通过把分组插入网络中的新颖过程的路由选择而得到蠕虫洞。通过在多个层和列处安排成阵列的大量极简单的控制单元(节点)来构成可变规模的短—等待时间交换机。在发明#2中,不是同时把分组插入在上层(外圆柱)上的阵列中的所有未受阻挡的节点中的,而是在数个时钟周期之后在每个列(角)处插入。用这种方法,可按要求得到蠕虫洞发送。此外,在任何节点处没有分组的缓冲。这里所使用的蠕虫洞发送意味着分组有效负荷的第一部分从交换机芯片(chip)出来时,分组的尾端尚未进入芯片。
发明#2教导如何在单个电子集成电路上实施MLML互连的完整的实施例。这个单片实施例构成自行—路由选择的MLML交换机结构(switch fabric),具有通过它的数据分组的蠕虫洞发送。由大量极简单的控制单元(节点)来构成本发明的可变规模的短—等待时间交换机。把控制单元安排成阵列。在阵列中的控制单元数量是一个设计参数,一般在64到1024的范围内,通常是2的幂,其中把阵列安排成层和列(分别对应于发明#1中讨论的圆柱和角)。每个节点具有两个数据输入端口和两个数据输出端口,其中可以把节点形成更复杂的设计,诸如“成对的—节点”设计,该设计通过具有相当短等待时间的互连来移动分组。一般,列的数量的范围从4到20或更多。当每个阵列包括2J个控制单元时,层数一般为J+1。根据多个设计参数来设计可变规模的短—等待时间交换机,这些参数确定交换机的大小、性能和类型。在单个芯片上放置成百上千的控制单元,以致引脚的数量而不是网络的大小限制了交换机的有效的大小。本发明还教导如何使用许多芯片作为构造块来构造较大的系统。
本发明的交换机的某些实施例包括多播选项,其中执行一对全部或一对许多的分组的广播。使用多播选项,任何输入端口可以把分组任选地发送到许多或全部输出端口。在交换机中复制分组,每个输出端口产生一份拷贝。多播功能相关于ATM和LAN/WAN交换机以及超级计算机。按使用附加控制线路的直截了当的方式执行多播,这些附加的控制线路使集成电路逻辑增加约20%到30%。
转让给本发明的受让人的专利系列所着手的下一个问题扩展了和推广了发明#l和#2的概念。在美国专利申请串号09/693,359中进行这种推广(发明#3,题为“Multiple Path Wormhole Interconnect”)。该推广包括网络,所述网络的节点本身是发明#2中所描述类型的互连。还包括发明#2的变化,该发明#2的变化包括更充分的控制系统,所述控制系统连接比发明#1和#2的控制互连中包括的节点组更大和变化更多的节点组。本发明还描述多种方法,用于设计FIFO和有效的芯片底板计划策略。
在发明人名为John Hesse和Coke Reed的美国专利申请串号09/693,357,题为“Scaleable Worm Hole-Routing Concentrator”(“发明#4”)中揭示了转让给本发明的相同受让人的专利系列所作出的下一个进展。
已知通信或计算网络包括数个或许多设备,这些设备通过例如金属电缆或光纤电缆之类的通信媒体物理地连接。可以包括在网络中的一种类型的设备是集中器。例如,大规模、时分交换网可以包括中央交换网和连接到交换网中其它设备的输入和输出端子的一系列集中器。
一般使用集中器来支持到和从多个网络或在多个网络的部件之间的多端口连通性。集中器是连接到多个共享通信线路的一种设备,所述集中器把信息集中到少数几条线路上。
当大量负载轻的线路发送数据到少数负载较重的线路时,发生了在大量并联的计算系统中和通信系统中发生的顽固的问题。这个问题可能在当前系统中导致阻塞或添加了额外的等待时间。
发明#4提供一种集中器结构,这种结构通过避免阻塞而快速地选择路由传递数据以及改进信息流,这实际上是无限制而可变规模的,以及支持短等待时间和高吞吐量的。尤其,本发明提供一种互连结构,该互连结构通过使用控制信号的控制单元而通过使用单个比特的路由传递,实质上改进了信息集中器的操作。在一个实施例中,从来不丢弃输入结构的消息分组,以致保证输入结构的任何分组都能输出。互连结构包括在不相交路径中连接多个节点的互连线路的扁平电缆。在一个实施例中,互连线路的扁平电缆通过从源层到目的层的多个层而绕制。绕组的圈数从源层到目的层而减少。互连结构进一步包括通过互连线路形成的多个列,这些互连线路耦合在通过所述层的绕组的截面上越过扁平电缆的节点。在互连结构上传递数据的一种方法还结合高速最小逻辑方法,用于将数据分组向下路由到多个分层的层。
在发明人名为John Hesse和Coke Reed的美国专利申请串号09/693,603,题为“Scaleable Interconnect Structure for Parallel Computing andParallel Memory Access”(“发明#5”)中揭示了转让给本发明的相同受让人的专利系列所作出的下一个进展。
根据发明5,在互连结构中的数据从最高的源层流到最低的目的层。互连的大多数结构与所引用的其它专利的互连相似。但是存在重要的差异;在发明#5中,数据处理可以发生在网络本身中,以致沿路由修改了输入网络的数据,并且在网络本身中完成计算。
根据本发明,多个处理器使用数种创新技术能够并行地访问相同的数据。首先,数个远程处理器可以请求从相同数据位置进行读出,而且可以在重叠的时间周期中完成这些请求。其次,数个处理器可以访问在相同位置处的数据项,并且可以在相同数据项重叠时间上进行读出、写入或执行多个操作。第三,一个数据分组可以多播到数个位置,而且多个分组可以多播到目标位置的多个组。
在发明人名为Coke Reed和John Hesse的美国专利申请串号09/693,358,题为“Scaleable Interconnect Structure Utilizing Qualitu-of-ServiceHandling”(“发明#6”)中宣布了本发明的受让人所作出的再进一步的进展。
在发送期间,通过网络或互连结构传递的数据的重要部分需要优先级处理。
在网络或互连系统中的繁重信息或分组话务可能导致拥塞,产生导致信息延迟或丢失的问题。繁重的话务可能使系统存储信息和试图多次发送信息,导致通信会话的延长以及增加发送成本。传统上,网络或互连系统可以处理具有相同优先级的所有数据,以致在高度拥塞的时间周期期间,不良服务相似地折磨所有的通信。因此,已经认识和定义了“服务的质量”(QOS),可以应用它来说明属于特定数据类型的发送的最低要求的各种参数。可以利用QOS参数来分配系统资源,诸如带宽。QOS参数一般包括单元丢失、分组丢失、读出吞吐量、读出大小、时间延迟或等待时间、抖动、积累延迟以及突发大小的考虑。可以使用QOS参数与多媒体应用中必须立即传递数据分组的或在短时间周期之后丢弃的、诸如音频或视频流信息之类的紧急数据类型相关联。
发明#6针对一种系统和操作技术,这种系统和操作技术允许具有高优先级的信息通过具有高服务质量处理能力的网络或互连结构传递。发明#6的网络具有一种结构,该结构与所引用的其它发明的结构相似,但是具有给出高QOS消息超过低QOS消息优先级的附加的控制线路以及逻辑。此外,在一个实施例中,提供用于高QOS消息的附加数据线路。在发明#6的一些实施例中,附加条件是相对于降落到较低水平的服务质量的最低水平,分组的服务质量水平至少为一个预定的水平。预定水平取决于路由节点(routing node)的位置。该技术允许在通过互连结构的进程中,较高服务质量的分组较早地赶过较低服务质量的分组。
在发明人名为Coke Reed和John Hesse的美国专利申请串号09/692,073,题为“Scaleable Method and Apparatus for Increasing Throughput inMultiple Level Minimum Logic Networks Using a Plurality of ControlLines”(“发明#7”)中作出了再进一步的进展。
在发明#7中,MLML互连结构包括多个节点所述多个节点在分层多层结构中具有选择地耦合到节点的多条互连线路。通过在数据从源层移动到目的层的结构中、或另一方面,横向地沿多层结构的一个层的、节点的位置来确定结构中节点的层次。通过从源节点到多个指定目的节点中之一的多层结构发送数据消息(分组)。包括在所述多个节点中的每个节点具有多个输入端口和多个输出端口,每个节点能够在它自己的两个或多个输入端口处同时接收数据消息。如果节点能够通过它的输出端口中一些独立的输出端口把所述所接收的数据消息中的每一个发送到所述互连结构中的独立的节点,则每个节点能够同时接收数据消息。在互连结构中的任何节点可以接收有关节点的消息,所述这些节点比接收数据消息的节点要低不止一个层次。在发明#7中,具有比所引用的其它发明更多的控制互连线路。在节点处处理这个控制信息,并且允许比其它发明中可能的消息流更多的消息流入给定的节点。
这里引用所有上述专利和专利申请的系列作为参考,并且这些是本发明的基础。
因此,本发明的目的是利用上述发明来创建具有智能控制的、可变规模的交换机,该交换机可以与电子交换机、具有电子控制的光学交换机以及全光学的智能交换机一起使用。
本发明的又一个目的是提供利用整个系统信息的第一真实路由器控制。
本发明的另一个目的是当输出端口过载而要求丢弃消息时只丢弃互连结构中最低优先级消息。
本发明的再又一个目的是保证决不允许部分信息丢弃,并保证始终防止交换机结构过载。
本发明的另一个目的是保证可以交换所有类型的话务,包括以太网分组、因特网协议分组、ATM分组以及Sonnet帧。
本发明的再另一个目的是提供交换光学数据的所有格式的一种智能光学路由器。
本发明的又一个目的是提供处理电话会议的无差错方法,以及提供分配视频或视频点播电影的有效的和经济的方法。
本发明的再又一个和一般的目的是提供低成本和有效的、可变规模的互连交换机,其带宽远远超过现有交换机的带宽,并且可以应用于电子交换机、具有电子控制的光学交换机以及全光学的智能交换机。
发明概要存在与实施大的因特网交换机(使用现有技术的实施是不可行的)相关联两个重要的要求。第一,系统必须包括大的、有效的和可变规模的交换机结构,以及第二,必须有管理移动到结构的话务的、全球的、可变规模的方法。作为参考而引用的专利描述了高度有效的、可变规模的、可以自行路由和无阻塞的MLML交换机结构。此外,为了适应突发话务,这些交换机允许在给定时间步骤中把多个分组发送到同一系统输出端口。因为这些特征,这些单独的网络要求提供可变规模的、自行—管理的交换机结构。在具有保证系统中除了突发之外没有链路过载的、有效的全球话务控制的系统中,作为参考而引用的专利中描述的独立网络满足可变规模性和本地可管理性的目标。但是仍存在必须着手解决的问题。
在实际生活情况中,全球话务管理比最优化要差,以致在来自交换机的一条或多条输出线路过载的方式下,使延长时间的话务可以输入交换机。当多个上游源同时发送具有相同下游地址的分组和继续如此进行达相当长的时间周期时,可能发生过载情况。所产生的过载严重到不能以适当数量的本地缓冲来处理。不可能设计可以解决这种过载情况而不丢弃一些话务的任何类型的交换机。因此,在上游话务情况使这种过载发生的系统中,必须有某些本地方法公正地丢弃一部分冒犯的话务,而同时不损害其它话务。当丢弃一部分话务时,这些话务应该是具有低值的或低服务质量等级的。
在下面的描述中,术语“分组”是指数据的一个单元,诸如因特网协议(IP)分组、以太网帧、SONET帧、ATM信元、交换机—结构分段(大的帧或分组的一部分)、或可以要求通过系统发送的其它数据对象。这里揭示的交换系统控制和路由一个或多个格式的进入分组。
在本发明中,我们示出可以如何使用作为参考而引用的专利中描述的互连结构来管理范围宽广的多种交换机拓扑学,包括在现有技术中给出的纵横制交换机。此外,我们示出我们可以如何使用在作为参考而引用的专利中教导的技术来管理宽广范围的互连结构,以致可以构造可变规模的、有效的互连交换系统,所述这些系统处理服务、多播、以及集群的质量和类型。我们还示出如何管理上游话务模式可能导致本地交换系统中的拥塞的一些情况。这里所揭示的结构和方法公平和有效地管理任何类型的上游话务情况,并提供可变规模的的手段来判定如何管理每个到达的分组同时决不允许下游端口和连接中的拥塞。
此外,存在通过线路卡处理器(有时称为网络处理器)以及物理媒体附加部件执行的I/O功能。在下面的讨论中,假定通过在共同的交换和路由实践中给出的设备、部件和方法来执行分组检测、缓冲、标头和分组分析、输出地址查找、优先级分配的功能和其它典型的I/0功能。优先级可以基于交换系统100中控制的当前状态以及到达数据分组中的信息,包括服务类型、服务质量以及与紧急性和给定分组值有关的其它项目。本讨论主要涉及在已经判定到达分组(1)发送到哪里,以及(2)它的优先级、紧急性、分类和服务类型是什么之后,在到达分组上发生一些什么。
本发明是并行、控制—信息产生、分配和处理系统。这个可变规模的、流水线式控制和交换系统有效地和公平地管理多个输入数据流,并施加服务要求的分类和质量。本发明使用在所引用的发明中教导的可变规模的MLML交换机结构来控制相似类型或不同类型的数据分组交换机。另一方面来说,使用请求—处理交换机来控制数据—分组交换机第一交换机发送请求,同时第二交换机发送数据分组。
当输入处理器接收到来自上游的数据分组时,它产生请求—发送分组。这个请求分组包括关于数据分组的优先级信息。每个输出端口有管理和认可到该输出端口的所有数据流的一个请求处理器。请求处理器接收输出端口的所有请求分组。它判定是否和/或何时可以把数据分组发送到输出端口。它检查每个请求的优先级,并调度而较早地发送较高优先级或更紧急的分组。在输出端口过载期间,它拒绝低优先级或低值请求。本发明的关键特征是联合监测到达一个以上输入端口的消息。对于存在与每个输出端口相关联的独立逻辑或是否在硬件或软件中实现联合监测是不重要的。重要的是存在一种装置,该装置用于联合地考虑与输入端口A处的分组MA的到达有关的信息以及与输入端口B处的分组MB的到达有关的信息。
称之为应答交换机的第三交换机与第一交换机相似,并且从请求处理器把应答分组发送回请求输入端口。在输出处即将发生过载期间,请求处理器可以无损害地丢弃请求。这是因为在较晚时间可以容易地再产生请求。把数据分组存储在输入端口处直到准许发送到输出;在预定时间之后可以丢弃在过载期间没有接收到准许的低—优先级分组。因为请求处理器不允许输出端口过载发生,所以输出端口永远不会过载。在过载情况期间允许把较高优先级数据分组发送到输出端口。在输出端口处即将发生过载期间,低优先级分组不能防止把较高优先级分组发送到下游。
输入处理器只从信息所发送到的输出位置接收信息;请求处理器只从希望向它们发送请求的输入端口接收请求。所有这些操作都是按流水线式的、并行的方式执行的。重要地,在I/O端口的总数增加的情况下,给定输入端口处理器和给定请求处理器的处理工作负荷不增加。发送请求、应答和数据的可变规模的MLML交换机结构有利地保持相同的每—端口吞吐量,不管端口的数量。因此,这个信息产生、处理和分配系统在大小上没有任何结构上的限制。
无—拥塞交换系统包括数据交换机130和判定是否和何时允许分组输入数据交换机的、可变规模的控制系统。控制系统包括输入控制器150的组,请求交换机104、以及请求处理器160的组、应答交换机108、以及输出控制器110。在一个实施例中,对于系统的每个输出端口128,有一个输入端口控制器,IC150,以及一个请求处理器,RP 106。按与通过数据交换机的数据分组的发送重叠的方式发生控制系统中请求和响应(应答)的处理。当控制系统正在处理最近到达数据分组的请求时,数据交换机通过发送在以前周期期间接收到的正面响应的数据分组来执行它的交换功能。
通过不允许任何将会引起拥塞的话务进入数据交换机来防止数据交换机中的拥塞。一般来说,通过使用数据交换机的逻辑“模拟”来判定对于到达分组做些什么而达到这个控制。把这种数据交换机的模拟称为请求控制器120,并且包含通常与数据交换机130具有至少相同数量的端口的请求交换机结构104。请求交换机处理小的请求分组而不处理由数据交换机处理的大的数据分组。在数据分组到达输入控制器150之后,输入控制器产生请求分组,并把请求分组发送到请求交换机。请求分组包括识别发送输入控制器的一个字段以及具有优先级信息的一个字段。请求处理器106接收这些请求,请求处理器106的每一个代表数据交换机的一个输出端口。在一个实施例中,每个数据输出端口有一个请求处理器。
输入控制器的功能之一是使到达数据分组分成固定长度的分段。输入控制器150在每个分段的前面插入包含目标输出端口的地址214的标头,并把这些分段发送到数据交换机130。通过接收输出控制器110把分段重组装成分组,并且通过线路卡102的输出端口128从交换机发送出去。在适用于在给定的分组发送周期中通过线路116只可以发送一个分段的、一个简单的实施例中,输入控制器作出通过数据交换机发送单个分组的请求。请求处理器或是准许或是不允许输入控制器把它的分组发送到数据交换机。在第一方案中,请求处理器准许只发送分组的单个分段;在第二方案中,请求处理器准许发送分组的所有或许多分段。在这第二方案中,一个接一个地发送分段直到已经发送了所有的或大多数的分段。必须连续而不得中断地发送构成一个分组的分段,或按调度的方式来发送每个分段,如图3C所描述,因此允许照料到其它话务。第二方案具有输入控制器作出较少请求的优点,因此,请求交换机较不繁忙。
在请求周期期间,请求处理器106接收零个、一个或更多请求分组。接收至少一个请求分组的每个请求处理器按优先级排出等级,并准许一个或多个请求而可能拒绝其余的请求。请求处理器立即产生响应(应答),并通过第二交换机结构(最好是MLML交换机结构)(称之为应答交换机,AS 108)把它们发送回输入控制器。请求处理器发送对应于经准许的请求的认可响应。在某些实施例中,也发送拒绝响应。在另一个实施例中,请求和应答包含调度信息。应答交换机把请求处理器连接到输入控制器。然后,允许接收到认可响应的输入控制器在下一个数据周期或一些数据周期处、或在经调度的时刻,把对应的数据分组的分段或数据分组的一些分段发送到数据交换机。没有接收到认可的输入控制器不把数据分组发送到数据交换机。如此的输入控制器可以在较晚的周期提出请求,直到最终接受分组,或否则在重复拒绝请求之后输入控制器可以丢弃数据分组。当分组在它的输入缓冲器中时间较久时,输入控制器还可以提升该分组的优先级,有利地允许发送更紧急的话务。
除了把准许的某些请求通知输入处理器之外,请求处理器可以另外通知某些被拒绝请求的请求处理器。在拒绝请求的情况下可以发送另外的信息。这个关于后续的请求将是成功的可能性的信息可以包括信息有多少其它输入控制器希望发送到所请求的输出端口、其它请求的相对优先级是什么、以及有关输出端口已经繁忙得怎样的最新统计值。在一个说明性的例子中,假定请求处理器接收到五个请求,并且能够准许其中的三个请求。这个请求处理器执行的处理量是最少的它只需要排出请求的优先级等级,以及根据等级发送出三个认可响应分组以及两个拒绝响应分组。接收到认可的输入控制器在下一个分组发送时间的开始处发送它们的分段。在一个实施例中,接受拒绝的输入控制器在对被拒绝的分组提出另一个请求之前可能要等待许多周期。在其它实施例中,请求处理器可以计划将来的一个时间,供请求处理器通过数据交换机发送分段分组。
当相当数量的输入端口接收到必须通过单个输出端口发送到下游的分组时,发生了可能的过载情况。在这种情况下,输入控制器独立地和没有认识到即将来临的过载的情况下,通过请求交换机把它们的请求分组发送到相同的请求处理器。重要地,请求交换机本身不可能变成拥塞。这是因为请求交换机只把固定的、最多数量的请求发送到请求处理器,并且丢弃交换机结构中的其余的请求。另外方面来说,设计请求交换机使之只允许固定数量的请求通过它的任何输出端口。在这个数量之上的分组可以在请求交换机结构中临时循环,但是在预置时间之后丢弃,防止了其中的拥塞。因此,输入控制器可以接收到与一个给定的请求相关联的一个认可、一个拒绝或无响应。存在许多可能的响应,包括·在下一个分段发送时间处只发送分组的一个分段;·在下一个发送时间的开始处顺序发送所有的分段;·在由请求处理器规定的某个将来时间的开始处顺序发送所有的分段;·在按对于每个分段规定时间的将来发送分段;·不发送任何分段到数据交换机;·因为返回了拒绝响应或无响应返回,表示由于向该请求处理器提出太多的请求而丢失了请求,所以不发送任何分段到数据交换机,并在再提出请求之前至少等待指定的时间量。
接收到数据分组的拒绝的输入控制器把该数据分组保持在它的输入缓冲器中,并且可以在较晚的周期中再产生经拒绝的分组的另一个请求分组。即使输入控制器必须丢弃请求分组,系统的作用也是有效的和公平的。在极端过载的一个说明性的例子中,假定20个输入控制器要求在相同时刻把数据分组发送到同一输出端口。这20个输入控制器的每一个把请求分组发送到为该输出端口服务的请求处理器。如果说,请求交换机把其中的5个传递到请求处理器,并且丢弃其余的15个。15个输入控制器根本没有接收到通知,这向它们表示这个输出端口存在严重的过载情况。在请求处理器准许5个请求中的3个请求以及拒绝2个请求的情况下,接收到拒绝响应或无响应的17个输入控制器可以在较晚的请求周期中再作出请求。
“多选择”请求处理允许接收到一个或多个拒绝的输入控制器立即作出对于不同分组的一个或多个另外的请求。单个请求周期具有两个或多个子周期或阶段。作为一个例子,假定输入控制器在它的缓冲器中有5个或更多的分组。又假定系统是如此的,以致在给定的分组发送周期中,输入控制器可以通过数据交换机发送两个分组分段。请求处理器选择具有最高等级优先级的两个分组,并把两个请求发送到对应的请求处理器。又假定,请求处理器认可一个分组和否定其它分组。输入控制器立即把另一个分组的另一个请求发送到不同的请求处理器。接收这个请求的请求处理器将对于输入控制器发送分组分段到数据交换机的准许进行认可或否定。因此可以允许接收到拒绝的输入控制器发送第二选择数据分组,有利地排空它的缓冲器,否则它必须等待到下一个完整的请求周期。在请求周期的第二阶段完成这个请求—和—应答过程。即使把在第一轮中被否定的请求保存在缓冲器中,也可以把在第一和第二轮中认可的其它请求发送到数据交换机。根据话务情况和设计参数,第三阶段可以提供再另一次尝试。如此,输入控制器能够继续使数据流出它们的缓冲器。因此,在输入控制器可以在给定时刻处通过数据交换机的线路116发送N个分组分段的情况下,输入控制器可以在给定的请求周期中对请求处理器作出多达N个同时的请求。在请求中的K个请求得到准许的情况下,输入控制器可以作出通过数据交换机发送N-K个分组的不同组的第二请求。
在另外的实施例中,输入控制器向请求处理器提供一种调度,表示它将在何时可用于发送分组到数据交换机。请求处理器检查该调度,连同来自其它请求输入处理器的调度和优先级信息以及它自己的输出端口的可用性的调度。请求处理器通知输入处理器,它必须在何时把它的数据发送给交换机。这个实施例减少了控制系统的工作负荷,有利地提供了更高的总吞吐量。调度方法的另一个优点是向请求处理器提供与当前等待着向各个输出端口发送的所有输入处理器有关的更多信息,并且因此可以作出关于在何时可以向哪个输入端口发送的更多的通知判决,因此按可变规模的手段平衡了优先级、紧急性以及当前的话务情况。
注意,平均地说,在输入控制器的缓冲器中所具有的分组将比它可以同时发送到数据交换机的分组要少,因此,多选择过程是难得发生的。然而和重要地,即将发生的拥塞精确地是根据服务的优先级类型和分类以及其它QOS参数的、何时最需要这里揭示的全球控制系统来防止数据交换机中的拥塞和有效地和公平地使话务移动到下游的时间。
在以前描述的实施例中,如果拒绝分组输入到数据交换机,则输入控制器可以在较晚时间处再提出较晚时间的请求。在其它实施例中,请求处理器记住已经发送请求,以及较后当可得到机会时准许进行发送。在某些实施例中,请求处理器只发送认可响应。在其它实施例中,请求处理器应答所有的请求。在这种情况下,对于到达请求处理器处的每个请求,输入控制器得到来自请求处理器的应答分组。在拒绝分组的情况下,这个信息可以给出一个时间分段T,以致请求处理器在再提出请求之前必须等待一个时间持续期T。另一方面,请求处理器可能给出描述请求处理器处的竞争话务状态的信息。控制系统把这个信息并行地传送到所有输入控制器,而且始终是当前最新的。有利地,输入控制器能够判定经拒绝的分组如何何才可能被认可以及有多快。既不提供也不产生非必要的和不相关的信息。并行信息传送的这种方法的要求结果是每个输入控制器具有有关希望发送到公共请求处理器的所有其它输入控制器的未定话务的信息,以及只有这些输入控制器。
作为一个例子,在过载情况期间,在输入控制器的缓冲器中可能有最近已经被否定请求的四个分组。四个请求处理器的每一个已经发送了允许输入控制器估计四个分组的每一个将在较晚时间被认可的可能性的信息。输入控制器根据认可和优先级的概率来丢弃分组或再阐述它的请求,以通过系统100有效地传递话务。这里揭示的控制系统重要地向每个输入控制器提供它需要的所有信息以公平地和公正地判定把哪个话务发送到交换机。交换机永远不会拥塞,而且以短的等待时间来执行。这里揭示的控制系统可以容易地为作为参考而引用的专利中描述的交换机、以及为诸如纵横制交换机之类的交换机提供可变规模的全球控制。
输入控制器作出对于“在”输入控制器处的数据的请求。这个数据可以是已经到达的消息的一部分,同时来自消息的另外的数据还会到达,这可以包括存储在输入端口处的缓冲器中的整个消息,或这可以包括已经通过数据交换机发送的一部分消息的消息分段。在以前描述的实施例中,当输入控制器作出把数据发送到数据交换机的请求以及准许该请求时,就始终把数据发送到数据交换机。所以,例如,如果输入控制器具有到数据交换机的4条数据携带线路,则它将永远不会作出请求来使用5条线路。在另一个实施例中,输入控制器作出比它可能使用的请求更多的请求。请求处理器给予每个输入控制器一个请求的最大值。如果输入控制器接收到多个认可,它调度要发送到交换机的一个分组,并且在下一轮上,它第二次作出所有的附加请求。在这个实施例中,输出控制器有作为它们的判定根据的更多信息,因此能够作出较佳的判定。然而,在这个实施例中,每轮请求过程的成本更高。此外,在从输入控制器到数据交换机具有四条线路以及其中没有使用时间调度的系统中,每次数据发送需要作出至少四轮请求。
此外,需要用于执行多播和集群的一种装置。多播是指从一个输入端口到多个数量的输出端口发送分组。然而,接收大批量多播分组的少数输入端口可以使任何系统过载。因此,需要检测过多的多播,限制它,从而防止拥塞。作为一个说明性的例子,在故障情况中的上游设备可以发送连续系列的多播分组,其中每个分组将在下游交换机中倍增(multiplied),导致极大的拥塞。较后讨论的多播请求处理器检测过载的多播,并当需要时限制它。集群是指使连接到同一下游路径的多个输出端口的集合。一般把多个数据交换机输出端口连接到下游的高容量发送媒体,诸如光纤。通常把这组端口称为集群。不同的集群可以有不同数量的输出端口。对于送到一个集群的一个分组,可以使用作为组中的成员的任何输出端口。这里揭示支持集群的一种设备。每个集群具有数据交换机中的单个内部地址。数据交换机将把发送到该地址的分组发送到连接到集群的一个可用的输出端口,理想地地利用集群媒体的容量。
附图简述

图1A是示意方框图,示出从构造块构成的一般系统的一个例子,所述构造块包括输入处理器和缓冲器、输出处理器和缓冲器、供话务管理和控制使用的网络互连交换机以及供交换数据到目标输出端口使用的网络互连交换机。
图1B是输入控制单元的示意方框图。图1C是输出控制单元的示意方框图。图1D是示意方框图,示出系统处理器和它到交换系统和外部设备的连接。
图1E是示意方框图,示出图1A中所示类型的完整系统的一个例子,其中把请求交换机和数据交换机系统组合在单个部件中,这可以有利地简化某些应用中的处理,以及减少实施系统所需要的电路数量。
图1F是示意方框图,示出图1A中所示类型的完整系统的一个例子,其中把请求交换机、应答交换机以及数据交换机系统组合在单个部件中,这可以有利地减少某些应用中实施系统所需要的电路数量。
图2A到2L是各图示,示出在交换系统的各种部件中使用的以及用于系统的各种实施例的分组格式。
图3A和3B是各图示,示出在分组的时隙保留调度的各种部件中使用的分组格式。图3C是时隙保留的一种方法的图示,示出输入处理器如何请求在将来的指定时间周期中发送、请求处理器如何接收它们以及请求处理器如何答复请求输入处理器当它们可以发送时通知它们。
图4A是具有多播能力的输入控制单元的示意方框图。图4B是示意方框图,示出具有多播能力的请求控制器。图4C是示意方框图,示出具有多播能力的数据交换机。
图5A是示意方框图,示出图1中的系统的一个例子,具有在控制系统中的多播支持的另外的装置。图5B是示意方框图,示出在数据交换机结构中的多播支持的另外的装置。
图6A是一般定时图,示出控制和交换系统的主要部件的重叠处理。图6B是定时图的更详细的一个例子,示出控制系统部件的重叠处理。
图6C是说明多播定时方案的定时图,其中只在指定的时间周期处作出多播请求。
图6D是控制系统的一个实施例的一般定时图,所述控制系统支持用图3A、3B和3C讨论的时隙保留调度。
图7是一图示,示出电子交换机的可配置的输出连接,以有利地提供话务要求动态地与物理实施例匹配的灵活性。
图8是支持节点中的集群的电子MLML交换机结构的底层的电路图。
图9是一个设计的示意方框图,所述设计通过利用对应于单个控制交换机的多个数据交换机而提供大的带宽。
图10A是示出多个系统100的示意方框图,所述多个系统100按层连接到一组线路卡以按可变规模的方式增加系统容量和速度。
图10B说明图10A的系统的修改,其中把多个输出控制器组合到单个单元中。
图11A是具有使用在交换机之间的集中器的扭转—立方体(twisted-cube)数据交换机的示意方框图。
图11B是扭转—立方体数据交换机和包括扭转立方体的控制系统的示意方框图。
图11C是具有两级管理的扭转—立方体系统的示意方框图。
图12A是节点的示意方框图,所述节点具有来自东方的两条数据路径和来自北方的两条数据路径和到西方的两条数据路径和到南方的两条数据路径。
图12B是示意方框图,示出来自东方和到西方的多条数据路径,对于短、中、长和极长分组中的每一个具有不同的路径。
图13A是图12A所说明类型的节点的定时图。
图13B是图12B所说明类型的节点的定时图。
图14是支持不同长度分组的同时发送的一部分交换机的电路图,以及连接示出在两列和MLML互连结构的两层中的节点。
详细说明图1描绘连接到多个线路卡102的数据交换机130和控制系统100。线路卡通过输入线路134把数据发送到交换机和控制系统100,并通过线路132从交换机和控制系统100接收数据。线路卡通过多条与外界连接的输入线路126和输出线路128接收和发送外部世界的数据。互连系统100接收和发送数据。进入和离开系统100的所有分组都通过线路卡102。进入系统100的数据是按各种长度的分组的形式。LC0,LC1,...LCJ-1表示J条线路卡。
线路卡执行许多功能。除了执行涉及现有技术给出的标准传输协议的I/O功能之外,线路卡使用分组信息把物理输出端口地址204以及服务质量(QOS)206分配给分组。线路卡按图2A中示出的格式来构造分组。分组200包括四个字段BIT 202、OPA 204、QOS 206以及PAY 208。BIT字段是始终设置为1以及表示存在分组的一位字段。输出地址字段OPA 204包含目标输出的地址。在某些实施例中,目标输出数量等于线路卡的数量。在其它实施例中,数据交换机可以具有比线路卡数量更多的输出地址。QOS字段表示服务类型的质量。PAY字段包含要通过数据交换机130发送到由OPA地址指定的输出控制器110的有效负荷。一般来说,输入分组可以大大地大于PAY字段。使用分段和重组装(SAR)技术以把输入分组子分割成多个分段。在某些实施例中,所有分段具有相同的长度;在其它实施例中,分段可能具有不同的长度。把每个分段放在通过数据交换机的一系列分组发送200的PAY字段中。输出控制器执行分段的重组装,并通过线路卡把完整的分组传递到下游。通过这个方法,系统100能够适应长度变化极宽广的有效负荷。线路卡从到达分组的标头中的信息产生QOS字段。把构成QOS字段所需要的信息保持在PAY字段中。如果是这样的情况,则系统100可以在QOS字段使用起来太长时丢弃QOS字段,而线路卡下游可以从PAY字段得到服务质量的信息。
图2示出各种分组中的数据的格式化。
表1给出分组中的内容的简单概况。
表1在图2A中说明,线路卡102通过发送线路134把分组200发送到输入控制器150。IC0,IC1,...ICJ-1表示输入控制器。在这个实施例中,设置输入控制器的数量等于线路卡的数量。在某些实施例中,一个输入控制器可以处理多个线路卡。
输入控制器和输出控制器执行的功能列表提供整个系统的工作概况。输入控制器150执行至少下列六个功能1.它们把长分组分裂成数据交换机可以方便地处理的分段长度;2.它们产生它们可以使用的控制信息,还产生请求处理器要使用的控制信息;3.它们缓冲进入分组;4.它们对请求处理器作出允许通过数据交换机发送分组的请求;5.它们接收和处理来自请求处理器的应答;以及6.它们通过数据交换机发送分组。
输出控制器110执行下列三个功能1.它们接收和缓冲来自数据交换机的分组或分段;2.它们把从数据交换机接收到的分段重组装成完整的数据分组以发送到线路卡;以及3.它们把经重组装的分组发送到线路卡。
控制系统是由输入控制器150、请求控制器120以及输出控制器110构成的。请求控制器120是由请求交换机104、多个请求处理器106以及应答交换机108构成的。控制系统确定是否和何时把分组或分段发送到数据交换机。数据交换机结构130通过选择路由把分段从输入控制器150传递到输出控制器110。控制和交换结构以及控制方法的详细说明如下。
输入控制器不是立即通过数据交换机把线路116上的进入分组P发送到P的标头中指定的输出端口的。这是因为从数据交换机到导致P的目标的输出端口的路径118上的最大带宽以及多个输入可能有同时发送到同一端口的一些分组。此外,存在从输入控制器150到数据交换机130的路径116上的最大带宽,在输出控制器110处的最大缓冲器空间以及从输出控制器到线路卡的最大数据速率。不得在会导致任何这些部件过载的时刻把分组P发送到数据交换机。设计系统使必须丢弃的分组数量为最小。然而,在这里讨论的实施例中,如果有时需要丢弃分组,也是由输入控制器在输入端处而不是在输出端处进行的。此外,按系统的方式来丢弃数据,仔细地注意服务质量(QOS)值和其它优先级值。当丢弃分组的一个分段时,丢弃了整个分组。因此,具有要发送的分组的每个输入控制器需要请求准许发送,并且请求处理器给予这个准许。
当分组P 200通过线路134进入输入控制器时,输入控制器150执行许多操作。参考图1B,该图为示例输入控制器和输出控制器的内部部件的方框图。按图2A中说明的分组200形式的数据从线路卡进入输入控制器处理器160。PAY字段208包含IP分组的、以太网帧或由系统接收其它数据对象。输入控制器响应到达分组P而产生内部使用的分组,并把它们存储在缓冲器162、164和166中。存在许多方法来存储与输入分组P相关联的数据。在本实施例中提供的一种方法是把与P相关联的数据存储在三个存储区域中1.用来存储输入分段232以及相关联的信息的分组缓冲器162;2.请求缓冲器164;以及3.包含KEY 210的密钥缓冲器166。
在准备数据和把数据存储在KEY缓冲器166中时,输入控制器处理与到达分组P相关联的路由和控制信息。这是输入控制器在判定哪个请求发送到请求控制器时使用的KEY 210信息。把按图2B中给出形式的数据称为KEY 210,并且把它存储在KEY地址处的密钥缓冲器166中。BIT字段202是设置为1以表示分组存在的一位长字段。IPD字段214包含输入控制器160在判定对请求控制器120作出什么请求中使用的控制信息数据。IPD字段可以包含QOS字段206作为子字段。此外,IPD字段可以包含表示给定分组已经在缓冲器中有多久以及输入缓冲器有多满的数据。IPD可以包含输出端口地址和输入控制器处理器在判定提出什么请求时使用的其它信息。PBA字段216是分组缓冲器地址字段,并包含与消息缓冲器162中的分组P相关联的数据220的开始的物理位置。RBA字段218是请求缓冲器地址字段,它给出与请求缓冲器164中的分组P相关联的数据的地址。把存储在缓冲器166中的地址“密钥地址”处的数据称为KEY,因为这是输入控制器处理器在作出关于向请求控制器120提出哪些请求的所有它的判定中使用的数据。事实上,关于要把哪些请求发送到请求控制器的判定是基于IPD字段的内容的。建议把KEY保存在输入控制单元150的高速的高速缓冲存储器中。
到达因特网协议(IP)分组和以太网帧具有较宽的长度范围。使用分段和重组装(SAR)过程把较大的分组和帧分裂成较小的分段以进行更有效的处理。在准备和存储与分组缓冲器162中的分组P相关联的数据时,输入控制器处理器160首先使分组200中的PAY字段208分裂成预定最大长度的分段。在某些实施例中,诸如在图12A中说明的那些,在系统中使用一个分段长度。在其它实施例中,诸如在图12B中说明的那些,存在多个分段长度。多个分段长度系统要求稍不同于图2中说明的一个系统的数据结构。具有本技术领域普通技术的人员能够对数据结构作出明显的改变来适应多个长度。把根据图2C格式化的分组数据存储在分组缓冲器162中的位置PBA 216处。OPA字段204包含分组P的数据交换机的目标输出端口的地址。NS字段226表示包含P的有效负荷PAY208所需要的分段数量232。
KA字段228表示分组P的KEY的地址;IPA字段表示输入端口地址。KA字段与IPA字段一起形成分组P的唯一的识别符。把PAY字段分裂成NS分段。在说明中,把PAY字段的第一位存储在堆栈的顶部,并且把紧接在后的第一分段直接存储在第一位的下面;继续进行这个过程直到最后位到达和存储在堆栈的底部。由于有效负荷可能不是分段长度的整数倍,所以在堆栈上的底部输入可能比分段长度较短。
请求分组240具有图2D中说明的格式。与分组P相关联,输入控制器处理器160把请求分组存储在请求缓冲器164中请求缓冲器地址RBA处。注意,RBA 218也是KEY 210中的字段。BIT字段包括在缓冲器位置处存在数据时始终设置为1的单个位。把作为分组P的目标的输出端口地址存储在输出端口地址字段OPA 204中。请求处理器数据字段RPD 246是请求处理器106在判定是否允许把分组P发送到数据交换机时所使用的信息。RPD字段可以包含QOS字段206作为子字段。它可以包含其它信息,诸如·在存储分组P的输入端口处的缓冲器有多满;·关于已经存储了分组P有多久的信息;·在分组P中有多少分段?·多播信息;·涉及输入控制器可以在何时发送分段的调度信息;以及·对于请求处理器作出判定有帮助的附加信息,所述判定是关于是否对到数据交换机130的分组P的发送给予准许。
字段IPA 230和KA 228唯一地识别分组,并且由请求处理器按应答分组250的格式返回,如在图2E中所说明。
在图1A中,从每个输入控制器IC 150到请求控制器120存在多条数据线路122,以及从每个输入控制器到数据交换机130也存在多条数据线路116。还注意,从请求控制器120到每个输入控制器存在多条数据线路124,以及从数据交换机到每个输出控制器110存在多条数据线路118。在一个实施例中,对于给定的输出端口118,数据交换机的不多于一个的输入端口116具有一个分组,数据交换机DS 130可以是简单的纵横制交换机,而图1A的控制系统100能够可以按可变规模的方式来控制它。
请求在下一个分组发送时刻进行发送输入控制器150可以在请求时刻T0,T1,...,Tmax作出请求,以在将来的分组发送时刻Tmsg把数据发送到交换机130。在时刻Tn+1发送的请求是基于尚未对其作出请求的、最近到达的分组,以及基于对在时刻T0,T1,...,Tn发送的请求的响应从请求控制器接收到的认可和拒绝。要求准许把分组发送到数据交换机的每个输入控制器ICn在时间T0处开始的时间间隔中提出最多Rmax个请求。根据这些请求的响应,ICn在时间T1处开始的时间间隔中提出最多Rmax个附加请求。输入控制器重复这个过程直到已经作出了所有可能的请求或完成了请求周期Tmax。在时刻Tmsg,输入控制器开始把请求处理器认可的那些分组发送到数据交换机。当把这些分组发送到数据交换机时,在T0+Tmsg,T1+Tmsg,...,Tmax+Tmsg,开始新的请求周期。
在本说明中,第n个分组发送周期在与第(n+1)个请求周期的第一轮的相同时刻处开始。在其它实施例中,第n个分组发送周期可以在第(n+1)个请求周期的第一轮之前或之后开始。
在时刻T0,存在许多输入控制器150,在它们的缓冲器中具有正在等待通过数据交换机130发送到输出控制器处理器170的间隙的一个或多个分组P。每个如此的输入控制器处理器160选择它认为最希望请求通过数据交换机发送的分组。这个判定是基于KEY中的IPD值214。把在时刻T0通过输入控制器处理器发送的许多请求分组限制到最大值Rmax。可以同时或串行地作出这些请求,或可以按串行的方式发送请求的组。可以对于发明#1、#2和#3中所教导的类型的交换机作出J个以上的请求,通过在不同的列(或在发明#1的术语中的角)中插入请求而在上层(top level)具有J行。回忆只有多个分组都可以适合于一给定行时才可以同时插入到多个列中。在本实例中这是可行的,因为请求分组是相当地短。另一方面,可以把请求同时插入发明#4中所教导类型的集中器中。另一种选择是使第二分组直接跟随第一分组而把分组顺序地插入单个列(角)中。还可能用这些类型的MLML互连网络。在再另一个实施例中,交换机RS和可能的交换机AS和DS包含比存在的线路卡数量更多的输入端口数量。在某些情况中还要求在请求交换机中每行的输出列的数量大于数据交换机中每行的输出端口的数量。此外,在这些交换机是引用的专利所教导类型的情况中,交换机可以容易地在它们的最上层包含比线路卡更多的行。使用这些技术中之一,在从T0到T0+d1(其中d是正值)的时间周期中把分组插入请求交换机中。请求处理器考虑从时间T0到T0+d2(其中d2大于d1)接收到的所有请求。然后把这些请求的应答发送回输入控制器。根据这些应答,输入控制器可以在时刻T1(其中T1是大于T0+d2的一个时间)发送另一轮的请求。请求处理器可以发送认可或拒绝作为应答。可以是这样的情况,在从T0到T0+d1的时间周期中发送的某些请求在时间T0+d2时没有到达请求处理器。请求处理器没有响应这些请求。这种无响应把信息提供给输入控制器,因为无响应的原因是请求交换机中的拥塞。可以在时间Tmsg之前另一个请求发送时间Tn处或Tmsg之后的另一个时间处提出这些请求。参考图6A和6B更详细地讨论定时。
请求处理器检查它们已经接收到的所有请求。对于所有的或一部分的请求,请求处理器准许输入控制器把与请求相关联的分组发送到输出控制器。可以拒绝较低优先级请求输入到数据交换机中。除了在请求分组数据字段RPD中的信息之外,请求处理器还具有关于分组输出缓冲器172的状态的信息。请求处理器通过从这些缓冲器接收信息而得到分组输出缓冲器的状态的消息。另一方面,请求处理器通过它们把什么放入这些缓冲器中以及线路卡能够以多快来排空这些缓冲器的知识而对这个状态保持跟踪。在一个实施例中,存在与每个输出控制器相关联的一个请求处理器。在其它实施例中,一个请求处理器可以与多个输出端口相关联。在另外的实施例中,使多个请求处理器位于同一集成电路中;在再另外的实施例中,可以使整个请求控制器120位于一个或数个集成电路中,合乎要求地节约空间,封装成本和功率。在另一个实施例中,可以使整个控制系统和数据交换机位于单个芯片上。
请求处理器的判定可以基于许多因素,包括如下·分组输出缓冲器的状态;·输入控制器设置的单值优先级字段;·从数据交换机到输出控制器的带宽;
·应答交换机AS的带宽;以及·在请求分组的请求处理器数据字段RPD 246中的信息。
请求处理器具有它们作出关于通过数据交换机发送什么数据的正确判定所需要的信息。因此,请求处理器能够调整到数据交换机和到输出控制器、到线路卡以及最后到输出线路128到下游连接的数据流。重要地,一旦话务已经离开输入控制器,话务就流过交换机结构而无拥塞。如果需要丢弃任何数据,则丢弃低优先级数据,并且在输入控制器处丢弃,有利地绝对不进入会导致拥塞以及可能危害其它话务流的交换机结构。
分组按它们输入系统时的相同序列按要求退出系统100,始终没有数据离开序列。当把数据分组发送到数据交换机时,允许所有数据在发送新数据之前离开该交换机。如此,分段始终按顺序到达输出控制器。可以按许多方式来实现这点,包括1.请求处理器在它的操作中是足够地保守的,以致它肯定所有数据在固定的时间量中通过数据交换机;2.请求处理器可以等待在允许附加数据输入数据交换机之前所有数据已经清除数据交换机的一个信号;3.分段包含表示重组装过程使用的分段数量的一个标记字段;4.数据交换机是纵横制交换机,它把输入控制器直接连接到输出控制器;或5.可以有利地使用在发明#3中揭示的阶梯一步进(stair-step)MLML互连型数据交换机,因为它比纵横制使用较少的门,以及当正确地控制时,分组永远不会不按顺序而从它退出。
在上述情况(1)和(2)中,使用具有不大于固定数N的、目标针对给定输出端口的插入分组的、给定大小的交换机,有可能预测分组可以保存在该交换机中的时间T的上限。因此,请求处理器通过在时间单元T中准许每输出端口不大于N个请求就可以保证不丢失分组。
在图1A中示出的实施例中,从数据交换机到输出控制器存在多条线路。在一个实施例中,请求处理器可以把给定线路分配给分组以致分组的所有分段在同一线路上进入输出控制器。在这种情况下,来自请求处理器的应答包含用来修改分组分段标头中的OPA字段的附加信息。此外,请求处理器可以给予输出控制器发送给定分组的所有分段的准许而无中断。这具有优点
·在产生单个请求和发送数据分组的所有分段的情况中,减少输入控制器的工作负荷;·允许输入控制器调度一个操作中的多个分段以及对其进行处置;以及·存在较少要请求处理器处理的请求,允许它有更多时间来完成它的分析和产生应答分组。
某些输出控制器输入端口的分配要求在数据分组的标头中使用附加地址位。处理附加地址位的一个方便的方法是向数据交换机提供附加输入端口以及附加输出端口。使用附加输出端口来把数据放到分组输出缓冲器的正确存储器中,并且可以使用附加输入端口来处理到数据交换机的附加输入线路。另一方面,在分组离开数据交换机之后,可以消除附加地址位。
应该注意,在使用把输入和输出控制器连接到其余系统的多条路径的一个实施例的情况中,所有三个交换机,RS 104、AS 108和DS 130,都可以把多个分组传送到同一地址。在所有三个位置处,都必须使用具有处理这种情况的能力的交换机。除了增加带宽的明显的优点之外,这个实施例还允许请求处理器作出更多的智能判定,由于请求处理器使它们的判定基于较大的数据集。在第二实施例中,请求处理器可以有利地从具有相当充满的缓冲器的输入控制器ICn到单个输出控制器OCm发送多个紧急分组,同时拒绝来自其它具有较不紧急话务的输入控制器的请求。
还是参考图1B、1C和6A,在系统100的操作中,事件发生在给定时间间隔处。在时刻T0,存在许多输入控制器处理器160,它们在它们的缓冲器中具有已经准备要通过数据交换机130发送到输出控制处理器170的一个或多个分组P。具有要发送到数据交换机的分组而未经调度的每个输入控制器处理器选择一个或多个分组,它请求准许它把所选择的一个或多个分组通过数据交换机发送到它的目的输出端口。准许给定时刻的请求的这个判定一般是基于KEY中的IPD值214的。在时刻T0,包含一个或多个如此的数据分组的每个输入控制器处理器160把请求分组发送到请求控制器120,请求准许把数据分组发送到数据交换机。根据请求分组的IPD字段来认可或否定请求。IPD字段可以包括或包含“优先级”值。在这个优先级值是单个数的情况下,请求处理器仅有的任务是比较这些数。这个优先级值是分组的QOS数的函数。但是既然分组的QOS数是随时间而固定的,优先级值可以根据许多因素而随时间改变,这些因素包括消息已经在输入端口的缓冲器中有多久了。把与所选择的数据分组相关联的请求分组240发送到请求控制器120。这些请求中的每一个在同一时刻到达请求交换机104处。请求交换机使用它们的OPA字段204把分组240通过选择路由传送到与分组的目标输出端口相关联的请求处理器106。请求处理器,RP106,排列和产生通过应答交换机108发送回各个输入控制器的应答分组250。
在一般情况中,可以使数个请求以同一请求处理器106为目标。必要的是请求交换机104可以把多个分组传送到单个目标请求处理器106。在作为参考而引用的专利中揭示的MLML网络能够满足这个要求。若这个特性与MLML网络是自行选择路由和无阻塞的事实一起,则它们是对于要在这种应用中使用的交换机的清楚的选择。在请求分组240通过请求交换机传送的情况下,除去了OPA字段;到达请求处理器处的分组没有这个字段。此刻不需要输出字段,因为分组的位置作了暗示。每个请求处理器检查它接收到的每个请求的RPD字段246中的数据,并且选择允许在规定时刻发送到数据交换机130的一个或多个分组。请求分组240包含发送请求的输入控制器的输入端口地址230。然后请求处理器产生对于每个请求的应答分组250,并把它发送回输入处理器。通过这种手段,输入控制器接收每个经准许的请求的应答。输入控制器始终承诺它所接收到的应答。另一方面来说,如果准许了请求,则把对应的数据分组发送到数据交换机;如果没有准许,则不发送数据分组。从请求处理器发送到输入控制器的应答分组250使用图2E中给出的格式。如果没有准许请求,则请求处理器可以把负面的应答发送到输入控制器。这个信息可以包括所要求的输出端口的繁忙状态,并且可以包括输入控制器可以用来估计后续请求将是成功的可能性的信息。这个信息可以包括所发送的其它请求的数量、它们的优先级以及最近输出端口已经有多忙。该信息还可以包括所建议的、再提出请求的时间。
在时刻T1,假定在输入处理器ICn的缓冲器中具有在T0轮中既未被认可又未被拒绝的一个分组,以及又假定,除了在T0轮中认可的分组之外,ICn还能够在时刻Tmsg发送附加的数据分组。然后在时刻T1,ICn将作出在时刻Tmsg通过数据交换机发送附加分组的请求。再次,请求处理器106从接收到的所有请求中挑选允许发送的分组。
在请求周期期间,输入控制器处理器160使用KEY缓冲器中的IPD位来作出它们的判定,而请求处理器106使用RPD位来作出它们的选择。在本说明的较后部分给出与这是如何进行的有关的更多说明。
在时刻T0,T1,T3,...,Tmax已经完成请求周期之后,把每个经认可的分组发送到数据交换机。参考图2C,当输入控制器把获胜分组的第一分段发送到数据交换机时,从有效负荷分段的堆栈移去顶部的有效负荷分段232(具有最小下标的分段)。复制非有效负荷字段,202、204、226、228和230,并放在移去的有效负荷分段232的前面以形成分组260,该分组260具有图2F给出的格式。输入控制器处理器对于已经发送了哪些有效负荷分段和保留那些有效负荷分段保持跟踪。这可以通过递减NS字段226来完成。当发送出最后的分段时,可以从三个输入控制器缓冲器162、164和166移去与分组相关联的所有数据。数据交换机的每个输入端口接收一个分段分组260或没有接收分段分组260,因为在准许第一请求之后没有输入控制器处理器发送第二请求。数据交换机的每个输出端口没有接收到分组或接收到一个分组,因为没有输出控制器处理器准许得比输出端口可以处理的更多。当分段分组退出数据交换机130时,把它们发送到将它们重组装成标准格式的输出控制器110。把经重组装的分组发送到线路卡进行下游发送。
由于控制系统保证没有输入端口或输出端口接收多个数据分段,所以纵横制交换机是可以接受而用作为数据交换机的。因此,这个简单的实施例展示在具有繁忙话务和支持服务的质量和类型的互连结构中管理大纵横制的一种有效的方法。纵横制的一个优点是在已经设置它的内部交换机之后,通过它的等待时间有效地成为零。重要地,纵横制的不希望的特性是内部节点交换机数量增长为N2,其中N是端口数量。对于按因特网话务的高速度操作的大纵横制,使用现有技术方法不可能产生N2个设置。假定通过行来表示纵横制的输入以及通过连接列来表示输出端口。通过把分段分组260中的OPA字段204简单解译为列地址(在分组输入纵横制的行处提供该列地址),上面揭示的控制系统120容易地产生控制设置。熟悉本技术领域的人员可以容易地把这个1到N转换(按术语为多路复用器)应用于纵横制输入。当来自数据交换机的数据分组到达目标输出控制器110时,输出控制处理器170可以开始从分段重组装分组。这是可能的,因为NS字段226给出所接收的分段的数量以及KA字段228与IPA地址一起形成唯一的分组识别符。注意,在存在N个线路卡的情况下,可能要求构造大于N×N的纵横制。如此,可以有多个输入116和多个输出118。设计控制系统来控制这种类型的、大于最小大小的纵横制交换机。
在可以使用许多交换机结构作为数据交换机时,在较佳实施例中,使用作为参考而引用的专利中描述类型的MLML互连网络作为数据交换机。这是因为
·对于到数据交换机的N个输入,在交换机中的节点数量为N·log(N)的数量级;·多个输入可以发送分组到同一输出端口,以及MLML交换机构将在内部缓冲它们;·网络是自行路由选择和无阻塞的;·等待时间是短的;以及·若由控制系统管理发送到给定输出的分组数量,则已知通过系统的最长时间。
在一个实施例中,请求处理器106可以有利地对包括要发送的多个分段的整个分组给予准许而无需对每个分段请求独立的准许。这个方案具有使请求处理器的工作负荷降低以及由于接收所有分段而无需中断所以分组的重组装是较简单的优点。事实上,在这个方案中,输入控制器150可以在来自线路卡102的整个分组都已经到达之前就开始发送分段。相似地,输出控制器110可以在所有分段都已经到达输出控制器之前就开始把分组发送到线路卡。因此,使一部分分组在整个分组都已经输入交换机输入线路之前就发送出交换机。在另一个方案中,可以对于每个分组分段请求独立的准许。这个方案的一个优点是紧急分组可以超过不紧急分组。
分组时隙保留分组时隙保留是一种管理技术,这种技术是在以前部分中教导的分组调度方法的变型。在请求时刻T0,T1,...,Tmax,输入控制器150可以作出在将来分组一发送时间列表中的任何一个时刻把分组发送到数据交换机的请求。在时刻Tn+1发送的请求是基于最近到达的、尚未对其作出请求的分组的,并且是基于来自请求处理器的、响应于在时刻T0,T1,...,Tmax发送的请求的认可和拒绝的。希望准许发送分组到数据交换机的每个输入控制器ICn在时刻T0开始的时间间隔中提出最多为Rmax个请求。根据对于这些请求的响应,ICn提出在时刻T1开始的时间间隔中提出最多为Rmax个附加请求。通过输入控制器重复这个过程直到已经作出所有可能的请求或已经完成了请求周期Tmax。当请求周期T0,T1,...,Tmax全部完成时,作出请求的过程在时刻T0+Tmax,T1+Tmax,...,Tmax+Tmax开始请求周期。
当输入控制器ICn请求通过数据交换机发送分组时,ICn发送一个时间列表,该时间列表可用于把分组P注入数据交换机以致可以把分组的所有分段顺序地发送到数据交换机。在分组P具有k个分段的情况中,ICn列出开始时刻T,以致有可能按时间序列T,T+1,...,T+k-1注入分组的分段。请求处理器认可所请求的时间中的一个时间,或全部拒绝。如上所述,所有经准许的请求导致数据发送。在T0到T0+d时间间隔中所有时间都被拒绝的情况下,ICn可以在较晚时间作出一个请求,以在不同时间组中的任何时刻发送P。当发送分组P的经认可的时刻到来时,ICn将开始通过数据交换机发送P的分段。
这个方法比前面部分中教导的方法的优越性在于通过请求交换机发送较少的请求。缺点为1)为了处理请求,请求处理器必须更复杂;以及2)存在不能够认可“所有或没有”请求的相当大的可能性。
分段时隙保留分段时隙保留是一种管理技术,这种技术是在以前部分中教导的方法的变型。在请求时刻T0,T1,...,Tmax,输入控制器150可以作出请求,以调度到数据交换机的分组发送。然而,这个方法与分组时隙保留方法的不同之处在于不需要一个分段紧接着另一个分段来发送消息。在一个实施例中,输入控制器向请求处理器提供表示何时能够把分组发送到数据交换机的多个时间的信息。每个输入控制器保持一个时隙可用缓冲器,TSA 168,它表示它被调度何时在将来时隙中发送分段。还参考图6A,每个TSA位表示可以把分段发送到数据交换机的一个时间周期620,其中TSA的第一位表示在当前时间之后的下一个时间周期。在另一个实施例中,每个输入控制器对于每个必须进入数据交换机的每条路径116具有一个TSA缓冲器。
把TSA缓冲器内容以及包括优先级的其它信息一起发送到请求处理器。请求处理器使用这个时间可用信息来判定输入控制器必须在何时把分组发送到数据交换机。图3A和3B是包含一个TSA字段的请求和应答分组的视图。请求分组310包括与请求分组240的字段相同的字段,并且还另外包括请求时隙可用字段,RTSA 312。应答分组320包括与应答分组250的字段相同的字段,并且还另外包括应答时隙字段,ATSA 322。ATSA 322的每一位表示可以把分组发送到数据交换机的一个时间周期620,其中ATSA的第一位表示在当前时间之后的下一个时间周期。
图3C是示出时隙保留处理的一个例子的视图。在该例子中只考虑一个分段。请求处理器包含TSA缓冲器332,它是用于请求处理器的可用性调度。RTSA缓冲器330是从输入控制器接收到的请求时间。示出时刻t0(它是当前时间周期的请求处理的开始时刻),以及时刻t0’(它是请求处理的完成时刻)的缓冲器内容。在时刻t0,RPr接收来自两个输入控制器,ICi和ICj,的两个请求分组310。每个RTSA字段包含表示时间周期t1到t11的一组一位子字段302。值1表示各个输入控制器可以在各个时间周期处发送它的分组;值0表示它不能够发送。RTSA请求302表示ICi可以在时刻t1、t3、t5、t6、t10和t11发送一个分段。还示出来自ICj的RTSA字段的内容。把时隙可用缓冲器,TSA 332,保持在请求处理器中。时刻t1的TSA子字段是0,表示输出端口在该时刻是繁忙的。注意,输出端口可以在时刻t2、t4、t6、t9和t11认可分段。
请求处理器检查这些缓冲器以及在请求中的优先级信息,并判定何时可以满足每个请求。在图3C中用圆圈圈出本讨论中感兴趣的子字段。时刻t2是准许在数据交换机中发送分组的最早时间,在TSA 332中由1来表示。在子字段t2中两个请求都具有0,因此,没有输入控制器可以得到其优点。相似地,没有输入控制器可以使用时刻t4。时刻t6 334是输出端口可供使用的最早时间,并且可用于输入控制器。两个输入控制器都可以在时刻t6发送,并且请求处理器根据优先级选择作为得胜者的ICi。它产生在时刻t6的子字段306中具有1而在其它位置都是0的一个应答时隙字段340。使这个字段包括在发送回ICi的应答字段中。请求处理器把在它的TSA缓冲器中的子字段t6 334重置为0,表示在该时刻没有其它请求可以发送。请求处理器检查来自ICj的请求,并判定时刻t9是满足来自ICj的请求的最早时间。它产生发送到ICj的响应分组,并且把它的TSA缓冲器中的位t9重置为0。
当ICi接收到应答分组时,它检查ATSA字段340以判定何时把数据分段发送到数据交换机。在本例子中是时刻t6。如果它接收到全零,则在子字段覆盖的时间周期期间不能够发送分组。它还更新它的缓冲器,通过(1)把它的t6子字段重置为0;以及(2)把所有子字段向左移位一个位置。前面的步骤意味着时刻t6被调度,而后面的步骤更新在下一个时间周期,t1,期间使用的缓冲器。相似地,每个请求缓冲器使所有子字段向左移位一个位置,以便准备在时刻t1接收请求。
在本部分教导的实施例中有利地使用分段和重组装(SAR)。当长分组到达时,把它分成大量分段,数量取决于长度。请求分组310包括表示分段数量的字段NS 226。请求处理器使用这个信息以及TSA信息来调度何时发送各个分段。重要地,对于所有分段使用单个请求和应答。假定把分组分成五个分段。请求处理器检查ATSA字段与它自己的TSA缓冲器,并选择何时发送分段的五个时间周期。在这种情况下,ATSA包含五个1。五个时间周期不必定是连续的。这在对于不同长度和优先级的分组的时隙分配的解决方案中提供了相当大的附加自由度。假定平均地说每个到达的IP或以太网分组存在10个分段。因此必须满足通过数据交换机发送的每10个分段的请求。因此,请求和应答周期可以比数据交换机周期大大约8或10倍,有利地为请求处理器完成它的处理提供了较大的时间量,并且允许堆叠(并行)的数据交换机结构按位并行的方式来转移数据分段。
在一个实施例中,当要适应紧急话务时,请求处理器保留不久将来的某些时间周期用于紧急话务。假定话务包括高比例的不紧急大分组(分成许多分段),以及小部分较短的但是紧急的话音分组。少数大分组可能通常占据输出端口达相当大的时间量。在这个实施例中,即使存在可用的立即时隙,也不是总是调度涉及大分组的请求进行立即或连续的发送的。有利地,始终保留某些时间间隔处的空时隙以防紧急话务到达。
使用时隙可用性信息的一个实施例有利地减少控制系统的工作负荷,提供较高的总吞吐量。这个方法的另一个优点是向请求处理器提供更多的信息,包括对于当前希望发送到各个输出端口的每个输入处理器电路的时间可用性信息。因此,请求处理器可以作出关于哪个时刻可以在哪个端口发送的更多的通知的判定,因此按交换系统控制的可变规模的的手段来平衡了优先级、紧急性以及当前话务情况。
过度请求实施例在以前讨论的实施例中,输入控制器只有当它肯定如果认可了请求它就可以发送分组时才提出请求。此外,输入控制器通过总是在允许的时刻发送分组或分段而承诺认可。因此请求处理器确切地知道将有多少话务会发送到输出端口。在另一个实施例中,允许输入控制器提出比它们能够提供的数据分组还要多的请求。以致当存在从输入控制器到数据交换机的N条线路116时,即使在M大于N的情况中,输入控制器也可以作出通过系统发送M个分组的请求。在这个实施例中,每个数据发送周期可能有多个请求周期。当输入控制器接收来自请求处理器的多个认可通知时,它选择而挑选它将通过发送相应的分组或分段而承诺的多达N个认可。在比输入控制器将承诺的认可要多一个或多个的情况下,输入控制器将通知请求处理器将承诺哪些认可以及不承诺哪些认可。在下一个请求周期中,接收到拒绝的输入控制器发送第一周期中没有认可的分组的第二轮请求。请求处理器发送回许多认可,并且每个请求处理器可以选择它将履行的附加的认可。这个过程继续进行达许多请求周期。
在这些步骤都完成之后,请求处理器已经准许了仅仅可以提交给数据交换机的不大于最大数量的分组。这个实施例具有的优点是请求处理器具有更多信息,它们可以根据这些信息作它们的判定,因此,如果请求处理器使用正确的算法,则它们可以给出更多的通知响应。缺点是该方法可能要求更多的处理,并且必须在不多于一个数据承载周期中执行多个请求周期。
系统处理器参考图1D,配置系统处理器140,把数据发送到线路卡102、输入控制器150、输出控制器110以及请求处理器106和从线路卡102、输入控制器150、输出控制器110以及请求处理器106接收数据。系统处理器与系统外面的外部设备190(诸如执行和管理系统)进行通信。保留数据交换机的几个I/O端口142和144、以及控制系统的几个I/O端口146和148,供系统处理器使用。系统处理器可以使用从输入控制器150和从请求处理器106接收到的数据,把本地情况通知全球管理系统,并且响应全球管理系统的请求。通过路径152连接输入控制器和输出控制器,该路径作为它们相互通信的一种手段。此外,连接152允许系统处理器把分组发送到给定输入控制器150,这是通过数据交换机把分组发送到所连接的输出控制器。后者把分组转发到所连接的输入控制器。相似地,连接152允许输出控制器把分组发送到系统处理器,通过首先发送分组通过所连接的输入控制器。系统处理器可以通过I/O连接146把分组发送到控制系统120。系统处理器通过连接148接收来自控制系统的分组。因此,系统处理器140具有相对于每个请求处理器106、输入控制器150和输出控制器110的发送和接收能力。这种通信能力的某些使用包括按动态的方式从输入和输出控制器和请求处理器接收状态信息,以及向它们发送设置和操作命令和参数。
经组合的请求交换机和数据交换机在图1E中说明的实施例中,存在单个设备RP/OCN154,它执行请求处理器RPN106和输出控制器OCN110两者的功能。还有,存在单个交换机RS/DS156,它执行请求交换机RS 104和数据交换机DS 130两者的功能。线路卡102接收数据分组,并执行已经在本文件中描述的功能。输入控制器150可以分析和分解分组使之成为多个分段,并且还执行已经在本文件中描述的其它功能。然后输入控制器请求准许把分组或分段注入数据交换机。
在第一实施例中,请求分组具有图2D中说明的形式。把这些请求分组注入RS/DS交换机156中。在一种方案中,使这些请求分组与数据分组同时注入RS/DS交换机。在另一种方案中,在特殊的请求分组注入时刻注入这些分组。由于请求分组一般比数据分组短,所以可以有利地为本目的而使用以前部分的多长度分组交换机实施例。
在第二实施例中,请求分组也是一个分段分组,如图2F中所说明。输入控制器通过RS/DS交换机发送分组的第一分段,S0。当S0到达RP/OCN的请求处理器部分时,请求处理器判定是否允许发送分组的其余分段,如果允许发送其余分段,则请求处理器调度这些分段的发送。作出这些判定的方式与图1A中请求处理器作出判定的方式极相似。通过应答交换机AS把对于这些判定的应答发送到输入控制器。在一种方案中,请求处理器只有当它接收到分组的第一分段时才发送应答。在另一种方案中,请求处理器对于每个请求发送应答。在一个实施例中,应答包含了发送相同分组的另一个分段之前请求处理器必须等待的时间间隔的最小长度。通常到RP/OCN154的线路160的数量大于给予准许进入RP/OCN的分段的数量。如此,已经调度要退出RS/DS交换机的分段能够通过RS/DS交换机而进入输出控制器,同时还有的请求分段也具有进入RP/OCN的路径。在请求分组的数量加上经调度的分段的数量超过从RS/DS交换机156到输出控制器154的线路数量时,在交换机RS/DS 156内部缓冲超过的分组,并且可以在下一个周期中进入目标RP/OC。
在由于所有输入线路受到阻塞而分组不能够立即退出交换机的情况下,存在一个过程使数据分组的分段保持次序而不乱。这个过程还可以使RS/DS不会变成过载。从输入控制器ICp传播到RP/OCK的输出控制器部分的分组分段SM,遵循下列过程。当分组分段SM进入RP/OCK时,RP/OCK然后通过应答交换机AS 108把确认分组(未示出)发送到ICP150。只有在ICP已经接收到确认分组时它才会发送下一个分段,SM+1。由于应答交换机只发送成功地通过RS/DS交换机到输出控制器的分组分段的确认,所以分组分段的次序不会乱。另外的方案是在分段分组中包括分段号字段,输出控制器使用该字段把分段正确地组装成有效的分组供发送到下游。
按图2E中示出的应答分组的形式来发送从RP/OCK到ICP的确认。由于这个分组的有效负荷相对于分段分组的长度是较短的,所以可以设计系统,使得发送分段SM到RP/OCK的输入控制器一般将在它已经完成把整个分段SM插入到交换机RS/DS之前接收到应答。如此,在确认应答的情况下,输入端口处理器可以有利地紧接在分段SM的发送之后就开始分段SM+1的发送。
输入控制器对于它所作出的每个请求接收到不多于一个应答。因此,输入控制器接收的每单位时间的应答数不大于从相同输入控制器发送的每单位时间的请求数。有利地,由于发送到给定输入控制器的所有应答是响应于以前通过该控制器发送的请求的,所以使用这个过程的应答交换机不可能变成过载。
参考图1A,在未示出的另外的实施例中,作为单个部件实施请求交换机104和应答交换机108用于处理请求和应答两者。按分时的方式轮流处理请求和应答而通过单个MLML交换机结构执行这两个功能。这个交换机在一个时刻执行请求交换机104的功能,而在下一个时刻执行应答交换机108的功能。适合于实施请求交换机104的MLML交换机结构一般适合于这里讨论的组合功能。由RP/OC处理器154(诸如图1E和1F所描述的那些)来处理请求处理器106的功能。在本实施例中的系统的操作在逻辑上等效于受控制的交换机系统100。本实施例有利地减少了实施控制系统120所需要的线路量。
单个交换机实施例图1F说明本发明的一个实施例,其中交换机RADS 158携带并交换请求交换机、应答交换机和数据交换机的所有分组。在本实施例中,有用地使用后面对于图12B和14所描述的多长度分组交换机。在本实施例中,系统的操作在逻辑上等效于图1E中描述的经组合的数据交换机和请求交换机。本实施例有利地减少了实施控制系统120和数据交换机系统130所需要的线路量。
上面讨论的控制系统可以使用两类流控制方案。第一方案是请求—应答方法,其中只在接收到来自请求处理器106或RP/OC处理器154的确认应答之后才通过输入控制器150发送数据。也可以与图1A和1E中说明的系统一起使用这个方法。在这些系统中,产生特定的请求分组,并发送到请求处理器,请求处理器产生应答和把它发送回输入控制器。输入控制器始终等待,直到在发送下一个分段或其余分段之前它接收到来自RP/OC处理器的确认应答。在图1E中说明的系统中,可以处理第一数据分段作为经组合的请求分组和数据分段,其中请求涉及下一个分段,或涉及所有其余的分段。
第二方案是“发送—直到—停止”方法,其中输入控制器连续地发送数据分段,除非RP/OC处理器把停止—发送或暂停—发送分组发送回输入控制器。不使用不同的请求分组作为分段它本身暗示了一个请求。可以与图1E和1F中说明的系统一起使用本方法。如果输入控制器没有接收到停止或暂停信号,则它继续发送分段和分组。否则,在接收到停止信号时,它等待,直到它接收到来自RP/OC处理器的恢复—发送分组;或在接收到暂停信号时,它等待暂停—发送分组中表示的时间周期数,然后恢复发送。如此,话务从输入迅速地转移到输出,并且立即调整了在输出处即将发生的拥塞,按要求防止输出端口处的过载情况。这个“发送—直到—停止”实施例特别适合于以太网交换机。
可以构成大量并行的计算机,以致处理器可以经由大的单个—交换机网络进行通信。熟悉本技术领域的人员可以使用本发明的技术来构成软件程序,在该软件程序中,计算机网络的作用如同请求交换机、应答交换机和数据交换机。如此,可以在软件中使用本专利中描述的技术。
在这个单个交换机实施例中以及其它实施例中,存在许多可能的应答。当接收到发送分组的请求时,应答包括,但是不限于1)发送当前分段以及继续发送分段直到已经发送了整个分组;2)发送当前分段,但是作出在较晚发送另外分段的请求;3)在将来未规定的某个时刻,再提出发送当前分段的请求;4)在将来规定的时刻再提出发送当前分组的请求;5)丢弃当前分段;6)现在发送当前分段,以及在将来规定的时刻发送下一个分段。熟悉本技术领域的人员会发现符合各种系统要求的其它应答。
使用大的MLML交换机的多播多播是指从一个输入端口到多个输出端口发送分组。在本专利中揭示的交换机的许多电子实施例中以及在作为参考而引用的专利中,在一个节点处的逻辑是极简单的,不需要许多门。与可用的I/O连接量相比,为逻辑使用了最小的芯片不动产。因此,由芯片上的引脚数量而不是逻辑量限制了交换机的大小。因此,有充足的空间以在芯片上放置大量的节点。由于从请求处理器到请求交换机传送数据的线路122是在芯片上的,所以在这些线路上的带宽可以比通过线路134到芯片的输入引脚的带宽要大得多。此外,有可能把请求交换机制造得足够大以处理这个带宽。在MLML网络的上层中的行数是输入控制器数量的N倍的一种系统中,有可能把单个分组多播到多达N个输出控制器。可以实现到K个输出控制器(其中K≤N)的多播首先输入控制器向请求处理器提出K个请求,每个提出的请求具有独立的输出端口地址。然后请求处理器把L个认可(L≤K)返回输入控制器。然后输入控制器通过数据交换机发送L个独立的分组,L个分组的每一个具有相同的有效负荷,但是具有不同的输出端口地址。为了多播比N更多的输出,需要使上述周期重复足够的次数。为了实现这类多播,输入控制器必须访问所存储的多播地址组。为了实现这种类型的多播而对于基本系统作出必需的改变对于熟悉本技术领域的人员是显而易见的。
特定的硬件图4A、4B和4C示出支持多播的、系统100的另一个实施例。已经用多播请求控制器420来代替图1A中示出的请求控制器120,以及已经用多播数据交换机440来代替数据交换机130。这里使用的多播技术是基于发明#5中的学说的。把多播分组发送到一起形成多播组的多个输出端口。在多播组中的成员数量有一个固定的上限。如果极限是L,以及如果在实际组中存在比L多的成员,则使用多个多播组。输出端口可以是不止一个多播组的成员。
经由间接寻址来实现多播SEND(发送)请求。逻辑单元LU成对(432和452)地出现,一个在请求控制器420中,一个在数据交换机440中。每对逻辑单元共享唯一的逻辑输出端口地址OPA 204,该地址与任何物理输出端口地址不同。逻辑地址表示多个物理输出地址。一对的每个逻辑单元包含一个存储环,这些存储环的每一个装载有物理输出端口地址的相同的组。存储环包含事实上形成一个地址表格的地址列表,其中通过它的特定地址来引用表格。通过使用这种列表的输出—端口地址方案,多播交换机,RMCT430和DMCT450,有效地处理所有的多播请求。逻辑单元432和452和它们各自的存储环436和456一致行动来复制请求分组和数据分组。因此,通过合适的逻辑单元432或452接收发送到多播地址的单个请求分组,而逻辑单元432或452依次对于包含在它的存储环的表格中的每个项目复制一次分组。每个经复制的复制具有从表格取得的新的输出地址,并且把它传送到请求处理器106或输出控制器110。非—多播请求从来不会进入多播交换机RMCT430,但是作为替代而被引向交换机RSB426的下层。相似地,非多播数据分组从来不会进入多播数据交换机DMCT450,而是作为替代被引向交换机DSB444的下层。
图2G、2H、2I、2J、2K和2L示出支持多播的另外的分组和字段修改。表2是这些字段的内容的概况。
表2装载多播地址组使用图2G中给出的、其格式是基于分组200的格式的多播分组205来实现存储环436和456的装载。系统处理器140产生LOAD(装载)请求。当分组到达输入控制IC 150时,输入控制器处理器160检查输出端口地址OPA 204,以及通过地址注意到多播分组已经到达。如果多播装载标志MLF 203是开启(on)的话,则分组是多播装载,并且要装载的地址组驻留在PAY字段208中。在一个实施例中,以前已经把所给出的逻辑输出端口地址提供给请求者。在其它实施例中,逻辑输出端口地址是触发控制器以选择一对可供使用的逻辑单元的逻辑输出端口地址的哑地址;将使这个OPA返回请求者,在发送相应的多播数据分组时使用。在每种情况中,输入控制器处理器然后产生分组输入225,并把它存储在它的多播装载缓冲器418中,并在它的KEY缓冲器166中创建多播缓冲器KEY输入215。缓冲器KEY 215包含两—位多播装载计数器MLC 213,它的导通表示LOAD请求已经准备好用于处理。多播装载缓冲器地址PLBA 211包含存储多播装载分组的多播装载缓冲器中的地址。在请求周期期间,输入控制器处理器把多播装载分组发送到请求控制器420,以把存储环装载在地址OPA204处的逻辑单元中,然后使MLC 213的第一位关断,以表示已经完成了这个LOAD。相似地,输入控制器处理器选择数据周期,它在该数据周期中把相同的多播装载分组发送到数据控制器440的,以及使MLC 213的第二位关断。当已经关断了MLC 213的两个位时,输入控制器处理器可以从它的KEY缓冲器和多播装载缓冲器中除去这个请求的所有信息,由于已经完成了它在装载请求中的部分。在请求控制器420和数据控制器440两者处的多播分组的处理是相同的。每个控制器使用输出端口地址通过它的MCT交换机把分组发送到合适的逻辑单元LU 432或LU 452。由于多播装载标志MLF 203是开启的,所以每个逻辑单元注意到已经要求它通过使用分组有效负荷PAY 208中的信息来更新它的存储环中的地址。这个更新方法使相应存储环对中的地址组同步。
多播数据分组通过多播分组和非多播分组的输出端口地址OPA 204来区分多播分组和非多播分组。把不具有开启的多播装载标志MLF 203的多播分组称为发送分组。当输入控制器处理器160接收分组205和从输出端口地址和多播装载标志判定这是多播发送分组时,处理器在它的分组输入缓冲器162、请求缓冲器164和KEY缓冲器166中构成合适的输入项。对于SEND(发送)请求使用多播缓冲器KEY215中的两个特定字段。多播请求屏蔽MRM 217对于要从目标存储环中选择哪个地址保持跟踪。起初设置这个屏蔽以选择环中的所有地址(全1)。多播发送屏蔽MSM 219对请求处理器,RP 106,已经认可的哪个请求地址保持跟踪。起初把这个屏蔽设置为全0,表示尚未给出认可。
当输入控制器处理器检查它的KEY缓冲器和选择多播发送输入项以提交给请求控制器420时,把缓冲器密钥的当前多播请求屏蔽复制到请求分组245中,并且把所产生的分组发送到请求处理器。请求交换机RS 424使用输出端口地址把分组发送到多播交换机RMCT,它按路由把分组传送到OPA 204指定的逻辑单元LU 432。逻辑单元从MLF 203判定这不是装载请求,并使用多播请求屏蔽MRM 217,以判定在多播中使用它的存储环中的哪个地址。对于每个经选择的地址,逻辑单元复制作出如下的改变请求分组245。首先,用来自经选择的环数据的物理端口地址来代替逻辑输出端口地址OPA 204。第二,开启多播标志MLF 203,以致请求处理器知道这是多播分组。第三,将识别来自装载到输出端口地址中的存储环的地址的位置的多播应答屏蔽MAM 251替代多播请求屏蔽。例如,为存储环中的第三地址创建的分组在第三屏蔽位中具有值1,而其它地方为0。逻辑单元把所产生的分组中的每一个发送到交换机RMCB,它使用物理输出端口地址把分组发送到合适的请求处理器,RP 106。
每个请求处理器检查它的请求分组的组,并判定认可哪一些,然后产生对于每个认可的多播应答分组255。对于多播认可,请求处理器包括多播应答屏蔽MAM 251。请求处理器把这些应答分组发送到应答交换机AS 108,它使用IPA230通过选择路由把每个分组传送回它的始发输入控制单元。输入控制器处理器使用应答分组来更新缓冲器KEY数据。对于多播SEND请求,这包括把在多播应答屏蔽中认可的输出端口添加到多播发送屏蔽,并从多播请求屏蔽中除去它。因此,多播请求屏蔽对尚未接收到认可的地址保持跟踪,而多播发送屏蔽对已经认可的那些保持跟踪,以及准备发送到数据控制器440。
在SEND周期期间,把经认可的多播分组发送到数据控制器作为包括多播发送屏蔽MSM 219的多播分段分组265。数据交换机DS 442和MCT430使用输出端口地址把分组通过路由传送到指定的逻辑单元。逻辑单元创建多播分段分组的一组,每个多播分段分组与原始分组相同,但是具有根据多播发送屏蔽上的信息通过逻辑单元提供的物理输出端口地址。然后使经修改的分段分组通过多播交换机MCB,该交换机把它们发送到适当的输出控制器110。
输出控制处理器170使用分组标识符,KA 228和IPA 230,以及NS 226字段重组装分段分组。把经重组装的分段分组放置在分组输出缓冲器172中,用于发送到LC 102,因此完成了SEND周期。按相似的方式处理非多播分组,除非它们从多播交换机448旁路。作为替代,数据交换机442根据分组的物理输出端口地址OPA 204通过交换机DS 444经选择路由传递分组。
多播总线交换机图5A和5B是示出另外的方法的视图,所述方法用于实施和支持使用芯片上总线结构的多播。图5A是示出通过多播请求总线交换机510互连的多个请求处理器516的图示。图5B是示出通过数据—分组—承载多播总线交换机540互连的多个输出处理器54的图示6。
把多播分组发送到多个输出端口,它们一起形成多播组。总线510允许连接被发送到特定的请求处理器。多播总线功能象M×N纵横制交换机,其中M和N不需要相等,以及其中链路,514和544。在总线中的一个连接器512表示一个多播组。每个请求处理器具有形成具有零个或更多个连接器512的I/O链路514的能力。在使用总线之前设置这些链路。给定的请求处理器516只链接到表示它所从属的一个多播组或一些多播组的连接器512,并且不连接到总线中的其它连接器。相似地把输出端口处理器546链接到输出多播总线540的零个或多个数据—承载连接器542。是相同组的成员的这些输出端口处理器在表示该组的总线上具有到连接器542的I/O链路544。这些连接链路,514和544,被动态地配置。因此,特定的MC LOAD消息添加、改变和除去作为给定多播组的成员的输出端口。
指定一个请求处理器作为给定多播组的代表(REP处理器)。输出端口处理器只把多播请求发送到组中的REP处理器518。图6C说明多播定时方案,其中只在指定的时间周期,MCRC 650,中作出多播请求。如果在输入控制器150的缓冲器中有一个或多个多播请求,则它等待多播请求周期650,以把它的请求发送到REP处理器。接收到多播请求的REP处理器通过在共享的总线连接器512上发送信号而通知组中的其它成员。链接到连接器的所有其它请求处理器都接收到这个信号。如果REP处理器同时接收到两个或多个多播请求,则它使用在请求中的优先级信息来判定把哪个请求放置在总线上。
在REP处理器已经选择放置在总线上的一个或多个请求之后,它在把应答分组发送回得胜的输入控制器之前使用连接器512来询问组中的其它成员。请求处理器可以是一个或多个多播组的成员,并且可以一次接收两个或多个多播请求的通知。另一方面来说,是不止一个多播组的成员的请求处理器可以检测多个多播总线连接514在一个时刻同时有效。在这种情况中,它可能认可一个或多个请求。每个请求处理器使用相同的总线连接器来通知REP处理器它将认可(或拒绝)请求。通过使用分时方案经过连接器512从每个请求处理器到REP处理器发送这个信息。每个请求处理器具有它在何时发送它的认可或拒绝信号的特定时隙。因此,REP处理器按位串行的方式接收来自所有成员的响应,组中的每个成员一位。在另外的实施例中,非REP处理器提前通知REP处理器它们将很繁忙。
然后REP处理器构造表示多播组中的哪个成员可以认可请求的多播位屏蔽;值1表示认可,值0表示拒绝,在位屏蔽中的位置表示哪个成员。从REP处理器到输入控制器的答复包括这个位屏蔽,并且通过应答交换机发送到该请求输入控制器。在位屏蔽包含全零的情况下,REP处理器还把拒绝应答分组发送回输入控制器。在后续的多播周期中可以再尝试被拒绝的多播请求。在另外的实施例中,每个输出端口为是成员的每个多播组保留一个特定的缓冲器区域。在规定的时刻,输出端口把一个状态发送给相应于它的多播组的每个REP处理器。在数据发送周期期间继续进行这个过程。按这种方式,Rep事先知道哪个输出端口能够接收多播分组,因此能够立即响应多播请求而无需发送请求给所有它的成员。
在多播数据周期期间,具有认可多播响应的输入控制器把多播位屏蔽插入数据分组标头中。然后输入控制器把数据分组发送到表示输出处的多播组的输出端口处理器。回忆输出端口处理器是连接到多播输出总线540的,模拟把请求处理器连接到多播总线510的手段。接收分组标头的输出端口处理器REP在输出总线连接器上发送多播位屏蔽。输出端口处理器在与它在组中的位置相对应的时刻查找0或1。如果检测到1,则选择该输出端口处理器进行输出。在发送多播位屏蔽之后,REP输出端口处理器立即把数据分组放置在相同的连接器上。所选择的输出端口处理器简单地把有效负荷拷贝到输出连接,按要求完成了多播操作。在另外的实施例中,可以通过多个连接器实施表示给定多播组的单个总线连接器,512和542,按要求减少发送位屏蔽所花费的时间量。在另一个实施例中,只在总线上的所有输出可以接受分组的情况中发送多播分组,0表示接受,而1表示拒绝。所有处理器同时响应,如果接收到单个1,则请求就被拒绝。
接收两个或多个多播请求的请求处理器可以接受在由请求输入控制器接收的返回位屏蔽中由1表示的一个或多个请求。通过位屏蔽中的0来表示拒绝请求的请求处理器。如果输入控制器没有得到组中的所有成员的全1(表示100%接受),则它可以在后续的多播周期中进行另一次尝试。在这种情况下,请求具有在标头中一个位屏蔽,可以使用它来表示组中的哪个成员应该响应或否定该请求。在一个实施例中,总是在接收到多播分组时立即从输出处理器发送它们。在另一个实施例中,输出端口可处理多播分组,就象处理其它分组一样,并且可以把多播分组存储在输出端口缓冲器中以在较晚时刻发送。
当上游设备频繁地发送多播分组或当两个或多个上游源把大量话务发送到一个输出端口时,可能发生过载情况。回忆退出数据交换机的输出端口的所有分组必须得到各个请求处理器的认可。如果给定的请求处理器接收到过多的请求,则不管是多播请求的结果或是因为许多输入源希望发送到输出端口或另外情况,请求处理器只接受与可以通过输出端口发送的请求一样多的请求。因此,当使用这里揭示的控制系统时,输出端口处不可能发生过载。
还参考图1D,被拒绝准许通过数据交换机发送分组的输入控制器可以在较晚时间再尝试。重要地,当发生即将到来的过载时,它可以丢弃它的缓冲器中的分组。输入控制器有关于哪些输出端口的哪些分组不会被接受的足够信息,以致它可以估计情况和确定过载的类型和原因。然后它可以通过数据交换机向系统处理器140发送一个分组而通知这个情况。回忆系统处理器具有到控制系统120和到数据交换机130的多个I/O连接。系统处理器可以同时处理来自一个或多个输入控制器的分组。然后系统处理器140可以产生和发送适当的分组到上游设备,把过载情况通知它们,使得可以在发源处解决问题。系统处理器还可以通知给定的输入端口处理器忽略和丢弃可能在它的缓冲器中的某些分组,并且可以在将来接收。重要地,这里揭示的可变规模的交换系统不管原因而使过载最小,因此可以认为是无拥塞的。
可以通过数据交换机在特定时刻或同其它数据一起在相同时刻发送多播分组。在一个实施例中,特定的位通知REP输出端口处理器要把该分组多播给总线的所有成员或给在某些位屏蔽中的那些成员。在后一种情况中,特定的设置周期把交换机设置到通过位屏蔽选择的成员。在另一个实施例中,只有总线的所有成员都接收分组时,才通过特定的多播硬件发送分组。有可能多播组的数量大于输出端口的数量。在其它实施例中,存在多个数量的输出端口组,每个输出端口仅是一个多播组的成员。已经提供了三种多播的方法。它们包括1.不需要特定硬件的多播类型,其中到达输入控制器的单个分组使多个请求发送到请求交换机而多个分组发送的数据交换机;2.使用发明#5中教导的旋转FIFO结构的多播类型;以及3.需要多播总线的多播类型。
使用多播的一个给定的系统可以应用这些方法中的一种、两种或所有三种方法。
系统定时参考图1A,到达分组通过线路卡102上的输入线路126进入系统100。线路卡分析分组标头和其它字段来确定把它发送到哪里以及判定服务的优先级和质量。经过路径134把这个信息和分组一起发送到所连接的输入控制器150。输入控制器使用这个信息来产生它发送到控制系统120的请求分组240。在控制系统中,请求交换机104把请求分组发送到控制把所有话务发送到给定输出端口的请求处理器106。在一般情况中,一个请求处理器106代表一个输出端口110,并控制所有话务,使得没有相应请求处理器的认可不会有分组发送到系统输出端口128。在某些实施例中,把请求处理器106物理地连接到输出控制器110,如在图1E和1F中所示。请求处理器接收分组;它可以接收来自也具有希望发送到相同输出端口的数据的其它输入控制器的请求。请求处理器根据在每个分组中的优先级信息排等级,可以接受一个或多个请求同时拒绝其它请求。它立即产生通过应答交换机108发送的、把接受的“得胜”分组和拒绝的“失败”分组通知输入控制器的一个或多个应答分组250。具有接受数据分组的输入控制器把数据分组发送到数据交换机130,数据交换机130把它发送到输出控制器110。输出控制器除去任何内部使用字段,并经过路径132把它发送到线路卡。线路卡把分组转换成适合于物理发送到下游128的格式。拒绝一个或多个请求的请求处理器可以把表示拒绝的应答分组附加地发送到输入控制器,向它们提供它们用来估计较晚周期中分组接受的可能性的信息。
还是参考图6A,使请求和应答处理的定时与通过数据交换机的数据分组发送重叠,还与通过线路卡连同输入控制器一起执行的分组接收和分析重叠。检查标头和其它相关分组字段606的线路卡首先处理到达分组K 602,以判定分组的输出端口地址204和QOS信息。在时刻TA,新分组到达线路卡。在时刻TR,线路卡已经接收和处理足够的分组信息,以致输入控制器可以开始它的请求周期。输入控制器产生请求分组240。时间周期TRQ610是系统产生和处理请求、以及在得胜输入控制器处接收和应答所使用的时间。时间周期TDC620是数据交换机130把分组从它的输入端口116发送到输出端口118所使用的时间量。在一个实施例中,TDC是比TRQ长的周期。
在图6A中说明的例子中,在时刻TA通过线路卡接收分组K 602。输入控制器产生在时间周期TRQ期间通过控制系统处理的请求分组240。在这个时间周期期间,通过数据交换机移动以前到达分组J 620。也是在时间周期TRQ期间,另一个分组L 622正到达线路卡。重要地,因为请求处理器看到它的输出端口的所有请求以及接受的请求不多于会导致拥塞的数量,所以数据交换机永远不会过载或拥塞。向输入控制器提供必需的和足够的信息来确定接下来如何处理它的缓冲器中的分组。根据在分组标头中的所有相关信息公正地选择必须丢弃的分组。请求交换机104、应答交换机108和数据交换机130都是可变规模的形成了发明#1、#2和#3中教导的蠕虫洞MLML互连结构。因此,按与数据分组交换的重叠的方式来处理请求,使得按允许数据分组移动通过系统而无延迟的方式而有利地执行系统的可变规模的、全球控制。
图6B是定时图,示出也支持多个、请求子一周期的一个实施例的重叠处理的更详细的步骤。下面所列出的涉及视图中经编号的线路6301.输入控制器,IC 150,已经从线路卡接收到构造请求分组240的足够的信息。可能在输入控制器的缓冲器中存在其它分组,可以选择它们中的一个或多个作为它的上层优先级请求。在时刻TR发送第一请求分组或一些分组到请求交换机标志了请求周期的开始。在时刻TR之后,如果在它的没有第一轮请求的、以及在拒绝一个或多个第一轮请求的情况中的、缓冲器中至少存在一个分组,则输入控制器立即准备第二优先级请求分组(未示出),供在第二(或第三)请求子周期中使用。
2.请求交换机104在时刻TR接收请求分组的第一位,并把分组发送到在请求的OPA字段204中规定的目标请求处理器。
3.在这个例子中,请求处理器接收在时刻T3开始的、串行地到达的三个请求。
4.当第三请求已经在时刻T4到达时,请求处理器根据分组中的优先级信息排列请求的等级,并且可以选择一个或多个请求进行接受。每个请求分组包含请求输入控制器的地址。使用请求输入控制器的地址作为应答分组的目标地址。
5.应答交换机108使用IPA地址发送,以把接受分组发送到作出请求的输入控制器。
6.输入控制器在时刻T6接收接受通知,并在下一个数据周期640的开始处把与接受分组相关联的数据分组发送到数据交换机。来自输入控制器的数据分组在时刻TD进入数据交换机。
7.请求处理器产生拒绝应答分组250,并通过应答交换机把它们发送到作出拒绝请求的输入控制器。
8.当产生第一拒绝分组时,把它发送到应答交换机108,在其后跟随其它拒绝分组。输入控制器在时刻T8接收到最后拒绝分组。这标志着请求周期的完成、或在使用多个请求子周期的实施例中的第一子周期的完成。
9.请求周期160在时刻TR开始,并在时刻T8结束,持续期为TRQ。在支持请求子周期的一个实施例中,考虑请求周期610为第一子周期。在已经向所有输入控制器通知接受和拒绝请求之后的时刻T8开始第二子周期612。在T3和T8之间的时间期间,具有在第一周期中没有请求的分组的一个输入控制器构造第二子周期的请求分组。在时刻T8发送这些请求。当使用不止一个子周期时,在完成最后子周期时把数据分组发送到数据交换机(未示出)。
这种重叠处理方法有利地允许控制系统与数据交换机并驾齐驱。
图6C是支持特定多播处理周期的控制系统的一个实施例的定时图。在这个实施例中,在非多播(正常)请求周期,RC 610,中不允许多播请求。具有用于多播的分组的输入控制器进行等待,直到多播请求周期,MCRC 650,才发送它的请求。因此,多播请求不与正常请求竞争,有利地增加多播的所有目标端口都是可用的可能性。系统处理器140动态地控制正常周期对多播周期的比值和它们的定时。
图6D是支持用图3A、3B和3C讨论的时隙保留调度的控制系统的一个实施例的定时图。这个实施例利用这样的事实,即,平均地把数据分组子分割成相当数量的分段,并且对于分组的所有分段只作出一个请求。在一个时隙请求周期,TSRC 660,期间发送单个时隙保留请求分组310,并接收应答分组320。在接收到应答之后,在较短的、时隙数据周期,TSDC 662,期间,按每TSDC周期一个分段的速率发送多个分段。在一个例子中,假定把数据分组平均分成10个分段。这意味着对于发送到数据交换机的每10个分段,系统只需执行一个TSRC周期。因此,请求周期660可以比数据周期662大10倍,而控制系统120可以仍处理所有输入话务。实际上,应该使用小于平均值的比值来适应输入端口接收短分组的突发的情况。
电源节约方案在MLML交换机结构中有两个部件是串行地发送分组位的。这些是1)控制单元以及2)在交换机结构的每个行处的FIFO缓冲器。参考图8和13A,时钟信号1300使数据位按桶—队(bucket-brigade)方式通过这些部件移动。在MLML交换机结构的一个较佳实施例中,仿真表示出只有这些部件的10%到20%具有在给定时刻通过它们发送的一个分组;其余部件都是空的。但是即使没有分组存在(全零),移位寄存器也消耗电源。在电源—节约实施例中,当没有分组存在时适当地关断时钟信号。
在第一电源—节约方案中,单元一判定已经没有分组输入它,就关断驱动给定单元的时钟。对于给定的控制单元,这个判定只花费单个时钟周期。在下一个分组到达时刻1302,再次接通时钟,并且重复该过程。在第二电源—节约方案中,单元(该单元把分组发送到它的行上的FIFO)判定是否有一个分组将输入FIFO。因此,这个单元使FIFO的时钟接通或关断。
如果在整个控制阵列810中没有单元正在接收分组,则没有分组可以进入任何单元或在同一层上的控制阵列的右边的FIFO。在第三电源—节约方案中,当在控制阵列中没有单元把分组发送到它的右边时,对于所有单元和同一层上到该控制阵列右边的FIFO,都关断时钟。
可配置的输出连接在一个输出端口处的话务速率可以随时间而改变,而且某些输出端口可以比其它输出端口经受更高的速率。图7是在发明#2和#3中所教导的类型的MLML数据交换机的下层的图示,示出如何对物理输出端口118作出可配置的连接。在交换机的下层的节点710具有到交换机芯片的输出端口118的可设置的连接702。在行地址0上的节点A通过链路702连接到一个输出端口118;节点B、C和D是在行1,704,上的,并且具有相同的输出地址。在三个列处,节点B、C和D连接到三个不同的物理输出端口706。相似地,输出地址5和6的每一个都连接到两个输出端口。因此,在数据交换机输出处,输出地址1、5和6具有较高的带宽容量。
集群集群是指连接到公共下游连接的多个输出端口的集合。在数据交换机处,连接到一个集群的输出端口作为在数据交换机中的单个地址,或地址的块,来进行处理。不同的集群可以具有不同数量的输出端口连接。图8是已经修改成支持集群的发明#2和#3所教导的类型的MLML数据交换机的下层的图示。通过由系统处理器140发送的特定消息来配置一个节点,使得它读出或忽略标头地址位。通过“x”表示的节点802忽略分组标头位(地址位),并且使分组通过路由向下传送到下一层。在虚线框804内部示出到达相同集群的相同层处的节点。在说明中,输出地址0、1、2和3连接到相同的集群,TRO 806。发送到这些地址中的任何地址的数据分组将在TRO的四个输出端口118中的任何输出端口处退出数据交换机。另一方面来说,具有输出地址0、1、2或3的数据分组将在集群TRO的四个端口中的任何端口处退出交换机。统计地说,可能等同地使用集群TRO 806的任何输出端口118,不管分组的地址0、1、2或3。这个特性有利地使从多个输出连接118流出的话务得以平滑输出。相似地,送到地址6或7的分组是从集群TR6 808发送出来的。
高速I/O和更多端口的并行化当利用分段和重组装(SAR)时,通过交换机发送的数据分组包含分段而不是整个分组。在使用图6D中说明的定时方案的图1A中说明的系统的一个实施例中,请求处理器可以对要发送到它们的目标输出控制器的分组的所有分段一次性地给出准许。输入控制器给出表示在完整的分组中有多少分段的单个请求。请求处理器使用排列等级的请求中的这个信息;当已经准许多分段请求时,请求处理器直到已经发送所有分段的这种时间才允许任何后续的请求。输入控制器、请求交换机、请求处理器和应答交换机合乎需要地具有降低的工作负荷。在如此的实施例中,保持数据交换机繁忙,而同时请求处理器是相当空闲的。在这个实施例中,请求周期660可以具有比数据(分段)交换机周期662较长的持续期,有利地放宽了控制系统120的设计和定时的限制。
在另一个实施例中,增加通过数据交换机的速率而无需增加请求处理器的容量。通过具有单个控制器120管理趋向多个数据交换机的数据可以达到这一点,如通过图9的交换机和控制系统900所说明。在这个设计的一个实施例中,在给定的时间周期中,每个输入控制器990能够把一个分组发送到数据交换机930的堆中的每个数据交换机。在另一个实施例中,输入控制器可以决定把相同分组的不同分段发送到每个数据交换机,或它可以决定把来自不同分组的分段发送到数据交换机。在其它实施例中,在一个给定的时间步骤处,把相同分组的不同分段发送到不同的数据交换机。在再另一个实施例中,按位—并行的方式把一个分段发送到整个数据交换机的堆,使分段通过数据交换机的蠕虫洞的时间量减少正比于堆中的交换机芯片的数量的一个量。
在图9中,设计允许多个数据交换机,这些交换机是通过具有单个请求交换机和单个应答交换机的请求控制器120管理的。在其它设计中,请求控制器包含多个请求交换机104和多个应答交换机108。在再其它设计中,存在多个请求交换机和多个应答交换机以及多个数据交换机。在最后的情况中,数据交换机的数量可以等于请求控制单元的数量或请求处理器的数量可以多于或少于数据交换机的数量。
在一般情况中,存在只处理多播请求的P个请求处理器,只处理多播分组的Q个数据交换机,处理直接请求的R个请求处理器以及处理直接被寻址数据交换的S个数据交换机。
有利地使用请求交换机的多份复制品的一种方法是使每个请求交换机在J条线路上接收数据,每条线路是从J个输入控制器处理器中的每一个到达的。在这个实施例中,输入控制器的任务之一是拉平(even out)到请求交换机的负载。请求处理器使用相似的方案把数据发送到数据交换机。
参考图1D,配置系统处理器140使之把数据发送到和接收来自线路卡、输入处理器和请求处理器的数据,并且与诸如执行和管理系统之类的系统外面的外部设备进行通信。保留数据交换机I/O端口142和144以及控制系统I/O端口146和148供系统处理器使用。系统处理器可以使用从输入处理器和从请求处理器接收到的数据,而把本地情况通知全球管理系统,并且响应全球管理系统的请求。请求处理器用来作出它们的判定的算法和方法可以基于查找表过程或基于通过单—值优先级字段而排出的简单的请求等级。根据来自系统中的信息以及无系统的信息,系统处理器可以改变请求处理器使用的算法,例如,通过改变它们的查找表。在路径142上把IC WRITE消息(未示出)发送到输出控制器110,输出控制器110经过路径152发送到相关联的输入控制器150。相似地,把IC READ消息发送到输入控制器,它通过经过数据交换机把它的答复发送到系统处理器的端口地址144而作出响应。使用RP WRITE消息(未示出),使用请求交换机104在路径146上把信息发送到请求处理器。相似地使用RPREAD消息来询问请求处理器,它通过应答交换机108在路径148上把它的答复发送到系统处理器。
图10A说明达到又一个并行化程度的系统1000。使用整个交换机,100或900,包括它的控制系统和数据交换机,的多份复制品作为模块来构成较大的系统。复制品中的每一个是指层1004,可以有任何数量的层。在一个实施例中,使用交换机和控制系统100的K份复制品来构成大系统。层可以是大的光学系统,层可以包括板上的系统,或层可以包括一个机架或许多机架中的系统。为了方便起见,下面接着考虑的层包括板上的系统。如此,小系统可能只包括一块板(一层),而较大的系统包括多块板。
对于如图1A中描绘的最简单的层,在层m上的部件的列表如下·一个数据交换机DSm·一个请求交换机RSm·一个请求处理器,RCm·一个应答交换机ASm·J个请求处理器,RP0,m,RP1,m,...,RPJ-1,m·J个输入控制器,IC0,m,IC1,m,...,ICJ-1,m·J个输出控制器,OC0,m,0C1,m,...,OCJ-1,m。
在K个层的每一层上具有上述部件的一个系统具有下列“部件统计”K个数据交换机、K个请求处理器、K个应答交换机、J·K个输入控制器、J·K个输出控制器以及J·K个请求处理器。
在一个实施例中,有J个线路卡LC0,LC1,...,LCJ-1,每个线路卡1002发送数据到每层。在这个实施例中,线路卡LCn馈入输入控制器ICn,0,ICn,1,...,ICn,k-1。在外部输入线路1020承载具有K个信道的波分多路复用(WDM)光学数据的一个例子中,可以对数据进行去复用和通过光到电(O/E)单元转换成电信号。每个线路卡接收K个电信号。在另一个实施例中,有K条电子线路1022进入每个线路卡。某些数据输入线路126的负载要比其它线路重。为了平衡负载,可以有利地把从给定输入线路输入线路卡的K个信号放置在不同层上。除了对进入数据进行去复用之外,线路卡1002还可以再—多路复用输出数据。这可能包括对于输入数据的光—到—电转换以及对于输出数据的电—到—光转换。
所有的请求处理器RPN,0,RPN,1,...,RPN,K-1接收把分组发送到线路卡LCN的请求。在图10A说明的一个实施例中,在层之间不进行通信。有K个输入控制器和K个输出控制器对应于给定的线路卡。因此,每个线路卡把数据发送到K个输入控制器并接收来自K个输出控制器的数据。每个线路卡具有相应于给定输出控制器的指定的输入端口组。这种设计使得分段的重组装如以前只有一层的情况中一样容易。
在图10B的实施例中,也有J·K个输入控制器,但是只有J个输出控制器。每个线路卡1012馈入K个输入控制器1020,每层1016上一个。对比于图10A,其中只有一个线路卡与每个输出控制器1014相关联。这种配置导致所有输出缓冲器的汇集。在实施例1010中,为了对请求给予最佳应答,共享所有请求处理器(这些请求处理器是管理到单个线路卡的数据流的)之间的信息是有利的。如此,使用层间通信链路1030,请求处理器RPN,0,RPN,1,...,RPN,K-1共享有关线路卡LCN中缓冲器状态的信息。在每个数据交换机输出1018和输出控制器1014之间放置集中器1040是有利的。发明#4描述具有如下特性的高数据速率集中器,即如果请求处理器保证给定的数据速率,集中器就成功地把所有输入数据传送到它们的输出连接。这些MLML集中器对于这个应用是最适当的选择。集中器的目的是如果在该周期期间来自其它层的数据较少的话,就允许给定层处的数据交换机把过量的数据连续传送到集中器。因此,在不平衡负载和繁忙话务出现时,K个层的集成系统比K个不连接的层可达到更高的带宽。请求处理器对于输入每个集中器的所有话务的知识使这个增加的数据流层为可能。这种系统的一个缺点是需要更多的缓冲和处理来重组装分组分段,并且有J条通信链路1030。
扭转—立方体实施例在图1A中描述包括数据交换机和交换机管理系统的基本系统。在图9、10A和10B中说明增加系统带宽而没有增加输入和输出端口数量的变型。本部分的目的是示出如何增加输入端口和输出端口的数量而同时增加总带宽。这个技术是基于汇接(tandem)中的两个“扭转立方体”的概念的,其中每个立方体是一个MLML交换机结构的堆。在发明#4中描述包含MLML网络和集中器作为部件的一种系统。在图11A中说明扭转—立方体系统的小的形式的示意说明。系统1100可以是电子的或光学的;这里为了方便而描述电子系统。这种系统的基本构造块是发明#2和#3所教导类型的MLML交换机结构,它在每层上有N行和L列。在下层上有N行,每行有L个节点。在最下层的每行上,有M个输出端口,其中M不大于L。这种交换机网络具有N个输入端口和N·M个输出端口。N个交换机1102的堆是指一个立方体;接在N个交换机1104的堆之后的是另一个立方体,相对于第一立方体扭转90度。
在图11A的平面布局中示出两个立方体,其中N=4。包括2N个如此的交换块和2N个集中器块的系统具有N2输入端口和N2输出地址。图11A中示出的说明性的小网络具有八个交换机结构1102和1104,每个具有4个输入和输出地址。因此,整个系统1100形成具有16个输入和16个输出的一个网络。分组进入固定目标输出的前面两位的交换机1102的输入端口。然后分组进入MLML集中器1110,该集中器使话务从第一堆的12个输出端口平滑输出以匹配在第二堆中的一个交换机的4个输入端口。进入给定集中器的所有分组具有相同的N/2个最高有效地址位,在本例子中是两位。集中器的目的是把大量负载相当轻的线路馈入到少量负载相当重的线路中。集中器的作用还用作允许繁忙话务从交换机的第一堆通过而到第二堆的缓冲器。集中器的第三目的是拉平到数据交换机的第二组的输入的话务。还有另一组集中器1112位于交换机1104的第二组和最后网络输出端口之间。
如果使用图11A所说明类型的大交换机作为图1A中示出的系统100的交换机模块,那么实施请求控制器120就有两种方法。第一方法是使用图11A中的扭转立方体网络结构来代替交换机RS 104和AS 108。在这个实施例中,对应于N2个系统输出端口有N2个请求处理器。请求处理器可以在集中器1112的第二组的前面或后面。图11B说明大系统1150,该系统使用扭转—立方体交换机结构作为请求控制器1152中的请求交换机模块1154和应答交换机模块1158以及作为数据交换机1160。这个系统展示这里教导的互连控制系统以及交换机系统的可变规模性。其中N是立方体的一个交换机部件,1102和1104,的I/O端口数,对于扭转—立方体系统1100存在总数为N2个的I/O端口。
参考说明性例子中的图1A、11A和11B,单个芯片包括四个独立的64—端口交换机实施例。对于总数为256个引脚的每个交换机,每个交换机实施例使用64个输入引脚和192(3·63)个输出引脚。因此四—交换机芯片具有1024(4·256)个I/O引脚,加上定时、控制信号和电源连接。从16个芯片的堆形成立方体,一起包含64(4·16)个独立的MLML交换机。把这个16个芯片的堆(一个立方体)连接到相似的立方体;所以每个扭转—立方体组需要32个芯片。最好把所有32个芯片都安装在单个印制电路板上。所产生的模块具有64·64,或4096个I/O端口。交换机系统1150使用这些模块中的三个,1154、1158和1160,并且具有4096可用的端口。可以通过线路卡对这些I/O端口进行多路复用以支持较少数量的高速发送线路。假设每个电子I/O连接,132和134,按每秒300兆比特的保守速率操作。因此,对按每秒2.4千兆比特操作的512 OC-48光纤连接按1∶8的比值进行多路复用,以与扭转—立方体系统1150的4096个电子连接相对接。这种保守地设计的交换机系统提供每秒1.23兆兆比特的横截面带宽(cross-sectional bandwidth)。交换机模块的仿真示出在处理繁忙话务的同时它们能按连续的80%到90%速率容易地操作,这是比大的、现有技术、分组—交换系统显著地优越的一个数字。熟悉本技术领域的人员能够容易地设计和配置具有更快速度和更大容量的更大的系统。
管理具有交换机结构的扭转立方体的系统的第二方法在交换机1102的第一列和集中器1110的第一列之间添加请求处理器1182的另一层。在图11C中说明这个实施例,控制系统1180。存在一个请求处理器,MP 1182,对应于数据交换机之间的集中器中的每一个。由MP0,MP1,...,MPJ-1来表示这些中间请求处理器。集中器的一个作用是作为缓冲器。中间处理器的策略是使集中器缓冲器1110不致溢出。在一定数目的输入控制器发送大量请求而流过中间集中器1110中之一的情况下,集中器将变成过载,并且不是所有请求会到达请求处理器的第二组。中间处理器1182的目的是选择地丢弃一部分请求。中间请求处理器1182可以作出它们的判定而无需输出控制器中的缓冲器状态的知识。它们只需要考虑从中间请求处理器到中间集中器1110的总带宽;从中间集中器到第二请求交换机1104的带宽;第二交换机1104中的带宽;以及从第二交换机到请求处理器1186的带宽。中间处理器考虑请求的优先级和丢弃如果发送到这些处理器会被请求处理器丢弃的那些请求。
单长度路由图12A是在作为参考而引用的专利中揭示的MLML互连中使用的一种类型的节点的视图。节点1220具有用于分组的两条水平路径1224和1226以及两条垂直路径1202和120。节点包括两个控制单元,R和S1222,以及允许每个控制单元使用每个向下路径,1202或1204,的一个2×2纵横制交换机1218。如在发明#2和#3中所教导,从上面1202到达单元R处的分组始终立即通过路由在路径1226上传送到右边;从上面1204到达单元S处的分组始终立即通过路由在路径1224上传送到右边。从左边到达单元R处的分组通过路由在向下路径上传送使之接近它的目标,或如果该路径不可用,则分组始终通过路由在路径1226上传送到右边;从左边到达单元S处的分组通过路由在向下路径上传送使之接近它的目标,或如果该路径不可用,则分组始终通过路由在路径1224上传送到右边。如果向下路径可用以及如果单元R和S的每一个具有希望使用该路径的一个分组,则只允许一个单元使用该向下路径。在这个例子中,单元R是较高优先级单元而得到第一选择来使用向下路径;从而阻塞单元S和把它的分组在路径1224上发送到右边。注意,当它的到右边的路径在使用时,单元不能够接受来自上面的分组把一个控制信号(与路径1202和1204并行地运行,未示出)向上发送到较高层处的单元。通过这种方法,始终阻止会导致碰撞的、来自上面的分组进入一个单元。重要地,从左边到达节点处的任何分组始终具有它可用的、向右边的一条退出路径,通常退出可用于向下朝向它的目标,合乎要求地排除了节点处对于缓冲的需要,以及支持通过MLML交换机结构的话务的蠕虫洞发送。
图13A是在图12A中说明的节点1220的定时图。把时钟1300和设置—逻辑信号1302提供给节点。使用全球时钟1300使分组通过单元中的内部移位寄存器(未示出)移位,每个时钟周期一位。每个节点包含一个逻辑单元1206,它判定向哪个方向发送到达分组。在设置—逻辑时间1302处,逻辑1206检查到达节点处的分组的标头位以及来自下层单元的控制—信号信息。然后逻辑判定(1)通过路由把任何分组传送到何处向下或向右;(2)如何设置纵横制1218;以及(3)在分组通过节点传送期间在内部寄存器中存储这些设置。在下一个设置—逻辑时间1302处,重复这个过程。
具有它的控制系统(这是本发明的主题)的数据交换机较好地适合于处理同时作为短分段的长分组。通过支持这个特征的数据交换机的一个实施例,不同长度的多个分组有效地使它们的路线如蠕虫洞方式。现在讨论支持多个分组长度而不需要使用分段和重组装的一个实施例。在这个实施例中,数据交换机具有多个内部路径组,其中每个组处理不同长度的分组。在数据交换机中的每个节点具有来自每个组的、通过该节点的至少一条路径。
图12B说明具有合乎要求地支持多个分组长度的单元P和Q的节点1240,在该例子中是四个长度。节点1240中的每个单元1242和1244具有四条水平路径,它们是用于四个不同长度的分组的发送路径。路径1258是用于最长的分组或用于半固定连接的,路径1256是用于长分组的,路径1254是用于中等长度的分组的,而路径1252是用于最短的分组的。图13B是节点1240的定时图。对于四条路径中的每一条都有一个独立的设置—逻辑定时信号设置—逻辑信号1310涉及路径1252上的短长度分组,信号1312涉及路径1254上的中长度分组,信号1314涉及路径1256上的长分组,以及信号1316涉及路径1258上的半固定连接。重要的是应该在较短长度之前的节点中设置较长长度分组的连接。这给予较长长度分组有较大的可能性来使用向下路径1202和1204,因此较早退出交换机,这增加了总效率。因此,首先发出半固定信号1316。在半—固定信号1316之后一个时钟周期发出用于长分组的信号1314。相似地,再晚一个时钟周期发出用于中等长度分组的信号1312,并在此后的一个时钟周期之后发出短分组信号1310。
单元P 1242可以具有分别从路径1252、1254、1256和1258的左边一次输入的零、一、二、三或四个分组。在从左边到达的分组中,可以把它们之中的零个或一个向下发送。在同一时刻,它还可以具有从上面1202进入的零个或一个分组,但是只有在该分组向右边的退出路径可用时。作为一个例子,假定单元P具有从左边输入的三个分组短、中和长分组。假定正在向下发送中分组(正在向右发送短和长分组)。因此,没有使用到右边的中和半—固定路径。因此,单元P可以接受从上面1020来的中或半固定分组,但是不能接受从上面来的短或长分组。相似地,在相同节点中的单元Q 1244可以具有从左边到达的零到四个分组以及从上面在路径1204上来的零个或一个分组。在另一个例子中,单元Q 1244接收从左边来的四个分组,而使在路径1252上的短长度分组根据纵横制1218的设置而通过路由在路径1202或1204上向下传送。因此,到右边的短长度退出路径是可用的。因此,单元Q允许短分组(只有)在路径1204上向它向下发送。立即把这个分组通过路由在路径1254上传送到右边。如果上面单元不具有希望下来的短分组,则没有分组被允许向下传送。因此,使用路径1258的一部分交换机形成长期输入到输出连接,另外部分使用路径1256承载长分组,诸如SONET帧,路径1254承载长IP分组和以太网帧,而路径1252承载分段或个别的ATM单元。垂直路径1202和1204承载任何长度的分组。
多长度分组交换机图14是支持不同长度分组同时发送的一部分交换机的电路图,以及连接示出在MLML互连结构的两列和两层中的节点。节点为图12B所示的类型,支持多个分组长度;只示出了两个长度以简化说明短1434和长1436。节点1430包含单元C和D,每一个具有通过它们的两条水平路径,1434和1436。单元C1432具有来自上面1202的单个输入,并且与单元D一起共享下面的两条路径,1202和1024。垂直路径1202和1204可以承载发送的每种长度。两个分组已经从左边到达单元L处。长分组,LP1,首先到达,并通过路由在路径1202上向下传送。短分组,SP1,在后面到达,并且也希望使用路径1202;使它通过路由向右传送。单元L允许长分组从包含单元C和D的节点下来,但是不能允许短分组,因为到右边的短路径1434正在使用。单元C接收长分组,LP2,它希望向下移动到单元L;单元L允许它到来,单元C发送LP2在向下路径1204上到单元L,始终按路由把它向右传送。单元D接收短分组,SP2,它也希望通过向下路径1204到单元L,但是D不能向下发送它,因为长分组,LP2,正在使用路径1204。此外,即使不存在从C到L的长分组,单元D也不能够向下发送它的短分组,因为单元L已经阻塞从上面的短分组发送。
芯片边界在诸如图1A、1D、1E和1F所说明的系统中,有可能在单个芯片上放置许多系统部件。例如,在图1E说明的系统中,输入控制器(IC)和输出控制器和与输出控制器组合的请求处理器(RP/OC)可以具有逻辑,该逻辑对于要从线路卡接收的消息类型是特定的。以致接收ATM消息的线路卡的输入控制器可能与接收因特网协议消息或以太网帧的输入控制器不同。IC和RP/OC还包含缓冲器以及对于所有系统协议为通用的逻辑。
在一个实施例中,可以把所有或多个下列部件放置在单个芯片上·请求和数据交换机(RS/DS);·应答交换机(AS);·对于所有协议为通用的IC中的逻辑;·一部分IC缓冲器;·在对于所有协议为通用的OC/RP上的逻辑;·一部分OC/RP缓冲器;给定的交换机本身可以在一个芯片上,或它可以放在数个芯片上,或它可以包括大量光学部件。到交换机的输入端口可以是芯片上的物理引脚,它们可以在光—电接口处,或它们可以只是单个芯片上的模块之间的互连。
高数据速率实施例在许多方法中,在本专利中描述的系统的物理实施受到引脚的限制。考虑前面部分中讨论的芯片上的一个系统。将通过讨论特定的512×512例子来进行说明。假定在这个例子中使用低—功率差分逻辑,并且每个数据信号需要在和不在芯片上的两个引脚。因此,需要总数为2048个引脚来承载在和不在芯片上的数据。此外,需要512个引脚来发送从芯片到输入控制器不在芯片上部分的信号。假定,在这个特定例子中,差分—逻辑引脚对可以承载每秒625兆位(Mbps)。则可以使用单芯片系统作为512×512交换机,它具有运行在625Mbps的每个差分引脚—对信道。在另一个实施例中,可以使用单个芯片作为256×256交换机,它具有按每秒1.25千兆位(Gbps)的每个信道。其它选择包括2.5Gbps的125×125交换机;5Gbps的64×64或10Gbps的32×32。在一个芯片具有增加的数据速率和使用较少信道的情况下,可以在给定时刻把给定消息的多个分段馈送到芯片中。或可以把到达同一输入端口的不同消息的分段馈送到芯片中。在每种情况中,内部数据交换机仍是一个512×512交换机,它具有不同的内部I/O,用于保持各个分段的次序。另外的选项包括专利#2的主—从选项。在再另外的选项中,可以用较宽的总线来代替内部、单个线路数据承载线路。总线设计是简单的概括,熟悉本技术领域的人可以进行修改。为了构造具有较高数据速率的系统,可以使用诸如图10A和图10B所示的系统。例如,可以用两个交换系统芯片来构造具有每线路承载10Gbps的64×64端口系统;可以用四个交换系统芯片来构造具有每线路承载10Gbps的128×128端口系统。相似地,10Gbps的256×256系统需要8个芯片,而10Gbps的512×512系统需要16个芯片。
具有每芯片较少引脚的其它技术可以按每引脚对2.5Gbps的速度运行。在I/O运行得比芯片逻辑快的情况下,在芯片上的内部交换机的上层可以具有比芯片上的引脚对更多的行。
自动系统修复假定使用在以前系统中描述的实施例中之一,并且需要N个系统芯片来构造该系统。如在图10A和10B中所说明,把每个系统芯片连接到所有的线路卡。在具有自动修复的系统中,使用N+1个芯片。用C0,C1,...,CN来作为这N个芯片的标记。在正常模式中,使用芯片C0,C1,...,CN-1。把给定消息分裂成分段,给予给定消息的每个分段一个识别符标记。当收集分段时,比较识别符标记。如果分段中的一个分段已丢失,或具有不正确的识别符标记,则芯片中之一有缺陷,并且可以识别有缺陷的芯片。在自动修复系统中,可以把到每个芯片CK的数据路径切换到CK+1。如此,如果由不正确的识别符标记发现芯片J有缺陷,则可以自动地从系统中换去该芯片。
系统输入—输出接收大量较低数据速率信号和产生少量较高数据速率信号的芯片以及接收少量高数据速率信号和产生大量较高数据速率信号的芯片都是可以大批量得到的。这些芯片不是集中器,但是是简单的数据扩展或减少多路复用(mux)芯片。16∶1和1∶16芯片都是可商业购得的,以把使用625Mbps的差分逻辑的系统连接到10Gbps光学系统。16个输入信号需要32个差分逻辑引脚。与每个输入/输出端口相关联,系统需要一个16∶1多路复用器;一个1∶16多路复用器;一个可商业购得到的线路卡;以及一个IC-RP/OC芯片。在另一种设计中,不使用32∶1集线多路复用器,16个信号馈入16个激光器以产生10GbpsWDM信号。因此,使用今日的技术,运行在最高10Gbps的512×512全控制智能化分组交换机系统将需要16个定制的交换机系统芯片,以及512个I/O芯片组。这种系统将具有每秒5.12兆兆比特(Tbps)的横截面带宽。
另一种当前可供使用的技术允许构成运行在每端口2.5Gbps的128×128交换机芯片系统。128个输入端口将需要256个输入引脚和256个输出引脚。可以使用四个如此的芯片来形成10Gbps分组交换系统。
本发明的上述揭示和说明是本发明的说明和示例,可以在所附的权利要求书的范围内进行变化而不偏离本发明的精神。
权利要求
1.具有至少两个输入端口A和B、多个输出端口和在输入端口A处的消息MA的一种互连结构,其特征在于,把全部或一部分消息MA注入互连结构中的判定至少部分地取决于在输入端口B处的一个或多个消息的到达。
2.具有包括输入端口A的多个输入端口和包括输出端口X的多个输出端口以及到达输入端口A处的全部或一部分消息MA的一种互连结构,其特征在于,把消息MA注入互连结构中的判定至少部分地基于与输出端口X相关联的逻辑。
3.如权利要求2所述的一种互连结构,进一步包括输入端口B和在输入端口B处的消息MB,其特征在于,在输出端口X处的逻辑部分地基于把消息MA注入互连结构中有关消息MB的信息的判定。
4.如权利要求3所述的一种互连结构,其特征在于,消息MA和MB的目标对准输出端口X。
5.如权利要求3所述的一种互连结构,其特征在于,把MA注入互连结构的定时至少部分地基于在输入端口B处的一个或多个消息的到达。
6.具有进入结构的多个输入端口和从结构出来的多个输出端口以及目标对准互连结构的输出端口O的、在输入端口P处的消息MP的一种互连结构S,以及一种装置,用于把一个请求从输入端口P发送到与输出端口O相关联的逻辑L,所述请求要求从输入端口P把消息MP发送到输出端口O。
7.包括多个数据输入端口和多个数据输出端口的一种互连结构,以及一种装置,用于在多个数据输入端口中的不止一个数据输入端口处联合地监测进入数据分组。
8.如权利要求7所述的一种互连结构,其特征在于,所述监测装置是与所述多个数据输出端口中之一相关联的,到达一个或多个所述数据输入端口的数据分组是把所述多个数据输出端口中之一作为目标对准的输出端口。
9.如权利要求8所述的一种互连结构,其特征在于,所述多个数据输出端口中的每一个具有与其相关联的监测装置。
10.如权利要求9所述的一种互连结构,其特征在于,所述互连结构包括数据交换机、请求交换机和应答交换机,其中请求交换机和应答交换机是数据交换机的模拟。
11.如权利要求10所述的一种互连结构,其特征在于,所述监测装置包括所述请求交换机和所述应答交换机。
12.如权利要求11所述的一种互连结构,其特征在于,所述监测装置控制从所述数据输入端口到所述数据交换机的进入数据分组流,从而防止了所述互连结构的过载。
13.如权利要求12所述的一种互连结构,其特征在于,所述监测装置允许根据包括在所述进入数据分组中的服务质量参数来访问所述数据交换机。
14.如权利要求13所述的一种互连结构,其特征在于,所述监测装置保证永远不会丢弃部分进入数据分组,以及在严重过载情况下只丢弃低服务质量数据分组。
15.如权利要求14所述的一种互连结构,其特征在于,每个数据输入端口包括一个输入卡,所述输入卡包括一种装置,用于把请求数据分组发送到所述请求交换机,以请求准许把数据分组发送到目标数据输出端口。
16.如权利要求15所述的一种互连结构,其特征在于,所述应答交换机包括一种装置,用于准许所述输入卡把数据分组发送到所述数据交换机。
17.使数据分组从多个数据输入端口选择地传送到数据输出端口Z的一种互连结构N,包括与输出端口Z相关联的逻辑LZ,它控制目标对准输出端口Z的数据分组进入互连结构N的入口。
18.如权利要求17所述的一种互连结构,其特征在于,逻辑LZ根据与输出端口Z相关联的缓冲器状态来调度数据分组进入互连结构N的入口。
19.如权利要求17所述的一种互连结构,其特征在于,逻辑LZ根据到与输出端口Z相关联的缓冲器的一条信道的带宽来调度数据分组进入互连结构N的入口。
20.如权利要求17所述的一种互连结构,其特征在于,逻辑LZ根据来自输出端口Z的一条信道的带宽来调度数据分组进入互连结构N的入口。
21.如权利要求18所述的一种互连结构,其特征在于,与数据输入端口I相关联的逻辑LI请求准许与输出端口Z相关联的逻辑LZ通过互连结构N把数据分组M从输入端口I发送到输出端口Z。
22.如权利要求21所述的一种互连结构,其特征在于,所述逻辑LZ可以接受或拒绝通过互连结构N把数据分组M发送到输出端口Z的请求。
23.如权利要求22所述的一种互连结构,其特征在于,所述逻辑LZ调度将来时刻T处数据分组M进入互连结构N的入口。
24.如权利要求17所述的一种互连结构,其特征在于,在互连结构N的数据输入端口处接收消息的序列S,并且与互连结构N的目标数据输出端口相关联的逻辑调度供S的预定成员进入的预定时间,以进入输入端口N。
25.如权利要求24所述的一种互连结构,其特征在于,与所述数据输入端口相关联的逻辑重新排列序列S使得S的成员在由与所述目标数据输出端口相关联的逻辑确定的时刻进入互连结构N。
26.如权利要求25所述的一种互连结构,其特征在于,通过顺序地把数据放置到缓冲器中以及按不同的序列移出数据来实现所述序列重新排列。
27.包括到互连结构的多个输入端口和从互连结构的多个输出端口的一种互连结构S,具有P和Q为到结构的输入端口,以及一种装置,用于联合地监视进入输入端口P和Q的消息流。
28.如权利要求27所述的一种互连结构,其特征在于,与互连结构S的输出端口O相关联的逻辑L监视目标对准输出端口O的、来自输入端口P和Q两者的消息。
29.如权利要求28所述的一种互连结构,其特征在于,所述逻辑L准许在输入端口P处的消息进入互连结构。
30.如权利要求28所述的一种互连结构,其特征在于,所述逻辑L拒绝准许在输入端口P处的消息输入互连结构。
31.如权利要求28所述的一种互连结构,其特征在于,逻辑L检查关于在输入端口P处的消息MP的信息,以及关于在输入端口Q处的消息MQ的信息,以便判定对于MP和MQ进入互连结构S的准许是接受还是拒绝。
32.包括到互连结构的多个输入端口和到互连结构的多个输出端口以及在互连结构的输入端口P处的消息MP的一种互连结构S,具有目标对准互连结构输出端口O的消息MP,以及一种设备,设计成把请求从输入端口P发送到与输出端口O相关联的逻辑L,所述请求是为了输入端口P把消息MP发送到输出端口O。
33.如权利要求32所述的一种互连结构,其特征在于,所述逻辑L至少部分地基于有关消息MP的信息和有关不同于输入端口P的、所具有的消息也是目标对准输出端口O的输入端口处的消息的信息,来准许或拒绝输入端口P通过互连结构把信息MP发送到输出端口O。
34.如权利要求33所述的一种互连结构,其特征在于,从输入端口P把请求R发送到逻辑L,所述请求要求准许通过互连结构S把消息MP从输入端口P发送到输出端口O。
35.如权利要求34所述的一种互连结构,其特征在于,所述请求是数据分组RP。
36.如权利要求35所述的一种互连结构,其特征在于,通过互连结构S把所述数据分组RP从输入端口P发送到逻辑L。
37.如权利要求32所述的一种互连结构,其特征在于,通过与互连结构S不同的互连结构T把所述数据分组RP从输入端口P发送到逻辑L。
38.如权利要求35所述的一种互连结构,其特征在于,所述数据分组RP包含数据。
39.如权利要求35所述的一种互连结构,其特征在于,所述数据分组RP不包含数据。
40.如权利要求32所述的一种互连结构,其特征在于,经由多个节点和互连线路连接所述输入端口和输出端口。
41.如权利要求40所述的一种互连结构,其特征在于,所述互连结构的每个输出端口具有与其相关联的逻辑L。
42.通过互连结构发送消息MA的一种方法,所述互连结构具有至少两个输入端口A和B,消息MA到达输入端口A处,所述方法包括下列步骤监视输入端口B处的一个或多个消息的到达;以及根据判定把全部或部分消息MA注入互连结构中,至少部分地基于到达输入端口B处的消息的监视。
43.通过互连结构发送消息MA的一种方法,所述互连结构具有一个输入端口A和包括输出端口X的多个输出端口,全部或部分消息MA到达输入端口A处,所述方法包括下列步骤监视与输出端口X相关联的逻辑;以及根据判定把消息MA注入互连结构中,至少部分地基于关于目标对准X的以及在与A不同的输入处进入互连结构的消息MB的信息。
44.通过具有多个数据输入端口以及多个数据输出端口的互连结构发送数据分组的一种方法,所述方法包括在多个数据输入端口中的不止一个数据输入端口处联合地监视进入数据分组的步骤。
45.通过互连结构N从多个数据输入端口选择地把数据分组传送到数据输出端口Z的一种方法,所述方法包括监视与输出端口Z相关联的逻辑LZ来控制目标对准输出端口Z的数据分组进入互连结构N的入口的步骤。
46.通过互连结构S发送消息的一种方法,所述互连结构包括多个输入端口和多个输出端口,在输入端口P处的消息MP目标对准输出端口O,所述方法包括下列步骤把一个请求从输入端口P发送到与输出端口O相关联的逻辑L,以及监测逻辑L,以准许或拒绝把消息MP从输入端口P发送到输出端口O的请求。
47.包括多个模块的一种互连系统,所述模块包括模块M和作为结构中不活动部分的模块N,其特征在于存在判定模块M是否有缺陷的一种方法,在它有缺陷的情况下,自动用模块N来更换。
48.一种互连结构,其特征在于,按路由将长度L1的消息分段M1传送通过结构,以及按路由传送长度L2的消息分段M2通过结构,L1和L2是不相等的,并且存在为长度L1的消息分段保留的互连线路以及为长度L2的消息分段保留的独立的互连线路。
全文摘要
本发明针对并行信息产生、分配和处理系统(900)。这种可变规模的、流水线型的控制和交换系统(900)有效地和公平地管理多个输入数据流(132、134),以及应用服务要求的分类和质量。本发明还使用可变规模的MLML交换机结构来控制数据分组交换机(930),包括用于控制数据一分组交换机(930)的请求—处理交换机(104)。还包括管理和接受到输出端口的所有数据流的、用于每个输出端口的请求处理器(106),以及从请求处理器(106)把应答分组发送回请求输入端口的应答交换机(108)。
文档编号H04L12/56GK1561610SQ02819254
公开日2005年1月5日 申请日期2002年7月22日 优先权日2001年7月31日
发明者C·里德, J·核瑟 申请人:交互控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1