(57)【要約】  プログラマブルプラットフォームは、中央演算処理装置（ＣＰＵ）、コプロセッサ（ＣＯＰ１，ＣＯＰ２）、および、様々なプロセッサを接続する共有システムバス（ＳＢ）のようなコンポーネントを含む。メディア処理アプリケーションでは、機能の処理は中央演算処理装置とコプロセッサに分散される。このような機能は、ハードウェア、ソフトウェア、または、それらの組み合わせで達成される各コプロセッサの使用率は、メディア処理アプリケーションの特徴に応じて、アプリケーションの相異と、その上に単一アプリケーションの実行期間の両方のため変化する。その結果として、１台以上のコプロセッサはメディア処理のある一部分の間に効果的に利用されないことがある。同期システムの場合、これらのコプロセッサは電力を消費し続ける。本発明によれば、コプロセッサは、そのコプロセッサの作業負荷に応じて、ローカルコントローラによってパワーダウンさせられる。その結果として、電源制御は分散型かつ自動式であり、コプロセッサの所要処理能力だけに依存する。
2007500392.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１個のクロック装置の制御下でデータを同期処理するために構成された複数のプロセシングエレメントと、
前記複数のプロセッシングエレメントのうちの或るプロセッシングエレメントに関連付けられた少なくとも１つのローカルコントローラと、
前記複数のプロセッシングエレメントのうちのプロセッシングエレメント間でデータを交換するために構成されたデータ通信手段と、
を含み、
前記ローカルコントローラはその関連付けられたプロセッシングエレメントの所要処理能力に応じてその関連付けられたプロセッシングエレメントをパワーダウンするために構成されている、データ処理システム。
【請求項２】
前記ローカルコントローラはその関連付けられたプロセッシングエレメントの所要処理能力に応じてその関連付けられたプロセッシングエレメントをパワーアップするためにさらに構成されている、請求項１に記載のデータ処理システム。
【請求項３】
前記複数のプロセッシングエレメントのうちの前記或るプロセッシングエレメントに関連付けられ、その関連付けられたプロセッシングエレメントとデータ通信手段との間でデータを交換するために構成された少なくとも１つのバッファをさらに含み、
前記ローカルコントローラはその関連付けられたバッファの充填度からその関連付けられたプロセッシングエレメントの所要処理能力を決定するために構成されている、
請求項１に記載のデータ処理システム。
【請求項４】
制御プロセッサをさらに含み、
前記ローカルコントローラは前記制御プロセッサから前記関連付けられたプロセッシングエレメントの前記所要処理能力に関する情報を受信するために構成され、
前記ローカルコントローラは前記関連付けられたプロセッシングエレメントの処理能力に関する情報を有するようにさらに構成されている、
請求項１に記載のデータ処理システム。
【請求項５】
前記複数のプロセッシングエレメントのうちの前記或るプロセッシングエレメントはその関連付けられたローカルコントローラに前記所要処理能力を通知するために割り込みを発生するようにさらに構成された、請求項１に記載のデータ処理システム。
【請求項６】
一連のクロックサイクルが大量のデータの処理動作を達成し、
当該データ処理システムは前記複数のプロセッシングエレメントのうちの前記或るプロセッシングエレメントのためのプログラマブルストールクロックサイクルを実施するプログラマブル手段をさらに含み、前記プログラマブルストールクロックサイクルは前記一連のクロックサイクル中のクロックサイクル間に散在している、
請求項１に記載のデータ処理システム。
【請求項７】
少なくとも１つのプロセッシングエレメントが前記データ通信手段に沿ったそのデータ転送のレートを制御する帯域幅制御ユニットと関連付けられ、前記帯域幅制御ユニットが許容最大データレートを超える場合に前記データ転送を制限する、請求項１に記載のデータ処理システム。
【請求項８】
メモリ装置をさらに具備し、
前記データ通信手段は前記メモリ装置と前記複数のプロセッシングエレメントのうちの前記或るプロセッシングエレメントとの間でデータを交換するようにさらに構成されている、
請求項１に記載のデータ処理システム。
【請求項９】
少なくとも１個のクロック設備の制御下でデータを同期処理するために構成された複数のプロセシングエレメントと、
前記複数のプロセッシングエレメントのうちの或るプロセッシングエレメントに関連付けられた少なくとも１つのローカルコントローラと、
前記複数のプロセッシングエレメントのうちのプロセッシングエレメント間でデータを交換するために構成されたデータ通信手段と、
を含むデータ処理システムを使用して、データを処理する方法であって、
前記プロセッシングエレメントにデータを供給するステップと、
前記プロセッシングエレメントによる処理のために利用可能なデータがない場合に前記ローカルコントローラによって前記プロセッシングエレメントをパワーダウンさせるステップと、
を含む方法。
【請求項１０】
前記プロセッシングエレメントによる処理のために利用可能なデータがある場合に前記ローカルコントローラによって前記プロセッシングエレメントをパワーアップさせるステップをさらに含む、請求項９に記載のデータを処理する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
データ処理システムおよびデータを処理する方法に関する。
【背景技術】
【０００２】
プログラマブルプラットフォームは、中央演算処理装置（ＣＰＵ）、１つ以上のコプロセッサ、および、様々なプロセッサを接続する共有バスのようなコンポーネントを含む。メディア処理アプリケーションでは、機能の処理は中央演算処理装置およびコプロセッサに分散される。このような機能は、ハードウェア、ソフトウェア、または、それらの混合で明確にされる。この選択は、特に、機能自体、機能の製造ボリューム、および、問題になっている回路に依存する。ＣＰＵはソフトウェア制御され、適切なソフトウェアの使用によって多くの異なる所望の目的に適応させることが可能であり、卓越したフレキシビリティを与える。コプロセッサは特定の機能を実行するために専用される。一般に、ある所与の機能に対し、ソフトウェア制御されたプロセッサは、通常はその機能に専用であるコプロセッサよりシリコン面積および消費電力の効率が低いが、他方において、ソフトウェア制御されたプロセッサはよりフレキシブルである。ＣＰＵはそのプラットフォームのためのコントローラとしての機能も果たす。
【０００３】
メディア処理は、ビデオ処理、グラフィックス処理、または、オーディオ処理を含み得る。各コプロセッサの使用率は、メディア処理アプリケーションの特徴またはある種の使用の場合における動作のモードに依存して、単一アプリケーションの実行期間の間とともに、異なるアプリケーションの両方に対して変化し得る。その結果として、１つ以上のコプロセッサはメディア処理の或る一部分の間に効果的に利用されないことがある。同期システムの場合、これらのコプロセッサは、それにもかかわらずクロック信号を受信するので、電力を消費し続ける。同期プログラマブルプラットフォームの消費電力を削減するために、最高使用率のコプロセッサに応じて、プラットフォームのクロック周波数を低下させることが可能である。別のアプローチとしてはプラットフォームの電源電圧を下げることである。未利用コプロセッサはさらに静的にパワーダウンさせられる。しかし、すべてのこれらの場合に、かなりの個数のコプロセッサが特定の瞬間に必要以上の処理能力を依然として提供するので、必要以上の電力をさらに消費する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、個別のコンポーネントを動的にパワーダウンすることを可能にする分散型電力制御を有するデータ処理システムを提供することである。
【課題を解決するための手段】
【０００５】
この目的は、少なくとも１個のクロック装置の制御下でデータを同期処理するために構成された複数のプロセシングエレメントを含むデータ処理システムで達成される。このデータ処理システムは、複数のプロセッシングエレメントの中の或るプロセッシングエレメントに関連付けられた少なくとも１つのローカルコントローラと、複数のプロセッシングエレメントのうちのプロセッシングエレメント間でデータを交換するために構成されたデータ通信手段とをさらに含み、ローカルコントローラはその関連付けられたプロセッシングエレメントの所要処理能力に応じてそのプロセッシングエレメントをパワーダウンするために構成される。コプロセッサの作業負荷に応じて、ローカルコントローラはコプロセッサをパワーダウンし、動的な電源制御を可能にする。各プロセッサはローカルコントローラを備えているので、電力管理は処理システム全体に分散し、すなわち、電力管理のための全体的な制御メカニズムは必要とされない。このような全体的な制御メカニズムは、特にデータ処理システムが非常に多数のプロセッシングエレメントを備えている場合、かなりの量のオーバーヘッドをもたらし、利用法が相異する場合にこの状況をさらに複雑化する。個々のコプロセッサの電源制御は処理システムの残りの部分が意識をする必要がなく、すなわち、他のコプロセッサはその特定のコプロセッサの現在の電源状態について知る必要がない。いかなる時点でも、必要に応じて、任意のプロセッシングエレメント、または、プロセッシングエレメントの組み合わせはどれでも自動的に利用可能になる。プロセッシングエレメントのパワーダウンは、プロセッシングエレメントの電源のスイッチを完全に切ることと、プロセッシングエレメントをスリープモードにすることの両方を含む。
【０００６】
米国特許第２００２／０００７４６３Ａ１号は、サーバーとして動作する多数のユニットを含むコンピュータシステムについて記載する。各ユニットは、少なくとも１つのプロセッサと、そのプロセッサのアクティビティのレベルを特定するアクティビティモニタとを有する。各ユニットは、相互に異なる消費電力率を有する３種類のモードで動作可能である。コントローラはコンピュータシステムのユニットに結合され、各ユニットからアクティビティのレベルに関する情報を受信する。コントローラはこの情報を解析し、各ユニットの動作モードを決定する。続いて、コントローラは、各ユニットにそのユニットが決定された動作モードで動作するように命令するコマンドを発生する。しかし、この文献は、全体的な制御メカニズムを必要としない分散型電力管理システムを開示していない。
【０００７】
米国特許第２００３／００２５６８９Ａ１号は、コンピュータシステムのような電子装置の電力管理方法について記載する。この方法は、静的電源制御と、動的電源制御と、プログラマブルなクロックレートを備えた一つ以上の異なるプログラマブルクロックポリシーを含み得るフレキシブルクロックジェネレータとを含んだ複数の電力管理技術を備えている。静的電力制御は、様々な時点で未使用機能モジュールをパワーダウンするため使用される。動的電力制御は完全なシステムの消費電力を削減するためにクロッキングメカニズムを利用する。フレキシブルクロックジェネレータを使用して、当面の特定のタスクにちょうど十分なクロック速度を提供するために適切なクロック速度が設定される。しかし、１つ以上のハードウェアユニットを別個に動的にパワーダウンする方法が開示されていない。
【０００８】
本発明の一実施形態は、データ処理システムが複数のプロセッシングエレメントのうちの或るプロセッシングエレメントに関連付けられた少なくとも１つのバッファをさらに含み、そのバッファがその関連付けられたプロセッシングエレメントとデータ通信手段との間でデータを交換するために構成され、ローカルコントローラがその関連付けられたバッファの充填度からその関連付けられたプロセッシングエレメントの所要処理能力を決定するために構成されていることを特徴とする。関連付けられたバッファの充填度を使用することは、関連付けられたプロセッシングエレメントの作業負荷を決定する比較的簡単な方法である。バッファが空である場合、ローカルコントローラはそのプロセッシングエレメントをパワーダウンする。バッファが再び少なくとも部分的に充填されると直ちに、ローカルコントローラはそのプロセッシングエレメントをパワーアップする。
【０００９】
本発明の一実施形態は、データ処理システムが制御プロセッサをさらに含み、ローカルコントローラがその制御プロセッサから関連付けられたプロセッシングエレメントの所要処理能力に関する情報を受信するために構成され、ローカルコントローラが関連付けられたプロセッシングエレメントの処理能力に関する情報を有するようにさらに構成されていることを特徴とする。この情報を使用して、ローカルコントローラは、対応するプロセッシングエレメントがアイドル状態である時間間隔を決定し、この時間間隔の長さに応じてそのプロセッシングエレメントをパワーダウンする。プロセッシングエレメントが処理すべき新しいデータを受信すると、ローカルコントローラはそれに対応するプロセッシングエレメントをパワーアップする。
【００１０】
本発明の一実施形態は、複数のプロセッシングエレメントのうちのプロセッシングエレメントがその関連付けられたローカルコントローラに所要処理能力を通知するために割り込みを発生するようにさらに構成されていることを特徴とする。プロセッシングエレメントがデータを処理し終えた場合、プロセッシングエレメントはその対応するローカルコントローラへ通知する。続いて、ローカルコントローラはそのプロセッシングエレメントをパワーダウンする。処理する新しいデータが到着した瞬間に、プロセッシングエレメントは再びパワーアップされる。
【００１１】
本発明の一実施形態は、一連のクロックサイクルが大量のデータの処理動作を達成し、データ処理システムが複数のプロセッシングエレメントのうちのプロセッシング素子のためのプログラマブルストールクロックサイクルを実施するプログラマブル手段をさらに含み、プログラマブルストールクロックサイクルがその一連のクロックサイクルのうちのクロックサイクル間に散在していることを特徴とする。データのブロックが規則的な時点で供給される場合、データのブロックの処理は、次のデータのブロックが到着する前に既に終了している場合がある。データ処理のためのクロックサイクル間のストールサイクルのプログラミングは、コプロセッサの帯域幅消費のピーク負荷を軽減するために使用される。これに対して、残りの時間はコプロセッサを電力節約の理由でパワーダウンするために使用される。本実施形態の利点は、帯域幅消費の拡張と電力節約との間のトレードオフを活用し、システムの要件に応じて最適化を行うことを可能にすることである。
【００１２】
本発明の一実施形態は、少なくとも１つのプロセッシングエレメントがデータ通信手段に沿ったそのデータ転送のレートを制御する帯域幅制御ユニットと関連付けられ、帯域幅制御ユニットが許容最大データレートを超える場合にデータ転送を制限することを特徴とする。データのブロックが規則的な時点で供給される場合、データブロックの処理が次のデータブロックが到着する前に既に終了している場合がある。帯域幅制御ユニットは、プロセッシングエレメントによる帯域幅の消費を実際に実行される機能に適したレベルに適合させることが可能である。帯域幅消費は２個のデータブロックの到着の間の時間に亘って平均化される。代替的に、残りの時間がコプロセッサをパワーダウンするために使用される。前の実施形態の場合と同様に、帯域幅消費の拡張と電力節約との間の最適化がシステム要件に応じて行われる。
【００１３】
本発明のさらなる実施形態は従属請求項に記載されている。
【００１４】
本発明によれば、請求項９に記載されたデータを処理する方法が同様に提供される。
【発明を実施するための最良の形態】
【００１５】
図１および図２は本発明によるデータ処理システムの実施形態を示す。図１および２の両方を参照すると、データ処理システムは、システムバスＳＢ、共有メモリＭＥＭ、入力ユニットＩＵ、出力ユニットＯＵ、中央演算処理装置ＣＰＵ、コプロセッサＣＯＰ１およびＣＯＰ２、バスインターフェイスＢＩ１およびＢＩ２、並びに、ローカルコントローラＣＴＲ１およびＣＴＲ２を含む。データ処理システムは、図１および２に表されていないが、クロック信号をシステムのすべてのコンポーネントへ送信するシステムクロックをさらに含む。別の実施形態では、データ処理システムは、異なるクロック速度でのシステムの異なるコンポーネントの動作のための複数のクロックを有してよい。システムバスＳＢおよびメモリＭＥＭは、中央演算処理装置ＣＰＵ、入力ユニットＩＵ、出力ユニットＯＵ、並びに、コプロセッサＣＯＰ１およびＣＯＰ２によって共有される。データ処理システムは、たとえば、ビデオ、グラフィックス、または、オーディオ処理の分野におけるメディア処理アプリケーションを実行する。中央演算処理装置ＣＰＵはシステム全体を制御する。メモリＭＥＭの制御の次に、中央演算処理装置ＣＰＵはコプロセッサＣＯＰ１およびＣＯＰ２内の種々の制御レジスタに即座にアクセスする。中央演算処理装置ＣＰＵは、メディア処理アプリケーションの機能の一部分を含むソフトウェアプログラムも実行することができる。コプロセッサＣＯＰ１およびＣＯＰ２は、ハードウェアで特定のメディア処理機能を実行するために専用され、これらのメディア処理アプリケーションの機能はコプロセッサＣＯＰ１およびＣＯＰ２にマッピングされる。たとえば、ＭＰＥＧアプリケーションの場合、離散コサイン変換（ＤＣＴ）機能または動作推定機能を表す機能は、それぞれ、これらの特殊な機能を実行するために専用されるコプロセッサＣＯＰ１およびＣＯＰ２にマッピングされる。音声入力または画像入力のような入力データは入力ユニットＩＵを介して受信され、次に中央演算処理装置ＣＰＵとコプロセッサＣＯＰ１およびＣＯＰ２によって処理される。出力データは出力ユニットＯＵに書き込まれ、出力ユニットは、２，３例を挙げると、他のデータ処理システム、または、ディスプレイ装置へデータを出力する。いくつかの実施形態では、入力ユニットＩＵは定期的な時間間隔で入力データを受信する。他の実施形態では、入力ユニットＩＵは、２，３例を挙げると、メディアアプリケーション、または、入力データのソースに応じて入力データをバースト受信する。いくつかの実施形態では、出力ユニットＯＵは規則的な時間間隔でデータを出力する。別の実施形態では、出力ユニットＯＵはデータをバースト出力する。データ処理中に得られる中間結果は、コプロセッサＣＯＰ１およびＣＯＰ２または中央演算処理装置ＣＰＵによって、システムバスＳＢを介して、メモリＭＥＭに保存され、次に、さらなる処理のためにメモリＭＥＭから取り出される。コプロセッサＣＯＰ１およびＣＯＰ２と、入力ユニットＩＵと、出力ユニットＯＵと、中央演算処理装置ＣＰＵのうちの種々のユニットは、その他のユニットとは独立に、システムバスＳＢを介してデータの転送を初期化可能であるので、調停メカニズム（arbitration mechanism）はバス転送を逐次化するために必要であり、図示された状況では、メモリアクセスを制御するために必要である。この目的のために、図１および２に表されていないバス・アービタが使用される。コプロセッサＣＯＰ１およびＣＯＰ２は、それぞれ、バスインターフェイスＢＩ１およびＢＩ２を介してシステムバスＳＢと通信する。これらのバスインターフェイスＢＩ１およびＢＩ２は、システムバスＳＢからコプロセッサへ転送されるべきデータを一時的に記憶する入力バッファ、および、コプロセッサからシステムバスＳＢへ転送されるべきデータを一時的に記憶する出力バッファを含む。代替的な実施形態では、入力バッファおよび出力バッファをそれぞれ含む２つの別個のバスインターフェイスがコプロセッサのために使用される。さらに別の実施形態では、コプロセッサは、入力データを受信する多数のバスインターフェイス、および／または、データを出力する多数のバスインターフェイスを有し、たとえば、異なる画像に関係するデータを異なるバスインターフェイスを介して転送する。入力バッファおよび出力バッファは、システムバスＳＢがコプロセッサＣＯＰ１およびＣＯＰ２とは独立に動作することを可能にする。ローカルコントローラＣＴＲ１およびＣＴＲ２は、後の段落で説明されるように、これらのプロセッサの作業負荷に応じて、それぞれ、コプロセッサＣＯＰ１およびＣＯＰ２をパワーダウンさせることができる。コプロセッサＣＯＰ１およびＣＯＰ２は、たとえば、専用ハードウェア、たとえば、超大規模命令語プロセッサ（Very Large Instruction Word processor）のような専用機能を実行するためにソフトウェアがロードされたプログラマブルプロセッサ、または、たとえば、フィールドプログラマブルゲートアレイのようなリコンフィギュアブルなハードウェアによって実施され得る。
【００１６】
別の実施形態では、データ処理システムは、たとえば、そのデータ処理システムが設計された用途であるメディア処理アプリケーションのタイプに応じて、３つ以上のコプロセッサ、または、異なる個数のＣＰＵ、または、異なる個数のメモリユニットを有してもよい。代替的に、入力ユニットＩＵおよび出力ユニットＯＵはコプロセッサに集積される。
【００１７】
図１を参照すると、ローカルコントローラＣＴＲ１はバスインターフェイスＢＩ１に接続され、ローカルコントローラＣＴＲ２はバスインターフェイスＢＩ２に結合される。データ処理中に、入力データはバスインターフェイスＢＩ１およびＢＩ２の入力バッファへ転送される。データ処理は、規則的な処理期間内のストリーミング処理、すなわち、２，３例を挙げると、ビデオフィールドまたはフレームの処理、データのスライスを含んでいてもよい。コプロセッサＣＯＰ１およびＣＯＰ２は、対応するバスインターフェイスＢＩ１およびＢＩ２の入力バッファからこれらのデータを読み出し、データを処理し、結果データを対応するバスインターフェイスＢＩ１およびＢＩ２の出力バッファへ書き込む。システムバスＳＢを介して、結果データはメモリＭＥＭ、または、出力ユニットＯＵへ書き込まれる。システムバスＳＢは共有リソースであり、データ処理中に、コプロセッサＣＯＰ１がシステムバスＳＢを介してメモリＭＥＭからデータを取り出すために要求を初期化する状況が起こる場合があり、同時にその瞬間にデータ処理システムのその他のコンポーネントによる一連のバス要求は依然として保留されたままである。コプロセッサＣＯＰ１のバス要求はバス要求のキューに追加され、コプロセッサＣＯＰ１は、ＢＩ１の入力バッファに保存されたデータを処理し続ける。入力バッファが空である瞬間に、コプロセッサＣＯＰ１はバスインターフェイスＢＩ１によってストールが起こる。ローカルコントローラＣＴＲ１は、対応する入力バッファが空であることを検出し、コプロセッサＣＯＰ１をパワーダウンする。コプロセッサＣＯＰ１によって初期化されたバス要求が受け付けられると直ぐに、データがメモリＭＥＭからバスインターフェイスＢＩ１の入力バッファへ書き込まれる。ローカルコントローラＣＴＲ１は、バスインターフェイスＢＩ１の入力バッファがデータを収容していることを検出し、コプロセッサＣＯＰ１をパワーアップし、コプロセッサは対応する入力バッファからのデータを処理し続ける。その結果として、コプロセッサが処理しなければならないデータの量だけに応じて、動的な分散型電力制御が達成される。さらに、ローカルコントローラは比較的簡単なハードウェアしか必要としない。代替的な実施形態では、プロセッシングエレメントは、ある一定の量のデータが対応する入力バッファに存在した後に限りパワーアップされる。いくつかの実施形態では、入力ユニットＩＵおよび／または出力ユニットＯＵは同様にローカルコントローラを有していてもよく、このローカルコントローラは、たとえば、データの転送がバーストによって進行する場合に、データが受信または出力されないならば、それぞれ、対応するユニットをパワーダウンする。
【００１８】
図２を参照すると、ローカルコントローラＣＴＲ１はバスインターフェイスＢＩ１に結合され、ローカルコントローラＣＴＲ２はバスインターフェイスＢＩ２に結合され、ローカルコントローラＣＴＲ１およびＣＴＲ２は共にシステムバスＳＢに結合される。ストリーミング処理中に、中央演算処理装置ＣＰＵは、コプロセッサの制御レジスタに情報を書き込むことによって、データ処理を開始させるためにコプロセッサＣＯＰ１およびＣＯＰ２を作動させる。この情報は、メモリＭＥＭのメモリアドレスと、処理されるべきビデオフレームの高さおよび幅と、そのコプロセッサによって処理されるべき１秒当たりのフレーム数を含み得る。ビデオフレームの高さおよび幅は１ビデオフレームの間に処理されるべきデータ量に関係する。コプロセッサＣＯＰ１およびＣＯＰ２が所与のビデオフレームに対するデータの処理を終了した瞬間に、コプロセッサは中央演算処理装置ＣＰＵに通知するために割り込みを発生する。本発明の一実施例において、コプロセッサＣＯＰ１およびＣＯＰ２は対応するローカルコントローラＣＴＲ１およびＣＴＲ２にも割り込みを送信し、ローカルコントローラＣＴＲ１およびＣＴＲ２は続いてそれぞれコプロセッサＣＯＰ１およびＣＯＰ２をパワーダウンする。別の実施形態では、ローカルコントローラＣＴＲ１およびＣＴＲ２は、対応するコプロセッサが処理しなければならない１秒当たりのフレーム数に関する情報を保存するためにレジスタを有する。この情報は中央演算処理装置ＣＰＵによってコプロセッサＣＯＰ１およびＣＯＰ２のレジスタに保存することも可能である。この情報を使用して、ローカルコントローラＣＴＲ１およびＣＴＲ２は２個のビデオフレームの受信間の時間間隔を計算する。コプロセッサＣＯＰ１およびＣＯＰ２が一連のビデオフレームの処理を開始した瞬間に、対応するローカルコントローラは内部タイマをスタートする。コプロセッサＣＯＰ１およびＣＯＰ２がビデオフレームの処理を終了したとき、割り込みがローカルコントローラＣＴＲ１およびＣＴＲ２にそれぞれ送信される。ローカルコントローラＣＴＲ１およびＣＴＲ２は、割り込みの受信と次のビデオフレームの処理の開始との間の時間間隔を決定する。その時間間隔の長さに応じて、ローカルコントローラＣＴＲ１およびＣＴＲ２は対応するコプロセッサＣＯＰ１およびＣＯＰ２をパワーダウンする。プロセッサをパワーアップおよびパワーダウンする動作もまた電力を消費するので、定期的な処理期間内のパワーダウンおよびパワーアップは制限を有する。ローカルコントローラＣＴＲ１およびＣＴＲ２は、たとえば、割り込みの受信と次のフレームの処理の開始との間の時間間隔の最小値を保存するプログラマブルレジスタを有することができる。実際の時間間隔がこの最小値以上である場合に限り、ローカルコントローラＣＴＲ１およびＣＴＲ２は対応するコプロセッサをパワーダウンする。次のビデオフレームの処理を開始すべき瞬間に、ローカルコントローラＣＴＲ１およびＣＴＲ２はそれぞれコプロセッサＣＯＰ１およびＣＯＰ２をパワーアップする。代替的な実施形態では、コプロセッサＣＯＰ１およびＣＯＰ２は、次のデータブロックの処理を要求するときに中央演算処理装置ＣＰＵによってパワーアップされる。
【００１９】
本発明の別の一実施形態では、中央演算処理装置ＣＰＵは、コプロセッサによるデータの処理のために使用される一連のクロックサイクル中のクロックサイクル間に散在するコプロセッサＣＯＰ１およびＣＯＰ２のストールサイクルを実施するためにさらにプログラミングされ得る。ストールサイクルの間に、コプロセッサＣＯＰ１およびＣＯＰ２はそれでもなおクロック信号を受信するが、それらの対応するローカルコントローラによって発生されたストールサイクルの故に応答しない。実際のデータ転送レートを低下させるストールサイクルの用途は、本願と同一出願人に譲受され、参照によってここに組み込まれた、同時係属中の米国特許出願第０９／９２００４２号（代理人書類番号ＰＨＮＬ０１０５０６）にさらに記載されている。分散型データ処理において、データは、緊急通知（short notice）、および／または、高強度のバーストでシステムバスＳＢへ供給されるか、または、システムバスＳＢから要求される。このような転送が短時間のフレーム内に起こるとき、システム全体のバス容量を容易にかつ頻繁に上回り、その結果、転送を要求するコンポーネントのストール状況へとつながるであろう。コプロセッサが１個以上のストールサイクルを実行するとき、そのコプロセッサによってバス要求は作成されないので、ストールサイクルはシステムバスＳＢを介するデータの実際の転送レートを下げるために使用され得る。本実施形態の利点は、コプロセッサの消費電力の削減とシステムバスＳＢの帯域幅の消費の時間的な拡張との間のトレードオフを可能にすることである。所与のデータセット、たとえば、ビデオフレームに対するコプロセッサの実際の処理時間が２個のビデオフレーム間の時間間隔より短い場合、この時間差は通常の処理サイクルの間にプログラマブルストールサイクルを追加することによって帯域幅消費を拡張するため使用され、または、先行の実施形態で記載したように、２個のビデオフレーム間の時間間隔毎の期間中にコプロセッサをパワーダウンするために使用される。メディア処理アプリケーション、データ処理システムの構成、および、システム要求に応じて、帯域幅消費の拡張と消費電力の削減との間の最適化が行われる。
【００２０】
図２を再度参照すると、さらに別の実施形態では、ローカルコントローラＣＴＲ１およびＣＴＲ２はいわゆる帯域幅コントローラをさらに含む。実際のデータ転送レートを下げるための帯域幅制御ユニットの用途は、同様に本出願人に譲受され、参照によってここに組み込まれた、同時係属中の米国特許出願（代理人書類番号ＰＨＮＬ０３０７９５）にさらに記載されている。これらの帯域幅制御ユニットを使用して、コプロセッサＣＯＰ１およびＣＯＰ２による帯域幅の消費は対応するローカルコントローラＣＴＲ１およびＣＴＲ２によって制御され、それによって、それぞれコプロセッサＣＯＰ１およびＣＯＰ２の平均データ処理速度を効果的に低下させる。しかし、必要に応じて、付加的な転送能力が与えられ得るので、殆どの場合にストール状況がこれ以上広がることはない。たとえば、バスアービタによるバス調停は、コプロセッサＣＯＰ１およびＣＯＰ２が依然としてバス転送を同時に開始することができるので、依然として必要である。ローカルコントローラＣＴＲ１およびＣＴＲ２は、ビデオフレームの高さおよび幅と、対応するコプロセッサが処理しなければならない１秒当たりのフレーム数と、対応するコプロセッサの計算能力とに関する情報を保存するためにレジスタをさらに含む。この情報は中央演算処理装置ＣＰＵによってレジスタに保存してもよい。この情報を使用して、ローカルコントローラＣＴＲ１およびＣＴＲ２は、１個のビデオフレームのデータを処理するために対応するコプロセッサが必要とする最小時間、２個のビデオフレームの受信間の時間間隔、および、帯域幅消費のための許容最大データレートを計算する。許容最大データレートは、ビデオフレームの高さおよび幅と、高々２個のビデオフレームの間の時間間隔である選択された時間間隔とに基づいている。帯域幅制御ユニットは、対応するコプロセッサＣＯＰ１およびＣＯＰ２の平均帯域幅消費をそれらの許容最大データレートに制限する。コプロセッサＣＯＰ１およびＣＯＰ２がビデオフレームの処理中のある特定の期間における固有の見積帯域幅より少ない帯域幅しか利用できない場合、コプロセッサは、原理的に、次のビデオフレームの受信前に、後に続く期間における不一致を取り戻すことが可能である。特に有利な一実施形態では、このようなキャッチアップ時間が２個のビデオフレーム間の時間間隔の最後に位置する短い時間、いわゆるスラック時間に設けられ、その間に最大システムバス帯域幅が指定されている。コプロセッサＣＯＰ１およびＣＯＰ２が一連のビデオフレームの処理を開始した瞬間に、対応するローカルコントローラは内部タイマをスタートする。コプロセッサＣＯＰ１およびＣＯＰ２がビデオフレームの処理を終了したとき、割り込みがローカルコントローラＣＴＲ１およびＣＴＲ２にそれぞれ送信される。ローカルコントローラＣＴＲ１およびＣＴＲ２は、割り込みの受信と次のビデオフレームの処理の開始との間の時間間隔を決定する。その時間間隔の長さに応じて、ローカルコントローラＣＴＲ１およびＣＴＲ２は対応するコプロセッサＣＯＰ１またはＣＯＰ２をパワーダウンしてよい。ローカルコントローラＣＴＲ１およびＣＴＲ２は、たとえば、割り込みの受信と次のフレームの処理の開始との間の時間間隔の最小値を保存するプログラマブルレジスタを有し得る。実際の時間間隔がこの最小値以上である場合に限り、ローカルコントローラＣＴＲ１およびＣＴＲ２は対応するコプロセッサをパワーダウンする。次のビデオフレーム処理を開始すべき瞬間に、ローカルコントローラＣＴＲ１およびＣＴＲ２はそれぞれコプロセッサＣＯＰ１およびＣＯＰ２をパワーアップする。本実施形態の利点は、コプロセッサの消費電力の削減とシステムバスＳＢの帯域幅の消費の時間的な拡張との間のトレードオフを可能にすることである。コプロセッサの許容最大データレートを計算する時間間隔は２個のビデオフレーム間の時間間隔に一致するように選択可能であり、この場合、そのコプロセッサの帯域幅消費は最大限に広げられる。他方において、許容最大データレートを計算する時間間隔がビデオフレームを処理するための所要最小時間に一致するように選択可能であり、コプロセッサが２個のビデオフレーム間の残りの時間間隔中にパワーダウンされることを可能にさせ、消費電力の削減を最大化する。メディア処理アプリケーション、データ処理システムのコンフィギュレーション、および、システム要件に応じて、帯域幅消費の拡張と消費電力の削減との間の最適化が行われる。
【００２１】
図３は、バスインターフェイスＢＩを介してシステムバスＳＢに結合されたコプロセッサＣＯＰだけでなく帯域幅制御ユニットＢＣＴＲも含む制御ユニットＣＴＲの一実施形態を表す。帯域幅制御ユニットは、バスインターフェイスＢＩを介してシステムバスに転送された平均データ量Ｓｔａを計算する平均計算ユニットＡＶを含む。そのために、平均計算ユニットはバスインターフェイスＢＩによって行われるデータ転送量を表す信号Ｓｔを受信する。帯域幅制御ユニットＢＣＴＲは、許容最大データレートＳｔｌの指標を格納するレジスタＬＩＭをさらに含む。コンパレータＣＭＰはこれらの信号を比較し、制御信号ＣＴを用いてゲートＧを制御する。通常、ゲートＧはバスインターフェイスＢＩからのバス要求ＢＲＩを信号ＢＲＯとしてバスアービタへ送り、バスアービタは、バスが利用可能であるならば、肯定応答信号ＡＣＫで応答する。しかし、バスインターフェイスＢＩを介してシステムバスへ転送された平均データ量Ｓｔａが許容最大データレートＳｔｌを上回るならば、制御信号ＣＴはゲートＧにバス要求信号ＢＲＩを遮断させる。その場合、要求ＢＲＯはアービタによって受信されず、さらなるデータ伝送は、平均値Ｓｔａが許容値Ｓｔｌ未満の値に減少するまで阻止される。他方において、別の装置、たとえば、高い優先順位を有するＣＰＵがバスを占有しているために、システムバスＳＢがある程度の時間に亘って利用できない状況が起こるならば、転送された平均データ量Ｓｔａは実質的に許容値Ｓｔｌより低い。その場合、コプロセッサＣＯＰは、平均値Ｓｔａが許容値Ｓｔｌに再び到達するまでデータ転送を一時的に増大する機会を有する。
【００２２】
上記の実施形態は発明を限定するのではなく例証すること、および、当業者は特許請求の範囲の意図を逸脱することなく多数の代替的な実施形態を設計し得ることに注意すべきである。請求項において、括弧内に記載された参照符号は請求項を制限するものとして解釈されるべきでない。語句「含む（ｃｏｍｐｒｉｓｉｎｇ）」は請求項に列挙されていない要素またはステップの存在を排除しない。要素の前に置かれた冠詞「ａ」または「ａｎ」は複数個のこのような要素の存在を排除しない。本発明は、複数の別個の要素を含むハードウェアを用いて、および、適切にプログラミングされたコンピュータを用いて実施される。複数の手段を列挙する装置クレームにおいて、これらの手段のうちの幾つかは、全く同一のハードウェアの要素によって具現化可能である。ある特定の手段が相互に異なる従属請求項において引用されるという単なる事実は、これらの手段の組み合わせが有利になるように使用できないことを示すものではない。
【図面の簡単な説明】
【００２３】
【図１】本発明によるデータ処理システムの一実施形態を表す図である。
【図２】本発明によるデータ処理システムの別の実施形態を表す図である。
【図３】帯域幅制御ユニットの一実施形態を表す図である。
【図１】
2007500392.tif 000003
【図２】
2007500392.tif 000004
【図３】
2007500392.tif 000005
【国際調査報告】
2007500392.tif 000006
2007500392.tif 000007
2007500392.tif 000008