(57)【要約】【課題】複数の電源ブロックに分割した半導体装置にて、誤動作を引き起こし得る状態が発生した場合に、その発生を簡便かつ速やかに検出できるようにする。【解決手段】異なる電源ブロックに配置され、クロックに同期して動作する第１及び第２の記憶回路と、一方の記憶回路の出力端子と他方の記憶回路の入力端子との間に接続される第１及び第２の遅延回路と、記憶回路の入力信号及び出力信号に基づいて誤動作が生じ得る状態であるか否かを判定し、判定結果をエラー検出信号として出力する判定回路とを備え、第１及び第２の記憶回路に異なる初期値を与えて、記憶回路間においてトグル状態で信号が送受信されているか否かをモニターすることにより、誤動作が生じ得る状態になったことを簡便かつ速やかに検出できるようにする。【選択図】図２
2008311767.tif 000002
【特許請求の範囲】
【請求項１】
動作電圧及び動作周波数を制御可能な電源ブロックを含む複数の電源ブロックを有する半導体装置であって、
第１の電源ブロックに配置され、クロックに同期して動作する第１の記憶回路と、
第２の電源ブロックに配置され、前記クロックに同期して動作する第２の記憶回路と、
前記第１の記憶回路の出力端子と前記第２の記憶回路の入力端子との間に接続される第１の遅延回路と、
前記第２の記憶回路の出力端子と前記第１の記憶回路の入力端子との間に接続される第２の遅延回路と、
前記第１及び第２の記憶回路における入力信号及び出力信号に基づいて、誤動作が生じ得る状態であるか否かを判定し、判定結果をエラー検出信号として出力する判定回路とを備えることを特徴とする半導体装置。
【請求項２】
前記第１の記憶回路と、前記第２の記憶回路と、前記第１の遅延回路と、前記第２の遅延回路との組を複数設け、
前記第１の遅延回路を構成する複数の回路素子、及び前記第２の遅延回路を構成する複数の回路素子を、各組毎に配置を異ならせて前記第１の電源ブロック及び前記第２の電源ブロックに配置したことを特徴とする請求項１記載の半導体装置。
【請求項３】
ＰＬＬ回路又はＤＬＬ回路を備え、
前記判定回路は、前記ＰＬＬ回路又はＤＬＬ回路の出力信号に基づいて、前記ＰＬＬ回路又はＤＬＬ回路の出力クロックが安定しているか否かを判定し、判定結果に応じて誤動作が生じ得る状態であるか否かを示すエラー検出信号を出力することを特徴とする請求項１又は２記載の半導体装置。
【請求項４】
動作電圧及び動作周波数を制御可能な電源ブロックを含む複数の電源ブロックを有する半導体装置であって、
第１の電源ブロックにおける第１の電源電位及び第２の電源ブロックにおける第２の電源電位が入力され、前記第１の電源電位と前記第２の電源電位の電位差を検知する電位差検知回路と、
前記電位差検知回路の検知結果に基づいて、前記第１の電源電位と前記第２の電源電位の電位差が所定の範囲から逸脱しているか否かを判定し、判定結果に応じて誤動作が生じ得る状態であるか否かを示すエラー検出信号を出力する判定回路とを備えることを特徴とする半導体装置。
【請求項５】
前記判定回路から出力されるエラー検出信号に応じて、データ転送を同期転送で行うか非同期転送で行うかを切り替える選択回路を備えることを特徴とする請求項１〜４の何れか１項に記載の半導体装置。
【請求項６】
前記判定回路から出力されるエラー検出信号に応じて、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックにおける動作電圧及び動作周波数の少なくとも一方を制御することを特徴とする請求項１〜５の何れか１項に記載の半導体装置。
【請求項７】
前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックにおける動作周波数を低くすることを特徴とする請求項１〜５の何れか１項に記載の半導体装置。
【請求項８】
カウンタを有するリセット生成回路と、
前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックに対する割込み要求を発生させる割込み生成回路とを備え、
前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記リセット生成回路がカウント動作を行い、かつ前記割込み生成回路が前記割込み要求を発生させ、前記リセット生成回路におけるカウント値が所定の値に達するまでに前記割込み要求に応じたカウンタ値のクリア動作が実行されないときには、前記リセット生成回路は、前記第１の電源ブロック及び前記第２の電源ブロックを初期化することを特徴とする請求項１〜５の何れか１項に記載の半導体装置。
【請求項９】
前記判定回路から出力されるエラー検出信号に係るエラー情報を保持するレジスタを備えることを特徴とする請求項１〜５、８の何れか１項に記載の半導体装置。
【請求項１０】
動作電圧及び動作周波数を制御可能な電源ブロックを含む複数の電源ブロックを有し、かつＰＬＬ回路又はＤＬＬ回路を有する半導体装置であって、
前記ＰＬＬ回路又はＤＬＬ回路の出力信号に基づいて、前記ＰＬＬ回路又はＤＬＬ回路の出力クロックが安定しているか否かを判定し、判定結果に応じて誤動作が生じ得る状態であるか否かを示すエラー検出信号を出力する判定回路と、
前記判定回路から出力されるエラー検出信号に応じて、データ転送を同期転送で行うか非同期転送で行うかを切り替える選択回路とを備えることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作電圧や動作周波数を制御可能な複数の電源ブロックを有する半導体装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩ等の半導体装置（半導体集積回路）の高速化・大規模化に伴い、半導体装置の消費電力の削減が大きな課題となっている。半導体装置の負荷容量をＣ、電源電圧をＶ、動作周波数をＦとすると、半導体装置の消費電力Ｐは、一般にＰ＝Ｃ×Ｖ2×Ｆで表される。
【０００３】
そこで、チップ内を複数の電源ブロックに分割し、電源ブロックの動作電圧や動作周波数を制御することによって半導体装置の消費電力を削減する技術が、高速なプロセッサや様々な低消費電力化が必須の半導体装置に適用されるようになってきている。消費電力の削減技術としては、特定のブロックに対して動的に動作電圧や動作周波数を変更するＤＶＦＳ（Dynamic Voltage Frequency Scaling）と呼ばれる技術や、特定のブロックへの電源供給をオン／オフ制御するパワーゲーティング（Power Gating）制御技術などがある。
【０００４】
しかし、特定の電源ブロックに対する電源供給のオン／オフ制御、動作電圧の変更制御、動作周波数の変更制御、又は動作周波数に係るオン／オフ制御等を行うと、半導体装置内部における電源やグランドにノイズが発生したり、一時的な電圧低下が発生したりすることがある（例えば、図１３参照。）。また、動作電圧や動作周波数が一定している通常動作時においても、Ｉ／Ｏセル（入出力回路）等の出力が一斉に変化した場合の同時スイッチング出力ノイズ（ＳＳＯノイズ）等により、半導体装置内部における電源やグランドにノイズが発生することもある。
【０００５】
このような半導体装置における電源ノイズや一時的な電圧低下が、半導体装置の動作に影響を及ぼし、誤動作を引き起こすことがある。特に、チップ内を複数の電源ブロックに分割した半導体装置は、各電源ブロックの容量が小さくなるために、電源ノイズや一時的な電圧低下による影響を受け易い。
【０００６】
例えば、電源やグランドに振幅の大きなノイズがのったり、一時的な電圧低下が生じたりすることにより引き起こされる半導体装置の誤動作としては、レジスタやメモリに保持しているデータの破壊やタイミングエラーの発生がある。また、ＰＬＬのロックが外れて供給クロックが、過渡的に想定外の高い周波数になるなど不安定になり、誤動作を引き起こすこともある。
【０００７】
図１３は、半導体装置における内部電圧変動の一例を示す図である。図１３において、横軸は時間を示しており、ＣＬＫはＣＰＵに供給されるクロック、ＣＰＵＶはＣＰＵが含まれる電源ブロックの電圧レベル、ＯＣＢＶはオンチップバスが含まれる電源ブロックの電圧レベルである。例えば、図１３に示すようにＣＰＵへ供給するクロックの周波数（動作周波数）を急に切り替えると、破線の楕円１３１で囲った部分のように電源ノイズや一時的な電圧低下が生じると、ＣＰＵとオンチップバス間でデータ転送等を行っていた場合にはタイミングエラーが生じて誤動作を引き起こすことがある。
【０００８】
そこで、半導体装置に影響が及ぶのを防止したり影響を緩和したりするため、半導体装置内部の動作状態をモニターするためのハードウェア・モニター回路を設け、動作状態が悪化した場合には、誤動作が生じるのを防止したり、誤動作が生じたとしてもリカバリーさせたりする手段が必要である。
【０００９】
その１つとして、リングオシレータ等によるモニター回路で、内部の温度変化やプロセスばらつきに応じた電源電圧制御を行う方法が提案されている。しかしながら、リングオシレータを使用した動作状態のモニターでは、リングオシレータによるカウント値を計測する一定期間が経過しないと半導体装置の動作状態を判定することができない。したがって、例えば、電源ノイズや一時的な電圧低下等の突発的な動作悪化要因による動作状態の変化にすぐに対応することが困難であるという問題がある。
【００１０】
このような突発的な動作環境の悪化を検知する方法としては、特定のクロックサイクル中にある一定の遅延値を持たせたテスト回路が動作するか否かに応じて判断する方法もある（例えば、特許文献１、２参照。）。しかし、チップ内を複数の電源ブロックに分割した半導体装置において、電源ノイズや一時的な電圧低下等により電源ブロックの間等で生じる誤動作を高速に検出するためのより適切な手法が望まれている。
【００１１】
【特許文献１】特開２００２−１９０７４７号公報
【特許文献２】特開２００６−４３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、複数の電源ブロックに分割した半導体装置にて、電源ノイズや電圧低下など誤動作を引き起こし得る状態が発生した場合に、その発生を簡便かつ速やかに検出できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の半導体装置は、第１及び第２の電源ブロックに配置され、クロックに同期して動作する第１及び第２の記憶回路と、一方の記憶回路の出力端子と他方の記憶回路の入力端子との間に接続される第１及び第２の遅延回路と、記憶回路の入力信号及び出力信号に基づいて、誤動作が生じ得る状態であるか否かを判定し、判定結果をエラー検出信号として出力する判定回路とを備える。
前記構成によれば、第１及び第２の記憶回路に異なる初期値を与えることで、正常な動作が実現されている場合には、記憶回路間においてトグル状態で信号が送受信され、記憶回路の入力信号と出力信号とが異なる状態となる。一方、瞬間的な電源ノイズや電圧低下等により誤動作が生じ得る状態が発生すると、遅延回路の遅延量が正常に動作しているときよりも大きくなり、記憶回路間で送受信される信号のトグル状態がくずれ、記憶回路の入力信号と出力信号が同じ状態となり、誤動作が生じ得る状態の発生を検出することができる。
【発明の効果】
【００１４】
本発明によれば、複数の電源ブロックに分割した半導体装置にて、瞬間的な電源ノイズや電圧低下等の突発的要因によるものも含めて、誤動作が生じ得る状態が発生したことを簡便かつ速やかに検出することができる。また、誤動作が生じ得る状態の発生に対して、即時に誤動作防止に係る制御を行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態を図面に基づいて説明する。
【００１６】
図１は、本発明の実施形態が適用される半導体装置（例えば、ＬＳＩ等）の一構成例を示す図である。図１に示す半導体装置１０は、チップ内を複数の電源ブロック（電源ドメイン）１１〜１８に分割し、分割した電源ブロック毎に消費電力に係る制御（ＤＶＦＳ制御やパワーゲーティング制御等）を行うことが可能なものである。
【００１７】
電源ブロック１１は、ＣＰＵコアＡとしての機能を実現する回路が含まれる電源ブロックである。電源ブロック１２は、ＣＰＵコアＢとしての機能を実現する回路が含まれる電源ブロックである。電源ブロック１３は、バス（オンチップバス等）及び汎用周辺回路（メモリコントローラ、クロック生成回路等）が含まれる電源ブロックである。
【００１８】
電源ブロック１４は、半導体装置１０内部における電源制御やクロック制御等の消費電力に係る管理制御を行う回路が含まれる電源ブロックである。また、電源ブロック１５、１６、１７、１８は、それぞれオーディオ信号処理を行う回路、ビデオ信号処理を行う回路、音声符号化処理を行う回路、カードインタフェース制御を行う回路が含まれる電源ブロックである。
【００１９】
電源ブロック１１、１２は、ＤＶＦＳ制御及びパワーゲーティング制御の対象となる（両制御技術が適用される）電源ブロックである。すなわち、電源ブロック１１、１２は、その動作状態等に応じて、動作電圧や動作周波数が動的に変更されるとともに、電源ブロック１１、１２への電源供給がオン／オフ制御される。
【００２０】
また、電源ブロック１３、１５〜１８は、パワーゲーティング制御の対象となる（パワーゲーティング制御技術のみが適用される）電源ブロックである。すなわち、各電源ブロック１３、１５〜１８は、それぞれの動作状態等に応じて電源供給がオン／オフ制御される。
【００２１】
（第１の実施形態）
本発明の第１の実施形態について説明する。
【００２２】
上述したように半導体装置内部の動作状態をモニターする回路をリングオシレータ等で実現した場合には、ある程度平均化された状態をモニターすることは可能である。しかし、瞬間的な電源ノイズや電圧変化等の突発的な要因による誤動作や、誤動作が生じ得る状態の発生を検知することは困難である。また、アナログ回路を用いて検知回路を構成し電源ノイズ等を検知しようとする場合には、その検知回路にはノイズがのっていない安定した電源電圧が供給されることが望ましいが、レイアウト的な制約等により実現することが困難な場合がある。
【００２３】
第１の実施形態に係る半導体装置は、デジタル回路のみで構成され、瞬間的な電源ノイズや電圧変化等の突発的要因によるものをも含めて誤動作が発生し得る状態になったことを検知する誤動作検出回路を設けたものである。この誤動作検出回路を設けることにより、第１の実施形態では、瞬間的な電源ノイズ等の突発的要因による動作状態の変化をも含め、誤動作が生じ得る状態の発生を簡便かつ速やかに検出することができる。
【００２４】
図２は、第１の実施形態に係る半導体装置に設ける誤動作検出回路２０の構成例を示す図である。誤動作検出回路２０は、第１のモニター回路２１、第２のモニター回路２５、及びエラー検出信号出力回路２９を有する。
【００２５】
第１のモニター回路２１は、第１の電源ブロックに設けられ、第２のモニター回路２５は、第１の電源ブロックとは異なる第２の電源ブロックに設けられる。例えば、第１のモニター回路２１は、図１に示したＣＰＵコアとしての機能を実現するための電源ブロック１１、１２に設けられ、第２のモニター回路２５は、バス（オンチップバス）や汎用周辺回路を有する電源ブロック１３に設けられる。なお、第１のモニター回路２１が設けられる第１の電源ブロック、及び第２のモニター回路２５が設けられる第２の電源ブロックは、これに限定されるものではなく、半導体装置が有する任意の電源ブロックである。
【００２６】
第１のモニター回路２１は、記憶回路２２、遅延回路２３、及び判定回路２４を有する。同様に、第２のモニター回路２５は、記憶回路２６、遅延回路２７、及び判定回路２８を有する。ここで、記憶回路２２、２６、遅延回路２３、２７、判定回路２４、２８、及びエラー検出信号出力回路２９は、デジタル回路（デジタル素子）を用いて構成されている。すなわち、誤動作検出回路２０は、デジタル回路（デジタル素子）のみを用いて構成される。
【００２７】
記憶回路２２、２６は、クロック信号ＣＬＫに同期して動作（出力）し、入力される信号（論理値）を記憶して出力する。記憶回路２２、２６は、例えばフリップフロップやラッチにより構成される。なお、以下では、記憶回路２２、２６は、フリップフロップで構成されているものとする。
【００２８】
また、記憶回路２２、２６には、リセット信号ＲＳＴが供給されており、リセット信号ＲＳＴがアサートされている期間は、それぞれ所定の初期値を出力する。ここで、記憶回路２２、２６は、異なる初期値を出力する。例えば、記憶回路２２、２６をフリップフロップで構成した場合には、リセット信号ＲＳＴのアサートによって、一方のフリップフロップをリセット状態にし、他方のフリップフロップをプリセット状態にすれば良い。
【００２９】
遅延回路２３は、記憶回路２２の出力端と記憶回路２６の入力端との間に接続され、記憶回路２２の出力端から記憶回路２６の入力端に伝送される信号を遅延させる。また、遅延回路２７は、記憶回路２６の出力端と記憶回路２２の入力端との間に接続され、記憶回路２６の出力端から記憶回路２２の入力端に伝送される信号を遅延させる。遅延回路２３、２７は、例えば、所定の遅延値に相当する分の遅延を与えるための複数のバッファ（あるいは偶数個のインバータ）を直列に接続して構成される。
【００３０】
ここで、遅延回路２３、２７による所定の遅延値は、例えば第１のモニター回路２１が設けられる第１の電源ブロックと第２のモニター回路２５が設けられる第２の電源ブロックとの間のパス遅延のワースト値に相当する遅延値や、チップ内のクリティカルパスでの遅延値に相当する遅延値などである。パス遅延のワースト値やクリティカルパスでの遅延値等は、設計時のタイミング検証（シミュレーション）等により取得することが可能である。また、遅延回路２３、２７による所定の遅延値として、第１の電源ブロックと第２の電源ブロックとの間のパス遅延のワースト値に相当する遅延値やチップ内のクリティカルパスでの遅延値に相当する遅延値に所定の付加時間を付加するようにしても良い。
【００３１】
なお、図２においては、遅延回路２３、２７を直列接続した４つのバッファで構成した場合を一例として図示しているが、実際には、遅延回路２３、２７は必要な遅延値を実現するための複数のバッファ（あるいは偶数個のインバータ）で構成される。
【００３２】
判定回路２４、２８は、記憶回路２２、２６の入力信号及び出力信号に基づいて、誤動作が生じ得る状態であるか否かを判定する。また、判定回路２４、２８は、判定結果をエラー検出信号出力回路２９に対して出力する。
【００３３】
後述するように本実施形態では、誤動作が生じ得る状態でない（正常な動作が実現されている）場合には、記憶回路２２、２６のそれぞれにおける入力信号と出力信号が異なる論理値となる。判定回路２４、２８は、対応する記憶回路２２、２６の入力信号と出力信号が異なる論理値である場合には、誤動作が生じ得る状態でないと判定し、同じ論理値である（入力信号と出力信号が一致する）場合には、誤動作が生じ得る状態であると判定する。
【００３４】
判定回路２４、２８は、例えば、対応する記憶回路２２、２６の入力信号及び出力信号が入力され、その排他的否定論理和演算を行う演算回路（Exclusive-NOR回路：ＥＸ−ＮＯＲ回路）で構成される。なお、判定回路２４、２８は、排他的否定論理和演算回路（ＥＸ−ＮＯＲ回路）に限定されるものではなく、対応する記憶回路２２、２６の入力信号と出力信号が異なる論理値である第１の状態、及び同じ論理値である第２の状態で異なる信号を出力できれば良く、複数の論理演算回路を適宜組み合わせて排他的否定論理和演算を実現するようにしても良い。
【００３５】
次に、誤動作検出回路２０の動作について説明する。
【００３６】
まず、リセット信号ＲＳＴがアサートされているリセット状態において、記憶回路２２、２６は、異なる初期値を出力する。
そして、リセット信号ＲＳＴをネゲートして記憶回路２２、２６におけるリセット状態を同時に解除すると、クロック信号ＣＬＫに同期した動作が開始される。このとき、誤動作が生じ得る状態でない（正常な動作が実現されている）場合には、記憶回路２２、２６間においては、トグル状態で信号が送受信される（トグル信号が行き交う）。
【００３７】
ここで、特定の電源ブロックに対するクロック・ギヤ切り替え（動作周波数の変更）や動作電圧の変更や電源供給のオン／オフ制御による瞬間的な電源ノイズや電圧低下等の要因によって誤動作が生じ得る状態が発生すると、遅延回路２３、２７による遅延量が、正常に動作しているときよりも大きくなる。これにより、記憶回路２２、２６間の遅延量がクロック期間内に収まらなくなり、記憶回路２２、２６間で送受信される信号のトグル状態がくずれ、記憶回路２２、２６の少なくとも一方の記憶回路で入力信号と出力信号が同じ論理値となる。
【００３８】
さらに、記憶回路２２、２６の少なくとも一方の記憶回路で入力信号と出力信号が同じ論理値となったことが、判定回路２４、２８により検出され誤動作が生じ得る状態であると判定される。この判定結果がエラー検出信号出力回路２９に供給され、誤動作が生じ得る状態が発生したことをエラー検出信号ＥＲＲとして出力する。
【００３９】
以上のようにして、デジタル回路のみで構成した誤動作検出回路２０により、瞬間的な電源ノイズや電圧低下等の突発的要因によるものも含めて、簡便かつ速やかに誤動作が生じ得る状態が発生したことを効率的に検出し、エラー検出信号ＥＲＲにより通知することができる。
【００４０】
図３は、本実施形態における誤動作検出回路２０の他の構成例を示す図である。
図２に示した誤動作検出回路２０は、記憶回路２２、２６の間でトグルしながら信号が送受信されるが、トランジスタ等の回路素子によっては信号の立ち上がり時と立下り時とで遅延量が異なる場合がある。また、電源ブロックによって電圧低下や電源ノイズ等が及ぼす影響も異なる。
【００４１】
そこで、図３に示す誤動作検出回路２０は、図２に示した誤動作検出回路を複数設けるとともに、遅延回路を構成する回路素子の配置を各電源ブロック（電源ドメイン）にばらけさせ、誤動作が生じ得る状態の発生をより確実に検出できるようにしたものである。遅延回路を構成する回路素子の配置は、誤動作検出回路を構成する各組毎に互いに異なるように配置することが望ましい。
【００４２】
図３において、３１は第１のモニター回路、４１は第２のモニター回路、５１はエラー検出信号出力回路である。第１のモニター回路３１は、第１の電源ブロック（例えば、図１に示した電源ブロック１１、１２）に設けられ、第２のモニター回路４１は、第１の電源ブロックとは異なる第２の電源ブロック（例えば、図１に示した電源ブロック１３）に設けられる。
【００４３】
第１のモニター回路３１は、記憶回路３２Ａ、３２Ｂ、３２Ｃ、遅延回路３３Ａ、３３Ｂ、３４Ｂ、３４Ｃ、判定回路（ＥＸ−ＮＯＲ回路）３５Ａ、３５Ｂ、３５Ｃ、及び論理和演算回路（ＯＲ回路）３６を有する。また、第２のモニター回路４１は、記憶回路４２Ａ、４２Ｂ、４２Ｃ、遅延回路４３Ａ、４３Ｂ、３４Ｂ、４４Ｃ、判定回路（ＥＸ−ＮＯＲ回路）４５Ａ、４５Ｂ、４５Ｃ、及び論理和演算回路（ＯＲ回路）４６を有する。
【００４４】
第１のモニター回路３１内の記憶回路３２Ａ、遅延回路３３Ａ、及び判定回路３５Ａと、第２のモニター回路４１内の記憶回路４２Ａ、遅延回路４３Ａ、及び判定回路４５Ａとにより、図２に示した誤動作検出回路に相当する回路が構成される。また、第１のモニター回路３１内の記憶回路３２Ｂ、遅延回路３３Ｂ、３４Ｂ、及び判定回路３５Ｂと、第２のモニター回路４１内の記憶回路４２Ｂ、遅延回路４３Ｂ、４４Ｂ、及び判定回路４５Ｂとにより、図２に示した誤動作検出回路に相当する回路が構成される。また、第１のモニター回路３１内の記憶回路３２Ｃ、遅延回路３４Ｃ、及び判定回路３５Ｃと、第２のモニター回路４１内の記憶回路４２Ｃ、遅延回路４４Ｃ、及び判定回路４５Ｃとにより、図２に示した誤動作検出回路に相当する回路が構成される。
【００４５】
すなわち、図３に示した誤動作検出回路２０は、図２に示した誤動作検出回路を３つ設けたものを一例として示している。そのうち２つは記憶回路間の遅延回路を構成する回路素子を、各モニター回路３１、３２において記憶回路の出力端側又は入力端側に偏らせて配置し、１つは記憶回路間の遅延回路を構成する回路素子を各モニター回路３１、３２に分けて配置している。
【００４６】
ここで、遅延回路３３Ａによる遅延量と、遅延回路３３Ｂ及び４４Ｂによる遅延量と、遅延回路４４Ｃによる遅延量とは、設計上は等しくなるように構成される。同様に、遅延回路４３Ａによる遅延量と、遅延回路４３Ｂ及び３４Ｂによる遅延量と、遅延回路３４Ｃによる遅延量とは、設計上は等しくなるように構成される。
【００４７】
図３に示した誤動作検出回路２０は、図２に示した誤動作検出回路２０と同様に、リセット信号ＲＳＴがネゲートされリセット状態が同時に解除されると、クロック信号ＣＬＫに同期した動作を開始する。このとき、誤動作が生じ得る状態でない（正常な動作が実現されている）場合には、図２に示した誤動作検出回路２０に相当する３つの回路においてトグル状態で信号が送受信される（トグル信号が行き交う）。
【００４８】
ここで、瞬間的な電源ノイズや電圧低下等の要因によって誤動作が生じ得る状態が発生し、それが判定回路３５Ａ〜３５Ｃ、４５Ａ〜４５Ｃにより検出されると誤動作が生じ得る状態であると判定される。判定回路３５Ａ〜３５Ｃの何れかで誤動作が生じ得る状態であると判定されると、その判定結果がＯＲ回路３６を介してエラー検出信号出力回路５１に供給され、誤動作が生じ得る状態が発生したことをエラー検出信号ＥＲＲとして出力される。同様に、判定回路４５Ａ〜４５Ｃの何れかで誤動作が生じ得る状態であると判定されると、その判定結果がＯＲ回路４６を介してエラー検出信号出力回路５１に供給され、誤動作が生じ得る状態が発生したことをエラー検出信号ＥＲＲとして出力される。
【００４９】
なお、図３においては、図２に示した誤動作検出回路を３つ設けた場合を一例として示しているが、これに限定されず、図２に示した誤動作検出回路を任意の複数個設けて構成することが可能であり、各遅延回路を構成する回路素子を異なるパターンで配置するようにすれば良い。
【００５０】
以上、図３に示したような誤動作検出回路によれば、デジタル回路のみで構成して、瞬間的な電源ノイズや電圧低下等の突発的要因によるものも含めて、簡便かつ速やかに誤動作が生じ得る状態が発生したことを効率的に検出し、エラー検出信号ＥＲＲにより通知することができる。また、各組毎に遅延回路を構成する回路素子を異なるように配置することで、トランジスタの製造ばらつき等も考慮して誤動作が生じ得る状態の発生を検出することができる。
【００５１】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
【００５２】
第２の実施形態に係る半導体装置は、上述した第１の実施形態における誤動作検出回路を用い、誤動作が生じ得る状態になったことを検出した場合に誤動作の発生を防止するよう制御を行う。以下では、誤動作が生じ得る状態になったことを検出した場合に、データ転送を非同期で行うように制御する場合を一例として説明する。
【００５３】
一般に、バスを介したデータ転送を、動作電圧が異なる電源ブロック間にて行う場合には、非同期バス・ブリッジ等を介してデータ転送が行われ、動作電圧が同じ電源ブロック間にて行う場合には、非同期バス・ブリッジ等を用いずに直接データ転送が行われる。ここで、バスを介したデータ転送を行う電源ブロックの動作電圧が同じであったとしても、瞬間的な電源ノイズや電圧低下等が発生し、誤動作を引き起こす場合が考えられる。
【００５４】
そこで、第２の実施形態に係る半導体装置は、上述した誤動作検出回路により誤動作が生じ得る状態になったことを検出した場合、誤動作を防止するために非同期バス・ブリッジを介してデータ転送を行うように切り替える。これにより、瞬間的な電源ノイズや電圧低下等の要因による誤動作を防止する。
【００５５】
図４は、第２の実施形態に係る半導体装置の構成例を示す図である。この図４において、図２に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。なお、図４においては、誤動作検出回路２０として図２に示した誤動作検出回路を適用した場合を示しているが、図３に示した誤動作検出回路を適用しても良い。
【００５６】
図４において、６１は第１の電源ブロックであり、例えば図１に示したＣＰＵコアとしての機能を実現するための電源ブロック１１、１２であるとする。また、６３は第２の電源ブロックであり、例えば図１に示したバス（オンチップバス）や汎用周辺回路を有する電源ブロック１３であるとする。
【００５７】
第１の電源ブロック（ＣＰＵコア）６１は、誤動作検出回路２０を構成する第１のモニター回路２１及びバスインタフェース回路部６２を有する。第２の電源ブロック（バス・汎用周辺回路）６３は、誤動作検出回路２０を構成する第２のモニター回路２５及びオンチップバス６４を有する。バスインタフェース回路部６２とオンチップバス６４との間のデータ転送は、同期／非同期選択回路６５を介して行われる。
【００５８】
同期／非同期選択回路６５は、非同期バス・ブリッジ６６及びセレクタ６７を有する。非同期バス・ブリッジ６６は、バスインタフェース回路部６２とオンチップバス６４との間のデータ転送を非同期で行う（ハンドシェイク制御等により行う）ためのバス・ブリッジ回路である。セレクタ６７は、エラー情報保持回路６８の出力に応じて、バスインタフェース回路部６２とオンチップバス６４との間のデータ転送を、バス・プロトコルに応じた同期転送により行うか、非同期バス・ブリッジ６６を介して行うかを切り替える。
【００５９】
エラー情報保持回路６８は、例えばフリップフロップ等を用いて構成され、誤動作検出回路２０内のエラー検出信号出力回路２９から出力されるエラー検出信号ＥＲＲを保持して出力する。エラー情報保持回路６８は、誤動作検出回路２０により誤動作が発生し得る状態になったことが検出された場合に、エラー検出信号ＥＲＲの値を保持する。また、エラー情報保持回路６８は、ＣＰＵ命令等によるクリア処理、又は誤動作検出回路２０からのエラー検出信号ＥＲＲがネゲートされてから一定期間経過後、保持しているエラー信号ＥＲＲをクリアする。なお、エラー検出信号ＥＲＲの値を保持してから一定期間経過後に自動でクリアするようにしても良い。
【００６０】
図４に示した半導体装置において、誤動作が生じ得る状態が発生しておらず、正常な動作が実現されているとする。このとき、エラー検出信号ＥＲＲはネゲートされており、バス・プロトコルに応じた同期転送によってバスインタフェース回路部６２とオンチップバス６４との間のデータ転送を行うよう同期／非同期選択回路６５内のセレクタ６７が制御される。
【００６１】
このような状態で、誤動作検出回路２０により誤動作が生じ得る状態になったことを検出すると、エラー検出信号ＥＲＲがアサートされる。このエラー検出信号ＥＲＲがエラー情報保持回路６８に保持されると、エラー情報保持回路６８の出力により、非同期バス・ブリッジ６６を介した非同期転送によりデータ転送を行うよう同期／非同期選択回路６５内のセレクタ６７が切り替えられる。これにより、バスインタフェース回路部６２とオンチップバス６４との間のデータ転送が、非同期バス・ブリッジ６６を介して行うように切り替えられ、瞬間的な電源ノイズや電圧低下等による誤動作を防止することができる。
【００６２】
データ転送を同期転送から非同期転送に切り替える際、バス・プロトコルによってはバスアクセス中に切り替えると誤動作を起こす場合がある。バスアクセス中の切り替えにより誤動作が発生するおそれのあるバス・プロトコルでは、同期転送から非同期転送への切り替えを行う際、バスアクセスが発生していない場合には即時に切り替えを行い、バスアクセス中である場合にはそのバスアクセスが完了してから切り替えを行う。なお、バスアクセスの完了を待って非同期転送への切り替えを行った場合には、切り替え前のバスアクセスによって誤動作が発生していることもあり得るので、リセット動作等の実行による動作保障を適宜行うようにすれば良い。
【００６３】
なお、誤動作検出回路２０内のエラー検出信号出力回路２９、同期／非同期選択回路６５、及びエラー情報保持回路６８のそれぞれは、第１の電源ブロック（ＣＰＵコア）６１又は第２の電源ブロック（バス・汎用周辺回路）６３に設けるようにしても良いし、それらとは異なる他の電源ブロックに設けるようにしても良い。
【００６４】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
【００６５】
第３の実施形態に係る半導体装置は、上述した第２の実施形態に係る半導体装置において、誤動作が生じ得る状態になったことを検出した場合に、さらに、誤動作が生じ得る状態の発生により動作が不安定になる可能性のある期間は、高速に動作するブロックの動作周波数を低くするように制御する。これにより、瞬間的な電源ノイズや電圧低下等の要因によるタイミングエラーなどの誤動作を防止する。
【００６６】
図５は、第３の実施形態に係る半導体装置の構成例を示す図である。この図５において、図２及び図４に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００６７】
図５において、６９は、各ブロック等に供給するクロック信号ＣＬＫ１、ＣＬＫ２、…を生成するクロック生成回路である。クロック生成回路６９には、クロック制御信号ＣＫＣＴＬとしてエラー情報保持回路６８の出力信号が入力される。クロック生成回路６９は、入力されるクロック制御信号ＣＫＣＴＬに応じたクロック信号ＣＬＫ１、ＣＬＫ２、…を生成し出力する。
【００６８】
図５に示した第３の実施形態に係る半導体装置の動作例を、図６を参照して説明する。
図６は、第３の実施形態に係る半導体装置の動作の一例を示すタイミングチャートである。なお、誤動作検出回路２０から出力されるエラー検出信号ＥＲＲ及びエラー情報保持回路６８から出力されるクロック制御信号ＣＫＣＴＬは、アサートされているとき、ハイレベルであり、ネゲートされているとき、ローレベルである。また、クロック生成回路６９が生成するクロック信号ＣＬＫ１はＣＰＵコアに供給されるクロック信号であるとし、クロック信号ＣＬＫ２はオンチップバスに係るクロック信号であるとする。
【００６９】
まず、初期状態として、エラー検出信号ＥＲＲ及びクロック制御信号ＣＫＣＴＬがともにネゲートされており、クロック生成回路６９は、正常動作時の周波数のクロック信号ＣＬＫ１、ＣＬＫ２を生成し出力しているものとする。
【００７０】
誤動作を生じ得る状態になったことが誤動作検出回路２０により検出されると、エラー検出信号ＥＲＲがアサートされる。このエラー検出信号ＥＲＲがエラー情報保持回路６８に保持され、クロック制御信号ＣＫＣＴＬがアサートされる。クロック制御信号ＣＫＣＴＬがアサートされると、高速に動作するブロック（本実施形態ではＣＰＵコアとする）の動作周波数を低くするように、そのブロックに供給するクロック信号ＣＬＫ１をギヤ・ダウンする。
【００７１】
そして、エラー検出信号ＥＲＲがネゲートされてから所定の時間経過した後に、クロック制御信号ＣＫＣＴＬがネゲートされ、高速に動作するブロックに供給するクロック信号ＣＬＫ１を元に戻すように制御を行う。
【００７２】
以上のようにして、瞬間的な電源ノイズや電圧低下等によりタイミングエラーが発生するおそれがある場合に、動作が不安定になる可能性がある期間は、供給するクロック信号の周波数を制御して動作周波数を低くし、セットアップ時間等の条件を緩和して誤動作の発生を防止することができる。
【００７３】
なお、高速に動作するブロックに供給するクロック信号ＣＬＫ１をギヤ・ダウンさせる方法は、任意である。例えば、ゲーテドクロック技術を採用している場合には、そのイネーブル信号で制御することによりクロック信号を適宜マスクして周波数を低下させるようにしても良いし、クロック生成回路６９における分周比を制御してクロック信号の周波数を低くするようにしても良い。
【００７４】
また、高速に動作するブロックに供給するクロック信号のギヤ・ダウンにかえて、クロック制御信号ＣＫＣＴＬがアサートされている期間、高速に動作するブロックへのクロック信号の供給を一時的に停止させるようにしても同様の効果を得ることができる。また、クロック信号に係る制御を行わずに、図５に示すようにクロック制御信号ＣＫＣＴＬと同等のインターロック要求信号ＩＬＲをエラー情報保持回路６８から第１の電源ブロック（ＣＰＵコア）６１に出力し、インターロック要求信号ＩＬＲをアサートすることによって第１の電源ブロックの動作を一時的に停止させるようにしても良く、同様に誤動作の発生を防止することができる。
【００７５】
また、誤動作を生じ得る状態になったことを誤動作検出回路２０により検出した場合に、高速に動作するブロックに供給するクロック信号に限らず、各ブロックに供給するすべてのクロック信号について、ギヤ・ダウンを行ったり、供給を一時停止させたりするようにしても良い。
【００７６】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。
図７は、第４の実施形態に係る半導体装置の構成例を示す図である。この図７において、図２、図４、及び図５に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００７７】
図７に示すように、第４の実施形態に係る半導体装置は、図５に示した第３の実施形態に係る半導体装置の各構成に加え、割込み生成回路７１、ウォッチドッグタイマー７３、及びＯＲ回路７４を有する。
【００７８】
割込み生成回路７１は、エラー情報保持回路６８の出力信号が入力され、割込み要求信号ＩＮＴを生成し第１の電源ブロック（ＣＰＵコア）６１に出力する。割込み生成回路７１は、エラー検出信号ＥＲＲがアサートされることによりエラー情報保持回路６８の出力信号がアサートされると、それを検出して割込み要求信号ＩＮＴをアサートする。これにより、第１の電源ブロック６１で動作しているソフトウェア（アプリケーション）等に対して、瞬間的な電源ノイズや電圧低下等により動作環境が悪化し、誤動作が生じ得る状態の発生を検出したことを通知することができる。
【００７９】
ウォッチドッグタイマー７３は、カウンタを有し、エラー情報保持回路６８の出力信号が入力され、リセット信号（ウォッチドッグリセット）ＲＳＴＷを出力する。ウォッチドッグタイマー７３は、エラー検出信号ＥＲＲがアサートされることによりエラー情報保持回路６８の出力信号がアサートされると起動され、所定のカウント値のカウントが終了すると（カウンタ値が所定の値に達すると）リセット信号ＲＳＴＷをアサートする。なお、ウォッチドッグタイマー７３は、ＣＰＵ命令によりリセットされる。第１の電源ブロック（ＣＰＵコア）６１がハングアップしていない場合には、割込み要求信号ＩＮＴがアサートされることに応じて、ウォッチドッグタイマー７３がリセットされる。
【００８０】
ＯＲ回路７４は、通常リセット信号ＲＳＴＮ、及びウォッチドッグタイマー７３からのリセット信号ＲＳＴＷが入力される。ＯＲ回路７４は、通常リセット信号ＲＳＴＮとリセット信号ＲＳＴＷを論理和演算して、その演算結果を第１及び第２の電源ブロック６１、６３にリセット信号として出力する。
【００８１】
また、第２の電源ブロック６３は、エラーモニターレジスタ７２を有する。エラーモニターレジスタ７２は、エラー情報保持回路６８からの指示に応じてエラー情報（エラーが検出された箇所、検出回数、エラー発生要因等）を保持する。なお、図７においては、エラーモニターレジスタ７２をオンチップバス６４に接続するようにしているが、これに限定されるものではなく、第１の電源ブロック（ＣＰＵコア）６１やクロック生成回路６９などにより読み出し可能なように構成されていれば良い。
【００８２】
以上、第４の実施形態によれば、誤動作が生じ得る状態になったことが誤動作検出回路２０により検出され、エラー情報保持回路６８の出力信号がアサートされた場合に、ウォッチドッグタイマー７３を起動するとともに、第１の電源ブロック（ＣＰＵコア）６１に出力する割込み要求信号ＩＮＴをアサートする。これにより、瞬間的な電源ノイズや電圧低下等によりすでに誤動作が発生してしまった場合でも、リカバリー動作を行うことができる。
【００８３】
すなわち、第１の電源ブロック（ＣＰＵコア）６１が誤動作したハングアップした場合においては、ウォッチドッグタイマー７３によるリセット信号ＲＳＴＷによって第１の電源ブロック（ＣＰＵコア）６１を含む回路をリセットし、リカバリー処理を行うことが可能となる。このとき、エラーモニターレジスタ７２は初期化せずに、保持しているエラー情報を第１の電源ブロック（ＣＰＵコア）６１等から読み出し可能にしておくことで、エラー情報に応じた適切なリカバリー処理（例えば、低速クロック信号で復帰するといったリカバリー処理）を行うことが可能となる。なお、エラーモニターレジスタ７２の初期化は、第１の電源ブロック（ＣＰＵコア）６１からのライト動作や、リセット信号ＲＳＴＷによるものとは別のパワーオン・リセット等のリセット動作などにより初期化するようにすれば良い。
【００８４】
（第５の実施形態）
次に、本発明の第５の実施形態について説明する。
第５の実施形態に係る半導体装置は、上述した第４の実施形態における半導体装置において、第１及び第２の電源ブロックにそれぞれ供給される電源電位の差の変化を基づいて、誤動作が生じ得る状態になったことを検出するようにしたものである。
【００８５】
図８は、第５の実施形態に係る半導体装置の構成例を示す図である。この図８において、図２、図４、図５、及び図７に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００８６】
図８において、２０Ａは誤動作検出回路である。誤動作検出回路２０Ａは、電位差検知回路８１及び電位差判定回路８２を有する。電位差検知回路８１は、第１の電源ブロック６１に供給される電源電位Ｖｄｄ１に相当する電位Ｖ１が入力されるともに、第２の電源ブロック６３に供給される電源電位Ｖｄｄ２に相当する電位Ｖ２が入力され、電位Ｖ１と電位Ｖ２の電位差を検知して、検知結果に応じた信号を電位差判定回路８２に出力する。電位差判定回路８２は、電位差検知回路８１からの検知結果を示す信号に基づいて、電位Ｖ１と電位Ｖ２の電位差が所定の範囲から逸脱した状態、すなわち誤動作を生じ得る状態になったか否かを判定する。その結果、電位Ｖ１と電位Ｖ２の電位差が所定の範囲から逸脱している場合には、電位差判定回路８２は、エラー検出信号ＥＲＲをアサートする。
【００８７】
以上、第５の実施形態に示すように、第１及び第２の電源ブロックにそれぞれ供給される電源電位の差の変化を基づいて、誤動作が生じ得る状態になったことを検出するようにしても、上述した各実施形態と同様の効果を得ることができる。
【００８８】
（第６の実施形態）
次に、本発明の第６の実施形態について説明する。
ＰＬＬ（Phase Locked Loop）やＤＬＬ（Delay Locked Loop）を用いた回路では、何らかの原因により電源ノイズや電圧低下等が発生すると、それによりロックが外れて、出力クロックの周波数が過渡的に高い周波数となることがある。これにより回路に供給されるクロック信号の周波数が高くなりすぎて誤動作を引き起こすことがある。
【００８９】
そこで、第６の実施形態に係る半導体装置は、誤動作検出回路としてＰＬＬやＤＬＬのロック端子からの出力信号をモニターし、ロックが外れたことを検出した場合には、動作が不安定になる可能性のある期間は、供給するクロック信号の周波数を低くするように制御する。これにより、電源ノイズや電圧低下等の要因による誤動作を防止する。
【００９０】
図９は、第６の実施形態に係る半導体装置の構成例を示す図である。この図９において、図４に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００９１】
図９において、９１は、第３の電源ブロックである。第３の電源ブロックは、エラー情報保持回路９２、ＰＬＬ９３、インバータ９４、クロック生成回路９５、割込み生成回路９６、ウォッチドッグタイマー９７、ＯＲ回路９８を有する。
エラー情報保持回路９２は、エラー情報保持回路６８に相当し、エラー検出信号ＥＲＲＡ、ＥＲＲＢの値を保持して出力する。
【００９２】
ＰＬＬ９３は、クロック生成回路９５にマスタークロックＭＣＬＫを出力する。また、ＰＬＬ９３は、ロックしている状態であるか否かを示す信号をロック端子より出力信号ＰＬＬ−ＬＯＣＫとして出力する。ここで、出力信号ＰＬＬ−ＬＯＣＫは、安定時（ロックしているとき）においてはアサートされてハイレベルとなり、不安定時（ロックが外れているとき）においてはネゲートされローレベルとなる。ＰＬＬ９３からの出力信号ＰＬＬ−ＬＯＣＫは、インバータ９４を介してエラー検出信号ＥＲＲＡとしてエラー情報保持回路９２に供給される。
【００９３】
クロック生成回路９５は、クロック生成回路６９に相当し、各ブロック等に供給するクロック信号ＣＬＫ１、ＣＬＫ２、…を生成する。クロック生成回路９５は、クロック制御信号ＣＫＣＴＬとしてエラー情報保持回路９２の出力信号が入力され、それに応じたクロック信号ＣＬＫ１、ＣＬＫ２、…を、ＰＬＬ９３から受けるマスタークロックＭＣＬＫを基に生成して出力する。
【００９４】
割込み生成回路９６は、割込み生成回路７１に相当し、エラー情報保持回路９２の出力信号が入力され、割込み要求信号ＩＮＴを生成して第１の電源ブロック（ＣＰＵコア）６１に出力する。ウォッチドッグタイマー９７は、ウォッチドッグタイマー７３に相当し、エラー情報保持回路９２の出力信号が入力され、リセット信号（ウォッチドッグリセット）ＲＳＴＷを出力する。ＯＲ回路９８は、ＯＲ回路７４に相当し、通常リセット信号ＲＳＴＮとリセット信号ＲＳＴＷとの論理和演算を行い、演算結果を第１及び第２の電源ブロック６１、６３にリセット信号として出力する。
【００９５】
図９に示した第６の実施形態に係る半導体装置の動作例を、図１０を参照して説明する。
図１０は、第６の実施形態に係る半導体装置の動作の一例を示すタイミングチャートである。なお、クロック生成回路９５が生成するクロック信号ＣＬＫ１はＣＰＵコアに供給されるクロック信号であるとし、クロック信号ＣＬＫ２はオンチップバスに係るクロック信号であるとする。
【００９６】
まず、初期状態として、ＰＬＬ９３からの出力信号ＰＬＬ−ＬＯＣＫがアサート、すなわちエラー検出信号ＥＲＲＡがネゲートされており、クロック制御信号ＣＫＣＴＬがネゲートされているものとする。また、クロック生成回路９５は、正常動作時の周波数のクロック信号ＣＬＫ１、ＣＬＫ２を生成し出力しているものとする。
【００９７】
電源ノイズや電圧低下等によりＰＬＬ９３におけるロックが外れると、出力信号ＰＬＬ−ＬＯＣＫがネゲートされる。出力信号ＰＬＬ−ＬＯＣＫがネゲートされることによってエラー検出信号ＥＲＲＡがアサートされ、このエラー検出信号ＥＲＲＡがエラー情報保持回路６８に保持されてクロック制御信号ＣＫＣＴＬがアサートされる。クロック制御信号ＣＫＣＴＬがアサートされると、第３の実施形態と同様にして、動作周波数を低くするようにブロックに供給するクロック信号をギヤ・ダウンする（図１０に示す例では、ＣＰＵコアに供給するクロック信号ＣＬＫ１をギヤ・ダウンしている。）。
【００９８】
その後、再びＰＬＬ９３がロック状態となると、出力信号ＰＬＬ−ＬＯＣＫがアサートされ、所定時間経過後に、クロック制御信号ＣＫＣＴＬがネゲートされ、クロック信号ＣＬＫ１を元に戻すように制御を行う。
【００９９】
以上のようにして、電源ノイズや電圧低下等によりＰＬＬ９３のロックが外れ誤動作の発生するおそれがある場合には、動作が不安定になる可能性がある期間において、供給するクロック信号の周波数を制御して動作周波数を低くし、誤動作の発生を防止することができる。なお、上述した説明では、ＰＬＬ９３におけるロックが外れた場合に、ＣＰＵコアに供給するクロック信号ＣＬＫ１のみをギヤ・ダウンするようにしているが、各ブロックに供給するすべてのクロック信号についてギヤ・ダウンするようにしても良い。
【０１００】
また、外部からのバッテリー供給電圧の低下等による割り込みや動作環境の変化によるチップ内温度の上昇による割り込み等が供給された場合には、それをエラー検出信号ＥＲＲＢとして認識し、クロックギヤ・ダウン、割込み要求信号ＩＮＴの生成、及びウォッチドッグタイマー９７の起動などを行うことにより、バッテリー供給電圧の低下やチップ内温度の上昇による誤動作の発生を防止することができる。
【０１０１】
なお、第４及び第５の実施形態と同様に、エラー検出信号ＥＲＲＡ又はＥＲＲＢがアサートされた場合に、第１の電源ブロック（ＣＰＵコア）６１への割込み要求信号ＩＮＴをアサートしつつ、ウォッチドッグタイマー９７を起動させることで、仮に第１の電源ブロック（ＣＰＵコア）６１が誤動作によりハングアップしても適切にリカバリー処理を行うことが可能となる。
【０１０２】
図１１は、第６の実施形態に係る半導体装置の他の構成例を示す図である。この図１１において、図２、図４、図５、図７、及び図９に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【０１０３】
図１１に示す半導体装置は、図９に示した第６の実施形態の半導体装置に対して、さらに図２に示した誤動作検出回路２０を設けたものである。誤動作検出回路２０の出力信号は、エラー検出信号ＥＲＲＣとしてエラー情報保持回路９２に供給される。なお、図１１においては、誤動作検出回路２０として図２に示した誤動作検出回路を適用した場合を示しているが、図３に示した誤動作検出回路を適用しても良い。
【０１０４】
（第７の実施形態）
次に、本発明の第７の実施形態について説明する。
第７の実施形態は、チップ内にＣＰＵコアとしての機能を実現する回路が含まれる電源ブロックを複数有し、誤動作検出回路が電源ノイズや電圧低下等により誤動作が生じ得る状態になったことを検出した場合に、ＣＰＵコアとして機能する複数の電源ブロックに割込み要求を行い、ＣＰＵコアとして機能する電源ブロック間の通信（ＣＰＵ通信）等により、各電源ブロックの状態を確認する。そして、ＣＰＵコアとして機能する電源ブロックのうち、正常に動作している電源ブロックあるいは電力制御等を担う電源ブロックにより、動作周波数や動作電圧の制御を行い、より安全な動作が可能となるように制御するものである。
【０１０５】
図１２は、第７の実施形態に係る半導体装置の構成例を示す図である。第７の実施形態に係る半導体装置は、ＣＰＵコアの機能を実現する回路を含む電源ブロックをチップ内に複数有する。
【０１０６】
図１２に示すように、第７の実施形態における半導体装置は、誤動作検出回路１０１、ＣＰＵコアとしての機能を実現する電源ブロック１０２Ａ、１０２Ｂ、１０２Ｃ、オンチップバス１０４、同期／非同期選択回路１０５、エラーモニターレジスタ１０８、クロック制御レジスタ１０９、電源管理部１１０、エラー情報保持回路１１１、クロック生成回路１１２、割込み生成回路１１３、ウォッチドッグタイマー１１４、及びＯＲ回路１１５を有する。
【０１０７】
誤動作検出回路１０１は、誤動作が生じ得る状態の発生を検出するものであり、上述した図２及び図３に示した誤動作検出回路２０や、図８に示した誤動作検出回路２０Ａや、図９に示したＰＬＬやＤＬＬのロック端子からの出力信号をモニターする回路等が適用される。なお、図１２においては、便宜上、これらの誤動作検出回路をまとめて１つの誤動作検出回路１０１として図示している。
【０１０８】
電源ブロック１０２Ａ、１０２Ｂ、１０２Ｃは、それぞれＣＰＵコアとしての機能を実現するための回路を含む電源ブロックである。なお、図１２においては、電源ブロック１０２Ａについてのみ具体的に示し、電源ブロック１０２Ｂ、１０２Ｃについて簡略して図しているが、同様に構成される。
【０１０９】
電源ブロック１０２Ａ、１０２Ｂ、１０２Ｃは、バスインタフェース回路部１０３を有し、同期／非同期選択回路１０５を介してバスインタフェース回路部１０３とオンチップバス１０４との間でデータ転送が行われる。バスインタフェース回路部１０３、オンチップバス１０４、同期／非同期選択回路１０５（非同期バス・ブリッジ１０６、セレクタ１０７）は、図４等に示したバスインタフェース回路部６２、オンチップバス６４、同期／非同期選択回路６５（非同期バス・ブリッジ６６、セレクタ６７）にそれぞれ相当し、同様に構成される。
【０１１０】
オンチップバス１０４には、エラーモニターレジスタ７２に相当しエラー情報保持回路１１１からの指示に応じてエラー情報（エラーが検出された箇所、検出回数、エラー発生要因等）を保持するエラーモニターレジスタ１０８、クロック制御に係る情報を保持するクロック制御レジスタ１０９、電源管理等を行う電源管理部１１０が接続されている。
【０１１１】
エラー情報保持回路１１１、クロック生成回路１１２、割込み生成回路１１３、ウォッチドッグタイマー１１４、及びＯＲ回路１１５は、図５や図７等に示したエラー情報保持回路６８、クロック生成回路６９、割込み生成回路７１、ウォッチドッグタイマー７３、及びＯＲ回路７４に相当し、同様に構成される。
【０１１２】
但し、本実施形態においては、クロック生成回路１１２には、エラー情報保持回路１１１の出力信号がクロック制御信号ＣＫＣＴＬＡとして入力されるとともに、クロック制御レジスタからクロック制御信号ＣＫＣＴＬＢが入力される。クロック生成回路１１２は、入力されるクロック制御信号ＣＫＣＴＬＡ及びＣＫＣＴＬＢに応じて、クロック信号ＣＬＫ１、ＣＬＫ２、…を生成し出力する。
【０１１３】
また、本実施形態における割込み生成回路１１３は、各電源ブロック（ＣＰＵコア）１０２Ａ〜１０２Ｃの各々に対する割込み要求信号ＩＮＴＡ、ＩＮＴＢ、ＩＮＴＣを出力する。割込み生成回路１１３は、エラー情報保持回路１１１の出力信号がアサートされると、それを検出して割込み要求信号ＩＮＴＡ、ＩＮＴＢ、ＩＮＴＣをアサートする。
【０１１４】
このようにして、誤動作検出回路１０１が電源ノイズや電圧低下等により誤動作が生じ得る状態になったことを検出した場合に、ＣＰＵコアとして機能する電源ブロック１０２Ａ〜１０２Ｃの各々に対して割込み要求信号ＩＮＴＡ、ＩＮＴＢ、ＩＮＴＣにより割込み要求を行い、電源ブロック１０２Ａ〜１０２Ｃの間の通信等により、各電源ブロックの状態を互いに確認することができる。そして、正常に動作している電源ブロックあるいは電力制御等を担う電源ブロックにより、動作周波数や動作電圧の制御を行うことで、より安全な動作を実現することができる。
【０１１５】
また、上述した実施形態と同様に、誤動作が生じ得る状態の発生を検出した場合には、それをエラー検出信号として認識し、クロックギヤ・ダウン、割込み要求信号の生成、及びウォッチドッグタイマーの起動などを行うことで、誤動作の発生を防止することができるとともに、仮に電源ブロック（ＣＰＵコア）１０２Ａ〜１０２Ｃが誤動作によりハングアップしても適切にリカバリー処理を行うことが可能となる。
【０１１６】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【０１１７】
（付記１）動作電圧及び動作周波数を制御可能な電源ブロックを含む複数の電源ブロックを有する半導体装置であって、
第１の電源ブロックに配置され、クロックに同期して動作する第１の記憶回路と、
第２の電源ブロックに配置され、前記クロックに同期して動作する第２の記憶回路と、
前記第１の記憶回路の出力端子と前記第２の記憶回路の入力端子との間に接続される第１の遅延回路と、
前記第２の記憶回路の出力端子と前記第１の記憶回路の入力端子との間に接続される第２の遅延回路と、
前記第１及び第２の記憶回路における入力信号及び出力信号に基づいて、誤動作が生じ得る状態であるか否かを判定し、判定結果をエラー検出信号として出力する判定回路とを備えることを特徴とする半導体装置。
（付記２）前記第１の記憶回路と、前記第２の記憶回路と、前記第１の遅延回路と、前記第２の遅延回路との組を複数設け、
前記第１の遅延回路を構成する複数の回路素子、及び前記第２の遅延回路を構成する複数の回路素子を、各組毎に配置を異ならせて前記第１の電源ブロック及び前記第２の電源ブロックに配置したことを特徴とする付記１記載の半導体装置。
（付記３）前記第１及び第２の記憶回路の各々は、フリップフロップであり、
前記第１及び第２の遅延回路の各々は、直列接続された複数のバッファ又は偶数個のインバータであることを特徴とする付記１記載の半導体装置。
（付記４）前記判定回路は、前記第１及び第２の記憶回路における入力信号と出力信号とを用いて論理演算を行うロジック回路であることを特徴とする付記３記載の半導体装置。
（付記５）ＰＬＬ回路又はＤＬＬ回路を備え、
前記判定回路は、前記ＰＬＬ回路又はＤＬＬ回路の出力信号に基づいて、前記ＰＬＬ回路又はＤＬＬ回路の出力クロックが安定しているか否かを判定し、判定結果に応じて誤動作が生じ得る状態であるか否かを示すエラー検出信号を出力することを特徴とする付記１記載の半導体装置。
（付記６）前記判定回路から出力されるエラー検出信号に応じて、データ転送を同期転送で行うか非同期転送で行うかを切り替える選択回路を備えることを特徴とする付記１記載の半導体装置。
（付記７）前記選択回路は、データ転送を非同期で行うための非同期バス・ブリッジ回路と、
前記非同期バス・ブリッジ回路を介してデータ転送を行うか否かを、前記エラー検出信号に応じて切り替えるセレクタとを有することを特徴とする付記６記載の半導体装置。
（付記８）前記判定回路から出力されるエラー検出信号に応じて、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックにおける動作電圧及び動作周波数の少なくとも一方を制御することを特徴とする付記１記載の半導体装置。
（付記９）前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックにおける動作周波数を低くすることを特徴とする付記１記載の半導体装置。
（付記１０）前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックについて、供給するクロック信号の周波数を低下させる、又はクロック信号の供給を一時的に停止させることを特徴とする付記１記載の半導体装置。
（付記１１）前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックの動作を一時的に停止させることを特徴とする付記１記載の半導体装置。
（付記１２）カウンタを有するリセット生成回路と、
前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックに対する割込み要求を発生させる割込み生成回路とを備え、
前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記リセット生成回路がカウント動作を行い、かつ前記割込み生成回路が前記割込み要求を発生させ、前記リセット生成回路におけるカウント値が所定の値に達するまでに前記割込み要求に応じたカウンタ値のクリア動作が実行されないときには、前記リセット生成回路は、前記第１の電源ブロック及び前記第２の電源ブロックを初期化することを特徴とする付記１記載の半導体装置。
（付記１３）前記判定回路から出力されるエラー検出信号に係るエラー情報を保持するレジスタを備えることを特徴とする付記１記載の半導体装置。
（付記１４）動作電圧及び動作周波数を制御可能な電源ブロックを含む複数の電源ブロックを有する半導体装置であって、
第１の電源ブロックにおける第１の電源電位及び第２の電源ブロックにおける第２の電源電位が入力され、前記第１の電源電位と前記第２の電源電位の電位差を検知する電位差検知回路と、
前記電位差検知回路の検知結果に基づいて、前記第１の電源電位と前記第２の電源電位の電位差が所定の範囲から逸脱しているか否かを判定し、判定結果に応じて誤動作が生じ得る状態であるか否かを示すエラー検出信号を出力する判定回路とを備えることを特徴とする半導体装置。
（付記１５）前記判定回路から出力されるエラー検出信号に応じて、データ転送を同期転送で行うか非同期転送で行うかを切り替える選択回路を備えることを特徴とする付記１４記載の半導体装置。
（付記１６）前記判定回路から出力されるエラー検出信号に応じて、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックにおける動作電圧及び動作周波数の少なくとも一方を制御することを特徴とする付記１４記載の半導体装置。
（付記１７）前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックにおける動作周波数を低くすることを特徴とする付記１４記載の半導体装置。
（付記１８）前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックについて、供給するクロック信号の周波数を低下させる、又はクロック信号の供給を一時的に停止させることを特徴とする付記１４記載の半導体装置。
（付記１９）前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックの動作を一時的に停止させることを特徴とする付記１４記載の半導体装置。
（付記２０）カウンタを有するリセット生成回路と、
前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックに対する割込み要求を発生させる割込み生成回路とを備え、
前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記リセット生成回路がカウント動作を行い、かつ前記割込み生成回路が前記割込み要求を発生させ、前記リセット生成回路におけるカウント値が所定の値に達するまでに前記割込み要求に応じたカウンタ値のクリア動作が実行されないときには、前記リセット生成回路は、前記第１の電源ブロック及び前記第２の電源ブロックを初期化することを特徴とする付記１４記載の半導体装置。
（付記２１）前記判定回路から出力されるエラー検出信号に係るエラー情報を保持するレジスタを備えることを特徴とする付記１４記載の半導体装置。
（付記２２）動作電圧及び動作周波数を制御可能な電源ブロックを含む複数の電源ブロックを有し、かつＰＬＬ回路又はＤＬＬ回路を有する半導体装置であって、
前記ＰＬＬ回路又はＤＬＬ回路の出力信号に基づいて、前記ＰＬＬ回路又はＤＬＬ回路の出力クロックが安定しているか否かを判定し、判定結果に応じて誤動作が生じ得る状態であるか否かを示すエラー検出信号を出力する判定回路と、
前記判定回路から出力されるエラー検出信号に応じて、データ転送を同期転送で行うか非同期転送で行うかを切り替える選択回路とを備えることを特徴とする半導体装置。
（付記２３）前記判定回路から出力されるエラー検出信号に応じて、前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックにおける動作電圧及び動作周波数の少なくとも一方を制御することを特徴とする付記２２記載の半導体装置。
（付記２４）カウンタを有するリセット生成回路と、
前記第１の電源ブロック及び前記第２の電源ブロックの少なくとも一方の電源ブロックに対する割込み要求を発生させる割込み生成回路とを備え、
前記エラー検出信号により誤動作が生じ得る状態を検出したことが通知された場合に、前記リセット生成回路がカウント動作を行い、かつ前記割込み生成回路が前記割込み要求を発生させ、前記リセット生成回路におけるカウント値が所定の値に達するまでに前記割込み要求に応じたカウンタ値のクリア動作が実行されないときには、前記リセット生成回路は、前記第１の電源ブロック及び前記第２の電源ブロックを初期化することを特徴とする付記２２記載の半導体装置。
（付記２５）前記判定回路から出力されるエラー検出信号に係るエラー情報を保持するレジスタを備えることを特徴とする付記２２記載の半導体装置。
【図面の簡単な説明】
【０１１８】
【図１】本発明の実施形態が適用される半導体装置の構成例を示す図である。
【図２】第１の実施形態における誤動作検出回路の構成例を示す図である。
【図３】第１の実施形態における誤動作検出回路の他の構成例を示す図である。
【図４】第２の実施形態における半導体装置の構成例を示す図である。
【図５】第３の実施形態における半導体装置の構成例を示す図である。
【図６】第３の実施形態における半導体装置の動作例を示すタイミングチャートである。
【図７】第４の実施形態における半導体装置の構成例を示す図である。
【図８】第５の実施形態における半導体装置の構成例を示す図である。
【図９】第６の実施形態における半導体装置の構成例を示す図である。
【図１０】第６の実施形態における半導体装置の動作例を示すタイミングチャートである。
【図１１】第６の実施形態における半導体装置の他の構成例を示す図である。
【図１２】第７の実施形態における半導体装置の構成例を示す図である。
【図１３】半導体装置における内部電圧変動の一例を示す図である。
【符号の説明】
【０１１９】
２０  誤動作検出回路
２１、２５、３１、４１  モニター回路
２２、２６、３２、４２  記憶回路
２３、２７、３３、３４、４３、４４  遅延回路
２４、２８、３５、４５  判定回路
２９、５１  エラー検出信号出力回路
６２  バスインタフェース回路部
６４  オンチップバス
６５  同期／非同期選択回路
６６  非同期バス・ブリッジ
６７  セレクタ
６８  エラー情報保持回路
６９  クロック生成回路
７１  割込み生成回路
７２  エラーモニターレジスタ
７３  ウォッチドッグタイマー
ＥＲＲ  エラー検出信号
ＩＮＴ  割込み要求信号
【図１】
2008311767.tif 000003
【図２】
2008311767.tif 000004
【図３】
2008311767.tif 000005
【図４】
2008311767.tif 000006
【図５】
2008311767.tif 000007
【図６】
2008311767.tif 000008
【図７】
2008311767.tif 000009
【図８】
2008311767.tif 000010
【図９】
2008311767.tif 000011
【図１０】
2008311767.tif 000012
【図１１】
2008311767.tif 000013
【図１２】
2008311767.tif 000014
【図１３】
2008311767.tif 000015