(57)【要約】【課題】所定の通信プロトコルに従い送信データを生成する際の処理時間の短縮化やシステムの効率の向上。【解決手段】集積回路装置１０は、上位層から受けとったデータを保持するためのデータ保持バッファ４０と、自層で付加されるプロトコル情報を保持するためのプロトコル情報保持バッファ５０，６０と、上位層から渡されたデータを、自層で付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行うＤＭＡ転送処理部３０と、上位層から渡されたデータに付加すべきプロトコル情報を自層のプロトコルに従って生成し、生成したプロトコル情報をプロトコル情報保持バッファに格納する処理を行うプロトコル情報生成部１１０と、データ保持バッファに格納されたデータと、前記データに対応してプロトコル情報保持バッファに保持されたプロトコル情報に基づき、下位層に渡すデータを生成するプロトコル情報付きデータ生成部７０とを含む。【選択図】      図１
2006050502.tif 000002
【特許請求の範囲】
【請求項１】
階層化された所定の通信プロトコルに従い送信データを生成する際に、上位層から受け取ったデータに自層のプロトコルに従って自層で必要なプロトコル情報を付加して下位層に渡す処理を行う集積回路装置であって、
上位層から受けとったデータを保持するためのデータ保持バッファと、
自層で付加されるプロトコル情報を保持するためのプロトコル情報保持バッファと、
上位層から渡されたデータを、自層で付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行うＤＭＡ転送処理部と、
上位層から渡されたデータに付加すべきプロトコル情報を自層のプロトコルに従って生成し、生成したプロトコル情報をプロトコル情報保持バッファに格納する処理を行うプロトコル情報生成部と、
データ保持バッファに格納されたデータと、前記データに対応してプロトコル情報保持バッファに保持されたプロトコル情報に基づき、下位層に渡すデータを生成するプロトコル情報付きデータ生成部と、
を含むことを特徴とする集積回路装置。
【請求項２】
請求項１において、
前記ＤＭＡ転送処理部は、
上位層から受け取ったデータを所定長ずつのデータに分割し、分割データを、自層で分割データに付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報生成部は、
前記分割データに付加すべきプロトコル情報を自層のプロトコルに従って生成し、生成したプロトコル情報をプロトコル情報保持バッファに格納する処理を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納された分割データと、前記分割データに対応してプロトコル情報保持バッファに保持されたプロトコル情報に基づき、下位層に渡すデータを生成することを特徴とする集積回路装置。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記プロトコル情報は上位層から受け取ったデータに付加するヘッダ情報であり、
前記プロトコル情報保持バッファとしてヘッダ情報保持バッファを含み、
前記プロトコル情報生成部は、
上位層から渡されたデータに付加すべきヘッダ情報を自層のプロトコルに従って生成し、生成したヘッダ情報をヘッダ情報保持バッファに格納する処理を行い、
前記ＤＭＡ転送処理部は、
上位層から渡されたデータを、自層で付加されるヘッダ制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータと、前記データに対応してヘッダ情報保持バッファに保持されたヘッダ情報に基づき、下位層に渡すデータを生成することを特徴とする集積回路装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記プロトコル情報は上位層から受け取ったデータに付加するトレーラ情報であり、
前記プロトコル情報保持バッファとしてトレーラ情報保持バッファを含み、
前記プロトコル情報生成部は、
上位層から渡されたデータに付加すべきトレーラ情報を自層のプロトコルに従って生成し、生成したトレーラ情報をトレーラ情報保持バッファに格納する処理を行い、
前記ＤＭＡ転送処理部は、
上位層から渡されたデータを、自層で付加されるトレーラ制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータと、前記データに対応してトレーラ情報保持バッファに保持されたトレーラ情報に基づき、下位層に渡すデータを生成することを特徴とする集積回路装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータに対応したプロトコル情報が、プロトコル情報保持バッファに格納されると、前記データとプロトコル情報に基づき下位層に引き渡すデータを生成し、生成されたデータを下位層に対し引き渡し可能な状態におくことを特徴とする集積回路装置。
【請求項６】
請求項１乃至５のいずれかの集積回路装置を含む通信制御装置。
【請求項７】
請求項１乃至６のいずれかの集積回路装置を含むマイクロコンピュータ。
【請求項８】
請求項７に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置、通信制御装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【０００２】
例えばＴＣＰ／ＩＰ等の所定のプロトコルを使用してデータの送信を行う場合、アプリケーション層で生成された送信データは、物理層にいたる各階層のプロトコルで、上位層から渡されたデータ自体は変更せず、各階層で必要な情報を付加したものを新たなデータとして下位階層に渡す処理が行われ、最終的に物理層で電気信号に置き換えられて通信相手に対して送信する。
【０００３】
ここでアプリケーション層からのデータは、トランスポート層で通信に適したサイズ(物理層に合わせたサイズ、分割したものをセグメントと呼ぶ)に分割され、この分割されたデータが処理単位となって各階層の処理がなされる。物理層が異なる相手との通信の場合、ブリッジとなる部分において、対する物理層に適したサイズへの変更がなされる(フラグメント化)。
【特許文献１】特開平１１−２１５２０４号
【特許文献２】特開２０００−１１２８４９号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
各階層では、上位から受け渡されるデータはブラックボックスであり、上位階層からは連続してメモリ上に展開した状態で渡される。しかし、受け渡されたデータに自階層の処理を行う為には(下位階層に渡すデータとする為には)、各データの前後に空領域が必要である。
【０００５】
この為に、従来は一旦作業領域にデータを転送して自階層の処理を行い、別な領域に終了したデータを格納するという処理を行っている。
【０００６】
しかしこのようにするとデータサイズが大きい場合に別な領域に転送する処理がおおきくなり処理時間の増大やシステムの効率を悪化させるという問題があった。
【０００７】
本発明は以上のような問題点に鑑みてなされたものであり、その目的とするところは、所定の通信プロトコルに従い送信データを生成する際の処理時間の短縮かやシステムの効率を向上が可能な集積回路装置、通信制御装置、マイクロコンピュータ及び電子機器の提供を目的とする。
【課題を解決するための手段】
【０００８】
（１）本発明は、
階層化された所定の通信プロトコルに従い送信データを生成する際に、上位層から受け取ったデータに自層のプロトコルに従って自層で必要なプロトコル情報を付加して下位層に渡す処理を行う集積回路装置であって、
上位層から受けとったデータを保持するためのデータ保持バッファと、
自層で付加されるプロトコル情報を保持するためのプロトコル情報保持バッファと、
上位層から渡されたデータを、自層で付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行うＤＭＡ転送処理部と、
上位層から渡されたデータに付加すべきプロトコル情報を自層のプロトコルに従って生成し、生成したプロトコル情報をプロトコル情報保持バッファに格納する処理を行うプロトコル情報生成部と、
データ保持バッファに格納されたデータと、前記データに対応してプロトコル情報保持バッファに保持されたプロトコル情報に基づき、下位層に渡すデータを生成するプロトコル情報付きデータ生成部と、
を含むことを特徴とする。
【０００９】
例えば階層化された所定の通信プロトコルに従い送信データを生成する際に、上位層（である第ｎ層）から受け取ったデータに自層（第ｎ−１層）のプロトコルに従って自層（第ｎ−１層）で必要なプロトコル情報（ヘッダ）を付加して下位層（である第ｎ−２層）に渡す処理を行う集積回路装置（通信処理装置）であって、
上位層（第ｎ層）から受けとったデータを保持するためのデータ保持バッファと、
自層（第ｎ−１層）で付加されるプロトコル情報を保持するためのプロトコル情報保持バッファと、
上位層（第ｎ層）から渡されたデータを、自層（第ｎ−１層）で付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行うＤＭＡ転送処理部と、
上位層（第ｎ層）から渡されたデータ（ペイロード）に付加すべきプロトコル情報（ヘッダ）を自層（第ｎ−１層）のプロトコルに従って生成し、生成したプロトコル情報をプロトコル情報保持バッファに格納する処理を行うプロトコル情報（ヘッダ）生成部と、
データ保持バッファに格納されたデータと、前記データに対応してプロトコル情報保持バッファに保持されたプロトコル情報（ヘッダ）に基づき、下位層（第ｎ−２層）に渡すデータを生成するプロトコル情報付きデータ生成部と、
を含むことを特徴とする。
【００１０】
ここにおいてプロトコル情報とは、送受信端末間で定められた任意のプロトコル手順に従い、生成・付加されるものであり、その内容は、プロトコルの機能により様々であり、ヘッダ情報やトレーラ情報を含む。例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）ヘッダには、一つ、または複数の伝送回線を介して、中継を行い、二つの端末間でのパケット伝送を実現する為に、伝送回線の種類にかかわらず送信端末、および、受信端末を識別する為のＩＰアドレスなどが保持される。また、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ）ヘッダには、二つの端末間で端末データを誤りなく伝送する為に、各分割データ間相互の位置関係を示すシーケンス・ナンバや、パケット伝送中に発生するデータ誤りを検出する為のチェック・サムなどが保持される。
【００１１】
ここで上位層から渡されたデータは、上位層が生成したプロトコル情報も含むペイロードと呼ばれるデータである。
【００１２】
また自層や上位層や下位層は任意に決定することができる。例えば複数の階層各階層を自層として処理する場合のある１つの層について適用される構成でもよいし、複数の層それぞれに適用される構成でもよい。
【００１３】
本発明によれば上位層から受け取ったデータのDMA転送中に、ヘッダやトレーラ等のプロトコル情報を作成するために、下位層に引き渡すデータ作成の効率化や処理速度の向上を図ることができる。
【００１４】
また本発明では下位層への実際の送信動作は、ヘッダ等のプロトコル情報生成後にハードウエアが自動的に行うことでデータ数の違いによるデータ転送タイミングをソフトウエアで制御する必要がなくソフトウエアのオーバーヘッドがすくない。
【００１５】
（２）本発明の集積回路装置は、
前記ＤＭＡ転送処理部は、
上位層から受け取ったデータを所定長ずつのデータに分割し、分割データを、自層で分割データに付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報生成部は、
前記分割データに付加すべきプロトコル情報を自層のプロトコルに従って生成し、生成したプロトコル情報をプロトコル情報保持バッファに格納する処理を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納された分割データと、前記分割データに対応してプロトコル情報保持バッファに保持されたプロトコル情報に基づき、下位層に渡すデータを生成することを特徴とする。
【００１６】
例えば前記ＤＭＡ転送処理部は、
上位層（第ｎ層）から受け取ったデータを所定長ずつのデータに分割し、分割データを、自層（第ｎ−１層）で分割データに付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報（ヘッダ）生成部は、
前記分割データに付加すべきプロトコル情報（ヘッダ）を自層（第ｎ−１層）のプロトコルに従って生成し、生成したプロトコル情報をプロトコル情報保持バッファに格納する処理を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納された分割データと、前記分割データに対応してプロトコル情報保持バッファに保持されたプロトコル情報（ヘッダ）に基づき、下位層（第ｎ−２層）に渡すデータを生成することを特徴とする。
【００１７】
このようにすることにより、例えばデータのフラグメント化に対応してデータを分割して下位層に引き渡す場合にも適用可能である。
【００１８】
（３）本発明の集積回路装置は、
前記プロトコル情報は上位層から受け取ったデータに付加するヘッダ情報であり、
前記プロトコル情報保持バッファとしてヘッダ情報保持バッファを含み、
前記プロトコル情報生成部は、
上位層から渡されたデータに付加すべきヘッダ情報を自層のプロトコルに従って生成し、生成したヘッダ情報をヘッダ情報保持バッファに格納する処理を行い、
前記ＤＭＡ転送処理部は、
上位層から渡されたデータを、自層で付加されるヘッダ制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータと、前記データに対応してヘッダ情報保持バッファに保持されたヘッダ情報に基づき、下位層に渡すデータを生成することを特徴とする。
【００１９】
例えば前記プロトコル情報は上位層（第ｎ層）から受け取ったデータに付加するヘッダ情報であり、
前記プロトコル情報保持バッファとしてヘッダ情報保持バッファを含み、
前記プロトコル情報生成部は、
上位層（第ｎ層）から渡されたデータ（ペイロード）に付加すべきヘッダ情報を自層（第ｎ−１層）のプロトコルに従って生成し、生成したヘッダ情報をヘッダ情報保持バッファに格納する処理を行い、
前記ＤＭＡ転送処理部は、
上位層（第ｎ層）から渡されたデータを、自層（第ｎ−１層）で付加されるヘッダ制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータと、前記データに対応してヘッダ情報保持バッファに保持されたヘッダ情報に基づき、下位層（第ｎ−２層）に渡すデータを生成することを特徴とする。
【００２０】
（４）本発明の集積回路装置は、
前記プロトコル情報は上位層から受け取ったデータに付加するトレーラ情報であり、
前記プロトコル情報保持バッファとしてトレーラ情報保持バッファを含み、
前記プロトコル情報生成部は、
上位層から渡されたデータに付加すべきトレーラ情報を自層のプロトコルに従って生成し、生成したトレーラ情報をトレーラ情報保持バッファに格納する処理を行い、
前記ＤＭＡ転送処理部は、
上位層から渡されたデータを、自層で付加されるトレーラ制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータと、前記データに対応してトレーラ情報保持バッファに保持されたトレーラ情報に基づき、下位層に渡すデータを生成することを特徴とする。
【００２１】
例えば前記プロトコル情報は上位層（第ｎ層）から受け取ったデータに付加するトレーラ情報であり、
前記プロトコル情報保持バッファとしてトレーラ情報保持バッファを含み、
前記プロトコル情報生成部は、
上位層（第ｎ層）から渡されたデータ（ペイロード）に付加すべきトレーラ情報を自層（第ｎ−１層）のプロトコルに従って生成し、生成したトレーラ情報をトレーラ情報保持バッファに格納する処理を行い、
前記ＤＭＡ転送処理部は、
上位層（第ｎ層）から渡されたデータを、自層（第ｎ−１層）で付加されるトレーラ制御情報の生成終了をまたずにデータ保持バッファへＤＭＡ転送を行い、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータと、前記データに対応してトレーラ情報保持バッファに保持されたトレーラ情報に基づき、下位層（第ｎ−２層）に渡すデータを生成することを特徴とする。
【００２２】
（５）本発明の集積回路装置は、
前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータに対応したプロトコル情報が、プロトコル情報保持バッファに格納されると、前記データとプロトコル情報に基づき下位層に引き渡すデータを生成し、生成されたデータを下位層に対し引き渡し可能な状態におくことを特徴とする。
【００２３】
例えば前記プロトコル情報付きデータ生成部は、
データ保持バッファに格納されたデータに対応したプロトコル情報が、プロトコル情報保持バッファに格納されると、前記データとプロトコル情報に基づき下位層（第ｎ−２層）に引き渡すデータを生成し、生成されたデータを下位層（第ｎ−２層）に対し引き渡し可能な状態におくことを特徴とする。
【００２４】
（６）本発明は、上記のいずれかの集積回路装置を含む通信制御装置である。
【００２５】
（７）本発明は、上記のいずれかの集積回路装置を含むマイクロコンピュータである。
【００２６】
（８）本発明は、上記に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００２７】
１．集積回路装置（通信制御装置）
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００２８】
図１は、本実施の形態の集積回路装置（通信制御装置）について説明するための図である。
【００２９】
本実施の形態の集積回路装置（通信制御装置）は、所定の通信プロトコルに従い送信データを生成する際に、上位層（である第ｎ層）から受け取ったデータに自層（第ｎ−１層）のプロトコルに従って自層（第ｎ−１層）で必要なプロトコル情報（ヘッダ）を付加してより下位層（である第ｎ−２層）に渡す処理を行う集積回路装置（通信処理装置）であって、コミュニケーションユニット２０，ＣＰＵ１１０、メモリ１２０、バス１００を含む。なおメモリ１２０は、外付けであってもよい。
【００３０】
コミュニケーションユニット２０は、上位層（である第ｎ層）から受け取ったデータに第ｎ−１層のプロトコルに従って自層（第ｎ−１層）で必要なプロトコル情報（ヘッダ）を付加してより下位層（である第ｎ−２層）に渡す処理を行う機能を有し、制御部３０、データバッファ４０、ヘッダバッファ５０、トレーラバッファ６０、送信バッファ書き込み制御部７０、送信バッファ８０、送信制御部９０を含む。
【００３１】
データバッファ４０は、上位層（第ｎ層）から受けとったデータを保持するためのデータ保持バッファとして機能する。
【００３２】
ヘッダバッファ５０は、自層（第ｎ−１層）で付加されるヘッダ情報（プロトコル情報の一種）を保持するためのプロトコル情報保持バッファとして機能する。
【００３３】
トレーラバッファ６０は、自層（第ｎ−１層）で付加されるトレーラ情報（プロトコル情報の一種）を保持するためのプロトコル情報保持バッファとして機能する。ただしトレーラ情報の付加が必要ない場合にはトレーラバッファ６０を設けなくてもよい。なお本実施の形態のTCP/IPのパケットの場合、トレーラに相当するものは存在しないが、データリンク層制御用のタグとして新設して考えるようにしてもよいし、トレーラバッファ６０を設けない構成としてもよい。
【００３４】
制御部３０はバスインターフェース機能とＤＭＡ機能を内蔵し、上位層（第ｎ層）から渡されたデータ４２を、自層（第ｎ−１層）で付加されるプロトコル制御情報の生成終了をまたずにデータ保持バッファ４０へＤＭＡ転送を行うＤＭＡ転送処理部として機能する。ここでデータをデータ保持バッファ４０に転送する度にデータバッファ制御信号４４を出力する。
【００３５】
制御部３０は、転送元アドレスレジスタ３２と転送元アドレスレジスタ３２を含む。転送元アドレスレジスタ３２には、上位層（第ｎ層）から受けとることになるデータが格納されているメモリ等アドレスがＣＰＵ１１０等によりセットされる。転送先アドレスレジスタ３４には、上位層（第ｎ層）から受けとったデータの格納先アドレスを自らセットする。具体的にはデータバッファのアドレスが１つのデータが転送される度に順次インクリメント（又はデクリメントされて）格納されることになる。制御部３０は、この転送元アドレスレジスタ３２と転送元アドレスレジスタ３２に格納されたアドレスに基づき転送元と転送先を特定してＤＭＡ転送処理を行う。
【００３６】
ＣＰＵ１１０は、上位層（第ｎ層）から渡されたデータ（ペイロード）に付加すべきプロトコル情報（ヘッダ情報とトレーラ情報の少なくとも一方）を自層（第ｎ−１層）のプロトコルに従って生成し、生成したプロトコル情報（ヘッダ情報及びトレーラ情報の少なくとも一方）をプロトコル情報保持バッファ（ヘッダバッファ５０及びトレーラバッファ６０の少なくとも一方）に格納する処理を行うプロトコル情報生成処理生成部として機能する。生成されたプロトコル情報（ヘッダデータ５２及びトレーラデータ６２の少なくとも一方）は、バス１００、制御部３０を介してプロトコル情報保持バッファ（ヘッダバッファ５０及びトレーラバッファ６０の少なくとも一方）に格納される。
【００３７】
制御部３０は、ヘッダデータ５２やトレーラデータ６２がヘッダバッファ５０やトレーラバッファ６０に転送される度にヘッダバッファ制御信号５４やトレーラバッファ制御信号６４を出力する。
【００３８】
送信バッファ書き込み制御部７０は、データバッファ制御信号４４、ヘッダバッファ制御信号５４、トレーラバッファ制御信号６４を受け取り、データバッファ４０、ヘッダバッファ５０、トレーラバッファ６０に、１つのパケットを構成するデータ４２、ヘッダ５２、トレーラ６２が揃ったのを検出して、データ、ヘッダ、トレーラを送信バッファに出力することを指示するバッファ読み出し指示信号をデータバッファ４０、ヘッダバッファ５０、トレーラバッファ６０に送る。
【００３９】
これをうけてデータバッファ４０、ヘッダバッファ５０、トレーラバッファ６０は、それぞれ１セットとなるデータ４２、ヘッダ５２、トレーラ６２を送信バッファ８０に出力する。
【００４０】
送信バッファ８０に置かれたデータ４２、ヘッダ５２、トレーラ６２は１つのパケットを構成する送信データとして送信可能な状態に置かれる。
【００４１】
送信制御部９０は所定のタイミングで送信バッファに置かれた送信データを送信する処理を行う。
【００４２】
図２は本実施の形態の動作を説明するためのフローチャート図である
本実施の形態ではTCP/IPにおけるプロトコルスタックを想定して説明する。すなわち自層がインターネット層（ネットワーク層）であるとして、上位層がトランスポート層、下位層がデータリンク層であるとする。
【００４３】
実際に転送するデータの最終形態を、「フレーム」、と呼び、データリンク層で生成する。「フレーム」の前のデータ形式を、「パケット」と呼び、インターネット層で生成される。本実施の形態では、インターネット層からデータリンク層にパケットを渡す場合を例にとり説明する。
【００４４】
上位層のセグメントデータを受け取る（ステップＳ１０）。ここで上層から受け取るセグメント内容を変更する必要は無いので、受け渡されるのはポインター情報となる。
【００４５】
次にセグメントデータのＤＭＡ転送を行う（ステップＳ２０）。１セグメントを１ブロックとして、データリンク層のデータ保持バッファ（図１のデータバッファ４０）にＤＭＡ転送を行う。
【００４６】
次に自層のプロトコル情報であるＩＰヘッダの生成を行う（ステップＳ３０）。この処理は具体的にはＣＰＵが行う。
【００４７】
生成したＩＰヘッダを転送してデータリンク層のヘッダ保持バッファ（図１のヘッダバッファ５０）に書き込む。この段階で対応するセグメントのデータのＤＭＡ転送が終了していれば、通信相手に対しての送信処理がスタートする。例えばヘッダとデータを１セットの送信データとして送信バッファに書き込む処理が行われる。
【００４８】
全セグメントについて処理が終了するまでステップＳ３０〜Ｓ４０の処理を繰り返す。
【００４９】
ステップＳ４０で行われるＤＭＡ転送は、汎用のＤＭＡを使用しても良いし、受信側がデータリンク層を制御しているハードウエア（図１のデータバッファ４０）のみになるので、例えば図１のコミュニケーションユニット２０の制御部３０のように専用のＤＭＡＣ(コントローラー)を用いるようにしてもよい。
【００５０】
また１回の転送データサイズをセグメントサイズと同じにし、これをブロックと呼びＤＭＡの転送回数をブロック数で管理するようにしてもよい。そしてデータリンク層の各バッファを、例えば図１に示すデータバッファ４０、ヘッダバッファ５０，トレーラバッファ６０のようにデータ・ヘッダ・トレーラに分割し、各々の対応をブロック番号で管理するようにしてもよい。そしてデータ・ヘッダ・トレーラの全てが格納された段階で、送信バッファ（図１の送信バッファ８０に対応）に完成したパケットとして格納する。なお最終段の送信バッファは省略してもよい。またデータバッファ・ヘッダバッファ・トレーラバッファは、リング制御(ブロックＮｏ．が最大になったら０に戻る)するようにしてもよい。
【００５１】
図３（Ａ）（Ｂ）はデータバッファ・ヘッダバッファ・トレーラバッファに格納される各データと生成されるパケットの関係について説明するための図である。
【００５２】
図３（Ａ）は、それぞれデータバッファ４０、ヘッダバッファ５０、トレーラバッファ６０にデータ、ヘッダ、トレーラが格納されている様子を示している。
【００５３】
２１０−１、２１０−２、２１０−３・・は、１回のＤＭＡ転送で転送される１ブロック単位のデータであり、ｎ−１、ｎ、ｎ＋１と時系列に並んでデータバッファに格納されている。
【００５４】
２２０−１、２２０−２、２２０−３・・は、１回で転送される１ブロック単位のヘッダであり、ｎ−１、ｎ、ｎ＋１と時系列に並んでヘッダバッファに格納されている。
【００５５】
２３０−１、２３０−２、２３０−３・・は、１回で転送される１ブロック単位のトレーラであり、ｎ−１、ｎ、ｎ＋１と時系列に並んでトレーラバッファに格納されている。
【００５６】
図３（Ｂ）は、データ、ヘッダ、トレーラにより生成されるパケットについて説明するための図である。
【００５７】
２００−１に示すようにパケットは同じブロック番号を有する１ブロックのデータ２１０−１、ヘッダ２２０−１、トレーラ２３０−１を所定順序で接続して生成される。
【００５８】
図４は、本実施の形態の階層化された所定の通信プロトコルの階層関係について説明するための図である。
【００５９】
同図はＯＳＩ７層構造モデルの通信プロトコル４００の階層番号４１０，名称４２０、プロトコルで規定している内容４３０の一覧表である。ここで階層番号４１０が大きい方が上位層となり小さい方が下位層となる。例えば自層がネットワーク層（インターネット層）であると上位層はトランスポート層４４４となり、下位層はデータリンク層４４２となる。
【００６０】
ここでアプリケーション層４４７とプレゼンテーション層４４６とセッション層４４５は、異なる階層として定義されているが、例えばこれらをひとまとめにして１つの階層（例えば上位層、自層）とみなして取り扱うことも可能である。
【００６１】
上記実施の形態では自層がインターネット層（ネットワーク層）であるとして、上位層がトランスポート層、下位層がデータリンク層である場合を例にとり説明したが是に限られない。それ以外の場合、例えばトランスポート層を自層とし、アプリケーション層４４７とプレゼンテーション層４４６とセッション層４４５を上位層とし、ネットワーク層を下位層とする場合でもよい。
【００６２】
図５は、上位層から渡されるデータと自層で生成する（必要な）プロトコル情報について説明するための図である。
【００６３】
ここではアプリケーション層３００、トランスポート層３１０、インターネット層３２０、データリンク層３３０、物理層３４０に階層化されている場合を例にとり説明する。アプリケーション層が最上位層となり以下順次階層が低くなりデータリンク層が最下位層となる。
【００６４】
まずアプリケーション層３００で、データであるアプリケーション電文３０４が生成される。
【００６５】
次にトランスポート層３１０は、上位層であるアプリケーション層３００から渡されたデータ３０４に対し、自層（トランスポート層３１０）のプロトコルにしたがって必要なヘッダ情報（ＴＣＰヘッダ３１２）を生成し、生成したヘッダ情報（ＴＣＰヘッダ３１２）を受け取ったデータ３０４に付加し、トランスポート層のデータ３１４を生成する。
【００６６】
次にインターネット層３２０は、上位層であるトランスポート層３１０から渡されたデータ３１４に対し、自層（インターネット層３２０）のプロトコルにしたがって必要なヘッダ情報（ＩＰヘッダ３２２）を生成し、生成したヘッダ情報（ＩＰヘッダ３２２）を受け取ったデータ３１４に付加し、トランスポート層のデータ３２４を生成する。
【００６７】
次にデータリンク層３３０は、上位層であるインターネット層３２０から渡されたデータ３２４に対し、自層（データリンク層３３０）のプロトコルにしたがって必要なヘッダ情報（イーサネット（登録商標）ヘッダ３３２）を生成し、生成したヘッダ情報（イーサネット（登録商標）ヘッダ３３２）を受け取ったデータ３２４に付加し、データリンク層のデータ３３４を生成する。
【００６８】
図６は比較例の動作を説明するためのフローチャート図である。
【００６９】
上位層のセグメントデータを受け取る（ステップＳ１１０）。この上位層(ここではトランスポート層=ＴＣＰ)からデータを引き継ぐ際に、データコピーが発生する（処理Ｃ１）。
【００７０】
次にデータ単位でＩＰヘッダを作成する（ステップＳ１２０）。
【００７１】
そして作成したＩＰヘッダをセグメントデータの頭に接続し、パケットを生成する（ステップＳ１３０）。ここで生成したパケットを処理結果を保存する（処理Ｃ２)
【００７２】
次にパケットを下位層(データリンク層)に引き渡す（ステップＳ１４０）。すなわち保存したデータをデータリンク層のバッファに転送する（処理Ｃ３)。比較例ではこの段階で、データリンク層の処理が始まる。
【００７３】
これに対し本実施の形態では、図２に示すように上記フローでの、処理Ｃ１・Ｃ２が無くなり、処理Ｃ３がセグメントデータのＤＭＡ転送と、平行して行われるＩＰヘッダの転送に分かれる。すなわち本実施の形態では物理的に、ＩＰヘッダの生成からパケットデータの受渡しを並列して行う事になる。
【００７４】
例えば従来はヘッダ・トレーラ部の生成が済みパケットとしての形を完成させてから送信処理部に転送していた。しかし本実施の形態ではデータのＤＭＡ送信中に、ヘッダやトレーラ等のプロトコル情報を作成することで、パケット作成の効率化や処理速度の向上を図ることができる。
【００７５】
また従来はヘッダ部トレース部の格納領域を確保するためにデータ部の一部をソフトウエアで待避する処理が必要であったり、仮想アドレスと連続アドレスの２つのアドレスをソフトウエアで認識しておく必要があった。
【００７６】
しかし本実施の形態では下位層への実際の送信動作は、ヘッダ等のプロトコル情報生成後にハードウエアが自動的に行うことでデータ数の違いによるデータ転送タイミングをソフトウエアで制御する必要がなくソフトウエアのオーバーヘッドがすくない。
【００７７】
２．マイクロコンピュータ
図７は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【００７８】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＲＡＭ７１０，ＲＯＭ７２０、ＭＭＵ７３０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ５７０、割り込みコントローラ５８０、通信制御装置５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置６６０、プリスケーラ６７０、コミュニケーションモジュール７４０及びそれらを接続する汎用バス６８０、専用バス７５０等、各種ピン６９０等を含む。
【００７９】
コミュニケーションモジュール７４０は例えば図１で説明した構成を有する。
【００８０】
３．電子機器
図８に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【００８１】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。  音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００８２】
図９（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【００８３】
図９（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【００８４】
図９（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【００８５】
本実施の形態のマイクロコンピュータを図９（Ａ）〜図９（Ｃ）の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【００８６】
なお、本実施形態を利用できる電子機器としては、図９（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【００８７】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【００８８】
例えば上記実施の形態では、自層がインターネット層（ネットワーク層）であるとして、上位層がトランスポート層、下位層がデータリンク層である場合を例にとり説明したが是に限られない。
【００８９】
また上記実施の形態ではプロトコル情報としてヘッダ情報とトレーラ情報を有する場合を例にとり説明したがこれに限られない。例えばヘッダ情報のみの場合でもよい。
【００９０】
また上記実施の形態では専用のＤＭＡ転送回路を設け上位層から受け取ったデータを転送する場合を例にとり説明したがこれに限られない。例えばシステムが有する汎用ＤＭＡを用いて上位層から受け取ったデータを転送する構成も本発明の範囲内である。
【００９１】
また本実施の形態では上位層から受け取ったデータを分割せずにパケットを生成する場合を例にとり説明したがこれに限られない。例えばフラグメント化等により上位層から受け取ったデータを分割して各分割データにプロトコル情報を付加する場合でもよい。
【図面の簡単な説明】
【００９２】
【図１】本実施の形態の集積回路装置（通信制御装置）について説明するための図である。
【図２】本実施の形態の動作を説明するためのフローチャート図である
【図３】図３（Ａ）（Ｂ）はデータバッファ・ヘッダバッファ・トレーラバッファに格納される各データと生成されるパケットの関係について説明するための図である。
【図４】本実施の形態の階層化された所定の通信プロトコルの階層関係について説明するための図である。
【図５】上位層から渡されるデータと自層で生成する（必要な）プロトコル情報について説明するための図である。
【図６】比較例の動作を説明するためのフローチャート図である。
【図７】本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【図８】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図９】図９（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【００９３】
１  ＩＣ（通信制御装置）、２０  コミュニケーションユニット、３０  制御部、４０  データバッファ、５０  ヘッダバッファ、６０  トレーラバッファ、７０  送信バッファ書き込み制御部、８０  送信バッファ、９０  送信制御部、１００  バス、１１０  ＣＰＵ、１２０  メモリ、５１０  ＣＰＵ、５２０  キャッシュメモリ５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  DMAコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  通信制御回路（シリアルインターフェース）、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、７４０  コミュニケーションモジュールモジュール、７５０  専用バス、８００  電子機器、８１０  マイクロコンピュータ（ＡＳＩＣ）、８２０  入力部、８３０  メモリ、８４０  電源生成部８５０  ＬＣＤ、８６０  音出力部、９５０  携帯電話、９５２  ダイヤルボタン、９５４  ＬＣＤ、９５６  スピーカ、９６０  携帯型ゲーム装置、９６２  操作ボタン、９６４  十字キー、９６６  ＬＣＤ、９６８  スピーカ、９７０  パーソナルコンピュータ、９７２  キーボード、９７４  ＬＣＤ、９７６  音出力部
【図１】
2006050502.tif 000003
【図２】
2006050502.tif 000004
【図３】
2006050502.tif 000005
【図４】
2006050502.tif 000006
【図５】
2006050502.tif 000007
【図６】
2006050502.tif 000008
【図７】
2006050502.tif 000009
【図８】
2006050502.tif 000010
【図９】
2006050502.tif 000011