CN1996856B - 用于处理信息的网络设备、可编程网络元件及其方法 - Google Patents
用于处理信息的网络设备、可编程网络元件及其方法 Download PDFInfo
- Publication number
- CN1996856B CN1996856B CN2006100636239A CN200610063623A CN1996856B CN 1996856 B CN1996856 B CN 1996856B CN 2006100636239 A CN2006100636239 A CN 2006100636239A CN 200610063623 A CN200610063623 A CN 200610063623A CN 1996856 B CN1996856 B CN 1996856B
- Authority
- CN
- China
- Prior art keywords
- module
- port
- network
- network element
- programmable
- 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 - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/111—Switch interfaces, e.g. port details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (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模块,可用于各种共享同样结构的交换芯片。
发明内容
根据本发明得一个方面,提供一种处理信息的网络设备,所述网络设备用于网络交换系统,包括:
可编程网络元件,与外部处理单元连接以提供所述外部处理单元和所述网络设备之间的管理接口控制,其中所述可编程网络元件可用于具有共享同样结构的多个网络设备;以及
多个内部总线,其中每个内部总线耦合至所述可编程网络元件和至少一个网络元件,所述网络元件包括输入模块、输出模块和/或媒体访问控制模块;
其中,所述可编程网络元件包括有用于从多个网络元件收集统计数据的装置,每个所述网络元件包括多个统计计数器,用于追踪所述网络设备各方面的信息,形成所述统计数据;所述信息包括接收的字节数、传输的数据包数量以及接收和丢失的数据包数量;以及
在没有所述外部处理单元的干预的情况下在所述网络元件中至少一个和所述外部处理单元之间传送统计数据的装置。
优选地,所述可编程网络元件设置为支持多达4个内部总线。
优选地,所述网络设备设置为支持网络元件,所述网络元件包括输入模块、输出模块和媒体访问控制模块至少之一。
优选地,所述网络设备设置为支持网络元件,其中每个所述网络元件的统计计数器由多个寄存器实现。
优选地,所述可编程网络元件设置为支持统计计数器直接内存访问控制器,能够在没有所述外部处理单元的干预的情况下传送统计数据块至所述外部处理单元,从而降低所述外部处理单元的开销。
优选地,外部处理单元设置为提供一部分存储器,用于统计数据直接存储器访问,具有计时器机制。
优选地,所述可编程网络元件包括可编程计时器,其中当所述可编程计时器期满时,所述可编程网络元件设置为触发一系列交易以从网络元件中特定的寄存器收集统计数据,并传送所述统计数据至外部网络元件关联的存储器的特定部分。
优选地,所述可编程网络元件设置为从与所述外部处理单元关联的存储器传送数据至至少一个所述网络元件,并从至少一个所述网络元件接收数据并传送至所述外部处理单元关联的存储器。
优选地,所述可编程网络元件设置为确定每个所述网络元件中的寄存器数量,并包括用于存储每个所述网络元件的模块标识符、每个所述网络元件中的统计计数器数量以及所述统计计数器所在的每个所述网络元件中的级数的装置。
优选地,所述可编程网络元件设置为确定至少一个媒介访问控制元件中的寄存器数量,并包括用于存储端口总数的装置、用于指出端口类型、每个端口的模块标识符、指示为一个类型的端口的子端口数量、每个端口中的统计计数器数量和统计计数器所在的每个端口的级数的装置。
根据本发明的一个方面,提供一种用于具有共享同样结构的多个用于网络交换系统的网络设备的可编程网络元件,所述可编程网络元件包括:
具有连接到外部处理单元的接口,用以在所述外部处理单元和网络设备之间提供管理接口控制;
具有多个内部总线的接口,其中每个内部总线耦合至所述可编程网络元件和至少一个网络元件;所述网络元件包括输入模块、输出模块和/或媒体访问控制模块;
用于从多个网络元件收集统计数据的装置,每个所述网络元件包括多个统计计数器用于追踪所述网络设备的各个方面的信息,形成所述统计数据;所述信息包括接收的字节数、传输的数据包数量以及接收和丢失的数据包数量;以及
在没有所述外部处理单元的干预的情况下在至少一个所述网络元件和所述外部处理单元之间传送统计数据的装置。
优选地,所述可编程网络元件设置为从网络元件收集统计数据,其中每个所述网络元件包括由多个寄存器实现的统计计数器。
优选地,所述可编程网络元件设置为支持统计计数器直接存储器访问控制,能够在没有所述外部处理单元的干预的情况下传送统计数据块至所述外部处理单元,从而降低所述外部处理单元的开销。
优选地,所述可编程网络元件包括可编程计时器,其中当所述可编程计时器期满时,所述可编程网络元件设置为触发一系列的交易以从所述网络元件的特定寄存器收集统计数据,并将所述统计数据传送至外部网络元件的存储器的特定部分。
优选地,所述可编程网络元件设置为从与所述外部处理单元关联的存储器传送数据至至少一个所述网络元件,并从至少一个所述网络元件接收数据并传送至所述外部处理单元关联的存储器。
优选地,所述可编程网络元件设置为确定每个所述网络元件中的寄存器数量,并包括用于存储每个所述网络元件的模块标识符、每个所述网络元件中的统计计数器数量以及所述统计计数器所在的每个所述网络元件中的级数的装置。
优选地,所述可编程网络元件设置为确定至少一个媒介访问控制元件中的寄存器数量,并包括用于存储端口总数的装置、用于指出端口类型、每个端口的模块标识符、指示为一个类型的端口的子端口数量、每个端口中的统计计数器数量和统计计数器所在的每个端口的级数的装置。
根据本发明的一个方面,提供一种在用于具有共享同样结构的多个用于网络交换系统的网络设备中的可编程网络元件中提供可编程存储器访问特征的方法,所述方法包括下述步骤:
将所述可编程网络元件与外部处理单元连接以提供所述外部处理单元和网络设备之间的管理接口控制;以及
将所述可编程网络元件与多个内部总线连接,其中每个所述内部总线耦合至所述可编程网络元件和至少一个网络元件,所述网络元件包括输入模块、输出模块和/或媒体访问控制模块;
所述可编程网络元件从多个网络元件收集统计数据,其中每个所述网络元件包括多个统计计数器用于追踪所述网络设备的各个方面的信息,形成所述统计数据;所述信息包括接收的字节数、传输的数据包数量以及接收和丢失的数据包数量;以及
所述可编程网络元件在没有所述外部处理单元的干预的情况下在至少一个所述网络元件和所述外部处理单元之间传送信息。优选地,每个所述网络元件包括统计计数器,所述统计计数器由多个寄存器实现。
优选地,所述传送统计数据的步骤进一步包括:所述可编程网络元件在没有所述外部处理单元的干预的情况下将统计数据块传送至所述外部处理单元,从而降低所述外部处理单元的开销。
优选地,所述方法进一步包括:当计时器期满时,触发一系列交易以收集来自网络元件的特定寄存器的统计数据,并将所述统计数据传送至外部网络元件关联的存储器的特定部分。
优选地,所述方法进一步包括:
从与所述外部处理单元关联的存储器传送数据至至少一个所述网络元件,并从至少一个所述网络元件接收数据;以及
传送所述数据至所述外部处理单元关联的存储器。
优选地,所述方法进一步包括:
确定每个所述网络元件中的寄存器数量;
存储每个所述网络元件的模块标识符、每个所述网络元件中的统计计数器数量以及所述统计计数器所在的每个所述网络元件中的级数。
优选地,所述方法进一步包括:
确定至少一个媒介访问控制元件中的寄存器数量;
存储端口总数,指出端口类型、每个端口的模块标识符、指示为一个类型的端口的子端口数量、每个端口中的统计计数器数量和统计计数器所在的每个端口的级数。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图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高速模式或10 GE模式下运行的X-PORT。一个或多个外部以太网端口109x中的每个端口是10/100/1000 Mbps以太网G-PORT。设备100的一个实施例中,每个G-PORT模块支持多达12个10/100/1000 Mbps以太网端口。设备100的一个实施例也支持一个高速端口108;而本发明另一个实施例中支持多达4个高度端口108,该高速端口108运行在10 Gbps、12 Gbps或10 GE模式。
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接口信令转换至XGMII接口。在一个实施例中,有2个示例G-PORT模块,致使进入芯片100的数据包流高达24 Gbps。每个G-PORT模块连接至3个四心线SERDESIP,每个G-PORT集成12-Gigabit以太网端口,可独立地设置为运行在3个不同地速度10/100/1000 Mbps。
每个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的模块ID9、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所述的网络设备,其特征在于,所述可编程网络元件设置为支持多达4个内部总线。
3.如权利要求1所述的网络设备,其特征在于,所述网络设备设置为支持网络元件。
4.如权利要求1所述的网络设备,其特征在于,所述网络设备设置为支持网络元件,其中每个所述网络元件的统计计数器由多个寄存器实现。
5.如权利要求1所述的网络设备,其特征在于,所述可编程网络元件为支持统计计数器直接内存访问控制器。
6.一种用于具有共享同样结构的多个用于网络交换系统的网络设备的可编程网络元件,其特征在于,所述可编程网络元件包括:
具有连接到外部处理单元的接口,用以在所述外部处理单元和网络设备之间提供管理接口控制;
具有多个内部总线的接口,其中每个内部总线耦合至所述可编程网络元件和至少一个网络元件;所述网络元件包括输入模块、输出模块和/或媒体访问控制模块;
用于从多个所述网络元件收集统计数据的装置,每个所述网络元件包括多个统计计数器用于追踪所述网络设备的各个方面的信息,形成所述统计数据;所述信息包括接收的字节数、传输的数据包数量以及接收和丢失的数据包数量;以及
在没有所述外部处理单元的干预的情况下,通过将可编程网络元件设置为支持统计计数器直接内存访问控制,实现在至少一个所述网络元件和所述外部处理单元之间传送统计数据的装置。
7.如权利要求6所述的可编程网络元件,其特征在于,所述可编程网络元件设置为从网络元件收集统计数据,其中每个所述网络元件包括由多个寄存器实现的统计计数器。
8.一种在用于具有共享同样结构的多个用于网络交换系统的网络设备中的可编程网络元件中提供可编程存储器访问特征的方法,其特征在于,所述方法包括下述步骤:
将所述可编程网络元件与外部处理单元连接以提供所述外部处理单元和网络设备之间的管理接口控制;以及
将所述可编程网络元件与多个内部总线连接,其中每个所述内部总线耦合至所述可编程网络元件和至少一个网络元件,所述网络元件包括输入模块、输出模块和/或媒体访问控制模块;
所述可编程网络元件从多个所述网络元件收集统计数据,其中每个所述网络元件包括多个统计计数器用于追踪所述网络设备的各个方面的信息,形成所述统计数据;所述信息包括接收的字节数、传输的数据包数量以及接收和丢失的数据包数量;以及
所述可编程网络元件在没有所述外部处理单元的干预的情况下,通过将可编程网络元件设置为支持统计计数器直接内存访问控制,实现在至少一个所述网络元件和所述外部处理单元之间传送统计数据。
9.如权利要求8所述的方法,其特征在于,每个所述网络元件包括统计计数器,所述统计计数器由多个寄存器实现。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/324,223 US20070153781A1 (en) | 2006-01-04 | 2006-01-04 | Method and apparatus for dynamically configuring registers by a generic CPU management interface |
US11/324,223 | 2006-01-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1996856A CN1996856A (zh) | 2007-07-11 |
CN1996856B true CN1996856B (zh) | 2010-08-11 |
Family
ID=37964138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100636239A Expired - Fee Related CN1996856B (zh) | 2006-01-04 | 2006-12-25 | 用于处理信息的网络设备、可编程网络元件及其方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070153781A1 (zh) |
EP (1) | EP1806871A3 (zh) |
CN (1) | CN1996856B (zh) |
TW (1) | TW200737000A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7720068B2 (en) * | 2006-08-23 | 2010-05-18 | Solarflare Communications, Inc. | Method and system for a multi-rate gigabit media independent interface |
CN102904787A (zh) * | 2011-07-27 | 2013-01-30 | 中兴通讯股份有限公司 | 一种本地总线桥接和数据传输的方法和装置 |
CN104394078A (zh) * | 2014-11-05 | 2015-03-04 | 盛科网络(苏州)有限公司 | 一种查询芯片fdb表项的方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275491B1 (en) * | 1997-06-03 | 2001-08-14 | Texas Instruments Incorporated | Programmable architecture fast packet switch |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909564A (en) * | 1997-03-27 | 1999-06-01 | Pmc-Sierra Ltd. | Multi-port ethernet frame switch |
US6907036B1 (en) * | 1999-06-28 | 2005-06-14 | Broadcom Corporation | Network switch enhancements directed to processing of internal operations in the network switch |
AU5737300A (en) * | 1999-06-30 | 2001-01-31 | Broadcom Corporation | Network switch enhancements |
US6807179B1 (en) * | 2000-04-18 | 2004-10-19 | Advanced Micro Devices, Inc. | Trunking arrangement in a network switch |
US7321929B2 (en) * | 2003-08-01 | 2008-01-22 | Network Appliance, Inc. | Programmable remote device management system for locally or remotely controlling and/or configuring a communication network switch |
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 |
-
2006
- 2006-01-04 US US11/324,223 patent/US20070153781A1/en not_active Abandoned
- 2006-10-02 EP EP06020738A patent/EP1806871A3/en not_active Withdrawn
- 2006-11-29 TW TW095144133A patent/TW200737000A/zh unknown
- 2006-12-25 CN CN2006100636239A patent/CN1996856B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275491B1 (en) * | 1997-06-03 | 2001-08-14 | Texas Instruments Incorporated | Programmable architecture fast packet switch |
Also Published As
Publication number | Publication date |
---|---|
EP1806871A3 (en) | 2012-04-18 |
TW200737000A (en) | 2007-10-01 |
US20070153781A1 (en) | 2007-07-05 |
CN1996856A (zh) | 2007-07-11 |
EP1806871A2 (en) | 2007-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1996857B (zh) | 网络设备、用于网络设备的可编程网络元件及其实现方法 | |
US6876561B2 (en) | Scratchpad memory | |
CN108809854B (zh) | 一种用于大流量网络处理的可重构芯片架构 | |
EP2486715B1 (en) | Smart memory | |
US20030231627A1 (en) | Arbitration logic for assigning input packet to available thread of a multi-threaded multi-engine network processor | |
CN102170430A (zh) | 一种多端口多网络协议转换器 | |
JP4072583B2 (ja) | 共有媒体アクセス制御回路を有する統合マルチポートスイッチ | |
US20070116023A1 (en) | Method and apparatus for dynamically configuring a generic processing module | |
CN1996856B (zh) | 用于处理信息的网络设备、可编程网络元件及其方法 | |
CN100401279C (zh) | 支持包处理的可配置的多端口多协议网络接口 | |
US6895015B1 (en) | Dynamic time slot allocation in internal rules checker scheduler | |
CN107291638A (zh) | 并行处理装置和控制通信的方法 | |
US6335938B1 (en) | Multiport communication switch having gigaport and expansion ports sharing the same time slot in internal rules checker | |
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 | |
CN110169017A (zh) | 控制装置以及通信装置 | |
CN100361084C (zh) | 用于利用门管理器维护实体顺序的方法和装置 | |
US9282051B2 (en) | Credit-based resource allocator circuit | |
US6798778B1 (en) | Communication packet processor with a look-up engine and content-addressable memory for updating context information for a core processor | |
US20020122419A1 (en) | Communication packet processor with a look-up engine and content-addressable memory for modifying selectors to retrieve context information for a core processor | |
US6791983B1 (en) | Content-addressable memory for use with a communication packet processor to retrieve context information | |
US11695709B2 (en) | Fair arbitration between multiple sources targeting a destination | |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100811 Termination date: 20111225 |