(57)【要約】      （修正有）【課題】所定の通信プロトコルに従い送信データを生成する際の処理時間の短縮化やシステムの効率の向上。【解決手段】本集積回路装置は、上位層で生成されたデータ単位で、下位層で生成したプロトコルデータの格納領域の物理アドレス及び前記上位層で生成されたデータの物理アドレス格納領域の情報をデータ識別情報に関連づけて記憶するデータ管理テーブルと、送信データに必要なデータ及びプロトコルデータの少なくとも一方の物理アドレスを管理テーブルから読み出すためのセグメントアドレスを前記データ識別情報に関連づけて生成するセグメントアドレス生成回路と、管理テーブルを参照してセグメントアドレスに対応する物理アドレスを出力するアドレス変換回路と、前記物理アドレスに基づきデータ及びプロトコル情報を読み出し、読み出されたデータを送信データのフォーマットに従ってデータバッファに書込み送信データを生成する送信データ生成回路を含む。【選択図】図１
2006148232.tif 000002
【特許請求の範囲】
【請求項１】
階層化された所定の通信プロトコルに従い送信データを生成するための集積回路装置であって、
上位層で生成されたデータ単位で、下位層で生成したプロトコルデータの格納領域の物理アドレス及び前記上位層で生成されたデータの物理アドレス格納領域の情報をデータ識別情報に関連づけて記憶するためのデータ管理テーブルと、
送信データに必要なデータ及びプロトコルデータの少なくとも一方の物理アドレスを管理テーブルから読み出すためのセグメントアドレスを前記データ識別情報に関連づけて生成するセグメントアドレス生成回路と、
管理テーブルを参照してセグメントアドレスに対応する物理アドレスを出力するアドレス変換回路と、
前記物理アドレスに基づきデータ及びプロトコル情報を読み出して、読み出されたデータを送信データのフォーマットにしたがってデータバッファに書き込み送信データを生成する送信データ生成回路と、
を含むことを特徴とする集積回路装置。
【請求項２】
請求項１において、
前記上位層で生成されたデータ毎に、データ識別情報に関連づけてセグメントアドレスを生成するために必要な情報を記憶するためのセグメントアドレス生成情報レジスタをさらに含み、
前記セグメントアドレス生成情報レジスタは、
上位層で生成されたデータが複数のデータに分割された場合に、データの分割数の情報を記憶するレジスタを含み、
前記セグメントアドレス生成回路は、
前記データの分割数の情報を含んだセグメントアドレスを生成し、
前記アドレス変換回路は、
セグメントアドレスに含まれた前記データの分割数の情報に基づきデータの格納アドレスを演算すること特徴とする集積回路装置。
【請求項３】
請求項１乃至２のいずれかの集積回路装置を含む通信制御装置であって、
階層化された所定の通信プロトコルに従い送信データを生成する処理部と、
処理部によって生成されたデータを送信するための通信制御部を含み、
前記処理部は、
自層の処理結果生成したプロトコルデータを所与の記憶領域に出力し、所与の記憶領域の物理アドレス情報を、前記管理テーブルに書き込む管理テーブル作成処理手段を含むことを特徴とする通信制御装置
【請求項４】
請求項２に従属する請求項３において、
前記処理部は、
上位層で生成されたデータを複数のデータに分割した場合に、データの分割数の情報を前記セグメントアドレス生成情報レジスタに書き込む手段を含むことを特徴とする通信制御装置。
【請求項５】
請求項３乃至４のいずれかにおいて、
前記処理部は、
上位層で生成されたデータ単位で新規データ管理テーブルの生成を行い、自層の処理結果生成したプロトコルデータを所与の記憶領域に出力すると共に、所与の記憶領域の物理アドレス情報を管理テーブルに書き込み、管理テーブル特定情報を次の処理層に引き渡す処理を行う第１の階層処理部と、
上位層から管理テーブル特定情報を受け取り、自層の処理結果生成したプロトコル情報を所与の記憶領域に出力し、所与の記憶領域の物理アドレス情報を前記上位層から受け取った管理テーブル特定情報によって特定された管理テーブルに書き込み、管理テーブル特定情報を次の処理層に引き渡す処理を行う第２の階層処理部と、
を含むことを特徴とする通信制御装置。
【請求項６】
請求項１乃至２のいずれかの集積回路装置を含むマイクロコンピュータ。
【請求項７】
請求項６に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置、通信制御装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【０００２】
例えばＴＣＰ／ＩＰ等の所定のプロトコルを使用してデータの送信を行う場合、アプリケーション層で生成された送信データは、物理層にいたる各階層のプロトコルで、上位層から渡されたデータ自体は変更せず、各階層で必要な情報を付加したものを新たなデータとして下位階層に渡す処理が行われ、最終的に物理層で電気信号に置き換えられて通信相手に対して送信する。
【０００３】
ここでアプリケーション層からのデータは、トランスポート層で通信に適したサイズ(物理層に合わせたサイズ、分割したものをセグメントと呼ぶ)に分割され、ヘッダ・トレーラ等が生成されデータの前後に置かれ、その後この分割されたデータが処理単位となって下位層の処理がなされる。
【０００４】
例えばネットワーク層ではセグメントデータを自層の作業領域の転送してから自層の処理（例えばヘッダ・トレーラ等を生成する処理）を行う。
【特許文献１】特開平７−２２５７２８号
【特許文献２】特開２０００−３３２８１７号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように各階層では、上位階層の作業領域から各階層の作業領域にデータを転送してから処理を行っているため、データサイズが大きい場合データ転送処理にかかる時間が大きくなりシステムの効率を悪化させるという問題があった。
【０００６】
本発明は以上のような問題点に鑑みてなされたものであり、その目的とするところは、所定の通信プロトコルに従い送信データを生成する際の処理時間の短縮化やシステムの効率の向上が可能な集積回路装置、通信制御装置、マイクロコンピュータ及び電子機器の提供を目的とする。
【課題を解決するための手段】
【０００７】
（１）本発明は、
階層化された所定の通信プロトコルに従い送信データを生成するための集積回路装置であって、
上位層で生成されたデータ単位で、下位層で生成したプロトコルデータの格納領域の物理アドレス及び前記上位層で生成されたデータの物理アドレス格納領域の情報をデータ識別情報に関連づけて記憶するためのデータ管理テーブルと、
送信データに必要なデータ及びプロトコルデータの少なくとも一方の物理アドレスを管理テーブルから読み出すためのセグメントアドレスを前記データ識別情報に関連づけて生成するセグメントアドレス生成回路と、
管理テーブルを参照してセグメントアドレスに対応する物理アドレスを出力するアドレス変換回路と、
前記物理アドレスに基づきデータ及びプロトコル情報を読み出して、読み出されたデータを送信データのフォーマットにしたがってデータバッファに書き込み送信データを生成する送信データ生成回路と、
を含むことを特徴とする。
【０００８】
ここにおいて階層化された所定の通信プロトコルとは、ソフトウエア処理が階層構造になっている通信プロトコルであり、例えばＯＳＩのアプリケーション層、プレゼンテーション層、セッション層、トランスポート層、インターネット層、データリンク層、物理層等のプロトコルスタックの処理が行われる通信プロトコルを意味するがこれに限られない。
【０００９】
ここにおいて上位層とは例えばセッション層で下位層とはそれ以下のトランスポート層、インターネット層、データリンク層等でもよい。
【００１０】
データ管理テーブルは、例えば下位層が上位層からデータを渡された時に生成しても良いし、下位層がデータを分割する場合（例えばトランスポート層がデータを複数のセグメントに分割する場合）に生成するようにしても良い。
【００１１】
データ管理テーブルは、アプリケーションが生成したデータ単位で生成される。
【００１２】
データ識別情報とは、現在実行されているアプリケーション及びアプリケーションが生成したデータが複数ある場合にはどのデータかを識別するための情報である。
【００１３】
データ管理テーブルには、下位層で生成したプロトコルデータの格納領域の物理アドレス及び前記上位層で生成されたデータの物理アドレス格納領域の情報の他にもソケット番号（ポート番号とＩＰアドレスを含みアプリケーションを識別可能な番号）その他を含むようにしてもよい。
【００１４】
上位層で生成されたデータとは、例えばアプリケーションがセッション層で生成する１固まりのデータである。
【００１５】
また下位層で生成したプロトコルデータとは、例えばトランスポート層、インターネット層、データリンク層等で生成されるヘッダやトレーラ等である。
【００１６】
また送信データとは、送信バッファにおかれて送信されるデータであり、例えばデータリンク層の処理結果生成されるフレームデータ等である。ここにおいて
送信データのフォーマットとは、例えば送信データがデータリンク層の処理結果生成されるフレームデータである場合には、フレームデータのフォーマットである。
【００１７】
セグメントアドレスは、管理テーブルの各物理アドレス格納領域を特定可能な情報で構成され、例えばデータ識別情報を含むようにしてもよい。また上位層から受け取ったデータが複数に分割される場合には何番目の分割データであるかを特定するための情報（例えばシーケンス識別コード）を含むようにしてもよい。
【００１８】
セグメントデータで各階層のプロトコルデータの格納領域の物理アドレスを参照する場合には、各階層を識別するための情報（例えば階層識別コード）を含むようにしてもよい。
【００１９】
セグメントアドレス生成回路は、例えばデータ識別情報を与えられると、当該データから生成される送信データ（当該データが分割して分割データ単位で送信データが生成される場合には当該データから分割されたすべての送信データ）の構成要素（データや各階層が生成したヘッダ等）を読み出すためのセグメントアドレスを自動的に生成する。
【００２０】
なおひとかたまりのデータが複数のセグメントに分割された場合にはその分割数を所定のレジスタに保持しておくようにしてもよい。
【００２１】
また各階層で生成されるプロトコルデータのサイズ（ヘッダサイズ等）を所定のレジスタに保持しておくようにしてもよい。
【００２２】
送信データ生成回路は、物理アドレスに基づきＤＭＡ転送でデータを読み出し、読み出したデータをデータバッファに格納する。そしてデータバッファに格納されたデータは、通信処理部の送信バッファ等にＤＭＡ転送される。このようにすることで送信データ（例えばフレーム）の自動生成が可能になる。
【００２３】
本発明によれば、データやプロトコルデータの物理アドレスをデータ管理テーブルで階層を超えて管理することができる。従って上位層から渡されたデータはそのままの位置におき、下位階層で生成するプロトコル情報はデータに対応したデータ識別情報により別領域におくことができる。
【００２４】
また各階層でデータの参照が必要となるときもセグメントアドレスで参照することができるので、最終的に送信するときの通信制御部へのデータの移動以外にデータの移動を行わなくて済む。
【００２５】
また最終的に送信するときの通信制御部へのデータの移動も、自動的にセグメントアドレスを生成し、別個に格納されている各データをＤＭＡ転送により読み出し最終データを生成して通信制御部へ転送することができる。
【００２６】
このように本発明はプロトコルスタックの階層間の処理において、プロトコルスタックの階層間のデータの受け渡しの際のデータ移動やコピーの処理を無くし、処理全体を高速化することができる。
【００２７】
（２）本発明の集積回路装置は、
前記上位層で生成されたデータ毎に、データ識別情報に関連づけてセグメントアドレスを生成するために必要な情報を記憶するためのセグメントアドレス生成情報レジスタをさらに含み、
前記セグメントアドレス生成情報レジスタは、
上位層で生成されたデータが複数のデータに分割された場合に、データの分割数の情報を記憶するレジスタを含み、
前記セグメントアドレス生成回路は、
前記データの分割数の情報を含んだセグメントアドレスを生成し、
前記アドレス変換回路は、
セグメントアドレスに含まれた前記データの分割数の情報に基づきデータの格納アドレスを演算すること特徴とする。
【００２８】
なお前記セグメントアドレス生成情報レジスタは、
各階層で生成するプロトコルデータのデータサイズの情報を記憶するレジスタを含み、
前記アドレス変換回路は、
セグメントアドレスに含まれた前記データの分割数の情報及びプロトコルデータのデータサイズの情報に基づきデータの格納アドレスを演算するようにしてもよい。
【００２９】
（３）本発明は、
上記いずれかの集積回路装置を含む通信制御装置であって、
階層化された所定の通信プロトコルに従い送信データを生成する処理部と、
処理部によって生成されたデータを送信するための通信制御部を含み、
前記処理部は、
自層の処理結果生成したプロトコルデータを所与の記憶領域に出力し、所与の記憶領域の物理アドレス情報を、前記管理テーブルに書き込む管理テーブル作成処理手段を含むことを特徴とする。
【００３０】
ここにおいて処理部は例えばＣＰＵ等によって実現され、管理テーブル作成処理手段はＣＰＵと実行されるプログラム等によって実現される。
【００３１】
（４）本発明の通信制御装置は、
前記処理部は、
上位層で生成されたデータを複数のデータに分割した場合に、データの分割数の情報を前記セグメントアドレス生成情報レジスタに書き込む手段を含むことを特徴とする。
【００３２】
（５）本発明の通信制御装置は、
前記処理部は、
上位層で生成されたデータ単位で新規データ管理テーブルの生成を行い、自層の処理結果生成したプロトコルデータを所与の記憶領域に出力すると共に、所与の記憶領域の物理アドレス情報を管理テーブルに書き込み、管理テーブル特定情報を次の処理層に引き渡す処理を行う第１の階層処理部と、
上位層から管理テーブル特定情報を受け取り、自層の処理結果生成したプロトコル情報を所与の記憶領域に出力し、所与の記憶領域の物理アドレス情報を前記上位層から受け取った管理テーブル特定情報によって特定された管理テーブルに書き込み、管理テーブル特定情報を次の処理層に引き渡す処理を行う第２の階層処理部と、
を含むことを特徴とする。
【００３３】
なお第１の階層処理部は、自層で行った処理結果に関連したセグメントアドレス生成情報をセグメントアドレス生成情報レジスタに書き込み、セグメントアドレス生成情報レジスタ特定するための情報を次の処理層に引き渡す処理を行い、
第２の階層処理部は、
上位層からセグメントアドレス生成情報レジスタを特定するための情報を受け取り、自層で行った処理結果に関連したセグメントアドレス生成情報を前記上位層から受け取ったセグメントアドレス生成情報レジスタ特定するための情報によって特定されるセグメントアドレス生成情報レジスタに書き込み、セグメントアドレス生成情報レジスタを特定するための情報を次の処理層に引き渡す処理を行うようにしてもよい。
【００３４】
（６）本発明は、上記のいずれかの集積回路装置を含むマイクロコンピュータである。
【００３５】
（７）本発明は、
上記に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００３６】
１．集積回路装置（通信制御装置）
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００３７】
図１は、本実施の形態の集積回路装置（通信制御装置）について説明するための図である。
【００３８】
本実施の形態の集積回路装置（通信制御装置）１０は、階層化された所定の通信プロトコルに従い送信データを生成する集積回路装置であって、プロトコルデータユニットコントロールユニット（ＰＤＣ回路）２０、ＣＰＵ１５０、メモリ１６０、通信制御部１７０、バス１８０を含む。なおメモリ１６０は、外付けであってもよい。
【００３９】
ＰＤＣ回路２０は、各種レジスタに設定された値に基づき送信データの作成、送信バッファへのＤＭＡ転送制御を行うもので、ＰＤＣ制御部３０、セグメントアドレスレジスタ１００、管理テーブル８０、データユニットアドレス生成部９０、ディスティネーションアドレスレジスタ１１０、データバッファ１２０、セレクタ１３０、バスインターフェース１４０を含む。
【００４０】
ＰＤＣ制御部３０は、セグメントアドレス生成回路４０、セグメントアドレス生成情報レジスタ５０、ソケット識別コードレジスタ６２、制御レジスタ６４，ステータスレジスタ６６、バス制御信号生成回路７０を含む。
【００４１】
セグメントアドレス生成情報レジスタ５０は、前記上位層で生成されたデータ毎に、データ識別情報に関連づけてセグメントアドレスを生成するために必要な情報を記憶するためのレジスタであり、データ（アプリケーションが出力するデータ）毎に、データ識別情報（ここではソケット識別コード）に関連づけて、プロトコル情報サイズ（ヘッダサイズ♯１（５４）、ヘッダサイズ♯２（５５）、ヘッダサイズ♯３（５６）、トレーラサイズ♯３（５７））等のセグメントアドレス生成情報を記憶するための専用レジスタである。ここにおいてデータ識別情報とは、例えばソケット識別コード５１である。
【００４２】
なお上位層が生成したデータをセグメントに分割して送信データを作成する場合には、セグメントアドレス生成情報レジスタ５０にセグメント数（最大シーケンス識別コード５２）、セグメントサイズ５３をもたせるようにしてもよい。
【００４３】
セグメントアドレス生成回路４０は、送信データに必要なデータ及びプロトコルデータの少なくとも一方の物理アドレスを管理テーブルから読み出すためのセグメントアドレスを前記データ識別情報に関連づけて生成するもので、セグメントアドレス生成情報レジスタ５０に格納されたセグメントアドレス生成情報に基づき各データ識別、分割データ特定情報、階層特定情報を含むセグメントアドレスを生成し、セグメントアドレスレジスタ１００に出力する。
【００４４】
ソケット識別コードレジスタ６２は、例えばＣＰＵにより、送信するフレームのソケット識別番号が格納される。
【００４５】
制御レジスタ６４は、データ転送開始の指示や動作中止の指示を行うための制御ビットが格納される。
【００４６】
ステータスレジスタ６６は、現在何番目のフレームの何を転送中かを示すビットや割込み要因ビットが格納される。
【００４７】
バス制御信号生成回路７０は、バスに出力するアドレスのリード／ライト種別等の制御信号を生成して出力する。
【００４８】
管理テーブル８０は、アプリケーションが生成するデータ単位でデータ識別情報に関連づけてアプリケーション識別情報、各階層で生成したプロトコル情報の物理アドレス及びデータの物理アドレスの情報を記憶する。
【００４９】
データユニットアドレス生成部９０は、管理テーブル８０を参照してセグメントアドレスレジスタに格納されたセグメントアドレスに対応する物理アドレスを出力するアドレス変換回路として機能する。
【００５０】
セレクタ１３０は、データユニットアドレス生成部９０の出力及びディストネーションアドレスレジスタ１１０に接続され、ＰＤＣ制御部３０が出力する制御信号３２に基づいていずれかを選択しバスインターフェース１４０に出力する。
【００５１】
ディストネーションアドレス１レジスタ１１０には、通信制御部１７０の送信バッファのアドレスが設定される。
【００５２】
データバッファ１２０には、データユニットアドレス生成部９０で作られた物理アドレスから読み出されたデータが書き込まれ、フレーム形式のデータが作成される。
【００５３】
データバッファ１２０に書き込まれたデータは。通信制御部の送信バッファに送信する際にはデータユニットアドレス生成部９０、ディストネーションアドレスレジスタ１１０に格納されているディストネーションアドレス（送信バッファ１７２のアドレス）にＤＭＡ転送される。
【００５４】
ＰＤＣ制御部３０は、物理アドレスに基づきデータ及びプロトコル情報を読み出して、送信データのフォーマットにしたがって、送信データを生成する送信データ生成部として機能する。
【００５５】
バスインターフェース１４０は、アドレスやデータや制御信号のバスへの入出力を制御する処理を行う。
【００５６】
図２は、本実施の形態の管理テーブルについて説明するための図である。
【００５７】
ここではセッション層が出力したデータをトランスポート層がセグメントデータに分割し、以下ネットワーク層、データリンク層で各プロトコルの処理を行う場合について説明する。
【００５８】
本実施の形態の管理テーブル８０−１、・・・、８０−ｎは、例えば専用レジスタ等のハードウエアで実現され、ＣＰＵからは通常のレジスタと同様にリード/ライトが可能に形成される。
【００５９】
管理テーブル８０−１、・・・、８０−ｎは、アプリケーションが生成するデータ単位で、トランスポート層がセッション層からのデータをセグメント分割する際に前記アプリケーションが生成するデータ単位で新規に生成されるようにしてもよい。
【００６０】
管理テーブル８０−１、・・・、８０−ｎの情報は、ソケット識別コード８１、ソケット番号８２、データアドレス♯０（８３）、データアドレス♯１（８４）、データアドレス♯２（８５）、データアドレス♯３（８６）を含む。
【００６１】
ソケット識別コード８１は、アプリケーションが生成するデータに一義的に対応付け可能に生成されるもので、例えばソケット番号（ＩＰアドレスとポート番号により特定可能）に基づき決定するようにしてもよいし、現在実行中のアプリケーションに連番をふる形式でソケット識別コードを生成するようにしてもよい。
【００６２】
ソケット番号８２は、ＩＰアドレスとポート番号により特定される番号である。
【００６３】
データアドレス♯０（８３）は、上位層（例えばセッション層）が出力したデータの物理アドレスが格納される。
【００６４】
データアドレス♯１（８４）は、トランスポート層が生成するＴＣＰヘッダのヘッダ格納領域の先頭アドレスが格納される。
【００６５】
ソケット識別コード８１、ソケット番号８２、データアドレス♯０（８３）は、ＣＰＵによってトランスポート層の処理が実行される際に書き込まれる。
【００６６】
データアドレス♯２（８５）は、ネットワーク層が生成するＩＰヘッダのヘッダ格納領域の先頭アドレスが格納され、例えばＣＰＵによってネットワーク層の処理が実行される際に書き込まれる。
【００６７】
データアドレス♯３（８６）は、データリンク層が生成するＩＰヘッダのヘッダ格納領域の先頭アドレスが格納され、例えばＣＰＵによってデータリンク層の処理が実行される際に書き込まれる。
【００６８】
図３（Ａ）〜（Ｄ）は、各階層で生成されるデータについて説明するための図である。
【００６９】
図３（Ａ）の２１０は、セッション層の処理により生成され、メモリ上の所与の記憶エリア（データの先頭アドレス２１２）に出力されたデータである。本実施の形態では、トランスポート層以下ではプロトコルスタック間のデータの受け渡しの際のデータの移動処理（コピー処理）を行わない。これによって処理全体の高速化を図ることができる。
【００７０】
なおセッション層が出力したデータ２１０は、トランスポート層で通信に適したサイズ(物理層に合わせたサイズ）であるセグメント２２０−１、２２０−２、・・・に分割され、トランスポート層では各セグメント２２０−１、２２０−２、・・・に対応したヘッダ・トレーラ等が生成される。
【００７１】
図３（Ｂ）の２３０は、トランスポート層の処理により生成され、メモリ上の所与の記憶エリア（ＴＣＰヘッダの先頭アドレス２３２）に出力されたプロトコルデータ（ＴＣＰヘッダ）である。
【００７２】
ＴＣＰヘッダは最終的には対応するセグメントの前に置かれるものであるが、本実施の形態では、トランスポート層では、各セグメントＳ１（２２０−１）、Ｓ２（２２０−２）、・・・に対応したＴＣＰヘッダＴＣＰＨ１（２４０−１）、ＴＣＰＨ２（２４０−２）、・・・がメモリ上の所与の記憶エリアに連続して格納され、そのＴＣＰヘッダ先頭アドレス及びＴＣＰヘッダサイズがそれぞれ管理テーブル及びセグメント情報レジスタに格納される。
【００７３】
図３（Ｃ）の２５０は、ネットワーク層の処理により生成され、メモリ上の所与の記憶エリア（ＩＰヘッダの先頭アドレス２５２）に出力されたプロトコルデータ（ＩＰヘッダ）である。ＩＰヘッダは最終的には対応するセグメントのＴＣＰヘッダの前に置かれるものであるが、本実施の形態では、ネットワーク層では、各セグメントＳ１（２２０−１）、Ｓ２（２２０−２）、・・・に対応したＩＰヘッダＩＰＨ１（２６０−１）、ＩＰ２（２６０−２）、・・・がメモリ上の所与の記憶エリアに連続して格納され、そのＩＰヘッダ先頭アドレス及びＩＰヘッダサイズがそれぞれ管理テーブル及びセグメント情報レジスタに格納される。
【００７４】
図３（Ｄ）の２７０は、データリンク層の処理により生成され、メモリ上の所与の記憶エリア（イーサネット（登録商標）ヘッダの先頭アドレス２７２）に出力されたプロトコルデータ（イーサネット（登録商標）ヘッダ）である。イーサネット（登録商標）ヘッダは最終的には対応するセグメントのＩＰヘッダの前に置かれるものであるが、本実施の形態では、データリンク層では、各セグメントＳ１（２２０−１）、Ｓ２（２２０−２）、・・・に対応したイーサネット（登録商標）ヘッダＩＰＨ１（２８０−１）、ＩＰ２（２８０−２）、・・・がメモリ上の所与の記憶エリアに連続して格納され、そのＩＰヘッダ先頭アドレス及びＩＰヘッダサイズがそれぞれ管理テーブル及びセグメント情報レジスタに格納される。
【００７５】
図４は本実施の形態のセグメントアドレスについて説明するための図である。
【００７６】
セグメントアドレス３００は、ソケット識別コード３１０、シーケンス識別コード３２０、階層識別コード３３０、セグメント内オフセット値３４０を含んで生成することができる。それぞれの情報は独立したハードウエアレジスタにより保持するようにしてもよい。
【００７７】
ソケット識別コード３１０は、管理テーブルと対応を取る為に必要となるのもで、対応する管理テーブルのソケット識別コードと同じ値がセットされる。
【００７８】
シーケンス識別コード３２０は、ＴＣＰヘッダに存在するシーケンス番号とは異なり、データの先頭から分割したセグメント順に、０，１，２，・・・・、と番号を付けたものであり、先頭から何番目のセグメントに対応する情報かがわかればよい。
【００７９】
階層識別コード３３０は、各階層で生成したものの格納エリアの先頭アドレスを識別する為のものである。プロトコルスタックにおいてセグメント分割を行ったあとに下位層が複数存在する場合に、下位層の特定層を識別できる領域として設けられたものである。ＯＳＩの階層を想定した場合、下位層識別ビットは３ビットで構成することが可能であるが、４ビット目の上位ビットを物理層の真上の階層を示すものとして定義するようにしてもよい。例えばセッション層以下の階層識別ビットを以下のように定義してもよい。
【００８０】
トランスポート層          ０００１ｂ
ネットワーク層            ００１０ｂ
データリンク層            １０１１ｂ
物理層                    識別ビット不要
オフセットアドレス３４０は対象となるエリアの先頭アドレスからの相対アドレスを示すものであり、使い方は適宜設定できる。なお対象となるエリアの先頭アドレスからの相対アドレスが特定可能な場合には指定しなくても良い。
【００８１】
それぞれの階層で生成するヘッダ、トレーラのサイズは既知である為、シーケンス識別コード最大値と、このサイズにより、各階層で必要とする格納エリアサイズを知る事ができる。
【００８２】
ソケット識別コード３１０で参照する管理テーブルを特定することができ、階層識別コード３３０で管理テーブル内のデータアドレスレジスタを特定し、格納エリアの先頭アドレスを読み出すができる。
【００８３】
またシーケンス識別コード３２０から格納エリア内の相対位置を特定できる。すなわちシーケンス識別コードが０であればデータの先頭（図３（Ａ）でいえばＳ１）に格納されており、シーケンス識別コードが１であればデータの先頭から２番目（図３（Ａ）でいえばＳ２）に格納されている。
【００８４】
またオフセット値から格納エリア内の必要データのアドレスを特定できるのでアクセス対象の物理アドレスを特定することができる。
【００８５】
図５はトランスポート層の処理について説明するためのフローチャート図である。
【００８６】
トランスポート層は、上位層（ここではセッション層）からデータを受け取り処理を開始する。
【００８７】
まず受け取ったデータを管理するための新規管理テーブルｎを生成し、管理テーブルソケット番号を書き込む（ステップＳ１０）。ここで管理テーブルは受け取ったデータ毎に設定される。なおソケット識別コードと管理テーブル番号（ここではｎ）は同じ番号として、ソケット識別コード値をｎとしてもよい。上位層から受け取ったデータの先頭アドレスを管理テーブルn・データアドレス＃0に格納する（ステップＳ２０）。
【００８８】
データをセグメントに分割し、分割数を管理テーブルのシーケンス識別コード最大値に、分割サイズをセグメントサイズにセットする（ステップＳ３０）。
【００８９】
トランスポート層で生成するＴＣＰヘッダ格納領域の先頭アドレスを管理テーブルn・データアドレス＃1に格納する（ステップＳ４０）。
【００９０】
ＴＣＰヘッダを生成し格納エリアに格納する（ステップＳ５０）。
【００９１】
管理テーブル及びセグメントアドレス生成情報を下位層に引き渡す（ステップＳ６０）。具体的には管理テーブル及びセグメントアドレス生成情報を特定するための情報（例えばアドレス等）を下位層に引き渡す。
【００９２】
図６はネットワーク層の処理について説明するためのフローチャート図である。
【００９３】
ネットワーク層は、上位層であるトランスポートからデータを受け取り処理を開始する。
【００９４】
ネットワーク層で作成するＩＰヘッダ格納領域の先頭アドレスを管理テーブルn・データアドレス＃2に格納する（ステップＳ１１０）。
【００９５】
ＩＰヘッダを生成し格納領域に格納する（ステップＳ１２０）。
【００９６】
管理テーブル及びセグメントアドレス生成情報を下位層に引き渡す（ステップＳ１３０）。具体的には管理テーブル及びセグメントアドレス生成情報を特定するための情報（例えばアドレス等）を下位層に引き渡す。
【００９７】
図７は、データリンク層の処理について説明するためのフローチャート図である。
【００９８】
データリンク層は、上位層であるネットワークからデータを受け取り処理を開始する。
【００９９】
データリンク層で生成するイーサネット（登録商標）ヘッダトレーラ格納領域の先頭アドレスを管理テーブルn・データアドレス＃3に格納する（ステップＳ２１０）。
【０１００】
イーサネット（登録商標）ヘッダを生成し格納領域に格納する（ステップＳ２２０）。
【０１０１】
イーサネット（登録商標）トレーラ(FCS)を生成し、格納領域に格納する（ステップＳ２３０）。
【０１０２】
フレーム生成の為のDMAの設定を行う（ステップＳ２４０）。
【０１０３】
図８は、フレーム生成の処理のフローチャート図である。
【０１０４】
各階層のヘッダ・トレーラ生成が終了すると以下の処理を行う（ステップＳ３１０）。
【０１０５】
PDCのソケット識別コードレジスタに送信するフレームのソケット識別コードを格納する（ステップＳ３２０）。
【０１０６】
送信開始指示を行う（ステップＳ３３０）。
【０１０７】
シーケンス識別コードレジスタに初期値を設定する（ステップＳ３４０）。
【０１０８】
まずデータリンク層のヘッダーの読み出しを行い、データバッファに格納する（ステップＳ３５０）。セグメントアドレスのソケット識別コードにソケット識別コードレジスタの値を設定し、シーケンス識別コードにシーケンス識別コードレジスタの値を設定し、階層識別コードにデータリンク層の階層識別コード（0x1011）をＨＷで自動的に設定し、データリンク層のヘッダーの読み出しを行う。  データユニットアドレス生成部はセグメントアドレスに基づき管理テーブルを参照して、対応する物理アドレスを出力し、当該物理アドレスのデータを読み出し、読み出したデータをデータバッファの所定位置（フレームデータに置けるデータリンク層のヘッダ位置）に格納する。
【０１０９】
次にネットワーク層のヘッダーの読み出しを行い、データバッファに格納する（ステップＳ３６０）。セグメントアドレスのソケット識別コードにソケット識別コードレジスタの値を設定し、シーケンス識別コードにシーケンス識別コードレジスタの値を設定し、階層識別コードにネットワーク層の階層識別コード（0x0010）をＨＷで自動的に設定し、ネットワーク層のヘッダーの読み出しを行う。
【０１１０】
データユニットアドレス生成部はセグメントアドレスに基づき管理テーブルを参照して、対応する物理アドレスを出力し、当該物理アドレスのデータを読み出し、読み出したデータをデータバッファの所定位置（フレームデータに置けるネットワーク層のヘッダ位置）に格納する。
【０１１１】
次にトランスポート層のヘッダーの読み出しを行い、データバッファに格納する（ステップＳ３７０）。セグメントアドレスのソケット識別コードにソケット識別コードレジスタの値を設定し、シーケンス識別コードにシーケンス識別コードレジスタの値を設定し、階層識別コードにトランスポート層の階層識別コード（0x0001）をＨＷで自動的に設定し、トランスポート層のヘッダーの読み出しを行う。
【０１１２】
データユニットアドレス生成部はセグメントアドレスに基づき管理テーブルを参照して、対応する物理アドレスを出力し、当該物理アドレスのデータを読み出し、読み出したデータをデータバッファの所定位置（フレームデータに置けるトランスポート層のヘッダ位置）に格納する。
【０１１３】
次にセグメントデータの読み出しを行い、データバッファに格納する（ステップＳ３８０）。セグメントアドレスのソケット識別コードにソケット識別コードレジスタの値を設定し、シーケンス識別コードにシーケンス識別コードレジスタの値を設定し、階層識別コードにセグメントデータを特定するための階層識別コード（0x0000）をＨＷで自動的に設定し、セグメントデータの読み出しを行う。
【０１１４】
データユニットアドレス生成部はセグメントアドレスに基づき管理テーブルを参照して、対応する物理アドレスを出力し、当該物理アドレスのデータを読み出し、読み出したデータをデータバッファの所定位置（フレームデータに置けるセグメントデータ位置）に格納する。
【０１１５】
次にデータリンク層のトレーラの読み出しを行い、データバッファに格納（ステップＳ３９０）。セグメントアドレスのソケット識別コードにソケット識別コードレジスタの値を設定し、シーケンス識別コードにシーケンス識別コードレジスタの値を設定し、階層識別コードにデータリンク層の階層識別コード（0x1011）をＨＷで自動的に設定し、データリンク層のトレーラの読み出しを行う。なおここではトレーラはデータリンクにのみ付くことを想定し、生成したトレーラは、ヘッダの次に置かれることを想定している。すなわちメモリ上には(ヘッダ・トレーラ)と連続しておかれている。
【０１１６】
データユニットアドレス生成部はセグメントアドレスに基づき管理テーブルを参照して、対応する物理アドレスを出力し、当該物理アドレスのデータを読み出し、読み出したデータをデータバッファの所定位置（フレームデータに置けるネットワーク層のトレーラ位置）に格納する。
データバッファのデータ（１フレーム分のデータ）をディストネーションアドレスレジスタで指定されさた転送先（送信バッファ）にＤＭＡ転送する（ステップＳ４００）。
【０１１７】
次にシーケンス識別コードレジスタの値をインクリメントする（ステップＳ４１０）。
【０１１８】
そしてシーケンス識別コードが最大値を超えているかどうか判断し超えていなければ、再びステップＳ３５０〜Ｓ４２０までの処理を繰り返す（ステップＳ４２０）。
【０１１９】
シーケンス識別コードが最大値を超えている場合には全てのフレームの転送終了後に割込みを発生し、終了を伝える（ステップＳ４３０）。
【０１２０】
なおトレーラは、FCS(FrameCheckSequence）処理であり、ステップＳ３５０〜Ｓ３８０で読み出したものをPDC中で計算するようにすれば、ステップＳ３９０とデータリンク層のトレーラ生成の処理をなくすことができる。
【０１２１】
２．マイクロコンピュータ
図９は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【０１２２】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＲＡＭ７１０，ＲＯＭ７２０、ＭＭＵ７３０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ５７０、割り込みコントローラ５８０、通信制御装置５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置６６０、プリスケーラ６７０、ＰＤＡモジュール７４０及びそれらを接続する汎用バス６８０、専用バス７５０等、各種ピン６９０等を含む。
【０１２３】
ＰＤＡションモジュール７４０は例えば図１で説明した構成を有する。
【０１２４】
３．電子機器
図１０に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【０１２５】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。  音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【０１２６】
図１１（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【０１２７】
図１１（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【０１２８】
図１１（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【０１２９】
本実施の形態のマイクロコンピュータを図１１（Ａ）〜図１１（Ｃ）の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【０１３０】
なお、本実施形態を利用できる電子機器としては、図１１（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【０１３１】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１３２】
また上記実施の形態ではプロトコル情報としておもにヘッダ情報とトレーラ情報を有する場合を例にとり説明したがこれに限られない。例えばヘッダ情報のみの場合でもよい。
【図面の簡単な説明】
【０１３３】
【図１】本実施の形態の集積回路装置（通信制御装置）について説明するための図である。
【図２】本実施の形態の管理テーブルについて説明するための図である。
【図３】図３（Ａ）〜（Ｄ）は、各階層で生成されるデータについて説明するための図である。
【図４】本実施の形態のセグメントアドレスについて説明するための図である。
【図５】トランスポート層の処理について説明するためのフローチャート図である。
【図６】ネットワーク層の処理について説明するためのフローチャート図である。
【図７】データリンク層の処理について説明するためのフローチャート図である。
【図８】フレーム生成の処理のフローチャート図である。
【図９】本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【図１０】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図１１】図１１（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【０１３４】
１０  ＩＣ（通信制御装置）、２０  ＰＤＣ、３０  ＰＤＣ制御部、４０  セグメントアドレス生成回路、５０  セグメントアドレス生成情報レジスタ、５１  ソケット識別コード、５２  最大シーケンス識別コード、５３  セグメントサイズ、５４  ヘッダサイズ＃１、５５  ヘッダサイズ＃２、５６  ヘッダサイズ＃３、５７  トレーラサイズ＃３、６２  ソケット識別コードレジスタ、６４  制御レジスタ、６６  ステータスレジスタ、７０  バス制御信号生成回路、８０  管理テーブル、８１  ソケット識別コード、８２  ソケット番号、８３  データアドレス＃０、８４  データアドレス＃１、８５  データアドレス＃２、８６  データアドレス＃３、９０  データユニットアドレス生成部、１００  セグメントアドレスレジスタ、１１０  ディストネーションアドレスレジスタ、１２０  データバッファ、１３０  セレクタ、１４０  バスインターフェース、１５０  ＣＰＵ、１６０  メモリ、１７０  通信制御部、１７２  送信バッファ、１８０  バス、５１０  ＣＰＵ、５２０  キャッシュメモリ５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  DMAコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  通信制御回路、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、７４０  ＰＤＣモジュール、７５０  専用バス、８００  電子機器、８１０  マイクロコンピュータ（ＡＳＩＣ）、８２０  入力部、８３０  メモリ、８４０  電源生成部８５０  ＬＣＤ、８６０  音出力部、９５０  携帯電話、９５２  ダイヤルボタン、９５４  ＬＣＤ、９５６  スピーカ、９６０  携帯型ゲーム装置、９６２  操作ボタン、９６４  十字キー、９６６  ＬＣＤ、９６８  スピーカ、９７０  パーソナルコンピュータ、９７２  キーボード、９７４  ＬＣＤ、９７６  音出力部
【図１】
2006148232.tif 000003
【図２】
2006148232.tif 000004
【図３】
2006148232.tif 000005
【図４】
2006148232.tif 000006
【図５】
2006148232.tif 000007
【図６】
2006148232.tif 000008
【図７】
2006148232.tif 000009
【図８】
2006148232.tif 000010
【図９】
2006148232.tif 000011
【図１０】
2006148232.tif 000012
【図１１】
2006148232.tif 000013