CN1996857B - 网络设备、用于网络设备的可编程网络元件及其实现方法 - Google Patents

网络设备、用于网络设备的可编程网络元件及其实现方法 Download PDF

Info

Publication number
CN1996857B
CN1996857B CN2006100636243A CN200610063624A CN1996857B CN 1996857 B CN1996857 B CN 1996857B CN 2006100636243 A CN2006100636243 A CN 2006100636243A CN 200610063624 A CN200610063624 A CN 200610063624A CN 1996857 B CN1996857 B CN 1996857B
Authority
CN
China
Prior art keywords
external
bus
programmable
physical interfaces
network component
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.)
Active
Application number
CN2006100636243A
Other languages
English (en)
Other versions
CN1996857A (zh
Inventor
范斯·M·塔特普迪
阿尼班恩·巴纳吉
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.)
Avago Technologies General IP Singapore Pte Ltd
Original Assignee
Zyray Wireless Inc
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 Zyray Wireless Inc filed Critical Zyray Wireless Inc
Publication of CN1996857A publication Critical patent/CN1996857A/zh
Application granted granted Critical
Publication of CN1996857B publication Critical patent/CN1996857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3054Auto-negotiation, e.g. access control between switch gigabit interface connector [GBIC] and link

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Abstract

一种用于具有共享结构的多个网络设备的可编程网络元件,其中可编程网络元件包括具有外部处理单元的接口,用于提供所述外部处理单元和网络设备之间的管理接口控制。所述可编程网络元件还包括多个内部总线,每个内部总线耦合至所述可编程网络元件和至少一个网络元件。所述可编程网络元件进一步包括多个外部总线,每个外部总线耦合至所述可编程网络元件和至少一个物理接口。所述可编程网络元件设置为支持用于与多个物理接口元件通信的多个协议,并包括用于确定所述多个物理接口状态的多个可编程寄存器。

Description

