CN104052683A - 处理分组交换的网络处理器及方法、网络交换系统 - Google Patents

处理分组交换的网络处理器及方法、网络交换系统 Download PDF

Info

Publication number
CN104052683A
CN104052683A CN201410089742.6A CN201410089742A CN104052683A CN 104052683 A CN104052683 A CN 104052683A CN 201410089742 A CN201410089742 A CN 201410089742A CN 104052683 A CN104052683 A CN 104052683A
Authority
CN
China
Prior art keywords
memory
package
exchange system
internet exchange
queue
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.)
Pending
Application number
CN201410089742.6A
Other languages
English (en)
Inventor
吕国正
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.)
MediaTek Inc
Original Assignee
Ralink Technology Corp Taiwan
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 Ralink Technology Corp Taiwan filed Critical Ralink Technology Corp Taiwan
Publication of CN104052683A publication Critical patent/CN104052683A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • 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/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

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

Abstract

本发明提供一种网络交换系统中处理分组交换的网络处理器、网络交换系统及处理分组交换的方法。该网络处理器包含一第一存储器,用于储存多个封包中的一第一封包;一第二存储器,用于储存该多个封包中的一第二封包;以及一存储器选择单元,用于依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存该多个封包中的每一个封包;其中该第一存储器及该第二存储器的特性不相同。本发明可提高存取速度、降低功耗。

Description

