JPH09321797A - キュー処理システム及びキュー処理方法 - Google Patents

キュー処理システム及びキュー処理方法

Info

Publication number
JPH09321797A
JPH09321797A JP3755897A JP3755897A JPH09321797A JP H09321797 A JPH09321797 A JP H09321797A JP 3755897 A JP3755897 A JP 3755897A JP 3755897 A JP3755897 A JP 3755897A JP H09321797 A JPH09321797 A JP H09321797A
Authority
JP
Japan
Prior art keywords
queue
processing
register
packet
pseudo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3755897A
Other languages
English (en)
Inventor
Prasanna G N Srinivasa
プラサンナ ジー.エヌ.スリニヴァサ
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.)
LE-SENTO TECHNOL Inc
Nokia of America Corp
Original Assignee
LE-SENTO TECHNOL Inc
Lucent Technologies Inc
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 LE-SENTO TECHNOL Inc, Lucent Technologies Inc filed Critical LE-SENTO TECHNOL Inc
Publication of JPH09321797A publication Critical patent/JPH09321797A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Abstract

(57)【要約】 【課題】 ネットワークキューサーバにおいてキューを
処理する、簡潔な高速リアルタイム装置及びその方法を
提供する 【解決手段】 本発明に従って、キューサーバは、キュ
ーを利用可能なメモリ空間に配置する。真ヘッドポイン
タはキューの先頭を指し示しており、このポインタは真
ヘッドレジスタにストアされる。キューサーバがキュー
の処理を開始し、擬ポインタがキュー内において小パケ
ットをサーチし、それを見つけると、擬ポインタはキュ
ー内における移動を停止する。キューに係る各々の処理
サイクルに関して処理カウンタがインクリメントされ
る。カウンタがしきい値に達した際に長パケットの処理
が完了していない場合には、その長パケットの位置がシ
ステム内のレジスタに蓄積される。その後、短パケット
の処理が完了され、その後に前記長パケットの処理が停
止した位置から再開される。この長パケットの処理が完
了すると、キュー内の次のパケットが処理される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信、ネットワー
キング及びマイクロプロセッサに関する。
【0002】
【従来の技術】今日では、データ通信は、通信を行なう
2デバイス間でのビット(複数個の0及び1)の転送に
よって実現されている。これらのビットは、通常、パケ
ットと呼称されるユニットに分割されており、通信ネッ
トワークを介してルーティングされる。これらのパケッ
トはスイッチングデバイス(キューサーバ)によってネ
ットワークを介してルーティングされる。キューサーバ
は、パケットを処理してそれらを異なった通信経路を介
してそれぞれの最終的なデスティネーション宛に送出す
る。
【0003】
【発明が解決しようとする課題】パケットは、しばし
ば、銀行の出納係窓口に列ができるのと同様に、キュー
サーバによってサービスされるのを待機してキューサー
バに並ぶ。この並びはキューと呼称される。すなわち、
パケットは列に並んでいる人々に対応し、出納係はスイ
ッチングデバイスすなわちキューサーバに対応する。し
かしながら、全てのパケットは同じサイズとは限らな
い。キューサーバによって迅速に処理されうるより短い
パケットが、長いパケットが処理されている間、キュー
に待機しているということがしばしば起こる。その結
果、末端において通信を行なっている参加者は、彼ら自
身とは何ら関係の無い大きなパケットが処理されるま
で、待機させられることになる。究極においては、その
スイッチングデバイス(すなわちキューサーバ)を介し
て通信を行なっている多くの異なった参加者が長時間待
機させられる一方、キューサーバは前記それぞれの参加
者に係る通信とは何ら関係の無い大きなパケットを処理
している、ということになる。
【0004】よって、大きなパケットが完全に処理され
るのを待機することなく、キュー内において大きなパケ
ットの後方に位置するより小さい長さのパケットを処理
することが望ましい。このキューに関する問題を解決す
る簡潔なアーキテクチャを設計するために種々の試みが
なされてきている。パケットからなるキューの全体を調
べることによってパケット処理の均衡を増大させるソフ
トウエアスケジューリング技法が導出されてきている。
しかしながら、非同期転送モード(ATM)交換機ある
いは高速キューサーバによって必要とされるような、高
速かつメモリ効率の良いハードウエアインプリメンテー
ションを導き出すことは困難である。少なくとも一つの
高速インプリメンテーションは、ATM交換機において
試みられている。しかしながら、この方法は、異なった
パケットを識別するポインタの複雑な操作を必要とす
る。その結果、これらの方法は交換機のメモリに対して
複数の読み出し及び書き込みコマンドを必要とし、その
ためにこれらの方法を実現する際の速度が遅くなる。よ
って、キューに関する遅延を低減する、リアルタイムで
実行され得る簡潔なハードウエア技法を開発することが
望ましい。
【0005】
【課題を解決するための手段】本発明に従って、キュー
サーバにおいてリアルタイムでキューに関する遅延を低
減する簡潔な方法及びその装置が提供される。本明細書
に記載されている方法は、キューの高速リアルタイム処
理を可能にする。例えば、本発明は、システムサイクル
当たりに単一のメモり読み出し/書き込みコマンドのみ
しか必要とせず、100MHzあるいはそれ以上のキュ
ー処理速度を実現する。本発明においては、パケットよ
りなるキューは、キューサーバ(例えばネットワーク交
換機)に存在する。キューサーバは、処理目的でキュー
を利用可能なメモリ空間に配置する。真ヘッドポインタ
(キュー内の先頭のパケットを指し示すポインタ)はキ
ューの先頭を指し示しており、このポインタは真ヘッド
レジスタ(キューの開始位置を記録するレジスタ)にス
トアされる。キューサーバがキューの処理を開始する一
方で、擬ポインタ(キュー内で移動してキュー内の短い
パケットを指し示し、擬ヘッドレジスタにストアされる
ポインタ)がキュー内において短いパケットをサーチす
る。短いパケットが見つかると、擬ポインタはキュー内
における移動を停止する。キューに係る各々の処理サイ
クルに関して処理カウンタが(処理時間分、例えばAT
Mキューサーバの1クロックサイクル分)インクリメン
トされる。カウンタがスレッショルド値に達した際に長
いパケットの処理が完了していない場合には、その長い
パケットの位置がシステム内のレジスタあるいはあるメ
モリ位置にストアされる。その後、短いパケットの処理
がまず完了され、その後に前記長いパケットの処理が停
止した位置から再開される。この長いパケットの処理が
完了すると、キュー内の次のパケットが処理される。
【0006】
【発明の実施の形態】本発明に従って、可変長データパ
ケットを処理する方法及びその装置が提供される。異な
った長さを有するデータパケットは、処理目的でキュー
サーバに供給される。キューサーバがパケットを処理す
る際、異なったパケットからなるキューが形成される。
説明を簡潔にする目的で、長いパケット(64ビット以
上のデータ)と短いパケット(64ビット未満)とから
なるキューが本発明を記述するために用いられる。しか
しながら、本明細書に記載されている方法並びにその装
置は、上記長いパケット及び短いパケット以外の複数個
の異なった範疇に属するパケットを有するキューに対し
ても適応可能であることに留意されたい。短いジョブが
タイプAのパケットとして示されており、長いジョブが
タイプBのパケットとして示されている。
【0007】パケットは、それらを処理するキューサー
バに到達する。複数個のパケットがキューサーバに到達
すると、それらのパケットはキューを形成する。キュー
サーバは、通常、複数個のパケットをキューサーバ内の
パケットストレージ及び処理に対して割り当てられたメ
モリロケーションに取り込む機能を有している。キュー
サーバは、パケットを異なったメモリロケーション間で
移動させることによってパケットよりなるキューを処理
し、キューサーバ内での処理の後に最終的に次の旅程に
送出する。
【0008】図1は、本発明に係るパケットキュー処理
方法をモデル化して示した模式図である。図1におい
て、パケット10からなるキューは、20、30、50
で示されたタイプBのパケットと40で示されたタイプ
Aのパケットとの双方からなる。キュー10は、キュー
サーバのメモリ内に配置されている。キュー内のパケッ
トは、メモリ内の対応する位置によって識別される。タ
イプBの第一パケット20の先頭は、真ヘッドポインタ
60によって指示されている。真ヘッドポインタ60が
指し示しているメモリアドレスは、真ヘッドレジスタ7
0にストアされている。処理の最初のクロックサイクル
の後、擬ヘッドポインタ80は、100によって示され
ているように、各クロックサイクルにおいてパケットキ
ュー内を、タイプAパケット(すなわちパケット40)
を見い出すまで移動する。いずれのクロックサイクルに
おいても、擬ヘッドポインタ80が指し示しているメモ
リアドレスは、擬ヘッドレジスタ90にストアされてい
る。いずれのクロックサイクルにおいても、擬ヘッドポ
インタの直前の値は、直前擬ヘッドレジスタ110にス
トアされている。
【0009】処理カウンタ120は、キューサーバがパ
ケットを処理する際にキューサーバの処理サイクルをカ
ウントする。加算器140は、キュー10に係る処理の
一サイクルをキューサーバが終える度毎に、処理カウン
タ120を130によって示されている値(例えば、
1、2、3、...)だけ増大させる。スレッショルド
値がフェアカウンタ150に維持されている。処理カウ
ンタ120内の値は、フェアカウンタ150の値と比較
器160において比較される。処理カウンタ120内の
値がフェアカウンタ150内の値と等しい場合には、キ
ューサーバにおけるキューの処理を制御する目的で、キ
ュー制御170に対して信号が印加される。
【0010】本発明に係る方法及び装置の実施例におい
ては、時刻t=0において、真ヘッドポインタ60及び
擬ヘッドポインタ80は、共に第一タイプBパケット2
0の先頭に位置している。その後、キューサーバはキュ
ー10の処理を開始する。処理の第一サイクルにおい
て、キューサーバは第一タイプBパケット20の処理を
開始し、擬ヘッドポインタは第二タイプBパケット30
の先頭へ移動し、処理カウンタ120は1だけインクリ
メントされ、スレッショルド値(例えば10ユニット)
を有するフェアカウンタ150と比較される。第二の時
間期間においては、キューサーバは依然として第一タイ
プBパケットを処理しているが、擬ヘッドポインタはタ
イプAパケット40の先頭に移動しており、処理カウン
タ120は1だけインクリメントされてフェアカウンタ
150と比較される。第三の時間期間においては、キュ
ーサーバは依然として第一タイプBパケットを処理して
おり、擬ヘッドポインタ80は依然としてタイプAパケ
ット40の先頭に位置しており、処理カウンタ120は
1だけインクリメントされてフェアカウンタ150と比
較される。しかしながら、ここで、本発明に係る方法及
び装置の動作を例示する目的で、処理カウンタ120の
値がフェアカウンタ150の値と等しい、すなわち、キ
ューサーバが単一パケット処理に係る最小スレッショル
ドセットに到達した、と仮定する。信号がキュー制御1
70に対して送出される。キュー制御170は、第一タ
イプBパケット20の処理を停止し、第一タイプAパケ
ット40の処理を開始する。タイプBパケット20内
の、処理が停止された時点でのメモリ位置は、レジスタ
内あるいはメモリにストアされる。擬ヘッドポインタ値
は常に擬ヘッドレジスタ内にストアされており、直前擬
ヘッドポインタ値が常に直前擬ヘッドレジスタにストア
されていることが望ましい。処理は、第一タイプAパケ
ット40全体が処理されるまで、当該パケットに対して
継続される。第一タイプAパケット40が完全に処理さ
れると、キューサーバは、第一タイプBパケット20内
の、処理が停止された時点でのメモリ位置をレジスタあ
るいはメモリにおいて参照する。その後、キューサーバ
は、第一タイプBパケット20の処理を、処理が停止さ
れた位置から継続する。第一タイプBパケットの処理が
完了すると、真ヘッドポインタが、キュー内の次のパケ
ットを指し示すように更新される。擬ヘッドポインタ8
0は、キュー内を移動して別のタイプAパケットの位置
を確認し、擬ヘッドレジスタ90(及び直前擬ヘッドレ
ジスタ110)が連続的に更新される。直前擬ヘッドレ
ジスタ110は、擬ヘッドレジスタから常に1サイクル
分遅れている。上記処理は、キュー全体が処理されるま
で継続される。擬ヘッドレジスタは、キューの末端に達
するとそこで停止する。
【0011】本発明の別の実施例においては、タイプA
パケットが、擬ヘッドポインタ80によって見い出され
るとすぐに処理される、という段階が含まれる。また、
別の実施例においては、短いパケットが見い出される
と、処理の差し替えを行なうという決定の前に、そのパ
ケットがどの位長く待機しているのかが決定される。
【0012】本発明の第三の実施例においては、タイプ
Aパケット40の処理に対してスレッショルド(閾値)
を適用する段階が含まれる。この場合には、タイプAパ
ケットの処理が、フェアカウンタ150によって保持さ
れているスレッショルド値に処理カウンタ120が達し
た際に依然として完了していない場合には、フェアカウ
ンタ150内に保持されているスレッショルド値に達す
るまで、第一タイプBパケットの処理が再開される。フ
ェアカウンタ150内のスレッショルド値に達すると、
第一タイプBパケットの処理が未だ完了していない場合
には、キューサーバは、タイプAパケットの処理を、処
理が中断されたところから再開する。この処理は、タイ
プAあるいはタイプBパケットのいずれかの処理が完了
するまで、行き来を繰り返す。ここで、同一のカウンタ
がタイプA及びタイプBパケットに対して用いられる必
要が無いことに留意されたい。さらに、各々のタイプの
パケットは異なったスレッショルド値を有し得る。
【0013】本発明に係るキューサーバ動作方法のコン
ピュータ言語によるインプリメンテーション例が付録I
に示されている。付録Iに示されているコードはシーケ
ンシャルに記述されているが、キューの実際の処理は異
なったハードウエアコンポーネントにおいて並列に発生
する。レジスタ更新、カウンタのインクリメント、比較
器の動作、及びキュー制御の動作等のある種の並列処理
が含まれるがそれらに限定されている訳ではない。本発
明に係る方法をインプリメントするためのソフトウエア
コードは、C言語あるいは他の高位言語においてインプ
リメントされ得る。付録Iに示されている擬コードにお
いては、パケットは、連結されたリストとして表現され
ている。リスプライス(処理されたパケットを削除して
直前のパケットをキュー内の次のパケットに再リンクす
る)ために直前擬コードレジスタ110が必要とするパ
ケットを表現する目的で前方連結リストが用いられる場
合には、タイプAパケットの後方のリストは処理された
ものである。しかしながら、本発明に係る方法が後方及
び前方連結リストの双方を用いてインプリメントされる
場合には、直前擬コードレジスタ110は必要とはされ
ない。なぜなら、後方連結リストはキューがリスプライ
スされることを可能にするからである。
【0014】図2は、付録Iに詳細に記述されたコンピ
ュータコードを示す流れ図である。この流れ図は、本発
明に係る方法全体を記述しており、流れ図が1クロック
サイクルで実行され、パケットの処理を完了するために
はこの流れ図に従った処理が複数回行なわれる必要があ
ることに留意されたい。処理の開始時点では(ステップ
200)、真ヘッドポインタ及び擬ヘッドポインタの双
方ともキューの先頭に位置している。ステップ210に
おいては、キューの先頭に位置するパケットの処理が実
行される。
【0015】コンピュータコードにおける最初のステッ
プは、入力を受け入れることである(ステップ22
0)。入力を受け入れることは、物理的には、パケット
がキューの末端にアペンドされることに対応する。ステ
ップ230においては、先頭に位置するパケットの処理
が完了している場合には、フェアカウンタがゼロにリセ
ットされ、キューの先頭側に位置する次のパケットの処
理が開始される(真ヘッドポインタ及びレジスタが更新
される)。ステップ240においては、フェアカウンタ
が規定された最大フェアカウント未満である場合とし
て、通常の処理サイクルが規定される。物理的には、こ
のステップは大きなパケットの処理に翻訳される。なぜ
なら、処理スレッショルド値に未達の場合には、現在の
大きなパケットに関する処理が継続され得るからであ
る。ステップ250においては、バイパスサイクルが、
擬ヘッドポインタが短いパケットに達した場合として規
定される。ステップ260に示されているように、キュ
ーサーバが通常のサイクルにおいて処理を行なってい
る、すなわちバイパスサイクルにない場合、加えてステ
ップ270に示されているように、キューサーバがバイ
パスサイクルにない場合には、擬ヘッドポインタは次の
パケットへ移動し、直前擬ヘッドポインタも同様に更新
される。さらに、プログラムは、ステップ280に示さ
れているように、キューサーバがキューの最後尾に達し
ていないことを確認するためにチェックを行なう。キュ
ーサーバがキューの最後尾に達していない場合には、真
ヘッドポインタの指し示す位置にあるパケットが処理さ
れる(ステップ290)。ステップ290に示されてい
るジョブサービスのステップは、ジョブが完了した場合
に”真”を戻し、ジョブが完了していない場合に”偽”
を戻す。最後に、ステップ300において、フェアカウ
ンタが1だけインクリメントされ、パケットに対して1
処理サイクルがなされたことが示される。
【0016】310に示されているように、最大時間以
上が経過した場合には、別の方法が用いられる。最大時
間とは、特定のネットワークあるいはアプリケーション
に対して設定された時間である。例えば、最大時間が短
い場合には、大きなパケットに関する処理はしばしば差
し替えられ、短いパケットに関する高速な処理が実現さ
れる。他方、最大時間が長い場合には、長いパケットが
より効率的に処理され、より短いパケットはよりゆっく
りと処理される。物理的には、時間が最大時間以上であ
る場合には、長いパケットに関する処理が差し替えら
れ、擬ヘッドレジスタによって指し示されている短いパ
ケットに関する処理が開始される。このことは、ステッ
プ320に示されている。短いパケットに関する処理が
完了すると、そのパケットはキューから削除され、フェ
アカウンタがゼロにセットされる(ステップ330)。
短いパケットに関する処理が完了した後、処理は、長い
パケットに関して中断されたところから再開される。
【0017】ここで、キューを取り扱うために、通常の
サイクルにおいては1回のメモリ操作が、バイパスサイ
クルにおいては2回のメモリ操作が必要とされることに
留意されたい。通常のサイクルにおいては、擬ヘッドポ
インタを更新するために、キューを1回読み出すことが
必要とされる。バイパスサイクルにおいては、読み出
し、修正、書き込み操作が、ポインタを更新してキュー
をリスプライスするために必要とされる。結果として、
本発明に係る方法は、高速なリアルタイム性能を実現す
る。
【0018】上述された実施例においては経過時間が差
し替えを行なうためのメカニズムとして用いられている
が、差し替えをいつ行なうかに関する決定は、ハードウ
エアによるインプリメンテーションに適した種々の基準
に基づいて行われ得ることに留意されたい。例えば、キ
ュー内で短いパケットの位置が見い出されるとすぐに長
いパケットの処理が差し替えられる、というようなアー
キテクチャをインプリメントすることは可能である。加
えて、本発明に係る方法は、処理の差し替えが起こる前
に複数個の短いパケットを見つけることを目的として複
数個の擬ヘッドポインタが用いられるようにインプリメ
ントすることも可能である。
【0019】以上の説明は、本発明の一実施例に関する
もので,この技術分野の当業者であれば、本発明の種々
の変形例が考え得るが、それらはいずれも本発明の技術
的範囲に包含される。
【0020】
【発明の効果】以上述べたごとく、本発明によれば、キ
ューサーバにおいてリアルタイムでキューに関する遅延
を低減する簡潔な方法及びその装置が提供される。尚、
本発明のプログラム例を図3に示す。
【図面の簡単な説明】
【図1】 本発明の概念的なモデルを示す図。
【図2】 図3に詳細が記述されたコンピュータコード
の流れ図。
【図3】 本発明のプログラム例を示す図。
【符号の説明】
10 キュー 20、30、50 長いパケット 40 短いパケット 60 真ヘッドポインタ 70 真ヘッドレジスタ 80 擬ヘッドポインタ 90 擬ヘッドレジスタ 110 直前擬ヘッドレジスタ 120 処理カウンタ 130 増分値 140 加算器 150 フェアカウンタ 160 比較器 170 キュー制御
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A.

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 キュー処理システムにおいて、当該装置
    が、キューを処理する少なくとも一つのキューサーバを
    有しており、 前記キューサーバが、 前記キューサーバによって現時点で処理されつつある前
    記キューのアドレスを保持する真ヘッドレジスタと、 前記キューの処理に用いられる時間を管理する処理カウ
    ンタレジスタと、 前記処理カウンタレジスタ内
    の前記時間と比較される値を保持しているフェアカウン
    タレジスタと、 前記キュー内の別の位置のアドレスを保持している擬ヘ
    ッドレジスタとを有することを特徴とするキュー処理シ
    ステム。
  2. 【請求項2】 前記キューサーバが、さらに、前記処理
    カウンタレジスタをインクリメントする加算器を有して
    いることを特徴とする請求項第1項に記載のキュー処理
    システム。
  3. 【請求項3】 前記キューサーバが、さらに、前記キュ
    ーの処理を制御するキュー制御器を有していることを特
    徴とする請求項第1項に記載のキュー処理システム。
  4. 【請求項4】 前記キューサーバが、さらに、前記キュ
    ー内の前記別の位置の直前の値を保持する直前擬ヘッド
    レジスタを有していることを特徴とする請求項第1項に
    記載のキュー処理システム。
  5. 【請求項5】 前記キューサーバが、さらに、前記処理
    カウンタと前記フェアカウンタとを比較する比較器を有
    していることを特徴とする請求項第1項に記載のキュー
    処理システム。
  6. 【請求項6】 前記キューサーバが、さらに、前記真ヘ
    ッドレジスタにストアされる真ヘッドポインタを有して
    いることを特徴とする請求項第1項に記載のキュー処理
    システム。
  7. 【請求項7】 前記キューサーバが、さらに、前木々ヘ
    ッドレジスタにストアされる擬ヘッドポインタを有して
    いることを特徴とする請求項第1項に記載のキュー処理
    システム。
  8. 【請求項8】 複数個の第一パケット及び少なくとも一
    つの第二パケットとからなるキューを処理する方法にお
    いて、 処理中のパケットが第一パケットであり、 (a)前記第一パケットを処理する段階と、 (b)前記第一パケットの処理を差し替える段階と、 (c)キュー内の前記第二パケットを処理する段階と、 (d)前記第一パケットの処理を再開する段階と、 (e)前記段階(a)から段階(d)を継続する段階
    と、有することを特徴とするキュー処理方法。
  9. 【請求項9】 前記段階(b)が、前記第二パケットが
    前記キュー内に見い出されたために実行されることを特
    徴とする請求項第8項に記載のキュー処理方法。
  10. 【請求項10】 前記段階(b)が、前記第一パケット
    の処理に係るスレッショルド値に到達したために実行さ
    れることを特徴とする請求項第8項に記載のキュー処理
    方法。
  11. 【請求項11】 前記段階(a)が、真ヘッドポインタ
    を前記第一パケットのメモリ位置にセットして前記ポイ
    ンタを真ヘッドレジスタにストアすることによって開始
    されることを特徴とする請求項第8項に記載のキュー処
    理方法。
  12. 【請求項12】 前記段階(b)が、擬ヘッドポインタ
    を前記キュー内で移動させて前記擬ヘッドポインタの現
    時点での位置を前記擬ヘッドポインタレジスタにストア
    することによって実行されることを特徴とする請求項第
    8項に記載のキュー処理方法。
  13. 【請求項13】 前記段階(c)が、擬ヘッドポインタ
    を前記キュー内で移動させて前記擬ヘッドポインタの現
    時点での位置を前記擬ヘッドポインタレジスタにストア
    することによって実行されることを特徴とする請求項第
    8項に記載のキュー処理方法。
  14. 【請求項14】 前記段階(c)が、前記擬ヘッドレジ
    スタにストアされたポインタを処理すべき次のジョブと
    して用いることによって実行されることを特徴とする請
    求項第8項に記載のキュー処理方法。
  15. 【請求項15】 前記段階(d)が、そのアドレスが前
    記真ヘッドポインタにストアされている前記第一パケッ
    トを処理することによって実行されることを特徴とする
    請求項第8項に記載のキュー処理方法。
  16. 【請求項16】 前記段階(c)が、前記短いパケット
    の処理が完了するまで継続して実行されることを特徴と
    する請求項第8項に記載のキュー処理方法。
  17. 【請求項17】 前記段階(e)が、前記複数個の第一
    パケット及び前記少なくとも一つの第二パケットの全て
    が処理されるまで継続して実行されることを特徴とする
    請求項第8項に記載のキュー処理方法。
  18. 【請求項18】 真ヘッドポインタ、擬ヘッドポイン
    タ、真ヘッドレジスタ、擬ヘッドレジスタ、直前擬ヘッ
    ドレジスタ、処理カウンタ及びフェアカウンタを有する
    キューサーバによって、複数個の第一パケット及び少な
    くとも一つの第二パケットとからなるキューを処理する
    方法において、 (a)前記キューの開始部を示す値を前記真ヘッドレジ
    スタにストアする段階と、 (b)前記真ヘッドポインタ及び前記擬ヘッドポインタ
    を前記値にセットする段階と、 (c)第一サイクル時間において、前記複数個の第一パ
    ケットのうちの一つを処理し、前記擬ヘッドポインタを
    前記複数個の第一パケットのうちの第二のものに移動
    し、前記擬ヘッドポインタの値を前記擬ヘッドレジスタ
    にストアして古い値を生成し、前記古い値を前記直前擬
    ヘッドレジスタにストアし、前記処理時間レジスタをイ
    ンクリメントし、及び、前記処理時間レジスタを前記フ
    ェアカウントレジスタと比較する段階と、 (d)第二サイクル時間において、前記複数個の第一パ
    ケットのうちの前記一つを処理し、前記擬ポインタを前
    記少なくとも一つの第二パケットに移動し、前記擬ヘッ
    ドポインタの値を前記少なくとも一つの第二パケットの
    アドレスによって更新し、前記処理時間レジスタをイン
    クリメントし、前記擬ヘッドポインタを前記擬ヘッドレ
    ジスタにストアし、及び、前記処理時間レジスタを前記
    フェアレジスタと比較する段階と、 (e)第三サイクル時間において、前記複数個の第一パ
    ケットのうちの前記一つの処理を差し替え、前記複数個
    の第一パケットのうちの前記一つの処理が停止したメモ
    リ位置をストアし、前記少なくとも一つの第二パケット
    を処理する段階と、 (f)第四サイクル時間において、前記少なくとも一つ
    の第二パケットの処理を完了し、前記複数個の第一パケ
    ットのうちの前記一つの処理を再開し、その後に前記真
    ヘッドレジスタを更新する段階と、 (g)前記キュー内の全てのパケットが処理されるまで
    前記段階(c)から前記段階(f)を反復する段階と、
    を有することを特徴とするキュー処理方法。
