JPH104431A - スケジューリング装置およびスケジューリング方法 - Google Patents

スケジューリング装置およびスケジューリング方法

Info

Publication number
JPH104431A
JPH104431A JP8155746A JP15574696A JPH104431A JP H104431 A JPH104431 A JP H104431A JP 8155746 A JP8155746 A JP 8155746A JP 15574696 A JP15574696 A JP 15574696A JP H104431 A JPH104431 A JP H104431A
Authority
JP
Japan
Prior art keywords
queue
information element
size
data
queues
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.)
Withdrawn
Application number
JP8155746A
Other languages
English (en)
Inventor
Toshihiko Kurita
敏彦 栗田
Ichiro Iida
一朗 飯田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP8155746A priority Critical patent/JPH104431A/ja
Priority to US08/790,443 priority patent/US5920568A/en
Publication of JPH104431A publication Critical patent/JPH104431A/ja
Withdrawn 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/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6235Variable service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

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

Abstract

(57)【要約】 【課題】 複数のキューから、過去の履歴を反映した形
で情報要素が読み出せるスケジューリング装置とスケジ
ューリング方法を提供する。 【解決手段】 各キュー12に対して、そのキューが処
理対象となった回数から、そのキューより実際に取り出
された情報要素(ルータ10では、パケット)数を減じ
た値e_countを記憶するためのキュー履歴テーブル14
と、各キューを巡回的に処理対象とし、処理対象とした
キュー内に情報要素が存在していなかった場合には、キ
ュー履歴テーブル14内のそのキューに対応するe_coun
tに“1”を加算し、処理対象としたキュー内に情報要
素が存在してた場合には、そのキューから、そのキュー
に対応するe_countの値に応じた個数の情報要素を連続
して取り出し、取り出した情報要素の個数分、そのe_co
untの値を減少させるスケジューリング部15とからス
ケジューリング装置を構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、入力された情報要
素を記憶する複数のキューから、情報要素を取り出すた
めのスケジューリング装置およびスケジューリング方法
に関し、例えば、ルータで用いられるスケジューリング
装置およびスケジューリング方法に関する。
【0002】
【従来の技術】実行速度の異なる2つのプロセス間でデ
ータを授受するためのデータ構造にキュー(待ち行列)
と呼ばれるものがある。キューは、複数の情報要素から
なるデータ構造であり、その中の情報要素は、先入れ先
出し(FIFO:First In First Out)の制約に従って
取り出される。キューは各種の装置において用いられて
いるが、複数のキューを利用した技術の1つに公平待ち
行列法と呼ばれるものがある。
【0003】ここでは、図8に示したような、2つのサ
ブネットA,Bを相互接続するルータを例に、公平待ち
行列法を説明することにする。図9に示したように、公
平待ち行列法を用いたルータ30は、パケット分類部3
1と複数のキュー32と出力バッファ33とスケジュー
リング部35を備える。各キュー32は、それぞれ、サ
ブネットAに接続された送信局(端末)と対応づけられ
ており、ある送信局から送信されたパケットは、パケッ
ト分類部31によって、その送信局に応じたキュー32
に供給される。
【0004】スケジューリング部35は、各キュー12
を巡回的に処理対象として特定していき、処理対象とし
たキュー12にパケットが記憶されていた場合には、そ
のキュー12からパケットを取り出し、出力バッファ3
3に供給する。すなわち、スケジューリング部35は、
図10に模式的に示したように、キュー121〜123
巡回的に処理対象としていき、処理対象としたキュー3
2内にパケットが存在していた場合には、そのキューか
ら、1個のパケットを取り出す。
【0005】このように、公平待ち行列法では、複数の
キューに対して、巡回的に情報要素の取り出し機会が与
えられる。また、上述のようなキュー制御を、パケット
のサイズを考慮に入れて行うルータも知られている。こ
のようなルータでは、処理対象キューが巡回的に変更さ
れるとともに、処理対象となった各キューにパケットが
記憶されているか否かが判断される。そして、パケット
が記憶されていた場合には、そのキューに対応するサイ
ズデータが1ビット分増加され、サイズデータがパケッ
トのサイズと一致したキューから、パケットが取り出さ
れる。
【0006】
【発明が解決しようとする課題】上述の公平待ち行列法
を用いたルータによれば、送信局を考慮に入れずにパケ
ットの送信順を決定する従来のルータ(先入れ先出し方
式でパケットを転送するルータ)に比して、各送信局
に、公平なパケットの送信機会が与えられることにな
る。
【0007】しかしながら、公平待ち行列法を用いたル
ータでは、あるキュー(送信局)に対して送信機会が与
えられたときに、そのキュー内にパケットが存在してい
なかった場合、そのことが、次回以降の送信機会の際の
処理に反映されない。このため、長い時間間隔で見た場
合、各送信局に対して不公平な処理が行われることにな
っていた。また、キューからのパケットの取り出しが、
他のキューからのパケットの取り出し(あるいは、他の
キューの状態の確認)と交互に実行されているので、あ
る送信局が、バースト的に多数のパケットを生成して
も、それに呼応してルータが送信するパケットは、バー
スト性が損なわれたものとなってしまっていた。
【0008】そこで、本発明の目的は、ルータなどへの
使用に適したスケジューリング装置とスケジューリング
方法であって、複数のキューから、過去の履歴を反映し
た形で情報要素を読み出す新規なスケジューリング装置
とスケジューリング方法を提供することにある。
【0009】
【課題を解決するための手段】本発明の第1のスケジュ
ーリング装置は、入力された情報要素を記憶する複数の
キューから、情報要素を取り出すためのスケジューリン
グ装置であって、複数のキューのそれぞれに対して、そ
のキューから余分に取り出す情報要素の個数の上限を定
めるデータである読出個数データを記憶する記憶手段
と、複数のキューの中の1つのキューを巡回的に処理対
象として指定する指定手段と、この指定手段で指定され
たキューに情報要素が記憶されているか否かを判定する
判定手段と、この判定手段によって情報要素が記憶され
ていないと判定された場合に、記憶手段内の、指定手段
で指定されたキューに対応する読出個数データに1を加
算する加算手段と、判定手段によって情報要素が記憶さ
れていると判定された場合に、指定手段で指定されたキ
ューから、1個の情報要素を取り出すとともに、そのキ
ューに対応する読出個数データが1以上であるか否かを
判断し、読出個数データが1以上であった場合には、そ
のキューからその読出個数データを上限とする個数の情
報要素を取り出し、取り出した情報要素の個数を、その
キューに対応する読出個数データから減ずる情報要素取
出手段とを備える。
【0010】すなわち、第1のスケジューリング装置
は、各キューに対する読出個数データに、そのキューが
処理対象となった回数から、そのキューより実際に取り
出された情報要素の個数を減じた値を設定しつつ、巡回
的に、各キューを処理対象としていく。そして、処理対
象としたキュー内に複数の情報要素が記憶されていた場
合には、そのキューから連続して、読出個数データの
値、すなわち、情報要素の取り出しが行われなかった回
数に応じた数の情報要素が取り出される。
【0011】このように、第1のスケジューリング装置
では、過去の履歴を考慮した形で、情報要素の取り出し
が行われるので、各キュー(各キューに情報を入力する
装置あるいはプロセス)が、より公平に扱われることに
なる。また、第1のスケジューリング装置を、ルータに
適用すれば、バースト性を損なうことなく、パケット通
信が行えることになる。
【0012】第1のスケジューリング装置には、読出個
数データが所定値未満であるときに限り、読出個数デー
タに1を加算する加算手段を用いることもできる。この
ように構成した場合には、1個のキューから大量の情報
要素が連続して取り出されることを防止できることにな
る。
【0013】また、第1のスケジューリング装置に、指
定手段によって所定のキューが処理対象として指定され
たときに、情報要素が記憶されていないキューの個数を
計数する計数手段と、指定手段によって所定のキューが
再び指定されるまでの間に、各キューから余分に取り出
される情報要素の数の和が、計数手段による計数値を越
えないように情報要素取出手段を制御する制御手段とを
付加することも出来る。このようにスケジューリング装
置を構成した場合には、各キュー内の情報要素が取り出
されるまでに必要とされる時間の最大値が、他のキュー
内の情報要素の個数に依存しなくなる。
【0014】また、第1のスケジューリング装置に、各
キューに対して読出個数データの初期値を決定するため
に用いられる空カウント数を記憶する記憶手段と、記憶
手段内の、指定手段で指定されたキューに対応する読出
個数データと空カウント数にそれぞれ1を加算する加算
手段を採用し、所定の周期で、記憶手段内の各読出個数
データに、対応する空カウント数の値を設定するととも
に、各空カウント数に“0”を設定する設定手段を付加
することも出来る。このようにスケジューリング装置を
構成した場合には、必要以上に古い履歴が処理内容に反
映されないようにすることができる。
【0015】本発明の第2のスケジューリング装置は、
入力された情報要素を記憶する複数のキューから、情報
要素を取り出すためのスケジューリング装置であって、
複数のキューのそれぞれに対して、サイズデータを記憶
する記憶手段と、複数のキューの中の1つのキューを巡
回的に処理対象として指定する指定手段と、この指定手
段で指定されたキューの先頭に、そのキューに対応する
サイズデータ以下のサイズを有する情報要素が記憶され
ていなかった場合に、記憶手段内の、そのキューに対応
するサイズデータに規定値を加算する加算手段と、指定
手段で指定されたキューの先頭に、そのキューに対応す
るサイズデータ以下のサイズを有する情報要素が記憶さ
れていた場合に、その情報要素を取り出すとともに取り
出した情報要素のサイズをそのキューに対応するサイズ
データから減ずる処理を、そのキューの先頭にサイズデ
ータ以下のサイズを有する情報要素が存在しなくなるま
で繰り返す情報要素取出手段とを具備する。
【0016】すなわち、第2のスケジューリング装置
は、第1のスケジューリング装置と同様の制御を、各情
報要素のサイズを考慮した形で行う。第2のスケジュー
リング装置では、加算手段として、サイズデータが所定
値未満であるときに限り、読出個数データに規定値を加
算する手段を用いることが出来る。また、第2のスケジ
ューリング装置に、1つのキューから1個の情報要素が
取り出された後に取り出される情報要素のサイズの和
が、所定値を越えないように情報要素取出手段を制御す
る制御手段を付加しても良い。このようにスケジューリ
ング装置を構成した場合には、各キュー内の情報要素が
取り出されるまでに必要とされる時間の最大値が、他の
キュー内の情報要素の量に依存しなくなる。
【0017】また、第2のスケジューリング装置に、各
キューに対して、サイズデータの初期値を決定するため
に用いられる第2サイズデータをも記憶する記憶手段
と、記憶手段内の、指定手段で指定されたキューに対応
するサイズデータと第2サイズデータにそれぞれ規定値
を加算する加算手段を採用し、所定の周期で、記憶手段
内の各サイズデータに、対応する第2サイズデータの値
を設定するとともに、各第2サイズデータに“0”を設
定する設定手段を付加しても良い。このようにスケジュ
ーリング装置を構成した場合には、必要以上に古い履歴
が処理内容に反映されないようにすることができる。
【0018】本発明の第1のスケジューリング方法は、
入力された情報要素を記憶する複数のキューから、情報
要素を取り出すためのスケジューリング方法であって、
本スケジューリング方法では、複数のキューの中の1つ
のキューを巡回的に処理対象とし、処理対象とした各キ
ューに対して、そのキュー内に情報要素が記憶されてい
ない場合には、そのキューに対応する読出個数データに
1を加算し、そのキュー内に情報要素が記憶されていた
場合には、そのキューから、1個の情報要素を取り出す
とともに、そのキューの読出個数データが1以上である
か否かを判断し、読出個数データが1以上であった場合
には、そのキューからさらに読出個数データを上限とす
る個数の情報要素を取り出し、取り出した情報要素の個
数を読出個数データから減ずる処理が行われる。
【0019】本発明の第2のスケジューリング方法は、
入力された情報要素を記憶する複数のキューから、情報
要素を取り出すためのスケジューリング方法であって、
本スケジューリング方法では、複数のキューの中の1つ
のキューを巡回的に処理対象として指定し、処理対象と
した各キューに対して、そのキューの先頭に、そのキュ
ーに対応するサイズデータ以下のサイズを有する情報要
素が記憶されていなかった場合には、そのキューに対応
するサイズデータに規定値を加算し、そのキューの先頭
に、そのキューに対応するサイズデータ以下のサイズを
有する情報要素が記憶されていた場合には、その情報要
素を取り出すとともに取り出した情報要素のサイズをそ
のキューに対応するサイズデータから減ずる処理を、そ
のキューの先頭にサイズデータ以下のサイズを有する情
報要素が存在しなくなるまで繰り返す処理が行われる。
【0020】
【発明の実施の形態】以下、本発明を図面を参照して具
体的に説明する。 <第1実施形態>図1に、本発明によるスケジューリン
グ方法(装置)を適用したルータの概略構成を示す。第
1実施形態のルータ10は、サブネットAとサブネット
Bとを接続するための装置であり、図示したように、パ
ケット分類部11とキュー121〜12Nと出力バッファ
13とキュー履歴テーブル14とスケジューリング部1
5とを備える。
【0021】キュー121〜12Nは、サブネットBに送
出すべきパケットを一時的に記憶するためのバッファで
あり、それぞれ、サブネットAに接続されている送信局
(端末)に対応づけられている。パケット分類部11
は、サブネットAから受信したパケットを、そのパケッ
トに含まれる送信元アドレスに応じたキュー12に供給
する。また、パケット分類部11は、そのようなパケッ
トの供給処理と並行して、キュー履歴テーブル14の内
容を書き換える処理を行う(詳細は後述する)。出力バ
ッファ13は、各キュー12内のパケットを一時的に記
憶するためのバッファであり、出力バッファ13内のパ
ケットは、入力された順でサブネットBに送出される。
【0022】キュー履歴テーブル14は、パケット分類
部11とスケジューリング部15によってその内容が更
新されるテーブルである。図2に示したように、キュー
履歴テーブル14には、キューを識別するための情報で
あるキューIDに対応づけた形で、アクティブ・フラグ
(a_flag)と空カウント数(e_count)とが記憶される。
【0023】パケット分類部11は、パケットの受信状
況に応じて、キュー履歴テーブル14内のa_flagの値を
書き換える。具体的には、キューIDがk(k=1〜
N)であるキュー12k(以下、キューkと表記する)
に対応する送信局からのパケットを受信した場合、パケ
ット分類部11は、そのパケットをキューkに供給する
とともに、キュー履歴テーブル14内のキューkに対応
するアクティブ・フラグa_flagkに“1”を設定する。
また、キューm(m=1〜N)に対応する送信局からの
パケットを所定時間(例えば60秒)受信しなかった場
合、パケット分類部11は、キューmに対応するa_flag
mに“0”を設定する。
【0024】スケジューリング部15は、各キュー12
に記憶されたパケットを出力バッファ13に送出するた
めの制御を行う。スケジューリング部15は、その制御
の際、キュー履歴テーブル14のa_flagの値を参照し、
また、e_countの値を参照、更新する。
【0025】以下、本実施形態のルータ及びスケジュー
リング部15の動作を具体的に説明する。図3に、ルー
タ起動後の、スケジューリング部15の動作手順を示
す。図示したように、本ルータの起動時、スケジューリ
ング部15は、まず、変数i、jにそれぞれ“1”を設
定するとともに、キュー履歴テーブル14の内容を初期
化する(ステップS101)。このステップにおいて、
スケジューリング部15は、a_flagとe_countに、全て
“0”を設定することによって、キュー履歴テーブル1
4を初期化する。また、パケット分類部11は、スケジ
ューリング部15によるステップS101の実行後、前
述した処理(各キューへのパケットの供給と、キュー履
歴テーブル14内のa_flagの値の更新)の実行を開始す
る。
【0026】キュー履歴テーブル14等の初期化後、ス
ケジューリング部15は、キューIDがiであるキュー
のアクティブ・フラグa_flagiが“1”であるか否かを
判断する(ステップS102)。a_flagiが“1”でな
かった場合(ステップS102;N)、スケジューリン
グ部15は、変数iに次のキューのキューIDを設定す
るための処理(ステップS120〜S122)を実行す
る。すなわち、スケジューリング部15は、変数iの値
とキューIDの最大値Nとを比較し、変数iの値が、N
と一致していなかった場合(ステップS120;N)に
は、iに“1”を加える(ステップS121)。一方、
iとNとが一致していた場合(ステップS120;
Y)、スケジューリング部15は、iに“1”を設定す
る(ステップS122)。
【0027】このような手順で変数iに新たな値を設定
した後、スケジューリング部15は、jの値が所定値j
maxと一致しているか否かを判断(ステップS123)
する。そして、jの値がjmaxと異なっていた場合(ス
テップS123;N)には、変数jに“1”を加算(ス
テップS124)し、ステップS102に戻る。一方、
jの値がjmaxと一致していた場合(ステップS12
3;Y)、スケジューリング部15は、変数jに“1”
を設定するとともに、キュー履歴テーブル14内の全て
のe_countに“0”を設定(ステップS125)し、ス
テップS102に戻る。ステップS123〜S125を
行っている理由については後ほど説明する。
【0028】このように、a_flagiが“1”でなかった
場合、スケジューリング部15は、i,j(およびe_co
unt)の値の変更だけを行う。一方、a_flagiが“1”で
あった場合(ステップS102;Y)、すなわち、パケ
ット分類部11によってアクティブであると判定されて
いるキューiが対象となった場合、スケジューリング部
15は、キューiおよびキュー履歴テーブル14に対し
て、以下の処理を実行する。
【0029】まず、スケジューリング部15は、キュー
iの状態をチェックし(ステップS103)、キューi
内にパケットが記憶されているか否かを判断する(ステ
ップS104)。キューi内にパケットが記憶されてい
なかった場合(ステップS104;N)、スケジューリ
ング部15は、キュー履歴テーブル14内の、キューi
に関する空カウント数e_countiに“1”を加算する(ス
テップS105)。そして、スケジューリング部15
は、変数iの値の変更等(ステップS120〜S12
5)を行った後に、ステップS102に戻る。
【0030】すなわち、スケジューリング部15は、処
理対象としたキュー内に取り出すべきパケットが存在し
ていなかった場合、そのキューに対応するe_countをカ
ウントアップした後に、次のキューに対する処理を開始
する。
【0031】これに対して、キューiにパケットが記憶
されていた場合(ステップS104;Y)、スケジュー
リング部15は、キューi内に記憶されている先頭のパ
ケットを出力バッファ13へ送出する(ステップS10
6)。その後、キュー履歴テーブル14内の、そのキュ
ーに関する空カウント数e_countiが“1”以上であるか
否かを判断する(ステップS107)。
【0032】e_countiが“1”以上であった場合(ステ
ップS107;Y)、スケジューリング部15は、キュ
ーiの状態を再度チェックし(ステップS108)、キ
ューiにパケットが記憶されていた場合(ステップS1
09;Y)には、キュー履歴テーブル14内のe_counti
の値を“1”減少させる(ステップS110)ととも
に、キューi内に記憶されている先頭のパケットを出力
バッファ13へ送出し(ステップS111)、ステップ
S107に戻る。
【0033】スケジューリング部15は、e_counti=0
が成立していることを検出した場合(ステップS10
7;N)と、キューi内にパケットが記憶されていない
ことを検出したとき(ステップS109;N)に、ステ
ップS107〜S111のループを終了し、変数iの値
の変更等(ステップS120〜S125)を行った後
に、ステップS102に戻り、次のキューに対する処理
を開始する。
【0034】すなわち、スケジューリング部15は、e_
countiが“0”であるキューi内にパケットが記憶され
ていた場合、ステップS106において、キューiから
パケットを1個だけ取り出した後に、次のキューに対す
る処理を開始する。一方、e_countiが“1”以上である
キューi内にパケットが記憶されていた場合には、ステ
ップS106を実行することによって1個のパケットを
取り出した後に、ステップS107〜S111のループ
を繰り返すことによって、キューiから、さらに、幾つ
かのパケットを取り出す。そして、キューi内に取り出
すべきパケットが存在しなくなったとき、あるいは、e_
countiが“0”となったときに、次のキュー(送信局)
に関する処理を開始する。
【0035】そして、各キューに対して上述のような処
理を繰り返している間に、jがjmaxと一致した場合
(ステップS123;Y)には、必要以上に古い履歴が
参照されないようにするために、各e_countの値に
“0”を設定する(ステップS125)。
【0036】このように、スケジューリング部15は、
e_countiに、キューiの使用履歴に関するデータ(キュ
ーiが処理対象となった回数から、キューiより実際に
取り出されたパケット数を減じた値)を設定しつつ、e_
countiが“0”に近づくように、キューiからのパケッ
トの読み出し個数を制御する。すなわち、スケジューリ
ング部15は、送信局毎のパケットの処理数が均一化す
るように各キューからのパケットの読み出し個数を制御
する。このため、本ルータによれば、公平待ち行列法を
用いた従来のルータに比して、各送信局がより公平に取
り扱われることになる。また、バースト的にパケットが
送信されてきた場合、最初のパケットを受信する以前に
計数したe_countの値に応じた数のパケットが連続して
送信されることになるので、本ルータによれば、バース
ト性を損なうことなく、パケットの送信が行われること
にもなる。
【0037】<変形形態>スケジューリング部15は、
各種の変形が可能である。たとえば、ステップS102
の判断を行わないようにしても良い。すなわち、ステッ
プ101あるいはステップ125の次に、ステップS1
03が実行されるようにスケジューリング部15を構成
することもできる。また、ステップS105におけるe_
countiのカウントアップが、e_countiが所定値未満であ
るときに限り行われるように構成しても良い。
【0038】さらに、各キューに対する処理が一通り行
われるまでの間に各キューから取り出されるパケットの
総数が、キュー総数を越えないように、各キューから余
分に取り出されるパケットの数(ステップS111の実
行回数)が制御されるようにスケジューリング部15を
構成することもできる。
【0039】このような制御は、例えば、スケジューリ
ング部15の動作手順を以下のように変更することによ
って実現できる。まず、ステップS102の直前に、i
の値が初期値と一致している場合に、パケットが記憶さ
れていないキュー数を計数し、その計数値を、ある変数
(例えばCV)に記憶するステップを加える。また、ス
テップS110において、e_countiに対する処理ととも
に、CVから“1”を減ずる処理が行われるようにす
る。そして、ステップS107において、CVが“1”
以上であり、かつ、e_countiが“1”以上である場合に
は、Y側への分岐が行われ、それ以外の場合には、N側
への分岐が行われるようにする。
【0040】また、ルータ全体としても、各種の変形が
可能である。例えば、各キューへの振り分けが、送信局
アドレス以外の情報(受信局アドレス、送信局アドレス
と受信局アドレスのペアなど)によって行われるように
変形することが出来る。
【0041】<第2実施形態>第1実施形態のルータで
は、必要以上に古い履歴が、各キューからのパケットの
読み出し個数に反映されないようにするために、各e_co
untの値を周期的に“0”に設定し直されていた。これ
に対して、第2実施形態のルータでは、必要以上に古い
履歴が、各キューからのパケットの読み出し個数に反映
されないようにするために、それとは異なる制御が行わ
れる。
【0042】第2実施形態のルータは、第1実施形態の
ルータを変形したものであり、第1実施形態のルータ
(図1参照)と同様に、パケット分類部と複数のキュー
と出力バッファとキュー履歴テーブルとスケジューリン
グ部とを備える。ただし、キュー履歴テーブルの構成
と、スケジューリング部の動作内容が、第1実施形態の
ルータとは異なっている。
【0043】図4に、第2実施形態のルータが備えるキ
ュー履歴テーブルの構成を示す。図示したように、キュ
ー履歴テーブルには、アクティブ・フラグ(a_flag)と空
カウント数(e_count)に加え、空カウント数の初期値を
算出するためのデータであるC1、C2とが記憶される。
【0044】以下、図5を用いて、第2実施形態のルー
タ及びスケジューリング部の動作手順を説明する。図5
に示した第2実施形態のスケジューリング部の動作手順
は、第1実施形態のスケジューリング部の動作手順(図
3)の一部を変えたものであるので、ここでは、動作内
容が異なるステップに関する説明だけを行うことにす
る。
【0045】本ルータの起動時、スケジューリング部
は、まず、i、jに“1”を設定するとともに、a_fla
g、e_count、C1、C2に全て“0”を設定することに
よって、キュー履歴テーブルを初期化する(ステップS
201)。
【0046】その後、スケジューリング部は、第1実施
形態のスケジューリング部15と同様に、パケット分類
部によって更新されるa_flagの値に応じた分岐を行う
(ステップS202)。そして、キューiの状態を最初
にチェック(ステップS203)した結果、パケットが
記憶されていないことを検出した場合(ステップS20
4;N)、スケジューリング部は、C1iに“1”を加算
する(ステップS205)。
【0047】スケジューリング部は、j=jmaxが成立
するまで、各iに対して、C1iをカウントアップする処
理か、キューi内のパケットを出力バッファに送出する
処理を繰り返す。そして、j=jmaxが成立したときに
(ステップS223;Y)に、jに“1”を設定すると
ともに、1〜Nまでの各kに対して、C1kとC2kとを加
算した値を、e_countkに設定する処理と、C2kにC1k
値を設定する処理と、C1kに“0”を設定する処理とを
実行する(ステップS225)。
【0048】すなわち、スケジューリング部は、各キュ
ーに対して、そのキューが処理対象となったときにパケ
ットが存在していなかった回数を変数C1に記憶してい
く。そして、jがjmaxと一致したときに、C1の値とC
2の値(=前回のC1の値)との和をe_countの初期値と
して設定する。また、同様の処理を繰り返すために、C
2に今回のC1の値を設定した後に、C1に“0”を設定
する。
【0049】このように動作するスケジューリング部を
用いても、第1実施形態と同様に、公平待ち行列法を用
いた従来のルータに比して、各送信局がより公平に取り
扱われるルータを形成することができる。
【0050】なお、ステップS205において、C1i
カウントアップとともに、e_countiのカウントアップが
行われるようにスケジューリング部を構成しても良い。
また、各キューに対して、そのキューが処理対象となっ
たときにパケットが存在していなかった回数を記憶する
ための変数をさらに増やしておき、e_countの初期値の
算出が3個以上のデータから行われるようにしても良
い。
【0051】逆に、変数C2を用いずにe_countの初期
値設定が行われるようにスケジューリング部を構成して
も良い。すなわち、ステップS225において、1〜N
までの各kに対して、C1kの値を、e_countkに設定する
処理と、C1kに“0”を設定する処理とが行われるよう
にしても良い。
【0052】<第3実施形態>第3実施形態のルータ内
に設けられているスケジューリング部は、パケットのサ
イズを考慮してスケジューリングを行う。第3実施形態
のルータの構成、動作は、第1実施形態のルータと共通
する部分が多いので、ここでは、構成あるいは動作が異
なる部分であるキュー履歴テーブルとスケジューリング
部の説明だけを行うことにする。
【0053】図6に、第3実施形態のルータが備えるキ
ュー履歴テーブルの構成を示す。図示したように、キュ
ー履歴テーブルには、各キューIDに対する、アクティ
ブ・フラグa_flagとサイズデータSとが記憶される。
【0054】以下、図7を用いて、第3実施形態のルー
タが備えるスケジューリング部の動作を説明する。本ル
ータの起動時、スケジューリング部は、まず、変数i、
jにそれぞれ“1”を設定するとともに、キュー履歴テ
ーブル内のa_flagとSに、全て“0”を設定することに
よって、キュー履歴テーブルを初期化する(ステップS
301)。
【0055】キュー履歴テーブル等の初期化後、スケジ
ューリング部は、キューIDがiであるキューのアクテ
ィブ・フラグa_flagiが“1”であるか否かを判断する
(ステップS302)。そして、a_flagiが“1”でな
かった場合(ステップS302;N)、スケジューリン
グ部は、変数iに次のキューのキューIDを設定するた
めの処理(ステップS320〜S322)を実行し、ス
テップS302に戻る。
【0056】a_flagiが“1”であることを検出した場
合(ステップS302;Y)、すなわち、パケット分類
部によってアクティブであると判断されているキューi
が対象となった場合、スケジューリング部は、キューi
の先頭に、そのキューに対応するサイズデータSi以下
のサイズを有するパケットが存在しているか否かを判断
する(ステップS303)。
【0057】キューi内にパケットが記憶されていなか
った場合と、記憶されているパケットのサイズがSi
越えていた場合(ステップS303;N)、スケジュー
リング部は、Siがサイズデータの基準値であるSstdよ
りも大きいか否かを判断する(ステップS304)。そ
して、SiがSstd以下であった場合(ステップS30
4;N)には、Siに規定値δSを加え(ステップS3
05)、ステップS320に進む。一方、SiがSstdを
越えていた場合(ステップS304;Y)には、Si
値を変更することなく、ステップS320に進む。
【0058】キューiの先頭にSi以下のサイズを有す
るパケットが存在していた場合(ステップS303;
Y)、スケジューリング部は、キューi内の先頭のパケ
ットを出力バッファに送出する(ステップS307)。
次いで、スケジューリング部は、Siの値を、送出した
パケットサイズ分減少させ(ステップS308)、再
度、キューiの先頭に、そのキューに対応するサイズデ
ータSi以下のサイズを有するパケットが存在している
か否かを判断する(ステップS309)。
【0059】そして、キューiの先頭にSi以下のサイ
ズを有するパケットが存在していた場合(ステップS3
09;Y)、スケジューリング部は、キューi内の先頭
のパケットを出力バッファに送出し(ステップS31
0)、ステップS308に戻る。スケジューリング部
は、キューiの先頭にSi以下のサイズを有するパケッ
トが存在していないことを検出した際(ステップS30
9;N)に、ステップS308〜S310のループを終
了し、ステップS320に進む。
【0060】第3の実施形態のスケジューリング部も、
各種の変形が可能である。例えば、各キューに対する処
理が一通り行われるまでの間に、各キューから取り出さ
れるパケットサイズの総量が、予め定められた総量を越
えないように、各キューから余分に取り出すパケットの
数(量)が制御されるようにスケジューリング部を構成
することもできる。
【0061】また、ステップS221およびS222の
直後に、所定周期で、Siを“0”にリセットするルー
チン(図3のステップS123〜S125相当のルーチ
ン)を設けても良い。
【0062】なお、第1ないし第3実施例では、ルータ
を例に、本発明によるスケジューリング装置(スケジュ
ーリング部+キュー履歴テーブル)の説明を行ったが、
本発明は、ルータ以外にも適用可能である。例えば、各
キューに記憶されるデータを、対応する情報処理装置か
らのプリンタデータとすることもできるし、コマンドと
することもできる。
【0063】
【発明の効果】以上、詳細に説明したように、本発明の
スケジューリング装置およびスケジューリング方法で
は、複数のキューからの情報要素を取り出しが、各キュ
ーの使用履歴を考慮した形で行われるので、各キュー内
に供給された情報要素を、より公平に取り扱うことが可
能となる。
【図面の簡単な説明】
【図1】本発明の第1実施形態によるルータの機能ブロ
ック図である。
【図2】第1実施形態のルータに備えられているキュー
履歴テーブルの概要を示す説明図である。
【図3】第1実施形態のルータに備えられているスケジ
ューリング部の動作手順を示す流れ図である。
【図4】第2実施形態のルータに備えられているキュー
履歴テーブルの概要を示す説明図である。
【図5】第2実施形態のルータに備えられているスケジ
ューリング部の動作手順を示す流れ図である。
【図6】第3実施形態のルータに備えられているキュー
履歴テーブルの概要を示す説明図である。
【図7】第3実施形態のルータに備えられているスケジ
ューリング部の動作手順を示す流れ図である。
【図8】ルータを用いたインターネットワーキング例を
示した図である。
【図9】従来の公平待ち行列法を用いたルータの機能ブ
ロック図である。
【図10】従来の公平待ち行列法を用いたルータによる
スケジューリング手順を示す説明図である。
【符号の説明】 10、30 ルータ 11、31 パケット分類部 12、32 キュー 13、33 出力バッファ 14 キュー履歴テーブル 15 スケジューリング部

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 入力された情報要素を記憶する複数のキ
    ューから、情報要素を取り出すためのスケジューリング
    装置であって、 前記複数のキューのそれぞれに対して、そのキューから
    余分に読み出す情報要素の個数の上限を定めるデータで
    ある読出個数データを記憶する記憶手段と、 前記複数のキューの中の1つのキューを巡回的に処理対
    象として指定する指定手段と、 この指定手段で指定されたキューに情報要素が記憶され
    ているか否かを判定する判定手段と、 この判定手段によって情報要素が記憶されていないと判
    定された場合に、前記記憶手段内の、前記指定手段で指
    定されたキューに対応する読出個数データに1を加算す
    る加算手段と、 前記判定手段によって情報要素が記憶されていると判定
    された場合に、前記指定手段で指定されたキューから、
    1個の情報要素を取り出すとともに、そのキューに対応
    する読出個数データが1以上であるか否かを判断し、読
    出個数データが1以上であった場合には、そのキューか
    らその読出個数データを上限とする個数の情報要素を取
    り出し、取り出した情報要素の個数を、そのキューに対
    応する読出個数データから減ずる情報要素取出手段とを
    具備することを特徴とするスケジューリング装置。
  2. 【請求項2】 前記加算手段は、読出個数データが所定
    値未満であるときに限り、読出個数データに1を加算す
    ることを特徴とする請求項1記載のスケジューリング装
    置。
  3. 【請求項3】 さらに、前記指定手段によって所定のキ
    ューが処理対象として指定されたときに、情報要素が記
    憶されていないキューの個数を計数する計数手段と、 前記指定手段によって前記所定のキューが再び指定され
    るまでの間に、各キューから余分に取り出される情報要
    素の数の和が、前記計数手段による計数値を越えないよ
    うに前記情報要素取出手段を制御する制御手段とを備え
    ることを特徴とする請求項1記載のスケジューリング装
    置。
  4. 【請求項4】 前記記憶手段は、さらに、各キューに対
    して、読出個数データの初期値を決定するために用いら
    れる空カウント数を記憶し、 前記加算手段は、前記記憶手段内の、前記指定手段で指
    定されたキューに対応する読出個数データと空カウント
    数にそれぞれ1を加算し、 さらに、所定の周期で、前記記憶手段内の各読出個数デ
    ータに、対応する空カウント数の値を設定するととも
    に、各空カウント数に“0”を設定する設定手段を備え
    ることを特徴とする請求項1記載のスケジューリング装
    置。
  5. 【請求項5】 入力された情報要素を記憶する複数のキ
    ューから、情報要素を取り出すためのスケジューリング
    装置であって、 前記複数のキューのそれぞれに対して、サイズデータを
    記憶する記憶手段と、 前記複数のキューの中の1つのキューを巡回的に処理対
    象として指定する指定手段と、 この指定手段で指定されたキューの先頭に、そのキュー
    に対応するサイズデータ以下のサイズを有する情報要素
    が記憶されていなかった場合に、前記記憶手段内の、そ
    のキューに対応するサイズデータに規定値を加算する加
    算手段と、 前記指定手段で指定されたキューの先頭に、そのキュー
    に対応するサイズデータ以下のサイズを有する情報要素
    が記憶されていた場合に、その情報要素を取り出すとと
    もに取り出した情報要素のサイズをそのキューに対応す
    るサイズデータから減ずる処理を、そのキューの先頭に
    サイズデータ以下のサイズを有する情報要素が存在しな
    くなるまで繰り返す情報要素取出手段とを具備すること
    を特徴とするスケジューリング装置。
  6. 【請求項6】 前記加算手段は、サイズデータが所定値
    未満であるときに限り、読出個数データに規定値を加算
    することを特徴とする請求項5記載のスケジューリング
    装置。
  7. 【請求項7】 さらに、1つのキューから1個の情報要
    素が取り出された後に取り出される情報要素のサイズの
    和が、所定値を越えないように前記情報要素取出手段を
    制御する制御手段とを備えることを特徴とする請求項5
    記載のスケジューリング装置。
  8. 【請求項8】 前記記憶手段は、さらに、各キューに対
    して、サイズデータの初期値を決定するために用いられ
    る第2サイズデータを記憶し、 前記加算手段は、前記記憶手段内の、前記指定手段で指
    定されたキューに対応するサイズデータと第2サイズデ
    ータにそれぞれ規定値を加算し、 さらに、所定の周期で、前記記憶手段内の各サイズデー
    タに、対応する第2サイズデータの値を設定するととも
    に、各第2サイズデータに“0”を設定する設定手段を
    備えることを特徴とする請求項5記載のスケジューリン
    グ装置。
  9. 【請求項9】 入力された情報要素を記憶する複数のキ
    ューから、情報要素を取り出すためのスケジューリング
    方法であって、 前記複数のキューの中の1つのキューを巡回的に処理対
    象とし、 処理対象とした各キューに対して、 そのキュー内に情報要素が記憶されていない場合には、
    そのキューに対応する読出個数データに1を加算し、 そのキュー内に情報要素が記憶されていた場合には、そ
    のキューから、1個の情報要素を取り出すとともに、そ
    のキューの読出個数データが1以上であるか否かを判断
    し、読出個数データが1以上であった場合には、そのキ
    ューからさらに読出個数データを上限とする個数の情報
    要素を取り出し、取り出した情報要素の個数を読出個数
    データから減ずることを特徴とするスケジューリング方
    法。
  10. 【請求項10】 入力された情報要素を記憶する複数の
    キューから、情報要素を取り出すためのスケジューリン
    グ方法であって、 前記複数のキューの中の1つのキューを巡回的に処理対
    象として指定し、 処理対象とした各キューに対して、 そのキューの先頭に、そのキューに対応するサイズデー
    タ以下のサイズを有する情報要素が記憶されていなかっ
    た場合には、そのキューに対応するサイズデータに規定
    値を加算し、 そのキューの先頭に、そのキューに対応するサイズデー
    タ以下のサイズを有する情報要素が記憶されていた場合
    には、その情報要素を取り出すとともに取り出した情報
    要素のサイズをそのキューに対応するサイズデータから
    減ずる処理を、そのキューの先頭にサイズデータ以下の
    サイズを有する情報要素が存在しなくなるまで繰り返す
    ことを特徴とするスケジューリング方法。
