(57)【要約】【課題】パケットロスによる通信品質の劣化が発生することなく、モードの切り替えを行うことができるＤＭＡ制御装置を提供する。【解決手段】それぞれ受信用チャネル及び送信用チャネルを有し、ディスクリプタに従ってＤＭＡによるデータ転送を行うメインＣＰＵ用チャネル及びサブＣＰＵ用チャネルの２つのチャネルを設け、チャネル切り替え部が、モード設定レジスタに設定されている情報に応じてメインＣＰＵ用チャネル又はサブＣＰＵ用チャネルを選択し、転送するパケットの境界でチャネルの切り替えを行うようにして、ＤＭＡ動作を中断することなくチャネルの切り替えを行う。【選択図】図１
2015087872.tif 000002
【特許請求の範囲】
【請求項１】
第１の受信用チャネル及び第１の送信用チャネルを有し、第１のメモリから取得したディスクリプタに従ってダイレクトメモリアクセスによるデータ転送を行う第１のチャネルと、
第２の受信用チャネル及び第２の送信用チャネルを有し、第２のメモリから取得したディスクリプタに従ってダイレクトメモリアクセスによるデータ転送を行う第２のチャネルと、
モード設定レジスタと、
前記モード設定レジスタに設定されている情報に応じて前記第１のチャネル及び前記第２のチャネルの内の１つのチャネルを選択するとともに、転送するパケットの境界を検出し、検出された前記パケットの境界で、選択したチャネルへの切り替えを行うチャネル切り替え部とを有することを特徴とするダイレクトメモリアクセス制御装置。
【請求項２】
前記チャネル切り替え部は、前記第２のチャネルから前記第１のチャネルへの切り替えを行う場合に、前記第２のチャネルが有する前記第２の送信用チャネルから送信されたデータを前記第１のチャネルが有する前記第１の受信用チャネルに転送するループバック処理部を有することを特徴とする請求項１記載のダイレクトメモリアクセス制御装置。
【請求項３】
受信されたデータを格納するバッファを有し、
前記チャネル切り替え部は、前記ループバック処理部によるデータの転送の実行中は、前記バッファからのデータの読み出しを抑制し、前記ループバック処理部によるデータの転送後に、前記バッファからデータを読み出して前記第１のチャネルに転送することを特徴とする請求項２記載のダイレクトメモリアクセス制御装置。
【請求項４】
前記第１のチャネルから前記第２のチャネルへの切り替えを行う場合に、前記チャネル切り替え部により検出されたパケットの境界で、前記第１のチャネルが有する前記第１の送信用チャネルのリセット処理を実行することを特徴とする請求項１〜３の何れか１項に記載のダイレクトメモリアクセス制御装置。
【請求項５】
前記モード設定レジスタには、第１のモードであるか、又は前記第１のモードよりも低消費電力の動作である第２のモードであるかを示す情報が設定され、
前記チャネル切り替え部は、前記モード設定レジスタに設定されている情報が前記第１のモードを示す場合、前記第１のチャネルを選択し、前記モード設定レジスタに設定されている情報が前記第２のモードを示す場合、前記第２のチャネルを選択することを特徴とする請求項１〜４の何れか１項に記載のダイレクトメモリアクセス制御装置。
【請求項６】
前記チャネル切り替え部は、転送する前記パケットのヘッダ情報に基づいて前記パケットの境界を検出することを特徴とする請求項１〜５の何れか１項に記載のダイレクトメモリアクセス制御装置。
【請求項７】
第１の受信用チャネル及び第１の送信用チャネルを有し、第１のメモリから取得したディスクリプタに従ってダイレクトメモリアクセスによるデータ転送を行う第１のチャネルと、第２の受信用チャネル及び第２の送信用チャネルを有し、第２のメモリから取得したディスクリプタに従ってダイレクトメモリアクセスによるデータ転送を行う第２のチャネルと、モード設定レジスタとを有するダイレクトメモリアクセス制御装置の制御方法であって、
前記ダイレクトメモリアクセス制御装置が有するチャネル切り替え部が、前記モード設定レジスタに設定されている情報に応じて前記第１のチャネル及び前記第２のチャネルの内の１つのチャネルを選択し、
前記チャネル切り替え部が、転送するパケットの境界の検出を行い、検出された前記パケットの境界で、選択したチャネルへの切り替えを行うことを特徴とするダイレクトメモリアクセス制御装置の制御方法。
【請求項８】
第１のＣＰＵ及び第１のメモリと、
前記第１のＣＰＵ及び第１のメモリとはそれぞれ異なる第２のＣＰＵ及び第２のメモリと、
ダイレクトメモリアクセス制御装置とを有し、
前記ダイレクトメモリアクセス制御装置は、
第１の受信用チャネル及び第１の送信用チャネルを有し、前記第１のメモリから取得したディスクリプタに従ってダイレクトメモリアクセスによるデータ転送を行う第１のチャネルと、
第２の受信用チャネル及び第２の送信用チャネルを有し、前記第２のメモリから取得したディスクリプタに従ってダイレクトメモリアクセスによるデータ転送を行う第２のチャネルと、
前記第１のＣＰＵ及び前記第１のメモリを休止させるか否かを示す情報が設定されるモード設定レジスタと、
前記モード設定レジスタに設定されている情報に応じて前記第１のチャネル及び前記第２のチャネルの内の１つのチャネルを選択するとともに、転送するパケットの境界を検出し、検出された前記パケットの境界で、選択したチャネルへの切り替えを行うチャネル切り替え部とを有することを特徴とする情報処理システム。
【請求項９】
前記モード設定レジスタに設定されている情報に応じて前記第１のチャネルから前記第２のチャネルへの切り替えを行う場合、前記第２のチャネルへの切り替え後に前記第１のＣＰＵ及び前記第１のメモリへの通電をオフすることを特徴とする請求項８記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセス制御装置、その制御方法、及び情報処理システムに関する。
【背景技術】
【０００２】
通信ネットワークに接続して通信を行えるネットワーク対応製品は、製品の動作状態が待機（スタンバイ）状態での消費電力値を制限するような規制が各地域でなされるようになってきている。待機（スタンバイ）状態とは、例えばネットワークを介した外部からのトリガによって製品が機能を再開（レジューム）できる状態を指す。
【０００３】
待機時の消費電力を削減するために、通常系とするＣＰＵ（Central Processing Unit）とＲＡＭ（Random Access Memory）を有するとともに、通常系よりも動作時の消費電力が低いＣＰＵとＲＡＭを待機系として有するシステムがある。システムでの処理が少ない場合、大きな電力を消費する通常系を休止し、代わりに消費電力の低い待機系に切り替えて処理を行うことで、時系列的にみてシステム全体での消費電力を削減する。
【０００４】
図１４（Ａ）は、メインＣＰＵ及びサブＣＰＵを有する情報処理システムの例を示す図である。図１４（Ａ）に示す情報処理システムは、通常動作状態において主に処理を行う通常系としてのメインＣＰＵ４１８とＲＡＭ４１９、及び待機状態において処理を行う待機系としてのサブＣＰＵ４２０とＲＡＭ４２１を有し、ネットワークインタフェース部４１１を介してネットワークに接続される。
【０００５】
ネットワークインタフェース部４１１は、ダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）制御装置４１２、メディアアクセス制御（ＭＡＣ：Media Access Control）部４１３、及び物理（ＰＨＹ）部４１４を有する。ＤＭＡ制御装置４１２は、ＲＡＭに列挙された命令を実行するディスクリプタ形式のＤＭＡ制御装置であり、ＲＡＭ４１９又はＲＡＭ４２１に格納されているディスクリプタに基づいて、受信ＤＭＡ処理部４１６が受信に係る処理を行い、送信ＤＭＡ処理部４１７が送信に係る処理を行う。
【０００６】
図１４（Ｂ）は、ＤＭＡ制御装置の内部構成を示す図である。ＤＭＡ制御装置４３０は、受信用のＤＭＡチャネル（受信用チャネル）４３１、送信用のＤＭＡチャネル（送信用チャネル）４４１、ディスクリプタＲｅａｄ／Ｗｒｉｔｅ処理部４５１、データＲｅａｄ／Ｗｒｉｔｅ処理部４５２、パケットデータ退避バッファ４５３を有する。ディスクリプタＲｅａｄ／Ｗｒｉｔｅ処理部４５１は、ディスクリプタ情報の読み出しや書き込みに係る処理を行い、データＲｅａｄ／Ｗｒｉｔｅ処理部４５２は、ＭＡＣ部４５４を介して送受信するデータに係る処理を行う。パケットデータ退避バッファ４５３は、受信したパケットデータを保持するバッファである。
【０００７】
受信用チャネル４３１は、ベースアドレスレジスタ４３２、カレントアドレスレジスタ４３３、エンドアドレスレジスタ４３４、未処理パケット数レジスタ４３５、リスタート処理部４３６、及び制御部４３７を有する。ベースアドレスレジスタ４３２には、ＲＡＭ４５５上に置かれているディスクリプタ４５６の先頭アドレスが格納され、エンドアドレスレジスタ４３４にはＲＡＭ４５５上に置かれているディスクリプタ４５６の最終アドレスが格納される。カレントアドレスレジスタ４３３には、次に処理するパケットに対応するディスクリプタのアドレスが格納される。ここで、ディスクリプタ４５６には、実際にパケットを配置するＲＡＭのアドレス情報、そのパケットの長さ情報、及びそのパケットの処理に必要な情報が含まれる。
【０００８】
未処理パケット数レジスタ４３５は、ＤＭＡチャネルでの未処理のパケット数（残存パケット数）を示す機能を有する。リスタート処理部４４６は、メインＣＰＵ及びサブＣＰＵからＤＭＡチャネルを停止、開始の指示を受信する機能を有する。リスタート処理部４４６は、何れかのＣＰＵからＤＭＡチャネルを停止する指示を受信すると、ＤＭＡチャネルに属するパケットデータの送受信処理を停止させ、ＤＭＡチャネルのディスクリプタ情報をクリアさせる処理を行う。また、リスタート処理部４４６は、何れかのＣＰＵからＤＭＡチャネルを開始する指示を受信すると、ベースアドレスレジスタ４３２の値をカレントアドレスレジスタ４３３に登録させ、未処理パケット数レジスタ４３５をクリアさせる処理を行い、ＤＭＡ動作を開始させる。制御部４３７は、各レジスタ４３２〜４３５に格納される情報を制御する。
【０００９】
送信用チャネル４４１は、ベースアドレスレジスタ４４２、カレントアドレスレジスタ４４３、エンドアドレスレジスタ４４４、未処理パケット数レジスタ４４５、リスタート処理部４４６、及び制御部４４７を有する。なお、これらの機能等は、受信用チャネル４３１が有するベースアドレスレジスタ４３２、カレントアドレスレジスタ４３３、エンドアドレスレジスタ４３４、未処理パケット数レジスタ４３５、リスタート処理部４４６、及び制御部４３７とそれぞれ同様である。
【００１０】
ＤＭＡ制御装置４３０の動作の流れを、パケット受信を例に説明する。ＤＭＡ制御装置４３０は、まず初期化の際にディスクリプタ４５６の先頭アドレスをベースアドレスレジスタ４３２に登録する。そして、ＤＭＡ制御装置４３０は、ベースアドレスレジスタ４３２に登録されたアドレスをディスクリプタ４５６の最初の現在格納位置としてディスクリプタ情報を取得する。ＤＭＡ制御装置４３０は、取得した情報を基にＲＡＭ４５５内に受信したパケットデータを展開し、１パケット受信処理したらディスクリプタに長さ情報や処理状況を反映させる。続いて、ＤＭＡ制御装置４３０は、カレントアドレスレジスタ４４３が保持するアドレスの値をインクリメントし、次のディスクリプタ情報を取得する。ＤＭＡ制御装置４３０は、次のパケットを受信したら、取得したディスクリプタ情報を基に受信したパケットデータをＲＡＭ４５５内に展開する。以降、同様にして受信パケット数分繰り返し行う。
【００１１】
ここで、図１４に示した情報処理システムにおいて、通常系のメインＣＰＵ４１８及びＲＡＭ４１９を用いて処理を行う通常動作状態（通常モード）から待機系のサブＣＰＵ４２０及びＲＡＭ４２１で処理を行う待機状態（待機モード）に切り替える場合、及び待機モードから通常モードに切り替える場合、ＤＭＡ制御装置４３０に対するディスクリプタに係る新たなアドレス情報の再設定が必要になる。図１５は、図１４に示した情報処理システムのモード切り替えを含む動作例を示すフローチャートである。なお、サブＣＰＵ４２０は、通常モード時及び待機モード時の両方で常時起動しており、モード切り替えの管理を行う。一方、メインＣＰＵ４１８は、通常モード時に起動し待機モード時には休止する。
【００１２】
まず、動作を開始すると、サブＣＰＵ４２０が起動する（Ｓ８０１）。そして、メインＣＰＵ４１８を用いる処理、すなわち通常モードであれば（Ｓ８０２のＴＲＵＥ）、メインＣＰＵ４１８が起動する（Ｓ８０３）。一方、メインＣＰＵ４１８を用いる処理でない、すなわち待機モードであれば（Ｓ８０２のＦＡＬＳＥ）、メインＣＰＵ４１８及びＲＡＭ４１９の通電がオフされる（Ｓ８０４）。続いて、ＤＭＡ制御装置４３０をリセットする（Ｓ８０５）。その後、ＤＭＡ制御装置４３０を初期化してベースアドレスレジスタ４３２、４４２にＲＡＭ上のディスクリプタの先頭アドレスを登録した（Ｓ８０６）後、ＤＭＡ制御装置４３０を起動する（Ｓ８０７）。
【００１３】
その後、ＤＭＡ制御装置４３０を用いたパケット送受信処理が行われる（Ｓ８０８）。このとき、通常モードから待機モード、あるいは待機モードから通常モードへのモード切り替えが必要であるとの指示を受けると（Ｓ８０９のＴＲＵＥ）、ＤＭＡ制御装置４３０によるＤＭＡ動作が停止され（Ｓ８１０）、ステップＳ８０２に戻る。そして、切り替えるモードに応じて、前述した処理を再び行う。
【００１４】
複数の入出力装置に対応して設けられた複数のチャネルを有し、チャネルの優先順位に従ってそれぞれ交換し、ＤＭＡ転送を行うＤＭＡ転送装置が提案されている（例えば、特許文献１）。各Ｉ／ＯからのＤＭＡ要求信号に対応する優先レベルを引き出すレジスタに応じて、複数のＤＭＡチャネルから１つを選択するＤＭＡ制御方式が提案されている（例えば、特許文献２）。使用中のＤＭＡチャネルを使用したデータ転送が、予め定められた境界条件に達するまでは、そのＤＭＡチャネルの使用を継続し、境界条件が生じた場合に次のＤＭＡチャネルに移動する技術が提案されている（例えば、特許文献３）。サブＣＰＵにより処理を行っている状態からメインＣＰＵにより処理を行う状態へ復帰するときに、サブＣＰＵがＳＲＡＭに格納されているデータをＤＲＡＭに移動させる技術が提案されている（例えば、特許文献４）。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平２−９６２６１号公報
【特許文献２】特開昭６２−５０９４６号公報
【特許文献３】特開平１０−４０２１１号公報
【特許文献４】特開２０１０−７４２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
図１４に示した情報処理システムは、通常モードから待機モードへ遷移する場合、及び待機モードから通常モードへ遷移する場合、図１５に示したように、ＤＭＡ制御装置の停止（Ｓ８１０）やリセット（Ｓ８０５）及び初期化（Ｓ８０６）などの処理が発生する。そのため、これらの処理中、言い換えれば図１５に示したステップＳ８１０及びその後のステップＳ８０２〜Ｓ８０６）を行っている期間にネットワークからの新たなパケット受信があると、そのパケットを取りこぼしてしまい、パケットロスを発生してしまうという問題がある。
本発明の目的は、パケットロスによる通信品質の劣化が発生することなく、モードの切り替えを行うことができるＤＭＡ制御装置を提供することにある。
【課題を解決するための手段】
【００１７】
ＤＭＡ制御装置の一態様は、それぞれ受信用チャネル及び送信用チャネルを有し、ディスクリプタに従ってＤＭＡによるデータ転送を行う２つのチャネルと、モード設定レジスタと、モード設定レジスタに設定されている情報に応じて２つのチャネルの内の１つのチャネルを選択するとともに、転送するパケットの境界を検出し、検出されたパケットの境界で、選択したチャネルへの切り替えを行うチャネル切り替え部とを有する。
【発明の効果】
【００１８】
開示のＤＭＡ制御装置は、ＤＭＡ動作を中断することなくチャネルの切り替えを行うことができ、パケットロスによる通信品質の劣化を発生させることなくモードの切り替えが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態におけるＤＭＡ制御装置を有する情報処理システムの構成例を示す図である。
【図２】本実施形態における受信パケットデータの解析処理を説明するための図である。
【図３】本実施形態におけるチャネル切り替え部の動作例を示すフローチャートである。
【図４】本実施形態における送受信パケット処理を示すフローチャートである。
【図５】本実施形態における情報処理システムの動作例を示すフローチャートである。
【図６】第１の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。
【図７】本発明の第２の実施形態におけるＤＭＡ制御装置を有する情報処理システムの構成例を示す図である。
【図８】本実施形態における送信パケットデータの生成処理を説明するための図である。
【図９】第２の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。
【図１０】本発明の第３の実施形態におけるＤＭＡ制御装置を有する情報処理システムの構成例を示す図である。
【図１１】第２の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。
【図１２】本発明の第４の実施形態におけるＤＭＡ制御装置を有する情報処理システムの構成例を示す図である。
【図１３】第４の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。
【図１４】メインＣＰＵ及びサブＣＰＵを有する情報処理システムの例を示す図である。
【図１５】図１４に示した情報処理システムの動作例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を図面に基づいて説明する。
【００２１】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１は、第１の実施形態におけるダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）制御装置を有する情報処理システムの構成例を示す図である。情報処理システムは、図１に示すように、ＤＭＡ制御装置１０、メインＣＰＵ（Central Processing Unit）２０、メインＣＰＵ用のＲＡＭ（Random Access Memory）３０、サブＣＰＵ４０、サブＣＰＵ用のＲＡＭ５０、及びメディアアクセス制御（ＭＡＣ：Media Access Control）部６０を有する。
【００２２】
図１に示した情報処理システムにおいて、サブＣＰＵ４０とＲＡＭ５０の組は、メインＣＰＵ２０とＲＡＭ３０の組よりも消費電力が低い。通常動作状態（通常モード）時には、メインＣＰＵ２０及びサブＣＰＵ４０はともに起動されている。一方、待機状態（待機モード）時には、通常系としてのメインＣＰＵ２０とＲＡＭ３０は通電がオフされて休止し、待機系としてのサブＣＰＵ４０とＲＡＭ５０による処理が行われる。また、情報処理システムは、ＭＡＣ部６０及び図示しない物理（ＰＨＹ）部を介してネットワークに接続される。
【００２３】
ＤＭＡ制御装置１０は、ＲＡＭ３０に格納されているディスクリプタ３１やＲＡＭ５０に格納されているディスクリプタ５１に基づいてデータをＤＭＡ転送するディスクリプタ形式のＤＭＡ制御装置である。ＤＭＡ制御装置１０は、ディスクリプタＲｅａｄ／Ｗｒｉｔｅ処理部１０２、データＲｅａｄ／Ｗｒｉｔｅ処理部１０３、チャネル切り替え部（Packet Switcher）１０４、モードレジスタ１０５、パケットデータ退避バッファ１０６を有する。
【００２４】
また、ＤＭＡ制御装置１０は、メインＣＰＵ用のＤＭＡチャネル（メインＣＰＵ用チャネル）１０１Ａ、及びサブＣＰＵ用のＤＭＡチャネル（サブＣＰＵ用チャネル）１０１Ｂを有する。すなわち、本実施形態におけるＤＭＡ制御装置１０は、通常系及び待機系のそれぞれに対して個別のＤＭＡチャネルを有している。
【００２５】
メインＣＰＵ用チャネル１０１Ａは、受信用のＤＭＡチャネル（受信用チャネル）１１１Ａ及び送信用のＤＭＡチャネル（送信用チャネル）１２１Ａを有する。同様に、サブＣＰＵ用チャネル１０１Ｂは、受信用のＤＭＡチャネル（受信用チャネル）１１１Ｂ及び送信用のＤＭＡチャネル（送信用チャネル）１２１Ｂを有する。
【００２６】
各々の受信用チャネル１１１Ａ（１１１Ｂ）は、ベースアドレスレジスタ１１２Ａ（１１２Ｂ）、カレントアドレスレジスタ１１３Ａ（１１３Ｂ）、エンドアドレスレジスタ１１４Ａ（１１４Ｂ）、未処理パケット数レジスタ１１５Ａ（１１５Ｂ）、リスタート処理部１１６Ａ（１１６Ｂ）、及び制御部１１７Ａ（１１７Ｂ）を有する。各々の送信用チャネル１２１Ａ（１２１Ｂ）は、ベースアドレスレジスタ１２２Ａ（１２２Ｂ）、カレントアドレスレジスタ１２３Ａ（１２３Ｂ）、エンドアドレスレジスタ１２４Ａ（１２４Ｂ）、未処理パケット数レジスタ１２５Ａ（１２５Ｂ）、リスタート処理部１２６Ａ（１２６Ｂ）、及び制御部１２７Ａ（１２７Ｂ）を有する。
【００２７】
各チャネルのベースアドレスレジスタ、カレントアドレスレジスタ、エンドアドレスレジスタ、未処理パケット数レジスタ、リスタート処理部、及び制御部のそれぞれの機能等は同様である。ベースアドレスレジスタには、対応するＲＡＭ上に置かれているディスクリプタの先頭アドレスが格納され、エンドアドレスレジスタには、対応するＲＡＭ上に置かれているディスクリプタの最終アドレスが格納される。カレントアドレスレジスタには、次に処理するパケットに対応するディスクリプタのアドレスが格納される。ディスクリプタには、実際にパケットを配置するＲＡＭのアドレス情報、そのパケットの長さ情報、及びそのパケットの処理に必要な情報が含まれる。
【００２８】
未処理パケット数レジスタは、ＤＭＡチャネルでの未処理のパケット数（残存パケット数）を示す機能を有する。リスタート処理部は、ＤＭＡチャネルを停止、開始の指示を受信する機能を有する。リスタート処理部は、ＤＭＡチャネルを停止する指示を受信すると、ＤＭＡチャネルに属するパケットデータの送受信処理を停止させ、ＤＭＡチャネルのディスクリプタ情報をクリアさせる処理を行う。また、リスタート処理部は、ＤＭＡチャネルを開始する指示を受信すると、ベースアドレスレジスタの値をカレントアドレスレジスタに登録させ、未処理パケット数レジスタをクリアさせる処理を行い、ＤＭＡ動作を開始させる。制御部は、各レジスタに格納される情報を制御する。
【００２９】
ディスクリプタＲｅａｄ／Ｗｒｉｔｅ処理部１０２は、ディスクリプタ情報の読み出しや書き込みに係る処理を行う。データＲｅａｄ／Ｗｒｉｔｅ処理部１０３は、ＭＡＣ部４５４を介して送受信するデータに係る処理を行う。パケットデータ退避バッファ１０６は、ネットワークからの受信されたパケットデータを保持するバッファである。
【００３０】
チャネル切り替え部（Packet Switcher）１０４は、モード設定レジスタ１０５に設定されている情報に応じて、使用するＤＭＡチャネルを選択して切り替える。チャネル切り替え部１０４の受信処理部１４１は、選択したＤＭＡチャネルに受信パケットデータを出力する。チャネル切り替え部１０４の送信処理部１４２は、選択したＤＭＡチャネルからの送信パケットデータが入力される。モード設定レジスタ１０５には、情報処理システムの運用中のモード、すなわち通常動作状態（通常モード）であるか、待機状態（待機モード）であるかを示す情報が設定される。なお、モード設定レジスタ１０５への情報の設定はサブＣＰＵ４０が行う。
【００３１】
ここで、チャネル切り替え部１０４は、パケットの解析処理機能を有しており、モード設定レジスタ１０５の情報に応じたＤＭＡチャネルの切り替えをパケット境界で行う。例えば、本実施形態における情報処理システムは、図２（Ａ）に示すデータフォーマットでネットワークからデータを受信して、受信パケット用バッファ２０１に受信パケットデータ２０２として格納する。
【００３２】
図２（Ａ）には、イーサネット（登録商標）ヘッダ部２０３、ＩＰヘッダ部２０４、ＴＣＰヘッダ部２０５、ペイロード部２０６、及びトレーラ２０７を有するＴＣＰ／ＩＰｖ４のデータフォーマットを一例として示している。例えば、ＩＰヘッダ部２０４のＴｏｔａｌ  ＬｅｎｇｔｈフィールドからＩＰパケット全体のデータサイズが取得でき、ＴＣＰヘッダ部２０５のＤａｔａ  ＯｆｆｓｅｔフィールドからＴＣＰヘッダのサイズが取得できる。また、ＩＰヘッダ部２０４から取得したＩＰパケット全体のデータサイズとＴＣＰヘッダ部２０５から取得したＴＣＰヘッダのサイズからペイロード部２０６のデータサイズが取得できる。
【００３３】
図２（Ｂ）に示すように、パケットが受信されると、チャネル切り替え部１０４のパケットヘッダ解析部２１１は、受信パケット用バッファから受信パケットデータ２０２のヘッダデータを抽出して解析し、解析したヘッダ情報を受信パケット処理部２１２に転送する。受信パケット処理部２１２は、パケットヘッダ解析部２１１から取得したヘッダ情報を基に、受信パケット用バッファから受信パケットデータを取得する。そして、受信パケット処理部２１２は、受信パケットデータからペイロードデータを抽出してパケットデータ用メモリに受信ペイロードデータ２１４として格納し、パケット情報を受信ディスクリプタ２１３に設定する。チャネル切り替え部１０４は、これらの処理を１パケット単位で実行する。
【００３４】
図３は、チャネル切り替え部１０４のパケット受信時の動作例を示すフローチャートである。チャネル切り替え部１０４は、受信されたパケットデータのヘッダ部の情報から得られたデータサイズ等に基づき、パケット境界までの転送が完了するまで選択したＤＭＡチャネルに対してデータ転送を行う（Ｓ１０１）。
【００３５】
そして、パケット境界までの転送が完了すると（Ｓ１０２のＴＲＵＥ）、チャネル切り替え部１０４は、モード設定レジスタ１０５に設定された情報が通常モードを示す情報であれば（Ｓ１０３のＴＲＵＥ）、メインＣＰＵ用チャネル１０１Ａを選択する（Ｓ１０４）。続いて、チャネル切り替え部１０４は、パケットデータ退避バッファ１０６からメインＣＰＵ用チャネル１０１Ａに１パケット分のデータ転送を開始し（Ｓ１０５）、ステップＳ１０１に戻る。
【００３６】
一方、チャネル切り替え部１０４は、モード設定レジスタ１０５に設定された情報が通常モードを示す情報でなければ、すなわち待機モードを示す情報であれば（Ｓ１０３のＦＡＬＳＥ）、サブＣＰＵ用チャネル１０１Ｂを選択する（Ｓ１０６）。続いて、チャネル切り替え部１０４は、パケットデータ退避バッファ１０６からサブＣＰＵ用チャネル１０１Ｂに１パケット分のデータ転送を開始し（Ｓ１０７）、ステップＳ１０１に戻る。
【００３７】
本実施形態における情報処理システムでのパケット受信処理においては、１パケットを受信する毎にＲＡＭ上の受信パケット用エリアに格納される。そして、図４に示すフローチャートに従って、ＲＡＭ上のパケットデータの有無を判別し、１パケットずつ処理される。つまり、パケットの受信からモード切り替え処理までの期間に新たなパケットを受信したとしても、随時ＲＡＭ上の受信パケット用エリアに退避された後に順次処理されるため、モード切り替え処理等に何ら影響が及ぶことはない。
【００３８】
図４は、本実施形態における送受信パケット処理を示すフローチャートである。情報処理システムは、通常モードから待機モードへの遷移又は待機モードから通常モードへの遷移を検知すると（Ｓ２０１のＹｅｓ）、モード遷移処理を行う（Ｓ２０２）。その後、ＲＡＭ上に受信パケットがあれば（Ｓ２０３のＹｅｓ）、受信パケット処理を行い（Ｓ２０４）、ＲＡＭ上に送信パケットがあれば（Ｓ２０５のＹｅｓ）、送信パケット処理を行う（Ｓ２０６）。
【００３９】
図５は、本実施形態における情報処理システムのモード切り替えを含む動作例を示すフローチャートである。まず、動作を開始すると、サブＣＰＵ４０が起動する（Ｓ３０１）。続いて、ＤＭＡ制御装置１０内のサブＣＰＵに係る機能部（以下、サブＤＭＡと称す）をリセットする（Ｓ３０２）。その後、ＤＭＡ制御装置１０内のサブＤＭＡを初期化してベースアドレスレジスタ１１２Ｂ、１２２ＢにＲＡＭ５０上のディスクリプタの先頭アドレスを登録した（Ｓ３０３）後、サブＤＭＡを起動する（Ｓ３０４）。
【００４０】
次に、メインＣＰＵ２０が起動する（Ｓ３０５）。続いて、ＤＭＡ制御装置１０内のメインＣＰＵに係る機能部（以下、メインＤＭＡと称す）をリセットする（Ｓ３０６）。その後、ＤＭＡ制御装置１０内のメインＤＭＡを初期化してベースアドレスレジスタ１１２Ａ、１２２ＡにＲＡＭ３０上のディスクリプタの先頭アドレスを登録した（Ｓ３０７）後、メインＤＭＡを起動する（Ｓ３０８）。なお、前述したステップＳ３０１〜Ｓ３０８の処理は、図示した処理順序に限定されるものではなく、ステップＳ３０１〜Ｓ３０４の処理が図示の順序で行われ、ステップＳ３０５〜Ｓ３０８の処理が図示の順序で行われば良い。
【００４１】
次に、サブＣＰＵ４０は、ＤＭＡ制御装置１０のモード設定レジスタ１０５に通常モードを示す情報を書き込む（Ｓ３０９）。その後、ＤＭＡ制御装置１０を用いたパケット送受信処理が行われる（Ｓ３１０）。このとき、モード設定レジスタ１０５の切り替え、すなわち通常モードから待機モード、あるいは待機モードから通常モードへのモード切り替えが必要であるとの指示を受けると（Ｓ３１１のＴＲＵＥ）、ＣＰＵ切り替え処理（Ｓ３１２）を行い、ステップＳ３１０に戻る。
【００４２】
図６は、図５に示した第１の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。ＣＰＵ切り替え処理では、メインＣＰＵ２０を用いる処理、すなわち通常モードであれば（Ｓ４０１のＴＲＵＥ）、それまで休止していたメインＣＰＵ４０が起動する（Ｓ４０２）。続いて、ＤＭＡ制御装置１０内のメインＤＭＡをリセットする（Ｓ４０３）。その後、ＤＭＡ制御装置１０内のメインＤＭＡを初期化してベースアドレスレジスタ１１２Ａ、１２２ＡにＲＡＭ３０上のディスクリプタの先頭アドレスをリロードした（Ｓ４０４）後、メインＤＭＡを起動する（Ｓ４０５）。
【００４３】
そして、メインＣＰＵ２０は、サブＣＰＵ４０に対して起動完了を通知する（Ｓ４０６）。メインＣＰＵ２０から起動完了の通知を受けたサブＣＰＵ４０は、ＤＭＡ制御装置１０のモード設定レジスタ１０５に通常モードを示す情報を設定する（Ｓ４０７）。続いて、ＤＭＡ制御装置１０のチャネル切り替え部１０４は、モード設定レジスタ１０５に設定された情報に応じて、使用するＤＭＡチャネルをメインＣＰＵ用チャネル１０１Ａに切り替え、サブＣＰＵ４０にモード切り替え完了を通知し（Ｓ４０８）、ＣＰＵ切り替え処理を終了する。
【００４４】
一方、メインＣＰＵ２０を用いる処理でなければ（Ｓ４０１のＦＡＬＳＥ）、メインＣＰＵ２０は、サブＣＰＵ４０に待機モードへの切り替えを要求する（Ｓ４０９）。待機モードへの切り替え要求を受けたサブＣＰＵ４０は、ＤＭＡ制御装置１０のモード設定レジスタ１０５に待機モードを示す情報を設定する（Ｓ４１０）。続いて、ＤＭＡ制御装置１０のチャネル切り替え部１０４は、モード設定レジスタ１０５に設定された情報に応じて、使用するＤＭＡチャネルをサブＣＰＵ用チャネル１０１Ｂに切り替え、サブＣＰＵ４０にモード切り替え完了を通知する（Ｓ４１１）。
【００４５】
次に、モード切り替え完了の通知を受けたサブＣＰＵ４０は、メインＣＰＵ２０にパワーオフ許可を通知する（Ｓ４１２）。そして、メインＣＰＵ２０及びメインＣＰＵ用のＲＡＭ３０の通電がオフされ（Ｓ４１３）、ＣＰＵ切り替え処理を終了する。
【００４６】
第１の実施形態によれば、ＤＭＡ制御装置１０にメインＣＰＵ用のＤＭＡチャネル１０１ＡとサブＣＰＵ用のＤＭＡチャネル１０１Ｂをそれぞれ設け、チャネル切り替え部１０４が、モード設定レジスタ１０５に設定された情報に応じて使用するＤＭＡチャネルを自動選択し、選択したＤＭＡチャネルへの切り替えをパケット境界で行う。これにより、モード切り替えを行う際に、ＤＭＡ動作を停止しての情報の再設定を行うことなく、すなわちＤＭＡ動作を中断することなくモード切り替えを行うことができる。したがって、パケットロスによる通信品質の劣化を発生させることなくモード切り替えが可能になり、また情報処理システムにおける消費電力を低減し省電力化を実現することができる。
【００４７】
なお、チャネル切り替え部１０４によるＤＭＡチャネルの切り替えは、モード設定レジスタ１０５の参照による切り替えであるので、非常に短い時間（例えば、１〜数クロックサイクル）で行うことができる。
【００４８】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
前述した第１の実施形態において、通常モードから待機モードに遷移する場合、サブＣＰＵ４０からパワーオフ許可の通知を受けて、メインＣＰＵ２０及びメインＣＰＵ用のＲＡＭ３０の通電がオフされる。このとき、ＤＭＡ制御装置１０におけるメインＣＰＵ用チャネル１０１Ａの送信用チャネル１２１Ａには、未送信のデータが残存してしまうことがある。ディスクリプタ形式のＤＭＡ制御装置は、ディスクリプタが空になるまで動作を続けるので、メインＣＰＵ２０及びＲＡＭ３０の通電がオフになった後に、メインＣＰＵ用チャネル１０１Ａの送信用チャネル１２１Ａに未送信のデータが残存していると、ＲＡＭ３０へのアクセスが行われ、バスアクセスエラーが発生する。
【００４９】
このバスアクセスエラーの発生を回避するには、メインＣＰＵ２０にパワーオフ許可の通知を行う前に、サブＣＰＵ４０がメインＣＰＵ用チャネル１０１Ａのリスタート処理部を用いて送信用チャネル１２１Ａをリセットすることが考えられる。こうすれば、送信用チャネル１２１Ａが初期化され、ＲＡＭ３０の通電がオフになった後にＲＡＭ３０へのアクセスが発生することはない。しかし、サブＣＰＵ４０は、送信パケットのパケット境界を認識できないため、送信用チャネル１２１Ａが送信処理中にリスタートしてしまうと、ネットワークに対して不完全な形の不正パケットが送出されてしまうおそれがある。
【００５０】
また、メインＣＰＵ用チャネル１０１Ａの送信用チャネル１２１Ａの残存データがなくなるまで（未処理パケット数レジスタ１２５Ａの値が０になるまで）、サブＣＰＵ４０が、メインＣＰＵ２０にパワーオフ許可の通知を行わないように制御することが考えられる。しかし、通常モードから待機モードに遷移するタイミングが遅れることとなり、消費電力が増大してしまう。
【００５１】
以下に説明する第２の実施形態は、前述のような不都合を発生させることなく、通常モードから待機モードに遷移する場合にバスアクセスエラーの発生を確実に回避するものである。図７は、第２の実施形態におけるＤＭＡ制御装置を有する情報処理システムの構成例を示す図である。図７において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００５２】
第２の実施形態におけるＤＭＡ制御装置１０は、図７に示すようにリスタートタイミング調整部１０７を有する。リスタートタイミング調整部１０７は、サブＣＰＵ４０からメインＣＰＵ用チャネル１０１Ａの送信用チャネル１２１Ａのリスタート処理の実行要求を受けるとともに、チャネル切り替え部１０４に対して送信パケットの境界タイミングの情報を要求する。また、リスタートタイミング調整部１０７は、チャネル切り替え部１０４から取得した情報を基に送信パケットの境界タイミングで送信用チャネル１２１Ａのリスタートを実行させ、サブＣＰＵ４０に送信用チャネル１２１Ａのリスタート完了を通知する。
【００５３】
図８に示すように、パケットを送信する際、チャネル切り替え部１０４のパケットヘッダ生成部３０３は、送信用ディスクリプタ３０１からパケットヘッダを生成するためのヘッダ構成情報を取得しヘッダを生成する。送信パケット処理部３０４は、パケットヘッダ生成部３０３が生成したヘッダデータを取得し。さらに送信用ディスクリプタ３０１で指示されるパケットデータ用メモリから送信パケットのペイロードデータ３０２を取得して送信パケットを生成する。送信パケット処理部３０４は、送信パケットの生成が完了すると物理（ＰＨＹ）部３０５に転送する。また、送信パケット処理部３０４は、物理部３０５に１パケット転送する毎に、リスタートタイミング調整部１０７に処理完了通知を出力する。チャネル切り替え部１０４は、受信パケットのヘッダ解析と同様にして、送信パケットのヘッダを生成する際に、そのヘッダ情報を基にパケット境界を判別することが可能となっている。
【００５４】
第２の実施形態における情報処理システムの動作は、ＣＰＵ切り替え処理が第１の実施形態と異なるが、その他は図５に示した第１の実施形態での動作と同様である。図９は、第２の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。なお、図９には、ＣＰＵ切り替え処理のうち、通常モードから待機モードに遷移するときの処理を示している。待機モードから通常モードに遷移するときの処理は、第１の実施形態と同様であり、図６に示したステップＳ４０２〜Ｓ４０８の処理を実行する。
【００５５】
第２の実施形態におけるＣＰＵ切り替え処理では、メインＣＰＵ２０を用いる処理でなければ、メインＣＰＵ２０は、サブＣＰＵ４０に待機モードへの切り替えを要求する（Ｓ５０１）。待機モードへの切り替え要求を受けたサブＣＰＵ４０は、ＤＭＡ制御装置１０のモード設定レジスタ１０５に待機モードを示す情報を設定する（Ｓ５０２）。続いて、ＤＭＡ制御装置１０のチャネル切り替え部１０４は、モード設定レジスタ１０５に設定された情報に応じて、使用するＤＭＡチャネルをサブＣＰＵ用チャネル１０１Ｂに切り替え、サブＣＰＵ４０にモード切り替え完了を通知する（Ｓ５０３）。
【００５６】
チャネル切り替え部１０４からモード切り替え完了の通知を受けたサブＣＰＵ４０は、リスタートタイミング調整部１０７に、メインＣＰＵ用チャネル１０１Ａの送信用チャネル１２１Ａのリスタート処理の実行を要求する（Ｓ５０４）。リスタートタイミング調整部１０７は、チャネル切り替え部１０４に送信パケットの境界タイミングの情報通知を要求する（Ｓ５０５）。そして、チャネル切り替え部１０４は、リスタートタイミング調整部１０７に、送信用チャネル１２１Ａが送信する送信パケットの境界タイミングの情報を通知する（Ｓ５０６）。
【００５７】
続いて、リスタートタイミング調整部１０７は、チャネル切り替え部１０４からの情報を基に、送信用チャネル１２１Ａが送信中である１パケットの送信を完了するタイミングを検出し、そのタイミングで送信用チャネル１２１Ａのリスタート処理部１２６Ａを制御しリスタートを実行させる（Ｓ５０７）。これにより、メインＣＰＵ用チャネル１０１Ａの送信用チャネル１２１Ａがリセットされる。そして、リスタートタイミング調整部１０７は、サブＣＰＵ４０に送信用チャネル１２１Ａのリスタート完了を通知する（Ｓ５０８）。
【００５８】
次に、送信用チャネル１２１Ａのリスタート完了の通知を受けたサブＣＰＵ４０は、メインＣＰＵ２０にパワーオフ許可を通知する（Ｓ５０９）。そして、メインＣＰＵ２０及びメインＣＰＵ用のＲＡＭ３０の通電がオフされ（Ｓ５１０）、ＣＰＵ切り替え処理を終了する。
【００５９】
第２の実施形態によれば、第１の実施形態と同様に、モード切り替えを行う際にＤＭＡ動作を停止しての情報の再設定を行うことなく、すなわちＤＭＡ動作を中断することなくモード切り替えを行うことができる。したがって、パケットロスによる通信品質の劣化を発生させることなくモード切り替えが可能になり、また情報処理システムにおける消費電力を低減し省電力化を実現することができる。また、通常モードから待機モードに遷移する場合、不正パケットの送出などの不都合を発生させることなく、バスアクセスエラーの発生を確実に回避することができる。
【００６０】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
前述した実施形態において、待機モードから通常モードに遷移する場合、待機モードから通常モードへのモード切り替えが必要であるとの指示を受けてから、メインＣＰＵの起動、ＤＭＡ制御装置１０でのメインＤＭＡの起動、及びメインＣＰＵ用チャネル１０１Ａへのチャネル切り替えが完了するまで、ネットワークからのパケットはサブＣＰＵ側で受信される。この受信したパケットは、メインＣＰＵ側に渡す必要があり、ＣＰＵ間通信による転送が考えられるが、ＣＰＵ間通信を行うと制御が複雑になってしまう。また、ＣＰＵ間通信でサブＣＰＵ側からメインＣＰＵ側にパケットデータを転送していると時間を要するため、この間のパケット応答のレイテンシの悪化やパケットロスの発生を招き、通信品質が低下してしまうおそれがある。
【００６１】
そこで、第３の実施形態では、図１０に示すようにＤＭＡ制御装置１０内にループバック処理部１４３を設ける。図１０は、第３の実施形態におけるＤＭＡ制御装置を有する情報処理システムの構成例を示す図である。図１０において、図１、図７に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００６２】
ループバック処理部１４３は、サブＣＰＵ用チャネル１０１Ｂの送信用チャネル１２１Ｂから送信されたパケットデータを、メインＣＰＵ用チャネル１０１Ａの受信用チャネル１１１Ａに転送する。なお、ループバック処理部１４３を動作させるか否かの制御は、例えばループバックモード設定レジスタを設けてサブＣＰＵ４０が情報を設定することで行えば良い。また、モード設定レジスタ１０５を拡張し、ループバックを行うか否かを示す情報を設定できるようにして行っても良い。
【００６３】
第３の実施形態における情報処理システムの動作は、ＣＰＵ切り替え処理が第１の実施形態と異なるが、その他は図５に示した第１の実施形態での動作と同様である。図１１は、第３の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。なお、図１１には、ＣＰＵ切り替え処理のうち、待機モードから通常モードに遷移するときの処理を示している。通常モードから待機モードに遷移するときの処理は、第２の実施形態と同様であり、図９に示した処理を実行する。
【００６４】
第３の実施形態におけるＣＰＵ切り替え処理では、メインＣＰＵ２０を用いる処理、すなわち通常モードであれば、それまで休止していたメインＣＰＵ４０が起動する（Ｓ６０１）。以降、ステップＳ６０２〜Ｓ６０７での処理は、図６に示した第１の実施形態におけるステップＳ４０３〜Ｓ４０８での処理と同様であるので説明は省略する。
【００６５】
ＤＭＡ制御装置１０のチャネル切り替え部１０４は、サブＣＰＵ４０にモード切り替え完了を通知した後、サブＣＰＵ４０からの設定情報に基づき、チャネル自動振り分けでループバック処理部１４３によるループバックを選択し（Ｓ６０８）、残留の受信パケットデータの転送が行われる（Ｓ６０９）。これにより、サブＣＰＵ用チャネル１０１Ｂの送信用チャネル１２１Ｂ、チャネル切り替え部１０４のループバック処理部１４３、及びメインＣＰＵ用チャネル１０１Ａの受信用チャネル１１１Ａを介して、サブＣＰＵ用のＲＡＭ５１からメインＣＰＵ用のＲＡＭ３０にパケットデータが転送される。なお、ループバックによるパケットデータの転送中にネットワークからパケットを受信した場合、チャネル切り替え部１０４は、ネットワークから受信したパケットデータをサブＣＰＵ用チャネル１０１Ｂの受信用チャネル１１１Ｂに送る。
【００６６】
第３の実施形態によれば、第１の実施形態と同様に、モード切り替えを行う際にＤＭＡ動作を停止しての情報の再設定を行うことなく、すなわちＤＭＡ動作を中断することなくモード切り替えを行うことができる。したがって、パケットロスによる通信品質の劣化を発生させることなくモード切り替えが可能になり、また情報処理システムにおける消費電力を低減し省電力化を実現することができる。
【００６７】
また、第３の実施形態によれば、ループバック機構を設けることで、待機モードから通常モードへ切り替える際、サブＣＰＵ側に受信したパケットデータが残留している場合、ＣＰＵ通信を行うことなく、パケットデータをサブＣＰＵ用のＲＡＭ５０からメインＣＰＵ用のＲＡＭ３０に転送することが可能になる。また、メインＣＰＵ側では、ループバックにより受信したパケットデータを、あたかもネットワークからパケットデータを受信したものとして処理を行うことができる。
【００６８】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。
ＤＭＡ制御装置１０において、使用するＤＭＡチャネルをサブＣＰＵ用チャネル１０１ＢからメインＣＰＵ用チャネル１０１Ａに切り替える際、ネットワークからパケットデータが転送されてくるタイミングがわからないため、ＤＭＡチャネルを切り替える直前にサブＣＰＵ側にパケットが入力されてしまう場合がある。この場合には、サブＣＰＵ側からメインＣＰＵ側にパケットデータを転送する必要があり、そのパケットが受信された後に受信したパケットが先にメインＣＰＵ側に入力されてしまうと、メインＣＰＵ側ではパケットの順序逆転が発生してしまい、通信品質の低下を招く原因となってしまう。
【００６９】
そこで、第４の実施形態におけるＤＭＡ制御装置１０では、図１２に示すようにバッファ制御部１０８及びチャネル切り替え部１０４内に指示処理部１４４を設け、ループバックによるパケットデータの転送の実行中は、パケットデータ退避バッファ１０６に受信したデータがあっても、読み出しを行わないように制御する。図１２は、第４の実施形態におけるＤＭＡ制御装置を有する情報処理システムの構成例を示す図である。図１２において、図１、図７、図１０に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００７０】
指示処理部１４４は、ループバックによるパケットデータの転送の開始及び停止の指示をサブＣＰＵから受け、ループバック処理部１４３にループバックによる転送の開始及び停止を通知する。バッファ制御部１０８は、指示処理部１４４からの通知に応じて、パケットデータ退避バッファ１０６の読み出しを制御する。具体的には、バッファ制御部１０８は、指示処理部１４４から読み出し停止の指示を受けると、パケットデータ退避バッファ１０６で受信したパケットデータの読み出しを抑制する。また、バッファ制御部１０８は、指示処理部１４４から読み出し再開の指示を受けると、指示を受けたタイミングでパケットデータ退避バッファ１０６の読み出しを再開する。
【００７１】
第４の実施形態における情報処理システムの動作は、ＣＰＵ切り替え処理が第１の実施形態と異なるが、その他は図５に示した第１の実施形態での動作と同様である。図１３は、第４の実施形態におけるＣＰＵ切り替え処理を示すフローチャートである。なお、図１３には、ＣＰＵ切り替え処理のうち、待機モードから通常モードに遷移するときの処理を示している。通常モードから待機モードに遷移するときの処理は、第２の実施形態と同様であり、図９に示した処理を実行する。
【００７２】
第４の実施形態におけるＣＰＵ切り替え処理では、メインＣＰＵ２０を用いる処理、すなわち通常モードであれば、それまで休止していたメインＣＰＵ４０が起動する（Ｓ７０１）。以降、ステップＳ７０２〜Ｓ７０７での処理は、図６に示した第１の実施形態におけるステップＳ４０３〜Ｓ４０８での処理と同様であるので説明は省略する。
【００７３】
チャネル切り替え部１０４からモード切り替え完了の通知を受けると、サブＣＰＵ４０は、チャネル切り替え部１０４の指示処理部１４４にバッファ制御部７０８のオフを指示する（Ｓ７０８）。サブＣＰＵ４０からの指示を受けた指示処理部１４４は、バッファ制御部１０８にパケットデータ退避バッファ１０６の読み出し停止を指示する（Ｓ７０９）。これにより、パケットデータ退避バッファ１０６で受信したパケットデータの読み出しが抑制される。
【００７４】
続いて、チャネル切り替え部１０４は、サブＣＰＵ４０からの設定情報に基づき、チャネル自動振り分けでループバック処理部１４３によるループバックを選択し（Ｓ７１０）、残留の受信パケットデータの転送が行われる（Ｓ７１１）。これにより、サブＣＰＵ用チャネル１０１Ｂの送信用チャネル１２１Ｂ、チャネル切り替え部１０４のループバック処理部１４３、及びメインＣＰＵ用チャネル１０１Ａの受信用チャネル１１１Ａを介して、サブＣＰＵ用のＲＡＭ５１からメインＣＰＵ用のＲＡＭ３０にパケットデータが転送される。
【００７５】
そして、残留していた受信パケットデータのサブＣＰＵ用のＲＡＭ５１からメインＣＰＵ用のＲＡＭ３０への転送が完了すると、サブＣＰＵ４０は、指示処理部１４４にバッファ制御部７０８のオンを指示する（Ｓ７１２）。サブＣＰＵ４０からの指示を受けた指示処理部１４４は、バッファ制御部１０８にパケットデータ退避バッファ１０６の読み出し再開を指示する（Ｓ７０９）。これにより、パケットデータ退避バッファ１０６の読み出しが再開され、パケットデータ退避バッファ１０６に保持されているパケットデータがメインＣＰＵ用チャネル１０１Ａに順次入力される。
【００７６】
第４の実施形態によれば、第１の実施形態と同様に、モード切り替えを行う際にＤＭＡ動作を停止しての情報の再設定を行うことなく、すなわちＤＭＡ動作を中断することなくモード切り替えを行うことができる。また、ＤＭＡチャネルの切り替え時に発生し得る受信パケットデータの順序逆転を防止することができる。したがって、パケットロスやパケットの順序逆転による通信品質の劣化を発生させることなくモード切り替えが可能になり、また情報処理システムにおける消費電力を低減し省電力化を実現することができる。
【００７７】
なお、前述した説明では、ループバックによるパケットデータの転送中は、パケットデータ退避バッファ１０６の読み出しを停止するようにしているが、パケットデータ退避バッファ１０６の読み出しを停止せずに、ループバックによるパケットデータの転送中にネットワークから受信したパケットデータをサブＣＰＵ用チャネル１０１Ｂの受信用チャネル１１１Ｂに送るようにしても良い。そして、残留の受信パケットデータの転送が完了しループバックによる転送を停止する直前にパケットデータ退避バッファ１０６の読み出しを停止するように制御しても良い。
【００７８】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００７９】
１０  ダイレクトメモリアクセス（ＤＭＡ）制御装置
２０  メインＣＰＵ
３０  メインＣＰＵ用のＲＡＭ
４０  サブＣＰＵ
５０  サブＣＰＵ用のＲＡＭ
１０１Ａ  メインＣＰＵ用チャネル
１０１Ｂ  サブＣＰＵ用チャネル
１０２  ディスクリプタＲｅａｄ／Ｗｒｉｔｅ処理部
１０３  データＲｅａｄ／Ｗｒｉｔｅ処理部
１０４  チャネル切り替え部
１０５  モード設定レジスタ
１０６  パケットデータ退避バッファ
１０７  リスタートタイミング調整部
１０８  バッファ制御部
１１１  受信用チャネル
１２１  送信用チャネル
１４１  受信処理部
１４２  送信処理部
１４３  ループバック処理部
１４４  指示処理部
【図１】
2015087872.tif 000003
【図２】
2015087872.tif 000004
【図３】
2015087872.tif 000005
【図４】
2015087872.tif 000006
【図５】
2015087872.tif 000007
【図６】
2015087872.tif 000008
【図７】
2015087872.tif 000009
【図８】
2015087872.tif 000010
【図９】
2015087872.tif 000011
【図１０】
2015087872.tif 000012
【図１１】
2015087872.tif 000013
【図１２】
2015087872.tif 000014
【図１３】
2015087872.tif 000015
【図１４】
2015087872.tif 000016
【図１５】
2015087872.tif 000017