网络交换装置和网络交换方法

文档序号:7874200阅读:198来源:国知局
专利名称:网络交换装置和网络交换方法
技术领域
本发明涉及在多个网络间进行数据分组传送的网络交换装置和网络交换方法,更具体地,涉及可以进行与数据分组的优先级相对应的传送控制的存储转发方式的网络交换装置和网络交换方法。
背景技术
在诸如互联网等的使多个网络相互连接的情况下,在这些连接中大多使用网络交换装置。其中,在把所接收的数据分组临时存储在内部缓冲器中之后传送到目的地的发送端口的交换方式被称为存储转发方式,采用这种交换方式的网络交换装置被广泛使用。
在存储转发型网络交换装置中,一般按照各个目的地端口,将预定发送的数据分组作为由指针来链接的链表结构的队列来进行控制。作为以往的使用链表结构来控制在缓冲存储器内形成的队列的数据分组交换,例如有以下的数据分组交换。
该数据分组交换把从各输入线路接收的可变长度数据分组以固定长度的数据块单位写入在共用缓冲存储器内。在进行该写入时,缓冲器控制部按照输入线路形成输入队列,在可变长度数据分组的最终数据块被登记在输入队列内时,将该输入队列的链接地址列表链接到与传送目的地输出线路相对应的输出队列。
通过在向共用缓冲存储器内写入时,把下一个固定长度的数据块的写入地址存储在下一地址存储器内来形成各个输入队列。并且,各个输出队列由地址表构成,该地址表存储表示下一个应读出的数据块的下一读出地址和表示最后数据块的最终读出地址,缓冲器控制部的输入队列控制部通过把各个可变长度数据分组的头数据块的写入地址和最终数据块的写入地址分别转换为与传送目的地输出线路相对应的地址表的下一读出地址和最终读出地址,来完成输入队列与输出队列的链接。而且,在先行的可变长度数据分组的最终读出地址处于已登记的状态的情况下,从下一地址存储器中提取后继的可变长度数据分组的头数据块的写入地址,使该地址与最终读出地址链接。通过这种控制,提高了缓冲存储器的使用效率,并使交换动作高速化。例如,参照特开2002-152247号公报(段落编号 ~ ,图3)。
另外,可以将通过网络传输的信息大致分为要求确保恒定的数据质量的信息以及容许数据质量劣化的信息。因此,考虑例如定义把这些信息的优先级按多个等级进行等级划分的优先级等级,根据所传输的各个数据分组的属性(发送源地址等)来赋予其优先级等级。在这种情况下,在网络交换装置中,通过优先传送优先级等级高的数据分组,可以提高优先级高的数据分组的数据传送的可靠性。
在存储转发方式的网络交换装置中,通常,在判定接收数据分组的目的地之后,将接收数据分组与按照目的地(针对各个输出端口)形成的数据分组的队列相链接,从这些队列中读出数据分组并将其送出。这里,对接收数据分组分别赋予了不同的优先级,在对这些接收数据分组进行优先控制的情况下,对于各个输出端口生成与优先级等级数量相同的队列,使按优先级等级划分的接收数据分组与相应的优先级等级的队列链接。然后,通过先从优先级等级高的队列送出数据分组,来实现优先控制。
作为优先级高的信息,例如以声音数据和动态图像数据为代表。为了支持这种实时性被看得很重要的信息的通信,有必要尽可能缩短这些信息在网络交换装置中的中继延迟时间。然而,即使在进行优先控制的网络交换装置中,例如当发生相同输出端口的相同优先级等级的业务量集中等的事态时,即使是优先级高的数据分组,有时也会被丢弃。
作为以往的可缩短优先级高的数据分组的中继延迟时间的数据分组交换,具有以下的数据分组交换。该数据分组交换被构成为,在各个输入线路接口把从输入线路接收的可变长度数据分组转换成固定长度的信元,在交换部以信元为单位进行交换,在各个输出线路接口把来自该交换部的输出信元转换成原来的可变长度数据分组并送出到输出线路。而且,各个输入线路接口的特征是具有控制单元,该控制单元用于把从所接收的可变长度数据分组转换来的固定长度的信元按照各输出线路按优先级进行排列,并按照优先级把各队列的累积信元选择性地输出。
在该数据分组交换中,从多条输入线路在时间上重叠地输入面向特定的输出端口的多个数据分组,在交换部内,在面向上述特定的输出端口的信元的累积量超过规定的阈值的情况下,向各输入线路接口提供拥塞状态通知。然后,正在送出上述面向特定的输出端口的信元的输入线路接口响应于该拥塞状态通知,选择性地抑制信元优先级低的信元送出。这样,避免拥塞状态变得严重,把优先级高的数据分组没有大幅延迟地传送到输出线路侧。例如,参照特开2000-151633号公报(段落编号 ~ ,图1)。
另外,在存储转发方式的网络交换装置中,按目的地所形成的数据分组的队列通常被分别存储在物理上或逻辑上分离的有限大小的缓冲器内。并且,在进行优先控制的网络交换中,大多还针对各优先级等级来形成队列。在这种网络交换装置中,在特定的各优先级等级的业务量集中在某个输出端口的情况下,尽管在相同输出端口的其他的优先级等级的队列中有空余的容量,但有时在业务量集中的队列中却发生拥塞。为了避免这种事态,例如,有必要对各优先级等级的队列确保足够的缓冲器容量。然而,在这种情况下,存在的问题是,存储器的使用效率低下,由此随着存储器容量增大,存储器部分的成本增高。
在上述特开2000-151633号公报所揭示的数据分组交换中,可以在交换部内的缓冲存储器和输出线路接口内的输出缓冲存储器中分别针对各优先级等级形成队列。此时,在各缓冲存储器中,通过采用使按优先级等级形成的各个队列与其他队列共享空区域的共同缓冲器结构,可有效利用存储器容量。然而,为此,在交换部和输出线路接口的双方中,有必要对按输出线路和按优先级等级形成的链表进行管理来进行缓冲器控制,存在处理变得复杂,成本也变高的问题。并且,该数据分组交换以把接收数据分组转换成固定长度的信元来进行处理为前提,不能应用于不对接收数据分组转换而直接进行处理的装置。

