(57)【要約】  【課題】  送受信バッファ全体のサイズが極めて小さい場合であっても受信を行うことが可能な半導体集積回路を提供する。  【解決手段】  このネットワークコントローラ２は、送受信バッファ１１と、プロトコル処理部１２と、ネットワーク受信処理部１３と、ネットワーク送信処理部１４と、ホスト要求受信処理部１５と、ホスト応答出力処理部１６とを具備する。送信時において、ネットワーク受信処理部１３は、送受信バッファ１１内の受信用領域の容量が所定の閾値以上である場合には、送受信バッファ１１内に送信用領域を確保する。ホスト要求受信処理部１５は、送信データを上位レイヤから受け取って送受信バッファ１１内の送信用領域に書き込み、プロトコル処理部１２は、送信データにプロトコル処理を行って送信フレームを作成し、ネットワーク送信処理部１４は、作成された送信フレームをネットワークＮ上に送信する。【選択図】  図２
2006033010.tif 000002
【特許請求の範囲】
【請求項１】
上位レイヤとネットワークとの間の通信を行うための半導体集積回路であって、
前記上位レイヤから前記ネットワークへ送信するための送信データ、送信パケット、若しくは、送信フレーム、並びに、前記ネットワークから受信した受信フレーム、受信パケット、若しくは、受信データを格納するための送受信バッファを具備し、
受信時において、前記送受信バッファ内に受信用領域を確保し、前記ネットワークから受信した受信フレーム、受信パケット、又は、受信データを前記送受信バッファ内の受信用領域内に書き込み、前記送受信バッファ内の受信用領域内に書き込まれた受信フレーム、受信パケット、又は、受信データを前記上位レイヤに送り、
送信時において、前記送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に、前記送受信バッファ内に送信用領域を確保し、前記上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って前記送受信バッファ内の送信用領域に書き込み、前記送受信バッファ内の送信用領域内に書き込まれた送信データ、送信パケット、又は、送信フレームを前記ネットワーク上に送信することを特徴とする、半導体集積回路。
【請求項２】
前記送受信バッファに格納されている送信データ、送信パケット、若しくは、送信フレーム、並びに、受信フレーム、受信パケット、若しくは、受信データに所定のプロトコル処理を行うためのプロトコル処理部と、
受信時において、前記送受信バッファ内に受信用領域を確保し、前記ネットワークから受信フレーム、受信パケット、又は、受信データを受信して前記送受信バッファに書き込み、送信時において、前記送受信バッファ内の受信用領域の容量が前記所定の閾値以上である場合に前記送受信バッファ内に送信用領域を確保するためのネットワーク受信処理部と、
前記送受信バッファに格納されている送信フレーム、送信パケット、又は、送信データを前記ネットワーク上に送信するためのネットワーク送信処理部と、
前記上位レイヤから送信要求を受けた場合に、前記送受信バッファ内の受信用領域の容量が所定の閾値以上であるか否かを前記ネットワーク受信処理部に問い合わせ、前記送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に前記上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って前記送受信バッファ内の送信用領域に書き込むホスト要求受信処理部と、
前記送受信バッファ内の受信用領域内に格納されている受信フレーム、受信パケット、又は、受信データを前記上位レイヤに送るためのホスト応答出力処理部と、
を更に具備する請求項１記載の半導体集積回路。
【請求項３】
前記プロトコル処理部が、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）階層モデルのトランスポート層、インターネット層、又は、ネットワークインタフェース層のプロトコル処理を行う、請求項２記載の半導体集積回路。
【請求項４】
ＡＲＰ（Address Resolution Protocol）メッセージ又はＴＣＰ制御セグメントを格納するための送信用バッファを更に具備する、請求項２又は３記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路に関する。
【背景技術】
【０００２】
現在、コンピュータ等の機器において、ホストＣＰＵ等で構成される上位レイヤとEthernet（登録商標）等のネットワークとの間の通信を行うための半導体集積回路が用いられている。
このような半導体集積回路においては、上位レイヤがネットワークへ送信するための送信データ又は送信パケット、並びにネットワークから受信した受信パケット又は受信データを格納するための送受信兼用の送受信バッファが用いられることがある。
【０００３】
このように、送受信兼用の送受信バッファを用いた場合、送信データ又は送信パケットが多くなり送信用の領域が多くなると、受信用の領域が不足し、受信が行えなくなってしまう可能性がある。
上記のような問題を解決するものとして、双方向の通信を行う端末装置に備えられ、双方向通信の際にデータを一時的に蓄えるべく、端末装置側からの発信パケットを蓄える送信用バッファと、外部からの着信パケットを蓄える受信用バッファとを含む通信バッファを制御するための方法であって、上記発信パケットを蓄える送信用バッファの最大値を制限することにより、上記受信用バッファにあてがうことができるバッファを確保することを特徴とする通信バッファの制御方法が知られている（例えば、特許文献１参照）。
【０００４】
しかしながら、特許文献１に掲載された通信バッファの制御方法は、通信バッファ全体のサイズが極めて小さい場合については考慮されておらず、通信バッファ全体のサイズが極めて小さい場合に通信バッファ全体の使用率が高くなった状況下においては、適切な動作が得られないことが考えられる。
【０００５】
【特許文献１】特開平１０−１７８４５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、上記の点に鑑み、本発明は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路であって、送受信バッファ全体のサイズが極めて小さい場合であっても受信を行うことが可能な半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明に係る半導体集積回路は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路であって、上位レイヤからネットワークへ送信するための送信データ、送信パケット、若しくは、送信フレーム、並びに、ネットワークから受信した受信フレーム、受信パケット、若しくは、受信データを格納するための送受信バッファを具備し、受信時において、送受信バッファ内に受信用領域を確保し、ネットワークから受信した受信フレーム、受信パケット、又は、受信データを送受信バッファ内の受信用領域内に書き込み、送受信バッファ内の受信用領域内に書き込まれた受信フレーム、受信パケット、又は、受信データを上位レイヤに送り、送信時において、送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に、送受信バッファ内に送信用領域を確保し、上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って送受信バッファ内の送信用領域に書き込み、送受信バッファ内の送信用領域内に書き込まれた送信データ、送信パケット、又は、送信フレームをネットワーク上に送信することを特徴とする。
【０００８】
この半導体集積回路において、送受信バッファに格納されている送信データ、送信パケット、若しくは、送信フレーム、並びに、受信フレーム、受信パケット、若しくは、受信データに所定のプロトコル処理を行うためのプロトコル処理部と、受信時において、送受信バッファ内に受信用領域を確保し、ネットワークから受信フレーム、受信パケット、又は、受信データを受信して送受信バッファに書き込み、送信時において、送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に送受信バッファ内に送信用領域を確保するためのネットワーク受信処理部と、送受信バッファに格納されている送信フレーム、送信パケット、又は、送信データをネットワーク上に送信するためのネットワーク送信処理部と、上位レイヤから送信要求を受けた場合に、送受信バッファ内の受信用領域の容量が所定の閾値以上であるか否かをネットワーク受信処理部に問い合わせ、送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って送受信バッファ内の送信用領域に書き込むホスト要求受信処理部と、送受信バッファ内の受信用領域内に格納されている受信フレーム、受信パケット、又は、受信データを上位レイヤに送るためのホスト応答出力処理部とを更に具備することとしても良い。
【０００９】
また、プロトコル処理部が、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）階層モデルのトランスポート層、インターネット層、又は、ネットワークインタフェース層のプロトコル処理を行うこととしても良い。
【００１０】
また、ＡＲＰ（Address Resolution Protocol）メッセージ又はＴＣＰ制御セグメントを格納するための送信用バッファを更に具備することとしても良い。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図１は、本発明の第１の実施形態としてのネットワークコントローラを用いたコンピュータの概要を示すブロック図である。このコンピュータ１は、ネットワークＮに接続された本発明の一実施形態としてのネットワークコントローラ２と、ＣＰＵ３と、メモリ４と、表示部５と、入力部６と、ＨＤＤ（ハードディスクドライブ）７と、インタフェース回路８とを具備する。
【００１２】
図５は、ＴＣＰ／ＩＰ階層モデルの各レイヤとＩＳＯ（International Organization for Standardization）で制定されたＯＳＩ（Open Systems Interconnection）参照モデルの各レイヤとのおおよその対応関係を示す図である。
本実施形態においては、ネットワークＮは、Ethernet（登録商標）であるものとし、ネットワークコントローラ２は、ＴＣＰ／ＩＰ階層モデルのネットワークインタフェース層、インターネット層、及び、トランスポート層を担うものとする。
また、ＣＰＵ３、メモリ４、表示部５、入力部６、ＨＤＤ７、及び、インタフェース回路８は、ＴＣＰ／ＩＰ階層モデルのアプリケーション層を担うものとする。例えば、ＨＤＤ７には、ウェブブラウザプログラム、メールクライアントプログラム等が記録されており、ＣＰＵ３は、メモリ４を作業領域として使用しながら、これらのプログラムを実行する。
【００１３】
図２は、ネットワークコントローラ２の内部構成を示す図である。図２に示すように、ネットワークコントローラ２は、送受信バッファ１１と、プロトコル処理部１２と、ネットワーク受信処理部１３と、ネットワーク送信処理部１４と、ホスト要求受信処理部１５と、ホスト応答出力処理部１６とを具備する。これらの送受信バッファ１１、プロトコル処理部１２、ネットワーク受信処理部１３、ネットワーク送信処理部１４、ホスト要求受信処理部１５、及び、ホスト応答出力処理部１６は、バスＢによって相互に接続されている。
【００１４】
送受信バッファ１１は、上位レイヤ（ＣＰＵ３等）からネットワークＮへ送信するための送信データ、送信パケット、若しくは、送信フレーム、並びに、ネットワークＮから受信した受信フレーム、受信パケット、若しくは、受信データを格納するための送受信兼用のバッファメモリである。
プロトコル処理部１２は、ＴＣＰ／ＩＰ階層モデルのネットワークインタフェース層、インターネット層、及び、トランスポート層のプロトコル処理を行う。本実施形態においては、具体的には、プロトコル処理部１２は、送受信バッファ１１に格納されている送信データをＴＣＰセグメント、ＩＰパケット、Ethernet（登録商標）フレームに順次変換し、送受信バッファ１１に書き込む。また、プロトコル処理部１２は、送受信バッファ１１に格納されているEthernet（登録商標）フレーム（ネットワークＮから受信したEthernet（登録商標）フレーム）を、ＩＰパケット、ＴＣＰセグメント、受信データに順次変換し、送受信バッファ１１に書き込む。なお、プロトコル処理部１２は、ＴＣＰレベルの再送制御、順序制御（複数のＴＣＰセグメントが順序通りに到着しなかった場合に、正しい順序に整列する）、誤り訂正等も行う。
【００１５】
ネットワーク受信処理部１３は、ネットワークＮからEthernet（登録商標）フレームを受信して送受信バッファ１１に書き込む。なお、ネットワーク受信処理部１３は、送受信バッファ１１の内の受信用に割り当てられてい領域の容量を管理する。
ネットワーク送信処理部１４は、プロトコル処理部１２によって生成され送受信バッファ１１に格納されているEthernet（登録商標）フレームをネットワークＮ上に送信する。
【００１６】
ホスト要求受信処理部１５は、ＣＰＵ３等からの送信要求（送信リクエスト）、送信データ等を受け取る。
ホスト応答出力処理部１６は、ネットワークＮから受信した受信データ等をＣＰＵ３等に出力する。
なお、ネットワークコントローラ２は、半導体集積回路として構成することとしても良い。
【００１７】
次に、ネットワークコントローラ２の動作について、詳細に説明する。
まず、受信時におけるネットワークコントローラ２の動作について説明する。受信時において、ネットワーク受信処理部１３は、送受信バッファ１１内に受信領域を適宜確保しながら、ネットワークＮからEthernet（登録商標）フレームを受信して、送受信バッファ１１内の受信領域に書き込む。送受信バッファ１１内に書き込まれたEthernet（登録商標）フレームは、プロトコル処理部１２によって、ＩＰパケット、ＴＣＰセグメント、受信データに順次変換され、ホスト応答出力処理部１６によって上位レイヤ（ＣＰＵ３等）に出力される。
【００１８】
次に、送信時におけるネットワークコントローラ２の動作について説明する。送信時において、まず、上位レイヤ（ＣＰＵ３等）は、送信リクエストをネットワークコントローラ２内のホスト要求受信処理部１５に送る。
ホスト要求受信処理部１５は、送信リクエストを受けると、ネットワーク受信処理部１３に、送受信バッファ１１の内の受信用に割り当てられている領域の容量を問い合わせる。
【００１９】
ネットワーク受信処理部１３は、ホスト要求受信処理部１５から問い合わせを受けると、送受信バッファ１１の内の受信用に割り当てられている領域の容量（現に受信用に使用されている領域の容量、今から受信するために予め確保されている領域の容量を含む）が所定の閾値以上であるか否かをチェックする。
そして、送受信バッファ１１の内の受信用に割り当てられている領域の容量が所定の閾値以上である場合には、ネットワーク受信処理部１３は、送受信バッファ１１内に送信用の領域を確保するとともに、送信が可能である旨をホスト応答出力処理部１６を介して上位レイヤに通知する。一方、送受信バッファ１１の内の受信用に割り当てられている容量が所定の閾値以上でない場合には、ネットワーク受信処理部１３は、送信が可能でない旨をホスト応答出力処理部１６を介して上位レイヤに通知する。
【００２０】
上位レイヤは、送信が可能である旨の通知をホスト応答出力処理部１６から受けると、送信データをホスト要求受信処理部１５に送り、ホスト要求受信処理部１５は、送信データを送受信バッファ１１内の送信用に確保された領域に書き込む。
送受信バッファ１１に送信データが書き込まれると、プロトコル処理部１２が、送受信バッファ１１に格納されている送信データをＴＣＰセグメント、ＩＰパケット、Ethernet（登録商標）フレームに順次変換し、ネットワーク送信処理部１４が、このEthernet（登録商標）フレームをネットワークＮ上に送信する。
【００２１】
このように、ネットワークコントローラ２によれば、受信時において、送受信バッファ１１内の領域を適宜確保しながら、ネットワークＮからEthernet（登録商標）フレームを受信することができる。また、ネットワークコントローラ２によれば、送信時において、送受信バッファ１１の内の受信用に割り当てられている領域の容量が所定の閾値以上である場合に、送受信バッファ１１内に送信用の領域を確保して送信処理を行い、送受信バッファ１１の内の受信用に割り当てられている領域の容量が所定の閾値以上でない場合には送信処理を行わない。これにより、送受信バッファ１１内の受信用の領域を優先して確保し、受信処理を優先して行うことができる。これは、送受信バッファ１１全体の容量が小さい場合に、特に有効である。
【００２２】
なお、所定の閾値を受信データの量等により動的に変更することとしても良い。
また、送受信バッファ１１の内の送信用に割り当てられている領域の容量については、特に制御する必要がなく、管理不要である。
【００２３】
次に、本発明の第２の実施形態について説明する。
図３は、本発明の第２の実施形態としてのネットワークコントローラ１０の内部構成を示す図である。図２に示すように、ネットワークコントローラ１０は、送受信バッファ１１と、プロトコル処理部１２と、ネットワーク受信処理部１３と、ネットワーク送信処理部１４と、ホスト要求受信処理部１５と、ホスト応答出力処理部１６と、ＡＲＰ用バッファ１７とを具備する。これらの送受信バッファ１１、プロトコル処理部１２、ネットワーク受信処理部１３、ネットワーク送信処理部１４、ホスト要求受信処理部１５、ホスト応答出力処理部１６、及び、送信専用バッファ１７は、バスＢによって相互に接続されている。
【００２４】
送信専用バッファ１７は、ＡＲＰ（Address Resolution Protocol）メッセージ等の送信専用のバッファメモリである。
なお、ネットワークコントローラ１０は、半導体集積回路として構成することとしても良い。
【００２５】
先に説明したネットワークコントローラ２においては、送受信データが送受信バッファ１１全体の容量に対して大量にある場合に、送信処理がロックされてしまうことが生じ得る。
例えば、あるリモートホストとの間で通信を行う場合に、送受信バッファ１１の容量限界（フリーエリアが約０となる）まで受信用及び送信用領域を確保した上で送信しようとすることが考えられる。この場合に、そのリモートホストのＭＡＣ（Media Access Control）アドレスが不明であると、ＡＲＰ（Address Resolution Protocol）メッセージをネットワーク上にブロードキャスト送信する必要がある。しかしながら、送受信バッファ１１の容量限界まで受信用及び送信用領域が確保されてしまっており、ＡＲＰメッセージ送信用の領域を送受信バッファ１１内に確保することができないので、ＡＲＰメッセージのブロードキャスト送信を行うことができず、送信処理がロックされてしまうこととなる。または、送信処理がキャンセルされてしまい、送受信バッファ１１内の既に確保済みの送信用領域を開放しなければならなくなる。
【００２６】
ネットワークコントローラ１０は、このような問題が生ずることを防止することを可能とするものである。すなわち、ネットワークコントローラ１０においては、送受信バッファ１１の容量限界まで受信用及び送信用領域を確保した上で送信しようとする場合に、リモートホストのＭＡＣ（Media Access Control）アドレスが不明であるとき、送信専用バッファ１７内にＡＲＰメッセージを作成し、ネットワークＮ上にブロードキャスト送信することができる。
図４は、ＡＲＰメッセージのフォーマットを示す図である。図４に示すように、ＡＲＰメッセージは、ハードウェア種別（２バイト）、上位プロトコル（２バイト）、ＨＬＥＮ（Hardware address LENgth：１バイト）、ＰＬＥＮ（Protocol address LENgth：１バイト）、動作（２バイト）、送信元ＭＡＣアドレス（６バイト）、送信元ＩＰアドレス（４バイト）、あて先ＭＡＣアドレス（６バイト）、あて先ＩＰアドレス（４バイト）の計２８バイトである。従って、送信専用バッファ１７の容量は、２８バイトあれば良い。
【００２７】
なお、ＡＲＰ要求が重複した場合には、待ち行列につないで、順次処理すれば良い。
また、送信専用バッファ１７は、ＡＲＰメッセージ送信用に限らず、ＴＣＰの制御セグメント（データを含まず、ＡＣＫ、ＳＹＮ、又は、ＦＩＮフラグとオプションのみを含むセグメント）の送信用として使用することとしても良い。
また、送受信バッファ１１と送信専用バッファ１７とを１個のＲＡＭで構成することとしても良い。
【産業上の利用可能性】
【００２８】
本発明は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路において利用可能である。この回路は、コンピュータ、ＰＤＡ、携帯電話装置等において利用可能である。
【図面の簡単な説明】
【００２９】
【図１】第１の実施形態に係るネットワークコントローラを用いた装置の図。
【図２】図１のネットワークコントローラ２の内部構成を示す図。
【図３】第２の実施形態に係るネットワークコントローラの構成を示す図。
【図４】ＡＲＰメッセージのフォーマットを示す図。
【図５】ＯＳＩ参照モデルとＴＣＰ／ＩＰ階層モデルとの対応関係を示す図。
【符号の説明】
【００３０】
１  コンピュータ、２  ネットワークコントローラ、３  ＣＰＵ、４  メモリ、５  表示部、６  入力部、７  ＨＤＤ、８  インタフェース回路、１１  送受信バッファ、１２  プロトコル処理部、１３  ネットワーク受信処理部、１４  ネットワーク送信処理部、１５  ホスト要求受信処理部、１６  ホスト応答出力処理部、１７  送信専用バッファ
【図１】
2006033010.tif 000003
【図２】
2006033010.tif 000004
【図３】
2006033010.tif 000005
【図４】
2006033010.tif 000006
【図５】
2006033010.tif 000007