(57)【要約】【課題】  回路規模を増大させることなく、高速転送と省電力の両立をデータ転送モードの種別に応じて適応的に実現するデータ転送技術を提供する。【解決手段】  記憶装置から転送データを読み出す転送データロード処理部と、記憶装置へ転送データを書き込む転送データストア処理部を有するデータ転送装置である。ネットワークを介してデータを送受信するためのデータ記憶部を用いて、該データの送受信を制御する。転送データロード処理部と転送データストア処理部のそれぞれの動作を制御して、記憶装置とデータ記憶部との間のデータ転送を制御する。データ転送を行う転送データ量が確定している転送モードである第１の転送モードでは、データ転送による転送データの総量が指定されたデータ転送量に達した場合に、該データ転送が完了した判定する。データ転送を行う転送データ量が確定していない転送モードである第２の転送モードでは、データ転送による転送データの最後を示す情報を検出した場合に、該データ転送が完了したと判定する。【選択図】  図１
2014032564.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置から転送データを読み出す転送データロード処理部と、前記記憶装置へ転送データを書き込む転送データストア処理部を有するデータ転送装置であって、
ネットワークを介してデータを送受信するためのデータ記憶部を用いて、該データの送受信を制御する制御手段と、
前記転送データロード処理部と前記転送データストア処理部のそれぞれの動作を制御して、前記記憶装置と前記データ記憶部との間のデータ転送を制御するデータ転送制御手段を備え、
前記データ転送制御手段は、
データ転送を行う転送データ量が確定している転送モードである第１の転送モードでは、前記データ転送による転送データの総量が指定されたデータ転送量に達した場合に、該データ転送が完了した判定し、
データ転送を行う転送データ量が確定していない転送モードである第２の転送モードでは、前記データ転送による転送データの最後を示す情報を検出した場合に、該データ転送が完了したと判定する
ことを特徴とするデータ転送装置。
【請求項２】
前記転送データロード処理部は、
前記記憶装置の複数の不連続な記憶領域を連結して転送データを読み出すための第１の転送情報であって、前記転送データの転送モードが前記第１の転送モードあるいは前記第２の転送モードであることを示す情報を含む第１の転送情報を読み込む第１の読込手段と、
前記第１の転送情報を記憶する第１のキャッシュ手段と、
前記第１の転送情報に従って、前記第１の読込手段の読込とは非同期に、前記転送データを前記記憶装置から読み出す読出手段と、
前記転送データストア処理部は、
前記記憶装置の複数の不連続な記憶領域を連結して転送データを書き込むための第２の転送情報であって、前記転送データの転送モードが前記第１の転送モードあるいは前記第２の転送モードであることを示す情報を含む第２の転送情報を読み込む第２の読込手段と、
前記第２の転送情報を記憶するキャッシュ手段と、
前記第２の転送情報に従って、前記第２の読込手段の読込とは非同期に、前記転送データを前記記憶装置へ書き込む書込手段とを備える
ことを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記データ転送制御手段は、
前記第２の転送モードでは、前記データ転送による転送データの最後を示す情報を検出した後でも、前記第２の読込手段による前記第２の転送情報の読込処理が完了してない場合には、その完了を待って、該データ転送が完了したと判定する
ことを特徴とする請求項２に記載のデータ転送装置。
【請求項４】
前記転送データストア処理部は、
前記転送データの最後を示す情報を、該転送データ内から検出する検出手段を更に備え、
前記データ転送制御手段は、
前記第２の転送モードでのデータ転送中に、前記検出手段が前記転送データの最後を示す情報を検出したことを示す通知を、前記データストア処理部から受信した場合に、該データ転送が完了したと判定する
ことを特徴とする請求項２に記載のデータ転送装置。
【請求項５】
前記転送データストア処理部は、
前記第２の転送モードでのデータ転送中に、前記検出手段が前記転送データの最後を示す情報を検出した時点で、前記第２の読込手段による前記第２の転送情報の読込が完了していない場合には、その読込を中断する中断手段と、
前記中断手段による中断処理を実施した後に、前記通知を前記データ転送制御手段へ送信する送信手段と
を更に備えることを特徴とする請求項４に記載のデータ転送装置。
【請求項６】
前記転送データロード処理部と前記転送データストア処理部への動作クロックの供給のオン／オフを制御するクロック制御手段を更に備え、
前記クロック制御手段は、
前記第１の転送モードでは、前記データ転送による転送データの総量が指定されたデータ転送量に達して、前記データストア処理部による前記指定されたデータ転送量の転送データの書込が完了したことで、該データ転送が完了したという前記データ転送制御手段による判定に応じて、前記動作クロックの供給を停止し、
前記第２の転送モードでは、前記第２の転送モードでのデータ転送中に、前記転送データの最後を示す情報を検出して、前記第２の読込手段による前記第２の転送情報の読込が完了したことで、該データ転送が完了したという前記データ転送制御手段による判定に応じて、前記動作クロックの供給を停止する
ことを特徴とする請求項２に記載のデータ転送装置。
【請求項７】
前記クロック制御手段は、
前記第２の転送モードでのデータ転送中に、前記転送データの最後を示す情報を検出した時点で、前記第２の読込手段による前記第２の転送情報の読込が完了していないために該読込が中断されたことで、該データ転送が完了したという前記データ転送制御手段による判定に応じて、前記動作クロックの供給を停止する
ことを特徴とする請求項６に記載のデータ転送装置。
【請求項８】
前記第２のキャッシュ手段は、複数個の前記第２の転送情報を順にキャッシュする階層構造となっており、
前記転送データロード処理部は、
前記階層構造の第１のレベルになるまで、前記第２の転送情報を前記第２のキャッシュ手段に読み込み、前記データ転送の進行に応じて、前記第２のキャッシュ手段がキャッシュする前記第２の転送情報の数が前記第１のレベルから前記第２のレベルまで減ると、前記第１のレベルより大きい第３のレベルになるまで、追加の前記第２の転送情報を読み込む処理を、前記データ転送が終了するまで繰り返す
ことを特徴とする請求項２に記載のデータ転送装置。
【請求項９】
記憶装置から転送データを読み出す転送データロード処理部と、前記記憶装置へ転送データを書き込む転送データストア処理部を有するデータ転送装置の制御方法であって、
ネットワークを介してデータを送受信するためのデータ記憶部を用いて、該データの送受信を制御する制御工程と、
前記転送データロード処理部と前記転送データストア処理部のそれぞれの動作を制御して、前記記憶装置と前記データ記憶部との間のデータ転送を制御するデータ転送制御工程を備え、
前記データ転送制御工程は、
データ転送を行う転送データ量が確定している転送モードである第１の転送モードでは、前記データ転送による転送データの総量が指定されたデータ転送量に達した場合に、該データ転送が完了した判定し、
データ転送を行う転送データ量が確定していない転送モードである第２の転送モードでは、前記データ転送による転送データの最後を示す情報を検出した場合に、該データ転送が完了したと判定する
ことを特徴とするデータ転送装置の制御方法。
【請求項１０】
記憶装置から転送データを読み出す転送データロード処理部と、前記記憶装置へ転送データを書き込む転送データストア処理部を有するデータ転送装置の制御をコンピュータに機能させるためのプログラムであって、
前記コンピュータを、
ネットワークを介してデータを送受信するためのデータ記憶部を用いて、該データの送受信を制御する制御手段と、
前記転送データロード処理部と前記転送データストア処理部のそれぞれの動作を制御して、前記記憶装置と前記データ記憶部との間のデータ転送を制御するデータ転送制御手段して機能させ、
前記データ転送制御手段は、
データ転送を行う転送データ量が確定している転送モードである第１の転送モードでは、前記データ転送による転送データの総量が指定されたデータ転送量に達した場合に、該データ転送が完了した判定し、
データ転送を行う転送データ量が確定していない転送モードである第２の転送モードでは、前記データ転送による転送データの最後を示す情報を検出した場合に、該データ転送が完了したと判定する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数種類のデータ転送モードを装備した通信技術において、該データ動作モードに最適な転送処理、及び供給クロックの制御を行うデータ転送技術に関するものである。
【背景技術】
【０００２】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の通信プロトコルを使用してネットワークに接続し、通信相手とデータ転送を行う通信機器がある。近年、このような通信機器間での映像データのストリーミング転送のような広帯域なデータ転送を行う利用形態が増えてきている。そして、この広帯域なデータ転送を可能とするためには、通信機器における通信プロトコル処理の高速化が不可欠となってくる。
【０００３】
そこで、ＴＯＥ（ＴＣＰ／ＩＰオフロードエンジン）といった通信プロトコル処理に特化した補助的デバイスを通信機器の内部に装備し、広帯域なデータ転送を実現することが一般化している。ＴＯＥは、通信プロトコル処理を専用のソフトウエア／ハードウエアで実行して通信機器のＣＰＵ負荷を軽減するものである。そして、ネットワークと通信機器の間で高速なデータ転送を実現するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラを内部に装備して通信プロトコル処理の高速化に利用している。
【０００４】
そして、ＴＣＰ／ＩＰの通信プロトコル処理を前提としたＤＭＡコントローラの制御方法についての提案が特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３１９０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載のＤＭＡコントローラは、ＤＭＡ転送とディスクリプタの読込処理は独立したタイミングで実行されることが示されている。このディスクリプタは、ＤＭＡ転送のストア先の複数のアドレス情報をチェーン情報として記述されたものである。さらに、各アドレス情報には転送サイズも合わせて記述されている。そして、ＤＭＡコントローラはこのディスクリプタに記述された情報に従ってＤＭＡ転送を実行する。
【０００７】
しかしながら、特許文献１に記載のＤＭＡコントローラはネットワークに対しパケットを送信する時とネットワークからパケットを受信する時の双方とも同じＤＭＡ転送方式を使用してＤＭＡ転送を実行している。
【０００８】
ネットワーク上ではＴＣＰ／ＩＰの通信プロトコルで定義されるパケット単位でデータ転送が行われる。通信機器からネットワーク上にデータを送信する場合は、通信機器が決定する所定のパケットサイズで送信するため、ＤＭＡコントローラを使用する際に所定の転送サイズのＤＭＡ転送を実行する。
【０００９】
ネットワークからデータを受信する場合は、送信相手機器の都合やネットワーク上のルータ等の中継機器の都合によって受信パケットサイズは様々な量で送信されてくる。そのため、受信する側である通信機器のネットワークインターフェース部分にある受信バッファに受信パケットの受信完了を待たないと受信パケットのサイズは確認できない。
【００１０】
従って、特許文献１に記載のＤＭＡコントローラの制御方法であると、受信パケットの受信完了後に所定の転送サイズを指定してＤＭＡコントローラを起動する。そのため、受信パケットがバッファに蓄積されるまで、つまり、受信完了までの期間、通信プロトコル処理の開始が遅延するという課題がある。
【００１１】
本発明は上記の課題を解決するためになされたものであり、回路規模を増大させることなく、高速転送と省電力の両立をデータ転送モードの種別に応じて適応的に実現するデータ転送技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を解決するための本発明によるデータ転送装置は以下の構成を備える。即ち、
記憶装置から転送データを読み出す転送データロード処理部と、前記記憶装置へ転送データを書き込む転送データストア処理部を有するデータ転送装置であって、
ネットワークを介してデータを送受信するためのデータ記憶部を用いて、該データの送受信を制御する制御手段と、
前記転送データロード処理部と前記転送データストア処理部のそれぞれの動作を制御して、前記記憶装置と前記データ記憶部との間のデータ転送を制御するデータ転送制御手段を備え、
前記データ転送制御手段は、
データ転送を行う転送データ量が確定している転送モードである第１の転送モードでは、前記データ転送による転送データの総量が指定されたデータ転送量に達した場合に、該データ転送が完了した判定し、
データ転送を行う転送データ量が確定していない転送モードである第２の転送モードでは、前記データ転送による転送データの最後を示す情報を検出した場合に、該データ転送が完了したと判定する。
【発明の効果】
【００１３】
本発明によれば、回路規模を増大させることなく、高速転送と省電力の両立をデータ転送モードの種別に応じて適応的に実現することができる。
【図面の簡単な説明】
【００１４】
【図１】通信装置の内部構成を示すブロック図である。
【図２】ディスクリプタファーマット図である。
【図３】チェーンリストフォーマット図である。
【図４】データ送信時のデータ転送シーケンス図である。
【図５】データ受信時のデータ転送シーケンス図である。
【図６】データ受信時のデータ転送シーケンス図である。
【図７】データ送信時のクロック制御とデータ転送シーケンス図である。
【図８】データ受信時のクロック制御とデータ転送シーケンス図である。
【図９】データ受信時のクロック制御とデータ転送シーケンス図である。
【図１０】チェーンリスト内部キャッシュ構成図である。
【図１１】動作クロック停止タイミングフローチャート図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１６】
＜実施形態１＞
図１は実施形態１の通信装置の内部構成を示すブロック図である。データ転送装置である通信装置は、メインＣＰＵ１４の制御によって各機能ブロックの制御を行っている。機能ブロックには通信プロトコル処理を行うＴＯＥ部１１とメモリ等で構成する記憶装置１３があり、これらはシステムバス１２で相互に接続されている。
【００１７】
ＴＯＥ部１１は、通信プロトコル処理を行う機能ブロックであり、ＴＯＥ制御部１００によって内部の各処理部が制御される。図１では、通信プロトコル処理の中でも、特に、データ転送処理を行う処理部について詳細に示したものとなっている。ＴＯＥ制御部１００は、バスブリッジ１０７を介して記憶装置１３にもアクセスが可能となっており、この記憶装置１３を使用してメインＣＰＵ１４との情報交換も可能である。
【００１８】
バスブリッジ１０７は、ＴＯＥ部１１とシステムバス１２とを相互接続するバス変換処理を行う。バスブリッジ１０７を使用することでメインＣＰＵ１４がＴＯＥ部１１内部の各種レジスタへのアクセス、あるいはＴＯＥ部１１が記憶装置１３からデータの読出や書込が可能となる。
【００１９】
データ転送制御部１０１は、通信プロトコル処理の中でデータ転送処理の制御を行う。データ転送制御部１０１は、ＴＯＥ制御部１００の指示によってデータ転送処理を起動し、データ転送処理の終了をＴＯＥ制御部１００へ通知する。また、データ転送制御部１０１は、データ転送処理に関わる各処理部に対して制御を行うための制御線で接続されている。データ転送に関わる各処理部は、ディスクリプタロード処理部１０４、転送データロード処理部１０２、転送データストア処理部１０３、クロック制御部１０６、及びＭＡＣ制御部１０５である。
【００２０】
データ転送制御部１０１は、データ転送処理内容を記述したディスクリプタを内部キャッシュに記憶する機能も装備している。このディスクリプタは、ＴＯＥ制御部１００あるいはメインＣＰＵ１４によって作成される。そして、データ転送制御部１０１は、このディスクリプタに記述されている内容に従ってデータ転送制御を実行する。ディスクリプタにはチェーンリストの情報が含まれている。このチェーンリストは、複数の不連続な記憶領域に対するデータを１回の転送処理で連結して転送することを可能とするための情報（転送情報）である。
【００２１】
ディスクリプタロード処理部１０４は、記憶装置１３内に記憶されている指定されたディスクリプタを読み出してデータ転送制御部１０１へ送信する処理を行う。読出対象のディスクリプタの指定は、データ転送制御部１０１からディスクリプタロード処理部１０４へ通知される。また、ディスクリプタロード処理部１０４は、ディスクリプタの読出が完了した時点でデータ転送制御部１０１に完了通知も行う。
【００２２】
ＭＡＣ制御部１０５は、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）層の制御を行い、通信プロトコルの階層ではデータリンク層にあたるプロトコル処理を実行する。ＭＡＣ制御部１０５は、ネットワークから受信した受信パケットにおいてＭＡＣアドレスが自分宛であれば、受信パケットとして内部のバッファに取り込む処理を実行する。また、ネットワークにパケットを送信する場合は、ＭＡＣ制御部１０５は、相手先のＭＡＣアドレスを送信パケットに付加してネットワークに送出する処理を行う。ＭＡＣ制御部１０５の、データを送受信するためのデータ記憶部である内部バッファの構造は、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）の構造となっており、最初に入力されたデータを最初に出力する構造となっている。
【００２３】
転送データロード処理部１０２は、複数の不連続な記憶領域に対するデータを１回の転送処理で連結して転送する（読み出す）ことを可能とするための情報であるチェーンリスト（第１の転送情報）を内部キャッシュ（第１のキャッシュ）に一時的に記憶する機能を装備している。そして、転送データロード処理部１０２は、このチェーンリストに従って、データ転送処理を行う場合に転送するデータのソース側から指定のデータを読み出して（ロードして）、転送データストア処理部１０３へ引き渡す。
【００２４】
転送データロード処理部１０２では、チェーンリストの読出処理（第１の読込）によって転送するデータの読出処理速度に影響が出ないようにそれぞれ専用のインターフェースを装備してデータ転送の効率化を図っている。特に、転送データロード処理部１０２は、チェーンリストの読出専用には経路１０２ａを使用し、データの読出専用には経路１０２ｂを使用する。このように、転送データロード処理部１０２は、チェーンリストの読出とデータの読出とを非同期に行うことができる。
【００２５】
読出ソース側が記憶装置１３とチェーンリストに記述されている場合は、転送データロード処理部１０２は、記憶装置１３の所定のアドレスから所定の転送サイズ分のデータをチェーンリストに従って読出処理を行う。また、読出ソース側がＭＡＣ制御部１０５とチェーンリストに記述されている場合は、転送データロード処理部１０２は、ＭＡＣ制御部１０５の受信バッファに記憶されている受信パケットを順次読み出す読出処理を行う。このとき、転送データロード処理部１０２は、受信パケット内のＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ）を検出して受信パケットの最後を検出する機能も装備しているので、このＥＯＦ（つまり、データの最後を示す情報）を検出して読出処理の終了が可能となる。このように、転送データロード処理部１０２は、データの読出元となるソース側装置（第１の記憶装置（記憶装置１３）あるいは第２の記憶装置（ＭＡＣ制御部１０５のバッファ））から転送データを読み出す（ロードする）機能を有する。
【００２６】
また、ＭＡＣ制御部１０５ではＥＯＦを受信パケットに付加する機能が装備されている。そのため、ＭＡＣ制御部１０５が、受信パケットをネットワークから受信して内部バッファに取り込んでいる最中でも転送データロード処理部１０２によってデータの読出が可能となる。また、転送データロード処理部１０２は、転送データを全て転送データストア処理部１０３へ引き渡した時点でデータ転送制御部１０１に完了通知も行う。
【００２７】
尚、転送データロード処理部１０２の内部キャッシュに記憶できるチェーンリストの数には限りがある。従って、データ転送の進行に応じて、内部キャッシュのチェーンリストが全て使用済となる前に随時新しいチェーンリストに更新する必要がある。
【００２８】
転送データストア処理部１０３は、複数の不連続な記憶領域に対するデータを１回の転送処理で連結して転送する（書き込む）ことを可能とするための情報であるチェーンリスト（第２の転送情報）を内部キャッシュ（第２のキャッシュ）に記憶する機能を装備している。そして、転送データストア処理部１０３は、このチェーンリストに従って、データ転送処理を行う場合に転送データロード処理部１０２から引き渡されたデータを指定のディスティネーション側へ書き込む（ストアする）。
【００２９】
転送データストア処理部１０３では、チェーンリストの読出処理（第２の読込）によって転送するデータの書込処理速度に影響が出ないようにそれぞれ専用のインターフェースを装備してデータ転送の効率化を図っている。特に、転送データストア処理部１０３は、チェーンリストの読出専用には経路１０３ａを使用し、データの書込専用には経路１０３ｂを使用する。このように、転送データストア処理部１０３は、チェーンリストの読出とデータの書込とを非同期で行うことができる。
【００３０】
書込ディスティネーション側が記憶装置１３とチェーンリストに記述されている場合は、転送データストア処理部１０３は、以下で説明する２通りのデータ転送処理を選択して実行する。また、書込ディスティネーション側がＭＡＣ制御部１０５とチェーンリストに記述されている場合は、転送データストア処理部１０３は、ＭＡＣ制御部１０５の送信バッファにデータの書出を行う。このように、転送データストア処理部１０３は、データの書込先となるディスティネーション側装置（第１の記憶装置（記憶装置１３）あるいは第２の記憶装置（ＭＡＣ制御部１０５のバッファ））へ転送データを書き込む（ストアする）機能を有する。
【００３１】
さて、書込ディスティネーション側が記憶装置１３とチェーンリストに記述されている場合に、転送データストア処理部１０３が行う２通りのデータ転送処理を以下のようになる。
【００３２】
１つは、チェーンリストに転送サイズが確定していると記述されている場合である。このときは、転送データストア処理部１０３は、所定のアドレスから所定の転送サイズ分のデータをチェーンリストに従って書込処理を行い、確定している転送サイズまでデータ転送を実行して完了する。
【００３３】
もう１つは、チェーンリストに転送サイズが確定していないと記述されている場合である。このときは、転送データストア処理部１０３は、所定のアドレスから所定の転送サイズ分のデータをチェーンリストに従って書込処理を開始する。また、転送データストア処理部１０３は、転送データ内のＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ）を検出する機能も装備しているので、このＥＯＦを検出してデータ転送を完了する。データ転送完了後は、転送データストア処理部１０３は、ディスティネーション側にデータの書込が完了した時点でデータ転送制御部１０１に完了通知も行う。
【００３４】
尚、転送データストア処理部１０３の内部キャッシュに記憶できるチェーンリストの数には限りがある。従って、データ転送の進行に応じて、内部キャッシュのチェーンリストが全て使用済となる前に随時新しいチェーンリストに更新する必要がある。
【００３５】
クロック制御部１０６は、ＴＯＥ部１１内に供給される動作クロックのオン／オフを制御する。動作クロックの制御の対象となるのは、転送データロード処理部１０２と転送データストア処理部１０３とディスクリプタロード処理部１０４となる。データ転送制御部１０１の指示に従って、データ転送処理が実行されていない期間に動作クロックの供給をオフとする制御を行う。
【００３６】
図２は、ＴＯＥ部１１のデータ転送において使用されるディスクリプタを示したものである。このディスクリプタに示された情報からデータ転送制御部１０１の制御でデータ転送が行われる。このディスクリプタは、記憶装置１３に記憶されているものである。
【００３７】
２０１は、ディスクリプタのＩＤ（データ転送ＩＤ）を示す。このデータ転送ＩＤによって複数のディスクリプタを作成しても管理が可能となり、データ転送が終了していなくても次のデータ転送を実行するためのディスクリプタを用意することができる。
【００３８】
２０２は、データ転送を行う場合のソース側のアドレス情報（データロード側アドレス）を記述する。実際にはチェーンリストが記述されているアドレス情報となり、記憶装置１３のアドレス情報が記述される。
【００３９】
２０３は、データ転送を行う場合のソース側の転送サイズ情報（データロード側転送サイズ）を記述する。つまり、転送するデータの総量を記述する。ソース側がＭＡＣ制御部１０５の受信バッファである場合は、データ転送開始時に転送データサイズが確定していないので、“ＦＦＦＦ”等の特定の固定値を明示的に記述する。
【００４０】
２０４は、データ転送を行う場合のディスティネーション側のアドレス情報（データストア側アドレス）を記述する。実際にはチェーンリストが記述されているアドレス情報となり、記憶装置１３のアドレス情報が記述される。
【００４１】
２０５は、データ転送を行う場合のディスティネーション側の転送サイズ情報（データストア側転送サイズ）を記述する。つまり、転送するデータの総量を記述する。ディスティネーション側が記憶装置１３でデータ転送サイズが未定である場合は、データ転送開始時に転送データサイズが確定していないので、“ＦＦＦＦ”等の特定の固定値を明示的に記述する。
【００４２】
２０６は、チェーンリストを使用する場合の不連続な記憶領域を連結する数をそれぞれソース側（ロード側ユニット数）とディティネーション側（ストア側ユニット数）についてそれぞれ記述する。
【００４３】
図３は、ＴＯＥ部１１のデータ転送において使用されるチェーンリストを示したものである。このチェーンリストに示された情報からデータ転送制御部１０１の制御でデータ転送が行われる。このチェーンリストは、記憶装置１３に記憶されているものである。また、このチェーンリストはソース側とディティネーション側のそれぞれに対し作成することが可能であり、記憶装置１３上の複数の不連続な記憶領域に対するデータを１回の転送処理で連結して転送することを可能とするものである。
【００４４】
３０１は、アドレス情報を記述する。複数の不連続な記憶領域の１つ目の記憶領域を指定するアドレス情報となる。
【００４５】
３０２は、メモリタイプとデータ転送サイズを記述する。メモリタイプは、記憶装置１３あるいはＭＡＣ制御部１０５のバッファ（受信バッファ／送信バッファ）を指定する情報を記述する。また、データ転送サイズは、複数の不連続な記憶領域の１つ目の記憶領域のデータの転送サイズを記述する。また、データ転送開始時に転送データサイズが確定していない場合は、“ＦＦＦＦ”等の特定の固定値を明示的に記述する。つまり、データ転送サイズは、転送データサイズ（転送データ量）が確定している場合での転送モード（第１の転送モード）と、転送データサイズ（転送データ量）が確定していない場合での転送モード（第２の転送モード）を示すものである。
【００４６】
そして、メモリタイプ３０１とデータ転送サイズ３０２を合わせた情報をユニットと定義する。このユニットの数が上記の複数の不連続な記憶領域の１つ１つを表現したものとなる。チェーンリストにはこのユニットが複数記述される。そして、この複数のユニット情報が複数の不連続な記憶領域に対するデータを１回の転送処理で連結して転送するための情報となる。また、このユニット数（１〜ｎ）が図２の２０６に記述される。
【００４７】
図４は実施形態１のデータ転送のシーケンス図であり、特に、ネットワークに対してパケットを送信する場合に行われるデータ転送について示したものである。図１に示す通信装置におけるデータ転送処理について、各制御部の制御や処理部の処理の流れが分かるように示したものである。
【００４８】
４０１：
ＴＯＥ制御部１００からネットワークに対して送信パケットを送信するためのデータ転送処理を開始する指示が、データ転送制御部１０１に通知される。この通知にはデータ転送の内容を記述したディスクリプタを記述した記憶装置１３内のアドレス情報も含まれる。
【００４９】
４０２〜４０５：
４０１の通知を受けたデータ転送制御部１０１は、ディスクリプタロード処理部１０４に対して、ディスクリプタの読出を通知する（４０２）。この通知にはデータ転送の内容を記述したディスクリプタを記憶した記憶装置１３内のアドレス情報も含まれる。４０２の通知を受けたディスクリプタロード処理部１０４は、記憶装置１３の所定の場所からディスクリプタの読出要求（４０３）を行ってディスクリプタを取得する（４０４）。そして、取得したディスクリプタをデータ転送制御部１０１に通知する（４０５）。
【００５０】
４０６、４０７：
ディスクリプタを内部キャッシュに記憶したデータ転送制御部１０１は、転送データロード処理部１０２と転送データストア処理部１０３に対してデータ転送開始を通知する（４０６、４０７）。ここで通知される情報は、ディスクリプタに記述されているデータ転送処理の転送データの総量とチェーンリストが記憶されている記憶装置１３のアドレス情報も含まれる。
【００５１】
４０８、４０９：
４０６の通知を受けた転送データロード処理部１０２は、記憶装置１３に対して経路１０２ａを使用してチェーンリストの読取処理を開始する（４０８）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読取を行う（４０９）。
【００５２】
４１０、４１１：
４０７の通知を受けた転送データストア処理部１０３は、記憶装置１３に対して経路１０３ａを使用してチェーンリストの読取処理を開始する（４１０）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読取を行う（４１１）。
【００５３】
４１２〜４１４：
チェーンリストを取得した転送データロード処理部１０２は、記憶装置１３からチェーンリストのユニット単位でデータの読出を行う（４１２）。その後、転送データストア処理部１０３に該データの引き渡しを実行する（４１３）。転送データを受け取った転送データストア処理部１０３は、ＭＡＣ制御部１０５の送信バッファにデータの書出を行う（４１４）。４１２〜４１４の一連のデータ転送は、ユニット単位で転送を繰り返し継続し、最終的にはチェーンリストに記述されている転送サイズまでデータ転送が完了するまで継続する（４１９）。
【００５４】
４１５、４１６：
４１２〜４１４のデータ転送を継続していると、転送データロード処理部１０２の内部キャッシュに記憶しているチェーンリストが転送済となって追加でチェーンリストを読み出さないとデータ転送が継続できなくなる場合もある。このような場合は、チェーンリストが枯渇する前に、転送データロード処理部１０２は、記憶装置１３に対して経路１０２ａを使用してチェーンリストの追加読込処理を開始する（４１５）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読込を行う（４１６）。
【００５５】
尚、チェーンリストの追加読込には、データ転送開始時に通知（４０６）によって取得した転送データサイズの総量をユニット毎の転送サイズの和が超えることが無いようにチェーンリストを追加で読み出す制御も行われる。
【００５６】
４１７、４１８：
４１２〜４１４のデータ転送を継続していると、転送データストア処理部１０３の内部キャッシュに記憶しているチェーンリストが転送済となって追加でチェーンリストを読み出さないとデータ転送が継続できなくなる場合もある。このような場合は、チェーンリストが枯渇する前に、転送データストア処理部１０３は、記憶装置１３に対して経路１０３ａを使用してチェーンリストの追加読込処理を開始する（４１７）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読込を行う（４１８）。
【００５７】
尚、チェーンリストの追加読込には、データ転送開始時に通知（４０７）によって取得した転送データサイズの総量をユニット毎の転送サイズの和が超えることが無いようにチェーンリストを追加で読み出す制御も行われる。
【００５８】
４２０：
転送データロード処理部１０２及び転送データストア処理部１０３の処理によって４１２〜４１４のデータ転送を継続し、また、必要に応じてチェーンリストの追加読込（４１５〜４１８）も行いながらデータ転送が継続される。その後、転送データストア処理部１０３は、４０７にて通知された転送データの総量に転送データのデータ転送量が達したことを検出すると、データ転送処理を終了（４１９）させて、データ転送制御部１０１にその旨の通知を行う（４２０）。
【００５９】
４２１：
データ転送制御部１０１は、４２０の通知を受けて４０１の指示で開始されたデータ転送処理の終了をＴＯＥ制御部１００に通知する。
【００６０】
図５は実施形態１のデータ転送のシーケンス図であり、特に、ネットワークに対してパケットを受信する場合に行われるデータ転送について示したものである。図１に示す通信装置におけるデータ転送処理について、各制御部の制御や処理部の処理の流れが分かるように示したものである。
【００６１】
５０１：
ＴＯＥ制御部１００からネットワークから送信されてくるパケットを受信して通信装置内部に該受信パケットを取り込むためのデータ転送処理を開始する指示が、データ転送制御部１０１に通知される。この通知にはデータ転送の内容を記述したディスクリプタを記述した記憶装置１３内のアドレス情報も含まれる。
【００６２】
５０２〜５０５：
５０１の通知を受けたデータ転送制御部１０１は、ディスクリプタロード処理部１０４に対して、ディスクリプタの読出を通知する（５０２）。この通知にはデータ転送の内容を記述したディスクリプタを記憶した記憶装置１３内のアドレス情報も含まれる。５０２の通知を受けたディスクリプタロード処理部１０４は、記憶装置１３の所定の場所からディスクリプタの読出要求（５０３）を行ってディスクリプタを取得する（５０４）。そして、取得したディスクリプタをデータ転送制御部１０１に通知する（５０５）。
【００６３】
５０６、５０７：
ディスクリプタを内部キャッシュに記憶したデータ転送制御部１０１は、転送データロード処理部１０２と転送データストア処理部１０３に対してデータ転送開始を通知する（５０６、５０７）。ここで通知される情報は、ディスクリプタに記述されているデータ転送処理の転送データの総量とチェーンリストが記憶されている記憶装置１３のアドレス情報も含まれる。
【００６４】
５０８、５０９：
５０６の通知を受けた転送データロード処理部１０２は、記憶装置１３に対して経路１０２ａを使用してチェーンリストの読取処理を開始する（５０８）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読取を行う（５０９）。
【００６５】
５１０、５１１：
５０７の通知を受けた転送データストア処理部１０３は、記憶装置１３に対して経路１０３ａを使用してチェーンリストの読取処理を開始する（５１０）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読取を行う（５１１）。
【００６６】
５１２〜５１４：
チェーンリストを取得した転送データロード処理部１０２は、ＭＡＣ制御部１０５の受信バッファからチェーンリストのユニット単位でデータの読出を行う（５１２）。その後、転送データストア処理部１０３に該データの引き渡しを実行する（５１３）。転送データを受け取った転送データストア処理部１０３は、チェーンリストで指定される、記憶装置１３のアドレスに対してデータの書出を行う（５１４）。５１２〜５１４の一連のデータ転送は、ユニット単位で転送を繰り返し継続し、最終的には転送データ内のＥＯＦを検出するまでチェーンリストに従ってデータ転送を継続する（５１９）。
【００６７】
５１５、５１６：
５１２〜５１４のデータ転送を継続していると、転送データロード処理部１０２の内部キャッシュに記憶しているチェーンリストが転送済となって追加でチェーンリストを読み出さないとデータ転送が継続できなくなる場合もある。このような場合は、チェーンリストが枯渇する前に、転送データロード処理部１０２は、記憶装置１３に対して経路１０２ａを使用してチェーンリストの追加読込処理を開始する（５１５）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読込を行う（５１６）。
【００６８】
尚、ネットワークからのパケットを受信する場合は、チェーンリストに転送データの総量が未定のままでデータ転送が開始されている。従って、読み出したチェーンリスト分のデータ転送を終了する前に転送データ内にＥＯＦがあればデータ転送は終了する場合もある。
【００６９】
５１７、５１８：
５１２〜５１４のデータ転送を継続していると、転送データストア処理部１０３の内部キャッシュに記憶しているチェーンリストが転送済となって追加でチェーンリストを読み出さないとデータ転送が継続できなくなる場合もある。このような場合は、チェーンリストが枯渇する前に、転送データストア処理部１０３は、記憶装置１３に対して経路１０３ａを使用してチェーンリストの追加読込処理を開始する（５１７）。その後、記憶装置１３から所定のチェーンリストを内部キャッシュに記憶できる容量だけ読込を行う（５１８）。
【００７０】
尚、ネットワークからのパケットを受信する場合は、チェーンリストに転送データの総量が未定のままでデータ転送が開始されている。従って、読み出したチェーンリスト分のデータ転送を終了する前に転送データ内にＥＯＦがあればデータ転送は終了する場合もある。
【００７１】
５２０：
転送データロード処理部１０２及び転送データストア処理部１０３の処理によって５１２〜５１４のデータ転送を継続し、また、必要に応じてチェーンリストの追加読込（５１５〜５１８）も行いながらデータ転送が継続される。その後、転送データストア処理部１０３は、転送データ内部にＥＯＦを検出すると、データ転送処理を終了（５１９）させて、データ転送制御部１０１にその旨の通知を行う（５２０）。
【００７２】
図５に示したように、データ転送中にチェーンリストの読込処理（５１７、５１８）を実行している最中において、転送データ内にＥＯＦを検出して転送データ処理を終了する場合もある。このようなタイミングが発生した場合は、最後のデータ書出を行った（５１９）後、５１８のチェーンリストの読込処理が終了した後で５２０の通知を出すように制御されている。
【００７３】
５２１：
データ転送制御部１０１は、５２０の通知を受けて５０１の指示で開始されたデータ転送処理の終了をＴＯＥ制御部１００に通知する。
【００７４】
図１０は、転送データロード処理部１０２と転送データストア処理部１０３の内部に装備しているチェーンリストのキャッシュ構成を示す図である。転送データロード処理部１０２と転送データストア処理部１０３の内部のキャッシュ構成と該キャッシュの制御方法は同じである。
【００７５】
このキャッシュは、チェーンリストのユニット単位で構成されており、ユニット数として複数個（最大１６個分）のユニット数のチェーンリストをキャッシュできる構造（階層構造）となっている。読み出されたチェーンリストは、図中の下段から順に蓄積される。また、ＦＩＦＯの構成でもあるので図中の下段から順にデータ転送処理が進むにつれてチェーンリストも消費されていく仕組みになっている。
【００７６】
次に、キャッシュの使用方法について説明する。図４及び図５に示すタイミングでは、４０８、４１０、５０８、５１０が実行されると、ユニット数が１００１のレベル（第１のレベル）までキャッシュにチェーンリストが読み込まれる。その後、データ転送処理が開始されると徐々に蓄積されているチェーンリストが減り、１００２のレベル（第２のレベル）のユニット数まで消費された段階で、追加のチェーンリストの読込処理が実行される。このタイミングは図４及び図５に示すタイミングでは、４１５、４１７、５１５、５１７のタイミングである。そして、追加でチェーンリストを読み込んだ場合は１００３のユニット数のところまでキャッシュに読み込まれる。更に、データ転送が継続する場合は、上記の１００２のレベルのユニット数までチェーンリストが消費されると、１００３のレベル（第３のレベル）のユニット数までチェーンリストが新たに読み込まれる処理が繰り返される。
【００７７】
以上のような制御によって、転送データロード処理部１０２と転送データストア処理部１０３の内部キャッシュは使用される仕組みとなっている。
【００７８】
以上説明したように、実施形態１によれば、同一のディスクリプタ及びチェーンリストのフォーマットを用いて、転送データの総量が既知である転送と未定である転送を選択して実行することが可能となる。これにより、２種類のデータ転送モードに対応するためにデータ転送装置の回路規模を増大させること無く、最小の回路構成で実装できる。
【００７９】
また、ネットワークから受信するパケットを一旦受信バッファに蓄積完了する前に、データ転送処理を実行するので通信プロトコル処理の開始が早くなる。これにより、ネットワークから受信するパケットの通信プロトコル処理を高速化することができる。
【００８０】
また、転送データの総量が既知である転送と未定である転送のそれぞれにおいて、データ転送完了を最適なタイミングで検出することが可能となる。これにより、複数のデータ転送モードが混在したデータ転送要求が発生してもデータ転送装置を効率的に使用することができる。
【００８１】
＜実施形態２＞
図６は実施形態２のデータ転送のシーケンス図であり、特に、ネットワークに対してパケットを受信する場合に行われるデータ転送について示したものである。図１に示す通信装置におけるデータ転送処理について、各制御部の制御や処理部の処理の流れが分かるように示したものである。
【００８２】
尚、実施形態２では、実施形態１の図５のデータ転送に対して、データ転送の終了処理が異なっている。また、図６の中の５０１〜５１７及び５１９〜５２１は上記にて説明したものと同等であるため、その詳細については省略する。
【００８３】
６０１：
５０１によってデータ転送（５１２〜５１４）が開始され、転送データストア処理部１０３が転送データ内にＥＯＦを検出した時に、既に５１７のチェーンリストの読出要求を行っていた場合は、その読出要求の中断処理（６０１）を実施する。この中断処理（６０１）を実施した後に、５２０の通知を出すように制御されている。
【００８４】
以上説明したように、実施形態２によれば、実施形態１で説明した効果に加えて、不要なチェーンリストの読出を禁止することができる。
【００８５】
＜実施形態３＞
図７は実施形態３のデータ転送のシーケンス図であり、特に、ネットワークに対してパケットを送信する場合に行われるデータ転送について示したものである。図１に示す通信装置におけるデータ転送処理について、各制御部の制御や処理部の処理の流れが分かるように示したものである。
【００８６】
実施形態３では、実施形態１の図４のデータ転送に対して、供給クロックの制御タイミングを追加した部分が異なっている。また、図７の中の４０１〜４２１は図４にて説明したものと同等であるため、その詳細については省略する。
【００８７】
７０１：
４０１によってデータ転送（４１２〜４１４）を開始する通知を受信したデータ転送制御部１０１は、クロック制御部１０６に対して動作クロックの供給を開始する通知（７０１）を行う。その後、データ転送制御部１０１は、ディスクリプタロード処理部１０４に対して、ディスクリプタの読出を通知する（４０２）。
【００８８】
７０１の通知を受信したクロック制御部１０６は、所定の処理部に対する動作クロックの供給を開始する。ここで、動作クロックの供給対象となる処理部は、転送データロード処理部１０２と転送データストア処理部１０３、そして、ディスクリプタロード処理部１０４である。
【００８９】
７０２：
転送データストア処理部１０３は、チェーンリストに記述された転送データの総量に転送データが達したことを検出すると、データ転送処理を終了（４１９）させて、データ転送制御部１０１にその旨の通知を行う（４２０）。
【００９０】
４２０の通知を受信したデータ転送制御部１０１は、クロック制御部１０６に対して動作クロックの供給を停止する通知（７０２）を行う。７０２の通知を受信したクロック制御部１０６は、所定の処理部に対する動作クロックの供給を停止する。ここで、動作クロックの停止対象となる処理部は、転送データロード処理部１０２と転送データストア処理部１０３、そして、ディスクリプタロード処理部１０４である。
【００９１】
このように動作クロックを停止することで、データ転送処理が実行されていない期間の電力消費を低減することが可能となる。
【００９２】
以上説明したように、実施形態３によれば、データ転送処理の停止中は、動作クロックの供給を停止して消費電力の低減を行う。この場合に、データ転送完了を最適なタイミングで検出して、最適なタイミングで動作クロックの供給のオン／オフ制御が可能となる。これにより、複数のデータ転送モードが混在したデータ転送要求が発生してもデータ転送装置の消費電力を効率的に低減することができる。
【００９３】
＜実施形態４＞
図８は実施形態４のデータ転送のシーケンス図であり、特に、ネットワークに対してパケットを受信する場合に行われるデータ転送について示したものである。図１に示す通信装置におけるデータ転送処理について、各制御部の制御や処理部の処理の流れが分かるように示したものである。
【００９４】
実施形態４では、実施形態１の図５のデータ転送に対して、供給クロックの制御タイミングを追加した部分が異なっている。また、図８の中の５０１〜５２１は図５にて説明したものと同等であるため、その詳細については省略する。
【００９５】
８０１：
５０１によってデータ転送（５１２〜５１４）を開始する通知を受信したデータ転送制御部１０１は、クロック制御部１０６に対して動作クロックの供給を開始する通知（８０１）を行う。その後、データ転送制御部１０１は、ディスクリプタロード処理部１０４に対して、ディスクリプタの読出を通知する（５０２）。
【００９６】
８０１の通知を受信したクロック制御部１０６は、所定の処理部に対する動作クロックの供給を開始する。ここで、動作クロックの供給対象となる処理部は、転送データロード処理部１０２と転送データストア処理部１０３、そして、ディスクリプタロード処理部１０４である。
【００９７】
８０２：
転送データストア処理部１０３は、転送データ内部にＥＯＦを検出して転送データ処理を終了する場合もある。このようなタイミングが発生した場合は、最後のデータ書出を行った（５１９）後、５１８のチェーンリストの読込処理が終了した後で、５２０の通知を出すように制御されている。
【００９８】
５２０の通知を受信したデータ転送制御部１０１は、クロック制御部１０６に対して動作クロックの供給を停止する通知（８０２）を行う。８０２の通知を受信したクロック制御部１０６は、所定の処理部に対する動作クロックの供給を停止する。ここで、動作クロックの停止対象となる処理部は、転送データロード処理部１０２と転送データストア処理部１０３、そして、ディスクリプタロード処理部１０４である。
【００９９】
このように動作クロックを停止することで、データ転送処理が実行されていない期間の電力消費を低減することが可能となる。
【０１００】
図１１は、データ転送開始時に予めデータ転送サイズが確定している場合（図７）とデータ転送サイズが未定の場合（図８）のデータ転送完了から動作クロックの供給を停止するまでの時間差を示すフローチャートである。このフローチャートには、ＴＯＥ部１１におけるデータ転送について予めデータ転送サイズが確定しているのか、あるいは未定なのかの判定を実行する。そして、データ転送を開始して該データ転送完了を検出してから動作クロックの供給を停止するまでの処理を示している。
【０１０１】
Ｓ１１０１（端子記号）：
この端子記号Ｓ１１０１は、このフローチャートのスタートを示している。４０１（あるいは５０１）の通知を受けてデータ転送制御部１０１がデータ転送処理を開始した状態を示している。また、７０１（あるいは８０１）の通知を受けてクロック制御部１０６は、所定の処理部に対する動作クロックの供給を開始する。
【０１０２】
Ｓ１１０２（条件判断記号）：
この条件判断記号Ｓ１１０２は、これから開始するデータ転送において予め転送サイズが確定しているかどうかを条件として経路選択を行うことを示している。転送サイズが確定している場合（Ｓ１１０２でＹＥＳ）、処理記号Ｓ１１０３へ移行する。一方、転送サイズが確定していない場合（Ｓ１１０２でＮＯ）、処理記号Ｓ１１０６へ移行する。
【０１０３】
ここでは、転送データストア処理部１０３が、４１１（あるいは５１１）によってチェーンリストの読込を行った後にそのチェーンリストの記述内容に従って、転送サイズの確定の有無が判断される。具体的には、図３のチェーンリストにおいて、３０２の欄に転送サイズが確定していない意味を持つ“ＦＦＦＦ”等の特定の固定値が記述されているかどうかで判断する。転送サイズが確定している場合は、図７に示すシーケンスを実行し、転送サイズが確定していない場合は図８に示すシーケンスを実行することになる。
【０１０４】
Ｓ１１０３（処理記号）：
この処理記号Ｓ１１０３は、データ転送を実行する処理を示している。４１２〜４１４に記述の一連のデータ転送処理を実行する。
【０１０５】
Ｓ１１０４（条件判断記号）：
この条件判断記号Ｓ１１０４は、データ転送が完了したかどうかを条件として経路選択を行うことを示している。データ転送の完了を検出した場合（Ｓ１１０４でＹＥＳ）、処理記号Ｓ１１０５へ移行する。一方、データ転送の完了を検出していない場合（Ｓ１１０４でＮＯ）、現在の状態を継続する。
【０１０６】
転送データストア処理部１０３は、４０７で通知されたディスクリプタに記述されている転送データの総量にデータ転送量が達した場合に完了したと判断する。
【０１０７】
Ｓ１１０５（処理記号）：
この処理記号Ｓ１１０５は、クロック制御部１０６によって所定の処理部に対する動作クロックの供給を停止する処理を示している。転送データストア処理部１０３は、データ転送が終了したことをデータ転送制御部１０１に通知（４２０）する。そして、この通知（４２０）を受信したデータ転送制御部１０１は、クロック制御部１０６に対して動作クロックの供給を停止する通知（７０２）を行う。７０２の通知を受信したクロック制御部１０６は、転送データロード処理部１０２と転送データストア処理部１０３、そして、ディスクリプタロード処理部１０４に対して動作クロックの供給を停止する処理（クロックゲートオン）を行う。
【０１０８】
Ｓ１１０６（処理記号）：
この処理記号Ｓ１１０６は、データ転送を実行する処理を示している。５１２〜５１４に記述の一連のデータ転送処理を実行する。
【０１０９】
Ｓ１１０７（条件判断記号）：
この条件判断記号Ｓ１１０７は、データ転送が完了したかどうかを条件として経路選択を行うことを示している。データ転送の完了を検出した場合（Ｓ１１０７でＹＥＳ）、条件判断記号Ｓ１１０８へ移行する。一方、データ転送の完了を検出していない場合（Ｓ１１０６でＮＯ）、現在の状態を継続する。
【０１１０】
転送データストア処理部１０３は、転送データ内にＥＯＦを検出した場合に完了したと判断する。
【０１１１】
Ｓ１１０８（条件判断記号）：
この条件判断記号Ｓ１１０８は、チェーンリストの読込処理が終了しているかどうかを条件として経路選択を行うことを示している。チェーンリストの読込処理が完了している場合（Ｓ１１０８でＹＥＳ）、処理記号Ｓ１１０９へ移行する。一方、チェーンリストの読込処理が完了していない場合（Ｓ１１０８でＮＯ）、現在の状態を継続する。
【０１１２】
転送データストア処理部１０３が転送データ内にＥＯＦを検出した時点でチェーンリストの読込処理が完了していれば、チェーンリストの読込処理は完了していると判断して処理記号Ｓ１１０９へ移行する。
【０１１３】
また、転送データストア処理部１０３が転送データ内にＥＯＦを検出した時点でチェーンリストの読込処理が完了していなければ、チェーンリストの読込処理の完了を待って処理記号Ｓ１１０９へ移行する。
【０１１４】
また、転送データストア処理部１０３が転送データ内にＥＯＦを検出した時点でチェーンリストの読込処理が終了していなければ、チェーンリストの読込処理の中断処理（９０１）を行って処理記号Ｓ１１０９へ移行する。
【０１１５】
Ｓ１１０９（処理記号）
この処理記号Ｓ１１０９は、クロック制御部１０６によって所定の処理部に対する動作クロックの供給を停止する処理を示している。転送データストア処理部１０３は、データ転送が終了したことをデータ転送制御部１０１に通知（５２０）する。そして、この通知（５２０）を受信したデータ転送制御部１０１は、クロック制御部１０６に対して動作クロックの供給を停止する通知（８０２）を行う。８０２の通知を受信したクロック制御部１０６は、転送データロード処理部１０２と転送データストア処理部１０３、そして、ディスクリプタロード処理部１０４に対して動作クロックの供給を停止する処理（クロックゲートオン）を行う。
【０１１６】
Ｓ１１１０（端子記号）
この端子記号Ｓ１１１０は、このフローチャートのストップを示している。４２１（あるいは５２１）の通知をＴＯＥ制御部１００に送信してデータ転送処理がすべて終了し、データ転送制御部１０１がアイドル状態に戻ったことを示している。また、７０２（あるいは８０２）の通知を受けてクロック制御部１０６は、所定の処理部に対する動作クロックの供給を停止する。
【０１１７】
上記の動作フロー（１１０１〜１１１０）において、処理記号Ｓ１１０５で供給クロックが停止するタイミングと処理記号Ｓ１１０９で供給クロックが停止するタイミングが条件判断記号Ｓ１１０８の処理時間に相当する時間ｔ（１１１１）だけ差分がある。
【０１１８】
この差分（１１１１）は、データ転送処理において転送サイズが予め確定しているデータ転送とそうでないデータ転送を実行した場合におけるデータ転送終了を検出する時間差となる。
【０１１９】
以上説明したように、実施形態４によれば、データ転送処理の停止中は、動作クロックの供給を停止して消費電力の低減を行う。この場合に、データ転送完了を最適なタイミングで検出して、最適なタイミングで動作クロックの供給オン／オフ制御が可能となる。これにより、複数のデータ転送モードが混在したデータ転送要求が発生してもデータ転送装置の消費電力を効率的に低減することができる。
【０１２０】
＜実施形態５＞
図９は実施形態５のデータ転送のシーケンス図であり、特に、ネットワークに対してパケットを受信する場合に行われるデータ転送について示したものである。図１に示す通信装置におけるデータ転送処理について、各制御部の制御や処理部の処理の流れが分かるように示したものである。
【０１２１】
実施形態５では、実施形態４の図８のデータ転送に対して、データ転送の終了処理が異なっている。尚、図９の中の５０１〜５２１及び８０１、８０２はそれぞれ図５及び図８にて説明したものと同等であるため、その詳細については省略する。
【０１２２】
９０１：
５０１によってデータ転送（５１２〜５１４）が開始され、転送データストア処理部１０３が転送データ内にＥＯＦを検出した時に、既に５１７のチェーンリストの読出要求を行っていた場合は、その読出要求の中断処理（９０１）を実施する。この中断処理（９０１）を実施した後に、５２０の通知を出すように制御されている。
【０１２３】
５２０の通知を受信したデータ転送制御部１０１は、クロック制御部１０６に対して動作クロックの供給を停止する通知（８０２）を行う。８０２の通知を受信したクロック制御部１０６は、所定の処理部に対する動作クロックの供給を停止する。ここで、動作クロックの停止対象となる処理部は、転送データロード処理部１０２と転送データストア処理部１０３、そして、ディスクリプタロード処理部１０４である。
【０１２４】
このように、動作クロックを停止することで、データ転送処理が実行されていない期間の電力消費を低減することが可能となる。
【０１２５】
以上説明したように、実施形態５によれば、実施形態４で説明した効果に加えて、不要なチェーンリストの読出要求を既に行っていた場合は、その読出要求の中断処理を実行して、所定の処理部に対する動作クロックの供給を停止する。これにより、最適なタイミングで動作クロックの供給オン／オフ制御が可能となる。
【０１２６】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウエア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014032564.tif 000003
【図２】
2014032564.tif 000004
【図３】
2014032564.tif 000005
【図４】
2014032564.tif 000006
【図５】
2014032564.tif 000007
【図６】
2014032564.tif 000008
【図７】
2014032564.tif 000009
【図８】
2014032564.tif 000010
【図９】
2014032564.tif 000011
【図１０】
2014032564.tif 000012
【図１１】
2014032564.tif 000013