JP3804940B2 - Cell scheduling method - Google Patents

Cell scheduling method Download PDF

Info

Publication number
JP3804940B2
JP3804940B2 JP2002178197A JP2002178197A JP3804940B2 JP 3804940 B2 JP3804940 B2 JP 3804940B2 JP 2002178197 A JP2002178197 A JP 2002178197A JP 2002178197 A JP2002178197 A JP 2002178197A JP 3804940 B2 JP3804940 B2 JP 3804940B2
Authority
JP
Japan
Prior art keywords
cell
value
time
unit
counted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002178197A
Other languages
Japanese (ja)
Other versions
JP2004023609A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002178197A priority Critical patent/JP3804940B2/en
Publication of JP2004023609A publication Critical patent/JP2004023609A/en
Application granted granted Critical
Publication of JP3804940B2 publication Critical patent/JP3804940B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ATMセル等の固定長パケット(以降、「セル」と記載する)に対するセルシェーピング装置のセルスケジューリング方法に係わり、特に、GCRA方式で実現されたセルスケジューリング方法に関する。
【0002】
【従来の技術】
セルシェーピング装置(以下、シェーパと呼ぶ)とは、コネクション毎に定められたトラヒック特性値に適合する様に、必要に応じてセルに遅延時間を付与する装置のことである。
従来の、シェーパの実現方式には、原理的に異なる2つの方式が存在する。一つはトークン方式、もう一つはGCRA方式である。
従来のトークン方式によるシェーパの実現例を図1に示す。同図において、101は入力部、102,103はキュー、104,105は送信タイミング生成部、106は調停部である。
この実現例において、従来のトークン方式によるシェーパの動作を説明する。
シェーパに到着したセルは、入力部101によってセルが所属するコネクションに対応したキューに格納される。
ここで、コネクションとはセルヘッダに含まれるVPI(Virtual Path Identifire;仮想パス識別子)、およびVCI(Virtual Channel Identifire;仮想チャネル識別子)フィールドの一部、あるいは全部によって識別される仮想的なパスやチャネルを意味する。
【0003】
キュー(102,103)は、先頭から到着順にセルを格納するもので、コネクション対応に存在する。
送信タイミング生成部(104,105)は、キュー(102,103)の先頭のセルが送信可能となった事を示すタイミング信号を生成するもので、コネクションに対応したキュー毎に存在する。
特許第3232036号や特許第3109491号に示される通り、送信タイミング生成部(104,105)は、コネクション毎のトラヒック特性値に応じて、クロック信号を分周する事によってタイミング信号を生成する方式で実現できる。
調停部106は、セルが送信可能となった事を示すタイミング信号が生成されたキュー(102,103)の先頭から、セルを取り出して回線に送信する。
この際に、セルが送信可能となったキュー(102,103)が複数存在する場合、調停部106は、キュー間に予め設定された固定優先度、ラウンドロビン、ランダムやこれらの組み合わせ等の調停規則に基づいてセルを取り出すキューを選択する。
【0004】
従来のGCRA方式によるシェーパの実現例を図2に示す。この図2に示す実現例は、特開2001−274795号公報に記載されたシェーピング装置である。同図において、201はトラヒック特性値、パラメータ値を記憶する記憶部、202は時計部、203はセルスケジューリング部、204はセル送信部、205、206はキュー、207は入力部である。
この実現例において、従来のGCRA方式によるシェーパの動作例を説明する。
記憶部201はコネクションの識別子の値でアドレッシングされる配列で構成される。ここで、コネクションとはセルヘッダに含まれるVPI、およびVCIフィールドの一部、あるいは全部によって識別される仮想的なパスやチャネルを意味する。
図2に示す様に、シェーパに到着したセルは、入力部207によってセルが所属するコネクションに対応したキュー(205,206)に格納される。
キュー(205,206)は、先頭から到着順にセルを格納するもので、コネクション対応に存在する。
【0005】
セルがキュー(205,206)の先頭に達した際に、キュー(205,206)の先頭に達したセルのコネクションに対応したトラヒック特性値、パラメータ値が記憶部201から、セルスケジューリング部203に入力される。
セルスケジューリング部203は、入力されたトラヒック特性値、パラメータ値、および時計部202が計数する現在時刻に基づいて、キュー(205,206)の先頭に達したセルの送信可能時刻を決定してセル送信部204に出力する。
セル送信部204は、キュー(205,206)の先頭のセルヘのポインタ情報とセルスケジューリング部203によって決定したセルの送信可能時刻を対で記憶する。
セルを回線に送信する際に、送信するセルのコネクションに対応したコネクション毎のトラヒック特性値、パラメータ値が記憶部201からセルスケジューリング部203に入力される。
セルスケジューリング部203は、入力されたトラヒック特性値、パラメータ値、および時計部202が計数する現在時刻に基づいて、パラメータ値の更新値を決定して、記憶部201に出力し、記憶されているパラメータ値を更新する。
【0006】
従来のGCRA方式によるシェーパの実現例のセルスケジューリング部203におけるセルスケジューリング方法の実現例を特開2001−274795号公報に基づいて示す。
図3、および図4は、図2のセルスケジューリング部203のセルスケジューリング方法を示すフローチャートである。
このフローチャートでは、トラヒック特性値としてセル間隔の値と許容されるセル遅延時間のゆらぎを用い、セルの送信可能時刻を計算する際の現在時刻をta、パラメータ値を更新する際の現在時刻をte、セルが所属するコネクションに対応したトラヒック特性値のセル間隔の値をt、許容されるセル遅延時間のゆらぎの値をτ、セルが所属するコネクションに対応したパラメータ値をTAT、セルの送信可能時刻をtsとしている。
セルがキュー(図2の205,206)の先頭に達した際に、キューの先頭に達したセルのコネクションに対応したトラヒック特性値である許容されるセル遅延時間のゆらぎτ、パラメータ値TATが、記憶部(図2の201)からセルスケジューリング部(図2の203)に入力される。
【0007】
セルスケジューリング部は、入力された許容されるセル遅延時間のゆらぎτ、パラメータ値TAT、および時計部(図2の202)が計数する現在時刻taに基づいて、図3のフローチャートに示された動作を開始する。
ta<TAT−τの関係が成立する場合は、セルの送信可能時刻tsをTAT−τとする(ステップ301、303)。
TAT−τ≦taの関係が成立する場合は、セルの送信可能時刻tsをtaとする(ステップ301、302)。
決定したセルの送信可能時刻tsは、セル送信部(図2の204)に出力される。特願2002−028284号に示された通り、この際にパラメータ値TATをセルの優先度として、決定したセルの送信可能時刻tsと共にセル送信部に出力する場合もある。
【0008】
セルが回線に送信される際に、キューの先頭に達したセルのコネクションに対応したトラヒック特性値であるセル間隔の値tと、パラメータ値TATが、記憶部からセルスケジューリング部に入力される。
セルスケジューリング部は、入力されたセル間隔の値t、パラメータ値TAT、および時計部が計数する現在時刻teに基づいて、図4のフローチャートに示された動作を開始する。
te<TATの関係が成立する場合は、パラメータの値TATをTAT+tに更新する(ステップ401、403)。
TAT≦teの関係が成立する場合は、パラメータの値TATをte+tに更新する(ステップ401、402)。
決定したパラメータ値の更新値TATは記憶部に出力され、記憶されているパラメータ値が更新される。
【0009】
従来のGCRA方式によるシェーパのセル送信部の第1の動作例を、Pierre Boyer, Fabrice Guillemin, Michel Servel, Jean-Pierre Coudreuse, "Speceing Cells Protects and Enhances Utilization of ATM Network Links,"IEEE Network, Vol.6, No.5, Sep.1992.に基づいて示す。
図5は、上記の文献に記載された、図2のセル送信部204の実現例であり、一般にリングバッファ方式と呼ばれる。同図において、601は現在時刻に対応するバッファを示すポインタ、602,603,604はキューの先頭のセルヘのポインタを格納するバッファ1,バッファ2〜バッファNである。
従来のGCRA方式によるシェーパのセル送信部の動作をリングバッファ方式によって説明する。
リングバッファ方式とは、回線上で1セルの転送に要する時間(STM−1/STS−3c回線で約2.8μ秒)を1タイムスロットとし、図5に示す様に、タイムスロットに対応するバッファを環状に並べ、現在時刻に対応するタイムスロットのセルを順次送信する方式である。
具体的には、図5において、現在時刻に対応するバッファを示すポインタ601が示すバッファは、現在時刻のタイムスロットに対応するセルヘのポインタを格納する。
【0010】
ここで、1タイムスロットに要する時間で正規化された時刻、即ち(時刻/1タイムスロットに要する時間)を正規化時刻と呼ぶものとし、図5における正規化された現在時刻をt、バッファの数をNとすると、このバッファの右隣のバッファは送信可能時刻が正規化時刻(t+1)、左隣のバッファは正規化時刻(t+N−1)となるセルへのポインタを格納する。
また、現在時刻に対応するバッファを示すポインタ601は、時計部(図2の202)が計数する時刻に基づいて更新される。
リングバッファは、セルがキュー(図2の205,206)の先頭に達した際に、スケジューリング部(図2の203)によって決定したセルの送信可能時刻に対応するタイムスロットのバッファに、キューの先頭のセルヘのポインタを格納する事によって、セルヘのポインタと送信可能時刻を対で記憶する。
但し、送信可能時刻に対応するタイムスロットのバッファに既に他のセルヘのポインタが格納されている場合は、時刻順に空きのバッファを検索して、最も近い空きのバッファにセルヘのポインタを格納する。
リングバッファは、現在時刻に対応するバッファを示すポインタ601によって示されるバッファのポインタで識別されるセルを回線に送信する事によって、リングバッファに格納されているセルの中から送信可能時刻が現在時刻以前となるセルを検出して回線に送信する。
【0011】
従来のGCRA方式によるシェーパのセル送信部の第2の動作例を、Eugen Wallmeier, Tom Worster, "The Spacing Policser, An Algorithm for Efficient Peak Rate Bit Control in ATM Networks," ISS 1992, Oct.1992.に基づいて示す。
図6は、上記の文献に記載された、図2に示すセル送信部204の実現例であり、一般にカレンダ方式と呼ばれる。同図において、701は現在時刻に対応するリストを示すポインタ、702,703,704は各々キューの先頭のセルヘのポインタを格納するリストである。
リストとは、順序関係のある要素を記憶する際に用いられるデータ構造の事で、リストの先頭の要素を示すポインタ、後尾の要素を示すポインタ、リストに記憶される要素から成り、更に、各要素は格納される情報、および次の要素を示すポインタから成る。
例えば、705はリスト1の後尾の要素、706はリスト1の先頭の要素である。また、図6では、リストに格納される要素の情報はキュー(図2の205,206)の先頭のセルへのポインタのリストとなる。
707は送信可能時刻に達したキューの先頭のセルヘのポインタを格納する送信リストである。
【0012】
従来のGCRA方式によるシェーパのセル送信部の動作をカレンダ方式によって説明する。
カレンダ方式とは、回線上で数セルの転送に要する時間を1タイムスロットとし、タイムスロットに対応するセルヘのポインタを格納するリストを環状に並べ、送信可能時刻に達したタイムスロットに対応するリストに格納された全てのセルヘのポインタを送信リストの後尾に移動する方式である。
具体的には、図6において、現在時刻に対応するリストを示すポインタ701が示すリストは、現在時刻のタイムスロットに対応するセルへのポインタを格納する。
ここで、1タイムスロットに要する時間で正規化された時刻、即ち(時刻/1タイムスロットに要する時間)を正規化時刻と呼ぶものとし、図6における正規化された現在時刻をt、リストの数をNとすると、このリストの右隣のリストは送信可能時刻が正規化時刻(t+1)、左隣のリストは正規化時刻(t+N−1)となるセルヘのポインタのリストを格納する。
また、現在時刻に対応するリストを示すポインタ701は、時計部(図2の202)が計数する時刻に基づいて更新される。
【0013】
図6に示すセル送信部は、セルがキューの先頭に達した際に、スケジューリング部(図2の203)によって決定したセルの送信可能時刻に対応するタイムスロットのリストの最後尾に、キューの先頭のセルヘのポインタをリストの要素として順次付け加えて格納する事によって、キューの先頭のセルヘのポインタと送信可能時刻を対で記憶する。
図6に示すセル送信部は、現在時刻に対応するリストを示すポインタ701によって示される、送信可能時刻に達したタイムスロットに対応するリストに格納されたセルヘのポインタを全て送信リスト707の後尾に移動し、送信リスト707に格納されたセルヘのポインタで示されるセルを、キューの先頭から取り出して順に回線に送信する事によって、格納されているセルヘのポインタの中から送信可能時刻が現在時刻以前となるセルヘのポインタを検出して、ポインタが示すセルを送信可能時刻が最も早いセルから送信可能時刻順に回線に送信する。
【0014】
従来のGCRA方式によるシェーパのセル送信部の第3の実現例を、特開2001−274795号公報を基に示す。
図7は、図2に示すセル送信部204の実現例であり、一般にシーケンサ方式と呼ばれる。図7において、801,802はキュー、803はキューの先頭のセルへのポインタ、804はキューの先頭のセルのタイムスロット値、805はポインタとタイムスロット値を要素とする配列構造、806はキュー、807はキューの先頭に達したセルヘのポインタ、808はキューの先頭に達したセルのタイムスロット値、809はブロードキャストバスである。
図7に示すセル送信部は、回線上で1セルの転送に要する時間を1タイムスロットとし、図7に示す様に、送信可能時刻が決定したキューの先頭のセルへのポインタと、そのセルのタイムスロット値から成る要素をタイムスロット値の順にソートする方式である。
ここで、セルが所属するコネクション、キュー、CBR、nrt-VBR等のトラヒッククラス間などに予め優先度が設定されているものとし、優先度は値が小さいほど優先度が高いものとする。
シーケンサは主にポインタとタイムスロット値を要素とする配列構造で構成され、図7の実現例では右側からタイムスロット値の順に要素がソートされている。
具体的には、図7において、ポインタとタイムスロット値を要素とする配列構造805の各要素は隣の要素にシフトする事が可能な構造となっている。
【0015】
図7に示すセル送信部は、セルがキュー806の先頭に達した際に、このキューの先頭を示す様にキューの先頭に達したセルヘのポインタ807を設定し、{セルスケジューリング部(図2の203)によって決定したセルの送信可能時刻*(優先度の最大値+1)+セルの優先度}の値を、キューの先頭に達したセルのタイムスロット値808に設定する事によって、キューの先頭のセルヘのポインタとタイムスロット値を対で記憶する。
次に、図7に示すセル送信部は、キューの先頭に達したセルのタイムスロット値808を、ブロードキャストバス809を用いてポインタとタイムスロット値を要素とする配列構造805内の各要素のタイムスロット値と並列に比較し、配列構造805内の各要素のタイムスロット値が、キューの先頭に達したセルのタイムスロット値808以上となる最初の要素の位置を挿入位置として、それ以上の全ての要素を左側にシフトし、キューの先頭に達したセルヘのポインタ807とキューの先頭に達したセルのタイムスロット値808を挿入位置に格納する事によって、要素をタイムスロット値の順にソートする。
図7に示すセル送信部は、配列構造805の最も右の要素のタイムスロット値に含まれるセルの送信可能時刻と、時計部202が計数する時刻を比較し、前者の値が後者の値以前となる場合は、最も右の要素のポインタが示すキューの先頭に格納されたセルを回線に送信し、最も右の要素を配列構造805から削除し、残りの要素を右側にシフトする事によって、格納されているセルへのポインタの中から送信可能時刻が最も早くかつ優先度が最も高いセルのポインタ情報を特定して、特定された送信可能時刻が現在時刻より以前の場合、そのセルを回線に送信する。
【0016】
従来のGCRA方式によるシェーパのセル送信部の第4の動作例を、特願2002−028284号に基づいて示す。
特願2002−028284号に示された通り、GCRA方式によるシェーパのセル送信部は、ヒープによる優先キューの要素を、到着したセルのタイムスロット値、およびキューの先頭のセルへのポインタとし、要素の優先度をタイムスロット値で判断する事によって実現する事が出来る。
ヒープとは配列による半順序のついた木のデータ構造の事であり、優先キューの実装やソータの実装に用いられる。
優先キューとは、優先度が割り当てられられた要素から、優先度の最も高い要素を特定するデータ構造の事である。優先キューは、要素を記憶するデータ構造と、データ構造から最も優先度の高い要素を削除するアルゴリズムと、データ構造に要素を挿入するアルゴリズムから構成される。
具体的な、削除、挿入のアルゴリズムは特願2002−028284号に示されている。
【0017】
ヒープによる優先キューのデータ構造を図8に示す。図8における要素の値は優先度を表し、値が少ないほど優先度が高いものとする。
図8における要素の配置は、「要素が子を有する場合、その要素の優先度は子の優先度以上となる」規則に基づいている。このため、ヒープの一番上の要素は最も高い優先度を持つことになる。
ヒープによる優先キューは、セルがキュー(図2の205,206)の先頭に達した際に、このキューの先頭を示す様にキューの先頭に達したセルヘのポインタを設定し、そして、{セルスケジューリング部(図2の203)によって決定したセルの送信可能時刻*(優先度の最大値+1)+セルスケジューリング部によって決定したセルの優先度}の値をセルのタイムスロット値に設定し、これらの値から成る要素をヒープによる優先キューに挿入する。
次に、ヒープによる優先キューは、最も上の要素のタイムスロット値に含まれるセルの送信可能時刻と、時計部が計数する時刻を比較し、前者の値が後者の値以前となる場合は、最も上の要素のポインタが示すバッファ、もしくはキューの先頭に格納されたセルを回線に送信し、最も上の要素を削除する事によって、ヒープによる優先キューに格納されているセルの中から送信可能時刻が最も早くかつ優先度が最も高いセルを特定し、特定された送信可能時刻が現在時刻より以前の場合、そのセルを回線に送信する。
【0018】
以上の説明から明らかな通り、従来のGCRA方式によるシェーパの実現例におけるセルスケジューリング方法は、時計部(図2の202)が計数する現在時刻に基づいて、セルの送信可能時刻を決定し、パラメータ値を更新している。更に、パラメータ値に基づいてセルの優先度を決定する場合もある。
しかし、現実のシェーパの実現において、時計部が計数出来る時刻には上限がある。例えば、時刻がNbitの整数値で計数される場合、計数可能な時刻の最大値は(2のN乗−1)となり、時間の経過と共に時計部が計数する時刻がこの最大値を越えた場合、時計が計数する時刻が0となる時計の回り込みが発生し、再び最大値の時刻までの計数が行なわれる。
この様に、シェーパの時計に回り込みが発生すると、シェーパに記憶されている回り込み以前の時刻に基づいて計算された値、即ち、セルの送信可能時刻、およびパラメータ値は、回り込み以後の時計が計数する時刻を基準にすると不正な値となる。
セルの送信可能時刻は、コネクション間で比較されたり、時計が計数する現在時刻と比較される。またパラメータ値は、時計が計数する現在時刻と比較される。
このため、時計に回り込みが発生すると、シェーパの動作に誤りが発生する。更に、パラメータ値に基づいてセルの優先度を決定する場合は、時計に回り込みが発生すると、この優先度も不正な値となる。
このため、従来のGCRA方式によるシェーパの実現例におけるセルスケジューリング方法には、時計に回り込みが発生すると、シェーパに記憶された時刻に依存した値が不正な値となり、シェーパの動作に誤りが発生する問題点がある。
【0019】
【発明が解決しようとする課題】
従来のGCRA方式によるシェーパの実現例のセルスケジューリング方法における時計の回り込みの問題の解決方法が、特開平10−117195号公報に示されている。
この特開平10−117195号公報に記載された実施例では、時計部が計数出来る現在時刻の最大値は、セル間隔の値の最大値と、許容されるセル遅延時間のゆらぎの値の最大値と、バッファ長の和の4倍を越える値とし、コネクション毎のパラメータ値の最大値は時計の最大値と同じとしている。
コネクション毎の各パラメータ値は、2bitのフラグを持ち、これらのフラグは時計の周期の1/4以上の時間で交互にセットされ、スケジューリング部がセルの送信可能時刻を決定し、パラメータ値を更新した際にリセットされる。
セルスケジューリング部は、現在時刻とパラメータ値に基づいてセルの送信可能時刻を決定する際に、パラメータ値のフラグの値が[1,1]の場合は、パラメータ値が計算されてから時計の周期の1/4以上の時間が経過されたものと判断する。これ以外の場合は、パラメータ値が有効な値を保持しているものと判断し、セルの送信可能時刻を計算する。
以上の説明から明らかな通り、この特開平10−117195号公報に記載された実施例は、時計の回り込みによって、シェーパに記憶されたパラメータ値が不正な値となった事を判定する事が出来る。
従って、この実施例は、従来のGCRA方式によるシェーパの実現例において、セル送信部として第1の動作例のリングバッファ方式、および第2の動作例のカレンダ方式を適用した場合は、時計の回り込みの問題を解決する事が出来る。
【0020】
但し、この特開平10−117195号公報に記載された実施例は、これらの方式が、各セルの送信可能時刻に関する情報をバッファやリストの位置情報として保持しているため、時計部が計数出来る現在時刻の最大値とバッファやリストの個数を同一値とすれば、時計に回り込みが発生しても位置情報にも同様に回り込みが発生するため、結果としてセルの送信時刻は不正にはならない性質を利用している。
一方、セル送信部として第3の動作例のシーケンサ方式や、第4の動作例のヒープによる優先キューが使用される場合、これらの方式は、各セルの送信可能時刻や優先度等の時刻に依存した値を情報として記憶するが、この特開平10−117195号公報に記載された実施例では、セル送信部に記憶された送信可能時刻、優先度等の時刻に依存した値に対する時計の回り込み処理を行なう事は出来ない。
従って、この特開平10−117195号公報に記載された実施例は、従来のGCRA方式によるシェーパの実現例において、セル送信部として第3の動作例のシーケンサ方式、および第4の動作例ヒープによる優先キュー方式の様に、送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報等を対で記憶する方式に基づくセル送信部を有するシェーパにおいては、時計の回り込みの問題を解決する事が出来ない問題点がある。
【0021】
従来のGCRA方式によるシェーパの実現例のセルスケジューリング方法における時計の回り込みの問題の解決方法が、特開平10−294741号公報に示されている。
この特開平10−294741号公報に記載された実施例は、特開平10−294741号公報の段落番号[0013]の記述から明らかな通り、セル送信部としてリングバッファ方式を前提としている。
コネクション毎の各パラメータ値は、1bitの有効フラグを持つが、この有効フラグの具体的な設定方法や、そのタイミングに関する記述は、特開平10−294741号公報の段落番号[0043]に、「(前回送信時刻+セル間隔)が時計の時刻以前となったらフラグを無効とし、この制御が読み出し制御メモリ1周毎に1回以上行なわれる」との記述があるのみで、これだけでは時計の回り込みが解決出来るかどうかは、特開平10−294741号公報の記載からは判断できない。
しかし、この方法は、明らかにコネクション毎のパラメータ値の有効性しか判断していないため、特開平10−117195号公報と同様に、この特開平10−294741号公報に記載された実施例は、少なくとも、従来のGCRA方式によるシェーパの実現例において、送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報等を対で記憶する方式に基づくセル送信部を有するシェーパにおいては、時計の回り込みの問題を解決する事が出来ない問題点がある。
【0022】
従来のGCRA方式によるシェーパの実現例のセルスケジューリング方法における時計の回り込みの問題の解決方法が、特開2001−36540号公報に示されている。
この特開2001−36540号公報に記載された実施例は、特開2001−36540号公報の段落番号[0024]の記述から明らかな通り、セル送信部としてリングバッファ方式を前提としている。
コネクション毎の各パラメータ値は、上位に2bitが付与されており、時計にも上位2bitが付与されており、時計の回り込み回数を計数する。
パラメータ値の上位2bitは周期判定処理によって設定される。周期判定処理は、時計に回り込みが発生した際に全てのパラメータ値に対して実行される、もしくは、時計の値が更新された際に更新時刻に対応するキューのパラメータに対して実行される。
周期判定処理は、パラメータ値の上位2bitの値から時計の上位2bitの値を減算して、パラメータ値が現在時刻以前となったか否かを判断する。
しかし、この方法は、明らかにコネクション毎のパラメータ値の有効性しか判断していないため、特開平10−117195号公報と同様に、この特開2001−36540号公報に記載された実施例は、従来のGCRA方式によるシェーパの実現例において、送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報等を対で記憶する方式に基づくセル送信部を有するシェーパにおいては、時計の回り込みの問題を解決する事が出来ない問題点がある。
【0023】
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、従来のGCRA方式によるシェーパにおいて、時計に回り込みが発生すると、シェーパに記憶された時刻に依存した値が不正な値となり、シェーパの動作に誤りが発生する問題点を解決し、かつ、この問題の既存の解決方法における、送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報等を対で記憶する方式に基づくセル送信部を有するシェーパには適用できない問題点を解決したセルスケジューリング方法を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述、および添付図面によって明らかにする。
【0024】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
本発明の請求項に係わる発明は、前述の目的を達成するために、GCRA方式で実現されたシェーピング装置のセルスケジューリング方法において、時計部が計数する現在時刻が最大値を越えて0となる回り込みが発生した際に、記憶部に記憶された各パラメータ値に対して、時計部が計数できる現在時刻の最大値を越える値を有するパラメータ値から、(時計部が計数できる現在時刻の最大値+1)の値を減算し、時計部が計数できる現在時刻の最大値以下の値を有するパラメータ値を0とするステップ、および、セル送信部に記憶された各送信可能時刻、および、各優先度に対して、時計部が計数できる現在時刻の最大値を越える値を有する送信可能時刻、および、優先度から、(時計部が計数できる現在時刻の最大値+1)の値を減算し、時計部が計数できる現在時刻の最大値以下の値を有する送信可能時刻、および優先度を0とするステップを含む事を最も主要な特徴とする。
【0025】
本発明の請求項2、3に係わる発明は、前述の目的を達成するために、GCRA方式で実現されたシェーピング装置のセルスケジューリング方法において、時計部が計数できる現在時刻の最大値は、キューの数以上の値であり、時計部が計数する現在時刻とキューの対応関係が予め一意に定められ、時計部が、当該時計部が計数する現在時刻が最大値を越えて0となった時計の回り込み回数を記録するステップを含み、時計部が計数する現在時刻が更新された際に、当該時刻に対応するキューに対応するコネクションのパラメータ値が、時計部が計数できる現在時刻の最大値を越える場合は、当該パラメータ値から、(時計部が計数できる現在時刻の最大値+1)の値を減算した値にパラメータ値を更新し、時計部で計数できる現在時刻の最大値以下の値の場合は0に更新する更新ステップを含み、セルスケジュール部が、記憶部からセルが所属するコネクションに対応したパラメータ値を読み込む際に、時計の回り込みが発生した後にパラメータ値に対して前記更新ステップが実行されていない状態であって、かつ読み込んだパラメータ値が時計部が計数できる現在時刻の最大値を越える場合は、パラメータ値から、(時計部が計数できる現在時刻の最大値+1)の値を減算し、時計部が計数できる現在時刻の最大値以下の場合は、パラメータ値を0とするステップを含み、セルスケジュール部が、パラメータ値の更新値を記憶部に書き込む際に、時計の回り込みが発生した後に、更新の対象となる記憶部のパラメータ値に対して、前記更新ステップが実行されていない状態の場合、パラメータの更新値に、(時計部が計数できる現在時刻の最大値+1)の値を加算した値を更新の対象となる記憶部のパラメータ値に書き込むステップを含み、セル送信部が、セルの送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報を対で記憶するステップにおいて、セルの送信可能時刻、および優先度を決定した際の時計の回り込み回数を、セルの送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報と併せて記憶するステップを含み、セル送信部が、記憶された送信可能時刻、および優先度から、最も早く、かつ最も優先度の高い送信可能時刻を特定するステップにおいて、送信可能時刻、および優先度を比較するために、記憶された送信可能時刻、および優先度の値を評価する際に、送信可能時刻、および優先度と併せて記録された時計の回り込み回数と、時計部に記憶された時計の回り込み回数を比較して、送信可能時刻、および優先度の決定以降に発生した時計の回り込み回数を特定するステップと、特定された回り込み回数が1回であって、かつ送信可能時刻、および優先度が、各々時計部が計数できる現在時刻の最大値を越える値の場合、送信可能時刻、および優先度から各々、(時計部が計数できる現在時刻の最大値+1)の値を減算した値に、送信可能時刻、および優先度を各々変換するステップと、特定された該回り込み回数が1回であって、かつ送信可能時刻、および優先度が、各々時計部が計数できる現在時刻の最大値以下の場合、送信可能時刻、優先度を各々0に変換するステップとを含む事を最も主要な特徴とする。
【0026】
[作用]
従来のGCRA方式によるシェーパの実現例から明らかな通り、シェーパに記憶されるコネクション毎のパラメータ値、セルの送信可能時刻の値は何れも1セル時間を単位とする時間となる。
時計部が計数出来る現在時刻が最大値を越えて0となる回り込みが発生した場合、時計が示す時刻は本来の時刻から(時計が計数できる現在時刻の最大値+1)の値を減算した値となる。
従って、従来のGCRA方式によるシェーパの実現例のセルスケジューリング部におけるセルスケジューリング方法の実現例から明らかな通り、時計部に回り込みが発生した場合、シェーパに記憶されたコネクション毎のパラメータ値、セルの送信可能時刻、優先度等の時刻に依存した値から、(時計が計数できる現在時刻の最大値+1)の値を減算すれば、これらの値を正しい値に修正する事が出来る。
但し、従来のセルスケジューリング方法の実現例から明らかな通り、パラメータ値を修正した結果負の値となる場合は、これを0としても算出される送信可能時刻は同一値となるため、この場合はパラメータ値は0とする。
また、送信可能時刻が負の値となる場合は、現在時刻が送信可能時刻を過ぎたという事であり、セルは可能な限り早急に送信する必要があるため、これを0としてもシェーパの動作に支障は無い。
更に、送信可能時刻を決定した際のパラメータ値を優先度とした場合、優先度が負の値となる場合は、セルは可能な限り早急に送信する必要があるため、これを0としてもシェーパの動作に支障は無い。
【0027】
本発明の請求項に係わる発明は、前述の原理に基づいて、従来のGCRA方式によるシェーパにおいて、時計に回り込みが発生すると、シェーパに記憶された時刻に依存した値が不正な値となり、シェーパの動作に誤りが発生する問題点を、送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報等を対で記憶する方式に基づくセル送信部を有する場合において解決する。
但し、請求項に係わる発明の解決方法は、時計に回り込みが発生した場合、シェーパに記憶されたコネクション毎のパラメータ値、セルの送信可能時刻、優先度等の値を一斉に修正するため、シェーパがサポートするコネクション数が少ない場合は実用的であるが、コネクション数が増大すると短時間の間にこれらの値を一斉に修正することは現実的に困難となる。
【0028】
従って、シェーパがサポートするコネクション数が多い場合は、時計部が計数出来る現在時刻が最大値を越えて0となる回り込みが発生した後に、これらの値を分散して修正する必要がある。
このため、時計部が計数する現在時刻とキューの対応関係、即ち、コネクションとの対応関係を予め定めておき、現在時刻が更新された際に、その時刻に対応するコネクションのパラメータ値を前述の原理に基づいて修正する。
但し、この場合、時計に回り込みが発生してから修正が完了するまでの間はパラメータ値は不正な値となる。
このため、セルスケジュール部は、パラメータ値を読み込む際に、時計に回り込みが発生したがこのパラメータ値に対する修正が完了していない事を検出した場合、読み込んだ値を前述の原理に基づいて修正する。
また、セルスケジュール部は、パラメータ値を書出す際に、時計に回り込みが発生したがこのパラメータ値に対する修正が完了していない事を検出した場合、書き込む値に対して、(時計が計数できる現在時刻の最大値+1)の値を加算してから書き込み動作を行ない、その後、このパラメータ値に対する修正が行なわれた際に値が正しくなる様に修正する。
【0029】
また、セルの送信可能時刻、優先度に関しては、セルスケジューリング部がセルの送信可能時刻を決定した際の時計の回り込み回数を、これらの値と対でセル送信部に記憶する。
セル送信部は、送信可能時刻が決定してからセルが送信されるまで、時計の回り込みは2回以上発生しない性質を利用して、セルの送信可能時刻や優先度と対で記憶された時計の回り込み回数と、これらの値を評価する際の時計の回り込み回数を比較する事によって、これらの値に対して修正を行なう。
具体的には、セル送信部は記憶されたこれらの値を評価する際に、回り込み回数が1の場合は、(時計が計数できる現在時刻の最大値+1)の値をこれらの値から減算する。但し、減算した結果が負の値となる場合は0に変換する。
本発明の請求項2、3に係わる発明は、前述の原理に基づいて、従来のGCRA方式によるシェーパにおいて、時計に回り込みが発生すると、シェーパに記憶された時刻に依存した値が不正な値となり、シェーパの動作に誤りが発生する問題点を、送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報等を対で記憶する方式に基づくセル送信部を有する場合において解決する。
【0030】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
なお、実施の形態を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
[実施の形態1]
本発明の請求項に係わるセルシェーピング装置の実施の形態を、図2に示された従来のGCRA方式によるシェーパの実現例と同じ構成のシェーパにおいて示す。
ここで、セルスケジューリング部(図2の203)におけるセルスケジューリング方法として、図3、および図4に示されたセルスケジューリング部におけるセルスケジューリング方法が用いられる。
また、セル送信部(図2の204)として、図7に示されたシーケンサ方式、もしくは図8に示されたヒープによる優先キューが用いられるものとする。
【0031】
時計部(図2の202)が計数する現在時刻は、回線上において1セルの伝送に要する平均時間を1セル時間とし、この1セル時間を単位とするNbitの符合なし整数値で実現されるものとする。
この場合、時計部が計数出来る現在時刻の最大値は(2のN乗−1)となり、最大時刻を越えた場合に、計数する時刻が0となる回り込みが発生する。
時計部が計数出来る現在時刻のbit長Nは、幾らの値であっても論理的には問題は無い。bit長が短ければ回り込み処理が頻発し、長ければ回り込み処理の発生頻度が減少する。
本実施の形態では、回り込み処理の実現方法を簡略化するために、時計部が計数できる現在時刻のbit長Nを、(セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)の値を表現できる最小のbit長とする。
【0032】
セルスケジューリング方法の実現例から明らかな通り、パラメータ値が更新された際の更新値の最大値は、(現在時刻の最大値+セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)となる。
また、セルの送信可能時刻の最大値は、(現在時刻の最大値+セルシェーピング装置が対応出来るセル間隔の最大値)、セルの優先度の最大値はパラメータ値の最大値と同じとなる。
従って、時計部が計数できる現在時刻のbit長Nを、(セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)の値を表現できる最小のbit長とした場合、パラメータ値、セルの送信可能時刻、優先度は、(N+1)bitの符合なし整数値で実現する事が出来る。
この場合、これらの値が時計部が計数できる現在時刻の最大値を越える場合、これらの値から(時計部が計数できる現在時刻の最大値の値+1)を減算する演算は、これらの値の最上位bitが[1]の場合は、この最上位bitを[0]とする演算と等価となる。
【0033】
以上の前提に基づいて、時計部に回り込みが発生した際の動作例を、図9のフローチャートに示す。
時計部に回り込みが発生した際に、記憶部(図2の201)に記憶された各パラメータ値に対して、パラメータ値の上位1bitが[0]の場合、パラメータ値を0とし、パラメータ値の上位1bitが[1]の場合、上位1bitを[0]とする(ステップ1001)。
この動作によって、時計部が計数できる現在時刻の最大値を越える値を有するパラメータ値から、(時計部が計数できる現在時刻の最大値+1)の値を減算し、時計部が計数できる現在時刻の最大値以下の値を有するパラメータ値を0とする。
前述の[作用]の欄に記載した通り、時計部が計数できる現在時刻の最大値以下の値を有するパラメータ値を0としてもシェーパの動作には支障は無い。
引き続き、セル送信部(図2の204)に記憶された各送信可能時刻、および優先度に対して、送信可能時刻、優先度の上位1bitが[0]の場合、これらの値を0とし、送信可能時刻、優先度の上位1bitが[1]の場合、上位1bitを[0]とする(ステップ1002)。
この動作によって、時計部が計数できる現在時刻の最大値を越える値を有する送信可能時刻、および優先度から、(時計部が計数できる現在時刻の最大値+1)の値を減算し、時計部が計数できる現在時刻の最大値以下の値を有する送信可能時刻、および優先度を0とする。
前述の[作用]の欄に記載した通り、時計部が計数できる現在時刻の最大値以下の値を有する送信可能時刻、および優先度を0としてもシェーパの動作に支障は無い。
【0034】
[実施の形態2]
本発明の請求項2、3に係わるセルシェーピング装置の実施の形態を、図2に示された従来のGCRA方式によるシェーパの実現例と同じ構成のシェーパにおいて示す。
ここで、セルスケジューリング部(図2の203)におけるセルスケジューリング方法として、図3、および図4に示されたセルスケジューリング部におけるセルスケジューリング方法が用いられる。
また、セル送信部(図2の204)として、図7に示されたシーケンサ方式、もしくは図8に示されたヒープによる優先キューが用いられるものとする。
請求項に係わる発明の実施の形態は、請求項に係わる発明の実施の形態に包含されるため、以下、請求項に係わる発明の実施の形態を用いて動作例を示す。
時計部が計数する現在時刻は、回線上において1セルの伝送に要する平均時間を1セル時間とし、この1セル時間を単位とするNbitの符合なし整数値で実現されるものとする。
【0035】
この場合、時計部(図2の201)が計数出来る現在時刻の最大値は(2のN乗−1)となり、最大時刻を越えた場合、計数する時刻が0となる回り込みが発生する。
また、時計部は、Mbitの符合なし整数値で上記の時計の回り込み回数の発生回数を記録する。
時計部が計数出来る現在時刻のbit長Nは、セルシェーピング装置が備えるキュー(図2の205,206)の数を表現できるbit長以上であれば、幾らの値であっても論理的には問題は無い。
本実施の形態では、(セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)の値がセルシェーピング装置が備えるキューの数より大幅に大きいものとし、また、回り込み処理の実現方法を簡略化するために、時計部が計数できる現在時刻のbit長Nを(セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)の値を表現できる最小のbit長とする。
【0036】
本実施の形態における、時計部が計数する現在時刻とキューの間の対応関係は、セルシェーピング装置が備えるキューの数をL本とした場合、各キューは0から(L−1)の値で識別され、この値が時計部が計数する時刻と対応するものとする。
時計部が計数する現在時刻が更新された際に、更新時刻に対応するキューに対応するコネクションのパラメータ値に対して更新処理が行なわれる。例えば、更新された時刻がKの場合、Kで識別されるキューに対応するコネクションのパラメータ値に対して更新処理が行なわれる。
この場合、時計に回り込みが発生してから修正が完了するまでの間はパラメータ値は、(時計部が計数できる現在時刻の最大値の値+1)が加算された値となるため、セルスケジュール部(図2の203)は記憶部(図2の202)からパラメータ値を読み込む際に、時計に回り込みが発生したが、このパラメータ値に対する修正が完了していない事を検出した場合は、読み込んだ値から上記の値を減算する。
また、記憶部に書き込む際には、時計に回り込みが発生したが、このパラメータ値に対する修正が完了していない事を検出した場合は、パラメータ値に、(時計部が計数できる現在時刻の最大値の値+1)を加えて修正した値を書き込む。
【0037】
セルスケジューリング方法の実現例から明らかな通り、パラメータ値が更新された際の更新値の最大値は、(現在時刻の最大値+セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)となる。
従って、実際に書き込まれるパラメータ値の更新値の最大値は、(現在時刻の最大値*2+1+セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)となる。
よって、時計部が計数出来る現在時刻のbit長Nを、(セルシェーピング装置が対応出来るセル間隔の最大値+セルシェーピング装置が対応出来る許容されるセル遅延時間のゆらぎの値)の値を表現できる最小のbit長とした場合、パラメータ値は、(N+2)bitの符合なし整数値で実現する事が出来る。
この場合、パラメータ値が、時計部が計数できる現在時刻の最大値を越える場合、パラメータ値から、(時計部が計数できる現在時刻の最大値の値+1)を減算する演算は、パラメータ値の上位2bitが[1,1]の場合は、この上位2bitを[1,0]とし、パラメータ値の上位2bitが[1,0]の場合は、この上位2bitを[0,1]とし、パラメータ値の上位2bitが[0,1]の場合は、この上位2bitを[0,0]とする演算と等価となる。
同様に、パラメータ値に、(時計部が計数できる現在時刻の最大値の値+1)を加算する演算は、パラメータ値の上位2bitが[1,0]の場合は、この上位2bitを[1,1]とし、パラメータ値の上位2bitが[0,1]の場合は、この上位2bitを[1,0]とし、パラメータ値の上位2bitが[0,0]の場合は、この上位2bitを[0,1]とする演算と等価となる。
【0038】
以上の前提に基づいて、時計部に回り込みが発生した際の動作例を、図10のフローチャートに示す。
時計部に回り込みが発生した際に、更新された時刻に対応するコネクションのパラメータ値に対して、パラメータ値の上位2bitが[0,0]の場合、パラメータ値を0とし、パラメータ値の上位2bitが[0,1]の場合、この上位2bitを[0,0]とし、パラメータ値の上位2bitが[1,0]の場合、この上位2bitを[0,1]とし、パラメータ値の上位2bitが[1,1]の場合、この上位2bitを[1,0]とする(ステップ1101)。
この動作によって、更新された時刻に対応するキューに対応するコネクションのパラメータ値が、時計部が計数できる現在時刻の最大値を越える場合は、パラメータ値から、(時計部が計数できる現在時刻の最大値+1)の値を減算した値に該パラメータ値を更新し、時計部で計数できる現在時刻の最大値以下の値の場合は0に更新する。
前述の[作用]の欄に記載した通り、時計部が計数できる現在時刻の最大値以下の値を有するパラメータ値を0としてもシェーパの動作には支障は無い。
【0039】
また、セルスケジュール部が記憶部からセルが所属するコネクションに対応したパラメータ値を読み込む際の動作例を、図11のフローチャートに示す。
図11のフローチャートは、図3、および図4に示したセルスケジューリング方法においてセルスケジュール部が記憶部から所属するコネクションに対応したパラメータ値を読み込む際に実行される。
このフローチャートでは、セルが所属するコネクションに対応したキューの識別子をQIDとしている。
記憶部からセルが所属するコネクションに対応したパラメータ値を読み込む際に、このコネクションに対応したキューの識別子の値が現在時刻以下の場合は、時計の回り込みが発生した後に、このパラメータ値に対して更新ステップが実行されているため、パラメータ値をそのまま読み込む(ステップ1201のN)。
コネクションに対応したキューの識別子の値が現在時刻より大きい場合は、時計の回り込みが発生した後に、このパラメータ値に対して更新ステップが実行されていないため、読み込んだパラメータ値の上位2bitが[0,0]の場合、パラメータ値を0とし、上位2bitが[0,1]の場合、この上位2bitを[0,0]とし、上位2bitが[1,0]の場合、この上位2bitを[0,1]とし、上位2bitが[1,1]の場合、この上位2bitを[1,0]とする(ステップ1201のY、ステップ1202)。
この動作によって、パラメータ値を読み込む際に、時計の回り込みが発生した後に、パラメータ値に対して更新ステップが実行されていない状態であって、かつ、読み込んだパラメータ値が時計部が計数できる現在時刻の最大値を越える場合は、パラメータ値から、(時計部が計数できる現在時刻の最大値+1)の値を減算し、時計部が計数できる現在時刻の最大値以下の場合は、パラメータ値を0とする。
【0040】
セルスケジュール部が記憶部ヘセルが所属するコネクションに対応したパラメータ値の更新値を書き込む際の動作例を、図12のフローチャートに示す。
図12のフローチャートは、図4に示したセルスケジューリング方法においてセルスケジュール部が記憶部から所属するコネクションに対応したパラメータ値の更新値を書き込む際に実行される。
このフローチャートではセルが所属するコネクションに対応したキューの識別子をQIDとしている。
記憶部からセルが所属するコネクションに対応したパラメータ値の更新値を書き込む際に、このコネクションに対応したキューの識別子の値が現在時刻以下の場合は、時計の回り込みが発生した後に、更新の対象となる記憶部のパラメータ値に対して更新ステップが実行されているため、パラメータ値をそのまま書き込む(ステップ1301のN)。
コネクションに対応したキューの識別子の値が現在時刻より大きい場合は、時計の回り込みが発生した後に、更新の対象となる記憶部のパラメータ値に対して更新ステップが実行されていないため、更新されたパラメータ値の上位2bitが[0,0]の場合、この上位2bitを[0,1]とし、上位2bitが[0,1]の場合、この上位2bitを[1,0]とし、上位2bitが[1,0]の場合、この上位2bitを[1,1]とした値を記憶部へ書き込む(ステップ1301のY、ステップ1302)。
この動作によって、パラメータ値の更新値を記憶部に書き込む際に、時計の回り込みが発生した後に、更新の対象となる記憶部のパラメータ値に対して、更新ステップが実行されていない状態の場合、パラメータの更新値に(時計部が計数できる現在時刻の最大値+1)の値を加算した値を更新の対象となる記憶部のパラメータ値に書き込む。
【0041】
次に、セル送信部に記憶されたセルの送信可能時刻、および優先度に対する修正方法を示す。
セルスケジューリング方法の実現例から明らかな通り、セルの送信可能時刻の最大値は、(現在時刻の最大値+セルシェーピング装置が対応出来るセル間隔の最大値)、セルの優先度の最大値は、パラメータ値が更新された際の更新値の最大値と同じとなる。
従って、セルの送信可能時刻、優先度は、(N+1)bitの符合なし整数値で実現する事が出来る。
この場合、これらの値が時計部が計数できる現在時刻の最大値を越える場合、これらの値から、(時計部が計数できる現在時刻の最大値の値+1)を減算する演算は、これらの値の最上位bitが[1]の場合は、この最上位bitを[0]とする演算と等価となる。
本発明のセルシェーピング装置のセルスケジューリング部は、セルがキューの先頭に達した際に、セルの送信可能時刻、および優先度を決定する。
【0042】
そして、セル送信部は、これらの値が決定したセルから送信可能時刻順に、送信可能時刻が同一の場合は優先度順にセルを送信する。
従って、セルの送信可能時刻、優先度が決定してから、そのセルが実際に送信されるまでの時間は、最大でも、(セルシェーピング装置が備えるキューの数−1)セル時間となる。
一方、本発明では時計部が計数できる現在時刻の最大値は、セルシェーピング装置が備えるキューの数以上である。
従って、本発明では、セルの送信可能時刻、優先度が決定してから、そのセルが実際に送信されるまでの間は、時計の回り込みは最大でも1回しか発生しない。 従って、時計の回り込み回数をM=1bitの符合なし整数値で計数し、スケジュール部がセルの送信可能時刻、優先度を決定した際に、セル送信部がこれらの値に加えて時計の回り込み回数を記憶し、セル送信部がこれらの値を評価する際に、記憶した時計の回り込み回数と時計部が計数する現在時刻における時計の回り込み回数を比較して、値が同じであれば回り込み無し、値が異なれば回り込みが1回発生した事が特定できる。
【0043】
セル送信部が記憶された送信可能時刻、優先度の値を評価する際の動作例を、図13のフローチャートに示す。
図13のフローチャートは、図7に示したシーケンサ方式によるセル送信部や、図8に示したヒープによる優先キューによるセル送信部における、配列構造や木構造に記憶された送信可能時刻や優先度を比較する際に実行される。
配列構造や木構造に記憶された送信可能時刻や優先度を比較する際に、これらの値と併せて記憶された時計の回り込み回数と、その時点での時計の回り込み回数を比較して、これらの値が同一であれば時計の回り込みは発生していないため、シーケンサやヒープによる優先キューは、記憶された送信可能時刻や優先度の値をそのまま使用する(ステップ1401のY)。
送信可能時刻や優先度と併せて記録された時計の回り込み回数と、その時点での時計の回り込み回数が異なる値の場合、時計の回り込みが発生しているため、シーケンサやヒープによる優先キューは、記憶された送信可能時刻や優先度の値の上位1bitが[0]の場合は、これらの値を0とし、上位1bitが[1]の場合は、上位1bitを[0]とした値を送信可能時刻や優先度の値として使用する(ステップ1401のN、ステップ1402)。
【0044】
この動作によって、送信可能時刻、および該優先度と併せて記録された時計の回り込み回数と、時計部に記憶された時計の回り込み回数を比較して、送信可能時刻、および優先度の決定以降に発生した時計の回り込み回数を特定し、特定された回り込み回数が1回であって、かつ、送信可能時刻、および優先度が、各々時計部が計数できる現在時刻の最大値を越える値の場合、送信可能時刻、および優先度から各々、(時計部が計数できる現在時刻の最大値+1)の値を減算した値に、送信可能時刻、および優先度を各々変換し、特定された回り込み回数が1回であって、かつ、送信可能時刻、および優先度が、各々時計部が計数できる現在時刻の最大値以下の場合、送信可能時刻、優先度を各々0に変換する。
尚、本発明は、セル遅延時間のゆらぎの値を、0もしくは定数等の固定的な値に置き換えた場合を包含している事は自明である。また、本発明は、特願2001−227268号の請求項2に示されたセルスケジューリング方法と組み合わせる事が出来る事は自明である。
以上、本発明者によってなされた発明を、前記実施の形態に基づき具体的に説明したが、本発明は、前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【0045】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明によれば、送信可能時刻、優先度、および送信可能時刻が決定されたセルを特定する情報等を対で記憶する方式に基づくセル送信部を有するGCRA方式によるシェーパにおいて、時計に回り込みが発生しても、シェーパに記憶された時刻に依存した値を正しい値に更新したり、変換するセルスケジューリング方法を提供する事が出来るため、シェーパの動作に誤りが発生しない利点がある。
更に、本願の請求項2、3に係わる発明は、シェーパに記憶された時刻に依存した値を分散して更新し、必要に応じて値を正しい値に変換するため、シェーパがサポートするコネクション数が多い場合であっても、本願の請求項に係わる発明と等価なシェーパを実用的に提供出来る利点がある。
【図面の簡単な説明】
【図1】従来のトークン方式によるセルシェーピング装置の実現例の概略構成を示すブロック図である。
【図2】従来のGCRA方式によるセルシェーピング装置の実現例の概略構成を示すブロック図である。
【図3】従来のGCRA方式によるセルシェーピング装置の実現例のセルスケジューリング部におけるセルスケジューリング方法の実現例を示すフローチャートである。
【図4】従来のGCRA方式によるセルシェーピング装置の実現例のセルスケジューリング部におけるセルスケジューリング方法の実現例を示すフローチャートである。
【図5】従来のGCRA方式によるセルシェーピング装置の実現例における、リングバッファ方式によるセル送信部の実現例の概略構成を示すブロック図である。
【図6】従来のGCRA方式によるセルシェーピング装置の実現例における、カレンダ方式によるセル送信部の実現例の概略構成を示すブロック図である。
【図7】従来のGCRA方式によるセルシェーピング装置の実現例における、シーケンサ方式によるセル送信部の実現例の概略構成を示すブロック図である。
【図8】ヒープによる優先キューによるデータ構造を説明するための図である。
【図9】時計部に回り込みが発生した場合における、本発明の実施の形態1のセルスケジューリング方法を説明するためのフローチャートである。
【図10】時計部に回り込みが発生した場合における、本発明の実施の形態2のセルスケジューリング方法を説明するためのフローチャートである。
【図11】時計部に回り込みが発生した場合でパラメータ値を読み込む際における、本発明の実施の形態2のセルスケジューリング方法を説明するためのフローチャートである。
【図12】時計部に回り込みが発生した場合でパラメータ値の更新値を書き込む際における、本発明の実施の形態2のセルスケジューリング方法を説明するためのフローチャートである。
【図13】時計部に回り込みが発生した場合で送信可能時刻、優先度の値を評価する際における、本発明の実施の形態2のセルスケジューリング方法を説明するためのフローチャートである。
【符号の説明】
101,207…入力部、102,103、205,206、801,802,806…キュー、104,105…送信タイミング生成部、106…調停部、201…記憶部、202…時計部、203…セルスケジューリング部、204…セル送信部、601…現在時刻に対応するバッファを示すポインタ、602,603,604…キューの先頭のセルヘのポインタを格納するバッファ、701…現在時刻に対応するリストを示すポインタ、702,703,704…各々キューの先頭のセルヘのポインタを格納するリスト、705…リスト1の後尾の要素、706…リスト1の先頭の要素、707…送信リスト、803…キューの先頭のセルへのポインタ、804…キューの先頭のセルのタイムスロット値、805…ポインタとタイムスロット値を要素とする配列構造、807…キューの先頭に達したセルヘのポインタ、808…キューの先頭に達したセルのタイムスロット値、809…ブロードキャストバス。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a cell scheduling method of a cell shaping apparatus for fixed-length packets such as ATM cells (hereinafter referred to as “cells”), and more particularly to a cell scheduling method realized by the GCRA method.
[0002]
[Prior art]
A cell shaping device (hereinafter referred to as a shaper) is a device that gives a delay time to a cell as necessary so as to conform to a traffic characteristic value defined for each connection.
There are two conventional methods for realizing a shaper, which are different in principle. One is a token method and the other is a GCRA method.
FIG. 1 shows an implementation example of a shaper using a conventional token method. In the figure, 101 is an input unit, 102 and 103 are queues, 104 and 105 are transmission timing generation units, and 106 is an arbitration unit.
In this example, the operation of the shaper according to the conventional token method will be described.
The cell that has arrived at the shaper is stored in the queue corresponding to the connection to which the cell belongs by the input unit 101.
Here, the connection means a virtual path or channel identified by a part or all of the VPI (Virtual Path Identifire) and VCI (Virtual Channel Identifire) fields included in the cell header. means.
[0003]
The queues (102, 103) store cells in the order of arrival from the top, and exist for connection.
The transmission timing generation unit (104, 105) generates a timing signal indicating that the first cell of the queue (102, 103) can be transmitted, and exists for each queue corresponding to the connection.
As shown in Japanese Patent No. 3232036 and Japanese Patent No. 3109491, the transmission timing generation unit (104, 105) generates a timing signal by dividing the clock signal according to the traffic characteristic value for each connection. realizable.
The arbitration unit 106 extracts the cell from the head of the queue (102, 103) in which the timing signal indicating that the cell can be transmitted is generated, and transmits the cell to the line.
At this time, when there are a plurality of queues (102, 103) in which a cell can be transmitted, the arbitration unit 106 arbitrates between fixed priorities set between the queues, round robin, random, or a combination thereof. Select a queue to retrieve cells based on rules.
[0004]
An example of realizing a shaper using the conventional GCRA method is shown in FIG. The realization example shown in FIG. 2 is a shaping apparatus described in Japanese Patent Application Laid-Open No. 2001-274795. In the figure, 201 is a storage unit for storing traffic characteristic values and parameter values, 202 is a clock unit, 203 is a cell scheduling unit, 204 is a cell transmission unit, 205 and 206 are queues, and 207 is an input unit.
In this implementation example, an example of operation of a shaper according to the conventional GCRA method will be described.
The storage unit 201 is configured by an array addressed by the value of the connection identifier. Here, the connection means a virtual path or channel identified by part or all of the VPI and VCI fields included in the cell header.
As shown in FIG. 2, the cells that have arrived at the shaper are stored by the input unit 207 in the queues (205, 206) corresponding to the connection to which the cell belongs.
The queues (205, 206) store cells in the order of arrival from the top, and exist for connection.
[0005]
When the cell reaches the head of the queue (205, 206), the traffic characteristic value and parameter value corresponding to the connection of the cell that reaches the head of the queue (205, 206) are transferred from the storage unit 201 to the cell scheduling unit 203. Entered.
The cell scheduling unit 203 determines the transmittable time of the cell that has reached the head of the queue (205, 206) based on the input traffic characteristic value, parameter value, and current time counted by the clock unit 202, and The data is output to the transmission unit 204.
The cell transmission unit 204 stores a pair of pointer information to the first cell in the queue (205, 206) and the cell transmittable time determined by the cell scheduling unit 203.
When transmitting a cell to a line, a traffic characteristic value and a parameter value for each connection corresponding to the connection of the cell to be transmitted are input from the storage unit 201 to the cell scheduling unit 203.
The cell scheduling unit 203 determines an update value of the parameter value based on the input traffic characteristic value, the parameter value, and the current time counted by the clock unit 202, and outputs to the storage unit 201 to be stored. Update the parameter value.
[0006]
An implementation example of a cell scheduling method in the cell scheduling unit 203 of an implementation example of a shaper according to a conventional GCRA method will be described based on Japanese Patent Laid-Open No. 2001-27495.
3 and 4 are flowcharts showing a cell scheduling method of the cell scheduling unit 203 of FIG.
In this flowchart, the value of the cell interval and the fluctuation of the allowable cell delay time are used as the traffic characteristic value, the current time when calculating the cell transmittable time is ta, and the current time when the parameter value is updated is te. , T is the cell interval value of the traffic characteristic value corresponding to the connection to which the cell belongs, τ is the fluctuation value of the allowable cell delay time, TAT is the parameter value corresponding to the connection to which the cell belongs, and cell transmission is possible The time is ts.
When the cell reaches the head of the queue (205, 206 in FIG. 2), the allowable cell delay time fluctuation τ and the parameter value TAT, which are traffic characteristic values corresponding to the connection of the cell that has reached the head of the queue, The data is input from the storage unit (201 in FIG. 2) to the cell scheduling unit (203 in FIG. 2).
[0007]
The cell scheduling unit performs the operation shown in the flowchart of FIG. 3 based on the input allowable cell delay time fluctuation τ, the parameter value TAT, and the current time ta counted by the clock unit (202 in FIG. 2). To start.
When the relationship of ta <TAT-τ is satisfied, the cell transmittable time ts is set to TAT-τ (steps 301 and 303).
When the relationship of TAT−τ ≦ ta is established, the cell transmittable time ts is set to ta (steps 301 and 302).
The determined cell transmission possible time ts is output to the cell transmission unit (204 in FIG. 2). As shown in Japanese Patent Application No. 2002-028284, the parameter value TAT may be output as a cell priority at this time to the cell transmitter together with the determined cell transmittable time ts.
[0008]
When a cell is transmitted to the line, a cell interval value t, which is a traffic characteristic value corresponding to the connection of the cell that has reached the head of the queue, and a parameter value TAT are input from the storage unit to the cell scheduling unit.
The cell scheduling unit starts the operation shown in the flowchart of FIG. 4 based on the input cell interval value t, the parameter value TAT, and the current time te counted by the clock unit.
When the relationship of te <TAT is established, the parameter value TAT is updated to TAT + t (steps 401 and 403).
When the relationship of TAT ≦ te is established, the parameter value TAT is updated to te + t (steps 401 and 402).
The update value TAT of the determined parameter value is output to the storage unit, and the stored parameter value is updated.
[0009]
A first operation example of a cell transmission unit of a shaper according to the conventional GCRA method is described in Pierre Boyer, Fabrice Guillemin, Michel Servel, Jean-Pierre Coudreuse, "Speceing Cells Protects and Enhances Utilization of ATM Network Links," IEEE Network, Vol. 6, No. 5, Sep. 1992.
FIG. 5 is an implementation example of the cell transmission unit 204 of FIG. 2 described in the above-mentioned literature, and is generally called a ring buffer method. In the figure, reference numeral 601 denotes a pointer indicating a buffer corresponding to the current time, and reference numerals 602, 603 and 604 denote buffer 1, buffer 2 to buffer N for storing pointers to the first cell in the queue.
The operation of the shaper cell transmitter of the conventional GCRA method will be described using the ring buffer method.
In the ring buffer system, the time required to transfer one cell on the line (about 2.8 μsec on the STM-1 / STS-3c line) is one time slot, and it corresponds to the time slot as shown in FIG. This is a system in which buffers are arranged in a ring and cells in time slots corresponding to the current time are sequentially transmitted.
Specifically, in FIG. 5, the buffer indicated by the pointer 601 indicating the buffer corresponding to the current time stores a pointer to the cell corresponding to the time slot at the current time.
[0010]
Here, the time normalized by the time required for one time slot, that is, (time / time required for one time slot) is called a normalized time, and the normalized current time in FIG. When the number is N, the buffer on the right side of this buffer stores a pointer to a cell whose transmission time is normalized time (t + 1) and the buffer on the left side is normalized time (t + N-1).
The pointer 601 indicating the buffer corresponding to the current time is updated based on the time counted by the clock unit (202 in FIG. 2).
When the cell reaches the head of the queue (205, 206 in FIG. 2), the ring buffer stores the queue in the buffer of the time slot corresponding to the transmittable time of the cell determined by the scheduling unit (203 in FIG. 2). By storing the pointer to the first cell, the pointer to the cell and the transmittable time are stored in pairs.
However, when a pointer to another cell has already been stored in the buffer of the time slot corresponding to the transmittable time, an empty buffer is searched in time order, and the pointer to the cell is stored in the nearest empty buffer.
The ring buffer transmits the cell identified by the buffer pointer indicated by the pointer 601 indicating the buffer corresponding to the current time to the line, so that the transmittable time is the current time among the cells stored in the ring buffer. The previous cell is detected and transmitted to the line.
[0011]
A second example of operation of a cell transmission unit of a shaper according to the conventional GCRA method is described in Eugen Wallmeier, Tom Worster, “The Spacing Policser, An Algorithm for Efficient Peak Rate Bit Control in ATM Networks,” ISS 1992, Oct.1992. Based on.
FIG. 6 is an implementation example of the cell transmission unit 204 shown in FIG. 2 described in the above-mentioned literature, and is generally called a calendar method. In the figure, 701 is a pointer indicating a list corresponding to the current time, and 702, 703 and 704 are lists each storing a pointer to the first cell in the queue.
A list is a data structure used when storing elements that have an order relationship, consisting of a pointer indicating the head element of the list, a pointer indicating the last element, and an element stored in the list. An element consists of information to be stored and a pointer indicating the next element.
For example, 705 is the tail element of list 1, and 706 is the head element of list 1. Also, in FIG. 6, the element information stored in the list is a list of pointers to the first cell of the queue (205, 206 in FIG. 2).
Reference numeral 707 denotes a transmission list that stores a pointer to the first cell in the queue that has reached the transmittable time.
[0012]
The operation of the shaper cell transmitter of the conventional GCRA method will be described using the calendar method.
In the calendar method, a time required for transferring several cells on the line is one time slot, a list storing pointers to cells corresponding to the time slots is arranged in a circle, and the list corresponding to the time slot that has reached the transmittable time. In this method, pointers to all the cells stored in the cell are moved to the tail of the transmission list.
Specifically, in FIG. 6, the list indicated by the pointer 701 indicating the list corresponding to the current time stores a pointer to the cell corresponding to the time slot of the current time.
Here, the time normalized by the time required for one time slot, that is, (time / time required for one time slot) is referred to as normalized time, and the normalized current time in FIG. When the number is N, the list on the right side of this list stores a list of pointers to cells whose transmission time is normalized time (t + 1) and the list on the left is normalized time (t + N-1).
A pointer 701 indicating a list corresponding to the current time is updated based on the time counted by the clock unit (202 in FIG. 2).
[0013]
When the cell reaches the head of the queue, the cell transmission unit shown in FIG. 6 has a queue at the end of the list of time slots corresponding to the transmittable time of the cell determined by the scheduling unit (203 in FIG. 2). By sequentially adding and storing the pointer to the head cell as an element of the list, the pointer to the head cell of the queue and the transmittable time are stored in pairs.
6 transmits all pointers to cells stored in the list corresponding to the time slot that has reached the transmittable time indicated by the pointer 701 indicating the list corresponding to the current time to the tail of the transmission list 707. The cell indicated by the pointer to the cell stored in the transmission list 707 is moved from the head of the queue and transmitted to the line in order, so that the transmittable time is earlier than the current time from the stored cell pointer. A pointer to the next cell is detected, and the cell indicated by the pointer is transmitted to the line in the order of the transmittable time from the cell with the earliest transmittable time.
[0014]
A third implementation example of a shaper cell transmitter of a conventional GCRA system will be described based on Japanese Patent Laid-Open No. 2001-27495.
FIG. 7 is an implementation example of the cell transmission unit 204 shown in FIG. 2 and is generally called a sequencer method. In FIG. 7, 801 and 802 are queues, 803 is a pointer to the first cell in the queue, 804 is the time slot value of the first cell in the queue, 805 is an array structure having the pointer and time slot value as elements, and 806 is a queue. , 807 is a pointer to the cell that has reached the head of the queue, 808 is the time slot value of the cell that has reached the head of the queue, and 809 is the broadcast bus.
The cell transmission unit shown in FIG. 7 sets the time required to transfer one cell on the line as one time slot, and, as shown in FIG. 7, a pointer to the head cell of the queue whose transmission available time is determined, and the cell This is a method of sorting elements composed of the time slot values in the order of the time slot values.
Here, it is assumed that a priority is set in advance between traffic classes such as a connection to which a cell belongs, a queue, CBR, and nrt-VBR, and the priority is higher as the value is smaller.
The sequencer is mainly composed of an array structure having pointers and time slot values as elements. In the implementation example of FIG. 7, the elements are sorted in the order of time slot values from the right side.
Specifically, in FIG. 7, each element of the array structure 805 having the pointer and time slot value as elements can be shifted to an adjacent element.
[0015]
When the cell reaches the head of the queue 806, the cell transmission unit shown in FIG. 7 sets a pointer 807 to the cell that has reached the head of the queue so as to indicate the head of the queue, and {cell scheduling unit (FIG. 2 203) is set to the time slot value 808 of the cell that has reached the head of the queue, by setting the value of the cell transmittable time * (maximum priority value + 1) + cell priority} determined in step 203). The pointer to the first cell and the time slot value are stored as a pair.
Next, the cell transmission unit shown in FIG. 7 uses the broadcast bus 809 to determine the time slot value 808 of the cell that has reached the head of the queue, and the time of each element in the array structure 805 having the pointer and the time slot value as elements. Compared with the slot value in parallel, the time slot value of each element in the array structure 805 is set to the insertion position of the first element where the time slot value of the cell that has reached the head of the queue is 808 or more. Are shifted to the left, and the pointer 807 to the cell that has reached the head of the queue and the time slot value 808 of the cell that has reached the head of the queue are stored in the insertion position, thereby sorting the elements in the order of the time slot values.
The cell transmission unit shown in FIG. 7 compares the transmittable time of the cell included in the time slot value of the rightmost element of the array structure 805 with the time counted by the clock unit 202, and the former value is before the latter value. The cell stored at the head of the queue indicated by the pointer of the rightmost element is sent to the line, the rightmost element is deleted from the array structure 805, and the remaining elements are shifted to the right, The pointer information of the cell having the earliest transmission time and the highest priority is specified from the stored pointers to the cell, and if the specified transmission time is earlier than the current time, the cell is connected to the line. Send to.
[0016]
A fourth operation example of the cell transmitter of the shaper according to the conventional GCRA method will be described based on Japanese Patent Application No. 2002-028284.
As shown in Japanese Patent Application No. 2002-028284, the cell transmission unit of the shaper according to the GCRA method uses the priority queue element based on the heap as the time slot value of the arriving cell and a pointer to the head cell of the queue. This can be realized by judging the priority of the time slot value.
A heap is a data structure of a tree with a partial order by an array, and is used to implement a priority queue or a sorter.
The priority queue is a data structure that identifies an element having the highest priority from the elements to which the priority is assigned. The priority queue includes a data structure for storing elements, an algorithm for deleting an element having the highest priority from the data structure, and an algorithm for inserting an element into the data structure.
A specific deletion and insertion algorithm is shown in Japanese Patent Application No. 2002-028284.
[0017]
The data structure of the priority queue by the heap is shown in FIG. The element value in FIG. 8 represents the priority, and the smaller the value, the higher the priority.
The arrangement of elements in FIG. 8 is based on the rule that “when an element has children, the priority of the element is equal to or higher than the priority of the child”. For this reason, the top element of the heap has the highest priority.
When the cell reaches the head of the queue (205, 206 in FIG. 2), the heap priority queue sets a pointer to the cell that has reached the head of the queue to indicate the head of the queue, and {cell The cell transmittable time determined by the scheduling unit (203 in FIG. 2) * (maximum priority value + 1) + cell priority determined by the cell scheduling unit} is set as the time slot value of the cell. Insert an element consisting of the value of into the priority queue by the heap.
Next, the priority queue by the heap compares the transmittable time of the cell included in the time slot value of the top element with the time counted by the clock unit, and when the former value is before the latter value, By sending the cell stored at the head of the buffer indicated by the pointer of the top element or the queue to the line and deleting the top element, it is possible to transmit from the cells stored in the priority queue by the heap The cell having the earliest time and the highest priority is specified, and when the specified transmission available time is earlier than the current time, the cell is transmitted to the line.
[0018]
As is clear from the above description, the cell scheduling method in the conventional shaper implementation example according to the GCRA method determines the cell transmittable time based on the current time counted by the clock unit (202 in FIG. 2), and sets the parameter The value is being updated. Furthermore, the priority of the cell may be determined based on the parameter value.
However, in realization of an actual shaper, there is an upper limit on the time that the clock unit can count. For example, when the time is counted with an integer value of N bits, the maximum value of the time that can be counted is (2 to the power of N-1), and the time counted by the clock unit exceeds the maximum value as time passes. When the time counted by the timepiece becomes 0, the timepiece wraps around and the time up to the maximum time is counted again.
In this way, when a roundabout occurs in the shaper clock, the values calculated based on the time before the rounding stored in the shaper, that is, the cell transmittable time and the parameter value are counted by the clock after the roundabout. It becomes an invalid value based on the time to do.
The cell transmittable time is compared between connections or compared with the current time counted by the clock. The parameter value is compared with the current time counted by the clock.
For this reason, when the sneak occurs in the clock, an error occurs in the operation of the shaper. Furthermore, when the cell priority is determined based on the parameter value, if the clock wraps around, the priority also becomes an incorrect value.
For this reason, in the cell scheduling method in the conventional shaper implementation example using the GCRA method, when a sneak occurs in the clock, the time-dependent value stored in the shaper becomes an incorrect value, and an error occurs in the shaper operation. There is a problem.
[0019]
[Problems to be solved by the invention]
Japanese Patent Laid-Open No. 10-117195 discloses a solution to the problem of clock wraparound in a cell scheduling method of a shaper implementation example according to the conventional GCRA method.
In the embodiment described in Japanese Patent Laid-Open No. 10-117195, the maximum value of the current time that can be counted by the clock unit is the maximum value of the cell interval value and the maximum value of the allowable fluctuation of the cell delay time. And the maximum value of the parameter value for each connection is the same as the maximum value of the clock.
Each parameter value for each connection has a 2-bit flag. These flags are alternately set at a time of 1/4 or more of the clock cycle, and the scheduling unit determines the cell transmittable time and updates the parameter value. It is reset when
When the cell scheduling unit determines the cell transmittable time based on the current time and the parameter value, if the parameter value flag value is [1, 1], the cell cycle is calculated after the parameter value is calculated. It is determined that more than 1/4 of the time has elapsed. In other cases, it is determined that the parameter value holds a valid value, and the cell transmittable time is calculated.
As is apparent from the above description, the embodiment described in Japanese Patent Laid-Open No. 10-117195 can determine that the parameter value stored in the shaper has become an incorrect value due to the wraparound of the clock. .
Therefore, in this embodiment, when the ring buffer method of the first operation example and the calendar method of the second operation example are applied as the cell transmission unit in an example of realizing the shaper by the conventional GCRA method, Can solve this problem.
[0020]
However, in the embodiment described in Japanese Patent Laid-Open No. 10-117195, these systems hold information on the transmission possible time of each cell as buffer and list position information, so that the clock unit can count. If the maximum value of the current time and the number of buffers and lists are the same value, even if wraparound occurs in the clock, wraparound occurs in the location information as well, and as a result, the cell transmission time will not be incorrect. Is used.
On the other hand, when the sequencer method of the third operation example or the priority queue by the heap of the fourth operation example is used as the cell transmission unit, these methods are performed at the time such as the transmittable time or priority of each cell. Although the dependent value is stored as information, in the embodiment described in Japanese Patent Laid-Open No. 10-117195, the clock wraps around the time-dependent value stored in the cell transmission unit, such as the transmittable time and priority. It cannot be processed.
Therefore, the embodiment described in Japanese Patent Laid-Open No. 10-117195 is based on the sequencer method of the third operation example and the fourth operation example heap as a cell transmission unit in an example of realizing the shaper by the conventional GCRA method. In a shaper having a cell transmission unit based on a method for storing a pair of information specifying a cell for which transmission possible time, priority, and transmission possible time are determined, like the priority queue method, the problem of clock wraparound There is a problem that cannot be solved.
[0021]
Japanese Patent Laid-Open No. 10-294741 discloses a solution to the clock wraparound problem in the cell scheduling method of an example of realizing a shaper using the conventional GCRA method.
The embodiment described in Japanese Patent Laid-Open No. 10-294741 assumes a ring buffer system as a cell transmission unit, as is apparent from the description of paragraph [0013] of Japanese Patent Laid-Open No. 10-294741.
Each parameter value for each connection has a 1-bit valid flag. A description of a specific setting method and timing of this valid flag can be found in paragraph [0043] of Japanese Patent Laid-Open No. 10-294741. The flag is invalidated if the previous transmission time + cell interval) is before the clock time, and this control is performed at least once per read control memory. ” Whether it can be solved or not cannot be judged from the description in JP-A-10-294741.
However, since this method clearly only determines the validity of the parameter value for each connection, as in Japanese Patent Laid-Open No. 10-117195, the embodiment described in this Japanese Patent Laid-Open No. 10-294741 is At least, in a shaper implementation example of the conventional GCRA method, in a shaper having a cell transmission unit based on a method of storing a pair of information specifying a cell for which transmission is possible, priority, and transmission time is determined , There is a problem that can not solve the problem of the clock wrapping.
[0022]
Japanese Patent Laid-Open No. 2001-36540 discloses a solution to the problem of clock wraparound in a cell scheduling method according to an example of realizing a shaper using the conventional GCRA method.
The embodiment described in Japanese Patent Laid-Open No. 2001-36540 assumes a ring buffer system as a cell transmission unit, as is clear from the description of paragraph number [0024] of Japanese Patent Laid-Open No. 2001-36540.
Each parameter value for each connection is given 2 bits at the top, and the top 2 bits are also given to the clock, and the number of rounds of the clock is counted.
The upper 2 bits of the parameter value are set by the cycle determination process. The cycle determination process is executed for all parameter values when a wraparound occurs in the clock, or is executed for a queue parameter corresponding to the update time when the clock value is updated.
In the period determining process, the value of the upper 2 bits of the watch is subtracted from the value of the upper 2 bits of the parameter value to determine whether or not the parameter value is before the current time.
However, since this method clearly only determines the validity of the parameter value for each connection, as in Japanese Patent Laid-Open No. 10-117195, the embodiment described in this Japanese Patent Laid-Open No. 2001-36540 is In an example of a shaper according to the conventional GCRA method, a shaper having a cell transmission unit based on a method for storing a pair of information for specifying a cell whose transmission time, priority, and transmission time are determined, There is a problem that cannot solve the problem of wraparound.
[0023]
The present invention has been made to solve the above-mentioned problems of the prior art, and the object of the present invention is to depend on the time stored in the shaper when a sneak occurs in the clock in the conventional shaper using the GCRA method. Solves the problem that an incorrect value is generated and an error occurs in the shaper's operation, and in the existing solution to this problem, the cell whose transmittable time, priority, and transmittable time are determined An object of the present invention is to provide a cell scheduling method that solves a problem that cannot be applied to a shaper having a cell transmission unit based on a method of storing specified information and the like in pairs.
The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
[0024]
[Means for Solving the Problems]
  Of the inventions disclosed in this application, the outline of typical ones will be briefly described as follows.
  Claims of the invention1In order to achieve the above-described object, the invention according to claim 1 is directed to a cell scheduling method for a shaping apparatus implemented by the GCRA method, when a wraparound occurs in which the current time counted by the clock unit exceeds the maximum value and becomes zero. For each parameter value stored in the storage unit, subtract the value of (the maximum value of the current time that the clock unit can count + 1) from the parameter value that exceeds the maximum value of the current time that the clock unit can count And a step of setting a parameter value having a value equal to or less than a maximum value of the current time that can be counted by the clock unit to 0, and for each transmittable time and each priority stored in the cell transmission unit, the clock unit Subtract the value of (Maximum current time that can be counted by the clock unit + 1) from the transmittable time and the priority that has a value exceeding the maximum value of the current time that can be counted by the clock unit. It is the most important feature that comprises a step of transmission available time, and priority 0 with a maximum below the value of the current time.