发明内容
本发明是鉴于上述课题而提出的,本发明的目的是提供可以进行数据分组的优先控制,并提高存储接收数据分组的缓冲器的使用效率、降低部件成本的网络交换装置。
在本发明中,为了解决上述课题,提供了图1所示的网络交换装置。该网络交换装置在多个网络间进行数据分组的传送,其特征在于,具有多个缓冲器1-1~n(其中,n是大于等于1的整数),这些缓冲器是针对传送目的地的前述各个网络而设置的;优先级判定电路2,当输入接收数据分组10时,判定前述接收数据分组10的优先级等级;以及缓冲器控制电路3,在前述各个缓冲器1-1~n中形成可登记多个优先级等级的数据分组的发送队列4-1~n,把前述接收数据分组10写入与目的地相对应的缓冲器内,并且根据前述优先级判定电路2的判定结果,对前述接收数据分组10进行登记,使得该接收数据分组10被预约为紧接着登记在对应的发送队列内的相同优先级等级的数据分组中的最后登记的数据分组之后进行发送。
在这种网络交换装置中,在缓冲器控制电路3的控制下,将接收数据分组10存储在与该目的地的网络相对应的缓冲器内。并且,优先级判定电路2判定接收数据分组10的优先级等级。缓冲器控制电路3在各个缓冲器1-1~n中形成可登记多个优先级等级的数据分组的发送队列4-1~n。然后,进行控制使得在把接收数据分组10写入缓冲器内时,根据优先级判定电路2的判定,把接收数据分组10预约为紧接着登记在对应的发送队列内的相同优先级等级的数据分组中的最后登记的数据分组之后进行发送。
由此,在与目的地的网络相对应的缓冲器1-1~n内分别形成有一个发送队列4-1~n,在各个发送队列4-1~n中登记数据分组,使得优先级等级越高且越早接收到的数据分组被越先发送。此时,由于未指定对各个优先级等级分配的缓冲器容量,所以接收数据分组10被与其优先级等级无关地存储在缓冲器1-1~n的空区域内。并且,例如,也可以使用缓冲器控制电路3把各个发送队列4-1~n内所登记的数据分组间的链接作为基于各个数据分组在各个缓冲器1-1~n内的写入位置的链表结构来进行管理。
本发明的上述和其他目的、特征和优点将通过与表示作为本发明例的优选实施方式的附图相关联的以下说明而明了。


