CN1181654C - 使用网络处理器的网络交换机和方法 - Google Patents

使用网络处理器的网络交换机和方法 Download PDF

Info

Publication number
CN1181654C
CN1181654C CNB008115583A CN00811558A CN1181654C CN 1181654 C CN1181654 C CN 1181654C CN B008115583 A CNB008115583 A CN B008115583A CN 00811558 A CN00811558 A CN 00811558A CN 1181654 C CN1181654 C CN 1181654C
Authority
CN
China
Prior art keywords
data
frame
processor
interface
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB008115583A
Other languages
English (en)
Other versions
CN1369160A (zh
Inventor
Сղķ˹
小詹姆斯·艾伦
M
布赖恩·M·巴斯
����ά���ɿ�
琼·L·卡尔维格纳克
P
桑托斯·P·高尔
C���յ�˹
马科·C·赫德斯
S
迈克尔·S·西戈尔
J
法布里斯·J·沃普兰肯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1369160A publication Critical patent/CN1369160A/zh
Application granted granted Critical
Publication of CN1181654C publication Critical patent/CN1181654C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/002Details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54541Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme using multi-processor systems
    • H04Q3/5455Multi-processor, parallelism, distributed systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1302Relay switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13034A/D conversion, code compression/expansion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1304Coordinate switches, crossbar, 4/2 with relays, coupling field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13104Central control, computer control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13106Microprocessor, CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13107Control equipment for a part of the connection, distributed control, co-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13322Integrated circuits

Abstract

一种网络交换装置、用于该装置的各个部件、以及操作该装置的方法。该方法通过装在半导体基片(10)上的多个接口处理器(12)和一套外设元件协同工作,来增强对数据流的处理并提高灵活性。所述接口处理器(12)和外围设备共同构成一个网络处理器,该网络处理器可与其它元件(包括一个可选交换结构设备)协同执行有关指令,以控制网络中的数据流动。

Description

使用网络处理器的网络交换机和方法
技术领域
本发明涉及一种通信网络装置,可用来将各种类型和功能的信息处理系统或计算机连接到该装置。本发明尤其涉及用以组装上述装置的可伸缩的交换装置和部件。本发明涉及一种经过改进的多功能接口设备以及这种设备与其它元件的组合,从而构成一台中速网络交换机。本发明还涉及操作这种装置的方法,从而改善网络交换机处理数据流的能力。
背景技术
在下文的说明中,我们假定读者对用于通信网络的网络数据通信、交换机和路由器已有一定的认识。我们尤其假定读者对网络体系结构的ISO模式较为熟悉,该模式是把网络操作分成若干层。一个典型的基于ISO模式的体系结构是从第1层(有时也用“L1”来表示)开始向外延伸,第1层是指物理通道或介质,信号就是从这里上传至第2层、第3层、第4层直至第7层,第7层为应用程序层,应用程序运行在与网络相连接的计算机系统中。在本文中,我们将以L1、L2等来表示网络体系结构中相应的各层。本公开还假定读者对网络通信中由位串组成的“包”和“帧”有基本的了解。
在当今的网络世界,带宽是一种极为重要的资源。由于因特网的发展和其它新的应用程序的不断出现,网络通信量与日俱增,从而为网络基础结构的容量带来巨大压力。为跟上要求,许多公司都在寻求更好的技术和方法,从而为通信量的增长和话音与数据的会聚提供支持和管理。
目前的网络通信量之所以迅猛增长,主要归因于因特网的普及、对远程信息访问的日益频繁、以及新应用程序的不断出现。单说因特网一项,由于电子商务的飞速发展,已经使网络主干线路不堪重负。数据信息量不断增加并首次超过电话业务量,这其中,因特网起到了极为重要的作用。与此同时,对远程访问应用程序(包括电子邮件、数据库访问和文件传输)日益旺盛的需求,也在增大对网络的压力。
话音与数据的会聚将成为未来网络环境中的主角。目前,通过因特网协议(IP)网络的数据传输是不收费的。这是因为音频通信自然会寻求最低成本方式,话音必将与数据会聚在一起。在这种变化的市场中,诸如通过IP的话音传输(VolP)、通过ATM的话音传输(VoATM)以及通过帧中继的话音传输(VoFR)等技术的性能价格比都使其能占有一席之地。不过,要使这些技术得以应用,业界还必须保证话音服务质量(QoS),并确定如何对数据线上的话音传输进行收费。1996年的《电信自由化法案》使这一环境进一步复杂化。该法规旨在实现精选出来的语音协议ATM与精选出来的数据协议IP之间的协作关系。
随着新产品的不断问世和新功能的不断出现,能否将其集成到原有系统中成了众多公司十分关心的问题。为保留对原有设备和软件的投资,很多公司急需这样的解决方案,即能够将新技术移入,同时又不妨碍原有设备的使用。
消除网络瓶颈仍是众多服务供应商的当务之急。这些瓶颈的根源往往是路由器。然而,通常的网络拥挤往往被错判为带宽问题,于是把寻求较高的宽带当作解决方案。目前,生产商正逐渐意识到这个问题。他们开始转向网络处理器技术,以期以有线速度更有效地管理带宽资源,并提供先进的数据服务、这些服务通常在路由器和网络应用服务器中提供。这些服务包括负载平衡、QoS、网关、防火墙、安全以及Web高速缓存。
对于用于远程访问的应用程序来说,性能、符合需要的带宽、安全性和身份验证是头等重要的方面。将QoS与CoS相结合的需求、集成话音处理、更为复杂的安全性解决方案,这些也将影响未来远程访问网络交换机的设计思路。另外,远程访问还必须能适应物理介质数目的不断增加,如ISDN、T1、El、OC-3到OC-48、电缆以及xDSL调制解调器等。
业界顾问为网络处理器(这里也称作“NP”)下的定义是:一种可编程的通信集成电路,能执行以下一项或多项功能:
包分类——根据已知特征(如地址或协议)来标识包
包修改——对包进行修改,从而使其符合IP、ATM或其它协议(例如,更新IP首标中的实时激活字段)
队列/政策管理—反映包队列的设计策略
对于特定应用进行包出列和调度
包转发——通过交换结构发送和接收数据,并将包转发或路由到适当的地址。
尽管该定义对早期NP的基本特征给出了准确的说明,但NP的全面能力和效益的开发尚待实现。由于原来由软件处理的任务现在都可由硬件来执行,故网络处理器可以将带宽提高,并解决大量应用程序中所存在的问题。此外,NP还对体系结构(如并行分布式处理与流水式处理设计)中的速度予以改善。上述功能可提高搜索引擎的效率、增加处理量,并对复杂任务进行快速处理。
有人预计,就象CPU之于PC机一样,网络处理器将成为网络中的基本网络结构单元。NP能够提供的基本功能包括:实时处理、安全性、储存和转发、交换结构、IP包处理和学习功能。NP目标是ISO第2层至第5层,主要负责优化与网络相关的各项任务。
处理器模式的NP将多个通用处理器与专门的逻辑电路结合在一起。当前,供货商们都看好这种设计,它可以提供可伸缩的、灵活的解决方案,从而及时、经济地应对各种变化。处理器模式的NP可以在集成的较低层次上进行分布式处理,且具有较高的处理量、较好的灵活性和控制性。可编程性还可实现向新协议和新技术的方便迁移,而无需重新设计专用集成电路。通过处理器模式的NP,NEV可以从两个方面受益:一是降低了不可返还的工程成本,二是缩短了上市时间。
发明内容
本发明的目的之一是提供一个用于数据通信网络的可伸缩的交换机体系结构,它在改善传输数据处理速度的同时,还可以为各种潜在需求提供强大的支持。为实现上述目的,本发明提供了若干部件以及各个部件的组合,这些部件使处理单元的数据处理量与以前相比大大降低。
本发明的另一个目的是提供一种接口设备或网络处理器(这两个术语可互换使用),其中包含集成在一个基片上的若干子部件,这些子部件共同动作,对第2层、第3层、第4层和第5层中的帧进行中等速度的交换。该接口设备可作为单一解决方案为工作组交换机提供基本功能,也可作为互联解决方案为工作组交换机提供高级功能,或是通过与交换结构装置的合作来提供高级功能。
为此,本发明提供了一个设备,包括:一个自行路由交换结构装置,可定向从可识别地址进入该设备的数据,使其从该设备流出到已标识地址,所述交换结构装置有一个输入端口和一个输出端口,数据从其中流过;一个控制点处理器;以及多个接口装置,这些装置与所述交换结构装置和所述控制点处理器相连接,每个所述接口装置中有:一个半导体基片;多个装在所述基片上的接口处理器,所述处理器的数目至少为5个;装在所述基片上,并存储可由所述接口处理器访问的指令的内部指令存储器;装在所述基片上,并存储可由所述接口处理器访问的经过所述接口装置的数据的数据存储器;装在所述基片上的多个输入/输出端口;所述输入/输出端口中至少有一个将所述数据存储器与外部数据存储器相连接;所述输入/输出端口中至少有另外两个在所述接口处理器的指导下对通过接口装置的数据与外部网络进行数据交换;所述控制点处理器与所述接口装置协同工作,由控制点处理器将指令加载到所述指令存储器中,所述这些指令将由所述接口处理器来执行,从而控制在所述数据交换输入/输出端口之间的数据交换,以及经过所述数据存储器的数据的流动;以及多个所述接口装置与所述交换结构装置的每个输入端口和输出端口相连。
附图简要说明
前面已对本发明的一些目的作了表述,下面将结合附图对本发明的其它目的进行说明。在这些附图中:
图1是表示本发明接口设备的一个方框图。
图1A是说明MAC的一个方框图。
图2A到2D为在不同系统配置中该接口设备与其它部件相互连接的情况。
图3表示压缩引导帧的流程和处理步骤。
图4表示内部引导帧的流程和处理步骤。
图5为引导单元的概括形式。
图6所示为帧控制信息的格式。
图7所示为关联子的形式。
图8为命令控制信息格式。
图9为地址信息格式。
图10为结构编址的一般格式。
图11为编址和岛编码图解。
图12A为嵌入式处理器相复合的方框图。
图12B为嵌入式处理器的示意图。
图12C所示为GxH处理器的结构。
图13为存储器复合的方框图。
图14为固定匹配(FM)搜寻算法流程图。
图15为不使用直接表和使用直接表两种情况下的数据结构流程图。
图16是以Prizma为例的交换系统的方框图。
图17为CP的方框图。
图18为单片网络处理器的方框图,主要突出其EDS-UP、EDS-DOWN和EPC功能。
本发明的实施例
在下文中,我们将通过本发明的优选实施例并结合附图对本发明进行更加充分的说明,不过读者应事先明白,本领域的技术人员可以对本发明进行某些修改,但仍能达到本发明的理想效果。因此,应当说,下面的说明只是为本领域的技术人员提供了一种广义的、启发性的揭示,并不等于对本发明的限制。
本公开中的装置是可伸缩的,具有互联桌面或工作组交换机功能,可将其接入网络主干线路,并可提供主干交换机服务。该装置可支持第2层、第3层和第4层以上的硬件。该装置的一些形式是为桌面或工作组交换机集合体设计的,另外一些形式则是为核心骨干网交换机设计的。
用于该装置的体系结构,其基础是接口设备或网络处理器硬件子系统以及在控制点运行的一个软件库,这些在本文后面的内容中将进行充分说明。该接口设备或网络处理器子系统是一种高性能帧转发引擎,它以对L2、L3和L4+的协议首标进行解析和翻译。这样就可以通过使用硬件以更快的速度来交换协议。该接口设备或网络处理器子系统提供一个通过箱的快速通道,软件库和控制点处理器提供维护此快速通道所需的管理及路由显示功能。在其上运行的控制点处理器和软件库共同限定系统的控制点(CP)。现实网桥和路由协议(如透明网桥和OSPF)都在CP上运行。CP也可作为系统中的低速通道。
本公开中的该装置除了可支持硬件设备中的多层转发外,还可单独作为L2上的交换机来运行,而且这也是它在本专利的简式公开中的默认运行方式。每个域中都有一个端口,从而使任何设备都能与其它设备通信。该装置可在L2配置,从而使系统管理员能够对某些功能进行配置,比如将通信口分为单独的域或主干区、配置虚拟数据网络(VLAN)段、或是配置过滤器以控制广播和多播业务。
这一可伸缩的装置有多种优点。首先,它使系统管理员能够配置IP和IPX业务的L3转发和路由,所使用的硬件与L2相同,速度也相同。其次,它在提高性能的同时不需要使用外部路由器来连接园区建筑。第三,它简化或合并了对L2/L3服务的管理,将其集中到一个控制点上。最后,它还为L4+功能提供了一些增值特征,从而使系统管理员能够对不同类别的通信量进行分配,从而支持任务关键的应用,它还可使网络分配器达到不同服务器间的动态平衡。
该装置可用作一个模块单元,其基本组成包括:一个接口设备或网络处理器、一个控制点(CP)和一个交换结构装置(可选)。该接口设备优选情况下提供L2/L3/L4+的快速路径转发服务,而CP可提供维护该快速通道所需的管理及路由显示功能。上述可选的交换结构装置用于两个以上的接口设备子系统相互连接的情况。有关该可选交换结构装置,详见美国专利第5,008,878号,公开日为1991年4月16日,标题为“HighSpeed Modular Switching Apparatus for Circuit and Packet SwitchedTraffic”。
该装置使用印刷电路板单元(这里也称作“托板”)来组合安装。这些印刷电路板单元上装有电路元件,这些电路元件插在装置外壳的连接器上。类似的装置又称作“可选插件”。对于该装置,我们假设,在有合适的连接器和底板电源接头的情况下,托板的底盘或外壳均可变换。构成各种托板的基本部件是托架子系统。从托架子系统的角度来讲,可以有三种托板。第一种是只有CP的托板,它由一个托架子系统和一个CP子系统组成。这种只有CP的托板主要用于优先考虑冗余性的产品。第二种是CP+介质托板,它由一个托架子系统、一个CP子系统和一个1-3介质子系统组成。这种CP+介质托板主要用于视端口密度比冗余性更重要的产品。第三种是介质托板,它由一个托架子系统、和一个1-4介质子系统组成。这种介质托板可用于任何底盘,而且这种介质子系统还可配置。
托板管理包括故障检测、电源管理、新装置检测、初始化和配置。上述管理是通过使用各种寄存器、I/O信号以及用于CP和托架子系统之间通信的引导单元接口来实现的。不过,与底盘不同的是,所有的托板上都有可编程装置和存储器。可编程性的程度取决于托板的种类。当托板上存在CP子系统时,CP和托架子系统均可编程。介质子系统也是可编程的,不过只能间接地通过托架子系统来实现。
在某些功能较强的产品中,还有一个交换托板,其中包含交换结构装置子系统。该托板的管理包括故障检测、电源管理、新装置检测和初始化和配置。上述管理是通过使用各种寄存器和I/O信号来实现的,这些寄存器和信号可映射到CP子系统中。
本发明假定这种交换装置的简式形态中有一个控制点处理器,还有一个连接到该控制点处理器的可操作的接口设备。在本公开中,我们更倾向于将该接口设备(又称网络处理器)假设为一个单一的、超大规模集成电路装置(VLSI,超大规模集成电路)或集成电路块,它包含一个半导体基片,基片上有多个接口处理器,所述基片上有内部指令存储器,并存储可以由接口处理器访问的经由该设备的数据,位于基片上的内部数据存储器和通过该装置可到达接口处理器的存储数据;以及多个输入/输出端口。在本文中,该接口处理器有时也称为微微处理器或处理单元。在所提供的端口中,至少有一个端口用于将内部数据存储器与外部数据存储器相连接,另外有两个以上的端口用于在接口处理器的指导下通过该接口设备与外部网络交换数据。控制点与接口设备协同工作,先由控制点将指令输入指令存储器,然后由接口处理器来执行这些指令,从而控制在输入端口与输出端口之间的数据交换以及通过数据存储器的数据流量。
本公开中的网络处理器被当成是除组成交换机的各个部件之外的发明。此处公开的网络处理器被认为在其单元内具有其它一些未在此处讨论的发明。
图1是一个方框图,用以说明该接口设备集成电路块,其中包含基片10和集成在该基片上的多个子部件。这些子部件被排列成上行配置和下行配置。在这里,“上行”是指数据流从网络进入到该装置,而“下行”则是指数据从该装置出来,进入到网络服务中去。数据流分别依照不同的配置流动。这样,就有了一个上行数据流和一个下行数据流。上行线中的子部件包括:入列-出列-调度UP(EDS-UP)逻辑电路16、多路复合MAC-UP(PPM-UP)14、交换数据推进器-UP(SDM-UP)18、系统接口(SIF)20、数据调整串行链接连接A(DASLA)22、以及数据调整串行链接B(DASLB)24。数据调整串行链接在1999年6月提出的标题为High Speed High Speed Parallel/Serial Link for Data for DataCommunication的美国专利申请第09/330,968号中有详细的说明。虽然在本发明中该装置优选了DASL连接的形式,但本发明认为,为达到较高的数据流速率,也可使用其它形式的连接,尤其是将数据流限在VLSI结构的范围之内。
下行线中的子部件包括:DASL-A 26、DASL-B 28、SIF 30、SDM-DN32、EDS-DN 34以及PPM-DN 36。集成电路块中也包含多个内部S-RAM、通信管理调度器40,以及嵌入式处理器复合(EPC)12。接口设备38通过相应的DMU总线与PMM 14和36相连接。接口38可以是任何适当的L1线路,如以太网实体(ENET PHY)、ATM帧调节器等。接口的种类一定程度上决定于集成电路块所连接的网络介质。有多个外部D-RAM和S-RAM可供该集成电路块使用。
虽然本公开的网络中一般数据是通过导电体(如布设在楼宇中的电线和电缆)从相关的转换器和路由装置中流出的,但本发明假定,本公开中的网络交换机和部件也可用于无线环境。举例来说,这里所讲的媒体接入控制(MAC)单元就可以由适当的射电频率单元来替代,如可以使用知名的硅锗技术,从而将上述单元直接连接到无线网络。在适当应用上述技术时,射电频率单元可以由本领域的技术人员集成到本公开所讲的VLSI结构中。另外,射电频率抑或是无线响应器(如红外线响应器)可以与本公开的其它单元一道安装在托板上,从而组成用于无线网络系统的交换装置。
箭头所示为数据在接口设备内部的通常流向。从以太网MAC接收的帧由EDS-UP放在内部数据存储器的缓冲区。这些帧被当作普通的数据帧或系统控制引导帧排入EPC的队列中(图1)。EPC中包含N个协议处理器,最多可并行处理N个帧(N>1)。在一个有10个协议处理器的实施例(图12B)中,有两个协议处理器是专用的:一个用于处理引导帧(普通中央处理器,或GCH),另一个用于在控制存储器中建立查找数据(普通树形处理器,或GTH)。帧如图12A所示,EPC中包含有一个分配器,可将新的帧与空闲的处理器相匹配;一个完成单元,用以维护帧序列;一个由全部十个处理器共享的公共指令存储器;一个用以决定帧的分类的分类器硬件加速器和一个用以帮助确定帧的起始指令地址的协处理器;用以控制帧缓存的读写运算的入口和出口数据存储连接;一个能使十个处理器共享控制储存器的控制存储器判优器;能够对内部接口装置的数据结构进行调试的Web控制器、判优器和连接;以及其它硬件结构。
GCH处理器一但可用,分配器就会把引导帧发送进来。然后由GCH处理器来执行引导帧中各种代码化的操作,如寄存器执行写入,计数器执行读取,以太网MAC执行配置更改,等等。查找表格的各种更改,如MAC或IP条目的增加,也将被传送到查找数据处理器,以便进行控制存储器运算,如存储器读出和写入等。有些命令,如MIB计数器读取,要求建立一个应答帧并将其转发到适当接口设备的适当端口上去。在有些情况下,引导帧为接口设备的出口端编码。这些帧被转发到正在查询的接口设备的出口端上,然后执行编码运算并建立适当的应答帧。
数据帧被发送到下一个可用的协议处理器上,在那里执行帧查找。帧数据连同来自分类器硬件加速器(CHA)引擎的结果一起被送到该协议处理器上。CHA对IP或IPX进行解析。其结果将决定树搜索算法和公共指令地址(CIA)的起始。所支持的树搜索算法包含固定匹配树型结构(要求准确吻合的固定尺寸格式,如第2层以太网MAC表),最长前缀匹配树型结构(要求可变长度匹配的可变长度格式,如子网IP转发)以及软件处理树型结构(定义范围或字节掩模组的两个图案,如过滤器法则中所使用的)。
查找是在树形搜索引擎(TSE)协处理器的帮助下执行的,该处理器属协议处理器的一部分。TSE协处理器执行控制存储器访问,空出协议处理器来继续执行。控制存储器上储存着全部表、计数器及其它该微微码所需的数据。控制存储器运算是由控制存储器判优器来管理的,判优器在十个处理器间对存储访问进行判优。
帧数据是通过数据存储协处理器来访问的。数据存储协处理器中包含一个初级数据缓冲区(最多可容纳8个16字节的帧数据段),一个便笺式数据缓冲器(最多也可容纳8个16字节的帧数据段)和若干用于数据存储操作的控制寄存器。一旦发现了某个匹配,入口帧变更中就会包含一个VLAN首标插入或覆盖。这种变更不是由接口设备处理器复合来执行,而是首先得到硬件标志,再由其它入口转换接口硬件来执行。其它帧的变更可由微微码和数据存储协处理器通过修改帧的入口数据存储中所包含的内容来完成。
其它数据被收集起来并用于在向交换结构装置发送帧之前构建交换机首标和帧标题。帧数据是通过数据存储协处理器来访问的。
在完成之后,入列协处理器就会建立起必要的形式,以便将该帧加入到交换结构队列并将其发送到完成单元。完成单元保证帧从十个协议处理器到交换结构队列的顺序。从交换结构队列出来的帧被分成以64个字节为单位的段,并嵌有帧标题字节和交换首标字节,就象将被送到Prizma-E交换机时一样。
从结构接收到的帧由出口EDS(34)放置在出口数据存储(出口DS)缓冲区并排入EPC队列。一部分帧由分配器发送到某个空闲的协议处理器来执行帧查找。帧数据与来自分类器硬件加速器的数据一起被发送到该协议处理器。分类器硬件加速器运用由入口接口设备生成的帧控制数据来帮助确定密码指令地址(CIA)的起始。
与在入口检索中的情况相同,出口树形搜索也支持同样的算法。查找是在TSE协处理器上执行的,这样可以使协议处理器能够继续执行。所有的控制存储器运算是由控制存储器判优器来管理的,判优器在十个处理器间对分配存储器访问进行判优。
出口帧数据是通过数据存储协处理器来访问的。数据存储协处理器中包含一个初级数据缓冲区(最多可容纳8个16字节的帧数据段),一个便笺式数据缓冲器(最多也可容纳8个16字节的帧数据段)和若干用于数据存储操作的控制寄存器。成功查找的结果中包含转发信息,有时还包含帧变更信息。帧变更中也可包含VLAN首标缺失、实时激活增值(IPX)或递减(IP),IP首标和校验重算、以太网帧CRC覆盖或插入,以及MAC DA/SA覆盖或插入。IP首标和校验是由校验和协处理器来准备的。这种变更不是由接口设备处理器复合来执行,而是首先生成硬件标志,再由PMM入口硬件来执行。在完成之后,入列协处理器就会根据要求建立必要的形式,以便将EDS出口队列中的帧加入列列并将其发送到完成单元。完成单元保证帧从十个协议处理器到EDS出口队列的顺序,以便馈送到出口以太网MAC 36。
已完成的帧最终由PMM出口硬件发送到以太网MAC,并从以太网端口输出。
一条内部总线(亦称为Web)提供对内部寄存器、计数器和存储器的访问。该Web中还包含一个外部接口,用以在调试和诊断中控制指令步骤或中断控制。
树形搜索引擎协处理器可提供存储范围检查、非法存储器访问提示,此外还可与协议处理器并行操作执行树形搜索指令(如存储器读出、写入或读取-增加-写入)。
公共指令存储器由一个1024×128的RAM和两组复式512×128RAM组成。每套复式RAM可提供两份微微码,从而使处理器能在相同的地址范围内独立访问指令。每个128位字中包含四条32位指令,总共可提供8192条指令。
分配器控制帧的通过使其到达十个协议处理器,同时管理中断信号和计时器。
完成单元保证帧从处理器复合到交换结构和目标端口队列的顺序。一套内容丰富的指令集中包含条件执行、拼(用于输入散列密钥)、条件转移、有签名的和未签名的操作、先导零字符统计等等。
分类器硬件加速器引擎将每个帧的第2层和第3层传送到协议首标,并在将帧发送到协议处理器的过程中提供这些信息。
控制存储判优器控制处理器对内部和外部存储器的访问。
外部控制内存选项包含5到7个DDR DRAM子系统,每个子系统支持一对2M×16位×4排或一对4M×16位×4排的DDR DRAM。DDRDRAM连接以133兆赫的时钟频率运行,一个266兆赫的数据频闪仪支持可配置的CAS延迟和驱动强度。另外还可根据需要选择增加一个133兆赫的ZBT SRAM,其配置可为128k×36、2×256k×18或者2×512k×18。
出口帧可以储存于一个外部数据缓冲区(如DSO),也可以储存于两个外部数据缓冲区(DSO和DS1)。每个缓冲区可以由一对2M×16位×4排的DDR DRAM组成(最多可储存256k的64字节帧),或是由一对4M×16位×4排DDR DRAM组成(最多可储存512k的64字节帧)。对于2.28Mbps可选择一个外部数据缓冲区(如DSO),若要支持4.57Mbps的第2层和第3层就要增加第二个缓冲区(如DS1)。增加第二个缓冲区可改善性能,但并不增加帧容量。外部数据缓冲区连接以133兆赫的时钟频率运行,它还带有一个266兆赫的数据频闪仪,用以支持可配置的CAS延迟与驱动强度。
内部控制存储中包含两个512×128位的RAM、两个1024×36位的RAM以及一个1024×64位的RAM。
内部数据存储器在入口方向(上行)最大可提供2048个64字节的帧的缓冲。
固定的帧变更包括在入口方向的VLAN标记插入和删除、Time To Live的增量/递减(IP、IPx),以太网CRC覆盖/插入,以及在出口(下行)方向的MAC DA/SA的覆盖/添加。
端口映射功能可以将一个接收端口和一发送端口复制到指定系统的观察端口,而无须使用协议处理器资源。映射而来的接口设备端口可用以增加帧和交换控制数据。一个单独的数据通道可以对帧进入入口交换接口队列进行控制。
接口设备中集成了四种以太网宏指令。每个宏又可以分别进行配置,从而在1G比特或10/100的快速以太网模式下运行。每个以太网宏最多可支持十个10/100Mbps的MAC,或者说四个宏指令中的每一个都可支持一个1000Mbps的MAC。
图1A为一个MAC核心部分的方框图。每个宏中包括三个以太网核心设计;即多口10/100Mbps MAC核心(Fenet)、1000Mbps MAC核心(Genet)以及100Mbps物理代码底层核心(PCS)。多端口以太网10/100MAC的功能:
支持该物理层上的十个串行介质设备独立连接
能够处理速度为10Mbps或100Mbps的中速或任意速度组合的十个端口
一个MAC通过一个时分多路复用连接服务于全部十个端口
在所有端口上以中速支持完全/半双向通信
支持IEEE 802.3二进制指数补偿
1000Mbps以太网MAC核心的功能:
支持到物理PCS层上的十亿比特介质独立连接(GMIi)直接到达物理层
通过PCS核心来支持完全的TBI(8b/10b)解决方案
以中速支持全双向点到点连接
支持IBM PCS核心有效字节信号
1000Mbps以太网物理代码底层核心的功能:
执行8b/lOb代码及解码
支持如IEEE 802.3z中所定义的PMA(10位)服务接口,该接口可与符合IEEE 802.3z定义的任何PMA相连。
将来自PMA(二相时钟)的数据与MAC(单相)时钟同步
支持包括下两页在内的自动洽谈
从标准中定义的二相时钟系统向单相时钟转换
向MAC提供信号指示出包含新数据的时钟周期
核对COMMA收到的代码组(10位)并建立起单词同步
计算并核对8b/10b运行的不均匀性
图2A到2D说明接口设备集成电路块的不同配置。该配置中由于有了DASL并连接到交换结构装置而变得更为方便。每个DASL中包括两个信道,即一个发射信道和一个接收器信道。
图2A表示一单一接口设备的包配置。在该配置下,发射信道被轮循到接收信道当中。
图2B表示两个接口设备集成电路块相连接时的配置。每个接口设备集成电路块中至少装有两个DASL。在该配置中,一个集成电路块上的DASL上的信道与位于另一个集成电路块上的相匹配的DASL上的信道相连接而运行。每个集成电路块上的另外一个DASL则被卷包起来。
图2C表示交换结构中多接口设备相连接时的配置。其中双向箭头表示沿两个方向传输。
图2D表示将一台主交换机和一台备用交换机连接到多个接口设备时的配置情况。如果主交换机发生故障,就可以起用备用交换机。
控制点(CP)包括连接到每一种配置的一个系统处理器。CP上的系统处理器主要提供初始化以及与集成电路块相关的配置服务。CP可处于以下三个位置之一:在接口设备的集成电路块上,在装有集成电路块的托板上,或是在托板之外。如果是在托板以外,CP就可能远程的;也就是说,它身处别处,通过接口设备和中央处理器所属的网络来进行通信。CP上的各个单元如图17所示,其中包括若干存储器单元(高速缓存、闪存和SDRAM)、一个存储器控制器、一个PCI总线、以及用于底板和L1连网介质的连接器。
图18为一个单片网络处理器的方框图,主要突出其EDS-UP、业务管理(MGT)调度器和EDS-DOWN(DN)功能。其中的U-形图标表示队列,而跟踪队列中的内容的控制块(CB)则由长方形图标表示。
下面将对各元件、其各自的功能和交互作用进行说明。PMM:是网络处理器的一部分,该网络处理器中包含MAC(FEnet、POS、GEnet)并与外部PHY设备相连接。
UP-PMM:这一逻辑电路从PHY当中提取字节,将其转换为FISH(16字节)的格式,然后送至UP-EDS。在PMM中有4个DMU,每个DMU都能够使用1GEnet或10FEnet的装置。
UP-EDS:该逻辑电路从UP-PMM上提取FISH,将其存入UP-数据存储器(内部随机存取存储器)。它能够同时处理40帧,而且可以在收到适当的脉码调制数字节之后将帧排入EPC队列。当EPC处理完帧之后,UP-EDS就将该帧排入适当的目标端口队列并开始将该帧发送到UP-SDM。UP-EDS负责全部缓冲区和帧的管理,并负责在向UP-SDM的传递完成之后将缓冲区/帧送回到空闲库。
EPC:该逻辑电路中包含一个微微处理器,并可以包含一个嵌入式PowerPC。该逻辑电路能够通过查看帧标题来决定如何处理该帧(转发、修改、过滤等)。EPC可以对若干个查找表格进行访问,其硬件可帮助微微处理器跟上网络处理器对高速带宽的要求。
UP-SDM:该逻辑电路可提取帧并将其转变成PRIZMA单元的格式,以便于向交换结构传输。该逻辑电路还能够将VLAN首标插入到帧。
UP-SIF:该逻辑电路中包含UP-DASL宏指令,与外部开关I/O相连。
DN-SIF:该逻辑电路中包含DN-DASL宏指令,可以从外部I/O接收PRIZMA单元。
DN-SDM:该逻辑电路接收PRIZMA单元并对其进行预处理,以便帮助重新组装帧。
DN-EDS:该逻辑电路提取每个单元并将其组合还原为帧。该单元储存在外部数据储存器,与缓冲区相联来构造帧。在接收整个帧之后,便将该帧排入EPC队列。当EPC处理完该帧之后,就把该帧排入调度器(如果存在)的队列中,或是排入目标端口队列。然后DN-EDS通过帧发送程序,把帧发送到适当的端口,把所有的变更信息和某些控制信息发送到DN-PMM。
DN-PMM:从DN-EDS中提取信息,将帧格式化为以太网、POS等,然后将帧发送到外部PHY。
SPM:该逻辑电路可使网络处理器联接到外部设备(PHY、LED、FLASH等),但只需要3个I/O。网络处理器使用一个串行接口与SPM通信,然后SPM启动必要的功能来管理这些外部设备。
上行流程
1)帧达到PHY
2)UP-PMM收到字节
3)UP-PMM将FISH发送到UP-EDS(Fish是指帧的一个部分)
4)UP-EDS将FISH储存到UP-DS
5)UP-EDS将首标发送到EPC
6)EPC处理首标后将入列信息送回到UP-EDS
7)UP-EDS继续从UP-PMM上接收帧的其余部分
8)当可以把适当的数据发送到交换机上时,UP-EDS就将信息发送到UP-SDM
9)UP-SDM读取帧数据,然后将其格式化为PRIZMA单元
10)UP-SDM将各个单元发送到UP-SIF
11)UP-SIF将各个单元通过DASL序列传输到PRIZMA
12)当全部数据提取完毕之后,UP-EDS释放缓冲区/帧
下行流程
1)DN-SIF接收PRIZMA单元
2)DN-SDM存储这些单元并对其进行预处理,以便对信息进行重新组合
3)DN-EDS接收上述单元数据并重新组合信息,然后将这些单元连接成下行线上的一个新帧
4)DN-EDS将单元储存到DN-DS
5)在所有数据接收完毕之后,DN-EDS将帧排入到EPC队列
6)EPC处理首标并将入列信息送回DN-EDS
7)DN-EDS将帧排入调度器队列(如果存在)或是目标端口队列
8)DN-EDS服务于队列并将帧信息发送到PCB中
9)DN-EDS使用该PCB将帧“散开”,然后读取适当的数据并这些数据发送到DN-PMM
10)DN-PMM将数据格式化(如有要求不可更改),然后将帧发送到外部PHY
11)当不再需要缓冲区时,DN-PMM就通知DN-EDS,DN-EDS就会释放这些资源
帧控制流程
1)将首标从UP-DS或DN-DS送到EPC
2)EPC在查找表格中查找标头资料并接收帧队列信息
3)EPC将排队信息送回到EDS,于是该帧被排入适当的队列
4)单元首标和帧标题与帧数据一起被发送出去,从而有助于帧的重新组合和转发
CP控制流程
1)控制点将所引导的帧格式化并将它发送到网络处理器
2)网络处理器将所引导的帧排入GCH微微处理器队列
3)GCH处理对引导帧进行处理并读取或写入所要求的Rainier区域
4)GCH将所有的表更新要求传递到GTH
5)GTH根据来自引导帧的信息更新适当的表
6)将引导帧确认送回到CP
网络处理器控制流程
1)微微处理器可建立一个引导帧,以便将信息发送到另一个Rainier或控制点
2)该引导帧被送到适当的位置进行处理
接口设备提供中速交换,最多可达40个快速以太网端口(图2A)。如果使用IBM的数据调整同步联动装置(DASL)将两个接口设备连接起来,就可支持80个快速以太网端口。每个DASL差分器对可承载440Mbps的数据。两组八对可提供3.5Gbps的双向连接(8X每个方向的440Mbps)。如图2C和2D所示,通过将多个接口设备互连到一台交换机(如IBM的Prizma-E交换机)可建立起更大的系统。该接口设备可提供两个3.5Gbps的双向DASL连接,一个主要的和一个辅助的,可用来对本地帧通信提供卷包后路径(当两个接口设备直接相连时,图2B)或连接到一个多余的交换结构(图2D,备用交换机)。由以上所述可见,这样的网络处理器芯片是有伸缩性的,即同一集成电路块既可提供低端系统(具有相对较低的端口密度,如40),又可提供高端系统(具有比较高的端口密度,如80-N端口)。
系统中的接口设备经由10/100Mbps的快速以太网端口(最多可达十个)或一个1000Mbps以太网端口与系统处理器相连。配置到系统处理器的以太网位于EEPROM,后者与上述接口设备相连,于初始化过程中载入。系统处理器通过建立专门的引导帧(压缩为以太网帧)可与同系统中的所有接口设备通信。压缩引导帧通过与其它装置相连接的DASL来转发,从而使得系统中所有的接口设备都可通过一个点来控制。
引导帧用以在控制点(CP)与嵌入式处理器复合之间以及在同一接口设备内部进行通信。先前有关引导单元的公开将有助于阐明本专利中的讨论,详见1998年3月提出的标题为Efficient Hardware/SoftwareInterface Software Interface for Data Switch的美国专利5,724,348。
对于那些源自CP的引导帧通信,CP会在其本地存储器中的数据缓冲器中构建引导帧。CP设备驱动程序将引导帧发送到网络处理器的介质接口。媒体接入控制(MAC硬件)将引导帧进行恢复,并将其存入内部数据存储器(U_DS)中。引导帧被送往适当的托板,经处理后根据需要再路由回到CP。在外部CP与接口设备之间传递的引导帧是压缩过的,以便适应外部网络协议。因此,如果外部网络中有以太网,则引导帧就被压缩为以太网帧,如此等等。
以太网压缩为引导通信在CP与接口设备之间传输提供了一种装置。接口设备的以太网MAC(Enet MAC)在接收帧时并不解析目的地址(DA)或源地址(SA)。这种解析是由EPC微微码来执行的。引导通信假设接口设备尚未配置,DA和SA无法由EPC微微码解析。因此,这些帧本身就能够自我路由。然而,Enet MAC会解析以太网类型字段以便从数据通信当中辨别引导通信。该引导帧的以太网类型值必须与载入E_Type_C寄存器中的值相匹配。寄存器是从闪速存储器中由接口设备的根目录微微码载入的。
CP在其本地存储器的数据缓冲区中构建引导帧。CP处理器中的32位寄存器的内容以大头格式保存在本地存储器中(如图3所示)。当构造好帧之后,CP的设备驱动程序就将以太网帧发送出去,发送的内容包括:一个有关具体引导单元处理器(GCH)的DA,一个与CP全程MAC地址相对应、或是与专用接口的MAC地址相对应的SA,一个表明某个引导帧的特定以太网类型字段,以及引导帧数据。所有到达该端口的以太网帧都是由Enet MAC来接收和解析的。对于那些以太网类型值与E_Tpe_C寄存器中的内容相匹配的帧,Enet MAC就会剥离掉DA、SA和以太网类型字段,将引导帧数据存入UDS存储器。Enet MAC一次一个地收集字节,并将其做成以16字节为单位的块,称作Fish。这些字节以大头格式保存,引导帧的第一个字节保存在Fish中重要的字节位置(字节0)。以后的各个字节相继保存在该Fish中随后的字节位置(字节1,字节2...字节15)。上述16字节的块又被保存在U_DS中的缓冲区,其排位从Fish 0开始。以后的各个Fish相继保存在该缓冲区中随后的Fish位置(Fish 1,Fish 2,Fish 3,等)。根据需要,还可从空闲库中获得额外的缓冲区来储存引导帧的其余部分。
接口设备10内部引导通信流程如图4所示。接口设备的Enet MAC功能会检查该帧的标题信息以确定该帧为引导帧。Enet MAC从引导帧中将帧标题删除,然后其余内部缓冲到接口设备的内部U_DS存储器。EnetMAC显示出该帧将被排入总控制(GC队列),以便由GCH进行处理。当到达该引导帧的结尾时,入列、出列和调度(EDS)逻辑电路就会将该帧排入GC队列。
与本地CP相连的托板上的GCH微微码就会检查帧控制信息(参见图6),以确定该引导帧是否用于系统中的其它托板以及是否在接口设备的下行线执行。如果该帧用于本地托板之外的其它托板,则GCH微微码就会将帧控制块(FCB)中的TB值更新为引导帧的帧控制信息中的TB值,并指示EDS将该帧排入多路传送目标托板帧起点(TB_SOF)队列。由于性能方面的原因,所有引导通信都被排入到多路传送TB_SOF队列当中,与所述的目的地托板数目无关。
如果该帧只用于送给本地托板,GCH微微码就会检查帧控制信息中的上行/下行区段,以确定是否在接口设备的上行或下行线来执行该引导帧(参见图6)。如果引导帧在接口设备的下行线执行,则GCH微微码就会将帧控制区(FCB)中的TB值更新为引导帧的帧控制信息中的TB值,并指示EDS将该帧排入多路传送目标接口设备帧起点(TB_SOF)队列。如果帧控制信息表明引导帧在上行线执行,GCH微微码就会对该引导帧进行解析并执行引导命令中所显示的操作。
在处理引导命令之前,微微码会检查帧控制信息中ack/ noack字段的值。如果该值为‘0’b,则在处理后将该引导帧删除,引导读出命令将不再作用于这一类帧。
如果ack/ noack字段中的值是‘1’b,而“early/late”字段中的值是‘1’b,则微微码会在处理任何引导帧中的引导命令之前构造一个早确认引导帧,其帧控制的TB字段中的值与Early_Ack引导帧中的值相等,而帧控制的TB字段中的值与My_TB寄存器中的值相等。微微码将早确认引导帧路由回到CP,其方法是将该帧的FCB中的TB值更新为局域网控制点地址(LAN_CP_Addr)寄存器的TB字段中所包含的值,然后指示EDS将该帧排入多路传送TB_SOF队列。然后微微码对该引导帧的引导命令进行处理并删除该引导帧。引导读出命令不属于此类。
相反,如果ack/ noack字段中的值是‘1’b,而early/late字段中的值是‘0’b,则微微码将帧控制信息中的resp/ req字段更改为‘1’b,以此来表明引导帧响应,同时用My_TB寄存器的内容替换TB字段,并处理该引导帧内的每个引导命令。在处理引导命令的过程中,微微码会用当前引导命令的完成状态代码值来更新下一个引导命令的完成代码字段。微微码将响应路由回到源,其方法是将(FCB)中的TB值更新为与之相应的CP源托板(LAN_CP_Addr)寄存器的值,然后指示EDS将该帧排入多路传送TB SOF队列。
EDS对驻留在TB_SOF队列中的帧安排转发时间。交换机数据推进器(SDM)根据FCB中所包含的信息建立交换结构单元首标和接口设备帧标题。上述单元通过交换结构装置达到目标托板,在托板的D-DS存储器中由这些单元重新集合为帧。下行线SDM经识别确定该帧为引导帧,然后指示EDS将其排入GC队列。
来自GC队列或GT队列的压力促使微微码对该引导帧进行访问和解析。所有到达下行线的引导帧最初都是排在GC队列中。GCH微微码检查这些帧的帧控制信息gth/ gch的值。如果该gth/ gch值是′0′b,则将引导帧排入GT队列。否则,则由GCH微微码检查帧控制信息中的resp/ req字段,以便确定该引导帧是否已执行。如果resp/ req的值为′1′b,就说明该引导帧已经执行过,于是将其路由到CP。与CP连接相对应的目标端口值是由EPC微微码来维护的。来自目标端口队列的帧从接口设备送回到CP。
如果resp/ req字段的值是′0′b,则可能相对于CP为本地托板或远程托板。解决的办法是将LAN_CP_Addr寄存器TB字段中的值与我的目标托板(My_TB)寄存器中的内容相比较。如果二者相匹配,则该托板为本地托板,否则该托板就是CP的远程托板。不论是哪种情况,微微码都会检查帧控制信息中的上行/下行值。如果up/ down为′1′b,则将该帧排入轮循TP队列,以便转发到U_DS并由GCH上行线处理。否则,微微码(GCH或Gth)就执行该引导帧的引导命令中所包含的操作。在执行引导命令之前,微微码会检查帧控制信息中ack/ noack字段的值。如果该值为‘0’b,则在处理后将该引导帧删除。引导读出命令不属于此类。
如果ack/ noack字段中的值是‘1’b,而early/ late字段中的值也是‘1’b,则微微码会在处理任何引导帧中的引导命令之前构造一个早确认引导帧,其帧控制信息中TB字段的值与My_TB寄存器中的内容相等。如果该托板远离CP,则微微码会将早确认引导帧路由到轮循端口。相反,如果该托板处于CP本地,则该帧被路由到与CP相对应的端口队列。微微码处理引导命令,与此同时,轮循端口将早确认引导帧从D_DS移动到U_DS并将该帧排入上行线GC队列,或者将该帧从端口队列送回到CP。对于轮循后回到U_DS的帧,GCH微微码会再次看到它,不过resp/ req字段的值将变为′1′b。GCH微微码将该帧路由回到CP,其方法是将FCB的TB字段更新为LAN_CP_Addr寄存器的TB字段中所包含的值,然后指示EDS将该帧排入多路传送TB_SOF队列。EDS对驻留在TB_SOF队列中的帧安排转发时间。SDM根据FCB中所包含的信息建立Prizma单元首标和接口设备帧标题。来自该帧的各个单元通过Prizma并在CP的本地托板上重新集合为帧。下行线SDM经识别确定该帧为引导帧,然后指示EDS将其排入GC队列。这次当GCH微微码解析帧时,resp/req字段的值就变为′1′b。这就意味着该托板是CP的本地托板,于是该引导帧就被路由到与CP相对应的端口队列。来自该队列的帧从接口设备送回到CP。
相反,如果ack/ noack字段中的值是‘1’b,而early/ late字段中的值是‘0’b,则微微码将resp/ req字段的值更改为‘1’b,以此来表明引导帧响应,同时用My_TB寄存器的内容替换TB字段,然后处理该引导帧内的每个引导命令。在处理引导命令的过程中,微微码会用当前引导命令的完成状态代码值来更新下一个引导命令的完成代码字段。如果该托板远离CP,则微微码会将引导帧路由到轮循端口。相反,如果该托板处于CP本地,则该帧被路由到与CP相对应的端口队列。轮循端口将引导帧从D_DS移动到U_DS并将该帧排入上行线GC队列,或者将该帧从端口队列送回到CP。对于轮循后回到U_DS的帧,GCH微微码会再次看到它,不过resp/ req字段的值将变为′1′b。GCH微微码将该帧路由回到CP,其方法是将FCB的TB字段更新为LAN_CP_Addr寄存器的TB字段中所包含的值,然后指示EDS将该帧排入多路传送TB_SOF队列。EDS对驻留在TB_SOF队列中的帧安排转发时间。SDM根据FCB中所包含的信息建立Prizma单元首标和接口设备帧标题。来自该帧的各个单元通过Prizma并在CP的本地托板的下行线上重新集合为帧。下行线SDM经识别确定该帧为引导帧,然后指示EDS将其排入GC队列。这次,当GCH微微码从D_DS中解析帧时,resp/ req字段的值已变为′1′b。这就意味着该托板是CP的本地托板,于是该引导帧就被路由到与CP相对应的端口队列。来自该队列的帧从接口设备送回到CP。
如果由于某种原因GCH微微码遇到这样的引导帧,其帧控制信息的TB字段等于′0000′h,那么GCH微微码就会认为该帧只用于此托板,并相应行事。这一动作在初始化时很必要,因为此时所有托板的My_TB寄存器中的值都是′0000′h。CP通过发送写入引导命令将本地托板的My_TB寄存器初始化,上述命令在引导帧中,其帧控制信息的TB值为′0000′h。
EPC中的任何微微处理器都可生成引导帧。该帧可以是非请求引导帧,也可以是任何其它形式的引导帧。内部生成的这类帧是以一种无确认(即ack/ noack=′0′b)的方式建立的。这些帧可送往同一EPC中的两个微微处理器(GCH或GTH)之一,或是送往其它托板的GCH或GTH。
非请求引导帧还可发送到CP。送往相同EPC的引导帧是用D_DS中的数据缓冲区来构造的。这些帧随后被排入GC或GT的队列中等待处理。将这些帧处理,然后以通常方式删除。送往本地CP的非请求引导帧是用D_DS中的数据缓冲区来构造的。在构造这些帧的同时会表明它们已经由EPC执行过(即resp/ req=′1′b,TB=My_TB)。这些帧被排入相应CP的端口队列。来自该队列的帧被送回到CP。
送往另一个托板的引导帧可使用D_DS或U_DS中的数据缓冲区来构造。在构造送往CP的非请求引导帧时,会同时表明它们已经由EPC执行过(即resp/ req=′1′b,TB=My_TB)。使用D_DS中的缓冲区构造而成的帧被排入轮循端口队列。这些帧被移动到U_DS并排入上行线GC队列。那些resp/ req的值为′1′b的非请求引导帧将使用LAN_CP_Addr寄存器中的TB值被路由到CP。否则,GCH微微码就会使用引导帧的帧控制信息中的TB值将这些帧路由。在接收托板上,该帧被排入下行GC队列。该托板的GCH执行并删除帧(resp/ req=′0′b,gth/ gch=′1′),或是将该帧排入GT队列(resp/ req=′0′b,gth/ gch=′0′),或是将该帧排入相应的CP端口队列(resp/ req=′1’b)。使用U_DS中的数据缓冲区构造而成的帧被直接排入上行线GC队列。从该点开始,这些帧将遵循相同的路径,所接受的处理程序与使用D_DS数据缓冲区构造而成的帧相同。图5为引导帧的概括形式。
图中的格式是一种逻辑表示法,其中重要的字节在左边,最不重要的字节在右边。4字节单词从顶端的0开始,向页下方依次递增。
由于引导帧必须在CP配置接口设备之前被路由并处理,故这些帧必须能自我路由。通常经查找和分类所得的结果包含在引导帧的帧控制信息字段中,从而使集成电路块能够以该信息来更新FCB,而不必再执行查找操作。引导帧中所包含的目标托板信息用于引导帧控制程序,用于准备FCB中的叶Page字段。CP提供目标托板信息,与此同时,GCH微微码填充FCB中的其它字段。SDM使用这些FCB信息来准备单元和帧标题。引导帧的帧控制信息字段的格式见图6。
图6中的每个位的位置的缩写解释如下:
resp/ req响应和不要求指示器值。该字段用于区分要求(未处理的)和响应引导帧。
0要求
1响应
ack/ noack确认或不确认控制值。该字段用于控制GCH微微码是(ack)否(noack)对引导帧进行确认。不需确认的引导帧中将不包含任何执行读操作的引导命令。
0不确认
1确认
early/ late Early与Late确认控制值。该字段用于控制是需要在引导帧被处理之前(early)进行确认(ack/ noack=′1′b)还是在其之后(late)进行确认。当ack/ noack=′0′b时,即忽略该字段。
0在引导帧处理之后确认
1在引导帧处理之前确认
neg/ all不确认或确认所有控制值。当ack/ noack字段的值为′0′b时,即忽略该字段,引导命令未成功完成的情况除外。
0如果ack/ noack=′1′b即确认全部引导帧。根据early/ late的值来确定是早确认还是晚确认。
1仅确认那些未成功完成的帧。该确认与ack/ noack和early/ late的值无关,所以自然是晚确认。
up/ down上行或下行控制值。该值用来控制是在上行线处理帧还是在下行线处理帧。当resp/ req为′1′b时,即忽略该字段。所有多路传送引导帧的up/ down值都应为′0′b。此外,需要使用GTH硬件加速器指令的引导命令其up/ down值应为′0′b。
0下行线处理
1上行线处理
gth/ gch普通目录树处理器或引导单元处理器控制值。该值用来控制引导帧,使其到达适当的微微处理器。
0 GCH微微处理器
1 GTH微微处理器
TB目标托板值。当resp/ req为‘0’b时,该字段中包含路由信息,可供Prizma使用。每个位的位置与一个目标托板相对应。如果该值为′0000′h,则认为该引导帧就是对应该托板的,并执行相应的操作。如果TB字段中的一个或多个位单元的值为′1′b,则表明应将该单元路由到相应的目标托板。当resp/ req为′1′b时,该字段中就会包含相应托板的My_TB值。
引导帧的第1个字中包含一个相关子值(图7)。该值是由CP指定的,其作用是将引导帧的响应与其各自的要求相关联。相关子中包含多个具有特定功能的位。
每个引导命令从一个命令控制信息字段开始。该命令控制中包含有对GCH微微码处理引导帧起辅助作用的信息。这些信息的格式见图8。
长度值:该值表示控制信息中所包含的32位字的总数(Cmd Word0)、地址信息(Cmd Word 1)以及引导帧的操作对象(Cmd Words 2+)等部分。
完成码值:该字段由CP初始化并由GCH微微码在处理引导命令时修改。在执行命令表中的引导命令时,GCH微微码使用该字段表示完成状态。由于所有引导命令表都是以末端定界符引导命令来结束的,故上一个命令的完成状态包含在末端定界符的完成码字段中。
引导命令类型值(符号名称)
符号名称                  类型值          类型说明
End_Delimiter             0000            标记引导帧序列的结尾
Build_TSE_Free_List       0001            建立一个自由表。
Software_Action           0010            执行软件动作
Unsolicited               0011            由EPC微微码初始化的帧
Block_Write               0100            将一块数据写入串行地址
Duplicate_Write           0101            将复制的数据写入寄存器或存储器。
Read                      0110            请求和响应读取存储数据
register                  0111            保留
Insert_Leaf               1000            在搜索树中插入一个叶。
Update_Leaf               1001            更新搜索树的一个叶
Read_Leaf                 1010            请求和响应读取页数据
Leaf                   1011                保留
Delete_Leaf            1100                删除搜索树的一个叶
                       1101-1111           保留
