(57)【要約】【課題】既存の装置設計を大きく変更することなく、低コストでネットワークの通信性能を向上させる。【解決手段】パケットを格納するパケットバッファとして、ＤＲＡＭ２０の一部が割り当てられた端末装置において、ＤＲＡＭよりも読み書きが高速で行われるＳＲＡＭを設けて、前記パケットバッファにおける前記パケットの先頭部分の格納領域を、該ＳＲＡＭに割り当てる。【選択図】  図１
2009020684.tif 000002
【特許請求の範囲】
【請求項１】
パケットを格納するパケットバッファとして、メインメモリの一部が割り当てられた端末装置において、
前記メインメモリよりも読み書きが高速で行われる高速メモリを備え、前記パケットバッファにおける前記パケットの先頭部分の格納領域を、該高速メモリに割り当てたことを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置において、
前記パケットの先頭部分の格納領域を示す前記メインメモリのアドレスを、前記高速メモリの前記パケットの先頭部分が割り当てられた領域のアドレスに変換するアドレス変換器を備えることを特徴とする端末装置。
【請求項３】
請求項１又は２に記載の端末装置において、
前記パケットの前記先頭部分が割り当てられた前記高速メモリの領域がアクセスされるとき、前記メインメモリの前記パケットの先頭部分の格納領域のアドレス空間を無効にするプライオリティ回路を備えることを特徴とする端末装置。
【請求項４】
請求項１，２又は３に記載の端末装置において、
前記メインメモリとの間で前記パケットの送受信を行うＤＭＡを備え、
前記パケットの前記先頭部分の前記高速メモリへのＤＭＡ転送が終了した時点でＣＰＵに対する前記パケット処理開始の割込みが発生するようにしたことを特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの送受信に用いるパケットバッファの内、パケット先頭部分の格納用として高速メモリを使用し、ネットワークの通信性能の向上を図った端末装置に関するものである。
【背景技術】
【０００２】
イーサネットなどのネットワーク通信用の端末装置の多くは、図７に示すように、ＤＭＡコントローラ１１を有するネットワークインターフェース１０が送受信するパケットを、メインメモリとして働くＤＲＡＭ２０との間でＤＭＡ転送を行って、ＣＰＵ３０と受け渡し受けを行う。４０はバスであり、４１はアドレスバス、４２はデータバスである。メインメモリには、コストの安いＤＲＡＭ２０が使われるが、読み書き時のレイテンシが大きい欠点がある。そのため、ＣＰＵ３０のＤＲＡＭ２０上のパケットデータへのアクセスと、ネットワークインターフェース１０のパケットデータへのアクセスとの間にタイムラグが生じ、通信性能を悪化させる。
【０００３】
そこで、レイテンシの小さなＳＲＡＭを併用することによってこの問題を解決する技術が提案されている（例えば、特許文献１参照）。ここでは、パケット長の小さいものはＳＲＡＭ上に、パケット長の長いものはＤＲＡＭにパケットを置くことが行われている。
【０００４】
また、ＴＣＰ／ＩＰに代表される通信プロトコルは階層化されており、パケット受信時には下位の層から上位の層に向かって逐次的に処理が行われる。パケット上で見ると、前から後へ順にパケットの内容が参照され、処理されていくことになる。そこで、パケット全体の受信が終了しなくても、パケットの前から一定長までの受信が終わった段階でＣＰＵに割込みをかけ、処理を開始させることによって通信性能を向上させることも行われている（例えば、特許文献２参照）。
【特許文献１】特開２００６−１７４２６５号公報
【特許文献２】特許第２７６７０８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、前者は、長いパケットに対しては従来どおりＤＲＡＭが使われるので、この場合はレイテンシの改善にはならない。また、パケットバッファのアドレス管理方法が従来と変わるため、既存の設計資産、特にソフトウェアを活かすことが難しくなるという問題もある。
【０００６】
後者は、たとえ早期割込みの方法を用いたとしても、パケットデータを置くバッファメモリとしてＤＲＡＭを使うならば、通信性能の向上は限定的である。
【０００７】
本発明の目的は、既存の装置設計を大きく変更することなく、低コストでネットワークの通信性能を向上させることができるようにした端末装置を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１にかかる発明の端末装置は、パケットを格納するパケットバッファとして、メインメモリの一部が割り当てられた端末装置において、前記メインメモリよりも読み書きが高速で行われる高速メモリを備え、前記パケットバッファにおける前記パケットの先頭部分の格納領域を、該高速メモリに割り当てたことを特徴とする。
請求項２にかかる発明は、請求項１に記載の端末装置において、前記パケットの先頭部分の格納領域を示す前記メインメモリのアドレスを、前記高速メモリの前記パケットの先頭部分が割り当てられた領域のアドレスに変換するアドレス変換器を備えることを特徴とする。
請求項３にかかる発明は、請求項１又は２に記載の端末装置において、前記パケットの前記先頭部分が割り当てられた前記高速メモリの領域がアクセスされるとき、前記メインメモリの前記パケットの先頭部分の格納領域のアドレス空間を無効にするプライオリティ回路を備えることを特徴とする。
請求項４にかかる発明は、請求項１，２又は３に記載の端末装置において、前記メインメモリとの間で前記パケットの送受信を行うＤＭＡを備え、前記パケットの前記先頭部分の前記高速メモリへのＤＭＡ転送が終了した時点でＣＰＵに対する前記パケット処理開始の割込みが発生するようにしたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、メインメモリの一部に割り当てられたパケットバッファのうち、ＴＣＰプロトコルのヘッダ等が含まれるパケットの先頭部分を格納する領域を高速メモリに割り当てるので、既存の装置の設計を大きく変更することなく、低コストでネットワークの通信性能を向上させることができる。すなわち、（１）通常、パケットバッファは多くても十数パケット分あれば十分であるから、必要な高速メモリのサイズは１キロバイト程度とごく僅かで済み、この程度の量であれば、かなり高速なメモリを使用してもコストは低く済む。また、ＬＳＩ上に他の回路と共に集積することも容易である。（２）ＤＲＡＭを使った従来のメインメモリの制御回路に対する変更は小さく、きわめて容易である。（３）パケットバッファのアドレスの扱いに関して、既存のネットワークインターフェースの回路およびソフトウェアを変更する必要はなく、また、メモリの変更によってメインメモリの用途が限定されることはなく、メモリの汎用性は保たれる。（４）パケット先頭部分のＤＭＡ転送の終了により割込みが発生するので、早期処理開始と高速メモリへのパケット先頭部分の高速書込みにより、処理が迅速化される。
【発明を実施するための最良の形態】
【００１０】
本実施例では、ＤＲＡＭの一部に割り当てられたパケットバッファのうち、パケットの先頭部分を格納する領域をＳＲＡＭに割り当てる。そのＳＲＡＭ部分の長さはＴＣＰプロトコルのヘッダが含まれるように選ぶ。また、ネットワークインターフェースは、パケットの先頭部分の受信が終りＳＲＡＭへのＤＭＡ転送が終了した時点でＣＰＵに対して割込みを発生し、そのパケットについての処理の開始が行われるようにする。
【００１１】
＜実施例＞
図１に本発明の１つの実施例のネットワーク制御用の端末装置の要部の構成を示す。ＤＭＡコントローラを有するネットワークインターフェース１０、メインメモリとして使用されるＤＲＡＭ２０、ＣＰＵ３０、バス４０、アドレスバス４１、データバス４２等は図７で説明したものと同じである。本実施例では、新たに高速メモリとしてＳＲＡＭを備える。６０，７０はメモリに対してイネーブル信号を発生させるアドレスデコーダ、８０は特定のアドレスのときメインメモリ２０を非イネーブルにするプライオリティ回路、９０はＤＲＡＭ２０用のアドレスデータをＳＲＡＭ５０用のアドレスデータに変換するアドレス変換器である。
【００１２】
本実施例では、図２に示すように、パケットバッファのサイズを２０４８バイトとし、このうち先頭部分の６４バイトをＳＲＡＭ５０に割り当てる。このサイズのパケットバッファであれば、通常、最大フレームサイズが１５００バイト程度であるイーサネットのパケットを十分格納でき、また、一般的なイーサネットのパケットは図３に示すような構成であるため、確認応答など迅速な処理が要求されるＴＣＰのヘッダ部分はＳＲＡＭ５０上に配置されることになる。
【００１３】
受信用と送信用にそれぞれ８個づつのパケットバッファを確保し、図４のメモリマップの位置に配置する。この例では、パケットバッファは合計３２ＫＢ（＝２０４８×１６）であり、ＤＲＡＭ２０のメモリ空間の０ｘ３００００〜０ｘ３７ｆｆｆの領域に割り当てる。なお、この実施例ではアドレス空間は２０ビットである。以上の結果、パケットバッファの領域は、図５に示すように、ＤＲＡＭ２０とＳＲＡＭ５０が混在したメモリ空間で表されることになる。
【００１４】
図１において、アドレスデコーダ６０は、ＤＲＡＭ２０の内の、パケットバッファが割り当てられている０ｘ０００００〜０ｘ３ＦＦＦＦのアドレスのすべての領域を検出する。すなわち、アドレスバス４１のＭＳＢとＭＳＢ−１のアドレス線である[ａ１９，ａ１８]＝[０，０]の一致を検出する。そして、この検出によりＤＲＡＭ２０をイネーブルにする。
【００１５】
さらに、この領域の中において、ＳＲＡＭ５０が割り当てられた領域はＳＲＡＭ５０が優先してアクセスされるように、プライオリティ回路８０で制御する。すなわち、アドレスデコーダ７０がこの領域を検出したとき、ＳＲＡＭ５０をイネーブルにするとともに、プライオリティ回路８０によって、ＤＲＡＭ２０を非イネーブルにする。通常のＤＲＡＭ制御回路からの変更点は、このプライオリティ回路８０の追加のみである。なお、ＳＲＡＭ５０に割り当てられた領域と重なった部分のＤＲＡＭ２０の領域は使用されず無駄になるが、そのＤＲＡＭ２０の単位容量あたりのコストは非常に小さいため問題にならない。
【００１６】
ＳＲＡＭ５０用のアドレスデコーダ７０は、パケットバッファのうちのＳＲＡＭ５０に割り当てられたアドレス領域を検出する。図５に示したように、１６個のパケットバッファでは、ＳＲＡＭは不連続な領域に配置されているが、本実施例では、図６に示すように、アドレスバス４１アドレス線のうち、[ａ１９，ａ１８，ａ１７，ａ１６，ａ１５]＝[０，０，１，１，０]、[ａ１０，ａ９，ａ８，ａ７，ａ６]＝[０，０，０，０，０]の一致を検出すればよい。この検出時に、ＳＲＡＭ５０がイネーブルになるとともに、上記のようにプライオリティ回路８０によって、ＤＲＡＭ２０が非イネーブルになる。
【００１７】
アドレス変換器９０では、不連続な領域をＳＲＡＭ５０上の連続な領域に対応づけるようにアドレスを変換する。本実施例では、図６の下部に示すように、アドレスバス４１のアドレス線の[ａ１４，ａ１３，ａ１２，ａ１１]をＳＲＡＭ５０のアドレス入力[Ａ９，Ａ８，Ａ７，Ａ６]に対応づけ、[ａ５，ａ４，ａ３，ａ２，ａ１，ａ０]をＳＲＡＭ５０のアドレス入力[Ａ５，Ａ４，Ａ３，Ａ２、Ａ１，Ａ０]に対応づける。
【００１８】
以上のようにして、パケットの先頭部分が受信されＤＭＡコントローラ１１によるＤＭＡ転送によりＳＲＡＭ５０に格納されると、ネットワークインターフェース１０によって割込みが発生し、ＣＰＵ３０に通知する。これにより、パケット先頭部分の受信が終了した時点でそのパケットについての処理が開始されるので、ＳＲＡＭ５０への書込みが高速で行われることも加味され、ネットワークの通信性能が向上する。
【００１９】
なお、本実施例では、ＳＲＡＭを配置するパケットバッファの領域の位置は固定であるが、ソフトウェアによって設定変更可能にすればシステムの柔軟性が増す。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例の端末装置の要部の構成を示すブロック図である。
【図２】パケットバッファのサイズの説明図である。
【図３】ＴＣＰ／ＩＰパケットの説明図である。
【図４】ワークメモリのメモリ空間の説明図である。
【図５】パケットバッファのメモリ空間の説明図である。
【図６】ＤＲＡＭのアドレスおよびＳＲＡＭへのアドレス変換の説明図である。
【図７】従来の端末装置の要部の構成を示すブロック図である。
【符号の説明】
【００２１】
１０：ネットワークインターフェース、１１：ＤＭＡコントローラ
２０：ＤＲＡＭ
３０：ＣＰＵ
４０：バス、４１：アドレスバス、４２：データバス
５０：ＳＲＡＭ
６０，７０：アドレスデコーダ
８０：プライオリティ回路
９０：アドレス変換器
【図１】
2009020684.tif 000003
【図２】
2009020684.tif 000004
【図３】
2009020684.tif 000005
【図４】
2009020684.tif 000006
【図５】
2009020684.tif 000007
【図６】
2009020684.tif 000008
【図７】
2009020684.tif 000009