(57)【要約】  【課題】  ネットワークから受信したデータを外部のメモリに転送する場合に、ＣＰＵによる制御を不要とすることが可能なネットワークコントローラ等を提供する。  【解決手段】  このネットワークコントローラ１は、ネットワークＮからデータを受信するためのＭＡＣ処理部２と、ＭＡＣ処理部２によって受信されたデータを記憶するためのバッファメモリ３と、バッファメモリ３に記憶されているデータが外部のメモリ６に転送すべきデータであるか否かを判定するための加算判定処理部４と、加算判定処理部４の指示に従って、バッファメモリ３に記憶されているデータを外部のメモリ６に転送するためのＤＭＡ転送処理部５とを具備する。【選択図】  図１
2006005698.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークからデータを受信して外部メモリに転送するためのネットワークコントローラであって、
前記ネットワークからデータを受信するための受信処理部と、
前記受信処理部によって受信されたデータを記憶するためのバッファメモリと、
前記バッファメモリに記憶されているデータが前記外部メモリに転送すべきデータであるか否かを判定するための判定処理部と、
前記判定処理部の指示に従って、前記バッファメモリに記憶されているデータを前記外部メモリに転送するための転送処理部と、
を具備するネットワークコントローラ。
【請求項２】
前記判定処理部が、前記受信処理部によるデータの受信が終了した後に、前記バッファメモリに記憶されているデータが前記外部メモリに転送すべきデータであるか否かの判定を行い、前記バッファメモリに記憶されているデータが前記外部メモリに転送すべきデータであると判定した場合に、前記転送処理部に対し、前記バッファメモリに記憶されているデータの前記外部メモリへの転送を指示する、請求項１記載のネットワークコントローラ。
【請求項３】
前記判定処理部が、前記受信処理部によるデータの受信が開始されたときに、前記転送処理部に対し、前記バッファメモリに記憶されているデータの前記外部メモリへの転送を開始することを指示し、前記受信処理部によるデータの受信が終了した後に、前記バッファメモリに記憶されているデータが前記外部メモリに転送すべきデータであるか否かの判定を行い、前記バッファメモリに記憶されているデータが前記外部メモリに転送すべきデータでないと判定した場合に、前記転送処理部に対し、前記バッファメモリに記憶されているデータの前記外部メモリへの転送の中止又は取り消しを指示する、請求項１記載のネットワークコントローラ。
【請求項４】
前記判定処理部が、前記バッファメモリに記憶されているデータのチェックサムの計算及び判定を行うための加算判定処理部、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）のシーケンス番号の判定を行うためのシーケンス番号判定処理部、ポート番号の判定を行うためのポート番号判定処理部、及び／又は、データの送信元装置のＩＰアドレスの判定を行うためのＩＰアドレス判定処理部を具備する、請求項１〜３のいずれか１項に記載のネットワークコントローラ。
【請求項５】
請求項１〜４のいずれか１項に記載のネットワークコントローラを具備する半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークからデータを受信して外部メモリに転送するためのネットワークコントローラ及び半導体集積回路に関する。
【背景技術】
【０００２】
従来より、データ受信時におけるＣＰＵの負荷を軽減することができるＬＡＮ端末装置が知られている（例えば、特許文献１参照）。
特許文献１には、所定の通信プロトコルに基づき、制御データ及び情報データ等からなるデータを受信し、同受信したデータをバッファメモリに格納するＬＡＮコントローラと、ＬＡＮコントローラのバッファメモリより制御データを読み出し、該データをもとにプロトコル解析を行うＣＰＵと、プロトコル解析後に、ＣＰＵの制御のもとに情報データを格納するメモリ部とを備えてなるＬＡＮ端末装置において、ＣＰＵの制御のもとにデータ転送手段を設け、ＬＡＮコントローラのバッファメモリに格納してなる情報データをＣＰＵを介さずにデータ転送手段を介してメモリ部へ転送し、格納するようにしたことを特徴とするＬＡＮ端末装置が掲載されている。
【０００３】
しかしながら、特許文献１に掲載されたＬＡＮ端末装置は、ＣＰＵによるプロトコル解析後に、ＣＰＵの制御のもとに情報データを格納するメモリ部を備える。すなわち、このＬＡＮ端末装置においては、情報データの格納前にＣＰＵによるプロトコル解析が必要である。また、このＬＡＮ端末装置においては、ＣＰＵの制御のもとに設けられたデータ転送手段が、情報データの転送を行う。すなわち、データ転送手段が情報データの転送を行うために、ＣＰＵによる制御が必要となる。
【０００４】
【特許文献１】特開平１１−４１２３７号公報（第２頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、上記の点に鑑み、本発明は、ＣＰＵによるプロトコル解析を待つことなくデータを格納することができ、データを転送する場合にＣＰＵによる制御を不要とすることが可能なネットワークコントローラを提供することを目的とする。また、本発明は、そのようなネットワークコントローラを具備する半導体集積回路を提供することを更なる目的とする。
【課題を解決するための手段】
【０００６】
以上の課題を解決するため、本発明に係るネットワークコントローラは、ネットワークからデータを受信して外部メモリに転送するためのネットワークコントローラであって、ネットワークからデータを受信するための受信処理部と、受信処理部によって受信されたデータを記憶するためのバッファメモリと、バッファメモリに記憶されているデータが外部メモリに転送すべきデータであるか否かを判定するための判定処理部と、判定処理部の指示に従って、バッファメモリに記憶されているデータを外部メモリに転送するための転送処理部とを具備する。
【０００７】
このネットワークコントローラにおいて、判定処理部が、受信処理部によるデータの受信が終了した後に、バッファメモリに記憶されているデータが外部メモリに転送すべきデータであるか否かの判定を行い、バッファメモリに記憶されているデータが外部メモリに転送すべきデータであると判定した場合に、転送処理部に対し、バッファメモリに記憶されているデータの外部メモリへの転送を指示することとしても良い。
【０００８】
また、判定処理部が、受信処理部によるデータの受信が開始されたときに、転送処理部に対し、バッファメモリに記憶されているデータの外部メモリへの転送を開始することを指示し、受信処理部によるデータの受信が終了した後に、バッファメモリに記憶されているデータが外部メモリに転送すべきデータであるか否かの判定を行い、バッファメモリに記憶されているデータが外部メモリに転送すべきデータでないと判定した場合に、転送処理部に対し、バッファメモリに記憶されているデータの外部メモリへの転送の中止又は取り消しを指示することとしても良い。
【０００９】
また、判定処理部が、バッファメモリに記憶されているデータのチェックサムの計算及び判定を行うための加算判定処理部、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）のシーケンス番号の判定を行うためのシーケンス番号判定処理部、ポート番号の判定を行うためのポート番号判定処理部、及び／又は、データの送信元装置のＩＰアドレスの判定を行うためのＩＰアドレス判定処理部を具備することとしても良い。
【００１０】
また、本発明に係る半導体集積回路は、上記したネットワークコントローラを具備する。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図１は、本発明の第１の実施形態に係るネットワークコントローラの概要を示す図である。図１に示すように、このネットワークコントローラ１は、ＭＡＣ（Media Access Control）処理部２と、バッファメモリ３と、加算判定処理部４と、ＤＭＡ（Direct Memory Access）転送処理部５とを具備する。
【００１２】
ＭＡＣ処理部２は、ネットワークＮ（例えば、Ethernet（登録商標）等）から所定のプロトコルでデータ（パケット、フレーム等）を受信する。
バッファメモリ３は、ＭＡＣ処理部２によって受信されたデータを記憶する。
加算判定処理部４は、バッファメモリ３に記憶されているデータのチェックサムを計算し、バッファメモリ３に記憶されているデータの正誤を判定する。
【００１３】
ＤＭＡ転送処理部５は、ネットワークコントローラ１の外部のメモリ６及びＣＰＵ（Central Processing Unit）７に接続されており、加算判定処理部４からの指示に従って、バッファメモリ３に記憶されているデータをメモリ６にＤＭＡ転送する。ＣＰＵ７は、メモリ６にＤＭＡ転送されたデータを参照して所定の処理を行う。
このネットワークコントローラ１は、半導体集積回路として構成することが可能である。
【００１４】
図２は、ネットワークコントローラ１の加算判定処理部４の動作の概要を示すフローチャートである。以下、図２を参照しながら、ネットワークコントローラ１の動作について説明する。
まず、ＭＡＣ処理部２が、データ（パケット、フレーム等）をネットワークＮから受信してバッファメモリ３に書き込む。ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了すると、加算判定処理部４は、バッファメモリ３に書き込まれ記憶されているデータのチェックサムの計算を行う（ステップＳ１０１）。
【００１５】
そして、加算判定処理部４は、チェックサムの計算結果が正しいと判定した場合（ステップＳ１０２）、ＤＭＡ転送処理部５に対し、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始するように指示する（ステップＳ１０３）。ＤＭＡ転送処理部５は、加算判定処理部４からの指示を受け、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始し、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
一方、加算判定処理部４は、チェックサムの計算結果が正しくないと判定した場合（ステップＳ１０２）、ＤＭＡ転送処理部５にＤＭＡ転送の開始を指示することなく処理を終了する。なお、この場合、バッファメモリ３に記憶されているデータは、次回以降の受信データによって上書きされてしまうこととしても良い。
【００１６】
このように、ネットワークコントローラ１によれば、チェックサムの計算結果が正しい場合にＤＭＡ転送が行われるので、無駄なＤＭＡ転送が行われることを防止することができる。また、チェックサムの計算及びチェックサム計算結果の判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００１７】
なお、上記においては、チェックサムの計算結果が正しい場合にＤＭＡ転送の開始を指示する場合について説明したが、ＤＭＡ転送の開始を指示した後にチェックサムの計算を行うこととしても良い。図３は、このような場合における加算判定処理部４の動作の概要を示すフローチャートである。
この場合、まず、ＭＡＣ処理部２が、ネットワークＮからデータ（パケット、フレーム等）の受信を開始するとともに、バッファメモリ３に書き込みを開始する。ＭＡＣ処理部２によるデータのバッファメモリ３への書き込みが開始されると、加算判定処理部４は、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了するのを待つことなく、ＤＭＡ転送を開始するようにＤＭＡ転送処理部５に指示する（ステップＳ２０１）。
【００１８】
次に、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了すると、加算判定処理部４は、チェックサムの計算を行う（ステップＳ２０２）。
そして、加算判定処理部４は、チェックサムの計算結果が正しくないと判定した場合（ステップＳ２０３）、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示する（ステップＳ２０４）。これにより、ＤＭＡ転送処理部５は、ＤＭＡ転送中であればＤＭＡ転送を中止し、ＤＭＡ転送開始前であればＤＭＡ転送を行わない。
一方、加算判定処理部４は、チェックサムの計算結果が正しいと判定した場合（ステップＳ２０３）、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示することなく、処理を終了する。ＤＭＡ転送処理部５は、ＤＭＡ転送を行い、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
【００１９】
このように、ＤＭＡ転送の開始を指示してからチェックサムの計算を行い、チェックサムの計算結果が正しくないと判定した場合にＤＭＡ転送を中止又は取り消すこととすれば、データの転送をより早く行うことができる。また、この場合においても、チェックサムの計算及びチェックサム計算結果の判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００２０】
次に、本発明の第２の実施形態について説明する。図４は、本発明の第２の実施形態に係るネットワークコントローラの概要を示す図である。このネットワークコントローラ１１は、ＭＡＣ処理部２と、バッファメモリ３と、ＤＭＡ転送処理部５と、シーケンス番号判定処理部１２とを具備する。シーケンス番号判定処理部１２は、シーケンス番号チェック処理回路１３と、シーケンス番号レジスタ２１、２２、…とを具備する。
【００２１】
シーケンス番号レジスタ２１、２２、…には、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の複数のシーケンス番号がＣＰＵ７によってそれぞれ書き込まれる。
シーケンス番号チェック処理回路１３は、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号とバッファメモリ３に記憶されているデータのシーケンス番号とを比較する。そして、シーケンス番号チェック処理回路１３は、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号のいずれかとバッファメモリ３に記憶されているデータのシーケンス番号とが一致すると判定した場合、ＤＭＡ転送処理部５に対し、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始するように指示する。ＤＭＡ転送処理部５は、シーケンス番号判定処理回路１３からの指示を受け、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始し、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
【００２２】
このように、ネットワークコントローラ１１によれば、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号のいずれかとバッファメモリ３に記憶されているデータのシーケンス番号とが一致する場合にＤＭＡ転送が行われるので、無駄なＤＭＡ転送が行われることを防止することができる。また、シーケンス番号の判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００２３】
なお、上記においては、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号のいずれかとバッファメモリ３に記憶されているデータのシーケンス番号とが一致する場合にＤＭＡ転送の開始を指示する場合について説明したが、ＤＭＡ転送の開始を指示した後にシーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号のいずれかとバッファメモリ３に記憶されているデータのシーケンス番号とが一致するか否かを判定することとしても良い。
すなわち、まず、ＭＡＣ処理部２が、ネットワークＮからデータの受信を開始するとともに、バッファメモリ３に書き込みを開始する。ＭＡＣ処理部２によるデータのバッファメモリ３への書き込みが開始されると、シーケンス番号チェック処理回路１３は、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了するのを待つことなく、ＤＭＡ転送を開始するようにＤＭＡ転送処理部５に指示する。
【００２４】
次に、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了すると、シーケンス番号チェック処理回路１３は、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号のいずれかとバッファメモリ３に記憶されているデータのシーケンス番号とが一致するか否かの判定を行う。
そして、シーケンス番号チェック処理回路１３は、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号とバッファメモリ３に記憶されているデータのシーケンス番号とが一致しないと判定した場合、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示する。これにより、ＤＭＡ転送処理部５は、ＤＭＡ転送中であればＤＭＡ転送を中止し、ＤＭＡ転送開始前であればＤＭＡ転送を行わない。
【００２５】
一方、シーケンス番号チェック処理回路１３は、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号のいずれかとバッファメモリ３に記憶されているデータのシーケンス番号とが一致すると判定した場合、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示することなく、処理を終了する。ＤＭＡ転送処理部５は、ＤＭＡ転送を行い、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
【００２６】
このように、ＤＭＡ転送の開始を指示してからシーケンス番号の判定を行い、シーケンス番号レジスタ２１、２２、…に記憶されている複数のシーケンス番号とバッファメモリ３に記憶されているデータのシーケンス番号とが一致しないと判定した場合にＤＭＡ転送を中止又は取り消すこととすれば、データの転送をより早く行うことができる。また、この場合においても、シーケンス番号の判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００２７】
次に、本発明の第３の実施形態について説明する。図５は、本発明の第３の実施形態に係るネットワークコントローラの概要を示す図である。このネットワークコントローラ３１は、ＭＡＣ処理部２と、バッファメモリ３と、ＤＭＡ転送処理部５と、ポート番号判定処理部３２とを具備する。ポート番号判定処理部３２は、ポート番号チェック処理回路３３と、ポート番号レジスタ４１、４２、…とを具備する。
【００２８】
ポート番号レジスタ４１、４２、…には、複数のポート番号がＣＰＵ７によってそれぞれ書き込まれる。
ポート番号チェック処理回路３３は、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号とバッファメモリ３に記憶されているデータのポート番号とを比較する。そして、ポート番号チェック処理回路３３は、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号のいずれかとバッファメモリ３に記憶されているデータのポート番号とが一致すると判定した場合、ＤＭＡ転送処理部５に対し、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始するように指示する。ＤＭＡ転送処理部５は、ポート番号判定処理回路３３からの指示を受け、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始し、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
【００２９】
このように、ネットワークコントローラ３１によれば、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号のいずれかとバッファメモリ３に記憶されているデータのポート番号とが一致する場合にＤＭＡ転送が行われるので、無駄なＤＭＡ転送が行われることを防止することができる。また、ポート番号の判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００３０】
なお、上記においては、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号のいずれかとバッファメモリ３に記憶されているデータのポート番号とが一致する場合にＤＭＡ転送の開始を指示する場合について説明したが、ＤＭＡ転送の開始を指示した後にポート番号レジスタ４１、４２、…に記憶されている複数のポート番号のいずれかとバッファメモリ３に記憶されているデータのポート番号とが一致するか否かを判定することとしても良い。
すなわち、まず、ＭＡＣ処理部２が、ネットワークＮからデータの受信を開始するとともに、バッファメモリ３に書き込みを開始する。ＭＡＣ処理部２によるデータのバッファメモリ３への書き込みが開始されると、ポート番号チェック処理回路３３は、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了するのを待つことなく、ＤＭＡ転送を開始するようにＤＭＡ転送処理部５に指示する。
【００３１】
次に、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了すると、ポート番号チェック処理回路３３は、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号のいずれかとバッファメモリ３に記憶されているデータのポート番号とが一致するか否かの判定を行う。
そして、ポート番号チェック処理回路３３は、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号とバッファメモリ３に記憶されているデータのポート番号とが一致しないと判定した場合、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示する。これにより、ＤＭＡ転送処理部５は、ＤＭＡ転送中であればＤＭＡ転送を中止し、ＤＭＡ転送開始前であればＤＭＡ転送を行わない。
【００３２】
一方、ポート番号チェック処理回路３３は、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号のいずれかとバッファメモリ３に記憶されているデータのポート番号とが一致すると判定した場合、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示することなく、処理を終了する。ＤＭＡ転送処理部５は、ＤＭＡ転送を行い、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
【００３３】
このように、ＤＭＡ転送の開始を指示してからポート番号の判定を行い、ポート番号レジスタ４１、４２、…に記憶されている複数のポート番号とバッファメモリ３に記憶されているデータのポート番号とが一致しないと判定した場合にＤＭＡ転送を中止又は取り消すこととすれば、データの転送をより早く行うことができる。また、この場合においても、ポート番号の判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００３４】
次に、本発明の第４の実施形態について説明する。図６は、本発明の第４の実施形態に係るネットワークコントローラの概要を示す図である。このネットワークコントローラ５１は、ＭＡＣ処理部２と、バッファメモリ３と、ＤＭＡ転送処理部５と、ＩＰアドレス判定処理部５２とを具備する。ＩＰアドレス判定処理部５２は、ＩＰアドレスチェック処理回路５３と、ＩＰアドレスレジスタ６１、６２、…とを具備する。
【００３５】
ＩＰアドレスレジスタ６１、６２、…には、複数のＩＰアドレスがＣＰＵ７によってそれぞれ書き込まれる。
ＩＰアドレスチェック処理回路５３は、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスとバッファメモリ３に記憶されているデータのＩＰアドレスとを比較する。そして、ＩＰアドレスチェック処理回路５３は、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスのいずれかとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致すると判定した場合、ＤＭＡ転送処理部５に対し、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始するように指示する。ＤＭＡ転送処理部５は、ＩＰアドレス判定処理回路５３からの指示を受け、バッファメモリ３に記憶されているデータのメモリ６へのＤＭＡ転送を開始し、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
【００３６】
このように、ネットワークコントローラ５１によれば、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスのいずれかとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致する場合にＤＭＡ転送が行われるので、無駄なＤＭＡ転送が行われることを防止することができる。また、ＩＰアドレスの判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００３７】
なお、上記においては、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスのいずれかとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致する場合にＤＭＡ転送の開始を指示する場合について説明したが、ＤＭＡ転送の開始を指示した後にＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスのいずれかとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致するか否かを判定することとしても良い。
すなわち、まず、ＭＡＣ処理部２が、ネットワークＮからデータの受信を開始するとともに、バッファメモリ３に書き込みを開始する。ＭＡＣ処理部２によるデータのバッファメモリ３への書き込みが開始されると、ＩＰアドレスチェック処理回路５３は、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了するのを待つことなく、ＤＭＡ転送を開始するようにＤＭＡ転送処理部５に指示する。
【００３８】
次に、ＭＡＣ処理部２によるデータの受信及びバッファメモリ３への書き込みが終了すると、ＩＰアドレスチェック処理回路５３は、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスのいずれかとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致するか否かの判定を行う。
そして、ＩＰアドレスチェック処理回路５３は、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致しないと判定した場合、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示する。これにより、ＤＭＡ転送処理部５は、ＤＭＡ転送中であればＤＭＡ転送を中止し、ＤＭＡ転送開始前であればＤＭＡ転送を行わない。
【００３９】
一方、ＩＰアドレスチェック処理回路５３は、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスのいずれかとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致すると判定した場合、ＤＭＡ転送処理部５にＤＭＡ転送の中止又は取り消しを指示することなく、処理を終了する。ＤＭＡ転送処理部５は、ＤＭＡ転送を行い、ＤＭＡ転送が終了した後、ＣＰＵ７に通知する。
【００４０】
このように、ＤＭＡ転送の開始を指示してからＩＰアドレスの判定を行い、ＩＰアドレスレジスタ６１、６２、…に記憶されている複数のＩＰアドレスとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致しないと判定した場合にＤＭＡ転送を中止又は取り消すこととすれば、データの転送をより早く行うことができる。また、この場合においても、ＩＰアドレスの判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００４１】
次に、本発明の第５の実施形態について説明する。図７は、本発明の第５の実施形態に係るネットワークコントローラの概要を示す図である。このネットワークコントローラ７１は、ＭＡＣ処理部２と、バッファメモリ３と、ＤＭＡ転送処理部５と、判定処理部７２とを具備する。判定処理部７２は、加算判定処理部４と、シーケンス番号判定処理部１２と、ポート番号判定処理部３２と、ＩＰアドレス判定処理部５２とを具備する。
【００４２】
ネットワークコントローラ７１によれば、チェックサムの計算結果が正しく、シーケンス番号レジスタ２１、２２、…（図４参照）に記憶されている複数のシーケンス番号のいずれかとバッファメモリ３に記憶されているデータのシーケンス番号とが一致し、ポート番号レジスタ４１、４２、…（図５参照）に記憶されている複数のポート番号のいずれかとバッファメモリ３に記憶されているデータのポート番号とが一致し、且つ、ＩＰアドレスレジスタ６１、６２、…（図６参照）に記憶されている複数のＩＰアドレスのいずれかとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致する場合にＤＭＡ転送が行われるので、無駄なＤＭＡ転送が行われることを防止することができる。また、これらの判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００４３】
また、ＤＭＡ転送を開始し、その後に、チェックサムの計算結果が誤っており、シーケンス番号レジスタ２１、２２、…（図４参照）に記憶されている複数のシーケンス番号とバッファメモリ３に記憶されているデータのシーケンス番号とが一致せず、ポート番号レジスタ４１、４２、…（図５参照）に記憶されている複数のポート番号とバッファメモリ３に記憶されているデータのポート番号とが一致せず、又は、ＩＰアドレスレジスタ６１、６２、…（図６参照）に記憶されている複数のＩＰアドレスとバッファメモリ３に記憶されているデータのＩＰアドレスとが一致しない場合に、ＤＭＡ転送を中止又は取り消すこととしても良い。これにより、データの転送をより早く行うことができる。また、この場合においても、判定にＣＰＵ７が介在する必要がないため、ＣＰＵ７の負荷を軽減することができる。
【００４４】
なお、本実施形態においては、判定処理部７２が、加算判定処理部４、シーケンス番号判定処理部１２、ポート番号判定処理部３２、及び、ＩＰアドレス判定処理部５２を具備することとしているが、これらの中のいずれか２つ又は３つを具備することとしても良い。
【産業上の利用可能性】
【００４５】
本発明は、ネットワークからデータを受信して外部メモリに転送するためのネットワークコントローラにおいて利用可能である。また、本発明は、そのようなネットワークコントローラを具備する半導体集積回路において利用可能である。これらの回路は、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistants、携帯電話装置等に利用可能である。
【図面の簡単な説明】
【００４６】
【図１】本発明の第１の実施形態に係るネットワークコントローラを示す図。
【図２】図１のネットワークコントローラ１の動作を示すフローチャート。
【図３】図１のネットワークコントローラ１の動作を示すフローチャート。
【図４】本発明の第２の実施形態に係るネットワークコントローラを示す図。
【図５】本発明の第３の実施形態に係るネットワークコントローラを示す図。
【図６】本発明の第４の実施形態に係るネットワークコントローラを示す図。
【図７】本発明の第５の実施形態に係るネットワークコントローラを示す図。
【符号の説明】
【００４７】
１、１１、３１、５１、７１  ネットワークコントローラ、２  ＭＡＣ処理部、３  バッファメモリ、４  加算判定処理部、５  ＤＭＡ転送処理部、６  メモリ、７  ＣＰＵ、１２  シーケンス番号判定処理部、１３  シーケンス番号チェック処理回路、２１、２２、…  シーケンス番号レジスタ、３２  ポート番号判定処理部、３３  ポート番号チェック処理回路、４１、４２、…  ポート番号レジスタ、５２  ＩＰアドレス判定処理部、５３  ＩＰアドレスチェック処理回路、６１、６２、…  ＩＰアドレスレジスタ、７２  判定処理部
【図１】
2006005698.tif 000003
【図２】
2006005698.tif 000004
【図３】
2006005698.tif 000005
【図４】
2006005698.tif 000006
【図５】
2006005698.tif 000007
【図６】
2006005698.tif 000008
【図７】
2006005698.tif 000009