(57)【要約】  【課題】  上位レイヤから複数の電文送信要求を受け取って複数のパケットを作成し、ネットワーク上に送信するための半導体集積回路を提供する。  【解決手段】  この半導体集積回路１は、複数の電文送信要求を格納するためのデータバッファ３と、データバッファ３に空き領域が存在する場合に、それ以前にＣＰＵ１０から受け取った電文送信要求に基づくパケットがリモートホストに到達したか否かにかかわらず、新たな電文送信要求をＣＰＵ１０から受け取ってデータバッファ３に書き込むためのホストインタフェース回路２と、データバッファ３に格納されている複数の電文送信要求に基づいて複数のパケットを作成するための制御回路４と、制御回路４によって作成された複数のパケットを格納するためのパケットバッファ５と、パケットバッファ５に格納されている複数のパケットをネットワークＮ上に送信するためのＬＡＮドライバ回路６とを具備する。【選択図】  図１
2006025218.tif 000002
【特許請求の範囲】
【請求項１】
上位レイヤから複数の電文送信要求を受け取って複数のパケットを作成し、ネットワーク上に送信するための半導体集積回路であって、
前記複数の電文送信要求を格納するためのデータバッファと、
前記上位レイヤにおいて新たな電文送信要求が生じ且つ前記データバッファに空き領域が存在する場合に、それ以前に前記上位レイヤから受け取った電文送信要求に基づく前記パケットがリモートホストに到達したか否かにかかわらず、前記新たな電文送信要求を前記上位レイヤから受け取って前記データバッファに書き込むためのホストインタフェース回路と、
前記データバッファに格納されている前記複数の電文送信要求に基づいて前記複数のパケットを作成するための制御回路と、
前記制御回路によって作成された前記複数のパケットを格納するためのパケットバッファと、
前記パケットバッファに格納されている前記複数のパケットを前記ネットワーク上に送信するためのドライバ回路と、
を具備する半導体集積回路。
【請求項２】
前記制御回路が、ＴＣＰ／ＩＰ階層モデルのトランスポート層に相当するＴＣＰ及び／又はインターネット層に相当するＩＰの処理を行うための回路であって、前記パケットの前記ネットワーク上へのＴＣＰレベルでの再送回数を計数し前記上位レイヤに通知する、請求項１記載の半導体集積回路。
【請求項３】
前記ドライバ回路が、ＴＣＰ／ＩＰ階層モデルのネットワークインタフェース層に相当する処理及び／又はインターネット層に相当するＩＰの処理を行うための回路であって、ネットワークインタフェース層レベルでの再送回数を計数し前記上位レイヤに通知する、請求項１又は２記載の半導体集積回路。
【請求項４】
いずれかの電文に対する応答としてのアクノリッジパケットを前記リモートホストから受信した場合に、当該電文の送信が完了したことを前記上位レイヤに通知する、請求項１〜３のいずれか１項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位レイヤから複数の電文送信要求を受け取って複数のパケットを作成し、ネットワーク上に送信するための半導体集積回路に関する。
【背景技術】
【０００２】
現在、インターネット、ＬＡＮ（Local Area Network）等において、ＴＣＰ／ＩＰと呼ばれる通信プロトコルの階層モデルが広く用いられている。図３は、ＴＣＰ／ＩＰ階層モデルの各レイヤとＩＳＯ（International Organization for Standardization）で制定されたＯＳＩ（Open Systems Interconnection）参照モデルの各レイヤとのおおよその対応関係を示す図である。
【０００３】
図３に示すアプリケーション層とトランスポート層との間のインタフェースとして、ソケットインタフェース（ソケット、ソケットＡＰＩ（Application Programming Interface）等と呼ばれることもある）が用いられている。
ソケットインタフェースにおいては、アプリケーション層のプログラム等が送信したい電文をソケットインタフェースに渡すと、ネットワーク上にデータが送信される前にソケットインタフェースからアプリケーション層のプログラム等に送信電文受理応答が返される。そのため、アプリケーション層のプログラム等においては、実際に送信が何時完了したのか（データがリモートホストに届いたのか）を把握することができず、また、データがトランスポート層又はネットワークインタフェース層によって再送されてリモートホストに届いたのか、再送されることなくリモートホストに届いたのかを把握することができなかった。
【０００４】
ところで、ネットワークやノード障害発生時において、オペレータの介入や、ユーザＡＰに対する通番合わせのための複雑なロジックを追加することなしに、ユーザＡＰ間での送受の認識のずれをなくすことができる電文送受信方式等が知られている（例えば、特許文献１参照）。
特許文献１には、ＴＣＰ／ＩＰプロトコルを利用するアプリケーション間での電文送受信方式において、アプリケーションとＴＣＰ／ＩＰプロトコル以下の処理層との間にあって、送信側アプリケーションから送信要求された電文が受信側アプリケーションに送達されたことを確認してから送信側アプリケーションに送信要求の次の処理に進むことを指示する電文送信完了を通知するとともに、ノード障害またはネットワーク障害により亡失した電文を再送するＬＡＮ通信ドライバを具備したことを特徴とする電文送受信方式等が掲載されている。
【０００５】
しかしながら、この電文送受信方式等においては、送信側アプリケーションから送信要求された電文が受信側アプリケーションに送達されたことを確認してから送信側アプリケーションに送信要求の次の処理に進むことを指示する電文送信完了を通知する。すなわち、送信側アプリケーションは、電文送信完了の通知を受けるまでは次の処理に進むことができないという問題があった。
【０００６】
【特許文献１】特開平９−１７１４９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、上記の点に鑑み、本発明は、上位レイヤが以前の電文送信要求に対する電文送信完了の通知を受ける前に次の処理に進むことを可能とする半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、本発明に係る半導体集積回路は、上位レイヤから複数の電文送信要求を受け取って複数のパケットを作成し、ネットワーク上に送信するための半導体集積回路であって、複数の電文送信要求を格納するためのデータバッファと、上位レイヤにおいて新たな電文送信要求が生じ且つデータバッファに空き領域が存在する場合に、それ以前に上位レイヤから受け取った電文送信要求に基づくパケットがリモートホストに到達したか否かにかかわらず、新たな電文送信要求を上位レイヤから受け取ってデータバッファに書き込むためのホストインタフェース回路と、データバッファに格納されている複数の電文送信要求に基づいて複数のパケットを作成するための制御回路と、制御回路によって作成された複数のパケットを格納するためのパケットバッファと、パケットバッファに格納されている複数のパケットをネットワーク上に送信するためのドライバ回路とを具備する。
【０００９】
この半導体集積回路において、制御回路が、ＴＣＰ／ＩＰ階層モデルのトランスポート層に相当するＴＣＰ及び／又はインターネット層に相当するＩＰの処理を行うための回路であって、パケットのネットワーク上へのＴＣＰレベルでの再送回数を計数し、上位レイヤに通知することとしても良い。
【００１０】
また、ドライバ回路が、ＴＣＰ／ＩＰ階層モデルのネットワークインタフェース層に相当する処理及び／又はインターネット層に相当するＩＰの処理を行うための回路であって、ネットワークインタフェース層レベルでの再送回数を計数し上位レイヤに通知することとしても良い。
【００１１】
さらに、いずれかの電文に対する応答としてのアクノリッジパケットをリモートホストから受信した場合に、当該電文の送信が完了したことを上位レイヤに通知することとしても良い。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図１は、本発明の一実施形態としての半導体集積回路を用いた装置の概要を示すブロック図である。この装置は、ネットワークＮに接続された本発明の一実施形態としての半導体集積回路１と、半導体集積回路１に接続されたＣＰＵ１０とを具備する。
ここでは、ネットワークＮは、Ethernet（登録商標）であるものとし、半導体集積回路１は、ＴＣＰ／ＩＰ階層モデルのインターネット層及びトランスポート層を担うものとし、ＣＰＵ１０は、ＴＣＰ／ＩＰ階層モデルのアプリケーション層を担うものとする。
【００１３】
図１に示すように、半導体集積回路１は、ホストインタフェース回路２と、データバッファ３と、制御回路４と、パケットバッファ５と、ＬＡＮドライバ回路６とを具備する。
ホストインタフェース回路２は、電文送信要求をＣＰＵ１０から受け取って、データバッファ３に書き込む。
【００１４】
制御回路４は、データバッファ３に格納されている電文送信要求に基づいてパケットを作成し、パケットバッファ５に書き込む。
ＬＡＮドライバ回路６は、パケットバッファ５に格納されているパケットをネットワークＮ上に送信する。
【００１５】
図２は、この装置の動作フローの一例を示す図である。以下、図２を参照しながら、半導体集積回路１の動作について詳細に説明する。
まず、ＣＰＵ１０が、複数個（ここでは、ｎ個とする）の電文送信要求を行う。半導体集積回路１内のホストインタフェース回路２は、データバッファ３に空き領域がある限り、ＣＰＵ１０からの電文送信要求を受け取って、データバッファ３に書き込む。なお、データバッファ３に空き領域がない場合、その旨をＣＰＵ１０に通知することとしても良い。また、この通知は、ステータスレジスタ等を用いてソフトウェア的に行うこととしても良いし、割り込み制御線等を用いてハードウェア的に行うこととしても良い。
【００１６】
半導体集積回路１内の制御回路４は、データバッファ３内に格納されている複数の電文送信要求に基づいて複数のパケットを作成し、パケットバッファ５に書き込む。
半導体集積回路１内のＬＡＮドライバ回路６は、パケットバッファ５に格納されている複数のパケットをネットワークＮ上に送信する。
【００１７】
なお、ＬＡＮドライバ回路６は、Ethernet（登録商標）レベルでの再送管理を行い、パケットの再送を行った回数を計数し、制御回路４、ホストインタフェース回路２を介してＣＰＵ１０に通知する。また、ＬＡＮドライバ回路６は、パケットを所定回数再送してもリモートホストに到達しなかった場合、パケットが到達しなかった旨及び再送回数をＣＰＵ１０に通知する。
また、制御回路４は、ＴＣＰレベルでの再送管理を行い、パケットの再送を行った回数を計数し、ホストインタフェース回路２を介してＣＰＵ１０に通知する。また、制御回路４は、パケットを所定回数再送してもリモートホストに到達しなかった場合、パケットが到達しなかった旨及び再送回数をＣＰＵ１０に通知する。
【００１８】
リモートホストは、電文を取得すると、ＡＣＫ（アクノリッジ）パケットを作成、送信する。ＡＣＫ（アクノリッジ）パケットは、ＬＡＮドライバ回路６〜パケットバッファ５〜制御回路４〜データバッファ３〜ホストインタフェース回路２を経由し、電文送信完了としてＣＰＵ１０に到達する。なお、電文送信完了とともに、上記したEthernet（登録商標）レベルでの再送回数、ＴＣＰレベルでの再送回数を通知することとしても良い。
【００１９】
このように、半導体集積回路１によれば、データバッファ３に空き領域がある限り、上位レイヤとしてのＣＰＵ１０から複数の電文送信要求を受け取ることができる。従って、ＣＰＵ１０は、以前の電文送信要求に対する電文送信完了を待つことなく、次の処理、すなわち新たな電文送信要求を行うことができる。
具体的には、図２において、ＣＰＵ１０は、電文送信要求１に対する電文送信完了１を待つことなく、電文送信要求２〜ｎを行うことができる。
【００２０】
なお、データバッファ３及びパケットバッファ５は、１個のＲＡＭで構成することとしても良い。
【産業上の利用可能性】
【００２１】
本発明は、上位レイヤから複数の電文送信要求を受け取って複数のパケットを作成し、ネットワーク上に送信するための半導体集積回路において利用可能である。これらの回路は、コンピュータ、ＰＤＡ、携帯電話装置等において利用可能である。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係る半導体集積回路を用いた装置の概要図。
【図２】図１に示す装置の動作フローの例を示す図。
【図３】ＯＳＩ参照モデルとＴＣＰ／ＩＰ階層モデルとの対応関係を示す図。
【符号の説明】
【００２３】
１  半導体集積回路、２  ホストインタフェース回路、３  データバッファ、４  制御回路、５  パケットバッファ、６  ＬＡＮドライバ回路、１０  ＣＰＵ、Ｎ  ネットワーク
【図１】
2006025218.tif 000003
【図２】
2006025218.tif 000004
【図３】
2006025218.tif 000005