JP7241194B2 - メモリ管理方法及び装置 - Google Patents

メモリ管理方法及び装置 Download PDF

Info

Publication number
JP7241194B2
JP7241194B2 JP2021549288A JP2021549288A JP7241194B2 JP 7241194 B2 JP7241194 B2 JP 7241194B2 JP 2021549288 A JP2021549288 A JP 2021549288A JP 2021549288 A JP2021549288 A JP 2021549288A JP 7241194 B2 JP7241194 B2 JP 7241194B2
Authority
JP
Japan
Prior art keywords
packet
queue
memory
packet queue
parameter value
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.)
Active
Application number
JP2021549288A
Other languages
English (en)
Other versions
JP2022523195A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2022523195A publication Critical patent/JP2022523195A/ja
Application granted granted Critical
Publication of JP7241194B2 publication Critical patent/JP7241194B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/562Attaching a time tag to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • H04L49/503Policing
    • 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
    • H04L49/9021Plurality of buffers per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本願は通信技術の分野に関し、特に、メモリ管理方法及び装置に関する。
ネットワーク装置はメモリを含む。メモリはバッファ(buffer)とも呼ばれ得る。メモリはパケットキューを記憶し得る。パケットを受信する時、ネットワーク装置はパケットをパケットキューにエンキューし得る。
既存の解決策では、パケットキュー内の最後のパケットがパケットキューに残る必要がある継続時間に基づいてパケットキューを管理する必要がある。前述の解決策は比較的複雑であり、比較的高いオーバーヘッドをもたらす。
本願の実施形態は、高い実施の複雑さ及び比較的高いオーバーヘッドという先行技術の課題を解決するためにメモリ管理方法及び装置を提供する。
第1の態様によれば、本願の実施形態は、ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することであって、該第1の閾値は0よりも大きく、該第1のメモリは第1のパケットキューを記憶する、ことと、前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することと、を含む、 メモリ管理方法を提供する。
上述の解決策によれば、第1のメモリの利用可能な記憶領域が第1の閾値より小さい場合、パケットキュー、すなわち、第1のパケットキューが選択され、パケットキューの末尾にあるパケットが第1のメモリから削除される。したがって、パケットキュー管理の複雑さは比較的低く、オーバーヘッドは比較的低い。
例えば、本願のこの実施形態で説明される第1のメモリ又は第2のメモリは具体的にはバッファであり得る。
可能な設計では、前記第1のパケットキューは、前記第1のメモリに記憶された複数のパケットキューのうちの1つであり、前記第1のパケットキューのパラメータ値は、前記複数のパケットキューのうちの別のパケットキューのパラメータ値よりも大きく、パケットキューのパラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキュー内に留まることが予想される期間である。
前述の設計では、パラメータ値が最も大きいパケットキューが第1のパケットキューとして選択され、パラメータ値が最も大きい第1のパケットキューの末尾にあるパケットが削除されるため、比較的レイテンシが大きいパケットが、第1のメモリのリソースを長時間占有することある程度防ぎ、第1のメモリの利用を改善できる。加えて、メモリが満杯であるために引き起こされるレイテンシが低い後続パケットのパケット損失をある程度回避でき、パケット損失率を低減できる。
可能な設計では、前記ネットワーク装置はキュー情報テーブルを記憶し、該キュー情報テーブルは、前記第1のパケットキューのパラメータ値及び前記第1のパケットキューの識別子を記録し、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することは、前記キュー情報テーブルに記録された前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定し、前記第1のメモリから前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除すること、を含む。
前述の設計では、キュー情報テーブルがパケットキューのパラメータ値を記録することは簡素であり且つ実施が容易であり、複雑性が低い。
可能な設計では、前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、
前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することの後に、前記方法は、
前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶することと、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を更新することと、をさらに含み、
前記第1のパケットキューのパラメータ値が前記第1のパケットキューのレイテンシである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリから前記少なくとも1つのパケットが削除される時から始まる、第1のパケットが前記第1のパケットキュー内に留まることが予想される期間であり、該第1のパケットは前記第1のパケットキュー内のパケットであり、前記第1のパケットは前記少なくとも1つのパケットに隣接し、前記第1のパケットは前記少なくとも1つのパケットの前に位置し、又は前記第1のパケットキューのパラメータ値が前記第1のパケットキューの長さである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリに記憶され、前記少なくとも1つのパケットが削除される前記第1のパケットキューの長さである。
前述の設計において、第1のメモリに記憶されたパケットキューの末端にあるパケットに基づいてパラメータ値が算出される場合、精度は比較的高い。
本願のこの実施形態では、メモリの帯域幅は、データがメモリに記憶される(書き込まれる)レート又はデータがメモリから読み出されるレートであると理解すべきである。第2のメモリの帯域幅が第1のメモリの帯域幅よりも小さいことは、第1のメモリにデータが記憶されるレートが、第2のメモリにデータが記憶されるレートよりも大きいこと又は第1のメモリからデータが読み出されるレートが、第2のメモリからデータが読み出されるレートよりも大きいことを意味する。
可能な設計では、前記方法は、前記キュー情報テーブルに前記第1のパケットの識別子を記憶することをさらに含む。
前述の設計では、第1のメモリに記憶された第1のパケットキューの末端にある第1のパケットの識別子がキュー情報テーブルに記憶されるため、第1のメモリに記憶された第1のパケットキューの末尾にあるパケットがその後に削除される。
可能な設計では、前記方法は、第2のパケットを受信することと、前記第2のパケットを第2のパケットキューにエンキューすることと、前記第2のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値を特定することと、前記第のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値が、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値よりも大きい場合に、前記キュー情報テーブルに記録された前記第1のパケットキューの識別子を前記第2のパケットキューの識別子で置き換え、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を前記第2のパケットキューのパラメータ値で置き換えることと、をさらに含む。
前述の設計では、パケットがエンキューされた場合、キュー情報テーブルがリアルタイムに更新されるため、第1のパケットキューがパケットキューのパラメータ値に基づいて選択される場合、複雑性が低く、精度が比較的高い。
可能な設計では、前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、前記第1のメモリは第3のパケットキューをさらに記憶し、
前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することの後に、前記方法は、
前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶すること、
をさらに含み、
前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することの後に、前記方法は、
前記第1のメモリの利用可能な記憶領域が第2の閾値よりも小さいと判定することであって、該第2の閾値は前記第1の閾値よりも小さく、該第2の閾値は0よりも大きい、ことと、
前記第1のメモリの利用可能な記憶領域が前記第2の閾値よりも小さいことに基づいて、前記第1のメモリから、前記第3のパケットキューの末尾にある少なくとも1つのパケットを削除し、前記第2のメモリに前記第3のパケットキューの末尾にある前記少なくとも1つのパケットを記憶するのを回避することと、をさらに含む。
前述の設計において、第1のメモリの記憶領域が著しく不足している場合、すなわち、第2の閾値よりも小さい場合、マイグレーション動作のために1つのパケットキューが選択され(パケットキューが第1のメモリから削除され、第2のメモリに記憶される)、別のパケットキューが削除動作のために選択されるため、パラメータ値が比較的小さい新たなパケットのために第1のメモリの記憶領域をより迅速に温存することができる。このように、第1のメモリの利用を改善でき、パケット損失率を低減できる。
可能な設計では、第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除することの後で、前記方法は、
第1のパケットキューにエンキューすべき第3のパケットを受信することと、
第1のパケットキューが第1の条件及び第2の条件のうちの少なくとも1つを満たす場合に、第3のパケットを第2のメモリに記憶すること、又は
第1のパケットキューが第1の条件も第2の条件も満たさない場合に、第3のパケットを第1のメモリに記憶すること、をさらに含み、
前記第1の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの長さが第3の閾値よりも小さいことであり、第3の閾値は0よりも大きく、
前記第2の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの末尾にあるパケットが第1のパケットキューに留まることが予想される期間が第4の閾値よりも小さいことであり、第4の閾値が0よりも大きい。
前述の設計では、(マイグレーション又は削除処理が行われる)第1のパケットキューに新たにエンキューされたパケットについて、第1のパケットキューが比較的長いか又は第1のパケットキューのレイテンシが比較的長い場合に、パラメータ値が比較的小さい新たなパケットのために十分なスペースを提供するために、新たにエンキューされたパケットが第2のメモリに直接記憶される。したがって、第1のメモリの利用を改善でき、パケット損失率を低減できる。
可能な設計では、第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除することの後で、前記方法は、
第1のパケットキューにエンキューすべき第3のパケットを受信することと、
第1のパケットキューが第1の条件及び第2の条件のうちの少なくとも1つを満たす場合に、第1のメモリに第3のパケットを記憶するのを回避すること、又は
第1のパケットキューが第1の条件も第2の条件も満たさない場合に、第3のパケットを第1のメモリに記憶すること、をさらに含み、
前記第1の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの長さが第3の閾値よりも小さいことであり、第3の閾値は0よりも大きく、
前記第2の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの末尾にあるパケットが第1のパケットキューに留まることが予想される期間が第4の閾値よりも小さいことであり、第4の閾値が0よりも大きい。
前述の設計では、(マイグレーション又は削除処理が行われる)第1のパケットキューに新たにエンキューされたパケットについて、第1のパケットキューが比較的長いか又は第1のパケットキューのレイテンシが比較的長い場合に、パラメータ値が比較的小さい新たなパケットのために十分なスペースを提供するために、新たにエンキューされたパケットが直接破棄される。したがって、第1のメモリの利用を改善でき、パケット損失率を低減できる。
可能な設計では、前記第1のパケットキューは、第1のパケットキューセットに含まれる複数のパケットキューのうちの1つであり、該第1のパケットキューセット内の各パケットキューのパラメータ値は、第2のパケットキューセットに含まれる複数のパケットキューのそれぞれのパラメータ値よりも大きく、前記第1のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記第2のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記ネットワーク装置は、前記第1のパケットキューセットの識別子及び前記第2のパケットキューセットの識別子を記憶し、
パケットキューのパラメータ値は、パケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキューに留まることが予想される期間であり、
前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することは、
前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定することと、
前記第1のメモリから、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除することと、を含む。
前述の設計では、セット内のパラメータ値が比較的大きいパケットキューが第1のパケットキューとして選択され、選択された第1のパケットキューの末尾にあるパケットが削除されるため、レイテンシが比較的高いパケットが第1のメモリのリソースを長期間占有することを程度防止でき、第1のメモリの利用を改善できる。加えて、メモリが満杯であるために引き起こされるレイテンシが低い後続パケットのパケット損失をある程度回避でき、パケット損失率を低減できる。
可能な設計では、前記ネットワーク装置は、前記第1のパケットキューセットに対応する第1のリンクリストを記憶し、該第1のリンクリストに含まれる複数のノードは、前記第1のパケットキューセット内の前記複数のパケットキューと1対1の対応関係にあり、前記第1のリンクリスト内の各ノードは対応するパケットキューの識別子を含み、
前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定することは、
前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のリンクリストを特定することと、
前記第1のリンクリスト内の前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定することと、
を含む。
リンクリストを用いることによって、セット内で順次接続されるパケットキューは簡素で実施が容易であり、複雑性が低い。
第2の態様によれば、本願の実施形態は、
ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することを行うように構成された判定ユニットであって、該第1の閾値は0よりも大きく、該第1のメモリは第1のパケットキューを記憶する、判定ユニットと、
前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することを行うように構成された管理ユニットと、
を含むメモリ管理装置を提供する。
可能な設計では、前記第1のパケットキューは、前記第1のメモリに記憶された複数のパケットキューのうちの1つであり、前記第1のパケットキューのパラメータ値は、前記複数のパケットキューのうちの別のパケットキューのパラメータ値よりも大きく、パケットキューのパラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキュー内に留まることが予想される期間である。
可能な設計では、前記ネットワーク装置はキュー情報テーブルを記憶し、該キュー情報テーブルは、前記第1のパケットキューのパラメータ値及び前記第1のパケットキューの識別子を記録し、
前記管理ユニットは、前記キュー情報テーブルに記録されている前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定することと、前記第1のメモリから前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除することを行うように具体的に構成されている。
可能な設計では、前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、
前記管理ユニットは、前記判定ユニットが前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定した後に、前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶し、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を更新することを行うようにさらに構成され、
前記第1のパケットキューのパラメータ値が前記第1のパケットキューのレイテンシである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリから前記少なくとも1つのパケットが削除される時から始まる、第1のパケットが前記第1のパケットキュー内に留まることが予想される期間であり、該第1のパケットは前記第1のパケットキュー内のパケットであり、前記第1のパケットは前記少なくとも1つのパケットに隣接し、前記第1のパケットは前記少なくとも1つのパケットの前に位置し、又は前記第1のパケットキューのパラメータ値が前記第1のパケットキューの長さである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリに記憶され、前記少なくとも1つのパケットが削除される前記第1のパケットキューの長さである。
可能な設計では、前記管理ユニットは、前記キュー情報テーブルに前記第1のパケットの識別子を記憶することを行うようにさらに構成されている。
可能な設計では、前記装置は、
第2のパケットを受信するように構成された受信ユニットをさらに含み、
前記管理ユニットは、前記第2のパケットを第2のパケットキューにエンキューすることと、前記第2のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値を特定することと、前記第のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値が、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値よりも大きい場合に、前記キュー情報テーブルに記録された前記第1のパケットキューの識別子を前記第2のパケットキューの識別子で置き換え、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を前記第2のパケットキューのパラメータ値で置き換えることと、を行うようにさらに構成されている。
可能な設計では、前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、前記第1のメモリは第3のパケットキューをさらに記憶し、
前記管理ユニットは、前記判定ユニットが前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定した後に、前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶することを行うようにさらに構成され、
前記判定ユニットは、前記管理ユニットが、前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除した後に、前記第1のメモリの利用可能な記憶領域が第2の閾値よりも小さいと判定することを行うようさらに構成され、該第2の閾値は前記第1の閾値よりも小さく、該第2の閾値は0よりも大きく、
前記管理ユニットは、前記第1のメモリの利用可能な記憶領域が前記第2の閾値よりも小さいことに基づいて、前記第1のメモリから、前記第3のパケットキューの末尾にある少なくとも1つのパケットを削除し、前記第2のメモリに前記第3のパケットキューの末尾にある前記少なくとも1つのパケットを記憶するのを回避することを行うようにさらに構成されている。
可能な設計では、前記装置は、
前記管理ユニットが前記第1のメモリから前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除した後に、前記第1のパケットキューにエンキューすべき第3のパケットを受信するように構成された受信ユニットをさらに含み、
前記管理ユニットは、前記第1のパケットキューが第1の条件及び第2の条件のうちの少なくとも1つを満たす場合に、前記第3のパケットを前記第2のメモリに記憶すること、又は
前記第1のパケットキューが第1の条件も第2の条件も満たさない場合に、前記第3のパケットを前記第1のメモリに記憶することを行うようにさらに構成され、
前記第1の条件は、前記第3のパケットが前記第1のパケットキューにエンキューされているかどうかが判定される場合に、前記第1のメモリ及び前記第2のメモリに記憶されている前記第1のパケットキューの長さが第3の閾値よりも小さいことであり、該第3の閾値は0よりも大きく、
前記第2の条件は、前記第3のパケットが前記第1のパケットキューにエンキューされているかどうかが判定される場合に、前記第1のメモリ及び前記第2のメモリに記憶されている前記第1のパケットキューの末尾にあるパケットが前記第1のパケットキューに留まることが予想される期間が第4の閾値よりも小さいことであり、該第4の閾値が0よりも大きい。
可能な設計では、前記装置は、
前記管理ユニットが前記第1のメモリから前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除した後に、前記第1のパケットキューにエンキューすべき第3のパケットを受信するように構成された受信ユニットをさらに含み、
前記管理ユニットは、前記第1のパケットキューが第1の条件及び第2の条件のうちの少なくとも1つを満たす場合に、前記第3のパケットを前記第1のメモリに記憶するのを回避すること、又は
前記第1のパケットキューが第1の条件も第2の条件も満たさない場合に、前記第3のパケットを前記第1のメモリに記憶することを行うようにさらに構成され、
前記第1の条件は、前記第3のパケットが前記第1のパケットキューにエンキューされているかどうかが判定される場合に、前記第1のメモリ及び前記第2のメモリに記憶されている前記第1のパケットキューの長さが第3の閾値よりも小さいことであり、該第3の閾値は0よりも大きく、
前記第2の条件は、前記第3のパケットが前記第1のパケットキューにエンキューされているかどうかが判定される場合に、前記第1のメモリ及び前記第2のメモリに記憶されている前記第1のパケットキューの末尾にあるパケットが前記第1のパケットキューに留まることが予想される期間が第4の閾値よりも小さいことであり、該第4の閾値は0よりも大きい。
可能な設計では、前記第1のパケットキューは、第1のパケットキューセットに含まれる複数のパケットキューのうちの1つであり、該第1のパケットキューセット内の各パケットキューのパラメータ値は、第2のパケットキューセットに含まれる複数のパケットキューのそれぞれのパラメータ値よりも大きく、前記第1のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記第2のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記ネットワーク装置は、前記第1のパケットキューセットの識別子及び前記第2のパケットキューセットの識別子を記憶し、
パケットキューのパラメータ値は、パケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキューに留まることが予想される期間であり、
前記管理ユニットは、前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定することと、前記第1のメモリから、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除することと、を行うように具体的に構成されている。
可能な設計では、前記ネットワーク装置は、前記第1のパケットキューセットに対応する第1のリンクリストを記憶し、該第1のリンクリストに含まれる複数のノードは、前記第1のパケットキューセット内の前記複数のパケットキューと1対1の対応関係にあり、前記第1のリンクリスト内の各ノードは対応するパケットキューの識別子を含み、
前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定する場合、前記管理ユニットは、前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のリンクリストを特定することと、前記第1のリンクリスト内の前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定することと、を行うように具体的に構成されている。
第3の態様によれば、装置が提供される。装置は、第1の態様又は第1の態様の任意の可能な設計で提供される方法を行うように構成され得る。装置は、プロセッサと、プロセッサに連結されるメモリとを含む。メモリはコンピュータプログラムを記憶する。プロセッサがコンピュータプログラムを実行した場合、装置は、第1の態様又は第1の態様の任意の可能な設計で提供される方法を行うことができる。
第4の態様によれば、コンピュータ読み取り可能記憶媒体が提供される。コンピュータ読み取り可能記憶媒体はコンピュータプログラムを記憶するように構成されている。コンピュータプログラムが実行された場合、コンピュータは、第1の態様又は第1の態様の任意の可能な設計で提供される方法を行うことができ得る。
可能な設計では、コンピュータ読み取り可能記憶媒体は不揮発性コンピュータ読み取り可能記憶媒体であり得る。
可能な設計では、コンピュータはネットワーク装置であり得る。
可能な設計では、ネットワーク装置は転送装置であり得る。転送装置は、ルーター、ネットワークスイッチ、ファイアウォール又はロードバランサであり得る。
第5の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品はコンピュータプログラムを含む。コンピュータプログラムが実行された場合、コンピュータは、第1の態様又は第1の態様の任意の可能な設計で提供される方法を行うことが可能であり得る。
図1は、本願の一実施形態に係るネットワークの構造図である。 図2は、本願の一実施形態に係るルーターの概略構造図である。 図3は、本願の一実施形態に係るインターフェイスボードの概略構造図である。 図4は、本願の一実施形態に係るインターフェイスボードの概略構造図である。 図5Aは、本願の一実施形態に係るメモリ管理方法の概略フローチャートである。 図5Bは、本願の一実施形態に係るアラーム領域及び禁止領域の概略図である。 図6Aは、本願の一実施形態に係るトラフィックマネージャと第1のメモリとの関係の概略図である。 図6Bは、本願の一実施形態に係るトラフィックマネージャと第1のメモリとの関係の別の概略図である。 図7Aは、本願の一実施形態に係るマイグレーション前に得られたパケットキュー1の概略図である。 図7Bは、本願の一実施形態に係るマイグレーション後に得られたパケットキュー1の概略図である。 図8は、本願の一実施形態に係るパケットキューセットの概略図である。 図9A及び図9Bは、本願の一実施形態に係る、マイグレーションのために第1のパケットキューを選択する概略フローチャートである。 図10A及び図10Bは、本願の実施形態に係るハッシュアルゴリズムを用いることによるマイグレーションの実施の概略図である。 図11A及び図11Bは、本願の一実施形態に係るハッシュアルゴリズムを用いることによるマイグレーションの実施の別の概略図である。 図12A及び図12Bは、本願の一実施形態に係るハッシュアルゴリズムを用いることによる一般メモリのためのマイグレーションの実施の概略図である。 図13は、本願の一実施形態に係るメモリ管理装置の概略構造図である。 図14は、本願の一実施形態に係るメモリ管理装置の概略構造図である。
データ通信分野では、パケットは、複数の転送装置によって転送された後に宛先に到達し得る。転送装置はルーターであり得る。ルーターはインターネットプロトコル(internet protocol、IP)パケットを転送し得る。転送装置はネットワークスイッチであり得る。ネットワークスイッチはイーサネットフレームを転送し得る。転送装置は、代替的にファイアウォール、ロードバランサ等であり得る。本願の実施形態で言及されるネットワーク装置は転送装置であり得る。
図1は、本願に係るネットワークの構造図である。図1を参照して、ネットワークの構造図は7つのルーター(それぞれ、ルーター1~ルーター7)を含む。各ルーターは複数の物理インターフェイスカードを含み得る。各物理インターフェイスカードは複数のポートを含み得る。図1は、ルーター1にある2つの出口ポート(第1の出口ポート及び第2の出口ポート)と、ルーター2にある2つの出口ポート(第3の出口ポート及び第4の出口ポート)を示す。ルーター1は、第1の出口ポートを介してルーター2に接続されている。ルーター1は、第2の出口ポートを介してルーター3に接続されている。ルーター2は第3の出口ポートを介してルーター4に接続されている。ルーター2は第4の出口ポートを介してルーター5に接続されている。
ルーター1がパケットを受信した後で、ルーター1はパケットを転送するための出口ポート、例えば第1の出口ポートを決定し、第1の出口ポートからパケットを転送する。ルーター2がルーター1によって転送されたパケットを受信した後で、ルーター2はパケットを転送するための出力ポート、例えば、第3の出力ポートを決定し、第3の出力ポートからパケットを転送する。
図2は、図1のルーター2の可能な概略構造図である。図1における別のルーター(例えば、ルーター1)も図2に示す概略構造図を用いり得る。
図2を参照して、ルーター2は、制御ボード1210、スイッチングボード1220、インターフェイスボード1230及びインターフェイスボード1240を含む。制御ボード1210は中央処理装置1211を含む。制御ボード1210は、ルーティングプロトコルを実行するように構成され得る。ルーティングプロトコルはボーダーゲートウェイプロトコル(border gateway protocol、BGP)又はインテリアゲートウェイプロトコル(interior gateway protocol、IGP)であり得る。制御ボード1210は、ルーティングプロトコルを実行することによってルーティングテーブルを生成し、ルーティングテーブルをインターフェイスボード1230及び1240に送信し得る。なお、図1のルーター2は、代わりに図2に示す構造とは異なる構造を用いり得る。例えば、図1のルーター2は1つの制御ボード及び1つのインターフェイスボードのみを含み、スイッチングボードは含まなくてもよい。もちろん、図1のルーター2は少なくとも2つのインターフェイスボードを含み得る。ルーター2が1つのインターフェイスボードのみを含み、スイッチングボードを含んでいない場合、インターフェイスボードによって処理された後で、インターフェイスボードの入口ポートを通して受信されたIPパケットは、インターフェイスボードの出口ポートを介して送信され得る。ルーター2が複数のインターフェイスボードを含み、スイッチングボードを含む場合、ルーター2のインターフェイスボードの入口ポートを介して受信されたIPパケットは、スイッチングボードによって処理された後で、ルーター2の別のインターフェイスボードの出口ポートを介して送信され得る。図1のルーター2及び別のルーターの特定の構造は、本願では限定されない。
インターフェイスボード1230は、ルーティングテーブルをサーチすることによりIPパケットを転送し得る。具体的には、インターフェイスボード1230は、中央処理装置1231、ネットワークプロセッサ1232、物理インターフェイスカード1233及びメモリ1234を含む。なお、図2はインターフェイスボード1230に含まれ得る全てのコンポーネントを示していない。特定の実施の間、インターフェイスボード1230は別のコンポーネントをさらに含み得る。例えば、インターフェイスボード1230がキューのスケジューリング及び管理機能を有することができるようにするために、インターフェイスボード1230はトラフィックマネージャをさらに含み得る。加えて、スイッチングボード1220を用いることによって、インターフェイスボード1230からインターフェイスボード1240にパケットを切り替えることができるように、インターフェイスボード1230は、入口ファブリックインターフェイスチップ(ingress fabric interface chip、iFIC)をさらに含み得る。トラフィックマネージャ及びiFICを含むインターフェイスボード1230の特定の実施については、図3及び対応する説明を参照されたい。中央処理装置1231は中央処理装置1211から送信されたルーティングテーブルを受信し、そのルーティングテーブルをメモリ1234に記憶し得る。物理インターフェイスカード1233は、ルーター1によって送信されたIPパケットを受信するように構成され得る。ネットワークプロセッサ1232は、物理インターフェイスカード1233によって受信されたIPパケットに合致するルーティングエントリを探すためにメモリ1234内のルーティングテーブルを検索し、合致したルーティングエントリに基づいてIPパケットをスイッチングボード1220に送信し得る。スイッチングボード1220は、インターフェイスボードから他のインターフェイスボードにIPパケットを切り替えるように構成され得る。例えば、スイッチングボード1220は、インターフェイスボード1230からインターフェイスボード1240にIPパケットを切り替え得る。具体的には、スイッチングボード1220は、セルスイッチングを介してインターフェイスボード1230からインターフェイスボード1240にIPパケットを切り替え得る。例えば、ネットワークプロセッサ1232は、IPパケット内の宛先IPアドレスを取得し得る。ネットワークプロセッサ1232は、最長プレフィックス一致アルゴリズムに基づいて、IPパケットに合致するルーティングエントリを探すためにルーティングテーブルを検索し、IPパケットに合致するルーティングエントリに基づいて出口ポートを決定し得る。IPパケットに合致するルーティングエントリは、出口ポートの識別子を含む。ネットワークプロセッサ1232によってスイッチングボード1220に送信されるIPパケットがスイッチングボード1220に届く前に、インターフェイスボード1230は、IPパケットに対してキュースケジューリング及び管理を行い得る。具体的には、インターフェイスボード1230は、図3のトラフィックマネージャ301を用いることによってIPパケットに対してキュースケジューリング及び管理を行い得る。
インターフェイスボード1240は、ルーティングテーブルを検索することによってIPパケットを転送し得る。インターフェイスボード1240は、中央処理装置1241、ネットワークプロセッサ1242、物理インターフェイスカード1243及びメモリ1244を含む。図2は、インターフェイスボード1240に含まれ得る全てのコンポーネントを示していない。特定の実施の間、インターフェイスボード1240は別のコンポーネントをさらに含み得る。例えば、インターフェイスボード1240がキューのスケジューリング及び管理機能を有することができるように、インターフェイスボード1240はトラフィックマネージャをさらに含み得る。加えて、スイッチングボード1220を用いることにより、インターフェイスボード1240がインターフェイスボード1230からのパケットを正しく受信できるようにするために、インターフェイスボード1240は、出口ファブリックインターフェイスチップ(egress fabric interface chip、eFIC)をさらに含み得る。トラフィックマネージャ及びeFICを含むインターフェイスボード1240の特定の実施については、図4及び対応する説明を参照されたい。中央処理装置1241は、中央処理装置1211によって送信されたルーティングテーブルを受信し、そのルーティングテーブルをメモリ1244に記憶し得る。ネットワークプロセッサ1242は、スイッチングボード1220からIPパケットを受信するように構成され得る。スイッチングボード1220からのIPパケットは、ルーター1によって送信され、物理インターフェイスカード1233によって受信されるIPパケットであり得る。ネットワークプロセッサ1242は、スイッチングボード1220からのIPパケットに合致するルーティングエントリを探すためにメモリ1244内のルーティングテーブルを検索し、合致したルーティングエントリに基づいて、IPパケットを物理インターフェイスカード1243に送信する。物理インターフェイスカード1243は、ルーター4にIPパケットを送信するように構成され得る。ネットワークプロセッサ1242によって物理インターフェイスカード1243に送信されるIPパケットが物理インターフェイスカード1243に届く前に、インターフェイスボード1240は、IPパケットに対してキュースケジューリング及び管理を行い得る。具体的には、インターフェイスボード1240は、図4のトラフィックマネージャ402を用いることにより、IPパケットに対してキュースケジューリング及び管理を行う得る。
複数のパケットをネットワークで送信する必要があり、パケットの送信時間は異なり得る。ネットワーク内で送信されるパケットが不規則になる可能性を低減するために、ルーターはメモリを含む。メモリは、先入れ先出しメモリ(first in first out memory)であり得る。ルーターは、メモリを用いることにより、転送すべきパケットに対してキュースケジューリング及び管理を行い得る。加えて、ルーターは短時間内に大量のパケットを受信する可能性があり、大量のパケットは、ルーターのメモリの先入れ先出しキューの比較的高いふくそうを引き起こし得る。先入れ先出しキューのふくそうを緩和するために、ルーターは先入れ先出しキューにエンキューすべきパケットを破棄し得る。
図3は、可能な実施における、図2に示すインターフェイスボード1230の概略構造図である。図3を参照して、インターフェイスボード1230は、ネットワークプロセッサ(network processor、NP)1232、トラフィックマネージャ(traffic
manager、TM)301、メモリ302及びiFIC303を含む。なお、図3は、インターフェイスボード1230に含まれる一部のコンポーネントのみを示す。特定の実施の間、図3に示すインターフェイスボード1230は、図2に示すインターフェイスボード1230内のコンポーネントをさらに含み得る。図3に示すインターフェイスボードは、アップリンクトラフィックに対してキュースケジューリング及び管理を行うことができる。アップリンクトラフィックは、物理インターフェイスカード1233を用いることによってインターフェイスボード1230によって受信され、スイッチングボード1220に送信されるトラフィックであり得る。具体的には、物理インターフェイスカード1233を用いることにより受信されたパケットは、ネットワークプロセッサ1232及びトラフィックマネージャ301によって処理された後で、入口ファブリックインターフェイスチップ303に送信される。入口ファブリックインターフェイスチップ303がトラフィックマネージャ301によって送信されたパケットを受信した後、入口ファブリックインターフェイスチップ303はパケットに基づいて複数のセルを生成し、複数のセルをスイッチングボード1220に送信し得る。トラフィックマネージャ301によって行われるパケット処理は、エンキュー処理及びデキュー処理を含み得る。例えば、トラフィックマネージャ301は、パケットに対してエンキュー処理を行うために、メモリ302にパケットを記憶し得る。トラフィックマネージャ301は、パケットに対してデキュー処理を行うためにメモリ302に記憶されたパケットを削除し得る。メモリ302は、パケットキューを記憶し、維持するように構成され得る。パケットキューは複数のパケットを含む。パケットキューは先入れ先出しキューであり得る。メモリ302は先入れ先出しメモリであり得る。トラフィックマネージャ301は、パケットキューに入るパケットに対してエンキュー管理を行うことができ、パケットキューを出るパケットに対してデキュー管理を行うことができる。具体的には、トラフィックマネージャ301は、パケット記述子キューを記憶及び維持することができる。パケット記述子キューは複数のパケット記述子を含む。パケットキューに含まれる複数のパケットは、パケット記述子キューに含まれる複数のパケット記述子と1対1の対応関係にある。各パケット記述子は、対応するパケットに関する情報を示すために用いられる。例えば、パケット記述子は、メモリ302内に、パケット記述子に対応するパケットの記憶場所を含み得る。加えて、パケット記述子は、パケット記述子に対応するパケットがルーター2に入る時間をさらに含み得る。具体的には、パケット記述子に対応するパケットがルーター2に入る時間は、パケット記述子に対応するパケットが物理インターフェイスカード1233によって受信される時間であり得る。加えて、パケット記述子は、パケット記述子に対応するパケットがパケットキューにエンキューされる場合のパケットキューの長さをさらに含み得る。例えば、パケット1がパケットキュー1にエンキューされる場合、パケットキュー1は、パケット2、パケット3及びパケット4を含む。パケット2は100ビット、パケット3は200ビット、パケット4は300ビットである。したがって、パケット1がパケットキュー1にエンキューされる場合、パケットキュー1の長さは600ビットである。パケット1がパケットキュー1にエンキューされるとき、パケットキュー1はパケット1を含まないことが分かる。パケット記述子は、さらに、パケット記述子に対応するパケットがパケットキューにエンキューされた後でパケット記述子に対応するパケットがパケットキューに留まることが予想される期間をさらに含み得る。説明を容易にするために、本願のこの実施形態では、継続時間をパケットキューのレイテンシと呼ぶ。
トラフィックマネージャ301は、ネットワークプロセッサ1232からのパケットに対してエンキュー管理を行うことができる。例えば、トラフィックマネージャ301は、WREDアルゴリズムに基づいて、ネットワークプロセッサ1232からのパケットを破棄するかどうかを判断し得る。もちろん、トラフィックマネージャ301は、別のアルゴリズムに基づいて、ネットワークプロセッサ1232からのパケットを破棄するかどうかを判断し得る。トラフィックマネージャ301がネットワークプロセッサ1232からのパケットを破棄しないと判断した場合、トラフィックマネージャ301は、そのパケットをメモリ302内のパケットキューに記憶し得る。具体的には、トラフィックマネージャ301は、メモリ302内のパケットキューの末尾にパケットを記憶し得る。加えて、トラフィックマネージャ301は、メモリ302内のパケットの記憶場所に基づいて、そのパケットに対応するパケット記述子を生成し、そのパケット記述子をパケット記述子キューに記憶する。具体的には、トラフィックマネージャ301は、パケット記述子をパケット記述子キューの末尾に記憶し得る。パケット記述子キューはトラフィックマネージャ301に記憶され得る。具体的には、パケット記述子キューはトラフィックマネージャ301内のキューマネージャに記憶され得る。トラフィックマネージャ301は、メモリ302に記憶されたパケットキューに対してデキュー管理を行うことができる。例えば、トラフィックマネージャ301が、重み付き公平キューイング(weighted fair queuing、WFQ)アルゴリズムに基づいて、メモリ302に記憶されたパケットキュー内のパケットを送信する必要があると判断した場合、トラフィックマネージャ301は、パケット記述子キューの先頭に基づいて、メモリ302にスケジューリング信号を送信し得る。確かに、トラフィックマネージャ301は、別のキュースケジューリングアルゴリズムに基づいて、メモリ302に記憶されたパケットキュー内のパケットを送信する必要があると判断し得る。スケジューリング信号は、パケットキューの先頭のパケットの記憶場所を含む。スケジューリング信号は、パケットキューの先頭のパケットをトラフィックマネージャ301に対して供給するようにメモリ302に指示するために用いられる。メモリ302は、パケットキューの先頭のパケットをトラフィックマネージャ301に対して提供し、パケットキュー内の送信されたパケットを削除する。トラフィックマネージャ301は、メモリ302からパケットキューの先頭のパケットを取得し、そのパケットをファ入口ブリックインターフェイスチップ303に送信する。トラフィックマネージャ301が入口ファブリックインターフェイスチップ303にパケットを送信した後、トラフィックマネージャ301は、送信されたパケットに対応するパケット記述子をパケット記述子キューから削除する。前述の例では、パケットキューはメモリ302に記憶される。
可能な設計では、トラフィックマネージャ301及びメモリ302は、同じチップ内でカプセル化されてもよい。トラフィックマネージャ301及びメモリ302が同じチップ内でカプセル化されている場合、メモリ302はオンチップメモリと呼ばれることがある。トラフィックマネージャ301の動作周波数は、メモリ302の動作周波数に等しくてもよい。オンチップメモリは高速メモリとも呼ばれることがある。任意で、この設計では、メモリは、チップの外に配置されてもよい。チップの外に配置されるメモリはオフチップメモリと予有れることもあり、オンチップメモリの帯域幅はオフチップメモリの帯域幅よりも大きい。オフチップメモリは低速メモリと呼ばれることもある。
別の可能な設計では、トラフィックマネージャ301及びメモリ302は、異なるチップにカプセル化され得る。トラフィックマネージャ301及びメモリ302が異なるチップにカプセル化されている場合、メモリ302はオフチップメモリと呼ばれることがある。トラフィックマネージャ301の動作周波数は、メモリ302の動作周波数より大きくてもよい。任意で、メモリはトラフィックマネージャ301の内部に配置され、トラフィックマネージャ301の内部に配置されるメモリの帯域幅は、メモリ302の帯域幅よりも大きい。オンチップメモリは低速メモリと呼ばれることもある。
本願のこの実施形態では、メモリの帯域幅は、データがメモリに記憶される(書き込まれる)レート又はデータがメモリから読み出されるレートであることを理解されたい。メモリ1の帯域幅はメモリ2の帯域幅よりも大きいということは、メモリ1にデータが記憶されるレートが、メモリ2にデータが記憶されるレートよりも大きいか又はメモリ1からデータが読み出されるレートが、メモリ2からデータが読み出されるレートよりも大きいことを意味する。
トラフィックマネージャ301及びメモリ302に加えて、インターフェイスボード1230は記憶機能を有する別の回路をさらに含み得る。例えば、インターフェイスボード1230はメモリ1234をさらに含み得る。メモリ1234及びメモリ302の機能は異なる。メモリ1234は、ルーティングテーブルを記憶するように構成されている。ネットワークプロセッサ1232は、メモリ1234にアクセスすることによってルーティングテーブルを検索する。メモリ302は、先入れ先出しキューを記憶するように構成されている。トラフィックマネージャ301は、メモリ302にアクセスすることによって、第1の先入れ先出しキューを管理する。メモリ1234及びメモリ302は独立したメモリであり得る。可能な実施では、メモリ1234及びメモリ302は1つのチップに含まれ得る。あるいは、メモリ302及びメモリ1234のうちの1つのみが含まれ得る。
図4は、可能な実施における、図2に示すインターフェイスボード1240の概略構造図である。図4を参照して、インターフェイスボード1240は、ネットワークプロセッサ1242、トラフィックマネージャ402、メモリ403、物理インターフェイスカード1243及びeFIC401を含む。なお、図4は、インターフェイスボード1240に含まれる一部のコンポーネントのみを示す。特定の実施の間、図4に示すインターフェイスボード1240は、図2に示すインターフェイスボード1240内のコンポーネントをさらに含み得る。図4に示すインターフェイスボードは、ダウンリンクトラフィックに対してキュースケジューリング及び管理を行うことができる。ダウンリンクトラフィックは、スイッチングボード1220を用いることによってインターフェイスボード1240によって受信され、物理インターフェイスカード1243に送信されるトラフィックであり得る。ダウンリンクトラフィックを受信した後、物理インターフェイスカード1243は、第3の出口ポートを介してルーター4にダウンリンクトラフィックを送信し得る。出口ファブリックインターフェイスチップ401が、スイッチングボード1220から複数のセルを受信した後で、出口ファブリックインターフェイスチップ401は、複数のセルに基づいてパケットを生成し、そのパケットをネットワークプロセッサ1242に送信することができる。トラフィックマネージャ402は、ネットワークプロセッサ1242によって受信されたパケットに対して破棄管理を行うことができる。トラフィックマネージャ402は、ネットワークプロセッサ1242によって受信されたパケットに対してエンキュー管理を行うことができる。具体的には、受信したパケットは、スケジューリングアルゴリズムに基づいてメモリ403内のパケットキュー内に置かれ、例えば、パケットキューの末尾に置かれえる。トラフィックマネージャ402は、メモリ403に記憶されたパケットキューに対してデキュー管理を行うことができる。パケットキューは先入れ先出しキューであり得る。メモリ403は先入れ先出しメモリであり得る。トラフィックマネージャ402がメモリ403に記憶されたパケットキュー内のパケットを取得した後で、トラフィックマネージャ402は、取得したパケットを物理インターフェイスカード1243に送信し得る。物理インターフェイスカード1243は、第3の出口ポートを介してルーター4にパケットを送信し得る。図4に示すインターフェイスボードによるキュースケジューリング及び管理を行う特定の実施については、図3に対応する実施形態の説明を参照されたい。ここでは、詳細について再度説明しない。
図5Aは、本願の一実施形態に係るメモリ管理方法の概略フローチャートである。図5Aを参照して、本方法はS501及びS502を含み得る。例えば、図5Aに示す方法はネットワーク装置によって行われ得る。図5Aに示す方法は、図3に示すネットワーク装置内のインターフェイスボード1230によって行われ得る。図5Aに示す方法は、トラフィックマネージャ301によって行われ得る。可能な設計では、図5Aに示す方法は、代替的に図4に示すネットワーク装置内のインターフェイスボード1240によって行われ得る。図5Aに示す方法はトラフィックマネージャ402によって行われ得る。もちろん、図5Aに示す方法は、別のソフトウェア及びハードウェアシステムによっても行われ得る。
S501.ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定し、該第1の閾値は0よりも大きく、該第1のメモリは第1のパケットキューを記憶する。
例えば、第1の閾値は、第1のメモリの総記憶領域の1/3、1/4、1/5、1/6等に等しいか又は別の方法で設定され得る。第1の閾値は、実際の状況に基づいて具体的に設定され得る。S501におけるネットワーク装置は、図3に示すネットワーク装置であり得る。
例えば、トラフィックマネージャはメモリの占有状態を検出し得る。例えば、トラフィックマネージャは、メモリの総記憶領域を予め記憶し得る。データがメモリに記憶されていない場合、トラフィックマネージャは、メモリの利用可能な記憶領域が総記憶領域に等しいと判定し得る。トラフィックマネージャがメモリに対して書き込み動作を行う場合、トラフィックマネージャは、メモリの利用可能な記憶領域は総記憶領域から書き込み動作に対応するデータのサイズを差し引くことによって得られる値に等しいと判定し得る。トラフィックマネージャがメモリに対して読み出し動作を行う場合、トラフィックマネージャは、メモリの利用可能な記憶領域は、読み出し動作に対応するデータのサイズに、判定された最新の利用可能な記憶領域を加えることによって得られる値に等しいと判定し得る。トラフィックマネージャがメモリに対して削除動作を行う場合、トラフィックマネージャは、メモリの利用可能な記憶領域は、削除動作に対応するデータのサイズに、判定された最新の利用可能な記憶領域を加えることによって得られる値に等しいと判定し得る。トラフィックマネージャは、書き込み動作を行うことによってパケットをパケットキューにエンキューし、読み出し動作を行うことによってパケットキューからパケットをデキューし、削除動作を行うことによってメモリに記憶されたパケットを削除し得ることが理解されよう。
S502.第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいことに基づいて、第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除する。
第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいこととは、第1の閾値が利用可能な記憶領域の観点から説明されるとともに、もちろん、使用記憶領域の観点からもさらに説明され得ることを理解すべきである。例えば、アラーム領域閾値は、第1のメモリの総記憶領域に基づいて設定される。図5Bに示すように、BLはアラーム領域閾値を表し、第1のメモリの使用記憶領域がアラーム領域閾値以上である場合、第1のパケットキューの末尾にある少なくとも1つのパケットは第1のメモリから削除される。
例えば、トラフィックマネージャは第1の閾値を予め記憶し得る。トラフィックマネージャは、削除動作を行うことによりメモリに記憶されたパケットを削除し得る。
本願のこの実施形態では、パケットキューは1つ以上のメモリを用いることによって維持され得る。
第1の可能な例では、パケットキューは1つのメモリを用いることによって維持される。第1のパケットキューの末尾にある少なくとも1つのパケットが第1のメモリから削除されると、第1のパケットキューの末尾にある少なくとも1つのパケットは第1のメモリから直接削除され、別の場所に記憶されるのが防止される。
例えば、図5Aに示す方法がネットワーク装置内のトラフィックマネージャ301によって行われた場合、トラフィックマネージャ301及び第1のメモリは、同じチップ内でカプセル化され得るか又は異なるチップ内でカプセル化され得る。図6Aに示すトラフィックマネージャ301と第1のメモリとの関係を参照して、トラフィックマネージャ301及び第1のメモリは同じチップ内でカプセル化されている。第1のメモリ及びトラフィックマネージャ301が同じチップ内でカプセル化されている場合、第1のメモリは高速メモリと呼ばれることがあることを理解されるべきである。第1のメモリ及びトラフィックマネージャ301が異なるチップ内でカプセル化されている場合、第1のメモリは低速メモリと呼ばれることがある。低速メモリの帯域幅は高速メモリの帯域幅よりも小さい。
第2の可能な例では、パケットキューは少なくとも2つのメモリを用いることによって維持され得る。第1のパケットキューの末尾にある少なくとも1つのパケットが第1のメモリから削除された場合、すなわち、第1のパケットキューの末尾にある少なくとも1つのパケットが第1のメモリから第2のメモリにマイグレートされた場合、第1のパケットキューの末尾にある少なくとも1つのパケットが第2のメモリにコピーされ、その後に、第1のメモリから第1のパケットの末尾にある少なくとも1つのパケットが削除される。例えば、図5Aに示す方法がトラフィックマネージャ301によって行われた場合、トラフィックマネージャ301及び第1のメモリは同じチップにカプセル化され、トラフィックマネージャ301及び第2のメモリは異なるチップにカプセル化されている。これについては、図6Bに示すトラフィックマネージャ301と第1のメモリとの関係及び図6Bに示すトラフィックマネージャ301と第2のメモリとの関係を参照されたい。第1のメモリの帯域幅は第2のメモリの帯域幅よりも大きい。第1のメモリは高速メモリ又はオンチップメモリと呼ばれることがあり、第2のメモリは低速メモリ又はオフチップメモリと呼ばれることがある。例えば、第1のメモリはスタティックランダムアクセスメモリ(static random-access memory、SRAM)であり、第2のメモリはダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)であり得る。第1のメモリ及びトラフィックマネージャ301は異なるチップにカプセル化されてもよく、第2のメモリ及びトラフィックマネージャ301も異なるチップにカプセル化されてもよいことを理解すべきである。しかしながら、第1のメモリの帯域幅は第2のメモリの帯域幅よりも大きい。
本願のこの実施形態で説明する第1のメモリ及び第2のメモリは、具体的にはバッファであり得る。
本願のこの実施形態では、第1のパケットキューは、複数の維持されたパケットキューから複数の方法で選択され得る。本願のこの実施形態における説明のために、以下の2つの方法を一例として用いる。
第1の可能な実施では、パケットキュー、すなわち、第1のパケットキューは、第1のメモリに記憶された複数のパケットキューから直接選択される。レイテンシが最も高いパケットキュー又は最も長いパケットキューが複数のパケットキューから選択され得る。したがって、選択された第1のパケットキューは、第1のメモリに記憶された複数のパケットキューのうちの1つであり、第1のパケットキューのパラメータ値は、複数のパケットキュー内の別のパケットキューのパラメータ値よりも大きく、パケットキューのパラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットがパケットキュー内に留まることが予想される期間である。
第2の可能な実施では、第1のメモリに記憶された複数のパケットキューは複数のパケットキューセットに分類される。異なるパケットキューセットは、異なるパラメータ値間隔に対応し、異なるパケットキューセットに対応するパラメータ値間隔は重複しない。パラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり得る。選択された第1のパケットキューは、最大パラメータ値間隔に対応するパケットキューセット内のパケットキューであり得る。例えば、第1のメモリに記憶された複数のパケットキューが、それぞれ第1のパケットキューセット及び第2のパケットキューセットである2つのパケットキューセットに分類される場合、選択された第1のパケットキューは、第1のパケットキューセットに含まれる複数のパケットキューのうちの1つである。第1のパケットキューセット内の各パケットキューのパラメータ値は、第2のパケットキューセットに含まれる複数のパケットキューのそれぞれのパラメータ値よりも大きく、第1のパケットキューセット内の全てのパケットキューは第1のメモリに記憶され、第2のパケットキューセット内の全てのパケットキューは第1のメモリに記憶される。パケットキューのパラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットがパケットキューに留まることが予想される期間である。
先ず、第1の可能な実施を詳細に説明する。以下の説明では、トラフィックマネージャ301によって図5Aに示す方法が行われる例を用いる。
第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定された場合、トラフィックマネージャ301は、第1のメモリに記憶された複数のパケットキューからパラメータ値が最も大きいパケットキューを選択する。すなわち、第1のメモリに記憶された複数のパケットキューから、レイテンシが最も高いパケットキュー又は最も長いパケットキュー、すなわち第1のパケットキューを選択する。以下の説明では、パケットキューのパラメータ値がパケットキューのレイテンシである例を説明のために用いる。
以下で説明するパケットキューのレイテンシは、パケットキュー内にあり、第1のメモリに記憶される最後のパケットが、該パケットキューに留まることが予想される期間である。例えば、図7Aに示すパケットキュー1を参照して、第1のパケットキューがパケットキュー1である例を用い、パケットNがパケットキュー1に留まることが予想される期間は、第1のパケットキューのレイテンシを表す。図6Bに示すトラフィックマネージャ301が、2つのメモリを用いることにより複数のパケットキューを維持する例を用いる。パケットNが第1のメモリから第2のメモリにマイグレートされる前に、パケットキュー1のレイテンシは、パケットNがパケットキュー1に留まることが予想される期間である。パケットキュー1の末尾にあるパケットが削除される例を用いる。第1のメモリの利用可能な記憶領域が第1の閾値より小さいと判定された場合、パケットキュー1内のパケットNは、第1のメモリから第2のメモリにマイグレートされる。マイグレーションの後、パケットキュー1のレイテンシは、パケットN-1がパケットキューに留まることが予想される期間に変化する。これについては、図7Bを参照されたい。
実際には、パケットキュー1の末尾にあるパケットは1つだけであることを理解すべきである。パケットキュー1の末尾にある少なくとも1つのパケットの数が1ではない場合、パケットキュー1の末尾にある実際のパケットに別のパケットが隣接しているため、本願のこの実施形態では、該別のパケットもパケットキュー1の末尾にあるとみなされる。例えば、少なくとも1つのパケットの数が2である例を用いた場合、図7Aでは、第1のメモリにおけるパケットキュー1の末尾にあるパケットはパケットN及びパケットN-1である。
以下の第1の可能な実施では、複数のパケットキューが第1のメモリにのみに記憶される場合に、複数のパケットキューの長さ及び/又はレイテンシがどのように維持されるかについて詳細に説明する。
1つの例では、トラフィックマネージャ301は、各パケットキューのレイテンシ(及び/又は長さ)を維持し得る。
別の例では、トラフィックマネージャ301は、第1のメモリ内の一部のパケットキューのみのレイテンシ(及び/又は長さ)を維持し得る。例えば、一部のパケットキューは、第1のメモリに記憶された複数のパケットキュー内のレイテンシが比較的高いm個のパケットキューであり、mは0より大きい整数である。
例えば、トラフィックマネージャ301は、パケットキュー情報テーブルを用いることによって、レイテンシが比較的高いm個のパケットキューのレイテンシを記録し得る。パケットキュー情報テーブルは、m個のパケットキューのQID等の識別子を含み、レイテンシはm個のパケットキューの識別子にそれぞれ対応する。表1はパケットキュー情報テーブルである。2つのパケットキューのレイテンシが表1に記録されている例を用いる。
Figure 0007241194000001
トラフィックマネージャ301は、第1のメモリからのレイテンシがより大きいパケットキュー1の末尾にある少なくとも1つのパケットを削除する場合、キュー情報テーブルに記録されたパケットキュー1の識別子に基づいてパケットキュー1を特定し、第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除する。トラフィックマネージャ301は、第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除した後に、キュー情報テーブル内のパケットキュー1のレイテンシを更新する。パケットキュー1から1つのパケットが削除される例を用い、パケットキュー1の更新されたレイテンシは、パケットN-1がパケットキュー1に留まることが予想される期間である。パケットキュー1の先頭にあるパケットがパケットキュー1からデキューされると、トラフィックマネージャ301は、それに対応して、キュー情報テーブル内のパケットキュー1のレイテンシも変更する。もちろん、表1に示す他のパケットキューについて、他のパケットキューの先頭にあるパケットが他のパケットキューからデキューされる場合、トラフィックマネージャ301は、それに対応して表1の他のパケットキューのレイテンシも更新する。トラフィックマネージャ301は、キュー情報テーブルに記憶されたレイテンシが比較的高いm個のパケットキューを維持する。パケットがパケットキューにエンキューされることにより、m個のパケットキュー以外のパケットキューのレイテンシがキュー情報テーブルのレイテンシよりも大きくなった場合、キュー情報テーブル内のより低いレイテンシと、より低いレイテンシに対応するパケットキューの識別子とが更新される。例えば、パケットがパケットキュー3にエンキューされ、パケットがパケットキュー3にエンキューされた後のパケットキュー3のレイテンシは790usである。すなわち、パケットキュー3のレイテンシはパケットキュー2のレイテンシよりも大きい。この場合、表1のパケットキュー2の識別子は、パケットキュー3の識別子に置き換えられ、表1のパケットキュー2のレイテンシはパケットキュー3のレイテンシに置き換えられる。
トラフィックマネージャ301が、第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除した後で、第1のメモリの利用可能な記憶領域が第1の閾値以上である場合、トラフィックマネージャ301は削除動作を行うことを継続しない。第1のメモリの利用可能な記憶領域が依然第1の閾値よりも小さい場合、トラフィックマネージャ301は、キュー情報テーブルからレイテンシが最も大きいパケットキューの選択を続ける。例えば、パケットキュー1の末尾にあるパケットNが削除された後で、パケットキュー1のレイテンシがパケットキュー2のレイテンシよりも大きい場合に、第1のメモリからパケットキュー1の末尾にあるパケットN-1が削除される。例えば、パケットキュー1の末尾にあるパケットNが削除された後で、パケットキュー2のレイテンシがパケットキュー1のレイテンシよりも大きい場合、第1のメモリから削除するためにパケットキュー2の末尾にあるパケットが選択される。
可能な実施では、パケットキュー1の末尾にある少なくとも1つのパケットが第1のメモリから削除された後で、パケットキュー1にエンキューすべきパケット1が受信される。パケットキュー1が第1の条件及び第2の条件のうちの少なくとも1つを満たす場合、パケット1は第1のメモリに記憶されない。あるいは、パケットキュー1が第1の条件も第2の条件も満たさない場合、パケット1は第1のメモリに記憶される。
第1の条件は次の通りである。パケット1がパケットキューにエンキューされる前に、第1のメモリに記憶されるパケットキュー1の長さが第3の閾値よりも小さいことであり、第3の閾値は0より大きい。第2の条件は次の通りである。パケット1がパケットキュー1にエンキューされる前に、第1のメモリに記憶されたパケットキュー1の末尾にあるパケットがパケットキュー1に留まることが予想される期間が第4の閾値よりも小さいことであり、第4の閾値は0よりも大きい。
トラフィックマネージャ301が第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除した後で、トラフィックマネージャ301が、パケットキュー1に属するパケット1を受信した場合、トラフィックマネージャ301は、パケットキュー1全体が短くなるまで(パケットキュー1のレイテンシが第4の閾値より小さいか又はパケットキュー1の長さが第3の閾値より小さい)、パケット1を直接破棄し得る。このように、レイテンシが比較的低いパケットを記憶してエンキューするための空き領域をある程度確保することができる。
第3の閾値及び第4の閾値は経験値に基づいて予め設定され得る。例えば、パケットキューの長さがKパケットに達した場合、ふくそうが通常発生し、第1のメモリの領域は不十分になる。この場合、第3の閾値にK/2、K/3、K/4等が設定され得る。第3の閾値及び第4の閾値は代替的に動的に設定され得る。例えば、パケットキューの末尾にあるパケットが削除されたと判定された場合、パケットキュー1のレイテンシはXである。例えば、図7Aを参照して、Xは、パケットNがパケットキュー1に留まると予想される期間に等しく、第4の閾値にはX/2、X/3又はX/4が設定され得る。
以下の第の可能な実施では、複数のパケットキューが第1のメモリ及び第2のメモリに記憶される場合に複数のパケットキューの長さ及び/又はレイテンシがどのように維持されるかを詳細に説明する。
1つの例では、トラフィックマネージャ301は、第1のメモリに記憶された各パケットキューのレイテンシ(及び/又は長さ)を維持し得る。
別の例では、トラフィックマネージャ301は、第1のメモリ内の一部のパケットキューのみのレイテンシ(及び/又は長さ)を維持し得る。例えば、一部のパケットキューは、第1のメモリに記憶された複数のパケットキュー内のレイテンシが比較的高いw個のパケットキューであり、wは0より大きい整数である。
ここでは、第1のメモリに記憶されるパケットキューのレイテンシは、パケットキュー内にあり、第1のメモリに記憶される最後のパケットがパケットキューに留まる期間である。
例えば、トラフィックマネージャ301は、パケットキュー情報テーブルを用いることにより、レイテンシが比較的高いw個のパケットキューのレイテンシを記録し得る。表2はパケットキュー情報テーブルである。パケットキュー情報テーブルは、w個のパケットキューのQID等の識別子を含み、パケットキュー情報テーブルは、w個のパケットキューの識別子にそれぞれ対応するレイテンシをさらに含む。一部のパケットキューがマイグレートされた後に、一部のパケットキューの末尾にあるパケットは第2のメモリにマイグレートされ得る。したがって、次のマイグレーション処理を促進するために、第1のメモリに記憶されたパケットキュー内の最後のパケットの識別子がパケットキュー情報テーブルに記録され得る。パケットの識別子はパケットのID番号、パケットの記憶アドレス等であり得る。表2に3つのパケットキューのレイテンシを記録する例を用いる。
Figure 0007241194000002
トラフィックマネージャ301は、第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除する際に、キュー情報テーブルに記録されたパケットキュー1の識別子に基づいてパケットキュー1を特定し、パケットキュー1の末尾にある少なくとも1つのパケットを第1のメモリから第2のメモリにマイグレートする。トラフィックマネージャ301は、パケットキュー1の末尾にある少なくとも1つのパケットを第1のメモリから第2のメモリにマイグレートした後に、キュー情報テーブル内のパケットキュー1のレイテンシを更新する。パケットキュー1から1つのパケットが削除される例を用い、パケットキュー1の更新されたレイテンシは、パケットN-1がパケットキュー1に留まることが予想される期間である。パケットキュー1の先頭にあるパケットがパケットキュー1からデキューされた場合、トラフィックマネージャ301は、それに対応して、キュー情報テーブル内のパケットキュー1のレイテンシも更新する。もちろん、表2に示す別のパケットキューについて、別のパケットキューの先頭にあるパケットが別のパケットキューからデキューされた場合、トラフィックマネージャ301は、それに対応して、キュー情報テーブル内の別のパケットキューのレイテンシも更新する。トラフィックマネージャ301は、キュー情報テーブルに記憶されるレイテンシが比較的高いw個のパケットキューを維持する。パケットが別のパケットキューにエンキューされることにより、別のパケットキューのレイテンシがキュー情報テーブル内の最も低いレイテンシよりも大きくなった場合、キュー情報テーブル内の最も低いレイテンシと、最も低いレイテンシに対応するパケットキューの識別子とが更新される。例えば、パケットがパケットキュー5にエンキューされ、パケットキュー5のレイテンシが775usである。すなわち、パケットキュー5のレイテンシはパケットキュー3のレイテンシよりも大きい。この場合、表2のパケットキュー3の識別子はパケットキュー5の識別子に置き換えられ、表2のパケットキュー3のレイテンシはパケットキュー5のレイテンシに置き換えられる。
トラフィックマネージャ301が、第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除した後で、第1のメモリの利用可能な記憶領域が第1の閾値より大きい場合、トラフィックマネージャ301は、マイグレーション動作を行うことを継続しない。第1のメモリの利用可能な記憶領域が依然第1の閾値よりも小さい場合、トラフィックマネージャ301は、キュー情報テーブルからレイテンシが最大のパケットキューの選択を続ける。例えば、パケットキュー1の末尾にあるパケットNが第1のメモリから第2のメモリにマイグレートされた後に、パケットキュー1のレイテンシが依然パケットキュー2のレイテンシより大きい場合、パケットキュー1の末尾にあるパケットN-1が第1のメモリから第2のメモリにマイグレートされる。例えば、パケットキュー1の末尾にあるパケットNが第1のメモリから第2のメモリにマイグレートされた後に、パケットキュー2のレイテンシがパケットキュー1のレイテンシよりも大きい場合、パケットキュー2の末尾にあるパケットが第1のメモリから第2のメモリにマイグレートされる。
例えば、トラフィックマネージャ301は、代替的に2つのテーブルを用いることによって、レイテンシが比較的高いw個のパケットキューのレイテンシを記録し得る。例えば、表3はマイグレーション前に得られるパケットキュー情報テーブルである。パケットキュー情報テーブルは、w1個のパケットキューのQID等の識別子と、w1個のパケットキューの識別子にそれぞれ対応するレイテンシとを含む。表4は、マイグレーション後に得られるパケットキュー情報テーブルである。マイグレーション後に得られるパケットキュー情報テーブルは、レイテンシが比較的高いマイグレートされたw2個のパケットキューの識別子と、w2個のパケットキューの識別子に対応するレイテンシと、第1のメモリに記憶されたパケットキューの最後のパケットの識別子を記録する。w2個のパケットキューの識別子における特定のパケットキューの識別子に対応するレイテンシは、第1のメモリに記憶されたパケットキューの最後のパケットがパケットキューに留まる期間である。
Figure 0007241194000003
Figure 0007241194000004
したがって、トラフィックマネージャ301は、第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除する場合に、表3に記録されたパケットキュー1の識別子に基づいてパケットキュー1を特定し、パケットキュー1の末尾にある少なくとも1つのパケットを第1のメモリから第2のメモリにマイグレートする。パケットキュー1の末尾にある少なくとも1つのパケットが第1のメモリから第2のメモリにマイグレートされた後、図7Aに示すパケットキュー1から1つのパケット(パケットN)が削除される例を用い、トラフィックマネージャ301は、パケットキュー1のレイテンシを再度特定し、パケットキュー1の再度特定されたレイテンシを表4におけるより低いレイテンシと比較する。パケットキュー1の再度特定されたレイテンシがより低いレイテンシよりも大きい場合、トラフィックマネージャ301は、表4のより低いレイテンシをパケットキュー1のレイテンシに更新し、より低いレイテンシに対応するパケットキューの識別子をパケットキュー1の識別子に更新し、より低いレイテンシに対応する最後のオンチップパケットをパケットキュー1のパケットN-1の識別子に更新し、表3のパケットキュー1の識別子及びパケットキュー1のレイテンシを削除する。パケットキュー1の更新されたレイテンシは、パケットN-1がパケットキュー1に留まることが予想される期間である。パケットキュー1の先頭にあるパケットがパケットキュー1からデキューされた場合、トラフィックマネージャ301は、それに対応して、表3又は表4のパケットレイテンシ1のレイテンシも変更する。もちろん、表3に示される別のパケットキューについて、別のキューの先頭にあるパケットが別のパケットキューからデキューされた場合、トラフィックマネージャ301は、それに対応して、キュー情報テーブル内の別のパケットキューのレイテンシも更新する。トラフィックマネージャ301は、キュー情報テーブルに記憶されたレイテンシが比較的高いw個のパケットキューを維持する。パケットが別のキューにエンキューされることによって、別のパケットキューのレイテンシが表3のより低いレイテンシよりも大きくなった場合、表3のより低いレイテンシと、より低いレイテンシに対応するパケットキューの識別子とが更新される。例えば、パケットがパケットキュー5にエンキューされ、パケットキュー5のレイテンシは775μsである。すなわち、パケットキュー5のレイテンシはパケットキュー3のレイテンシよりも大きい。この場合、表2のパケットキュー3の識別子はパケットキュー5の識別子に置き換えられ、表2のパケットキュー3のレイテンシはパケットキュー5のレイテンシに置き換えられる。加えて、パケットキュー1に対してマイグレーション動作が行われた後、更新後に得られる表3に空き箇所がある。したがって、パケットがパケットキュー5にエンキューされることによってパケットキュー5のレイテンシが775usである場合、すなわち、パケットキュー5のレイテンシがパケットキュー3のレイテンシよりも大きい場合、パケットキュー5の識別子及びパケットキュー5のレイテンシは、表3の空き箇所に記憶される。
可能な実施では、パケットキュー1の末尾にある少なくとも1つのパケットを第1のメモリから第2のメモリにマイグレートした後に、トラフィックマネージャ301はパケットキュー1にエンキューされるパケット1を受信する。パケットキュー1が第1の条件及び第2の条件のうちの少なくとも1つを満たす場合、トラフィックマネージャ301は、パケット1を第1のメモリに記憶することを回避するが、パケット1を第2のメモリに記憶する。あるいは、パケットキュー1が第1の条件も第2の条件も満たさない場合、トラフィックマネージャ301はパケット1を第1のメモリに記憶する。
第1の条件は次の通りである。パケット1が第1のパケットキューにエンキューされる前に、第1のメモリに記憶されたパケットキュー1の長さが第3の閾値より小さいことであって、第3の閾値は0より大きい。第2の条件は次の通りである。パケット1がパケットキュー1にエンキューされる前に、第1のメモリに記憶されたパケットキュー1の末尾にあるパケットがパケットキュー1に留まることが予想される期間が第4の閾値よりも小さいことであって、第4の閾値は0より大きい。
トラフィックマネージャ301が第1のメモリからパケットキュー1の末尾にある少なくとも1つのパケットを削除した後に、トラフィックマネージャ301がパケットキュー1に属するパケット1を受信した場合、トラフィックマネージャ301は、パケットキュー1全体が短くなるまで(パケットキュー1のレイテンシが第4の閾値より小さいか又はパケットキュー1の長さが第3の閾値よりも小さい)、パケット1を直接破棄し得る。パケット1を直接破棄し得る。このように、レイテンシが比較的低いパケットを記憶してエンキューするための空き領域をある程度確保することができる。
第3の閾値及び第4の閾値は経験値に基づいて予め設定され得る。例えば、パケットキューの長さがKパケットに達した場合、ふくそうが通常発生し、第1のメモリの領域は不十分になる。この場合、第3の閾値にK/2、K/3、K/4等が設定され得る。第3の閾値及び第4の閾値は代替的に動的に設定され得る。例えば、パケットキュー1の末尾にあるパケットが削除されたと判定された場合、パケットキュー1のレイテンシはXである。例えば、図7Aを参照して、Xは、パケットNがパケットキュー1に留まると予想される期間に等しく、第4の閾値にはX/2、X/3又はX/4が設定され得る。
可能な実施では、第1のメモリの利用可能な記憶領域が第5の閾値よりも小さく、第5の閾値が第1の閾値よりも小さいと判定された場合、パケットキュー1以外のパケットキュー2がキュー情報テーブルから選択され、第1のメモリからパケットキュー2の末尾にある少なくとも1つのパケットが削除され、パケットキュー2から削除された少なくとも1つのパケットが第2のメモリに記憶されるのが防止される。
第1のメモリの利用可能な記憶領域が第5の閾値よりも小さいとは利用可能な記憶領域の観点から説明され、もちろん、使用された記憶領域の観点からもさらに説明され得ることを理解すべきである。例えば、第1のメモリの総記憶領域に基づいて禁止領域閾値が設定される。図5Bに示すように、HLは禁止領域閾値を表し、第1のメモリの使用された記憶領域が禁止領域閾値以上の場合、第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットが削除され、パケットキュー2から削除された少なくとも1つのパケットが第2のメモリに記憶されるのが防止される。
オフチップ帯域幅の制限により、マイグレーション速度は、新たなパケットがエンキューされる速度より小さいことがあり得るため、第1のメモリ(オンチップメモリ)の大量のリソースが占有される。したがって、第1のメモリの占有された領域が禁止領域閾値に達した場合に、1つのパケットキューに対してマイグレーション動作が行われると、別のパケットキューに対して削除動作が実行されるため、第1のメモリのリソースを可能な限り早く解放できる。もちろん、第1のメモリの占有領域が禁止領域閾値よりも小さい場合、パケットキューに対して行われる削除動作は停止される。
ルーターチップの場合、オフチップメモリのリソースをどのように効率的に用いるか、すなわち、パケット損失を可能な限り低減するためにメモリのリソース(オンチップメモリ及びオフチップメモリを含む)をどのように効率的に用いるかも重要である。したがって、オフチップ帯域幅が許容される場合、記憶すべきパケット及び破棄すべきパケットを決定することも必要である。
したがって、別の可能な実施では、第1のメモリの利用可能な記憶領域と第2のメモリの利用可能な記憶領域の合計が第6の閾値より小さいと判定された場合、パケットキュー3等の1つのパケットキューが全体キュー情報テーブルから選択され、パケットキュー3の末尾にある少なくとも1つのパケット(少なくとも1つのパケットが第1のメモリ又は第2のメモリに記憶されているかに関係なく)が削除される。
したがって、全体キュー情報テーブルがネットワーク装置に追加的に記憶され得る。表5を参照して、全体キュー情報テーブルはパケットキュー3の識別子と、パケットキュー3の総レイテンシ又は全長を含む。パケットキュー3の総レイテンシは、第1のメモリ及び第2のメモリに記憶されたパケットキュー3の末尾にあるパケットがパケットキュー3に留まる期間である。例えば、パケットキュー3は、それぞれパケット1、パケット2、パケット3、・・・パケット100である100個のパケットを含む。パケット1~パケット98は第1のメモリに記憶され、パケット99及びパケット100は第2のメモリに記憶されている。したがって、パケットキュー3の総レイテンシは、パケット100がパケットキュー3に留まる期間であり、パケットキュー3の全長は100である。すなわち、パケットキュー3に対してマイグレーション動作が行われる場合、パケットキュー3の総レイテンシ又は全長は変化しない。パケットキュー3の総レイテンシ又は全長は、パケットキュー3に対してデキュー動作又はエンキュー動作が行われた場合にのみ又は第1のメモリ及び第2のメモリからパケットキュー3の末尾にあるパケットが削除された後でのみ変化する。具体的には、パケットキュー3の先頭にあるパケットがパケットキュー3からデキューされる場合、それに対応してパケットキュー3の総レイテンシ又は全長が表5で変更される。
Figure 0007241194000005
もちろん、表5は、パケットキュー3以外のパケットキューを、例えばパケットキュー4をさらに記憶し得る。パケットキュー4の総レイテンシはパケットキュー3の総レイテンシより小さいが、パケットキュー4の総レイテンシは別のパケットキューの総レイテンシよりも大きい。パケットキュー3の先頭にあるパケットがパケットキュー3からデキューされた場合、パケットキュー4の総レイテンシも、それに対応して、全体キュー情報テーブルで更新される。トラフィックマネージャ301は、全体キュー情報テーブルに記憶されたレイテンシの比較的高いd個のパケットキューを維持し、dは0より大きい整数である。パケットが別のパケットキューにエンキューされることにより別のパケットキューのレイテンシが表5のより低い総レイテンシよりも大きい場合、表5のより低い総レイテンシと、より低い総レイテンシに対応するパケットキューの識別子が更新される。例えば、パケットがパケットキュー5にエンキューされ、パケットキュー5の総レイテンシはパケットキュー4の総レイテンシよりも大きい。この場合、表5のパケットキュー4の識別子がパケットキュー5の識別子に置き換えられ、表5のパケットキュー4の総レイテンシがパケットキュー5の総レイテンシに置き換えられる。
次に、第2の可能な実施について詳細に説明する。
第1のメモリに記憶された複数のパケットキューが複数のパケットキューセットに分類される。異なるパケットキューセットは異なるパラメータ値間隔に対応し、異なるパケットキューセットに対応するパラメータ値間隔は重複しない。パラメータ値間隔はレイテンシ間隔又は長さ間隔であり得る。以下の説明では、レイテンシの間隔を一例として用いる。
1つの例では、いくつかのレイテンシ間隔が定義され、パケットキューは、パケットキューのレイテンシに基づいて異なるパケットキューに分類される。ネットワーク装置は各パケットキューセットの識別子を記憶する。同じパケットキューセット内の複数のパケットキューは、リンクリストの形式で連続的に接続され得る。第1のパケットキューセットを一例として用いる。ネットワーク装置は、第1のパケットキューセットに対応する第1のリンクリストを記憶し、第1のリンクリストに含まれる複数のノードは、第1のパケットキューセット内の複数のパケットキューと1対1の対応関係にあり、第1のリンクリストに含まれる各ノードは対応するパケットキューの識別子を含む。例えば、第1のリンクリストはネットワーク装置の第1のメモリに記憶され得る。もちろん、ネットワーク装置が別のメモリをさらに含む場合、第1のリンクリストは別のメモリに記憶されてもよい。
図8を参照して、16のレイテンシ間隔(<20μs、<40μs、<80μs、・・・、及び>1ms)が定義される。図8は、3つのレイテンシ間隔に対応するパケットキューセットを示しているにすぎない。<20μsのレイテンシ間隔に対応するパケットキューはQ1を含む。<40μsのレイテンシに対応するパケットキューセットはQ2及びQ4を含み、Q2とQ4とは、リンクリストを用いることにより接続されている。<80μsのレイテンシ間隔に対応するパケットキューセットはQ3及びQ5を含み、Q3とQ5とはリンクリストを用いることにより接続されている。
第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいことに基づいて第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除する場合、トラフィックマネージャ301は、第1のパケットキューセットの記憶された識別子に基づいて第1のリンクリストを特定し、次に第1のリンクリスト内の第1のパケットキューの識別子に基づいて第1のパケットキューを特定する。
以下の第2の可能な実施では、ネットワーク装置が、複数のパケットキューを第1のメモリ及び第2のメモリに記憶する場合に、複数のパケットキューの長さ及び/又はレイテンシをどのように維持するかについて詳細に説明する。
ネットワーク装置はパケットキュー情報を記録する。パケットキュー情報は、各パケットキューセットの識別子と、各パケットキューセットの識別子に対応するレイテンシ間隔と、各パケットキューセットに含まれるパケットキューの識別子と、各パケットキューのパラメータ値とを含む。例えば、パケットキュー情報は第1のメモリに記憶され得るか又は第2のメモリに記憶され得る。ネットワーク装置がさらに別のメモリを含む場合、パケットキュー情報は別のメモリに記憶されてもよい。
第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定された場合、マイグ記録された最も大きいレイテンシ間隔に対応するパケットキューセットから1つのパケットキューがマイグレーションのために選択される。例えば、図8に示す異なるレイテンシ間隔に対応するパケットキューを参照して、最も大きいレイテンシ間隔は<80μsであり、1つのパケットキュー、例えばパケットキューQ3が<80μsのレイテンシ間隔から選択される。マイグレーションの間、パケットキューQ3の末尾にある少なくとも1つのパケットが第1のメモリから第2のメモリにマイグレートされる。図9A及び図9Bを参照して、低レイテンシパケットのために第1のメモリ(オンチップメモリ)のリソースを解放して、オンチップメモリの利用を改善するために、パケットキュートQ3の末尾にある2つのパケットが第1のメモリから第2のメモリにマイグレートされる例を用いる。マイグレーション処理では、第1のメモリに残るパケットキューQ3の末尾にある新たなパケットがパケットキューQ3に留まる期間が、Q3が位置する現在のパケットキューセットに対応するレイテンシ間隔の閾値よりも小さい場合、パケットキューQ3は、より小さいレイテンシ間隔に対応するパケットキューセットにマイグレートされる。例えば、パケットキューQ3の末尾にある少なくとも1つのパケットが第1のメモリから第2のメモリにマイグレートされた後に、第1のメモリに残るパケットキューQ3の末尾にある新たなパケットがパケットキューQ3に留まる期間が38μsの場合、パケットキューQ3は、リンクリストを用いることによってQ4に連続的に接続され得る。
例えば、パケットキューQ3の末尾にある少なくとも1つのパケットが第1のメモリから第2のメモリにマイグレートされた後に、第1のメモリに残るパケットキューQ3の末尾にある新たなパケットの記憶アドレスを第1のメモリに記録してQ3の以後のマイグレーションが促進され得る。パケットキューQ3について、新たなパケットが後にパケットキューQ3にエンキューされた場合、新たなパケットは第2のメモリに直接記憶され、その後にパケットキューQ3にエンキューされる全てのパケットは、パケットキューQ3全体が短くなるまで第2のメモリに記憶され得る。この場合、新たなパケットがパケットキューQ3にエンキューされた場合、新たなパケットは第2のメモリには記憶されず、第1のメモリに記憶される。なお、いくつかのネットワーク装置が配置される場合、パケットは、第2のメモリに記憶される前に、先ず第1のメモリを通過する必要がある。すなわち、パケットは、第2のメモリに直接マイグレートされる前に、先ず第1のメモリに記憶される必要がある。
パケットキューQ3全体が短くなるとは、前述の第1の条件及び第2の条件のうちの少なくとも1つが満たされることを意味する。第1の条件及び第2の条件については、前述の説明を参照されたい。ここでは、詳細について再度説明しない。
パケットキューQ3に対してマイグレーション処理が行われた後で、第1のメモリの利用可能な記憶領域が依然第1の閾値よりも小さい場合、最も大きいレイテンシ間隔に対応するパケットキューセットから1つのパケットキューが再度マイグレーション処理のために選択され得る。例えば、図9A及び図9Bを参照して、マイグレーション処理のためにパケットキューQ5が選択され、第1のメモリに記憶されたパケットキューQ5の末尾にある2つのパケットが、第1のメモリから第2のメモリにマイグレートされる。
可能な実施では、第1のメモリの利用可能な記憶領域が第5の閾値よりも小さく、第5の閾値が第1の閾値よりも小さいと判定された場合、最も大きいレイテンシ間隔に対応するパケットキューセットから1つのパケットキューが削除処理のために再度選択され得る。例えば、パケットキューQ3に対してマイグレーション処理が行われる場合、第1のメモリの利用可能な記憶領域が第5の閾値よりも小さいと判定された場合に、最も大きいレイテンシ間隔に対応するパケットキューセットからパケットキューQ5が選択され、第1のメモリからパケットキューQ5の末尾にある2つのパケットが削除され、パケットキューQ5から削除された少なくとも1つのパケットが第2のメモリに記憶されるのが防止される。
オフチップ帯域幅の制限により、マイグレーション速度は、新たなパケットがエンキューされる速度より小さいことがあり得るため、第1のメモリ(オンチップメモリ)の大量のリソースが占有される。したがって、第1のメモリの占有された領域が禁止領域閾値に達した場合に、すなわち、第1のメモリの利用可能な記憶領域が第5の閾値よりも小さい場合、1つのパケットキューに対してマイグレーション動作が行われると、別のパケットキューに対して削除動作が実行されるため、第1のメモリのリソースを可能な限り早く解放できる。もちろん、第1のメモリの占有領域が禁止領域閾値よりも小さい場合、パケットキューに対して行われる削除動作は停止される。
ネットワーク装置はパケットキュー情報を記録する。パケットがパケットキューにエンキューされるか又はパケットキューからデキューされる場合、パケットキューのパケットキュー情報を更新する必要があり、パケットキュー情報の識別子に基づいてパケットキュー情報を走査することによりパケットキュー情報を記憶する記憶場所を特定して、パケットキュー情報を変更するために、例えば、パケットキューのパラメータ値を更新し、第1のメモリに記憶されたパケットキューの末尾にあるパケットの記憶場所を更新する必要がある。走査方式では、比較的大量のパケットキューが存在する場合に比較的長い時間が必要にある。したがって、本願のこの実施形態では、パケットキュー情報の記録を支援するためにハッシュ(hash)方式が用いられ得る。
実際には、レイテンシが比較的高いパケットキュー又は比較的長いパケットキューのみがマイグレーションを必要とする。記憶領域を節約するために、いくつかのパケットキューのパケットキュー情報がハッシュ方式で記憶され、索引付けられ得る。例えば、レイテンシがT1よりも大きいパケットキューのパケットキュー情報又は長さがL1よりも大きいパケットキューがハッシュ方式で記録される。
図10A及び図10Bを参照して、レイテンシが一例として用いられる。ネットワーク装置はハッシュテーブル(hash table)と、オンチップキュー情報テーブル(On-Chip Queue
Information Table)と、オンチップレイテンシ間隔リストと、最も大きいレイテンシ間隔に対応するパケットキューセットのグループID等の識別子とを記憶する。ハッシュテーブルは、レイテンシがT1よりも大きいパケットキューの識別子(例えば、QID)及びパケットキューのインデックス値(例えば、インデックス)を記憶するために用いられ、インデックス値は、パケットキューのパケットキュー情報を記憶するための記憶場所を索引付けし、特定するために用いられる。オンチップキュー情報テーブル(On-Chip Queue Info Table)は、パケットキューの識別子及びパケットキューのレイテンシ又は長さ等の情報を記憶するために用いられる。オンチップキュー情報テーブルは、パケットキューにあり、第1のメモリに記憶された最後のパケットの記憶アドレスを記憶するためにさらに用いられる。パケットキューセット内のパケットキューがリンクリストの形式で連続して接続されている場合、オンチップキュー情報テーブルは、パケットキューの前のノード及びパケットキューの次のノードをさらに記憶し得る。オンチップレイテンシ間隔リストはパケットキューセットの識別子、パケットキューセットに対応するレイテンシ間隔及びパケットキューセットに対応するリンクリストの先頭にあるパケットキューのインデックス値を含む。
例えば、パケット1がパケットキュー1にエンキューされ、第1のメモリに記憶される場合、パケットキュー1のレイテンシはT1よりも大きく、パケットキュー1を含むパケットキューセットの識別子は、パケットキュー1のレイテンシに基づいて特定され、ハッシュテーブルがパケットを含むパケットキュー1の識別子(QID)に対応するパケットキューのインデックスを含むかどうかは、ハッシュアルゴリズムに基づいてクエリされる。ハッシュテーブルがパケットキュー1の識別子に対応するパケットキュー1のインデックス(index)を含まない場合、パケットキュー1の識別子及びパケットキュー1の識別子に対応するパケットキュー1のインデックスがハッシュテーブルに追加され、第1のメモリ内のパケット1の記憶アドレスが、パケットキュー1の追加されたインデックスに基づいてオンチップキュー情報テーブルに追加される。例えば、グループIDは0に等しい。パケットキュー1の識別子に基づいて、一例としてQID(例えば、1512)を用いてハッシュ操作を行って、ハッシュ値1がf1(1512)と等しいことを知る。ハッシュ値1が23に等しいと仮定した場合、QIDが1512のエントリがあるかどうかを判定するために、ハッシュテーブル内の行f1(1512)、すなわち23が検索される。QIDが1512のエントリがない場合、ハッシュテーブルの記憶領域から空のエントリが記憶のために選択され、記憶されたコンテンツは「QID;インデックス」を含む。QIDに対応する記憶位置は1512を記憶し、インデックスに対応する記憶位置は、オンチップキュー情報テーブルに割り当てられた行アドレス(例えば、99番)を記憶するために用いられる。次に、パケット1の記憶アドレス、パケットキュー1のQID及びパケットキューセットに対応するリンクリスト内のパケットキュー1の前のノードが、オンチップキュー情報テーブル内の99番に対応する記憶場所に記憶される。パケットキューセットに対応するリンクリストのパケットキュー1の前ノードが特定されると、パケットキューセットに対応するリンクリストの先頭にあるパケットキューのインデックス値が、グループIDが0であることに基づいてオンチップレイテンシ間隔リストで特定され、パケットキューセットに対応するリンクリストの先頭にあるパケットキューのインデックス値に基づいて、パケットキューセットに対応するリンクリストの末尾にあるパケットキューの識別子、すなわち、パケットキューセットに対応するリンクリストのパケットキュー1の前のノードを見つけるためにオンチップキュー情報テーブルが検索される。
ハッシュ方式ではハッシュ衝突が起こり得る。具体的には、異なるQIDに対してハッシュ操作を行うことにより得られるハッシュ値は同じであることがあり、ハッシュ操作を行うことにより複数のQIDが同じハッシュ値又は同じ行にマップされ得る。したがって、本願のこの実施形態では、複数のエントリ(例えば、4つのエントリ、すなわち、4つの列)がハッシュ衝突を回避するためにハッシュテーブル内の各行のアドレスに記憶され得る。4つのエントリは完全に並列である。加えて、ハッシュ衝突をさらに低減するために、複数のハッシュテーブル、例えば2つのハッシュテーブルが本願のこの実施形態で用いられ得る。各ハッシュテーブルは異なるハッシュ(関数f1(x)及びf2(x))を用いる。もちろん、より多くのハッシュテーブル、例えば3つの左のハッシュテーブル又は4つの左のハッシュテーブルが用いられ得る。しかしながら、それに伴って、解決策の実施の複雑性が高まる。
4つのエントリ及び2つのハッシュテーブル(ハッシュテーブル1及びハッシュテーブル2)を用いる例を用いる。図11A及び図11Bを参照して、例えば、パケット1がパケットキュー1にエンキューされ、第1のメモリに記憶されている場合、パケットキュー1のレイテンシはT1よりも大きく、パケットキュー1の識別子に基づいて、一例としてQID(例えば、1512)を用いることによりハッシュ操作が行って、ハッシュ値1がf1(1512)に等しく、ハッシュ値2がf2(1512)に等しいことを知る。ハッシュ値1が23に等しく、ハッシュ値2が35に等しいと仮定して、QIDが1512のエントリがあるかどうかが確認するために、ハッシュテーブル1の行f1(1512)、すなわち、23内の4つのエントリと、ハッシュテーブル2の行f2(1512)、すなわち35内の4つのエントリが検索される。QIDが1512のエントリがない場合、空のエントリ(例えば、ハッシュテーブル1の行23と列1の位置)が記憶のために選択される。
第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定された場合、記録された最も大きいレイテンシ間隔に対応するパケットキューセットから1つのパケットキューがマイグレーションのために選択され、最も大きいレイテンシ間隔に対応するパケットキューセットの識別子(グループID)に対応するパケットキューセット内のリンクリストの先頭にあるパケットキューのインデックス(index)がオンチップレイテンシ間隔リストから取得される。選択されたパケットキュー1の末尾にある少なくとも1つのパケットの第1のメモリ内の記憶アドレスは、リンクリストの先頭にあるパケットキューのインデックスに基づいてオンチップキュー情報テーブル内で特定され、次いで、パケットキュー1の末尾にある少なくとも1つのパケットが記憶アドレスに基づいて第1のメモリから第2のメモリにマイグレートされる。
可能な実施では、メモリが具体的にバッファである例を用いる。ルーターチップにとって、可能な限りパケット損失を低減するためにオフチップバッファのリソースをどう効率的に用いるか、すなわち、(オンチップバッファ及びオフチップバッファを含む)バッファのリソースをどう効率的に用いるかも重要である。したがって、オフチップ帯域幅が許容される場合、バッファに記憶すべきパケット及び破棄すべきパケットを決定することも必要である。
従って、全バッファ(第1のメモリ及び第2のメモリ)に記憶される複数のパケットキューは、パケットキューの総レイテンシ又は全長に基づいて、複数の全バッファパケットキューに分類される。パケットキューの総レイテンシを例として用いる。異なる全バッファパケットキューセットは異なる総レイテンシ間隔に対応し、異なる全バッファパケットキューセットに対応する総レイテンシ間隔は重複しない。図12A及び図12Bを参照して、ネットワーク装置は全バッファハッシュテーブル(hash table)、ロングキュー情報テーブル(Long Queue Info
Table)、総バッファレイテンシ間隔リスト及び識別子、例えば最も大きいレイテンシ間隔に対応し、パケットキューを含む全バッファパケットキューセットのグループIDをさらに記憶し得る。
全バッファハッシュテーブルは、総レイテンシがT2よりも大きいパケットキューの識別子(例えば、QID)及びパケットキューのインデックス値(例えば、インデックス値)を記憶するために用いられ、インデックス値は、パケットキューのパケットキュー情報を記憶するための記憶場所を索引付けて特定するために用いられる。T2は比較的大きな値が設定され得る。例えば、T2が1msを上回る場合にのみパケットキューが記録される。全バッファパケットキューセットに対応するレイテンシ間隔は、記録されるパケットキューの数を減らし、全バッファパケットキューセットを狭くするために、比較的広くスパンされ得る。
ロングキュー情報テーブル(Long Queue Info Table)は、パケットキューの識別子及びパケットキューの総レイテンシ又は全長等の情報を記憶するために用いられる。ロングキュー情報テーブルは、パケットキューにあり、全バッファに記憶される最後のパケットの記憶アドレスを記憶するためにさらに用いられ得る。全バッファパケットキューセット内のパケットキューがリンクリストの形式で連続的に接続されている場合、ロングキュー情報テーブルはパケットキューの前のノード及びパケットキューの次のノードをさらに記憶し得る。全バッファレイテンシ間隔リストは、全バッファパケットキューセットの識別子と、全バッファパケットキューセットに対応する総レイテンシ間隔と、全バッファパケットキューセットに対応するリンクリストの先頭にあるパケットキューのインデックス値とを含む。
全バッファハッシュテーブル(hash table)、ロングキュー情報テーブル(Long Queue Info
Table)、全バッファレイテンシ間隔リスト及び最も大きいレイテンシ間隔に対応し、パケットキューを含む全バッファパケットキューセットの識別子を更新する方法は、ハッシュテーブル、オンチップキュー情報テーブル、オンチップレイテンシ間隔リスト及び最も大きいレイテンシ間隔に対応し、パケットキューを含むパケットキューセットの識別子を更新する前述の方法と同じである。ここでは、詳細はついて再度説明しない。
第1のメモリの利用可能な記憶領域と第2のメモリの利用可能な記憶領域との合計が第6の閾値よりも小さいと判定された場合、全バッファキューリストに基づいて、最も大きい総レイテンシ間隔に対応する全バッファパケットキューセットから1つのパケットキューが削除処理のために選択され得る。例えば、第1のメモリの利用可能な記憶領域と第2のメモリの利用可能な記憶領域との合計が第6の閾値よりも小さいと判定された場合に、最も大きいレイテンシ間隔に対応する全バッファパケットキューの識別子に対応する全バッファパケットキューセットのリンクリストの先頭にあるキューのインデックスが全バッファレイテンシ間隔リストから取得され、リンクリストの先頭にあるキューのインデックスに基づいて、パロングキュー情報テーブルから1つのパケットキュー、例えばパケットキューQ3が選択され、パケットキューQ3の末尾にある少なくとも1つのパケットの全バッファ内の記憶アドレスが特定され、パケットキューQ3の末尾にある少なくとも1つのパケットが、パケットキューQ3の末端にある少なくとも1つのパケットの全バッファ内の記憶アドレスに基づいて全バッファから削除される。
以下の第2の可能な実施では、ネットワーク装置が複数のパケットキューを第1のメモリに記憶する場合に、複数のパケットキューの長さ及び/又はレイテンシをどのように維持するかを詳細に説明する。
ネットワーク装置はパケットキュー情報を記録する。パケットキュー情報は、各パケットキューセットの識別子と、各パケットキューセットの識別子に対応するレイテンシ間隔と、各パケットキューセットに含まれるパケットキューの識別子と、各パケットキューのパラメータ値とを含む。例えば、パケットキュー情報は第1のメモリに記憶され得るか又は第2のメモリに記憶され得る。ネットワーク装置がさらに別のメモリを含む場合、パケットキュー情報は別のメモリに記憶されてもよい。
第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定された場合、記録された最も大きいレイテンシ間隔に対応するパケットキューセットから1つのパケットキューが削除のために選択される。例えば、図8に示す異なるレイテンシ間隔に対応するパケットキューを、例えば、パケットキューQ3を参照して、パケットキューQ3が破棄される場合、パケットキューQ3の末尾にある少なくとも1つのパケットが第1のメモリから削除される。低レイテンシパケットのために第1のメモリ(オンチップバッファ)のリソースを解放してオンチップバッファの利用を改善するために、第1のメモリからパケットキューQ3の末尾にある2つのパケットを削除する例を用いる。削除処理では、第1のメモリに残るパケットキューQ3の末尾にある新たなパケットがパケットキューQ3に留まる期間が、Q3が位置する現在のパケットキューセットに対応するレイテンシ間隔の閾値よりも小さい場合、パケットキューQ3は、より小さいレイテンシ間隔に対応するパケットキューセットにマイグレートされる。例えば、第1のメモリからパケットキューQ3の末尾にある少なくとも1つのパケットが削除された後で、第1のメモリに残るパケットキューQ3の末尾にある新たなパケットがパケットキューQ3に留まる期間が38μsの場合、パケットキューQ3は、リンクリストを用いることによりQ4に連続的に接続され得る。
パケットキューQ3について、新たなパケットがその後にパケットキューQ3にエンキューされた場合、新たなパケットは直接破棄されてもよく、パケットキューQ3に含まれる全ての後続受信パケットは、パケットキューQ3全体が短くなるまで破棄され得る。この場合、新たなパケットがパケットキューQ3にエンキューされると、新たなパケットは第1のメモリに記憶される。
パケットキューQ3全体が短くなるとは、前述の第1の条件及び第2の条件のうちの少なくとも1つが満たされることを意味する。第1の条件及び第2の条件の説明については、前述の説明を参照されたい。ここでは、詳細について再度説明しない。
パケットキューQ3に対して削除処理が行われた後に、第1のメモリの利用可能な記憶領域が依然第1の閾値よりも小さい場合、最も大きいレイテンシ間隔に対応するパケットキューセットから1つのパケットキューが再び削除処理のために選択され得る。例えば、パケットキューQ5が削除処理のために選択され、パケットキューQ5の末尾にある2つのパケットが第1のメモリから削除される。
実際には、レイテンシが比較的高いパケットキュー又は比較的長いパケットキューのみが削除を必要とする。記憶領域を節約するために、一部のパケットキューのパケットキュー情報はハッシュ方式で記憶され、索引付けられ得る。例えば、レイテンシがT1よりも大きいパケットキュー又は長さがL1よりも大きいパケットキューのパケットキュー情報がハッシュ方式で記録される。詳細については、ネットワーク装置が複数のパケットキューを第1のメモリ及び第2のメモリに記憶する場合に、ネットワーク装置が複数のパケットキューの長さ及び/又はレイテンシを維持する前述の第2の可能な実施の説明を参照されたい。ここでは、詳細について再度説明しない。
本願の実施形態で提供される解決策によれば、オンチップメモリの利用を改善でき、装置が用いられた場合の電力消費及びレイテンシを低減するために、オンチップメモリの使用がアラーム領域閾値に到達する前にオフチップメモリが用いられない。
図13は、本願の一実施形態に係るメモリ管理装置の概略構造図である。メモリ管理装置は、図5Aに示す方法を行うように構成され得る。具体的には、メモリ管理装置は、S501及びS502を行うように構成され得る。図13を参照して、メモリ管理装置1300は判定ユニット1301及び管理ユニット1302を含み得る。
判定ユニット1301は、ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定するように構成され、第1の閾値は0よりも大きく、第1のメモリは第1のパケットキューを記憶する。
管理ユニット1302は、第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいことに基づいて、第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除するように構成されている。
具体的には、判定ユニット1301はS501を行うように構成され得る。管理ユニット1302はS502を行うように構成され得る。判定ユニット1301及び管理ユニット1302の具体的な実施については、図5Aに示す実施形態の説明を参照されたい。ここでは、詳細について再度説明しない。
メモリ管理装置1300はネットワーク装置であり得る。メモリ管理装置1300は、ネットワーク装置内のインターフェイスボード1230であり得る。メモリ管理装置1300はトラフィックマネージャ301であり得る。可能な設計では、メモリ管理装置1300は、図4に示すネットワーク装置内のインターフェイスボード1240であり得る。メモリ管理装置1300はトラフィックマネージャ402であり得る。メモリ管理装置1300が具体的にトラフィックマネージャ301である場合、トラフィックマネージャ301はメモリ管理装置1300の機能を実施し得る。
可能な設計では、第1のパケットキューは、第1のメモリに記憶された複数のパケットキューのうちの1つであり、第1のパケットキューのパラメータ値は、複数のパケットキューのうちの別のパケットキューのパラメータ値よりも大きく、パケットキューのパラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキュー内に留まることが予想される期間である。
可能な設計では、ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は第1のメモリの帯域幅よりも小さい。
管理ユニット1302は、判定ユニット1301がネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定した後に、第2のメモリに、第1のパケットキューの末尾にある少なくとも1つのパケットを記憶し、キュー情報テーブルに記録された第1のパケットキューのパラメータ値を更新することを行うようにさらに構成されている。
第1のパケットキューのパラメータ値が第1のパケットキューのレイテンシである場合、第1のパケットキューの更新されたパラメータ値は、第1のメモリから少なくとも1つのパケットが削除される時から始まる、第1のパケットが第1のパケットキューに留まることが予想される期間であり、該第1のパケットは第1のパケットキュー内のパケットであり、第1のパケットは前記少なくとも1つのパケットに隣接し、第1のパケットは前記少なくとも1つのパケットの前に位置する。あるいは、第1のパケットキューのパラメータ値が第1のパケットキューの長さである場合、第1のパケットキューの更新されたパラメータ値は、第1のメモリに記憶され、前記少なくとも1つのパケットが削除される第1のパケットキューの長さである。
可能な設計では、管理ユニット1302は、キュー情報テーブルに第1のパケットの識別子を記憶することを行うようにさらに構成されている。
可能な設計では、前記装置は、エンキューすべきパケットを受信するように構成された受信ユニット1303をさらに含み得る。
1つの例では、受信ユニット1303は第2のパケットを受信する。管理ユニット1302は、第2のパケットを第2のパケットキューにエンキューすることと、第2のパケットが第2のパケットキューの末尾に位置するときに得られる第2のパケットキューのパラメータ値を特定することと、第のパケットが第2のパケットキューの末尾に位置するときに得られる第2のパケットキューのパラメータ値が、キュー情報テーブルに記録された第1のパケットキューのパラメータ値よりも大きい場合に、キュー情報テーブルに記録された第1のパケットキューの識別子を第2のパケットキューの識別子で置き換え、キュー情報テーブルに記録された第1のパケットキューのパラメータ値を第2のパケットキューのパラメータ値で置き換えることと、を行うようにさらに構成されている。
別の例では、受信ユニット1303は、管理ユニット1302が第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除した後で、第3のパケットキューにエンキューすべき第3のパケットを受信するように構成されている。
管理ユニット1302は、第1のパケットキューが第1の条件及び第2の条件のうちの少なくとも1つを満たす場合に、第3のパケットを第2のメモリに記憶すること、又は
第1のパケットキューが第1の条件も第2の条件も満たさない場合に、第3のパケットを第1のメモリに記憶することを行うようにさらに構成されている。
第1の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの長さが第3の閾値よりも小さいことであり、該第3の閾値は0よりも大きい。
第2の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの末尾にあるパケットが第1のパケットキューに留まることが予想される期間が第4の閾値よりも小さいことであり、該第4の閾値が0よりも大きい。
さらに別の例では、受信ユニット1303は、管理ユニット1302が第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除した後に、第1のパケットキューにエンキューすべき第3のパケットを受信することを行うようにさらに構成されている。管理ユニット1302は、第1のパケットキューが第1の条件及び第2の条件のうちの少なくとも1つを満たす場合に、第3のパケットを第1のメモリに記憶するのを回避すること、又は第1のパケットキューが第1の条件も第2の条件も満たさない場合に、第3のパケットを第1のメモリに記憶することを行うようにさらに構成されている。
第1の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの長さが第3の閾値よりも小さいことであり、該第3の閾値は0よりも大きい。
第2の条件は、第3のパケットが第1のパケットキューにエンキューされているかどうかが判定される場合に、第1のメモリ及び第2のメモリに記憶されている第1のパケットキューの末尾にあるパケットが第1のパケットキューに留まることが予想される期間が第4の閾値よりも小さいことであり、第4の閾値は0よりも大きい。
可能な設計では、ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、第1のメモリは第3のパケットキューをさらに記憶する。管理ユニット1302は、判定ユニット1301がネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定した後に、第2のメモリに、第1のパケットキューの末尾にある少なくとも1つのパケットを記憶することを行うようにさらに構成されている。判定ユニット1301は、管理ユニット1302が、第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいことに基づいて、第1のメモリから第1のパケットキューの末尾にある少なくとも1つのパケットを削除した後に、第1のメモリの利用可能な記憶領域が第2の閾値よりも小さいと判定することを行うようさらに構成され、該第2の閾値は第1の閾値よりも小さく、該第2の閾値は0よりも大きい。管理ユニット1302は、第1のメモリの利用可能な記憶領域が第2の閾値よりも小さいことに基づいて、第1のメモリから、第3のパケットキューの末尾にある少なくとも1つのパケットを削除し、第2のメモリに第3のパケットキューの末尾にある前記少なくとも1つのパケットを記憶するのを回避することを行うようにさらに構成されている。
可能な設計では、第1のパケットキューは、第1のパケットキューセットに含まれる複数のパケットキューのうちの1つであり、第1のパケットキューセット内の各パケットキューのパラメータ値は、第2のパケットキューセットに含まれる複数のパケットキューのそれぞれのパラメータ値よりも大きく、第1のパケットキューセット内の全てのパケットキューは第1のメモリに記憶され、第2のパケットキューセット内の全てのパケットキューは第1のメモリに記憶され、ネットワーク装置は、第1のパケットキューセットの識別子及び第2のパケットキューセットの識別子を記憶する。
パケットキューのパラメータ値は、パケットキューのレイテンシ又はパケットキューの長さであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキューに留まることが予想される期間である。
管理ユニット1302は、第1のパケットキューセットの記憶された識別子に基づいて第1のパケットキューを特定することと、第1のメモリから、第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除することと、を行うように具体的に構成されている。
可能な設計では、ネットワーク装置は、第1のパケットキューセットに対応する第1のリンクリストを記憶し、該第1のリンクリストに含まれる複数のノードは、第1のパケットキューセット内の複数のパケットキューと1対1の対応関係にあり、第1のリンクリスト内の各ノードは対応するパケットキューの識別子を含む。
第1のパケットキューセットの記憶された識別子に基づいて第1のパケットキューを特定する場合、管理ユニット1302は、第1のパケットキューセットの記憶された識別子に基づいて第1のリンクリストを特定することと、第1のリンクリスト内の第1のパケットキューの識別子に基づいて第1のパケットキューを特定することと、を行うように具体的に構成されている。
図14は、本願に係る別のメモリ管理装置の概略構造図である。メモリ管理装置1400は図5Aに示す方法を行うように構成され得る。図14を参照して、メモリ管理装置1400は、入力インターフェイス1401、出力インターフェイス1402、プロセッサ1403、メモリ1404及びバス1405を含む。入力インターフェイス1401、出力インターフェイス1402、プロセッサ1403及びメモリ1404は、バス1405を用いることによって互いに通信できる。入力インターフェイス1401はパケットを受信するように構成されている。出力インターフェイス1402はパケットを送信するように構成されている。メモリ1404はコンピュータプログラムを記憶するように構成されている。プロセッサ1403は、メモリ1404内のコンピュータプログラムにアクセスすることによって、図5に示す方法を行い得る。プロセッサ1403がメモリ1404内のコンピュータプログラムにアクセスすることにより、図5に示す方法を行う特定の実施については、図5に示す実施形態の説明を参照されたい。ここでは、詳細について再度説明しない。
メモリ管理装置1400はネットワーク装置であり得る。メモリ管理装置1400はネットワーク装置内のインターフェイスボード1230であり得る。メモリ管理装置1400はトラフィックマネージャ301であり得る。可能な設計では、メモリ管理装置100は、図4に示すネットワーク装置内のインターフェイスボード1240であり得る。メモリ管理装置100はトラフィックマネージャ402であり得る。メモリ管理装置1400が具体的にトラフィック管理装置301である場合、トラフィック管理装置301はメモリ管理装置1400の機能を実施し得る。具体的には、入力インターフェイス1401は物理インターフェイスカード1233によって実施され得る。出力インターフェイス1402はiFIC303によって実施され得る。プロセッサ1403は、WRED回路603及びキュー閾値決定回路604によって実施され得る。入力インターフェイス1401、出力インターフェイス1402、プロセッサ1403及びメモリ1404の特定の実施については、図6に示す実施形態の説明を参照されたい。ここでは、詳細について再度説明しない。
本願は、コンピュータ読み取り可能記憶媒体をさらに提供する。コンピュータ読み取り可能記憶媒体はコンピュータプログラムを記憶するように構成されている。コンピュータプログラムが実行された場合、コンピュータは図5Aに示す方法を行うことができ得る。詳細については、図5Aに示す実施形態の説明を参照されたい。ここでは、詳細について再度説明しない。可能な設計では、コンピュータ読み取り可能記憶媒体は不揮発性コンピュータ読み取り可能記憶媒体であり得る。
本願はコンピュータプログラム製品をさらに提供する。コンピュータプログラム製品はコンピュータプログラムを含む。コンピュータプログラムが実行された場合、コンピュータは、図5Aに示す方法を行うことができ得る。詳細について、図5Aに示す実施形態の説明を参照されたい。ここでは、詳細については再度説明しない。
前述のプロセスのシーケンス番号は、本願の様々な実施形態における実行シーケンスを意味しないことを理解すべきである。プロセスの実行シーケンスは、プロセスの機能及び内部論理に従って決定されるべきであり、本願の実施形態の実施プロセスに対する限定として解釈すべきではない。
当業者であれば、本明細書に開示の実施形態で説明された例との組み合わせて、モジュール及び方法動作は、電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアとの組み合わせにより実施され得ることを気付き得る。機能がハードウェア又はソフトウェアによって行われるかは、技術的解決策の特定の用途及び設計制約条件に依存する。当業者であれば、特定の用途のために説明した機能を実施するために異なる方法を用いり得る。
当業者であれば、便利で簡潔な説明のために、前述のシステム、装置及びモジュールの詳細な動作プロセスについては、前述の方法の実施形態における対応するプロセスを参照することを明確に理解し得る。ここでは、詳細について再度説明しない。
前述の実施形態におけるソフトウェアは、コンピュータプログラム製品の形態で実施され得る。コンピュータプログラム製品は1つ以上のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上にロードされ、実行されると、本願の実施形態に係る手順又は機能の全て又は一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク又は他のプログラム可能な装置であり得る。コンピュータ命令はコンピュータ読み取り可能記憶媒体に記憶され得るか又はコンピュータ読み取り可能記憶媒体から別のコンピュータ読み取り可能記憶媒体に送信され得る。例えば、コンピュータ命令は、有線又は無線方式でウェブサイト、コンピュータ、サーバ又はデータセンターから別のウェブサイト、コンピュータ、サーバ又はデータセンターに送信され得る。有線方式は同軸ケーブル、光ファイバ又はデジタル加入者線(digital subscriber line、DSL)であり得る。無線方式は赤外線、無線又はマイクロ波であり得る。コンピュータ読み取り可能記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体又はサーバ若しくはデータセンター等の1つ以上の使用可能な媒体を統合するデータ記憶装置であり得る。使用可能な媒体は、磁気媒体、光媒体、半導体媒体等であり得る。本明細書の実施形態は全て漸進的に記載されている。実施形態における同じ又は同様の部分については、これらの実施形態を参照されたい。各実施形態は、他の実施形態との差異に焦点を当てる。とりわけ、装置及びシステムの実施形態は、方法の実施形態と基本的に同様であるため、簡潔に説明されている。関連する部分については、方法の実施形態の部分的な説明を参照されたい。磁気媒体はフロッピーディスク、ハードディスク又は磁気テープであり得る。光学媒体はデジタル多用途ディスク(digital versatile disc、DVD)であり得る。半導体媒体は固体ディスク(solid state disk、SSD)であり得る。