[0025]
  Claims of the invention2, 3In order to achieve the above object, in the invention according to the cell scheduling method of the shaping apparatus implemented by the GCRA method, the maximum value of the current time that can be counted by the clock unit is a value equal to or greater than the number of queues. A correspondence between the current time counted by the clock and the queue is uniquely determined in advance, and the clock includes a step of recording the number of rounds of the clock when the current clock counted by the clock exceeds the maximum value and becomes 0 When the current time counted by the clock unit is updated, and the parameter value of the connection corresponding to the queue corresponding to the time exceeds the maximum value of the current time that can be counted by the clock unit, from the parameter value, If the parameter value is updated to the value obtained by subtracting the value of (maximum current time that can be counted by the clock unit + 1), and the value is less than the maximum value of the current time that can be counted by the clock unit, When the cell schedule unit reads the parameter value corresponding to the connection to which the cell belongs from the storage unit, the update step is performed on the parameter value after a clock wraparound has occurred. If the read parameter value exceeds the maximum value of the current time that can be counted by the clock unit, the value of (the maximum value of the current time that the clock unit can count + 1) is subtracted from the parameter value, If it is less than or equal to the maximum value of the current time that can be counted by the clock unit, it includes a step of setting the parameter value to 0, and after the clock wraparound occurs when the cell schedule unit writes the updated value of the parameter value to the storage unit When the update step is not executed for the parameter value of the storage unit to be updated, the parameter is updated. Includes a step of writing a value obtained by adding the value of (maximum value of current time that can be counted by the clock unit + 1) to the parameter value of the storage unit to be updated. In the step of storing a pair of information for identifying the cell for which the cell and the transmittable time are determined, the cell transmittable time and the number of wraparound times when the priority is determined are set as the cell transmittable time and the priority. And a step of storing the information together with the information for identifying the cell for which the transmittable time is determined, and the cell transmitter is the earliest and highest priority from the stored transmittable time and priority. In the step of identifying the transmittable time, in order to compare the transmittable time and the priority, when evaluating the stored transmittable time and priority value, The clock sneak count recorded together with the priority and the clock sneak count stored in the clock part are compared, and the transmission possible time and the clock sneak count generated after the priority is determined are specified. If the step and the specified number of wraparounds are one, and the transmission possible time and priority are values exceeding the maximum value of the current time that can be counted by the clock unit, respectively, from the transmission possible time and priority Each of the steps of converting the transmittable time and the priority to a value obtained by subtracting the value of (maximum current time that can be counted by the clock unit + 1), and the specified number of wraparounds, In addition, when the transmission possible time and the priority are equal to or less than the maximum value of the current time that can be counted by the clock unit, the most important feature is that the transmission possible time and the priority are converted to 0, respectively.
