(57)【特許請求の範囲】
【請求項１】
送信部と受信部がデータ転送経路を通して接続された機能ブロック間におけるデータの同期転送のための位相調整方式であって、
送信部は、位相を調整するための位相調整パターンデータを生成する位相調整パターン発生手段を有し、
受信部は、受信データを任意に遅延させる可変遅延手段と、前記可変遅延手段を通過した位相調整パターンデータが受信クロックにより正しく受信ラッチにラッチできたか否かをチェックするデータチェック手段と、前記可変遅延手段を通過して前記受信ラッチにラッチされる直前の位相調整パターンデータをもとに、前記受信ラッチに与えられる受信クロックからあらかじめ決められた範囲内にデータ不確定領域が存在するか否かのエッジ検出を行うエッジ検出手段と、前記可変遅延手段の遅延量を変化させながら、順次、前記データチェック手段のデータチェック結果及び前記エッジ検出手段のエッジ検出結果を入力して、データチェック結果あるいはデータチェック結果とエッジ検出結果の両方をもとに前記可変遅延手段の遅延量を最適に設定する位相制御手段とを有し、
前記位相制御手段は、前記可変遅延手段の各遅延量に対する前記データチェック手段のデータチェック結果を記憶する第１記憶手段と、前記可変遅延手段の各遅延量に対する前記エッジ検出手段のエッジ検出結果を記憶する第２記憶手段と、前記可変遅延手段の全遅延量に対するデータチェック結果データのとりうるパターン、及び、前記可変遅延手段の全遅延量に対するデータチェック結果データとエッジ検出結果のデータを合わせたデータのとりうるパターンと前記可変遅延手段の最適遅延量との対応をあらかじめ定めたテーブルと、前記第１記憶手段の記憶値に基づき、前記テーブルから、前記第１記憶手段の記憶値のパターンあるいは前記第１記憶手段と前記第２記憶手段の両方の記憶値をあわせたパターンに対応する遅延量を選択して前記可変遅延手段に設定する制御論理手段とからなる、
ことを特徴とする位相調整方式。
【請求項２】
請求項１記載の位相調整方式において、
前記テーブルは、前記データチェック結果データのとりうるパターン、及び、前記データチェック結果データと前記エッジ検出結果データを合わせたデータの取り得るパターン対応に、伝送路に障害があるか否かを表わすエラービットをさらに有し、
前記制御論理手段は、前記テーブルを参照し、前記第１記憶手段の記憶値のパターンあるいは前記第１記憶手段と前記第２記憶手段の両方の記憶値をあわせたパターンに対応するエントリのエラービットにより、当該データ転送経路に障害があるかどうか判断することを特徴とする位相調整方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機能ブロック間でデータの同期転送を行う際のデータ転送経路の位相を調整する方式に係り、特に並列計算機やデータ交換機のような装置の機能ブロック間におけるデータの同期転送に好適な位相調整方式に関する。
【０００２】
【従来の技術】
従来、装置の機能ブロック間においてデータを同期転送する場合のパスディレイは、その転送経路（パス）をモデル化した電気回路に置き換え電気回路シミュレーションを用いて求めたり、該転送経路を各部品毎に分離し、部品毎に実験し求めたディレイ結果をそれぞれの部品に当てはめ、簡略された特別な計算式を用いて転送経路全体のディレイを求めていた。そして、求めたパスディレイに対し、そのパスディレイが設計した時間を満たしているかを検証し、満たされていなければその転送経路を見直し、回路の変更を行い、再び変更した転送経路のディレイ計算を前記手法により行なっていた。更に、この転送経路のディレイ計算結果が設計した時間を満たすまで回路変更、ディレイ計算を繰り返していた。
【０００３】
このような試行錯誤的な繰り返しを緩和するために、例えば、特開平７−２８３８１９号公報には、転送経路にディレイ回路を挿入し、実際に転送を行い、その結果に応じて転送エラーが起きないディレイをディレイ回路に設定することが示されている。この発明では、装置内の機能ブロック間で同期転送を行う転送経路において、当初は該転送経路にディレイ回路だけを装備し調整者がその転送経路に対するディレイを該ディレイ回路に設定する。一方、調整者が新しいシステムを接続する度に該ディレイ回路に適切なディレイを設定しなくてもいいように、システムに制御部を具備する。該制御部は、自動的に複数の転送経路に対し転送経路毎にテストパケットを送信し、送信部に具備したディレイ回路のディレイを最大値から次第に小さくする方向に変えながら正しく該テストパケットが転送できたディレイＭＡＸと、送信部に具備したディレイ回路のディレイを最小値から次第に大きくする方向に変えながら正しく該テストパケットが転送できたディレイＭＩＮとを求め、転送経路毎の送信部に具備したディレイ回路に（ＭＡＸ＋ＭＩＮ）／２としたディレイを設定する機能と、該転送経路毎に設定したディレイを記憶する機能と、装置が立ち上がる際にその記憶しておいたディレイを該転送経路毎の該ディレイ回路に設定する機能を有している。
【０００４】
なお、２つの信号の位相を比較し、その位相差の程度を検出する回路として関連するもには、例えば特開平２−１６８７５４号公報があり、さらにスキューを補正する回路として関連するものには、例えば特開昭６３−３０５６１２号公報などがある。
【０００５】
【発明が解決しようとする課題】
機能ブロック間でデータ同期転送を行う装置を設計する際、その転送経路のディレイ計算結果が実際のディレイと合致していることが重要である。同期転送は、送信側にて、送信ラッチに供給する送信クロックで叩かれた送信データが転送経路を通り、受信側にて、受信ラッチに供給する受信クロックで叩かれるタイミングで該送信データが受信ラッチに取り込まれることで行われている。つまり、転送経路のディレイが受信ラッチの受信クロックとぶつかっていないことを保証しなければ、同期転送はできない。
【０００６】
一般的には送信ラッチから受信ラッチまでのディレイを予め正確に計算することは非常に困難であり、また、仮に求められたとしても、その計算量は膨大であり、全ての転送経路を計算することは不可能である。そこで、各部位毎に不確定要因を含んだあらかじめ大き目のディレイを想定し、それらを簡略化した計算式を用いて計算し、実際の転送経路で転送エラーが起きないように考慮している。しかし、あらかじめ大き目のディレイを想定することは、いたずらにディレイを大きく見ることになり、最適なタイミング設計を阻害することになる。
【０００７】
タイミング設計で考慮すべき点の一つは、受信ラッチにデータを正しく取り込むためには、そのラッチに規定されているセットアップタイムとホールドタイムを加えた時間帯に入力データが変化しないことを保証することである。入力データを変化させてはいけない時間帯はそのラッチに与えられるクロック信号を基準にして前後に存在するため、その時間帯に送信データのデータ不確定領域が来ないように転送経路のディレイを調節する（タイミング設計する）必要がある。そしてもう一つは、ラッチに供給するクロックのスキューやジッタそして製造過程における物のばらつき、転送経路の電気的特性、温度・電圧・湿度などの動作環境のばらつき等による転送経路のディレイの変化がある。
【０００８】
タイミング設計において重要なことは、想定する動作環境の中で装置が正常に動作し続けることができるように、予め環境によるディレイのばらつきを考慮し余裕を持った設計をすること、つまり、動作マージンが大きくなるように設計することである。具体的に動作マージンを大きくするということは、データの不確定領域をラッチのセットアップタイムとホールドタイムを加えた時間帯からできるだけ離れたポイントに設計することである。動作マージンを小さく設計すると、データの不確定領域がたとえ設計した時間帯に入っていたとしても、ラッチのセットアップタイムとホールドタイムを加えた時間帯に近ければ、先に示したような動作環境の変化により発生する様々なノイズによりデータの不確定領域が広がったり、ディレイの大きい方に移動したり、小さい方に移動したりするため、小さなノイズの影響でデータの不確定領域がセットアップタイムとホールドタイムを加えた時間帯に入ってしまい誤動作を引き起こしてしまう。従って、環境におけるノイズ、および、大量生産による製造ばらつきによって転送データが簡単にエラーにならないように、できるだけセットアップタイムとホールドタイムを加えた時間帯から離れたポイントにデータの不確定領域が来るようにディレイを設計することが課題となる。
【０００９】
一方、開発コストの低減および製品原価の低減を進める為に、設計の共通化および部品の共通化が図られる。また、並列計算機のような装置では、その特徴から同一部品が多く使われる。従って、同一品種の部品間で異なる複数の転送経路が存在することとなり、これらの異なる複数の転送経路に対するタイミング設計が問題になる。つまり、転送経路毎にその環境に対するばらつきやディレイが異なるが、共通設計する場合は該ばらつきの最大のばらつきを代表としてディレイ設計することになり、設計を閉じるまで多くの時間を要すること、また、最適なディレイ設計ができないことになることが問題である。したがって、転送経路毎のばらつきの最大のばらつきを用いてディレイ設計することなく部品を共通に設計できる手段を設けることがもつ一つの課題である。
【００１０】
従来技術では、異なる複数の転送経路に対して一つずつ制御しなければならないため、転送経路が多い場合の制御について考慮がされておらず、調整を行う時間が非常に長くなる問題があった。また、データの不確定領域の広がりに対する考慮がされておらず、チェックするディレイが離散的であるにも係わらず、必ずいづれかのディレイにおいて転送エラーが発生することを期待しているため、データの不確定領域の広がりがディレイ回路の可変単位よりも小さい場合にはどのディレイにおいても転送エラーが発生しないといった現象が発生し、結果として、誤ったディレイを設定してしまうという問題があった。
【００１１】
さらに、従来技術では、ディレイ回路に設定する値は、装置導入後の調整段階において決定し、その後は、記憶しておいた値を、装置が初期設定する際に再びディレイ回路に設定する機能であるため、装置導入後の各素子の経年変化や動作環境の変化に対応できないという問題があった。
【００１２】
本発明の第一の目的は、異なる複数の同期転送経路を有する装置において、個々の転送経路に対する位相の設定（ディレイの設定）を個々の転送経路の送受信部に具備する位相調整機構に対し同時に位相調整を行う指示をすることにより、並列計算機のようなスケーラブルに装置の構成を変更できるシステム、つまり転送経路がスケーラブルに増加する装置において、位相調整をする手順を変更することなく、また、一つの転送経路の位相調整をする時間で装置内全ての位相調整を完了させることにある。
【００１３】
本発明の第二の目的は、可変遅延回路が変えることができる基本遅延単位よりもデータの不確定領域の広がりが小さい場合においてもその不確定領域を正しく検出でき、常に動作マージンが最大になるディレイを誤り無く設定できるようにすることにある。
【００１４】
本発明の他の目的は、可変遅延回路が変えることができる個々のディレイで受信データをチェックしたパターンにより、該転送経路に何らかの障害があることを検出可能にすることにある。
【００１５】
【課題を解決するための手段】
本発明では、同期転送経路における送信部に位相調整パターン発生手段を設け、該送信部に対応する受信部に可変遅延手段、データチェック手段、エッジ検出手段、位相制御手段を設ける。送信部に具備した位相調整パターン手段は、伝送路において最大のノイズが発生するような位相調整パターンデータを繰り返し発生し続けており、該送信部内に具備するデータ切り替えセレクタにより位相調整パターン発生手段から発生している位相調整パターンデータが選択されると、該位相調整パターンデータが受信部に向けて伝送される。送信部と受信部とを接続する伝送路を伝播してきた位相調整パターンデータは、受信部の可変遅延手段でディレイした後、該受信部の受信ラッチで受け、該受信ラッチで受けたデータが正しいか否かをデータチェック手段で判定する。これとともに、受信部の可変遅延手段で遅延されたデータを、エッジ検出手段にて、該可変遅延手段が変えられるディレイの単位分の時間内にデータの切り替わりが無いか否かを判定する。位相制御手段は、可変遅延手段のディレイを順次変更し、各ディレイに対するデータチェック結果、あるいはデータチェック結果とエッジ検出結果を用いて、動作マージンが最大になるディレイを可変遅延手段に設定する。
【００１６】
具体的には、位相制御手段は、可変遅延手段の各遅延量に対するデータチェック手段のデータチェック結果を記憶する第１記憶手段と、可変遅延手段の各遅延量に対する前記エッジ検出手段のエッジ検出結果を記憶する第２記憶手段と、可変遅延手段の全遅延量に対するデータチェック結果データのとりうるパターン、及び、可変遅延手段の全遅延量に対するデータチェック結果データとエッジ検出結果のデータを合わせたデータのとりうるパターンと可変遅延手段の最適遅延量との対応をあらかじめ定めたテーブルと、第１記憶手段の記憶値に基づき、テーブルから、第１記憶手段の記憶値のパターンあるいは第１記憶手段と第２記憶手段の両方の記憶値をあわせたパターンに対応する遅延量を選択して前記可変遅延手段に設定する制御論理手段とからなる。
【００１７】
また、本発明では、位相制御手段は、各ディレイに対するデータチェック結果およびエッジ検出結果を用いて、通常ありえないパターンと比較するなどして、転送経路に何らしかの障害があることを検知し、外部に対し報告するなどの機能を備える。具体的には、前記テーブルに、前記データチェック結果データのとりうるパターン、及び、前記データチェック結果データと前記エッジ検出結果データを合わせたデータの取り得るパターン対応に、伝送路に障害があるか否かを表わすエラービットを付加する。制御論理手段は、テーブルを参照し、第１記憶手段の記憶値のパターンあるいは第１記憶手段と第２記憶手段の両方の記憶値をあわせたパターンに対応するエントリのエラービットにより、当該データ転送経路に障害があるかどうか判断する。
【００１８】
【発明の実施の形態】
以下、本発明の一実施例について図面により説明する。
図１は本発明の一実施例を示すブロック図である。図１において、１は一方の機能ブロックの送信部を示し、２は他方の機能ブロックの受信部を示している。送信部１はセレクタ１１、送信ラッチ１２及び位相調整パターン発生回路１３を具備する。受信部２は可変遅延回路２１、受信ラッチ２２、データチェック回路２３、エッジ検出回路２４及び位相制御回路２５を具備する。１０１〜１０８はデータ線であり、一般に複数ビットで構成されるが、機能ブロック間の伝送路は１ビット構成でもよい。
【００１９】
位相調整は、装置が機能ブロック間でデータを同期転送する動作の前に、その動作を完了させておく必要がある。その際、装置が伝送系を使用する際に発生する最大ノイズを、予め該伝送系に発生させる必要がある。位相調整パターン発生回路１３が、この伝送系に最大ノイズを発生させるパターンデータを自動的に生成する回路である。
【００２０】
伝送系のノイズには、該伝送系を駆動する為の電源から発生するノイズと信号が該伝送系を伝播する際に発生するノイズ（クロストーク等）がある。位相調整パターン発生回路１３には、それらのノイズを最大に発生させるため特殊なパターンを用意する。本実施例では、図２に示すように、位相調整を行う経路の全ビットを対象として、１サイクル「１」が続き、その後1サイクル「０」が続くパターンを規定時間繰り替えすと、次に２サイクル「１」が続き、２サイクル「０」が続くパターンを規定時間繰り返し、さらに３サイクル「１」が続き、３サイクル「０」が続くパターンを規定時間繰り返えした後、次に１ビットのみ他のビットとは反対のパターンになるように１サイクルから３サイクルまで前記同様パターンを繰り返す。そして、全てのビットがそれぞれ反対になるまで繰り返された後、再び１サイクル全ビット０・１からパターンを繰り返し発生する。図２では、１ビットに対するデータのみを示したが、位相調整パターン発生回路１３は、このようなパターンを各ビット（パリティビットも含む）について周期的に発生し続ける。
【００２１】
位相調整動作時、送信部１において、セレクタ１１はデータ線１０２を選択し、位相調整パターン発生回路１３が生成する伝達系に最大ノイズを発生せしめる位相調整パターンデータをデータ線１０３に出力する。送信ラッチ１２は、該データ線１０３上の位相調整パターンデータを送信クロック１１３に同期して取り込み、データ線１０４に送出する。セレクタ１１の切り替えは、外部のシステム制御ユニットなどから指示されるが、図１では省略してある。
【００２２】
受信部２では、位相調整パターンデータがデータ線１０５により受信され、可変遅延回路２１を通過してデータ線１０６に出力する。後述するように、本実施例では、可変遅延回路２１は８段階に遅延量を変えることができる。データ線１０６上の位相調整パターンデータを、受信ラッチ２２が受信クロック１１４に同期して取り込み、データ線１０７に出力する。データチェック回路２３は、受信クロック１１４に同期して、位相調整パターンデータが受信ラッチ２２に正しくラッチできたか否か、云い換えれば、受信ラッチ２２の出力が正しいデータであるか否か常時チェックしている。また、エッジ検出回路２４は、データ線１０６上の受信ラッチ２２直前の位相調整パターンデータのデータ不確定領域すなわち可変遅延回路２１通過後のデータの切り替わりが受信クロック１１４を基準にして所定範囲内に存在するか否かを検出する。位相制御回路２５は、可変遅延回路２１の遅延量を順次変更しながら、各ディレィに対するデータチェック回路２３およびエッジ検出回路２４からのデータチェック結果／エッジ検出結果を基に、制御線１１１を通して、可変遅延回路２１の遅延量をマージンが一番大きくなるように制御する。
【００２３】
上記位相調整後、通常の動作に切り替わる。通常動作では、送信部１は、外部からの指示でセレクタ１１がデータ線１０１の通常の送信データを選択し、送信ラッチ１２が該送信データを送信クロック１１３に同期して取り込み、データ線１０４へ送出する。受信部２は、該送信側からの通常データをデータ線１０５で受信し、可変遅延回路２１が該データを所定量遅延し、受信ラッチ２２が受信クロック１１４に同期して取り込み、データ線１０７へ出力す。ここで、可変遅延回路２１の遅延量は、位相制御回路２５により常に動作マージンを最大に保っように設定されているため、データを受信ラッチ２２に確実にラッチできる。
【００２４】
以下、データチェック回路２３、エッジ検出回路２４、位相制御回路２５について詳しく説明する。
【００２５】
図３は、データチェック回路２３の構成例を示す。データチェック回路２３は、データ線１０７上のデータをチェックするチェック回路３０１、チェック回路３０１で検査した結果が誤りであったことを示すチェックラッチ３０２から構成される。チェック回路３０１は例えばパリティチェック回路であるが、これ以外の回路でもよい。例えば、ＣＲＣ回路、コンペアチェック回路などでもよい。つまり、チェック回路３０１は受信ラッチ２２に受信データが間違いなくラッチされたか否かが判定でき、その結果、正常あるいは異常であることを出力できる回路であればなんでも良い。チェックラッチ３０２は、チェック回路３０１のチェック結果をクロック１１４に同期して取り込み、その情報は制御線１０９により位相制御回路２５へ報告される。また、チェックラッチ３０２は、制御線１１０を通して位相制御回路２５によりリセットされる。
【００２６】
図４はエッジ検出回路２４の構成例を示す。４０１〜４０７はラッチ、４０８は固定遅延回路、４０９〜４１５は論理素子を示している。入力データ線１０８のデータがラッチ４０１およびラッチ４０３に取り込まれる際に、取り込みクロックと該入力データの切り替わりが重なると、該ラッチ４０１およびラッチ２０３の出力がメタステーブルという状態になる。このメタステーブル状態は、ラッチの特性により一定時間で解消することが知られている。本実施例では、１クロック後にもう一度ラッチ４０２およびラッチ４０４で取り直すことで、該メタステーブル状態を取り除いている。ラッチ４０５，４０６は、入力データ線１０８の信号がラッチ４０１でラッチされた値と固定遅延回路４０８を通過後のラッチ４０３でラッチされた値とを比較した結果、該値が異なっていることを示すラッチである。また、ラッチ４０７は、該比較結果が異なっている場合に「１」を保持するラッチである。つまり、ラッチ４０７が「１」ということは、入力データ線１０８の信号が当該エッジ検出回路２４に供給しているクロック位置と該クロックから固定遅延回路４０８が持つディレイ分進んだ位置の間にデータの不確定領域があることを示している。該ラッチ４０７の情報は、制御線１１２により位相制御回路２５へ報告される。
【００２７】
図５は可変遅延回路２１の構成例を示す。５０１〜５０７は遅延単位回路であり、ある一定の遅延量（ディレイ）Δβをもっている。５１１〜５１７はディレイを切り替えるためのセレクタであり、位相制御回路２５より制御線１１１を通して与えられる制御信号により、デコーダ５２０を介して制御される。セレクタ５１１〜５１７は、デコーダ５２０からのセレクト信号が有効でない時は遅延単位回路（Δβ）からの信号を選択し、デコーダ５２０からのセレクト信号が有効である時はデータ線１０５の受信データを選択する。例えば、制御線１１１の制御信号の値が「２」であったとすると、セレクタ５１５だけがデータ線１０５の受信データを選択し、他のセレクタ５１１，５１２，５１３，５１４，５１６，５１７は遅延単位回路５０１，５０２，５０３，５０４，５０６，５０７からの信号を選択する。従って、データ線１０５の受信データは、セレクタ５１５を通り、遅延単位回路５０６、セレクタ５１６、遅延単位回路５０７、セレクタ５１７を通り抜けるため、該可変遅延回路２１でのディレイはΔβの２個分とセレクタ３個分を加えた値になる。このように、制御線１１１の制御信号の値に従って、データ線１０５の受信データがデータ線１０６へ通り抜けるまでのディレイΔβの個数が決まり、該可変遅延回路２１のディレイが決まる。なお、制御線１１１の制御信号の値によるディレイのばらつきを抑えるために、先頭の遅延単位回路５０１の入り口にセレクタ５１１と同じセレクタを付け加え、デコーダ５２０からあらたに７の信号を取り出し、そのセレクト信号線を該付け加えたセレクタに、セレクタ５１１〜５１７と同様に接続することでも良い。
【００２８】
図６は位相制御回路２５の構成例を示す。制御論理部６０１は該位相制御回路２５の動作全体の制御を行う論理部である。該制御論理部６０１は、外部のシステム制御ユニットなどとシステム制御線やシステム報告線などで接続されるが、図６では省略してある。ＳＱＢＳＹ６０２は該位相制御回路２５が位相調整動作を行っているか否かを示すフリップフロップであり、該位相制御回路に対して二重に起動がかけられることによる誤動作を防ぐ役目をしている。ＰＤＡＴＡ６０３は、データチェック回路２３でのデータチェック結果を各遅延単位毎に記憶するレジスタ、ＣＤＡＴＡ６０４はエッジ検出回路２４でのエッジ検出結果を各遅延単位毎に記憶するレジスタである。本実施例では、可変遅延回路２１では８段階にディレィを変えることが可能であり、これに対応してＰＤＡＴＡ６０３およびＣＤＡＴＡ６０４の値を各レジスタは８ビットで構成されている。ＯＲ回路６０５はＰＤＡＴＡ６０３およびＣＤＡＴＡ６０４の値を各ビット単位に論理和する回路、セレクタ６０６は制御論理部６０１からの制御信号６０８でＰＤＡＴＡ６０３の出力あるいはＯＲ回路６０５の出力のいずれかを選択する回路、ＲＤＡＴＡ６０７はセレクタ６０６の出力を記憶するレジスタである。ＲＤＡＴＡ６０７のレジスタは、ＰＤＡＴＡ６０３およびＣＤＡＴＡ６０４と同様に８ビットである。
【００２９】
動作マージンが最大になるデイレィの可変遅延回路２１への設定値はＰＤＡＴＡ６０３、ＣＤＡＴＡ６０４の値の組み合わせから予め計算で求める。本実施例では、その計算結果に基づいた一覧表の表（１）６１０、表（２）６２０を作成し、位相制御回路２５に記憶させておく，図９は表（１）６１０の例であり、ＰＤＡＴＡの値からＣＤＡＴＡの値を用いるか否かをエッジ検出結果の使用の有無の欄にて示している。「１」がＣＤＡＴＡ６０４の値を用いることを示し、「０」がＣＤＡＴＡ６０４の値を用いないことを示す。制御論理部６０１では、エッジ検出結果使用判定の表（１）６１０を参照して制御信号６０８によりセレクタ６０６の動作を制御する。図１０は表（２）６２０の例であり、可変遅延回路２１のディレィをＲＤＡＴＡ６０７の値から求める変換表を示している。ただし、ＲＤＡＴＡ６０７の値から動作マージンが最大になるディレィを定義してあるのと同時に正常な伝送路ではありえないＲＤＡＴＡ６０７値も表（２）６２０に定義し、伝送路に何らかの障害があることを示せるようにエラーの欄も定義する。しかし、伝送路に何らかの障害があっても正常に送信データが受信できるディレィがあれば、その中で動作マージンが最大になるような設定値を定義している。
【００３０】
次に、図６に示す位相制御回路２５の動作を図７乃至図１０により説明する。図７は位相制御回路２５における制御論理部６０１の全体的動作フローである。外部から位相調整を行う指示があると、まず、ＳＱＢＳＹ６０２が「１」か否かを判定する（ステップ７０２）。ＳＱＢＳＹ６０２が「１」とは、この位相制御回路２５が位相調整動作をおこなっている最中であることを示し、この場合、位相調整要求は無視され、位相制御回路２５に対し二重に起動がかけられることによる誤動作を防ぐ。ＳＱＢＳＹ６０２が「０」である場合、つまり、位相調整動作を位相制御回路２５が行っていない場合、該位相調整要求を受けつけ、位相調整動作に入ると同時にＳＱＢＳＹ６０２を「１」に設定する（ステップ７０３）。次に、位相制御ためのの初期化を行う（ステップ７０４，７０５，７０６）。まず、ＰＤＡＴＡレジスタ６０３，ＣＤＡＴＡレジスタ６０４の値を「０」にする（ステップ７０４）。なお、図７中の記号「＊」はレジスタ６０３，６０４の配列番号（０〜７）を示すと共に可変遅延回路２１に設定した値をも示している。次に、変数ｉを「０」にし、（ステップ７０５）、そして、可変遅延回路２１にディレイを「０」に設定する（ステップ７０６）。これで位相制御のための初期化が終了し、以降、可変遅延回路２１に設定するディレイ毎に以下の動作が繰り返される。
【００３１】
まず、データチェック回路２３内に具備するチェックラッチ３０２を制御線１１０を通して「０」にクリアする（ステップ７０７）。そして、データチェック回路２３およびエッジ検出回路２４にて受信データを検査し続ける判定時間を設定する（ステップ７０８）。該判定時間は送信部１内の位相調整パターン発生回路１３が生成する種々の位相調整パターンが一周期する時間を一単位として設定する。検査は位相調整パターンデータの任意の位置から開始されることになるが、設定する判定時間は、それが大きいほど長い時間をかけて変化するようなノイズを検出できる可能性がある。ステップ７０８で設定した時間だけ該当ディレイにおいて、データチェック回路２３での受信データのチェック結果を制御線１０９より取り込み、ＰＤＡＴＡ（ｉ）６０３に格納すると同時に、エッジ検出回路２４での受信データのエッジチェック結果を制御線１１２より取り込み、ＣＤＡＴＡ（ｉ）６０４に格納する（ステップ７０９，７１０）。判定時間経過後、次のディレイに対するデータのチェックを行うために変数ｉに「１」を加え（ステップ７１１）、可変遅延回路２１に対しｉに対応するディレイを設定する（ステップ７１２）。変更した変数ｉが「８」以下であれば（ステップ７１３）、ステップ７０７に戻り、再び変数ｉに対応するディレイに対する受信データのチェックを行い、ＰＤＡＴＡ（ｉ）６０３，ＣＤＡＴＡ（ｉ）６０４に格納する。変更した変数ｉが「８」以上であれば、可変遅延回路２１で変えることができる全てのディレイに対する受信データのチェックが完了したことになり、ＰＤＡＴＡ
（＊）６０３及び／又はＣＤＡＴＡ（＊）６０４の値から動作マージンが最大になるディレイを決定し、可変遅延回路２１に対し当該ディレイを設定する（ステップ７１４）。
【００３２】
以上で、位相調整の動作が完了したので、ＳＱＢＳＹ６０２を「０」に設定し、外部に対して位相調整の動作が完了したことを知らせる（ステップ７１５）。位相調整の動作をおこなうタイミングは、装置を立ち上げる過程において行われるのはもちろんのことであるが、常に動作マージンを最大に保つため、装置が運用している最中においても、転送経路に通常データがいない時を見計らって位相調整を行うようにする。
【００３３】
図８は、図７に示したステップ７１４を詳細に説明するための動作フローである。可変遅延回路２１で変えることができる全てのディレイに対するチェック結果がＰＤＡＴＡ（＊）６０３とＣＤＡＴＡ（＊）６０４に格納されると、まず、ＰＤＡＴＡ（＊）６０３の値を用いて、図９の表（１）６１０からエッジ検出結果使用の有無を読み取る（ステップ８０２）。読み取った結果、エッジ検出の使用の有無が「１」である時、オア回路６０５にてＰＤＡＴＡ（＊）６０３とＣＤＡＴＡ（＊）６０４を各ビット毎に論理和した演算結果をセレクタ６０８にて選択し、ＲＤＡＴＡ（＊）６０７に設定する。また、エッジ検出の使用の有無が
「０」である時、セレクタ６０８にてＰＤＡＴＡ（＊）６０３の値をセレクタ６０８にて選択し、そのままＲＤＡＴＡ（＊）６０７に設定する（ステップ８０３，８０４，８０５）。次に、ＲＤＡＴＡ（＊）６０７の値を用いて、図１０の表（２）６２０から遅延量とエラーとを読み取る（ステップ８０６）。そして、この読み取った遅延量を制御線１１１を通して可変遅延回路２１に設定する（ステップ８０７）、ここで、読み取ったエラー値が「１」であれば、エラーであることを当該位相制御回路２５に設定し、ステップ７１４が完了する（ステップ８０９）。読み取ったエラー値が「０」である場合、そのままステップ７１４が完了する。
【００３４】
例えば、ＰＤＡＴＡ（＊）６０３の値が「００００００１１」で、ＣＤＡＴＡ（＊）６０４の値が「００００１１１１」である時、図９の表（１）６１０の９０４行目とＰＤＡＴＡ（＊）６０３の値が一致するので、図９の表からエッジ検出の使用の有無は「１」と読み取れる。エッジ検出の使用の有無が「１」であるので、ＰＤＡＴＡ（＊）６０３とＣＤＡＴＡ（＊）６０４を各ビット毎に論理和し、ＲＤＡＴＡ（＊）６０７は「００００１１１１」となる。このＲＤＡＴＡ
（＊）６０７の値は、図１０の表（２）６２０の１００５行目と一致する。そこで、位相制御回路２５の制御論理部６０１は、図１０の表の１００５行目から読み取った遅延量の値「１」を可変遅延回路２１に設定する。この場合、図１０の表の１００５行目のエラーの欄は「０」であるので、該位相制御回路２５にエラーは設定しない。
【００３５】
次に、図１１により本実施例の位相調整動作における波形の一例を説明する。送信部１から出力される波形は、送信クロック１１３により同期して切り替わり、そのためデータ不確定領域がデータ線１０４の送信データの波形のように発生する。該送信データは転送経路を通り受信部２へ到達する間にさまざまなノイズを受け、データ線１０５の受信データのように、データ不確定の範囲がデータ線１０４の送信データよりも広がる。データ線１０５の受信データは可変遅延回路２１を通過し１０６の波形となり、受信ラッチ２２に受信クロック１１４でラッチする。ここで、データ線１０６の受信データの波形は、可変遅延回路２１でディレイ０〜７の波形のように変化する。受信クロック１１４と送信クロックとの相対関係（スキュー）は、ジッタがあるものの位相は一定である。本位相調整の目的の一つは動作マージンを最大にすることである。これは、受信クロック１１４とデータ線１０６の受信データとの関係において、データ線１０６の受信データのデータ不確定を避けたデータ確定領域のちょうど真ん中に受信クロック１１４を持ってくるということと等価である。言い換えれば、データ線１０６の受信データのデータ不確定を避けたデータ確定領域のちょうど真ん中を、受信クロック１１４に合わせることである。つまり、動作マージンを最大にするということは、データ線１０６の受信データまたは受信クロック１１４のどちらか一方をディレイさせ、データ線１０６の受信データのデータ不確定領域と受信クロック１１４のラッチポイントが一致しないように、データ不確定領域を避けたデータ確定領域の真ん中に受信クロック１１４のラッチポイントがあるという関係にすることである。図１１の波形の例においては、ＰＤＡＴＡ（＊）の値が「１１０００００１」と判定され、ＣＤＡＴＡ（＊）の値が「１１００００１１」と判定されると、遅延量「４」が最大の動作マージンを得られる値となることは容易に理解できる。
【００３６】
次に、図５に示す可変遅延回路２１に実装する遅延単位回路５０〜５０７（Δβ）と総ディレイおよび図４に示すエッジ検出回路２４に実装する固定遅延回路４０８のディレイについて説明する。可変遅延回路２１に最低限必要な総ディレイは、データ線１０４の送信データは送信部１のラッチ１２から送信クロック１１３に同期して生成しており、データ線１０６の受信データは該送信クロック１１３と同じ周期で切り替わることから、データ線１０６の受信データのデータ不確定を避けたデータ確定領域のちょうど真ん中に該受信データの位相を持ってくれば良く、従って、送信クロックの１周期分あれば良いことは容易に理解できる。遅延単位Δβのディレイについては、総ディレイをｎ等分した値とする。遅延単位Δβのディレイは小さければ小さいほどよりデータ不確定を避けたデータ確定領域のちょうど真ん中に、つまり、動作マージンが一番大きくとれるディレイに設定できるが、可変遅延回路２１の論理規模が大きくなってしまいＬＳＩに実装することが困難になるとともに、本来、果たすべき機能を実装する論理が入らなくなってしまうため、装置全体の動作マージンのバランスを考慮して、つまり、この転送経路だけ突出して無駄に動作マージンが大きくならないように遅延単位Δβの値を決める必要がある。
【００３７】
次に、この遅延単位Δβが決まると、エッジ検出回路２４にある固定遅延回路４０８のディレイが決まる。エッジ検出回路２４はデータチェック回路２３で離散的にチェックした結果を補う形で具備している手段である。つまり、データチェック回路２３は可変遅延回路２１で設定できる段階的なディレイに対するポイントでのみ受信データをチェックしているため、ポイント間、つまり遅延単位Δβ分、受信データをチェックしていないことになる。この受信データをチェックしていない領域をチェックすることがエッジ検出回路２４の目的である。従って、固定遅延回路４０８は、最低、遅延単位Δβ分あればよいことが容易に分かる。しかし、図１１からも読み取れるように、固定遅延回路４０８のディレイが大きくなると、右下がり斜め線で示されるエッジ検出回路２４で検出する領域が広がるため、データ不確定領域が大きく見えることになり、結果として可変遅延回路２１に設定するディレイがデータ不確定を避けたデータ確定領域の真ん中からディレイの早い側に設定され、動作マージンが小さくなってしまう。
【００３８】
次に、図１２に本発明の位相調整方式を適用したシステムの一例を示す。１２０１は全ての機能ブロックの位相調整を制御するシステム制御ユニット、１２１０，１２１１，１２１２は機能ブロックＡ，Ｂ，Ｃを示す。機能ブロック（Ａ）１２１０と機能ブロック（Ｂ）１２１１との間は４つの転送経路を有しており、本例では、機能ブロック（Ｂ）１２１１と機能ブック（Ｃ）１２１２との間は２つの転送経路を有している。各転送経路にはそれぞれ送信部１および受信部２を具備している。図１は、これらの一組を示したものである。１２２０，１２２１，１２２２はシステム制御ユニット１２０１から各機能ブロック（Ａ）１２１０，（Ｂ）１２１１，（Ｃ）１２１２における各送信部１、受信部２の内部回路を制御するためのシステム制御線号であり、１２３０，１２３１，１２３２は各機能ブロック（Ａ）１２１０，（Ｂ）１２１１，（Ｃ）１２１２における受信部２の位相制御回路２５から報告されるシステム報告線である。
【００３９】
次に、図１２のシステムにおいて、機能ブロック（Ａ）１２１０と機能ブロック（Ｂ）１２１１の間の１２４０で示す転送経路について位相調整を動作させる時の手順の一例を図１３を用いて説明する。システム制御ユニット１２０１は、システム制御線１２２１により、位相調整を行なおうとしている転送経路１２４０の受信側に受信データを判定し続ける判定時間を設定する（ステップ１３０２）。また、システム制御線１２２０により、該転送経路１２４０の受信側に対応する送信側のセレクタを、位相調整パターン発生回路からの位相調整パターンデータが出力される方に切り替える（ステップ１３０３）。そして、該転送経路１２４０の該位相調整受信側の位相制御回路に対し位相調整の動作を指示する（ステップ１３０４）。その後、システム制御ユニット１２０１は、位相調整動作が完了したことを知るために、報告線１１３１を介し、該受信側の位相制御回路から読み取れるＳＱＢＳＹを監視し、該ＳＱＢＳＹ信号が「０」になったのを確認すると、該受信側の位相制御回路からエラー信号を読み取り（ステップ１３０６）、該エラー信号が「１」であれば、該受信側から事前に決めておいたエラー情報を採取し、例えば外部に対して該エラー情報を報告する（ステップ１３０７）。該エラー信号が「０」またはエラー情報採取後、システム制御ユニット１２０１は、システム制御線１２２０により、該転送経路１２４０の送信側に対応するセレクタを通常使用するデータパス側に切り替える（ステップ１３０８）。
【００４０】
図１３に示す一連の手順は、伝送路別に具備する位相調整回路にて独立して行うことができる。また、これら一連の手順は、位相調整回路毎に異なる設定がないため、システム全体を制御するシステム制御ユニット１２にて同時に行うことが可能である。
【００４１】
以上、本発明の一実施の形態を説明したが、同一ＬＳＩ内に複数の送信部がある場合には、各送信部毎に位相調整パターン発生回路を具備することはなく、ＬＳＩの実装に応じて複数の送信部で一つの位相調整パターン発生回路を共有してもよい。
【００４２】
また、伝送路は１ｂｉｔでも複数ｂｉｔで構成されていてもよく、また、可変遅延回路はｂｉｔ毎に個別にディレイが変えるようにしても、複数のｂｉｔ毎のディレイを一斉に変えるようにしてもよい。複数のｂｉｔ毎のディレイを一斉に変えるようにすると各ｂｉｔの伝送路のばらつきにより、各ｂｉｔのノイズが重畳されたように見える為、できるだけ可変遅延回路はｂｉｔ毎に個別にディレイが変えることができるようにしておくことで、動作マージンがより大きくなるように木目細かなディレイの設定ができる。
【００４３】
【発明の効果】
本発明によれば、転送経路毎に複雑なディレイ計算を必要せず、実際に転送した結果によりその転送経路の最適なディレイを自動的に選択するので、転送経路の全てのディレイ計算を必要とせず、ＬＳＩ等を容易に共通設計でき、設計するＬＳＩの品種が削減できることから、ＬＳＩの設計コストおよび製造コストを低減できる効果がある。
【００４４】
また、装置毎の動作環境によるディレイのばらつきおよび部品毎の製造過程で発生するディレイのばらつきを組み立てた後の設置環境にて位相を自動的に調整するため、装置毎にその装置の最大の動作マージンを自動的に得ることができる効果がある。
【００４５】
また、本発明は、エッジ検出回路を具備することでデータ不確定領域が可変遅延回路の遅延単位によるチェックポイント間隔よりも小さくなってもデータの不確定領域を見失うことが無いので、最大の動作マージンが得られるディレイを設定することが可能であるという効果がある。
【００４６】
また、本発明は、可変遅延回路の遅延単位毎にチェックした結果から設計上ありえないパターンを見つけ出すことで、転送経路に何らしかの障害があることを外部に知らせることができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例の構成図である。
【図２】位相調整パターン発生回路で発生する位相調整パターンデータの一例である。
【図３】図１のデータチェック回路の一例である。
【図４】エッジ検出回路の一例である。
【図５】可変遅延回路の一例である。
【図６】位相制御回路の一例である。
【図７】位相制御回路の動作フロー図である。
【図８】図７のフローの遅延量を決定する処理の詳細動作フロー図である。
【図９】エッジ検出結果使用判定表の一例である。
【図１０】遅延量を決定するための変換表の一例である。
【図１１】本実施例の位相調整動作における波形の一例である。
【図１２】本発明を適用したシステム構成の一例である。
【図１３】図１２のシステムによる位相調整動作のフロー図である。
【符号の説明】
１  送信部
２  受信部
１１  セレクタ
１２  送信ラッチ
１３  位相調整パターン発生回路
２１  可変遅延回路
２２  受信ラッチ
２３  データチェック回路
２４  エッジ検出回路
２５  位相制御回路
１０１〜１０８  データ線
１０９〜１１２  制御線
１１３，１１４  クロック
１２０１  システム制御ユニット
１２１０，１２１１，１２１２  機能ブロック
１２２０，１２２１，１２２２  システム制御線
１２３０，１２３１，１２３２  システム報告線
【図１】
0003710308.tif 000002
【図２】
0003710308.tif 000003
【図３】
0003710308.tif 000004
【図４】
0003710308.tif 000005
【図５】
0003710308.tif 000006
【図６】
0003710308.tif 000007
【図７】
0003710308.tif 000008
【図８】
0003710308.tif 000009
【図９】
0003710308.tif 000010
【図１０】
0003710308.tif 000011
【図１１】
0003710308.tif 000012
【図１２】
0003710308.tif 000013
【図１３】
0003710308.tif 000014