处理分组交换的网络处理器及方法、网络交换系统
【技术领域】
本发明关于网络处理器、网络交换系统及处理分组交换的方法,尤其关于一种在网络交换系统中处理分组交换的网络处理器及其方法、网络交换系统。
【背景技术】
随着无线网络技术的快速发展,要求在接入点(access point,AP)或路由器中包含越来越多的网络服务,例如线速(wire-speed)、服务品质(quality ofservice,QoS)、低功率、虚拟专用网络(virtual private network,VPN)、存储器、多路广播(multicast)、内容扫描、防火墙等等。为了达到这些要求,网络交换系统(network switching system)会使用更大功率的中央处理单元(centralprocessing unit,以下简称CPU)、更大的1级(level)(L1)高速缓冲存储器(cache)和2级(L2)高速缓冲存储器、以及更快的随机存取存储器(random accessmemory,RAM)。近年来,为了卸下这些网络服务,提出了一种使用硬件加速器来加速数据处理的低成本高收益的解决方法。
然而,对于这些异构网络(heterogeneous network)服务与多个网络端口之间的分组交换来说,由于网络交换系统中所使用存储器的固有限制,尤其当网络交换系统的通信拥塞时,传统网络交换系统不能有效并完整地执行分组交换。因此,有必要对现有技术做出改善。
【发明内容】
有鉴于此,本发明提供一种在网络交换系统中处理分组交换的网络处理器及方法、网络交换系统。
本发明一实施例提供一种网络交换系统中处理分组交换的网络处理器。该网络处理器包含:一第一存储器和一第二存储器,用于储存该多个封包;以及一存储器选择单元,用于依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包;其中该第一存储器及该第二存储器的特性不相同。
本发明另一实施例还提供一种网络交换系统,包含多个网络端口及一网络处理器。每个网络端口包含多个队列。网络处理器,用于处理分组交换,包含:一第一存储器和一第二存储器,用于储存该多个封包;以及一存储器选择单元,用于依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包;其中,该第一存储器及该第二存储器的特性不相同。
本发明再一实施例还提供一种在网络交换系统中处理分组交换的方法,该网络交换系统包含一第一存储器及一第二存储器。该方法包含:依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存多个封包中的还未储存的封包;其中该第一存储器及该第二存储器的特性不相同。
上述网络处理器、网络交换系统及处理分组交换的方法可提高存取速度、降低功耗。
【附图说明】
图1为网络交换系统10的示意图;
图2为另一网络交换系统20的示意图;
图3为再一网络交换系统30的示意图;
图4为依据本发明实施例的网络交换系统40的示意图;
图5为网络交换系统40的具体结构的示意图;
图6A及图6B为依据本发明实施例的具有存储器选择的两个网络端口之间的分组交换的示意图;
图7为依据本发明实施例的选择策略的示意图;
图8为依据本发明实施例的网络交换系统80的示意图;
图9为依据本发明实施例的具有网络端口的网络交换系统90的示意图,该网络端口具有局部存储器。
【具体实施方式】
请参考图1,其为网络交换系统10的示意图。如图1所示,网络交换系统10包含局域网(local area network,LAN)端口102、广域网(wide area network,WAN)端口104、CPU端口106、转发引擎(forwarding engine)108、缓冲区管理器(buffer manager)110、队列管理器112以及静态随机存取存储器(SRAM)130。LAN端口102及WAN端口104为示范性端口,在其他范例中,网络交换系统可包含其他类型的网络端口或处理卸载网络服务的卸载引擎(offloadengine)。通过使用直接存储器存取(direct memory access,DMA),CPU端口106通过总线矩阵116及动态随机存取存储器(DRAM)140来执行主CPU114与其他网络端口之间的连接。转发引擎108用来通过获得每一封包(packet)的目的端口及目的队列来实现转发决定。缓冲区管理器110用来管理SRAM130。队列管理器112用来管理网络端口的多个队列。SRAM130用来储存要求通过网络交换系统10发送的封包。在CPU端,总线矩阵116表示主CPU114及相应外围设备之间的通信体系结构,以及DRAM140用来储存在主CPU114及外围设备之间交换的封包。
具体来说,当封包P1进入网络交换系统10并被要求从LAN端口102传输至WAN端口104时,转发引擎108首先查找封包P1的头部信息,以获得封包P1的目的队列及目的端口(即WAN端口104)。LAN端口102从SRAM130请求一个空闲的缓冲空间,封包P1便储存在该缓冲空间中。LAN端口102根据头部信息,接着通知队列管理器112封包P1应被传输至WAN端口104的目的队列。队列管理器112接着将封包P1入列(enqueue)至WAN端口104的目的队列。在从队列管理器112接收封包P1的队列状态之后,WAN端口104将封包P1出列并读出。WAN端口104接着将封包P1发送出去并释放缓冲空间。因此,完成了分组交换过程。
请继续参考图1。如果需要传输封包P2至主CPU114,应该由CPU端口106使用DMA来管理封包P2。如图1所示,在从LAN端口102传输封包P2至CPU端口106之后,接着通过使用DMA将封包P2复制到DRAM140中,其中DRAM140由主CPU114来管理。因此,可以由主CPU114来处理封包P2。
然而,封包P2被储存在SRAM130,接着经由使用DMA并通过CPU端口106被复制到DRAM140中,而这样对于网络交换系统10来说效率很低。此外,SRAM130的缓冲空间很小,当网络交换系统10的通信拥塞时更有可能会导致封包丢失。因此,可以修改网络交换系统10的结构来克服上述缺陷。举例来说,请参考图2,其为另一网络交换系统20的示意图。如图2所示,网络交换系统20的结构类似于网络交换系统10的结构;因此用相同的符号来表示类似功能的元件及信号。网络交换系统20与网络交换系统10之间的主要差别在于,网络交换系统20不包含SRAM130。在这种情况下,LAN端口102、WAN端口104及CPU端口106通过总线矩阵116直接存取DRAM140。换句话说,网络交换系统20的存储器功能完全由DRAM140来执行,其远大于SRAM130,当网络交换系统20的通信拥塞时可拥有更多的缓冲空间来储存封包,如此一来,可降低封包丢失的可能性。
然而,网络交换系统20仍然遭遇效率低的问题,即缓冲区管理器110首先存取DRAM140,接着CPU端口106再次存取DRAM140(两次储存封包至DRAM140)。此外,DRAM140由主CPU114及网络交换系统20共享,当网络交换系统20的通信负载繁重时,会导致DRAM140的带宽被网络交换系统20的分组交换占用,这样一来会降低主CPU114的性能。因此,可做出进一步的修改。请参考图3,其为网络交换系统30的示意图。如图3所示,网络交换系统30的结构类似于网络交换系统20的结构;因此用相同的符号来表示类似功能的元件及信号。网络交换系统30与网络交换系统20之间的主要差别在于,网络交换系统30不包含CPU端口106。在这种情况下,不需要将封包P2储存至DRAM140中两次,如此一来可提升效能。然而,DRAM140仍然由主CPU114及网络交换系统20共享;当网络交换系统30的通信负载繁重时,DRAM140的带宽仍然被分组交换占用。
为了解决上述问题,本发明提出一种网络交换系统,不同于以上所述各个网络交换系统。
请参考图4,其为依据本发明实施例的网络交换系统40的示意图。如图4所述,用同样的符号表示类似功能的元件及信号。网络交换系统40包含存储器选择单元420,用于根据网络交换系统40的通信是否拥塞,选择SRAM130或DRAM140来储存每一个被要求传输的封包。基于转发策略,网络交换系统40也具有更高的效率(没有两次储存的封包)。另外,存储器选择单元420用于根据网络交换系统40的拥塞状态来为每一个封包选择指定的存储器,这样解决了由于DRAM140的带宽总是被分组交换占用而降低了主CPU114的性能的问题。
具体来说,请参考图5,其为网络交换系统40的具体结构的示意图。如图5所示,所有网络端口(例如,LAN端口102、WAN端口104以及CPU端口106)都聚合为端口518以求简化。在另一些范例中,端口518可包含其他类型的网络端口,例如以太网、数字用户线(xDSL)、3G/3.5G等等。另外,端口518也可包含卸载网络服务,具有卸载引擎例如加密(crypto)引擎、内容扫描引擎、外围组件互连高速(Peripheral Component Interconnect Express,PCIe)主机、通用串行总线(USB)主机、WiFi网络接口控制器(network interface controllers,NICs)以及3G/LTE NICs等等。缓冲区管理器110更包含SRAM缓冲区管理器530及DRAM缓冲区管理器540,分别用来管理SRAM130及DRAM140的空闲缓冲空间。
当要求从一个端口(即源端口)传输一个封包至另一端口(即目的端口)时,转发引擎108萃取(retrieve)与源端口、目的端口及封包优先级相关的信息,并提供该信息给缓冲区管理器110。源端口接着从缓冲区管理器110要求缓冲空间。存储器选择单元420获得目的端口及优先级的相关信息,并依据封包目的队列的拥塞状态来命令缓冲区管理器110从SRAM130或DRAM140分配缓冲空间,其中目的队列可对应于封包的优先级信息。为了分别获得SRAM130及DRAM140中空闲缓冲空间的相关信息,存储器选择单元420还与SRAM缓冲区管理器530及DRAM缓冲区管理器540通信。在缓冲空间被分配给封包后,将封包储存在缓冲空间中。队列管理器112接着将封包入列至目的队列。最后,目的端口从队列管理器112接收封包的队列状态并将封包出列。目的端口接着将封包发送出去并释放缓冲空间给缓冲区管理器110。因此,完成了分组交换过程。
请注意,网络交换系统40可包含两种类型的存储器:SRAM及DRAM,且存储器选择单元420用于依据网络交换系统40的拥塞状态,更具体地说,依据每一封包的目的队列的拥塞状态,选择两种存储器类型其中之一来储存网络交换系统40中要交换的每一封包。在这两种存储器中,SRAM具有存取速度高及功率消耗低的优势,并易于嵌入在片上系统(system on chip,SOC)。另一方面,通常DRAM具有比SRAM大得多的缓冲空间,如此一来可通过使用DRAM来降低封包丢失的可能性。通常,在网络交换系统40中,当封包的目的队列拥塞时,封包储存在DRAM140中;因此具有更大缓冲空间的DRAM140可防止封包轻易丢失。当封包的目的队列不拥塞时,封包储存在SRAM130中;因此可以更快速度及更低功耗来执行分组交换。此外,在这种情况中,DRAM140的带宽不会被分组交换占据,并可节省其来用于主CPU114,如此一来也可提升主CPU114的性能。因此,网络交换系统40比只有SRAM的传统网络交换系统(例如网络交换系统10,更有可能会遭遇封包丢失)性能更好。网络交换系统40也比只有DRAM的其他传统网络交换系统(例如网络交换系统20或网络交换系统30,当网络交换系统的通信负载繁重及DRAM130带宽被分组交换占据时,主CPU114的性能容易被分组交换干扰)性能更好。此外,相比仅有DRAM的网络交换系统,网络交换系统40拥有更快速度及更低功耗。
可以看到,SRAM130用来当网络交换系统40的通信不拥塞时储存封包,以及DRAM140用来当网络交换系统40的通信拥塞时储存封包。因此,为了决定使用哪一个存储器来储存每一封包,应该判定每一队列的拥塞状态。举例来说,每一队列的通信负载可被认为是拥塞状态的依据。请参考图6A及图6B,其为依据本发明实施例的具有存储器选择的两个网络端口之间的分组交换的示意图。如图6A所示,在LAN端口602及WAN端口604之间执行分组交换。假设LAN端口602及WAN端口604都能达到1GB的吞吐量。在这种情况下,因为LAN端口602及WAN端口604的吞吐量相等,所以从WAN端口604传输来的封包可被发送至LAN端口602,而不会在LAN端口602发生任何拥塞,并且从LAN端口602传输来的封包也可被发送至WAN端口604,而不会在WAN端口604发生任何拥塞。因此,SRAM130用于储存封包,其具有较高存取速度、较低存取延迟及较低功率消耗的优势,以达到更高的性能。此外,来自LAN端口602的1GB高吞吐量及来自WAN端口604的1GB高吞吐量(总共2GB吞吐量)不会占据DRAM140的带宽,如此一来主CPU的性能不会受到干扰。
如图6B所示,在LAN端口652及另一WAN端口654之间执行分组交换。假设LAN端口652可达到1GB的吞吐量,以及WAN端口654可达到10MB的吞吐量。在这种情况下,因为LAN端口652的吞吐量比WAN端口654的吞吐量大得多,所以从WAN端口654传输来的封包可被发送至LAN端口652,而不在LAN端口652发送任何拥塞,但是从LAN端口652传输至WAN端口654的封包会在WAN端口654的队列中发生拥塞。因此,对于储存从WAN端口654至LAN端口652的封包,使用了SRAM,其也具有较快存取速度及较低功耗的优势,以达到更高性能。另一方面,对于储存从LAN端口652至WAN端口654中拥塞队列的封包,应使用DRAM以避免封包丢失。如图6B所示,当传输开始时,由于拥塞还没发生或拥塞还轻微,所以先前的封包仍然储存在SRAM130中。在更多封包等候在WAN端口654的队列中后,开始选择DRAM140来储存封包。
在以上范例中,存储器选择单元420判定网络交换系统40的拥塞状态并命令缓冲区管理器110相应地选择SRAM130或DRAM140。通常,当网络交换系统40拥塞时,选择DRAM140,而当网络交换系统40不拥塞时,选择SRAM130。在这种条件下,可实行不同的方法来判定拥塞状态。举例来说,可依据在SRAM130中是否仍有空闲的缓冲空间来判定拥塞状态。如果在SRAM130中仍有空闲的缓冲空间,可认为网络交换系统40不拥塞并选择SRAM130;如果在SRAM130中没有空闲的缓冲空间,可认为网络交换系统40拥塞并选择DRAM140。这种方法简单且可充分使用SRAM130。然而,对于网络交换系统40的不同用户,该方法可能会遭受低劣品质及糟糕的服务质量。举例来说,当用户传输大量封包至网络交换系统40且封包的目的队列拥塞时,用户会占据SRAM130的所有带宽。如果其他用户需要在此时传输封包,他们应该使用DRAM140并面临较慢的存取速度。
因此,考虑到品质和效率,可以执行其他方法来判定网络交换系统40的拥塞状态。在一些实施例中,SRAM130或DRAM140中的缓冲空间可被分为两种类型:完全开放的(free-for-all)缓冲空间及预留的缓冲空间。完全开放的缓冲空间由网络交换系统40所有网络端口的所有队列来存取,以及预留的缓冲空间为特定队列预留着并仅由该特定队列来存取;也就是说,只有在特定队列中入列的封包可以储存在相应的预留缓冲空间。举例来说,假设网络交换系统具有10个队列及1000个SRAM缓冲空间单元,该1000个SRAM缓冲空间单元可被分为500个完全开放的缓冲空间单元及500个预留的缓冲空间单元,并且10个队列中的每一个队列可对应于50个预留的缓冲空间单元。当然,可以应用其他分类方法,或者依据服务质量策略,每一个队列可被预留给不同的预留的缓冲空间单元,本发明不限于此。
在以上范例中,在SRAM中,允许每一队列存取500个完全开放的缓冲空间单元及50个预留的缓冲空间单元。在这种情况下,当到达一个封包时,特定队列Qi首先存取完全开放的缓冲空间单元,在使用完完全开放的缓冲空间单元之后接着存取预留的缓冲空间单元。在使用完所有的可存取SRAM缓冲空间(即550个缓冲空间单元)后,认为队列Qi发生拥塞并开始存取DRAM。
上述选择策略可总结至图7所示表格。如图7所示,SRAM和DRAM中的缓冲空间被分为完全开放的缓冲空间(FFA)及预留的缓冲空间(Resv)。当需要传输封包至队列Qi时,如果SRAM中有完全开放的缓冲空间,队列Qi存取SRAM中完全开放的缓冲空间来储存封包(策略序列1)。如果SRAM中完全开放的缓冲空间被使用完了,若SRAM中有队列Qi的预留的缓冲空间,则队列Qi存取为其预留的缓冲空间(策略序列2)。如果所有可存取的SRAM缓冲空间都被使用完了,若DRAM中有完全开放的缓冲空间,队列Qi存取DRAM中完全开放的缓冲空间来储存封包(策略序列3)。如果DRAM中完全开放的缓冲空间被使用完了,若DRAM中有队列Qi的预留的缓冲空间,则队列Qi存取为其预留的缓冲空间(策略序列4)。如果所有可存取的SRAM缓冲空间和DRAM缓冲空间都被使用完了,则暂停队列Qi(策略序列5),这意味着队列Qi装满了封包,并且必须丢弃被要求发送至队列Qi的每一个新的封包。
要注意的是,本发明提供能够依据网络交换系统拥塞状态来储存封包至指定存储器的网络处理器及其方法,本领域技术人员可做出相应的修改与变化。举例来说,选择方法不限于上述选择策略;在其他范例中,可应用其他选择策略,例如改变完全开放的缓冲空间及预留的缓冲空间的优先级,本发明不限于此。另外,网络交换系统中使用的存储器不限于SRAM及DRAM,也可使用其他类型的存储器。此外,上述范例仅指定例如LAN端口、WAN端口及CPU端口的网络端口,但网络交换系统中也可包含其他类型的网络端口及卸载引擎。这些修改详述如下。
如上所述,网络交换系统40使用合适的存储器来储存封包,以提升分组交换的性能。在这种情况下,只要存储器选择单元依据网络交换系统的拥塞状态在具有不同特性的至少两个存储器之间执行合适的选择,就可以使用任何类型的存储器来储存封包。这些存储器包含但不限于,随机存取存储器(RAM),例如SRAM、DRAM、磁性RAM(MRAM)或任意其他类型的RAM,只读存储器(ROM),例如可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)或任意其他类型的ROM,或其他类型的存储器。
网络交换系统所包含的存储器的特性在一定程度上应该不一样,确立了用于存储器选择单元的不同存储器之间的区别。举例来说,SRAM130或DRAM140特性不相同,SRAM130具有较小尺寸(即较小的缓冲空间)但DRAM140具有较大尺寸(即较大的缓冲空间);SRAM130具有较高存取速度但DRAM140具有较低存取速度;SRAM130具有较低功耗但DRAM140具有较高功耗;SRAM130可易于嵌入在片上系统但DRAM140不能;SRAM130为静态存储器但DRAM140为动态存储器。因此,存储器选择单元可基于特性的区别,在合适的时间选择合适的存储器。
请参考图8,其为依据本发明实施例的网络交换系统80的示意图。如图8所示,网络交换系统80的结构类似于网络交换系统40的结构;因此用相同的符号表示类似功能的元件及信号。网络交换系统80与网络交换系统40之间的主要差别在于,网络交换系统80还包含网络卸载子系统850。网络卸载子系统850包含网络卸载CPU852、加密引擎854、内容扫描引擎856、WiFi NICs860、3G/LTI NICs862、PCIe主机864以及USB主机866。
具体地说,在网络卸载子系统850中,网络卸载CPU852与对应的卸载引擎(例如加密引擎854及内容扫描引擎856)一起实现,以加速相关的网络服务。加密引擎854为重要数据提供加密解密相关功能。内容扫描引擎856提供病毒扫描或行扫描相关功能。不同于主CPU114,网络卸载CPU852用来管理卸载引擎的卸载功能。通过总线矩阵116实现的连接接口,使用网络卸载CPU852来卸载负载的网络服务,以建立网络卸载子系统850。此外,由专用CPU执行具有WiFi NICs及3G/LTI NICs复杂格式的分组交换,如此一来,这些网络端口可分别通过PCIe主机864接口以及USB主机866接口与网络交换系统80通信;因此在网络交换系统80中也可执行这些网络系统的复杂的分组交换。网络卸载子系统850包含这些卸载引擎,复杂网络系统接着与网络交换系统40结合以建立网络交换系统80,其能够依据拥塞状态使用SRAM130及DRAM140,并且包含SRAM130及DRAM140两者的优势。
请参考图9,其为依据本发明实施例的具有网络端口的网络交换系统90的示意图,该网络端口具有局部存储器。如图9所示,网络交换系统90中的缓冲区管理器、队列管理器及主CPU的功能类似于网络交换系统40中的功能;因此用相同的符号表示类似功能的元件及信号。网络端口包含主CPU114及其他端口920,该其他端口920通常为不同于CPU端口的网络端口。在一些范例中,网络端口还包含网络卸载引擎。网络交换系统90包含中央存储器930,该中央存储器930包含SRAM及DRAM并由缓冲区管理器110管理。网络交换系统90与上述网络交换系统之间的主要差别在于,每一网络端口(即主CPU114及其他端口920)具有局部存储器。在网络交换系统90中,因为队列管理器112不仅执行中央存储器930中所储存的封包的入列及出列,还执行储存封包的局部存储器940、950的获取及释放,所以可以实现无需复制的分组交换。因此,如果封包储存在局部存储器940或950中,则不需要复制封包至中央存储器930。举例来说,局部存储器940为主CPU的局部存储器,局部存储器950为其他端口(例如LAN,WAN及网络卸载CPU)的局部存储器。如图9中表示主要的数据流向的箭头所示,主CPU端口114及其他端口920向缓冲区管理器110请求pkt(即封包)缓冲;当主CPU端口114及其他端口920不用此pkt缓冲时,会把pkt缓冲释放回去给缓冲区管理器110。主CPU端口114以及其他端口920向队列管理器112要求取得自己的局部pkt缓冲;当主CPU端口114以及其他端口920不用其局部pkt缓冲时,会将其局部pkt缓冲释放回队列管理器112;其中,在队列管理器112中有指示封包缓冲的源的标签,指示封包是来自CPU的局部存储器或共享存储器。
因此,当要求传输封包时,缓冲区管理器110依据网络交换系统90的通信是否拥塞,从SRAM或DRAM选择缓冲空间来储存封包。另外,也可选择局部存储器来储存封包,其中每一局部存储器也可具有SRAM及DRAM,如此一来,依据网络交换系统90的拥塞状态,可选择合适的存储器。换句话说,不论使用中央存储器930或局部存储器940、950来储存封包,都能选择合适类型的存储器(SRAM或DRAM),如此一来,网络交换系统90可具有DRAM及SRAM两者的优势。
在一些范例中,在具有主CPU及对应DMA端口(例如网络交换系统10及20)的系统中,可实现存储器选择单元和具有不同特性的存储器,只要存储器选择单元依据网络交换系统的通信是否拥塞来选择存储器储存封包,这样网络交换系统就能具有DRAM及SRAM两者的优势。请注意,本发明实施例中的存储器及对应的缓冲空间为储存封包专用,该封包被要求在网络交换系统中传输,该存储器及对应的缓冲空间应该不同于CPU缓冲器或其他缓冲系统。举例来说,在一些具有缓冲空间的存储系统中,在缓冲空间(例如SRAM)中会缓冲数据,接着进入存储系统(例如DRAM),其对于分组交换不能具有DRAM及SRAM两者的优势,应与本发明相区别。
在现有技术中,对于异构网络服务及各种网络端口之间的分组交换,由于在网络交换系统中使用的存储器的固有限制,尤其当网络交换系统的通信拥塞时,传统的网络交换系统不能有效并完整地执行分组交换。相比之下,本发明能够依据网络交换系统的拥塞状态将封包储存至指定的存储器,其具有在网络系统中使用的不同的存储器的优势。举例来说,当通信拥塞时,网络交换系统使用DRAM,以便能降低封包丢失的可能性。另一方面,当通信不拥塞时,网络交换系统使用SRAM,以便以较高存储速度及较低功耗提升网络交换系统的性能。另外,CPU的性能不易被分组交换干扰。
虽然本发明已以具体实施例揭露如上,然其仅为了易于说明本发明的技术内容,而并非将本发明狭义地限定于该实施例,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视本发明的权利要求所界定者为准。

