(57)【特許請求の範囲】
【請求項１】
1つまたは複数の割込みコントローラのスリープ状態を管理するための方法であって、
ポータブルコンピューティングデバイス内に含まれるプロセッサが前記1つまたは複数の割込みコントローラを有し、前記方法が、
前記ポータブルコンピューティングデバイス内に含まれる記憶デバイスにおいて起動割込み設定を定義するステップであって、前記記憶デバイスのメモリ要素が、割込みコントローラをスリープ状態にするための信号を発行することを担う電力マネージャ内に含まれるレジスタに反映される値を有するように設定するステップと、
前記記憶デバイスにおいて起動割込み設定が定義されたというアラートを生成するステップと、
前記ポータブルコンピューティングデバイス内に含まれる複数のプロセッサと通信する複数の割込みコントローラについての、前記記憶デバイスにおける起動割込み設定を取得するステップであって、各割込みコントローラは、各々対応するプロセッサと通信するステップと、
前記複数の割込みコントローラについての、前記記憶デバイスにおける複数の前記起動割込み設定を１つの起動割込み設定にマージするステップと、
前記マージされた起動割込み設定を、割込みコントローラをスリープ状態にするための信号を発行することを担う前記電力マネージャに送るステップと、
前記電力マネージャから電力管理集積回路(PMIC)に前記割込みコントローラをスリープ状態にするための信号を発行するステップと
を含む方法。
【請求項２】
許可テーブルを検索して、割込みコントローラのレジスタのうちのいずれかの状態を変えるための権限をプロセッサがもつかどうか判断するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記マージされた起動割込み設定を、前記電力マネージャ内の複数のレジスタに送るステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記起動割込み設定が、有効設定、タイプ/検出設定、極性設定、およびクリア設定のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項５】
前記電力マネージャからプロセッサに割込み信号を送るステップをさらに含む、請求項1に記載の方法。
【請求項６】
起動割込み設定用に特定のプロセッサに割り当てられた、前記記憶デバイスの部分を読み取るステップをさらに含む、請求項1に記載の方法。
【請求項７】
ローカル割込みテーブルを使って、前記記憶デバイスにある前記起動割込み設定を、前記割込みコントローラによって理解されるローカルな起動割込み設定に翻訳するステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記翻訳された起動割込み設定を、前記特定のプロセッサの割込みコントローラに送信するステップをさらに含む、請求項7に記載の方法。
【請求項９】
1つまたは複数の割込みコントローラのスリープ状態を管理するためのコンピュータシステムであって、ポータブルコンピューティングデバイス内に含まれるプロセッサが前記1つまたは複数の割込みコントローラを有し、前記コンピュータシステムが、
プロセッサを備え、前記プロセッサが、
前記ポータブルコンピューティングデバイス内に含まれる記憶デバイスであって、割込みコントローラをスリープ状態にするための信号を発行することを担う電力マネージャ内に含まれるレジスタに反映される値を有するメモリ要素を備える記憶デバイスにおいて起動割込み設定を定義し、
前記記憶デバイスにおいて起動割込み設定が定義されたというアラートを生成し、
前記ポータブルコンピューティングデバイス内に含まれる複数のプロセッサと通信する複数の割込みコントローラについての、前記記憶デバイスにおける起動割込み設定を取得し、各割込みコントローラは、各々対応するプロセッサと通信し、
前記複数の割込みコントローラについての、前記記憶デバイスにおける複数の前記起動割込み設定を１つの起動割込み設定にマージし、
前記マージされた起動割込み設定を、割込みコントローラをスリープ状態にするための信号を発行することを担う前記電力マネージャに送り、
前記電力マネージャから電力管理集積回路(PMIC)に前記割込みコントローラをスリープ状態にするための信号を発行する
ように動作可能であるシステム。
【請求項１０】
前記プロセッサが、
許可テーブルを検索して、割込みコントローラのレジスタのうちのいずれかの状態を変えるための権限をプロセッサがもつかどうか判断するようにさらに動作可能である、請求項9に記載のシステム。
【請求項１１】
前記プロセッサが、
前記マージされた起動割込み設定を、前記電力マネージャ内の複数のレジスタに送るようにさらに動作可能である、請求項9に記載のシステム。
【請求項１２】
前記起動割込み設定が、有効設定、タイプ/検出設定、極性設定、およびクリア設定のうちの少なくとも1つを含む、請求項9に記載のシステム。
【請求項１３】
前記プロセッサが、
前記電力マネージャからプロセッサに割込み信号を送るようにさらに動作可能である、請求項9に記載のシステム。
【請求項１４】
前記プロセッサが、
起動割込み設定用に特定のプロセッサに割り当てられた、前記記憶デバイスの部分を読み取るようにさらに動作可能である、請求項9に記載のシステム。
【請求項１５】
前記プロセッサがさらに、
ローカル割込みテーブルを使って、前記記憶デバイスにある前記起動割込み設定を、前記割込みコントローラによって理解されるローカルな起動割込み設定に翻訳するようにさらに動作可能である、請求項14に記載のシステム。
【請求項１６】
前記プロセッサがさらに、
前記翻訳された起動割込み設定を、前記特定のプロセッサの割込みコントローラに送信するようにさらに動作可能である、請求項15に記載のシステム。
【請求項１７】
1つまたは複数の割込みコントローラのスリープ状態を管理するためのコンピュータシステムであって、ポータブルコンピューティングデバイス内に含まれるプロセッサが前記1つまたは複数の割込みコントローラを有し、前記コンピュータシステムが、
前記ポータブルコンピューティングデバイス内に含まれる記憶デバイスにおいて起動割込み設定を定義するための手段であって、前記記憶デバイスのメモリ要素が、割込みコントローラをスリープ状態にするための信号を発行することを担う電力マネージャ内に含まれるレジスタに反映される値を有するように設定する手段と、
前記記憶デバイスにおいて起動割込み設定が定義されたというアラートを生成するための手段と、
前記ポータブルコンピューティングデバイス内に含まれる複数のプロセッサと通信する複数の割込みコントローラについての、前記記憶デバイスにおける起動割込み設定を取得するための手段であって、各割込みコントローラは、各々対応するプロセッサと通信する手段と、
前記複数の割込みコントローラについての、前記記憶デバイスにおける複数の前記起動割込み設定を１つの起動割込み設定にマージするための手段と、
前記マージされた起動割込み設定を、割込みコントローラをスリープ状態にするための信号を発行することを担う前記電力マネージャに送るための手段と、
前記電力マネージャから電力管理集積回路(PMIC)に前記割込みコントローラをスリープ状態にするための信号を発行するための手段と
を備えるシステム。
【請求項１８】
許可テーブルを検索して、割込みコントローラのレジスタのうちのいずれかの状態を変えるための権限をプロセッサがもつかどうか判断するための手段をさらに備える、請求項17に記載のシステム。
【請求項１９】
前記マージされた起動割込み設定を、前記電力マネージャ内の複数のレジスタに送るための手段をさらに備える、請求項17に記載のシステム。
【請求項２０】
前記起動割込み設定が、有効設定、タイプ/検出設定、極性設定、およびクリア設定のうちの少なくとも1つを含む、請求項17に記載のシステム。
【請求項２１】
前記電力マネージャからプロセッサに割込み信号を送るための手段をさらに備える、請求項17に記載のシステム。
【請求項２２】
起動割込み設定用に特定のプロセッサに割り当てられた、前記記憶デバイスの部分を読み取るための手段をさらに備える、請求項17に記載のシステム。
【請求項２３】
ローカル割込みテーブルを使って、前記記憶デバイスにある前記起動割込み設定を、前記割込みコントローラによって理解されるローカルな起動割込み設定に翻訳するための手段をさらに備える、請求項22に記載のシステム。
【請求項２４】
前記翻訳された起動割込み設定を、前記特定のプロセッサの割込みコントローラに送信するための手段をさらに備える、請求項23に記載のシステム。
【請求項２５】
コンピュータプログラムであって、1つまたは複数の割込みコントローラのスリープ状態を管理するための方法を実施するために実行されるように適合され、ポータブルコンピューティングデバイス内に含まれるプロセッサが前記1つまたは複数の割込みコントローラを有し、前記プロセッサに、
前記ポータブルコンピューティングデバイス内に含まれる記憶デバイスにおいて起動割込み設定を定義するステップであって、前記記憶デバイスのメモリ要素が、割込みコントローラをスリープ状態にするための信号を発行することを担う電力マネージャ内に含まれるレジスタに反映される値を有するように設定するステップと、
前記記憶デバイスにおいて起動割込み設定が定義されたというアラートを生成するステップと、
前記ポータブルコンピューティングデバイス内に含まれる複数のプロセッサと通信する複数の割込みコントローラについての、前記記憶デバイスにおける起動割込み設定を取得するステップであって、各割込みコントローラは、各々対応するプロセッサと通信するステップと、
前記複数の割込みコントローラについての、前記記憶デバイスにおける複数の前記起動割込み設定を１つの起動割込み設定にマージするステップと、
前記マージされた起動割込み設定を、割込みコントローラをスリープ状態にするための信号を発行することを担う前記電力マネージャに送るステップと、
前記電力マネージャから電力管理集積回路(PMIC)に前記割込みコントローラをスリープ状態にするための信号を発行するステップと
を実行させるコンピュータプログラム。
【請求項２６】
許可テーブルを検索して、割込みコントローラのレジスタのうちのいずれかの状態を変えるための権限をプロセッサがもつかどうか判断することをさらに含む、請求項25に記載のコンピュータプログラム。
【請求項２７】
前記マージされた起動割込み設定を、前記電力マネージャ内の複数のレジスタに送ることをさらに含む、請求項25に記載のコンピュータプログラム。
【請求項２８】
前記起動割込み設定が、有効設定、タイプ/検出設定、極性設定、およびクリア設定のうちの少なくとも1つを含む、請求項25に記載のコンピュータプログラム。
【請求項２９】
前記電力マネージャからプロセッサに割込み信号を送ることをさらに含む、請求項25に記載のコンピュータプログラム。
【請求項３０】
起動割込み設定用に特定のプロセッサに割り当てられた、前記記憶デバイスの部分を読み取ることをさらに含む、請求項25に記載のコンピュータプログラム。
【請求項３１】
ローカル割込みテーブルを使って、前記記憶デバイスにある前記起動割込み設定を、前記割込みコントローラによって理解されるローカルな起動割込み設定に翻訳することをさらに含む、請求項30に記載のコンピュータプログラム。
【請求項３２】
前記翻訳された起動割込み設定を、前記特定のプロセッサの割込みコントローラに送信することをさらに含む、請求項31に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権および関連出願に関する陳述
本出願は、「Method and system for managing sleep states of interrupt controllers in a portable computing device」と題する2011年1月4日に出願された米国仮特許出願第61/429,522号に対する米国特許法第119条(e)項に基づく優先権を主張する。この米国仮特許出願の内容全体が、参照により本明細書に組み込まれる。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(「PCD」)は、個人レベルおよび専門家レベルの人々に必要なものになりつつある。これらのデバイスは、セルラー電話、携帯情報端末(「PDA」)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。
【０００３】
PCDは通常、中央処理装置、デジタル信号プロセッサなどを含む複数の処理ユニットから一般的に作られる複雑でコンパクトな電子パッケージングを有する。多くの中央処理装置(「CPU」)が、その内部構造の一部として、割込みコントローラ(「IC」)をもつ。ICは一般に、割込みを集めてから、CPU上の単一割込みピンに信号を渡す。こうすることにより、CPU上の割込みピンを節約することができ、システムを設計するときの柔軟性を与えることもできる。各ICは、割込みを制御するマスクおよび状況レジスタを有し得る。
【０００４】
ICは、CPUにとって、マルチタスクを容易にするのに有用であるが、CPUが低電力状態に入る必要があるとき、問題を呈する。低電力状態は、当業者にはスリープ状態としても知られている。通常、ICがスリープ状態にあるとき、ICを「起動」またはアクティブ化するためのいかなるハードウェアもソフトウェアもないので、多くのICは、スリープ状態に入ることを許可されない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ICは、通常、スリープ状態にされないので、PCDの貴重な電力を消費してしまう。したがって、当該分野において、ICをスリープ状態にさせ、そうすることによってPCD用の電力を節約し得る方法およびシステムを提供する必要がある。
【課題を解決するための手段】
【０００６】
ポータブルコンピューティングデバイス内に含まれるプロセッサの1つまたは複数の割込みコントローラのスリープ状態を管理するための方法およびシステムについて、記載する。この方法は、ポータブルコンピューティングデバイス内に含まれる記憶デバイスにおいて起動割込み設定を定義するプロセッサを含む。この記憶デバイスは、メッセージランダムアクセスメモリ(「RAM」)を含み得る。メッセージRAM内で起動設定が確立された後、プロセッサは、メッセージRAM内で起動設定が定義されたというアラートを生成し得る。次に、コントローラは、ポータブルコンピューティングデバイス内に含まれる複数のプロセッサと合致する、メッセージRAMにおける、複数の割込みコントローラについての起動割込み設定を検討する。コントローラは、メッセージRAMにおける起動設定をマージし、次いで、マージされた起動設定を、常時オン電力マネージャ(「APM」)に送る。APMは、プロセッサの割込みコントローラをスリープ状態にするための信号を発行することを担う。「常時オン」という用語は、APMが通常、他のデバイスと通信するために、十分な一定の電力を常に受信することを意味する。
【０００７】
コントローラは、許可テーブルを検討して、特定のプロセッサについての割込みコントローラの状態を変えるための権限をプロセッサがもつかどうか判断することができる。コントローラは、マージされた起動設定を、APM内に含まれる複数のレジスタに送ることができる。起動設定は、有効設定、タイプ/検出設定、極性設定、状況設定、およびクリア設定のうちの少なくとも1つを含み得る。
【０００８】
図中、別段に規定されていない限り、類似の参照番号は、様々な図の全体を通じて、類似の部分を指す。「102A」または「102B」のような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。
【図面の簡単な説明】
【０００９】
【図１】ポータブルコンピューティングデバイス(PCD)の一実施形態を示す機能ブロック図である。
【図２】コントローラ、常時オン電力マネージャ、および常時オン割込みコントローラの詳細を示す機能ブロック図である。
【図３】図2の常時オン割込みコントローラ用のレジスタを示す機能ブロック図である。
【図４】メッセージランダムアクセスメモリを示す機能ブロック図である。
【図５】マスタープロセッサの隣にあるローカル割込みテーブルを示す機能ブロック図である。
【図６】複数のCPUの1つまたは複数の割込みコントローラ(「IC」)をスリープ状態にするための方法を示す論理フローチャートである。
【図７Ａ】1つまたは複数の割込みコントローラおよび複数のマスタープロセッサをスリープ状態から起動するための方法を示す論理フローチャートである。
【図７Ｂ】1つまたは複数の割込みコントローラおよび複数のマスタープロセッサをスリープ状態から起動するための方法を示す論理フローチャートである。
【発明を実施するための形態】
【００１０】
「例示的」という語は、「例、実例、または具体例としての役割を果たすこと」を意味するように本明細書において用いられている。「例示的な」ものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【００１１】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１２】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「コンテンツ」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１３】
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してよく、1つの構成要素を1つのコンピュータに局在化すること、および/または2つ以上のコンピュータ間に分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、信号によりローカルシステム、分散システムにおいて別の構成要素と対話し、かつ/または他のシステムとインターネットなどのネットワークにわたって対話する、1つの構成要素からのデータ)を有する信号に従うなどしてローカルプロセスおよび/またはリモートプロセスにより通信することができる。
【００１４】
本明細書では、用語「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」および「ワイヤレスハンドセット」は交換可能に用いられる。第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術が出現したことによって、利用可能な帯域が拡大されたので、より多様なワイヤレス機能を備えたより携帯が容易なコンピューティングデバイスが利用可能になっている。
【００１５】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリーなど限られた容量の電源で動作する任意のデバイスを説明するために使用される。何十年もの間バッテリー式PCDが使用されてきたが、第3世代(「3G」)および第4世代(「4G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、中でも、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってよい。
【００１６】
図1: PCD100内のIC209Bのスリープ状態を管理するための要素
図1を参照すると、この図は、PCD100の割込みコントローラ209Bのスリープ状態を管理するための方法およびシステムを実現するためのワイヤレス電話の形態によるPCD100の例示的で非限定的な態様の機能ブロック図である。図示のように、PCD100は、マルチコアである第1の中央処理装置(「CPU」)110A、シングルコアタイプである第2のCPU110B、およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。これらのプロセッサ110A、110B、および126は結合され得る。第1のCPU110Aは、当業者によって理解されるように第0のコア222、第1のコア224、および第Nのコア230を含むことができる。代替的実施形態では、当業者に理解されるように、2つのCPU110の代わりに2つのデジタル信号プロセッサ(「DSP」)も利用することができる。
【００１７】
図1は、コントローラ101、電力管理集積回路(「PMIC」)157、常時オン電力マネージャ(「APM」)177、およびレジスタを有する常時オン割込みコントローラ(「AIC」)209Aを含むPCD100を示す。APM177およびAIC209Aについての「常時オン」という用語は、APM177およびAIC209Aが通常、他のデバイスと通信するために、十分な一定の電力を常に受信することを意味する。
【００１８】
PMIC157は、常時オン電力マネージャ177から受信された制御信号に応答して、プロセッサ110、126ならびに割込みコントローラ209Bへの電力のオンおよびオフを担う。常時オン割込みコントローラ209A、コントローラ101、およびマスタープロセッサ110のさらなる詳細を、図2に示し、後で説明する。コントローラ101および常時オン電力マネージャ177は、各プロセッサ110、126の個々の割込みコントローラ209Bについてのスリープ状態の管理を担う。
【００１９】
図1は、PCD100がメモリまたはメッセージRAM112を含み得ることも示している。コントローラ101ならびにマスタープロセッサ110、126は、メッセージRAM112にアクセスすることができる。これらのデバイスは、後で説明するように、マスタープロセッサ110、126内でIC209Bのスリープ状態を管理するために、メッセージRAM112にアクセスする。
【００２０】
特定の態様において、本明細書で説明する方法ステップのうちの1つまたは複数は、コントローラ101、常時オン電力マネージャ177、および常時オン割込みコントローラ209Aの一部を形成する、メモリ112に記憶された実行可能命令およびパラメータによって実施され得る。本明細書に記載する1つまたは複数の方法ステップは、これらの3つの要素の各々によって実行される実行可能命令およびパラメータによっても実装され得る。いくつかの図に示す例示的な実施形態は、ハードウェアで実施されるべき割込みコントローラ電力システム107のいくつかの部分(図2参照)を示しているが、これらのデバイスの機能および特徴は、ソフトウェアまたはそれらの組合せで実装され得ることが当業者には認識されよう。
【００２１】
コントローラ101を含む、割込みコントローラ電力システム107の一部(図2参照)は、CPU110、アナログ信号プロセッサ126、または別のプロセッサによって実行することができる。さらに、割込みコントローラ電力システム107、プロセッサ110、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書で説明する方法ステップのうちの1つまたは複数を実施するための手段として動作し得る。
【００２２】
図1:PCD100の他の要素
図1に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタル信号プロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
【００２３】
図1は、ビデオコーダ/デコーダ(「コーデック」)134、たとえば、位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のタイプのビデオエンコーダ134を含むポータブルコンピューティングデバイス(PCD)の一実施形態を示す概略図である。ビデオコーデック134は、マルチコア中央処理装置(「CPU」)110に結合される。ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。図1に示すように、ユニバーサルシリアルバス(「USB」)コントローラ140がCPU110に結合される。また、USBポート142がUSBコントローラ140に結合される。加入者識別モジュール(SIM)カード146も、CPU110に結合され得る。さらに、図1に示すように、デジタルカメラ148がCPU110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００２４】
図1にさらに示すように、ステレオオーディオコーデック150がアナログ信号プロセッサ126に結合され得る。さらに、オーディオ増幅器152がステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156がオーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示している。加えて、マイクロフォン160がマイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナー162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。
【００２５】
図1は、高周波(「RF」)トランシーバ168がアナログ信号プロセッサ126に結合され得ることをさらに示している。RFスイッチ170がRFトランシーバ168およびRFアンテナ172に結合され得る。図1に示されるように、キーパッド174がアナログ信号プロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176がアナログ信号プロセッサ126に結合され得る。さらに、バイブレータデバイス178がアナログ信号プロセッサ126に結合され得る。図1は、たとえばバッテリーなどの電源180がオンチップシステム102に結合されることも示している。特定の態様では、電源180は、充電式DCバッテリー、または交流(「AC」)電源に接続されたAC-DC変換器から導かれるDC電源を含む。
【００２６】
図1に示されるように、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカー154、第2のステレオスピーカー156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、電力管理集積回路157、および電源180は、オンチップシステム102の外部にある。
【００２７】
図2は、コントローラ101、常時オン電力マネージャ(「APM」)177、常時オン割込みコントローラ209A、電力管理集積回路(「PMIC」)157、およびメッセージRAM112を備え得る割込みコントローラ電力システム107の詳細を示す機能ブロック図である。PCD100は、1つまたは複数のコントローラモジュール101を有し得る。
【００２８】
この説明の残り部分では、コントローラモジュール101を複数形ではなく単数形でコントローラ101と呼ぶ。当業者は、本発明から逸脱することなく、コントローラ101を様々な部分に分割し、異なるプロセッサ110、126によって実行することができることを認識されよう。代替的に、コントローラ101を、単一の要素として編成し、単一のプロセッサ110または126によって実行することができる。コントローラ101は、当業者によって理解されるように、ハードウェアおよび/またはファームウェアから形成されてもよい。
【００２９】
概して、コントローラ101は、各プロセッサ110の一部である割込みコントローラ209Bのスリープ状態の管理を担う。コントローラ101は、レジスタを使って、常時オン電力マネージャ177および常時オン割込みコントローラ209Aと通信する。コントローラ101は、許可テーブル211を維持する。許可テーブル211は、常時オン割込みコントローラ290Aにおいて、プロセッサ110がどの割込みを使用することが認められているかを示すように機能する。こうすることにより、当業者に理解されるように、PCD100は、プロセッサ110が、システムソフトウェア(「SW」)区分が原因でプロセッサ110がアクセスするべきでない割込みソースを使うのを制限する。
【００３０】
常時オン電力マネージャ177は、電力管理集積回路(「PMIC」)157にコマンドを発行するのに使われるハードウェアを備え得る。PMIC157は、各個々のプロセッサ110への電力供給を担う。常時オン電力マネージャ177は、複数のレジスタに結合されてよく、または常時オン電力マネージャ177がそれらのレジスタを備えてもよい。これらのレジスタのさらなる詳細については、図3に関連して以下で説明する。
【００３１】
コントローラ101は、各マスタープロセッサ110の割込みコントローラ209Bのスリープ状態についての決定を行う。コントローラ101は、メッセージRAM112内に含まれる情報に基づいて、常時オン電力マネージャ177にコマンドも発行する。図2に示したように、メッセージRAM112は、常時オン割込みコントローラ209Aのレジスタを反映するメモリ要素を有する。メッセージRAM112の詳細については、図4に関連して以下で説明される。APM177は、常時オン割込みコントローラ209Aに結合され、および/またはAPM177が常時オン割込みコントローラ209Aを備え得る。
【００３２】
例示的な実施形態は、メモリ112用にRAMを使うが、当業者には諒解されるように、他のタイプのメモリデバイスまたはメモリデバイスの組合せが、メッセージRAM112用に利用されてもよい。他のメモリデバイスは、動的ランダムアクセスメモリ(「DRAM」)「オフチップ」102、スタティックランダムアクセスメモリ(「SRAM」)「オンチップ」122、キャッシュメモリ、電気的消去可能プログラマブル読出し専用メモリ(「EEPROM」)などを含むが、それに限定されない。
【００３３】
前述したように、メッセージRAM112は、常時オン割込みコントローラ177のレジスタを反映するメモリ要素を備え得る。各マスタープロセッサ110は、メッセージRAM112の専用のセクションまたは部分をもつ。メッセージRAM112の各専用セクションは、各セクションに割り当てられたマスタープロセッサ110による書込みおよび読取りを受け得る。コントローラ101は、メッセージRAM112のすべてのプロセッサセクションへのアクセスを有することができ、これらの専用セクションへの読取りおよび書込みアクセスも有することができる。
【００３４】
図2に示すように、各マスタープロセッサ110は、それ自体の割込みコントローラ（「IC」）209B、サブシステム電力マネージャ(「SPM」)207、およびローカル割込みテーブル205を備える。各割込みコントローラ209は一般に、割込みを集めてから、CPU110上の単一割込みピン(図示せず)に信号を渡す。こうすることにより、CPU110上の割込みピン(図示せず)を節約することができ、システムを設計するときの柔軟性を与えることもできる。各IC209は、割込みを制御するマスクおよび状況レジスタ(図示せず)を有し得る。各SPM207は、プロセッサ110内にあるハードウェアの電力管理を担う。
【００３５】
CPU110のローカル割込みテーブル205は、常時オン電力マネージャ(「APM」)割込み値およびローカル割込み値を含む。ローカル割込みテーブル205についてのさらなる詳細は、図5に関連して後で説明する。
【００３６】
APM177は、PMIC157を介した、各プロセッサ110の割込みコントローラ(「IC」)209Bへの電力の監視および制御を担い得る。APM177は、PMIC157に制御信号を送って、プロセッサ110のIC209Bを、低電力またはスリープ状態にすることができるとともに、IC209をスリープ状態から出させる。
【００３７】
図3は、図2の常時オン割込みコントローラ209A用のレジスタの機能ブロック図である。レジスタは、有効レジスタ303、タイプ/検出レジスタ306、極性レジスタ309、状況レジスタ312、およびクリアレジスタ315を備え得る。レジスタ303の状態に応じて、有効レジスタ303は、常時オン電力マネージャ177に送られる割込み信号をアクティブ化する。タイプ/検出レジスタ306は、割込み信号をアクティブ化するために、常時オン割込みコントローラ209Aによって検出された信号のタイプを識別する。
【００３８】
タイプ/検出レジスタ306は、2つのタイプの信号、すなわちエッジ信号およびレベル信号のうちの1つを指定することができる。極性レジスタ309は、タイプ/検出レジスタ306内で特定された信号の極性を識別することができる。極性レジスタ309は、タイプ/検出レジスタ306内で特定された信号がエッジ信号である場合、上昇値または下降値を含み得る。あるいは、極性レジスタ309は、タイプ/検出レジスタ306内で特定された信号がレベルタイプ信号である場合、高い値または低い値を含み得る。
【００３９】
状況レジスタ312は、どの割込みが起こった可能性があるか、および常時オン割込みコントローラ209Aによって検出された割込みを列挙することができる。クリアレジスタ315は、常時オン割込みコントローラ209Aによる割込み信号の追跡を中止または停止することができる。コントローラ101は、常時オン割込みコントローラ209Aのレジスタに書込みおよび読取りを行うことができる。コントローラ101は、図4に関連してさらに詳しく記載するように、これらのレジスタの内容を、メッセージRAM112内に含まれる情報に基づいて更新する。
【００４０】
図4は、メッセージランダムアクセスメモリ(「RAM」)112を示す機能ブロック図である。メッセージRAM112は、常時オン割込みコントローラ209Aに含まれるレジスタを反映するメモリ要素を備え得る。図4に示す例示的な一実施形態において、各マスタープロセッサ110には、常時オン割込みコントローラ209Aにおいて見られるものを反映する独自のレジスタセットが割り当てられる。
【００４１】
各マスタープロセッサ110は、有効メモリ要素303、タイプ/検出メモリ要素306、極性メモリ要素309、状況メモリ要素312、およびクリアメモリ要素315を有する。各マスタープロセッサ110に割り当てられたメッセージRAM112のメモリ要素内に含まれる信号プロファイルは、特定のマスタープロセッサ110についての、スリープ状態を開始するための条件を識別する。メッセージRAM112の各プロセッサセクションのこれらの信号プロファイルは、それらに割り当てられたマスタープロセッサ110によって変更可能または調節可能である。
【００４２】
仮想常時オン電力マネージャレジスタとも呼ばれる、メッセージRAM112のメモリ要素は、特定のマスタープロセッサ110についての、スリープ状態から出るための条件を識別することもできる。各マスタープロセッサ110は、メッセージRAM112のメモリ要素に記憶された状態への書込みおよび読取りを行うことができる。
【００４３】
限界、無効、レベル、エッジ、高、低、捕獲、ヌル、およびクリアなどの例示的な状態が、図4のメッセージRAM112内に示されている。ただし、これらの状態は、バイナリコード中のビットとして実装され得ることが当業者には認識されよう。たとえば、タイプ/検出メモリ要素306についてのエッジ検出状態は、「0b000」のバイナリ値を含み得るが、タイプ/検出メモリ要素306についての低検出状態は、「0b010」のバイナリ値を含み得る。他のバイナリ値は、当業者に理解されるように、メモリ112を用いて追跡される検出状態の各々について利用され得る。
【００４４】
図5は、上述した図2に示したように、マスタープロセッサ110の隣にあるローカル割込みテーブル205の機能ブロック図である。各マスタープロセッサ110のローカル割込みテーブル205は、常時オン電力マネージャ割込み値を、割込みコントローラ209Bによって理解されるローカル割込み値に翻訳する値を含む。これらの翻訳値は、メッセージRAM112を経由してマスタープロセッサ110から常時オン電力マネージャ177に渡され得る。
【００４５】
たとえば、テーブル205中の第1のAPM値は、5という値を含む。対応するローカル割込み値は、126という値を含み得る。5というAPM割込み値がコントローラ101からプロセッサ110に渡されると常に、プロセッサ110は、この値を、126というローカル割込み値に翻訳し得る。このローカル割込み値は、プロセッサ110から、そのCPU割込みコントローラ209Bに渡され得る。
【００４６】
図6は、複数のCPU110の1つまたは複数の割込みコントローラ(「IC」)209Bをスリープ状態にするための方法600を示す論理フローチャートである。ブロック605が、方法600の最初のステップである。ブロック605で、マスタープロセッサ110は、プロセッサ110がスリープ状態に入る準備ができていると判断する。スリープ状態は、当業者に理解されるように、低電力状態としても知られている。
【００４７】
次に、ブロック610で、マスタープロセッサ110は、メッセージRAM112の仮想常時オン電力マネージャレジスタの値を、プロセッサ110が所望する、スリープ状態に入るための割込み設定でセットまたは更新することができる。これらの設定は、図4に示したように、対応する有効仮想レジスタ303、タイプ/検出仮想レジスタ306、極性仮想レジスタ309、およびクリア仮想レジスタ315についての値を含み得る。
【００４８】
ブロック615で、メッセージRAM112内で仮想常時オン電力マネージャレジスタについてのその値をセットしたばかりのマスタープロセッサ110が、コントローラ101に割込み信号を送ることができる。この割込み信号は、プロセッサ110がメッセージRAM112内のその仮想レジスタに対して行った変更をコントローラ101にアラートし得る。
【００４９】
ブロック620で、コントローラ101は、許可テーブル211を検討して、現在のプロセッサ110が、常時オン割込みコントローラ209A内のレジスタのうちのいずれかの状態を変えることを許可されるかどうか判断する。許可テーブル211に対するこのルックアップに基づいて、コントローラ101は、メッセージRAM112の仮想常時オン電力マネージャレジスタ内の値の更新または状況を、他のマスタープロセッサ110に割り当てられた仮想レジスタ内に存在する値とマージすることができる。たとえば、コントローラ101は、図4に示したように、第1のマスタープロセッサA(110A)に割り当てられた仮想レジスタの値を、第2および第3のマスタープロセッサB、C(110B、110C)に割り当てられた仮想レジスタの値とマージし得る。
【００５０】
次に、ブロック625で、コントローラ101は、マージした結果の値セットを、メッセージRAM112から、常時オン割込みコントローラ209A内の実際のレジスタに送ることができる。ブロック630で、常時オン電力マネージャ177は、常時オン割込みコントローラ209A内のレジスタの更新値を読み取り、対応するスリープ信号を電力管理集積回路(「PMIC」)157に発行する。ブロック635で、PMIC157は、指定されたマスタープロセッサ110およびどの対応する割込みコントローラ209Bにも配送される、それらをスリープ状態にするための電力を変える。そして、方法600は終了する。
【００５１】
図7Aおよび図7Bは、1つまたは複数の割込みコントローラ(「IC」)209Bおよび複数のマスタープロセッサ110をスリープ状態から起動するための方法700を示す論理フローチャートである。具体的には、図7Aは、割込みコントローラ209Bをスリープ状態から起動するための方法700の部分を示す。図7Bは、コントローラ209Bに対応するマスタープロセッサ110を起動するための方法700の部分を示す。
【００５２】
ブロック705が、方法700の最初のステップである。ブロック705で、常時オン割込みコントローラ209Aのレジスタにおける割込み設定に基づいて、常時オン電力マネージャ177を用いて起動イベントが検出され得る。常時オン割込みコントローラ209Aのレジスタにおける設定は、メッセージRAM112内で列挙されるこれらの設定を、コントローラ101によってマージした直接的な結果である。
【００５３】
ブロック710で、コントローラ101およびマスター割込みコントローラ209Aを起動するための電源オン信号が、PMIC157に送られる。次に、ブロック715で、常時オン電力マネージャ209A内のレジスタの現在の状況が、コントローラ101を用いて読み取られる。次に、ブロック720で、各マスタープロセッサ110について、コントローラは、許可テーブル211を、メッセージRAM112内の特定のマスターに割り当てられたアクティブな値セットと比較する。次に、ブロック725で、コントローラ101は、ブロック720で行われた比較をマージし、メッセージRAM112において、常時オン電力マネージャ177についての結果的マスタープロセッサ仮想状況を準備する。
【００５４】
決定ブロック730で、コントローラ101によって、メッセージRAM112内で確立されたマスタープロセッサ仮想状況に基づいて、コントローラ101は、マスタープロセッサ110の一部である割込みコントローラ209Bを起動するのに特定のマスタープロセッサ110を必要とする、有効化された割込みが作成されているかどうか判断する。決定ブロック730への問合せが否定である場合、「NO」分岐の後、ブロック745に続き、ここで、マスター割込みコントローラ209Aの常時オン電力マネージャレジスタにおける、常時オン電力マネージャによるすべての物理的割込みが、コントローラ101を用いてクリアされる。
【００５５】
決定ブロック730への問合せが肯定である場合、「YES」分岐の後、ブロック735に続き、ここでコントローラは、1つまたは複数の割込みコントローラ209Bおよびマスタープロセッサ110にマスター起動信号を送信し、または送る。ブロック740で、各割込みコントローラ209は、そのスリープまたは低電力状態から起こされる。ブロック740の後およびブロック745の後、方法700は終了する。
【００５６】
ここで図7Bを参照すると、この図は、1つまたは複数のマスタープロセッサ110をスリープまたは低電力状態から起動するための、方法700の部分を示す。方法700のブロック750は、図7Aのブロック735の後に続き得る。ブロック750で、マスタープロセッサ110は、コントローラ101から、CPU割込みコントローラ209Bを経由して割込み信号を受信し得る。
【００５７】
ブロック755で、各マスタープロセッサ110は、メッセージRAM112内の、プロセッサ110に割り当てられた仮想状況レジスタを読み取ることができる。ブロック760で、メッセージRAM112内の仮想APM状況レジスタにおける各アクティブ割込みについて、特定のマスタープロセッサ110は、マスタープロセッサ110内に含まれるローカル割込みテーブル211中の、対応するローカル割込み等価物をルックアップする。
【００５８】
次に、ブロック765で、マスタープロセッサ110は、ブロック760で実施されたルックアップ機能に基づいて、翻訳された割込み信号をローカル割込みコントローラ209Bに送信する。ブロック770で、マスタープロセッサ110は、メッセージRAM112のクリアレジスタ315に、ブロック760で読み取られた値を書き込むためのコマンドを発行する。
【００５９】
ブロック775で、マスタープロセッサ110は、コントローラ101に割込みを送信する。この割込みは、マスタープロセッサ110によってメッセージRAM112に対して行われた変更を、コントローラにアラートする。
【００６０】
次に、ブロック780で、クリアレジスタ315内に列挙されている割込みが、コントローラ101によって、メッセージRAM112内の状況レジスタ312から削除される。決定ブロック785で、コントローラ101は、各マスタープロセッサ110についてのメッセージRAM112内の値の状況を検討する。メッセージRAM112のこの検討に基づいて、コントローラ101は、そのスリープ状態から起動するのに特定のマスタープロセッサ110を必要とする、有効化された割込みが作成されているかどうか判断する。
【００６１】
決定ブロック785への問合せが否定である場合、「NＯ」分岐に続き、そこでプロセスは終了する。決定ブロック785への問合せが肯定である場合、「YＥＳ」分岐の後、ブロック790に続き、ここでコントローラ101は、1つまたは複数のマスタープロセッサ110に起動信号を送る。
【００６２】
ブロック795で、起動信号を受信すると、各マスタープロセッサ110は、そのスリープ状態または低電力状態から出るための、それ自体の起動シーケンスを開始する。そして、方法700は終了する。
【００６３】
この割込みコントローラ電力システム107および方法600、700により、プロセッサ110のIC209Bはスリープ状態にされ、その結果PCD100用の電力が節約され得る。システム107は、PCD100内の複数のプロセッサ110についてのスリープ状態の集中管理を可能にする。複数のプロセッサ110について、より多くのスリープ状態を認めることにより、PCD100によって消費される平均電力は、割込みコントローラ電力システム107をもたないPCD100よりも低くなる。
【００６４】
本発明が説明通りに機能するように、本明細書で説明したプロセスまたはプロセスの流れの特定のステップが他のステップよりも前に行われるのは当然であることが、当業者には諒解されよう。しかしながら、ステップの順序または順番によってシステムおよび方法の機能が変わることがない場合、システムおよび方法は説明したステップの順序に限定されない。つまり、開示されたシステムおよび方法から逸脱することなく、あるステップを他のステップの前に実施しても、後に実施してもよく、あるいは各ステップを並行して(実質的に同時に)実施してもよいことを認識されたい。
【００６５】
場合によっては、当業者によって理解されるように方法から逸脱することなく、特定のステップを省略してよく、実施しなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
【００６６】
上記の開示に鑑みて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を特定し、開示された発明を容易に実施することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるコンピュータで実施されるプロセスの発明性のある機能は、上の説明において、かつ、様々なプロセスの流れを示し得る図面とともに、より詳細に説明される。
【００６７】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。
【００６８】
記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【００６９】
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００７０】
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(「CD」)、レーザディスク、光ディスク、デジタル多用途ディスク(「DVD」)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００７１】
それゆえ、選択された態様について詳細に示し、詳述してきたが、以下の請求項によって定義されるような開示したシステムから逸脱することなく、本明細書において様々な置換および改変がなされ得ることが当業者には理解されよう。
【符号の説明】
【００７２】
100  PCD
101  コントローラ、コントローラモジュール
102  オンチップシステム、動的ランダムアクセスメモリ(DRAM)オフチップ
107  割込みコントローラ電力システム
110  マスタープロセッサ、CPU、プロセッサ、デジタル信号プロセッサ、マルチコア中央処理装置
110A  第1の中央処理装置(CPU)、プロセッサ、第1のマスタープロセッサA
110B  第2のCPU、プロセッサ、第2のマスタープロセッサB
110C  第3のマスタープロセッサC
112  メッセージRAM、メモリ、メッセージランダムアクセスメモリ
122  スタティックランダムアクセスメモリ(SRAM)オンチップ
126  アナログ信号プロセッサ、プロセッサ、マスタープロセッサ
128  ディスプレイコントローラ
130  タッチスクリーンコントローラ
132  タッチスクリーンディスプレイ
134  ビデオコーダ/デコーダ(コーデック)、ビデオコーデック
136  ビデオ増幅器
138  ビデオポート
140  ユニバーサルシリアルバス(USB)コントローラ
142  USBポート
146  加入者識別モジュール(SIM)カード
148  デジタルカメラ、カメラ
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  第1のステレオスピーカー
156  第2のステレオスピーカー
157  電力管理集積回路(PMIC)
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調(FM)ラジオチューナー
164  FMアンテナ
166  ステレオヘッドフォン
168  高周波(RF)トランシーバ
170  RFスイッチ
172  RFアンテナ
174  キーパッド
176  モノヘッドセット
177  常時オン電力マネージャ(APM)
178  バイブレータデバイス、バイブレータ
180  電源
205  ローカル割込みテーブル
207  サブシステム電力マネージャ(SPM)
209  割込みコントローラ、IC
209A  常時オン割込みコントローラ(AIC)
209B  IC、割込みコントローラ
211  許可テーブル
222  第0のコア
224  第1のコア
230  第Nのコア
303  有効レジスタ、レジスタ、有効メモリ要素、有効仮想レジスタ
306  タイプ/検出レジスタ、タイプ/検出メモリ要素、タイプ/検出仮想レジスタ
309  極性レジスタ、極性メモリ要素、極性仮想レジスタ
312  状況レジスタ、状況メモリ要素
315  クリアレジスタ、クリアメモリ要素、クリア仮想レジスタ
【図１】
0005705999.tif 000002
【図２】
0005705999.tif 000003
【図３】
0005705999.tif 000004
【図４】
0005705999.tif 000005
【図５】
0005705999.tif 000006
【図６】
0005705999.tif 000007
【図７Ａ】
0005705999.tif 000008
【図７Ｂ】
0005705999.tif 000009