(57)【特許請求の範囲】
【請求項１】
ケーブルモデムの上り伝送をスケジュールするために、ケーブルモデム終端システムからケーブルモデムのメディアアクセス制御装置によって受け取られるタイムスタンプを使用する方法であって、
少なくとも１つのタイムスタンプと、これに対応する第１のローカルクロックカウンタのカウントとを、メモリ内に格納する段階と、
前記少なくとも１つのタイムスタンプの第１のタイムスタンプを、第２のローカルクロックカウンタ内にロードする段階と、
前記少なくとも１つのタイムスタンプと前記第１と第２のローカルクロックカウンタの出力とに基づいて第１と第２の調整値を計算する段階と、
前記第１と第２の調整値によって前記第２のローカルクロックカウンタを調整する段階
とを含み、
前記計算段階を、割込み要求信号の受け取り時にマイクロプロセッサによって行い、
前記第２の調整値を計算する前記段階は、
修正タイムスタンプ増大値を計算する段階と、
第２のローカルクロックカウンタ増大値を計算する段階と、
前記修正タイムスタンプ増大値と前記第２のローカルクロックカウンタ増大値との間の差を計算する段階
とを含み、
前記第２のローカルクロックカウンタ増大値は、連続する割込み要求信号に対応する前記第２のローカルクロックカウンタのカウント間の差である、ケーブルモデムのメディアアクセス制御装置のタイミング回復方法。
【請求項２】
ケーブルモデム終端システムから周期的に受け取るタイムスタンプにケーブルモデムのメディアアクセス制御装置を同期させることによって前記ケーブルモデムの上り伝送をスケジュールする方法であって、
少なくとも１つのタイムスタンプとこれに対応する第１のローカルクロックカウンタのカウントとをメモリ内に格納する段階と、
前記少なくとも１つのタイムスタンプの第１のタイムスタンプを第２のローカルクロックカウンタ内にロードする段階と、
割込み要求信号が生成されるまで、前記格納段階を繰り返す段階と、
前記メモリの内容をマイクロプロセッサに送る段階と、
第１の調整値を計算する段階と、
修正タイムスタンプを計算する段階と、
前記第１の調整値によって前記第２のローカルクロックカウンタを調整する段階と、
修正タイムスタンプ増大値を計算する段階と、
第２のローカルクロックカウンタ増大値を計算する段階と、
第２の調整値を計算する段階と、
前記第２の調整値によって前記第２のローカルクロックカウンタを調整する段階
とを含み、
前記修正タイムスタンプ増大値は、新たな修正タイムスタンプと以前の修正タイムスタンプとの間の差であり、前記新たな修正タイムスタンプと前記以前の修正タイムスタンプは、連続する割込み要求信号による結果として生じ、
前記第２の調整値は、前記修正タイムスタンプ増大値と前記第２のローカルクロックカウンタ増大値との間の差である、ケーブルモデムのメディアアクセス制御装置のタイミング回復方法。
【請求項３】
前記マイクロプロセッサは、タイムスタンプと、これに対応する以前に前記メモリ内に格納された前記第１のローカルクロックカウンタのカウントと、前記第２のローカルクロックカウンタのカウントとに基づいて、前記第１と第２の調整値を計算する請求項２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ケーブルモデムのメディアアクセス制御装置（ＭＡＣ）のタイミング回復方法に関し、特に、ケーブルモデム終端システム（ＣＭＴＳ）から周期的に伝送される複数のタイプスタンプから広域タイミング基準（ｇｌｏｂａｌ  ｔｉｍｉｎｇ  ｒｅｆｅｒｅｎｃｅ）を回復するための方法に関する。
【０００２】
【従来の技術】
従来のモデムは、２８ｋビット／秒から約５０ｋビット／秒の範囲内の伝送速度で、比較的長い距離にわたってデータ通信装置（ＤＣＥ）とデータ端末装置（ＤＴＥ）との間でのポイント・ツー・ポイント通信を提供している。これとは対照的に、イーサネットまたはローカルエリアネットワーク（ＬＡＮ）接続は、数十メガビット／秒から数百メガビット／秒の範囲内の典型的な伝送速度で、ネットワークに取り付けられているデータ端末装置（例えば、端末装置、ＰＣ、および、ホスト）の全てが比較的短い距離（典型的には１ｋｍ未満）にわたって相互に通信することが可能であるマルチポイント通信を提供している。
【０００３】
ケーブルモデムはポイント・ツー・ポイント通信とマルチポイント通信との中間の通信を提供している。ケーブルモデムは、通常のケーブルＴＶ（ＣＡＴＶ）ネットワークによってポイント・ツー・マルチポイント通信を提供している。大半のＣＡＴＶネットワークはハイブリッド光ファイバ／同軸ネットワークであり、このネットワークでは、最初にＴＶ信号をヘッドエンドから光ファイバケーブルを通してＣＡＴＶ加入者の付近の位置に送り、さらに、この加入者の付近の位置からＣＡＴＶ加入者の家屋に達する同軸ケーブルを通してＴＶ信号を再び伝送する。ＣＡＴＶネットワークは一般的にプロバイダから加入者に対して一方向にだけ信号を伝送するが、このネットワーク内の増幅器を、プロバイダとＣＡＴＶ加入者との間の双方向通信を可能にするようにアップグレードすることが可能である。したがって、このネットワークに接続されているケーブルモデムは、ＣＡＴＶ加入者がプロバイダにデータを送信することとプロバイダからデータを受信することとを可能にする。
【０００４】
ケーブルモデムは、一般的に、３メガビット／秒から５０メガビット／秒の伝送速度を有し、１００ｋｍを越える距離にわたって動作することが可能である。図１は、典型的なケーブルモデムシステム１００を例示している。ヘッドエンド１１０がケーブルモデム終端システム（ＣＭＴＳ）１２０を含み、このケーブルモデム終端システム（ＣＭＴＳ）１２０は、全同軸ネットワークまたはハイブリッド光ファイバ／同軸（ＨＦＣ）ネットワークを介して、ケーブルモデム（ＣＭ）１３０、１４０、１５０に接続されている。一方、ケーブルモデム１３０、１４０、１５０は、例えばパーソナルコンピュータ（ＰＣ）のような利用者構内装置１６０、１７０、１８０に各々に接続されている。データはＣＭＴＳ  １２０と接続ＰＣの各々との間を流れることが可能であるが、最初にデータをＣＭＴＳ１２０に中継し終わっていなければ、データが個々のＰＣの間を流れることは不可能である。ＣＭＴＳ  １２０は、一般的には、単一のＴＶチャンネル上の約１０００の同時接続されているケーブルモデム加入者を駆動することが可能である。
【０００５】
現在までに、幾つかの競合するケーブルモデム規格が存在している。本明細書に参考に組み込まれているｔｈｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｃａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｓｙｓｔｅｍｓ−Ｄａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  ＳｅｒｖｉｃｅＩｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＭＣＮＳ−ＤＯＣＳＩＳ１．１  Ｉｎｔｅｒｉｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，ＳＰ−ＲＦＩｖ１．１−Ｉ０１−９９０３１１）は、米国における支配的なケーブルモデム規格である。ヨーロッパでは、ＥｕｒｏＤＯＣＳＩＳとＤＶＢ／ＤＡＶＩＣ（ＤＶＢ−ＲＣＣとしても知られている）が支配を競い合っている。さらに、ＩＥＥＥも、約３０メガビット／秒の上りビット伝送速度が可能なケーブルモデムのための次世代物理層の規格化の作業を進めている。
【０００６】
幾つかのケーブルモデム機器構成が加入者にとって利用可能である。加入者は、外付けケーブルモデム、内蔵ケーブルモデム、または、双方向セットトップボックスを購入することが可能である。外付けケーブルモデムは、一般的に、イーサネット接続またはユニバーサルシリアルバス（ＵＳＢ）接続のどちらかに接続される。イーサネットという選択肢は、２台以上のＰＣがケーブルモデムにアクセスすることを可能にするが、各ＰＣに内蔵イーサネットカードが装着されていることを必要とする。一方、ＵＳＢという選択肢は取り付けが容易であるが、ケーブルモデム１台当たり１台のＰＣだけにしか対応できない。内蔵ケーブルモデムは、典型的には、一般的にデスクトップＰＣだけでしか使用されない安価なＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（周辺コンポーネント相互接続）（ＰＣＩ）バス用アドオンカードである。最後に、双方向セットトップボックスは、実質的に、多くの場合には普通の旧式の電話システム（ＰＯＴＳ）を経由して、戻りチャネルを提供するケーブルモデムであり、例えば、加入者がウェブをブラウズすることとＴＶ画面から直接的に電子メールを送ることとを可能にする。
【０００７】
こうした違いにも係わらず、ケーブルモデムの全てが本質的に同一のアーキテクチャを共有する。図２は、基本的なケーブルモデムアーキテクチャを示す。このアーキテクチャは、ケーブル同調器２１０と、ダイプレクサ２１５と、復調器２２０と、メディアアクセス制御装置（ＭＡＣ）２３０と、バースト変調器２４０と、インタフェース２５０と、マイクロプロセッサ２６０と、メモリ２７０とを含む。同調器２１０はＣＡＴＶのアウトレットに直接接続され、一般的にはダイプレクサ２１５を含む。ダイプレクサ２１５は、ＣＭＴＳからＰＣへと下りに信号が伝送されることと、ＰＣからＣＭＴＳへと上り方向に信号が伝送されることとを可能にする。
【０００８】
下り方向では、ＣＡＴＶ信号が同調器２１０を経由してケーブルモデムに伝送される。同調器２１０は、ＣＡＴＶ信号をより低い周波数（例えば、約６−４４ＭＨｚ）に変換し、この中間周波数（ＩＦ）は復調器２２０に流れ込む。復調器２２０は、アナログ／ディジタル（Ａ／Ｄ）変換と、６４または２５６直交振幅変調（ＱＡＭ−６４／２５６）と、リ−ド−ソロモン誤り訂正と、ムービングピクチャーエキスパーツグループ（ＭＰＥＧ）フレーム同期化とを行う。復調器２２０の出力はＭＡＣ  ２３０に送り込まれる。ＭＡＣ  ２３０は、ハードウェアの形で、または、ハードウェアとソフトウェアの組合せの形で実現されてよく、一般的には、外部マイクロプロセッサ２６０とメモリ２７０と共に動作する。ＭＡＣ  ２３０の出力は、イーサネット、ＩＥＥＥ  １３９４、ＵＳＢ、または、ＰＣＩのようなインタフェース２５０に送られ、最終的には外部ＰＣ  ２８０によって受け取られる。下り方向のデータが連続した流れの形で受け取られ、このシステム上で稼働中の全てのケーブルモデムによって受け取られる。
【０００９】
上り方向では、データがインタフェース２５０を経由してＭＡＣ  ２３０に送り込まれる。ＭＡＣ  ２３０は、様々なケーブル損失および遅延を補償するために調整プロセス（ｒａｎｇｉｎｇ  ｐｒｏｃｅｓｓ）を行う。明確に述べると、この調整プロセスは、（１）予測されるミニスロット（タイムスロット）でＣＭＴＳにフレームが到着するようにフレーム伝送をオフセットするための時間オフセットを生じさせ、（２）伝送が所望の電力レベルでＣＭＴＳに到着するように、ＣＭが生じさせるべき伝送電力レベルに相対的変化を生じさせ、（３）より適切にＣＭＴＳをマッチングさせるように、ＣＭが生じさせるべき伝送周波数に相対的変化を生じさせる。バースト変調器２４０は、リード−ソロモン符号化と、スクランブル処理と、プリアンブル・プリペンディング（ｐｒｅａｍｂｌｅ  ｐｒｅｐｅｎｄｉｎｇ）と、直交位相変移キーイング／直交振幅変調（ＱＰＳＫ／ＱＡＭ−１６）と、ディジタル／アナログ（Ｄ／Ａ）変換とを行う。バースト変調器２４０の出力は、一般的に、同調器２１０に供給される前にケーブル損失を全て補償するために、可変出力レベルを有するドライバ（図示されていない）を通過する。その次に、データはダイプレクサ２１５を通過させられて、ＣＭＴＳ  １２０に伝送される。
【００１０】
上り方向のデータ伝送がバーストの形で生じるので、システム上の稼働中のモデムは全て、時分割多元接続（ＴＤＭＡ）プロトコルにしたがって同一周波数で伝送することが可能である。この上り方向の伝送周波数は、一般的に、５〜６５ＭＨｚ（または、５〜４２ＭＨｚ）の範囲内であり、チャネル当たりの帯域幅は一般的に、３メガビット／秒（〜４００ｋＢ／秒）のＱＰＳＫチャネルの場合に２ＭＨｚである。稼働中のモデムの各々は、反転スロットまたは競合スロットと呼ばれるタイムスロットにおいてデータのバーストを伝送する。反転スロットは、特定のケーブルモデムに割り当てられているタイムスロットを示す。競合スロットは、稼働中のケーブルモデム全てによってアクセス可能であり、一般的に、非常に短いデータ伝送のために使用される。稼働中の２つのケーブルモデムが同じ１つの競合スロットを使用して伝送する場合には、衝突が発生してデータが失われる。
【００１１】
ＴＤＭＡプロトコルにしたがって、ケーブルモデムとＣＭＴＳとの間のタイミングと同期とが、衝突とこの結果として生じるデータ損失とを防止するために上りデータ伝送にとって重要である。したがって、ＤＯＣＳＩＳ  １．１  Ｉｎｔｅｒｉｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎは、ケーブルモデムが、０．２５マイクロ秒＋１／２シンボル（すなわち、最高シンボルレートで約０．４４マイクロ秒）の範囲内で割当てミニスロットの開始点において伝送がＣＭＴＳに到着するように、正確に伝送のタイミングをとることが可能でなければならないことを要求する。ＣＭＴＳは、稼働中のケーブルモデムに調整用オフセットと広域タイミング基準とを周期的に送ることによって、この同期を容易にする。調整用オフセットは、稼働中のケーブルモデムとＣＭＴＳとの間の往復ケーブル遅延に近似する。広域タイミング基準は、タイムスタンプジッタと、稼働中のケーブルモデムとＣＭＴＳとの間の伝送遅延における不確実性とを被りやすい、３２ビットタイムスタンプの中に含まれている。
【００１２】
図３は、ＣＭＴＳから周期的に受け取られる３２ビットタイムスタンプから広域タイミング基準を回復するための、単純化した従来技術のシステム３００を示す。この従来技術のシステム３００は、ローカル３２ビットクロックカウンタ３３０と、信号処理ブロック３１０と、電圧制御発信器（ＶＣＸＯ）３２０とを使用する。ローカルクロックカウンタ３３０の出力と３２ビットタイムスタンプとが、この２つの信号を比較してタイムスタンプとローカルクロックカウンタ３３０の出力との間の差を表す電圧信号を生成する信号処理ブロック３１０に供給される。この電圧信号の大きさに応じて、ローカルクロックカウンタ３３０のカウントを、以前に受け取ったタイムスタンプから導出される広域タイミング基準と同期させるために、ＶＣＸＯ  ３２０がローカルクロックカウンタ３３０のクロック周波数を調整する。ＣＭＴＳマスタクロックの周波数とローカルクロックの周波数との間の不一致の大半は、こうして取り除かれる。
【００１３】
この従来技術のシステムは、ローカルクロックカウンタの実周波数をＣＭＴＳの実周波数に同期させるために、ローカルクロックカウンタの実周波数を連続的に調整する。したがって、ＣＭは、調整用オフセットを現在カウントに加算することによって広域タイミング基準を導出することが可能である。ローカルクロックカウンタのこの同期により、ケーブルモデムＭＡＣは割当てタイムスロット内でＣＭＴＳに向う上り伝送を正確にスケジュールすることが可能になる。この従来技術のシステムは、ＭＡＣのローカルクロックカウンタのクロック周波数をＣＭＴＳマスタクロックのクロック周波数に正確に同期させ、調整用オフセットの補助によって、ＭＡＣがその上りデータ伝送を正確にタイミングをとることを可能にする。
【００１４】
【発明が解決しようとする課題】
電圧制御発信器は正確であるが、一般的に非常に高価であり、ケーブルモデムのコストを著しく増大させる可能性がある。さらに、電圧制御発信器は、ケーブルモデムの複雑性を著しく増加させる可能性がある付属のアナログ制御回路系を必要とする。したがって、ＣＭＴＳから周期的に伝送される複数のタイムスタンプから広域タイミング基準を回復する、単純化されておりかつコスト効率のより高いシステムと方法とが、必要とされている。
【００１５】
【課題を解決するための手段】
ケーブルモデム終端システムによってタイムスタンプが周期的に全ての稼働中のケーブルモデムに送られる。概略的に述べると、本発明では、受け取られた少なくとも１つのタイムスタンプと、これに対応する第１のローカルクロックカウンタのカウントとを、メモリ内に格納する。受け取られた少なくとも１つのタイムスタンプの第１のタイムスタンプを、第２のローカルクロックカウンタ内に格納する。タイムスタンプと第１と第２のローカルクロックカウンタの出力とに基づいた複数の調整値を、割込み条件が満たされる時に、最小自乗推定アルゴリズムを使用して計算する。第２のローカルクロックカウンタを広域タイミング基準に同期させるために、第２のローカルクロックカウンタのローカルカウントを、この調整値によって周期的に調整する。
【００１６】
【発明の実施の形態】
本発明の特定の実施形態に関して本発明を図面を参照しながら説明する。
指定スロット内において指定周波数でケーブルモデムの上り伝送を正確にスケジュールするために、ＭＡＣのローカルクロックカウンタは、ＣＭＴＳマスタクロックカウンタに追従するように周期的に調整されなければならない。上述したように、図３の従来技術のシステムは、ＭＡＣのローカルクロックカウンタ３３０のクロック周波数を調整するために電圧制御発信器３２０を使用することによって、この調整を行う。ローカルクロックカウンタ３３０のクロック周波数を調整することによって、図３の従来技術のシステムは、ローカルクロックカウンタ３３０をＣＭＴＳマスタクロックカウンタ（図示していない）と同期させるために、ローカルクロックカウンタ３３０のカウントを調整することが可能である。
【００１７】
本発明は、この従来技術のシステムとは異なったアプローチを行う。ＭＡＣのローカルクロックカウンタのカウントを調整するためにこのローカルクロックカウンタのクロック周波数を調整する代わりに、本発明は、ＭＡＣのローカルクロックカウンタのクロック信号の入力周波数を調整せずに、ＭＡＣのローカルクロックカウンタのカウントを直接調整する。このアプローチは、高価な電圧制御発信器とその付属のアナログ制御回路系とを使用せずに、従来技術のシステムと同じ結果を実現する。
【００１８】
図４は、ケーブルモデムＭＡＣのローカルクロックカウンタのカウント値とＣＭＴＳから周期的に受け取るタイムスタンプとの間の関係を示す象徴的な説明図である。ケーブルモデムＭＡＣが受け取る３２ビットタイムスタンプＴ１、Ｔ２、Ｔ３、．．．、ＴＮの各々に対して、対応するローカルクロックカウンタ値ｔ１、ｔ２、ｔ３、．．．、ｔＮが存在する。直線４１０は、ローカルクロックカウンタとＣＭＴＳマスタクロックカウンタとにおいてタイムスタンプジッタもケーブル遅延もクロックドリフトも存在しない場合の、理想的なシナリオを表す。
【００１９】
タイムスタンプジッタもケーブル遅延もクロックドリフトも存在しない場合には、ＭＡＣのローカルクロックカウンタのカウントは常にＣＭＴＳマスタクロックカウンタのカウントに追従する。タイムスタンプを受け取ると、各タイムスタンプをローカルクロックカウンタの中に単にロードすることによって、ＭＡＣのローカルクロックカウンタがＣＭＴＳマスタクロックカウンタに同期される。ＭＡＣから受け取られるこれらの理想化されたタイムスタンプは、図４に「＋」記号で表されており、この記号は、１の勾配を有する直線４１０によって全て連結されている。したがって、稼働中のケーブルモデムからの上りデータ伝送は、指定された時間スロットで常に生じる。
【００２０】
しかし、より現実的な条件下では、ＭＡＣが受け取るタイムスタンプは、ジッタとクロックドリフトとケーブル遅延とによって悪影響を受ける。これらの要因は、ＭＡＣのローカルクロックカウンタをＣＭＴＳマスタクロックカウンタに正確に同期させるというタスクを非常に困難なものにする可能性がある誤りをタイムスタンプにもたらす。
【００２１】
図４のアステリスク「＊」は、ローカルクロックカウンタ値ｔ１、ｔ２、ｔ３、．．．、ｔＮの各々においてＭＡＣによってタイムスタンプが受け取られる時の、これらのタイムスタンプを示している。直線４３０は、一定の伝送遅延だけ変移した直線４１０を単に表している。直線４３０からのアステリスクの偏倚が、ジッタと、クロックドリフトと、ケーブル伝送遅延の変動とによってもたらされる誤りを表している。不正確なタイムスタンプ情報が、誤った時間スロットで上りデータ伝送をＭＡＣがスケジュールすることを引き起こし、したがって、別々のケーブルモデムからの上り伝送が互いに衝突するためにデータが失われることを引き起こす可能性がある。
【００２２】
ＣＭＴＳマスタクロックカウンタとＭＡＣのローカルクロックカウンタとが低いドリフトレートを有する（例えば、ローカルクロックカウンタが０．１／６００ミリ秒＝１．５×１０-7／秒未満のドリフトレートを有する）と仮定し、かつ、ＣＭＴＳタイムスタンプジッタノイズの周波数が、タイムスタンプがＭＡＣに伝送される周波数（ＤＯＣＳＩＳケーブルモデムの場合に通常は数十ミリ秒）よりも著しく高いと仮定すると、タイムスタンプとローカルクロックカウンタ値との間の関係は、短い時間期間内では極めて線形的である。この線形関係は、図４の直線４２０によって近似的に示されており、次式によってモデル化することが可能である。
【００２３】
【数１】
0004326140.tif 000002
【００２４】
等式（１）を次のように別の形で表現することも可能であり、
【００２５】
【数２】
0004326140.tif 000003
【００２６】
ここで、Ｔ＝ＣＭＴＳマスタクロックカウント、
ｔ＝ローカルクロックカウント、
ａ，ｂ＝この線形関係をモデル化するためのパラメータ、
ｎ＝ノイズ
である。
【００２７】
ａとｂを推定することによって、ジッタ無しのタイムスタンプＴｃを、ローカルクロックカウンタ値ｔの各々に関して推定することが可能である。同期タイムスタンプの相互間の間隔がランダムに変化し易く、かつ、物理層を経由しての伝送遅延が比較的一定不変であるので、最小自乗推定アルゴリズムを使用してａとｂの推定値が最も適切に得られる。したがって、Ｎ個のタイムスタンプが受け取られる場合には、ａとｂを計算するために、次の等式（３）と等式（４）を別々に使用することが可能である。
【００２８】
【数３】
0004326140.tif 000004
【００２９】
【数４】
0004326140.tif 000005
【００３０】
しかし、等式（３）と等式（４）を使用するａとｂの計算は、マイクロプロセッサに大きな負担を掛ける。マイクロプロセッサにおけるこの計算の負担を軽減するために、最小自乗推定アルゴリズムの導出形式を使用する。したがって、等式（１）を離散時間形式で次のように書き直し、
【００３１】
【数５】
0004326140.tif 000006
【００３２】
ここで、
【００３３】
【数６】
0004326140.tif 000007
【００３４】
であり、
ｎ（ｋ）＝ジッタノイズｎのｋ番目のサンプル、
ｚ（ｋ）＝Ｔのｋ番目のサンプル
ｈＴ（ｋ）＝［ｔ（ｋ）  １］、
ｔ（ｋ）はｔのｋ番目のサンプルである。
【００３５】
最小自乗推定アルゴリズムの導出形式を次のように表現することが可能であり、
【００３６】
【数７】
0004326140.tif 000008
【００３７】
ここで、
【００３８】
【数８】
0004326140.tif 000009
【００３９】
【数９】
0004326140.tif 000010
【００４０】
である。
特別に設計したハードウェアによって上述の最小自乗推定アルゴリズムを行うことが可能であるが、本発明による方法の一実施形態は、必要とされる数学的演算を割込みルーチンを使用してソフトウェアによって行う。この割込みルーチンに関しては、さらに詳細に後述する。
【００４１】
図５は、本発明による広域タイミング基準を回復するための一連のステップの例の象徴的な流れ図である。ステップ７１０では、ＭＡＣが受け取る３２ビットタイムスタンプＴｉの各々と、これらに対応する第１のローカルクロックカウンタのカウントｔｉとを、メモリ内に格納する。同様に、ＭＡＣが受け取る第１のタイムスタンプＴ１がステップ７２０において第２のローカルクロックカウンタにロードされる。割込み要求が送られるまで、ステップ７１０を繰り返す。
【００４２】
本発明の一実施形態では、割込み要求を１秒毎に生成する。これに対応するタイムスタンプ回復誤りは０．２マイクロ秒以内である。これは、伝送が０．２５マイクロ秒＋１／２シンボル（すなわち、最高シンボルレートで約０．４４マイクロ秒）の範囲内で割当てミニスロットの開始点でＣＭＴＳに到着するように、ケーブルモデムがその伝送をタイミングすることが可能でなければならないというＤＯＣＳＩＳの必要条件を十分に満たす。別の実施形態では、タイムスタンプを受け取る毎に、割込み要求を生成する。別の実施形態では、５００ミリ秒毎に割込み要求を生成する。好ましい実施形態では、タイムスタンプとこれに対応する第１のローカルクロックカウンタのカウントとが格納されるメモリが満杯である時に、割込み要求を生成する。
【００４３】
マイクロプロセッサの負荷の観点からは、最小自乗推定アルゴリズムの導出形式は１０，０００未満の命令しか必要としない。割込み頻度が毎秒１回である場合には、使用される処理能力は約０．０１ＭＩＰＳ（１００万命令／秒）である。例えば１００ＭＩＰＳのマイクロプロセッサを使用する場合には、割込みルーチンによって導入される負荷は無視できるほど小さい。割込み頻度が高ければ高いほど、得られる回復精度が高い。しかし、割込み頻度が高ければ高いほど、マイクロプロセッサの計算負荷が大きい。したがって、メモリサイズと、割込み頻度と、マイクロプロセッサの負荷と、回復精度との間にはトレードオフが存在する。本発明では、マイクロプロセッサに許容可能な計算負荷をもたらす最悪の場合の割込み頻度を考慮して、メモリのサイズを選択する。ステップ７３０では、ＭＡＣは割込み要求信号を外部のマイクロプロセッサに送る。その次に、マイクロプロセッサは、メモリの内容（すなわち、３２ビットタイムスタンプとこれに対応する第１のローカルクロックカウンタのカウント）を読み出す。ステップ７４０では、マイクロプロセッサはメモリの内容に対して演算を行い、上述の等式（７）から等式（９）にしたがってａとｂに関する推定値を生成する。ステップ７４０では、マイクロプロセッサは、ａとｂの推定値を次の等式（１０）と等式（１１）とに代入することによって、第１の調整値Ｃ1 と、修正タイムスタンプＴｃとを計算し、その次に、Ｃ1 をレジスタに書き込む。
【００４４】
【数１０】
0004326140.tif 000011
【００４５】
【数１１】
0004326140.tif 000012
【００４６】
ステップ７５０では、第２のローカルクロックカウンタを第１の調整値Ｃ1 によって調整する。Ｃ1 が負数である場合には、Ｃ1 個のサイクル毎に１カウントずつ第２のローカルクロックカウンタを減分する。あるいは、Ｃ1 が正数である場合には、Ｃ1 個のサイクル毎に１カウントずつ第２のローカルクロックカウンタを増分する。本発明の一実施形態では、ステップ７４０とステップ７５０とを同時に行うことが可能である。すなわち、更新された第１の調整値Ｃ1 が得られない場合には、その代わりに、以前に算出した第１の調整値を使用することが可能である。
【００４７】
ステップ７６０では、等式（１１）から計算した修正タイムスタンプを使用して、ケーブルモデムのＭＡＣが、修正タイムスタンプ増大値を計算するために、次の等式（１２）を使用する。
【００４８】
【数１２】
0004326140.tif 000013
【００４９】
修正タイムスタンプ増大値は、本質的に、連続する割込み要求からの修正タイムスタンプにおける差である。ケーブルモデムのＭＡＣは、さらに、第２のローカルクロックカウンタ増大値も計算する。
第２のローカルクロックカウンタ増大値は、連続する修正タイムスタンプに対応する第２のローカルクロックカウンタの連続するカウントにおける差である。ケーブルモデムのＭＡＣは、第２のローカルクロックカウンタ増大値を計算するために、次の等式（１３）を使用する。
【００５０】
【数１３】
0004326140.tif 000014
【００５１】
ステップ７７０では、ＭＡＣは、次の等式（１４）を使用して第２の調整値Ｃ2 を計算する。
【００５２】
【数１４】
0004326140.tif 000015
【００５３】
Ｃ2 の目的は、調整用間隔の間に第２のローカルクロックカウンタのローカルカウントに（上述の調整値Ｃ1 によって）累積されているかもしれない計算誤りを取り除くことである。ステップ７８０では、ＭＡＣは、第２の調整値Ｃ2 によって第２のローカルクロックカウンタを調整する。Ｃ2 が負数である場合には、ステップ７４０で修正タイムスタンプＴｃが生成される毎に、Ｃ2 個のカウントずつ第２のローカルクロックカウンタを減分する。あるいは、Ｃ2 が正数である場合には、ステップ７４０で修正タイムスタンプＴｃが生成される毎に、Ｃ2 個のカウントずつ第２のローカルクロックカウンタを増分する。
【００５４】
本発明の好ましい実施形態では、ケーブルモデムのＭＡＣが、第１の調整値Ｃ1 と第２の調整値Ｃ2 との両方によって別々に第２のローカルクロックカウンタを連続的に調整する。これと共に、調整用オフセットの補助によって、これらの調整値が第２のローカルクロックカウンタをＣＭＴＳマスタクロックカウントに正確に同期させる。この同期は、ＭＡＣがＣＭＴＳに対する上り伝送を指定タイムスロットにおいて一貫してかつ正確にスケジュールすることを可能にする。
【００５５】
図６は、本発明によるケーブルモデムＭＡＣ  ２３０のブロック図である。第１のＮＥＷ＿ＴＩＭＥＳＴＡＭＰ信号の立ち上がり端が、ＣＭＴＳからのタイムスタンプの到着を示す。３２ビットタイムスタンプから識別されるように、第１のローカルクロックカウンタ６１０と第２のローカルクロックカウンタ６１５とが３４ビットカウンタである。３４ビットカウンタによって実現される細分性の増大またはビット分解の向上が、本発明の精度を増大させる。したがって、第１のローカルクロックカウンタ６１０と第２のローカルクロックカウンタ６１５とが、ケーブルモデムの４０．９６ＭＨｚ水晶発振器によってクロックされる場合には、例えば、第２のローカルクロックカウンタ６１５のあらゆる後続の調整による誤りは、約０．０２５ナノ秒または０．２５カウントであるにすぎない。これとは対照的に、３２ビットローカルクロックカウンタを使用する場合の誤りは約１カウントだろう。
【００５６】
第１のＮＥＷ＿ＴＩＭＥＳＴＡＭＰ入力信号の立ち上がり端は、マルチプレクサ選択論理回路６２０を起動して出力ＳＥＬ０と出力ＳＥＬ１とにおいて論理値０を生成させる。言い換えれば、第１のＮＥＷ＿ＴＩＭＥＳＴＡＭＰ入力信号の立ち上がり端が、マルチプレクサ６２５の入力において論理００を生じさせる。（後述の）他の条件が、マルチプレクサ選択論理回路６２０がＳＥＬ０とＳＥＬ１の他の論理（すなわち、０１、１０、または、１１）を生成することを引き起こす。ＳＥＬ０とＳＥＬ１の論理結合に応じて、マルチプレクサ６２５の４つの入力ラインのどれか１つが、第２のローカルクロックカウンタ６１５に対する入力として選択される。
【００５７】
ＮＥＷ＿ＴＩＭＥＳＴＡＭＰ入力信号の立ち上がり端が第１のカウンタ６３５をリセットすると、第１のカウンタ６３５はカウントを開始し、その出力が、同期タイムスタンプの相互間の最大許容時間期間を表す固定値と比較される。ＤＯＣＳＩＳケーブルモデムの場合には、例えば、この同期タイムスタンプの相互間の最大許容時間期間は６００ミリ秒である。したがって、第１のカウンタ６３５の出力が６００ミリ秒を越えた場合には、ＭＡＣは、同期タイムスタンプが失われたことを示すためにＩＮＴ＿ＬＯＳＴ＿ＳＹＮＣ信号を生成する。他のケーブルモデム規格に関する本発明の別の具体例は、第１のカウンタ６３５の出力を、同期タイムスタンプの相互間の適切な最大許容時間と単純に比較する。
【００５８】
ＳＥＬ０とＳＥＬ１の論理結合が００である場合には、マルチプレクサ６２５は、第２のローカルクロックカウンタ６１５に対する入力として入力ライン０を選択する。入力ライン０の選択により、ＭＡＣが受け取る第１の３２ビットタイムスタンプが、第２のローカルクロックカウンタ６１５にロードされる。第１の３２ビットタイムスタンプとこれに対応する第１のローカルクロックカウンタ６１０からのカウントとがメモリ６０５内に格納される。ＭＡＣが受け取る後続のタイムスタンプとこれに対応する第１のローカルクロックカウンタ６１０からのカウントも、メモリ６０５が満杯になるまでメモリ６０５内に格納される。本明細書で説明するメモリ６０５は前述のように１６×６６  ＳＲＡＭメモリであるが、このメモリ６０５のサイズを、メモリサイズと割込み頻度とマイクロプロセッサ負荷と回復精度との間のトレードオフにしたがって、ケーブルモデムの実装段階の際に選択することが可能である。メモリ６０５が満杯になると、その内容が割込み要求信号によってマイクロプロセッサ（図示していない）に送られる。マイクロプロセッサはメモリ６０５の内容を操作し、上述の最小自乗推定アルゴリズムを使用して、第１の調整値Ｃ1 と第２の調整値Ｃ2 とを別々に計算する。その次に、マイクロプロセッサはＣ1 とＣ2 をレジスタ６３０に書き込む。その次にレジスタ６３０の内容をマルチプレクサ選択論理回路６２０に使用可能にする。
【００５９】
Ｃ1 とＣ2 の値に応じて、マルチプレクサ選択論理回路６２０は、ＳＥＬ０とＳＥＬ１の異なった論理結合を生成する。Ｃ1 が正数の場合には、マルチプレクサ選択論理回路６２０は、ＳＥＬ０とＳＥＬ１とに関して１０の論理結合を生成する。Ｃ1 が負数の場合には、マルチプレクサ選択論理回路６２０は、ＳＥＬ０とＳＥＬ１とに関して１１の論理結合を生成する。最後に、Ｃ2 がレジスタ６３０に書き込まれる時には、マルチプレクサ選択論理回路６２０はＳＥＬ０とＳＥＬ１とに関して０１の論理結合を生成する。
【００６０】
マルチプレクサ６２５のＳＥＬ０およびＳＥＬ１入力における１０の論理結合により、第２のローカルクロックカウンタ６１５に対する入力として入力ライン２が選択される。入力ライン２の選択により、ＭＡＣはＣ1 個のサイクル毎に２カウントずつ第２のローカルクロックカウンタ６１５の出力すなわちカウントを増加させる。これは、第２のローカルクロックカウンタ６１５のカウントがＬＯＣＡＬ＿ＣＬＫの立ち上がり端毎に１カウントずつ連続的に増分されているからである。したがって、第２のローカルクロックカウンタ６１５を「１」カウントずつ有効に増加させる唯一の方法は、それを２カウントずつ増加させることである。したがって、マルチプレクサ６２５上の入力ライン２の選択が、ＣＵＲＲＥＮＴ＿ＣＯＵＮＴ２（第２のローカルクロックカウンタ６１５の現在カウント）が、第２のローカルクロックカウンタ６１５に入力される前に「＋２」加算器６５０を経由して送り込まれることを引き起こす。したがって、第２のローカルクロックカウンタ６１５のカウントは、Ｃ1 が正数である時に「１」カウントだけ増分される。
【００６１】
これとは対照的に、マルチプレクサ６２５の入力における１１の論理結合により、第２のローカルクロックカウンタ６１５に対する入力として入力ライン３が選択される。入力ライン３の選択により、ＭＡＣはＣ1 個のサイクル毎に１カウントずつ第２のローカルクロックカウンタ６１５の出力すなわちカウントを減少させる。しかし、第１の調整値Ｃ1 が負数の時には、ＭＡＣは、第２のローカルクロックカウンタ６１５を１カウントの間保持する（すなわち、第２のローカルクロックカウンタ６１５が増分されることを防ぐ）ことによって、Ｃ1 個のサイクル毎に１カウントずつ第２のローカルクロックカウンタ６１５を有効に減少させる。したがって、入力ライン３の選択が、ＣＵＲＲＥＮＴ＿ＣＯＵＮＴ２が、再び第２のローカルクロックカウンタ６１５に入力される前に、マルチプレクサ６２５を経由して送り込まれることを引き起こす。Ｃ1 が負数である時に、第２のローカルクロックカウンタ６１５のカウントが増分されることが防止され、したがって、第２のローカルクロックカウンタ６１５は「１」カウント減分される。
【００６２】
マルチプレクサ６２５の入力における０１の論理結合により、第２のローカルクロックカウンタ６１５に対する入力として入力ライン１が選択される。入力ライン１の選択は、ＭＡＣが割込み要求信号を生成する毎に、ＭＡＣが第２の調整値Ｃ2 によって第２のローカルクロックカウンタ６１５を調整することを引き起こす。言い換えれば、ＭＡＣは、修正タイムスタンプＴｃが計算される毎に第２のローカルクロックカウンタ６１５をＣ2 ずつ調整する。したがって、ＣＵＲＲＥＮＴ＿ＣＯＵＮＴ２とＣ2 とが加算器６４５内で互いに加算され、第２のローカルクロックカウンタ６１５は、Ｃ2 が正数である時にＣ2 個のカウントだけ増加させられ、Ｃ2 が負数である時にＣ2 個のカウントだけ減少させられる。Ｃ2 は２の補数形式であることに留意されたい。
【００６３】
最後に、例えば入力ライン１に関する調整が入力ライン２および入力ライン３に関する調整と同時に起こる場合には、マルチプレクサ選択論理回路６２０は、これら全ての調整を行うことが可能であるように、これらの調整を直列化する。この直列化によって導入される誤りは全て無視してよい。
本発明の好ましい実施形態の上述の説明を、例示と説明を目的として示してきた。この開示した形態そのものに本発明を限定することは意図していない。当然のことながら、様々な改変と変形とが当業者には明らかだろう。例えば、タイミング要件はＭＣＮＳ＿ＤＯＣＳＩＳの間で様々であってよいが、本発明は、こうしたケーブルモデム全てのＭＡＣに採用されてよい。
【００６４】
意図する個々の用途に適した様々な実施形態と様々な変型とに関して本発明を当業者が理解することを可能にするように、本発明の原理とその実際の応用例を最も適切に説明するために上述の実施形態を選択し説明した。本発明の範囲は後述の特許請求項とその等価物とによって定義されるということが意図されている。
（付記１）  ケーブルモデムの上り伝送をスケジュールするために、ケーブルモデム終端システムからケーブルモデムのメディアアクセス制御装置によって受け取られるタイムスタンプを使用する方法であって、
少なくとも１つのタイムスタンプと、これに対応する第１のローカルクロックカウンタのカウントとを、メモリ内に格納する段階と、
前記少なくとも１つのタイムスタンプの第１のタイムスタンプを、第２のローカルクロックカウンタ内にロードする段階と、
前記少なくとも１つのタイムスタンプと前記第１と第２のローカルクロックカウンタの出力とに基づいて第１と第２の調整値を計算する段階と、
前記第１と第２の調整値によって前記第２のローカルクロックカウンタを調整する段階
とを含むケーブルモデムのメディアアクセス制御装置のタイミング回復方法。
（付記２）  前記計算段階を、割込み要求信号の受け取り時にマイクロプロセッサによって行う付記１に記載の方法。
（付記３）  前記マイクロプロセッサは、タイムスタンプと、これに対応する以前に前記メモリ内に格納された前記第１のローカルクロックカウンタのカウントと、前記第２のローカルクロックカウンタのカウントとに基づいて、前記第１と第２の調整値を計算する付記２に記載の方法。
（付記４）  前記メモリが満杯である時に前記割込み要求信号を生成する付記２に記載の方法。
（付記５）  前記第１の調整値を最小自乗推定アルゴリズムを使用して計算する付記２に記載の方法。
（付記６）  前記第２の調整値を計算する前記段階は、
修正タイムスタンプ増大値を計算する段階と、
第２のローカルクロックカウンタ増大値を計算する段階と、
前記修正タイムスタンプ増大値と前記第２のローカルクロックカウンタ増大値との間の差を計算する段階
とを含む付記２に記載の方法。
（付記７）  前記修正タイムスタンプ増大値は新たな修正タイムスタンプと以前の修正タイムスタンプとの間の差であり、前記新たな修正タイムスタンプと前記以前の修正タイムスタンプは、連続する割込み要求信号による結果として生じる付記６に記載の方法。
（付記８）  前記第２のローカルクロックカウンタ増大値は、連続する割込み要求信号に対応する前記第２のローカルクロックカウンタのカウント間の差である付記６に記載の方法。
（付記９）  前記第２のローカルクロックカウンタを調整する前記段階は、前記第１の調整値に実質的に等しいサイクル数毎に前記第２のローカルクロックカウンタを調整する段階を含む付記１に記載の方法。
（付記１０）  前記第２のローカルクロックカウンタを調整する前記段階は、さらに、前記第２の調整値を含むレジスタがリロードされる毎に前記第２のローカルクロックカウンタを調整する段階を含む付記９に記載の方法。
（付記１１）  前記第１の調整値が負数である場合に、前記第２のローカルクロックカウンタを１カウントだけ減分する付記９に記載の方法。
（付記１２）  前記第１の調整値が正数である場合に、前記第２のローカルクロックカウンタを１カウントだけ増分する付記９に記載の方法。
（付記１３）  前記第２の調整値が負数である場合に、前記第２のローカルクロックカウンタを、前記第２の調整値に実質的に等しいカウント数だけ減分する付記１に記載の方法。
（付記１４）  前記第２の調整値が正数である場合に、前記第２のローカルクロックカウンタを、前記第２の調整値に実質的に等しいカウント数だけ増分する付記１に記載の方法。
（付記１５）  前記第１のローカルクロックカウンタと前記第２のローカルクロックカウンタとが、前記メディアアクセス制御装置によって受け取られる前記タイムスタンプよりも高いビット分解を有する付記１に記載の方法。
（付記１６）  前記第１のローカルクロックカウンタと前記第２のローカルクロックカウンタとが３４ビットカウンタである付記１５に記載の方法。
（付記１７）  ケーブルモデム終端システムから周期的に受け取るタイムスタンプにケーブルモデムのメディアアクセス制御装置を同期させることによって前記ケーブルモデムの上り伝送をスケジュールする方法であって、
少なくとも１つのタイムスタンプとこれに対応する第１のローカルクロックカウンタのカウントとをメモリ内に格納する段階と、
前記少なくとも１つのタイムスタンプの第１のタイムスタンプを第２のローカルクロックカウンタ内にロードする段階と、
割込み要求信号が生成されるまで、前記格納段階を繰り返す段階と、
前記メモリの内容をマイクロプロセッサに送る段階と、
第１の調整値を計算する段階と、
修正タイムスタンプを計算する段階と、
前記第１の調整値によって前記第２のローカルクロックカウンタを調整する段階と、
修正タイムスタンプ増大値を計算する段階と、
第２のローカルクロックカウンタ増大値を計算する段階と、
第２の調整値を計算する段階と、
前記第２の調整値によって前記第２のローカルクロックカウンタを調整する段階
とを含むケーブルモデムのメディアアクセス制御装置のタイミング回復方法。
（付記１８）  前記メモリが満杯である時に前記割込み要求信号を生成する付記１７に記載の方法。
（付記１９）  前記修正タイムスタンプ増大値は、新たな修正タイムスタンプと以前の修正タイムスタンプとの間の差であり、前記新たな修正タイムスタンプと前記以前の修正タイムスタンプは、連続する割込み要求信号による結果として生じる付記１７に記載の方法。
（付記２０）  前記第２のローカルクロックカウンタ増大値は、連続する割込み要求信号に対応する前記第２のローカルクロックカウンタのカウント間の差である付記１７に記載の方法。
（付記２１）  前記第１の調整値を最小自乗推定アルゴリズムを使用して計算する付記１７に記載の方法。
（付記２２）  前記第２の調整値は、前記修正タイムスタンプ増大値と前記第２のローカルクロックカウンタ増大値との間の差である付記２１に記載の方法。
（付記２３）  前記第１の調整値が負数である場合に、前記第２のローカルクロックカウンタを、前記第１の調整値に実質的に等しいサイクル数毎に１カウントずつ減分する付記２２に記載の方法。
（付記２４）  前記第２の調整値が負数である場合に、前記第２のローカルクロックカウンタを、前記第２の調整値に実質的に等しいカウント数だけ減分する付記２３に記載の方法。
（付記２５）  前記第１の調整値が正数である場合に、前記第２のローカルクロックカウンタを、前記第１の調整値に実質的に等しいサイクル数毎に１カウントずつ増分する付記２１に記載の方法。
（付記２６）  前記第２の調整値が正数である場合に、前記第２のローカルクロックカウンタを、前記第２の調整値に実質的に等しいカウント数だけ増分する付記２５に記載の方法。
（付記２７）  前記マイクロプロセッサは、タイムスタンプと、これに対応する以前に前記メモリ内に格納された前記第１のローカルクロックカウンタのカウントと、前記第２のローカルクロックカウンタのカウントとに基づいて、前記第１と第２の調整値を計算する付記１７に記載の方法。
【図面の簡単な説明】
【図１】従来技術のケーブルモデムシステムのブロック図である。
【図２】従来技術のケーブルモデムのブロック図である。
【図３】ＣＭＴＳによって周期的に送られる広域タイミング基準を回復するための従来技術のシステムのブロック図である。
【図４】ケーブルモデムＭＡＣのローカルクロックカウンタ値とＣＭＴＳから周期的に受け取るタイムスタンプとの間の関係を示す説明図である。
【図５】ケーブルモデムＭＡＣのローカルクロックカウンタをＣＭＴＳ広域タイミング基準に同期させるための一連のステップの例の流れ図である。
【図６】本発明の一実施形態におけるケーブルモデムＭＡＣのブロック図である。
【符号の説明】
２３０…メディアアクセス制御装置（ＭＡＣ）
６０５…メモリ
６１０…第１のローカルクロックカウンタ
６１５…第２のローカルクロックカウンタ
６２０…マルチプレクサ選択論理回路
６２５…マルチプレクサ
６３０…レジスタ
６３５…第１のカウンタ
６４０…比較器
【図１】
0004326140.tif 000016
【図２】
0004326140.tif 000017
【図３】
0004326140.tif 000018
【図４】
0004326140.tif 000019
【図５】
0004326140.tif 000020
【図６】
0004326140.tif 000021