Claims (21)

1.一种网络交换系统中处理分组交换的网络处理器,包含:
第一存储器和第二存储器,用于储存多个封包;以及
存储器选择单元,用于依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包;
其中该第一存储器及该第二存储器的特性不相同。
2.如权利要求1所述的网络处理器,更包含:
缓冲区管理器,用于管理该第一存储器及该第二存储器;
队列管理器,用于管理多个网络端口的多个队列;以及
转发引擎,用于为该多个封包中的每一个封包获得目的队列,该目的队列在该多个网络端口的目的网络端口的该多个队列中。
3.如权利要求2所述的网络处理器,其特征在于,该存储器选择单元依据该目的网络端口的该目的队列的拥塞状态,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包。
4.如权利要求2所述的网络处理器,其特征在于,该缓冲区管理器包含:
第一存储器缓冲区管理器,用于为该存储器选择单元提供该第一存储器中第一空闲缓冲的信息;以及
第二存储器缓冲区管理器,用于为该存储器选择单元提供该第二存储器中第二空闲缓冲的信息。
5.如权利要求2所述的网络处理器,其特征在于,在该第一存储器或该第二存储器中,预留第三缓冲给该多个队列中的特定队列以进行分组交换,以及第四缓冲可用于所有该多个队列以进行分组交换。
6.如权利要求5所述的网络处理器,其特征在于,当该第三缓冲及该第四缓冲都空闲时,该第三缓冲具有比该第四缓冲更高的优先级来储存发送至该多个队列中的该特定队列的封包。
7.如权利要求1所述的网络处理器,其特征在于,该第一存储器为静态随机存取存储器,当该网络交换系统的通信不拥塞时用来储存该多个封包中的还未储存的封包,以及该第二存储器为动态随机存取存储器,当该网络交换系统的通信拥塞时用来储存该多个封包中的还未储存的封包。
8.一种网络交换系统,包含:
多个网络端口,每个网络端口包含多个队列;以及
网络处理器,用于处理分组交换,包含:
第一存储器和第二存储器,用于储存多个封包;以及
存储器选择单元,用于依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包;
其中,该第一存储器及该第二存储器的特性不相同。
9.如权利要求8所述的网络交换系统,其特征在于,该网络处理器还包含:
缓冲区管理器,用于管理该第一存储器及该第二存储器;
队列管理器,用于管理该多个网络端口的该多个队列;以及
转发引擎,用于为该多个封包中的每一个封包获得目的队列,该目的队列在该多个网络端口的目的网络端口的该多个队列中。
10.如权利要求9所述的网络交换系统,其特征在于,该存储器选择单元依据该目的网络端口的该目的队列的拥塞状态,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包。
11.如权利要求9所述的网络交换系统,其特征在于,该缓冲区管理器包含:
第一存储器缓冲区管理器,用于为该存储器选择单元提供该第一存储器中第一空闲缓冲的信息;以及
第二存储器缓冲区管理器,用于为该存储器选择单元提供该第二存储器中第二空闲缓冲的信息。
12.如权利要求9所述的网络交换系统,其特征在于,在该第一存储器或该第二存储器中,预留第三缓冲给该多个队列中的特定队列以进行分组交换,以及第四缓冲可用于所有该多个队列以进行分组交换。
13.如权利要求12所述的网络交换系统,其特征在于,当该第三缓冲及该第四缓冲都空闲时,该第三缓冲具有比该第四缓冲更高的优先级来储存发送至该多个队列中的该特定队列的封包。
14.如权利要求8所述的网络交换系统,其特征在于,该第一存储器为静态随机存取存储器,当该网络交换系统的通信不拥塞时用来储存该多个封包中的还未储存的封包,以及该第二存储器为动态随机存取存储器,当该网络交换系统的通信拥塞时用来储存该多个封包中的还未储存的封包。
15.一种在网络交换系统中处理分组交换的方法,该网络交换系统包含第一存储器及第二存储器,其特征在于,该方法包含:
依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存多个封包中的还未储存的封包;
其中该第一存储器及该第二存储器的特性不相同。
16.如权利要求15所述的处理分组交换的方法,还包含:
为该多个封包中的每一个封包获得目的队列,该目的队列在该多个网络端口的目的网络端口的该多个队列中。
17.如权利要求16所述的处理分组交换的方法,其特征在于,依据该网络交换系统的通信是否拥塞,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包的步骤包含:
依据该目的网络端口的该目的队列的拥塞状态,选择该第一存储器或该第二存储器来储存该多个封包中的还未储存的封包。
18.如权利要求16所述的处理分组交换的方法,还包含:
提供该第一存储器中第一空闲缓冲的信息;以及
提供该第二存储器中第二空闲缓冲的信息。
19.如权利要求16所述的处理分组交换的方法,其特征在于,在该第一存储器或该第二存储器中,预留第三缓冲给该多个队列中的特定队列以进行分组交换,第四缓冲可用于所有该多个队列以进行分组交换。
20.如权利要求19所述的处理分组交换的方法,其特征在于,当该第三缓冲及该第四缓冲都空闲时,该第三缓冲具有比该第四缓冲更高的优先级来储存发送至该多个队列中的该特定队列的封包。
21.如权利要求15所述的处理分组交换的方法,还包含:
当该网络交换系统的通信不拥塞时在该第一存储器中储存该多个封包中的还未储存的封包,其中该第一存储器为静态随机存取存储器,以及
当该网络交换系统的通信拥塞时在该第二存储器中储存该多个封包中的还未储存的封包,其中该第二存储器为动态随机存取存储器。
CN201410089742.6A 2013-03-14 2014-03-12 处理分组交换的网络处理器及方法、网络交换系统 Pending CN104052683A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/802,838 2013-03-14
US13/802,838 US9019832B2 (en) 2013-03-14 2013-03-14 Network switching system and method for processing packet switching in network switching system