网络设备、用于网络设备的可编程网络元件及其实现方法
技术领域
本发明涉及一种访问具有通配(generic)CPU处理单元的中央处理器的方法和系统,更具体地说,涉及一种可编程地设置所述CPU处理单元以用于多个交换设备的方法和系统。
背景技术
交换系统可包括一个或多个网络设备,例如交换芯片,每个设备又包括多个模块用于处理通过所述设备传输的信息。具体而言,所述设备包括输入模块、存储器管理单元(MMU)和输出模块。输入模块包括有交换功能以确定数据包应被发送至哪个端口。MMU用于存储数据包信息和执行资源检查。输出模块用于执行数据包修改和传输数据包至至少一个合适的目的端口。设备上可以有一个端口是CPU端口,以使该设备可发送信息至外部交换/路由控制实体或CPU以及从外部交换/路由控制实体或CPU接收信息。
当数据包从多个端口进入设备后,被转发至输入模块,并在输入模块处对其执行交换。随后,这些数据包被传送至MMU以进行进一步的处理。然后,输出模块传输该数据包至至少一个目的端口,可能包括CPU端口。如果信息被传输至CPU端口,输出模块通过CPU处理单元例如CMICTM模块转发该信息,该CPU处理单元负责所有的CPU管理功能。例如,CMICTM模块负责发送数据包至CPU端口以及从CPU端口接收数据包,改变寄存器存储器设置,并与内部和/或外部总线交互。
即使是在一系列共享同样结构的交换芯片中,端口数和端口所支持的速度都是可变的。因此,共享同样的结构的一系列交换芯片中的每个交换芯片均具有CMICTM设计,该CMICTM设计可根据例如交换芯片的端口数和速度进行自定义。CMICTM模块中的自定义是昂贵的、耗时的并且容易出错。因此,需要一种通配的CMICTM模块,可用于各种共享同样结构的交换芯片。
发明内容
根据本发明得一个方面,提供一种用于处理信息的网络设备,所述网络设备包括:
可编程网络元件,与外部处理单元连接以提供所述外部处理单元和网络设备之间的管理接口控制,其中所述可编程网络元件可用于具有共享结构的多个网络设备;
多个内部总线,其中的每个总线耦合至所述可编程网络元件和至少一个内部网络元件;以及
多个外部总线,其中的每个总线耦合至所述可编程网络元件和至少一个外部物理接口元件,其中,所述至少一个外部物理接口元件与交换芯片通过外部总线进行连接;
其中所述可编程网络元件设置为支持用于与多个外部物理接口元件通信的多个协议,并包括有用于确定所述多个外部物理接口元件的状态的多个可编程寄存器;
所述可编程网络元件使用至少一个可编程寄存器选择所述多个内部总线和多个外部总线中一个合适的总线来发送交易,以获得来自所述多个外部物理接口元件之一的状态信息。
优选地,所述可编程网络元件设置为支持至少两个外部总线,其中的每个外部总线用于与外部物理接口元件连接,且其中的每个外部总线均支持所述多个外部物理接口元件。
优选地,所述可编程网络元件设置为支持至少两个内部总线,每个内部总线用于与内部网络元件连接,所述内部网络元件在通过所述网络设备传输信息前,将从所述至少一个外部物理接口元件进入所述网络设备的所述信息转换为字节。
优选地,所述可编程网络元件设置为执行自动扫描操作以链路扫描所述多个外部物理接口元件中每个外部物理接口元件的状态,其中所述可编程网络元件包括有端口位图,用于指出将要被扫描的链路状态。
根据本发明的一个方面,提供一种用于具有共享结构的多个网络设备的可编程网络元件,所述可编程网络元件包括:
具有外部处理单元的接口,用于提供所述外部处理单元和网络设备之间的管理接口控制;
具有多个内部总线的接口,其中每个内部总线耦合至所述可编程网络元件和至少一个网络元件;
具有多个外部总线的接口,其中每个外部总线耦合至所述可编程网络元件和至少一个外部物理接口元件,其中,所述至少一个外部物理接口元件与交换芯片通过外部总线进行连接;
支持用于与多个外部物理接口元件通信的多个协议的装置;以及
用于确定所述多个外部物理接口元件的状态的多个可编程寄存器,
使用至少一个可编程寄存器选择所述多个内部总线和多个外部总线中一个合适的总线来发送交易,以获得来自所述多个外部物理接口元件之一的状态信息的装置。
优选地,所述可编程网络元件进一步包括支持至少两个外部总线的支持装置,每个所述外部总线用于与外部物理接口元件连接,其中每个所述外部总线支持所述多个外部物理接口元件。
根据本发明的一个方面,提供一种实现用于具有共享结构的多个网络设备的可编程网络元件的方法,所述方法包括:
将所述可编程网络元件与外部处理单元连接,以提供所述外部处理单元和网络设备之间的管理接口控制;
建立多个内部总线,其中每个内部总线耦合至所述可编程网络元件和至少一个网络元件;
建立多个外部总线,其中每个外部总线耦合至所述可编程网络元件和至少一个外部物理接口元件,其中,所述至少一个外部物理接口元件与交换芯片通过外部总线进行连接;
支持用于与多个外部物理接口元件通信的多个协议;以及
使用多个可编程寄存器确定所述多个外部物理接口元件的状态,其中所述可编程网络元件使用所述多个可编程寄存器之中的至少一个可编程寄存器选择所述多个内部总线和多个外部总线中一个合适的总线来发送交易,以获得来自所述多个外部物理接口元件之一的状态信息。
优选地,所述方法进一步包括:执行自动扫描操作以链路扫描所述多个外部物理接口元件中每个外部物理接口元件的状态,其中所述可编程网络元件包括有用于指出将被扫描的链路状态的端口位图。
优选地,所述方法进一步包括:使用所述用于指出将被扫描的链路状态的端口位图对至少一个可编程寄存器编程,其中所述至少一个可编程寄存器设置为指出所述多个内部总线和外部总线中哪一个总线将被扫描。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是实现本发明一个实施例的网络设备的示意图;
图2是设置有网络设备的板的一个实施例的示意图;
图3a是本发明CMICTM模块的一个实施例的示意图;
图3b是本发明CMICTM模块的一个实施例的示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细描述。
图1是实现本发明一个实施例的网络设备例如交换芯片的示意图。设备100执行管线技术以处理输入的数据包,并包括输入管线/模块102、MMU 104和输出管线/模块106。输入模块102对输入的数据包执行交换功能。MMU 104存储数据包并对每个数据包执行资源校验。输出模块106执行数据包修改,并传输数据包至合适的目的端口。输入模块102、MMU 104和输出模块106均具有多个用于处理该模块产生的指令的周期。
设备100还可包括一个或多个内部结构(fabric)/HiGIG端口108a-108x、一个或多个外部以太网端口109x,并包括有CPU端口110。内部结构端口108a-108x用于互相连接系统中的各种设备,并从而组成内部结构以用于在外部源端口和一个或多个外部目的端口之间传输数据包。因此,内部结构端口108a-108x在包括有多个相互连接的设备的系统外部是不可见的。在本发明的一个实施例中,端口108a-108x中的每个端口是可被设置为在10Gbps高速模式、12Gbps高速模式或10GE模式下运行的X-PORT。一个或多个外部以太网端口109x中的每个端口是10/100/1000Mbps以太网G-PORT。设备100的一个实施例中,每个G-PORT模块支持多达12个10/100/1000Mbps以太网端口。设备100的一个实施例也支持一个高速端口108;而本发明另一个实施例中支持多达4个高度端口108,该高速端口108运行在10Gbps、12Gbps或10GE模式。
CPU端口110用于发送信息至外部交换/路由控制实体或CPU,以及从外部交换/路由控制实体或CPU接收信息。根据本发明的一个实施例,CPU端口110可看作以太网端口109x之一。设备100通过CPU处理模块111例如CMICTM模块与外部/片外CPU连接,而该CMICTM模块与将设备100连接至外部CPU的PCI总线连接。在本发明中,CMICTM模块111是软件可编程模块,其中软件可对各个CMICTM寄存器编程以使得CMICTM模块111对多个共享共用结构的交换芯片100中的每个交换芯片正确地执行CPU管理。
网络信息流通过外部以太网端口109x进入和离开设备100。具体来说,设备100中的信息流从外部以太网源端口路由至一个或多个唯一的目的以太网端口109x。在本发明的一个实施例中,设备100支持物理以太网端口和逻辑(主干)端口。该物理以太网端口是设备100的物理端口,通过全局端口标识符全局地识别。在一个实施例中,全局端口标识符包括模块标识符和本地端口数,唯一地标识设备100和特定的物理端口。主干端口是一组物理外部以太网端口,用作一个链接层端口。每个主干端口分配有一个全局主干组标识符(TGID)。设备100上的目的端口109x可以是物理外部以太网端口或主干端口。如果某目的端口是主干端口,设备100通过使用杂乱信号(hash)动态地选择主干中的物理以太网端口以选择成员端口。该动态选择使得设备100能够实现在主干的端口之间动态地分担负载。
本领域技术人员熟知的是,设置有芯片的板,如图2所示,包括至少一个外部层1物理接口(PHY),其中一个PHY 202可用于GIG端口,另一个PHY 212可用于XGIG端口。如果信息以铜线模式(copper mode)传输,则由端口决定信息通过PHY 202和212传输,并随后,信息从PHY 202/212发送至恰当的MAC 206/208。随后,信息由输入模块102、MMU 104和输出模块106进行处理,并且处理后的信息通过恰当的MAC 206/208传输至恰当的PHY 202/212。
如果信息通过光纤传输至芯片,该芯片可包括有用于GIG端口的SERDES模块204和用于XGIG端口的XAUI模块210,如图2所示。SERDES模块204和XAUI模块210均将从PHY 202/212进入芯片的信息在传输至MAC 206/208之前转换为字节。本领域技术人员能够理解的是,MAC 206等同于G-PORT 109,并且MAC 208等同于X-PORT 108。SERDES模块204也在其将信息传输至MAC 206之前对该信息执行模拟和数字校验。
在本发明的一个实施例中,数据包数据通过6个集成1G四心线SERDES核(6 integrated 1G quad SERDES core)204或XAUI 210进入芯片100,两者均提供有串行化/解串行功能。依据数据包是如何进入芯片的,该数据包可在传输至G-PORT/MAC 206之前被转换为四心线SERDES 204的标准GMII接口信令输出,或在传输至X-PORT/MAC 208之前从XAUI接口信令转换至XGMI I接口。在一个实施例中,有2个示例G-PORT模块,致使进入芯片100的数据包流高达24Gbps。每个G-PORT模块连接至3个四心线SERDES IP,每个G-PORT集成12-Gigabit以太网端口,可独立地设置为运行在3个不同地速度10/100/1000Mbps。
每个G-PORT还与GBOD连接,GBOD为在数据包进入输入管线102进行数据包交换之前为G-PORT中所有的12Gigabit以太网端口保存数据包数据的集中式G-PORT输入数据包缓存。近似地,X-PORT 208也通过以核芯时钟频率运行的128比特宽的总线与XBOD缓存连接,该XBOD缓存为在数据包进入输入管线102进行数据包交换之前用于保存数据包的集中式X-PORT输入数据包缓存。因为128字节是输入管线102用于处理数据包的间隔大小,数据在XBOD/GBOD内被打包为128字节。一旦收到128字节的数据包或数据包单元(EOP)的末尾,与输入管线102连接的XBOD/GBOD等待从输入管线102接收时分多路转换(TDM)允许,并在接收到允许后,通过256比特宽的总线传输该数据包。每6个周期分配给每个X-PORT/G-PORT一个输入管线仲裁器TDM时隙,以用于数据包传输。在一个实施例中,输入管线102执行TDM方案以在4个X-PORT和2个G-PORT之间分配其资源。因为GBOD为所有12个GE端口缓冲数据包数据,GBOD还执行6周期的TDM方案在本地决定12个GE端口之间的G-PORT至输入管线(G-PORT-to-ingress pipeline)总线分配。
CPU需要来自PHY 202和212、SERDES 204和XAUI 210每一者的信息。因此,CMICTM模块211支持用于与外部PHY 202通信的外部MDIO总线214,用于与SERDES模块204通信的内部MDIO数据总线216,用于与XAUI模块210通信的内部MDIO数据总线218,以及用于与外部XGIG PHY 212通信的外部MDIO数据总线220。为了与XAUI模块210和外部XGIG PHY 212通信,CMICTM模块211也支持用于GIG端口和/或XAUI的MDIO协议条款22,并支持用于XAUI的MDIO协议条款45。本领域技术人员能够理解的是,每个芯片在每个总线214和220上可具有不同数量的PHY,最多达32个。
为了确定PHY是否可运作,CPU命令CMICTM模块211执行自动扫描操作以链路扫描每个PHY 202/212的状态。在本发明中,CMICTM模块211设置为包括有需要被扫描的链路状态的端口位图。当CMICTM模块211执行硬件链路扫描时,CMICTM模块211在恰当的内部或外部总线214-220上发送MDIO交易以获得状态信息。具体而言,CMICTM模块211的软件程序使用需要扫描链路状态的端口位图对CMICTM模块内的寄存器进行配置,其中端口类型映射寄存器设置为表示端口是GIG端口或XGIG端口,以及,选择映射寄存器设置为表示内部或外部MDIO数据总线是否将被扫描。基于从端口类型映射寄存器和选择映射寄存器获得的信息,CMICTM模块311能够选择用于发送每个交易的恰当的总线。CMICTM模块211内相关的软件还对CMICTM模块211内的协议映射寄存器进行编程,以表示条款22或条款45是否将用于MIIM交易中。协议映射寄存器指出近似于端口映射寄存器的端口位图。此外,相关的软件可使用应向其传送信息的每个端口的PHY数设置CMICTM模块211内的多个地址映射寄存器。该地址映射寄存器可用于确定将用于每个端口的PHY地址。所述灵活的支持允许芯片100的用户随机地映射PHY标识符至端口数,而不是要求芯片用户执行PHY标识符和端口数之间的一对一映射。
数据包在输出侧由芯片200进行处理后,输出管线106与XBODE或GBODE交互,该XBODE为在数据包传输至XAUI 210/PHY 212之前用于保存该数据包的输出数据包缓存,该GBODE为在数据包传输至SERDES 204/PHY 202之前用于保存该数据包数据的输出数据包缓存。XBODE与X-PORT 208相关,X-PORT/MAC 208和输出管线106之间的总线协议是以信任为基础的,因此无论何时XBODE中有单元(cell)可用时,X-PORT 208中的输出管线接口向输出管线106请求更多的数据。近似于GBOD,GOBDE是用于全部12个GE端口的缓存,因此执行本地TDM来保证分配的用于从GBODE传输数据至SERDES204/PHY 202的最小带宽。G-PORT 206和输出管线106之间的总线协议也是以信任为基础的。输出管线106也执行TDM方案以决定其资源在输出数据的4个X-PORT和2个G-PORT之间的分配。因此,如果有数据包将被传输,X-PORT单元请求和返回给输出管线的数据之间的延迟大概是6个周期。
回到图1,CMICTM模块111用作进入芯片100的CPU网关,其中CMICTM模块111通过允许寄存器/存储器读/写操作、数据传输和接收以及从CPU卸载预定义的维护功能的其它特征,对芯片100提供CPU管理接口控制。CMICTM模块111可用作PIC从属或主设备,并可被设置以映射至64K边界上CPU内的任何PCI存储器地址。在本发明的一个实施例中,CMICTM模块111中的所有寄存器是32位的。作为PCI从属设备时,CMICTM模块111允许PCI读/写脉冲访问预定义的CMICTM寄存器。CMICTM模块111和CPU也以主从关系一起工作。CPU通过恰当地对CMICTM寄存器编程发送命令至CMICTM模块111;一般通过设定“起始(START)”位和等待“完成(DONE)”位来实现。
在本发明的一个实施例中,为了在具有同样结构的多个交换设备中平衡相同的CMICTM模块111硬件设计,CMICTM模块111包括有附加的可编程硬件,以此,CMICTM模块111的相关软件可配置CMICTM模块内恰当的寄存器。已编程寄存器可由CMICTM模块111使用以确定交换设备的类型。在本发明的一个实施例中,CMICTM模块111的相关软件从芯片中读取设备标识符以确定该芯片要求哪种类型的CMICTM寄存器设置。随后,该软件对恰当的CMICTM寄存器进行编程。因此,本发明不需要CMICTM模块111进行硬件改变来适应使用共享结构的一组交换芯片中的每个交换芯片。此外,因为寄存器接口对具有共享结构的芯片组中的所有芯片来说都是一样的,同样的软件结构也可由芯片组中的所有芯片共享。
具体而言,如图3a所示,CMICTM模块111支持多达4个s-总线,其中每个芯片设置为使用一个或多个所述s-总线。每个总线可具有至少一个设备。尽管可以设置在每个总线上的设备的最大数是不受限制的,但是由于延迟因素,设备的数量受到限制。本领域技术人员能够理解的是,s-总线的数量可以增加而不改变本发明的范围。
在本发明的一个实施例中,如上所述,CMICTM模块311能够从多个源处收集统计计数(statistics count),例如,从输入模块302a、输出模块306a和MAC 308-312。如图1所示,高度集成的交换芯片支持相当大数量的端口,每个芯片具有其自有的统计计数器,一般在50-100个寄存器中实现。具体而言,G-PORT和X-PORT 308-312中的每个端口包括有层1/层2统计计数器,用于记录流经该端口的数据包的信息。每个所述计数器追踪交换的各方面信息,包括接收的字节数、传输的数据包数量以及接收和丢失的数据包数量。CPU监视这些计数器,并且当总体寄存器的数量变大时,CPU变成负载了上百个寄存器读操作,并增加了等待每个寄存器读操作完成的开销。因此,CMICTM模块111支持统计计数器直接存储器访问(DMA)特性以降低CPU开销。CMICTM模块111也支持表格式DMA(table DMA)以存取任何交换表格至PCI系统存储器。
CMICTM模块111还连接至输入管线102和输出管线106,以此CMICTM模块111可将单元数据(cell data)从PCI存储器传输至任何输出端口和/或从任何输入端口接收单元数据并传输至PCI存储器。每个输入模块302和输出模块306均包括有层2/层3和/或较高层统计计数器,用于记录输入模块和输出模块内处理的数据包的信息。在本发明的一个实施例中,输入模块中有30个统计寄存器,输出模块中有15个统计寄存器,依据MAC是X-PORT还是G-PORT,最多可以有170个MAC寄存器。本领域技术人员能够理解的是,统计MAC寄存器和每个输入模块和输出模块的寄存器的数量可基于交换设备的要求增加。为了恰当地处理数据包,CPU需要周期性的从每个统计寄存器接收信息。例如,CPU使用来自统计寄存器的信息用于客户诊断和/或芯片中的校正操作。s-总线316a-222a可访问所有统计寄存器,以此,各个消息可发送至各个模块。然而,依据芯片上寄存器的数量和每个寄存器改变的频率,CPU和CMICTM模块311可消耗大量的时间读取所有寄存器以获得CPU需要的信息。因此,CMICTM模块111支持能够在没有CPU干预的情况下传输大量统计数据的统计DMA控制器。
根据本发明的一个实施例,CPU存储器的一部分设置为具有计时机制,用于统计数据直接存储器访问(DMA)。当CMICTM模块311中的可编程计时器期满时,触发一系列S-总线交易以收集指定的统计寄存器的数据。CMICTM模块311随后传输统计数据至指定的CPU存储器地址。这一处理在每次可编程计时器期满时重复。这一操作还对芯片内的端口数量敏感。
如图3a所示,交换芯片300a包括分配有模块标识符6的输入管线模块302a,分配有模块ID 9的MMU模块304a,分配有模块ID 8的输出管线模块306a,G-PORT和X-PORT 308-312,用作加密引擎的板安全模块314a,以及用于管理外部CPU的CMICTM模块311a。交换芯片300a也包括4个s-总线环316a-222a,其中CMICTM模块311a使用s-总线环316a发送信息至输入模块302a并从输入模块302a接收信息,CMICTM模块311a使用s-总线环318a发送信息至MMU模块304a、G-PORT和X-PORT 308-312以及从MMU模块304a、G-PORT和X-PORT 308-312接收信息,CMICTM模块311a使用s-总线环220a发送信息至输出模块306a以及从输出模块306a接收信息,并且CMICTM模块311a使用s-总线环222a发送信息至板安全模块314a以及从板安全模块314a接收信息。本发明中的每个s-总线接口为32-比特传送和32-比特接收的点对点总线。
图3b是本发明另一实施例的交换芯片300b的示意图,包括分配有模块标识符10的输入管线模块302b,分配有模块ID 11的MMU模块304b,分配有模块ID 12的输出管线模块306b,G-PORT和X-PORT 308b-312b,搜索引擎313a-313c,板安全模块314b和CMICTM模块311b。交换芯片300b也包括4个s-总线环316b-222b,其中CMICTM模块311b使用s-总线环316b发送信息至输出模块306b、输入模块302b和MMU 304b以及从输出模块306b、输入模块302b和MMU 304b接收信息,CMICTM模块311b使用s-总线环318b发送信息至搜索引擎313a-313c以及从搜索引擎313a-313c接收信息,CMICTM模块311b使用s-总线环230b发送信息至G-PORT和X-PORT 308b-312b以及从G-PORT和X-PORT 308b-312b接收信息,并且CMICTM模块311b使用s-总线环222b发送信息至板安全模块314b以及从板安全模块314b接收信息。在图3a和3b展示的两个实施例中,CMICTM模块311用作每个s-总线的s-总线主设备,而s-总线上的其它设备是s-总线从设备。因此,CMICTM模块311是主设备而其它s-总线模块是从设备时,每个s-总线用作传递消息。在一个实施例中,CMICTM模块311是唯一的交易发起者,并且所有由CMICTM模块311发起的消息需要得到确认,CMICTM模块311在发送下一个s-总线消息前要求等待来自s-总线从设备的确认信息。
在本发明中,s-总线从属设备的顺序不影响由CMICTM模块311a/311b所执行的协议。例如,芯片302b中的输入模块和输出模块的顺序不影响CMICTM模块311b执行的协议。在另一个实施例中,如果总线环未被使用,给CMICTM模块311的输入被限制为0,并且CMICTM模块311的输出可左移(be left tofloat)。如果总线环上具有不止1个的s-总线从设备,则该s-总线上的每个从设备应“传递”不是发送给它的信息。
CMICTM模块311a/311b包括有总线环映射寄存器,允许相关的软件使用恰当的s-总线环数为每个s-总线有效模块ID设置总线环寄存器。例如,在芯片302a中,包括有s-总线316a的总线环0具有输入模块302a的模块ID 6,包括有s-总线318a的总线环1具有MMU 304a的模块ID 9、G-PORT和X-PORT308a-312a的模块ID 1、2和3,包括有s-总线220a的数据总线环2具有输出模块306a的模块ID 8,以及,包括有s-总线222a的总线环3具有板安全模块314a的模块ID 4。近似地,在芯片302b中,包括有s-总线316b的总线环0具有输入模块302b的模块ID 10、输出模块306b的模块ID 12以及MMU 304b的模块ID 11,包括有s-总线318b的总线环1具有搜索引擎313a-313c的模块ID 13-15,包括有s-总线220b的总线环2具有G-PORT和X-PORT 308b-312b的模块ID 16-18,以及,包括有s-总线222b的总线环3具有板安全模块314b的模块ID 20。总线环映射寄存器使得CMICTM模块311在恰当的s-总线环上通过将s-总线模块ID转译为环数来发送软件发起的s-总线消息。
CMICTM模块311a/311b还包括有s-总线超时寄存器,允许软件指定任意一个s-总线交易的最大超时值。这为所有总线环上的s-总线交易提供共用的超时机制。
在本发明的一个实施例中,有28个端口,其中某些是G-PORT,其它是X-PORT。因此,CMICTM模块311需要知道芯片上总共有多少端口,这些端口中有多少个是G-PORT或X-PORT,以及,每个端口内有多少个寄存器,输入模块302a和输出模块306a有多少个寄存器。根据本发明,为了确定输入模块和输出模块中寄存器的数量,CMICTM模块311包括有可配置的统计寄存器,用于存储每个输入和输出模块的s-总线模块ID、每个输入和输出模块内的统计计数器的数量以及统计计数器所在的每个输入和输口模块中的管线级数。为了确定MAC中寄存器的数量,CMICTM模块311在该可配置的统计寄存器中存储端口总数,并指出端口是G-PORT还是X-PORT、每个端口的s-总线模块ID、每个G-PORT中端口总数以及一个G-PORT中每个端口的端口数、每个G-PORT和X-PORT中统计计数器的数量、该统计计数器所在的每个X-PORT和G-PORT中的管线级数以及CPU端口的端口数。由于CMICTM模块311可基于该可配置的统计寄存器动态地进行设置,因此如果例如端口数被改变,CMICTM模块的设计不需要进行改变。
因此,根据本发明,如果网络设备被初始化,在初始化进程中,CMICTM模块也被初始化。在CMICTM模块初始化过程中,相关的软件基于端口数和其它与被初始化设备相关的变量恰当地设置每个寄存器。例如,每个s-总线环映射寄存器被初始以指出哪些从属设备在每个s-总线环上。因此,如果芯片配置例如分配给s-总线环的设备改变时,只需修改CMICTM初始化程序。
本发明上述设置是结合首选实施例描述的,嵌入在半导体底层例如硅上,使用恰当的半导体生产技术,并基于电路布局,基于上述实施例,对本领域技术人员是显而易见的。半导体设计和生产领域的技术人员基于上述结构描述,能够将本发明的各种模块、接口和表格、缓存等实现在一个半导体基底上。而且,将上述部件实现为分布式电子部件也能实现单个半导体基底的优点,属于本发明的保护范围。
上述内容是对本发明的特定实施例的描述。然而,显而易见的是,还可以对上述实施例进行其它的变更和修改,具有部分或所有的本发明的优点。因此,权利要求书的目的是覆盖所有落入本发明精神实质和范围的改变和修改。