[0026]
[Action]
As is apparent from an example of implementing a shaper according to the conventional GCRA method, the parameter value for each connection and the value of the cell transmittable time stored in the shaper are times in units of one cell time.
When a wraparound occurs in which the current time that can be counted by the clock section exceeds the maximum value and becomes 0, the time indicated by the clock is a value obtained by subtracting the value of (maximum current time that can be counted by the clock + 1) from the original time. Become.
Therefore, as is clear from the implementation example of the cell scheduling method in the cell scheduling unit of the conventional shaper implementation example by the GCRA method, when the wraparound occurs in the clock unit, the parameter value for each connection stored in the shaper and the cell transmission By subtracting the value of (the maximum value of the current time that can be counted by the clock + 1) from values that depend on time such as possible time and priority, these values can be corrected to correct values.
However, as is clear from the implementation example of the conventional cell scheduling method, when the parameter value is corrected and becomes a negative value, the calculated transmittable time is the same value even if this is set to 0. In this case, The parameter value is 0.
If the transmittable time is a negative value, it means that the current time has passed the transmittable time, and the cell needs to transmit as soon as possible. There is no hindrance.
Furthermore, if the parameter value at the time of determining the transmittable time is set as the priority, if the priority is a negative value, the cell needs to be transmitted as soon as possible. There is no problem in the operation.
[0027]
  Claims of the invention1Based on the above-described principle, the invention according to the present invention is based on the above-described principle, and when a wraparound occurs in the timepiece of the conventional GCRA method, the time-dependent value stored in the shaper becomes an incorrect value, and an error occurs in the shaper operation. The problem to be solved is solved in the case of having a cell transmission unit based on a method of storing a pair of information for specifying a cell for which transmission possible time, priority, and transmission possible time are determined.
  However, claims1In the solution of the invention according to the invention, when a sneak occurs in the clock, the connection is supported by the shaper in order to simultaneously correct the parameter value for each connection, the transmittable time of the cell, the priority, etc. stored in the shaper. When the number is small, it is practical, but as the number of connections increases, it becomes practically difficult to simultaneously correct these values within a short time.
