CN103457847A - 通信装置及通信方法 - Google Patents

通信装置及通信方法 Download PDF

Info

Publication number
CN103457847A
CN103457847A CN2013102064094A CN201310206409A CN103457847A CN 103457847 A CN103457847 A CN 103457847A CN 2013102064094 A CN2013102064094 A CN 2013102064094A CN 201310206409 A CN201310206409 A CN 201310206409A CN 103457847 A CN103457847 A CN 103457847A
Authority
CN
China
Prior art keywords
parallel processing
surrounded
pass
bag
processing section
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
CN2013102064094A
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN103457847A publication Critical patent/CN103457847A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1523Parallel switch fabric planes

Landscapes

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

Abstract

本发明提供一种包处理方法,在包到达间隔比更新信息存储介质所保持的信息的时间短的包处理中,即使需要统计计数功能等的情况下,也能够对连续到达的包进行处理。在通信装置中,各并行处理部保持与包有关的处理的执行结果,并行处理分配部基于利用流管理列表和对第一包分配的流ID,判断与第二包有关的处理是否为执行中,所述第二包被分配了与第一包对应的流ID,按照判断结果,决定执行与第一包有关的处理的并行处理部和分配通知中包含的参数,所决定的并行处理部在接收到分配通知的情况下,根据运算用表或执行结果,利用与第二包有关的执行结果和分配通知中包含的信息,执行与第一包有关的处理,利用执行结果来更新运算用表。

Description