Claims (9)

1.一种用于处理信息的网络设备,其特征在于,所述网络设备包括:
可编程网络元件,与外部处理单元连接以提供所述外部处理单元和网络设备之间的管理接口控制,其中所述可编程网络元件可用于具有共享结构的多个网络设备;
多个内部总线,其中的每个总线耦合至所述可编程网络元件和至少一个内部网络元件;以及
多个外部总线,其中的每个总线耦合至所述可编程网络元件和至少一个外部物理接口元件,其中,所述至少一个外部物理接口元件与交换芯片通过外部总线进行连接;
其中所述可编程网络元件设置为支持用于与多个外部物理接口元件通信的多个协议,并包括有用于确定所述多个外部物理接口元件的状态的多个可编程寄存器;
所述可编程网络元件使用至少一个可编程寄存器选择所述多个内部总线和多个外部总线中一个合适的总线来发送交易,以获得来自所述多个外部物理接口元件之一的状态信息。
2.如权利要求1所述的网络设备,其特征在于,所述可编程网络元件设置为支持至少两个外部总线,其中的每个外部总线用于与外部物理接口元件连接,且其中的每个外部总线均支持所述多个外部物理接口元件。
3.如权利要求1所述的网络设备,其特征在于,所述可编程网络元件设置为支持至少两个内部总线,每个内部总线用于与内部网络元件连接,所述内部网络元件在通过所述网络设备传输信息前,将从所述至少一个外部物理接口元件进入所述网络设备的所述信息转换为字节。
4.如权利要求1所述的网络设备,其特征在于,所述可编程网络元件设置为执行自动扫描操作以链路扫描所述多个外部物理接口元件中每个外部物理接口元件的状态,其中所述可编程网络元件包括有端口位图,用于指出将要被扫描的链路状态。
5.一种用于具有共享结构的多个网络设备的可编程网络元件,其特征在于,所述可编程网络元件包括:
具有外部处理单元的接口,用于提供所述外部处理单元和网络设备之间的管理接口控制;
具有多个内部总线的接口,其中每个内部总线耦合至所述可编程网络元件和至少一个网络元件;
具有多个外部总线的接口,其中每个外部总线耦合至所述可编程网络元件和至少一个外部物理接口元件,其中,所述至少一个外部物理接口元件与交换芯片通过外部总线进行连接;
支持用于与多个外部物理接口元件通信的多个协议的装置;以及
用于确定所述多个外部物理接口元件的状态的多个可编程寄存器,
使用至少一个可编程寄存器选择所述多个内部总线和多个外部总线中一个合适的总线来发送交易,以获得来自所述多个外部物理接口元件之一的状态信息的装置。
6.如权利要求5所述的可编程网络元件,其特征在于,所述可编程网络元件进一步包括支持至少两个外部总线的支持装置,每个所述外部总线用于与外部物理接口元件连接,其中每个所述外部总线支持所述多个外部物理接口元件。
7.一种实现用于具有共享结构的多个网络设备的可编程网络元件的方法,其特征在于,所述方法包括:
将所述可编程网络元件与外部处理单元连接,以提供所述外部处理单元和网络设备之间的管理接口控制;
建立多个内部总线,其中每个内部总线耦合至所述可编程网络元件和至少一个网络元件;
建立多个外部总线,其中每个外部总线耦合至所述可编程网络元件和至少一个外部物理接口元件,其中,所述至少一个外部物理接口元件与交换芯片通过外部总线进行连接;
支持用于与多个外部物理接口元件通信的多个协议;以及
使用多个可编程寄存器确定所述多个外部物理接口元件的状态,其中所述可编程网络元件使用所述多个可编程寄存器之中的至少一个可编程寄存器选择所述多个内部总线和多个外部总线中一个合适的总线来发送交易,以获得来自所述多个外部物理接口元件之一的状态信息。
8.如权利要求7所述的方法,其特征在于,所述方法进一步包括:执行自动扫描操作以链路扫描所述多个外部物理接口元件中每个外部物理接口元件的状态,其中所述可编程网络元件包括有用于指出将被扫描的链路状态的端口位图。
9.如权利要求8所述的方法,其特征在于,所述方法进一步包括:使用所述用于指出将被扫描的链路状态的端口位图对至少一个可编程寄存器编程,其中所述至少一个可编程寄存器设置为指出所述多个内部总线和外部总线中哪一个总线将被扫描。
CN2006100636243A 2006-01-04 2006-12-25 网络设备、用于网络设备的可编程网络元件及其实现方法 Active CN1996857B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/324,222 US7606945B2 (en) 2006-01-04 2006-01-04 Method and apparatus for dynamically configuring hardware resources by a generic CPU management interface
US11/324,222 2006-01-04