[0028]
Therefore, when the number of connections supported by the shaper is large, these values need to be distributed and corrected after a wraparound occurs in which the current time that can be counted by the clock unit exceeds the maximum value and becomes zero.
For this reason, the correspondence between the current time counted by the clock unit and the queue, that is, the correspondence with the connection is determined in advance, and when the current time is updated, the parameter value of the connection corresponding to that time is set as described above. Correct based on the principle.
However, in this case, the parameter value becomes an invalid value until the correction is completed after the sneak occurs in the clock.
For this reason, when reading the parameter value, the cell schedule unit corrects the read value based on the above-described principle if it detects that a wraparound occurs in the clock but the correction to the parameter value is not completed. .
In addition, when the cell schedule unit detects that a wraparound has occurred in the clock when the parameter value is written but the correction to the parameter value has not been completed, the cell schedule unit performs the (current The write operation is performed after adding the value of the maximum time value + 1), and then, when the parameter value is corrected, the value is corrected to be correct.
[0029]
  In addition, regarding the cell transmittable time and priority, the cell transmitter stores the number of wraparound times of the clock when the cell scheduling unit determines the cell transmittable time in pairs with these values.
  The cell transmission unit uses the property that the clock wraparound does not occur more than once until the cell is transmitted after the transmittable time is determined, and the clock stored in pairs with the transmittable time and priority of the cell. These values are corrected by comparing the number of wraparound times with the number of wraparound times of the clock when these values are evaluated.
  Specifically, when the cell transmission unit evaluates these stored values, if the number of wraparounds is 1, the value of (the maximum value of the current time that can be counted by the clock + 1) is subtracted from these values. . However, if the result of subtraction is a negative value, it is converted to zero.
  Claims of the invention2, 3Based on the above-described principle, the invention according to the present invention is based on the above-described principle, and when a wraparound occurs in the timepiece of the conventional GCRA method, the time-dependent value stored in the shaper becomes an incorrect value, and an error occurs in the shaper operation. The problem to be solved is solved in the case of having a cell transmission unit based on a method of storing a pair of information for specifying a cell for which transmission possible time, priority, and transmission possible time are determined.
