(57)【要約】異なるタイプの処理要求の各々と関連したプロセッサスピードを決定する。これらのプロセッサスピードは集計され、システムのプロセッサの有効プロセッサスピードを形成する。プロセッサのこれらのプロセッサスピードは、消費パワーを減らしながら、異なるタイプの処理要求を満たすことができる。
2006522384.tif 000002
【特許請求の範囲】
【請求項１】
２以上のタスクの処理要求を用いてシステムのパフォーマンスプロファイルを構築するステップを有する方法であって、
少なくとも２つのタスクは異なるタイプの処理要求を有し、
前記パフォーマンスプロファイルは前記２以上のタスクの処理要求を受け入れるために構築されることを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
前記処理要求は完了デッドラインに関する要求を含むことを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
前記処理要求は必要な処理レートに関する要求を含むことを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、
前記処理要求は入出力データストリームのバッファに関する要求を含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、前記パフォーマンスプロファイルは前記システムのプロセッサのスピードを含むことを特徴とする方法。
【請求項６】
請求項５に記載の方法であって、前記パフォーマンスプロファイルは前記システムにより消費されるパワーに作用することを特徴とする方法。
【請求項７】
請求項５に記載の方法であって、前記プロセッサのスピードは前記プロセッサの最大可能スピード以下であることを特徴とする方法。
【請求項８】
請求項１に記載の方法であって、
２以上のタスクの処理要求を用いてシステムのパフォーマンスプロファイルを構築するステップは、前記処理要求の各々と関連する所望のプロセッサスピードを決定するステップを有することを特徴とする方法。
【請求項９】
請求項８に記載の方法であって、
前記処理要求の各々と関連する所望のプロセッサスピードを集計し、前記システムの第１のプロセッサスピードを形成することを特徴とする方法。
【請求項１０】
請求項９に記載の方法であって、前記システムが第２のプロセッサスピードで動作するように設定されているとき、前記２以上のタスクを配列し、その処理要求が満たされるようにするステップをさらに有し、前記第２のプロセッサスピードは前記第１のプロセッサスピードより遅いことを特徴とする方法。
【請求項１１】
請求項１に記載の方法であって、前記処理要求の１つ以上は前記対応するタスクにより提供されることを特徴とする方法。
【請求項１２】
請求項１１に記載の方法であって、前記処理要求の１つ以上は前記対応するタスクの外部の発信元により指示されることを特徴とする方法。
【請求項１３】
システムにより実行可能な命令のシーケンスを格納したコンピュータ読み出し可能媒体であって、
前記命令のシーケンスは、システムにより実行された時、前記システムに、
２以上のタスクの処理要求を用いてシステムのパフォーマンスプロファイルを構築するステップを有する方法であって、少なくとも２つのタスクは異なるタイプの処理要求を有し、前記パフォーマンスプロファイルは前記２以上のタスクの処理要求を受け入れるために構築されることを特徴とする方法を実行させることを特徴とするコンピュータ読み出し可能媒体。
【請求項１４】
請求項１３に記載のコンピュータ読み出し可能媒体であって、
前記処理要求は完了デッドラインに関する要求を含むことを特徴とするコンピュータ読み出し可能媒体。
【請求項１５】
請求項１３に記載のコンピュータ読み出し可能媒体であって、
前記処理要求は必要な処理レートに関する要求を含むことを特徴とするコンピュータ読み出し可能媒体。
【請求項１６】
請求項１３に記載のコンピュータ読み出し可能媒体であって、
前記処理要求は入出力データストリームのバッファに関する要求を含むことを特徴とするコンピュータ読み出し可能媒体。
【請求項１７】
請求項１３に記載のコンピュータ読み出し可能媒体であって、前記パフォーマンスプロファイルは前記システムのプロセッサのスピードを含むことを特徴とするコンピュータ読み出し可能媒体。
【請求項１８】
請求項１７に記載のコンピュータ読み出し可能媒体であって、前記パフォーマンスプロファイルは前記システムにより消費されるパワーに作用することを特徴とするコンピュータ読み出し可能媒体。
【請求項１９】
請求項１７に記載のコンピュータ読み出し可能媒体であって、前記プロセッサのスピードは前記プロセッサの最大可能スピード以下であることを特徴とするコンピュータ読み出し可能媒体。
【請求項２０】
請求項１３に記載のコンピュータ読み出し可能媒体であって、
２以上のタスクの処理要求を用いてシステムのパフォーマンスプロファイルを構築するステップは、前記処理要求の各々と関連する所望のプロセッサスピードを決定するステップを有することを特徴とするコンピュータ読み出し可能媒体。
【請求項２１】
請求項２０に記載のコンピュータ読み出し可能媒体であって、
前記処理要求の各々と関連する所望のプロセッサスピードを集計し、前記システムの第１のプロセッサスピードを形成することを特徴とするコンピュータ読み出し可能媒体。
【請求項２２】
請求項２１に記載のコンピュータ読み出し可能媒体であって、前記システムが第２のプロセッサスピードで動作するように設定されているとき、前記２以上のタスクを配列し、その処理要求が満たされるようにするステップをさらに有し、前記第２のプロセッサスピードは前記第１のプロセッサスピードより遅いことを特徴とするコンピュータ読み出し可能媒体。
【請求項２３】
請求項１３に記載のコンピュータ読み出し可能媒体であって、前記処理要求の１つ以上は前記対応するタスクにより提供されることを特徴とするコンピュータ読み出し可能媒体。
【請求項２４】
請求項２３に記載のコンピュータ読み出し可能媒体であって、前記処理要求の１つ以上は前記対応するタスクの外部の発信元により指示されることを特徴とするコンピュータ読み出し可能媒体。
【請求項２５】
プロセッサと、
前記プロセッサに結合しているスケジューラと、を有するシステムであって、
前記スケジューラは、パフォーマンスプロファイルを構築して、２以上のタスクの２以上の異なったタイプの処理要求を処理し、
前記パフォーマンスプロファイルは前記プロセッサのプロセッサスピードを含むことを特徴とするシステム。
【請求項２６】
請求項２５に記載のシステムであって、
前記２以上の異なったタイプの処理要求はタイムクリティカル処理要求と非タイムクリティカル処理要求とを含むことを特徴とするシステム。
【請求項２７】
請求項２５に記載のシステムであって、前記スケジューラは前記異なるタイプの処理要求を１つの処理要求に結合することを特徴とするシステム。
【請求項２８】
請求項２７に記載のシステムであって、前記スケジューラは、前記異なるタイプの処理要求の各々と関連するプロセッサスピードを決定することにより、前記異なるタイプの処理要求を１つの処理要求に結合することを特徴とするシステム。
【請求項２９】
請求項２８に記載のシステムであって、前記スケジューラは、前記異なるタイプの処理要求の各々と関連する前記プロセッサスピードを用いて集計プロセッサスピードを形成することを特徴とするシステム。
【請求項３０】
第１のアプリケーションの第１の処理要求と第２のアプリケーションの第２の処理要求とを受け取るステップと、
前記第１の処理要求と前記第２の処理要求とを用いて第３の処理要求を形成するステップと、
前記第３の処理要求を用いてパフォーマンスプロファイルを構築するステップと、を有し、
前記第１のアプリケーションの第１の処理要求は前記第２のアプリケーションの第２の処理要求と異なることを特徴とする方法。
【請求項３１】
請求項３０に記載の方法であって、
前記第１の処理要求は前記第１のアプリケーションにより指定されることを特徴とする方法。
【請求項３２】
請求項３０に記載の方法であって、
前記第１の処理要求は前記第１のアプリケーションの外部の発信元により指定されることを特徴とする方法。
【請求項３３】
請求項３０に記載の方法であって、
前記第３の処理要求を用いてパフォーマンスプロファイルを構築する前記ステップは、前記第１の処理要求と関連した第１のプロセッサスピードと前記第２の処理要求と関連した第２のプロセッサスピードとを決定するステップを含むことを特徴とする方法。
【請求項３４】
請求項３３に記載の方法であって、
前記処理要求を用いて前記パフォーマンスプロファイルを構築する前記ステップは、前記第１のプロセッサスピードと前記第２のプロセッサスピードとを集計して第３のプロセッサスピードを形成するステップをさらに含むことを特徴とする方法。
【請求項３５】
請求項３４に記載の方法であって、
前記第３のプロセッサスピードで動作するように設定された前記プロセッサで前記第１のアプリケーションと前記第２のアプリケーションを処理するステップをさらに有することを特徴とする方法。
【請求項３６】
請求項３５に記載の方法であって、
前記第３のプロセッサスピードは、より速いプロセッサスピードと比較して、より少ないプロセッサアイドル時間で前記第１のアプリケーションと前記第２のアプリケーションを処理可能とすることを特徴とする方法。
【請求項３７】
プロセッサと、
前記プロセッサと結合している電圧スケジューラと、を有するシステムであって、
前記電圧スケジューラは少なくとも１つのタイムクリティカル処理要求と少なくとも１つの非タイムクリティカル処理要求を受け取り、前記プロセッサが前記タイムクリティカル処理要求と前記非タイムクリティカル処理要求を受け入れるためのプロセッサスピードを決定することを特徴とするシステム。
【請求項３８】
請求項３７に記載のシステムであって、前記プロセッサスピードは前記プロセッサの最大可能プロセッサスピードより小さいことを特徴とするシステム。
【請求項３９】
請求項３７に記載のシステムであって、
前記タイムクリティカル処理要求は第１のタスクと関連し、前記前記非タイムクリティカル処理要求は第２のタスクと関連していることを特徴とするシステム。
【請求項４０】
請求項３７に記載のシステムであって、
前記電圧スケジューラは、前記タイムクリティカル処理要求と前記非タイムクリティカル処理要求を融合することにより、前記プロセッサの前記プロセッサスピードを決定することを特徴とするシステム。
【請求項４１】
請求項４０に記載のシステムであって、
前記電圧スケジューラは、前記タイムクリティカル処理要求のプロセッサスピードと前記非タイムクリティカル処理要求のプロセッサスピードを決定することにより、前記タイムクリティカル処理要求と前記非タイムクリティカル処理要求を融合することを特徴とするシステム。
【請求項４２】
請求項４１に記載のシステムであって、
前記電圧スケジューラは、前記タイムクリティカル処理要求の前記プロセッサスピードを前記非タイムクリティカル処理要求の前記プロセッサスピードと集計し、前記プロセッサの前記プロセッサスピードを形成することを特徴とするシステム。
【請求項４３】
請求項４２に記載のシステムであって、
前記プロセッサの前記プロセッサスピードは、より速いプロセッサスピードと比較して、より低い消費電力で前記タイムクリティカル処理要求と前記非タイムクリティカル処理要求を受け入れることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算システムに関し、特に計算システムの消費電力に関する。
【背景技術】
【０００２】
コンピュータシステムは世界的に普及しており、パーソナルデータアシスタントや携帯電話等の小型ハンドヘルドデバイスをはじめとして、セットトップボックス、デジタルカメラその他のコンシューマエレクトロニクス等の特定目的電子デバイスや、ノートブックコンピュータ、サブノートブックコンピュータ、タブレットコンピュータ等の中型モバイルシステムや、デスクトップシステム、ワークステーション、サーバなどすべてのものに浸透している。
【０００３】
ここ数年、半導体技術において多くの進展があり、その結果電子デバイスの改良が進んでいるが、これらの電子デバイスはより高い周波数で動作し付加的または拡張された機能をサポートする集積回路（IC）を有している。この進歩によりハードウェア製造者はより高速で洗練されたコンピュータシステムを設計し作ることができるようになったが、これにより、特にバッテリー駆動のコンピュータシステムにおいて消費電力が大きくなるという欠点が改善された。
【０００４】
コンピュータシステムにおいては消費電力を削減するいろいろな方法が知られている。例えば、電力制御インターフェイス（ACPI）仕様書（第2.0b版、2002年10月11日）はポータブルその他のコンピュータシステムの動的消費電力をいかに削減するかについての情報を記載している。コンピュータシステムにおいて使用されるプロセッサに関して、４つのプロセッサ消費電力モード（C0、C1、C2、C3）がACPI仕様書で規定されている。例えば、プロセッサが命令を実行している時はC0モードである。C0モードでは消費電力が大きい。プロセッサが命令を実行していない時、すなわちアイドル状態の時、低消費電力モードであるC1、C2、C3のいずれかである。コンピュータシステムのオペレーティングシステム（OS）がアイドル状態のプロセッサを適当な低消費電力モードに動的に遷移させる。
【０００５】
C1パワーモードはレイテンシが最も低いプロセッサパワーモードである。C2パワーモードの節電機能はC1パワーモードの節電機能よりも改善されている。C2パワーモードではプロセッサはシステムキャッシュの内容を維持することができる。C1パワーモードおよびC2パワーモードと比較して、C3パワーモードは消費電力が小さいが、エグジットレイテンシが高い。
【０００６】
ACPI仕様書により規定された低消費電力モードやその他の既知の方法は一定の有利性を有しているが、現在の方法をさらに改良していく必要がある。
【発明の詳細な説明】
【０００７】
一実施形態として、コンピュータシステムのパフォーマンスプロファイルを設定する方法および装置を開示する。パフォーマンスプロファイルは２以上の異なるタイプの処理要求または２以上のタスクの制約条件を用いて設定する。パフォーマンスプロファイルは消費電力を削減しながら処理要求を満たすのに役立つ。
【０００８】
以下の説明において、説明のために、本発明を完全に理解してもらうために詳細をいろいろと説明する。しかし、本発明がこれらの具体的な詳細無しに実施することができることは当業者には明らかであろう。他の例において、周知の構造、プロセス、デバイスをブロック図やフローチャートとして提示し本発明の実施形態を示したが、この説明がわかりにくくならないように、これらの詳細な説明はしていない。
【０００９】
ここで、「時」という用語はイベントの時間的性質を示すために使用する。例えば、「イベントBが起きた時にイベントAが起きる」という文は、イベントBが起きる前、起きている間、または起きた後にイベントAが起きるが、それでもイベントBが起きたことに関連していることを意味すると解釈される。例えば、イベントBの生起に応じて、またはイベントBが起こったことを示す信号に応じてイベントAが起こるとき、イベントAはイベントBが起こる時に起こる。
【００１０】
明細書において「一実施形態」、「一部の実施形態」、「他の実施形態」とは、実施形態に関して説明した特定の機能、構造、特徴が少なくとも一部の実施形態には含まれているが、必ずしもすべての実施形態に含まれているとは限らないことを意味する。「一実施形態」や「一部の実施形態」など必ずしもすべてが同じ実施形態を指しているとは限らない。
【００１１】
単一タイプの処理要求
図１は先行技術であるコンピュータシステムの一例を示すブロック図である。一般に、コンピュータシステム１００はスケジューラ１０５（例えば電圧スケジューラ）を含む。コンピュータシステム１００はプロセッサ１１０も含む。プロセッサ１１０が（プロセッサ製造者により仕様に定められた）最高のプロセッサスピードで動作している時、プロセッサ１１０の消費電力は高い。プロセッサ１１０の消費電力は、今日利用可能な方法を用いてプロセッサ１１０のプロセッサスピードを調節することにより制御することができる。例えば、１つの方法として動的電圧マネージメント（DVM）がある。DVMを用いて、プロセッサ１１０のパフォーマンスと消費電力をスケジューラ１０５により調節することができる。調整はランタイムに実行することができる。例えば、プロセッサ１１０がビジーでない時、プロセッサの周波数および電圧を下げる。最高プロセッサスピード以下で動作させることにより、プロセッサ１１０の消費電力を削減することができる。
【００１２】
プロセッサ１１０を最高プロセッサスピードより低いスピードで動作させると、それに伴う代償がある。アプリケーションに望ましいプロセッサスピードより遅いと、アプリケーションが機能しないことがある。プロセッサスピードがアプリケーションに望ましいプロセッサスピードより速いと、不要な電力を消費してしまう。例えば、メディア再生アプリケーションはプロセッサ１１０が高いプロセッサスピードで動作し、ユーザエクスペリエンスがよりよくなることを要する。アプリケーションは短時間だけアクティブであり、長い間インアクティブ状態に留まる。DVMを用いている場合、アプリケーションがインアクティブである時、プロセッサスピードは低くされる。しかし、プロセッサスピードが低くされると、アプリケーションがアクティブになった時は遅すぎる。
【００１３】
これとは異なる複数の方法を利用してプロセッサ１１０のプロセッサスピードをよりうまく決定することができる。しかし、これらの方法は、図１に示したように、単一タイプの処理要求しか考慮していない。プロセッサスピードの決定に単一タイプの処理要求しか考慮に入れていないため、プロセッサスピードは１つのタイプの処理要求には最適であるかも知れないが、他のタイプの処理要求には最適でないかも知れない。
【００１４】
異なるタイプの処理要求をすべて考慮して最適なプロセッサスピードを決定するのは困難であり、特に、プロセッサスピードが例えばユーザエクスペリエンスやアプリケーションの信頼性に支障を来さない時は困難である。いろいろな予測スケジューリング方法が提案されている。これらのスケジューリング方法では、例えば、アプリケーションのデータフローグラフの各々の動作に周波数や所定の供給電圧を割り当て、所定の計算時間、制約条件、またはその両方の平均消費電力を最小化する。あるいは、プロセッサが処理要求を満たすまで供給電圧を下げる、セルフタイマーを有する回路が提案されている。このアプローチは単位時間あたりの処理データ量に応じて供給電圧を動的にスケールする。残念ながら予測方法およびセルフタイミング回路は、ビデオ処理やオーディオ処理等のマルチメディアアプリケーションに適用された時、次善のパフォーマンスしか発揮できないことが多い。有用であるためには、予測アルゴリズムとタイミング回路はコンテントデータ（例えばＭＰＥＧフレームのコンテント）に基づいて将来の計算ニーズを正確に予測する必要がある。予測が正確でも、その予測をするためにはかなり多くの余分な処理（および該処理のための消費電力）を必要とする。
【００１５】
複数タイプの処理要求
図２は、本発明の一実施形態による、複数タイプの処理要求を考慮したスケジューラの一例を示すブロック図である。この例において、コンピュータシステム２００はスケジューラ２０５（例えば電圧スケジューラ）を含んでもよい。コンピュータシステム２００は多数の異なる構成要素を含んでいてもよい。例えば、これらの構成要素はハードウェア、ファームウェア、オペレーティングシステム（ＯＳ）、ハイレベルのアプリケーション等であってもよい。各構成要素は、プロセッサ２１０の処理資源を必要とする。各構成要素は異なる処理要求を有してもよい。処理要求は同じタイプでもよいし、異なるタイプでもよい。例えば、図２を参照して、異なるタイプの処理要求にはプロセッサ利用（タイプ１）２２０、デッドラインベース（タイプ２）２２５、バッファレベル（タイプ３）２３０、レートベース（タイプ４）２３５等がある。ここでは説明しないが、本発明の実施形態には、処理要求２２０−２３５に加えて他のタイプの処理要求も含まれる。
【００１６】
一実施形態において、スケジューラ２０５は異なるタイプの処理要求２２０−２３５を用いてパフォーマンスプロファイルを形成する。スケジューラ２０５は、異なるタイプの処理要求を理解し、１つの合成処理要求に合成または融合するためのメカニズムを有する必要がある。例えば、スケジューラ２０５は、バッファレベル処理要求、レートベース処理要求、利用処理要求、デッドラインベース法に関連する処理要求を１つの集計に調整できる必要がある。パフォーマンスプロファイルは異なるタイプの処理要求がどのように満たされ、処理資源がどのくらい割り当てられるかに作用する。一実施形態において、パフォーマンスプロファイルはパフォーマンスチューニングを可能とする情報を含んでいてもよい。例えば、処理要求に応じて、パフォーマンスプロファイルには、通信帯域幅、メモリバススピード、メモリバス幅、プロセッサスピード等の１つ以上に関する情報を含んでいてもよい。
【００１７】
処理要求に関連するプロセッサスピード
一実施形態において、各処理要求は所望のプロセッサスピードと関連づけられている。所望のプロセッサスピードは構成要素（例えば、ハードウェア、ファームウェア、ＯＳ、アプリケーションソフトウェア等）により指定される。所望のプロセッサスピードは構成要素の外部の発信元（例えば、ユーザや他のアプリケーション）により指定されてもよい。
【００１８】
一実施形態において、プロセッサ利用処理要求は、所定の時間ウィンドウにおけるプロセッサ２１０の利用に関するものである。例えば、プロセッサ２１０がどのくらい利用されているか（例えば、ビジー状態やアイドル状態）に応じて、プロセッサスピードを下げたり上げたりする。
【００１９】
一実施形態において、デッドラインベース処理要求は、デッドラインまでに完了しなければならない予測仕事量と関係する。例えば、プロセッサ２１０の所望のプロセッサスピードは、次に式を用いて近似することができる。
【００２０】
プロセッサスピード＝仕事量÷完了までにかけられる時間
例えば、メディア再生アプリケーションの場合、フレームレート（周期レートおよびフレームデッドラインに変換できる）とサイクルパーフレーム（各フレームまたはすべてのフレーム）は所定時間中に完了する必要があり、これらが指定され、必要なプロセッサスピードを近似するために用いられる。しかし、フレームレートが所定の時間（デッドライン）を満足しないと、スケジューラ２０５（例えば電圧スケジューラ）がプロセッサ２１０のプロセッサスピードを上げる。このようにプロセッサスピードを上げることにより、デッドラインベースの処理要求を所定時間内に満たすことに役立つ。デッドラインベース処理要求はタイムクリティカルなアプリケーションに使用できる。
【００２１】
一実施形態において、バッファレベル処理要求は、特定の構成要素により使用される１以上の入出力バッファレベルと関係する。例えば、ビデオデコーダアプリケーションの場合、出力バッファが出力ビデオフレームでいっぱいになると、プロセッサ２１０のプロセッサスピードが下げられる（アプリケーションの動作は遅くなる）が、その理由は、それ以上の出力ビデオフレームをすぐには必要としないからである。他の例として、暗号化されたファイルコピーアプリケーションの場合、レート限定要因は通信チャネルであり、プロセッサ２１０のプロセッサスピードは通信バッファがどの程度いっぱいかにより決まる。データをバッファから送信する場合、バッファがいっぱいの時、プロセッサは低い動作スピードで動作する。バッファがカラの時、プロセッサは速いプロセッサスピードで動作する。バッファレベルの処理要求もタイムクリティカルなアプリケーションに使用される。
【００２２】
一実施形態において、レートベース処理要求は持続的な処理レートに関し、デッドラインベース、バッファレベル、プロセッサ利用等の他の処理要求とは独立である。例えば、コンパイル構成要素（アプリケーション）は、たとえプロセッサ２１０がもっと速いプロセッサスピードで動作することができたとしても、一定の「サイクルパーセカンド」平均（例えば200MHz相当のプロセッサスピード）が必要であると指定する。コンパイル構成要素と関連した潜在的デッドライン処理要求は無いが、安定した進捗レート処理要求が望まれる。この情報を利用することにより、コンピュータシステム２００は、コンパイル構成要素が処理を進め資源窮乏を起こさないように十分な処理資源を割り当てることができ、不要な電力消費をしてしまうレートでプロセッサ２１０が動作することを避ける。レートベースの処理要求はタイムクリティカルでないアプリケーションに使用される。
【００２３】
留意すべきことは、コンピュータシステム２００の多数の構成要素は「未確認の」処理要求を有するか、または処理要求を有さないことである。一実施形態において、処理要求が無い時、スケジューラ２０５はデフォルトの処理要求を使用する必要がある。例えば、スケジューラ２０５は仮定として、その構成要素は計算量が少ない構成要素であり、その処理要求は時間的に短くプロセッサ利用量も少ないと見なすこともできる。その結果として、スケジューラ２０５はプロセッサ２１０のプロセッサスピードを低く設定する。
【００２４】
図３A、３B、３Cは、一実施形態による異なる処理要求の例を示すブロック図である。上で説明したように、コンピュータシステム２００が受信した各処理要求はプロセッサスピードと関連づけられている。一例として、コンピュータシステム２００は３つの異なるタスク（またはアプリケーション）を処理しているとする。各タスクの処理要求は異なるタイプである。図３Aに示したように、第１のタスク（「A」）は第１のタイプの処理要求を有しており、100MHzのプロセッサスピード（スピード「A」）と関連している。この例の場合、第１のタスク（「A」）はサブタスクA1-A5を含んでいる。第１の処理要求はレートベースの処理要求であり、100MHzの持続的なプロセッサスピードを必要とする。図３Bに示したように、第２のタスク（「B」）は第２のタイプ処理要求を有し、125MHzのプロセッサスピード（スピード「B」）と関連している。この例の場合、第２のタスク（「B」）はサブタスクB1-B5を含む。第２の処理要求はデッドラインベースの処理要求である。すべてのサブタスクB1-B5がデッドラインまでに完了する限り、タスク「B」の処理要求は満たされたものと考える。
【００２５】
図３Cに示したように、第３のタスク（「C」）は第３のタイプの処理要求を有し、200MHzのプロセッサスピード（スピード「C」）と関連づけられている。この例の場合、第３のタスク（「C」）はサブタスクC1-C3を含む。第３の処理要求はバッファレベルの処理要求である。第３のタスク「C」の処理要求は、バッファにデータを入れる（サブタスクC1）のに十分な時間の間、200MHzの処理スピードを必要とするが、バッファに再度データを入れる（サブタスクC2）までは、大きな処理スピードは必要としない。
【００２６】
プロセッサスピードの集計
一実施形態において、異なる処理要求と関連するプロセッサスピードを用いてパフォーマンスプロファイルを形成する。このパフォーマンスプロファイルは異なるタイプの処理要求をすべて満たす有効プロセッサスピードを含んでいる。一実施形態において、パフォーマンスプロファイルは異なる処理要求の各々と関連する処理スピードを集計し、プロセッサ２１０の有効処理スピードを形成することを含む。図４は、一実施形態による、異なる処理要求と関連したプロセッサスピードを集計した例を示すブロック図である。一実施形態において、タスク「A」、「B」、「C」の処理要求と関連した処理スピードを足し合わせ、次の全体的プロセッサスピードを推定する：
プロセッサスピード＝「スピードA」＋「スピードB」＋「スピードC」
図４を参照して、集計有効プロセッサスピードは約425MHz（100+125+200）として示されている。このように、この例の場合、プロセッサ２１０が有効スピード425MHzで動作するように設定された時、タスク「A」、「B」、「C」の処理要求が満たされる。さらにまた、これらの処理要求は、プロセッサ２１０をその最高可能プロセッサスピードで動作するように設定しなくても満たされる。これにより不必要な電力消費を減らすことができる。
【００２７】
ここで留意すべきことは、他の方法を用いて異なるタイプの処理要求と関連した処理要求を合成して有効プロセッサスピードを形成してもよいことである。例えば、異なるタイプの処理要求間のクロスアルゴリズム効果を考えて、アルゴリズムを利用してもよい。さらにまた、説明した方法では有効プロセッサスピードを決定するが、その他のパフォーマンスに関する要因を決定してもよい。例えば、複数タイプの処理要求を考慮してコンピュータシステム２００の温度特性、冷却特性等を決定することができる。
【００２８】
図４に示した例を参照して、一部の時間では425MHzの集計有効プロセッサスピードは必要以上である。例えば、時刻ｔ１において、プロセッサスピードはタスク「A」、「B」、「C」の処理要求をすべて満たすのに十分である。しかし、時刻ｔ２とｔ３において、プロセッサスピードは必要以上に大きく、不必要な電力消費が生じる。
【００２９】
処理要求に基づいたワークロードの配列
図５は、一実施形態による、タスクの配列をその処理要求に基づいてタスクを配列した一例を示すブロック図である。図３に示した例の場合、デッドラインが守られる限り、処理資源がタスク「B」のデッドライン処理要求にどのくらい割り当てられるかは問題とならない。よって、デッドラインよりも少しでも前にタスク「B」の処理要求を満たしても有利にはならない。
【００３０】
一実施形態において、異なる処理要求を満たしながら消費パワーをさらに減らすために、すべてのタスクの処理要求が満たされる限り、集計プロセッサスピード（この例の場合425MHz）を下げる。プロセッサスピードを下げると、一部の処理要求を満たすにはより長い時間がかかるかも知れないが、コンピュータシステム２００のパワー消費は減少する。図５に示したように、コンピュータシステム２００がタスク「A」、「B」、「C」の処理要求の１つ以上を満たすにはより長い時間がかかるが、これらのタスクの処理要求はプロセッサスピードを下げても満たすことができる。この例の場合、プロセッサスピードは425MHzから200MHzに下がる。図５の場合、ブロックは長くなるが背が低くなり、（図４のブロックと比較して）各ブロックの面積は保存される。
【００３１】
集計プロセス
図６は、一実施形態による、パフォーマンスプロファイルを決定するために使用されるプロセスの一例を示すフロー図である。ブロック６０５において、２以上の処理要求を受け取る。処理要求は異なるタイプである。例えば、一部はレートベースであり、その他はデッドラインベースである。ブロック６１０において、処理要求を用いてパフォーマンスプロファイルを形成する。上で説明したように、各処理要求と関連したプロセッサスピードを決定してもよい。ブロック６１５において、コンピュータシステム２００はパフォーマンスプロファイルを用いて処理要求を満たす。例えば、プロセッサスピード、通信帯域幅、メモリバス等を設定し、処理要求を処理する。
【００３２】
図７は、一実施形態による、集計プロセッサスピードを決定するために使用されるプロセスの一例を示すフロー図である。ブロック７０５において、２以上の処理要求を受け取る。処理要求のタイプは異なってもよい。各処理要求は構成要素やタスク（例えばアプリケーション）と関連していてもよい。ブロック７１０において、各処理要求と関連する所望のプロセッサスピードを決定する。上で説明したように、所望のプロセッサスピードはその構成要素が指定してもよいし、例えば構成要素の外部の発信元がその構成要素のために決定してもよい。
【００３３】
ブロック７１５において、個別に所望されたプロセッサスピードは集計され、プロセッサ２００の有効処理スピードを形成する。ブロック７２０において、プロセッサ２００を有効処理スピードで動作するように設定する。図７のプロセスは図４のブロック図に示されている。留意すべきことは、プロセスをさらに拡張して、より低いプロセッサスピードでも処理要求が満たされるようにタスクを配列してもよいことである。この場合は図５のブロック図に示されている。
【００３４】
ここで説明した方法の利点の１つは、コンピュータシステムが異なるタスク（または構成要素）から異なる処理要求を受け入れられ、１つの処理要求だけを受け入れその他の処理要求を犠牲にするのではないことである。例えば、セットトップデジタルビデオレコーダ（例えば、TiVoやReplayTV）等の一般用ビデオ再生デバイスの場合、設計者は、バッファレベル処理要求をビデオデコーダに使用し、レートベース処理要求をバックグラウンドのシステムメンテナンスタスクに使用し、デッドラインベース処理要求をオンスクリーンユーザインターフェイスに使用し、利用処理要求をまれにしか生じないかシステム設計時には定義されていない「未確認」タスクに使用することができる。１つのタイプの処理要求だけを異なるタイプの処理要求すべてに使用すると、結果はよくないが、その理由はすべてのアプリケーションの処理要求が効果的に満たされないからである。
【００３５】
コンピュータシステムおよびコンピュータ読み取り可能媒体
様々な方法の動作をコンピュータシステムのプロセッサで実施することができる。プロセッサはメモリに格納されたコンピュータプログラム命令のシーケンスを実行する。そのメモリは機械読み取り可能媒体と見なすことができる。メモリはランダムアクセスメモリ、リードオンリーメモリ、持続的記憶メモリである大規模記憶デバイス、またはこれらの組み合わせであってもよい。命令のシーケンスの実行により、プロセッサは例えば図６と７に示したプロセスによる動作を実行する。
【００３６】
命令はコンピュータシステムのメモリにロードされるが、記憶デバイスからロードされても、ネットワーク接続経由で１以上の他のコンピュータシステム（例えばサーバコンピュータシステム）からロードされてもよい。命令はいくつかの記憶デバイス（例えばDRAM、ハードディスク、仮想記憶等）に並行して格納されてもよい。その結果、これらの命令はプロセッサにより直接実行される。他の場合において、命令はプロセッサにより直接実行されなくても、直接実行可能でなくてもよい。これらの状況では、プロセッサに命令を解釈するインタープリターを実行させるか、またはプロセッサに受け取った命令を直接実行可能な命令に変換するコンパイラーを実行させることにより、実行することができる。他の実施形態において、ソフトウェア命令の代わりに、またはそれと組み合わせてハードウェアに組み込まれた回路を用いて本発明を実施してもよい。このように、本発明はハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されず、コンピュータシステムにより実行される命令のいかなる特定のソースにも限定されない。
【００３７】
上記の説明および図面から、当業者には当然のことながら、ここで説明した具体的な実施形態は例示のみを目的としたものであり、発明の範囲を限定するためのものではない。当業者には本発明の精神および本質的な特徴から逸脱することなく他の具体的な形式で本発明を実施することができることが分かるであろう。例えば、本発明の実施形態は、複数のバーチャルマシンがあり、各処理は複数タイプの処理要求であるバーチャルマシン環境で使用することができる。同様に、スケジューラ２０５は独立の構成要素として示したが、例えばOS、BIOS、ファームウェア、またはこれらの組み合わせで実施してもよい。具体的な実施形態の細部に言及したが、請求項の範囲を限定するためではない。
【図面の簡単な説明】
【００３８】
本発明は、本発明の実施形態に関する上記の詳細な説明および添付した図面から完全に理解されるであろう。これらの実施形態は本発明を限定するものであると解釈してはならず、本発明を説明し理解してもらうことだけを目的としたものである。
【図１】先行技術であるコンピュータシステムを示すブロック図である。
【図２】本発明の一実施形態によるスケジューラの実施例を示すブロック図であり、複数タイプの処理要求を考慮したものである。
【図３】一実施形態による異なるタイプの処理要求を示すブロック図である。
【図４】一実施形態による、異なる処理要求と関連したプロセッサスピードの総計を示すブロック図である。
【図５】一実施形態による、処理要求に基づくタスクの配列の一例を示す図である。
【図６】一実施形態による、パフォーマンスプロファイルを決定するプロセスの一例を示すフロー図である。
【図７】一実施形態による、プロセッサスピードの総計を決定するプロセスの一例を示すフロー図である。
【図１】
2006522384.tif 000003
【図２】
2006522384.tif 000004
【図３】
2006522384.tif 000005
【図４】
2006522384.tif 000006
【図５】
2006522384.tif 000007
【図６】
2006522384.tif 000008
【図７】
2006522384.tif 000009
【国際調査報告】
2006522384.tif 000010
2006522384.tif 000011
2006522384.tif 000012