Claims (18)

  1. メモリ管理方法であって、
    ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することであって、該第1の閾値は0よりも大きく、該第1のメモリは第1のパケットキューを記憶する、ことと、
    前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することと、
    を含み、
    前記第1のパケットキューは、前記第1のメモリに記憶された複数のパケットキューのうちの1つであり、前記第1のパケットキューのパラメータ値は、前記複数のパケットキューのうちの別のパケットキューのパラメータ値よりも大きく、パケットキューのパラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり、該パケットキューの長さはエンキューされているパケットの合計サイズであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキューに留まることが予想される期間である、方法。
  2. 前記ネットワーク装置はキュー情報テーブルを記憶し、該キュー情報テーブルは、前記第1のパケットキューのパラメータ値及び前記第1のパケットキューの識別子を記録し、
    前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することは、
    前記キュー情報テーブルに記録された前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定し、前記第1のメモリから前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除すること、
    を含む、請求項に記載の方法。
  3. 前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、
    前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することの後に、前記方法は、
    前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶することと、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を更新することと、をさらに含み、
    前記第1のパケットキューのパラメータ値が前記第1のパケットキューのレイテンシである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリから前記少なくとも1つのパケットが削除される時から始まる、第1のパケットが前記第1のパケットキューに留まることが予想される期間であり、該第1のパケットは前記第1のパケットキュー内のパケットであり、前記第1のパケットは前記少なくとも1つのパケットに隣接し、前記第1のパケットは前記少なくとも1つのパケットの前に位置し、又は前記第1のパケットキューのパラメータ値が前記第1のパケットキューの長さである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリに記憶され、前記少なくとも1つのパケットが削除される前記第1のパケットキューの長さである、請求項に記載の方法。
  4. 前記方法は、前記キュー情報テーブルに前記第1のパケットの識別子を記憶することをさらに含む、請求項に記載の方法。
  5. 前記方法は、
    第2のパケットを受信することと、
    前記第2のパケットを第2のパケットキューにエンキューすることと、
    前記第2のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値を特定することと、
    前記第のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値が、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値よりも大きい場合に、前記キュー情報テーブルに記録された前記第1のパケットキューの識別子を前記第2のパケットキューの識別子で置き換え、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を前記第2のパケットキューのパラメータ値で置き換えることと、
    をさらに含む、請求項乃至のいずれか一項に記載の方法。
  6. 前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、前記第1のメモリは第3のパケットキューをさらに記憶し、
    前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することの後に、前記方法は、
    前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶すること、
    をさらに含み、
    前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することの後に、前記方法は、
    前記第1のメモリの利用可能な記憶領域が第2の閾値よりも小さいと判定することであって、該第2の閾値は前記第1の閾値よりも小さく、該第2の閾値は0よりも大きい、ことと、
    前記第1のメモリの利用可能な記憶領域が前記第2の閾値よりも小さいことに基づいて、前記第1のメモリから、前記第3のパケットキューの末尾にある少なくとも1つのパケットを削除し、前記第2のメモリに前記第3のパケットキューの末尾にある前記少なくとも1つのパケットを記憶するのを回避することと、
    をさらに含む、請求項1又は2に記載の方法。
  7. 前記第1のパケットキューは、第1のパケットキューセットに含まれる複数のパケットキューのうちの1つであり、該第1のパケットキューセット内の各パケットキューのパラメータ値は、第2のパケットキューセットに含まれる複数のパケットキューのそれぞれのパラメータ値よりも大きく、前記第1のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記第2のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記ネットワーク装置は、前記第1のパケットキューセットの識別子及び前記第2のパケットキューセットの識別子を記憶し、
    パケットキューのパラメータ値は、パケットキューのレイテンシ又はパケットキューの長さであり、該パケットキューの長さはエンキューされているパケットの合計サイズであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキューに留まることが予想される期間であり、
    前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することは、
    前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定することと、
    前記第1のメモリから、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除することと、
    を含む、請求項1に記載の方法。
  8. 前記ネットワーク装置は、前記第1のパケットキューセットに対応する第1のリンクリストを記憶し、該第1のリンクリストに含まれる複数のノードは、前記第1のパケットキューセット内の前記複数のパケットキューと1対1の対応関係にあり、前記第1のリンクリスト内の各ノードは対応するパケットキューの識別子を含み、
    前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定することは、
    前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のリンクリストを特定することと、
    前記第1のリンクリスト内の前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定することと、
    を含む、請求項に記載の方法。
  9. メモリ管理装置であって、
    ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定することを行うように構成された判定ユニットであって、該第1の閾値は0よりも大きく、該第1のメモリは第1のパケットキューを記憶する、判定ユニットと、
    前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除することを行うように構成された管理ユニットと、
    を含み、
    前記第1のパケットキューは、前記第1のメモリに記憶された複数のパケットキューのうちの1つであり、前記第1のパケットキューのパラメータ値は、前記複数のパケットキューのうちの別のパケットキューのパラメータ値よりも大きく、パケットキューのパラメータ値はパケットキューのレイテンシ又はパケットキューの長さであり、該パケットキューの長さはエンキューされているパケットの合計サイズであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキューに留まることが予想される期間である、装置。
  10. 前記ネットワーク装置はキュー情報テーブルを記憶し、該キュー情報テーブルは、前記第1のパケットキューのパラメータ値及び前記第1のパケットキューの識別子を記録し、
    前記管理ユニットは、前記キュー情報テーブルに記録された前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定することと、前記第1のメモリから前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除することを行うように具体的に構成されている、請求項に記載の装置。
  11. 前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、
    前記管理ユニットは、前記判定ユニットが前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定した後に、前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶し、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を更新することを行うようにさらに構成され、
    前記第1のパケットキューのパラメータ値が前記第1のパケットキューのレイテンシである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリから前記少なくとも1つのパケットが削除される時から始まる、第1のパケットが前記第1のパケットキューに留まることが予想される期間であり、該第1のパケットは前記第1のパケットキュー内のパケットであり、前記第1のパケットは前記少なくとも1つのパケットに隣接し、前記第1のパケットは前記少なくとも1つのパケットの前に位置し、又は前記第1のパケットキューのパラメータ値が前記第1のパケットキューの長さである場合、前記第1のパケットキューの更新されたパラメータ値は、前記第1のメモリに記憶され、前記少なくとも1つのパケットが削除される前記第1のパケットキューの長さである、請求項10に記載の装置。
  12. 前記管理ユニットは、前記キュー情報テーブルに前記第1のパケットの識別子を記憶することを行うようにさらに構成されている、請求項11に記載の装置。
  13. 前記装置は、
    第2のパケットを受信するように構成された受信ユニットをさらに含み、
    前記管理ユニットは、前記第2のパケットを第2のパケットキューにエンキューすることと、前記第2のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値を特定することと、前記第のパケットが前記第2のパケットキューの末尾に位置するときに得られる前記第2のパケットキューのパラメータ値が、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値よりも大きい場合に、前記キュー情報テーブルに記録された前記第1のパケットキューの識別子を前記第2のパケットキューの識別子で置き換え、前記キュー情報テーブルに記録された前記第1のパケットキューのパラメータ値を前記第2のパケットキューのパラメータ値で置き換えることと、を行うようにさらに構成されている、請求項10乃至12のいずれか一項に記載の装置。
  14. 前記ネットワーク装置は第2のメモリを含み、該第2のメモリの帯域幅は前記第1のメモリの帯域幅よりも小さく、前記第1のメモリは第3のパケットキューをさらに記憶し、
    前記管理ユニットは、前記判定ユニットが、前記ネットワーク装置内の第1のメモリの利用可能な記憶領域が第1の閾値よりも小さいと判定した後に、前記第2のメモリに、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを記憶することを行うようにさらに構成され、
    前記判定ユニットは、前記管理ユニットが、前記第1のメモリの利用可能な記憶領域が前記第1の閾値よりも小さいことに基づいて、前記第1のメモリから前記第1のパケットキューの末尾にある少なくとも1つのパケットを削除した後に、前記第1のメモリの利用可能な記憶領域が第2の閾値よりも小さいと判定することを行うようさらに構成され、該第2の閾値は前記第1の閾値よりも小さく、該第2の閾値は0よりも大きく、
    前記管理ユニットは、前記第1のメモリの利用可能な記憶領域が前記第2の閾値よりも小さいことに基づいて、前記第1のメモリから、前記第3のパケットキューの末尾にある少なくとも1つのパケットを削除し、前記第2のメモリに前記第3のパケットキューの末尾にある前記少なくとも1つのパケットを記憶するのを回避することを行うようにさらに構成されている、請求項9又は10に記載の装置。
  15. 前記第1のパケットキューは、第1のパケットキューセットに含まれる複数のパケットキューのうちの1つであり、該第1のパケットキューセット内の各パケットキューのパラメータ値は、第2のパケットキューセットに含まれる複数のパケットキューのそれぞれのパラメータ値よりも大きく、前記第1のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記第2のパケットキューセット内の全てのパケットキューは前記第1のメモリに記憶され、前記ネットワーク装置は、前記第1のパケットキューセットの識別子及び前記第2のパケットキューセットの識別子を記憶し、
    パケットキューのパラメータ値は、パケットキューのレイテンシ又はパケットキューの長さであり、該パケットキューの長さはエンキューされているパケットの合計サイズであり、パケットキューのレイテンシは、パケットキューの末尾にあるパケットが該パケットキューに留まることが予想される期間であり、
    前記管理ユニットは、前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定することと、前記第1のメモリから、前記第1のパケットキューの末尾にある前記少なくとも1つのパケットを削除することと、を行うように具体的に構成されている、請求項に記載の装置。
  16. 前記ネットワーク装置は、前記第1のパケットキューセットに対応する第1のリンクリストを記憶し、該第1のリンクリストに含まれる複数のノードは、前記第1のパケットキューセット内の前記複数のパケットキューと1対1の対応関係にあり、前記第1のリンクリスト内の各ノードは対応するパケットキューの識別子を含み、
    前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のパケットキューを特定する場合、前記管理ユニットは、前記第1のパケットキューセットの記憶された識別子に基づいて前記第1のリンクリストを特定することと、前記第1のリンクリスト内の前記第1のパケットキューの識別子に基づいて前記第1のパケットキューを特定することと、を行うように具体的に構成されている、請求項15に記載の装置。
  17. プロセッサと、該プロセッサに結合されたメモリとを含むメモリ管理装置であって、前記メモリはコンピュータプログラムを記憶し、前記プロセッサが該コンピュータプログラムを実行した場合、前記装置は請求項1乃至のいずれか一項に記載の方法を行うことができる、メモリ管理装置。
  18. コンピュータ読み取り可能記憶媒体であって、当該コンピュータ読み取り可能記憶媒体はコンピュータプログラムを記憶し、該コンピュータプログラムが実行された場合、コンピュータは請求項1乃至のいずれか一項に記載の方法を行うことができる、コンピュータ読み取り可能記憶媒体。