[0030]
DETAILED DESCRIPTION OF THE INVENTION
  Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
  Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.
    [Embodiment 1]
  Claims of the invention1An embodiment of the cell shaping device according to the present invention is shown in a shaper having the same configuration as that of the shaper implementation example of the conventional GCRA system shown in FIG.
  Here, as the cell scheduling method in the cell scheduling unit (203 in FIG. 2), the cell scheduling method in the cell scheduling unit shown in FIG. 3 and FIG. 4 is used.
  Further, as the cell transmission unit (204 in FIG. 2), the priority queue by the sequencer method shown in FIG. 7 or the heap shown in FIG. 8 is used.The
[0031]
The current time counted by the clock unit (202 in FIG. 2) is realized as an unsigned integer value of N bits in units of the average time required for transmission of one cell on the line as one cell time. Shall.
In this case, the maximum value of the current time that can be counted by the clock unit is (2 to the Nth power-1), and when the maximum time is exceeded, a wraparound in which the time to count becomes zero occurs.
The bit length N of the current time that can be counted by the clock unit is not a logical problem regardless of the value. If the bit length is short, the wraparound process occurs frequently. If the bit length is long, the occurrence frequency of the wraparound process decreases.
In this embodiment, in order to simplify the implementation method of the wraparound processing, the bit length N of the current time that can be counted by the clock unit is expressed as (maximum value of cell interval that can be handled by cell shaping device + cell shaping device. The minimum bit length that can represent the value of the allowable cell delay time fluctuation).
[0032]
As is clear from the implementation example of the cell scheduling method, the maximum value of the updated value when the parameter value is updated is (the maximum value of the current time + the maximum value of the cell interval that can be handled by the cell shaping device + the cell shaping device The value of the allowable cell delay time fluctuation).
Further, the maximum value of the cell transmittable time is (the maximum value of the current time + the maximum value of the cell interval that can be handled by the cell shaping device), and the maximum value of the cell priority is the same as the maximum value of the parameter value.
Therefore, the bit length N of the current time that can be counted by the clock unit can be expressed as a value of (maximum value of cell interval that can be handled by the cell shaping device + value of fluctuation of allowable cell delay time that can be handled by the cell shaping device). In the case of the minimum bit length, the parameter value, the cell transmittable time, and the priority can be realized by an unsigned integer value of (N + 1) bits.
In this case, when these values exceed the maximum value of the current time that can be counted by the clock unit, the operation of subtracting (the value of the maximum value of the current time that can be counted by the clock unit + 1) from these values When the most significant bit is [1], this is equivalent to an operation for setting the most significant bit to [0].
[0033]
Based on the above assumption, an example of the operation when a wraparound occurs in the timepiece unit is shown in the flowchart of FIG.
When the wraparound occurs in the clock unit, if the upper 1 bit of the parameter value is [0] for each parameter value stored in the storage unit (201 in FIG. 2), the parameter value is set to 0, and the parameter value When the upper 1 bit is [1], the upper 1 bit is set to [0] (step 1001).
By this operation, the value of (maximum current time that can be counted by the clock unit + 1) is subtracted from the parameter value having a value that exceeds the maximum value of the current time that the clock unit can count, and the current time that the clock unit can count is subtracted. A parameter value having a value less than or equal to the maximum value is set to zero.
As described in the section of [Action] above, even if a parameter value having a value equal to or less than the maximum value of the current time that can be counted by the clock unit is set to 0, there is no problem in the operation of the shaper.
Subsequently, for each transmittable time and priority stored in the cell transmission unit (204 in FIG. 2), when the transmittable time and the top 1 bit of priority are [0], these values are set to 0, When the transmission possible time and the upper 1 bit of the priority are [1], the upper 1 bit is set to [0] (step 1002).
By this operation, the value of (the maximum value of the current time that can be counted by the clock unit + 1) is subtracted from the transmittable time having a value exceeding the maximum value of the current time that can be counted by the clock unit, and the priority. The transmittable time having a value less than or equal to the maximum value of the current time that can be counted and the priority are set to 0.
As described in the section of [Action] above, there is no problem in the operation of the shaper even if the transmission possible time having a value equal to or less than the maximum value of the current time that can be counted by the clock unit and the priority is 0.
[0034]
    [Embodiment 2]
  Claims of the invention2, 3An embodiment of the cell shaping device according to the present invention is shown in a shaper having the same configuration as that of the shaper implementation example of the conventional GCRA system shown in FIG.
  Here, as the cell scheduling method in the cell scheduling unit (203 in FIG. 2), the cell scheduling method in the cell scheduling unit shown in FIG. 3 and FIG. 4 is used.
  Further, as the cell transmission unit (204 in FIG. 2), the sequencer method shown in FIG. 7 or the priority queue by the heap shown in FIG. 8 is used.
  Claim2The embodiment of the invention related to3In order to be included in the embodiments of the invention related to3An example of the operation will be described using the embodiment of the present invention.
  The current time counted by the clock unit is assumed to be realized by an unsigned integer value of N bits in which the average time required for transmission of one cell on the line is one cell time and the unit is one cell time.
