(57)【要約】複数のデータ処理ユニットの電力消費を管理する装置および方法。スケジューラ（２８０）が高電力を消費する第一のデータ処理ユニット（２００）のための第一の処理段階を第一の期限内にスケジューリングし、やはり高電力を消費する第二のデータ処理ユニット（２４０）のための第二の処理段階を第二の期限内にスケジューリングする。スケジューラはさらに、第一の処理段階および第二の処理段階を両処理段階が同時並行して生起せず、それにより期限を守りながら電源からのピーク電力引き出しを低下させるよう、スケジューリングする。ピーク電力ドレインはバッテリー容量を決定する際に重要な因子であると見出されているので、これは、ポータブル電子マルチメディア装置のようなバッテリーで動作する装置において特に有益である。
2009543172.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理ユニットの電力消費を管理する装置であって：
第一の処理段階を処理している間は動作の第一の電力モードをもち、別の処理段階を処理している間は動作の第二の電力モードをもち、第一の電力モードのほうが第二の電力モードより高い電力消費をもつ、第一のデータ処理ユニットと、
第二の処理段階を処理している間は動作の第三の電力モードをもち、さらなる別の処理段階を処理している間は動作の第四の電力モードをもち、第三の電力モードのほうが第四の電力モードより高い電力消費をもつ、第二のデータ処理ユニットと、
前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングするスケジューラとを有しており、
前記スケジューラはさらに、前記第一の処理段階および前記前記第二の処理段階を非並行的にスケジューリングする、
装置。
【請求項２】
前記スケジューラがさらに：
前記第一の処理ユニットの動作の所望されるモードを設定するための第一の電力管理ユニットと、
前記第二の処理ユニットの動作の所望されるモードを設定するための第二の電力管理ユニットとを有する、
請求項１記載の装置。
【請求項３】
前記第一の電力管理ユニットは、前記第一のデータ処理ユニットの動作の所望されるモードを前記第二の電力管理ユニットに通信するよう、前記第二の電力管理ユニットに通信上結合されている、請求項２記載の装置。
【請求項４】
クロック生成ユニットをさらに有する請求項２または３記載の装置であって、
前記第二のデータ処理ユニットは前記クロック生成ユニットによって生成されるクロックによって駆動されるプロセッサであり、
前記第二の電力管理ユニットは、前記第二のデータ処理ユニットの動作の所望されるモードに基づいて前記クロック生成ユニットを制御するよう、前記クロック生成ユニットに通信上結合されている、
装置。
【請求項５】
前記クロック生成ユニットによって生成されたクロックは、前記第二のデータ処理ユニットが動作の第三の電力モードで動作するような高周波数、あるいは前記第二のデータ処理ユニットが動作の第四の電力モードで動作するような低周波数でありうる、請求項４記載の装置。
【請求項６】
電力管理ユニットをさらに有する請求項２または３記載の装置であって：
前記第二のデータ処理ユニットは、前記電力管理ユニットによって生成されるクロックおよび電圧によって駆動されるプロセッサであり、
前記電力管理ユニットには前記第二の電力管理ユニットが、該第二のデータ処理ユニットの動作の所望されるモードに基づいて電力管理を制御するよう、通信上結合されている、
装置。
【請求項７】
前記電力管理ユニットによって生成されるクロックは、前記第二のデータ処理ユニットが動作の第三の電力モードで動作するような高周波数、あるいは前記第二のデータ処理ユニットが動作の第四の電力モードで動作するような低周波数でありうる、
請求項６記載の装置。
【請求項８】
前記電力管理ユニットによって生成される電圧は、前記第二のデータ処理ユニットが動作の第三の電力モードで動作するような高電圧、あるいは前記第二のデータ処理ユニットが動作の第四の電力モードで動作するような低電圧でありうる、
請求項６記載の装置。
【請求項９】
前記第一の処理段階の出力を前記第二の処理段階の入力として渡すために、前記第一のデータ処理ユニットが前記第二のデータ処理ユニットに通信上結合されている、請求項１記載の装置。
【請求項１０】
前記第一のデータ処理ユニットおよび前記第二のデータ処理ユニットに通信上結合されているバッファをさらに有する、請求項９記載の装置であって、
前記第一のデータ処理ユニットは前記第一の処理段階の出力を前記バッファ中に記憶し、前記第二のデータ処理ユニットは前記第一の処理段階の出力を前記バッファから読み出す、
装置。
【請求項１１】
前記第一のデータ処理ユニットまたは前記第二のデータ処理ユニットが：
プロセッサ；
記憶ユニット；
圧縮ユニット；
圧縮解除ユニット；
組み合わされた圧縮および圧縮解除ユニットまたは
通信ユニット、
から選択される一つである、請求項１記載の装置。
【請求項１２】
プログラム可能タイマーをさらに有する請求項２記載の装置であって、該タイマーは、該タイマーの時間期間をプログラムするためおよび該時間期間満了時に前記第二のデータ処理ユニットを覚醒させるために、前記第二のデータ処理ユニットに通信上結合されている、請求項２記載の装置。
【請求項１３】
動作の第二の電力モードはスタンバイモードまたは電源オフ・モードである、請求項１記載の装置。
【請求項１４】
少なくとも一つのアプリケーションのための資源を該少なくとも一つのアプリケーションの特性に基づいて管理するためのアプリケーション管理ユニットをさらに有する請求項１記載の装置であって、該アプリケーション管理ユニットは、前記スケジューラに通信上結合されている、装置。
【請求項１５】
セットトップボックス装置；
デジタル・ビデオ記録装置；
ネットワーク機能のある装置；
限定受信システム；
ポータブル・オーディオ・プレーヤー；
ポータブル・ビデオ・プレーヤー；
携帯電話；
DVDプレーヤー；
CDプレーヤー；
ハードディスク・ベースのメディア・プレーヤー；
インターネット・ラジオ装置；
コンピュータ；
テレビ；
公共娯楽装置；および
MP3プレーヤー
からなる群のうちの少なくとも一つとして実現される装置であって：
請求項１記載の装置と；
前記第一のデータ処理ユニットおよび前記第二のデータ処理ユニットに電力を供給するための電源とを有する装置。
【請求項１６】
複数のデータ処理ユニットの電力消費を管理する方法であって：
第一のデータ処理ユニットの動作の第二の電力モードよりも高い電力消費の、第一のデータ処理ユニットの動作の第一の電力モードを要求する第一の処理段階を識別する段階と；
第二のデータ処理ユニットの動作の第四の電力モードよりも高い電力消費の、第二のデータ処理ユニットの動作の第三の電力モードを要求する第二の処理段階を識別する段階と；
前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングする段階とを有しており、
前記スケジューリングする段階がさらに、前記第一の処理段階および前記第二の処理段階を非並行的にスケジューリングする、方法。
【請求項１７】
前記スケジューリングする段階がさらに：
前記第一のデータ処理ユニットの動作の所望されるモードを設定する段階と；
前記第二のデータ処理ユニットの動作の所望されるモードを設定する段階とをさらに有する、
請求項１６記載の方法。
【請求項１８】
前記第一の処理段階の出力を前記第二の処理段階の入力として通信する段階をさらに有する、請求項１３記載の方法。
【請求項１９】
前記通信する段階がさらに、前記第一の処理段階の出力を前記第二の処理段階の入力として通信するのに先立ち、前記第一の処理段階の出力をバッファリングする段階を有する、請求項１８記載の方法。
【請求項２０】
プログラム可能デバイスのメモリに直接ロード可能なプログラム・エレメントであって、前記デバイス上で実行されたときに：
第一のデータ処理ユニットの動作の第二の電力モードよりも高い電力消費の、第一のデータ処理ユニットの動作の第一の電力モードを要求する第一の処理段階を識別する段階と；
第二のデータ処理ユニットの動作の第四の電力モードよりも高い電力消費の、第二のデータ処理ユニットの動作の第三の電力モードを要求する第二の処理段階を識別する段階と；
前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングする段階とを有する方法であって、
前記スケジューリングする段階がさらに、前記第一の処理段階および前記第二の処理段階を非並行的にスケジューリングする方法
を実行するためのソフトウェア・コード部分を有するプログラム・エレメント。
【請求項２１】
プログラム可能デバイスのメモリに直接ロード可能なコンピュータ可読媒体であって、前記デバイス上で実行されたときに：
第一のデータ処理ユニットの動作の第二の電力モードよりも高い電力消費の、第一のデータ処理ユニットの動作の第一の電力モードを要求する第一の処理段階を識別する段階と；
第二のデータ処理ユニットの動作の第四の電力モードよりも高い電力消費の、第二のデータ処理ユニットの動作の第三の電力モードを要求する第二の処理段階を識別する段階と；
前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングする段階とを有する方法であって、
前記スケジューリングする段階がさらに、前記第一の処理段階および前記第二の処理段階を非並行的にスケジューリングする方法
を実行するためのソフトウェア・コード部分を有するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータ処理ユニットの電力消費を管理する装置に関する。
【０００２】
本発明はさらに、複数のデータ処理ユニットの電力消費を管理する方法に関する。
【０００３】
本発明はさらに、プログラム・エレメントに関する。
【０００４】
本発明はさらに、コンピュータ可読媒体に関する。
【背景技術】
【０００５】
あらゆる電子装置は電力を消費する。消費される電力はそのままエンド・ユーザーにとってのコストに反映される。たとえば、家庭用ビデオ・カセット・レコーダーによって消費される電力は、電力料金に跳ね返る。携帯機器についても、消費される電力は機器が動作するある時間として反映される。一般に、電力節約は常にエンド・ユーザーにとっては恩恵である。これは、できるだけ効率的に機器を動作させることによって達成できる。これは、家庭における状況でも移動中の状況でも成り立つ。
【０００６】
米国特許6,167,524では、システム論理に動的に電力を割り当てることによってポータブル・パーソナル・コンピュータにおける電力消費を制御するための装置および方法が開示されている。期待される総電力消費が計算され、最適な電力効率値と比較される。各実行ユニットについての期待される電力消費値は、実際のまたは圧縮された形でルックアップ・テーブルに記憶される。期待される総電力消費値がその電力効率値を超えれば、選択された実行ユニットが不活動にされる。これは、動作を、特に予測動作（speculative  operations）を取り消すことを含んでいてもよい。逆に、電力効率値が期待される総電力消費値を超える場合、バッテリーに対するレベル現在需要（level  current  demand）を維持するために、実行ユニット機能が追加される。
【０００７】
消費者エレクトロニクスの領域で動作する電子装置は一般に、エンド・ユーザーに対して保証されたサービス品質を提供する必要がある。たとえば、オーディオ再生装置は常に、エンド・ユーザーによって所望されるオーディオを再生すべきであり、ビデオ再生装置は常に、エンド・ユーザーによって所望されるビデオを再生すべきであり、これはオーディオ再生またはビデオ再生における知覚できる乱れなしに実行されるべきである。さらに、そのような消費者電子装置では、一般に、かなりの電力量を消費する、実行ユニットのほかの、データを処理するための複数のユニットがある。たとえば、ハードディスク・ドライブもしくは光ドライブといった記憶ユニットまたはネットワーク・コントローラもしくはWiFiインターフェースといった通信ユニットはかなりの電力を消費する。したがって、実行ユニット固有ではない解決策が好ましいであろう。さらに、予測動作の使用は消費者電子装置においてめずらしくはないので、予測動作の取り消しはそれほど適用可能ではない。予測動作の使用なしでも、動作の取り消し一般は消費者電子装置においては、与えられるサービスの品質に影響を与える可能性が高いので、可能ではない。
【０００８】
この問題を認識する発明者らは、本発明を考案した。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、機器における電力消費の管理を改善することを追求する。
【課題を解決するための手段】
【００１０】
そこで、本発明の第一の側面では、複数のデータ処理ユニットの電力消費を管理する装置であって、第一の処理段階を処理している間は動作の第一の電力モードをもち、別の処理段階を処理している間は動作の第二の電力モードをもち、第一の電力モードのほうが第二の電力モードより高い電力消費をもつ第一のデータ処理ユニットと、第二の処理段階を処理している間は動作の第三の電力モードをもち、さらなる別の処理段階を処理している間は動作の第四の電力モードをもち、第三の電力モードのほうが第四の電力モードより高い電力消費をもつ第二のデータ処理ユニットと、前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングし、さらに前記第一の処理段階と前記第二の処理段階を非並行的にスケジューリングするスケジューラとを有する装置が提供される。
【００１１】
本発明の第二の側面によれば、複数のデータ処理ユニットの電力消費を管理する方法であって、
第一のデータ処理ユニットの動作の第二の電力モードよりも高い電力消費の、第一のデータ処理ユニットの動作の第一の電力モードを要求する第一の処理段階を識別する段階と、第二のデータ処理ユニットの動作の第四の電力モードよりも高い電力消費の、第二のデータ処理ユニットの動作の第三の電力モードを要求する第二の処理段階を識別する段階と、前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングし、さらに前記第一の処理段階と前記第二の処理段階を非並行的にスケジューリングする段階とを有する方法が提供される。
【００１２】
本発明の第三の側面によれば、プログラム可能デバイスのメモリに直接ロード可能なプログラム・エレメントであって、前記デバイス上で実行されたときに、第一のデータ処理ユニットの動作の第二の電力モードよりも高い電力消費の、第一のデータ処理ユニットの動作の第一の電力モードを要求する第一の処理段階を識別する段階と、第二のデータ処理ユニットの動作の第四の電力モードよりも高い電力消費の、第二のデータ処理ユニットの動作の第三の電力モードを要求する第二の処理段階を識別する段階と、前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングし、さらに前記第一の処理段階と前記第二の処理段階を非並行的にスケジューリングする段階とを有する方法を実行するためのソフトウェア・コード部分を有するプログラム・エレメントが提供される。
【００１３】
本発明の第四の側面によれば、プログラム可能デバイスのメモリに直接ロード可能なコンピュータ可読媒体であって、前記デバイス上で実行されたときに、第一のデータ処理ユニットの動作の第二の電力モードよりも高い電力消費の、第一のデータ処理ユニットの動作の第一の電力モードを要求する第一の処理段階を識別する段階と、第二のデータ処理ユニットの動作の第四の電力モードよりも高い電力消費の、第二のデータ処理ユニットの動作の第三の電力モードを要求する第二の処理段階を識別する段階と、前記第一の処理段階を第一の期限内にスケジューリングし、前記第二の処理段階を第二の期限内にスケジューリングし、さらに前記第一の処理段階と前記第二の処理段階を非並行的にスケジューリングする段階とを有する方法を実行するためのソフトウェア・コード部分を有するコンピュータ可読媒体が提供される。
【００１４】
複数のデータ処理ユニットが存在して、前記複数のデータ処理ユニットのそれぞれが電源から比較的項電力を引き出すことができるとき、前記複数のデータ処理ユニットの電力消費を管理する装置および方法を提供することが有利である。高電力を消費する第一のデータ処理ユニットのための第一の処理段階を第一の期限内にスケジューリングし、やはり高電力を消費する第二のデータ処理ユニットのための前記第二の処理段階を第二の期限内にスケジューリングするスケジューラを提供することで、前記二つの処理段階および関係した期限が調整されることができるようになり、さらに前記第一の処理段階と前記第二の処理段階を、両処理段階が並行して起こらないようにスケジューリングすることによって、期限を保持しつつも、電源から引き出されるピーク電力が制限されうる。ピーク電力ドレインはバッテリー容量を決定する重要な因子であることが見出されているので、これは、ポータブル電子マルチメディア装置のようなバッテリー動作の装置において特に有益である。
【００１５】
ある実施形態では、前記第一の処理ユニットの動作の所望されるモードを設定するための第一の電力管理ユニットと、前記第二の処理ユニットの動作の所望されるモードを設定するための第二の電力管理ユニットとをさらに有するスケジューラが提供されてもよい。これは、スケジューラが前記第一のデータ処理ユニットおよび前記第二のデータ処理ユニット両方にわたる能動制御を提供することを許容する。
【００１６】
あるさらなる実施形態では、第一の電力管理ユニットは、第一のデータ処理ユニットの動作の所望されるモードを第二の電力管理ユニットに通信するよう、第二の電力管理ユニットに通信上結合されていてもよい。これは、第二の電力管理ユニットが第一のデータ処理ユニットの動作のモードの変化に反応し、第二のデータ処理ユニットをしかるべく制御することを許容する。
【００１７】
別の実施形態では、クロック生成ユニットが提供されてもよく、第二のデータ処理ユニットは該クロック生成ユニットによって生成されるクロックによって駆動されるプロセッサであってもよい。さらに、第二の電力管理ユニットは、該第二のデータ処理ユニットの動作の所望されるモードに基づいて前記クロック生成ユニットを制御するよう、前記クロック生成ユニットに通信上結合されていてもよい。これは、第二のデータ処理ユニットによって消費される電力が制御されることを許容する。
【００１８】
さらに別の実施形態では、クロック生成ユニットによって生成されたクロックは、第二のデータ処理ユニットが動作の第三の電力モードで動作するような高周波数であっても、あるいは第二のデータ処理ユニットが動作の第四の電力モードで動作するような低周波数であってもよい。これは、実時間の期限を維持しつつ、第二のデータ処理ユニットによって消費される電力が細かい粒度で制御されることを許容する。
【００１９】
ある実施形態では、電力管理ユニットが提供されてもよく、第二のデータ処理ユニットは、該電力管理ユニットによって生成されるクロックおよび電圧によって駆動されるプロセッサであってもよく、前記電力管理ユニットには第二の電力管理ユニットが、前記第二のデータ処理ユニットの動作の所望されるモードに基づいて電力管理を制御するよう、通信上結合されてもよい。
【００２０】
別の実施形態では、電力管理ユニットによって生成されるクロックは、第二のデータ処理ユニットが動作の第三の電力モードで動作するような高周波数であっても、あるいは第二のデータ処理ユニットが動作の第四の電力モードで動作するような低周波数であってもよい。
【００２１】
あるさらなる実施形態では、電力管理ユニットによって生成される電圧は、第二のデータ処理ユニットが動作の第三の電力モードで動作するような高電圧であっても、あるいは第二のデータ処理ユニットが動作の第四の電力モードで動作するような低電圧であってもよい。
【００２２】
ある実施形態では、第一の処理段階の出力を第二の処理段階の入力として渡すために、第一のデータ処理ユニットが第二のデータ処理ユニットに通信上結合されていてもよい。前記両データ処理ユニットの逐次的な構成は、実用上重要な、有用な実施形態である。
【００２３】
ある別の実施形態では、バッファが提供されてもよい。該バッファは第一のデータ処理ユニットおよび第二のデータ処理ユニットに通信上結合されていてもよく、前記第一のデータ処理ユニットは第一の処理段階の出力を前記バッファ中に記憶してもよく、前記第二のデータ処理ユニットは前記第一の処理段階の出力を前記バッファから読み出してもよい。これは、ピーク電力を減らしつつ、より長い時間期間にわたる動作のスケジューリングにおけるさらなる柔軟性を許容する。
【００２４】
ある別の実施形態では、第一のデータ処理ユニットまたは第二のデータ処理ユニットは、プロセッサ、記憶ユニット、圧縮ユニット、圧縮解除ユニット、組み合わされた圧縮および圧縮解除ユニットまたは通信ユニットから選択される一つであってもよい。これらは、消費者電子機器において有用なデータ処理ユニットである。
【００２５】
あるさらなる実施形態では、プログラム可能タイマーが提供されてもよい。該タイマーは、該タイマーの時間期間をプログラムするためおよび該時間期間満了時に第二のデータ処理ユニットを覚醒させるため、第二のデータ処理ユニットに通信上結合されていてもよい。これは、第二のデータ処理ユニットが非常に低い電力モードに移行し、それにより電力を節約することを許容する。
【００２６】
ある実施形態では、動作の第二の電力モードはスタンバイモードまたは電源オフ・モードであってもよい。そのようなモードは作動する動作モードより電力消費が少ないので、電力節約を許容する。
【００２７】
あるさらなる実施形態では、少なくとも一つのアプリケーションのための資源を該少なくとも一つのアプリケーションの特性に基づいて管理するためのアプリケーション管理ユニットが提供されてもよい。該アプリケーション管理ユニットは、前記スケジューラに通信上結合されていてもよい。これは、すべてのアプリケーションの資源が最適化された仕方で管理されることを許容する。
【００２８】
あるさらなる実施形態では、本発明に基づく装置は、セットトップボックス装置、デジタル・ビデオ記録装置、ネットワーク機能のある装置、限定受信システム、ポータブル・オーディオ・プレーヤー、ポータブル・ビデオ・プレーヤー、携帯電話、DVDプレーヤー、CDプレーヤー、ハードディスク・ベースのメディア・プレーヤー、インターネット・ラジオ装置、コンピュータ、テレビ、公共娯楽装置およびMP3プレーヤーからなる群のうちの少なくとも一つとして実現されてもよく、本発明に基づく当該装置は、複数のデータ処理ユニットの電力消費を管理する装置と、前記データ処理ユニットに電力を供給する電源とを有する。しかしながら、これらのアプリケーションは単に例示的なものである。
【００２９】
別の実施形態では、第一のデータ処理ユニットの動作の所望されるモードが設定されてもよく、第二のデータ処理ユニットの動作の所望されるモードも設定されてもよい。これは、第一のデータ処理ユニットおよび第二のデータ処理ユニット両方の能動的な制御を許容する。
【００３０】
本発明に基づいて要求されるデータ処理は、コンピュータ・プログラムによって、すなわちソフトウェアによって、あるいは一つまたは複数の特殊な電子的最適化回路を使って、すなわちハードウェアにおいて、あるいはハイブリッド形態で、すなわちソフトウェア・コンポーネントおよびハードウェア・コンポーネントによって、実現できる。
【００３１】
本発明の上記のおよびさらなる諸側面は、以下に述べる実施例から明白であり、該実施例を参照して説明される。
【００３２】
本発明は、実施例を参照しつつ以下でより詳細に記載されるが、本発明はそうした実施例に限定されるものではない。
【００３３】
図は、概略的に描かれており、縮尺通りではない。異なる図面における同一の参照符号は対応する要素を指す。当業者には、真の発明的概念から外れることなく、本発明の代替的だが等価な実施形態が可能であり、本発明の範囲は請求項によってのみ限定されることは明らかであろう。
【発明を実施するための最良の形態】
【００３４】
以下では、処理ユニットまたはデータ処理ユニットの用語が全般的に使われる。処理ユニットの用語はデータ・ストリームに対して実施される単一の処理段階を含んでもよく、あるいは複数の個別処理段階を一つのものとして含んでいてもよい。処理ユニットの例は、オーディオ／ビデオ・エンコーダまたはデコーダ、データ・ストリーム・フィルタ、等化のためのオーディオ処理、色のためのビデオ処理などである。処理ユニットの用語は、データ・ストリームを、たとえば、ハードディスク・ドライブ、光ディスク・ドライブのような不揮発性メモリにおいて、あるいはフラッシュ・メモリ・デバイス上に記憶する処理をも含みうる。処理ユニットの用語はまた、有線または無線配位のネットワーク・インターフェース・コントローラを介してデータ・ストリームを送信または受信する処理をも含みうる。本発明の範囲において、処理ユニットは、データ・ストリームのための入力または出力を有するユニットとして理解されるべきである。データ・ストリームはストリーミング式に処理される。これは、ハードディスク・ドライブおよび無線インターフェース・カードといった、データ・ストリームを多重化する、本来的にストリーミングでないユニットについては、ストリーミング・バッファの支援によって達成されうる。
【００３５】
図１は、本発明のある実施形態に基づく装置１００を示している。装置１００は、記憶ユニット１７０を有する。記憶ユニット１７０は、ハードディスク・ドライブ、フロッピー（登録商標）・ディスク・ドライブ、フラッシュ・メモリ・デバイス、光ドライブまたは等価物であってよい。記憶ユニット１７０は、ユーザー１９２が保存またはレンダリングしたがるようなオーディオおよびビデオを記憶するために使用されてよい。装置１００はたとえば、バッテリーまたは電源アダプター（どちらも図示せず）のような電源１９６から走るポータブル・オーディオ／ビデオ・ジュークボックス装置であってもよい。装置１００は、ローカルなディスプレイ１６０上での表示のためにオーディオ／ビデオ・データ・ストリームをエンコードおよび／またはデコードするためのコーデック１５０をも有していてもよい。あるいはまた、プロセッサ１２０は前記オーディオ／ビデオ・データ・ストリームをエンコードまたはデコードするために使用されてもよい。スピーカーのようなオーディオ・レンダリング・デバイス（図示せず）が装置１００内に、あるいは装置１００に外的に接続されて存在してもよい。装置１００はまた、有線もしくは無線形のイーサネット（登録商標）インターフェース、WiFiインターフェース、ブルートゥース・インターフェースまたは携帯電話ネットワーク・インターフェースのような通信ユニット１３０をも有していてもよい。ネットワーク・インターフェース・コントローラはまた、通信ユニット１３０として理解されてもよい。その際、装置１００は一つまたは複数のデータ・ストリームを、前記コーデック１５０を使ったデコードのためおよび前記ローカルなディスプレイ１６０上でのさらなる表示のために、あるいは前記記憶ユニット１７０に記憶するために、通信ユニット１３０を介して受信しもする。通信ユニット１３０はまた、ネットワーク１８０を介してリモート装置１６５上のリモート・ディスプレイにデータ・ストリームを送信するために使われてもよい。ネットワーク１８０は、ローカルなネットワークでもインターネットのような世界規模のネットワークであってもよい。ユーザー１９２は、ユーザー・インターフェース１９０を使って装置１００と対話してもよい。典型的には、ユーザー１９２は、リモコン１９１を使ってユーザー・インターフェース１９０と対話するが、他の対話手段も可能である。たとえば、ユーザー１９２は、タッチスクリーン、スクロール・ホイール、ボタン、マウスまたは他のポインタ・デバイス、キーボードなどを使って装置１００と対話してもよい。
【００３６】
通信ユニット１３０、記憶ユニット１７０、コーデック１５０およびプロセッサ１２０は一般に、動作の際にかなりの量の電力を消費する。電力消費を減らすため、データ・ストリームを一時的に記憶し、それにより記憶ユニット１７０および通信ユニット１３０のようなコンポーネント・ユニットが電源を落とされてもよくするためにバッファ１１０が使われてもよい。これは、コーデック１５０またはプロセッサ１２０がいまだデータ・ストリームを処理していてもよく、ユーザー１９２によって期待されるサービスの品質が保持されることを保証する。たとえば、図１で、バッファ１１０は、記憶ユニット１７０、通信ユニット１３０、コーデック１５０およびプロセッサ１２０の間で分散または分割されてもよい。これは、プロセッサ１２０上で走る制御プログラムおよびシステム・バス１４０の使用によって達成される。システム・バス１４０は、装置１００内に含まれるコンポーネント・ユニットすべてを相互接続して、プロセッサ１２０が各コンポーネント・ユニットを制御するのを許容しうる。装置１９５は、装置１００と、記憶ユニット１７０、通信ユニット１３０、コーデック１５０およびプロセッサ１２０に電力を供給する電源１９６とを有していてもよい。装置１９５は、セットトップボックス装置、デジタル・ビデオ記録装置、ネットワーク機能のある装置、限定受信システム、ポータブル・オーディオ・プレーヤー、ポータブル・ビデオ・プレーヤー、携帯電話、DVDプレーヤー、CDプレーヤー、ハードディスク・ベースのメディア・プレーヤー、インターネット・ラジオ装置、コンピュータ、テレビ、公共娯楽装置またはMP3プレーヤーとして実現されてもよい。これらの例は単に例示的なものである。
【００３７】
図２では、第一のデータ処理ユニット２００、第二のデータ処理ユニット２４０およびスケジューラ２８０を有する本発明のある実施形態が示されている。第一のデータ処理ユニット２００または第二のデータ処理ユニット２４０は、記憶ユニット１７０、通信ユニット１３０、コーデック１５０、プロセッサ１２０または個別の圧縮ユニットまたは圧縮解除ユニットといったデータを処理する機能をもついかなるコンポーネント・ユニットであってもよい。図２では、第一のデータ処理ユニット２００は、第一の入力データ２１５が受信される第一の入力２１０をもつ。第一のデータ処理ユニット２００は第一の入力データ２１５を第一の処理段階に従って処理して第一の出力データ２２５を第一の出力２２０において生成する。一例として、第一の処理段階は、第一のデータ処理ユニット２００がハードディスク・ドライブのような記憶ユニットであるとき、読み取り動作であってもよい。第一の処理段階を実行するために、第一のデータ処理ユニット２００は一般にかなりの量の電力を要求する。これは、第一の処理装置２００がハードディスク・ドライブまたは無線ネットワーク・インターフェースである状況について、のちに詳細に論じることになる。
【００３８】
第一のデータ処理ユニット２００と似ている第二のデータ処理ユニット２４０は、第二の入力データ２５５が受信される第二の入力２５０をもつ。第二のデータ処理ユニット２４０は第二の入力データ２５５を第二の処理段階に従って処理して第二の出力データ２６５を第二の出力２６０上に生成する。一例として、第二の処理段階は、プロセッサ１２０上でのビデオ・デコード動作であってもよい。第二の処理段階を実行するために、第二のデータ処理ユニット２４０はやはり一般にかなりの量の電力を要求する。スケジューラ２８０は、第一のデータ処理ユニット２００および第二のデータ処理ユニット２４０上でのデータの流れを制御する。第一のデータ処理ユニット２００については、これはスケジューラ２８０から第一のデータ処理ユニット２００に第一のスケジュール入力２３０によって通信される第一のスケジュール２３５を生成することによって達成される。同様に、第二のデータ処理ユニット２４０については、スケジューラ２８０から第二のデータ処理ユニット２４０に第二のスケジュール入力２７０によって通信される第二のスケジュール２７５が生成される。
【００３９】
スケジューラ２８０は、第一のスケジュール２３５および第二のスケジュール２７５を、第一の入力データ２１５および第二の入力データ２５５についての何らかの期限を考慮に入れて生成してもよい。スケジューラ２８０はまた、第一のスケジュール２３５および第二のスケジュール２７５を、所定のもしくはハードコードされた要件に基づいて、あるいはプロセッサ１２０上で現在走っているまたはランタイムもしくは動作中にユーザー１９２によって要求されるアプリケーションに基づいて動的に、生成してもよい。
【００４０】
スケジューラ２８０はまた、第一のデータ処理ユニット２００および第二のデータ処理ユニット２４０が並行してかなりの電力消費を要求しないよう、前記第一のスケジュール２３５および前記第二のスケジュール２７５を生成してもよい。これは、単独の第一の入力データ２１５および第二の入力データ２５５についての任意の実時間の期限を考慮に入れ、第一のデータ処理ユニット２００および第二のデータ処理ユニット２４０上での処理を逐次的にスケジューリングすることによって達成される。これは、スケジューラ２８０が、第一の処理装置２００または第二の処理装置２４０のさまざまな動作モードにおける電力消費について何の情報ももたないときに有用である。装置１００によって消費されるピーク電力が制限されることを保証することによって、装置１００の効率が改善される。装置１００がバッテリーで動作するとき、ピーク電力要求を下げることはバッテリー容量を増し、よって動作時間を伸ばす。また、そのような装置で一般的なように電力変換器が適用されるとき、電力変換器は、ピーク電力を調節することによってより高い効率の領域で動作させられることができる。そのような効率の上昇は、無駄になる電力が少なくなるので、外部電源をもつ装置にも恩恵となる。
【００４１】
あるいはまた、第一のデータ処理ユニット２００および第二のデータ処理ユニット２４０上での処理のスケジューリングは、それらのデータ処理ユニットの一方による高電力消費の期間が並行して生起しないという条件のもとで、同時にスケジューリングされてもよい。たとえば、第一のデータ処理ユニット２００による高電力消費の期間の間は、第二のデータ処理ユニット２４０は電力消費が低いまたは0のモードで動作しなければならず、逆に第二のデータ処理ユニット２４０による高電力消費の期間の間は、第一のデータ処理ユニット２００は電力消費が低いまたは0のモードで動作しなければならない。
【００４２】
図１１では、図２の実施形態について、電力消費トレースが示されている。ここで、第一の処理装置２００はハードディスク・ドライブであり、第二のデータ処理装置２４０はプロセッサである。図１１の上の横軸１１００および下の横軸９６０はいずれも時間を秒で示している。図１１の上の縦軸１１１０はワット単位の電力であり、下の縦軸９５０は電力であるが、単位は示されていない。図１１に示されるトレースは、ハードディスク・ドライブが待機モード１１２０にあるところで始まる。これが図１１に示されるすべてのうちで最低電力モードである。ハードディスク・ドライブの電源を完全に切ることが、電力をさらに節約できる（これは図１１には示されていない）。そのような期間の間は、スケジューラ２８０は第二のデータ処理装置２４０、たとえばプロセッサ１２０またはコーデック１５０を、より高い電流を消費する、領域９７０で示される動作モードで走るようスケジューリングしてもよい。これは、第二のデータ処理装置２４０によって消費される電力消費の低下を必要とする第一の入力データ２１５についての迫っている期限にすでに気づいているときの状況について、スケジューラ２８０がプリエンプティブにオーディオ／ビデオ・データをデコードすることに関わっていてもよい。第二のデータ処理ユニット２４０に必要とされるそのようなより低い電力消費のモードが図１１の領域９８０に示されており、ハードディスク・ドライブがコマンドを受信する際に生起する。次いでハードディスク・ドライブはロード（load）・モード１１３０にはいってもよい。一般に、これはハードディスク・ドライブ内部のディスク（単数または複数）を回して通常の動作スピードにし、読み書きヘッドをディスクのデータ領域に位置させることに関わる。これは、いわゆるランディング・ゾーン（landing  zone）からの、あるいは読み書きヘッドをランプ（ramp）からアンロードすることによる単なるシーク動作に関わるものでもよい。一般に、ハードディスク・ドライブは、ある時間期間にわたってさらなるコマンドを待つパフォーマンス・アイドル・モード１１５０に留まる。このモードでは、ハードディスク・ドライブはすぐコマンドに反応しうる。
【００４３】
作動的なアイドル・モード１１６０では、ハードディスク・ドライブは、周辺コンポーネントのできるだけ多くの電源を落としてもよい。たとえば、能動トラック追跡を停止し、読み書きチャネル電子回路をシャットダウンするなどしてもよい。そのような領域では、スケジューラ２８０は第二のデータ処理ユニット２４０を、図１１における領域９９０によって示されるような中間電力消費モードで走るよう、スケジューリングしてもよい。さらなるコマンドが受領されない場合、ハードディスク・ドライブは読み書きヘッドをアンロードしてもよい。これは典型的には、モバイルまたはポータブル・アプリケーションで使われるランプ・ロード・ハードディスク・ドライブ（ramp  load  hard  disk  drives）において実行される。アンロード・モード１１７０は、読み書きをランプまで動かすことに関わる。これは電力を引き出すので、スケジューラ２８０は、やはり図１１の領域９８０として示される第二の適応処理ユニット２４０による低電力消費の期間を必要としうる。低電力アイドル・モード１１８０においては、読み書きヘッドがもはやディスク表面の直近を浮遊しておらず、「抵抗（drag）」が低下しているので、電力消費は低減される。スピンドルも通常動作よりも遅いスピードで回されてもよく、さらなる周辺電子回路が無効にされてもよい。領域１１８０では、スケジューラ２８０は、第二のデータ処理装置が、図１１における領域９９０によって示される中間レベルでの動作に戻ることを許容してもよい。図１１に示されるトレースは、電力モード遷移を実行するために要求される継続期間をも示している。たとえば、ロード・モード１１３０の継続期間は、待機モード１１２０から読み書きモード１１４０への遷移に必要とされる継続時間である。
【００４４】
スケジューラ２８０が図１１に示したほど詳細に、すなわち秒単位以下の間隔で、第一のスケジュール２３５および第二のスケジュール２７５を生成することが可能である一方、スケジューラ２８０が、数秒の時間期間といったより粗いレベルで動作することが好ましいこともありうる。これにより、個々のコンポーネント処理ユニットの電力消費について必要とされる詳細な情報が少なくなる。
【００４５】
本発明のあるさらなる実施形態が図３に示されている。図３の実施形態では、第一のデータ処理ユニット２００は第二のデータ処理ユニット２４０に逐次的に接続されている。したがって、第一の出力データ２２５は直接第二の入力２５０に通信される。この構成は、第一のデータ処理ユニット２００として動作するハードディスク・ドライブから読まれるときに、第二のデータ処理ユニット２４０として動作するプロセッサ１２０上でのオーディオ／ビデオのデコードを可能にする。
【００４６】
図４は、逐次的に接続された図３の第一のデータ処理ユニット２００と第二のデータ処理ユニット２４０との間の一時記憶としてバッファ１１０が使用される別の実施形態を示している。第一の出力データ２２５は第一のデータ処理ユニット２００からバッファ１１０に第一の出力２２０を介して通信される。これは、第一のデータ処理ユニット２００がかなりの時間期間にわたって非常に低い電力モードに置かれる、あるいはさらにスイッチが切られることを可能にし、電力効率をさらに改善する。バッファ１１０は第一のデータ処理ユニット２００および第二のデータ処理ユニット２４０がたとえ逐次的に接続されているときでも効果的にデカップリングされることを許容する。第二のデータ処理ユニット２４０は第一の出力データ２２５をバッファ１１０から第二の入力２５０を介して読む。これは、第二の処理装置２４０が必要に応じて実時間より速いまたは遅いレートで動作することを許容し、装置１００のピーク電力消費を制限するさらなる機会を提供する。
【００４７】
図５に示される実施形態では、スケジューラ２８０は第一のデータ処理ユニット電力マネージャ５００および第二のデータ処理ユニット電力マネージャ５１０を有する。第一のデータ処理ユニット電力マネージャ５００および第二のデータ処理ユニット電力マネージャ５１０は電力マネージャ接続５０５を介して接続される。電力マネージャ接続５０５は第一のデータ処理ユニット電力マネージャ５００および第二のデータ処理ユニット電力マネージャ５１０が相関およびスケジューリングするために必要な情報および動作モード、よってコンポーネント・ユニットの電力消費に対してなされた変更を通信することを許容する。図５では、第一のデータ処理ユニットの動作モード５１５が通信される。第一のデータ処理ユニット２００がハードディスク・ドライブであるとき、通信される第一のデータ処理ユニットの動作モード５１５は、読み書きおよびスリープおよび電源投入通知のための時間間隔でありうる。通信される情報は双方向的であってもよいが、これは図５には示していない。第一のデータ処理ユニット電力マネージャ５００は第一のデータ処理ユニット２００の動作モードを第一の電力モード設定接続５２０を介して制御する。第一の電力設定５２５は、第一の電力モード設定接続５２０を介して通信される。第一の処理ユニット２００がハードディスク・ドライブであるとき、第一の電力設定５２５は、第一の入力データ２１５または第一の入力データ２１５の処理されたバージョン、すなわち第一の出力データ２２５がバッファ１１０内に記憶されうるよう、要求されたデータ、すなわち第一の入力データ２１５をディスクからプリフェッチするデータ要求であってもよい。次いでハードディスク・ドライブは、やはり第一のデータ処理ユニット電源マネージャ５００の制御のもとで電源を落とされてもよい。第一のデータ処理ユニット電源マネージャ５００は、バッファ１１０の大きさにおける任意の制約条件または第一のデータ処理ユニット２００もしくは第二の適応処理ユニット２４０のパフォーマンス要件が与えられたもとで、所定のビットレートの所定数のオーディオ／ビデオ・ストリームがサポートされることを許容する所定のアプリケーション特性を有していてもよい。
【００４８】
第二のデータ処理ユニット電力マネージャ５１０は、第一のデータ処理ユニット電力マネージャ５００と同様に、しかし第二の電力モード設定接続５３０を介して第二のデータ処理ユニット２４０の動作モードを制御する。第二の電力設定５３５は第二の電源モード設定接続５３０を介して通信される。第二のデータ処理ユニットがプロセッサ１２０であるとき、第二の電源設定５３５は各時点におけるプロセッサ１２０の所望される動作スピードを示してもよいし、あるいは低スピードおよび高スピードといったいくつかの所定の動作スピードを含んでいてもよい。
【００４９】
図６の実施形態では、装置１００はさらに、クロック生成ユニット６００を有する。クロック生成ユニット６００は、第二の電源設定接続６３０上にクロックを生成する。クロックは周波数制御６１０によって影響されてもよい。周波数制御６１０は、クロックが連続的に可変なクロック周波数または所定数の離散的なクロック周波数でありうるよう構成されてもよい。たとえば、周波数制御６１０は高周波数設定６１５または低周波数設定６２５であってもよい。これは、クロックの調整が第二のデータ処理ユニット２４０の電力消費に影響しうるときに特に有用である。これは、第二のデータ処理ユニット２４０がプロセッサ１２０のようなプロセッサまたはコーデック１５０のような圧縮／圧縮解除ユニットであるときに事実でありうる。
【００５０】
図６の実施形態をさらに考えるに、装置１００の典型的な用途は、ポータブル・ビデオ再生装置としてでありうる。そのような用途では、第一のデータ処理装置２００は、記憶ユニット１７０のような不揮発性の記憶ユニットであってもよく、第二のデータ処理装置２４０はプロセッサ１２０のようなプロセッサとして具現されてもよい。装置１００におけるシステム・レベルの電力管理を達成するために、すべてのユニット・コンポーネントが協調する必要がある。ビデオ再生アプリケーションが始まるとき、該アプリケーションは作業負荷要件を第二のデータ処理ユニット２４０に、直接または第二のデータ処理ユニット電力マネージャ５１０を介して通信しうる。第二のデータ処理ユニット２４０がプロセッサ１２０のようなプロセッサとして具現されるとき、第二のデータ処理ユニット電力マネージャ５１０は、アプリケーションのパフォーマンス要件を満たすことのできる最低周波数を計算し、設定してもよい。
【００５１】
第一のデータ処理ユニット２００が記憶ユニット１７０として具現されるとき、第一のデータ処理ユニット電力マネージャ５００は、バッファ１１０の諸部分を割り当て、記憶ユニッ１７０の相続く動作モード変化の、およびそれらの間の時間間隔（time  intervals）を計算してもよい。これらは、たとえば、ハードディスク・ドライブを回転させるための時間、あるいはデータを読む／書くのに費やされる時間であってもよい。第一のデータ処理ユニット電力マネージャ５００は、根底にある第一のデータ処理ユニット２００の物理的特性についての知識を有していてもよい。第一のデータ処理ユニット電力マネージャ５００は、第一のデータ処理ユニットの動作モード５１５を使って、第二のデータ処理ユニット電力マネージャ５１０にそのような時間間隔を通知してもよい。すると第二のデータ処理ユニット電力マネージャ５１０は一つまたは複数のクロック周波数設定を計算してもよい。たとえば、第二のデータ処理ユニット電力マネージャ５１０は、記憶ユニット１７０がかなりの電力を消費しているとき、すなわち回転している、読み込んでいるまたは書き込んでいるときに使うための低周波数設定６２５と、プロセッサ１２０が低周波数で動作するよう強制される間にプロセッサ１２０が表示されるべき超過のビデオ・フレームをデコードできるよう、記憶ユニット１７０が低電力状態にあるときに使うための高周波数設定６１５とを計算してもよい。
【００５２】
第一のデータ処理ユニット電力マネージャ５００は第二のデータ処理ユニット電力マネージャ５１０に、第一の電力設定５２５が変化しようとしている時を通知し、それにより第二のデータ処理ユニット電力マネージャ５１０と同期的な仕方で動作してもよい。ただし、同期的な動作だけが可能な動作の仕方ではない。第二のデータ処理ユニット電力マネージャ５１０は、第二の電力設定接続６３０上で低周波数設定６２５を設定することによってプロセッサ１２０を低電力状態に遷移させるために、やがて来るイベントを示すそのようなトリガーを使ってもよい。これは、プロセッサ１２０がスリープ状態または低動作クロック周波数状態にはいることを許容する。記憶ユニット１７０は、最終的にはすべての要求される動作を完了させ、第一のデータ処理ユニット電力マネージャ５００の制御のもとで再び低電力動作状態に遷移する。その際、第二のデータ処理ユニット電力マネージャ５１０はプロセッサ１２０を覚醒させてもよい。このサイクルは、ビデオの再生が完了するまで繰り返されてもよい。
【００５３】
図７では、装置１００はさらに、プログラム可能タイマー・ユニット７００を有する。プログラム可能タイマー・ユニット７００は、該プログラム可能タイマー・ユニット７００を制御またはプログラムするためのタイマー制御７１０および第二のデータ処理ユニット２４０を覚醒させるための覚醒信号出力７２０を有する。図７の実施形態は、図６の実施形態について記載したばかりのことと同様の仕方で動作してもよい。実際、ここでもまた、ビデオ再生アプリケーションを例として取ると、この例でプロセッサ１２０として具現される第二のデータ処理ユニット２４０はスリープ状態に遷移されてもよい。スリープ状態に遷移するのに先立ち、第二のデータ処理ユニット電力マネージャ５１０は、タイマー制御７１０を使ってプログラム可能タイマー・ユニット７００をプログラムしてもよい。プログラムされたタイマー期間の満了後、プログラム可能タイマー・ユニット７００はプロセッサ１２０を覚醒させるために覚醒信号出力７２０上に割り込みを生成してもよい。そのような実施形態は、たとえば、第一のデータ処理ユニット２００が第二のデータ処理ユニット２４０と独立に動作することができることを必要としうる。これは、直接メモリ・アクセス（Direct  Memory  Access）、DMAがサポートされるときに普通である。
【００５４】
本発明は、プロセッサ、たとえばプロセッサ１２０上で走るソフトウェアとして具現されてもよい。そのような実施形態は、プロセッサ１２０上で走っているソフトウェアとして具現された一つまたは複数のコンポーネント・ユニットを含んでいてもよい。図８は、本発明のある実施形態に基づく方法を示すフローチャートを示している。ステップ８００において、かなりのまたは高い電力消費を要求する何らかのまたはすべての第一の処理段階が識別されてもよい。そのような識別は、第一のデータ処理ユニット２００の所定の特性に基づいていてもよいし、あるいは動作の間に測定されてもよい。ステップ８１０では、ステップ８００と同様の識別が行われるが、ここでは第二の処理段階、たとえば第二のデータ処理ユニット２４０によって実行される処理段階についてである。ステップ８２０では、高電力を消費しうる第一の処理段階および第二の処理段階に関する情報を使って、第一の処理段階および第二の処理段階が、高電力処理段階が並行して起こらず、よってバッテリーまたは電力変換器に対するピーク電力負荷が低下するよう、スケジューリングされる。ステップ８２０では、受入可能なサービス品質が提供されることを保証するよう、実時間の期限も考慮に入れられる。ステップ８３０では、電力消費に著しく影響しない残りの処理段階があればそれがスケジューリングされてもよい。ステップ８２０および８３０は単一のスケジューリング・ステップにマージされてもよい。ステップ８４０では、スケジューリングが完了し、オーディオ／ビデオ・ストリームが開始され、あるいはすでに走っているとすればさらに処理されてもよい。
【００５５】
図１２では、アプリケーション管理ユニット１２００を有する実施形態が示されている。アプリケーション管理ユニット１２００は、第一のアプリケーション１２１０、第二のアプリケーション１２２０などといった現在走っているアプリケーションを管理する。いかなるアプリケーションも、アプリケーション管理ユニット１２００に、ビットレートなどに関して自らが有するかもしれないいかなる要件を通知してもよい。これらは要求される資源１２３５として通信されてもよい。アプリケーション管理ユニット１２００は入出力またはI/Oビットレート要件１２０５を第一のデータ処理ユニット電力マネージャ５００に通信してもよい。アプリケーション管理ユニット１２００はまた、CPU作業負荷要件１２１５を第二のデータ処理ユニット電力マネージャ５１０に通信してもよい。I/Oビットレート要件１２０５およびCPU作業負荷要件１２１５を使って、第一のデータ処理ユニット電力マネージャ５００および第二のデータ処理ユニット電力マネージャ５１０は、最適な電力消費のために、処理段階のスケジューリングにおいて支援することができる。
【００５６】
図１３の実施形態では、装置１００はさらに、電力管理ユニット１３００を有する。電力管理ユニット１３００は、第二の電力設定接続６３０上に電力制御信号を生成する。電力制御信号は電力制御１３１０によって影響されうる。電力制御１３１０は、電力制御信号が連続的に可変なクロック周波数、所定数の離散的なクロック周波数および／または離散的もしくは可変な電圧レベルでありうるように構成されてもよい。たとえば、電力制御１３１０は、図６からの高周波数設定６１５または低周波数設定６２５、あるいは低電圧設定１３２５または高電圧設定１３１５の一つまたは複数であってもよい。他の値も可能である。これは、プロセッサの電圧および周波数スケーリングにおけるような第二のデータ処理ユニット２４０の電力消費に影響しうるクロックまたは電圧レベルを調節するときに特に有用である。これは、第二のデータ処理ユニット２４０がプロセッサ１２０のようなプロセッサまたはコーデック１５０のような圧縮／圧縮解除ユニットであるときに事実でありうる。
【００５７】
図１３の実施形態において、装置１００の典型的なアプリケーションはポータブル・ビデオ再生装置内であってもよい。そのようなアプリケーションでは、第一のデータ処理装置２００は、記憶ユニット１７０のような不揮発性記憶ユニットであってもよく、第二のデータ処理装置２４０はプロセッサ１２０のようなプロセッサとして具現されてもよい。装置１００においてシステム・レベルの電力管理を達成するために、すべてのユニット・コンポーネントは協調しなければならない。ビデオ再生アプリケーションが始まるとき、アプリケーションは作業負荷要件を第二のデータ処理ユニット２４０に、直接または第二のデータ処理ユニット電力マネージャ５１０を介して通信しうる。第二のデータ処理ユニット２４０がプロセッサ１２０のようなプロセッサとして具現されるとき、第二のデータ処理ユニット電力マネージャ５１０は、アプリケーションのパフォーマンス要件を満たすことができる最低クロック周波数を計算および設定してもよい。
【００５８】
第一のデータ処理ユニット２００が記憶ユニット１７０として具現されるとき、第一のデータ処理ユニット電力マネージャ５００はバッファ１１０の諸部分を割り当て、記憶ユニット１７０の相続くモード変化の、およびそれらの間の時間間隔を計算してもよい。これらは、たとえば、ハードディスク・ドライブを回転させるための時間、あるいはデータを読む／書くのに費やされる時間であってもよい。第一のデータ処理ユニット電力マネージャ５００は、根底にある第一のデータ処理ユニット２００の物理的特性についての知識を有していてもよい。第一のデータ処理ユニット電力マネージャ５００は、第一のデータ処理ユニットの動作モード５１５を使って、第二のデータ処理ユニット電力マネージャ５１０にそのような時間間隔を通知してもよい。すると第二のデータ処理ユニット電力マネージャ５１０は一つまたは複数のクロック周波数設定または一つまたは複数のプロセッサ電圧を計算してもよい。クロック周波数、電圧またはその両方のスケーリングは、プロセッサがパフォーマンス対電力消費を、最適パフォーマンスのために調節することを可能にする。電力が減らされるときの動作と共通の仕方で、クロック周波数は、スケールダウンされてもよく、次いで電圧もスケールダウンされる。より高いパフォーマンス・モードに移行するために、電圧はスケールアップされてもよく、次いで周波数もスケールアップされてもよい。たとえば、第二のデータ処理ユニット電力マネージャ５１０は、記憶ユニット１７０がかなりの電力を消費しているとき、すなわち回転している、読み込んでいるまたは書き込んでいるときに使うための低電圧設定１３２５および／または図６からの低周波数設定６２５と、プロセッサ１２０が低電圧および／または低周波数で動作するよう強制される間にプロセッサ１２０が表示されるべき超過のビデオ・フレームをデコードできるよう、記憶ユニット１７０が低電力状態にあるときに使うための高電圧設定１３１５および／または高周波数設定６１５とを計算してもよい。
【００５９】
第一のデータ処理ユニット電力マネージャ５００は第二のデータ処理ユニット電力マネージャ５１０に、第一の電力設定５２５が変化しようとしている時を通知し、それにより第二のデータ処理ユニット電力マネージャ５１０と同期的な仕方で動作してもよい。ただし、同期的な動作だけが可能な動作の仕方ではない。第二のデータ処理ユニット電力マネージャ５１０は、第二の電力設定接続６３０上で低周波数設定６２５および／または低電圧設定１３２５を設定することによってプロセッサ１２０を低電力状態に遷移させるために、やがて来るイベントを示すそのようなトリガーを使ってもよい。これは、プロセッサ１２０がスリープ状態または低動作クロック周波数状態にはいることを許容する。記憶ユニット１７０は、最終的にはすべての要求される動作を完了させ、第一のデータ処理ユニット電力マネージャ５００の制御のもとで再び低電力動作状態に遷移する。その際、第二のデータ処理ユニット電力マネージャ５１０はプロセッサ１２０を覚醒させてもよい。このサイクルは、ビデオの再生が完了するまで繰り返されてもよい。
【００６０】
上記の実施形態のいずれにおいても、第一のデータ処理ユニット２００または第二のデータ処理ユニット２４０は通信ユニット１３０のようなネットワーク・インターフェースであってもよい。通信ユニット１３０はまた、動作の間かなりの電力を消費してもよい。
【００６１】
たとえば、図９では、第一の無線インターフェース・カードについて電力消費トレースが示されている。図９の上の横軸９００および下の横軸９６０は秒単位での時間である。図９の上の縦軸９１０はワット単位の電力であり、下の縦軸９５０は単に単位なしの電力を表す。図９に示される上のトレースは、第一の無線インターフェース・カードが電源オフ・モード９２０にあるところで始まる。第一の無線カードをホストに単にインターフェースするだけのことによるさらなる電力ドレインを減らすために、第一の無線カードは、たとえば電界効果トランジスタ、すなわちFETまたは他の好適な手段を使って完全に孤立されてもよい。図９の下のトレースは、たとえばプロセッサ１２０の電力消費を示す。領域９７０の間、プロセッサ１２０が高電力を消費しうるよう、第一の無線インターフェース・カードは低電力を消費している。電源オフ・モード９２０でのある時間期間の後、第一の無線カードは作動モード９３０に遷移する。その際、プロセッサ１２０は領域９８０によって示される低電力状態に遷移しうる。その後、第一の無線カードは電力節約モード９４０に遷移する。これは中間レベルの電力を消費する。プロセッサ１２０は、その際、図９における領域９９０で示されるような中間クロック・レベルに設定されてもよい。第一の無線インターフェース・カードの電力モードの遷移は、一般に、カード内のファームウェアの制御のもとに、あるいはホスト・システムの制御のもとにある。電力節約モード９４０においては、信号は間欠的に送信および／または受信されてもよい。必要ならば、第一の無線カードは再び作動モード９３０に遷移してもよい。これは、プロセッサ１２０が再び領域９８０によって示されるような低電力状態に遷移されることを必要としうる。電力消費および第一の無線カードの電力モード遷移継続期間についての典型的な測定値が表１に示されている。第一のデータ処理ユニット電力マネージャ５００または第二のデータ処理ユニット電力マネージャ５１０は表１に示されたパラメータのうちの一つまたは複数を意識しうる。
【００６２】
【表１】
2009543172.tif 000003
図１０では、第二の無線インターフェース・カードについての電力消費トレースが示されている。図１０の上の横軸１０００および下の横軸９６０は秒単位での時間である。図１０の上の縦軸１０１０はミリワット単位の電力である。図９と同様、下の縦軸９５０は任意単位での電力である。図１０に示される上のトレースは、第二の無線インターフェース・カードが作動モード９３０にあるところで始まる。図１０に示される下のトレースはプロセッサ１２０の電力消費でありうる。これは、領域９８０の間、低電力消費レベルにあると示されている。作動モード９３０でのある時間期間の後、第二の無線カードは電力節約モード９４０に遷移する。ここでもまた、これは一般に第二の無線カード内のファームウェアの制御のもとにある、あるいはホスト・システムの制御のもとにある。電力節約モード９４０では、信号は間欠的に送信および／または受信されてもよい。そのような信号は、ビーコン間隔１０２０で送信されるビーコン信号であってもよい。第二の無線インターフェース・カードが電力節約モード９４０で動作しているとき、プロセッサ１２０は領域９９０で示されるように高周波数で動作してもよい。第二の無線カードの電力消費についての典型的な測定値は、表２に示されている。第二の電力消費特性６５０は、表２に示されるパラメータのうちの一つまたは複数を含んでいてもよい。
【００６３】
【表２】
2009543172.tif 000004
表２に示された測定値は、最悪ケースの状況である。TCP/IPのような普通に使われるプロトコルを使ったデータ転送の間、平均送信電力消費はより低くなる。一例として、電源投入から準備完了まで、2.3msの間に140mJのエネルギーが消費されたことが測定された。
【００６４】
無線ネットワーク・インターフェースを利用する実施形態が図１４に示されている。ここでは、クライアント／サーバー装置、装置１００は、第二のストリーム１４７０を無線式に受信しながら、第一のストリーム１４２５を無線クライアント、リモート装置１６５にサービスしていてもよい。クライアントは、WiFiインターフェースであってもよい通信ユニット１３０を介してバースト的にデータを受信してもよく、クライアント・バッファ１４６０内にデータをバッファしてもよい。クライアント／サーバー装置は第一のストリーム１４２５をストリーム・バッファ１４３０を使って記憶ユニット１７０を介してサービスしてもよい。ストリーム・バッファ１４３０は、その充填度がストリーム・バッファ閾値１４４０を下回るときにのみ再充填されてもよい。いったんフルになると、記憶ユニット１７０はエネルギー節約のために回転を落とされてもよい。通信ユニット１３０のWiFi活動が記憶ユニット活動と重なるのを防止するために、バッファ１１０が加えられてもよい。バッファ１１０なしでは、WiFi活動中にストリーム・バッファ閾値１４４０に達し、記憶ユニット１７０が回転を上げることになるであろう。バッファ１１０は、WiFi活動のアイドル期間の間に再充填されるような大きさにされうる。バッファ１１０の再充填動作のみがディスクの回転を上げるのを開始するので、ディスクはWiFiアイドル期間の間にのみ回転を上げる。
【００６５】
図１４の実施形態の主要なコンポーネントの活動が図１５に示されている。通信ユニット１３０の活動が第一のトレース１５００において示されており、活動の期間tr  １５６０が図示されている。通信ユニット１３０と記憶ユニット１７０の間のスケジューリングや協調なしでは、両ユニットは同時並行して動作し、電源からかなりの電流を引き出すことがありうる。これは第二のトレース１５１０に並行点として示されている。バッファ１１０の活動は第三のトレース１５２０に示されている。バッファ１１０は、両ユニットの活動が並行して生起しないことを保証するために使用されうる。これは、第四のトレース１５３０から見て取れる。図１５のトレースのすべてにおいて、横軸１５４０は同じである。
【００６６】
通信ユニット１３０のWiFiが記憶ユニット１７０のアイドル時間に収まり、その逆もそうであるとすれば有益である。この条件は、次のように定式化できる。
【００６７】
tr,wifi＜tb,hdd−(tsu＋tsd)    (1)
tb,wifi＞tr,hdd−(tsu＋tsd)    (2)
tr,wifi＝bwl／(rw−rl)、tb,wifi＝bwl／rl、tr,hdd＝bd／(rd−rl)およびtb,hdd＝bd／rlを用いると、式(1)および(2)は、
【００６８】
【数１】
2009543172.tif 000005
となる。式(3)および(4)を組み合わせると、
【００６９】
【数２】
2009543172.tif 000006
とできる。
【００７０】
WiFi活動のアイドル時間が推定できればやはり有利である。バッファ１１０は、少なくともWiFi活動の完全なバーストをサービスすることができるべきであり、アイドル時間の間のバースト後、再充填されなければならない。これは、バーストの終わりの決定がバッファ１１０がきちんと機能するために重要であることを意味している。通常、図１６に示されるように、ストリーミング・データはネットワーク１８０を通じて固定サイズBiのパケット１６００の形でストリーム・レートrで送られうる。これは、パケットが図のようにTnom＝B/rの時間間隔１６１０で送信されるということを意味する。実際上は、rは一定ではない。これは、Tnomが一定ではないということを意味する。さらに、Tnomはパケット損失およびネットワーク１８０におけるレイテンシーに起因する追加的な変動を示す。また、図１６には、同じストリームのバースト的な送信も示されている。ここでは、パケットはバーストの間は前記ストリーム・レート、すなわちTl間隔１６３０でよりも速く送信され、その後、比較的長いアイドル期間１６２０が続く。
【００７１】
アイドル期間１６２０の長さtbはストリーム・レートrが与えられれば予測されうる。パケットはバーストの間はストリーム・レートrより速く送信されるので、アイドル時間は蓄積する。推定されるアイドル時間Txは、
【００７２】
【数３】
2009543172.tif 000007
に等しい。ここで、i＝1,2,3,…,nである。ストリームに対応する無線リンクを通じて送られる累積バイト数が推定されるアイドル時間Txと一緒に図１７に示されている。図１７では、横軸１７００は時間である。上のトレースの縦軸１７１０は無線リンクを通じて送られる累積バイト数である。平均１７３０も示されている。下のトレースの縦軸１７２０は、推定されるアイドル時間Txである。
【００７３】
バッファ１１０の大きさおよび再充填の時間は、WiFi活動の知識を使って決定されてもよい。バッファ１１０の大きさはバーストの大きさと等しくてもよい。バーストの大きさを決定するために、バーストの始まりおよび終わりが検出されてもよい。これは、パケットの出発時間をモニタリングし、最後の出発以来のアイドル時間または経過時間を閾値Thと比較することに関わりうる。閾値Thは典型的な出発間隔Tmより大きく、Txよりも小さく選ばれてもよい。Tmは、バースト間の長いアイドル期間を除外した平均出発間隔であってもよい。あるいは単に最後のm個の出発間隔の中央値であってもよく、これなら自動的に極端な値が除外される。典型的な場合では、パケット間の典型的な間隔は、アイドル期間よりも数桁小さい。したがって、Thは典型的な間隔Tmにあまりに近くに選ばれるべきではない。Th＞xTmであれば、xはネットワーク１８０におけるレイテンシーおよびその他の遅延をカバーするのに十分な大きさであるべきである。これは、
x・Tm＜Th＜Tx      (8)
ということを意味しうる。
【００７４】
最後の出発以降の時間が閾値を超えるときは常に、バッファ１１０は空でなくても完全に再充填されてもよい。バッファ１１０の最大サイズは、各バースト後に更新されてもよい。バッファ１１０のサイズは、ストリームのビットレートにおける変動をカバーするためにバースト・サイズよりやや大きく選ばれてもよい。バッファ１１０を必要なより大きくすることは、システムの挙動には何の影響ももたないが、メモリ・スペースのコストがかかる。データ・エンティティとしてのパケットが単に一例であることを注意しておく。データはバッファ１１０に、バイト・ストリームとして出入りしてもよい。その場合、固定サイズBiのパケット１６００は、最後のチェック以降にバッファを出たデータの量を表し、式(7)によって与えられるTxの計算において考慮に入れられてもよい。
【００７５】
バッファ１１０を管理するためのアルゴリズムのフローチャートが図１８に示されている。最初に、ストリームのビットレートがステップ１８００で決定されうる。ストリーム・ビットレートは、記憶ユニット１７０上に記憶されるメタデータとして利用可能であってもよい。次いで、バッファ１１０は、ステップ１８１０で最小サイズをもって割り当てられてもよい。たとえば、単一のデータ・エンティティとしてである。バースト・サイズはステップ１８２０で初期化されてもよく、次いで１８３０でストリームが開始される。ステップ１８４０でバッファ１１０が充填されてもよい。データの出発レートをモニタリングするために、バッファ充填は、ステップ１８５０で、固定間隔でチェックされてもよい。出発レートに依存して、閾値Thはステップ１８６０において更新されてもよい。最後のデータ・エンティティnの出発以降の経過時間がステップ１８７０で閾値と比較されてもよい。それが閾値を超えていれば、ステップ１８９０でバッファ１１０のサイズがバースト・サイズに調整されてもよく、ステップ１８４０でバッファ１１０がいま一度再充填されてもよい。バースト・サイズは、最後のバースト（データ・エンティティk）の終わり以来バッファに残されている全データに等しい。
【００７６】
最初、バッファ１１０は小さくてもよく（最小サイズ）、空にされるのと同じレートで充填されてもよい。それはしたがって、小さなパススルー・バッファである。ひとたびバースト・サイズが決定されると、バッファ１１０のサイズはそのバースト・サイズに合うよう調節されてもよく、その後はステップ１８７３および１８７６に示されるように、バーストの終わりにおいてのみ再充填されてもよい。バッファ１１０のサイズは、バースト・サイズの小さな変動を受け入れるために小さな余裕を含んでいてもよい。
【００７７】
バッファ１１０およびストリーム・バッファ１４３０は、組み合わせて組み合わせバッファとしてもよい。ストリーム・バッファ閾値１４４０に加えて、バッファ１１０のサイズにストリーム・バッファ閾値１４４０をプラスしたレベルにおける別の組み合わせバッファ・マークが導入されてもよい。バッファの充填度が組み合わせバッファ・マークを下回り、バーストの終わりが検出されるときは常に、組み合わされたバッファが完全に再充填されてもよい。組み合わせバッファ・マークの位置は、ストリーム・バッファ１４３０のバッファ・サイズを考慮に入れて、バッファ１１０のサイズと同じ方法で決定されてもよい。
【００７８】
図１４の実施形態において、第一のストリーム１４２５にサービスしている間に、無線インターフェースを通じて第二のストリーム１４７０が受信されてもよい。記憶ユニット１７０、コーデック１５０および通信ユニット１３０上での無線活動が、並行的な活動が電源からかなりの電力を引き出さないように管理されてもよい。第二のストリーム１４７０は、実時間よりやや速くデコードされ、第二のストリーム・バッファ１４１０にバッファされてもよい。デコードは、記憶ユニット１７０が回転を上げるときは常に一時停止され、その間、データは第二のストリーム・バッファ１４１０から消費されてもよい。しかしながら、一時停止の直前に第二のストリーム・コーデック・バッファ１４００について再充填が開始される場合、この再充填に起因する無線活動は記憶ユニットの活動と重なりうる。したがって、第二のストリーム・コーデック・バッファ１４００の再充填も一時停止されうる。デコードも一時停止されるので、バッファ・アンダーランは生じない。そのようにして、電力を節約しながら、非常に込み入ったアプリケーション・シナリオでさえもサポートされうる。
【００７９】
まとめると、本発明は、複数のデータ処理ユニットの電力消費を管理する方法および装置を開示する。スケジューラが高電力を消費する第一のデータ処理ユニットのための第一の処理段階を第一の期限内にスケジューリングし、やはり高電力を消費する第二のデータ処理ユニットのための第二の処理段階を第二の期限内にスケジューリングする。スケジューラはさらに、第一の処理段階および第二の処理段階を両処理段階が同時並行して生起せず、それにより期限を守りながら電源からのピーク電力引き出しを低下させるよう、スケジューリングする。ピーク電力ドレインはバッテリー容量を決定する際に重要な因子であると見出されているので、これは、ポータブル電子マルチメディア装置のようなバッテリーで動作する装置において特に有益である。
【００８０】
上述の実施形態が本発明を限定するのではなく例示するものであり、当業者は付属の請求項によって定義される本発明の範囲から外れることなく数多くの代替的な実施形態を設計できるであろうことは注意しておくべきである。さらに、記載されている実施形態のいずれも、たとえば内部電流源、バッテリーまたはアキュムレータ（accumulator）といった暗黙的な特徴を有している。請求項において、括弧内に参照符号があったとしても、請求項を限定するものと解釈してはならない。「有する」および「含む」などの語は、いずれかの請求項あるいは明細書全体において挙げられている以外の要素やステップの存在を排除しない。要素の単数形の言及はそのような要素の複数の言及を排除せず、逆に、複数形の言及は単数を排除しない。いくつかの手段を列挙している装置請求項において、これらの手段のいくつかは同一のハードウェア項目によって具現されてもよい。ある種の施策が互いに異なる従属請求項に記載されているというだけの事実がこれらの施策の組み合わせが有利に使用できないということを示すものではない。
【図面の簡単な説明】
【００８１】
【図１】本発明のある実施形態が適用されうる装置を示す図である。
【図２】本発明の第一の実施形態を示す図である。
【図３】逐次的なデータ処理のための本発明の実施形態を示す図である。
【図４】バッファリングを利用する本発明の実施形態を示す図である。
【図５】電力消費を能動的に制御することができる本発明の実施形態を示す図である。
【図６】プロセッサに好適な本発明の実施形態を示す図である。
【図７】プロセッサに好適な本発明の別の実施形態を示す図である。
【図８】本発明のある実施形態に基づくフローチャートを示す図である。
【図９】第一の無線ネットワーク・カードおよびプロセッサの電力消費トレースを示す図である。
【図１０】第二の無線ネットワーク・カードおよびプロセッサの電力消費トレースを示す図である。
【図１１】ハードディスク・ドライブおよびプロセッサの電力消費トレースを示す図である。
【図１２】走っているアプリケーションに関する動的な操作ができる本発明の実施形態を示す図である。
【図１３】プロセッサに好適な本発明のさらなる実施形態を示す図である。
【図１４】本発明のあるさらなる実施形態を示す図である。
【図１５】図１４の実施形態のコンポーネント・ユニットの活動度を示すタイムラインを示す図である。
【図１６】なめらかな（上）およびバースト的な（下）仕方でのデータ・パケットの出発を示す図である。
【図１７】図１４の実施形態における無線インターフェースを通じて送られる累積バイト数（上）を、平均および推定されるアイドル時間と一緒に示す図である。
【図１８】図１４の実施形態において要求されるバッファ・サイズを管理するための方法を示すフローチャートである。
【図１】
2009543172.tif 000008
【図２】
2009543172.tif 000009
【図３】
2009543172.tif 000010
【図４】
2009543172.tif 000011
【図５】
2009543172.tif 000012
【図６】
2009543172.tif 000013
【図７】
2009543172.tif 000014
【図８】
2009543172.tif 000015
【図９】
2009543172.tif 000016
【図１０】
2009543172.tif 000017
【図１１】
2009543172.tif 000018
【図１２】
2009543172.tif 000019
【図１３】
2009543172.tif 000020
【図１４】
2009543172.tif 000021
【図１５】
2009543172.tif 000022
【図１６】
2009543172.tif 000023
【図１７】
2009543172.tif 000024
【図１８】
2009543172.tif 000025
【国際調査報告】
2009543172.tif 000026
2009543172.tif 000027