通信装置及通信方法
技术领域
本发明涉及通信装置,尤其涉及对包进行处理的通信装置。
背景技术
近年来,由于电视内容的数字化或基于web的运动图像发布服务的普及等,网络系统中的通信量逐渐大容量化。并且,由此,超过100Gbps的线路的需求增高。
伴随着通信量的大容量化,包通信装置所具备的逻辑器件中的动作频率上升,但另一方面,例如FPGA(Field-Programmable Gate Array:现场可编程门阵列)等逻辑器件的动作频率存在最大300MHz程度的极限。因此,使用FPGA来容纳100Gbps线路的情况下,FPGA需要以每1包2clk程度对包进行处理。
将频带控制功能或统计计数功能等包管理功能安装在逻辑器件中的情况下,逻辑器件将每个流的包的信息保存在一个信息存储介质(以后记载为表)中,每当包到达,更新与到达的包对应的每个流的表的值。
例如实现频带控制功能的情况下,逻辑器件通过表来管理各流的消耗频带。具体地说,逻辑器件每当包到达,从表读出对各流设定的频带(设定频带)及在各流中消耗的频带(消耗频带)(a.表RD),执行消耗频带的更新及更新结果与设定频带的比较(b.数据运算)、以及消耗频带的更新结果向表的写入(c.表WR)。
以后,如前述的a~c那样,将通过与包有关的信息来对表进行更新的处理记载为表更新处理。
作为对表进行更新的方法,有一个逻辑器件每当包到达时以1包为单位来对表进行更新的一般方法(顺序处理方法)。一般来说,在顺序处理方法中,逻辑器件进行与一个包有关的表更新处理需要规定的时间(例如10clk程度)。
此外,作为本技术领域的背景技术,有时特开2000-358066号公报(专利文献1)。在该公报中记载了如下内容(参照摘要):“对于每个到达包,检查来自相同源的之前的包在处理元素中是否为待决状态,通过检查明确了这样的包是待决状态的情况下,将该到达包传送给与之前的包相同的处理元素”。即,在专利文献1中提出了通过多个并行处理部来处理多个流的包的并行处理技术。
在先技术文献:
专利文献:
专利文献1:日本特开2000-358066号公报
在使用顺序处理方法的逻辑器件中,包到达间隔为每1包的表更新处理所需的时间以上的情况下,逻辑器件能够每当包到达时执行表更新处理。
但是,线路的量大容量化、而包到达间隔比每1包的表更新处理所需的时间短的情况下,之前到达的包的表更新处理尚未结束,接下来应该处理的包便已到达。因此,逻辑器件无法正常地执行连续到达的包的表更新处理。
此外,根据专利文献1记载的技术,按每个流对多个并行处理部分配包,由各并行处理部执行表更新处理,所以包连续到达的频率较小。但是,在比表更新处理所需的时间更短的时间间隔中,同一流的二个包连续到达的情况下,同一流的包被传送给同一并行处理部。
因此,与前述的顺序处理方法相同,使用并行处理部的情况下的逻辑器件有时无法正常地执行与连续到达的同一流的多个包有关的表更新处理。并且,在与连续到达的同一流的多个包有关的表更新处理结束之前,也不执行与其他流的包有关的表更新处理,所以存在无法正常执行包整体的表更新处理的问题。
此外,通过将按每个流分割的表保持在各并行处理部中,能够使各并行处理部针对各流进行的表更新处理独立。但是,在网络系统中的流ID的数量不是固定值,而是对逻辑器件预先设置每个流的表及并行处理部的情况下,存在设备费用增加且失去逻辑器件的通用性的问题。
发明内容
本发明是鉴于前述的问题而做出的,其目的在于,提供一种包处理方法,在包到达间隔比更新信息存储介质所保持的信息的时间短的包处理中,即使需要统计计数功能等每当包到达就更新同一流的信息的情况下,也能够对连续到达的包进行处理。
以下示出本发明的代表性的一例。即,一种通信装置,与网络连接,所述通信装置具有:输入接口,接收从所述网络发送的包;多个并行处理部,执行与所述包有关的处理;并行处理分配部,向所述各并行处理部分配与所述包有关的处理;以及运算用表,包括表示与所述包有关的处理的执行结果的值以及对所述包分配的流ID;所述各并行处理部保持执行了在该并行处理部中执行的与所述包有关的处理而得到的执行结果,所述并行处理分配部保持利用流管理列表,该利用流管理列表包括对由所述各并行处理部执行处理的所述包分配的流ID以及表示所述各并行处理部中的与所述包有关的处理的状况的值;在接收到第一包的情况下,所述并行处理分配部基于所述利用流管理列表和对所述第一包分配的流ID,判断与第二包有关的处理是否为执行中,所述第二包被分配了与所述第一包相对应的所述流ID;所述并行处理分配部按照所述判断结果,决定执行与所述第一包有关的处理的并行处理部和向该并行处理部发送的分配通知中包含的参数;将与所述第一包有关的信息包含在所述分配通知中,并发送给所决定的所述并行处理部;所决定的所述并行处理部在接收到所述分配通知的情况下,按照接收的所述分配通知,从所述运算用表或保持在该并行处理部中的执行结果取得与所述第二包有关的处理的执行结果;所决定的所述并行处理部使用取得的所述与所述第二包有关的执行结果和所述分配通知中包含的信息,执行与所述第一包有关的处理;利用执行了与所述第一包有关的处理而得到的执行结果,更新所述运算用表。
发明的效果:
根据本发明的一实施方式,即使在包到达间隔比更新信息存储介质所保持的信息所需的时间短的情况下,也能够对连续到达的包进行处理。
附图说明
图1A是表示本实施例1的包到达间隔为表更新时间以上的情况下的表更新处理的说明图。
图1B是表示本实施例1的包到达间隔比表更新时间短的情况下的包的接收状况的说明图。
图2是表示本实施例1的包通信装置的物理构成及逻辑电路的框图。
图3是表示在本实施例1的通信中使用的包的格式的说明图。
图4是表示附加于本实施例1的包的装置内头的格式的说明图。
图5是表示本实施例1的输入包控制部的逻辑构成的框图。
图6是表示本实施例1的利用流管理列表的说明图。
图7是表示本实施例1的设定用表的说明图。
图8是表示本实施例1的运算用表的说明图。
图9是表示本实施例1的并行处理分配部所执行的分配处理的流程图。
图10是表示本实施例1的并行处理分配部所执行的利用流管理处理的流程图。
图11是表示本实施例1的并行处理部所执行的表更新处理的流程图。
图12是表示本实施例1的输出判断部所执行的输出判断处理的流程图。
图13A是表示本实施例1的一个并行处理部连续执行表更新处理时的运算结果的说明图。
图13B是表示本实施例1的二个并行处理部执行表更新处理时的运算结果的说明图。
图14是表示本实施例2的包通信装置的物理构成及逻辑电路的框图。
图15是表示本实施例2的输入包控制部的逻辑构成的框图。
图16是表示本实施例2的频带设定表信息的说明图。
图17是表示本实施例2的运算结果保持表信息的说明图。
图18A是表示本实施例2的并行处理部所执行的表更新处理中的、计算在接收到输入包之前应该储存的令牌量的处理的流程图。
图18B是表示本实施例2的并行处理部所执行的表更新处理中的、判断输入包是否为保证内的处理的流程图。
图19是表示本实施例2的输出判断部所执行的输出判断处理的流程图。
图20是表示本实施例2的表更新处理所导致的上次包到达时刻及保持令牌值的变化的说明图。
图21是表示本实施例3的包通信装置的物理构成及逻辑电路的框图。
图22是表示本实施例3的输入包控制部的物理构成的框图。
图23是表示本实施例3的统计信息表的说明图。
图24是表示本实施例3的并行处理部所执行的表更新处理的流程图。
图25是表示本实施例3的并行处理部所执行的表更新处理导致的、接收包数及接收字节数的变化的说明图。
具体实施方式
以下,参照附图说明本发明的实施例。
【实施例1】
以下示出本实施例中的包到达间隔和表更新处理所需的时间(表更新时间)之间的关系的具体例。
图1A是表示本实施例1的包到达间隔为表更新时间以上的情况下的表更新处理的说明图。
例如包到达间隔为10clk以上、且表更新时间为10clk的情况下,本实施例的包通信装置能够在每当包到达时执行表更新处理。这相当于例如1Gbps线路中的包到达间隔为40clk、10Gbps线路中的包到达间隔为10clk、表更新时间为10clk的情况。
图1B是表示本实施例1的包到达间隔比表更新时间短的情况下的包的接收状况的说明图。
例如100Gbps线路中的包到达间隔为2clk、表更新时间为10clk的情况下,第一个包到达包通信装置之后,在表更新处理结束之前,第二个包到达。这种情况下,包被丢弃,所以不执行与第二个包有关的表更新处理。
以下,使用图2~图13说明本实施例1。另外,以下所述的实施例1是本发明的实施例之一,不限制本发明。
本实施例中的包通信装置具备以下说明的并行处理方法,在各流的包到达时,更新各流的信息存储介质(表)信息。
图2是表示本实施例1的包通信装置2的物理构成及逻辑电路210的框图。
本实施例的包通信装置2是将包传送给其他包通信装置的装置。包通信装置2具备多个网络接口板(NIF)(200-1~200-M)及开关部206。
NIF200是用于从网络接收包、并向网络发送包的接口。开关部206是与各NIF200连接的装置,是将从NIF200接收的包分配给应该发送包的NIF200的装置。
各NIF200具备:输入输出线路接口201、SW接口205、逻辑电路210、以及NIF管理部211。
输入输出线路接口201是通信端口。包通信装置2经由输入输出线路接口201及网络与其他包通信装置连接。实施例1中的输入输出线路接口201是以太网(注册商标,以下同)用的线路接口。
SW接口205是用于与开关部206连接的装置。
NIF管理部211例如是CPU等处理器。NIF管理部211对逻辑电路210中的处理进行控制。
逻辑电路210是对本实施例的包进行处理的电路。逻辑电路210具备至少一个存储器及至少一个运算装置(例如处理器)。
逻辑电路210具有输入头处理部202、输入包控制部203、输出头处理部207、输出包控制部208等处理部,具备设定寄存器212。此外,逻辑电路210所具备的存储器保持设定用表213、运算用表214、输入包缓冲器204、以及输出包缓冲器209。
包通信装置2接收的包按照输入输出线路接口201、输入头处理部202、SW接口205、开关部206、SW接口205、输入包控制部203、输出头处理部207、输出包控制部208、以及输入输出线路接口201的顺序发送。
逻辑电路210所具有的各处理部可以通过集成电路等物理的装置来安装,也可以通过由至少一个处理器执行的程序来安装。此外,可以通过一个装置或程序安装多个处理部(例如输入包控制部203及输入头处理部202),也可以通过多个装置或多个程序安装一个处理部。
NIF管理部211对设定寄存器212进行控制。设定寄存器212具有临时保存数据的存储区域,保持逻辑电路210所具备的各处理部的寄存器值。
图2仅示出了设定寄存器212和输入包控制部203的连接,但是设定寄存器212经由逻辑电路210与逻辑电路210所具备的全部处理部连接。另外,以下省略对设定寄存器212的处理内容的说明,但是逻辑电路210所具有的全部处理部使用设定寄存器212来执行处理。
输入输出线路接口201对接收的包4附加后述的装置内头3。
图3是表示在本实施例1的通信中使用的包4的格式的说明图。
图3所示的包4的格式只是一例,在本实施例中使用的包可以包括任何信息。例如可以取代MAC地址而包括IP地址。
包4包括:发送目的地MAC地址401、发送源MAC地址402、VLAN头403、以太类型值404、有效载荷405、以及帧检查序列(FCS)406。
在发送目的地MAC地址401或发送源MAC地址402中设定有包通信装置2的MAC地址。在VLAN头403中设定有成为流的标识符的VLAN ID。
另外,也可以是,在有效载荷405中设定有MPLS头或其他协议的头,在VLAN ID中设定MPLS标签值等,作为流的标识符。在帧检查序列(FCS)406中设定有用于检测帧的错误的值。
图4是表示对本实施例1的包4附加的装置内头3的格式的说明图。
为了在包通信装置2中对接收的包4进行处理,输入输出线路接口201对接收的包4附加装置内头3。以后将附加了装置内头3并从输入输出线路接口201朝向开关部206发送的包4记载为输入包。
装置内头3包括:输出网络接口板标识符(输出NIF ID)301、流ID302、以及帧长303。
输出NIF ID301是内部路由信息。本实施例的内部路由信息指的是,表示从包通信装置2的哪个NIF200的端口输出包通信装置2接收的包4的信息。开关部206按照内部路由信息,将发送至开关部206的输入包传送给特定的NIF200的特定的SW接口205。
输入输出线路接口201对接收的包4附加装置内头3时,在输出NIF ID301及流ID302中保存null值等的值。即,输入输出线路接口201不决定输出NIF ID301及流ID302中保存的值。在输出NIF ID301及流ID302中,由输入头处理部202保存值。
输入输出线路接口201取得所接收的包4的帧长,在装置内头3的帧长303中保存所取得的帧长。然后,输入输出线路接口201将包4发送给输入头处理部202。
输入头处理部202基于从输入输出线路接口201接收的输入包的403,识别包4的流。然后,输入头处理部202按照识别出的流,执行VLAN标志的处理,由此,在输入包的输出NIF ID301及流ID302中保存值。
VLAN标志的处理指的是,例如VLAN标志的透过、变换、赋予及删除。即,VLAN标志的处理指的是,将输入包的VLAN头变换为从包通信装置2输出的包的VLAN头的处理。
输入头处理部202可以在VLAN标志的处理中,将发送目的地MAC地址401及发送源MAC地址402改写为对输入输出线路接口201设定的值,也可以改写为预先登记的每个流的值。
对VLAN标志进行处理并在装置内头3中追加输出NIF ID301及流ID302之后,输入头处理部202将输入包发送给输入包控制部203。
输入包控制部203将从输入头处理部202接收的输入包保存到输入包缓冲器204中。这时,输入包控制部203使用设定用表213及运算用表214,对接收的输入包执行后述的包处理。
包处理后,输入包控制部203读出输入包缓冲器204中保存的输入包,并发送给SW接口205。SW接口205将接收的输入包传送给开关部206。
开关部206从各NIF200的SW接口205接收输入包之后,通过参照输入包的输出NIF ID301,确定作为所接收的输入包的传输目的地的NIF200。接着,开关部206向与确定的IF200对应的SW接口205传送所接收的输入包,作为输出包。
另外,在本实施例中,将从开关部206向输入输出线路接口201发送的包4记载为输出包。
SW接口205将接收的输出包传送给输出头处理部207。
在前述的例子中,输入头处理部202将输入包的头(格式)变换为从包通信装置2输出的包的头(格式)。但是,本实施例的输出头处理部207也可以代替输入头处理部202而执行输出包的头变换。
另外,在输入头处理部202中已经进行了头变换(格式变换)的情况下,输出头处理部207将从SW接口205接收的输出包原样传送给输出包控制部208。
此外,在前述的例子中,输入包控制部203执行包处理。但是,输出包控制部208也可以代替输入包控制部203,将输出包保存到输出包缓冲器209中,并执行包处理。
输出包控制部208执行包处理的情况下,在包处理后,输出包控制部208读出输出包缓冲器209中保存的输出包。然后,将读出的输出包发送给输入输出线路接口201。
输出包控制部208不实施包处理的情况下,输出包控制部208将从输出头处理部207接收的输出包原样传送给输入输出线路接口201。
输入输出线路接口201从接收的输出包中除去装置内头3。然后,输入输出线路接口201以图3所示的包4的格式,将输出包传送给其他装置。
图5是表示本实施例1的输入包控制部203的逻辑构成的框图。
输入包控制部203具备:并行处理分配部501、利用流管理列表502、多个并行处理部503(503-1~503-N)、输出判断部504、以及访问调解部505。
并行处理分配部501是在输入包控制部203从输入头处理部202接收到输入包的情况下,执行后述的分配处理S950的处理部。并行处理分配部501在分配处理S950中,基于输入包的装置内头3的流ID302来识别流,并且参照利用流管理列表502。然后,由此,从并行处理部503-1~并行处理部503-N决定执行与输入包有关的表更新处理的并行处理部503。
此外,并行处理分配部501将利用流管理列表502保持在逻辑电路210所具备的存储器等中。然后,并行处理分配部501在后述的分配处理S950及利用流管理处理S1050中更新利用流管理列表502。此外,并行处理分配部501接收到输入包时,将接收的输入包保存到输入包缓冲器204中。
利用流管理列表502表示并行处理部503所处理的输入包的流ID和并行处理部503的处理状况。
并行处理部503在后述的表更新处理S1150中,更新运算用表214中包含的各流的信息。此外,并行处理部503将表更新处理S1150的处理判断结果发送给输出判断部504。在输入包控制部203中具备N个(N为任意的自然数)并行处理部503。
在本实施例中,并行处理部503预先决定表更新处理S1150所需的表更新时间。此外,本实施例的输入包缓冲器204(或输出包缓冲器209)作为移位寄存器,由并行处理分配部501及输出判断部504使用。
进而,在本实施例中,基于表更新时间和最短包到达间隔来决定并行处理部503的数量N。另外,最短包到达间隔是按照包通信装置2所连接的线路预先决定的值。
例如表更新时间为10clk、最短包到达间隔为2clk的情况下,将表更新时间除以最短包到达间隔(余数进位)而得到的结果为“5”。因此,并行处理部503的数量N预先决定为“5”。
输出判断部504执行后述的输出判断处理S1250,从各并行处理部503(503-1~503-N)接收运算结束及处理判断结果。输出判断部504从输入包缓冲器204读出输入包,基于处理判断结果,对读出的输入包的头或有效载荷进行变换。然后,输出判断部504将输入包发送给SW接口205。
访问调解部505对并行处理部503-1~并行处理部503-N向设定用表213及运算用表214的访问(读出及写回)进行调解。以下省略访问调解部505的处理的详细情况,但是在各并行处理部503访问设定用表213及运算用表214的情况下,访问调解部505对访问进行调解(arbitration)。
图6是表示本实施例1的利用流管理列表502的说明图。
利用流管理列表502包括并行处理部601、流ID602、以及处理状况计数器603。
并行处理部601包括唯一地表示并行处理部503-1~503-N的标识符。本实施例的并行处理部601包括通过数值识别并行处理部503的值。并行处理部601中保存的值由管理者等预先设定。
流ID602包括唯一地表示对并行处理部503处理的输入包分配的流的流ID。流ID602中保存的值由并行处理分配部501进行更新。此外,流ID602中保存的值在输入头处理部202中与装置内头3的流ID302中保存的值对应。
处理状况计数器603包括表示并行处理部503中的表更新处理的状况的值。本实施例的处理状况计数器603包括与从表更新处理开始起经过的执行时间有关的值。
以下所示的处理状况计数器603通过减法计数器表示到表更新处理结束为止的剩余时间。具体地说,在表更新处理已开始的情况下,在处理状况计数器603中保存有表更新时间。并且,并行处理分配部501每隔单位时间(在本实施例中为1clk)使处理状况计数器603的值减少。
在处理状况计数器603中保存有“0”的条目,表示并行处理部601所示的并行处理部503已结束表更新处理。此外,在处理状况计数器603中保存有“0”以外的正数的条目,表示并行处理部601所示的并行处理部503正在进行表更新处理。
以下记载处理状况计数器603为减法计数器的情况下的处理,但是处理状况计数器603也可以利用加法计数器来表示从表更新处理开始起经过的时间。这种情况下,并行处理分配部501也可以通过比较规定的表更新时间和处理状况计数器603,取得表更新处理的状况。
图7是表示本实施例1的设定用表213的说明图。
设定用表213中保存的值是并行处理部503为了执行表更新处理而使用的设定值,是由管理者等预先决定的设定值。设定用表213包括流ID701及设定信息702。
流ID701包括唯一地表示对输入包分配的流的流ID。流ID701中保存的值在输入头处理部202中与装置内头3的流ID302中保存的值对应。
设定信息702表示在表更新处理中使用的信息。具体地说,设定信息702表示在表更新处理中由并行处理部503更新运算结果时使用的设定值。
图8是表示本实施例1的运算用表214的说明图。
运算用表214包括流ID801及运算结果802。
流ID801包括唯一地表示对输入包分配的流的流ID。流ID801中保存的值在输入头处理部202中与装置内头3的流ID302中保存的值对应。
运算结果802表示每个流的包处理的结果、即每个流的表更新处理的结果。通过并行处理部503的表更新处理来更新运算结果802中保存的值。
以下说明并行处理分配部501执行的分配处理S950。
图9是表示由本实施例1的并行处理分配部执行的分配处理S950的流程图。
并行处理分配部501从输入头处理部202接收到输入包的情况下(S900),从接收的输入包中包含的装置内头3取得流ID302及帧长303的值(S901)。
在S901之后,并行处理分配部501判断利用流管理列表502的全部条目的处理状况计数器603的值是否与“0”不同(S902)。
在S902中,判断为利用流管理列表502的全部条目的处理状况计数器与“0”不同的情况下,全部并行处理部503正在执行表更新处理。因此,并行处理分配部501将输入包丢弃(S903),结束图9所示的分配处理S950(S909)。
此外,在S902中,在利用流管理列表502的条目中,存在处理状况计数器603不为“0”的条目的情况下,全部并行处理部503中的至少一个并行处理部503未在执行表更新处理。因此,并行处理分配部501判断在S901中取得的流ID302的值和处理状况计数器603与“0”不同的条目的流ID602的值是否一致(S904)。
另外,也可以是,在S904中,与在S901中取得的流ID302的值对应的值和处理状况计数器603与“0”不同的条目的流ID602的值一致的情况下,并行处理分配部501判断为,与取得的流ID302的值对应的值和处理状况计数器603与“0”不同的条目的流ID602的值一致。
在S904中判断为,在S901中取得的流ID302的值和处理状况计数器603与“0”不同的条目的流ID602的值不一致的情况下,并行处理分配部501为了使未在执行表更新处理的并行处理部新执行与输入包有关的表更新处理,而执行步骤907。
在S904中判断为,在S901中取得的流ID302的值和处理状况计数器603与“0”不同的条目的流ID602的值一致的情况下,与输入包的流对应的并行处理部503能够继续执行与输入包有关的表更新处理。因此,并行处理分配部501将取得的流ID302的值与流ID602一致的条目的并行处理部601所示的并行处理部503,决定为继续执行与输入包有关的表更新处理的并行处理部503。
然后,并行处理分配部501将取得的流ID302的值与流ID602一致的条目的处理状况计数器603更新为表示表更新时间的值(S905)。例如并行处理分配部501在表更新时间为10clk的情况下,将取得的流ID302的值与流ID602一致的条目的处理状况计数器603更新为“10”。
在S905中,通过更新处理状况计数器603,并行处理分配部501能够将表示各并行处理部503是否已结束表更新处理的值保存到处理状况计数器603中。
在步骤905之后,并行处理分配部501向取得的流ID302的值与流ID602的值一致的利用流管理列表502的条目的并行处理部601所示的并行处理部503输出分配通知,该分配通知包括处理开始触发、新设/继续参数、取得流ID、以及取得帧长(S906)。
在S906中,并行处理分配部501将新设/继续参数决定为表示继续的值,将表示继续的新设/继续参数(在本实施例中为“1”)包含到分配通知中。本实施例中的新设/继续参数是用于向各并行处理部503通知执行怎样的表更新处理的值。
在S906之后,结束图9所示的分配处理S950(S909)。
在S904中判断为,在S901中取得的流ID302的值和处理状况计数器603与0不同的条目的流ID602的值不一致的情况下,并行处理分配部501在处理状况计数器603为“0”的利用流管理列表502的条目中,提取并行处理部601的值最小的编号的条目。并行处理分配部501将提取的条目的并行处理部601所示的并行处理部503决定为新执行与输入包有关的表更新处理的并行处理部503。
然后,并行处理分配部501利用在步骤901中取得的流ID302的值,更新所提取的条目的流ID602。此外,并行处理分配部501利用表更新时间,更新所提取的条目的处理状况计数器603(S907)。
另外,在前述的S907中,并行处理分配部501在处理状况计数器603为“0”的利用流管理列表502的条目中,提取并行处理部601的值最小的编号(较小的编号)的条目,但只要是处理状况计数器603为“0”的利用流管理列表502的条目中的一个,并行处理分配部501也可以按照任何规则提取条目。例如并行处理分配部501可以提取值最大的编号的条目,也可以由管理者预先决定提取的条目的顺序。
在S907之后,并行处理分配部501向决定的并行处理部503输出分配通知,该分配通知包括处理开始触发、新设/继续参数、流ID、以及帧长(S908)。在S908中,并行处理分配部501将新设/继续参数决定为表示新设的值,将表示新设的新设/继续参数(在本实施例中为“0”)包含在分配通知中。
在S906及S908中输出的分配通知中包含的处理开始触发,是表示开始表更新处理的值。此外,分配通知中包含的流ID是在S901中取得的流ID、即输入包的流ID。此外,分配通知中包含的帧长是在S901中取得的帧长、即输入包的帧长。
在S908之后,并行处理分配部501结束图9所示的分配处理S950(S909)。
以下说明并行处理分配部501所执行的利用流管理处理S1050。
图10是表示本实施例1的并行处理分配部501所执行的利用流管理处理S1050的流程图。
并行处理分配部501在每1时钟(S1000),判断利用流管理列表502的全部条目的处理状况计数器603是否为“0”(S1001)。
在S1001中判断为利用流管理列表502的全部条目的处理状况计数器603为0的情况下,并行处理分配部501结束利用流管理处理S1050(S1003)。
此外,在S1001中判断为在利用流管理列表502的条目中存在处理状况计数器603不为0的条目的情况下,并行处理分配部501从处理状况计数器603的列中包含的0以外的值减去1(S1002)。在S1002之后,并行处理分配部501结束利用流管理处理S1050(S1003)。
以下说明并行处理部503-1~503-N所执行的表更新处理S1150。
图11是表示本实施例1的并行处理部503所执行的表更新处理S1150的流程图。
并行处理部503从并行处理分配部501接收到包括处理开始触发的分配通知的情况下(S1100),取得所接收的分配通知中包含的新设/继续参数、流ID、以及帧长(S1101)。
在S1101之后,并行处理部503判断新设/继续参数是否为“0”、即新设/继续参数是否表示新设(S1102)。
在S1102中判断为新设/继续参数为“0”的情况下,即判断为新设/继续参数表示新设的情况下,并行处理部503将在S1101中取得的流ID、即输入包的流ID作为检索关键字,检索设定用表213。然后,检索的结果是,并行处理部503取得在流ID701中包含输入包的流ID的设定用表213的条目的设定信息702的值(S1103)。由此,并行处理部503取得与输入包对应的设定信息702的值。
在S1103之后,并行处理部503将输入包的流ID作为检索关键字,检索运算用表214。然后,检索的结果是,并行处理部503取得在流ID701中包含输入包的流ID的设定用表213的条目的运算结果802的值(S1104)。在S1104之后,并行处理部503执行S1107的处理。
在S1102中判断为新设/继续参数不为“0”的情况下,即判断为新设/继续参数表示继续的情况下,并行处理部503与S1103相同,将输入包的流ID作为检索关键字来检索设定用表213,从而取得与输入包对应的设定信息702的值(S1105)。
在S1105之后,并行处理部503取得并行处理部503为了继续处理而内部保持的上次运算结果(S1106)。为了继续处理而内部保持的上次运算结果指的是,在表更新处理全部结束之前,为了继续执行下一表更新处理,由并行处理部503保持在设定寄存器212等逻辑电路210的存储器中的运算结果。
在S1106中,通过取得内部保持的上次运算结果,并行处理部503不需要访问运算用表214,就能够基于最新的运算结果进行表更新处理。并且,由此,即使连续接收同一流的输入包,也能够正常执行表更新处理。
在S1106之后,并行处理部503进入S1107的处理。
在S1102~S1106的处理中,图11所示的并行处理部503仅进行表更新处理中用于数据运算的信息取得,但是实施例1的并行处理部503也可以按照新设/继续参数的值来进行不同的处理。例如新设/继续参数表示新设的情况下,并行处理部503也可以在S1104之后,将从设定用表213取得的设定信息702的值与由用户预先赋予的值相加。
由此,在连续接收输入包的情况和未连续接收输入包的情况下,能够按照用户的请求来变更所更新的运算结果的值。
在S1104或S1106之后,并行处理部503使用所接收的分配通知中包含的帧长、以及从设定用表213取得的设定信息702,更新在S1104或S1106中取得的运算结果(S1107)。
S1107中的运算结果的更新方法,使用由管理者等预先决定的方法。例如在运算结果的更新方法中,有通过将接收的分配通知中包含的帧长与运算结果相加,从而更新运算结果的方法。
此外,并行处理部503在S1107中比较被更新的运算结果和设定信息702中保存的阈值,基于比较结果,决定对输入包的处理(例如输入包的头中包含的值的变换等)。然后,取得所决定的处理,作为处理判断结果。
在S1107之后,并行处理部503将更新后的运算结果,写回在流ID801中包含输入包的流ID的运算用表214的条目的运算结果802中。
此外,在S1107中,并行处理部503为了接下来接收的分配通知表示包的继续处理的情况(用于下一包的继续处理),将更新后的运算结果作为上次运算结果加以内部保持(S1108)。具体地说,并行处理部503将更新后的运算结果保存在逻辑电路210所具备的设定寄存器212等存储器中。
在S1108中,通过内部保持上次运算结果,并行处理部503能够将执行结果迅速地移交给下次接收输入包时进行的表更新处理。
在S1108之后,并行处理部503向输出判断部504发送运算结束通知(S1109),该运算结束通知包括表示运算结束的值、以及表示在S1107中取得的处理判断结果的值。在S1109之后,并行处理部503结束表更新处理S1150(S1110)。
以下说明输出判断部504所执行的输出判断处理S1250。
图12是表示本实施例1的输出判断部504所执行的输出判断处理S1250的流程图。
输出判断部504从并行处理部503-1~并行处理部503-N的某一个接收运算结束通知(S1200)。
在S1200之后,输出判断部504按照从接收的运算结束通知取得的处理判断结果,对从输入包缓冲器204读出的输入包的VLAN头403的值或有效载荷405的值进行变换。然后,将对VLAN头403的值或有效载荷405的值进行变换而得到的输入包发送给SW接口205(S1201)。
在S1201之后,输出判断部504结束输出判断处理S1250(S1202)。
通过图12所示的处理,输出判断部504能够依照并行处理部503中的表更新处理的结果对输入包进行头变换等处理。
图13A及图13B表示通过图11所示的表更新处理S1150而变化的运算结果的二个例子。
图13A是表示本实施例1的并行处理部503-1连续执行表更新处理S1150时的运算结果的说明图。
在图13A及图13B中,示出了表更新时间为10clk、且最短包到达间隔为2clk的情况下,并行处理部503-1以2clk间隔连续接收同一流ID为“100”的输入包的例子。
在本实施例中,将并行处理分配部501最初接收的输入包记载为第一包,将在第一包之后2clk时接收的输入包记载为第二包,将在第二包之后2clk时接收的输入包记载为第三包。在图13A中,第一包、第二包及第三包的流ID302的值都是“100”。
此外,在图13A及图13B中,设定信息702-1是在流ID701中包含“100”的设定用表213的条目的设定信息702的值,运算结果802-1是在流ID701中包含“100”的运算用表214的条目的运算结果802的值。此外,上次运算结果1302-1是并行处理部503-1内部保持的上次运算结果。
第一包是通过并行处理分配部501的处理(S904),被决定为使并行处理部503-1新执行表更新处理的输入包。
实施例1的并行处理部503-1在从并行处理分配部501接收到分配通知的定时(T1311),将第一包的流ID“100”作为检索关键字来检索设定用表213及运算用表214,该分配通知包括表示新设的新设/继续参数、第一包的流ID、第一包的帧长、处理开始触发。然后,检索的结果是,并行处理部503-1取得设定信息X1及运算结果A1(表RD)。
与第一包有关的表RD相当于图11所示的S1100~S1104。
并行处理部503-1使用设定信息X1及第一包的帧长,将运算结果A1更新为运算结果B1(数据运算)。与第一包有关的数据运算相当于图11的S1107。
然后,并行处理部503-1从与第一包有关的数据运算结束的定时(T1314)起,开始基于运算结果B1的向运算用表214的写回(表WR)。与第一包有关的表WR相当于S1108。
一般来说,访问表需要时间,所以基于运算结果B1的向运算用表214的写回在T1316结束。此外,并行处理部503-1在表WR中将运算结果B1作为上次运算结果1302-1加以内部保持,用于接下来接收的输入包的继续处理(相当于图11所示的S1108)。
在与第一包有关的表更新处理结束之前,由并行处理分配部501接收第二包。因此,第二包是在并行处理分配部501的处理(S904)中被决定为使并行处理部503-1继续执行表更新处理的输入包。
并行处理部503-1在从并行处理分配部501接收到表示继续的新设/继续参数、第二包的流ID、第二包的流长、处理开始触发和分配通知的定时(T1312),将第二包的流ID“100”作为检索关键字,检索设定用表213。检索的结果是,并行处理部503-1取得设定信息X1(伪RD)。
与第二包有关的伪RD相当于S1100~S1102及S1105。
在T1312中,与第一包有关的表更新处理的运算结果的更新尚未结束,所以运算结果802-1仍为运算结果A1。因此,并行处理部503-1在与第二包有关的表更新处理中,不从运算用表214取得运算结果。
然后,并行处理部503-1在接收到新设/继续参数表示继续的分配通知的定时,执行伪RD。在本实施例中的表处理中,将不参照运算用表214而从设定用表213仅取得设定信息的处理记载为伪RD。
在伪RD之后,并行处理部503-1读出通过第一包的表运算而内部保持的上次运算结果1302-1,从而交接之前执行的表更新处理的运算结果B1(T1314)。交接通过第一包的表运算而内部保持的运算结果B1的处理相当于图11的S1106。
然后,并行处理部503-1使用设定信息X1及第二包的帧长,将交接来的运算结果B1更新为运算结果C1(数据运算)。与第二包有关的数据运算相当于图11所示的S1107。
在与第二包有关的数据运算之后,并行处理部503-1从T1315开始基于运算结果C1的向运算用表214的写回(表WR)。与第二包有关的表WR相当于图11所示的S1108。
访问表需要时间,所以基于运算结果C1的向运算用表214的写回在T1318结束。此外,在表WR中,并行处理部503-1将运算结果C1作为上次运算结果1302-1加以内部保持,用于接下来接收的输入包的继续处理。
第二包是在与第一包有关的表更新处理结束前接收的包,同样,第三包是在与第二包有关的表更新处理结束之前由并行处理分配部501接收的包。因此,与第二包有关的表更新处理和与第三包有关的表更新处理相同。
但是,图13A中的设定信息702-1在T1312和开始与第三包有关的表更新处理的T1313之间,被管理者等更新。具体地说,保存在设定信息702-1中的值从设定信息X1更新为设定信息Y1。因此,并行处理部503-1在从T1313起的伪RD中取得的设定信息702-1是设定信息Y1。
此外,并行处理部503-1在从T1317起的表WR中,作为上次运算结果1302-1而保持运算结果D1。此外,在与第三包有关的表更新处理结束的T1319以后,运算结果802-1保持运算结果D1。
根据前述的处理,在T1314之后,将运算结果B1作为上次运算结果1302-1保持,所以并行处理部503-1能够在第二包有关的表更新处理中的数据运算中交接运算结果B1。此外,在T1315之后,将运算结果C1作为上次运算结果1302-1保持,所以并行处理部503-1能够在与第三包有关的表更新处理中的运算处理中交接运算结果C1。
图13B是表示本实施例1的二个并行处理部503执行表更新处理S1150时的运算结果的说明图。
图13B是表示并行处理部503-1和并行处理部503-2这两个并行处理部执行表更新处理的情况下的运算结果的变化的图。即,并行处理分配部501接收到不同的流的输入包的情况下,求出图13B所示的运算结果。
在图13B中,并行处理分配部501接收流ID“100”的第一包及第三包,连续接收流ID“200”的第二包。此外,将在流ID701中包含“200”的设定用表213的条目的设定信息702的值记载为设定信息702-2。此外,将在流ID801中包含“200”的运算用表214的条目的运算结果802的值记载为运算结果802-2。此外,上次运算结果1302-2是并行处理部503-2保持的上次运算结果。
并行处理部503-1和图13A中的与第一包有关的表更新处理同样地执行图13B中的与第一包有关的表更新处理。
图13B中的第二包是与第一包不同的流ID。因此,并行处理分配部501向并行处理部503-2发送分配通知,该分配通知包括表示新设的新设/继续参数、流ID“200”、第二包的流长、以及处理开始触发。
并且,并行处理部503-2与并行处理部503-1中的第一包的表更新处理同样地执行第二包的表更新处理。并行处理部503-2从T1312开始与第二包有关的表更新处理,到T1318为止结束与第二包有关的表更新处理。
并行处理部503-2在T1312中从设定用表213取得设定信息702-2(设定信息X2)。此外,并行处理部503-2在T1312从运算用表214取得运算结果802-2(运算结果A2)。此外,并行处理部503-2在与第二包有关的表更新处理中,将运算结果A2更新为运算结果B2。
在并行处理部503-1将运算结果B1写回运算用表214的期间,并行处理部503-2将运算结果B2写回运算用表214(T1315)。这是因为,第一包和第二包的流ID不同,在设定用表213及运算用表214的不同的条目中保存有与第一包及第二包有关的信息。并行处理部503-1和并行处理部503-2双方能够同时写回运算用表214。
此外,第三包是与第一包相同的流ID,是在与第一包有关的表更新处理结束之前由并行处理分配部501接收的包。并行处理分配部501使执行与第一包有关的表更新处理的并行处理部503-1继续执行与第三包有关的表更新处理。
由并行处理部503-1进行的与第三包有关的表更新处理和图13A所示的与第三包有关的表更新处理相同。但是,并行处理部503-1从上次运算结果1302-1取得运算结果B1,将运算结果B1更新为运算结果C1。
另外,在本实施例中,最短包到达间隔都为2clk,所以由并行处理部进行的继续包处理的数据运算需要在2clk以内执行。也可以是,本实施例中的并行处理分配部501保持数据运算所需的时刻,在以比数据运算所需的时间更短的时间间隔接收到输入包的情况下,将连续接收的输入包丢弃。
如前所述,根据实施例1,包通信装置2在各并行处理部503中保持上次的运算结果,通过保持的运算结果来进行与连续接收的输入包有关的数据运算。因此,实施例1的并行处理部503不需要每次表更新处理时都访问运算用表214,能够连续执行表更新处理。
此外,能够降低向运算用表214的访问频率,减少包通信装置的耗电量。
此外,根据实施例1,使用设定用表213来执行与输入包有关的表更新处理,并且在输出判断部504中执行输入包的变换等,所以能够执行更复杂的表更新处理。
【实施例2】
以下,使用图14~图20说明本实施例2。
实施例1中的包通信装置2对各输入包执行一般的表更新处理,但是实施例2中的包通信装置基于各输入包进行频带控制。在实施例2中实现频带控制功能,所以包通信装置使用令牌桶算法。
使用令牌桶算法的情况下,包通信装置以与设定的频带对应的速度在令牌桶(保持在存储器中的规定区域)中加上令牌。并且,在令牌桶中储存有包通信装置发送的予定的包的帧长量的令牌的情况下,判断为保证频带内,发送帧长的包,并且将帧长量的令牌从令牌桶中减去。此外,在令牌桶中未储存有包通信装置发送的予定的包的帧长量的令牌的情况下,判断为保证频带外,发送帧长的包。将令牌保持,不将帧长量的令牌从令牌桶中减去。
图14是表示本实施例2的包通信装置2的物理构成及逻辑电路2210的框图。
实施例2的包通信装置22具备与图2所示的实施例1的包通信装置2相同的物理构成。具体地说,包通信装置22与图2所示的包通信装置2相同,具备多个网络接口板(NIF)(200-1~200-M)及开关部206。此外,实施例2中的NIF200也与实施例1中的NIF200相同,具备输入输出线路接口201、SW接口205、以及NIF管理部211。
但是,实施例2中的NIF200代替实施例1的逻辑电路210而具备逻辑电路2210。逻辑电路2210和逻辑电路210的不同点在于,逻辑电路2210所具备的存储器保持频带设定表2213及运算结果保持表2214。
此外,逻辑电路2210所具有的输入包控制部2203执行与实施例1的逻辑电路210所具有的输入包控制部203不同的处理。
逻辑电路2210所具备的设定寄存器2212与实施例1的设定寄存器212同样,具有临时保存数据的存储区域,与逻辑电路2210所具有的全部处理部连接。但是,设定寄存器2212伴随着输入包控制部2203的处理,保持与设定寄存器212不同的数据。以下省略设定寄存器2212的处理的说明。
实施例2中的输入头处理部202、输入包缓冲器204、输出头处理部207、输出包控制部208、以及输出包缓冲器209与实施例1中的输入头处理部202、输入包缓冲器204、输出头处理部207、输出包控制部208、以及输出包缓冲器209相同。
频带设定表2213相当于实施例1的设定用表213,保存在输入包控制部2203中执行的表更新处理中使用的设定值。此外,运算结果保持表2214相当于实施例1的运算用表214,保存在输入包控制部2203中执行的表更新处理的结果。实施例2是设定用表213及运算用表214中保存的数据与实施例1不同的情况下的实施例。
输入包控制部2203从输入头处理部202接收到输入包时,保存到输入包缓冲器204中。这时,输入包控制部2203使用频带设定表2213及运算结果保持表2214来执行包处理、即频带控制处理。频带控制处理后,读出保存在输入包缓冲器204中的包,并发送给SW接口205。
图15是表示本实施例2的输入包控制部2203的逻辑构成的框图。
输入包控制部2203具有与图5所示的输入包控制部203同样的构成。但是,输入包控制部2203和实施例1的输入包控制部203的不同点在于,输入包控制部2203具有多个并行处理部2503(并行处理部2503-1~2503-N)、输出判断部2504、以及访问调解部2505。此外,并行处理部2503、输出判断部2504、以及访问调解部2505进行与实施例1的并行处理部503、输出判断部504、以及访问调解部505不同的处理。
此外,实施例2的利用流管理列表502的并行处理部601表示并行处理部2503-1~2503-N,这点是实施例2的利用流管理列表502和实施例1的利用流管理列表502的不同点。
实施例2中的并行处理分配部501执行与实施例1中的并行处理分配部501相同的分配处理S950。
并行处理部2503执行后述的表更新处理S1850,更新运算结果保持表2214中包含的各流的信息。此外,并行处理部2503将处理判断结果(保证内或保证外)发送给输出判断部2504。
与实施例1同样,在实施例2中也预先决定并行处理部2503进行表更新处理S1850所需的时间。此外,输入包缓冲器204由并行处理分配部501及输出判断部2504作为移位寄存器使用。此外,与实施例1相同地基于表更新时间和最短包到达间隔来预先决定并行处理部2503的数量N。
输出判断部2504执行后述的输出判断处理S1950,从各并行处理部2503接收运算结束及处理判断结果(保证内或保证外)。输出判断部2504基于处理判断结果,对从输入包缓冲器204接收的输入包的头进行变换,将变换了头的输入包发送给SW接口205。
访问调解部2505与实施例1的访问调解部505同样,对从各并行处理部2503向频带设定表2213及运算结果保持表2214的访问(读出及写回)进行调解。
图16是表示本实施例2的频带设定表2213的说明图。
频带设定表2213中保存的值是并行处理部2503为了执行令牌算法而使用的设定值,是由管理者等预先决定的值。频带设定表2213包括流ID2701、周期加法令牌值2702、以及令牌桶的深度2703。
流ID2701包括唯一地表示对输入包分配的流的标识符。流ID2701中保存的值和在输入头处理部202中保存在装置内头3的流ID302中的值对应。
周期加法令牌值2702表示每单位时间在令牌桶中追加的令牌量(相当于每单位时间储存的保证频带)。
令牌桶的深度2703表示令牌桶能够保持的最大的令牌量。
图17是表示本实施例2的运算结果保持表2214的说明图。
运算结果保持表2214是用于判断能否通过保证频带发送包的表。运算结果保持表2214包括流ID2801、上次包到达时刻2802、以及保持令牌值2803。
流ID2801包括唯一地表示对输入包分配的流的流ID。流ID2801中保存的值和在输入头处理部202中保存在装置内头3的流ID302中的值对应。
上次包到达时刻2802表示在并行处理部2503中上次执行的表更新处理被执行的时刻。保持令牌值2803表示通过上次执行的表更新处理计算出的、储存在令牌桶中的令牌量。即,上次包到达时刻2802表示计算保持令牌值2803中保存的值的时刻。
通过图18A及图18B说明并行处理部2503执行的表更新处理S1850。
图18A是表示本实施例2的并行处理部2503所执行的表更新处理S1850中的、计算到接收输入包为止储存的令牌量的处理的流程图。
并行处理部2503从并行处理分配部501接收到包括处理开始触发的分配通知的情况下(S1800),取得分配通知中包含的新设/继续参数、流ID、以及帧长(S1801)。
在S1801之后,并行处理部2503判断新设/继续参数是否为“0”、即新设/继续参数是否表示新设(S1802)。
在S1802中判断为新设/继续参数为“0”的情况下、即判断为新设/继续参数表示新设的情况下,并行处理部2503将在S1801中取得的流ID、即输入包的流ID作为检索关键字,检索频带设定表2213。然后,检索的结果是,并行处理部2503取得在流ID2701中包含输入包的流ID的频带设定表2213的条目的周期加法令牌值2702的值、以及令牌桶的深度2703的值(S1803)。
另外,并行处理部2503将在S1803中检索频带设定表2213的时刻保持到逻辑电路2210的存储器中。
在S1803之后,并行处理部2503将输入包的流ID作为检索关键字,检索运算结果保持表2214。然后,检索的结果是,并行处理部2503取得在流ID2801中包含输入包的流ID的运算结果保持表2214的条目的上次包到达时刻2802的值、以及保持令牌值2803的值(S1804)。
在S1804之后,并行处理部2503将在S1803中检索频带设定表2213的时刻作为上次表更新时刻加以内部保持,用于接下来接收的输入包的继续处理(S1805)。
在S1805之后,并行处理部2503计算在S1804中检索内部保持的频带设定表2213的时刻和在S1804中取得的上次包到达时刻2802之差,作为包到达间隔。然后,并行处理部2503将计算的包到达间隔和在S1804中取得的周期加法令牌值2702相乘,从而计算加法令牌量(S1806)。
在S1806之后,并行处理部2503将在S1806中计算的加法令牌量和在S1804中取得的保持令牌值2803的值相加(S1807)。在S1807之后,进入图18B所示的S1813的处理。
在S1802中判断为新设/继续参数不为“0”的情况下、即判断为新设/继续参数表示继续的情况下,并行处理部2503进行与S1803相同的处理(S1808)。并行处理部2503通过S1808,取得与输入包对应的周期加法令牌值2702的值、以及令牌桶的深度2703的值。
此外,并行处理部2503将在S1808中检索频带设定表2213的时刻保持到逻辑电路2210的存储器中。
在S1808之后,并行处理部2503取得为了继续处理而内部保持的上次表更新时刻,作为上次包到达时刻(S1809)。
在S1809之后,并行处理部2503进行与S1805相同的处理(S1810)。具体地说,在S1810中,并行处理部2503将在S1808中检索频带设定表2213的时刻作为上次表更新时刻加以内部保持,用于接下来接收的输入包的继续处理。
在S1810之后,并行处理部2503计算在S1809中取得的上次包到达时刻和在S1808中检索所保持的频带设定表2213的时刻之差,作为包到达间隔。然后,并行处理部2503将计算的包到达间隔和在S1809中取得的周期加法令牌值2702相乘,从而计算加法令牌量(S1811)。
在S1811之后,并行处理部2503取得为了继续处理而内部保持的上次保持令牌值,将取得的上次保持令牌值和在S1811中计算的加法令牌量相加(S1812),进入S1813的处理。另外,在S1811中取得的上次保持令牌值是在图18B所示的S1822中保持的值。
S1807或S1812中的加法结果是到接收输入包为止储存在令牌桶中的令牌量。
在S1802~S1812的处理中,除此之外,实施例2的并行处理部2503也可以按照新设/继续参数的值进行不同的处理。例如新设/继续参数表示新设的情况下,并行处理部2503也可以将作为S1807的结果的加法结果和由用户预先赋予的值相加。
由此,在输入包连续接收的情况和输入包不连续接收的情况下,都能够按照用户的要求,对更新后的运算结果的值进行变更。
图18B是表示本实施例2的并行处理部2503所执行的表更新处理S1850中的、判断输入包是否为频带保证内的处理的流程图。
在S1807或S1812之后,并行处理部2503判断S1807或S1812中的加法结果是否超过在S1803或S1808中取得的令牌桶的深度2703的值(1813)。
在S1813中判断为S1807或S1812中的加法结果为令牌桶的深度2703的值以下的情况下,并行处理部2503保持S1807或S1812中的加法结果,作为当前令牌量(S1814)。在S1814之后,并行处理部2503进入S1816的处理。
此外,在S1813中判断为S1807或S1812中的加法结果超过令牌桶的深度2703的值的情况下,并行处理部2503保持令牌桶的深度2703的值,作为当前令牌量(S1815)。在S1815之后,并行处理部2503进入S1816。
在S1814或S1815之后,并行处理部2503判断在S1801中取得的输入包的帧长是否为在S1814或S1815中保持的当前令牌量以内(S1816)。
在S1816中判断为输入包的帧长为当前令牌量以内的情况下,并行处理部2503计算从当前令牌量减去输入包的帧长量而得到值,作为更新保持令牌值(S1817)。更新保持令牌值表示发送输入包之后的令牌桶中剩余的令牌量。
在S1817之后,并行处理部2503生成表示频带控制结果为保证内的处理判断结果,并将生成的处理判断结果发送给输出判断部2504(S1818)。在S1818之后,并行处理部2503进入S1821。
在S1816中判断为输入包的帧长超过当前令牌量的情况下,并行处理部2503保持与当前令牌量相同的值,作为更新保持令牌值(S1819)。
在S1819之后,并行处理部2503生成表示频带控制结果为保证外的通知,并将生成的通知发送给输出判断部2504(S1820)。在S1820之后,并行处理部2503进入S1821。
另外,也可以是,并行处理部2503在S1818或S1820中生成表示频带控制结果为保证内或保证外的处理判断结果,在后述的S1823中,将生成的处理判断结果和表示运算结束的通知发送给输出判断部2504。
在S1818及S1820中,通过发送或生成频带控制结果,并行处理部2503能够对输入包进行按照频带控制结果的处理。
在S1818或S1820之后,并行处理部2503利用在S1803或S1808中检索所保持的频带设定表2213的时刻,更新运算结果保持表2214的上次包到达时刻2802。此外,并行处理部2503将更新保持令牌值写回运算结果保持表2214的保持令牌值2803中(S1821)。
在S1821之后,并行处理部2503将更新保持令牌值作为上次保持令牌值加以内部保持,用于接下来接收的输入包的继续处理(S1822)。
在S1822之后,并行处理部2503生成包括表示输入包的流ID等、并且表示运算结束的通知,并将生成的通知发送给输出判断部2504(S1823)。在S1823之后,结束图18A及图18B所示的处理(S1824)。
以下说明输出判断部2504所执行的输出判断处理S1950。
图19是表示本实施例2的输出判断部2504所执行的输出判断处理S1950的流程图。
输出判断部2504从并行处理部2503接收到表示运算结束的通知的情况下(S1900),从输入包缓冲器204读出所接收的通知所示的输入包。然后,输出判断部2504确定发送了表示运算结束的通知的并行处理部2503和从同一并行处理部2503发送的处理判断结果(保证内或保证外)。
然后,输出判断部2504按照表示所确定的处理结果的通知,更新包含在读出的输入包中的CoS值等(S1901)。然后,输出判断部2504将更新了CoS值等的输入包发送给SW接口205。
然后,输出判断部2504在S1901之后,结束图19所示的输出判断处理S1950(S1902)。
图20是表示本实施例2的表更新处理S1850导致的上次包到达时刻及保持令牌值的变化的说明图。
图20表示表更新时间为10clk、最短包到达间隔为2clk的情况下,并行处理部2503-1连续接收同一流ID为“100”的输入包的例子。此外,在图20中,第一包、第二包及第三包的帧长为“80”。
实施例2的第一包与实施例1的第一包相同,是通过并行处理分配部501的处理(S904)决定为使并行处理部2503-1新执行表更新处理的输入包。
实施例2的并行处理部2503-1在从并行处理分配部501接收到表示新设的新设/继续参数、第一包的流ID、处理开始触发的定时(T2011),将第一包的流ID“100”作为检索关键字,检索频带设定表2213及运算结果保持表2214。然后,检索的结果是,并行处理部2503-1取得周期加法令牌值、令牌桶的深度、上次包到达时刻、以及保持令牌值(表RD)。
与第一包有关的表RD相当于图18A所示的S1800~S1805。
此外,并行处理部2503-1在与第一包有关的表RD中,将检索频带设定表2213的时刻作为上次表更新时刻2002加以内部保持,用于接下来接收的输入包的继续处理(相当于S1805)。另外,在图20所示的与第一包有关的表RD中,检索频带设定表2213的时刻是“2020”。
在图20所示的与第一包有关的表RD中,检索了频带设定表2213及运算结果保持表2214的结果是,并行处理部2503-1作为周期加法令牌值2702的值而取得“10”,作为令牌桶的深度2703的值而取得“1000”,作为上次包到达时刻2802的值而取得“2000”,作为保持令牌值2803的值而取得“100”。此外,并行处理部2503-1在与第一包有关的表RD中内部保持的上次表更新时刻2002的值是“2020”。
在与第一包有关的表RD之后,并行处理部2503-1使用在与第一包有关的表RD中取得的、检索频带设定表2213的时刻“2020”、周期加法令牌值2702的值“10”、令牌桶的深度2703的值“1000”、上次包到达时刻2802的值“2000”、以及保持令牌值2803的值“100”,计算保持令牌值2803的值“220”(数据运算)。在此,计算的保持令牌值是通过{(2020-2000)×10+100-80=220}是计算出的。
此外,并行处理部2503-1在与第一包有关的数据运算中,取得检索频带设定表2213的时刻,作为上次包到达时刻。即,在数据运算中取得的上次包到达时刻和表RD中的上次表更新时刻2002是相同的值。
前述的与第一包有关的数据运算相当于图18A的S1806、S1807、S1813、S1814、S1816~S1818。
从与第一包有关的数据运算结束的定时(T2014),并行处理部2503-1开始将取得的上次包到达时刻的值“2020”及计算出的保持令牌值的值“220”写回运算结果保持表2214的上次包到达时刻2802及保持令牌值2803(表WR)。与第一包有关的表WR相当于图18B的S1821。
更新运算结果保持表2214需要规定的时间,所以取得的上次包到达时刻2802的值“2020”及计算出的保持令牌值2803的值“220”在T2016的定时被反映到运算结果保持表2214中。
此外,在与第一包有关的表WR中,并行处理部2503-1将计算的保持令牌值的值“220”作为上次保持令牌值2003加以内部保持,用于接下来接收的输入包的继续处理。该处理相当于图18的S1822。
第二包在第一包的表更新处理结束之前由并行处理分配部501接收。因此,第二包是在并行处理分配部501的处理(S904)中被决定为使并行处理部2503-1继续执行表更新处理的输入包。
并行处理部2503-1在从并行处理分配部501接收到分配通知的定时(T2012),将第二包的流ID作为检索关键字,检索频带设定表2213,该分配通知包括表示继续的新设/继续参数、第二包的流ID、以及处理开始触发。
检索的结果是,并行处理部2503-1从频带设定表2213取得周期加法令牌值2702的值“10”及令牌桶的深度2703的值“1000”(伪RD)。前述的与第二包有关的伪RD相当于S1800~S1802及S1808。
第二包是在与第一包有关的表更新处理结束之前接收的包,所以在与第二包有关的伪RD中,并行处理部2503-1不访问运算结果保持表2214。实施例2中的伪RD表示仅参照频带设定表2213而不从运算结果保持表2214取得值的处理。
此外,在与第二包有关的伪RD中,并行处理部2503-1取得在与第一包有关的表更新处理中内部保持的上次表更新时刻2002的值“2020”,作为上次包到达时刻(相当于S1809)。
此外,在与第二包有关的伪RD中,并行处理部2503-1将检索前述的频带设定表2213的时刻“2022”作为上次表更新时刻2002加以内部保持,用于接下来接收的输入包的继续处理(相当于S1810)。
在此,并行处理部2503-1在与第二包有关的伪RD中交接后述的上次保持令牌值之前,使用检索频带设定表2213的时刻“2022”、周期加法令牌值2702的值“10”、以及上次包到达时刻2802的值“2020”,计算加法令牌量(数据运算)。第二包的数据运算相当于图18A的S1811。在此计算的加法令牌量是通过(2022-2020)×10=20而计算出的。
并行处理部2503-1在第二包的数据运算中,将与第一包有关的表更新处理时内部保持的上次保持令牌值2003的值“220”交接给与第二包有关的表更新处理中(相当于图18A的S1812)。
然后,在与第二包有关的数据运算中,并行处理部2503-1计算被更新的上次表更新时刻和被更新的保持令牌值。相当于图18A的S1812、图18B的S1813、S1814、S1816~S1818。在此计算的更新后的保持令牌值是通过20+220-80=160而计算出的。
并行处理部2503-1从与第二包有关的数据运算结束的定时T2015,开始将取得的上次包到达时刻“2022”及计算出的保持令牌值“160”写回运算结果保持表2214(表WR)。与第二包有关的数据运算相当于图18B的S1821。
更新运算结果保持表2214需要规定的时间,所以在T2018的定时,取得的上次包到达时刻“2022”及计算出的保持令牌值“160”被反映到运算结果保持表2214中。
此外,并行处理部2503-1在与第二包有关的数据运算中,将计算的保持令牌值“160”作为上次保持令牌值2003加以内部保持,用于接下来接收的输入包的继续处理(相当于S1822)。
第二包是在与第一包有关的表更新处理的结束前接收的输入包,与此相同,第三包是在与第二包有关的表更新处理结束之前由并行处理分配部501接收的输入包。因此,与第二包有关的表更新处理和与第三包有关的表更新处理同样。
但是,图20中的周期加法令牌值2702的值在T2012和与第三包有关的表更新处理开始的T2013之间,由管理者等更新。具体地说,保存在周期加法令牌值2702中的值从“10”更新为“30”。因此,并行处理部2503-1在从T2013起的伪RD中取得的周期加法令牌值2702的值为“30”。
此外,并行处理部2503-1在从T2017起的表WR中,作为上次保持令牌值2003而保持“140”{=(2024-2022)×30+160-80}。此外,在与第三包有关的表更新处理结束的T2019以后的运算结果保持表2214中,上次包到达时刻2802保存“2024”,保持令牌值2803保存“140”。
根据前述的处理,在T2014之后,并行处理部2503-1保持通过与第一包有关的表更新处理而得到的上次表更新时刻2002及上次保持令牌值2003,所以在与第二包有关的表更新处理中的运算处理中,能够交接上次表更新时刻2002及上次保持令牌值2003。此外,在T2015之后,并行处理部2503-1保持通过与第二包有关的表更新处理得到的上次表更新时刻2002及上次保持令牌值2003,所以在与第二包有关的表更新处理中的运算处理中,能够交接上次表更新时刻2002及上次保持令牌值2003。
通过以上处理,根据实施例2,与实施例1的效果同样,实施例2的并行处理部2503不需要每次表更新处理都访问运算结果保持表2214,就能够连续执行用于执行频带控制功能的表更新处理。
此外,能够降低向运算结果保持表2214的访问频率,减少包通信装置的耗电。
此外,根据实施例2,执行使用令牌桶的算法的表更新处理,并且按照表更新处理的执行结果,在输出判断部504中执行输入包的变换等,所以能够进行更合适的频带控制。
【实施例3】
以下使用图21~图25说明本实施例3。
在实施例3中,在统计计数功能中应用本发明。在实施例3中,作为包管理功能的统计信息,对接收包数及接收字节数进行计数。
图21是表示本实施例3的包通信装置32的物理构成及逻辑电路3210的框图。
实施例3的包通信装置32具备与图2所示的实施例1的包通信装置2相同的物理构成。具体地说,包通信装置32与图2所示的包通信装置2相同,具备多个网络接口板(NIF)200(200-1~200-M)及开关部206。此外,实施例3中的NIF200也与实施例1中的NIF200相同,具备输入输出线路接口201、SW接口205及NIF管理部211。
但是,实施例3中的NIF200代替实施例1的逻辑电路210而具备逻辑电路3210。逻辑电路3210和逻辑电路210的不同点在于,逻辑电路3210所具备的存储器不保持设定用表213、输入包缓冲器204及输出包缓冲器209,而保持统计信息表3213。
此外,逻辑电路3210所具有的输入包控制部3203及输出包控制部3208执行与逻辑电路210所具有的输入包控制部203及输出包控制部208不同的处理。
逻辑电路3210所具备的设定寄存器3212与实施例1的设定寄存器212同样,具有临时保存数据的存储区域,与逻辑电路3210所具有的全部处理部连接。但是,设定寄存器3212伴随着输入包控制部3203的处理,保存与设定寄存器212不同的数据。以下省略设定寄存器2212的处理的说明。
实施例3中的输入头处理部202及输出头处理部207与实施例1中的输入头处理部202及输出头处理部207相同。
统计信息表3213相当于实施例1的运算用表214,保存在输入包控制部3203中执行的表更新处理的结果。实施例3是本实施例的通信装置不使用实施例1的设定用表213的情况的实施例。
输入包控制部3203从输入头处理部202接收到输入包的情况下,使用统计信息表3213执行包处理、即统计计数处理。输入包控制部3203不在输入包缓冲器中保存包,而是在执行统计计数处理的同时,向SW接口205发送包。
图22是表示本实施例3的输入包控制部3203的物理构成的框图。
输入包控制部3203具有与图5所示的输入包控制部203同样的构成。但是,输入包控制部3203和实施例1的输入包控制部203的不同点在于,输入包控制部3203具有并行处理部3503(3503-1~3503-N)及访问调解部3505,不具有输出判断部及输入包缓冲器。此外,并行处理部3503及访问调解部505的处理与实施例1的并行处理部503及访问调解部505的处理不同。
此外,实施例3的利用流管理列表502的并行处理部601表示并行处理部3503-1~3503-N,这是实施例3的利用流管理列表502和实施例1的利用流管理列表502的不同点。
实施例3中的并行处理分配部501执行与实施例1中的并行处理分配部501相同的分配处理S950。但是,实施例3中的并行处理分配部501接收到输入包的情况下,开始分配处理S950,并且将接收的输入包发送给SW接口205。
并行处理部3503执行后述的表更新处理S2450,更新统计信息表3213中包含的各流的信息。
与实施例1相同,在实施例3中,并行处理部3503进行表更新处理S2450所需的时间也预先决定。此外,与实施例1相同地基于表更新时间和最短包到达间隔预先决定并行处理部3503的数量N。
访问调解部3505与实施例1的访问调解部505同样,对向各并行处理部3503的统计信息表3213的访问(读出及写回)进行调解。
图23是表示本实施例3的统计信息表3213的说明图。
统计信息表3213是具有与包通信装置32接收的包有关的信息的表。统计信息表3213包括流ID3701、接收包数3702、以及接收字节数3703。
流ID3701包括输入包的流ID。接收包数3702包括并行处理分配部501接收的输入包的数量。接收字节数3703表示并行处理分配部501接收的输入包的字节数的合计值。
以下说明并行处理部3503-1~3503-N执行的表更新处理S2450。
图24是表示本实施例3的并行处理部3503所执行的表更新处理S2450的流程图。
并行处理部3503在从并行处理分配部501接收到包括处理开始触发的分配通知的情况下(S2400),取得分配通知中包含的新设/继续参数、流ID、以及帧长(S2401)。
在S2401之后,并行处理部3503判断分配通知中包含的新设/继续参数是否为“0”、即判断新设/继续参数是否表示新设(S2402)。
在S2402中判断为新设/继续参数为“0”的情况下、即判断为新设/继续参数表示新设的情况下,并行处理部3503将在S2401中取得的流ID、即输入包的流ID作为检索关键字,检索统计信息表3213。然后,检索的结果是,并行处理部3503取得接收包数3702及接收字节数3703(S2403)。在S2403之后,进入S2405的处理。
在S2402中判断为新设/继续参数不表示“0”、即判断为新设/继续参数表示继续的情况下,并行处理部3503取得并行处理部3503为了继续处理而内部保持的上次接收包数及上次接收字节数(S2404)。在S2404之后,进入S2405的处理。
在S2403或S2404之后,并行处理部3503对接收包数(在S2403中取得的接收包数3702或在S2404中取得的上次接收包数)加上“1”。然后,并行处理部3503取得加法结果,作为更新后的接收包数。
此外,并行处理部3503对接收字节数(在S2403中取得的接收字节数3703或在S2404中取得的上次接收字节数)加上在S2401中取得的帧长量。然后,并行处理部3503取得加法结果,作为更新后的接收字节数(S2405)。
在S2405之后,并行处理部3503将更新后的接收包数写回统计信息表3213的接收包数3702,将更新后的接收字节数写回统计信息表3213的接收字节数3703。
然后,在S2405中,并行处理部3503将更新后的接收包数及更新后的接收字节数作为上次接收包数及上次接收字节数加以内部保持,用于下一包的继续处理(S2406)。在S2406之后,并行处理部3503结束表更新处理S2450(S2407)。
图25是表示本实施例3的并行处理部3503执行的表更新处理导致的、接收包数及接收字节数的变化的说明图。
图25表示在表更新时间为10clk、且最短包到达间隔为2clk的情况下,并行处理部3503-1以2clk间隔连续接收同一流ID“100”的输入包的例子。此外,在图25中,输入包的帧长为“80”。
第一包是通过并行处理分配部501的处理(S904)而被决定为使并行处理部3503-1新执行表更新处理的输入包。
实施例3的并行处理部3503-1在从并行处理分配部501接收到分配通知的定时(T2511),将第一包的流ID作为检索关键字,检索统计信息表3213,该分配通知包括表示新设的新设/继续参数、第一包的流ID、第一包的帧长、以及处理开始触发。并且,检索的结果是,并行处理部3503-1取得与第一包的流ID对应的接收包数3702及接收字节数3703(表RD)。
与第一包有关的表RD相当于图24所示的S2400~S2403。在图25所示的与第一包有关的表RD中取得的接收包数3702的值为“10”,接收字节数3703的值为“1000”。
并行处理部3503-1对取得的接收包数的值“10”加上“1”,对读出的接收字节数的值“1000”加上第一包的帧长“80”。然后,并行处理部3503-1取得加法结果,作为更新后的接收包数“11”及更新后的接收字节数“1080”(数据运算)。
从数据运算结束的定时(T2514)起,并行处理部3503-1将更新后的接收包数“11”及更新后的接收字节数“1080”写回统计信息表3213(表WR)。与第一包有关的表WR相当于S2405。
访问表需要时间,所以在T2516的定时,更新后的接收包数“11”及更新后的接收字节数“1080”被反映到统计信息表3213中。
此外,并行处理部3503-1在从T2514起的表WR中,将更新后的接收包数“11”及更新后的接收字节数“1080”作为上次接收包数3512及上次接收字节数3513加以内部保持,用于下一包的继续处理。将更新后的接收包数“11”及更新后的接收字节数“1080”内部保持的处理相当于S2406。
在第一包的表更新处理结束之前由并行处理分配部501接收第二包。并行处理分配部501决定为使并行处理部3503-1继续执行第二包。
并行处理部3503-1在从并行处理分配部501接收到分配通知的定时(T2512),由于基于与第一包有关的表更新处理的表WR尚未结束,所以不访问统计信息表3213,该分配通知包括表示继续的新设/继续参数、第二包的流ID、第二包的流长、以及处理开始触发。
因此,在实施例3的与第二包有关的表更新处理中,不执行表RD或伪RD。
并行处理部3503-1在T2514之后,交接在与第一包有关的表更新处理时内部保持的上次接收包数3512“11”及上次接收字节数3513“1080”,开始与第二包有关的数据运算。到T2514为止的处理相当于图24所示的S2400~S2402及S2404。
另外,包到达间隔为2clk,所以并行处理部3503-1在2clk以内实施交接了上次接收包数3512及上次接收字节数3513之后的数据运算。并行处理部3503-1为了执行数据运算而需要包到达间隔以上的时间的情况下,也可以在并行处理分配部501中将输入包丢弃。
并行处理部3503-1在与第二包有关的数据运算中,对交接来的上次接收包数3512“11”加上“1”,对上次接收字节数3513“1080”加上帧长量“80”。然后,并行处理部3503-1取得加法结果,作为更新后的接收包数“12”及更新后的接收字节数“1160”。
从数据运算结束的定时T2515起,并行处理部3503-1将更新后的接收包数“12”及更新后的接收字节数“1160”写回统计信息表3213(表WR)。从T2515起的表WR相当于图24的S2405。
访问表需要时间,所以在T2518的定时,更新后的接收包数“12”及更新后的接收字节数“1160”被反映到统计信息表3213中。
此外,并行处理部3503-1在从T2515起的表WR中,将更新后的接收包数“12”及更新后的接收字节数“1160”作为上次接收包数3512及上次接收字节数3513加以内部保持,用于下一包的继续处理。将更新后的接收包数“12”及更新后的接收字节数“1160”内部保持的处理相当于图11的S2406。
此外,实施例3的第三包与实施例1或实施例2的第二包同样,在与第二包有关的表更新处理结束之前被并行处理分配部501接收,所以与第二包有关的表更新处理和与第三包有关的表更新处理同样。
并行处理部3503-1在从T2517起的表WR中,作为上次接收包数3512及上次接收字节数3513而保持“13”及“1240”。此外,与第三包有关的表更新处理结束的T2519以后,接收包数3702-1保存“13”,接收字节数3703-1保存“1240”。
通过以上处理,根据实施例3,与实施例1的效果同样,包通信装置2在各并行处理部3503中保持上次的运算结果,通过保持的运算结果来执行与连续接收的输入包有关的数据运算。因此,实施例3的并行处理部3503不需要每次表更新处理都访问统计信息表3213,就能够连续执行用于执行包管理功能的表更新处理。
此外,能够降低向运算用表214的访问频率,减少包通信装置的耗电。
另外,本实施例中的并行处理部也可以按照新设/继续参数的值而进行不同的处理。具体地说,在图11所示的S1102~S1106中,在图18A所示的S1802~S1812中,或在图24所示的S2402~S2402中,按照新设/继续参数表示继续的情况和新设/继续参数表示新设的情况,并行处理部执行由用户预先赋予的不同的处理。
由此,本实施例的并行处理部在连续接收输入包的情况和不连续接收输入包的情况下,都能够按照用户的要求来变更被更新的运算结果的值。
符号的说明:
2      包通信装置
200    网络接口板
201    输入输出线路接口
202    输入头处理部
203    输入包控制部
204    输入包缓冲器
205    SW接口
206    开关部
207    输出头处理部
208    输出包控制部
209    输出包缓冲器
210    逻辑电路
211    NIF管理部
212    设定寄存器
213    设定用表
214    运算用表
501    并行处理分配部
502    利用流管理列表
503    并行处理部
504    输出判断部
505    访问调解部
2203   输入包控制部
2210   逻辑电路
2212   设定寄存器
2213   频带设定表
2214   运算结果保持表
2503   并行处理部
2504   输出判断部
2505   访问调解部
3203   输入包控制部
3208   输出包控制部
3210   逻辑电路
3212   设定寄存器
3213   统计信息表

