(57)【要約】【課題】回路規模を大きくすることなく、温度や電源電圧の変動などの環境変化による誤動作の防止に対応でき、常に一定の位相関係の複数のクロック信号をシステムボード上の各機能デバイスに供給することができるクロック信号発生用の半導体装置、およびシステムボード、動作制御方法を提供する。【解決手段】ＰＣマザーボードに搭載されるクロック信号発生用のＬＳＩであって、システム部２のＣＰＵ３１、ＳＤＲＡＭ３２、ＡＧＰ３３、ＰＣＩ３４などの各デバイスへのクロック発生部１として機能し、プログラマブル遅延回路１５〜１８を設け、電源ＯＮ時、エラー発生時、一定時間経過後毎に、ＣＰＵ３１の動作テスト部４１が行う動作テストプログラムによりシステム動作テストを実行し、その結果に応じてプログラマブル遅延回路１５〜１８の遅延時間の再設定を繰り返すことによってクロック信号の位相を最適化する。【選択図】　　　　図１
2004046395.tif 000002
【特許請求の範囲】
【請求項１】
外部のＣＰＵとメモリとの各デバイスに供給する各クロック信号を生成するクロック生成回路と、
前記ＣＰＵと前記メモリとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時にチューニングする手段とを有することを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置において、
前記手段によるチューニングのタイミングとして、所定時間経過後またはエラー発生時を含み、
前記手段は、前記ＣＰＵと前記メモリとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時にチューニングすることを特徴とする半導体装置。
【請求項３】
請求項２記載の半導体装置において、
前記外部のデバイスとして、グラフィックプロセッサ、ＰＣＩカードを含み、前記クロック生成回路は、前記グラフィックプロセッサと前記ＰＣＩカードとの各デバイスに供給する各クロック信号を生成し、
前記手段は、前記ＣＰＵと前記メモリと前記グラフィックプロセッサと前記ＰＣＩカードとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時にチューニングすることを特徴とする半導体装置。
【請求項４】
ＣＰＵの第１デバイスと、
メモリの第２デバイスと、
前記ＣＰＵと前記メモリとの各デバイスに供給する各クロック信号を生成するクロック生成回路と、前記ＣＰＵと前記メモリとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時にチューニングする手段とを有する第３デバイスとを搭載したことを特徴とするシステムボード。
【請求項５】
請求項４記載のシステムボードにおいて、
前記第３デバイスの前記手段によるチューニングのタイミングとして、所定時間経過後またはエラー発生時を含み、
前記第３デバイスの前記手段は、前記ＣＰＵと前記メモリとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時にチューニングすることを特徴とするシステムボード。
【請求項６】
請求項５記載のシステムボードにおいて、
グラフィックプロセッサの第４デバイスと、
ＰＣＩカードの第５デバイスとを含み、
前記第３デバイスの前記クロック生成回路は、前記グラフィックプロセッサと前記ＰＣＩカードとの各デバイスに供給する各クロック信号を生成し、
前記第３デバイスの前記手段は、前記ＣＰＵと前記メモリと前記グラフィックプロセッサと前記ＰＣＩカードとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時にチューニングすることを特徴とするシステムボード。
【請求項７】
ＣＰＵの第１デバイスと、
メモリの第２デバイスと、
前記ＣＰＵと前記メモリとの各デバイスに供給する各クロック信号を生成するクロック生成回路と、前記ＣＰＵと前記メモリとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時にチューニングする手段とを有する第３デバイスとを搭載したシステムを有し、
前記システムに搭載した前記第３デバイスの前記手段によるチューニングを、ＢＩＯＳまたはＯＳのソフトウェアを用いてシリアルバスを介したシリアル入力により実行することを特徴とする動作制御方法。
【請求項８】
請求項７記載の動作制御方法において、
前記第３デバイスの前記手段によるチューニングのタイミングとして、所定時間経過後またはエラー発生時を含み、
前記第３デバイスの前記手段は、前記ＣＰＵと前記メモリとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時にチューニングすることを特徴とする動作制御方法。
【請求項９】
請求項８記載の動作制御方法において、
前記システムは、グラフィックプロセッサの第４デバイスと、ＰＣＩカードの第５デバイスとを搭載し、
前記第３デバイスの前記クロック生成回路は、前記グラフィックプロセッサと前記ＰＣＩカードとの各デバイスに供給する各クロック信号を生成し、
前記第３デバイスの前記手段は、前記ＣＰＵと前記メモリと前記グラフィックプロセッサと前記ＰＣＩカードとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成した前記各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時にチューニングすることを特徴とする動作制御方法。
【請求項１０】
ＣＰＵ及びメモリが搭載されるべきシステムボードであって、
前記ＣＰＵと前記メモリに供給されるべき各クロック信号を生成するクロック生成回路と、前記ＣＰＵの動作タイミングと前記メモリの動作タイミングとの相対的なずれが所定範囲に入るように、前記クロック生成回路で生成する各クロック信号の遅延量を電源投入時にチューニングする手段とを有する第３デバイスとを搭載したことを特徴とするシステムボード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クロック信号発生用の半導体装置に関し、特にＣＰＵ、メモリなどの各デバイスに供給する複数のクロック信号の自動位相調整技術として好適な半導体装置、およびそれを搭載したシステムボード、ならびにシステムの動作制御方法に適用して有効な技術に関する。
【０００２】
【従来の技術】
本発明者が検討したところによれば、クロック信号を発生する半導体装置（ＬＳＩ）などの技術に関しては、以下のような技術が考えられる。
【０００３】
たとえば、ＰＣ（パーソナルコンピュータ）用のシステムボード（マザーボード）には、ＣＰＵ、メモリ、グラフィックプロセッサ、ＰＣＩスロット及びこのスロットに装着された拡張カード（以下ＰＣＩと省略して呼ぶ）などの各デバイスが搭載され、これらの各デバイスに対して回路動作の同期をとるためのクロック信号が供給される。このクロック信号を発生する技術に関しては、たとえば特開２０００−３０７４２０号、特開２００１−２８３５３４号の各公報に記載される技術などが挙げられる。
【０００４】
前記特開２０００−３０７４２０号公報には、所定の位相差を持ったクロック信号をＰＬＬ回路を用いて発生させるクロック発生回路が開示されている。また、前記特開２００１−２８３５３４号公報には、位相の異なる２つのクロック信号を任意の位相差になるように自動調整するクロック生成回路が開示されている。
【０００５】
【発明が解決しようとする課題】
ところで、前記のようなクロック信号を発生する技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００６】
たとえば、前記特開２０００−３０７４２０号公報の技術では、出力するクロック信号の位相差の種類分だけＰＬＬ回路が必要なため、回路規模が大きくなる。また、前記特開２００１−２８３５３４号公報の技術では、位相調整の方法として自動調整モードおよび任意調整モードがあるが、一度、位相調整結果がＯＫになると制御ループから出て制御終了となり、その後のフィードバック処理が行われないため、温度や電源電圧の変動などの環境変化による誤動作防止の対応ができない。
【０００７】
また、ＰＣマザーボード用クロックジェネレータの開発において、システムの動作不安定の原因の１つとして、クロックジェネレータからＣＰＵやメモリなどに供給するクロック信号の位相設定不良がある。位相不良は、初期設定時点で既に悪い場合、または動作時の温度などの状況により悪くなる場合がある。そこで、本発明者は、電源投入時、さらに通常動作時に各クロック信号の位相を自動制御してシステムを安定動作させる方法を考え付いた。
【０００８】
そこで、本発明の目的は、回路規模を大きくすることなく、温度や電源電圧の変動などの環境変化による誤動作の防止に対応でき、常に一定の位相関係の複数のクロック信号をシステムボード上の各機能デバイスに供給することができるクロック信号発生用の半導体装置、およびそれを搭載したシステムボード、ならびにシステムの動作制御方法を提供することにある。
【０００９】
また、本発明の他の目的は、クロック信号発生用の半導体装置から出力される一定位相関係のクロック信号を用いて、温度や電源電圧などの使用条件によらず、常に安定に動作させることができるシステムボード、ならびにシステムの動作制御方法を提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【００１１】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１２】
本発明は、クロック信号発生用の半導体装置に適用され、外部のＣＰＵとメモリとの各デバイスに供給する各クロック信号を生成するクロック生成回路と、ＣＰＵとメモリとの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、クロック生成回路で生成した各デバイスに供給する各クロック信号の遅延量を電源投入時にチューニングする手段とを有するものである。さらに、チューニングのタイミングとして、所定時間経過後またはエラー発生時などを含み、電源投入時の他に所定時間経過後またはエラー発生時などにチューニングを行うようにしたものである。さらに、外部のデバイスとして、グラフィックプロセッサ、ＰＣＩなどを含み、ＣＰＵとメモリとの他にグラフィックプロセッサとＰＣＩなどの各デバイスに供給する各クロック信号のチューニングを行うようにしたものである。これにより、周期的または調整が必要とされるタイミングで、出力するクロック信号の自動位相調整を行うため、常に一定の位相関係の複数のクロック信号を外部（システムボード上）の各デバイスに供給することができるようになる。
【００１３】
また、本発明は、前記のクロック信号発生用の半導体装置と、ＣＰＵ、メモリ、グラフィックプロセッサ、ＰＣＩなどの各デバイスを搭載したシステムボードに適用され、同様に、ＣＰＵとメモリとグラフィックプロセッサとなどの各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時にチューニングするものである。これにより、クロック信号発生用の半導体装置が一定位相関係のクロック信号を常時出力するため、各デバイスを搭載したシステムボードを、温度や電源電圧などの使用条件によらず、常に安定に動作させることができるようになる。
【００１４】
また、本発明は、前記の、クロック信号発生用の半導体装置、ＣＰＵ、メモリ、グラフィックプロセッサ、ＰＣＩなどの各デバイスを搭載したシステムの動作制御方法に適用され、ＣＰＵとメモリとグラフィックプロセッサとＰＣＩなどの各デバイスに供給する各クロック信号の遅延量を電源投入時と所定時間経過後またはエラー発生時に行うチューニングを、ＢＩＯＳまたはＯＳのソフトウェアを用いてシリアルバスを介したシリアル入力により実行するものである。これにより、ソフトウェアを用いてクロック信号の自動位相調整を行うことができ、常に一定の位相関係の複数のクロック信号をシステムの各デバイスに供給して、各デバイスを搭載したシステムを常に安定に動作させることができるようになる。
【００１５】
具体的に、本発明においては、クロック発生部の出力信号の位相をシステム動作テスト結果を基に最適化するものである。システム動作テストは、ＣＰＵが他のデバイス（メモリ、グラフィックプロセッサ、ＰＣＩなど）に対して行う動作テストプログラムにより実行する。位相調整は、クロック発生部の出力部に遅延時間を任意に設定できるプログラマブル遅延回路（複数バッファ直列で段数選択可能な回路）を設け、遅延時間設定を変更して行う。上記遅延回路の設定を０からＮまで変え、各設定毎に動作テストを実行し、その結果を基に正常動作する設定領域を求め、全てスキャンした後にテスト結果を基に最適値を求め、その値を遅延回路の設定値とする。遅延回路の設定は、電源ＯＮ時およびその後のある期間後またはエラー発生時（システムダウンしないような小さなエラー）毎に上記システム動作テストを実行し、その結果に応じて再設定を繰り返すことによって可能となる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
【００１７】
（実施の形態１）
まず、図１により、本発明の実施の形態１の半導体装置の構成の一例を説明する。図１は本実施の形態の半導体装置のブロック図を示す。
【００１８】
本実施の形態の半導体装置は、たとえばＰＣマザーボードに搭載されるクロック信号発生用のＬＳＩ（デバイス）とされ、ＰＣマザーボード上においてはクロック信号を発生するクロック発生部１として機能する部分である。ＰＣマザーボード上には、このクロック信号発生用のデバイスの他に、ＣＰＵ、ＳＤＲＡＭ（メモリ）、ＡＧＰ（ＰＣマザーボード上に実装されたグラフィックプロセッサ、またはＡＧＰスロット及びＡＧＰスロットに装着されたグラフィックカード）、ＰＣＩ（ＰＣＩスロット及びＰＣＩスロットに装着されたＳＣＳＩ等の拡張カード）、ノースブリッジ、サウスブリッジ、ＢＩＯＳ、クロックバッファなどの各デバイスが搭載され、これらの各デバイスはクロック発生部１から各種クロック信号を受けてＰＣマザーボードの機能を実現するシステム部２として機能する部分である。
【００１９】
このクロック信号発生用のＬＳＩによるクロック発生部１は、発振周波数（ＯＳＣ）を入力とするＭ分周回路１１と、ＰＬＬのフィードバックループを構成するＮ分周回路１２と、原クロック信号を生成するＰＬＬ回路１３と、原クロック信号を分周して各種周波数のクロック信号を生成するクロック生成回路１４と、各クロック信号を制御信号に対応して遅延する複数（図１では４個の例）のプログラマブル遅延回路１５〜１８と、プログラマブル遅延回路１５〜１８に供給する制御信号を生成する遅延制御回路１９と、マザーボード上の各デバイスとデータをやり取りするための通信用インタフェース２０と、各デバイスとやり取りするデータを記憶するレジスタ２１などから構成される。このクロック発生部１の構成は、遅延制御をハードウェアで処理する一例である。
【００２０】
このクロック発生部１においては、入力された発振周波数（ＯＳＣ）をＭ分周回路１１によりＭ分周してＰＬＬ回路１３に入力し、またＰＬＬ回路１３の出力周波数をＮ分周回路１２によりＮ分周してＰＬＬ回路１３にフィードバックし、このＰＬＬ回路１３において原クロック信号を生成する。さらに、原クロック信号をクロック生成回路１４において分周して各種周波数のクロック信号を生成し、これらの各クロック信号はそれぞれプログラマブル遅延回路１５〜１８を介して出力される。
【００２１】
これらのプログラマブル遅延回路１５〜１８においては、システム動作テストの結果を基に各クロック信号が一定の位相関係に最適化される。すなわち、遅延制御回路１９では、システム部２の各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、各デバイスに供給する各クロック信号をチューニングした遅延量を反映した制御信号を生成し、これらの各制御信号を各プログラマブル遅延回路１５〜１８に供給することにより、各クロック信号を各制御信号に対応して遅延し、クロック発生部１から出力する各クロック信号の位相関係を最適化することができる。このシステム動作テストのテストタイミング信号、最適化するためのチューニング信号は、遅延制御回路１９に対してシステム部２のＣＰＵ内の動作テスト部から供給されるが、これについての詳細は後述する。
【００２２】
システム部２は、全体の演算処理を司るＣＰＵ３１と、各種データなどを記憶するＳＤＲＡＭ３２と、グラフィックプロセッサ用のＡＧＰ３３と、ＰＣＩカード用のＰＣＩ３４と、相互の情報通信を制御するノースブリッジ３５およびサウスブリッジ３６と、ハードウェアに依存する制御プログラムからなるＢＩＯＳ３７と、クロックバッファ３８などの各デバイスから構成される。
【００２３】
このシステム部２においては、クロック発生部１の各プログラマブル遅延回路１５〜１８から出力された各クロック信号が、それぞれＣＰＵ３１、ＳＤＲＡＭ３２、ＡＧＰ３３、ＰＣＩ３４などに供給され、回路動作の同期をとるために用いられる。ＳＤＲＡＭ３２に対しては、クロックバッファ３８を経由して供給されるが、クロックバッファ３８を使用しない場合にはプログラマブル遅延回路１６からＳＤＲＡＭ３２に対して直接供給される。
【００２４】
ＣＰＵ３１には、クロック発生部１とデータをやり取りするための通信用インタフェース３９と、クロック発生部１とやり取りするデータを記憶するレジスタ４０と、マザーボード上の各デバイスの動作タイミングの相対的なずれが所定範囲に入るように、各デバイスに供給する各クロック信号の遅延量を電源投入時、所定時間経過後、エラー発生時などにチューニングする手段を含む動作テスト部４１などが備えられている。
【００２５】
次に、図２により、プログラマブル遅延回路の構成の一例を説明する。図２はプログラマブル遅延回路の回路図を示す。
【００２６】
プログラマブル遅延回路１５〜１８は、それぞれ、バッファＢＦ１〜ＢＦｎと切替えスイッチＳＷ１〜ＳＷｎとがそれぞれ対となって複数個が縦続接続され、各バッファＢＦ１〜ＢＦｎの入力端子と各切替えスイッチＳＷ１〜ＳＷｎの一方の切替え端子とが接続され、各バッファＢＦ１〜ＢＦｎの出力端子と各切替えスイッチＳＷ１〜ＳＷｎの他方の切替え端子とが接続され、各切替えスイッチＳＷ１〜ＳＷｎの共通端子から次段のバッファＢＦ２〜ＢＦｎの入力端子に接続されて構成される。初段のバッファＢＦ１には、クロック生成回路１４からの遅延調整前のクロック信号が供給され、終段の切替えスイッチＳＷｎから遅延調整後のクロック信号が出力される。各切替えスイッチＳＷ１〜ＳＷｎは、遅延制御回路１９からの制御信号により、バッファＢＦ１〜ＢＦｎを経由するか経由しないかが切り替えられ、バッファＢＦ１〜ＢＦｎの接続段数が選択可能となっている。
【００２７】
次に、図３により、遅延制御回路の構成の一例を説明する。図３は遅延制御回路のブロック図を示す。
【００２８】
遅延制御回路は、テストタイミング信号（クロック信号）を入力とするカウンタＣＯＵ１と、チューニング信号を入力としてＵｐ／Ｄｏｗｎパルスを生成するカウンタＣＯＵ２と、カウンタＣＯＵ１によるカウント値ｋを入力とするレジスタ（０）ＲＥＧ１と、レジスタ（０）ＲＥＧ１の値、カウンタＣＯＵ２によるＵｐ／Ｄｏｗｎパルスおよびリセット信号を入力とするレジスタ（１）ＲＥＧ２，（２）ＲＥＧ３と、レジスタ（１）ＲＥＧ２，（２）ＲＥＧ３の値ｋ１，ｋ２を入力とする加算器ＡＤＤ１と、加算器ＡＤＤ１の出力を１／２にする割算器ＤＩＶ１などから構成され、割算器ＤＩＶ１の出力はカウンタＣＯＵ１の他方の入力にフィードバックされ、カウンタＣＯＵ１からカウンタ出力が取り出される。なお、レジスタ（２）ＲＥＧ３には、カウンタＣＯＵ２によるＵｐ／ＤｏｗｎパルスはインバータＩＮＶ１を介して入力される。
【００２９】
次に、図４により、プログラマブル遅延回路における、遅延調整前のクロック信号と遅延調整後のクロック信号との位相関係の一例を説明する。図４はクロック信号の位相関係を説明するための図で、（ａ）は遅延調整前のクロック信号の位相、（ｂ）はＯＫの遅延調整後のクロック信号の位相、（ｃ）はＮＧの遅延調整後のクロック信号の位相をそれぞれ示す。
【００３０】
クロック発生部１の各プログラマブル遅延回路１５〜１８には、たとえば図４（ａ）のような、ＬｏｗからＨｉｇｈへの立ち上がりエッジが一致した位相関係のクロック信号が入力される。これに対して、各プログラマブル遅延回路１５〜１８から出力されるクロック信号の位相について、システム部２が正常に動作するには、図４（ｂ）に示すような仕様に応じた位相関係が必要である。この位相関係は、各プログラマブル遅延回路１５〜１８での遅延時間を調節して実現する。しかし、もし設定が一定で変更できないとすると、プロセスのばらつき、または使用時の温度や電源電圧などの変化により、図４（ｃ）のように不具合を招く位相関係になる恐れがある。
【００３１】
この問題点を解決するために、本実施の形態では、前述のようにクロック発生部１にプログラマブル遅延回路１５〜１８および遅延制御回路１９、システム部２のＣＰＵ３１には自動位相調整動作テストプログラムなどにより動作する動作テスト部４１を設けている。自動位相調整動作テストプログラムによる各クロック信号の遅延量のチューニングは、ＢＩＯＳまたはＯＳのソフトウェアを用いて通信用バスを介したシリアル入力により実行される。
【００３２】
動作テスト部４１は、電源投入時に、まず動作テスト期間に入り、遅延制御回路１９は遅延制御データを初期値に設定し、その後、動作テスト部４１はＣＰＵ３１、ＳＤＲＡＭ３２、ＡＧＰ３３、ＰＣＩ３４などの各デバイスの機能および通信チェックを行い、その結果を遅延制御回路１９にフィードバックする。この遅延制御データを変更して上記テストを順次実行し、テストＯＫとなる遅延制御データの範囲を求め、遅延制御データの最適値を決定する。全テスト終了後、遅延制御回路１９はその結果を基に遅延制御データを生成し、各プログラマブル遅延回路１５〜１８に供給する。その後、上記テストは、ある周期またはエラー発生時に順次行い、常にクロック信号が最適位相になるようにフィードバック制御する。各プログラマブル遅延回路１５〜１８は、制御信号に基づきクロック信号の遅延時間を変更する。
【００３３】
次に、図５および図６により、自動位相調整動作テストの手順の一例を詳細に説明する。図５は自動位相調整動作テストのフロー図、図６は自動位相調整動作テストのタイミング図をそれぞれ示す。
【００３４】
まず、電源をＯＮした後に（ステップＳ１）、リセット信号を発生してカウンタＣＯＵ１／レジスタＲＥＧ１〜ＲＥＧ３を初期化する（ステップＳ２）。この際に、カウンタＣＯＵ１／レジスタＲＥＧ１〜ＲＥＧ３にデフォルト値ｋ０を設定する。そして、ＰＬＬ回路１３がロックした後に（ステップＳ３）、動作テスト部４１の自動位相調整動作テストプログラムによるチューニングの開始となる（ステップＳ４）。このチューニングは、テストタイミング信号に同期して実行される。
【００３５】
チューニング（テスト１回目）は、まずチューニング信号によるカウンタ値Ｄｏｗｎ期間において、テストを実行し（ステップＳ５）、このテスト結果＝ＯＫか否かを判定する（ステップＳ６）。この結果がＯＫの時（ＹＥＳ）はカウンタ値ｋ＞０か否かを判定する（ステップＳ７）。この判定の結果、カウンタ値ｋ＞０の時（ＹＥＳ）は、ｋ＝ｋ−１を実行した後に（ステップＳ８）、ステップＳ５のテスト実行からの処理を繰り返す。
【００３６】
そして、ステップＳ６の判定の結果がＮＧの時（ＮＯ）や、ステップＳ７の判定の結果がカウンタ値ｋ＞０でない時（ＮＯ）は、カウンタ値Ｄｏｗｎ期間におけるＮＧ検出として、レジスタ（１）ＲＥＧ２にカウンタ値ｋ１を記録する（ステップＳ９）。その後、ｋ＝初期値としてテスト開始時の設定を行う（ステップＳ１０）。たとえば、テスト１回目はｋ０となる。
【００３７】
続いて、同じように、カウンタ値Ｕｐ期間において、テストを実行し（ステップＳ１１）、このテスト結果＝ＯＫか否かを判定する（ステップＳ１２）。この結果がＯＫの時（ＹＥＳ）はカウンタ値ｋ＜Ｎか否かを判定する（ステップＳ１３）。この判定の結果、カウンタ値ｋ＜Ｎの時（ＹＥＳ）は、ｋ＝ｋ＋１を実行した後に（ステップＳ１４）、ステップＳ１１のテスト実行からの処理を繰り返す。
【００３８】
そして、ステップＳ１２の判定の結果がＮＧの時（ＮＯ）や、ステップＳ１３の判定の結果がカウンタ値ｋ＜Ｎでない時（ＮＯ）は、カウンタ値Ｕｐ期間におけるＮＧ検出として、レジスタ（２）ＲＥＧ３にカウンタ値ｋ２を記録する（ステップＳ１５）。その後、カウンタ値をｋ１，ｋ２の平均値に変更する（ステップＳ１６）。すなわち、ｋ＝（ｋ１＋ｋ２）／２＝ｋ３とする。
【００３９】
さらに、自動位相調整動作テストプログラムによるチューニングの終了後は、各プログラマブル遅延回路１５〜１８に設定値＝（ｋ１＋ｋ２）／２を設定し（ステップＳ１７）、システムを通常動作させる（ステップＳ１８）。
【００４０】
このシステムの通常動作中に、たとえばシステムがダウンしないような小さなエラーが発生した場合（ステップＳ１９）や、一定時間経過後の定期的な再テストモード時（ステップＳ２０）には、再び前述のステップＳ４のチューニング開始からの処理を繰り返して、自動位相調整動作テストを実行する。
【００４１】
エラーが発生した場合、または一定時間経過後の定期的な再テストモード時のチューニング（テスト２回目）は、テスト１回目と同様に、カウンタ値Ｄｏｗｎ期間におけるＮＧ検出としてレジスタ（１）ＲＥＧ２にカウンタ値ｋ１’、カウンタ値Ｕｐ期間におけるＮＧ検出としてレジスタ（２）ＲＥＧ３にカウンタ値ｋ２’をそれぞれ記録し、カウンタ値をｋ＝（ｋ１’＋ｋ２’）／２＝ｋ３’の平均値に変更して、各プログラマブル遅延回路１５〜１８に設定値＝（ｋ１’＋ｋ２’）／２を設定することによって可能となる。
【００４２】
従って、本実施の形態によれば、遅延時間を任意に設定できるプログラマブル遅延回路１５〜１８を設け、電源ＯＮ時、エラー発生時、一定時間経過後毎に、ＣＰＵ３１が他のデバイスに対して行う動作テストプログラムによりシステム動作テストを実行し、その結果に応じてプログラマブル遅延回路１５〜１８の遅延時間の再設定を繰り返すことにより、クロック発生部１のクロック信号の位相を最適化することができる。
【００４３】
これにより、周期的または調整が必要とされるタイミングでクロック発生部１の出力の自動位相調整を行うため、クロック発生部１は常に一定位相関係の複数のクロック信号をシステム部２の各機能デバイスに供給することができる。この結果、クロック発生部１が一定位相関係のクロック信号を常時出力するため、マザーボードは温度や電源電圧などの使用条件によらず、常に安定に動作させることができる。
【００４４】
（実施の形態２）
まず、図７により、本発明の実施の形態２の半導体装置の構成の一例を説明する。図７は本実施の形態の半導体装置のブロック図を示す。
【００４５】
本実施の形態の半導体装置は、前記実施の形態１と同様に、たとえばＰＣマザーボードに搭載されるクロック信号発生用のＬＳＩ（デバイス）とされ、前記実施の形態１との相違点は、遅延制御をハードウェアで処理する場合に代えてソフトウェアで処理する一例を示している。
【００４６】
すなわち、本実施の形態のクロック発生部１ａは、通信用インタフェース２０ａ、レジスタ２１ａなどを備え、システム部２ａのＣＰＵ３１ａにおける動作テスト部４１ａとのデータ通信をレジスタ４０ａ、通信用インタフェース３９ａから通信用バスを通じて、通信用インタフェース２０ａを介して行うように構成されている。この場合、通信用バスの負担が増えるが、クロック発生部１ａに特別な遅延制御回路が必要ないため、一般的なクロック発生回路に応用でき、適用範囲が広くなるというメリットがある。
【００４７】
次に、図８により、自動位相調整動作テストの手順の一例を詳細に説明する。図８は自動位相調整動作テストのフロー図を示す。このフロー図では、チューニング前後の処理は前記実施の形態１と同様であるので省略している。
【００４８】
チューニングが開始されると（ステップＳ３１）、まず動作テストプログラム内のカウンタ値ｋ＝ｋ０（デフォルト値）に設定する（ステップＳ３２）。その後、カウンタ値Ｄｏｗｎ期間において、クロック発生部１ａはデータｋをレジスタ２１ａに記憶し（ステップＳ３３）、さらにデータｋを通信用バスを介してクロック発生部１ａに送信し（ステップＳ３４）、そしてレジスタ２１ａの出力をプログラマブル遅延回路１５〜１８に供給する（ステップＳ３５）。
【００４９】
さらに、テストを実行し（ステップＳ３６）、このテスト結果＝ＯＫか否かを判定する（ステップＳ３７）。この結果がＯＫの時（ＹＥＳ）はカウンタ値ｋ＞０か否かを判定する（ステップＳ３８）。この判定の結果、カウンタ値ｋ＞０の時（ＹＥＳ）は、ｋ＝ｋ−１を実行した後に（ステップＳ３９）、ステップＳ３３のデータｋのレジスタへの記憶からの処理を繰り返す。
【００５０】
そして、ステップＳ３７の判定の結果がＮＧの時（ＮＯ）や、ステップＳ３８の判定の結果がカウンタ値ｋ＞０でない時（ＮＯ）は、カウンタ値Ｄｏｗｎ期間におけるＮＧ検出として、ＣＰＵ３１ａのレジスタ（１）４０ａにカウンタ値ｋ１を記録する（ステップＳ４０）。その後、ｋ＝初期値としてテスト開始時の設定を行う（ステップＳ４１）。たとえば、テスト１回目はｋ０となる。
【００５１】
続いて、同じように、カウンタ値Ｕｐ期間において、クロック発生部１ａはデータｋをレジスタ２１ａに記憶し（ステップＳ４２）、さらにデータｋを通信用バスを介してクロック発生部１ａに送信し（ステップＳ４３）、そしてレジスタ２１ａの出力をプログラマブル遅延回路１５〜１８に供給する（ステップＳ４４）。
【００５２】
さらに、テストを実行し（ステップＳ４５）、このテスト結果＝ＯＫか否かを判定する（ステップＳ４６）。この結果がＯＫの時（ＹＥＳ）はカウンタ値ｋ＜Ｎか否かを判定する（ステップＳ４７）。この判定の結果、カウンタ値ｋ＜Ｎの時（ＹＥＳ）は、ｋ＝ｋ＋１を実行した後に（ステップＳ４８）、ステップＳ４２のデータｋのレジスタへの記憶からの処理を繰り返す。
【００５３】
そして、ステップＳ４６の判定の結果がＮＧの時（ＮＯ）や、ステップＳ４７の判定の結果がカウンタ値ｋ＜Ｎでない時（ＮＯ）は、カウンタ値Ｕｐ期間におけるＮＧ検出として、ＣＰＵ３１ａのレジスタ（２）４０ａにカウンタ値ｋ２を記録する（ステップＳ４９）。その後、ＣＰＵ３１ａのレジスタ（３）４０ａにｋ＝（ｋ１＋ｋ２）／２＝ｋ３を記憶する（ステップＳ５０）。
【００５４】
さらに、データｋ３を通信用バスを介してクロック発生部１ａに送信し、クロック発生部１ａはデータｋ３をレジスタ２１ａに記憶する（ステップＳ５１）。そして、レジスタ２１ａの出力をプログラマブル遅延回路１５〜１８に供給する（ステップＳ５２）。これにより、チューニングは終了となる（ステップＳ５３）。
【００５５】
従って、本実施の形態によれば、遅延制御をハードウェアで処理する場合に代えてソフトウェアで処理する場合でも、前記実施の形態１と同様の効果を得ることができる。特に、本実施の形態の構成では、クロック発生部１ａに特別な遅延制御回路が必要ないため、一般的なクロック発生回路に応用でき、適用範囲を広げることができる。
【００５６】
（実施の形態３）
まず、図９により、本発明の実施の形態３の半導体装置の構成の一例を説明する。図９は本実施の形態の半導体装置のブロック図を示す。
【００５７】
本実施の形態の半導体装置は、前記実施の形態１，２と同様に、たとえばＰＣマザーボードに搭載されるクロック信号発生用のＬＳＩ（デバイス）とされ、前記実施の形態１，２との相違点は、遅延制御をハードウェアとソフトウェアの両面で処理する一例を示している。
【００５８】
すなわち、本実施の形態のクロック発生部１ｂは、遅延制御回路１９ｂ、通信用インタフェース２０ｂ、レジスタ２１ｂ、選択スイッチ２２などを備え、ハードウェア／ソフトウェア両方で処理できるので、システム部２の通信用インタフェース３９ｂ、レジスタ４０ｂ、動作テスト部４１ｂを含むＣＰＵ３１ｂの負担や通信用バスの使用状況に応じてテストが可能であり、またどちらを使用するかは選択スイッチ２２により選択可能となっており、この選択はクロック発生部１ｂ内のレジスタ２１ｂに設定でき、その値は任意に変更可能なように構成されている。
【００５９】
従って、本実施の形態によれば、遅延制御をハードウェアとソフトウェアの両面で処理することで、前記実施の形態１，２と同様の効果を得ることができる。
【００６０】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６１】
たとえば、本発明は、前記実施の形態のように、クロック発生部を有するＬＳＩおよびこれを搭載したＰＣマザーボードに好適であり、さらにプリンタ用ボードなどのクロックジェネレータＬＳＩ搭載製品全般に適用することができる。
【００６２】
また、ＰＣマザーボード以外に、光ディスク、光磁気ディスク、磁気ディスクなどの情報記録媒体に対する情報記録再生装置に使用される位相調整技術として応用可能である。
【００６３】
【発明の効果】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００６４】
（１）クロック信号発生用の半導体装置において、クロック生成回路で生成した各デバイスに供給する各クロック信号の遅延量をチューニングする手段を有することで、周期的または調整が必要とされるタイミングで、出力するクロック信号の自動位相調整を行うことができるので、常に一定の位相関係の複数のクロック信号を外部（システムボード上）の各デバイスに供給することが可能となる。
【００６５】
（２）クロック信号発生用の半導体装置と、ＣＰＵ、メモリ、グラフィックプロセッサ、ＰＣＩなどの各デバイスを搭載したシステムボードにおいて、前記（１）と同様にチューニングを行うことで、クロック信号発生用の半導体装置が一定位相関係のクロック信号を常時出力することができるので、各デバイスを搭載したシステムボードを、温度や電源電圧などの使用条件によらず、常に安定に動作させることが可能となる。
【００６６】
（３）クロック信号発生用の半導体装置、ＣＰＵ、メモリ、グラフィックプロセッサ、ＰＣＩなどの各デバイスを搭載したシステムの動作制御方法において、前記（１）と同様のチューニングをＢＩＯＳまたはＯＳのソフトウェアを用いて実行することで、ソフトウェアを用いてクロック信号の自動位相調整を行うことができるので、常に一定の位相関係の複数のクロック信号をシステムの各デバイスに供給して、各デバイスを搭載したシステムを常に安定に動作させることが可能となる。
【００６７】
（４）前記（１），（２），（３）により、回路規模を大きくすることなく、温度や電源電圧の変動などの環境変化による誤動作の防止に対応することができるクロック信号発生用の半導体装置、およびそれを搭載したシステムボード、ならびにシステムの動作制御方法を提供することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の半導体装置を示すブロック図である。
【図２】本発明の実施の形態１の半導体装置において、プログラマブル遅延回路を示す回路図である。
【図３】本発明の実施の形態１の半導体装置において、遅延制御回路を示すブロック図である。
【図４】（ａ），（ｂ），（ｃ）は本発明の実施の形態１の半導体装置において、プログラマブル遅延回路における、遅延調整前のクロック信号と遅延調整後のクロック信号との位相関係を示す説明図である。
【図５】本発明の実施の形態１の半導体装置において、自動位相調整動作テストを示すフロー図である。
【図６】本発明の実施の形態１の半導体装置において、自動位相調整動作テストを示すタイミング図である。
【図７】本発明の実施の形態２の半導体装置を示すブロック図である。
【図８】本発明の実施の形態２の半導体装置において、自動位相調整動作テストを示すフロー図である。
【図９】本発明の実施の形態３の半導体装置を示すブロック図である。
【符号の説明】
１，１ａ，１ｂ　クロック発生部
２，２ａ，２ｂ　システム部
１１　Ｍ分周回路
１２　Ｎ分周回路
１３　ＰＬＬ回路
１４　クロック生成回路
１５〜１８　プログラマブル遅延回路
１９，１９ｂ　遅延制御回路
２０，２０ａ，２０ｂ　通信用インタフェース
２１，２１ａ，２１ｂ　レジスタ
２２　選択スイッチ
３１，３１ａ，３１ｂ　ＣＰＵ
３２　ＳＤＲＡＭ
３３　ＡＧＰ
３４　ＰＣＩ
３５　ノースブリッジ
３６　サウスブリッジ
３７　ＢＩＯＳ
３８　クロックバッファ
３９，３９ａ，３９ｂ　通信用インタフェース
４０，４０ａ，４０ｂ　レジスタ
４１，４１ａ，４１ｂ　動作テスト部
【図１】
2004046395.tif 000003
【図２】
2004046395.tif 000004
【図３】
2004046395.tif 000005
【図４】
2004046395.tif 000006
【図５】
2004046395.tif 000007
【図６】
2004046395.tif 000008
【図７】
2004046395.tif 000009
【図８】
2004046395.tif 000010
【図９】
2004046395.tif 000011