JP3936550B2 - パケットバッファ - Google Patents

パケットバッファ Download PDF

Info

Publication number
JP3936550B2
JP3936550B2 JP2001143702A JP2001143702A JP3936550B2 JP 3936550 B2 JP3936550 B2 JP 3936550B2 JP 2001143702 A JP2001143702 A JP 2001143702A JP 2001143702 A JP2001143702 A JP 2001143702A JP 3936550 B2 JP3936550 B2 JP 3936550B2
Authority
JP
Japan
Prior art keywords
bank
read
memory
write
data
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
JP2001143702A
Other languages
English (en)
Other versions
JP2002344502A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001143702A priority Critical patent/JP3936550B2/ja
Priority to US10/002,748 priority patent/US7295553B2/en
Publication of JP2002344502A publication Critical patent/JP2002344502A/ja
Application granted granted Critical
Publication of JP3936550B2 publication Critical patent/JP3936550B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout

Description

【0001】
【発明の属する技術分野】
本発明は、ルータやスイッチなど、パケット交換を行なう装置において、受信パケットを一時的に蓄積し、所定の規則に従って送出するパケットバッファに関するものであり、特に、各パケットに対して要求される転送品質に応じて、到着順とは異なる優先順位を転送順序に適用する制御を行なう技術に関する。
インターネットの急速な普及に伴って、インターネットを利用したデータ通信サービスは飛躍的に発展しており、今や、IP(Internet Protocol) パケットに代表されるパケットによるデータ通信が、データ通信全体のトラフィックの主流となりつつある。また、インターネットを利用したデータ通信サービスの中でも、特に、音声や動画像データの伝送などのようにリアルタイム性が強く要求されるサービスに対する需要の高まりは顕著である。
【0002】
これに伴って、IPパケットにカプセル化された動画像データや音声データなどを、高品質を保って伝送するための技術(QoS:Quality of Service)が要望されている。このためには、ルータやスイッチにおいて、各パケットに設定されたデータ転送品質に従って、受信したパケットをその到着順序とは異なる順序で送出する制御を行なう必要がある。
【0003】
【従来の技術】
ルータやスイッチなど、パケット交換を行なう装置において、パケットバッファは、出力先の伝送経路を選択するためのハードウェアスイッチなどの前段に位置し、受信パケットを一時的に蓄積し、蓄積したパケットを所定の規則に従って送出する役割を果たしている。
図13に、従来のパケットバッファの第1の構成例を示す。
図13に示したパケットバッファにおいて、品質判定部411は、受信したパケットから品質クラスに関する情報を抽出し、この情報をスケジューラ412に通知するとともに、受信パケットを書込制御部413に渡す。スケジューラ412は、必要に応じて、受信パケットを共通バッファ414への書込単位に分割し、各書込単位についての書き込み要求を書込制御部413に入力する。このとき、スケジューラ412は、各受信パケットにアドレス管理用のリストを割り当て、このリストに、それぞれの受信パケットを分割して得られた複数の書込単位についての連鎖およびそれぞれの書込アドレスを保持している。また、スケジューラ412は、品質判定部411から通知された品質クラスに関する情報に基づいて、共通バッファ414に格納されている各受信パケットの読出順序を調整し、この読出順序に従って、これらの受信パケットの読み出し要求を読出制御部415に入力する。このとき、スケジューラ412は、各パケットに対応するリストを読出制御部415に指示し、これに応じて、読出制御部415は、指定されたリストに保持された各アドレスを順次に読出アドレスとして共通バッファ414に入力する。
【0004】
このように、図13に示したパケットバッファにおいては、到着したパケットを共通バッファ414に書き込んでいき、スケジューラ412によって、要求される品質クラスに基づいて読出順序を決定し、この読出順序に従って、読出制御部415が各パケットを読み出すことにより、品質クラスに応じた転送制御を実現している。
【0005】
また、一方、図14に、従来のパケットバッファの第2の構成例を示す。
図14に示したパケットバッファは、各品質クラスに対応するFIFO421を備えている。このパケットバッファにおいて、品質判定部422は、受信パケットを品質クラスに応じたFIFO421に入力するとともに、スケジューラ423に、受信パケットを入力したFIFO421を示す情報を通知する。スケジューラ423は、各FIFO421に設定された優先順位に基づいて、これらのFIFO421からの読出をスケジューリングし、バッファ選択部424に選択すべきFIFO421を指示する。
【0006】
このように、図14に示したパケットバッファにおいては、到着したパケットを品質クラスごとに設けたFIFOに分類して格納し、スケジューラ423からの指示に応じて、バッファ選択部424が指定されたFIFO421選択し、該当するFIFO421に保持されたパケットを順次に送出することにより、品質クラスに応じた転送制御を実現している。
【0007】
【発明が解決しようとする課題】
図13に示したパケットバッファにおいては、到着順にかかわらない優先順位に従って共通バッファ414からパケットが読み出されるので、共通バッファ414に指定される読出アドレスは当然ランダムである。また、共通バッファ414の空き領域をリストによって管理しながら受信パケットを書き込むので、書込アドレスもランダムとなる。
したがって、データ通信速度の高速化に対応するために高速なルータを実現しようとすれば、当然ながら、共通バッファ414として、読み出し、書き込みともに高速なランダムアクセス性能を備えたメモリ素子が必要となる。つまり、共通バッファ414として採用するメモリ素子の価格によって、ルータの価格が制限され、また、メモリ素子の性能によって、ルータの性能が制限されてしまう。
【0008】
一方、図14に示したパケットバッファにおいては、品質クラスごとに、パケットの到着頻度に大きなばらつきがあるにもかかわらず、品質クラスごとにFIFO421を設ける必要がある。このため、パケットの到着頻度が低い品質クラスでは、メモリの使用効率が著しく低くなってしまう。また、読み出しと書き込みとを調整するために、各品質クラスごとのFIFO421とは別のバッファが必要である。これらのことから、図14に示したパケットバッファで実現可能な処理サイクルは、最大パケット到着頻度よりも遅くなってしまう。
【0009】
このように、従来の技術では、パケットバッファの構成としていずれの構成を採用した場合にも、高い転送能力を実現するためには、高いコストを支払う必要がある。
本発明は、比較的低価格のメモリ素子を用いて、高速な処理サイクルと高いメモリ使用効率とを両立可能なパケットバッファを提供することを目的とする。
【0010】
【課題を解決するための手段】
図1に、請求項1および請求項2のパケットバッファの原理ブロック図を示す。
請求項1の発明は、受信パケットをデータバッファ101に書き込み、品質識別手段102によって識別された品質クラスに応じて、スケジューラ103がデータバッファ101に書き込まれたパケットについての読み出し順序を調整する構成のパケットバッファにおいて、データバッファ101は、所定の数Nとこの所定の数N以上であって所定の数Nに定数1 . 5を乗じた数以下の所定の数Lとの和を超える所定の数M個の同時にアクセス可能なメモリバンク104と、所定のメモリサイクルごとに、所定の数Nまでの読出コマンドおよび書込コマンドに応じて、メモリバンク104に対するアクセスを実行するアクセス手段105とを備えた構成であり、受信したパケットを所定のデータ長に基づいて、少なくとも一つのデータブロックに分割し、各データブロックについて書込要求を発行する書込要求手段111と、連続するN+1個の書込要求に応じてそれぞれ異なるメモリバンク104を選択する書込バンク選択手段112と、メモリサイクルごとに、書込要求手段111によって発行された書込要求から順に最大N個の書込要求を選択し、対応するデータブロックをそれぞれについて書込バンク選択手段112によって選択されたメモリバンク104に書き込む旨の書込コマンドをアクセス手段105に入力するデータ書込手段113と、各パケットに対応するデータブロックそれぞれについて、それぞれが書き込まれたメモリバンク104およびアドレスに関する情報を管理するアドレス管理手段114と、メモリサイクルごとに、スケジューラ103からN個までのデータブロックについての読出要求を受け取り、アドレス管理手段114に保持されたアドレスに関する情報に基づいて、読出要求で指定されたデータブロックが格納されたメモリバンク104の中から、同一のメモリサイクルにおいて読出可能なものを読出バンクとして選択する第1読出バンク選択手段115と、各メモリサイクルにおいてスケジューラ103から受信した読出要求のうち、そのメモリサイクルにおいて読み出しが実行されなかった読出要求を保持し、対応するメモリバンク104を次のメモリサイクルにおいて読出バンクとして選択する第2読出バンク選択手段116と、第1読出バンク選択手段115と第2読出バンク選択手段116とによって選択された読出バンクについての読出要求から第2読出バンク選択手段に保持された読出要求を優先して所定の数Lまでの読出要求を選択し、それぞれ該当するメモリバンク104からデータブロックを読み出す旨の読出コマンドをアクセス手段105に入力するデータ読出手段117とを備えたことを特徴とする。
【0011】
請求項1の発明は、データ書込手段113とデータ読出手段117とにより、複数のメモリバンク104を分散して指定する書込コマンドおよび読出コマンドをアクセス手段105に入力することにより、N個のデータブロックの書込処理とN個のデータブロックの読出処理とを同時に処理可能である。また、これにより、各メモリバンク104に対する書込コマンドあるいは読出コマンドの入力間隔を、スケジューラ103からの読出要求あるいは新たなパケットの到着に伴う書込要求の発生サイクルよりも長い時間とすることができるので、メモリバンク104を形成するメモリ素子の動作速度にかかわらず、読出要求および書込要求を漏れなく処理することが可能である。また、書込バンク選択手段112により、連続するデータブロックについてそれぞれ異なるメモリバンク104を書込バンクとして選択し、これらのメモリバンク104に振り分けて書き込むので、パケットバッファに格納されたパケットを書き込んだ順序とは異なる順序で読み出した場合においても、各メモリサイクルにおいて、同一のメモリバンク104に対する読み出しコマンドが連鎖的に重複することはない。
【0012】
請求項2の発明は、請求項1に記載のパケットバッファにおいて、アクセス手段105は、パケットを分割する基準となるデータ長に相当するデータ長を持つパケットが受信される周期と同一のメモリサイクルごとに、読出コマンドおよび書込コマンドを実行する構成であることを特徴とする。
請求項2の発明は、パケットを分割する基準となるデータ長のパケットが受信される周期に対応するメモリサイクルで、アクセス手段105がデータブロックの読み出しおよび書き込みを処理することにより、受信したデータを、その受信に要した時間内に、データバッファ101に書きこむことが可能であるので、パケットごとにランダムに読み出し順序をスケジューリングすることができる。
【0013】
なお、請求項2に記載のパケットバッファにおいて、データ読出手段117は、読出要求から順に、定数1.5に所定の数Nを乗じた数を超えない最大の整数Lまでの読出要求を選択する構成とし、データバッファ101は、整数Lに、所定の数Nおよび定数1を加えた数M個のメモリバンク104を備えて構成すれば、メモリバンク104の使用効率を最大とすることができる。なぜなら、読み出しに使用されるメモリバンク104の数は、現メモリサイクルにおける読出要求に対応するN個に、前のメモリサイクルで重複したために、現メモリサイクルに振り替えられる読出要求の数である高々N/2個を加算した数で十分であり、また、書き込みに使用されるべきメモリバンク104の数は、前のメモリサイクルにおいて書き込みに使用されたN個のメモリバンクを除いた上で、更に1個存在すればよいので、N+1個で十分であるからである。
【0014】
図2に、請求項3の発明の原理ブロック図を示す。
請求項3の発明は、請求項1に記載のパケットバッファにおいて、書込バンク選択手段113は、過去N回の書込要求において書込バンクとして指定されたメモリバンク104のバンク番号を書込要求の履歴を表す情報として保持する履歴保持手段121と、書込要求の履歴を表す情報と、現在のメモリサイクルにおいてデータ読出手段117によってデータブロックの読み出しが行われるメモリバンク104を示すバンク番号とに基づいて、現在のメモリサイクルにおいてデータブロックの書き込みが可能なメモリバンク104を示すバンク番号を書込バンク候補として収集する候補収集手段122と、候補収集手段122によって収集された各書込バンク候補に、所定の規則に従って優先順位を設定する順位設定手段123と、優先順位に従って、書込バンク候補からN個のバンク番号を選択し、書込バンクを示す情報としてデータ書込手段113に入力する優先選択手段124とを備えた構成であることを特徴とする。
【0015】
請求項3の発明は、履歴保持手段121に保持された履歴情報に基づいて、候補収集手段122によって抽出された書込バンクの候補に、順位設定手段123によって優先順位を設定し、優先選択手段124において、適切な書込バンクを選択するための指標を与えることができる。
また、図2に示したパケットバッファにおいて、順位設定手段123は、書込要求ごとに、データバッファ101に備えられたメモリバンク104の数Mまでの自然数を巡回的に計数する巡回カウンタ125と、候補収集手段122によって収集された書込バンク候補から、履歴保持手段121に保持されたバンク番号以外であって、現在の読出バンクを示すバンク番号以外であるバンク番号を優先候補として選択する優先候補選択手段126と、巡回カウンタ125の計数で示されるバンク番号に基づいて、優先候補のいずれかに最高の優先順位を与える順位決定手段127とを備えた構成としてもよい。
【0016】
このような構成を採用した場合は、優先候補選択手段126によって選択された優先候補の一方に、順位決定手段127が、巡回カウンタ125の計数値に応じて最高の優先順位を設定することにより、優先候補となるメモリバンク104が複数存在した場合に、最終的に書込バンクとして各メモリバンク104が選択される確率を平均化することができ、複数のメモリバンク104を平均的に使用することができる。
【0017】
図3に、請求項4および請求項5の発明の原理ブロック図を示す。
請求項4の発明は、請求項1に記載のパケットバッファにおいて、データバッファ101の各メモリバンク104はDRAMから形成されており、データバッファ101に入力される書込コマンドおよび読出コマンドに基づいて、アクセスの対象となっていないメモリバンク104を検出するバンク検出手段131と、各メモリバンク104に対応し、バンク検出手段131によって当該メモリバンク104が検出されるごとに、当該メモリバンク104を形成する記憶領域のいずれかを順次に読出対象とし、この読出対象からデータブロックを読み出す旨の擬似読出コマンドを作成してデータバッファ101に入力するコマンド発行手段132とを備えた構成であることを特徴とする。
【0018】
請求項4の発明は、バンク検出手段131によって空いているメモリバンクとして各メモリバンク104が検出されるごとに、対応するコマンド発行手段132によって、当該メモリバンク104の格納領域を順次に指定してデータブロックの読み出しを行なうことにより、該当する格納領域に対するリフレッシュ操作を実行した場合と同等の記憶保持効果を得ることができる。
【0019】
請求項5の発明は、請求項1に記載のパケットバッファにおいて、データバッファ101から読み出されたデータブロックを読出要求に対応して保持する2次バッファ141と、2次バッファ141にデータブロックが保持されている読出要求について、それぞれ読出要求がスケジューラ103によって発行されてからの経過時間を監視し、所定の出力待機時間が経過したときに、当該読出要求の待機時間が終了した旨を示す待機完了通知を出力するタイマ142と、待機完了通知に応じて、該当する読出要求に対応して2次バッファ141に保持されたデータブロックを出力する出力制御手段143とを備えた構成であることを特徴とする。
【0020】
請求項5の発明は、データバッファ101から読み出されたデータブロックを、一旦2次バッファ141に保持し、タイマ142からの通知に応じて、出力制御手段143によって出力することにより、各データブロックがデータバッファ101から読み出されたタイミングにかかわらず、そのデータブロックについての読み出し要求が発生した時点からの経過時間に応じてデータブロックを出力することができる。これにより、パケットの境界などにおいて、読み出しに使用されるメモリバンクが衝突し、データブロックの読み出しを次のメモリサイクルに振り替えた場合においても、各パケットを形成するデータブロックを連続的に出力することができる。
【0021】
【発明の実施の形態】
以下、図面に基づいて、本発明の実施形態について詳細に説明する。
図4に、本発明のパケットバッファの実施形態を示す。
図4に示したパケットバッファは、メモリ制御部201を介して各メモリサイクルにおいて同時にアクセス可能な6個のメモリバンク202を備えており、これらのメモリバンク202には、それぞれ番号#0から#5が与えられている。
このパケットバッファにおいて、品質識別部203は、書込処理部210に入力される受信パケットの品質クラスを識別し、この品質識別結果をリスト制御部204に通知する役割を果たしている。
【0022】
また、図4において、リスト制御部204は、品質クラスに対応するキューごとにリストテーブルを備えており、各パケットについての品質識別結果に対応するリストテーブルに、そのパケットのデータが格納された格納場所に関する情報を格納していくことにより、各品質クラスごとのリストテーブルを作成し、これらのリストテーブルに基づいて、スケジューラ205に読出リクエストを入力する。
【0023】
スケジューラ205は、リスト制御部204から受け取った読出リクエストに基づいて、パケットバッファに保持されたパケットの出力順序を決定し、この出力順序に従って、次に読み出すべきデータの格納場所を示すリストテーブルを読出処理部220に通知して、該当するパケットデータの読み出しを要求する。
図4に示したパケットバッファにおいて、メモリ制御部201は、書込処理部210から書込コマンドとともにパケットデータを受け取って、指定されたメモリバンク202にそのパケットデータを書き込み、また、読出処理部220から受け取った読出コマンドに応じて、指定されたメモリバンク202に格納されたパケットデータを読み出し、レイテンシ制御部206を介して出力する。
【0024】
図4に示した書込処理部210において、書込要求制御部211は、各メモリサイクルにおいて受信したパケットデータを必要に応じて所定のデータ長のデータブロックに分割し、これらのデータブロックごとに書込要求を発行して、対応するデータブロックとともに書込バンク決定部212に渡す。この書込バンク決定部212は、各メモリバンク202への書込履歴と、各メモリバンクに対する読出要求とに基づいて、後述する所定の規則に従って現メモリサイクルにおいてデータを書き込むメモリバンク202を決定し、リスト制御部204に通知する。また、図4に示した書込制御部213は、書込バンク決定部212から各データブロックとその書込先のメモリバンクを示す情報とを受け取り、各データブロックを対応するメモリバンク202に書き込む旨の書込コマンドを発行し、メモリ制御部201に入力する。
【0025】
一方、図4に示した読出処理部220において、読出要求制御部221は、スケジューラ205から通知されたリストテーブルに基づいて、現メモリサイクルにおいて読み出すべきデータブロックについての読出要求を発行し、読出制御部222に入力する。この読出要求に応じて、読出制御部222は、読出要求で指定されたメモリバンク202の指定されたアドレスからデータブロックを読み出す旨の読出コマンドを発行し、メモリ制御部201に入力する。
【0026】
また、図4に示したパケットバッファにおいて、リフレッシュ制御部207は、書込処理部210および読出処理部220からメモリ制御部201に渡される書込コマンドおよび読出コマンドに基づいて、現メモリサイクルにおいて読み出しあるいは書き込みの対象となっていないメモリバンク202を検出し、該当するメモリバンク202の各アドレスに順次に読出コマンドを入力することにより、各メモリバンク202をリフレッシュする。
【0027】
ここで、図1に示した各手段と、図4に示した各部との対応関係について説明する。
図4に示したメモリ制御部201は、図1に示したアクセス手段105に相当し、また、図4に示したメモリバンク202は、図1に示したメモリバンク104に相当する。また、図1に示したデータバッファ101は、図4において、上述したメモリ制御部201と各メモリバンク202とから形成されている。
【0028】
また、図1に示した品質識別手段102およびスケジューラ103は、図4に示した品質識別部203およびスケジューラ205にそれぞれ相当し、図1に示したアドレス管理手段114の機能は、図4に示したリスト制御部204によって果たされる。
図1に示した書込要求手段111、書込バンク選択手段112およびデータ書込手段113は、図4に示した書込要求制御部211、書込バンク決定部212および書込制御部213にそれぞれ相当する。また、図1に示したデータ読出手段117は、図4に示した読出制御部222に相当し、図4に示した読出要求制御部221は、図1に示した第1読出バンク選択手段115および第2読出バンク選択手段116の機能を果たす。
【0029】
次に、本発明にかかるパケットバッファの動作について大まかに説明する。
図5に、本発明のパケットバッファの概略動作を説明する図を示す。
図5において、符号Q、R、Sを付して示す送信パケットは、パケットバッファから出力されるパケットを示しており、また、符号A、B、C、Dを付して示す受信パケットは、上述した送信パケットQ、R、Sの出力と並行して、パケットバッファに格納されるパケットを示している。
【0030】
また、図5において、符号▲1▼〜▲5▼を付して示した各メモリサイクルは、最小パケット長、即ち、データブロック2個分のパケットを受信するために要する時間に一致している。以下では、各メモリサイクルにおいて、2つの読出コマンドに応じた読出処理と2つの書込コマンドに応じた書込処理とを並行して実行する動作について説明する。
【0031】
ここで、図4に示したメモリバンク202(図5においては、それぞれに与えられた番号#0〜#5を付して示した)には、メモリバンク(第0期)として示したように、4つのパケットQ、R、S、Tをそれぞれ分割して得られたデータブロックが既に格納されている。
このとき、図4に示したスケジューラ205により、パケットQ、R、Sの順に読み出す旨が指示された場合に、読出処理部220は、図5に示すように、各メモリサイクルにおいて、パケットQ、R、Sに対応するデータブロックについて、順次に読出コマンドを作成し、メモリ制御部201に入力する。例えば、図5において符号▲1▼で示したメモリサイクルでは、スケジューラ205から指定されたリストに従って、図4に示した読出要求制御部221により、パケットQに対応するデータブロックQ-1,Q-2に対する読出要求が発行される。これに応じて、読出制御部222により、データブロックQ-1,Q-2が格納されているメモリバンク#5およびメモリバンク#0に対する読出コマンドが作成され、メモリ制御部201に入力される。
【0032】
このような読出処理と並行して、図4に示した書込処理部210は、新たに受信したパケットに対応するデータブロックを、そのメモリサイクルにおいて読出中であるメモリバンク以外の4つのメモリバンクから選択したメモリバンクに書き込んでいく。例えば、受信パケットAの入力に応じて、図4に示した書込要求制御部211は、この受信パケットAを2つのデータブロックA-1,A-2に分割し、それぞれに対応して書込要求を発行する。これに応じて、書込バンク決定部212は、読出中であるメモリバンク#5、#0以外の4つのメモリバンクから書き込み先のメモリバンク202(例えば、メモリバンク#1、#2)を選択する。この選択結果に基づいて、書込制御部213は、上述した2つのデータブロックをそれぞれメモリバンク#1、#2に書き込む旨の書込コマンドを作成し、メモリ制御部201に入力する。この書込コマンドに応じて、メモリ制御部201により、これらのデータブロックが該当するメモリバンク202にそれぞれ書き込まれる。同様にして、パケットBに対応するデータブロックB-1,B-2,B-3 が順次にメモリバンク#3、#5、#4に書き込まれる。このようにして、パケットCおよびパケットDに対応する各データブロックが各メモリバンク202に格納された様子を、図5にメモリバンク(第1期)として示した。
【0033】
このように、各メモリサイクルにおいて読み出されるデータブロックが格納されたメモリバンク以外のメモリバンクに、そのメモリサイクルにおいて新たに到着した受信パケットに対応するデータブロックを書き込むことにより、個々のメモリサイクルにおいて、送信すべきパケットに対応するデータブロックの読み出しと受信パケットに対応するデータブロックの書き込みとを両立させることができる。
【0034】
なお、このように、各メモリサイクルにおいて2個の書込コマンドを処理する場合、即ち、同時に処理する書き込みコマンドの数Nが2である場合は、図4に示したように、6個のメモリバンク202を備えてパケットバッファを形成すれば、各メモリサイクルにおいて必要とされる読出バンクと書込バンクとの双方が確実に決定することが可能である。
【0035】
次に、各データブロックの書き込み先となる書込バンクを適切に選択する方法について説明する。
ここで、上述したようにして、読出動作の対象となるメモリバンクを避けて、書込バンクを単純に決定していった場合に発生することが予想される問題について説明する。
【0036】
図6に、パケットバッファにおいて発生し得る問題を説明する図を示す。
図6(a)に、メモリバンク#0〜#3に、パケットA,B,C,D,E,F,G,X,Yをそれぞれ分割して得られたデータブロックが格納されている状態を示す。これらのパケットに設定された優先順位に基づいて、スケジューラ205により、図6(b)に示すように、パケットB,パケットA,パケットC,パケットX,パケットX,パケットYの順に読み出しが指示された場合に、図6において、符号▲1▼〜▲7▼で示した各メモリサイクルにおいて、読出要求対象となるデータブロックを図6(c)に示す。このとき、図6(d),(e),(f)に示すように、符号▲2▼で示したメモリサイクル以降の各メモリサイクルにおいて、読出動作の対象となるメモリバンクが衝突し、次のメモリサイクルに処理が延期されるデータブロックが発生していることが分かる。
【0037】
例えば、図6において符号▲2▼で示したメモリサイクルにおいて、スケジューラ205からの指示に従ってデータを読み出すためには、パケットBの3番目のデータブロックB−3とパケットAの最初のデータブロックA−1とを読み出す必要がある。しかしながら、これらのデータブロックは、ともにメモリバンク#0に格納されているので、この2つのデータブロックを同一のメモリサイクルで読み出すことはできない。このように、パケットの境界において発生した衝突は、図6(e),(f)に示すように、データブロックA−1の処理を次のメモリサイクルに振り替えることにより、次のメモリサイクルにおいて正常に処理することが可能である。
【0038】
しかしなから、パケットCやパケットXおよびパケットYのように、最初のデータブロックが書き込まれたメモリバンクと同一のメモリバンクに3番目のデータブロックが書き込まれたパケットを連続して読み出そうとすると、次のメモリサイクルに振り替えられるデータブロックが連鎖的に発生する。そして、ついには、図6(e)に示すように、そのメモリサイクルにおいて読み出すべき2つのデータブロック双方と、前のメモリサイクルから振り替えられたデータブロックが格納されたメモリバンクが全て衝突し、図6(f)において、符号NGで示したように、次のメモリサイクルに振り替えることもできなくなってしまい、データブロックY−1の読み出しを実行すべきタイミングが失われ、パケットYの送信が不可能となってしまう。
【0039】
このような事態を未然に防ぐためには、単に、各メモリサイクルにおいて、書込先のメモリバンクが重複しないだけでなく、前のメモリサイクルにおける書込バンクを考慮して、現メモリサイクルにおいて書込バンクを決定する必要がある。
図7に、書込バンク決定部の詳細構成を示す。
【0040】
図7に示した書込バンク決定部212において、書込履歴レジスタ231は、直前のN個の書込要求に応じて、この書込バンク決定部212によって書き込み先として選択されたメモリバンク202を示す情報を保持する。一方、読出バンクレジスタ232は、現メモリサイクルにおいてデータブロックが読み出されるN個のメモリバンク202の番号を図4に示した読出処理部220から受け取って、これらのメモリバンク202を示す情報を保持する。
【0041】
上述した書込履歴レジスタ231および読出バンクレジスタ232に保持された内容に基づいて、候補抽出部233は、現メモリサイクルにおいて書き込み先として選択することができるメモリバンク202の候補を抽出し、候補レジスタ234に抽出したメモリバンク202を示す情報を保持する。
また、図7に示した書込バンク決定部212において、巡回カウンタ235は、M個の番号(例えば、番号#0から#5まで)をメモリサイクルごとに循環的に計数し、現メモリサイクルにおける計数値を順位演算部236に通知する。
【0042】
この順位演算部236は、候補レジスタ234の内容と上述した巡回カウンタ235の計数値とに基づいて所定の演算を行ない、演算結果を優先順序を示す順位情報として順位レジスタ237に格納する。
この順位情報に基づいて、デコード部238は、上述した候補レジスタ234の内容と書込履歴レジスタ231の内容との組み合わせに対して、所定のデコード処理を行うことによって書込先となるN個のメモリバンク202を決定し、これらのメモリバンク202を書込制御部213に通知するとともに、これらのメモリバンク202を示す履歴情報を書込履歴レジスタ231に格納する。
【0043】
ここで、図7に示した各部と、図2に示した各手段との対応関係を説明する。
図7に示した書込履歴レジスタ231は、図1に示した履歴保持手段121に相当するものである。また、図1に示した候補収集手段122は、図7に示した読出バンクレジスタ232と候補抽出部233と候補レジスタ234とから形成されている。
【0044】
一方、図1に示した順位設定手段123の機能は、図7に示した巡回カウンタ235と、順位演算部236と、順位レジスタ237とによって果たされる。ここで、図7に示した巡回カウンタ235は、図1に示した巡回カウンタ125に相当するものである。また、順位演算部236が、順位レジスタ237を介して順位情報をデコード部238に渡すことにより、順位演算部236によって、優先候補選択手段126および順位決定手段127の機能が果たされ、また、デコード部238によって、図1に示した優先選択手段124の機能が果たされる。
【0045】
次に、この書込バンク決定部の動作を具体的な例を使って説明する。
図8に、書込バンク決定部の動作を説明する図を示す。
図9に、順位演算部の動作を説明する図を示す。
図8において、書込履歴レジスタ231(図7参照)は、2つのレジスタWR1,WR2から形成されており、これらのレジスタWR1,WR2の各ビットは、図4に示した6つのメモリバンク202にそれぞれ対応している。また、図8において、読出バンクレジスタ(RR)232、候補レジスタ(WC)234、順位レジスタ(MR)237およびデコード結果(DC)の各ビットも同様に、上述した6つのメモリバンク202にそれぞれ対応している。
【0046】
図8(a)に示すように、現メモリサイクルにおいてメモリバンク#0、#4からデータブロックを読み出し、前のメモリサイクルにおいてはメモリバンク#2、#3にデータブロックを書き込んでいた場合は、読出履歴レジスタRRの第0ビットおよび第4ビットに論理「1」がセットされ、また、書込履歴レジスタWR1の第2ビットおよび第3ビットに論理「1」がセットされる。なお、もう一つの書込履歴レジスタWR2は、前のメモリサイクルにおいて最初にデータブロックが書き込まれたメモリバンクを示しており、ここでは、第2ビットに論理「1」がセットされている。
【0047】
この場合に、候補抽出部233は、例えば、書込履歴レジスタWR1と読出履歴レジスタRRの各ビットについて否定論理和演算を行なうことにより、メモリバンク#1、#5を候補として抽出し、候補レジスタWCの該当するビットに論理「1」をセットする。
このようにして得られた候補レジスタWCの内容に基づいて、順位演算部236は、図9に示すように、それぞれ所定の規則に従って、巡回カウンタ235の計数値に対応する順位情報を算出する。
【0048】
図9において、演算子Σは、図8に示した候補レジスタWCの各ビットを、指定された範囲で加算する演算を示している。なお、この演算子Σによって加算される範囲は、メモリバンク202に与えられた番号#0〜#5を循環する数として捉えて決めている。すなわち、演算子Σを範囲「2−0」について実行する場合に、順位演算部236は、メモリバンク#2〜#5に対応する候補レジスタWCの各ビットとともに、メモリバンク#0に対応するビットの値を加算して、順序情報の該当するビットを算出する。
【0049】
したがって、例えば、図8(a)に示したような候補レジスタWCの内容に基づいて、順位演算部236は、図9に示したような順位情報P0〜P5をそれぞれ算出し、巡回カウンタ235の計数値に応じて、該当する順位情報を順位レジスタMRに格納する。もちろん、順位演算部236により、巡回カウンタ235の計数値に対応する順位情報のみを、上述した規則に従って算出してもよい。
【0050】
例えば、巡回カウンタ235の計数値が数値「4」であった場合に、順位演算部236は、図8に示したように、最大の優先順位である優先順位「0」をメモリバンク#4、#5に与え、次に優先度の高い優先順位「1」をメモリバンク#0、#1に与える旨の順位情報P4を選択し、順位レジスタMRにセットする。
これに応じて、デコード部238は、図8(a)に示すように、候補レジスタWCにおいて論理「1」がセットされた各ビットと、順位レジスタWRの対応するビットとを組み合わせて、各メモリバンク#0〜#5に対応するデコード結果を作成する。
【0051】
例えば、図8(a)に示したように、メモリバンク#5に対応してデコード結果[01]が得られ、メモリバンク#1に対応してデコード結果[10]が得られた場合に、デコード部238は、メモリバンク#5を優先順位「0」の書込バンクとして選択し、メモリバンク#1を優先順位「1」の書込バンクとして選択し、これらのメモリバンク202を示す情報を書込制御部213に通知する(図4参照)。
【0052】
このように、候補抽出部233によって抽出された候補に対して、巡回カウンタ235の計数値に応じて変化する優先順位を与えることにより、各メモリバンク202が書込バンクとして選択される確率を平準化することができる。
一方、図8(b)に示すように、候補レジスタWCにおいて論理「1」がセットされた各ビットと、順位レジスタWRの対応するビットとを組み合わせて得られるデコード結果において、優先順位「1」の書込バンクを示す組み合わせ[10]が存在しなかった場合に、デコード部238は、書込履歴レジスタWR2を参照し、この書込履歴レジスタWR2において論理「1」がセットされたビットに対応するメモリバンク(例えば、メモリバンク#3)を優先順位「1」の書込バンクとして選択する。
【0053】
上述したようにして、前のメモリサイクルにおける書込バンクを考慮して、現メモリサイクルにおける書込バンクを決定することにより、一つのメモリサイクルにおいて同時に実行される書込コマンドの数N(上述した例ではN=2)に数値「1」を加えた数以上の連続する書込コマンドにおいてそれぞれ異なる書込バンクを指定して、データブロックを書き込むことができる。これにより、図6に示したような問題を回避し、各メモリサイクルにおいて読出が指示されたデータブロックを遅くとも次のメモリサイクルまでに確実に読み出すことが可能となる。
【0054】
上述したようにして書込バンクを決定した後、デコード部238は、書込履歴レジスタWR1、WR2の全ビットをリセットした後、書込履歴レジスタWR1の第1ビットと第5ビットに論理「1」をセットするとともに、書込履歴レジスタWR2の第5ビットに論理「1」をセットして、次のメモリサイクルにおける動作に備える。
【0055】
次に、各メモリバンクからデータブロックを読み出す動作について説明する。
図10に、読出処理部およびレイテンシ制御部の詳細構成を示す。また、図11に、データブロックを読み出す動作を説明する図を示す。
図10に示した読出要求制御部221において、要求振分部241は、スケジューラ205から受け取ったリストに基づいて、各メモリバンク202に対する読出要求を対応する要求保持部242に振り分けて格納する。また、図10に示した読出制御部222において、要求読込部243は、各メモリバンク202に対応する要求保持部242から、所定の規則に従って読出要求を読み込み、コマンド作成部244に渡す。一方、図10に示したレイテンシ制御部205において、レイテンシFIFO245は、FIFO管理部246からの指示に従って、メモリ制御部201から受け取ったデータブロックを所定の期間だけ保持した後、読出データとして出力する。
【0056】
ここで、図10に示した各部と、図1および図3に示した各手段との対応関係について説明する。
図10に示したコマンド作成部244は、図1に示したデータ読出手段117に相当するものである。また、図1に示した第1読出バンク選択手段115および第2読出バンク選択手段116の機能は、図10に示した要求振分部241、要求保持部242および要求読込部243によって果たされる。一方、図10に示したレイテンシFIFO245は、図3に示した2次バッファ141に相当するものである。また、図3に示したタイマ142および出力制御部143の機能は、図10に示したFIFO管理部246が、後述するようにして、レイテンシFIFO245の動作を制御することによって果たされる。
【0057】
次に、図10および図11を参照して、スケジューラ205からの指示に応じて、各メモリバンクから適切なデータブロックを読み出す動作について説明する。
図10に示した要求保持部242は、図11に示すように、各メモリバンク202(図4参照)に対応する6つの記憶領域をそれぞれ備えたFIFO0およびFIFO1から形成されている。また、図11において、レイテンシFIFO245は、例えば、インデックス0からインデックス7までの各インデックスに対応して、データブロック(図11において符号dataとして示した)とそのデータブロックを出力するまでの残り時間を示すレイテンシ情報(図11において符号lat.として示した)とを格納する領域を備えている。また、図10に示したFIFO管理部246は、図11に示す読出バッファを備えており、この読出バッファは、各メモリバンクから読み出されるデータブロックを格納すべき記憶領域を示すインデックスを保持している。
【0058】
図10に示した要求振分部241は、まず、スケジューラ205から受け取ったリストに基づいて、各データブロックについての読出要求を作成するとともに、図10に示したレイテンシ制御部206のFIFO管理部246から、レイテンシFIFO245において、読出要求の対象となるデータブロックを格納すべき記憶領域を示すインデックスを受け取る。
【0059】
ここで、FIFO管理部246は、レイテンシFIFO245に備えられた8個の記憶領域を循環的に管理している。また、このFIFO管理部246は、出力待ちのデータブロックからなるキューの先頭が格納されている記憶領域を示すインデックスLHおよびキューの末尾を示すインデックスLTを保持しており、新たな読出要求の対象となるデータブロックを格納すべき記憶領域を示すインデックスとして、上述したインデックスLTを要求振分部241に通知した後、このインデックスLTをインデックス0からインデックス7の範囲で循環的にインクリメントすればよい。また、このとき、FIFO管理部246は、要求振分部241に渡したインデックスに対応するレイテンシ情報として、所定の初期値(例えば、数値「6」)を格納する。次に、対象となるデータブロックが格納されているメモリバンク202に応じて、図11に示したFIFO1の対応する記憶領域にそのデータブロックのアドレスとインデックスとを格納する。
【0060】
例えば、図11に示すように、新たな読出要求を格納すべきFIFO1の記憶領域(図11において網掛けを付して示す)に、既に別の読出要求が格納されている場合は、その読出要求をFIFO0の対応する記憶領域(図11において別の種類の網掛けを付して示す)に格納した上で、新たな読出要求をFIFO1に格納する。これにより、図11に示したリストに従って、FIFO1のメモリバンク#4に対応する記憶領域に格納されていたアドレスAd1 とインデックス7とが、FIFO0のメモリバンク#4に対応する記憶領域に移され、代わりに、アドレスAd2 とインデックス2との組み合わせが格納される。
【0061】
このように、FIFO0に読出要求が格納されている場合に、図10に示した要求読込部243は、各メモリサイクルにおいて、まず、FIFO0に格納されている読出要求を優先的に読み込み、次いで、上述した読出要求とは異なるメモリバンクに対応してFIFO1に格納されている読出要求を読み込んで、コマンド作成部244に渡す。
【0062】
例えば、図11に示したように、FIFO1のメモリバンク#0に対応する記憶領域にアドレスAd0 とインデックス1とが格納されていた場合は、要求読込部243により、この記憶領域に格納された読出要求が、上述したFIFO0のメモリバンク#4に対応する記憶領域に格納された読出要求とともに読み込まれ、これらの読出要求に応じて、コマンド作成部244により、それぞれ対応する読出コマンドが作成されて、メモリ制御部201に入力される。
【0063】
また、このとき、要求読込部243は、FIFO0およびFIFO1から各メモリバンクのアドレスとともに読み込んだインデックスを、FIFO管理部246に備えられた読出バッファに、メモリバンクに対応して格納する。このようにして読出バッファに格納されたインデックスに基づいて、FIFO管理部246は、該当するメモリバンク(例えば、メモリバンク#0およびメモリバンク#4)から読み出されたデータ(図11において、符号Da6および符号Da4を付して示す)を格納すべき記憶領域をレイテンシFIFO245に指示する。これに応じて、メモリ制御部201によって読み出されたデータDa6、Da4は、図11に示すように、それぞれインデックス1およびインデックス7に対応して格納される。
【0064】
上述したようにして、メモリ制御部201によって実際にデータブロックが読み出されるタイミングにかかわらず、スケジューラ205からリストを受け取った際に決定したインデックスに従って、読出要求の対象となるデータブロックをレイテンシFIFO245に格納することができる。
このようにしてレイテンシFIFO245に格納されたデータブロックは、次の手順に従って、順次に出力される。
【0065】
FIFO管理部246は、所定の時間ごとに、インデックスLHに対応するレイテンシ情報を参照し、レイテンシ情報が数値「0」に等しい場合は、このインデックスLHに対応して格納されたデータブロックを出力する旨をレイテンシFIFO245に指示する。これに応じて、レイテンシFIFO245から、例えば、図11に示すように、インデックス3に対応する記憶領域に格納されたデータブロックDa0が出力される。
【0066】
次いで、FIFO管理部246は、インデックスLHを循環的にインクリメントするとともに、各インデックスに対応するレイテンシ情報をデクリメントして、次の処理に備える。
このような手順を実行することにより、読出要求の発生と同時に初期値が設定されたレイテンシ情報を所定の時間ごとに減算していき、読出要求の発生からシステムレイテンシに相当する時間が経過したときに、該当するデータブロックをレイテンシFIFO245から出力させることができる。
【0067】
これにより、例えば、送信パケットの境界において読出先のメモリバンクの衝突が発生したために、一方のデータブロックについての読出処理の実行を次のメモリサイクルに振り替えた場合においても(図6参照)、そのデータブロックを、読出要求の発生からシステムレイテンシに相当する時間が経過したときに出力することができる。したがって、メモリバンクの衝突の発生にかかわらず、各パケットを確実に連続的に出力することができる。
【0068】
上述したようにして、新たなパケットの受信に応じた書込要求およびスケジューラ205からの読出要求を処理していくことにより、連続する複数の読出コマンドあるいは書込コマンドをそれぞれ異なるメモリバンクに対して発行する制御を実現することができる。
これにより、各メモリバンクに対する読出コマンドあるいは書込コマンドを入力する周期、即ち、メモリサイクルが、各データブロックについての読出要求あるいは書込要求が発生する周期よりも長い時間であるようなメモリ素子を用いて、パケットバッファに備えられたスケジューラ205から発行される読出要求および新たなパケットの受信に伴う書込要求を漏れなく処理することができる。したがって、データバッファ100を構成するメモリ素子として、幅広く市販されているDRAMなどの低価格の素子を利用することが可能隣、パケットバッファの低価格化を進めることができる。
【0069】
次に、DRAMを利用する際に必要となるリフレッシュ操作について説明する。
図12に、リフレッシュ制御部の詳細構成を示す。
図12に示したリフレッシュ制御部207において、読出バンクレジスタ(RB)251は、読出処理部220から現メモリサイクルでデータブロックの読出を行うメモリバンク202を示す情報を受け取り、対応するビットに論理「1」をセットする。また、書込バンクレジスタ(WB)252は、書込処理部210から現サイクルにおいてデータブロックを書き込むメモリバンク202を示す情報を受け取り、対応するビットに論理「1」をセットする。バンク抽出部253は、例えば、読出バンクレジスタ251および書込バンクレジスタ252の各ビットについて否定論理和演算を実行し、この演算結果をリフレッシュバンクレジスタ(RF)254の対応するビットに論理「1」をセットすることにより、現メモリサイクルにおいて、読み出しも書き込みも行なわれないメモリバンク202を抽出し、コマンド発行部255に渡す。コマンド発行部255は、リフレッシュバンクレジスタ254において論理「1」がセットされたビットに対応するメモリバンク202について、対応するアドレスカウンタ(AC)256の計数値に対応するアドレスからデータブロックを読み出す旨の読み出しコマンドを発行し、メモリ制御部201に入力する。
【0070】
ここで、図12に示した各部と、図3に示した各手段との対応関係を説明する。
図12に示した読出バンクレジスタ(RB)251、書込バンクレジスタ(WB)252およびバンク抽出部253は、図3に示したバンク検出手段131に相当する。一方、図3に示したコマンド発行手段132の機能は、リフレッシュバンクレジスタ(RF)254およびアドレスカウンタ(AC)256の内容に応じて、コマンド発行部255が、後述するようにして、読出コマンドを発行することにより果たしている。
【0071】
次に、読出コマンドを発行することにより、メモリバンクをリフレッシュする動作について説明する。
各メモリバンク202が、それぞれが複数の格納領域から形成されている複数の内部バンクから形成されている場合に、アドレスカウンタ256は、例えば、対応するメモリバンク202がリフレッシュバンクとして抽出されるごとに、内部バンクの数までを循環的に計数するバンクカウンタ(図示せず)と、このバンクカウンタの桁上がり信号に応じて計数値をインクリメントし、各内部バンクに備えられた格納領域の数までを循環的に計数する行カウンタ(図示せず)とを備え、このバンクカウンタおよび行カウンタの計数値の組み合わせをリフレッシュ対象のアドレスとしてコマンド発行部255に渡す。これに応じて、コマンド発行部255は、リフレッシュバンクとして抽出されたメモリバンク202の該当するアドレスからデータブロックを読み出す旨の読出コマンドを発行し、この読出コマンドに応じて、メモリ制御部201により、該当するデータブロックが読み出される。なお、このようにして読み出されたデータブロックは、図4に示したレイテンシ制御部206には送られず、そのまま廃棄される。
【0072】
このようにして、各メモリバンクがリフレッシュバンクとして抽出されるごとに、そのメモリバンクの各格納領域から順次にデータブロックを読み出すことができる。一般に知られているように、DRAMからデータを読み出す操作を実行することにより、該当するアドレスに対するリフレッシュ操作と同等の効果を得ることができる。また、上述した書込バンク決定部212の処理により、各パケットを形成するデータブロックは、複数のメモリバンク202に分散して書き込まれているので、図12に示したバンク抽出部253によって、各メモリバンク202がリフレッシュバンクとして抽出される確率は、ほぼ均等であることが期待できる。
【0073】
したがって、上述したようにして、現メモリサイクルにおいて空いているメモリバンクから擬似的にデータブロックを読み出す操作を行なっていくことにより、書込処理および読出処理を遅滞させることなく、DRAMに保持されたデータを保持することができる。これにより、安価に市販されているDRAMを利用して、高速に動作可能なパケットバッファを構成することが可能となり、パケットバッファの製造コストを削減することができる。
【0074】
以上の説明に関して、更に、以下の各項を開示する。
(付記1) 受信パケットをデータバッファ101に書き込み、品質識別手段102によって識別された品質クラスに応じて、スケジューラ103がデータバッファ101に書き込まれたパケットについての読み出し順序を調整する構成のパケットバッファにおいて、データバッファ101は、同時にアクセス可能なM個のメモリバンク104と、所定のメモリサイクルごとに、所定の数Nまでの読出コマンドおよび書込コマンドに応じて、前記メモリバンク104に対するアクセスを実行するアクセス手段105とを備えた構成であり、受信したパケットを所定のデータ長に基づいて、少なくとも一つのデータブロックに分割し、各データブロックについて書込要求を発行する書込要求手段111と、連続するN+1個の書込要求に応じてそれぞれ異なる前記メモリバンク104を選択する書込バンク選択手段112と、前記メモリサイクルごとに、前記書込要求手段111によって発行された書込要求から順に最大N個の書込要求を選択し、対応するデータブロックをそれぞれについて前記バンク選択手段112によって選択された前記メモリバンク104に書き込む旨の書込コマンドを前記アクセス手段105に入力するデータ書込手段113と、各パケットに対応するデータブロックそれぞれについて、それぞれが書き込まれた前記メモリバンク104およびアドレスに関する情報を管理するアドレス管理手段114と、メモリサイクルごとに、スケジューラ103からN個までのデータブロックについての読出要求を受け取り、前記アドレス管理手段114に保持されたアドレスに関する情報に基づいて、前記読出要求で指定されたデータブロックが格納された前記メモリバンク104の中から、同一のメモリサイクルにおいて読出可能なものを読出バンクとして選択する第1読出バンク選択手段115と、各メモリサイクルにおいて前記スケジューラ103から受信した読出要求のうち、そのメモリサイクルにおいて読み出しが実行されなかった読出要求を保持し、対応するメモリバンク104を次のメモリサイクルにおいて読出バンクとして選択する第2読出バンク選択手段116と、前記第1読出バンク選択手段115と前記第2読出バンク選択手段116とによって選択された読出バンクについての読出要求から順に所定の数Lまでの読出要求を選択し、それぞれ該当するメモリバンク104からデータブロックを読み出す旨の読出コマンドを前記アクセス手段105に入力するデータ読出手段117とを備えたことを特徴とするパケットバッファ。
【0075】
(付記2) アクセス手段105は、パケットを分割する基準となるデータ長に相当するデータ長を持つパケットが受信される周期と同一のメモリサイクルごとに、読出コマンドおよび書込コマンドを実行する構成であることを特徴とする付記1記載のパケットバッファ。
(付記3) データ読出手段117は、読出要求から順に、定数1.5に所定の数Nを乗じた数を超えない最大の整数Lまでの読出要求を選択する構成であり、データバッファ101は、前記整数Lに、前記所定の数Nおよび定数1を加えた数M個のメモリバンク104を備えた構成であることを特徴とする付記2に記載のパケットバッファ。
【0076】
(付記4) 書込バンク選択手段113は、過去N回の書込要求において書込バンクとして指定されたメモリバンク104のバンク番号を書込要求の履歴を表す情報として保持する履歴保持手段121と、前記書込要求の履歴を表す情報と、現在のメモリサイクルにおいてデータ読出手段117によってデータブロックの読み出しが行われるメモリバンク104を示すバンク番号とに基づいて、前記現在のメモリサイクルにおいてデータブロックの書き込みが可能なメモリバンク104を示すバンク番号を書込バンク候補として収集する候補収集手段122と、
前記候補収集手段122によって収集された各書込バンク候補に、所定の規則に従って優先順位を設定する順位設定手段123と、前記優先順位に従って、前記書込バンク候補からN個のバンク番号を選択し、書込バンクを示す情報としてデータ書込手段113に入力する優先選択手段124とを備えた構成であることを特徴とする付記1に記載のパケットバッファ。
【0077】
(付記5) 順位設定手段123は、書込要求ごとに、データバッファ101に備えられたメモリバンク104の数Mまでの自然数を巡回的に計数する巡回カウンタ125と、候補収集手段122によって収集された書込バンク候補から、履歴保持手段121に保持されたバンク番号以外であって、現在の読出バンクを示すバンク番号以外であるバンク番号を優先候補として選択する優先候補選択手段126と、前記巡回カウンタ125の計数で示されるバンク番号に基づいて、前記優先候補のいずれかに最高の優先順位を与える順位決定手段127とを備えた構成であることを特徴とする付記4に記載のパケットバッファ。
【0078】
(付記6) データバッファ101の各メモリバンク104はDRAMから形成されており、前記データバッファ101に入力される書込コマンドおよび読出コマンドに基づいて、アクセスの対象となっていないメモリバンク104を検出するバンク検出手段131と、前記各メモリバンク104に対応し、前記バンク検出手段131によって当該メモリバンク104が検出されるごとに、当該メモリバンク104を形成する記憶領域のいずれかを順次に読出対象とし、この読出対象からデータを読み出す旨の擬似読出コマンドを作成して前記データバッファ101に入力するコマンド発行手段132とを備えた構成であることを特徴とする付記1に記載のパケットバッファ。
【0079】
(付記7) データバッファ101から読み出されたデータを読出要求に対応して保持する2次バッファ141と、前記2次バッファ141にデータが保持されている読出要求について、それぞれ読出要求がスケジューラ103によって発行されてからの経過時間を監視し、所定の出力待機時間が経過したときに、当該読出要求の待機時間が終了した旨を示す待機完了通知を出力するタイマ142と、前記待機完了通知に応じて、該当する読出要求に対応して2次バッファ141に保持されたデータを出力する出力制御手段143とを備えた構成であることを特徴とする付記1に記載のパケットバッファ。
【0080】
【発明の効果】
以上に説明したように、請求項1の発明によれば、N個のデータブロックの書込処理とN個のデータブロックの読出処理とを同時に処理可能であり、また、メモリバンクを形成するメモリ素子の動作速度にかかわらず、読出要求および書込要求を漏れなく処理することが可能である。また、連続するデータブロックについてそれぞれ異なるメモリバンクに振り分けて書き込むので、パケットバッファに格納されたパケットを書き込んだ順序とは異なる順序で読み出した場合においても、各メモリサイクルにおいて、同一のメモリバンクに対する読み出しコマンドが連鎖的に重複する事態を回避することができる。
【0081】
また、請求項2の発明によれば、受信したデータを、その受信に要した時間内に、データバッファに書きこむことが可能であるので、パケットごとにランダムに読み出し順序をスケジューリングすることができる。なお、請求項2に記載のパケットバッファにおいて、付記3に記載した構成を採用することにより、メモリバンクの使用効率を最大とすることができる。
【0082】
更に、請求項3の発明によれば、書込バンクの候補に、所定の規則に従って優先順位を設定することにより、適切な書込バンクを選択するための指標を与えることができる。また、優先候補となるメモリバンクが複数存在した場合に、巡回カウンタの計数値に応じて最優先候補を選択する構成を採用することにより、最終的に書込バンクとして各メモリバンクが選択される確率を平均化することができ、複数のメモリバンクを平均的に使用することができる。
【0083】
また、請求項4の発明によれば、空いているメモリバンクの格納領域を順次に指定してデータブロックの読み出しを行なうことにより、該当する格納領域に対するリフレッシュ操作を実行した場合と同等の記憶保持効果を得ることができる。
一方、請求項5の発明によれば、各データブロックがデータバッファから読み出されたタイミングにかかわらず、そのデータブロックについての読み出し要求が発生した時点からの経過時間に応じてデータブロックを出力することができるので、パケットの境界などにおいて、読み出しに使用されるメモリバンクが衝突し、データブロックの読み出しを次のメモリサイクルに振り替えた場合においても、各パケットを形成するデータブロックを連続的に出力することができる。
【図面の簡単な説明】
【図1】請求項1および請求項2のパケットバッファの原理ブロック図である。
【図2】請求項3の発明の原理ブロック図である。
【図3】請求項4および請求項5の発明の原理ブロック図である。
【図4】本発明のパケットバッファの実施形態を示す図である。
【図5】本発明のパケットバッファの概略動作を説明する図である。
【図6】パケットバッファにおいて発生し得る問題を説明する図である。
【図7】書込バンク決定部の詳細構成を示す図である。
【図8】書込バンク決定部の動作を説明する図である。
【図9】順位演算部の動作を説明する図である。
【図10】読出処理部およびレイテンシ制御部の詳細構成を示す図である。
【図11】データブロックを読み出す動作を説明する図である。
【図12】リフレッシュ制御部の詳細構成を示す図である。
【図13】従来のパケットバッファの第1の構成例を示す図である。
【図14】従来のパケットバッファの第2の構成例を示す図である。
【符号の説明】
101 データバッファ
102 品質識別手段
103 スケジューラ
104 メモリバンク
105 アクセス手段
111 書込要求手段
112 書込バンク選択手段
113 データ書込手段
114 アドレス管理手段
115 第1読出バンク選択手段
116 第2読出バンク選択手段
117 データ読出手段
121 履歴保持手段
122 候補収集手段
123 順位設定手段
124 優先選択手段
125 巡回カウンタ
126 優先候補選択手段
127 順位決定手段
131 DRAM
131 バンク検出手段
132 バンク検出手段
132 コマンド発行手段
133 コマンド発行手段
134 擬似読出手段
201 メモリ制御部
202 メモリバンク
203 品質識別部
204 リスト制御部
205 スケジューラ
206 レイテンシ制御部
210 書込処理部
211 書込要求制御部
212 書込バンク決定部
213 書込制御部
220 読出処理部
221 読出要求制御部
222 読出制御部
231 書込履歴レジスタ
232 読出バンクレジスタ
233 候補抽出部
234 候補レジスタ
235 巡回カウンタ
236 順位演算部
237 順位レジスタ
238 デコード部
241 要求振分部
242 要求保持部
243 要求読込部
244 コマンド作成部
245 レイテンシFIFO
246 FIFO管理部
251 読出バンクレジスタ(RB)
252 書込バンクレジスタ(WB)
253 バンク抽出部
254 リフレッシュバンクレジスタ(RF)
255 コマンド発行部
256 アドレスカウンタ(AC)
411 品質判定部
412 スケジューラ
413 書込制御部
414 共通バッファ
415 読出制御部
421 FIFO
422 品質判定部
423 スケジューラ
424 バッファ選択部

Claims (5)

  1. 受信パケットをデータバッファに書き込み、品質識別手段によって識別された品質クラスに応じて、スケジューラがデータバッファに書き込まれたパケットについての読み出し順序を調整する構成のパケットバッファにおいて、
    データバッファは、
    所定の数Nとこの所定の数N以上であって前記所定の数Nに定数1 . 5を乗じた数以下の所定の数Lとの和を超える所定の数M個の同時にアクセス可能なメモリバンクと、
    所定のメモリサイクルごとに、所定の数Nまでの読出コマンドおよび書込コマンドに応じて、前記メモリバンクに対するアクセスを実行するアクセス手段とを備えた構成であり、
    受信したパケットを所定のデータ長に基づいて、少なくとも一つのデータブロックに分割し、各データブロックについて書込要求を発行する書込要求手段と、
    連続するN+1個の書込要求に応じてそれぞれ異なる前記メモリバンクを選択する書込バンク選択手段と、
    前記メモリサイクルごとに、前記書込要求手段によって発行された書込要求から順に最大N個の書込要求を選択し、対応するデータブロックをそれぞれについて前記バンク選択手段によって選択された前記メモリバンクに書き込む旨の書込コマンドを前記アクセス手段に入力するデータ書込手段と、
    各パケットに対応するデータブロックそれぞれについて、それぞれが書き込まれた前記メモリバンクおよびアドレスに関する情報を管理するアドレス管理手段と、
    メモリサイクルごとに、スケジューラからN個までのデータブロックについての読出要求を受け取り、前記アドレス管理手段に保持されたアドレスに関する情報に基づいて、前記読出要求で指定されたデータブロックが格納された前記メモリバンクの中から、同一のメモリサイクルにおいて読出可能なものを読出バンクとして選択する第1読出バンク選択手段と、
    各メモリサイクルにおいて前記スケジューラから受信した読出要求のうち、そのメモリサイクルにおいて読み出しが実行されなかった読出要求を保持し、対応するメモリバンクを次のメモリサイクルにおいて読出バンクとして選択する第2読出バンク選択手段と、
    前記第1読出バンク選択手段と前記第2読出バンク選択手段とによって選択された読出バンクについての読出要求から、前記第2読出バンク選択手段に保持された読出要求を優先して所定の数Lまでの読出要求を選択し、それぞれ該当するメモリバンクからデータブロックを読み出す旨の読出コマンドを前記アクセス手段に入力するデータ読出手段と
    を備えたことを特徴とするパケットバッファ。
  2. 請求項1に記載のパケットバッファにおいて、
    アクセス手段は、パケットを分割する基準となるデータ長に相当するデータ長を持つパケットが受信される周期と同一のメモリサイクルごとに、読出コマンドおよび書込コマンドを実行する構成である
    ことを特徴とするパケットバッファ。
  3. 請求項1に記載のパケットバッファにおいて、
    書込バンク選択手段は、
    過去N回の書込要求において書込バンクとして指定されたメモリバンクのバンク番号を書込要求の履歴を表す情報として保持する履歴保持手段と、
    前記書込要求の履歴を表す情報と、現在のメモリサイクルにおいてデータ読出手段によってデータブロックの読み出しが行われるメモリバンクを示すバンク番号とに基づいて、前記現在のメモリサイクルにおいてデータブロックの書き込みが可能なメモリバンクを示すバンク番号を書込バンク候補として収集する候補収集手段と、
    前記候補収集手段によって収集された各書込バンク候補に、所定の規則に従って優先順位を設定する順位設定手段と、
    前記優先順位に従って、前記書込バンク候補からN個のバンク番号を選択し、書込バンクを示す情報としてデータ書込手段に入力する優先選択手段とを備えた構成である
    ことを特徴とするパケットバッファ。
  4. 請求項1に記載のパケットバッファにおいて、
    データバッファの各メモリバンクはDRAMから形成されており、
    前記データバッファに入力される書込コマンドおよび読出コマンドに基づいて、アクセスの対象となっていないメモリバンクを検出するバンク検出手段と、
    前記各メモリバンクに対応し、前記バンク検出手段によって当該メモリバンクが検出されるごとに、当該メモリバンクを形成する記憶領域のいずれかを順次に読出対象とし、この読出対象からデータを読み出す旨の擬似読出コマンドを作成して前記データバッファに入力するコマンド発行手段とを備えた構成である
    ことを特徴とするパケットバッファ。
  5. 請求項1に記載のパケットバッファにおいて、
    データバッファから読み出されたデータを読出要求に対応して保持する2次バッファと、
    前記2次バッファにデータが保持されている読出要求について、それぞれ読出要求がスケジューラによって発行されてからの経過時間を監視し、所定の出力待機時間が経過したときに、当該読出要求の待機時間が終了した旨を示す待機完了通知を出力するタイマと、
    前記待機完了通知に応じて、該当する読出要求に対応して2次バッファに保持されたデータを出力する出力制御手段とを備えた構成である
    ことを特徴とするパケットバッファ。
JP2001143702A 2001-05-14 2001-05-14 パケットバッファ Expired - Fee Related JP3936550B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001143702A JP3936550B2 (ja) 2001-05-14 2001-05-14 パケットバッファ
US10/002,748 US7295553B2 (en) 2001-05-14 2001-11-15 Packet buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001143702A JP3936550B2 (ja) 2001-05-14 2001-05-14 パケットバッファ

Publications (2)

Publication Number Publication Date
JP2002344502A JP2002344502A (ja) 2002-11-29
JP3936550B2 true JP3936550B2 (ja) 2007-06-27

Family

ID=18989801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001143702A Expired - Fee Related JP3936550B2 (ja) 2001-05-14 2001-05-14 パケットバッファ

Country Status (2)

Country Link
US (1) US7295553B2 (ja)
JP (1) JP3936550B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918019B2 (en) * 2001-10-01 2005-07-12 Britestream Networks, Inc. Network and networking system for small discontiguous accesses to high-density memory devices
US7385993B2 (en) * 2001-12-21 2008-06-10 International Business Machines Corporation Queue scheduling mechanism in a data packet transmission system
US7339943B1 (en) 2002-05-10 2008-03-04 Altera Corporation Apparatus and method for queuing flow management between input, intermediate and output queues
US7606248B1 (en) 2002-05-10 2009-10-20 Altera Corporation Method and apparatus for using multiple network processors to achieve higher performance networking applications
US7320037B1 (en) * 2002-05-10 2008-01-15 Altera Corporation Method and apparatus for packet segmentation, enqueuing and queue servicing for multiple network processor architecture
US7336669B1 (en) 2002-05-20 2008-02-26 Altera Corporation Mechanism for distributing statistics across multiple elements
US7593334B1 (en) 2002-05-20 2009-09-22 Altera Corporation Method of policing network traffic
WO2004023745A1 (en) * 2002-09-06 2004-03-18 Infineon Technologies Ag Method and system for controlling bandwidth allocation
JP4004389B2 (ja) 2002-11-27 2007-11-07 富士通株式会社 バッファメモリ管理方法及びシステム
DE602004021371D1 (de) 2003-04-22 2009-07-16 Agere Systems Inc Verfahren und vorrichtung für einen gemeinsam benutzten mehrbankspeicher
US6922770B2 (en) * 2003-05-27 2005-07-26 Sony Corporation Memory controller providing dynamic arbitration of memory commands
US7457936B2 (en) * 2003-11-19 2008-11-25 Intel Corporation Memory access instruction vectorization
US7360035B2 (en) * 2004-09-01 2008-04-15 International Business Machines Corporation Atomic read/write support in a multi-module memory configuration
US8050280B2 (en) * 2004-12-02 2011-11-01 Electronics And Telecommunications Research Institute Efficient switching device and method for fabricating the same using multiple shared memories
US7606249B1 (en) * 2004-12-21 2009-10-20 Extreme Networks, Inc. Methods and systems for caching packets to be written to or read from packet memory
US20060221953A1 (en) * 2005-04-01 2006-10-05 Claude Basso Method and apparatus for blind checksum and correction for network transmissions
US7881332B2 (en) 2005-04-01 2011-02-01 International Business Machines Corporation Configurable ports for a host ethernet adapter
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US7508771B2 (en) * 2005-04-01 2009-03-24 International Business Machines Corporation Method for reducing latency in a host ethernet adapter (HEA)
US7903687B2 (en) * 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US7606166B2 (en) 2005-04-01 2009-10-20 International Business Machines Corporation System and method for computing a blind checksum in a host ethernet adapter (HEA)
US7492771B2 (en) 2005-04-01 2009-02-17 International Business Machines Corporation Method for performing a packet header lookup
US7577151B2 (en) * 2005-04-01 2009-08-18 International Business Machines Corporation Method and apparatus for providing a network connection table
US7706409B2 (en) 2005-04-01 2010-04-27 International Business Machines Corporation System and method for parsing, filtering, and computing the checksum in a host Ethernet adapter (HEA)
US7586936B2 (en) 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US8660137B2 (en) * 2005-09-29 2014-02-25 Broadcom Israel Research, Ltd. Method and system for quality of service and congestion management for converged network interface devices
JP2007114404A (ja) * 2005-10-19 2007-05-10 Matsushita Electric Ind Co Ltd データ処理装置、およびデータ処理方法
US8559451B2 (en) * 2007-03-06 2013-10-15 Marvell Israel (Misl) Ltd. Turbo decoder
JP5205956B2 (ja) * 2007-12-27 2013-06-05 富士通株式会社 メモリ制御装置
US20090193108A1 (en) * 2008-01-29 2009-07-30 George Shin Critical Resource Management
US8102690B2 (en) * 2009-10-12 2012-01-24 Nanya Technology Corp. Bank re-assignment in chip to reduce IR drop
JP5499346B2 (ja) * 2010-04-27 2014-05-21 ルネサスエレクトロニクス株式会社 半導体装置およびそれを用いた通信装置
JP2012169010A (ja) * 2011-02-15 2012-09-06 Nec Corp メモリシステム、バッファメモリ制御方法およびバッファメモリ制御プログラム
KR20170136382A (ko) * 2016-06-01 2017-12-11 주식회사 맴레이 메모리 컨트롤러, 그리고 이를 포함하는 메모리 모듈 및 프로세서
US11514996B2 (en) * 2017-07-30 2022-11-29 Neuroblade Ltd. Memory-based processors

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59109961A (ja) 1982-12-15 1984-06-25 Hitachi Ltd 主記憶制御方式
JP3315308B2 (ja) 1992-03-19 2002-08-19 株式会社東芝 クロック同期型半導体記憶装置およびそのアクセス方法
DE69305734T2 (de) 1993-06-30 1997-05-15 Ibm Programmierbare hochleistungsfähige Datenkommunikationsanpassung für Hochgeschwindigkeits-Paketübertragungsnetzwerke
JPH07221762A (ja) 1994-01-27 1995-08-18 Hitachi Ltd パケット処理方法および通信インターフェイス装置
US6233242B1 (en) 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with shared memory system
US6370144B1 (en) * 1997-11-05 2002-04-09 Polytechnic University Methods and apparatus for shaping queued packets using a two-dimensional RAM-based search engine
US7346063B1 (en) * 1998-07-08 2008-03-18 Broadcom Corporation Memory management unit for a network switch
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard

Also Published As

Publication number Publication date
JP2002344502A (ja) 2002-11-29
US7295553B2 (en) 2007-11-13
US20020169921A1 (en) 2002-11-14

Similar Documents

Publication Publication Date Title
JP3936550B2 (ja) パケットバッファ
USRE44151E1 (en) Switching ethernet controller
US6084856A (en) Method and apparatus for adjusting overflow buffers and flow control watermark levels
US6052751A (en) Method and apparatus for changing the number of access slots into a memory
US6088745A (en) Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space
WO2007004159A2 (en) Method and apparatus for bandwidth efficient and bounded latency packet buffering
JP5205956B2 (ja) メモリ制御装置
US7346067B2 (en) High efficiency data buffering in a computer network device
CN108366111B (zh) 一种用于交换设备的数据包低时延缓存装置与方法
CN105721355A (zh) 一种片上网络路由传输报文的方法及片上网络路由
WO2010020156A1 (zh) 一种混合业务流的缓存处理方法、存储转发方法及装置
US20100325327A1 (en) Programmable arbitration device and method therefor
US7352766B2 (en) High-speed memory having a modular structure
JP7074839B2 (ja) パケット処理
US7110405B2 (en) Multicast cell buffer for network switch
WO2024082747A1 (zh) 具有缓存的路由器、路由交换网络系统、芯片及路由方法
US7404058B2 (en) Method and apparatus for avoiding collisions during packet enqueue and dequeue
CN116955247B (zh) 一种缓存描述符管理装置及其方法、介质、芯片
US7751400B2 (en) Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to virtual hosts
US10318449B2 (en) System and method for memory access token reassignment
JP2570641B2 (ja) Atmスイッチにおける自己ルーチングスイッチ方法とその回路
CN107222435B (zh) 消除报文的交换头阻的方法及装置
JP3044653B2 (ja) ゲートウェイ装置
WO2010076649A2 (en) Packet processing system on chip device
JP5499346B2 (ja) 半導体装置およびそれを用いた通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060427

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: 20070320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070323

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: 20100330

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120330

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140330

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees