(57)【要約】【課題】  送信側・受信側両ノード間の信号の同期状態を維持することができる情報処理装置を提供することを目的とする。【解決手段】  スレーブ装置２との間でデータ転送を行うマスター装置１は、スレーブ装置２に対して同期伝送に用いるマスター側フレームクロック信号に同期させてマスターデータ信号を送信する送信器１３と、スレーブ装置２が同期伝送に用いるスレーブ側フレームクロック信号に同期させて送信するスレーブデータ信号を受信する受信器１４と、データ転送の実行中に、マスター側フレームクロック信号とスレーブ側フレームクロック信号の位相差変位の度合いを判定する受信タイミング検出ブロック１１１と、受信タイミング検出ブロック１１１の判定結果に基づきマスター側フレームクロック信号に対するスレーブ側フレームクロック信号の位相差変位を修正するため、データ受信時のラッチタイミングを変更するＣＰＵ１１とを備える。【選択図】          図２
2006262154.tif 000002
【特許請求の範囲】
【請求項１】
外部装置との間でデータ転送を行う情報処理装置であって、
前記外部装置に対して同期伝送に用いる第１のフレームクロック信号に同期させて第１のデータ信号を送信する送信手段と、
前記外部装置が同期伝送に用いる第２のフレームクロック信号に同期させて送信する第２のデータ信号を受信する受信手段と、
データ転送の実行中に、前記第１のフレームクロック信号と前記第２のフレームクロック信号の位相差変位の度合いを判定する判定手段と、
前記判定手段の判定結果に基づき前記第１のフレームクロック信号に対する前記第２のフレームクロック信号の位相差変位を修正するため、前記外部装置に対して前記第２のフレームクロック信号の位相設定値の変更を促すコマンドを送信する制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記第２のフレームクロック信号に同期したクロックと、前記第２のフレームクロックから位相を進めたクロックと、前記第２のフレームクロック信号から位相を遅らせたクロックを用いて、前記第１のフレームクロック信号と前記第２のフレームクロック信号の位相差を判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、前記外部装置における調整ステップ間隔に基づいて、前記第２のフレームクロック信号から位相を進めたクロックと、前記第２のフレームクロック信号から位相を遅らせたクロックをそれぞれ生成するための位相調整ステップ間隔を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１のフレームクロック信号および前記第２のフレームクロック信号は、同一の発振源を基準にして生成されることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第１のデータ信号および前記第２のデータ信号の少なくとも一方は、光伝送媒体を介して伝送されることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記第１のフレームクロック信号は、光伝送媒体を介して伝送されることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
請求項１から請求項６のいずれか一項に記載の情報処理装置と、前記情報処理装置との間で光伝送媒体を介してデータ転送を行う外部装置とを備えたシステム。
【請求項８】
外部装置に対して同期伝送に用いる第１のフレームクロック信号に同期させて第１のデータ信号を送信する送信ステップと、
外部装置が同期伝送に用いる第２のフレームクロック信号に同期させて送信する第２のデータ信号を受信する受信ステップと、
データ転送の実行中に、前記第１のフレームクロック信号と前記第２のフレームクロック信号の位相差変位の度合いを判定する判定ステップと、
前記判定ステップの判定結果に基づき前記第１のフレームクロック信号に対する前記第２のフレームクロック信号の位相差変位を修正するため、前記外部装置に対して前記第２のフレームクロック信号の位相設定値の変更を促すコマンドを送信するステップと
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、システムおよび情報処理方法に関する。
【背景技術】
【０００２】
従来、演算モジュールとメモリ・モジュール間を光伝送する装置が提案されている。この技術は特許文献１及び特許文献２で紹介されている。これは従来バス配線を電気的に接続したときの、消費電力の増加、コスト・アップ、スキューによる伝送エラーなどの課題を解決するというものである。光伝送を実現させるには、送信側と受信側には様々な手段が設けられている。具体的には、光電変換手段、電光変換手段、パラレル／シリアル変換手段、シリアル／パラレル変換手段、誤り訂正符号のエンコード／デコード手段、ＤＣバランスをとるための符号のエンコード／デコード手段、光伝送のためのクロックとデータのタイミング調整手段などがあり、これらを組み合わせることで正確な信号の送受信が可能となる。
【０００３】
ＣＰＵ（Central Processing Unit）バスのような双方向データバス信号を光ファイバ接続で実現しようとするとき、光信号の系統を送信側と受信側の２系統に分割する必要がある。ＣＰＵ側からメモリやＡＳＩＣ（Application Specific Integrated Circuit）にデータを書き込み（Ｗｒｉｔｅ）に行くとき、ＣＰＵ側では光信号送信側を、メモリやＡＳＩＣのある側では光信号受信側を使用し、逆にＣＰＵ側がメモリやＡＳＩＣのデータを読み取り（Ｒｅａｄ）に行くときはＣＰＵ側では光信号受信側を、メモリやＡＳＩＣのある側では光信号送信側を使用する。
【０００４】
ここで問題になるのが、ビット・エラー・レート（ＢＥＲ）の確保である。光ファイバを使うような高速シリアルデータ伝送においては、誤り訂正符号のエンコード／デコード手段を用意することが必須である。ＣＰＵバスにおけるデータの読み書きでは誤り発生時にデータを再送する余裕はなく、誤り訂正もリアルタイムで行う必要がある。物理レベルでのＢＥＲとエラー訂正アルゴリズムを組み合わせた状態での実質ＢＥＲが要求仕様を上回らなければならない。物理レベルでのＢＥＲの確保のためには、伝送路の距離の違い、結合損失の大小、部品の個体差などに起因する光量損失のバラツキを考慮して、発光素子ごとに適切な光強度の設定をするだけでなく、各ノードから送信されるデータと受信ノード側でそれをラッチするクロックとの間で同期が取れていることが求められる。
【０００５】
高速シリアルデータの伝送方式には、フレームクロック信号とデータ信号とを併送する方式、そしてフレームクロック信号は送らずデータ信号にクロック信号周波数を埋め込む方式（ＣＤＲ; Clock Data Recovery）がある。受信ノードにおいてシリアル信号をパラレル信号に復元するためにフレームクロック信号が必要であるが、ＣＤＲとＰＬＬ（Phase Locked Loop）回路等を組み合わせる方法でフレームクロック信号を自動生成することが可能である。
【０００６】
しかしながら、ＰＬＬ回路等から受信側のフレームクロック信号を生成する場合、入力信号の変化により安定化するまでに一定の時間（通常はミリ秒オーダ）を要するため、その間はシリアルデータの伝送が中断される。ノードが切り替わってからデータ転送が開始されるまでに、十分な時間の余裕があるシステムであれば、上記の中断は問題とならない。
【０００７】
しかし例えばＣＰＵとキャッシュメモリ間のデータ転送のように、メモリアクセス時間を極力短縮する必要のあるシステムにおいては、このような中断は全体システムの性能を大きく低下させてしまうので問題となる。そこで、上記事情に鑑み、シリアル伝送路によって接続された１対多のノード間伝送を高速に行うことができる信号伝送システムを提供することを目的とする方法が特許文献３で紹介されている。
【０００８】
この技術は、実データの送受信に先立ち、タイミング調整シーケンスを実行し、互いに異なるスレーブ装置から送られてきたシリアルデータであっても受信側マスター装置でそれをラッチするクロックにおいては同期が取れているように調整し、ノードの切り替わりが行われても、シリアルデータの伝送の中断が発生しないようにするものである。
【特許文献１】特開平１１−３９０６９号公報
【特許文献２】特開平１１−３９５２１号公報
【特許文献３】特開２００３−２４４１７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、タイミング調整シーケンスを実行してからの経過時間によっては、たとえば各スレーブ装置上のデバイス間の個体差、周囲温度などの環境変化などにより、各スレーブ装置とマスター装置間の同期状態を維持できなくなってくるという問題がある。
【００１０】
そこで、本発明は、上記問題点に鑑みてなされたもので、送信側・受信側両ノード間の信号の同期状態を維持することができる情報処理装置、システムおよび情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明は、外部装置との間でデータ転送を行う情報処理装置であって、前記外部装置に対して同期伝送に用いる第１のフレームクロック信号に同期させて第１のデータ信号を送信する送信手段と、前記外部装置が同期伝送に用いる第２のフレームクロック信号に同期させて送信する第２のデータ信号を受信する受信手段と、データ転送の実行中に、前記第１のフレームクロック信号と前記第２のフレームクロック信号の位相差変位の度合いを判定する判定手段と、前記判定手段の判定結果に基づき前記第１のフレームクロック信号に対する前記第２のフレームクロック信号の位相差変位を修正するため、前記外部装置に対して前記第２のフレームクロック信号の位相設定値の変更を促すコマンドを送信する制御手段とを有する情報処理装置である。
【００１２】
本発明によれば、位相ずれの傾向をデータ転送の実行中も常に監視し続けることができ、必要に応じて位相ずれを修正するために第２のフレームクロック信号の位相設定値の変更を促すコマンドを送信することで、双方向バス・システムのビット・エラー・レート（ＢＥＲ）を確保することが可能になる。これにより、シリアル伝送路によって接続された１対多のノード間伝送を行う際、送信側・受信側両ノード間の信号の同期状態を維持した、双方向バス・システムの実現することができる。
【００１３】
前記判定手段は、前記第２のフレームクロック信号に同期したクロックと、前記第２のフレームクロック信号から位相を進めたクロックと、前記第２のフレームクロック信号から位相を遅らせたクロックを用いて、前記第１のフレームクロック信号と前記第２のフレームクロック信号の位相差を判定することを特徴とする。
【００１４】
前記判定手段は、前記外部装置における調整ステップ間隔に基づいて、前記第２のフレームクロック信号から位相を進めたクロックと、前記第２のフレームクロック信号から位相を遅らせたクロックをそれぞれ生成するための位相調整ステップ間隔を決定することを特徴とする。前記第１のフレームクロック信号および前記第２のフレームクロック信号は、同一の発振源を基準にして生成されることを特徴とする。前記第１のデータ信号および前記第２のデータ信号の少なくとも一方は、光伝送媒体を介して伝送されることを特徴とする。前記第１のフレームクロック信号は、光伝送媒体を介して伝送されることを特徴とする。
【００１５】
本発明のシステムは、上記情報処理装置と、前記情報処理装置との間で光伝送媒体を介してデータ転送を行う外部装置とを備えたシステムである。
本発明は、外部装置に対して同期伝送に用いる第１のフレームクロック信号に同期させて第１のデータ信号を送信する送信ステップと、外部装置が同期伝送に用いる第２のフレームクロック信号に同期させて送信する第２のデータ信号を受信する受信ステップと、データ転送の実行中に、前記第１のフレームクロック信号と前記第２のフレームクロック信号の位相差変位の度合いを判定する判定ステップと、前記判定ステップの判定結果に基づき前記第１のフレームクロック信号に対する前記第２のフレームクロック信号の位相差変位を修正するため、データ受信時のラッチタイミングを変更する変更ステップとを有する情報処理方法である。
【００１６】
本発明によれば、位相ずれの傾向をデータ転送の実行中も常に監視し続けることができ、必要に応じて位相ずれを修正するために受信データのラッチタイミング変更を促すことで、双方向バス・システムのビット・エラー・レート（ＢＥＲ）を確保することが可能になる。これにより、シリアル伝送路によって接続された１対多のノード間伝送を行う際、送信側・受信側両ノード間の信号の同期状態を維持した、双方向バス・システムの実現することができる。
【００１７】
本発明は、外部装置に対して同期伝送に用いる第１のフレームクロック信号に同期させて第１のデータ信号を送信する送信ステップと、外部装置が同期伝送に用いる第２のフレームクロック信号に同期させて送信する第２のデータ信号を受信する受信ステップと、データ転送の実行中に、前記第１のフレームクロック信号と前記第２のフレームクロック信号の位相差変位の度合いを判定する判定ステップと、前記判定ステップの判定結果に基づき前記第１のフレームクロック信号に対する前記第２のフレームクロック信号の位相差変位を修正するため、前記外部装置に対して前記第２のフレームクロック信号の位相設定値の変更を促すコマンドを送信するステップとを有する情報処理方法である。
【発明の効果】
【００１８】
本発明によれば、送信側・受信側両ノード間の信号の同期状態を維持することができる情報処理装置、システムおよび情報処理方法を提供できる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態について説明する。
【００２０】
図１は、本発明に係る双方向光伝送システムの構成例を示す概略図である。機構系の動作や画像系処理用のＡＳＩＣなどを制御する場合などに使われるＣＰＵには、ＣＰＵとその周辺デバイスを電気的に接続し制御するためにＣＰＵインターフェースとも呼ばれるＣＰＵバスがある。そのＣＰＵバスの双方向データバスを光ファイバ接続で実現しようとするとき、図１に示すように、光信号の系統を送信側と受信側の２系統に分割する必要がある。
【００２１】
信号伝送システム１００は、マスター装置（情報処理装置）１とメインスレーブ装置２および複数のサブスレーブ装置３、４を備える。マスター装置１は、スレーブ装置２〜４との間でデータ転送を行うものである。マスター装置１は、ＣＰＵ（プロセッサ）１１、ＡＳＩＣ１２、光送信器１３、および光受信器１４を有する。光送信器１３は、レーザダイオード（ＬＤ）等の発光素子１３１、その駆動回路１３２、および光ファイバとの結合用の光コネクタ１３３を有する。光受信器１４は、フォトダイオード（ＰＤ）等の受光素子１４１、受信回路１４２、および光ファイバとの結合用の光コネクタ１４３を有する。ＡＳＩＣ１２には発振器１５より所定のクロックが与えられる。
【００２２】
メインスレーブ装置２およびサブスレーブ装置３、４は同一構成とすることができる。メインスレーブ装置２およびサブスレーブ装置３、４は、それぞれメモリ２１、３１、４１、ＡＳＩＣ２２、３２、４２、光送信器２３、３３、４３、および光受信器２４、３４、４４を有する。光送信器２３、３３、４３はマスター装置の場合と同様に、レーザダイオード（ＬＤ）等の発光素子、その駆動回路、および光ファイバとの結合用の光コネクタ２３３、３３３、４３３を有する。光受信器２４、３４、４４も同様に、フォトダイオード（ＰＤ）等の受光素子、受信回路、および光ファイバとの結合用の光コネクタ２４３、３４３、４４３を有する。
【００２３】
マスター装置１と各スレーブ装置２〜４との間は、下り用の光伝送路５と上り用の光伝送路６とにより接続される。下り用の光伝送路５は、光ファイバ５１、光分岐装置５５、および複数の光ファイバ５２〜５４を有する。上り用の光伝送路６は、光ファイバ６１、光結合装置６５、および複数の光ファイバ６２〜６４を有する。光ファイバ５１は光コネクタ１３３に接続され、光ファイバ５２〜５４は光コネクタ２４３、３４３、４４３に接続される。また、光ファイバ６１は光コネクタ１４３に接続され、光ファイバ６２〜６４は光コネクタ２３３、３３３、４３３に接続される。ここで、光ファイバは、例えばプラスチック光ファイバ（ＰＯＦ）を用いることができるが、これに限定されない。光分岐装置５５および光結合装置６５は、例えばスターカプラ、または透過光拡散部を備えた光シートバスを用いることができる。
【００２４】
図２は図１に示した双方向光伝送システムにおけるマスター装置１及びメインスレーブ装置の詳細ブロック図である。なお、サブスレーブ装置３および４はメインスレーブ装置と同様の構成であるため省略している。図２に示すように、マスター装置１は、ＣＰＵ１１、光送信器１３、光受信器１４、発振器１５、送信ＰＬＬ回路１６、受信ＰＬＬ回路１７、並列直列変換部（ＳＥＲＤＥＳ）１８、直列並列変換部（ＳＥＲＤＥＳ）１９、タイミング調整回路１１０、受信タイミング検出ブロック１１１を備える。ＣＰＵ１１はＣＰＵバスを通じてメインスレーブ装置２、サブスレーブ装置３、４とのデータの送受信を行うとともに、必要に応じてタイミング調整回路１１０に対してタイミング調整起動信号の送信、タイミング調整回路１１０からはビジー信号の受信を行う。
【００２５】
マスター装置１及びスレーブ装置２、３、４から出力されるフレームクロック信号は、同一の発振器１５より生成することができる。このようにして、マスター側フレームクロック信号およびスレーブ側フレームクロック信号は、同一の発振源を基準にして生成される。発振器１５で生成されたマスター側フレームクロック信号をスレーブ装置２に伝送し、スレーブ装置２側にて受信フレームクロック信号と送信フレームクロック信号を接続することで実現できる。
【００２６】
タイミング調整回路１１０は、ＣＰＵ１１からのタイミング調整起動信号が有効であればタイミング調整シーケンスを起動し、無効の場合は外部との入出力信号をそのまま内部に接続する。送信ＰＬＬ１６は発振器１５から出力された基準クロック信号を入力し、デューティ比を整えられたフレームクロック信号を出力する。並列直列変換部１８は、パラレルデータ信号の速度変換を行い、シリアルデータ信号を出力する。例えば入力信号として伝送速度各５０Ｍｂｐｓのパラレルデータ信号が１６本、、送信ＰＬＬ１６から出力される５０ＭＨｚのフレームクロック信号が与えられ、ＤＣバランスを取るための８Ｂ１０Ｂ符号化を含めて１０逓倍の並列直列変換を行った場合、並列直列変換部１８の出力信号は５００Ｍｂｐｓのシリアルデータ信号が２本となる。光送信器１３は、スレーブ装置２に対して同期伝送に用いるマスター側フレームクロック信号（第１のフレームクロック信号）に同期させてマスターデータ信号（第１のデータ）を送信する。
【００２７】
光受信器１４は、スレーブ装置２が同期伝送に用いるスレーブ側フレームクロック信号（第２のフレームクロック信号）に同期させて送信するスレーブデータ信号（第２のデータ）を受信する。受信ＰＬＬ１７は、フレームクロック信号をシリアルバスより入力し、送信ＰＬＬ１６と同様の動作を行う。直列並列変換部１９は、シリアルデータ信号の直列並列変換を行い、パラレルデータ信号を出力する。例えば入力信号として伝送速度各５００Ｍｂｐｓのシリアルデータ信号が２本、受信ＰＬＬ１７から出力される５０ＭＨｚのフレームクロック信号が与えられ、８Ｂ１０Ｂ復号化を行った場合、直列並列変換部１９の出力信号は５０Ｍｂｐｓのパラレルデータ信号が１６本となる。
【００２８】
受信タイミング検出ブロック１１１は、データ転送の実行中に、マスター側フレームクロック信号とスレーブ側フレームクロック信号の位相差変位の度合いを判定するものである。マスター側フレームクロック信号とスレーブ側フレームクロック信号との間は一定の位相差関係を確立するようにあらかじめ調整されている。
【００２９】
また、受信タイミング検出ブロック１１１は、データ転送を実行する期間中において、スレーブデータを受信する際に、スレーブ側フレームクロック信号に同期した中心位相クロックと、スレーブ側フレームクロック信号から位相を進めた前シフト位相クロックと、スレーブ側フレームクロック信号から位相を遅らせた後シフト位相クロックを用意し、それぞれのクロックを用いて受信した結果を比較することで、マスター側フレームクロック信号とスレーブ側フレームクロック信号の位相差を判定する。これによりスレーブ側フレームクロック信号の位相がマスター側フレームクロック信号に対して進んでいるか、遅れているかあるいはそのいずれでもないのかを判定することができる。
【００３０】
また、受信タイミング検出ブロック１１１は、スレーブ装置２における調整ステップ間隔に基づいて、スレーブ側フレームクロック信号から位相を進めた前シフト位相クロックと、スレーブ側フレームクロック信号から位相を遅らせた後シフト位相クロックをそれぞれ生成するための位相調整ステップ間隔を決定する。
【００３１】
ＣＰＵ１１は、受信タイミング検出ブロック１１１の判定結果に基づきマスター側フレームクロック信号に対するスレーブ側フレームクロック信号の位相差変位を修正するため、スレーブ装置２に対してスレーブ側フレームクロック信号の位相設定値の変更を促すコマンドを送信するようにしてもよい。これを受けたスレーブ装置２は、スレーブ側フレームクロック信号の位相設定値を保存しているレジスタをコマンドに従って書き換える。ここで、レジスタは図２のタイミング調整回路２６の中に包含されている。タイミング調整回路２６は最適な位相設定値パラメータを記憶する必要があり、そのパラメータを保持するのがレジスタである。そのレジスタ内の位相設定値パラメータに基づき、８ビット信号線を通じてプログラマブルディレイライン２７のディレイ値設定を行う。通常のデータ送信をしていない合間に、スレーブ装置側２のタイミング調整回路２６の設定値を修正することで、スレーブ側フレームクロック信号の位相をずらし、結果的にマスター側においてスレーブデータを正しいタイミングで受信できるようにする。
【００３２】
メインスレーブ装置２は、光送信器２３、光受信器２４、直列並列変換部（ＳＥＲＤＥＳ）２５、タイミング調整回路２６、プログラマブルディレイライン２７、並列直列変換部（ＳＥＲＤＥＳ）２８を備える。サブスレーブ装置３、４も同様の構成である。光受信器２４は、マスター装置１からマスターデータ信号とマスター側フレームクロック信号をセットで受信する。光送信器２３はマスター装置１に対してスレーブ側フレームクロック信号に同期したスレーブデータ信号を送信する。
【００３３】
タイミング調整回路２６は、タイミング調整起動信号が有効であればタイミング調整シーケンスを起動するが、無効の場合は外部との入出力信号をそのまま内部と接続する。プログラマブルディレイライン２７は、マスター装置１に対して送信するスレーブデータ信号の同期伝送に用いるスレーブ側フレームクロック信号を、光受信器２４により受信したマスター側フレームクロック信号を基にして生成する。プログラマブルディレイライン２７は、遅延時間を可変させられるデバイスであり、シリアルバスより入力されるシリアルデータ信号を、タイミング調整回路２６からの指示信号に従って遅延させたタイミングに同期して出力する。
【００３４】
図３はタイミング調整シーケンス全体のフローチャートである。ステップＳ３１で、タイミング調整起動信号の検知を行うと、ステップＳ３２で、ビジー信号をアクティブにし、外部に対してビジー状態を通知する。これにより、タイミング調整処理中はデータ信号の入出力は禁止される。ステップＳ３３で受信調整シーケンスを実行し、ステップＳ３４で送信調整シーケンスを実行する。これらが終了すると、ステップＳ３５で外部に対するビジー状態を解除し、全体を終了する。
【００３５】
図４は受信調整シーケンスのフローチャートを示す図である。図４〜図６において、太い矢印は、マスター装置１とスレーブ装置２間の信号のやり取りを表す。受信調整シーケンスは、マスター側タイミング調整回路１１０が実行するステップＳＭ４１が起動される。これはテストパターン信号を並列直列変換部１８より全スレーブ装置に送信する処理を表す。
【００３６】
このテストパターンは、マスター側タイミング調整回路１１０、スレーブ側タイミング調整回路２６の両方において予めメモリ等の記憶手段に格納されている。テストパターンは、例えば１０ビット信号の場合であれば以下の繰り返しパターンを用いる。
・ビット列１．“０００１１１０１０１”
・ビット列２．“００１１０１０１０１”
【００３７】
テストパターンに必要な条件は伝送路の仕様に依存するが、例えば以下が必要である。
・条件１．ビット列の中に論理値“１”が４割から６割を占めていること
・条件２．先頭ビットがどれであるかをパターン自身から判定できること
ビット列１と２はいずれも条件１と２を満たしている。
【００３８】
次にマスター側タイミング調整回路１１０は、ステップＳＭ４２で、一定時間だけテストパターン信号を送信し続けた後、処理を終了する。ここでの一定時間とは、以下で説明するスレーブ側タイミング調整回路２６のステップＳＳ４１〜ＳＳ５１の処理時間よりも十分に長い時間を表す。
【００３９】
続いてスレーブ側タイミング調整回路２６の処理を説明する。ステップＳＳ４１で、スレーブ側タイミング調整回路２６は、ステップＳＭ４１で送信されたテストパターン信号を受信する。このときスレーブ側のタイミング調整回路２６は、プログラマブルディレイライン２７に対して、受信タイミングの初期値を予め設定しておく必要がある。ステップＳＳ４２で、スレーブ側タイミング調整回路２６は、受信されたテストパターンと、予め格納されている正解パターンとの照合を行い、ステップＳＳ４３で、照合結果をメモリに格納する。ここで例えば上記のビット列１が正解パターンである場合に、受信されたテストパターンが、ビット列３．“１０００１１１０１０”であったとする。この場合、各ビットは正しく受信されているが、先頭ビットの位置が１ビット下位側にずれているだけであるため、ワードアライメントを行えば正解となる。よって照合結果としては、以下の２つを記憶する。
・結果１．全ての個別ビットは正しく受信されているかどうか。
・結果２．もし結果１がＯＫであれば、何ビットシフトすれば正解となるか。
【００４０】
ステップＳＳ４４では、全ての受信タイミングに関するテストを終了したか否かの判定を行う。未終了の場合はステップＳＳ４５で、受信タイミングを変更し、ステップＳＳ４１に戻る。ここで受信タイミングの変更は、スレーブ側のタイミング調整回路２６の指示によりプログラマブルディレイライン２７が実行する。テスト終了の場合は、ステップＳＳ４６で、全ての照合結果をメモリから読み出し、ステップＳＳ４７で、最適な受信タイミングを決定する。
【００４１】
以下の表１に、一例として連続的に変化させた８種類の受信タイミングによる照合結果の例を示す。ここでは「結果１」がＯＫである受信タイミング３〜７のうち、中間である受信タイミング５を最適受信タイミングとして決定している。決定方法として例えば、「結果１」を表す８ビットをアドレスとし、各アドレスに対する最適受信タイミングを予め格納したルックアップテーブルを用いることができる。
【００４２】
表１の例でＯＫを値“１”、ＮＧを値“０”、受信タイミング８の「結果１」をＭＳＢ、受信タイミング１の「結果１」をＬＳＢとすると、アドレス“０１１１１１００”即ち１２４番地に、受信タイミング５を示す値を格納しておく。
【表１】
2006262154.tif 000003
【００４３】
全ての結果がＮＧである場合も考えられるため、ステップＳＳ４９で、スレーブ側タイミング調整回路２６は、受信可能な結果が得られたかどうかの判定を行い、もしもＮＧの場合は受信タイミングを設定できなかったものとして、ステップＳＳ５０で、エラー信号を外部に出力する。そうでない場合、ステップＳＳ４８で、スレーブ側タイミング調整回路２６は、結果をメモリに格納し、ステップＳＳ５１で、プログラマブルディレイライン２７に対して最適な受信タイミングを設定する。以上でスレーブ側タイミング調整回路２６の処理が終了する。
【００４４】
図５はマスター装置１における送信調整シーケンス、図６はスレーブ装置２における送信調整シーケンスを示す図である。両図は各図中の「Ａ」、「Ｂ」、「Ｃ」同士で接続される。送信調整シーケンスでは、マスター側タイミング調整回路１１０が実行するステップＳＭ８１が起動される。これはＩＤ信号を、並列直列変換部１８より全スレーブ装置に送信する処理を表す。なおＩＤ信号は各スレーブノードを識別するために予め設定されたＩＤ番号をデータ信号として信号である。
【００４５】
送信調整シーケンスは、個々のスレーブ装置２〜４とマスター装置１との１対１の伝送により実行するため、マスター装置１側からスレーブ装置を１つずつ指定するためにステップＳＭ８１が必要となる。ステップＳＭ８２で、マスター側タイミング調整回路１１０は、一定時間だけＩＤ信号を送信し続けた後、ステップＳＭ８３で、スレーブ装置２から送信されるテストパターンを受信する。
【００４６】
続いてスレーブ側タイミング調整回路２６の処理を説明する。以下でのスレーブ側タイミング調整回路２６の処理は全てのスレーブ装置において実行する。図６においてまずステップＳ９２で、タイミング調整回路２６は、送信タイミングの初期化を行う。ステップＳＳ８１で、タイミング調整回路２６は、ステップＳＭ８１により送信されたＩＤ信号を受信し、それがＩＤ信号であるか、終了通知信号であるかを判別する。終了通知信号を受信した場合は、処理を終了する。ＩＤ信号を受信した場合は、ステップＳＳ８２で各スレーブ装置のＩＤ番号との照合を行い、ステップＳＳ８３で、自ノードが指定されているか否かを判定する。この判定結果はレジスタ等の記憶手段により保持する。ステップＳＳ８３の結果、ＩＤ信号によって指定されたスレーブ装置２は、ステップＳＳ８４でテストパターン信号をマスター装置１に対して送信する。テストパターン信号については図４のステップＳＭ４１と同様であるため、説明を省略する。
【００４７】
またＩＤ信号によって指定されていないスレーブ装置は、ステップＳＳ８５で全ての論理値が“０”であるテストパターン信号を送信する。ステップＳＳ８４とステップＳＳ８５は同様のタイミングで実行され、かつ各信号がシリアルバスにおいて合流される。よって、ステップＳＳ８４のテストパターン信号が合流による影響を受けず、正しくマスター装置１に伝送されるように、ステップＳＳ８５の信号を選ぶことが必要である。
【００４８】
次にマスター側タイミング調整回路１１０の処理を説明するが、テストパターンを受信するステップＳＭ８３からステップＳＭ８６までの４つは、図４のステップＳＳ４１〜Ｓ４４と同様であるため説明を省略する。ステップＳＭ８６で、現在指定中のスレーブ装置の関して全ての送信タイミングに関するテストを終了したか否かの判定を行い、未終了の場合はステップＳＭ９０でタイミング変更指示信号をスレーブ装置に送信する。ここでタイミング変更指示信号とは、スレーブ装置２からの送信タイミングを変更して再度テストを行う指示信号である。
【００４９】
次にステップＳＭ９５で、一定時間だけタイミング変更指示信号を送信し続けた後にステップＳＭ８３に戻り、ステップＳＭ８３〜Ｍ８６を実行する。ステップＳＭ９５における一定時間とは、後述するスレーブ側タイミング調整回路２６によるステップＳＳ８６〜ＳＳ８７、ＳＳ８３〜ＳＳ８５の処理時間よりも十分に長い時間とする。一方テスト終了の場合は、ステップＳＭ８７により全ての照合結果をメモリから読み出し、ステップＳＭ８８により最適なタイミングを決定し、その結果を選択結果信号としてステップＳＭ８９で、スレーブ装置に送信する。ステップＳＭ８７、ＳＭ８８は図４のステップＳＳ４６、Ｓ４７と各々同様であるので説明を省略する。
【００５０】
続いてステップＳＭ９１で、全てのスレーブ装置に関して送信タイミング調整を終えたかどうかの判定を行う。まだ終えていない場合は、ステップＳＭ９２で、スレーブ装置のＩＤ番号を更新し、ステップＳＭ８１に戻り、次のスレーブ装置の送信タイミング調整を行う。調整終了の場合は、ステップＳＭ９６とＳＭ９７で、終了通知信号を一定時間だけスレーブ装置に送信し続ける。ここで一定時間とは、スレーブ側タイミング調整回路２６によるＳ８１の処理時間よりも十分に長い時間を示す。最後にステップＳＭ９３において最終結果とステータスを出力し、処理を終了する。
【００５１】
スレーブ側タイミング調整回路２６は、マスター側タイミング調整回路１１０によるステップＳＭ８９もしくはＳＭ９０により送信された信号を、ステップＳＳ８６により受信する。受信信号がタイミング変更指示信号である場合、ステップＳＳ８７によりデータ送信タイミングの変更を送信タイミング制御部２４ｂに対して指示し、更にステップＳＳ８３に戻る。受信信号が選択結果信号である場合、ステップＳＳ８８によりその結果をメモリに格納し、ステップＳＳ８９により送信タイミング制御部２４ｂに対して設定する。更にステップＳＳ９０によりマスター装置１に対するテストパターンの送信を中止した後、ステップＳＳ８１に戻る。またステップＳＳ８６において上記以外の信号を受信している場合は、ステップＳＳ８３に戻りテストパターン信号の送信を継続する。
【００５２】
図７は、受信タイミング検出ブロック１１１の構成を示す図である。図７に示すように、受信タイミング検出ブロック１１１は、遅延回路１９１〜１９３、ラッチ回路１９４〜１９６及び比較回路１９７を備える。参照符号２０２は比較回路１９７から出力結果を所定の処理後にＣＰＵ１１に結果を通知する後処理回路である。
【００５３】
受信タイミング検出ブロック１１１のタイミングモニタ用シリアルデータ信号入力部ＩＳは、シリアルデータ受信、直列並列変換回路１９、パラレルデータ出力という本来の処理の流れと並行して存在する。受信タイミング検出ブロック１１１のタイミングモニタ用シリアルデータ信号入力チャネル数は、少なくとも１つ必要で、通常のシリアルデータ受信部と同じチャネル数を設けても良い。一方、受信タイミング検出ブロック１１１のクロック信号入力部ＩＣには、マスター装置１の発振器１５（システム・クロック）に接続される。これを次の３通りのクロックに分ける。
【００５４】
遅延回路１９１は、入力されたシステム・クロックを１周期遅延させて中心位相クロックを生成する。この中心位相クロックがスレーブ側フレームクロック信号に同期したクロックとなる。遅延回路１９２は、中心位相クロックに対してスレーブ装置２における送信タイミング調整最小ステップ間隔の整数（Ｎ）倍だけ前に位相を前にずらして前シフト位相クロックを生成する。このシフト位相クロックがスレーブ側フレームクロック信号から位相を進めたクロックである。遅延回路１９３は、中心位相クロックに対してスレーブ装置２における送信タイミング調整最小ステップ間隔の整数（Ｎ）倍だけ前に位相を後にずらした後シフト位相クロックを生成する。この後シフト位相クロックがスレーブ側フレームクロック信号から位相を遅らせたクロックである。
【００５５】
前述のタイミングモニタ用シリアルデータ信号を３系統に分け、それぞれを３通りの異なる位相を持つクロックの立ち上がりエッジでラッチする。各クロックは逓倍させていないため、シリアルデータの成り立ちが１０:１伝送によるものであるとすると、各クロックの立ち上がりエッジがシリアルデータをラッチできるチャンスは１０分の１である。すなわち、あるチャネルに１０個のシリアルデータが入ってきたときに、各クロックがそのシリアルデータをラッチするのは１個だけということになる。
【００５６】
比較回路１９７は、上記３通りの中心位相クロック、前シフト位相クロック、後シフト位相クロックで、ラッチ回路１９４〜１９６でラッチした結果の比較を行い、結果を出力する。すなわち、比較回路１９７は、上記３通りのクロックを用いて受信した結果を比較することで、ＣＰＵ１１は、マスター側フレームクロック信号とスレーブ側フレームクロック信号の位相差を判定する。これによりスレーブ側フレームクロック信号の位相がマスター側フレームクロック信号に対して進んでいるか、遅れているかあるいはそのいずれでもないのかを判定することができる。
【００５７】
図８は、データ転送時におけるフレームクロック信号の位相ずれ検出方法を説明する図である。今回ラッチタイミングテスト対象「０」、次回ラッチタイミングテスト対象「０」を示す。また、（ａ）は前シフト位相クロック、（ｂ）は中心位相クロック、（ｃ）は後シフト位相クロックをそれぞれ示す。図８では、位相ずれの３パターンを示している。また、図中「○」「×」はＣＰＵ１１の判定結果を示す。ＣＰＵ１１は、中心位相クロックと前シフト位相クロックと後位相クロックでのラッチ結果が同一であれば、スレーブ同期信号の調整値はそのままで良い、と判定する。ＣＰＵ１１は、正常のタイミングで受信可能であるため、記憶したスレーブタイミング調整値をそのまま使用する。
【００５８】
ＣＰＵ１１は、中心位相クロックと後シフト位相クロックでのラッチ結果が同一で、前シフト位相クロックでのラッチ結果だけが異なる場合は、スレーブ同期信号の調整値は修正が必要で、中心位相クロックを後にずらす必要がある、と判定する。ＣＰＵ１１は、中心位相クロックを後にずらすため、記憶しているスレーブタイミング調整値の修正を促すコマンドをスレーブ装置２に送信する。ＣＰＵ１１は、中心位相クロックと前シフト位相クロックでのラッチ結果が同一で、後シフト位相クロックでのラッチ結果だけが異なる場合は、スレーブ同期信号の調整値は修正が必要で、中心位相クロックを前にずらす必要がある、と判定する。ＣＰＵ１１は、中心位相クロックを前にずらすため、記憶したスレーブタイミング調整値の修正を促すコマンドをスレーブ装置２に送信する。
【００５９】
図９は、ラッチタイミングテスト対象のタイミングバジェットを説明するための図である。図９において、（ａ）〜（ｃ）はマスター側フレームクロック信号、（ｄ）は受信側デバイス（マスター装置１）のタイミングスペック、（ｅ）はスレーブ装置２から送信されるシリアルデータをそれぞれ示す。サンプリング・ウィンドウ（Sampling Window）は、受信デバイス１がデータを受信できる最小時間、ＲＳＫＭは受信デバイス１がデータに許容するジッタマージン、Ｓｙｓｔｅｍ  ＳＷは、伝送システムが作り出せるデータのセットアップ・ホールド時間、Ｓｙｓｔｅｍ ＲＳＫＭは伝送システムで発生するジッタをそれぞれ示す。図中「○」の箇所は、セットアップ時間、ホールド時間が足りているため、データをラッチ可能であることを示し、「×」の箇所は、セットアップ時間、ホールド時間が不足のためデータをラッチ不可能であることを示す。
【００６０】
上記整数Ｎの値は、図９に示すタイミングバジェットに示した、受信側デバイス１におけるサンプリング・ウィンドウ（ＳＷ：Sampling Window）の間隔と送信タイミング調整最小ステップ間隔Ｓとの関係が式（１）の関係を満たすように決定される。
【００６１】
ｓ×Ｎ×２＜ＳＷ＜ｓ×Ｎ×３      （１）
【００６２】
ここで、Ｎは整数である。これらはいずれもディレイラインなどの遅延素子とＰＬＬの組合せにより実現することが出来る。
【００６３】
図１０は、位相ずれを修正する際の動作フローチャートである。ステップＳ９１で、ＣＰＵ１１は、前シフト位相クロック、中心位相クロックのラッチ結果が一致かどうかを判断し、ラッチ結果が一致する場合はステップＳ９５に進み、ラッチ結果が一致しない場合は、ステップＳ９２に進む。ステップＳ９２で、ＣＰＵ１１は、単位時間中にＮ回発生したかどうかを判断し、Ｎ回発生していない場合、ステップＳ９１に戻り、Ｎ回発生した場合はステップＳ９３に進む。ここで、Ｎはあらかじめ設定した整数である。ステップＳ９３で、ＣＰＵ１１は、記憶したスレーブタイミング調整値の修正を促すコマンドをスレーブ装置２に送信し、結果的にマスター側フレームクロック信号の位相に対してスレーブデータを１ステップ前にずらす。
【００６４】
ステップＳ９４で、ＣＰＵ１１は、前シフト位相クロック、中心位相クロックのラッチ結果が一致するかどうかを判断し、ラッチ結果が一致しない場合は、ステップＳ９３に戻り、前シフト位相クロックと中心位相クロックのラッチ結果が一致するまでループし、前シフト位相クロックと後シフト位相クロックのラッチ結果が一致した場合はステップＳ９５に進む。ステップＳ９５で、ＣＰＵ１１は、中心位相クロック、後シフト位相クロックのラッチ結果が一致したかどうかを判断し、中心位相クロックと後シフト位相クロックのラッチ結果が一致した場合は、記憶したスレーブタイミング調整値をそのまま使用し、ステップＳ９９に進む。
【００６５】
ステップＳ９５で、ＣＰＵ１１は、中心位相クロックと後シフト位相クロックのラッチ結果が一致していない場合、ステップＳ９６で、単位時間中にＮ回発生したかどうかを判断し、単位時間中にＮ回発生しない場合はステップＳ９５に戻り、Ｎ回発生した場合はステップＳ９７に進む。ここでＮはあらかじめ設定した整数である。
【００６６】
ステップＳ９７で、ＣＰＵ１１は、記憶したスレーブタイミング調整値の修正を促すコマンドをスレーブ装置２に送信し、結果的にマスター側フレームクロックの位相に対してスレーブデータを１ステップ後ろにずらす。ステップＳ９８で、ＣＰＵ１１は、中心位相クロック、後シフト位相クロックのラッチ結果が一致しているかどうかを判断し、ラッチ結果が一致していない場合はステップＳ９７に戻り、中心位相クロックと後シフト位相クロックのラッチ結果が一致するまでループし、一致している場合はステップＳ９９に進む。ステップＳ９９で、ＣＰＵ１１は、データ伝送を中止しない場合はステップＳ９１に戻り、データ伝送を中止する場合は処理を終了する。
【００６７】
なお、中心位相クロックを前にずらすべきか、後にずらすべきか、全くずらす必要が無いかの判定は１度で行うのではなく、図１０に示すように複数回の累積カウント結果を基に行う。このとき単純な累積結果ではなく、単位時間あたりのカウント数に着目し、一定時間同じ傾向が続いた場合のみ、ずれが発生したと判定する。これによりバラツキから来る誤検知の発生を抑えるようにする。あらかじめ設定した規定回数を上回る判定結果が累積した場合に、ＣＰＵ１１からスレーブタイミング調整値の修正を促すコマンドをスレーブ装置２に送信する。
【００６８】
なお、前述のコマンド送信はデータ伝送を行っていないときに実行する必要がある。
【００６９】
上記実施例によれば、位相ずれの傾向をデータ転送の実行中も常に監視し続けることができ、必要に応じて位相ずれを修正するために受信データのラッチタイミング変更を促すことで、双方向バス・システムのビット・エラー・レート（ＢＥＲ）を確保することが可能になる。これにより、シリアル伝送路によって接続された１対多のノード間伝送を行う際、送信側・受信側両ノード間の信号の同期状態を維持した、双方向バス・システムの実現することができる。マスター装置１が情報処理装置に、光送信器１３が送信手段、光受信器１４が受信手段、受信タイミング検出ブロック１１１が判定手段、ＣＰＵ１１が制御手段に対応する。
【００７０】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。たとえばマスター装置１を情報処理装置として例にとって説明したが、スレーブ装置２を情報処理装置とすることもできる。
【図面の簡単な説明】
【００７１】
【図１】本発明に係る双方向光伝送システムの構成例を示す概略図である。
【図２】図１に示した双方向光伝送システムにおけるマスター装置１及びメインスレーブ装置の詳細ブロック図である。
【図３】タイミング調整シーケンス全体のフローチャートである。
【図４】受信調整シーケンスのフローチャートを示す図である。
【図５】マスター装置１における送信調整シーケンスである。
【図６】スレーブ装置２における送信調整シーケンスである。
【図７】受信タイミング検出ブロックの構成を示す図である。
【図８】データ転送時におけるフレームクロック信号の位相ずれ検出方法を説明する図である。
【図９】ラッチタイミングテスト対象のタイミングバジェットを説明するための図である。
【図１０】位相ずれを修正する際の動作フローチャートである。
【符号の説明】
【００７２】
１００  信号伝送システム
１  マスター装置
２  メインスレーブ装置
３、４  サブスレーブ装置
１１  ＣＰＵ
１２  ＡＳＩＣ
１３  光送信器
１４  光受信器
１１０  タイミング調整回路
１１１  受信タイミング検出ブロック
【図１】
2006262154.tif 000004
【図２】
2006262154.tif 000005
【図３】
2006262154.tif 000006
【図４】
2006262154.tif 000007
【図５】
2006262154.tif 000008
【図６】
2006262154.tif 000009
【図７】
2006262154.tif 000010
【図８】
2006262154.tif 000011
【図９】
2006262154.tif 000012
【図１０】
2006262154.tif 000013