图1是用于对本发明的原理进行说明的原理图。
图2是示出本发明的第1实施方式的网络交换装置的连接例的图。
图3是示出本发明的第1实施方式的网络交换装置的内部构成的方框图。
图4是示出在本发明的第1实施方式的网络交换装置中,存储在发送缓冲器内的数据的结构的示意图。
图5是示出在本发明的第1实施方式的网络交换装置中,设置在缓冲器控制电路内的寄存器组和发送队列的关系的图。
图6是示出在本发明的第1实施方式的网络交换装置中,在把数据分组写入发送缓冲器内的情况下的缓冲器控制电路的处理流程的流程图。
图7是示出在本发明的第1实施方式的网络交换装置中,在从发送缓冲器中读出数据分组的情况下的缓冲器控制电路的处理流程的流程图。
图8是示出在本发明的第2实施方式的网络交换装置中,设置在缓冲器控制电路内的指针存储器和发送队列的关系的图。
图9是示出在本发明的第2实施方式的网络交换装置中,在把数据分组写入发送缓冲器内的情况下的缓冲器控制电路的处理流程的流程图。
图10是示出在本发明的第2实施方式的网络交换装置中,在从发送缓冲器中读出数据分组的情况下的缓冲器控制电路的处理流程的流程图。
图11是示出在本发明的第3实施方式的网络交换装置中,在各个发送缓冲器内形成的发送队列的示例的图。
具体实施例方式
以下,参照附图对本发明的实施方式进行说明。
图1是用于对本发明的原理进行说明的原理图。
本发明的网络交换装置是与多个网络连接,并在这些网络间传送数据分组的装置。如图1所示,该网络交换装置具有针对传送目的地的各个网络而分别设置的缓冲器1-1~n(其中,n是大于等于1的整数)、优先级判定电路2、缓冲器控制电路3。
各个缓冲器1-1~n是用于把通过网络接收的数据分组(以下称为接收数据分组)10根据其目的地来进行存储的存储装置,例如由半导体存储器等构成。另外,各个缓冲器1-1~n的区域不一定是物理上分离的区域,可以在一个共享缓冲器上逻辑上分离地形成各个区域。
优先级判定电路2判定赋予接收数据分组10的优先级等级,把判定结果通知给缓冲器控制电路3。
缓冲器控制电路3对接收数据分组10在缓冲器1-1~n中的写入和读出动作进行控制。缓冲器控制电路3在针对目的地的各个网络而设置的缓冲器1-1~n中分别形成1个发送队列4-1~n,把接收数据分组10存储在与其目的地相对应的缓冲器内,并登记在对应的发送队列内。
这里,假设在各个发送队列4-1~n内可以登记多个优先级等级的数据分组。缓冲器控制电路3根据优先级判定电路2的判定结果,决定针对发送队列的登记位置。具体地说,把接收数据分组10登记在发送队列内,使得接收数据分组10被预约为紧接着与目的地相对应的发送队列内已登记的与接收数据分组10相同优先级等级的数据分组中的最后登记的数据分组之后进行发送。
以下,按顺序对该网络交换装置中的交换动作进行说明。在该说明中,设想了接收到要传送到与缓冲器1-1相对应的网络的数据分组的情况。
当从所连接的网络接收到数据分组时(步骤S1),使用优先级判定电路2判定赋予该接收数据分组10的优先级等级(步骤S2)。该判定例如参照接收数据分组10的头部信息来进行,将判定结果通知给缓冲器控制电路3。
缓冲器控制电路3从例如未示出的头部分析部等接到接收数据分组10的目的地的通知,对动作进行控制,以便把接收数据分组10写入与其目的地相对应的缓冲器1-1内(步骤S3)。在缓冲器1-1内,在缓冲器控制电路3的控制下形成发送队列4-1,在发送队列4-1内,按照预定发送顺序登记数据分组。
这里,在与接收数据分组10相同优先级等级的数据分组已登记到发送队列4-1内的情况下,缓冲器控制电路3登记接收数据分组10,使得数据分组10被预约为紧接着这些数据分组中的最后登记在该发送队列4-1内的数据分组之后进行发送。
图1中,作为示例,假设设定了高优先级和低优先级的2个级别的优先级等级。而且,处于在缓冲器1-1中的发送队列4-1内已登记有两个优先级等级的数据分组的状态。这里,在接收数据分组10被判定为高优先级等级的情况下,在发送队列4-1中,接收数据分组10被插入到高优先级等级的数据分组的末尾(步骤S3-1)。并且,在接收数据分组10被判定为低优先级等级的情况下,接收数据分组10被登记在低优先级等级的数据分组的末尾(步骤S3-2)。
另外,在步骤S3-1,在登记接收数据分组10时缓冲器1-1没有空区域的情况下,丢弃发送队列4-1内所登记的数据分组中的优先级最低的低优先级等级且最后登记的数据分组,插入接收数据分组10。并且,在步骤S3-2,类似地,在缓冲器1-1没有空区域的情况下,丢弃接收数据分组10本身。
通过这种对缓冲器1-1的写入控制,虽然是1个发送队列4-1,但高优先级等级的数据分组也总是比优先级等级低于它的数据分组先被预约发送。然后,在缓冲器控制电路3的控制下,从发送队列4-1中,从开头的数据分组开始顺次读出数据分组,并发送到对应的网络(步骤S4)。
在以上动作中,通过缓冲器控制电路3对缓冲器1-1的写入控制,在发送队列4-1内登记数据分组,使得优先级等级越高且越先接收到的数据分组越先被发送。此时,在缓冲器1-1有空区域而未指定针对各个优先级等级分配的缓冲器容量的情况下,与优先级等级无关地存储接收数据分组10。因此,在由于数据分组集中在该发送队列4-1等而引起拥塞的情况下,优先级等级越高的数据分组,被越可靠地进行发送,并且缓冲器1-1内的使用效率提高。结果,可以抑制缓冲器1-1的容量,使部件成本降低。
另外,为了使用上述缓冲器控制电路3有效地进行缓冲器1-1~n的写入和读出控制,可以把缓冲器1-1~n内存储的各个数据分组作为基于在各个缓冲器1-1~n中的写入位置的链表结构来进行管理。例如,设置保存指示在各个缓冲器1-1~n内的写入位置的指针的指针堆栈,在写入接收数据分组10时,缓冲器控制电路3从该指针堆栈中将指针出栈并取得该指针。然后,使用采用了指示各个数据分组的指针的链接列表来管理发送队列4-1~n内所登记的各个数据分组间的链接。
下面,对本发明的实施方式进行具体说明。
图2是示出根据本发明的第1实施方式的网络交换装置的连接例的图。
如图2所示,在网络交换装置100内设置有多个通信端口,网络21~24与各个通信端口连接。各个网络21~24上连接有例如终端装置21a、22a、23a和24a。
网络交换装置100进行所连接的网络21~24间的数据分组的传送。例如,从终端装置21a发送到终端装置22a的数据分组通过网络21被输入到网络交换装置100,通过该网络交换装置100的处理被传送到网络22。由此,所传送的数据分组通过网络22在终端装置22a中被接收。
图3是示出网络交换装置100的内部构成的方框图。
如图3所示,网络交换装置100具有接收接口111~114、接收缓冲器121~124、发送接口131~134、发送缓冲器141~144、数据传送电路150、头部解析电路160、指针堆栈170、使用量监视电路180、以及缓冲器控制电路190。
接收接口111~114是接收来自外部网络的数据的通信接口,分别与网络21~24连接。接收接口111~114把通过各个网络21~24所接收的数据分组提供给接收缓冲器121~124。
接收缓冲器121~124分别是用于临时存储从接收接口111~114提供的数据分组的缓冲存储器。接收缓冲器121~124把所存储的数据分组的头部信息输出到头部分析电路160,并对数据传送电路150进行数据分组的输出请求,根据来自数据传送电路150的响应,把所存储的数据分组输出到数据传送电路150。
另一方面,发送接口131~134是把数据发送到外部网络的通信接口,分别与网络21~24连接。发送接口131~134把分别从发送缓冲器141~144提供的数据分组发送到网络21~24。
发送缓冲器141~144是用于临时存储从数据传送电路150提供的数据分组的缓冲存储器。发送缓冲器141~144把所提供的数据分组写入到由数据传送电路150所指定的地址内。然后,按照来自对应的发送接口131~134的发送请求,根据缓冲器控制电路190的地址指定来读出所写入的数据分组,分别将其输出到发送接口131~134。
每当进行数据分组的写入和读出的各个动作时,各个发送缓冲器141~144就把已进行了这些动作的情况通知给使用量监视电路180。由此,可以在使用量监视电路180中监视各个发送缓冲器141~144的使用量。
并且,在缓冲器控制电路190的控制下,在各个发送缓冲器141~144内,分别形成有1个发送队列。而且,针对各个所写入的数据分组设置有附属单元区域,在附属单元区域内,通过缓冲器控制电路190写入有指针,该指针指示登记有该数据分组的发送队列中的先行数据分组和后继数据分组的写入位置。由此,对各个发送队列内所登记的数据分组间的链接进行管理。
数据传送电路150从各个接收缓冲器121~124收取数据分组,并将其传送到与目的地相对应的发送缓冲器。当数据传送电路150从各个接收缓冲器121~124接收到输出请求时,从头部解析电路160取得表示该数据分组的目的地的信息。并且,根据来自使用量监视电路180的信息,判断是否可以对与目的地相对应的发送缓冲器进行写入,在可以写入的情况下,从指针堆栈170取得指针,指定基于该指针的写入地址,并传送数据分组。
头部解析电路160取得在接收缓冲器121~124内所存储的数据分组的头部信息,把被指定为该数据分组的目的地的发送端口通知给数据传送电路150和缓冲器控制电路190。并且,根据所取得的头部信息来判定该数据分组的优先级等级,并将其通知给缓冲器控制电路190。头部解析电路160例如具有目的地的发送端口和优先级等级的对应表,参照该对应表,根据头部信息所示的目的地来判断优先级等级。
指针堆栈170存储有指示数据分组在发送缓冲器141~144中的写入地址的指针。指针堆栈170根据来自数据传送电路150的请求,使指针出栈,并将其输出到数据传送电路150和缓冲器控制电路190。并且,在由所输出的指针指示的发送缓冲器141~144内的区域由于数据分组的读出和丢弃而被开放的情况下,从缓冲器控制电路190提供该指针,并入栈返回到指针堆栈170。因此,存在于指针堆栈170内的指针必定指示发送缓冲器141~144内的空区域。
使用量监视电路180把表示在各个发送缓冲器141~144内是否有空区域的信息通知给数据传送电路150和缓冲器控制电路190。使用量监视电路180从各个发送缓冲器141~144接收进行了数据分组的写入和读出的各个动作的通知。并且,从缓冲器控制电路190接收丢弃发送缓冲器141~144内所存储的数据分组、开放缓冲器内的区域的通知。然后,根据这些通知对各个发送缓冲器141~144内的缓冲器使用量进行计数,当计数值达到预先设定的值时,判断为该发送缓冲器内没有空区域。
该使用量监视电路180针对数据传送电路150和缓冲器控制电路190,例如定期地或者根据来自各个通知目的地的请求来更新表示各个发送缓冲器141~144是否有空区域的信息。
缓冲器控制电路190对发送缓冲器141~144中的数据分组的写入和读出动作进行控制。并且,缓冲器控制电路190在各个发送缓冲器141~144内分别形成1个发送队列,把所写入的数据分组按照优先级等级登记在发送队列内。被分配给各个发送队列的缓冲器容量是有限的。并且,使用对所登记的数据分组和其前后的数据分组进行链接的双向链表结构来管理各个发送队列。
因此,在向各个发送缓冲器141~144内写入数据分组时,缓冲器控制电路190从指针堆栈170取得指示该数据分组的写入地址的指针。然后,在发送缓冲器141~144内设置与各个数据分组的各个相对应的附属单元区域,把分别指示发送队列内的该数据分组的先行数据分组和后继数据分组的指针写入附属单元区域内。
并且,对于各个发送队列,属于高优先级等级的数据分组总是被预约为优先发送。并且,对于属于相同优先级等级的数据分组,被按照所接收的顺序来预约发送。为了进行这种与优先级等级相对应的登记管理,如后所述,缓冲器控制电路190具有寄存器组,该寄存器组用于保存分别指示所登记的数据分组中的各个优先级等级的开头数据分组和尾数据分组的指针。然后,每当进行数据分组的写入和读出时,更新该寄存器组保存的指针。
另外,在本实施方式中,假设发送缓冲器141~144被设置在1个共享存储器内,将各个缓冲器的区域逻辑分离地进行使用。因此,指针堆栈170以统一的方式保存与在共享存储器内的全部区域内的写入地址相对应的指针,从而可以有效地使用共享存储器。其中,各个发送端口使用的缓冲器区域的容量(即作为发送缓冲器141~144分别使用的容量)被确定为恒定,这些容量由使用量监视电路180来监视。
使用这种网络交换装置100来进行可以根据优先级等级判断数据分组的传送顺序和数据分组可否废弃的交换处理。例如,在接收到要从网络21传送到网络22的数据分组的情况下,在接收接口111所接收的数据分组被临时存储在接收缓冲器121内。该数据分组的头部信息被通知给头部解析电路160,头部解析电路160根据数据分组的目的地来判断优先级等级,并将其和目的地一起通知给缓冲器控制电路190。
当从接收缓冲器121收取到数据分组时,数据传送电路150开始对与从头部解析电路160所通知的目的地相对应的发送缓冲器142进行传送处理。当数据传送电路150根据来自使用量监视电路180的信息,判断为可对发送缓冲器142进行写入时,从指针堆栈170使指针出栈并取得该指针,把数据分组传送到由所取得的指针指示的地址。
并且,缓冲器控制电路190判断在与所通知的目的地相对应的发送缓冲器142内的发送队列内是否可以登记所通知的优先级等级的数据分组。根据来自使用量监视电路180的使用量通知,在发送队列内可存储的区域有余裕的情况下,可以登记所有数据分组,然而在没有空区域的情况下,根据从头部解析电路160通知的优先级等级,判断可否登记。
在优先级等级比要登记的数据分组的优先级等级低的数据分组已登记在发送缓冲器142内的发送队列内的情况下,缓冲器控制电路190判断为可登记新数据分组。在这种情况下,进行丢弃登记在发送队列的最末尾的数据分组的处理,并把数据分组被丢弃的情况通知给使用量监视电路180。由此,由于使用量监视电路180把在发送缓冲器142内产生了空区域的情况通知给数据传送电路150,所以数据传送电路150把数据分组传送到发送缓冲器142。
另一方面,在优先级等级与要登记的数据分组的优先级等级相同或小于要登记的数据分组的优先级等级的数据分组未登记在发送缓冲器142内的发送队列内的情况下,缓冲器控制电路190判断为不能登记新的数据分组。在这种情况下,由于发送缓冲器142内的区域未被开放,所以使用量监视电路180把不能写入数据分组的情况继续通知给数据传送电路150。由此,数据传送电路150判断为不能传送数据分组,将从接收缓冲器121所获得的数据分组丢弃。
在缓冲器控制电路190的控制下,写入在发送缓冲器142内的数据分组向发送队列的登记被作为链表结构来管理。然后,数据分组被按照发送队列的登记顺序读出,并从发送接口132送出到网络22。
这里,图4是示出在发送缓冲器内所存储的数据的结构的示意图。
在图4中,按照向形成在各个缓冲器内的发送队列登记的顺序示出发送缓冲器141~144内的数据分组。另外,在图4中,在发送队列内所链接的各个数据分组被连续设置,然而在发送缓冲器141~144上的实际物理写入位置并不限于此。
如上所述,在发送缓冲器141~144内,和存储各个数据分组的数据分组存储区域140a一起,针对各个数据分组设置有附属单元区域140b。如图4所示,在附属单元区域140b内存储有指示在发送队列内的其直接前驱数据分组的指针(以下称为直接前驱指针),以及指示后继数据分组的指针(以下称为后继指针)。
附属单元区域140b的各个指针使用缓冲器控制电路190来写入。在接收数据分组被传送到发送缓冲器141~144时,写入直接前驱指针,当在发送队列内登记了后继数据分组时,写入后继指针。通过利用这样的各个指针,可以把发送队列内的数据分组作为前后双向链接的双向链表结构来进行管理。
例如,在读出数据分组时,通过参照该数据分组的附属单元区域140b的后继指针,能够知道下一个要发送的数据分组的写入位置。并且,在发送缓冲器没有空区域,而通过优先级等级的判断将发送队列内的数据分组丢弃的情况下,发送队列内的最末尾的数据分组被丢弃。此时,通过参照要丢弃的数据分组的附属单元区域140b的直接前驱指针,能够知道在丢弃后成为最末尾的数据分组的写入位置。
下面,对利用了附属单元区域140b内所存储的各个指针的缓冲器控制电路190的控制进行详细说明。另外,在以下说明中,作为示例,假设可按照优先级的高低顺序来处理“高优先级”、“中优先级”、“低优先级”的3个级别的优先级等级。
图5是示出设置在缓冲器控制电路190内的寄存器组和发送队列的关系的图。
如上所述,在各个发送缓冲器141~144中,在缓冲器控制电路190的控制下,分别形成有1个发送队列。然后,在各个发送队列中进行登记,使得优先级等级越高的数据分组越先被预约发送。并且,对于相同优先级等级的数据分组,按照接收的顺序来登记。因此,如图5所示,在发送队列中,在链接了高优先级等级的数据分组Ph(1)~Ph(s)之后,对中优先级等级的数据分组Pm(1)~Pm(t)进行链接,然后对低优先级等级的数据分组P1(1)~P1(u)进行链接(其中,s、t、u分别是大于等于1的整数)。
通过形成这种结构的发送队列,在各个发送缓冲器141~144中,由于未指定对各个优先级等级所分配的缓冲器容量,所以所接收的数据分组被与其优先级等级无关地存储在缓冲器的空区域内。因此,在特定的发送端口发生了拥塞的情况下,不会存在在对应的发送缓冲器内产生空区域的情况,提高了存储器的使用效率。
另外,为了管理上述结构的发送队列,缓冲器控制电路190具有寄存器组,该寄存器组用于识别各个优先级等级的数据分组中的头数据分组和末尾数据分组的写入位置。如图5所示,在可以处理3个级别的优先级等级的情况下,针对高优先级等级,设置有分别保存指示该优先级等级的数据分组中的头数据分组的指针和指示末尾数据分组的指针的高优先头指针寄存器191a和高优先尾指针寄存器192a。同样,针对中优先级等级,设置有中优先头指针寄存器191b和中优先尾指针寄存器192b,针对低优先级等级,设置有低优先头指针寄存器191c和低优先尾指针寄存器192c。
各个优先级等级的尾指针寄存器在登记具有相应优先级的新数据分组时被更新,头指针寄存器在从发送缓冲器中读出头数据分组时被更新。
另外,在发送队列内,通过写入在附属单元区域140b内的指针在相同优先级等级的数据分组间进行双向链接。然而,不同优先级等级的数据分组间不进行这种链接。因此,在相同优先级等级中的开头数据分组的附属单元区域140b内不写入直接前驱指针,而是写入表示直接前驱数据分组不存在的信息。并且,在最末尾的数据分组的附属单元区域140b内不写入后继指针,而是写入表示后继数据分组不存在的信息。并且,使用上述寄存器组内所存储的指针来管理不同优先级等级间的数据分组的链接。
下面,使用流程图对使用了存储在这些寄存器组和数据分组的附属单元区域140b内的指针的缓冲器控制电路190的处理进行说明。另外,在以下图6和图7所示的流程图的说明中,作为示例,设想了接收到要从网络21传送到网络22的数据分组的情况。并且,在图6和图7的说明中,根据需要,还加入了对网络交换装置100内的其他要素的处理的说明。
图6是示出在把数据分组写入发送缓冲器的情况下的缓冲器控制电路190的处理流程的流程图。以下,按照步骤编号对图6所示的处理进行说明。
首先,在接收接口111中接收的数据分组被临时存储在接收缓冲器121内。然后,所存储的数据分组被传递到数据传送电路150,并且该数据分组的头部信息被通知给头部解析电路160。头部解析电路160根据数据分组的目的地来判断优先级等级,并将所判定的优先级等级与目的地一起通知给缓冲器控制电路190。并且,目的地也被通知给数据传送电路150。
缓冲器控制电路190从头部解析电路160接收新收到的数据分组的目的地和优先级等级的通知。
参照来自使用量监视电路180的信息,判断与目的地相对应的发送缓冲器142内是否有空区域。在有空区域的情况下,进入步骤S603,在没有空区域的情况下,进入步骤S609。
这里,从接收缓冲器121收取到了数据分组的数据传送电路150根据来自头部解析电路160的通知,判定该数据分组的目的地。然后,同样,参照来自使用量监视电路180的信息,判断与目的地相对应的发送缓冲器142内是否有空区域,根据该判断决定是否传送数据分组。
在发送缓冲器142内有空区域的情况下,将从指针堆栈170出栈的指针提供给数据传送电路150和缓冲器控制电路190。数据传送电路150把数据分组传送到发送缓冲器142,并写入到由所取得的指针指示的地址内。
缓冲器控制电路190参照与发送缓冲器142相对应的各个优先级等级的头指针寄存器中的接收数据分组的优先级等级的头指针寄存器,判断在该寄存器内是否存储有指针。在未存储的情况下,判断为在发送队列内未登记有相同优先级等级的数据分组,进入步骤S605。并且,在已存储的情况下,判断为在发送队列内已登记有相同优先级等级的数据分组,进入步骤S606。
把从指针堆栈170所取得的指针,即指示接收数据分组的存储位置的指针存储在与接收数据分组的优先级等级相对应的头指针寄存器和尾指针寄存器内。例如,在接收数据分组是中优先级等级的情况下,把所取得的指针存储在中优先头指针寄存器191b和中优先尾指针寄存器192b内。并且,此时,把表示没有直接前驱和后继数据分组的信息写入接收数据分组的附属单元区域140b内。由此,将接收数据分组登记在发送队列内,数据分组的写入处理结束。
在与接收数据分组相同优先级等级的数据分组已登记在发送队列内的情况下,首先,参照相应优先级等级的尾指针寄存器。例如,在接收数据分组是中优先级等级的情况下,参照中优先尾指针寄存器192b。然后,针对该寄存器内所存储的指针所指示的数据分组的附属单元区域140b,使用指示接收数据分组的指针来更新后继指针。
然后,把尾指针寄存器内所存储的指针作为直接前驱指针存储在接收数据分组的附属单元区域140b内。此时,也把表示没有后继数据分组的信息写入附属单元区域140b内。
而且,使用指示接收数据分组的指针来更新尾指针寄存器。由此,将接收数据分组登记在发送队列上的相同优先级等级的数据分组中的最后登记的数据分组之后的位置上,数据分组的写入处理结束。
另一方面,在与目的地相对应的发送缓冲器142内没有空容量的情况下,首先,参照与比接收数据分组的优先级等级低的等级相对应的头指针寄存器,判断在其中任一寄存器内是否存储有指针。在已存储的情况下,判断为较低等级的数据分组已登记在发送队列内,进入步骤S610。
并且,在未存储的情况下,不进行任何处理,直接结束数据分组的写入处理。在这种情况下,接收数据分组被判断为属于发送队列中所登记的数据分组中的最低优先级等级或者低于该最低优先级等级的优先级等级,是应丢弃的数据分组。使用量监视电路180把发送缓冲器142内没有空区域的情况继续通知给数据传送电路150。由此,由于数据传送电路150在不进行该数据分组的传送的状态下,从接收缓冲器121~124中的任何一方接收下一个数据分组,开始传送处理,所以前一个数据分组被丢弃。
在接收数据分组的较低等级的数据分组已登记在发送队列内的情况下,首先,将存储有指针的尾指针寄存器中的最低等级的寄存器内所存储的指针入栈返回到指针堆栈170。例如,在形成有图5所示的发送队列的情况下,将低优先尾指针寄存器192c所存储的指针返回。由此,发送缓冲器142的区域内开放只可存储1个数据分组的区域。
从由步骤S610返回的指针所指示的数据分组的附属单元区域140b中提取直接前驱指针,使用该直接前驱指针来更新尾指针寄存器。并且,此时,针对所提取的直接前驱指针所指示的数据分组的附属单元区域140b,擦除后继指针,并写入表示没有后继数据分组的信息。由此,删除发送队列的最末尾的数据分组的登记。
另外,在附属单元区域内写入有表示没有直接前驱数据分组的信息的情况下,将对应的优先级等级的尾指针寄存器和头指针寄存器的双方的指针擦除。
把发送缓冲器142的区域被开放的情况通知给使用量监视电路180,进入步骤S603。由此,使用量监视电路180判断为在发送缓冲器142内产生了空区域,并把该情况通知给数据传送电路150。数据传送电路150接收该通知,并通过与步骤S603相对应的处理从指针堆栈170取得指针,把数据分组传送到发送缓冲器142,并写入到所取得的指针所指示的地址内。
通过以上处理,接收数据分组被预约为紧接着发送队列内已登记的相同优先级等级的数据分组中的最后登记的数据分组之后进行发送(与步骤S606~S608相对应)。
并且,在与接收数据分组相同优先级等级的数据分组未登记在发送队列内的情况下,在发送队列内的与该优先级等级相对应的位置登记接收数据分组(与步骤S605相对应)。具体地说,在接收数据分组的较高等级的数据分组已登记在发送队列内的情况下,在所登记的数据分组中的最近的较高等级的数据分组中的最后登记的数据分组之后登记接收数据分组。例如,在仅登记有高优先级等级和低优先级等级的数据分组的发送队列内登记中优先级等级的接收数据分组的情况下,在优先级等级比它高的最终数据分组之后插入接收数据分组。并且,在比接收数据分组的等级高的数据分组未登记在发送队列内的情况下,将接收数据分组登记在发送队列的头部。
而且,由于各个发送缓冲器141~144的容量有限,所以例如在发送到网络22的数据分组集中而使发送缓冲器142被填满的情况下,有必要丢弃数据分组。此时,将发送队列内所登记的数据分组中的优先级等级最低且最后登记的数据分组丢弃(与步骤S610~S612相对应)。并且,在比接收数据分组所属的优先级等级低的等级的数据分组未登记在发送队列内的情况下,丢弃接收数据分组本身。
因此,在发送队列中登记数据分组,使得优先级等级越高的数据分组越先发送。并且,由于没有指定针对各优先级等级分配的缓冲器容量,所以在发送缓冲器有空区域的情况下,接收数据分组被与优先级等级无关地存储在空区域内。反之,在没有空区域的情况下,总是将优先级等级最低的数据分组丢弃,高优先级等级的数据分组被可靠地预约发送。
因此,即使在特定的发送队列中发生了拥塞的情况下,优先级等级越高的数据分组被越可靠地发送,并且不会存在在发送队列内产生空区域的情况。因此,提高了发送缓冲器141~144的使用效率,结果可减小各个缓冲器的容量,因而降低了部件成本。
并且,通过把发送队列内所登记的数据分组间的链接作为使用了指示数据分组的写入位置的指针的双向链表结构来进行管理,不仅可以进行把数据分组登记到发送队列内的处理,而且可以有效地执行在丢弃临时登记的低优先级等级的数据分组时进行的处理。
然后,图7是示出在从发送缓冲器中读出数据分组的情况下的缓冲器控制电路190中的处理流程的流程图。以下,按照步骤编号对图7所示的处理进行说明。
缓冲器控制电路190参照存储有指针的头指针寄存器中的最高等级的寄存器。然后,读出由该寄存器内所存储的指针指示的数据分组,并传送到对应的发送接口132。由此,所读出的数据分组被送出到网络22。
将步骤S701所参照的头指针寄存器的指针入栈返回到指针堆栈170。
把发送缓冲器142的区域开放的情况通知给使用量监视电路180。
使用由所返回的指针指示的数据分组的附属单元区域140b的后继指针来更新对应的优先级等级的头指针寄存器。这里,在所参照的附属单元区域140b内写入有表示没有后继数据分组的信息的情况下,把该信息写入对应的优先级等级的头指针寄存器内。由此,在进行下次读出时,读出较低等级的数据分组。
通过以上处理,从发送队列中顺次读出数据分组,并送出到与目的地的终端相连接的网络。通过使用设置在由缓冲器控制电路190内的寄存器组保存的指针和附属单元区域140b内所存储的指针,可以按照在发送队列内被预约发送的顺序,有效地读出数据分组。并且,通过将指示所读出的数据分组的指针返回到指针堆栈170,可以开放用于存储下一个接收数据分组的空区域,可以有效地利用发送缓冲器。
下面,对本发明的第2实施方式例进行说明。在第2实施方式中,网络交换装置整体的构成与图3相同。其中,与第1实施方式的不同点是,要存储在发送缓冲器141~144内的数据仅为数据分组的内容,未形成有附属数据区域,以及在缓冲器控制电路190内,针对各个优先级等级设置有对各个发送队列内所登记的所有数据分组的指针进行管理的指针存储器,使用这些指针存储器进行针对发送队列的数据分组的登记、丢弃、读出处理。
图8是示出设置在缓冲器控制电路190内的指针存储器和发送队列的关系的图。
在本实施方式中,与上述第1实施方式的情况相同,在各个发送缓冲器141~144内分别形成有1个发送队列。而且,在各个发送队列中进行登记,使得优先级等级越高的数据分组越先被预约发送。并且,对于相同优先级等级的数据分组,按照所接收的顺序来登记。因此,如图8所示,在发送队列中,在链接高优先级等级的数据分组Ph(1)~Ph(s)之后,链接中优先级等级的数据分组Pm(1)~Pm(t),然后链接低优先级等级的数据分组P1(1)~P1(u)(其中,s、t、u分别是大于等于1的整数)。
并且,在本实施方式中,为了管理上述结构的发送队列,缓冲器控制电路190对于各个优先级等级具有指针存储器,该指针存储器保存指示发送队列内所登记的所有数据分组的指针。如图5所示,在可处理3个级别的优先级等级的情况下,针对高优先级、中优先级、低优先级的各个等级,分别设置有高优先指针存储器193a、中优先指针存储器193b、低优先指针存储器193c。
在各个指针存储器内存储有由缓冲器控制电路190从指针堆栈170取得的指针。此时,各个指针存储器能够以FIFO(First In First Out先进先出)的方式按照所取得的顺序来保存指针,并能够将最末尾的指针顺次擦除。
下面,使用流程图对使用了这些指针存储器内所存储的指针的缓冲器控制电路190的处理进行说明。另外,在以下图9和图10所示的流程图的说明中,作为示例,设想了接收到要从网络21传送到网络22的数据分组的情况。并且,在图9和图10的说明中,根据需要,还加入了对网络交换装置100内的其他要素的处理的说明。
图9是示出在把数据分组写入发送缓冲器的情况下的缓冲器控制电路190中的处理流程的流程图。
与第1实施方式的情况相同,在接收接口111中接收的数据分组被临时存储在接收缓冲器121内。然后,所存储的数据分组被传递给数据传送电路150,并且将该数据分组的头部信息通知给头部解析电路160。头部解析电路160根据数据分组的目的地来判断优先级等级,并将该判断结果与目的地一起通知给缓冲器控制电路190。并且,目的地也被通知给数据传送电路150。
缓冲器控制电路190从头部解析电路160接收新接收到的数据分组的目的地和优先级等级的通知。
参照来自使用量监视电路180的信息,判断与目的地相对应的发送缓冲器142是否有空区域。在有空区域的情况下,进入步骤S903,在没有空区域的情况下,进入步骤S905。
这里,从接收缓冲器121收取到数据分组的数据传送电路150根据来自头部解析电路160的通知,判断该数据分组的目的地。然后,同样,参照来自使用量监视电路180的信息,判断与目的地相对应的发送缓冲器142是否有空区域,根据该判断来决定是否传送数据分组。
在发送缓冲器142内有空区域的情况下,将从指针堆栈170出栈的指针提供给数据传送电路150和缓冲器控制电路190。数据传送电路150把数据分组传送到发送缓冲器142,并写入到由所取得的指针指示的地址内。
缓冲器控制电路190把在步骤S903取得的指针存储在与发送缓冲器142相对应的各个优先级等级的指针存储器中的与接收数据分组的优先级等级相对应的指针存储器的最末尾。由此,将接收数据分组登记在发送队列内。
并且,在与目的地相对应的发送缓冲器142没有空容量的情况下,首先,参照与比接收数据分组的优先级等级低的等级相对应的指针存储器,判断在其中任一指针存储器内是否存储有指针。在已存储的情况下,判断为更低等级的数据分组已登记在发送队列内,并进入步骤S906。
并且,在未存储的情况下,不进行任何处理,直接结束数据分组的写入处理。在这种情况下,判断为接收数据分组属于发送队列中所登记的数据分组中的最低优先级等级或者低于该最优先级等级的优先级等级,是应丢弃的数据分组。使用量监视电路180把发送缓冲器142没有空区域的情况继续通知给数据传送电路150,根据该通知,数据传送电路150将从接收缓冲器122接收到的数据分组丢弃。
在比接收数据分组的等级低的数据分组已登记在发送队列内的情况下,参照登记有指针的指针存储器中的与最低等级相对应的指针存储器,将该指针存储器的最末尾的指针返回到指针堆栈170,并从指针存储器中擦除。由此,在发送缓冲器142的区域内开放只可以存储1个数据分组的区域。
把发送缓冲器142的区域开放的情况通知给使用量监视电路180,并进入步骤S903。由此,使用量监视电路180判断为在发送缓冲器142内产生了空区域,并把该情况通知给数据传送电路150。数据传送电路150接收该通知,并通过与步骤S903相对应的处理从指针堆栈170取得指针,把数据分组传送到发送缓冲器142,并写入到由所取得的指针指示的地址内。
通过以上处理,形成与上述第1实施方式相同的发送队列。即,通过步骤S903和S904的处理,接收数据分组被预约为紧接着已登记在发送队列内的相同优先级等级的数据分组中的最后登记的数据分组之后进行发送。并且,在与接收数据分组相同优先级等级的数据分组未被登记在发送队列内的情况下,在发送队列内与该优先级等级相对应的位置上登记接收数据分组。
并且,例如在发送到网络22的数据分组集中而使发送缓冲器142被填满的情况下,通过步骤S906~S907的处理,将发送队列内所登记的数据分组中的优先级等级最低且最后登记的数据分组丢弃。并且,在发送队列内未登记有比接收数据分组所属的优先级等级低的等级的数据分组的情况下,丢弃接收数据分组本身。
图10是示出在从发送缓冲器中读出数据分组的情况下的缓冲器控制电路190中的处理流程的流程图。以下,按照步骤编号对图10所示的处理进行说明。
缓冲器控制电路190参照存储有指针的指针存储器中的最高等级的指针存储器,取出所存储的指针。此时,从指针存储器中将所取出的指针擦除。
读出由所取出的指针指示的数据分组,并传送到对应的发送接口132。由此,将所读出的数据分组送出到网络22。
将所取出的指针入栈返回到指针堆栈170。
把发送缓冲器142的区域开放的情况通知给使用量监视电路180。
通过以上处理,数据分组从发送队列中被顺次读出,并被送出到与目的地的终端相连接的网络。通过使用设置在缓冲器控制电路190中的指针存储器内所保存的指针,可以按照在发送队列内被预约发送的顺序,有效地读出数据分组。并且,通过将指示所读出的数据分组的指针返回到指针堆栈170,可以开放用于存储下一个接收数据分组的空区域,可以有效地利用发送缓冲器。
这样,在第2实施方式中,与第1实施方式相比较,管理指针的处理被大幅度简化。然而,在第2实施方式的情况下,由于各个指针存储器必须具有以FIFO方式存储数据,并顺次擦除最末尾的数据的功能,所以写入和读出控制变得复杂,需要高价的控制电路。因此,在第2实施方式中,部件成本变高,并且设置面积也增大。
另外,在以上第1和第2实施方式例中,采用以下结构在共享存储器内设置各个发送端口的发送缓冲器141~144的区域,使用1个指针堆栈170来统一地管理对该共享存储器的写入位置。然而,也可以采用使各个发送缓冲器141~144的区域在物理上分离的结构。在这种情况下,可以针对各个发送缓冲器141~144设置指针堆栈170,进行写入和读出的地址管理。并且,在这种情况下,使用量监视电路180也可以根据各个指针堆栈内是否残留有未使用的指针来判断各个发送缓冲器141~144是否有空区域。

