(57)【要約】【課題】効率的な複製処理を行う。【解決手段】通信装置は、複製元データを複製して複製先における複数の複製先領域に転送する際に、該複製元データを、該複数の複製先領域のそれぞれに対して逐次転送する第１の転送モード、または、該複製元データを、該複数の複製先領域に対して並列に転送する第２の転送モードを、転送モードとして決定し、該転送モードに応じて、該複製元データを複製して該複数の複製先領域に転送する。【選択図】図８
2019008545.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
複製元データを複製して複製先における複数の複製先領域に転送する際に、前記複製元データを、前記複数の複製先領域のそれぞれに対して逐次転送する第１の転送モード、または、前記複製元データを、前記複数の複製先領域に対して並列に転送する第２の転送モードを、転送モードとして決定する決定手段と、
前記決定手段により決定された前記転送モードに応じて、前記複製元データを複製して前記複数の複製先領域に転送する転送手段と、
を有することを特徴とする通信装置。
【請求項２】
前記転送手段は、メモリに格納されている前記複製元データをバッファを介して前記複数の複製先領域に転送することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記転送手段は、前記メモリから前記複製元データを読み出して前記バッファに格納するリード処理手段と、前記バッファから前記複製元データを前記複数の複製先領域に転送するライト処理手段とを有することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記決定手段は、前記バッファのサイズが前記複製元データのサイズより大きいか等しい場合、前記第２の転送モードを前記転送モードとして決定することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記転送手段は、バッファに格納されている前記複製元データを前記複数の複製先領域に転送することを特徴とする請求項１に記載の通信装置。
【請求項６】
前記決定手段は、前記転送手段による転送に低レイテンシが要求されていると判定した場合に、前記第１の転送モードを前記転送モードとして決定することを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記決定手段が、前記複製先が前記複製元データを格納する十分な領域を有さないと判定した場合に、前記第１の転送モードを前記転送モードとして決定することを特徴とする請求項１から６のいずれか１項に記載の通信装置。
【請求項８】
前記転送手段による転送の進捗に応じて割込通知信号を出力する割込通知手段と、  
前記割込通知信号を受信することに応じて、前記複数の複製先領域の少なくともいずれかに転送された前記複製元データに対して所定のプロトコル処理を行うプロトコル処理手段と、を更に有し、
前記決定手段が、前記転送手段による転送に低レイテンシが要求されていると判定した場合に、前記割込通知手段は、前記複数の複製先領域のそれぞれに対して前記複製元データの転送が完了する度に、前記割込通知信号を出力することを特徴とする請求項１から７のいずれか１項に記載の通信装置。
【請求項９】
前記決定手段が、前記通信装置が低消費電力モードで動作すると判定した場合に、前記割込通知手段は、前記複数の複製先領域に対する前記複製元データの転送が完了した後に、前記割込通知信号を送信することを特徴とする請求項８に記載の通信装置。
【請求項１０】
前記複製元データが複数の通信レイヤのヘッダを含み、前記決定手段が前記複数の通信レイヤのヘッダに対するヘッダ処理がまとめて実行されるべきと判定した場合に、前記決定手段は、前記第２の転送モードを前記転送モードとして決定し、前記割込通知手段は、前記複数の複製先領域の全てに対する前記複製元データのうちの所定の部分データの転送が完了する度に、前記割込通知信号を出力することを特徴とする請求項８または９に記載の通信装置。
【請求項１１】
前記プロトコル処理手段は、前記複数の複製先領域の少なくともいずれかに転送された前記複製元データをヘッダとして用いて、通信パケットを生成することを特徴とする請求項８から１０のいずれか１項に記載の通信装置。
【請求項１２】
通信装置の制御方法であって、
複製元データを複製して複製先における複数の複製先領域に転送する際に、前記複製元データを、前記複数の複製先領域のそれぞれに対して逐次転送する第１の転送モード、または、前記複製元データを、前記複数の複製先領域に対して並列に転送する第２の転送モードを、転送モードとして決定する決定工程と、
前記決定工程において決定された前記転送モードに応じて、前記複製元データを複製して前記複数の複製先領域に転送する転送工程と、
を有することを特徴とする通信装置の制御方法。
【請求項１３】
コンピュータを、請求項１から１１のいずれか１項に記載の通信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを複製する技術に関する。
【背景技術】
【０００２】
通信処理における送信処理の高速化が望まれている。送信処理の高速化の手法として、ＴＳＯ（ＴＣＰ  Ｓｅｇｍｅｎｔａｔｉｏｎ  Ｏｆｆｌｏａｄ）技術がある。本技術は、従来ソフトウェアで行っていた送信データのＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）セグメントへの分割（Ｓｅｇｍｅｎｔａｔｉｏｎ）処理を、ハードウェアで実行（Ｏｆｆｌｏａｄ）することにより、処理の高速化を実現する技術である。ＴＳＯを実施するためには、分割後のパケットに使用するヘッダを分割数分だけ作成する必要がある。
【０００３】
ヘッダ等のデータを、複製することにより複数作成する技術として、従来、以下のような技術が提案されている。特許文献１には、プロトコルスタックからロングパケットを受け取り、ネットワークに適したサイズのショートパケットに分割して送信する技術が開示されている。具体的には、ロングパケットのヘッダを複数複製することにより、各ショートパケットのヘッダを作成することが記載されている。特許文献２には、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）に関連するデータ複製技術が開示されている。具体的には、１つのＤＭＡコマンドに応じて、共有メモリとローカルメモリ間において複数のデータブロックを転送することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２６６７５９号公報
【特許文献２】特開２００６−１９０３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的なＤＭＡＣは、複製元のメモリに配置されたデータをリードし、複製先のメモリにライトすることにより、データの複製を実行する。しかしながら。一般的なＤＭＡＣを用いて、ＴＳＯ処理における分割後のパケットに使用するヘッダを複数作成する場合、以下のような課題がある。すなわち、複製元データは常に同一（ロングパケットのヘッダ）であるにも関わらず、一般的なＤＭＡＣを用いると、ヘッダの複製の数と同じだけ複製元データのリード処理が発生し、処理時間が長くなる。特に、複製元データがアクセスレイテンシの大きいメモリに配置される場合には、さらに処理時間が長くなり、複製先のメモリへの転送効率の悪化が顕著となる。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、効率的な複製処理を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る通信装置は、以下の構成を有する。すなわち、通信装置であって、複製元データを複製して複製先における複数の複製先領域に転送する際に、前記複製元データを、前記複数の複製先領域のそれぞれに対して逐次転送する第１の転送モード、または、前記複製元データを、前記複数の複製先領域に対して並列に転送する第２の転送モードを、転送モートとして決定する決定手段と、前記決定手段により決定された前記転送モードに応じて、前記複製元データを複製して前記複数の複製先領域に転送する転送手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、効率的な複製処理を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１における通信装置１００の概略的なブロック図。
【図２】実施形態１における転送モードを説明するための図。
【図３】実施形態１の逐次転送モードにおけるデータ複製処理のシーケンス図。
【図４】実施形態１の並列転送モードにおけるデータ複製処理のシーケンス図。
【図５】実施形態１におけるモード決定部１１４による処理を説明するための表（Ａ）およびフローチャート（Ｂ）。
【図６】実施形態２における通信装置６００の概略的なブロック図。
【図７】実施形態２における転送モードを説明するための図。
【図８】実施形態２の逐次転送モード（Ａ）および並列転送モード（Ｂ）におけるデータ複製処理のシーケンス図。
【図９】実施形態２におけるモード決定部６１４による処理を説明するためのフローチャート。
【図１０】通信装置１００のパケット生成および送信手順を示す図。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
［実施形態１］。
図１に、実施形態１における通信装置１００の概略的なブロック図を示す。図１において、システムバス１０３には、３つのモジュール（主制御部１０１、主記憶部１０２、ローカルバス１０４）が接続されている。システムバス１０３に接続されているモジュールのうち、主制御部１０１は、通信装置１００で実行される処理全般の処理・制御を担う。主記憶部１０２は、通信装置１００におけるメインの記憶領域であり、主に主制御部１０１により利用される。ローカルバス１０４には、５つのモジュール（システムバス１０３、プロトコル処理部１０５、転送部１１０、補助記憶部１０６、インターフェース部１０７）が接続されている。
【００１２】
ローカルバス１０４に接続されているモジュールのうち、プロトコル処理部１０５は、通信装置１００が他機器（不図示）とネットワーク１０８を介した通信を実行する際の通信処理（所定の通信プロトコル処理等）を担う。補助記憶部１０６は、通信装置１００が備える補助的なメモリである。補助記憶部１０６は、例えば、コスト面でサイズ／アクセスレイテンシをともに満足できるメモリの搭載が難しい場合に、高速なメモリをサイズ制限した（コストを抑えた）メモリとして補助的に用意される。これにより、用途種別に応じて補助記憶部１０６と主記憶部１０２を使い分けることができる。転送部１１０は、主記憶部１０２と補助記憶部１０６間でデータの複製をする機能を担う。転送部１１０の詳細については後述する。インターフェース部１０７は、主制御部１０１または補助記憶部１０６に格納されているデータをネットワーク１０８に転送し、また、ネットワーク１０８からのデータを主制御部１０１または補助記憶部１０６に転送する機能を有する。
【００１３】
次に、転送部１１０について詳細に説明する。転送部１１０は、２つのサブモジュール（転送制御部１１１、転送実行部１１２）より構成され、主記憶部１０２の複製元領域に格納されているデータを読み出し、読み出したデータを補助記憶部１０６の複数の複製先領域に転送することにより、主記憶部１０２と補助記憶部１０６間でデータの複製を行う。転送制御部１１１は、転送部１１０の全体を制御するサブモジュールであり、割込通知部１１３、モード決定部１１４、レジスタ部１１５より構成される。レジスタ部１１５には所定のコマンドがセットされる。割込通知部１１３は、転送実行部１１２による転送処理の進捗に応じて割込通知信号１１９を出力する。プロトコル処理部１０５または主制御部１０１は、割込通知部１１３から出力された割込通知信号１１９から、転送部１１０の処理完了や処理の進捗状況を検知することができる。なお、割込通知部１１３は、レジスタ部１１５に処理完了のステータスを示してもよい。割込通知部１１３が割込通知信号１１９を出力する割込通知タイミング（割込通知モード）は複数であってもよい。これについては後述する。モード決定部１１４は、転送実行部１１２がデータを転送する際の転送モードを決定する。本実施形態では、モード決定部１１４は、逐次転送モードと並列転送モードのいずれかを転送モードとして決定する。逐次転送モードと並列転送モードについては、図２（Ａ）〜（Ｃ）を用いて後述する。また、モード決定部１１４は、レジスタ部１１５にセットされたコマンドを解析し、転送実行部１１２に、決定した転送モードおよびリード／ライトすべきアドレス／サイズの情報を含む転送指示を与える。なお、このような転送指示を転送実行部１１２に与えるのは、転送制御部１１１内の、モード決定部１１４以外の他の不図示の手段であってもよい。
【００１４】
転送実行部１１２は、転送制御部１１１からの指示により実際の転送処理を行うサブモジュールであり、リード処理部１１６、バッファ部１１７、ライト処理部１１８より構成される。リード処理部１１６は、主記憶部１０２から、転送すべきデータをリードし、バッファ部１１７に格納する。リードすべきデータのアドレス／サイズは、転送制御部１１１からの転送指示に含まれる情報に基づく。ライト処理部１１８は、バッファ部１１７に格納されたデータを補助記憶部１０６にライトする。ライトすべきアドレス／サイズは、転送制御部１１１からの転送指示に含まれる情報に基づく。なお、本実施形態では、主記憶部１０２から補助記憶部１０６へのデータ転送を例に説明するが、複製元および複製先が格納されるメモリおよびメモリにおける領域については、特段の限定はない。
【００１５】
次に、通信装置１００がサポートする転送モード（逐次転送モードと並列転送モード）について、図２（Ａ）〜（Ｃ）を参照して説明する。図２（Ａ）〜（Ｃ）は、本実施形態における逐次転送モードと並列転送モードを説明するための例示的な転送例を示す図である。
【００１６】
まず、逐次転送モードと並列転送モードを説明するために、図２（Ａ）に示すような例を考える。図２（Ａ）は、主記憶部１０２に配置された複製元領域２０３から、６４Ｂのデータを補助記憶部１０６の２つの複製先領域２０１、２０２にそれぞれ６４Ｂずつ転送（複製）する例を示している。ここで、バッファ部１１７に格納できるデータサイズは、３２Ｂとする。このように、主記憶部１０２における複製元領域２０３から６４Ｂのデータを、バッファ部１１７を介して補助記憶部１０６の複製先領域２０１、２０２に複製する場合について、以下、逐次転送モードと並列転送モードについて説明する。
【００１７】
図２（Ｂ）は、本実施形態における逐次転送モードを説明するための図である。逐次転送モードは、一つの複製先領域への複製を完了させてから次の複製先領域への複製を開始するモードである。リード処理部１１６は、まず、バッファ部１１７に格納できるサイズ分（３２Ｂ）のデータを複製元領域２０３からリードし、バッファ部１１７にリードしたデータを格納する（Ｓ２０１）。次に、ライト処理部１１８は、バッファ部１１７に格納されたデータを複製先領域２０１にライトする（Ｓ２０２）。次に、リード処理部１１６は、残りの３２Ｂのデータを再び複製元領域２０３からリードし、バッファ部１１７に格納する。そして、ライト処理部１１８は、再びバッファ部１１７から複製先領域２０１に対してデータをライトする（Ｓ２０４）。ここまでの処理により、複製先領域２０１に対するデータ複製が完了する。続いて、複製先領域２０２に対しても同様の処理（Ｓ２０５〜Ｓ２０８）が行われることにより、補助記憶部１０６への複製処理が完了する。
【００１８】
図２（Ｃ）は、本実施形態における並列転送モードを説明するための図である。並列転送モードは、すべての複製先に対して並列に複製を行うモードである。リード処理部１１６は、まず、バッファ部１１７に収まるだけのデータ（３２Ｂ）を複製元領域２０３からリードし、バッファ部１１７にリードしたデータを格納する（Ｓ２１１）。次に、ライト処理部１１８は、複製先領域２０１と２０２のそれぞれに、バッファ部１１７に格納されたデータをライトする（Ｓ２１２、Ｓ２１３）。次に、リード処理部１１６は、残りの３２Ｂのデータを複製元領域２０３からリードし、バッファ部１１７に格納する（Ｓ２１４）。そして、ライト処理部１１８は、バッファ部１１７のデータを複製先領域２０１と２０２のそれぞれにライトする（Ｓ２１５、Ｓ２１６）。
【００１９】
このように、逐次転送モードでは、複製元領域からリードしてバッファ部１１７に格納したデータを、逐次、複製先領域にライトする。一方、並列転送モードでは、複製元領域からリードしてバッファ部１１７に格納したデータを全ての複製先領域にライトしてから、次のデータを複製元領域からリードしてバッファ部１１７に取り込む。
【００２０】
次に、通信装置１００がサポートする転送モード（逐次転送モードと並列転送モード）でのデータ複製処理のシーケンスについて、図３および図４を用いて説明する。図３は、本実施形態における逐次転送モードにおけるデータ複製処理のシーケンス図である。また、図４は、本実施形態における並列転送モードでのデータ複製処理のシーケンス図である。
【００２１】
まず、図３（逐次転送モード）について説明する。最初に、プロトコル処理部１０５は、転送制御部１１１のレジスタ部１１５に、転送のための設定情報をセットする（Ｓ３０１）。この設定情報には、転送において低レイテンシが要求されるか否か等が指定され得る。続いて、プロトコル処理部１０５は、実行指示をレジスタ部１１５に与える（Ｓ３０２）。実行指示を受信したレジスタ部１１５は、プロトコル処理部１０５によりセットされた設定情報をモード決定部１１４に通知する（Ｓ３０３）。設定情報を受け取ったモード決定部１１４は、当該情報に基づいて転送モードを（図３では逐次転送モードと）決定し（Ｓ３０４）、転送実行部１１２に、決定した転送モードおよびリード／ライトすべきアドレス／サイズの情報を含む転送指示を与える。なお、モード決定部１１４による転送モード決定手順については、図５を用いて後述する。
【００２２】
モード決定部１１４より受け取った転送指示に従って、転送実行部１１２は、転送処理を開始する。まず、リード処理部１１６は、主記憶部１０２の複製元領域２０３から、バッファ部１１７に格納可能なだけデータを取り込む（Ｓ３０５。Ｓ２０１と同様）。次に、ライト処理部１１８は、バッファ部１１７のデータを複製先領域２０１にライトする（Ｓ３０６。Ｓ２０２と同様）。次に、リード処理部１１６は、バッファ部１１７に残りのデータを、主記憶部１０２の複製元領域２０３から取り込む（Ｓ３０７。Ｓ２０３と同様）。次に、ライト処理部１１８は、バッファ部１１７のデータを複製先領域２０１にライトする（Ｓ３０８。Ｓ２０４と同様）。
【００２３】
上記の処理により、複製先領域２０１へのデータ複製処理は完了する。このタイミングで、割込通知部１１３は、プロトコル処理部１０５に複製完了を示す割込通知信号１１９を送信する（Ｓ３０９）。割込通知信号１１９を受け取ったプロトコル処理部１０５は、複製が完了した複製先領域２０１のデータに対して所望の処理を行うことが可能となる（逐次処理）（Ｓ３１０）。続いて転送実行部１１２は、複製先領域２０２に対しても複製処理を同様に行い（Ｓ３１１〜Ｓ３１４）、複製処理完了後に、割込通知部１１３は、割込通知信号１１９を同様に送信する（Ｓ３１５）。割込通知信号１１９を受け取ったプロトコル処理部１０５は、複製が完了した複製先領域２０２のデータに対して所望の処理を行うことが可能となる（逐次処理）（Ｓ３１６）。
【００２４】
次に、図４（並列転送モード）について説明する。Ｓ４０１〜Ｓ４０４までの処理は、図３のＳ３０１〜Ｓ３０４と同一である。ただし、図４では、モード決定部１１４は、並列転送モードを転送モードとして決定したとする。これに応じて、転送実行部１１２は、並列転送モードでデータ複製処理を開始する。
【００２５】
まず、リード処理部１１６は、主記憶部１０２の複製元領域２０３から、バッファ部１１７に格納可能なだけデータをリードしてバッファ部１１７に格納する（Ｓ４０５。Ｓ２１１と同様）。次に、ライト処理部１１８は、バッファ部１１７に格納されたデータを複製先領域２０１にライトする（Ｓ４０６。Ｓ２１２と同様）。次に、ライト処理部は、バッファ部１１７に格納されたデータを複製先領域２０２にライトする（Ｓ４０７。Ｓ２１３と同様）。Ｓ４０６とＳ４０７は、ともに、同一の転送元（バッファ部１１７）から、同一の転送先（補助記憶部１０６）への転送となるが、転送速度に違いがある。すなわち、Ｓ４０６における転送速度は、補助記憶部１０６よりアクセスレイテンシの大きい主記憶部１０２からバッファ部１１７への転送処理（Ｓ４０５）の転送速度に律速される。一方、Ｓ４０７における転送処理は、すでにバッファ部１１７に転送すべきデータが格納されている状態なため、Ｓ４０６の転送よりも高速に実行できる。
【００２６】
Ｓ４０５〜Ｓ４０７の処理により、複製先領域２０１と複製先領域２０２それぞれに、３２Ｂのデータが格納された状態になる。引き続き同様の処理が行われ（Ｓ４０８〜Ｓ４１０）、複製先領域２０１と複製先領域２０２領域への複製処理が完了する。割込通知部１１３は、複製完了のタイミングで、プロトコル処理部１０５に対して複製完了を示す割込通知信号１１９を送信する（Ｓ４１１）。割込通知信号１１９を受け取ったプロトコル処理部１０５は、すべての複製が完了している状態であるため、複製先領域２０１と２０２すべてのデータに対して所定の処理を実行することができる（一括処理）（Ｓ４１２）。
【００２７】
ここで、本実施形態における逐次転送モード／並列転送モードを、全体の処理時間の観点から比較する。は逐次転送モードでの処理時間は、図３のＳ３１７で示す時間であるのに対し、並列転送モードでの処理時間は図４のＳ４１３で示す時間であり、並列転送モードの方が全体の処理時間は短いことがわかる。これは、逐次転送モードでは、アクセスレイテンシの大きい主記憶部１０２に対して、並列転送モードよりも多くアクセスする必要があるからである。したがって、全体の処理時間のみならず、消費電力においても、並列転送モードの方がアクセス回数が少ないだけ優位性がある。
【００２８】
次に、本実施形態における逐次転送モード／並列転送モードを、複製先領域２０１へのデータ転送完了時間の観点から比較する。逐次転送モードでの複製先領域２０１へのデータ転送完了時間は、図３のＳ３１８で示す時間である。一方、並列転送モードでの複製先領域２０１へのデータ転送完了時間は、図４のＳ４１４で示す時間となり、逐次転送モードよりも長いことがわかる。これは、逐次転送モードでは、複製先領域２０１への転送から優先的に行われるからである。したがって、特に低レイテンシ（低遅延）が求められる時は、逐次転送モードを選択するとよい。
【００２９】
次に、転送モードの決定手順について図５（Ａ）〜（Ｂ）を用いて説明する。本実施形態では、割込通知部１１３が割込通知信号１１９を出力する割込通知タイミング（割込通知モード）も選択可能とする。図５（Ａ）〜（Ｂ）はそれぞれ、転送モードと割り込み通知モードを説明するための表、および、モード決定部１１４による転送モードと割込通知モードの決定手順を示すフローチャートである。
【００３０】
まず、図５（Ａ）を参照して、各転送モードに対する各割込通知モードについて説明する。逐次転送モードは、逐次通知モードＭ５１と一括通知モードＭ５２を備える。逐次通知モードＭ５１は、各転送先領域に対する全データの転送完了の度に一度割込通知を行うモードである。一括通知モードＭ５２は、全ての転送先領域に対する全データの転送完了時に一度割込通知を行う通知モードである。並列転送モードは、分割通知モードＭ５３と一括通知モードＭ５４を備える。分割通知モードＭ５３は、全ての転送先領域に対する部分データの転送完了の度に一度割込通知を行うモードである。一括通知モードＭ５４は、前述の一括通知モードＭ５２と同様である。
【００３１】
続いて、図５（Ｂ）のフローチャートについて説明する。まず、モード決定部１１４は、転送におけるレイテンシが低いことが求められているか否か（低レイテンシ要求が有るか否か）を判定する（Ｓ５０１）。リアルタイム伝送等、転送における低レイテンシ要求が有る場合は（Ｓ５０１でＹｅｓ）、作成されたリアルタイムデータから逐次転送し、その転送完了を通知する必要があるため、割込通知モードとして、逐次通知モードＭ５１または分割通知モードＭ５３を選択することを決定する（Ｓ５０２）。続いてモード決定部１１４は、転送モードを決定するために、バッファ部１１７のサイズと複製対象のデータサイズ（複製サイズ）のどちらが大きいかを判定する。バッファ部１１７のサイズの方が複製サイズより大きいまたは等しい場合（Ｓ５０３でＹｅｓ）は、複製対象のデータがバッファ部１１７に一度のリード処理で格納できることを意味する。したがって、逐次転送モードのように、複数回バッファ部１１７へ転送元からデータをリードする必要がないため、モード決定部１１４は、割込通知モードとして分割通知モードＭ５３を選択し、転送モードとして並列転送モードを選択する（Ｓ５０４）。一方、バッファ部１１７のサイズの方が複製サイズより小さい場合（Ｓ５０３でＮｏ）は、モード決定部１１４は、割込通知モードとして逐次通知モードＭ５１を選択し、転送モードとして逐次転送モードを選択する。これにより、上述したように、並列転送モードと比較して低レイテンシにつながる。
【００３２】
Ｓ５０１で、転送における低レイテンシ要求がない場合（Ｓ５０１でＮｏ）は、モード決定部１１４は、転送モードとして、転送効率の良い並列転送モードを選択する。また、複数の複製先に対して一括で処理を行うことが可能であれば、モード決定部１１４は、割込モードとして、一括通知モードＭ５４を選択する。これにより、例えば一括通知があるまでは、プロトコル処理部１０５を休止状態として消費電力を下げる等ができる。なお、複製処理後の次の処理で逐次処理を行いたい場合は、モード決定部１１４は、分割通知モードＭ５３を選択してもよい。
【００３３】
なお、Ｓ５０１における低レイテンシの要求（例えば、例えばリアルタイム伝送が要求される転送要求）の有無の判定は、以下のように行われてもよい。例えば、低レイテンシ要求の有無をセットするためのレジスタをレジスタ部１１５に用意し、プロトコル処理部１０５が、転送対象のデータの種別に応じて低レイテンシ要求の有無をセットしてもよい。この場合、モード決定部１１４は、レジスタ部１１５にセットされた低レイテンシ要求の有無に基づいて、低レイテンシ要求の有無を判定できる。また、例えばモード決定部１１４が、主記憶部１０２から複製対象のデータを取得して当該データを解析し、その解析結果に基づいて低レイテンシ要求の有無を判定してもよい。また、複製対象のデータに、通信に使用するヘッダが付加されている場合には、モード決定部１１４は、当該ヘッダに種別に応じて低レイテンシ要求の有無を判定してもよい。
【００３４】
なお、上記例では低レイテンシ要求の有無（図５（Ｂ）のＳ５０１）に応じて転送モード／割込通知モードを選択したが、Ｓ５０３の判定を先に行ってもよい。この場合、例えば、Ｓ５０２でＹｅｓの場合は、転送モードとして並列転送モードを選択し、割込通知モードとして分割通知モードＭ５３または一括通知モードＭ５４を選択する。Ｓ５０２でＮｏの場合は、低レイテンシ要求の有無に応じて、並列転送モード／分割通知モードＭ５３または一括通知モードＭ５４（低レイテンシ要求無し）または逐次転送モード／逐次通知モードＭ５１（低レイテンシ要求有り）を選択する。
【００３５】
このように、本実施形態によれば、２つのメモリ間のデータ転送によりデータ複製を行う際に、状況に応じて適切な複製方法を選択することにより低レイテンシな通信が実現され、結果として高スループットが達成される。
【００３６】
［実施形態２］
続いて、実施形態２について、実施形態１と異なる点について説明する。図６に、実施形態２における通信装置６００の概略的なブロック図を示す。転送実行部６１２は、図１の転送実行部１１２と比較して、リード処理部１１６がない代わりに、バッファ部へのアクセス可能なバッファ部インターフェース６１６が接続されている。バッファ部インターフェース６１６により、プロトコル処理部１０５が直接バッファ部６１７に対して、転送対象のデータをライトすることができる。また、モード決定部６１４による転送モードおよび割込通知モードの決定手順も実施形態１と異なるが、これについては後述する。
【００３７】
次に、通信装置６００がサポートする転送モード（逐次転送モードと並列転送モード）について、図７（Ａ）〜（Ｃ）を参照して説明する。図７（Ａ）〜（Ｃ）は、実施形態における逐次転送モードと並列転送モードを説明するための例示的な転送例を示す図である。
【００３８】
まず、逐次転送モードと並列転送モードを説明するために、図７（Ａ）に示すような例を考える。図７（Ａ）は、プロトコル処理部１０５より、バッファ部６１７に配置された複製元領域７０１（６４Ｂ）から、補助記憶部１０６の２つの複製先領域２０１、２０２にそれぞれ６４Ｂずつ転送（複製）する例を示している。ここで、バッファ部１１７に格納できるデータサイズは、６４Ｂより大きいものとする。このように、バッファ部１１７に格納されたデータを補助記憶部１０６の複製先領域２０１、２０２に複製する場合について、以下、逐次転送モードと並列転送モードについて説明する。
【００３９】
図７（Ｂ）は、本実施形態における逐次転送モードを説明するための図である。まず、プロトコル処理部１０５は、バッファ部６１７の複製元領域７０１に複製対象のデータ（６４Ｂ）を格納する（Ｓ７０１）。次に、ライト処理部６１８は、複製元領域７０１に格納されたデータ（６４Ｂ）を複製先領域２０１にライトする（Ｓ７０２、Ｓ７０３）。続いて、ライト処理部６１８は、複製先領域２０２に対しても同様に、複製元領域７０１に格納されたデータ（６４Ｂ）をライトする（Ｓ７０４、Ｓ７０５）。
【００４０】
図７（Ｃ）は、本実施形態における並列転送モードを説明するための図である。まず、プロトコル処理部１０５は、バッファ部６１７の複製元領域７０１に複製対象のデータ（６４Ｂ）を書き込む（Ｓ７１１）。次に、ライト処理部６１８は、複製元領域７０１に格納されているデータのうち、半分のデータ（３２Ｂ）を、複製先領域２０１と２０２にそれぞれライトする（Ｓ７１２、Ｓ７１３）。続いて、ライト処理部６１８は、残りのデータ（３２Ｂ）を、複製先領域と２０１と２０２にそれぞれライトする（Ｓ７１４、Ｓ７１５）。このように、本実施形態における並列転送モードは、バッファ部１１７に格納したデータのうち一部分のデータを、すべての複製先領域に対して並列にライト処理を実行し、以降同様に一部分ずつすべての複製先領域にライト処理を繰り返し実行する。
【００４１】
なお、図７（Ｃ）では、６４Ｂのデータを並列転送する際に、半分の３２Ｂずつ転送する例を示したが、複製先領域２０１と２０２に対して並列に転送処理（ライト処理）するのであれば、必ずしも半分ずつ転送する必要はない。例えば、４分の１ずつ転送してもよいし、所定のバイト数ずつ転送してもよい。その分割数、または、分割データのサイズに関して、レジスタ部６１５にプロトコル処理部１０５が設定できるようにしてもよい。
【００４２】
次に、通信装置６００がサポートする転送モード（逐次転送モードと並列転送モード）でのデータ複製処理のシーケンスについて、図８（Ａ）および（Ｂ）を用いて説明する。図８（Ａ）は、本実施形態における逐次転送モードにおけるデータ複製処理のシーケンス図である。また、図８（Ｂ）は、本実施形態における並列転送モードにおけるデータ複製処理のシーケンス図である。
【００４３】
まず、図８（Ａ）（逐次転送モード）について説明する。最初に、プロトコル処理部１０５は、バッファ部６１７に、複製対象のデータを書き込む（Ｓ８０１、Ｓ７０１と同様）。次に、プロトコル処理部１０５は、転送制御部１１１のレジスタ部１１５に、転送のための設定情報をセットする（Ｓ８０２）。この設定情報には、転送モードまたは割込通知モードが指定され得る。続いて、プロトコル処理部１０５は、実行指示を転送制御部６１１に与える（Ｓ８０３）。実行指示を受信したレジスタ部６１５は、プロトコル処理部１０５によりセットされた設定情報をモード決定部６１４に通知する（Ｓ８０４）。設定情報を受け取ったモード決定部６１４は、当該情報に基づいて転送モードを（図８（Ａ）では逐次転送モードと）決定し（Ｓ８０５）、転送実行部６１２に、決定した転送モードおよびリード／ライトすべきアドレス／サイズの情報を含む転送指示を与える。なお、モード決定部６１４による転送モード決定手順については、図９を用いて後述する。
【００４４】
モード決定部６１４より受け取った転送指示に従って、転送実行部６１２は、転送処理を開始する。まず、ライト処理部６１８は、バッファ部６１７のデータのうち半分（３２Ｂ）を複製先領域２０１にライトする（Ｓ８０６、Ｓ８０７。Ｓ７０２と同様）。ライト処理部６１８は、残り半分（３２Ｂ）も同様に、複製先領域２０１にライトする（Ｓ８０８、Ｓ８０９。Ｓ７０３と同様）。この時点で、複製先領域２０１に対するすべてのデータ複製が完了し、割込通知部６１３は、プロトコル処理部１０５に複製完了を示す割込通知信号６１９を送信する（Ｓ８１０）。割込通知信号６１９を受け取ったプロトコル処理部１０５は、複製が完了した複製先領域２０１のデータを必要とする処理を行うことができる（逐次処理）（Ｓ８１１）。
【００４５】
転送実行部６１２は、複製先領域２０２に対しても複製処理を同様に行い（Ｓ８１２〜Ｓ８１５、Ｓ７０４〜Ｓ７０５と同様）、複製処理完了後に、割込通知部６１３は、割込通知信号６１９を同様に送信する（Ｓ８１６）。割込通知信号６１９を受け取ったプロトコル処理部１０５は、複製が完了した複製先領域２０２のデータに対して所望の処理を行うことが可能となる（逐次処理）（Ｓ８１７）。
【００４６】
次に、図８（Ｂ）（並列転送モード）について説明する。Ｓ８５１〜Ｓ８５５までの処理は、図８（Ａ）のＳ８０１〜Ｓ８０５と同一である。ただし、図８（Ｂ）では、モード決定部６１４は、並列転送モードを転送モードとして決定したとする。これに応じて、転送実行部６１２は、並列転送モードでデータ複製処理を開始する。
【００４７】
まず、ライト処理部６１８は、バッファ部６１７のデータのうち半分（３２Ｂ）を複製先領域２０１にライトする（Ｓ８５６〜Ｓ８５７、Ｓ７１２と同様）。次に、ライト処理部６１８は、同一のデータを複製先領域２０２にもライトする（Ｓ８５８〜Ｓ８５９、Ｓ７１３と同様）。Ｓ８５６〜Ｓ８５９の処理により、複製先領域２０１と複製先領域２０２のそれぞれに、３２Ｂの同一のデータが格納された状態になる。
【００４８】
ここで、割込通知モードが分割通知モードＭ５３（図５（Ａ））で動作している場合は、Ｓ８５６〜Ｓ８５９の処理後に、割込通知部６１３は割込通知信号６１９をプロトコル処理部１０５に送信する（Ｓ８６０）。割込通知信号６１９を受け取ったプロトコル処理部１０５は、複製先領域２０１と２０２に格納されているデータに対して所定の処理を実行することができる（一括処理１）（Ｓ８６１）。続いて、残りの３２Ｂのデータに対しても同様の処理が行われ（Ｓ８６２〜Ｓ８６５０、Ｓ７１４〜Ｓ７１５と同様）、複製先領域２０１と複製先領域２０２への複製処理が完了する。そのタイミングで、割込通知部１１３は、プロトコル処理部１０５に対して割込通知信号６１９を送信する（Ｓ８６６）。割込通知信号６１９を受け取ったプロトコル処理部１０５は、複製先領域２０１と２０２０においてすべての複製が完了している状態であるため、全ての複製対象のデータに対して所定の処理を実行することができる（一括処理２）（Ｓ８６７）。
【００４９】
ここで、本実施形態における逐次転送モード／並列転送モードを、全体の処理時間の観点から比較する。逐次転送モードにおける処理時間は、図８（Ａ）のＳ８１８で示す時間であり、並列転送モードでの処理時間はＳ８６８で示す時間であり、同様な処理時間となる。これは、実施形態１は、アクセスレイテンシの大きい主記憶部１０２の使用が、転送処理のボトルネックとなっていたことに対し、本実施形態では、主記憶部１０２を使用していないからである。
【００５０】
次に、実施形態における逐次転送モード／並列転送モードを、複製先領域２０１へのデータ転送完了時間の観点から比較する。逐次転送モードでの複製先領域２０１へのデータ転送完了時間は、図８（Ａ）のＳ８１９で示す時間である。一方、並列転送モードでの複製先領域２０１へのデータ転送完了時間は、図８（Ｂ）のＳ８６９で示す時間となり、逐次転送モードよりも長いことがわかる。したがって、特に低レイテンシ（低遅延）が求められる時は、逐次転送モードを選択するとよい。
【００５１】
次に、転送モードと割込通知モードの決定手順について図９を参照して説明する。図９は、モード決定部６１４による転送モードと割込通知モードの決定手順を示すフローチャートである。なお、本実施形態では、予め、デフォルトの転送モード／割込通知モードが決定されているものとする。これはプロトコル処理部１０５からレジスタ部６１５への指定により実現してもよいし、デフォルトの転送モード／割込通知モードを並列転送モード／一括通知モードとして動作するように、転送部６１０を実装することに実現してもよい。また、本実施形態では、複製元データが複数の通信レイヤのヘッダを含むものとする。複数の通信レイヤのヘッダは、例えばＴＣＰヘッダ、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ）ヘッダである。
【００５２】
図９において、まず、モード決定部６１４は、プロトコル処理部１０５から、転送モード／割込通知モードに対して指定があれば（Ｓ９０１でＹｅｓ）、当該指定されたモードで転送／割込通知を行うことを決定する（Ｓ９０２）。指定方法は、例えば、レジスタ部６１５が、転送モード／割込通知モードを指定可能なレジスタを具備している場合に、プロトコル処理部１０５により当該レジスタに転送モード／割込通知モードが指定されることにより実現される。
【００５３】
プロトコル処理部１０５から、転送モード／割込通知モードに対して指定がない場合（Ｓ９０１でＮｏ）、処理はＳ９０３へ進む。Ｓ９０３では、モード決定部６１４は、プロトコル処理部１０５への割込通知信号６１９の送信回数（割込通知回数）を減らす要求が有るか否かを判定する。割込通知回数を減らしたいケースとして、例えば低消費電力モードがある。この場合、例えば、レジスタ部６１５が、低電力消費モードを指定可能なレジスタを具備している場合に、プロトコル処理部１０５等により当該レジスタに低電力消費モードの指定があるか否かに基づいて、モード決定部６１４は判定を行うことができる。プロトコル処理部１０５や通信装置６００が、低消費電力モードで動作させる際に、プロトコル処理部１０５がスリープ状態に入ることが可能であれば、割込通知回数を減らすことにより、より効率的な低消費電力モードの動作が可能となる。
【００５４】
プロトコル処理部１０５への割込通知回数を減らす要求が有る場合は（Ｓ９０３でＹｅｓ）、モード決定部６１４は、割込通知モードとして、一括通知モードを決定する（Ｓ９０４）。また、モード決定部６１４は、その際の転送モードとして、デフォルトの転送モードを選択する。なお、Ｓ９０３でＹｅｓの場合は、並列転送モードと逐次転送モードのいずれの転送モードでも全体の処理時間が変わらないため、モード決定部６１４はデフォルトに決定されている転送モード以外の転送モードを決定してもよい。
【００５５】
プロトコル処理部１０５への割込通知回数を減らす要求が無く（Ｓ９０３でＮｏ）、転送における低レイテンシ要求が有る場合（Ｓ９０５でＹｅｓ）は、モード決定部６１４は、転送モードとして逐次転送モードを選択し、通知モードとして逐次通知モードを選択する。なお、実施形態１において説明した図５（Ｂ）のように、モード決定部６１４は、バッファ部６１７のサイズと複製対象のデータサイズを比較し、その比較結果に基づいて、転送モードと割込通知モードを決定してもよい。
【００５６】
Ｓ９０５で、転送における低レイテンシ要求がなく（Ｓ９０５でＮｏ）、複数の通信レイヤで共通のヘッダ処理をまとめて実行する場合（Ｓ９０７でＹｅｓ）は、モード決定部６１４は、転送モードとして並列転送モードを選択し、通知モードとして分割通知モードを選択する（Ｓ９０８）。複数の通信レイヤで共通のヘッダ処理をまとめて実行するか否かは、例えば、レジスタ部６１５に設けられた所定のレジスタにプロトコル処理部１０５により指定され得る。また、Ｓ９０７の処理の際に、モード決定部６１４が転送元データを解析して、その解析の結果に基づいて、ヘッダ処理をまとめて実行するか否かを決定してもよい。また、並列転送モードで動作する際、割込通知部６１３は、複数の転送先において複数のヘッダ（例えばＴＣＰヘッダ、ＩＰヘッダ、ＭＡＣヘッダ）のそれぞれの複製が完了する度に、割込通知信号を送信してもよい。それにより、それぞれのヘッダに対する複製が終わった段階で、各レイヤ共通の処理をプロトコル処理部１０５は、まとめて処理を実行することが可能になる。
【００５７】
複数の通信レイヤで共通のヘッダ処理をまとめて実行せず（Ｓ９０７でＮｏ）、転送先領域が複製対象のデータを格納する十分な領域を有さない（Ｓ９０９でＹｅｓ）場合は、モード決定部６１４は、転送モードとして、逐次転送モードを選択し、割込通知モードとしてデフォルトの通知モードを選択する（Ｓ９１０）。転送先に空きがない状態とは、例えば、転送元データを３つ複製したい場合に、２つ分のメモリ領域しか確保できない状態である。モード決定部６１４は、補助記憶部１０６との通信によりこのような状況を検知することができる。このような場合、３つ分のメモリが確保できるまで、転送要求を保留してもよいが、例えば、２つ分の複製で転送要求を実行し、その間にもう１つ分の空きが発生することを期待する実行方法がある。これにより、処理効率の向上が図れる。特に特別な要求／状況が発生していない場合（Ｓ９０９でＮｏ）は、モード決定部６１４は、デフォルトの転送モード／割込通知モードを選択する。
【００５８】
このように、本実施形態によれば、バッファ部からメモリへのデータ転送によりデータ複製を行う際に、状況に応じて適切な複製方法を選択することにより低レイテンシな通信が実現され、結果として高スループットが達成される。
【００５９】
［実施形態３］
実施形態３として、実施形態１および２においてそれぞれ説明した転送部１１０、６１０を具備する通信装置１００、６００のパケット送信手順に関して説明する。図１０（Ａ）〜（Ｅ）に通信装置１００のパケット生成および送信手順を示す。以下の説明では通信装置１００を例にするが、通信装置６００であっても説明は変わらないため割愛する。
【００６０】
＜Ｓｔｅｐ１：ロングパケットの準備（図１０（Ａ））＞
まず、プロトコル処理部１０５は、ロングパケットを準備する。ロングパケットとは、ネットワーク１０８に送信可能なサイズよりも大きいパケットを指す。ロングパケットはプロトコル処理部１０５により生成される。このロングパケットを生成個数は、ネットワーク１０８に送出可能なパケット（以後ショートパケット）を作成する個数よりも少ない数となることにより、パケット生成処理のオーバヘッドを削減できることが、ＴＳＯ処理の特徴である。
【００６１】
ロングパケットデータ１００２は、主制御部１０１より、送信要求されたデータを（必要に応じて複製し）プロトコル処理部１０５、および、転送部１１０が利用可能なメモリに配置する。図１０では、主記憶部１０２に配置しているが、補助記憶部１０６のサイズに余裕があれば、補助記憶部１０６でもよい。このロングパケットデータの配置処理は、プロトコル処理部１０５が転送部１１０を利用して行い得る。なお、ロングパケットデータは、メモリ上に必ずしも連続領域に配置する必要はない。
【００６２】
次に、プロトコル処理部１０５は、ロングパケットデータ１００２の送信する場合に必要なヘッダ、すなわちロングパケットヘッダ１００１を生成する。ロングパケットヘッダには、ＭＡＣヘッダ、ＴＣＰヘッダ、ＩＰヘッダが含まれるものとする。このロングパケットヘッダ１００１は、必ずしもロングパケットデータ１００２（データ１１１１〜１１１３）と連続的に配置される必要はないし、ロングパケットデータ１００２と同一メモリに配置される必要もない。また、補助記憶部１０６に配置されてもよいことはロングパケットデータ１００２と同様である。このロングパケットデータ１００２の配置処理と、ロングパケットヘッダ１００１の生成処理を以って、ロングパケット１００３の準備は完了する。
【００６３】
＜Ｓｔｅｐ２：ロングパケットヘッダの複製（図１０（Ｂ））＞
続いて、転送部１１０は、ロングパケットヘッダの複製処理を行う。ここで、複製先として、例えば、アクセスレイテンシの小さい補助記憶部１０６が選択される。
【００６４】
＜Ｓｔｅｐ３：ロングパケットヘッダの編集（図１０（Ｃ））＞
次に、プロトコル処理部１０５は、複製されたロングパケットヘッダ（図１０（Ｃ）のロングパケットヘッダ１０１１〜１０１３）の編集処理を行う。ロングパケットヘッダにＭＡＣ、ＩＰ、ＴＣＰヘッダが含まれる場合、編集をしなければならない情報には、例えば、以下のものがある。
ＩＰヘッダ・・・ＩＤ、Ｌｅｎｇｔｈ、ＩＰ Ｃｈｅｃｋｓｕｍ（ＩＰｖ４）、
ＴＣＰヘッダ・・・ＳｅｑｕｅｎｃｅＮｏ、ＴＣＰ  Ｃｈｅｃｋｓｕｍ、Ｆｌａｇ
プロトコル処理部１０５は、これらを適切に編集して、ショートパケットヘッダ（図１０（Ｃ）のショートパケットヘッダ１０２１〜１０２３）を生成する。どのように編集するかについては、本発明の骨子ではないため割愛する。
【００６５】
なお、上記の情報を編集する順序として、ＩＰ Ｃｈｅｃｋｓｕｍ／ＴＣＰ Ｃｈｅｃｋｓｕｍを最後に編集することが望ましい。なぜなら、チェックサム処理には、事前にチェックサムフィールド以外の部分が完成された状態で実施する必要があるためである。その他のフィールドに関しては、どのような順序で編集してもよい。たとえば、転送部１１０を並列転送モードで動作させておき、Ｓｔｅｐ２の転送実行中と並行して実施してもよい。つまり、転送部１１０が全ての転送先に対してＩＰヘッダの複製処理を完了させた段階で、プロトコル処理部１０５が一括して全ての転送先のＩＰヘッダの同時編集を行ってもよい。上記はＴＣＰヘッダでも同様である。また、低レイテンシ通信が必要な場合は、以下の方法もある。すなわち、Ｓｔｅｐ２にて逐次転送モードでロングパケットヘッダの複製を実行中に、複製が完了したロングパケットヘッダから、プロトコル処理部１０５はＩＰ／ＴＣＰヘッダの編集を行う。この場合、プロトコル処理部１０５は、順次ショートパケットの作成を完了させ、適宜送信処理を行うことができる。
【００６６】
＜Ｓｔｅｐ４：ショートパケット（通信パケット）の完成（図１０（Ｄ））＞
次に、プロトコル処理部１０５は、Ｓｔｅｐ３で生成したショートパケットヘッダと、ロングパケットデータをネットワークに送出可能なサイズに分割された、ショートパケットデータ（データ１１１１〜１１１３）を元にショートパケット（図１０（Ｄ）のショートパケット１０３１〜１０３３）を生成する。ここで、先にＳｔｅｐ３で、各種ヘッダの編集と併せて実施している場合には、本手順は不要である。また、ショートパケットは必ずしも連続領域に配置されている必要はない。すなわち、ネットワーク１０８へ送出されるまでに連続データになっていればよく、例えばインターフェース部１０７でＦＩＦＯ等の入力されたデータを連続して出力できる仕組みがあれば、それを利用すればよい。転送部１１０を利用して、インターフェース部１０７に連続データとして各ショートパケットをライトしてもよい。
【００６７】
＜Ｓｔｅｐ５：ショートパケットの送信（図１０（Ｅ））＞
最後に、プロトコル処理部１０５は、作成したショートパケット（図１０（Ｅ）のショートパケット１０３１〜１０３３）をネットワーク１０８に対し、インターフェース部１０７を開始送信する。本送信処理は、Ｓｔｅｐ４で触れたように、転送部１１０を利用して実施してもよい。  
【００６８】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019008545.tif 000003
【図２】
2019008545.tif 000004
【図３】
2019008545.tif 000005
【図４】
2019008545.tif 000006
【図５】
2019008545.tif 000007
【図６】
2019008545.tif 000008
【図７】
2019008545.tif 000009
【図８】
2019008545.tif 000010
【図９】
2019008545.tif 000011
【図１０】
2019008545.tif 000012