JP3755897A 1996-02-27 1997-02-21 キュー処理システム及びキュー処理方法 Pending JPH09321797A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US607730 1996-02-27
US08/607,730 US6201807B1 (en) 1996-02-27 1996-02-27 Real-time hardware method and apparatus for reducing queue processing

Publications (1)

Publication Number Publication Date
JPH09321797A true JPH09321797A (ja) 1997-12-12

Family

ID=24433486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3755897A Pending JPH09321797A (ja) 1996-02-27 1997-02-21 キュー処理システム及びキュー処理方法

Country Status (3)

Country Link
US (1) US6201807B1 (ja)
EP (1) EP0793397A3 (ja)
JP (1) JPH09321797A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012244399A (ja) * 2011-05-19 2012-12-10 Fujitsu Telecom Networks Ltd 通信装置

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983350B1 (en) * 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) * 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6560667B1 (en) * 1999-12-28 2003-05-06 Intel Corporation Handling contiguous memory references in a multi-queue system
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US7006515B1 (en) * 2000-04-07 2006-02-28 Omneon Video Networks Isochronous queue and buffer management
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US6772202B2 (en) 2001-11-28 2004-08-03 Gamespy Industries, Inc. Queuing system, method and computer program product for network data transfer
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US6934951B2 (en) * 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7471688B2 (en) * 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7433307B2 (en) * 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US7433364B2 (en) * 2003-12-24 2008-10-07 Intel Corporation Method for optimizing queuing performance
US20050198361A1 (en) * 2003-12-29 2005-09-08 Chandra Prashant R. Method and apparatus for meeting a given content throughput using at least one memory channel
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
GB2458952B (en) * 2008-04-04 2012-06-13 Micron Technology Inc Queue processing method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872159A (en) * 1988-03-31 1989-10-03 American Telephone And Telegraph Company At&T Bell Laboratories Packet network architecture for providing rapid response time
US4914650A (en) * 1988-12-06 1990-04-03 American Telephone And Telegraph Company Bandwidth allocation and congestion control scheme for an integrated voice and data network
JP2736092B2 (ja) * 1989-01-10 1998-04-02 株式会社東芝 バッファ装置
US5150358A (en) * 1990-08-23 1992-09-22 At&T Bell Laboratories Serving constant bit rate traffic in a broadband data switch
US5224099A (en) * 1991-05-17 1993-06-29 Stratacom, Inc. Circuitry and method for fair queuing and servicing cell traffic using hopcounts and traffic classes
US5233606A (en) * 1991-08-02 1993-08-03 At&T Bell Laboratories Arrangement for controlling shared-buffer-memory overflow in a multi-priority environment
US5313579A (en) * 1992-06-04 1994-05-17 Bell Communications Research, Inc. B-ISDN sequencer chip device
US5319753A (en) * 1992-09-29 1994-06-07 Zilog, Inc. Queued interrupt mechanism with supplementary command/status/message information
DE69305734T2 (de) * 1993-06-30 1997-05-15 Ibm Programmierbare hochleistungsfähige Datenkommunikationsanpassung für Hochgeschwindigkeits-Paketübertragungsnetzwerke
US5768273A (en) * 1995-04-05 1998-06-16 International Business Machines Corporation Method and apparatus for priority level queueing in processing ATM cell header and payload
US5535201A (en) * 1995-05-10 1996-07-09 Mitsubishi Electric Research Laboratories, Inc. Traffic shaping system using two dimensional timing chains
JP2770786B2 (ja) * 1995-06-05 1998-07-02 日本電気株式会社 構造化データの多重atm/stm変換装置
JPH0936912A (ja) * 1995-07-14 1997-02-07 Fujitsu Ltd バッファ制御方式
US6141346A (en) * 1995-07-19 2000-10-31 Fujitsu Network Communications, Inc. Point-to-multipoint transmission using subqueues

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012244399A (ja) * 2011-05-19 2012-12-10 Fujitsu Telecom Networks Ltd 通信装置
US8953473B2 (en) 2011-05-19 2015-02-10 Fujitsu Telecom Networks Limited Communication device