JP2021549288A 2019-02-22 2019-02-22 メモリ管理方法及び装置 Active JP7241194B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/075935 WO2020168563A1 (zh) 2019-02-22 2019-02-22 一种存储器的管理方法及装置

Publications (2)

Publication Number Publication Date
JP2022523195A JP2022523195A (ja) 2022-04-21
JP7241194B2 true JP7241194B2 (ja) 2023-03-16

Family

ID=72144041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021549288A Active JP7241194B2 (ja) 2019-02-22 2019-02-22 メモリ管理方法及び装置

Country Status (6)

Country Link
US (1) US11695710B2 (ja)
EP (1) EP3920475A4 (ja)
JP (1) JP7241194B2 (ja)
KR (1) KR20210130766A (ja)
CN (1) CN113454957B (ja)
WO (1) WO2020168563A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11381515B2 (en) * 2019-06-28 2022-07-05 Intel Corporation On-demand packet queuing in a network device
CN114257559B (zh) * 2021-12-20 2023-08-18 锐捷网络股份有限公司 一种数据报文的转发方法及装置
WO2023130997A1 (zh) * 2022-01-07 2023-07-13 华为技术有限公司 管理流量管理tm控制信息的方法、tm模块和网络转发设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002185501A (ja) 2000-12-11 2002-06-28 Toshiba Corp ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
US20050240745A1 (en) 2003-12-18 2005-10-27 Sundar Iyer High speed memory control and I/O processor system
WO2010089886A1 (ja) 2009-02-06 2010-08-12 富士通株式会社 パケットバッファ装置及びパケット廃棄方法
JP2014506075A (ja) 2011-01-13 2014-03-06 アルカテル−ルーセント ネットワーク要素のオンチップバッファメモリにおいての定期的な早期廃棄を実装するためのシステムおよび方法
US20170134282A1 (en) 2015-11-10 2017-05-11 Ciena Corporation Per queue per service differentiation for dropping packets in weighted random early detection

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031565A1 (en) * 2004-07-16 2006-02-09 Sundar Iyer High speed packet-buffering system
KR100875739B1 (ko) * 2007-02-12 2008-12-26 삼성전자주식회사 Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법
CN102223675B (zh) * 2011-06-08 2014-06-04 大唐移动通信设备有限公司 拥塞告警及处理方法、系统和设备
CN102957629B (zh) * 2011-08-30 2015-07-08 华为技术有限公司 队列管理的方法和装置
CN102404206A (zh) * 2011-11-04 2012-04-04 深圳市海思半导体有限公司 入队处理方法及设备
CN102595512B (zh) * 2012-03-19 2014-08-27 福建星网锐捷网络有限公司 一种报文缓存方法及接入点
CN102789336B (zh) * 2012-07-04 2015-12-16 广东威创视讯科技股份有限公司 多屏拼接触控方法和系统
CN103647726B (zh) * 2013-12-11 2017-01-11 华为技术有限公司 一种报文调度方法及装置
EP2884707B1 (en) * 2013-12-16 2016-04-27 Alcatel Lucent Method for controlling buffering of packets in a communication network
CN106325758B (zh) * 2015-06-17 2019-10-22 深圳市中兴微电子技术有限公司 一种队列存储空间管理方法及装置
CN106330760A (zh) * 2015-06-30 2017-01-11 深圳市中兴微电子技术有限公司 一种缓存管理的方法和装置
CN105978821B (zh) * 2016-07-21 2019-09-06 杭州迪普科技股份有限公司 网络拥塞避免的方法及装置
CN106598495A (zh) * 2016-12-07 2017-04-26 深圳市深信服电子科技有限公司 一种混合存储服务质量的控制方法及控制装置
CN106789729B (zh) * 2016-12-13 2020-01-21 华为技术有限公司 一种网络设备中的缓存管理方法及装置
CN108234348B (zh) * 2016-12-13 2020-09-25 深圳市中兴微电子技术有限公司 一种队列操作中的处理方法及装置
CN109343790B (zh) * 2018-08-06 2021-07-13 百富计算机技术(深圳)有限公司 一种基于nand flash的数据存储方法、终端设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002185501A (ja) 2000-12-11 2002-06-28 Toshiba Corp ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
US20050240745A1 (en) 2003-12-18 2005-10-27 Sundar Iyer High speed memory control and I/O processor system
WO2010089886A1 (ja) 2009-02-06 2010-08-12 富士通株式会社 パケットバッファ装置及びパケット廃棄方法
JP2014506075A (ja) 2011-01-13 2014-03-06 アルカテル−ルーセント ネットワーク要素のオンチップバッファメモリにおいての定期的な早期廃棄を実装するためのシステムおよび方法
US20170134282A1 (en) 2015-11-10 2017-05-11 Ciena Corporation Per queue per service differentiation for dropping packets in weighted random early detection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
森下 祐一 ほか,呼受付制御を行うVoIP網におけるRED型バッファ制御法導入効果の検討 Effect of RED based queuing control on VoIP networks with call admission control,電子情報通信学会技術研究報告 Vol.106 No.495 IEICE Technical Report,日本,社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2007年01月18日,pp.41-46

