(57)【要約】【課題】シェーピング処理に際してパケットを格納するバッファとして用いられるＤＲＡＭの省電力化を図る。【解決手段】バッファ３０は高優先度対応メモリ部３１−１、中優先度対応メモリ部３１−２および低優先度対応メモリ部３１−３から成る。シェーピング処理に際してバッファにパケットを格納する際は、優先度が対応するメモリ部３１に対してデータを格納する。この際、低優先度対応メモリ部３１−３については、１つのパケットデータは１カラム内に格納されるようにする。そのうえで、高優先度対応メモリ部３１−１および中優先度対応メモリ部３１−２についてはオートリフレッシュを実行させ、低優先度対応メモリ部３１−３については、データが格納された列のみを対象とするカラム指定リフレッシュを実行させるように構成する。【選択図】図３
2012204931.tif 000002
【特許請求の範囲】
【請求項１】
シェーピング処理の対象となる処理対象パケットのデータが格納され、それぞれが異なる優先度に対応する複数のメモリ部と、
優先度が一定以上の高優先度の処理対象パケットを、前記複数のメモリ部において前記高優先度に対応する高優先度対応メモリ部に格納させ、優先度が一定以下の低優先度の処理対象パケットを、前記低優先度に対応する低優先度対応メモリ部に格納させるパケット格納制御手段と、
前記高優先度対応メモリ部にてオートリフレッシュが実行され、前記低優先度対応メモリ部にて前記処理対象パケットが格納されたカラムのみをリフレッシュするカラム指定リフレッシュが実行されるように制御するリフレッシュ制御手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記パケット格納制御手段は、
前記高優先度対応メモリ部に対してアドレス順にしたがって前記処理対象パケットのデータを書き込む順次格納させ、前記低優先度対応メモリ部に対して、１つの前記処理対象パケットのデータが１カラム内に収まるように格納させる、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記パケット格納制御手段は、
前記低優先度の処理対象パケットのパケット長が１カラムに対応するサイズを越える場合には、この低優先度の処理対象パケットを、前記低優先度対応メモリ部よりも高い優先度に対応するメモリ部に対して格納する、
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記パケット格納制御手段は、
前記複数のメモリ部における空き容量が一定以上の場合には、前記メモリ部のうち前記高優先度と前記低優先度との中間の優先度に対応する中優先度対応メモリ部に対して、１つの前記処理対象パケットのデータが１カラム内に収まるように処理対象パケットのデータを格納させ、前記複数のメモリ部における空き容量が一定以上の場合には、前記高優先度対応メモリ部に対してアドレス順にしたがって前記処理対象パケットのデータを順次格納させる、
ことを特徴とする請求項１乃至請求項３のいずれかに記載の通信装置。
【請求項５】
前記リフレッシュ制御手段は、
前記中優先度対応メモリ部において１つの前記処理対象パケットのデータが１カラム内に収まるように処理対象パケットのデータが格納されている場合には、当該中優先度対応メモリ部にてカラム指定リフレッシュが実行されるように制御し、前記高優先度対応メモリ部においてアドレス順にしたがって前記処理対象パケットのデータが格納されている場合には、当該中優先度対応メモリ部にてオートリフレッシュが実行されるように制御する
ことを特徴とする請求項４に記載の通信装置。
【請求項６】
シェーピング処理の対象となる処理対象パケットのうち優先度が一定以上の高優先度の処理対象パケットを、複数のメモリ部において前記高優先度に対応する高優先度対応メモリ部に格納させ、前記処理対象パケットのうち優先度が一定以下の低優先度の処理対象パケットを、低優先度に対応する低優先度対応メモリ部に格納させるパケット格納制御手順と、
前記高優先度対応メモリ部にてオートリフレッシュが実行され、前記低優先度対応メモリ部にて前記処理対象パケットが格納されたカラムのみをリフレッシュするカラム指定リフレッシュが実行されるように制御するリフレッシュ制御手順と、
を備えることを特徴とする通信方法。
【請求項７】
通信装置に、
シェーピング処理の対象となる処理対象パケットのうち優先度が一定以上の高優先度の処理対象パケットを、複数のメモリ部において前記高優先度に対応する高優先度対応メモリ部に格納させ、前記処理対象パケットのうち優先度が一定以下の低優先度の処理対象パケットを、低優先度に対応する低優先度対応メモリ部に格納させるパケット格納制御手順と、
前記高優先度対応メモリ部にてオートリフレッシュが実行され、前記低優先度対応メモリ部にて前記処理対象パケットが格納されたカラムのみをリフレッシュするカラム指定リフレッシュが実行されるように制御するリフレッシュ制御手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットやフレームを送受信する通信装置とその方法に関する。また、上記通信装置に実行させるプログラムに関する。
【背景技術】
【０００２】
Ｌ２（レイヤ２）スイッチやＬ３（レイヤ３）スイッチなどの通信装置が実装するＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）機能の１つとして、キューイングにより輻輳制御を行うシェーピングが知られている。
【０００３】
例えば特許文献１には、次のようなトラヒックシェーピング回路の技術が開示されている。つまり、リーキーバケツ方式の拡張として、ＷＦＱ（Ｗｅｉｇｈｔｅｄ  Ｆａｉｒ  Ｑｕｅｕｉｎｇ）パケットを送出するための閾値のほかに、ＬＬＱ（Ｌｏｗ  Ｌａｔｅｎｃｅｙ  Ｑｕｅｕｉｎｇ）パケットの送出を許可するための閾値を設定する。後者の閾値は前者よりも大きい値に設定する。これにより、ＷＦＱパケットが送信できない場合でもＬＬＱパケットを優先的に送信可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２６３４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のシェーピングに際しては廃棄しないパケットをバッファに格納していくことが行われるが、このバッファとしてのハードウェアにはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に代表される半導体メモリが用いられる。このＤＲＡＭでは、記憶内容が失われないように一定時間ごとに電荷を再注入するリフレッシュが行われる。
【０００６】
また、シェーピングに際しては、優先度ごとにバッファ（キュー）を設けることが論理的に行われるが、このバッファへのパケットの格納は、物理的には、廃棄対象でないパケットのデータを、ＤＲＡＭの空き領域に対して単に格納していくという動作になる。このために、どのバンクのＤＲＡＭにデータが記憶されていても記憶内容が失われることがないようにするため、すべてのＤＲＡＭを一律にリフレッシュすることとしている。そのうえで、通信装置が備えるＤＲＡＭではオートリフレッシュが採用されることが多い。
【０００７】
通信装置の消費電力はできるだけ低減されることが好ましい。ＤＲＡＭはリフレッシュ動作において最も電力を消費する。しかし、上記の構成では、データが記憶されていないＤＲＡＭ上の領域も一律にリフレッシュが行われてしまうという無駄が生じてしまう。
【０００８】
本発明は上記の課題を解決することのできる通信装置、通信方法、プログラムを提供する。
【課題を解決するための手段】
【０００９】
本発明は、シェーピング処理の対象となる処理対象パケットのデータが格納され、それぞれが異なる優先度に対応する複数のメモリ部と、優先度が一定以上の高優先度の処理対象パケットを、前記複数のメモリ部において前記高優先度に対応する高優先度対応メモリ部に格納させ、優先度が一定以下の低優先度の処理対象パケットを、前記低優先度に対応する低優先度対応メモリ部に格納させるパケット格納制御手段と、前記高優先度対応メモリ部にてオートリフレッシュが実行され、前記低優先度対応メモリ部にて前記処理対象パケットが格納されたカラムのみをリフレッシュするカラム指定リフレッシュが実行されるように制御するリフレッシュ制御手段とを備えることを特徴とする通信装置である。
【００１０】
また、本発明は、シェーピング処理の対象となる処理対象パケットのうち優先度が一定以上の高優先度の処理対象パケットを、複数のメモリ部において前記高優先度に対応する高優先度対応メモリ部に格納させ、前記処理対象パケットのうち優先度が一定以下の低優先度の処理対象パケットを、低優先度に対応する低優先度対応メモリ部に格納させるパケット格納制御手順と、前記高優先度対応メモリ部にてオートリフレッシュが実行され、前記低優先度対応メモリ部にて前記処理対象パケットが格納されたカラムのみをリフレッシュするカラム指定リフレッシュが実行されるように制御するリフレッシュ制御手順とを備えることを特徴とする通信方法である。
【００１１】
また、本発明は、通信装置に、シェーピング処理の対象となる処理対象パケットのうち優先度が一定以上の高優先度の処理対象パケットを、複数のメモリ部において前記高優先度に対応する高優先度対応メモリ部に格納させ、前記処理対象パケットのうち優先度が一定以下の低優先度の処理対象パケットを、低優先度に対応する低優先度対応メモリ部に格納させるパケット格納制御手順と、前記高優先度対応メモリ部にてオートリフレッシュが実行され、前記低優先度対応メモリ部にて前記処理対象パケットが格納されたカラムのみをリフレッシュするカラム指定リフレッシュが実行されるように制御するリフレッシュ制御手順とを実行させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、通信装置がシェーピングのためにバッファとして使用する半導体メモリの消費電力が低減されるという効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における通信装置１の構成例を示す図である。
【図２】本実施の形態における処理対象パケットの優先度とパケット長との関係例を示す図である。
【図３】本実施の形態におけるバッファ３０の記憶内容例を模式的に示す図である。
【図４】本実施の形態におけるシェーピング処理の可否を決定するための処理手順例を示す図である。
【図５】本実施の形態におけるシェーピング処理のための処理手順例を示す図である。
【図６】本実施の形態におけるリフレッシュ制御のための処理手順例を示す図である。
【図７】本実施の形態のシェーピング処理によらない場合に想定されるバッファ３０へのパケットデータの書き込み態様例を示す図である。
【発明を実施するための形態】
【００１４】
図１は、本発明の実施の形態としての通信装置１の構成例を示している。なお、この通信装置１は、例えば、Ｌ２スイッチ、Ｌ３スイッチまたはルータなどに適用することができる。また、以降において通信装置１はパケットを処理するものとして説明するが、本実施の形態においてパケットは、例えばＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）フレームなどに代表されるフレームと同義であるものとする。
【００１５】
図１に示す通信装置１は、パケット処理部１０、メモリ制御部２０およびバッファ３０を備える。パケット処理部１０は、複数のポートごとに対応して送受信されるパケットについて所要の処理を実行する。例えば、パケット処理部１０は、受信したパケットのアドレスの読み込み処理、アドレスの更新、ルーティングテーブルまたはフォワーディングテーブルを参照してのルーティング処理またはフォワーディング処理を実行する。また、ＱｏＳ制御を実行する。本実施の形態においては、ＱｏＳ制御としてシェーピング処理を実行可能とされている。シェーピング処理は、ＱｏＳ制御における帯域制御として、予め定めた帯域を超過したパケットを一旦バッファに格納し、この後に送信出力させる処理である。このようなパケット制御の結果、出力レートは平滑化される。
【００１６】
メモリ制御部２０は、パケット処理部１０の命令に応じて、バッファ３０に対してパケットデータの書き込みおよび読み出しを実行する。また、メモリ制御部２０は、例えばリフレッシュコマンドを発行することにより、バッファ３０にリフレッシュを実行させるための制御も実行する。
【００１７】
バッファ３０は、シェーピング処理に際してパケットの待ち行列が格納されるキューとして用いられる記憶装置である。本実施の形態においてこのバッファ３０は、物理的にはＤＲＡＭを採用しているものとする。ＤＲＡＭは、記憶内容が消去されてしまわないようにメモリセルに対して一定期間ごとに電荷を注入する必要がある。すなわち、リフレッシュを行う必要がある。
【００１８】
また、本実施の形態のバッファ３０は、パケットに設定される優先度ごとに応じたメモリ部を有する。ここでの説明にあたり、パケットの優先度は、高・中・低の３段階で定義されていることを前提とする。これに対応して、バッファ３０は、高優先度対応メモリ部３１−１、中優先度対応メモリ部３１−２および低優先度対応メモリ部３１−３の３つのメモリ部３１を備えるものとする。なお、このバッファ３０としてのＤＲＡＭは、複数のメモリチップからなるものとする。そのうえで、高優先度対応メモリ部３１−１、中優先度対応メモリ部３１−２および低優先度対応メモリ部３１−３は、それぞれ、物理的に異なるメモリチップが対応する。
【００１９】
なお、実装としては、物理的に異なるメモリチップごとに対応して、複数の外部メモリコントローラを個別に実装するということも行われるが、ここでは、これら複数のメモリコントローラを、メモリ制御部２０として統合して示している。
【００２０】
ここで、本実施の形態の説明に先立ち、図７を参照して、本実施の形態としてのシェーピング処理を発明するに至った背景について説明する。図７は、上記図１と同等の構成の通信装置を想定したうえで、妥当であると考えられるバッファ３０にパケットデータをバッファリングする際の態様例を示している。この図において、バッファ３０は、第１メモリ部３１Ａ−１、第２メモリ部３１Ａ−２および第３メモリ部３１Ａ−３を備えている。なお、これらの第１メモリ部３１Ａ−１、第２メモリ部３１Ａ−２および第３メモリ部３１Ａ−３は、ハードウェアとして、例えば図１に示した高優先度対応メモリ部３１−１、中優先度対応メモリ部３１−２および低優先度対応メモリ部３１−３と同等のものとなる。したがって、第１メモリ部３１Ａ−１、第２メモリ部３１Ａ−２および第３メモリ部３１Ａ−３は、それぞれ、物理的に異なるメモリチップとなる。
【００２１】
また、図７においては、説明の便宜上、第１メモリ部３１Ａ−１、第２メモリ部３１Ａ−２および第３メモリ部３１Ａ−３は、水平方向が列（カラム）に対応し、垂直方向が行（ロウ）に対応するものとして示している。この場合、第１メモリ部３１Ａ−１、第２メモリ部３１Ａ−２および第３メモリ部３１Ａ−３は、それぞれ、列Ｃ０〜Ｃｎまでの（ｎ＋１）列と、行Ｌ０〜Ｌｍまでの（ｍ＋１）行から成るものとしている。
【００２２】
ここで、例えばキューに対するパケットの転送が、パケットＡ、Ｂ、Ｃ・・・Ｄ、Ｅ・・・Ｆ、Ｇ、Ｈ、Ｉの順であったとする。これに応じた各パケットデータの格納の仕方は次のようになる。つまり、第１メモリ部３１Ａ−１の先頭アドレス（Ｃ０、Ｌ０）から、アドレス順にしたがって、パケットＡ、Ｂ、Ｃ・・・Ｄ、Ｅ・・・Ｆ、Ｇ、Ｈ、Ｉを順次格納していく。このように、通常は、最後に書き込まれたパケットデータの終端アドレスに続けて次のパケットデータをアドレスにしたがって順次書き込んでいくようにする。
この結果、例えば図７のパケットＢのように、パケットＢの前半部分Ｂ（１）と後半部分Ｂ（２）とが隣接する２つの列にまたがって書き込まれる場合がある。同様に、パケットＣ、Ｉも、同じメモリ部において、隣接する２つの列にまたがって書き込まれた状態となる。さらに、パケットＤのように、第１メモリ部３１Ａ−１の最終列Ｃｎと、第２メモリ部３１Ａ−２の最初の列Ｃ０にまたがって格納された状態となる場合もあり得る。なお、以降において、この図７の説明のようにメモリ部３１にパケットデータを書き込む方式については「順次書込方式」ということにする。
【００２３】
パケットのデータは論理的には優先度ごとにキュー分けされるように管理されるが、物理的には、上記図７のように、順次書込方式により、例えばパケット処理部１０からの転送順にしたがってバッファ３０（メモリ部３１Ａ）に対してアドレス順に格納されていく。したがって、バッファ３０（メモリ部３１Ａ）の物理アドレスについて、優先度ごとに対応して区分されているものではない。このようメモリにデータを格納する場合、メモリ部３１Ａの各々に適用するリフレッシュ方式はオートリフレッシュが妥当になる。各メモリ部３１Ａに対して一定時間ごとにオートリフレッシュを実行させることにより、メモリ部３１Ａのいずれかにおいて読み出されずに残っているデータが存在していても、これが消失することがないようにされる。
【００２４】
なお、オートリフレッシュは、メモリのバンクにおけるすべての領域を対象として電荷を再注入するリフレッシュ方式である。オートリフレッシュを行う場合、メモリコントローラは、メモリセル内のキャパシタの電荷保持時間が一定以上経過したタイミングでオートリフレッシュコマンドを発行する。これに応じてリフレッシュカウンタがロウアドレスシーケンシャルに生成してバンクにおける全領域のメモリセルに対して電荷が再注入される。このように、リフレッシュは正確にバンクを対象として行われる。しかし、チップ内の複数のバンクごとに独立してリフレッシュを実行させることを目的として、同じ１つのチップに対応して複数の外部メモリコントローラを実装することは効率的ではないという事情がある。そこで、本実施の形態においては、物理的に異なるメモリチップ単位でリフレッシュを行うようにしている。
【００２５】
通信装置の消費電力はできるだけ少なくすることが好ましいが、バッファ３０としてのＤＲＡＭが最も電力を消費する機会はリフレッシュ時となる。上記のオートリフレッシュは、上記のように、１回のリフレッシュごとにメモリチップにおけるすべてのメモリセル（アドレス）に電荷を注入する。図７の第３メモリ部３１Ａ−３のように、すべてのメモリセル（アドレス）にデータが記憶されておらず空き領域が存在する状態では、この空き領域に対しても電荷が注入されることになるために無駄な電力消費が生じることになる。そこで、本実施の形態としては、次に説明するように、シェーピング処理に際して、より効率の良いリフレッシュが行われるように構成して、消費電力量の低減を図るものである。
【００２６】
ここで、本実施の形態の通信装置１がシェーピングの処理対象とするパケット（処理対象パケット）として、パケットＡ〜Ｆの６つのパケットがあるとする。図２は、これらパケットＡ〜Ｆについて、優先度とパケット長を座標上で示したものである。この図に示されるように、優先度については、パケットＡ、Ｂ、Ｃが「高」に属し、パケットＤが「中」に属し、パケットＥ、Ｆが「低」に属する。また、パケット長に関しては、パケットＡが最もパケット長が短く、次いで、パケットＢ、Ｄ、Ｅ、Ｃ、Ｆの順で長くなっていく。すなわち、通信装置１が処理するパケットの優先度とパケット長の組み合わせは一律ではなく、対応のアプリケーションなどに応じて異なるものとなる。
シェーピング処理に際してキュー(バッファ３０)に送られるパケットの滞留時間は、優先度ごとに応じて異なってくる。具体的に、パケットの優先度が高くなるほどキュー待ちの時間が短くなるためにパケットデータの滞留時間は短くなり、優先度が低くなるほどキュー待ちの時間が長くなるためにパケットの滞留時間は長くなる。なお、このパケットの滞留時間は、メモリ部３１においてパケットを記憶保持する時間に相当する。
【００２７】
上記の滞留時間とオートリフレッシュのタイミングについては次のことがいえる。すなわち、優先度「高」のパケットデータは高頻度で読み出しが行われるために滞留時間は短くなる。また、この優先度「高」のパケットデータの滞留時間と、データがメモリセルに書き込まれてからリフレッシュを要するまでの時間（リフレッシュ時間）と比較した場合には、通常、滞留時間のほうが短い。したがって、優先度「高」のパケットデータに関すれば、メモリ部３１から読み出される以前のタイミングでオートリフレッシュが実行される可能性は低いということがいえる。これに対して、優先度「低」のパケットについては、読み出しの頻度が低くなるために滞留時間が長くなることから、そのデータがメモリ部３１に保持されている間に少なくとも１回以上のオートリフレッシュが実行される可能性が高くなる。このように、リフレッシュ時間とパケットデータの滞留時間との関係は、優先度によって相違する。
【００２８】
また、図２に示したようにパケット長はパケットごとに異なる。このことは、メモリ部３１におけるカラム(列)との関係では、パケットデータは、メモリ部３１の１カラム分の容量以内となる場合もあれば、その容量を越える場合もあるということがいえる。そこで、このことに着目し、本実施の形態の通信装置１がシェーピング処理を実行するにあたり、バッファ３０に対して以下のようにパケットデータを格納することとした。
【００２９】
図３は、本実施の形態のシェーピング処理によって、図２に示されるパケットＡ〜Ｆのデータをバッファ３０に格納した例を示している。図１にて説明したように、本実施の形態のバッファ３０は、それぞれ物理的に個別の３つのメモリ部３１について、高優先度対応メモリ部３１−１、中優先度対応メモリ部３１−２および低優先度対応メモリ部３１−３として区分する。そして、パケットは、原則として、その優先度の「高」・「中」・「低」に対応して、高優先度対応メモリ部３１−１、中優先度対応メモリ部３１−２および低優先度対応メモリ部３１−３のそれぞれに処理対象パケットが格納される。すなわち、優先度が「高」の処理対象パケットは高優先度対応メモリ部３１−１に格納される。同様に、優先度が「中」の処理対象パケットは中優先度対応メモリ部３１−２に格納され、「低」処理対象パケットは低優先度対応メモリ部３１−３に格納される。なお、このように優先度に応じてパケットを格納する制御はパケット処理部１０が実行する。パケット処理部１０は、特許請求の範囲に記載のパケット格納制御手段に相当する。
【００３０】
図３においては、上記の原則にしたがってパケットデータを格納した結果を示している。すなわち、高優先度対応メモリ部３１−１には、その先頭アドレス（Ｃ０，Ｌ０）から順次、パケットＡ、Ｂ、Ｃのデータが格納された状態となっている。また、中優先度対応メモリ部３１−２には、その先頭アドレス（Ｃ０，Ｌ０）からパケットＤのデータが格納されている。これは、高優先度対応メモリ部３１−１および中優先度対応メモリ部３１−２については、順次書込方式によりデータを格納していることを示している。
【００３１】
一方、低優先度対応メモリ部３１−３においては、列Ｃ０における先頭行アドレスＬ０からパケットＥが格納された状態となっている。しかし、パケットＥの終端の次のアドレスからパケットＦを書き込んでいったとすると、パケットＦのデータは、列Ｃ０，Ｃ１の２列にまたがって格納されることになる。この場合、パケットＥの終端から列Ｃ０の終端行Ｌｍまでの領域については、データを格納せずに非使用領域ＮＡＲとして確保する。同様に、低優先度のパケットＦについては、列Ｃ０に続く列Ｃ１における先頭行Ｌ０からそのデータを格納する。そして、列Ｃ１におけるパケットＦのデータの終端位置より後の領域も、データを格納しない非使用領域ＮＡＲとして確保する。すなわち、低優先度対応メモリ部３１−３については、隣接する２列にまたがって１つのパケットデータが格納されないようにデータの書き込みが行われる。なお、パケットデータのサイズが小さいために、１カラム内に複数のパケットデータを格納できる場合には、そのようにしてもよい。以降において、この低優先度対応メモリ部３１−３に対するパケットデータの書き込み方式については、「カラム単位書込方式」ということにする
【００３２】
本実施の形態は、上記のように優先度に応じてメモリ部３１を区分したうえで、高優先度対応メモリ部３１−１についてはオートリフレッシュを実行させる。高優先度対応メモリ部３１−１に格納される優先度が「高」のパケットデータの滞留時間は短く、オートリフレッシュが実行されるより前のタイミングでデータの読み出しが行われる可能性が高い。このようなタイミングでパケットデータの書き込みと読み出しが実行されていれば、オートリフレッシュが実行される頻度は低く、したがって、オートリフレッシュモードを設定しておいたとしても無駄に電力が消費される機会は少なくなる。
【００３３】
これに対して、低優先度対応メモリ部３１−３についてはカラム指定リフレッシュを実行させる。カラム指定リフレッシュは、オートリフレッシュのように対象のメモリチップ（バンク）におけるメモリセルをリフレッシュするのではなく、リフレッシュを実行する都度、リフレッシュ対象のカラムを指定してリフレッシュを行う方式である。
【００３４】
優先度が「低」のパケットは滞留時間が長いため、メモリ部３１に格納されている間にリフレッシュが行われることになる。しかもリフレッシュが複数回におよぶ可能性も低くない。この場合、オートリフレッシュが実行されたとすると、その都度、低優先度対応メモリ部３１−３においてパケットが格納されていない空き領域にも電荷の再注入が行われることとなって無駄が生じる。
【００３５】
そこで、優先度が「低」のパケットは低優先度対応メモリ部３１−３にカラム単位書込方式により格納したうえで、カラム指定リフレッシュを行うようにする。そして、メモリ制御部２０は、リフレッシュに際しては、パケットデータが格納されているカラムのみをリフレッシュすべきカラムとして指定してリフレッシュを実行させる。これにより、無駄に多数のカラムを指定してリフレッシュを行うことは無くなる。
【００３６】
また、優先度が「中」のパケットについては流動的に扱うものとする。すなわち、バッファ３０全体における空き容量が一定以上の場合には、中優先度対応メモリ部３１−２に対してカラム単位書込方式によりパケットデータを格納し、カラム指定リフレッシュによりリフレッシュが行われるようにする。これに対して、バッファ３０全体における空き容量が一定未満の場合には、中優先度対応メモリ部３１−２に対して順次書込方式によりパケットデータを格納し、オートリフレッシュによりリフレッシュが行われるようにする。
【００３７】
優先度が「中」のパケットは、優先度が「高」のパケットと比較すれば、その滞留時間は長い。しかし、バッファ３０全体としてみたときの空き容量に余裕がある場合には、すぐに空き容量が不足するような状況となりにくい。そこで、この場合には、優先度が「低」のパケットと同等に扱って、中優先度対応メモリ部３１−２にカラム単位書込方式によりデータを格納してカラム指定リフレッシュとすることで、電力消費を抑えることとしている。これに対して、バッファ３０全体としてみたときの空き容量に余裕がない場合には、優先度が「高」のパケットと同等に扱って、中優先度対応メモリ部３１−２に順次書込方式によりデータを格納してオートリフレッシュを実行させる。これにより、メモリ領域を効率的に使用することを優先させる。
【００３８】
上記のようにリフレッシュを実行させるための制御はメモリ制御部２０が実行する。メモリ制御部２０は、リフレッシュすべきタイミングごとに、高優先度対応メモリ部３１−１に対してオートリフレッシュコマンドを発行し、低優先度対応メモリ部３１−３に対してカラム指定リフレッシュコマンドを発行する。また、中優先度対応メモリ部３１−２に対しては、順次書込方式によりデータが格納されている場合にはオートリフレッシュコマンドを発行し、カラム単位書込方式によりデータが格納されている場合にはカラム指定リフレッシュコマンドを発行する。メモリ制御部２０は、例えば特許請求の範囲に記載のリフレッシュ制御手段に対応する。
【００３９】
図４は、上記図３により説明した本実施の形態のシェーピング処理についての実行の可否を決定するための処理手順例を示している。この図に示す処理はパケット処理部１０が実行するものとする。
【００４０】
まず、パケット処理部１０は、ステップＳ１０１においてパケットを受信すると、次のステップＳ１０２において、その受信パケットは廃棄対象のパケットであるか否かについて判定する。ここで、例えばすでに輻輳が発生している状態にあるなどの状況により受信パケットを廃棄すべき場合は、ステップＳ１０２において受信パケットは廃棄対象であると判定される。この場合、パケット処理部１０は、ステップＳ１０６により受信パケットを廃棄する。なお、このように受信パケットが廃棄対象となる場合には、そのパケットが帯域制限を越えて外部より転送されてくることを意味している。
【００４１】
これに対して、ステップＳ１０２において受信パケットは廃棄対象ではないと判定された場合には帯域に余裕があることになる。この場合、パケット処理部１０は、ステップＳ１０３に進んで、バッファ３０の空き容量を認識し、続くステップＳ１０４において、上記ステップＳ１０３により認識した空き容量が一定以上であるか否かについて判定する。
【００４２】
ステップＳ１０４においてバッファ３０の空き容量が一定以上ではないと判定された場合、パケット処理部１０はステップＳ１０６により受信パケットを廃棄する。これに対して、同じステップＳ１０４において空き容量が一定以上であると判定された場合、パケット処理部１０は、ステップＳ１０５において、本実施の形態のシェーピング処理を実行する。ステップＳ１０５に至った段階では、今回の受信パケットは、本実施の形態のシェーピング処理によってバッファ３０に格納すべきパケット（処理対象パケット）となる。
【００４３】
上記の処理手順から理解されるように、本実施の形態のシェーピング処理は、帯域およびバッファ３０の空き容量に一定以上の余裕があることを条件に行われるようになっている。本実施の形態のシェーピング処理においては、低優先度対応メモリ部３１−３において２列またはそれ以上の列数にまたがって１つのパケットデータが格納されないように、カラムにおいてパケットを格納して余った領域を非使用領域ＮＡＲとして確保する。このために、低優先度対応メモリ部３１−３のメモリ容量は、パケットデータサイズの合計よりも多く使用される。このために、本実施の形態のシェーピング処理を安定して実行させるためには、十分な帯域とバッファ３０（低優先度対応メモリ部３１−３）の空き容量がある状況であることが必要になる。
【００４４】
図５は、上記ステップＳ１０５に対応してパケット処理部１０が実行するシェーピング処理として、バッファ３０に処理対象パケットを格納するための処理手順例を示している。まず、パケット処理部１０は、ステップＳ２０１において、処理対象パケットに格納される所定の情報を参照して優先度とパケット長を識別しておく。
【００４５】
次に、パケット処理部１０は、ステップＳ２０２において、この識別された優先度が「高」であるか否かについて判定する。ここで、識別した優先度が「高」であると判定した場合、パケット処理部１０は、ステップＳ２１３に進んで、処理対象パケットが高優先度対応メモリ部３１−１に格納されるようにメモリ制御部２０に対して指示する。この際、パケットデータは、図３により説明したように、高優先度対応メモリ部３１−１に対して順次書込方式により書き込まれる。
【００４６】
これに対して、ステップＳ２０２において、優先度が「低」または「中」であると判定された場合には、ステップＳ２０３に進む。パケット処理部１０は、ステップＳ２０３において低優先度バッファの空き容量を認識し、次のステップＳ２０４において、その空き容量が、処理対象パケットのデータを格納可能だけのサイズを有しているか否かについて判定する。この判定は、上記空き容量のサイズと、ステップＳ２０１により認識したパケット長とを比較すればよい。
【００４７】
ステップＳ２０４において処理対象パケットを格納できないと判定した場合、パケット処理部１０はステップＳ２０７に進む。ステップＳ２０７以降の処理については、後述する。一方、ステップＳ２０４において処理対象パケットを格納可能であると判定した場合、パケット処理部１０はステップＳ２０５に進む。
【００４８】
ステップＳ２０５において、パケット処理部１０は、処理対象パケットのパケット長が、メモリ部３１の１カラム分に対応するサイズ以内であるか否かについて判定する。このステップＳ２０５において、パケット長が１カラム分に対応するサイズ以内であると判定した場合にはステップＳ２０６に進む。ステップＳ２０６においてパケット処理部１０は、優先度が「低」または「中」の処理対象パケットについて、低優先度対応メモリ部３１−３に格納されるようにメモリ制御部２０に対して指示する。この制御に応じて、メモリ制御部２０は、図３にて説明したように、カラム単位書込方式により処理対象パケットのデータの書き込みを行う。一方、ステップＳ２０５においてパケット長が１カラム分に対応するサイズ以内ではないと判定した場合、パケット処理部１０はステップＳ２０７に進む。
【００４９】
ステップＳ２０７において、パケット処理部１０は、中優先度対応メモリ部３１−２の空き容量を認識し、ステップＳ２０８において、中優先度対応メモリ部３１−２に処理対象パケットのパケット長を格納できる空き容量があるか否かについて判定する。このステップＳ２０８において、処理対象パケットを格納できるだけの空き容量がないとの判定結果が得られた場合、パケット処理部１０は、ステップＳ２１３により、優先度が「低」または「中」の処理対象パケットを高優先度対応メモリ部３１−１に対して格納させるように制御を実行する。
【００５０】
このように本実施の形態においては、優先度が「低」または「中」のパケットであっても、他の優先度が低いメモリ部に空き容量がなければ、高優先度対応メモリ部３１−１に対して格納することになる。これに対して、ステップＳ２０８において処理対象パケットを格納可能な空き容量があるとの判定結果が得られた場合、パケット処理部１０は、ステップＳ２０９に進む。
【００５１】
ステップＳ２０９において、パケット処理部１０は、バッファ３０全体としての空き容量が一定以上であるか否かについて判定する。一例として、バッファ３０を形成するメモリ部３１−１〜３１−３における空き容量の合計を一定値と比較することで判定結果を得ることができる。
【００５２】
上記ステップＳ２０９においてバッファ３０の空き量が一定以上ではないと判定された場合には、バッファ３０の空き容量に余裕がない状態であることになる。そこで、パケット処理部１０は、ステップＳ２１０において、優先度が「低」または「中」の処理対象パケットを、順次書込方式により中優先度対応メモリ部３１−２に格納させる。これに対して、ステップＳ２０９においてバッファ３０の空き量が一定以上であると判定された場合には、バッファ３０の空き容量に余裕があるということになり、カラム単位モードによりパケットのデータを格納することができる。
【００５３】
そこで、パケット処理部１０は、ステップＳ２１１において、処理対象パケットのパケット長が１カラムに対応するサイズ以内であるか否かについて判定する。ここで、１カラムに対応するサイズ以内ではないと判定された場合には、カラム単位モードにより中優先度対応メモリ部３１−２にすることはできない。そこで、パケット処理部１０は、ステップＳ２１３により、優先度が「低」または「中」の処理対象パケットを高優先度対応メモリ部３１−１に格納させる。これに対して、ステップＳ２１１において１カラムに対応するサイズ以内であると判定された場合には、ステップＳ２１２において、中優先度対応メモリ部３１−２に対してカラム単位書込モードによりパケットデータを格納させる。
【００５４】
上記図５の処理手順から理解されるように、優先度が「中」の処理対象パケットは、必ずしも中優先度対応メモリ部３１−２に格納されるのではなく、メモリ部３１の空き容量の状況やパケット長などに応じて、高優先度対応メモリ部３１−１と低優先度対応メモリ部３１−３のいずれかにも格納されるようになっている。優先度が「低」の処理対象パケットも、空き容量に応じて、中優先度対応メモリ部３１−２または高優先度対応メモリ部３１−１に格納されるようにされているものである。このように、本実施の形態のシェーピング処理において、優先度が一定以下のパケットについては、そのパケットのサイズとメモリ部３１の使用状況に対応して、適宜、他の優先度のパケットと同等に処理されるようになっている。
【００５５】
図６は、メモリ制御部２０が実行するリフレッシュ制御のための処理手順例を示している。メモリ制御部２０は、ステップＳ３０１において高優先度対応メモリ部３１−１のリフレッシュを実行すべきタイミング（リフレッシュタイミング）に至るのを待機している。また、ステップＳ３０２において中優先度対応メモリ部３１−２のリフレッシュタイミングに至るのを待機している。また、ステップＳ３０３により、高優先度対応メモリ部３１−３のリフレッシュタイミングに至るのを待機している。
【００５６】
例えば、高優先度対応メモリ部３１−１のメモリセル（キャパシタ）にデータ（電荷）が書き込まれてから一定時間が経過するとリフレッシュタイミングに至ったものとして判定される。そして、ステップＳ３０１においてリフレッシュタイミングに至ったと判定した場合、メモリ制御部２０は、ステップＳ３０５により、高優先度対応メモリ部３１−１に対してオートリフレッシュを実行させるための制御を行う。つまり、高優先度対応メモリ部３１−１にオートリフレッシュコマンドを発行する。
【００５７】
また、ステップＳ３０２において中優先度対応メモリ部３１−２のリフレッシュタイミングに至ったと判定した場合、メモリ制御部２０は、ステップＳ３０４により、中優先度対応メモリ部３１−２に対する現在のパケットデータの書込方式について判定する。このステップＳ３０４において、順次書込方式であると判定した場合、メモリ制御部２０は、ステップＳ３０６に進んで、中優先度対応メモリ部３１−２に対してオートリフレッシュを実行させるための制御を実行する。一方、ステップＳ３０４において、カラム単位書込方式であると判定した場合、メモリ制御部２０は、ステップＳ３０７に進んで、中優先度対応メモリ部３１−２に対してカラム指定リフレッシュを実行させるための制御を実行する。すなわち、カラム指定リフレッシュコマンドを発行して、指定したカラムのみのリフレッシュを実行させる。
【００５８】
また、ステップＳ３０３においてリフレッシュタイミングに至ったことを判定すると、メモリ制御部２０は、ステップＳ３０８により、低優先度対応メモリ部３１−３に対してカラム指定リフレッシュを実行させるための制御を行う。
【００５９】
そして、上記のようにメモリ制御部２０は、高優先度対応メモリ部３１−１にはオートリフレッシュを実行させ、低優先度対応メモリ部３１−３にはカラム指定リフレッシュを実行させている。また、中優先度対応メモリ部３１−２については、データの書き込みが順次書込方式とカラム単位書込方式のいずれであるのかに応じて、オートリフレッシュとカラム指定リフレッシュとで切り替えが行われる。これにより、前述のようにリフレッシュによる電力消費が有効に抑えられることになる。
【００６０】
なお、上記実施の形態においては、優先度を「高」・「中」・「低」の３段階とした場合を例に挙げているが、「高」・「低」の２段階とした場合にも適用できる。また、４段階以上とした場合にも適用することができる。４段階以上とした場合において、順次書込方式によるデータ書き込みとオートリフレッシュのみが実行される高優先度対応メモリ部３１−１に相当するメモリ部は複数備えてもよい。また、カラム単位書込方式によるデータ書き込みとカラム指定リフレッシュのみが実行される低優先度対応メモリ部３１−３に相当するメモリ部についても同様である。また、実施の形態においてはバッファ３０としてＤＲＡＭを採用した場合について説明しているが、ＤＲＡＭ以外であってもリフレッシュを必要とするようなメモリ素子を採用する場合にも適用することができる。
【００６１】
また、本実施の形態の通信装置１は、Ｌ２スイッチ、Ｌ３スイッチ、またはルータなどとされて、ＩＰプロトコルまたはイーサネット(登録商標)などの通信に対応するものであることを前提としている。しかし、これ以外の通信プロトコルに対応してパケットやフレームを送受信する通信装置にも適用することができる。
【００６２】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えることができる。また、これら一連の手順をコンピュータに実行させるためのプログラムまたはそのプログラムを記憶する記録媒体として捉えることができる。この記録媒体としては、例えば、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＨＤＤ（ハードディスク）、メモリカード等を挙げることができる。
上述した処理フローの説明中、図３〜図５の判断の処理で示す「Ｙ」はＹｅｓ、「Ｎ」はＮｏを示すものとする。
【符号の説明】
【００６３】
１０  パケット処理部
２０  メモリ制御部
３０  バッファ
３０  バッファメモリ
３１  メモリ部
３１−１  高優先度対応メモリ部
３１−２  中優先度対応メモリ部
３１−３  低優先度対応メモリ部
ＮＡＲ  非使用領域
【図１】
2012204931.tif 000003
【図２】
2012204931.tif 000004
【図３】
2012204931.tif 000005
【図４】
2012204931.tif 000006
【図５】
2012204931.tif 000007
【図６】
2012204931.tif 000008
【図７】
2012204931.tif 000009