Publications (1)

Publication Number Publication Date
CN104052683A true CN104052683A (zh) 2014-09-17

Family

ID=51505065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410089742.6A Pending CN104052683A (zh) 2013-03-14 2014-03-12 处理分组交换的网络处理器及方法、网络交换系统

Country Status (2)

Country Link
US (1) US9019832B2 (zh)
CN (1) CN104052683A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000673A1 (zh) * 2015-06-29 2017-01-05 深圳市中兴微电子技术有限公司 一种共享缓存分配方法、装置及计算机存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313148B2 (en) * 2013-04-26 2016-04-12 Mediatek Inc. Output queue of multi-plane network device and related method of managing output queue having multiple packet linked lists
US9921994B1 (en) * 2015-02-26 2018-03-20 Marvell International Ltd. Dynamic credit control in multi-traffic class communication system
US10819632B2 (en) * 2017-01-18 2020-10-27 Synology Inc. Routers and methods for traffic management
US11159440B2 (en) * 2017-11-22 2021-10-26 Marvell Israel (M.I.S.L) Ltd. Hybrid packet memory for buffering packets in network devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1677957A (zh) * 2004-03-31 2005-10-05 国际商业机器公司 用于控制从分布式系统到中央系统的数据流的方法和系统
US20050273564A1 (en) * 2004-06-02 2005-12-08 Sridhar Lakshmanamurthy Memory controller
CN1244252C (zh) * 2000-04-28 2006-03-01 转换中心股份公司 用于管理交换机内分组队列的方法与设备
US20070239966A1 (en) * 2003-07-25 2007-10-11 International Business Machines Corporation Self-contained processor subsystem as component for system-on-chip design
CN101174245A (zh) * 2006-11-02 2008-05-07 国际商业机器公司 混合数据存储的方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9618128D0 (en) * 1996-08-30 1996-10-09 Sgs Thomson Microelectronics Improvements in or relating to an ATM switch
US6697362B1 (en) * 1998-11-06 2004-02-24 Level One Communications, Inc. Distributed switch memory architecture
US6850490B1 (en) * 1999-10-06 2005-02-01 Enterasys Networks, Inc. Hierarchical output-queued packet-buffering system and method
US7072345B2 (en) * 2000-11-29 2006-07-04 Raza Microelectronics, Inc Programmable integrated circuit for use in a network switch
US7426572B1 (en) * 2001-10-31 2008-09-16 Juniper Networks, Inc. Network router using embedded and external memory based on packet destination
US7571287B2 (en) * 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
US20050089054A1 (en) * 2003-08-11 2005-04-28 Gene Ciancaglini Methods and apparatus for provisioning connection oriented, quality of service capabilities and services
US7535898B2 (en) * 2003-11-06 2009-05-19 Intel Corporation Distributed switch memory architecture
US7505410B2 (en) * 2005-06-30 2009-03-17 Intel Corporation Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices
US20070121499A1 (en) * 2005-11-28 2007-05-31 Subhasis Pal Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching
US8248930B2 (en) * 2008-04-29 2012-08-21 Google Inc. Method and apparatus for a network queuing engine and congestion management gateway
US20120030306A1 (en) * 2009-04-28 2012-02-02 Nobuharu Kami Rapid movement system for virtual devices in a computing system, management device, and method and program therefor
US8687491B2 (en) * 2011-04-05 2014-04-01 Vss Monitoring, Inc. Systems, apparatus, and methods for managing an overflow of data packets received by a switch

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1244252C (zh) * 2000-04-28 2006-03-01 转换中心股份公司 用于管理交换机内分组队列的方法与设备
US20070239966A1 (en) * 2003-07-25 2007-10-11 International Business Machines Corporation Self-contained processor subsystem as component for system-on-chip design
CN1677957A (zh) * 2004-03-31 2005-10-05 国际商业机器公司 用于控制从分布式系统到中央系统的数据流的方法和系统
US20050273564A1 (en) * 2004-06-02 2005-12-08 Sridhar Lakshmanamurthy Memory controller
CN101174245A (zh) * 2006-11-02 2008-05-07 国际商业机器公司 混合数据存储的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000673A1 (zh) * 2015-06-29 2017-01-05 深圳市中兴微电子技术有限公司 一种共享缓存分配方法、装置及计算机存储介质