JP8155746A 1996-06-17 1996-06-17 スケジューリング装置およびスケジューリング方法 Withdrawn JPH104431A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8155746A JPH104431A (ja) 1996-06-17 1996-06-17 スケジューリング装置およびスケジューリング方法
US08/790,443 US5920568A (en) 1996-06-17 1997-01-29 Scheduling apparatus and scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8155746A JPH104431A (ja) 1996-06-17 1996-06-17 スケジューリング装置およびスケジューリング方法

Publications (1)

Publication Number Publication Date
JPH104431A true JPH104431A (ja) 1998-01-06

Family

ID=15612528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8155746A Withdrawn JPH104431A (ja) 1996-06-17 1996-06-17 スケジューリング装置およびスケジューリング方法

Country Status (2)

Country Link
US (1) US5920568A (ja)
JP (1) JPH104431A (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260072B1 (en) * 1997-06-12 2001-07-10 Lucent Technologies Inc Method and apparatus for adaptive routing in packet networks
US6034960A (en) * 1997-12-04 2000-03-07 Nortel Networks Corporation ATM service scheduler using reverse-binary scattering and time-space mapping
JPH11275107A (ja) * 1998-03-24 1999-10-08 Nec Corp スケジューリング装置、スケジューリング方法および通信制御装置
US6570876B1 (en) * 1998-04-01 2003-05-27 Hitachi, Ltd. Packet switch and switching method for switching variable length packets
US6584509B2 (en) * 1998-06-23 2003-06-24 Intel Corporation Recognizing audio and video streams over PPP links in the absence of an announcement protocol
FR2782434B1 (fr) * 1998-08-13 2002-12-20 Alsthom Cge Alkatel Methode de gestion d'une file d'attente de paquets numeriques
US7020712B1 (en) * 1998-09-30 2006-03-28 Cisco Technology, Inc. Reducing CPU overhead in the forwarding process in an inbound/outbound controller for a router
US6574230B1 (en) * 1998-12-18 2003-06-03 Nortel Networks Limited Scheduling technique for delayed queue service
US7382736B2 (en) 1999-01-12 2008-06-03 Mcdata Corporation Method for scoring queued frames for selective transmission through a switch
EP1142258B1 (en) * 1999-01-15 2003-10-15 Nokia Corporation Packet concatenation method and apparatus
GB2360168B (en) 2000-03-11 2003-07-16 3Com Corp Network switch including hysteresis in signalling fullness of transmit queues
US6885666B1 (en) * 2000-08-14 2005-04-26 Advanced Micro Devices, Inc. Apparatus and method in a network switch for synchronizing transfer of a control tag to a switch fabric with transfer of frame data to a buffer memory
AU2002235282A1 (en) * 2000-10-26 2002-05-06 Greg Penbe Device, system and method for a rotating search engine
US7230917B1 (en) * 2001-02-22 2007-06-12 Cisco Technology, Inc. Apparatus and technique for conveying per-channel flow control information to a forwarding engine of an intermediate network node
DE10125337A1 (de) * 2001-05-23 2002-07-18 Infineon Technologies Ag Verfahren zum hohen Durchsatz von Datenpaketen durch Netzknoten und Netzknoten mit hoher Durchsatzrate
US20030067874A1 (en) * 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
US7324452B2 (en) * 2002-01-14 2008-01-29 Fujitsu Limited Weighted credit-based arbitration using credit history
JP3947424B2 (ja) * 2002-05-02 2007-07-18 株式会社エヌ・ティ・ティ・ドコモ パケット送信制御装置、移動ノード、制御ノード、パケット通信方法、及びパケット通信システム
US8199764B2 (en) * 2003-08-25 2012-06-12 Cisco Technology, Inc. Scalable approach to large scale queuing through dynamic resource allocation
US20050190779A1 (en) * 2004-03-01 2005-09-01 Cisco Technology, Inc., A California Corporation Scalable approach to large scale queuing through dynamic resource allocation
EP1665663B1 (en) * 2003-08-25 2012-05-30 Cisco Technology, Inc. A scalable approach to large scale queuing through dynamic resource allocation
US7453798B2 (en) * 2004-02-19 2008-11-18 Internationl Business Machines Corporation Active flow management with hysteresis
FR2877176B1 (fr) * 2004-10-22 2007-04-20 Agence Spatiale Europeenne Procede et dispositif pour ordonnancer et transmettre des paquets de donnees a partir d'un emetteur commun vers une pluralite d'utilisateurs partageant un canal de transmission coummun.
US8085766B2 (en) * 2005-07-06 2011-12-27 Broadcom Corporation S-flow in a network device
JP4750047B2 (ja) * 2006-03-31 2011-08-17 株式会社リコー 位置ずれ検出装置、位置ずれ検出方法、位置ずれ検出プログラムおよび記録媒体
US20100312928A1 (en) * 2009-06-09 2010-12-09 Brownell Paul V System and method for operating a communication link
US9171042B1 (en) * 2013-02-25 2015-10-27 Emc Corporation Parallel processing database tree structure

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231633A (en) * 1990-07-11 1993-07-27 Codex Corporation Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
US5268900A (en) * 1991-07-05 1993-12-07 Codex Corporation Device and method for implementing queueing disciplines at high speeds
KR960003783B1 (ko) * 1993-11-06 1996-03-22 한국전기통신공사 광대역 종합정보통신망 가입자 액세스 장치의 비동기 전달방식(atm) 다중화 처리 장치 및 방법

Also Published As

Publication number Publication date
US5920568A (en) 1999-07-06

Similar Documents

Publication Publication Date Title
JPH104431A (ja) スケジューリング装置およびスケジューリング方法
US5418912A (en) System and method for controlling buffer transmission of data packets by limiting buffered data packets in a communication session
US5937169A (en) Offload of TCP segmentation to a smart adapter
JP3435293B2 (ja) パケットスケジューリング装置及びパケット転送方法
US7292532B2 (en) Traffic shaping apparatus and traffic shaping method
US8913618B2 (en) Reordering packets
US5838904A (en) Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network
US4864495A (en) Apparatus for controlling vacant areas in buffer memory in a pocket transmission system
US7965708B2 (en) Method and apparatus for using meta-packets in a packet processing system
US8000247B2 (en) Bandwidth management apparatus
US5940597A (en) Method and apparatus for periodically updating entries in a content addressable memory
US5450410A (en) Method and apparatus for constant bit rate traffic in fast packet networks
JP2000196628A (ja) 輻輳管理方法及びシステム
GB2382741A (en) Packet scheduling using a credit based round robin in a high speed communication network
EP1973282A1 (en) Port rate smoothing in an avionics network
US7248584B2 (en) Network packet processing
US6957267B2 (en) Data packet processing
US20030202516A1 (en) Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device
US20030035372A1 (en) Method and system for managing packets in a shared memory buffer that serves multiple output links
EP1362465B1 (en) System and method for linking frame data by inserting qualifiers in control blocks
US7733873B2 (en) Coordination of calendar searches in a network scheduler
US20040174877A1 (en) Load-balancing utilizing one or more threads of execution for implementing a protocol stack
US6721798B1 (en) Method and apparatus for converting IP datagram to/from ethernet frames
JP2953739B2 (ja) バッファ制御方式
EP1493300B1 (en) Protocol multiplexing systems and methods using timers and predetermined triggering events to ensure forming carrying packets comprising multiplexed packets belonging to only one virtual channel

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030902