(57)【要約】無線通信リンクはダウンストリーム部分とアップストリーム部分に分割され、自動的な再送信のためのパラメータはダウンストリーム部分とアップストリーム部分で独立に選択される。ＢＳＣは、セル内の全ＣＰＥに対して自動的な再送信のためのパラメータの選択を制御する。ＢＳＣとＣＰＥが通信帯域幅を共有するＴＤＤフレームの一部として、ＢＳＣは、ＴＤＤフレームの制御セクション内の、ＣＰＥによって使用される自動的な再送信のためのパラメータに係るその選択を含む。ＢＳＣは、各独立なＣＰＥとの無線通信リンクの状態に応じて、自動的な再送信のための新たに選択されるパラメータを動的かつ適応的に決定する。ＢＳＣは、ＴＤＤフレームのアップストリーム部分内の肯定応答時間スロットを、各選択されたＣＰＥによる使用のために動的かつ適応的に割り当てる。
2004523939.tif 000002
【特許請求の範囲】
【請求項１】
基地局コントローラと複数の顧客構内機器との間のポイント・ツー・マルチポイント無線通信リンクにおける自動的な再送信のための複数のパラメータの選択を制御する方法であって、上記通信リンクはアップストリーム部分とダウンストリーム部分とを有し、上記方法は、
上記無線通信リンクを用いた自動的な再送信のための複数のパラメータを選択するステップを含み、上記複数のパラメータは、上記ダウンストリーム部分と上記アップストリーム部分とに対して独立に選択され、かつ少なくとも２つの異なる顧客構内機器のそれぞれに対して独立に選択され、
制御情報をダウンストリームに送信するためのフレームの制御セクションに、上記複数のパラメータを含むステップを含む方法。
【請求項２】
上記アップストリーム部分はデータを顧客構内機器から基地局コントローラへ伝送するためのものであり、上記ダウンストリーム部分はデータを上記基地局コントローラから上記顧客構内機器へ伝送するためのものである請求項１記載の方法。
【請求項３】
上記自動的な送信のための複数のパラメータは、上記基地局と上記顧客構内機器との間の先行する通信に基づいて動的に選択される請求項２記載の方法。
【請求項４】
上記基地局コントローラから上記顧客構内機器へ上記フレームの制御セクションをダウンストリームに送信するステップをさらに含み、これにより上記基地局コントローラはアップストリーム及びダウンストリームの両方の再送信のための複数のパラメータを制御する請求項２記載の方法。
【請求項５】
自動的な再送信のための新たに選択される複数のパラメータを動的かつ適応的に決定することをさらに含み、上記基地局コントローラは、上記新たに選択される複数のパラメータを、各独立したＣＰＥとの無線通信リンクの状態に応じて決定する請求項２記載の方法。
【請求項６】
上記自動的な再送信のための複数のパラメータは、送信機から受信機へ首尾よく送信されたバイト数に応じて選択される請求項５記載の方法。
【請求項７】
アップストリーム部分とダウンストリーム部分とを有するポイント・ツー・マルチポイント無線通信リンクにおけるアップストリーム再送信を制御する方法であって、
自動的な再送信に関連付けられた複数のメッセージを送信するために上記アップストリーム部分に割り当てられる帯域幅の量を決定するステップを含み、上記帯域幅の量は上記ダウンストリーム部分の送信機によって決定されかつ上記ダウンストリーム部分に含まれる方法。
【請求項８】
上記アップストリーム部分はデータを顧客構内機器から基地局コントローラへ伝送するためのものであり、かつ上記ダウンストリーム部分はデータを上記基地局コントローラから上記顧客構内機器へ伝送するためのものであって、これにより、上記基地局コントローラは、自動的な再送信に関連付けられた複数のメッセージを送信するために上記アップストリーム部分に割り当てられる上記帯域幅の量を決定する上記ダウンストリーム部分の送信機である請求項７記載の方法。
【請求項９】
上記複数のメッセージは肯定応答メッセージ及び否定応答メッセージである請求項８記載の方法。
【請求項１０】
上記アップストリーム部分のいくらかの部分を共有されたリソースとして割り当て、かつ上記アップストリーム部分のいくらかの部分を共有されないものとして割り当てるステップをさらに含み、上記割り当ては上記基地局コントローラによって実行される請求項８記載の方法。
【請求項１１】
基地局コントローラと複数の顧客構内機器との間のポイント・ツー・マルチポイント無線通信リンクにおける肯定応答メッセージ及び否定応答メッセージに動的かつ適応的に応答する方法であって、上記通信リンクは、データを上記顧客構内機器から上記基地局コントローラへ伝送するアップストリーム部分と、データを上記基地局コントローラから上記顧客構内機器へ伝送するダウンストリーム部分とを有し、
上記基地局コントローラが１つの選択された顧客構内機器から否定応答メッセージを受信する毎に第１のタイムアウトを設定するステップを含み、この第１のタイムアウトの継続時間の間、上記基地局コントローラは上記選択された顧客構内機器からのその後の肯定応答メッセージ及び否定応答メッセージを廃棄し、
上記基地局コントローラが上記選択されたＣＰＥから無効なメッセージを受信する毎に第２のタイムアウトを設定するステップを含み、上記第２のタイムアウトの継続時間の間、上記基地局コントローラは上記選択された顧客構内機器から受信されるその後のすべてのメッセージを廃棄する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばパケット指向型ポイント・ツー・マルチポイント通信のための自動的な再送信及びエラー回復を含むものである無線通信システムに関する。
【０００２】
【従来の技術】
通信システムにおいて、通信リンクを使用する送信機から受信機へのメッセージは、ビットエラー、不合理な送信遅延、意図されない並べ替え（ｒｅｏｒｄｅｒｉｎｇ）及び意図されないメッセージの重複のような送信エラーにさらされることがある。例えば、通信リンク上の雑音は、メッセージ内のビットを不正確なものにする可能性があり、これにより一般に受信機はそのメッセージを使用できなくなる。無線通信システムでは、これらの問題点が無線通信に特有の様々な状況によって悪化される。例えば、同一チャンネル干渉（ＣＣＩ）や、シンボル内干渉及びシンボル間干渉をもたらす屈折又は反射のようなマルチパス効果及びマルチポイント効果は、無線通信において一般的に存在する場合が多く、無線通信リンクの信頼性を実質的に低下させる可能性がある。
【０００３】
ディジタル通信システムにおける１つの既知の方法は、受信機は送信機からのメッセージに肯定応答し、かつ送信機は受信機によって肯定応答されないメッセージを適正な時間内に再送信するように、送信機と受信機との間で自動的な再送信プロトコルを実装するものである。既知の自動的な再送信プロトコルは、送信機と受信機との間の通信スループットを最適化するように、一般に通信リンクの特性に応じて選択されなければならないいくつかのパラメータを含んでいる。
【０００４】
【発明が解決しようとする課題】
この既知の方法を無線通信システムへ適用する際の１つの問題点は、無線通信リンクには複数の物理的特性があり、その各々が送信機と受信機との特定の組み合わせに特有のものであり、かつその各々が比較的短い時間期間で実質的に変化しうるということにある。これらの複数の物理的特性は、送信機の機器又は受信機の機器の特性と、送信機及び受信機間の通信パス上の物体又は当該通信パスに近接した物体の特性と、送信機及び受信機間の通信に重畳する他の通信の特性とを含む可能性がある。例えば、無線通信環境は、あるメッセージの送信と、そのメッセージに対する適正な肯定応答の送信との間の時間期間における無線通信リンクの特性の実質的な変化を含む可能性がある。これは特に、ＣＣＩのような干渉やマルチパス及びマルチポイントの効果を含む、無線通信リンクを使用して情報を送信する際のエラーに関する特性に対して顕著である。さらに、これらの物理的特性の中の複数のものは互いに独立に変化する可能性があり、かつ互いに実質的であって比較的に予測できない効果を有する可能性がある。
【０００５】
従って、無線通信リンクを使用する自動的な再送信を最適化するような複数のパラメータにてなる単一のセットの選択は、複数の送信機と複数の受信機との間の通信にとって実質的には常に最適の状態に達していない（すなわち、次善である）。さらに、自動的な再送信を最適化するような複数のパラメータの選択は、実質的なデータ収集及び計算を必要とするが、このタスクは容易には複数の送信機及び複数の受信機にわたって分散されない。従って、既知の技術の欠点にされされることのない、パケット指向型ポイント・ツー・マルチポイント通信のための自動的な再送信及びエラー回復技術を提供することが効果的であろう。好ましくは、このような技術において、自動的な再送信及びエラー回復の特性は、送信機と受信機との間の通信リンクの特性の変化に応答する。
【０００６】
【課題を解決するための手段】
本発明は、パケット指向型ポイント・ツー・マルチポイント通信のための自動的な再送信及びエラー回復を含む、ポイント・ツー・マルチポイント無線通信のための方法及びシステムを提供する。当該方法及びシステムは、単一の送信機及び単一の受信機の場合と、複数の送信機及び複数の受信機のセットの場合との両方について、無線通信を使用する自動的な再送信のための複数のパラメータに対して適応的でかつ動的な応答性を統合化する。
【０００７】
本発明の第１の態様では、無線通信リンクはダウンストリーム部分とアップストリーム部分とに分割されている。当該方法及びシステムは、自動的な再送信のための複数のパラメータを無線通信リンクのダウンストリーム部分とアップストリーム部分とで独立に選択する。基地局コントローラ（ＢＳＣ）は、セル内のすべての顧客構内機器（ＣＰＥ）に対して自動的な再送信のための複数のパラメータの選択を制御する。ＢＳＣは、ＢＳＣとＣＰＥとがＴＤＭＡ技術を使用して通信帯域幅を共有するＴＤＤフレームの一部として、ＴＤＤフレームの制御セクション内にあって、ＣＰＥによって使用される自動的な再送信のための複数のパラメータに係るその選択を含む。
【０００８】
本発明のこの態様において好ましくは、ＢＳＣは、各独立したＣＰＥとの無線通信リンクの状態に応じて、自動的な再送信のための新たに選択される複数のパラメータを動的かつ適応的に決定する。本発明のこの態様に特有であってかつ本発明によって克服される１つの問題点は、ＢＳＣが、無線通信リンクを使用するための新たに選択された複数のパラメータを送信するとき、送信される各メッセージの態様もまた動的に変化するということにある。これらは、（バイト数又はメッセージシンボル数での）各メッセージのサイズ、各メッセージの時間期間、及び各メッセージの他の態様を含む可能性がある。従って、本発明の第２の態様では、自動的な再送信のための複数のパラメータは、首尾よく送信されたメッセージの数又は首尾よく送信されたシンボルの数ではなく、送信機から受信機へ首尾よく送信されたバイト数に応答する。
【０００９】
本発明の第２の態様では、アップストリーム再送信制御装置は、アップストリーム通信の送信機（すなわちＣＰＥ）ではなくアップストリーム通信の受信機（すなわちＢＳＣ）に配置されている。再送信を制御するため、ＢＳＣは、ＴＤＤフレームのアップストリーム部分内の肯定応答時間スロットを、各選択されたＣＰＥによる使用のために動的かつ適応的に割り当てる。従って、ＢＳＣは、自動的な再送信のための複数のパラメータを決定することに加えて、（肯定応答又は否定応答メッセージのような）自動的な再送信に関連付けられた複数のメッセージを送信するための、各選択されたＣＰＥに割り当てられる帯域幅の量も決定する。本発明のこの第３の態様の一部として、受信されてはいるがまだ肯定応答されていないメッセージが存在する場合、ＢＳＣは、アップストリーム帯域幅のいくらかの部分を共有されたリソースとして割り当て、アップストリーム帯域幅のいくらかの部分を共有されないものとして割り当てる（すなわち、これは、選択されたＣＰＥに特別に割り当てられる）。
【００１０】
本発明の第３の態様では、ＢＳＣは、自動的な再送信プロトコルを、ＴＤＤフレーム及び当該フレーム内で使用されるＴＤＭＡ技術と統合化するように、各選択されたＣＰＥからの肯定応答メッセージ及び否定応答メッセージに動的かつ適応的に応答する。ある好ましい実施形態では、ＢＳＣが１つの選択されたＣＰＥへメッセージを送信する場合、ＢＳＣは、その選択されたＣＰＥからの否定応答メッセージを当該ＢＳＣが受信する毎に第１のタイムアウトを設定し、この第１のタイムアウト期間の間、ＢＳＣはその選択されたＣＰＥからのその後の肯定応答メッセージ及び否定応答メッセージを廃棄する。またある好ましい実施形態では、ＢＳＣが１つの選択されたＣＰＥからメッセージを受信する場合、ＢＳＣは、その選択されたＣＰＥからの無効なメッセージを当該ＢＳＣが受信する毎に第２のタイムアウトを設定し、この第２のタイムアウト期間の間、ＢＳＣはその選択されたＣＰＥから受信されるその後のすべてのメッセージを廃棄する。
【００１１】
本発明は、既知の技術の観点からみて新規でありかつ自明でない実質的な優位点及び性能を達成するような、広範な通信のアプリケーションのための実現可能にする技術を提供する。以下に説明される例は主として無線通信システムに関連するが、本発明は、通信リンクの特性が変化にさらされる多くの異なるタイプの通信に広く適用可能である。
【００１２】
【発明の実施の形態】
以下、好ましい処理ステップ及びデータ構造に関連して本発明の好ましい実施形態が説明される。本発明の実施形態は、ここに説明されている特定の処理ステップ及びデータ構造に適応化された、プログラム制御下で動作する汎用プロセッサ又は特殊目的プロセッサ、あるいは他の回路を使用して実装可能である。ここに説明されている処理ステップ及びデータ構造の実装は、過度の実験又はさらなる発明を必要としない。
【００１３】
先行出願．
ここに説明されている発明は、下記の明細書に説明されている発明に関連して使用されることが可能である。
【００１４】
１９９９年１２月３０日を優先日として２０００年１２月２９日にアペルト・ネットワークス・インコーポレイテッド（Ａｐｅｒｔｏ Ｎｅｔｗｏｒｋｓ， Ｉｎｃ．）名義で出願された、“ポイント・ツー・マルチポイント通信システム用の適応型リンク層（Ａｄａｐｔｉｖｅ Ｌｉｎｋ Ｌａｙｅｒ ｆｏｒ Ｐｏｉｎｔ ｔｏ Ｍｕｌｔｉｐｏｉｎｔ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｓｙｓｔｅｍ）”と題された国際出願ＰＣＴ／ＵＳ００／３５５８８号の明細書、
１９９９年１２月３０日を優先日として２０００年１２月２９日にアペルト・ネットワークス・インコーポレイテッド名義で出願された、“自己最適化型のポイント・ツー・マルチポイント通信システム（Ｓｅｌｆ−Ｏｐｔｉｍｉｚｉｎｇ Ｐｏｉｎｔ ｔｏ Ｍｕｌｔｉｐｏｉｎｔ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｓｙｓｔｅｍ）”と題された国際出願ＰＣＴ／ＵＳ００／３５５８９号の明細書、
２０００年３月３１日を優先日として２００１年３月３０日にアペルト・ネットワークス・インコーポレイテッド及び（米国向けのみ）レザ・マジディ−アヒ（Ｒｅｚａ Ｍａｊｉｄｉ−Ａｈｙ）名義で出願された、“ブロードバンドアクセスポイントを用いた頑健なトポロジーの無線通信（Ｒｏｂｕｓｔ Ｔｏｐｏｌｏｇｙ Ｗｉｒｅｌｅｓｓ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｕｓｉｎｇ Ｂｒｏａｄｂａｎｄ Ａｃｃｅｓｓ Ｐｏｉｎｔｓ）”と題された国際出願ＰＣＴ／ＵＳ０１／１０３００号の明細書、
２０００年６月２６日を優先日として２００１年６月２６日にアペルト・ネットワークス・インコーポレイテッド名義で出願された、“広帯域アクセスネットワークのための大容量のスケーラブルな統合化された無線バックホール（Ｈｉｇｈ−Ｃａｐａｃｉｔｙ Ｓｃａｌａｂｌｅ Ｉｎｔｅｇｒａｔｅｄ Ｗｉｒｅｌｅｓｓ Ｂａｃｋｈａｕｌ ｆｏｒ Ｂｒｏａｄｂａｎｄ Ａｃｃｅｓｓ Ｎｅｔｗｏｒｋｓ）”と題された国際出願ＰＣＴ／ＵＳ０１／２０４２７号の明細書、及び、
２０００年７月２１日を優先日として２００１年７月１９日にアペルト・ネットワークス・インコーポレイテッド名義で出願された、“統合化された自己最適化型の多パラメータ／多変数のポイント・ツー・マルチポイント通信システム［ＩＩ］（Ｉｎｔｅｇｒａｔｅｄ， Ｓｅｌｆ−Ｏｐｔｉｍｉｚｉｎｇ， Ｍｕｌｔｉ−Ｐａｒａｍｅｔｅｒ／Ｍｕｌｔｉ−Ｖａｒｉａｂｌｅ Ｐｏｉｎｔ−ｔｏ−Ｍｕｌｔｉｐｏｉｎｔ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｓｙｓｔｅｍ ［ＩＩ］）”と題された国際出願ＰＣＴ／ＵＳ０１／２２８５４号の明細書。
【００１５】
これらの明細書はそれぞれ、ここに完全に示されたように、参照によってここに含まれている。本願は、これらの各明細書の優先権を主張するものである。これらの明細書は、“含まれた開示内容”として集合的に言及される。
【００１６】
辞書編集．
以下の用語は、後述される発明の態様について述べ、又は当該態様に関連するものである。これらの用語の一般的意味の説明は限定的であることを意図されているのではなく、単なる例示である。
【００１７】
基地局コントローラ−一般に、無線通信セルに対する調整及び制御を実行する装置である。基地局コントローラが単一の装置でなければならないという特別な必要条件は存在せず、代替の実施形態では、基地局コントローラは、単一の装置の一部、複数の装置の組み合わせ、又はこれらの何らかの混成物（ハイブリッド装置）を含むことができる。
通信リンク−一般に、情報を送信側から受信側へ伝送するための構成要素である。ある好ましい実施形態では、言及されている通信リンクは一般に無線の見通し線ポイント・ツー・ポイント通信リンクであるが、それら通信リンクがそのように制限される特別な必要条件は存在しない。
顧客構内機器−一般に、顧客の場所で通信処理及びタスクを実行し、かつ無線通信セル内で基地局コントローラと協働して動作する装置である。顧客構内機器が単一の装置でなければならないという特別な必要条件は存在せず、代替の実施形態では、顧客構内機器は、単一の装置の一部、複数の装置の組み合わせ、又はこれらの何らかの混成物（ハイブリッド装置）を含むことができる。
ＩＰパラメータ−一般に、通信リンクのためのＩＰ層に関連した複数の特性又はパラメータのセットである。
メディアアクセス制御（ＭＡＣ）パラメータ−一般に、無線通信リンクに関して、通信リンクのメディアアクセス制御に関連した複数の特性又はパラメータのセットである。例えば、ＭＡＣパラメータは、（ａ）１メッセージ毎に割り当てられるペイロードデータのバイト数、（ｂ）肯定応答メッセージの頻度とメッセージ再送信試行の回数、（ｃ）アップストリーム通信に対して、ダウンストリーム通信に割り当てられた通信リンクの割合、などを含むことができる。
物理（ＰＨＹ）パラメータ−一般に、無線通信リンクに関して、通信リンク上での情報の物理的伝送に関連した複数の特性又はパラメータのセットである。例えば、物理的特性は、（ａ）シンボル伝送レート、（ｂ）１シンボル毎に割り当てられるペイロードデータのビット数、（ｃ）１シンボル毎に割り当てられる誤り検出又は訂正ビット数、などを含むことができる。
ＱｏＳパラメータ−一般に、通信リンクのためのＱｏＳ（サービス品質）に関連した複数の特性又はパラメータのセットである。
無線通信システム−一般に、無線通信技術を使用する少なくとも１つの通信リンクを含む通信システムである。
無線トランスポート層−一般に、無線トランスポートを使用して情報を送受信するための複数のプロトコル及び複数のプロトコルパラメータのセットである。ある好ましい実施形態では、無線トランスポート層は、物理トランスポート層を使用して無線トランスポート層が構築されかつＩＰのような論理トランスポート層によって無線トランスポート層が使用される、多層システムアーキテクチャの一部である。
【００１８】
先に述べたように、これらの用語のこうした一般的意味の説明は限定的であることを意図されているのではなく、単なる例示である。当該技術における通常の技能を有する者には、本願明細書を熟読すれば、これらの用語及び概念の拡張を含む本発明の他のアプリケーション及びさらなるアプリケーションが明らかとなるであろう。これらの他のアプリケーション及びさらなるアプリケーションは本発明の範囲及び精神の一部であり、当該技術における通常の技能を有する者には、さらなる発明又は過度の実験を行うことなく明らかとなるであろう。
【００１９】
システムのコンテキスト．
本発明のコンテキストは、含まれた開示内容のそれに類似するものである。
【００２０】
無線通信システムにおいて適応的なポイント・ツー・マルチポイント無線通信を使用するシステムは、（コンピュータネットワークのような）ネットワークに接続された装置がメッセージを送信し、メッセージをルーティングしかつ交換し、メッセージを受信するシステムの一部として動作する。ある好ましい実施形態では、ネットワークに接続された（かつこれに統合化された）装置は、これらのメッセージを、各々が配信情報を含むヘッダとデータを含むペイロードとを有する複数のパケットのシーケンスとして送信し、ルーティングしかつ受信する。ある好ましい実施形態では、パケットのフォーマットはＯＳＩモデルに適合したものであり、アプリケーションプロトコル（ＦＴＰのような第５層）はトランスポートプロトコル（ＴＣＰのような第４層）を使用し、トランスポートプロトコルはネットワークプロトコル（ＩＰのような第３層）を使用し、ネットワークプロトコルはメディアアクセス制御（ＭＡＣ）プロトコル（第２層）を使用し、メディアアクセス制御プロトコルは物理トランスポート技術（第１層）を使用する。
【００２１】
適応的なポイント・ツー・マルチポイント無線通信を使用するシステムは、第１層及び第２層に関してここに説明され、特に、これが、第１層と第２層の間の相互作用と、これらの層と第３層の間の相互作用とに適用される場合について説明される。しかしながら、本発明の概念及び技術は、ＯＳＩモデルの他の層にも適用可能である。このアプリケーションは、アプリケーション層（第５層）におけるアプリケーションのタイプを本発明の実施形態へ組み込んで通信を向上させることが可能なケースの例を示している。これらの概念及び技術をそのような他の層に適応させることは、過度の実験又はさらなる発明を必要とせず、本発明の範囲及び精神の内にある。
【００２２】
システムの構成要素．
図１は、ポイント・ツー・マルチポイント無線通信における自動的な再送信及びエラー回復を使用するシステムの一部のブロック図である。
【００２３】
システム１００は、無線通信セル１１０（又はその一部）と、基地局コントローラ（ＢＳＣ）１２０と、１つ又は複数の顧客構内機器（ＣＰＥ）１３０と、１つ又は複数の（おそらくは部分的に）干渉するかあるいは反射する障害物１４０とを含んでいる。
【００２４】
無線通信セル１１０は、大都市地区で見い出されることがあるような、全体的に六角形形状の領域である局地的表面エリア（ｌｏｃａｌ ｓｕｒｆａｃｅ ａｒｅａ）を含む。全体的に六角形形状の領域を使用することは、それらの領域が局地的な領域を実質上間隙なしに敷き詰めることができるので、無線通信の技術では既知である。しかしながら、好ましい実施形態では無線通信セル１１０が全体的に六角形形状の領域を含んでいるが、この特定の形状を使用する特別な必要条件は存在せず、代替の実施形態では、他の形状又は敷き詰め方法の局地的表面エリアを提供することが有益である場合もある。
【００２５】
図１において、ここで“セクタ”１１１と呼ばれるセル１１０の一部は、６つのセクタ１１１のセットが組み合わされて単一のセル１１０を形成するように配置される、全体的に三角形形状の領域である局地的表面エリアを含む。従って、ＢＳＣ１２０はセクタ１１１の１つのコーナーに配置されるか、又は１つのコーナーの近くに配置されるとともに、ＣＰＥ１３０はセクタ１１１内に配置される。さらに、障害物１４０はセクタ１１１内に、又は複数のセクタ１１１の連結部に配置されている。
【００２６】
本発明は、主として単一のセクタ１１１に関して説明されるが、１つのセル１１０内の複数のセクタ１１１間の相互作用と、複数のセル１１０内の複数のセクタ１１１間の相互作用とに対して、本発明の実質的なアプリケーションが存在する。本発明のこれらの実質的なアプリケーションは、本願明細書において少なくとも部分的に説明されている。さらに、本願明細書を熟読すれば、無線通信の分野における当業者には、単一のセル１１０内及び複数のセル１１０間での両方の場合で複数のセクタ１１１に関連する本発明の他の実質的なアプリケーションとさらなる実質的なアプリケーションとが、過度の実験又はさらなる発明を必要とすることなく明らかとなるであろう。
【００２７】
ＢＳＣ１２０は、プロセッサと、プログラム及びデータメモリと、大容量記憶装置と、無線通信技術を使用して情報を送信又は受信する１つ又は複数のアンテナとを含む。
【００２８】
ＢＳＣ１２０と同様に、各ＣＰＥ１３０は、プロセッサと、プログラム及びデータメモリと、大容量記憶装置と、無線通信技術を使用して情報を送信又は受信する１つ又は複数のアンテナとを含む。
【００２９】
障害物１４０は、建物、他の構造物、無線送信機及び中継器のような電磁気的な能動素子、電力線又は天候の影響のような他の電磁気的な構成要素、及びおそらくは車両等の移動物体とを含む可能性がある。
【００３０】
本発明は、主として、移動しない障害物１４０に関連して説明されるが、無線通信分野の当業者には、本願明細書を熟読すれば、移動しない障害物１４０であっても、ＢＳＣ１２０と選択されたＣＰＥ１３０との間の通信リンクの特性において、時間にわたる実質的な変化をもたらしうるということが明らかとなるであろう。さらに、移動する複数の障害物１４０が存在するセル１１０及びセクタ１１１に対しても本発明の実質的なアプリケーションが存在する。ここでは本発明のこれらの実質的なアプリケーションが詳述されていないが、無線通信分野の当業者には、本願明細書を熟読すれば、単一のセル１１０内及び複数のセル１１０間の両方の場合で移動する障害物１４０に関連する本発明の他の実質的なアプリケーションとさらなる実質的なアプリケーションとが、過度の実験又はさらなる発明を必要とすることなく明らかとなるであろう。
【００３１】
無線通信セル１１０内の複数の装置間の通信は、好ましくは、各ＣＰＥ１３０とＢＳＣ１２０との間で１対１の基準で実行される。従って、ＢＳＣ１２０は各ＣＰＥ１３０と通信し、各ＣＰＥ１３０はＢＳＣ１２０と通信する。好ましい実施形態では、ＣＰＥ１３０は他のＣＰＥ１３０と直接には通信しない。しかしながら、代替の実施形態では、ＣＰＥ１３０は他のＣＰＥ１３０と直接に通信する場合があるが、このような通信の特性は、ＢＳＣ１２０によってか、ＢＳＣ１２０に選択された１つのＣＰＥ１３０によってか、もしくは通信中のＣＰＥ１３０間で相互に合意された１つのＣＰＥ１３０によって制御される。
【００３２】
ＢＳＣ１２０と各ＣＰＥ１３０との間の通信は、時間期間が、反復される個別のフレームに分割され、その各々が“ダウンストリーム”部分と“アップストリーム”部分とを含むＴＤＤ技術を使用して実行される。送信が送信側によって制御される既存のプロトコルとは異なり、ＢＳＣ１２０は、ＣＰＥ１３０からの特別な要求なしに、アップストリーム方向とダウンストリーム方向との両方の送信を制御する。
【００３３】
時分割二重（ＴＤＤ）フレーム．
図２は、図１に示されたシステムで使用される時分割二重フレームを示す。
【００３４】
各フレームのダウンストリーム部分の間、こうしてＢＳＣ１２０は１つ又は複数のＣＰＥ１３０へ送信情報を送信する。各フレームのアップストリーム部分の間、各ＣＰＥ１３０には、送信のための、従ってＢＳＣ１２０への送信情報のための時間スロットが潜在的に割り当てられる。ＴＤＤの技術は、無線通信の分野では既知である。
【００３５】
時分割二重（ＴＤＤ）フレーム２００は、時間同期化部分２１０と、第１のガードタイム２２０と、ダウンストリーム部分２３０と、第２のガードタイム２４０と、状態同期化部分２５０と、アップストリーム部分２６０とを含む。
【００３６】
時間同期化部分２１０は、ＴＤＤフレーム２００の開始部を示す第１のシンボル２１１と、各ＣＰＥ１３０のための複数のパラメータ設定値２１２にてなるシーケンスとを含む。ＢＳＣ１２０は、複数のパラメータ設定値２１２を使用して、各選択されたＣＰＥ１３０に対して、（ａ）ＢＳＣ１２０がその選択されたＣＰＥ１３０へメッセージを送信するために使用しているＰＨＹ及びＭＡＣパラメータと、（ｂ）その選択されたＣＰＥ１３０がアップストリーム部分２６０のその割り当てられた部分の間にＢＳＣ１２０へメッセージを送信するために使用すべきＰＨＹ及びＭＡＣパラメータとを、個々にかつ別々に通知する。
【００３７】
第１のガードタイム２２０は、ＢＳＣ１２０のために、すべてのＣＰＥ１３０が、ＢＳＣ１２０から受信するとき又はＢＳＣ１２０へ送信するときに互いに干渉し合わないということを保証するのに十分な時間期間を含む。
【００３８】
ダウンストリーム部分２３０は、各々がＢＳＣ１２０によって１つの選択されたＣＰＥ１３０へ送信される複数のダウンストリームペイロード要素２３１にてなるシーケンスを含む。ＢＳＣ１２０は、これらのダウンストリームペイロード要素２３１の各々の長さを決定し、その情報を時間同期化部分２１０における複数のパラメータ設定値２１２とともに送信する。代替の実施形態では、ＢＳＣ１２０はＣＰＥ１３０を複数のクラスに分割し、ＣＰＥ１３０の各クラスに１つ又は複数のダウンストリームペイロード要素２３１を割り当ててもよい。例えば、ＢＳＣ１２０は、１つ又は複数のダウンストリームペイロード要素２３１をブロードキャスト又はマルチキャストメッセージに割り当ててもよい。
【００３９】
第２のガードタイム２４０は、ＢＳＣ１２０のために、ダウンストリーム部分２３０と状態同期化部分２５０とが干渉しないことを保証するのに十分な時間期間を含んでいる。
【００４０】
状態同期化部分２５０は、ＢＳＣ１２０が、当該より高いレベルのプロトコルに対して帯域外であるより高いレベルのプロトコルに関して各選択されたＣＰＥ１３０と一致できるように、状態情報のシーケンスを含んでいる。
【００４１】
ダウンストリーム部分と同様に、アップストリーム部分２６０は、各々が１つの選択されたＣＰＥ１３０によってＢＳＣ１２０へ送信される複数のアップストリームペイロード要素２６１にてなるシーケンスを含む。ＢＳＣ１２０（ＣＰＥ１３０ではない）は、これらのアップストリームペイロード要素２６１の各々の長さを決定し、その情報を時間同期化部分２１０における複数のパラメータ設定値２１２とともに送信する。代替の実施形態では、ＢＳＣ１２０はＣＰＥ１３０を複数のクラスに分割し、アップストリーム帯域幅の競合状態等のために、ＣＰＥ１３０の各クラスに１つ又は複数のアップストリームペイロード要素２６１を割り当ててもよい。
【００４２】
動作方法．
図３は、図１に示されたシステムを動作させる方法のフロー図を示す。
【００４３】
方法３００は、フローポイントのセットとステップのセットを含む。システム１００は当該方法３００を実行する。方法３００は逐次的に説明されているが、方法３００に係る複数のステップは、非同期かパイプラインされた方式かあるいはその他であるかに関わらず、別個の構成要素により協働して、又は並列に実行されることが可能である。特に指定されている場合を除いて、方法３００は、この説明で記載したステップと同じ順序で実行されるという特別な必要条件は存在しない。
【００４４】
フローポイント３１０において、ＢＳＣ１２０及びＣＰＥ１３０は、ＴＤＭＡフレームを開始するための準備ができている。
【００４５】
ステップ３１１で、ＢＳＣ１２０及びＣＰＥ１３０はＴＤＭＡフレームを使用して通信を実行する。このステップの一部として、ＢＳＣ１２０は、ＣＰＥ１３０へ、どの物理パラメータ及びＭＡＣパラメータを使用するかについて指示する。
【００４６】
ステップ３１２で、ＢＳＣ１２０は、先行するＴＤＭＡフレームの間での通信の性能に応答して、ＣＰＥ１３０との通信リンクの特性を決定する。
【００４７】
ステップ３１３で、ＢＳＣ１２０は、通信リンクの特性に応じて物理パラメータ及びＭＡＣパラメータの正確な値を決定する。
【００４８】
ステップ３１４で、ＢＳＣ１２０は、前のステップの結果に応じて自動的な再送信のための物理パラメータ及びＭＡＣパラメータに対する新しい値を決定する。
【００４９】
ＢＳＣ１２０は、好ましくは、セル１１０内のすべてのＣＰＥ１３０に対してこれらの自動的な再送信パラメータを動的かつ適応的に決定する。自動的な再送信パラメータは、好ましくは、各アップストリーム部分と各ダウンストリーム部分に対して独立に決定され、かつ各ＣＰＥに対して独立に決定される。
【００５０】
ＣＰＥ間の送信及び再送信の異なる特性（例えばメッセージのサイズ及び継続時間、シンボルのサイズ、及び他の態様）を明確にするために、再送信のための複数のパラメータは、好ましくは、首尾よく送信されたメッセージ又はシンボルの数ではなく首尾よく送信されたバイト数に応答する。
【００５１】
ステップ３１５で、ＢＳＣ１２０は、各ＴＤＤフレームのアップストリーム部分２６０内の複数の肯定応答時間スロットを、ＣＰＥ１３０による使用のために動的かつ適応的に割り当てる。受信されてはいるがまだ肯定応答されていないメッセージが存在する場合、このステップの一部として、ＢＳＣ１２０は、好ましくは、アップストリーム帯域幅のいくらかの部分を共有されたリソースとして割り当て、かつアップストリーム帯域幅のいくらかの部分を共有されないものとして割り当てる（すなわちこれは、選択されたＣＰＥに特別に割り当てられる）。
【００５２】
このように、アップストリーム再送信の制御は、ＣＰＥではなくＢＳＣ内に配置されている。この制御は、ＢＳＣ１２０が複数のＴＤＤフレームにわたって複数のＣＰＥに対して肯定応答スロットを分配することを可能にし、これにより、肯定応答スロットが帯域幅を使い過ぎることを、ＢＳＣ１２０が防止できる。
【００５３】
ステップＳ３１６で、ＢＳＣ１２０は、自動的な再送信プロトコルを、ＴＤＤフレーム及び当該フレーム内で使用されるＴＤＭＡ技術と統合化するように、各選択されたＣＰＥ１３０からの肯定応答メッセージ及び否定応答メッセージに動的かつ適応的に応答することができる。
【００５４】
好ましい本実施形態では、ＢＳＣ１２０が１つの選択されたＣＰＥ１３０へメッセージを送信する場合、ＢＳＣ１２０は、ＢＳＣ１２０がその選択されたＣＰＥからの否定応答メッセージを受信する毎に第１のタイムアウトを設定する。この第１のタイムアウトの継続時間の間、ＢＳＣ１２０はその選択されたＣＰＥ１３０からのその後の肯定応答メッセージ及び否定応答メッセージを廃棄する。
【００５５】
また好ましい本実施形態では、ＢＳＣ１２０が１つの選択されたＣＰＥ１３０からメッセージを受信する場合、ＢＳＣ１２０は、その選択されたＣＰＥ１３０から無効なメッセージを受信する毎に第２のタイムアウトを設定する。この第２のタイムアウトの継続時間の間、ＢＳＣ１２０はその選択されたＣＰＥ１３０から受信されるその後のメッセージをすべて廃棄する。
【００５６】
ステップ３１６の後で、ＢＳＣ１２０及びＣＰＥ１３０はＴＤＤフレームを使用して情報を送受信する１つのステップを実行し終える。フローポイント３１０に繰り返し到達して、その後のステップは各ＴＤＤフレームに対して反復して実行される。
【００５７】
本発明の好ましい実施形態を実質的に上述のように実施するための擬似コードが、本願明細書の技術的な付録に含まれている。
【００５８】
本発明の一般性．
本発明は、必ずしも上述のサービスに関連していない様々な使用の分野への一般的な適用可能性を有している。例えば、これらの使用の分野は、以下の内の１つ又は複数、又は何らかの組み合わせを含むことができる。
【００５９】
本発明は、周波数分割多重アクセス（ＦＤＭＡ）又は符号分割多重アクセス（ＣＤＭＡ、スペクトル拡散通信としても知られている）のような他の形式の無線通信に適用可能である。
本発明は、通信の相対的な有効性又は効率が物理パラメータ又はＭＡＣパラメータのような複数の通信パラメータを動的に調整することによって達成されうる任意の非無線通信に適用可能である。例えば、本発明は、複数の等化パラメータが動的に調整されるモデムを用いた非無線通信に一般化されることが可能である。
本発明は、衛星通信システム及び（マイクロ波タワー又はその他の）ポイント・ツー・ポイント送信システムのような他の無線通信システムに適用可能である。
本発明は、顧客構内機器がＢＳＣ１２０に対して移動しない、固定された無線通信システムと、顧客構内機器がＢＳＣ１２０に対して実質的に移動する移動体無線通信システムとの両方に適用可能である。
本発明は、単一の送信機及び単一の受信機と、複数の送信機及び複数の受信機のセットとの両方に適用可能である。
【００６０】
当業者には、本願明細書を熟読すれば、本発明の他のアプリケーション、及びさらなるアプリケーションがその最も一般化された形式で明らかとなるであろう。これらのアプリケーションは、本発明の範囲及びその精神の内にある。
【００６１】
ここには好ましい実施形態が開示されているが、本発明の概念、範囲及び精神の内にあるままで多くの変形例も可能であり、当業者には本願明細書を熟読したならばこれらの変形例が明らかとなるであろう。
【００６２】
本特許明細書の開示内容の一部は、著作権保護の対象となっている素材を含んでいる。著作権の所有者は、特許庁の特許ファイル又は記録に記載されている通りの特許明細書又は特許開示内容の複写複製物に対して、それがいかなる者によって作成されても異議を唱えるものではないが、いかなる形態であれこれ以外の複製を制限する。
【００６３】
技術的な付録．
擬似コード，著作権，２０００，アペルト・ネットワークス・インコーポレイテッド．
【００６４】
４．０  ダウンストリームＡＲＱ （ＢＳＣ Ｔｘ， ＣＰＥ Ｒｘ）
【００６５】
４．１  パラメータ（制御ＰＤＵハンドラ）
ＡＲＱＷｉｎｄｏｗＳｉｚｅ；  ／／ＡＲＱウィンドウのサイズ。２＾（ｎ−１）バイトに設定する。
／／ここで、ｎは、シーケンス番号フィールドにおける
／／ビット数である。
ｍａｘＡｃｋｓＬｏｓｔ；    ／／アップストリームＡＣＫに対する最大の再試行回数。
／／この後、ＣＰＥの範囲が再決定される。
ｍａｘＲｅｑＲｅｔｒｉｅｓ；  ／／ＲＥＱパケットに対する最大の再試行回数。
【００６６】
４．２  ＢＳＣ Ｔｘ （ｒｅｑＷｉｎ， ｓｃＷｉｎ， ｃｕｒＷｉｎ， ａｃｋＷｉｎ）
４．２．１  初期化（制御ＰＤＵハンドラ）
ｒｅｑＷｉｎＯｆｆ ＝ ０；    ／／キューイングされる次のバイトのシーケンス番号
ｓｃＷｉｎＯｆｆ ＝ ０；     ／／ＢＳＣによって送信される次のバイトのシーケンス番号
ｃｕｒＷｉｎＯｆｆ ＝ ０；    ／／ＣＰＥが予測する次のバイトのシーケンス番号
ａｃｋＷｉｎＯｆｆ ＝ ０；    ／／肯定応答を待機する次のバイトのシーケンス番号
／／空のＳＩＤＱ＿ＥＬを割り当ててポインタを初期化する。
ｎｅｗＳｉｄＱＥｌ ＝ ＡｌｌｏｃａｔｅＳｉｄＱＥｌ（）；
ｎｅｗＳｉｄＱＥｌ−＞ＥＯＬ ＝ ＴＲＵＥ；
ｗｒｉｔｅＥｌＰｔｒ ＝ ａｃｋＥｌＰｔｒ ＝ ｃｕｒＥｌＰｔｒ ＝ ｓｃＥｌＰｔｒ ＝ ｎｅｗＳｉｄＱＥｌ；
ａｃｋＰｔｒ ＝ ｃｕｒＰｔｒ ＝ ｓｃＰｔｒ ＝ ０；
ｒｅｔｒｙＣｎｔ ＝０；      ／／パケットを廃棄する時を決定するために使用される。
ＮｕｍＡｃｋｓＬｏｓｔ ＝ ０；  ／／リンクの適応化に使用される。
【００６７】
４．２．２  ＰＤＵの到着（分類子、ポリサ（ｐｏｌｉｃｅｒ））
／／ＷＰＤＵを分類する。
ｆｉｎｄ ｓｉｄＱ（ＰＤＵ）；                         ／／分類子
／／ｓｉｄＱのオーバーフローセクション上のＷＰＤＵをキューに入れる
（エンキューする）。
ｎｅｗＳｉｄＱＥｌ ＝ ＡｌｌｏｃａｔｅＳｉｄＱＥｌ（）；           ／／ポリサ
ｎｅｗＳｉｄＱＥｌ−＞ＥＯＬ ＝ ＴＲＵＥ；                  ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ−＞ｎｅｘｔ ＝ ｎｅｗＳｉｄＱＥｌ；           ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ−＞ｌｅｎｇｔｈ ＝ ＰＤＵ．ｌｅｎｇｔｈ；        ／／ポリサ
ｗｒｉｔｅＥｌｐｔｒ−＞ｔｘＭｓｇＰｔｒ ＝ ＰＤＵ．ｔｘＭｓｇＰｔｒ；    ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ−＞ｐｋｔＰｔｒ ＝ ＰＤＵ．ｐａｃｋｅｔ；        ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ ＝ ｎｅｗＳｉｄＱＥｌ；                 ／／ポリサ
／／パケットがオーバーフローセクションの外へ移動される前にトラフィックの
／／シェーピングが実行されてもよい。
／／ＵＳＧとのタイミングの問題を回避するために、これらの更新は最後に
／／実行されなければならない。
ｒｅｑＷｉｎＯｆｆ ＝ ｒｅｑＷｉｎＯｆｆ ＋ ＰＤＵ．ｓｉｚｅ；       ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ−＞ＥＯＬ ＝ ＦＡＬＳＥ；                ／／ポリサ
【００６８】
４．２．３  ＭＡＰの構成（スケジューラ）
ｗｈｉｌｅ （ｓｐａｃｅ ｌｅｆｔ ｆｏｒ ｄａｔａ ｉｎ ｄｏｗｎｓｔｒｅａｍ ＴＤＤ ｆｒａｍｅ） ｛
ｓｉｄＱＣｔｒｌ ＝ ＳＩＤ ｔｈａｔ Ｓｃｈｅｄｕｌｅｒ ｓｅｌｅｃｔｓ；
ｂｙｔｅｓＩｎＱｕｅｕｅＴｏＳｃｈｅｄｕｌｅ ＝ ｒｅｑＷｉｎＯｆｆ − ｓｃＷｉｎＯｆｆ；
／／常にＡＲＱなしで複数のＳＩＤに対するバイトをスケジューリングする
／／ように試みる。
／／ＡＲＱが存在するＳＩＤの場合、われわれは、いくつかのバイトの
／／スケジューリングを試みる前にわれわれがわれわれのウィンドウを使い
／／果たしていないということを確認する必要がある。
ｉｆ （ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝ ＦＡＬＳＥ） ＯＲ
（ （ｓｃＷｉｎＯｆｆ ＋ ｂｙｔｅｓＳｃｈｅｄｕｌｅｄ − ａｃｋＷｉｎＯｆｆ） ＜ ＡＲＱＷｉｎｄｏｗＳｉｚｅ） ） ｛
ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｗｉｎＯｆｆ ＝ ｓｃＷｉｎＯｆｆ；
ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｐａｙｌｏａｄＳｉｚｅ ＝ ｂｙｔｅｓＳｃｈｅｄｕｌｅｄ； ／／区切りバイトを含む。
ｓｃＷｉｎＯｆｆ ＝ ｓｃＷｉｎＯｆｆ ＋ ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｐａｙｌｏａｄＳｉｚｅ；
ａｌｌｏｃａｔｅ ｔｉｃｋｓ ｆｏｒ ＷＰＤＵ ｉｎ ｄｏｗｎｓｔｒｅａｍ ｐｏｒｔｉｏｎ ｏｆ ＴＤＤ Ｆｒａｍｅ；
ｕｐｄａｔｅ ｓｃＥｌＰｔｒ ａｎｄ ｓｃＰｔｒ ｔｏ ｒｅｆｌｅｃｔ ｂｙｔｅｓ ｓｃｈｅｄｕｌｅｄ；
／／ＡＣＫを必要とするものとしてＳＩＤにマーキングする。
ｉｆ （ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｃｋ ＝ ＴＲＵＥ） ＡＮＤ （！ｓｉｄＱＣｔｒｌ．ａｃｋＦｌａｇ） ） ｛
ｓｉｄＱＣｔｒｌ．ａｃｋＦｌａｇ ＝ ＴＲＵＥ；
ａｄｄ ｔｏ ｌｉｓｔ ｏｆ ｄｏｗｎｓｔｒｅａｍ ＳＩＤｓ ｎｅｅｄｉｎｇ ＡＣＫ； ｝ ｝ ｝ ／／その間、（スペースが残されている）
／／１つのフレームに対して、ＳＩＤ毎にただ１つのＡＣＫをスケジューリング
／／する。
／／われわれは、ＡＲＱなしで複数のＳＩＤに対する複数のＡＣＫをスケジュー
／／リングすることができる。これは、リンクの適応化に必要とされる。
ｆｏｒ ｅａｃｈ ＳＩＤ ｏｎ ｌｉｓｔ ｏｆ ｄｏｗｎｓｔｒｅａｍ ＳＩＤｓ ｎｅｅｄｉｎｇ ＡＣＫ ｛
／／肯定応答されるべきバイトが残っている場合は、現在のフレームがこの
／／ＳＩＤに対してスケジューリングされたＷＰＤＵを有していない場合で
／／あっても、ＡＣＫのためにスペースを割り当てる。
ｉｆ （ｓｃＷｉｎＯｆｆ ！＝ ａｃｋＷｉｎＯｆｆ） ｛
Ａｌｌｏｃａｔｅ ｔｉｃｋｓ ｆｏｒ ＡＣＫ ｉｎ ｔｈｅ ｕｐｓｔｒｅａｍ ｐｏｒｔｉｏｎ ｏｆ ＴＤＤ ｆｒａｍｅ；
ＡＣＫ＿ＩＥ．ｓｉｄ ＝ ｔｈｉｓ ＳＩＤ； ｝
ｅｌｓｅ ｛
ｄｅｌｅｔｅ ｆｒｏｍ ｌｉｓｔ ｏｆ ＳＩＤｓ ｎｅｅｄｉｎｇ ＡＣＫ；
ｓｉｄＱＣｔｒｌ．ａｃｋＦｌａｇ ＝ ＦＡＬＳＥ； ｝
｝ ／／（リスト上の各ＳＩＤ）について
【００６９】
４．２．４  ＭＡＰの到着（ハードウェア）
ｉｆ （ｄａｔａ ｇｒａｎｔ ＩＥ） ｛
／／パケットは廃棄されたか、それとも再送信されたか？
ｉｆ （ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝ ＴＲＵＥ） ＡＮＤ
（ｃｕｒＷｉｎＯｆｆ ！＝ ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｗｉｎＯｆｆ） ） ｛
／／可能であれば、（ａｃｋＷｉｎＯｆｆ＝＝ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｗｉｎＯｆｆ）をチェックする。
ｃｕｒＷｉｎＯｆｆ ＝ ａｃｋＷｉｎＯｆｆ；
Ｒｅｓｅｔ ｔｈｅ ｃｕｒ ｐｏｉｎｔｅｒｓ ｔｏ ｔｈｅ ａｃｋ ｐｏｉｎｔｅｒｓ； ｝
／／ＨＷパケットの細分化のために擬似コードを必要とする。
Ｂｕｉｌｄ ａ ＷＰＤＵ ｕｓｉｎｇ ｔｈｅ ｃｕｒＥｌＰｔｒ ａｎｄ ｃｕｒＰｔｒ
ＷＰＤＵ．ｗｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ； ／／ｃｕｒＷｉｎ？？ＪＦでなくｄａｔａ ｇｒａｎｔ ｉｅを使用すべき場合
ｃｕｒＷｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ ＋ ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｐａｙｌｏａｄ
Ｕｐｄａｔｅ ｃｕｒＥｌＰｔｒ ａｎｄ ｃｕｒＰｔｒ ｔｏ ｒｅｆｌｅｃｔ ｂｙｔｅｓ ｔｒａｎｓｍｉｔｔｅｄ｝
【００７０】
４．２．５  ＷＰＤＵの送信（ハードウェア）
ｔｒａｎｓｍｉｔ ｂｕｉｌｔ ＷＰＤＵ；
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＦＡＬＳＥ）
ｒｅｔｕｒｎ ａｎｙ ｃｏｍｐｌｅｔｅｌｙ ｔｒａｎｓｍｉｔｔｅｄ ｐａｃｋｅｔ；
【００７１】
４．２．６  ＡＣＫの到着（スケジューラ）
／／肯定応答されたバイト数を計算する。
ＮｕｍＡｃｋｓＬｏｓｔ ＝ ０；
ａｃｋＢｙｔｅＣｎｔ ＝ ＡＣＫ．ｗｉｎＯｆｆ−ａｃｋＷｉｎＯｆｆ；
／／ＡＲＱであれば、ここにはフリーのバッファのみが存在する。
そうでなければ、それらは送信の直後に解放されているだろう。
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＴＲＵＥ） ｛
／／肯定応答されたバイトが存在するか？
ｉｆ （ａｃｋＢｙｔｅＣｎｔ） ｛
ａｃｋＷｉｎＯｆｆ ＝ ａｃｋＷｉｎＯｆｆ ＋ ａｃｋＢｙｔｅＣｎｔ；
ｔｅｍｐＥｌＰｔｒ ＝ ａｃｋＥｌＰｔｒ；
ｕｐｄａｔｅ ａｃｋＰｔｒ ａｎｄ ａｃｋＥｌＰｔｒ ｔｏ ａｃｃｏｕｎｔ ｆｏｒ ｔｈｅ ｂｙｔｅｓ ＡＣＫｅｄ；
ｉｆ （ｔｅｍｐＥｌＰｔｒ ！＝ ａｃｋＥｌＰｔｒ）
ｆｒｅｅ ＳＩＤＱ＿ＥＬｓ ｂｅｔｗｅｅｎ ａｃｋＥｌＰｔｒ ａｎｄ ｔｅｍｐＥｌＰｔｒ；
ｉｆ （ＡＣＫ．ｎａｋＦｌａｇ ｃｌｅａｒ）
ｒｅｔｒｙＣｎｔ ＝ ０； ｝
／／否定応答されたバイトが存在するか？
ｉｆ （ＡＣＫ．ｎａｋＦｌａｇ ｓｅｔ） ｛
ｉｆ （ （ａｃｋＢｙｔｅＣｎｔ ＝＝ ０） ＆＆ （ｔｉｍｅ ＞ ｔｈｒｅｓｈｏｌｄ） ） ｛
ｔｈｒｅｓｈｏｌｄ ＝ ｔｉｍｅ ａｔ ｗｈｉｃｈ ｔｈｅ ｌａｓｔ （ｐａｒｔｉａｌｌｙ） ａｌｌｏｃａｔｅｄ ＴＤＤ ｆｒａｍｅ
ｅｎｄｓ；
ｒｅｔｒｙＣｎｔ ＝ ｒｅｔｒｙＣｎｔ ＋ １； ｝
／／再試行カウントが満了すると、リスト中の第１のパケットのみを
廃棄する。
ｉｆ （ｒｅｔｒｙＣｎｔ ＞ ｓｉｄＱＣｔｒｌ．ｍａｘＲｅｔｒｙ） ｛
／／ｐｋｔＰｔｒはパケット内の第１のバイトを指し、ａｃｋＰｔｒはｐｋｔＰｔｒから
／／次の肯定応答するバイトへのオフセットである。
ｄｒｏｐＢｙｔｅｓ ＝ ａｃｋＥｌＰｔｒ−＞ｌｅｎｇｔｈ − ａｃｋＰｔｒ；
ｔｅｍｐＥｌＰｔｒ ＝ ａｃｋＥｌＰｔｒ；
ｕｐｄａｔｅ ａｃｋＥｌＰｔｒ ｔｏ ｎｅｘｔ ｐａｃｋｅｔ ｉｎ ｌｉｓｔ；
ａｃｋＰｔｒ ＝ ０；
ｆｒｅｅ （ｔｅｍｐＥｌＰｔｒ）；
／／再送信される必要がある任意のバイトを説明している。
ｒｅｑＷｉｎＯｆｆ −＝ ｄｒｏｐＢｙｔｅｓ； ／／スケジューラはポリサにこれを実行する
／／ように要求し、これが実行されるまでは
／／このＳＩＤに対するさらなるバイトを
／／スケジューリングしない。
ｉｎｆｏｒｍ ｌｉｎｋ ａｄａｐｔａｔｉｏｎ ｔａｓｋ ｔｈａｔ ｗｅ ｄｒｏｐｐｅｄ ａｎ ＥＰＤＵ｝
／／われわれは、再送信のために、いくつかのバイトを再スケジューリング
しなければならない。
ｓｃＷｉｎＯｆｆ ＝ ａｃｋＷｉｎＯｆｆ；
ｕｐｄａｔｅ ｓｃ ｐｏｉｎｔｅｒｓ ｔｏ ａｃｋ ｐｏｉｎｔｅｒｓ；
｝ ／／ｎａｋＢｙｔｅＣｎｔであるとき
｝ ／／ＡＲＱであるとき
【００７２】
４．２．７  ＡＣＫの損失（スケジューラ）
ＮｕｍＡｃｋｓＬｏｓｔ ＝ ＮｕｍＡｃｋｓＬｏｓｔ ＋ １；
ｉｆ （ＮｕｍＡｃｋｓＬｏｓｔ ＞ ｍａｘＡｃｋｓＬｏｓｔ）
ＲｅＲａｎｇｅ ＣＰＥ；
／／注意：対応するＭＡＰが失われる場合に、ＡＣＫが失われることがある。
／／しかしながら、失われたＭＡＰイベントがＢＳＣによってどのように検出
／／されうるかは明らかでない。
／／注意：ＣＰＥの範囲を再決定できない場合、リンク適応化タスクは制御
／／ＰＤＵハンドラにメッセージを送ってｓｉｄＱを書き出す（フラッシュする）
／／必要がある。
【００７３】
４．３  ＣＰＥ Ｒｘ（ｃｕｒＷｉｎ）
４．３．１  初期化（制御ＰＤＵハンドラ）
／／ＣＰＥ Ｓ／ＷはｗｉｎＯｆｆを管理しない。
ｃｕｒＷｉｎＯｆｆ ＝ ０； ／／送信／受信する次のＷＰＤＵのシーケンス番号
ｃｕｒ ｐｏｉｎｔｅｒｓ ＝ ＮＵＬＬ；
【００７４】
４．３．２  ＷＰＤＵの到着（ハードウェア）
／／不良なｗｐｄｕを決して保持しない。
ｉｆ （ｃｒｃ ｅｒｒｏｒ） ｛
Ｓｅｔ ＮＡＫ ｆｌａｇ；
Ｄｉｓｃａｒｄ （ＷＰＤＵ）；
ｄｉｓｃａｒｄ ａｎｙ ｐａｃｋｅｔ ｃｕｒｒｅｎｔｌｙ ｂｅｉｎｇ ｒｅａｓｓｅｍｂｌｅｄ； ｝
ｅｌｓｅ ｉｆ （ｎｏ ｅｎｅｒｇｙ ｄｅｔｅｃｔｅｄ）
Ｓｅｔ ＮＡＫ ｆｌａｇ；
／／シーケンスから外れたｗｐｄｕが到着しかつこのＳＩＤがＡＲＱを有する場合、
／／われわれが予測している次のシーケンス番号を受信するまでこのｗｐｄｕを
／／廃棄する。
ｅｌｓｅ ｉｆ （ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝ ＴＲＵＥ） ＡＮＤ （ＷＰＤＵ．ｗｉｎＯｆｆ ！＝ ｃｕｒＷｉｎＯｆｆ） ）
Ｄｉｓｃａｒｄ （ＷＰＤＵ）；
／／ＷＰＤＵを受信する。それは正しいシーケンスの中に存在するか、又は
／／ＳＩＤがＡＲＱを持たずかつシーケンスを管理しないかのいずれかである。
ｅｌｓｅ ｛
ｃｕｒＷｉｎＯｆｆ ＝ ＷＰＤＵ．ｗｉｎＯｆｆ ＋ ＷＰＤＵ．ｐａｙｌｏａｄＳｉｚｅ；
／／新たなパケットが到着しかつわれわれが先にパケットのアセンブルをして
／／いた場合は、ＨＷパケットの再アセンブルのための擬似コードが必要であ
／／り、われわれは古いパケットを廃棄して新たなパケットを受け入れる。
ｉｆ （ （ＷＰＤＵ．ｃａｔＰｔｒ ＝＝ ０） ａｎｄ （ｃｕｒＰｔｒ ！＝ ０） ） ｛
Ｄｉｓｃａｒｄ （Ｐａｒｔｉａｌ ａｓｓｅｍｂｌｅｄ ｐａｃｋｅｔ）；
ｃｕｒＰｔｒ ＝ ０；
ｃｕｒＥｌＰｔｒ ＝ ＮＵＬＬ； ｝
／／可能であれば、新たなパケットが不正な長さであるか否かチェックする。
／／なぜならば、それが不良なものであってわれわれがそれをここで発見し
／／なければ、それは突きとめるべき真の仕事となるからである。
ｉｆ （ｃｕｒＥｌＰｔｒ．ｌｅｎｇｔｈ ！＝ ｃｕｒＰｔｒ？？）
ｄｉｓｃａｒｄ ｐａｃｋｅｔ； ｝
【００７５】
４．３．３  ＡＣＫの送信（ハードウェア）
／／ＡＣＫが存在する複数のＳＩＤに対して複数のｗｐｄｕがスケジューリング
／／されるとき、スケジューラはＡＣＫのために同じＭＡＰ又は次のＭＡＰの
／／中にＩＥを生成する。
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｃｋ ＝＝ ＴＲＵＥ） ｛
ＡＣＫ．ｓｔａｔｕｓ ＝ ＡＣＫ ｏｒ ＮＡＫ；
ＡＣＫ．ｗｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ；
ＡＣＫ．ｌｉｎｋＰａｒｍｓ ＝ ｍｏｄｅｍＳｔａｔｕｓ；
Ｔｒａｎｓｍｉｔ ＡＣＫ； ｝
【００７６】
５．０  アップストリームＡＲＱ（ＣＰＥ Ｔｘ， ＢＳＣ Ｒｘ）
【００７７】
５．１  ＣＰＥ Ｔｘ （ｒｅｑＷｉｎ， ｃｕｒＷｉｎ， ａｃｋＷｉｎ）
５．１．１  初期化（制御ＰＤＵハンドラ）
ｒｅｑＷｉｎＯｆｆ ＝ ０； ／／送信を待機している次のバイトの番号に対するシーケンス
／／番号。
ｃｕｒＷｉｎＯｆｆ ＝ ０； ／／ＣＰＥが送信を予測している次のバイトのシーケンス
／／番号。再送信の場合、ＭＡＰ中のシーケンス番号はこれ
／／より小さくなることがある。
ａｃｋＷｉｎＯｆｆ ＝ ０； ／／肯定応答を待機している次のバイトのシーケンス番号。
／／空のＳＩＤＱ＿ＥＬを割り当て、ポインタを初期化する。
ｎｅｗＳｉｄＱＥｌ ＝ ＡｌｌｏｃａｔｅＳｉｄＱＥｌ（）；
ｎｅｗＳｉｄＱＥｌ−＞ＥＯＬ ＝ ＴＲＵＥ；
ｗｒｉｔｅＥｌＰｔｒ ＝ ａｃｋＥｌＰｔｒ ＝ ｃｕｒＥｌＰｔｒ ＝ ｒｅａｄＥｌＰｔｒ ＝ ｎｅｗＳｉｄＱＥｌ；
ａｃｋＰｔｒ ＝ ｃｕｒＰｔｒ ＝ ０；
【００７８】
５．１．２  ＰＤＵの到着（分類子、ポリサ）
／／ＷＰＤＵを分類する。
ｆｉｎｄ ｓｉｄＱＣｔｒｌ （ＰＤＵ）； ／／分類子
／／新たな空のＳｉｄＱＥｌを生成してリストを終了する。
ｎｅｗＳｉｄＱＥｌ ＝ ＡｌｌｏｃａｔｅＳｉｄＱＥｌ（）；／／ポリサ
ｎｅｗＳｉｄＱＥｌ−＞ＥＯＬ ＝ ＴＲＵＥ； ／／ポリサ
／／ｓｉｄＱのオーバーフローセクション上のＷＰＤＵをキューに入れる。
ＥＯＬビットは既に設定されている必要がある。
ｗｒｉｔｅＥｌＰｔｒ−＞ｎｅｘｔ ＝ ｎｅｗＳｉｄＱＥｌ； ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ−＞ｌｅｎｇｔｈ ＝ ＰＤＵ．ｌｅｎｇｔｈ； ／／ポリサ
ｗｒｉｔｅＥｌｐｔｒ−＞ｔｘＭｓｇＰｔｒ ＝ ＰＤＵ．ｔｘＭｓｇＰｔｒ； ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ−＞ｐｋｔＰｔｒ ＝ ＰＤＵ．ｐａｃｋｅｔ； ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ ＝ ｎｅｗＳｉｄＱＥｌ； ／／ポリサ
ｉｆ （ｓｉｄＱＣｔｒｌ−＞ｆｌｕｓｈＦｌａｇ ｎｏｔ ｓｅｔ） ｛
ｗａｉｔ ｔｉｌｌ ａｃｔｉｖｅＦｌｏｗＦｉｆｏ ｈａｓ ｒｏｏｍ；
ａｃｔｉｖｅＦｌｏｗＦｉｆｏ ＝ ＰＤＵ．ｓｉｄＮｕｍｂｅｒ； ／／ポリサはＨｗに通知する。｝
／／パケットがオーバーフローセクションの外に移動される前にトラフィック
のシェーピングが実行されてもよい。
ｒｅｑＷｉｎＯｆｆ ＝ ｒｅｑＷｉｎＯｆｆ ＋ ＰＤＵ．ｓｉｚｅ； ／／ポリサ
ｗｒｉｔｅＥｌＰｔｒ−＞ＥＯＬ ＝ ＦＡＬＳＥ； ／／ポリサ
【００７９】
５．１．３  ＲＥＱの送信（ＨＷ）
ｉｆ （ｓｔａｔｅ ＝ Ｉｄｌｅ） ｛
ＰＤＵ ａｒｒｉｖａｌ
Ｃｏｍｐｕｔｅ Ｄｅｆｅｒ
ｓｔａｔｅ ＝ Ｄｅｆｅｒｒｉｎｇ； ｝
ｅｌｓｅ ｉｆ （ｓｔａｔｅ ＝ Ｄｅｆｅｒｒｉｎｇ） ｛
ｍａｐ ａｒｒｉｖｅｓ ｗｉｔｈ ｒｅｑ ＩＥ ｏｐｐｏｒｔｕｎｉｔｙ
ＲＥＱ．ｗｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ；
ＲＥＱ．ｒｅｑＷｉｎＯｆｆ ＝ ｒｅｑＷｉｎＯｆｆ；
Ｔｘ ＲＥＱ；
ｓｔａｔｅ ＝ ＧｒａｎｔＰｅｎｄｉｎｇ；
ｅｌｓｅ ｉｆ （ｓｔａｔｅ ＝ ＧｒａｎｔＰｅｎｄｉｎｇ）
／／ＢＳＣがわれわれのＲＥＱパケットを受信した。
ｍａｐ ａｒｒｉｖｅｓ ｗｉｔｈ ｕｐｓｔｒｅａｍ ｄａｔａ ＩＥ
ｔｒａｎｓｍｉｔ ＷＰＤＵ；
／／ＳＩＤキューにさらにバイトが残っているか？
ｉｆ （ｒｅｑＷｉｎ − ｃｕｒＷｉｎ）
ｓｔａｔｅ ＝ ＧｒａｎｔＰｅｎｄｉｎｇ；
／／ＳＩＤキューは空である。
ｅｌｓｅ ｛
ｎｕｍＲｅｑＲｅｔｒｉｅｓ ＝ ０；
ｓｔａｔｅ ＝ Ｉｄｌｅ； ｝
／／われわれのＲＥＱパケットはＢＳＣに届かなかった。
ｍａｐ ａｒｒｉｖｅｓ ｗｉｔｈ ｎｏ ｇｒａｎｔ ＩＥ ｏｒ ｇｒａｎｔ ｐｅｎｄｉｎｇ ＩＥ
ｎｕｍＲｅｑＲｅｔｒｉｅｓ ＝ ｎｕｍＲｅｑＲｅｔｒｉｅｓ ＋ １；
ｉｆ （ｎｕｍＲｅｑＲｅｔｒｉｅｓ ＞ ｍａｘＲｅｑＲｅｔｒｉｅｓ） ｛
ＨＷ ｗｒｉｔｅｓ ＳＩＤ ｎｕｍ ｐｌｕｓ ｆｌｕｓｈ ｆｌａｇ ｉｎ ｆｉｆｏ；
ＨＷ ｄｏｅｓ ｎｏｔ ｔｘ ａｎｙｍｏｒｅ ｐｄｕｓ ｕｎｔｉｌ ｓｗ ｗｒｉｔｅｓ ｔｏ
ＡＣＴＩＶＥ＿ＳＩＤ＿ＦＩＦＯ；
ＨＷ ｓｅｔｓ ｓｉｄＱＣｔｒｌ−＞ｆｌｕｓｈＦｌａｇ；
ｎｕｍＲｅｑＲｅｔｒｉｅｓ ＝ ０；
ｓｔａｔｅ ＝ Ｉｄｌｅ； ｝
ｅｌｓｅ
ｓｔａｔｅ ＝ Ｄｅｆｅｒｒｉｎｇ；
【００８０】
５．１．４  ＭＡＰの到着（ハードウェア）
ｉｆ （ＭＡＰ ｍｉｓｓｉｎｇ） ｛
ｃａｌｃｕｌａｔｅ ｔｉｍｅ ｏｆ ｎｅｘｔ ＭＡＰ；
ａｓｓｕｍｅ ｌａｒｇｅｓｔ ＭＡＰ ｓｉｚｅ；
ｐｒｏｇｒａｍ Ｂｒｏａｄｃｏｍ ｔｏ ｒｅｃｅｉｖｅ ｎｅｘｔ ＭＡＰ； ｝
ｉｆ （Ｄａｔａ Ｇｒａｎｔ ＩＥ） ｛
／／ＡＲＱであれば、予測されたオフセットについての許可がわれわれに与えられるまで何も実行しない。
ｉｆ （ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＦＡＬＳＥ） ＯＲ
（ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｗｉｎＯｆｆ ＝＝ ｃｕｒＷｉｎＯｆｆ） ） ｛
ＷＰＤＵ．ｐａｙｌｏａｄＳｉｚｅ ＝ ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｐａｙｌｏａｄＳｉｚｅ；
Ｃｏｎｆｉｒｍ ｔｈａｔ ａｌｌｏｃａｔｅｄ ｔｉｃｋｓ ａｒｅ ｓｕｆｆｉｃｉｅｎｔ ｔｏ ａｃｃｏｍｍｏｄａｔｅ ＷＰＤＵ；
ＷＰＤＵ．ｒｅｑ ＝ ｒｅｑＷｉｎＯｆｆ；
ＷＰＤＵ．ｗｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ； ｝ ｝
ｉｆ （ （ＭＡＰ ＡＣＫ ＩＥ） ＯＲ （ＭＡＰ ＮＡＫ ＩＥ） ） ｛
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＴＲＵＥ） ｛
ａｃｋＢｙｔｅＣｎｔ ＝ ＡＣＫ．ｗｉｎＯｆｆ − ａｃｋＷｉｎＯｆｆ；
ａｃｋＷｉｎＯｆｆ ＝ ＡＣＫ．ｗｉｎＯｆｆ；
／／肯定応答されたバイトが存在するか？
ｉｆ （ａｃｋＢｙｔｅＣｎｔ） ｛
ｕｐｄａｔｅ ａｃｋＥｌＰｔｒ ｔｏ ａｃｃｏｕｎｔ ｆｏｒ ｔｈｅ ａｃｋＢｙｔｅＣｎｔ；
ａｃｋＰｔｒ ＝ ０； ｝
ｉｆ （ＭＡＰ ＮＡＫ ＩＥ） ｛
ｒｅｓｅｔ ｃｕｒ ｐｏｉｎｔｅｒｓ ａｎｄ ｗｉｎＯｆｆ ｔｏ ａｃｋ ｐｏｉｎｔｅｒｓ ａｎｄ ｗｉｎＯｆｆ； ｝
／／ＳＷにＡＣＫについて通知すると、バッファを解放することができる。
ｗｒｉｔｅ ＳＩＤ ｎｕｍｂｅｒ ａｎｄ ｓｅｔ ＡＣＫ ｆｌａｇ ｉｎ ｔｈｅ ＷＭ＿ＴＸ＿ＰＫＴ＿ＦＩＦＯ； ｝ ／／ＡＲＱであるとき
｝ ／／ＡＣＫ又はＮＡＫ  ＩＥであるとき
ｉｆ （ＭＡＰ ＦＬＵＳＨ ＩＥ） ｛
／／スケジューラはパケットを放棄する時間であると決定したので、ＥＯＬ
／／又はリスト終了パケットを廃棄する。
ｗｒｉｔｅ ＳＩＤ ｎｕｍｂｅｒ ａｎｄ ｓｅｔ ｆｌｕｓｈ ｆｌａｇ ｉｎ ＷＭ＿ＴＸ＿ＰＫＴ＿ＦＩＦＯ；
ｓｅｔ ｓｉｄＱＣｔｒｌ−＞ｆｌｕｓｈＦｌａｇ；
／／このＳＩＤ上のデータ送信を強制停止させる。このことは、
／／われわれに、ｒｅｑＷｉｎＯｆｆを更新する時間を与える。
ＨＷ ｄｏｅｓ ｎｏｔ ｔｘ ａｎｙｍｏｒｅ ｐｄｕｓ ｕｎｔｉｌ ＳＷ ｗｒｉｔｅｓ ｔｏ ＡＣＴＩＶＥ＿ＳＩＤ＿ＦＩＦＯ；
ｇｏ ｔｏ ｒｅｑ ｓｔａｔｅ Ｉｄｌｅ； ｝
【００８１】
５．１．５  Ｔｘ Ｐｋｔ Ｆｉｆｏの処理（ＷＭＡＣドライバ）
ｒｅａｄ ＳＩＤ ｎｕｍｂｅｒ ｆｒｏｍ ＷＭ＿ＴＸ＿ＰＫＴ＿ＦＩＦＯ；
ｉｆ （ＡＣＫ ｆｌａｇ） ｛
ｆｒｅｅ ＳＩＤＱ＿ＥＬｓ ｆｒｏｍ ｒｅａｄＥｌＰｔｒ ｔｏ ａｃｋＥｌＰｔｒ；
ｒｅａｄＥｌＰｔｒ ＝ ａｃｋＥｌｐｔｒ； ｝
ｉｆ （ｆｌｕｓｈ ｆｌａｇ）
ｓｅｎｄ Ｆｌｕｓｈ ｍｓｇ ｔｏ Ｐｏｌｉｃｅｒ；
【００８２】
５．１．６  パケットの書き出し（ポリサ）
／／ソフトウェアは、一時的にすべてのｓｉｄＱＣｔｒｌフィールドへの書き込み
アクセスを有する。
ｄｒｏｐ ＥＯＬ ＰＤＵ；
ｕｐｄａｔｅ ａｃｋＥｌＰｔｒ ｔｏ ｓｋｉｐ ｒｅｍａｉｎｄｅｒ ｏｆ ｄｒｏｐｐｅｄ ＰＤＵ；
ａｃｋＰｔｒ ＝ ０；
ｃｕｒＷｉｎＯｆｆ ＝ ａｃｋＷｉｎＯｆｆ；
ｒｅｑＷｉｎＯｆｆ ＝ ｒｅｑＷｉｎＯｆｆ − ｒｅｍａｉｎｄｅｒ ｏｆ ｄｒｏｐｐｅｄ ＰＤＵ；
ｕｐｄａｔｅ ｃｕｒＰｔｒ ａｎｄ ｃｕｒＥｌＰｔｒ ｔｏ ａｃｋＰｔｒ ａｎｄ ａｃｋＥｌＰｔｒ；
ｃｌｅａｒ ｓｉｄＱＣｔｒｌ−＞ｆｌｕｓｈＦｌａｇ；
／／キューにまだバイトが存在すれば、他のＲＥＱを開始（ｋｉｃｋ ｏｆｆ）する。
ｉｆ （ｒｅｑＷｉｎＯｆｆ−ｃｕｒＷｉｎＯｆｆ）
ｗｒｉｔｅ ＳＩＤ ｎｕｍｂｅｒ ｔｏ ＡＣＴＩＶＥ＿ＳＩＤ＿ＦＩＦＯ；
【００８３】
５．１．７  ＷＰＤＵの送信（ハードウェア）
ｅｘｔｒａｃｔ ＷＰＤＵ．ｐａｙｌｏａｄＳｉｚｅ ｂｙｔｅｓ ｆｒｏｍ ｐｏｓｉｔｉｏｎ ｃｕｒＷｉｎＯｆｆ ｉｎ ＳＩＤ ｑｕｅｕｅ；
ａｄｖａｎｃｅ ｃｕｒＥｌＰｔｒ ａｎｄ ｃｕｒＰｔｒ ｂｙ ＷＰＤＵ．ｐａｙｌｏａｄＳｉｚｅ ｂｙｔｅｓ；
ｃｕｒＷｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ ＋ ＷＰＤＵ．ｐａｙｌｏａｄＳｉｚｅ；
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＦＡＬＳＥ）
ｒｅｔｕｒｎ ａｎｙ ｃｏｍｐｌｅｔｅｌｙ ｔｒａｎｓｍｉｔｔｅｄ ｐａｃｋｅｔ；
【００８４】
５．２  ＢＳＣ Ｒｘ（ｒｅｑＷｉｎ， ｓｃＷｉｎ， ｃｕｒＷｉｎ）
５．２．１  初期化（制御ＰＤＵハンドラ）
ｓｃＷｉｎＯｆｆ ＝ ０； ／／ＣＰＥによって送信される次のバイトのシーケンス番号
ｃｕｒＷｉｎＯｆｆ ＝ ０； ／／ＢＳＣが予測する次のバイトのシーケンス番号
ｒｅｑＷｉｎＯｆｆ ＝ ０； ／／ＣＰＥで受信されたバイト数の累積カウント
ｒｅｔｒｙ Ｃｎｔ ＝ ０； ／／われわれがパケットの送信に失敗した回数
【００８５】
５．２．２  ＲＥＱの到着（スケジューラ、ハードウェア）
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＦＡＬＳＥ） ｛
ｓｃＷｉｎＯｆｆ ＝ ＲＥＱ．ｗｉｎＯｆｆ； ／／ スケジューラ
ｒｅｑＷｉｎＯｆｆ ＝ ＲＥＱ．ｒｅｑＷｉｎＯｆｆ； ／／ スケジューラ｝
【００８６】
５．２．３  ＭＡＰの構成（スケジューラ）
／／新たな各フレームについてＥｒｒｏｒＲｅｃｏｖｅｒｙ状態をクリアする。
ｓｔａｔｅ ＝ ｎｏｒｍａｌ；
ｗｈｉｌｅ （Ｓｐａｃｅ ｌｅｆｔ ｉｎ ｃｕｒｒｅｎｔ Ｕｐｓｔｒｅａｍ ＴＤＤ ｆｒａｍｅ） ｛
ｓｉｄＱＣｔｒｌ ＝ ＳＩＤ ｔｈａｔ Ｓｃｈｅｄｕｌｅｒ ｓｅｌｅｃｔｓ；
ｂｙｔｅｓＩｎＱｕｅｕｅＴｏＳｃｈｅｄｕｌｅ ＝ ｒｅｑＷｉｎＯｆｆ − ｓｃＷｉｎＯｆｆ；
／／常にＡＲＱなしで複数のＳＩＤに対するバイトをスケジューリングする
／／ように試みる。
／／ＡＲＱが存在するＳＩＤの場合、われわれは、いくらかのバイトの
／／スケジューリングを試みる前に、われわれがわれわれのウィンドウを
／／使い果たしていないということを確認する必要がある。
ｉｆ （ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＦＡＬＳＥ） ＯＲ
（ （ｓｃＷｉｎＯｆｆ ＋ ＢｙｔｅｓＳｃｈｅｄｕｌｅｄ − ｃｕｒＷｉｎＯｆｆ） ＜ ＡＲＱＷｉｎｄｏｗＳｉｚｅ） ） ｛
Ａｌｌｏｃａｔｅ ｔｉｃｋｓ ｆｏｒ ＷＰＤＵ ｉｎ ｕｐｓｔｒｅａｍ ｐｏｒｔｉｏｎ ｏｆ ＴＤＤ ｆｒａｍｅ；
ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｐａｙｌｏａｄＳｉｚｅ ＝ ＢｙｔｅｓＳｃｈｅｄｕｌｅｄ；
ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｗｉｎＯｆｆ ＝ ｓｃＷｉｎＯｆｆ；
ｓｃＷｉｎＯｆｆ ＝ ｓｃＷｉｎＯｆｆ ＋ ＤＡＴＡ＿ＧＲＡＮＴ＿ＩＥ．ｐａｙｌｏａｄＳｉｚｅ； ｝ ｝
【００８７】
５．２．４  ＷＰＤＵの到着（ハードウェア）
／／不良なｗｐｄｕをすべて廃棄する。
ｉｆ （ＣＲＣ Ｅｒｒｏｒ） ｛
ｄｉｓｃａｒｄ （ＷＰＤＵ）；
ｄｉｓｃａｒｄ ａｎｙ ｐａｃｋｅｔ ｃｕｒｒｅｎｔｌｙ ｂｅｉｎｇ ｒｅａｓｓｅｍｂｌｅｄ； ｝
／／ＡＲＱであれば、シーケンスから外れたすべてのｗｐｄｕを廃棄する。
ｅｌｓｅ ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＴＲＵＥ） ＡＮＤ （ＷＰＤＵ．ｗｉｎＯｆｆ ！＝ ｃｕｒＷｉｎＯｆｆ） ） ｛
Ｄｉｓｃａｒｄ （ＷＰＤＵ）；
Ｈｗ ｗｒｉｔｅｓ ｂｕｒｓｔ ｓｔａｔｕｓ ｔｏ Ｆｉｆｏ；
ｓｅｎｄ ｂａｄ ｏｒ ｄｒｏｐｐｅｄ ｓｔａｔｕｓ ｔｏ Ｓｃｈｅｄｕｌｅｒ； ｝
／／適正なｗｐｄｕ
ｅｌｓｅ ｛
ｃｕｒＷｉｎＯｆｆ ＝ ＷＰＤＵ．ｗｉｎＯｆｆ ＋ ＷＰＤＵ．ｐａｙｌｏａｄＳｉｚｅ；
／／以下の場合にパケットを廃棄する−
／／新たなパケットが到着し、かつわれわれが先にパケットのアセンブルを
／／進めていた場合。
／／パケットが不正な長さで到着した場合。
ｉｆ （ （ＷＰＤＵ．ｃａｔＰｔｒ ＝＝ ０） ａｎｄ （ｃｕｒＰｔｒ ！＝ ｃｕｒＥｌＰｔｒ．ｐｋｔＰｔｒ） ） ｛
Ｄｉｓｃａｒｄ （Ｐａｒｔｉａｌ ａｓｓｅｍｂｌｅｄ ｐａｃｋｅｔ）；
ｃｕｒＰｔｒ ＝ ０；
ｃｕｒＥｌＰｔｒ ＝ ＮＵＬＬ； ｝
／／可能であれば、新たなパケットが不正な長さであるか否かチェックする。
ｉｆ （ｃｕｒＥｌＰｔｒ．ｌｅｎｇｔｈ ！＝ （ｃｕｒＰｋｔＰｔｒ − ｃｕｒＥｌＰｔｒ．ｐｋｔＰｔｒ） ）
ｄｉｓｃａｒｄ ｐａｃｋｅｔ；
ｓｅｎｄ ｇｏｏｄ ｓｔａｔｕｓ ｔｏ Ｓｃｈｅｄｕｌｅｒ； ｝
【００８８】
５．２．５  ＷＰＤＵ状態の到着（スケジューラ）
ｉｆ （ｗｐｄｕ ｇｏｏｄ） ＡＮＤ （ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＦＡＬＳＥ） ＯＲ
（ａｃｋＷｉｎＯｆｆ ＝＝ ＷＰＤＵ．ｗｉｎＯｆｆ） ） ｛
ｒｅｔｒｙＣｎｔ ＝ ０；
ｒｅｑＷｉｎＯｆｆ ＝ ＷＰＤＵ．ｒｅｑＷｉｎＯｆｆ；
ａｃｋＷｉｎＯｆｆ ＝ ＷＰＤＵ．ｗｉｎＯｆｆ ＋ ＷＰＤＵ．ｌｅｎｇｔｈ；
／／ＷＭＡＣドライバはこれを計算して、新たなｗｉｎＯｆｆをスケジューラに送信する必要がある。
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＦＡＬＳＥ）
ｓｃＷｉｎＯｆｆ ＝ ＷＰＤＵ．ｗｉｎＯｆｆ ＋ ＷＰＤＵ．ｌｅｎｇｔｈ； ｝
ｅｌｓｅ ｉｆ （ （（ｗｐｄｕ ｌｏｓｔ） ＯＲ （ｗｐｄｕ ｂａｄ） ） ＡＮＤ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＴＲＵＥ） ） ｛
／／ＥｒｒｏｒＲｅｃｏｖｅｒｙの状態をチェックすることは、われわれが、フレーム中の
／／第１の不良なＷＰＤＵに対してスケジューラのウィンドウを単にリセット
／／するということを意味する。
／／当該状態は、アップストリームのマップ構成の間に正常状態にリセット
／／される。
／／ＭＡＰが失われると、ｗｐｄｕも失われる。
ｉｆ （ （ｔｉｍｅ ＞ ＥｒｒｏｒＲｅｃｏｖｅｒｙＴｉｍｅ） ＡＮＤ （ｒｅｔｒｙＣｎｔ ＜＝ ｓｉｄＱＣｔｒｌ．ｍａｘＲｅｔｒｙ） ） ｛
ｎａｋＦｌａｇ ＝ ＴＲＵＥ；
ＥｒｒｏｒＲｅｃｏｖｅｒｙＴｉｍｅ ＝ Ｔｉｃｋ Ｃｏｕｎｔ ａｔ ｅｎｄ ｏｆ ｌａｓｔ ｓｃｈｅｄｕｌｅｄ ｕｐｓｔｒｅａｍ ｆｒａｍｅ；
ｓｃＷｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ；
／／ａｃｋＷｉｎＯｆｆ＝ｃｕｒＷｉｎＯｆｆでなければならないか？
検証（ベリファイ）せよ。
ｕｐｄａｔｅ ｓｃ ｐｏｉｎｔｅｒｓ ｔｏ ｃｕｒ ｐｏｉｎｔｅｒｓ；
ｒｅｔｒｙＣｎｔ ＝ ｒｅｔｒｙＣｎｔ ＋ １； ｝ ｝
【００８９】
５．２．６  パケットの書き出し（スケジューラ、ポリサ）
／／再試行カウントが満了すると、アセンブルされているパケットを廃棄する。
ｉｆ （ｒｅｔｒｙＣｎｔ ＞ ｍａｘＲｅｔｒｙ） ／／スケジューラ｛
／／パケットが廃棄されると、ＣＰＥは新たな要求を行わなければならない。
ｓｃＷｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ； ／／スケジューラ
Ｕｐｄａｔｅ ｓｃ ｐｏｉｎｔｅｒｓ ｔｏ ｃｕｒ ｐｏｉｎｔｅｒｓ； ／／スケジューラ
ｒｅｔｒｙＣｎｔ ＝ ０； ／／スケジューラ
ｆｌｕｓｈＦｌａｇ ＝ １； ／／スケジューラ
Ｓｅｎｄ ｍｓｇ ｔｏ Ｌｉｎｋ Ａｄａｐｔａｔｉｏｎ Ｒｏｕｔｉｎｅ； ／／スケジューラ
ｓｅｎｄ ｍｓｇ ｔｏ Ｐｏｌｉｃｅｒ ｗｉｔｈ ｓｉｄＮｕｍ； ／／スケジューラ
ｒｅｑＷｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ； ｝
【００９０】
５．２．７  ＭＡＰ ＡＣＫ ＩＥタイプの構築（スケジューラ）
ｉｆ （ｓｉｄＱＣｔｒｌ．ｓｉｄＣｆｇＢｉｔｓ．ａｒｑ ＝＝ ＴＲＵＥ） ｛
ｉｆ （ｎａｋＦｌａｇ） ｛
ＮＡＣＫ．ｓｉｄＮｕｍｂｅｒ ＝ ｓｉｄ；
ＮＡＣＫ．ｗｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ；
Ｐｕｔ ＮＡＣＫ ｉｎ ＭＡＰ；
ｎａｋｆｌａｇ ＝ ＦＡＬＳＥ； ｝
ｅｌｓｅ ｉｆ （ｆｌｕｓｈＦｌａｇ） ｛
ＦＬＵＳＨ．ｓｉｄＮｕｍｂｅｒ ＝ ｓｉｄ；
ＦＬＵＳＨ．ｗｉｎＯｆｆ ＝ ｃｕｒＷｉｎＯｆｆ；
Ｐｕｔ ＦＬＵＳＨ ｉｎ ＭＡＰ；
ｆｌｕｓｈｆｌａｇ ＝ ０； ｝
ｅｌｓｅ ｛
ＡＣＫ．ｓｉｄＮｕｍｂｅｒ ＝ ｓｉｄ；
ＡＣＫ．ｗｉｎＯｆｆ ＝ ａｃｋＷｉｎＯｆｆ；
Ｐｕｔ ＡＣＫ ｉｎ ＭＡＰ； ｝ ｝
【図面の簡単な説明】
【図１】ポイント・ツー・マルチポイント無線通信における自動的な再送信及びエラー回復を使用するシステムの一部のブロック図である。
【図２】図１に示されたシステムで使用される時分割二重フレームを示す図である。
【図３】図１に示されたシステムを動作させる方法の処理フロー図である。
【符号の説明】
１００…システム、
１１０…無線通信セル、
１１１…セクタ、
１２０…基地局コントローラ（ＢＳＣ）、
１３０…顧客構内機器（ＣＰＥ）、
１４０…障害物、
２００…時分割二重（ＴＤＤ）フレーム、
２１０…時間同期化部分、
２１１…第１のシンボル、
２１２…パラメータ設定値、
２２０…第１のガードタイム、
２３０…ダウンストリーム部分、
２３１…ダウンストリームペイロード要素、
２４０…第２のガードタイム、
２５０…状態同期化部分、
２６０…アップストリーム部分、
２６１…アップストリームペイロード要素。
【図２】
2004523939.tif 000003
【図３】
2004523939.tif 000004
【国際公開パンフレット】
2004523939.tif 000005
2004523939.tif 000006
2004523939.tif 000007
2004523939.tif 000008
2004523939.tif 000009
2004523939.tif 000010
2004523939.tif 000011
2004523939.tif 000012
2004523939.tif 000013
2004523939.tif 000014
2004523939.tif 000015
2004523939.tif 000016
2004523939.tif 000017
2004523939.tif 000018
2004523939.tif 000019
2004523939.tif 000020
2004523939.tif 000021
2004523939.tif 000022
2004523939.tif 000023
2004523939.tif 000024
2004523939.tif 000025
2004523939.tif 000026
2004523939.tif 000027
2004523939.tif 000028
2004523939.tif 000029
2004523939.tif 000030
2004523939.tif 000031
2004523939.tif 000032
2004523939.tif 000033
2004523939.tif 000034
2004523939.tif 000035
2004523939.tif 000036
2004523939.tif 000037
2004523939.tif 000038
2004523939.tif 000039
2004523939.tif 000040
【国際公開パンフレット（コレクトバージョン）】
2004523939.tif 000041
2004523939.tif 000042
【国際公開パンフレット（コレクトバージョン）】
2004523939.tif 000043
2004523939.tif 000044
【国際調査報告】
2004523939.tif 000045
2004523939.tif 000046
2004523939.tif 000047