Publications (2)

Publication Number Publication Date
CN1996857A CN1996857A (zh) 2007-07-11
CN1996857B true CN1996857B (zh) 2012-07-25

Family

ID=37787836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100636243A Active CN1996857B (zh) 2006-01-04 2006-12-25 网络设备、用于网络设备的可编程网络元件及其实现方法

Country Status (4)

Country Link
US (2) US7606945B2 (zh)
EP (1) EP1806653B1 (zh)
CN (1) CN1996857B (zh)
TW (1) TWI353755B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606945B2 (en) * 2006-01-04 2009-10-20 Broadcom Corporation Method and apparatus for dynamically configuring hardware resources by a generic CPU management interface
US7720068B2 (en) * 2006-08-23 2010-05-18 Solarflare Communications, Inc. Method and system for a multi-rate gigabit media independent interface
US20090109967A1 (en) * 2007-10-31 2009-04-30 Anirban Banerjee Method and system for remotely configuring an ethernet switch using ethernet packets
US10185957B2 (en) 2012-06-12 2019-01-22 Square, Inc. Software pin entry
US9773240B1 (en) 2013-09-13 2017-09-26 Square, Inc. Fake sensor input for passcode entry security
US9613356B2 (en) 2013-09-30 2017-04-04 Square, Inc. Secure passcode entry user interface
US9928501B1 (en) 2013-10-09 2018-03-27 Square, Inc. Secure passcode entry docking station
DE102014200101A1 (de) * 2014-01-08 2015-07-09 Bayerische Motoren Werke Aktiengesellschaft Switch-Anschlussvorrichtung für ein Kraftfahrzeug-Kommunikationsnetzwerk
US9853644B2 (en) 2016-01-08 2017-12-26 Futurewei Technologies, Inc. Multiple-layer configuration storage for runtime reconfigurable systems
US9503096B1 (en) * 2016-01-08 2016-11-22 Futurewei Technologies, Inc. Multiple-layer configuration storage for runtime reconfigurable systems
CN106302464B (zh) * 2016-08-17 2019-07-26 浪潮集团有限公司 一种基于硬件的自适应网络架构及自适应网络方法
CN110120877B (zh) * 2018-02-05 2020-11-20 大唐移动通信设备有限公司 一种交换芯片的配置电路及交换芯片的参数的配置方法
JP7104308B2 (ja) * 2018-04-25 2022-07-21 富士通株式会社 プロセッサ及び情報処理装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5048012A (en) 1987-04-03 1991-09-10 Advanced Micro Devices, Inc. Data link controller with flexible multiplexer
FR2633414B1 (fr) 1988-06-27 1993-07-09 Bull Sa Systeme informatique a interconnexion centrale
US5625780A (en) * 1991-10-30 1997-04-29 I-Cube, Inc. Programmable backplane for buffering and routing bi-directional signals between terminals of printed circuit boards
RU2085937C1 (ru) * 1994-06-06 1997-07-27 Березкина Надежда Георгиевна Способ неразрушающего контроля материалов и изделий, устройство для нанесения пенетранта и индикаторный материал
US6275491B1 (en) * 1997-06-03 2001-08-14 Texas Instruments Incorporated Programmable architecture fast packet switch
US6119159A (en) * 1997-09-09 2000-09-12 Ncr Corporation Distributed service subsystem protocol for distributed network management
JP3704438B2 (ja) * 1998-12-09 2005-10-12 株式会社日立製作所 可変長パケット通信装置
EP1161817B1 (en) * 1999-03-17 2006-10-25 Broadcom Corporation Network switch
US7180906B1 (en) * 1999-12-22 2007-02-20 Advanced Micro Devices, Inc. Method and apparatus for autopolling physical layer devices in a network
US6748457B2 (en) 2000-02-03 2004-06-08 Realtime Data, Llc Data storewidth accelerator
US6807179B1 (en) * 2000-04-18 2004-10-19 Advanced Micro Devices, Inc. Trunking arrangement in a network switch
US6850542B2 (en) * 2000-11-14 2005-02-01 Broadcom Corporation Linked network switch configuration
US20020174197A1 (en) * 2001-03-27 2002-11-21 International Business Machines Corporation Method and system for accurately determining a device location in an arbitrated loop
US20020156888A1 (en) * 2001-04-23 2002-10-24 Lee Man-Ho L. Method and apparatus for detecting and reporting configuration errors in a multi-component switching fabric
CA2369432A1 (en) * 2002-01-24 2003-07-24 Alcatel Canada Inc. System and method for reassembling packets in a network element
EP1661311B1 (en) * 2003-08-15 2012-07-18 GVBB Holdings S.A.R.L Changeable functionality in a broadcast router
US7181556B2 (en) * 2003-12-23 2007-02-20 Arm Limited Transaction request servicing mechanism
US8140694B2 (en) * 2004-03-15 2012-03-20 Hewlett-Packard Development Company, L.P. Method and apparatus for effecting secure communications
US7606945B2 (en) 2006-01-04 2009-10-20 Broadcom Corporation Method and apparatus for dynamically configuring hardware resources by a generic CPU management interface

