(57)【要約】【課題】  電源遮断対象のブロックが電源遮断からの復帰後、即座にこのブロックへアクセスが発生すると、リセット解除の期間が不十分なため誤動作を起こしてしまうことがあった。【解決手段】  リセット信号を入力とするブロックのリセット解除がブロック内の全フリップフロップに伝搬するまでに必要なクロックを、クロック供給部が出力した後にしか、当該ブロックへのアクセスが発生しないようにする。クロックイネーブル信号に応じて当該ブロックに対してクロックを出力する。【選択図】  図１
2019101912.tif 000002
【特許請求の範囲】
【請求項１】
リセット信号をクロック信号で同期化する回路を少なくとも１つ有する回路ブロックと、
前記回路ブロックに対して前記クロック信号を出力するクロック供給手段と、
前記回路ブロックに対して前記リセット信号を出力するリセット供給手段と、
を有し、
前記リセット供給部はリセット期間に必要なクロックを出力させるためのクロックイネーブル信号を前記クロック供給手段に対して出力し、
リセット解除の期間に必要なクロックを出力させるためのクロックイネーブル信号を前記クロック供給手段に対して出力し、
前記クロック供給手段は前記クロックイネーブル信号に応じて前記回路ブロックに対してクロックを出力することを特徴とする半導体集積装置。
【請求項２】
前記リセット供給手段は、
前記リセット解除の期間に必要なクロックを出力させるためのクロックイネーブル信号を前記クロック供給手段に対して出力した後に、初期化処理の完了通知を出力することを特徴とする請求項１の半導体集積装置。
【請求項３】
前記リセット供給手段から前記初期化処理の完了通知が出力されると、前記回路ブロックに対する処理を開始することを特徴とする請求項２の半導体集積装置。
【請求項４】
前記回路ブロックは、
前記リセット解除の期間に必要なクロックが入力され、リセット解除状態になった後に前記リセット供給部に対してリセット解除完了通知を出力するリセット解除完了通知手段を有し、
前記リセット供給手段は前記リセット解除完了通知手段からのリセット解除完了通知に応じて
リセット解除の期間に前記クロックイネーブル信号を出力することを特徴とする請求項１から３何れか１項に記載の半導体集積装置。
【請求項５】
前記回路ブロックが非同期リセット方式で設計されていて、リセット期間にクロックが不要な場合は、リセット期間に前記クロックイネーブル信号の出力を行わないことを特徴とする請求項１から３何れか１項に記載の半導体集積装置。
【請求項６】
前記初期化処理の完了通知は前記回路ブロックの起動を制御する起動制御ブロックに対して通知されることを特徴とする請求項１から３何れか１項に記載の半導体集積装置。
【請求項７】
前記起動制御ブロックはＣＰＵであることを特徴とする請求項６の半導体集積装置。
【請求項８】
前記リセット供給部が出力する前記クロックイネーブル信号の出力期間は予め設定できることを特徴とする請求項１から３何れか１項に記載の半導体集積装置。
【請求項９】
前記回路ブロックは電源遮断が可能であることを特徴とする請求項１から８何れか１項に記載の半導体集積装置。
【請求項１０】
リセット信号をクロック信号で同期化する回路を少なくとも１つ有する回路ブロックに対して前記クロック信号を出力するクロック供給工程と、
前記回路ブロックに対して前記リセット信号を出力するリセット供給工程と、を有し、
前記リセット供給工程では、リセット期間に必要なクロックを出力させるためのクロックイネーブル信号をクロック供給手段に対して出力し、リセット解除の期間に必要なクロックを出力させるためのクロックイネーブル信号を前記クロック供給手段に対して出力し、
前記クロック供給工程では、前記クロックイネーブル信号に応じて前記回路ブロックに対してクロックを出力することを特徴とする半導体集積装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路におけるリセット制御回路に関し、電源遮断、電源復帰制御を伴うリセット制御の技術に関する。
【背景技術】
【０００２】
近年、デジタルカメラやスマートフォンなどの携帯端末機器の高性能化、高機能化が進み、ＬＳＩの消費電力が増大している。
【０００３】
消費電力はダイナミック電力とリーク電力に分類され、ダイナミック電力は回路が動作している期間に消費する電力であり、リーク電力は回路が動作しているかどうかに関わらず電源が入っている状態で定常的に消費する電力である。近年のプロセス微細化に伴いＬＳＩ全体の電力に占めるリーク電力の割合が急激に増加し、その対策が急務となっている。
【０００４】
このリーク電力を削減する代表的な手法として、半導体集積回路のシステムの各機能を実現する各機能ブロックをブロックに分割し、各機能ブロックが担当する機能を使用していない期間に当該機能ブロックへの電源を遮断する、所謂「電源遮断」がある。
【０００５】
この「電源遮断」は、ダイナミック電力の削減対策の代表として知られるクロック遮断（クロックゲーティング）とは異なる。「電源遮断」は、制御として、電源遮断への移行、電源遮断状態からの復帰時に、電源スイッチ制御、クロック制御、リセット制御、アイソレーション制御等の信号の制御を必要とする。
【０００６】
この電源遮断シーケンス、電源復帰シーケンスは、周辺の電源遮断していないブロックへの影響を抑制し、電源遮断対象の機能ブロックが不安定な状態から処理を再開することを防ぐために必要となる。
【０００７】
この電源遮断復帰シーケンスの一部であるリセット制御に関して、一般的にはソフトウェア制御によりリセット信号を生成し、電源復帰後の機能ブロックへ入力し、初期化を行うことが多い。その後、電源復帰シーケンスが完了すると、この機能ブロックは動作可能状態となっているが、仮にシーケンスが完了する前にアクセスが行われると誤動作の原因となってしまう。
【０００８】
機能ブロックによってはリセットをかけるためにクロックパルスを必要とする同期リセットタイプで設計されているものがある。この設計手法の場合、リセット期間が無駄に長くなることにより、供給されるクロックで消費する電力が増大する恐れがあることが知られている。
【０００９】
特許文献１では、この点を解決するために、リセット信号アサート時にクロックイネーブル信号をイネーブルにして、クロックを強制的に供給し、必要な期間が終了するとクロックを停止する。消費電力を抑えつつ確実に同期リセットを行う提案がされている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１３−１３５３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１の場合、リセット期間中のクロック供給には言及しているが、リセット解除に必要なクロック供給に対するケアはなされていない。リセット対処の回路ブロックにおいて、仮にリセット解除が末端のフリップフロップ（ＦＦ）まで到達していないうちに、外部ブロックからアクセスがあると誤動作してしまう。
【００１２】
本発明の目的は、ＬＳＩ内の各回路ブロック（特に電源遮断ブロック）に対するリセット解除時の誤動作を軽減する、リセットシーケンスを提供することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明にかかる半導体集積回路は、
リセット信号をクロック信号で同期化する回路を少なくとも１つ有する回路ブロックと、
前記回路ブロックに対して前記クロック信号を出力するクロック供給手段と、
前記回路ブロックに対して前記リセット信号を出力するリセット供給手段と、
を有し、
前記リセット供給手段はリセット期間に必要なクロックを出力させるためのクロックイネーブル信号を前記クロック供給手段に対して出力し、
リセット解除の期間に必要なクロックを出力させるためのクロックイネーブル信号を前記クロック供給部に対して出力し、
前記クロック供給部は前記クロックイネーブル信号に応じて前記回路ブロックに対してクロックを出力することを特徴とする。
【発明の効果】
【００１４】
以上、本発明によれば、ＬＳＩ内の各回路ブロック（特に電源遮断ブロック）にリセットが伝搬するクロックが増えても、リセット解除時の誤動作を軽減する制御が可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施形態実施形態１の情報処理装置の構成例を示すブロック図
【図２】実施形態実施形態１のリセット供給部の構成例を示すブロック図
【図３】実施形態実施形態１のクロック供給部の構成例を示すブロック図
【図４】実施形態実施形態１のリセット同期化器の構成例を示す図
【図５】実施形態実施形態１の電源復帰シーケンスを説明するフローチャート
【図６】実施形態１の電源遮断シーケンスを説明するフローチャート
【図７】実施形態１の電源復帰シーケンスにおけるリセットシーケンスを説明するフローチャート
【図８】実施形態１のパワーオンリセットシーケンス時のリセット供給部とクロック供給部の動作を説明する図
【図９】実施形態１の高周波クロックで動作している場合のサブシステム１に対するリセットシーケンス時のリセット供給部とクロック供給部の動作を説明する図
【図１０】実施形態１の低周波クロックで動作している場合のサブシステム１に対するリセットシーケンス時のリセット供給部とクロック供給部の動作を説明する図
【図１１】実施形態２の情報処理装置の構成例を示すブロック図
【発明を実施するための形態】
【００１６】
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１７】
［実施形態１］
図１のブロック図により情報処理装置１０の構成例を示す。情報処理装置１０は例えばデジタルカメラシステム用情報処理装置であり、システムオンチップとよばれる半導体装置に代表される構成である。
【００１８】
情報処理装置１０は情報処理装置１０内部の各ブロックに供給するリセット信号を生成するリセット供給部１０１、クロック信号を生成するクロック供給部１０２を有する。さらに各電源遮断ブロック（回路ブロック）に対する電源制御信号を生成する電源制御部１０３を有する。電源が供給されている回路ブロックも、もちろんある。
【００１９】
情報処理装置１０は、データ転送を司るバスシステム１０４を有しており、インターコネクト、ファブリック、オンチップネットワークまたはネットワークオンチップと呼ばれる。バスシステム１０４には情報処理装置全般の処理を行うＣＰＵ１０５が接続されている。また、図には示さない半導体装置１０外部のセンサからデジタルデータを受信しＤＲＡＭ２０に映像データを転送する映像入力処理部が接続されている。さらにＤＲＡＭ２０に格納された映像データを加工処理する画像加工処理部や、映像データを情報処理装置１０の外部に転送する映像出力処理部等が接続されている。サブシステム１０６やサブシステム１０７がこれら処理部を担っているものとする。
【００２０】
一方、バスシステム１０４にはＤＲＡＭ２０にデータを転送するメモリコントローラ１０８が接続されている。ＣＰＵ１０５はＤＲＡＭ２０をワークメモリとして図には示さないＲＯＭに格納されたプログラムを実行する。
【００２１】
リセット供給部１０１は図には示していないがクロック供給部１０２からクロックを供給され、そのクロックに同期して動作する。リセット供給部１０１はリセット信号と共にクロック供給部１０２に対してクロックイネーブル１０９を生成する。本実施形態ではクロックイネーブル信号は各クロック信号個別に制御するものとし、クロックイネーブル１０９はクロック１からクロック５に対応した計５本の信号を束ねて表現している。リセット供給部１０１の動作の詳細は図２と共に後述する。
【００２２】
クロック供給部１０２はクロックイネーブル１０９が有効になると対応したクロックを出力する。さらにクロック信号は個別に周波数制御が可能である。クロック供給部１０２の動作の詳細は図３と共に後述する。
【００２３】
電源制御部１０３は情報処理装置１０内部の電源遮断ブロック（回路ブロック）の電源供給制御とアイソレーション制御を行う。電源供給制御とアイソレーション制御は一般的に別々の信号で制御される。本実施形態では電源供給制御信号とアイソレーション制御信号を束ねて電源制御信号として表現している。ここでアイソレーション制御とは、電源遮断された回路が他の遮断されていない回路へ影響を及ぼすことを防ぐためのマスク制御を指す。
【００２４】
リセット供給部１０１、クロック供給部１０２、電源制御部１０３はシーケンス状態通知インターフェースで相互接続されている。シーケンス状態通知インターフェースは電源遮断シーケンス、電源復帰シーケンス実行時にお互いのシーケンス実行状態を通知し合うために使用される。
【００２５】
サブシステム１０６とサブシステム１０７は電源遮断ブロックであり、電源制御部１０３により電源制御信号１、電源制御信号２を介して各々の電源供給とアイソレーションが個別に制御される。その他の機能ブロックは電源遮断対象外であり、常時電源が供給されている。
【００２６】
またバスシステム１０４、ＣＰＵ１０５、サブシステム１０６、サブシステム１０７、メモリコントローラ１０８は同期リセット方式の機能ブロックであり、リセットを実行するのに少なくとも３サイクルのクロックパルスを必要とするものとする。同期リセットでリセット実行に複数クロックパルスを必要とする要因の一つにリセット同期化器がある。リセット同期化器の詳細は図４で後述する。
【００２７】
図２のブロック図によりリセット供給部１０１の構成例を示す。リセット供給部１０１はパワーオンリセット用リセットシーケンサ１０１１と電源遮断用リセットシーケンサ１０１２とを有する。さらに各々のリセットシーケンサが出力するリセット制御信号とクロックイネーブル信号同士を選択するリセット制御信号選択部１０１３、１０１４とクロックイネーブル選択部１０１５、１０１６を有する。そしてリセット制御信号に応じてリセットの信号レベルを保持するリセット保持部１０１７を有する。
【００２８】
パワーオンリセット用リセットシーケンサ１０１１はチップ起動時に動作するリセットシーケンサであり、情報処理装置１０外部から入力される外部リセット信号をトリガーとして起動する。
【００２９】
パワーオンリセット用リセットシーケンサ１０１１はパワーオンリセット用リセット制御信号１、２を生成する。パワーオンリセット用リセット制御信号１はＣＰＵ１０５に供給するリセット４を制御する信号であり、パワーオンリセット用リセット制御信号２はその他機能ブロックへ供給するリセット信号を制御する信号である。パワーオンリセット用リセット制御信号１、２によりリセット信号をＬレベルにするかＨレベルにするかのリセット制御情報をリセット保持部１０１７に伝達する。なお、リセット信号はＬレベルでアクティブ（ローアクティブ）である。リセット制御情報が伝達されるとリセット保持部１０１７はリセット信号の信号レベルを伝達されたリセット制御情報が示すレベルに変更し、再びリセット制御情報が伝達されるまで信号レベルを保持する。パワーオンリセット用リセットシーケンサ１０１１は外部リセット信号をトリガーとしてパワーオンリセットシーケンスを開始する。パワーオンリセットシーケンスの詳細は図７と共に後述する。パワーオンリセット用リセットシーケンサ１０１１はＣＰＵ１０５のクロック信号専用のクロックイネーブル信号であるパワーオンリセット用クロックイネーブル１とその他クロック信号に対するパワーオンリセット用クロックイネーブル２も生成する。
【００３０】
電源遮断用リセットシーケンサ１０１２は電源遮断復帰シーケンス時に動作するリセットシーケンサであり、シーケンス状態通知インターフェースを介して電源制御部１０３から通知されるシーケンス状態をトリガーとして起動する。電源遮断用リセットシーケンサ１０１２はパワーオンリセット用リセットシーケンサ１０１１を複製したものであり等価の動作を行う。パワーオンリセット用リセット制御信号１、２と電源遮断用リセット制御信号１、２がパワーオンリセット用クロックイネーブル１、２と電源遮断用クロックイネーブル１、２がそれぞれ対応した信号である。
【００３１】
電源遮断用リセットシーケンサ１０１２は電源遮断用リセット制御信号１、２を生成する。電源遮断用リセット制御信号１はＣＰＵ１０５専用のリセット信号を制御する信号であるが、本実施形態ではＣＰＵ１０５は電源遮断対象ではないため未接続にしている。電源遮断用リセット制御信号２はその他機能ブロックへ供給するリセット信号を制御する信号である。さらに電源遮断用リセットシーケンサ１０１２はＣＰＵ１０５のクロック信号専用のクロックイネーブル信号である電源遮断用クロックイネーブル１とその他クロック信号に対する電源遮断用クロックイネーブル２を生成する。同様にしてＣＰＵ１０５は電源遮断ブロックではないため、電源遮断用クロックイネーブル２は未接続としている。
【００３２】
電源遮断用リセットシーケンサ１０１２はリセットシーケンスの状態を、状態通知インターフェースを介してクロック供給部１０２と電源制御部１０３へ通知する。
【００３３】
リセット制御信号選択部１０１３はパワーオンリセット用リセット制御信号２と電源遮断用リセット制御信号２を選択しリセット制御信号１を出力する。リセット制御信号選択部１０１３はシーケンス状態通知インターフェースを介して通知される電源遮断復帰シーケンスの電源遮断対象ブロック情報を基に、サブシステム１０６が対象である場合に電源遮断用リセット制御信号２を選択する。それ以外の期間はパワーオンリセット用リセット制御信号２を選択する。同様に、リセット制御信号選択部１０１４、クロックイネーブル選択部１０１５、クロックイネーブル選択部１０１６は動作する。１０１４〜１０１６の各部は、対応する電源遮断ブロックに対する電源遮断復帰シーケンス中に電源遮断用リセットシーケンサ１０１２が出力する信号を選択するよう動作する。以上から、パワーオンリセット時はパワーオンリセット用リセットシーケンサが出力する信号が有効となり、電源遮断復帰シーケンス中は電源遮断復帰シーケンスの電源遮断対象ブロックに対してのみ電源遮断用リセットシーケンサが出力する信号が有効となる。
【００３４】
図３のブロック図によりクロック供給部１０２の構成例を示す。ＯＳＣ（オシレーター）１０２１は低周波のクロックを生成する発振回路である。ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）１０２２はＯＳＣ１０２１が生成するクロックよりも高速なクロックを生成する位相同期回路である。なお、本発明はオシレーターとＰＬＬに限るものではなく、クロックソース源ならばいかなる形態でもよい。
【００３５】
クロックＭＵＸ１０２３はＯＳＣ１０２１とＰＬＬ１０２２が出力するクロックどちらか一方を選択しクロック６として出力する。クロックＭＵＸ１０２３を制御するセレクト信号はクロック制御部１０２４が生成する。クロック６は分岐した後、各々のクロック分周部１０２６とクロックゲーティング部１０２８を介してクロック１からクロック５としてクロック供給部１０２から出力される。
【００３６】
チップ起動時のパワーオンリセット期間の初期状態ではクロックＭＵＸ１０２３はＯＳＣ１０２１が出力する低周波クロックを選択してクロック６として出力する。一方パワーオンリセット完了後はＰＬＬ１０２２が出力する高周波クロックをクロックＭＵＸ１０２３で選択するよう切り替えることで情報処理装置１０全体が高速で処理実行可能になる。低周波クロック選択時を低速動作モードと呼び、高周波クロック選択時を通常動作モードと呼ぶこととする。
【００３７】
クロック制御部１０２４は前述した通り、クロックＭＵＸ１０２３のセレクト信号を生成する。また、クロック制御部１０２４はクロックゲーティング部１０２８に供給するクロックイネーブル７からクロックイネーブル１１を生成する。クロック制御部１０２４は、図に示さないレジスタインターフェースを備え、バスシステム１０４を介してＣＰＵ１０５からレジスタアクセスにより出力信号を制御してもよい。または、クロック制御部１０２４がハードウェアシーケンサを具備し、リセット信号やその他チップの状態を示す信号の状態に応じて自動で出力信号を制御してもよい。
【００３８】
クロック分周設定部１０２５はシーケンス状態通知インターフェースを介して電源遮断用リセットシーケンサ１０１２から通知されるシーケンス状態をトリガーとして、クロック分周部に分周設定値を出力する。クロック分周設定部１０２５はクロック１からクロック５の各々に対応したクロック分周部１０２６に対する分周設定値を個別に制御可能である。シーケンス状態通知インターフェースから実行中の電源遮断復帰シーケンスの電源遮断対象ブロック情報を通知されることで、その電源遮断対象ブロックに対応したクロック信号に対する分周設定値のみを制御する。また、クロック分周設定部１０２５はクロックＭＵＸ１０２３がどのクロックを選択しているかを監視し、クロック６の周波数に応じてリセット実行に適切な分周比を決定する。
【００３９】
クロック分周部１０２６はクロック分周設定部１０２５から通知される信号に基づき、クロック６を分周してクロックゲーティング部１０２８に対してクロックを出力する。
【００４０】
リセット供給部１０１とクロック制御部１０２４が出力する各クロックに対応したクロックイネーブル信号は論理和回路１０２７で論理和を取られクロックゲーティング部１０２８に入力される。なお、クロックイネーブル信号はＨレベルでアクティブ（ハイアクティブ）とする。
【００４１】
クロックゲーティング部１０２８は入力されるクロックゲーティング信号に基づきクロックのＯＮ／ＯＦＦ動作を行う。具体的にはクロックゲーティング信号がＨレベルの期間にクロックを通過させ、Ｌレベルの期間にクロックを遮断する。従って、リセット供給部１０１もしくはクロック制御部１０２４が出力するクロックイネーブル信号どちらかがＨレベルの期間に、対応したクロックがクロック供給部１０２から出力される。クロックゲーティング部１０２８の代表的な回路としてはＧＣＢ（クロックゲーティングバッファ）が広く知られている。
【００４２】
図４の回路図により同期リセット方式におけるリセット信号の同期化器について説明する。リセット同期化器３０の２つのフリップフロップ３０１とフリップフロップ３０２はクロックに同期してリセット信号を受信する。リセット信号が有効（Ｌレベル）になると２サイクル後にＬレベルがリセット同期化器３０から伝搬する。図４では終端に存在するフリップフロップ３１の初期値が０である場合を示しており、論理積回路３２を介してリセット信号がフリップフロップ３１のＤ端子に到達する。リセット信号が同期化された次のサイクルでフリップフロップ３１がＬレベルをラッチし、リセット状態となる。なお、論理積回路３２のもう一方の入力は図に示していないが、リセット信号が無効（Ｈレベル）のときにフリップフロップ３１がラッチする入力信号が接続される。
【００４３】
上記動作からリセットの同期化器がリセット対象ブロック内部に１つ存在すると、終端のフリップフロップがリセット状態になるまでに合計３サイクル必要となる。リセット解除時も同様で、リセット信号が無効（Ｈレベル）になり終端のフリップフロップ３１に反映されるまでに３サイクル必要となる。リセット対象ブロック内部にリセットの同期化器が多段に配置されればその数に応じて同期リセットに必要なクロックパルス数は増加していくこととなる。
【００４４】
図５に示すフローチャートにより電源遮断ブロックの電源復帰シーケンス動作を説明する。なお、図５に示す電源復帰シーケンスは各電源遮断ブロックを個々に電源復帰するシーケンスであり、各電源遮断ブロックは順次排他で制御される。説明の容易化のため、サブシステム１０６を電源復帰する場合で以下説明する。
【００４５】
サブシステム１０６は電源復帰シーケンス開始時パワーオフ状態であり、電源は供給されていない（Ｓ０）。さらにクロック１は停止しており、アイソレーション機能は有効となっている。ＣＰＵ１０５から電源制御部１０３に電源復帰シーケンス開始が通知されると、電源制御部１０３は電源制御信号１を介してサブシステム１０６のパワースイッチを有効にして電源を供給する（Ｓ１）。電源制御部１０３への電源復帰シーケンス開始通知方法の一例としては、電源制御部１０３にレジスタインターフェースを設け、ＣＰＵ１０５がバスシステム１０４を介して電源制御部１０３が所持するシーケンス起動レジスタを書きかえることが考えられる。ただし、バスシステム１０４から電源制御部１０３へのデータ転送インターフェースは図に示していない。
【００４６】
サブシステム１０６に電源が供給されると電源制御部１０３はシーケンス状態通知インターフェースを介してリセット供給部１０１に電源供給が完了したことを通知する。リセット供給部１０１はサブシステム１０６に対するリセットシーケンスを実行する（Ｓ２）。電源復帰時のリセットシーケンスの詳細は後述する図７、図９、図１０で説明する。また、シーケンス状態通知インターフェースでは電源供給完了状態と共に電源遮断対象ブロックがサブシステム１０６であることも通知する。
【００４７】
リセットシーケンスが完了すると、リセット供給部１０１は電源制御部１０３にリセットシーケンス完了を通知し、電源制御部１０３は電源制御信号１を介してサブシステム１０６のアイソレーションを無効化する制御を行う（Ｓ３）。
【００４８】
アイソレーション無効化が完了すると、電源制御部１０３はＣＰＵ１０５に電源復帰シーケンス完了を通知する（Ｓ４）。ＣＰＵ１０５への電源復帰シーケンス完了通知方法としては、図１に示す割り込み信号を用いてもよい。もしくは電源制御部１０３にステータスレジスタを設け、ＣＰＵ１０５が当該レジスタをポーリングする方法で通知してもよい。
【００４９】
以上でサブシステム１０６の電源復帰シーケンスが完了し、サブシステム１０６は動作可能な状態となる（Ｓ５）。
【００５０】
図６に示すフローチャートにより電源遮断ブロックの電源遮断シーケンス動作を説明する。なお、図６に示す電源遮断シーケンスは各電源遮断ブロックを個々に電源遮断するシーケンスであり、各電源遮断ブロックは順次排他で制御される。説明の容易化のため、サブシステム１０６を電源遮断する場合で以下説明する。
【００５１】
サブシステム１０６は電源遮断シーケンス開始時パワーオン状態であり、電源は供給されている（Ｓ５）。さらにクロックは停止しており、アイソレーション機能は無効となっている。ＣＰＵ１０５から電源制御部１０３に電源遮断シーケンス開始が通知されると、電源制御部１０３は電源制御信号１を介してサブシステム１０６に対してアイソレーションを有効化する制御を行う（Ｓ６）。電源制御部１０３への電源遮断シーケンス開始通知方法の一例としては、電源復帰シーケンス同様、前述したレジスタインターフェースが考えられる。
【００５２】
アイソレーション有効化が完了すると、電源制御部１０３はシーケンス状態通知インターフェースを介してリセット供給部１０１にアイソレーション有効化完了を通知し、リセット供給部１０１はサブシステム１０６に対するリセット１を有効化する（Ｓ７）。
【００５３】
リセット１有効化が完了すると、リセット供給部１０１は電源制御部１０３にリセット１有効化完了を通知し、電源制御部１０３は電源制御信号１を介してサブシステム１０６に対してパワースイッチを無効にし、電源を遮断する（Ｓ８）。
【００５４】
サブシステム１０６の電源が遮断されると電源制御部１０３はＣＰＵ１０５に電源遮断シーケンス完了を通知する（Ｓ９）。ＣＰＵ１０５への電源遮断シーケンス完了通知方法としては、前述した割り込み信号を用いる方法でもよいし、電源制御部１０３に設けたステータスレジスタをポーリングする方法を用いてもよい。
【００５５】
以上でサブシステム１０６の電源遮断シーケンスが完了し、サブシステム１０６は電源が遮断された状態となる（Ｓ０）。
【００５６】
なお、図５と図６で説明したシーケンスは一例であり、回路の動作を不安定にさせずに電源遮断復帰を実現できる範囲で各ステップの実行順番を入れ替えてもよい。
【００５７】
図７に示すフローチャートにより電源復帰時のリセットシーケンス（Ｓ２）の詳細なシーケンスを説明する。説明の容易化のため、サブシステム１０６をリセットする場合で以下説明する。
【００５８】
電源制御部１０３はリセット供給部１０１にサブシステム１０６に電源供給が完了したことをシーケンス状態通知インターフェースを介して通知する（Ｓ２０）。リセット供給部１０１はサブシステム１０６に供給しているリセット１を有効にする（Ｓ２１）。ただし、リセットシーケンス開始時点でリセット１が既に有効状態にある場合はＳ２１では有効状態を維持する動作をする。クロック供給部１０２はリセット供給部１０１からリセットシーケンスが開始されたことを通知され、電源復帰対象であるサブシステム１０６（起動制御ブロックと同義）のクロック１の周波数がリセット実行に適切となるよう分周比を変更する（Ｓ２２）。リセット供給部１０１はクロック１に対するクロックイネーブルを有効にし、クロック供給部１０２はクロックイネーブルが有効な期間クロック１を出力する（Ｓ２３）。クロック供給完了しサブシステム１０６がリセット状態となると、リセット供給部１０１はリセット１を無効にする（Ｓ２４）。リセット１が無効になった後にリセット供給部１０１は再度クロック１に対するクロックイネーブルを有効にし、クロック供給部１０２はクロックイネーブルが有効な期間クロック１を出力する（Ｓ２５）。クロック供給完了し、サブシステム１０６の内部の回路全てがリセット解除状態となる。クロック供給部１０２はリセット供給部１０１からリセット解除が完了したことを通知（リセット解除完了通知）されクロック１の分周比をリセットシーケンス開始前の状態に復元する（Ｓ２６）。リセット供給部１０１は電源制御部１０３にリセットシーケンスが完了したことをシーケンス状態通知インターフェースを介して通知する（Ｓ２７）。以上でリセットシーケンス実行（Ｓ２）が完了する。
【００５９】
図８によりパワーオンリセット時のリセット供給部１０１とクロック供給部１０２の詳細な動作を説明する。
【００６０】
時刻Ｔ０で外部リセットがＬレベルからＨレベルへと遷移する。ここでは外部リセットはＬレベルでアクティブ（ローアクティブ）の信号とする。なお初期状態ではＯＳＣ１０２１の低周波クロックが選択されてクロックＭＵＸ１０２３からクロック６に出力されているものとする。時刻Ｔ１でパワーオンリセット用リセットシーケンサ１０１１は外部リセットがＨレベルに遷移したことをトリガーにパワーオンリセットシーケンスを開始する。パワーオンリセット用リセットシーケンサ１０１１が具備するリセットカウンタに予め設定されたカウント値を設定しダウンカウントを開始する。パワーオンリセット用リセットシーケンサ１０１１はリセットカウンタのカウント値に基づきリセット信号とクロックイネーブル信号を制御していく。なお本実施形態ではリセットシーケンスでリセット信号とクロックイネーブル信号、クロック信号を制御するものとして説明するが、それら信号に限定はしない。近年チップの歩留り向上のために故障ＳＲＡＭに対してリペア動作を行う必要が出てきた。このリペア動作はリセットシーケンスの一環で行われるため、リペア動作に関連した信号も対象信号である。
【００６１】
パワーオンリセットシーケンスを開始するとパワーオンリセット用リセットシーケンサ１０１１はパワーオンリセット用リセット制御信号１、２にＬレベルを示す。リセット制御信号選択部１０１３、１０１４は電源遮断復帰シーケンス中ではないため、パワーオンリセット用リセット制御信号１、２を選択しリセット制御信号１、２に出力する。ただし、全リセット信号は初期状態でＬレベルであるため、時刻Ｔ１ではパワーオンリセット用リセット制御信号１、２はリセット信号には影響を及ぼさない。
【００６２】
時刻Ｔ６からＴ１０にパワーオンリセット用リセットシーケンサ１０１１はパワーオンリセット用クロックイネーブル１、２を固定期間有効にする。クロックイネーブル１からクロックイネーブル５まで全てが有効となり、全クロックがクロックゲーティング部１０２８を通過しクロック１からクロック５が出力される。この期間に全クロックは３パルスクロック出力し、リセット対象の回路がリセット状態となる。
【００６３】
時刻Ｔ１１でパワーオンリセット用リセットシーケンサ１０１１はパワーオンリセット用リセット制御信号２にＨレベルを示す。この時点ではパワーオンリセット用リセット制御信号１にはＨレベルは示さない。時刻Ｔ１２でリセット４以外の全てのリセットが無効状態となる。しかしこの時点ではリセット対象ブロックの内部ではリセットの解除状態が全回路には行き届いていない。
【００６４】
時刻Ｔ１３からＴ１７にパワーオンリセット用リセットシーケンサ１０１１はパワーオンリセット用クロックイネーブル２を固定期間有効にする。クロックイネーブル４以外の全てのクロックイネーブルが有効となり、クロック４以外の全クロックがクロックゲーティング部１０２８を通過して出力される。この期間にクロック４以外の全クロックは３パルスクロック出力し、ＣＰＵ１０５以外の全機能ブロックがリセット解除状態となる。
【００６５】
時刻Ｔ１８でパワーオンリセット用リセットシーケンサ１０１１はパワーオンリセット用リセット制御信号１にＨレベルを示す。時刻Ｔ１９でリセット４が無効状態となる。リセット４が無効となると、クロック制御部１０２４はクロックイネーブル１０を有効にすることでクロック供給部１０２はクロック４を出力し、ＣＰＵ１０５が動作可能となる。
【００６６】
図９によりクロックＭＵＸ１０２３がＰＬＬ１０２２の出力クロックを選択している通常動作モード時のリセットシーケンス実行（Ｓ２）におけるリセット供給部１０１とクロック供給部１０２の詳細な動作を説明する。なお、図９ではサブシステム１０６に対してリセットシーケンスを実行する場合を説明する。
【００６７】
サブシステム１０６は時刻Ｔ０においてパワーオフ状態から電源が供給された状態にいる。リセットシーケンス開始時点でサブシステム１０６に供給するリセット１は有効状態、クロック１は停止状態、クロックイネーブル１は無効状態となっている。クロックＭＵＸ１０２３はＰＬＬ１０２２が出力する高周波クロックを選択しクロック６に出力している。時刻Ｔ０で、電源制御部１０３はリセット供給部１０１にサブシステム１０６に対して電源供給が完了したことをシーケンス状態通知インターフェースを介して通知する。時刻Ｔ１でリセット供給部１０１はサブシステム１０６に対するリセットシーケンスを開始する。電源遮断用リセットシーケンサ１０１２が具備するリセットカウンタに予め設定されたカウント値を設定しダウンカウントを開始する。電源遮断用リセットシーケンサ１０１２はリセットカウンタのカウント値に基づきリセット信号とクロックイネーブル信号を制御していく。リセットシーケンスを開始すると電源遮断用リセットシーケンサ１０１２は電源遮断用リセット制御信号１、２にＬレベルを示す。リセット制御信号選択部１０１３はサブシステム１０６が電源復帰シーケンスの電源遮断対象ブロックであるため、電源遮断用リセット制御信号２を選択しリセット制御信号１に出力する。ただしリセット１は既に有効状態であるため、リセット１は有効状態を維持する。一方、リセット制御信号選択部１０１４はサブシステム１０７は電源遮断対象ブロックではないため、パワーオンリセット用リセット制御信号２を選択してリセット制御信号２に出力しており、リセット２は無効のままとなる。また、電源遮断用リセット制御信号１もＬレベルを示しているが、電源遮断用リセット制御信号１は未接続の信号のため、他のどの信号にも影響を及ぼさない。
【００６８】
クロック分周設定部１０２５はシーケンス状態通知インターフェースを介してリセットシーケンスが開始されたことを電源遮断用リセットシーケンサ１０１２から通知され、時刻Ｔ５でクロックの分周比を変更する。クロック分周設定部１０２５はクロックイネーブル１が有効な期間にクロック１が同期リセットを実行するのに最適なパルス数となるよう分周比を決定する。クロックＭＵＸ１０２３ではＰＬＬ１０２２の高周波クロックが選択されているため、本実施形態ではクロックイネーブル有効期間に３パルスを供給するために４分周を選択し、クロック１に対するクロック分周部１０２６から４分周されたクロックが出力される。
【００６９】
時刻Ｔ６からＴ１０に電源遮断用リセットシーケンサ１０１２はクロックイネーブル１を固定期間有効にする。クロックイネーブル１が有効期間にクロック１に対するクロックゲーティング部１０２８を通過しクロック１が出力される。この期間にクロック１は３パルスクロック出力し、サブシステム１０６がリセット状態となる。ＰＬＬ１０２２の高周波クロックをそのまま出力するのではなく、４分周したクロックをクロック１で出力することで省電力の効果も得られる。さらに、クロック２からクロック５には影響を与えないことで情報処理装置１０全体としての処理性能を損なうことも回避できる。
【００７０】
時刻Ｔ１１で電源遮断用リセットシーケンサ１０１２は電源遮断用リセット制御信号２でＨレベルを示す。時刻Ｔ１２でリセット１が無効状態となる。しかしこの時点ではサブシステム１０６の内部ではリセットの解除状態が全回路には行き届いていない。本実施形態では全回路がリセット解除状態になるまでにリセットが無効になった後に３パルス以上のクロックを必要とするものとする。
【００７１】
時刻Ｔ１３からＴ１７に電源遮断用リセットシーケンサ１０１２は再びクロックイネーブル１を固定期間有効にする。クロックイネーブル信号の出力期間は予め設定する。クロックイネーブル１が有効期間にクロック１に対するクロックゲーティング部１０２８を通過しクロック１が出力される。この期間にクロック１は３パルスクロック出力し、サブシステム１０６の全回路がリセット解除状態となる。
【００７２】
クロック分周設定部１０２５はシーケンス状態通知インターフェースを介してリセット解除が終了したことを電源遮断用リセットシーケンサ１０１２から通知され、時刻Ｔ１８でクロックの分周比を復元する。時刻Ｔ２０で電源遮断用リセットシーケンサ１０１２はリセットシーケンス完了を電源制御部１０３にシーケンス状態通知インターフェースを介して通知しリセットシーケンス実行（Ｓ２）は完了する。
【００７３】
図１０によりクロックＭＵＸ１０２３がＯＳＣ１０２１の出力クロックを選択している低速動作モード時のリセットシーケンス実行（Ｓ２）におけるリセット供給部１０１とクロック供給部１０２の詳細な動作を説明する。なお、図１０ではクロック６の初期状態と時刻Ｔ５の分周比変更動作以外は図９と同様の動作をする。
【００７４】
時刻Ｔ０においてクロックＭＵＸ１０２３はＯＳＣ１０２１が出力する低周波クロックを選択し、クロック６に出力している。
【００７５】
時刻Ｔ５でクロック分周設定部１０２５はシーケンス状態通知インターフェースを介してリセットシーケンスが開始されたことを電源遮断用リセットシーケンサ１０１２から通知され、クロックの分周比を変更する。クロックＭＵＸ１０２３ではＯＳＣ１０２１の低周波クロックが選択されているため、クロック分周部１０２６はクロックゲーティング前のクロック１にクロック６を分周せず（１分周）出力する。ＯＳＣ１０２１の低周波クロックが選択されている場合は分周せずにクロック１を生成することで、リセット１が有効な期間に同期リセットに必要な３パルスを確保することができ、確実なリセット実行が可能となる。
【００７６】
時刻Ｔ１８でクロック分周設定部１０２５はシーケンス状態通知インターフェースを介してリセット解除が終了したことを電源遮断用リセットシーケンサ１０１２から通知され、クロックの分周比を復元する。しかし、時刻Ｔ５で分周比を変更しなかったため、時刻Ｔ１８でもそのまま分周比を１分周に維持する。
【００７７】
尚、前記電源遮断ブロックのリセット方式が非同期リセット方式の場合もありうる。この場合、リセットをかける際は非同期で、リセットを解除する際はクロック同期とするリセット同期化器が一般的に用いられる。この場合、リセット期間中のクロック供給不要だが、デアサートの状態が、電源遮断ブロック内のリセット対象の全ＦＦに伝搬するまでクロックを供給する必要がある。
【００７８】
また、本実施形態では、リセット解除時に供給するクロックサイクル数は図４の同期化器の遅延を考慮して、３クロックとした。しかし、前述のように電源遮断ブロック内に多段に同期化器が配置されている場合は、電源遮断ブロック内のリセット対象の全ＦＦに伝搬するまでに３クロック以上のクロックサイクルが必要になる。さらにそれぞれの電源遮断ブロック内で多段に同期化器が配置される数が異なる場合、それぞれの電源遮断ブロックでリセットに必要なクロック数が異なる。このような場合、全電源遮断ブロックをリセット可能な最大クロック数を一律に供給してもよい。
【００７９】
これにより、リセット供給部１０１から生成されるリセット時のクロックイネーブルのパルス幅が一律になり、回路の簡素化が図れる。また、
電源制御部１０３内に電源遮断ブロック毎のリセットに必要なクロック数を設定する書き換え可能なレジスタを用意しておいてＣＰＵ１０５からこのレジスタを変更できるようにしてもよい。電源制御部１０３はシーケンス状態通知インターフェースを介してリセット供給部１０１に対して電源遮断するブロックとリセットに必要なクロック数を通知し、リセット供給部はこれに従ってクロックイネーブル信号をクロック供給部１０２へ供給する。これにより、電源遮断ブロック毎のリセット用クロックイネーブルのパルス幅を変更することが可能となり、リセットシーケンス期間の最小化が図れる。
【００８０】
［実施形態２］
図１１は、本実施形態の情報処理装置１０である。実施形態１の図１との違いは、電源制御部１０３に対して、電源遮断対象であるサブシステム１０６，１０７からそれぞれリセット完了信号１１０１，１１０２を介して、リセット完了通知信号（初期化処理の完了通知と同義である。）が出力されている点である。よって、図７のＳ２５でクロック供給を停止する手順が異なる。
【００８１】
ここでは説明の容易化のため、サブシステム１０６をリセットする場合で以下説明する。
【００８２】
Ｓ２０からＳ２４までは実施形態１と同等のため説明を省略する。Ｓ２５ではリセット１が無効になった後にリセット供給部１０１は再度クロック１に対するクロックイネーブルを有効にし、クロック供給部１０２はクロックイネーブルが有効な期間クロック１を出力する。一方、サブシステム１０６ではサブシステム内のＦＦにリセット解除の状態が行きわたり、リセットが完了したかが判断される。リセット完了後、サブシステム１０６はリセット完了信号１１０１を有効にして電源制御部１０３へ出力する。リセット完了信号１１０１を受けて、電源制御部１０３はシーケンス状態通知インターフェースを介して、リセット供給部１０１にクロックイネーブル信号を無効にするように指示する。その後、リセット供給部１０１はクロック供給部１０２へクロックイネーブル信号を無効にして出力する。そして、クロック供給部１０２はクロック１の供給を停止する。クロックイネーブル信号無効後、リセット供給部１０１はシーケンス状態通知インターフェースを介して電源制御部１０３にクロック１の停止を通知する。その後のステップＳ２６以降の動作は実施形態１と同等であるので説明を省略する。
【００８３】
また、リセットシーケンス以外は実施形態１と同様であるので説明を省略する。
【００８４】
尚、本実施形態では、サブシステムからのリセット完了の通知を電源制御部１０３に対して行ったが、リセット供給部１０１に対して通知し、クロックイネーブルを無効にする構成としてもよい。また、サブシステムからリセット完了をＣＰＵ１０５に割り込み信号で通知し、ＣＰＵ１０５がクロック停止を電源制御部１０３に指示してもよい。さらに、サブシステムからリセット完了をＣＰＵ１０５に割り込み信号で通知し、ＣＰＵ１０５からクロックイネーブルの無効化をリセット供給部１０１に指示してもよい。
【００８５】
尚、実施形態１〜２ではリセットシーケンスは電源復帰シーケンス内の１ステップとして説明したが、サブシステムを電源遮断ではなくソフトウエアリセットする場合も本発明が適用できる。
【００８６】
以上説明したように、本実施形態によれば、電源遮断からの復帰時のリセットシーケンスにおいて、リセット解除に要する時間を待って電源遮断復帰シーケンスを完了とみなす。よって、復帰直後の電源遮断サブシステムへのアクセスによる誤動作を防止できることとなる。
【００８７】
電源遮断ブロック内部に多段でリセット同期化器があり、リセット解除に時間を要する場合や、電源遮断ブロックのクロック周波数が周辺回路の周波数と比較して低くリセット解除期間が長い場合にも適用できる。また、電源遮断対象のブロックに制御用の専用ＣＰＵがあり、電源遮断からの復帰後即座にアクセスが発生するような構成にも対応できる。
【００８８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００８９】
１０  情報処理装置
２０  ＤＲＡＭ
３０  リセット同期化器
３１  フリップフロップ
３２  論理積回路
１０１  リセット供給部
１０２  クロック供給部
１０３  電源制御部
１０４  バスシステム
１０５  ＣＰＵ
１０６  サブシステム
１０７  サブシステム
１０８  メモリコントローラ
１０９  クロックイネーブル
３０１  フリップフロップ
３０２  フリップフロップ
１０１１  パワーオンリセット用リセットシーケンサ
１０１２  電源遮断用リセットシーケンサ
１０１３  リセット制御信号選択部
１０１４  リセット制御信号選択部
１０１５  クロックイネーブル選択部
１０１６  クロックイネーブル選択部
１０１７  リセット保持部
１０２１  ＯＳＣ
１０２２  ＰＬＬ
１０２３  クロックＭＵＸ
１０２４  クロック制御部
１０２５  クロック分周設定部
１０２６  クロック分周部
１０２７  論理和回路
１０２８  クロックゲーティング部
１１０１  リセット完了通知信号
１１０２  リセット完了通知信号
【図１】
2019101912.tif 000003
【図２】
2019101912.tif 000004
【図３】
2019101912.tif 000005
【図４】
2019101912.tif 000006
【図５】
2019101912.tif 000007
【図６】
2019101912.tif 000008
【図７】
2019101912.tif 000009
【図８】
2019101912.tif 000010
【図９】
2019101912.tif 000011
【図１０】
2019101912.tif 000012
【図１１】
2019101912.tif 000013