包含在引导帧中的地址信息可根据在网络处理器内部的编址方案识别元件。地址信息字段的一般格式见图9。
接口设备使用一个32位的编址方案。该编址方案可以为接口设备中每个可访问的结构分配一个地址值。这些结构可以是位于处理器内部的,也可以是与该处理器所控制的接口相连接的。有些结构可以由嵌入式处理器复合(EPC)经由一个名为Web接口的内部接口来访问。其余结构可以经存储器控制器接口来访问。在所有情况下,上述地址的一般格式见图10。
网络控制器被再分成主要集成电路块岛。每个岛都有一个独特的岛ID值。这些5位的岛ID值组成了结构地址中5个最为重要的位,这些结构由集成电路块岛来控制。编码的岛ID值与集成电路块岛名称之间的通信见图11。Web地址的第二部分由接下来最重要的23位组成。这些地址字段被分成结构地址部分和单元地址部分。岛之间每个分段的位数各不相同。有些岛可能只含有少数几个大的结构,而其它岛则可能包含许多小的结构。由于上述原因,地址分段也没有固定的大小。结构地址部分用来为岛内部的排列编址,而单元地址部分则用来为该排列内部的元件编址。地址的剩余部分用于容纳Web接口的32位数据总线限制。这个4位字的地址用于选择地址元件的32位段。这在将宽于32位的结构元件在网络控制器的Web数据总线中移动是很必要的。字地址值′0′h是指结构元件中32个最重要的位,而顺序字地址值则先后对应于结构元件中次重要的段。对于未经由Web接口访问的结构,则不需要地址中的字地址部分。因此,上行数据存储器、控制存储器和下行数据存储器都使用地址中全部27个最不重要的位来存取结构元件。这种格式的另一个例外是用于SPM接口的地址。在这种情况下,地址中的全部27个位都被使用,没有一个元件的宽度超过32位。
嵌入组合体(EPC)提供并控制接口设备集成电路块的可编程性。其中包含以下部件(参见图12A):
N个处理单元,称作GxH:这些GxH可同时执行储存在一公共指令存储器中的微微码。每个GxH由一个称为CLP的处理单元核心、16个GPR和一个运算器组成。CLP中包含一个3级管路。每个GxH还包含几个协处理器,比如树形搜索引擎。
指令存储器:在初始化期间载入,其中包含微微码,用于转发帧并管理系统。
一个分配器:使帧-地址从上行和下行调度队列中出列。在出列之后,分配器从上行或下行数据存储(DS)中预先提取帧的一部分——首标,并将其储存到内部存储器中。GxH一但空闲,分配器就会将带有适当控制信息如密码指令地址(CIA)的帧标题传递到GxH。分配器还负责计时器和中断信号。
树状检索存储器(TSM)判优器:每个GxH都可以使用若干个共享的内部和外部存储器单元。由于存储器单元是共享的,故需要一个判优器来控制存储器的访问。TSM可由微微码来直接访问,TSM可用来储存TSM中的时效表等。TSM也可由TSE在树状检索期间进行访问。
完成单元(CU):完成单元执行两个功能。首先,它可将N个处理单元连接到上行和下行EDS(入列、出列和调度岛)。EDS执行入列动作:将一个帧地址连同称作FCBPage的适当的参数排入传送队列、删除队列或调度队列。第二,完成单元可保证帧序列。由于可能出现多个GxH处理相同流程中的帧的情况,因此必须采取预防措施,使这些帧以正确的顺序排入上行下行传送队列。完成单元在帧发送时使用一个由分类器硬件加速器生成的标签。
分类器硬件加速器:用于上行帧,分类器硬件加速器为众所周知的帧格式提供分类。分类结果按照CIA以及一个或多个寄存器的内容在帧发送期间被送到GxH。对于下行帧,分类器硬件加速器根据帧标题来确定CIA。对于上行和下行帧发送,分类器硬件加速器都会生成一个标签用于完成单元中,以维护帧序列。
上行和下行数据存储接口和判优器:每个GxH都可使用上行和下行数据存储。当读取多个Fish时就会提供读取访问,当将FishPool中的内容写回到数据存储时就会提供写入访问。由于有个N个处理单元,而同一时间只有一个处理单元可以访问上行数据存储,同一时间也只有一个处理单元可以访问下行数据存储,因而每个数据存储都需要有一个判优器。
WEB判优器和WEBWatch连接:WEB判优器在各个GxH访问WEB时判优。所有的GxH都可以访问WEB,这样就可以访问接口设备中所有的存储器和寄存器功能。这样,任何GxH也都可以修改或读取所有的配置区域。WEB可视作接口设备的内存映象。WEBWatch连接,使用3个集成电路块lO插脚提供从集成电路块外部到整个WEB的访问。
调试中断信号和单步控制:WEB允许GCH或WEBWatch在必要时控制集成电路块上的每个GxH。例如,WEB可被GCH或WEBWatch用于GxH上的单步指令。
一个嵌入式通用处理器,如PowerPC。
GxH有4种类型(图12B):
GDH(一般数据处理器)。有8个DH。每个GDH都有一个由5个协处理器组成的完全CLP(在后面的部分另有说明)。GDH主要用于转发帧。
GCH(引导单元处理器,Guided Cell Handler)。GCH的硬件与GDH的完全相同。不过,引导帧只能由GCH来处理。通过在WEB上(CLP_Ena寄存器)编程可以使GCH也能够处理数据帧(此时它起到GDH的作用)。与GDH相比,GCH还具有额外的硬件:即协助执行目录树插入和删除的硬件。GCH用于执行与引导单元有关的微微码,还用于执行集成电路块以及与微微码有关的和目录树管理,诸如时效管理以及与CP和/或其它GCH的控制信息交换。在不执行上述任务的情况下,GCH就执行与帧转发有关的微微码,此时,它的功能与GDH完全一样。
GTH(普通目录树处理器)。GTH还具有其它一些硬件来协助执行目录树插入、目录树删除和绳管理。当GPQ中无帧(包含目录树管理命令)时,GTH将处理数据帧。
GPH(普通PowerPC处理器)。与GDH和GTH相比,GPH还具有其它一些硬件。GPH通过一个邮箱接口(i/f)与通用处理器相联接。
GxH的数目(10)是一个很好猜的数字。性能评价可确定实际需要多少个GxH。该体系结构和结构是完全可伸缩的,它可以升级为更多的GxH,而唯一的限制是硅面积的大小(这里也需要一个较大的判优器和指令存储器)。
每个GxH的构造如图12C所示。除带有通用寄存器(GPR)和算术及逻辑部件(ALU)的CLP之外,每个GxH中还包含以下5个协处理器:
(DS)协处理器接口。与分配器和各个子岛的接口,上述接口可提供对上行和下行数据存储的读取和写入访问。DS接口中包含所谓的FishPool。
树形搜索引擎协处理器(TSE)。TSE执行在目录树中的搜索,还可与树状检索存储器(TSM)相联接。
入列协处理器。与完成单元接口相连,其中包含FCBPage。该协处理器中包含一个256位的寄存器,上面带有额外的硬件加速器,微微码必须使用该硬件加速器才能建立起包含入列参数的FCBPage。在FCBPage建立起来之后,微微处理器就执行入列指令,该指令让协处理器将该FCBPage送往完成单元。
WEB接口协处理器。该协处理器提供一个与WEB判优器的连接,允许从接口设备WEB读取以及向接口设备WEB写入。
校验和协处理器。在帧上生成和校验,这些帧保存在Fishpool(有关Fishpool下文另行说明)中。
这些处理单元是在入口处理与出口处理之间共享的。可通过编程来设定为入口处理保留多少带宽,为出口处理保留多少带宽。在当前设备中有两种模式:50/50(即入口和出口取得相同的带宽)或66/34(即入口所获的带宽为出口的两倍)。
处理单元的操作是受事件驱动的。也就是说,是把帧的到达如同计时器的间歇或中断信号一样作为一个事件来处理。交换器以相同的方式处理不同的事件,尽管顺序分先后(首先是中断信号,然后是计时器事件,最后是帧到达事件)。当一个事件被送到处理单元时,相应的信息也随之送到该处理单元。帧到达事件中包含帧标题的一部分以及来自硬件分类器的信息。计时器和信号中断事件则包括代码进入点及其它与该事件相关的信息。
当帧到达入口端时,且从该帧接收到的字节数超过了可编程的限度时,该帧控制块的地址就被写入GQ。
当在出口端完成一个帧的重新组合之后,该帧的地址就被写入GQ。GQ共有四种类型(每一种类型都有入口型式和出口型式,见图12B):
GCQ:包含必须由GCH处理的帧
GTQ:包含必须由GTH处理的帧
GPQ:包含必须由GPH处理的帧
GDQ:含有可由任何GDH(或GCH/GTH,当它们能够处理数字帧时)处理的帧。GDQ有多项优先权,这样,排入较高优先级的GDQ中的帧就比排入较低优先级队列中的帧得到优先处理。
有些处理单元有专门的用途。在当前设备中,有四种类型的处理单元(GxH),参见图12B:
GDH(一般数据处理器)。GDH主要用于转发帧。
GCH(引导单元处理器)。GCH的硬件与GDH的完全相同。不过,引导帧只能由GCH来处理。通过在WEB(CLP_Ena寄存器)上编程可以使GCH也能够处理数据帧(此时它起到GDH的作用)。
GTH(普通目录树处理器)。与GDH/GCH相比,GTH具有额外的硬件:即协助执行目录树插入、目录树删除和绳管理的硬件。当GPQ中无帧(包含目录树管理命令)时,GTH就处理数据帧。
GPH(普通PowerPC处理器)。与GDH/GTH相比,GPH还具有其它一些硬件。GPH通过一个邮箱接口与嵌入式PowerPC相连接。
在现实设备当中,GCH、GTH和GPH的角色可由一个处理单元来担当。例如,一个设备可以将一个处理单元当作GCH和GPH来使用。类似的解释也适用于GCQ、GTQ和GPQ。
数据存储协处理器的用途为:
与上行数据存储相连,上行数据存储中包含从该介质接收到的帧;与下行数据存储相连,下行数据存储中包含从Prizma Atlantic收到的重新集合后的帧。
数据存储协处理器也可以在发送计时器事件或中断信号时接收配置信息。
数据存储协处理器可以在帧上计算和校验。
数据存储协处理器中包含一个FishPool(可容纳8个Fish)、一个暂存器(可容纳8个Fish)以及若干个控制寄存器,用以从上行数据存储中读取FishPool的内容,或是将FishPool的内容写入下行的数据存储当中。我们可以把FishPool想象为某种数据存储的工作区域:它不是直接读取/写入到数据存储,而是将大量的帧数据从数据存储中读出后放入Fishpool,或是将大量的帧数据从Fishpool写入到数据存储中。传输单位为Fish,一个Fish为16个字节。
我们可以把Fishpool想象为一个容纳8个Fish的存储器,也就是8个128位的字。在CLP处理器体系结构中,Fishpool是一个128字节的寄存器阵列。Fishpool中的每个字节中含有一个7位字节的地址(0...127),而入口的基础是一个16位或32位的基片。与所有的寄存器阵列一样,Fishpool中有一个循环编址方案。也就是说,为一个字(即4个字节)编址是从Fishpool中的位置126开始,然后回到字节126、127、0和1。而且,从数据存储协处理器的角度来看,Fishpool中的Fish位置有一个3位Fish地址。
在帧发送时,帧的前N个Fish会由分配器自动复制到Fishpool中。N的值可以在PortConfigMemory中进行编程。一般来说,对于上行帧发送N等于4,对于下行单路传送的帧发送N等于2,对于下行多路传送的帧发送N等于4,对于中断信号和计时器N等于0。
微微码可以从帧中读取更多的帧数据,此时数据存储协处理器会自动将帧数据读入位于下一个Fish地址的Fishpool,并在到达Fishpool的边界时自动绕回到0。微微码还可以在绝对地址上读取或写入上行/下行数据存储。
WEB协处理器与EPC WEB判优器相连接。EPC WEB判优器在十个GxH之间判优,于是WEB监视器成为接口设备WEB接口上的主导。这就允许全部GxH在WEB上读写。
接口设备存储复合可以为嵌入式组合体(EPC)提供储存设备,见图12A。该存储复合中包含目录树搜索存储器(TSM)判优器和多个芯片内存储器和芯片外存储器。这些存储器可储存树形结构、计数器以及微微码要求通过存储访问的其它任何内容。此外,这些存储器还可用来储存用于硬件的数据结构,如自由表、队列控制块等。在默认情况下,任何未分配给目录树或未被硬件使用的存储器单元都可供微微码使用,如计数器和时效列表。
图13为存储器组合的更详细的方框图。目录树搜索存储器(TSM)判优器提供在嵌入式处理器(GxH)与各个存储器之间的通信联络。这些存储器包括5个集成电路块上的SRAM、1个集成电路块外的SRAM以及7个集成电路块外的DRAM。TSM判优器包括十个请求控制单元(每个控制单元与一个嵌入式处理器GxH相连接)和13个存储器判优器单元,每个单元分别用于一个存储器。一个总线结构将请求控制单元与判优器单元相连接,使得每个控制单元以及与之相连接的GxH都可以访问所有的存储器。
控制单元中包含必要的硬件,可以在嵌入式处理器(GxH)与判优器之间引导数据。
SRAM判优器单元着重对嵌入式处理器GxH与芯片内和芯片外的SRAM之间的数据流进行管理。
DRAM判优器单元则着重对嵌入式处理器(GxH)与芯片外DRAM装置之间的数据流进行管理。
每个存储器判优器中包含一个“后门”入口,一般用于该集成电路块的其它部分,这些部分具有最高级的访问优先权。
DRAM存储器可以以两种模式来运行:
TDM模式。对于DDRAM中4个区块的存储访问是在读取窗和写入窗之间交互进行的。在读取窗中,对4个区块中任何一个的访问都是只读的;而在写入窗中,对4个区块中任何一个的访问都是只写的。对多个DDRAM使用TDM模式可以在各个DDRAM之间共享某些控制信号,从而省去一些集成电路块IO(集成电路块IO是非常稀有的资源)。非TDM模式。对DDRAM中4个区块的存储访问可以是读写结合的,但这必须遵循一定的法则。例如,我们可以通过同一个访问窗口在区块A中读,同时又在区块C中写。
TSM判优器允许N个请求者同时访问M个存储器。当有多个请求者想访问同一存储器时,就会执行循环判优。
这M个存储器可以有不同的属性。在我们当前的设备中,有三个存储类型:内部SRAM、外部SRAM和外部DDRAM。
这M个存储器与N个请求者属同类:任一请求者都可以访问任一存储器。
某些存储器在逻辑上分成多个子存储器(如DDRAM中的4个区块),这些子存储器逻辑上可以同时访问。
这M个存储器中的一部分用作控制存储器,其中含有内部使用过的数据结构,这部分存储器比微微处理器具有更高的优先访问级。由于微微处理器可以读取控制存储器的内容,故也能够对集成电路块进行调试。
判优器支持读取访问、写入访问和读取-添加-写入。通过读取-添加-写入,可以通过原子运算将一个N字节的整数添加到存储器的内容中。
访问M个存储器所使用的是普通编址方案,因而存储器中对象的物理位置是透明的。
树形搜索引擎中的目录树的概念是指存入和检索信息。检索就是指基于密钥的树形搜索以及插入和删除操作,密钥为位式组合格式,比如MAC源地址,或是串联的IP源地址和IP目的地址。信息储存在一个称作叶的控制块中,叶中至少含有上述密钥(所储存的位组合格式实际上为散列密钥,这一点下文还会谈到)。叶中还包含一些其它信息,如时效信息或用户信息,用户信息可以是转发信息(如目标托板和目标端口数)等。
有各种不同的树型(FM、LPM和SMT),于是就相应地有不同种类的树型搜索:固定匹配、软件管理树型结构以及最大前缀匹配。在树形搜索中,还有另外一个自选的标准可用于叶的检查,那就是VectorMask。还可运用围起、老化和锁定来提高搜索性能。
用于FM树型结构的检索算法见图14。该检索算法在包含密钥的输入参数进行运算,首先对密钥执行散列,然后访问直接表(DT)、穿过模式搜索控制箱(PSCB)中的树型结构,最后在叶上结束(如图14)。有三种不同的树型结构,每种树型结构都有其各自的检索算法,因此就需要根据不同的法则在树型间穿行。例如,对于固定匹配(FM)树型结构,其数据结构为Patricia树型结构。当发现一个叶之后,该叶就是唯一可能与输入端密钥相匹配的对象。而在软件处理树型结构中,就会有多个叶被链锁在同一链接表中。此时,需要用输入端密钥检查该链中所有的叶,直到发现一个匹配项,或是直到该链已全部检查过。所谓的“最终比较”操作是将输入端密钥与储存在叶中的格式相比较,它可以检验该叶是否与输入端密钥真的匹配。如果找到了相应的叶并且实现了匹配,检索的结果就为“OK”,如果对于所有其它情况,检索的结果就为“KO”。
检索运算的输入端由下列参数组成:密钥(128位)。密钥必须是在搜索(或插入/删除)之前由专门的微微码指
令来建立。只有一个密钥寄存器。不过,在树形搜索开始之后,密钥寄存器就会通过微微码来建立用于下一个检索的密钥,这一操作是在TSE进行搜索的同时进行的。这是因为TSE将密钥散列并且将结果存储在内部HashedKey寄存器中(这样,实际上就有两个密钥寄存器)。
KeyLength(7位)。该寄存器包含密钥长度的各个位。密钥长度是在建立密钥的过程中由硬件自动更新的。
LUDeflndex(8位)。它是到LUDefrable的指针,LUDefTable中包含全部树型结构的定义,搜索就是在这里进行的。关于LUDefrable下文会有详述。
TSRNr(1位)。搜索结果可以存储在树形搜索结果区0(TSR0),也可存储在TSR1。这是由TSRNr来确定的。在TSE执行搜索的同时,微微码可以访问另一个TSR以解析先前搜索的结果。
Vectorlndex(6位)。对于那些可启用VectorMask(这是在LUDefrabte中确定的)的树型结构,Vectorlndex就会在VectorMask中标志一个位。当到达搜索结尾时,该位的值就被送回供微微码使用。
输入端密钥被散列为HashedKey,如图14所示。有6种固定的散列算法可以使用(一种“算法”执行非散列函数)。使用哪种算法在LUDefrable中有规定。还有一个可编程的散列函数可用来增加挠性。
散列函数的计算输出总是一个128位的数,其属性为在原输入端密钥与输出端的散列函数之间一一对应。正如在下文中要说明的,该属性使得在直接表之后开始的树型结构的深度达到最小。
如果对树型结构启用了颜色,如图14中所示的情形,则会将16位的彩色寄存器插入128位的散列函数计算输出中。该插入是在直接表之后直接发生的。也就是说,如果直接表中包含2N个条目,则在第N个位的位置插入16位色值,如图所示。散列函数的计算输出与插入的色值(当启用时)一起被储存在HashedKey寄存器中。
散列函数是这样定义的,即让计算输出中的多数熵驻留在最高位。HashedKey寄存器中的N个最高位可用作进行直接表(DT)的指针。
搜索从进入直接表开始:从直接表中读取一个DTEntry。用于读取DTEntry的地址是从HashedKey中的N个最高位计算而来的,用于LUDefrable中所定义的树型结构属性的地址也是这样得来的。这一点将在下面详细介绍。DTEntry可以被看作是树型结构的根。使用哪种树型结构的数据结构取决于树型结构的类型。在这一点上,我们完全可以认为,Patricia树型结构的数据结构可用于FM树型结构,而Patricia树型结构的各种延展则可用于LPM和SMT树型结构。
图15中所示为一个8个条目的DT的使用举例。可以看出,搜索时间(即必须访问的PSCB的数目)可以由DT来减少。这样,通过增加DT的容量,可以实现存储器的使用与搜索性能之间的平衡。
从图15可以看出,DTEntry中可以包含下列信息:
空。该DTEntry与任何叶都不相连。
指向叶的指针。有一个叶与该DTEntry相连接。
指向PSCB的指针。有多个叶与该DTEntry相连接。
DTEntry。DTEntry定义树型结构的根。
软件管理树型结构的搜寻算法与生成该树型结构的算法见美国专利申请第09/312,148号。
有一种名为“选择位算法”的算法,它是根据从一套或多套法则中挑选出来的名为“法则”项运用某种量度来建立一个二元搜索树。我们这里所讲的例子都是依据因特网协议(IP)首标,但也可使用任何一种固定格式的首标来代替。
在IP中,每个法则都与特定的密钥相匹配,这些密钥可由下列子段组合而成:源地址(SA)、目的地址(DA)、源端口(SP)、目的端口(DP)和协议(P)。这些数据分别为32、32、16、16和8个位长,这样,要测试的密钥就包含104位。选择位算法会找到那些特别有用的104位。通过测试少数几个有效的位,可以在众多可能有用的应用程序中将多数剔除,而只留下一个或几个有用的法则。对于某些法则,也可以通过简单比较法来测试不等式。位测试和比较是在二元树中通过逻辑来组织进行的。树型结构被映射到一个启用硬件的结构中,在那里以高速测试位。通过测试得出可能与密钥相吻合的一种或少数几种法则(称为叶链)。在前一种情况下,再由该法则对该密钥进行完全测试。在后一种情况下,再运用比较和完全法则测试的方法对密钥进行点阵测试。
每组法则中的每个法则都伴随着一个动作,当该法则与该密钥相吻合且有最高优先权时,就会执行该动作。各种法则也会出现交叉(一个密钥与两个或两个以上的法则相吻合)。在这种情况下,就要为法则设定优先级1,2,3,…,从而使两个交叉的法则有不同的优先权(如果密钥与两个或两个以上的法则相吻合,就需要由管理员来宣布以哪个法则为主)。这样,如果在位测试和比较之后,还剩下不只一个法则需要测试,就按照这些法则的优先顺序来进行测试。优先级的数字越小,所表示的法则的优先级越高。
如果一个相吻合的也找不到,就需要做一些默认规定。
有关最长前缀匹配法的搜寻算法公布于美国专利第5,787,430号。该方法要求从数据库的一个节点(根节点)进入;确定从一个节点经上述树形数据库到另一个节点的搜索路径,其方法是,依次对那些只包含识别下一个(子)节点所需条目的搜索变元的各段进行处理,同时依次处理二级链接信息,直至将上述各段都处理完或是到达一个无二级链接信息的(叶)节点;将上述搜索变元与储存在搜索路径末端节点中的条目相比较;如果在该节点上连搜索变元与所述条目之间的局部匹配都没找到,就通过处理当前节点的一级链接信息退回到上述搜索路径;重复前两个步骤,直到至少找到局部匹配或是达到根节点。
图16所示为主交换结构装置的一个实施例。每个接口设备集成电路块中最好集成有两个以上的并行-串行口,这些口可接收并行数据并其转换为高速串行数据流,然后再将这些数据通过串行链接转发到交换结构装置。把从高速串行链接上的交换结构装置接收到的数据通过另一个DASL转换为并行数据。在这里,我们以一个称为数据调整串行链接(DASL)的串行器/解串器为实施例来进行说明。
至少有一个DASL将交换结构装置连接到串行链接。来自串行链接的数据被转换为并行数据后,然后传送到交换结构装置。与此类似,来自交换结构装置的并行数据被转换为串行数据,然后转发到串行链接。也可将串行链接集合起来,以提高处理量。
仍然参看图16,交换系统中包括交换结构11、输入交换适配器13(13-1…13-k),它们与交换结构输入端口15(15-1…15-k)相连接,以及输出交换适配器17(17-1…17-p),它们与输出端口19(19-1…19-p)交换结构相连接。
输入和输出传输链路21(21-I…21-q)和23(23-I…23-r)分别通过线路(链接)适配器25(25-I…25-q)和27(27-I…27-r)连接到交换系统。传输链路执行由电路交换的通信量或是由包交换的通信量与所连接的单元(如工作站、受话器组等由WS指定的的链接)之间的往来传送、与局域网(由局域网路指定的链接)之间的往来传送、与综合服务数字网综合服务数字网(由ISDN指定的链接)之间的往来传送,或是与所有其它通信系统的往来传送。传输链路执行由电路交换的通信量或是由包交换的通信量与所连接的单元(如工作站、受话器组等由WS指定的的链接)之间的往来传送、与局域网(由局域网路指定的链接)之间的往来传送、与综合服务数字网综合服务数字网(由ISDN指定的链接)之间的往来传送,或是与所有其它通信系统的往来传送。此外处理器还可连接到交换适配器13和17。线路适配器(LA)与交换适配器(SA)共用同一接口。
在输入端交换适配器上,来自分组交换和电路交换接口的各种服务被集中起来,然后转换为统一的迷你包(其长度为固定的几种之一),其首标中包含路由选择信息,该信息用以指定交换机的输出端口(以及外向链路)。在下一个部分当中,将详细介绍迷你包的格式、迷你包在输入端交换适配器上的生成以及在输出端交换适配器上的解包过程。
通过快速自我路由互连网络,交换机网可将迷你包从任意一个输入端路由到任意一个输出端。自我路由网络的结构可以使迷你包在内部同时路由而不发生任何冲突。
交换系统的中心部分是交换结构。这里,我们研究两种不同的实现方式,并分别予以说明。在第一种实现方式中,交换结构中的每个输入端口都有一个自我路由的二元树,分别将对应的输入端口与所有输出端口相连接;交换结构中有k个这样的树型结构(如果能提供k个输入端口),它们相互组合在一起。在另一种实现方式中,有一个带有输出端RAM的作为每个输出端口的一个片段,它将所有的输入端口连接到相应的输出端口;交换结构中有P个这样的片段组合在一起(如果能提供P个输出端口)。
有关DASL的说明详见1999年6月11日的申请,其序号为09/330,968。DASL接口从CMOS ASIC这样的并行接口上接收数据,并将来自并行接口的位分割为数目较少的并行位流。这些较小数目的并行位流被转换为一个高速串行流,然后经由传输介质传送到另一个模块中的接收器。一个带有控制阻抗的差分驱动器将上述数据的串行位流输送到传输介质中。
DASL对数据流进行解析,将N位并行的数据流变成若干段,每段中有n位,其中n为N的一部分;将数据流的各个n位段串起来;将每个串行的部分通过多个并行信道行中的一个传输出去;将所传输的每个数据流的部分进行串并转换,使其恢复为并行的N位数据流。
本发明优选实施例中的附图和说明中,尽管也使用了一些专用名词,但总体上讲都是取术语的普通的、叙述性的含义,决无限制之意。

