(57)【要約】【課題】  高速光伝送システムにおけるＪＣ処理に要求される高精度かつ高速のクロック偏差検出を比較的簡単な回路で実現する。【解決手段】  第一のクロックの一定周期ごとに第二のクロックの計数値を求め、その計数値とクロック偏差がない場合の理想値とを比較してその結果を保持し、複数回の比較結果からクロック偏差を判定する。【選択図】  図１
2008092408.tif 000002
【特許請求の範囲】
【請求項１】
第一のクロックと第二のクロックとの間のクロック偏差を検出するクロック偏差検出方法において、
前記第一のクロックの一定周期ごとに前記第二のクロックの計数値を求め、その計数値と基準値とを比較してその結果を保持し、複数回の比較結果からクロック偏差を判定する
ことを特徴とするクロック偏差検出方法。
【請求項２】
前記第二のクロックの周波数Ｆ２は前記第一のクロックの周波数Ｆ１のＭ／Ｎ倍、ただしＭ、Ｎは自然数、であり、
前記一定周期における前記第一のクロックのクロック数がＴ１であるとき、前記基準値はクロック偏差がない場合の理想値Ｔ１×Ｍ／Ｎである
請求項１記載のクロック偏差検出方法。
【請求項３】
前記基準値は小数点以下の値を含む値である請求項１または２記載のクロック偏差検出方法。
【請求項４】
比較結果として、１回の比較ごとに、計数値が前記基準値より小さいことを表す第一の値と、計数値が前記基準値より大きいことを表す第二の値とのいずれか一方を保持する請求項１ないし３のいずれか記載のクロック偏差検出方法。
【請求項５】
複数回の比較結果から、前記第一の値または前記第二の値の個数によりクロック偏差を判定する請求項４記載のクロック偏差検出方法。
【請求項６】
第一のクロックを計数して所定の計数値ごとに分周出力を発生する第一のカウンタと、
この第一のカウンタのひとつの分周出力と次の分周出力との間に前記第一のクロックと異なる第二のクロックを計数する第二のカウンタと、
この第二のカウンタの計数値から前記第一のクロックと前記第二のクロックとの間のクロック偏差を検出する手段と
を備えたクロック偏差検出方法において、
前記検出する手段は、
前記第二のカウンタの計数値と基準値とを比較する手段と、
この比較する手段の比較結果を複数回にわたり保存する保存手段と、
保存された複数回にわたる比較結果からクロック偏差を判定する手段と
を含む
ことを特徴とするクロック偏差検出装置。
【請求項７】
前記第二のクロックの周波数Ｆ２は前記第一のクロックの周波数Ｆ１のＭ／Ｎ倍、ただしＭ、Ｎは自然数、であり、
前記第一のカウンタの分周周期に相当する前記第一のクロックのクロック数がＴ１であるとき、前記基準値はクロック偏差がない場合の理想値Ｔ１×Ｍ／Ｎである
請求項６記載のクロック偏差検出装置。
【請求項８】
前記基準値は小数点以下の値を含む値である請求項６または７記載のクロック偏差検出装置。
【請求項９】
前記比較する手段は、計数値が前記基準値より小さいことを表す第一の値と、計数値が前記基準値より大きいことを表す第二の値とのいずれか一方を出力する請求項６ないし８のいずれか記載のクロック偏差検出装置。
【請求項１０】
前記判定手段は、前記第一の値または前記第二の値の個数によりクロック偏差を判定する請求項９記載のクロック偏差検出装置。
【請求項１１】
前記第一のカウンタの分周周期に相当する前記第一のクロックのクロック数Ｔ１が非整数であるとき、前記第一のカウンタとして、個々の分周周期ではＴ１の前後の整数値のクロックを計数するごとに分周出力を発生し、かつ平均的にはＴ１の周期で分周出力を発生する非整数分周カウンタを用いる請求項６記載のクロック偏差検出装置。
【請求項１２】
クロック偏差を判定する周期に相当する前記第一のクロックのクロック数Ｔ３と、前記保存手段が保存する比較結果の数Ｌとが、Ｔ３＝ａ×Ｌ＋ｂ、ただしａ、ｂは自然数、で表され、
前記非整数分周カウンタは、
ロードされた計数値を計数するごとに分周信号を出力する計数手段と、
ｂを初期値とし、自分の蓄積している値に前記計数手段が分周信号を出力するごとにｂを加算してＬを越えた分の値を蓄積する加算器と、
前記計数手段が分周信号を出力するごとに、前記加算器の加算結果がＬを越えないときにはａを、Ｌを越えたときにはａ＋１を前記計数手段にロードする手段と
を備えた
請求項１１記載のクロック偏差検出装置。
【請求項１３】
クライアント・クロックで入力されたデータを一時的に蓄える蓄積手段と、
この蓄積手段に蓄えられたデータをフレーム化してライン・クロックで出力するフレーム処理手段と、
前記蓄積手段に蓄積されているデータ量が過多のときにはフレームに収容するデータ量を増やし、前記蓄積手段に蓄積されているデータ量が過少のときにはフレームに収容するデータ量を減らすように前記フレーム処理手段を制御する手段と
を備えたフレームマッピング回路において、
前記制御する手段は、前記クライアント・クロックと前記ライン・クロックとのクロック偏差を検出して前記フレーム処理手段におけるデータの調整量を求めるクロック偏差検出手段を含み、
このクロック偏差検出手段として、請求項６ないし１０のいずれか記載のクロック偏差検出装置を備えた
ことを特徴とするフレームマッピング回路。
【請求項１４】
異なる多重化階層に対応して前記蓄積手段および前記フレーム処理手段を多段に備え、
前記制御手段は、前記クロック偏差検出手段の検出したクロック偏差に応じて前記異なる多重化階層のそれぞれのフレームに収容されるデータ量の調整を分担し、かつ、検出されるクロック偏差の誤差分をマージンとして後段の多重化階層におけるデータ量の調整分に割り当てる階層分担手段を含む
請求項１１記載のフレームマッピング回路。
【請求項１５】
ロードされた計数値を計数するごとに分周信号を出力する計数手段と、
自然数の定数値ｂを初期値とし、自分の蓄積している値に前記計数手段が分周信号を出力するごとに前記定数値ｂを加算してあらかじめ定められた自然数の定数値ｍを越えた分の値を蓄積する加算器と、
前記計数手段が分周信号を出力するごとに、前記加算器の加算結果が前記定数値ｍを越えないときには自然数の定数値ａを、ｍを越えたときにはａ＋１を前記計数手段にロードする手段と
を備え、
ｔ＝ａ×ｍ＋ｂで表されるクロック数の間に前記計数手段からｍ回の分周信号を出力する
ことを特徴とする非整数分周カウンタ。
【請求項１６】
前記定数値ａおよび前記定数値ｂが可変である請求項１５記載の非整数分周カウンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクライアント・データをフレーム化して伝送するディジタル伝送システムに関する。特に、送信時にクラインアント側のクロック（以下「クライアント・クロック」という）と伝送ライン側のクロック（以下「ライン・クロック」という）とのクロック偏差の検出、および検出されたクロック偏差に応じたスタッフ処理に関する。
【０００２】
本発明は、特に、ＩＴＵ−Ｔ勧告Ｇ．７０９で定義された光伝送ネットワーク（ＯＴＮ）での利用に適する。
【背景技術】
【０００３】
ＩＴＵ−Ｔ勧告Ｇ．７０９で定義された光伝送ネットワークなどのディジタル伝送システムにおいて、クライアント・データをライン側のフレームに構成して伝送する場合に、クライアント・クロックとライン・クロックとのクロック偏差によりデータ量の変動が生じるため、フレーム内のビットを調整（正スタッフまたは負スタッフ）するジャスティケーション・コントロール処理（以下「ＪＣ処理」という）を行う必要がある（特許文献１、２参照）。
【０００４】
図１４は、クライアント・データをライン側のフレームに構成するフレームマッピング回路の従来例構成を示す。この従来例は、クライアント・データがクライアント・クロックにしたがって書き込まれるＦＩＦＯ２１と、ＦＩＦＯ２１に蓄えられたデータを読み出してライン側のフレームに変換し、ライン・クロックに同期して出力するフレーム処理回路２２と、ＦＩＦＯ２１の使用量に応じてフレーム処理回路２２におけるＪＣ処理量を制御するＪＣ処理量変換回路５１とを備える。
【０００５】
一般にクライアント・クロックとライン・クロックとは独立であり、その精度は、ＯＴＮの場合、いずれも±２０ｐｐｍと規定されている。二つのクロックが独立であるため、二つのクロック間に偏差が生じてしまい、極端な場合にはＦＩＦＯ２１がオーバーフローあるいはアンダーフローになってしまう。そこで従来は、ＪＣ処理量変換回路５１においてＦＩＦＯ２１の使用量を監視してクロック偏差量を求め、そのクロック偏差量に応じて、フレーム処理回路２２におけるＪＣ処理量を制御していた。すなわち、ＦＩＦＯ過多でオーバーフロー寄りである場合には負ジャスティフィケーション処理（フレームに収容するクライアント・データ量を増やす）し、ＦＩＦＯ過少でアンダーフロー寄りである場合には正ジャスティフィケーション処理（フレームに収容するクライアント・データ量を減らす）を行う。
【特許文献１】特開２００１−１７７４９１
【特許文献２】特開平９−２９８５２０
【特許文献３】特開２００３−１９４９７３
【発明の開示】
【発明が解決しようとする課題】
【０００６】
高速な光伝送システムにおいては、ＪＣ処理のために、高精度かつ高速にクロック偏差を検出することが重要となる。
【０００７】
しかし、例えばＯＴＵｋフレームにはＯＨ（オーバーヘッド）領域とＦＥＣ（Forward
Error Correction）領域があるため、クロック偏差がなくてもマッピング使用量が変動し、この変動するＦＩＦＯ使用量のみでＪＣ判定を行うと、過挿抜によりＦＩＦＯ使用量が再変化するという悪循環を繰り返す問題があった。特にＯＤＵ多重時には、階層毎の異なるフレーム周期によりＦＩＦＯ使用量が複雑に変化するため、ＦＩＦＯ使用量からクロック偏差を検出することが非常に困難となる。
【０００８】
高精度にクロック偏差量を求めるために、ＦＩＦＯの使用量を監視するのではなく、クライアント・クロックとライン・クロックとを別の高速クロックによりそれぞれカウントして直接に偏差を求めることも考えられる（特許文献３参照）。しかし、クロック偏差検出の精度を高めようとすると、高速なクロック偏差検出が困難になるという問題があった。
【０００９】
例えばクロック偏差を１ｐｐｍ単位で検出する場合、検出まで１，０００，０００カウント期間必要になり、カウンタクロック周波数が１００ＭＨｚの場合、１０ｍｓの判定遅延が生じることになる。さらに言えば、高安定クロックでも１０ｐｐｍ程度のクロック偏差は生じることから、それぞれクロック偏差±１０ｐｐｍのクロック２本の間に生じるクロック偏差を±２０ｐｐｍとし、伝送速度を１０Ｇｂｐｓとすると、前述の１０ｍｓの判定遅延の間に、最大±２ｋｂｉｔ分の伝送差が生じてしまう。このような従来技術でスタッフ処理を行うためには、それ以上のデータバッファが必要になり、データバッファ容量の増加は、回路規模や消費電力の増加につながる。この傾向は、伝送速度が上がるほど、または要求クロック偏差検出精度が上がるほど強くなる。
【００１０】
本発明は、このような課題を解決し、小さな回路規模でクロック偏差を高精度かつ高速に検出することのできるクロック偏差検出方法および装置を提供し、さらに、そのようなクロック偏差検出装置を用いたフレームマッピング回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第一の観点は第一のクロックと第二のクロックとの間のクロック偏差を検出するクロック偏差検出方法であり、前記第一のクロックの一定周期ごとに前記第二のクロックの計数値を求め、その計数値と基準値とを比較してその結果を保持し、複数回の比較結果からクロック偏差を判定することを特徴とする。
【００１２】
前記第二のクロックの周波数Ｆ２は前記第一のクロックの周波数Ｆ１のＭ／Ｎ倍、ただしＭ、Ｎは自然数、であり、前記一定周期における前記第一のクロックのクロック数がＴ１であるとき、前記基準値として、クロック偏差がない場合の理想値Ｔ１×Ｍ／Ｎを用いる。
【００１３】
前記基準値として、小数点以下の値を含む値を用いることができる。
【００１４】
比較結果として、１回の比較ごとに、計数値が前記基準値より小さいことを表す第一の値と、計数値が前記基準値より大きいことを表す第二の値とのいずれか一方を保持することができる。この場合、複数回の比較結果から、前記第一の値または前記第二の値の個数によりクロック偏差を判定する。
【００１５】
本発明の第二の観点は上述の方法を実施するクロック偏差検出装置であり、第一のクロックを計数して所定の計数値ごとに分周出力を発生する第一のカウンタと、この第一のカウンタのひとつの分周出力と次の分周出力との間に前記第一のクロックと異なる第二のクロックを計数する第二のカウンタと、この第二のカウンタの計数値から前記第一のクロックと前記第二のクロックとの間のクロック偏差を検出する手段とを備えた構成において、前記検出する手段は、前記第二のカウンタの計数値と基準値とを比較する手段と、この比較する手段の比較結果を複数回にわたり保存する保存手段と、保存された複数回にわたる比較結果からクロック偏差を判定する手段とを含むことを特徴とする。
【００１６】
前記第二のクロックの周波数Ｆ２は前記第一のクロックの周波数Ｆ１のＭ／Ｎ倍、ただしＭ、Ｎは自然数、であり、前記第一のカウンタの分周周期に相当する前記第一のクロックのクロック数がＴ１であるとき、前記基準値として、クロック偏差がない場合の理想値Ｔ１×Ｍ／Ｎを用いる。
【００１７】
前記基準値として、小数点以下の値を含む値を用いることができる。
【００１８】
前記比較する手段は、計数値が前記基準値より小さいことを表す第一の値と、計数値が前記基準値より大きいことを表す第二の値とのいずれか一方を出力する構成とすることができる。この場合、前記判定手段は、前記第一の値または前記第二の値の個数によりクロック偏差を判定する。
【００１９】
前記第一のカウンタの分周周期に相当する前記第一のクロックのクロック数Ｔ１が非整数であるとき、前記第一のカウンタとして、個々の分周周期ではＴ１の前後の整数値のクロックを計数するごとに分周出力を発生し、かつ平均的にはＴ１の周期で分周出力を発生する非整数分周カウンタを用いることもできる。クロック偏差を判定する周期に相当する前記第一のクロックのクロック数Ｔ３と、前記保存手段が保存する比較結果の数Ｌとが、Ｔ３＝ａ×Ｌ＋ｂ、ただしａ、ｂは自然数、で表される場合には、ロードされた計数値を計数するごとに分周信号を出力する計数手段と、ｂを初期値とし、自分の蓄積している値に前記計数手段が分周信号を出力するごとにｂを加算してＬを越えた分の値を蓄積する加算器と、前記計数手段が分周信号を出力するごとに、前記加算器の加算結果がＬを越えないときにはａを、Ｌを越えたときにはａ＋１を前記計数手段にロードする手段とを備えた非整数分周カウンタを用いることができる。
【００２０】
本発明の第三の観点はフレームマッピング回路であり、クライアント・クロックで入力されたデータを一時的に蓄える蓄積手段と、この蓄積手段に蓄えられたデータをフレーム化してライン・クロックで出力するフレーム処理手段と、前記蓄積手段に蓄積されているデータ量が過多のときにはフレームに収容するデータ量を増やし、前記蓄積手段に蓄積されているデータ量が過少のときにはフレームに収容するデータ量を減らすように前記フレーム処理手段を制御する手段とを備えた構成において、前記制御する手段は、前記クライアント・クロックと前記ライン・クロックとのクロック偏差を検出して前記フレーム処理手段におけるデータの調整量を求めるクロック偏差検出手段を含み、このクロック偏差検出手段として、上述のクロック偏差検出装置を備えたことを特徴とする。
【００２１】
異なる多重化階層に対応して前記蓄積手段および前記フレーム処理手段を多段に備え、前記制御手段は、前記クロック偏差検出手段の検出したクロック偏差に応じて前記異なる多重化階層のそれぞれのフレームに収容されるデータ量の調整を分担し、かつ、検出されるクロック偏差の誤差分をマージンとして後段の多重化階層におけるデータ量の調整分に割り当てる階層分担手段を含むこともできる。
【００２２】
上述の非整数分周カウンタは単独でも利用可能である。すなわち、本発明の第四の観点は非整数分周カウンタであり、ロードされた計数値を計数するごとに分周信号を出力する計数手段と、自然数の定数値ｂを初期値とし、自分の蓄積している値に前記計数手段が分周信号を出力するごとに前記定数値ｂを加算してあらかじめ定められた自然数の定数値ｍを越えた分の値を蓄積する加算器と、前記計数手段が分周信号を出力するごとに、前記加算器の加算結果が前記定数値ｍを越えないときには自然数の定数値ａを、ｍを越えたときにはａ＋１を前記計数手段にロードする手段とを備え、ｔ＝ａ×ｍ＋ｂで表されるクロック数の間に前記計数手段からｍ回の分周信号を出力することを特徴とする。
【００２３】
前記定数値ａおよび前記定数値ｂを可変とすることもできる。
【発明の効果】
【００２４】
本発明のクロック偏差検出方法および装置では、二つのクロックをそれぞれ計数するカウンタの規模は小さくて済み、クロック偏差の判定結果がその小さなクロックの計数周期で得られる。一方、クロック偏差の判定結果自体は複数回の計数周期にわたる比較結果に基づいており、高い精度でクロック偏差を求めることができる。複数回にわたり比較結果を保存する必要があるが、それに必要な回路規模は小さく、カウンタなどの他の部分の回路規模の削減に比べれば非常に微々たるものである。
【００２５】
本発明のクロック偏差検出装置は、フレームマッピング回路においてＪＣ処理を行うためのクロック偏差の検出に利用することができる。
【発明を実施するための最良の形態】
【００２６】
図１は本発明実施例のクロック偏差検出装置を示すブロック構成図である。このクロック偏差検出装置１０は、第一のクロックＡを計数して所定の計数値ごとに分周出力を発生する第一のカウンタ１１と、この第一のカウンタ１１のひとつの分周出力と次の分周出力との間にクロックＡと異なる第二のクロックＢを計数する第二のカウンタ１２とを備え、さらに、この第二のカウンタ１２の計数値からクロックＡとクロックＢとの間のクロック偏差を検出するため、カウンタ１２の計数値と基準値とを比較するコンパレータ１３と、このコンパレータ１３の比較結果を複数回にわたり保存するシフトレジスタ１４と、保存された複数回にわたる比較結果からクロック偏差を判定する数値変換回路１５とを備える。
【００２７】
クロックＢの周波数Ｆ２がクロックＡの周波数Ｆ１のＭ／Ｎ倍、ただしＭ、Ｎは自然数、であり、カウンタ１１がクロック数Ｔ１を計数するごとに分周出力を発生するものとする。Ｍ、Ｎの値について、一般にはＭ≠Ｎであるが、Ｍ＝Ｎであってもよい。カウンタ１１の分周出力に対してカウンタ１２の計数値Ｔ２は、クロック偏差がなければ、理想値Ｔ２ｂ＝Ｔ１×Ｍ／Ｎとなる。また、シフトレジスタ１４の段数をＬとし、Ｌ回の比較結果によりクロック偏差を判定するものとする。
【００２８】
クロック偏差は、単純には、理想値Ｔ２ｂを基準値とし、（Ｔ２−Ｔ２ｂ）／Ｔ２ｂにより求めることができる。しかし、高い精度でクロック偏差を測定するには基準値Ｔ２ｂの値を大きくとる必要があり、それに対応してＴ１の値も大きくなるため、カウンタ１１、１２が大規模になってしまう。そこで本発明では、Ｌ回の比較結果によりクロック偏差を判定する。また、理想値Ｔ２ｂの値として小数点以下の値を含むことを許容し、計数値Ｔ２と理想値Ｔ２ｂとの比較時には、その大小関係だけを判定する。
【００２９】
ここで、−ａ１〜＋ａ２［ｐｐｍ］の範囲内のクロック偏差を１ｐｐｍ単位で検出する場合を例に説明する。この場合、シフトレジスタ１４の段数Ｌはａ１＋ａ２以上の整数値とする。回路規模を小さくするためには、できるだけ小さい値の方が望ましい。カウンタ１１の計数するクロック数Ｔ１は、Ｔ１×Ｍ／Ｎ×Ｌ（＝Ｔ２ｂ×Ｌ）が１，０００，０００に近い値となるようにする。また、クロック数Ｔ１として、基準値Ｔ２ｂ＝Ｔ１×Ｍ／Ｎが非整数値となり、Ｔ２ｂ×（１−ａ１×１０-6）からＴ２ｂ×（１＋ａ２×１０-6）のまでの値の整数部が全て同一であって−ａ１〜＋ａ２［ｐｐｍ］の範囲内のクロック偏差に対するカウンタ１２の計数値の変動が「１」となるような値が選択される。
【００３０】
図２はカウンタ１１、１２の計数値と比較判定結果ならびにクロック偏差の関係を示す。
【００３１】
クロック数Ｔ１を計数するごとに、カウンタ１２の計数値Ｔ２がコンパレータ１３に入力される。コンパレータ１３は、計数値Ｔ２が理想値Ｔ２ｂより大きい場合には「１」、小さい場合には「０」を出力する。なお、理想値Ｔ２ｂの整数部をＴ２．ｉｎｔと表すと、クロック偏差が−ａ１〜＋ａ２の範囲内であるため、カウンタ１２の計数値は必ず、Ｔ２．ｉｎｔかＴ２．ｉｎｔ＋１となる。この１ビットの判定結果をシフトレジスタ１４で最高Ｌ回にわたり保持することで、クロック偏差なしでは「１」の数が（Ｔ１×Ｍ／Ｎ×Ｌ−Ｔ２．ｉｎｔ×Ｌ）となり、その値から１つ「１」の数が多く、または少なくなるごとに、＋１ｐｐｍまたは−１ｐｐｍ）だけクロック偏差が生じていることになる。
【００３２】
クロック偏差の判定はＬ回の比較結果により行われるが、クロック数Ｔ１ごとに判定結果が得られるので、判定遅延は小さい。このため、スタッフ処理に利用する場合、滑らかな処理が可能となる。さらに、高応答性によるデータバッファの削減効果も得られる。なお、従来技術に比較してシフトレジスタ１４が必要となるが、カウンタ１１、１２を小さくでき、それに応じてコンパレータも簡略化ができるので、その削減効果の方が高い。
【００３３】
具体的な例として、クロックＡとクロックＢの周波数比が８：９であり、最大±２０ｐｐｍのクロック偏差を１ｐｐｍ単位で検出する場合を例に説明する。ここで、シフトレジスタ１４の段数Ｌ＝４２、カウンタ１１の計数するクロック数Ｔ１＝２１１６４と設定すると、Ｔ２ｂ＝Ｔ１×９／８＝２３８０９．５となり、Ｔ２ｂ×（１−２０ｐｐｍ）＝２３８０９．０２．．、Ｔ２ｂ×（１＋２０ｐｐｍ）＝２３８０９．９７．．であるため、カウンタ１２の計数値は２３８０９か２３８１０のどちらかである。そして、コンパレータ１３により、カウンタ１２の計数値が２３８０９の時を論理「０」、２３８１０の時を論理「１」とすると、Ｔ２ｂ×Ｌ−２３８０９×Ｌ＝９９９９９９−９９９９７８＝２１であり、論理「１」が２１個ある場合にクロック偏差が０ｐｐｍ、論理「１」が１個多く、または少なくなるごとに、クロック偏差の値が＋１ｐｐｍまたは−１ｐｐｍずつずれる。
【００３４】
また、クロックＡとクロックＢの周波数比が２３７：２５５の場合に、Ｌ＝７９、Ｔ１＝１１７６５と設定すると、Ｔ２ｂ＝Ｔ１×２５５／２３７＝１２６５８．５４４．．となり、Ｔ２ｂ×（１−２０ｐｐｍ）＝１２６５８．２９．．およびＴ２ｂ×（１＋２０ｐｐｍ）＝１２６５８．７９．．であるため、カウンタ１２の計数値は、１２６５８か１２６５９のどちらかである。そして、コンパレータ１３により、カウンタ１２の計数値が１２６５８の時を論理「０」、１２６５９の時を論理「１」とすると、Ｔ２ｂ×Ｌ−１２６５８×Ｌ＝１０００２５−９９９９８２＝４３であり、論理「１」が４３個ある場合にクロック偏差が０ｐｐｍ、論理「１」が１個多く、または少なくなるごとに、クロック偏差の値が＋１ｐｐｍまたは−１ｐｐｍずつずれる。
【００３５】
以上の説明ではＴ１を整数としたが、非整数であってもよい。Ｔ１が非整数の場合には、カウンタ１として、個々の分周周期ではＴ１の前後の整数値のクロックを計数するごとに分周出力を発生し、かつ平均的にはＴ１の周期で分周出力を発生する非整数分周カウンタを用いることがよい。
【００３６】
また、以上の説明においてＴ１×Ｍ／Ｎ×Ｌを１，０００，０００に近い値としたのは、その逆数が１ｐｐｍに相当するからである。他の精度でクロック偏差を検出するのであれば、それに対応する値を用いる。また、若干の検出誤差が生じるが、Ｔ１×Ｍ／Ｎ×Ｌを非整数とすることも可能である。
【００３７】
Ｔ２ｂ＝Ｔ１×Ｍ／Ｎについては、クロック偏差を考慮すると整数部が変化するような値でもよい。この場合、クロック偏差の検出範囲内でカウンタ１２の計数値の変動が２以上となるが、コンパレータ１３の出力値を３値以上とすることで対応できる。
【００３８】
Ｔ１が非整数、Ｔ１×Ｍ／Ｎ×Ｌも非整数、カウンタ１２の計数値の変動が２以上となる例として、Ｔ１＝２１４２９．５、Ｍ／Ｎ＝７／６、Ｌ＝８０の場合を説明する。この場合、Ｔ１×Ｍ／Ｎ×Ｌ＝２，０００，０８６．６６６．．となり、０．５ｐｐｍ単位のクロック偏差を検出することができる。また、Ｔ２ｂ＝２５００１．０８．．となり、Ｔ２ｂ×（１−２０ｐｐｍ）＝２５０００．５８．．、Ｔ２ｂ×（１＋２０ｐｐｍ）＝２５００１．５８．．であるため、カウンタ１２の計数値は２５０００、２５００１あるいは２５００２のいずれかとなる。コンパレータ１３は、カウンタ１２のそれぞれの計数値に対して「−１」、「０」、「１」を出力する。そして、Ｔ１×Ｍ／Ｎ×Ｌ−Ｔ２．ｉｎｔ（２５０００）×Ｌ＝６．６６６．．であるから、コンパレータ１３の出力値の８０個の合計が７であればクロック偏差が０ｐｐｍ、そこから１増減するごとに±０．５ｐｐｍずつ変化する。
【００３９】
この例ではＴ１×Ｍ／Ｎ×Ｌが非整数であるため、１回の検出で７−６．６６６．．＝０．３３３．．、すなわち０．５ｐｐｍの測定精度に対して約０．１６７ｐｐｍの誤差が発生する。これを回避するには、例えば０ｐｐｍとなるコンパレータ出力値の基準値を６、７、７、６、７、７、．．と変化させるなど、誤差を補償する手段を別途設ける。
【００４０】
以上の例では、結果が理解しやすくなるような数値を用いたが、これらの数値は実際に適用するシステムに応じて適宜選択することができる。
【００４１】
図３はＴ１を非整数とする場合に用いられる非整数分周カウンタの構成例を示す。この非整数分周カウンタは、ロードされた計数値を計数するごとに分周信号を出力するデクリメントカウンタ１１５と、ｔ＝ａ×ｍ＋ｂ、ただしｔ、ａ、ｍ、ｂはすべて自然数、で表される値ｂを初期値とし、自分の蓄積している値に前記計数手段が分周信号を出力するごとにｂを加算してｍを越えた分の値を蓄積する加算器１１３と、デクリメントカウンタ１１５が分周信号を出力するごとに、加算器１１３の加算結果がｍを越えないときにはａを、ｍを越えたときにはａ＋１をデクリメントカウンタにロードする補正回路１１４とを備え、さらに、ａ、ｂの値をそれぞれ可変に設定するためのセレクタ１１１、１１２を備える。
【００４２】
図４はこの非整数分周カウンタの動作を説明する図であり、ｔ＝３，６０８，８０５、ｍ＝２５６の場合を例を示す。
【００４３】
ｔ＝３，６０８，８０５、ｍ＝２５６の場合、ａ＝１４，０９６、ｂ＝２２９であり、これらの値をそれぞれセレクタ１１２、１１１を介して１１４、１１３に入力する。加算器１１３は８ビット加算器であり、デクリメントカウンタ１１５のカウント値が零になるごとにｂ＝２２９を加算し、桁上がりがあるとそれを補正回路１１４に通知する。補正回路１１４は、デクリメントカウンタ１１５のカウント値が零になるごとに、加算器１１３の桁上がりがない場合にはａ＝１４，０９６を、桁上がりがあった場合にはａ＋１＝１４，０９７をデクリメントカウンタ１１５にロードする。これによりデクリメントカウンタ１１５は、１４，０９６または１４，０９７のカウントを繰り返すことになるが、２５６回のカウントの合計は、必ず３，６０８，８０５となる。
【００４４】
この非整数分周カウンタは、デクリメントカウンタ１１５の１回毎の誤差は生じるが、正確な分周数を２５６回分のデクリメントカウンタ１１５による分周数に限定することで、回路規模の削減が可能となる。また、セレクタ１１１、１１２を設けることにより、容易に複数種類の分周にも対応可能となる。
【００４５】
このような非整数分周カウンタを上述のカウンタ１１として用いる場合、クロック偏差を判定する周期に相当するクロックＡのクロック数をＴ３＝Ｔ１×Ｌとすると、ｔ＝Ｔ３、ｍ＝Ｌとすることで、個々の分周周期では非整数Ｔ１の前後の整数値のクロックを計数するごとに分周出力を発生し、かつ平均的にはＴ１の周期で分周出力を発生することができる。
【００４６】
以上説明したクロック偏差検出装置を利用した実施例について以下に説明する。
【実施例１】
【００４７】
図５はフレームマッピング回路の実施例を示すブロック構成図である。この回路は、クライアント・クロックで入力されたデータを一時的に蓄えるＦＩＦＯ２１と、このＦＩＦＯ２１に蓄えられたデータをフレーム化してライン・クロックで出力するフレーム処理回路２２と、ＦＩＦＯ２１に蓄積されているデータ量が過多のときにはフレームに収容するデータ量を増やし、ＦＩＦＯ２１に蓄積されているデータ量が過少のときにはフレームに収容するデータ量を減らすようにフレーム処理回路２２を制御する手段として、クライアント・クロックとライン・クロックとのクロック偏差を検出してフレーム処理回路２２におけるデータの調整量を求めるクロック偏差検出装置１０を備える。このクロック偏差検出装置１０としては、図１に示したものを用いる。
【００４８】
図６ないし図８に時間経過に伴うＦＩＦＯの使用量の変化例を示す。図６の例では使用量が極端に変化することはないが、図７の例では使用量の極端な増加が生じ、図８の例では逆に極端な減少が生じている。表１に、クロック偏差量とＯＴＵ３（Optical Transfer Unit 3）フレームを構成する場合のＪＣ処理頻度の関係の一例を示す。
【００４９】
【表１】
2008092408.tif 000003
【実施例２】
【００５０】
図９はフレームマッピング回路の別の実施例を示すブロック構成図である。
【００５１】
クロック偏差検出装置１０はクロック偏差を高精度かつ高速に検出することができるが、それでもなお、クロック偏差量が変化した場合の検出クロック偏差への反映にはタイムラグが生じてしまう。このめた、急激にクロック偏差が変化した場合には、ＦＩＦＯが破綻してしまう可能性がないとはいえない。そこで本実施例では、図５に示した構成に加え、クロック偏差検出装置１０により得られた調整量による調整にもかかわらずＦＩＦＯ２１のデータ蓄積量が極端に偏った場合に調整するデータ量を可能な最大値に切り換えるＪＣ処理量切替回路２３を備える。
【００５２】
ＪＣ処理量切替回路２３は、通常時は図５の実施例と同様に検出クロック偏差量に応じたＪＣ処理量のＪＣ制御を行い、一方でＦＩＦＯ２１使用量をモニタし、使用量が極端に偏ったときのみ例外的にＪＣ処理量を切り替える。これにより、クロック偏差変化時のＦＩＦＯ破綻を防止することができる。切り替えるＪＣ処理量は、ＦＩＦＯ使用量が極端に多すぎる場合に最大の負ジャスティフィケーション、ＦＩＦＯ使用量が極端に少な過ぎる場合に最大の正ジャスティフィケーション（ダブル正ジャスティフィケーション等）となる。
【実施例３】
【００５３】
図１０はフレームマッピング回路の別の実施例を示すブロック構成図である。
【００５４】
この実施例は、クロック偏差検出装置１０により得られた調整量をＦＩＦＯ２１に蓄積されているデータ量の過多または過少により補正する手段として加算器２４およびＪＣ判定回路２５を備えたことが図５の実施例と異なる。
【００５５】
クロック偏差検出装置１０は、クロック偏差検出周期毎に、ＪＣ処理量として［少数値×最小制御単位］を出力する。例えば＋８６であれば、２５６フレームに８６回だけ正ジャスティフィケーションを行う指示となる。ＦＩＦＯ２１から加算器２４へは、ＦＩＦＯ過多で＋１、ＦＩＦＯ過少で−１の補正値を出力する。加算器２４は、ＪＣ処理御毎に、それまでの値にクロック偏差検出装置１０の出力とＦＩＦＯ２１からの補正値とを加算する。ＪＣ判定回路は、加算器２４の加算結果が＋２５６以上であれば正、−２５６以下であれば負のジャスティフィケーションを行うようにフレーム処理回路２２に指示する。
【００５６】
すなわち、本実施例では、基本的には分周によりクロック偏差を検出し、さらに、検出誤差分をＦＩＦＯ使用量により補正することで、ＪＣ処理を行う。クロック偏差検出によるＪＣ処理量はクロック偏差検出周期ごとに更新し、端数（ＪＣ処理量の小数部）をＪＣ処理ごと（１フレームごと）に加算し、ＪＣ処理単位（整数）となるごとにポジティブまたはネガティブのジャスティフィケーションを行う。ＦＩＦＯ使用量による補正は最低限、ＪＣ処理量の小数部の丸め誤差分を解消できればよい。
【００５７】
図１１にＦＩＦＯ過多の場合のＪＣ制御例を示し、図１２にＦＩＦＯ過少の場合のＪＣ制御例を示す。
【００５８】
本実施例によれば、変動するＦＩＦＯ使用量に応じて直接ＪＣ制御を行うような過フィードバックを防ぎ、分周によるクロック偏差検出に含まれる誤差をＦＩＦＯ使用量に応じた微小補正により解消することで、周期的に安定したＪＣ制御を行うことが可能となる。また、ＪＣ処理ごとの加算処理と閾値判定により、連続したダブル正ジャスティケィケーション等を防止し、ＪＣ処理を分散させるため、ＪＣ処理のジッター成分を抑止する効果も得られる。
【実施例４】
【００５９】
図１３はフレームマッピング回路の別の実施例を示すブロック構成図である。この実施例は、異なる多重化階層に対応してＦＩＦＯ３１、３３およびフレーム処理回路３２、３４を多段に備え、クロック偏差検出装置１０の検出したクロック偏差に応じて異なる多重化階層のそれぞれのフレームに収容されるデータ量の調整を分担し、かつ、検出されるクロック偏差の誤差分をマージンとして後段の多重化階層におけるデータ量の調整分に割り当てるＪＣ処理量変換階層分担回路３０を備える。
【００６０】
ＯＴＵ多重時において異なる階層のＪＣ処理を同時に行う場合、そのクロック偏差に応じたＪＣ処理量の分担を選択する必要が生じる。例えばＯＤＴＵ２３マッピングの場合、クライアント・データ比率は次式で表されるため、同じクライアント・データ比率の実現にも複数のＪＣ処理量（α）の組み合わせが存在する。
【００６１】
【数１】
2008092408.tif 000004
もっとも単純なのは後段のＪＣ処理をメインとし、その処理範囲を超えたクロック偏差に対応できるように前段のＪＣ処理を補助的に行うことである。ＯＤＴＵ２３マッピングで１／４単位にＪＣ処理する場合の対応表を表２に示す。この分担では、前段（ＯＰＵ２）の処理が簡略化されるものの、例えばクロック偏差が＋１０１、あるいは−９６の場合のように、後段（ＯＰＵ３）に最大ＪＣ処理が割り当てられ、かつ、最終的な後段のＦＩＦＯ（前段のＪＣ処理量は後段にも影響する）に誤差の累積が生じた場合、それ以上のＪＣ処理ができないため、後段のＦＩＦＯが破綻する問題があった。
【００６２】
【表２】
2008092408.tif 000005
【００６３】
これに対して図１３の実施例では、階層毎のＪＣ処理量決定時に、後段のＪＣ処理量に誤差補正のマージンを残すことで、誤差累積時のＦＩＦＯ破綻を防ぐことを可能としている。具体的には表３のような分担となり、αOPU2＝＋１、αOPU3＝０のクライアント・データ比率が、αOPU2＝０、αOPU3＝＋１のクライアント・データ比率とほぼ等しいことを利用している。
【００６４】
【表３】
2008092408.tif 000006
【００６５】
表３の分担表で後段のＪＣ処理量への最大値（＋１）または最小値（−２）の割り当てを防止することができるが、さらに、クロック偏差＋１１８、＋１０１のときの分担を表４のように変更し、クロック偏差＋５２、＋３５、＋１９のときの分担を表５のように変更すれば、後段のＪＣ処理量ゼロの割当も防止することができる。ＪＣ処理量ゼロの点を減らすことはゼロスタッフジッターの防止に効果的である。
【００６６】
【表４】
2008092408.tif 000007
【００６７】
【表５】
2008092408.tif 000008
【産業上の利用可能性】
【００６８】
本発明はＩＴＵ−Ｔ勧告Ｇ．７０９で定義された光伝送ネットワーク（ＯＴＮ）のインタフェースでの利用に適するものであるが、互いに異なるクロックで動作するシステム間でデータを乗せ換える必要のある他の用途でも広く利用することができる。
【図面の簡単な説明】
【００６９】
【図１】本発明実施例のクロック偏差検出装置を示すブロック構成図。
【図２】二つのカウンタの計数値と比較判定結果ならびにクロック偏差の関係を示図。
【図３】非整数分周カウンタの構成例を示す図。
【図４】非整数分周カウンタの動作を説明する図。
【図５】フレームマッピング回路の実施例を示すブロック構成図（実施例１）。
【図６】時間経過に伴うＦＩＦＯの使用量の変化例を示す図。
【図７】時間経過に伴うＦＩＦＯの使用量の変化例を示す図。
【図８】時間経過に伴うＦＩＦＯの使用量の変化例を示す図。
【図９】フレームマッピング回路の別の実施例を示すブロック構成図（実施例２）。
【図１０】フレームマッピング回路の別の実施例を示すブロック構成図（実施例３）。
【図１１】ＦＩＦＯ過多の場合のＪＣ制御例を示す図。
【図１２】ＦＩＦＯ過少の場合のＪＣ制御例を示す図。
【図１３】フレームマッピング回路の別の実施例を示すブロック構成図（実施例４）。
【図１４】フレームマッピング回路の従来例構成を示すブロック図。
【符号の説明】
【００７０】
１０  クロック偏差検出装置
１１、１２  カウンタ
１３  コンパレータ
１４  シフトレジスタ
１５  数値変換回路
２１、３１、３３  ＦＩＦＯ
２２、３２、３４  フレーム処理回路
２３  ＪＣ処理量切替回路
２４  加算器
２５  ＪＣ判定回路
３０  ＪＣ処理量変換階層分担回路
５１  ＪＣ処理量変換回路
１１１、１１２  セレクタ
１１３  加算器
１１４  補正回路
１１５  デクリメントカウンタ
【図１】
2008092408.tif 000009
【図２】
2008092408.tif 000010
【図３】
2008092408.tif 000011
【図４】
2008092408.tif 000012
【図５】
2008092408.tif 000013
【図６】
2008092408.tif 000014
【図７】
2008092408.tif 000015
【図８】
2008092408.tif 000016
【図９】
2008092408.tif 000017
【図１０】
2008092408.tif 000018
【図１１】
2008092408.tif 000019
【図１２】
2008092408.tif 000020
【図１３】
2008092408.tif 000021
【図１４】
2008092408.tif 000022