(57)【特許請求の範囲】
【請求項１】
ワイヤレス通信ネットワークと共に使用するためのウォルシュコードアロケータにおいて、
ウォルシュコードに対するリクエストを受信する受信手段と、前記受信されたリクエストに基づいて、それからアロケータがウォルシュコードを選択するウォルシュコードファミリーを選ぶための決定手段と、前記決定手段により選ばれたファミリーから、前記受信されたリクエストに適したウォルシュコードを選択するための選択手段と、割当て手段とを有し、
前記決定手段は、各々が、少なくとも２つの異なるサイズの複数のウォルシュコードを含む複数の異なるウォルシュコードファミリーから選び、
前記選択手段は、選択されるウォルシュコードが、現在ビジーであるウォルシュコードに対して相互に直交的であるように、かつ選択されるウォルシュコードの割当てが、既にブロックされていない最小数のウォルシュコードをブロックすることになるように、ウォルシュコードを選択し、
前記割当て手段は、ウォルシュコードが前記選択手段により選択されるとき、選択されたウォルシュコード、および受信されたリクエストに適したウォルシュコードが割当てに利用可能でないことの表示のうちの少なくとも１つを、前記アロケータから出力し、
前記決定手段が、特定のウォルシュコードが受信されたリクエストにおいて特定される場合に特定のウォルシュコード含むファミリーを選択し、
特定のウォルシュコードがリクエストにおいて特定されない場合、前記決定手段は他のファミリーと比較して最も低いカウントを有するファミリーを選択する
ことを特徴とするアロケータ。
【請求項２】
前記受信手段により受信されるリクエストは、所望のウォルシュコードサイズを示す
ことを特徴とする請求項１記載のアロケータ。
【請求項３】
前記選択手段は、存在するとき所望のサイズのフラグメント化されたウォルシュコードを選択し、そうでない場合、それが、所望のサイズより小さいフラグメント化されたウォルシュコードの子孫となるように、所望のサイズのウォルシュコードが選択され、前記所望のサイズより小さいフラグメント化されたウォルシュコードは、所望のサイズより小さい他のフラグメント化されたウォルシュコードと比較して、できる限り所望のサイズに近いサイズを有することを特徴とする請求項２記載のアロケータ。
【請求項４】
所望のサイズ以下のサイズのフラグメント化されたウォルシュコードが、前記決定手段により選ばれたファミリー中にない場合、前記割当て手段により、前記アロケータは、受信されたリクエストに適したウォルシュコードが割当てに利用可能でないことの指示を出力する
ことを特徴とする請求項３記載のアロケータ。
【請求項５】
ワイヤレス通信ネットワークのエアインターフェースチャネルを区別しかつ分離するために使用されるコードのセットを割当てる方法において、
（ａ）  前記複数のコードを、各ファミリーが複数のコードを含むように、複数のファミリーに分割するステップと、
（ｂ）  コードの所望のサイズを同定するコードに対するリクエストを受信するステップと、
（ｃ）  それからコードが割当てのために選択されるべきファミリーを選ぶステップと、
（ｄ）  存在する場合、選ばれたファミリー中のフラグメント化されたコードを同定するステップと、
（ｅ）  フラグメント化されたコードが同定された場合、同定されたフラグメント化されたコードに基づいて、選ばれたファミリー中のコードを選択し、そうでない場合、選択を行わないステップと、
（ｆ）  選択がなされた場合、選択されたコードを割当て、そうでない場合、コードが利用可能でないことを示すステップとを有し、
前記コードの各々は、あるサイズを有し、各ファミリー中の少なくとも２つのコードは、異なるサイズを有し、
前記受信されたリクエストが望まれる特定のコードを示す場合に、前記選択されたファミリーは前記特定のコードを含み、
前記受信したリクエストが特定のコードを示さない場合に、前記選択されたファミリーは最大コードサイズのブロックされた且つビジーなコードの最小合体数を有する
ことを特徴とする方法。
【請求項６】
同定されたフラグメント化されたコードが、存在する場合所望のサイズを有し、そうでない場合、前記同定されたフラグメント化されたコードは、所望のサイズより小さいサイズを有し、所望のサイズより小さい他のいずれかのフラグメント化されたコードと比較した場合所望のサイズと近接或いはより近接したサイズを有する
ことを特徴とする請求項５記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ワイヤレス通信ネットワークに係り、特に、符号分割多元接続（ＣＤＭＡ）技術を使用する第三世代（３Ｇ）ワイヤレスシステムと関連するアプリケーションに関する。しかし、本発明は、他の同様のアプリケーションにも適用可能である。
【０００２】
【従来の技術】
ウォルシュコード、拡散コード、チャネル化コードなどは、一般に、ワイヤレス通信ネットワークの分野において知られている。特に、ウォルシュコードおよび／またはウォルシュ関数は、ウォルシュ・アダマール（Walsh-Hadamard）行列に基づく。しかし、ここでは単純化のために、ウォルシュコードおよび／またはウォルシュ関数の用語は、一般に、いずれかの同様に使用される拡散コード／関数、チャネル化コード／関数などを指すために使用される。ＣＤＭＡにおいて、ウォルシュ関数が、エアインターフェース上のネットワークトラフィックを、ターゲット移動体、例えば、ワイヤレス電話機、ワイヤレスパーソナルデジタルアシスタント（ＰＤＡ）または他のワイヤレスデバイスによりアイソレートされかつデコードされうる異なる複数のチャネルに組織化するために、順方向において使用される。順方向またはダウンリンク方向は、基地局から移動体局への送信方向を示す。
【０００３】
ワイヤレス通信ネットワークの所与のセルサイト中の同じセクタ／キャリアに対するいずれか所与の時刻において、使用中の全てのウォルシュコードは、異なるチャネル間のインターフェアレンスまたはクロストークなしにネットワークトラフィック適切に組織化するために、互いに相互に直交的でなければならない。この制限は、ＣＤＭＡを使用する第二世代ワイヤレスシステムについて特に問題ではなかった。第二世代ワイヤレスは、一般に、いわゆるＰＣＳ（personal communications service）を含む。いずれの場合においても、ＣＤＭＡを使用する第二世代システムは、単一のサイズまたはビット長のウォルシュコードのみを使用し、使用される全てのコードは、互いに直交的であることが保証されている。例えば、各々が６４ビット長の６４個のウォルシュコードは、第二世代システムの典型的な構成において使用される。
【０００４】
第二世代と異なり、ＣＤＭＡを使用する三次ワイヤレスシステムは、変化するサイズまたはビット長のウォルシュコードを使用する。例えば、ボイスコールのようなトラフィックは、典型的に、６４ビットウォルシュコードを使用し続ける。しかし、３Ｇにおいて、同じボイスコールまたはトラフィックが、１２８ビットウォルシュコードを使用しうる。同様に、高速データトラフィック（例えば、ワイヤレスインターネットアクセス）に対して、３Ｇワイヤレスは、より短い長さ、例えば、３２，１６，８および４ビット長の様々なウォルシュコードを利用可能にする。したがって、均一サイズのウォルシュコードを使用する第二世代と異なり、３ＧＣＤＭＡワイヤレスにおけるウォルシュコード割当ては、些細なことではない。ウォルシュコード割当ては、セルトラフィックの異なるチャネルに対するウォルシュコードの選択および／または割当てを指す。一般に、より高速のトラフィックに対してより短いビット長のウォルシュコードを使用することが好ましい。
【０００５】
３ＧＣＤＭＡワイヤレスにおいて、可変サイズウォルシュコードが、使用することが可能とされている。結果として、所与のセルサイト中の同じセクタ／キャリアに対する全ての利用可能なウォルシュコードが、相互に直交的であることが保証されておらず、それらの割当ては、とるに足らない問題ではない。より具体的には、Ｎビット長またはサイズを有するウォルシュ関数のセット中の各ウォルシュ関数は、サイズ２Ｎのウォルシュ関数のセット中の２個のウォルシュ関数、サイズ４Ｎのウォルシュ関数のセット中の４個のウォルシュ関数、サイズ８Ｎのウォルシュ関数のセット中の８個のウォルシュ関数などと直交的でない。特に、ＷｋＮは、以下のものに対して直交的でない。
【数１】
0004024588.tif 000002
ＷＮは、Ｎのサイズまたはビット長を有するウォルシュ関数／コードのセットを表し、ＷｋＮは、ＷＮのｋ番目のエレメントを表す。特定のエレメントを参照するために使用されるｋの数または値は、必ずしも、対応するウォルシュコードのバイナリ表現に等しくない。
【０００６】
したがって、３ＧＣＤＭＡワイヤレスの出現と共に生じる問題は、所与のセルサイト中の同じセクタ／キャリアに対して同時に使用されるコードの全ての相互に直交的であることを保証する一方で、ウォルシュコードを割当てるやり方に関係する。また、いずれか所与の時点における割当てに利用可能なままであるウォルシュコードの数が最大化されるやり方で割当てを実行することが望ましい。このやり方において、セルの有限帯域幅および／または有限個のウォルシュコードの効率的使用がなされうる。アクセススピードの最大レンジが、いかなる所与の時点においても最適に適合されうる（即ち、適切なサイズのウォルシュコードが割り当てられうる）ように非常に多様なウォルシュコードサイズがいかなる所与の時点においても利用可能に維持することが望ましい。典型的には、これは、可能な限りにおいて、より短いビット長のウォルシュコードをリザーブすることを意味する。
【０００７】
【発明が解決しようとする課題】
同時に割り当てられるウォルシュコードの全てが相互に直交的であるとしても、割り当てられたウォルシュコードが、基地局の増幅器に送られる信号が許容可能なピーク対平均（peak-to-average）電力比を超えるように選択される可能性がある。リスクは、適切な割当てシステムなしに、増幅器が、非線形動作し、望ましくないインターフェアレンスが、それが生じるべきでない１以上の周波数スペクトルにおいて生じることである。したがって、このリスクを防ぐまたは最小化するように、即ち、ピーク対平均電力比を許容可能なレベル以下に保つように、ウォルシュコード割当てが実行されることが望ましい。
【０００８】
本発明は、上述した問題を克服しまたは最小化する新規かつ改良されたウォルシュコード割当て／割当て解除（de-allocation）システムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の一側面によれば、ＣＤＭＡコードのセットからＣＤＭＡコードを割当てる方法が、ワイヤレスネットワークと共に使用するために提供される。この方法は、割り当てられるべきコードの所望のサイズを同定した後、その兄弟（sibling）が利用可能でない所望のサイズのコードが存在するかどうかを決定するステップを含む。そのようなコードが発見される場合、それは単純に割り当てられる。そうでない場合、その兄弟が利用可能でない所望のサイズよりも小さいコードが存在するかどうかが決定される。そのようなコード（即ち、その兄弟が利用可能でない所望のサイズより小さいコード）が発見されるとき、所望のサイズを有するその子孫（descendant）が割り当てられる。
【００１０】
本発明の別の側面によれば、ワイヤレス通信ネットワークとの接続に使用するためのウォルシュコードアロケータが提供される。アロケータは、ウォルシュコードに対するリクエストを受信し、受信されるリクエストに基づいて、それからアロケータが１つのウォルシュコードを選択するウォルシュコードファミリーを選ぶ。ウォルシュコードファミリーは、各々が少なくとも２つの異なるサイズの複数のウォルシュコードを含む複数の異なるウォルシュコードファミリーから選ぶ。選ばれたファミリーから、受信されたリクエストに適するウォルシュコードが選択される。ウォルシュコードは、それが現在ビジーであるウォルシュコードと相互に直交的となり、その割当てが、既にブロックされていない最初の数のウォルシュコードをブロックすることになるように選択される。選択されたウォルシュコードがアロケータにより出力されるか、または受信されたリクエストに適したウォルシュコードが割当てに利用可能でないことの表示をアロケータが出力するかのいずれかである。
【００１１】
本発明の別の側面によれば、ワイヤレス通信ネットワークのエアインターフェースチャネルを区別しかつ分離（isolate）するために使用されるコードのセットを割り当てるための方法が提供される。この方法は、各ファミリーが複数のコードを含むように、複数のコードを複数のファミリーに分割するステップを含む。これらのコードの各々は、あるサイズを有し、各ファミリー中の少なくとも２つのコードは、異なるサイズを有する。この方法は、望ましいサイズのコードを同定する１つのコードに対する１つのリクエストを受信するステップ、およびそれから１つのコードが割当てのために選択されるべき１つのファミリーを選ぶステップをさらに含む。フラグメント化された（fragmented）コードは、存在する場合、選ばれたファミリーにおいて同定され、フラグメント化されたコードが同定される場合、選ばれたファミリーが同定されたフラグメント化されたコードに基づいて選択され、そうでない場合選択がなされない。選択がなされる場合、選択されるコードは、割り当てられるものであり、そうでない場合、コードが利用可能でないことが表示される。
【００１２】
本発明の１つの利点は、直交的なウォルシュコードのみが同時に割り当てられることを保証する能力にある。本発明の別の利点は、セルの有限の帯域幅および有限個のウォルシュコードの効率的使用を達成するための能力にある。
【００１３】
選択された実施形態において、本発明のさらに別の利点は、最大範囲のアクセススピードの最適割当てに対する可能な限り最大の多様な利用可能なウォルシュコードサイズを維持する能力にある。本発明の選択された実施形態により達成される１つの他の利点は、基地局増幅器の許容可能なピーク対平均電力比を超えるリスクを防止または最小化する能力にある。
【００１４】
本発明の更なる利点および利益は、以下の好ましい実施形態の詳細な説明を読むことおよび理解することにより当業者に明らかとなるであろう。
【００１５】
【発明の実施の形態】
図１は、信号増幅器１２および送信／受信アンテナ１４を備えたセル基地局１０、および複数の移動体ターゲットまたは移動体局１６（例えば、ワイヤレスホン、ワイヤレスＰＤＡなど）を含むワイヤレス通信ネットワークＡの少なくとも一部を示す。本発明の新規なウォルシュコード割当て、割当て解除システムおよび方法を除き、ネットワークＡはよく知られており、その動作および構成は、当業者に容易に理解される。また、本発明の新規なウォルシュコード割当て／割当て解除システムおよび方法を除き、ネットワークＡは、好ましくは、通常の方法で、３ＧワイヤレスＣＤＭＡ技術を具現化する。
【００１６】
本発明の好ましい実施形態によれば、基地局１０は、いずれか所与の時点において、それにおける各チャネルが、対応する固有の（unique）および相互に直交的なウォルシュコード／関数と関連づけられるように、基地局１０と移動体局１６との間のエアインターフェースを介して中継されるネットワークトラフィックに、選択されたウォルシュコード／関数を割当てまたは指定するウォルシュコードアロケータ２０を含む。このやり方において、基地局１０と移動体局１６との間に同時に存在する複数の異なるチャネルは、分離かつ区別されうる。ウォルシュコードアロケータ２０は、ハードウェア構成、ソフトウェア構成または両方の組合せによりオプショナルで具現化される。例えば、ウォルシュコードアロケータ２０は、専用マイクロプロセッサ（特定用途向けまたはその他のもの）、基地局の現存するハードウェアまたはプロセッサにより実行されるまたはそれにおいて実行されるソフトウェアオブジェクト、またはその何らかの組合せにおいてオプショナルで具現化される。１つの好ましい実施形態において、アロケータ２０は、コードを割当て解除もする。
【００１７】
図２において、本発明の側面によれば、ウォルシュコードアロケータ２０により使用される全てのウォルシュコードを含む例示的なテーブルまたはマトリックスが示されている。オプショナルで、テーブルは、アロケータ２０によりアクセスされるルックアップテーブル（ＬＵＴ）である。６ウォルシュコードサイズ、即ち、Ｗ４，Ｗ８，Ｗ１６，Ｗ３２，Ｗ６４およびＷ１２８が使用される。様々なサイズが、テーブル列に対応する。各サイズにおいて、多数の直交的ウォルシュコードがあり、その数は、サイズに等しい。即ち、Ｗ４は、互いに相互に直交的な４個のウォルシュコードを含み、各々は４ビット長であり、それらは、ｋ＝０，１，２および３により個別に示される。Ｗ８は、互いに相互に直交的な８個のウォルシュコードを含み、各々は、８ビット長であり、それらは、ｋ＝０，１，２，４，５，６および７により個別に示され、各サイズについても同様である。
【００１８】
このテーブルは、左から右に延びる４個のバイナリーツリーに構成されている。各ツリーは、そのルーツ（root）ノードにより指定されたウォルシュコードファミリー（ＷＣＦ）、即ち、Ｗ０４ファミリー、Ｗ１４ファミリー、Ｗ２４ファミリーおよびＷ３４ファミリーである。各ファミリーにおいて、ウォルシュコード間のそれぞれの関係は、親（parents）、子（children）および兄弟（siblings）で示されている。各親ウォルシュコードは、互いに兄弟である２個の子ウォルシュコードを有する。いずれかの親の２個の子は、親のすぐ右隣の２個のウォルシュコードである。これらのウォルシュコードは、いずれかの親ウォルシュコードの子孫（descendants or progeny）（即ち、子、孫、曾孫など）がその親に直交的で内容に、テーブル中に配置される。同様に、いずれかの子の先祖（parental ancestors）（即ち、親、祖父母、曾祖父母など）が、その子に直交的でない。しかし、兄弟は直交的である。換言すれば、兄弟は、それらの半分のサイズの同じ親ウォルシュコードに対して両方が直交的でない子である同じサイズの相互に直交的なウォルシュコードのいずれかの対である。
【００１９】
ここでの説明のために、以下の用語が定義される。フラグメント化されたウォルシュコードは、いずれかのブロックされたまたはビジーなウォルシュコードの兄弟であるいずれかのウォルシュコードである。また、その他の場合にフラグメント化されていると考えられないが、各ファミリー中の最小サイズの少なくとも１つのウォルシュコードが、フラグメント化されていると見なされる。ビジーなウォルシュコードは、アロケータ２０により割当てられ、１つのチャネルに依然として現在割当てられているいずれかのウォルシュコードである。ブロックされたウォルシュコードは、その割当てが、直交的でない２以上のビジーなウォルシュコードとなるいずれかのウォルシュコードである。したがって、本発明の好ましい実施形態において、いずれかのビジーなウォルシュコードの子孫および先祖がブロックされる。ブロックされたウォルシュコードは、アロケータ２０によりチャネルに割り当てられることが禁止または「ブロック」される。ブロックされているかまたはビジーなウォルシュコードは、利用可能でないとされる。
【００２０】
本発明の好ましい実施形態によれば、図３のフローチャートは、ウォルシュコードアロケータ２０により実行される割当てプロセス１００、即ち、それによりウォルシュコードがセルトラフィックの複数のチャネルに割り当てられる方法を示す。プロセス１００は、ステップ１１０で始まり、アロケータ２０は、ウォルシュコードに対するリクエストを受信する。例えば、このリクエストは、新しいチャネルの確立と共に生成され、および／またはオーバヘッドチャネル、ボイスまたはデータトラフィックの基本チャネルなどであるチャネルのオープニングにより発生を早められる（precipitated）。受信されるリクエストは、所望のウォルシュコードサイズの表示を含む。オプショナルで、特別なウォルシュコードが、例えば特別なオーバヘッドチャネルに対して特定される。フローチャートにおいて、リクエストされたサイズが、値“req_size”により示され、リクエストされたコードが、変数“req_code”により示される。両方とも、受信されるリクエストに従って最初にセットされる。プロセス１００を通して、req_codeが変化しうる一方で、req_sizeの値は変化しないままである。
【００２１】
決定ステップ１１２において、特別なコードが特定されたかどうかが決定される。ステップ１１２の決定が肯定的即ちイエスである場合、“scode”の値が、ステップ１１４において、req_codeの現在の（即ち、初期の）値に等しくセットされる。変化しないscodeは、特別なコードが特定されるとき、初期のリクエストされたコードの値を保存する。ステップ１１２の決定が否定的、即ちノーである場合、req_codeは、ステップ１１６において、ワイルドカード値に等しくセットされる。
【００２２】
ステップ１１８において、ＷＣＦが決定されおよび／または選択される。ＷＣＦの決定は、特別なコードが特定されたとき、比較的簡単であり、これは、scode％４である。ここで、“％”は、第１のアーギュメント（argument）を第２のアーギュメントでわり算した余りを戻すモデュラスオペレータ（modulus operator）を表し、即ち、scode％４は、４でわり算したscodeの余り（remainder）に等しい。このやり方において、特定された特別のコードを含むＷＣＦが、同定されおよび／または選択される。他方において、特別なコードがリクエスト中で特定されないとき、ＷＣＦ選択に対する多数のオプションが存在する。１つの好ましい実施形態において、特別なＷＣＦ（例えば、Ｗ３４ファミリー）は、高速データトラフィックに対して、取っておかれ得る（may be set aside)または指定され得る。したがって、チャネルまたはリクエストが高速データに対するものであると決定される場合、その特別なＷＣＦは、オプショナルで、自動的に選択される。そうでない場合、最低の「カウント」を有するＷＣＦが選択される。カウントは、ビジーであるかまたはブロックされた最大サイズのウォルシュコード（即ち、Ｗ１２８）の数によりおよび／またはこれに等しく測定される。最適のカウントを有するＷＣＦを選択することにより、ウォルシュコード割当てが複数のファミリーにおいてバランスされ、増幅器１２の最大の許容可能なピーク対平均電力比を超えるリスクが最小化される。
【００２３】
いかなる場合においても、ＷＣＦが決定および／または選択されると、そのリクエストに対するプロセス１００の残りが、そのファミリー中で実行される。
【００２４】
ステップ１２０において、変数“w_size”が、req_sizeに等しくセットされる。ここでの説明から明らかであるように、変数w_sizeは、とりわけ、プロセス１００が、その様々なステップにおいて、インテグリティ（integrity）または元々リクエストされたウォルシュコードサイズの値を維持する一方で、異なるウォルシュコードサイズを前後にトンネル(tunnel back and forth)しまたはステップスルー(step through)しうるように、使用される。
【００２５】
本発明の好ましい実施形態によれば、アロケータ２０は、例えば、レコード、データベースなどにおいて組織化されたフラグメント化されたウォルシュコードのリストを保持しおよび／またはこれにアクセスする。好ましくは、各ＷＣＦに対して、それぞれ、ここでは名目的にフラグメントリストと呼ぶ、１つのそのようなリストが、各ウォルシュコードサイズに対して保持される。フラグメントリストは、その対応するＷＣＦおよびサイズにおいて存在するフラグメント化されたウォルシュコードを同定し、および／または含む。しかし、単純さのために、この時点において、プロセス１００が選択されたＷＣＦに制限されるので、フラグメントリストは、それらの対応するサイズにより参照されるようになるだけである。それぞれのフラグメントリストは、各ファミリーのルーツノードウォルシュコード、即ちＷ０４，Ｗ１４，Ｗ２４およびＷ３４で、デフォルトにより、最初にポプレート（populated）される。
【００２６】
プロセス１００を進み、決定ステップ１２２において、req_codeがw_sizeフラグメントリスト上にあるかどうかが決定される。ステップ１２２の決定が、肯定的即ちイエスである場合、ステップ１３０が実行される。そうでない場合、ステップ１２２の決定が、否定的即ちノーである場合、決定ステップ１２４が実行される。req_codeがワイルドカードであるとき、w_sizeフラグメントリスト上で発見されるいずれかのコードとの一致またはこれに等しいことが見なされる。
【００２７】
決定ステップ１２４において、w_sizeが４に等しいかどうか、即ち最小サイズのウォルシュコードであるかどうかが決定される。ステップ１２４の決定が、肯定的即ちイエスである場合、ステップ１２６において、“ＮＯ＿ＣＯＤＥ”が、アロケータ２０によりリクエスティングオブジェクトまたはデバイスに戻される。ＮＯ＿ＣＯＤＥは、リクエスティングオブジェクトまたはデバイスに対して、割当てのためにウォルシュコードが利用可能でない、即ちそのリクエストに合うウォルシュコードの全てが、ビジーであるかまたはブロックされていることを示す。即ち、プロセス１００が、最小サイズにトンネルダウンし、フラグメントリストのいずれにおいても一致するコードが発見されなかった場合、最小サイズのウォルシュコードが、ビジーであり、結果として、その子孫（即ち、そのファミリー中の全てのウォルシュコード）がブロックされる。また、特別なウォルシュコードに対するリクエストの場合、他のファミリーは、特定されたウォルシュコードを含まず、これは、特別なウォルシュコードを含むファミリーがステップ１１８において同定されたので、保証される。高速データチャネルに対するリクエストがそれに対して取っておかれた（set aside)特定のファミリーであった場合、プロセス１００はリザーブされたファミリー中で既に動作している。同様に、非特定（non-specific）ウォルシュコードに対するリクエストの場合、プロセスは、ウォルシュコードがそのファミリー中で利用可能でない場合、別のファミリーにおいて利用可能でないように、最低のカウントでファミリー中で既に動作している。
【００２８】
ステップ１２４の決定が、否定的即ちノーである（即ち、最小サイズにまだ到達していない）場合、プロセス１００は、ステップ１２８において、検査されているサイズを次に小さいサイズに減少させ、決定ステップ１２２に戻る。検査されているサイズを減少させること、またはそれにおいて動作が実行されているサイズを減少させることは、トンネリングダウンと呼ばれ、検査されているサイズを増大させること、またはそれにおいて動作が実行されているサイズを増大させることは、トンネリングアップと呼ばれる。いかなる場合においても、非特定の、またはワイルドカードのreq_codeに対して、ステップ１２８は、w_sizeをw_size／２に等しく単にセットすることにより実行される。しかし、特別なコードがリクエスト中で特定されるとき、ステップ１２８は、サイズが半分に減少させられた後、req_codeをreq_code％w_sizeにセットすることにより、特別なコードの親を決定することを含む。したがって、ステップ１２８の実行で、特別なウォルシュコードがリクエスト中で特定されたとき、プロセス１００は、リクエスト中で特定された特別なコードに対応する先祖(parental ancestors)の特別なシリーズにより、一度に１つの親をトンネルダウンする。このやり方において、フォローされるまたはトレースされるパスが、リクエスト中で特定された特別なウォルシュコードを含むことが保証される。
【００２９】
実際、ステップ１２２ないし１２８は、受信されたリクエストに一致または適するウォルシュコードについて、フラグメントリストを連続的にチェックするよう動作する。この繰り返しループは、リクエストされた初期サイズに対応するフラグメントリストでスタートし、各反復においてサイズをステップダウンまたはトンネルダウンする。このループは、一致するまたは適切なコードがフラグメントリストの１つにおいて発見されるとき、または（ステップ１２６に進むことにより）最小サイズのフラグメントリストに到達し、依然としてフラグメントが発見されないとき、ステップ１３０に進むことにより、壊されまたは終了させられる。コードが、リクエスト以下のサイズのフラグメントリストにおいて発見されない場合、割当てに利用可能なコードがない。
【００３０】
ステップ１３０において、req_codeに一致するw_sizeフラグメントリストにおけるコードが、そこから除去され、これは、ブロックされているものとしてマークされまたは指定される。この時点において、req_codeがワイルドカード値に対応する場合、これは、好ましくは、w_sizeフラグメントリストから除去されたコードの値に等しくセットされる。ワイルドカードのreq_codeに一致する可能性のあるw_sizeフラグメントリストにおける複数のコードが存在するとき、複数のうちのいずれか１つが、選択されかつ除去されうる。
【００３１】
次に、決定ステップ１３２において、w_sizeがreq_sizeに等しいかどうかが決定される。ステップ１３２の決定が、肯定的即ちイエスである場合、ステップ１３４において、req_codeのステータスが、ビジーとしてマークされまたは指定され、req_codeに対するウォルシュコードが、アロケータ２０によりリクエスティングオブジェクトまたはデバイスに割り当てられまたは戻される。ステップ１３４の後に、プロセス１００は、オプショナルで、req_codeの子孫をブロックされるものとしてマークまたは指定した後、ステップ１３６において終了する。好ましくは、ステップ１３６の後に、アロケータ２０は、次のプロセス、プロセス１００または割当て解除プロセス２００（図４を参照して説明される）が実行されることを待つ。
【００３２】
他方において、ステップ１３２の決定が、否定的即ちノーである場合、これは、ステップ１２２なしい１２８において、プロセス１００が、フラグメントリストにおける一致するまたはその他適切なコードを発見するために、１以上のサイズトンネルダウンすることを意味する。したがって、ステップ１３８において、プロセス１００は、トンネルバックアップし、１つのコードをブロックし、対応する兄弟を、サイズの各ステップアップでフラグメント化する。トンネリングアップは、ステップ１３２，１３８および１４０からなる処理ループにおいて反復的に実行される。このループは、トンネリングダウンプロセスにおいて到達した最低のコードサイズから連続的にサイズ的に上方に延び、req_sizeに到達するまで継続する。
【００３３】
好ましい実施形態において、特別なコードが初期リクエストにおいて特定されていないとき、ステップ１３８が、w_sizeをw_size＊２に等しくまずセットし、そして変数“frag_code”をreq_code＋（w_size／２）に等しくセットすることにより実行される。その後、ステップ１４０において、frag_codeに対応するw_sizeウォルシュコードが、w_sizeフラグメントリスト上におかれ、req_codeに対応するw_sizeウォルシュコードが、ブロックされるものとしてマークまたは指定される。
【００３４】
他方において、特別なコードが初期リクエストにおいて特定されているとき、ステップ１３８は、w_sizeをw_size＊２にまずセットし、そして、scode%w_sizeがreq_codeに等しいかどうかを決定することにより実行される。scode%w_sizeがreq_codeに等しい場合、frag_codeが、ステップ１４０に進む前にreq_code＋（w_size／２）に等しくセットされ、そうでない場合、ステップ１４０に進む前に、frag_codeがreq_codeに等しくセットされ、req_codeがreq_code＋（w_size／２）に等しくセットされる。このやり方において、トンネルアップする一方で、サイズの各連続的ステップアップにおける適切な兄弟が、特定された特別なコードがブロックされた兄弟のチェーン中にあるように、適切にブロックされかつフラグメント化される。即ち、特別なコードが初期リクエスト中で特定されているとき、ステップ１３８において実行されるトンネルアップにより、それらの兄弟がフラグメント化される一方で、スペシフィックにリクエストされたコードの先祖(parental ancestors)がブロックされる。
【００３５】
両方の場合（即ち、特定および非特定のコードリクエスト）において、ステップ１４０の後に、プロセス１００は、決定ステップ１３２に戻る。ここで説明される割当てプロセス１００において、ブロックされるまたはビジーとしてコードをマークまたは指定するステップは、オプショナルである。フラグメントリストとの関係でプロセス１００の単なる動作および／または機能化により、ブロックされたまたはビジーなコードは、それらがそのようにマークされまたは指定されていない場合であっても、割り当てられることはない。しかし、そのようなマーキングまたは指定は、所定のシステムテストにおいて、例えば、アロケータ２０の性能を監査またはトラックすることにおいて、役立つことが分かる。マーキングまたは指定が使用されているかどうかに関わらず、各ファミリーに対するカウントは、各割当てまたは割当て解除の後に、維持されるおよび／または再決定される。
【００３６】
割当て解除は、ビジーであることをやめるコード、即ち以前に割り当てられていたが最早現在使用されていないコードの再利用を可能にする。しかし、単にコードを利用可能にする、またはそれを利用可能ステータスに再割当てすることは、不十分である。ウォルシュコードの継続的な効率的利用を確かにするために、フラグメントリストが適切に更新され、オプショナルとして、ブロックされるものとしてマークまたは指定されたいかなるコードも、適切なとき、適切に再分類されることが望ましい。本発明の好ましい実施形態によれば、図４のフローチャートは、ウォルシュコードアロケータ２０により実行される割当て解除プロセス２００、即ち、それによりウォルシュコードが割当て解除される方法を示す。
【００３７】
プロセス２００は、ステップ２１０において始まり、アロケータ２０は、依然にビジーであったウォルシュコードが解放されていることの表示、即ち割当て解除に対するリクエストを受信する。例えば、この表示は、オーバヘッドチャネル、ボイスまたはデータトラフィックの基本チャネルなどである以前にオープンしていたチャネルをクローズすることと共に生成され、および／またはこれにより早められる（precipitated）。受信された割当て解除リクエストは、特別なウォルシュコードが解放されていることの表示およびそのサイズを含む。フローチャートにおいて、サイズは、変数“w_size”により示され、コードは、変数“r_code”により示されている。これらは共に、受信されたリクエストに従って最初にセットされる。初期のr_code値は、所与の割当て解除リクエストに対して、何に対してプロセス２００が制限されるかをＷＣＦに支持する。したがって、ここでは単純化のために、特別なＷＣＦは、プロセス２００の説明にさらに参照されない。
【００３８】
次に、決定ステップ２１２において、w_sizeが４に等しい（即ち、最小のウォルシュコードサイズ）かどうかが決定される。ステップ２１２の決定が、肯定的即ちイエスである場合、r_codeに対応するコードが、プロセス２００がステップ２１６において終了する前に、w_sizeフラグメントリストに加えられる（ステップ２１４）。好ましくは、ステップ２１６の後に、アロケータ２０は、次のプロセス、プロセス２００または割当てプロセス１００（図３に説明されている）が実行されることを待つ。
【００３９】
他方において、ステップ２１２の決定が、否定的即ちノーである場合、r_codeの兄弟が、ステップ２１８において、決定および／または選択される。“s_code”により示される兄弟は、以下のように発見される。r_codeがw_size／２以上である場合、s_codeはr_code−（w_size／２）に等しくセットされ、そうでない場合、s_codeはr_code＋（w_size／２）に等しくセットされる。
【００４０】
決定ステップ２２０において、s_codeがw_sizeフラグメントリスト上にあるかどうかが決定される。ステップ２２０の決定が、否定的即ちノーである場合、r_codeは、w_sizeフラグメントリストに加えられ（ステップ２２２）、プロセス２００が終了ステップ２１６に進む。ステップ２２０の決定が、肯定的即ちイエスである場合、s_codeは、w_sizeフラグメントリストから除去され（ステップ２２４）、プロセス２００は、ステップ２２６に進む。
【００４１】
ステップ２２６において、プロセス２００は、r_codeの親にトンネルダウンする。これは、w_sizeをw_size／２に等しくまずセットし、そしてr_codeをr_code％w_sizeに等しくセットすることによりなされる。ステップ２２６の後に、プロセス２００は、現在のｗ_sizeの現在のr_codeに対応するウォルシュコードを、「未知（unknown）」の一時的状態にマークまたは指定した後、オプション的に、決定ステップ２１２にループバックする。この一時的な未知状態は、対応するウォルシュコードがフラグメントリストに付け加えられるべきかどうかが決定されることになるとき、次の反復まで持続する。その時点において、これは、オプション的に適切にマークまたは指定される。
【００４２】
プロセス２００は、最小のコードサイズに到達する（即ち、w_sizeが４に等しい）までか、またはs_codeがw_sizeフラグメントリスト上になくなるまで、反復的にループバックし続ける。いずれの場合においても、それぞれ決定ステップ２１２または２２０において、プロセス２００は、ループをブランチアウトする。その時点において、プロセス２００は、ステップ２１０において受信されたリクエストされた割当て解除との関係で、（それぞれステップ２１４および２２２により実行される最終的更新を除き）、適切に更新されたことを保証する。
【００４３】
本発明は、好ましい実施形態を参照して説明した。明らかなことに、以上の詳細な説明を読みかつ理解することにより、修正および変更がなされうる。例えば、本発明は、ＵＭＴＳ（Universal Mobil Telecommunications System）などのような様々なネットワーク環境および／またはプロトコルに適用可能であり、および／またはこれらとの組合せで容易に具現化される。
【００４４】
【発明の効果】
以上説明したように、本発明によれば、増幅器が非線形動作し、望ましくないインターフェアレンスが生じるリスクを防ぐまたは最小化するように、即ち、ピーク対平均電力比を許容可能なレベル以下に保つように、ウォルシュコード割当てが実行されることができる。
【００４５】
特許請求の範囲の発明の要件の後に括弧で記載した番号がある場合は、本発明の一実施例の対応関係を示すものであって、本発明の範囲を限定するものと解釈すべきではない。
【図面の簡単な説明】
【図１】本発明の一側面によるウォルシュコードアロケータを含む通信ネットワークを示すブロック図。
【図２】本発明の側面によるウォルシュコードアロケータにより使用されるウォルシュコードのテーブルを示す図。
【図３】本発明の側面によるウォルシュコードアロケータにより実行される割当てプロセスを示すフローチャート。
【図４】本発明の側面によるウォルシュコードアロケータにより実行される割当て解除プロセスを示すフローチャート。
【符号の説明】
１０  セル基地局
１２  信号増幅器
１４  アンテナ
１６  移動体局
２０  ウォルシュコードアロケータ
【図１】
0004024588.tif 000003
【図２】
0004024588.tif 000004
【図３】
0004024588.tif 000005
【図４】
0004024588.tif 000006