Claims (14)

1.一种通信装置,与网络连接,其特征在于,
所述通信装置具有:
输入接口,接收从所述网络发送的包;
多个并行处理部,执行与所述包有关的处理;
并行处理分配部,向所述各并行处理部分配与所述包有关的处理;以及
运算用表,包括表示与所述包有关的处理的执行结果的值以及对所述包分配的流ID;
所述各并行处理部保持执行了在该并行处理部中执行的与所述包有关的处理而得到的执行结果,
所述并行处理分配部保持利用流管理列表,该利用流管理列表包括对由所述各并行处理部执行处理的所述包分配的流ID以及表示所述各并行处理部中的与所述包有关的处理的状况的值;
所述并行处理分配部在接收到第一包的情况下,基于所述利用流管理列表和对所述第一包分配的流ID,判断与第二包有关的处理是否为执行中,所述第二包被分配了与所述第一包相对应的所述流ID;
所述并行处理分配部按照所述判断结果,决定执行与所述第一包有关的处理的并行处理部和向该并行处理部发送的分配通知中包含的参数;
所述并行处理分配部将与所述第一包有关的信息包含在所述分配通知中,并发送给所决定的所述并行处理部;
所决定的所述并行处理部在接收到所述分配通知的情况下,按照接收的所述分配通知,从所述运算用表或保持在该并行处理部中的执行结果取得与所述第二包有关的处理的执行结果;
所决定的所述并行处理部使用取得的所述与所述第二包有关的执行结果和所述分配通知中包含的信息,执行与所述第一包有关的处理;
所决定的所述并行处理部利用执行了与所述第一包有关的处理而得到的执行结果,更新所述运算用表。
2.如权利要求1所述的通信装置,其特征在于,
表示所述利用流管理列表中包含的处理的状况的值,是表示从所述各并行处理部开始与所述包有关的处理起经过的执行时间的值,
所述并行处理分配部在接收到所述第一包的情况下,基于对所述第一包分配的流ID和所述利用流管理列表,取得表示执行与所述第二包有关的处理的并行处理部从开始与所述第二包有关的处理起经过的执行时间的值;
所述并行处理分配部基于取得的所述表示执行时间的值,判断与所述第二包有关的处理是否为执行中;
在所述判断结果是与所述第二包有关的处理为执行中的情况下,所述并行处理分配部将执行与所述第二包有关的处理的所述并行处理部决定为执行与所述第一包有关的处理的并行处理部,并且将所述参数决定为表示继续的值;
所决定的所述并行处理部在接收的所述分配通知中包含有表示继续的所述参数的情况下,从保持在该并行处理部中的执行结果,取得与所述第二包有关的处理的执行结果。
3.如权利要求1或2所述的通信装置,其特征在于,
所述通信装置具有设定用表,该设定用表包括:与所述包有关的处理中使用的规定的设定值以及对所述包分配的流ID;
所述分配通知中包含的与所述第一包有关的信息包括对所述第一包分配的流ID;
所决定的所述并行处理部在接收到所述分配通知的情况下,按照所接收的所述分配通知,从所述设定用表读出与所述第一包有关的处理中使用的规定的设定值;
所决定的所述并行处理部使用取得的所述与第二包有关的处理的执行结果、所述分配通知中包含的与第一包有关的信息、以及读出的所述规定的设定值,执行与所述第一包有关的处理。
4.如权利要求3所述的通信装置,其特征在于,
所述设定用表中包含的规定的设定值包括:与所述流ID对应的令牌桶中追加的每单位时间的令牌量以及储存在所述令牌桶中的令牌的最大量;
与所述包有关的处理的执行结果包括:储存在所述令牌桶中的令牌量以及计算储存在所述令牌桶中的令牌量的最新时刻;
所述分配通知中包括的与所述第一包有关的信息包括所述第一包的帧长,
在所决定的所述并行处理部执行与所述第一包有关的处理的结果是,判断为到接收所述第一包为止储存在所述令牌桶中的令牌量低于所述第一包的帧长的情况下,所决定的所述并行处理部输出表示所述第一包的发送为保证外的信息,
在所决定的所述并行处理部执行与所述第一包有关的处理的结果是,判断为到接收所述第一包为止储存在所述令牌桶中的令牌量为所述第一包的帧长以上的情况下,所决定的所述并行处理部输出表示所述第一包的发送为保证内的信息。
5.如权利要求3所述的通信装置,其特征在于,
所述通信装置还具有:
包缓冲器,保持经由所述输入接口接收的所述包;以及
输出判断部,改写所述包的头;
所述并行处理分配部在接收到所述第一包的情况下,将所述第一包保存到包缓冲器中,
所决定的所述并行处理部按照执行了与所述第一包有关的处理的结果,向所述输出判断部发送改写所述第一包的头的指示,
所述输出判断部按照改写所述第一包的头的指示,从所述包缓冲器取得所述第一包,并改写所取得的所述第一包的头。
6.如权利要求1或2所述的通信装置,其特征在于,
所述分配通知中包含的与所述第一包有关的信息包括所述第一包的帧长,
与所述包有关的处理的执行结果包括:所述通信装置接收的所述包的数量以及所述通信装置接收的所述包的字节数,
所决定的所述并行处理部使用取得的所述与所述第二包有关的执行结果和所述分配通知中包含的信息,对所述通信装置接收到的所述第二包的数量加上1,将所述通信装置接收到的所述第二包的字节数和所述第一包的帧长相加,来执行与所述第一包有关的处理。
7.如权利要求1或2所述的通信装置,其特征在于,
所述并行处理部保持与所述参数所示的值对应的处理方法,
所决定的所述并行处理部使用取得的所述与所述第二包有关的执行结果和所述分配通知中包含的信息,通过与所述参数所示的值对应的处理方法,执行与所述第一包有关的处理。
8.一种通信方法,是与网络连接的通信装置进行的通信方法,其特征在于,
所述通信装置具有:
输入接口,接收从所述网络发送的包;
多个并行处理部,执行与所述包有关的处理;
并行处理分配部,向所述各并行处理部分配与所述包有关的处理;以及
运算用表,包括表示与所述包有关的处理的执行结果的值以及对所述包分配的流ID;
所述各并行处理部保持执行了在该并行处理部中执行的与所述包有关的处理而得到的执行结果,
所述并行处理分配部保持利用流管理列表,该利用流管理列表包括对由所述各并行处理部执行处理的所述包分配的流ID以及表示所述各并行处理部中的与所述包有关的处理的状况的值;
所述通信方法为,
所述并行处理分配部在接收到第一包的情况下,基于所述利用流管理列表和对所述第一包分配的流ID,判断与第二包有关的处理是否为执行中,所述第二包被分配了与所述第一包相对应的所述流ID;
所述并行处理分配部按照所述判断结果,决定执行与所述第一包有关的处理的并行处理部和向该并行处理部发送的分配通知中包含的参数;
所述并行处理分配部将与所述第一包有关的信息包含在所述分配通知中,并发送给所决定的所述并行处理部;
所决定的所述并行处理部在接收到所述分配通知的情况下,按照接收的所述分配通知,从所述运算用表或保持在该并行处理部中的执行结果取得与所述第二包有关的处理的执行结果;
所决定的所述并行处理部使用取得的所述与所述第二包有关的执行结果和所述分配通知中包含的信息,执行与所述第一包有关的处理;
所决定的所述并行处理部利用执行了与所述第一包有关的处理而得到的执行结果,更新所述运算用表。
9.如权利要求8所述的通信方法,其特征在于,
表示所述利用流管理列表中包含的处理的状况的值,是表示从所述各并行处理部开始与所述包有关的处理起经过的执行时间的值,
所述通信方法为,
所述并行处理分配部在接收到所述第一包的情况下,基于对所述第一包分配的流ID和所述利用流管理列表,取得表示执行与所述第二包有关的处理的并行处理部从开始与所述第二包有关的处理起经过的执行时间的值;
所述并行处理分配部基于取得的所述表示执行时间的值,判断与所述第二包有关的处理是否为执行中;
在所述判断结果为与所述第二包有关的处理为执行中的情况下,所述并行处理分配部将执行与所述第二包有关的处理的所述并行处理部决定为执行与所述第一包有关的处理的并行处理部,并且将所述参数决定为表示继续的值;
所决定的所述并行处理部在接收的所述分配通知中包含有表示继续的所述参数的情况下,从保持在该并行处理部中的执行结果,取得与所述第二包有关的处理的执行结果。
10.如权利要求8或9所述的通信方法,其特征在于,
所述通信装置具有设定用表,该设定用表包括:与所述包有关的处理中使用的规定的设定值以及对所述包分配的流ID;
所述分配通知中包含的与所述第一包有关的信息包括对所述第一包分配的流ID;
所述通信方法为,
所决定的所述并行处理部在接收到所述分配通知的情况下,按照接收的所述分配通知,从所述设定用表读出与所述第一包有关的处理中使用的规定的设定值;
所决定的所述并行处理部使用取得的所述与第二包有关的处理的执行结果、所述分配通知中包含的与第一包有关的信息、以及读出的所述规定的设定值,执行与所述第一包有关的处理。
11.如权利要求10所述的通信方法,其特征在于,
所述设定用表中包含的规定的设定值包括:与所述流ID对应的令牌桶中追加的每单位时间的令牌量以及储存在所述令牌桶中的令牌的最大量;
与所述包有关的处理的执行结果包括:储存在所述令牌桶中的令牌量以及计算储存在所述令牌桶中的令牌量的最新时刻;
所述分配通知中包括的与所述第一包有关的信息包括所述第一包的帧长,
所述通信方法为,
在所决定的所述并行处理部执行与所述第一包有关的处理的结果是,判断为到接收所述第一包为止储存在所述令牌桶中的令牌量低于所述第一包的帧长的情况下,所决定的所述并行处理部输出表示所述第一包的发送为保证外的信息,
在所决定的所述并行处理部执行与所述第一包有关的处理的结果是,判断为到接收所述第一包为止储存在所述令牌桶中的令牌量为所述第一包的帧长以上的情况下,所决定的所述并行处理部输出表示所述第一包的发送为保证内的信息。
12.如权利要求10所述的通信方法,其特征在于,
所述通信装置还具有:
包缓冲器,保持经由所述输入接口接收的所述包;以及
输出判断部,改写所述包的头;
所述通信方法为,
所述并行处理分配部在接收到所述第一包的情况下,将所述第一包保存到包缓冲器中,
所决定的所述并行处理部按照执行了与所述第一包有关的处理的结果,向所述输出判断部发送改写所述第一包的头的指示,
所述输出判断部按照改写所述第一包的头的指示,从所述包缓冲器取得所述第一包,
所述输出判断部改写所取得的所述第一包的头。
13.如权利要求8或9所述的通信方法,其特征在于,
所述分配通知中包含的与所述第一包有关的信息包括所述第一包的帧长,
与所述包有关的处理的执行结果包括:所述通信装置接收的所述包的数量以及所述通信装置接收的所述包的字节数,
所述通信方法为,
所决定的所述并行处理部使用取得的所述与所述第二包有关的执行结果和所述分配通知中包含的信息,对所述通信装置接收到的所述第二包的数量加上1,将所述通信装置接收到的所述第二包的字节数和所述第一包的帧长相加,来执行与所述第一包有关的处理。
14.如权利要求8或9所述的通信方法,其特征在于,
所述并行处理部保持与所述参数所示的值对应的处理方法,
所述通信方法为,
所决定的所述并行处理部使用取得的所述与所述第二包有关的执行结果和所述分配通知中包含的信息,通过与所述参数所示的值对应的处理方法,执行与所述第一包有关的处理。
CN2013102064094A 2012-05-31 2013-05-29 通信装置及通信方法 Pending CN103457847A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-124938 2012-05-31
JP2012124938A JP5812533B2 (ja) 2012-05-31 2012-05-31 通信装置、及び、通信方法

