JP2003228515A - チャンク・ベースの構造を使用してリンク・リスト待ち行列を形成するための方法および装置 - Google Patents
チャンク・ベースの構造を使用してリンク・リスト待ち行列を形成するための方法および装置Info
- Publication number
- JP2003228515A JP2003228515A JP2002366200A JP2002366200A JP2003228515A JP 2003228515 A JP2003228515 A JP 2003228515A JP 2002366200 A JP2002366200 A JP 2002366200A JP 2002366200 A JP2002366200 A JP 2002366200A JP 2003228515 A JP2003228515 A JP 2003228515A
- Authority
- JP
- Japan
- Prior art keywords
- chunk
- queue
- block
- queue structure
- list
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/064—Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System (AREA)
- Communication Control (AREA)
- Logic Circuits (AREA)
Abstract
リスト待ち行列を形成する。 【解決手段】 処理システムが、処理回路と、この処理
回路に結合されたメモリ回路とを含む。メモリ回路は、
データ単位のリストを表す少なくとも1つの待ち行列構
造を維持するように構成可能である。待ち行列構造は、
待ち行列構造のブロックの少なくともいくつかが、2つ
以上のデータ単位を含む2つ以上のブロック(例えば、
チャンク)に分割される。待ち行列構造のブロックの少
なくともいくつかが、待ち行列構造の次のブロックに対
するポインタ(例えば、ネクスト・チャンク・ポイン
タ)を含むことが可能である。そのような待ち行列構造
のため、処理回路は、待ち行列構造の第1のブロックを
アドレス指定し、次に、次のブロックを指すように第1
のブロックのネクスト・ブロック・ポインタを設定する
ことにより、待ち行列構造の次のブロックをアドレス指
定するように構成可能である。
Description
理システムに関し、より詳細には、チャンク・ベースの
構造を使用してリンク・リスト待ち行列を形成するため
の技術に関する。
ルータまたはその他のタイプのパケット・スイッチで
は、ルータを通過し、かつ/またはルータによって処理
されるパケットが、少なくとも一時的に、パケット・バ
ッファ・メモリの中で維持される。通常、リンク・リス
ト待ち行列として知られるメモリ・データ構造が、パケ
ット・バッファ・メモリに関連して維持される。リンク
・リスト待ち行列は、各パケットに関連するデータが記
憶されたパケット・バッファ・メモリの中の各メモリ位
置をそれぞれが指すポインタのリストを含む。
する順次リストの形で、パケット・バッファ・メモリの
中で現在、記憶されている各パケットに関連する各ポイ
ンタを記憶する。ただし、リストの中の各ポインタは、
待ち行列が常駐するメモリの不連続なメモリ位置で記憶
することも可能である。パケット・バッファ・メモリか
らのパケットが、ルータによって行われる何らかの動作
の際に処理されるとき、そのパケットに関連するポイン
タが獲得されるようにリンク・リスト待ち行列にアクセ
スが行われ、アドレス指定が行われなければならない。
したがって、従来のリンク・リスト構造では、ポインタ
が獲得される必要があり、パケットが処理されることに
なるたびに毎回、待ち行列へのアクセスが行われなけれ
ばならない。
スイッチに関連する処理速度が増加する(例えば、毎秒
10ギガビット以上)につれて、リンク・リスト待ち行
列を維持するのに使用されるメモリに関連する入力およ
び出力の帯域幅、ならびにアクセス待ち時間が、クリテ
ィカルになっている。つまり、パケット・ポインタが必
要とされるたびに毎回、従来の待ち行列へのアクセスが
行われなければならないことから、待ち行列メモリは、
重大なボトルネックとなる可能性がある。
単一の不連続なリンク・リスト待ち行列の使用に関連す
る以上の欠点、およびその他の欠点に対処する技術が必
要とされていることは明白である。
リ・チャンク・ベースの構造、またはブロック・ベース
の構造を使用して、これにより、データ処理システムに
おける従来のリンク・リスト待ち行列の使用に関連する
欠点に対処するリンク・リスト待ち行列を形成するため
の技術を提供する。
理システムが、処理回路と、この処理回路に結合された
メモリ回路とを含む。メモリ回路は、データ単位(例え
ば、パケット・メモリの中に記憶されたパケットに対す
るポインタ)のリストを表す少なくとも1つの待ち行列
構造を維持するように構成可能である。この待ち行列構
造は、待ち行列構造のブロックの少なくともいくつか
が、2つ以上のデータ単位を含む2つ以上のブロック
(例えば、チャンク)に分割される。さらに、待ち行列
構造のブロックの少なくともいくつかが、待ち行列構造
の次のブロックに対するポインタ(例えば、ネクスト・
チャンク・ポインタ)を含むことが可能である。
は、待ち行列構造の第1のブロックをアドレス指定し、
つまり第1のブロックにアクセスし、次に、次のブロッ
クを指すように第1のブロックのネクスト・ブロック・
ポインタを設定することにより、待ち行列構造の次のブ
ロックをアドレス指定するように構成可能である。
位は、メモリの中で連続して位置しているため(各ブロ
ックは、必ずしも連続して位置している必要はない
が)、処理回路は、ブロックの中の各データ単位を効率
的にアドレス指定するのに、そのブロックをアドレス指
定するだけでよい。したがって、データ単位がパケット
・ポインタであるケースでは、従来の待ち行列構造のよ
うに、ポインタが獲得される必要があり、パケットが処
理されることになるたびに毎回、待ち行列構造にアクセ
スが行われる必要はない。それどころか、本発明の待ち
行列構造には、次のブロックの中のポインタが必要とさ
れるときにアクセスが行われるだけでよい。これは、次
のブロックを指すように現在のブロックのネクスト・ブ
ロック・ポインタを設定することによって達せられる。
そのような待ち行列アクセス技術により、待ち行列メモ
リの帯域幅要件およびアクセス待ち時間要件が相当に軽
減され、また、待ち行列メモリが、処理動作におけるボ
トルネックになることが防止される。
用ブロックを表すポインタの少なくとも1つのリスト
(例えば、空きチャンク・リスト)が維持される。この
ようにして、待ち行列構造にデータ単位(例えば、パケ
ット・ポインタ)が追加される際に可用ブロック・リス
トが参照され、また待ち行列構造からデータ単位を除去
し、かつ/またはブロックを開放する際に可用ブロック
・リストが更新される。一実施形態では、2つの別個の
可用ブロック・リストが並んで使用されて、待ち行列構
造の可用ブロックが特定され、可用ブロックへのアクセ
スが行われる速度が高められる。
造は、ルータまたはその他のタイプのパケット・スイッ
チのトラフィック・マネージャに関連していることが可
能である。さらに、本発明のブロック・ベースの待ち行
列構造を維持し、この待ち行列構造にアクセスするのに
使用される処理回路およびメモリ回路は、1つまたは複
数の集積回路上で実施することができる。
および利点は、添付の図面とともに読むべき本発明の例
示的な実施形態の以下の詳細な説明から明白となる。
ット処理システムに関連して説明する。ただし、本発明
は、より一般的には、従来のリンク・リスト待ち行列に
関連するメモリ帯域幅問題およびアクセス待ち時間問題
を回避することが望まれる任意のデータ処理システムに
適用可能であることを理解されたい。
は、リンク・リスト構造が必要とされ、または所望さ
れ、次の2つの条件のうちどちらか1つが存在する任意
のアプリケーションに適用することができる。すなわ
ち、(i)リンク・リストを記憶するメモリにアクセス
する待ち時間が、リンク・リストを追跡するのに必要な
時間より長いか、または(ii)各エントリ当たりリン
ク・リストを記憶する空間を節約することが所望され
る。
行列を維持し、本発明のブロック・ベースの手法、また
はチャンク・ベースの手法の利点を得ることが必要とさ
れる、または望ましい任意の状況に適用可能である。例
えば、本発明の技術は、本発明のチャンキング技術が、
リンク・リストを追跡するのに必要なキャッシュ・ミス
の回数を最小限に抑える利点を得るソフトウェア実施形
態に適用することができる。さらに、本発明の技術は、
各リンク・リスト・エントリごとにネクスト・エントリ
・ポインタを必要としないことにより、相当なメモリ節
約を可能にする。
は、例として、限定なしに、マイクロプロセッサ、中央
処理装置(CPU)、デジタル信号プロセッサ(DS
P)、特定用途向け集積回路(ASIC)、または他の
タイプのデータ処理デバイスまたは処理回路、ならびに
以上およびその他のデバイスまたは回路の部分および組
み合わせを利用して実施するのが可能であることを理解
されたい。
ンク・リスト待ち行列構造の可用ブロックを追跡するた
めにデュアル可用ブロック・リスト(空きチャンク・リ
スト)と併せてブロック・ベース、またはチャンク・ベ
ースのリンク・リスト待ち行列構造を使用することによ
り、単一の連続するリンク・リスト待ち行列構造の使用
に帰することができる欠点を除去するか、または少なく
とも軽減する。利点の中でもとりわけ、本発明は、待ち
行列メモリの帯域幅要件およびアクセス待ち時間要件を
相当に軽減し、また待ち行列メモリが、処理動作におい
てボトルネックになるのを防止する。
ケット処理システム100を示している。システム10
0は、プロセッサ102と、待ち行列メモリ104と、
パケット・バッファ・メモリ106とを含む。プロセッ
サ102は、パケットおよびその他のパケット・データ
が受信されるネットワーク108と、パケットの交換を
制御するスイッチ構造110との間のインターフェース
を提供するように構成される。ネットワークは、例とし
て、限定なしに、非同期転送モード(ATM)網または
同期式光ネットワーク(SONET)であることが可能
である。プロセッサ102、待ち行列メモリ104、お
よびパケット・バッファ・メモリ106は、例えば、ル
ータまたはスイッチのライン・カードまたはポート・カ
ードの上で実施された1つまたは複数の集積回路として
実施することができる。そのような構成では、スイッチ
構造110は、一般に、ルータまたはスイッチの一部で
あると考えられる。
は、例示する例に過ぎないことを理解されたい。より詳
細には、前述したとおり、本発明は、任意のタイプのパ
ケット・プロセッサに従って実施することができ、また
特定のパケット処理アプリケーションには全く限定され
ない。
メモリのチャンク・ベースのリンク・リスト構造20
0、ならびに2つの空きチャンク・リスト202および
204を示している。チャンク・ベースのリンク・リス
ト構造200、ならびに2つの空きチャンク・リスト2
02および204は、プロセッサ102(図1)の制御
下で待ち行列メモリ104(図1)の中に常駐し、維持
されることが可能であることを理解されたい。チャンク
・ベースのリンク・リスト構造200、ならびに2つの
空きチャンク・リスト202および204は、パケット
・バッファ・メモリ106(図1)に関連して使用する
ことができる。
構造200は、有利には、Nが、待ち行列メモリがサポ
ートするように設計されているチャンクの数に等しい整
数であることが可能である、チャンク1、チャンク
2...チャンクNで示されたメモリの複数のチャンク
またはブロックに分割される。各チャンクは、パケット
・バッファ・メモリの中に現在、記憶されているパケッ
トに対するポインタ(PTR)またはプロトコル・デー
タ単位(PDU)を含む。周知のとおり、ポインタは、
所与のパケットのパケット・バッファ・メモリ位置(例
えば、パケット・バッファ・メモリ106)を指す。さ
らに、待ち行列構造の各チャンクは、待ち行列構造の次
のブロックに対するポインタを含む。このポインタは、
ネクスト・チャンク・ポインタ(NXT CHK PT
R)と呼ばれる。他のタイプのデータ単位も、待ち行列
構造200の中に記憶することができる。
クは、8つのパケットに関連するポインタが記憶され、
ネクスト・チャンク・ポインタも記憶されている連続の
メモリ位置から成る。もちろん、チャンク・サイズは、
用途に応じてより大きい、またはより小さいことが可能
である。したがって、チャンク1は、PDU1から8に
関するポインタ、ならびに次のチャンクに対する、すな
わち、チャンク2に対するポインタを含み、チャンク2
は、PDU9から16に関するポインタ、ならびに次の
チャンクに対する、すなわち、チャンク3に対するポイ
ンタを含み、以下同様である。
すること(待ち行列に入れる動作)、および待ち行列構
造からパケット・ポインタを除去すること(待ち行列解
除動作)を含む2つの別個の動作を待ち行列構造200
に対して行うことができる。通常、そうであるように、
データは、待ち行列構造のヘッド(または開始)で待ち
行列から除去され、待ち行列のテール(または終端)で
待ち行列に追加される。データが追加され、かつ/また
は除去される中で待ち行列構造の現在のヘッドおよびテ
ールを把握しておくため、ヘッドPDUポインタ位置
が、テールPDUポインタ位置とともに維持される。
以前に行われており、チャンク1の中のPDU1から7
に関するポインタが、待ち行列構造200から除去され
ているようになっているものと想定する。したがって、
チャンク1の中のPDU8に関するポインタ位置は、待
ち行列の現在のヘッドを表す。同様に、PDU42に関
するポインタ位置は、待ち行列の現在のテールを表す。
PDU42PTRの後、待ち行列構造200の中のすべ
てのメモリ位置またはエントリは、その構造の中の次の
チャンクに対するそれぞれのポインタを除けば、空であ
る。
セッサ102は、待ち行列構造のチャンク1をアドレス
指定し、またはチャンク1にアクセスし、次に、チャン
ク2を指すようにチャンク1のネクスト・ブロック・ポ
インタを設定することにより、待ち行列構造のチャンク
2をアドレス指定することができる。もちろん、必要な
場合、チャンク1の後、チャンク2以外のチャンクにア
クセスすることも可能である。
て待ち行列構造200が有する1つの大きな利点は、各
チャンクが、連続のメモリ位置から、すなわち、リニア
・アドレス範囲から成ることである。したがって、PD
U1から8にアクセスするのに、待ち行列構造に一回、
アクセスするだけでよい。すなわち、チャンク1にアク
セスするだけでよい。チャンク1、およびチャンク1が
どこで開始するかの知識を所与として、プロセッサは、
PDU1から8に関するポインタが、待ち行列メモリの
連続するリニア・アドレス範囲の中に位置していること
が分かる。したがって、PDUごとに待ち行列構造にア
クセスする必要がなく、各チャンクごとにアクセスする
だけでよい。
02および204が示されている。前述したとおり、こ
れらのリストもまた、待ち行列構造200と併せて待ち
行列メモリ104の中に記憶され、維持される(プロセ
ッサ102に従って)。この空きチャンク・リストを使
用して、待ち行列構造200の中に記憶される新しいデ
ータ単位に可用チャンクが割り振られる。この2つの空
きチャンク・リストが並んで使用されて、待ち行列構造
200の可用チャンクが特定され、可用チャンクにアク
セスが行われる速度が高められる。
を示しているが、待ち行列メモリ104は、すべてがプ
ロセッサ102の制御下にあることが可能な複数のその
ような待ち行列構造を含んでいてもよいことを理解され
たい。また、本発明のそのような待ち行列構造は、パケ
ット・バッファ・メモリの中に記憶されたパケットに対
するポインタだけを記憶する必要はなく、その他のタイ
プのデータ単位も記憶することができる。本発明の待ち
行列構造の他の多くの適用例が、当分野の技術者には認
められよう。
て、本発明のチャンク・ベースの待ち行列構造および空
きチャンク・リストに従って行われる例としての方法を
説明する。
列メモリの自己初期化空きチャンク・リスト(例えば、
図2のリスト202および204)の方法を示してい
る。実質的に、このように待ち行列構造(例えば、待ち
行列構造200)自体が、自動的に初期化される。前述
したとおり、待ち行列の中に記憶される新しいデータ単
位にチャンクを割り振るのに1つまたは複数の空きチャ
ンク・リストが必要とされる。本発明は、好ましくは、
空きチャンクのリストを2つの別個のリストに分割し
て、待ち行列に入れられるデータのために空きチャンク
をフェッチする際、「ピンポン」技術またはタンデム技
術(リスト間で交替すること)を可能にする。つまり、
第1のリストが、まず照会され、次に、第2のリストが
照会され、第1のリストが後に続き、以下同様である。
て直線的に自己初期化されて(ステップ302)、メモ
リの空きチャンクが獲得される。空きリストが、プログ
ラミングされた最大のメモリ深度に達したとき、2つの
空きチャンク・リストからの任意の新しいチャンクが割
り振られる。2つの空きチャンク・リストのヘッド・ポ
インタが維持される(ステップ304)。このヘッド・
ポインタは、制御を行うプロセッサ(例えば、プロセッ
サ102)に関連するレジスタの中で維持することがで
きる。
行列メモリにデータを追加する方法を示している。PD
Uが待ち行列に入れられる際、パケット・バッファ・メ
モリの中のそのメモリ位置に対するポインタに、空きチ
ャンク・リストの1つからのアドレスが割り当てられる
(ステップ310)。次に、PDUポインタが、割り当
てられたチャンクのその第1のリニア・アドレスに記憶
される(ステップ312)。待ち行列に入れられる次の
データ単位にそれぞれ、チャンクがいっぱいになるまで
チャンクの中の次のリニア・アドレスが割り振られる
(ステップ314)。この時点で、別の空きチャンクが
割り振られ(2つの空きチャンク・リストの1つか
ら)、空きリストから割り振られた新しいチャンクを指
すように第1のチャンクからのネクスト・チャンク・ポ
インタが設定される(ステップ316)。待ち行列に関
するヘッド・ポインタおよびテール・ポインタとともに
1つのネクスト・チャンク・ポインタが保存される。こ
れにより、後の待ち行列解除動作でリンク・リストを追
跡するのを可能にするのに必要な時間が提供される。
列メモリからデータを除去し、チャンクを開放する方法
を示している。チャンクの開放は、チャンクの最終デー
タ単位が除去または待ち行列解除されたときに生じる。
この動作の際、空きチャンク・リスト(すなわち、ピン
ポン動作で使用されるべき次の空きチャンク・リスト)
の1つの現在のヘッドを指すように、開放されたチャン
クにおけるネクスト・チャンク・ポインタが設定され、
開放されたチャンクに対するポインタが、空きリストの
新しいヘッドになる(ステップ320)。
ャンクのネクスト・チャンク・ポインタは、自らを指す
ように、また空きリストのヘッドになるように設定され
る(ステップ322)。これは、このチャンクが、空き
リストの終端にあるのを示すように行われ、このこと
は、リスト消耗条件を表す。したがって、待ち行列解除
動作が、空きチャンク・リストを構築し、また、自己初
期化も、このように行われるのが可能である。また、2
つの空きチャンク・リストのどちらにチャンクが戻され
るべきかを示すステータス・ビットが維持される。この
ビットは、開放されたチャンクが戻されるたびに毎回、
切り替えられ、両方の空きリストが、同じ長さに保たれ
ることを確実にする。
行うことを必要とするとき、空きチャンク・リストは使
用されない。代わりに、待ち行列解除プロセスで開放さ
れたチャンクが、待ち行列に入れるプロセスで割り振ら
れるチャンクとして使用される。このようにして、チャ
ンク・メモリ・サイクルがより有効に使用される。
ベースの待ち行列構造の手法を使用することにより、処
理システム全体の最大速度よりはるかに低い速度でリン
ク・リストにアクセスすることができる。これは、デー
タ単位が、チャンク内で直線的に記憶され、ネクスト・
チャンク・ポインタ、ならびに待ち行列のヘッドおよび
テールが常に把握されていることによる。新しいネクス
ト・チャンク・ポインタを獲得するのに必要とされる時
間は、チャンクの長さによって決まる。
例としてのルータ・ライン(またはポート)カード実施
形態またはスイッチ・ライン(またはポート)カード実
施形態を示している。この実施形態では、処理システム
は、少なくとも1つの集積回路402が実施されたライ
ン・カード400を含む。集積回路402は、プロセッ
サ102と、待ち行列メモリ104と、パケット・バッ
ファ・メモリ106とを含む。
てパケット処理システムに関連するトラフィック・マネ
ージャの機能を実施することができる。トラフィック・
マネージャは、一般に、他の機能もあるが、とりわけ、
バッファ管理およびパケット・スケジューリングを行
う。
を明確にするために相当に単純化している。ただし、処
理システムは、複数のそのようなライン・カードを含む
ルータまたはスイッチを含むのが可能であり、またライ
ン・カードのそれぞれが、複数の集積回路を含むのが可
能であることを理解されたい。
に関連して説明してきたが、本発明は、それらの実施形
態そのものに限定されず、本発明の範囲または趣旨を逸
脱することなく、当分野の技術者によって他の様々な変
更および改変が行われるのが可能であることを理解され
たい。
ステムを示すブロック図である。
ンク・ベースのリンク・リスト構造および2つの空きチ
ャンク・リストを示すブロック図である。
きチャンク・リストを初期化する方法を示す流れ図であ
る。
ータを追加する方法を示す流れ図である。
データを除去し、チャンクを開放する方法を示す流れ図
である。
施されたトラフィック・マネージャ集積回路の一部とし
ての本発明の待ち行列メモリの実施を示すブロック図で
ある。
Claims (10)
- 【請求項1】 処理回路と、 前記処理回路に結合され、データ単位のリストを表す少
なくとも1つの待ち行列構造を維持するように構成可能
であり、前記待ち行列構造が、2つ以上のブロックに分
割され、前記待ち行列構造の前記ブロックの少なくとも
いくつかが、2つ以上のデータ単位を含むメモリ回路と
を含む処理システム。 - 【請求項2】 前記データ単位が、パケット・メモリの
中に記憶されたパケットに対するポインタである請求項
1に記載のシステム。 - 【請求項3】 前記待ち行列構造の前記ブロックの少な
くともいくつかが、前記待ち行列構造の次のブロックに
対するポインタを含む請求項1に記載のシステム。 - 【請求項4】 前記処理回路が、(i)前記待ち行列構
造の第1のブロックをアドレス指定し、また(ii)次
のブロックを指すように前記第1のブロックの前記ネク
スト・ブロック・ポインタを設定することによって前記
待ち行列構造の前記次のブロックをアドレス指定するよ
うに構成可能である請求項3に記載のシステム。 - 【請求項5】 所与のブロックの中の前記データ単位
が、前記メモリ回路の中で連続的に位置する請求項1に
記載のシステム。 - 【請求項6】 前記待ち行列構造の可用ブロックを表す
ポインタの少なくとも1つのリストをさらに含み、前記
可用ブロック・リストが、前記待ち行列構造に関連して
維持される請求項1に記載のシステム。 - 【請求項7】 前記待ち行列構造が、トラフィック・マ
ネージャに関連する請求項1に記載のシステム。 - 【請求項8】 前記処理回路および前記メモリ回路の少
なくともどちらかが、集積回路上で実施される請求項1
に記載のシステム。 - 【請求項9】 データ処理システムにおいて使用する方
法であって、 メモリ回路の中で、データ単位のリストを表す少なくと
も1つの待ち行列構造を維持し、前記待ち行列構造が、
2つ以上のブロックに分割され、前記待ち行列構造の前
記ブロックの少なくともいくつかが、2つ以上のデータ
単位を含む方法。 - 【請求項10】 2つ以上のデータ単位を表す第1のデ
ータ・ブロック要素と、 前記第1のデータ・ブロック要素から分割され、やはり
2つ以上のデータ単位を表す少なくとも第2のデータ・
ブロック要素とを含み、前記第1のデータ・ブロック要
素および前記少なくとも第2のデータ・ブロック要素
が、データ単位のリストを表す待ち行列構造を累加的に
形成するデータ構造。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/029,680 US6754795B2 (en) | 2001-12-21 | 2001-12-21 | Methods and apparatus for forming linked list queue using chunk-based structure |
US10/029680 | 2001-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003228515A true JP2003228515A (ja) | 2003-08-15 |
JP2003228515A5 JP2003228515A5 (ja) | 2006-02-02 |
Family
ID=21850308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002366200A Pending JP2003228515A (ja) | 2001-12-21 | 2002-12-18 | チャンク・ベースの構造を使用してリンク・リスト待ち行列を形成するための方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6754795B2 (ja) |
EP (1) | EP1321863A3 (ja) |
JP (1) | JP2003228515A (ja) |
KR (1) | KR100958507B1 (ja) |
TW (1) | TW200305076A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009532954A (ja) * | 2006-03-31 | 2009-09-10 | クゥアルコム・インコーポレイテッド | 高速メディアアクセス制御に関するメモリ管理 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030036746A1 (en) | 2001-08-16 | 2003-02-20 | Avi Penner | Devices for intrabody delivery of molecules and systems and methods utilizing same |
US7113516B1 (en) * | 2000-11-28 | 2006-09-26 | Texas Instruments Incorporated | Transmit buffer with dynamic size queues |
US7216204B2 (en) * | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US7225281B2 (en) * | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
DE10162046A1 (de) * | 2001-12-17 | 2003-06-26 | Thomson Brandt Gmbh | Wiedergabegerät mit einem Zwischenspeicher zum Verringern der mittleren Zugriffszeit auf einen Informationsträger |
US7610451B2 (en) * | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
US6892278B2 (en) * | 2002-03-05 | 2005-05-10 | Sun Microsystems, Inc. | Method and apparatus for efficiently implementing a last-in first-out buffer |
DE10215719A1 (de) * | 2002-04-10 | 2003-10-30 | Philips Intellectual Property | Datenspeicher |
US7337275B2 (en) * | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
US6907508B2 (en) * | 2003-02-26 | 2005-06-14 | Emulex Design & Manufacturing Corporation | Structure and method for managing available memory resources |
US7035988B1 (en) * | 2003-03-17 | 2006-04-25 | Network Equipment Technologies, Inc. | Hardware implementation of an N-way dynamic linked list |
US7702627B2 (en) | 2004-06-22 | 2010-04-20 | Oracle International Corporation | Efficient interaction among cost-based transformations |
CN100440854C (zh) * | 2004-06-25 | 2008-12-03 | 中国科学院计算技术研究所 | 一种网络处理器的数据包接收接口部件及其存储管理方法 |
US7814042B2 (en) * | 2004-08-17 | 2010-10-12 | Oracle International Corporation | Selecting candidate queries |
US8271093B2 (en) | 2004-09-17 | 2012-09-18 | Cardiac Pacemakers, Inc. | Systems and methods for deriving relative physiologic measurements using a backend computing system |
US7813808B1 (en) | 2004-11-24 | 2010-10-12 | Remon Medical Technologies Ltd | Implanted sensor system with optimized operational and sensing parameters |
US7751421B2 (en) * | 2004-12-29 | 2010-07-06 | Alcatel Lucent | Traffic generator and monitor |
US7849163B1 (en) | 2005-08-11 | 2010-12-07 | Qurio Holdings, Inc. | System and method for chunked file proxy transfers |
US7955268B2 (en) | 2006-07-21 | 2011-06-07 | Cardiac Pacemakers, Inc. | Multiple sensor deployment |
US7756573B2 (en) | 2006-09-05 | 2010-07-13 | Cardiac Pacemakers, Inc. | Implantable medical device diagnostic data acquisition and storage |
US20080270728A1 (en) * | 2007-04-25 | 2008-10-30 | Hewlett-Packard Development Company, L.P. | Burst structure allocation for parallel cache pre-loading |
GB2459839B (en) * | 2008-05-02 | 2012-02-29 | Broadcom Corp | Management of storage and retrieval of data labels in random access memory |
US8543743B2 (en) * | 2009-01-27 | 2013-09-24 | Microsoft Corporation | Lock free queue |
US9575842B2 (en) * | 2011-02-24 | 2017-02-21 | Ca, Inc. | Multiplex backup using next relative addressing |
US20140321466A1 (en) * | 2013-04-25 | 2014-10-30 | Mediatek Inc. | Packet processing method for getting packet information from link list and related packet processing apparatus thereof |
CN104125176A (zh) * | 2013-04-25 | 2014-10-29 | 联发科技股份有限公司 | 封包处理方法以及封包处理装置 |
CN106330741B (zh) * | 2015-06-15 | 2020-04-24 | 深圳市中兴微电子技术有限公司 | 一种报文传输方法和装置 |
KR102033401B1 (ko) | 2016-01-05 | 2019-11-08 | 한국전자통신연구원 | 효율적으로 파일을 생성하기 위한 분산 파일 시스템 및 방법 |
US11036438B2 (en) * | 2017-05-31 | 2021-06-15 | Fmad Engineering Kabushiki Gaisha | Efficient storage architecture for high speed packet capture |
US10693787B2 (en) * | 2017-08-25 | 2020-06-23 | Intel Corporation | Throttling for bandwidth imbalanced data transfers |
CN113961363A (zh) * | 2020-07-20 | 2022-01-21 | 中移(苏州)软件技术有限公司 | 一种数据缓存方法和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02201558A (ja) * | 1989-01-30 | 1990-08-09 | Fujitsu Ltd | 領域管理処理方式 |
JPH04312157A (ja) * | 1991-04-11 | 1992-11-04 | Mitsubishi Electric Corp | データ転送装置 |
JPH06334652A (ja) * | 1993-04-29 | 1994-12-02 | Internatl Business Mach Corp <Ibm> | 通信システムにおいてデータをマルチキャストする方法及び装置 |
JPH11510323A (ja) * | 1995-07-19 | 1999-09-07 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | Atm交換機の多重レベル制御用リンクドリスト構造 |
JP2001184191A (ja) * | 1999-12-22 | 2001-07-06 | Alps Electric Co Ltd | データ処理装置 |
JP2001512600A (ja) * | 1997-02-14 | 2001-08-21 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | メモリ内の物理的順序によって時間順を維持するための方法および装置 |
JP2001527240A (ja) * | 1997-12-19 | 2001-12-25 | テレフオンアクチーボラゲツト エル エム エリクソン(パブル) | データ構造内の管理 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978359A (en) | 1995-07-19 | 1999-11-02 | Fujitsu Network Communications, Inc. | Allocated and dynamic switch flow control |
US6233244B1 (en) | 1997-02-14 | 2001-05-15 | Advanced Micro Devices, Inc. | Method and apparatus for reclaiming buffers |
AUPP638698A0 (en) * | 1998-10-06 | 1998-10-29 | Canon Kabushiki Kaisha | Efficient memory allocator utilising a dual free-list structure |
US6578131B1 (en) * | 1999-04-27 | 2003-06-10 | Microsoft Corporation | Scaleable hash table for shared-memory multiprocessor system |
US6526314B1 (en) * | 1999-08-20 | 2003-02-25 | Cardiac Pacemakers, Inc. | Data management system for implantable cardiac device |
-
2001
- 2001-12-21 US US10/029,680 patent/US6754795B2/en not_active Expired - Lifetime
-
2002
- 2002-11-25 EP EP02258102A patent/EP1321863A3/en not_active Ceased
- 2002-12-03 TW TW091135045A patent/TW200305076A/zh unknown
- 2002-12-18 JP JP2002366200A patent/JP2003228515A/ja active Pending
- 2002-12-20 KR KR1020020081516A patent/KR100958507B1/ko not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02201558A (ja) * | 1989-01-30 | 1990-08-09 | Fujitsu Ltd | 領域管理処理方式 |
JPH04312157A (ja) * | 1991-04-11 | 1992-11-04 | Mitsubishi Electric Corp | データ転送装置 |
JPH06334652A (ja) * | 1993-04-29 | 1994-12-02 | Internatl Business Mach Corp <Ibm> | 通信システムにおいてデータをマルチキャストする方法及び装置 |
JPH11510323A (ja) * | 1995-07-19 | 1999-09-07 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | Atm交換機の多重レベル制御用リンクドリスト構造 |
JP2001512600A (ja) * | 1997-02-14 | 2001-08-21 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | メモリ内の物理的順序によって時間順を維持するための方法および装置 |
JP2001527240A (ja) * | 1997-12-19 | 2001-12-25 | テレフオンアクチーボラゲツト エル エム エリクソン(パブル) | データ構造内の管理 |
JP2001184191A (ja) * | 1999-12-22 | 2001-07-06 | Alps Electric Co Ltd | データ処理装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009532954A (ja) * | 2006-03-31 | 2009-09-10 | クゥアルコム・インコーポレイテッド | 高速メディアアクセス制御に関するメモリ管理 |
US8139593B2 (en) | 2006-03-31 | 2012-03-20 | Qualcomm Incorporated | Memory management for high speed media access control |
US8594112B2 (en) | 2006-03-31 | 2013-11-26 | Qualcomm Incorporated | Memory management for high speed media access control |
Also Published As
Publication number | Publication date |
---|---|
TW200305076A (en) | 2003-10-16 |
EP1321863A2 (en) | 2003-06-25 |
EP1321863A3 (en) | 2003-07-02 |
KR100958507B1 (ko) | 2010-05-17 |
US6754795B2 (en) | 2004-06-22 |
US20030120879A1 (en) | 2003-06-26 |
KR20030053030A (ko) | 2003-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003228515A (ja) | チャンク・ベースの構造を使用してリンク・リスト待ち行列を形成するための方法および装置 | |
US10015117B2 (en) | Header replication in accelerated TCP (transport control protocol) stack processing | |
US6831923B1 (en) | Pipelined multiple issue packet switch | |
US5668809A (en) | Single chip network hub with dynamic window filter | |
US7327674B2 (en) | Prefetching techniques for network interfaces | |
US5963543A (en) | Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device | |
US5625825A (en) | Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network | |
KR100437146B1 (ko) | 지능망 인터페이스 장치 및 통신 가속 시스템 | |
US5802287A (en) | Single chip universal protocol multi-function ATM network interface | |
JP5066702B2 (ja) | インテリジェントネットワークストレージインタフェースシステム及びデバイス | |
US5640399A (en) | Single chip network router | |
US20030112818A1 (en) | Deferred queuing in a buffered switch | |
EP1398922B1 (en) | Balanced linked lists for high performance data buffers in a network device | |
EP0797335A2 (en) | Network adapter | |
EP1045558B1 (en) | Very wide memory TDM switching system | |
WO2001040960A1 (en) | Fifo-based network interface supporting out-of-order processing | |
JP2005512227A (ja) | Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信 | |
US7072342B1 (en) | Reordering of out-of-order packets | |
US7860120B1 (en) | Network interface supporting of virtual paths for quality of service with dynamic buffer allocation | |
EP1554644A2 (en) | Method and system for tcp/ip using generic buffers for non-posting tcp applications | |
US6542941B1 (en) | Efficient command delivery and data transfer | |
US20080263171A1 (en) | Peripheral device that DMAS the same data to different locations in a computer | |
US6850999B1 (en) | Coherency coverage of data across multiple packets varying in sizes | |
US7245616B1 (en) | Dynamic allocation of packets to tasks | |
WO2007074343A2 (en) | Processing received data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051208 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080811 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081111 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20081114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091021 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100121 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100421 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20100421 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100517 |