[0035]
In this case, the maximum value of the current time that can be counted by the clock unit (201 in FIG. 2) is (2 to the Nth power-1), and when the maximum time is exceeded, a wraparound occurs in which the time to count becomes zero.
In addition, the clock unit records the number of occurrences of the above-described clock wraparound number as an unsigned integer value of Mbit.
If the bit length N of the current time that can be counted by the clock unit is greater than or equal to the bit length that can represent the number of queues (205 and 206 in FIG. 2) provided in the cell shaping device, any number of values is logically possible. There is no problem.
In the present embodiment, the value of (maximum value of cell interval that can be handled by cell shaping device + value of fluctuation of allowable cell delay time that can be handled by cell shaping device) is much larger than the number of queues that the cell shaping device has. In order to simplify the implementation method of the wraparound processing, the bit length N of the current time that can be counted by the clock unit is set to (the maximum value of the cell interval that can be handled by the cell shaping device + the tolerance that the cell shaping device can handle) The minimum bit length that can represent the value of the cell delay time fluctuation).
[0036]
In the present embodiment, the correspondence between the current time counted by the clock unit and the queue is as follows. When the number of queues included in the cell shaping device is L, each queue has a value from 0 to (L−1). It is assumed that this value corresponds to the time counted by the clock unit.
When the current time counted by the clock unit is updated, an update process is performed on the parameter value of the connection corresponding to the queue corresponding to the update time. For example, when the updated time is K, an update process is performed on the parameter value of the connection corresponding to the queue identified by K.
In this case, since the parameter value is a value obtained by adding (the value of the maximum value of the current time that can be counted by the clock unit + 1) until the correction is completed after the sneak occurs in the clock, the cell schedule unit (203 in FIG. 2), when a parameter value is read from the storage unit (202 in FIG. 2), a wraparound occurs in the clock, but if it is detected that the correction to the parameter value has not been completed, the parameter value is read. Subtract the above value from the value.
Also, when writing to the storage unit, the sneak in the clock has occurred, but if it is detected that the correction to this parameter value has not been completed, the parameter value is set to (the maximum value of the current time that can be counted by the clock unit). The value corrected by adding the value of +1) is written.
[0037]
As is clear from the implementation example of the cell scheduling method, the maximum value of the updated value when the parameter value is updated is (the maximum value of the current time + the maximum value of the cell interval that can be handled by the cell shaping device + the cell shaping device The value of the allowable cell delay time fluctuation).
Therefore, the maximum update value of the parameter value that is actually written is (maximum value of current time * 2 + 1 + maximum value of cell interval that can be handled by cell shaping device + fluctuation of allowable cell delay time that can be handled by cell shaping device) Value).
Therefore, the bit length N of the current time that can be counted by the clock unit can be expressed as a value of (maximum value of cell interval that can be handled by the cell shaping device + value of fluctuation of allowable cell delay time that can be handled by the cell shaping device). When the minimum bit length is used, the parameter value can be realized by an unsigned integer value of (N + 2) bits.
In this case, when the parameter value exceeds the maximum value of the current time that can be counted by the clock unit, the operation of subtracting (the value of the maximum value of the current time that can be counted by the clock unit + 1) from the parameter value When 2 bits are [1, 1], the upper 2 bits are [1, 0], and when the upper 2 bits of the parameter value are [1, 0], the upper 2 bits are [0, 1] and the parameter value When the upper 2 bits of [0, 1] are equal to [0, 0], this is equivalent to an operation that sets the upper 2 bits to [0, 0].
Similarly, the operation of adding (the value of the maximum value of the current time that can be counted by the clock unit + 1) to the parameter value is performed when the upper 2 bits of the parameter value are [1, 0]. 1], when the upper 2 bits of the parameter value are [0, 1], the upper 2 bits are [1, 0], and when the upper 2 bits of the parameter value is [0, 0], the upper 2 bits are [ 0, 1] is equivalent to the operation.
[0038]
Based on the above assumption, an example of the operation when a wraparound occurs in the clock unit is shown in the flowchart of FIG.
If the upper 2 bits of the parameter value are [0, 0] with respect to the parameter value of the connection corresponding to the updated time when the clock part wraps around, the parameter value is set to 0, and the upper 2 bits of the parameter value Is [0, 1], the upper 2 bits are [0, 0], and when the upper 2 bits of the parameter value are [1, 0], the upper 2 bits are [0, 1] and the upper 2 bits of the parameter value. Is [1, 1], the upper 2 bits are set to [1, 0] (step 1101).
If the parameter value of the connection corresponding to the queue corresponding to the updated time exceeds the maximum value of the current time that can be counted by the clock unit by this operation, the maximum value of the current time that the clock unit can count is calculated from the parameter value. The parameter value is updated to a value obtained by subtracting the value +1), and is updated to 0 when the value is equal to or less than the maximum value of the current time that can be counted by the clock unit.
As described in the section of [Action] above, even if a parameter value having a value equal to or less than the maximum value of the current time that can be counted by the clock unit is set to 0, there is no problem in the operation of the shaper.
[0039]
An example of the operation when the cell schedule unit reads the parameter value corresponding to the connection to which the cell belongs from the storage unit is shown in the flowchart of FIG.
The flowchart of FIG. 11 is executed when the cell scheduling unit reads parameter values corresponding to the connection to which the storage unit belongs from the storage unit in the cell scheduling method shown in FIGS. 3 and 4.
In this flowchart, the identifier of the queue corresponding to the connection to which the cell belongs is set as QID.
When reading the parameter value corresponding to the connection to which the cell belongs from the storage unit, if the value of the queue identifier corresponding to this connection is less than or equal to the current time, Since the update step is executed, the parameter value is read as it is (N in Step 1201).
If the value of the identifier of the queue corresponding to the connection is greater than the current time, the update step is not executed for this parameter value after the clock wraparound has occurred, so the upper 2 bits of the read parameter value are [0. , 0], the parameter value is 0, the upper 2 bits are [0, 1], the upper 2 bits are [0, 0], and the upper 2 bits are [1, 0], the upper 2 bits are [ 0, 1] and the upper 2 bits are [1, 1], the higher 2 bits are set to [1, 0] (Y in step 1201, step 1202).
With this operation, when the parameter value is read, after the clock wraparound has occurred, the update step is not executed for the parameter value, and the current time when the read parameter value can be counted by the clock unit If the maximum value is exceeded, the value of (the maximum value of the current time that can be counted by the clock unit + 1) is subtracted from the parameter value, and if the value is less than the maximum value of the current time that can be counted by the clock unit, the parameter value is set to 0 And
[0040]
An example of the operation when the cell schedule unit writes the updated value of the parameter value corresponding to the connection to which the cell belongs to the storage unit is shown in the flowchart of FIG.
The flowchart of FIG. 12 is executed when the cell scheduling method writes the updated parameter value corresponding to the connection to which the storage unit belongs from the storage unit in the cell scheduling method shown in FIG.
In this flowchart, the identifier of the queue corresponding to the connection to which the cell belongs is set as QID.
When writing the update value of the parameter value corresponding to the connection to which the cell belongs from the storage unit, if the value of the queue identifier corresponding to this connection is less than or equal to the current time, the update target is generated after the clock wraparound has occurred Since the update step is executed for the parameter value in the storage unit, the parameter value is written as it is (N in step 1301).
If the value of the identifier of the queue corresponding to the connection is larger than the current time, the update step has not been executed for the parameter value of the storage unit to be updated after the clock wraparound has occurred. When the upper 2 bits of the parameter value are [0, 0], the upper 2 bits are [0, 1]. When the upper 2 bits are [0, 1], the upper 2 bits are [1, 0], and the upper 2 bits are In the case of [1, 0], a value in which the upper 2 bits are [1, 1] is written to the storage unit (Y in step 1301, step 1302).
By this operation, when the updated value of the parameter value is written in the storage unit, the update step is not executed for the parameter value of the storage unit to be updated after the clock wraparound occurs. A value obtained by adding a value of (the maximum value of the current time that can be counted by the clock unit + 1) to the updated value of the parameter is written to the parameter value of the storage unit to be updated.
[0041]
Next, a cell transmission unit stored in the cell transmission unit and a correction method for the priority will be described.
As is clear from the implementation example of the cell scheduling method, the maximum value of the cell transmittable time is (the maximum value of the current time + the maximum value of the cell interval that the cell shaping device can handle), and the maximum value of the cell priority is It becomes the same as the maximum update value when the parameter value is updated.
Accordingly, the transmittable time and priority of the cell can be realized by an unsigned integer value of (N + 1) bits.
In this case, if these values exceed the maximum value of the current time that can be counted by the clock unit, the calculation to subtract (the value of the maximum value of the current time that can be counted by the clock unit + 1) from these values When the most significant bit of [1] is [1], this is equivalent to an operation that sets the most significant bit to [0].
The cell scheduling unit of the cell shaping device according to the present invention determines a cell transmittable time and priority when the cell reaches the head of the queue.
[0042]
Then, the cell transmission unit transmits the cells in the order of transmission possible time from the cells determined by these values, and in the order of priority when the transmission possible times are the same.
Therefore, the time from when the cell transmittable time and priority are determined to when the cell is actually transmitted is at most (the number of queues provided in the cell shaping device minus 1) cell time.
On the other hand, in the present invention, the maximum value of the current time that can be counted by the clock unit is equal to or greater than the number of queues provided in the cell shaping device.
Therefore, in the present invention, the wraparound of the clock occurs only once at a maximum from the time when the cell transmittable time and priority are determined until the cell is actually transmitted. Therefore, when the number of rounds of the clock is counted as an unsigned integer value of M = 1 bit, and the schedule unit determines the cell transmission possible time and priority, the cell transmission unit adds these values to the number of rounds of the clock. When the cell transmitter evaluates these values, the stored clock wrap count is compared with the clock wrap count at the current time counted by the clock portion. If the values are different, it can be identified that the wraparound has occurred once.
[0043]
FIG. 13 is a flowchart illustrating an operation example when the cell transmission unit evaluates the transmittable time and the priority value stored therein.
The flowchart of FIG. 13 shows the transmission possible times and priorities stored in the array structure and the tree structure in the cell transmission unit by the sequencer system shown in FIG. 7 and the cell transmission unit by the priority queue by the heap shown in FIG. It is executed when comparing.
When comparing the transmittable time and priority stored in the array structure or tree structure, compare the clock wrap count stored with these values with the clock wrap count at that time, Since the clock wrap-around has not occurred if the values are the same, the priority queue by the sequencer or heap uses the stored transmittable time and priority values as they are (Y in step 1401).
If the clock wrap count recorded together with the transmittable time and priority is different from the clock wrap count at that time, the clock wrap has occurred, so the priority queue by the sequencer or heap is When the upper 1 bit of the stored transmittable time or priority value is [0], these values are set to 0, and when the upper 1 bit is [1], a value with the upper 1 bit set to [0] is transmitted. It is used as a possible time or priority value (N in step 1401; step 1402).
[0044]
By this operation, the time that can be transmitted and the number of rounds of the clock recorded together with the priority are compared with the number of rounds of the clock stored in the clock unit. When the number of rounds of the generated clock is specified, the specified round number is 1, and the transmission possible time and the priority are values exceeding the maximum value of the current time that each clock unit can count, Each of the transmittable time and the priority is converted into a value obtained by subtracting the value of (maximum value of current time that can be counted by the clock unit + 1) from the transmittable time and the priority. If the transmission time and priority are equal to or less than the maximum value of the current time that can be counted by the clock unit, the transmission time and priority are each converted to 0.
It is obvious that the present invention includes the case where the fluctuation value of the cell delay time is replaced with a fixed value such as 0 or a constant. Further, it is obvious that the present invention can be combined with the cell scheduling method described in claim 2 of Japanese Patent Application No. 2001-227268.
Although the invention made by the present inventor has been specifically described based on the above-described embodiment, the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the invention. Of course.
[0045]
【The invention's effect】
  The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.
  According to the present invention, in a shaper based on the GCRA method having a cell transmission unit based on a method for storing a pair of information specifying a cell for which transmission is possible, priority, and a cell for which transmission is possible is determined, the clock wraps around the clock. Even if it occurs, a value depending on the time stored in the shaper can be updated to a correct value or a cell scheduling method for conversion can be provided, so that there is an advantage that no error occurs in the operation of the shaper.
  Further, the claims of this application2, 3The invention according to the present invention distributes and updates the value depending on the time stored in the shaper, and converts the value to a correct value as necessary, so even if the number of connections supported by the shaper is large, Claims1There is an advantage that a shaper equivalent to the invention according to the above can be provided practically.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of an implementation example of a conventional cell shaping device based on a token scheme.