下面,对本发明的第3实施方式进行说明。在第3实施方式中,网络交换装置整体的构成与图3相同。其中,与第1和第2实施方式的不同点是,在各个发送缓冲器141~144内形成有多个发送队列。
图11示出各个发送缓冲器内所形成的发送队列的示例。另外,在以下说明中,假设可以从优先级高的一方开始处理A~H的8个级别的优先级等级。
如图11所示,在各个发送缓冲器141~144内分别形成有3个发送队列。并且,在各个发送队列内登记有1个或1个以上的邻接优先级等级的数据分组。在图11的例中,可以在第1发送队列内登记优先级等级“A”、“B”、“C”的数据分组,可以在第2发送队列内登记优先级等级“D”、“E”的数据分组,可以在第3发送队列内登记优先级等级“F”、“G”、“H,,的数据分组。而且,预先确定各个发送队列的最大容量。
另外,在图11的示例中,在发送缓冲器141中示出以下状态在第1发送队列Q11内已登记有优先级“A”、“B”、“C”的数据分组,在第2发送队列Q12内已登记有优先级“D”、“E”的数据分组,在第3发送队列Q13内已登记有优先级“F”、“G”、“H”的数据分组。并且,在发送缓冲器144中示出以下状态在第1发送队列Q41内仅登记有优先级“A”、“C”的数据分组,在第2发送队列Q42内仅登记有优先级“D”、“E”的数据分组,在第3发送队列Q43内仅登记有优先级“F”的数据分组。
为了管理向这种发送队列的登记,使用量监视电路180按照每个发送队列对各个发送缓冲器141~144内的缓冲器使用量进行计数。并且,发送队列内的数据分组间的链接管理可以使用上述第1和第2实施方式中的任何一种来进行。而且,在进行数据分组的读出时,缓冲器控制电路190从分配的优先级等级高的发送队列开始,按顺序判断是否登记有数据分组,并从登记有数据分组的发送队列中顺次读出数据分组。
另外,在这种网络交换装置中,由于以1个发送队列内可登记的1个或1个以上的优先级等级为单位的可登记的数据分组数受到限制,所以在发生拥塞时,会存在尽管较低等级的发送队列有空区域,但较高等级的数据分组却被丢弃的可能性。为了避免这种事态,期望的是,对于登记越高等级的数据分组的发送队列,越增大分配给其的缓冲器容量。
如上述的说明,在本发明的网络交换装置中,在与目的地的网络相对应的缓冲器内分别形成有1个发送队列,在各个发送队列中登记数据分组,使得优先级等级越高且越先接收到的数据分组越先被发送。此时,由于未指定针对各个优先级等级所分配的缓冲器容量,所以接收数据分组被与其优先级等级无关地存储在缓冲器的空区域内。因此,在特定的发送队列中发生了拥塞的情况下,优先级等级越高的数据分组被越可靠地发送,并且可以提高缓冲器内的使用效率,抑制缓冲器容量,降低部件成本。
并且,例如,通过使用缓冲器控制电路把各个发送队列内所登记的数据分组间的链接作为基于各个数据分组在各个缓冲器内的写入位置的链表结构来进行管理,使得在向各个发送队列内进行登记时和从发送队列输出时的地址管理更有效率。
上述仅示出了本发明的原理。而且,对本领域的技术人员而言,可以进行许多变形和修改,本发明不限于上述所示和所说明的确切结构和应用例,对应的所有变形例和等同物都被视为落入基于所附权利要求及其等同物的本发明的范围内。
权利要求
1.一种网络交换装置,用于在多个网络间进行数据分组传送,其特征在于,具有多个缓冲器,针对传送目的地的前述各个网络而设置;优先级判定电路,当输入接收数据分组时,判定前述接收数据分组的优先级等级;以及缓冲器控制电路,在前述各个缓冲器中形成可登记多个优先级等级的数据分组的发送队列,把前述接收数据分组写入与目的地相对应的缓冲器内,并且根据前述优先级判定电路的判定结果,对前述接收数据分组进行登记,使得该接收数据分组被预约为紧接着登记在对应的发送队列内的相同优先级等级的数据分组中的最后登记的数据分组之后进行发送。
2.根据权利要求1所述的网络交换装置,其特征在于,还具有使用量检测电路,用于判定前述各个缓冲器的使用量是否达到预先确定的阈值,在把前述接收数据分组登记在前述发送队列内时,在由前述使用量检测电路判定为对应的缓冲器的使用量达到前述阈值的情况下,前述缓冲器控制电路将前述发送队列内所登记的数据分组中优先级等级最低且最后登记的数据分组丟弃。
3.根据权利要求2所述的网络交换装置,其特征在于,在把前述接收数据分组登记在前述发送队列内时,在判定为对应的缓冲器的使用量超过了前述阈值的情况下,当前述接收数据分组属于登记目的地的发送队列内所登记的数据分组的优先级等级中的最低优先级等级或者比该最低优先级等级低的等级时,前述缓冲器控制电路丟弃前述接收数据分组本身。
4.根据权利要求1所述的网络交换装置,其特征在于,在把前述接收数据分组登记在前述发送队列内时,在与前述接收数据分组相同优先级等级的数据分组未被登记在前述发送队列内的情况下,在优先级等级比前述数据分组高的数据分组已登记在前述发送队列内时,前述缓冲器控制电路把前述接收数据分组登记在最近的较高优先级等级的数据分组中最后登记的数据分组之后,在优先级等级比前述数据分组高的数据分组未被登记在前述发送队列内时,把前述接收数据分组登记在前述发送队列的头部。
5.根据权利要求1所述的网络交换装置,其特征在于,前述缓冲器控制电路把前述各个发送队列内所登记的前述数据分组间的链接作为基于前述各个数据分组在前述各个缓冲器内的写入位置的链表结构来进行管理。
6.根据权利要求5所述的网络交换装置,其特征在于,还具有指针堆栈,用于分别保存指示前述各个缓冲器中的前述数据分组的写入位置的指针,在把前述数据分组写入前述缓冲器内时,前述缓冲器控制电路从对应的前述指针堆栈中出栈取得前述指针,使用所取得的前述指针对形成在前述各个缓冲器中的前述发送队列内的前述数据分组间的链接进行管理。
7.根据权利要求6所述的网络交换装置,其特征在于,前述缓冲器控制电路把分别指示前述各个发送队列内的直接前驱数据分组的写入位置以及后继的数据分组的写入位置的指针作为附属数据和前述数据分组一起写入前述缓冲器内。
8.根据权利要求7所述的网络交换装置,其特征在于,前述缓冲器控制电路针对前述各个优先级等级具有尾指针保存部,该尾指针保存部保存指示前述各个发送队列内的属于相同优先级等级的数据分组中最后登记的数据分组的指针,在登记新的接收数据分组时,把指示由保存在与前述接收数据分组的优先级等级相对应的尾指针保存部内的指针所指示的数据分组的附属数据的后继数据分组的指针改写为指示前述接收数据分组的指针,而且把与前述接收数据分组的优先级等级相对应的尾指针保存部所保存的指针作为指示前述接收数据分组的附属数据的直接前驱数据分组的指针,把与前述接收数据分组的优先级等级相对应的前述尾指针保存部所保存的指针改写为指示前述接收数据分组的指针。
9.根据权利要求8所述的网络交换装置,其特征在于,前述缓冲器控制电路针对前述各个优先级等级具有头指针保存部,该头指针保存部保存指示在前述各个发送队列内属于相同优先级等级的数据分组中最先登记的数据分组的指针,当从前述各个缓冲器中读出前述数据分组时,参照保存有前述指针的头指针保存部中的与最高优先级等级相对应的头指针保存部,读出由所保存的指针指示的数据分组,并使用写入在所读出的数据分组的附属数据内的指针中的指示后继数据分组的指针来更新所参照的头指针保存部。
10.根据权利要求6所述的网络交换装置,其特征在于,前述缓冲器控制电路还针对前述各个优先级等级具有指针保存部,该指针保存部按照预定发送顺序保存指示登记在前述各个发送队列内的前述各个数据分组的指针,在登记新的接收数据分组时,把指示该接收数据分组的指针写入到与该接收数据分组的优先级等级相对应的指针保存部的最末尾。
11.根据权利要求6所述的网络交换装置,其特征在于,前述缓冲器控制电路在来自前述发送队列的前述数据分组的发送完成后,将分配给所发送的前述数据分组的前述指针入栈返回到前述指针堆栈。
12.一种网络交换装置,用于在多个网络间进行数据分组传送,其特征在于,该网络交换装置具有多个缓冲器,针对传送目的地的前述各个网络而设置;优先级判定电路,当输入接收数据分组时,判定该接收数据分组的优先级等级;以及缓冲器控制电路,在前述各个缓冲器中形成可登记1个或1个以上的相邻优先级等级的数据分组的多个发送队列,把前述接收数据分组写入与目的地相对应的前述缓冲器内,并根据前述优先级判定电路的判定结果登记前述接收数据分组,使得前述接收数据分组被预约为紧接着对应的前述发送队列内所登记的相同优先级等级的数据分组中最后登记的数据分组之后进行发送。
13.一种网络交换方法,用于在把接收数据分组暂时存储在与传送目的地的网络相对应的缓冲器内的同时,在多个网络间传送该接收数据分组,其特征在于,当输入接收数据分组时,判定该接收数据分组的优先级等级,在前述各个缓冲器中形成可登记多个优先级等级的数据分组的发送队列,把前述接收数据分组写入与目的地相对应的前述缓冲器内,并根据前述优先级等级的判定结果登记前述接收数据分组,使得前述接收数据分组被预约为紧接着对应的前述发送队列内所登记的相同优先级等级的数据分组中最后登记的数据分组之后进行发送。
全文摘要
本发明提供了一种可进行数据分组的优先控制、并使存储接收数据分组的缓冲器的使用效率提高、使部件成本降低的网络交换装置。接收数据分组(10)在缓冲器控制电路(3)的控制下,被存储在与其目的地的网络相对应的缓冲器内。并且,优先级判定电路(2)判定接收数据分组(10)的优先级等级。缓冲器控制电路(3)在各个缓冲器(1-1~n)中形成可登记多个优先级等级的数据分组的发送队列(4-1~n)。然后,进行控制,使得在把接收数据分组(10)写入缓冲器内时,根据优先级判定电路(2)的判定,把接收数据分组(10)预约为紧接着对应的发送队列内所登记的相同优先级等级的数据分组中最后登记的数据分组之后进行发送。
文档编号H04L12/54GK1729655SQ0382580
公开日2006年2月1日 申请日期2003年1月17日 优先权日2003年1月17日
发明者片山徹 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1