CN1399738A - 网络交换机和部件及其操作方法 - Google Patents
网络交换机和部件及其操作方法 Download PDFInfo
- Publication number
- CN1399738A CN1399738A CN00814241A CN00814241A CN1399738A CN 1399738 A CN1399738 A CN 1399738A CN 00814241 A CN00814241 A CN 00814241A CN 00814241 A CN00814241 A CN 00814241A CN 1399738 A CN1399738 A CN 1399738A
- Authority
- CN
- China
- Prior art keywords
- processor
- interface
- data
- frame
- reference mark
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3036—Shared queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了通过控制点和在半导体基底上形成的多个接口处理器的协作,使数据流管理和灵活性得到改善的网络交换设备、这样设备的各个部件、和操作这样设备的方法。控制点和接口处理器一起形成在执行引导数据在网络中流动的指令的过程中,能够与包括可选交换结构器件的其它单元协作的网络处理器。
Description
技术领域
本发明涉及诸如用于把各种类型和能力的信息处理系统或计算机链接在一起的通信网络设备和这样设备的各个部件。具体地说,本发明涉及可扩展交换设备和用于组装这样设备的部件。本发明涉及改进了的多功能接口设备和此设备与其它单元的组合,以提供一种介质速度网络交换机。本发明还涉及提高了网络交换机的数据流处理能力的、操作这样设备的方法。
背景技术
下面的描述以网络数据通信和如用在这种通信网络中的交换机和路由器的知识为前提。具体地说,该描述以熟悉把网络操作分成若干层的网络结构的ISO(国际标准化组织)模型为前提。基于ISO模型的典型结构从作为让信号通过的物理路径或介质的第1层(有时也标成“L1”)开始,向上延伸到第2、3、4等层,直到第7层,所述的最后一层是在与网络链接的计算机系统上运行程序的应用层。在本文件中,L1、L2等提法的意思是指网络结构的相应层。本公开还以在这样的网络通信中被称为数据包和帧的比特串的基本理解为前提。
在当今的网络世界中,带宽是关键性资源。受因特网和其它新兴应用的驱动,网络业务的增加正过度使用着网络基础设施的容量。为了跟上步伐,各个机构正在寻找着更好的技术和方法,以支持和管理业务的增加和语音与数据的合并。
当今网络业务量的显著增加可以归因于因特网的普及、远程访问信息的需要的不断增加、和各种新兴应用。因特网本身,随着它在电子商务方面的爆炸性扩张,已经使网络主干线有时支持不住了。此外,增加的数据业务量首次超过语音业务量也是唯一最重要的原因。对包括电子邮件、数据库访问和文件传输在内的各种远程访问应用的需要的不断增加进一步使网络不堪重负。
语音与数据的合并在决定未来的网络环境中将起重大作用。当前,数据在因特网协议(IP)网络上的传输是免费的。因为语音通信自然而然地沿着成本最低的路径走,所以语音将不可避免地与数据合并。在这个日新月异的市场中,像Voice over IP(VoIP-在IP网上传输语音)、Voice over ATM(VoATM-在ATM网上传输语音)和Voice over Frame Relay(VoFR-在帧中继网上传输语音)那样的技术是划算的可选方案。但是,为了使过渡到这些技术成为可能,企业必须保证语音的服务质量(QoS),和确定如何对数据线上的语音传输收费。1996年的电信违规条例(Telecommunications Deregulation Act)使这种环境更加复杂。这种立法将加强选择的语音协议ATM与选择的数据协议IP之间的共生关系。
随着新产品和新功能进入市场,各个机构重点关注的还有整合传统系统。为了保护他们在现有设备和软件方面的投资,各个机构需要在不中断他们当前运行的前提下,使他们过渡到新技术的解决方案。
消除网络瓶颈一直是服务提供商的首要问题。路由器往往是这些瓶颈的根源。但是,一般来说,网络拥塞往往被误诊为带宽问题,并且通过寻找更大的带宽的解决方案来寻求解决。今天,制造商们逐步认识到这种做法的难度。他们正逐步转向更有效地管理带宽资源和提供通常只有在路由器和网络应用服务器中才找得到的、具有线速度的高级数据业务的网络处理器技术。这些服务包括负载平衡、QoS、网关、防火墙、安全性和万维网高速缓存。
对于远程访问应用来说,性能、按需带宽、安全性和认证排在最高优先级上。对集成QoS和CoS的需要、集成语音管理和更加成熟的安全性解决方案也将决定未来远程访问网络交换机的设计。并且,远程访问将不得不容纳数量不断增加的物理介质,譬如,ISDN、T1、E1、OC-3至0C-48、电缆和xDSL调制解调器。
行业咨询人员已经把网络处理器(在这里也称为“NP”)定义为能够执行一种或多种如下功能的可编程通信集成电路:
数据包分类--根据譬如地址或协议的已知特性来识别数据包
数据包修改--把数据包修改成遵从IP、ATM、或其它协议(例如,对于IP,更新首标中的time-to-live(存活期)字段
队列/政策管理--反映用于特定应用的数据包的数据包入列、出列和调度的设计策略
数据包转发--数据在交换结构(switch fabric)上的发送和接收和把数据包转发或路由到适当的地址
尽管这种定义是早期NP的基本特征的精确描述,但是NP的所有潜在能力和优点还有待实现。通过让以前由软件管理的联网任务由硬件来执行,网络处理器在广阔的应用范围内能够提高带宽和解决延迟的问题。另外,通过如并行分布式处理和流水线处理设计之类的结构,NP能够使速度得到提高。这些能力能够使搜索引擎变得有效,使吞吐量得以提高,和使复杂的任务得到迅速执行。
人们期待着,网络处理器对于网络来说,就像CPU(中央处理单元)对于PC(个人计算机)那样,将成为基本的网络构件。NP提供的典型能力有实时处理、安全性、存储和转发、交换结构、和IP数据包处理和学习能力。NP面向第二至第五的ISO层,并且被设计成优化网络特有任务。
这种处理器模型NP合并了多个通用处理器和专用逻辑单元。供货商正转向这种设计,以提供能够以适时和划算的方式适应变化的可扩展、灵活的解决方案。处理器模型NP允许更低级集成度下的分布式处理,提供更高的吞吐量、灵活性和控制。无需新的ASIC(专用集成电路)设计,可编程性就能够使到新协议和技术的过渡变得容易。借助于这样的处理器模型NP,NEV从降低了的不可偿还工程成本和缩短了的进入市场的时间中受益。
发明公开
本发明的一个目的是提供一种供数据通信网络使用的可扩展交换结构,这种可扩展交换结构在提高正在传输数据的处理速度的同时,能够使支持能力与一系列潜在需求相适应。这个目的通过提供消除比迄今为止的情况牵涉到更大量数据处理的处理单元的工作负荷的各个部件和这些部件的组装件来实现。
本发明的另一个目的是提供一种包括多个子部件的接口器件或网络处理器(这两个术语可互换着使用),这些子部件集成在单个基底上,共同起作用,以提供包括第2层、第3层、第4层和第5层的帧的介质速率交换。该接口器件可以用作为工作组交换机提供第一级能力的独立解决方案、为工作组交换机提供更高级能力的互连解决方案、或通过与交换结构器件协作,能力得到进一步提高的升级解决方案。
附图简述
上面已经说明了本发明的一些目的,当结合附图继续进行说明时,其它目的也将显现,其中:
图1显示了根据本发明的接口器件的方块图;
图1A显示了MAC(介质访问控制)的方块图;
图2A至2D显示了在不同系统配置中与其它部件互连的接口器件;
图3显示了封装导向帧的流向和处理;
图4显示了内部导向帧的流向和处理;
图5显示了导向信元(cell)的一般性格式;
图6显示了帧控制信息的格式;
图7显示了相关子的格式;
图8显示了命令控制信息格式;
图9显示了寻址信息格式;
图10显示了结构寻址的一般形式;
图11显示了寻址和岛式(Island)编码的图表;
图12A显示了嵌入式处理器组件的方块图;
图12B显示了嵌入式处理器的示意图;
图12C显示了GxH处理器的结构;
图13显示了存储器组件的方块图;
图14显示了固定匹配(FM)搜索算法的流程图;
图15显示了举例说明不使用直接表和使用直接表的数据结构的流向;
图16显示了诸如Prizma之类的交换系统的方块图;
图17显示了CP的方块图;和
图18显示了EDS-UP、EDS DOWN和EPC中的单芯片网络处理器突出功能的方块图。
实现本发明的方式
虽然从现在开始,通过参照显示本发明优选实施例的附图,对本发明作更全面描述,但是,在下列描述的开头就应该明白,本领域的普通技术人员可以对这里所述的发明加以修改,而仍然可以取得本发明的良好结果。因此,下列的描述应该理解为概括性的、以向本领域普通技术人员讲授为目的的技术公开,而不能理解为对本发明的限制。
这里公开的设备是可扩展(scalable)的,并且能够互连台式或工作组交换机,把这样的交换机聚集成网络主干线,和提供主干线交换服务。该设备在硬件方面可以支持第2层、第3层、和第4层以上的转发。设备的某些形式是为台式或工作组交换机而设计的,而其它形式则面向核心主干线交换机。
用于该设备的结构是基于接口器件或网络处理器硬件子系统和在控制点上运行的软件库的,在本文件的其它地方将对它们作更全面描述。接口器件或网络处理器子系统是为分析和翻译L2、L3和L4+协议头部而设计的高性能帧转发引擎。这使各种协议可以利用硬件以更大速度得到交换。接口器件或网络处理器子系统提供了通过该设备(box)的快速路径,而软件库和控制点处理器则提供了维护快速路径所需的管理和路由发现功能。控制点处理器和在上面运行的软件库一起定义系统的控制点(CP)。CP是运行诸如Transparent Bridging(透明桥接)和OSPF(开放最短路径优先)之类的实际桥接和路由协议的地方。也可以称它为系统的慢速路径。
虽然这里公开的设备在硬件方面支持多层转发,但它也可以起到只对L2的交换机的作用,那是它以所公开的最简单形式进行操作的默认模式。每个端口都将被放入允许任何器件与任何其它器件通信的单个域中。设备在L2上是可配置的,使系统管理员能够配置如下的特征:把端口数据分组到分别的域或干线中,配置虚拟LAN(局域网)(VLAN)网段,或进行过滤以控制广播和组播业务。
这种可扩展设备有许多优点。第一,它使系统管理员能够利用与用于L2相同的硬件和以相同的速度配置IP和IPX业务的L3转发和路由。第二,它消除了利用外部路由器互连校园建筑物的必要性,而同时提高了性能。第三,它把建筑物的L2/L3服务的管理简化或组合成单个控制点。最后,它提供了带有L4+如下功能的增值特征:使系统管理员能够分配不同的业务类别,以支持负有关键性使命的应用和用于服务器之间的负载平衡的网络调度器。
利用接口器件或网络处理器、控制点(CP)、和可选交换结构器件作为它的基本构件块,该设备被设计成模块化单元。接口器件最好提供L2/L3/L4+快速路径转发服务,而CP则提供维护快速路径所需的管理和路由发现功能。可选交换结构器件用在多于两个的接口器件子系统绑在一起的时候。可选交换结构器件可以是1991年4月16日发布的、名称为“用于电路和数据包交换业务的高速模块化交换设备(High Speed Modular SwitchingApparatus for Circuit and Packet Switched Traffic)”的美国专利第5,008,878号所公开的那样。
该设备可以是利用印刷电路板单元组装的,这里,印刷电路板单元也被称为“片状件(blade)”。印刷电路板单元含有安装在上面的电路单元,并且被接纳在配备在设备机箱中的连接器中。类似的器件也被称为“可选卡”。如配备了适当的连接器和底板电引线,设备就认为片状件在可变的机壳或机箱之间是可以互换的。安装在所有片状件上的基本部件是载波(carrier)子系统。从载波子系统开始,可以生产三种类型的片状件。第一种类型是只有CP的片状件,它由载波子系统和CP子系统组成。只有CP的片状件的基本用途是用于主要关心冗余度的产品。第二种类型是CP+介质片状件,它由载波子系统、CP子系统、和1到3个介质子系统组成。CP+介质片状件的基本用途是用于认为端口密度比冗余度更重要的产品。第三种类型是介质片状件,它由载波子系统和1到4个介质子系统组成。介质片状件可以用在任何机壳中,和所使用的介质子系统的类型是可配置的。
片状件管理将牵涉到故障检测、电源管理、新器件检测、初始化和配置。这种管理将利用各种寄存器、I/O信号、和用于在CP和载波子系统之间进行通信的导向信元接口来完成。但是,与机壳不同,在所有片状件上务必存在着可编程器件和存储器。可编程的程度取决于片状件的类型。当CP子系统存在于片状件之上时,CP和载波子系统两者都是可编程的。介质子系统也是可编程的,但只能间接通过载波子系统。
在功能更强大的产品中,还存在着包含交换结构器件子系统的交换机片状件。这种片状件的管理将牵涉到故障检测,电源管理、新器件检测、和初始化。这种管理将利用各种寄存器和将被映射成CP子系统的I/O信号来完成。
在其最简单的形式中,由本发明设想的交换设备含有控制点处理器;和与控制点处理器可操作地连接着的接口器件。正如这里所公开的,接口器件(也称为网络处理器)最好是含有如下部件的单一超大规模集成(VLSI)电路器件或芯片:半导体基底;在基底上形成的数个接口处理器;在所述基底上形成的内部指令存储器,用于存储接口处理器可访问的指令;在所述基底上形成的内部数据存储器,用于存储经过所述器件可由所述接口处理器访问的数据;和多个输入/输出端口。在这里,接口处理器有时也被称为皮处理器(picoprocessor)或处理单元。配备的端口包括将内部数据存储器与外部数据存储器相连接的至少一个端口,和在接口处理器的引导下与外部网络交换经过接口器件的数据的至少两个其它端口。在引导数据在数据交换输入/输出端口之间的交换和数据通过数据存储器的流动的过程中,控制点通过把要由接口处理器执行的指令装载到指令存储器中,与接口器件协作。
可以认为,除了被合并到其中的交换机组件之外,这里所公开的网络处理器是具有创造性的。并且认为,在这里所述的单元的范围之内,本网络处理器还具有在这里未全部讨论的其它的发明。
图1显示了接口器件芯片的方块图,该接口器件芯片包括基底10和集成在基底上的多个子部件。这些子部件被安排成上侧配置和下侧配置。正如这里所使用,“上侧”指的是从网络入站(inbound)到这里公开的设备的数据流,而“下侧”指的是从设备出站(outbound)到设备所服务的网络的数据流。数据流遵从各自的配置。因此,存在着上例数据流和下侧数据流。上侧中的子部件包括Enqueue-Dequeue-Scheduling(入列-出列-调度)UP(EDS-UP)逻辑单元16、数个多路复用MAC-UP(PPM-UP)14、Switch Data Mover(交换机数据移动器)-UP(SDM-UP)18、System Interface(系统接口)(SIF)20、Data Align Serial Link A(数据校准串行链路A)(DASLA)22、和DataAlign Serial Link B(数据校准串行链路B)(DASLB)24。1999年6月11日提出的、名称为“用于数据通信的高速并行/串行链路(High SpeedParallel/Serial Link for Data Communication)”的同时待审美国专利申请第09/330,968号对数据校准串行链路作了更全面描述。虽然这里公开的本发明设备的优选形式使用了DASL链路,但是,本发明认为,也可以应用其它形式的链路来取得相对高的数据流速率,尤其是在把数据流限制在VLSI结构之内的地方。
下侧中的子部件包括DASL-A 26、DASL-B 28、SIF 30、SDM-DN 32、EDS-DN34和PPM-DN 36。芯片还包括数个内部S-RAM、业务Mgt调度器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)。在十个协议处理器的实施例(图12B)中,十个协议处理器中的两个是专用的;一个用于处理导向帧(通用中央管理器或GCH),另一个用于在控制存储器中建立查找数据(通用树管理器或GTH)。如图12A所示,EPC还包含把新帧与空闲处理器相匹配的调度器;维护帧序列的完成单元;所有十个处理器共享的公共指令存储器;确定帧类别的分类器辅助硬件和帮助确定帧的开始指令地址的协处理器;控制帧缓冲器的读和写操作的入口和出口数据存储接口;允许十个处理器共享控制存储器的控制存储器判优器;万维网控制、判优器和允许调试程序访问内部接口器件的数据结构的接口,以及其它硬件构造。
当调度器适用时,它把导向帧发送到GCH处理器。执行在导向帧中编码的操作,譬如,寄存器写、计数器读、以太网MAC配置改变等。把查找表的变更,譬如,加入MAC或IP条目,传递给查找数据处理器,供控制存储器操作,譬如,存储器读和写之用。一些命令,譬如,MIB计数器读,要求建立响应帧,并且将其转发给适当接口器件上的适当端口。在某些情况中,为接口器件的出口侧编码导向帧。把这些帧转发给正被查询的接口器件的出口侧,该接口器件然后执行编码操作和建立任何适当的响应帧。
把数据帧调度给下一个可用的协议处理器,供进行帧查找之用。将帧数据与来自分类器辅助硬件(CHA)引擎的结果一起传递给协议处理器。CHA分析IP或IPX。其结果确定树搜索算法和开始公共指令地址(CIA)。支持的树搜索算法包括固定匹配树(要求精确匹配的固定大小模式,譬如,第2层以太网MAC表)、最长前缀匹配树(要求可变长度匹配的可变长度模式,譬如,子网IP转发)、和软件管理树(定义范围或比特掩码组的两种模式,譬如,用于过滤规则)。
查找是借助于树搜索引擎(TSE)协处理器进行的,它是每个协议处理器的一部分。TSE协处理器进行控制存储器访问,不需要协处理器继续执行。控制存储器存储所有的表、计数器、和皮码(picocode)所需的其它数据。控制存储器的操作由控制存储器判优器来管理,控制存储器判优器在十个处理器组件内判优存储器访问。
帧数据通过数据存储协处理器被访问。数据存储协处理器包含主数据缓冲器(保存多达八个16-字节的帧数据段)、高速暂存(scratch pad)数据缓冲器(也保存多达八个的16-字节帧数据段)、和一些用于数据存储操作的控制寄存器。一旦发现匹配,入口帧的变更就可以包括VLAN头部插入或覆盖。这种变更不是由接口器件处理器组件来完成的,而是导出硬件标志,并且由其它的入口交换机接口硬件来进行变更。其它的帧变更可以通过皮码和数据存储协处理器修改保存在入口数据存储器中的帧内容来完成。
在把帧发送到交换结构器件之前,收集其它数据,用于建立交换头部和帧头部。控制数据包括交换信息,譬如,帧的目标片状件,以及有关入口接口器件的信息,帮助它加速目标端口的帧查找、组播或单播操作、和出口帧变更。
当完成时,入列协处理器建立把帧入列到交换结构中的必要格式,并且把它们发送到完成单元。完成单元保证从十个协处理器到交换结构队列的帧顺序。当把来自交换结构队列的帧发送到Prizma-E交换机时,把它们分段成64个插入了帧头部字节和交换头部字节的字节单元。
从交换结构接收的帧由出口EDS(34)放置在出口数据存储器件(出口DS)的缓冲器中,并且把其入列到EPC中。帧的一部分由调度器发送到空闲协议处理器,供进行帧查找之用。帧数据与来自分类器辅助硬件的数据一起被调度到协议处理器。分类器辅助硬件利用入口接口器件创建的帧控制数据,帮助确定开始码指令地址(CIA)。
出口树搜索支持与入口搜索所支持的相同的算法。查找是利用TSE协处理器进行的,无需协议处理器继续执行。所有控制存储器操作均由控制存储器判优器管理,它在十个处理器组件内分配存储器访问。
出口帧数据由数据存储协处理器访问。数据存储协处理器包含主数据缓冲器(保存多达八个16-字节的帧数据段)、高速暂存数据缓冲器(也保存多达八个的16-字节帧数据段)、和一些用于数据存储操作的控制寄存器。成功查找的结果包含转发信息,和在某些情况下,还包含帧变更信息。帧变更可以包括VLAN头部删除、生存时间延长(IPX)或缩短(IP)、IP头部检验和重新计算、以太网帧CRC覆盖或插入、和MAC DA/SA覆盖或插入。IP头部检验和由检验和协处理器准备。这些变更不是由接口器件处理器组件来完成,而是创建硬件标志,并且由PMM出口硬件来进行变更。当完成时,入列协处理器用于帮助建立把帧排在EDS出口队列中所需的必要格式,并且把它们发送到完成单元。完成单元保证从十个协议处理器到馈送出口以太网MAC36的EDS出口队列的帧顺序。
完成的帧最后由PMM出口硬件发送到以太网MAC,和输出以太网端口。
被称为万维网(Web)的内部总线允许访问内部寄存器、计数器和存储器。万维网还包括控制指令步的外部接口和用于调试和诊断的中断控制。
树搜索引擎协处理器提供存储器范围检验,非法存储器访问通告,和与协议处理器执行并行地进行树搜索指令(譬如,存储器读、写或读与写)操作。
公共指令存储器由一个1024×128 RAM和两组双512×128 RAM组成。每组双RAM提供同一皮码的两份副本,让处理器独立地访问同一地址范围内的指令。每个128-比特字包括四个32-比特指令,总共提供8192个指令的范围。
调度器控制帧到十个协议处理器的传递,并且管理中断和定时器。
完成单元保证从处理器组件到交换结构和目标端口队列的帧顺序。富(rich)指令组包括条件执行,组装(对输入散列关键字)、条件分支、有标记和无标记操作、前导零的计数等。
当把帧调度给协议处理器时,分类器辅助硬件引擎分析每个帧的第2层和第3层协议头部,并且与帧一起提供这个信息。
控制存储器判优器控制控制处理器访问内部和外部存储器。
外部控制存储器选项包括5至7个DDR DRAM子系统,每个支持一对2M×16比特×4组或一对4M×16比特×4组DDR DRAM。DDR DRAM接口以133MHZ时钟频率和266MHZ数据选通脉冲运行,支持可配置的CAS延迟和驱动强度。可以把可选的133MHZ ZBT SRAM附加在128K×36、2×256K×18或2×512K×18的任何一个配置中。
出口帧可以存储在一个外部数据缓冲器(例如,DS0)或两个外部数据缓冲器(例如,DS0和DS1)中。每个缓冲器可以由一对2M×16比特×4组DDR DRAM(存储多达256K个64-字节帧)或一对4M×16比特×4组DDR DRAM(存储多达512K个64-字节帧)组成。对于2.28Mbps,选择单个外部数据缓冲器(例如,DS0),或增加第二个缓冲器(例如,DS1),以支持4.57Mbps第2层和第3层交换。增加第二个缓冲器提高了性能,但不能增大帧容量。外部数据缓冲器接口以具有266MHZ数据选通脉冲的133MHZ时钟频率运行,并且支持可配置的CAS延迟和驱动强度。
内部控制存储器包括两个512×128比特RAM、两个1024×36比特RAM和一个1024×64比特RAM。
内部数据存储器件沿着入口方向(UP)提供了多达2048个64-字节帧的缓冲。
固定帧变更包括沿着入口方向的VLAN标记插入和VLAN标记删除、生存时间延长/缩短(IP,IPx)、以太网CRC覆盖/插入和沿着出口(DOWN)方向的MAC DA/SA覆盖/插入。
端口镜像使得无需利用协议处理器资源就可以把一个接收端口和一个发送端口复制到系统指定的观察端口。经镜像的接口器件端口被配置成附加帧和交换控制数据。独立的数据路径使直接帧入列到入口交换接口中。
接口器件使四个以太网宏功能(macro)成为一体,每个宏功能可以各自被配置成以1千兆比特(Gigabit)或10/100快速以太网模式操作。对于四个宏功能的每一个来说,每个以太网宏功能支持多达十个的10/100 MbpsMAC或一个1000 Mbps MAC。
图1A显示了MAC核心的方块图。每个宏功能包括三个以太网核心设计:即,多端口10/100 Mbps MAC核心(Fenet)、1000 Mbps MAC核心(Genet)、和100 Mbps物理编码子层核心(PCS)。多端口10/100 MAC特征:
支持十个到物理层的串行介质独立接口
能够管理10 Mbps或100 Mbps介质速度、任何速度混合的十个端口
单个MAC与时分多路复用接口一起为所有十个端口服务
在所有端口上以介质速度支持全/半双工操作
支持IEEE(电气电子工程师学会)802.3二进制指数补偿(backoff)算法1000 Mbps以太网MAC核心特征:
支持到物理PCS层或直接到物理层的千兆比特介质独立接口(GMII)
借助于PCS核心,支持完全TBI(8b/10b)解决方案
以介质速度支持全双工点到点连接
支持IBM PCS核心有效字节信令1000 Mbps以太网物理编码子层核心特征:
进行8b/10b编码和解码
支持如IEEE 802.3z定义的PMA(10比特)服务接口,这个接口连接在遵从IEEE 802.3z的任何PMA上
使从PMA(两相时钟)接收的数据与MAC(单相)时钟同步
支持包括接着两页的自协商(Auto-Negitiation)
把在各种标准中定义的两相时钟系统转换成单相时钟
把指示包含新数据的那些时钟周期的信号提供给MAC
对接收的代码组(10个比特)检验COMMA,并且建立字同步
计算和检验8b/10b运行不均等性
图2A至2D显示了接口器件芯片的不同配置。这些配置是通过DASL和与交换结构器件的连接简化的。每个DASL包括两个信道:即,发送信道和接收信道。
图2A显示了单个接口器件的绕接(wrap)配置。在这种配置中,发送信道与接收信道绕接。
图2B显示了连接两个接口器件芯片的配置。每个接口器件芯片都配备了至少两个DASL。在这种配置中,一个芯片上一个DASL上的信道与其它芯片上匹配DASL的信道可操作地相连接。每个芯片上的另一个DASL被绕接。
图2C显示了多个接口器件与交换结构相连接的配置。双箭头表示双向发送。
图2D显示了主交换机和备用交换机与多个接口器件相连接的配置。如果主交换机不能使用了,就可以使用备用交换机。
控制点(CP)包括与每一种配置相连接的系统处理器。除此之外,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中有四个DMU,每一个都能够与1个GEnet或10个FEnet器件一起工作。
UP-EDS:这个逻辑单元从UP-PMM中取出FISH,和将它们存储到UP数据存储器件(内部RAM)。它能够一次对40个帧进行工作,并且,在接收到适当字节数之后,把帧入列到EPC中。当EPC以帧结束时,UP-EDS将把帧入列到适当的目标端口队列中,并且开始向UP-SDM发送帧。UP-EDS负责所有的缓冲器和帧管理,并且当到UP-SDM的传输完成时,把缓冲器/帧返回给自由存储池(pool)。
EPC:这个逻辑单元包含皮处理器,并且可以包含嵌入式PowerPC(IBM和Apple公司联合生产的个人台式机)。这个逻辑单元能够查找帧标题,并且决定应该对帧做些什么(转发、修改、过滤等)。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-PMM,DN-EDS把帧发送到适当的端口。
DN-PMM:从DN-EDS中取出信息,和把帧格式化成以太网、POS等格式,并且把帧发送到外部PHY。
SPM:这个逻辑单元用于使网络处理器与外部器件(PHY、LED、FLASH等)对接,但只需要3个I/O。网络处理器利用串行接口与SPM通信,然后,SPM执行必要的功能,以管理这些外部器件。UP-SIDE流1)帧到达PHY2)字节由UP-PMM接收3)UP-PMM把FISH发送到UP-EDS(FISH的意思是帧的一部分)4)UP-EDS把FISH存储到UP-DS5)UP-EDS把头部发送到EPC6)EPC处理头部和把入列信息发送回到UP-EDS7)UP-EDS继续从UP-PMM接收帧的其余部分8)当适当的数据已准备好发送到交换机时,UP-EDS把信息发送到UP-SDM9)UP-SDM读取帧数据,并且将其格式化成PRIZMA信元10)UP-SDM把信元发送到UP-SIF11)UP-SIF在DASL串行链路上把信元传输给PRIZMA12)当已经取出所有数据时,UP-EDS释放缓冲器/帧DN-SIDE流1)DN-SIF接收PRIZMA信元2)DN-SDM存储信元,并且为了重新组装信息,对它们进行预处理3)DN-EDS接收信元数据和重新组装信息,并且在下侧把信元链接成新帧4)DN-EDS把信元存储到DN-DS5)当已经接收到所有数据时,DN-EDS把帧入列到EPC中6)EPC处理头部,并且把入列信息发送回到DN-EDS7)DN-EDS把帧入列到调度器队列(如果有的话)或目标端口队列中8)DN-EDS为这些队列服务,并且把帧信息发送到PCB9)DN-EDS利用PCB“拆开”帧,读取适当的数据,并且把那个数据发送到DN-PMM10)DN-PMM格式化数据(按照要求,利用变更),并且把帧发送到外部PHY11)当不再需要缓冲器时,DN-PMM通知DN-EDS,然后DN-EDS释放这些资源FRAME控制流1)把头部从UP-DS或DN-DS发送到EPC2)EPC在查找表中查找头部信息,并且接收帧入列信息3)EPC把入列信息发送回到EDS,并且将帧入列到适当的队列中4)让信元标题和帧头部与帧数据一起发送,以有助于重新组装和帧转发CP控制流1)控制点格式化导向帧,并且把它发送到网络处理器2)网络处理器把导向帧入列到GCH皮处理器中3)GCH处理导向帧,并且读或写雷尼尔器(Rainier)的请求区4)GCH把任何表的更新请求传递给GTH5)GTH利用出自导向帧的信息更新适当的表6)把确认的导向帧发送回到CP网络处理器控制流1)皮处理器可以建立导向帧,把信息发送给另一个雷尼尔器或控制点2)把导向帧发送到适当的位置进行处理
单个接口器件提供了多达40个快速以太网端口的介质速度交换(图2A)。当利用IBM公司的数据校准同步链路(DASL)技术互连两个接口器件时,支持80个快速以太网端口(图2B)。每个DASL差分对携带440Mbps的数据。每组八对的两个组提供了3.5Gbps双工连接(在每个方向,8×440Mbps)。如图2C和2D所示,通过将多个接口器件与诸如IBM的Prizma-E交换机之类的交换机互连,可以建造更大的系统。接口器件提供了两个3.5Gbps双工DASL连接,一个是主要的,另一个是辅助的,它们可以用来为本地帧业务提供反绕路径(wrap-backpath)(当两个接口器件直接连接时,图2B)或与冗余交换结构的连接(图2D,备用交换机)。鉴于上面情况,单个网络处理器芯片是可扩展的,因为,一个芯片可以用来提供低端系统(具有相对低的端口密度-譬如说,40个)到高端系统(具有相对高的端口密度-譬如说,80-n个端口)。
系统中的一个接口器件通过多达十个的10/100 Mbps快速以太网端口或单个1000 Mbps以太网端口之一与系统处理器相连接。对系统处理器的以太网配置位于连接到接口器件的EEPROM(电可擦可编程只读存储器)中,并且在初始化期间装载。系统处理器通过建立,例如特殊的导向帧封装作为以太网帧或其它介质接口,与系统中的所有接口器件(参见图2)通信。通过DASL链路把封装导向帧转发到允许系统中的所有接口器件从单点得到控制的其它器件。
导向帧用于在控制点(CP)与嵌入式处理器组件之间和在接口器件内通信控制信息。阐述这里所讨论的问题的导向信元的现有技术可以在1998年3月3日发布的、名称为“数据交换机的有效硬件/软件接口(EfficientHardware/Software Interface)”的美国专利第5,724,348号中找到。
对于源于CP的导向帧业务,CP在它本地存储器中的数据缓冲器中构造导向帧。CP的器件驱动器把导向帧发送到网络处理器的介质接口之一。介质访问控制(MAC)硬件恢复导向帧,并且将其存储在它的内部数据存储器件(U_DS)存储器中。导向帧被路由到适当的片状件,经过处理,按要求又被路由回到CP。在外部CP与内部器件之间传递的导向帧被封装以适合于外部网络的协议。结果是,如果外部网络包括以太网,导向帧就被封装成以太网帧等。
以太网封装提供了在CP与接口器件之间传输导向业务的手段。接口器件的以太网MAC(Enet MAC)在接收帧时,不分析目标地址(DA)或源地址(SA)。这种分析是由EPC皮码进行的。导向业务假设接口器件还没有配置成和EPC皮码还不能分析DA和SA。因此,这些帧固有地自选路径。但是,Enet MAC的确能分析以太网类型字段,将导向业务与数据业务区分开。导向帧的这个以太网类型值的值必须与装载到E_Type_C寄存器中的值相匹配。这个寄存器是由接口器件的引导皮码从闪速存储器装载的。
CP在它本地存储器中的数据缓冲器中构造导向帧。以大尾数方式把CP处理器中32比特寄存器的内容存储在如图3所示的本地存储器中。构造好导向帧之后,CP的器件驱动器发送对于导向信元处理器(GCH)包含DA的以太网帧、对于CP与全局MAC地址相对应或对于特定接口与MAC地址相对应的SA、指示导向帧的特定以太网类型字段、和导向帧数据。到达端口的所有以太网帧均由Enet MAC接收和分析。对于带有与E_Type_C寄存器的内容相匹配的以太网类型值的帧,Enet MAC剥离DA、SA和以太网类型字段,并且把导向帧数据存储在U_DS存储器中。字节由Enet MAC每次一个地收集成称为Fish的16个字节的一个数据块。以大尾数方式存储这些字节,其中导向帧的第一个字节存储在Fish的最高有效字节位置(字节0)中。把随后的字节存储在Fish内相继的字节位置(字节1、字节2、……、字节15)中。然后,从Fish 0位置开始,把这16个字节存储在U_DS中的缓冲器中。把随后的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皮码就用来自导向帧的帧控制信息的TB值更新帧控制块(FCB)中的TB值,并且指令EDS把帧入列到组播目标片状件帧首(TB_SOF)队列中。考虑到性能的原因,把所有导向业务入列到与所指示的目标片状件数量无关的组播TB_SOF队列中。
如果帧是只为本地连接的片状件准备的,GCH皮码就检查帧控制信息的上/下(up/down)字段,以确定导向帧是要在接口器件的上侧还是要在它的下侧得到执行(参见图6)。如果导向帧要在接口器件的下侧得到执行,GCH皮码就用来自导向帧的帧控制信息的TB值更新FCB中的TB值,并且指令EDS把帧入列到组播目标片状件帧首(TB_SOF)队列中。如果帧控制信息指示,导向帧要在上侧得到执行,GCH皮码就分析导向帧,并且进行它所含的导向命令指示的操作。
在处理导向命令之前,皮码检验帧控制信息的ack/
noack字段的值。如果这个值是′0′b,那么,在接下来的处理中就丢弃导向帧。导向读命令不属于这个范畴。
如果ack/
noack字段的值是′1′b,并且早/迟(early/late)字段的值也是′1′b,那么,在处理导向帧中的任何导向命令之前,皮码用等于My_TB寄存器的内容的、帧控制的TB字段的值,构造具有等于Early_Ack导向帧的内容的、帧控制的TB字段的值的早确认(Early Ack)导向帧。通过用包含在LAN控制点地址(LAN_CP_Addr)寄存器的TB字段中的值更新帧的FCB中的TB值,和指令EDS把帧入列到组播TB_SOF队列中,皮码把早确认导向帧路由回到CP。然后,皮码处理导向帧的导向命令,并且丢弃导向帧。导向读命令不属于这个范畴。
另一方面,如果ack/
noack字段的值是′1′b,但早/迟(early/late)字段的值是′0′b,那么,皮码就把帧控制信息的resp/
req字段改变成′1′b,来指示导向帧响应,用My_TB寄存器的内容取代TB字段,并且处理导向帧内的每个导向命令。在处理导向命令的过程中,皮码用当前导向命令的完成状态代码值更新下一个导向命令的完成码字段。通过用与源片状件相对应的值(CP的LAN_CP_Addr寄存器值)更新FCB中的TB值,和指令EDS把帧入列到组播TB_SOF队列中,皮码把响应路由回到信源(source)。
驻留在TB_SOF队列中的帧由EDS调度,供转发之用。交换机数据移动器(SDM)从包含在FCB中的信息中建立交换结构信元头部和接口器件帧头部。这些信元经过交换结构器件,到达目标片状件,在目标片状件的D-DS存储器中把这些信元重新组装成帧。下侧的SDM识别帧是否是导向帧,并且向EDS发送信号,把帧入列到GC队列中。
来自GC队列或GT队列的压力刺激皮码访问和分析导向帧。首先把到达下侧的所有导向帧都入列到GC队列中。这些帧的帧控制信息的gth/
gch值由GCH皮码检查。如果gth/
gch值是′0′b,把导向帧入列到GT队列中。否则,GCH皮码检查帧控制信息的resp/
req字段,以确定导向帧是否已经得到执行(excute)。如果resp/
req字段具有′1′b的值,那么,表示导向帧已经得到执行,并将其路由到CP。与CP连接相对应的目标端口值由EPC皮码保存着。把来自这些目标端口队列的帧从接口器件发送回到CP。
如果resp/
req字段具有′0′b的值,那么,片状件相对于CP来说,可以是本地的,也可以是远程的。这可以通过将LAN_CP_Addr寄存器的TB字段的值与我的目标片状件(My_TB)寄存器的内容相比较来解决。如果它们相匹配,那么,片状件相对于CP来说是本地的,否则,片状件相对于CP来说是远程的。在每一种情况中,皮码都检查帧控制信息的上/下(up/down)字段。如果up/
down字段等于′1′b,那么,把帧入列到绕接TP队列中,供转发到U_DS和由上侧的GCH处理之用。否则,皮码(GCH或Gth)进行包含在导向帧中的导向命令所指示的操作。在处理导向命令之前,皮码检验帧控制信息的ack/
noack字段的值。如果这个值是′0′b,那么,在接下来的处理中丢弃导向帧。导向读命令不属于这个范畴。
如果ack/
noack字段的值是′1′b,并且early/
late字段的值也是′1′b,那么,在处理导向帧中的任何导向命令之前,皮码用等于My_TB寄存器的内容的、帧控制信息的TB字段的值,构造早确认导向帧。如果片状件相对于CP是远程的,皮码就把早确认导向帧路由到绕接端口。否则,片状件相对于CP是本地的,并且将帧路由到与CP相对应的端口队列。在绕接端口把早确认导向帧从D_DS移动到U_DS和把帧入列到上侧的GC队列中,或者把帧从端口队列发送回到CP的同时,皮码处理导向命令。对于反绕回到U_DS的帧,GCH皮码再次查看这个帧,但resp/
req字段将具有′1′b的值。通过用包含在LAN_CP_Addr寄存器的TB字段中的值更新FCB中的TB值,和指令EDS把帧入列到组播TB_SOF队列中,GCH皮码把帧路由回到CP。驻留在TB_SOF队列中的帧由EDS调度,供转发之用。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的值。通过用包含在LAN_CP_Addr寄存器的TB字段中的值更新FCB中的TB字段,和指令EDS把帧入列到组播TB_SOF队列中,GCH皮码把帧路由回到CP。驻留在TB_SOF队列中的帧由EDS调度,供转发之用。SDM从包含在FCB中的信息中建立Prizma信元头部和接口器件帧头部。来自这个帧的信元经过Prizma,并且在CP的本地片状件的下侧被重新组装成帧。下侧的SDM识别该帧是导向帧,并且向EDS发送信号,把帧入列到GC队列中。在GCH皮码分析来自D_DS的帧的时候,resp/
req字段具有′1′b的值。这意味着,这个片状件在本地与CP相连接,和导向帧被路由到与CP相对应的端口队列中。把来自这个队列的帧从接口器件发送回到CP。
如果由于某种原因,GCH皮码遇到具有等于′0000′h(十六进制值)的、帧控制信息的TB字段的导向帧,那么,GCH皮码就把该帧解释为只为这个片状件准备的,并且因此而动作。当对于所有片状件,My_TB寄存器的值都是′0000′h时,在初始化期间就需要这种行动。通过发送其帧控制信息具有′0000′h的TB值的导向帧中的写导向命令,CP将初始化本地连接的片状件的My_TB寄存器。
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队列中。利用LAN_CP_Addr寄存器中的TB值,把具有′1′b的resp/
req值的未经请求导向帧路由到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显示了导向帧的一般性格式。
所示的格式是一种逻辑表示,左侧是最高有效字节,右侧是最低有效字节。四个字节字从顶部的Word 0开始,朝着页的底部递增。
由于导向帧必须在CP已经配置了接口器件之前得到路由和处理,因此这些帧必须是自路由(self-routing)的。通过查找和分类正常获得的结果包含在使芯片无需进行查找操作就可以利用这个信息更新FCB的导向帧的这个帧控制信息字段中。包含在导向帧中的目标片状件信息由导向帧处理器用来准备FCB的Leaf Page(叶页)字段。CP在GCH皮码往FCB中填充其它字段的同时,提供目标片状件信息。这个FCB信息由SDM用来准备信元和帧标题。导向帧的帧控制信息字段的格式显示在图6中。
图6中每个比特位置上的缩写说明如下:resp/
req响应和非请求指示符值。这个字段用来区分请求(未经处理的)和响应导向帧
0 请求
1 响应ack/
noack确认或非确认控制值。这个字段用来控制GCH是(ack)否(noack)
确认导向帧。没有得到确认的导向帧将不包含任何形式的进行读的
导向命令。
0 非确认
1 确认early/
late早和晚确认控制值。这个字段用来控制请求的确认(ack/
noack=
′1′b)发生在导向帧已经被处理之前(early)还是之后(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时,忽略这个字段。所有组播导向帧都将具有′0′b
的up/
down值。另外,要求使用GTH辅助硬件指令的导向命令也将具有′0′b的up/
down值。
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值。
导向帧的Word(字)1包含相关子值(图7)。这个值由CP软件来指定,将导向帧响应与它们的请求相关联。相关子包括具有所指定的功能的数个比特。
每个导向命令从命令控制信息字段开始。这个命令控制包含有助于GCH皮码处理导向帧的信息。这个信息的格式显示在图8中。
长度值:这个值指示包含在导向帧的控制信息(Cmd字(Word)0)、地址信息(Cmd字1)和操作数(Cmd字2+)部分中的32比特字的总个数。
完成码值:这个字段由CP来初始化,并且在处理导向命令时,由GCH皮码来修改。GCH皮码把这个字段用于表示命令表中前置导向命令的完成状态。由于所有导向命令表都以结束分隔符导向命令而告终,因此最后一个命令的完成状态包含在结束分隔符的完成码字段中。导向命令类型值(符号名)符号名 类型值 类型说明End_Delimiter 0000 标记导向帧序列的结束Build_TSE_Free_List 0001 建立空表Software_Action 0010 执行软件动作Unsolicited 0011 由EPC皮码初始化的帧Block_Write 0100 把数据块写入连续地址中Duplicate_Write 0101 把复制数据写入寄存器或存储器中Read register 0110 请求和响应读存储器数据
0111 备用Insert_Leaf 1000 把叶子(leaf)插入搜索树中Update_Leaf 1001 更新搜索树的叶子Read_Leaf Leaf 1010 请求和响应读页数据
1011 备用Delete_Leaf 1100 删除搜索树的叶子
1101-1111 备用
包含在导向帧中的寻址信息识别网络处理器的寻址方案内的一个元素。地址信息字段的一般形式显示在图9中。
接口器件应用32比特寻址方案。这种寻址方案把地址值指定给接口器件的每个可访问结构。这些结构可以在处理器的内部,或者在处理器的控制下与接口相连接。这些结构中的一些由嵌入式处理器组件(EPC)通过称为万维网接口的内部接口访问。这些结构的其余部分通过存储器控制器接口访问。在所有情况中,地址的一般形式如图10所示。
网络控制器被细分成主芯片岛(island)。赋予每个岛(island)一个唯一的岛ID值。对于受那个芯片岛控制的结构,这个5比特的岛ID值形成地址的5个最高有效比特。编码的岛ID值与芯片岛名之间的对应关系显示在图11中。万维网地址的第二部分由接下来的23个最高有效比特组成。这个地址字段被分段成结构地址部分和单元地址部分。用于每个段的比特数可以因岛而异。一些岛可以只包含少数几个大结构,而另一些岛则可以包含许多个小结构。由于这个原因,这些地址段没有固定的大小。结构地址部分用于寻址岛内的阵列,而单元地址部分用于寻址阵列内的单元。地址的其余部分用于调节万维网接口的32比特数据总线的限制。这4比特的字地址用于选择寻址单元的32个比特段。对于穿过网络控制器的万维网数据总线移动比32比特还要宽的结构单元来说,这是必要的。字地址值′0′h指的是结构单元的32个最高有效位,而随后的字地址值依次对应于结构单元的最低有效段。对于不通过万维网接口访问的结构,不需要地址的字地址部分。由于这个原因,上数据存储器件、控制存储器和下数据存储器件利用了地址的所有27个最低有效位来访问结构单元。这种格式的另一种例外是有关SPM接口的地址。在那种情况中,使用所有的27个比特,并且,没有一个单元的宽度大于32个比特。
嵌入式处理器组(EPC)提供和控制接口器件芯片的可编程性。它包括如下的构件(还可以参见图12A):
称为GxH的N个处理单元:GxH同时编制存储在公共指令存储器中的皮码。每个GxH由称为CLP的处理单元核心组成,它包含一个3级流水线、16个GPR和一个ALU。每个GxH还包含几个例如树搜索引擎那样的协处理器。
指令存储器:在初始化期间装载,并且包含转发帧和管理系统用的皮码。
调度器:让帧地址从上下调度器队列中出列。在出列之后,调度器从上或下数据存储器件(DS)中预先取出帧头部部分,并且将其存储在内部存储器中。一旦GxH变成闲置的,调度器就把含有像代码指令地址(CIA)那样的适当控制信息的帧标题传递给GxH。调度器还管理定时器和中断。
树搜索存储器(TSM)判优器:存在大量适用于每个GxH的共享内部和外部存储器位置。由于这个存储器是共享的,因此判优器用来控制对存储器的访问。TSM可以由皮码直接访问,例如,可以利用皮码把老化(aging)表存储在TSM中。此外,TSE在树搜索期间也将访问TSM。
完成单元(CU):完成单元执行两种功能。第一,它将N个处理单元与UP和Dn EDS(入列、出列和调度岛)对接。EDS完成入列动作:将帧地址与称为FCBPage的适当参数一起入列到发送队列、丢弃队列、或调度器队列中。第二,完成单元为帧序列提供保证。由于可能发生多个GxH正在处理属于同一个流的帧的情况,因此必须采取把这些帧按正确次序入列到上或下发送队列中的防范措施。当进行帧调度时,完成单元使用分类器辅助硬件生成的标签。
分类器辅助硬件:对于上帧(up-frame),分类器辅助硬件为帧格式的众所周知的情况提供分类。分类结果在帧调度期间,按一个或多个寄存器的CIA和内容传递给GxH。对于下帧,分类器辅助硬件根据帧头部确定CIA。对于上下帧调度,分类器辅助硬件生成供完成单元用来维持帧序列的标签。
上下DataStore(数据存储器件)接口和判优器:每个GxH都可以访问上下DataStore:当读取“more Fish(更多的鱼)”时,提供读访问,和当把FishPool(鱼池)的内容写回到DataStore时,提供写访问。由于存在N个处理单元,并且每次只有一个可以访问上DataStore和每次只有一个可以访问下DataStore,因此每个DataStore需要一个判优器。
WEB判优器和WEBWatch(看守)接口:WEB判优器在访问WEB的GxH当中进行判优。所有GxH都可以访问允许访问接口器件中所有存储器和寄存器功能的WEB。这使得任何一个GxH都可以修改或读取所有配置区。可以把WEB看作是接口器件存储器映像。WEBWatch接口提供了利用3根chip-I0引线从芯片的外部对整个WEB的访问。
调试、中断和单步控制:WEB使GCH或WEBWatch能够在必要时,控制在芯片上的每个GxH。例如,GCH或WEBWatch可以把WEB用于GxH上的单步指令。
像PowerPC那样的嵌入式通用处理器。
存在四种类型的GxH(图12B):
GDH(一般数据处理器)。存在八个GDH。每个GDH具有附带五个协处理器(将在下一节中描述)的全CLP。GDH主要用于转发帧。
GCH(导向信元管理器)。GCH含有与GDH完全相同的硬件。但是,导向帧只能由GCH处理。如果使GCH还能够处理数据帧(在这种情况下,它起GDH的作用),那么,它在WEB(CLP_Ena寄存器)上是可编程的。与GDH相比,GCH存在附加的硬件:进行树插入和删除的辅助硬件。GCH用于编制与导向信元有关的皮码,执行像老化(aging)那样与芯片和树处理有关的皮码,和与CP和/或另一个GCH交换控制信息。当没有这样的任务要执行时,GCH将执行与帧转发有关的皮码,在这种情况下,其行为完全像GDH。
GTH(一般树处理器)。GTH含有进行树插入、树删除和绳索管理的附加辅助硬件。当GPQ中没有帧(包含树管理命令)时,GTH将处理数据帧。
GPH(一般PwoerPC处理器)。GPH含有与GDH和GTH相比附加的硬件。GPH通过邮箱接口(i/f)与通用处理器对接。
GxH的个数(10个)是“最佳推测的”。性能评价将确定真正需要多少个GxH。构造和结构完全可以朝着更多GxH的方向扩展,唯一的限制是硅晶体区(它还应该包括较大的判优器和指令存储器)的大小。
每个GxH被构造成如图12C所示那样。除了附带通用寄存器(GPR)和算术逻辑单元(ALU)的CLP之外,每个GxH还包含下列五个协处理器:
(DS)协处理器接口。到调度器和到子岛的接口,提供了对上下DataStore的读写访问。DS接口包含所谓的FishPool。
树搜索引擎协处理器(TSE)。TSE在树中进行搜索,并且还与树搜索存储器(TSM)对接。
入列协处理器。与完成单元接口对接,并且包含FCBPage。这个协处理器包含256-比特寄存器,这个256-比特寄存器附带皮码必须用来建立FCBPage的附加辅助硬件,FCBPage包含入列参数。一旦建立了FCBPage,皮处理器就可以执行入列指令,入列指令使这个协处理器把FCBPage转发到完成单元。
WEB接口协处理器。这个协处理器向WEB判优器提供接口,并且允许读写接口器件WEB。
检验和协处理器。生成关于存储在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处理。如果使GCH还能够处理数据帧(在这种情况下,它起GDH的作用),那么,它在WEB(CLP_Ena寄存器)上是可编程的。
GTH(一般树处理器)。GTH含有与GDH/GCH相比附加的硬件:进行树插入、树删除和绳索管理的辅助硬件。当GPQ中没有帧(包含树管理命令)时,GTH将处理数据帧。
GPH(一般PwoerPC处管理器)。GPH含有与GDH/GTH相比附加的硬件。GPH通过邮箱接口与嵌入式PwoerPC对接。
在实际的装置中,GCH、GTH和GPH的作用可以在单个处理单元上实现。例如,对于GCH和GPH,一个装置可能含有一个处理单元。对于GCQ、GTQ和GPQ,情况亦如此。
数据存储协处理器的用途是:
与上DataStore对接,上DataStore包含已经从介质接收的帧,和与下DataStore对接,下DataStore包含从Prizma Atlantic交换机系统接收的重新组装帧。
数据存储协处理器还在调度定时器事件或中断期间,接收配置信息。
数据存储协处理器能够计算关于帧的检验和。
数据存储协处理器包含FishPool(可以保存8条鱼)、暂时存储器(可以保存8条鱼)、和把FishPool内容写入上或下DataStore中/从上或下DataStore中读取FishPool内容的一些控制寄存器。可以把FishPool看作是用于DataStore的某些类型的工作区:不是直接读/写DataStore,而是把较大量的帧数据从DataStore读到FishPool中或把较大量的数据从FishPool写到DataStore中。传输的单位是Fish,它等于16个字节。
可以把FishPool看作是可以包含8条鱼的存储器,那是每一个有128个比特的8个字。在CLP处理器构造中,FishPool是128个字节的寄存器阵列。FishPool中的每个字节含有一个7-比特字节的地址(0、...、127),和访问是以16-比特或32-比特为基础的。与所有寄存器阵列一样,FishPool拥有循环寻址方案。也就是说,在FishPool中寻址从位置126开始的一个字(即,4个字节)返回字节126、127、0和1。并且,从数据存储协处理器的角度来看,FishPool中的鱼的位置具有3-比特的鱼地址。
当进行帧调度时,由调度器在FishPool中自动复制帧的最前面N条鱼。在PortConfigMemory(端口配置存储器)中,N的值是可编程的。通常,对于上帧调度,N等于4,对于下单播帧调度,N等于2,对于下组播帧调度,N等于4,和对于中断和定时器,N等于0。
皮码可以从一个帧中读取更多的字节,在这种情况中,数据存储协处理器在下一个鱼地址上把帧数据自动读入FishPool,当已经到达FishPool的边界时,自动环绕到0。此外,皮码还可以在绝对地址上读或写上/下DataStore。
WEB协处理器与EPC WEB判优器对接。EPC WEB判优器在十个GxH和WEBWatch之间进行判优,以成为接口器件WEB接口上的主器件。这使所有的GxH都可以在WEB上进行读写。
接口器件存储器组为图12A所示的嵌入式处理器组(EPC)提供存储设施。存储器组件包括树搜索存储器(TSM)判优器和数个芯片内和芯片外存储器。存储器存储树结构、计数器和皮码进行存储器访问所需的任何其它东西。并且,存储器还用于存储像空表、队列控制块等那样,由硬件使用的数据结构。不是为树分配的或没有被硬件使用的任何存储器位置被默认为适合于皮码使用,像计数器和老化表之类。
图13显示了存储器组更详细的方块图。树搜索存储器(TSM)判优器提供了嵌入式处理器(GxH)与存储器之间的通信链路。存储器包括5个芯片内SRAM(静态随机存储器)、1个芯片外SRAM、和7个芯片外DRAM(动态随机存储器)。TSM判优器包括10个请求控制单元(每一个与嵌入式处理器GxH之一相连接)和13个存储器判优器单元,每个存储器有一个存储器判优器单元。总线结构以这样的方式将请求控制单元和判优器单元互连,即,使每个控制单元和与它连接的GxH都可以访问所有的存储器。
控制单元包括在嵌入式处理器(GxH)与判优器之间驾驭数据所需的硬件。
SRAM判优器单元,另外还管理数据在嵌入式处理器GxH与芯片内和芯片外SRAM之间的流动。
DRAM判优器单元,另外还管理数据在嵌入式处理器(GxH)与芯片外DRAM器件之间的流动。
每个存储器判优器包含“后门(back-door)”通路,它通常被芯片的其它部分使用,并且具有最高的访问优先级。DRAM存储器可以以如下两种操作模式运行:TDM模式。对DDRAM中四个存储体的存储器访问是交替读“窗”和写“窗”进行的,因而,在读窗过程中,对四个存储体的任何一个的访问是只读的,和在在写窗过程中,对四个存储体的任何一个的访问是只写的。把TDM模式用于多个DDRAM使一些控制信号可以在DDRAM之间共享,因此,这节省了一些芯片IO(它是非常稀有资源)。非TDM模式。对DDRAM中四个存储体的存储器访问可以是读和写的组合,这必须遵从一些指定的规则。例如,在访问窗内,你可以在存储体A中进行读,而在存储体C中进行写。TSM判优器让N个请求程序同时访问M个存储器。当多个请求程序想要访问同一个存储器时,进行循环判优。M个存储器可以具有不同的特性。在我们的当前装置中,存在三种存储器类型:内部SRAM、外部SRAM和外部DDRAM。M个存储器和N个请求程序是同质的:任何请求程序都可以访问任何存储器。一些存储器被逻辑地分成多个子存储器(像DDRAM中的四个存储体那样),可以逻辑地同时访问它们。M个存储器的一部分用作包含内部使用的数据结构的控制存储器,与皮处理器相比,它们具有更高优先级的通路。这还使芯片得到调试,因为皮处理器可以读取控制存储器的内容。判优器支持读访问,写访问和读与写,从而,在原子操作中,把N-比特整数加入存储器的内容中。
一般地址方案用于访问M个存储器,致使存储器中对象的物理位置是透
明的。
树的概念被树搜索引擎用来存储和检索信息。检索,即树搜索,以及插入和删除是根据关键字进行的,关键字是像,例如MAC源地址或IP源地址和IP目标地址的并置那样的比特模式。把信息存储在称为叶子(Leaf)的控制块中,叶子至少包含关键字(正如从后面所看到的,存储的比特模式实际上是散列化关键字)。叶子还可以包含像老化信息那样的附加信息,或用户信息,用户信息可以是,例如,像目标片状件和目标端口数那样的转发信息。
存在数种树类型(FM、LPM和SMT)和相关的树类型搜索,即:固定匹配、软件管理树和最大前缀匹配。在树搜索期间用于检验叶子的可选附加准则是VectorMask(向量屏蔽)。捆绑(roping)、老化和锁存用于提高搜索性能。
FM树的搜索算法显示在图14中。搜索算法对包括关键字的输入参数进行运算,把关键字散列化,访问直接表(DT),在树中穿过模式搜索控制块(PSCB),终止在叶子上(图14)。存在三种类型的树,每一种都有自己的搜索算法,它使树行走按不同的规则发生。例如,对于固定匹配(FM)树,数据结构是帕特丽夏(Patricia)树。当已经找到叶子时,这个叶子是可以与输入关键字相匹配的唯一可能候选者。对于软件管理树(SMT),可以存在在链接表中链接的多个叶子。在这种情况中,用输入关键字检验链条中的所有叶子,直到已经找到匹配或已经到达链条尽头为止。将输入关键字与存储在叶子中的模式相比较的所谓“最后比较”操作核实叶子是否真的与输入关键字相匹配。当已经找到叶子和已经发生匹配时,搜索的结果将是肯定(OK)的,而在所有其它情况下,将是否定(NO)的。
对搜索操作的输入包括下列参数:Key (128个比特)。必须在搜索(或插入/删除)之前,利用特殊
皮码指令建立关键字(Key)。只有一个关键字寄存器。但是,
在已经开始树搜索之后,关键字寄存器可以由皮码用来与进行
搜索的TSE并行地为下一次搜索建立关键字。这是因为TSE把
关键字(Key)散列化,并且把结果存储在内部HashedKey寄
存器(因此,事实上,存在2个Key寄存器)中。KeyLength (7个比特)。这个寄存器包含Key以比特为单位的长度。在
建立Key过程中,它由硬件自动更新。LUDefIndex (8个比特)。这是进入LUDefTable的索引,LUDefTable包含
进行搜索的树的全部定义。后面再对LUDefTable作详细描述。TSRNr (1个比特)。可以把搜索结果存储在第0个树搜索结果区
(TSR0)或TSRl中。这是通过TSRNr规定的。在TSE进行搜
索的同时,皮码可以访问其它TSR,以分析以前搜索的结果。VectorIndex (6个比特)。对于使VectorMask起作用的树(这是在LUDefTable
中规定的),VectorIndex表示VectorMask中的比特。在搜索
结束时,返回这个比特的值,它可以被皮码使用。
如图14所示,输入的Key将被散列化成HashedKey。存在六种可用的固定散列算法(一种“算法”不执行散列函数)。这在将使用算法的LUDefTable中规定。可以利用可编程散列函数来增强灵活性。
散列函数的输出总是128-比特的数,它具有在原来输入的Key与散列函数的输出之间一一对应的特性。正如下面所说明的,这个特性使在直接表之后开始的树的深度达到最小。
如果对树来说,颜色也起作用,图14所示的例子正是这种情况,那么,把16-比特颜色寄存器插在128-比特散列函数输出端中。插入正好出现在直接表之后。也就是说,如图所示,如果直接表包含2N个条目,那么,把16-比特颜色值插在第N个比特位置上。散列函数的输出与插入的颜色值(当起作用时)一起存储在HashedKey寄存器中。
把散列函数定义成使它的输出中的大部分熵存在于最高位中。HashedKey寄存器的N个最高位用于计算进入直接表(DT)的索引。
搜索从进入直接表的访问开始:从直接表读取DTEntry。用于读取DTEntry的地址是从HashedKey的N个最高位中,以及根据如LUDefTable中定义的树特性计算出来的。下面将对此作详细说明。可以把DTEntry看作是树的根。所使用的特定树数据结构取决于树类型。这里,只要说对FM树使用帕特丽夏树数据结构就足够了,并且,对于LPM和SMT树来说,也只不过是帕特丽夏树的扩展。
利用8条目DT的例子显示在图15中。可以看出,利用DT可以缩短搜索时间(即,必须访问的PSCB的数量)。因此,通过增加DT尺寸,可以在存储器使用和搜索性能之间作出折衷选择。
从图15可以看出,DTEntry可以包含如下信息:
空。不存在与这个DTEntry相连接的叶子。
到叶子的指针。存在与这个DTEntry相连接的单片叶子。
到PSCB的指针。存在与这个DTEntry相连接的多于一片的叶子。
DTEntry定义树的根。
美国专利申请第09/312,148号阐述了用于软件管理树的搜索算法和生成树的算法。
名为“比特选择算法(Choice Bit Algorithm)”的算法根据从一组规则或一个规则体系中名为“规则”的项目中选择的比特,利用某种度量建立二进制搜索树。我们所有的例子都是用因特网协议(IP)标题的措辞表达的,但是,也可以用任何类型的固定格式标题来代替。
在IP中,每条规则都与可能利用下列子目建立起来的某些关键字有关:源地址(SA)、目标地址(DA)、源端口(SP)、目标端口(DP)、和协议(P)。这些数据分别长为32、32、16、16、和8个比特,因此,要测试的关键字由104个比特组成。比特选择算法找出104个比特中某些特别有用的比特。在实施过程中,测试少数几个比特就可以从候选者中删除一个规则之外的所有规则或几个规则之外的所有规则。对于某些规则,利用简单比较操作测试不相等性也是合适的。比特测试和比较在逻辑上被组织成二进制树。把树映射到高速测试比特的硬件有效结构上。这样的测试得出关键字可能适配的正好一条规则或少量规则(称为叶链)。在前一种情况中,则通过规则全面地测试关键字。在后一种情况中,则利用比较和全规则测试,按照测试网格测试关键字。
规则组中的每条规则与规则是与关键字相适配的最高优先级规则时采取的行动相联系。规则可以发生交叉(一个关键字适配两条或更多条规则)。在那种情况中,可以赋予规则以优先级号1、2、3、......,以便任何两条交叉的规则都具有不同的优先级(如果关键字适配两条或更多条规则,管理员必须声明哪一条规则起主要作用)。因此,如果在比特测试和比较之后,然后有多于一条的规则要测试,那么,按照优先级的次序测试这些规则。把较低的优先级号指定给优先级较高的规则。
如果根本没有找到适配的,那么可以规定一些默认条款。
美国专利第5,787,430号阐述了最长前缀匹配方法的搜索算法。该方法要求从所述数据库的节点(根节点)进入;通过依次处理只包括条目中识别下一个(子)节点所需的那些部分的所述搜索变元的分段,和所述第二链接信息,直到穷尽所述分段或到达没有所述第二链接信息的(叶)节点为止,确定从一个节点穿过所述树状数据库到另一个节点的搜索路径;将存储在所述搜索路径终结的节点中的条目与所述搜索变元相比较;如果在所述当前节点中,连搜索变元与所述条目之间的至少部分匹配也没有找到,那么,通过处理所述当前节点的所述第一链接信息,回溯所述搜索路径;和重复前两个步骤,直到找到所述至少部分匹配或到达所述根节点为止。
图16显示了主交换结构器件的实施例。最好,每个接口器件芯片含有至少两个集成化并行-串行端口,这两个集成化并行-串行端口接收并行数据,把数据转换成在串行链路上转发给交换结构器件的高速串行数据流。在高速串行链路上从交换结构器件接收的数据由另一个DASL转换成并行数据。在这里将描述名为数据校准串行链路(DASL)的串行化器/去串行化器(deserializer)的实施例。
至少一个DASL将交换结构器件与串行链路对接。来自串行链路的数据被转换成传送到交换结构器件的并行数据。同样,来自交换结构器件的数据被转换成传送到串行链路的串行数据。可以把串行链路聚集在一起,以提高吞吐量。
继续参照图16,交换系统包括交换结构11、与交换结构输入端口15(15-1、......、15-k)相连接的输入交换机适配器13(13-1、......、13-k)、和在输出端口19(19-1、......、19-p)上与交换结构相连接的输出交换机适配器17(17-1、......、17-p)。
输入和输出传输链路21(21-1、......、21-q)和23(23-1、......、21-r)分别通过线路(链路)适配器25(25-1、......、25-q)和27(27-1、......、27-r)与交换系统相连接。传输链路把电路交换或数据包交换业务载出或载入诸如工作站、电话机等之类的附属单元(命名为WS的链路),载出或载入局域网(命名为LAN的链路),载出或载入综合业务数据网设施(命名为ISDN的链路),或载出或载入任何其它的通信系统。并且,可以把处理器直接附接在交换机适配器13和17上。线路适配器(LA)和交换机适配器(SA)有公共接口。
在输入交换机适配器上,收集来自数据包交换和电路交换接口的各种业务,并把它们转换成均匀小型数据包(具有几个可能固定长度之一),其头部包含指定交换机的所需输出端口(或输出链路)的路由信息。在下一节中将给出输入交换机适配器中有关小型数据包格式和有关小型数据包生成和输出交换机适配器中有关解包(depacketization)的一些细节。
交换结构通过快速自路由互联网络把小型数据包从任何输入端口路由到任何输出端口。自路由网络的结构是这样的,可以在内部没有任何冲突地同时路由小型数据包。
交换系统的心脏是交换结构。两种不同的实现方式得到了考虑,下面将分别描述它们。在一种实现方式中,对于每个输入端口,交换结构包括一个自路由二进制树,把各自的输入端口与所有输出端口相连接;交换结构总共包括k个这样的树(如果配备了k个输入端口的话)。在另一种实现方式中,对于每个输出端口,提供附带输出RAM的总线结构作为一个片段(slice),把所有输入端口与各自的输出端口相连接;交换结构总共包括p个这样的片段(如果配备了p个输出端口的话)。
1999年6月11日提出的美国专利申请第09/330,968号描述了DASL。DASL接口从CMOS ASIC那样的并行接口接收数据,把来自并行接口的比特划分成较小数组的并行比特流。然后,把较小数组的并行比特流转换成高速串行比特流,通过传输介质把它输运到其它模块的接收器。带有控制阻抗的差分驱动器把数据的串行比特流驱动到传输介质。
DASL实现了如下的方法:把N个比特并行存在的数据流分解成每一个具有n个比特的数个部分,其中n是N的一个分解因子;串行化数据流的每个n比特的部分;在数个并行信道的相应一个上传输每个串行化部分;和去串行化数据流的每个被传输部分,把数据流恢复成N个比特并行的形式。虽然在上述的某些实施例中应用了DASL,但是,应该认识到,在网络处理器这样的地方,可以应用另外体现这里所公开的本发明的数据传输的其它可替代形式。
在已经阐述了这里所公开的发明的优选实施例的附图和说明中,虽然使用了一些具体的术语,但这只是为了便于描述,而不是为了限制的目的。
Claims (27)
1.一种包括如下单元的设备:
控制点处理器;
接口器件,通过控制路径与所述控制点处理器可操作地连接,并且提供高速数据路径,所述接口器件含有:
半导体基底;
在所述基底上形成的多个接口处理器,所述处理器的数量至少是五
个;
在所述基底上形成的内部指令存储器,用于存储所述接口处理器可
访问的指令;
在所述基底上形成的内部数据存储器,用于存储经过所述器件可由
所述接口处理器访问的数据;和
在所述基底上形成的多个输入/输出端口;
所述输入/输出端口的至少一个将所述内部数据存储器与外部数据
存储器相连接;
所述输入/输出端口的其它至少两个在所述接口处理器的引导下,
以介质速度与外部网络交换经过接口器件的数据;
在引导数据在所述数据交换输入/输出端口之间的交换和数据通过所述数据存储器的流动的过程中,所述控制点处理器通过把要由所述接口处理器执行的指令装载到所述指令存储器中,与所述接口器件协作。
2.根据权利要求1所述的设备,进一步包括:
第二接口器件,与所述控制点处理器可操作地相连接,并且具有:
半导体基底;
在所述基底上形成的多个接口处理器,所述处理器的数量至少是五
个;
在所述基底上形成的内部指令存储器,用于存储所述接口处理器可
访问的指令;
在所述基底上形成的内部数据存储器,用于存储经过所述器件可由
所述接口处理器访问的数据;和
在所述基底上形成的多个输入/输出端口;
所述输入/输出端口的至少一个将所述内部数据存储器与外部数据
存储器相连接;
所述输入/输出端口的其它至少两个在所述接口处理器的引导下,
与外部网络交换经过接口器件的数据;
在引导数据在所述数据交换输入/输出端口之间的交换和数据通过所述数据存储器的流动的过程中,所述控制点处理器通过把要由所述接口处理器执行的指令装载到所述指令存储器中,与所述第二接口器件协作。
3.根据权利要求1所述的设备,进一步包括:
第二控制点处理器;
所述接口器件与所述控制点处理器和所述第二控制点处理器之一可操作地相连接;
第二接口器件,与所述控制点处理器和所述第二控制点处理器的另
一个可操作地相连接,并且具有:
半导体基底;
在所述基底上形成的多个接口处理器,所述处理器的数量至少是五
个;
在所述基底上形成的内部指令存储器,用于存储所述接口处理器可
访问的指令;
在所述基底上形成的内部数据存储器,用于存储经过所述器件可由
所述接口处理器访问的数据;和
在所述基底上形成的多个输入/输出端口;
所述输入/输出端口的至少一个将所述内部数据存储器与外部数据
存储器相连接;
所述输入/输出端口的其它至少两个在所述接口处理器的引导下,
与外部网络交换经过接口器件的数据;
在引导数据在所述数据交换输入/输出端口之间的交换和数据通过所述数据存储器的流动的过程中,所述其它控制点处理器通过把要由所述接口处理器执行的指令装载到所述指令存储器中,与所述第二接口器件协作。
4.根据权利要求1至3之一所述的设备,其特征在于,所述控制点处理器位于离所述接口器件远程的地方,并且通过所述两个其它输入/输出端口与之可操作地相连接。
5.根据权利要求1至4之一所述的设备,还包括印刷电路板器件,和其特征在于安装在所述印刷电路板器件上的电路单元包括如所述权利要求1至4之一所述的单元。
6.根据权利要求5所述的设备,还包括:自路由交换结构器件,与所述接口器件可操作地相连接,并且引导从可识别地址入站到该设备的数据从该设备流出站到被识别地址。
7.根据权利要求1至4之一所述的设备,还包括:
机箱;
安装在机箱中的背板;和
安装在所述背板上的多个印刷电路板器件;和
其中,在所述印刷电路板器件之一上的电路单元包括如所述权利要求1至4之一所述的单元。
8.根据权利要求7所述的设备,其特征在于,所述控制点处理器是在所述半导体基底上形成的。
9.根据权利要求7所述的设备,其特征在于,在所述印刷电路板器件的第二个上的电路单元包括另一组如所述权利要求1至4之一所述的单元。
10.一种包括下列单元的通信装置:
控制点处理器子系统;和
网络处理器,与所述控制点处理器可操作地耦合,并且具有:
多个接口处理器;
多个介质接口;
将介质接口与接口处理器相耦合的多个队列寄存器,用于提供数
据进入和离开接口处理器的队列通道;
存储器,用于存储经过所述接口处理器的数据;和
入列/出列调度器,对控制信息作出响应,把数据从所述存储器
移动到所述队列通道的所选那一个;
所述控制点处理器子系统含有控制点函数发生器,用于在所述网络处理器的控制下,生成带有允许所述控制点处理器子系统访问寄存器和存储器的信息的导向帧,和将其转发到所述多个介质接口之一。
11.根据权利要求10所述的通信器件,其特征在于,导向帧信息至少包括一个字的帧控制信息、一个字的软件相关性、一个导向命令和结束定界符导向命令。
12.根据权利要求10所述的通信器件,还包括与所述接口处理器耦合的帧控制块寄存器,所述帧控制块寄存器存储用于把经处理的导向帧路由回到控制点函数发生器的信息。
13.根据权利要求10所述的通信器件,其特征在于,控制点处理器子系统包括:
总线;
与所述总线耦合的判优器;
与所述总线耦合的CPU;
与所述总线耦合的DMA控制器;
与所述总线耦合的邮箱和DRAM接口;
互连所述CPU和邮箱和DRAM接口的中断控制器;
与接口处理器和所述邮箱和DRAM接口耦合的DRAM判优器;和
与所述DRAM判优器耦合的DRAM控制器。
14.根据权利要求13所述的通信器件,还至少包括将控制点处理器与邮箱和DRAM接口相耦合的中断线路和将接口处理器之一与邮箱和DRAM接口互连的通信线路。
15.根据权利要求10所述的通信器件,其特征在于,网络处理器的各个部件是制造在公共基底上的。
16.根据权利要求15所述的通信器件,其特征在于,控制点处理器子系统是制造在公共基底上的。
17.根据权利要求10所述的通信器件,其特征在于,控制点处理器子系统是在所述网络处理器制造在上面的公共基底的外部;和通信模块将控制点处理器子系统与多个介质接口的至少一个互连。
18.根据权利要求17所述的通信器件,其特征在于,多个介质接口的至少一个包括第一以太网介质访问控制(MAC),和通信模块含有与处理器子系统耦合的第二以太网MAC/PHY;与以太网MAC/PHY耦合的以太网PHY;和将以太网PHY与第一以太网MAC耦合的传输介质。
19.根据权利要求18所述的通信器件,还包括将第二以太网MAC/PHY与控制处理器子系统互连的互连器件;和与所述互连器件可操作地连接的存储器件。
20.根据权利要求19所述的通信器件,其特征在于,互连器件包括PCI桥接器。
21.一种包括下列步骤的方法:
把处理经过接口器件的数据的指令存储在指令存储器中;
在多个接口处理器中执行存储在指令存储器中的指令;
接收以介质速度通过输入端口入站的数据流;
通过多个接口处理器通信数据流;和
根据指令被接口处理器的执行,引导数据流以介质速度通过输出端口出站。
22.根据权利要求21所述的方法,还包括把数据流分解成多个部分,把分解数据流的被选部分存储在数据存储器中,把分解数据流的其它被选部分引向交换结构,供确定出站方向之用。
23.根据权利要求22所述的方法,还包括在引导数据流通过输出端口出站之前,把数据流的被存储部分和其它被选部分重新组合在一起。
24.根据权利要求21所述的方法,其特征在于,通过多个接口处理器通信数据流的步骤包括把数据流分解成数个部分,和在并行管理的多个接口处理器之间分配分解的部分。
25.一种包括下列步骤的方法:
利用位于控制点处理器中的控制点函数生成导向帧;
利用所述控制点处理器中的器件驱动器把导向帧发送到与网络处理器相联系的多个介质接口之一;
利用所述介质接口中的介质访问控制硬件恢复导向帧。
将经恢复的导向帧存储在存储器中;和
将存储的导向帧路由到所述导向帧中识别的实体(entity)。
26.根据权利要求25所述的方法,还包括下列步骤:根据所述导向帧携带的指令,通过所述实体处理所述导向帧;和如有必要,通过导向帧携带的信息,把经处理的导向帧路由回到控制点函数。
27.根据权利要求25所述的方法,还包括下列步骤:用网络路由信息封装导向帧。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/384,692 | 1999-08-27 | ||
US09/384,692 US6985431B1 (en) | 1999-08-27 | 1999-08-27 | Network switch and components and method of operation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1399738A true CN1399738A (zh) | 2003-02-26 |
CN1307564C CN1307564C (zh) | 2007-03-28 |
Family
ID=23518351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008142416A Expired - Lifetime CN1307564C (zh) | 1999-08-27 | 2000-08-24 | 网络交换机和部件及其操作方法 |
Country Status (9)
Country | Link |
---|---|
US (5) | US6985431B1 (zh) |
EP (1) | EP1226501B1 (zh) |
JP (2) | JP2003508954A (zh) |
KR (1) | KR100466083B1 (zh) |
CN (1) | CN1307564C (zh) |
AT (1) | ATE333678T1 (zh) |
DE (1) | DE60029467T2 (zh) |
ES (1) | ES2265971T3 (zh) |
WO (1) | WO2001016763A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685401B (zh) * | 2008-09-22 | 2013-07-24 | 中国科学院计算技术研究所 | 一种远程无线编程的方法及支持远程无线编程的芯片 |
CN106201937A (zh) * | 2015-05-27 | 2016-12-07 | 三星电子株式会社 | 处理自适应中断的方法和装置、主机、i/o设备和系统 |
CN113923080A (zh) * | 2021-10-11 | 2022-01-11 | 中认车联网技术服务(深圳)有限公司 | 基于车载以太网的视频信号监控平台及数据分析方法 |
Families Citing this family (68)
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 |
US8300534B2 (en) * | 2000-05-24 | 2012-10-30 | Alcatel Lucent | Programmable packet processor with flow resolution logic |
US8619793B2 (en) * | 2000-08-21 | 2013-12-31 | Rockstar Consortium Us Lp | Dynamic assignment of traffic classes to a priority queue in a packet forwarding device |
EP1193918B1 (en) * | 2000-09-20 | 2007-08-22 | Broadcom Corporation | Switch assembly having multiple blades in a chassis |
US8762581B2 (en) * | 2000-12-22 | 2014-06-24 | Avaya Inc. | Multi-thread packet processor |
US6987760B2 (en) | 2001-03-05 | 2006-01-17 | International Business Machines Corporation | High speed network processor |
US7149212B2 (en) * | 2001-03-21 | 2006-12-12 | International Business Machines Corporation | Apparatus, method and limited set of messages to transmit data between scheduler and a network processor |
US20040260829A1 (en) * | 2001-04-13 | 2004-12-23 | Husak David J. | Manipulating data streams in data stream processors |
US7398271B1 (en) * | 2001-04-16 | 2008-07-08 | Yahoo! Inc. | Using network traffic logs for search enhancement |
US8195705B2 (en) * | 2001-12-11 | 2012-06-05 | International Business Machines Corporation | Hybrid search memory for network processor and computer systems |
CN100399778C (zh) * | 2001-12-30 | 2008-07-02 | 联想(北京)有限公司 | 物理层自适应不同网络传输链路介质的装置及控制方法 |
TW561740B (en) * | 2002-06-06 | 2003-11-11 | Via Tech Inc | Network connecting device and data packet transferring method |
US8015303B2 (en) * | 2002-08-02 | 2011-09-06 | Astute Networks Inc. | High data rate stateful protocol processing |
US7814218B1 (en) | 2002-10-17 | 2010-10-12 | Astute Networks, Inc. | Multi-protocol and multi-format stateful processing |
US8151278B1 (en) | 2002-10-17 | 2012-04-03 | Astute Networks, Inc. | System and method for timer management in a stateful protocol processing system |
US7596621B1 (en) * | 2002-10-17 | 2009-09-29 | Astute Networks, Inc. | System and method for managing shared state using multiple programmed processors |
US20040143682A1 (en) * | 2003-01-21 | 2004-07-22 | Brocade Communications Systems, Inc. | Network switch containing a hard disk drive |
US20050044261A1 (en) * | 2003-07-18 | 2005-02-24 | Rahul Saxena | Method of operating a network switch |
US20050102474A1 (en) * | 2003-11-06 | 2005-05-12 | Sridhar Lakshmanamurthy | Dynamically caching engine instructions |
US7558890B1 (en) * | 2003-12-19 | 2009-07-07 | Applied Micro Circuits Corporation | Instruction set for programmable queuing |
US20050172132A1 (en) | 2004-01-30 | 2005-08-04 | Chen Sherman (. | Secure key authentication and ladder system |
US9461825B2 (en) | 2004-01-30 | 2016-10-04 | Broadcom Corporation | Method and system for preventing revocation denial of service attacks |
US9094699B2 (en) * | 2004-02-05 | 2015-07-28 | Broadcom Corporation | System and method for security key transmission with strong pairing to destination client |
US7480308B1 (en) * | 2004-03-29 | 2009-01-20 | Cisco Technology, Inc. | Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly |
US7580350B1 (en) * | 2004-03-30 | 2009-08-25 | Extreme Networks, Inc. | System for deriving packet quality of service indicator |
US20050223984A1 (en) * | 2004-04-08 | 2005-10-13 | Hee-Gyoun Lee | Chemical vapor deposition (CVD) apparatus usable in the manufacture of superconducting conductors |
US7929518B2 (en) * | 2004-07-15 | 2011-04-19 | Broadcom Corporation | Method and system for a gigabit Ethernet IP telephone chip with integrated DDR interface |
US7533092B2 (en) * | 2004-10-28 | 2009-05-12 | Yahoo! Inc. | Link-based spam detection |
US7600115B2 (en) * | 2005-04-05 | 2009-10-06 | Cisco Technology, Inc. | Control key capable of storing multiple and variable data packet classification results |
US7606147B2 (en) * | 2005-04-13 | 2009-10-20 | Zeugma Systems Inc. | Application aware traffic shaping service node positioned between the access and core networks |
US7719966B2 (en) * | 2005-04-13 | 2010-05-18 | Zeugma Systems Inc. | Network element architecture for deep packet inspection |
EP1889419B1 (en) * | 2005-05-23 | 2009-07-22 | Nxp B.V. | Integrated circuit with internal communication network |
US7719995B2 (en) * | 2005-09-09 | 2010-05-18 | Zeugma Systems Inc. | Application driven fast unicast flow replication |
US7733891B2 (en) * | 2005-09-12 | 2010-06-08 | Zeugma Systems Inc. | Methods and apparatus to support dynamic allocation of traffic management resources in a network element |
US7508764B2 (en) * | 2005-09-12 | 2009-03-24 | Zeugma Systems Inc. | Packet flow bifurcation and analysis |
US7672236B1 (en) * | 2005-12-16 | 2010-03-02 | Nortel Networks Limited | Method and architecture for a scalable application and security switch using multi-level load balancing |
US7843927B1 (en) * | 2006-12-22 | 2010-11-30 | Extreme Networks, Inc. | Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device |
US8429177B2 (en) * | 2006-02-08 | 2013-04-23 | Yahoo! Inc. | Using exceptional changes in webgraph snapshots over time for internet entity marking |
US7852843B2 (en) * | 2006-07-21 | 2010-12-14 | Cortina Systems, Inc. | Apparatus and method for layer-2 to layer-7 search engine for high speed network application |
US7630385B2 (en) * | 2006-08-04 | 2009-12-08 | Oyadomari Randy I | Multiple domains in a multi-chassis system |
JP2008078768A (ja) * | 2006-09-19 | 2008-04-03 | Denso Corp | ネットワークシステム,ネットワークデバイスおよびプログラム |
US8219789B2 (en) * | 2007-03-14 | 2012-07-10 | XMOS Ltd. | Interface processor |
US7773510B2 (en) | 2007-05-25 | 2010-08-10 | Zeugma Systems Inc. | Application routing in a distributed compute environment |
US20080298230A1 (en) * | 2007-05-30 | 2008-12-04 | Luft Siegfried J | Scheduling of workloads in a distributed compute environment |
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 |
US7706291B2 (en) * | 2007-08-01 | 2010-04-27 | Zeugma Systems Inc. | Monitoring quality of experience on a per subscriber, per session basis |
US8374102B2 (en) * | 2007-10-02 | 2013-02-12 | Tellabs Communications Canada, Ltd. | Intelligent collection and management of flow statistics |
WO2010090838A2 (en) * | 2009-01-20 | 2010-08-12 | The Regents Of The University Of California | Reducing cabling complexity in large-scale networks |
TW201044371A (en) * | 2009-06-15 | 2010-12-16 | Novatek Microelectronics Corp | Memory architecture of display device and reading method thereof |
US8565239B2 (en) * | 2009-07-14 | 2013-10-22 | Broadcom Corporation | Node based path selection randomization |
US8665879B2 (en) * | 2009-07-14 | 2014-03-04 | Broadcom Corporation | Flow based path selection randomization using parallel hash functions |
US20110145837A1 (en) * | 2009-12-14 | 2011-06-16 | Bower Kenneth S | Filtering Broadcast Recipients In A Multiprocessing Environment |
US8331373B2 (en) | 2010-03-15 | 2012-12-11 | Extreme Networks, Inc. | Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device |
US9319335B1 (en) * | 2010-12-07 | 2016-04-19 | Pluribus Networks, Inc. | Distributed operating system for a layer 2 fabric |
US8934783B2 (en) | 2011-02-17 | 2015-01-13 | International Business Machines Corporation | Adaptor system for an ethernet network |
US10122653B2 (en) * | 2011-04-28 | 2018-11-06 | International Business Machines Corporation | Energy management system for a data center network |
US8582437B2 (en) * | 2011-06-21 | 2013-11-12 | Broadcom Corporation | System and method for increasing input/output speeds in a network switch |
US8861401B2 (en) | 2012-04-03 | 2014-10-14 | International Business Machines Corporation | Layer 2 packet switching without look-up table for ethernet switches |
US8838871B2 (en) | 2012-04-09 | 2014-09-16 | Dell Products L.P. | Methods and systems for virtualization of storage services in an integrated chassis |
US8902896B2 (en) | 2012-04-16 | 2014-12-02 | International Business Machines Corporation | Packet switching without look-up table for ethernet switches |
WO2014045175A1 (en) * | 2012-09-21 | 2014-03-27 | Koninklijke Philips N.V. | Method and apparatus for dynamic address assignment |
US9652216B2 (en) * | 2012-10-04 | 2017-05-16 | Dell Products L.P. | System and method for providing out-of-band software or firmware upgrades for a switching device |
WO2014195804A2 (en) * | 2013-06-04 | 2014-12-11 | Marvell World Trade Ltd. | Internal search engine architecture |
US8966074B1 (en) * | 2013-09-13 | 2015-02-24 | Network Kinetix, LLC | System and method for real-time analysis of network traffic |
AU2013245529A1 (en) * | 2013-10-18 | 2015-05-07 | Cisco Technology, Inc. | Network Interface |
US9935898B2 (en) * | 2014-09-20 | 2018-04-03 | Innovasic, Inc. | Ethernet interface module |
US10200309B2 (en) | 2016-08-12 | 2019-02-05 | Samsung Electronics Co., Ltd. | Two-headed switch including a drive bay for fabric-attached devices |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2573394B1 (fr) * | 1984-11-16 | 1986-12-12 | Panzani Milliat Freres Sa | Nouvel ensemble pour le stockage, le transport et la distribution des objets du type bouteilles, flacons et analogues, et procede pour sa fabrication |
US4736362A (en) * | 1985-07-26 | 1988-04-05 | Advanced Micro Devices, Inc. | Programmable data-routing multiplexer |
EP0312628B1 (en) * | 1987-10-20 | 1993-12-29 | International Business Machines Corporation | High-speed modular switching apparatus for circuit and packet switched traffic |
FR2637440B1 (fr) | 1988-08-18 | 1994-05-13 | Bull Sa | Procede de transmission de donnees sur un bus interne d'une station de travail, dispositif a bus interne, permettant la mise en oeuvre du procede, et circuit d'adaptation pour ce bus interne |
FR2638260B1 (fr) * | 1988-10-26 | 1994-04-29 | Onera (Off Nat Aerospatiale) | Dispositifs de commutation et reseaux de communication de donnees pour systemes multiprocesseurs |
US5495482A (en) * | 1989-09-29 | 1996-02-27 | Motorola Inc. | Packet transmission system and method utilizing both a data bus and dedicated control lines |
US6070003A (en) * | 1989-11-17 | 2000-05-30 | Texas Instruments Incorporated | System and method of memory access in apparatus having plural processors and plural memories |
US5226125A (en) * | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
US5404550A (en) * | 1991-07-25 | 1995-04-04 | Tandem Computers Incorporated | Method and apparatus for executing tasks by following a linked list of memory packets |
DE69230093T2 (de) | 1991-11-19 | 2000-04-13 | International Business Machines Corp., Armonk | Multiprozessorsystem |
DE69124743T2 (de) * | 1991-11-29 | 1997-08-14 | Ibm | Vorrichtung zur Speicherung und Durchschaltung und Verfahren zur Datensicherung während der Speicherung |
EP0544963A1 (en) * | 1991-11-29 | 1993-06-09 | International Business Machines Corporation | Parallel processing method for receiving and transmitting HDLC/SDLC bit streams |
JP2647330B2 (ja) * | 1992-05-12 | 1997-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 超並列コンピューティングシステム |
US5331315A (en) * | 1992-06-12 | 1994-07-19 | Universities Research Association, Inc. | Switch for serial or parallel communication networks |
EP0645702B1 (de) | 1993-09-24 | 2000-08-02 | Siemens Aktiengesellschaft | Verfahren zum Lastausgleich in einem Multiprozessorsystem |
JPH07152501A (ja) | 1993-11-30 | 1995-06-16 | Kawasaki Steel Corp | 媒体集合型装置駆動命令発行装置 |
US5557609A (en) * | 1993-12-01 | 1996-09-17 | Kabushiki Kaisha Toshiba | Switching apparatus for ATM |
JPH07320742A (ja) * | 1994-05-20 | 1995-12-08 | Sumitomo Electric Ind Ltd | アルカリ蓄電池用電極およびその製造方法 |
GB2291562B (en) * | 1994-05-21 | 1998-09-23 | Northern Telecom Ltd | Communications system |
US5787430A (en) * | 1994-06-30 | 1998-07-28 | International Business Machines Corporation | Variable length data sequence backtracking a trie structure |
US5583868A (en) * | 1994-07-25 | 1996-12-10 | Microsoft Corporation | Method and system for combining data from multiple servers into a single continuous data stream using a switch |
EP0719065A1 (en) * | 1994-12-20 | 1996-06-26 | International Business Machines Corporation | Multipurpose packet switching node for a data communication network |
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
US5724348A (en) * | 1995-04-05 | 1998-03-03 | International Business Machines Corporation | Efficient hardware/software interface for a data switch |
CN1148211A (zh) * | 1995-06-05 | 1997-04-23 | 北京航空航天大学 | 耦合度可调并行计算机群系统及其构造方法 |
US5748633A (en) * | 1995-07-12 | 1998-05-05 | 3Com Corporation | Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device |
US5651002A (en) | 1995-07-12 | 1997-07-22 | 3Com Corporation | Internetworking device with enhanced packet header translation and memory |
US5568471A (en) * | 1995-09-06 | 1996-10-22 | International Business Machines Corporation | System and method for a workstation monitoring and control of multiple networks having different protocols |
US5841777A (en) * | 1996-08-30 | 1998-11-24 | Hewlett-Packard Company | System and method for accommodating ABR and CBR traffic on a shared communications channel |
US5864535A (en) * | 1996-09-18 | 1999-01-26 | International Business Machines Corporation | Network server having dynamic load balancing of messages in both inbound and outbound directions |
US5854787A (en) * | 1996-12-13 | 1998-12-29 | Rockwell International | Method for reducing message error rate within real-time exchange radio-frequency communications systems |
US6791947B2 (en) * | 1996-12-16 | 2004-09-14 | Juniper Networks | In-line packet processing |
US5898667A (en) * | 1996-12-31 | 1999-04-27 | Northern Telecom Limited | SS7 network management primeship |
US6172990B1 (en) * | 1997-06-19 | 2001-01-09 | Xaqti Corporation | Media access control micro-RISC stream processor and method for implementing the same |
US6301257B1 (en) * | 1997-03-19 | 2001-10-09 | Nortel Networks Limited | Method and apparatus for transmitting data frames between switches in a meshed data network |
JP3607466B2 (ja) | 1997-09-05 | 2005-01-05 | 株式会社東芝 | ルータ装置及び制御フレーム処理方法 |
US6304910B1 (en) | 1997-09-24 | 2001-10-16 | Emulex Corporation | Communication processor having buffer list modifier control bits |
US6064674A (en) * | 1997-10-22 | 2000-05-16 | International Business Machines Corporation | Method and apparatus for hardware forwarding of LAN frames over ATM networks |
US6195334B1 (en) * | 1997-12-18 | 2001-02-27 | Advanced Micro Devices, Inc. | Apparatus and method for terminating a data transfer in a network switch in response to a detected collision |
US6259699B1 (en) * | 1997-12-30 | 2001-07-10 | Nexabit Networks, Llc | System architecture for and method of processing packets and/or cells in a common switch |
JPH11205339A (ja) | 1998-01-19 | 1999-07-30 | Hitachi Ltd | Atm交換機 |
TW358911B (en) * | 1998-01-23 | 1999-05-21 | Accton Technology Corp | Data package sorting transmission method |
US6307860B1 (en) * | 1998-04-03 | 2001-10-23 | Mmc Networks, Inc. | Systems and methods for data transformation and transfer in networks |
US6266340B1 (en) * | 1998-04-03 | 2001-07-24 | Vertical Networks, Inc. | Systems and methods for multiple voice data communication which includes interface cards including configurable clocks that are dynamically coupled to a TDS bus |
US6330584B1 (en) * | 1998-04-03 | 2001-12-11 | Mmc Networks, Inc. | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
US6490281B1 (en) * | 1998-06-04 | 2002-12-03 | International Business Machines Corporation | Apparatus including a scalable multiprotocol communications adapter using modular components and a method for transmitting data frames via scalable multiprotocol communication adapters |
US6560228B2 (en) * | 1998-07-01 | 2003-05-06 | Agilent Technologies, Inc. | Generation of informative MAC headers for analysis of ATM routed LAN frames |
US6393457B1 (en) * | 1998-07-13 | 2002-05-21 | International Business Machines Corporation | Architecture and apparatus for implementing 100 Mbps and GBPS Ethernet adapters |
US6400717B1 (en) * | 1998-10-16 | 2002-06-04 | Samsung Electronics Co., Ltd. | Device for booting a multiprocessor embedded system and method of operation |
US6873630B1 (en) * | 1999-05-19 | 2005-03-29 | Sun Microsystems, Inc. | Method and apparatus for a multi-gigabit ethernet architecture |
US6393479B1 (en) * | 1999-06-04 | 2002-05-21 | Webside Story, Inc. | Internet website traffic flow analysis |
US6404752B1 (en) * | 1999-08-27 | 2002-06-11 | International Business Machines Corporation | Network switch using network processor and methods |
US6985431B1 (en) * | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
US6766381B1 (en) * | 1999-08-27 | 2004-07-20 | International Business Machines Corporation | VLSI network processor and methods |
US6671725B1 (en) * | 2000-04-18 | 2003-12-30 | International Business Machines Corporation | Server cluster interconnection using network processor |
US6965922B1 (en) * | 2000-04-18 | 2005-11-15 | International Business Machines Corporation | Computer system and method with internal use of networking switching |
US6772218B1 (en) * | 2000-04-18 | 2004-08-03 | International Business Machines Corporation | Server acceleration using network processor |
US6829697B1 (en) * | 2000-09-06 | 2004-12-07 | International Business Machines Corporation | Multiple logical interfaces to a shared coprocessor resource |
US7047303B2 (en) * | 2001-07-26 | 2006-05-16 | International Business Machines Corporation | Apparatus and method for using a network processor to guard against a “denial-of-service” attack on a server or server cluster |
US7310685B2 (en) * | 2002-08-29 | 2007-12-18 | International Business Machines Corporation | Method and system for reducing look-up time in packet forwarding on computer networks |
-
1999
- 1999-08-27 US US09/384,692 patent/US6985431B1/en not_active Expired - Lifetime
-
2000
- 2000-08-24 EP EP00959158A patent/EP1226501B1/en not_active Expired - Lifetime
- 2000-08-24 JP JP2001520649A patent/JP2003508954A/ja active Pending
- 2000-08-24 WO PCT/US2000/020795 patent/WO2001016763A1/en active IP Right Grant
- 2000-08-24 DE DE60029467T patent/DE60029467T2/de not_active Expired - Lifetime
- 2000-08-24 ES ES00959158T patent/ES2265971T3/es not_active Expired - Lifetime
- 2000-08-24 KR KR10-2002-7002312A patent/KR100466083B1/ko not_active IP Right Cessation
- 2000-08-24 AT AT00959158T patent/ATE333678T1/de not_active IP Right Cessation
- 2000-08-24 CN CNB008142416A patent/CN1307564C/zh not_active Expired - Lifetime
-
2005
- 2005-06-14 US US11/152,699 patent/US20050232270A1/en not_active Abandoned
- 2005-06-14 US US11/152,453 patent/US7590057B2/en not_active Expired - Fee Related
- 2005-06-14 US US11/152,419 patent/US7620048B2/en not_active Expired - Fee Related
- 2005-06-14 US US11/152,119 patent/US7257616B2/en not_active Expired - Fee Related
- 2005-09-28 JP JP2005282931A patent/JP4066382B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685401B (zh) * | 2008-09-22 | 2013-07-24 | 中国科学院计算技术研究所 | 一种远程无线编程的方法及支持远程无线编程的芯片 |
CN106201937A (zh) * | 2015-05-27 | 2016-12-07 | 三星电子株式会社 | 处理自适应中断的方法和装置、主机、i/o设备和系统 |
CN113923080A (zh) * | 2021-10-11 | 2022-01-11 | 中认车联网技术服务(深圳)有限公司 | 基于车载以太网的视频信号监控平台及数据分析方法 |
CN113923080B (zh) * | 2021-10-11 | 2023-12-19 | 中认车联网技术服务(深圳)有限公司 | 基于车载以太网的视频信号监控平台及数据分析方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050232270A1 (en) | 2005-10-20 |
ATE333678T1 (de) | 2006-08-15 |
US20050232205A1 (en) | 2005-10-20 |
US6985431B1 (en) | 2006-01-10 |
US7257616B2 (en) | 2007-08-14 |
KR20020024330A (ko) | 2002-03-29 |
CN1307564C (zh) | 2007-03-28 |
US7620048B2 (en) | 2009-11-17 |
KR100466083B1 (ko) | 2005-01-13 |
JP2003508954A (ja) | 2003-03-04 |
US20050243850A1 (en) | 2005-11-03 |
DE60029467D1 (de) | 2006-08-31 |
JP4066382B2 (ja) | 2008-03-26 |
EP1226501A4 (en) | 2003-10-01 |
US20050232204A1 (en) | 2005-10-20 |
JP2006020371A (ja) | 2006-01-19 |
US7590057B2 (en) | 2009-09-15 |
DE60029467T2 (de) | 2007-07-19 |
EP1226501B1 (en) | 2006-07-19 |
ES2265971T3 (es) | 2007-03-01 |
WO2001016763A1 (en) | 2001-03-08 |
EP1226501A1 (en) | 2002-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1399738A (zh) | 网络交换机和部件及其操作方法 | |
CN1204509C (zh) | 通信网络装置 | |
CN1272946C (zh) | 可伸缩的网络处理器及操作该网络处理器的方法和装置 | |
CN1371500A (zh) | 网络处理器处理组合体和方法 | |
CN1239984C (zh) | Vlsi网络处理器和方法 | |
CN1148687C (zh) | 用于网络处理器的全匹配搜索方法和设备 | |
CN1194558C (zh) | 异步传递模式交换机及其控制方法 | |
CN1124613C (zh) | 一种用于网络路由器的具有掩码功能的相联存储器 | |
CN1249963C (zh) | 使用分组摘要信息快速和自适应处理分组的设备和方法 | |
CN1250290A (zh) | 分组中继设备 | |
CN1695127A (zh) | 网络接口和协议 | |
CN1293410A (zh) | 数据传送控制装置和电子装置 | |
CN87106124A (zh) | 多中央处理机互锁装置 | |
CN1514600A (zh) | 具有通用传递接口的多业务交换机 | |
CN101160856A (zh) | 一种网络处理器 | |
CN1138211C (zh) | 数据传输控制装置及电子设备 | |
CN1299467C (zh) | 管理网络设备的装置及其方法 | |
CN1341313A (zh) | 多业务网络交换机 | |
CN1860743A (zh) | 使用模式匹配的网络消息处理 | |
CN1663188A (zh) | 有效的分组处理流水线装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20070328 |
|
CX01 | Expiry of patent term |