(57)【要約】【課題】  受信パケットのための高価なメモリ手段を節約することができる経済的なストリームパケット受信装置を提供する。【解決手段】  ストリームパケット受信装置（ＳＰＲ１）において、パケット長検出器（１０７）はすべての受信パケットの長さを検出し、ＤＭＡコントローラ（１０２）は検出された受信パケット長情報に基づいて、ネットワークから受信したパケットのうちで、予め設定した長さ未満の受信パケットを第１のメモリ（１０４）に転送し、前記の長さ以上の受信パケットを第２のメモリ（１０５）に転送する。【選択図】  図１
2006174265.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークから受信装置に到来する一部の受信パケットを格納する第１のメモリ手段と、
前記第１のメモリ手段に格納された以外の受信パケットを格納する第２のメモリ手段と、
すべての受信パケットの長さを検出するパケット長検査手段と、
前記パケット長検査手段の出力する受信パケット長情報を受けて、ネットワークから受信したパケットのうちで、予め設定した長さ未満の受信パケットを前記第１のメモリ手段に転送し、前記の長さ以上の受信パケットを前記第２のメモリ手段に転送するＤＭＡ手段とを備えるストリームパケット受信装置。
【請求項２】
受信パケットの一部または全部を格納する第１のメモリ手段と、
受信パケットのうち、前記第１のメモリ手段に格納されなかった部分を格納する第２のメモリ手段と、
ネットワークから受信した受信パケットが予め決めた設定長を越えないときには当該受信パケットの全部を前記第１のメモリ手段に転送し、前記設定長を越えるときには当該受信パケットを分割して、当該受信パケットの先頭から当該設定長までを前記第１のメモリ手段に転送し、残りの部分を前記第２のメモリ手段に転送するＤＭＡ手段とを備えるストリームパケット受信装置。
【請求項３】
ネットワークから受信装置に到来するすべての受信パケットを一旦格納する第１のメモリ手段と、
前記第１のメモリ手段に格納された受信パケットを検査する検査手段と、
ネットワークから受信装置に到来する一部の受信パケット受信パケットを格納する第２のメモリ手段と、
前記検査手段によって受信パケットがトランスポートプロトコルによって運ばれるデータ部分を含むことが検知された場合に、当該受信パケットを前記第１のメモリ手段から前記第２のメモリ手段へ転送するＤＭＡ手段とを備えるストリームパケット受信装置。
【請求項４】
ネットワークから受信装置に到来する一部の受信パケットを格納する第１のメモリ手段と、
前記第１のメモリ手段に格納された以外の受信パケットを格納する第２のメモリ手段と、
前記第１のメモリ手段と前記第２のメモリ手段の利用状況を検知する空きバッファ検知手段と、
前記空きバッファ検知手段の出力する利用状況情報を受けて、前記第１のメモリ手段に空きがある場合には、当該第１のメモリ手段に受信パケットを転送し、前記第１のメモリ手段に空きがないには前記第２のメモリ手段に受信パケットを転送するＤＭＡ手段とを備えるストリームパケット受信装置。
【請求項５】
第１のメモリ手段は、スタティックＲＡＭである請求項１乃至請求項４のいずれかに記載のストリームパケット受信装置。
【請求項６】
前記第１のメモリ手段は、ＤＭＡ手段と同一の集積回路上に集積される請求項１乃至請求項４のいずれかに記載のストリームパケット受信装置。
【請求項７】
前記第２のメモリ手段は、ダイナミックＲＡＭである請求項１ないし４のいずれかに記載のストリームパケット受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にストリーム情報と呼ばれる音声や動画映像などの時間的に連続性を有する情報をネットワークを通じて伝送する装置の受信側のストリームパケット受信に関し、特に多数の機能が１チップに集積された一般にシステムＬＳＩと呼ばれる多機能ＬＳＩに好適なストリームパケット受信装置に関する。
【背景技術】
【０００２】
ネットワークの送受信装置における基本要素は、装置内で送受信すべき情報を取り扱うＣＰＵ（中央処理装置）と、ネットワークを構成するデータリンクに対してパケットを送受信するコントローラと、送信すべき情報を含む送信パケットや、ネットワークから到来した受信パケットを記憶、格納するメインメモリである。
【０００３】
メインメモリには、その容量あたりの物理的寸法が小さく、コストの安いＤＲＡＭ（ダイナミックＲＡＭ）が一般的に用いられる。ＤＲＡＭはその構成上の特性として、比較的長いレイテンシを持つ。すなわちデータの出力の要求が発生した時点から、実際にデータが要求に応えて返ってくるまでの時間が長い。しかし一度に要求できるデータのサイズは大きくできるので、単位時間あたりのデータ入出力レート、すなわちバンド幅は低くはない。
【０００４】
ＣＰＵから、ＤＲＡＭで構成されたメモリにアクセスする場合、ＣＰＵが要求するレイテンシでデータの読み書きができないために、別途、ＣＰＵとメインメモリの間にキャッシュメモリと呼ばれる高速で小容量のＳＲＡＭ（スタティックＲＡＭ）メモリで構成されたバッファを設け、相互のデータの受渡しの調整を行われる。
【０００５】
ＣＰＵが発生するメモリアクセスには、局在性と反復性がともに高いという特徴があり、一度キャッシュメモリに情報が記憶されると、レイテンシの長いメインメモリへのアクセスの頻度を著しく減少させることが可能となる。結果、ＣＰＵはＤＲＡＭのレイテンシの長さに煩わされることなくメモリアクセスを行うことができる。
【０００６】
ところで、ネットワークから受信したパケットを取り扱う場合には、パケットの識別を行うためにヘッダを判別したり、誤り検出のためにチェックサムの検査を行ったりする。この作業もデータの局在性は高いと言えるが、受信パケットはつぎつぎと到来するため、反復性が高いとは言えない。
【０００７】
すなわちコントローラがつぎつぎと受信したパケットをメインメモリ上の異なる領域に転送するため、キャッシュメモリに記憶された情報は無効となり、その都度、レイテンシの長いＤＲＡＭから読み出す必要がある。そしてその間ＣＰＵは待たされることになる。これは、ＣＰＵがキャッシュメモリとの組合せで達成していた処理性能から期待される水準に比べ、大幅な性能劣化として認識される。
【０００８】
当然、ネットワークの送受信装置のメインメモリをレイテンシの短いＳＲＡＭに置き換えれば、処理の高速化を図ることが可能である。そして、ＳＲＡＭはトランジスタのみから構成されるので、トランジスタとコンデンサからなるＤＲＡＭのような特殊な製造プロセスを必要としない。また、ＤＲＡＭで必要とされる記憶保持動作も不要なため、システムＬＳＩと呼ばれる多機能ＬＳＩ上に集積するのに適している。
【０００９】
しかしながら、ＳＲＡＭは、ＤＲＡＭと比べて必要とする半導体素子数が多いため、記憶容量あたりのコストがＤＲＡＭと比べて高価である。従って、ＤＲＡＭをＳＲＡＭに単に置き換えることは、装置自体の構成する上で甚だ不経済である。そこで、受信パケットの処理効率を向上させるため、コントローラとメインメモリの間に存在する中間バッファ上の受信パケットに対して、ＣＰＵアクセスできる構成としたもの（例えば、特許文献１）や、コントローラがメインメモリではなく、キャッシュメモリに受信パケットを転送できる構成が提案されている（例えば、特許文献２）。
いずれの構成も、ネットワークの送受信装置に既存のレイテンシの短いメモリ手段を用い、受信パケットの処理の高速化を図ったものである。
【特許文献１】特開平９−１０１９３１号公報（第８頁、図１）
【特許文献２】特開２００２−２７８８３４号公報（第１１頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、いずれの場合も受信パケットがレイテンシが短いメモリ上に在るとしても、それは一時的なもので、ネットワークからの受信動作とは関係のない原因で、レイテンシの長いメインメモリに移されてしまうことを防ぐことができない。
【００１１】
前者の中間バッファ上に在る受信パケットにアクセスできる構成では、例えばネットワークインターフェイス以外のＩ／Ｏ装置からのデータ転送の発生によって、レイテンシの短いメモリ上に在る受信パケットは、意図せずにメインメモリに移されてしまう。同様に、後者のキャッシュメモリに受信パケットを転送できる構成においても、例えばＣＰＵの命令語のメインメモリからの読み出しによって、レイテンシの短いメモリ上に在る受信パケットは、意図せずにメインメモリに移されてしまう。
【００１２】
すなわち、いずれの場合も、中間バッファやキャッシュメモリを、本来の目的とは異なる目的で受信パケットのバッファとして利用しているために、受信パケット処理の高速化の効果は限定的にならざるをえない。
【００１３】
本発明は、上記従来の技術における課題を解決するもので、受信パケットのためにレイテンシの短いメモリ手段を設け、受信パケットの処理性能を向上させることができ、同時に、受信パケットの統計的性質を利用することで、受信パケットのための高価なメモリ手段を節約することができる経済的なストリームパケット受信装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、ストリームパケット受信装置であって、
ネットワークから受信装置に到来する一部の受信パケットを格納する第１のメモリ手段と、
前記第１のメモリ手段に格納された以外の受信パケットを格納する第２のメモリ手段と、
すべての受信パケットの長さを検出するパケット長検査手段と、
前記パケット長検査手段の出力する受信パケット長情報を受けて、ネットワークから受信したパケットのうちで、予め設定した長さ未満の受信パケットを前記第１のメモリ手段に転送し、前記の長さ以上の受信パケットを前記第２のメモリ手段に転送するＤＭＡ手段とを備える。
【発明の効果】
【００１５】
受信パケットのためにレイテンシの短いメモリ手段を設け、受信パケットの処理性能を向上させることができ、同時に、受信パケットの統計的性質を利用することで、受信パケットのための高価なメモリ手段を節約することができる、経済的なストリームパケット受信装置を提供できる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態に係るストリームパケット受信装置の具体的な説明の前に、先ず、図５および図６を参照して、ストリームパケット受信装置が取り扱う受信パケットの統計的特徴について説明する。図５および図６には、それぞれ、イーサネット（登録商標）経由で他の装置と通信する際に、受信される受信パケットの長さとその出現頻度の関係を表すヒストグラムが示されている。つまり、図５はネットワーク上の他の特定の送信装置からのパケットを受信している状態でのヒストグラムを示し、図６は特に他の装置からの送信パケットは受信していない状態でのヒストグラムを示す。
【００１７】
図５から読み取れることは、他の装置と通信する際の受信パケットのサイズは、短いものと長いものに二極化しているということである。長さ９６バイト以下の短い受信パケットが全体のおよそ１／２を占め、イーサネット（登録商標）の規格で決まる最大長に近い長い受信パケットがおよそ１／３程度となっている。
【００１８】
短いパケットは、通信の相手となる装置との制御信号のやりとり、例えば、パケットの受信確認などが多く発生するためである。長いパケットは、なんらかのトランスポートプロトコルによって運ばれるデータ部分を含むパケットである。ストリームデータは、通常、一つのパケットで運ぶことができる最大転送長以上のデータサイズを持つため、多数のパケットに分割され伝送される。この送信側で分割し、受信側で結合するオーバヘッドを最小化するため、そのパケット長は可能な範囲で長くなる傾向がある。上記のうち、短いパケットで運ばれる受信確認の処理を高速化することができれば、送ったデータに対する受信確認をしながら伝送を行う、ＴＣＰプロトコルによる最大伝送速度を向上させることができる。
【００１９】
次に図６から読み取れることは、特定の装置と通信しない場合における受信パケットの長さは短いものに偏るということである。図６に示す場合、９６バイト以下のパケットだけで、全受信パケットの９割近くになる。これらの短い受信パケットは一般に、通信相手が特定できない段階や、複数の装置と同時に通信する際に使用されるブロードキャスト通信用のパケットである。
【００２０】
ところがブロードキャスト通信の多くは、自受信装置宛のものではなく、これらの不要なパケットを受信した際は、素早くそのパケットを廃棄すべきである。これにより、受信パケットの管理にかかわる処理負荷の低減と、受信パケットを保持するメモリの利用効率を向上が可能となる。
【００２１】
以上のように、特定の装置と通信している場合でも、そうでない場合でも、受信パケットの長さは、その取り得る範囲内で均一に存在するのではなく、短いパケットに偏っている。しかも、短いパケットに対する処理性能向上は、装置全体の受信パケット処理性能向上に大きく貢献する。そこで、本発明においては、この受信パケットの統計的特徴を利用し、短い受信パケットの処理に高価であるがレイテンシの短いメモリ、例えばＳＲＡＭを割り当てることで、受信パケット処理性能の向上を図るものである。さらに、短い受信パケットの処理に必要なメモリ容量は少量で済むので、それを経済的に行うことを可能にするものである。
【００２２】
（第１の実施の形態）
図１を参照して、本発明の第１の実施の形態に係るストリームパケット受信装置ＳＰＲ１について説明する。ストリームパケット受信装置ＳＰＲ１において、ネットワークから到来した受信パケットは、ネットワークコントローラ１０１によって受信され、ＤＭＡコントローラ１０２によって、バス１０３を介して、ＳＲＡＭ１０４あるいは、ＤＲＡＭ１０５に転送される。ＤＭＡコントローラ１０２は、転送を完了した際に、ＣＰＵ１０６にその旨を通知する。
【００２３】
ＣＰＵ１０６は、その通知を受け、受信パケットが格納されたＳＲＡＭ１０４あるいはＤＲＡＭ１０５にアクセスし、必要な処理を行う。そしてＣＰＵ１０６はまたＤＭＡコントローラ１０２に対して、ＤＭＡ転送を行う転送先のアドレスとして、ＳＲＡＭ１０４上のアドレスと、ＤＲＡＭ１０５上のアドレスを設定する。
【００２４】
図１において、符号１０７は、受信パケットの長さを検出するパケット長検出器を示している。パケット長検出器１０７は、検出結果に基づいてＤＭＡコントローラ１０２に対し、そのＤＭＡ転送の転送先を指示する。すなわち、予め設定された長さ未満の受信パケットはＳＲＡＭ１０４に、それ以外の長い受信パケットはＤＲＡＭ１０５にそれぞれ転送するように指示を行う。
【００２５】
本例においては、ＳＲＡＭ１０４とＤＲＡＭ１０５は、ＤＭＡコントローラ１０２とＣＰＵ１０６から明示的にアクセス先として別のものと認識することができるように、それぞれ異なるアドレスが割り振られている。なお、ＤＲＡＭ１０５以外は破線で示す同一のＬＳＩチップ１０８上に集積されている。
【００２６】
上記のように構成された、ストリームパケット受信装置ＳＰＲ１に、パケットが到来すると、ＤＭＡコントローラ１０２が上記のようにパケット長検出器１０７の指示に従って転送することにより、予め設定された長さ未満の受信パケットはＳＲＡＭ１０４に、それ以外の長い受信パケットはＤＲＡＭ１０５にそれぞれ格納される。ＳＲＡＭ１０４は、ＣＰＵ１０６と同一ＬＳＩ上に集積されていることともあいまって短いレイテンシでのアクセスが可能である。しかも、短い受信パケットを格納するだけでよいので、そのサイズは、ＤＲＡＭ１０５上に確保する受信パケットを格納する領域の大きさに比べて十分小さいものでよい。
【００２７】
（第２の実施の形態）
図２を参照して、本発明の第２の実施の形態に係るストリームパケット受信装置ＳＰＲ２について説明する。ネットワークから到来した、受信パケットは、ネットワークコントローラ２０１によって受信され、ＤＭＡコントローラ２０２によって、バス２０３を介して、ＳＲＡＭ２０４および、ＤＲＡＭ２０５に転送される。ＤＭＡコントローラ２０２は転送を完了した際に、ＣＰＵ２０６にその旨を通知する。ＣＰＵ２０６は、その通知を受けて、受信パケットが格納されたＳＲＡＭ２０４およびＤＲＡＭ２０５にアクセスして、必要な処理を行う。なお、ＤＲＡＭ２０５以外は破線で示す同一のＬＳＩチップ２０７上に集積されている。
【００２８】
そして、ＣＰＵ２０６は、ＤＭＡコントローラ２０２に対して、ＤＭＡ転送を行う転送先のアドレスとして、ＳＲＡＭ２０４上のアドレスと、ＤＲＡＭ２０５上のアドレスとを設定する。本例において、ＤＭＡコントローラ２０２は、受信パケットの先頭から、予め設定された長さまでをＳＲＡＭ２０４に、その長さを越えた部分をＤＲＡＭ２０５に転送する。
【００２９】
ストリームパケット受信装置ＳＰＲ２において、予め設定された長さに満たない短いパケットが到来すると、ＤＭＡコントローラ２０２は上述のようにパケットの先頭から逐次、ＳＲＡＭ２０４に転送する。短い受信パケットは、予め設定された長さに達する前に終わるので、ＤＲＡＭ２０５への転送は起こらずに、パケット全体がＳＲＡＭ２０４に格納される。次に、予め設定された長さ以上の長いパケットが到来すると、ＤＭＡコントローラ２０２は、パケットの先頭から設定した長さまでをＳＲＡＭ２０４に、それを越える部分をＤＲＡＭ２０５に転送する。
【００３０】
ＳＲＡＭ２０４には、短い受信パケットと、長い受信パケットの先頭部分が格納される。パケットの先頭部分には、ネットワーク上の送り先アドレス、ポート番号、および各種フラグを含むヘッダ領域が含まれるので、長い受信パケットの処理のうちで、これらのヘッダ処理もレイテンシの短いＳＲＡＭ２０４上で行うことができる。そして、長い受信パケットの後半部分は、ＤＲＡＭ２０５に格納されるので、ＳＲＡＭ２０４のサイズは、小さいものでよい。
【００３１】
（第３の実施の形態）
図３を参照して、本発明の第３の実施の形態に係るストリームパケット受信装置ＳＰＲ３のブロック図である。図３に示すように、ストリームパケット受信装置ＳＰＲ３において、ネットワークから到来した受信パケットは、ネットワークコントローラ３０１によって受信され、第１のＤＭＡコントローラ３０２によって、バス３０３を介して、ＳＲＡＭ３０４に転送される。第１のＤＭＡコントローラ３０２は転送を完了した際に、ＣＰＵ３０６にその旨を通知する。
【００３２】
ＣＰＵ３０６は、第１のＤＭＡコントローラ３０２からの通知を受けて、受信パケットが格納されたＳＲＡＭ３０４にアクセスして、そこに格納された受信パケットがトランスポートプロトコルで運ばれるデータ部分を含むかどうかを調べる。含まない場合はその受信パケットをＳＲＡＭ３０４上で処理する。
【００３３】
受信パケットがデータ部分を含む場合は、ＣＰＵ３０６は、第２のＤＭＡコントローラ３０７に対し、ＳＲＡＭ３０４から、ＤＲＡＭ３０５へ転送するように指示を与える。第２のＤＭＡコントローラ３０７は転送を完了した際に、ＣＰＵ３０６にその旨を通知する。ＣＰＵ３０６は、第２のＤＭＡコントローラ３０７からの通知を受けて、受信パケットが格納されたＤＲＡＭ３０５にアクセスして、そこに格納されたデータ部分を含む受信パケットの処理を行う。
【００３４】
そして、ＣＰＵ３０６はまた第１のＤＭＡコントローラ３０２に対して、ＤＭＡ転送を行う転送先のアドレスとして、ＳＲＡＭ２０４上のアドレスを設定する。なお、ＤＲＡＭ３０５以外は破線で示す同一のＬＳＩチップ３０８上に集積されている。ストリームパケット受信装置ＳＰＲ３においては、受信パケットの大部分を占めるトランスポートプロトコルで運ばれるデータ部分を含まない、短いパケットの処理をレイテンシの短いＳＲＡＭ３０４上で行うことができる。長いパケットについては、ＤＲＡＭ３０５に第２のＤＭＡコントローラ３０７が転送するので、ＳＲＡＭ２０４のサイズは、小さいものでよい。
【００３５】
（第４の実施の形態）
図４を参照して、本発明の第４の実施の形態に係るストリームパケット受信装置ＳＰＲ４について説明する。ストリームパケット受信装置ＳＰＲ４において、ネットワークから到来した受信パケットは、ネットワークコントローラ４０１によって受信され、ＤＭＡコントローラ４０２によって、バス４０３を介して、ＳＲＡＭ４０４、あるいはＤＲＡＭ４０５に転送される。ＤＭＡコントローラ４０２は転送を完了した際に、ＣＰＵ４０６にその旨を通知する。
【００３６】
ＣＰＵ４０６は、ＤＭＡコントローラ４０２からの通知を受けて、受信パケットが格納されたＳＲＡＭ４０４、あるいはＤＲＡＭ４０５にアクセスして、受信パケットの処理を行う。なお、ＤＲＡＭ４０５以外は破線で示す同一のＬＳＩチップ４０７上に集積されている。ＣＰＵ４０６はまたＤＭＡコントローラ４０２に対して、ＤＭＡ転送を行う転送先として、ＳＲＡＭ４０４、あるいはＤＲＡＭ４０５を指定する。この際に、もしＳＲＡＭ４０４に転送が可能であるときは、必ずＳＲＡＭ４０４を転送先として指定する。すなわち、ＳＲＡＭ４０４はＤＲＡＭ４０５より高い優先順位で、転送先として指定される。
【００３７】
ストリームパケット受信装置ＳＰＲ４においては、トランスポートプロトコルで運ばれるデータ部分を含まない受信パケット、すなわち、受信パケットの大部分を占める短いパケットの処理を、高い確率でレイテンシの短いＳＲＡＭ４０４上で行うことができる。そして短期間に多くの受信パケットが到来し、ＳＲＡＭ４０４を転送先として指定できないときは、それらの受信パケットはＤＲＡＭ４０５に転送されるので、ＳＲＡＭ４０４のサイズは、ＬＳＩ４０７上に集積できる程度の小さいものでよい。
【産業上の利用可能性】
【００３８】
本発明は、ネットワークを通じて伝送される、一般にストリーム情報と呼ばれる音声や動画映像などの時間的に連続性を有する情報であるストリームパケット受信等に適用できる。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施の形態に係るストリームパケット受信装置の構成を示すブロック図
【図２】本発明の第２の実施の形態に係るストリームパケット受信装置の構成を示すブロック図
【図３】本発明の第３の実施の形態に係るストリームパケット受信装置の構成を示すブロック図
【図４】本発明の第４の実施の形態に係るストリームパケット受信装置の構成を示すブロック図
【図５】特定の装置と通信中における受信パケットのパケット長毎のヒストグラム
【図６】特定の装置との通信中以外における受信パケットのパケット長毎のヒストグラム
【符号の説明】
【００４０】
１０１  ネットワークコントローラ
１０２  ＤＭＡコントローラ
１０３  バス
１０４  ＳＲＡＭ
１０５  ＤＲＡＭ
１０６  ＣＰＵ
１０７  パケット長検出器
１０８  ＬＳＩ
２０１  ネットワークコントローラ
２０２  ＤＭＡコントローラ
２０３  バス
２０４  ＳＲＡＭ
２０５  ＤＲＡＭ
２０６  ＣＰＵ
２０７  ＬＳＩ
３０１  ネットワークコントローラ
３０２  第１のＤＭＡコントローラ
３０３  バス
３０４  ＳＲＡＭ
３０５  ＤＲＡＭ
３０６  ＣＰＵ
３０７  第２のＤＭＡコントローラ
３０８  ＬＳＩ
４０１  ネットワークコントローラ
４０２  ＤＭＡコントローラ
４０３  バス
４０４  ＳＲＡＭ
４０５  ＤＲＡＭ
４０６  ＣＰＵ
４０７  ＬＳＩ
【図１】
2006174265.tif 000003
【図２】
2006174265.tif 000004
【図３】
2006174265.tif 000005
【図４】
2006174265.tif 000006
【図５】
2006174265.tif 000007
【図６】
2006174265.tif 000008