Claims (9)

1.一个设备,包括:
一个交换结构装置,可定向从可识别地址进入该设备的数据,使其从该设备流出到已标识地址,所述交换结构装置有一个输入端口和一个输出端口,数据从其中流过;
一个控制点处理器;以及
多个接口装置,这些装置与所述交换结构装置和所述控制点处理器相连接,每个所述接口装置中有:
一个半导体基片;
多个装在所述基片上的接口处理器,所述处理器的数目至少为5个;
装在所述基片上,并存储可由所述接口处理器访问的指令的内部指令存储器;
装在所述基片上,并存储可由所述接口处理器访问的经过所述接口装置的数据的数据存储器;
装在所述基片上的多个输入/输出端口;
所述输入/输出端口中至少有一个将所述数据存储器与外部数据存储器相连接;
所述输入/输出端口中至少有另外两个在所述接口处理器的指导下对通过接口装置的数据与外部网络进行数据交换;
所述控制点处理器与所述接口装置协同工作,由控制点处理器将指令加载到所述指令存储器中,所述这些指令将由所述接口处理器来执行,从而控制在所述数据交换输入/输出端口之间的数据交换,以及经过所述数据存储器的数据的流动;以及
多个所述接口装置与所述交换结构装置的每个输入端口和输出端口相连。
2.根据权利要求1的设备,其特征在于,流入所述设备的数据经过一个接口装置接入所述交换结构装置。
3.根据权利要求1的设备,其特征在于,从所述设备流出的数据经过一个接口装置从所述交换结构装置接出。
4.根据权利要求1的设备,其特征在于,流入所述设备的数据经过一个接口装置接入所述交换结构装置;而从所述设备流出的数据经过一个接口装置从所述交换结构装置接出。
5.一个设备,包括:
一个交换结构装置,可定向从可识别地址进入该设备的数据,使其从该设备流出到已标识地址,所述交换结构装置有一个输入端口和一个输出端口,数据流从其中流过;
一个控制点处理器;以及
一个接口装置,该装置与所述交换结构装置和所述控制点处理器相连接,每个所述接口装置中有:
一个半导体基片;
多个装在所述基片上的接口处理器,所述处理器的数目至少为5个;
装在所述基片上,并存储可由所述接口处理器访问的指令的内部指令存储器;
装在所述基片上,并存储可由所述接口处理器访问的经过所述设备的数据的内部数据存储器;以及
装在所述基片上的多个输入/输出端口;
所述输入/输出端口中至少有一个将所述内部数据存储器与外部数据存储器相连接;
所述输入/输出端口中至少有另外两个可以在所述接口处理器的指导下对通过接口装置的数据与外部网络进行数据交换;
所述输入/输出端口中至少有另外两个完成所述接口装置和所述交换结构装置之间的高速互联;
所述控制点处理器与所述接口装置协同工作,由控制点处理器将指令加载到所述指令存储器中,所述这些指令将由所述接口处理器来执行,从而控制在所述数据输入/输出端口之间的数据交换,以及经过所述数据存储器的数据的流动。
6.根据权利要求5的设备,其特征在于,所述高速互联的输入/输出端口中每一个都有:
一个逻辑电路,可解析以N位并行方式出现的数据流,将其解析成多个部分,每个部分中都有n个位,其中n是N的一小部分;
一个串行器,它与所述逻辑电路之间通信,可将每个解析后的数据流的部分串行化;
多个信道,可与所述串行器通信并传输数据流,所述信道的数目与被解析部分的数量相等,所述信道之一与数据流的所述被解析部分中的每一个相关联;以及
一个串并转换器,它与所述信道通信,可接收通过信道传来的串行数据流,并将数据流还原为N位并行的形式。
7.一个设备,包括:
一个控制点处理器;
一个接口装置,它与所述控制点处理器相连接,并且有:
一个半导体基片;
多个装在所述基片上的接口处理器,所述处理器的数目至少为5个;
装在所述基片上,并存储可由所述接口处理器访问的指令的内部指令存储器;
装在所述基片上,并存储可由所述接口处理器访问的经过所述设备的数据的内部数据存储器;以及
装在所述基片上的多个输入/输出端口;
所述输入/输出端口中至少有一个可以将所述内部数据存储器与外部数据存储器相连接;
所述输入/输出端口中至少有另外两个可以在所述接口处理器的指导下将经过接口装置的数据与外部网络进行数据交换;
所述控制点处理器与所述接口装置协同工作,由控制点处理器将指令装载到所述指令存储器中,所述这些指令将由所述接口处理器来执行,从而控制在输入端口与输出端口之间的数据交换以及通过所述数据存储器的数据流;以及
所述接口装置有两个高速互联的端口,每个端口有:
一个逻辑电路,可解析以N位并行方式出现的数据流,将其解析成多个部分,每个部分中都有n个位,其中n是N的一小部分;
一个串行器,它与所述逻辑电路之间通信,可将数据流的每个解析后的部分串行化;
多个信道,可与所述串行器通信并传输数据流,所述信道的数目与被解析部分的数量相等,所述信道之一与数据流的所述被解析部分的每一个相关联;以及
一个串并转换器,它与所述信道通信,可接收通过信道传来的串行数据流,并将数据流还原为N位并行的形式。
8.根据权利要求7的设备,其特征在于,每个所述高速互联端口都连接到其它所述高速互连端口,由此,经过所述接口装置的数据流,通过所述的互联端口从所述接口装置的一个接口处理器传送到另外一个所述接口处理器。
9.根据权利要求7的设备,进一步包括一个交换结构装置,可定向从可识别地址进入该设备的数据,使其从该设备流出到已标识地址,其中,每个所述高速互联端口都连接到所述交换结构装置,其中,通过该设备的数据流从一个接口处理器进入所述交换结构装置,并通过另一个接口处理器从所述交换结构装置流出。
CNB008115583A 1999-08-27 2000-08-24 使用网络处理器的网络交换机和方法 Expired - Lifetime CN1181654C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/384,747 1999-08-27
US09/384,747 US6404752B1 (en) 1999-08-27 1999-08-27 Network switch using network processor and methods

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100343987A Division CN1272946C (zh) 1999-08-27 2000-08-24 可伸缩的网络处理器及操作该网络处理器的方法和装置

