(57)【要約】【解決手段】  方法は、集積回路（１００）の最小動作レベルに到達したこととスリープモードが従って許容可能であることとを決定することと、最小動作レベルに到達したことを決定することに応答して最小動作コンテキスト情報をＲＡＭ（１１５）に記憶することと、ＲＡＭ（１１５）内のスリープモードコード（１１６）に切り換えることと、メモリ制御を主要メモリ制御器（１０４）から補助メモリ制御器（１１２）へ移行させることとを備えており、そこでは補助メモリ制御器（１１２）はＲＡＭ（１１５）のみを制御する。方法は、最小動作レベルに到達したことを決定することに応答してスリープモードコード（１１６）及びウエイクアップコード（１１７）をＲＡＭ（１１５）に記憶することを含んでいてよく、ウエイクアップコード（１１７）はＲＡＭ（１１５）内に記憶される最小動作コンテキスト情報を用いて最小動作コンテキストを回復させる。方法はまた、複数の集積回路電力領域をスリープモードに置くことと補助メモリ制御器電力領域（１１９）を標準電力モードに残すこととを含んでいてよい。【選択図】図１
2011521365.tif 000002
【特許請求の範囲】
【請求項１】
許容可能なスリープモードに応答して最小動作コンテキスト情報をランダムアクセスメモリ（ＲＡＭ）に記憶することと、
前記ＲＡＭ内のスリープモードコードに切り換えることと、
メモリ制御を主要メモリ制御器から補助メモリ制御器へ移行させることと、を備え、
前記補助メモリ制御器は前記ＲＡＭのみを制御する、方法。
【請求項２】
最小動作レベルに到達したことと前記スリープモードが従って許容可能であることとを決定することに応答して、前記スリープモードコード及びウエイクアップコードを前記ＲＡＭに記憶することを備え、
前記ウエイクアップコードは前記ＲＡＭ内に記憶される前記最小動作コンテキスト情報を用いて最小動作コンテキストを回復させるためのものである、請求項１に記載の方法。
【請求項３】
複数の集積回路電力領域を電源切断モードに置くことと補助メモリ制御器電力領域を標準電力モードに残すこととを備えた、請求項１に記載の方法。
【請求項４】
複数の集積回路電力領域を電源切断モードに置くことと補助メモリ制御器電力領域を標準電力モードに残すこととの前に、
全動作コンテキスト情報をダイナミックメモリに記憶することと、
前記ダイナミックメモリを自己リフレッシュモードに置くことと、を備えた、請求項１に記載の方法。
【請求項５】
最小動作レベルに到達したことと前記スリープモードが従って許容可能であることとを決定することに応答して、完全コンテキスト情報をメモリに記憶することを備えた、請求項１に記載の方法。
【請求項６】
中央処理ユニット（ＣＰＵ）電力領域及び主要メモリ制御器電力領域を前記電源切断モードに置くことを備えた、請求項３に記載の方法。
【請求項７】
前記ＲＡＭ内のスリープモードコードに切り換えることの前に、
ＲＡＭの領域をセキュアメモリとして標識付ける命令を前記主要メモリ制御器に送ることを備え、
ＲＡＭの前記領域は前記最小動作コンテキスト情報及びウエイクアップコードを記憶するためのものである、請求項１に記載の方法。
【請求項８】
スリープモードにある集積回路内でハードウエア割り込みを受け取ることと、
前記ハードウエア割り込みを受け取ったことに応答して前記集積回路を覚醒させる要求を受け取ることと、
ＲＡＭ内に記憶され前記集積回路の最小動作コンテキストを回復させるためのウエイクアップコードに補助メモリ制御器によってアクセスすることと、
前記ウエイクアップコードを実行して前記集積回路の最小動作コンテキストを回復させることと、
メモリ制御を前記補助メモリ制御器から主要メモリ制御器へ移行させることと、を備えた方法。
【請求項９】
メモリ制御を前記補助メモリ制御器から主要メモリ制御器へ移行させることとの前に、
前記集積回路の主要メモリ制御器電力領域への電力を回復させることと、
前記ＲＡＭ内に記憶される完全動作コンテキスト情報を用いて前記集積回路の完全動作コンテキストを回復させることと、を備えた、請求項８に記載の方法。
【請求項１０】
前記集積回路の制御を前記ウエイクアップコードから集積回路オペレーティングシステムへ移行させることを備え、
前記集積回路オペレーティングシステムは前記完全動作コンテキストへ戻る、請求項９に記載の方法。
【請求項１１】
ダイナミックメモリを自己リフレッシュモードから外すことを備え、
前記ダイナミックメモリは全動作コンテキスト情報を記憶している、請求項９に記載の方法。
【請求項１２】
デジタルスチルカメラ領域、ビデオ電力領域及び周辺機器電力領域への電力を回復させることを備えた、請求項９に記載の方法。
【請求項１３】
補助メモリ制御器電力領域上に前記補助メモリ制御器と共に配置されるエネルギー制御器が前記ハードウエア割り込みに基き標準動作電力に対する要求を受け取る、請求項８に記載の方法。
【請求項１４】
ランダムアクセスメモリ（ＲＡＭ）と、
前記ＲＡＭ及び前記集積回路の他のメモリに動作的に接続され複数の回路領域のメモリ制御器領域上に配置される主要メモリ制御器と、
前記ＲＡＭに動作的に接続され、補助メモリ制御器領域上に配置され、前記主要メモリ制御器からの制御の移行の場合には前記ＲＡＭの制御のために専用され、ウエイクアップ動作の間に前記ＲＡＭからの最小動作コンテキスト情報へのアクセスを提供するように動作する補助メモリ制御器と、
前記集積回路のスリープモードに入るために前記主要メモリ制御器から前記補助メモリ制御器へ制御を移行させるように動作する論理と、を備え、
前記スリープモードは前記メモリ制御器領域をスリープモードに置くことを含む、集積回路。
【請求項１５】
前記ＲＡＭ、前記主要メモリ制御器及び前記補助メモリ制御器に動作的に接続されるプロセッサを備え、
前記プロセッサは、
集積回路の最小動作レベルに到達したこととスリープモードが従って許容可能であることとを決定し、
前記最小動作レベルに到達したのを決定することに応答して最小動作コンテキスト情報を前記ＲＡＭに記憶し、
前記ＲＡＭ内のスリープモードコードに切り換え、
メモリ制御を前記主要メモリ制御器から前記補助メモリ制御器へ渡すように動作する、請求項１４に記載の集積回路。
【請求項１６】
前記プロセッサは更に、
前記最小動作レベルに到達したのを決定することに応答して前記スリープモードコード及びウエイクアップコードを前記ＲＡＭ内に記憶するように動作し、
前記ウエイクアップコードは前記ＲＡＭ内に記憶される前記最小動作コンテキスト情報を用いて最小動作コンテキストを回復させるためのものである、請求項１５に記載の集積回路。
【請求項１７】
前記補助メモリ制御器と共に補助メモリ制御器電力領域上に配置されるエネルギー制御器を更に備え、
前記エネルギー制御器は前記補助メモリ制御器及び前記プロセッサに動作的に接続されており、
前記エネルギー制御器は、
複数の集積回路電力領域をスリープモードに置き前記補助メモリ制御器電力領域を標準電力モードに残すように動作する、請求項１５に記載の集積回路。
【請求項１８】
前記プロセッサは更に、
前記最小動作レベルに到達したのを決定することに応答して完全コンテキスト情報をメモリに記憶するように動作する、請求項１５に記載の集積回路。
【請求項１９】
前記主要メモリ制御器は、
前記メモリを自己リフレッシュモードに置くように動作する、請求項１８に記載の集積回路。
【請求項２０】
前記プロセッサは更に、
スリープモードにある間にハードウエア割り込みを受け取り、前記ハードウエア割り込みはウエイクアップイベントに対応しており、
前記補助メモリ制御器は、前記ウエイクアップコードにアクセスするように動作し、
前記ウエイクアップコードはＲＡＭ内に記憶され前記集積回路の最小動作コンテキストを回復させるためのものであり、
前記プロセッサは更に、
前記ウエイクアップコードを実行して前記集積回路の最小動作コンテキストを回復させ、
メモリ制御を前記補助メモリ制御器から前記主要メモリ制御器へ渡すように動作する、請求項１６に記載の集積回路。
【請求項２１】
プロセッサの設計のための命令を記憶しているコンピュータ可読媒体であって、前記プロセッサは、製造されたときに、
許容可能なスリープモードに応答して最小動作コンテキスト情報をランダムアクセスメモリ（ＲＡＭ）に記憶し、
前記ＲＡＭ内のスリープモードコードに切り換え、
メモリ制御を主要メモリ制御器から補助メモリ制御器へ移行させるように構成され、前記補助メモリ制御器は前記ＲＡＭのみを制御するコンピュータ可読媒体。
【請求項２２】
前記命令はハードウエア記述言語命令を備えている、請求項２１に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は集積回路及び集積回路における電力管理に関する。
【背景技術】
【０００２】
集積回路、例えばシステムオンチップ（ＳＯＩ）集積回路が組み込まれたバッテリー駆動の電子デバイスは、電子デバイスが機能していない間の電力を節約するための種々の電力モードを備えている。例えば、携帯式通信デバイスのような電子デバイスは、電話呼び出しの着信を受けるために普段から電源を入れられており、従って何分も何時間も使用なしで待ち受けることとなろう。オペレーティングソフトウエアあるいはデバイス上で動作している他の同様のソフトウエアは、種々の機能していない状態が低電力モードへのデバイス切り換えをもたらすように、デバイスのアクティビティ(activity)を監視し及び／又はタイマーを採用してよい。
【０００３】
集積回路技術は集積回路による電力消費を低減するための様々な技術を生み出してきており、電子デバイスの電力消費を全体的に節約している。そのような技術では、幾つかの機能が他から隔離されてよい「電力領域(power islands)」を有するアーキテクチュアが採用される。例えばＣＰＵはそれ自身の電力領域上に配置されてよく、ＣＰＵに影響を与えることなしに他の周囲の電力領域がスリープモードに置かれあるいはシャットダウンされてよい。
【０００４】
理解されるであろうように、少なくとも一つの電力領域は「常時オン」でなければならない。即ち、標準的には幾つかの検出されたイベントに基き集積回路が覚醒状態に切り換わるときに、オペレーティングシステム、及び／又は他のソフトウエア及び論理をスリープモードに入る前、及び少なくとも一時的に動作を停止させる前のそれらのそれぞれの動作状態に回復させるコンテキストが提供され得るように、少なくとも一つの電力領域は電源を入れられていなければならない。このタスクを達成するために、コンテキスト情報はスリープ状態の間に記憶されていなければならず、且つウエイクアップイベントに際して検索又は回収可能(retrievable)でなければならない。当該情報の記憶及びアクセスの制御並びにその回復は電力を必要とし、そのことが、スリープ状態の前の任意の動作コンテキストを失って完全な再起動を考慮せねばならないことなしに、集積回路がどれだけのスリープの「深さ」（「深いスリープ」）に入ることができるかに関する制限となっている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、コンテキスト情報を維持しできるだけ多くの電力領域をスリープモードに置く方法を有することが望ましい。
【課題を解決するための手段】
【０００６】
ここに開示される実施形態は、集積回路の最小動作レベルに到達したこととスリープモードが従って許容可能であることとを決定することと、最小動作レベルに到達したことを決定することに応答して最小動作コンテキスト情報をランダムアクセスメモリ（ＲＡＭ）に記憶することと、ＲＡＭ内のスリープモードコードに切り換えることと、メモリ制御を主要メモリ制御器から補助メモリ制御器へ移行させることとを備えた方法を提供し、そこでは補助メモリ制御器はＲＡＭのみを制御する。
【０００７】
方法は、最小動作レベルに到達したことを決定することに応答してスリープモードコード及びウエイクアップコードをＲＡＭに記憶することを含んでいてよく、ウエイクアップコードはＲＡＭ内に記憶される最小動作コンテキスト情報を用いて最小動作コンテキストを回復させるように動作する。方法はまた、複数の集積回路電力領域を電源切断モードに置くことと補助メモリ制御器電力領域を標準電力モードに残すこととを含んでいてよい。補助メモリ制御器電力領域は低電力モード内に置かれていてもよく、そこでは適用される電力は低減され、クロックはターンオフされるかあるいは減少させられる。ウエイクアップイベントがクロックを回復させてよい。
【０００８】
ここに開示される他の実施形態では、方法は、集積回路がスリープモードにある場合に集積回路内でハードウエア割り込みを受け取ることと、ハードウエア割り込みを受け取ったことに応答して集積回路を覚醒させる要求を受け取ることと、ＲＡＭ内に記憶され集積回路の最小動作コンテキストを回復させるためのウエイクアップコードに補助メモリ制御器によってアクセスすることと、ウエイクアップコードを実行して集積回路の最小動作コンテキストを回復させることと、メモリ制御を補助メモリ制御器から主要メモリ制御器へ移行させることとを備えている。
【０００９】
方法はまた、メモリ制御を補助メモリ制御器から主要メモリ制御器へ移行させることとの前に、集積回路の主要メモリ制御器電力領域への電力を回復させることと、ＲＡＭ内に記憶される完全動作コンテキスト情報を用いて集積回路の完全動作コンテキストを回復させることとを含んでいてよい。
【００１０】
実施形態はまた集積回路を含み、集積回路は、ランダムアクセスメモリ（ＲＡＭ）と、ＲＡＭ及び集積回路の他のメモリに動作的に接続され複数の回路領域のメモリ制御器領域上に配置される主要メモリ制御器と、ＲＡＭに動作的に接続され補助メモリ制御器領域上に配置され主要メモリ制御器からの制御の移行の場合にはＲＡＭの制御のために専用されウエイクアップ動作の間にＲＡＭからの最小動作コンテキスト情報へのアクセスを提供するように動作する補助メモリ制御器と、集積回路のスリープモードに入るために主要メモリ制御器から補助メモリ制御器へ制御を移行させるように動作する論理とを有しており、スリープモードはメモリ制御器領域をスリープモードに置くことを含む。
【００１１】
実施形態の集積回路はまた、ＲＡＭ、主要メモリ制御器及び補助メモリ制御器に動作的に接続されるプロセッサを含んでいてよく、プロセッサは、集積回路の最小動作レベルに到達したこととスリープモードが従って許容可能であることとを決定し、最小動作レベルに到達したのを決定することに応答して最小動作コンテキスト情報をＲＡＭに記憶し、ＲＡＭ内のスリープモードコードに切り換え、メモリ制御を主要メモリ制御器から補助メモリ制御器へ渡すように動作する。
【図面の簡単な説明】
【００１２】
【図１】図１は実施形態に従って複数の回路領域、主要メモリ制御器領域上に配置される主要メモリ制御器、及び補助メモリ制御器領域上に配置される補助メモリ制御器を有する集積回路のブロック図である。
【００１３】
【図２】図２は図１に示されるような集積回路のスリープモードに対する及び複数の回路領域に対する種々の電力状態を実施形態に従って示す状態図である。
【００１４】
【図３】図３は実施形態に従いスリープモードに入る集積回路の高度な動作を示すフローチャートである。
【００１５】
【図４】図４は実施形態に従いスリープモードから覚醒する集積回路の高度な動作を示すフローチャートである。
【００１６】
【図５】図５は集積回路がスリープモードに入っている一つの実施形態の付加的な詳細を示すフローチャートである。
【００１７】
【図６】図６は集積回路がスリープモードから覚醒している一つの実施形態の付加的な詳細を示すフローチャートである。
【００１８】
【図７】図７は実施形態に従いスリープモードに入る集積回路のための種々の論理及びソフトウエアの間でのメッセージ及び他の相互作用の詳細を示す信号流れ図である。
【００１９】
【図８】図８は実施形態に従いスリープモードから覚醒する集積回路のための種々の論理及びソフトウエアの間でのメッセージ及び他の相互作用の詳細を示す信号流れ図である。
【発明を実施するための形態】
【００２０】
図面において同様の参照番号は同様の要素を示し、図１は幾つかの実施形態ではシリコンオンチップ（ＳＯＩ）集積回路であってよい集積回路（ＩＣ）１００のブロック図である。ＩＣ１００は、図１に示される例示的な実施形態ではＣＰＵ領域１１３上に位置する中央処理ユニット（ＣＰＵ）を含む。集積回路１００はＤＳＣ領域１２１上に位置するデジタルスチルカメラ（ＤＳＣ）プロセッサ及びビデオ領域１２３上に位置するビデオプロセッサを更に含む。また、種々のインタフェース、限定はされないが例えばＵＳＢ、ＳＤ、ＵＡＲＴ等を支持してよい周辺機器領域１０２が存在する。入力／出力モジュール１０１は、周辺機器領域１０２によって支持されるインタフェースに関連付けられてよい種々の物理インタフェースを提供する。例えば、入力／出力モジュール１０１はＵＳＢ物理ポートや他の入力／出力ポート及び／又はパッドを提供してよい。また入力／出力モジュール１０１は、例えば回路基板からの入力電圧を受けるための入力ポート又はパッドを有している。入力／出力モジュール１０１はまた、外部ダブルデータレート同期ランダムアクセスメモリ、例えばＤＤＲ＿ＲＡＭ１２５に接続されていてよい。図１に示される実施形態によると、集積回路１００は主要メモリ制御器領域１０３を更に含む。主要メモリ制御器領域１０３は更にグラフィックプロセッサ１０６、オーディオプロセッサ１０７、リードオンリメモリＲＯＭ１０５、及び主要メモリ制御器１０４から構成される。また、補助メモリ制御器領域１０９が存在している。この領域は「常時オン」領域である。即ち、集積回路１００が以下に更に詳細に説明されるスリープモードに入ったときでさえも、補助メモリ制御器領域１０９には電力が常時供給される。
【００２１】
補助メモリ制御器領域１０９は補助メモリ制御器１１２、エネルギー制御器１１０、及びディスプレイ制御器１１１を含む。補助メモリ制御器１１２はダイ上ランダムアクセスメモリ（ＲＡＭ）１１５に動作的に接続され、集積回路１００がスリープモードに入った場合にダイ上ランダムアクセスメモリ１１５を制御することができる。ダイ上ランダムアクセスメモリ（ＲＡＭ）１１５は更に、これらも以下に説明されるスリープモードコード１１６及びウエイクアップコード１１７を含む。スリープモードコード１１６及びウエイクアップコード１１７は、スリープモードに入ることが必要になったときにのみＲＡＭ１１５内に存在してよい。最後に、図１に示されるように、集積回路１００はまた、種々の領域にクロック信号を供給し且つスリープモードの特定の場合に領域に低速クロック信号を供給するためのシステムクロック１１９を有している。
【００２２】
ここに提供される図１及び他の図は例示のみのためのものであり必ずしも集積回路の完全な回路図を示すことを目的としたものではないことが理解されるべきである。例えば、図１に示される集積回路は、例えば完全なＳＯＣの実装のために必要であろう図１には示されていない他の回路領域又は他の要素を含んでいてよい。従って、図１はここに提供されている他の図と同様、例示のみのためのものでありまた、当業者がここに開示されている実施形態を作り且つ使用することができるように種々の実施形態及び論理を説明する目的のためのものである。従って、他の回路領域又は論理が図１に図示されるような集積回路内に存在していてよく、ここに開示される種々の実施形態においても同様である。また、図示される種々の回路領域は、プロセッサ及び／又は他の論理に加えて、種々の領域に対する他に集積回路の他の部分／要素に対しても電力入力及び／又は電力出力を制御するための電力ゲート論理を含んでいてよい。更に、電力ゲート論理が種々の領域に対する電力入力／出力を制御する目的のために、集積回路１００の様々な位置に存在してよい。
【００２３】
図１に図示される種々の回路領域、限定はされないが例えばメモリ制御器領域１０３、周辺機器領域１０２、ＤＳＣ領域１２１、ＣＰＵ領域１１３及びビデオ領域１２３は、幾つかの実施形態では内部的に電力ゲートされてよい。また、幾つかの実施形態では、ダイ上ランダムアクセスメモリ１１５も内部電力ゲーティングを有していてよい。例えば、ダイ上ＲＡＭ１１５は３２ＫＢインクリメントでゲート有効(gate-able)にされてよい。ダイ上ランダムアクセスメモリ１１５は、ＣＰＵ領域１１３上に位置するＣＰＵがウエイクアップコード１１７を利用してスリープモードから高速リカバリすることができるように、ウエイクアップコード１１７を記憶していてよい。前述したように常時オンである補助メモリ制御器領域１０９は、ウエイクアップソース及び起動クロックソースを含み、集積回路１００の種々の回路領域へ低電力のクロック信号を供給する目的でシステムクロック１１９と相互に作用することができる。更に、補助メモリ制御器領域１０９は「常時オン」ではあるが、それは常時電源がオンなのであって、常時クロックされていなくてよい。例えば、補助メモリ制御器領域１０９は電源を入れられているが、クロックされずに図２に示されるようなサスペンド状態２０５にあってよい。
【００２４】
補助メモリ制御器１１２は、数ある利益の中でもとりわけ、主要メモリ制御器１０４よりも小型で且つ複雑でなくてよいことにおける利点を提供する。例えば、ＤＤＲ＿ＲＡＭ１２５のようなダイナミックＲＡＭではなくダイ上ＲＡＭ１１５のようなスタティックＲＡＭに対するアクセスのみを有することにより、補助メモリ制御器１１２は複雑なＤＤＲインタフェース論理を含む必要がない。また、少数のクライアントが補助メモリ制御器１１２へのアクセスを許されるので（即ちＤＳＣ、ビデオ、オーディオ、等によってアクセスされない）、複雑さ及びサイズが更に減少する。このように、主要メモリ制御器１０４のサイズと対比してより小さい補助メモリ制御器１１２のサイズは、主要メモリ制御器１０４との比較においてサスペンドモードにおけるより少ない電流漏れ及びアクティブモードにおけるより少ない電力消費の利益を提供する。
【００２５】
ＤＤＲ＿ＲＡＭ１２５のような外部メモリは、集積回路１００の種々の回路領域がスリープモードにある場合に、更なる電力をセーブするために自己レフレッシュモードに置かれて制御されてよい。同様に例えば入力／出力モジュール１０１の種々の論理もまた、電力を節約するために何度も電源を切られてよい。例えば幾つかの実施形態では、ＵＳＢ物理ポート及び／又は他のポートが適切に度々ターンオフされるように有利に制御され、それにより電力が節約される。
【００２６】
図２は集積回路１００の回路領域に適用されてよい種々の電力状態を示す状態図である。例えば集積回路１００は状態２０１におけるように完全に電源を切られてよい。集積回路１００は標準動作状態２０３で示される標準動作状態に入ってよい。種々の実施形態において、標準動作状態は、電力状態の範囲、例えば最大電力レベルから低電力レベル、又は低性能レベルまでの範囲を含んでいてよく、また集積回路１００の幾つかの回路領域がターンオン又はターンオフされる場合を含んでいてもよい。スタンバイ２０９状態では回路領域はターンオフされてよいが、システムクロック１１９の幾つかは依然としてアクティブであってよい。例えば、一つの位相同期ループ（ＰＬＬ）はゲートされたその出力と共に動作し続けていてよく、ウエイクアップの間はアンゲートされてよい。ＰＬＬはアクティブであり続けるので、ロック（同期）を必要とするＰＬＬに起因する付加的なウエイクアップ時間が必要になることはない。幾つかの実施形態では、スロー状態２０７のような一時的状態が用いられてスタンバイ状態２０９及びサスペンド状態２０５から標準動作状態２０３に切り換わってよい。サスペンド状態２０５は「スリープモード」としても知られる。サスペンド状態２０５（又はスリープモード）においては、実施形態の「常時オン」の補助メモリ制御器領域１０９の例外を除き全ての回路領域はオフにされてよく、システムクロック１１９はハードウエアによってゲートされてよい。従って、サスペンド状態２０５は集積回路１００に対して大きな電力節約をもたらし、その次がスタンバイ状態２０９である。
【００２７】
いつ標準動作状態２０３からスタンバイ状態２０９あるいはサスペンド状態２０５に入るかを集積回路１００が決定するために、集積回路はトリガーイベントを有していなければならない。例えば、ＣＰＵ領域１１３のＣＰＵ上で実行されるオペレーティングシステムは集積回路１００のアクティビティを監視し、アクティビティが低い場合にサスペンド状態２０５に入るための適切なアクションをとって電力を節約することができる。同様にして集積回路１００のウエイクアップイベントはＣＰＵ領域１１３のＣＰＵをトリガーして、ＣＰＵがスロー状態２０７を経由して最終的には標準動作状態２０３に入り、スリープモードあるいはサスペンド状態２０５から覚醒するようにしてよい。入力／出力モジュール１０１での入力発生等の種々のイベントが集積回路１００を覚醒させるようにトリガーしてよい。種々の他のイベントが当業者によって理解されるであろう。
【００２８】
図３は集積回路１００がスリープモードに入る実施形態のための集積回路１００の高度な動作を示している。従って例えばステップ３０１において、ＣＰＵ、あるいはより特定的にはＣＰＵ上で実行されているオペレーティングシステム（ＯＳ）は、集積回路の最小動作レベルに到達したことと従ってスリープモードが許容され得ることとを決定してよい。実施形態に従いそしてステップ３０３に示されるように、オペレーティングシステムは、最小動作レベルに到達したことの決定に応答して、最小動作コンテキスト情報をランダムアクセスメモリ、例えばダイ上ＲＡＭ１１５に記憶してよい。ステップ３０５では、ＣＰＵ領域１１３上の中央処理ユニットからの命令に基いてメモリの制御が主要メモリ制御器１０４から補助メモリ制御器１１２へ移行される。補助メモリ制御器１１２は種々の実施形態においてダイ上ＲＡＭ１１５のみを制御してよい。即ち、集積回路１００の種々の他のメモリ、限定はされないが例えばＲＯＭ１０５へのアクセスを提供する主要メモリ制御器１０４とは異なり、補助メモリ制御器１１２は内部メモリ、即ちダイ上ＲＡＭ１１５のみにアクセスしてよい。幾つかの実施形態では、主要メモリ制御器１０４から補助メモリ制御器１１２への移行はエネルギー制御器１１０によって達成されてよい。例えばエネルギー制御器１１０は、主要メモリ制御器１０４から補助メモリ制御器１１２への移行をエネルギー制御器１１０にさせる命令をＣＰＵから受け取ってよい。
【００２９】
ステップ３０７に示されるように、ＣＰＵ領域１１３のＣＰＵ上で実行されているＯＳは、最小動作レベルに到達したのを決定することに応答するスリープモードコード及びウエイクアップコードを記憶してよい。スリープモードコード及びウエイクアップコードは、図１に示されるようにスリープモードコード１１６及びウエイクアップコード１１７としてダイ上ＲＡＭ１１５に記憶されるであろう。即ち、スリープモードコード１１６及びウエイクアップコード１１７は、標準動作の間にＲＡＭ１１５が他の目的のために利用可能であるように、必要なときにのみＲＡＭ１１５内に存在していてよい。ウエイクアップコード１１７の目的は、オペレーションシステムによってダイ上ＲＡＭ１１５内にまた記憶されていた最小動作コンテキスト情報を用いて最小動作コンテキストを回復させることと、完全動作コンテキスト情報を記憶していてよいＤＤＲ＿ＲＡＭ１２５を再有効にすることとである。
【００３０】
図４は実施形態に従う集積回路１００の高度なウエイクアップ動作を示している。ステップ４０１では、ＣＰＵ領域１１３上の中央処理ユニットがハードウエア割り込みを受け取ってよい。ハードウエア割り込みがＣＰＵにより受け取られる一方で、集積回路１００の種々の領域はスリープモードにある。ステップ４０３に示されるように、ＣＰＵあるいはオペレーションシステムは、エネルギー制御器を介して、補助メモリ制御器領域１０９がステップ４０５に示されるようにダイ上ＳＲＡＭにも記憶されているウエイクアップコード１１７及び最小動作コンテキスト情報にアクセスすることを要求してよい。ＣＰＵは次いで、ステップ４０７に示されるように、ウエイクアップコード１１７を実行して集積回路１００の最小動作コンテキストを回復してよい。ステップ４０９では、メモリの制御は集積回路１００の標準動作を回復することに備えて、補助メモリ制御器１１２から主要メモリ制御器１０４へ戻ってよい。
【００３１】
図５は集積回路がスリープモードに入る実施形態のための集積回路１００の付加的な詳細を示している。ステップ５０１では、オペレーションシステムは集積回路１００のアクティビティレベルを監視する。ステップ５０３では、オペレーティングシステムはスリープモードが適切であることを決定する。例えば集積回路１００は種々の回路領域を有していてよく、あるいはタイマーにより決定された期間、原則的に非アクティブであってよい。ステップ５０５では、オペレーションシステムがコンテキスト情報をメモリ、例えばダイ上ＲＡＭ１１５に記憶する。スリープ処理に従いＣＰＵは次いで、ステップ５０７に示されるように、補助メモリ制御器領域１０９上に配置されるエネルギー制御器１１０から低電力モードを要求してよい。それに応答してエネルギー制御器１１０は、ステップ５０９に示されるようにスリープ割り込みをＣＰＵへ送ってよい。ＣＰＵは次いでステップ５１１に示されるように、スリープモードコード１１６及びウエイクアップコード１１７のためにＲＡＭ１１５内のメモリを予約するよう主要メモリ制御器１０４に要求してよい。メモリ制御器はまたステップ５１１において、ＣＰＵ１１３から要求されたならば、予約されたＲＡＭ１１５メモリスペースをセキュアである（安全である）として標識付けてよい。しかし、このメモリ予約及び／又はメモリのセキュアであるとしての標識付けは全ての実施形態においてある必要はない。ステップ５１３に示されるように、ＣＰＵはスリープモードコード１１６及びウエイクアップコード１１７、またコンテキスト情報をダイ上ＲＡＭ１１５に書き込む。ＣＰＵは次いでステップ５１５に示されるようにスリープモードコード１１６にジャンプする。スリープモードコード１１６は次いでステップ５１７に示されるように、外部メモリを自己リフレッシュモードに置いてよい。例えば、ＤＤＲ＿ＲＡＭ１２５が自己レフレッシュモードに置かれてよい。ＤＤＲ＿ＲＡＭ１２５は、スリープモードに入る前にＯＳがあった動作状態にＯＳが戻れるように、スリープモードに入る前に全てのコンテキスト情報を記憶するために用いられてよい。任意の好適なメモリが実施形態に従ってコンテキスト情報を記憶するために用いられてよい。ＤＤＲ＿ＲＡＭ１２５を自己リフレッシュモードに保つことによって、電力が節約される一方でウエイクアップ動作の際に必要になった場合に全てのコンテキスト情報はＯＳによって検索又は回収可能になろう。実施形態では、ＤＤＲ＿ＲＡＭ１２５は全てのコンテキスト情報だけでなく全体のオペレーティングシステム（ＯＳ）イメージをも記憶する。ステップ５１７の後、幾つかの実施形態では、スリープモードコード１１６は次いでステップ５１９に示されるように、メモリの制御を主要メモリ制御器１０４から補助メモリ制御器１１２へエネルギー制御器１１０を介して移行させる。補助メモリ制御器１１２は次いでステップ５２１に示されるように、ダイ上ＲＡＭ１１５のみにアクセスする。ステップ５２３では、ＣＰＵ領域１１３を含む種々の領域がシャットダウンされ又はさもなければサスペンド状態２０５に置かれてよい。
【００３２】
図６は図５に示される集積回路１００スリープモード動作５００に対応するウエイクアップ動作６００を示している。従ってステップ６０１ではウエイクアップイベントが発生して、集積回路１００はステップ６０３に示されるようにＣＰＵをアクティブに回復させる。ステップ６０５では、エネルギー制御器１１０がシステム割り込みに基いて標準電力に対する要求を受け取る。ステップ６０７では、エネルギー制御器はＣＰＵ領域１１３上のＣＰＵをリセットする。次いでステップ６０９に示されるように、ウエイクアップコード１１７は主要メモリ制御器領域１０３を回復させてよい。これは代替的な実施形態ではエネルギー制御器１１０によって行われてよい。ステップ６１１では、ダイ上ＲＡＭ１１５に記憶されているコンテキスト情報を用いてウエイクアップコード１１７がコンテキスト情報を回復させる。
【００３３】
ステップ６１３では、補助メモリ制御器１１２は制御を主要メモリ制御器１０４へ返す。これは自動的に、ＣＰＵによって開始されてよくあるいは幾つかの実施形態ではエネルギー制御器１１０を介して開始されてよい。主要メモリ制御器１０４は次いでステップ６１５に示されるように、ＤＤＲ＿ＲＡＭ１２５及び他のメモリを自己リフレッシュモードから外す。最後にステップ６１７に示されるように、制御がオペレーティングシステムに戻される。
【００３４】
図７及び図８はここに開示されるスリープ及びウエイクアップ手続きを利用した実施形態の付加的な詳細を提供する信号流れ図である。図７及び図８において、図の上部のブロックはソフトウエア及び／又は集積回路１００の要素を示している。例えばＣＰＵ１１３上でのソフトウエア動作である。ソフトウエアはオペレーティングシステムであってよく、あるいはスリープモードコード１１６又はウエイクアップコード１１７であってよい。このコードは図の左欄によって示される種々の位置に配置されてよい。例えばコードは、ランダムアクセスメモリ若しくはＤＤＲ、ランダムアクセスメモリ単独、又はＣＰＵキャッシュ上に位置していてよい。図の右欄は、主要メモリ制御器が動作中あるいは補助メモリ制御器が動作中に信号フローのどの信号が発生するかを示している。図７は実施形態に従うスリープモード動作７００を示している。
【００３５】
最初にオペレーティングシステムがＣＰＵ上で動作しており、オペレーティングシステムはＣＰＵ１１３上のソフトウエアである。ソフトウエア又はオペレーティングシステムは、集積回路１００がスリープモードに入るのを許容可能であることを決定しなければならない。一旦これが発生すると、コンテキスト保存が例えばＤＤＲ＿ＲＡＭ１２５に対して作成されてよい。このことは図７において信号７０１として示されている。ＤＤＲ＿ＲＡＭ１２５へ記憶されたコンテキスト情報は完全コンテキスト情報である。即ち、スリープモード処理７００を開始する前に集積回路１００上で動作している全てのシステム及び処理のための完全コンテキスト情報である。信号７０１は低電力モードのためのオペレーティングシステム準備を含む。従って、ＣＰＵ１１３上のオペレーティングシステムは低電力実行モードを要求する実行要求７０３をエネルギー制御器１１０へ送ってよい。エネルギー制御器１１０は適切なメッセージ又は割り込み７０５によってオペレーティングシステムに応答してよい。既に論じられたように、幾つかの実施形態では、信号７０１で示されるように、オペレーティングシステムはスリープモードコード及びウエイクアップコードのためにメモリを予約することを主要メモリ制御器１０４に指示してよく、また改ざんを防ぐためのセキュアメモリとしてそれを標識付けてよい。オペレーティングシステムは次いで信号７０９で示されるように、スリープモードコード１１６及びウエイクアップコード１１７をダイ上ＲＡＭ１１５にコピーしてよい。オペレーティングシステムは次いでメッセージ７１１により示されるように、ダイ上ＲＡＭ１１５内のスリープコードへ移行し、又はさもなければスリープコードへジャンプしてよい。図７の左側によって示されるように、ＣＰＵ１１３上のソフトウエアは現時点でＲＡＭ１１５上に位置している。
【００３６】
現時点でＣＰＵ１１３上のソフトウエアとして動作しているスリープモードコード１１６は、エネルギー制御器１１０にメッセージ７１３を送ってよく、エネルギー制御器１１０は次いで、主要メモリ制御器１０４が制御を補助メモリ制御器へ移行させるように主要メモリ制御器１０４にメッセージ７１４を送る。メッセージ７１４に応答して、主要メモリ制御器はメモリ、例えばＤＤＲ＿ＲＡＭ１２５を前述のように自己リフレッシュモードに置いてよい。ＤＤＲ＿ＲＡＭ１２５は図７に示された例では、集積回路１００の全コンテキスト及び全ＯＳイメージを記憶する。
【００３７】
幾つかの実施形態では信号７１５で示されるように、スリープモードコード１１６は、自己レフレッシュモードへのメモリの来るべき変化のために、ＣＰＵキャッシュからのスリープモードコードの残余を実行する準備をＣＰＵにさせてよい。しかし、スリープモードコードはもっぱらＳＲＡＭ１１５から実行されてよいので、ＣＰＵキャッシュを用いることは多くの実施形態で必要ではない。この時点で、スリープモードコードは、補助メモリ制御器１０９への切り換えを開始することをエネルギー制御器１１０に指示するメッセージ７１７を、エネルギー制御器１１０へ送ってよい。補助メモリ制御器１１２への移行に先立ち、主要メモリ制御器１０４とエネルギー制御器１１０の間でハンドシェーキング７１９が生じてよい。主要メモリ制御器１０４は次いで信号７２１により、ＤＤＲ＿ＲＡＭ１２５を自己リフレッシュモードに置いてよい。ＣＰＵで実行中のスリープモードコード１１６は、メッセージ７２３により補助メモリ制御器についてアクティビティに対する調査を行ってよい。補助メモリ制御器がアクティブであれば、補助メモリ制御器はエネルギー制御器１１０及びメッセージ７２５を介して応答してよい。ＣＰＵ１１３上で実行中のスリープモードコード１１６は、種々のメッセージ、限定はされないが例えばメッセージ７２７を介してエネルギー制御器１１０と更に通信してよく、メッセージ７２７は、種々のインデックスが集積回路１００の回路領域の種々の電力モードに対応するようにエネルギー制御器１１０をプログラムしてよい。スリープモードコード１１６はメッセージ、例えばメッセージ７２９をメモリ制御器１１４に送り、ＣＰＵリセットベクターがウエイクアップコード１１７を向くするようにメモリ制御器１１４をセットアップしてよい。可能であればスリープモードコードはメッセージ７３１を補助メモリ制御器１１２へ送り、可能であればランダムアクセスメモリの種々の部分の電力を減らしてよい。ソフトウエアは次いで、クロック管理メッセージ７３３を介したクロック管理をエネルギー制御器１１０に対して実行し、メッセージ７３５を介して主要メモリ制御器１０３の電力を減らすようにエネルギー制御器１１０に指示してよい。それらに応答してエネルギー制御器１１０は、主要メモリ制御器１０３が電力ゲートされるように、メッセージ７３７を主要メモリ制御器１０３へ送ってよい。更にエネルギー制御器１１０は信号７３９で示されるようにＣＰＵ１１３を電力ゲートしてよく、信号７４１を介して補助メモリ制御器領域１０９へのクロックをターンオフしてよい。
【００３８】
図８は図７に示されるスリープモード手続き７００に対応するウエイクアップ手続き８００を示している。従って信号８０１はエネルギー制御器１１０で受け取られた割り込みを示している。割り込みはシステムをスリープモードから覚醒させるウエイクアップイベントに対応している。図８においては、図示はしないが割り込み制御器論理もまた存在しており、従って割り込み信号８０１は割り込み制御器論理を介して処理される割り込みを提示することが理解されるべきである。ウエイクアップイベントに応答してエネルギー制御器１１０は信号８０３を補助メモリ制御器１０９へ送り、クロックを再度ターンオンしてよい。この時点でエネルギー制御器１１０はまた、割り込みウエイクアップイベント信号８０１に応答して、対応する割り込み８０５をＣＰＵ１１３へ送ってよく、割り込み８０５はチップ割り込み論理（図示せず）と共に実行されてよい。エネルギー制御器１１０は次いで、リセット信号をリセット８０９としてＣＰＵ１１３へ送ってよく、またＣＰＵ１１３へのクロック信号をターンオンしてよい。ＣＰＵ１１３は次いで、ダイ上ＲＡＭ１１５に記憶されているウエイクアップコード１１７を介して割り込みを処理してよい。
【００３９】
信号８１１で示されるように、ＣＰＵ１１３はＲＡＭ１１５に記憶されているウエイクアップコード１１７へ移行又は「ジャンプ」してよい。ＳＲＡＭ１１５からＣＰＵ１１３で実行されるウエイクアップコード１１７はその時点で、主要メモリ制御器領域１０３及びメッセージ８１５を介して主要メモリ制御器１０４を覚醒させることをエネルギー制御器１１０に指示する命令８１３を、エネルギー制御器１１０へ送ってよい。ＣＰＵ１１３上で実行されているウエイクアップコード１１７は動作８１７を介して、ダイ上ＲＡＭ１１５に記憶されているコンテキスト情報を検索、回収しそれをＣＰＵキャッシュ内へ置くことができる。しかし、多くの実施形態に対してウエイクアップコード１１７は全体的にダイ上ＲＡＭ１１５から実行されるであろう。ＣＰＵは次いでダイ上ＲＡＭ１１５からの、あるいは幾つかの実施形態ではキャッシュからのコードを実行する一方で、補助メモリ制御器１１２から主要メモリ制御器１０４への移行が起こっている。ウエイクアップコード１１７は主要メモリ制御器１０４へ戻る移行を要求する命令８１９をエネルギー制御器１１０へ送ってよい。次いでハンドシェーキング８２１が主要メモリ制御器１０４とエネルギー制御器１１０の間で起こってよい。更に、主要メモリ制御器１０４は命令８２３を介してＤＤＲ＿ＲＡＭ１２５を自己リフレッシュモードから外してよい。ＣＰＵ１１３上で実行されているウエイクアップコード１１７は次いで、メッセージ８２５で示されるように、主要メモリ制御器１０４がアクティブであるかどうかを確認するためにエネルギー制御器１１０を調査してよい。エネルギー制御器１１０は、主要メモリ制御器１０４がその時点で再度アクティブになったことを示す応答メッセージ８２７をＣＰＵへ送ってよい。ＣＰＵ１１３は次いで、回復コード、即ち８２９で示されるようにＤＤＲ＿ＲＡＭ１２５に記憶されている全コンテキスト情報へジャンプしてよい。ＣＰＵは次いで、種々のクリーンアップ動作、例えば信号８３１で示されるようなＣＰＵリセットベクター再配置（ＣＰＵリセットベクターがウエイクアップコード１１７を向くように設定したメッセージ７２９からのセットアップを取り消すための）及び信号８３３を介したクロック周波数の回復を実行してよい。最後に８３５で示されるようにオペレーティングシステムが引き継ぎ、ウエイクアップイベントは信号８３７で示されるようにオペレーティングシステムによって処理される。
【００４０】
ここに開示される種々の実施形態によると、例えばＣＰＵ領域１１３のＣＰＵ上で実行されているオペレーティングシステムは、スリープモード及びウエイクアップモード動作を透過的に実行する。即ち、オペレーティングシステムは、スリープモード及びウエイクアップモード動作の間に行われている動作に気付かない。オペレーティングシステムはスリープイベント及びウエイクアップイベントが発生したことに気付くのみである。実施形態によると、主要メモリ制御器領域１０３を含め集積回路１００の種々の回路領域がスリープモード又はサスペンドに置かれるが、集積回路１００の全オペレーティングコンテキストはウエイクアップイベントで回復される。種々の実施形態の種々の応用が当業者によってなされるであろう。例えば、主要メモリ制御器領域１０３上のオーディオプロセッサ１０７を介したオーディオアプリケーションが動作していてよい。そのようなシナリオにおいては、ＣＰＵ領域１１３はオーディオに対する悪影響なしにシャットダウンされてよく、それにより低電力オーディオ再生モードの提供が可能になる。種々の他の可能性が当業者にとって明らかであろう。
【００４１】
ここに開示された例示的な実施形態では、スリープモードコード１１６及びウエイクアップコード１１７はダイ上ＲＡＭ１１５に記憶されたソフトウエアコードとして体現された。しかし、他の実施形態は、ここに開示されるスリープモード及びウエイクアップモード動作を行うように動作し且つ実施形態に従って動作を継続する論理を含むことができる。更に他の実施形態は、集積回路１００上に配置される種々の論理との組み合わせにおいて、スリープモードコード１１６及びウエイクアップコード１１７のようなダイ上ＲＡＭ１１５に記憶されたソフトウエアコードの組み合わせを含むことができる。例えば、そのような論理は補助メモリ制御器１１２と共に補助メモリ制御器領域１０９上に含まれていてよい。ここに開示される例示的な実施形態に対して、また図１に示される集積回路１００の例に関して、ＣＰＵ領域１１３のＣＰＵはスリープモードコード１１６及び／又はウエイクアップコード１１７と共に、集積回路１００のスリープモードに入るためにメモリアクセスの制御を主要メモリ制御器１０４から補助メモリ制御器１１２へ移行するように動作する論理を策定する。実施形態のスリープモードは集積回路１００の一つ又は幾つかの回路領域をスリープモードに置くことを含み、また例えば、主要メモリ制御器領域１０３をスリープモードに置くことを含んでよい。
【００４２】
ここで用いられるＣＰＵ又は「プロセッサ」という用語は、１つ又は２つ以上の専用の又は非専用の、マイクロプロセッサ、マイクロコントローラ、シーケンサ、マイクロシーケンサ、デジタル信号プロセッサ、プロセシングエンジン、ハードウエアアクセラレータ（例えばＧＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、ステートマシン、プログラマブル論理アレイ、及び／又はデータ若しくは情報を処理可能な単一の回路要素若しくは回路要素の集合、又は上記の任意の組み合わせを参照してよい。同様に「メモリ」は、任意の好適な揮発性若しくは不揮発性のメモリ、メモリデバイス、チップ若しくは回路、又は任意の記憶用のデバイス、チップ若しくは回路、限定はされないが例えばシステムメモリ、フレームバッファメモリ、フラッシュメモリ、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、レジスタ、ラッチ、又は上記の任意の組み合わせを参照してよい。誤解を避けるために、「論理」は、任意の電子回路又は回路要素（１つ又は２つ以上の回路又は集積回路にかかわらず）、限定はされないが例えばプロセッサ（実行可能な命令を実行することが可能な）、トランジスタ、電子回路、メモリ、組み合わせ論理回路、又は所用の動作若しくは機能を提供することが可能な上記の任意の組み合わせを参照してよい。「集積回路」という用語は、回路全体（例えばチップ）及び回路の一部分の両方を指定するために交換的に用いられてよい。「信号」は任意の適切なデータ、情報又は標識を参照してよい。また、当業者によって理解されるであろうように、「モジュール」又はプロセッサの動作、設計、及び組織化はハードウエア記述言語、例えばＶｅｒｉｌｏｇ（商標）、ＶＨＤＬ又は他の適切なハードウエア記述言語において記述されることができ、当該ハードウエア記述言語コード又は命令はコンピュータ可読媒体に記憶させることができる。
【００４３】
上述の詳細な説明及びそこに記述される例は例示及び説明の目的のみのために提示されてきたものであり、限定のためのものではない。例えば説明された動作は任意の適切なやり方で行われてよい。方法ステップは、説明された動作終了結果を提供する限りにおいて任意の適切な順序で行われてよい。従って、上に開示されここに請求される基本的な内在的な原理の精神及び範囲内にある任意のそして全ての修正、変更又は均等なものにまで本実施形態が及ぶことが意図されているものである。
【図１】
2011521365.tif 000003
【図２】
2011521365.tif 000004
【図３】
2011521365.tif 000005
【図４】
2011521365.tif 000006
【図５】
2011521365.tif 000007
【図６】
2011521365.tif 000008
【図７】
2011521365.tif 000009
【図８】
2011521365.tif 000010
【国際調査報告】
2011521365.tif 000011
2011521365.tif 000012
2011521365.tif 000013