(57)【要約】【課題】回路規模を増大させること無く、チェックサム付加処理を実行することが可能な通信装置及び方法を提供する。【解決手段】通信装置１を構成するデータ生成部(例えば、ＣＰＵ１０)は、データを生成してメモリ２０に記憶する。チェックサム処理部３０は、メモリ２０から読み出したデータに対するチェックサムを算出すると共に、前記チェックサムを、メモリ２０に記憶されたデータ中の予め定められた位置に書き込む。データ送信部(例えば、送信処理部４２、ＭＡＣ処理回路５０、及びＰＨＹ処理回路６０)は、前記チェックサムが書き込まれたデータをメモリ２０から読み出し、ネットワークに対して送出する。【選択図】図１
2010057033.tif 000002
【特許請求の範囲】
【請求項１】
データを生成してメモリに記憶するデータ生成部と、
前記メモリから読み出したデータに対するチェックサムを算出すると共に、前記チェックサムを、前記メモリに記憶されたデータ中の予め定められた位置に書き込むチェックサム処理部と、
前記チェックサムが書き込まれたデータを前記メモリから読み出し、ネットワークに対して送出するデータ送信部と、
を備えた通信装置。
【請求項２】
請求項１において、
前記データ生成部が、前記メモリに、前記生成したデータの記憶情報を設定した第１のディスクリプタと、前記チェックサムの書込位置情報を設定した第２のディスクリプタとを記憶し、
前記チェックサム処理部が、前記第１のディスクリプタを参照して前記メモリからのデータ読出を行うと共に、前記第２のディスクリプタを参照して前記メモリへの前記チェックサムの書込を行うことを特徴とした通信装置。
【請求項３】
請求項２において、
前記記憶情報が、前記生成したデータの、サイズと前記メモリ上における記憶開始アドレスとを含み、
前記書込位置情報が、前記チェックサムの、サイズと前記メモリ上における書込開始アドレスとを含むことを特徴とした通信装置。
【請求項４】
請求項１において、
前記データ生成部が、前記データとして、ＩＰ(Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌヘッダ、ＴＣＰ(Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ)ヘッダ、及びペイロードを含むストリームデータと、前記ＴＣＰヘッダ及びペイロードに対するチェックサムの算出に用いるＴＣＰ擬似ヘッダとを生成して前記メモリに記憶し、
前記チェックサム処理部が、前記メモリから読み出したＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードに対するチェックサムをそれぞれ算出すると共に、前記ＩＰヘッダについてのチェックサムを反転して、前記メモリに記憶されたＩＰヘッダ中の予め定められた位置に書き込み、前記ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードについてのチェックサムの積算値を反転して、前記メモリに記憶されたＴＣＰヘッダ中の予め定められた位置に書き込み、
前記データ送信部が、前記ＩＰヘッダについてのチェックサム及び前記積算値各々の反転値が書き込まれたストリームデータを前記メモリから読み出し、前記ネットワークに対して送出することを特徴とした通信装置。
【請求項５】
請求項４において、
前記データ生成部が、前記メモリに、前記生成したＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードの記憶情報をそれぞれ設定したディスクリプタを含む第１のディスクリプタチェインと、前記ＩＰヘッダについてのチェックサムの反転値及び前記積算値の反転値の書込位置情報をそれぞれ設定したディスクリプタを含む第２のディスクリプタチェインとを記憶し、
前記チェックサム処理部が、前記第１のディスクリプタチェインを参照して前記メモリからのＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードの読出を行うと共に、前記第２のディスクリプタチェインを参照して前記メモリへの前記ＩＰヘッダについてのチェックサム及び前記積算値各々の反転値の書込を行うことを特徴とした通信装置。
【請求項６】
請求項５において、
各記憶情報が、前記生成したＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロード各々の、サイズと前記メモリ上における記憶開始アドレスとを含み、
各書込位置情報が、前記ＩＰヘッダについてのチェックサムの反転値及び前記積算値の反転値各々の、サイズと前記メモリ上における書込開始アドレスとを含むことを特徴とした通信装置。
【請求項７】
請求項５又は６において、
前記データ生成部が、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理部に対して前記積算値の算出又は前記書込のいずれを行うべきかを指示する制御情報をさらに設定することを特徴とした通信装置。
【請求項８】
請求項１において、
前記データ生成部が、前記データとして、第１のＩＰヘッダ及び第１のＴＣＰヘッダと少なくとも第１のペイロードを含む第１のデータストリームと、前記第１のペイロードを共用し且つ第２のＩＰヘッダ及び第２のＴＣＰヘッダを含む第２のデータストリームと、前記第１のＴＣＰヘッダ及び第１のペイロードに対するチェックサムの算出に用いる第１のＴＣＰ疑似ヘッダと、前記第２のＴＣＰヘッダ及び第１のペイロードに対するチェックサムの算出に用いる第２のＴＣＰ疑似ヘッダとを生成して前記メモリに記憶すると共に、前記メモリ上に前記第１のペイロードについてのチェックサムを記憶するための領域を形成し、
前記チェックサム処理部が、前記メモリから読み出した第１のＩＰヘッダ、第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードに対するチェックサムをそれぞれ算出し、前記第１のペイロードについてのチェックサムを前記領域に書き込み、前記第１のＩＰヘッダについてのチェックサムを反転して前記メモリに記憶された第１のＩＰヘッダ中の予め定められた位置に書き込み、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値を反転して前記メモリに記憶された第１のＴＣＰヘッダ中の予め定められた位置に書き込むと共に、前記メモリから読み出した第２のＩＰヘッダ、第２のＴＣＰヘッダ、及び第２のＴＣＰ疑似ヘッダに対するチェックサムをそれぞれ算出し、前記第２のＩＰヘッダについてのチェックサムを反転して前記メモリに記憶された第２のＩＰヘッダ中の予め定められた位置に書き込み、前記第２のＴＣＰヘッダについてのチェックサム、前記第２のＴＣＰ疑似ヘッダについてのチェックサム、及び前記領域から読み出した前記第１のペイロードについてのチェックサムの積算値を反転して前記メモリに記憶された第２のＴＣＰヘッダ中の予め定められた位置に書き込み、
前記データ送信部が、前記第１のＩＰヘッダについてのチェックサム並びに前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値各々の反転値が書き込まれた第１のストリームデータと、前記第２のＩＰヘッダについてのチェックサム並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値各々の反転値が書き込まれた第２のストリームデータとを前記メモリから読み出し、前記ネットワークに対して送出することを特徴とした通信装置。
【請求項９】
請求項８において、
前記データ生成部が、前記メモリに、前記生成した第１及び第２のＩＰヘッダ、第１及び第２のＴＣＰヘッダ、第１及び第２のＴＣＰ疑似ヘッダ、並びに第１のペイロードの記憶情報、並びに前記領域の領域情報をそれぞれ設定したディスクリプタを含む第１のディスクリプタチェインと、前記第１及び第２のＩＰヘッダについてのチェックサムの反転値、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値、並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値の書込位置情報、並びに前記領域情報をそれぞれ設定したディスクリプタを含む第２のディスクリプタチェインと、を記憶し、
前記チェックサム処理部が、前記第１のディスクリプタチェインを参照して前記メモリからの第１及び第２のＩＰヘッダ、第１及び第２のＴＣＰヘッダ、第１及び第２のＴＣＰ疑似ヘッダ、第１のペイロード、並びに前記第１のペイロードについてのチェックサムの読出を行うと共に、前記第２のディスクリプタチェインを参照して前記メモリへの前記第１及び第２のＩＰヘッダについてのチェックサム、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値、並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値各々の反転値の書込を行うことを特徴とした通信装置。
【請求項１０】
請求項９において、
各記憶情報が、前記生成した第１及び第２のＩＰヘッダ、第１及び第２のＴＣＰヘッダ、第１及び第２のＴＣＰ疑似ヘッダ、並びに第１のペイロード各々の、サイズと前記メモリ上における記憶開始アドレスとを含み、
前記領域情報が、前記領域のサイズと前記メモリ上における領域開始アドレスとを含み、
各書込位置情報が、前記第１及び第２のＩＰヘッダについてのチェックサムの反転値、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値、並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値各々の、サイズと前記メモリ上における書込開始アドレスとを含むことを特徴とした通信装置。
【請求項１１】
請求項９又は１０において、
前記データ生成部が、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理部に対して、前記積算値の算出又は前記書込のいずれを行うべきかを指示する第１の制御情報、並びに前記書込に際しての前記反転の要否を指示する第２の制御情報をさらに設定することを特徴とした通信装置。
【請求項１２】
請求項９又は１０において、
前記チェックサム処理部が、前記書込に際して前記反転を行い、
前記データ生成部が、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理部に対して、前記積算値の算出又は前記書込のいずれを行うべきかを指示する第１の制御情報、並びに前記読出に際しての前記反転値の再反転の要否を指示する第２の制御情報をさらに設定することを特徴とした通信装置。
【請求項１３】
請求項９又は１０において、
前記チェックサム処理部が、前記書込に際して前記反転を行い、
前記データ生成部が、前記反転値を再反転する再反転機能を有し、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理部に対して前記積算値の算出又は前記書込のいずれを行うべきかを指示する制御情報をさらに設定し、前記第２のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理部が前記再反転を要求するための制御情報領域を設けることを特徴とした通信装置。
【請求項１４】
データを生成してメモリに記憶するデータ生成ステップと、
前記メモリから読み出したデータに対するチェックサムを算出すると共に、前記チェックサムを、前記メモリに記憶されたデータ中の予め定められた位置に書き込むチェックサム処理ステップと、
前記チェックサムが書き込まれたデータを前記メモリから読み出し、ネットワークに対して送出するデータ送信ステップと、
を備えた通信方法。
【請求項１５】
請求項１４において、
前記データ生成ステップが、前記メモリに、前記生成したデータの記憶情報を設定した第１のディスクリプタと、前記チェックサムの書込位置情報を設定した第２のディスクリプタとを記憶し、
前記チェックサム処理ステップが、前記第１のディスクリプタを参照して前記メモリからのデータ読出を行うと共に、前記第２のディスクリプタを参照して前記メモリへの前記チェックサムの書込を行うことを特徴とした通信方法。
【請求項１６】
請求項１５において、
前記記憶情報に、前記生成したデータの、サイズと前記メモリ上における記憶開始アドレスとを含め、
前記書込位置情報に、前記チェックサムの、サイズと前記メモリ上における書込開始アドレスとを含めることを特徴とした通信方法。
【請求項１７】
請求項１４において、
前記データ生成ステップが、前記データとして、ＩＰ(Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌヘッダ、ＴＣＰ(Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ)ヘッダ、及びペイロードを含むストリームデータと、前記ＴＣＰヘッダ及びペイロードに対するチェックサムの算出に用いるＴＣＰ擬似ヘッダとを生成して前記メモリに記憶し、
前記チェックサム処理ステップが、前記メモリから読み出したＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードに対するチェックサムをそれぞれ算出すると共に、前記ＩＰヘッダについてのチェックサムを反転して、前記メモリに記憶されたＩＰヘッダ中の予め定められた位置に書き込み、前記ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードについてのチェックサムの積算値を反転して、前記メモリに記憶されたＴＣＰヘッダ中の予め定められた位置に書き込み、
前記データ送信ステップが、前記ＩＰヘッダについてのチェックサム及び前記積算値各々の反転値が書き込まれたストリームデータを前記メモリから読み出し、前記ネットワークに対して送出することを特徴とした通信方法。
【請求項１８】
請求項１７において、
前記データ生成ステップが、前記メモリに、前記生成したＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードの記憶情報をそれぞれ設定したディスクリプタを含む第１のディスクリプタチェインと、前記ＩＰヘッダについてのチェックサムの反転値及び前記積算値の反転値の書込位置情報をそれぞれ設定したディスクリプタを含む第２のディスクリプタチェインとを記憶し、
前記チェックサム処理ステップが、前記第１のディスクリプタチェインを参照して前記メモリからのＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロードの読出を行うと共に、前記第２のディスクリプタチェインを参照して前記メモリへの前記ＩＰヘッダについてのチェックサム及び前記積算値各々の反転値の書込を行うことを特徴とした通信方法。
【請求項１９】
請求項１８において、
各記憶情報に、前記生成したＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、及びペイロード各々の、サイズと前記メモリ上における記憶開始アドレスとを含め、
各書込位置情報に、前記ＩＰヘッダについてのチェックサムの反転値及び前記積算値の反転値各々の、サイズと前記メモリ上における書込開始アドレスとを含めることを特徴とした通信方法。
【請求項２０】
請求項１８又は１９において、
前記データ生成ステップが、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理ステップに対して前記積算値の算出又は前記書込のいずれを行うべきかを指示する制御情報をさらに設定することを特徴とした通信方法。
【請求項２１】
請求項１４において、
前記データ生成ステップが、前記データとして、第１のＩＰヘッダ及び第１のＴＣＰヘッダと少なくとも第１のペイロードを含む第１のデータストリームと、前記第１のペイロードを共用し且つ第２のＩＰヘッダ及び第２のＴＣＰヘッダを含む第２のデータストリームと、前記第１のＴＣＰヘッダ及び第１のペイロードに対するチェックサムの算出に用いる第１のＴＣＰ疑似ヘッダと、前記第２のＴＣＰヘッダ及び第１のペイロードに対するチェックサムの算出に用いる第２のＴＣＰ疑似ヘッダとを生成して前記メモリに記憶すると共に、前記メモリ上に前記第１のペイロードについてのチェックサムを記憶するための領域を形成し、
前記チェックサム処理ステップが、前記メモリから読み出した第１のＩＰヘッダ、第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードに対するチェックサムをそれぞれ算出し、前記第１のペイロードについてのチェックサムを前記領域に書き込み、前記第１のＩＰヘッダについてのチェックサムを反転して前記メモリに記憶された第１のＩＰヘッダ中の予め定められた位置に書き込み、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値を反転して前記メモリに記憶された第１のＴＣＰヘッダ中の予め定められた位置に書き込むと共に、前記メモリから読み出した第２のＩＰヘッダ、第２のＴＣＰヘッダ、及び第２のＴＣＰ疑似ヘッダに対するチェックサムをそれぞれ算出し、前記第２のＩＰヘッダについてのチェックサムを反転して前記メモリに記憶された第２のＩＰヘッダ中の予め定められた位置に書き込み、前記第２のＴＣＰヘッダについてのチェックサム、前記第２のＴＣＰ疑似ヘッダについてのチェックサム、及び前記領域から読み出した前記第１のペイロードについてのチェックサムの積算値を反転して前記メモリに記憶された第２のＴＣＰヘッダ中の予め定められた位置に書き込み、
前記データ送信ステップが、前記第１のＩＰヘッダについてのチェックサム並びに前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値各々の反転値が書き込まれた第１のストリームデータと、前記第２のＩＰヘッダについてのチェックサム並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値各々の反転値が書き込まれた第２のストリームデータとを前記メモリから読み出し、前記ネットワークに対して送出することを特徴とした通信方法。
【請求項２２】
請求項２１において、
前記データ生成ステップが、前記メモリに、前記生成した第１及び第２のＩＰヘッダ、第１及び第２のＴＣＰヘッダ、第１及び第２のＴＣＰ疑似ヘッダ、並びに第１のペイロードの記憶情報、並びに前記領域の領域情報をそれぞれ設定したディスクリプタを含む第１のディスクリプタチェインと、前記第１及び第２のＩＰヘッダについてのチェックサムの反転値、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値、並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値の書込位置情報、並びに前記領域情報をそれぞれ設定したディスクリプタを含む第２のディスクリプタチェインと、を記憶し、
前記チェックサム処理ステップが、前記第１のディスクリプタチェインを参照して前記メモリからの第１及び第２のＩＰヘッダ、第１及び第２のＴＣＰヘッダ、第１及び第２のＴＣＰ疑似ヘッダ、第１のペイロード、並びに前記第１のペイロードについてのチェックサムの読出を行うと共に、前記第２のディスクリプタチェインを参照して前記メモリへの前記第１及び第２のＩＰヘッダについてのチェックサム、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値、並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値各々の反転値の書込を行うことを特徴とした通信方法。
【請求項２３】
請求項２２において、
各記憶情報に、前記生成した第１及び第２のＩＰヘッダ、第１及び第２のＴＣＰヘッダ、第１及び第２のＴＣＰ疑似ヘッダ、並びに第１のペイロード各々の、サイズと前記メモリ上における記憶開始アドレスとを含め、
前記領域情報に、前記領域のサイズと前記メモリ上における領域開始アドレスとを含め、
各書込位置情報に、前記第１及び第２のＩＰヘッダについてのチェックサムの反転値、前記第１のＴＣＰヘッダ、第１のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値、並びに前記第２のＴＣＰヘッダ、第２のＴＣＰ疑似ヘッダ、及び第１のペイロードについてのチェックサムの積算値の反転値各々の、サイズと前記メモリ上における書込開始アドレスとを含めることを特徴とした通信方法。
【請求項２４】
請求項２１又は２２において、
前記データ生成ステップが、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理ステップに対して、前記積算値の算出又は前記書込のいずれを行うべきかを指示する第１の制御情報、並びに前記書込に際しての前記反転の要否を指示する第２の制御情報をさらに設定することを特徴とした通信方法。
【請求項２５】
請求項２１又は２２において、
前記チェックサム処理ステップが、前記書込に際して前記反転を行い、
前記データ生成ステップが、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理ステップに対して、前記積算値の算出又は前記書込のいずれを行うべきかを指示する第１の制御情報、並びに前記読出に際しての前記反転値の再反転の要否を指示する第２の制御情報をさらに設定することを特徴とした通信方法。
【請求項２６】
請求項２１又は２２において、
前記チェックサム処理ステップが、前記書込に際して前記反転を行い、
前記データ生成ステップが、前記反転値を再反転する再反転ステップを含み、前記第１のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理ステップに対して前記積算値の算出又は前記書込のいずれを行うべきかを指示する制御情報をさらに設定し、前記第２のディスクリプタチェイン中の各ディスクリプタに、前記チェックサム処理ステップが前記再反転を要求するための制御情報領域を設けることを特徴とした通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び方法に関し、特にインターネットやＬＡＮ(Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ)等のネットワークへ送出するデータに対して、誤り検出用のチェックサムを付加する通信装置及び方法に関する。
【背景技術】
【０００２】
上記のような通信装置では、近年のネット配信や動画転送等の高画質化に伴い、チェックサム付加処理を高速に行う必要がある。
【０００３】
例えば特許文献１に、ＴＣＰ(Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ)／ＩＰ(Ｉｎｅｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ)に則してチェックサム付加処理を行う通信装置が記載されている。この通信装置の構成例を図１０に示す。
【０００４】
図１０に示す通信装置１ｘは、ＣＰＵ(Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ)１０と、メインメモリ２０と、これらのＣＰＵ１０及びメインメモリ２０とのインタフェースとして機能するインタフェース回路１１０と、ＴＣＰ／ＩＰ送信処理回路１２０と、ＴＣＰ／ＩＰ受信処理回路１２０と、これらの回路１１０及び１２０に接続されたＭＡＣ(Ｍｅｄｉａ Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌ）処理回路５０と、この回路５０とＥｔｈｅｒｎｅｔ(登録商標)ケーブル２との間に接続された物理層処理回路(以下、ＰＨＹ処理回路)６０とを有している。ここで、ＣＰＵ１０、メインメモリ２０、及びインタフェース回路１１０は、バス７０により相互接続されている。また、バス７０には、ＣＰＵ１０により使用されるウェブブラウザプログラムやメールクライアントプログラム等が記録されたＨＤＤ(Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ)８０、ユーザ(図示せず)からの入力を受け付ける入力部９０、及びＣＰＵ１０による処理結果等をユーザへ表示する表示部１００が接続されている。
【０００５】
すなわち、この通信装置１ｘにおいては、図１０に点線で示す如く、ＭＡＣ処理回路５０及びＰＨＹ処理回路６０が、ＴＣＰ／ＩＰ階層モデルにおけるネットワークインタフェース層Ｌｔ１を担う。また、インタフェース回路１１０、ＴＣＰ／ＩＰ送信処理回路１２０、及びＴＣＰ／ＩＰ受信処理回路１３０が、インターネット層及びトランスポート層Ｌｔ２を担う。さらに、ＣＰＵ１０、メインメモリ２０、ＨＤＤ８０、入力部９０、及び表示部１００が、アプリケーション層Ｌｔ３を担う。
【０００６】
また、ＴＣＰ／ＩＰ送信処理回路１２０は、ＤＭＡ(Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ)処理部１２１と、チェックサム制御部１２２と、バッファメモリ１２３と、チェックサム算出部１２４とを備えている。さらに、チェックサム制御部１２２は、その内部にＩＰチェックサムレジスタ１２５を有する。
【０００７】
データ送出動作においては、まずＣＰＵ１０が、上記のウェブブラウザプログラムやメールクライアントプログラム等を実行して、メインメモリ２０内に図１１に示すＥｔｈｅｒｎｅｔフレームＦＲｅを生成する。
【０００８】
ここで、ＥｔｈｅｒｎｅｔフレームＦＲeは、ＩＰヘッダＨＤ１、ＴＣＰヘッダＨＤ２、及びペイロードＰＬを含むＴＣＰ／ＩＰストリームデータＳＤに、ＭＡＣヘッダＨＤ３とＦＣＳ(Ｆｒａｍｅ Ｃｈｅｃｋ Ｓｅｑｕｅｎｃｅ)とが付加されたフレームである。但し、ＦＣＳは、後述する如く、ＭＡＣ処理回路５０により生成・付加される。
【０００９】
また、ＩＰヘッダＨＤ１は、単独でチェックサムの算出対象となり、その内部に、バージョンと、ヘッダ長と、タイプと、パケット長(ＴＣＰ／ＩＰストリームデータ長)と、パケット識別番号と、フラグと、フラグメントオフセットと、ＴＴＬ(Ｔｉｍｅ Ｔｏ Ｌｉｖｅ)と、上位層プロコトル番号と、ＩＰチェックサムフィールドＦｃ１と、送信元ＩＰアドレスと、宛先ＩＰアドレスと、オプションフィールドとを有する。この内、ＩＰチェックサムフィールドＦｃ１は、ＩＰヘッダＨＤ１について算出したチェックサム(以下、ＩＰチェックサムと呼称する)ＣＳiを格納するためのフィールドである。
【００１０】
さらに、ＴＣＰヘッダＨＤ２は、ペイロードＰＬ及び図示のＴＣＰ疑似ヘッダＨＤ４と共にチェックサムの算出対象となり、その内部に、送信元ポート番号と、宛先ポート番号と、シーケンス番号と、Ａｃｋ番号と、オフセットと、Ｒｅｓｅｒｖｅｄ領域と、ＵＲＧ、ＡＣＫ、ＰＳＨ、ＲＳＴ、ＳＹＮ、及びＦＩＮの各種フラグと、Ｗｉｎｄｏｗサイズと、ＴＣＰチェックサムフィールドＦｃ２と、Ｕｒｇｅｎｔポインタと、オプションフィールドとを有する。この内、ＴＣＰチェックサムフィールドＦｃ２は、ＴＣＰヘッダＨＤ２、ペイロードＰＬ、及びＴＣＰ疑似ヘッダについて算出したチェックサム(以下、ＴＣＰチェックサムと呼称する)ＣＳｔを格納するためのフィールドである。
【００１１】
上記のＥｔｈｅｒｎｅｔフレームＦＲｅ(ＦＣＳを除く)がＣＰＵ１０によりメインメモリ２０内に生成されると、図１２に示すように、ＴＣＰ／ＩＰ送信処理回路１２０内のＤＭＡ処理部１２１が、インタフェース回路１１０を介して、メインメモリ２０からチェックサム制御部１２２へのフレームＦＲeのＤＭＡ転送を行う(ステップＳ１０１)。より具体的には、ＤＭＡ処理部１２１は、ＭＡＣヘッダＨＤ３、ＩＰヘッダＨＤ１、ＴＣＰヘッダＨＤ２、ペイロードＰＬ、及びＴＣＰ疑似ヘッダＨＤ４を、この順にチェックサム制御部１２２へ転送する。
【００１２】
まず、チェックサム制御部１２２は、ＤＭＡ処理部１２１からＭＡＣヘッダＨＤ３を受信する。この時、チェックサム制御部１２２は、受信したＭＡＣヘッダＨＤ３をバッファメモリ１２３に書き込む(ステップＳ１０２)。
【００１３】
次に、チェックサム制御部１２２は、ＤＭＡ処理部１２１からＩＰヘッダＨＤ１を受信する。この時、チェックサム制御部１２２は、受信したＩＰヘッダＨＤ１をバッファメモリ１２３に書き込む(ステップＳ１０３)と共に、チェックサム算出部１２４へ転送する(ステップＳ１０４)。チェックサム算出部１２４は、ＩＰチェックサムＣＳiを算出し(ステップＳ１０５)、チェックサム制御部１２２へ返送する(ステップＳ１０６）。そして、チェックサム制御部１２２は、ＩＰチェックサムＣＳiをＩＰチェックサムレジスタ１２５に格納する（ステップＳ１０７）。
【００１４】
次に、チェックサム制御部１２２は、ＤＭＡ処理部１２１からＴＣＰヘッダＨＤ２及びペイロードＰＬを受信する。この時、チェックサム制御部１２２は、受信したＴＣＰヘッダＨＤ２及びペイロードＰＬをバッファメモリ１２３に書き込む(ステップＳ１０８)と共に、チェックサム算出部１２４へ転送する(ステップＳ１０９)。
【００１５】
次に、チェックサム制御部１２２は、ＤＭＡ処理部１２１からＴＣＰ擬似ヘッダＨＤ４を受信する。この時、チェックサム制御部１２２は、受信したＴＣＰ擬似ヘッダＨＤ４をチェックサム算出部１２４へ転送する(ステップＳ１１０)。なお、ＴＣＰ疑似ヘッダＨＤ４は、ＴＣＰチェックサムＣＳｔの算出にのみ使用されるものである(すなわち、ネットワーク上には送出されないものである)ため、チェックサム制御部１２２は、上記のステップＳ１０３及びＳ１０８と異なり、ＴＣＰ擬似ヘッダＨＤ４のバッファメモリ１２３への書き込みを行わない。従って、バッファメモリ１２３には、ＭＡＣヘッダＨＤ３、ＩＰヘッダＨＤ１、ＴＣＰヘッダＨＤ２、及びペイロードＰＬが格納されることとなる。
【００１６】
そして、チェックサム算出部１２４は、ＴＣＰチェックサムＣＳｔを算出し(ステップＳ１１１)、チェックサム制御部１２２へ返送する(ステップＳ１１２）。
【００１７】
そして、チェックサム制御部１２２は、バッファメモリ１２３に記憶されているＭＡＣヘッダＨＤ３、ＩＰヘッダＨＤ１、ＴＣＰヘッダＨＤ２、及びペイロードＰＬを読み出し(ステップＳ１１３)、下位層(図１０に示したＭＡＣ処理回路５０)への順次転送を開始する。
【００１８】
すなわち、まず、チェックサム制御部１２２は、バッファメモリ１２３から読み出したＭＡＣヘッダＨＤ３をＭＡＣ処理回路５０へ転送する(ステップＳ１１４)。
【００１９】
次に、チェックサム制御部１２２は、バッファメモリ１２３から読み出したＩＰヘッダＨＤ１中のＩＰチェックサムフィールドＦｃ１に、ＩＰチェックサムレジスタ１２５に格納されているＩＰチェックサムＣＳiを挿入(書込)して、ＭＡＣ処理回路５０へ転送する(ステップＳ１１５)。
【００２０】
次に、チェックサム制御部１２２は、バッファメモリ１２３から読み出したＴＣＰヘッダＨＤ２中のＴＣＰチェックサムフィールドＦｃ２に、上記のステップＳ１１２で受信したＴＣＰチェックサムＣＳｔを挿入して、ＭＡＣ処理回路５０へ転送する(ステップＳ１１６)。
【００２１】
最後に、チェックサム制御部１２２は、バッファメモリ１２３から読み出したペイロードＰＬをＭＡＣ処理回路５０へ転送する(ステップＳ１１７)。
【００２２】
ＭＡＣ処理回路５０は、チェックサム制御部１２２から受信したＭＡＣヘッダＨＤ３、ＩＰヘッダＨＤ１、ＴＣＰヘッダＨＤ２、及びペイロードＰＬから成るフレームの末尾にＦＣＳを付加してＰＨＹ処理回路６０へ転送する。これにより、ＥｔｈｅｒｎｅｔフレームＦＲeが、ＰＨＹ処理回路６０を介してＥｔｈｅｒｎｅｔケーブル２(すなわち、ネットワーク)に対して送出されることとなる。
【特許文献１】特開２００６−３０３７６５号公報
【特許文献２】特開２００１−２６８１５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、上記の特許文献１では、ＴＣＰ／ＩＰ送信処理回路内にＴＣＰ／ＩＰストリームデータ分のバッファメモリ容量が必要であり、その回路規模が大きくなってしまうという課題があった。
【００２４】
なお、特許文献２には、上位層から受信したチェックサム対象データを記憶するためのバッファメモリと、チェックサム書込後のデータを記憶するためのバッファメモリとを個別に設け、以てチェックサム算出処理とデータ送出処理とを並列に実行する通信装置が記載されている。しかしながら、この通信装置では、チェックサム付加処理に際して上記の特許文献１よりも多くのバッファメモリ容量を必要とし、その回路規模がさらに大きくなってしまう。
【課題を解決するための手段】
【００２５】
本発明の一態様に係る通信装置は、データを生成してメモリに記憶するデータ生成部と、前記メモリから読み出したデータに対するチェックサムを算出すると共に、前記チェックサムを、前記メモリに記憶されたデータ中の予め定められた位置に書き込むチェックサム処理部と、前記チェックサムが書き込まれたデータを前記メモリから読み出し、ネットワークに対して送出するデータ送信部とを備える。
【００２６】
また、本発明の一態様に係る通信方法は、データを生成してメモリに記憶するデータ生成ステップと、前記メモリから読み出したデータに対するチェックサムを算出すると共に、前記チェックサムを、前記メモリに記憶されたデータ中の予め定められた位置に書き込むチェックサム処理ステップと、前記チェックサムが書き込まれたデータを前記メモリから読み出し、ネットワークに対して送出するデータ送信ステップと、を備える。
【００２７】
すなわち、本発明では、チェックサム付加処理の実行に際して別途バッファメモリを設ける必要が無いため、回路規模の増大を抑止することができる。
【発明の効果】
【００２８】
本発明によれば、回路規模を増大させること無くチェックサム付加処理を実行することができ、以て通信装置の小型化や低コスト化を図ることが可能となる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明に係る通信装置の実施の形態１〜４を、図１〜図９を参照して説明する。なお、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００３０】
まず、実施の形態１〜４に係る通信装置に共通の構成例及びその概略動作例を、図１及び図２を参照して説明する。
【００３１】
図１に示す通信装置１は、図１０に示したインタフェース回路１１０、ＴＣＰ／ＩＰ送信処理回路１２０、及びＴＣＰ／ＩＰ受信処理回路１３０に代えて、チェックサム処理部３０と、送受信処理部４０とを備えている点が通信装置１ｘと異なる。
【００３２】
チェックサム処理部３０は、インタフェース回路３１と、リードＤＭＡ処理部３２と、チェックサム算出部３３と、ライトＤＭＡ処理部３４とを備えている。インタフェース回路３１は、バス７０に接続され、ＣＰＵ１０及びメインメモリ２０とのインタフェースとして機能する。リードＤＭＡ処理部３２は、インタフェース回路３１を介して、ＣＰＵ１０により生成されたデータをメインメモリ２０から読み出す。チェックサム算出部３３は、リードＤＭＡ処理部３２により読み出されたデータに対するチェックサムを算出する。ライトＤＭＡ処理部３４は、チェックサム算出部３３により算出されたチェックサムを、インタフェース回路３１を介してメインメモリ２０に記憶されたデータ中の所定位置に書き込む。
【００３３】
また、送受信処理部４０は、インタフェース回路４１と、送信処理部４２と、受信処理部４３とを備えている。インタフェース回路４１は、バス７０に接続され、ＣＰＵ１０及びメインメモリ２０とのインタフェースとして機能する。また、送信処理部４２は、インタフェース回路４１を介して、上記のライトＤＭＡ処理部３４によりチェックサムが書き込まれたデータをメインメモリ２０から読み出す送信ＤＭＡ処理部４２１と、この送信ＤＭＡ処理部４２１により読み出されたデータを格納するための送信用ＦＩＦＯ(Ｆｉｒｓｔ Ｉｎ Ｆｉｒｓｔ Ｏｕｔ)バッファ４２２とを有する。送信用ＦＩＦＯバッファ４２２に格納されたデータは、ＭＡＣ処理回路５０により読み出された後、ＰＨＹ処理回路６０を介してＥｔｈｅｒｎｅｔケーブル２(すなわち、ネットワーク)に対して送出されることとなる。さらに、受信処理部４３は、ＭＡＣ処理回路５０及びＰＨＹ処理回路６０によりネットワークから受信されたデータを格納するための受信用ＦＩＦＯバッファ４３１と、このＦＩＦＯバッファ４３１からデータを読出し、インタフェース回路４１を介してＣＰＵ１０或いはメインメモリ２０へ転送する受信ＤＭＡ処理部４３２とを有する。
【００３４】
すなわち、通信装置１においては、図１に点線で示す如く、ＭＡＣ処理回路５０及びＰＨＹ処理回路６０が、ＯＳＩ参照モデルにおける物理層Ｌｏ１及びデータリンク層Ｌｏ２をそれぞれ担う。また、チェックサム処理部３０及び送受信処理部４０が、ネットワーク層Ｌｏ３を担う。さらに、ＣＰＵ１０、メインメモリ２０、ＨＤＤ８０、入力部９０、及び表示部１００が、アプリケーション層Ｌｏ７を担う。
【００３５】
なお、通信装置１は、有線ネットワークに限らず、無線ネットワークに適用することもできる。この場合、ＭＡＣ処理回路５０及びＰＨＹ処理回路６０に、各種の無線通信プロトコルに則して動作するものを用いれば良い。
【００３６】
また、チェックサム処理部３０によるメインメモリ２０に対する読出及び書込、並びに送信処理部４２によるメインメモリ２０に対する読出については、例えば、図２に示すデータ読出用ディスクリプタＲＤ及びチェックサム書込用ディスクリプタＷＤ、並びにフレーム(データ)送信用ディスクリプタＴＤを用いて簡易に行うことができる。
【００３７】
より具体的には、まずＣＰＵ１０が、チェックサム対象データＤＴを含むフレームＦＲを生成してメインメモリ２０に記憶する。なお、フレームＦＲ全体を、チェックサム対象としても良い(すなわち、ＦＲ＝ＤＴが成立しても良い)。この場合も、以降の説明は同様に適用される。
【００３８】
この時、ＣＰＵ１０は、メインメモリ２０に、データＤＴのサイズ(以下、データサイズと呼称する)Ｓｄと、データＤＴのメインメモリ２０上における記憶開始アドレス(以下、データアドレスと呼称する)Ａｄを設定したデータアドレスポインタＰｄとを含むデータ読出用ディスクリプタＲＤを記憶する。同時に、ＣＰＵ１０は、メインメモリ２０に、データＤＴ中のチェックサムフィールドＦｃのサイズ(以下、チェックサムサイズと呼称する)Ｓｃと、チェックサムフィールドＦｃのメインメモリ２０上におけるアドレス、すなわち、チェックサムの書込開始アドレス(以下、チェックサムフィールドアドレスと呼称する)Ａｃを設定したチェックサムフィールドアドレスポインタＰｃとを含むチェックサム書込用ディスクリプタＷＤを記憶する。
【００３９】
そして、チェックサム処理部３０内のリードＤＭＡ処理部３２は、データ読出用ディスクリプタＲＤを参照して、メインメモリ２０からチェックサム対象データＤＴを読み出す。より具体的には、リードＤＭＡ処理部３２は、データアドレスポインタＰｄが示すアドレスから、データサイズＳｄが示すサイズ分のデータを読み出す。リードＤＭＡ処理部３２は、読み出したデータＤＴをチェックサム算出部３３へ転送する。
【００４０】
そして、チェックサム算出部３３は、データＤＴに対するチェックサムを算出してライトＤＭＡ処理部３４へ転送する。
【００４１】
この時、ライトＤＭＡ処理部３４は、チェックサム書込用ディスクリプタＷＤを参照して、メインメモリ２０にチェックサム算出部３３から受信したチェックサムを書き込む。より具体的には、ライトＤＭＡ処理部３４は、チェックサムフィールドアドレスポインタＰｃが示すアドレスから始まるチェックサムサイズＳｃ分の領域(すなわち、チェックサムフィールドＦｃ)に、チェックサムを書き込む。
【００４２】
なお、チェックサム処理部３０によるメインメモリ２０に対する読出及び書込は、データ読出用ディスクリプタＲＤ及びチェックサム書込用ディスクリプタＷＤを用いたものに限らず、データサイズＳｄ、データアドレスＡｄ、チェックサムサイズＳｃ、及びチェックサムフィールドアドレスＡｃを、ＣＰＵ１０からチェックサム処理部３０に対して直接通知することにより行うようにしても良い。
【００４３】
このように、通信装置１においては、チェックサム付加処理の実行に際して、メインメモリ２０以外のバッファメモリの設置が不要である。また、図１０に示したＴＣＰ／ＩＰ送信処理回路１２０には、チェックサムフィールドＦｃの位置検出(判定)が必要であるという問題もあったが、通信装置１においては、チェックサム書込用ディスクリプタＷＤを用いること(或いは、データサイズＳｄ、データアドレスＡｄ、チェックサムサイズＳｃ、及びチェックサムフィールドアドレスＡｃを直接通知すること)により、チェックサムフィールドＦｃの位置検出(判定)が不要となる。
【００４４】
一方、ライトＤＭＡ処理部３４によるチェックサムの書込が完了すると、ＣＰＵ１０は、メインメモリ２０に、図２に点線で示す如くフレームＦＲのサイズ(以下、フレームサイズと呼称する)Ｓｆと、フレームＦＲのメインメモリ２０上における記憶開始アドレス(以下、フレームアドレスと呼称する)Ａｆを設定したフレームアドレスポインタＰｆとを含むフレーム送信用ディスクリプタＴＤを記憶する。
【００４５】
そして、送信処理部４２内の送信ＤＭＡ処理部４２１は、フレーム送信用ディスクリプタＴＤを参照して、メインメモリ２０からフレームＦＲを読み出す。より具体的には、送信ＤＭＡ処理部４２１は、フレームアドレスポインタＰｆが示すアドレスから、フレームサイズＳｆが示すサイズ分のデータを読み出す。送信ＤＭＡ処理部４２１は、読み出したフレームＦＲを送信用ＦＩＦＯバッファ４２２に格納する。なお、フレームＦＲ全体がチェックサム対象である場合(ＦＲ＝ＤＴが成立する場合)には、データ読出用ディスクリプタＲＤをそのままフレーム送信用ディスクリプタＴＤとして流用できる。すなわち、データ読出用ディスクリプタＲＤの参照によりフレームＦＲを読み出すことができ、フレーム送信用ディスクリプタＴＤの生成は不要である。
【００４６】
これにより、チェックサムが書き込まれたフレームＦＲが、ＭＡＣ処理回路５０、ＰＨＹ処理回路６０、及びＥｔｈｅｒｎｅｔケーブル２を介して、ネットワークに対して送出されることとなる。
【００４７】
なお、送信処理部４２によるメインメモリ２０に対する読出は、フレーム送信用ディスクリプタＴＤを用いたものに限らず、フレームサイズＳｆ及びフレームアドレスＡｆを、ＣＰＵ１０から送信処理部４２に対して直接通知することにより行うようにしても良い。或いは、フレームＦＲを、ＣＰＵ１０から送信処理部４２に対して直接転送するようにしても良い。
【００４８】
以下、実施の形態１〜４を、図３〜図９を参照して詳細に説明する。
【００４９】
[実施の形態１]
本実施の形態では、図１に示した通信装置１が、図１１に示したＥｔｈeｒｎｅｔフレームＦＲｅに対するチェックサム付加処理を実行する場合を扱う。
【００５０】
図３に示すように、まずＣＰＵ１０が、ＥｔｈｅｒｎｅｔフレームＦＲｅを生成してメインメモリ２０に記憶する(ステップＳ１)。この時、ＣＰＵ１０は、ＩＰヘッダＨＤ１中のＩＰチェックサムフィールドＦｃ１と、ＴＣＰヘッダＨＤ２中のＴＣＰチェックサムフィールドＦｃ２を"０"でクリア(初期化)する。また、ＣＰＵ１０は、ＴＣＰ疑似ヘッダＨＤ４を生成してメインメモリ２０に記憶する。
【００５１】
そして、ＣＰＵ１０は、メインメモリ２０に、図４に示す如くＩＰヘッダ読出用ディスクリプタＲＤ１、ＴＣＰヘッダ読出用ディスクリプタＲＤ２、ＴＣＰ疑似ヘッダ読出用ディスクリプタＲＤ３、及びペイロード読出用ディスクリプタＲＤ４から成るデータ読出用ディスクリプタチェインＲＣを記憶する(ステップＳ２)。
【００５２】
ここで、ＩＰヘッダ読出用ディスクリプタＲＤ１には、データサイズ＝"Ｓｄ１(ＩＰヘッダＨＤ１のサイズ)"と、データアドレスポインタＰｄ１＝"データアドレスＡｄ１(ＩＰヘッダＨＤ１の記憶開始アドレス)"とが設定される。ＴＣＰヘッダ読出用ディスクリプタＲＤ２には、データサイズ＝"Ｓｄ２(ＴＣＰヘッダＨＤ２のサイズ)"と、データアドレスポインタＰｄ２＝"データアドレスＡｄ２(ＴＣＰヘッダＨＤ２の記憶開始アドレス)"とが設定される。ＴＣＰ疑似ヘッダ読出用ディスクリプタＲＤ３には、データサイズ＝"Ｓｄ４(ＴＣＰ疑似ヘッダＨＤ４のサイズ)"と、データアドレスポインタＰｄ３＝"データアドレスＡｄ４(ＴＣＰ疑似ヘッダＨＤ４の記憶開始アドレス)"とが設定される。ペイロード読出用ディスクリプタＲＤ４には、データサイズ＝"Ｓｄ３(ペイロードＰＬのサイズ)"と、データアドレスポインタＰｄ４＝"データアドレスＡｄ３(ペイロードＰＬの記憶開始アドレス)"とが設定される。
【００５３】
また、本実施の形態では、ＣＰＵ１０は、読出用ディスクリプタＲＤ１〜ＲＤ４に、それぞれ、制御フラグＦＬＧ１＿１〜ＦＬＧ１＿４(以下、符号ＦＬＧ１で総称することがある)を設定する。この制御フラグＦＬＧ１は、チェックサム処理部３０に対して、当該読出用ディスクリプタを参照して読み出したデータについてのチェックサムを
メインメモリ２０へ書き込むべきこと、又は当該チェックサムを次の読出用ディスクリプタを参照して読み出したデータについてのチェックサムと積算すべきことのいずれかを指示するための制御情報である。制御フラグＦＬＧ１を設ける理由は、ＴＣＰチェックサムとして、ＴＣＰヘッダＨＤ１についてのチェックサム、ＴＣＰ疑似ヘッダＨＤ４についてのチェックサム、及びペイロードＰＬについてのチェックサムの積算値を求める必要があるためである。このため、ＣＰＵ１０は、制御フラグＦＬＧ１＿１及びＦＬＧ１＿４に"１(書込)"を設定する一方、制御フラグＦＬＧ１＿２及びＦＬＧ１＿３には"０(積算)"を設定する。
【００５４】
そして、ＣＰＵ１０は、メインメモリ２０に、ＩＰチェックサム書込用ディスクリプタＷＤ１及びＴＣＰチェックサム書込用ディスクリプタＷＤ２から成るチェックサム書込用ディスクリプタチェインＷＣを記憶する(ステップＳ３)。
【００５５】
ここで、ＩＰチェックサム書込用ディスクリプタＷＤ１には、データサイズ＝"Ｓｃ１(ＩＰチェックサムのサイズ)"と、チェックサムフィールドアドレスポインタＰｃ１＝"チェックサムフィールドアドレスＡｃ１(ＩＰヘッダＨＤ１中のチェックサムフィールドＦｃ１のアドレス)"とが設定される。ＴＣＰチェックサム書込用ディスクリプタＷＤ２には、データサイズ＝"Ｓｃ２(ＴＣＰチェックサムのサイズ)"と、チェックサムフィールドアドレスポインタＰｃ２＝"チェックサムフィールドアドレスＡｃ２(ＴＣＰヘッダＨＤ２中のチェックサムフィールドＦｃ２のアドレス)"とが設定される。
【００５６】
上記のステップＳ２及びＳ３の後、ＣＰＵ１０は、チェックサム処理部３０に対してチェックサム算出開始指示ＩＮＳ１を与える(ステップＳ４)。
【００５７】
指示ＩＮＳ１を受けたチェックサム処理部３０内のリードＤＭＡ処理部３２は、まずデータ読出用ディスクリプタチェインＲＣ中のＩＰヘッダ読出用ディスクリプタＲＤ１を参照して、ＩＰヘッダＨＤ１をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する(ステップＳ５)。この時、ＩＰヘッダ読出用ディスクリプタＲＤ１中の制御フラグＦＬＧ１＿１に"１(書込)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを反転して出力するよう指示する。これは、ＩＰにおいて、ＩＰチェックサムフィールドＦｃ１にＩＰチェックサムの反転値を格納することが規定されているためである。
【００５８】
チェックサム算出部３３は、受信したＩＰヘッダＨＤ１からＩＰチェックサムＣＳｉを算出し、その反転値をライトＤＭＡ処理部３４へ転送する(ステップＳ６)。
【００５９】
上記のステップＳ６と並行して、リードＤＭＡ処理部３２は、制御フラグＦＬＧ１＿１＝"１(書込)"が成立するため、ライトＤＭＡ処理部３４へ制御権を移す。ライトＤＭＡ処理部３４は、チェックサム書込用ディスクリプタチェインＷＣ中のＩＰチェックサム書込用ディスクリプタＷＤ１を参照して、ＩＰチェックサムＣＳｉの書込位置を認識し、以てチェックサムフィールドＦｃ１にＩＰチェックサムＣＳｉ(反転値)を書き込む(ステップＳ７)。ライトＤＭＡ処理部３４は、ＩＰチェックサムＣＳｉの書込後、リードＤＭＡ処理部３２へ制御権を移す。
【００６０】
リードＤＭＡ処理部３２は、次いでＴＣＰヘッダ読出用ディスクリプタＲＤ２を参照して、ＴＣＰヘッダＨＤ２をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する(ステップＳ８)。この時、ＴＣＰヘッダ読出用ディスクリプタＲＤ２中の制御フラグＦＬＧ１＿２に"０(積算)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを出力せずに次のデータについてのチェックサムと積算するよう指示する。
【００６１】
従って、チェックサム算出部３３は、受信したＴＣＰヘッダＨＤ２についてのチェックサムＣＳ１を算出した後、リードＤＭＡ処理部３２からの次のデータ入力を待機する(ステップＳ９)。
【００６２】
そして、リードＤＭＡ処理部３２は、ＴＣＰ疑似ヘッダ読出用ディスクリプタＲＤ３を参照して、ＴＣＰ疑似ヘッダＨＤ４をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する(ステップＳ１０)。この時、ＴＣＰ疑似ヘッダ読出用ディスクリプタＲＤ３中の制御フラグＦＬＧ１＿３に"０(積算)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを出力せずに次のデータについてのチェックサムと積算するよう指示する。
【００６３】
従って、チェックサム算出部３３は、受信したＴＣＰ疑似ヘッダＨＤ４についてのチェックサムＣＳ２を算出し(ステップＳ１１)、上記のステップＳ９で算出したチェックサムＣＳ１と積算した後、リードＤＭＡ処理部３２からの次のデータ入力を待機する(ステップＳ１２)。
【００６４】
そして、リードＤＭＡ処理部３２は、ペイロード読出用ディスクリプタＲＤ４を参照して、ペイロードＰＬをメインメモリ２０から読み出し、チェックサム算出部３３へ転送する(ステップＳ１３)。この時、ペイロード読出用ディスクリプタＲＤ４中の制御フラグＦＬＧ１＿４に"１(書込)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを反転して出力するよう指示する。これは、ＴＣＰにおいて、ＴＣＰチェックサムフィールドＦｃ２にＴＣＰチェックサムの反転値を格納することが規定されているためである。
【００６５】
チェックサム算出部３３は、受信したペイロードＰＬについてのチェックサムＣＳ３を算出し(ステップＳ１４)、上記のステップＳ１２で求めたチェックサムＣＳ１及びＣＳ２の積算値と積算してＴＣＰチェックサムＣＳｔを算出し、その反転値をライトＤＭＡ処理部３４へ転送する(ステップＳ１５)。
【００６６】
上記のステップＳ１５と並行して、リードＤＭＡ処理部３２は、制御フラグＦＬＧ１＿４＝"１(書込)"が成立するため、ライトＤＭＡ処理部３４へ制御権を移す。ライトＤＭＡ処理部３４は、ＴＣＰチェックサム書込用ディスクリプタＷＤ２を参照して、ＴＣＰチェックサムＣＳｔの書込位置を認識し、以てチェックサムフィールドＦｃ２にＴＣＰチェックサムＣＳｔ(反転値)を書き込む(ステップＳ１６)。
【００６７】
この後、ＣＰＵ１０は、ＩＰチェックサムＣＳｉ及びＴＣＰチェックサムＣＳｔが書き込まれたＥｔｈｅｒｎｅｔフレームＦＲｅのフレームサイズ及びフレームアドレスを設定したフレーム送信用ディスクリプタＴＤ(図２参照)をメインメモリ２０に記憶し(ステップＳ１７)、送信処理部４２に対してフレーム送信開始指示ＩＮＳ２を与える(ステップＳ１８)。
【００６８】
指示ＩＮＳ２を受けた送信処理部４２内の送信ＤＭＡ処理部４２１は、フレーム送信用ディスクリプタＴＤを参照して、フレームＦＲｅをメインメモリ２０から読み出し(ステップＳ１９)、送信用ＦＩＦＯバッファ４２２に格納する(ステップＳ２０)。これにより、フレームＦＲｅが、ＭＡＣ処理回路５０、ＰＨＹ処理回路６０、及びＥｔｈｅｒｎｅｔケーブル２を介して、ネットワークに対して送出されることとなる。
【００６９】
このように、ＩＰチェックサムＣＳｉ及びＴＣＰチェックサムＣＳｔの付加処理に際して、図１０に示したＴＣＰ／ＩＰ送信処理回路１２０で用いられていたＥｔｈｅｒｎｅｔフレームＦＲｅ分のバッファメモリ容量が不要となる。また、チェックサム書込用ディスクリプタチェインＷＣを用いることにより、ＩＰヘッダＨＤ１におけるチェックサムフィールドＦｃ１、及びＴＣＰヘッダＨＤ２におけるチェックサムフィールドＦｃ２の位置検出(判定)が不要となる。さらに、ＴＣＰ／ＩＰ送信処理回路１２０には、データ識別結果に応じたチェックサム算出範囲の判定(すなわち、データがＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰ疑似ヘッダ、又はペイロードのいずれであるかを識別し、その識別結果に応じてチェックサムの積算が必要か否かを判定すること)が必要であるという問題もあったが、このようなチェックサム算出範囲の判定は、データ読出用ディスクリプタチェインＲＣ中の読出用ディクリプタＲＤに制御フラグＦＬＧ１を設定することにより不要となる。従って、チェックサム処理部３０の回路規模は、ＴＣＰ／ＩＰ送信処理回路１２０の規模と比較して大幅に小さくなる。
【００７０】
また、ネットワークに対して複数のＥｔｈｅｒｎｅｔフレームを送出する場合、通信装置１は、上記のステップＳ１〜Ｓ２０を繰り返して実行し、以て各Ｅｔｈｅｒｎｅｔフレームについてのチェックサム付加処理を実行することができる。
【００７１】
より具体的には、ＣＰＵ１０は、上記のステップＳ１〜Ｓ３を繰り返して実行し、データ読出用ディスクリプタチェインＲＣ及びチェックサム書込用ディスクリプタチェインＷＣに、図５に示す如くＥｔｈｅｒｎｅｔフレームＦＲｅ１、ＦＲｅ２についての読出用ディスクリプタＲＤ(ＲＤ１１、ＲＤ２１、ＲＤ３１、ＲＤ４１、ＲＤ１２、ＲＤ２２、ＲＤ３２、ＲＤ４２)及び書込用ディスクリプタＷＤ(ＷＤ１１、ＷＤ２１、ＷＤ１２、ＷＤ２２)を設定する。チェックサム処理部３０は、上記のステップＳ５〜Ｓ１６を繰り返して実行し、各ＥｔｈｅｒｎｅｔフレームＦＲｅ１、ＦＲｅ２に対してチェックサムを付加する。送信処理部４２は、上記のステップＳ１９及びＳ２０を繰り返して実行し、各ＥｔｈｅｒｎｅｔフレームＦＲｅ１、ＦＲｅ２をネットワークに対して送出する。
【００７２】
また、通信装置１は、チェックサム付加処理を、ＴＣＰ／ＩＰ以外の通信プロトコルに対応して実行することもできる。その理由は、データ読出用ディスクリプタチェインＲＣ中の各読出用ディスクリプタに各チェックサム対象データのサイズ及び記憶開始アドレスを任意に設定することができるため、すなわち、各チェックサム対象データを、固定長に制限する必要が無く且つ不連続の領域に記憶することができるためである。例えば、ＵＤＰ(Ｕｓｅｒ Ｄａｔａｇｒａｍ Ｐｒｏｔｏｃｏｌ)を適用する場合、ＣＰＵ１０が、メインメモリ２０に、ＴＣＰヘッダ及びＴＣＰ疑似ヘッダ並びにこれらの読出用ディスクリプタに代えて、ＵＤＰヘッダ及びＵＤＰ疑似ヘッダ並びにこれらの読出用ディスクリプタを記憶し、且つチェックサム処理部３０が、メインメモリ２０に記憶されたＵＤＰヘッダ中のチェックサムフィールドにＵＤＰヘッダ、ＵＤＰ疑似ヘッダ、及びペイロードについてのチェックサムの積算値を書き込む際に、当該積算値を反転しないようにすれば良い。
【００７３】
[実施の形態２]
本実施の形態では、図１に示した通信装置１が、図６に示すＥｔｈeｒｎｅｔフレームＦＲｅ１及びＦＲｅ２に対するチェックサム付加処理を実行する場合を扱う。ここで、図６に示すように、フレームＦＲｅ１中のＴＣＰ／ＩＰストリームデータＳＤ１及びフレームＦＲｅ２中のＴＣＰ／ＩＰストリームデータＳＤ２は、ペイロードＰＬ２を共用するものとする。なお、ＴＣＰ／ＩＰストリームデータＳＤ１及びＳＤ２は、ペイロードとしてペイロードＰＬ２のみを含んでいても良いし、２つ以上のペイロードを共用しても良い。この場合も、以降の説明は同様に適用される。
【００７４】
動作においては、まずＣＰＵ１０が、ＥｔｈｅｒｎｅｔフレームＦＲｅ１及びＦＲｅ２を生成してメインメモリ２０に記憶する。
【００７５】
また、本実施の形態では、ＣＰＵ１０は、メインメモリ２０に、図７に示す如くペイロードＰＬ１〜ＰＬ３についてのチェックサムを記憶するための領域(以下、ペイロードチェックサム記憶領域と呼称する)ＡＲを形成する。この例では、ペイロードチェックサム記憶領域ＡＲに、ペイロードＰＬ１についてのチェックサムを記憶するための領域(以下、ＰＬ１用記憶領域と呼称する)ＡＲ１と、ペイロードＰＬ２についてのチェックサムを記憶するための領域(以下、ＰＬ２用記憶領域と呼称する)ＡＲ２と、ペイロードＰＬ３についてのチェックサムを記憶するための領域(以下、ＰＬ３用記憶領域と呼称する)ＡＲ３と、を連続に設けている。但し、領域ＡＲ１〜ＡＲ３は、必ずしも連続に設ける必要は無く、実施の形態３及び４で後述するように不連続に設けても良い。
【００７６】
そして、ＣＰＵ１０は、メインメモリ２０に、ペイロードＰＬ１〜ＰＬ３の読出用ディスクリプタＲＤ４１〜ＲＤ４３、ＩＰヘッダＨＤ１１の読出用ディスクリプタＲＤ１１、ＴＣＰヘッダＨＤ２１の読出用ディスクリプタＲＤ２１、ＴＣＰ疑似ヘッダＨＤ４１の読出用ディスクリプタＲＤ３１、ＰＬ１用記憶領域ＡＲ１及びＰＬ２用記憶領域ＡＲ２からの連続読出に用いるディクリプタＲＤａ１２、ＩＰヘッダＨＤ１２の読出用ディスクリプタＲＤ１２、ＴＣＰヘッダＨＤ２２の読出用ディスクリプタＲＤ２２、ＴＣＰ疑似ヘッダＨＤ４２の読出用ディスクリプタＲＤ３２、及びＰＬ２用記憶領域ＡＲ２及びＰＬ３用記憶領域ＡＲ３からの連続読出に用いるディクリプタＲＤａ２３から成るデータ読出用ディスクリプタチェインＲＣを記憶する。
【００７７】
ここで、読出用ディスクリプタＲＤａ１２には、領域サイズ＝"Ｓａ１＋Ｓａ２(領域ＡＲ１及びＡＲ２の合計サイズ)"と、ペイロードチェックサム記憶領域アドレスポインタＰａ１２＝"アドレスＡａ１(領域ＡＲ１の開始アドレス)"とが設定される。読出用ディスクリプタＲＤａ２３には、領域サイズ＝"Ｓａ２＋Ｓａ３(領域ＡＲ２及びＡＲ３の合計サイズ)"と、ペイロードチェックサム記憶領域アドレスポインタＰａ２３＝"アドレスＡａ２(領域ＡＲ２の開始アドレス)"とが設定される。なお、以降の説明においては、読出用ディスクリプタＲＤａ１２及びＲＤａ２３を符号ＲＤａで総称することがある。
【００７８】
また、ＣＰＵ１０は、読出用ディスクリプタＲＤ４１〜ＲＤ４３、ＲＤ１１、ＲＤ２１、ＲＤ３１、ＲＤａ１２、ＲＤ１２、ＲＤ２２、ＲＤ３２、及びＲＤａ２３に、上記の実施の形態１で説明した制御フラグＦＬＧ１に加えて、制御フラグＦＬＧ２＿４１〜ＦＬＧ２＿４３、ＦＬＧ２＿１１、ＦＬＧ２＿２１、ＦＬＧ２＿３１、ＦＬＧ２＿ａ１２、ＦＬＧ２＿１２、ＦＬＧ２＿２２、ＦＬＧ２＿３２、及びＦＬＧ２＿ａ２３(以下、符号ＦＬＧ２で総称することがある)をそれぞれ設定する。この制御フラグＦＬＧ２は、チェックサム処理部３０に対して、当該読出用ディスクリプタを参照して読み出したデータについてのチェックサムをメインメモリ２０に書き込む際に、当該チェックサムの反転が必要であるか否かを指示するための制御情報である。
【００７９】
そして、ＣＰＵ１０は、メインメモリ２０に、ＰＬ１用記憶領域ＡＲ１への書込に用いるディクリプタＷＤａ１と、ＰＬ２用記憶領域ＡＲ２への書込に用いるディクリプタＷＤａ２と、ＰＬ３用記憶領域ＡＲ３への書込に用いるディクリプタＷＤａ３と、ＩＰヘッダＨＤ１１についてのＩＰチェックサムの書込用ディスクリプタＷＤ１１と、ＴＣＰヘッダＨＤ２１、ＴＣＰ疑似ヘッダＨＤ４１、並びにペイロードＰＬ１及びＰＬ２についてのＴＣＰチェックサムの書込用ディスクリプタＷＤ２１と、ＩＰヘッダＨＤ１２についてのＩＰチェックサムの書込用ディスクリプタＷＤ１２と、ＴＣＰヘッダＨＤ２２、ＴＣＰ疑似ヘッダＨＤ４２、並びにペイロードＰＬ２及びＰＬ３についてのＴＣＰチェックサムの書込用ディスクリプタＷＤ２２とから成るチェックサム書込用ディスクリプタチェインＷＣを記憶する。
【００８０】
ここで、書込用ディスクリプタＷＤａ１には、領域サイズ＝"Ｓａ１(領域ＡＲ１のサイズ)"と、ペイロードチェックサム記憶領域アドレスポインタＰａ１＝"アドレスＡａ１"とが設定される。書込用ディスクリプタＷＤａ２には、領域サイズ＝"Ｓａ２(領域ＡＲ２のサイズ)"と、ペイロードチェックサム記憶領域アドレスポインタＰａ２＝"アドレスＡａ２"とが設定される。書込用ディスクリプタＷＤａ３には、領域サイズ＝"Ｓａ３(領域ＡＲ３のサイズ)"と、ペイロードチェックサム記憶領域アドレスポインタＰａ３＝"アドレスＡａ３(領域ＡＲ３の開始アドレス)"とが設定される。
【００８１】
この後、ＣＰＵ１０は、上記の実施の形態１と同様、チェックサム処理部３０に対してチェックサム算出開始指示ＩＮＳ１を与える。
【００８２】
指示ＩＮＳ１を受けたチェックサム処理部３０内のリードＤＭＡ処理部３２は、まずデータ読出用ディスクリプタチェインＲＣ中の読出用ディスクリプタＲＤ４１を参照して、ペイロードＰＬ１をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する。この時、読出用ディスクリプタＲＤ４１中の制御フラグＦＬＧ２＿４１に"１(非反転)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを反転せずに出力するよう指示する。
【００８３】
チェックサム算出部３３は、受信したペイロードＰＬ１についてのチェックサムを算出し、そのままライトＤＭＡ処理部３４へ転送する。
【００８４】
これと並行して、リードＤＭＡ処理部３２は、制御フラグＦＬＧ１＿４１＝"１(書込)"が成立するため、ライトＤＭＡ処理部３４へ制御権を移す。ライトＤＭＡ処理部３４は、チェックサム書込用ディスクリプタチェインＷＣ中の書込用ディスクリプタＷＤａ１を参照して、ＰＬ１用記憶領域ＡＲ１にペイロードＰＬ１についてのチェックサムを書き込む。この後、ライトＤＭＡ処理部３４は、リードＤＭＡ処理部３２へ制御権を移す。
【００８５】
同様にして、チェックサム処理部３０は、読出用ディスクリプタＲＤ４２及びＲＤ４３並びに書込用ディスクリプタＷＤａ２及びＷＤａ３を参照することにより、ＰＬ２用記憶領域ＡＲ２及びＰＬ３用記憶領域ＡＲ３に、ペイロードＰＬ２及びＰＬ３についてそれぞれ算出したチェックサムをそのまま書き込む。
【００８６】
これにより、各ペイロードについてのチェックサムが、ペイロードチェックサム記憶領域ＡＲに反転されずに格納されることとなる。ここで、ペイロードについてのチェックサムを反転しないのは、読出用ディスクリプタＲＤａを用いて当該チェックサムを読み出した際に、何ら変換を施すこと無くＴＣＰヘッダ及びＴＣＰ疑似ヘッダについてのチェックサムと積算できるようにするため(すなわち、各ペイロードについてのチェックサムを再利用可能にするため)である。
【００８７】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤ１１を参照して、ＩＰヘッダＨＤ１１をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する。この時、読出用ディスクリプタＲＤ１１中の制御フラグＦＬＧ２＿１１に"０(反転)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを反転して出力するよう指示する。
【００８８】
チェックサム算出部３３は、受信したＩＰヘッダＨＤ１１についてのＩＰチェックサムを算出し、その反転値をライトＤＭＡ処理部３４へ転送する。
【００８９】
これと並行して、リードＤＭＡ処理部３２は、制御フラグＦＬＧ１＿１１＝"１(書込)"が成立するため、ライトＤＭＡ処理部３４へ制御権を移す。ライトＤＭＡ処理部３４は、書込用ディスクリプタＷＤ１１を参照して、メインメモリ２０に記憶されたＩＰヘッダＨＤ１１中のチェックサムフィールドＦｃ１１に、ＩＰヘッダＨＤ１１についてのＩＰチェックサムの反転値を書き込む。この後、ライトＤＭＡ処理部３４は、リードＤＭＡ処理部３２へ制御権を移す。
【００９０】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤ２１及びＲＤ３１を順次参照して、ＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する。この時、制御フラグＦＬＧ１＿２１及びＦＬＧ１＿３１に共に"０(積算)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを出力せずに次のデータについてのチェックサムと積算するよう指示する。
【００９１】
従って、チェックサム算出部３３は、受信したＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１についてのチェックサムをそれぞれ算出した後、リードＤＭＡ処理部３２からの次のデータ入力を待機する。
【００９２】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤａ１２を参照して、ペイロードＰＬ１及びＰＬ２についてのチェックサムをＰＬ１用記憶領域ＡＲ１及びＰＬ２用記憶領域ＡＲ２から連続して読み出し、チェックサム算出部３３へ転送する。この時、読出用ディスクリプタＲＤａ１２中の制御フラグＦＬＧ２＿ａ１２に"０(反転)"が設定されているため、リードＤＭＡ処理部３２は、チェックサム算出部３３に対して、算出したチェックサムを反転して出力するよう指示する。
【００９３】
チェックサム算出部３３は、受信したペイロードＰＬ１及びＰＬ２についてのチェックサムを、ＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１についてのチェックサムと積算してＴＣＰチェックサムを算出し、その反転値をライトＤＭＡ処理部３４へ転送する。
【００９４】
これと並行して、リードＤＭＡ処理部３２は、制御フラグＦＬＧ１＿ａ１２＝"１(書込)"が成立するため、ライトＤＭＡ処理部３４へ制御権を移す。ライトＤＭＡ処理部３４は、書込用ディスクリプタＷＤ２１を参照して、メインメモリ２０に記憶されたＴＣＰヘッダＨＤ２１中のチェックサムフィールドＦｃ２１に、ＴＣＰヘッダＨＤ２１、ＴＣＰ疑似ヘッダＨＤ４１、並びにペイロードＰＬ１及びＰＬ２についてのＴＣＰチェックサムの反転値を書き込む。
【００９５】
これにより、図６に示したＥｔｈｅｒｎｅｔフレームＦＲｅ１に対するチェックサム付加処理が完了する。なお、ＣＰＵ１０が、メインメモリ２０に、ＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１並びにこれらの読出用ディスクリプタＲＤ２１及びＲＤ３１に代えて、ＵＤＰヘッダ及びＵＤＰ疑似ヘッダ並びにこれらの読出用ディスクリプタを記憶し、且つ読出用ディスクリプタＲＤａ１２中の制御フラグＦＬＧ２＿ａ１２に"１(非反転)"を設定すれば、チェックサム処理部３０に、ＵＤＰに則したチェックサム付加処理を実行させることもできる。
【００９６】
次いで、チェックサム処理部３０は、読出用ディスクリプタＲＤ１２、ＲＤ２２、ＲＤ３２、及びＲＤａ２３、並びに書込用ディスクリプタＷＤ１２及びＷＤ２２を参照することにより、上記と同様にしてＥｔｈｅｒｎｅｔフレームＦＲｅ２に対するチェックサム付加処理を実行する。
【００９７】
この後、送信処理部４２内の送信ＤＭＡ処理部４２１は、上記の実施の形態１と同様にして、ＥｔｈｅｒｎｅｔフレームＦＲｅ１及びＦＲｅ２をメインメモリ２０から読み出し、ネットワークに対して送出する。
【００９８】
このように、データ読出用ディスクリプタチェインＲＣ中の読出用ディクリプタＲＤに制御フラグＦＬＧ２をさらに設定することにより、フレーム同士間で共用されるペイロードについてのチェックサムを再利用することができる(すなわち、フレーム毎の冗長なチェックサムの算出が不要となる)。従って、フレーム生成効率の向上を図ることができる。
【００９９】
[実施の形態３]
本実施の形態では、図１に示した通信装置１が、上記の実施の形態２と同様、図６に示したＥｔｈeｒｎｅｔフレームＦＲｅ１及びＦＲｅ２に対するチェックサム付加処理を実行する場合を扱う。但し、上記の実施の形態２と異なり、チェックサム処理部３０は、メインメモリ２０への書込に際してペイロードについてのチェックサム、ＩＰチェックサム、及びＴＣＰチェックサムを無条件に反転する一方、メインメモリ２０からの読出に際してペイロードについてのチェックサムの反転値を再反転する。
【０１００】
以下、本実施の形態におけるチェック付加処理例を、図８を参照して説明する。なお、フレーム送出処理については上記の実施の形態２と同様であるため、その説明を省略する。
【０１０１】
図８に示すように、まずＣＰＵ１０が、ＥｔｈｅｒｎｅｔフレームＦＲｅ１及びＦＲｅ２を生成してメインメモリ２０に記憶する。この例では、上記の実施の形態２と異なり、ペイロードチェックサム記憶領域ＡＲに、ＰＬ１用記憶領域ＡＲ１、ＰＬ２用記憶領域ＡＲ２、及びＰＬ３用記憶領域ＡＲ３を不連続に設けている。なお、これらの領域ＡＲ１〜ＡＲ３は、上記の実施の形態２と同様に連続に設けても良い。
【０１０２】
この場合、ＣＰＵ１０は、データ読出用ディスクリプタチェインＲＣに、図７に示した読出用ディクリプタＲＤａ１２及びＲＤａ２３に代えて、ＰＬ１用記憶領域ＡＲ１からの読出に用いるディスクリプタＲＤａ１、ＰＬ２用記憶領域ＡＲ２からの読出に用いるディスクリプタＲＤａ２、及びＰＬ３用記憶領域ＡＲ３からの読出に用いるディスクリプタＲＤａ３を含める。
【０１０３】
ここで、読出用ディスクリプタＲＤａ１には、領域サイズ＝"Ｓａ１"と、ペイロードチェックサム記憶領域アドレスポインタＰａ１＝"アドレスＡａ１"とが設定される。読出用ディスクリプタＲＤａ２には、領域サイズ＝"Ｓａ２"と、ペイロードチェックサム記憶領域アドレスポインタＰａ２＝"アドレスＡａ２"とが設定される。読出用ディスクリプタＲＤａ３には、領域サイズ＝"Ｓａ３"と、ペイロードチェックサム記憶領域アドレスポインタＰａ３＝"アドレスＡａ３"とが設定される。
【０１０４】
また、ＣＰＵ１０は、読出用ディスクリプタＲＤ４１〜ＲＤ４３、ＲＤ１１、ＲＤ２１、ＲＤ３１、ＲＤａ１、ＲＤａ２、ＲＤ１２、ＲＤ２２、ＲＤ３２、ＲＤａ２、及びＲＤａ３に、上記の実施の形態２で説明した制御フラグＦＬＧ２に代えて、制御フラグＦＬＧ３＿４１〜ＦＬＧ３＿４３、ＦＬＧ３＿１１、ＦＬＧ３＿２１、ＦＬＧ３＿３１、ＦＬＧ３＿ａ１、ＦＬＧ３＿ａ２、ＦＬＧ３＿１２、ＦＬＧ３＿２２、ＦＬＧ３＿３２、ＦＬＧ３＿ａ２、及びＦＬＧ３＿ａ３(以下、符号ＦＬＧ３で総称することがある)をそれぞれ設定する。この制御フラグＦＬＧ３は、チェックサム処理部３０に対して、当該読出用ディスクリプタを参照してメインメモリ２０からデータを読み出す際に、当該データを再反転する必要であるか否かを指示するための制御情報である。
【０１０５】
そして、ＣＰＵ１０は、メインメモリ２０に、図７と同様のチェックサム書込用ディスクリプタチェインＷＣを記憶すると共に、チェックサム処理部３０に対してチェックサム算出開始指示ＩＮＳ１を与える。
【０１０６】
指示ＩＮＳ１を受けたチェックサム処理部３０内のリードＤＭＡ処理部３２は、データ読出用ディスクリプタチェインＲＣ中の読出用ディスクリプタＲＤ４１〜ＲＤ４３を順次参照して、ペイロードＰＬ１〜ＰＬ３をメインメモリ２０から読み出す。この時、読出用ディスクリプタＲＤ４１〜ＲＤ４３中の制御フラグＦＬＧ３＿４１〜ＦＬＧ３＿４３に共に"０(非再反転)"が設定されているため、リードＤＭＡ処理部３２は、読み出したペイロードＰＬ１〜ＰＬ３をそのままチェックサム算出部３３へ転送する。チェックサム算出部３３は、ペイロードＰＬ１〜ＰＬ３についてのチェックサムを順次算出し、各チェックサムの反転値をライトＤＭＡ処理部３４へ転送する。
【０１０７】
ライトＤＭＡ処理部３４は、チェックサム書込用ディスクリプタチェインＷＣ中の書込用ディスクリプタＷＤａ１〜ＷＤａ３を順次参照して、ＰＬ１用記憶領域ＡＲ１にペイロードＰＬ１についてのチェックサムの反転値を書き込み、ＰＬ２用記憶領域ＡＲ２にペイロードＰＬ２についてのチェックサムの反転値を書き込み、ＰＬ３用記憶領域ＡＲ３にペイロードＰＬ３についてのチェックサムの反転値を書き込む。
【０１０８】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤ１１を参照してＩＰヘッダＨＤ１１をメインメモリ２０から読み出す。この時、読出用ディスクリプタＲＤ１１中の制御フラグＦＬＧ３＿１１に"０(非再反転)"が設定されているため、リードＤＭＡ処理部３２は、読み出したＩＰヘッダＨＤ１１をそのままチェックサム算出部３３へ転送する。チェックサム算出部３３は、受信したＩＰヘッダＨＤ１１についてのＩＰチェックサムを算出し、その反転値をライトＤＭＡ処理部３４へ転送する。ライトＤＭＡ処理部３４は、書込用ディスクリプタＷＤ１１を参照して、メインメモリ２０に記憶されたＩＰヘッダＨＤ１１中のチェックサムフィールドＦｃ１１に、ＩＰヘッダＨＤ１１についてのＩＰチェックサムの反転値を書き込む。
【０１０９】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤ２１及びＲＤ３１を順次参照して、ＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１をメインメモリ２０から読み出す。この時、読出用ディスクリプタＲＤ２１及びＲＤ３１中の制御フラグＦＬＧ３＿２１及びＦＬＧ３＿３１に共に"０(非再反転)"が設定されているため、リードＤＭＡ処理部３２は、読み出したＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１をそのままチェックサム算出部３３へ転送する。また、制御フラグＦＬＧ１＿２１及びＦＬＧ１＿３１に共に"０(積算)"が設定されているため、チェックサム算出部３３は、受信したＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１についてのチェックサムをそれぞれ算出した後、リードＤＭＡ処理部３２からの次のデータ入力を待機する。
【０１１０】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤａ１を参照して、ペイロードＰＬ１についてのチェックサムをＰＬ１用記憶領域ＡＲ１から読み出す。この時、読出用ディスクリプタＲＤａ１中の制御フラグＦＬＧ３＿ａ１に"１(再反転)"が設定されているため、リードＤＭＡ処理部３２は、読み出したペイロードＰＬ１についてのチェックサムの反転値を再反転してチェックサム算出部３３へ転送する。また、制御フラグＦＬＧ１＿ａ１に"０(積算)"が設定されているため、チェックサム算出部３３は、再反転されたペイロードＰＬ１についてのチェックサムを保持し、リードＤＭＡ処理部３２からの次のデータ入力を待機する。
【０１１１】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤａ２を参照して、ペイロードＰＬ２についてのチェックサムをＰＬ２用記憶領域ＡＲ２から読み出す。この時、読出用ディスクリプタＲＤａ２中の制御フラグＦＬＧ３＿ａ２に"１(再反転)"が設定されているため、リードＤＭＡ処理部３２は、読み出したペイロードＰＬ２についてのチェックサムの反転値を再反転してチェックサム算出部３３へ転送する。チェックサム算出部３３は、再反転されたペイロードＰＬ２についてのチェックサムを、保持しているＴＣＰヘッダＨＤ２１、ＴＣＰ疑似ヘッダＨＤ４１、ペイロードＰＬ１についてのチェックサムと積算してＴＣＰチェックサムを算出し、その反転値をライトＤＭＡ処理部３４へ転送する。
【０１１２】
また、制御フラグＦＬＧ１＿ａ２＝"１(書込)"が成立するため、ライトＤＭＡ処理部３４は、書込用ディスクリプタＷＤ２１を参照して、メインメモリ２０に記憶されたＴＣＰヘッダＨＤ２１中のチェックサムフィールドＦｃ２１に、ＴＣＰヘッダＨＤ２１、ＴＣＰ疑似ヘッダＨＤ４１、並びにペイロードＰＬ１及びＰＬ２についてのＴＣＰチェックサムの反転値を書き込む。
【０１１３】
これにより、図６に示したＥｔｈｅｒｎｅｔフレームＦＲｅ１に対するチェックサム付加処理が完了する。
【０１１４】
次いで、チェックサム処理部３０は、読出用ディスクリプタＲＤ１２、ＲＤ２２、ＲＤ３２、ＲＤａ２、及びＲＤａ３、並びに書込用ディスクリプタＷＤ１２及びＷＤ２２を参照することにより、上記と同様にしてＥｔｈｅｒｎｅｔフレームＦＲｅ２に対するチェックサム付加処理を実行する。
【０１１５】
このように、制御フラグＦＬＧ２に代えて制御フラグＦＬＧ３を用いることによっても、フレーム同士間で共用されるペイロードについてのチェックサムを再利用することができ、以て、上記の実施の形態２と同様にフレーム生成効率の向上を図ることができる。
【０１１６】
[実施の形態４]
本実施の形態では、図１に示した通信装置１が、上記の実施の形態２及び３と同様、図６に示したＥｔｈeｒｎｅｔフレームＦＲｅ１及びＦＲｅ２に対するチェックサム付加処理を実行する場合を扱う。チェックサム処理部３０は、上記の実施の形態３と同様、メインメモリ２０への書込に際してペイロードについてのチェックサム、ＩＰチェックサム、及びＴＣＰチェックサムを無条件に反転するが、上記の実施の形態３と異なり、ＣＰＵ１０に対して、メインメモリ２０へ書き込んだペイロードについてのチェックサムの反転値の再反転を要求する。
【０１１７】
以下、本実施の形態におけるチェック付加処理例を、図９を参照して説明する。なお、フレーム送出処理については上記の実施の形態２と同様であるため、その説明を省略する。
【０１１８】
図９に示すように、まずＣＰＵ１０が、ＥｔｈｅｒｎｅｔフレームＦＲｅ１及びＦＲｅ２を生成してメインメモリ２０に記憶する。この例では、上記の実施の形態３と同様、ペイロードチェックサム記憶領域ＡＲに、ＰＬ１用記憶領域ＡＲ１、ＰＬ２用記憶領域ＡＲ２、及びＰＬ３用記憶領域ＡＲ３を不連続に設けている。なお、これらの領域ＡＲ１〜ＡＲ３は、上記の実施の形態２と同様に連続に設けても良い。
【０１１９】
また、上記の実施の形態３と異なり、ＣＰＵ１０は、データ読出用ディスクリプタチェインＲＣ中の各読出用ディスクリプタには、図８に示した制御フラグＦＬＧ３は設定しない。その代わりに、ＣＰＵ１０は、チェックサム書込用ディスクリプタチェインＷＣ中の書込用ディスクリプタＷＤａ１〜ＷＤａ３、ＷＤ１１、ＷＤ２１、ＷＤ１２、及びＷＤ２２に、制御フラグＦＬＧ４＿ａ１〜ＦＬＧ４＿ａ３、ＦＬＧ４＿１１、ＦＬＧ４＿２１、ＦＬＧ４＿１２、及びＦＬＧ４＿２２(以下、符号ＦＬＧ４で総称することがある)をそれぞれ設定する。この制御フラグＦＬＧ４は、チェックサム処理部３０からＣＰＵ１０に対して、当該書込用ディスクリプタに対応するデータの反転値の再反転を要求するために用いる。ＣＰＵ１０は、チェックサム書込用ディスクリプタチェインＷＣの記憶時、制御フラグＦＬＧを"０(非再反転)"に設定する。チェックサム処理部３０は、再反転を要求する場合、制御フラグＦＬＧ４に"１(再反転)"を設定する。
【０１２０】
そして、ＣＰＵ１０は、チェックサム処理部３０に対してチェックサム算出開始指示ＩＮＳ１を与える。
【０１２１】
指示ＩＮＳ１を受けたチェックサム処理部３０内のリードＤＭＡ処理部３２は、データ読出用ディスクリプタチェインＲＣ中の読出用ディスクリプタＲＤ４１〜ＲＤ４３を順次参照して、ペイロードＰＬ１〜ＰＬ３をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する。チェックサム算出部３３は、ペイロードＰＬ１〜ＰＬ３についてのチェックサムを順次算出し、各チェックサムの反転値をライトＤＭＡ処理部３４へ転送する。
【０１２２】
ライトＤＭＡ処理部３４は、チェックサム書込用ディスクリプタチェインＷＣ中の書込用ディスクリプタＷＤａ１〜ＷＤａ３を順次参照して、ＰＬ１用記憶領域ＡＲ１にペイロードＰＬ１についてのチェックサムの反転値を書き込み、ＰＬ２用記憶領域ＡＲ２にペイロードＰＬ２についてのチェックサムの反転値を書き込み、ＰＬ３用記憶領域ＡＲ３にペイロードＰＬ３についてのチェックサムの反転値を書き込む。
【０１２３】
この時、ライトＤＭＡ処理部３４は、制御フラグＦＬＧ４＿ａ１〜ＦＬＧ４＿ａ３をそれぞれ"１(再反転)"に設定する。この制御ＦＬＧ４＿ａ１〜ＦＬＧ４＿ａ３の設定による割り込みを検知すると、ＣＰＵ１０は、ペイロードチェックサム記憶領域ＡＲからペイロードＰＬ１〜ＰＬ３についてのチェックサムの反転値をそれぞれ読出すと共に、チェックサム処理部３０で再利用可能なように、読み出した各反転値を再反転してペイロードチェックサム記憶領域ＡＲに書き戻す。
【０１２４】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤ１１を参照してＩＰヘッダＨＤ１１をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する。チェックサム算出部３３は、受信したＩＰヘッダＨＤ１１についてのＩＰチェックサムを算出し、その反転値をライトＤＭＡ処理部３４へ転送する。ライトＤＭＡ処理部３４は、書込用ディスクリプタＷＤ１１を参照して、メインメモリ２０に記憶されたＩＰヘッダＨＤ１１中のチェックサムフィールドＦｃ１１に、ＩＰヘッダＨＤ１１についてのＩＰチェックサムの反転値を書き込む。
【０１２５】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤ２１及びＲＤ３１を順次参照して、ＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１をメインメモリ２０から読み出し、チェックサム算出部３３へ転送する。この時、制御フラグＦＬＧ１＿２１及びＦＬＧ１＿３１に共に"０(積算)"が設定されているため、チェックサム算出部３３は、受信したＴＣＰヘッダＨＤ２１及びＴＣＰ疑似ヘッダＨＤ４１についてのチェックサムをそれぞれ算出した後、リードＤＭＡ処理部３２からの次のデータ入力を待機する。
【０１２６】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤａ１を参照して、再反転されたペイロードＰＬ１についてのチェックサムをＰＬ１用記憶領域ＡＲ１から読み出し、チェックサム算出部３３へ転送する。この時、制御フラグＦＬＧ１＿ａ１に"０(積算)"が設定されているため、チェックサム算出部３３は、再反転されたペイロードＰＬ１についてのチェックサムを保持し、リードＤＭＡ処理部３２からの次のデータ入力を待機する。
【０１２７】
そして、リードＤＭＡ処理部３２は、読出用ディスクリプタＲＤａ２を参照して、再反転されたペイロードＰＬ２についてのチェックサムをＰＬ２用記憶領域ＡＲ２から読み出し、チェックサム算出部３３へ転送する。チェックサム算出部３３は、再反転されたペイロードＰＬ２についてのチェックサムを、保持しているＴＣＰヘッダＨＤ２１、ＴＣＰ疑似ヘッダＨＤ４１、ペイロードＰＬ１についてのチェックサムと積算してＴＣＰチェックサムを算出し、その反転値をライトＤＭＡ処理部３４へ転送する。
【０１２８】
この時、制御フラグＦＬＧ１＿ａ２＝"１(書込)"が成立するため、ライトＤＭＡ処理部３４は、書込用ディスクリプタＷＤ２１を参照して、メインメモリ２０に記憶されたＴＣＰヘッダＨＤ２１中のチェックサムフィールドＦｃ２１に、ＴＣＰヘッダＨＤ２１、ＴＣＰ疑似ヘッダＨＤ４１、並びにペイロードＰＬ１及びＰＬ２についてのＴＣＰチェックサムの反転値を書き込む。
【０１２９】
これにより、図６に示したＥｔｈｅｒｎｅｔフレームＦＲｅ１に対するチェックサム付加処理が完了する。
【０１３０】
次いで、チェックサム処理部３０は、読出用ディスクリプタＲＤ１２、ＲＤ２２、ＲＤ３２、ＲＤａ２、及びＲＤａ３、並びに書込用ディスクリプタＷＤ１２及びＷＤ２２を参照することにより、上記と同様にしてＥｔｈｅｒｎｅｔフレームＦＲｅ２に対するチェックサム付加処理を実行する。
【０１３１】
このように、ＣＰＵ１０がペイロードについてのチェックサムの反転値の再反転を実行する場合であっても、制御フラグＦＬＧ４を用いることにより、フレーム毎の冗長な割り込みの発生を抑止することができる。このため、ＣＰＵ１０の処理負荷を軽減することができる。
【０１３２】
なお、上記の実施の形態によって本発明は限定されるものではなく、特許請求の範囲の記載に基づき、当業者によって種々の変更が可能なことは明らかである。
【図面の簡単な説明】
【０１３３】
【図１】本発明に係る通信装置の実施の形態１〜４に共通の構成例を示したブロック図である。
【図２】本発明に係る通信装置の実施の形態１〜４に用いるディスクリプタの概略構成例を示した図である。
【図３】本発明に係る通信装置の実施の形態１におけるフレーム送出動作例を示したシーケンス図である。
【図４】本発明に係る通信装置の実施の形態１に用いるディクリプタチェインの一の構成例を示した図である。
【図５】本発明に係る通信装置の実施の形態１に用いるディクリプタチェインの他の構成例を示した図である。
【図６】本発明に係る通信装置の実施の形態２〜４において送出されるフレームの構成例を示した図である。
【図７】本発明に係る通信装置の実施の形態２に用いるディクリプタチェインの構成例を示した図である。
【図８】本発明に係る通信装置の実施の形態３に用いるディクリプタチェインの構成例を示した図である。
【図９】本発明に係る通信装置の実施の形態４に用いるディクリプタチェインの構成例を示した図である。
【図１０】従来の通信装置の構成例を示したブロック図である。
【図１１】Ｅｔｈｅｒｎｅｔフレームの一般的な構成例を示した図である。
【図１２】従来の通信装置の動作例を示したシーケンス図である。
【符号の説明】
【０１３４】
１  通信装置
２  Ｅｔｈｅｒｎｅｔケーブル
１０  ＣＰＵ
２０  メインメモリ
３０  チェックサム処理部
３１, ４１  インタフェース回路
３２  リードＤＭＡ処理部
３３  チェックサム算出部
３４  ライトＤＭＡ処理部
４０  送受信処理部
４２  送信処理部
４３  受信処理部
５０  ＭＡＣ処理回路
６０  ＰＨＹ処理回路
７０  バス
８０  ＨＤＤ
９０  入力部
１００  表示部
４２１  送信ＤＭＡ処理部
４２２  送信用ＦＩＦＯバッファ
４３１  受信用ＦＩＦＯバッファ
４３２  受信ＤＭＡ処理部
ＲＣ  データ読出用ディスクリプタチェイン
ＷＣ  チェックサム書込用ディスクリプタチェイン
ＲＤ  データ読出用ディスクリプタ
ＲＤ１  ＩＰヘッダ読出用ディスクリプタ
ＲＤ２  ＴＣＰヘッダ読出用ディスクリプタ
ＲＤ３  ＴＣＰ疑似ヘッダ読出用ディスクリプタ
ＲＤ４  ペイロード読出用ディスクリプタ
ＷＤ  チェックサム書込用ディスクリプタ
ＷＤ１  ＩＰチェックサム書込用ディスクリプタ
ＷＤ２  ＴＣＰチェックサム書込用ディスクリプタ
ＴＤ  フレーム送信用ディスクリプタ
Ａｆ  フレームアドレス
Ａｄ  データアドレス
Ａｃ  チェックサムフィールドアドレス
Ｓｆ  フレームサイズ
Ｓｄ  データサイズ
Ｓｃ  チェックサムサイズ
Ｐｆ  フレームアドレスポインタ
Ｐｄ  データアドレスポインタ
Ｐｃ  チェックサムフィールドアドレスポインタ
ＦＲ  フレーム
ＦＲｅ  Ｅｔｈｅｒｎｅｔフレーム
ＤＴ  チェックサム対象データ
ＳＤ  ＴＣＰ／ＩＰストリームデータ
ＨＤ１  ＩＰヘッダ
ＨＤ２  ＴＣＰヘッダ
ＨＤ３  ＭＡＣヘッダ
ＨＤ４  ＴＣＰ疑似ヘッダ
ＰＬ  ペイロード
Ｆｃ  チェックサムフィールド
Ｆｃ１  ＩＰチェックサムフィールド
Ｆｃ２  ＴＣＰチェックサムフィールド
ＣＳｉ  ＩＰチェックサム
ＣＳｔ  ＴＣＰチェックサム
ＦＬＧ１〜ＦＬＧ４  制御フラグ
ＡＲ  ペイロードチェックサム記憶領域
Ａａ  領域アドレス
Ｐａ  ペイロードチェックサム記憶領域アドレスポインタ
ＩＮＳ１  チェックサム算出開始指示
ＩＮＳ２  フレーム送信開始指示
【図１】
2010057033.tif 000003
【図２】
2010057033.tif 000004
【図３】
2010057033.tif 000005
【図４】
2010057033.tif 000006
【図５】
2010057033.tif 000007
【図６】
2010057033.tif 000008
【図７】
2010057033.tif 000009
【図８】
2010057033.tif 000010
【図９】
2010057033.tif 000011
【図１０】
2010057033.tif 000012
【図１１】
2010057033.tif 000013
【図１２】
2010057033.tif 000014