(57)【要約】【課題】1つの根ノート゛と少なくとも1つの葉ノードを有するデータ送信ケーブルを備えた、高速データ通信用コンピュータ・ネットワークの提供。【解決手段】信号変換システム(SCS)が根ノート゛に接続され、少なくとも1つのクライアント・ステーションが葉ノードに接続される。SCSはダウンストリーム・データを第1周波数帯でケーブルに送信する送信機、クライアント・ステーションからのデータを第2周波数帯で受信する受信機からなり、ダウンストリーム・データは同期及び肯定応答信号を含む。コンピュータ・ネットワークは、第1周波数帯の同期情報を有する制御信号をSCSからダウンストリーム送信し、制御信号をクライアント・ステーションで受信し、第2周波数帯でクライアント・ステーションからSCSにアップストリーム送信し、及びアップストリーム送信のSCSによる第1周波数帯での受信に肯定応答するような方法で制御される。【選択図】図１
2004274778.tif 000002
【特許請求の範囲】
【請求項１】
第１のチャネル上で、第１の制御ステーションが加入者ステーションに接続され、前記第１の制御ステーションと前記加入者ステーションとの間で通信を行うことを可能にする方法であって、
前記第１のチャネルの加入者ステーションにおいて、前記加入者ステーションによって送信するための可変長スロットのタイミングを定義する情報を含んでいる同期信号を含むダウンストリーム・データを、前記第１の制御ステーションから受信するステップと、及び
前記加入者ステーションから前記第１の制御ステーションに、前記第１のチャネルの前記同期信号によって同期されているアップストリーム・データを送信するステップとを含む、方法。
【請求項２】
前記加入者ステーションにおいて、前記ダウンストリーム・データ内に含まれており、スロットのプログラム可能な最大数、及びスロット毎にプログラム可能なフレーム数の少なくとも一方を含む再プログラミング情報を検出し、アップストリーム・データ送信のタイミングをとるためにデフォルトとして使用するための前記再プログラミング情報を記憶するステップをさらに含む、請求項１の方法。
【請求項３】
前記同期信号を受信するステップが、
スロットのプログラム可能な最大数と、及び
スロット毎のプログラム可能なフレーム数との双方を受信することを含む、請求項１の方法。
【請求項４】
ダウンストリーム・データを受信するステップが、前記加入者ステーションにおいて、連続して送信されたフレームを受信することを含み、前記連続して送信されたフレームのうち少なくともいくつかが、アップストリーム・データ送信のためのスロットのタイミングを再定義し、
前記第１の制御ステーションが新たなスロット・タイマ情報を前記加入者ステーションに送信するまで、前記加入者ステーションが、前記第１の制御ステーションによって送信された定義済みスロット・タイマ情報を使用し続ける、請求項１の方法。
【請求項５】
アップストリーム・データを送信するステップが、前記第１のチャネルと関連した周波数と異なる周波数を有する第２のチャネルで、アップストリーム・データを送信することを含む、請求項１の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信に関するものであり、より詳細には、ケーブル上の双方向データ通信に関する。
【背景技術】
【０００２】
コンピュータ・ネットワークは、以前は学界、大規模な研究共同体、企業、及び政府機関の領分であった。時が経つにつれて、これらのネットワークは、そのドメイン内に、より多くのコンピュータ・ユーザ、及び利用を含む展開を見せてきた。更に、ネットワークは、広範囲にわたって接続されて（「相互接続されて」）、インターネットとして知られる世界的規模のコンピュータ・ネットワークを形成するようになり、新しいタイプのコンピュータ・ネットワークが利用可能になってきた。従って、コンピュータは、あるタイプのコンピュータ・ネットワークに接続される可能性が、接続されない場合よりも高くなっている。
【０００３】
こうしたコンピュータの接続が絶えず増大し続けた結果として、「オンライン」で利用可能な情報量が膨大なものになってきている。例えば1995年８月現在、インターネット上で利用可能な情報の人気のある探索ツールの１つ（Lycos,http://www.lycos.com）には、560万のウェブ・ページのインデックスが含まれている。同様に、America Online、Compuserve、及びProdigyといったオンライン・サービスは、その特定のサービスを通じて利用可能な情報量で競争している。
【０００４】
情報の配布はコンピュータ・ネットワークの重要な用途であるが、コンピュータの接続性が他の多くの貴重なサービスを提供する。その一例は電子メールである。もう１つは電子商取引である。
【０００５】
こうした全ての理由から、過去においては、確かにネットワークまたはオンライン・サービスとの接続によって、競争上の優位性を得ることができたが、最近のビジネスにおいて、及び教育のためには、それが必須のものになっているとの一般認識に至っている。
【０００６】
オンライン・サービス及びインターネットのユーザの多くは、モデム及び一般的な電話回線を介してこれらのネットワークと接続している。これは、幾つかの用途には十分であるが、その他の用途では望ましくない場合もある。ユーザとユーザが接続されるコンピュータとの間に専用接続を提供することは、利点を有する。それは、ほとんどの家庭及びオフィスが既に接続されている接続回線、即ち、電話回線を利用している。ユーザに専用接続を提供することによって、ネットワークに同時にアクセスしようと試みるユーザ間における競合を解決する必要がなくなる。こうした競合は全て、複数のユーザが接続されているコンピュータにおいて解決される。（もちろん、そのコンピュータが共用回線で他のコンピュータに接続されている場合は、これらのコンピュータ間における競合を解決しなければならない）。
【０００７】
しかし、電話回線は、決してコンピュータを接続する理想的な手段ではない。第１に、明らかな欠点として、家庭で使用するコンピュータの環境において、家庭に設けられている電話回線は１本だけしかない可能性がある。従って、拡張的なオンライン使用が、他の用途に必要になる可能性のあるその電話回線を共用することになる。また、電話回線に関する技術的な問題点もある。これらの回線は、伝送帯域幅が3.2KHzに制限される、音声通信を意図したものである。この結果、電話回線を介したデジタル通信は、ビット転送速度が比較的低くなる。一般に、パーソナル・コンピュータと電話回線を接続する最近のモデムは、28.8kbpsに制限される。
【０００８】
従って、ホーム・コンピュータとコンピュータ・ネットワークを接続するための代替技術を提供することが望ましい。
【０００９】
ホーム・コンピュータ及び小規模オフィス・コンピュータとコンピュータ・ネットワークとの接続に関して帯域幅を拡大する技術のうち１つのタイプは、ISDN回線である。これらは、コンピュータ間のデジタル通信を意図した専用回線である。ISDNは、電話回線よりはるかに高い帯域幅を備えている。しかし、大部分の家庭、及び小規模オフィスにはISDNが設けられておらず、ISDNを取り付ける費用を負担するつもりのあるところはほとんどない。
【００１０】
ほとんどの家庭、及び小規模オフィスへの道を開いた技術は、ケーブルTVネットワークである。各家庭に専用回線を設ける電話ネットワークとは異なり、ケーブルTVシステムでは、近隣の全ての加入者がケーブルを共用する。しかし、電話回線に比べると、大部分のケーブルTVシステムに用いられているケーブルにおいて利用可能な帯域幅は、はるかに広い。
【００１１】
これらの理由から、既存のケーブルTVシステムを介して、ホーム／小規模オフィス・コンピュータとコンピュータ・ネットワークとの間で双方向データ通信を提供することが望ましい。
【００１２】
ある近隣地域における全てのケーブルTV加入者が、１つのケーブルを共用しているので、こうしたネットワークに接続された複数のコンピュータが、そのケーブル上で同時にデータを伝送する可能性がある。こうした同時伝送は、誤りデータを生じることになり、こうした競合問題を回避するか又は、解決するためのメカニズムがない限り、送信者のいかなるメッセージも意図した受信者によって良好に受信されることはない。
【００１３】
共用コンピュータ・ネットワークにおける競合を回避するという問題は、様々な方法で取り扱われてきた。初期アプローチの１つに、ALOHAシステムとして知られるものがある。ALOHAシステムは、ハワイ大学で開発されたものであり、当初は、主としてラジオ放送を利用した通信に用いられた。共用ケーブル上の通信も、ケーブルに接続された全ての局がそのケーブルを介して伝送される全ての信号を受信するという点で、放送システムであると言える。
【００１４】
ALOHAの基本原理は、共通チャネルを共用する全てのユーザが、任意の所定の時点でメッセージを放送できるようにすることである。送信ユーザは次に、そのチャネルで自身のメッセージを聞く。そのメッセージが受信されない（それを送ったユーザによって）場合、ユーザはそのメッセージが何らかの理由で無効にされたことを知ることになる。そのメッセージは、同時に送信された別のユーザによる別のメッセージによって無効にされた可能性が極めて高い。共通チャネルに関するこの競合を解決するため、両ユーザとも、メッセージの再送前に、ランダムな時間だけ「待機(back-off)」を行う。例えば、２人のユーザが時間ｔにメッセージを送ろうとすると、それぞれのメッセージが無効になる。ランダムな時間だけ待機することによって、第１のユーザがメッセージをt+r1で再送し、第２のユーザがメッセージをt+r2で再送する。r1とr2が異なる場合（本当にランダムに選択されるなら、通常はそうなるのが普通である）、その２回目の送信では、２つのメッセージ間に競合が生じることはないはずである。
【００１５】
ALOHAの欠点は、競合の確率が極めて高いということである。ALOHAのチャネル効率は、18％にすぎない。
【００１６】
ALOHAに対する１つ改良が、スロット化ALOHAである。スロット化ALOHAの場合、時間が指定された間隔に分割され、メッセージは、これらの間隔においてしか送信できない、即ち、メッセージは間隔の境界にまたがることはできない。スロット化ALOHAのチャネル効率は、38％である。
【００１７】
ALOHA、スロット化ALOHA、及びチャネル効率の導出に関する議論については、非特許文献１を参照されたい。
【００１８】
ケーブルTVシステムにおけるデータ通信の現在の解決策には、マサチューセッツ州AndoverのZenith CorporationのLANMCN-AT、及びLANcity CorporationのLCPがある。これらの製品は、共通の設計原理を共用している。両方とも、アップストリーム・データ、即ち、エンド・ユーザからケーブル・システムのヘッド・エンドに送信されるデータが、放送スペクトルの低帯域（ダウンストリーム・データ専用の周波数帯域の下）を介して伝送される。このアップストリーム・データは、２つの方法のうちの一方で操作される。第１の選択肢は、スペクトルの高帯域に周波数変換することであり、第２の選択肢は、データを復調することである。操作されたデータはこの後、高帯域上で再送される。ヘッド・エンド・サイトのモデムを含む全てのモデムは、低帯域上で伝送を行う。伝送されるデータは、周波数変換されるか又は、復調される。従って、全てのモデムは高帯域上で受信を行う。
【００１９】
アップストリーム・データ、及びダウンストリーム・データは、同じ帯域幅で同じデータ転送速度を有している。実際、ヘッド・エンドにおけるモデムは、システム内の他の全てのモデムと同様に取り扱われるので、アップストリーム・データとダウンストリーム・データの区別がない。
【００２０】
ケーブルTVのケーブル上でのデジタル・データ通信に関するこのタイプの解決策には幾つか問題がある。第１に、ダウンストリーム帯域の伝送特性とアップストリーム帯域の伝送特性が異なっている。アップストリーム帯域（低帯域）は、ダウンストリーム帯域に比べてはるかにノイズが多い。両帯域において同じデータ転送速度を実現するには、ダウンストリーム帯域をアップストリーム帯域に適合させることになる。従って、この方法では、ダウンストリーム帯域のデータ転送速度に関する潜在能力を十分活かすことができない。
【００２１】
第２に、ほとんどの場合、アップストリーム・データは、遠隔サーバを意図したものであって、同位エンド・ユーザを意図したものではない。従って、ダウンストリーム帯域上のデータの再送は、ダウンストリーム帯域幅を浪費することになる。
【００２２】
従って、共用ケーブルを利用し、伝送ケーブルの利用可能帯域幅を十分に活用する、効率の高い高速データ通信システムを提供することが望ましい。
【００２３】
本発明の他の利点、及び特徴については、以下の詳細な説明に関連して明らかになる。
【非特許文献１】Tanenbaum,Andrew著「Computer Network第２版」Prentice-Hall出版、121ないし124頁
【発明の開示】
【発明が解決しようとする課題】
【００２４】
本発明の目的は、１つのケーブルによって接続されたコンピュータ・ネットワーク上の高速な双方向のビデオ、オーディオ、及びデータ通信を可能にすることである。
【００２５】
本発明のもう１つの目的は、ネットワーク内のクライアント・ステーションが信号変換システムと通信できるようにする予約システムを提供することにある。
【００２６】
本発明の更にもう１つの目的は、幾つかの装置が共用メモリに対して並列アクセスを行う、高速データ通信システムを提供することにある。
【００２７】
本発明の更にもう１つの目的は、クロック・サイクル毎の１回のメモリ・アクセスの平均スループットで、共用メモリに対する並列装置アクセスを可能にすることにある。
【課題を解決するための手段】
【００２８】
以上の及びその他の目的は、根ノード及び少なくとも１つの葉ノードを備えたデータ伝送ケーブルを具備する、高速データ通信用コンピュータ・ネットワークを提供することによって実現される。根ノードには、信号変換システム(SCS)が接続され、葉ノードには、少なくとも１つのクライアント・ステーションが接続される。SCSは、第１の周波数帯域において、ダウンストリーム・データを前記ケーブル上に送出する送信器と、第２の周波数帯域において、前記クライアント・ステーションからデータを受信する受信器から構成され、前記ダウンストリーム・データは、同期信号と肯定応答信号を含む。各クライアント・ステーションは、前記第１の周波数帯域においてデータを受信する受信器と、前記第１の周波数帯域において受信した同期信号に基づいて、第２の周波数帯域においてデータを送信する送信器を備えている。
【００２９】
コンピュータ・ネットワークは、第１の周波数帯域上の同期情報を備える制御信号を、信号変換システム(SCS)からダウンストリーム送信するステップと、クライアント・ステーションにおいて前記制御信号を受信するステップと、第２の周波数帯域において、前記クライアント・ステーションから前記SCSへのアップストリーム送信を行うステップで、前記送信が前記同期情報に関してタイミングがとられている前記ステップ、及び前記SCSが前記第１の周波数帯域において、前記アップストリーム送信を良好に受信したことに肯定応答を行うステップから構成される方法に従う。
【００３０】
クライアント・ステーションの送信パケットには、後続の送信に備えた、前記第２の周波数帯域における予約スロットの要求を含むことが可能であり、SCSは、要求された予約スロットの開始時間を決定する働きをするスケジューラを備えており、要求された予約スロットに関する開始時間を送信する。予約スロットを要求したクライアント・ステーションは、その開始時間まで、その送信の続行を延期する。
【発明の効果】
【００３１】
本発明によって、１つのケーブルによって接続されたコンピュータ・ネットワーク上の高速な双方向のビデオ、オーディオ、及びデータ通信を可能にし、ネットワーク内のクライアント・ステーションが信号変換システムと通信できるようにする予約システム、及び幾つかの装置が共用メモリに対して並列アクセスを行う、高速データ通信システムを提供し、更に、クロック・サイクル毎の１回のメモリ・アクセスの平均スループットで、共用メモリに対する並列装置アクセスを実現することができる。
【発明を実施するための最良の形態】
【００３２】
図１には、本発明に従って、ヘッド・エンド103に配置された信号変換システム(SCS)101と加入者位置に配置されたクライアント・ステーション105a〜105jとの間のデータ通信を提供するために適用された、近隣のケーブルTVシステム100が示されている。各SCS101は、遠隔サーバ・ステーションに、及び遠隔サーバ・ステーションからデータ・パケットを経路付けするパケット・ルータ117に接続されている。代替接続案では、例えば101''のようなSCS101が、固定ビット転送速度サービス交換回路の回路交換装置119に対してローカル、又は遠隔インタフェイスを行う。後者は、電話ネットワークに対するデジタル化音声接続を提供するために用いることも可能である。
【００３３】
多くのケーブルTVシステムでは、約500〜2000人の加入者が、同じヘッド・エンド103につながっている。ヘッド・エンド103は、ファイバ・ノード109に接続された光ファイバ・ケーブル107a及び107bを介して様々な加入者位置105と通信を行う。ファイバ・ノード109は更に、同軸ケーブル111a及び111bを介して接続されている。ファイバ・ノード109は、光信号と電気信号との間で変換を行うためのメカニズムを含んでいる。ルータ117とSCS101との間の通信はデジタル形式である。しかし、ヘッド・エンド103と加入者位置との間の通信はアナログ形式である。
【００３４】
SCS101は、ルータ117間におけるデジタル通信信号と、ケーブルTVシステムの光ファイバ、及び同軸ケーブル上に生じるアナログ通信信号の変換を行う。
【００３５】
各クライアント・ステーション105は、コンピュータ115に接続されたケーブル・モデム113を含む。代替実施例では、コンピュータ115の代わりに、ケーブル111を介したヘッド・エンド103とのデータ通信によって恩恵を受ける他の装置が用いられる。こうした代替例は、例えば、ビデオ・オン・デマンド・タイプのサービス、及び対話型テレビといった特定のケーブルTVの働きを要求するためのセット・トップ・ボックスを含む。
【００３６】
図２は、信号変換システム(SCS)101のブロック図である。信号変換システム(SCS)101は、ファイバ・ケーブル107a及び107bに接続されている。SCS101は、送信器205を用いて、64-QAM（64ビット直交振幅変調）または256-QAM（256ビットQAM）送信フォーマットを利用したデータをファイバ・ケーブル107a上に送出する。SCS101は、複数の受信器207を用いて、ファイバ・ケーブル107b上の幾つかのチャネルのQPSKデータを受信する。送信器205及び受信器207は両方とも、SCSバス203に接続されている。
【００３７】
SCS101は、ルータ117に接続されたルータ・インタフェイス201を含む。ルータ・インタフェイス201は、ルータ117に対して、例えば、インターネット・プロトコル(IP)・パケット、又はATMセルといったデジタル・データ・パケットの受信、及び送信を行う。ルータ・インタフェイス201は、内部バス203に接続され、SCS101の他のコンポーネントに、及びコンポーネントからデータを送信する。
【００３８】
中央演算処理装置(CPU)209は、ルータ・インタフェイス201の、64-QAM、QPSK、及びデジタル・パケット・フォーマット間のデータ変換を管理する。CPU209は、バス203上のデータ・トラヒックも管理する。更に、ケーブル107a及び107b上の送信及び受信データの大部分は、拡張処理及び拡張フォーマッティングを必要とする。CPU209は、この処理とフォーマッティングの責務を果たす。CPU209の動作を制御するための手順の多くが、バス203に接続されたROM211に記憶されている。バス203には更に、処理及び再送中にデータを記憶するためのRAM213が接続されている。SCS101、及びCPU209のようなそのコンポーネントの動作を制御するための他の手順が二次記憶装置213及び215に記憶され、両方ともI/O装置217を介してバス203に接続される。
【００３９】
多くの場合、ケーブル107a及び107bを介してSCSに、及びSCSから送信されるデータは、暗号化される。CPU209は、データ暗号装置219を呼び出し、暗号化及び暗号解読タスクを実行する。好適実施例では、SCSは、暗号化にデータ暗号化標準DESを使用する。
【００４０】
図３は、ケーブル111及びパーソナル・コンピュータ(PC)115に接続されたケーブル・モデム(CM)113の高レベル概略図である。CM113は、ケーブルからのデータ信号をチューナ303で受信し、送信器305によってデータ信号をケーブル上に送出する。好適実施例では、チューナ303は、64-QAM受信器であり、送信器は、QPSK送信器である。
【００４１】
高レベルの説明において、CM113は、PC115とケーブル111の間で送信される信号のフィルタリング、これらの信号の暗号化／暗号解読（必要に応じて）、データのバッファリング、及びケーブル上の送信のための通信プロトコルとモデム−PC間の送信のための通信プロトコルとの間の変換に責務を負っている。これらの及びその他の機能（後述のような）は、様々なコンポーネント回路によって達成される。CM113の中心部は制御回路301である。制御回路301は他のコンポーネント回路に接続されており、マイクロプロセッサ302の助けを借りて、タイミング、及び様々な他のコンポーネント回路間で共用する装置を制御する。
【００４２】
CM113とPC115の間の通信は、ローカル・エリア・ネットワーク(LAN)・トランシーバ回路307によって実施される。LAN回路は制御回路301に接続される。好適実施例では、CM113とPC115の間の特定のI/Oインタフェイスは10-baseTプロトコルを使用しているが、他のモデム−PC間プロトコルも許容可能な代替案である。代替実施例では、ヒューレット・パッカード社の100baseVGプロトコルのような他のLANプロトコルを使用することが可能である。
【００４３】
PC115とケーブル111との間で送信される情報は、制御回路301に接続されたケーブル・モデム内のランダム・アクセス・メモリ309にバッファリングされる。後述するように、CM113とケーブル・システムとの間の通信は、他のクライアント・ステーション105によって送信されるメッセージと競合することになる。更に、競合は、予約システムを用いることによって回避される。競合処理、及び予約システムは、PC115に対して透過的である。従って、送信されるのを待っている間、メッセージはRAM309にバッファリングされる。更に、入力メッセージ、又は出力メッセージの追加処理が、それぞれ、ケーブル111、又はPC115への再送前に、CM113によって要求される。こうした処理は、暗号化及び暗号解読を含む。暗号化／暗号解読は、制御回路301に接続された暗号回路311によって実行される。
【００４４】
ケーブル111を介した通信は、5MHzないし750MHzの周波数範囲にわたって周波数多重化技法を用いることによって可能となる。標準TVチャネルは通常、50MHzを超える範囲で送信される。こうした各チャネルは6MHz幅である。一般に、50MHz未満の周波数は統制がとれておらず、極めてノイズが多い。好適実施例では、アップストリーム通信（CM113からSCS101への通信）は、５ないし42MHzの周波数スペクトルの2MHz幅の周波数帯域に発生し、ダウンストリーム通信（SCS101からCM113への通信）は、50MHz以上の範囲における6MHz幅の標準TVチャネルで発生し、今後はこのチャネルは、ダウンストリーム・チャネルと呼ばれる。従って、５ないし42MHz帯域は、クライアント・ステーション105からSCS101への通信チャネルが選択されうるスペクトルとして機能し、50MHzを超える帯域は、SCS101からクライアント・ステーション105への通信チャネルが選択されうるスペクトルとして機能する。
【００４５】
代替実施例は、各方向における多重通信チャネルを提供する。こうした代替案は、前述の好適実施例の自然な拡張であり、本発明の範囲内である。例示のため、本発明は、１方向につき１チャネルの実施例に関して記述している。しかし、当該技術の熟練者であれば、本発明を多重チャネル代替案に適用する方法は明らかである。
【００４６】
図４は、50MHz未満で送信される信号のグラフの例である。この例から分かるように、例えば、８ないし12MHz、15ないし20MHz、23ないし27MHz、及び31ないし37MHz間におけるように、アクティビティのほとんどない幾つかの領域が存在する。他の領域は極めてノイズが多い。信号変換システム(SCS)101は、５ないし42MHzの周波数帯域を絶えず監視し、ノイズのない2MHz幅の帯域を見つける。こうした帯域を見つけた後、信号変換システム(SCS)101は、その2MHz帯域の周波数（例えば、中央又は最初の）をクライアント・ステーション105に同報通信する。この2MHzの帯域は、クライアント・ステーション105によって、データを信号変換システム(SCS)101に送信するために用いられ、今後は、「アップストリーム・チャネル」と呼ばれる。多重チャネルの代替実施例では、信号変換システム(SCS)101が、アクティビティの低い２つ以上の2MHz幅の帯域を見つけ、こうした各帯域の周波数を同報通信する。
【００４７】
好適実施例では、ダウンストリーム通信に64-QAMが用いられる。64-QAMでは、データの記号毎に６ビットが同時に同報通信される。本発明では、これらのビットの１つが制御情報に用いられ、残りの５ビットはペイロード・データである。制御ビットは今後、「制御チャネル」と呼ばれる。
【００４８】
図５には、ダウンストリーム・チャネル及びアップストリーム・チャネル上のアクティビティが例示されている。アップストリームの場合、通信時間がスロットと呼ばれる均一な長さの間隔に分割される。各スロットは番号によって識別される。スロット番号は順次番号であり、０から最大カウント(Maximum_Count)までカウントされ、最大カウントに達すると、スロット番号は０にリセットされる。好適実施例では、最大カウントは32未満である。他の実施例では、更に大きい最大カウント値が許容される。最大カウントは、SCSによってプログラム可能である。図５に示す例の場合、時間線501によって14のスロット（０ないし13）が示されている。時間線501のスロット境界は、信号変換システム(SCS)101に関連している。ケーブルに沿ったデータの伝搬に関連する時間遅延が存在するため、様々なクライアント・ステーション105が、異なる境界でデータの通信及び受信を行う。
【００４９】
各時間スロットの長さは、固定数のダウンストリーム制御チャネル・フレームによって表される。スロット毎のフレーム数は、信号変換システム(SCS)101によってプログラム可能である。しかし、この比率（フレーム／スロット）は、リセットされるまで一定である。時間スロットには、競合中に許容される最大送信パケットをアップストリーム送信するのに必要な時間、及びSCS101に最も近いクライアント・ステーション105とSCS101から最も遠いクライアント・ステーション105との間のラウンド・トリップ伝搬遅延の差を包含するサイズが与えられている。
【００５０】
制御フレームは、信号変換システム(SCS)101と制御チャネル内の個々のクライアント・ステーション105との間の基本通信単位である。好適実施例では、制御フレームの長さは20バイトである。共通のフレーム・フォーマットが存在する。図６は、共通フレーム・フォーマットのブロック図である。各フレームは、図６に示す一般構造に従う。各フレームは、同期フラグ601から始まる。ダウンストリーム制御チャネルのフレーム内容は、同期フラグ601を使用して、フレームの先頭を表示する。好適実施例では、同期フラグの値は「0110」であるが、慣例に従って他のビット・シーケンスを採用することも可能である。
【００５１】
好適実施例では、４タイプのフレーム、即ち、肯定応答フレーム、制御フレーム、可変ビット転送速度(VBR)データ・フレーム、及び制御ビット転送速度(CBR)データ・フレームがある。タイプの識別は、タイプ・フィールド603によって行われる。次に、５ビット・フィールド605によってフレームに関するスロットIDが与えられる。スロットIDの最大値は、信号変換システム(SCS)101によってプログラム可能である。
【００５２】
スロットは、２つのクラス、即ち、競合スロットと予約スロットに分割される。競合スロットにおいて、クライアント・ステーション105の全て、又はクライアント・ステーション105の部分集合が、アップストリーム・チャネル上で送信することが可能である。予約スロットは、ある特定のクライアント・ステーション105に占有され、アップストリーム・チャネル上で情報パケットを送信できるのは、その特定のクライアント・ステーション105だけである。
【００５３】
図５に示す例では、２つのクライアント・ステーション105aと105bが、アップストリーム・チャネル上で時間を争う。ライン502は、クライアント・ステーション105aによってアップストリーム・チャネル上で行われる送信を表し、ライン504は、信号変換システム(SCS)101によるアップストリーム・チャネル上でのメッセージの受信を表し、ライン506は、信号変換システム(SCS)101によって制御チャネル上で行われる送信を表し、ライン508は、クライアント・ステーション105aと105bによる制御チャネルにおけるメッセージの受信を表し、ライン510は、クライアント・ステーション105bによってアップストリーム・チャネル上に置かれたメッセージを表している。
【００５４】
信号変換システム(SCS)101によって送出されたメッセージによって、アップストリーム送信のビートが設定される。競合スロットにおいては、全ての送信が、ある１つのスロット内において、送信パケットが完全に通信されるように実施される。しかし、予約スロットにおいては、データ・パケットは、スロット境界を越えることが可能である。クライアント・ステーション105は、制御チャネルを監視して、スロットがいつ始まり、いつ終わるかを確認する。送信遅延のため、これらのスロット境界は、信号変換システム(SCS)101からの距離に応じて、個々のクライアント・ステーション105によって異なる時間で感知されることになる。
【００５５】
図５のライン502で、クライアント・ステーション105aは、タイム・スロット０において、要求505を送出する。信号変換システム(SCS)101の遠近関係による伝搬遅延のため、クライアント・ステーション105aは、タイム・スロット０の途中でその送信を開始する。
【００５６】
下記の議論において、例示のため、データ・パケットはタイム・スロット全体を費やすものとして示される。実際には、パケットが費やすのは１タイム・スロット未満であり、タイム・スロットには、伝送遅延を許容するようなサイズが与えられている。情報パケットは、アポストロフィが付加された同じ参照番号を用いることによって、別のステーションによって送信されたパケットの受信バージョンとして表示される。例えば、クライアント・ステーションが、パケット505を送信したとして、それが受信されると、それがパケット505'として示される。
【００５７】
ライン504は、信号変換システム(SCS)101の遠近関係から見たアップストリーム・チャネルを表している。やはり、伝搬遅延のため、信号変換システム(SCS)101は、パケット505'で示すように、パケット505が送信された時間より遅い時間にそのパケットを受信する。信号変換システム(SCS)101は次に、パケット505を処理する。クライアント・ステーション105から送信されるデータ・パケットは、独立型とすることが可能で、即ちそれは、信号変換システム(SCS)101に対する完全な情報通信である。しかし、クライアント・ステーション105が、１つのパケットに納まる情報より多くの情報、即ち、１つのタイム・スロットにおいて送信可能な情報より多くの情報の送信を行いたい場合があるので、クライアント・ステーション105から送信される初期パケットは、通信の残余部分の送信をするために、将来追加するスロットを予約する要求を含むことができる。図５の例では、クライアント・ステーション105aは、全部で３つのタイム・スロットにまたがる情報の送信を行おうとしている。従って、初期パケット505は、２つの追加専用タイム・スロットの予約要求を含んでいる。
【００５８】
要求を処理する際、信号変換システム(SCS)101は、クライアント・ステーション105aに将来のタイム・スロットを２つ割り当てる。ライン506は、信号変換システム(SCS)101の遠近関係から、制御チャネルを表している。割り当てに続いて、信号変換システム(SCS)101は、制御チャネル上でクライアント・ステーション105に肯定応答メッセージ507を送信する。肯定応答メッセージは、クライアント・ステーション105に対して、メッセージを受信したことを知らせ、また、予約要求がある場合には、クライアント・ステーションが通信の残余部分を送信するのに待たなければならないタイム・スロットの数を知らせる。図５の例では、信号変換システム(SCS)105がクライアント・ステーション105aから予約要求パケット505を受信した時点で、他の予約がされておらず、従ってクライアント・ステーション105aは、パケット507'の肯定応答メッセージを受信した際に、通信の残余部分の送信を開始することができる。従って、肯定応答メッセージ・パケット507は、クライアント・ステーション105aに対して、遅延長（クライアント・ステーション105aが残余部分の送信をする前に待たなければならない時間）がゼロであることを知らせる。
【００５９】
伝搬遅延のために、クライアント・ステーション105aは、パケット505の送信をタイム・スロット０において開始したが、タイム・スロット２の途中までに、信号変換システム(SCS)101による受信が完了しなかった。全ての送信がタイム・スロットの境界で実施されるので、信号変換システム(SCS)101は、タイム・スロット３の開始まで待ってから、肯定応答パケット507の送信を開始する。ライン508は、クライアント・ステーション105aの遠近関係から制御チャネルを表している。肯定応答メッセージ・パケット507'は、そのメッセージから、その予約要求パケット505が信号変換システム(SCS)101によって受け取られ、その予約スロットが遅延なく送信されることになるということを認識する、クライアント・ステーション105aによって受信される。従って、クライアント・ステーション105aは、アップストリーム・チャネル上で（ライン502で示すように）、パケット509a及び509bにおけるその通信の残余部分を送信する。
【００６０】
図５の例では、クライアント・ステーション105bは、４つのパケットの情報を送信しようとしている。上述のように、クライアント・ステーション105bは、後続の３つのパケットに関する予約要求を含む１つのパケットを送信できる。従って、クライアント・ステーション105bは、第１の予約要求パケット511を送信する。要求メッセージ・パケット511は、３つのタイム・スロットの予約要求を含む。
【００６１】
ライン504で示すように、信号変換システム(SCS)101は、要求メッセージ511'を受信する。追加の３つの専用タイム・スロットの予約要求を処理する際、信号変換システム(SCS)は、クライアント・ステーション105bが肯定応答を受信するまでに、クライアント・ステーション105aが、その通信の残余部分に関して第１のパケット509aを送信済みであるが、まだ、第２のパケット509bに関する追加のタイム・スロットを必要としていることを認識している。従って、肯定応答メッセージ・パケット513は、クライアント・ステーション105bに対して、その予約は受け入れられたが、肯定応答パケット513'を受信した後、１つのタイム・スロット分の遅延後に、そのパケットの残余部分の送信を開始すべきであることを示す。この遅延は、タイム・スロット515として示される。その遅延の後、クライアント・ステーション105bは、アップストリーム・チャネル510上で、残余部分の３つのパケット517a、517b、及び517cを送信する。これらは信号変換システム(SCS)101によって、パケット517a'、517b'、及び517c'として受信される。
【００６２】
特に予約されていないスロットは、競合スロットである。従って、この例の場合、第１の予約スロットがスロット番号４なので、スロット０ないし３は競合スロットである。スロット４ないし８は、クライアント・ステーション105a及び105bによって予約されている。しかし、スロット９ないし13は予約されておらず、従って、競合スロットである。
【００６３】
図５の例では、競合スロットにある間に競合が生じることはない。クライアント・ステーション105aと105bの競合はタイム・スロット０以前のある時点において生じた可能性がある。各フレームはチェック・サムを含む。チェック・サムは、例えば、CCITT X.25に定義されるような、巡回冗長検査符号である。
【００６４】
競合が生じると、メッセージに誤りが生じる。従って、チェック・サム計算が失敗する。信号変換システム(SCS)101がチェック・サム計算の失敗を検出した場合は常に肯定応答メッセージを送信しない。従って、クライアント・ステーション105は肯定応答を受信しない。メッセージの送信と肯定応答の受信との間の予想遅延時間は、既知である（それは、最大伝搬遅延に処理時間を加えたものである）。従って、クライアント・ステーション105が、この予想時間内に肯定応答を受信しなければ、送信が失敗したことが分かる。競合が送信失敗の原因である可能性が高い場合、クライアント・ステーション105の競合解決メカニズムが呼び出される。
【００６５】
一実施例では、クライアント・ステーション105の競合解決メカニズムは、イーサネットの技法と同様である。競合するクライアント・ステーションのそれぞれは、ランダムな時間だけ待機を行う。それぞれのランダムな時間の終わりで、クライアント・ステーション105は再び、それぞれのメッセージを送信しようと試みる。制御回路301に接続された乱数発生器313が、待機に用いられる乱数を計算する。一実施例では、再送前に遅延させるべきタイム・スロット数の範囲は、送信を試みた回数の関数である。ｎ番目の再送試行前に遅延させるべきタイム・スロット数は、下記範囲において均一に分布した整数乱数ｒとして選択される：
０≦ｒ＜２ｋ
ここで、k=min(n,7)
最大許容回数の再送試行が失敗すると、CM113によってエラー状態が報告される。好適実施例では、最大再送試行回数は16である。
【００６６】
代替実施例では、競合の取り扱いは、所定グループのモデムからの再送だけを許可することによって実施される。連続再試行の際には、より小さい部分集合のモデムに再送が許可される。この実施例では、システム内のCM113が、２分木をなすように構成される。SCS101は、誤りを生じたメッセージの受信を検出すると、所定のCM113をオフにするメッセージを送出する。最初に、SCS101は、木の根から１レベルだけ降下して、木の最初の半分における全てのCMを順次オフにし、次に、これらのCMを再起動し、残りの半分におけるCMをオフにする。SCS101が更に競合を検出する場合には、更に１レベル降下して、そのレベルの特定の枝における全てのCMを枝毎に順次オン・オフする。SCS101は、競合をもはや検出しなくなるか、又は、２分木の葉まで降下するまで、この手順を繰り返す。
【００６７】
図７は、制御チャネル上で送信されるダウンストリーム肯定応答フレーム700のフォーマットに関するブロック図である。信号変換システム(SCS)101は、チェック・サム計算の成功によって示されるように、クライアント・ステーション105の１つからのメッセージの受信に成功すると、図７に示すように、肯定応答フレーム700を送信する。他の全てのフレームと同様、肯定応答フレーム700は、図６のフレーム600の一般フォーマットに従う。それは、上述のように、同期フィールド701、フレーム・タイプ・フィールド703（肯定応答フレーム700の場合には「00」）、スロットIDフィールド705、スロット・タイマ・フィールド707、及びチェック・サム・フィールド721を含む。これらのフィールド701、703、705、707、及び721はそれぞれ、フィールド601、603、605、607、及び611に対応する。
【００６８】
肯定応答フレーム700のタイプ依存内容609を利用して、異なるアップストリーム・チャネル上で送信するクライアント・ステーション105からのメッセージを２つまで肯定応答することができる。これらのクライアント・ステーション105のうち第１のクライアント・ステーションのモデムMACアドレスはフィールド709で与えられ、第２のクライアント・ステーション105については、異なるチャネルからのフィールド715で与えられる。
【００６９】
クライアント・ステーション105が信号変換システム(SCS)101にメッセージを送信する際、そのメッセージにメッセージIDを割り当てる。肯定応答されたこのメッセージIDは、信号変換システム(SCS)101によって、それぞれ、メッセージIDフィールド709及び717内でクライアント・ステーション105にエコー・バックされる。
【００７０】
肯定応答されたメッセージが予約要求を含む場合、クライアント・ステーション105が残余部分の送信前に待たなければならないスロット数がそれぞれ、予約遅延フィールド713及び719内で送信される。
【００７１】
好適実施例では、制御フレームのサブタイプが11存在する。別の実施例は、制御フレームの追加サブタイプを含む。これら制御フレームのサブタイプは次の通りである：
* アイドル・サブフレーム
* スロット／チャネル状況サブフレーム
* ケーブル・モデム使用禁止／使用可能化要求
* アップストリーム／ダウンストリーム・チャネル切り替え要求
* エコー要求
* パラメータ取得／設定要求
* キー交換開始要求
* 電力レベル調整応答。
【００７２】
これらのサブフレーム・タイプはそれぞれ、図６に示す一般フォーマットに従い、特定のサブフレーム・タイプに関する追加フィールドを含む。タイプ・フィールド603には、そのフレームが制御フレームであることを表す値「01」がセットされる。スロット・タイマ・フィールド607に続いて、制御フレームは、２バイト長のサブフレーム・タイプ・フィールドを含む。
【００７３】
動作時、信号変換システム(SCS)101は、制御フレームを連続的に送信する。従って、特定のタイム・スロットにある間、信号変換システム(SCS)101が送信すべきダウンストリーム情報を有していない場合、信号変換システム(SCS)101は、それでも、制御フレームを送信する。このフレームは、サブフレーム・タイプ・フィールド「00」を含む。フレームの残余部分は、擬似ランダム・シーケンスである。擬似ランダム・シーケンスは、64-QAM受信チューナ303が送信器305と同期していられるのに十分な遷移を提供するため、できるだけランダムであることが望ましい。
【００７４】
チャネル／スロット状況サブフレーム・タイプは、SCS101によって各タイム・スロットの第１のフレームとして送信される。このフレームは、各アクティブ・アップストリーム・チャネル毎に、次のタイム・スロットの占有状況、及び、現在利用可能なアップストリーム及びダウンストリーム・チャネルの情報を伝える。チャネル・スロット状況サブフレームは、下記の特定のフィールドを含んでいる（表１）。
【００７５】
【表１】
2004274778.tif 000003
【００７６】
（チャネル／スロット状況サブフレーム・タイプに関するフィールドの多くは、他のサブフレーム・タイプによって用いられている。従って、以下のサブフレーム・タイプに関する説明は、表１を参照する）。
【００７７】
ケーブル・モデム使用禁止／使用可能化要求サブフレーム・タイプは、信号変換システム(SCS)101によって特定のケーブル・モデム113のオン・オフに用いられる。このサブフレーム・タイプは、使用禁止の場合0x03、使用可能化の場合0x05である。CM使用禁止／使用可能化サブフレームは、そのフレームが送信される特定のCM113を一意に識別する、６バイトのMACモデム・アドレス・フィールドである。
【００７８】
アップストリーム・チャネル切り替え要求サブフレーム・タイプは、CM113に命じて、そのアップストリーム通信を異なるチャネルに切り替えるために、SCS101によって用いられる。上述のように、アップストリーム周波数範囲は、比較的ノイズが多い可能性がある。従って、信号変換システム(SCS)101の通常動作中に、SCS101は、それとのアップストリーム通信を異なる周波数で行うのが望ましいと感じ取る場合がある。更に、信号変換システム(SCS)101は、特定のアップストリーム・チャネルの使用率が高く、別のアップストリーム・チャネルの使用率が比較的低いことを検出する場合もあり、従って、あるCM113に、様々なアップストリーム・チャネル間における使用率のバランスをとるため、周波数を変更するよう要求する。
【００７９】
アップストリーム・チャネル切り替え要求サブフレームは、要求が送信されるモデムMACアドレスに関する６バイトのフィールドを含む。このサブフレームは、現在のアップストリーム・チャネル番号（１バイト）、記号当たりの現在のビット数（２ビット、表１参照）、現在の記号転送速度（６ビット、表１参照）、及び現在のアップストリーム・チャネルの中心周波数（２バイト、表１参照）も含む。更に、このサブフレームは、切り替えるべきアップストリーム・チャネルのチャネル番号を識別するためのフィールド（１バイト）、記号当たりの新らしいビット数（２ビット、表１参照）、新しい記号転送速度（６ビット、表１参照）、及び新しいチャネルの中心周波数（２バイト、表１参照）も含む。
【００８０】
ダウンストリーム・チャネル切り替え要求サブフレーム・タイプは、CM113に命じて、その受信器を切り替え、要求フレームにおいて指定された受信器による受信を開始させるために、信号変換システム(SCS)101によって送信される。このフレームは、モデムMACアドレスに関する６バイトのフィールド、及び切り替えるべきダウンストリームNTSCチャネル番号に関する１バイトのフィールドを含む。
【００８１】
エコー要求サブフレーム・タイプが、信号変換システム(SCS)101によって送信される。クライアント・ステーション105は、エコー要求を受信すると、アップストリーム・チャネルの１つの上で、信号変換システム(SCS)にエコー応答メッセージ（アップストリーム・チャネル・フォーマットに関するセクションにおいて後述）を送信する。エコー要求サブフレーム・タイプは、モデムMACアドレス・フィールド（６バイト）、及びテストIDフィールド（４バイト）を含む。テストIDフィールドは、信号変換システム(SCS)101によって設定される乱数を含む。
【００８２】
パラメータ取得／設定要求サブフレーム・タイプは、主としてSNMP（単一ネットワーク管理プロトコル）に用いられる。信号変換システム(SCS)101に配置されたSNMP代理エージェントが、パラメータ取得／設定要求を利用して、クライアント・ステーション105、又はクライアント・ステーション105に配置されたCM113に関する情報を取得するか又は、あるCM／クライアント・ステーション・パラメータをクリアまたは設定する。パラメータ取得及び設定要求は、サブフレーム・タイプ・フィールドに関する値が異なることによって区別される。パラメータ取得及び設定要求は、要求が送信されるケーブル・モデム113を識別するためのモデムMACアドレス・フィールド（６バイト）、及びパラメータIDフィールド（１バイト）を含む。設定要求サブフレーム・タイプは、パラメータに関する新しい値を含む、長さが７バイトまでの内容フィールドも含む。パラメータ取得／設定要求サブフレームによって検索または設定可能なパラメータの幾つかを下記に示す：
* ペイロード・チャネルCRCエラー・カウント
* ペイロード・ミス・バッファ・エラー・カウント
* ペイロード受信パケット・カウント
* 制御チャネルCRCエラー・カウント
* 制御チャネル・ミス・バッファ・カウント
* 制御チャネル受信パケット・カウント
* アップストリーム送信送再試行カウント
* アップストリーム送信パケット・カウント
* 自己テスト（実施／報告）
* 特定テストの実施／結果報告
* アップストリーム暗号化
* ファームウェア・フラグ番号n（セット／リセット／報告）
* ファームウェア・レジスタ（読み取り／書き込み／報告）。
【００８３】
DESキー交換サブフレーム・タイプは、CM113に命じて、DESキー・ハンドシェイクを開始させるために、信号変換システム(SCS)101によって用いられる。このキー交換は、Diffie-Hellmanキー交換アルゴリズムを使用している。DESキー交換要求サブフレームは、要求が送信されるケーブル・モデム113を識別するためのモデムMACアドレス・フィールド（６バイト）を含む。
【００８４】
ダウンストリーム・ペイロード・チャネル
図８は、SCS101からケーブル・モデム113に送信されるダウンストリーム・ペイロード・データ・フレーム749のブロック図である。フィールド751は、ビット列「01111110」を含む１バイト長の同期フラグである。フレームの残りは、フレーム内に他の６ビット・ストリングをなす１が存在しないことを保証するため、ゼロが挿入される。従って、CM113は、ゼロが後続する、５つの１からなるストリングに遭遇すると、SCSによってゼロのビットが挿入されたことが分かり、データ処理の前に廃棄する必要がある。
【００８５】
次は、フレームの受信者を識別するための６バイトのモデムMACアドレス・フィールド753である。マルチキャスト・パケットでは、MACアドレス・フィールド753は、加入者のケーブル・モデム113のマルチキャストMACアドレスを含む。
【００８６】
フィールド755は、CM113に対して、送信データが暗号化テキスト(1)であるか、あるいは、平文テキスト(0)であるかを示すための１ビットの暗号化フラグである。
【００８７】
２タイプのペイロード・フレームが存在する、即ち１つは、加入者データを送信するペイロード・フレームであり、もう１つはモデム制御メッセージを送信するペイロード・フレームである。フィールド757は、そのフレームが加入者データ(0)を有しているか、あるいは、モデム制御メッセージ(1)を有しているかを示すための１ビットのフラグである。
【００８８】
フィールド759は、メッセージのタイプを識別する６ビットのフィールドである。このメッセージ・タイプは、下記のものを含む：
加入者データに関して：
* イーサネット・フレーム
* ATMセル
モデム管理メッセージに関して：
* マルチキャスト・アドレス追加要求
* マルチキャスト・アドレス削除要求
* DESキー交換応答
* テスト要求。
【００８９】
フィールド760は、バイト数で埋め込みの長さを識別するための３ビットのフィールドである。暗号化のため、ペイロードは、８の倍数のバイト長である。従って、７バイトまでを利用して、メッセージの長さの埋め込みを行い、ペイロードがこの目標を達成することを保証する。暗号化を必要としないか又は、暗号化標準が、メッセージの長さが８の倍数であることを必要としない代替実施例では、埋め込みフィールド及び埋め込み長さフィールドは不要である。
【００９０】
フィールド761は、未使用ビットからなる５ビットのフィールドである。これらのビットは、メッセージ・フィールド763がバイト境界に重ならないようにするために追加される。フィールド763は、メッセージ・タイプ依存内容からなる可変長（バイト単位のインクリメント）フィールドである。イーサネットMTUに合わせるため、メッセージ内容フィールドにおけるMTUは、1514にセットされる。メッセージ内容フィールド763は、そのバイト長が８の倍数になることを保証するため、７バイトまでの埋め込みが行われる。
【００９１】
フィールド765は、イーサネット多項式巡回冗長検査技法を使用した４バイト長のCRC-32チェック・サムである。
【００９２】
好適実施例では、４タイプのモデム管理メッセージが存在する。最初の２つのモデム管理メッセージ・タイプは、マルチキャスト・アドレス追加要求と、マルチキャスト・アドレス削除要求である。マルチキャスト・アドレス追加要求は、その要求が送信されるCM113に命じて、そのCMが加入しているマルチキャスト・アドレスのリストにマルチキャスト・アドレスを追加させるものであり、マルチキャスト・アドレス削除要求は、そのCM113に命じて、CMの加入リストから指定のマルチキャスト・アドレスを削除するものである。マルチキャスト・アドレス追加要求及びマルチキャスト・アドレス削除要求の場合、内容フィールド763は、マルチキャスト・アドレスに関する６バイトのフィールドと、１バイトのハッシュ・キー・フィールドを含む。ハッシュ・キーは、マルチキャスト・アドレスのCRC-32の上位６ビットである。ハッシュ・キー・フィールドの下位６ビットは、これらの６ビットを含んでいる。ハッシュ・キーは、削除が必要なマルチキャスト・アドレスをより迅速に検索するために、CM113によって使用されうる。
【００９３】
第３のモデム管理メッセージは、CM113のキー交換の要求に対する応答メッセージである、DESキー交換応答である。この応答は、２つの数N2、及びN3を含んでいる。N2は、長さが200ないし400ビットの、Ｐを法としたＢＲ２の結果であり、N3は、キーＫによる暗号化されたN1の結果である（ここで、Ｋは、Ｐを法としてN1Ｒ２から導出される）。Ｂ及びＰは、SCS101及び全CM113にとって既知の数であり、R2は、キー交換要求を受信する毎に、SCS101が選択する乱数である。DESキー交換は、暗号化されない。
【００９４】
第４のモデム管理メッセージは、テスト要求メッセージ・タイプである。テスト要求メッセージ・タイプは、CM113への経路の状態の検証、並びに、両端における暗号化／暗号解読ロジックが正しいかを検証するため、SCS101によって開始される。CM113は、テスト応答で応答する。暗号化がオンにされる場合、テスト要求メッセージ及び対応するテスト応答は暗号化される。
【００９５】
アップストリーム・チャネル・メッセージ
アップストリーム・フレームは、クライアント・ステーション105からの加入者データ、並びにCM113からのモデム制御メッセージを送信する。アップストリーム・フレームは、１パケットでは大きすぎて通信できないパケットを送信するための、CM113からのタイム・スロット予約要求も含む。図９は、アップストリーム・チャネル・フレーム773に関する共通フォーマットのブロック図である。最初のフィールドは、「01010100」を含む１バイトの同期フラグ777が後続する、全てが１の５バイトのプリアンブル・フィールドである。フィールド775及び777は、アップストリーム・フレームの始めを表している。フレームは、フレームの全長がMinTU（アップストリーム・データ・フレームの最小サイズ）以上になることを保証するため、埋め込みフィールド779で終わる。
【００９６】
フィールド781は、CM113の６バイトのMACアドレスを含む。メッセージIDフィールドであるフィールド783は、CM113によって割り当てられたメッセージ番号を含む２ビット・フィールドである。SCS101は、メッセージの肯定応答時に、このメッセージ番号を含む。
【００９７】
フィールド785は、予約長フィールドである。このフィールドは、CM113が１つ以上のパケットの送信に必要とするタイム・スロット数をSCS101に対して知らせる６ビットのフィールドである。予約長フィールド785は、それに含まれているのが全てゼロの場合、無視される。MaxTUより大きいパケットは、予約タイム・スロットを介して送信されなければならない。好適実施例では、再帰的予約は許可されない。
【００９８】
暗号化フラグ787は、メッセージ内容が暗号化テキスト(1)であるか又は、平文テキスト(0)であるかを示すための１ビットのフラグである。フレーム・タイプ・ビット789は、メッセージ内容が加入者データ(0)であるか又は、モデム制御メッセージ(1)であるかを示すために用いられる。フレーム・タイプ・ビット789には、６ビットのメッセージ・タイプ・フィールド790が後続する。下記は、メッセージ・タイプの例である：
加入者データに関して：
* 予約要求
* イーサネット・フレーム
* ATMセル
モデム管理メッセージに関して：
* CM使用禁止応答
* CM使用可能化応答
* アップストリーム・チャネル切り替え応答
* ダウンストリーム・チャネル切り替え応答
* エコー応答
* パラメータ取得応答
* パラメータ設定応答
* マルチキャスト追加応答
* マルチキャスト削除応答
* DESキー交換要求
* DESキー交換ACK
* 電力レベル調整要求
* テスト応答。
【００９９】
ACKフラグ791は、SCS101に対して、CM113が肯定応答を必要とする(1)か又は、肯定応答を必要としない(0)かを示す。大きなパケットは予約スロットを使用して送信されるので、ACKは大きなパケットの送信には用いられない。
【０１００】
メッセージ長フィールドは、ペイロード・メッセージ・フィールド793のバイト数を示すための15ビット長のフィールドである。ペイロード・メッセージ・フィールド793は、SCS101に送信される実際のメッセージを含み、メッセージ・タイプ（フィールド790）に依存する。暗号化／暗号解読のため、メッセージには埋め込みが行われて、その長さが必ず８の倍数になるようにする。
【０１０１】
フレーム・フォーマットは、ポストアンブル・フィールド779が後続する、CRC-32チェック・サム・フィールド795で終了する。
【０１０２】
アップストリーム・モデム・メッセージ
表２は、各種メッセージ・タイプに関するペイロード・メッセージ・フィールド793の内容を示している。
【０１０３】
【表２】
2004274778.tif 000004
【０１０４】
ケーブル・モデム113
図10ないし図13は、本発明のケーブル・モデム113をより詳細に示している。図３に示すように、モデムは、チューナ303、送信器305、RAM309、暗号回路311、LANインタフェイス307、及びマイクロプロセッサ302といった幾つかの外部装置に接続された制御回路301から構成されている。制御回路301は、これらの各種外部回路間の情報の流れを制御するデータ処理回路、及びデータ経路付け回路である。
【０１０５】
チューナ及び復調器303は、ケーブル111からテレビ放送信号を受信し、QAMデータ符号化フォーマットからのＩ及びＱ信号を出力する復調器と組み合わせられた、標準的な放送チューナである。
【０１０６】
制御回路301は、幾つかの相互接続された機能装置から構成される。この装置の組は、フロントエンド・プリプロセッサ(FEP)801、フロントエンド・シリアライザ803、ダウンストリーム制御装置(DCD)805、ダウンストリーム・ペイロード装置807、アップストリーム装置(UD)809、暗号装置(CD)811、暗号チップ・インタフェイス(CCI)813、LAN-RAM装置(LTR)815、LANインタフェイス(LANI)817、RAM-LAN装置(RTL)819、送信器バックエンド(TB)821、送信器インタフェイス(TRI)823、及びチューナ・インタフェイス(TUI)824を含んでいる。CCI813、LANI817、TRI823、及びTUI824は全て、マイクロプロセッサ・インタフェイス(MI)829を介して接続されている。
【０１０７】
装置805、807、809、811、815、819、及び823は全て、バス調停及び優先順位コントローラ(BAPC)825を介してRAM309に接続されている。装置805、807、811、815、819、及び823は、２つのバス、即ち読み取りバス831と書き込みバス833を介してBAPC825に接続されている。レジスタ・ファイルである、全ポインタのマスタ(MOAP)827は、RAM309内に記憶されているデータ・ブロックに関するポインタ及びオフセットを含んでいる。
【０１０８】
ここで使用されている命名規則について言及すると、各種装置はそれぞれ、書き込まれる、又は読み取られるI/Oバッファとみなすことができる。従って、BAPC825が、ある装置にデータを送信する場合、BAPC825がその装置に「書き込む」ということになり、BAPC825がある装置からデータを送信する場合には、BAPC825がその装置から「読み取る」ということになる。
【０１０９】
BAPC825に接続された各装置は、一般的な接続技法に従ってBAPC825と接続されている。図14は、装置をBAPC825に接続するためのこの一般的な接続技法のブロック図である。装置901は、装置805、807、809、811、815、819、又は823のうちの１つである。従って、以下の議論において、「装置901」は、装置805、807、809、811、815、819、又は823の任意の１つを表している。種々の装置901は、RAMに対する接続に関して実際には異なる要求を有している。例えば、BAPC825は、アップストリーム装置809に対して書き込みだけしか行わない（読み取りは行わない）。一方、ダウンストリーム制御装置805は、読み取りだけしか行わない（書き込みは行わない）。各装置は、「REQ」信号、「WRITE」信号、及び「Address」バスを備えている。各装置は、BAPC825から「ACK」信号を受信する。特定の装置が書き込み能力を有している場合、「書き込みバス」と呼ばれる入力バスと、DevXWE（装置Ｘ書き込み可能）と呼ばれる入力信号がその装置に接続される。特定の装置が読み取り能力を有している場合、「読み取りバス」と呼ばれる出力バスと、DevXRE（装置Ｘ読み取り可能）と呼ばれる入力信号が、その装置に接続される。DevXWE及びDevXREにおけるＸは、各特定の装置に関する一意的な識別子である。
【０１１０】
暗号装置(CD)811及びLAN-RAM装置815は、「REQ」、「WRITE」、及び「Address」信号をセットし、それぞれのインタフェイス回路813及び817のために対応する「ACK」信号を受信することによって制御も行うという点で、特殊ケースである。
【０１１１】
ダウンストリーム・ペイロード装置は、２つの別個の組をなすREQ、WRITE、及びAddress信号を制御し、２つの対応するDevRE信号を受信する点において特殊ケースである。
【０１１２】
バス調停と優先順位回路
図15は、装置901とBAPC825の間におけるデータ送信例を示すタイミング図である。データ送信を要求するため、装置901は、REQ信号、トランザクションのためのRAMのアドレス、及びWRITE信号によるトランザクションのタイプ（書き込み=1、読み取り=0）の表明を行う。この要求が許可されると、BAPCは、ACK信号の表明を行う。この装置は、クロック・エッジにおいてACKを検出すると、即座に新しい要求を生成する。この装置が書き込み能力を備えている場合、DevWEをクロック可能信号として使用し、その内部レジスタに「書き込みバス」の内容をクロック・インしなければならない。この装置が読み取り能力を有している場合、DevRE信号を利用して、その内部レジスタの内容を「読み取りバス」上にクロック・オンしなければならない。
【０１１３】
図16ないし図18は、バス調停と優先順位回路(BAPC)825の概略図である。好適実施例では、BAPC825にデータ送信を行うことが可能な装置が８つ存在する。従って、図16ないし図18の接続技法に従って、各装置毎にそれぞれ１つずつ、８つの独立したREQラインと、８つの独立したWRITEラインが存在する。８つのREQライン及び８つのWRITEラインは、優先順位エンコーダ回路1101に接続されている。優先順位エンコーダは、読み取りバス831及び書き込みバス833に対するアクセスが次に許可されるのはどの装置かを決定する。優先順位エンコーダ1101は、そのREQ信号が高レベルに設定されている優先順位が最も高い装置について、ACK信号を高レベルに設定する。優先順位エンコーダ1101はまた、装置１ないし８のそれぞれについて最高優先順位REQ信号も備えている（HiREQ1ないしHiREQ8）。優先順位エンコーダ1101は、RAMへのアクセスに関して、優先順位が最高で、そのREQ信号が高レベルに設定されている装置１ないし８を選択する。優先順位エンコーダ1101は、その装置について、対応するHiREQ信号を高レベルに設定し、残りの７つのHiREQ信号は低レベルのままにしておく。
【０１１４】
装置901は、単一要求モードとバースト・モードのいずれかで動作する。バースト・モードでは、装置内のカウンタが、装置901が要求するRAM309へのアクセス数に設定される。装置901は、それらの要求が全て肯定応答されるまでREQ信号を高レベルに保持する。図19は、ACK信号を受信する装置901の一部の概略図であり、バースト・モードでの装置901の動作を示すものである。この装置901は、それが行う必要のあるメモリ要求数を記憶するためのカウンタ・レジスタ1201を含む。装置901はそれぞれ、RAM309に記憶されたデータ・ブロックに関して繰り返し動作しようとする可能性がある。例えば、暗号装置811は、信号変換システム(SCS)101に送信すべきデータ・パケットを繰り返し暗号化する。従って、装置901が、データ・ブロックをアクセスする必要がある場合、装置901がアクセスを必要とするブロック内のレコード数、又はワード数がカウンタ1201に記憶される。
【０１１５】
装置901は、装置901がアクセスしようとする、RAM309内の次のアドレスを記憶するためのアドレス・レジスタ1203を含む。ACK信号を利用して、カウンタ1201をデクリメントし、アドレス・レジスタ1203をインクリメントする。カウンタを構成するビットは全て、ORゲート1205に供給される。カウンタ・レジスタ内のビットが全てゼロの場合、ORゲート1205の出力はゼロであり、従って、装置901のREQ信号は低レベルに設定される。カウンタ1201はまた、「LOAD（要求開始）」信号によって制御される。LOAD信号が高レベルの場合、アクセスするワード数が、クロックの正のエッジにおいてカウンタにロードされる。
【０１１６】
分かりやすくするため、バス調停と優先順位回路825に関する議論においては、それに接続される各装置毎に装置番号が割り当てられている。どの装置番号がどの特定の装置に対応するかは重要でない。しかし、例示のため、装置１はダウンストリーム制御装置805であると考える。バス調停と優先順位回路825の遠近関係から、ダウンストリーム・ペイロード装置807は、２つの装置、即ち一次ポインタに関する装置と、二次ポインタに関する装置であり、従って、これらを装置２及び３と考える。装置４はアップストリーム装置809と考える。暗号装置813は装置５であり、LAN-RAM815は装置６であり、RAM-LANは装置７であると考える。マイクロプロセッサ302（マイクロプロセッサ・インタフェイス829を介して）は装置８であると考える。
【０１１７】
優先順位エンコーダ1101は、バス調停と優先順位回路に接続される各装置毎に出力ACK信号、即ちACK1ないしACK8を有している。これらのラインはそれぞれ、ラインINC1ないしINC8に分割され、これらは更に、それぞれのアドレス・レジスタ1103-1ないし1103-8（装置３ないし７に対応するアドレス・レジスタは図示せず）に接続される。
【０１１８】
バス調停と優先順位回路825はパイプライン装置である。換言すれば、データは、調整されたパイプライン・ステージにおいて内部的に並列に送信される。RAM309からの読み取り操作、及びRAM309への書き込み操作に関するパイプライン・ステージが、時間ライン1105上に示されている。
【０１１９】
レジスタ1107は、HiREQ信号１ないし８、及び優先順位エンコーダ1101からの書き込み信号を受信するパイプライン・レジスタである。アドレス・レジスタ1103-1ないし1103-8がそれぞれ、パイプライン・レジスタ1109-1ないし1109-8に接続されている。バス調停と優先順位回路825が読み取る各装置は、読み取りレジスタを含んでいる。読み取りレジスタは、図16ないし18において、レジスタ1111-1ないし1111-8として示されている（注：全ての装置が「読み取られる」装置であるわけではなく、従って全ての装置が読み取りレジスタを有しているわけではない）。レジスタ1107、1109、及び1111は、並列パイプライン・レジスタである。従ってデータは、レジスタ1107、1109、及び1111に対して並列にクロック・イン及びクロック・アウトされる。
【０１２０】
バス調停と優先順位回路825に関するパイプラインの第１ステージは、優先順位エンコーダ1101、アドレス・レジスタ1103のロード又はインクリメント、デクリメント・カウンタ1201、及び読み取りレジスタ1111にロードされるべきデータの準備から構成される。
【０１２１】
BAPC825に関するパイプラインの第２ステージは、読み取り-書き込み装置選択回路1113から構成される。読み取り-書き込み装置選択回路1113は、どの装置から読み取るか又は、どの装置に書き込むかを選択するよう動作する。回路1113は、パイプライン・レジスタ1107からの２組の信号を入力として受信する。第１の組の信号は８つのHiREQラインから構成され、第２の組の信号は８つの書き込みラインである。回路1113は、RAM309を使用可能にするためのチップ使用可能化(CE)ライン、選択された装置による要求に適合するように、RAMを書き込みモード又は読み取りモードに設定する出力使用可能化(OE)ライン、及びRAMに対してデータのクロック・イン又はクロック・アウトを行うための信号ライン(DevReadE)を、出力ラインとして備えている。第２ステージの終了時に、これらの信号（CE、OE、DevReadE）はパイプライン・レジスタ1119にクロック・インされる。
【０１２２】
更に、選択回路1113から出力される８つの装置書き込み可能化ラインが存在する。選択された装置が書き込み要求を有する場合、対応する装置書き込み可能化ラインが高レベルに設定され、それ以外であれば、低レベルのままとされる。選択されていない全装置に関する書き込み可能化ラインは、低レベルのままである。８つの装置書き込み可能化ラインが、パイプライン・レジスタ1119にクロック・インされる。
【０１２３】
回路1113は、読み取りレジスタ1111を備えた各装置に対応する１つの出力読み取り選択ラインを有している。選択された装置からの要求が読み取り要求である場合には、選択回路1113によって、選択された装置に対応する読み取り選択ラインが高レベルにされ、それ以外の場合には低レベルに保持される。他の全ての読み取り選択ラインは低レベルに保持される。読み取り選択ラインはそれぞれ、スイッチ1115-1ないし1115-8に供給され、そのスイッチは更に、それぞれ読み取りレジスタ1111-1ないし1111-8の出力に接続される。スイッチ1115によって、読み取りバス831上に接続された読み取りレジスタ1111からデータを送信することができる。第２ステージの終了時に、読み取りバス831上のデータが、パイプライン・レジスタ1117にクロック・インされる。従って、読み取り操作の場合、第２ステージの終了時には、パイプライン・レジスタ1117が、装置から読み取られたデータを含むことになる。
【０１２４】
第２ステージは、アドレス・マルチプレクサ1121も含む。アドレス・マルチプレクサ1121は、８つのアドレス・パイプライン・レジスタ1109-1ないし1109-8から、アドレスを入力として受信する。これらのアドレスはHiREQラインによって選択される。どの時点においても、１つのHiREQラインだけが高レベルに保持されている。アドレス・マルチプレクサ1121は、対応するアドレス・レジスタ1109に記憶されたアドレスを選択する。第２のパイプライン・ステージの終了時に、その選択されたアドレスが、マルチプレクサ1121からパイプライン・レジスタ1123にクロック・インされる。
【０１２５】
第３のパイプライン・ステージは、場合によっては、選択された装置によってなされる要求のタイプ（読み取り又は書き込み）に従って、RAM309へのデータ移動又はRAM309からのデータ移動から構成される。
【０１２６】
アドレス・パイプライン・レジスタ1123はRAM309に接続されている。正のクロック遷移時に、RAM309がその特定のアドレスにアクセスできるように、レジスタ1123に記憶されているアドレスがRAM309に対して利用可能にされる。
【０１２７】
３つのラインがRAM309をパイプライン・レジスタ1119に接続する。これらのうち第１のラインは、チップ使用可能化(CE)ラインである。ステージ２において、RAM309のアクセスが処理されている場合、装置選択回路1113は、CEラインを高レベルに設定して、RAM309を使用可能にする。CEライン値がパイプラン・レジスタ1119に記憶される場合、選択回路1113によって設定されるCE値は第３ステージにおいて、RAM309に送信される。パイプライン・レジスタ1119からRAMへの第２の制御ラインは出力使用可能化(OE)ラインである。OEラインは、書き込みモードと読み取りモードのどちらでアクセスされるかをRAMに知らせる信号を送信する。
【０１２８】
DevReadE信号を送信するラインが、パイプライン・レジスタ1119を、読み取りデータ・パイプライン・レジスタ1117をRAMバス1127に接続するスイッチ1125に接続する。読み取り操作（即ち、RAM309が、選択された装置から読み取られる）に着手しようとしている場合、DevReadE信号は高レベルである（装置選択回路1113によって設定される）。DevReadE信号が高レベルの場合、パイプライン・レジスタ1117内のデータを、スイッチ1125を介してバス1127上に送信することができる。
【０１２９】
直接メモリ・アクセスを実施するには、RAM309及び選択された装置に関する書き込み可能(WE)及びOE信号が逆にされる。換言すれば、RAM309が「読み取る」場合、装置は「書き込み」、RAM309が「書き込む」場合、装置は「読み取る」。従って、装置選択回路1113から出力されるOE信号は、DevReadE信号と反対である。DevReadE信号はまた、システム・クロック信号と（ゲート1130によって）NAND演算され、ゲート1130からRAM309に出力される書き込み可能信号(WE)を生成する。WE信号は、RAM309に関する書き込みストローブである。これは、２つの連続した書き込み操作が行われる場合にとりわけ有効である。
【０１３０】
WE信号によって提供されるストローブに関する読み取り操作の第３ステージの終了時に、RAMバス1127上のデータが、アドレス・パイプライン・レジスタ1123をRAMに接続するRAライン上のアドレスで、RAMに送信される。
【０１３１】
書き込み操作の場合、即ちRAM309が装置への書き込みに用いられる場合、第３ステージにおいて、RAライン上のアドレスに記憶されたデータが、RAM309からRAMバス1127上に送出される。書き込み操作の場合、第３ステージの終了時に、RAMバス1127上のデータが、書き込みパイプライン・レジスタ1131に送信される。
【０１３２】
また、第３のパイプライン・ステージにおいて、信号DevWE1ないし８が、パイプライン・レジスタ1119からパイプライン・レジスタ1129-1ないし1129-8に送信される。この送信を利用して、DevWE信号の到着と選択された装置の書き込みレジスタに書き込まれることになるデータの到着とのタイミングがとられる。
【０１３３】
バス調停と優先順位回路825の動作の第４ステージにおいて、書き込みパイプライン・レジスタ1131内のデータはまず、書き込みバス833に送信され、次に、その書き込みバス833から選択された装置の書き込みレジスタに送信される。従って、書き込みパイプライン・レジスタ1131は、書き込みバス833に接続されている。その書き込みバス833は、スイッチ1133-1ないし1133-8を介して書き込みレジスタ1135-1ないし1135-8に接続される。全ての装置が「書き込み」装置というわけではないので、全ての装置が書き込みレジスタを備えているわけではない。スイッチ1133はそれぞれ、対応するDevWEラインに接続され、その制御を受ける。例えば、スイッチ1133-1は、DevWE1に接続される。特定のDevWEラインが高レベルの信号を送信する場合、スイッチ1133によって、データが、書き込みバス833から対応する書き込みレジスタ1135に送信されることが可能になる。従って、書き込み操作の場合、第４ステージの終了時に、選択された装置の書き込みレジスタ1135は、書き込みパイプライン・レジスタ1131内に、第３ステージの終了時に保持されたデータを含む。
【０１３４】
バス調停と優先順位回路825は、パイプライン化アーキテクチャであるため、クロック・サイクル当たり１つの操作の割合で、装置901からの読み取り及び書き込み要求を処理することができる。RAMレベルの待ち時間は２クロック・サイクルである。装置レベルの待ち時間は、書き込み装置（データが装置に書き込まれる）の場合、３クロック・サイクルであり、読み取り装置（データがRAMに書き込まれる）の場合、１クロック・サイクルである。
【０１３５】
図20は、図16ないし図18のバス調停と優先順位回路825によって処理された１組の例示的なトランザクションを示すタイミング図である。図20のダイヤグラムは、システム・クロック(1301)、第１の装置（ライン1303）及び第２の装置（ライン1305）に関するアドレス、REQ、書き込み（ないし読み取り）、及びACKライン、選択された装置（ライン1307）、及び図16ないし図18に示す回路内部の各種ラインの値を示している。
【０１３６】
図20の例では、２つの装置901-1及び901-2が両方とも、RAM309にアクセスしようとしている。装置１は書き込み要求をしようとし、装置２は読み取り要求をしようとしている。パイプライン・ステージ１において、両方の装置とも、それぞれのREQ信号を高レベルにしている。装置１は、装置２より優先順位が高く、従って優先順位エンコーダ1101に２つの高レベルREQ信号が入力されると、ACKを装置１に送信し、装置１はステージ２においてそのREQ信号を低レベルにする。従って、ステージ２では、優先順位エンコーダ1101は、高レベルである装置２からのREQ信号だけを受信し、それをACKに送信することになる。
【０１３７】
全ポインタのマスタ
RAM309にアクセスする各装置（装置805、807、809、811、813、815、817、819、及び829）が同時に、RAMの１つの特定のセクション、又はバッファをアクセスする。ある装置が特定のバッファにアクセスする時間間隔の間に、他の装置がそのバッファに同時にアクセスすることはない。装置がアクセスするアドレスは、装置の内部アドレス・レジスタ（図19の1203）に記憶されている。そのアドレスはマイクロプロセッサ302によって初期設定される。
【０１３８】
ダウンストリーム制御装置805及びダウンストリーム・ペイロード装置807は、マイクロプロセッサ302から比較的独立して動作する。DCD805及びDPD807は両方とも、RAM309内に定義されたバッファに書き込みを行う。DCD805及びDPD807の両方に関して、バッファの拡張が制御回路301内の２つのレジスタ、即ち、バッファ開始点(TOB)レジスタとバッファ終了点(BOB)レジスタによって定義される。
【０１３９】
他の装置、即ち装置809、811、813、815、817、819、及び829は、１度に１つのパケット・データについて操作を行う。これらのパケット位置は、全ポインタのマスタ827と呼ばれる制御装置301内の小レジスタ・ファイルによって管理される。
【０１４０】
MOAP827は、共通RAM309内の様々なバッファの開始アドレスを含む16×16ビットの埋め込みメモリである。下記のように、C++言語の構文を利用している：
int * addressA = new int[sizeof_block_A];
int * addressB = new int[sizeof_block_B];
int * addressC = new int[sizeof_block_C];
int * addressD = new int[sizeof_block_D];
．．．
int * MOAP[] = {addressA,addressB,addressC,addressD...};。
【０１４１】
図21は、MOAP827構造の高レベル概略図である。この構造を用いると、CM113は、データ・ブロックを動的に操作し、移動させることができる。
【０１４２】
MOAP827の動作は、図解例を用いることによって最もよく理解される。マイクロプロセッサ302がLANチップ307と通信を行うと仮定すると、それによってSCS101に対してアップストリーム送信されることになるデータ・パケットが、PCから入手可能であることを学習する。マイクロプロセッサ302は次に、このパケットのためにメモリの一部を割り当て、このアドレスの始めをMOAP827に書き込み、反復カウント情報を備えたヘッダを準備し、LTR(LAN-RAM)装置815にこのポインタが有効であることを知らせる。LTR装置815は、このMOAP827の項目をそれ自身のアドレス・レジスタにコピーし、このアドレス・レジスタを利用して（もちろん、上述のBAPC825を利用して）LANチップ307からRAM309へのデータのコピーを開始する。
【０１４３】
パケット全体がRAMに送信されると、LTR装置815はマイクロプロセッサに、そのタスクが完了したことを知らせる。マイクロプロセッサは次に、正しい暗号解読キーを選択するか又は、暗号装置811によってアドレス指定が可能なレジスタに書き込むことによって、暗号チップ311の準備を行い、反復カウント情報を備えたパケットのヘッダを更新し、更に暗号装置811のためにデータ・ブロックの開始アドレスをMOAP827のレジスタに書き込み、暗号装置811に暗号化操作を開始するよう伝える。
【０１４４】
暗号装置811は、そのMOAP827の項目をそれ自身のアドレス・レジスタにコピーし、暗号化操作を開始する。暗号化操作が終了すると、暗号装置811はマイクロプロセッサにそれを知らせる。
【０１４５】
この時点で、データ・ブロックは送信の準備が整ったことになる。マイクロプロセッサは、アップストリーム装置809のために、このデータ・ブロックの開始アドレスをMOAP827のレジスタに書き込み、ヘッダを準備し、必要であれば予約ブロックを準備し、アップストリーム装置809にパケットを送信するように伝える。
【０１４６】
アップストリーム装置809は次に、そのMOAP827の項目をそれ自身のアドレス・レジスタにコピーし、ダウンストリーム制御チャネル装置805と協力して、そのブロックを送信する。
【０１４７】
MOAP構造、及びマイクロプロセッサ302の制御によってRAM309内のデータ・ブロックにアクセスする方法の利点は、特定のブロックの開始アドレスをMOAP827の領域に書き込み、装置に対してその特定の用途にそのブロックを用いるよう伝えることによって、個々の装置のアテンションをその特定のメモリ内のデータ・ブロックに集中させる柔軟性である。バッファ・サイズ、バッファ数、及びバッファ位置に関する決定が、単なるマイクロプロセッサの決定になり、実際にコード化する必要がない。
【０１４８】
装置の任意の１つの動作を制御する状態マシンにおいて唯一実際にコード化される値は、状態マシンの対象となるブロックを指す、MOAP827の項目内のアドレスである。例えば、図21のブロックＡに操作を加える装置は、MOAP827の最初のワードからブロックＡへのポインタを受信するように実際にコード化される。一方、ブロックＢを対象とした装置は、MOAP827の第２のワードからブロックＢへのポインタを受信するように実際にコード化される。
【０１４９】
制御回路301内の幾つかのデータ・ブロックに同時に操作を加える装置が幾つか存在する。これらのブロックに関して、マイクロプロセッサ302と装置の間で通信を行うためのメカニズムは、メモリ・ブロックの各グループに割り当てられた単一ビットのレジスタである。これらのレジスタは、装置及びマイクロプロセッサ302の両方によって読み取り／書き込みが可能である。これらの単一ビットのレジスタは、「チェック・レジスタ」と呼ばれ、図21に要素1401a、1401b、1401c、及び1401dとして図示されている。これらのチェック・レジスタ1401に関する操作は、下記の通りである。
【０１５０】
マイクロプロセッサ302は、メモリ・ブロックを装置に割り当て、MOAP827に開始アドレスを書き込み、その装置のために対応するチェック・レジスタ1401を設定する。装置を制御する状態マシンは通常、そのチェック・レジスタ1401が設定されるのを待つ。チェック・レジスタが設定されると、状態マシンは進行し、MOAP827の項目をコピーし、チェック・レジスタ1401のチェックを解除する。マイクロプロセッサ302は、そのレジスタのチェックが解除されたことが分かると、次のブロックを割り当て、再びチェック・レジスタを設定する。
【０１５１】
好適実施例では、MOAPには下記の項目が含まれている：
MOAP[0] = 次のRAM-LANブロック
MOAP[1] = 次のLAN-RAMブロック
MOAP[2] = 次の暗号ブロック
MOAP[3] = 次の暗号ブロック・オフセット
MOAP[4] = アップストリーム・プリアンブル・ブロック
MOAP[5] = アップストリーム予約ブロック
MOAP[6] = アップストリーム予約ブロック・オフセット
MOAP[7] = 次のアップストリーム送信ブロック
MOAP[8] = 次のアップストリーム送信ブロック・オフセット。
【０１５２】
MOAP[0]及びMOAP[1]によって指される２つのブロックは、MOAPにおいて指定される個々のパケットの開始アドレスだけしか必要としない。これら２つのブロック内のパケットは、個別にマイクロプロセッサ302のアテンションを必要とし、必ず最初に、マイクロプロセッサ302によって準備されなければならない。マイクロプロセッサ302は、どのパケットが処理されることになるかを決定し、パケットの制御を制御回路301の装置に委ねる前に、LANチップ307の制御を行う。
【０１５３】
MOAPには、暗号装置811に関する２つの項目（MOAP[2]、MOAP[3]）が含まれている。一方の項目は、実際にはパケットのヘッダである、パケットの開始部分を指す。もう１つの項目は、パケットの開始部分から暗号化すべき実際のデータ・ブロックまでのオフセットである。この構成の理由は、暗号ブロックが、データ・フォーマットの異なる、幾つかのパケット・タイプの１つとすることがことができるという点にある。例えば、ダウンストリーム・ペイロード・パケットは、暗号解読を必要とするが、アップストリーム・データ・パケットは、暗号化を必要とする。アップストリーム・パケットとダウンストリーム・パケットのフォーマットは、互いに異なっている。このため、MOAP827は、各パケットのデータのオフセットに関する追加情報を含んでいる。マイクロプロセッサ302は、どのパケットを暗号化する必要があるかを決定する。次に、マイクロプロセッサ302は、適合するキーである、IVレジスタをロードし、暗号チップ311のモード・レジスタを設定する。それが完了すると、マイクロプロセッサ302は、MOAP[2]及びMOAP[3]をパケットの正しいアドレス及びオフセットで更新する。
【０１５４】
アップストリーム送信はほとんど、２ステップの処理である。最初に、マイクロプロセッサ302は、どのパケットがアップストリーム送信されることになるかを決定する。次に、マイクロプロセッサ302は、パケットの長さ及びMTU（最大送信単位）に基づいて、アップストリーム送信のために予約されるべき「スロット」数を計算する。次に、マイクロプロセッサ302は、空のテンプレート又は別のデータ・パケットであることが考えられる、予約パケットの予約フィールドを「スロット」情報で更新し、MOAP[5、6]にこの予約パケットを指示する。マイクロプロセッサ302は次に、MOAP[7、8]に送信すべきブロックの開始アドレス及びオフセットを書き込む。マイクロプロセッサ302は、アップストリーム装置809に「予約による」送信を行うように伝える。
【０１５５】
アップストリーム装置809は最初に、２つの部分、即ち、ハードウェアによる「1」の定数ストリームと、MOAP[4]によって指示されるプリアンブルの残りの部分から成る、プリアンブルを送信し、次に、上述のように、肯定応答及び待機のための全プロトコルを用いて、競合チャネル上に予約パケットを送信する。アップストリーム装置809は次に、肯定応答なしで、予約チャネル上にプリアンブル及び実際のデータ・パケットを送信する。
【０１５６】
この案には、幾つかの変更が考えられる。例えばマイクロプロセッサ302は、競合チャネルを介して、最小TU未満の長さのパケットを送信するよう決定を下すことができる。この場合、MOAP[7]によって指示されたパケットだけが、肯定応答によって、競合チャネル上に送信される。
【０１５７】
もう１つの場合、マイクロプロセッサは、幾つかのパケットを１つの予約処理にグループ化し、MOAP[5]によって指示される、これら全てのパケットを表す１つの予約パケットを構成するよう決定することができる。次に、マイクロプロセッサは、全てのパケットが送信されるまで、先行パケットの送信中に、MOAP「7、8」を次のパケットのアドレスに更新することを保証する。
【０１５８】
パケットは、最小TU（最も近いケーブル・モデムと最も遠いケーブル・モデムとの間における往復遅延差）より短くなってはならない。パケットの内容に関係なく、最小サイズのパケットを保証するメカニズムは、ポストアンブルのサイズである。ポストアンブルのサイズは、少なくとも２バイトの重要でないデータである。ポストアンブルのバイト数が、アップストリーム送信のヘッダに書き込まれる。マイクロプロセッサ302は、予約パケットを含む各パケット毎に、パケットのヘッダにポストアンブルのサイズを書き込む。
【０１５９】
RAMにおけるパケット・フォーマット
図22は、RAM309に記憶されている、パケット1403の一般フォーマットに関する概略図である。状態マシン及びマイクロプロセッサ302を助けるため、ヘッダ1405が、ある状態及びカウント情報と共に、各パケットに追加される。ヘッダのサイズは、シフト・レジスタ・チェイン(KTREG[0])をプログラミングすることによって変更される。ダウンストリーム・チャネル上で受信されるパケットのヘッダ1405として、８ワードが追加される。最初の２ワードは、全てのパケット・タイプに共通である。
【０１６０】
最初のワード1407は、パケット1403を処理するためにパケット1403を保持した状態マシンが達成しなければならない反復数に関する情報である。反復カウント・ワード1407は、マイクロプロセッサ302によって書き込まれる。第２のワード1409は、ファームウェア・フラグ・フィールド(FFF)であり、マイクロプロセッサ302のために予約される。
【０１６１】
ワード３ないし８はジョブに固有のものであり、必ずしも、特定の状態マシンによって用いられるとは限らない。
【０１６２】
ヘッダ1405の使用例の１つは、ダウンストリーム・ペイロード・データの場合である。ダウンストリーム・ペイロード・データは、ケーブル111からLANチップ307までの移動の間に、ヘッダの４ワードを使用する。パケットが受信されると、ダウンストリーム・ペイロード装置807は、入力ペイロード・アドレスのタイプをチェックする。そのパケットがマルチキャスト・パケットであり、この特定のCM113にアドレス指定されている場合、ダウンストリーム・ペイロード装置807は、このアドレスに関するハッシュ値を計算し、それをヘッダ1405のワード番号４に書き込む。
【０１６３】
パケットの受信が完了すると、DPD807は、オーバヘッドを含む、受信情報のバイト数をヘッダ1405のワード番号３に書き込む。
【０１６４】
マイクロプロセッサ302は、暗号解読操作の反復数（パッドを含め、オーバヘッドを除いた８の倍数）を計算し、ヘッダのワード番号１（反復フィールド）に書き込む。マイクロプロセッサは、ペイロード・データのＥ（暗号化）ビット、Ｔ（データ内の加入者ペイロード）ビット、更にはアドレス・フィールドのチェックも行い、暗号化操作に関する正しい暗号解読キーを判定する。そのアドレスがマルチキャスト・アドレスの場合、マイクロプロセッサ302はヘッダ1405のワード番号４（ハッシュ値）を使用して、MACアドレスの迅速で正確な比較を行う。マイクロプロセッサは次に、「青信号」を設定して、暗号装置811の状態マシンを起動することができる。
【０１６５】
暗号解読の後で、マイクロプロセッサ302は、もとのバイト・カウント（ヘッダ1405のワード３）を読み取り、オーバヘッドについてその調整を行い、LANチップ307に書き込む。マイクロプロセッサ302は、同じ情報を使用して、LANチップに書き込まれるワード数の計算を行って、この値をヘッダ1405のワード番号１（反復フィールド）に書き込み、RAM-LAN装置819にLANチップ307に対するデータの反復送信を行うように伝える。
【０１６６】
各状態マシンは、アドレス・レジスタとして使用する、少なくとも16ビットのレジスタ／カウンタを備えている。このレジスタは、ベース・レジスタ1410であり、通常MOAP827からロードされる。各状態マシンは、シフト・チェイン1411からロードされる５ビットのオフセット・レジスタ1413も備えている（シフト・チェインについては、「内部レジスタ」と題するセクションにおいて解説される）。暗号ブロックは、各暗号化操作毎にオフセット値の異なる、暗号化又は暗号解読のどちらかに関するのものであるため、暗号装置813は、各パケット毎に、MOAP827からそのオフセット・レジスタ1413にポインタをロードする。アクセスすべきパケットの実際のアドレスを得るため、加算器1415によって、ベース・レジスタ1410の内容がオフセット・レジスタ1413に加えられる。
【０１６７】
マイクロプロセッサ
マイクロプロセッサ302は、ケーブル・モデム113の性能及び制御回路301の動作において重要な役割を果たしている。制御回路301は、多くの入力／出力レジスタ（セクション「マイクロプロセッサ・レジスタ概説」において後述）を含んでいる。マイクロプロセッサ302は、これらのレジスタを設定することによって、ケーブル・モデム113の動作を制御する。
【０１６８】
マイクロプロセッサ302によって、多くの初期設定タスクが実行される。初期設定の際、マイクロプロセッサ302は、ケーブル・モデムのMACアドレスを判定し、その情報を制御回路301のハードウェア・レジスタに送信する。マイクロプロセッサ302はまた、制御回路301、チューナ303、及び送信器305の初期設定も行う。
【０１６９】
また、初期設定の間、マイクロプロセッサ302はアップストリーム・チャネルを介してサーバ・ステーション101とネゴシエーションを行い、キー計算及びキー交換を実施する。２タイプの初期設定、即ち、インストール時の初期設定と、パワー・サイクルを行う、良好なインストールが行われたケーブル・モデム113の初期設定が存在する。
【０１７０】
インストール時、ケーブル・モデム301の最初のタスクは、ダウンストリーム・チャネルを見つけるためのものである。ダウンストリーム・チャネルを見つけ出すために、ケーブル・モデム113はチャネル・テーブルを用いてチューナ303の同調及びテスト操作を実施する。このテーブルは、マイクロプロセッサ302のROM内に記憶されている。ROMベースのチャネル同調テーブルは、ケーブル・モデム113が、確率の低いチャネルを試すことなく、確率の高いチャネルに同調するように構成されている。テーブル内の各項目毎に、ケーブル・モデムがそのチャネルに同調し、そのダウンストリーム制御チャネルを受信しようとする。CM113が、ダウンストリーム制御ストリームを受信しない場合、CM113は、そのチャネルがサーバ・ステーション101からのダウンストリーム・チャネルではないと仮定して、チューナ303をテーブルの次の項目に同調させる。ケーブル・モデム113がダウンストリーム制御チャネルを見つけ出すことなく、テーブルを用いた同調を完了すると、エラー・インジケータ（例えば、ケーブル・モデム113のエラー・ライト）がオンになり、ケーブル・モデム113のパワー・サイクルが再び行われるまで、処理が中断される。
【０１７１】
ケーブル・モデム113は、一旦ダウンストリーム・チャネルを認識すると、チャネル番号をEEPROM内に記憶し、後続のパワー・アップ時にそのダウンストリーム・チャネル番号を使用する。
【０１７２】
ダウンストリーム・チャネル番号は、時々変化する可能性がある。サーバ・ステーション101のオペレータは、実際の変更前のある時点において（例えば、１又は２日前に）、制御チャネル上でダウンストリーム・チャネル変更フレームを送出することによって、ダウンストリーム・チャネルを変更する。ケーブル・モデムは、新しいチャネル番号をEEPROM内に記憶する。ケーブル・モデム113は、もはや古いダウンストリーム・チャネルを検出できなくなると、チューナ303に受信すべきチャネルを変更させることによって、自動的に、その新しいチャネルに変更する。
【０１７３】
ケーブル・モデム113のパワー・オン時に、まず、チューナ303をEEPROM内に最後に記憶されたダウンストリーム・チャネルに同調させることによって、ケーブル・モデム113とサーバ・ステーション101との間におけるリンクが確立される。ケーブル・モデムは次に、サーバ・ステーション101が、現在稼働中のアップストリーム・チャネルを示すのを待つ。アップストリーム・チャネル番号が分かると、ケーブル・モデム113は、サイン・オン・スロットを待つ。サイン・オン・スロットは、ケーブル・モデム301の送信パワー設定を初期設定するために予約される。ケーブル・モデム113は、最初に平均的なパワー設定（この情報はサーバ・ステーション101によって送出される）で送信を行い、サーバ・ステーション101からのサイン・オンACKを待つ。ACKを受信しなければ、パワー設定を増強し、サイン・オン・スロットの乱数が渡された後でケーブル・モデム113が再試行する。パワー設定の増強が限界に達すると、ケーブル・モデム113は、平均的なパワー設定から待機を開始する。
【０１７４】
ケーブル・モデム113が正しいパワー設定を決定すると、このパワーが、後続のパワー・アップ・サイン・オンの際の再利用に備えて、EEPROM内に記憶される。サーバ・ステーション101は、任意の時間に、ケーブル・モデム113がパワー設定の増強、又は低減することを要求できる。
【０１７５】
正しい送信パワー設定が確立されると、ケーブル・モデム113はサーバ・ステーション101と通信できる。そのステージにおいて、ケーブル・モデム113は、それ自身を識別し、DES暗号キーを得るのに必要なDiffie-Hellmanキー交換を送出する。マイクロプロセッサは、そのキー交換アルゴリズムを管理し、交換キー、及び生成された乱数をレジスタに記憶し、暗号装置813及び暗号チップ311による利用に備える。
【０１７６】
初期設定の間、マイクロプロセッサ302は、装置（805、807、809、811、813、815、817、819、及び829）がRAM309へのアクセスに使用するポインタを含むレジスタ・ファイルの初期設定も行う。マイクロプロセッサは、RAM309内に常駐するメモリ構造の初期設定も行う。
【０１７７】
ケーブル・モデム113の動作中、マイクロプロセッサは、レジスタ（下記の「内部レジスタ」における論述を参照されたい）を介して制御回路301と対話し、RAM309、及びRAM309内に保持されるバッファを管理する。
【０１７８】
マイクロプロセッサはまた、LANチップ307の状態、及び関連する制御レジスタに対する読み取り、及び書き込みを行うことによって、LANチップ307の準備も行う。
【０１７９】
マイクロプロセッサ302は、制御回路301内におけるMOAP827及び制御レジスタの管理も行い、制御回路301の状態マシンを、制御回路301の各種装置間においてデータを移動させるよう導く。状態マシンについては、「状態マシン」と題するセクションにおいて後述する。
【０１８０】
マイクロプロセッサ302は、ケーブル・モデム113がダウンストリーム制御チャネル及びペイロード・チャネル上で受信するコマンドの処理も行い、これらのコマンドを実施する。
【０１８１】
更に、マイクロプロセッサ302は、制御回路301のマイクロプロセッサ・インタフェイス829において、状態レジスタからタイミング・スロットの持続時間を求め、この情報をアップストリーム・チャネル装置809に提供する。更に、マイクロプロセッサ302は、アップストリーム送信のパケット長が現在のスロット長を超えると、「予約要求パケット」の構成及び送信スケジュールを管理する。マイクロプロセッサはまた、必要に応じて、送信機能に関する制御回路の内部レジスタの設定を行うことにより、アップストリーム・チャネル装置809を支援する。
【０１８２】
内部レジスタ
マイクロプロセッサ302による制御回路301を含むCM113の構成要素に対する全てのトランザクションは、I/Oレジスタを介して行われる。各装置には、連続したI/O空間が割り当てられる。例えば、LANチップ307は、LNBSEの開始アドレスを備えた「N」の16ビット・レジスタが割り当てられる。制御回路301の共通RAM309は、64Kの連続アレイをなすワード・レジスタとして見えるように仮想化される。ケーブル・モデム113には、共通RAM309のI/Oを含む、６つのI/O空間が存在する。これらのI/O空間に関するベース・アドレスは、下記の通りである：
LAN307          LNBSE
暗号チップ311   CIBSE
チューナ303     TUBSE（チューナ及び支援回路）
送信器305       TRBSE
制御回路301     KTREG（レジスタ空間）
制御回路301     KTRAM（共通RAM309空間）
制御回路301     KTMOAP(MOAPレジスタ・ファイル）。
【０１８３】
制御回路301のレジスタは、下記の通りである：
KTRAM + n   共通RAMワードｎ    R/W
KTMOAP + n  MOAPワードｎ       R/W
KTMOAP[0] = 次のRAM-LANブロック
KTMOAP[1] = 次のLAN-RAMブロック
KTMOAP[2] = 次の暗号ブロック
KTMOAP[3] = 次の暗号ブロック・オフセット
KTMOAP[4] = アップストリーム・プリアンブル・ブロック
KTMOAP[5] = アップストリーム予約ブロック
KTMOAP[6] = アップストリーム予約ブロック・オフセット
KTMOAP[7] = 次のアップストリーム送信ブロック
KTMOAP[8] = 次のアップストリーム送信ブロック・オフセット
KTMOAP[15:9] = 未使用
KTREG + 0   シフト・チェイン
ビット０    R/W   dout/din
ビット１    Ｗ    シフト。
【０１８４】
制御回路301内部には、一度だけ初期設定される多くのレジスタが存在しており、その値はあまり変更されない。これらのレジスタは、互いにチェインされており、長いシフト・レジスタとしてアクセスされる。レジスタ０を読み取る場合、シフト・チェインの終りにおけるデータは、ビット０である。単一データ・ビットをシフト・チェイン内にシフトするには、２つの書き込み操作が必要になる。まず、ビット0=データ・ビット、及びビット1=1をレジスタ０に書き込む。次に、ビット0=同じデータ・ビット、ビット1=0をレジスタ０に書き込む。データは、ビット１の立ち下がりエッジにおいてシフト・チェイン内にシフトされる。シフト・チェインの読み取りは、破壊読み取りである。チェインの読み取り時にシフト・チェインの内容を保存するために、マイクロプロセッサ302はまず、ビット０を読み取り、次に上述のように、そのビットをシフト・チェイン内に戻すようシフトさせる。マイクロプロセッサ302は、シフト・チェイン全体の読み取り、又は書き込みを実施しなければならない。シフト・レジスタの内容は下記の通りである：
自身のMACアドレス                          48ビット
ペイロード状態マシン・オフセット           ５ビット
LAN-RAM状態マシン・オフセット              ５ビット
RAM-LAN状態マシン・オフセット              ５ビット
ペイロードのバッファ上部(PTOB)             16ビット
ペイロードのバッファ底部(PBOB)             16ビット
ダウンストリーム制御のバッファ上部(DSCTOB) 16ビット
ダウンストリーム制御のバッファ底部(DSCOBO) 16ビット
プリアンブル・ブロック・サイズ             ４ビット
プリアンブルの最初の１のサイズ             ３ビット
待機アルゴリズム・パラメータ               ４ビット
フロントエンド・プリプロセッサへのQ256信号 １ビット。
【０１８５】
代替実施例の場合、シフト・チェインにおけるレジスタは、直接アクセス・レジスタである。
【０１８６】
自身のMACアドレスは、ケーブル・モデムを表す６バイトのMACアドレスである。それは、ケーブル・モデム113のMACアドレスである。
【０１８７】
RAM-LAN819、LAN-RAM815、及びペイロード807の状態マシンに関してRAM309に常駐するパケットのオフセットは、オフセット・レジスタを用いて設定される。RAM309常駐パケットについては、図22に関連して解説済みである。オフセット・レジスタの値を変更すると、ヘッダのサイズが変化する。
【０１８８】
PTOB、PBOB、及びDSCTOB、DSCBOBは、ペイロード及びダウンストリーム制御装置のバッファの上部及び底部であり、「バッファ管理」と題するセクションにおいて解説される。
【０１８９】
プリアンブル・ブロック・サイズは、各アップストリーム・ブロックの前に送信されるアップストリーム・プリアンブルの固定部分に関するサイズ（ワードで表す）である。プリアンブル・ブロックは、ケーブル・モデムMACアドレス、同期、及び５バイトの長さで全て１のフラグの一部を含んでいる。
【０１９０】
プリアンブルの最初の１のサイズは、全てが１のフラグの最初のプリアンブルをワード数で表したサイズであり、RAM309からプリアンブルの残りの部分を送信する前に、ハードウェアによって送信される。待機アルゴリズム・パラメータは、ネットワークのインストール及びトポロジに基づいて決まる６ないし10の間の数である。このパラメータによって、待機アルゴリズムの効率が決まる：
KTREG+1              チェック・レジスタ（割り込みなし、ファームウェアからハードウェアに）     R/W
ビット０   PLFC      ケーブル・バッファからのペイロードが有効
ビット１   CIPH      暗号ブロック準備完了
ビット２   RTL       RAM-LANインタフェイスからのスピン・データ
ビット３   DSCC      ダウンストリーム制御バッファが有効
ビット４   LTR       LAN-RAMインタフェイスからのスピン・データ
ビット５   USTR_RSV  アップストリーム送信、予約の実施
ビット６   USTR_NC   アップストリーム送信、無競合チャネル
ビット７   USTR-C    アップストリーム送信、競合チャネル
ビット14   SMRTIASAP 状態マシンができるだけ早くアイドルに戻る
ビット15   SR        (1)ビットを設定し、(0)ビットをリセットする。
【０１９１】
KTREG+1は、個々のビットがマイクロプロセッサ302によって設定されるハードウェア・チェック・レジスタである。これらの個々のビットは、ハードウェア状態マシンにその特定のタスクを実施するよう伝える。状態マシンは、コマンドを受信すると、これらのビットをクリアする。状態マシンがビットをクリアすると、肯定応答がマイクロプロセッサ302に送信されることになる。レジスタの１ビットはマイクロプロセッサ302によって設定されるので、これらのフラグが設定されると、割り込みが発生しない。
【０１９２】
アップストリーム送信はケーブル・モデム113の複雑な操作であり、一般に、２ステップで完了する。最初のステップは予約であり、次のステップはデータ・パケットの送信である。各ステップはまた、ダウンストリーム制御チャネルと近接したタイミングで協動し、動作しなければならない。アップストリーム・パケットの送信には３つのケースがある。
【０１９３】
ケース１は、マイクロプロセッサ302が、予約チャネルを介して単一データ・パケットを送信する場合である。このケースでは、マイクロプロセッサ302は、MTUに基づいて必要な予約スロット数を計算し、共通RAM309における予約構造を更新しなければならない。マイクロプロセッサ302は次に、USTR_RSVビットを設定する。UD809は最初に、競合チャネルを介して予約パケットを伝送信し、次に、予約チャネルを介してデータ・パケットを送信する。
【０１９４】
ケース２は、マイクロプロセッサ302が、予約チャネルを介した送信に備えて、幾つかのアップストリーム・パケットをグループ化する決定を行う場合である。この場合、マイクロプロセッサ302は、MTU、アップストリーム・パケットの個々の長さ、及び全体の長さに基づいて、必要な予約スロット数を計算し、共通RAM309における予約パケット・テンプレートを更新する。マイクロプロセッサ302は次に、第１のパケットに関してUSTR_RSVビットを設定する。マイクロプロセッサ302は次に、USTR_RSVビットを監視する。このビットがUD809によってクリアされている場合は、第１のパケットが送信中であることを表す。次にマイクロプロセッサ302は、次のパケットの準備を行い、USTR_NCビットを設定して、状態マシンに、次のパケットが予約技法に関与する一連のパケットの一部であり、最初に利用可能なタイム・スロットの始めに送信されなければならないということを伝えなければならない。マイクロプロセッサ302は次に、先行パケットが送信される度に、監視し、残りのパケットに関してUSTR_NCビットを設定する。
【０１９５】
ケース３は、マイクロプロセッサ302が、MTUより短いパケットは競合チャネルを介して送信されなければならないと決定する場合である。このケースでは、マイクロプロセッサ302は、パケットの準備を行い、USTR_Cビットを設定する。状態マシンは次に、競合チャネルだけを用いてデータ・パケットを送信する。
【０１９６】
状態マシンは、KTREG+1のビット14、「SMRTIASAP、状態マシンができるだけ早くアイドルに戻る」を頻繁に監視し、このビットが「1」に設定されたことが分かると、アイドル状態に戻るように設計されている。これは、ケーブル・モデム113における全てのアクションを停止させるのに便利な方法である。最良の結果を得るには、KTREG+1の他の全てのビットが０に設定されなければならない。
【０１９７】
KTREGレジスタ（例えば、KTREG+1）のそれぞれは、単一のマルチ・ビット・レジスタではない。各KTREGレジスタは、実際には、幾つかの独立した１ビット・レジスタである。独立したビット・レジスタを設けることによって、マイクロプロセッサ302があるビットを読み取って、修正しようと試みている一方で、制御回路301が別のビットをクリアしようと試みている場合、競合状態が回避される。ビットを１に設定するには、ビット15に対応するビット位置に１を書き込むことによっても、１に設定される。ビットを０にリセットするには、ビット15の対応する位置に１を書き込むことによって、０にセットされる。例えば、KTREG+1に0x8005の値を書き込むと、他のビットに影響を与えずに、PLFC及びRTLが１に設定され、KTREG+1に0x000Aの値を書き込むと、他のビットに影響を与えずに、CIPH及びDSCCがクリアされることになる：
KTRG+2    チェック・レジスタ（割り込みあり、ハードウェアからファームウェアに）      R/W
ビット０    PLFC_WRAP    ペイロード・バッファが循環
ビット１    DSC_WRAP     ダウンストリーム制御バッファが循環
ビット２    CDNE         暗号化完了
ビット３    RTLDNE       RAM-LAN完了
ビット４    PLFCDNE      ケーブルからの１パケットのペイロード完了
ビット５    LTRDDNE      LAN-RAMデータ完了
ビット６    USTRTDNE     アップストリームの１パケット（予約パケットを除く）伝送完了
ビット７    CONTRCD      ダウンストリーム制御の１パケット受信
ビット15    SR           (1)ビットをセットし、(0)ビットをリセット。
【０１９８】
KTREG+2レジスタのビットは、ハードウェア状態マシンによって設定され、一般に、マイクロプロセッサ302に、状態マシン及びハードウェアの進行状況を知らせる。マイクロプロセッサ302は、該ビットをクリアして、各ビットに関する次の状態変化を待つ。これらのレジスタ・ビットのどれかを設定することによって、マイクロプロセッサ302に割り込みを生じさせる。割り込みは、KTREG+3への書き込みによって可能、又は不可能とすることができる。用いられるアルゴリズム及びマイクロプロセッサの割り込み待ち時間に基づいて、割り込みの使用を決定する責務を負うのはマイクロプロセッサ302である。
【０１９９】
ビット２ないし７は、MOAPから次のブロックのアドレスを入手すると、状態マシンによってクリアされ、そのパケットが完了すると、設定される。これらのビットは、マイクロプロセッサ302によってリセットされるか、あるいは、次のブロックの処理が始まるまで、設定されたままである。このことはマイクロプロセッサ302が常に注意している必要をなくすものである。マイクロプロセッサ302は、レジスタ１の対応するビットを監視し、状態マシンがMOAPからブロックのアドレスを入手して、フラグをクリアするとすぐに、複数のパケットを次から次へと処理するように配置することができる。状態マシンによるフラグのクリアは、先行ブロックが完了したことを意味する。従って、KTREG+2の対応するビットをチェックし、クリアする必要はない。状態マシンは、KTREG+2の対応するビットもクリアするので、これらのビットは、別のパケットが待ち行列化されているか否かに関係なく、処理を受ける最後のパケットの状態を表している。
【０２００】
ビット15は、KTREG+1のビット15と全く同様に機能する：
KTREG+3    マスク・レジスタの割り込み                Ｗ
KTREG+3は、上記KTREG+2の各ビットに対応するビットを１つ備えている。このビット位置に「1」を書き込むと、対応する割り込みが許可される：
KTREG+4    エラー（ペイロード）                      R/W
ビット7:0    ペイロードCRCエラーのカウント
ビット15:8   ペイロード消失バッファ・エラーのカウント
KTREG+5    状態（ペイロード）                        R/W
ビット15:0   受信ペイロード・パケットのカウント
KTREG+6    エラー及び状態（ダウンストリーム制御）    R/W
ビット7:0    ダウンストリーム制御CRCエラーのカウント
ビット15:8   ダウンストリーム制御消失バッファ・エラーのカウント
KTREG+7    エラー及び状態（ダウンストリーム制御）    R/W
ビット15:0   受信ダウンストリーム制御パケットのカウント
KTREG+8    エラー及び状態（アップストリーム）        R/W
ビット15:0   アップストリーム再送エラーのカウント
KTREG+9    エラー及び状態（アップストリーム）        R/W
ビット7:0    待機失敗によるアップストリーム・ドロップ・パケットのカウント
KTREG+10   状態（アップストリーム）                  R/W
ビット15:0   送信アップストリーム・パケットのカウント
KTREG+11   バッファ管理（ペイロード）                Ｗ
ビット15:0   ペイロード・ファームウェアの読み取りポインタ
KTREG+12  バッファ管理（ペイロード）                 R/W
ビット15:0   ペイロード制御回路301の書き込みポインタ（ペイロード・ベース・レジスタ）
KTREG+13  バッファ管理（ダウンストリーム制御）       Ｗ
ビット15:0   ダウンストリーム制御ファームウェア読み取りポインタ
KTREG+14  バッファ管理（ダウンストリーム制御）       R/W
ビット15:0   ダウンストリーム制御回路301の書き込みポインタ（ダウンストリーム制御ベース・レジスタ）
KTREG+15  エラー及び状態ロールオーバ・レジスタ       R/W
KTREG+15における各ビットは、特定のカウンタのロールオーバを示すフラグである：
ビット０     ペイロードCRCエラー・カウンタのロールオーバ
ビット１     ペイロード消失バッファ・エラー・カウンタのロールオーバ
ビット２     受信ペイロード・パケット・カウンタのロールオーバ
ビット３     ダウンストリーム制御CRCエラー・カウンタのロールオーバ
ビット４     ダウンストリーム制御消失バッファ・エラー・カウンタのロールオーバ
ビット５     受信ダウンストリーム制御パケット・カウンタのロールオーバ
ビット６     アップストリーム再送エラー・カウンタのロールオーバ
ビット７     アップストリーム・ドロップ・パケット・カウンタのロールオーバ
ビット８     送信アップストリーム・パケット・カウンタのロールオーバ。
【０２０１】
マイクロプロセッサ302は、上記ビットをリセットすることしかできない。任意のビット位置に１を書き込むと、「そのビットが０にリセットされる」だけであり、他のビットには影響がない。例えば、0x0003をこのレジスタに書き込むと、ビット０と１が「0」にリセットされるだけで、他のビットには影響がない。
【０２０２】
最大カウントの半分が、次のカウント・サイクルに到達するまで、上記ビットは、ロールオーバ後、設定されたままである。例えば、KTREG[5]が、0xffffから0x0000にわたってロールオーバすると、ビット２は、「1」に設定され、カウントが0x8000に達して、次のカウント・サイクルに入るまで「1」のままである。この結果、マイクロプロセッサ302が該ビットをクリアし、カウント全体を累算するのに十分な時間が得られることになる。
【０２０３】
次のビットのどれかが設定されると、割り込みが発生する：
KTREG+16    上記KTREG+14に関する割り込みマスク・レジスタ      R/W
任意のビット位置に「1」を書き込むと、KTREG[15]の対応するビットからの割り込みが可能になる。従って、「0」によって、割り込みが禁止されることになる。
【０２０４】
KTREG+17ないし20    マルチキャスト・アドレスの論理アドレス・フィルタ(LAF)レジスタ        Ｗ
KTREG[17]15:0    LAF(15:0)
KTREG[18]15:0    LAF(31:16)
KTREG[19]15:0    LAF(47:32)
KTREG[20]15:0    LAF(48:63)
KTREG[21]       ハードウェア・リセット・レジスタ        Ｗ
ビット０      制御回路301ハードウェア・リセット
ビット１      チューナ・ハードウェア・リセット
ビット２      暗号チップ・ハードウェア・リセット
ビット３      LANハードウェア・リセット
ビット４      送信器ハードウェア・リセット
ビット５      マイクロプロセッサ・ハードウェア・リセット。
【０２０５】
任意のビット位置に１を書き込むと、対応する装置のハードウェア・リセット・ライン上でリセット信号が送信される。制御回路301のハードウェア・リセット・ライン上にリセット信号を送信すると、全ての内部レジスタがクリアされる。
【０２０６】
ビット５、即ち、マイクロプロセッサ・ハードウェア・リセットは、マイクロプロセッサ302によって、それ自身の強制的リセットに用いられ、ビット５に１を書き込むことによって実施される。短い初期遅延の後、短いリセット・パルスが生成される。ソフトウェア・リセットではなく、ハードウェア・リセットを行う理由は、リフレッシュされたキャッシュ・レジスタを含む、クリーンな初期ハードウェア状態が得られるためである：
KTREG[22]      マスク及び構成              Ｗ
ビット[5:0]  フロントエンドCBRマスク
ビット[9:6]  ケーブル・モデム・アップストリーム・チャネル番号。
【０２０７】
CBRマスクは、制御チャネルから受信したCBRビットに対してマスクをオン／オフするものである。KTREG[36]のビット[7:0]におけるダウンストリーム・チャネル番号に基づくQAM記号使用ビットマップを用いて、マスク・パターンが決定される。アップストリーム・チャネル番号は、ダウンストリーム制御チャネルによって割り当てられる。ダウンストリーム制御チャネルは、このチャネルに関する「状態ビットマップ」を生成し、アップストリーム送信ブロックにそれを提供する：
KTREG+32        タイミング及び制御パラメータ        Ｒ
ビット15:0    利用可能なアップストリーム・チャネル周波数
KTREG+33        タイミング及び制御パラメータ        Ｒ
ビット7:0     利用可能なアップストリーム・チャネル数
ビット9:8     利用可能な記号毎のアップストリーム・チャネル・ビット数
ビット15:10   利用可能なアップストリーム・チャネル記号転送速度
KTREG+34        タイミング及び制御パラメータ        Ｒ
ビット15:10   スロットMaxTU
KTREG+35        タイミング及び制御パラメータ        Ｒ
ビット3:0     バージョン
ビット7:4     チャネル・タイプ
ビット14:8    スロット・タイマ長
ビット15      有効（タイミング及び制御パラメータ・レジスタ、KTREG[32-37]の内容が有効である）
KTREG+36        タイミング及び制御パラメータ        Ｗ
ビット7:0     自身のダウンストリーム・チャネル番号
ビット15:8    KTREG[37]QAM記号使用ビットマップに基づくダウンストリーム・チャネルにおけるペイロード・ビット数。デフォルトは、64-QAM構成における５である：
KTREG+37        タイミング及び制御パラメータ        Ｒ
ビット15:0    KTREG[36]のビット[7:0]におけるダウンストリーム・チャネル番号に基づくQAM記号使用ビットマップ：
タイミング及び制御パラメータは、サブコード0x8001を備えた制御フレーム内に含まれる情報である。幾つかのフィールドは、サブコード0x8001によって直接送信されるのではなく、ハードウェアによって生成されるか又は、サブコード0x8001フレームの関する何らかの処理によって得られる。
【０２０８】
KTREG[35]、ビット14:8（スロット・タイマ長）は、DCD805によって決定される。それは、スロット・タイマ・フィールドの最大カウントである。
【０２０９】
KTREG[36]、ビット7:0（ケーブル・モデム・ダウンストリーム・チャネル番号）、KTREG[36]、ビット15:8（ペイロード・ビット数）、及びKTREG[37]、ビット15:0（QAM記号使用）は、互いに結び付けられて、共通の目的を果たす。その目的は、各記号内のペイロード・ビット数を求めることである。例えば、64-QAMを使用する場合、ケーブル・モデム113は、各記号毎に６ビットを受信する。１ビットは制御チャネルであり、５ビットはペイロード・データである。代替実施例では、各記号毎に、１ビットの制御チャネル、２ビットの非ペイロード・データ、及び３ビットのペイロード・データが存在する。
【０２１０】
サブコード0x8001を備える制御フレームは、各ダウンストリーム・チャネルに関連したQAM記号使用ビットマップを送信する。マイクロプロセッサ302は、ダウンストリーム・チャネルを決定し、KTREG+36[7:0]にそれを書き込む。制御回路301は、情報をフィルタリングし、KTREG+37[15:0]でダウンストリーム・チャネルに関連したQAM記号使用ビットマップを提供する。マイクロプロセッサ302は、KTREG+37を読み取り、ペイロード・ビット数を決定する。マイクロプロセッサ302は次に、ペイロード・ビット数をKTREG+36[15:8]に書き込む。64-QAMのデフォルト値は５（１ビットは制御チャネル、５ビットはペイロード・データ、０ビットは非ペイロード・データ）である。
【０２１１】
KTREG+35ビット15は、全ての「タイミング及び制御パラメータ」に関する有効ビットである。制御チャネルは、KTREG[32-37]上の全てのデータが有効であることを保証し、KTREG+35[15]上の「1」でそれを認定する。マイクロプロセッサ302は、上述のパラメータのどれであれ、その読み取りの直前に１回、及びその直後に１回、必ずこのビットをチェックする。これによって、無効パラメータの読み取り及び利用が回避される。
【０２１２】
状態マシン
各装置は、専用の状態マシンによって制御される。マイクロプロセッサ302は、制御回路301内のハードウェア・フラグを制御することによって、その状態マシンを制御する。様々な装置の状態マシンも、ハードウェア・フラグを制御することによってマイクロプロセッサ302にその状態を伝える。これらのハードウェア・フラグは、制御回路301のレジスタ内に記憶されている。全ての状態マシンは同時に動作する。各状態マシンは、ファームウェアからの「青信号」制御フラグを待つ。制御回路301のBAPC825を介してRAM309と対話する各種装置の制御を行う、状態マシンの２つの一般的なカテゴリが存在する。状態マシンの第１のカテゴリは、単一パケットのデータに処理を施して、アイドル状態に戻り、次の青信号を待って、次のパケットを処理する。第１のカテゴリにおける状態マシンは、暗号状態マシン（CD811の場合）、アップストリーム状態マシン（UD809の場合）、RAM-LAN状態マシン（RTL819の場合）、及びLAN-RAM状態マシン（LTR815の場合）である。状態マシンの第２のカテゴリは、自律的に、幾つかのパケットに対して順次作用し、マイクロプロセッサ302からの介入はほとんどない。このカテゴリにおける状態マシンは、ダウンストリーム・ペイロード状態マシン（DPD807の場合）、及びダウンストリーム制御状態マシン（DCD805の場合）である。第１のカテゴリでは、「青信号」が与えられると、状態マシンは、その単一タスクを実施して、次の「青信号」を待つ状態に戻る。状態マシンには、更に、幾つかの他の並列状態マシンから構成されるものもある。ある主状態マシンが、他の副状態マシンを制御して、この状態マシンに割り当てられた主タスクの副タスクを実施する。
【０２１３】
図23は、状態マシンの第１及び第２のカテゴリの一般形態に関する「バブル」図である。状態マシンは、状態1501において、マイクロプロセッサ302が前進信号即ち「青信号」を与えるのを待つ。これは、通常、共通RAM309内のバッファが使用可能となり、このバッファに関するMOAP827の項目が有効であることを表している。
【０２１４】
図24は、装置805、807、809、811、813、815、817、及び819のアドレス・レジスタに関する一般化データ経路1601の概略図である。全ての装置が、図24の完全な構造を必要とするわけではない。１次ポインタ1603、及び２次ポインタ1605は、装置によって処理されるべき次の場所に対するアドレスをRAM309内に記憶する。ポインタ1603及び1605は、３つの操作、即ち、保持、ロード、及びインクリメントの対象になる。
【０２１５】
一般に、ポインタ1603及び1605は、ベース・レジスタ（又はベース・ポインタ）1607、及びオフセット1611の加算器／減算器1609による加算によってロードされる。ベース・ポインタ1607は、装置に関するMOAP827のレジスタからロードされるか又は、MOAP827にベース・ポインタのない装置の場合、シフト・チェイン・レジスタ又は１次ポインタ1603からロードされる。１次ポインタ1603からロードするケースは、例えば、CRCエラーが発生し、１次ポインタ1603をベース・ポインタ1607によって指示されたパケットの始めにリセットして、そのパケットを効果的に廃棄しなければならない場合である。加算器／減算器1609については、暗号装置811が読み取り操作のため、ポインタを４ワード分逆に移動させる場合である。
【０２１６】
代替案として、加算器、減算器、及び関連するマルチプレクサを用いずに、ベース・ポインタの出力を１次ポインタ1603及び２次ポインタ1605の入力に直接接続し、１次ポインタ1603及び２次ポインタ1605にデクリメント操作を加えることによって、同じ結果が得られる。その代替案では、状態マシンは、１次ポインタ1603及び２次ポインタ1605に対してインクリメント及びデクリメント命令を発行し、同じ結果を得ることができる。しかし、後者の代替案は、図24に示す実施例より多くのクロック・サイクル数を必要とする。
【０２１７】
図23に戻ると、状態マシンは、「青信号」を受信すると次のステップに進み、一般に、状態1503において、自身のタスク・フラグが有効になるのを待つ。例えば、ケーブルからペイロードをダウンロードする状態マシンは、ここで、新しいペイロード・パケットが利用可能になるのを待ってから、次の操作に進む。状態マシンには、このステップをバイパスして、直接次のステップに進むものもある。例えば、暗号状態マシンは、マイクロプロセッサ302からの「青信号」が、有効バッファと有効タスクの両方を表すものであるため、ここで、自身のタスク・フラグを待つ必要はない。特定のタスクを実施する上での第１のステップは、タスク1505において、MOAP827からバッファの開始アドレスを状態マシンのベース・レジスタにコピーし、「青信号」をクリアして、マイクロプロセッサ302に、パケットのアドレスを得たので、マイクロプロセッサ302は先へ進むことができることを知らせ、MOAP827の新しいパケットのアドレスをコピーして、そのパケットに関する完了（DONE）ビットをクリアすることである。完了ビットのクリアは、マイクロプロセッサと装置の間における極めて重要なハンドシェイク・タスクである。マイクロプロセッサは、状態マシンの第１のカテゴリ内に「青信号」フラグを設定し、監視することによって、連続パケットの処理を監視することができる。状態マシンがフラグをクリアすると、それは、状態マシンが先行パケットの処理を終了し、現在のパケットに取りかかっていることを表している。従って、マイクロプロセッサ302は、完了フラグを検査する必要がない。マイクロプロセッサ302は、新しいパケットを配置しない場合、ただ単に、完了ビットを監視して、最後のパケットの処理がいつ終了したかを知ることもできる。
【０２１８】
次のタスクは、タスク1507において、ベース・ポインタを１次ポインタにコピーし、状態1509において、状態マシンの特定のタスクから開始する。ベース・ポインタの値を保持する理由は、CM113が何らかのエラーによって現在のジョブを中断しなければならなくなる可能性があるためである。その場合、CM113は常に、パケットの始めに戻って、バッファを再利用することができる。この状態は、図24に「やり直し状態」遷移として示されている。また、タスクによっては、状態マシンは、ヘッダの始めからやり直し、幾つかの新しい情報をヘッダに加える必要がある。これは、ベース・ポインタを２次ポインタにコピーし、この２次ポインタを利用することによって行われる。典型的なケースが、パケットのマルチキャスト・アドレスのハッシュ値をヘッダに書き込み、その一方で、パケットの残りの部分を受信する、ダウンストリーム・ペイロード状態マシン807のケースである。また、装置は、新しいパケットの処理を開始する場合、先行パケットのバイト・カウントをそのヘッダに書き込む。
【０２１９】
状態マシンは更に、次のステップに進み、図23において重複した状態1511、1513、1515、1517として示された、自身の特定のタスクを実施する。このタスクの実行の間、状態マシンは、状態フラグを設定することによって、マイクロプロセッサにその進行を知らせることができる。また、状態マシンは、他の副状態マシンを起動して、副タスクの幾つかを並列に実施することも可能である。一般に、タスクが完了すると、状態マシンは、状態1519及びタスク1521において、「完了」フラグを設定し、遷移「リターン」で、次のタスクを待つ状態に戻る。
【０２２０】
フロントエンド・プリプロセッサ
図10ないし図13に戻ると、Ｉ及びＱ信号が、制御回路301のフロントエンド・プリプロセッサ(FEP)801に入力される。FEP801は、Ｉ及びQ QAM信号を復号化し、これらを、FEP801からフロントエンド・シリアライザ(FES)803に送信される記号ベクトルに復号化する。FEP801からFES803への記号データ経路は、８ビットのデータ経路である。
【０２２１】
FEP801は、64-QAM又は256-QAM信号のいずれかを受信することができる。FEP801がＩ及びＱ信号を64-QAM信号として処理するか又は、256-QAM信号として処理するかを制御するため、フラグ・ビットQ256がFEP801に入力される。64-QAMとして処理される場合、Ｉ及びＱ信号の３ビット、即ちビット０ないし２が用いられ、FES803に対する記号ベクトルは、記号ラインのビット７及びビット４ないし０に対応する６ビット・ベクトルである。256-QAMとして処理される場合、Ｉ及びＱ信号の４ビットがFEP801によって処理され、記号ベクトルは８ビット・ベクトルである。64-QAM及び256-QAMの両方の場合とも、ビット７は、制御チャネル・ビットである。
【０２２２】
FEP801は、ボー・パルス(baud_pulse)も出力する。ボー・パルスは、各記号毎に１回生成される１クロック・サイクル幅のパルスである。好適実施例では、記号は、１秒当たり5M個の記号という速度で受信され、ボー・パルスの持続時間は、25nsecである。
【０２２３】
フロントエンド・シリアライザ
フロントエンド・シリアライザ(FES)803は、フロントエンド・プリプロセッサ801から記号及びボー・パルスを受信し、記号ベクトルを２つのシリアル・ストリームに区分化する。記号のビット７は、制御ストリーム（「Cont_Out」）である。Cont_Outストリームは、クロック・アウトされ、記号転送速度（ボー・パルス=5Mビット／秒）でダウンストリーム制御装置805に適用される。
【０２２４】
第２のストリームは、ペイロード・データを備えたストリームである。このストリーム「Pl_Dat」は、64-QAMの記号[0:4]、及び256-QAMの記号[0:6]から導き出される。Pl_Datストリームは、40Mビット／秒の速度でダウンストリーム・ペイロード装置807に送信される。Pl_Datストリームは、信号「plse」（ペイロード・シフト使用可能）によって認定され、やはり、ダウンストリーム・ペイロード装置に送信される。こうしてPl_Datストリームを認定することによって、ペイロードされるビットだけが、ダウンストリーム・ペイロード装置807内にシフトされる。
【０２２５】
フロントエンド・シリアライザ803は、ペイロード・ストリームをダウンストリーム制御装置805に送信する前に、ペイロード・ストリームをスクランブル解除(descrambling)する回路を含んでいる。
【０２２６】
ダウンストリーム制御装置
ダウンストリーム制御装置805は、下記の機能を提供する状態マシンに制御される装置である。この装置は、RAM309内の自身のバッファを管理する。そのバッファ範囲の拡張は、DSCTOB及びDSCBOBレジスタを設定するマイクロプロセッサ302によって決定される。ダウンストリーム制御装置は、データをRAM309のバッファに書き込むので、その現在位置を示す書き込みポインタ、即ち、DSCWPレジスタを維持する。マイクロプロセッサ302は、それが読み取った位置を示す読み取りポインタ、即ち、DSCRPレジスタを維持する。
【０２２７】
ダウンストリーム制御装置805は、DSCWPがDSCOBOBレジスタによって指示されるバッファの終わりに達するまで、バッファに連続して書き込みを行う。ダウンストリーム制御装置805は更に、バッファの始めから書き込みを続行し、フラグDSCWRAPを設定して、それを行ったことを表示する。ダウンストリーム制御装置805は、DSCWPがDSCRPに等しくなる、即ち、今にも未処理のパケットに上書きしそうになることを示すところまで、バッファに対する書き込みを続ける。
【０２２８】
ダウンストリーム制御装置805は、アップストリーム装置809及び送信器バックエンド821に接続されており、これらの装置に肯定応答及びタイミング信号を供給する。多くのアップストリーム・メッセージに関して、アップストリーム装置809は、SCS101から受信した肯定応答がない限り、メッセージを再送する。ダウンストリーム制御装置805は、こうした肯定応答をcont_outストリームから解析し、その肯定応答をアップストリーム装置809に送信する。ダウンストリーム制御装置805は、cont_outストリームにおいて、スロット及びフレームの始めを示すSYNCフィールドを検出する。ダウンストリーム制御装置805はまた、アップストリーム・チャネル上でタイム・スロットが競合スロットになると、これを検出し、その情報をアップストリーム装置809に送信する。
【０２２９】
ダウンストリーム制御装置805は更に、アップストリーム装置809に対して予約情報の供給も行う。従って、アップストリーム装置809は、MaxTUより長いパケットの送信によって供給を受けると、SCS101からの予約を待たなければならない。ダウンストリーム制御装置805は、予約許可、及びcont_outストリームを送信するまで待つことになるタイム・スロットの数の解析を行い、この情報をアップストリーム装置809に提供する。
【０２３０】
ダウンストリーム制御装置805に関する追加タスクは、次の通りである：
ダウンストリーム・チャネルに関するダウンストリーム使用ビットマップを提供する：
マイクロプロセッサに対して状態情報を提供する：
マイクロプロセッサに関する状態及びエラー情報を維持する：
共通RAMに対してダウンストリーム・コマンドを記憶し、そのコマンドがケーブル・モデムを意図したものであることが確認された後に限って処理されるようにする。
【０２３１】
ダウンストリーム・ペイロード装置
ダウンストリーム・ペイロード装置807は、状態マシンによる制御を受けて、フロントエンド・シリアライザ803からRAM309にダウンストリーム・ペイロード・データ・パケットを送信するための装置である。DPD807は、バッファ上部(PTOB)、バッファ底部(PBOB)、読み取り及び書き込みポインタといった内部レジスタを介してマイクロプロセッサによって制御される。DPD807は、ダウンストリーム制御装置805に関して上述した技法を利用して、それ自身のバッファを管理する。
【０２３２】
ダウンストリーム・ペイロード装置807は、２つのラインpl_datライン及びplseラインを介してフロントエンド・シリアライザ803に接続される。pl_datラインは、ペイロード・データを含むシリアル・データ・ストリームである。pl_datライン上のデータ・ストリームは、plseライン上の１パルス／ビットを利用して、DPD807内にシフトされる。
【０２３３】
マイクロプロセッサ302は、内部レジスタ・フラグを設定することによって、DPD807に「青信号」を与える。DPD807に青信号を与えることによって、マイクロプロセッサ302は、DPD807に対して、DPD807に関するバッファ・レジスタ（PTOB、PBOB、PRP、及びPWP）が設定されており、DPD807がRAMへのデータ送信を開始できることを示す。
【０２３４】
ダウンストリーム・ペイロード装置807は次に、同期フラグに関するpl_datデータ・ストリームをチェックする。ペイロード・データ・パケットは、図８に示すフレーム・フォーマットを厳守している。ペイロード・フレームにおける第１のフィールド751は、ビット・パターン「01111110」（２つの０に挟まれた６つの１）を備えた１バイトの同期フラグである。ペイロード・チャネル上で送信すべきデータがない場合、SCS101は、連続して一連の同期フラグを送信する。従って、DPD807は、同期フラグが後続する同期フラグを受信した場合には、真のペイロード・データを受信していないことが分かる。
【０２３５】
DPD807は、真のペイロード・データ・パケットを検出すると、BAPC825を使用して、RAM309へのデータ・フレームのコピーを開始する。DPD807は、２つのポインタ、即ち、１次ポインタPPと２次ポインタSPをRAM309内に維持する。
【０２３６】
ペイロード・データ・パケットの第２のフィールドは、モデムMACアドレス753である。このアドレス753は、マルチキャスト・アドレスであってもよい。このアドレスがマルチキャスト・アドレスであれば、それはCM113が加入するマルチキャスト・アドレスに関してCM113に記憶されているハッシュ値の１つに一致する。DPD807は、DPD807内部の弾性バッファに対するパケットの書き込みと並行して、MACアドレスのハッシュ計算を行う。DPD807は、SPによって指示されるパケット・ヘッダ1405内のRAM309の位置にそのハッシュ値を書き込む。DPD807は、MACアドレスの確認が済むと、弾性バッファからRAM309へのペイロード・データの書き込みを開始する。
【０２３７】
DPD807は、pl_datデータ・ストリームを受信する内部先読みシフト・レジスタも含んでいる。DPD807は、pl_datデータ・ストリームから、一度に数バイトのデータを保持する先読みシフト・レジスタにデータを送信する。先読みシフト・レジスタに数バイトのデータを常に記憶しておくことによって、DPD807は、弾性バッファへの、及び最終的には、RAM309への書き込み前に、「先読み」を行うことができる。
【０２３８】
先読みは、パケットの長さを決めるのに有効である。ペイロード・データ・パケットの長さは不定とすることも可能である。メッセージ・フィールド763を受信している間、DPD807は、受信したバイト数をカウントし続ける。パケットの終わりを受信するまで、メッセージ長は分からない。先読みすることによって、DPD807は、次のパケットの同期フラグを検出でき、それによってその長さを知ることができる。DPDは、２次ポインタを用いることによって、このパケット長を記憶するが、同時に、１次ポインタを用いて、次のパケットを記憶することも可能である。
【０２３９】
また、同期フラグが検出されると、DPDは、CRCフィールド765が受信されたばかりであることを知る。DPDは次に、巡回冗長検査を比較して、パケットが正しく受信されたかを判定する。CRC検査が失敗すると、DPDは、マイクロプロセッサ302に対してエラー・フラグを設定する。
【０２４０】
アップストリーム装置
アップストリーム装置UD809は、状態マシンによる制御を受けて、アップストリーム・チャネル上でパケットを送信する働きをする装置である。アップストリーム装置809は、送信器バックエンド821に接続されている。データ・ビットは、送信器バックエンド821によってビット要求パルスがUD809に提供されると、一度に１ビットずつ、UD809から送信器バックエンド821内にクロック・アウトされる。
【０２４１】
マイクロプロセッサ302は、対応する「青信号」レジスタを設定し、UD809に関するMOAP827のレジスタ内にRAM309のパケット・アドレスを配置することによって、UD809のアクティビティを起動する。UD809は、３つのモード、即ち、「予約による送信」、「非競合チャネル上での送信」、及び「競合チャネル上での送信」のうち１つのモードで送信することができる。それぞれに対応する「青信号」レジスタが存在する。
【０２４２】
図25及び26は、アップストリーム装置809に関する状態マシンの「バブル図」である。状態1701は、アイドル状態であり、UD809は、３つのモード、即ち、「予約による送信」、「非競合チャネル上での送信」、及び「競合チャネル上での送信」のうち１つのモードでメッセージを送信する命令を待つ。これらのそれぞれについて、状態マシンの分岐がある。
【０２４３】
「予約による送信」の分岐は、状態1703において、CM113が送信している特定のアップストリーム・チャネルが利用可能になるのを待つことから始まる。どのタイム・スロットについても制御チャネル内のフレームには、チャネル／スロット状態サブフレーム・タイプ・フレームが含まれる。そのフレームは、チャネル占有ビットマップを含んでいる（表１参照）。チャネル占有ビットマップは、DCD805からUD809に送信される。UD805は、次のスロットにおいてそのチャネルが空いていることを検出すると、状態1705において、次のスロットが始まるのを待つ状態に移行する。
【０２４４】
UD809は状態1705で、DCD805からのスロット・パルスによって指示される、次のスロットを検出すると、状態1707で、送信器バックエンド821との対話によるデータ送信に進み、その送信が終了するのを待ち、状態1709で、SCS101からの肯定応答を待つ。その肯定応答はやはり、制御チャネル上で受信され、DCD805からUD809に送信される。
【０２４５】
UD809は、肯定応答をどれだけの時間まで待つかに関する制限が設定されている。メッセージの送信と肯定応答の受信との間における予測される待ち時間は、CM113とSCS101との間の距離の関数である。インストール時には、その待ち時間は未知である。従って、CM113が初めてパケットの送信を試みる時には、１ミリ秒間待つが、SCS101にとっては、データ・パケットの受信が成功したことを肯定応答するには十分すぎるほどの時間である。CM113は、最初の肯定応答を受信すると、EEPROMにそれを記憶し、同時に、その待ち時間を内部レジスタに記憶する。後続の送信に関して、UD809は、この既知の予測待ち時間の間だけ待機する。
【０２４６】
UD809は、時間限界内に肯定応答を受信しなければ、状態1711において、送信を再試行するか又は、中断する。一定数の再試行が許容されるが、これはプログラム可能なパラメータである。UD809は、その限界を超えなければ、まず、状態1714において、別の衝突を回避するために待機し、次に、状態1707において、再送を行う。
【０２４７】
UD809は、その再試行に関して上限に達した場合に中断し、状態1713において、完了フラグを設定し、マイクロプロセッサ302に対して、処理が終了し、別の命令を待っていることを示す。UD809はまた、エラー・フラグを設定して、送信の失敗を示す。そうすることによって、マイクロプロセッサは、例えば、アップストリーム・チャネルにおける変更を開始したり、PC115にエラー報告を送るといった、適切な動作をとることが可能になる。
【０２４８】
「予約による送信」の分岐において肯定応答を受信した場合、この肯定応答によって、待つべきタイム・スロットの数が示される。状態1715において、UD809は、その多くのスロット分だけ待ち、状態1717において、予約データ・パケットの送信を開始し（図示していない主送信状態マシンを呼び出すことによって）、状態1717においてその送信が終了するのを待ち、状態1719において、完了フラグを設定し、状態1701のアイドル状態に戻る。
【０２４９】
UD809の状態マシンの第２の分岐は、「競合するチャネル上の送信」の分岐である。第２の分岐は、ほんのわずかな相違があるが、本質的に第１の分岐の部分集合である。第１の分岐の状態に対応する第２の分岐の状態は、アポストロフィのついた同じ参照番号を用いて示されている。両者の相違点についてのみ解説する。
【０２５０】
状態1707'は、予約要求のないパケットが送信されるという点で、状態1707とは異なっている。状態1709'は、肯定応答を受信した際に、UD809が、状態1709'から状態1719'に直接遷移するという点で、状態1709とは異なっている。
【０２５１】
UD809に関する状態マシンの第３の分岐は、「競合のないチャネル上の送信」の分岐である。CM113は、合計で、MaxTUの長さを超える多くの不連続なデータ・パケットを送信しなければならないことが分かっている場合、このデータ・パケットの集合を送信するのに必要な全タイム・スロット数の予約をすることができる。そうすることによって、UD809の状態マシンの「予約による送信」の分岐を最初に実行することになる。それが終了すると、UD809は、「青信号」を低レベルにし、マイクロプロセッサ302が、UDに関するMOAPポインタをリセットできるようにする。それが済むと、マイクロプロセッサ302は、最初の予約に際してまだタイム・スロットが残っていることが分かるので、「競合のない送信」命令を発行する。UD809は、状態1719からアイドル状態1701に遷移するや否や、「競合のない送信」命令に気づいて、対応する分岐、即ち、状態1705''に遷移する。状態1705''は、状態1705と同様である。スロット・パルスを受信すると、UD809は、状態1717"においてデータ・パケットを送出するが、肯定応答を待つことはない。データ・パケットの送信が完了すると、UD809は、状態1719''において完了フラグを設定する。
【０２５２】
暗号装置
暗号装置811は、MOAP827、バス調停及び優先順位回路825に接続され、及び暗号チップ・インタフェイス813を介して暗号チップ311に接続された、状態マシンによる制御を受ける装置である。暗号装置811は、BAPC825を介してRAM309からデータ・パケットを検索し、これらを（適宜）暗号化または暗号解読のため、暗号チップ311に対して（CCI813を介した）経路付けを行い、暗号チップ311から処理済みのデータを受信して、結果得られた暗号化／暗号解読データをRAM309に戻して記憶する。
【０２５３】
図27は、暗号装置811を制御する状態マシンの「バブル図」である。第１の状態、状態1801において、暗号装置811はアイドル状態にあり、マイクロプロセッサ302からの青信号を待つ。マイクロプロセッサは、例えば、PC115において実行されるエンドユーザ・プログラムの指示によって、または、Ｅビット755の指示に従って、データ・パケットの暗号化または暗号解読が必要であることを検出すると、暗号装置811のMOAP827ポインタをセットアップして、RAM309内のデータ・パケットを指示する。MOAP827のレジスタ２は、そのパケットに含まれている８バイトのデータ・ブロックの数を表した、パケット・ヘッダ内の反復カウント・ワード1407を指示し、MOAP827のレジスタ３は、暗号化または暗号解読すべきデータ・ブロックの始めを指示する。
【０２５４】
暗号装置811は、マイクロプロセッサ302が暗号装置811に対応するチェック・レジスタ1401を設定することによって示される青信号を受信すると、状態1803において、暗号チップ311の初期設定手順を開始する。暗号装置は、初期設定の完了を待たない。暗号装置は次に、状態1805において、MOAP827のポインタを暗号装置811の内部レジスタにコピーし、状態1807において、暗号チップ311の初期設定が完了するのを待つ。暗号チップ311の初期設定が済むと、暗号装置811は、状態1809において、RAMからの反復カウントを受信し、状態1811において、その１次ポインタを移動させて、データ・パケットの始めを指示する。
【０２５５】
良好な暗号化を行うため、一度に数ワードの暗号化が行われる。好適実施例では、暗号チップ311は、一度に４ワード（８バイト）のデータ・ブロックの処理を行う。従って、状態1813において、暗号装置811は、RAM309のバースト・モード・アクセスのために、そのアドレス・レジスタ1203とカウンタ・レジスタ1201をセットアップし、状態1815において、暗号装置811は、BAPC825を介してRAM309に４回アクセスし、暗号チップ311に対して、パケットからの４つのデータ・ワードを経路指定する。
【０２５６】
状態1817において、暗号装置811は反復カウントをデクリメントする。状態1819において、暗号装置811は、暗号チップ311での暗号化／暗号解読の終了を待つ。次に、暗号装置811は、暗号チップ311からRAM309へのデータ・ブロックの送信のために配置を行い、状態1821において、暗号チップ311が、RAM309に４つの暗号化／暗号解読ワードを戻して終了するのを待つ。
【０２５７】
RAM309に暗号化／暗号解読データを書き戻すと、反復カウントが０より大きい場合、暗号装置811は、状態1813に戻ることによって、次の４ワード・ブロックに同じ操作を繰り返す。反復カウントが０の場合、状態1825で暗号装置は完了フラグを設定し、リターンしてマイクロプロセッサ302からの次の青信号フラグを待つ。
【０２５８】
LAN-RAM
LAN・RAM装置(LTR)815は、MOAP827、バス調停及び優先順位回路825に接続され、LANインタフェイスを介してLANチップ307に接続されている。LTR815は、LANチップ307からRAM309へのデータ・パケットの送信を行う。LANチップ307は、送信データを有する場合、LANインタフェイス817に信号を送り、LANインタフェイス817は、内部レジスタを介してマイクロプロセッサ302にこれを再送する。マイクロプロセッサ302は、MOAP827のポインタを設定して、LTR815がパケットを記憶するRAM309内の位置を指示し、LTR815がLANチップ307からRAM309へのデータ送信を開始するように「青信号」をオンにする。
【０２５９】
マイクロプロセッサ302から「青信号」を受信すると、LTR815は、そのMOAP827のポインタ及びBAPC825を利用して、パケットをRAM309内に送信する。それが完了すると、LTR815は、その完了フラグを送信するが、これは、例えば、直接送信の場合、アップストリーム装置809といった他の装置の１つに対して、又は、パケットが暗号化を要する場合であれば、暗号装置811に対して、パケットの制御を移行することをマイクロプロセッサ302に知らせる信号である。
【０２６０】
RAM-LAN
RAM-LAN装置(RTL)819は、MOAP827、バス調停及び優先順位回路825に接続され、及びLANインタフェイス817を介してLANチップ307に接続される。RTL819は、RAM309からLANチップ307へのデータ・パケットの送信を行う。RAM309内におけるパケットがLANチップ307に送信できる状態である場合（即ち、そのパケットが、ダウンストリーム装置807によって受信され、暗号装置811によって暗号解読されている場合）、マイクロプロセッサ302は、MOAP827のポインタを設定して、RTL819がパケットの検索を行うRAM309内の位置を示し、RTL819がLANチップ307へのデータ送信を開始するように「青信号」をオンにする。
【０２６１】
マイクロプロセッサ302から「青信号」を受信すると、RTL819は、そのMOAP827ポインタ及びBAPC825を利用して、パケットをLANチップ307に送信する。それが完了すると、RTL819は、その完了フラグを送信する。
【０２６２】
インタフェイス装置
図３及び図10ないし図13に示すように、制御回路301は、例えば、チューナ303、送信器305、暗号チップ311、LANチップ307、及びRAMといった幾つかの外部装置と対話する。これらの装置はそれぞれ、タイミング要件が異なり、I/O構成も異なる。しかし、マイクロプロセッサ302及びバス調停及び優先順位回路825は、これらの他の構成要素に対して一様なインタフェイスを備えている。例えば、これらの外部構成要素とBAPC825との間の対話を制御する装置間におけるインタフェイス及びタイミングが、図14及び図15に一般的な形態で示されている。
【０２６３】
BAPC825と装置との間におけるインタフェイスの均一性を実現するため、各装置は、インタフェイス装置を備えている。暗号装置811のインタフェイス装置は、暗号チップ・インタフェイス813であり、LAN-RAM装置815及びRAM-LAN装置819のインタフェイス装置は、LANインタフェイス817である。
【０２６４】
各装置毎に、対応するインタフェイス装置は、薄いハードウェア変換層から構成される。インタフェイス装置は、２つの側部を備えている。図14には、バス調停及び優先順位回路825との通信を行う第１の側部が示されている。インタフェイス装置の第２の側部は、例えば、LANチップのような外部構成要素とのインタフェイスを行うセクションと、マイクロプロセッサ302とのインタフェイスを行うもう１つのセクションを含む。
【０２６５】
各インタフェイス装置は、インタフェイス装置の２つの側部の間におけるタイミングの差を管理する状態マシンを含んでいる。インタフェイス装置は、その内部状態マシンによる指示に従い、それが接続されている特定の外部構成要素の必要に応じた、適切なハンドシェイク変換を行って、インタフェイス装置の装置側（例えば、LTR815）から構成要素側（例えば、LANチップ307）へデータを送信する。例えば、暗号チップ311の場合、アドレスが、送信される各ワード毎に生成される。
【０２６６】
REQが発行されると、バス調停及び優先順位回路825は、その要求に対して常に準備が整っている装置であると仮定する。従って、インタフェイス装置内の状態マシンは、読み取り及び書き込みトランザクションを受け入れる準備が整っていれば、RD_ready及びWT_ready信号を設定しなければならない。バス調停及び優先順位回路825の状態マシンは、インタフェイス装置からの準備完了信号を認識すると、REQ状態に入る。
【０２６７】
これらの薄いハードウェア変換層を追加することによって、制御回路301の設計に柔軟性が提供される。バス調停及び優先順位回路825は、各周辺設計の仕様を考慮せずに設計される。従って、異なる外部構成要素を備える代替実施例は、互いに異なる可能性がある。こうした相違には、対応するインタフェイス装置を変更することによって適応することが可能である。
【０２６８】
結論
本発明の典型的な好適実施例について解説を行った。これらの実施例には、多くの代替案が考えられる。例えば、図２には、共用バス・ベースのアーキテクチャを備える信号変換システム101が示され、図10ないし13には共用メモリ309上で動作する、多くの並列状態マシンの制御を受ける装置を備えたケーブル・モデム113が示されている。SCS101の第１の代替実施例は、ケーブル・モデム113の設計を組み込んでいる。CM113がQPSK送信器305を使用する第１の代替SCSの場合、代替SCSは64-QAM送信器を使用し、CM113が64-QAM受信器を使用している場合には、代替SCSはQPSK受信器を使用し、代替SCSが、LANチップ307ではなく、ルータ・インタフェイスを使用する。SCSの第１の代替実施例では、LTR815及びRTL819は、RAMとルータ・インタフェイスとの間のインタフェイスに置き換えられる。
【０２６９】
当業者には明らかなように、本発明に対して多くの修正及び変更を加えることが可能であり、例示され、解説された構成及び動作そのままに本発明を限定することは望ましくない。従って、適合する修正及び同等物は全て、本発明の範囲内に含まれるものと考えられる。
【０２７０】
以下に本発明の実施態様を列挙する。
１．  根ノード、及び少なくとも１つの葉ノードを有するデータ送信ケーブル、
前記根ノードに接続された信号変換システム(SCS)、及び
それぞれが別個の葉ノードに接続されている、少なくとも１つのクライアント・ステーションを含む高速データ通信用のコンピュータ・ネットワークであって、
前記信号変換システム(SCS)が、
第１の周波数帯で前記ケーブル上にダウンストリーム・データを送信する送
信機、及び
第２の周波数帯で、前記クライアント・ステーションからのデータを受信す
る受信機を備え、
前記ダウンストリーム・データが同期信号、及び肯定応答信号を含み、更に、
各クライアント・ステーションが、
前記第１の周波数帯でデータを受信する受信機、及び
前記第１の周波数帯で受信した同期信号に従って第２の周波数帯にデータを送信する送信機を備えることを特徴とする、前記コンピュータ・ネットワーク。
２．  ネットワーク上でデータの双方向通信を制御する方法が、
(a)第１の周波数帯で、同期情報を有する制御信号を信号変換システム(SCS)からダウンストリーム送信するステップ、
(b)少なくとも１つのクライアント・ステーションで、前記制御信号を受信するステップ、
(c)第２の周波数帯で、前記同期信号に関してタイミングがとられる、前記クライアント・ステーションから前記SCSへのアップストリーム送信を行うステップ、及び
(d)前記第１の周波数帯で、前記アップストリーム送信の前記SCSによる良好な受信の肯定応答を行うステップを含むことを特徴とする、前記制御方法。
３．  根ノード、及び少なくとも１つの葉ノードを有するデータ送信ケーブル、
前記根ノードに接続された信号変換システム(SCS)、及び
それぞれが別個の葉ノードに接続されている、少なくとも１つのクライアント・ステーションを含むことを特徴とする、高速データ通信用のコンピュータ・ネットワークであって、
各クライアント・ステーションが、
前記第１の周波数帯でデータを受信する受信機、及び
後続の送信のための、第２の周波数帯上の予約スロットに対する要求を含むアップストリーム・データを前記第２の周波数帯に送信する送信機を備え、更に、
前記信号変換システム(SCS)が、
要求された予約スロットの開始時間を決定するよう動作可能なスケジューラ、
ダウンストリーム・データを、前記ケーブル上に第１の周波数帯で送信する送信機であって、前記ダウンストリーム・データが前記アップストリーム・データの良好な受信の肯定応答を含み、前記肯定応答が要求された前記予約スロットの開始時間を示す遅延時間を含む前記送信機、及び
前記クライアント・ステーションから第２の周波数帯でデータを受信する受信機を含み、
前記ダウンストリーム・データが同期信号、及び肯定応答信号を含むことを特徴とする、前記コンピュータ・ネットワーク。
４．  高速データ通信ネットワークを動作させる方法が、
(a)予約された通信スロットに関する要求を含むデータを、クライアント・ステーションから信号変換システム(SCS)に送信するステップ、
(b)前記予約された通信スロットをスケジューリングするステップ、及び
(c)前記要求が良好に受信されたことと、前記予約された通信スロットに関する開始時間を示す肯定応答を、前記SCSから前記クライアント・ステーションに送信するステップを含むことを特徴とする、前記方法。
【図面の簡単な説明】
【０２７１】
【図１】ヘッド・エンドに配置された信号変換システム(SCS)と加入者位置に配置されたクライアント・ステーションとの間におけるデータ通信を提供する、本発明に従って適用される近隣のケーブルTVシステムを示す図である。
【図２】本発明による信号変換システム(SCS)の概略図である。
【図３】図１のケーブルTVシステムに従って用いられるケーブル・モデムの高レベル概略図である。
【図４】ケーブルTVのケーブルに関する周波数スペクトルの一部に関する振幅対周波数の一例を示すグラフである。
【図５】ダウンストリーム・チャネル及びアップストリーム・チャネルにおける典型的な動作を示す図である。
【図６】ダウンストリーム制御チャネルに関する共通フレーム・フォーマットのブロック図である。
【図７】制御チャネル上で送信されるダウンストリーム肯定応答フレームのフォーマットに関するブロック図である。
【図８】SCSからケーブル・モデムに送信されるダウンストリーム・ペイロード・データ・フレームのブロック図である。
【図９】アップストリーム・チャネル・フレームに関する共通フォーマットのブロック図である。
【図１０】本発明のケーブル・モデムを更に詳細に示す図の構成を示す図である。
【図１１】本発明のケーブル・モデムを更に詳細に示す図である。
【図１２】本発明のケーブル・モデムを更に詳細に示す図である。
【図１３】本発明のケーブル・モデムを更に詳細に示す図である。
【図１４】バス調停、及び優先順位回路(BAPC)に装置を接続するための一般的接続方式に関するブロック図である。
【図１５】状態マシンに制御された装置とBAPCとの間におけるデータ送信の一例を示すタイミング図である。
【図１６】バス調停、及び優先順位回路(BAPC)の概略図の構成を示す図である。
【図１７】バス調停、及び優先順位回路(BAPC)の概略図である。
【図１８】バス調停、及び優先順位回路(BAPC)の概略図である。
【図１９】装置のセクション、即ちACK信号を受信するセクションに関する概略図であり、バースト・モードにおける装置の動作を示す図である。
【図２０】図16ないし18のバス調停、及び優先順位回路によって処理される典型的な１組のトランザクションを示すタイミング図である。
【図２１】図10ないし13に示すケーブル・モデムの制御回路に関する全ポインタのマスタ(MOAP)構造の高レベル概略図である。
【図２２】RAMに記憶されている、データ・パケットの一般フォーマットに関する概略図である。
【図２３】第１及び第２のカテゴリの状態マシンの一般形式に関する「バブル図」である。
【図２４】本発明によるケーブル・モデムの制御回路におけるコンポーネント装置のアドレス・レジスタの一般化されたデータ経路1601に関する概略図である。
【図２５】アップストリーム装置を制御する状態マシンの「バブル図」である。
【図２６】アップストリーム装置を制御する状態マシンの「バブル図」である。
【図２７】暗号装置を制御する状態マシンの「バブル図」である。
【符号の説明】
【０２７２】
100  ケーブルTVシステム
101  信号変換システム(SCS)
103  ヘッド・エンド
105  クライアント・ステーション
107  光ファイバ・ケーブル
109  ファイバ・ノード
111  同軸ケーブル
113  ケーブル・モデム
115  コンピュータ
117  ルータ
201  ルータ・インタフェイス
203  内部バス
205  送信器
207  受信器
209  CPU
211  ROM
213  RAM
217  I/O装置
301  制御回路
302  マイクロプロセッサ
303  チューナ
307  LANトランシーバ回路
309  RAM
801  フロントエンド・プリプロセッサ(FEP)
803  フロントエンド・シリアライザ
805  ダウンストリーム制御装置(DCD)
807  ダウンストリーム・ペイロード装置
809  アップストリーム装置(UD)
811  暗号装置(CD)
813  暗号チップ・インタフェイス
815  LAN-RAM装置(LTR)
817  LANインタフェイス(LANI)
819  RAM-LAN装置(RTL)
821  送信器バックエンド(TB)
823  送信器インタフェイス(TRI)
824  チューナ・インタフェイス
825  バス調停及び優先順位回路(BAPC)
829  マイクロプロセッサ・インタフェイス(MI)
831  読み取りバス
833  書き込みバス
1101  優先順位エンコーダ回路
1109、1117、1119、1123、1129  パイプライン・レジスタ
1111  読み取りレジスタ
1113  装置選択回路
1115、1125  スイッチ
1121  マルチプレクサ
1127  RAMバス
1130  ゲート
1203  内部アドレス・レジスタ
1401  チェック・レジスタ
1410、1607  ベース・レジスタ
1413  オフセット・レジスタ
1603  １次ポインタ
1605  ２次ポインタ
1609  加算器／減算器
【図１】
2004274778.tif 000005
【図２】
2004274778.tif 000006
【図３】
2004274778.tif 000007
【図４】
2004274778.tif 000008
【図５】
2004274778.tif 000009
【図６】
2004274778.tif 000010
【図７】
2004274778.tif 000011
【図８】
2004274778.tif 000012
【図９】
2004274778.tif 000013
【図１０】
2004274778.tif 000014
【図１１】
2004274778.tif 000015
【図１２】
2004274778.tif 000016
【図１３】
2004274778.tif 000017
【図１４】
2004274778.tif 000018
【図１５】
2004274778.tif 000019
【図１６】
2004274778.tif 000020
【図１７】
2004274778.tif 000021
【図１８】
2004274778.tif 000022
【図１９】
2004274778.tif 000023
【図２０】
2004274778.tif 000024
【図２１】
2004274778.tif 000025
【図２２】
2004274778.tif 000026
【図２３】
2004274778.tif 000027
【図２４】
2004274778.tif 000028
【図２５】
2004274778.tif 000029
【図２６】
2004274778.tif 000030
【図２７】
2004274778.tif 000031