Publications (1)

Publication Number Publication Date
CN103457847A true CN103457847A (zh) 2013-12-18

Family

ID=48651881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013102064094A Pending CN103457847A (zh) 2012-05-31 2013-05-29 通信装置及通信方法

Country Status (4)

Country Link
US (1) US9137158B2 (zh)
EP (1) EP2670099A1 (zh)
JP (1) JP5812533B2 (zh)
CN (1) CN103457847A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016010017A (ja) * 2014-06-25 2016-01-18 株式会社日立製作所 通信装置、及び、通信方法
WO2016200390A1 (en) * 2015-06-11 2016-12-15 Hewlett Packard Enterprise Development Lp Network frame hold time parameter
JP6540296B2 (ja) * 2015-07-09 2019-07-10 富士通株式会社 ネットワークプロセッサ、通信装置、パケット転送方法及びパケット転送プログラム
CN106789695B (zh) * 2016-11-24 2020-04-03 杭州迪普科技股份有限公司 报文处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040062259A1 (en) * 2002-09-27 2004-04-01 International Business Machines Corporation Token-based active queue management
US20090116398A1 (en) * 2007-11-07 2009-05-07 Juniper Networks, Inc. Systems and methods for flow monitoring
US7990974B1 (en) * 2008-09-29 2011-08-02 Sonicwall, Inc. Packet processing on a multi-core processor

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04222049A (ja) * 1990-03-16 1992-08-12 Hewlett Packard Co <Hp> 属性データ記憶及びグラフィックスパイプラインアクセスを可能にするデータストリーム集信装置
US5864679A (en) * 1993-09-06 1999-01-26 Kabushiki Kaisha Toshiba Transaction routing in a multiple processor system using an extracted transaction feature parameter and transaction historical data
US6173386B1 (en) * 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6721309B1 (en) 1999-05-18 2004-04-13 Alcatel Method and apparatus for maintaining packet order integrity in parallel switching engine
US8762581B2 (en) * 2000-12-22 2014-06-24 Avaya Inc. Multi-thread packet processor
US8189591B2 (en) * 2001-10-30 2012-05-29 Exar Corporation Methods, systems and computer program products for packet ordering for parallel packet transform processing
JP4483535B2 (ja) * 2004-11-05 2010-06-16 株式会社日立製作所 ネットワーク装置
JP3961000B2 (ja) * 2005-05-26 2007-08-15 株式会社日立コミュニケーションテクノロジー パケット転送装置及びネットワークシステム
JP2008234059A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd データ転送装置および情報処理システム
JP5094482B2 (ja) * 2008-03-07 2012-12-12 キヤノン株式会社 処理装置及びその処理方法
US8072974B1 (en) * 2008-07-18 2011-12-06 Tellabs San Jose Inc Method and apparatus for improving packet processing performance using multiple contexts
US8255644B2 (en) * 2009-05-18 2012-08-28 Lsi Corporation Network communications processor architecture with memory load balancing
JP2011114444A (ja) * 2009-11-25 2011-06-09 Fujitsu Ltd 情報処理装置,情報生成方法,およびプログラム
US8842675B2 (en) * 2012-08-23 2014-09-23 L-3 Communications Corporation Systems and methods for multicore processing of data with in-sequence delivery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040062259A1 (en) * 2002-09-27 2004-04-01 International Business Machines Corporation Token-based active queue management
US20090116398A1 (en) * 2007-11-07 2009-05-07 Juniper Networks, Inc. Systems and methods for flow monitoring
CN101431474A (zh) * 2007-11-07 2009-05-13 丛林网络公司 用于流监控的系统和方法
US7990974B1 (en) * 2008-09-29 2011-08-02 Sonicwall, Inc. Packet processing on a multi-core processor

