(57)【特許請求の範囲】
【請求項１】
クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを各々が備えた複数のネットワーク機器が接続されており、
前記複数のネットワーク機器の一つが時刻管理ノードとして選ばれ、当該時刻管理ノードが自らが備える時刻情報格納手段から読み出される時刻情報を格納した時刻情報通知パケットを定期的に送信し、
前記複数のネットワーク機器のうち前記時刻管理ノードを除いたネットワーク機器が、時刻従属ノードとして前記時刻情報通知パケットを受信して、該時刻情報通知パケットに格納された時刻情報の値で自らが備える時刻情報格納手段の時刻情報を更新することで同期化を行うネットワークの同期方法において、
前記時刻従属ノードが、自らが備える該時刻情報格納手段の時刻情報を更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点に、前記受信した時刻情報通知パケットに格納された時刻情報の値で自らが備える該時刻情報格納手段の時刻情報を更新することを特徴とする、ネットワーク同期方法。
【請求項２】
自らの時刻情報の値を変化させる時点は、時刻情報を更新する時点から、前記周期Ｔの自然数倍が経過した時点であることを特徴とする、請求項１に記載のネットワーク同期方法。
【請求項３】
前記Ｎの値が２であることを特徴とする、請求項１または請求項２に記載のネットワーク同期方法。
【請求項４】
供給されるシステムクロック信号を２分周する２分周器と、同システムクロック信号を２逓倍する２逓倍器と、
受信したサイクルスタートパケットに格納された時刻情報を前記システムクロック信号に基づいて出力する機能を少なくとも有したパケット受信器と、
前記２分周器の出力クロックおよび前記２逓倍器の出力クロックならびに前記時刻情報が入力され、これら入力に基づきサイクルタイムレジスタの値を制御するサイクルタイムレジスタ処理部と、を含み構成され、
サイクルタイムレジスタの値の更新を２逓倍器の出力クロックに基づき行うことを特徴とするリンク層ＬＳＩ。
【請求項５】
供給されるシステムクロック信号を２逓倍する２逓倍器と、
受信したサイクルスタートパケットに格納された時刻情報を前記システムクロック信号に基づいて出力する機能を少なくとも有したパケット受信器と、
前記２逓倍器の出力クロックで駆動されるとともに前記時刻情報の入力により０リセットされる４進カウンタと、
前記４進カウンタの０リセット時出力および前記２逓倍器の出力クロックならびに前記時刻情報が入力され、これら入力に基づきサイクルタイムレジスタの値を制御するサイクルタイムレジスタ処理部と、を含み構成され、
サイクルタイムレジスタの値のカウントアップを前記４進カウンタの繰り返し周期で行うとともにサイクルタイムレジスタの値の更新を前記４進カウンタのカウントアップ出力に同期して行うことを特徴とするリンク層ＬＳＩ。
【請求項６】
供給されるシステムクロック信号を２逓倍する２逓倍器と、
受信したサイクルスタートパケットに格納された時刻情報をシステムクロック信号に基づいて出力する機能を少なくとも有したパケット受信器と、
前記システムクロックで駆動されるとともに前記時刻情報の入力により０リセットされる２進カウンタと、
前記２進カウンタの０リセット時出力および前記時刻情報が入力され、これら入力に基づきサイクルタイムレジスタの値を制御するサイクルタイムレジスタ処理部と、を含み構成され、
サイクルタイムレジスタの値のカウントアップを前記２進カウンタの繰り返し周期で行うとともにサイクルタイムレジスタの値の更新を前記２進カウンタのカウントアップ出力に同期して行うことを特徴とするリンク層ＬＳＩ。
【請求項７】
請求項４〜６のいずれか１項に記載のリンク層ＬＳＩを用いて構成されたネットワーク機器。
【請求項８】
クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段を備えたネットワーク機器であって、所定の時刻管理ノードの周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットを前記時刻管理ノードからネットワークを介して定期的に受信して、時刻従属ノードとして、前記時刻情報通知パケットに格納された時刻情報の値で自らが備える前記時刻情報格納手段の時刻情報を更新することで同期化を行うネットワーク機器において、
前記時刻情報格納手段の時刻情報を更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記受信した時刻情報通知パケットに格納された時刻情報の値で自らが備える前記時刻情報格納手段の時刻情報を更新する時刻情報更新手段を具備したことを特徴とする、ネットワーク機器。
【請求項９】
前記時刻情報格納手段の時刻情報を更新する時点を、前記時刻情報の値が変化する時点と一致させたことを特徴とする請求項８に記載のネットワーク機器。
【請求項１０】
前記時刻情報格納手段の時刻情報を更新する時点は、前記時刻情報の値が変化する時点に依存しないことを特徴とする、請求項８に記載のネットワーク機器。
【請求項１１】
前記Ｎの値が２であることを特徴とする、請求項８〜請求項１０のいずれか１項に記載のネットワーク機器。
【請求項１２】
クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを各々が備えた複数のネットワーク機器が接続可能に構成された複数のネットワークセグメントを相互に接続しネットワークを構成するためのバスブリッジであって、
それぞれが異なるネットワークセグメントに接続され、各ネットワークセグメントにおけるクロック信号に従って値が変化する時刻情報を格納する時刻情報格納手段をそれぞれ備えた複数のポータルと、
前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが自ら備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力する時刻誤差検出手段と、
前記時刻誤差検出手段から出力される差分の値に基づいて、当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する調整値生成手段と、
を含み構成されたことを特徴とする、バスブリッジ。
【請求項１３】
前記時間調整値の絶対値の上限は、周期Ｔの予め定められた自然数倍の時間として規定されるサイクル周期で該絶対値の上限を除した値が前記クロック信号の周波数精度を超える最も小さい値として規定されることを特徴とする、請求項１２に記載のバスブリッジ。
【請求項１４】
前記時刻誤差検出手段から出力される差分の絶対値が予め定められたしきい値を越えた場合には、前記上限を超える時間調整値により前記従時刻情報の補正を行なう、ことを特徴とする、請求項１３に記載のバスブリッジ。
【請求項１５】
前記Ｍの値が２であることを特徴とする、請求項１２〜請求項１４のいずれか１項に記載のバスブリッジ。
【請求項１６】
クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを各々が備えた複数のネットワーク機器が接続可能に構成された複数のネットワークセグメントが、それぞれが異なるネットワークセグメントに接続され、各ネットワークセグメントにおけるクロック信号に従って値が変化する時刻情報を格納する時刻情報格納手段をそれぞれ備えた複数のポータルを有するバスブリッジにより相互に接続されて構成されたネットワークの同期方法であって、
前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが自ら備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力し、
前記差分の値に基づいて、当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する、
ことを特徴とする、ネットワーク同期方法。
【請求項１７】
前記時間調整値の絶対値の上限は、周期Ｔの予め定められた自然数倍の時間として規定されるサイクル周期で該絶対値の上限を除した値が前記クロック信号の周波数精度を超える最も小さい値として規定されることを特徴とする、請求項１６に記載のネットワーク同期方法。
【請求項１８】
前記時刻誤差検出手段から出力される差分の絶対値が予め定められたしきい値を越えた場合には、前記上限を超える時間調整値により前記従時刻情報の補正を行なう、ことを特徴とする、請求項１７に記載のネットワーク同期方法。
【請求項１９】
前記クロック信号の周波数精度は、該周波数精度の規格上の最悪値として固定的に規定されることを特徴とする、請求項１７または請求項１８に記載のネットワーク同期方法。
【請求項２０】
前記クロック信号の周波数精度は、前記ネットワークに接続されるネットワーク機器およびブリッジにおける実際の周波数精度のうちの最悪値として動的に規定されることを特徴とする、請求項１７または請求項１８に記載のネットワーク同期方法。
【請求項２１】
前記マスターポータルは、前記主時刻情報が自らが接続されるネットワークセグメントに接続されたネットサイクルマスタに同期する、ように制御されることを特徴とする請求項１６〜請求項２０のいずれか１項に記載のネットワーク同期方法。
【請求項２２】
前記スレーブポータルは、自らが接続されるネットワークセグメントに対して、前記時間調整値を格納した時刻情報調整パケットを所定周期で定期的に送信することを特徴とする、請求項１６〜請求項２１のいずれか１項に記載のネットワーク同期方法。
【請求項２３】
前記スレーブポータルは、自らが備える前記時刻情報格納手段に格納される時刻情報に前記時間調整値を加える処理を所定周期で定期的に行い、当該処理により得られた時刻情報を格納した時刻情報通知パケットを自らが接続されるネットワークセグメントに対して定期的に送信する、ことを特徴とする請求項１６〜請求項２１のいずれか１項に記載のネットワーク同期方法。
【請求項２４】
前記Ｍの値が２であることを特徴とする、請求項１６〜請求項２３のいずれか１項に記載のネットワーク同期方法。
【請求項２５】
前記ネットワークはIEEE 1394 規格に準拠したシリアルバスであり、前記時刻情報はサイクルタイムレジスタに格納された値であることを特徴とする、請求項１〜請求項３または請求項１６〜請求項２４のいずれか１項に記載のネットワーク同期方法。
【請求項２６】
ノードを構成する物理層ＬＳＩから供給される公称49.152メガヘルツのクロック信号を前記システムクロック信号(SCLK)として用いるとともに、前記Ｎおよび前記Ｍのいずれかあるいは両方の値を２としたことを特徴とする、請求項２５に記載のネットワーク同期方法。
【請求項２７】
コンピュータに、ネットワーク機器の同期を実行させるためのプログラムにおいて、
前記ネットワーク機器は、クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段と、を有し、
前記プログラムは、
所定の時刻管理ノードから、該時刻管理ノードが自らが備える周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットをネットワークを介して定期的に受信するステップと、
前記時刻情報格納手段の時刻情報が更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記時刻情報通知パケットに格納された時刻情報の値により前記時刻情報格納手段の時刻情報を更新するステップと、
を有することを特徴とするプログラム。
【請求項２８】
コンピュータに、バスブリッジにより相互に接続されて構成されたネットワークの同期を実行させるためのプログラムにおいて、
前記バスブリッジは複数のポータルを有し、前記複数のポータルの各々は接続されたネットワークセグメントのクロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段を備え、
前記プログラムは、
前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のスレーブポータルが備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力するステップと、
前記差分の値に基づいて当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力するステップと、
を有することを特徴とするプログラム。
【請求項２９】
ネットワーク機器の同期を実行するための電子回路を集積化したネットワーク同期制御ＬＳＩにおいて、
クロック信号を生成するクロック源と、
前記クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段と、
所定の時刻管理ノードから、該時刻管理ノードが自らが備える周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットをネットワークを介して定期的に受信する受信手段と、
前記時刻情報格納手段の時刻情報が更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記時刻情報通知パケットに格納された時刻情報の値により前記時刻情報格納手段の時刻情報を更新する時刻情報更新手段と、
を有することを特徴とするネットワーク同期制御ＬＳＩ。
【請求項３０】
相互に接続されて構成されたネットワークの同期を実行するための電子回路を集積化したネットワーク同期制御ＬＳＩにおいて、
それぞれ、クロック信号を生成するクロック源と該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを有する複数のポータルと、
前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力する時刻誤差検出手段と、
前記差分の値に基づいて当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する調整値生成手段と、
を有することを特徴とするネットワーク同期制御ＬＳＩ。
【請求項３１】
請求項２９または３０に記載のネットワーク同期制御ＬＳＩを備えたネットワーク機器。
【請求項３２】
所定の時刻管理ノードに従属してネットワーク同期を実行するネットワーク機器において、
クロック信号を生成するクロック源と、
前記クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段と、
前記時刻管理ノードから、該時刻管理ノードが自らが備える周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットをネットワークを介して定期的に受信する受信手段と、
前記時刻情報格納手段の時刻情報が更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記時刻情報通知パケットに格納された時刻情報の値により前記時刻情報格納手段の時刻情報を更新する時刻情報更新手段と、
を有することを特徴とするネットワーク機器。
【請求項３３】
相互に接続されて構成されたネットワークの同期を実行するネットワーク機器において、
それぞれ、クロック信号を生成するクロック源と該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを有する複数のポータルと、
前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力する時刻誤差検出手段と、
前記差分の値に基づいて当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する調整値生成手段と、
を有することを特徴とするネットワーク機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば動画などのリアルタイム情報の転送が可能なIEEE 1394 規格に準拠したネットワーク等、接続される端末装置が時刻情報の同期を確立することにより情報を転送することが可能なネットワークに係る、ネットワーク同期方法、ＬＳＩ、バスブリッジ、ネットワーク機器、およびプログラムに関する。
【０００２】
【従来の技術】
時刻情報を定期的に通知して同期を図る仕様が含まれる通信方式が各種実用化されている。例えば、毎秒100Mビット以上の高速性と、動画などのリアルタイム情報転送に対する高い親和性、簡単な操作性などを兼ね備えた、米国電気電子技術者協会（ＩＥＥＥ）の1394シリアルバス規格（以下、1394規格と記述することとする）が、家庭などで一般消費者が利用するネットワークインタフェースとして注目されている。
【０００３】
図１は、1394規格における典型的なデータ転送の形態の概念を説明するブロック図である。1394規格では、物理層ならびにリンク層、トランザクション層、シリアルバスマネージメントが定義され、かつこれらの層の上位にアプリケーション層が実装されるのが通常であるが、図１では、以降の説明と無関係な層は省略されている。
【０００４】
1394ネットワークは、構成機器（ノード）が備える物理層（ＰＨＹ）のポートを所定ケーブルで相互に接続することにより構成される。図１では、3 つのノード50〜52が、各々が備える物理層ＬＳＩ；10〜12のポートをケーブル60と61とで接続することにより、ネットワークが構成されている。1394規格の物理層は、あるポートから入力された信号を他の全てのポートから出力するリピータとしての機能を備えており、物理的には図に示されるようなツリー状のトポロジをとるが、論理的にはバスとして動作する。なお、この物理層は通常ＬＳＩ化されており、以下では物理層ＬＳＩと記している。
【０００５】
物理層ＬＳＩは、図1 に示されるとおり、外付けされる水晶振動子（X'tal ）30〜32を用いて生成されるクロック信号により動作する。水晶振動子の共振周波数は24.576メガヘルツであり、その許容周波数偏差は±100 ppm （1 ppm は百万分の1 ）である。1394規格における伝送速度はS100、S200、S400と呼ばれているが、これはそれぞれ伝送速度が上記共振周波数の4 倍（毎秒98.304メガビット）、8 倍（毎秒196.608 メガビット）、16倍（毎秒393.216 メガビット）であることに対応する。なお、各ノードのクロックは、周波数同期などの制御を行うことなく、フリーランニングの状態で運用される。すなわち、各ノードの物理層は、±100 ppm の範囲内の一般には異なるクロック周波数で動作する。
【０００６】
以上のような特徴を持つ1394物理層を用いてリアルタイムデータを転送するために、1394規格ではアイソクロナスサイクルという動作モードが導入されている。この動作モード中は、帯域資源を獲得するなどにより予め送信権を得たノードのみが、アイソクロナスストリームパケットと呼ばれるパケットのみを送信することが出来る。アイソクロナスサイクルは125 マイクロ秒周期で発生するため、ストリームのリアルタイム転送が保証される。
【０００７】
アイソクロナスサイクルは、サイクルスタートパケットの送信後に開始される。サイクルスタートパケットは、サイクルマスタと呼ばれる役割を担うノードにより送信される（図１ではノード50をサイクルマスタとする）。サイクルスタートパケットには、それを送信した時刻情報が格納されている。この時刻情報には、サイクルタイムレジスタの値が用いられる。すなわちサイクルマスタは、サイクルスタートパケットの送信時に自分のサイクルタイムレジスタの値をサイクルスタートパケットに書き込んで1394バスに送出する。
【０００８】
サイクルタイムレジスタのフォーマットを図２に示す。サイクルタイムレジスタは32ビット長のレジスタであり、7 ビットのセコンドカウント（second＿count ）フィールドと、13ビットのサイクルカウント（cycle ＿count ）フィールド、12ビットのサイクルオフセット（cycle ＿offset）フィールドの3 フィールドに分割される。
【０００９】
サイクルオフセットフィールドは、24.576メガヘルツの物理層クロックで動作するカウンタであり、0 から3071まで値が1 ずつ増加した後、また値が0 に戻る。すなわち、1 サイクルの周期である125 マイクロ秒おきに値が0 に戻る。続くサイクルカウントフィールドは、125 マイクロ秒周期で動作するカウンタであり、0 から7999まで値が1 ずつ増加した後、また値が0 に戻る。値が増加するタイミングはサイクルオフセットの値が0 に戻るタイミングであり、サイクルカウント自身は1 秒おきに値が0 に戻る。最後のセコンドカウントフィールドは、1 秒周期で動作するカウンタであり、0 から127 まで1 ずつ増加した後、また値が0 に戻る。値が増加するタイミングはサイクルカウントの値が0 に戻るタイミングである。
【００１０】
サイクルタイムレジスタ40,41,42は、図１では明示していないシリアルバスマネージメントの中のコントロールアンドステータスレジスタ（CSR ）空間中に定義されているため、図１ではリンク層ＬＳＩ：20〜22とサイクルタイムレジスタとを分離して示した。しかし通常は、サイクルスタートパケットの送受信処理機能を備えたリンク層ＬＳＩの中にサイクルタイムレジスタも実装される。リンク層ＬＳＩ20〜22は、物理層ＬＳＩ：10〜12から供給される49.152メガヘルツ（物理層クロック周波数の2 倍）のクロックで動作するが、このリンク層クロックをリンク層ＬＳＩ内部で再度２分の１分周したクロックでサイクルタイムレジスタは動作することになる。
【００１１】
以上のべたようなサイクルタイムレジスタに基づく時刻情報を格納したサイクルスタートパケットを受信するサイクルマスタ以外のノードでは、ネットワークの同期化のために受信された時刻情報で自身のサイクルタイムレジスタの値を上書き（更新）する。各ノードが備えるサイクルタイムレジスタは、フリーランニングのクロックで動作しているため、時間が経過すると各ノードのサイクルタイムレジスタの値はずれてしまう。このずれを、125 マイクロ秒周期で受信されるサイクルスタートパケットにより修正することで、全ノードの時刻情報同期が図られる。
【００１２】
図１に示される1394ネットワークにおいて、サイクルスタートパケットにより時刻情報が同期される様子の一例を図３に示す。ここでは、ノード50がサイクルマスタである場合の例が示されている。また、図３ではノード51において水晶振動子31から供給される物理層クロックの周波数は、ノード50において水晶振動子30から供給されるクロックの周波数より高く、ノード52の物理層クロック周波数はノード50の物理層クロック周波数より低い場合の例が示されている。
【００１３】
なおここでは説明を簡単にするため、以下の３点を仮定している。第一の仮定は、ノード50のリンク層ＬＳＩ 20 からサイクルスタートパケットが送信されるタイミングは、サイクルタイムレジスタ40のサイクルオフセットの値が3071から0 に変化するタイミングであり、そのサイクルスタートパケットに格納される時刻情報のサイクルオフセット値が0 であることである。第二の仮定は、ノード50から送信されるサイクルスタートパケットをノード51およびノード52が受信するまでに要する時間をゼロとすることである。最後の仮定は、サイクルオフセットの値が変化するタイミングと、サイクルタイムレジスタの値をサイクルスタートパケットの時刻情報で上書きするタイミングとは、ともに物理層クロックの立ち上がりのタイミングとすることである。
【００１４】
この場合、サイクルマスタのクロック周波数よりも高いクロック周波数で動作しているノード51では、サイクルオフセットの値がゼロの時間が１クロック分継続するようになりサイクルタイムレジスタの修正が行われる。一方周波数の低いノード52の場合は、サイクルオフセットの値が3071となることなく値０が上書きされて、サイクルタイムレジスタの修正が行われる。このように、サイクルタイムレジスタの同期制御は、サイクルスタートパケットを受信するノードが最大1 クロック分周期長の時間調整を適宜行うことによって実現される。１クロックの時間は約40ナノ秒であるため、125 マイクロ秒の周期に対して最大約320 ppm （40ナノ秒/125マイクロ秒）の周波数変動（サイクルタイムレジスタ値の乱れ）が時間調整の際に生じることになる。
【００１５】
以上述べたようにして同期制御が行われている各装置毎のサイクルタイムレジスタの値は、IEC 61883 規格に定められるオーディオ・ビジュアルストリーム（AVストリーム）のリアルタイム転送に利用される。ここでは、AVストリーム転送の際のサイクルタイムレジスタ利用方法について簡単に説明する。受信機がAVストリームを受信する場合には、送信機側で用いられていたビデオフレーム周波数や、オーディオサンプリング周波数を忠実に再現して復号化する必要がある。
【００１６】
これらメディア依存の周波数は1394規格で用いられる周波数とは非同期であるため、送信機が周波数情報をタイムスタンプとして添付したデータを送信し、受信側ではこのタイムスタンプを用いて周波数を再現する手法が用いられる。IEC 61883 規格では、このタイムスタンプ情報を、送信機のサイクルタイムレジスタに基づいて定める方法が規定されている。従って、既に述べたサイクルタイムレジスタの同期制御に起因して受信機側のサイクルタイムレジスタに周波数情報変動が生じた場合には、この変動に応じて受信されるAVストリーム依存の周波数（サンプリング等のタイミング）にも変動が生じてしまう。この周波数変動（タイミングの乱れ）は、受信再生されるストリームの画質や音質に悪影響を与えてしまう。本発明はこの点に着目してなされた。
【００１７】
次に、IEEEのP1394.1 委員会では、複数の1394バスを相互接続して大規模なネットワークを構築するための1394ブリッジに関する標準化作業が進められている。このような複数のバスが接続されたネットワーク環境においてリアルタイムデータを転送するためには、ネットワーク全体での同期制御が必要であり、その方法が審議されている。
【００１８】
P1394.1 委員会において審議されているブリッジ接続を含んだネットワーク（以下では、ブリッジネットワークと記す）全体の同期制御方法について、図４を用いて簡単に説明する。図４では、２つのブリッジ70および71により、３つの1394バス90,91,92が相互接続されている。ネットワークを構成する各々のバスでは、バス毎に前述のようにサイクルマスタによる同期制御が行われるが、各サイクルマスタは互いに独立した周波数により動作しているため、ネットワーク全体での同期はとれていない。そこでP1394.1 委員会では、各バスのサイクルマスタ間で同期をとる方法を新たに盛り込むことにより、ネットワーク全体の同期を実現する方法について検討している。
【００１９】
P1394.1 委員会では、２つの1394バスを接続するブリッジを標準化対象としており、ブリッジの中でバスに接続される部分はポータルと呼ばれている。図４では、半円で表されたポータルを２つ合わせた円でブリッジを書きあらわしており、例えばブリッジ70は、ポータル80A と80B とから構成されている。各バス90,91,92には、既存の1394規格に基づいてサイクルマスタ100,101,102 が定められるが、ポータルも、接続されたバスでは1394規格ノードとして機能するため、ポータルが接続されたバスにおけるサイクルマスタとして動作し得る。
【００２０】
P1394.1 によるブリッジネットワークでは、そのネットワーク全体のサイクルマスタとして機能するノードが1 つ選出され、ネットサイクルマスタと呼ばれる。ネットサイクルマスタには、ある手順に基づいて選ばれたバスにおけるサイクルマスタが選ばれるが、ここではその選出手順の説明は省略する。ネットサイクルマスタが接続されていないバスのサイクルマスタは、以下に示す手順により、ネットサイクルマスタの時刻情報に自らの時刻情報を同期させる。図4 では、バス92のサイクルマスタ102 がネットサイクルマスタとして機能するよう選出されたものとする。
【００２１】
図4 において、ブリッジ71のポータル81B は、ネットサイクルマスタ102 が送信するサイクルスタートパケットによって、自分の時刻情報をネットサイクルマスタ102 に同期させている。一方、同じブリッジ71にある他方のポータル81A は、自分が接続されているバス91のサイクルマスタ101 から送信されるサイクルスタートパケットにより、サイクルマスタ101 に同期して動作している。従ってブリッジ71では、ポータル81A のサイクルタイムレジスタとポータル81B のサイクルタイムレジスタとを比較することにより、サイクルマスタ101 の時刻情報がネットサイクルマスタ102 の時刻情報に対してどれだけずれているかを検出することが可能である。このように検出された誤差信号に基づいて、ポータル81A はサイクルマスタ101 に対し、サイクルマスタ101 のサイクルタイムレジスタ値を調整するための制御パケットを送信する。
【００２２】
この制御パケットのフォーマットを図５に示す。cycle master adjustment packetと呼ばれる本パケットは、データフィールドの無い、特殊なアイソクロナスストリームパケットのフォーマットに則っている。データフィールドが無いため、データ長（data＿length）フィールドの値は0 である。また、タグ（tag ）フィールドとチャネル（channel ）フィールドにはそれぞれ3 と31とが指定され、それによりこのパケットがサイクルタイム調整用の制御パケットと識別される。トランザクションコード（tcode ）フィールドには、本パケットがアイソクロナスストリームパケットフォーマットに基づいていることを示す10が指定されている。
【００２３】
同期コード（sy）フィールドには、本パケットを受信したサイクルマスタがサイクルタイムレジスタを調整すべき量を指定する値が格納される。同期コード(sy)フィールドの値が１の場合、それを受信したサイクルマスタは、それ以降に訪れるアイソクロナスサイクルの周期を125 マイクロ秒に対して1 サイクルオフセット分（約40ナノ秒）長くする。一方、同期コード(sy)フィールドの値が３の場合は、アイソクロナスサイクルの周期を125 マイクロ秒に対して1 サイクルオフセット分短くする。このようにして、サイクルマスタ101 は、ネットサイクルマスタ102 が接続されたバス92のアイソクロナスサイクルに同期したアイソクロナスサイクルで、バス91を動作させることが出来る。このように、ブリッジネットワークにおける同期制御はアイソクロナスサイクル周期の同期を目的としており、サイクルタイムレジスタ内の、セコンドカウントフィールドやサイクルカウントフィールドの値は、他のバスのそれらと必ずしも一致しない。
【００２４】
ブリッジ70も、ブリッジ71と全く同様な同期制御を行う。すなわち、サイクルマスタ101 に同期したポータル80B のサイクルタイムレジスタと、サイクルマスタ100 に同期したポータル80A のサイクルタイムレジスタとを比較することにより得られた誤差信号に基づいて、ポータル80A がサイクルマスタ100 に制御パケットを送信する。これにより、バス90とバス91との同期が得られるが、ネットサイクルマスタが接続されたバス92にバス91は同期しているため、バス90〜92の全てのバスにおいて、同期が確立する。
【００２５】
以上説明したように、1394ブリッジネットワークでは、±1 サイクルオフセット（約40ナノ秒）の単位でアイソクロナスサイクルの周期（125 マイクロ秒）を適宜調整することにより同期を確立する。従って、調整時の瞬時周波数変動は、約320 ppm である。また、ネットサイクルマスタが接続されたバスと他のバスとが各々に直接同期制御を行うのではなく、隣り合うバス間での同期制御をシリアルに行うことによって、ネットワーク全体の同期を確立する。このバス間の同期制御により生じる周波数変動（タイミング乱れ）も、AVストリームの受信品質に影響を与える点は、前述したバス内の同期制御と同様である。
【００２６】
なお、以上説明したP1394.1 の技術内容は、P1394.1 委員会によって2001年1 月11日に発行された、1394ブリッジ標準規格の草案0.15版 (P1394.1 Draft Standard for High Performance Serial Bus Bridges Draft 0.15)に詳細に記述されている。
【００２７】
【発明が解決しようとする課題】
以上述べたように、1394バス（ネットワーク）や、複数の1394バスをブリッジにより相互接続したネットワークにおけるアイソクロナスサイクルの同期制御で発生するアイソクロナスサイクルの周波数変動は、ネットワークを転送されるリアルタイムストリームの伝送品質劣化要因となる。特に、ブリッジネットワークにおいては、同期制御がシリアルに行われるため、バス間接続を経由する毎に周波数変動が蓄積してより大きな劣化となることが懸念される。しかし、ブリッジがまだ規格審議中であることもあり、この劣化問題が顕在化していないため、その対策についても全く行われていないのが現状である。こうした事情は、時刻情報を定期的に通知することで接続された装置間の同期を図るようにした他の通信方式においても同様である。
【００２８】
従って、本発明は、上述したような各同期制御によって発生するアイソクロナスサイクルの周波数変動を低減させて、1394規格を等のネットワークをより高性能な伝送媒体として利用可能とするネットワークの同期方法と、その方法に基づいたハードウェア（ＬＳＩ、バスブリッジ、ネットワーク機器）およびソフトウェアを提供することを目的とする。
【００２９】
【課題を解決するための手段】
請求項１の本発明は、クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを各々が備えた複数のネットワーク機器が接続されており、前記複数のネットワーク機器の一つが時刻管理ノードとして選ばれ、当該時刻管理ノードが自らが備える時刻情報格納手段から読み出される時刻情報を格納した時刻情報通知パケットを定期的に送信し、前記複数のネットワーク機器のうち前記時刻管理ノードを除いたネットワーク機器が、時刻従属ノードとして前記時刻情報通知パケットを受信して、該時刻情報通知パケットに格納された時刻情報の値で自らが備える時刻情報格納手段の時刻情報を更新することで同期化を行うネットワークの同期方法において、前記時刻従属ノードが、自らが備える該時刻情報格納手段の時刻情報を更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点に、前記受信した時刻情報通知パケットに格納された時刻情報の値で自らが備える該時刻情報格納手段の時刻情報を更新することを特徴とする。
【００３０】
請求項２の本発明は、請求項１に記載のネットワーク同期方法において、自らの時刻情報の値を変化させる時点は、時刻情報を更新する時点から、前記周期Ｔの自然数倍が経過した時点であることを特徴とする。また、請求項３の本発明方法は、請求項１または請求項２に記載のネットワーク同期方法において、前記Ｎの値が２であることを特徴とする。
【００３１】
請求項４の本発明のリンク層ＬＳＩは、供給されるシステムクロック信号を２分周する２分周器と、同システムクロック信号を２逓倍する２逓倍器と、受信したサイクルスタートパケットに格納された時刻情報を前記システムクロック信号に基づいて出力する機能を少なくとも有したパケット受信器と、前記２分周器の出力クロックおよび前記２逓倍器の出力クロックならびに前記時刻情報が入力され、これら入力に基づきサイクルタイムレジスタの値を制御するサイクルタイムレジスタ処理部と、を含み構成され、サイクルタイムレジスタの値の更新を２逓倍器の出力クロックに基づき行うことを特徴とする。
【００３２】
請求項５の本発明のリンク層ＬＳＩは、供給されるシステムクロック信号を２逓倍する２逓倍器と、受信したサイクルスタートパケットに格納された時刻情報を前記システムクロック信号に基づいて出力する機能を少なくとも有したパケット受信器と、前記２逓倍器の出力クロックで駆動されるとともに前記時刻情報の入力により０リセットされる４進カウンタと、前記４進カウンタの０リセット時出力および前記２逓倍器の出力クロックならびに前記時刻情報が入力され、これら入力に基づきサイクルタイムレジスタの値を制御するサイクルタイムレジスタ処理部と、を含み構成され、サイクルタイムレジスタの値のカウントアップを前記４進カウンタの繰り返し周期で行うとともにサイクルタイムレジスタの値の更新を前記４進カウンタのカウントアップ出力に同期して行うことを特徴とする。
【００３３】
請求項６の本発明のリンク層ＬＳＩは、供給されるシステムクロック信号を２逓倍する２逓倍器と、受信したサイクルスタートパケットに格納された時刻情報をシステムクロック信号に基づいて出力する機能を少なくとも有したパケット受信器と、前記システムクロックで駆動されるとともに前記時刻情報の入力により０リセットされる２進カウンタと、前記２進カウンタの０リセット時出力および前記時刻情報が入力され、これら入力に基づきサイクルタイムレジスタの値を制御するサイクルタイムレジスタ処理部と、を含み構成され、サイクルタイムレジスタの値のカウントアップを前記２進カウンタの繰り返し周期で行うとともにサイクルタイムレジスタの値の更新を前記２進カウンタのカウントアップ出力に同期して行うことを特徴とする。
【００３４】
請求項７の本発明のネットワーク機器は、請求項４〜６のいずれか１項に記載のリンク層ＬＳＩを用いて構成される。
【００３５】
請求項８の本発明のネットワーク機器は、クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段を備えたネットワーク機器であって、所定の時刻管理ノードの周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットを前記時刻管理ノードからネットワークを介して定期的に受信して、時刻従属ノードとして、前記時刻情報通知パケットに格納された時刻情報の値で自らが備える前記時刻情報格納手段の時刻情報を更新することで同期化を行うネットワーク機器において、前記時刻情報格納手段の時刻情報を更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記受信した時刻情報通知パケットに格納された時刻情報の値で自らが備える前記時刻情報格納手段の時刻情報を更新する時刻情報更新手段を具備したことを特徴とする。
【００３６】
請求項９の本発明のネットワーク機器は、請求項８に記載のネットワーク機器において、前記時刻情報格納手段の時刻情報を更新する時点を、前記時刻情報の値が変化する時点と一致させたことを特徴とする。また、請求項１０の本発明のネットワーク機器は、請求項８に記載のネットワーク機器において、前記時刻情報格納手段の時刻情報を更新する時点は、前記時刻情報の値が変化する時点に依存しないことを特徴とする。また、請求項１１の本発明のネットワーク機器は、請求項８〜請求項１０のいずれか１項に記載のネットワーク機器において前記Ｎの値が２であることを特徴とする。
【００３７】
請求項１２の本発明のバスブリッジは、クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを各々が備えた複数のネットワーク機器が接続可能に構成された複数のネットワークセグメントを相互に接続しネットワークを構成するためのバスブリッジであって、それぞれが異なるネットワークセグメントに接続され、各ネットワークセグメントにおけるクロック信号に従って値が変化する時刻情報を格納する時刻情報格納手段をそれぞれ備えた複数のポータルと、前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが自ら備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力する時刻誤差検出手段と、前記時刻誤差検出手段から出力される差分の値に基づいて、当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する調整値生成手段と、含み構成されたことを特徴とする。
【００３８】
請求項１３の本発明のバスブリッジは、請求項１２に記載のバスブリッジにおいて、前記時間調整値の絶対値の上限は、周期Ｔの予め定められた自然数倍の時間として規定されるサイクル周期で該絶対値の上限を除した値が前記クロック信号の周波数精度を超える最も小さい値として規定されることを特徴とする。また、請求項１４の本発明のバスブリッジは、請求項１３に記載のバスブリッジにおいて、前記時刻誤差検出手段から出力される差分の絶対値が予め定められたしきい値を越えた場合には、前記上限を超える時間調整値により前記従時刻情報の補正を行なう、ことを特徴とする。また、請求項１５の本発明のバスブリッジは、請求項１２〜請求項１４のいずれか１項に記載のバスブリッジにおいて、前記Ｍの値が２であることを特徴とする。
【００３９】
請求項１６の本発明のネットワークの同期方法は、クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを各々が備えた複数のネットワーク機器が接続可能に構成された複数のネットワークセグメントが、それぞれが異なるネットワークセグメントに接続され、各ネットワークセグメントにおけるクロック信号に従って値が変化する時刻情報を格納する時刻情報格納手段をそれぞれ備えた複数のポータルを有するバスブリッジにより相互に接続されて構成されたネットワークの同期方法であって、前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが自ら備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力し、前記差分の値に基づいて、当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する、ことを特徴とする。
【００４０】
請求項１７の本発明は、請求項１６に記載のネットワーク同期方法において、前記時間調整値の絶対値の上限は、周期Ｔの予め定められた自然数倍の時間として規定されるサイクル周期で該絶対値の上限を除した値が前記クロック信号の周波数精度を超える最も小さい値として規定されることを特徴とする。また、請求項１８の本発明は、請求項１７に記載のネットワーク同期方法において、前記時間調整値の絶対値が、前記誤差検出手段から出力される差分の絶対値が予め定められたしきい値を越えた場合には、前記上限を超える時間調整値により前記従時刻情報の補正を行なう、ことを特徴とする。
【００４１】
請求項１９の本発明は、請求項１７または請求項１８に記載のネットワーク同期方法において、前記クロック信号の周波数精度は、該周波数精度の規格上の最悪値として固定的に規定されることを特徴とする。また、請求項２０の本発明は、、請求項１７または請求項１８に記載のネットワーク同期方法において、前記クロック信号の周波数精度は、前記ネットワークに接続されるネットワーク機器およびブリッジにおける実際の周波数精度のうちの最悪値として動的に規定されることを特徴とする。
【００４２】
請求項２１の本発明は、請求項１６〜請求項２０のいずれか１項に記載のネットワーク同期方法において、前記マスターポータルは、前記主時刻情報が自らが接続されるネットワークセグメントに接続されたネットサイクルマスタに同期する、ように制御されることを特徴とする。
【００４３】
請求項２２の本発明のネットワーク同期方法は、請求項１６〜請求項２１のいずれか１項に記載のネットワーク同期方法において、前記スレーブポータルは、自らが接続されるネットワークセグメントに対して、前記時間調整値を格納した時刻情報調整パケットを所定周期で定期的に送信することを特徴とする。
【００４４】
請求項２３の本発明のネットワーク同期方法は、請求項１６〜請求項２１のいずれか１項に記載のネットワーク同期方法において、前記スレーブポータルは、自らが備える前記時刻情報格納手段に格納される時刻情報に前記時間調整値を加える処理を所定周期で定期的に行い、当該処理により得られた時刻情報を格納した時刻情報通知パケットを自らが接続されるネットワークセグメントに対して定期的に送信する、ことを特徴とする。
【００４５】
請求項２４の本発明のネットワーク同期方法は、請求項１６〜請求項２３のいずれか１項に記載のネットワーク同期方法において、前記Ｍの値が２であることを特徴とする。
【００４６】
請求項２５の本発明のネットワーク同期方法は、請求項１〜請求項３または請求項１６〜請求項２４のいずれか１項に記載のネットワーク同期方法において、前記ネットワークはIEEE 1394 規格に準拠したシリアルバスであり、前記時刻情報はサイクルタイムレジスタに格納された値であることを特徴とする。また、請求項２６の本発明のネットワーク同期方法は、請求項２５に記載のネットワーク同期方法において、ノードを構成する物理層ＬＳＩから供給される公称49.152メガヘルツのクロック信号を前記システムクロック信号(SCLK)として用いるとともに、前記Ｎおよび前記Ｍのいずれかあるいは両方の値を２としたことを特徴とする。
【００４７】
請求項２７の本発明のプログラムは、コンピュータに、ネットワーク機器の同期を実行させるためのプログラムにおいて、前記ネットワーク機器は、クロック信号を生成するクロック源と、該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段と、を有し、所定の時刻管理ノードから、該時刻管理ノードが自らが備える周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットをネットワークを介して定期的に受信するステップと、前記時刻情報格納手段の時刻情報が更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記時刻情報通知パケットに格納された時刻情報の値により前記時刻情報格納手段の時刻情報を更新するステップと、を有することを特徴とする。さらに、請求項２８の本発明のプログラムは、コンピュータに、バスブリッジにより相互に接続されて構成されたネットワークの同期を実行させるためのプログラムにおいて、前記バスブリッジは複数のポータルを有し、前記複数のポータルの各々は接続されたネットワークセグメントのクロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段を備え、前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のスレーブポータルが備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力するステップと、前記差分の値に基づいて当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力するステップと、を有することを特徴とする。
【００４８】
請求項２９の本発明のネットワーク同期制御ＬＳＩは、ネットワーク機器の同期を実行するための電子回路を集積化したネットワーク同期制御ＬＳＩにおいて、クロック信号を生成するクロック源と、前記クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段と、所定の時刻管理ノードから、該時刻管理ノードが自らが備える周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットをネットワークを介して定期的に受信する受信手段と、前記時刻情報格納手段の時刻情報が更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記時刻情報通知パケットに格納された時刻情報の値により前記時刻情報格納手段の時刻情報を更新する時刻情報更新手段と、を有することを特徴とする。請求項３０の本発明のネットワーク同期制御ＬＳＩは、相互に接続されて構成されたネットワークの同期を実行するための電子回路を集積化したネットワーク同期制御ＬＳＩにおいて、それぞれ、クロック信号を生成するクロック源と該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを有する複数のポータルと、前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力する時刻誤差検出手段と、前記差分の値に基づいて当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する調整値生成手段と、を有することを特徴とする。
また、請求項３１の本発明のネットワーク機器は、請求項２９または３０に記載のネットワーク同期制御ＬＳＩを備えたネットワーク機器。
請求項３２の本発明のネットワーク機器は、所定の時刻管理ノードに従属してネットワーク同期を実行するネットワーク機器において、クロック信号を生成するクロック源と、前記クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段と、前記時刻管理ノードから、該時刻管理ノードが自らが備える周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納した時刻情報通知パケットをネットワークを介して定期的に受信する受信手段と、前記時刻情報格納手段の時刻情報が更新可能なＴ／Ｎ（Ｎは２以上の整数）周期の更新可能時点群のうち前記時刻情報通知パケットの受信が完了して以降最初の更新可能時点で、前記時刻情報通知パケットに格納された時刻情報の値により前記時刻情報格納手段の時刻情報を更新する時刻情報更新手段と、を有することを特徴とする。請求項３３の本発明のネットワーク機器は、相互に接続されて構成されたネットワークの同期を実行するネットワーク機器において、それぞれ、クロック信号を生成するクロック源と該クロック信号から導かれる周期Ｔ（Ｔは正数）で値が変化する時刻情報を格納する時刻情報格納手段とを有する複数のポータルと、前記複数のポータルのひとつであるマスターポータルが備える時刻情報格納手段から読み出される主時刻情報から、前記複数のポータルのうち前記マスターポータル以外のポータルであるスレーブポータルが備える時刻情報格納手段から読み出される従時刻情報を差し引いた差分を出力する時刻誤差検出手段と、前記差分の値に基づいて当該従時刻情報を更新するために、Ｔ／Ｍ（Ｍは２以上の整数）の整数倍の時間調整値を出力する調整値生成手段と、を有することを特徴とする。
【００４９】
【発明の実施の形態】
以下本発明について実施の形態を挙げ、図面を用いて詳細に説明する。
【００５０】
〔第１の実施の形態〕ここでは、ネットワーク機器におけるサイクルスタートパケットを受信した際のサイクルタイムレジスタの上書き動作を本発明の方法に基づいて行うリンク層ＬＳＩについて説明する。図６は、本発明の第１の実施の形態としての1394リンク層ＬＳＩ:20A内部の概略構成を示すブロックである。このリンク層ＬＳＩ:20Aは、例えば先の図１に示した如き1394ネットワークに用いるノードを構成する際に使用される。なお図６では、リンク層ＬＳＩ:20Aに集積された回路ブロックのうち、本発明に関連し以降の説明に用いる部分のみを記して簡略化してある。
【００５１】
図６に示すように、リンク層ＬＳＩ:20Aは、外部からのシステムクロック信号およびデータが接続される物理層−リンク層インタフェース(PHY/LINK I/F)110 、２分周器120 、２逓倍器130 、パケット受信器(Rx)140 およびサイクルタイムレジスタ処理部150 を含み構成されている。各部間の接続については順に後述する。
【００５２】
パケット受信器140 は、物理層−リンク層インタフェース110 にて32ビットパラレル信号に変換された入力パケットデータのビット誤り検査とパケット種別調査とを行い、その種別に応じて出力先を振り分ける機能を有する。図６では、パケット受信器140 の出力のうち、サイクルスタートパケットを受信した際に、それに格納された時刻情報をサイクルタイムレジスタ処理部150 に向けて出力するデータ線のみを示してある。サイクルタイムレジスタ処理部150 は、入力されたクロックやデータに応じてサイクルタイムレジスタの値を制御する機能ブロックである。
【００５３】
リンク層ＬＳＩ:20Aは、前記物理層−リンク層インタフェース(PHY/LINK I/F)110 を介して当該1394ノードを構成する所定の物理層ＬＳＩと接続される。このインタフェース110 を介して入出力されるリンク層ＬＳＩ外部の信号は例えば９種類程度あるが、図６ではそのうちのシステムクロック信号：SCLKとデータの２種類のみを抜粋して示してある。
【００５４】
システムクロック信号：SCLK（以下、単にSCLKと記す）はリンク層ＬＳＩの動作のために物理層ＬＳＩから供給されるクロック信号であり、物理層ＬＳＩに水晶振動子から供給されるクロック周波数の2 倍（49.152メガヘルツ）である（図１参照）。一方データ信号は、リンク層ＬＳＩと物理層ＬＳＩ間でパケットデータの受け渡しを行うための信号で双方向インタフェースになっている。データ信号線1 本あたりのビットレートは毎秒49.152メガビットであり、S100データの場合は2 本の、S200データの場合は4 本の、S400データの場合は８本のデータ線をそれぞれ利用する。サイクルスタートパケットはS100で伝送されるため、2 本のデータ線を用いて物理層−リンク層インタフェース110 まで伝達されることになる。
【００５５】
データは、物理層−リンク層インタフェース110 を介してサイクルタイムレジスタ処理部150 に入力される。一方、入力されたSCLKは、物理層−リンク層インタフェース110 でバッファされた後、２分周器120 および２逓倍器130 、パケット受信器(Rx)140 へと入力される。２分周器120 は、入力されたSCLKの1/2 の周波数である24.576メガヘルツのクロックを生成し、サイクルタイムレジスタ処理部150 に向けて出力する。また、２逓倍器130 は、SCLKの２倍の周波数である98.304メガヘルツのクロックを生成してサイクルタイムレジスタ処理部150 に向けて出力する。
【００５６】
図６に示されるリンク層ＬＳＩ:20Aにサイクルスタートパケットが受信された際の、サイクルタイムレジスタ処理部150 の動作について、図７のタイムチャートを用いてより詳細に説明する。図７において(a) はシステムクロック信号、(b):1/2 分周クロックと(c):２逓倍クロックは、それぞれ２分周器120 および２逓倍器130 からサイクルタイムレジスタ処理部150 に入力されるクロック信号である。また、図ではサイクルタイムレジスタの動作のうち(d):サイクルオフセットフィールド値の変化のみを示してある。
【００５７】
サイクルタイムレジスタ処理部150 では、サイクルオフセットの値をカウントアップする動作は1/2 分周クロックの立ち上がりタイミングにおいて、またサイクルスタートパケットの時刻情報を上書きする動作は２逓倍クロックの立ち上がりタイミングにおいて、それぞれ行われる仕様になっている。例えば、図中に矢印で示されるタイミングでサイクルオフセット値が“34”のサイクルスタートパケットが入力された場合、その直後の２逓倍クロック立ち上がりタイミングでオフセット値“34”が上書きされ、その直後の1/2 分周クロック立ち上がりタイミングにおいてサイクルオフセット値:(d)が“35”にカウントアップされる。
【００５８】
このような動作により、約10ナノ秒の分解能でサイクルタイムレジスタを調整することができ、従来の１サイクルオフセット単位（約40ナノ秒）の調整に比べてサイクルマスタの時刻情報に対してより正確に合わせ込みが可能となるため、アイソクロナスサイクルの周期（約125 マイクロ秒）をより正確に調整でき、各ノードでの周波数変動を小さく抑えることが可能となる。
【００５９】
図８は、上述実施の形態における主要な処理過程を表したフローチャートである。図８に示すようにサイクルスタートパケットの受信の有無を監視しており（Ｓ１０１）、受信がない場合には（Ｓ１０１；ＮＯ）、1/2分周クロックの立ち上がり時に（Ｓ１０２；ＹＥＳ）サイクルオフセット値が３０７１であるか判定し（Ｓ１０３）、３０７１でなければ（Ｓ１０３；ＮＯ）サイクルオフセット値を１増加させてステップ；Ｓ１０１に戻る（Ｓ１０４）。もしサイクルオフセット値が３０７１であれば（Ｓ１０３；ＹＥＳ）、サイクルカウント値を１増加させるとともにサイクルオフセット値を０にしてステップ；Ｓ１０１に戻る（Ｓ１０５）。
【００６０】
サイクルスタートパケットを受信した場合には（Ｓ１０１；ＹＥＳ）、続く２逓倍クロックの立ち上がり時に（Ｓ１０６；ＹＥＳ）、サイクルスタートパケットの時刻情報でサイクルオフセット値を上書きしてステップ；Ｓ１０１に戻る（Ｓ１０５）。
【００６１】
以上述べた実施の形態のリンク層ＬＳＩ:20Aは、構成は簡単との利点があるが、互いに位相のずれた２つのクロックに基づいて処理を行う必要があるため、動作の安定性という面では必ずしも充分とは言えない。
【００６２】
次に、より安定で、かつ周波数変動低減効果の高い変形例のリンク層ＬＳＩ:20Bを図９にブロック図で示す。ここでは、前実施の形態における1/2 分周器120 に代わって4 進カウンタ160 が用いられている。その他の部分は前実施の形態に準じたもので再度の説明は省略する。前記4 進カウンタ160 は、２逓倍器130 から供給されるクロックにより０から３の範囲でカウントアップする機能と、サイクルスタートパケットが受信されてパケット受信器140 から時刻情報が出力された際にカウンタの値を０にリセットする機能とを有している。また、カウンタの値が０となる際にパルスをサイクルタイムレジスタ処理部150 へと出力する。
【００６３】
この図９に示されるリンク層ＬＳＩ:20Bにサイクルスタートパケットが受信された際の４進カウンタ160 およびサイクルタイムレジスタ処理部150 の動作について、図１０のタイムチャートを用いて詳細に説明する。図１０の(e):２逓倍クロックは、２逓倍器130 からサイクルタイムレジスタ処理部150 に入力されるクロック信号である。また、図ではサイクルタイムレジスタの動作のうち(h):サイクルオフセットフィールド値の変化のみ示す。
【００６４】
４進カウンタ160 は、２逓倍器130 から供給されるクロック:(e)によりカウントアップされ、カウンタ値:(f)が０となる際にパルスをサイクルタイムレジスタ処理部150 へと出力している（４進カウンタ出力:(g)）。サイクルタイムレジスタ処理部150 では、４進カウンタ160 からパルスが入力されるとサイクルオフセット値:(h)がカウントアップされる。
【００６５】
ここで、サイクルスタートパケットが受信されてパケット受信器140 から時刻情報が出力されると２逓倍クロック:(e)の立ち上がりタイミングにおいて、４進カウンタ160 が０にリセットされ、この時の４進カウンタ出力:(g)のパルスによりサイクルオフセット値(h):はサイクルスタートパケットの時刻情報により上書きされる。
【００６６】
例えば、図に矢印で示されるタイミングでサイクルオフセット値が“34”のサイクルスタートパケットが入力された場合、その直後の２逓倍クロック:(e)の立ち上がりタイミングでオフセット値“34”が上書きされ、その後の４進カウンタ出力(f):の立ち上がりタイミングにおいてサイクルオフセットが“35”にカウントアップされる。
【００６７】
このように、サイクルスタートパケットの時刻情報による上書きと同時に４進カウンタ160 が０にリセットされるので、サイクルスタートパケットの時刻情報により上書きされたサイクルオフセット値は、上書きされてから必ず１サイクルオフセットの時間だけ保持されることとなる。
【００６８】
上述のように、図９のリンク層ＬＳＩは、供給されるシステムクロック信号を２逓倍する２逓倍器と、受信したサイクルスタートパケットに格納された時刻情報を前記システムクロック信号に基づいて出力する機能を少なくとも有したパケット受信器と、前記２逓倍器の出力クロックで駆動されるとともに前記時刻情報の入力により０リセットされる４進カウンタと、前記４進カウンタの０リセット出力および前記２逓倍器の出力クロックならびに前記時刻情報が入力され、これら入力に基づきサイクルタイムレジスタの値を制御するサイクルタイムレジスタ処理部と、を含み構成され、サイクルタイムレジスタの値のカウントアップを前記４進カウンタの繰り返し周期で行うとともにサイクルタイムレジスタの値の更新を前記４進カウンタのカウントアップ出力に同期して行う。
【００６９】
このような動作により、本実施の形態でも先に挙げた実施の形態同様に約10ナノ秒の分解能でサイクルタイムレジスタを調整することができ、従来の１サイクルオフセット単位（約40ナノ秒）の調整に比べてサイクルマスタの時刻情報に対してより正確に合わせ込みが可能となるため、アイソクロナスサイクルの周期（約125 マイクロ秒）をより正確に調整でき、各ノードでの周波数変動を小さく抑えることが可能となる。
【００７０】
なお、本実施の形態では、2 逓倍器を用いることにより、約10ナノ秒の分解能でサイクルタイムレジスタを調整する例について示したが、４逓倍器や８逓倍器などにより、他の逓倍比を用いてより高分解能とすることも可能である。
【００７１】
〔第２の実施の形態〕次に、本発明の第２の実施の形態に係るデジタル映像再生装置220 のハードウェア構成を図１１のブロック図に示す。同装置は、1394バスから受信されるDVフォーマットのデジタル映像信号を復号化し、アナログ映像信号に変換して出力する機能を備えており、物理層ＬＳＩ:10 および本発明に係るリンク層ＬＳＩ:20C、そしてCPU:170 、ROM:180 、RAM:190 、デコーダ200 、D/A 変換器210 とから構成されている。
【００７２】
DVフォーマットのデジタル映像信号は、IEC 61883 規格に規定される方法で、アイソクロナスストリームパケットにマッピングされる。具体的には、アイソクロナスストリームパケットのデータフィールドの上位8 バイトがコモン・アイソクロナス・パケット（CIP ）ヘッダとしてIEC 61883 規格により定義されており、このCIP ヘッダに映像フォーマットの種別やタイムスタンプ情報などが格納される。
【００７３】
本実施の形態でのリンク層ＬＳＩ:20Cは、トランザクション層などの1394規格プロトコルのソフトウェア処理などを行うCPU 170 と接続されるホストインタフェースと、高速処理が必要なアイソクロナスストリームパケットの入出力を行うためのストリームインタフェースとを備えており、ホストインタフェースはCPU 170 などが接続されるホストバスに、ストリームインタフェースはデコーダ200 にとそれぞれ接続されている。なお、デコーダ200 もこれと同様な、ホストインタフェースとストリームインタフェースを備えている。
【００７４】
本発明を実施するリンク層ＬＳＩ:20Cの内部構成を図１２に示す。ここでは、本実施の形態に関わる、アイソクロナスストリームパケット受信処理とサイクルタイムレジスタ制御とに関連したブロックが抜粋されて図示されている。1394バスから入力されたパケットは、物理層−リンク層インタフェース110 を介してリンク層ＬＳＩ:20C内部のパケット受信器140 に入力される。パケット受信器140 にて、受信されたパケットがアイソクロナスストリームパケットだと判断されると、そのパケットデータはIEC 61883 終端部240 に入力される。また、パケット受信器140 （Rx）は、サイクルスタッカブルパケット受信に応じて時刻情報をサイクルタイムレジスタ150 に出力する。
【００７５】
IEC 61883 終端部240 は、前述したCIP ヘッダに格納された情報に基づいてDVデータの再構築を行ったり、CIP ヘッダに格納されるタイムスタンプと自身が備えるサイクルタイムレジスタから出力される時刻情報とから、公称約30ヘルツの映像フレームパルスを生成したりして、それらをストリームインタフェースに出力する機能を備えている。
【００７６】
リンク層ＬＳＩ:20Cのサイクルタイムレジスタ制御には、SCLKにより駆動され、’0 ’と’1 ’とを交互に出力する２進カウンタ230 が使用されている。さらにこの２進カウンタ230 は、サイクルスタートパケットが受信されると出力値を’0 ’にリセットする機能も盛り込んである。
【００７７】
この２進カウンタ230 の出力とSCLK、受信されるサイクルスタートパケットを利用して、サイクルタイムレジスタ処理部150 にて行われるサイクルタイムレジスタ制御動作の詳細を図１３を用いて説明する。図１３の(i) はシステムクロック信号、(j) は２進カウンタの値、(k) は２進カウンタ230 からサイクルタイムレジスタ処理部150 に入力される２進カウンタ出力、(m) はサイクルタイムレジスタのサイクルオフセットフィールド値である。
【００７８】
サイクルタイムレジスタ処理部150 では、２進カウンタ230 からパルス信号:(k)が入力されるとサイクルオフセット値:(m)がカウントアップされる。また、サイクルスタートパケットが入力されると2 進カウンタ230 が０にリセットされるため、サイクルスタートパケットの時刻情報により上書きされたサイクルオフセット値は、上書きされてから1 サイクルオフセットの時間保持されることとなる。
【００７９】
図１４は、上述実施の形態における主要な処理過程を表したフローチャートである。図１４に示すようにサイクルスタートパケットの受信を監視しておき、ＳＣＬＫの立ち上がりごとに（Ｓ２０１）サイクルスタートパケットの受信の有無を確認し（Ｓ２０２）、受信がない場合には（Ｓ２０２；ＮＯ）、２進カウンタの値に応じて（Ｓ２０３）カウンタ値が０の場合（Ｓ２０３；ＹＥＳ）には、サイクルオフセット値が３０７１であるか判定し（Ｓ２０５）、３０７１でなければ（Ｓ２０５；ＮＯ）サイクルオフセット値を１増加させる（Ｓ２０６）とともに２進カウンタの値を１として（Ｓ２０７）、ステップ；Ｓ２０１に戻る。もしサイクルオフセット値が３０７１であれば（Ｓ２０５；ＹＥＳ）、サイクルカウント値を１増加させるとともにサイクルオフセット値を０にし（Ｓ２０７）、２進カウンタの値を１として（Ｓ２０７）ステップ；Ｓ２０１に戻る。ステップＳ２０３で２進カウンタ値が１の場合（Ｓ２０３；ＮＯ）には、２進カウンタ値が０になるとともに（Ｓ２０４）ステップ；Ｓ２０１に戻る。
【００８０】
一方、サイクルスタートパケットの受信があったことを確認した場合には（Ｓ２０２；ＹＥＳ）、２進カウンタ値が０になるとともに（Ｓ２０９）、サイクルスタートパケットの時刻情報でサイクルオフセット値を上書きしてステップ；Ｓ２０１に戻る（Ｓ２１０）。
【００８１】
このような動作により、サイクルマスタの時刻情報に対してより正確に合わせ込みが可能となるため、周波数変動値を小さく抑えることが可能となる。以上述べたようなリンク層ＬＳＩ:20Cの構成は、先に図６や図９で説明したものと比較して、逓倍器を用いていないためより簡単に構成することができる。
【００８２】
以上説明したリンク層ＬＳＩ:20Cを利用することにより、リンク層ＬＳＩ:20Cから出力されるフレームパルスのジッタが低減されるため、本実施の形態のデジタル映像再生装置220 では、より高品質な映像信号の復号化が可能となる。
【００８３】
なお、以上の説明では、リンク層ＬＳＩ:20Cの内部に実装されたハードウェアによりサイクルタイムレジスタ制御を行っているが、この処理をソフトウェアのプログラムとしてROM:180 にロードし、CPU:170 により実行させることで実現することもできる。
【００８４】
〔第３の実施の形態〕次に、本発明の第３の実施の形態に係るブリッジ接続された1394ネットワークを図１５に示す。このブリッジネットワークは、1394バス90と91とがブリッジ70A により接続されて構成されている。バス90にはノード50が、バス91にはノード51がそれぞれ接続されており、ノード50はバス90におけるサイクルマスタとして、さらにはネットワーク全体のサイクルマスタであるネットサイクルマスタとして機能する。一方バス91では、ブリッジ70A のポータル80B がサイクルマスタとして機能する。つまり、ネットサイクルマスタであるノード50のサイクルタイム情報が得られるポータル80A にポータル80B 側のサイクルタイムレジスタの値を同期させるための制御がブリッジ70A 内部で行われ、その制御結果に基づく時刻情報をポータル80B がサイクルスタートパケットを用いてバス91に通知することにより、ブリッジネットワーク全体の同期を確立させる。
【００８５】
以下、本発明に係る、ブリッジ70A 内で行われる上記のバス間同期制御の詳細について説明する。ブリッジ70A に実装された、サイクルタイムレジスタの同期制御関連部の主要構成を図１６にブロック図で示す。また、ブリッジ70A でのバス間同期制御動作の一例を図１７にタイムチャートで示す。
【００８６】
図１６には、ブリッジ70A でマスタポータルとなるポータル80A のサイクルタイムレジスタ処理部150A、スレーブポータルとなるポータル80B の２逓倍器130 、サイクルタイムレジスタ処理部150B、誤差検出部260 および調整値生成部270 が示されている。
【００８７】
適宜の制御によってネットサイクルマスタに同期したポータル80A のサイクルタイムレジスタ処理部150Aは、内蔵するサイクルタイムレジスタのサイクルオフセットの値が予め定められた値になる度に同期パルスを出力する。本実施の形態では、サイクルオフセットの値が3070となる度に同期パルスを出力するよう設定されているが、他の値を用いてもよい。
【００８８】
誤差検出部260 は、逓倍器130 から出力される98.304 MHzのクロックで動作しており、図では明示されない４進カウンタを内蔵していて、このカウンタの値を用いることにより、１サイクルオフセットの時間幅（約40ナノ秒）の４分の１の時間分解能で誤差を検出する。この誤差検出部260 は、ポータル80A が備えるサイクルタイムレジスタ処理部150Aから送信される同期パルスを受信すると、ポータル80B が備えるサイクルタイムレジスタ処理部151Bが内蔵するサイクルタイムレジスタのサイクルオフセットの値を調べ、その値から3070を減じた値を両サイクルオフセットの誤差として算出する。特にこの際には、誤差検出部260 は、内蔵する前記４進カウンタの値を用いることにより、１サイクルオフセットの４分の１の時間分解能で誤差を検出する。
【００８９】
即ち、98.304 MHzクロックで同期化された同期パルスがhighとなる時点における、自身のサイクルオフセット値から3070を減じた値に、４進カウンタの値に1/4 を乗じた値を加える。図１７に示した例では、自身のサイクルオフセット値（3069）から3070を減じた値は-1であり、かつこの時点での４進カウンタの値は２である。従って、検出される誤差の値は-1/2サイクルとなる。つまり、スレーブポータルのサイクルオフセットがマスターポータルのそれより1/2 サイクル分だけ遅れていることを示している。
【００９０】
このようにして誤差検出部260 で得られた誤差情報に基づいて、調整値生成部270 において、ポータル80B 側のサイクル周期の時間調整値を定め（詳細過程は後述）、その定められた時間だけ、次のサイクルの周期を125 マイクロ秒から増減する。この時間調整値も、1 サイクルオフセットの時間幅の4 分の1 の時間分解能で設定される。さらに、この調整されたタイミングに従ってポータル80B がサイクルマスタとしてバス51にサイクルスタートパケットを送信することで、バス50,51 間の同期が確立される。
【００９１】
本実施の形態では、調整値生成部270 において、入力される誤差の値と出力する調整値との関係を以下に説明するように定めて実行させる。まず、調整値の絶対値の最大値を、ネットワークにおけるクロック周波数精度の最悪値に基づいて以下のように定めた。1394規格では、クロック周波数精度は±100 ppm と定められているため、最悪200 ppm の周波数ずれが想定される。3072サイクルオフセットであるアイソクロナスサイクルの周期を、調整値として、4 分の1 サイクルオフセットだけ増減させた場合の周波数変動は約81.4 ppm (0.25/3072)であり、200 ppm の周波数ずれがあった場合にこの調整値では制御できない。200 ppm の周波数ずれに対して有効に制御できる調整幅の４分の１サイクルオフセット分解能での最小値は、４分の３サイクルオフセットであり、これに対応する周期調整量（周波数変動）は約244.1 ppm (0.75/3072) である。そこで、この値、４分の３サイクルオフセットを調整幅の最大値に定め、以下のように誤差と調整値との関係を定めた。
【００９２】
〔誤差の絶対値〕                    〔調整値〕
3/4 サイクルオフセット以上    … 3/4サイクルオフセット
1/2 サイクルオフセット        … 1/2サイクルオフセット
1/4 サイクルオフセット        … 1/4サイクルオフセット
0 サイクルオフセット          … 0サイクルオフセット
【００９３】
なお、ここでは上記の表に示される関係に基づいて動作させたが、誤差と調整値との関係として上記以外の関係を適用しても良い。例えば、誤差の絶対値が1/2 サイクルオフセット以下の場合の調整値を一律０サイクルオフセットと定めても良いし、過去の調整値の履歴を利用して積分制御的な調整値設定を用いても良い。あるいは、ブリッジの電源投入直後において、サイクルタイムレジスタの同期引き込みを行っている最中の誤差が著しく大きい状況下では、早く同期確立状態とするために、クロックの周波数精度を大きく越えた調整値を適用するような設定を加えても良い。これは、例えば誤差の絶対値が100 サイクルオフセット以上ある場合に調整値を32サイクルオフセットとするという仕様である。
【００９４】
以上述べた同期方法により、約10ナノ秒の分解能でスレーブポータル80B のサイクルタイムレジスタを調整することができ、従来の１サイクルオフセット単位（約40ナノ秒）の調整に比べてマスタポータルの時刻情報に対してより正確に合わせ込みが可能となる結果、ポータル80B をサイクルマスタとしたバス91におけるサイクルタイムレジスタの周波数変動（周期ズレ）も低減される。
【００９５】
なお、本実施の形態ではバス91のサイクルマスタをポータル80B としたが、他のノードがサイクルマスタとなっても良い。これは例えば図１５の構成において、ノード51がバス91におけるサイクルマスタとなる場合に相当する。この場合、ポータル80B にはサイクルタイムレジスタ調整用の制御パケットをノード51に送信し、それに基づいてノード51が自身のサイクルタイムレジスタの値を調整するような、前述のP1394.1 規格に適用されている機能が必要となる。ただしP1394.1 規格では調整値が±1 サイクルオフセットに固定されているため、より高い分解能の調整を可能とするようなsyフィールドの値の定義などが必要となる。
【００９６】
〔第４の実施の形態〕続いて、本発明の第４の実施の形態について説明する。第４の実施の形態も、第３の実施の形態と同様に、図１５に示されるネットワークで適用される。本実施の形態も、バス90に接続されたノード50がネットサイクルマスタとして機能し、バス91のサイクルマスタに設定されるポータル80B が、自身のサイクルタイムレジスタの値をポータル80A のサイクルタイムレジスタの値に同期させる制御をブリッジ70A 内で行うことにより、ネットワーク全体の同期を確立させる方法である。
【００９７】
以下、ブリッジ70A 内で行われる、同期制御の詳細について説明する。ブリッジ70A に実装された、サイクルタイムレジスタの同期制御部の主要構成を図１８にブロック図で示す。また、ブリッジ70A でのバス間同期制御動作の一例を図１９にタイムチャートで示す。
【００９８】
まず、ネットサークルマスタが送信するサイクルスタートパケットを受信するポータル80A 側では、図１２に示されるリンク層ＬＳＩ:20Cでも適用された、1/2 サイクルオフセットの周期を持つSCLKの分解能でサイクルタイムレジスタの値を制御する仕様を適用する。すなわち、図１８の２進カウンタ230 からパルスが出力されるタイミングでカウントアップおよび上書き処理が行われる仕様である。サイクルスタートパケットが受信されると2 進カウンタ230 の値が0 にリセットされるようにすることで、サイクルタイムレジスタ処理部150Aを介してSCLKの分解能でサイクルタイムレジスタの周波数変動を低減させている。
【００９９】
本実施の形態では一方のポータル80B 側の同期制御部も、SCLKの時間分解能で誤差および調整値が設定される。調整値の最大値は1 サイクルオフセットとし、誤差と調整値との対応関係を以下の対応表のように定めた。
【０１００】
〔誤差の絶対値〕                      〔調整値〕
2 サイクルオフセット以上       … 1サイクルオフセット
1 サイクルオフセット            … 1/2サイクルオフセット
0 サイクルオフセット            … 0サイクルオフセット
【０１０１】
図１９に示すように、ポータル80A が、サイクルオフセットが3070となるタイミングに同期パルスを送信する。ポータル80B は、その同期パルスを自身のSCLKで同期化。さらに、同期化された同期パルスがhighの時点において、サイクルオフセットの差分を計算する。図１９の場合は+1。つまり、相手より１サイクルオフセット分進んでいる。誤差の絶対値が1 サイクルオフセットの場合の調整値は、前述対応表（〔００７１〕）の関係より1/2 サイクルオフセットであるため、1/2 サイクルオフセット分の時間を延長させることにより調整がなされる。図２０は、ポータル80Bにおける概略処理過程の参考フローチャートである。
【０１０２】
以上述べたような簡易な方法を用いて、前実施の形態同様にバス91におけるサイクルタイムレジスタの周期ズレが補正されバスの周波数変動が低減される。なお、ここでは上記の表に示される関係に基づいて動作させたが、誤差と調整値との関係として異なる関係を適用しても良い。
【０１０３】
〔第５の実施の形態〕本発明の第５の実施の形態を図２１に示す1394ネットワークにより説明する。このネットワークは、80A 〜 80Dの4 つのポータルを持つブリッジ70B により、4 つのバス90〜 93 が接続されて構成されている。このネットワークでは、各バスのサイクルマスタにはポータルが選出される仕様になっており、それらの中でポータル80A がネットサイクルマスタとして機能するよう設定されている。
【０１０４】
ブリッジ70B に実装された、サイクルタイムレジスタの同期制御関連部の構成を図２２に示す。ポータル80A はネットサイクルマスタであるため、自身のフリーランニングのクロックに基づいて動作すればよい。一方ポータル80B 〜 80Dでは、ポータル80A に従属するよう同期制御を行う。
【０１０５】
図２２に示されるように本実施の形態では、ポータル80A が自身のサイクルオフセットの値が3070となる度に周期的に同期パルスをポータル80B 〜 80Dに向けて出力し、ポータル80B 〜 80Dが、この同期パルスに基づいて各々独立して同期制御を行う方法を用いている。この同期制御の方法は、図１８を用いて示した本発明の第４の実施の形態で用いられた方法と基本的に同じであるが、調整値の最大値を動的に決定する機能が盛り込まれている点が異なっている。
【０１０６】
この、同期制御における最大調整値を動的に決定する機能について説明する。1394規格の規格上クロック周波数精度の上限は100 ppm と定められているが、実際にネットワークに接続されている機器のクロック周波数精度が良好な場合は、同期制御における調整値を必要にして十分な程度に小さく設定すれば、同期制御における周波数変動をより小さく保つことが可能となるため、同期の性能がより良くなることが期待できる。本実施の形態では、このように、実際にネットワークに接続されている機器のクロック周波数精度に応じて同期制御における最大調整値を動的に変更する機能がブリッジ70B に実装されている。
【０１０７】
上述の機能は、各ポータルに実装されるクロック周波数精度調査部280 〜283 と、ネットサイクルマスタであるポータル80A に実装される最大調整値判断部290 を用いて行われる。まず各ポータルは、クロック周波数精度調査部280 〜 283により、自分が接続されたバスにおけるノードのクロック周波数精度を調査する。
【０１０８】
具体的には、ノードの性能情報などが記載されたコンフィグレーション・ロム領域のcyc ＿clk ＿acc フィールドにクロック周波数精度情報が書かれているため、このフィールドの値を読み出す。なお、この読み出しは、バス内のポータルとサイクルマスタについて行えば十分であるが、サイクルマスタがノードの抜き差しなどのたびに変化する可能性がある場合はその都度調査結果を更新する必要がある。
【０１０９】
従って、ポータルやサイクルマスタなどの種別に依らず、全てのノードのcyc ＿clk ＿acc を調査するようにしても良い。ただし、このcyc ＿clk ＿acc フィールドの実装は必須ではないため、読み出し要求を全てのノードに送信しても、このフィールドを実装しない一部のノードからの応答が得られない場合がある。しかしながら、現実的にはサイクルマスタ能力のあるほぼ全てのノードが、このcyc ＿clk ＿acc フィールドを実装していると考えられるため、この読み出し手順は実質的には有効に利用できると考えられる。
【０１１０】
続いて、各クロック周波数精度調査部は、読み出された値の中の最悪値を最大調整値判断部290 に向けて出力する。最大調整値判断部290 では、各ポータルから報告された最悪値から、ネットワーク全体における周波数精度の最悪値を検出し、その値に基づいて最大調整値を判断する。
【０１１１】
具体的には、以下の不等式を満たす最小の自然数k を算出すると、k ・p が最大調整値として得られる。
k ・p/3072 >= 2 ・acc ＿max
ただし、p は同期制御時の時間分解能（単位はサイクルオフセット）、acc ＿max はクロック周波数精度最悪値
【０１１２】
例えば、1/4 サイクルオフセットの時間分解能で同期制御を行う場合（p=1/4 ）、クロック周波数精度が100 ppm 以下であればk=3 となり、最大調整値は3/4 サイクルオフセットと算出されるが、クロック周波数精度が20 ppm以下に抑えられている環境であれば、最大調整値を1/4 サイクルオフセットに抑えることができる。このようにして得られた最大調整値は、最大調整値判断部290 から各ポータルの調整値生成部270 〜 272に通知され、同期制御時に利用される。
【０１１３】
なお、本実施の形態では各バスのノードのクロック精度をそのバスに接続されるポータルが調査する方法が用いられたが、予め定められた1 台あるいは複数のノードが自らが接続されないバスのクロック精度情報についても調査するようにしても良い。
【０１１４】
また、本実施の形態では、バス毎のクロック周波数精度調査結果の報告と、それに基づく最大調整値の通知はブリッジ70内部で完結しているが、1394バス上でこれらの情報をやりとりするためのメッセージフォーマットを新たに規定するなどの補完により、複数のブリッジ装置を含み構成されたネットワークにおいても同様の方法を実施することが可能である。
【０１１５】
なお、以上述べた全ての実施の形態は、どれも1394規格に基づくバスの場合を例にして説明したが、これに限らず、本発明は時刻情報を定期的に通知することで接続された装置間の同期を図るようにした他の通信方式であれば略同様に適用可能である。
【０１１６】
【発明の効果】
以上詳述したように本発明によれば、ネットワークにおける時刻情報の同期制御に伴って発生する周波数変動を小さく抑えることが可能になるとの効果を奏する。従って、このネットワークでのリアルタイムAVストリームなどの伝送品質を向上させることが可能となる。
【図面の簡単な説明】
【図１】  1394規格におけるデータ転送の概念を説明する図である。
【図２】サイクルタイムレジスタのフォーマットを示す図である。
【図３】図１に示される1394ネットワークにおいて、サイクルスタートパケットにより時刻情報が同期される様子の一例を示す図である。
【図４】  P1394.1 委員会において審議されている、ブリッジネットワークでの同期制御方法を説明する図である。
【図５】  P1394.1 委員会において定められている、サイクルタイムレジスタ値調整のための制御パケットのフォーマットを示す図である。
【図６】本発明の第１の実施の形態に係る、1394リンク層ＬＳＩ:20Aの内部構成を示すブロック図である。
【図７】図６のリンク層ＬＳＩ:20Aにサイクルスタートパケットが受信された際のサイクルタイムレジスタ処理部150 の動作について説明したタイムチャートである。
【図８】第１の実施の形態における主要な処理過程を表したフローチャートである。
【図９】本発明の第１の実施の形態の変形例に係る、1394リンク層ＬＳＩ:20Bの内部構成を示すブロック図である。
【図１０】本発明の第１の実施の形態の変形例で用いられたリンク層ＬＳＩ:20Bにサイクルスタートパケットが受信された際の、4 進カウンタ160 およびサイクルタイムレジスタ処理部150 の動作について説明したタイムチャートである。
【図１１】本発明の第２の実施の形態に係るデジタル映像再生装置220 のハードウェア構成を示すブロック図である。
【図１２】本発明の第２の実施の形態に係るリンク層ＬＳＩ:20Cの内部構成を示すブロック図である。
【図１３】本発明の第２の実施の形態に係るリンク層ＬＳＩ:20Cにサイクルスタートパケットが受信された際の、2 進カウンタ230 およびサイクルタイムレジスタ処理部150 の動作について説明するタイムチャートである。
【図１４】第２の実施の形態における主要な処理過程を表したフローチャートである。
【図１５】本発明の第３の実施の形態に係る1394ネットワークを示す図である。
【図１６】本発明の第３の実施の形態に係るブリッジ70A に実装された、サイクルタイムレジスタの同期制御部の構成を示すブロック図である。
【図１７】第３の実施の形態におけるブリッジ70A でのバス間同期制御動作の一例を示すタイムチャートである。
【図１８】本発明の第４の実施の形態に係るブリッジ70A に実装された、サイクルタイムレジスタの同期制御部の構成を示すブロック図である。
【図１９】第４の実施の形態におけるブリッジ70A でのバス間同期制御動作の一例を示すタイムチャートである。
【図２０】ブリッジ70Aのポータル80Bにおける概略処理過程の参考フローチャートである。
【図２１】本発明の第５の実施の形態に係る1394ネットワークを示す図である。
【図２２】本発明の第５の実施の形態に係るブリッジ70に実装された、サイクルタイムレジスタの同期制御部の構成を示すブロック図である。
【符号の説明】
10,11,12：物理層ＬＳＩ
20,20A,20B,20C,21,22：リンク層ＬＳＩ
30,31,32：水晶振動子
40,41,42：サイクルタイムレジスタ
50,51,52,53 ：ノード（ネットワーク機器）
60,61 ：ケーブル
70,70A,70B,71 ：ブリッジ
80A,80B,80C,80D,81A,81B ：ポータル
90,91,92,93 ：バス
100,101,102 ：サイクルマスタ
110 ：物理層−リンク層インタフェース
120 ：2 分周器
130 ：2 逓倍器
140 ：パケット受信器
150,150A,150B,151 ：サイクルタイムレジスタ処理部
160 ：4 進カウンタ
170 ：CPU
180 ：ROM
190 ：RAM
200 ：デコーダ
210 ：D/A 変換器
220 ：デジタル映像再生装置
230 ：2 進カウンタ
240 ：IEC61883終端部
250 ：ホストインタフェース
260 ：誤差検出部
270,271,272 ：調整値生成部
280,281,282,283 ：クロック周波数精度調査部
290 ：最大調整値判断部
【図１】
0003698074.tif 000002
【図２】
0003698074.tif 000003
【図３】
0003698074.tif 000004
【図４】
0003698074.tif 000005
【図５】
0003698074.tif 000006
【図６】
0003698074.tif 000007
【図７】
0003698074.tif 000008
【図８】
0003698074.tif 000009
【図９】
0003698074.tif 000010
【図１０】
0003698074.tif 000011
【図１１】
0003698074.tif 000012
【図１２】
0003698074.tif 000013
【図１３】
0003698074.tif 000014
【図１４】
0003698074.tif 000015
【図１５】
0003698074.tif 000016
【図１６】
0003698074.tif 000017
【図１７】
0003698074.tif 000018
【図１８】
0003698074.tif 000019
【図１９】
0003698074.tif 000020
【図２０】
0003698074.tif 000021
【図２１】
0003698074.tif 000022
【図２２】
0003698074.tif 000023