FIG. 2 is a block diagram showing a schematic configuration of an implementation example of a cell shaping apparatus according to a conventional GCRA method.
FIG. 3 is a flowchart illustrating an implementation example of a cell scheduling method in a cell scheduling unit of an implementation example of a cell shaping apparatus according to a conventional GCRA scheme;
FIG. 4 is a flowchart illustrating an implementation example of a cell scheduling method in a cell scheduling unit of an implementation example of a cell shaping apparatus according to a conventional GCRA scheme;
FIG. 5 is a block diagram illustrating a schematic configuration of an implementation example of a cell transmission unit using a ring buffer scheme in an implementation example of a cell shaping apparatus using a conventional GCRA scheme;
FIG. 6 is a block diagram illustrating a schematic configuration of an implementation example of a cell transmission unit using a calendar system in an implementation example of a cell shaping apparatus using a conventional GCRA system;
FIG. 7 is a block diagram illustrating a schematic configuration of an implementation example of a cell transmission unit using a sequencer system in an implementation example of a cell shaping apparatus using a conventional GCRA system;
FIG. 8 is a diagram for explaining a data structure by a priority queue by a heap.
FIG. 9 is a flowchart for explaining a cell scheduling method according to the first embodiment of the present invention when a wraparound occurs in the clock unit;
FIG. 10 is a flowchart for explaining a cell scheduling method according to the second embodiment of the present invention when a wraparound occurs in the clock unit;
FIG. 11 is a flowchart for explaining a cell scheduling method according to the second embodiment of the present invention when a parameter value is read when a wraparound occurs in the clock unit;
FIG. 12 is a flowchart for explaining a cell scheduling method according to the second embodiment of the present invention when writing an updated value of a parameter value when a wraparound occurs in the clock unit;
FIG. 13 is a flowchart for explaining a cell scheduling method according to the second embodiment of the present invention when evaluating a transmission possible time and a priority value when a wraparound occurs in the clock unit;
[Explanation of symbols]
101, 207 ... input unit, 102, 103, 205, 206, 801, 802, 806 ... queue, 104, 105 ... transmission timing generation unit, 106 ... arbitration unit, 201 ... storage unit, 202 ... clock unit, 203 ... cell Scheduling unit, 204... Cell transmission unit, 601... Pointer indicating the buffer corresponding to the current time, 602, 603 and 604... Buffer storing the pointer to the first cell in the queue, 701. 702, 703, 704, each of which stores a pointer to the first cell of the queue, 705, the last element of list 1, 706, the first element of list 1, 707, the transmission list, 803, the first cell of the queue Pointer to 804: Time slot value of the first cell in the queue, 805 ... Pointer and time Sequence structure of the Tsu preparative values as elements, 807 ... Seruhe the pointer reaches the head of the queue, 808 ... time slot value of the cell that has reached the top of the queue, 809 ... broadcast bus.

Claims (3)

