(57)【特許請求の範囲】
【請求項１】
制御ステーションと複数の加入者ステーションとの間で通信を行うことを可能にする方法であって、
前記制御ステーションと前記複数の加入者ステーションとの間の通信のために少なくとも２つの通信チャネルを準備するステップであって、その少なくとも２つの通信チャネルが、前記制御ステーションから前記複数の加入者ステーションへ制御情報を連続して伝送すると共に、前記制御ステーションから前記複数の加入者ステーションへ情報を伝送するダウンストリーム通信チャネルと、各加入者ステーションから前記制御ステーションへ情報を伝送するアップストリーム通信チャネルとを含む、ステップと、
前記アップストリーム通信チャネルの時間領域を複数のスロットに分割するステップと、
前記複数の加入者ステーションのそれぞれが、前記複数のスロットの各々について、そのスロットが競合スロットか、または予約スロットであるかを識別できるように、前記ダウンストリーム通信チャネルの連続して伝送されている制御情報を用いて、各スロットを競合スロット、または予約スロットとして特徴付けるデータを伝達するステップと、
前記複数の加入者ステーションが競合スロットで前記制御ステーションへ情報を送信することを可能とするステップと、
前記制御ステーションへ情報を送信する競合スロットにおいて予約スロットの要求を送信するステップと、及び
前記制御ステーションへ情報を送信する競合スロットにおいて送信された情報パケットの送信が成功したことに関する肯定応答を、前記ダウンストリーム通信チャネルの連続して伝送されている制御情報を介して伝達するステップとを含み、各肯定応答は、予約スロットを要求している加入者ステーションが予約スロットでの送信前に肯定応答の受信からどれぐらいの数のスロットを待たなければいけないかを示すことを含む、方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信に関するものであり、より詳細には、ケーブル上の双方向データ通信に関する。
【０００２】
【従来の技術】
コンピュータ・ネットワークは、以前は学界、大規模な研究共同体、企業、及び政府機関の領分であった。時が経つにつれて、これらのネットワークは、そのドメイン内に、より多くのコンピュータ・ユーザ、及び利用を含む展開を見せてきた。更に、ネットワークは、広範囲にわたって接続されて（「相互接続されて」）、インターネットとして知られる世界的規模のコンピュータ・ネットワークを形成するようになり、新しいタイプのコンピュータ・ネットワークが利用可能になってきた。従って、コンピュータは、あるタイプのコンピュータ・ネットワークに接続される可能性が、接続されない場合よりも高くなっている。
【０００３】
こうしたコンピュータの接続が絶えず増大し続けた結果として、「オンライン」で利用可能な情報量が膨大なものになってきている。例えば１９９５年８月現在、インターネット上で利用可能な情報の人気のある探索ツールの１つ（Ｌｙｃｏｓ，ｈｔｔｐ：／／ｗｗｗ．ｌｙｃｏｓ．ｃｏｍ）には、５６０万のウェブ・ページのインデックスが含まれている。同様に、Ａｍｅｒｉｃａ  Ｏｎｌｉｎｅ、Ｃｏｍｐｕｓｅｒｖｅ、及びＰｒｏｄｉｇｙといったオンライン・サービスは、その特定のサービスを通じて利用可能な情報量で競争している。
【０００４】
情報の配布はコンピュータ・ネットワークの重要な用途であるが、コンピュータの接続性が他の多くの貴重なサービスを提供する。その一例は電子メールである。もう１つは電子商取引である。
【０００５】
こうした全ての理由から、過去においては、確かにネットワークまたはオンライン・サービスとの接続によって、競争上の優位性を得ることができたが、最近のビジネスにおいて、及び教育のためには、それが必須のものになっているとの一般認識に至っている。
【０００６】
オンライン・サービス及びインターネットのユーザの多くは、モデム及び一般的な電話回線を介してこれらのネットワークと接続している。これは、幾つかの用途には十分であるが、その他の用途では望ましくない場合もある。ユーザとユーザが接続されるコンピュータとの間に専用接続を提供することは、利点を有する。それは、ほとんどの家庭及びオフィスが既に接続されている接続回線、即ち、電話回線を利用している。ユーザに専用接続を提供することによって、ネットワークに同時にアクセスしようと試みるユーザ間における競合を解決する必要がなくなる。こうした競合は全て、複数のユーザが接続されているコンピュータにおいて解決される。（もちろん、そのコンピュータが共用回線で他のコンピュータに接続されている場合は、これらのコンピュータ間における競合を解決しなければならない）。
【０００７】
しかし、電話回線は、決してコンピュータを接続する理想的な手段ではない。第１に、明らかな欠点として、家庭で使用するコンピュータの環境において、家庭に設けられている電話回線は１本だけしかない可能性がある。従って、拡張的なオンライン使用が、他の用途に必要になる可能性のあるその電話回線を共用することになる。また、電話回線に関する技術的な問題点もある。これらの回線は、伝送帯域幅が３．２ＫＨｚに制限される、音声通信を意図したものである。この結果、電話回線を介したデジタル通信は、ビット転送速度が比較的低くなる。一般に、パーソナル・コンピュータと電話回線を接続する最近のモデムは、２８．８ｋｂｐｓに制限される。
【０００８】
従って、ホーム・コンピュータとコンピュータ・ネットワークを接続するための代替技術を提供することが望ましい。
【０００９】
ホーム・コンピュータ及び小規模オフィス・コンピュータとコンピュータ・ネットワークとの接続に関して帯域幅を拡大する技術のうち１つのタイプは、ＩＳＤＮ回線である。これらは、コンピュータ間のデジタル通信を意図した専用回線である。ＩＳＤＮは、電話回線よりはるかに高い帯域幅を備えている。しかし、大部分の家庭、及び小規模オフィスにはＩＳＤＮが設けられておらず、ＩＳＤＮを取り付ける費用を負担するつもりのあるところはほとんどない。
【００１０】
ほとんどの家庭、及び小規模オフィスへの道を開いた技術は、ケーブルＴＶネットワークである。各家庭に専用回線を設ける電話ネットワークとは異なり、ケーブルＴＶシステムでは、近隣の全ての加入者がケーブルを共用する。しかし、電話回線に比べると、大部分のケーブルＴＶシステムに用いられているケーブルにおいて利用可能な帯域幅は、はるかに広い。
【００１１】
これらの理由から、既存のケーブルＴＶシステムを介して、ホーム／小規模オフィス・コンピュータとコンピュータ・ネットワークとの間で双方向データ通信を提供することが望ましい。
【００１２】
ある近隣地域における全てのケーブルＴＶ加入者が、１つのケーブルを共用しているので、こうしたネットワークに接続された複数のコンピュータが、そのケーブル上で同時にデータを伝送する可能性がある。こうした同時伝送は、誤りデータを生じることになり、こうした競合問題を回避するか又は、解決するためのメカニズムがない限り、送信者のいかなるメッセージも意図した受信者によって良好に受信されることはない。
【００１３】
共用コンピュータ・ネットワークにおける競合を回避するという問題は、様々な方法で取り扱われてきた。初期アプローチの１つに、ＡＬＯＨＡシステムとして知られるものがある。ＡＬＯＨＡシステムは、ハワイ大学で開発されたものであり、当初は、主としてラジオ放送を利用した通信に用いられた。共用ケーブル上の通信も、ケーブルに接続された全ての局がそのケーブルを介して伝送される全ての信号を受信するという点で、放送システムであると言える。
【００１４】
ＡＬＯＨＡの基本原理は、共通チャネルを共用する全てのユーザが、任意の所定の時点でメッセージを放送できるようにすることである。送信ユーザは次に、そのチャネルで自身のメッセージを聞く。そのメッセージが受信されない（それを送ったユーザによって）場合、ユーザはそのメッセージが何らかの理由で無効にされたことを知ることになる。そのメッセージは、同時に送信された別のユーザによる別のメッセージによって無効にされた可能性が極めて高い。共通チャネルに関するこの競合を解決するため、両ユーザとも、メッセージの再送前に、ランダムな時間だけ「待機（ｂａｃｋ−ｏｆｆ）」を行う。例えば、２人のユーザが時間ｔにメッセージを送ろうとすると、それぞれのメッセージが無効になる。ランダムな時間だけ待機することによって、第１のユーザがメッセージをｔ＋ｒ１で再送し、第２のユーザがメッセージをｔ＋ｒ２で再送する。ｒ１とｒ２が異なる場合（本当にランダムに選択されるなら、通常はそうなるのが普通である）、その２回目の送信では、２つのメッセージ間に競合が生じることはないはずである。
【００１５】
ＡＬＯＨＡの欠点は、競合の確率が極めて高いということである。ＡＬＯＨＡのチャネル効率は、１８％にすぎない。
【００１６】
ＡＬＯＨＡに対する１つ改良が、スロット化ＡＬＯＨＡである。スロット化ＡＬＯＨＡの場合、時間が指定された間隔に分割され、メッセージは、これらの間隔においてしか送信できない、即ち、メッセージは間隔の境界にまたがることはできない。スロット化ＡＬＯＨＡのチャネル効率は、３８％である。
【００１７】
ＡＬＯＨＡ、スロット化ＡＬＯＨＡ、及びチャネル効率の導出に関する議論については、Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ出版の、Ｔａｎｅｎｂａｕｍ，ＡｎｄｒｅｗによるＣｏｍｐｕｔｅｒ  Ｎｅｔｗｏｒｋ第２版、１２１ないし１２４頁を参照されたい。
【００１８】
ケーブルＴＶシステムにおけるデータ通信の現在の解決策には、マサチューセッツ州ＡｎｄｏｖｅｒのＺｅｎｉｔｈ  ＣｏｒｐｏｒａｔｉｏｎのＬＡＮＭＣＮ−ＡＴ、及びＬＡＮｃｉｔｙ  ＣｏｒｐｏｒａｔｉｏｎのＬＣＰがある。これらの製品は、共通の設計原理を共用している。両方とも、アップストリーム・データ、即ち、エンド・ユーザからケーブル・システムのヘッド・エンドに送信されるデータが、放送スペクトルの低帯域（ダウンストリーム・データ専用の周波数帯域の下）を介して伝送される。このアップストリーム・データは、２つの方法のうちの一方で操作される。第１の選択肢は、スペクトルの高帯域に周波数変換することであり、第２の選択肢は、データを復調することである。操作されたデータはこの後、高帯域上で再送される。ヘッド・エンド・サイトのモデムを含む全てのモデムは、低帯域上で伝送を行う。伝送されるデータは、周波数変換されるか又は、復調される。従って、全てのモデムは高帯域上で受信を行う。
【００１９】
アップストリーム・データ、及びダウンストリーム・データは、同じ帯域幅で同じデータ転送速度を有している。実際、ヘッド・エンドにおけるモデムは、システム内の他の全てのモデムと同様に取り扱われるので、アップストリーム・データとダウンストリーム・データの区別がない。
【００２０】
ケーブルＴＶのケーブル上でのデジタル・データ通信に関するこのタイプの解決策には幾つか問題がある。第１に、ダウンストリーム帯域の伝送特性とアップストリーム帯域の伝送特性が異なっている。アップストリーム帯域（低帯域）は、ダウンストリーム帯域に比べてはるかにノイズが多い。両帯域において同じデータ転送速度を実現するには、ダウンストリーム帯域をアップストリーム帯域に適合させることになる。従って、この方法では、ダウンストリーム帯域のデータ転送速度に関する潜在能力を十分活かすことができない。
【００２１】
第２に、ほとんどの場合、アップストリーム・データは、遠隔サーバを意図したものであって、同位エンド・ユーザを意図したものではない。従って、ダウンストリーム帯域上のデータの再送は、ダウンストリーム帯域幅を浪費することになる。
【００２２】
従って、共用ケーブルを利用し、伝送ケーブルの利用可能帯域幅を十分に活用する、効率の高い高速データ通信システムを提供することが望ましい。
【００２３】
本発明の他の利点、及び特徴については、以下の詳細な説明に関連して明らかになる。
【００２４】
【発明が解決しようとする課題】
本発明の目的は、１つのケーブルによって接続されたコンピュータ・ネットワーク上の高速な双方向のビデオ、オーディオ、及びデータ通信を可能にすることである。
【００２５】
本発明のもう１つの目的は、ネットワーク内のクライアント・ステーションが信号変換システムと通信できるようにする予約システムを提供することにある。
【００２６】
本発明の更にもう１つの目的は、幾つかの装置が共用メモリに対して並列アクセスを行う、高速データ通信システムを提供することにある。
【００２７】
本発明の更にもう１つの目的は、クロック・サイクル毎の１回のメモリ・アクセスの平均スループットで、共用メモリに対する並列装置アクセスを可能にすることにある。
【００２８】
【課題を解決するための手段】
以上の及びその他の目的は、根ノード及び少なくとも１つの葉ノードを備えたデータ伝送ケーブルを具備する、高速データ通信用コンピュータ・ネットワークを提供することによって実現される。根ノードには、信号変換システム（ＳＣＳ）が接続され、葉ノードには、少なくとも１つのクライアント・ステーションが接続される。ＳＣＳは、第１の周波数帯域において、ダウンストリーム・データを前記ケーブル上に送出する送信器と、第２の周波数帯域において、前記クライアント・ステーションからデータを受信する受信器から構成され、前記ダウンストリーム・データは、同期信号と肯定応答信号を含む。各クライアント・ステーションは、前記第１の周波数帯域においてデータを受信する受信器と、前記第１の周波数帯域において受信した同期信号に基づいて、第２の周波数帯域においてデータを送信する送信器を備えている。
【００２９】
コンピュータ・ネットワークは、第１の周波数帯域上の同期情報を備える制御信号を、信号変換システム（ＳＣＳ）からダウンストリーム送信するステップと、クライアント・ステーションにおいて前記制御信号を受信するステップと、第２の周波数帯域において、前記クライアント・ステーションから前記ＳＣＳへのアップストリーム送信を行うステップで、前記送信が前記同期情報に関してタイミングがとられている前記ステップ、及び前記ＳＣＳが前記第１の周波数帯域において、前記アップストリーム送信を良好に受信したことに肯定応答を行うステップから構成される方法に従う。
【００３０】
クライアント・ステーションの送信パケットには、後続の送信に備えた、前記第２の周波数帯域における予約スロットの要求を含むことが可能であり、ＳＣＳは、要求された予約スロットの開始時間を決定する働きをするスケジューラを備えており、要求された予約スロットに関する開始時間を送信する。予約スロットを要求したクライアント・ステーションは、その開始時間まで、その送信の続行を延期する。
【００３１】
【発明の実施の形態】
図１には、本発明に従って、ヘッド・エンド１０３に配置された信号変換システム（ＳＣＳ）１０１と加入者位置に配置されたクライアント・ステーション１０５ａ〜１０５ｊとの間のデータ通信を提供するために適用された、近隣のケーブルＴＶシステム１００が示されている。各ＳＣＳ１０１は、遠隔サーバ・ステーションに、及び遠隔サーバ・ステーションからデータ・パケットを経路付けするパケット・ルータ１１７に接続されている。代替接続案では、例えば１０１’’のようなＳＣＳ１０１が、固定ビット転送速度サービス交換回路の回路交換装置１１９に対してローカル、又は遠隔インタフェイスを行う。後者は、電話ネットワークに対するデジタル化音声接続を提供するために用いることも可能である。
【００３２】
多くのケーブルＴＶシステムでは、約５００〜２０００人の加入者が、同じヘッド・エンド１０３につながっている。ヘッド・エンド１０３は、ファイバ・ノード１０９に接続された光ファイバ・ケーブル１０７ａ及び１０７ｂを介して様々な加入者位置１０５と通信を行う。ファイバ・ノード１０９は更に、同軸ケーブル１１１ａ及び１１１ｂを介して接続されている。ファイバ・ノード１０９は、光信号と電気信号との間で変換を行うためのメカニズムを含んでいる。ルータ１１７とＳＣＳ１０１との間の通信はデジタル形式である。しかし、ヘッド・エンド１０３と加入者位置との間の通信はアナログ形式である。
【００３３】
ＳＣＳ１０１は、ルータ１１７間におけるデジタル通信信号と、ケーブルＴＶシステムの光ファイバ、及び同軸ケーブル上に生じるアナログ通信信号の変換を行う。
【００３４】
各クライアント・ステーション１０５は、コンピュータ１１５に接続されたケーブル・モデム１１３を含む。代替実施例では、コンピュータ１１５の代わりに、ケーブル１１１を介したヘッド・エンド１０３とのデータ通信によって恩恵を受ける他の装置が用いられる。こうした代替例は、例えば、ビデオ・オン・デマンド・タイプのサービス、及び対話型テレビといった特定のケーブルＴＶの働きを要求するためのセット・トップ・ボックスを含む。
【００３５】
図２は、信号変換システム（ＳＣＳ）１０１のブロック図である。信号変換システム（ＳＣＳ）１０１は、ファイバ・ケーブル１０７ａ及び１０７ｂに接続されている。ＳＣＳ１０１は、送信器２０５を用いて、６４−ＱＡＭ（６４ビット直交振幅変調）または２５６−ＱＡＭ（２５６ビットＱＡＭ）送信フォーマットを利用したデータをファイバ・ケーブル１０７ａ上に送出する。ＳＣＳ１０１は、複数の受信器２０７を用いて、ファイバ・ケーブル１０７ｂ上の幾つかのチャネルのＱＰＳＫデータを受信する。送信器２０５及び受信器２０７は両方とも、ＳＣＳバス２０３に接続されている。
【００３６】
ＳＣＳ１０１は、ルータ１１７に接続されたルータ・インタフェイス２０１を含む。ルータ・インタフェイス２０１は、ルータ１１７に対して、例えば、インターネット・プロトコル（ＩＰ）・パケット、又はＡＴＭセルといったデジタル・データ・パケットの受信、及び送信を行う。ルータ・インタフェイス２０１は、内部バス２０３に接続され、ＳＣＳ１０１の他のコンポーネントに、及びコンポーネントからデータを送信する。
【００３７】
中央演算処理装置（ＣＰＵ）２０９は、ルータ・インタフェイス２０１の、６４−ＱＡＭ、ＱＰＳＫ、及びデジタル・パケット・フォーマット間のデータ変換を管理する。ＣＰＵ２０９は、バス２０３上のデータ・トラヒックも管理する。更に、ケーブル１０７ａ及び１０７ｂ上の送信及び受信データの大部分は、拡張処理及び拡張フォーマッティングを必要とする。ＣＰＵ２０９は、この処理とフォーマッティングの責務を果たす。ＣＰＵ２０９の動作を制御するための手順の多くが、バス２０３に接続されたＲＯＭ２１１に記憶されている。バス２０３には更に、処理及び再送中にデータを記憶するためのＲＡＭ２１３が接続されている。ＳＣＳ１０１、及びＣＰＵ２０９のようなそのコンポーネントの動作を制御するための他の手順が二次記憶装置２１３及び２１５に記憶され、両方ともＩ／Ｏ装置２１７を介してバス２０３に接続される。
【００３８】
多くの場合、ケーブル１０７ａ及び１０７ｂを介してＳＣＳに、及びＳＣＳから送信されるデータは、暗号化される。ＣＰＵ２０９は、データ暗号装置２１９を呼び出し、暗号化及び暗号解読タスクを実行する。好適実施例では、ＳＣＳは、暗号化にデータ暗号化標準ＤＥＳを使用する。
【００３９】
図３は、ケーブル１１１及びパーソナル・コンピュータ（ＰＣ）１１５に接続されたケーブル・モデム（ＣＭ）１１３の高レベル概略図である。ＣＭ１１３は、ケーブルからのデータ信号をチューナ３０３で受信し、送信器３０５によってデータ信号をケーブル上に送出する。好適実施例では、チューナ３０３は、６４−ＱＡＭ受信器であり、送信器は、ＱＰＳＫ送信器である。
【００４０】
高レベルの説明において、ＣＭ１１３は、ＰＣ１１５とケーブル１１１の間で送信される信号のフィルタリング、これらの信号の暗号化／暗号解読（必要に応じて）、データのバッファリング、及びケーブル上の送信のための通信プロトコルとモデム−ＰＣ間の送信のための通信プロトコルとの間の変換に責務を負っている。これらの及びその他の機能（後述のような）は、様々なコンポーネント回路によって達成される。ＣＭ１１３の中心部は制御回路３０１である。制御回路３０１は他のコンポーネント回路に接続されており、マイクロプロセッサ３０２の助けを借りて、タイミング、及び様々な他のコンポーネント回路間で共用する装置を制御する。
【００４１】
ＣＭ１１３とＰＣ１１５の間の通信は、ローカル・エリア・ネットワーク（ＬＡＮ）・トランシーバ回路３０７によって実施される。ＬＡＮ回路は制御回路３０１に接続される。好適実施例では、ＣＭ１１３とＰＣ１１５の間の特定のＩ／Ｏインタフェイスは１０−ｂａｓｅＴプロトコルを使用しているが、他のモデム−ＰＣ間プロトコルも許容可能な代替案である。代替実施例では、ヒューレット・パッカード社の１００ｂａｓｅＶＧプロトコルのような他のＬＡＮプロトコルを使用することが可能である。
【００４２】
ＰＣ１１５とケーブル１１１との間で送信される情報は、制御回路３０１に接続されたケーブル・モデム内のランダム・アクセス・メモリ３０９にバッファリングされる。後述するように、ＣＭ１１３とケーブル・システムとの間の通信は、他のクライアント・ステーション１０５によって送信されるメッセージと競合することになる。更に、競合は、予約システムを用いることによって回避される。競合処理、及び予約システムは、ＰＣ１１５に対して透過的である。従って、送信されるのを待っている間、メッセージはＲＡＭ３０９にバッファリングされる。更に、入力メッセージ、又は出力メッセージの追加処理が、それぞれ、ケーブル１１１、又はＰＣ１１５への再送前に、ＣＭ１１３によって要求される。こうした処理は、暗号化及び暗号解読を含む。暗号化／暗号解読は、制御回路３０１に接続された暗号回路３１１によって実行される。
【００４３】
ケーブル１１１を介した通信は、５ＭＨｚないし７５０ＭＨｚの周波数範囲にわたって周波数多重化技法を用いることによって可能となる。標準ＴＶチャネルは通常、５０ＭＨｚを超える範囲で送信される。こうした各チャネルは６ＭＨｚ幅である。一般に、５０ＭＨｚ未満の周波数は統制がとれておらず、極めてノイズが多い。好適実施例では、アップストリーム通信（ＣＭ１１３からＳＣＳ１０１への通信）は、５ないし４２ＭＨｚの周波数スペクトルの２ＭＨｚ幅の周波数帯域に発生し、ダウンストリーム通信（ＳＣＳ１０１からＣＭ１１３への通信）は、５０ＭＨｚ以上の範囲における６ＭＨｚ幅の標準ＴＶチャネルで発生し、今後はこのチャネルは、ダウンストリーム・チャネルと呼ばれる。従って、５ないし４２ＭＨｚ帯域は、クライアント・ステーション１０５からＳＣＳ１０１への通信チャネルが選択されうるスペクトルとして機能し、５０ＭＨｚを超える帯域は、ＳＣＳ１０１からクライアント・ステーション１０５への通信チャネルが選択されうるスペクトルとして機能する。
【００４４】
代替実施例は、各方向における多重通信チャネルを提供する。こうした代替案は、前述の好適実施例の自然な拡張であり、本発明の範囲内である。例示のため、本発明は、１方向につき１チャネルの実施例に関して記述している。しかし、当該技術の熟練者であれば、本発明を多重チャネル代替案に適用する方法は明らかである。
【００４５】
図４は、５０ＭＨｚ未満で送信される信号のグラフの例である。この例から分かるように、例えば、８ないし１２ＭＨｚ、１５ないし２０ＭＨｚ、２３ないし２７ＭＨｚ、及び３１ないし３７ＭＨｚ間におけるように、アクティビティのほとんどない幾つかの領域が存在する。他の領域は極めてノイズが多い。信号変換システム（ＳＣＳ）１０１は、５ないし４２ＭＨｚの周波数帯域を絶えず監視し、ノイズのない２ＭＨｚ幅の帯域を見つける。こうした帯域を見つけた後、信号変換システム（ＳＣＳ）１０１は、その２ＭＨｚ帯域の周波数（例えば、中央又は最初の）をクライアント・ステーション１０５に同報通信する。この２ＭＨｚの帯域は、クライアント・ステーション１０５によって、データを信号変換システム（ＳＣＳ）１０１に送信するために用いられ、今後は、「アップストリーム・チャネル」と呼ばれる。多重チャネルの代替実施例では、信号変換システム（ＳＣＳ）１０１が、アクティビティの低い２つ以上の２ＭＨｚ幅の帯域を見つけ、こうした各帯域の周波数を同報通信する。
【００４６】
好適実施例では、ダウンストリーム通信に６４−ＱＡＭが用いられる。６４−ＱＡＭでは、データの記号毎に６ビットが同時に同報通信される。本発明では、これらのビットの１つが制御情報に用いられ、残りの５ビットはペイロード・データである。制御ビットは今後、「制御チャネル」と呼ばれる。
【００４７】
図５には、ダウンストリーム・チャネル及びアップストリーム・チャネル上のアクティビティが例示されている。アップストリームの場合、通信時間がスロットと呼ばれる均一な長さの間隔に分割される。各スロットは番号によって識別される。スロット番号は順次番号であり、０から最大カウント（Ｍａｘｉｍｕｍ＿Ｃｏｕｎｔ）までカウントされ、最大カウントに達すると、スロット番号は０にリセットされる。好適実施例では、最大カウントは３２未満である。他の実施例では、更に大きい最大カウント値が許容される。最大カウントは、ＳＣＳによってプログラム可能である。図５に示す例の場合、時間線５０１によって１４のスロット（０ないし１３）が示されている。時間線５０１のスロット境界は、信号変換システム（ＳＣＳ）１０１に関連している。ケーブルに沿ったデータの伝搬に関連する時間遅延が存在するため、様々なクライアント・ステーション１０５が、異なる境界でデータの通信及び受信を行う。
【００４８】
各時間スロットの長さは、固定数のダウンストリーム制御チャネル・フレームによって表される。スロット毎のフレーム数は、信号変換システム（ＳＣＳ）１０１によってプログラム可能である。しかし、この比率（フレーム／スロット）は、リセットされるまで一定である。時間スロットには、競合中に許容される最大送信パケットをアップストリーム送信するのに必要な時間、及びＳＣＳ１０１に最も近いクライアント・ステーション１０５とＳＣＳ１０１から最も遠いクライアント・ステーション１０５との間のラウンド・トリップ伝搬遅延の差を包含するサイズが与えられている。
【００４９】
制御フレームは、信号変換システム（ＳＣＳ）１０１と制御チャネル内の個々のクライアント・ステーション１０５との間の基本通信単位である。好適実施例では、制御フレームの長さは２０バイトである。共通のフレーム・フォーマットが存在する。図６は、共通フレーム・フォーマットのブロック図である。各フレームは、図６に示す一般構造に従う。各フレームは、同期フラグ６０１から始まる。ダウンストリーム制御チャネルのフレーム内容は、同期フラグ６０１を使用して、フレームの先頭を表示する。好適実施例では、同期フラグの値は「０１１０」であるが、慣例に従って他のビット・シーケンスを採用することも可能である。
【００５０】
好適実施例では、４タイプのフレーム、即ち、肯定応答フレーム、制御フレーム、可変ビット転送速度（ＶＢＲ）データ・フレーム、及び制御ビット転送速度（ＣＢＲ）データ・フレームがある。タイプの識別は、タイプ・フィールド６０３によって行われる。次に、５ビット・フィールド６０５によってフレームに関するスロットＩＤが与えられる。スロットＩＤの最大値は、信号変換システム（ＳＣＳ）１０１によってプログラム可能である。
【００５１】
スロットは、２つのクラス、即ち、競合スロットと予約スロットに分割される。競合スロットにおいて、クライアント・ステーション１０５の全て、又はクライアント・ステーション１０５の部分集合が、アップストリーム・チャネル上で送信することが可能である。予約スロットは、ある特定のクライアント・ステーション１０５に占有され、アップストリーム・チャネル上で情報パケットを送信できるのは、その特定のクライアント・ステーション１０５だけである。
【００５２】
図５に示す例では、２つのクライアント・ステーション１０５ａと１０５ｂが、アップストリーム・チャネル上で時間を争う。ライン５０２は、クライアント・ステーション１０５ａによってアップストリーム・チャネル上で行われる送信を表し、ライン５０４は、信号変換システム（ＳＣＳ）１０１によるアップストリーム・チャネル上でのメッセージの受信を表し、ライン５０６は、信号変換システム（ＳＣＳ）１０１によって制御チャネル上で行われる送信を表し、ライン５０８は、クライアント・ステーション１０５ａと１０５ｂによる制御チャネルにおけるメッセージの受信を表し、ライン５１０は、クライアント・ステーション１０５ｂによってアップストリーム・チャネル上に置かれたメッセージを表している。
【００５３】
信号変換システム（ＳＣＳ）１０１によって送出されたメッセージによって、アップストリーム送信のビートが設定される。競合スロットにおいては、全ての送信が、ある１つのスロット内において、送信パケットが完全に通信されるように実施される。しかし、予約スロットにおいては、データ・パケットは、スロット境界を越えることが可能である。クライアント・ステーション１０５は、制御チャネルを監視して、スロットがいつ始まり、いつ終わるかを確認する。送信遅延のため、これらのスロット境界は、信号変換システム（ＳＣＳ）１０１からの距離に応じて、個々のクライアント・ステーション１０５によって異なる時間で感知されることになる。
【００５４】
図５のライン５０２で、クライアント・ステーション１０５ａは、タイム・スロット０において、要求５０５を送出する。信号変換システム（ＳＣＳ）１０１の遠近関係による伝搬遅延のため、クライアント・ステーション１０５ａは、タイム・スロット０の途中でその送信を開始する。
【００５５】
下記の議論において、例示のため、データ・パケットはタイム・スロット全体を費やすものとして示される。実際には、パケットが費やすのは１タイム・スロット未満であり、タイム・スロットには、伝送遅延を許容するようなサイズが与えられている。情報パケットは、アポストロフィが付加された同じ参照番号を用いることによって、別のステーションによって送信されたパケットの受信バージョンとして表示される。例えば、クライアント・ステーションが、パケット５０５を送信したとして、それが受信されると、それがパケット５０５’として示される。
【００５６】
ライン５０４は、信号変換システム（ＳＣＳ）１０１の遠近関係から見たアップストリーム・チャネルを表している。やはり、伝搬遅延のため、信号変換システム（ＳＣＳ）１０１は、パケット５０５’で示すように、パケット５０５が送信された時間より遅い時間にそのパケットを受信する。信号変換システム（ＳＣＳ）１０１は次に、パケット５０５を処理する。クライアント・ステーション１０５から送信されるデータ・パケットは、独立型とすることが可能で、即ちそれは、信号変換システム（ＳＣＳ）１０１に対する完全な情報通信である。しかし、クライアント・ステーション１０５が、１つのパケットに納まる情報より多くの情報、即ち、１つのタイム・スロットにおいて送信可能な情報より多くの情報の送信を行いたい場合があるので、クライアント・ステーション１０５から送信される初期パケットは、通信の残余部分の送信をするために、将来追加するスロットを予約する要求を含むことができる。図５の例では、クライアント・ステーション１０５ａは、全部で３つのタイム・スロットにまたがる情報の送信を行おうとしている。従って、初期パケット５０５は、２つの追加専用タイム・スロットの予約要求を含んでいる。
【００５７】
要求を処理する際、信号変換システム（ＳＣＳ）１０１は、クライアント・ステーション１０５ａに将来のタイム・スロットを２つ割り当てる。ライン５０６は、信号変換システム（ＳＣＳ）１０１の遠近関係から、制御チャネルを表している。割り当てに続いて、信号変換システム（ＳＣＳ）１０１は、制御チャネル上でクライアント・ステーション１０５に肯定応答メッセージ５０７を送信する。肯定応答メッセージは、クライアント・ステーション１０５に対して、メッセージを受信したことを知らせ、また、予約要求がある場合には、クライアント・ステーションが通信の残余部分を送信するのに待たなければならないタイム・スロットの数を知らせる。図５の例では、信号変換システム（ＳＣＳ）１０５がクライアント・ステーション１０５ａから予約要求パケット５０５を受信した時点で、他の予約がされておらず、従ってクライアント・ステーション１０５ａは、パケット５０７’の肯定応答メッセージを受信した際に、通信の残余部分の送信を開始することができる。従って、肯定応答メッセージ・パケット５０７は、クライアント・ステーション１０５ａに対して、遅延長（クライアント・ステーション１０５ａが残余部分の送信をする前に待たなければならない時間）がゼロであることを知らせる。
【００５８】
伝搬遅延のために、クライアント・ステーション１０５ａは、パケット５０５の送信をタイム・スロット０において開始したが、タイム・スロット２の途中までに、信号変換システム（ＳＣＳ）１０１による受信が完了しなかった。全ての送信がタイム・スロットの境界で実施されるので、信号変換システム（ＳＣＳ）１０１は、タイム・スロット３の開始まで待ってから、肯定応答パケット５０７の送信を開始する。ライン５０８は、クライアント・ステーション１０５ａの遠近関係から制御チャネルを表している。肯定応答メッセージ・パケット５０７’は、そのメッセージから、その予約要求パケット５０５が信号変換システム（ＳＣＳ）１０１によって受け取られ、その予約スロットが遅延なく送信されることになるということを認識する、クライアント・ステーション１０５ａによって受信される。従って、クライアント・ステーション１０５ａは、アップストリーム・チャネル上で（ライン５０２で示すように）、パケット５０９ａ及び５０９ｂにおけるその通信の残余部分を送信する。
【００５９】
図５の例では、クライアント・ステーション１０５ｂは、４つのパケットの情報を送信しようとしている。上述のように、クライアント・ステーション１０５ｂは、後続の３つのパケットに関する予約要求を含む１つのパケットを送信できる。従って、クライアント・ステーション１０５ｂは、第１の予約要求パケット５１１を送信する。要求メッセージ・パケット５１１は、３つのタイム・スロットの予約要求を含む。
【００６０】
ライン５０４で示すように、信号変換システム（ＳＣＳ）１０１は、要求メッセージ５１１’を受信する。追加の３つの専用タイム・スロットの予約要求を処理する際、信号変換システム（ＳＣＳ）は、クライアント・ステーション１０５ｂが肯定応答を受信するまでに、クライアント・ステーション１０５ａが、その通信の残余部分に関して第１のパケット５０９ａを送信済みであるが、まだ、第２のパケット５０９ｂに関する追加のタイム・スロットを必要としていることを認識している。従って、肯定応答メッセージ・パケット５１３は、クライアント・ステーション１０５ｂに対して、その予約は受け入れられたが、肯定応答パケット５１３’を受信した後、１つのタイム・スロット分の遅延後に、そのパケットの残余部分の送信を開始すべきであることを示す。この遅延は、タイム・スロット５１５として示される。その遅延の後、クライアント・ステーション１０５ｂは、アップストリーム・チャネル５１０上で、残余部分の３つのパケット５１７ａ、５１７ｂ、及び５１７ｃを送信する。これらは信号変換システム（ＳＣＳ）１０１によって、パケット５１７ａ’、５１７ｂ’、及び５１７ｃ’として受信される。
【００６１】
特に予約されていないスロットは、競合スロットである。従って、この例の場合、第１の予約スロットがスロット番号４なので、スロット０ないし３は競合スロットである。スロット４ないし８は、クライアント・ステーション１０５ａ及び１０５ｂによって予約されている。しかし、スロット９ないし１３は予約されておらず、従って、競合スロットである。
【００６２】
図５の例では、競合スロットにある間に競合が生じることはない。クライアント・ステーション１０５ａと１０５ｂの競合はタイム・スロット０以前のある時点において生じた可能性がある。各フレームはチェック・サムを含む。チェック・サムは、例えば、ＣＣＩＴＴ  Ｘ．２５に定義されるような、巡回冗長検査符号である。
【００６３】
競合が生じると、メッセージに誤りが生じる。従って、チェック・サム計算が失敗する。信号変換システム（ＳＣＳ）１０１がチェック・サム計算の失敗を検出した場合は常に肯定応答メッセージを送信しない。従って、クライアント・ステーション１０５は肯定応答を受信しない。メッセージの送信と肯定応答の受信との間の予想遅延時間は、既知である（それは、最大伝搬遅延に処理時間を加えたものである）。従って、クライアント・ステーション１０５が、この予想時間内に肯定応答を受信しなければ、送信が失敗したことが分かる。競合が送信失敗の原因である可能性が高い場合、クライアント・ステーション１０５の競合解決メカニズムが呼び出される。
【００６４】
一実施例では、クライアント・ステーション１０５の競合解決メカニズムは、イーサネットの技法と同様である。競合するクライアント・ステーションのそれぞれは、ランダムな時間だけ待機を行う。それぞれのランダムな時間の終わりで、クライアント・ステーション１０５は再び、それぞれのメッセージを送信しようと試みる。制御回路３０１に接続された乱数発生器３１３が、待機に用いられる乱数を計算する。一実施例では、再送前に遅延させるべきタイム・スロット数の範囲は、送信を試みた回数の関数である。ｎ番目の再送試行前に遅延させるべきタイム・スロット数は、下記範囲において均一に分布した整数乱数ｒとして選択される：０＜ｒ＜２ｋ
ここで、ｋ＝ｍｉｎ（ｎ，７）
最大許容回数の再送試行が失敗すると、ＣＭ１１３によってエラー状態が報告される。好適実施例では、最大再送試行回数は１６である。
【００６５】
代替実施例では、競合の取り扱いは、所定グループのモデムからの再送だけを許可することによって実施される。連続再試行の際には、より小さい部分集合のモデムに再送が許可される。この実施例では、システム内のＣＭ１１３が、２分木をなすように構成される。ＳＣＳ１０１は、誤りを生じたメッセージの受信を検出すると、所定のＣＭ１１３をオフにするメッセージを送出する。最初に、ＳＣＳ１０１は、木の根から１レベルだけ降下して、木の最初の半分における全てのＣＭを順次オフにし、次に、これらのＣＭを再起動し、残りの半分におけるＣＭをオフにする。ＳＣＳ１０１が更に競合を検出する場合には、更に１レベル降下して、そのレベルの特定の枝における全てのＣＭを枝毎に順次オン・オフする。ＳＣＳ１０１は、競合をもはや検出しなくなるか、又は、２分木の葉まで降下するまで、この手順を繰り返す。
【００６６】
図７は、制御チャネル上で送信されるダウンストリーム肯定応答フレーム７００のフォーマットに関するブロック図である。信号変換システム（ＳＣＳ）１０１は、チェック・サム計算の成功によって示されるように、クライアント・ステーション１０５の１つからのメッセージの受信に成功すると、図７に示すように、肯定応答フレーム７００を送信する。他の全てのフレームと同様、肯定応答フレーム７００は、図６のフレーム６００の一般フォーマットに従う。それは、上述のように、同期フィールド７０１、フレーム・タイプ・フィールド７０３（肯定応答フレーム７００の場合には「００」）、スロットＩＤフィールド７０５、スロット・タイマ・フィールド７０７、及びチェック・サム・フィールド７２１を含む。これらのフィールド７０１、７０３、７０５、７０７、及び７２１はそれぞれ、フィールド６０１、６０３、６０５、６０７、及び６１１に対応する。
【００６７】
肯定応答フレーム７００のタイプ依存内容６０９を利用して、異なるアップストリーム・チャネル上で送信するクライアント・ステーション１０５からのメッセージを２つまで肯定応答することができる。これらのクライアント・ステーション１０５のうち第１のクライアント・ステーションのモデムＭＡＣアドレスはフィールド７０９で与えられ、第２のクライアント・ステーション１０５については、異なるチャネルからのフィールド７１５で与えられる。
【００６８】
クライアント・ステーション１０５が信号変換システム（ＳＣＳ）１０１にメッセージを送信する際、そのメッセージにメッセージＩＤを割り当てる。肯定応答されたこのメッセージＩＤは、信号変換システム（ＳＣＳ）１０１によって、それぞれ、メッセージＩＤフィールド７０９及び７１７内でクライアント・ステーション１０５にエコー・バックされる。
【００６９】
肯定応答されたメッセージが予約要求を含む場合、クライアント・ステーション１０５が残余部分の送信前に待たなければならないスロット数がそれぞれ、予約遅延フィールド７１３及び７１９内で送信される。
【００７０】
好適実施例では、制御フレームのサブタイプが１１存在する。別の実施例は、制御フレームの追加サブタイプを含む。これら制御フレームのサブタイプは次の通りである：
＊  アイドル・サブフレーム
＊  スロット／チャネル状況サブフレーム
＊  ケーブル・モデム使用禁止／使用可能化要求
＊  アップストリーム／ダウンストリーム・チャネル切り替え要求
＊  エコー要求
＊  パラメータ取得／設定要求
＊  キー交換開始要求
＊  電力レベル調整応答。
【００７１】
これらのサブフレーム・タイプはそれぞれ、図６に示す一般フォーマットに従い、特定のサブフレーム・タイプに関する追加フィールドを含む。タイプ・フィールド６０３には、そのフレームが制御フレームであることを表す値「０１」がセットされる。スロット・タイマ・フィールド６０７に続いて、制御フレームは、２バイト長のサブフレーム・タイプ・フィールドを含む。
【００７２】
動作時、信号変換システム（ＳＣＳ）１０１は、制御フレームを連続的に送信する。従って、特定のタイム・スロットにある間、信号変換システム（ＳＣＳ）１０１が送信すべきダウンストリーム情報を有していない場合、信号変換システム（ＳＣＳ）１０１は、それでも、制御フレームを送信する。このフレームは、サブフレーム・タイプ・フィールド「００」を含む。フレームの残余部分は、擬似ランダム・シーケンスである。擬似ランダム・シーケンスは、６４−ＱＡＭ受信チューナ３０３が送信器３０５と同期していられるのに十分な遷移を提供するため、できるだけランダムであることが望ましい。
【００７３】
チャネル／スロット状況サブフレーム・タイプは、ＳＣＳ１０１によって各タイム・スロットの第１のフレームとして送信される。このフレームは、各アクティブ・アップストリーム・チャネル毎に、次のタイム・スロットの占有状況、及び、現在利用可能なアップストリーム及びダウンストリーム・チャネルの情報を伝える。チャネル・スロット状況サブフレームは、下記の特定のフィールドを含んでいる（表１）。
【００７４】
【表１】
0003577393.tif 000002
【００７５】
（チャネル／スロット状況サブフレーム・タイプに関するフィールドの多くは、他のサブフレーム・タイプによって用いられている。従って、以下のサブフレーム・タイプに関する説明は、表１を参照する）。
【００７６】
ケーブル・モデム使用禁止／使用可能化要求サブフレーム・タイプは、信号変換システム（ＳＣＳ）１０１によって特定のケーブル・モデム１１３のオン・オフに用いられる。このサブフレーム・タイプは、使用禁止の場合０ｘ０３、使用可能化の場合０ｘ０５である。ＣＭ使用禁止／使用可能化サブフレームは、そのフレームが送信される特定のＣＭ１１３を一意に識別する、６バイトのＭＡＣモデム・アドレス・フィールドである。
【００７７】
アップストリーム・チャネル切り替え要求サブフレーム・タイプは、ＣＭ１１３に命じて、そのアップストリーム通信を異なるチャネルに切り替えるために、ＳＣＳ１０１によって用いられる。上述のように、アップストリーム周波数範囲は、比較的ノイズが多い可能性がある。従って、信号変換システム（ＳＣＳ）１０１の通常動作中に、ＳＣＳ１０１は、それとのアップストリーム通信を異なる周波数で行うのが望ましいと感じ取る場合がある。更に、信号変換システム（ＳＣＳ）１０１は、特定のアップストリーム・チャネルの使用率が高く、別のアップストリーム・チャネルの使用率が比較的低いことを検出する場合もあり、従って、あるＣＭ１１３に、様々なアップストリーム・チャネル間における使用率のバランスをとるため、周波数を変更するよう要求する。
【００７８】
アップストリーム・チャネル切り替え要求サブフレームは、要求が送信されるモデムＭＡＣアドレスに関する６バイトのフィールドを含む。このサブフレームは、現在のアップストリーム・チャネル番号（１バイト）、記号当たりの現在のビット数（２ビット、表１参照）、現在の記号転送速度（６ビット、表１参照）、及び現在のアップストリーム・チャネルの中心周波数（２バイト、表１参照）も含む。更に、このサブフレームは、切り替えるべきアップストリーム・チャネルのチャネル番号を識別するためのフィールド（１バイト）、記号当たりの新らしいビット数（２ビット、表１参照）、新しい記号転送速度（６ビット、表１参照）、及び新しいチャネルの中心周波数（２バイト、表１参照）も含む。
【００７９】
ダウンストリーム・チャネル切り替え要求サブフレーム・タイプは、ＣＭ１１３に命じて、その受信器を切り替え、要求フレームにおいて指定された受信器による受信を開始させるために、信号変換システム（ＳＣＳ）１０１によって送信される。このフレームは、モデムＭＡＣアドレスに関する６バイトのフィールド、及び切り替えるべきダウンストリームＮＴＳＣチャネル番号に関する１バイトのフィールドを含む。
【００８０】
エコー要求サブフレーム・タイプが、信号変換システム（ＳＣＳ）１０１によって送信される。クライアント・ステーション１０５は、エコー要求を受信すると、アップストリーム・チャネルの１つの上で、信号変換システム（ＳＣＳ）にエコー応答メッセージ（アップストリーム・チャネル・フォーマットに関するセクションにおいて後述）を送信する。エコー要求サブフレーム・タイプは、モデムＭＡＣアドレス・フィールド（６バイト）、及びテストＩＤフィールド（４バイト）を含む。テストＩＤフィールドは、信号変換システム（ＳＣＳ）１０１によって設定される乱数を含む。
【００８１】
パラメータ取得／設定要求サブフレーム・タイプは、主としてＳＮＭＰ（単一ネットワーク管理プロトコル）に用いられる。信号変換システム（ＳＣＳ）１０１に配置されたＳＮＭＰ代理エージェントが、パラメータ取得／設定要求を利用して、クライアント・ステーション１０５、又はクライアント・ステーション１０５に配置されたＣＭ１１３に関する情報を取得するか又は、あるＣＭ／クライアント・ステーション・パラメータをクリアまたは設定する。パラメータ取得及び設定要求は、サブフレーム・タイプ・フィールドに関する値が異なることによって区別される。パラメータ取得及び設定要求は、要求が送信されるケーブル・モデム１１３を識別するためのモデムＭＡＣアドレス・フィールド（６バイト）、及びパラメータＩＤフィールド（１バイト）を含む。設定要求サブフレーム・タイプは、パラメータに関する新しい値を含む、長さが７バイトまでの内容フィールドも含む。パラメータ取得／設定要求サブフレームによって検索または設定可能なパラメータの幾つかを下記に示す：
＊  ペイロード・チャネルＣＲＣエラー・カウント
＊  ペイロード・ミス・バッファ・エラー・カウント
＊  ペイロード受信パケット・カウント
＊  制御チャネルＣＲＣエラー・カウント
＊  制御チャネル・ミス・バッファ・カウント
＊  制御チャネル受信パケット・カウント
＊  アップストリーム送信送再試行カウント
＊  アップストリーム送信パケット・カウント
＊  自己テスト（実施／報告）
＊  特定テストの実施／結果報告
＊  アップストリーム暗号化
＊  ファームウェア・フラグ番号ｎ（セット／リセット／報告）
＊  ファームウェア・レジスタ（読み取り／書き込み／報告）。
【００８２】
ＤＥＳキー交換サブフレーム・タイプは、ＣＭ１１３に命じて、ＤＥＳキー・ハンドシェイクを開始させるために、信号変換システム（ＳＣＳ）１０１によって用いられる。このキー交換は、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎキー交換アルゴリズムを使用している。ＤＥＳキー交換要求サブフレームは、要求が送信されるケーブル・モデム１１３を識別するためのモデムＭＡＣアドレス・フィールド（６バイト）を含む。
【００８３】
ダウンストリーム・ペイロード・チャネル
図８は、ＳＣＳ１０１からケーブル・モデム１１３に送信されるダウンストリーム・ペイロード・データ・フレーム７４９のブロック図である。フィールド７５１は、ビット列「０１１１１１１０」を含む１バイト長の同期フラグである。フレームの残りは、フレーム内に他の６ビット・ストリングをなす１が存在しないことを保証するため、ゼロが挿入される。従って、ＣＭ１１３は、ゼロが後続する、５つの１からなるストリングに遭遇すると、ＳＣＳによってゼロのビットが挿入されたことが分かり、データ処理の前に廃棄する必要がある。
【００８４】
次は、フレームの受信者を識別するための６バイトのモデムＭＡＣアドレス・フィールド７５３である。マルチキャスト・パケットでは、ＭＡＣアドレス・フィールド７５３は、加入者のケーブル・モデム１１３のマルチキャストＭＡＣアドレスを含む。
【００８５】
フィールド７５５は、ＣＭ１１３に対して、送信データが暗号化テキスト（１）であるか、あるいは、平文テキスト（０）であるかを示すための１ビットの暗号化フラグである。
【００８６】
２タイプのペイロード・フレームが存在する、即ち１つは、加入者データを送信するペイロード・フレームであり、もう１つはモデム制御メッセージを送信するペイロード・フレームである。フィールド７５７は、そのフレームが加入者データ（０）を有しているか、あるいは、モデム制御メッセージ（１）を有しているかを示すための１ビットのフラグである。
【００８７】
フィールド７５９は、メッセージのタイプを識別する６ビットのフィールドである。このメッセージ・タイプは、下記のものを含む：
加入者データに関して：
＊  イーサネット・フレーム
＊  ＡＴＭセル
モデム管理メッセージに関して：
＊  マルチキャスト・アドレス追加要求
＊  マルチキャスト・アドレス削除要求
＊  ＤＥＳキー交換応答
＊  テスト要求。
【００８８】
フィールド７６０は、バイト数で埋め込みの長さを識別するための３ビットのフィールドである。暗号化のため、ペイロードは、８の倍数のバイト長である。従って、７バイトまでを利用して、メッセージの長さの埋め込みを行い、ペイロードがこの目標を達成することを保証する。暗号化を必要としないか又は、暗号化標準が、メッセージの長さが８の倍数であることを必要としない代替実施例では、埋め込みフィールド及び埋め込み長さフィールドは不要である。
【００８９】
フィールド７６１は、未使用ビットからなる５ビットのフィールドである。これらのビットは、メッセージ・フィールド７６３がバイト境界に重ならないようにするために追加される。フィールド７６３は、メッセージ・タイプ依存内容からなる可変長（バイト単位のインクリメント）フィールドである。イーサネットＭＴＵに合わせるため、メッセージ内容フィールドにおけるＭＴＵは、１５１４にセットされる。メッセージ内容フィールド７６３は、そのバイト長が８の倍数になることを保証するため、７バイトまでの埋め込みが行われる。
【００９０】
フィールド７６５は、イーサネット多項式巡回冗長検査技法を使用した４バイト長のＣＲＣ−３２チェック・サムである。
【００９１】
好適実施例では、４タイプのモデム管理メッセージが存在する。最初の２つのモデム管理メッセージ・タイプは、マルチキャスト・アドレス追加要求と、マルチキャスト・アドレス削除要求である。マルチキャスト・アドレス追加要求は、その要求が送信されるＣＭ１１３に命じて、そのＣＭが加入しているマルチキャスト・アドレスのリストにマルチキャスト・アドレスを追加させるものであり、マルチキャスト・アドレス削除要求は、そのＣＭ１１３に命じて、ＣＭの加入リストから指定のマルチキャスト・アドレスを削除するものである。マルチキャスト・アドレス追加要求及びマルチキャスト・アドレス削除要求の場合、内容フィールド７６３は、マルチキャスト・アドレスに関する６バイトのフィールドと、１バイトのハッシュ・キー・フィールドを含む。ハッシュ・キーは、マルチキャスト・アドレスのＣＲＣ−３２の上位６ビットである。ハッシュ・キー・フィールドの下位６ビットは、これらの６ビットを含んでいる。ハッシュ・キーは、削除が必要なマルチキャスト・アドレスをより迅速に検索するために、ＣＭ１１３によって使用されうる。
【００９２】
第３のモデム管理メッセージは、ＣＭ１１３のキー交換の要求に対する応答メッセージである、ＤＥＳキー交換応答である。この応答は、２つの数Ｎ２、及びＮ３を含んでいる。Ｎ２は、長さが２００ないし４００ビットの、Ｐを法としたＢＲ２の結果であり、Ｎ３は、キーＫによる暗号化されたＮ１の結果である（ここで、Ｋは、Ｐを法としてＮ１Ｒ２から導出される）。Ｂ及びＰは、ＳＣＳ１０１及び全ＣＭ１１３にとって既知の数であり、Ｒ２は、キー交換要求を受信する毎に、ＳＣＳ１０１が選択する乱数である。ＤＥＳキー交換は、暗号化されない。
【００９３】
第４のモデム管理メッセージは、テスト要求メッセージ・タイプである。テスト要求メッセージ・タイプは、ＣＭ１１３への経路の状態の検証、並びに、両端における暗号化／暗号解読ロジックが正しいかを検証するため、ＳＣＳ１０１によって開始される。ＣＭ１１３は、テスト応答で応答する。暗号化がオンにされる場合、テスト要求メッセージ及び対応するテスト応答は暗号化される。
【００９４】
アップストリーム・チャネル・メッセージ
アップストリーム・フレームは、クライアント・ステーション１０５からの加入者データ、並びにＣＭ１１３からのモデム制御メッセージを送信する。アップストリーム・フレームは、１パケットでは大きすぎて通信できないパケットを送信するための、ＣＭ１１３からのタイム・スロット予約要求も含む。図９は、アップストリーム・チャネル・フレーム７７３に関する共通フォーマットのブロック図である。最初のフィールドは、「０１０１０１００」を含む１バイトの同期フラグ７７７が後続する、全てが１の５バイトのプリアンブル・フィールドである。フィールド７７５及び７７７は、アップストリーム・フレームの始めを表している。フレームは、フレームの全長がＭｉｎＴＵ（アップストリーム・データ・フレームの最小サイズ）以上になることを保証するため、埋め込みフィールド７７９で終わる。
【００９５】
フィールド７８１は、ＣＭ１１３の６バイトのＭＡＣアドレスを含む。メッセージＩＤフィールドであるフィールド７８３は、ＣＭ１１３によって割り当てられたメッセージ番号を含む２ビット・フィールドである。ＳＣＳ１０１は、メッセージの肯定応答時に、このメッセージ番号を含む。
【００９６】
フィールド７８５は、予約長フィールドである。このフィールドは、ＣＭ１１３が１つ以上のパケットの送信に必要とするタイム・スロット数をＳＣＳ１０１に対して知らせる６ビットのフィールドである。予約長フィールド７８５は、それに含まれているのが全てゼロの場合、無視される。ＭａｘＴＵより大きいパケットは、予約タイム・スロットを介して送信されなければならない。好適実施例では、再帰的予約は許可されない。
【００９７】
暗号化フラグ７８７は、メッセージ内容が暗号化テキスト（１）であるか又は、平文テキスト（０）であるかを示すための１ビットのフラグである。フレーム・タイプ・ビット７８９は、メッセージ内容が加入者データ（０）であるか又は、モデム制御メッセージ（１）であるかを示すために用いられる。フレーム・タイプ・ビット７８９には、６ビットのメッセージ・タイプ・フィールド７９０が後続する。下記は、メッセージ・タイプの例である：
加入者データに関して：
＊  予約要求
＊  イーサネット・フレーム
＊  ＡＴＭセル
モデム管理メッセージに関して：
＊  ＣＭ使用禁止応答
＊  ＣＭ使用可能化応答
＊  アップストリーム・チャネル切り替え応答
＊  ダウンストリーム・チャネル切り替え応答
＊  エコー応答
＊  パラメータ取得応答
＊  パラメータ設定応答
＊  マルチキャスト追加応答
＊  マルチキャスト削除応答
＊  ＤＥＳキー交換要求
＊  ＤＥＳキー交換ＡＣＫ
＊  電力レベル調整要求
＊  テスト応答。
【００９８】
ＡＣＫフラグ７９１は、ＳＣＳ１０１に対して、ＣＭ１１３が肯定応答を必要とする（１）か又は、肯定応答を必要としない（０）かを示す。大きなパケットは予約スロットを使用して送信されるので、ＡＣＫは大きなパケットの送信には用いられない。
【００９９】
メッセージ長フィールドは、ペイロード・メッセージ・フィールド７９３のバイト数を示すための１５ビット長のフィールドである。ペイロード・メッセージ・フィールド７９３は、ＳＣＳ１０１に送信される実際のメッセージを含み、メッセージ・タイプ（フィールド７９０）に依存する。暗号化／暗号解読のため、メッセージには埋め込みが行われて、その長さが必ず８の倍数になるようにする。
【０１００】
フレーム・フォーマットは、ポストアンブル・フィールド７７９が後続する、ＣＲＣ−３２チェック・サム・フィールド７９５で終了する。
【０１０１】
アップストリーム・モデム・メッセージ
表２は、各種メッセージ・タイプに関するペイロード・メッセージ・フィールド７９３の内容を示している：。
【０１０２】
【表２】
0003577393.tif 000003
【０１０３】
ケーブル・モデム１１３
図１０ないし１３は、本発明のケーブル・モデム１１３をより詳細に示している。図３に示すように、モデムは、チューナ３０３、送信器３０５、ＲＡＭ３０９、暗号回路３１１、ＬＡＮインタフェイス３０７、及びマイクロプロセッサ３０２といった幾つかの外部装置に接続された制御回路３０１から構成されている。制御回路３０１は、これらの各種外部回路間の情報の流れを制御するデータ処理回路、及びデータ経路付け回路である。
【０１０４】
チューナ及び復調器３０３は、ケーブル１１１からテレビ放送信号を受信し、ＱＡＭデータ符号化フォーマットからのＩ及びＱ信号を出力する復調器と組み合わせられた、標準的な放送チューナである。
【０１０５】
制御回路３０１は、幾つかの相互接続された機能装置から構成される。この装置の組は、フロントエンド・プリプロセッサ（ＦＥＰ）８０１、フロントエンド・シリアライザ８０３、ダウンストリーム制御装置（ＤＣＤ）８０５、ダウンストリーム・ペイロード装置８０７、アップストリーム装置（ＵＤ）８０９、暗号装置（ＣＤ）８１１、暗号チップ・インタフェイス（ＣＣＩ）８１３、ＬＡＮ−ＲＡＭ装置（ＬＴＲ）８１５、ＬＡＮインタフェイス（ＬＡＮＩ）８１７、ＲＡＭ−ＬＡＮ装置（ＲＴＬ）８１９、送信器バックエンド（ＴＢ）８２１、送信器インタフェイス（ＴＲＩ）８２３、及びチューナ・インタフェイス（ＴＵＩ）８２４を含んでいる。ＣＣＩ８１３、ＬＡＮＩ８１７、ＴＲＩ８２３、及びＴＵＩ８２４は全て、マイクロプロセッサ・インタフェイス（ＭＩ）８２９を介して接続されている。
【０１０６】
装置８０５、８０７、８０９、８１１、８１５、８１９、及び８２３は全て、バス調停及び優先順位コントローラ（ＢＡＰＣ）８２５を介してＲＡＭ３０９に接続されている。装置８０５、８０７、８１１、８１５、８１９、及び８２３は、２つのバス、即ち読み取りバス８３１と書き込みバス８３３を介してＢＡＰＣ８２５に接続されている。レジスタ・ファイルである、全ポインタのマスタ（ＭＯＡＰ）８２７は、ＲＡＭ３０９内に記憶されているデータ・ブロックに関するポインタ及びオフセットを含んでいる。
【０１０７】
ここで使用されている命名規則について言及すると、各種装置はそれぞれ、書き込まれる、又は読み取られるＩ／Ｏバッファとみなすことができる。従って、ＢＡＰＣ８２５が、ある装置にデータを送信する場合、ＢＡＰＣ８２５がその装置に「書き込む」ということになり、ＢＡＰＣ８２５がある装置からデータを送信する場合には、ＢＡＰＣ８２５がその装置から「読み取る」ということになる。
【０１０８】
ＢＡＰＣ８２５に接続された各装置は、一般的な接続技法に従ってＢＡＰＣ８２５と接続されている。図１４は、装置をＢＡＰＣ８２５に接続するためのこの一般的な接続技法のブロック図である。装置９０１は、装置８０５、８０７、８０９、８１１、８１５、８１９、又は８２３のうちの１つである。従って、以下の議論において、「装置９０１」は、装置８０５、８０７、８０９、８１１、８１５、８１９、又は８２３の任意の１つを表している。種々の装置９０１は、ＲＡＭに対する接続に関して実際には異なる要求を有している。例えば、ＢＡＰＣ８２５は、アップストリーム装置８０９に対して書き込みだけしか行わない（読み取りは行わない）。一方、ダウンストリーム制御装置８０５は、読み取りだけしか行わない（書き込みは行わない）。各装置は、「ＲＥＱ」信号、「ＷＲＩＴＥ」信号、及び「Ａｄｄｒｅｓｓ」バスを備えている。各装置は、ＢＡＰＣ８２５から「ＡＣＫ」信号を受信する。特定の装置が書き込み能力を有している場合、「書き込みバス」と呼ばれる入力バスと、ＤｅｖＸＷＥ（装置Ｘ書き込み可能）と呼ばれる入力信号がその装置に接続される。特定の装置が読み取り能力を有している場合、「読み取りバス」と呼ばれる出力バスと、ＤｅｖＸＲＥ（装置Ｘ読み取り可能）と呼ばれる入力信号が、その装置に接続される。ＤｅｖＸＷＥ及びＤｅｖＸＲＥにおけるＸは、各特定の装置に関する一意的な識別子である。
【０１０９】
暗号装置（ＣＤ）８１１及びＬＡＮ−ＲＡＭ装置８１５は、「ＲＥＱ」、「ＷＲＩＴＥ」、及び「Ａｄｄｒｅｓｓ」信号をセットし、それぞれのインタフェイス回路８１３及び８１７のために対応する「ＡＣＫ」信号を受信することによって制御も行うという点で、特殊ケースである。
【０１１０】
ダウンストリーム・ペイロード装置は、２つの別個の組をなすＲＥＱ、ＷＲＩＴＥ、及びＡｄｄｒｅｓｓ信号を制御し、２つの対応するＤｅｖＲＥ信号を受信する点において特殊ケースである。
【０１１１】
バス調停と優先順位回路
図１５は、装置９０１とＢＡＰＣ８２５の間におけるデータ送信例を示すタイミング図である。データ送信を要求するため、装置９０１は、ＲＥＱ信号、トランザクションのためのＲＡＭのアドレス、及びＷＲＩＴＥ信号によるトランザクションのタイプ（書き込み＝１、読み取り＝０）の表明を行う。この要求が許可されると、ＢＡＰＣは、ＡＣＫ信号の表明を行う。この装置は、クロック・エッジにおいてＡＣＫを検出すると、即座に新しい要求を生成する。この装置が書き込み能力を備えている場合、ＤｅｖＷＥをクロック可能信号として使用し、その内部レジスタに「書き込みバス」の内容をクロック・インしなければならない。この装置が読み取り能力を有している場合、ＤｅｖＲＥ信号を利用して、その内部レジスタの内容を「読み取りバス」上にクロック・オンしなければならない。
【０１１２】
図１６ないし１８は、バス調停と優先順位回路（ＢＡＰＣ）８２５の概略図である。好適実施例では、ＢＡＰＣ８２５にデータ送信を行うことが可能な装置が８つ存在する。従って、図１６ないし１８の接続技法に従って、各装置毎にそれぞれ１つずつ、８つの独立したＲＥＱラインと、８つの独立したＷＲＩＴＥラインが存在する。８つのＲＥＱライン及び８つのＷＲＩＴＥラインは、優先順位エンコーダ回路１１０１に接続されている。優先順位エンコーダは、読み取りバス８３１及び書き込みバス８３３に対するアクセスが次に許可されるのはどの装置かを決定する。優先順位エンコーダ１１０１は、そのＲＥＱ信号が高レベルに設定されている優先順位が最も高い装置について、ＡＣＫ信号を高レベルに設定する。優先順位エンコーダ１１０１はまた、装置１ないし８のそれぞれについて最高優先順位ＲＥＱ信号も備えている（ＨｉＲＥＱ１ないしＨｉＲＥＱ８）。優先順位エンコーダ１１０１は、ＲＡＭへのアクセスに関して、優先順位が最高で、そのＲＥＱ信号が高レベルに設定されている装置１ないし８を選択する。優先順位エンコーダ１１０１は、その装置について、対応するＨｉＲＥＱ信号を高レベルに設定し、残りの７つのＨｉＲＥＱ信号は低レベルのままにしておく。
【０１１３】
装置９０１は、単一要求モードとバースト・モードのいずれかで動作する。バースト・モードでは、装置内のカウンタが、装置９０１が要求するＲＡＭ３０９へのアクセス数に設定される。装置９０１は、それらの要求が全て肯定応答されるまでＲＥＱ信号を高レベルに保持する。図１９は、ＡＣＫ信号を受信する装置９０１の一部の概略図であり、バースト・モードでの装置９０１の動作を示すものである。この装置９０１は、それが行う必要のあるメモリ要求数を記憶するためのカウンタ・レジスタ１２０１を含む。装置９０１はそれぞれ、ＲＡＭ３０９に記憶されたデータ・ブロックに関して繰り返し動作しようとする可能性がある。例えば、暗号装置８１１は、信号変換システム（ＳＣＳ）１０１に送信すべきデータ・パケットを繰り返し暗号化する。従って、装置９０１が、データ・ブロックをアクセスする必要がある場合、装置９０１がアクセスを必要とするブロック内のレコード数、又はワード数がカウンタ１２０１に記憶される。
【０１１４】
装置９０１は、装置９０１がアクセスしようとする、ＲＡＭ３０９内の次のアドレスを記憶するためのアドレス・レジスタ１２０３を含む。ＡＣＫ信号を利用して、カウンタ１２０１をデクリメントし、アドレス・レジスタ１２０３をインクリメントする。カウンタを構成するビットは全て、ＯＲゲート１２０５に供給される。カウンタ・レジスタ内のビットが全てゼロの場合、ＯＲゲート１２０５の出力はゼロであり、従って、装置９０１のＲＥＱ信号は低レベルに設定される。カウンタ１２０１はまた、「ＬＯＡＤ（要求開始）」信号によって制御される。ＬＯＡＤ信号が高レベルの場合、アクセスするワード数が、クロックの正のエッジにおいてカウンタにロードされる。
【０１１５】
分かりやすくするため、バス調停と優先順位回路８２５に関する議論においては、それに接続される各装置毎に装置番号が割り当てられている。どの装置番号がどの特定の装置に対応するかは重要でない。しかし、例示のため、装置１はダウンストリーム制御装置８０５であると考える。バス調停と優先順位回路８２５の遠近関係から、ダウンストリーム・ペイロード装置８０７は、２つの装置、即ち一次ポインタに関する装置と、二次ポインタに関する装置であり、従って、これらを装置２及び３と考える。装置４はアップストリーム装置８０９と考える。暗号装置８１３は装置５であり、ＬＡＮ−ＲＡＭ８１５は装置６であり、ＲＡＭ−ＬＡＮは装置７であると考える。マイクロプロセッサ３０２（マイクロプロセッサ・インタフェイス８２９を介して）は装置８であると考える。
【０１１６】
優先順位エンコーダ１１０１は、バス調停と優先順位回路に接続される各装置毎に出力ＡＣＫ信号、即ちＡＣＫ１ないしＡＣＫ８を有している。これらのラインはそれぞれ、ラインＩＮＣ１ないしＩＮＣ８に分割され、これらは更に、それぞれのアドレス・レジスタ１１０３−１ないし１１０３−８（装置３ないし７に対応するアドレス・レジスタは図示せず）に接続される。
【０１１７】
バス調停と優先順位回路８２５はパイプライン装置である。換言すれば、データは、調整されたパイプライン・ステージにおいて内部的に並列に送信される。ＲＡＭ３０９からの読み取り操作、及びＲＡＭ３０９への書き込み操作に関するパイプライン・ステージが、時間ライン１１０５上に示されている。
【０１１８】
レジスタ１１０７は、ＨｉＲＥＱ信号１ないし８、及び優先順位エンコーダ１１０１からの書き込み信号を受信するパイプライン・レジスタである。アドレス・レジスタ１１０３−１ないし１１０３−８がそれぞれ、パイプライン・レジスタ１１０９−１ないし１１０９−８に接続されている。バス調停と優先順位回路８２５が読み取る各装置は、読み取りレジスタを含んでいる。読み取りレジスタは、図１６ないし１８において、レジスタ１１１１−１ないし１１１１−８として示されている（注：全ての装置が「読み取られる」装置であるわけではなく、従って全ての装置が読み取りレジスタを有しているわけではない）。レジスタ１１０７、１１０９、及び１１１１は、並列パイプライン・レジスタである。従ってデータは、レジスタ１１０７、１１０９、及び１１１１に対して並列にクロック・イン及びクロック・アウトされる。
【０１１９】
バス調停と優先順位回路８２５に関するパイプラインの第１ステージは、優先順位エンコーダ１１０１、アドレス・レジスタ１１０３のロード又はインクリメント、デクリメント・カウンタ１２０１、及び読み取りレジスタ１１１１にロードされるべきデータの準備から構成される。
【０１２０】
ＢＡＰＣ８２５に関するパイプラインの第２ステージは、読み取り−書き込み装置選択回路１１１３から構成される。読み取り−書き込み装置選択回路１１１３は、どの装置から読み取るか又は、どの装置に書き込むかを選択するよう動作する。回路１１１３は、パイプライン・レジスタ１１０７からの２組の信号を入力として受信する。第１の組の信号は８つのＨｉＲＥＱラインから構成され、第２の組の信号は８つの書き込みラインである。回路１１１３は、ＲＡＭ３０９を使用可能にするためのチップ使用可能化（ＣＥ）ライン、選択された装置による要求に適合するように、ＲＡＭを書き込みモード又は読み取りモードに設定する出力使用可能化（ＯＥ）ライン、及びＲＡＭに対してデータのクロック・イン又はクロック・アウトを行うための信号ライン（ＤｅｖＲｅａｄＥ）を、出力ラインとして備えている。第２ステージの終了時に、これらの信号（ＣＥ、ＯＥ、ＤｅｖＲｅａｄＥ）はパイプライン・レジスタ１１１９にクロック・インされる。
【０１２１】
更に、選択回路１１１３から出力される８つの装置書き込み可能化ラインが存在する。選択された装置が書き込み要求を有する場合、対応する装置書き込み可能化ラインが高レベルに設定され、それ以外であれば、低レベルのままとされる。選択されていない全装置に関する書き込み可能化ラインは、低レベルのままである。８つの装置書き込み可能化ラインが、パイプライン・レジスタ１１１９にクロック・インされる。
【０１２２】
回路１１１３は、読み取りレジスタ１１１１を備えた各装置に対応する１つの出力読み取り選択ラインを有している。選択された装置からの要求が読み取り要求である場合には、選択回路１１１３によって、選択された装置に対応する読み取り選択ラインが高レベルにされ、それ以外の場合には低レベルに保持される。他の全ての読み取り選択ラインは低レベルに保持される。読み取り選択ラインはそれぞれ、スイッチ１１１５−１ないし１１１５−８に供給され、そのスイッチは更に、それぞれ読み取りレジスタ１１１１−１ないし１１１１−８の出力に接続される。スイッチ１１１５によって、読み取りバス８３１上に接続された読み取りレジスタ１１１１からデータを送信することができる。第２ステージの終了時に、読み取りバス８３１上のデータが、パイプライン・レジスタ１１１７にクロック・インされる。従って、読み取り操作の場合、第２ステージの終了時には、パイプライン・レジスタ１１１７が、装置から読み取られたデータを含むことになる。
【０１２３】
第２ステージは、アドレス・マルチプレクサ１１２１も含む。アドレス・マルチプレクサ１１２１は、８つのアドレス・パイプライン・レジスタ１１０９−１ないし１１０９−８から、アドレスを入力として受信する。これらのアドレスはＨｉＲＥＱラインによって選択される。どの時点においても、１つのＨｉＲＥＱラインだけが高レベルに保持されている。アドレス・マルチプレクサ１１２１は、対応するアドレス・レジスタ１１０９に記憶されたアドレスを選択する。第２のパイプライン・ステージの終了時に、その選択されたアドレスが、マルチプレクサ１１２１からパイプライン・レジスタ１１２３にクロック・インされる。
【０１２４】
第３のパイプライン・ステージは、場合によっては、選択された装置によってなされる要求のタイプ（読み取り又は書き込み）に従って、ＲＡＭ３０９へのデータ移動又はＲＡＭ３０９からのデータ移動から構成される。
【０１２５】
アドレス・パイプライン・レジスタ１１２３はＲＡＭ３０９に接続されている。正のクロック遷移時に、ＲＡＭ３０９がその特定のアドレスにアクセスできるように、レジスタ１１２３に記憶されているアドレスがＲＡＭ３０９に対して利用可能にされる。
【０１２６】
３つのラインがＲＡＭ３０９をパイプライン・レジスタ１１１９に接続する。これらのうち第１のラインは、チップ使用可能化（ＣＥ）ラインである。ステージ２において、ＲＡＭ３０９のアクセスが処理されている場合、装置選択回路１１１３は、ＣＥラインを高レベルに設定して、ＲＡＭ３０９を使用可能にする。ＣＥライン値がパイプラン・レジスタ１１１９に記憶される場合、選択回路１１１３によって設定されるＣＥ値は第３ステージにおいて、ＲＡＭ３０９に送信される。パイプライン・レジスタ１１１９からＲＡＭへの第２の制御ラインは出力使用可能化（ＯＥ）ラインである。ＯＥラインは、書き込みモードと読み取りモードのどちらでアクセスされるかをＲＡＭに知らせる信号を送信する。
【０１２７】
ＤｅｖＲｅａｄＥ信号を送信するラインが、パイプライン・レジスタ１１１９を、読み取りデータ・パイプライン・レジスタ１１１７をＲＡＭバス１１２７に接続するスイッチ１１２５に接続する。読み取り操作（即ち、ＲＡＭ３０９が、選択された装置から読み取られる）に着手しようとしている場合、ＤｅｖＲｅａｄＥ信号は高レベルである（装置選択回路１１１３によって設定される）。ＤｅｖＲｅａｄＥ信号が高レベルの場合、パイプライン・レジスタ１１１７内のデータを、スイッチ１１２５を介してバス１１２７上に送信することができる。
【０１２８】
直接メモリ・アクセスを実施するには、ＲＡＭ３０９及び選択された装置に関する書き込み可能（ＷＥ）及びＯＥ信号が逆にされる。換言すれば、ＲＡＭ３０９が「読み取る」場合、装置は「書き込み」、ＲＡＭ３０９が「書き込む」場合、装置は「読み取る」。従って、装置選択回路１１１３から出力されるＯＥ信号は、ＤｅｖＲｅａｄＥ信号と反対である。ＤｅｖＲｅａｄＥ信号はまた、システム・クロック信号と（ゲート１１３０によって）ＮＡＮＤ演算され、ゲート１１３０からＲＡＭ３０９に出力される書き込み可能信号（ＷＥ）を生成する。ＷＥ信号は、ＲＡＭ３０９に関する書き込みストローブである。これは、２つの連続した書き込み操作が行われる場合にとりわけ有効である。
【０１２９】
ＷＥ信号によって提供されるストローブに関する読み取り操作の第３ステージの終了時に、ＲＡＭバス１１２７上のデータが、アドレス・パイプライン・レジスタ１１２３をＲＡＭに接続するＲＡライン上のアドレスで、ＲＡＭに送信される。
【０１３０】
書き込み操作の場合、即ちＲＡＭ３０９が装置への書き込みに用いられる場合、第３ステージにおいて、ＲＡライン上のアドレスに記憶されたデータが、ＲＡＭ３０９からＲＡＭバス１１２７上に送出される。書き込み操作の場合、第３ステージの終了時に、ＲＡＭバス１１２７上のデータが、書き込みパイプライン・レジスタ１１３１に送信される。
【０１３１】
また、第３のパイプライン・ステージにおいて、信号ＤｅｖＷＥ１ないし８が、パイプライン・レジスタ１１１９からパイプライン・レジスタ１１２９−１ないし１１２９−８に送信される。この送信を利用して、ＤｅｖＷＥ信号の到着と選択された装置の書き込みレジスタに書き込まれることになるデータの到着とのタイミングがとられる。
【０１３２】
バス調停と優先順位回路８２５の動作の第４ステージにおいて、書き込みパイプライン・レジスタ１１３１内のデータはまず、書き込みバス８３３に送信され、次に、その書き込みバス８３３から選択された装置の書き込みレジスタに送信される。従って、書き込みパイプライン・レジスタ１１３１は、書き込みバス８３３に接続されている。その書き込みバス８３３は、スイッチ１１３３−１ないし１１３３−８を介して書き込みレジスタ１１３５−１ないし１１３５−８に接続される。全ての装置が「書き込み」装置というわけではないので、全ての装置が書き込みレジスタを備えているわけではない。スイッチ１１３３はそれぞれ、対応するＤｅｖＷＥラインに接続され、その制御を受ける。例えば、スイッチ１１３３−１は、ＤｅｖＷＥ１に接続される。特定のＤｅｖＷＥラインが高レベルの信号を送信する場合、スイッチ１１３３によって、データが、書き込みバス８３３から対応する書き込みレジスタ１１３５に送信されることが可能になる。従って、書き込み操作の場合、第４ステージの終了時に、選択された装置の書き込みレジスタ１１３５は、書き込みパイプライン・レジスタ１１３１内に、第３ステージの終了時に保持されたデータを含む。
【０１３３】
バス調停と優先順位回路８２５は、パイプライン化アーキテクチャであるため、クロック・サイクル当たり１つの操作の割合で、装置９０１からの読み取り及び書き込み要求を処理することができる。ＲＡＭレベルの待ち時間は２クロック・サイクルである。装置レベルの待ち時間は、書き込み装置（データが装置に書き込まれる）の場合、３クロック・サイクルであり、読み取り装置（データがＲＡＭに書き込まれる）の場合、１クロック・サイクルである。
【０１３４】
図２０は、図１６ないし１８のバス調停と優先順位回路８２５によって処理された１組の例示的なトランザクションを示すタイミング図である。図２０のダイヤグラムは、システム・クロック（１３０１）、第１の装置（ライン１３０３）及び第２の装置（ライン１３０５）に関するアドレス、ＲＥＱ、書き込み（ないし読み取り）、及びＡＣＫライン、選択された装置（ライン１３０７）、及び図１６ないし１８に示す回路内部の各種ラインの値を示している。
【０１３５】
図２０の例では、２つの装置９０１−１及び９０１−２が両方とも、ＲＡＭ３０９にアクセスしようとしている。装置１は書き込み要求をしようとし、装置２は読み取り要求をしようとしている。パイプライン・ステージ１において、両方の装置とも、それぞれのＲＥＱ信号を高レベルにしている。装置１は、装置２より優先順位が高く、従って優先順位エンコーダ１１０１に２つの高レベルＲＥＱ信号が入力されると、ＡＣＫを装置１に送信し、装置１はステージ２においてそのＲＥＱ信号を低レベルにする。従って、ステージ２では、優先順位エンコーダ１１０１は、高レベルである装置２からのＲＥＱ信号だけを受信し、それをＡＣＫに送信することになる。
【０１３６】
全ポインタのマスタ
ＲＡＭ３０９にアクセスする各装置（装置８０５、８０７、８０９、８１１、８１３、８１５、８１７、８１９、及び８２９）が同時に、ＲＡＭの１つの特定のセクション、又はバッファをアクセスする。ある装置が特定のバッファにアクセスする時間間隔の間に、他の装置がそのバッファに同時にアクセスすることはない。装置がアクセスするアドレスは、装置の内部アドレス・レジスタ（図１９の１２０３）に記憶されている。そのアドレスはマイクロプロセッサ３０２によって初期設定される。
【０１３７】
ダウンストリーム制御装置８０５及びダウンストリーム・ペイロード装置８０７は、マイクロプロセッサ３０２から比較的独立して動作する。ＤＣＤ８０５及びＤＰＤ８０７は両方とも、ＲＡＭ３０９内に定義されたバッファに書き込みを行う。ＤＣＤ８０５及びＤＰＤ８０７の両方に関して、バッファの拡張が制御回路３０１内の２つのレジスタ、即ち、バッファ開始点（ＴＯＢ）レジスタとバッファ終了点（ＢＯＢ）レジスタによって定義される。
【０１３８】
他の装置、即ち装置８０９、８１１、８１３、８１５、８１７、８１９、及び８２９は、１度に１つのパケット・データについて操作を行う。これらのパケット位置は、全ポインタのマスタ８２７と呼ばれる制御装置３０１内の小レジスタ・ファイルによって管理される。
【０１３９】
ＭＯＡＰ８２７は、共通ＲＡＭ３０９内の様々なバッファの開始アドレスを含む１６×１６ビットの埋め込みメモリである。下記のように、Ｃ＋＋言語の構文を利用している：
ｉｎｔ  ＊  ａｄｄｒｅｓｓＡ  ＝  ｎｅｗ  ｉｎｔ［ｓｉｚｅｏｆ＿ｂｌｏｃｋ＿Ａ］；
ｉｎｔ  ＊  ａｄｄｒｅｓｓＢ  ＝  ｎｅｗ  ｉｎｔ［ｓｉｚｅｏｆ＿ｂｌｏｃｋ＿Ｂ］；
ｉｎｔ  ＊  ａｄｄｒｅｓｓＣ  ＝  ｎｅｗ  ｉｎｔ［ｓｉｚｅｏｆ＿ｂｌｏｃｋ＿Ｃ］；
ｉｎｔ  ＊  ａｄｄｒｅｓｓＤ  ＝  ｎｅｗ  ｉｎｔ［ｓｉｚｅｏｆ＿ｂｌｏｃｋ＿Ｄ］；
．．．
ｉｎｔ  ＊  ＭＯＡＰ［］  ＝  ｛ａｄｄｒｅｓｓＡ，ａｄｄｒｅｓｓＢ，ａｄｄｒｅｓｓＣ，ａｄｄｒｅｓｓＤ．．．｝；。
【０１４０】
図２１は、ＭＯＡＰ８２７構造の高レベル概略図である。この構造を用いると、ＣＭ１１３は、データ・ブロックを動的に操作し、移動させることができる。
【０１４１】
ＭＯＡＰ８２７の動作は、図解例を用いることによって最もよく理解される。マイクロプロセッサ３０２がＬＡＮチップ３０７と通信を行うと仮定すると、それによってＳＣＳ１０１に対してアップストリーム送信されることになるデータ・パケットが、ＰＣから入手可能であることを学習する。マイクロプロセッサ３０２は次に、このパケットのためにメモリの一部を割り当て、このアドレスの始めをＭＯＡＰ８２７に書き込み、反復カウント情報を備えたヘッダを準備し、ＬＴＲ（ＬＡＮ−ＲＡＭ）装置８１５にこのポインタが有効であることを知らせる。ＬＴＲ装置８１５は、このＭＯＡＰ８２７の項目をそれ自身のアドレス・レジスタにコピーし、このアドレス・レジスタを利用して（もちろん、上述のＢＡＰＣ８２５を利用して）ＬＡＮチップ３０７からＲＡＭ３０９へのデータのコピーを開始する。
【０１４２】
パケット全体がＲＡＭに送信されると、ＬＴＲ装置８１５はマイクロプロセッサに、そのタスクが完了したことを知らせる。マイクロプロセッサは次に、正しい暗号解読キーを選択するか又は、暗号装置８１１によってアドレス指定が可能なレジスタに書き込むことによって、暗号チップ３１１の準備を行い、反復カウント情報を備えたパケットのヘッダを更新し、更に暗号装置８１１のためにデータ・ブロックの開始アドレスをＭＯＡＰ８２７のレジスタに書き込み、暗号装置８１１に暗号化操作を開始するよう伝える。
【０１４３】
暗号装置８１１は、そのＭＯＡＰ８２７の項目をそれ自身のアドレス・レジスタにコピーし、暗号化操作を開始する。暗号化操作が終了すると、暗号装置８１１はマイクロプロセッサにそれを知らせる。
【０１４４】
この時点で、データ・ブロックは送信の準備が整ったことになる。マイクロプロセッサは、アップストリーム装置８０９のために、このデータ・ブロックの開始アドレスをＭＯＡＰ８２７のレジスタに書き込み、ヘッダを準備し、必要であれば予約ブロックを準備し、アップストリーム装置８０９にパケットを送信するように伝える。
【０１４５】
アップストリーム装置８０９は次に、そのＭＯＡＰ８２７の項目をそれ自身のアドレス・レジスタにコピーし、ダウンストリーム制御チャネル装置８０５と協力して、そのブロックを送信する。
【０１４６】
ＭＯＡＰ構造、及びマイクロプロセッサ３０２の制御によってＲＡＭ３０９内のデータ・ブロックにアクセスする方法の利点は、特定のブロックの開始アドレスをＭＯＡＰ８２７の領域に書き込み、装置に対してその特定の用途にそのブロックを用いるよう伝えることによって、個々の装置のアテンションをその特定のメモリ内のデータ・ブロックに集中させる柔軟性である。バッファ・サイズ、バッファ数、及びバッファ位置に関する決定が、単なるマイクロプロセッサの決定になり、実際にコード化する必要がない。
【０１４７】
装置の任意の１つの動作を制御する状態マシンにおいて唯一実際にコード化される値は、状態マシンの対象となるブロックを指す、ＭＯＡＰ８２７の項目内のアドレスである。例えば、図２１のブロックＡに操作を加える装置は、ＭＯＡＰ８２７の最初のワードからブロックＡへのポインタを受信するように実際にコード化される。一方、ブロックＢを対象とした装置は、ＭＯＡＰ８２７の第２のワードからブロックＢへのポインタを受信するように実際にコード化される。
【０１４８】
制御回路３０１内の幾つかのデータ・ブロックに同時に操作を加える装置が幾つか存在する。これらのブロックに関して、マイクロプロセッサ３０２と装置の間で通信を行うためのメカニズムは、メモリ・ブロックの各グループに割り当てられた単一ビットのレジスタである。これらのレジスタは、装置及びマイクロプロセッサ３０２の両方によって読み取り／書き込みが可能である。これらの単一ビットのレジスタは、「チェック・レジスタ」と呼ばれ、図２１に要素１４０１ａ、１４０１ｂ、１４０１ｃ、及び１４０１ｄとして図示されている。これらのチェック・レジスタ１４０１に関する操作は、下記の通りである：。
【０１４９】
マイクロプロセッサ３０２は、メモリ・ブロックを装置に割り当て、ＭＯＡＰ８２７に開始アドレスを書き込み、その装置のために対応するチェック・レジスタ１４０１を設定する。装置を制御する状態マシンは通常、そのチェック・レジスタ１４０１が設定されるのを待つ。チェック・レジスタが設定されると、状態マシンは進行し、ＭＯＡＰ８２７の項目をコピーし、チェック・レジスタ１４０１のチェックを解除する。マイクロプロセッサ３０２は、そのレジスタのチェックが解除されたことが分かると、次のブロックを割り当て、再びチェック・レジスタを設定する。
【０１５０】
好適実施例では、ＭＯＡＰには下記の項目が含まれている：
ＭＯＡＰ［０］  ＝  次のＲＡＭ−ＬＡＮブロック
ＭＯＡＰ［１］  ＝  次のＬＡＮ−ＲＡＭブロック
ＭＯＡＰ［２］  ＝  次の暗号ブロック
ＭＯＡＰ［３］  ＝  次の暗号ブロック・オフセット
ＭＯＡＰ［４］  ＝  アップストリーム・プリアンブル・ブロック
ＭＯＡＰ［５］  ＝  アップストリーム予約ブロック
ＭＯＡＰ［６］  ＝  アップストリーム予約ブロック・オフセット
ＭＯＡＰ［７］  ＝  次のアップストリーム送信ブロック
ＭＯＡＰ［８］  ＝  次のアップストリーム送信ブロック・オフセット。
【０１５１】
ＭＯＡＰ［０］及びＭＯＡＰ［１］によって指される２つのブロックは、ＭＯＡＰにおいて指定される個々のパケットの開始アドレスだけしか必要としない。これら２つのブロック内のパケットは、個別にマイクロプロセッサ３０２のアテンションを必要とし、必ず最初に、マイクロプロセッサ３０２によって準備されなければならない。マイクロプロセッサ３０２は、どのパケットが処理されることになるかを決定し、パケットの制御を制御回路３０１の装置に委ねる前に、ＬＡＮチップ３０７の制御を行う。
【０１５２】
ＭＯＡＰには、暗号装置８１１に関する２つの項目（ＭＯＡＰ［２］、ＭＯＡＰ［３］）が含まれている。一方の項目は、実際にはパケットのヘッダである、パケットの開始部分を指す。もう１つの項目は、パケットの開始部分から暗号化すべき実際のデータ・ブロックまでのオフセットである。この構成の理由は、暗号ブロックが、データ・フォーマットの異なる、幾つかのパケット・タイプの１つとすることがことができるという点にある。例えば、ダウンストリーム・ペイロード・パケットは、暗号解読を必要とするが、アップストリーム・データ・パケットは、暗号化を必要とする。アップストリーム・パケットとダウンストリーム・パケットのフォーマットは、互いに異なっている。このため、ＭＯＡＰ８２７は、各パケットのデータのオフセットに関する追加情報を含んでいる。マイクロプロセッサ３０２は、どのパケットを暗号化する必要があるかを決定する。次に、マイクロプロセッサ３０２は、適合するキーである、ＩＶレジスタをロードし、暗号チップ３１１のモード・レジスタを設定する。それが完了すると、マイクロプロセッサ３０２は、ＭＯＡＰ［２］及びＭＯＡＰ［３］をパケットの正しいアドレス及びオフセットで更新する。
【０１５３】
アップストリーム送信はほとんど、２ステップの処理である。最初に、マイクロプロセッサ３０２は、どのパケットがアップストリーム送信されることになるかを決定する。次に、マイクロプロセッサ３０２は、パケットの長さ及びＭＴＵ（最大送信単位）に基づいて、アップストリーム送信のために予約されるべき「スロット」数を計算する。次に、マイクロプロセッサ３０２は、空のテンプレート又は別のデータ・パケットであることが考えられる、予約パケットの予約フィールドを「スロット」情報で更新し、ＭＯＡＰ［５、６］にこの予約パケットを指示する。マイクロプロセッサ３０２は次に、ＭＯＡＰ［７、８］に送信すべきブロックの開始アドレス及びオフセットを書き込む。マイクロプロセッサ３０２は、アップストリーム装置８０９に「予約による」送信を行うように伝える。
【０１５４】
アップストリーム装置８０９は最初に、２つの部分、即ち、ハードウェアによる「１」の定数ストリームと、ＭＯＡＰ［４］によって指示されるプリアンブルの残りの部分から成る、プリアンブルを送信し、次に、上述のように、肯定応答及び待機のための全プロトコルを用いて、競合チャネル上に予約パケットを送信する。アップストリーム装置８０９は次に、肯定応答なしで、予約チャネル上にプリアンブル及び実際のデータ・パケットを送信する。
【０１５５】
この案には、幾つかの変更が考えられる。例えばマイクロプロセッサ３０２は、競合チャネルを介して、最小ＴＵ未満の長さのパケットを送信するよう決定を下すことができる。この場合、ＭＯＡＰ［７］によって指示されたパケットだけが、肯定応答によって、競合チャネル上に送信される。
【０１５６】
もう１つの場合、マイクロプロセッサは、幾つかのパケットを１つの予約処理にグループ化し、ＭＯＡＰ［５］によって指示される、これら全てのパケットを表す１つの予約パケットを構成するよう決定することができる。次に、マイクロプロセッサは、全てのパケットが送信されるまで、先行パケットの送信中に、ＭＯＡＰ「７、８」を次のパケットのアドレスに更新することを保証する。
【０１５７】
パケットは、最小ＴＵ（最も近いケーブル・モデムと最も遠いケーブル・モデムとの間における往復遅延差）より短くなってはならない。パケットの内容に関係なく、最小サイズのパケットを保証するメカニズムは、ポストアンブルのサイズである。ポストアンブルのサイズは、少なくとも２バイトの重要でないデータである。ポストアンブルのバイト数が、アップストリーム送信のヘッダに書き込まれる。マイクロプロセッサ３０２は、予約パケットを含む各パケット毎に、パケットのヘッダにポストアンブルのサイズを書き込む。
【０１５８】
ＲＡＭにおけるパケット・フォーマット
図２２は、ＲＡＭ３０９に記憶されている、パケット１４０３の一般フォーマットに関する概略図である。状態マシン及びマイクロプロセッサ３０２を助けるため、ヘッダ１４０５が、ある状態及びカウント情報と共に、各パケットに追加される。ヘッダのサイズは、シフト・レジスタ・チェイン（ＫＴＲＥＧ［０］）をプログラミングすることによって変更される。ダウンストリーム・チャネル上で受信されるパケットのヘッダ１４０５として、８ワードが追加される。最初の２ワードは、全てのパケット・タイプに共通である。
【０１５９】
最初のワード１４０７は、パケット１４０３を処理するためにパケット１４０３を保持した状態マシンが達成しなければならない反復数に関する情報である。反復カウント・ワード１４０７は、マイクロプロセッサ３０２によって書き込まれる。第２のワード１４０９は、ファームウェア・フラグ・フィールド（ＦＦＦ）であり、マイクロプロセッサ３０２のために予約される。
【０１６０】
ワード３ないし８はジョブに固有のものであり、必ずしも、特定の状態マシンによって用いられるとは限らない。
【０１６１】
ヘッダ１４０５の使用例の１つは、ダウンストリーム・ペイロード・データの場合である。ダウンストリーム・ペイロード・データは、ケーブル１１１からＬＡＮチップ３０７までの移動の間に、ヘッダの４ワードを使用する。パケットが受信されると、ダウンストリーム・ペイロード装置８０７は、入力ペイロード・アドレスのタイプをチェックする。そのパケットがマルチキャスト・パケットであり、この特定のＣＭ１１３にアドレス指定されている場合、ダウンストリーム・ペイロード装置８０７は、このアドレスに関するハッシュ値を計算し、それをヘッダ１４０５のワード番号４に書き込む。
【０１６２】
パケットの受信が完了すると、ＤＰＤ８０７は、オーバヘッドを含む、受信情報のバイト数をヘッダ１４０５のワード番号３に書き込む。
【０１６３】
マイクロプロセッサ３０２は、暗号解読操作の反復数（パッドを含め、オーバヘッドを除いた８の倍数）を計算し、ヘッダのワード番号１（反復フィールド）に書き込む。マイクロプロセッサは、ペイロード・データのＥ（暗号化）ビット、Ｔ（データ内の加入者ペイロード）ビット、更にはアドレス・フィールドのチェックも行い、暗号化操作に関する正しい暗号解読キーを判定する。そのアドレスがマルチキャスト・アドレスの場合、マイクロプロセッサ３０２はヘッダ１４０５のワード番号４（ハッシュ値）を使用して、ＭＡＣアドレスの迅速で正確な比較を行う。マイクロプロセッサは次に、「青信号」を設定して、暗号装置８１１の状態マシンを起動することができる。
【０１６４】
暗号解読の後で、マイクロプロセッサ３０２は、もとのバイト・カウント（ヘッダ１４０５のワード３）を読み取り、オーバヘッドについてその調整を行い、ＬＡＮチップ３０７に書き込む。マイクロプロセッサ３０２は、同じ情報を使用して、ＬＡＮチップに書き込まれるワード数の計算を行って、この値をヘッダ１４０５のワード番号１（反復フィールド）に書き込み、ＲＡＭ−ＬＡＮ装置８１９にＬＡＮチップ３０７に対するデータの反復送信を行うように伝える。
【０１６５】
各状態マシンは、アドレス・レジスタとして使用する、少なくとも１６ビットのレジスタ／カウンタを備えている。このレジスタは、ベース・レジスタ１４１０であり、通常ＭＯＡＰ８２７からロードされる。各状態マシンは、シフト・チェイン１４１１からロードされる５ビットのオフセット・レジスタ１４１３も備えている（シフト・チェインについては、「内部レジスタ」と題するセクションにおいて解説される）。暗号ブロックは、各暗号化操作毎にオフセット値の異なる、暗号化又は暗号解読のどちらかに関するのものであるため、暗号装置８１３は、各パケット毎に、ＭＯＡＰ８２７からそのオフセット・レジスタ１４１３にポインタをロードする。アクセスすべきパケットの実際のアドレスを得るため、加算器１４１５によって、ベース・レジスタ１４１０の内容がオフセット・レジスタ１４１３に加えられる。
【０１６６】
マイクロプロセッサ
マイクロプロセッサ３０２は、ケーブル・モデム１１３の性能及び制御回路３０１の動作において重要な役割を果たしている。制御回路３０１は、多くの入力／出力レジスタ（セクション「マイクロプロセッサ・レジスタ概説」において後述）を含んでいる。マイクロプロセッサ３０２は、これらのレジスタを設定することによって、ケーブル・モデム１１３の動作を制御する。
【０１６７】
マイクロプロセッサ３０２によって、多くの初期設定タスクが実行される。初期設定の際、マイクロプロセッサ３０２は、ケーブル・モデムのＭＡＣアドレスを判定し、その情報を制御回路３０１のハードウェア・レジスタに送信する。マイクロプロセッサ３０２はまた、制御回路３０１、チューナ３０３、及び送信器３０５の初期設定も行う。
【０１６８】
また、初期設定の間、マイクロプロセッサ３０２はアップストリーム・チャネルを介してサーバ・ステーション１０１とネゴシエーションを行い、キー計算及びキー交換を実施する。２タイプの初期設定、即ち、インストール時の初期設定と、パワー・サイクルを行う、良好なインストールが行われたケーブル・モデム１１３の初期設定が存在する。
【０１６９】
インストール時、ケーブル・モデム３０１の最初のタスクは、ダウンストリーム・チャネルを見つけるためのものである。ダウンストリーム・チャネルを見つけ出すために、ケーブル・モデム１１３はチャネル・テーブルを用いてチューナ３０３の同調及びテスト操作を実施する。このテーブルは、マイクロプロセッサ３０２のＲＯＭ内に記憶されている。ＲＯＭベースのチャネル同調テーブルは、ケーブル・モデム１１３が、確率の低いチャネルを試すことなく、確率の高いチャネルに同調するように構成されている。テーブル内の各項目毎に、ケーブル・モデムがそのチャネルに同調し、そのダウンストリーム制御チャネルを受信しようとする。ＣＭ１１３が、ダウンストリーム制御ストリームを受信しない場合、ＣＭ１１３は、そのチャネルがサーバ・ステーション１０１からのダウンストリーム・チャネルではないと仮定して、チューナ３０３をテーブルの次の項目に同調させる。ケーブル・モデム１１３がダウンストリーム制御チャネルを見つけ出すことなく、テーブルを用いた同調を完了すると、エラー・インジケータ（例えば、ケーブル・モデム１１３のエラー・ライト）がオンになり、ケーブル・モデム１１３のパワー・サイクルが再び行われるまで、処理が中断される。
【０１７０】
ケーブル・モデム１１３は、一旦ダウンストリーム・チャネルを認識すると、チャネル番号をＥＥＰＲＯＭ内に記憶し、後続のパワー・アップ時にそのダウンストリーム・チャネル番号を使用する。
【０１７１】
ダウンストリーム・チャネル番号は、時々変化する可能性がある。サーバ・ステーション１０１のオペレータは、実際の変更前のある時点において（例えば、１又は２日前に）、制御チャネル上でダウンストリーム・チャネル変更フレームを送出することによって、ダウンストリーム・チャネルを変更する。ケーブル・モデムは、新しいチャネル番号をＥＥＰＲＯＭ内に記憶する。ケーブル・モデム１１３は、もはや古いダウンストリーム・チャネルを検出できなくなると、チューナ３０３に受信すべきチャネルを変更させることによって、自動的に、その新しいチャネルに変更する。
【０１７２】
ケーブル・モデム１１３のパワー・オン時に、まず、チューナ３０３をＥＥＰＲＯＭ内に最後に記憶されたダウンストリーム・チャネルに同調させることによって、ケーブル・モデム１１３とサーバ・ステーション１０１との間におけるリンクが確立される。ケーブル・モデムは次に、サーバ・ステーション１０１が、現在稼働中のアップストリーム・チャネルを示すのを待つ。アップストリーム・チャネル番号が分かると、ケーブル・モデム１１３は、サイン・オン・スロットを待つ。サイン・オン・スロットは、ケーブル・モデム３０１の送信パワー設定を初期設定するために予約される。ケーブル・モデム１１３は、最初に平均的なパワー設定（この情報はサーバ・ステーション１０１によって送出される）で送信を行い、サーバ・ステーション１０１からのサイン・オンＡＣＫを待つ。ＡＣＫを受信しなければ、パワー設定を増強し、サイン・オン・スロットの乱数が渡された後でケーブル・モデム１１３が再試行する。パワー設定の増強が限界に達すると、ケーブル・モデム１１３は、平均的なパワー設定から待機を開始する。
【０１７３】
ケーブル・モデム１１３が正しいパワー設定を決定すると、このパワーが、後続のパワー・アップ・サイン・オンの際の再利用に備えて、ＥＥＰＲＯＭ内に記憶される。サーバ・ステーション１０１は、任意の時間に、ケーブル・モデム１１３がパワー設定の増強、又は低減することを要求できる。
【０１７４】
正しい送信パワー設定が確立されると、ケーブル・モデム１１３はサーバ・ステーション１０１と通信できる。そのステージにおいて、ケーブル・モデム１１３は、それ自身を識別し、ＤＥＳ暗号キーを得るのに必要なＤｉｆｆｉｅ−Ｈｅｌｌｍａｎキー交換を送出する。マイクロプロセッサは、そのキー交換アルゴリズムを管理し、交換キー、及び生成された乱数をレジスタに記憶し、暗号装置８１３及び暗号チップ３１１による利用に備える。
【０１７５】
初期設定の間、マイクロプロセッサ３０２は、装置（８０５、８０７、８０９、８１１、８１３、８１５、８１７、８１９、及び８２９）がＲＡＭ３０９へのアクセスに使用するポインタを含むレジスタ・ファイルの初期設定も行う。マイクロプロセッサは、ＲＡＭ３０９内に常駐するメモリ構造の初期設定も行う。
【０１７６】
ケーブル・モデム１１３の動作中、マイクロプロセッサは、レジスタ（下記の「内部レジスタ」における論述を参照されたい）を介して制御回路３０１と対話し、ＲＡＭ３０９、及びＲＡＭ３０９内に保持されるバッファを管理する。
【０１７７】
マイクロプロセッサはまた、ＬＡＮチップ３０７の状態、及び関連する制御レジスタに対する読み取り、及び書き込みを行うことによって、ＬＡＮチップ３０７の準備も行う。
【０１７８】
マイクロプロセッサ３０２は、制御回路３０１内におけるＭＯＡＰ８２７及び制御レジスタの管理も行い、制御回路３０１の状態マシンを、制御回路３０１の各種装置間においてデータを移動させるよう導く。状態マシンについては、「状態マシン」と題するセクションにおいて後述する。
【０１７９】
マイクロプロセッサ３０２は、ケーブル・モデム１１３がダウンストリーム制御チャネル及びペイロード・チャネル上で受信するコマンドの処理も行い、これらのコマンドを実施する。
【０１８０】
更に、マイクロプロセッサ３０２は、制御回路３０１のマイクロプロセッサ・インタフェイス８２９において、状態レジスタからタイミング・スロットの持続時間を求め、この情報をアップストリーム・チャネル装置８０９に提供する。更に、マイクロプロセッサ３０２は、アップストリーム送信のパケット長が現在のスロット長を超えると、「予約要求パケット」の構成及び送信スケジュールを管理する。マイクロプロセッサはまた、必要に応じて、送信機能に関する制御回路の内部レジスタの設定を行うことにより、アップストリーム・チャネル装置８０９を支援する。
【０１８１】
内部レジスタ
マイクロプロセッサ３０２による制御回路３０１を含むＣＭ１１３の構成要素に対する全てのトランザクションは、Ｉ／Ｏレジスタを介して行われる。各装置には、連続したＩ／Ｏ空間が割り当てられる。例えば、ＬＡＮチップ３０７は、ＬＮＢＳＥの開始アドレスを備えた「Ｎ」の１６ビット・レジスタが割り当てられる。制御回路３０１の共通ＲＡＭ３０９は、６４Ｋの連続アレイをなすワード・レジスタとして見えるように仮想化される。ケーブル・モデム１１３には、共通ＲＡＭ３０９のＩ／Ｏを含む、６つのＩ／Ｏ空間が存在する。これらのＩ／Ｏ空間に関するベース・アドレスは、下記の通りである：
ＬＡＮ３０７                ＬＮＢＳＥ
暗号チップ３１１      ＣＩＢＳＥ
チューナ３０３          ＴＵＢＳＥ（チューナ及び支援回路）
送信器３０５              ＴＲＢＳＥ
制御回路３０１          ＫＴＲＥＧ（レジスタ空間）
制御回路３０１          ＫＴＲＡＭ（共通ＲＡＭ３０９空間）
制御回路３０１          ＫＴＭＯＡＰ（ＭＯＡＰレジスタ・ファイル）。
【０１８２】
制御回路３０１のレジスタは、下記の通りである：
ＫＴＲＡＭ  ＋  ｎ    共通ＲＡＭワードｎ      Ｒ／Ｗ
ＫＴＭＯＡＰ  ＋  ｎ    ＭＯＡＰワードｎ        Ｒ／Ｗ
ＫＴＭＯＡＰ［０］  ＝  次のＲＡＭ−ＬＡＮブロック
ＫＴＭＯＡＰ［１］  ＝  次のＬＡＮ−ＲＡＭブロック
ＫＴＭＯＡＰ［２］  ＝  次の暗号ブロック
ＫＴＭＯＡＰ［３］  ＝  次の暗号ブロック・オフセット
ＫＴＭＯＡＰ［４］  ＝  アップストリーム・プリアンブル・ブロック
ＫＴＭＯＡＰ［５］  ＝  アップストリーム予約ブロック
ＫＴＭＯＡＰ［６］  ＝  アップストリーム予約ブロック・オフセット
ＫＴＭＯＡＰ［７］  ＝  次のアップストリーム送信ブロック
ＫＴＭＯＡＰ［８］  ＝  次のアップストリーム送信ブロック・オフセット
ＫＴＭＯＡＰ［１５：９］  ＝  未使用
ＫＴＲＥＧ  ＋  ０      シフト・チェイン
ビット０        Ｒ／Ｗ      ｄｏｕｔ／ｄｉｎ
ビット１        Ｗ        シフト。
【０１８３】
制御回路３０１内部には、一度だけ初期設定される多くのレジスタが存在しており、その値はあまり変更されない。これらのレジスタは、互いにチェインされており、長いシフト・レジスタとしてアクセスされる。レジスタ０を読み取る場合、シフト・チェインの終りにおけるデータは、ビット０である。単一データ・ビットをシフト・チェイン内にシフトするには、２つの書き込み操作が必要になる。まず、ビット０＝データ・ビット、及びビット１＝１をレジスタ０に書き込む。次に、ビット０＝同じデータ・ビット、ビット１＝０をレジスタ０に書き込む。データは、ビット１の立ち下がりエッジにおいてシフト・チェイン内にシフトされる。シフト・チェインの読み取りは、破壊読み取りである。チェインの読み取り時にシフト・チェインの内容を保存するために、マイクロプロセッサ３０２はまず、ビット０を読み取り、次に上述のように、そのビットをシフト・チェイン内に戻すようシフトさせる。マイクロプロセッサ３０２は、シフト・チェイン全体の読み取り、又は書き込みを実施しなければならない。シフト・レジスタの内容は下記の通りである：
自身のＭＡＣアドレス                                    ４８ビット
ペイロード状態マシン・オフセット                ５ビット
ＬＡＮ−ＲＡＭ状態マシン・オフセット                      ５ビット
ＲＡＭ−ＬＡＮ状態マシン・オフセット                      ５ビット
ペイロードのバッファ上部（ＰＴＯＢ）                    １６ビット
ペイロードのバッファ底部（ＰＢＯＢ）                    １６ビット
ダウンストリーム制御のバッファ上部（ＤＳＣＴＯＢ）  １６ビット
ダウンストリーム制御のバッファ底部（ＤＳＣＯＢＯ）  １６ビット
プリアンブル・ブロック・サイズ                    ４ビット
プリアンブルの最初の１のサイズ                  ３ビット
待機アルゴリズム・パラメータ                        ４ビット
フロントエンド・プリプロセッサへのＱ２５６信号  １ビット。
【０１８４】
代替実施例の場合、シフト・チェインにおけるレジスタは、直接アクセス・レジスタである。
【０１８５】
自身のＭＡＣアドレスは、ケーブル・モデムを表す６バイトのＭＡＣアドレスである。それは、ケーブル・モデム１１３のＭＡＣアドレスである。
【０１８６】
ＲＡＭ−ＬＡＮ８１９、ＬＡＮ−ＲＡＭ８１５、及びペイロード８０７の状態マシンに関してＲＡＭ３０９に常駐するパケットのオフセットは、オフセット・レジスタを用いて設定される。ＲＡＭ３０９常駐パケットについては、図２２に関連して解説済みである。オフセット・レジスタの値を変更すると、ヘッダのサイズが変化する。
【０１８７】
ＰＴＯＢ、ＰＢＯＢ、及びＤＳＣＴＯＢ、ＤＳＣＢＯＢは、ペイロード及びダウンストリーム制御装置のバッファの上部及び底部であり、「バッファ管理」と題するセクションにおいて解説される。
【０１８８】
プリアンブル・ブロック・サイズは、各アップストリーム・ブロックの前に送信されるアップストリーム・プリアンブルの固定部分に関するサイズ（ワードで表す）である。プリアンブル・ブロックは、ケーブル・モデムＭＡＣアドレス、同期、及び５バイトの長さで全て１のフラグの一部を含んでいる。
【０１８９】
プリアンブルの最初の１のサイズは、全てが１のフラグの最初のプリアンブルをワード数で表したサイズであり、ＲＡＭ３０９からプリアンブルの残りの部分を送信する前に、ハードウェアによって送信される。待機アルゴリズム・パラメータは、ネットワークのインストール及びトポロジに基づいて決まる６ないし１０の間の数である。このパラメータによって、待機アルゴリズムの効率が決まる。
ＫＴＲＥＧ＋１                  チェック・レジスタ（割り込みなし、ファームウェアからハードウェアに）          Ｒ／Ｗ
ビット０      ＰＬＦＣ          ケーブル・バッファからのペイロードが有効
ビット１      ＣＩＰＨ          暗号ブロック準備完了
ビット２      ＲＴＬ              ＲＡＭ−ＬＡＮインタフェイスからのスピン・データ
ビット３      ＤＳＣＣ          ダウンストリーム制御バッファが有効
ビット４      ＬＴＲ              ＬＡＮ−ＲＡＭインタフェイスからのスピン・データ
ビット５      ＵＳＴＲ＿ＲＳＶ    アップストリーム送信、予約の実施
ビット６      ＵＳＴＲ＿ＮＣ      アップストリーム送信、無競合チャネル
ビット７      ＵＳＴＲ−Ｃ        アップストリーム送信、競合チャネル
ビット１４      ＳＭＲＴＩＡＳＡＰ  状態マシンができるだけ早くアイドルに戻る
ビット１５      ＳＲ              （１）ビットを設定し、（０）ビットをリセットする。
【０１９０】
ＫＴＲＥＧ＋１は、個々のビットがマイクロプロセッサ３０２によって設定されるハードウェア・チェック・レジスタである。これらの個々のビットは、ハードウェア状態マシンにその特定のタスクを実施するよう伝える。状態マシンは、コマンドを受信すると、これらのビットをクリアする。状態マシンがビットをクリアすると、肯定応答がマイクロプロセッサ３０２に送信されることになる。レジスタの１ビットはマイクロプロセッサ３０２によって設定されるので、これらのフラグが設定されると、割り込みが発生しない。
【０１９１】
アップストリーム送信はケーブル・モデム１１３の複雑な操作であり、一般に、２ステップで完了する。最初のステップは予約であり、次のステップはデータ・パケットの送信である。各ステップはまた、ダウンストリーム制御チャネルと近接したタイミングで協動し、動作しなければならない。アップストリーム・パケットの送信には３つのケースがある。
【０１９２】
ケース１は、マイクロプロセッサ３０２が、予約チャネルを介して単一データ・パケットを送信する場合である。このケースでは、マイクロプロセッサ３０２は、ＭＴＵに基づいて必要な予約スロット数を計算し、共通ＲＡＭ３０９における予約構造を更新しなければならない。マイクロプロセッサ３０２は次に、ＵＳＴＲ＿ＲＳＶビットを設定する。ＵＤ８０９は最初に、競合チャネルを介して予約パケットを伝送信し、次に、予約チャネルを介してデータ・パケットを送信する。
【０１９３】
ケース２は、マイクロプロセッサ３０２が、予約チャネルを介した送信に備えて、幾つかのアップストリーム・パケットをグループ化する決定を行う場合である。この場合、マイクロプロセッサ３０２は、ＭＴＵ、アップストリーム・パケットの個々の長さ、及び全体の長さに基づいて、必要な予約スロット数を計算し、共通ＲＡＭ３０９における予約パケット・テンプレートを更新する。マイクロプロセッサ３０２は次に、第１のパケットに関してＵＳＴＲ＿ＲＳＶビットを設定する。マイクロプロセッサ３０２は次に、ＵＳＴＲ＿ＲＳＶビットを監視する。このビットがＵＤ８０９によってクリアされている場合は、第１のパケットが送信中であることを表す。次にマイクロプロセッサ３０２は、次のパケットの準備を行い、ＵＳＴＲ＿ＮＣビットを設定して、状態マシンに、次のパケットが予約技法に関与する一連のパケットの一部であり、最初に利用可能なタイム・スロットの始めに送信されなければならないということを伝えなければならない。マイクロプロセッサ３０２は次に、先行パケットが送信される度に、監視し、残りのパケットに関してＵＳＴＲ＿ＮＣビットを設定する。
【０１９４】
ケース３は、マイクロプロセッサ３０２が、ＭＴＵより短いパケットは競合チャネルを介して送信されなければならないと決定する場合である。このケースでは、マイクロプロセッサ３０２は、パケットの準備を行い、ＵＳＴＲ＿Ｃビットを設定する。状態マシンは次に、競合チャネルだけを用いてデータ・パケットを送信する。
【０１９５】
状態マシンは、ＫＴＲＥＧ＋１のビット１４、「ＳＭＲＴＩＡＳＡＰ、状態マシンができるだけ早くアイドルに戻る」を頻繁に監視し、このビットが「１」に設定されたことが分かると、アイドル状態に戻るように設計されている。これは、ケーブル・モデム１１３における全てのアクションを停止させるのに便利な方法である。最良の結果を得るには、ＫＴＲＥＧ＋１の他の全てのビットが０に設定されなければならない。
【０１９６】
ＫＴＲＥＧレジスタ（例えば、ＫＴＲＥＧ＋１）のそれぞれは、単一のマルチ・ビット・レジスタではない。各ＫＴＲＥＧレジスタは、実際には、幾つかの独立した１ビット・レジスタである。独立したビット・レジスタを設けることによって、マイクロプロセッサ３０２があるビットを読み取って、修正しようと試みている一方で、制御回路３０１が別のビットをクリアしようと試みている場合、競合状態が回避される。ビットを１に設定するには、ビット１５に対応するビット位置に１を書き込むことによっても、１に設定される。ビットを０にリセットするには、ビット１５の対応する位置に１を書き込むことによって、０にセットされる。例えば、ＫＴＲＥＧ＋１に０ｘ８００５の値を書き込むと、他のビットに影響を与えずに、ＰＬＦＣ及びＲＴＬが１に設定され、ＫＴＲＥＧ＋１に０ｘ０００Ａの値を書き込むと、他のビットに影響を与えずに、ＣＩＰＨ及びＤＳＣＣがクリアされることになる。
ＫＴＲＧ＋２    チェック・レジスタ（割り込みあり、ハードウェアからファームウェアに）      Ｒ／Ｗ
ビット０        ＰＬＦＣ＿ＷＲＡＰ        ペイロード・バッファが循環
ビット１        ＤＳＣ＿ＷＲＡＰ          ダウンストリーム制御バッファが循環
ビット２        ＣＤＮＥ            暗号化完了
ビット３        ＲＴＬＤＮＥ              ＲＡＭ−ＬＡＮ完了
ビット４        ＰＬＦＣＤＮＥ        ケーブルからの１パケットのペイロード完了
ビット５        ＬＴＲＤＤＮＥ            ＬＡＮ−ＲＡＭデータ完了
ビット６    ＵＳＴＲＴＤＮＥ      アップストリームの１パケット（予約パケットを除く）伝送完了
ビット７        ＣＯＮＴＲＣＤ        ダウンストリーム制御の１パケット受信
ビット１５      ＳＲ                      （１）ビットをセットし、（０）ビットをリセット。
【０１９７】
ＫＴＲＥＧ＋２レジスタのビットは、ハードウェア状態マシンによって設定され、一般に、マイクロプロセッサ３０２に、状態マシン及びハードウェアの進行状況を知らせる。マイクロプロセッサ３０２は、該ビットをクリアして、各ビットに関する次の状態変化を待つ。これらのレジスタ・ビットのどれかを設定することによって、マイクロプロセッサ３０２に割り込みを生じさせる。割り込みは、ＫＴＲＥＧ＋３への書き込みによって可能、又は不可能とすることができる。用いられるアルゴリズム及びマイクロプロセッサの割り込み待ち時間に基づいて、割り込みの使用を決定する責務を負うのはマイクロプロセッサ３０２である。
【０１９８】
ビット２ないし７は、ＭＯＡＰから次のブロックのアドレスを入手すると、状態マシンによってクリアされ、そのパケットが完了すると、設定される。これらのビットは、マイクロプロセッサ３０２によってリセットされるか、あるいは、次のブロックの処理が始まるまで、設定されたままである。このことはマイクロプロセッサ３０２が常に注意している必要をなくすものである。マイクロプロセッサ３０２は、レジスタ１の対応するビットを監視し、状態マシンがＭＯＡＰからブロックのアドレスを入手して、フラグをクリアするとすぐに、複数のパケットを次から次へと処理するように配置することができる。状態マシンによるフラグのクリアは、先行ブロックが完了したことを意味する。従って、ＫＴＲＥＧ＋２の対応するビットをチェックし、クリアする必要はない。状態マシンは、ＫＴＲＥＧ＋２の対応するビットもクリアするので、これらのビットは、別のパケットが待ち行列化されているか否かに関係なく、処理を受ける最後のパケットの状態を表している。
【０１９９】
ビット１５は、ＫＴＲＥＧ＋１のビット１５と全く同様に機能する。
ＫＴＲＥＧ＋３    マスク・レジスタの割り込み                      Ｗ
ＫＴＲＥＧ＋３は、上記ＫＴＲＥＧ＋２の各ビットに対応するビットを１つ備えている。このビット位置に「１」を書き込むと、対応する割り込みが許可される。
ＫＴＲＥＧ＋４    エラー（ペイロード）                                  Ｒ／Ｗ
ビット７：０      ペイロードＣＲＣエラーのカウント
ビット１５：８      ペイロード消失バッファ・エラーのカウント
ＫＴＲＥＧ＋５      状態（ペイロード）                                    Ｒ／Ｗ
ビット１５：０      受信ペイロード・パケットのカウント
ＫＴＲＥＧ＋６    エラー及び状態（ダウンストリーム制御）        Ｒ／Ｗ
ビット７：０        ダウンストリーム制御ＣＲＣエラーのカウント
ビット１５：８      ダウンストリーム制御消失バッファ・エラーのカウント
ＫＴＲＥＧ＋７        エラー及び状態（ダウンストリーム制御）        Ｒ／Ｗ
ビット１５：０    受信ダウンストリーム制御パケットのカウント
ＫＴＲＥＧ＋８      エラー及び状態（アップストリーム）            Ｒ／Ｗ
ビット１５：０      アップストリーム再送エラーのカウント
ＫＴＲＥＧ＋９        エラー及び状態（アップストリーム）                Ｒ／Ｗ
ビット７：０        待機失敗によるアップストリーム・ドロップ・パケットのカウント
ＫＴＲＥＧ＋１０    状態（アップストリーム）                    Ｒ／Ｗ
ビット１５：０    送信アップストリーム・パケットのカウント
ＫＴＲＥＧ＋１１    バッファ管理（ペイロード）                      Ｗ
ビット１５：０      ペイロード・ファームウェアの読み取りポインタ
ＫＴＲＥＧ＋１２    バッファ管理（ペイロード）                      Ｒ／Ｗ
ビット１５：０      ペイロード制御回路３０１の書き込みポインタ（ペイロード・ベース・レジスタ）
ＫＴＲＥＧ＋１３    バッファ管理（ダウンストリーム制御）              Ｗ
ビット１５：０      ダウンストリーム制御ファームウェア読み取りポインタ
ＫＴＲＥＧ＋１４    バッファ管理（ダウンストリーム制御）              Ｒ／Ｗ
ビット１５：０      ダウンストリーム制御回路３０１の書き込みポインタ（ダウンストリーム制御ベース・レジスタ）
ＫＴＲＥＧ＋１５    エラー及び状態ロールオーバ・レジスタ          Ｒ／Ｗ
ＫＴＲＥＧ＋１５における各ビットは、特定のカウンタのロールオーバを示すフラグである。
ビット０          ペイロードＣＲＣエラー・カウンタのロールオーバ
ビット１          ペイロード消失バッファ・エラー・カウンタのロールオーバ
ビット２          受信ペイロード・パケット・カウンタのロールオーバ
ビット３          ダウンストリーム制御ＣＲＣエラー・カウンタのロールオーバ
ビット４          ダウンストリーム制御消失バッファ・エラー・カウンタのロールオーバ
ビット５          受信ダウンストリーム制御パケット・カウンタのロールオーバ
ビット６          アップストリーム再送エラー・カウンタのロールオーバ
ビット７          アップストリーム・ドロップ・パケット・カウンタのロールオーバ
ビット８          送信アップストリーム・パケット・カウンタのロールオーバ。
【０２００】
マイクロプロセッサ３０２は、上記ビットをリセットすることしかできない。任意のビット位置に１を書き込むと、「そのビットが０にリセットされる」だけであり、他のビットには影響がない。例えば、０ｘ０００３をこのレジスタに書き込むと、ビット０と１が「０」にリセットされるだけで、他のビットには影響がない。
【０２０１】
最大カウントの半分が、次のカウント・サイクルに到達するまで、上記ビットは、ロールオーバ後、設定されたままである。例えば、ＫＴＲＥＧ［５］が、０ｘｆｆｆｆから０ｘ００００にわたってロールオーバすると、ビット２は、「１」に設定され、カウントが０ｘ８０００に達して、次のカウント・サイクルに入るまで「１」のままである。この結果、マイクロプロセッサ３０２が該ビットをクリアし、カウント全体を累算するのに十分な時間が得られることになる。
【０２０２】
次のビットのどれかが設定されると、割り込みが発生する。
ＫＴＲＥＧ＋１６      上記ＫＴＲＥＧ＋１４に関する割り込みマスク・レジスタ            Ｒ／Ｗ
任意のビット位置に「１」を書き込むと、ＫＴＲＥＧ［１５］の対応するビットからの割り込みが可能になる。従って、「０」によって、割り込みが禁止されることになる。
【０２０３】
ＫＴＲＥＧ＋１７ないし２０        マルチキャスト・アドレスの論理アドレス・フィルタ（ＬＡＦ）レジスタ        Ｗ
ＫＴＲＥＧ［１７］１５：０        ＬＡＦ（１５：０）
ＫＴＲＥＧ［１８］１５：０        ＬＡＦ（３１：１６）
ＫＴＲＥＧ［１９］１５：０        ＬＡＦ（４７：３２）
ＫＴＲＥＧ［２０］１５：０        ＬＡＦ（４８：６３）
ＫＴＲＥＧ［２１］            ハードウェア・リセット・レジスタ        Ｗ
ビット０            制御回路３０１ハードウェア・リセット
ビット１            チューナ・ハードウェア・リセット
ビット２            暗号チップ・ハードウェア・リセット
ビット３            ＬＡＮハードウェア・リセット
ビット４            送信器ハードウェア・リセット
ビット５            マイクロプロセッサ・ハードウェア・リセット。
【０２０４】
任意のビット位置に１を書き込むと、対応する装置のハードウェア・リセット・ライン上でリセット信号が送信される。制御回路３０１のハードウェア・リセット・ライン上にリセット信号を送信すると、全ての内部レジスタがクリアされる。
【０２０５】
ビット５、即ち、マイクロプロセッサ・ハードウェア・リセットは、マイクロプロセッサ３０２によって、それ自身の強制的リセットに用いられ、ビット５に１を書き込むことによって実施される。短い初期遅延の後、短いリセット・パルスが生成される。ソフトウェア・リセットではなく、ハードウェア・リセットを行う理由は、リフレッシュされたキャッシュ・レジスタを含む、クリーンな初期ハードウェア状態が得られるためである。
ＫＴＲＥＧ［２２］          マスク及び構成                Ｗ
ビット［５：０］    フロントエンドＣＢＲマスク
ビット［９：６］    ケーブル・モデム・アップストリーム・チャネル番号。
【０２０６】
ＣＢＲマスクは、制御チャネルから受信したＣＢＲビットに対してマスクをオン／オフするものである。ＫＴＲＥＧ［３６］のビット［７：０］におけるダウンストリーム・チャネル番号に基づくＱＡＭ記号使用ビットマップを用いて、マスク・パターンが決定される。アップストリーム・チャネル番号は、ダウンストリーム制御チャネルによって割り当てられる。ダウンストリーム制御チャネルは、このチャネルに関する「状態ビットマップ」を生成し、アップストリーム送信ブロックにそれを提供する。
ＫＴＲＥＧ＋３２              タイミング及び制御パラメータ                Ｒ
ビット１５：０        利用可能なアップストリーム・チャネル周波数
ＫＴＲＥＧ＋３３              タイミング及び制御パラメータ                Ｒ
ビット７：０          利用可能なアップストリーム・チャネル数
ビット９：８          利用可能な記号毎のアップストリーム・チャネル・ビット数
ビット１５：１０    利用可能なアップストリーム・チャネル記号転送速度
ＫＴＲＥＧ＋３４            タイミング及び制御パラメータ                Ｒ
ビット１５：１０      スロットＭａｘＴＵ
ＫＴＲＥＧ＋３５                タイミング及び制御パラメータ                Ｒ
ビット３：０          バージョン
ビット７：４          チャネル・タイプ
ビット１４：８    スロット・タイマ長
ビット１５            有効（タイミング及び制御パラメータ・レジスタ、ＫＴＲＥＧ［３２−３７］の内容が有効である）
ＫＴＲＥＧ＋３６          タイミング及び制御パラメータ                Ｗ
ビット７：０          自身のダウンストリーム・チャネル番号
ビット１５：８        ＫＴＲＥＧ［３７］ＱＡＭ記号使用ビットマップに基づくダウンストリーム・チャネルにおけるペイロード・ビット数。デフォルトは、６４−ＱＡＭ構成における５である。
ＫＴＲＥＧ＋３７              タイミング及び制御パラメータ              Ｒ
ビット１５：０        ＫＴＲＥＧ［３６］のビット［７：０］におけるダウンストリーム・チャネル番号に基づくＱＡＭ記号使用ビットマップ。
タイミング及び制御パラメータは、サブコード０ｘ８００１を備えた制御フレーム内に含まれる情報である。幾つかのフィールドは、サブコード０ｘ８００１によって直接送信されるのではなく、ハードウェアによって生成されるか又は、サブコード０ｘ８００１フレームの関する何らかの処理によって得られる。
【０２０７】
ＫＴＲＥＧ［３５］、ビット１４：８（スロット・タイマ長）は、ＤＣＤ８０５によって決定される。それは、スロット・タイマ・フィールドの最大カウントである。
【０２０８】
ＫＴＲＥＧ［３６］、ビット７：０（ケーブル・モデム・ダウンストリーム・チャネル番号）、ＫＴＲＥＧ［３６］、ビット１５：８（ペイロード・ビット数）、及びＫＴＲＥＧ［３７］、ビット１５：０（ＱＡＭ記号使用）は、互いに結び付けられて、共通の目的を果たす。その目的は、各記号内のペイロード・ビット数を求めることである。例えば、６４−ＱＡＭを使用する場合、ケーブル・モデム１１３は、各記号毎に６ビットを受信する。１ビットは制御チャネルであり、５ビットはペイロード・データである。代替実施例では、各記号毎に、１ビットの制御チャネル、２ビットの非ペイロード・データ、及び３ビットのペイロード・データが存在する。
【０２０９】
サブコード０ｘ８００１を備える制御フレームは、各ダウンストリーム・チャネルに関連したＱＡＭ記号使用ビットマップを送信する。マイクロプロセッサ３０２は、ダウンストリーム・チャネルを決定し、ＫＴＲＥＧ＋３６［７：０］にそれを書き込む。制御回路３０１は、情報をフィルタリングし、ＫＴＲＥＧ＋３７［１５：０］でダウンストリーム・チャネルに関連したＱＡＭ記号使用ビットマップを提供する。マイクロプロセッサ３０２は、ＫＴＲＥＧ＋３７を読み取り、ペイロード・ビット数を決定する。マイクロプロセッサ３０２は次に、ペイロード・ビット数をＫＴＲＥＧ＋３６［１５：８］に書き込む。６４−ＱＡＭのデフォルト値は５（１ビットは制御チャネル、５ビットはペイロード・データ、０ビットは非ペイロード・データ）である。
【０２１０】
ＫＴＲＥＧ＋３５ビット１５は、全ての「タイミング及び制御パラメータ」に関する有効ビットである。制御チャネルは、ＫＴＲＥＧ［３２−３７］上の全てのデータが有効であることを保証し、ＫＴＲＥＧ＋３５［１５］上の「１」でそれを認定する。マイクロプロセッサ３０２は、上述のパラメータのどれであれ、その読み取りの直前に１回、及びその直後に１回、必ずこのビットをチェックする。これによって、無効パラメータの読み取り及び利用が回避される。
【０２１１】
状態マシン
各装置は、専用の状態マシンによって制御される。マイクロプロセッサ３０２は、制御回路３０１内のハードウェア・フラグを制御することによって、その状態マシンを制御する。様々な装置の状態マシンも、ハードウェア・フラグを制御することによってマイクロプロセッサ３０２にその状態を伝える。これらのハードウェア・フラグは、制御回路３０１のレジスタ内に記憶されている。全ての状態マシンは同時に動作する。各状態マシンは、ファームウェアからの「青信号」制御フラグを待つ。制御回路３０１のＢＡＰＣ８２５を介してＲＡＭ３０９と対話する各種装置の制御を行う、状態マシンの２つの一般的なカテゴリが存在する。状態マシンの第１のカテゴリは、単一パケットのデータに処理を施して、アイドル状態に戻り、次の青信号を待って、次のパケットを処理する。第１のカテゴリにおける状態マシンは、暗号状態マシン（ＣＤ８１１の場合）、アップストリーム状態マシン（ＵＤ８０９の場合）、ＲＡＭ−ＬＡＮ状態マシン（ＲＴＬ８１９の場合）、及びＬＡＮ−ＲＡＭ状態マシン（ＬＴＲ８１５の場合）である。状態マシンの第２のカテゴリは、自律的に、幾つかのパケットに対して順次作用し、マイクロプロセッサ３０２からの介入はほとんどない。このカテゴリにおける状態マシンは、ダウンストリーム・ペイロード状態マシン（ＤＰＤ８０７の場合）、及びダウンストリーム制御状態マシン（ＤＣＤ８０５の場合）である。第１のカテゴリでは、「青信号」が与えられると、状態マシンは、その単一タスクを実施して、次の「青信号」を待つ状態に戻る。状態マシンには、更に、幾つかの他の並列状態マシンから構成されるものもある。ある主状態マシンが、他の副状態マシンを制御して、この状態マシンに割り当てられた主タスクの副タスクを実施する。
【０２１２】
図２３は、状態マシンの第１及び第２のカテゴリの一般形態に関する「バブル」図である。状態マシンは、状態１５０１において、マイクロプロセッサ３０２が前進信号即ち「青信号」を与えるのを待つ。これは、通常、共通ＲＡＭ３０９内のバッファが使用可能となり、このバッファに関するＭＯＡＰ８２７の項目が有効であることを表している。
【０２１３】
図２４は、装置８０５、８０７、８０９、８１１、８１３、８１５、８１７、及び８１９のアドレス・レジスタに関する一般化データ経路１６０１の概略図である。全ての装置が、図２４の完全な構造を必要とするわけではない。１次ポインタ１６０３、及び２次ポインタ１６０５は、装置によって処理されるべき次の場所に対するアドレスをＲＡＭ３０９内に記憶する。ポインタ１６０３及び１６０５は、３つの操作、即ち、保持、ロード、及びインクリメントの対象になる。
【０２１４】
一般に、ポインタ１６０３及び１６０５は、ベース・レジスタ（又はベース・ポインタ）１６０７、及びオフセット１６１１の加算器／減算器１６０９による加算によってロードされる。ベース・ポインタ１６０７は、装置に関するＭＯＡＰ８２７のレジスタからロードされるか又は、ＭＯＡＰ８２７にベース・ポインタのない装置の場合、シフト・チェイン・レジスタ又は１次ポインタ１６０３からロードされる。１次ポインタ１６０３からロードするケースは、例えば、ＣＲＣエラーが発生し、１次ポインタ１６０３をベース・ポインタ１６０７によって指示されたパケットの始めにリセットして、そのパケットを効果的に廃棄しなければならない場合である。加算器／減算器１６０９については、暗号装置８１１が読み取り操作のため、ポインタを４ワード分逆に移動させる場合である。
【０２１５】
代替案として、加算器、減算器、及び関連するマルチプレクサを用いずに、ベース・ポインタの出力を１次ポインタ１６０３及び２次ポインタ１６０５の入力に直接接続し、１次ポインタ１６０３及び２次ポインタ１６０５にデクリメント操作を加えることによって、同じ結果が得られる。その代替案では、状態マシンは、１次ポインタ１６０３及び２次ポインタ１６０５に対してインクリメント及びデクリメント命令を発行し、同じ結果を得ることができる。しかし、後者の代替案は、図２４に示す実施例より多くのクロック・サイクル数を必要とする。
【０２１６】
図２３に戻ると、状態マシンは、「青信号」を受信すると次のステップに進み、一般に、状態１５０３において、自身のタスク・フラグが有効になるのを待つ。例えば、ケーブルからペイロードをダウンロードする状態マシンは、ここで、新しいペイロード・パケットが利用可能になるのを待ってから、次の操作に進む。状態マシンには、このステップをバイパスして、直接次のステップに進むものもある。例えば、暗号状態マシンは、マイクロプロセッサ３０２からの「青信号」が、有効バッファと有効タスクの両方を表すものであるため、ここで、自身のタスク・フラグを待つ必要はない。特定のタスクを実施する上での第１のステップは、タスク１５０５において、ＭＯＡＰ８２７からバッファの開始アドレスを状態マシンのベース・レジスタにコピーし、「青信号」をクリアして、マイクロプロセッサ３０２に、パケットのアドレスを得たので、マイクロプロセッサ３０２は先へ進むことができることを知らせ、ＭＯＡＰ８２７の新しいパケットのアドレスをコピーして、そのパケットに関する完了（ＤＯＮＥ）ビットをクリアすることである。完了ビットのクリアは、マイクロプロセッサと装置の間における極めて重要なハンドシェイク・タスクである。マイクロプロセッサは、状態マシンの第１のカテゴリ内に「青信号」フラグを設定し、監視することによって、連続パケットの処理を監視することができる。状態マシンがフラグをクリアすると、それは、状態マシンが先行パケットの処理を終了し、現在のパケットに取りかかっていることを表している。従って、マイクロプロセッサ３０２は、完了フラグを検査する必要がない。マイクロプロセッサ３０２は、新しいパケットを配置しない場合、ただ単に、完了ビットを監視して、最後のパケットの処理がいつ終了したかを知ることもできる。
【０２１７】
次のタスクは、タスク１５０７において、ベース・ポインタを１次ポインタにコピーし、状態１５０９において、状態マシンの特定のタスクから開始する。ベース・ポインタの値を保持する理由は、ＣＭ１１３が何らかのエラーによって現在のジョブを中断しなければならなくなる可能性があるためである。その場合、ＣＭ１１３は常に、パケットの始めに戻って、バッファを再利用することができる。この状態は、図２４に「やり直し状態」遷移として示されている。また、タスクによっては、状態マシンは、ヘッダの始めからやり直し、幾つかの新しい情報をヘッダに加える必要がある。これは、ベース・ポインタを２次ポインタにコピーし、この２次ポインタを利用することによって行われる。典型的なケースが、パケットのマルチキャスト・アドレスのハッシュ値をヘッダに書き込み、その一方で、パケットの残りの部分を受信する、ダウンストリーム・ペイロード状態マシン８０７のケースである。また、装置は、新しいパケットの処理を開始する場合、先行パケットのバイト・カウントをそのヘッダに書き込む。
【０２１８】
状態マシンは更に、次のステップに進み、図２３において重複した状態１５１１、１５１３、１５１５、１５１７として示された、自身の特定のタスクを実施する。このタスクの実行の間、状態マシンは、状態フラグを設定することによって、マイクロプロセッサにその進行を知らせることができる。また、状態マシンは、他の副状態マシンを起動して、副タスクの幾つかを並列に実施することも可能である。一般に、タスクが完了すると、状態マシンは、状態１５１９及びタスク１５２１において、「完了」フラグを設定し、遷移「リターン」で、次のタスクを待つ状態に戻る。
【０２１９】
フロントエンド・プリプロセッサ
図１０ないし１３に戻ると、Ｉ及びＱ信号が、制御回路３０１のフロントエンド・プリプロセッサ（ＦＥＰ）８０１に入力される。ＦＥＰ８０１は、Ｉ及びＱ  ＱＡＭ信号を復号化し、これらを、ＦＥＰ８０１からフロントエンド・シリアライザ（ＦＥＳ）８０３に送信される記号ベクトルに復号化する。ＦＥＰ８０１からＦＥＳ８０３への記号データ経路は、８ビットのデータ経路である。
【０２２０】
ＦＥＰ８０１は、６４−ＱＡＭ又は２５６−ＱＡＭ信号のいずれかを受信することができる。ＦＥＰ８０１がＩ及びＱ信号を６４−ＱＡＭ信号として処理するか又は、２５６−ＱＡＭ信号として処理するかを制御するため、フラグ・ビットＱ２５６がＦＥＰ８０１に入力される。６４−ＱＡＭとして処理される場合、Ｉ及びＱ信号の３ビット、即ちビット０ないし２が用いられ、ＦＥＳ８０３に対する記号ベクトルは、記号ラインのビット７及びビット４ないし０に対応する６ビット・ベクトルである。２５６−ＱＡＭとして処理される場合、Ｉ及びＱ信号の４ビットがＦＥＰ８０１によって処理され、記号ベクトルは８ビット・ベクトルである。６４−ＱＡＭ及び２５６−ＱＡＭの両方の場合とも、ビット７は、制御チャネル・ビットである。
【０２２１】
ＦＥＰ８０１は、ボー・パルス（ｂａｕｄ＿ｐｕｌｓｅ）も出力する。ボー・パルスは、各記号毎に１回生成される１クロック・サイクル幅のパルスである。好適実施例では、記号は、１秒当たり５Ｍ個の記号という速度で受信され、ボー・パルスの持続時間は、２５ｎｓｅｃである。
【０２２２】
フロントエンド・シリアライザ
フロントエンド・シリアライザ（ＦＥＳ）８０３は、フロントエンド・プリプロセッサ８０１から記号及びボー・パルスを受信し、記号ベクトルを２つのシリアル・ストリームに区分化する。記号のビット７は、制御ストリーム（「Ｃｏｎｔ＿Ｏｕｔ」）である。Ｃｏｎｔ＿Ｏｕｔストリームは、クロック・アウトされ、記号転送速度（ボー・パルス＝５Ｍビット／秒）でダウンストリーム制御装置８０５に適用される。
【０２２３】
第２のストリームは、ペイロード・データを備えたストリームである。このストリーム「Ｐｌ＿Ｄａｔ」は、６４−ＱＡＭの記号［０：４］、及び２５６−ＱＡＭの記号［０：６］から導き出される。Ｐｌ＿Ｄａｔストリームは、４０Ｍビット／秒の速度でダウンストリーム・ペイロード装置８０７に送信される。Ｐｌ＿Ｄａｔストリームは、信号「ｐｌｓｅ」（ペイロード・シフト使用可能）によって認定され、やはり、ダウンストリーム・ペイロード装置に送信される。こうしてＰｌ＿Ｄａｔストリームを認定することによって、ペイロードされるビットだけが、ダウンストリーム・ペイロード装置８０７内にシフトされる。
【０２２４】
フロントエンド・シリアライザ８０３は、ペイロード・ストリームをダウンストリーム制御装置８０５に送信する前に、ペイロード・ストリームをスクランブル解除（ｄｅｓｃｒａｍｂｌｉｎｇ）する回路を含んでいる。
【０２２５】
ダウンストリーム制御装置
ダウンストリーム制御装置８０５は、下記の機能を提供する状態マシンに制御される装置である。この装置は、ＲＡＭ３０９内の自身のバッファを管理する。そのバッファ範囲の拡張は、ＤＳＣＴＯＢ及びＤＳＣＢＯＢレジスタを設定するマイクロプロセッサ３０２によって決定される。ダウンストリーム制御装置は、データをＲＡＭ３０９のバッファに書き込むので、その現在位置を示す書き込みポインタ、即ち、ＤＳＣＷＰレジスタを維持する。マイクロプロセッサ３０２は、それが読み取った位置を示す読み取りポインタ、即ち、ＤＳＣＲＰレジスタを維持する。
【０２２６】
ダウンストリーム制御装置８０５は、ＤＳＣＷＰがＤＳＣＯＢＯＢレジスタによって指示されるバッファの終わりに達するまで、バッファに連続して書き込みを行う。ダウンストリーム制御装置８０５は更に、バッファの始めから書き込みを続行し、フラグＤＳＣＷＲＡＰを設定して、それを行ったことを表示する。ダウンストリーム制御装置８０５は、ＤＳＣＷＰがＤＳＣＲＰに等しくなる、即ち、今にも未処理のパケットに上書きしそうになることを示すところまで、バッファに対する書き込みを続ける。
【０２２７】
ダウンストリーム制御装置８０５は、アップストリーム装置８０９及び送信器バックエンド８２１に接続されており、これらの装置に肯定応答及びタイミング信号を供給する。多くのアップストリーム・メッセージに関して、アップストリーム装置８０９は、ＳＣＳ１０１から受信した肯定応答がない限り、メッセージを再送する。ダウンストリーム制御装置８０５は、こうした肯定応答をｃｏｎｔ＿ｏｕｔストリームから解析し、その肯定応答をアップストリーム装置８０９に送信する。ダウンストリーム制御装置８０５は、ｃｏｎｔ＿ｏｕｔストリームにおいて、スロット及びフレームの始めを示すＳＹＮＣフィールドを検出する。ダウンストリーム制御装置８０５はまた、アップストリーム・チャネル上でタイム・スロットが競合スロットになると、これを検出し、その情報をアップストリーム装置８０９に送信する。
【０２２８】
ダウンストリーム制御装置８０５は更に、アップストリーム装置８０９に対して予約情報の供給も行う。従って、アップストリーム装置８０９は、ＭａｘＴＵより長いパケットの送信によって供給を受けると、ＳＣＳ１０１からの予約を待たなければならない。ダウンストリーム制御装置８０５は、予約許可、及びｃｏｎｔ＿ｏｕｔストリームを送信するまで待つことになるタイム・スロットの数の解析を行い、この情報をアップストリーム装置８０９に提供する。
【０２２９】
ダウンストリーム制御装置８０５に関する追加タスクは、次の通りである：
ダウンストリーム・チャネルに関するダウンストリーム使用ビットマップを提供する。
マイクロプロセッサに対して状態情報を提供する。
マイクロプロセッサに関する状態及びエラー情報を維持する。
共通ＲＡＭに対してダウンストリーム・コマンドを記憶し、そのコマンドがケーブル・モデムを意図したものであることが確認された後に限って処理されるようにする。
【０２３０】
ダウンストリーム・ペイロード装置
ダウンストリーム・ペイロード装置８０７は、状態マシンによる制御を受けて、フロントエンド・シリアライザ８０３からＲＡＭ３０９にダウンストリーム・ペイロード・データ・パケットを送信するための装置である。ＤＰＤ８０７は、バッファ上部（ＰＴＯＢ）、バッファ底部（ＰＢＯＢ）、読み取り及び書き込みポインタといった内部レジスタを介してマイクロプロセッサによって制御される。ＤＰＤ８０７は、ダウンストリーム制御装置８０５に関して上述した技法を利用して、それ自身のバッファを管理する。
【０２３１】
ダウンストリーム・ペイロード装置８０７は、２つのラインｐｌ＿ｄａｔライン及びｐｌｓｅラインを介してフロントエンド・シリアライザ８０３に接続される。ｐｌ＿ｄａｔラインは、ペイロード・データを含むシリアル・データ・ストリームである。ｐｌ＿ｄａｔライン上のデータ・ストリームは、ｐｌｓｅライン上の１パルス／ビットを利用して、ＤＰＤ８０７内にシフトされる。
【０２３２】
マイクロプロセッサ３０２は、内部レジスタ・フラグを設定することによって、ＤＰＤ８０７に「青信号」を与える。ＤＰＤ８０７に青信号を与えることによって、マイクロプロセッサ３０２は、ＤＰＤ８０７に対して、ＤＰＤ８０７に関するバッファ・レジスタ（ＰＴＯＢ、ＰＢＯＢ、ＰＲＰ、及びＰＷＰ）が設定されており、ＤＰＤ８０７がＲＡＭへのデータ送信を開始できることを示す。
【０２３３】
ダウンストリーム・ペイロード装置８０７は次に、同期フラグに関するｐｌ＿ｄａｔデータ・ストリームをチェックする。ペイロード・データ・パケットは、図８に示すフレーム・フォーマットを厳守している。ペイロード・フレームにおける第１のフィールド７５１は、ビット・パターン「０１１１１１１０」（２つの０に挟まれた６つの１）を備えた１バイトの同期フラグである。ペイロード・チャネル上で送信すべきデータがない場合、ＳＣＳ１０１は、連続して一連の同期フラグを送信する。従って、ＤＰＤ８０７は、同期フラグが後続する同期フラグを受信した場合には、真のペイロード・データを受信していないことが分かる。
【０２３４】
ＤＰＤ８０７は、真のペイロード・データ・パケットを検出すると、ＢＡＰＣ８２５を使用して、ＲＡＭ３０９へのデータ・フレームのコピーを開始する。ＤＰＤ８０７は、２つのポインタ、即ち、１次ポインタＰＰと２次ポインタＳＰをＲＡＭ３０９内に維持する。
【０２３５】
ペイロード・データ・パケットの第２のフィールドは、モデムＭＡＣアドレス７５３である。このアドレス７５３は、マルチキャスト・アドレスであってもよい。このアドレスがマルチキャスト・アドレスであれば、それはＣＭ１１３が加入するマルチキャスト・アドレスに関してＣＭ１１３に記憶されているハッシュ値の１つに一致する。ＤＰＤ８０７は、ＤＰＤ８０７内部の弾性バッファに対するパケットの書き込みと並行して、ＭＡＣアドレスのハッシュ計算を行う。ＤＰＤ８０７は、ＳＰによって指示されるパケット・ヘッダ１４０５内のＲＡＭ３０９の位置にそのハッシュ値を書き込む。ＤＰＤ８０７は、ＭＡＣアドレスの確認が済むと、弾性バッファからＲＡＭ３０９へのペイロード・データの書き込みを開始する。
【０２３６】
ＤＰＤ８０７は、ｐｌ＿ｄａｔデータ・ストリームを受信する内部先読みシフト・レジスタも含んでいる。ＤＰＤ８０７は、ｐｌ＿ｄａｔデータ・ストリームから、一度に数バイトのデータを保持する先読みシフト・レジスタにデータを送信する。先読みシフト・レジスタに数バイトのデータを常に記憶しておくことによって、ＤＰＤ８０７は、弾性バッファへの、及び最終的には、ＲＡＭ３０９への書き込み前に、「先読み」を行うことができる。
【０２３７】
先読みは、パケットの長さを決めるのに有効である。ペイロード・データ・パケットの長さは不定とすることも可能である。メッセージ・フィールド７６３を受信している間、ＤＰＤ８０７は、受信したバイト数をカウントし続ける。パケットの終わりを受信するまで、メッセージ長は分からない。先読みすることによって、ＤＰＤ８０７は、次のパケットの同期フラグを検出でき、それによってその長さを知ることができる。ＤＰＤは、２次ポインタを用いることによって、このパケット長を記憶するが、同時に、１次ポインタを用いて、次のパケットを記憶することも可能である。
【０２３８】
また、同期フラグが検出されると、ＤＰＤは、ＣＲＣフィールド７６５が受信されたばかりであることを知る。ＤＰＤは次に、巡回冗長検査を比較して、パケットが正しく受信されたかを判定する。ＣＲＣ検査が失敗すると、ＤＰＤは、マイクロプロセッサ３０２に対してエラー・フラグを設定する。
【０２３９】
アップストリーム装置
アップストリーム装置ＵＤ８０９は、状態マシンによる制御を受けて、アップストリーム・チャネル上でパケットを送信する働きをする装置である。アップストリーム装置８０９は、送信器バックエンド８２１に接続されている。データ・ビットは、送信器バックエンド８２１によってビット要求パルスがＵＤ８０９に提供されると、一度に１ビットずつ、ＵＤ８０９から送信器バックエンド８２１内にクロック・アウトされる。
【０２４０】
マイクロプロセッサ３０２は、対応する「青信号」レジスタを設定し、ＵＤ８０９に関するＭＯＡＰ８２７のレジスタ内にＲＡＭ３０９のパケット・アドレスを配置することによって、ＵＤ８０９のアクティビティを起動する。ＵＤ８０９は、３つのモード、即ち、「予約による送信」、「非競合チャネル上での送信」、及び「競合チャネル上での送信」のうち１つのモードで送信することができる。それぞれに対応する「青信号」レジスタが存在する。
【０２４１】
図２５及び２６は、アップストリーム装置８０９に関する状態マシンの「バブル図」である。状態１７０１は、アイドル状態であり、ＵＤ８０９は、３つのモード、即ち、「予約による送信」、「非競合チャネル上での送信」、及び「競合チャネル上での送信」のうち１つのモードでメッセージを送信する命令を待つ。これらのそれぞれについて、状態マシンの分岐がある。
【０２４２】
「予約による送信」の分岐は、状態１７０３において、ＣＭ１１３が送信している特定のアップストリーム・チャネルが利用可能になるのを待つことから始まる。どのタイム・スロットについても制御チャネル内のフレームには、チャネル／スロット状態サブフレーム・タイプ・フレームが含まれる。そのフレームは、チャネル占有ビットマップを含んでいる（表１参照）。チャネル占有ビットマップは、ＤＣＤ８０５からＵＤ８０９に送信される。ＵＤ８０５は、次のスロットにおいてそのチャネルが空いていることを検出すると、状態１７０５において、次のスロットが始まるのを待つ状態に移行する。
【０２４３】
ＵＤ８０９は状態１７０５で、ＤＣＤ８０５からのスロット・パルスによって指示される、次のスロットを検出すると、状態１７０７で、送信器バックエンド８２１との対話によるデータ送信に進み、その送信が終了するのを待ち、状態１７０９で、ＳＣＳ１０１からの肯定応答を待つ。その肯定応答はやはり、制御チャネル上で受信され、ＤＣＤ８０５からＵＤ８０９に送信される。
【０２４４】
ＵＤ８０９は、肯定応答をどれだけの時間まで待つかに関する制限が設定されている。メッセージの送信と肯定応答の受信との間における予測される待ち時間は、ＣＭ１１３とＳＣＳ１０１との間の距離の関数である。インストール時には、その待ち時間は未知である。従って、ＣＭ１１３が初めてパケットの送信を試みる時には、１ミリ秒間待つが、ＳＣＳ１０１にとっては、データ・パケットの受信が成功したことを肯定応答するには十分すぎるほどの時間である。ＣＭ１１３は、最初の肯定応答を受信すると、ＥＥＰＲＯＭにそれを記憶し、同時に、その待ち時間を内部レジスタに記憶する。後続の送信に関して、ＵＤ８０９は、この既知の予測待ち時間の間だけ待機する。
【０２４５】
ＵＤ８０９は、時間限界内に肯定応答を受信しなければ、状態１７１１において、送信を再試行するか又は、中断する。一定数の再試行が許容されるが、これはプログラム可能なパラメータである。ＵＤ８０９は、その限界を超えなければ、まず、状態１７１４において、別の衝突を回避するために待機し、次に、状態１７０７において、再送を行う。
【０２４６】
ＵＤ８０９は、その再試行に関して上限に達した場合に中断し、状態１７１３において、完了フラグを設定し、マイクロプロセッサ３０２に対して、処理が終了し、別の命令を待っていることを示す。ＵＤ８０９はまた、エラー・フラグを設定して、送信の失敗を示す。そうすることによって、マイクロプロセッサは、例えば、アップストリーム・チャネルにおける変更を開始したり、ＰＣ１１５にエラー報告を送るといった、適切な動作をとることが可能になる。
【０２４７】
「予約による送信」の分岐において肯定応答を受信した場合、この肯定応答によって、待つべきタイム・スロットの数が示される。状態１７１５において、ＵＤ８０９は、その多くのスロット分だけ待ち、状態１７１７において、予約データ・パケットの送信を開始し（図示していない主送信状態マシンを呼び出すことによって）、状態１７１７においてその送信が終了するのを待ち、状態１７１９において、完了フラグを設定し、状態１７０１のアイドル状態に戻る。
【０２４８】
ＵＤ８０９の状態マシンの第２の分岐は、「競合するチャネル上の送信」の分岐である。第２の分岐は、ほんのわずかな相違があるが、本質的に第１の分岐の部分集合である。第１の分岐の状態に対応する第２の分岐の状態は、アポストロフィのついた同じ参照番号を用いて示されている。両者の相違点についてのみ解説する。
【０２４９】
状態１７０７’は、予約要求のないパケットが送信されるという点で、状態１７０７とは異なっている。状態１７０９’は、肯定応答を受信した際に、ＵＤ８０９が、状態１７０９’から状態１７１９’に直接遷移するという点で、状態１７０９とは異なっている。
【０２５０】
ＵＤ８０９に関する状態マシンの第３の分岐は、「競合のないチャネル上の送信」の分岐である。ＣＭ１１３は、合計で、ＭａｘＴＵの長さを超える多くの不連続なデータ・パケットを送信しなければならないことが分かっている場合、このデータ・パケットの集合を送信するのに必要な全タイム・スロット数の予約をすることができる。そうすることによって、ＵＤ８０９の状態マシンの「予約による送信」の分岐を最初に実行することになる。それが終了すると、ＵＤ８０９は、「青信号」を低レベルにし、マイクロプロセッサ３０２が、ＵＤに関するＭＯＡＰポインタをリセットできるようにする。それが済むと、マイクロプロセッサ３０２は、最初の予約に際してまだタイム・スロットが残っていることが分かるので、「競合のない送信」命令を発行する。ＵＤ８０９は、状態１７１９からアイドル状態１７０１に遷移するや否や、「競合のない送信」命令に気づいて、対応する分岐、即ち、状態１７０５’’に遷移する。状態１７０５’’は、状態１７０５と同様である。スロット・パルスを受信すると、ＵＤ８０９は、状態１７１７”においてデータ・パケットを送出するが、肯定応答を待つことはない。データ・パケットの送信が完了すると、ＵＤ８０９は、状態１７１９’’において完了フラグを設定する。
【０２５１】
暗号装置
暗号装置８１１は、ＭＯＡＰ８２７、バス調停及び優先順位回路８２５に接続され、及び暗号チップ・インタフェイス８１３を介して暗号チップ３１１に接続された、状態マシンによる制御を受ける装置である。暗号装置８１１は、ＢＡＰＣ８２５を介してＲＡＭ３０９からデータ・パケットを検索し、これらを（適宜）暗号化または暗号解読のため、暗号チップ３１１に対して（ＣＣＩ８１３を介した）経路付けを行い、暗号チップ３１１から処理済みのデータを受信して、結果得られた暗号化／暗号解読データをＲＡＭ３０９に戻して記憶する。
【０２５２】
図２７は、暗号装置８１１を制御する状態マシンの「バブル図」である。第１の状態、状態１８０１において、暗号装置８１１はアイドル状態にあり、マイクロプロセッサ３０２からの青信号を待つ。マイクロプロセッサは、例えば、ＰＣ１１５において実行されるエンドユーザ・プログラムの指示によって、または、Ｅビット７５５の指示に従って、データ・パケットの暗号化または暗号解読が必要であることを検出すると、暗号装置８１１のＭＯＡＰ８２７ポインタをセットアップして、ＲＡＭ３０９内のデータ・パケットを指示する。ＭＯＡＰ８２７のレジスタ２は、そのパケットに含まれている８バイトのデータ・ブロックの数を表した、パケット・ヘッダ内の反復カウント・ワード１４０７を指示し、ＭＯＡＰ８２７のレジスタ３は、暗号化または暗号解読すべきデータ・ブロックの始めを指示する。
【０２５３】
暗号装置８１１は、マイクロプロセッサ３０２が暗号装置８１１に対応するチェック・レジスタ１４０１を設定することによって示される青信号を受信すると、状態１８０３において、暗号チップ３１１の初期設定手順を開始する。暗号装置は、初期設定の完了を待たない。暗号装置は次に、状態１８０５において、ＭＯＡＰ８２７のポインタを暗号装置８１１の内部レジスタにコピーし、状態１８０７において、暗号チップ３１１の初期設定が完了するのを待つ。暗号チップ３１１の初期設定が済むと、暗号装置８１１は、状態１８０９において、ＲＡＭからの反復カウントを受信し、状態１８１１において、その１次ポインタを移動させて、データ・パケットの始めを指示する。
【０２５４】
良好な暗号化を行うため、一度に数ワードの暗号化が行われる。好適実施例では、暗号チップ３１１は、一度に４ワード（８バイト）のデータ・ブロックの処理を行う。従って、状態１８１３において、暗号装置８１１は、ＲＡＭ３０９のバースト・モード・アクセスのために、そのアドレス・レジスタ１２０３とカウンタ・レジスタ１２０１をセットアップし、状態１８１５において、暗号装置８１１は、ＢＡＰＣ８２５を介してＲＡＭ３０９に４回アクセスし、暗号チップ３１１に対して、パケットからの４つのデータ・ワードを経路指定する。
【０２５５】
状態１８１７において、暗号装置８１１は反復カウントをデクリメントする。状態１８１９において、暗号装置８１１は、暗号チップ３１１での暗号化／暗号解読の終了を待つ。次に、暗号装置８１１は、暗号チップ３１１からＲＡＭ３０９へのデータ・ブロックの送信のために配置を行い、状態１８２１において、暗号チップ３１１が、ＲＡＭ３０９に４つの暗号化／暗号解読ワードを戻して終了するのを待つ。
【０２５６】
ＲＡＭ３０９に暗号化／暗号解読データを書き戻すと、反復カウントが０より大きい場合、暗号装置８１１は、状態１８１３に戻ることによって、次の４ワード・ブロックに同じ操作を繰り返す。反復カウントが０の場合、状態１８２５で暗号装置は完了フラグを設定し、リターンしてマイクロプロセッサ３０２からの次の青信号フラグを待つ。
【０２５７】
ＬＡＮ−ＲＡＭ
ＬＡＮ・ＲＡＭ装置（ＬＴＲ）８１５は、ＭＯＡＰ８２７、バス調停及び優先順位回路８２５に接続され、ＬＡＮインタフェイスを介してＬＡＮチップ３０７に接続されている。ＬＴＲ８１５は、ＬＡＮチップ３０７からＲＡＭ３０９へのデータ・パケットの送信を行う。ＬＡＮチップ３０７は、送信データを有する場合、ＬＡＮインタフェイス８１７に信号を送り、ＬＡＮインタフェイス８１７は、内部レジスタを介してマイクロプロセッサ３０２にこれを再送する。マイクロプロセッサ３０２は、ＭＯＡＰ８２７のポインタを設定して、ＬＴＲ８１５がパケットを記憶するＲＡＭ３０９内の位置を指示し、ＬＴＲ８１５がＬＡＮチップ３０７からＲＡＭ３０９へのデータ送信を開始するように「青信号」をオンにする。
【０２５８】
マイクロプロセッサ３０２から「青信号」を受信すると、ＬＴＲ８１５は、そのＭＯＡＰ８２７のポインタ及びＢＡＰＣ８２５を利用して、パケットをＲＡＭ３０９内に送信する。それが完了すると、ＬＴＲ８１５は、その完了フラグを送信するが、これは、例えば、直接送信の場合、アップストリーム装置８０９といった他の装置の１つに対して、又は、パケットが暗号化を要する場合であれば、暗号装置８１１に対して、パケットの制御を移行することをマイクロプロセッサ３０２に知らせる信号である。
【０２５９】
ＲＡＭ−ＬＡＮ
ＲＡＭ−ＬＡＮ装置（ＲＴＬ）８１９は、ＭＯＡＰ８２７、バス調停及び優先順位回路８２５に接続され、及びＬＡＮインタフェイス８１７を介してＬＡＮチップ３０７に接続される。ＲＴＬ８１９は、ＲＡＭ３０９からＬＡＮチップ３０７へのデータ・パケットの送信を行う。ＲＡＭ３０９内におけるパケットがＬＡＮチップ３０７に送信できる状態である場合（即ち、そのパケットが、ダウンストリーム装置８０７によって受信され、暗号装置８１１によって暗号解読されている場合）、マイクロプロセッサ３０２は、ＭＯＡＰ８２７のポインタを設定して、ＲＴＬ８１９がパケットの検索を行うＲＡＭ３０９内の位置を示し、ＲＴＬ８１９がＬＡＮチップ３０７へのデータ送信を開始するように「青信号」をオンにする。
【０２６０】
マイクロプロセッサ３０２から「青信号」を受信すると、ＲＴＬ８１９は、そのＭＯＡＰ８２７ポインタ及びＢＡＰＣ８２５を利用して、パケットをＬＡＮチップ３０７に送信する。それが完了すると、ＲＴＬ８１９は、その完了フラグを送信する。
【０２６１】
インタフェイス装置
図３及び図１０ないし１３に示すように、制御回路３０１は、例えば、チューナ３０３、送信器３０５、暗号チップ３１１、ＬＡＮチップ３０７、及びＲＡＭといった幾つかの外部装置と対話する。これらの装置はそれぞれ、タイミング要件が異なり、Ｉ／Ｏ構成も異なる。しかし、マイクロプロセッサ３０２及びバス調停及び優先順位回路８２５は、これらの他の構成要素に対して一様なインタフェイスを備えている。例えば、これらの外部構成要素とＢＡＰＣ８２５との間の対話を制御する装置間におけるインタフェイス及びタイミングが、図１４及び１５に一般的な形態で示されている。
【０２６２】
ＢＡＰＣ８２５と装置との間におけるインタフェイスの均一性を実現するため、各装置は、インタフェイス装置を備えている。暗号装置８１１のインタフェイス装置は、暗号チップ・インタフェイス８１３であり、ＬＡＮ−ＲＡＭ装置８１５及びＲＡＭ−ＬＡＮ装置８１９のインタフェイス装置は、ＬＡＮインタフェイス８１７である。
【０２６３】
各装置毎に、対応するインタフェイス装置は、薄いハードウェア変換層から構成される。インタフェイス装置は、２つの側部を備えている。図１４には、バス調停及び優先順位回路８２５との通信を行う第１の側部が示されている。インタフェイス装置の第２の側部は、例えば、ＬＡＮチップのような外部構成要素とのインタフェイスを行うセクションと、マイクロプロセッサ３０２とのインタフェイスを行うもう１つのセクションを含む。
【０２６４】
各インタフェイス装置は、インタフェイス装置の２つの側部の間におけるタイミングの差を管理する状態マシンを含んでいる。インタフェイス装置は、その内部状態マシンによる指示に従い、それが接続されている特定の外部構成要素の必要に応じた、適切なハンドシェイク変換を行って、インタフェイス装置の装置側（例えば、ＬＴＲ８１５）から構成要素側（例えば、ＬＡＮチップ３０７）へデータを送信する。例えば、暗号チップ３１１の場合、アドレスが、送信される各ワード毎に生成される。
【０２６５】
ＲＥＱが発行されると、バス調停及び優先順位回路８２５は、その要求に対して常に準備が整っている装置であると仮定する。従って、インタフェイス装置内の状態マシンは、読み取り及び書き込みトランザクションを受け入れる準備が整っていれば、ＲＤ＿ｒｅａｄｙ及びＷＴ＿ｒｅａｄｙ信号を設定しなければならない。バス調停及び優先順位回路８２５の状態マシンは、インタフェイス装置からの準備完了信号を認識すると、ＲＥＱ状態に入る。
【０２６６】
これらの薄いハードウェア変換層を追加することによって、制御回路３０１の設計に柔軟性が提供される。バス調停及び優先順位回路８２５は、各周辺設計の仕様を考慮せずに設計される。従って、異なる外部構成要素を備える代替実施例は、互いに異なる可能性がある。こうした相違には、対応するインタフェイス装置を変更することによって適応することが可能である。
【０２６７】
結論
本発明の典型的な好適実施例について解説を行った。これらの実施例には、多くの代替案が考えられる。例えば、図２には、共用バス・ベースのアーキテクチャを備える信号変換システム１０１が示され、図１０ないし１３には共用メモリ３０９上で動作する、多くの並列状態マシンの制御を受ける装置を備えたケーブル・モデム１１３が示されている。ＳＣＳ１０１の第１の代替実施例は、ケーブル・モデム１１３の設計を組み込んでいる。ＣＭ１１３がＱＰＳＫ送信器３０５を使用する第１の代替ＳＣＳの場合、代替ＳＣＳは６４−ＱＡＭ送信器を使用し、ＣＭ１１３が６４−ＱＡＭ受信器を使用している場合には、代替ＳＣＳはＱＰＳＫ受信器を使用し、代替ＳＣＳが、ＬＡＮチップ３０７ではなく、ルータ・インタフェイスを使用する。ＳＣＳの第１の代替実施例では、ＬＴＲ８１５及びＲＴＬ８１９は、ＲＡＭとルータ・インタフェイスとの間のインタフェイスに置き換えられる。
【０２６８】
当業者には明らかなように、本発明に対して多くの修正及び変更を加えることが可能であり、例示され、解説された構成及び動作そのままに本発明を限定することは望ましくない。従って、適合する修正及び同等物は全て、本発明の範囲内に含まれるものと考えられる。
【０２６９】
以下に本発明の実施態様を列挙する。
【０２７０】
１．  根ノード、及び少なくとも１つの葉ノードを有するデータ送信ケーブル、
前記根ノードに接続された信号変換システム（ＳＣＳ）、及び
それぞれが別個の葉ノードに接続されている、少なくとも１つのクライアント・ステーションを含む高速データ通信用のコンピュータ・ネットワークであって、
前記信号変換システム（ＳＣＳ）が、
第１の周波数帯で前記ケーブル上にダウンストリーム・データを送信する送信機、及び
第２の周波数帯で、前記クライアント・ステーションからのデータを受信する受信機を備え、
前記ダウンストリーム・データが同期信号、及び肯定応答信号を含み、更に、
各クライアント・ステーションが、
前記第１の周波数帯でデータを受信する受信機、及び
前記第１の周波数帯で受信した同期信号に従って第２の周波数帯にデータを送信する送信機を備えることを特徴とする、前記コンピュータ・ネットワーク。
【０２７１】
２．  ネットワーク上でデータの双方向通信を制御する方法が、
（ａ）第１の周波数帯で、同期情報を有する制御信号を信号変換システム（ＳＣＳ）からダウンストリーム送信するステップ、
（ｂ）少なくとも１つのクライアント・ステーションで、前記制御信号を受信するステップ、
（ｃ）第２の周波数帯で、前記同期信号に関してタイミングがとられる、前記クライアント・ステーションから前記ＳＣＳへのアップストリーム送信を行うステップ、及び
（ｄ）前記第１の周波数帯で、前記アップストリーム送信の前記ＳＣＳによる良好な受信の肯定応答を行うステップを含むことを特徴とする、前記制御方法。
【０２７２】
３．  根ノード、及び少なくとも１つの葉ノードを有するデータ送信ケーブル、
前記根ノードに接続された信号変換システム（ＳＣＳ）、及び
それぞれが別個の葉ノードに接続されている、少なくとも１つのクライアント・ステーションを含むことを特徴とする、高速データ通信用のコンピュータ・ネットワークであって、
各クライアント・ステーションが、
前記第１の周波数帯でデータを受信する受信機、及び
後続の送信のための、第２の周波数帯上の予約スロットに対する要求を含むアップストリーム・データを前記第２の周波数帯に送信する送信機を備え、更に、
前記信号変換システム（ＳＣＳ）が、
要求された予約スロットの開始時間を決定するよう動作可能なスケジューラ、
ダウンストリーム・データを、前記ケーブル上に第１の周波数帯で送信する送信機であって、前記ダウンストリーム・データが前記アップストリーム・データの良好な受信の肯定応答を含み、前記肯定応答が要求された前記予約スロットの開始時間を示す遅延時間を含む前記送信機、及び
前記クライアント・ステーションから第２の周波数帯でデータを受信する受信機を含み、
前記ダウンストリーム・データが同期信号、及び肯定応答信号を含むことを特徴とする、前記コンピュータ・ネットワーク。
【０２７３】
４．  高速データ通信ネットワークを動作させる方法が、
（ａ）予約された通信スロットに関する要求を含むデータを、クライアント・ステーションから信号変換システム（ＳＣＳ）に送信するステップ、
（ｂ）前記予約された通信スロットをスケジューリングするステップ、及び
（ｃ）前記要求が良好に受信されたことと、前記予約された通信スロットに関する開始時間を示す肯定応答を、前記ＳＣＳから前記クライアント・ステーションに送信するステップを含むことを特徴とする、前記方法。
【０２７４】
【発明の効果】
本発明によって、１つのケーブルによって接続されたコンピュータ・ネットワーク上の高速な双方向のビデオ、オーディオ、及びデータ通信を可能にし、ネットワーク内のクライアント・ステーションが信号変換システムと通信できるようにする予約システム、及び幾つかの装置が共用メモリに対して並列アクセスを行う、高速データ通信システムを提供し、更に、クロック・サイクル毎の１回のメモリ・アクセスの平均スループットで、共用メモリに対する並列装置アクセスを実現することができる。
【図面の簡単な説明】
【図１】ヘッド・エンドに配置された信号変換システム（ＳＣＳ）と加入者位置に配置されたクライアント・ステーションとの間におけるデータ通信を提供する、本発明に従って適用される近隣のケーブルＴＶシステムを示す図である。
【図２】本発明による信号変換システム（ＳＣＳ）の概略図である。
【図３】図１のケーブルＴＶシステムに従って用いられるケーブル・モデムの高レベル概略図である。
【図４】ケーブルＴＶのケーブルに関する周波数スペクトルの一部に関する振幅対周波数の一例を示すグラフである。
【図５】ダウンストリーム・チャネル及びアップストリーム・チャネルにおける典型的な動作を示す図である。
【図６】ダウンストリーム制御チャネルに関する共通フレーム・フォーマットのブロック図である。
【図７】制御チャネル上で送信されるダウンストリーム肯定応答フレームのフォーマットに関するブロック図である。
【図８】ＳＣＳからケーブル・モデムに送信されるダウンストリーム・ペイロード・データ・フレームのブロック図である。
【図９】アップストリーム・チャネル・フレームに関する共通フォーマットのブロック図である。
【図１０】本発明のケーブル・モデムを更に詳細に示す図の構成を示す図である。
【図１１】本発明のケーブル・モデムを更に詳細に示す図である。
【図１２】本発明のケーブル・モデムを更に詳細に示す図である。
【図１３】本発明のケーブル・モデムを更に詳細に示す図である。
【図１４】バス調停、及び優先順位回路（ＢＡＰＣ）に装置を接続するための一般的接続方式に関するブロック図である。
【図１５】状態マシンに制御された装置とＢＡＰＣとの間におけるデータ送信の一例を示すタイミング図である。
【図１６】バス調停、及び優先順位回路（ＢＡＰＣ）の概略図の構成を示す図である。
【図１７】バス調停、及び優先順位回路（ＢＡＰＣ）の概略図である。
【図１８】バス調停、及び優先順位回路（ＢＡＰＣ）の概略図である。
【図１９】装置のセクション、即ちＡＣＫ信号を受信するセクションに関する概略図であり、バースト・モードにおける装置の動作を示す図である。
【図２０】図１６ないし１８のバス調停、及び優先順位回路によって処理される典型的な１組のトランザクションを示すタイミング図である。
【図２１】図１０ないし１３に示すケーブル・モデムの制御回路に関する全ポインタのマスタ（ＭＯＡＰ）構造の高レベル概略図である。
【図２２】ＲＡＭに記憶されている、データ・パケットの一般フォーマットに関する概略図である。
【図２３】第１及び第２のカテゴリの状態マシンの一般形式に関する「バブル図」である。
【図２４】本発明によるケーブル・モデムの制御回路におけるコンポーネント装置のアドレス・レジスタの一般化されたデータ経路１６０１に関する概略図である。
【図２５】アップストリーム装置を制御する状態マシンの「バブル図」である。
【図２６】アップストリーム装置を制御する状態マシンの「バブル図」である。
【図２７】暗号装置を制御する状態マシンの「バブル図」である。
【符号の説明】
１００  ケーブルＴＶシステム
１０１  信号変換システム（ＳＣＳ）
１０３  ヘッド・エンド
１０５  クライアント・ステーション
１０７  光ファイバ・ケーブル
１０９  ファイバ・ノード
１１１  同軸ケーブル
１１３  ケーブル・モデム
１１５  コンピュータ
１１７  ルータ
２０１  ルータ・インタフェイス
２０３  内部バス
２０５  送信器
２０７  受信器
２０９  ＣＰＵ
２１１  ＲＯＭ
２１３  ＲＡＭ
２１７  Ｉ／Ｏ装置
３０１  制御回路
３０２  マイクロプロセッサ
３０３  チューナ
３０７  ＬＡＮトランシーバ回路
３０９  ＲＡＭ
８０１  フロントエンド・プリプロセッサ（ＦＥＰ）
８０３  フロントエンド・シリアライザ
８０５  ダウンストリーム制御装置（ＤＣＤ）
８０７  ダウンストリーム・ペイロード装置
８０９  アップストリーム装置（ＵＤ）
８１１  暗号装置（ＣＤ）
８１３  暗号チップ・インタフェイス
８１５  ＬＡＮ−ＲＡＭ装置（ＬＴＲ）
８１７  ＬＡＮインタフェイス（ＬＡＮＩ）
８１９  ＲＡＭ−ＬＡＮ装置（ＲＴＬ）
８２１  送信器バックエンド（ＴＢ）
８２３  送信器インタフェイス（ＴＲＩ）
８２４  チューナ・インタフェイス
８２５  バス調停及び優先順位回路（ＢＡＰＣ）
８２９  マイクロプロセッサ・インタフェイス（ＭＩ）
８３１  読み取りバス
８３３  書き込みバス
１１０１  優先順位エンコーダ回路
１１０９、１１１７、１１１９、１１２３、１１２９  パイプライン・レジスタ
１１１１  読み取りレジスタ
１１１３  装置選択回路
１１１５、１１２５  スイッチ
１１２１  マルチプレクサ
１１２７  ＲＡＭバス
１１３０  ゲート
１２０３  内部アドレス・レジスタ
１４０１  チェック・レジスタ
１４１０、１６０７  ベース・レジスタ
１４１３  オフセット・レジスタ
１６０３  １次ポインタ
１６０５  ２次ポインタ
１６０９  加算器／減算器
【図１】
0003577393.tif 000004
【図２】
0003577393.tif 000005
【図３】
0003577393.tif 000006
【図４】
0003577393.tif 000007
【図５】
0003577393.tif 000008
【図６】
0003577393.tif 000009
【図７】
0003577393.tif 000010
【図８】
0003577393.tif 000011
【図９】
0003577393.tif 000012
【図１０】
0003577393.tif 000013
【図１１】
0003577393.tif 000014
【図１２】
0003577393.tif 000015
【図１３】
0003577393.tif 000016
【図１４】
0003577393.tif 000017
【図１５】
0003577393.tif 000018
【図１６】
0003577393.tif 000019
【図１７】
0003577393.tif 000020
【図１８】
0003577393.tif 000021
【図１９】
0003577393.tif 000022
【図２０】
0003577393.tif 000023
【図２１】
0003577393.tif 000024
【図２２】
0003577393.tif 000025
【図２３】
0003577393.tif 000026
【図２４】
0003577393.tif 000027
【図２５】
0003577393.tif 000028
【図２６】
0003577393.tif 000029
【図２７】
0003577393.tif 000030