Also Published As

Publication number Publication date
US6201807B1 (en) 2001-03-13
EP0793397A3 (en) 2000-07-19
EP0793397A2 (en) 1997-09-03

Similar Documents

Publication Publication Date Title
JPH09321797A (ja) キュー処理システム及びキュー処理方法
EP1010104B1 (en) Hardware-assisted central processing unit access to a forwarding database
EP0992056B1 (en) Search engine architecture for a high performance multi-layer switch element
US7333502B2 (en) Services processor having a queue operations unit and an output scheduler
US7808999B2 (en) Method and apparatus for out-of-order processing of packets using linked lists
US7333484B2 (en) Services processor having a packet editing unit
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
JPH1091357A (ja) データ格納装置及びデータ格納方法
JP2003228515A (ja) チャンク・ベースの構造を使用してリンク・リスト待ち行列を形成するための方法および装置
KR102165864B1 (ko) 엣지 컴퓨팅 환경에서 소프트웨어 정의 네트워킹을 위한 패킷 스케줄링 방법 및 장치
US7433364B2 (en) Method for optimizing queuing performance
JP2003248622A (ja) 帯域幅を増加させるためのメモリシステム
CN110519180B (zh) 网卡虚拟化队列调度方法及系统
US20030202516A1 (en) Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device
US20040088439A1 (en) Pipelined network processing with FIFO queues
US7551636B2 (en) System and method for buffering variable-length data
JP2002033749A (ja) バッファ装置およびスイッチング装置
CN112230865B (zh) 一种数据缓冲方法及其系统
JP2001045049A (ja) 競合制御装置
JP4638851B2 (ja) パケット処理装置
JP2534797B2 (ja) キュ―イング制御方式
JP3529963B2 (ja) パケットバッファ装置
CN101470585A (zh) 提高对小型计算机接口存储设备的存取效率的方法
JPH06332721A (ja) レジスタの使用方法
JPH06110699A (ja) 業務実行順序制御方法