Also Published As

Publication number Publication date
JP5812533B2 (ja) 2015-11-17
US20130322450A1 (en) 2013-12-05
EP2670099A1 (en) 2013-12-04
JP2013251719A (ja) 2013-12-12
US9137158B2 (en) 2015-09-15

Similar Documents

Publication Publication Date Title
CN110545241B (zh) 一种报文处理方法和装置
CN103457847A (zh) 通信装置及通信方法
US8385354B2 (en) Scalable hardware mechanism to implement time outs for pending POP requests to blocking work queues
CN109962850B (zh) 实现分段路由的方法和控制器及计算机可读存储介质
US11272396B2 (en) Frame aggregation method, network setting frame sending method, and device
CN105553880A (zh) 一种软件定义网络中的数据处理方法及装置
CN104954247A (zh) 用于数据中心覆盖网络的主机网络加速器
CN103460666A (zh) 网络系统和vlan标签数据获取方法
CN101803313A (zh) 用于提供拥塞信息的方法和装置
CN106708617A (zh) 一种基于Service的应用进程保活系统及保活方法
WO2015096636A1 (zh) 一种丢包测量的方法及网络设备
CN113542043B (zh) 网络设备的数据采样方法、装置、设备及介质
CN103595566A (zh) 一种检测空闲ip地址的方法及装置
CN109246210A (zh) 物联网通信方法与装置
CN113328902A (zh) 网络性能检测方法、装置及网络设备
US9641355B2 (en) Communication device, communication method, and program
JP2016015556A (ja) ネットワークシステム、管理サーバ
CN102843287A (zh) 计算机及标识符管理方法
CN104184667A (zh) 一种M-in-M模式的SPB网络中的组播流量迁移方法和装置
CN111049906A (zh) 一种无线网桥网络统一管理的方法、装置及系统
CN106506409A (zh) 一种网管交换机的管理方法及网管交换机
CN107453971A (zh) 一种多个虚拟机之间的通信方法及系统
Carvajal et al. Atacama: An open FPGA-based platform for mixed-criticality communication in multi-segmented Ethernet networks
CN103441892B (zh) 一种基于广电网络的多用户流量统计系统
CN104052831A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131218