Also Published As

Publication number Publication date
US20140269298A1 (en) 2014-09-18
US9019832B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
US10341260B2 (en) Early queueing network device
TWI510030B (zh) 用於在客戶端裝置上利用封包服務分類執行封包佇列的系統及方法
US10057387B2 (en) Communication traffic processing architectures and methods
US9654406B2 (en) Communication traffic processing architectures and methods
JP5640234B2 (ja) マネージド・ネットワークでのレイヤ2のパケット集約及び断片化
US9077466B2 (en) Methods and apparatus for transmission of groups of cells via a switch fabric
CN103081434B (zh) 智能存储器
US9774651B2 (en) Method and apparatus for rapid data distribution
CN104052683A (zh) 处理分组交换的网络处理器及方法、网络交换系统
US20210320866A1 (en) Flow control technologies
US8509069B1 (en) Cell sharing to improve throughput within a network device
US20150215226A1 (en) Device and Method for Packet Processing with Memories Having Different Latencies
CN103534997A (zh) 用于无损耗以太网的基于端口和优先级的流控制机制
CN116018790A (zh) 基于接收方的精密拥塞控制
CN104378308A (zh) 报文发送速率检测方法及装置
WO2023103419A1 (zh) 基于消息队列的5g消息批量发送方法、装置及电子设备
US20220078119A1 (en) Network interface device with flow control capability
CN115118668A (zh) 流控制技术
CN109743350B (zh) 一种科学计算应用影像区交换通信模式的卸载实现方法
CN111464453A (zh) 一种报文转发方法及装置
CN110661731B (zh) 一种报文处理方法及其装置
WO2021136014A1 (zh) 一种安全计算控制方法、数据包处理方法、装置及其系统
US20210336895A1 (en) Data transmission method and network device
CN118264392A (zh) 密码学引擎的调度电路、方法、终端设备和芯片
CN113746890A (zh) 用于利用边缘平台进行的自适应对等通信的系统、装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: LIANFA SCIENCE AND TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: RALINK TECHNOLOGY INC.

Effective date: 20140917

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140917

Address after: China Taiwan Hsinchu Science Park Hsinchu city Dusing a road No.

Applicant after: MediaTek.Inc

Address before: Taiwan Hsinchu County Chinese jhubei City, Taiwan Yuan Street No. five five floor

Applicant before: Ralink Technology Inc.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140917