コネクション毎にセルを到着順に先頭から格納するキューと、
到着したセルを当該セルが所属するコネクションに対応したキューに格納する入力部と、
回線上において1セルの伝送に要する平均時間を1セル時間とし、当該1セル時間単位の整数値で現在時刻を計数する時計部と、
コネクション毎のセル間隔の値、許容されるセル遅延時間のゆらぎの値、およびパラメータ値を前記1セル時間単位の整数値で記憶する記憶部と、
前記キューに格納されたセルが当該キューの先頭に達した際に、当該セルが所属するコネクションに対応した、前記許容されるセル遅延時間のゆらぎの値、および前記パラメータ値を前記記憶部から読み込み、これらの値と前記時計部が計数する現在時刻に基づいて、当該セルの送信可能時刻を前記1セル時間単位の整数値で決定し、前記パラメータ値を当該セルの優先度とするステップと、前記キューに格納されたセルが回線に送信される際に、当該セルが所属するコネクションに対応した、前記セル間隔の値、および前記パラメータ値を前記記憶部から読み込み、これらの値と前記時計部が計数する現在時刻に基づいて、前記パラメータ値の更新値を決定し、前記パラメータ値の更新値を前記記憶部に書き込むステップとを含むセルスケジューリング部と、
前記セルスケジューリング部が決定した送信可能時刻、優先度、および当該送信可能時刻が決定されたセルを特定する情報を対で記憶するステップと、記憶された送信可能時刻、および優先度から、最も早く、かつ最も優先度の高い送信可能時刻を特定するステップと、特定された当該送信可能時刻が前記時計部が計数する現在時刻より以前の場合、当該送信可能時刻、および優先度と対で記憶された情報に基づいて送信するセルを特定するステップと、当該セルを回線に送信するステップとを含むセル送信部とから構成されるセルシェーピング装置のセルスケジューリング方法であって、
前記時計部が計数する現在時刻が最大値を越えて0となる回り込みが発生した際に、前記記憶部に記憶された各パラメータ値に対して、前記時計部が計数できる現在時刻の最大値を越える値を有するパラメータ値から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算し、前記時計部が計数できる現在時刻の最大値以下の値を有するパラメータ値を0とするステップと、
前記セル送信部に記憶された各送信可能時刻、および各優先度に対して、前記時計部が計数できる現在時刻の最大値を越える値を有する送信可能時刻、および優先度から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算し、前記時計部が計数できる現在時刻の最大値以下の値を有する送信可能時刻、および優先度を0とするステップとを含むことを特徴とするセルスケジューリング方法。
A queue that stores cells from the top in the order of arrival for each connection;
An input unit for storing the arrived cell in a queue corresponding to the connection to which the cell belongs;
A clock unit that counts the current time as an integer value in units of one cell time, where the average time required for transmission of one cell on the line is one cell time;
A storage unit that stores a value of a cell interval for each connection, a value of fluctuation of an allowable cell delay time, and a parameter value as integer values in units of one cell time;
When the cell stored in the queue reaches the head of the queue, the fluctuation value of the allowable cell delay time and the parameter value corresponding to the connection to which the cell belongs are read from the storage unit. , Based on these values and the current time counted by the clock unit, determining the transmittable time of the cell as an integer value in the unit of one cell time, and setting the parameter value as the priority of the cell; When the cells stored in the queue are transmitted to the line, the cell interval value and the parameter value corresponding to the connection to which the cell belongs are read from the storage unit, and these values and the clock unit Determining an update value of the parameter value based on a current time counted by the data, and writing the update value of the parameter value to the storage unit. And Yuringu part,
The step of storing a pair of information specifying the transmittable time and priority determined by the cell scheduling unit and the cell for which the transmittable time is determined, and the earliest from the stored transmittable time and priority And, when the transmission priority time with the highest priority is specified and the specified transmission possible time is earlier than the current time counted by the clock unit, the transmission possible time and the priority are stored in pairs. A cell scheduling method for a cell shaping device comprising: a cell transmission unit including a step of identifying a cell to be transmitted based on the received information; and a step of transmitting the cell to a line,
The maximum value of the current time that can be counted by the clock unit for each parameter value stored in the storage unit when a wraparound occurs in which the current time counted by the clock unit exceeds the maximum value and becomes 0 A parameter value having a value equal to or less than the maximum value of the current time that can be counted by the clock unit is set to 0 by subtracting the value of (the maximum value of the current time that can be counted by the clock unit + 1) from the parameter value having a value exceeding the value. Steps,
For each transmittable time and each priority stored in the cell transmission unit, from the transmittable time and the priority having a value exceeding the maximum value of the current time that can be counted by the clock unit, (the clock unit Subtracting the value of the maximum value of the current time +1) that can be counted, and a transmittable time having a value less than or equal to the maximum value of the current time that can be counted by the clock unit, and a step of setting the priority to 0 A cell scheduling method.
コネクション毎にセルを到着順に先頭から格納するキューと、
到着したセルを当該セルが所属するコネクションに対応したキューに格納する入力部と、
回線上において1セルの伝送に要する平均時間を1セル時間とし、当該1セル時間単位の整数値で現在時刻を計数する時計部と、
コネクション毎のセル間隔の値、許容されるセル遅延時間のゆらぎの値、およびパラメータ値を前記1セル時間単位の整数値で記憶する記憶部と、
前記キューに格納されたセルが当該キューの先頭に達した際に、当該セルが所属するコネクションに対応した、前記許容されるセル遅延時間のゆらぎの値、および前記パラメータ値を前記記憶部から読み込み、これらの値と前記時計部が計数する現在時刻に基づいて、当該セルの送信可能時刻を前記1セル時間単位の整数値で決定するステップと、前記キューに格納されたセルが回線に送信される際に、当該セルが所属するコネクションに対応した、前記セル間隔の値、および前記パラメータ値を前記記憶部から読み込み、これらの値と前記時計部が計数する現在時刻に基づいて、前記パラメータ値の更新値を決定し、前記パラメータ値の更新値を前記記憶部に書き込むステップとを含むセルスケジューリング部と、
当該セルスケジューリング部が決定した送信可能時刻、および当該送信可能時刻が決定されたセルを特定する情報を対で記憶するステップと、記憶された送信可能時刻から最も早い送信可能時刻を特定するステップと、特定された当該送信可能時刻が前記時計部が計数する現在時刻より以前の場合、当該送信可能時刻と対で記憶された情報に基づいて送信するセルを特定するステップと、当該セルを回線に送信するステップとを含むセル送信部とから構成されるセルシェーピング装置のセルスケジューリング方法であって、
前記時計部が計数できる現在時刻の最大値は、前記キューの数以上の値であり、前記時計部が計数する現在時刻と前記キューの対応関係が予め一意に定められ、
前記時計部が、前記時計部が計数する現在時刻が最大値を越えて0となった時計の回り込み回数を記録するステップを含み、
前記時計部が計数する現在時刻が更新された際に、前記記憶部に記憶された当該時刻に対応する前記キューに対応するコネクションのパラメータ値が、前記時計部が計数できる現在時刻の最大値を越える場合は、前記パラメータ値から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算した値に前記パラメータ値を更新し、前記時計部で計数できる現在時刻の最大値以下の値の場合は0に更新する更新ステップを含み、
セルスケジュール部が、前記記憶部からセルが所属するコネクションに対応したパラメータ値を読み込む際に、時計の回り込みが発生した後に前記パラメータ値に対して前記更新ステップが実行されていない状態であって、かつ読み込んだ前記パラメータ値が前記時計部が計数できる現在時刻の最大値を越える場合は、前記パラメータ値から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算し、前記時計部が計数できる現在時刻の最大値以下の場合は、前記パラメータ値を0とするステップを含み、
セルスケジュール部が、パラメータ値の更新値を前記記憶部に書き込む際に、時計の回り込みが発生した後に、更新の対象となる前記記憶部のパラメータ値に対して前記更新ステップが実行されていない状態の場合、前記パラメータの更新値に、(前記時計部が計数できる現在時刻の最大値+1)の値を加算した値を、当該更新の対象となる前記記憶部のパラメータ値に書き込むステップを含み、
セル送信部が、セルの送信可能時刻、および当該送信可能時刻が決定されたセルを特定する情報を対で記憶するステップにおいて、セルの送信可能時刻を決定した際の時計の回り込み回数を、当該セルの送信可能時刻、および当該送信可能時刻が決定されたセルを特定する情報と併せて記憶するステップを含み、
セル送信部が、記憶された送信可能時刻から最も早い送信可能時刻を特定するステップにおいて、送信可能時刻を比較するために、記憶された送信可能時刻の値を評価する際に、当該送信可能時刻と併せて記録された時計の回り込み回数と、前記時計部に記憶された時計の回り込み回数を比較して、当該送信可能時刻の決定以降に発生した時計の回り込み回数を特定するステップと、
特定された当該回り込み回数が1回であって、かつ当該送信可能時刻が前記時計部が計数できる現在時刻の最大値を越える値の場合、当該送信可能時刻から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算した値に、当該送信可能時刻を変換するステップと、
特定された当該回り込み回数が1回であって、かつ当該送信可能時刻が前記時計部が計数できる現在時刻の最大値以下の場合、当該送信可能時刻を0に変換するステップとを含むことを特徴とするセルスケジューリング方法。
A queue that stores cells from the top in the order of arrival for each connection;
An input unit for storing the arrived cell in a queue corresponding to the connection to which the cell belongs;
A clock unit that counts the current time as an integer value in units of one cell time, where the average time required for transmission of one cell on the line is one cell time;
A storage unit that stores a value of a cell interval for each connection, a value of fluctuation of an allowable cell delay time, and a parameter value as integer values in units of one cell time;
When the cell stored in the queue reaches the head of the queue, the fluctuation value of the allowable cell delay time and the parameter value corresponding to the connection to which the cell belongs are read from the storage unit. , Based on these values and the current time counted by the clock unit, determining the transmittable time of the cell by an integer value in the unit of one cell time, and the cell stored in the queue is transmitted to the line. The cell interval value and the parameter value corresponding to the connection to which the cell belongs are read from the storage unit, and based on these values and the current time counted by the clock unit, the parameter value A cell scheduling unit including a step of determining an update value of the parameter value and writing the update value of the parameter value to the storage unit;
A step of storing a pair of information for specifying a transmittable time determined by the cell scheduling unit and a cell for which the transmittable time is determined, and a step of specifying an earliest transmittable time from the stored transmittable time; If the specified transmittable time is earlier than the current time counted by the clock unit, a step of identifying a cell to be transmitted based on information stored in a pair with the transmittable time; and A cell scheduling method of a cell shaping device comprising a cell transmission unit including a step of transmitting,
The maximum value of the current time that can be counted by the clock unit is a value equal to or greater than the number of the queues, and the correspondence between the current time counted by the clock unit and the queue is uniquely determined in advance,
The timepiece unit includes a step of recording the number of times the clock turns around when the current time counted by the timepiece unit exceeds a maximum value and becomes 0;
When the current time counted by the clock unit is updated, the parameter value of the connection corresponding to the queue corresponding to the time stored in the storage unit is the maximum value of the current time that can be counted by the clock unit. If exceeded, the parameter value is updated to a value obtained by subtracting the value of (the maximum value of the current time that can be counted by the clock unit + 1) from the parameter value, and is less than or equal to the maximum value of the current time that can be counted by the clock unit. In the case of a value, it includes an update step for updating to 0,
When the cell schedule unit reads the parameter value corresponding to the connection to which the cell belongs from the storage unit, the update step is not executed on the parameter value after a clock wraparound has occurred, When the read parameter value exceeds the maximum value of the current time that can be counted by the timepiece unit, the value of (the maximum value of the current time that can be counted by the timepiece unit + 1) is subtracted from the parameter value. If the current value is less than the maximum value of the current time that can be counted, including the step of setting the parameter value to 0,
When the cell schedule unit writes the update value of the parameter value to the storage unit, the update step is not executed for the parameter value of the storage unit to be updated after a clock wraparound occurs In this case, a value obtained by adding a value obtained by adding a value of (maximum current time that can be counted by the clock unit + 1) to the updated value of the parameter is written to the parameter value of the storage unit to be updated.
In the step of storing a pair of the cell transmission time and the information specifying the cell for which the transmission time is determined, the cell transmission unit determines the number of wraparound times of the clock when determining the cell transmission time. Storing together with information that identifies the cell's transmittable time and the cell for which the transmittable time is determined,
When the cell transmitting unit evaluates the value of the stored transmittable time in order to compare the transmittable time in the step of identifying the earliest transmittable time from the stored transmittable time, the transmittable time Comparing the clock wrap count recorded together with the clock lap count stored in the clock section to identify the clock wrap count generated after the determination of the transmittable time;
When the specified number of wraparounds is one and the transmission possible time exceeds the maximum value of the current time that can be counted by the clock unit, the current transmission time (counting by the clock unit can be counted) Converting the transmittable time into a value obtained by subtracting the value of the maximum value of time + 1),
A step of converting the transmittable time to 0 when the specified number of wraparound times is 1 and the transmittable time is equal to or less than the maximum value of the current time that can be counted by the clock unit. A cell scheduling method.
コネクション毎にセルを到着順に先頭から格納するキューと、
到着したセルを当該セルが所属するコネクションに対応した前記キューに格納する入力部と、
回線上において1セルの伝送に要する平均時間を1セル時間とし、当該1セル時間単位の整数値で現在時刻を計数する時計部と、
コネクション毎のセル間隔の値、許容されるセル遅延時間のゆらぎの値、およびパラメータ値を前記1セル時間単位の整数値で記憶する記憶部と、
前記キューに格納されたセルが当該キューの先頭に達した際に、当該セルが所属するコネクションに対応した、前記許容されるセル遅延時間のゆらぎの値、および前記パラメータ値を前記記憶部から読み込み、これらの値と前記時計部が計数する現在時刻に基づいて、当該セルの送信可能時刻を前記1セル時間単位の整数値で決定し、前記パラメータ値を当該セルの優先度とするステップと、前記キューに格納されたセルが回線に送信される際に、当該セルが所属するコネクションに対応した、前記セル間隔の値、および前記パラメータ値を前記記憶部から読み込み、これらの値と前記時計部が計数する現在時刻に基づいて前記パラメータ値の更新値を決定し、前記パラメータ値の更新値を前記記憶部に書き込むステップとを含むセルスケジューリング部と、
前記セルスケジューリング部が決定した送信可能時刻、優先度、および当該送信可能時刻が決定されたセルを特定する情報を対で記憶するステップと、記憶された送信可能時刻、および優先度から、最も早く、かつ最も優先度の高い送信可能時刻を特定するステップと、特定された当該送信可能時刻が前記時計部が計数する現在時刻より以前の場合、当該送信可能時刻、および優先度と対で記憶された情報に基づいて送信するセルを特定するステップと、当該セルを回線に送信するステップとを含むセル送信部とから構成されるセルシェーピング装置のセルスケジューリング方法であって、
前記時計部が計数できる現在時刻の最大値は、前記キューの数以上の値であり、前記時計部が計数する現在時刻と前記キューの対応関係が予め一意に定められ、
前記時計部が、前記時計部が計数する現在時刻が最大値を越えて0となった時計の回り込み回数を記録するステップを含み、
前記時計部が計数する現在時刻が更新された際に、前記記憶部に記憶された当該時刻に対応する前記キューに対応するコネクションのパラメータ値が、前記時計部が計数できる現在時刻の最大値を越える場合は、前記パラメータ値から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算した値に前記パラメータ値を更新し、前記時計部で計数できる現在時刻の最大値以下の値の場合は0に更新する更新ステップを含み、
セルスケジュール部が、前記記憶部からセルが所属するコネクションに対応したパラメータ値を読み込む際に、時計の回り込みが発生した後に前記パラメータ値に対して前記更新ステップが実行されていない状態であって、かつ読み込んだ前記パラメータ値が前記時計部が計数できる現在時刻の最大値を越える場合は、前記パラメータ値から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算し、前記時計部が計数できる現在時刻の最大値以下の場合は、前記パラメータ値を0とするステップを含み、
前記セルスケジュール部が、パラメータ値の更新値を前記記憶部に書き込む際に、時計の回り込みが発生した後に、更新の対象となる前記記憶部のパラメータ値に対して、前記更新ステップが実行されていない状態の場合、前記パラメータの更新値に、(前記時計部が計数できる現在時刻の最大値+1)の値を加算した値を当該更新の対象となる前記記憶部のパラメータ値に書き込むステップを含み、
前記セル送信部が、セルの送信可能時刻、優先度、および当該送信可能時刻が決定されたセルを特定する情報を対で記憶するステップにおいて、セルの送信可能時刻、および優先度を決定した際の時計の回り込み回数を、当該セルの送信可能時刻、優先度、および当該送信可能時刻が決定されたセルを特定する情報と併せて記憶するステップを含み、
前記セル送信部が、記憶された送信可能時刻、および優先度から、最も早く、かつ最も優先度の高い送信可能時刻を特定するステップにおいて、送信可能時刻、および優先度を比較するために、記憶された送信可能時刻、および優先度の値を評価する際に、当該送信可能時刻、および当該優先度と併せて記録された時計の回り込み回数と、前記時計部に記憶された時計の回り込み回数を比較して、当該送信可能時刻、および当該優先度の決定以降に発生した時計の回り込み回数を特定するステップと、
特定された当該回り込み回数が1回であって、かつ当該送信可能時刻、および当該優先度が各々、前記時計部が計数できる現在時刻の最大値を越える値の場合、当該送信可能時刻、および当該優先度から、(前記時計部が計数できる現在時刻の最大値+1)の値を減算した値に、当該送信可能時刻、および当該優先度を各々変換するステップと、
特定された当該回り込み回数が1回であって、かつ当該送信可能時刻、および当該優先度が、各々前記時計部が計数できる現在時刻の最大値以下の場合、当該送信可能時刻、当該優先度を各々0に変換するステップとを含むことを特徴とするセルスケジューリング方法。
A queue that stores cells from the top in the order of arrival for each connection;
An input unit for storing the arrived cell in the queue corresponding to the connection to which the cell belongs;
A clock unit that counts the current time as an integer value in units of one cell time, where the average time required for transmission of one cell on the line is one cell time;
A storage unit that stores a value of a cell interval for each connection, a value of fluctuation of an allowable cell delay time, and a parameter value as integer values in units of one cell time;
When the cell stored in the queue reaches the head of the queue, the fluctuation value of the allowable cell delay time and the parameter value corresponding to the connection to which the cell belongs are read from the storage unit. , Based on these values and the current time counted by the clock unit, determining the transmittable time of the cell as an integer value in the unit of one cell time, and setting the parameter value as the priority of the cell; When the cells stored in the queue are transmitted to the line, the cell interval value and the parameter value corresponding to the connection to which the cell belongs are read from the storage unit, and these values and the clock unit Determining an update value of the parameter value based on a current time counted by the data, and writing the update value of the parameter value to the storage unit. And-ring part,
The step of storing a pair of information specifying the transmittable time and priority determined by the cell scheduling unit and the cell for which the transmittable time is determined, and the earliest from the stored transmittable time and priority And, when the transmission priority time with the highest priority is specified and the specified transmission possible time is earlier than the current time counted by the clock unit, the transmission possible time and the priority are stored in pairs. A cell scheduling method for a cell shaping device comprising: a cell transmission unit including a step of identifying a cell to be transmitted based on the received information; and a step of transmitting the cell to a line,
The maximum value of the current time that can be counted by the clock unit is a value equal to or greater than the number of the queues, and the correspondence between the current time counted by the clock unit and the queue is uniquely determined in advance,
The timepiece unit includes a step of recording the number of times the clock turns around when the current time counted by the timepiece unit exceeds a maximum value and becomes 0;
When the current time counted by the clock unit is updated, the parameter value of the connection corresponding to the queue corresponding to the time stored in the storage unit is the maximum value of the current time that can be counted by the clock unit. If exceeded, the parameter value is updated to a value obtained by subtracting the value of (the maximum value of the current time that can be counted by the clock unit + 1) from the parameter value, and is less than or equal to the maximum value of the current time that can be counted by the clock unit. In the case of a value, it includes an update step for updating to 0,
When the cell schedule unit reads the parameter value corresponding to the connection to which the cell belongs from the storage unit, the update step is not executed on the parameter value after a clock wraparound has occurred, When the read parameter value exceeds the maximum value of the current time that can be counted by the timepiece unit, the value of (the maximum value of the current time that can be counted by the timepiece unit + 1) is subtracted from the parameter value. If the current value is less than the maximum value of the current time that can be counted, including the step of setting the parameter value to 0,
When the cell schedule unit writes the update value of the parameter value to the storage unit, the update step is performed on the parameter value of the storage unit to be updated after a clock wraparound occurs. In the case of no state, the method includes a step of writing a value obtained by adding a value of (maximum value of current time that can be counted by the clock unit + 1) to the parameter value of the storage unit to be updated. ,
When the cell transmitting unit determines the cell transmittable time and priority in the step of storing a pair of information specifying the cell for which the cell transmittable time, priority, and the transmittable time are determined. Storing the number of wraparound times of the clock together with information identifying the cell for which the cell is available for transmission, the priority, and the transmission available time is determined,
In order to compare the transmittable time and priority in the step of identifying the transmittable time having the earliest and highest priority from the stored transmittable time and priority, the cell transmitting unit stores When evaluating the transmitted transmission time and the priority value, the transmission possible time and the clock wrap count recorded together with the priority and the clock wrap count stored in the clock section are In comparison, the step of specifying the transmission possible time and the number of rounds of the clock that has occurred since the priority determination
If the specified number of wraparounds is 1, and the transmission possible time and the priority are values exceeding the maximum value of the current time that can be counted by the clock unit, the transmission possible time, and the Converting each of the transmittable time and the priority to a value obtained by subtracting a value of (the maximum value of the current time that can be counted by the clock unit + 1) from the priority;
If the specified number of wraparounds is 1, and the transmission possible time and the priority are less than or equal to the maximum value of the current time that can be counted by the clock unit, the transmission possible time and the priority are A cell scheduling method comprising: converting each of them to 0.
JP2002178197A 2002-06-19 2002-06-19 Cell scheduling method Expired - Fee Related JP3804940B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002178197A JP3804940B2 (en) 2002-06-19 2002-06-19 Cell scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002178197A JP3804940B2 (en) 2002-06-19 2002-06-19 Cell scheduling method

Publications (2)

Publication Number Publication Date
JP2004023609A JP2004023609A (en) 2004-01-22
JP3804940B2 true JP3804940B2 (en) 2006-08-02

Family

ID=31175998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002178197A Expired - Fee Related JP3804940B2 (en) 2002-06-19 2002-06-19 Cell scheduling method

Country Status (1)

Country Link
JP (1) JP3804940B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4649242B2 (en) * 2005-03-16 2011-03-09 株式会社日立製作所 Terminal adapter device

Also Published As

Publication number Publication date
JP2004023609A (en) 2004-01-22

Similar Documents

Publication Publication Date Title
JP3063726B2 (en) Traffic shaper
JP3359499B2 (en) Outgoing traffic control device
EP0603916B1 (en) Packet switching system using idle/busy status of output buffers
CA2015514C (en) Packet switching system having bus matrix switch
EP0671096B1 (en) Constant bit rate traffic in fast packet networks
JP3630460B2 (en) Data length correction system
US20120051367A1 (en) Atm cell conversion circuit and atm cell conversion method
JPH05219098A (en) Method and device for converting frame
GB2300786A (en) ATM network switch
JPH09162877A (en) Buffer control system
US20050010676A1 (en) Time-based transmission queue for traffic management of asynchronous transfer mode virtual circuits on a multi-threaded, multi-processor system
JP3804940B2 (en) Cell scheduling method
US6442136B1 (en) Traffic shaping device for ATM communication network
US6490640B1 (en) Packet data switching apparatus
JP2964968B2 (en) Shaping processing apparatus and shaping processing method
JP3623907B2 (en) Cell shaping device
US20030048803A1 (en) Transmission convergence sublayer circuit and operating method for asynchronous receiver
JP3742348B2 (en) Cell shaping device
JP2798141B2 (en) Cell error correction method in ATM network
US5684958A (en) System for preventing cell dropout on the transmitting side using timing signal and read completion signal to control the retransmission of previous cell
JP2768384B2 (en) Burst adaptation method in ATM network
EP0604538A4 (en) Method and apparatus for asynchronous transfer mode (atm) network.
US6343076B1 (en) ATM cell spacer
JP3097545B2 (en) Traffic shaper and shaping method
US20030185213A1 (en) Protocol multiplexing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060411

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060502

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060508

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090519

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees