(57)【要約】【課題】機能回路の誤動作の防止、不良解析、消費電力の最適化が可能となる半導体集積回路を提供する。【解決手段】ＣＰＵを含む複数の機能回路２〜４を有したワンチップＬＳＩ１において、各機能回路２〜４の電源電圧をＡ／Ｄ変換回路１０によりレジスタ１１に記憶し、外部のＤＲＡＭ２２に展開することによりモニタ可能としたので、実際のＩＲドロップを加味した正確な電圧をモニタすることができる。【選択図】図１
2009038234.tif 000002
【特許請求の範囲】
【請求項１】
共通の電源電圧が供給される複数の機能回路を同一の半導体基板上に搭載して構成される半導体集積装置において、
入力電圧をデジタルデータに変換するＡ／Ｄ変換回路と、
入力するデジタルデータを順に記憶可能な記憶手段と、
前記機能回路のうち選択した特定の機能回路の電源電圧を前記Ａ／Ｄ変換回路に入力させる選択手段と、
前記Ａ／Ｄ変換回路でデジタルデータに変換された前記特定の機能回路の電源電圧を前記記憶手段に順に記憶する制御手段とを備えたことを特徴とする半導体集積回路装置。
【請求項２】
前記機能回路は、少なくともＣＰＵ及びメモリであり、
前記ＣＰＵは、前記メモリに搭載されたアプリケーションを実行することを特徴とする請求項１記載の半導体集積回路装置。
【請求項３】
前記機能回路は、少なくとも複数のＣＰＵ及びメモリであり、
前記複数のＣＰＵは、前記メモリに搭載されたアプリケーションのタスクを分担して実行することを特徴とする請求項１または２記載の半導体集積回路装置。
【請求項４】
前記制御手段は、前記Ａ／Ｄ変換回路で変換された前記機能回路の電源電圧を前記ＣＰＵを介することなく前記記憶手段に一定周期でデータ転送するＤＭＡコントローラであることを特徴とする請求項２または３記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通の電源電圧が供給される複数の機能回路を同一の半導体基板上に搭載して構成される半導体集積回路装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩの大規模化、高速化に伴いＬＳＩ内部でのＩＲドロップ（電圧降下）が問題となっているため、それを防ぐためのパッケージ、レイアウトの工夫や設計ツールなどに関して種々の発明が提案されている（特許文献１ないし３参照）。
【特許文献１】特開２００４−２２１２１６号公報
【特許文献２】特開２００５−３３２９７９号公報
【特許文献３】特開２００６−２４５３１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、最近のＬＳＩは多くの電源端子を持ち、電源ラインによるＩＲドロップを対策しているが、それがインピーダンスの計算を複雑にしている点や、アプリケーションソフトによって、所定の機能を実行するための機能回路の活性化率（稼動率）に差があるため、消費電流を正確に見積もれない点があり、実際のＩＲドロップを正確に予測することは困難であった。このため、機能回路の誤動作の防止、不良解析、消費電力の最適化が困難であった。
【０００４】
本発明は上記事情に鑑みてなされたもので、その目的は、機能回路の誤動作の防止、不良解析、消費電力の最適化が可能となる半導体集積回路装置を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１の発明によれば、半導体集積回路装置に電源電圧を給電すると、各機能回路に電源電圧が供給されて動作する。ここで、選択手段により複数の機能回路のうちから選択した特定の機能回路の電源電圧をＡ／Ｄ変換回路に入力させると、Ａ／Ｄ変換回路からは選択された機能回路の電源電圧が出力される。制御手段は、Ａ／Ｄ変換回路から出力された特定の機能回路の電源電圧を記憶手段に順に記憶する。従って、記憶手段に記憶されたデータを解析することにより、機能回路の誤動作の防止、不良解析、消費電力の最適化が可能となる。
【０００６】
請求項２の発明によれば、ＣＰＵが実行するアプリケーションによって各機能回路の活性率が異なる場合であっても、アプリケーションに応じた適切な対策を図ることができる。
請求項３の発明によれば、マルチコアの半導体集積回路装置に適用することができる。
請求項４の発明によれば、ＣＰＵを介することなくデータ転送により特定の機能回路の電源電圧を記憶手段に順に記憶することができるので、特定の機能回路の電源電圧の変化を詳細に解析することが可能となる。
【発明を実施するための最良の形態】
【０００７】
（第１実施例）
以下、本発明をナビシステムのワンチップＬＳＩに適用した第１実施例について図１ないし図３を参照して説明する。
図１は、ワンチップＬＳＩ（Large Scale Integration）を示している。この図１において、ＬＳＩ（半導体集積回路装置に相当）１は、ＣＰＵ２、ＧＣ３、メモリ４等（機能回路に相当、以下、機能回路と称する）を有して構成されている。図１は、本発明に関連した機能回路２〜４のみを示し、アドレスバス、データバス、端子、その他の周辺回路の図示を省略した。
【０００８】
ＬＳＩ１には多数の電源端子５が設けられており、各機能回路２〜４が共通の電源ライン６により各電源端子５と保護抵抗７を介して接続されている。このように多数の電源端子５を設けているのは、電源ライン６によるＩＲドロップの防止を図るためである。尚、図１には示していないが、各機能回路２〜４は、図示しないグランドラインを介して図示しないグランド端子と接続されている。
【０００９】
ＬＳＩ１には、本発明に関連して、制御レジスタ８、マルチプレクサ（選択手段に相当）９、Ａ／Ｄ変換回路１０、レジスタ（記憶手段に相当）、バスモニタ回路１２が設けられている。
図２は、Ａ／Ｄ変換回路１０及び制御レジスタ８の周辺回路を示す電気回路図である。この図２において、Ａ／Ｄ変換回路１０は、Ｃｈ０〜Ｃｈ２選択信号を選択的に出力する。これらのＣｈ０〜Ｃｈ２選択信号は、ＣＰＵ２からの指令に応じてＡ／Ｄ変換回路１０が出力するようになっている。Ａ／Ｄ変換回路１０からのＣｈ０〜Ｃｈ２選択信号に対応してゲート回路１３ａ〜１３ｃが設けられている。これらのゲート回路１３ａ〜１３ｃは、選択信号によりオンした状態でＣｈ０〜Ｃｈ２入力端子１４ａ〜１４ｃとＡ／Ｄ変換回路１０のＣｈ０〜Ｃｈ２入力端子とを接続するようになっている。Ｃｈ０〜Ｃｈ２入力端子１４ａ〜１４ｃに入力されるアナログ信号は、ＬＳＩ１内部の所定回路からのアナログ信号が入力するようになっており、ナビシステムの機能を実現するために使用されるようになっている。
【００１０】
ここで、Ｃｈ０入力端子１４ａとゲート回路１３ａとの間には切替回路１５が介在して接続されている。この切替回路１５は、２個のゲート回路１５ａ，１５ｂを組合わせてなり、Ｃｈ０入力端子１４ａとマルチプレクサ９とを選択的にゲート回路１３ａに接続するものである。
【００１１】
切替回路１５及びマルチプレクサ９は、制御レジスタ８により制御されるようになっている。
制御レジスタ８はＢｉｔ０〜Ｂｉｔ３の４ビットからなる。Ｂｉｔ０は、「１」にセットされた状態でモニタイネーブル信号を切替回路１５に出力する。Ｂｉｔ１は、「１」にセットされた状態でＣＰＵ電源選択信号をマルチプレクサ９に出力する。Ｂｉｔ２は、「１」にセットされた状態でＧＣ電源選択信号をマルチプレクサ９に出力する。Ｂｉｔ３は、「１」にセットされた状態でメモリ電源選択信号をマルチプレクサ９に出力する。制御レジスタ８へのビットの書込みはＣＰＵ２により行われるようになっている。
【００１２】
切替回路１５は、モニタイネーブル信号の非入力状態でＣｈ０入力端子１４ａとゲート回路１３ｃとを接続し、モニタイネーブル信号の入力状態でマルチプレクサ９の出力端子とゲート回路１３ｃとを接続する。
マルチプレクサ９は、ゲート回路９ａ〜９ｃを有してなり、ＣＰＵ電源選択信号の入力状態でゲート回路９ａによりＣＰＵ電源端子と切替回路１５とを接続し、ＧＣ電源選択信号の入力状態でゲート回路９ｂによりＧＣ電源端子と切替回路１５とを接続し、メモリ電源選択信号の入力状態でゲート回路９ｃによりメモリ電源端子と切替回路１５とを接続する。
【００１３】
図３は、バスモニタ回路１２の構成を示す機能ブロック図である。この図３において、バスモニタ回路１２は、例えば４個のアドレス設定レジスタ１６、４個のデータ設定レジスタ１７、第１比較回路１８、第２比較回路１９、アンド回路２０、ＤＭＡ（Direct Memory Access）コントローラ（制御手段に相当）２１から構成されている。アドレス設定レジスタ１６には、ＤＭＡコントローラ２１にＤＲＥＱ信号を出力するタイミングでのアドレスバスのデータが設定される。データ設定レジスタ１７には、ＤＭＡコントローラ２１にＤＲＥＱ信号を出力するタイミングでのデータバスのデータが設定される。
【００１４】
第１比較回路１８は、アドレス設定レジスタ１６に記憶されている４個のデータとアドレスバスのデータとを比較し、両者が一致したときに一致信号を出力する。第２比較回路１９は、データ設定レジスタ１７に記憶されている４個のデータとデータバスのデータとを比較し、両者が一致したときに一致信号を出力する。
【００１５】
アンド回路２０は、第１比較回路１８及び第２比較回路１９の両方から一致信号を受信したときにＤＲＥＱ（DMA Request）信号をＤＭＡコントローラ２１に出力する。ＤＭＡコントローラ２１は、ＤＲＥＱ信号を受信した場合は、ＣＰＵ２を介することなく指定されたＡ／Ｄ変換回路１０とレジスタ（記憶手段に相当）１１との間でデータバスを通じてデータを直接データ転送する。この場合のデータ転送は、ＣＰＵ２を介したソフトウェア転送とは異なり、ＣＰＵ２を介することなくハードウェアによる直接データ転送であるので、高速・大容量のデータ転送が可能となる。アドレスバス及びデータバスの使用権の制御はＤＭＡコントローラ２１が行う。
【００１６】
ＤＭＡコントローラ２１は、ＣＰＵ２に対してアドレスバス及びデータバスの使用権を要求して取得したときは、転送先のレジスタ１１のデスティネーションアドレスをアドレスバスに出力する。このとき、ソースアドレスとして指定されているＡ／Ｄ変換回路１０からデジタルデータがデータバスに出力されるので、デスティネーションアドレスにより指定されたレジスタ１１の記憶領域にソースアドレスとして指定されているＡ／Ｄ変換回路１０からのデータが記憶される。ＤＭＡコントローラ２１は、デスティネーションアドレスをインクリメントして同様の動作を繰り返し、データ転送が終了すると、バスの使用権をＣＰＵ２に返還するようになっている。
【００１７】
次に、上記構成の作用について説明する。
ＣＰＵ２が動作し、その消費電流が大きくなると、ＣＰＵ２の電源電圧が定格電圧から低下（ＩＲドロップ）することがある。このような現象は、ＣＰＵ２のみならず、電源端子５と接続された全ての機能回路２〜４で生じる現象であることから、そのような電源電圧の低下を検査することは有効である。例えばＧＣ３は、高速処理を必要とし、その分消費電流も大きくなり、電源電圧の低下が懸念されることから、ＧＣ３の電源電圧をモニタすることは有効である。
【００１８】
ＧＣ３の電源電圧をモニタする場合を説明する。ＧＣ３が、特定アドレスに特定データを設定したときに描画が開始するように構成されている場合には、何れかのアドレス設定レジスタ１６に当該特定アドレスを設定すると共に、何れかのデータ設定レジスタ１７に当該特定データを設定する。また、ＤＭＡコントローラ２１のソースアドレスとして、Ａ／Ｄ変換回路１０のＣｈ０を設定し、デスティネーションアドレスとして、レジスタ１１の開始アドレスを設定しておく。
【００１９】
制御レジスタのＢｉｔ０及びＢｉｔ１に「１」をセットすると、切替回路１５が切替わると同時にＧＣ３（特定の機能回路に相当）の電源端子が選択されるので、Ａ／Ｄ変換回路１０にはＧＣ３の電源電圧が入力するようになる。これにより、Ａ／Ｄ変換回路１０からはＧＣ３の電源電圧がデジタルデータで出力されるようになる。
【００２０】
ＣＰＵ２がＧＣ３で描画開始するために、ＧＣ３の特定アドレスに特定データを設定するための書き込みを実行すると、アドレスバスが特定アドレスとなると同時に、データバスが特定データとなる。すると、バスモニタ回路１２の第１比較回路１８は、アドレス設定レジスタ１６に設定された特定アドレスとアドレスバスのアドレスとが一致したと判断して一致信号を出力する。同時に、第２比較回路１９は、データ設定レジスタ１７に設定された特定データとデータバスのデータとが一致したと判断して一致信号を出力する。これにより、アンド回路２０からＤＲＥＱ信号がＤＭＡコントローラ２１へ出力されるので、ＤＭＡコントローラ２１は、ＣＰＵ２からバスの使用権を取得してから、予め設定されているようにＡ／Ｄ変換回路１０のＣｈ０の出力をレジスタ１１の開始アドレスにＣＰＵ２を介することなくデータ転送する。この場合、ＤＭＡコントローラ２１は、Ａ／Ｄ変換回路１０からの一つのデータをメモリへデータ転送したときは、アドレスバスのデータをインクリメントした状態でＡ／Ｄ変換回路１０からのデータをデータ転送する。
【００２１】
以上のような動作により、レジスタ１１にはＧＣ３が描画を開始してからのＧＣ３の電源電圧の変化が順に記憶されるようになる。
ＤＭＡコントローラ２１は、Ａ／Ｄ変換回路１０からのデータをレジスタ１１の予め設定された終了アドレスまでデータ転送したときは、バスの使用権をＣＰＵ２へ返還する。
【００２２】
以上のようにしてレジスタ１１には、ＧＣ３の電源電圧が順に記憶されているので、レジスタ１１の記憶データを外部のＤＲＡＭ２２（図１参照）の一定領域に展開し、デバッガーでメモリダンプすることにより解析する。従って、ＧＣ３の電源電圧が定格電圧から許容範囲内の最低レベルまで低下するような場合は、ＧＣ３の電源電圧に余裕がないと判断できるので、ＧＣ３の動作を低下させてＧＣ３の消費電力を抑制することにより、ＧＣ３の電源電圧が低下することを防止できる。
また、アプリケーションによって機能回路２〜４の活性化率に差がある場合であっても、実際のアプリソフト毎のＩＲドロップをモニタすることが可能であることから、アプリケーション毎によるＩＲドロップに適切に対応することができる。
【００２３】
また、例えば音楽リッピング時、経路計算時、それらの複合動作時など、ＣＰＵ２の負荷が高い場合のＣＰＵ２の電源電圧をモニタしたい場合は、音楽リッピング時にアクセスするメモリのアドレスをアドレス設定レジスタ１６に設定しておけば、ＣＰＵ２の電源電圧をモニタすることができる。この場合、Ａ／Ｄ変換回路１０による変換電圧結果が予め設定した閾値以下になっていた場合は、高温でリーク電流が増大してＩＲドロップが増大したと考えられるので、ＣＰＵ２のクロック発生回路の分周比をソフトで設定して周波数を低下することにより、ＣＰＵ２の消費電流を抑制して、ＣＰＵ２の電源電圧が低下することを防止できる。
【００２４】
このような実施例によれば、ＣＰＵ２を含む複数の機能回路２〜４を有したワンチップＬＳＩ１において、各機能回路２〜４の電源電圧をＡ／Ｄ変換回路１０によりレジスタ１１に順に記憶し、外部のＤＲＡＭ２２に展開することによりモニタ可能としたので、実際のＩＲドロップを加味した正確な電圧をモニタすることができ、誤動作の防止、不良解析の簡易化、消費電力の最適化を図ることができる。
また、Ａ／Ｄ変換回路１０はＬＳＩ１に既に設けられているものであるから、コストが大幅に上昇することなく、ＩＲドロップが想定外となっていないかを確認することができる。
【００２５】
（第２実施例）
次に、本発明をマルチコアＬＳＩに適用した第２実施例について説明するに、第１実施例と同一部分には同一符号を付して説明を省略する。
図４は、４個のＣＰＵ２ａ〜２ｄを内蔵したマルチコアＬＳＩ（半導体集積回路装置に相当）３１を示している。この図４に示すように、Ａ／Ｄ変換回路１０は、４個のＣＰＵ２ａ〜２ｄの電源電圧をモニタ可能に接続されている。
【００２６】
マルチコアＬＳＩ３１をＳＭＰ（対称型）で使う場合は、ソフトが動的に各ＣＰＵ２ａ〜２ｄに割り当てられるため、同じアプリケーションを走らせても各ＣＰＵ２ａ〜２ｄの電源電圧変動は違ってくる。このため、絶えず各ＣＰＵ２ａ〜２ｄの電源電圧をモニタして、電圧が設定された値よりも低くなったような場合には、周波数を変えるなどして誤動作を防止できる。
【００２７】
今後普及すると考えられるマルチコアＬＳＩ３１では、各ＣＰＵ２ａ〜２ｄにダイナミックにタスクが振り分けられるため、状態によりＩＲドロップが大きく変わると考えられるものの、このような実施例によれば、各々のＣＰＵ２ａ〜２ｄの電源電圧をモータし、ダイナミックに周波数やソフトの動作を変えて誤動作を防止する機能を一層効果的に発揮させることができる。
【００２８】
本発明は、上記実施例に限定されることなく、次のように変形または拡張できる。
アプリケーションにより特定の機能回路２〜４の電源電圧をＡ／Ｄ変換回路１０に入力し、Ａ／Ｄ変換回路１０から出力されたデータをレジスタ１１に順に記憶するようにしてもよい。
電源電圧の監視対象とする機能回路しては、ＣＰＵ２、ＧＣ３、メモリ４以外のものを対象とするようにしてもよい。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１実施例における全体構成を示す機能ブロック図
【図２】Ａ／Ｄ変換回路及び制御レジスタの周辺回路を示す電気回路図
【図３】バスモニタ回路の構成を示す機能ブロック図
【図４】本発明の第２実施例を示す機能ブロック図
【符号の説明】
【００３０】
図面中、１はＬＳＩ、２はＣＰＵ（機能回路）、３はＧＣ（機能回路）、４はメモリ（機能回路）、９はマルチプレクサ（選択手段）、１１はレジスタ（記憶手段）、２１はＤＭＡコントローラ（制御手段）である。
【図１】
2009038234.tif 000003
【図２】
2009038234.tif 000004
【図３】
2009038234.tif 000005
【図４】
2009038234.tif 000006