(57)【特許請求の範囲】
【請求項１】
メイン処理装置と、
該メイン処理装置の代わりにタスクを実行するように動作する補助処理装置と、を備え、
前記補助処理装置は前記タスクが完了した時に、完了フィールドをセットするように動作すると共に、前記メイン処理装置は該完了フィールドをポーリングして、前記タスクが完了しているかどうかを判断するように動作し、
前記完了フィールドを閾値の回数だけポーリングした時に、前記メイン処理装置が、前記タスクが完了していないと判断したならば、該メイン処理装置は省電力モードに入るように動作し、
前記補助処理装置は前記タスクが完了した時、前記メイン処理装置と前記補助処理装置とを相互に接続するパス上に通知を発行するように動作し、しかも
前記メイン処理装置は、前記通知を受け取った時に、前記省電力モードを終了するように動作する、
データ処理装置。
【請求項２】
前記補助処理装置は前記タスクが完了した時に、割り込みパスを通して前記メイン処理装置への割り込み信号を発行し、前記パスは前記メイン処理装置と前記補助処理装置とを相互接続して前記割り込みパスと連携し、前記通知が前記割り込み信号から検出される、請求項１に記載のデータ処理装置。
【請求項３】
前記メイン処理装置は、前記割り込み信号に応答して割り込み処理を有効あるいは無効にするようにプログラム可能であり、割り込み処理が無効である場合、メイン処理ロジックは前記割り込み信号を無視し、該割り込み信号から検出された前記通知を受け取った時に、前記省電力モードを終了するように動作する、請求項２に記載のデータ処理装置。
【請求項４】
さらに、前記メイン処理装置と関連する割り込み制御器を含み、前記補助処理装置から、あるいは他の割り込みソースから前記メイン処理装置へ発行される割り込み信号を受け取るように動作し、前記割り込み制御器は、各割り込みソースからの割り込み信号を有効あるいは無効にするようにプログラムでき、前記メイン処理装置が応答して割り込み処理を実行する割り込み信号を制御する、請求項２に記載のデータ処理装置。
【請求項５】
前記メイン処理装置は、前記通知が受け取られた時にセットされる制御記憶を有する、請求項１に記載のデータ処理装置。
【請求項６】
前記完了フィールドを前記閾値の回数だけポーリングした時に、前記メイン処理装置が前記タスクが完了していないと判断したならば、前記メイン処理装置は通知命令待ちを実行し、前記省電力モードに入るように動作する、請求項１に記載のデータ処理装置。
【請求項７】
前記メイン処理装置は、前記通知が受け取られた時にセットされる制御記憶を有して、前記通知命令待ちが実行された時に、前記メイン処理装置は、前記制御記憶がセットされたかどうかを確認し、セットされていれば、前記省電力モードに入ることを回避する、請求項６に記載のデータ処理装置。
【請求項８】
前記メイン処理装置は、前記省電力モード中であるとき、前記メイン処理装置によって例外が受け取られた場合、前記省電力モードを終了するように動作し、前記例外は有効な割り込み又は不明確なデータの異常終了のいずれか１つを含む、請求項１に記載のデータ処理装置。
【請求項９】
前記補助処理装置を複数個含み、それら補助処理装置の各々は、前記メイン処理装置の代わりに関連するタスクを実行するように動作し、それら補助処理装置の各々は、前記関連するタスクが完了したとき、関連する完了フィールドをセットするように動作する、請求項１に記載のデータ処理装置。
【請求項１０】
前記メイン処理装置は、一つ以上の完了フィールドをポーリングするように動作して、前記関連する一つ以上のタスクが完了したかどうかを判断し、
前記一つ以上の完了フィールドを前記閾値の回数だけポーリングした時に、前記メイン処理装置が、前記一つ以上の関連するタスクがいずれも完了していないと判断したならば、前記メイン処理装置は前記省電力モードに入るように動作し、
前記補助処理装置の各々は、それぞれに関連するタスクが完了した時、前記メイン処理装置と該補助処理装置とを相互に接続する前記パス上に前記通知を発行するように動作し、しかも
前記メイン処理装置は、前記通知を受け取った時に前記省電力モードを終了し、前記一つ以上の完了フィールドをポーリングし、前記一つ以上の関連するタスクが完了したかどうかを判断するように動作する、
請求項９に記載のデータ処理装置。
【請求項１１】
前記補助処理装置の各々が、それぞれに関連するタスクが完了した時に、関連する割り込みパスを通して関連する割り込み信号を発行し、各パスは前記メイン処理装置と前記補助処理装置の一つとを相互に接続して、前記関連する割り込みパスと連携し、前記関連する割り込み信号から前記通知が検出され、前記データ処理装置がさらに、
割り込み制御器は、前記各補助処理装置によって生成された前記割り込み信号を受け取るように動作し、該割り込み制御器は、前記各補助処理装置からの割り込み信号を有効あるいは無効にするようにプログラムできることを含む、請求項９に記載のデータ処理装置。
【請求項１２】
前記各補助処理装置によって発行された前記割り込み信号を受け取るように動作し、いくつかの前記割り込み信号を受け取った時に前記通知を生成するように動作する、通知生成ロジックをさらに含む、請求項１１に記載のデータ処理装置。
【請求項１３】
メイン処理装置と、該メイン処理装置の代わりにタスクを実行する補助処理装置とを有するデータ処理装置におけるポーリング管理方法であって、
前記補助処理装置が前記タスクを完了した時、前記補助処理装置が完了フィールドをセットするステップと、
前記メイン処理装置が、該完了フィールドをポーリングして、前記タスクが完了したかどうかを判断するステップと、
該完了フィールドを閾値の回数だけポーリングした時、前記タスクが完了していないと前記メイン処理装置が判断したならば、前記メイン処理装置は省電力モードに入るステップと、
前記タスクが完了した時、前記補助処理装置が、前記メイン処理装置と前記補助処理装置とを相互に接続するパスを通して前記メイン処理装置へ通知を発行するステップと、
前記メイン処理装置が、前記通知を受け取った時、前記省電力モードを終了するステップと、
を含む、前記方法。
【請求項１４】
前記タスクが完了した時、前記補助処理装置が、割り込みパスを通して前記メイン処理装置に割り込み信号を発行し、前記パスは前記メイン処理装置と前記補助処理装置とを相互に接続して前記割り込みパスと連携するステップ、および
前記割り込み信号から前記通知を検出するステップ、
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記メイン処理装置は前記割り込み信号に応答して割り込み処理を有効あるいは無効にするようにプログラムでき、割り込み処理が無効である場合、前記メイン処理ロジックは前記割り込み信号を無視し、前記割り込み信号から検出された前記通知を受け取った時、前記省電力モードを終了する、請求項１４に記載の方法。
【請求項１６】
前記メイン処理装置と関連する割り込み制御器が、前記補助処理装置あるいは他の割り込みソースから前記メイン処理装置へ発行される割り込み信号を受け取り、該割り込み制御器は、各割り込みソースからの割り込み信号を有効あるいは無効にするようにプログラムされ、前記メイン処理装置が応答して割り込み処理を実行する割り込み信号を制御する、ステップをさらに含む、請求項１４に記載の方法。
【請求項１７】
前記通知が受け取られた時、前記メイン処理装置が、前記メイン処理装置内に制御記憶をセットするステップをさらに含む、請求項１３に記載の方法。
【請求項１８】
前記完了フィールドを前記閾値の回数だけポーリングした時に、前記タスクが完了していないと前記メイン処理装置が判断したならば、前記メイン処理装置が通知命令待ちを実行することによって前記省電力モードに入る、請求項１３に記載の方法。
【請求項１９】
前記通知が受け取られた時に、前記メイン処理装置が、前記メイン処理装置内に制御記憶をセットするステップ、および、
前記通知命令待ちが実行された時に、前記メイン処理装置が、該制御記憶がセットされたかどうかを確認し、セットされていれば、前記省電力モードに入ることを回避するステップ、
を含む、請求項１８に記載の方法。
【請求項２０】
前記メイン処理装置は、前記省電力モード中に該メイン処理装置によって例外が受け取られた場合、該省電力モードを終了し、前記例外は有効な割り込み又は不明確なデータの異常終了のいずれか１つを含む、請求項１３に記載の方法。
【請求項２１】
前記データ処理装置は前記補助処理装置を複数個含み、それら補助処理装置の各々が、前記メイン処理装置の代わりに関連するタスクを実行するように動作し、それら補助処理装置の各々は、前記関連するタスクが完了した時に、関連する完了フィールドをセットする、請求項１３に記載の方法。
【請求項２２】
前記メイン処理装置は、一つ以上の完了フィールドをポーリングして、前記関連する一つ以上のタスクが完了したかどうかを判断し、
前記一つ以上の完了フィールドを前記閾値の回数だけポーリングした時に、前記一つ以上の関連するタスクがいずれも完了していないと前記メイン処理装置が判断したならば、前記メイン処理装置は前記省電力モードに入り、
前記補助処理装置の各々は、それぞれに関連するタスクが完了すると、前記メイン処理装置と該補助処理装置とを相互に接続するパス上に前記通知を発行し、
前記メイン処理装置は前記通知を受け取った時、前記省電力モードを終了し、前記一つ以上の完了フィールドをポーリングして、任意の前記関連する一つ以上のタスクが完了したかどうかを判断する、
請求項２１に記載の方法。
【請求項２３】
前記補助処理装置の各々は、それぞれに関連するタスクが完了した時、関連する割り込みパスを通して関連する割り込み信号を発行し、各パスは前記メイン処理装置と一つ以上の前記補助処理装置とを相互に接続して、前記関連する割り込みパスと連携し、前記関連する割り込み信号から前記通知が検出され、
割り込み制御器で、前記各補助処理装置によって生成された前記割り込み信号を受け取るステップであって、該割り込み制御器は前記各補助処理装置からの割り込み信号を有効あるいは無効にするようにプログラムされている、
前記ステップをさらに含む、請求項２１に記載の方法。
【請求項２４】
前記各補助処理装置が発行した前記割り込み信号を通知生成ロジックへと経路付けるステップ、および
前記通知生成ロジックがいくつかの前記割り込み信号を受け取った時、該通知生成ロジックが前記通知を生成するステップ、
を含む、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびそのポーリング・ループを管理する方法に関するものである。
【背景技術】
【０００２】
データ処理タスクが複雑化するにつれ、データ処理システムが一つ以上の処理装置を有し、これらのタスクの実行を処理することがより一般的になりつつある。特に、例えば、中央処理装置（ＣＰＵ）などのメイン処理ロジックに加え、複数の追加的な特定目的のハードウェアロジックの一部が、特定のタスクを実行するために提供されることがしばしばある。そのような追加のハードウェア装置の例、あるいは、ここに参照される補助処理装置は、特定のビデオ処理機能、直接メモリアクセス（ＤＭＡ）制御器、液晶ディスプレイ（ＬＣＤ）制御器などの処理に利用されるようなデータ・アクセラレータである。
【０００３】
メイン処理装置が特定のタスクを補助処理装置の一つへ委託する場合、一般に、メイン処理装置が、そのタスクが補助処理装置によって完了した時を判断する必要がある。これを実現する既知の方法の一つは、補助処理装置をアレンジして、タスクが完了したときにフラグをセットし、メイン処理装置に優先的にフラグをポーリングさせて、フラグがセットされたかどうかを判断し、それに従い、タスクが完了したかどうかを判断するものである。フラグは、そのフラグがセットされたと判断されるまで、ポーリング・ループ内で優先的にポーリングされ続ける。
【０００４】
そのようなアプローチには数々の問題がある。まず、補助処理ロジックがタスクを実行するのにかかる時間により、メイン処理ロジックが多大な時間を、フラグをポーリングすることに要する。低電力消費が望まれるシステムにおいては、フラグのポーリングを繰り返すことは、エネルギーが有効に消費されないため、望まれない。さらに、フラグが保存されているメモリの一部が、メイン処理装置、補助処理装置およびメモリを相互に接続する共有バスを介して、アクセス可能な場合がある。メイン処理装置がフラグをポールしようとする度にバスへのアクセス要求が必要となり、したがって、このことが多様な処理装置間でバスへのアクセス探索を生じ、競争状態を増長させる。
【０００５】
したがって、そのようなポーリング・ループを管理するために改良された技術の提供が望まれる。
【発明の開示】
【０００６】
最初の側面から見ると、本発明は、メイン処理装置およびメイン処理装置に代わってタスクを処理するために動作する補助処理装置を有し、その補助処理装置が、前記タスクが完了したときに完了フィールドをセットするように動作し、メイン処理装置が、完了フィールドをポーリングして前記タスクが完了したかどうかを判断するように動作すること、完了フィールドを閾値の回数だけポーリングした時に、メイン処理装置がタスクが完了していないと判断したならば、メイン処理装置は省電力モードに入るように動作すること、補助処理装置は前記タスクが完了すると、メイン処理装置と補助処理装置とを相互に接続するパス上に通知を発行すること、および、メイン処理装置が、前記通知を受け取った時に前記省電力モードを終了することを含むデータ処理装置を提供する。
【０００７】
本発明によれば、補助処理装置がメイン処理装置に代わってタスクを処理する場合、メイン処理装置は完了フィールドをポーリングし、タスクが完了したかを判断するように動作する。完了フィールドを閾値の回数だけポーリングした時、メイン処理装置がタスクが完了していないと判断したならば、メイン処理装置は省電力モードへ入るようにアレンジされる。この省電力モード中である間、メイン処理装置は完了フィールドのポーリングを継続せず、それにより、他の場合に比べ極めて少ない電力消費で済む。さらに、この省電力モードの間、メイン処理装置は、一般的には完了フィールドをポーリングする際に要求されうる任意のバスアクセス要求を発行せず、それにより、バス上の競争状態を軽減する。
【０００８】
さらに、本発明によれば、補助処理装置がタスクを完了した際に、メイン処理装置と補助処理装置とを相互に接続するパス上に通知を発行するように設定される。メイン処理装置がその通知を受け取ると、メイン処理装置は省電力モードを終了するように動作する。したがって、この通知はメイン処理装置を省電力モードから”目覚め”させるための仕組みとして用いられる。理解される通り、このアプローチは、大幅な電力の節約をデータ処理装置内に実現することを可能にする。
【０００９】
メイン処理装置が省電力モードに入ることを決定する前に、完了フィールドがポーリングされる回数の閾値は、実施例に合わせて選択してよい。したがって、一例として、メイン処理装置は完了フィールドをポーリングし、タスクが完了していないと判断すると、省電力モードに入るようにアレンジする。特殊な一例では、メイン処理装置は完了フィールドを二回ポーリングし、まだタスクが完了していないと判断した場合に、省電力モードに入るようアレンジする。
【００１０】
理解されるように、通知を転送するためのメイン処理装置と補助処理装置を相互に接続するパスは、多様な形式を取ることができる。一つの実施例では、補助処理装置とメイン処理装置の間の通知を転送するための専用のパスを有し、通知の伝達に遅れがないように保障する。
【００１１】
一つの特定の実施例では、補助処理装置は、タスクが完了した時、割り込みパス、メイン処理装置と補助処理装置の間の前記パスと割り込みパスとの組み合わせ、および割り込み信号から検出された通知を通して、メイン処理装置に割り込み信号を発行するように動作する。割り込み信号は、元より待ち時間の少ないパス（ｌｏｗ  ｌａｔｅｎｃｙ  ｐａｔｈ）である。割り込み信号がタスクの完了にともなって発行される実施例では、あらかじめ存在した割り込みパスがメイン処理装置への通知の伝達に利用できるため、割り込み信号からの通知の検出は、メイン処理装置への通知の転送のために専用の効果的な技術を提供する。これにより、補助処理装置上に追加の出力ピンを用意する必要がなく、補助処理装置は単に、通常の方法で割り込み信号を発行するだけでよい。
【００１２】
メイン処理装置は、割り込み信号への応答の際に、割り込み処理を有効にも無効にもプログラムしてよい。割り込み処理を無効にした場合、メイン処理ロジックは、タスクが完了した時に補助処理装置によって発行された割り込み信号を無視するように思われる。しかし、この場合には、メイン処理装置は割り込み信号から検出された通知を受け取った時に、なお省電力モードを終了するようにアレンジしてよい。これは、補助処理装置によるタスクの完了に応答するために、メイン処理装置をいかにアレンジするかということに関して多大な柔軟性を提供する。例えば、適切な割り込みが有効な場合、メイン処理装置は、割り込み信号の受け取りに伴ういくつかの例外処理を実行するようにアレンジしてよい。反対に、適切な割り込みが無効な場合、メイン処理装置は代わりに単に通知を受け取った時に省電力モードを終了し、通常動作を再開する。典型的には、その正常動作は、省電力モードに入ったときに起こるポーリング処理の再開を含む。
【００１３】
メイン処理装置が割り込み処理を有効または無効にプログラムすることに代わる手段として、データ処理装置が、さらにメイン処理装置に関連する割り込み制御器を含み、補助記憶装置または他の割り込みソースからメイン処理装置へ発行される割り込み信号を受け取るように動作し、各割り込みソースからの割り込み信号を有効または無効にするようにプログラムできる割り込み制御器が、メイン処理装置がどの割り込み信号に応答して割り込み処理を実行するべきかを制御するようにする。
【００１４】
一つの実施例では、メイン処理装置は、通知が受け取られた際にセットされる制御記憶を有する。これは通知をメイン処理装置に一時的に蓄えることを可能にし、それにより、メイン処理装置は、制御記憶内の値から通知がそれによって受け取られたかどうかを判断することができる。これは、メイン処理装置が完了フィールドをポーリングし、タスクがまだ完了していないと判断する間に、補助処理装置がタスクを完了し（したがって、通知を発行し）、メイン処理装置が省電力モードに入るような状況の際に特に有用である。制御記憶の利用により、そのような状況において通知を見落とす可能性が回避される。
【００１５】
理解される通り、メイン処理装置が省電力モードに入る方法は多数存在する。しかしながら、一つの実施例では、メイン処理装置が完了フィールドを閾値の回数だけポーリングした時に、タスクが完了していないと判断した場合、メイン処理装置は、前記省電力モードに入るようにする通知命令待ちを実行するように動作する。したがって、この実施例に従って、メイン処理装置は、通知が受け取られるときまでに、省電力モードに入るようにする特定の命令を実行するようにアレンジされる。
【００１６】
制御記憶がメイン処理装置内に提供される、一つの特定の実施例では、メイン処理装置は、通知命令待ちが実行された時に、制御記憶がセットされたかどうかを確認し、セットされていれば、省電力モードに入ることを回避するように動作する。代わりに、制御記憶がセットされたと判断された場合、処理装置は単に制御記憶を消去し、例えば、完了フィールドを再びポーリングすることによって、通常動作を再開するようにアレンジすることができる。したがって、これにより、メイン処理装置が不正に省電力モードに入ることが回避される。
【００１７】
ある実施例では、他の動作（通知の受け取り以外）も、メイン処理装置の省電力モードを終了するために用いることができる。例えば、一つの実施例では、メイン処理装置が、省電力モードであるときに、そのメイン処理装置によって例外が受け取られた場合、省電力モードを終了するように動作する。そのような例外には、例えば、有効な（すなわち、マスクされていない）割り込みや不明確なデータの異常終了などがありうる。メイン処理装置がこのような方法で省電力モードを終了できるようにすることによって、メイン処理装置が待ち時間の影響を受けずに、割り込みや他の例外を処理することを可能にする。
【００１８】
いくつかの実施例では、単一の補助処理装置だけであるが、他の実施例では、データ処理装置は、複数の前記補助処理装置を含み、各補助処理装置は、メイン処理装置の代わりに関連するタスクを実行するように動作し、各補助処理装置は、前記関連するタスクが完了したときに、関連する完了フィールドをセットするように動作する。
【００１９】
そのような実施例では、メイン処理装置は、一つ以上の完了フィールドをポーリングするようにアレンジされ、関連する一つ以上のタスクが完了したかどうかを判断し、一つ以上の完了フィールドを閾値の回数だけポーリングした時に、メイン処理装置が、一つ以上の関連するタスクがいずれも完了していないと判断したならば、メイン処理装置は省電力モードに入る。関連するタスクが完了すると、各補助処理装置は、メイン処理装置と補助処理装置とを相互に接続するパス上に通知を発行するように動作し、メイン処理装置は、通知を受け取った時に省電力モードを終了するように動作し、一つ以上の完了フィールドをポーリングして、任意の関連する一つ以上のタスクが完了したかどうかを判断する。
【００２０】
そのような実施例では、通知は、一般にそれがどのタスクと関係しているかを示さず、したがって、タスクに関連する通知がメイン処理装置によってその時点でポーリングされていない場合もあるため、メイン処理装置が省電力モードを終了した時に、一つ以上の関連する完了フィールドをポーリングするために適している。
【００２１】
一つの実施例では、各補助処理装置は、それと関連するタスクの終了にともなって、関連する割り込みパスを通して関連する割り込み信号を発行するように動作し、各パスはメイン処理装置と割り込みパスと関連する補助処理装置の一つとを相互に接続し、通知は関連する割り込み信号から検出され、データ処理装置は、さらに、各補助処理装置によって生成された割り込み信号を受け取るように動作する割り込み制御器と、各補助処理装置からの割り込み信号を有効または無効にするようにプログラム可能な割り込み制御器を含む。そのような実施例では、各補助処理装置は、関連する割り込みパスを通して割り込み信号を発行でき、割り込み制御器は、メイン処理装置への割り込みをアサートするのに適しているかどうかを、受け取った割り込み信号に基づいて判断する。
【００２２】
そのような実施例では、データ処理装置は、さらに各補助処理装置によって発行された割り込み信号を受け取るように動作する通知生成ロジックを備え、そのような任意の割り込み信号を受け取った時に通知を生成する。通知は、一般的には、それが関連するタスクについての情報を含まず、通知生成ロジックは、単に任意の割り込み信号の受け取りに伴う通知を生成するようにアレンジできる。通知は、その生成を引き起こす割り込み信号と異なる形式を取る。特に、一つの実施例では、割り込み信号は一般にはアサートされ、割り込みがメイン処理装置によって受け付けられるまでアサートされ続ける。しかしながら、通知は一般的にはパルス信号の形を取り、したがって例えば、単サイクルでセットされ、リセットされる。
【００２３】
第二の側面から見ると、本発明はデータ処理装置におけるポーリング管理の方法を提供し、データ処理装置はメイン処理装置および、メイン処理装置に代わってタスクを実行する補助処理装置を有し、その方法は、補助処理装置によって前記タスクが完了された際に完了フィールドを設定するステップと、完了フィールドをポーリングし、前記タスクが完了したかどうかを判断するようにメイン処理装置をアレンジするステップと、完了フィールドを閾値の回数だけポーリングした時に、メイン処理装置がタスクが完了していないと判断したならば、メイン処理装置を省電力モードにするステップと、前記タスクが完了したときに、メイン処理装置と補助処理装置とを相互に接続するパスを通して、メイン処理装置へ通知を発行するステップと、メイン処理装置での前記通知を受け取った時に、前記省電力モードを実行するステップとを含む。
【００２４】
本発明は、単なる例として、図と共に例示される実施例を参照することで、さらに説明される。
【実施例】
【００２５】
図１は、例えばＣＰＵなどのメイン処理装置２０、および、バス５５を介して汎用メモリ８０およびビデオ表示メモリ６０とそれぞれ連結されている複数の補助処理装置３０、４０、５０を含む、データ処理装置１０のブロック図である。ビデオ表示メモリ６０は、ビデオ表示メモリ６０内に蓄積された画像データを表示するための表示装置７０と連結されている。一つの特殊な実施例では、表示装置７０を除く、図１に例示された全ての構成要素がシステム・オン・チップ（ＳｏＣ）として提供される。
【００２６】
メイン処理装置は、ワーキングレジスタ２４のセットと連結された実行装置２２と組み合わされる。実行装置２２は、ワーキングレジスタ２４内に保存されるデータ値に関するデータ処理操作を実行できる。データ値は、メモリ８０からワーキングレジスタ２４へ読み出され、あるいはワーキングレジスタ２４からメモリ８０へと保存されるが、それぞれが読み出し命令および保存命令の実行である。これらの命令は、実際には、他の命令が実行装置２２によって実行されるように要求され、メモリ８０から処理装置２０へ読み出されることが可能である。
【００２７】
メイン処理装置２０は多様なデータ処理操作を実行できるが、特定用途のハードウェア装置３０、４０、５０の一つに、代わりに実行するように委託できるタスクがある。特に、ＤＭＡ制御器３０は、メイン処理装置２０の代わりにデータ転送処理を管理するために用いられる。これらのデータ転送処理は、バス５５上に存在する装置間のデータ転送、またはこれらの装置の一つから外付けの装置（示されていない）への入／出力ポートを介したデータの転送を含む。データ・アクセラレータ４０は、メイン処理装置２０の代わりに特定のビデオ処理機能を実行するために用いられる。そのようなビデオ処理機能は、大変集中的なタスクを処理していることがあり、データ・アクセラレータ４０は、汎用処理装置２０上で処理される場合よりも、より最適化された方法で、これらのタスクを処理するようにアレンジできる。ＬＣＤ制御器５０は、表示装置７０への画像データの表示を制御し、その結果、メイン処理装置２０をそのタスクから解放する。
【００２８】
したがって、シナリオの例を考えると、メイン処理装置２０は、データ・アクセラレータ４０に、メモリ８０に記憶された生のビデオデータに関するいくつかのビデオ処理機能を実行するように要求する。このタスクが完了すると、メイン処理装置２０は、ＤＭＡ制御器３０が、処理されたビデオデータのビデオ表示メモリ６０への転送を制御するようにアレンジされる。タスクが完了した時に、メイン処理装置２０はビデオ表示メモリ６０から表示装置７０へのビデオの出力を制御するタスクをＬＣＤ制御器５０に委託する。
【００２９】
理解される通り、このように補助処理装置を用いるとき、メイン処理装置２０は、補助処理装置の一つに割り振られたタスクがいつ完了したかを知る必要がある。これを実現するために、各補助処理装置３０、４０、５０は、例えばメモリ８０内などのメモリシステム内に提供された完了応答フラグ８２、８４、８６を有し、特定の補助処理装置がそれに割り振られたタスクを完了すると、その関連する完了フラグをセットする。メイン処理装置２０は、バス５５を通して適切なメモリアクセス要求を発行することにより、これらの完了フラグの状態をポーリングするようにアレンジすることができる。特定の完了フラグをポーリングしている場合、処理装置は、フラグがセットされたかどうかを判断し、このことが関連する補助処理装置によってタスクが完了されたことを示す。
【００３０】
補助処理装置３０、４０、５０とメイン処理装置２０の間での通信に用いられるもう一つのメカニズムは、割り込みメカニズムであり、図１に例示される特定の実施例では、各補助処理装置３０、４０、５０は、関連する割り込みパス３２、４２、５２を有し、それらを通してメイン処理装置２０へ割り込み信号を発行する。
【００３１】
当技術分野で周知のように、割り込み制御器９４は、補助処理装置によって発行される多様な割り込み信号を受け取ること、および受け取られた割り込み信号によってメイン処理装置２０への割り込みのアサーションを制御することが提供されうる。割り込み制御器９４は、特定の割り込みを無効に、あるいは”マスク”するように、バス５５を介してメイン処理装置２０によってプログラムされうる。割り込み制御器９４が入力信号に基づいて、割り込みが処理装置２０へアサートされるべきであると判断すると、この割り込みは割り込み制御器から出力され、メイン処理装置のポート２７で受け取られる。そのような割り込みの受け取りに関連して、メイン処理装置は現在の処理のアクティビティを中断し、割り込み処理ルーチンへと分岐し、要求された方法で割り込みを処理するようにアレンジされる。
【００３２】
一つの実施例では、各補助処理装置３０、４０、５０は、それに関連するタスクの実行を完了したとき、割り込みを発行するようにアレンジされる。メイン処理装置２０は、割り込み制御器９４の適切なプログラミングによってそれらの割り込みが通知されたかどうかを制御することができる。理解される通り、割り込みは処理装置に現在おこなっていることを中断させ、割り込み処理ルーチンを開始するので、元より処理装置２０に対して大変侵害なものである。特定のタスクにとっては、関係する補助処理装置によってそのタスクの完了を呼び出すことは、適切なメカニズムである。しかしながら、他のタスクにとっては、メイン処理装置が、定期的に完了フィールドをポーリングする、侵害の少ない方法を利用して、特定のタスクが完了した時を判断することの方がより効率的である場合もある。
【００３３】
しかしながら、完了フィールドを定期的にポーリングしてタスクの完了を判断するポーリングメカニズムは、ポーリング・ループが特定のタスクの完了を判断し終えるまで多大な回数を実行することが必要となるため、多大な電力の無駄をもたらす。さらに、完了フラグがポーリングされる度に、バス５５を通してメモリアクセス要求が発行されなければならず、これは、バスに接続されている様々な装置間のバスに対するアクセスの競争状態を増長する。
【００３４】
本発明の実施例によれば、この問題はメイン処理装置２０が完了フィールドをポーリングし、タスクが完了していないと判断し、省電力モードに入るようにアレンジすることによって軽減される。これにより、ポーリング・ループの不必要な反復を回避する。各補助処理装置はタスクの実行が完了した時に、メイン処理装置へ通知を発行するようにアレンジされ、この通知の受け取りがメイン処理装置に省電力モードを終了させる。図１に例示される実施例では、要求された通知の伝送のためにあらかじめ存在する割り込みパス３２、４２、５２を用いることが利点である。
【００３５】
加えて特に、各補助処理装置３０、４０、５０は、タスクの実行が完了すると、関連する割り込みパス３２、４２、５２を通して、割り込み信号を発行し、イベント生成ロジック９０は、発行された任意の割り込み信号のようなものを受け取るようにアレンジされる。任意の割り込み信号を受け取った時に、イベント生成ロジック９０は、通知を生成するようにアレンジされ、通知はＯＲゲート９２を介して、メイン処理装置２０のポート２６のイベント入力ピン（ＥＶＩＮ）へ経路付けされる。イベント生成ロジック９０による通知の発行に加え、ＯＲゲート９２はまた、実行装置２２によって発行されるポート２６のイベント出力ピン（ＥＶＯＵＴ）への任意の通知を受け取るようにアレンジされる。実行装置２２に特定の状況下で通知を発行することを許可することによって、いずれかの補助処理装置３０、４０、５０によって生成された通知がない場合でも、要求された場合にメイン処理装置２０が省電力モードに入ることを回避できる。
【００３６】
メイン処理装置２０はまた、処理装置のＥＶＩＮピンでの通知の受け取りに関連してセットされるように提供されたイベントレジスタ２８を有する。このイベントレジスタが利用される方法は、後により詳細を記述する。
【００３７】
図２は、メイン処理装置２０において、関連する完了フラグ８２、８４、８６のポーリングに基づいて、補助処理装置３０、４０、５０の一つが、特定のタスクの完了を判断するためのプロセスの流れ図である。プロセスは、ステップ１００から開始し、ステップ１１０で適切な完了フラグがバス５５を介して読み込まれる。ステップ１２０で、タスクの完了を示すフラグがセットされたかどうかを判断する。セットされていなければ、プロセスはステップ１３０へ分岐し、メイン処理装置２０によってイベント処理待ちが実行される。この処理は、後に図３を参照しながら詳細に議論する。イベント処理の待ちを終了するに伴い、プロセスは、ステップ１１０に戻る。ステップ１２０で、フラグがセットされたと判断されたとき、プロセスはステップ１４０に進み、プロセスが完了する。
【００３８】
図３は、図２のステップ１３０でイベント処理待ちを実行するときに実行されるステップをより詳細に例示する流れ図である。ステップ２００でプロセスに入り、ステップ２０５でメイン処理装置２０のイベントレジスタ２８内にイベントが記録されたかどうかを判断する。一つの実施例では、省電力モードの終了に引き続いて、これは常に続いてトリガされるイベント処理待ちの最初の回となり、それはこの実施例では、省電力モードが終了した時にイベントレジスタが消去されないためである。これは例えば、処理装置が図２のステップ１１０および１２０を実行する間、補助処理装置の一つが割り振られたタスクを完了し、関連する割り込みパスを通して発行された割り込み信号に従って、イベント生成ロジック９０によって通知の生成がなされる。ステップ２０５で、イベントレジスタ内でイベントが記録されたと判断された場合、イベントレジスタはステップ２２５で消去され、プロセスはステップ２３０で終了する。図２を参照すると、この場合にはプロセスが直接的にステップ１１０へ戻り、完了フラグが再びポーリングさせることがわかる。これはメイン処理装置がステップ１２０でフラグがセットされているかを判断した結果によるが、セットされていない場合、プロセスは再びイベント処理待ちへ一巡して戻ることが図２からわかる。
【００３９】
ステップ２０５で、通知がイベントレジスタ内に記録されていないと判断された場合、プロセスはステップ２１０へ進み、メイン処理装置は省電力モードに入る。一つの実施例では、省電力モードはメイン処理装置を、できる限り低電力状態で、ソフトウェアの状態の再構築を必要とせずに、素早い立ち上げ（ａ  ｆａｓｔ  ｗａｋｅ  ｕｐ）を一貫して行うように設置する。その後、プロセスはステップ２１５へ進み、メイン処理装置２０のＥＶＩＮポートで通知が受け取られたかどうかを判断する。受け取られていなければ、プロセスはステップ２１７へ進み、未解決の例外があるかどうかを判断する。そのような例外は例えば、ポート２７で受け取られた有効な（すなわち、マスクされていない）割り込みや、不明確なデータの異常終了などである。そのようなステップの準備は、処理装置が待ち時間の影響なしに割り込みやその他の例外を処理することを可能にするため有益である。ステップ２１７でイベント内にそのような例外が検出されない場合、プロセスはステップ２１５へ戻る。
【００４０】
ステップ２１５で検出された通知イベントがＥＶＩＮポートで受け取られた、あるいはステップ２１７で未解決の例外が検出されたとき、プロセスはステップ２２０へ進み、省電力モードが終了される。その後、イベント処理の待ちはステップ２３０で終了する。図２を参照するとわかるように、ステップ２１５での通知の受け取りによって省電力モードが終了した場合、プロセスはステップ１１０へ戻り、完了フラグは再びポーリングされる。ステップ２１７での未解決の例外の検出によって省電力モードが終了しなかった場合、例えば例外ルーチンを実行することによって、メイン処理装置が例外を処理するために必要な機能を実行する。この例外ルーチンが完了すると、メイン処理装置はやがて、完了フラグをポーリングするために探索していた元のルーチンの実行に戻る。これが起こるとき、メイン処理装置はステップ１１０および１２０を再実行し、関連する補助処理装置によってタスクが完了したかどうかを判断し、その時点でタスクがまだ完了していない場合のみ、処理装置はステップ１３０でイベント処理待ちを再実行する。
【００４１】
図３からわかるように、例示された実施例では、通知イベントはステップ２１５で検出され、省電力モードを終了させるが、省電力モードが終了した時にイベントレジスタから自動的に消去されない。したがって、次にステップ１３０でプロセッサがイベント処理待ちを再実行するとき、処理はステップ２００、２０５、２２５、２３０へ進み、イベントレジスタが消去される。図２を参照すると、この結果、省電力モードが終了されたとき、完了フラグは、省電力モードに再び入る前にタスクが完了したかどうかを判断せずに、二回ポーリングされる必要がある。
【００４２】
理解される通り、図２および図３を参照しながら前記に記述された技術は、メイン処理装置が、完了フラグがセットされたことを判断されるまで関係する完了フィールドを繰り返しポーリングすることで、伝統的な先行技術のアプローチと比較して大幅な電力の節約をもたらす。その代わりに、メイン処理装置は省電力モードに入り、補助処理装置の一つがそれに割り振られたタスクを完了したことを示す通知の受け取りによって、待ち状態が覚醒される。
【００４３】
理解される通り、特定の実施例では、メイン処理装置に省電力モードを終了させるために他の動作も用いられる。例えば、メイン処理装置は、メイン処理装置２０によってデバッグエントリ要求が受け取られた場合に、省電力モードを終了するようにアレンジできる。
【００４４】
理解される通り、通知は、割り込み信号がパス３２、４２、５２のいずれかを通して受け取られた時はいつでも、イベント生成ロジック９０によって生成されるため、メイン処理装置２０による通知の受け取りは、メイン処理装置が完了されるための完了フィールドをポーリングしていたタスクを示す必要がない。例えば、メイン処理装置２０は、完了していないＤＭＡ制御器へ特定のタスクが割り振られたことによって、省電力モードに入る。メイン処理装置２０は例えば、データ・アクセラレータ４０またはＬＣＤ制御器５０が特定の割り振られたタスクを完了することによって、通知の受け取りに伴い省電力モードを終了する。図２においてこのことが理由となり、イベント処理待ちを終了するに伴い、メイン処理装置が関連する完了フラグを再びポーリングするようにアレンジされ、関連するタスクが完了したかどうかを判断する。
【００４５】
別の実施例では、メイン処理装置が完了を待っていたタスクに通知が関連付けられた場合、省電力モードの終了のみをするようにアレンジするなどして、通知を特定の補助処理装置に対してユニークにすることができる。しかしながら、これはメカニズムの複雑化を増長し、したがって図１の実施例では、任意の通知がメイン処理装置に省電力モードを終了させるというように、単純なメカニズムを用いている。多くの実施例では、この単純なメカニズムは大幅な電力の節約をもたらすのに十分であると予想される。
【００４６】
図４は、図２のプロセスの実施例を実行する一連の命令を例示する。始めに、読み込み命令は、関連する完了フラグ８２、８４、８６の内容をレジスタｒ１（メイン処理装置２０のワーキングレジスタ２４の一つ）へと読み込むことを実行する。その後、比較命令が、レジスタｒ１の内容が１とイコールであるかどうかを判断し、すなわち、完了フラグがセットされたかどうかを判断することを実行する（この実施例では、完了フラグは論理値１でセットされ、論理値０でリセットされると想定する）。
【００４７】
比較処理の結果が、レジスタｒ１が１とイコールでないと判断された場合、イベント命令待ちが条件付きで実行され、図３のプロセスが実行される。イベント処理待ちが実行を完了すると分岐命令が実行され、処理を読み込み命令に戻してループする。理解される通り、比較処理の結果が、レジスタｒ１内の値が１とイコールであると判断された（すなわち、完了フラグがセットされたことを示す）場合、イベント命令待ちおよび分岐命令は実行されず、代わりに処理は次の命令に進む（示されていない）。
【００４８】
特定の実施例では、メイン処理ロジック２０は、同時に一つ以上の完了フラグを監視し、したがって例のように、タスクがＤＭＡ制御器３０によって実行された時も、完了されたデータ・アクセラレータ４０によって実行された時も知ることが望まれる。そのような状況において、メイン処理ロジック２０は、関連する二つの完了フラグ８２、８４上をポーリングすると、省電力モードに入り、二つのタスクが共に完了していないと判断される。補助処理装置３０、４０、５０のいずれかに割り振られたタスクの完了を示す通知を受け取った時に、メイン処理装置は、省電力モードを終了し、関連する完了フィールド８２、８４を再びポーリングするようにアレンジされる。前記の図２の記述を参照すると、この場合、イベント処理待ちが完了フラグ８２、８４の両方が読み込まれた場合のみ実行され、両方のフラグがセットされていないと判断されるように、フローを変更してよいことがわかる。
【００４９】
前記の説明からわかる通り、本発明の技術は、特定の補助処理装置によってタスクの完了を待ち、メイン処理装置が低電力状態に入ることを許可するメカニズムを提供する。補助処理装置の一つによってタスクの完了を示す通知が発行されたとき、これはメイン処理装置を起動させ、関連する完了フラグを再びポーリングさせる。
【００５０】
前記に記述された本発明の実施例の技術は、ハードウェアおよびソフトウェアに頼り、エネルギー節約を実現する。ハードウェアは、いずれかの補助処理装置によってタスクが完了した時に、通知がメイン処理装置へ入力されることを可能にするためのパスを提供し、メイン処理装置には、通知が受け取られたかどうかを示すために設置されるレジスタが提供される。ハードウェアはしたがって、省電力モードに入るためのメカニズムを提供し、オペレーティング・システム・ソフトウェアは、イベント命令待ちの発行に対応し、適切な時点で低電力状態に入るようにする。
【００５１】
特定の実施例がここに記述されてきたが、理解される通り、本発明はそれらに限定されるものではなく、本発明の範囲内で多くの変更や追加がなされうる。例えば、本発明の範囲を逸脱しない限り、独立請求項の特徴を用いて、続く従属請求項の特徴の多様な組み合わせを実施することができる。
【図面の簡単な説明】
【００５２】
【図１】図１は、本発明の実施例に従ったデータ処理装置のブロック図である。
【図２】図２は、本発明の実施例に従った、メイン処理装置によって実行された一連のステップを例示する流れ図である。
【図３】図３は、図２のイベント処理待ちを実行するために実行されるステップを例示する流れ図である。
【図４】図４は、図２のプロセスを実行するために実行される一連の命令の例である。
【符号の説明】
【００５３】
２０  メイン処理装置
２２  実行装置
２４  レジスタ
２６  ポート
２７  ポート
２８  イベントレジスタ
３０  ＤＭＡ制御器
３２  パス
４０  データ・アクセラレータ
４２  パス
５０  ＬＣＯ制御器
５２  パス
５５  バス
６０  ビデオ表示メモリ
７０  表示装置
８０  メモリ
８２  完了フラグ
８４  完了フラグ
８６  完了フラグ
９０  イベント生成器
９２  ＯＲゲート
９４  割り込み制御器
【図１】
0004738891.tif 000002
【図２】
0004738891.tif 000003
【図３】
0004738891.tif 000004
【図４】
0004738891.tif 000005