Also Published As

Publication number Publication date
EP1806653A1 (en) 2007-07-11
US7606945B2 (en) 2009-10-20
EP1806653B1 (en) 2013-03-13
US20070174434A1 (en) 2007-07-26
US8244922B2 (en) 2012-08-14
CN1996857A (zh) 2007-07-11
TWI353755B (en) 2011-12-01
US20100030879A1 (en) 2010-02-04
TW200805951A (en) 2008-01-16

Similar Documents

Publication Publication Date Title
CN1996857B (zh) 网络设备、用于网络设备的可编程网络元件及其实现方法
US6667920B2 (en) Scratchpad memory
CN108809854B (zh) 一种用于大流量网络处理的可重构芯片架构
US7039914B2 (en) Message processing in network forwarding engine by tracking order of assigned thread in order group
EP2486715B1 (en) Smart memory
US20030231627A1 (en) Arbitration logic for assigning input packet to available thread of a multi-threaded multi-engine network processor
CN104050143A (zh) 向混合可编程多核器件映射网络应用
US7483377B2 (en) Method and apparatus to prioritize network traffic
US11730325B2 (en) Dual mode interconnect
US20070116023A1 (en) Method and apparatus for dynamically configuring a generic processing module
CN100401279C (zh) 支持包处理的可配置的多端口多协议网络接口
CN1996856B (zh) 用于处理信息的网络设备、可编程网络元件及其方法
CN107291638A (zh) 并行处理装置和控制通信的方法
US6826180B1 (en) Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor
CN111357016B (zh) 用于神经网络处理器的片上通信系统
US10990552B1 (en) Streaming interconnect architecture for data processing engine array
US6845099B2 (en) Communication packet processor with a look-up engine and content-addressable memory for modifying selectors to retrieve context information for a core processor
US6798778B1 (en) Communication packet processor with a look-up engine and content-addressable memory for updating context information for a core processor
US6791983B1 (en) Content-addressable memory for use with a communication packet processor to retrieve context information
US6891829B1 (en) Communication packet processor with a look-up engine and content-addressable memory for retrieving context information for a core processor
US7593421B2 (en) Communication control device having multiprocessor
US20230280907A1 (en) Computer System Having Multiple Computer Devices Each with Routing Logic and Memory Controller and Multiple Computer Devices Each with Processing Circuitry
EP1279102B1 (en) Gigabit switch on chip architecture

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180516

Address after: Singapore Singapore

Patentee after: Avago Technologies Fiber IP Singapore Pte. Ltd.

Address before: Park Road, Irvine, California, USA, 16215, 92618-7013

Patentee before: Zyray Wireless Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190828

Address after: Singapore Singapore

Patentee after: Annwa high tech Limited by Share Ltd

Address before: Singapore Singapore

Patentee before: Avago Technologies Fiber IP Singapore Pte. Ltd.