Publications (2)

Publication Number Publication Date
CN1369160A CN1369160A (zh) 2002-09-11
CN1181654C true CN1181654C (zh) 2004-12-22

Family

ID=23518585

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB008115583A Expired - Lifetime CN1181654C (zh) 1999-08-27 2000-08-24 使用网络处理器的网络交换机和方法
CNB2004100343987A Expired - Lifetime CN1272946C (zh) 1999-08-27 2000-08-24 可伸缩的网络处理器及操作该网络处理器的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2004100343987A Expired - Lifetime CN1272946C (zh) 1999-08-27 2000-08-24 可伸缩的网络处理器及操作该网络处理器的方法和装置

Country Status (9)

Country Link
US (3) US6404752B1 (zh)
EP (1) EP1208676B1 (zh)
JP (1) JP3872342B2 (zh)
KR (1) KR100506323B1 (zh)
CN (2) CN1181654C (zh)
AT (1) ATE431028T1 (zh)
DE (1) DE60042162D1 (zh)
HK (1) HK1069046A1 (zh)
WO (1) WO2001017179A1 (zh)

Families Citing this family (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985431B1 (en) 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US6751200B1 (en) * 1999-12-06 2004-06-15 Telefonaktiebolaget Lm Ericsson (Publ) Route discovery based piconet forming
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7133931B1 (en) * 2000-01-07 2006-11-07 International Business Machines Corporation Method and system for making a frame alteration in a network processing system
US6633920B1 (en) * 2000-01-07 2003-10-14 International Business Machines Corporation Method and system for network data flow management with improved completion unit
DE10000960C1 (de) * 2000-01-12 2001-12-20 Infineon Technologies Ag Datenverarbeitungsvorrichtung
US6934260B1 (en) * 2000-02-01 2005-08-23 Advanced Micro Devices, Inc. Arrangement for controlling learning of layer 3 network addresses in a network switch
US6778546B1 (en) * 2000-02-14 2004-08-17 Cisco Technology, Inc. High-speed hardware implementation of MDRR algorithm over a large number of queues
US6813243B1 (en) 2000-02-14 2004-11-02 Cisco Technology, Inc. High-speed hardware implementation of red congestion control algorithm
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US6731644B1 (en) 2000-02-14 2004-05-04 Cisco Technology, Inc. Flexible DMA engine for packet header modification
US6721316B1 (en) 2000-02-14 2004-04-13 Cisco Technology, Inc. Flexible engine and data structure for packet header processing
US20030236919A1 (en) * 2000-03-03 2003-12-25 Johnson Scott C. Network connected computing system
US20020107990A1 (en) * 2000-03-03 2002-08-08 Surgient Networks, Inc. Network connected computing system including network switch
US20030236837A1 (en) * 2000-03-03 2003-12-25 Johnson Scott C. Content delivery system providing accelerate content delivery
US7139282B1 (en) * 2000-03-24 2006-11-21 Juniper Networks, Inc. Bandwidth division for packet processing
US7164698B1 (en) 2000-03-24 2007-01-16 Juniper Networks, Inc. High-speed line interface for networking devices
US20050195743A1 (en) * 2000-04-03 2005-09-08 P-Cube Ltd. Real time charging of pre-paid accounts
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US7089240B2 (en) * 2000-04-06 2006-08-08 International Business Machines Corporation Longest prefix match lookup using hash function
US6675163B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US6898179B1 (en) * 2000-04-07 2005-05-24 International Business Machines Corporation Network processor/software control architecture
US6675223B1 (en) * 2000-04-10 2004-01-06 International Business Machines Corporation Method and apparatus for processing frames using static and dynamic classifiers
US6763375B1 (en) * 2000-04-11 2004-07-13 International Business Machines Corporation Method for defining and controlling the overall behavior of a network processor device
US7106730B1 (en) * 2000-04-11 2006-09-12 International Business Machines Corporation Method and apparatus for processing frame classification information between network processors
US7047317B1 (en) * 2000-06-14 2006-05-16 Altera Corporation High performance network address processor system
US6778534B1 (en) * 2000-06-30 2004-08-17 E. Z. Chip Technologies Ltd. High-performance network processor
US7126969B1 (en) * 2000-07-06 2006-10-24 Cisco Technology, Inc. Scalable system and method for reliably sequencing changes in signaling bits in multichannel telecommunication lines transmitted over a network
JP2002026973A (ja) * 2000-07-12 2002-01-25 Nec Corp 経路検索システム及びその方法並びにそれに使用するルータ装置
US6721313B1 (en) * 2000-08-01 2004-04-13 International Business Machines Corporation Switch fabric architecture using integrated serdes transceivers
US6865153B1 (en) * 2000-09-20 2005-03-08 Alcatel Stage-implemented QoS shaping for data communication switch
DE10059026A1 (de) * 2000-11-28 2002-06-13 Infineon Technologies Ag Einheit zur Verteilung und Verarbeitung von Datenpaketen
US7856543B2 (en) * 2001-02-14 2010-12-21 Rambus Inc. Data processing architectures for packet handling wherein batches of data packets of unpredictable size are distributed across processing elements arranged in a SIMD array operable to process different respective packet protocols at once while executing a single common instruction stream
US6987760B2 (en) 2001-03-05 2006-01-17 International Business Machines Corporation High speed network processor
US6940854B1 (en) * 2001-03-23 2005-09-06 Advanced Micro Devices, Inc. Systems and methods for determining priority based on previous priority determinations
CN1174585C (zh) * 2001-03-29 2004-11-03 三菱电机株式会社 系统间连接适配器及终端设备
US7398271B1 (en) * 2001-04-16 2008-07-08 Yahoo! Inc. Using network traffic logs for search enhancement
WO2002093828A2 (en) * 2001-05-17 2002-11-21 Solidum Systems Corporation Distributed packet processing system with internal load distribution
US7158517B2 (en) * 2001-05-21 2007-01-02 Intel Corporation Method and apparatus for frame-based protocol processing
US7362759B2 (en) * 2001-05-21 2008-04-22 Intel Corporation Method and apparatus for encoding information
US6834307B2 (en) * 2001-06-26 2004-12-21 Intel Corporation Event-based application layer switching for high-speed protocol processing
US20030016758A1 (en) * 2001-07-05 2003-01-23 David Wu Universal interface to external transceiver
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7046660B2 (en) * 2001-10-03 2006-05-16 Internet Machines Corp. Switching apparatus for high speed channels using multiple parallel lower speed channels while maintaining data rate
US7362751B2 (en) 2001-10-03 2008-04-22 Topside Research, Llc Variable length switch fabric
US7286534B2 (en) * 2001-11-02 2007-10-23 Infineon Technologies North America Corporation SRAM based cache for DRAM routing table lookups
US7203203B2 (en) * 2001-12-05 2007-04-10 Internet Machines Corp. Message ring in a switching network
US7042886B2 (en) * 2001-12-06 2006-05-09 P-Cube Ltd. Apparatus, method, and computer program for wire-speed classification and pre-processing of data packets in an ATM network
US7376767B1 (en) * 2002-01-04 2008-05-20 Xilinx, Inc. Distributed buffering system having programmable interconnecting logic and applications thereof
US6967951B2 (en) * 2002-01-11 2005-11-22 Internet Machines Corp. System for reordering sequenced based packets in a switching network
US7680043B2 (en) * 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
US7349466B2 (en) * 2002-03-28 2008-03-25 Seagate Technology Llc Parallel interface transmission using a single multi-frequency composite signal
US7359397B2 (en) * 2002-04-19 2008-04-15 Seagate Technology Llc Prioritizing transfers across an interface
US7254632B2 (en) * 2002-04-26 2007-08-07 P-Cube Ltd. Apparatus and method for pattern matching in text based protocol
US20070079077A1 (en) * 2002-04-29 2007-04-05 Baines Mandeep S System, method, and computer program product for shared memory queue
US7606248B1 (en) * 2002-05-10 2009-10-20 Altera Corporation Method and apparatus for using multiple network processors to achieve higher performance networking applications
US7339943B1 (en) 2002-05-10 2008-03-04 Altera Corporation Apparatus and method for queuing flow management between input, intermediate and output queues
US7320037B1 (en) * 2002-05-10 2008-01-15 Altera Corporation Method and apparatus for packet segmentation, enqueuing and queue servicing for multiple network processor architecture
US20030214949A1 (en) * 2002-05-16 2003-11-20 Nadim Shaikli System for reordering sequenced based packets in a switching network
US7593334B1 (en) 2002-05-20 2009-09-22 Altera Corporation Method of policing network traffic
US7336669B1 (en) 2002-05-20 2008-02-26 Altera Corporation Mechanism for distributing statistics across multiple elements
US6973503B2 (en) 2002-05-23 2005-12-06 International Business Machines Corporation Preventing at least in part control processors from being overloaded
AU2003247420A1 (en) * 2002-05-27 2003-12-12 Shu-Chu Lin Method and apparatus for a hierarchial switched network system
TW561740B (en) * 2002-06-06 2003-11-11 Via Tech Inc Network connecting device and data packet transferring method
US7180862B2 (en) 2002-07-18 2007-02-20 Intel Corporation Apparatus and method for virtual output queue feedback
US7372864B1 (en) * 2002-08-01 2008-05-13 Applied Micro Circuits Corporation Reassembly of data fragments in fixed size buffers
US7467406B2 (en) * 2002-08-23 2008-12-16 Nxp B.V. Embedded data set processing
US6934252B2 (en) * 2002-09-16 2005-08-23 North Carolina State University Methods and systems for fast binary network address lookups using parent node information stored in routing table entries
US7177930B1 (en) 2002-10-11 2007-02-13 Network General Technology Method and system for network traffic analysis with configuration enhancements
US7120790B1 (en) * 2002-10-11 2006-10-10 Network General Technology Method and system for network traffic analysis with run-time behavioral enhancements
US20040081104A1 (en) * 2002-10-29 2004-04-29 Weimin Pan Method and system for network switch configuration
US20040098509A1 (en) * 2002-11-14 2004-05-20 Vic Alfano System for reordering sequenced based packet segments in a switching network
US20040098510A1 (en) * 2002-11-15 2004-05-20 Ewert Peter M. Communicating between network processors
US7308003B2 (en) * 2002-12-02 2007-12-11 Scopus Network Technologies Ltd. System and method for re-multiplexing multiple video streams
US7646716B2 (en) 2002-12-20 2010-01-12 Intel Corporation Packet processing in a wireless network
US20040139063A1 (en) * 2003-01-14 2004-07-15 Reuven Moskovich Pipelined binary search machine
US7440470B2 (en) * 2003-02-07 2008-10-21 Fujitsu Limited Multicasting in a high-speed switching environment
US7474672B2 (en) * 2003-02-11 2009-01-06 International Business Machines Corporation Frame alteration logic for network processors
US7343425B1 (en) 2003-02-21 2008-03-11 Marvell International Ltd. Multi-speed serial interface for media access control and physical layer devices
US8190858B2 (en) 2003-02-25 2012-05-29 Topside Research, Llc Interface device for interfacing a main processor to processing engines and classifier engines, and methods for configuring and operating interface devices
US7990987B2 (en) * 2003-02-25 2011-08-02 Topside Research, Llc Network processor having bypass capability
KR20040083866A (ko) * 2003-03-25 2004-10-06 유티스타콤코리아 유한회사 소형 에이티엠 교환기에서 네트워크 프로세서를 이용한라인카드
US7278162B2 (en) * 2003-04-01 2007-10-02 International Business Machines Corporation Use of a programmable network processor to observe a flow of packets
US20040239507A1 (en) * 2003-05-29 2004-12-02 Neary Anton M. Method and apparatus for perimeter detection
US20040257990A1 (en) * 2003-06-19 2004-12-23 International Business Machines Corporation Interchassis switch controlled ingress transmission capacity
US7480720B2 (en) * 2003-06-25 2009-01-20 International Business Machines Corporation Method and system for load balancing switch modules in a server system and a computer system utilizing the same
WO2005008982A1 (en) * 2003-07-03 2005-01-27 Sinett Corporation Method of stacking multiple devices to create the equivalent of a single device with a larger port count
WO2005008981A1 (en) * 2003-07-03 2005-01-27 Sinett Corporation Apparatus for layer 3 switching and network address port translation
JP3842250B2 (ja) * 2003-07-08 2006-11-08 インターナショナル・ビジネス・マシーンズ・コーポレーション 経路制御装置、経路制御方法及びそのプログラム
US20050044261A1 (en) * 2003-07-18 2005-02-24 Rahul Saxena Method of operating a network switch
EP1507368A1 (en) * 2003-08-13 2005-02-16 Alcatel High speed pipeline architecture with high update rate of associated memories
US7464181B2 (en) * 2003-09-11 2008-12-09 International Business Machines Corporation Method for caching lookups based upon TCP traffic flow characteristics
US7664823B1 (en) * 2003-09-24 2010-02-16 Cisco Technology, Inc. Partitioned packet processing in a multiprocessor environment
US7454552B2 (en) * 2003-11-18 2008-11-18 Topside Research, Llc Switch with transparent and non-transparent ports
US7421532B2 (en) 2003-11-18 2008-09-02 Topside Research, Llc Switching with transparent and non-transparent ports
US7558890B1 (en) 2003-12-19 2009-07-07 Applied Micro Circuits Corporation Instruction set for programmable queuing
US7385985B2 (en) * 2003-12-31 2008-06-10 Alcatel Lucent Parallel data link layer controllers in a network switching device
US7426602B2 (en) * 2004-01-08 2008-09-16 Topside Research, Llc Switch for bus optimization
US7487542B2 (en) * 2004-01-14 2009-02-03 International Business Machines Corporation Intrusion detection using a network processor and a parallel pattern detection engine
CN100341275C (zh) * 2004-01-20 2007-10-03 华为技术有限公司 在网络交换机上处理复杂业务和扩展接口的系统
AU2005215043A1 (en) * 2004-02-19 2005-09-01 Georgia Tech Research Corporation Systems and methods for parallel communication
US7412431B2 (en) * 2004-04-27 2008-08-12 International Business Machines Corporation Method for managing multi-field classification rules relating to ingress
US20050286512A1 (en) * 2004-06-28 2005-12-29 Atul Mahamuni Flow processing
US7266548B2 (en) * 2004-06-30 2007-09-04 Microsoft Corporation Automated taxonomy generation
US7599361B2 (en) * 2004-07-02 2009-10-06 P-Cube Ltd. Wire-speed packet management in a multi-pipeline network processor
US7478426B2 (en) * 2004-07-20 2009-01-13 International Busines Machines Corporation Multi-field classification dynamic rule updates
US7653619B1 (en) 2004-07-23 2010-01-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height
US7747599B1 (en) 2004-07-23 2010-06-29 Netlogic Microsystems, Inc. Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations
US8886677B1 (en) 2004-07-23 2014-11-11 Netlogic Microsystems, Inc. Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length
US7725450B1 (en) 2004-07-23 2010-05-25 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations
US7603346B1 (en) 2004-07-23 2009-10-13 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein
US20060067314A1 (en) * 2004-09-29 2006-03-30 Michael Ho Overhead processing and generation techniques
US7533092B2 (en) * 2004-10-28 2009-05-12 Yahoo! Inc. Link-based spam detection
US7466715B2 (en) * 2005-03-28 2008-12-16 International Business Machines Corporation Flexible control block format for frame description and management
US7903687B2 (en) * 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US20060221953A1 (en) * 2005-04-01 2006-10-05 Claude Basso Method and apparatus for blind checksum and correction for network transmissions
US7881332B2 (en) * 2005-04-01 2011-02-01 International Business Machines Corporation Configurable ports for a host ethernet adapter
US7492771B2 (en) * 2005-04-01 2009-02-17 International Business Machines Corporation Method for performing a packet header lookup
US7586936B2 (en) * 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US7706409B2 (en) * 2005-04-01 2010-04-27 International Business Machines Corporation System and method for parsing, filtering, and computing the checksum in a host Ethernet adapter (HEA)
US7508771B2 (en) * 2005-04-01 2009-03-24 International Business Machines Corporation Method for reducing latency in a host ethernet adapter (HEA)
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US7483429B2 (en) * 2005-05-18 2009-01-27 International Business Machines Corporation Method and system for flexible network processor scheduler and data flow
US20070027948A1 (en) * 2005-06-23 2007-02-01 International Business Machines Corporation Server blades connected via a wireless network
US20070016767A1 (en) * 2005-07-05 2007-01-18 Netdevices, Inc. Switching Devices Avoiding Degradation of Forwarding Throughput Performance When Downloading Signature Data Related to Security Applications
CN100442768C (zh) * 2005-08-05 2008-12-10 华为技术有限公司 一种在网络处理器中加载指令代码的方法和路由设备
US20070086456A1 (en) * 2005-08-12 2007-04-19 Electronics And Telecommunications Research Institute Integrated layer frame processing device including variable protocol header
US8441957B2 (en) * 2005-10-17 2013-05-14 Broadcom Corporation Apparatus and method of remote PHY auto-negotiation
KR100772172B1 (ko) * 2005-11-21 2007-10-31 한국전자통신연구원 실시간 멀티캐스트 패킷 스트림을 위한 이더넷 기반 스위칭방법 및 장치, 이를 구비한 이더넷 기반 스위칭 시스템
US7590137B1 (en) * 2005-11-22 2009-09-15 Xilinx, Inc. Parameterizable compact network processor for low-level communication with an integrated circuit
US7493503B2 (en) * 2005-12-22 2009-02-17 International Business Machines Corporation Programmable throttling in blade/chassis power management
US8429177B2 (en) * 2006-02-08 2013-04-23 Yahoo! Inc. Using exceptional changes in webgraph snapshots over time for internet entity marking
US7697518B1 (en) 2006-09-15 2010-04-13 Netlogic Microsystems, Inc. Integrated search engine devices and methods of updating same using node splitting and merging operations
JP2008078768A (ja) * 2006-09-19 2008-04-03 Denso Corp ネットワークシステム,ネットワークデバイスおよびプログラム
US7987205B1 (en) 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
US7831626B1 (en) 2006-11-27 2010-11-09 Netlogic Microsystems, Inc. Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node
US8086641B1 (en) 2006-11-27 2011-12-27 Netlogic Microsystems, Inc. Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
US7953721B1 (en) 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
US7570640B2 (en) * 2007-04-09 2009-08-04 Hewlett-Packard Development Company, L.P. Locating original port information
US8290986B2 (en) * 2007-06-27 2012-10-16 Yahoo! Inc. Determining quality measures for web objects based on searcher behavior
US20090013033A1 (en) * 2007-07-06 2009-01-08 Yahoo! Inc. Identifying excessively reciprocal links among web entities
US7996520B2 (en) 2007-09-19 2011-08-09 Cisco Technology, Inc. Behavioral classification of communication sessions using active session initiation
US7886176B1 (en) 2007-09-24 2011-02-08 Integrated Device Technology, Inc. DDR memory system for measuring a clock signal by identifying a delay value corresponding to a changed logic state during clock signal transitions
JP5063293B2 (ja) * 2007-10-29 2012-10-31 古野電気株式会社 通信量制御システム、通信量制御システム用サーバ、および通信量制御システム用クライアント
US7826455B2 (en) * 2007-11-02 2010-11-02 Cisco Technology, Inc. Providing single point-of-presence across multiple processors
US7716204B1 (en) 2007-12-21 2010-05-11 Netlogic Microsystems, Inc. Handle allocation managers and methods for integated circuit search engine devices
US7801877B1 (en) 2008-04-14 2010-09-21 Netlogic Microsystems, Inc. Handle memory access managers and methods for integrated circuit search engine devices
EP2180750A1 (en) * 2008-10-23 2010-04-28 Thomson Licensing Selection of transmission slots of the relaxed deterministic back-off method in the medium access control
CN101783763B (zh) * 2009-01-16 2012-06-06 中兴通讯股份有限公司 防拥塞的处理方法及系统
US8842688B2 (en) * 2009-01-20 2014-09-23 The Regents Of The University Of California Reducing cabling complexity in large-scale networks
CN101616097B (zh) * 2009-07-31 2012-05-23 中兴通讯股份有限公司 一种网络处理器输出端口队列的管理方法及系统
US8687629B1 (en) * 2009-11-18 2014-04-01 Juniper Networks, Inc. Fabric virtualization for packet and circuit switching
JP5440691B2 (ja) * 2010-03-24 2014-03-12 日本電気株式会社 パケット転送システム、制御装置、転送装置、処理規則の作成方法およびプログラム
US9319335B1 (en) * 2010-12-07 2016-04-19 Pluribus Networks, Inc. Distributed operating system for a layer 2 fabric
US10122653B2 (en) 2011-04-28 2018-11-06 International Business Machines Corporation Energy management system for a data center network
US8621131B2 (en) * 2011-08-30 2013-12-31 Advanced Micro Devices, Inc. Uniform multi-chip identification and routing system
US10290606B2 (en) 2012-06-21 2019-05-14 Advanced Micro Devices, Inc. Interposer with identification system
US8923283B2 (en) * 2012-09-27 2014-12-30 Broadcom Corporation Scalable egress partitioned shared memory architecture
US8823426B2 (en) * 2012-10-24 2014-09-02 SK Hynix Inc. Deserializers
US9225808B1 (en) * 2012-11-15 2015-12-29 Qlogic, Corporation Systems and methods for processing information by a network device
US9485199B2 (en) * 2013-02-28 2016-11-01 Broadcom Corporation System and method for data flow identification and alignment in a 40/100 gigabit ethernet gearbox
US9753883B2 (en) * 2014-02-04 2017-09-05 Netronome Systems, Inc. Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
US9882748B2 (en) * 2014-03-10 2018-01-30 Intel Corporation Technologies for configuring transmitter equalization in a communication system
US10671459B2 (en) 2017-03-30 2020-06-02 Advanced Micro Devices, Inc. Method and apparatus for peer-to-peer messaging in heterogeneous machine clusters
RU2755987C1 (ru) * 2020-10-08 2021-09-23 Некоммерческое партнерство «Центр прикладных исследований компьютерных сетей» Способ организации сетевого процессорного устройства
CN113965244B (zh) * 2021-09-30 2023-05-30 西南电子技术研究所(中国电子科技集团公司第十研究所) 卫星通信可变编码调制分数帧处理方法
US20230236756A1 (en) * 2022-01-25 2023-07-27 Infineon Technologies Ag Buffer management in an ethernet switch

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4933846A (en) 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US5222085A (en) * 1987-10-15 1993-06-22 Peter Newman Self-routing switching element and fast packet switch
DE3788649T2 (de) * 1987-10-20 1994-06-23 Ibm Schnelle modulare Vermittlungseinrichtung für Durchschaltverkehr und paketvermittelten Verkehr.
US4969088A (en) 1988-04-26 1990-11-06 International Business Machines Corporation Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system
US5163149A (en) 1988-11-02 1992-11-10 International Business Machines Corporation Combining switch for reducing accesses to memory and for synchronizing parallel processes
DE68928980T2 (de) 1989-11-17 1999-08-19 Texas Instruments Inc Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern
US5438565A (en) * 1993-03-31 1995-08-01 At&T Corp. Packet switch to provide code division, multiple access cellular service
US5557609A (en) * 1993-12-01 1996-09-17 Kabushiki Kaisha Toshiba Switching apparatus for ATM
US5787430A (en) 1994-06-30 1998-07-28 International Business Machines Corporation Variable length data sequence backtracking a trie structure
US5666361A (en) * 1995-04-05 1997-09-09 International Business Machines Corporation ATM cell forwarding and label swapping method and apparatus
US5724348A (en) 1995-04-05 1998-03-03 International Business Machines Corporation Efficient hardware/software interface for a data switch
US5802278A (en) 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
JP3365705B2 (ja) 1995-05-24 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散型データ処理システム
KR970004518A (ko) * 1995-06-09 1997-01-29 김광호 광대역 정보통신 시스템에서 패킷전송을 위한 경로를 찾는 방법
US5664116A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
US5841772A (en) * 1996-03-07 1998-11-24 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5802052A (en) * 1996-06-26 1998-09-01 Level One Communication, Inc. Scalable high performance switch element for a shared memory packet or ATM cell switch fabric
KR100205062B1 (ko) * 1996-10-01 1999-06-15 정선종 계층 상호연결망을 위한 크로스바 라우팅 스위치
US6222380B1 (en) 1998-06-15 2001-04-24 International Business Machines Corporation High speed parallel/serial link for data communication
WO2000003256A1 (en) * 1998-07-08 2000-01-20 Broadcom Corporation Network switch utilizing packet based per head-of-line blocking prevention
US6298340B1 (en) 1999-05-14 2001-10-02 International Business Machines Corporation System and method and computer program for filtering using tree structure

Also Published As

Publication number Publication date
CN1272946C (zh) 2006-08-30
EP1208676A1 (en) 2002-05-29
US6647004B2 (en) 2003-11-11
US6842443B2 (en) 2005-01-11
US20020048270A1 (en) 2002-04-25
JP3872342B2 (ja) 2007-01-24
US6404752B1 (en) 2002-06-11
ATE431028T1 (de) 2009-05-15
JP2003508967A (ja) 2003-03-04
US20020061022A1 (en) 2002-05-23
KR100506323B1 (ko) 2005-08-05
EP1208676A4 (en) 2008-02-27
CN1369160A (zh) 2002-09-11
DE60042162D1 (de) 2009-06-18
EP1208676B1 (en) 2009-05-06
WO2001017179A1 (en) 2001-03-08
HK1069046A1 (en) 2005-05-06
KR20020027570A (ko) 2002-04-13
CN1538693A (zh) 2004-10-20

Similar Documents

Publication Publication Date Title
CN1181654C (zh) 使用网络处理器的网络交换机和方法
CN1204509C (zh) 通信网络装置
CN1239984C (zh) Vlsi网络处理器和方法
CN1204503C (zh) 用于通信网络的装置、系统及其操作方法
CN1399738A (zh) 网络交换机和部件及其操作方法
CN1118984C (zh) 高速分组传输网络的可编程线路适配器和数据分组缓存方法
CN1324861C (zh) 位串的校验方法及装置
CN1113502C (zh) 异步传递方式(atm)交换装置
CN1104687C (zh) 传输网络中在包路由选择和包交换之间动态转换的改进方法及设备
CN1194558C (zh) 异步传递模式交换机及其控制方法
CN1310478C (zh) 具有独立协议堆栈体系结构的多业务网络交换机
CN1201242C (zh) 数据传送控制装置和电子装置
CN1132881A (zh) 交换机适配器、计算机和数据交换方法
CN1254994C (zh) 网络拓扑
CN1561610A (zh) 具有智能控制的可变规模的交换机系统
CN86101327A (zh) 在分布式控制交换系统中的路径搜索
CN86101288A (zh) 在一个分布式控制系统中的查询号码传送
CN1612562A (zh) 用策略流实现不同因特网协议数据包转发的方法和设备
CN1695127A (zh) 网络接口和协议
CN1035221A (zh) 处理机间的交换网络
CN86101291A (zh) 分布控制式交换系统中多端口搜索群的控制
CN1608366A (zh) 用于交换数据分组或帧的装置和方法
CN1319209A (zh) 数字通信处理器
CN1341313A (zh) 多业务网络交换机
CN1179522C (zh) 异步传递模式交换网和交换机及其信号处理方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20041222

CX01 Expiry of patent term