(57)【特許請求の範囲】
【請求項１】
送信側装置から受信側装置へのデータ転送が所定数のクロックサイクルにおいて最適化されるように、該送信側装置においてデータをデータバスへ送出する送信ラッチに対するクロックの位相と、該受信側装置において前記データを該データバスから受信する受信ラッチに対するクロックの位相とを自動的にチューニングする方法であって、
該送信側装置において該送信ラッチに対するクロックの位相を調整するステップと、
該送信側装置においてクロック位相チェック用のデータパターンを生成するステップと、
該送信側装置において、前記データパターンを、該送信ラッチを通じて該データバスへ送出するように、回路の切替を行なうステップと、
該受信側装置において該受信ラッチに対するクロックの位相を調整するステップと、
該受信側装置において、該受信ラッチで受信した該送信側装置からの前記データパターンに基づき、該送信側装置から該受信側装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否かを検証するステップと、
その検証結果に応じて、該送信側装置から該受信側装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されるように、該送信ラッチに対するクロックの位相および該受信ラッチに対するクロックの位相を調整するステップとからなることを特徴とする、クロック自動チューニング方法。
【請求項２】
第１装置と第２装置との間でのデータ転送が所定数のクロックサイクルにおいて最適化されるように、該第１装置においてデータをデータバスへ送出する第１送信ラッチに対するクロックの位相と、該第１装置においてデータをデータバスから受信する第１受信ラッチに対するクロックの位相と、該第２装置においてデータをデータバスへ送出する第２送信ラッチに対するクロックの位相と、該第２装置においてデータをデータバスから受信する第２受信ラッチに対するクロックの位相とを自動的にチューニングするシステムであって、
該第１装置において該第１送信ラッチおよび該第１受信ラッチに対するクロックの位相を調整する第１クロック位相調整回路と、
該第２装置において該第２送信ラッチおよび該第２受信ラッチに対するクロックの位相を調整する第２クロック位相調整回路と、
該第１装置においてクロック位相チェック用の第１データパターンを生成する第１データパターン生成回路と、
該第２装置においてクロック位相チェック用の第２データパターンを生成する第２データパターン生成回路と、
該第１装置において、該第１データパターン生成回路で生成された前記第１データパターンを、該第１送信ラッチを通じてデータバスへ送出するように、回路の切替を行なう第１切替回路と、
該第２装置において、該第２データパターン生成回路で生成された前記第２データパターンを、該第２送信ラッチを通じてデータバスへ送出するように、回路の切替を行なう第２切替回路と、
該第１装置において、該第１受信ラッチで受信した該第２装置からの前記第２データパターンに基づき、該第２装置から該第１装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否かを検証する第１データパターン検証回路と、
該第２装置において、該第２受信ラッチで受信した該第１装置からの前記第１データパターンに基づき、該第１装置から該第２装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否かを検証する第２データパターン検証回路と、
該第１データパターン検証回路および該第２データパターン検証回路による検証結果に応じて該第１クロック位相調整回路および該第２クロック位相調整回路をそれぞれ制御することにより、該第１装置と該第２装置との間でのデータ転送が前記所定数のクロックサイクルにおいて最適化されるように、該第１送信ラッチに対するクロックの位相，該第１受信ラッチに対するクロックの位相，該第２送信ラッチに対するクロックの位相および該第２受信ラッチに対するクロックの位相を調整するクロック自動チューニング制御回路とをそなえて構成されたことを特徴とする、クロック自動チューニング制御システム。
【請求項３】
該第１装置において、該第１データパターン検証回路が、該第１送信ラッチの直前のラッチから該第１送信ラッチへの装置内データ転送、および、該第１受信ラッチから該第１受信ラッチの直後のラッチへの装置内データ転送が前記所定数のクロックサイクルにおいて最適化されているか否かを検証するとともに、
該第２装置において、該第２データパターン検証回路が、該第２送信ラッチの直前のラッチから該第２送信ラッチへの装置内データ転送、および、該第２受信ラッチから該第２受信ラッチの直後のラッチへの装置内データ転送が前記所定数のクロックサイクルにおいて最適化されているか否かを検証し、
該クロック自動チューニング制御回路が、該第１データパターン検証回路および該第２データパターン検証回路による装置内データ転送の検証結果を加味して該第１クロック位相調整回路および該第２クロック位相調整回路をそれぞれ制御することにより、該第１装置および該第２装置における装置内データ転送が１クロックで行なわれるように、該第１送信ラッチに対するクロックの位相，該第１受信ラッチに対するクロックの位相，該第２送信ラッチに対するクロックの位相および該第２受信ラッチに対するクロックの位相を調整することを特徴とする、請求項２記載のクロック自動チューニング制御システム。
【請求項４】
該第１装置において、該第１送信ラッチの直前のラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該直前のラッチに再入力するインバータと、該第１受信ラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該第１受信ラッチに再入力するインバータとをそなえるとともに、
該第２装置において、該第２送信ラッチの直前のラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該直前のラッチに再入力するインバータと、該第２受信ラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該第２受信ラッチに再入力するインバータとをそなえたことを特徴とする、請求項３記載のクロック自動チューニング制御システム。
【請求項５】
複数の構成装置からなり、該複数の構成装置間でのデータ転送が所定数のクロックサイクルにおいて最適化されるように、各構成装置において、データをデータバスへ送出する送信ラッチに対するクロックの位相とデータをデータバスから受信する受信ラッチに対するクロックの位相とを自動的にチューニングする情報処理装置であって、
各構成装置が、
該送信ラッチおよび該受信ラッチに対するクロックの位相を調整するクロック位相調整回路と、
クロック位相チェック用のデータパターンを生成するデータパターン生成回路と、
該データパターン生成回路で生成された前記データパターンを、該送信ラッチを通じてデータバスへ送出するように、回路の切替を行なう切替回路と、
該受信ラッチで受信した他の構成装置からのデータパターンに基づき、該他の構成装置から当該構成装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否かを検証するデータパターン検証回路とをそなえて構成されるとともに、
各構成装置における該データパターン検証回路による検証結果に応じて各構成装置における該クロック位相調整回路をそれぞれ制御することにより、該複数の構成装置間でのデータ転送が前記所定数のクロックサイクルにおいて最適化されるように、各構成装置における該送信ラッチに対するクロックの位相および該受信ラッチに対するクロックの位相を調整するクロック自動チューニング制御回路をそなえたことを特徴とする、情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、データのやり取りを相互に行なう複数の構成装置からなる情報処理システムにおいて、これらの構成装置間でのデータ転送が１クロックで確実に行なわれるように、各構成装置内の送信ラッチや受信ラッチに対するクロックの位相を自動的にチューニングする、クロック自動チューニング方法およびクロック自動チューニング制御システム並びに情報処理装置に関する。
【０００２】
【従来の技術】
一般に、情報処理システムは、例えば１台の制御装置に複数の構成装置（ＣＰＵ等）を接続した、クラスタとして構成されている。
そして、このような情報処理システムでは、位相の異なる複数種類のシステムクロックを用いることにより、構成装置間でのデータ転送を所定数のクロックサイクル（例えば１クロックサイクル）以内で確実に行なえるようにして、データ転送の効率化をはかることが行なわれている。
【０００３】
具体的に説明すると、構成装置間のデータバスの長さに応じたデータの転送遅れを見越して、送信側の構成装置においてデータをデータバスへ送出する送信ラッチには、通常のシステムクロック〔Ｎ(Normal)クロック〕よりも若干位相の進んだシステムクロック〔Ｅ(Early）クロック〕を供給するとともに、受信側の構成装置においてデータをデータバスから受信する受信ラッチには、通常のシステムクロックよりも若干位相の遅れたシステムクロック〔Ｌ(Late)クロック〕を供給する。
【０００４】
これにより、送信側から受信側へ送るべきデータは、送信ラッチから若干早めにデータバスへ送出され、受信ラッチでは若干遅めにデータバスから取り込まれることになる。
このように送信バッファや受信バッファに対するシステムクロックの位相を調整することで、データバスの長さに起因するデータの転送遅れの影響を受けることなく、構成装置間でのデータ転送を所定数のクロックサイクル以内で確実に行なうことが可能になる。なお、上述のようなシステムクロックの位相調整は、当然、各構成装置内でのデータ転送に不具合が生じないように行なわれる。
【０００５】
上述のようなシステムクロックの相対位相調整または絶対位相調整は、通常、情報処理システムをユーザ先に出荷する前に、クロックチューニング専用テスタを用いて人手により行なわれ、上記複数種類のシステムクロックの位相関係が最適化（クロックチューニング）されている。
ところで、情報処理システムの規模の拡大に伴い、その情報処理システムに対して構成装置単位で増設や置換を行なうことは、情報処理システムの性能向上あるいは保守のための、有効かつ重要な手段となっている。このような増設や置換の対象となる部分が中央処理装置（ＣＰＵ）の一部である場合、その増設／置換作業は、迅速に行なわれることはもとより、特に高い信頼性をもって行なわれなければならない。そのためには、上記増設／置換作業を情報処理システムのユーザ先で容易に行なえるようにする必要がある。
【０００６】
上記増設／置換作業の容易化を実現するためには、増設／置換される装置がどのような機能を有していても（特に置換される装置については、置換前の装置と同一機能を有するものであれ新たな付加機能を有するものであれ）、その増設／置換作業の後も、構成装置間でのデータ転送を所定数のクロックサイクル以内で確実に行なうことが可能で、且つ、各構成装置内でのデータ転送に不具合が生じないように、複数のシステムクロックの位相関係を最適化できるようにしなければならない。
【０００７】
そこで、動作マージン保証と呼ばれる手法が採用されている。つまり、前述のようにクロックチューニング専用テスタを用いて人手によりクロックチューニングを行なう際に、上記複数のシステムクロックの位相関係が最適である範囲を大きく確保することにより、増設／置換対象の装置の物理的なバラツキあるいはその機能によるバラツキを吸収できるようにしている。従って、上述のような動作マージンには、実運用時に必要な動作マージン以外に、上記増設／置換作業時に対応できる動作マージンをも含むものとなっている。
【０００８】
【発明が解決しようとする課題】
しかしながら、従来、クロックチューニングは、前述したごとく、情報処理システムの出荷前にクロックチューニング専用テスタを用いて人手により行なわれているので、多大な労力を要している。
また、前述のように、実運用時に必要な動作マージンを保証するだけでなく、情報処理システムの設置後に増設／置換される装置を想定した動作マージンを保証しながらクロックチューニングを行なっているため、実際に必要な動作マージンよりもかなり大きな動作マージンを保証することになる。従って、システム規模の拡大やシステムの動作周波数の増大に伴って、動作周波数に対する動作マージンの比率が高くなり、動作マージンを保証することが困難化している。逆に、このような動作マージンの保証範囲を拡大するために、動作周波数の低減といったシステムの性能を抑え込む必要が生じる場合がある。
【０００９】
システム構成を変更する都度、変更された装置に応じて複数のシステムクロックの位相関係を最適化できるのであれば、増設／置換される装置を想定した無駄な動作マージンの保証は不要にすることができ、ひいては、システム性能に見合った動作周波数を設定することが可能になりシステム性能を抑え込む必要もなくなる。
【００１０】
本発明は、このような課題に鑑み創案されたもので、システムの設置時や増設／置換時にクロックの位相関係を自動で迅速に最適化できるようにして、クロックチューニングに要する労力を削減するとともに、無駄な動作マージンの保証を不要にして実運用時に必要な動作マージンのみを保証しシステム性能を最大限発揮できるようにした、クロック自動チューニング方法およびクロック自動チューニング制御システム並びに情報処理装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明のクロック自動チューニング方法は、送信側装置から受信側装置へのデータ転送が所定数のクロックサイクルにおいて最適化されるように（所定数のクロックサイクル以内で行なわれるように）、該送信側装置においてデータをデータバスへ送出する送信ラッチに対するクロックの位相と、該受信側装置において前記データを該データバスから受信する受信ラッチに対するクロックの位相とを自動的にチューニングする方法であって、該送信側装置において該送信ラッチに対するクロックの位相を調整するステップと、該送信側装置においてクロック位相チェック用のデータパターンを生成するステップと、該送信側装置において前記データパターンを該送信ラッチを通じて該データバスへ送出するように回路の切替を行なうステップと、該受信側装置において該受信ラッチに対するクロックの位相を調整するステップと、該受信側装置において該受信ラッチで受信した該送信側装置からの前記データパターンに基づき該送信側装置から該受信側装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否か（前記所定数のクロックサイクル以内で行なわれているか否か）を検証するステップと、その検証結果に応じて該送信側装置から該受信側装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されるように（前記所定数のクロックサイクル以内で行なわれるように）該送信ラッチに対するクロックの位相および該受信ラッチに対するクロックの位相を調整するステップとからなることを特徴としている。
【００１２】
このとき、該データパターン検証回路による検証結果に基づいて、該送信側装置から該受信側装置へのデータ転送を前記所定数のクロックサイクルにおいて最適化すること（前記所定数のクロックサイクル以内で行なうこと）が可能な、該送信ラッチに対するクロックの位相範囲および該受信ラッチに対するクロックの位相範囲が得られた場合、該送信ラッチに対するクロックの位相および該受信ラッチに対するクロックの位相を、それぞれ前記位相範囲の中央値に調整する。
【００１３】
また、本発明のクロック自動チューニング制御システムは、第１装置と第２装置との間でのデータ転送が所定数のクロックサイクルにおいて最適化されるように（所定数のクロックサイクル以内で行なわれるように）、該第１装置においてデータをデータバスへ送出する第１送信ラッチに対するクロックの位相と、該第１装置においてデータをデータバスから受信する第１受信ラッチに対するクロックの位相と、該第２装置においてデータをデータバスへ送出する第２送信ラッチに対するクロックの位相と、該第２装置においてデータをデータバスから受信する第２受信ラッチに対するクロックの位相とを自動的にチューニングするシステムであって、該第１装置において該第１送信ラッチおよび該第１受信ラッチに対するクロックの位相を調整する第１クロック位相調整回路と、該第２装置において該第２送信ラッチおよび該第２受信ラッチに対するクロックの位相を調整する第２クロック位相調整回路と、該第１装置においてクロック位相チェック用の第１データパターンを生成する第１データパターン生成回路と、該第２装置においてクロック位相チェック用の第２データパターンを生成する第２データパターン生成回路と、該第１装置において該第１データパターン生成回路で生成された前記第１データパターンを該第１送信ラッチを通じてデータバスへ送出するように回路の切替を行なう第１切替回路と、該第２装置において該第２データパターン生成回路で生成された前記第２データパターンを該第２送信ラッチを通じてデータバスへ送出するように回路の切替を行なう第２切替回路と、該第１装置において該第１受信ラッチで受信した該第２装置からの前記第２データパターンに基づき該第２装置から該第１装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否か（前記所定数のクロックサイクル以内で行なわれているか否か）を検証する第１データパターン検証回路と、該第２装置において該第２受信ラッチで受信した該第１装置からの前記第１データパターンに基づき該第１装置から該第２装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否か（前記所定数のクロックサイクル以内で行なわれているか否か）を検証する第２データパターン検証回路と、該第１データパターン検証回路および該第２データパターン検証回路による検証結果に応じて該第１クロック位相調整回路および該第２クロック位相調整回路をそれぞれ制御することにより該第１装置と該第２装置との間でのデータ転送が前記所定数のクロックサイクルにおいて最適化されるように（前記所定数のクロックサイクル以内で行なわれるように）該第１送信ラッチに対するクロックの位相，該第１受信ラッチに対するクロックの位相，該第２送信ラッチに対するクロックの位相および該第２受信ラッチに対するクロックの位相を調整するクロック自動チューニング制御回路とをそなえて構成されたことを特徴としている。
【００１４】
このとき、該第１データパターン検証回路および該第２データパターン検証回路による検証結果に基づいて、該第１装置と該第２装置との間のデータ転送を前記所定数のクロックサイクルにおいて最適化すること（前記所定数のクロックサイクル以内で行なうこと）が可能な、該第１送信ラッチに対するクロックの位相範囲，該第１受信ラッチに対するクロックの位相範囲，該第２送信ラッチに対するクロックの位相範囲および該第２受信ラッチに対するクロックの位相範囲が得られた場合、該クロック自動チューニング制御回路が、該第１送信ラッチに対するクロックの位相，該第１受信ラッチに対するクロックの位相，該第２送信ラッチに対するクロックの位相および該第２受信ラッチに対するクロックの位相を、それぞれ前記位相範囲の中央値に調整する。
【００１５】
また、該第１装置において、該第１データパターン検証回路が、該第１送信ラッチの直前のラッチから該第１送信ラッチへの装置内データ転送、および、該第１受信ラッチから該第１受信ラッチの直後のラッチへの装置内データ転送が前記所定数のクロックサイクルにおいて最適化されているか否か（前記所定数のクロックサイクル以内で行なわれているか否か）を検証するとともに、該第２装置において、該第２データパターン検証回路が、該第２送信ラッチの直前のラッチから該第２送信ラッチへの装置内データ転送、および、該第２受信ラッチから該第２受信ラッチの直後のラッチへの装置内データ転送が前記所定数のクロックサイクルにおいて最適化されているか否か（前記所定数のクロックサイクル以内で行なわれているか否か）を検証し、該クロック自動チューニング制御回路が、該第１データパターン検証回路および該第２データパターン検証回路による装置内データ転送の検証結果を加味して該第１クロック位相調整回路および該第２クロック位相調整回路をそれぞれ制御することにより、該第１装置および該第２装置における装置内データ転送が１クロックで行なわれるように、該第１送信ラッチに対するクロックの位相，該第１受信ラッチに対するクロックの位相，該第２送信ラッチに対するクロックの位相および該第２受信ラッチに対するクロックの位相を調整してもよい。
【００１６】
この場合、該第１装置において、該第１送信ラッチの直前のラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該直前のラッチに再入力するインバータと、該第１受信ラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該第１受信ラッチに再入力するインバータとをそなえるとともに、該第２装置において、該第２送信ラッチの直前のラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該直前のラッチに再入力するインバータと、該第２受信ラッチの出力を反転して装置内クロック位相チェック用のデータパターンとして該第２受信ラッチに再入力するインバータとをそなえて構成してもよい。
【００１７】
またさらに、該第１装置において、該第１データパターン生成回路により生成すべきデータパターンを保持するためのラッチと、該第１データパターン検証回路において該第２装置から受信したデータパターンを保持するためのラッチとを兼用するとともに、該第２装置において、該第２データパターン生成回路により生成すべきデータパターンを保持するためのラッチと、該第２データパターン検証回路において該第１装置から受信したデータパターンを保持するためのラッチとを兼用してもよい。
【００１８】
さらに、本発明の情報処理装置は、複数の構成装置からなり、該複数の構成装置間でのデータ転送が所定数のクロックサイクルにおいて最適化されるように（所定数のクロックサイクル以内で行なわれるように）、各構成装置において、データをデータバスへ送出する送信ラッチに対するクロックの位相とデータをデータバスから受信する受信ラッチに対するクロックの位相とを自動的にチューニングするものであって、各構成装置が、該送信ラッチおよび該受信ラッチに対するクロックの位相を調整するクロック位相調整回路と、クロック位相チェック用のデータパターンを生成するデータパターン生成回路と、該データパターン生成回路で生成された前記データパターンを該送信ラッチを通じてデータバスへ送出するように回路の切替を行なう切替回路と、該受信ラッチで受信した他の構成装置からのデータパターンに基づき該他の構成装置から当該構成装置へのデータ転送が前記所定数のクロックサイクルにおいて最適化されているか否か（前記所定数のクロックサイクル以内で行なわれているか否か）を検証するデータパターン検証回路とをそなえて構成されるとともに、各構成装置における該データパターン検証回路による検証結果に応じて各構成装置における該クロック位相調整回路をそれぞれ制御することにより該複数の構成装置間でのデータ転送が前記所定数のクロックサイクルにおいて最適化されるように（前記所定数のクロックサイクル以内で行なわれるように）各構成装置における該送信ラッチに対するクロックの位相および該受信ラッチに対するクロックの位相を調整するクロック自動チューニング制御回路をそなえたことを特徴としている。
【００１９】
このとき、該データパターン検証回路による検証結果に基づいて、該複数の構成装置間でのデータ転送を前記所定数のクロックサイクルにおいて最適化すること（前記所定数のクロックサイクル以内で行なうこと）が可能な、該送信ラッチに対するクロックの位相範囲および該受信ラッチに対するクロックの位相範囲が得られた場合、該クロック自動チューニング制御回路が、該送信ラッチに対するクロックの位相および該受信ラッチに対するクロックの位相を、それぞれ前記位相範囲の中央値に調整する。
【００２０】
また、該クロック自動チューニング制御回路が、該情報処理装置の立ち上げ時に、該情報処理装置の現構成と以前の構成とを比較することにより構成の変更を認識する構成情報比較機能を有し、該構成情報比較機能により構成の変更を認識した場合に該情報処理装置を対象としたクロック自動チューニングを実行してもよい。
【００２１】
この場合、該クロック自動チューニング制御回路が、該構成情報比較機能により該情報処理装置の構成変更箇所を特定し、特定された構成変更箇所に係る構成装置における該クロック位相調整回路，該データパターン生成回路，該切替回路および該データパターン検証回路を動作させ、該構成変更箇所のみを対象としたクロック自動チューニングを実行してもよい。
【００２２】
また、該クロック自動チューニング制御回路が、該情報処理装置においてクロック自動チューニングを既に実施しているか否かに関する自動チューニング実施情報を保持しておき、その自動チューニング実施情報を参照しクロック自動チューニングが未だ実施されていないことを認識した場合に該情報処理装置の全体を対象としたクロック自動チューニングを実行してもよい。
【００２３】
さらに、機能拡張時に新たな構成装置を接続されるリザーブデータバスと、該リザーブデータバスに接続される該新たな構成装置のデータパターン検証回路による検証結果を有効化する論理回路とをそなえてもよい。
【００２４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１１を参照しながら本実施形態を適用されるシステムについて説明する。図１１はそのシステムの全体構成の一例を示すブロック図で、この図１１に示すように、本実施形態を適用されるシステムは、ＳＶＰ（Service Processor)７０１，ＳＣＩ（System Console Interface）７０２，ＭＣＵ（Memory Control Unit)７０３，ＣＰＵ（Central Processing Unit)７０４，ＭＳＵ（Main Storage Unit)７０５およびＣＨＰ（Channel Processor)７０６を有する一般的な情報処理システムであり、制御装置として機能するＳＶＰ７０１およびＳＣＩ７０２に、構成装置としてのＭＣＵ７０３，ＣＰＵ７０４，ＭＳＵ７０５およびＣＨＰ７０６を接続して構成されている。
【００２５】
本発明の第１実施形態および第２実施形態としてのクロック自動チューニング制御システムは、上述のごとき情報処理システムを成す構成装置間でのデータ転送（装置間データ転送）が所定数のクロックサイクル以内で行なわれるように、各構成装置において、データをデータバスへ送出する送信ラッチに対するクロックの位相とデータをデータバスから受信する受信ラッチに対するクロックの位相とを自動的にチューニングするとともに、各構成装置内でのラッチ間データ転送（装置内データ転送）が所定数のクロックサイクル以内で行なわれるように各ラッチに対するクロックの位相を自動的にチューニングするものである。
【００２６】
なお、本実施形態（第１および第２実施形態）では、説明を簡単にするため、２つの構成装置を取り出して説明する。具体的には、上述したシステムを成す構成装置のうちのＭＣＵ７０３およびＣＰＵ７０４を、それぞれ第１装置（図１，図２，図６，図１３の符号１００参照）および第２装置（図１，図２，図６，図１３の符号２００参照）とし、これらの装置を対象とするクロック自動チューニングを行なう場合について説明する。
【００２７】
また、本実施形態では、上述したシステムを成すＳＶＰ７０１およびＳＣＩ７０２が、後述するクロック自動チューニング制御回路（制御部；図１，図１３の符号４００参照）として機能するように構成される。
そして、本実施形態では、図１２に示すように、ＳＶＰ７０１から送られてきたバス信号（クロック自動チューニング用の制御信号）が、ＳＣＩ７０２を経由して、構成装置７０３〜７０６内のレジスタ７０３ａ〜７０６ａに、構成装置７０３〜７０６のそれぞれについて固有の値(00)〜(06)としてセットされる。なお、ＳＶＰ７０１からＳＣＩ７０２へのバス信号には、その信号が構成装置７０３〜７０６のうちのいずれにセットされるべきかを指し示す、構成装置識別用のビットが付加されている。
【００２８】
本実施形態において、ＳＶＰ７０１からの制御信号は、バスのビットアサインにより次のように割り付けられた、７種類の信号(00)〜(06)である。
(00)  ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ
(01)  ＡＵＴＯ ＴＵＮＥ ＲＣＶ
(02)  ＡＵＴＯ ＴＵＮＥ ＳＥＮＤ
(03)  ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ
(04)  ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ
(05)  ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ
(06)  ＲＳＶ ＭＯＤＥ ＯＮ
これらの信号(00)〜(06)は、符号７０３〜７０６を付した構成装置毎に、オンまたはオフに設定可能になっている。
【００２９】
ここで、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”はクロック自動チューニング時にオン（論理値１）に設定され、信号“＋ＡＵＴＯ ＴＵＮＥ ＲＣＶ”は、装置間データ転送についてのチューニングを行なう際に、この信号をセットされる装置が受信（ＲＣＶ）側である場合にオン（論理値１）に設定され、信号“＋ＡＵＴＯ ＴＵＮＥ ＳＥＮＤ”は、装置間データ転送についてのチューニングを行なう際に、この信号をセットされる装置が送信（ＳＥＮＤ）側である場合にオン（論理値１）に設定される。
【００３０】
また、信号“＋ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”は、装置内データ転送（ラッチ間転送）についてのチューニングを行なう際にオン（論理値１）に設定され、信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”は、装置間データ転送についてのチューニングを行なう際にオン（論理値１）に設定される。
【００３１】
さらに、信号“＋ＲＳＶ ＭＯＤＥ ＯＮ”は、図５を参照しながら後述するように、機能拡張を行なうべく、リザーブデータバス３３０に接続された新たな構成装置のデータパターン検証回路１６０′（２６０′）による検証結果を有効化する際に、オン（論理値１）に設定される。
〔１〕本発明の第１実施形態の説明
まず、図２を参照しながら、本実施形態におけるシステムクロック分配系について説明する。図２は、そのシステムクロック分配系の構成を示すブロック図である。
【００３２】
この図２に示すように、本実施形態のシステムクロック分配系では、所定周波数の基準クロックがＰＬＬ(Phase Locked Loop) 回路５００によって生成され、その基準クロックが、ＳＹＳＣＤ（システムクロック分配機構）６００により、システムを成す構成装置（例えば図１１および図１２に示すＭＣＵ７０３に対応する装置）１００および構成装置（例えば図１１および図１２に示すＣＰＵ７０４に対応する装置）２００にシステムクロックとして分配されて供給される。
【００３３】
ＳＹＳＣＤ６００には、構成装置１００，２００毎にクロック位相調整回路６１０がそなえられており、各クロック位相調整回路６１０によって、構成装置１００，２００毎に、ある程度の位相調整を施されたシステムクロックが、各構成装置１００，２００に分配・供給されるようになっている。
さらに、各構成装置１００，２００内にも、複数のクロック位相調整回路１１０，２１０がそなえられており、各クロック位相調整回路１１０，２１０によって位相調整を施されたシステムクロックが、各構成装置１００，２００内におけるラッチ（図１にて後述）に分配・供給される。構成装置１００，２００毎に複数のクロック位相調整回路１１０，２１０をそなえて位相調整を行なうことにより、各構成装置１００，２００内でシステムクロックを使用する箇所に応じた位相調整を行なうことができる。
【００３４】
このようにしてシステムクロックを各ラッチに供給することにより、各構成装置１００，２００内でのデータ転送や、構成装置１００，２００間でのデータ送受信が行なわれる。
なお、システムクロックの位相調整をＳＹＳＣＤ６００内のクロック位相調整回路６１０で行なってＳＹＳＣＤ６００から直接的に各ラッチへシステムクロックを供給するように構成してもよいし、ＳＹＳＣＤ６００ではシステムクロックの分配のみを行ないシステムクロックの位相調整を各構成装置１００，２００内のクロック位相調整回路１１０，２１０で行なうように構成してもよい。
【００３５】
ついで、図１および図３〜図８を参照しながら、本発明の第１実施形態としてのクロック自動チューニング制御システムについて説明する。図１はそのクロック自動チューニング制御システムの全体構成を示すブロック図である。
図１に示すように、第１実施形態のクロック自動チューニング制御システムは、構成装置（第１装置；例えばＭＣＵ）１００における第１送信ラッチ１０２−１〜１０２−ｎおよび第１受信ラッチ１０３−１〜１０３−ｎに対するシステムクロックの位相と、構成装置（第２装置；例えばＣＰＵ）２００における第２送信ラッチ２０２−１〜２０２−ｎおよび第２受信ラッチ２０３−１〜２０３−ｎに対するシステムクロックの位相とを自動的にチューニングするものである。
【００３６】
このとき、構成装置１００と構成装置２００との間でのデータ転送（装置間データ転送）と、各構成装置１００，２００内でのラッチ間データ転送（装置内データ転送）とがいずれも所定数のクロックサイクル（本実施形態では１クロックサイクル）以内で行なわれるように、システムクロックの位相調整が行なわれる。
【００３７】
つまり、構成装置１００と構成装置２００との間でのデータ転送（装置間データ転送）が１クロックで行なわれるように、構成装置１００においてデータをｎビットのデータバス３１２へ送出する第１送信ラッチ１０２−１〜１０２−ｎに対するクロックの位相と、構成装置１００においてデータをｎビットのデータバス３２１から受信する第１受信ラッチ１０３−１〜１０３−ｎに対するクロックの位相と、構成装置２００においてデータをｎビットのデータバス３２１へ送出する第２送信ラッチ２０２−１〜２０２−ｎに対するクロックの位相と、構成装置２００においてデータをデータバス３１２から受信する第２受信ラッチ２０３−１〜２０３−ｎに対するクロックの位相とが自動的にチューニングされる。
【００３８】
これと同時に、構成装置１００内においては、第１送信ラッチ１０２−１〜１０２−ｎの直前のラッチ１０１−１〜１０１−ｎから第１送信ラッチ１０２−１〜１０２−ｎへの装置内データ転送、および、第１受信ラッチ１０３−１〜１０３−ｎからこれらの第１受信ラッチ１０３−１〜１０３−ｎの直後のラッチ１０４−１〜１０４−ｎへの装置内データ転送が１クロックで行なわれるように、第１送信ラッチ１０２−１〜１０２−ｎおよび第１受信ラッチ１０３−１〜１０３−ｎに対するクロックの位相が自動的にチューニングされる。
【００３９】
さらに、構成装置２００内においては、第２送信ラッチ２０２−１〜２０２−ｎの直前のラッチ２０１−１〜２０１−ｎから第２送信ラッチ２０２−２〜２０２−ｎへの装置内データ転送、および、第２受信ラッチ２０３−１〜２０３−ｎから第２受信ラッチ２０３−１〜２０３−ｎの直後のラッチ２０４−１〜２０４−ｎへの装置内データ転送が１クロックで行なわれるように、第２送信ラッチ２０２−１〜２０２−ｎおよび第２受信ラッチ２０３−１〜２０３−ｎに対するクロックの位相が自動的にチューニングされる。
【００４０】
上述のようなクロック自動チューニング制御を行なうために、第１実施形態におけるクロック自動チューニング制御システムは、構成装置１００に、第１クロック位相調整回路１１０，第１データパターン生成回路１２０，インバータ１３１−１〜１３１−ｎ，１３２−１〜１３２−ｎ，セレクタ１４０−１〜１４０−ｎ，セレクタ１５０−１〜１５０−ｎおよび第１データパターン検証回路１６０をそなえるとともに、構成装置２００に、第２クロック位相調整回路２１０，第２データパターン生成回路２２０，インバータ２３１−１〜２３１−ｎ，２３２−１〜２３２−ｎ，セレクタ２４０−１〜２４０−ｎ，セレクタ２５０−１〜２５０−ｎおよび第２データパターン検証回路２６０をそなえ、さらに、クロック自動チューニング制御回路（以下、制御部という場合がある）４００をそなえて構成されている。
【００４１】
第１クロック位相調整回路１１０は、構成装置１００において第１送信ラッチ１０２−１〜１０２−ｎおよび第１受信ラッチ１０３−１〜１０３−ｎに対するクロックの位相を調整するものであり、同様に、第２クロック位相調整回路２１０は、構成装置２００において第２送信ラッチ２０２−１〜２０２−ｎおよび第２受信ラッチ２０３−１〜２０３−ｎに対するクロックの位相を調整するものである。
【００４２】
前述した通り、本実施形態においても、構成装置１００，２００間のデータバス３１２，３２１の長さに応じたデータの転送遅れを見越して、送信側の構成装置１００（２００）においてデータをデータバス３１２（３２１）へ送出する送信ラッチ１０２−１〜１０２−ｎ（２０２−１〜２０２−ｎ）には、通常のシステムクロック〔Ｎ(Normal)クロック〕よりも若干位相の進んだシステムクロック〔Ｅ(Early）クロック〕が、クロック位相調整回路１１０（２１０）により供給されるとともに、受信側の構成装置２００（１００）においてデータをデータバス３１２（３２１）から受信する受信ラッチ２０３−１〜２０３−ｎ（１０３−１〜１０３−ｎ）には、通常のシステムクロックよりも若干位相の遅れたシステムクロック〔Ｌ(Late)クロック〕が、クロック位相調整回路２１０（１１０）により供給されるようになっている。
【００４３】
図６は本実施形態のクロック位相調整回路１１０，２１０の構成およびクロック位相調整手法について説明するためのブロック図であり、この図６に示すごとく、上述のような位相調整を行なうべく、クロック位相調整回路１１０，２１０は、それぞれタップセレクタ１１１，２１１をそなえて構成されている。各タップセレクタ１１１，２１１は、制御部４００により切替制御されるもので、各タップセレクタ１１１，２１１により複数のタップのうちの一つを選択することにより位相が調整される。これらのタップセレクタ１１１および２１１を用いたクロック自動チューニング手法については、図６および図７を参照しながら後述する。
【００４４】
なお、図６では、説明を簡単にするために例えば全部で７つのタップ１〜７をそなえ、各タップを選択した場合の位相調整値の大小関係が〔タップ７選択時〕＞タップ６＞〔タップ５選択時〕＞〔タップ４選択時〕＞〔タップ３選択時〕＞〔タップ２選択時〕＞〔タップ１選択時〕となるように設定されているものとする。
【００４５】
また、図６においては、タップセレクタ１１１は、Ｎクロックよりも位相の進んだＥクロックを、送信ラッチ１０２−１〜１０２−ｎに供給するものとして示されるとともに、タップセレクタ２１１は、Ｎクロックよりも位相の遅れたＬクロックを、受信ラッチ２０３−１〜２０３−ｎに供給するものとして示されているが、実際には、クロック位相調整回路１１０，２１０は、ＬクロックおよびＥクロックのいずれをも調整して出力することができるように構成されている。
【００４６】
さらに、クロック位相調整回路１１０は、通常のシステムクロック（Ｎクロック）をラッチ１０１−１〜１０１−ｎおよび１０４−１〜１０４−ｎに供給するとともに、クロック位相調整回路２１０は、通常のシステムクロック（Ｎクロック）をラッチ２０１−１〜２０１−ｎおよび２０４−１〜２０４−ｎに供給するように構成されている。
【００４７】
第１データパターン生成回路１２０は、構成装置１００において、装置間データ転送のクロック位相チェック用の第１データパターンを生成してセレクタ１４０−１〜１４０−ｎへ出力するものであり、同様に、第２データパターン生成回路２２０は、構成装置２００において、装置間データ転送のクロック位相チェック用の第２データパターンを生成してセレクタ２４０−１〜２４０−ｎへ出力するものである。
【００４８】
図３は第１実施形態におけるデータパターン生成回路１２０（２２０）の構成を示すブロック図であり、この図３に示すごとく、第１データパターン生成回路１２０は、データビット毎に、この第１データパターン生成回路１２０により生成すべきデータパターン（連続する４ビットのデータ）を保持するための４段のシフトレジスタ（ラッチ）１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉ（ｉ＝１，…，ｎ）をそなえるとともに、これらのシフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉの直前に、それぞれセレクタ１２５−ｉ，１２６−ｉ，１２７−ｉ，１２８−ｉ（ｉ＝１，…，ｎ）をそなえて構成されている。
【００４９】
セレクタ１２５−ｉは、２つの入力ａ1i，ｂ1iのいずれか一方を選択的に切り替えてシフトレジスタ１２１−ｉへ出力するもので、制御部４００により切替制御される。同様に、セレクタ１２６−ｉは、２つの入力ａ2i，ｂ2iのいずれか一方を選択的に切り替えてシフトレジスタ１２２−ｉへ出力するもので、セレクタ１２７−ｉは、２つの入力ａ3i，ｂ3iのいずれか一方を選択的に切り替えてシフトレジスタ１２３−ｉへ出力するもので、セレクタ１２８−ｉは、２つの入力ａ4i，ｂ4iのいずれか一方を選択的に切り替えてシフトレジスタ１２４−ｉへ出力するもので、これらのセレクタ１２６−ｉ，１２７−ｉ，１２８−ｉも、制御部４００により切替制御される。
【００５０】
なお、第１データパターン生成回路１２０においてシフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉを１組（１ビット分）だけそなえ、全データビットに対して同じデータパターンを供給するように構成してもよい。このとき、当然、セレクタ１２５−ｉ，１２６−ｉ，１２７−ｉ，１２８−ｉも１組（１ビット分）だけとなる。また、シフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉやセレクタ１２５−ｉ，１２６−ｉ，１２７−ｉ，１２８−ｉを、数バイト毎あるいは数十バイト毎に１組そなえてもよい。
【００５１】
ここで、入力ａ1i，ａ2i，ａ3i，ａ4iは、それぞれ、各シフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉに任意の値をデータパターンとして設定する際に、各セレクタ１２５−ｉ，１２６−ｉ，１２７−ｉ，１２８−ｉにより選択され各シフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉへ出力される。入力ａ1i，ａ2i，ａ3i，ａ4iの値は、制御部４００によって任意の値に設定される（図１および図３の▲１▼参照）。
【００５２】
また、１段目のシフトレジスタ１２１−１〜１２１−ｎの出力はそれぞれセレクタ１２６−１〜１２６−ｎへ入力ｂ21〜ｂ2nとして供給され、２段目のシフトレジスタ１２２−１〜１２２−ｎの出力はそれぞれセレクタ１２７−１〜１２７−ｎへ入力ｂ31〜ｂ3nとして供給され、３段目のシフトレジスタ１２３−１〜１２３−ｎの出力はそれぞれセレクタ１２８−１〜１２８−ｎへ入力ｂ41〜ｂ4nとして供給される。さらに、最終段（４段目）のシフトレジスタ１２４−１〜１２４−ｎの出力は、それぞれ、セレクタ１４０−１〜１４０−ｎへ入力ｄ1 〜ｄn として供給される一方、セレクタ１２５−１〜１２５−ｎへ入力ｂ11〜ｂ1nとして供給される。
【００５３】
つまり、クロック自動チューニングを行なう際には、セレクタ１２５−ｉ，１２６−ｉ，１２７−ｉ，１２８−ｉにより入力ｂ1i，ｂ2i，ｂ3i，ｂ4iをそれぞれ選択して各シフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉへ出力することにより、シフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉに設定されたデータパターンが、繰り返し生成され、第１データパターン生成回路１２０からセレクタ１４０−１〜１４０−ｎへ信号ｄ1 〜ｄn として出力されるようになっている。
【００５４】
第２データパターン生成回路２２０も、図３に示すように、前述した第１データパターン生成回路１２０と同様、データビット毎に、この第２データパターン生成回路２２０により生成すべきデータパターン（連続する４ビットのデータ）を保持するための４段のシフトレジスタ（ラッチ）２２１−ｉ，２２２−ｉ，２２３−ｉ，２２４−ｉ（ｉ＝１，…，ｎ）をそなえるとともに、これらのシフトレジスタ２２１−ｉ，２２２−ｉ，２２３−ｉ，２２４−ｉの直前に、それぞれセレクタ２２５−ｉ，２２６−ｉ，２２７−ｉ，２２８−ｉ（ｉ＝１，…，ｎ）をそなえて構成されている。
【００５５】
なお、第２データパターン生成回路２２０においてもシフトレジスタ２２１−ｉ，２２２−ｉ，２２３−ｉ，２２４−ｉを１組（１ビット分）だけそなえ、全データビットに対して同じデータパターンを供給するように構成してもよい。このとき、当然、セレクタ２２５−ｉ，２２６−ｉ，２２７−ｉ，２２８−ｉも１組（１ビット分）だけとなる。また、シフトレジスタ２２１−ｉ，２２２−ｉ，２２３−ｉ，２２４−ｉやセレクタ２２５−ｉ，２２６−ｉ，２２７−ｉ，２２８−ｉを、数バイト毎あるいは数十バイト毎に１組そなえてもよい。
【００５６】
インバータ１３１−１〜１３１−ｎは、それぞれ、構成装置１００において、ラッチ１０１−１〜１０１−ｎの出力を反転して装置内データ転送（ラッチ間データ転送）時のクロック位相チェック用のデータパターンとして出力するもので、そのデータパターン（信号ｅ1 〜ｅn ）は、それぞれ、後述するごとくセレクタ１４０−１〜１４０−ｎを介してラッチ１０１−１〜１０１−ｎに再入力されるようになっている。
【００５７】
同様に、インバータ２３１−１〜２３１−ｎは、それぞれ、構成装置２００において、ラッチ２０１−１〜２０１−ｎの出力を反転して装置内データ転送（ラッチ間データ転送）時のクロック位相チェック用のデータパターンとして出力するもので、そのデータパターン（信号ｅ1 〜ｅn ）は、それぞれ、後述するごとくセレクタ２４０−１〜２４０−ｎを介してラッチ２０１−１〜２０１−ｎに再入力されるようになっている。
【００５８】
また、インバータ１３２−１〜１３２−ｎは、それぞれ、構成装置１００において、第１受信ラッチ１０３−１〜１０３−ｎの出力を反転して装置内データ転送（ラッチ間データ転送）時のクロック位相チェック用のデータパターンとして出力するもので、そのデータパターン（信号ｇ1 〜ｇn ）は、それぞれ、後述するごとくセレクタ１５０−１〜１５０−ｎを介して第１受信ラッチ１０３−１〜１０３−ｎに再入力されるようになっている。
【００５９】
同様に、インバータ２３２−１〜２３２−ｎは、それぞれ、構成装置２００において、第２受信ラッチ２０３−１〜２０３−ｎの出力を反転して装置内データ転送（ラッチ間データ転送）時のクロック位相チェック用のデータパターンとして出力するもので、そのデータパターンは（信号ｇ1 〜ｇn ）は、それぞれ、後述するごとくセレクタ２５０−１〜２５０−ｎを介して第２受信ラッチ２０３−１〜２０３−ｎに再入力されるようになっている。
【００６０】
セレクタ（第１切替回路）１４０−１〜１４０−ｎは、装置間データ転送のクロック位相チェックを行なう際に、構成装置１００において、データパターン生成回路１２０で生成されたデータパターンを、ラッチ１０１−１〜１０１−ｎおよび第１送信ラッチ１０２−１〜１０２−ｎを通じてデータバス３１２へ送出するように回路の切替を行なうほか、構成装置１００において装置内データ転送（ラッチ間データ転送）時のクロック位相チェックを行なう際に、インバータ１３１−１〜１３１−ｎの出力を、ラッチ１０１−１〜１０１−ｎおよび第１送信ラッチ１０２−１〜１０２−ｎを通じ、後述するデータパターン検証回路１６０へ送るように回路の切替を行なうもので、制御部４００により切替制御される。
【００６１】
より具体的に説明すると、各セレクタ１４０−ｉは、３つの入力ｃi ，ｄi ，ｅi のいずれか一つを選択的に切り替えて各ラッチ１０１−ｉへ出力するものである。
ここで、入力ｃi は、通常のシステム運用時に各セレクタ１４０−ｉにより選択され、各ラッチ１０１−ｉへ出力される。
【００６２】
また、入力ｄi は、前述した通り、データパターン生成回路１２０（各シフトレジスタ１２４−ｉ）の出力であり、装置間データ転送のクロック位相チェックを行なう際に各セレクタ１４０−ｉにより選択され、各ラッチ１０１−ｉへ出力される。
さらに、入力ｆi は、各インバータ１３１−ｉの出力であり、装置内データ転送（ラッチ間データ転送）時のクロック位相チェックを行なう際に各セレクタ１４０−ｉにより選択され、各ラッチ１０１−ｉへ出力される。
【００６３】
セレクタ（第２切替回路）２４０−１〜２４０−ｎは、前述したセレクタ１４０−１〜１４０−ｎと同様、装置間データ転送のクロック位相チェックを行なう際に、構成装置２００において、データパターン生成回路２２０で生成されたデータパターンを、ラッチ２０１−１〜２０１−ｎおよび第２送信ラッチ２０２−１〜２０２−ｎを通じてデータバス３２１へ送出するように回路の切替を行なうほか、構成装置２００において装置内データ転送（ラッチ間データ転送）時のクロック位相チェックを行なう際に、インバータ２３１−１〜２３１−ｎの出力を、ラッチ２０１−１〜２０１−ｎおよび第２送信ラッチ２０２−１〜２０２−ｎを通じ、後述するデータパターン検証回路２６０へ送るように回路の切替を行なうもので、制御部４００により切替制御される。各セレクタ２４０−ｉも、３つの入力ｃi ，ｄi ，ｅi のいずれか一つを選択的に切り替えてラッチ２０１−ｉへ出力するものであり、入力ｃi ，ｄi ，ｅi は前述したものと同様のものである。
【００６４】
セレクタ１５０−１〜１５０−ｎは、構成装置１００において装置内データ転送（ラッチ間データ転送）時のクロック位相チェックを行なう際に、インバータ１３２−１〜１３２−ｎの出力を、第１受信ラッチ１０３−１〜１０３−ｎおよびラッチ１０４−１〜１０４−ｎを通じ、後述するデータパターン検証回路１６０へ送るように回路の切替を行なうもので、制御部４００により切替制御される。
【００６５】
より具体的に説明すると、各セレクタ１５０−ｉは、２つの入力ｆi ，ｇi のいずれか一方を選択的に切り替えて各第１受信ラッチ１０３−ｉへ出力するものである。
ここで、入力ｆi は、データバス３２１を通じて構成装置２００から送信されてきたデータ信号であり、装置間データ転送のクロック位相チェックを行なう際や通常のシステム運用時に各セレクタ１５０−ｉにより選択され、各第１受信ラッチ１０３−ｉへ出力される。
【００６６】
また、入力ｇi は、各インバータ１３２−ｉの出力であり、装置内データ転送（ラッチ間データ転送）時のクロック位相チェックを行なう際に各セレクタ１５０−ｉにより選択され、各第１受信ラッチ１０３−ｉへ出力される。
同様に、セレクタ２５０−１〜２５０−ｎは、構成装置２００において装置内データ転送（ラッチ間データ転送）時のクロック位相チェックを行なう際に、インバータ２３２−１〜２３２−ｎの出力を、第２受信ラッチ２０３−１〜２０３−ｎおよびラッチ２０４−１〜２０４−ｎを通じ、後述するデータパターン検証回路２６０へ送るように回路の切替を行なうもので、制御部４００により切替制御される。各セレクタ２５０−ｉも、２つの入力ｆi ，ｇi のいずれか一方を選択的に切り替えて第２受信ラッチ２０３−ｉへ出力するものであり、入力ｆi ，ｇi は前述したものと同様のものである。
【００６７】
ここで、セレクタ１４０−ｉ（２４０−ｉ）およびセレクタ１５０−ｉ（２５０−ｉ）の詳細構成について、図９を参照しながら説明する。これらのセレクタ１４０−ｉ（２４０−ｉ）およびセレクタ１５０−ｉ（２５０−ｉ）は、制御部４００からの制御信号▲２▼および▲３▼（“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”，“＋ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ”，“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”，“−ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”および“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”）によって切り替えられる。
【００６８】
セレクタ１４０−ｉ（２４０−ｉ）は、インバータ４１，ＡＮＤゲート４２〜４６およびＯＲゲート４７から構成されている。インバータ４１は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”を反転して出力するものであり、ＡＮＤゲート４２は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”と信号“＋ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ”との論理積を出力するものであり、ＡＮＤゲート４３は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”と信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”との論理積を出力するものである。また、ＡＮＤゲート４４は、信号ｃi とインバータ４１の出力との論理積を出力するものであり、ＡＮＤゲート４５は、インバータ１３１−ｉ（２３１−ｉ）からの信号ｅi とＡＮＤゲート４２の出力との論理積を出力するものであり、ＡＮＤゲート４６は、信号ｄi とＡＮＤゲート４３の出力との論理積を出力するものであり、ＯＲゲート４７は、ＡＮＤゲート４４〜４６の出力の論理積をラッチ１０１−ｉ（２０１−ｉ）に出力するものである。
【００６９】
このような構成により、セレクタ１４０−ｉ（２４０−ｉ）においては、クロック自動チューニングを行なわない時には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”がオフ（論理値０）であるので、信号ｃi が選択されてラッチ１０１−ｉ（２０１−ｉ）に出力される。また、装置内データ転送（ラッチ間転送）についてのチューニングを行なう際には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ”がオン（論理値１）であり信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”がオフ（論理値０）であるので、インバータ１３１−ｉ（２３１−ｉ）からの信号ｅi が選択されてラッチ１０１−ｉ（２０１−ｉ）に出力される。さらに、装置間データ転送についてのチューニングを行なう際には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”がオン（論理値１）であり信号“＋ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ”がオフ（論理値０）であるので、信号ｄi が選択されてラッチ１０１−ｉ（２０１−ｉ）に出力される。
【００７０】
セレクタ１５０−ｉ（２５０−ｉ）は、インバータ５１，ＡＮＤゲート５２，５３およびＯＲゲート５４から構成されている。インバータ５１は、ＡＮＤゲート４２の出力を反転して出力するものであり、ＡＮＤゲート５２は、信号ｆi と信号“−ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”とインバータ４１の出力との論理積を出力するものであり、ＡＮＤゲート５３は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”と信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”とインバータ１３２−ｉ（２３２−ｉ）からの信号ｇi との論理積を出力するものであり、ＯＲゲート５４は、ＡＮＤゲート５２，５３の出力の論理積をラッチ１０３−ｉ（２０３−ｉ）に出力するものである。
【００７１】
このような構成により、セレクタ１５０−ｉ（２５０−ｉ）においては、クロック自動チューニングを行なわない時には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”，信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”およびＡＮＤゲート４２の出力がオフ（論理値０）であり信号“−ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”およびインバータ５１の出力がオン（論理値１）であるので、信号ｆi が選択されてラッチ１０３−ｉ（２０３−ｉ）に出力される。また、装置内データ転送（ラッチ間転送）についてのチューニングを行なう際には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”，信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”およびＡＮＤゲート４２の出力がオン（論理値１）であり信号“−ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”がオフ（論理値０）であるので、インバータ１３２−ｉ（２３２−ｉ）からの信号ｇi が選択されてラッチ１０３−ｉ（２０３−ｉ）に出力される。さらに、装置間データ転送についてのチューニングを行なう際には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”およびインバータ５１の出力がオン（論理値１）であり信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”がオフ（論理値０）であるので、信号ｆi が選択されてラッチ１０３−ｉ（２０３−ｉ）に出力される。
【００７２】
一方、第１データパターン検証回路１６０は、構成装置１００において各第１受信ラッチ１０３−１〜１０３−ｎで受信した構成装置２００からの第２データパターンに基づき、構成装置２００から構成装置１００へのデータ転送が１クロックで行なわれているか否かを検証するとともに、構成装置１００において、各ラッチ１０１−１〜１０１−ｎから各第１送信ラッチ１０２−１〜１０２−ｎへの装置内データ転送、および、各第１受信ラッチ１０３−１〜１０３−ｎから各ラッチ１０４−１〜１０４−ｎへの装置内データ転送が１クロックで行なわれているか否かを検証するものである。
【００７３】
同様に、第２データパターン検証回路２６０は、構成装置２００において各第２受信ラッチ２０３−１〜２０３−ｎで受信した構成装置１００からの第１データパターンに基づき、構成装置１００から構成装置２００へのデータ転送が１クロックで行なわれているか否かを検証するとともに、構成装置２００において、各ラッチ２０１−１〜２０１−ｎから各第２送信ラッチ２０２−１〜２０２−ｎへの装置内データ転送、および、各第２受信ラッチ２０３−１〜２０３−ｎから各ラッチ２０４−１〜２０４−ｎへの装置内データ転送が１クロックで行なわれているか否かを検証するものである。
【００７４】
図４は第１実施形態におけるデータパターン検証回路１６０（２６０）の構成を示すブロック図であり、この図４に示すように、データパターン検証回路１６０は、シフトレジスタ（ラッチ）１６１−１〜１６１−ｎ，１６２−１〜１６２−ｎ，１６３−１〜１６３−ｎ，１６４−１〜１６４−ｎ，デコーダ１６５−１〜１６５−ｎ，切替器１６６−１〜１６６−ｎ，クロックカウンタ１６７およびチェック回路１６８をそなえて構成されている。
【００７５】
４段のシフトレジスタ（ラッチ）１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（ｉ＝１，…，ｎ）は、データビット毎にそなえられ、構成装置２００から受信したデータパターンを保持するためのものである。
デコーダ１６５−ｉ（ｉ＝１，…，ｎ）は、データビット毎にそなえられ、４段のシフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉに保持された４ビットデータに応じたデコード値（表１にて後述）を生成しチェック回路１６８へ出力するものである。
【００７６】
切替器１６６−ｉ（ｉ＝１，…，ｎ）は、データビット毎にそなえられ、ラッチ１０４−ｉ（ｉ＝１，…，ｎ）からのデータ信号を、シフトレジスタ１６１−ｉもしくはチェック回路１６８のいずれか一方へ選択的に切り替えて出力するもので、装置間データ転送のクロック位相チェックを行なう際にはデータ信号をシフトレジスタ１６１−ｉへ出力する一方、装置内データ転送（ラッチ間データ転送）のクロック位相チェックを行なう際にはデータ信号を、直接、チェック回路１６８へ出力するように、制御部４００によって制御される。
【００７７】
クロックカウンタ１６７は、クロック位相のチェック中、システムクロックを供給される都度、１を加算される、例えば４ビットのカウンタであり、そのカウント値は、チェック回路１６８へ出力される。
チェック回路１６８は、装置間データ転送のクロック位相チェックを行なう際には、後述するごとくデコーダ１６５−ｉからのデコード値とクロックカウンタ１６７からのカウント値とを比較することにより、構成装置２００から構成装置１００へのデータ転送が１クロックで行なわれているか否かをチェックするものである。
【００７８】
また、チェック回路１６８は、装置内データ転送（ラッチ間データ転送）のクロック位相チェックを行なう際には、後述するごとくラッチ１０２−ｉ，１０４−ｉからのデータとクロックカウンタ１６７からのカウント値とを比較することにより、各ラッチ１０１−１〜１０１−ｎから各第１送信ラッチ１０２−１〜１０２−ｎへの装置内データ転送、および、各第１受信ラッチ１０３−１〜１０３−ｎから各ラッチ１０４−１〜１０４−ｎへの装置内データ転送が１クロックで行なわれているか否かをチェックするものである。
【００７９】
そして、チェック回路１６８は、チェック結果（ＯＫ／ＮＧ）を制御部４００へ送信する。
第２データパターン検証回路２６０も、図４に示すように、前述した第１データパターン検証回路１６０と同様、シフトレジスタ（ラッチ）２６１−１〜２６１−ｎ，２６２−１〜２６２−ｎ，２６３−１〜２６３−ｎ，２６４−１〜２６４−ｎ，デコーダ２６５−１〜２６５−ｎ，切替器２６６−１〜２６６−ｎ，クロックカウンタ２６７およびチェック回路２６８をそなえて構成され、第２データパターン検証回路２６０による検証結果〔つまりチェック回路２６８によるチェック結果（ＯＫ／ＮＧ）〕は、制御部４００へ送信される。
【００８０】
ここで、切替器１６６−ｉ（２６６−ｉ）の詳細構成について、図１０を参照しながら説明する。この切替器１６６−ｉ（２６６−ｉ）は、制御部４００からの制御信号▲６▼（“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”，“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”および“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”）によって切り替えられる。
【００８１】
切替器１６６−ｉ（２６６−ｉ）は、ＡＮＤゲート６１〜６４から構成されている。ＡＮＤゲート６１は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”と信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”との論理積を出力するものであり、ＡＮＤゲート６２は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”と信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”との論理積を出力するものであり、ＡＮＤゲート６３は、ラッチ１０４−ｉ（２０４−ｉ）からのデータ信号とＡＮＤゲート６１の出力との論理積をシフトレジスタ１６１−ｉ（２６１−ｉ）に出力するものであり、ＡＮＤゲート６４は、ラッチ１０４−ｉ（２０４−ｉ）からのデータ信号とＡＮＤゲート６２の出力との論理積をチェック回路１６８（２６８）に出力するものである。
【００８２】
このような構成により、切替器１６６−ｉ（２６６−ｉ）においては、クロック自動チューニングを行なわない時には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”がオフ（論理値０）であるので、シフトレジスタ１６１−ｉ（２６１−ｉ）やチェック回路１６８（２６８）のいずれにもデータ信号は出力されない。また、装置内データ転送（ラッチ間転送）についてのチューニングを行なう際には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”がオン（論理値１）であり信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”がオフ（論理値０）であるので、データ信号はＡＮＤゲート６４を通過してチェック回路１６８（２６８）に出力される。さらに、装置間データ転送についてのチューニングを行なう際には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”がオン（論理値１）であり信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”がオフ（論理値０）であるので、データ信号はＡＮＤゲート６３を通過してシフトレジスタ１６１−ｉ（２６１−ｉ）に出力される。
【００８３】
そして、クロック自動チューニング制御回路（制御部）４００は、ハードウェアとソフトウェアとの組み合わせで構成され、図１に示すごとく制御信号▲１▼〜▲６▼〔前述した７種類の信号(00)〜(06)を含む〕をシステムの各部へ出力することにより、クロック自動チューニングの制御を行なっている。
つまり、クロック自動チューニング制御回路４００は、第１データパターン検証回路１６０および第２データパターン検証回路２６０による検証結果に応じて第１クロック位相調整回路１１０および第２クロック位相調整回路２１０をそれぞれ制御することにより、構成装置１００，２００間でのデータ転送が所定数のクロックサイクル（本実施形態では１クロック）以内で行なわれるように、且つ、各構成装置１００，２００内でのラッチ間データ転送も所定数のクロックサイクル（本実施形態では１クロック）以内で行なわれるように、第１送信ラッチ１０２−ｉに対するクロックの位相，第１受信ラッチ１０３−ｉに対するクロックの位相，第２送信ラッチ２０２−ｉに対するクロックの位相および第２受信ラッチ２０３−ｉに対するクロックの位相を調整するものである。
【００８４】
このとき、クロック自動チューニング制御回路４００において、データパターン検証回路１６０，２６０による検証結果に基づき、装置間データ転送および装置内データ転送を１クロックで行なうことが可能な、第１送信ラッチ１０２−ｉに対するクロックの位相範囲，第１受信ラッチ１０３−ｉに対するクロックの位相範囲，第２送信ラッチ２０２−ｉに対するクロックの位相範囲および第２受信ラッチ２０３−ｉに対するクロックの位相範囲が得られた場合、クロック自動チューニング制御回路４００は、図６および図７を参照しながら後述するごとく、第１送信ラッチ１０２−ｉに対するクロックの位相，第１受信ラッチ１０３−ｉに対するクロックの位相，第２送信ラッチ２０２−ｉに対するクロックの位相および第２受信ラッチ２０３−ｉに対するクロックの位相を、それぞれ、前記位相範囲の中央値に自動的に調整する。
【００８５】
上述のようなクロック位相制御は、実際にはソフトウェア（ＳＶＰ）を使用して実行されるものであり、データパターン検証回路１６０，２６０の検証結果に基づいて決定されたタップ値（図６の１〜７参照）をクロック位相調整回路１１０，２１０にセットすることにより実行される（図１の▲４▼，▲５▼参照）。
また、本実施形態のクロック自動チューニング制御回路４００は、図８を参照しながら後述するごとく、構成装置１００，２００を含んでなる情報処理システムにおいてクロック自動チューニングを既に実施しているか否かに関する自動チューニング実施情報を保持しており、その自動チューニング実施情報を参照しクロック自動チューニングが未だ実施されていないことを認識した場合に情報処理システム全体を対象としたクロック自動チューニングを実行する。
【００８６】
さらに、本実施形態のクロック自動チューニング制御回路４００は、図８を参照しながら後述するごとく、構成装置１００，２００を含んでなる情報処理システムの立ち上げ時に、その情報処理システムの現構成と以前の構成とを比較することにより構成の変更を認識する構成情報比較機能を有しており、この構成情報比較機能により構成の変更を認識した場合に、その情報処理システムを対象としたクロック自動チューニングを実行する。
【００８７】
この構成情報比較機能も、ソフトウェア（ＳＶＰ）により実現されるものであり、前記自動チューニング実施情報やシステム構成についてのデータは、ハードディスク等の記憶装置（図示略）に保存され、前記構成情報比較機能は、各構成装置から読み取ったシリアルナンバー（識別信号）と前記記憶装置に保存されているデータ（システム構成）とを比較することで実現される。
【００８８】
この場合、クロック自動チューニング制御回路４００は、前記構成情報比較機能により情報処理システムの構成変更箇所を特定し、特定された構成変更箇所に係る構成装置におけるクロック位相調整回路，データパターン生成回路，切替回路およびデータパターン検証回路を動作させ、構成変更箇所のみを対象としたクロック自動チューニングを実行する。
【００８９】
本実施形態の構成装置１００（２００）においては、データ転送検証対象を、実運用時に使用される全データバスとすることは勿論であるが、図５に示すごとく、将来的な機能拡張等のために準備されているリザーブデータバス３３０がそなえられており、そのリザーブデータバス３３０に接続される新たな構成装置をデータ転送検証対象に組み込み可能とする制御系がそなえられている。
【００９０】
即ち、リザーブデータバス３３０には機能拡張時に新たな構成装置が接続されるが、本実施形態では、新たな構成装置のデータパターン検証回路１６０′（２６０′）による検証結果を有効化するための制御系がそなえられている。
図５はその制御系の構成を示すブロック図であり、この図５に示すように、その制御系は、ＯＲゲート３３１，３３４およびＡＮＤゲート３３２，３３３からなる論理回路として構成される。
【００９１】
ここで、ＯＲゲート３３１は、データパターン検証回路１６０′（２６０′）からのＯＫ信号（検証結果がＯＫの時に“１”になりそれ以外の時に“０”になる信号）と、クロック自動チューニング制御回路４００からの“−ＲＳＶ ＭＯＤＥ ＯＮ”信号との論理和を算出して出力するものである。ここで、“−ＲＳＶ ＭＯＤＥ ＯＮ”信号は、クロック自動チューニング制御回路４００から出力されるもので、データパターン検証回路１６０′（２６０′）による検証結果を有効化する際に“０”になり、それ以外の時には“１”になる。
【００９２】
ＡＮＤゲート３３２は、データパターン検証回路１６０′（２６０′）からのＮＧ信号（検証結果がＮＧの時に“１”になりそれ以外の時に“０”になる信号）と、クロック自動チューニング制御回路４００からの“＋ＲＳＶ ＭＯＤＥ ＯＮ”信号との論理積を算出して出力するものである。ここで、“＋ＲＳＶ ＭＯＤＥ ＯＮ”信号は、クロック自動チューニング制御回路４００から出力されるもので、データパターン検証回路１６０′（２６０′）による検証結果を有効化する際に“１”になり、それ以外の時には“０”になる。
【００９３】
また、ＡＮＤゲート３３３は、既存のデータパターン検証回路１６０（２６０）からのＯＫ信号とＯＲゲート３３１からの出力との論理積を検証結果として算出しクロック自動チューニング制御回路４００に送信するものであり、ＯＲゲート３３４は、既存のデータパターン検証回路１６０（２６０）からのＮＧ信号とＡＮＤゲート３３２からの出力との論理和を検証結果として算出しクロック自動チューニング制御回路４００に送信するものである。
【００９４】
このような制御系（論理回路）をそなえることにより、ＲＳＶ ＭＯＤＥ ＯＮ信号が“１”に設定された場合のみ、データパターン検証回路１６０′（２６０′）による検証結果が有効化される。つまり、ＯＫ信号については、データパターン検証回路１６０（２６０）からのＯＫ信号とデータパターン検証回路１６０′（２６０′）からのＯＫ信号との論理積がクロック自動チューニング制御回路４００に送信される一方、ＮＧ信号については、データパターン検証回路１６０（２６０）からのＮＧ信号とデータパターン検証回路１６０′（２６０′）からのＮＧ信号との論理和がクロック自動チューニング制御回路４００に送信される。
【００９５】
なお、上述のような制御系（論理回路）は、クロック自動チューニング制御回路４００の前記構成情報比較機能により特定された構成変更箇所に係る構成装置を対象としたクロック自動チューニングを実行すべく、その構成変更箇所に係る構成装置のデータパターン検証回路による検証結果のみを有効化する際にも用いられる。
【００９６】
また、クロック自動チューニング制御回路４００の行なう、構成情報比較結果に応じた対象装置への自動チューニング開始指示や、試験データチェック結果報告や、クロック位相変更設定指示や、リザーブデータバスの組込み指示（検証結果の有効化指示）等は、システムクロックに依存しない既存の機構を用いて実現される。
【００９７】
次に、上述のごとく構成された、第１実施形態のクロック自動チューニング制御システムの動作について説明する。
まず、図８に示すフローチャート（ステップＳ１〜Ｓ６）に従って、本実施形態の情報処理システム立ち上げ時におけるクロック自動チューニングの起動手順を概略的に説明すると、この図８に示すように、本実施形態を適用された情報処理システムの立ち上げを開始すると（ステップＳ１）、クロック自動チューニング制御回路４００は、自動チューニング実施情報を参照し、クロック自動チューニングが実施済か否かを認識する（ステップＳ２）。
【００９８】
クロック自動チューニングが未だ実施されていないことを認識した場合、クロック自動チューニング制御回路４００は、その情報処理システム全体を対象としたクロック自動チューニングを起動・実行する（ステップＳ４）。そして、クロック自動チューニング制御回路４００がクロック自動チューニングを完了することで、情報処理システムの立ち上げが完了される（ステップＳ６）。
【００９９】
クロック自動チューニングが実施済であることを認識した場合、クロック自動チューニング制御回路４００は、構成情報比較機能を用いてその情報処理システムの現構成情報と以前の構成情報とを比較することにより、その情報処理システムの構成の変更を認識する（ステップＳ３）。
構成情報比較機能により構成の変更が無いと認識した場合、クロック自動チューニング制御回路４００はクロック自動チューニングを行なうことなく、情報処理システムの立ち上げが完了される（ステップＳ６）。
【０１００】
一方、構成情報比較機能により構成の変更を認識した場合、クロック自動チューニング制御回路４００は、その構成情報比較機能により情報処理システムの構成変更箇所を特定してから、特定された構成変更箇所に係る構成装置（１００，２００）におけるクロック位相調整回路（１１０，２１０），データパターン生成回路（１２０，２２０），切替回路（１４０−ｉ，２４０−ｉ，１５０−ｉ，２５０−ｉ）およびデータパターン検証回路（１６０，２６０）を動作させ、構成変更箇所のみを対象としたクロック自動チューニングを起動・実行する（ステップＳ５）。
【０１０１】
このとき、その構成変更箇所に係る構成装置のデータパターン検証回路（１６０，２６０）による検証結果を図５に示した制御系（論理回路）により有効化して、構成変更箇所のみを対象としたクロック自動チューニングが実行される。
そして、クロック自動チューニング制御回路４００がクロック自動チューニングを完了することで、情報処理システムの立ち上げが完了される（ステップＳ６）。
【０１０２】
なお、オペレータがクロック自動チューニング制御回路４００の動作に介入することにより、図８に示すフローチャートに従うことなく、任意の処理手順に変更して情報処理システムの立ち上げ（クロック自動チューニング）を行なうことが可能である。つまり、上述した構成情報比較機能による比較結果に係わらず、オペレータの介入によって、情報処理システム全体または特定箇所でクロック自動チューニングを起動することが可能であり、また、起動されたクロック自動チューニングの動作を停止させることも可能である。
【０１０３】
さて、ついで、図１〜図４に示した第１実施形態のシステムにより図８のステップＳ４およびＳ５で実行されるクロック自動チューニングの手順について、図６や図７を参照しながら、より詳細に説明する。なお、図７は本実施形態のクロック位相決定手法を説明するための図である。
まず、各構成装置１００，２００内で、動作可能な位相関係範囲を調査する。つまり、装置内データ転送（ラッチ間データ転送）のクロック位相チェックを行なう。
【０１０４】
このとき、構成装置１００内において、セレクタ１４０−ｉが入力ｅ（即ちインバータ１３１−ｉの出力）を選択してラッチ１０１−ｉへ出力するとともに、セレクタ１５０−ｉが入力ｇ（即ちインバータ１３２−ｉの出力）を選択して受信ラッチ１０３−ｉへ出力するように、クロック自動チューニング制御回路４００により制御される。
【０１０５】
同様に、構成装置２００内においても、セレクタ２４０−ｉが入力ｅ（即ちインバータ２３１−ｉの出力）を選択してラッチ２０１−ｉへ出力するとともに、セレクタ２５０−ｉが入力ｇ（即ちインバータ２３２−ｉの出力）を選択して受信ラッチ１０３−ｉへ出力するように、クロック自動チューニング制御回路４００により制御される。
【０１０６】
この後、システムクロックの供給を開始する。このとき、クロック自動チューニング制御回路４００は、図６に示したタップセレクタ１１１，２１１をそれぞれ切替制御してタップ１〜７に対応する位相を有するシステムクロックを順次供給し、データパターン検証回路１６０，２６０に、各位相（タップ）で装置内データ転送が正常に行なわれるかを検証させる。
【０１０７】
上述のごとくインバータ１３１−ｉ，１３２−ｉ；２３１−ｉ，２３２−ｉの出力を選択してシステムクロックの供給を開始することにより、ラッチ１０１−ｉ，１０３−ｉ；２０１−ｉ，２０３−ｉに入力されたデータ信号が、それぞれ、ラッチ１０２−ｉ，１０４−ｉ；２０２−ｉ，２０４−ｉを経由してデータパターン検証回路１６０；２６０へ送り込まれる。なお、このとき、データパターン検証回路１６０；２６０の切替器１６６−ｉ；２６６−ｉは、チェック回路１６８；２６８側に切り替えられており、ラッチ１０４−ｉ；２０４−ｉの出力はチェック回路１６８；２６８へ直接的に入力される。
【０１０８】
ラッチ１０１−ｉ，１０２−ｉ，１０３−ｉ，１０４−ｉ；２０１−ｉ，２０２−ｉ，２０３−ｉ，２０４−ｉの初期値を全て“０”とした場合、装置内データ転送が正常に行なわれていれば、システムクロックに応じて、ラッチ１０２−ｉ，１０４−ｉ；２０２−ｉ，２０４−ｉからデータパターン検証回路１６０；２６０へ送り込まれるデータ信号は“０”と“１”とを交互に繰り返すことになる。
【０１０９】
従って、データパターン検証回路１６０；２６０のチェック回路１６８；２６８により、クロックカウンタ１６７；２６７によるカウント値の最下位ビットの値と、各ラッチ１０２−ｉ，１０４−ｉ；２０２−ｉ，２０４−ｉに保持される値とを比較することで、装置内データ転送が正常に行なわれているかが検証される。
【０１１０】
つまり、クロックカウンタ１６７；２６７の初期値を“０”とすると、各ラッチ１０２−ｉ，１０４−ｉ；２０２−ｉ，２０４−ｉに保持される値のうちのいずれか一つでも、カウント値の最下位ビットの値と一致した場合には、検証中のクロック位相では装置内データ転送を正常に行なえないものと認識される。
本実施形態では、このような検証を７種類（タップ１〜７）のクロック位相のそれぞれについて行ない、クロック自動チューニング制御回路４００において、データ転送が正常に行なわれる位相関係範囲を決定する。
【０１１１】
なお、構成装置１００において、ラッチ１０２−１〜１０２−ｎに保持される値（全ビットの値）の一致を保証することができれば、クロックカウンタ１６７のカウント値を、ラッチ１０２−１〜１０２−ｎのうちのいずれか一つに保持される値（ｎビットのうちの一つのビットの値）と比較するだけで、ラッチ１０１−ｉとラッチ１０２−ｉとの間のデータ転送の検証を完了することができる。また、ラッチ１０４−１〜１０４−ｎに保持される値（全ビットの値）の一致を保証することができれば、クロックカウンタ１６７のカウント値を、ラッチ１０４−１〜１０４−ｎのうちのいずれか一つに保持される値（ｎビットのうちの一つのビットの値）と比較するだけで、ラッチ１０３−ｉとラッチ１０４−ｉとの間のデータ転送の検証を完了することができる。
【０１１２】
構成装置２００においても、同様に、ラッチ２０２−１〜２０２−ｎに保持される値（全ビットの値）の一致を保証することができれば、クロックカウンタ２６７のカウント値を、ラッチ２０２−１〜２０２−ｎのうちのいずれか一つに保持される値（ｎビットのうちの一つのビットの値）と比較するだけで、ラッチ２０１−ｉとラッチ２０２−ｉとの間のデータ転送の検証を完了することができる。また、ラッチ２０４−１〜２０４−ｎに保持される値（全ビットの値）の一致を保証することができれば、クロックカウンタ２６７のカウント値を、ラッチ２０４−１〜２０４−ｎのうちのいずれか一つに保持される値（ｎビットのうちの一つのビットの値）と比較するだけで、ラッチ２０３−ｉとラッチ２０４−ｉとの間のデータ転送の検証を完了することができる。
【０１１３】
次に、構成装置１００，２００間での動作可能な位相関係範囲を調査する。つまり、装置間データ転送のクロック位相チェックを行なう。
このとき、構成装置１００内において、セレクタ１４０−ｉが入力ｄ（即ちデータパターン生成回路１２０の出力；４ビットのデータパターン）を選択してラッチ１０１−ｉへ出力するとともに、セレクタ１５０−ｉが入力ｆ〔即ち、データバス３２１（構成装置２００）からのデータ信号）を選択して受信ラッチ１０３−ｉへ出力するように、クロック自動チューニング制御回路４００により制御される。
【０１１４】
同様に、構成装置２００内においても、セレクタ２４０−ｉが入力ｄ（即ちデータパターン生成回路２２０の出力；４ビットのデータパターン）を選択してラッチ２０１−ｉへ出力するとともに、セレクタ２５０−ｉが入力ｆ〔即ち、データバス３１２（構成装置１００）からのデータ信号）を選択して受信ラッチ２０３−ｉへ出力するように、クロック自動チューニング制御回路４００により制御される。
【０１１５】
この後、システムクロックの供給を開始する。このときも、クロック自動チューニング制御回路４００は、図６に示したタップセレクタ１１１，２１１をそれぞれ切替制御してタップ１〜７に対応する位相を有するシステムクロックを順次供給し、データパターン検証回路１６０，２６０に、各位相（タップ）で装置間データ転送が正常に行なわれるかを検証させる。
【０１１６】
このとき、構成装置１００，２００のそれぞれにおいて、装置内データ転送が正常に行なわれると判断された位相関係範囲（タップ）を検証の対象とし、構成装置１００側のクロック位相と構成装置２００側のクロック位相との全ての組合せについての検証を行なう。
つまり、本実施形態では、データパターン検証回路１６０；２６０のチェック回路１６８；２６８により、クロックカウンタ１６７；２６７によるカウント値と、デコーダ１６５−ｉ；２６５−ｉによるデコード値とを比較することで、装置間データ転送が正常に行なわれているかが検証される。
【０１１７】
ここで、デコーダ１６５−ｉによるデコード値は、表１を参照しながら後述するごとく、シフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉに保持される値から得られるものであり、同様に、デコーダ２６５−ｉによるデコード値は、シフトレジスタ２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉに保持される値から得られるものである。
【０１１８】
なお、装置間データ転送の検証時には、データパターン検証回路１６０；２６０の切替器１６６−ｉ；２６６−ｉは、シフトレジスタ１６１−ｉ；２６１−ｉ側に切り替えられており、ラッチ１０４−ｉ；２０４−ｉの出力はシフトレジスタ１６１−ｉ；２６１−ｉに入力される。
本実施形態において、構成装置１００から構成装置２００へのデータ転送についてクロック位相の検証を行なう際には、例えば図７を参照しながら後述するごとく、装置内データ転送が正常に行なわれると判断されたタップが、構成装置１００ではタップ１〜タップ５、構成装置２００でもタップ１〜タップ５とすると、これらのタップの全ての組合せ（５×５＝２５）について装置間データ転送の検証をそれぞれ行なう。そして、その検証結果に基づいて、クロック自動チューニング制御回路４００により、データ転送が正常に行なわれる位相関係範囲を決定する。
【０１１９】
ただし、装置間データ転送の検証を行なう際には、前述のごとく装置内データ転送の検証を行なった結果得られた、装置内クロック位相関係を保つようにＮクロックの設定を行ない、各構成装置１００，２００内でのデータ転送を保証しておく。これにより、構成装置１００，２００間でのクロック位相関係のみによるデータ転送検証を可能としている。
【０１２０】
以下に、具体的な装置間データ転送（構成装置１００から構成装置２００へのデータ転送）の検証例について説明する。
まず、構成装置１００のデータパターン生成回路１２０において、セレクタ１２５−ｉ，１２６−ｉ，１２７−ｉ，１２８−ｉで入力ａをそれぞれ選択してシフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉへ出力することにより、シフトレジスタ１２１−ｉ，１２４−ｉに初期値として“０”を設定するとともに、シフトレジスタ１２２−ｉ，１２３−ｉに初期値として“１”を設定する。
【０１２１】
そして、装置間データ転送の検証中には、セレクタ１２５−ｉ，１２６−ｉ，１２７−ｉ，１２８−ｉで入力ｂをそれぞれ選択してシフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉへ出力することにより、データパターンとして“０，１，１，０”がデータパターン生成回路１２０から繰り返し生成・出力される。
【０１２２】
シフトレジスタ１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉに初期値を設定してからシステムクロックの供給を開始すると、装置間データ転送が正常に行なわれていれば、８サイクル目以降、構成装置２００のデータパターン検証回路２６０におけるシフトレジスタ２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉに保持されるデータパターンは、クロックを供給される都度、“０，１，１，０”；“０，０，１，１”；“１，０，０，１”；“１，１，０，０”と変化し、これら４つのパターンを繰り返すことになる。
【０１２３】
ここで、シフトレジスタ２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉに保持されるデータパターンが“０，１，１，０”；“０，０，１，１”；“１，０，０，１”；“１，１，０，０”である場合に、デコーダ１６５−ｉが、下記表１に示す通り、それぞれデコード値“００”；“０１”；“１０”；“１１”を出力するものであるとすると、８サイクル目以降のデコード値とクロックカウンタ１６７の下位２ビットが一致していなければ装置間データ転送が正常に行なわれていないことを認識できる。なお、最初の７サイクルについては、クロック自動チューニング制御回路４００により、チェック回路１６８によるチェック動作をオフにするといった制御を行なう。
【０１２４】
従って、データパターン検証回路１６０のチェック回路１６８により、クロックカウンタ１６７によるカウント値の下位２ビットの値と、デコーダ１６５−ｉによるデコードとを比較することで、装置内データ転送が正常に行なわれているかが検証される。つまり、デコーダ１６５−１〜１６５−ｎによるデコード値うちのいずれか一つでも、カウント値の下位２ビットの値と一致しない場合には、検証中のクロック位相では装置間データ転送を正常に行なえないものと認識される。
【０１２５】
【表１】
0004227262.tif 000002
【０１２６】
なお、ラッチ１０４−１〜１０４−ｎからデータパターン検証回路１６０に入力される、ｎビットのデータ信号の値が全て一致していることを保証できるのであれば、ｎビットのうちの１つのビットだけを対象にした検証（デコーダ１６５−ｉおよびチェック回路１６８による検証）を行なえば、構成装置１００から構成装置２００へのデータ転送の検証を完了することができる。
【０１２７】
この場合、データパターン検証回路１６０（２６０）におけるシフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉ）は１組（１ビット分）だけとすることが可能である。このとき、当然、デコーダ１６５−ｉ（２６５−ｉ）や切替器１６６−ｉ（２６６−ｉ）も１組（１ビット分）だけとなる。また、シフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉ），デコーダ１６５−ｉ（２６５−ｉ）や切替器１６６−ｉ（２６６−ｉ）を、数バイト毎あるいは数十バイト毎に１組そなえてもよい。
【０１２８】
また、構成装置２００のデータパターン検証回路２６０による、構成装置２００から構成装置１００へのデータ転送の検証は、上述と同様にして行なわれるほか、構成装置１００のデータパターン検証回路１６０による、構成装置１００から構成装置２００へのデータ転送の検証と同時に実行することができる。
本実施形態では、装置内データ転送の検証に際しては“０”，“１”を交互に生成したデータパターンを用い、装置間データ転送検証に際しては上述のような４ビットのデータパターンを用いている。“０”，“１”交互のデータパターンでは１ビットの位相ズレを検出することはできるが、２ビット以上の位相ズレを検出することができない。
【０１２９】
装置内データ転送の検証に際しては大きな位相ズレが生じる可能性はほとんどないので、“０”，“１”交互のデータパターンを用いても問題はないが、装置間データ転送に際しては２ビット以上の位相ズレが生じる可能性がある。
そこで、本実施形態では、前述したように、４ビットのデータパターンを用いることにより、１ビットの位相ずれのみならず、２ビット以上の位相ズレをも検出できるようにしているのである。
【０１３０】
さて、上述のような装置内データ転送／装置間データ転送の検証を行なって得られた、位相関係範囲が動作マージンを充分保証できるものであることを確認した上で、その範囲の中央値を採用して位相関係の最適化を行なう。つまり、クロック自動チューニング制御回路４００が、送信ラッチ１０２−ｉ，２０２−ｉに対するシステムクロック（Ｅクロック）の位相および受信ラッチ１０３−ｉ，２０３−ｉに対するシステムクロック（Ｌクロック）の位相を、それぞれ前記位相関係範囲の中央値に自動的に調整する。
【０１３１】
以下に、図６および図７を参照しながら、具体的な位相関係の最適化手法（クロック位相決定手法）について説明する。ただし、ここでは、図６に示すように、構成装置１００から構成装置２００へのデータ転送の検証を行なって、送信ラッチ１０２−ｉに対するシステムクロック（Ｅクロック）の位相および受信ラッチ２０３−ｉに対するシステムクロック（Ｌクロック）の位相を決定する場合について説明する。
【０１３２】
装置内データ転送の検証を行なった結果、装置内データ転送が正常に行なわれると判断されたタップが、構成装置１００ではタップ１〜タップ５、構成装置２００でもタップ１〜タップ５とすると、これらのタップの全ての組合せ（５×５＝２５）について、構成装置１００から構成装置２００へのデータ転送の検証の検証（妥当性の判定）が行なわれる。
【０１３３】
クロック自動チューニング制御回路４００は、構成装置１００および２００において各組合せのタップを選択して検証を実行させ、データパターン検証回路２６０からの検証結果（妥当性ＯＫ／ＮＧ）を、メモリ（図示略）に随時記憶させる。その結果、２５組全ての組合せについてデータ転送の妥当性（前記メモリの記憶内容）が、例えば図７に示すように得られたものとする。なお、図７ではＯＫが“○”ＮＧが“×”として示されている。
【０１３４】
この図７に示す例では、送信ラッチ１０２−ｉに対するシステムクロック（Ｅクロック）の位相範囲として、クロック位相調整回路１１０のタップ１〜タップ３が得られ、受信ラッチ２０３−ｉに対するシステムクロック（Ｌクロック）の位相範囲として、クロック位相調整回路２１０のタップ３〜タップ５が得られている。
【０１３５】
このとき、クロック自動チューニング制御回路４００は、クロック位相調整回路１１０でタップ２を選択して送信ラッチ１０２−ｉにシステムクロックを供給するとともに、クロック位相調整回路２１０でタップ４を選択して受信ラッチ２０３−ｉにシステムクロックを供給する。
なお、クロック自動チューニング制御回路４００には、前記メモリの記憶内容によりタップ値を決定するためのソフトウェア（プログラム）がそなえられており、そのソフトウェアをクロック自動チューニング制御回路４００が実行することにより、システムクロックの位相が位相関係範囲の中央値になるようにクロック位相調整回路１１０，２１０が自動的に調整される。
【０１３６】
このように、本発明の第１実施形態としてのクロック自動チューニング制御システムによれば、以下のような効果ないし利点が得られる。
▲１▼新たな装置間信号や装置内信号を設けることなく情報処理システム等の設置時や増設／置換時にクロックの位相関係を自動で迅速に最適化することができるので、クロックチューニングに要する労力が大幅に削減される。
【０１３７】
▲２▼データ転送検証のために新たな装置間信号や装置内信号を設ける必要がないので、新規システム開発やマルチプロセッサ化に伴いシステム構成規模が大幅に拡大しても、複数のシステムクロックの位相関係を容易に最適化することができる。
▲３▼無駄な動作マージンの保証が不要になり実運用時に必要な動作マージンのみを保証すればよくなるので、情報処理システム等の性能を抑え込む必要がなくなり、その性能を最大限発揮させることができ、処理能力および信頼性の高いシステムの提供が可能になる。
【０１３８】
▲４▼ユーザ先（情報処理システム等の設置先）で自動的にクロックチューニングを行なうことができるので、実運用環境下でのクロックチューニングが可能になる。つまり、初回システム立ち上げ時（初実運用時等）にも複数のシステムクロックの位相関係の最適化が可能であり、実運用環境下での諸条件（環境温度，設置状況等）に応じてシステムを最適化することができ、より一層信頼性の高いシステムの提供が可能になる。
【０１３９】
▲５▼クロック自動チューニング制御回路４００の構成情報比較機能を用いることにより、構成変更箇所に係るシステムクロックの位相関係のみを検証対象とすることができるので、構成装置交換時あるいは構成変更時に、必要最小限かつ充分な検証動作が行なわれてシステムクロックの位相関係が最適化され、迅速に信頼性の高いシステムを提供することができる。
【０１４０】
▲６▼将来的な機能拡張等のために準備されているリザーブデータバス３３０を検証対象に組込み可能とする制御系（論理回路３３１〜３３４）をそなえることにより、情報処理システムの機能拡張等に柔軟に対応しながらデータ転送の検証を行なうことができる。
▲７▼従来、システムクロックの相対位相調整または絶対位相調整のみが、情報処理システムをユーザ先に出荷する前に、クロックチューニング専用テスタを用いて行なわれていたが、本実施形態では、実運用時のデータ転送が確実に行なえるかを検証することができるので、従来よりも精度の高いクロックチューニングを実現することができる。
【０１４１】
〔２〕本発明の第２実施形態の説明
次に、図１３および図１４を参照しながら、本発明の第２実施形態としてのクロック自動チューニング制御システムについて説明する。ここで、図１３はそのクロック自動チューニング制御システムの全体構成を示すブロック図、図１４は第２実施形態のクロック自動チューニング制御システムにおけるデータパターン生成／検証回路の構成を示すブロック図である。なお、図中、既述の符号と同一の符号は同一またはほぼ同一の部分を示しているので、その説明は省略する。
【０１４２】
第２実施形態としてのクロック自動チューニング制御システムも、第１実施形態のものとほぼ同様に構成されているが、この第２実施形態では、図１３に示すように、構成装置１００においては、第１実施形態のデータパターン生成回路１２０およびデータパターン検証回路１６０に代えてこれらの回路の機能を併せもつデータパターン生成／検証回路１７０がそなえられるとともに、構成装置２００においては、第１実施形態のデータパターン生成回路２２０およびデータパターン検証回路２６０に代えてこれらの回路の機能を併せもつデータパターン生成／検証回路２７０がそなえられている。
【０１４３】
そして、第２実施形態のデータパターン生成／検証回路１７０（２７０）は、基本的に図４に示した第１実施形態のデータパターン検証回路１６０（２６０）と同様に構成されているが、第２実施形態では、構成装置１００から構成装置２００へのデータ転送の検証と、構成装置２００から構成装置１００へのデータ転送の検証とを別々に検証する形態を採ることにより、図１４に示すように、データパターン検証用のシフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉ）が、データパターン生成用のシフトレジスタ〔図３の符号１２１−ｉ，１２２−ｉ，１２３−ｉ，１２４−ｉ（２２１−ｉ，２２２−ｉ，２２３−ｉ，２２４−ｉ）〕としても機能するように構成されている。
【０１４４】
このため、図１４に示すごとく、データパターン生成／検証回路１７０においては、シフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（ｉ＝１，…，ｎ）の直前に、それぞれセレクタ１７１−ｉ，１７２−ｉ，１７３−ｉ，１７４−ｉ（ｉ＝１，…，ｎ）がそなえられている。
セレクタ１７１−ｉは、２つの入力ｂi ，ｈi のいずれか一つを選択的に切り替えてシフトレジスタ１６１−ｉへ出力するもので、クロック自動チューニング制御回路（制御部）４００により切替制御される。
【０１４５】
また、セレクタ１７２−ｉは、２つの入力ａ2i，ｊ2iのいずれか一方を選択的に切り替えてシフトレジスタ１６２−ｉへ出力するもので、制御部４００により切替制御される。同様に、セレクタ１７３−ｉは、２つの入力ａ3i，ｊ3iのいずれか一方を選択的に切り替えてシフトレジスタ１６３−ｉへ出力するもので、セレクタ１７４−ｉは、２つの入力ａ4i，ｊ4iのいずれか一方を選択的に切り替えてシフトレジスタ１６４−ｉへ出力するもので、これらのセレクタ１７３−ｉ，１７４−ｉも、制御部４００により切替制御される。
【０１４６】
ここで、シフトレジスタ１６１−ｉには、クロック停止時に任意の値が制御部４００から信号ａ1iにより直接的に設定されるようになっている。また、入力ａ2i，ａ3i，ａ4iは、各シフトレジスタ１６２−ｉ，１６３−ｉ，１６４−ｉに任意の値をデータパターンとして設定する際に、各セレクタ１７２−ｉ，１７３−ｉ，１７４−ｉにより選択され各シフトレジスタ１６２−ｉ，１６３−ｉ，１６４−ｉへ出力される。入力ａ2i，ａ3i，ａ4iの値も、制御部４００によって任意の値に設定される（図１３および図１４の▲１▼参照）。
【０１４７】
また、１段目のシフトレジスタ１６１−ｉの出力はセレクタ１７２−ｉへ入力ｊ2iとして供給され、２段目のシフトレジスタ１６２−ｉの出力はセレクタ１７３−ｉへ入力ｊ3iとして供給され、３段目のシフトレジスタ１６３−ｉの出力はセレクタ１７４−ｉへ入力ｊ4iとして供給される。さらに、最終段（４段目）のシフトレジスタ１６４−ｉの出力は、セレクタ１４０−ｉ（図１３参照）へ入力ｄi として供給されるとともに、セレクタ１７１−ｉへ入力ｂi として供給される。
【０１４８】
さらに、構成装置２００から構成装置１００へのデータ転送を検証すべく、各シフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉに切替器１６６−ｉ（ラッチ１０４−ｉ）からのデータ信号を保持させる際には、入力ｈi がセレクタ１７１−ｉにより選択されシフトレジスタ１６１−ｉへ出力されるとともに、入力ｊ2i，ｊ3i，ｊ4iがそれぞれセレクタ  １７２−ｉ，１７３−ｉ，１７４−ｉにより選択されシフトレジスタ１６２−ｉ，１６３−ｉ，１６４−ｉへ出力される。
【０１４９】
つまり、構成装置１００から構成装置２００へのデータ転送を検証すべくデータパターン生成／検証回路１７０がデータパターンを生成・出力する際には、セレクタ１７１−ｉにより入力ｂi を選択してシフトレジスタ１６１−ｉに出力するとともに、セレクタ１７２−ｉ，１７３−ｉ，１７４−ｉによりそれぞれ入力ｊ2i，ｊ3i，ｊ4iを選択してシフトレジスタ１６２−ｉ，１６３−ｉ，１６４−ｉへ出力することにより、シフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉに設定されたデータパターンが、繰り返し生成され、データパターン生成／検証回路１７０からセレクタ１４０−ｉへ出力されるようになっている。これにより、データパターン生成／検証回路１７０は、第１実施形態のデータパターン生成回路１２０と同様の機能を果たすことになる。
【０１５０】
また、データパターン生成／検証回路１７０が構成装置２００から構成装置１００へのデータ転送の検証を行なう際には、セレクタ１７１−ｉにより入力ｈi を選択してシフトレジスタ１６１−ｉに出力するとともに、セレクタ１７２−ｉ，１７３−ｉ，１７４−ｉによりそれぞれ入力ｊ2i，ｊ3i，ｊ4iを選択してシフトレジスタ１６２−ｉ，１６３−ｉ，１６４−ｉへ出力することにより、各シフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉに切替器１６６−ｉ（ラッチ１０４−ｉ）からのデータ信号が格納される。これにより、データパターン生成／検証回路１７０は、第１実施形態のデータパターン検証回路１６０と同様の機能を果たすことになる。
【０１５１】
構成装置２００におけるデータパターン生成／検証回路２７０も、図１４に示すように、前述したデータパターン生成／検証回路１７０と同様に、第１実施形態のデータパターン検証回路２６０にセレクタ２７１−ｉ，２７２−ｉ，２７３−ｉ，２７４−ｉ（ｉ＝１，…，ｎ）を付加して構成され、第１実施形態のデータパターン生成回路１２０およびデータパターン検証回路１６０と同様の機能を果たす。
【０１５２】
ここで、セレクタ１７１−ｉ（２７１−ｉ）の詳細構成について、図１５を参照しながら説明する。このセレクタ１７１−ｉ（２７１−ｉ）は、制御部４００からの制御信号▲１▼（“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”，“＋ＡＵＴＯ ＴＵＮＥ ＲＣＶ”および“＋ＡＵＴＯ ＴＵＮＥ ＳＥＮＤ”）によって切り替えられる。
【０１５３】
セレクタ１７１−ｉ（２７１−ｉ）は、ＡＮＤゲート７１，７２およびＯＲゲート７３から構成されている。ＡＮＤゲート７１は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”と信号“＋ＡＵＴＯ ＴＵＮＥ ＲＣＶ”と信号ｈi との論理積を出力するものであり、ＡＮＤゲート７２は、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”と信号“＋ＡＵＴＯ ＴＵＮＥ ＳＥＮＤ”と信号ｂi との論理積を出力するものであり、ＯＲゲート７３は、ＡＮＤゲート７１の出力とＡＮＤゲート７２の出力との論理積をシフトレジスタ１６１−ｉ（２６１−ｉ）に出力するものである。
【０１５４】
このような構成により、セレクタ１７１−ｉ（２７１−ｉ）においては、クロック自動チューニングを行なわない時には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”がオフ（論理値０）であるので、シフトレジスタ１６１−ｉ（２６１−ｉ）には何も出力されない。
また、装置間データ転送についてのチューニングを行なう際であって第１装置１００（または第２装置２００）が受信側である場合には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ ＲＣＶ”がオン（論理値１）であり信号“＋ＡＵＴＯ ＴＵＮＥ ＳＥＮＤ”がオフ（論理値０）であるので、ラッチ１０４−ｉ（または２０４−ｉ）からのデータ信号ｈi が、ＡＮＤゲート７１およびＯＲゲート７３を通過してシフトレジスタ１６１−ｉ（または２６１−ｉ）に出力される。これにより、データパターン生成／検証回路１７０（または２７０）は、第１実施形態のデータパターン検証回路１６０（２６０）と同様の機能を果たすことになる。
【０１５５】
一方、装置間データ転送についてのチューニングを行なう際であって第１装置１００（または第２装置２００）が送信側である場合には、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ ＳＥＮＤ”がオン（論理値１）であり信号“＋ＡＵＴＯ ＴＵＮＥ ＲＣＶ”がオフ（論理値０）であるので、シフトレジスタ１６４−ｉ（または２６４−ｉ）からの信号ｂi が、ＡＮＤゲート７２およびＯＲゲート７３を通過してシフトレジスタ１６１−ｉ（または２６１−ｉ）に出力される。これにより、データパターン生成／検証回路１７０（または２７０）は、第１実施形態のデータパターン生成回路１２０（２２０）と同様の機能を果たすことになる。
【０１５６】
なお、ラッチ１０４−１〜１０４−ｎ（２０４−１〜２０４−ｎ）からデータパターン生成／検証回路１７０（２７０）に入力される、ｎビットのデータ信号の値が全て一致していることを保証できるのであれば、ｎビットのうちの１つのビットだけを対象にした検証を行なえば、構成装置１００と構成装置２００との間のデータ転送の検証を完了することができる。
【０１５７】
この場合、データパターン生成／検証回路１７０（２７０）におけるシフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉ）は１組（１ビット分）だけとすることが可能である。このとき、当然、デコーダ１６５−ｉや切替器１６６−ｉも１組（１ビット分）だけとなる。また、シフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉ），デコーダ１６５−ｉ（２６５−ｉ）や切替器１６６−ｉ（２６６−ｉ）を、数バイト毎あるいは数十バイト毎に１組そなえてもよい。
【０１５８】
従って、本実施形態のごとくデータパターン生成用のシフトレジスタとデータパターン検証用のシフトレジスタとを共用した場合、４段のシフトレジスタ１６１−ｉ，１６２−ｉ，１６３−ｉ，１６４−ｉ（２６１−ｉ，２６２−ｉ，２６３−ｉ，２６４−ｉ）を１組だけそなえれば、データパターン生成およびデータパターン検証の両方の機能を実現することが可能になる。ただし、この場合、構成装置１００，２００内の全データパスに試験データを渡すために、さらに数段のレジスタツリー構成を必要とする場合があり、データパターン検証タイミングは、そのレジスタツリーの段数に依存するが、固定タイミングであることには変わりない。
【０１５９】
さて、次に、第２実施形態のクロック自動チューニング制御回路（制御部）４００による自動チューニング手順の一例について、前述した７種類の信号(00)〜(06)のセット状態等を参照しながら、より具体的に説明する。以下に説明する自動チューニング手順や、構成装置１００，２００への信号のセットは、予め決められたソフトウェア命令を用い、制御部４００によって行なわれる。
【０１６０】
なお、ここで説明する手順(1) 〜(3) はあくまで一例であって、本発明はこの手順に限定されるものではない。例えば、以下の例ではＥ(Early）クロック用のタップ値から調査を始めているが、Ｌ(Late)クロック用のタップまたはＮ(Normal)クロック用のタップ値から調査を始めてもよい。また、ここでは、第１装置１００から第２装置２００への装置間データ転送についてのチューニングを行なう場合を主として説明する。
【０１６１】
(1) まず、全てのクロックの供給を停止する。
(2) 構成装置１００，２００のそれぞれに対してのデータパスを選択するとともにチェック機構を選択し、構成装置１００，２００のそれぞれにおいて、前述した制御信号(00)〜(06)のオン／オフを、後述するごとく適宜選択・設定しながらクロック自動チューニングを行なう。
【０１６２】
(2-1)ＮクロックとＥクロックとの間のチューニング
まず、第１装置１００において、Ｎクロックを供給されるラッチ１０１−ｉから、Ｅクロックを供給されるラッチ１０２−ｉへのデータ転送を検証する。このため、第１装置１００において、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ”をオン（論理値１）に設定してから、“１”と“０”とを繰り返し転送し、Ｅクロック用のタップ値の窓（動作可能な位相関係範囲）と最適値とを調査する。なお、第２装置２００から第１装置１００への装置間データ転送についての、ＮクロックとＥクロックとの間でチューニングを行なう場合には、第２装置２００において、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｎ ＴＯ Ｅ”をオン（論理値１）に設定してから、“１”と“０”とを繰り返し転送し、Ｅクロック用のタップ値の窓（動作可能な位相関係範囲）と最適値とを調査する。
【０１６３】
(2-2)ＬクロックとＮクロックとの間のチューニング
ついで、第２装置２００において、Ｌクロックを供給されるラッチ２０３−ｉから、Ｎクロックを供給されるラッチ２０４−ｉへのデータ転送を検証する。このため、第２装置２００において、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”をオン（論理値１）に設定してから、“１”と“０”とを繰り返し転送し、Ｌクロック用のタップ値の窓（動作可能な位相関係範囲）と最適値とを調査する。なお、第２装置２００から第１装置１００への装置間データ転送についての、ＬクロックとＮクロックとの間でチューニングを行なう場合には、第１装置１００において、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”および信号“＋ＡＵＴＯ ＴＵＮＥ Ｌ ＴＯ Ｎ”をオン（論理値１）に設定してから、“１”と“０”とを繰り返し転送し、Ｌクロック用のタップ値の窓（動作可能な位相関係範囲）と最適値とを調査する。
【０１６４】
(2-3)ＥクロックとＬクロックとの間のチューニング
そして、第１装置１００においてＥクロックを供給されるラッチ１０２−ｉから、第２装置２００においてＬクロックを供給されるラッチ２０３−ｉへのデータ転送を検証する。このため、第１装置１００において、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”，信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”および信号“＋ＡＵＴＯ ＴＵＮＥ ＳＥＮＤ”をオン（論理値１）に設定するとともに、第２装置２００において、信号“＋ＡＵＴＯ ＴＵＮＥ ＵＮＩＴ”，信号“＋ＡＵＴＯ ＴＵＮＥ Ｅ ＴＯ Ｌ”および信号“＋ＡＵＴＯ ＴＵＮＥ ＲＣＶ”をオン（論理値１）に設定する。この後、前述した項目（２−１）および項目（２−２）で得られたＥクロック用窓タップ値とＬクロック用窓タップ値とを組み合わせ、第１装置１００におけるラッチ１０１−ｉおよびラッチ１０２−ｉと、第２装置２００におけるラッチ２０３−ｉおよびラッチ２０４−ｉとに、データパターン生成／検証回路１７０（シフトレジスタ１６１−ｉ〜１６４−ｉ）からのシリアルデータを転送し、ＥクロックおよびＬクロックのそれぞれについて最適のタップ値を調査する。
【０１６５】
(3) 全てのクロックの供給を開始して、クロック自動チューニングを完了する。
このように、本発明の第２実施形態としてのクロック自動チューニング制御システムによれば、第１実施形態と同様の作用効果を得られるほか、データパターン生成／検証回路１７０（２７０）がデータパターン生成およびデータパターン検証の両方の機能を果たすことになるので、シフトレジスタの数を削減することができ、システムの構成をより簡素化することができる。
【０１６６】
〔３〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、第１データパターン生成回路１２０，第２データパターン生成回路２２０やデータパターン生成／検証回路１７０，２７０により生成されたデータパターンを、装置間データ転送時のクロック位相をチェックするために用いているが、そのデータパターンを、装置内データ転送（ラッチ間データ転送）時のクロック位相をチェックするために用いてもよい。このようにすれば、インバータ１３１−１〜１３１−ｎ，１３２−１〜１３２−ｎ，２３１−１〜２３１−ｎ，２３２−１〜２３２−ｎを省略することができる。
【０１６７】
また、上述した実施形態では、データパターンが４ビットである場合について説明したが、本発明は、これに限定されるものでなく、３ビット以上のデータパターンを構成装置１００，２００間で転送するように構成すれば、２ビット以上の位相ズレを生じる可能性のある、装置間データ転送のクロック位相チェックを行なうことが可能である。
【０１６８】
さらに、上述した実施形態では、２台の構成装置１００，２００間でのデータ転送のクロック位相チェックを行なっているが、３台以上の構成装置をそなえる場合には、相互にデータ転送を行なう構成装置間で、上述と同様にして装置間データ転送の検証が行なわれることになる。
またさらに、上述した実施形態では、クロック位相の調整を７つのタップの切替・選択により行なう例について説明したが、本発明はこれに限定されるものではなく、より多数のタップの切替・選択や、無段階調整により行なうようにしてもよい。
【０１６９】
さらにまた、上述した実施形態では、構成装置間でのデータ転送が１クロックで行なわれるようにクロック自動チューニングを行なう場合について説明したが、本発明はこれに限定されるものではなく、１クロックの場合と同様の手順・手法により、２以上のクロックサイクル以内で構成装置間でのデータ転送〔あるいは装置内（ラッチ間）データ転送〕が行なわれるようにクロック自動チューニングを行なうことも可能である。
【０１７０】
【発明の効果】
以上詳述したように、本発明のクロック自動チューニング方法およびクロック自動チューニング制御システム並びに情報処理装置によれば、以下のような効果ないし利点が得られる。
（１）新たな装置間信号や装置内信号を設けることなく情報処理システム等の設置時や増設／置換時にクロックの位相関係を自動で迅速に最適化することができるので、クロックチューニングに要する労力が大幅に削減される。
【０１７１】
（２）データ転送検証のために新たな装置間信号や装置内信号を設ける必要がないので、新規システム開発やマルチプロセッサ化に伴いシステム構成規模が大幅に拡大しても、複数のシステムクロックの位相関係を容易に最適化することができる。
（３）無駄な動作マージンの保証が不要になり実運用時に必要な動作マージンのみを保証すればよくなるので、情報処理システム等の性能を抑え込む必要がなくなり、その性能を最大限発揮させることができ、処理能力および信頼性の高いシステムの提供が可能になる。
【０１７２】
（４）ユーザ先（情報処理システム等の設置先）で自動的にクロックチューニングを行なうことができるので、実運用環境下でのクロックチューニングが可能であり、より一層信頼性の高いシステムの提供が可能になる。
（５）構成情報比較機能を用いることにより、構成変更箇所に係るシステムクロックの位相関係のみを検証対象とすることができるので、構成装置交換時あるいは構成変更時に、必要最小限かつ充分な検証動作が行なわれ、迅速に信頼性の高いシステムを提供することができる。
【０１７３】
（６）リザーブデータバスを検証対象に組込み可能とする制御系（論理回路）をそなえることにより、情報処理システムの機能拡張等に柔軟に対応しながらデータ転送の検証を行なうことができる。
（７）データパターン生成用のラッチとデータパターン検証用のラッチとを兼用することにより、シフトレジスタの数を削減することができ、システムの構成をより簡素化することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態としてのクロック自動チューニング制御システムの全体構成を示すブロック図である。
【図２】本実施形態におけるシステムクロック分配系の構成を示すブロック図である。
【図３】本発明の第１実施形態としてのクロック自動チューニング制御システムにおけるデータパターン生成回路の構成を示すブロック図である。
【図４】本発明の第１実施形態としてのクロック自動チューニング制御システムにおけるデータパターン検証回路の構成を示すブロック図である。
【図５】本実施形態におけるデータパターン検証回路の組込み制御系の構成を示すブロック図である。
【図６】本実施形態のクロック位相調整回路の構成およびクロック位相調整手法について説明するためのブロック図である。
【図７】本実施形態のクロック位相決定手法を説明するための図である。
【図８】本実施形態の情報処理システム立ち上げ時におけるクロック自動チューニングの起動手順を概略的に説明するためのフローチャートである。
【図９】本実施形態におけるセレクタの詳細構成を示すブロック図である。
【図１０】本実施形態のデータパターン検証回路における切替器の詳細構成を示すブロック図である。
【図１１】本実施形態を適用されるシステムの全体構成の一例を示すブロック図である。
【図１２】本実施形態を適用されるシステムにおける制御信号の流れを説明するための図である。
【図１３】本発明の第２実施形態としてのクロック自動チューニング制御システムの全体構成を示すブロック図である。
【図１４】本発明の第２実施形態としてのクロック自動チューニング制御システムにおけるデータパターン生成／検証回路の構成を示すブロック図である。
【図１５】第２実施形態のデータパターン生成／検証回路におけるセレクタの詳細構成を示すブロック図である。
【符号の説明】
４１，５１  インバータ
４２〜４６，５２，５３，６１〜６４，７１，７２  ＡＮＤゲート
４７，５４，７３  ＯＲゲート
１００  構成装置（第１装置，送信側装置／受信側装置，ＭＣＵ）
１０１−１〜１０１−ｎ  ラッチ
１０２−１〜１０２−ｎ  第１送信ラッチ
１０３−１〜１０３−ｎ  第１受信ラッチ
１０４−１〜１０４−ｎ  ラッチ
１１０  第１クロック位相調整回路
１１１  タップセレクタ
１２０  第１データパターン生成回路
１２１−１〜１２１−ｎ，１２２−１〜１２２−ｎ，１２３−１〜１２３−ｎ，１２４−１〜１２４−ｎ  シフトレジスタ（ラッチ）
１２５−１〜１２５−ｎ，１２６−１〜１２６−ｎ，１２７−１〜１２７−ｎ，１２８−１〜１２８−ｎ  セレクタ
１３１−１〜１３１−ｎ，１３２−１〜１３２−ｎ  インバータ
１４０−１〜１４０−ｎ  セレクタ（第１切替回路）
１５０−１〜１５０−ｎ  セレクタ
１６０  第１データパターン検証回路
１６０′  データパターン検証回路
１６１−１〜１６１−ｎ，１６２−１〜１６２−ｎ，１６３−１〜１６３−ｎ，１６４−１〜１６４−ｎ  シフトレジスタ（ラッチ）
１６５−１〜１６５−ｎ  デコーダ
１６６−１〜１６６−ｎ  切替器
１６７  クロックカウンタ
１６８  チェック回路
１７０  データパターン生成／検証回路
１７１−１〜１７１−ｎ，１７２−１〜１７２−ｎ，１７３−１〜１７３−ｎ，１７４−１〜１７４−ｎ  セレクタ
２００  構成装置（第２装置，送信側装置／受信側装置，ＣＰＵ）
２０１−１〜２０１−ｎ  ラッチ
２０２−１〜２０２−ｎ  第２送信ラッチ
２０３−１〜２０３−ｎ  第２受信ラッチ
２０４−１〜２０４−ｎ  ラッチ
２１０  第２クロック位相調整回路
２１１  タップセレクタ
２２０  第２データパターン生成回路
２２１−１〜２２１−ｎ，２２２−１〜２２２−ｎ，２２３−１〜２２３−ｎ，２２４−１〜２２４−ｎ  シフトレジスタ（ラッチ）
２２５−１〜２２５−ｎ，２２６−１〜２２６−ｎ，２２７−１〜２２７−ｎ，２２８−１〜２２８−ｎ  セレクタ
２３１−１〜２３１−ｎ，２３２−１〜２３２−ｎ  インバータ
２４０−１〜２４０−ｎ  セレクタ（第２切替回路）
２５０−１〜２５０−ｎ  セレクタ
２６０  第２データパターン検証回路
２６０′  データパターン検証回路
２６１−１〜２６１−ｎ，２６２−１〜２６２−ｎ，２６３−１〜２６３−ｎ，２６４−１〜２６４−ｎ  シフトレジスタ（ラッチ）
２６５−１〜２６５−ｎ  デコーダ
２６６−１〜２６６−ｎ  切替器
２６７  クロックカウンタ
２６８  チェック回路
２７０  データパターン生成／検証回路
２７１−１〜２７１−ｎ，２７２−１〜２７２−ｎ，２７３−１〜２７３−ｎ，２７４−１〜２７４−ｎ  セレクタ
３１２，３２１  データバス
３３０  リザーブデータバス
３３１，３３４  ＯＲゲート（論理回路）
３３２，３３３  ＡＮＤゲート（論理回路）
４００  クロック自動チューニング自動制御回路（制御部）
５００  ＰＬＬ回路
６００  ＳＹＳＣＤ（システムクロック分配機構）
６１０  クロック位相調整回路
７０１  ＳＶＰ
７０２  ＳＣＩ
７０３  ＭＣＵ（構成装置，第１装置）
７０４  ＣＰＵ（構成装置，第２装置）
７０５  ＭＳＵ（構成装置）
７０６  ＣＨＰ（構成装置）
７０３ａ〜７０６ａ  レジスタ
【図１】
0004227262.tif 000003
【図２】
0004227262.tif 000004
【図３】
0004227262.tif 000005
【図４】
0004227262.tif 000006
【図５】
0004227262.tif 000007
【図６】
0004227262.tif 000008
【図７】
0004227262.tif 000009
【図８】
0004227262.tif 000010
【図９】
0004227262.tif 000011
【図１０】
0004227262.tif 000012
【図１１】
0004227262.tif 000013
【図１２】
0004227262.tif 000014
【図１３】
0004227262.tif 000015
【図１４】
0004227262.tif 000016
【図１５】
0004227262.tif 000017