(57)【要約】一実施形態では、システムは、メモリキャッシュを内蔵するメモリコントローラ、及び、ディスプレイを制御するように構成されたディスプレイコントローラを搭載する。本システムは、表示されている画像が本質的に静的であることを検出するように構成することができる。そして、本システムは、ディスプレイコントローラに、ソースフレームバッファデータに対するメモリキャッシュの割当を要求させるように、構成することができる。いくつかの実施形態では、システムは更に、アイドル画面ケースの間に、メモリキャッシュがシャットダウンすること、又は、その有効サイズを縮小することを防止するように、メモリキャッシュの電力管理構成を変更してもよい。これによって、フレームバッファデータは、キャッシュを保持することができる。ディスプレイが動的に変化している時間の間は、フレームバッファデータを、メモリキャッシュに格納することはできず、電力管理構成により、メモリキャッシュのシャットダウン／サイズ縮小が可能となり得る。
2016524745.tif 000002
【特許請求の範囲】
【請求項１】
システムの表示装置に関するアイドル画面を検出する工程と、
前記アイドル画面の検出に応答して、システム内のメモリキャッシュへのフレームデータのキャッシングを有効にする工程であって、フレームデータのキャッシングは、前記アイドル画面が検出されない間は無効にされ、前記メモリキャッシュはメモリシステムに接続されるとともに、前記メモリシステムでアクセスされるデータをキャッシュするように構成され、前記メモリキャッシュはメモリ操作に応答して、前記メモリシステムにアクセスする前に、ヒットがないか前記メモリキャッシュがチェックされる工程と、
を有することを特徴とする、方法。
【請求項２】
前記アイドル画面の検出に応答して、前記メモリキャッシュの電力管理構成を変更する工程を更に含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記変更する工程は、前記メモリキャッシュでのキャッシュ電源切断を無効にする工程を含むことを特徴とする、請求項２に記載の方法。
【請求項４】
前記変更する工程は、メモリキャッシュサイズの削減を無効にする工程を含むことを特徴とする、請求項２又は３に記載の方法。
【請求項５】
前記アイドル画面の終了を検出する工程と、
前記終了を検出する工程に応答して、前記メモリキャッシュへの前記フレームデータのキャッシングを無効にする工程と、
を更に含むことを特徴とする、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記終了の検出に応答して、
前記メモリキャッシュでのキャッシュ電源切断を有効にする工程と、
メモリキャッシュサイズの削減を有効にする工程と、
を更に含むことを特徴とする、請求項５に記載の方法。
【請求項７】
前記終了を検出する工程は、前記システムの少なくとも１つの構成要素が、電源オンされようとしていることを検出する工程を含むことを特徴とする、請求項５又は６に記載の方法。
【請求項８】
前記終了を検出する工程は、グラフィクス装置が電源オンを要求していることを検出する工程を含む、ことを特徴とする、請求項５から７のいずれか一項に記載の方法。
【請求項９】
前記システムの１つ以上のプロセッサに関するウェイク／スリープイベントをフィルタ処理する工程と、
前記フィルタ処理されたウェイク／スリープイベントが、前記プロセッサが潜在的にアクティブであることを示すことに応答して、前記終了を検出する工程と、
を更に含むことを特徴とする、請求項５から８のいずれか一項に記載の方法。
【請求項１０】
メモリシステムと、
前記メモリシステムに接続され、前記メモリシステムでアクセスされるデータをキャッシュするように構成されたメモリキャッシュであって、メモリ操作に応答して、前記メモリシステムにアクセスする前にヒットがないかチェックされるメモリキャッシュと、
前記メモリキャッシュ及び前記メモリシステムに接続されたディスプレイコントローラであって、表示装置に画像を表示するために、前記メモリシステムに記憶される少なくとも１つのフレームバッファを読み出すためのメモリ操作を生成するように構成され、使用中に前記表示装置の前記画像がアイドルであることに応答して前記メモリキャッシュへの割当を要求するようにプログラムされるディスプレイコントローラと、を有することを特徴とする、装置。
【請求項１１】
前記ディスプレイコントローラは、使用中に前記表示装置の前記画像が動的であることに応答して、前記メモリキャッシュへの割当を要求しないようにプログラムされることを特徴とする、請求項１０に記載の装置。
【請求項１２】
前記表示装置の前記画像は、Ｎ個の連続した静的フレームを検出することに応答してアイドルであると検出され、Ｎは１より大きい整数であり、前記Ｎ個の連続した静的フレームが検出されなければ、前記画像は動的であると検出されることを特徴とする、請求項１０又は１１に記載の装置。
【請求項１３】
前記静止画像及び前記動的画像を検出することに応答して、前記メモリキャッシュの電力管理構成が変更されることを特徴とする、請求項１１又は１２に記載の装置。
【請求項１４】
前記電力管理構成は、前記静止画像に応答して、キャッシュの電源切断を無効にするように変更されることを特徴とする、請求項１３に記載の装置。
【請求項１５】
前記電力管理構成は、前記静止画像に応答して、キャッシュの自動サイズ変更を無効にするように変更されることを特徴とする、請求項１３又は１４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路、表示装置及びキャッシュを含むデジタルシステムの分野に関する。
【背景技術】
【０００２】
さまざまな種類のデジタルシステムは、ユーザが機器と対話するためのディスプレイを含むか、又はディスプレイに接続されることが多い。ディスプレイは機器に組み込まれてもよい。組み込み型ディスプレイの例には、さまざまなスマートフォン、タブレットコンピュータ、又は他の携帯情報端末におけるタッチスクリーンが含まれる。組み込み型ディスプレイの別の例は、蓋に画面を有するラップトップである。ディスプレイはまた、ケーブルによって機器に接続されてもよい。外付けディスプレイの例には、ユーザの前の机の上に存在する独立したディスプレイを有するさまざまなデスクトップコンピュータ及びワークステーションが含まれる。デスクトップコンピュータの中には、組み込み型ディスプレイを有するものもある（例えば、アップル社のさまざまなｉＭａｃ（登録商標）コンピュータ）。ディスプレイは、システム及びシステム上で稼働しているアプリケーションと対話するために見ることのできる視覚的インタフェースを提供する。ディスプレイが、システムへ入力するためのユーザインタフェースも提供する場合（例えば、タッチスクリーン）もある。他のユーザ入力デバイス（例えばキーボード、マウス又は他のポインティング機器など）がさらに含まれてもよい。
【０００３】
ある期間にわたって表示されている画像は、実質的に静止画像である場合が多い。例えば、ユーザがディスプレイ上の電子ブックを読んでいる場合、ユーザがページを読み終えるまで、ディスプレイは、テキストのそのページを静的に表示しているであろう。動画が一時停止されているとき、一時停止が有効な間は画像は変化しないであろう。ユーザがウェブページを閲覧しているときもまた、ユーザはコンテンツに没頭していて、画像は静止しているかもしれない。表示されている静止画像に、ほとんどあるいはまったく変更がない場合、画面の各リフレッシュサイクルで画像の取り込みに消費されるメモリ帯域幅は、帯域幅と消費電力の双方で無駄となる恐れがある。
【発明の概要】
【０００４】
一実施形態においてシステムは、メモリキャッシュを含むメモリコントローラと、ディスプレイを制御するように構成されたディスプレイコントローラを有する。システムは、表示中の画像が本質的に静的であることを検出するように構成されてよく、また、ディスプレイコントローラに、メモリキャッシュ内にソースフレームバッファデータ用の割り当てを要求させるように構成されてよい。フレームバッファデータ（又は、フレームバッファデータの少なくとも一部）をメモリキャッシュにキャッシュすることにより、そうしない場合に外部メモリインタフェースに消費されうる電力を節約することができる。いくつかの実施形態では、システムは更に、フレームバッファデータがキャッシュされ続けるように、アイドル画面ケースの間にメモリキャッシュがシャットダウンしたり、その有効サイズを縮小したりしないように、メモリキャッシュ内の電力管理構成を変更してもよい。表示された画像が動的に変化している間、フレームバッファデータはメモリキャッシュにキャッシュされず、電力管理構成は、メモリキャッシュのシャットダウン／サイズ縮小を許してもよい。
【０００５】
以下の詳細な説明は、添付の図面について言及しており、次に、これらの図面について簡単に述べる。
【図面の簡単な説明】
【０００６】
【図１】システムオンチップ（ＳＯＣ）、メモリ、画像センサ及び表示装置を含むシステムの一実施形態のブロック図である。
【図２】動的表示状態における本システムの一実施形態の動作を例示するフローチャートである。
【図３】アイドル表示状態における本システムの一実施形態の動作を例示するフローチャートである。
【図４】システムの一実施形態で実行することができるさまざまなソフトウェアモジュールのブロック図である。
【図５】図４に示されるＰＭＧＲドライバの一実施形態の動作を例示するフローチャートである。
【図６】ＣＰＵフィルタの一実施形態を例示する図である。
【図７】ＣＰＵフィルタの一実施形態の動作を例示するフローチャートである。
【図８】ＣＰＵフィルタに応答するＰＭＧＲドライバの一実施形態の動作を例示するフローチャートである。
【図９】コンピュータアクセス可能な記憶媒体の一実施形態のブロック図である。
【図１０】図１に示されるＳＯＣを含むシステムの別の実施形態のブロック図である。
【発明を実施するための形態】
【０００７】
本発明は種々の変更及び代替的な形態を受け入れる余地があるが、その特定の諸実施形態が図面には例として示されており、本明細書において詳細に説明されることになる。しかし、図面及びそれらに対する詳細な説明は、本発明を、開示されている特定の形態に限定することを意図されているのではなく、逆にその意図は、添付の請求項によって画定されている通りの本発明の趣旨及び範囲内に入る全ての変更、均等物及び代替物を範囲に含むことを理解されたい。本明細書で使用される見出しは、構成目的のみに過ぎず、説明の範囲を制限するために使用されることを意味するものではない。本出願全体を通じて使用されるとき、「〜してもよい（may）」という語は、義務的な意味（すなわち、〜なければならない（must）を意味する）ではなく、許容的な意味で使用される（すなわち、〜する可能性を有していることを意味する）。同様に、「〜を含む（include, includes, including）」という語は、〜を含むことを意味し、〜に限定されない。
【０００８】
種々のユニット、回路、又はその他の構成要素は、タスク又はタスク群を実行する「〜ように構成される（configured to）」と説明される場合がある。このような文脈において、「〜ように構成される」とは、動作時にそのタスク又はタスク群を実行する「回路機構を有する」ことを広く意味する構造の広義の表現である。それゆえ、ユニット／回路／構成要素は、たとえ、そのユニット／回路／構成要素が現在は作動していなくても、タスクを実行するように構成することができる。概して、「〜するように構成される（configured to）」に対応する構造を形成する回路機構は、操作を実施するために実行可能なプログラム命令を記憶するハードウェア回路及び／又はメモリを含んでもよい。メモリは、スタティックランダムアクセスメモリ若しくはダイナミックランダムアクセスメモリ等の揮発性メモリ、及び／又は光ディスク記憶装置若しくは磁気ディスク記憶装置、フラッシュメモリ、プログラム可能読出し専用メモリ等の不揮発性メモリ等を含むことができる。同様に、さまざまなユニット／回路／構成要素は、説明の便宜上、タスク又はタスク群を実行すると記述される場合がある。かかる説明は、「〜ように構成される」という文言を含むと解釈されるべきである。１つ以上のタスクを実行するように構成されるユニット／回路／構成要素と表現することは、そのユニット／回路／構成要素が米国特許法第１１２条第６段落に基づいて解釈されないようにすることを明示的に意図している。
【０００９】
本明細書は、「一実施形態」又は「ある実施形態」に対する参照を含む。本明細書で明示的に否定しない限り、本発明の特徴の任意の組合せを含む実施形態が全般的に意図されているが、「一実施形態で」又は「ある実施形態で」のフレーズの形態は、同じ実施形態を必ずしも指すのではない。特定の機能、構造又は特性は、本開示に整合する任意の好適な方法で組み合わせ得る。
【００１０】
図１を次に参照すると、ＳＯＣ  １０の一実施形態のブロック図が、メモリ１２、１つ以上の画像センサ２６及び１つ以上のディスプレイ２０に接続された状態で、示されている。名前が暗示するように、ＳＯＣ  １０の構成要素は、集積回路「チップ」として単一の半導体基板上に集約することができる。いくつかの実施形態では、構成要素は、システムの２以上の個別のチップ上に、実装することができる。しかし、本明細書では、ＳＯＣ  １０を例として用いる。例示した実施形態では、ＳＯＣ  １０の構成要素として、以下が挙げられる。中央処理装置（ＣＰＵ）複合体１４、表示パイプ１６、周辺構成要素１８Ａ〜１８Ｂ（より簡単には、「周辺装置」）、メモリコントローラ２２、画像信号プロセッサ（ＩＳＰ）２４、グラフィック処理ユニット（ＧＰＵ）３４、電力マネージャ（ＰＭＧＲ）３２、及び通信ファブリック２７である。構成要素１４、１６、１８Ａ〜１８Ｂ、２２、２４、３２、及び３４は、通信ファブリック２７に全て接続されてよい。メモリコントローラ２２は、使用中、メモリ１２に接続されてよい。同様に、ＩＳＰ  ２４は、使用中、画像センサ２６に接続されてよい。そして、表示パイプ１６は、使用中、ディスプレイ２０に接続されてよい。。例示した実施形態では、ＣＰＵ複合体１４には、１つ以上のプロセッサ２８及びレベル２（Ｌ２）キャッシュ３０が含まれる。例示した実施形態では、メモリコントローラはメモリキャッシュ３６を含む。メモリコントローラ２２及び表示パイプ１６の双方は、それぞれ、構成レジスタ３８Ａ及び３８Ｂを内蔵することができる。他の構成要素もまた、図１に示されていないが、同様に構成レジスタを内蔵することができる。メモリ１２は、使用時に、フレームバッファ４０Ａ及び必要に応じてフレームバッファ４０Ｂを含む、１つ以上のフレームバッファを記憶することができる。
【００１１】
表示パイプ１６は、ディスプレイ２０上に表示する１つ以上の静止フレーム、及び／又は、１つ以上のビデオシーケンスを処理するハードウェアを内蔵することができる。通常、原静止フレーム又は原映像シーケンスフレームのそれぞれに関して、表示パイプ１６は、読出しメモリ操作（メモリコントローラ２２により、メモリ１２からフレームを表すデータを読み込む）を生成するように構成することができる。例えば、各フレームは、メモリ１２のフレームバッファ４０Ａ〜４０Ｂに記憶することができる。そして、表示パイプ１６は、メモリ１２のフレームバッファ４０Ａ〜４０Ｂへのポインタによって、フレームバッファからフレームを読み込むように、プログラムすることができる。各フレームは、表示される画像を記述する画像データ（例えば画素、色成分、アルファブレンディング値その他）を含むことができる。
【００１２】
表示パイプ１６は、画像データに対して任意の種類の処理を実行するように構成することができる。一実施形態では、表示パイプ１６は、静止フレームをスケーリングし、そして、映像シーケンスのフレームに関して、ディザ処理し、スケーリングし、及び／又は、色空間変換を実行するように構成することができる。表示パイプ１６は、静止フレーム及び映像シーケンスフレームを混合して、表示用の出力フレームを生成するように構成することができる。表示パイプ１６はまた、より一般的に、表示制御ユニットと呼ぶことができる。表示制御ユニット（又は、ディスプレイコントローラ）は、通常、表示用のフレーム（静止フレーム及び／又は映像シーケンスフレームなどの１つ以上のソースからのフレーム）を準備するように構成された任意のハードウェアとすることができる。表示パイプ１６により実行されるさまざまな処理は、一般的に合成(compositing)と呼ぶことができる。合成は、さまざまな画像に由来する画像データを組み合わせて出力画像を生成する任意の処理を含みうる。
【００１３】
メモリコントローラ２２は一般的に、ＳＯＣ  １０の他の構成要素からのメモリ操作を受信して、メモリ操作を完了するためにメモリ１２にアクセスする回路を含みうる。メモリコントローラ２２は、任意の種類のメモリ１２にアクセスするように構成することができる。例えば、メモリ１２は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、その他）ＤＲＡＭを含むシンクロナスＤＲＡＭ（ＳＤＲＡＭ）などのダイナミックＲＡＭ（ＤＲＡＭ）とすることができる。ＤＤＲ  ＤＲＡＭの低消費電力／モバイルバージョンを、サポートすることができる（例えばＬＰＤＤＲ、ｍＤＤＲ、その他）。
【００１４】
例示された実施形態では、メモリコントローラ２２は、最近アクセスされたメモリデータを記憶するメモリキャッシュ３６を含むことができる。例えば、ＳＯＣの実施において、メモリキャッシュ３６は、メモリ１２が再びすぐにアクセスされることが予期される場合に、メモリ１２に対するデータの再アクセスを回避することによってＳＯＣの電力消費を低減することができる。したがって、メモリ１２にアクセスする前に、メモリ操作のヒット／ミスを検出するために、メモリコントローラ２２により、メモリキャッシュ３６をアクセスすることができる。メモリ操作が、メモリキャッシュ３６にヒットする場合には、メモリ１２にアクセスしなくてもよい。相互接続ファブリック２７は、メモリキャッシュ３６に記憶する候補を特定するために、メモリ操作と共にキャッシュヒントの送信をサポートすることができる。したがって、メモリキャッシュ３６は、メモリにアクセスするＳＯＣ  １０の任意の構成要素に対応するデータを記憶することができる。メモリキャッシュ３６は、特定の構成要素だけに貢献するＬ２キャッシュ３０又はプロセッサ２８内のキャッシュなどのプライベートキャッシュとは対照的に、システムキャッシュと呼ぶことができる場合もある。更に、いくつかの実施形態では、システムキャッシュはメモリコントローラ２２の中に配置する必要はない。
【００１５】
フレームバッファ４０Ａ〜４０Ｂのデータのようなフレームデータの場合、それを消費するのは表示パイプ１６である。フレームは通常、表示パイプ１６が新しいフレームを開始する前に、表示される次の画像に変更されうるため、通常、あるフレームバッファは、表示パイプ１６により一度読み出されるであろう。例えば、毎秒３０又は６０フレームのフレームレートが多用される。したがって、フレームは１秒につき３０又は６０回読み出される。その間に、フレームデータの発生源（例えば、ビデオデコーダ、ＧＰＵ  ３４、その他）は、表示される新しいフレームを生成している可能性があり、異なるメモリ場所にフレームデータを書き込んでいる可能性がある。次のフレーム読出しが始まるとき、フレームは異なるメモリ場所から読み出される可能性がある。したがって、表示されている画像がフレームごとに変化している場合、フレームデータのキャッシュ動作は、メモリキャッシュ３６で無効にすることができる。フレームデータが概ね時間と共に変化している場合を、動的表示又は動的表示状態と呼ぶことができる。ディスプレイにより表示されている画像は、動的と呼ぶことができる。
【００１６】
一方、複数の連続したフレームが静的なコンテンツを有する場合があり得る。概ね、静的なコンテンツは、フレームごとに変化しないコンテンツ（例えば、各ピクセルがフレームごとに同じもの）のことか、又は閾値より変化量が少ないので、前のフレームが現在のフレームに近いコンテンツのことを言うことができる。静的なコンテンツを有する複数の連続したフレームを検出することにより、アイドル表示状態又はアイドル表示ケース（又は、アイドル画面オンケース（表示画面がまだオンであり、静止画像を表示しているので））を特定することができる。アイドル表示ケースは、表示されるビジュアルコンテンツが一定時間変化しないか、又は、ほとんど変化しないが、画面はオンである場合、としてもよい。ユーザが、電子ブック、ウェブページ又は電子メールなどの表示データを閲覧している可能性がある。又は、ユーザがビデオを中断した可能性がある。フレームデータが概ね静的である場合は、アイドル表示又はアイドル表示状態と呼び、ディスプレイにより表示されている画像は、アイドル又は静的と呼ぶことができる。
【００１７】
アイドル表示ケースでは、表示パイプ１６はやはりフレームデータの唯一の需要先である可能性がある。しかし、同じフレームデータは、複数回読み出される可能性がある。したがって、アイドル表示ケースに関してキャッシュを有効にすることは、望ましいであろう。より詳しくは、表示パイプ１６は、メモリキャッシュ３６のキャッシングを有効又は無効にするようにプログラム可能（例えば、構成レジスタ３８Ｂにおいて）とすることができる。キャッシュが有効にされる場合には、表示パイプ１６は、データがメモリキャッシュ３６に割り当てられるべきであることを示すキャッシュヒントと共に、フレームバッファ４０Ａ〜４０Ｂを読み込むメモリ読出し動作を送信するように構成することができる。いくつかの実施形態では、１つを超えるフレームが出力フレームを生成するために合成されている場合には、最も多くのフレームデータを収容するフレームをキャッシュし（キャッシュ割り当てヒントを含むことにより）、他のフレームはキャッシュしないことができる。他の実施形態では、複数のフレームがメモリキャッシュ３６に収まることができ、その複数のフレームをキャッシュすることができる。他の実施形態では、フレームの一部だけが、メモリキャッシュ３６に収まることができる。そして、表示パイプ１６は、フレームの一部に関するキャッシュ割り当てヒントを提供するように、構成することができる。一方、キャッシングが無効の場合には、表示パイプ１６は、キャッシングしないことを示すキャッシュヒントを提供することができる。上述のように、本キャッシングは、動的表示ケースでは、無効にすることができる。一実施形態では、アイドル表示ケースは、メモリキャッシュ３６のキャッシングから恩恵をうけることができる他のメモリアクセス構成要素がオフであることを判定することを、更に含んでもよい。例えば、プロセッサ２８、ＧＰＵ  ３４、ＩＳＰ  ２４及び他のメディア装置は、キャッシングから恩恵をうけることができる。キャッシュからの恩恵をうけることができない他の構成要素、例えば、下記のようなインタフェースに対するさまざまなインタフェースコントローラは、オフである必要はない。Ｉ２ Ｃ（集積回路間通信（Inter-Integrated Circuit））、汎用非同期送受信回路（ＵＡＲＴ）、システムパケットインタフェース（ＳＰＩ）、その他。したがって、アイドル表示ケースには、少なくともメモリキャッシュ３６を用いる構成要素のサブセットがオフであること、表示パイプ１６／ディスプレイ２０がオンであること、及び表示された画像が静的であること、を含むことができる。
【００１８】
いくつかの実施形態では、メモリキャッシュ３６はさまざまな電力管理機能をサポートすることができる。電力管理機能は、構成レジスタ３８Ａをプログラムすることにより、制御することができる。電力管理機能は、動的表示状態からアイドル表示状態への変化を検出することに応答して、変更することができる。例えば、たとえ表示パイプ１６が、アイドル画面状態で繰り返しフレームデータを読み出すことができるとしても、その読出しは、メモリキャッシュ３６の周波数で、多くのクロックサイクルにより分離される可能性がある。更に、上述のように、ＳＯＣ  １０の多くの他の構成要素は、アイドル表示状態で、アイドルである可能性がある。例えば、実行中のコンテンツ生成がないので、ＧＰＵ  ３４、ＩＳＰ  ２４、ビデオ符号器／復号器その他などの他のオーディオ／ビデオ機器は、アイドルである可能性がある。したがって、システムは、メモリコントローラ２２／メモリキャッシュ３６に対して、相対的にアイドルであるように見える可能性があり、これによって、電力管理機能を起動させることができる。本機能は、例えば、キャッシュの一部の電源をおとすこと、キャッシュの電源を切ることによりキャッシュの有効サイズを縮小すること、を含んでもよい。アイドル表示状態の間に、メモリコントローラ２２は、これらの電力管理機能を無効にするようにプログラムすることにより、メモリキャッシュ３６は、電源が入った状態で、フルサイズのままで、フレームデータを記憶することができる。動的表示状態の間、メモリコントローラ２２は電力管理機能を有効にするようにプログラムすることができる。
【００１９】
一実施形態では、プロセッサ２８により実行されるソフトウェアは、アイドル表示状態及び動的表示状態を検出して、構成レジスタ３８Ａ〜３８Ｂを上述したようにプログラムすることができる。本ソフトウェアは、ＰＭＧＲ  ３２に対応する電力マネージャドライバ（ＰＭＧＲドライバ）、表示パイプ１６に対応するディスプレイドライバ、及び、メモリコントローラ２２／メモリキャッシュ３６に対応するメモリコントローラドライバ、を含んでもよい。一実施形態の更なる詳細は、以下により詳細に述べる。本ソフトウェアは、プロセッサ２８による取出し及び実行のためにメモリ１２に記憶することができ、同様に、Ｌ２キャッシュ３０及び／又はプロセッサ２８内にキャッシュすることができる。本ソフトウェアはまた、フラッシュメモリ、固体ディスク記憶装置、磁気又は光学磁気ディスク装置その他などの、システムの不揮発性メモリにも記憶することができる。
【００２０】
ディスプレイ２０は、任意の種類の視覚的表示装置とすることができる。ディスプレイとして、例えば、スマートフォン、タブレットその他などのモバイル機器用のタッチスクリーン式のディスプレイを挙げることができる。さまざまなディスプレイ２０として、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、プラズマ、ブラウン管（ＣＲＴ）、その他を挙げることができる。ディスプレイは、ＳＯＣ  １０を含むシステム（例えば、スマートホン又はタブレット）に一体化することができるか、及び／又は、コンピュータモニタ、テレビジョン又は他の機器などの、分離して格納される機器とすることができる。
【００２１】
ＩＳＰ  ２４は、画像センサ２６からの画像センサデータを受信するように構成することができる。そして、例えば、ディスプレイ２０に表示するのに好適でありえる画像フレームを生成するために、データを処理するように構成することができる。画像センサ２６として、（例えば電荷結合デバイス（ＣＣＤ）、相補形ＭＯＳ（ＣＭＯＳ）センサその他）などのカメラを挙げることができる。
【００２２】
ＧＰＵ  ２４は、１つ以上のＧＰＵプロセッサを含むことができる。そして、ＧＰＵ用のローカルキャッシュ、及び／又はＳＯＣ  １０の他の構成要素とのインタフェース（例えば通信ファブリック２７とのインタフェース）に関するインタフェース回路を更に含むことができる。概ね、ＧＰＵプロセッサは、物体をフレームにレンダリングするグラフィックパイプラインの動作を実行するために最適化されたプロセッサとすることができる。例えば、この動作として、変換及び照明、三角形アセンブリ、ラスタ化、陰影付け処理、テクスチャ処理、その他を挙げることができる。
【００２３】
ＣＰＵ複合体１４として、ＳＯＣ  １０のＣＰＵとしての機能を果たす１つ以上のＣＰＵプロセッサ２８を挙げることができる。システムのＣＰＵとして、オベレーティングシステムなどのシステムの主制御ソフトウェアを実行するプロセッサ（単数又は複数）が挙げられる。全般的には、使用時にＣＰＵにより実行されるソフトウェアは、システムの他の構成要素を制御して、システムの所望の機能を実現することができる。プロセッサ２８により実行されるソフトウェアとして、上述した、及び以下でより詳細に記載する、さまざまなドライバを挙げることができる。プロセッサ２８は、アプリケーションプログラムなどの他のソフトウェアも、更に実行することができる。アプリケーションプログラムは、ユーザ機能を提供することができ、より低レベルの機器制御に関して、オベレーティングシステムに依存してもよい。したがって、プロセッサ２８はまた、アプリケーションプロセッサと呼ぶことができる。ＣＰＵ複合体１４は、Ｌ２キャッシュ３０、及び／又はシステムの他の構成要素とのインタフェース（例えば、通信ファブリック２７とのインタフェース）などの他のハードウェアを更に含むことができる。
【００２４】
周辺装置１８Ａ〜１８Ｂは、ＳＯＣ  １０に含まれる更なるハードウェア機能の任意の集合とすることができる。例えば、周辺装置１８Ａ〜１８Ｂとして、ビデオ符号器／復号器、スケーラ、回転子、ブレンダその他などのビデオ周辺装置を挙げることができる。周辺装置として、マイク、スピーカ、マイク及びスピーカとのインタフェース、音声プロセッサ、ディジタル信号処理プロセッサ、ミキサ、その他、などのオーディオ周辺装置を挙げることができる。周辺装置として、ＳＯＣ  １０の外部とのさまざまなインタフェース用のインタフェースコントローラ（例えば、周辺装置１８Ｂ）を挙げることができる。このさまざまなインタフェースは、ユニバーサルシリアルバス（ＵＳＢ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）を含む周辺装置相互接続（ＰＣＩ）、シリアル及びパラレルポート、その他、などのインタフェースである。周辺装置として、メディアアクセスコントローラ（ＭＡＣ）などのネットワーク周辺装置を挙げることができる。ハードウェアの任意の集合を挙げることができる。
【００２５】
通信ファブリック２７は、ＳＯＣ  １０の構成要素間で通信する、任意の通信相互接続及びプロトコルとすることができる。通信ファブリック２７は、共有バス構成、クロスバー構成、及びブリッジを有する階層的なバス、を含むバスベースとすることができる。通信ファブリック２７は、パケットベースとすることもでき、ブリッジ、クロスバー、ポイントツーポイント又は他の相互接続による階層構成とすることができる。
【００２６】
ＰＭＧＲ  ３２は、ＳＯＣ  １０の他の構成要素の電源投入及び電源切断を制御するように構成することができる。即ち、ＰＭＧＲ  ３２は、他の構成要素に電源を投入及び電源を切断させることができる。ＰＭＧＲ  ３２は、直接ソフトウェアの制御下とすることができ（例えば、ソフトウェアが構成要素の電源投入や電源切断を直接要求することができる）、及び／又は、ＰＭＧＲ  ３２は、ＳＯＣ  １０を監視するように構成することができる。そして、さまざまな構成要素が、いつ電源を投入すべきか又はいつ電源を切断すべきかを判定することができる。ＰＭＧＲ  ３２は、異なる電力状態（例えば、電圧／周波数の組合せ）の間で構成要素を移行させるように構成することができる。ＰＭＧＲ  ３２は、更に、ＳＯＣ  １０の構成要素のために、外部パワーコントローラにさまざまな電圧振幅を要求するように、構成することができる。
【００２７】
ＳＯＣ  １０の構成要素の数（及び、ＣＰＵ複合体１４の中などの、図１に示されるもののサブ構成要素の数）は、実施形態ごとに異なる可能性があることに留意されたい。各構成要素／サブ構成要素について、図１に示される数よりも多いか、又は、少ない数になる可能性がある。
【００２８】
次に図２を参照すると、動的表示状態における図１に示されるシステムの一実施形態の動作（アイドル表示ケースを検出して、アイドル表示状態に移行する動作）を例示するフローチャートが示されている。動的表示状態に生じる他の動作は示されていない。理解を容易にするため、ブロックは特定の順序で示されているが、他の順序を用いてもよい。一実施形態では、図２の動作は、ソフトウェアに実装してもよい。したがって、このソフトウェアは、実行されると、図２に示される動作を実施する命令を含むことができる。他の実施形態は、ハードウェア、並びに／又は、ハードウェア及びソフトウェアの組合せで、図２に示される機能を実現することができる。
【００２９】
動的表示状態において、システムはアイドル表示ケースを検出することを監視することができる。アイドル表示は、以下のさまざまな方法で検出することができる。連続したフレームの変化に関して分析することによる方法、同じフレームバッファが連続したフレームに関して使用されていることを注意深く観察することによる方法、その他の方法、である。更に、いくつかの実施形態では、他の構成要素（ＣＰＵ複合体１４、ＧＰＵ  ３４、ＩＳＰ  ２４、及び／又は、周辺装置１８Ａ〜１８Ｂなど）のその状態は、アイドル表示ケースが検出されるかどうかにおいて、考慮に入れることができる。アイドル表示ケースが検出される（判定ブロック５０の「はい」のレグ）場合には、システムは、フレームバッファ読出しに対するキャッシュの割当を要求するように、表示パイプ構成レジスタ３８Ｂをプログラムする（ブロック５２）ことができる。別の見方をすれば、フレームデータのキャッシングを有効にすることができる。一実施形態では、通信ファブリック２７上で送信されるメモリ操作は、キャッシュヒントを含むことができる。そして、表示パイプは、キャッシングが有効な場合に、キャッシュ割当を指示するキャッシュヒントを用いることができる。システムは、更に、メモリキャッシュ３６の電力管理制御を変更するように、メモリコントローラ構成レジスタ３８Ａをプログラムする（ブロック５４）ことができる。具体的には、キャッシュ３６の電源切断を無効にする（メモリキャッシュ３６がアイドル表示状態の間に「アウェイク」状態を維持することを確実にする）ことができる。キャッシュサイズ自動変更機能（キャッシュの一部の電源を切断することにより、キャッシュ３６の有効サイズを縮小するために用いることができる）もまた、キャッシュ３６が、アイドル表示ケースにおいて、最大寸法を維持することを確実にするために、無効にすることができる。システムは、アイドル表示状態に移行する（ブロック５６）ことができる。
【００３０】
図３は、アイドル表示状態における図１に示されるシステムの一実施形態の動作（動的表示ケースを検出して、動的表示状態に移行する）を例示するフローチャートである。理解を容易にするため、ブロックは特定の順序で示されているが、他の順序を用いてもよい。アイドル表示状態に生じる可能性がある他の動作は示されていない。一実施形態では、図３の動作は、ソフトウェアに実装してもよい。したがって、このソフトウェアは、実行されると、図３に示される動作を実施する命令を含むことができる。他の実施形態は、ハードウェア、並びに／又は、ハードウェア及びソフトウェアの組合せで、図３に示される機能を実現することができる。
【００３１】
アイドル表示状態において、システムは動的表示ケースを検出することを監視することができる。アイドル表示は、以下のさまざまな方法で検出することができる。連続したフレームの変化に関して分析することによる方法、連続したフレームに関して使用されるフレームバッファに変更が生じることを注意深く観察することによる方法、その他の方法、である。更に、いくつかの実施形態では、他の構成要素（ＣＰＵ複合体１４、ＧＰＵ  ３４、ＩＳＰ  ２４及び／又は周辺装置１８Ａ〜１８Ｂなど）のその状態は、動的表示ケースが検出されるかどうかを考慮に入れることができる。動的表示ケースが検出される（判定ブロック６０の「はい」のレグ）場合には、システムは、フレームバッファ読出し（ブロック６２）に対するキャッシュの割当を要求しないように、表示パイプ構成レジスタ３８Ｂをプログラムすることができる。一実施形態では、キャッシングを行わないことを指示するキャッシュヒントがサポートされており、動的表示状態において、フレームバッファデータ読出しのために用いることができる。別の見方をすれば、フレームデータのキャッシングを無効にすることができる。システムは、更に、メモリキャッシュ３６（ブロック６４）の電力管理制御を変更するように、メモリコントローラ構成レジスタ３８Ａをプログラムすることができる。具体的には、キャッシュ３６の電源切断（キャッシュスリープ）を有効にすることができる。そして、キャッシュサイズ自動変更機能（キャッシュの一部の電源を切断することにより、キャッシュ３６の有効サイズを縮小するために用いることができる）もまた、キャッシュ利用率が低い場合に有効となって、省電力が可能となる。システムは、動的表示状態（ブロック６６）に移行することができる。
【００３２】
図４は、アイドル表示状態／動的表示状態の判定及び管理の一実施形態に関与する可能性がある、さまざまなソフトウェアモジュールを例示するブロック図である。例示した実施形態は、以下のものを含む。ディスプレイドライバ７０、ＧＰＵドライバ７２、ＩＳＰドライバ７４、他のメディアドライバ７６、他の周辺装置ドライバ７８、ＣＰＵフィルタ８０、ＰＭＧＲドライバ８２、及びメモリコントローラドライバ８４、である。ＰＭＧＲドライバ８２は、フレームバッファオン／オフ状態８６、ディスプレイオン／オフ状態８７、及び他のオン／オフ状態８８を含んでもよい。ドライバ間の特定の通信は、図４に同様に例示されている。通常、図４に例示されるドライバは、使用時にメモリ１２に保存してもよく、使用時にプロセッサ２８上で実行してもよい。ドライバはまた、システムの不揮発性記憶媒体（例えば、ＳＯＣ  １０に接続されたフラッシュメモリ又は他の不揮発性メモリ）に記憶してもよい。
【００３３】
ＰＭＧＲドライバ８２は、ＳＯＣ  １０のさまざまな構成要素の電力状態を監視する責任を有することができる。そして、対応するドライバから、構成要素の電源を投入し切断する電源オン及び電源オフの要求を受信することができる。ＰＭＧＲドライバ８２は、構成要素の電源を投入し切断する（それぞれ、電源オン及び電源オフのイベントと呼ぶ）ように、ＰＭＧＲ  ３２と連携することができる。即ち、電源オンのイベントは、電源がオフである構成要素の電源をオンするイベント（電源が切断されている構成要素の電源を投入することとも呼ばれる）とすることができる。電源オフのイベントは、電源がオンである構成要素の電源をオフするイベント（電源が投入されている構成要素の電源を切断することとも呼ばれる）とすることができる。ＰＭＧＲ  ３２は、構成要素の電源を投入し切断するＳＯＣ  １０内のローカルな電源スイッチを制御する回路、並びに電源入力上でＳＯＣ  １０に供給されるさまざまな電圧レベルを要求する回路を内蔵することができる。いくつかの実施形態では、ＰＭＧＲ  ３２は、ハードウェアの監視に基づいて、自動的に構成要素の電源を投入し、切断するように構成することもできる。
【００３４】
したがって、実行すべきＧＰＵの業務があるとき、図４に例示するように、ＧＰＵドライバ７２は、ＧＰＵ  ３４の電源をオンするよう要求することができる。ＧＰＵドライバ７２は、オベレーティングシステム、及び／又はプロセッサ２８上でさまざまなレンダリング業務を実行するアプリケーションにより命令されることができる。同様に、ＧＰＵ  ３４が重要な業務を完了して、現時点で実行する更なる業務がない場合、ＧＰＵドライバ７２は、ＧＰＵ  ３４の電源をオフするよう要求することができる。
【００３５】
同様に、オベレーティングシステム／アプリケーションがいくつかの画像センサデータをキャプチャする必要があり、ＩＳＰ  ２４の電源がオフされている場合には、オベレーティングシステム／アプリケーションは、ＩＳＰドライバ７４にＩＳＰ  ２４の電源をオンするよう命令することができる。そして、ＩＳＰドライバ７４は、ＰＭＧＲドライバ８２に電源オンを要求することができる。これ以上キャプチャする画像データがないとき、ＩＳＰドライバ７４は、ＩＳＰ  ２４の電源をオフするよう要求することができる。他のメディアドライバ７６及び他の周辺装置ドライバ７８は、同様に、電源オン／オフ要求をＰＭＧＲドライバ８２に送信することができる。ディスプレイドライバ７０は、ディスプレイが切断中か又は停止中の場合、表示パイプの電源をオン／オフするよう要求する（図４のディスプレイオン／オフ要求）ことができる。
【００３６】
ＰＭＧＲドライバ８２は、さまざまな電源オン／オフ要求に応答して、ＰＭＧＲ  ３２が、要求された構成要素の電源を投入／切断するように、プログラムすることができ、対応する構成要素の電源オン／オフ状態をオン／オフ状態８８に記録することができる。ディスプレイオン／オフ状態８７は、ディスプレイドライバ７０からのディスプレイオン／オフ要求に対して更新することができる。いくつかの実施形態では、少なくともアイドル／動的ディスプレイケースを判定することに関して、ＰＭＧＲドライバ８２は、オンである対象の構成要素のカウントを維持するだけでよい。カウントが０に達するとき、アイドル／動的表示状態判定に影響を及ぼす全ての構成要素は、オフである可能性がある。ゼロ以外のカウントは、オンであるかかる構成要素の数を示す。
【００３７】
例示した実施形態では、フレームバッファもまた、構成要素として仮想化されており、オン／オフ状態８６にオン／オフであるとして記録される。ＰＭＧＲドライバ８２は、ディスプレイドライバ７０により送信されるＦＢオン／オフ要求から、フレームバッファのオン／オフ状態を記録するように構成することができる。このＦＢオン／オフ要求は、ディスプレイドライバ７０による静的なフレームの検出（図４のＮ静的フレーム７１）に基づいて、生成することができる。この実施形態では、ディスプレイドライバ７０は、静的なフレームを監視する責任を有することができ、そして、Ｎ個（Ｎは１より大きな整数）の連続した静的フレームを検出すると、通知することができる。Ｎは、いくつかの実施形態では、プログラム可能なパラメータとすることができる。Ｎ個の静的フレームを検出することに応答して、ディスプレイドライバ７０は、フレームバッファの電源をオフするよう要求する（図４のＦＢオン／オフ要求）ことができる。０個を含む、Ｎ個より少ない静的フレームが検出された場合には、ディスプレイドライバ７０は、フレームバッファの電源を投入することを要求することができる。フレームバッファオン／オフ要求、及びＳＯＣ  １０の他の構成要素のオン／オフ状態に基づいて、ＰＭＧＲドライバ８２は、アイドル／動的表示状態を検出することができる。検出したアイドル／動的表示状態に基づいて、ＰＭＧＲドライバ８２は、フレームバッファデータのキャッシングを有効／無効にしてもよい。（ここで、キャッシングの有効／無効は、表示パイプ１６をプログラムすることができるディスプレイドライバ７０に通知される。）そして、ＰＭＧＲドライバ８２は、キャッシュ電力管理制御を変更してもよい（この変更は、メモリコントローラ２２／メモリキャッシュ３６をプログラムすることができるメモリコントローラドライバ８４に通知される）。
【００３８】
より具体的には、いくつかの構成要素は、ディスプレイがアイドルであるかどうかに関係することができる。例えば、ＧＰＵ  ３４の電源がオンである場合には、それは、表示用の新しいフレームをレンダリングしている可能性がある。ＩＳＰ  ２４の電源がオンである場合には、すぐに表示される可能性がある画像データをキャプチャすることができる。アイドル／動的表示状態に同様に関係し得る他のメディア構成要素又は周辺構成要素の存在する可能性がある。また、ＣＰＵ複合体１４の状態は、アイドル／動的表示状態に関係する可能性がある。ＣＰＵの状態は、以下により詳細に説明するように、フィルタ処理することができる。ＳＯＣ構成要素の任意のサブセットは、アイドル／動的表示状態を判定する際に、考慮してもよい。更に、上述のように、いくつかの構成要素は、メモリキャッシュ３６を用いることから恩恵をうけることができる。そして、かかる構成要素がオンの場合には、アイドル表示状態は検出することができないので、フレームバッファデータが他の構成要素からのデータを置き換えることはない。
【００３９】
ディスプレイドライバ７０は、さまざまな方法でＮ個の静的フレームを検出することができる。例えば、表示パイプ１６は、静的フレームを検出するハードウェアサポートを含むことができる（例えば、フレームにわたる巡回冗長検査（ＣＲＣ）計算を比較してもよいし、又は、構成情報にわたるＣＲＣ計算を比較してもよい）。別の例として、ディスプレイドライバ７０は、表示パイプ１６に、フレームバッファの位置をプログラムすることができ、同じフレームバッファがＮ個の連続したフレームに用いられることを検出することができる。
【００４０】
ＣＰＵフィルタ８０は、プロセッサ２８のスリープ及びウェイクイベント（電源オフ及び電源オンのイベント）を監視することができる。そして、アイドル／動的表示ケースに関係する可能性がない一定のオン／オフイベントをフィルタ処理することができる。例えば、プロセッサ２８は、さまざまなシステム管理イベント（例えば、機器割り込み、システムが正しく動作していることを保証する周期的オペレーティングシステムコードの実行、及び、場合によっては、スレッドの実行を予定すること、その他）を処理するためにアウェイクすることができる。これらのイベントは、寿命が短い可能性がある（即ち、アウェイクイベントの後すぐにアイドルイベントが続き、プロセッサはスリープ状態に戻る）。ＣＰＵフィルタ８０は、ＣＰＵアクティブ時間対ＣＰＵアイドル時間を監視するために、ウェイク及びアイドルイベントに基づいて実行することができる。閾値量より少ない時間は、フィルタすることができる。ＣＰＵフィルタ８０は、アイドル／動的表示検出の目的上、プロセッサ２８の電源はオンと考えられるか否かを判定するための、対応するアクティブ／アイドルの指標をＰＭＧＲドライバ８２に提供することができる。一実施形態では、アクティブ／アイドルの指標は、アクティブ及びアイドルである確率とすることができる。
【００４１】
図５は、アイドル／動的表示検出に関する、ＰＭＧＲドライバ８２の一実施形態の動作を例示するフローチャートである。理解を容易にするため、ブロックは特定の順序で示されているが、他の順序を用いてもよい。一実施形態では、図５の動作は、ソフトウェアに実装してもよい。したがって、このソフトウェアは、実行されると、図５に示される動作を実施する命令を含むことができる。他の実施形態は、ハードウェア、並びに／又は、ハードウェア及びソフトウェアの組合せで、図５に示される機能を実現することができる。
【００４２】
ＰＭＧＲドライバ８２がドライバから電源オン要求を受信し（判定ブロック９０の「はい」のレグ）、かつ、ディスプレイがオン（ディスプレイオン／オフ状態８７がオン）であり（判定ブロック９２の「はい」のレグ）、かつ、アイドル／動的表示状態判定に影響を及ぼす他のリソースが全てオフである（判定ブロック９４の「はい」のレグ）場合には、ＰＭＧＲドライバ８２は、アイドル表示状態から動的表示状態に変化することができる。したがって、ＰＭＧＲドライバ８２は、表示パイプ１６のキャッシングを無効にして（ディスプレイドライバ７０に指示を送信することにより−−ブロック９６）、キャッシュスリープ／自動サイズ変更を有効にする（メモリコントローラドライバ８４に指示を送信することにより−−ブロック９８）ことができる。上述のように、いくつかの実施形態では、オンである他の構成要素の数を追跡することができるので、したがって、判定ブロック９４は、その数がゼロであるかどうかを判定することにより、実施することができる。したがって、判定ブロック９０の「はい」のレグ、判定ブロック９２の「はい」のレグ、及び、判定ブロック９４の「はい」のレグは、全体として、動的表示ケース判定の実施形態（図３の判定ブロック６０の「はい」のレグ）とすることができる。ＰＭＧＲドライバ８２はまた、要求された構成要素のオン処理を完了することができる（ブロック１００）。オン処理を完了することは、例えば、その構成要素の電源をオンするようにＰＭＧＲ  ３２をプログラムすること、及び、オン／オフ状態８８に「オン」と状態を記録すること、及び／又はアイドル／動的表示状態判定に関するオン構成要素の数を増加させること、を含むことができる。構成要素のサブセットがアイドル／動的表示ケースを判定するために監視される実施形態では、判定ブロック９０は、そのサブセットの構成要素に関する電源オン要求だけを考慮することができる。ＰＭＧＲドライバ８２がドライバから電源オン要求を受信し（判定ブロック９０の「はい」のレグ）、かつ、ディスプレイが現在オンではない（判定ブロック９２の「いいえ」のレグ）か、又は、アイドル／動的表示状態判定に影響を及ぼす他のリソースの少なくとも１つがオンである（判定ブロック９４の「いいえ」のレグ）場合には、アイドル／動的表示検出に関係する任意の更なる作業なしに、ＰＭＧＲドライバ８２は、要求された構成要素のオン処理を完了することができる（ブロック１００）。
【００４３】
ＰＭＧＲドライバ８２がドライバから電源オフ要求を受信した場合（判定ブロック１０２の「はい」のレグ）には、ディスプレイは、現在動的表示状態にある。ＰＭＧＲドライバ８２は、ディスプレイが現在オンである（判定ブロック１０６の「はい」のレグ）かどうかを、判定することができる。もし、オンの場合には、オフにしてアイドル表示状態に移行させる必要があるＳＯＣ  １０の他の構成要素が、オフであるかどうか（判定ブロック１０４）を判定することができる。他の構成要素がオフであることを判定することは、例えば、オン／オフ状態８８をチェックすることによるか、又は、オン構成要素の数のカウントを確認することにより、達成することができる。そうである場合（判定ブロック１０４の「はい」のレグ）には、ＰＭＧＲドライバ８２は、動的表示状態からアイドル表示状態に変化することができる。したがって、ＰＭＧＲドライバ８２は、表示パイプ１６のキャッシングを有効にし（ディスプレイドライバ７０に指示を送信することにより−−ブロック１１０）、かつ、キャッシュスリープ／自動サイズ変更を無効にする（メモリコントローラドライバ８４に指示を送信することにより−−ブロック１１２）。したがって、判定ブロック１０２の「はい」のレグ、判定ブロック１０４の「はい」のレグ、及び、判定ブロック１０６の「はい」のレグは、全体として、アイドル表示判定の実施形態（例えば、図２の判定ブロック５０の「はい」のレグ）とすることができる。ＰＭＧＲドライバ８２はまた、要求された構成要素のオフ処理を完了することができる（ブロック１１４）。オフ処理は、例えば、その構成要素の電源をオンするようにＰＭＧＲ  ３２をプログラムすること、及び、オン／オフ状態８８における状態をオフに変化させること、及び／又は、アイドル／動的表示状態判定に関するオン構成要素の数を減少させることを含むことができる。ＰＭＧＲドライバ８２がドライバから電源オフ要求を受信し（判定ブロック１０２の「はい」のレグ）、かつ、アイドル表示状態に移行するために必要な他の構成要素がオフでないか、又は、Ｎ個より少ない静的フレームが検出された（それぞれ、判定ブロック１０４及び１０６の「いいえ」のレグ）か、のいずれかの場合には、ＰＭＧＲドライバ８２は、任意の更なる作業なしに、要求された構成要素のオフ処理を完了する（ブロック１１４）ことができる。最後に、受信した要求が、表示状態を変化するために必要である構成要素に関して、電源オン要求でも電源オフ要求のどちらでもない場合（判定ブロック９０及び１０２の「いいえ」のレグ）には、ＰＭＧＲドライバ８２は、要求の処理を完了する（ブロック１１６）ことができる。この場合には、表示状態を判定するために必要でない構成要素に関する電源オン又は電源オフ要求が含まれ得る。
【００４４】
上述のように、ＣＰＵフィルタ８０は、表示状態判定の目的上、プロセッサ２８がオン又はオフと考慮するべきであるかどうかを判定するために用いることができる。図６は、ＣＰＵフィルタ８０が使用するモデルの一実施形態を例示するブロック図である。この実施形態では、プロセッサ２８がアクティブ又はアイドルである確率は、プロセッサ２８の以前のアクティブ／アイドルの時間に基づいて、設定される。ＣＰＵアイドル時間は、図６のグラフの横軸の上に示され、ＣＰＵアクティブ時間は、このグラフの縦軸の上に示される。短いアクティブ／アイドル時間は、「不感帯」１２０に帰属する。不感帯１２０は、第１の閾値より少ないアクティブ時間、及び、第２の閾値より少ないアイドル時間と定義することができ、それぞれ図６の点線１２２及び１２４によって例示される。さまざまな実施形態において、第１及び第２閾値は、長さが同じ時間、又は異なる時間とすることができる。さまざまな実施形態において、第１及び第２閾値はプログラム可能なパラメータ、又は、固定とすることができる。ＣＰＵがアクティブである確率（Ｐａ ）、及び、ＣＰＵがアイドルである確率（Ｐｉ ）は、不感帯１２０において、共にゼロに設定される。
【００４５】
第１閾値より大きく、第１キャップ（点線１２６）以下であるＣＰＵアクティブ時間は、０と１との間の、ＣＰＵがアクティブである確率（Ｐａ ）に線形にマップすることができる。第１キャップより大きいＣＰＵアクティブ時間は、１の確率に設定される。同様に、第２閾値と第２キャップ（点線１２８）との間のＣＰＵアイドル時間は、０と１との間の、ＣＰＵがアイドルである確率（Ｐｉ ）に線形にマップすることができる。第２キャップより大きいＣＰＵアイドル時間は、１の確率に設定される。第１及び第２キャップは、同じ値又は異なる値とすることができ、固定された又はプログラム可能とすることもできる。他の実施形態は、他の方法で、又は、他の機能を用いて、アクティブ／アイドル時間を確率にマップすることができる。
【００４６】
上のように設定される確率は、瞬間的な確率（Ｐａ 、Ｐｉ ）である。これらの確率は、各ＣＰＵアイドルイベント及びＣＰＵウェイクイベントにおいて生成してもよい。いくつかの実施形態では、確率は、過去のイベントによってフィルタ処理される（例えば、図６のグラフの下の方程式に示すように、直近のフィルタ処理された確率によって表現されるように）。このようにして、フィルタ処理されたアクティブの確率Ｆａ 及びフィルタ処理されたアイドルの確率Ｆｉ を生成することができる。フィルタ処理された確率は、動的／アイドル表示検出に関するＣＰＵオン／オフ状態を判定するために、ＰＭＧＲドライバ８２へ提供することができる。フィルタ係数のα及びβは、プログラム可能なパラメータとすることができる。そして、フィルタ処理された確率がどの程度プロセッサ２８の実際のオン／オフ状態をうまく予測するかに基づいて、経験的に選択することができる。
【００４７】
図７は、ＣＰＵフィルタ８０の一実施形態の動作を例示するフローチャートである。理解を容易にするため、ブロックは特定の順序で示されているが、他の順序を用いてもよい。一実施形態では、図７の動作は、ソフトウェアに実装してもよい。したがって、このソフトウェアは、実行されると、図７に示される動作を実施する命令を含むことができる。他の実施形態は、ハードウェア、並びに／又は、ハードウェア及びソフトウェアの組合せで、図７に示される機能を実現することができる。
【００４８】
ＣＰＵフィルタ８０は、アイドル状態の開始(entry)及び終了(exit)において実行するように、構成することができる。アイドル状態は、プロセッサ２８が、活動的には作業を実行していない状態とすることができる。アイドル状態は、プロセッサ２８の電源はオンのままであるが、命令は実行していないスリープ状態、並びにプロセッサ２８の電源がオフである電源切断状態を含んでもよい。したがって、ＣＰＵフィルタ８０は、フィルタ８０を実行させるだけのために、プロセッサ２８を定期的にウェイクさせる必要はない。その代わりに、プロセッサ２８が他の理由でアウェイクされるときに、フィルタ８０を実行させてもよい。
【００４９】
ＣＰＵフィルタ８０は、直近のアイドル／アクティブ時間を計算する（ブロック１３０）ことができる。例えば、アイドル時間は、ＣＰＵアイドル状態の終了で、ＣＰＵフィルタ８０が実行されるときに、計算することができる。アクティブ時間は、ＣＰＵアイドル状態の開始で計算することができる。アクティブ／アイドル時間は、アクティブ／アイドル時間を計算するたびに、ＣＰＵフィルタ８０がクリアすることができる専用のフリーランニングタイマから計算することができる。さまざまな実施形態において、フリーランニングタイマは、プロセッサクロック、又は、ＰＭＧＲ  ３２により用いられるＳＯＣ  １０のクロックに基づいて、増加させることができる。別の実施形態では、ＳＯＣ  １０上でさまざまな目的に使用されるタイマ（例えば、タイムベースレジスタ）を用いることができる。かかる実施形態では、ＣＰＵフィルタ８０はタイマを読み出して、ＣＰＵフィルタ８０により、タイマから読み出された現在の値と以前の値との間の差分を計算することができる。
【００５０】
直近のアクティブ及びアイドル時間に基づいて、ＣＰＵフィルタ８０は、瞬間的な確率（Ｐａ 、Ｐｉ ）を計算する（ブロック１３２）ことができる。ＣＰＵフィルタ８０は、瞬間的な確率及び以前のフィルタ処理された確率に基づいて、現時点に関するフィルタ処理された確率（Ｆａ 、Ｆｉ ）を計算することができる（ブロック１３４）。ＣＰＵフィルタ８０は、ＰＭＧＲドライバ８２へ、ＣＰＵオン／オフ状態を計算するために、フィルタ処理された確率を送信する（ブロック１３６）ことができる。あるいは、ＣＰＵフィルタ８０は、フィルタ処理された確率からＣＰＵオン／オフ状態を計算して、そのＣＰＵオン／オフ状態をＰＭＧＲドライバ８２へ送信することができる。
【００５１】
次に図８を参照すると、ＣＰＵフィルタ８０からのフィルタ処理された確率に応答して、ＣＰＵオン／オフ状態を判定する、ＰＭＧＲドライバ８２の一実施形態の動作を例示するフローチャートが示されている。他の実施形態では、上述のように、図８の動作は、ＣＰＵフィルタ８０で実施することができる。理解を容易にするため、ブロックは特定の順序で示されているが、他の順序を用いてもよい。一実施形態では、図８の動作は、ソフトウェアに実装してもよい。したがって、このソフトウェアは、実行されると、図８に示される動作を実施する命令を含むことができる。他の実施形態は、ハードウェア、並びに／又は、ハードウェア及びソフトウェアの組合せで、図８に示される機能を実現することができる。
【００５２】
フィルタ処理されたアイドルである確率（Ｆｉ ）が、フィルタ処理されたアクティブである確率（Ｆａ ）より大きい場合（判定ブロック１３８の「はい」のレグ）には、ＰＭＧＲドライバ８２は、ＣＰＵがオフであると判定する（ブロック１４０）ことができる。現在のアイドル／アクティブ時間が不感帯１２０にあるので瞬間的な確率（Ｐａ 、Ｐｉ ）が共にゼロである場合（判定ブロック１４２の「はい」のレグ）には、ＰＭＧＲドライバ８２は、以前判定したＣＰＵオン／オフ状態を保持する（ブロック１４４）ことができる。即ち、直近判定したＣＰＵオン／オフ状態がオフである場合には、ＣＰＵオン／オフ状態は、オフのままである。同様に、直近判定したＣＰＵオン／オフ状態がオンである場合には、ＣＰＵオン／オフ状態は、オンのままである。最後に、フィルタ処理されたアイドルである確率（Ｆｉ ）が、フィルタ処理されたアクティブである確率（Ｆａ ）よりも大きくなくて、瞬間的な確率（Ｐｉ 、Ｐａ ）が、共にゼロでない場合（判定ブロック１３８及び１４２の「いいえ」のレグ）には、ＰＭＧＲドライバ８２は、ＣＰＵオン／オフ状態がオンである（ブロック１４６）と判定することができる。
【００５３】
図９は、コンピュータアクセス可能な記憶媒体２００の一実施形態のブロック図である。一般的に言って、コンピュータアクセス可能な記憶媒体は、使用時にコンピュータによりアクセス可能で、コンピュータに命令及び／又はデータを提供する、任意の記憶媒体を含むことができる。例えば、コンピュータアクセス可能な記憶媒体として、磁気又は光学媒体、例えば、ディスク（固定された又は取り外し可能な）、テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ又はブルーレイ、などの記憶媒体を挙げることができる。記憶媒体は、ＲＡＭ（例えば、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、Ｒａｍｂｕｓ（登録商標）ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）その他）、ＲＯＭ、又はフラッシュメモリ、などの、揮発性又は不揮発性メモリ媒体を更に含むことができる。記憶媒体は、それが命令／データを提供するコンピュータに物理的に内蔵することができる。あるいは、記憶媒体はコンピュータに接続することができる。例えば、記憶媒体は、ネットワーク接続ストレージのように、ネットワーク又は無線リンク上でコンピュータに接続することができる。記憶媒体は、ユニバーサルシリアルバス（ＵＳＢ）などの周辺インタフェースにより、接続することができる。通常、コンピュータアクセス可能な記憶媒体２００は、非一時的な方法でデータを記憶することができる。ここで、この文脈上、非一時的とは、命令／データを信号に乗せて送信しないことであると言うことができる。例えば、非一時的な記憶は、揮発性（そして、電源切断に応答して記憶された命令／データを失う可能性がある）、又は、不揮発性とすることができる。より具体的には、携帯電話、タブレットその他などの、ポータブル機器で用いられる一実施形態において、コンピュータアクセス可能な記憶媒体２００は、メモリ１２及び／又は不揮発性メモリ（機器に内蔵されたフラッシュメモリなど）を含んでもよい。
【００５４】
図９にコンピュータアクセス可能な記憶媒体２００は、本明細書に記載されたさまざまなソフトウェアを記憶することができる。例えば、コンピュータアクセス可能な記憶媒体は、以下のものの１つ以上を記憶することができる。ディスプレイドライバ７０、ＧＰＵドライバ７２、他の媒体ドライバ７６、ＣＰＵフィルタ８０、ＩＳＰドライバ７４、他の周辺装置ドライバ７８、ＰＭＧＲドライバ８２及びメモリコントローラドライバ８４である。さまざまなドライバ７０、７２、７４、７６、７８、８２、及び８４、及びＣＰＵフィルタ８０は、命令を含むことができる。この命令は、プロセッサ２８によって実行されると、各ドライバに関して上述した動作を実施する。更に、ＰＭＧＲドライバ８２は、実行されると、図２、図３、図５、及び／又は図８に例示される動作を実施する命令を含むことができる。ＣＰＵフィルタ８０は、実行されると、図７及び／又は図８に示される動作を実施する命令を含むことができる。キャリア媒体は、コンピュータアクセス可能な記憶媒体、並びに、有線又は無線の伝送などの伝送媒体を含むことができる。
【００５５】
次に図１０を参照すると、システム１５０の一実施形態のブロック図が示されている。図示の実施形態では、システム１５０は、１つ以上の周辺装置１５４及び外部メモリ１２に接続されるＳＯＣ  １０の少なくとも１つの事例を含む。ＳＯＣ  １０に供給電圧を供給すると共に、メモリ１２及び／又は周辺装置１５４に１つ以上の供給電圧を供給する電源１５６が提示されている。実施形態によっては、ＳＯＣ  １０の１つを超える事例が含まれてもよい（及び１つを超えるメモリ１２も含まれてよい）。
【００５６】
周辺装置１５４は、システム１５０の種類に応じて、任意の所望の回路機構を含んでもよい。例えば、一実施形態では、システム１５０はモバイルデバイス（例えば、無線携帯情報端末（personal digital assistant、ＰＤＡ）、スマートフォン等）であってもよく、周辺装置１５４は、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラ、全地球測位システムなど等の、さまざまな種類の無線通信用のデバイスを含んでもよい。周辺装置１５４として、ＲＡＭ記憶装置、固体記憶装置又はディスク記憶装置を含む、更なる記憶装置もまた挙げることができる。周辺装置１５４は、タッチ表示画面又はマルチタッチ表示画面を含む表示画面、キーボード又はその他の入力デバイス、マイクロフォン、スピーカ等などのユーザインタフェースデバイスを含んでもよい。いくつかの実施形態では、ディスプレイ２０及び／又は画像センサ２６は、周辺装置１５４とすることができる。他の実施形態では、システム１５０は、任意の種類のコンピューティングシステム（例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップ等）であってもよい。
【００５７】
外部メモリ１２として、任意の種類のメモリを挙げることができる。例えば、外部メモリ１２は、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、その他）ＳＤＲＡＭ、ＲＡＭＢＵＳ（登録商標）ＤＲＡＭ等などの、ＳＲＡＭ、ダイナミックＲＡＭ（ＤＲＡＭ）とすることができる。外部メモリ１２は、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、その他、などのメモリデバイスが搭載される、１つ以上のメモリモジュールを含むことができる。あるいは、外部メモリ１２は、１つ以上のメモリデバイスを含むことができる。これらのメモリデバイスは、チップオンチップでＳＯＣ  １０の上に搭載されるか、又は、パッケージオンパッケージで実装される。
【００５８】
上述の開示が完全に理解されれば、当業者には数多くの変形及び変更が明らかになるであろう。以下の請求項は、このような変形及び変更を全て包含するように解釈されることが意図されている。
【図１】
2016524745.tif 000003
【図２】
2016524745.tif 000004
【図３】
2016524745.tif 000005
【図４】
2016524745.tif 000006
【図５】
2016524745.tif 000007
【図６】
2016524745.tif 000008
【図７】
2016524745.tif 000009
【図８】
2016524745.tif 000010
【図９】
2016524745.tif 000011
【図１０】
2016524745.tif 000012
【手続補正書】
【提出日】平成27年12月4日(2015.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の構成要素、メモリキャッシュ、及びメモリシステムを含むシステムの表示装置に関するアイドル画面を検出する工程であって、前記メモリキャッシュは、前記複数の構成要素からのメモリ操作に関するデータをキャッシュするものである工程と、
前記アイドル画面の検出に応答して、前記メモリキャッシュへのフレームデータのキャッシングを有効にする工程であって、フレームデータのキャッシングは、前記アイドル画面が検出されない間は無効にされ、前記メモリキャッシュは前記メモリシステムに接続されるとともに、前記メモリシステムでアクセスされるデータをキャッシュするように構成され、前記メモリキャッシュはメモリ操作に応答して、前記メモリシステムにアクセスする前に、ヒットがないか前記メモリキャッシュがチェックされる工程と、
フレームデータの前記キャッシングが有効である時間中に、前記メモリシステムからフレームデータを読み出す読出しメモリ操作に応答して、前記フレームデータの少なくとも一部を前記メモリキャッシュにキャッシュする工程と、
前記複数の構成要素からの読出し操作に応答して、前記複数の構成要素により読み出されるデータを前記メモリキャッシュにキャッシュする工程と、
を有することを特徴とする、方法。
【請求項２】
前記アイドル画面の検出に応答して、前記メモリキャッシュの電力管理構成を変更する工程を更に含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記変更する工程は、前記メモリキャッシュでのキャッシュ電源切断を無効にする工程を含むことを特徴とする、請求項２に記載の方法。
【請求項４】
前記変更する工程は、メモリキャッシュサイズの削減を無効にする工程を含むことを特徴とする、請求項２に記載の方法。
【請求項５】
前記アイドル画面の終了を検出する工程と、
前記終了を検出する工程に応答して、前記メモリキャッシュへの前記フレームデータのキャッシングを無効にする工程と、
を更に含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記終了の検出に応答して、
前記メモリキャッシュでのキャッシュ電源切断を有効にする工程と、
メモリキャッシュサイズの削減を有効にする工程と、
を更に含むことを特徴とする、請求項５に記載の方法。
【請求項７】
前記終了を検出する工程は、前記システムの少なくとも１つの構成要素が、電源オンされようとしていることを検出する工程を含むことを特徴とする、請求項５に記載の方法。
【請求項８】
前記終了を検出する工程は、グラフィクス装置が電源オンを要求していることを検出する工程を含む、ことを特徴とする、請求項５に記載の方法。
【請求項９】
前記システムの１つ以上のプロセッサに関するウェイク／スリープイベントをフィルタ処理する工程と、
前記フィルタ処理されたウェイク／スリープイベントが、前記プロセッサが潜在的にアクティブであることを示すことに応答して、前記終了を検出する工程と、
を更に含むことを特徴とする、請求項５に記載の方法。
【請求項１０】
メモリシステムと、
複数の構成要素と、
前記メモリシステムに接続され、前記複数の構成要素によって前記メモリシステムでアクセスされるデータをキャッシュするように構成されたメモリキャッシュであって、メモリ操作に応答して、前記メモリシステムにアクセスする前にヒットがないかチェックされ、前記メモリシステムから前記データを読み出す前記複数の構成要素からの読出しメモリ操作に応答して、前記複数の構成要素によりアクセスされた前記データの少なくとも一部が、前記メモリキャッシュにキャッシュされる、メモリキャッシュと、
前記メモリキャッシュ及び前記メモリシステムに接続されたディスプレイコントローラであって、表示装置に画像を表示するために、前記メモリシステムに記憶される少なくとも１つのフレームバッファを読み出すためのメモリ操作を生成するように構成され、使用中に前記表示装置の前記画像がアイドルであることに応答して前記メモリキャッシュへの割当を要求するようにプログラムされ、前記メモリキャッシュは、前記ディスプレイコントローラからの前記割当要求に応答して前記フレームバッファの少なくとも一部をキャッシュするように構成される、ディスプレイコントローラと、を有することを特徴とする、装置。
【請求項１１】
前記ディスプレイコントローラは、使用中に前記表示装置の前記画像が動的であることに応答して、前記メモリキャッシュへの割当を要求しないようにプログラムされることを特徴とする、請求項１０に記載の装置。
【請求項１２】
前記表示装置の前記画像は、Ｎ個の連続した静的フレームを検出することに応答してアイドルであると検出され、Ｎは１より大きい整数であり、前記Ｎ個の連続した静的フレームが検出されなければ、前記画像は動的であると検出されることを特徴とする、請求項１０に記載の装置。
【請求項１３】
前記表示装置の前記画像が静的もしくは動的であることの検出に応答して、前記メモリキャッシュの電力管理構成が変更されることを特徴とする、請求項１０に記載の装置。
【請求項１４】
前記電力管理構成は、前記表示装置の前記画像が静的であることの検出に応答して、キャッシュの電源切断を無効にするように変更されることを特徴とする、請求項１３に記載の装置。
【請求項１５】
前記電力管理構成は、前記表示装置の前記画像が静的であることの検出に応答して、キャッシュの自動サイズ変更を無効にするように変更されることを特徴とする、請求項１３に記載の装置。
【請求項１６】
１以上のプロセッサで実行された際に、該１以上のプロセッサに請求項１から請求項９のいずれか１項に記載の方法を実行させる命令を有するプログラム。
【国際調査報告】
2016524745.tif 000013
2016524745.tif 000014