Also Published As

Publication number Publication date
EP3920475A4 (en) 2022-02-16
US11695710B2 (en) 2023-07-04
CN113454957A (zh) 2021-09-28
CN113454957B (zh) 2023-04-25
EP3920475A1 (en) 2021-12-08
JP2022523195A (ja) 2022-04-21
KR20210130766A (ko) 2021-11-01
WO2020168563A1 (zh) 2020-08-27
US20210392092A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US20220368635A1 (en) Network traffic load balancing
CN109412964B (zh) 报文控制方法及网络装置
US11695710B2 (en) Buffer management method and apparatus
US9807027B2 (en) Maintaining packet order in a multi processor network device
US7606236B2 (en) Forwarding information base lookup method
US8184540B1 (en) Packet lifetime-based memory allocation
US10044646B1 (en) Systems and methods for efficiently storing packet data in network switches
US11637786B1 (en) Multi-destination traffic handling optimizations in a network device
CN100521655C (zh) 按每流排队的物理队列动态共享装置
US11159440B2 (en) Hybrid packet memory for buffering packets in network devices
EP2613479A1 (en) Relay device
US9942169B1 (en) Systems and methods for efficiently searching for stored data
US7248586B1 (en) Packet forwarding throughput with partial packet ordering
US11646970B2 (en) Method and apparatus for determining packet dequeue rate
US10594631B1 (en) Methods and apparatus for memory resource management in a network device
US10684960B2 (en) Managing cache memory in a network element based on costs associated with fetching missing cache entries
CN108989233B (zh) 拥塞管理方法及装置
TW201642140A (zh) 用於防止欠載之封包記憶體系統、方法及裝置
US10581759B1 (en) Sharing packet processing resources
US9922000B2 (en) Packet buffer with dynamic bypass
JP5191059B2 (ja) バッファ回路及びバッファ回路制御方法
US12101260B1 (en) Multi-destination traffic handling optimizations in a network device
US12067397B2 (en) NIC line-rate hardware packet processing
JP4638851B2 (ja) パケット処理装置
JP2016178369A (ja) データ送信制御装置、データ送信制御方法、及び、プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230306

R150 Certificate of patent or registration of utility model

Ref document number: 7241194

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150