(57)【要約】【課題】さまざまな要求仕様に柔軟に対応可能なＰＭＩＣを提供する。【解決手段】タスクリストメモリ１０は、複数のレールに含まれる電源群を順に起動する起動命令群、それらを逆順で停止する停止命令群、に格納する。ある状態から有る状態への遷移の最後には、エンド命令が挿入され、エンド命令と遷移先の状態を示す遷移先コードが対応づけられる。命令実行部４０はエンド命令を実行すると、遷移先コードにもとづいてステートインジケータ３０を次の状態にセットする。【選択図】図２
2015195690.tif 000002
【特許請求の範囲】
【請求項１】
複数の電源の起動、停止を制御するパワーマネージメントコントローラであって、
前記複数の電源はそれぞれ、複数Ｎ個のレールのひとつに属しており、
全レールがオフである第１状態と、ｋ＝１，２，…Ｎについて第１レールから第ｋレールがオンである第（ｋ＋１）状態と、を含む（Ｎ＋１）個の状態が規定され、
前記パワーマネージメントコントローラは、
（i）第１レールに含まれる電源群を順に起動する第１起動命令群、第２レールに含まれる電源群を順に起動する第２起動命令群、…、第Ｎレールに含まれる電源群を順に起動する第Ｎ起動命令群、を順に格納するとともに、（ii）第Ｎレールに含まれる電源群を順に停止する第Ｎ停止命令群、第（Ｎ−１）レールに含まれる電源群を順に停止する第（Ｎ−１）停止命令群、…、第２レールに含まれる電源群を順に停止する第２停止命令群、第１レールに含まれる電源群を順に停止する第１停止命令群、を順に格納し、かつ（iii）前記パワーマネージメントコントローラが、第ｉ状態から第ｊ状態（ｊ＞ｉ）へのアップ遷移をサポートするとき、サポートされるすべてのｊについて、第（ｊ−１）起動命令群の最後にエンド命令が挿入され、（iv）前記パワーマネージメントコントローラが、第ｊ状態から第ｉ状態（ｊ＞ｉ）へのダウン遷移をサポートするとき、サポートされるすべてのｉについて、第ｉ停止命令群の最後にエンド命令が挿入されており、かつ、（v）第（ｊ−１）起動命令群の最後に含まれる前記エンド命令は、遷移先が第ｊ状態であることを示す遷移先コードと紐付けされており、(vi)第ｉ停止命令群の最後に含まれる前記エンド命令は、遷移先が第ｉ状態であることを示す遷移先コードと紐付けされている、タスクリストメモリと、
（i）前記パワーマネージメントコントローラが、第ｉ状態を始点とするアップ遷移をサポートするとき、サポートされるすべてのｉについて、第ｉ起動命令群の先頭アドレスを格納するとともに、（ii）第ｊ状態を始点とするダウン遷移をサポートするとき、サポートされるすべてのｊについて、第ｊ停止命令群の先頭アドレスを格納する先頭アドレスレジスタファイルと、
現在の状態を示すステートインジケータと、
（i）スタートアドレスが指定されると、前記タスクリストメモリに格納される命令群を、前記スタートアドレスを始点として順に読み出して実行するとともに、（ii）次にエンド命令を読み出すと命令群の実行を停止し、（iii）エンド命令を読み出すと、それに紐づけられた遷移先コードが示す状態に、前記ステートインジケータのデータを更新する命令実行部と、
（i）前記ステートインジケータが第ｉ状態を示すときに、制御信号が第ｉ状態に対して定められたアップ遷移条件を満たすと、前記先頭アドレスレジスタファイルから前記命令実行部に、第ｉ起動命令群の先頭アドレスをスタートアドレスとして与え、（ii）前記ステートインジケータが第ｊ状態を示すときに、前記制御信号が第ｊ状態に対して定められたダウン遷移条件を満たすと、前記先頭アドレスレジスタファイルから前記命令実行部に、第ｊ停止命令群の先頭アドレスをスタートアドレスとして与えるイベント管理部と、
を備えることを特徴とするパワーマネージメントコントローラ。
【請求項２】
前記先頭アドレスレジスタファイルは、第１〜第Ｎ起動命令群それぞれの先頭アドレスを格納するとともに、第１〜第Ｎ停止命令群それぞれの先頭アドレスを格納することを特徴とする請求項１に記載のパワーマネージメントコントローラ。
【請求項３】
前記遷移先コードは、紐づけられたエンド命令に付随して前記タスクリストメモリに格納されることを特徴とする請求項１または２に記載のパワーマネージメントコントローラ。
【請求項４】
（i）第ｉ状態から第ｊ状態へのアップ遷移をサポートするとき、各アップ遷移と遷移先の第ｊ状態を対応づけるテーブルを格納するとともに、（ii）第ｊ状態から第ｉ状態へのダウン遷移をサポートするとき、各ダウン遷移と遷移先である第ｉ状態を対応づけるテーブルを格納するキャンセル用レジスタファイルをさらに備え、
前記イベント管理部は、（i）第ｉ状態を始点とする起動命令群を実行中にアップ遷移がキャンセルされたときに、前記キャンセル用レジスタファイルを参照し、その遷移の遷移先が第ｊ状態であることを取得し、前記命令実行部に、第（ｊ−１）停止命令群の先頭アドレスをスタートアドレスとして与え、（ii）第ｊ状態を始点とする停止命令群を実行中にダウン遷移がキャンセルされたときに、前記キャンセル用レジスタファイルを参照し、その遷移の遷移先が第i状態であることを取得し、前記命令実行部に、第ｉ起動命令群の先頭アドレスをスタートアドレスとして与えることを特徴とする請求項１から３のいずれかに記載のパワーマネージメントコントローラ。
【請求項５】
前記命令実行部は、
プログラムカウンタを含み、与えられたスタートアドレスをプログラムカウンタにセットし、プログラムカウンタの値を１ずつインクリメントさせるタスクリストプロセッサと、
前記タスクリストメモリから、前記プログラムカウンタの値をアドレスとする命令文がロードされ、ロードされた命令文をデコードする命令デコーダと、
を含むことを特徴とする請求項１から４のいずれかに記載のパワーマネージメントコントローラ。
【請求項６】
前記イベント管理部は、
前記制御信号を受け、前記制御信号が第ｉ状態に対して定められたアップ遷移条件を満たすと、アップ遷移イベント信号をアサートし、前記制御信号が第ｊ状態に対して定められたダウン遷移条件を満たすと、ダウン遷移イベント信号をアサートするイベント発生器と、
第ｉ状態を始点とするアップ遷移に対するアップ遷移イベント信号がアサートされると、前記先頭アドレスレジスタから前記命令実行部に対して、第ｉ起動命令群の先頭アドレスをロードし、第ｊ状態を始点とするダウン遷移に対するダウン遷移イベント信号がアサートされると、前記先頭アドレスレジスタから前記命令実行部に対して、第ｊ停止命令群の先頭アドレスをロードするスタートアドレスセレクタと、
を含むことを特徴とする請求項１から５のいずれかに記載のパワーマネージメントコントローラ。
【請求項７】
前記イベント管理部は、
前記制御信号が入力される複数の論理ゲートと、
外部から設定可能なレジスタと、
を含み、
前記レジスタの値に応じて、第ｉ状態に対して定められたアップ遷移条件、第ｊ状態に対して定められたダウン遷移条件が変更可能に構成されることを特徴とする請求項１から６のいずれかに記載のパワーマネージメントコントローラ。
【請求項８】
請求項１から７にいずれかに記載のパワーマネージメントコントローラと、
前記パワーマネージメントコントローラによって制御される複数の電源と、
を備え、ひとつの半導体基板に一体集積化されることを特徴とするパワーマネージメント回路。
【請求項９】
複数の電源端子を有するプロセッサと、
前記プロセッサの複数の電源端子に電源電圧を供給する請求項８に記載のパワーマネージメント回路と、
を備えることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の電源を管理、制御するパワーマネージメント技術に関する。
【背景技術】
【０００２】
携帯電話、タブレット端末、ノート型パーソナルコンピュータ（ＰＣ）、デスクトップＰＣ、ゲーム機器は、演算処理を行うＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などのマイクロプロセッサを備える。
【０００３】
マイクロプロセッサを搭載する電子機器は、半導体製造プロセスの微細化、搭載する周辺回路の増加、低消費電力化の要請にともない、数十もの回路ブロックに細分化されており、回路ブロックごとに独立して電源電圧を制御可能に構成される。
【０００４】
こうした機器において、数十の回路ブロックに対応する数十もの電源系統を制御するために、パワーマネージメントＩＣ（ＰＭＩＣ）が使用される。ＰＭＩＣには、数十の電源のオン、オフを、所定のシーケンスにしたがって確実に制御することが要求される。
【０００５】
ＰＭＩＣには、以下の性質が要求される。
（１）ロバスト性、安定性
ＰＭＩＣには、外部のノイズ等で暴走しない仕組みが要求される。
（２）  安全性
ＰＭＩＣには、異常状態になった場合に、他のデバイスに依存することなく自律的に電源系統をシャットダウンする機能が要求される。
（３）  省電力
ＰＭＩＣは、システムのシャットダウン時も動作する必要があるため、その消費電力は極力小さいことが要求される。
【０００６】
こうした仕様要求を満たすＰＭＩＣを、汎用のマイコンを利用して構成することは困難であった。したがって従来では、電子機器ごとにその要求仕様を満たすように、専用のシーケンサをハードウェア的にその都度設計する必要があった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−０８９０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複数の電源は、いくつかのレールに分類されている。そしてＰＭＩＣは、各レールを独立してオン、オフすることが可能となっており、オン状態であるレールの組み合わせに応じて、状態が規定される。具体的には、すべての電源レールがオフの状態、すべての電源レールがオンの状態に加えて、複数の電源レールのうち、いくつかがオンの中間的な段階が存在する。
【０００９】
ＰＭＩＣが使用されるプラットフォームに応じて、使用される状態が異なる場合がある。たとえば４つの電源レールが存在する場合、ＰＭＩＣは第１〜第５の５つの状態を取り得るところ、あるプラットフォームでは、第１状態、第３状態、第５状態のみ使用され、別のプラットフォームでは、第１状態、第４状態、第５状態のみが使用されうる。この場合、従来では、あるプラットフォームに対応するＰＭＩＣは、第１，第３，第５状態をサポートするようにハードウェア的に構成され、別のプラットフォームに対応するＰＭＩＣは、第１，第４，第５状態をサポートするようにハードウェア的に構成されることになった。つまり、プラットフォーム毎に、ＰＭＩＣのハードウェアを作り替える必要があるため、設計コストが非常に高くなっていた。
【００１０】
従来ではまた同じプラットフォームでも、同じレール内のいくつかの電源の起動シーケンスを変更したい場合に、ハードウェアの大幅な設計変更を余儀なくされていた。これにより、わずかな変更であっても、マスク修正が必要となり、設計期間が長くなるという問題もあった。
【００１１】
本発明は係る状況においてなされたものであり、そのある態様の例示的な目的のひとつは、さまざまな要求仕様に柔軟に対応可能なＰＭＩＣの提供にある。
【課題を解決するための手段】
【００１２】
本発明のある態様は、複数の電源の起動、停止を制御するパワーマネージメントコントローラに関する。複数の電源はそれぞれ、複数Ｎ個のレールのひとつに属しており、全レールがオフである第１状態と、ｋ＝１，２，…Ｎについて第１レールから第ｋレールがオンである第（ｋ＋１）状態と、を含む（Ｎ＋１）個の状態が規定される。パワーマネージメントコントローラは、（i）第１レールに含まれる電源群を順に起動する第１起動命令群、第２レールに含まれる電源群を順に起動する第２起動命令群、…、第Ｎレールに含まれる電源群を順に起動する第Ｎ起動命令群、を順に格納するとともに、（ii）第Ｎレールに含まれる電源群を順に停止する第Ｎ停止命令群、第（Ｎ−１）レールに含まれる電源群を順に停止する第（Ｎ−１）停止命令群、…、第２レールに含まれる電源群を順に停止する第２停止命令群、第１レールに含まれる電源群を順に停止する第１停止命令群、を順に格納し、かつ（iii）パワーマネージメントコントローラが、第ｉ状態から第ｊ状態（ｊ＞ｉ）へのアップ遷移をサポートするとき、サポートされるすべてのｊについて、第（ｊ−１）起動命令群の最後にエンド命令が挿入され、（iv）パワーマネージメントコントローラが、第ｊ状態から第ｉ状態（ｊ＞ｉ）へのダウン遷移をサポートするとき、サポートされるすべてのｉについて、第ｉ停止命令群の最後にエンド命令が挿入されており、かつ、（v）第（ｊ−１）起動命令群の最後に含まれるエンド命令は、遷移先が第ｊ状態であることを示す遷移先コードと紐付けされており、(vi)第ｉ停止命令群の最後に含まれるエンド命令は、遷移先が第ｉ状態であることを示す遷移先コードと紐付けされている、タスクリストメモリと、（i）パワーマネージメントコントローラが、第ｉ状態を始点とするアップ遷移をサポートするとき、サポートされるすべてのｉについて、第ｉ起動命令群の先頭アドレスを格納するとともに、（ii）第ｊ状態を始点とするダウン遷移をサポートするとき、サポートされるすべてのｊについて、第ｊ停止命令群の先頭アドレスを格納する先頭アドレスレジスタファイルと、現在の状態を示すステートインジケータと、（i）スタートアドレスが指定されると、タスクリストメモリに格納される命令群を、スタートアドレスを始点として順に読み出して実行するとともに、（ii）次にエンド命令を読み出すと命令群の実行を停止し、（iii）エンド命令を読み出すと、それに紐づけられた遷移先コードが示す状態に、ステートインジケータのデータを更新する命令実行部と、（i）ステートインジケータが第ｉ状態を示すときに、制御信号が第ｉ状態に対して定められたアップ遷移条件を満たすと、先頭アドレスレジスタファイルから命令実行部に、第ｉ起動命令群の先頭アドレスをスタートアドレスとして与え、（ii）ステートインジケータが第ｊ状態を示すときに、制御信号が第ｊ状態に対して定められたダウン遷移条件を満たすと、先頭アドレスレジスタファイルから命令実行部に、第ｊ停止命令群の先頭アドレスをスタートアドレスとして与えるイベント管理部と、を備える。
【００１３】
この態様によると、大部分のハードウェア部分を変更することなく、さまざまな設計要求に柔軟に対応することができる。
【００１４】
先頭アドレスレジスタファイルは、第１〜第Ｎ起動命令群それぞれの先頭アドレスを格納するとともに、第１〜第Ｎ停止命令群それぞれの先頭アドレスを格納してもよい。
すべての起動命令群、すべての停止命令群の先頭アドレスを格納しておくことにより、あらゆる状態の組み合わせをサポートすることが可能となる。
【００１５】
遷移先コードは、紐づけられたエンド命令に付随してタスクリストメモリに格納されてもよい。これにより、エンド命令をデコードすると、他のメモリやレジスタを参照することなく直ちに次の状態を知ることができる。
【００１６】
ある態様のパワーマネージメントコントローラは、（i）第ｉ状態から第ｊ状態へのアップ遷移をサポートするとき、各アップ遷移と遷移先の第ｊ状態を対応づけるテーブルを格納するとともに、（ii）第ｊ状態から第ｉ状態へのダウン遷移をサポートするとき、各ダウン遷移と遷移先である第ｉ状態を対応づけるテーブルを格納するキャンセル用レジスタファイルをさらに備えてもよい。イベント管理部は、（i）第ｉ状態を始点とする起動命令群を実行中にアップ遷移がキャンセルされたときに、キャンセル用レジスタファイルを参照し、その遷移の遷移先が第ｊ状態であることを取得し、命令実行部に、第（ｊ−１）停止命令群の先頭アドレスをスタートアドレスとして与え、（ii）第ｊ状態を始点とする停止命令群を実行中にダウン遷移がキャンセルされたときに、キャンセル用レジスタファイルを参照し、その遷移の遷移先が第i状態であることを取得し、命令実行部に、第ｉ起動命令群の先頭アドレスをスタートアドレスとして与えてもよい。
この態様によれば、ある遷移がキャンセルされたときに、もとの状態に正しく戻すことができる。
【００１７】
命令実行部は、プログラムカウンタを含み、与えられたスタートアドレスをプログラムカウンタにセットし、プログラムカウンタの値を１ずつインクリメントさせるタスクリストプロセッサと、タスクリストメモリから、プログラムカウンタの値をアドレスとする命令文がロードされ、ロードされた命令文をデコードする命令デコーダと、を含んでもよい。
【００１８】
イベント管理部は、制御信号を受け、制御信号が第ｉ状態に対して定められたアップ遷移条件を満たすと、アップ遷移イベント信号をアサートし、制御信号が第ｊ状態に対して定められたダウン遷移条件を満たすと、ダウン遷移イベント信号をアサートするイベント発生器と、第ｉ状態を始点とするアップ遷移に対するアップ遷移イベント信号がアサートされると、先頭アドレスレジスタから命令実行部に対して、第ｉ起動命令群の先頭アドレスをロードし、第ｊ状態を始点とするダウン遷移に対するダウン遷移イベント信号がアサートされると、先頭アドレスレジスタから命令実行部に対して、第ｊ停止命令群の先頭アドレスをロードするスタートアドレスセレクタと、を含んでもよい。
【００１９】
イベント管理部は、制御信号が入力される複数の論理ゲートと、外部から設定可能なレジスタと、を含んでもよい。レジスタの値に応じて、第ｉ状態に対して定められたアップ遷移条件、第ｊ状態に対して定められたダウン遷移条件が変更可能に構成されてもよい。
【００２０】
本発明の別の態様は、パワーマネージメント回路に関する。パワーマネージメント回路は、上述のいずれかのパワーマネージメントコントローラと、パワーマネージメントコントローラによって制御される複数の電源と、を備えて一体集積化されてもよい。
「一体集積化」とは、回路の構成要素のすべてが半導体基板上に形成される場合や、回路の主要構成要素が一体集積化される場合が含まれ、回路定数の調節用に一部の抵抗やキャパシタなどが半導体基板の外部に設けられていてもよい。
回路を１つのＩＣとして集積化することにより、回路面積を削減することができるとともに、回路素子の特性を均一に保つことができる。
【００２１】
本発明の別の態様は電子機器に関する。電子機器は、複数の電源端子を有するプロセッサと、プロセッサの複数の電源端子に電源電圧を供給する上述のパワーマネージメント回路と、を備えてもよい。
【００２２】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２３】
本発明のある態様によれば、さまざまな要求仕様に柔軟に対応可能なＰＭＩＣを提供できる。
【図面の簡単な説明】
【００２４】
【図１】実施の形態に係るパワーマネージメントＩＣを備える電子機器のブロック図である。
【図２】ＰＭコントローラの構成を示すブロック図である。
【図３】図３（ａ）、（ｂ）は、タスクリストメモリに格納される命令を示す図である。
【図４】図４（ａ）、（ｂ）は、イベント発生器の構成例を示す回路図である。
【図５】図５（ａ）、（ｂ）は、ＰＭＩＣの状態遷移図である。
【図６】第１変形例に係るパワーマネージメントコントローラのブロック図である。
【図７】図６のパワーマネージメントコントローラの動作を示す図である。
【図８】ＰＭＩＣを備える電子機器の斜視図である。
【発明を実施するための形態】
【００２５】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００２６】
本明細書において、「部材Ａが、部材Ｂと接続された状態」とは、部材Ａと部材Ｂが物理的に直接的に接続される場合のほか、部材Ａと部材Ｂが、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。また、「部材Ｃが、部材Ａと部材Ｂの間に設けられた状態」とは、部材Ａと部材Ｃ、あるいは部材Ｂと部材Ｃが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
【００２７】
（周辺回路）
図１は、実施の形態に係るパワーマネージメントＩＣ（ＰＭＩＣ）２００を備える電子機器５００のブロック図である。
電子機器５００は、ＣＰＵ５０２、ＲＡＭ（Random Access Memory）５０４、ＨＤＤ（Hard Disk）５０６などの複数の部品と、リチウムイオン電池やニッケル水素電池などの電池５０８と、ＰＭＩＣ２００と、を備える。ＰＭＩＣ２００は、電池５０８からの電池電圧ＶＢＡＴ、あるいはＡＣアダプタ（不図示）からの電圧を受け、複数の部品に適切な電圧レベルの電源電圧を供給する。
【００２８】
ＣＰＵ５０２、ＲＡＭ５０４、ＨＤＤ５０６等を正常に動作させるためには、それらを所定の順序で起動する必要があり、したがってそれらの部品に対する電源電圧のオン、オフのシーケンスは、数μｓのオーダーで正しく制御する必要がある。たとえばＲＡＭ５０４に対する電源供給は、ＣＰＵ５０２がＲＡＭ５０４にアクセスする前に完了していなければならない。
【００２９】
また近年のＣＰＵ５０２は、その内部が数十もの回路ブロックに細分化されており、回路ブロックごとに電源端子が設けられ、回路ブロックごとに独立した電源電圧が供給可能となっている。そして、ＣＰＵ５０２の動作状態に応じて、電源端子ごとの電源電圧をオン、オフすることで、消費電力の低減が図られている。
【００３０】
ＰＭＩＣ２００は、ＣＰＵ５０２、ＲＡＭ５０４、ＨＤＤ５０６等の部品に対して、複数の電源電圧ＶＤＤを供給する。
ＰＭＩＣ２００は、パワーマネージメント（ＰＭ）コントローラ１００、電源コントローラ２０２および複数の電源２０４を備え、ひとつの半導体基板に一体集積化された機能ＩＣである。
【００３１】
複数の電源２０４は、個別にオン、オフが切りかえ可能に構成される。電源２０４は、昇圧型、降圧型、昇降圧型のＤＣ／ＤＣコンバータであってもよいし、ＬＤＯ（Low Drop Output）であってもよいし、あるいはチャージポンプ回路などであってもよい。当業者であれば電源２０４を構成する部品の一部、たとえばインダクタやトランス、平滑キャパシタ、フィードバック用の抵抗、スイッチング素子などが、チップ部品やディスクリート部品で構成され、ＰＭＩＣ２００のＩＣ外部に外付けされることが理解される。
【００３２】
ＰＭコントローラ１００は、ＣＰＵ５０２や電子機器の主電源ボタンからの複数の制御信号Sigを受け、制御信号Sigにもとづいて複数の電源２０４の起動、停止を、要求仕様を満たすシーケンスで制御可能に構成されたシーケンサである。電源コントローラ２０２は、ＰＭコントローラ１００と複数の電源コントローラ２０２のインタフェースであり、ＰＭコントローラ１００からの出力にもとづいて、複数の電源２０４それぞれのオン、オフを制御する。
【００３３】
（電源レール）
複数の電源２０４はそれぞれ、複数Ｎ個のレール２０６＿１〜２０６＿Ｎのひとつに属している。本実施の形態では、理解の容易化のため、Ｎ＝４の場合を説明する。第１〜第４レールは、それぞれ、以下の別称を有する。
第１レール＝Ａレール
第２レール＝Ｕレール
第３レール＝Ｓレール
第４レール＝ＳＸレール
【００３４】
（電源状態（パワーステート））
こうした電源システムにおいては、以下の（Ｎ＋１）個の状態が規定される。
第１状態＝全レールがオフ
第２状態＝第１レールがオン、残りがオフ
第３状態＝第１レール〜第２レールがオン、残りがオフ
・・・
第Ｎ状態＝第１レール〜第（Ｎ−１）レールがオン、残りがオフ
第Ｎ＋１状態  第１〜第Ｎレールのすべてがオン
これらを一般化すると、第１レールから第ｋレールがオンの状態を、第（ｋ＋１）状態と称することができる。
【００３５】
実施の形態ではＮ＝４であり、以下の第１状態〜第５状態を取り得る。
第１状態ＳＧ３ 全レールオフ
第２状態Ｓ４  第１（Ａ）レールがオン
第３状態Ｓ３  第１、第２（Ａ＋Ｕ）レールがオン
第４状態Ｓ０ｉｘ      第１〜第３（Ａ＋Ｕ＋Ｓ）レールがオン
第５状態Ｓ０  第１〜第４（Ａ＋Ｕ＋Ｓ＋ＳＸ）レールがオン
【００３６】
ＰＭＩＣ２００は、ＰＭＩＣ２００が搭載される電子機器の種類、一緒に使用されるＣＰＵの種類、ＯＳ（オペレーティングシステム）の種類などに応じて、第１状態〜第５状態のうち、電子機器５００の設計者が希望する任意の状態をサポート可能となっている。
【００３７】
一例として、あるＣＰＵとの組み合わせにおいて、第１のＯＳ（たとえばマイクロソフト社製のＷｉｎｄｏｗｓ８（登録商標））の制御下におかれる場合、第１状態ＳＧ３、第４状態Ｓ０ｉｘ、第５状態Ｓ０の３状態が使用される。
この場合、ＰＭＩＣ２００は、第１状態ＳＧ３、第４状態Ｓ０ｉｘ、第５状態Ｓ０に加えて、第１状態ＳＧ３から第４状態Ｓ０ｉｘへのアップ遷移、第４状態Ｓ０ｉｘから第５状態Ｓ０へのアップ遷移、第５状態Ｓ０から第４状態Ｓ０ｉｘへのダウン遷移、第４状態Ｓ０ｉｘから第１状態ＳＧ３へのダウン遷移をサポートすることになる。
【００３８】
また別の一例として、同じＣＰＵとの組み合わせであっても、第２のＯＳ（たとえばグーグル社製のＡｎｄｒｏｉｄ（登録商標））の制御下におかれる場合、第１状態ＳＧ３、第３状態Ｓ３、第５状態Ｓ０の３状態が使用される。
この場合、ＰＭＩＣ２００は、第１状態ＳＧ３、第３状態Ｓ３、第５状態Ｓ０に加えて、第１状態ＳＧ３から第３状態Ｓ３へのアップ遷移、第３状態Ｓ３から第５状態Ｓ０へのアップ遷移、第５状態Ｓ０から第３状態Ｓ３へのダウン遷移、第３状態Ｓ３から第１状態ＳＧ３へのダウン遷移をサポートすることになる。
【００３９】
実施の形態では、このような任意の状態とそれらの間の遷移をサポート可能なＰＭＩＣ２００が提供される。
【００４０】
（パワーマネージメントコントローラ）
図２は、ＰＭコントローラ１００の構成を示すブロック図である。
ＰＭコントローラ１００は、タスクリストメモリ１０、先頭アドレスレジスタファイル２０、ステートインジケータ３０、命令実行部４０、イベント管理部５０を備える。以下、各ブロックについて説明する。
【００４１】
（タスクリストメモリ）
タスクリストメモリ１０には、ＰＭコントローラ１００のシーケンスを記述する命令が格納される。タスクリストメモリ１０に格納される命令、データは、不揮発的なメモリすなわちＲＯＭ、たとえばマスクＲＯＭあるいはＥＥＰＲＯＭからロードされる。
【００４２】
図３（ａ）、（ｂ）は、タスクリストメモリ１０に格納される命令を示す図である。図３（ａ）には、Ｗｉｎｄｏｗｓ８をサポートするときの、図３（ｂ）には、Ａｎｄｒｏｉｄをサポートするときの命令が示される。
タスクリストメモリ１０は、ＰＭコントローラ１００が実行すべき命令、すなわちタスクをリスト形式で保持するものであり、いくつかの起動命令群ｓｔ＿ｕｐと、いくつかの停止命令群ｓｔ＿ｄｎを格納する。
【００４３】
（i）タスクリストメモリ１０の第１アドレス領域１０＿１には、以下の命令が順に格納される。
第１レールＡに含まれる電源群を順に起動する第１起動命令群ｓｔ＿ｕｐ＿１
第２レールＵに含まれる電源群を順に起動する第２起動命令群ｓｔ＿ｕｐ＿２
第３レールＳに含まれる電源群を順に起動する第３起動命令群ｓｔ＿ｕｐ＿３
第４レールＳＸに含まれる電源群を順に起動する第４起動命令群ｓｔ＿ｕｐ＿４
【００４４】
（ii）またタスクリストメモリ１０の第２アドレス領域１０＿２には、以下の命令が順に格納される。
第４レールＳＸに含まれる電源群を順に停止する第４停止命令群ｓｔ＿ｄｎ＿４
第３レールＳに含まれる電源群を順に停止する第３停止命令群ｓｔ＿ｄｎ＿３
第２レールＵに含まれる電源群を順に停止する第２停止命令群ｓｔ＿ｄｎ＿２
第１レールＡに含まれる電源群を順に停止する第１停止命令群ｓｔ＿ｄｎ＿１
【００４５】
ＰＭコントローラ１００が第ｉ状態から第ｊ状態（ｊ＞ｉ）へのアップ遷移をサポートするとき、サポートされるすべてのｊについて、第（ｊ−１）起動命令群の最後にエンド命令が挿入される。なお、ニーモニック（命令構文）である「エンド」は例示に過ぎない。
【００４６】
たとえばＷｉｎｄｏｗｓ８においては、以下のアップ遷移がサポートされる。
・第１状態ＳＧ３から第４状態Ｓ０ｉｘへのアップ遷移
・第４状態Ｓ０ｉｘから第５状態Ｓ０へのアップ遷移
したがって、図３（ａ）に示すように、第３起動命令群ｓｔ＿ｕｐ＿３の最後と、第４起動命令群ｓｔ＿ｕｐ＿４の最後に、エンド命令ｅｎｄが挿入される。
【００４７】
たとえばＡｎｄｒｏｉｄにおいては、以下のアップ遷移がサポートされる。
・第１状態ＳＧ３から第３状態Ｓ３へのアップ遷移
・第３状態Ｓ３から第５状態Ｓ０へのアップ遷移
したがって、図３（ｂ）に示すように、第２起動命令群ｓｔ＿ｕｐ＿２の最後と、第４起動命令群ｓｔ＿ｕｐ＿４の最後に、エンド命令ｅｎｄが挿入される。
【００４８】
第（ｊ−１）起動命令群の最後に含まれるエンド命令ｅｎｄは、遷移先が第ｊ状態であることを示す遷移先コードＣＤＵＰｊ−１と紐付けされる。
たとえばＷｉｎｄｏｗｓ８の場合、図３（ａ）に示すように第３起動命令群ｓｔ＿ｕｐ＿３の最後のエンド命令は、遷移先コードＣＤＵＰ３（＝ｓ０ｉｘ）と紐付けされ、第４起動命令群ｓｔ＿ｕｐ＿４の最後のエンド命令は、遷移先コードＣＤＵＰ４（＝Ｓ０）と紐付けされる。
Ａｎｄｒｏｉｄの場合、図３（ｂ）に示すように、第２起動命令群ｓｔ＿ｕｐ＿２の最後のエンド命令は遷移先コードＣＤＵＰ２と紐付けされ、第４起動命令群ｓｔ＿ｕｐ＿４の最後のエンド命令ｅｎｄは遷移先コードＣＤＵＰ４と紐付けされる。
【００４９】
また、ＰＭコントローラ１００が第ｊ状態から第ｉ状態（ｊ＞ｉ）へのダウン遷移をサポートするとき、サポートされるすべてのｉについて、第ｉ停止命令群の最後にエンド命令が挿入される。
【００５０】
たとえばＷｉｎｄｏｗｓ８においては、以下のダウン遷移がサポートされる。
・第５状態Ｓ０から第４状態Ｓ０ｉｘへのダウン遷移
・第４状態Ｓ０ｉｘから第１状態ＳＧ３へのダウン遷移
したがって図３（ａ）に示すように、第４停止命令群ｓｔ＿ｄｎ＿４の最後と、第１停止命令群ｓｔ＿ｄｎ＿１の最後にエンド命令が挿入される。
【００５１】
たとえばＡｎｄｒｏｉｄにおいては、以下のダウン遷移がサポートされる。
・第５状態Ｓ０から第３状態Ｓ３へのダウン遷移
・第３状態Ｓ３から第１状態ＳＧ３へのダウン遷移
したがって図３（ｂ）に示すように、第３停止命令群ｓｔ＿ｄｎ＿３の最後と、第１停止命令群ｓｔ＿ｄｎ＿１の最後にエンド命令が挿入される。
【００５２】
第ｉ停止命令群の最後に含まれるエンド命令は、遷移先が第ｉ状態であることを示す遷移先コードＣＤＤＮｉと紐付けされる。
【００５３】
たとえばＷｉｎｄｏｗｓ８の場合、図３（ａ）に示すように第４停止命令群ｓｔ＿ｄｎ＿４の最後のエンド命令は、遷移先コードＣＤＤＮ４（＝ｓ０ｉｘ）と紐付けされ、第１停止命令群ｓｔ＿ｄｎ＿１の最後のエンド命令は、遷移先コードＣＤＤＮ１（ＳＧ３）と紐付けされる。
【００５４】
Ａｎｄｒｏｉｄの場合、図３（ｂ）に示すように第３停止命令群ｓｔ＿ｄｎ＿３の最後のエンド命令は、遷移先コードＣＤＤＮ３（Ｓ３）と紐付けされ、第１停止命令群ｓｔ＿ｄｎ＿１の最後のエンド命令は、遷移先コードＣＤＤＮ１（ＳＧ３）と紐付けされる。
【００５５】
たとえば遷移先コードＣＤＤＮ、ＣＤＵＰは、紐づけられたエンド命令に付随して、より具体的には同一の命令文に含まれる形式で、タスクリストメモリ１０に格納されてもよい。図２に戻る。
【００５６】
（先頭アドレスレジスタ）
先頭アドレスレジスタファイル２０は、ＰＭコントローラ１００が、第ｉ状態から第ｊ状態（ｊ＞ｉ）へのアップ遷移をサポートするとき、少なくともサポートされるすべてのｉについて、第ｉ起動命令群ｓｔ＿ｕｐ＿ｉの先頭アドレスＡＤＲ＿ｕｐ＿ｉを格納する。
また先頭アドレスレジスタファイル２０は、ＰＭコントローラ１００が、第ｊ状態から第ｉ状態（ｊ＞ｉ）へのダウン遷移をサポートするとき、少なくともサポートされるすべてのｊについて、第ｊ停止命令群ｓｔ＿ｄｎ＿ｊの先頭アドレスＡＤＲ＿ｄｎ＿ｊを格納する。
【００５７】
本実施の形態では、ＰＭコントローラ１００によるサポートの有無を問わずに、先頭アドレスレジスタファイル２０は、すべての起動命令群ｓｔ＿ｕｐ＿１〜Ｎの先頭アドレスＡＤＲ＿ｕｐ＿１〜Ｎを格納するとともに、すべての停止命令群ｓｔ＿ｄｎ＿１〜Ｎの先頭アドレスＡＤＲ＿ｄｎ＿１〜Ｎを格納する。
【００５８】
（ステートインジケータ）
ステートインジケータ３０は、現在の状態を示す。したがってイベント管理部５０は、ステートインジケータ３０を参照することで、現在のＰＭコントローラ１００の状態を知ることができる。具体的にはステートインジケータ３０は、第１状態ＳＧ３、第２状態Ｓ４、第３状態Ｓ３、第４状態Ｓ０ｉｘ、第５状態Ｓ０のいずれであるか、もしくは、どの状態からどの状態への遷移中であるかを示す。
【００５９】
（命令実行部）
命令実行部４０は、（i）スタートアドレスＡＤＲ＿ｓｔａｒｔが指定されると、タスクリストメモリ１０に格納される命令群を、スタートアドレスＡＤＲ＿ｓｔａｒｔを始点として順に読み出して実行する。そして命令実行部４０は、（ii）次にエンド命令ｅｎｄを読み出すと命令群の実行を停止し、（iii）エンド命令ｅｎｄを読み出すと、それに紐づけられた遷移先コードが示す状態となるように、ステートインジケータ３０を更新する。
【００６０】
たとえば命令実行部４０は、タスクリストプロセッサ４２および命令デコーダ４４を備える。タスクリストプロセッサ４２は、プログラムカウンタを含み、与えられたスタートアドレスＡＤＲ＿ｓｔａｒｔをプログラムカウンタにセットし、命令デコーダ４４から命令実行完了の通知を受けるたびに、プログラムカウンタの値を１ずつインクリメントさせる。命令デコーダ４４には、プログラムカウンタの値をアドレスとする命令文がロードされる。命令デコーダ４４は、ロードされた命令文をデコードし、電源コントローラ２０２を制御する。
【００６１】
（イベント管理部）
イベント管理部５０には、複数Ｍ個の制御信号Sig_1〜Sig_Mが入力される。イベント管理部５０には、状態ごとに、アップ遷移条件、ダウン遷移条件が定められている。イベント管理部５０は、ステートインジケータ３０が第ｉ状態を示すときに、制御信号Sig_1〜Sig_Mが第ｉ状態に対して定められたアップ遷移条件を満たすと、先頭アドレスレジスタファイル２０から命令実行部４０に対して、第ｉ起動命令群の先頭アドレスＡＤＲ＿ｕｐ＿ｉをスタートアドレスＡＤＲ＿ｓｔａｒｔとして与える。同様に、（ii）制御信号Sig_1〜Sig_Mが、第ｊ状態に対して定められたダウン遷移条件を満たすと、先頭アドレスレジスタファイル２０から命令実行部４０に対して、スタートアドレスＡＤＲ＿ｓｔａｒｔとして第ｊ停止命令群ｓｔ＿ｄｎ＿ｊの先頭アドレスＡＤＲ＿ｄｎ＿ｊを与える。
【００６２】
たとえばイベント管理部５０は、イベント発生器５２およびスタートアドレスセレクタ５４を備える。イベント発生器５２には、複数の制御信号Sig_1〜Sig_Mが入力されており、イベントの発生条件が定められている。イベントは、第ｉ状態から第ｊ状態へのアップ遷移、第ｊ状態から第ｉ状態へのダウン遷移である。
【００６３】
イベント発生器５２は、複数の制御信号Sig_1〜Sig_Mを入力とする論理ゲートで構成することができる。イベント発生器５２は、第ｉ状態を始点とするアップ遷移の条件を満たすと、アップ遷移イベント信号evt_up_iをアサート（たとえばハイレベル）する。またイベント発生器５２は、第ｊ状態を始点とするダウン遷移の条件を満たすと、ダウン遷移イベント信号evt_dn_jをアサートする。
【００６４】
スタートアドレスセレクタ５４は、アップ遷移イベント信号evt_up_iがアサートされると、第ｉ起動命令群の先頭アドレスＡＤＲ＿ｕｐ＿ｉを命令実行部４０に与える。またスタートアドレスセレクタ５４は、ダウン遷移イベント信号evt_dn_jがアサートされると、第ｊ停止命令群の先頭アドレスＡＤＲ＿ｄｎ＿ｊを命令実行部４０に与える。
【００６５】
図４（ａ）、（ｂ）は、イベント発生器５２の構成例を示す回路図である。
イベント発生器５２は、レジスタに格納される値に応じて、遷移条件を設定可能に構成される。図４（ａ）には、アップ遷移イベント信号evt_up_iを生成するイベント発生器５２ａが示される。イベント発生器５２ａは、Ｍ個のレジスタ６０＿１〜６０＿Ｍと、Ｍ個のＯＲゲート６２＿１〜６２＿Ｍ、およびＡＮＤゲート６４を備える。
【００６６】
図４（ｂ）には、ダウン遷移イベント信号evt_dn_jを生成するイベント発生器５２ｂが示される。イベント発生器５２ｂは、Ｍ個のレジスタ６６＿１〜６６＿Ｍと、Ｍ個のＡＮＤゲート６８＿１〜６８＿Ｍ、およびＯＲゲート７０を備える。なお、各信号がローアクティブかハイアクティブかに応じて、回路中の信号を適宜反転してもよいし、ＡＮＤゲート、ＯＲゲートに代えてＮＡＮＤゲートやＮＯＲゲート、ＸＯＲゲートなどを利用してもよい。
【００６７】
イベント発生器５２には、Ｍ＝６個の制御信号Sig_1〜Sig_Mが入力される。
Sig_1 = PWRBTN
Sig_2 = SLP_S0IX_B
Sig_3 = SLP_S3_B
Sig_4 = SLP_S4_B
Sig_5 = SUSPWDNACK
Sig_6 = LOW_BAT_B
”_B”は、反転論理であることを示す。
【００６８】
この場合、以下のアップ遷移イベント信号が定義される。
（１）evt_up_1 = SG3_up
SG3_up=PWRBTN
（２）evt_up_2 = S4_up
S4_up=(SLP_S4_B|~S4u_S4)&(~SUSPWDNACK|~S4u_SNK)&(LOW_BAT_B|~S4u_BAT)
（３）evt_up_3 = S3_up
S3_up=(SLP_S3_B|~S3u_S3)&(SLP_S4_B|~S3u_S4)&(~SUSPWDNACK|~S3u_SNK)&(LOW_BAT_B|~S3u_BAT)
（４）evt_up_4 = S0ix_up
S0ix_up=(SLP_S0ix_B|~S0Xu_S0X)&(SLP_S3_B|~S0Xu_S3)&(SLP_S4B|~S0Xu_S4)&(~SUSPWDNACK|~S0Xu_SNK)
【００６９】
この場合、以下のダウン遷移イベント信号が定義される。
（５）  evt_dn_5 = S0_dn
S0_dn=(~SLP_S0IX_B & S0d_S0X)|(~SLP_S3_B&S0d_S3)|(~SLP_S4_B&S0d_S4)|(SUSPWDNACK&S0d_SNK)
（６）  evt_dn_4 = S0ix_dn
S0ix_dn=(~SLP_S3_B & S0Xd_S3)|(~SLP_S4_B&S0Xd_S4)|(~SUSPWDNACK&S0Xd_SNK)|(~LOW_BAT_B&S0Xd_BAT)
（７）  evt_dn_3 = S3_dn
S3_dn=(~SLP_S4_B & S3d_S4)|(SUSPWDNACK&S3d_SNK)|(~LOW_BAT_B&S3d_BAT)
（８）  evt_dn_2 = S4_dn
S4_dn=(~SLP_S4_B & S4d_S4)|(SUSPWDNACK&S4d_SNK)|(~LOW_BAT_B&S4d_BAT)
【００７０】
なお、S4u_S4, S4u_SNK, S4u_BAT, S3u_S3, S3u_S4, S3u_SNK, S3u_BAT, S0Xu_S0X, S0Xu_S3, S0Xu_S4, S0Xu_SNK, S0d_S0X, S0d_S3, S0d_S4, S0d_SNK, S0Xd_S3, S0Xd_S4, S0Xd_SNK, S0Xd_BAT, S3d_S4, S3d_SNK, S3d_BAT, S4d_S4, S4d_SNK, S4d_BATはレジスタに設定されるデータであり、それぞれに格納する値に応じて、遷移条件を自由に設定することができる。
【００７１】
以上がＰＭＩＣ２００の構成である。続いてＰＭＩＣ２００の動作を説明する。図５（ａ）、（ｂ）は、ＰＭＩＣ２００の状態遷移図である。
【００７２】
（１）  ＰＭＩＣ２００をＷｉｎｄｏｗｓ８のプラットフォームで動作させる場合
タスクリストメモリ１０には、図３（ａ）の命令が格納される。
またイベント発生器５２においては、以下のイベント信号が生成されるように、レジスタ値が設定される。
SG3_up=PWRBTN
S0ix_up=~SLP_S0IX_B
S0_dn=SLP_S0IX_B
S0ix_dn=SUSPWDNACK
【００７３】
図５（ａ）は、このときの状態遷移図である。初期状態は、第１状態ＳＧ３である。第１状態ＳＧ３においてパワーボタン（ＰＷＲ＿ＢＴＮ）が押されると、イベント発生器５２はSG3_up（evt_up_1）信号をアサートする。SG3_up（evt_up_1）信号がアサートされると、スタートアドレスセレクタ５４は、先頭アドレスレジスタファイル２０から先頭アドレスＡＤＲ＿ｕｐ＿１をタスクリストプロセッサ４２にロードする。タスクリストプロセッサ４２は、タスクリストメモリ１０に格納される命令を、ロードされたスタートアドレスから順に実行する。これにより起動命令群ｓｔ＿ｕｐ＿１、ｓｔ＿ｕｐ＿２、ｓｔ＿ｕｐ＿３が順に実行され、Ａレール、Ｕレール、Ｓレールが順にオンとなる（Ｓ１００）。図３（ａ）に示すように、エンド命令は起動命令群ｓｔ＿ｕｐ＿３の最後に挿入されており、ここで命令実行が停止する。命令デコーダ４４は、このエンド命令と紐付けされた遷移先コードＣＤＵＰ3が示す第４状態Ｓ０ｉｘを、ステートインジケータ３０にセットする。
【００７４】
第４状態Ｓ０ｉｘにおいて、制御信号SLP_S0IX_Bがデアサート（ネゲート）されると、S0ix_up（evt_up_4）信号がアサートされる。そして起動命令群ｓｔ＿ｕｐ＿４が実行され、ＳＸレールがオンする（Ｓ１０２）。そして遷移先コードＣＤＵＰ４にしたがって第５状態Ｓ０となる。
【００７５】
第５状態Ｓ０において、SLP_S0ix_B信号がアサートされると、S0_dn(evt_dn_5)信号がアサートされ、停止命令群ｓｔ＿ｄｎ＿４が実行され、ＳＸレールがオフする（Ｓ１０４）。そして遷移先コードＣＤＤＮ４にしたがって第４状態Ｓ０ｉｘとなる。
【００７６】
第４状態Ｓ０ｉｘにおいて、SUSPWDNACK信号がアサートされると、S0ix_dn(evt_dn_4)信号がアサートされ、停止命令群ｓｔ＿ｄｎ＿３、ｓｔ＿ｄｎ＿２、ｓｔ＿ｄｎ＿１が順に実行され、Ｓレール、Ｕレール、Ａレールが順にオフする（Ｓ１０６）。そして遷移先コードＣＤＤＮ１にしたがって第１状態ＳＧ３となる。
【００７７】
（２）  ＰＭＩＣ２００をＡｎｄｒｏｉｄのプラットフォームで動作させる場合
タスクリストメモリ１０には、図３（ｂ）の命令が格納される。
またイベント発生器５２においては、以下のイベント信号が生成されるように、レジスタ値が設定される。
SG3_up=PWRBTN
S3_up=~SLP_S3_B
S0_dn=SLP_S3_B
S3_dn=SUSPWDNACK
【００７８】
図５（ｂ）は、このときの状態遷移図である。初期状態は、第１状態ＳＧ３である。第１状態ＳＧ３においてパワーボタン（ＰＷＲ＿ＢＴＮ）が押されると、SG3_up（evt_up_1）信号がアサートされ、起動命令群ｓｔ＿ｕｐ＿１、ｓｔ＿ｕｐ＿２が順に実行され、Ａレール、Ｕレールが順にオンとなる（Ｓ２００）。命令デコーダ４４は、エンド命令と紐付けされた遷移先コードＣＤＵＰ２が示す第３状態Ｓ３を、ステートインジケータ３０にセットする。
【００７９】
第３状態Ｓ３において、制御信号SLP_S3_Bがデアサート（ネゲート）されると、S3_up（evt_up_3）信号がアサートされる。そして起動命令群ｓｔ＿ｕｐ＿３、ｓｔ＿ｕｐ＿４が実行され、Ｓレール、ＳＸレールがオンする（Ｓ２０２）。そして遷移先コードＣＤＵＰ４にしたがって第５状態Ｓ０となる。
【００８０】
第５状態Ｓ０において、SLP_S0ix_B信号がアサートされると、S0_dn(evt_dn_5)信号がアサートされ、停止命令群ｓｔ＿ｄｎ＿４、ｓｔ＿ｄｎ＿３が実行され、ＳＸレール、Ｓレールがオフする（Ｓ２０４）。そして遷移先コードＣＤＤＮ３にしたがって第３状態Ｓ３となる。
【００８１】
第３状態Ｓ３において、SUSPWDNACK信号がアサートされると、S3_dn(evt_dn_3)信号がアサートされ、停止命令群ｓｔ＿ｄｎ＿２、ｓｔ＿ｄｎ＿１が順に実行され、Ｕレール、Ａレールが順にオフする（Ｓ２０６）。そして遷移先コードＣＤＤＮ１にしたがって第１状態ＳＧ３となる。
【００８２】
以上がＰＭＩＣ２００の動作である。
このＰＭＩＣ２００によれば、以下の効果を得ることができる。
【００８３】
従来のＰＭＩＣは、プラットフォームごとにハードウェア設計する必要があった。したがってプラットフォームごとにＰＭＩＣをゼロから設計し直す必要があり、設計期間が長く、またコストが高くなるという問題があった。これに対してＰＭＩＣ２００によれば、ハードウェアリソースは共通としつつ、タスクリストメモリ１０に格納するエンド命令の位置、各エンド命令と対応づける遷移先コードの値を変更することにより、任意の状態をサポートすることができる。つまりプラットフォームの変更により、サポートすべき状態が変更になっても、ハードウェア的な変更は不要である。タスクリストメモリ１０の変更のみであれば、ＲＯＭを書き換えれば足りるため、非常に短期間に様々な要求に対応することができ、また設計コストを大幅に削減できる。
【００８４】
また、同じプラットフォームであっても、ＰＭＩＣ２００以外のアーキテクチャが変更となった場合に、電源の立ち上げ順序を変更したい場合がある。この場合にも、ＲＯＭを書き換えてタスクリストメモリ１０を変更すれば足りるため、非常に短期間に対応することができる。
【００８５】
第２に、イベント管理部５０の遷移条件を、レジスタの値に応じて変更可能とした。これにより、サポートすべき状態が変更になり、それに応じて状態遷移のトリガーとなる制御信号が変更となっても、レジスタの値を変更すれば足り、イベント管理部５０を再設計する必要がない。これは、マスクの変更が不要であることを意味するから、この点においても設計コストを従来に比べて大幅に低減することができる。レジスタの値を、ＰＭＩＣ２００の外部からシリアルバスを介して書き込む形式とすれば、ＰＭＩＣ２００のハードウェアを全く変更することなく、遷移条件を変更できる。
【００８６】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【００８７】
（第１変形例）
ある状態からある状態の遷移を、その遷移を実行中にキャンセルしたい場合がある。このキャンセルに対応する遷移は、図５（ａ）において、Ｓ１０８、Ｓ１１０として示され、図５（ｂ）において、Ｓ２０８，Ｓ２１０として示される。第１変形例に係るＰＭＩＣ２００ａは、遷移のキャンセルをサポートする。
【００８８】
図６は、第１変形例に係るＰＭコントローラ１００ａのブロック図である。
ＰＭコントローラ１００ａは、図２のＰＭコントローラ１００に加えて、キャンセル用レジスタファイル２２を備える。
【００８９】
キャンセル用レジスタファイル２２は、（i）第ｉ状態から第ｊ状態へのアップ遷移をサポートするとき、各アップ遷移と遷移先の第ｊ状態を対応づけるテーブルを格納するとともに、（ii）第ｊ状態から第ｉ状態へのダウン遷移をサポートするとき、各ダウン遷移と遷移先である第ｉ状態を対応づけるテーブルを格納する。
【００９０】
イベント管理部５０は、（i）第ｉ状態を始点とする起動命令群を実行中にアップ遷移がキャンセルされたときに、キャンセル用レジスタファイル２２を参照し、その遷移の遷移先が第ｊ状態であることを取得する。そしてイベント管理部５０は、命令実行部４０に、第（ｊ−１）停止命令群ｓｔ＿ｄｎ＿（ｊ−１）の先頭アドレスＡＤＲ＿ｄｎ＿（ｊ−１）をスタートアドレスとして与える。
またイベント管理部５０は、（ii）第ｊ状態を始点とする停止命令群を実行中にダウン遷移がキャンセルされたときに、キャンセル用レジスタファイル２２を参照し、その遷移の遷移先が第i状態であることを取得する。そしてイベント管理部５０は、命令実行部４０に、第ｉ起動命令群ｓｔ＿ｕｐ＿ｉの先頭アドレスＡＤＲ＿ｕｐ＿ｉをスタートアドレスとして与える。
【００９１】
以上がＰＭコントローラ１００ａの構成である。
続いてその動作を説明する。
【００９２】
図７は、図６のＰＭコントローラ１００ａの動作を示す図である。図７は、Ｗｉｎｄｏｗｓ８の場合である。
【００９３】
いま、第１状態ＳＧ３から第４状態Ｓ０ｉｘへのアップ遷移Ｓ１００中に、キャンセルイベントが発生したとする（Ｓ３００）。イベント発生器５２は、ＳＧ３からのアップ遷移条件が満たされなくなった場合に、その旨を示すキャンセルイベントを発生する。キャンセルイベントを検出すると、スタートアドレスセレクタ５４は、キャンセル用レジスタファイル２２を参照し、現在のアップ遷移の遷移先が第４状態Ｓ０ｉｘであることを取得する。そして、先頭アドレスレジスタファイル２０を参照して、第４状態Ｓ０ｉｘを始点とする第３停止命令群ｓｔ＿ｄｎ＿３の先頭アドレスＡＤＲ＿ｄｎ＿３を取得し、タスクリストプロセッサ４２に与える（Ｓ３０２）。これにより、第３停止命令群ｓｔ＿ｄｎ＿３、第２停止命令群ｓｔ＿ｄｎ＿２、第１停止命令群ｓｔ＿ｄｎ＿１が順に実行され、第１状態ＳＧ３に戻る（Ｓ３０４）。
【００９４】
このように図６の変形例によれば、アップ遷移、ダウン遷移中にキャンセルが発生したときに、もとの状態に戻すことができる。
【００９５】
（第２変形例）
第１変形例において、キャンセル用レジスタファイル２２が保持する情報は、図３の遷移先コードＣＤＵＰ、ＣＤＤＮと冗長である。そこでキャンセル用レジスタファイル２２を設ける場合には、遷移先コードＣＤＵＰ、ＣＤＤＮをタスクリストメモリ１０に保持しなくてもよい。この場合、第ｉ状態（第ｊ状態）を始点とするアップ遷移（ダウン遷移）中にエンド命令を実行すると、キャンセル用レジスタファイル２２を参照して遷移先の状態ｊ（状態ｉ）を取得し、ステートインジケータ３０にセットしてもよい。
【００９６】
（用途）
最後に、ＰＭコントローラ１００の用途を説明する。図８は、ＰＭＩＣ２００を備える電子機器５００の斜視図である。電子機器５００はたとえばタブレット端末やスマートホンである。筐体５２０には、ＣＰＵ５０２、ＲＡＭ５０４、ＨＤＤ５０６、電池５０８、およびＰＭＩＣ２００が内蔵される。ＰＭＩＣ２００は、ディスプレイパネル５１０はそのドライバ、オーディオ回路などに電源電圧を供給してもよい。なお電子機器５００は、ノートＰＣやコンソールゲーム機器、ポータブルゲーム機器、ウェアラブルＰＣ、ポータブルオーディオプレイヤ、デジタルカメラなどであってもよい。
【００９７】
実施の形態にもとづき、具体的な用語を用いて本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【００９８】
１００…ＰＭコントローラ、２００…ＰＭＩＣ、２０２…電源コントローラ、２０４…電源、５００…電子機器、５０２…ＣＰＵ、５０４…ＲＡＭ、５０６…ＨＤＤ、５０８…電池、１０…タスクリストメモリ、２０…先頭アドレスレジスタファイル、２２…キャンセル用レジスタファイル、３０…ステートインジケータ、４０…命令実行部、４２…タスクリストプロセッサ、４４…命令デコーダ、５０…イベント管理部、５２…イベント発生器、５４…スタートアドレスセレクタ。
【図１】
2015195690.tif 000003
【図２】
2015195690.tif 000004
【図３】
2015195690.tif 000005
【図４】
2015195690.tif 000006
【図５】
2015195690.tif 000007
【図６】
2015195690.tif 000008
【図７】
2015195690.tif 000009
【図８】
2015195690.tif 000010