具体实施方式
本发明通过如以太网络(IEEE 802.3)的封包交换网络中的交换器范例来说明。但是,显而易见的,本发明可应用在其它封包交换系统,如下列的详述,以及其它普遍种类的系统。
交换架构的综述
图1为显示一范例系统可实施符合本发明的方法与系统的方块示意图。该范例系统可包含一封包交换网络100,如以太网络(IEEE802.3)。封包交换网络100可包括网络站110,变压器120,收发器130和140,网络节点150,主机160,外部存储器170,以及多端口交换器180。网络站110可包括习知的通讯装置,如不同设定的计算机。例如,装置可以每秒10兆位(Mb/s)或100兆位(Mb/s)的网络资料速率来传送和接收资料。
每个10/100Mb/s的网络站110可根据半双工或全双工以太网络协议来传送资料给多端口交换器180或接收由多端口交换器180而来的资料。以太网络协议ISO/IEC 8802-3(ANSI/IEEE Std.802.3,1993 Ed.)定义一允许全部的网络站110平等的存取网络信道的半双工媒介存取机制。半双工环境中的交通可能无法在传输媒介中辨别。更确切地说,各半双工网络站110可包括依各使用具碰撞侦测的载波感测多元存取(Carrier-Sense Mulitple Access with Collision Detection;CSMA/CD)的以太网络接口来聆听传输媒介上的冲突。可通过感测传输媒介上接收载波不主张(deassertion)来侦测网络交通的不存在。
任何具有需传送的资料的网络站110可于传输媒介上接收载波不主张之后,通过等待一预定的时间,此称为包间间隔(interpacket gapinterval;IPG),来试着取得信道。如果多个网络站110连接至同一条线,各网络站110会试图于感测到接收载波不主张并等待预定的时间之后,做出传送资料的反应,此举可能造成冲突。因此,传送的网络站110可以监测传送媒介以决定是否有因为另一网络站110于同一时间在同一条线上传送资料而造成冲突。如果侦测到冲突,两个网络站110皆停止传送,等待一随机的时间后,在重试传送。
10/100Mb/s网络站110于全双工下运作时可以根据以太网络标准IEEE 802.3u传送和接收资料封包。全双工环境提供双向、点对点的传输连结以令各连结的搭档(也即10/100Mb/s网络站110和对应的多端口交换器180)能同时传送和接收封包。
变压器120可包括磁性的变压器提供网络站110和收发器130之间的交流电耦合。收发器130可包括与多端口交换器180透过串联媒介独立接口(serial media independent interfaces;SMIIs)或减少媒介独立接口(reduced media independent interfaces;RMIIs)来通讯的10/100Mb/s实体层收发器。各收发器130可设定为透过SMII/RMII接收与传送多端口交换器180和最多四个网络站110之间的资料封包。SMII/RMII可在足够使各网络站110和对应的收发器130的资料封包能同时进行传送与接收的资料速率下进行。
接收器140可包括一个或一个以上的1000Mb/s(也即1Gb/s)实体层接收器以提供与结点的通讯,如网络节点150,透过例如一高速网络传输媒介。网络节点150可包含一个或一个以上的以网络速率1Gb/s来接收和传送资料封包的1Gb/s网络节点。网络节点150可包括,例如,服务器或网关器到高速骨干网络。
主机160可包括具有外部管理功能的计算机装置以控制多端口交换器180的整体运作。可提供多端口交换器180外部储存的外部存储器170可包括同步静态随机存取内存(synchronous static random accessmemories;SSRAMs)。各外部存储器170可包括电子工程设计发展联合学会(Joint Electron Device Engineering Council;JEDEC)的具有64位宽资料线和17
位宽地址线的管线式连续读取(pipelined burst)或零总线回复(ZeroBus Turnaround;ZBT)的SSRAM。外部存储器170可在64位的字线中以上层库和下层库来寻找地址。外部存储器170的大小最好至少是1Mbyte,且透过管线处理尽可能将资料在每个时脉周期时传输。
多端口交换器180选择地根据如以太网络协议的适当的传输协议发送从网络站110或网络节点150接收到的资料封包到适当的目的地。多端口交换器180可串连在一起(透过线190)以延展多端口交换器180的功能。
图2显示符合本发明实施例的多端口交换器180的详细图。多端口交换器180可包含一接收器205,一传送器210,一数据总线215,一排程器(schedular)220,流控制逻辑225,缓冲管理逻辑230,一端口向量等候列(Port Vector Queue;PVQ)235,输出控制等候列240,一内部规则检查器(Internal Rule Checker;IRC)245,缓存器250,管理信息库(Management Information Base;MIB)记数器255,一主机接口(I/F)260,一外部存储器接口265,一EEPROM接口270,一LED接口275,以及一联合测试行动组(Join Test Action Group;JTAG)接口280。
接收器205可包含媒介存取控制(MAC)模块以及接收缓冲器,如先进先出(first-in,first out;FIFO)缓冲器。接收模块可包含支持用于与其它多端口交换器180(图1)扩展的SMIIs、RMIIs、千兆位媒介独立接口(Gigabit Media Independent Interfaces;GMIIs)、十位接口(Ten BitInterface;TBIs)、以及私有接口(proprietary interfaces)的输入端口。扩展端口(Expansion Ports;EPs)可用于传输其它根据指定协议的多端口交换器180间的资料。扩展端口允许多端口交换器180串联在一起以形程骨干网络。各接收模块可包含接收来自网络站110和/或网络节点150的资料封包并储存于对应的接收FIFO的等候逻辑。等候逻辑可接着将部分封包送至IRC 245来处理并且透过外部存储器接口265送至外部存储器170做储存。
传送器210可包含MAC模块和传送缓冲器,如FIFOs缓冲器。传送模块可包括支持用于与其它多端口交换器180(图1)扩展的SMIIs、GMIIs TBIs、以及私有接口的输出端口。各传送模块可包含从外部存储器170取得封包并将封包储存于对应的传送FIFOs中的反向等候逻辑(dequeuing logic)。传送模块可自对应的传送FIFOs读取资料封包并且传送封包至网络站110和/或网络节点150。在另一符合本发明的替代实施例中,接收器205和传送器210的功能可由收发器执行,收发器管理既接收又传送资料封包。
数据总线215可包含一个或多个连接接收器205、传送器210、IRC245、以及外部存储器接口265之导线。排程器220可包含共至存取外部存储器170的逻辑,通过接收器205和传送器210的各自的等候和反向等候逻辑。多端口交换器180设定以不阻挡(non-blocking)交换器方式运作,其中分别以10、100、或1000Mb/s的线速从交换端口接收与传送网络资料。因此,排程器220可通过不同的端口来控制存取以将外部存储器170频宽的使用最佳化。
流控制逻辑225可包括与缓冲管理逻辑230、PVQ 235、和输出控制等候列240共同运作的逻辑以控制通过传送器210的封包的传送。流控制逻辑225可控制传送器210以令传送器210根据资料交通量以有效率的方式来输出封包。缓冲管理逻辑230可包含能预见多端口交换器180中内存的使用的逻辑。例如,缓冲管理逻辑230可管理框指针的使用和当资料封包以传送至其目的地的输出布后框指针的重复使用。框指针辨别外部存储器170中需要传送的数据帧的位置。
PVQ 235可包含取得给输出控制等候列240中适当的输出等候列的框指针的逻辑,该输出等候列是对应接收数据框传送的输出端口。针对多份数据帧,PVQ 235可提供多份同样的框指针给至少一个输出等候列。
输出控制等候列240可包含对应传送器中各传送模块的FIFO型的输出等候列。各输出等候列可包含多个给具有不同优先层级的数据帧的优先列。例如,高优先等候列可给需要低存取潜伏(latency)的数据帧(如多媒体应用的数据帧或管理框)使用。储存于FIFO型的输出等候列的框指针可通过各自的传送模块的反向等候逻辑来处理。反向等候逻辑使用框指针来存取外部存储器170以读取框指针所指示的内存位置上的数据帧。
IRC 245可包含对从接收器205接收的资料封包下发送决定的内部决定判断引擎。IRC 245可监测(也即窥察(“snoop”))数据总线215以决定框指针值和一部份的数据帧,例如,接收到框的标头信息,包括来源地、目的地、以及虚拟局域网络(VLAN)地址信息。IRC 245可使用标头信息以决定将框指针所指定的位置中储存的数据帧输出至哪个输出端口。IRC 245可因此决定给予的数据帧应通过单一端口(也即单址)、多端口(也即多址)、全端口(也即广播)、或无端口(也即舍弃)的方式输出。
例如,各数据帧可包含分辨来源地和目的地的地址的标头。IRC245可使用目的地地址来分辨适当的输出端口来输出数据帧。框标头也可包含VLAN地址信息以分辨数据帧为指定给网络站110组中一个或多个的资料。IRC 245可替代地决定应该将数据帧透过扩展端口传送给另一个多端口交换器180。所以,IRC 245决定是否应将暂存于外部存储器170中的数据帧输出至单一输出端口、多个输出端口、零个输出端口、或另一多端口交换器180。
IRC 245可以一发送描述符号的型式输出发送决定至PVQ 235。该发送描述符号可包含,例如,一端口向量分辨应传送数据帧、输入端口号码、或VLAN信息的各输出端口。PVQ 235可接着将框指针提供给输出控制等候列240中适当的输出等候列。
IRC 245也可执行第3层过滤。例如,IRC 245可以最多128种可程序化样式检查各接收的资料封包并且根据结果来处理封包。该结果可命令IRC 245舍弃该封包、发送该封包至主机160、或配置一使用者优先权或差别式服务规则点(DSCP)给封包。使用者优先权和DSCP可独立地规划至输出优先等级中。
缓存器250可包括一允许外部管理实体的标准接口,例如主机160,来控制多端口交换器180的整体运作。主机接口260可将于指定的站存器空间中的主机存取译码,并且读取和写入设定和状态信息至和从该缓存器250。
外部存储器接口265可包括允许到外部存储器170存取的标准接口。外部存储器接口265可允许当在由排程器220所决定的预定的时间位置时直接内存(Direct Memory Access;DMA)办理中于外部存储器170中封包资料的外部储存。在一符合本发明的实施例中,外部存储器接口265以至少66MHz时脉频率运作,并且,以100MHz或以上为较佳。
EEPROM接口270包含至另一外部存储器的标准接口,如一EEPROM。LED接口275包含至外部LED的标准接口。LED接口275可将输入和输出端口情况的状态传送至外部LED逻辑。外部LED逻辑可驱动人们可读取的LED显示组件。JTAG接口280可包含至外部测试装备的标准接口,例如,将执行在多端口交换器180上的边接扫描测试。
上述交换器架构的说明是为封包交换网络中交换运作的概述。接下来将更详尽的说明本发明的特色,如多端口交换器的实施例中。
范例动作卷标的产生
如本文中所述,动作卷标是位在接收器205和PVQ 235之间。动作卷标产生器产生所接收数据帧的动作卷标以指示交换器将如何处理数据帧的发送。动作卷标产生器可根据优先权或数据帧中差别式服务栏来支持动作卷标。
图3是显示符合本发明的实施例的多端口交换器的一部份。图3所示的多端口交换器的部份包括接收器205、数据总线215、PVQ 235、输出控制等候列240、IRC 245、缓存器250、主机接口260、以及外部存储器接口265。接收器205可包含MAC模块310和320分别对应至输入端口1到N,以及一动作卷标产生器340。各MAC模块可包括一接收FIFO缓冲器312、等候逻辑314、一端口过滤器316、以及一动作产生构件318。
接收FIFO缓冲器312可包括一FIFO暂时将自对应的输入端口接收的数据帧缓冲。等候逻辑314可包含负责将来自接收FIFO缓冲器312的资料透过外部存储器接口265传送给外部存储器170(图1)。端口过滤器316可包含决定有关接收到的数据帧的监控信息的逻辑。例如,端口过滤器316把监控规则用于接收的数据帧以辨别牵涉该数据帧的一个或多个监控方程式。监控方程式可具体指定将给予接收到的数据帧的处理种类,例如数据帧是否应该受到迅速的、担保的、或内定的处理或将数据帧抛弃或送至管理装置。
动作产生构件318,合同动作卷标产生器340,是根据端口过滤器316的结果运作以替每个接收到的数据帧产生动作卷标,动作卷标可,例如,具体指出将与数据帧相连的优先等级。
输出控制等候列240可包括与不同优先层级有关的优先等候列350。每个优先等候列350可储存一发送描述符号,该发送描述符号是与具有对应的优先等级的数据框相关。为使说明更明了,图3显示优先等候列350所涉及的两种优先等级:高或低优先权。在符合本发明的另一实施例中,优先等候列350所涉及的优先等级数量可能有所不同。例如,优先等级可对应高、中、低优先等级或高、中高、中低、低优先等级。
缓存器250可包含一个或多个以对应优先等候列350的优先等级程序化的缓存器。主机160可透过主机接口260将优先等级程序化入缓存器250。PVQ 235可使用来自缓存器250的优先等级以分辨输出控制等候列240中适当的优先等候列350以储存对应由多端口交换器180所接收的数据框的框描述符号。
图4显示符合本发明实施例的动作产生构件318、端口过滤器316、以及动作卷标产生器340。如图4中所示,动作产生构件318包括一状态机410,一译码器411,一内存412,以及一结果卷标接口413。
动作产生构件318接收来自端口过滤器316的监控信息。根据监控信息,动作产生构件318产生卷标信息并传送给动作卷标产生器340。拥有该信息后,动作卷标产生器340产生一最后动作卷标。PVQ235使用动作卷标以决定如何处理对应的数据帧。动作卷标产生器340也可传送一框指针以使PVQ 235分辨外部存储器170中的数据帧。
译码器411可为64位的优先权译码器。译码器411接收来自端口过滤器316的监控信息作为一个或一个以上合适的监控方程式的识别。作为响应,译码器411可选择最高优先权的监控方程式(根据译码器411的预定的程序)作为最后的相配者。接着译码器411输出对应该相配的监控方程式的地址给内存412,内存412使用此地址作为输出动作卷标的目的地。例如,内存412可由具有64字段表所组成,每一字段对应至64条监控方程式中的每一条。译码器411可输出选定的监控方程式的数字(1-64),其是直接指向对应至内存412中适当的字段。
内存412可储存多端口交换器180可以用何种方式来处理接收到的数据帧的信息。图5是显示内存412中的一范例表的一个项目500。项目500可包括一优先权字段510、一拒绝字段(D)511、一发送至管理字段(M)512,以及一优先字段(P)513。3位的优先权字段510分辨八个优先等级中哪一个是给予封包。1位的拒绝字段511可包括分辨是否将数据帧抛弃的信息。1位的发送至管理字段512可包括分辨是否将数据帧传送至如主机160的管理装置的信息。1位的优先字段513可包括指示优先权字段是否具有有效的信息。
回到图4,状态机410处理来自端口过滤器316的差别式服务信息。端口过滤器316可,例如,将6位的差别式服务规则字段(“DSCP”)传送至状态机410,该状态机410分辨数据帧所需的服务。如果数据帧和DSCP不相关时,端口过滤器316传送一其中具有全部位皆为零的DSCP字段。状态机410也可自端口过滤器316接收一错误信号用于指示在封包的差别式服务信息的处理或接收中有错误。端口过滤器316可通过在数据总线215上窥察从等候逻辑314传送至外部存储器170的数据帧时撷取数据帧的DSCP字段。
在接收到数据帧的DSCP字段后,状态机410发动连接至内存412的选通线以令内存412输出由译码器411所指示的表格项目。可通过结果卷标接口413将表格项目接收。状态机410也可将DSCP字段信息传送至结果卷标接口413。结果卷标接口413,接收到来自状态机410的DSCP字段以及来自内存412的项目500后的反应是产生一完整的动作卷标,并且发送给动作卷标产生器340。动作卷标产生器340接收来自各个动作产生构件318的动作卷标并将的传送给PVQ 235。当传送动作卷标至PVQ 235时,动作卷标产生器可将有关数据帧的额外的信息附加上,如指至外部存储器170中资料的指针。从各个动作产生构件318而来的动作卷标可以单一卷标流传送至PVQ 235。
图6显示一来自动作卷标产生器340的范例动作卷标600。DSCP/优先权字段605-610可包括分辨将给予数据帧的优先权或提供给数据帧的服务的信息。提供给封包的服务可包含差别式服务,如K.Nichols的”IPv4和IPv6标头中差别式服务字段的定义”(“Definition of theDifferentiated Services Field(DS Field)in the IPv4 and IPv6Headers,”),RFC2474,ftp://fip.norms.org/ietf/rfc/rfc2474.txt,December1998以及S.Blake的”差别式服务的架构”(“An Architecture forDifferentiated Services),ftp://ftp.norms.org/ietf/rfc/rfc2475.txt,December1998所述者。
字段602-604可分别包含来自拒绝字段511、发送至管理字段512、以及优先字段513的信息。另外,字段601可包含一指示是否字段605-610包含差别式服务信息的位。
下列表1描述当分辨DSCP时各种字段605-610设定的范例意义。在表中,“等级”代表不同程度的内定数据帧的发送,“担保发送”代表优先最大努力的数据帧发送,以及“迅速发送”代表最少潜伏、封包丢失、和延迟变异的数据帧发送。
表1 |
DSCP资料(605-610) |
意义 |
000000 |
CS0:内定发送等级0 |
001000 |
CS1:内定发送等级1 |
010000 |
CS2:内定发送等级2 |
011000 |
CS3:内定发送等级3 |
100000 |
CS4:内定发送等级4 |
101000 |
CS5:内定发送等级5 |
110000 |
CS6:内定发送等级6 |
111000 |
CS7:内定发送等级7 |
001010 |
AF11:担保发送等级11 |
001100 |
AF12:担保发送等级12 |
001110 |
AF13:担保发送等级13 |
010010 |
AF21:担保发送等级21 |
010100 |
AF22:担保发送等级22 |
010110 |
AF23:担保发送等级23 |
011010 |
AF31:担保发送等级31 |
011100 |
AF32:担保发送等级32 |
011110 |
AF33:担保发送等级33 |
100010 |
AF41:担保发送等级41 |
100100 |
AF42:担保发送等级42 |
100110 |
AF43:担保发送等级43 |
101110 |
EF PHB:迅速发送等级 |
下列表2描述当辨别优先权时各种字段605-610设定的范例意义。
表2 |
优先权资料(605-610位) |
意义 |
000000 |
优先权0(TOS0) |
000001 |
优先权1(TOS1) |
000010 |
优先权2(TOS2) |
000011 |
优先权3(TOS3) |
000100 |
优先权4(TOS4) |
000101 |
优先权5(TOS5) |
000110 |
优先权6(TOS6) |
000111 |
优先权7(TOS7) |
处理范例
图7显示端口过滤器316、动作产生构件318、和动作卷标产生器340的更详细的运作流程图。一开始,端口过滤器316可输出DSCP字段、一错误信号、和监控信息至动作产生构件318。(动作701)。如果该错误信号表示有错误,状态机410对接收到的数据帧发动抛弃动作。(动作702和703)。反之,状态机410则发动一选通信号至内存412。(动作704)。作为响应,内存412输出译码器411所指示的表格项目至结果卷标接口413。(动作705)。状态机410发送接收到的DSCP字段至结果卷标接口413。(动作706)。
DSCP字段中为零值则代表数据帧没有使用差别式服务。在此情况下,结果卷标接口413将来自内存412的项目发送给动作卷标产生器340。(动作707和708)。因此数据帧的优先权可通过来自端口过滤器316的监控方程式而决定。如果该DSCP字段为非零值,结果卷标接口413将表格项目500中的字段511-513复制到动作卷标字段602-604中以完成动作卷标600。(动作707和709)。结果卷标接口413传送已完成的动作卷标至动作卷标产生器340,该动作卷标产生器340将动作卷标发送至PVQ 235。(动作710和711)。在此方法中,端口过滤器316、动作产生构件318、和动作卷标产生器340根据监控信息和差别式服务等级信息运作而产生动作卷标。
如上所述,多端口交换器的动作机制有效率地处理有关诸如程序化入多端口交换器的监控规则或封包中的差别式服务等级信息的多种发送规则的资料封包的处理。
本说明书中仅揭示本发明的较佳实施例以及几个变化范例。应了解到本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。例如,虽然图7说明一连串的动作,在符合本发明的其它实施例中可改变动作的顺序。