(57)【要約】  【課題】  ＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムを計算することができるＴＣＰ／ＩＰ送信処理回路等を提供する。  【解決手段】  このＴＣＰ／ＩＰ送信処理回路５は、バッファメモリ２４と、ＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムの計算を行うためのチェックサム計算処理部２５と、上位レイヤにおいて作成されたフレームをＤＭＡ転送するためのＤＭＡ処理部２１と、フレームを受け取ってバッファメモリ２４に書き込み、チェックサム計算処理部２５にＩＰのヘッダ・チェックサムの計算を行わせ、その後、チェックサム計算処理部２５にＴＣＰ又はＵＤＰのチェックサムの計算を行わせ、バッファメモリ２４に格納されているフレーム内にＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムを挿入して下位レイヤに転送するためのチェックサム制御部２２とを具備する。【選択図】  図１
2006303765.tif 000002
【特許請求の範囲】
【請求項１】
ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の送信処理を行うための回路であって、
フレームを格納するためのバッファメモリと、
ＩＰ（Internet Protocol）のヘッダ・チェックサム並びにＴＣＰ（Transmission Control Protocol）又はＵＤＰ（User Datagram Protocol）のチェックサムの計算を行うためのチェックサム計算処理部と、
上位レイヤにおいて作成されたフレームをＤＭＡ（Direct Memory Access）転送するためのＤＭＡ処理部と、
上位レイヤにおいて作成されたフレームを前記ＤＭＡ処理部から受け取って前記バッファメモリに書き込み、前記ＤＭＡ処理部から受け取ったフレームに基づいて前記チェックサム計算処理部にＩＰのヘッダ・チェックサムの計算を行わせ、前記ＤＭＡ処理部から受け取ったフレームに基づいて前記チェックサム計算処理部にＴＣＰ又はＵＤＰのチェックサムの計算を行わせ、前記バッファメモリに格納されているフレーム内に前記チェックサム計算処理部によって計算されたＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムを挿入して下位レイヤに転送するためのチェックサム制御部と、
を具備する、ＴＣＰ／ＩＰ送信処理回路。
【請求項２】
上位レイヤにおいて作成されたフレームが、ＭＡＣ（Media Access Control）ヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータ、並びに、ＴＣＰ又はＵＤＰ擬似ヘッダを順に含んでおり、
前記ＤＭＡ処理部が、
上位レイヤにおいて作成されたフレーム内のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータ、ＴＣＰ又はＵＤＰ擬似ヘッダを順に前記チェックサム制御部に転送し、
前記チェックサム制御部が、
前記ＤＭＡ処理部から受け取ったＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータを前記バッファメモリに書き込み、前記ＤＭＡ処理部から受け取ったＩＰヘッダを前記チェックサム計算処理部に送ってＩＰのヘッダ・チェックサムの計算を行わせ、前記ＤＭＡ処理部から受け取ったＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータ、並びに、ＴＣＰ又はＵＤＰ擬似ヘッダを前記チェックサム計算処理部に送ってＴＣＰ又はＵＤＰのチェックサムの計算を行わせる、請求項１記載のＴＣＰ／ＩＰ送信処理回路。
【請求項３】
上位レイヤにおいて作成されたフレームが、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータを順に含んでおり、
前記ＤＭＡ処理部が、
上位レイヤにおいて作成されたフレーム内のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータを順に前記チェックサム制御部に転送し、その後、上位レイヤにおいて作成されたフレーム内のＩＰヘッダを前記チェックサム制御部に再び転送し、
前記チェックサム制御部が、
前記ＤＭＡ処理部から受け取ったＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータを前記バッファメモリに書き込み、前記ＤＭＡ処理部から受け取ったＩＰヘッダを前記チェックサム計算処理部に送ってＩＰのヘッダ・チェックサムの計算を行わせ、前記ＤＭＡ処理部から受け取ったＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータと、前記ＤＭＡ処理部から再び受け取ったＩＰヘッダに基づいて作成したＴＣＰ又はＵＤＰ擬似ヘッダに相当するデータとを前記チェックサム計算処理部に送ってＴＣＰ又はＵＤＰのチェックサムの計算を行わせる、請求項１記載のＴＣＰ／ＩＰ送信処理回路。
【請求項４】
請求項１〜３のいずれか１項記載のＴＣＰ／ＩＰ送信処理回路を具備する半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の送信処理を行うためのＴＣＰ／ＩＰ送信処理回路に関する。さらに、本発明は、そのようなＴＣＰ／ＩＰ送信処理回路を具備する半導体集積回路に関する。
【背景技術】
【０００２】
現在、インターネット、ＬＡＮ（Local Area Network）等において、ＴＣＰ／ＩＰと呼ばれる通信プロトコルの階層モデルが広く用いられている。図７は、ＴＣＰ／ＩＰ階層モデルの各レイヤとＩＳＯ（International Organization for Standardization）で制定されたＯＳＩ（Open Systems Interconnection）参照モデルの各レイヤとのおおよその対応関係を示す図である。
【０００３】
ＴＣＰ／ＩＰ階層モデルのネットワークインタフェース層としてはＥｔｈｅｒｎｅｔ（登録商標）が、ＴＣＰ／ＩＰ階層モデルのインターネット層としてはＩＰ（Internet Protocol）が、ＴＣＰ／ＩＰ階層モデルのトランスポート層としてはＴＣＰ（Transmission Control Protocol）又はＵＤＰ（User Datagram Protocol）が、広く用いられている。なお、Ｅｔｈｅｒｎｅｔ（登録商標）は、ＩＥＥＥ８０２．３等に、ＩＰは、ＲＦＣ（Request For Comments）７９１等に、ＴＣＰは、ＲＦＣ７９３等に、ＵＤＰは、ＲＦＣ７６８等に、それぞれ規定されている。
【０００４】
図８は、Ｅｔｈｅｒｎｅｔ（登録商標）フレーム（以下、単に「フレーム」という）のフォーマットを示す図である。図８に示すように、フレームは、ヘッダと、ペイロードとを有する。ペイロードには、ＩＰパケットが格納される。なお、フレームが実際にネットワーク上に送信される際には、先頭にプリアンブルが、末尾にフレームチェックシーケンス（Frame Check Sequence）が、それぞれ付加される。
【０００５】
図９は、ＩＰパケットのフォーマットを示す図である。図９に示すように、ＩＰパケットは、ＩＰヘッダと、ＩＰペイロードとを有する。ＩＰヘッダ内には、ヘッダ・チェックサムを格納するための領域が存在する。この領域に格納されるヘッダ・チェックサムは、ＩＰヘッダの１６ビット幅の１の補数和の１の補数（16-bit one's complement of the one's complement sum）である。ＩＰペイロードには、ＴＣＰパケット又はＵＤＰパケットが格納される。
【０００６】
図１０は、ＴＣＰパケットのフォーマットを示す図である。図１０に示すように、ＴＣＰパケットは、ＴＣＰ擬似（pseudo）ヘッダと、ＴＣＰヘッダと、ＴＣＰペイロードとを有する。ＴＣＰヘッダ内には、チェックサムを格納するための領域が存在する。この領域に格納されるチェックサムは、ＴＣＰ擬似ヘッダ、ＴＣＰヘッダ、及び、ＴＣＰペイロードの１６ビット幅の１の補数和の１の補数である。なお、ＴＣＰ擬似ヘッダは、送信時においてチェックサムの計算用にのみ使用されるものであり、実際にはネットワーク上には送信されない。
【０００７】
図１１は、ＵＤＰパケットのフォーマットを示す図である。図１１に示すように、ＵＤＰパケットは、ＵＤＰ擬似ヘッダと、ＵＤＰヘッダと、ＵＤＰペイロードとを有する。ＵＤＰヘッダ内には、チェックサムを格納するための領域が存在する。この領域に格納されるチェックサムは、ＵＤＰ擬似ヘッダ、ＵＤＰヘッダ、及び、ＵＤＰペイロードの１６ビット幅の１の補数和の１の補数である。なお、ＵＤＰ擬似ヘッダは、送信時においてチェックサムの計算用に使用されるものであり、実際にはネットワーク上には送信されない。
【０００８】
このように、ＴＣＰパケットを送信する場合には、ＩＰのヘッダ・チェックサム及びＴＣＰのチェックサムの２つのチェックサムの計算を行う必要がある。同様に、ＵＤＰパケットを送信する場合には、ＩＰのヘッダ・チェックサム及びＵＤＰのチェックサムの２つのチェックサムの計算を行う必要がある。これらのチェックサムの計算負荷は非常に重いものである。
【０００９】
関連する技術として、下記の特許文献１には、チェックサムを計算し挿入することでプロセッサのオーバヘッドを減少させたネットワークアダプタシステムが開示されている。このネットワークアダプタシステムは、ネットワークに接続され、プロセッサ、主記憶装置、及びネットワークアダプタを有する。このネットワークアダプタは、(a)DMAバス；(b)DMAバスに接続され、ネットワークパケットを貯蔵する手段；(c)DMAバスに接続され、主記憶装置とパケット貯蔵手段との間でネットワークパケットを転送する手段；(d)DMAバスに接続され、ネットワークパケットの転送中にネットワークパケットのチェックサムを計算する手段：チェックサム計算手段はDMAバス上の転送データを監視するためのスヌープ手段を有する。
【００１０】
特許文献１には、主記憶装置とパケット貯蔵手段との間でのネットワークパケットの転送中にネットワークパケットのチェックサムを計算することができると記載されているが、２つのチェックサムを計算することに関しては記載されていない。
【００１１】
【特許文献１】特開平６−７８０２４号公報（第１頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
そこで、上記の点に鑑み、本発明は、ＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムの計算を行うことができるＴＣＰ／ＩＰ送信処理回路を提供することを目的とする。また、本発明はそのようなＴＣＰ／ＩＰ送信処理回路を具備する半導体集積回路を提供することを更なる目的とする。
【課題を解決するための手段】
【００１３】
以上の課題を解決するため、本発明に係るＴＣＰ／ＩＰ送信処理回路は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の送信処理を行うための回路であって、フレームを格納するためのバッファメモリと、ＩＰ（Internet Protocol）のヘッダ・チェックサム並びにＴＣＰ（Transmission Control Protocol）又はＵＤＰ（User Datagram Protocol）のチェックサムの計算を行うためのチェックサム計算処理部と、上位レイヤにおいて作成されたフレームをＤＭＡ（Direct Memory Access）転送するためのＤＭＡ処理部と、上位レイヤにおいて作成されたフレームをＤＭＡ処理部から受け取ってバッファメモリに書き込み、ＤＭＡ処理部から受け取ったフレームに基づいてチェックサム計算処理部にＩＰのヘッダ・チェックサムの計算を行わせ、ＤＭＡ処理部から受け取ったフレームに基づいてチェックサム計算処理部にＴＣＰ又はＵＤＰのチェックサムの計算を行わせ、バッファメモリに格納されているフレーム内にチェックサム計算処理部によって計算されたＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムを挿入して下位レイヤに転送するためのチェックサム制御部とを具備する。
【００１４】
このＴＣＰ／ＩＰ送信処理回路において、上位レイヤにおいて作成されたフレームが、ＭＡＣ（Media Access Control）ヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータ、並びに、ＴＣＰ又はＵＤＰ擬似ヘッダを順に含んでおり、ＤＭＡ処理部が、上位レイヤにおいて作成されたフレーム内のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータ、ＴＣＰ又はＵＤＰ擬似ヘッダを順にチェックサム制御部に転送し、チェックサム制御部が、ＤＭＡ処理部から受け取ったＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータをバッファメモリに書き込み、ＤＭＡ処理部から受け取ったＩＰヘッダをチェックサム計算処理部に送ってＩＰのヘッダ・チェックサムの計算を行わせ、ＤＭＡ処理部から受け取ったＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータ、並びに、ＴＣＰ又はＵＤＰ擬似ヘッダをチェックサム計算処理部に送ってＴＣＰ又はＵＤＰのチェックサムの計算を行わせるようにしても良い。
【００１５】
また、上位レイヤにおいて作成されたフレームが、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータを順に含んでおり、ＤＭＡ処理部が、上位レイヤにおいて作成されたフレーム内のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、ＴＣＰ又はＵＤＰデータを順にチェックサム制御部に転送し、その後、上位レイヤにおいて作成されたフレーム内のＩＰヘッダをチェックサム制御部に再び転送し、チェックサム制御部が、ＤＭＡ処理部から受け取ったＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータをバッファメモリに書き込み、ＤＭＡ処理部から受け取ったＩＰヘッダをチェックサム計算処理部に送ってＩＰのヘッダ・チェックサムの計算を行わせ、ＤＭＡ処理部から受け取ったＴＣＰ又はＵＤＰヘッダ、並びに、ＴＣＰ又はＵＤＰデータと、ＤＭＡ処理部から再び受け取ったＩＰヘッダに基づいて作成したＴＣＰ又はＵＤＰ擬似ヘッダに相当するデータとをチェックサム計算処理部に送ってＴＣＰ又はＵＤＰのチェックサムの計算を行わせるようにしても良い。
【００１６】
また、本発明に係る半導体集積回路は、本発明に係るＴＣＰ／ＩＰ送信処理回路を具備する。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素については、同一の参照番号で示している。
図１は、本発明の一実施形態としてのＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）送信処理回路を用いたコンピュータの概要を示すブロック図である。このコンピュータ１は、ネットワークＮに接続された物理層処理回路（ＰＨＹ）２と、ＭＡＣ（Media Access Control）処理回路３と、ＭＡＣブリッジ回路４と、本発明の一実施形態としてのＴＣＰ／ＩＰ送信処理回路５と、ＴＣＰ／ＩＰ受信処理回路６と、インタフェース回路７と、ＣＰＵ８と、メインメモリ９と、ＨＤＤ（ハードディスクドライブ）１０と、入力部１１と、表示部１２とを具備する。
【００１８】
本実施形態においては、ＴＣＰ／ＩＰ階層モデルのネットワークインタフェース層がＥｔｈｅｒｎｅｔ（登録商標）であるものとし、物理層処理回路２、ＭＡＣ処理回路３、及び、ＭＡＣブリッジ回路４が、ネットワークインタフェース層を担うものとする。物理層処理回路２は、ネットワークＮに接続されており、ＭＡＣ処理回路３は、物理層処理回路２に接続されており、ＭＡＣブリッジ回路４は、ＭＡＣ処理回路３に接続されている。
【００１９】
また、本実施形態においては、ＴＣＰ／ＩＰ階層モデルのインターネット層及びトランスポート層がＩＰ（Internet Protocol）並びにＴＣＰ（Transmission Control Protocol）又はＵＤＰ（User Datagram Protocol）であるものとし、ＴＣＰ／ＩＰ送信処理回路５、ＴＣＰ／ＩＰ受信処理回路６、及び、インタフェース回路７が、インターネット層及びトランスポート層を担うものとする。ＴＣＰ／ＩＰ送信処理回路５及びＴＣＰ／ＩＰ受信処理回路６は、ＭＡＣブリッジ回路４とインタフェース回路７との間にそれぞれ接続されている。
【００２０】
また、ＣＰＵ８、メインメモリ９、ＨＤＤ１０、入力部１１、及び、表示部１２が、ＴＣＰ／ＩＰ階層モデルのアプリケーション層を担うものとする。例えば、ＨＤＤ１０には、ウェブブラウザプログラム、メールクライアントプログラム等が記録されており、ＣＰＵ８は、メインメモリ９を作業領域として使用しながら、これらのプログラムを実行する。ＣＰＵ８、メインメモリ９、ＨＤＤ１０、入力部１１、及び、表示部１２は、バスＢを介して接続されており、バスＢは、インタフェース回路７に接続されている。
【００２１】
ＴＣＰ／ＩＰ送信処理回路５は、ＤＭＡ（Direct Memory Access）処理部２１と、チェックサム制御部２２と、バッファメモリ２４と、チェックサム計算処理部２５とを具備する。チェックサム制御部２２は、ＩＰチェックサムレジスタ２３を有する。
【００２２】
次に、ＴＣＰ／ＩＰ送信処理回路５の動作について説明する。
図２は、ＴＣＰ／ＩＰ送信処理回路５の第１の動作を示すフローチャートである。ＴＣＰ／ＩＰ送信処理回路５の第１の動作は、アプリケーション層からトランスポート層及びインターネット層を利用するためのＡＰＩ（Application Programming Interface）において図３に示すフォーマットのフレームがメインメモリ９（図１参照）内に作成される場合における動作である。
【００２３】
図３に示すフレームは、ＭＡＣヘッダ（図３中のア参照）、ＩＰヘッダ（図３中のイ参照）、ＴＣＰヘッダ（図３中のウ参照）、データ（図３中のエ参照）、及び、ＴＣＰ擬似ヘッダ（図３中のオ参照）を含んでいる。なお、ここでは、ＴＣＰを用いることとしているが、ＵＤＰを用いる場合も同様にすれば良い。ＵＤＰを用いる場合には、フレームが、ＴＣＰヘッダ（図３中のウ参照）に代えてＵＤＰヘッダを、ＴＣＰ擬似ヘッダ（図３中のオ参照）に代えてＵＤＰ擬似ヘッダを含むようにすれば良い。
【００２４】
上位レイヤとしてのアプリケーション層において図３に示すフレームがメインメモリ９内に作成されると、ＴＣＰ／ＩＰ送信処理部５内のＤＭＡ処理部２１は、メインメモリ９からチェックサム制御部２２へフレームのＤＭＡ転送を行う（ステップＳ１１）。なお、ＤＭＡ処理部２１は、図３のフレーム中の上方から下方に向かって、すなわち、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、データ、ＴＣＰ擬似ヘッダの順（図３中のア→イ→ウ→エ→オの順）にＤＭＡ転送を行う。
【００２５】
チェックサム制御部２２は、ＤＭＡ処理部２１からＭＡＣヘッダを受け取ると、受け取ったＭＡＣヘッダをバッファメモリ２４に書き込む（ステップＳ２１）。
【００２６】
次に、チェックサム制御部２２は、ＤＭＡ処理部２１からＩＰヘッダを受け取ると、受け取ったＩＰヘッダをバッファメモリ２４に書き込むとともに、チェックサム計算処理部２５に送る（ステップＳ２２）。チェックサム計算処理部２５は、ＩＰヘッダをチェックサム制御部２２から受け取ってＩＰのヘッダ・チェックサムの計算を行い、計算の結果として得られたＩＰのヘッダ・チェックサムをチェックサム制御部２２に送る（ステップＳ３１）。チェックサム制御部２２は、ＩＰのヘッダ・チェックサムをチェックサム計算処理部２５から受け取ると、ＩＰチェックサムレジスタ２３内に格納する（ステップＳ２３）。
【００２７】
さらに、チェックサム制御部２２は、ＤＭＡ処理部２１からＴＣＰヘッダ及びデータを受け取ると、受け取ったＴＣＰヘッダ及びデータをバッファメモリ２４に書き込むとともに、チェックサム計算処理部２５に送る（ステップＳ２３）。チェックサム計算処理部２５は、ＴＣＰヘッダ及びデータをチェックサム制御部２２から受け取ってＴＣＰのチェックサムの計算を開始する（ステップＳ３２）。
【００２８】
そして、チェックサム制御部２２は、ＤＭＡ処理部２１からＴＣＰ擬似ヘッダを受け取ると、受け取ったＴＣＰ擬似ヘッダをチェックサム計算処理部２５に送る（ステップＳ２５）。なお、先に説明したように、ＴＣＰ擬似ヘッダが実際にはネットワーク上に送信されないものであるため、チェックサム制御部２２は、ＴＣＰ擬似ヘッダのバッファメモリ２４への書き込みを行わない。従って、バッファメモリ２４には、図３中のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、及び、データ（図３中のア〜エ）が格納されることとなる。
【００２９】
その後、チェックサム制御部２２は、バッファメモリ２４内に格納されているフレーム（ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、及び、データを含む）の下位レイヤ（ここでは、図１中のＭＡＣブリッジ回路４）への転送を開始する（ステップＳ２６）。なお、チェックサム制御部２２は、バッファメモリ２４内のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、データの順（図３中のア→イ→ウ→エの順）にＭＡＣブリッジ回路４に転送する。
【００３０】
ＭＡＣブリッジ回路４への転送において、チェックサム制御部２２は、バッファメモリ２４内のＩＰヘッダのヘッダ・チェックサム格納フィールドを読み出したときに、ＩＰチェックサムレジスタ２３内に格納されているＩＰのヘッダ・チェックサムをこのフィールドに挿入して、ＭＡＣブリッジ回路４に送る。
【００３１】
一方、チェックサム計算処理部２５は、ＴＣＰ擬似ヘッダをチェックサム制御部２２から受け取ってＴＣＰのチェックサムの計算を終了し、計算の結果として得られたＴＣＰのチェックサムをチェックサム制御部２２に送る（ステップＳ３２）。
【００３２】
チェックサム制御部２２は、バッファメモリ２４内のＴＣＰヘッダのチェックサム格納フィールドを読み出したときに、チェックサム計算処理部２５からＴＣＰのチェックサムを受け取ってこのフィールドに挿入し、ＭＡＣブリッジ回路４に送る。その後、チェックサム制御部２２は、バッファメモリ２４内のデータをＭＡＣブリッジ回路４に送って、処理を終了する。
【００３３】
ＭＡＣブリッジ回路４は、チェックサム制御部２２から受け取ったフレームをＭＡＣ処理回路３に送り、ＭＡＣ処理回路３は、ＭＡＣブリッジ回路４から受け取ったフレームの末尾にフレームチェックシーケンス（Frame Check Sequence）を付加して物理層処理回路２に送り、物理層処理回路２は、受け取ったフレームをネットワークＮ上に送信する。
【００３４】
以上説明したように、ＴＣＰ／ＩＰ送信処理回路５によれば、１個のチェックサム計算処理部２５を用いて、ＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムの２つのチェックサムの計算を行うことが可能となる。これにより、小さい回路規模でＴＣＰ／ＩＰの送信処理の速度を向上させることができる。
【００３５】
なお、図４に示すように、一般に、ＴＣＰ擬似ヘッダ、ＵＤＰ擬似ヘッダは、ＴＣＰヘッダ、ＵＤＰヘッダの前に配置されることとなっている（ＲＦＣ７９３、７６８等）。これに従い、上位レイヤがメインメモリ９内に作成するフレームが図４に示すフォーマットであるとすると、チェックサム制御部２２は、ＭＡＣヘッダ及びＩＰヘッダ（図４中のア及びイ）のバッファメモリ２４への書き込み後、ＴＣＰ擬似ヘッダ（図４中のウ）のバッファメモリ２４への書き込みを行わず、その後、ＴＣＰヘッダ及びデータ（図４中のエ及びオ）のバッファメモリ２４への書き込みを行う必要がある。すなわち、バッファメモリ２４への書き込みの制御が複雑になってしまう。
【００３６】
一方、本実施形態においては、図３に示すように、上位レイヤがメインメモリ９内に作成するフレームにおいて、ＴＣＰ擬似ヘッダ（図３中のオ参照）がフレームの末尾に配置されている。そのため、チェックサム制御部２２は、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、及び、データ（図３中のア〜エ）のバッファメモリ２４への連続書き込み（バースト書き込み）を行うことができる。このように、書き込みの制御が容易になるとともに、書き込み速度を向上させることができる。
【００３７】
なお、ここでは、ＴＣＰを用いる場合におけるＴＣＰ／ＩＰ送信処理回路５の動作について説明したが、ＵＤＰを用いる場合におけるＴＣＰ／ＩＰ送信処理回路５の動作も同様である。
また、本実施形態においては、ネットワークインタフェース層としてＥｔｈｅｒｎｅｔ（登録商標）を用いることとしているが、他のものを用いるようにしても良い。また、アプリケーション層として、ＨＴＴＰ等、種々のものを用いることが可能である。
【００３８】
次に、ＴＣＰ／ＩＰ送信処理回路５の第２の動作について説明する。
図５は、ＴＣＰ／ＩＰ送信処理回路５の第２の動作を示すフローチャートである。ＴＣＰ／ＩＰ送信処理回路５の第２の動作は、アプリケーション層からトランスポート層及びインターネット層を利用するためのＡＰＩ（Application Programming Interface）において図６に示すフォーマットのフレームがメインメモリ９（図１参照）内に作成される場合における動作である。
【００３９】
図６に示すフレームは、ＭＡＣヘッダ（図６中のア参照）、ＩＰヘッダ（図６中のイ参照）、ＴＣＰヘッダ（図６中のウ参照）、及び、データ（図６中のエ参照）を含んでいる。なお、ここでは、ＴＣＰを用いることとしているが、ＵＤＰを用いる場合も同様にすれば良い。ＵＤＰを用いる場合には、フレームが、ＴＣＰヘッダ（図６中のウ参照）に代えてＵＤＰヘッダを含むようにすれば良い。
【００４０】
上位レイヤとしてのアプリケーション層において図６に示すフレームがメインメモリ９内に作成されると、ＴＣＰ／ＩＰ送信処理部５内のＤＭＡ処理部２１は、メインメモリ９からチェックサム制御部２２へフレームのＤＭＡ転送を行う（ステップＳ４１）。なお、ＤＭＡ処理部２１は、図６のフレーム中の上方から下方に向かって、すなわち、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、データの順（図６中のア→イ→ウ→エの順）にＤＭＡ転送を行う。
【００４１】
チェックサム制御部２２は、ＤＭＡ処理部２１からＭＡＣヘッダを受け取ると、受け取ったＭＡＣヘッダをバッファメモリ２４に書き込む（ステップＳ５１）。
【００４２】
次に、チェックサム制御部２２は、ＤＭＡ処理部２１からＩＰヘッダを受け取ると、受け取ったＩＰヘッダをバッファメモリ２４に書き込むとともに、チェックサム計算処理部２５に送る（ステップＳ５２）。チェックサム計算処理部２５は、ＩＰヘッダをチェックサム制御部２２から受け取ってＩＰのヘッダ・チェックサムの計算を行い、計算の結果として得られたＩＰのヘッダ・チェックサムをチェックサム制御部２２に送る（ステップＳ６１）。チェックサム制御部２２は、ＩＰのヘッダ・チェックサムをチェックサム計算処理部２５から受け取ると、ＩＰチェックサムレジスタ２３内に格納する（ステップＳ５３）。
【００４３】
さらに、チェックサム制御部２２は、ＤＭＡ処理部２１からＴＣＰヘッダ及びデータを受け取ると、受け取ったＴＣＰヘッダ及びデータをバッファメモリ２４に書き込むとともに、チェックサム計算処理部２５に送る（ステップＳ５３）。チェックサム計算処理部２５は、ＴＣＰヘッダ及びデータをチェックサム制御部２２から受け取ってＴＣＰのチェックサムの計算を開始する（ステップＳ６２）。なお、バッファメモリ２４には、図６中のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、及び、データ（図６中のア〜エ）が格納されることとなる。
【００４４】
その後、ＤＭＡ処理部２１は、メインメモリ９内のＩＰヘッダをチェックサム制御部２２に再度ＤＭＡ転送する（ステップＳ４２）。チェックサム制御部２２は、ＩＰヘッダを再度受け取ると、受け取ったＩＰヘッダを用いてＴＣＰ擬似ヘッダに相当するデータを作成し、チェックサム計算処理部２５に送る（ステップＳ５５）。図１０に示すように、ＴＣＰ擬似ヘッダは、送信元ＩＰアドレス、あて先ＩＰアドレス、プロトコル番号（ＴＣＰのプロトコル番号は「６」）、及び、パケット長（ＴＣＰヘッダ長とＴＣＰペイロード長の和）の４つの情報を含んでいる。これらの情報のうち、送信元ＩＰアドレス、あて先ＩＰアドレス、及び、プロトコル番号は、ＩＰヘッダに含まれている（図９参照）。また、パケット長は、ＩＰヘッダ内のデータグラム長からＩＰヘッダ内のヘッダ長を減じることにより、求めることができる。
【００４５】
なお、ＴＣＰ擬似ヘッダと同様に、ＵＤＰ擬似ヘッダも、送信元ＩＰアドレス、あて先ＩＰアドレス、プロトコル番号（ＵＤＰのプロトコル番号は「１７」）、及び、パケット長（ＵＤＰヘッダ長とＵＤＰペイロード長の和）の４つの情報を含んでいる。これらの情報のうち、送信元ＩＰアドレス、あて先ＩＰアドレス、及び、プロトコル番号は、ＩＰヘッダに含まれており、パケット長は、ＩＰヘッダ内のデータグラム長からＩＰヘッダ内のヘッダ長を減じることにより、求めることができる。
【００４６】
再び図５を参照すると、チェックサム制御部２２は、バッファメモリ２４内に格納されているフレーム（ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、及び、データを含む）の下位レイヤ（ＭＡＣブリッジ回路４）への転送を開始する（ステップＳ５６）。なお、チェックサム制御部２２は、バッファメモリ２４内のＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、データの順（図６中のア→イ→ウ→エの順）にＭＡＣブリッジ回路４に転送する。
【００４７】
ＭＡＣブリッジ回路４への転送において、チェックサム制御部２２は、バッファメモリ２４内のＩＰヘッダのヘッダ・チェックサム格納フィールドを読み出したときに、ＩＰチェックサムレジスタ２３内に格納されているＩＰのヘッダ・チェックサムをこのフィールドに挿入して、ＭＡＣブリッジ回路４に送る。
【００４８】
一方、チェックサム計算処理部２５は、ＴＣＰ擬似ヘッダに相当するデータをチェックサム制御部２２から受け取ってＴＣＰのチェックサムの計算を終了し、計算の結果として得られたＴＣＰのチェックサムをチェックサム制御部２２に送る（ステップＳ６２）。
【００４９】
チェックサム制御部２２は、バッファメモリ２４内のＴＣＰヘッダのチェックサム格納フィールドを読み出したときに、チェックサム計算処理部２５からＴＣＰのチェックサムを受け取ってこのフィールドに挿入し、ＭＡＣブリッジ回路４に送る。その後、チェックサム制御部２２は、バッファメモリ２４内のデータをＭＡＣブリッジ回路４に送って、処理を終了する。
【００５０】
以上説明したように、ＴＣＰ／ＩＰ送信処理回路５によれば、１個のチェックサム計算処理部２５を用いて、ＩＰのヘッダ・チェックサム並びにＴＣＰ又はＵＤＰのチェックサムの２つのチェックサムの計算を行うことが可能となる。
【００５１】
また、図６に示すように、上位レイヤがメインメモリ９内に作成するフレームにおいて、ＴＣＰ擬似ヘッダを省略することが可能となる。
【００５２】
なお、ここでは、ＴＣＰを用いる場合におけるＴＣＰ／ＩＰ送信処理回路５の動作について説明したが、ＵＤＰを用いる場合におけるＴＣＰ／ＩＰ送信処理回路５の動作も同様である。
【産業上の利用可能性】
【００５３】
本発明は、ＴＣＰ／ＩＰ送信処理回路において利用可能である。このＴＣＰ／ＩＰ送信処理回路は、パーソナルコンピュータ、携帯電話装置、ＰＤＡ、家庭電気製品（テレビジョン装置、冷蔵庫等）等に利用可能である。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施形態に係るＴＣＰ／ＩＰ送信処理回路を用いたシステムの図。
【図２】図１のＴＣＰ／ＩＰ送信処理回路５の動作を示すフローチャート。
【図３】図１のメインメモリ９に作成されるフレームのフォーマットを示す図。
【図４】一般のフレームのフォーマットを示す図。
【図５】図１のＴＣＰ／ＩＰ送信処理回路５の動作を示すフローチャート。
【図６】図１のメインメモリ９に作成されるフレームのフォーマットを示す図。
【図７】ＯＳＩ参照モデルとＴＣＰ／ＩＰ階層モデルとの対応関係を示す図。
【図８】フレームのフォーマットを示す図。
【図９】ＩＰパケットのフォーマットを示す図。
【図１０】ＴＣＰパケットのフォーマットを示す図。
【図１１】ＵＤＰパケットのフォーマットを示す図。
【符号の説明】
【００５５】
１  コンピュータ、  ２  物理層処理回路、  ３  ＭＡＣ処理回路、  ４  ＭＡＣブリッジ回路、  ５  ＴＣＰ／ＩＰ送信処理回路、  ６  ＴＣＰ／ＩＰ受信処理回路、  ７  インタフェース回路、  ８  ＣＰＵ、  ９  メインメモリ、  １０  ＨＤＤ、  １１  入力部、  １２  表示部、  ２１  ＤＭＡ処理部、  ２２  チェックサム制御部、  ２３  ＩＰチェックサムレジスタ、  ２４  バッファメモリ、  ２５  チェックサム計算処理部
【図１】
2006303765.tif 000003
【図２】
2006303765.tif 000004
【図３】
2006303765.tif 000005
【図４】
2006303765.tif 000006
【図５】
2006303765.tif 000007
【図６】
2006303765.tif 000008
【図７】
2006303765.tif 000009
【図８】
2006303765.tif 000010
【図９】
2006303765.tif 000011
【図１０】
2006303765.tif 000012
【図１１】
2006303765.tif 000013