(57)【特許請求の範囲】
【請求項１】
ソフトウェア定義通信システムにおけるランダムアクセスメモリ（ＲＡＭ）の動的共有の方法であって、
（ａ）前記ソフトウェア定義通信システムのフラッシュメモリに複数のカテゴリのプログラムコードを記憶することであって、個別のカテゴリのプラグラムコードが複数の状態を有する状態機械の個別の状態に関連し、前記記憶することが、初期化カテゴリのプログラムコードと第１のカテゴリのプログラムコードと第２のカテゴリのプログラムコードとを記憶することを含む、前記記憶することと、
（ｂ）前記状態機械の初期化のための前記初期化カテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの初期化部分にコピーすることと、
（ｃ）前記状態機械の第１の状態のための前記第１のカテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの前記初期化部分から分離されている第１の部分にコピーすることと、
（ｄ）前記状態機械の第１の状態のための前記第１のカテゴリのプログラムコードを実行することと、
（ｅ）前記第１のカテゴリのプログラムコードを実行している間に、前記状態機械の第２の状態のための前記第２のカテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの前記初期化部分と前記第１の部分とから分離されている第２の部分にコピーすることと、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記状態機械を或る状態から別の状態に移動させることと、
前記第２のカテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの第２の部分にコピーすること、
を更に含む、方法。
【請求項３】
請求項１に記載の方法であって、
前記状態機械が、個別の送信状態と、個別の受信状態と、前記送信状態と前記受信状態との間の待機状態とを有し、
前記方法が、
前記状態機械を或る状態から別の状態に移動させることを更に含む、方法。
【請求項４】
請求項１に記載の方法であって、
複数の状態において用いられるか又はプロセッサの動作速度制限のために他の状態においてコピーされ得ない、複数のカテゴリのプログラムコードと複数の定数値コードとを記憶することと、
第３のカテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの前記第１及び第２の部分から分離されて動的に共有されない第３の部分にコピーすることと、
を更に含む、方法。
【請求項５】
請求項１に記載の方法であって、
実行されたプログラムコードが前記状態機械の状態の実行に必要とされなくなった後に、前記フラッシュメモリから前記ＲＡＭにコピーされた実行されたプログラムコードを上書きすることを更に含む、方法。
【請求項６】
請求項１に記載の方法であって、
前記ソフトウェア定義通信システムが時分割二重（ＴＤＤ）システムである、方法。
【請求項７】
請求項１に記載の方法であって、
前記ソフトウェア定義通信システムが周波数分割二重（ＦＤＤ）システムである、方法。
【請求項８】
請求項１に記載の方法であって、
前記フラッシュメモリに定数値コードを記憶することと、
前記定数値コードを前記フラッシュメモリから前記ＲＡＭにコピーすることと、
を更に含む、方法。
【請求項９】
請求項１に記載の方法であって、
初期化機能と前記フラッシュメモリから前記ＲＡＭへのプログラムコードの前記コピーとを実行するＲＡＭ共有マネジャーモジュールを動作させることを更に含む、方法。
【請求項１０】
請求項１に記載の方法であって、
前記実行することが、或る状態のためのカテゴリのプログラムコードを複数回連続して実行することを含む、方法。
【請求項１１】
請求項１に記載の方法であって、
前記記憶することが、或るカテゴリのプログラムコードを複数のプログラムコードのブロックに分割することを含み、
前記コピーすることが、各ブロックを前記フラッシュメモリから前記ＲＡＭに個別にコピーすることを含む、方法。
【請求項１２】
請求項１に記載の方法であって、
前記記憶することが、或るカテゴリのプログラムコードを複数のプログラムコードのブロックに分割することを含み、
前記コピーすることが、各ブロックを前記フラッシュメモリから前記ＲＡＭに個別にコピーすることと、前記複数のコピーされたコードのブロックを前記ＲＡＭの指定された部分に分配することとを含む、方法。
【請求項１３】
ソフトウェア定義通信システムであって、
（ａ）個別の複数の状態を有する状態機械であって、各状態が個別のカテゴリのプログラムコードを実行し、前記状態機械が１回に１つの状態のみにある、前記状態機械と、
（ｂ）複数のカテゴリのプログラムコードを記憶するフラッシュメモリであって、個別のカテゴリのプログラムコードが前記状態機械の個別の状態に関連し、前記複数のカテゴリが初期化カテゴリと第１のカテゴリと第２のカテゴリとを含む、前記フラッシュメモリと、
（ｃ）ランダムアクセスメモリ（ＲＡＭ）と、
（ｄ）前記状態機械と前記フラッシュメモリと前記ＲＡＭとに結合されるＲＡＭ共有管理回路要素であって、前記状態機械の初期化のための初期化カテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの初期化部分にコピーし、前記状態機械の第１の状態のための前記第１のカテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの前記初期化部分から分離されている第１の部分にコピーし、前記第１のカテゴリのプログラムコードを実行する間に前記状態機械の第２の状態のための前記第２のカテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの前記初期化部分から分離されている第２の部分にコピーする、前記ＲＡＭ共有管理回路要素と、
を含む、ソフトウェア定義通信システム。
【請求項１４】
請求項１３に記載のシステムであって、
前記ソフトウェア定義通信システムが時分割二重（ＴＤＤ）システムである、システム。
【請求項１５】
請求項１３に記載のシステムであって、
前記ソフトウェア定義通信システムが周波数分割二重（ＦＤＤ）システムである、システム。
【請求項１６】
請求項１３に記載のシステムであって、
前記フラッシュメモリが、複数の状態において頻繁に用いられるか又はプロセッサの動作速度制限のために他の状態においてコピーされ得ない、第３のカテゴリのプログラムコードと定数値コードとを記憶し、
前記ＲＡＭ共有管理回路要素が、前記第３のカテゴリのプログラムコードと前記定数値コードとを前記フラッシュメモリから前記ＲＡＭの前記第１及び第２の部分から分離されている第３の部分にコピーする、システム。
【請求項１７】
請求項１３に記載のシステムであって、
前記状態機械が、送信状態と受信状態とを有し、
前記ＲＡＭ共有管理回路要素が、前記第２のカテゴリのプログラムコードを前記フラッシュメモリから前記ＲＡＭの前記第１の部分から分離されている前記第２の部分にコピーする、システム。
【請求項１８】
請求項１３に記載のシステムであって、
或るカテゴリのプログラムコードが複数のプログラムコードのブロックに分割されており、
前記ＲＡＭ共有管理回路要素が、各ブロックを前記フラッシュメモリから前記ＲＡＭの分離された部分に個別にコピーする、システム。
【請求項１９】
請求項１３に記載のシステムであって、
或るカテゴリのプログラムコードが複数のプログラムコードのブロックに分割されており、
前記ＲＡＭ共有管理回路要素が、各ブロックを前記フラッシュメモリから前記ＲＡＭに個別にコピーし、コピーされたコードの複数のブロックを前記ＲＡＭの指定された部分に分配する、システム。
【請求項２０】
複数の状態を有する状態機械を動作させるプロセスであって、
（ａ）前記状態機械の初期化のための初期化カテゴリのプログラムコードを第１のメモリからランダムアクセスメモリの初期化部分にコピーすることと、
（ｂ）第１の状態のための第１のカテゴリのプログラムコードを前記第１のメモリから前記ランダクアクセスメモリの前記初期化部分から分離されている第１の部分にコピーすることと、
（ｃ）前記第１の状態のための前記第１のカテゴリのプログラムコードを実行することと、
（ｄ）第２の状態のための第２のカテゴリのプログラムコードを前記第１のメモリから前記ランダクアクセスメモリの前記初期化部分から分離されている第２の部分にコピーすることであって、前記第１のカテゴリのプログラムコードの実行に必要でなくなった前記第１の部分の重なる部分に前記第２のカテゴリのプログラムコードを上書きすることを含む、前記コピーすることと、
（ｅ）前記状態機械を前記第２の状態に進めることと、
（ｆ）前記状態機械の第２の状態のための前記第２のカテゴリのプログラムコードを実行することと、
を含む、プロセス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してソフトウェア定義又はソフトウェアプログラマブルＴＤＤ（時分割二重）通信システムに関し、より具体的には、フラッシュメモリからコピーされるプログラムコード及び／又はデータコードを、プログラムコードの各カテゴリがフラッシュメモリからＲＡＭ（ランダムアクセスメモリ）にいつコピーされるかに従って、また、利用可能なＲＡＭ空間がフラッシュメモリからコピーされるコードの他のカテゴリとどのように共有されるかに従って、カテゴリ化することによってＲＡＭを動的に共有するための技術及び構造に関する。ＴＤＤ（時分割二重）という用語は、順方向（即ち、送信）通信リンクが、同じ周波数帯において送信リンク及び受信リンクに対して異なるタイムスロットを割り当てることによって、逆方向（即ち、受信）通信リンクから時間に関して分離される通信システムを指す。ソフトウェア定義通信システムは、ＤＳＰ（デジタル信号プロセッサ）又はＦＰＧＡ（フィールドプログラマブルゲートアレイ）などのプログラマブルデバイスにおいて、構成要素及び機能がソフトウェアによって実装される通信システムである。ソフトウェア定義通信システムは、ＳＤＲ（ソフトウェア定義無線）システムなどのワイヤレス通信システム、又はソフトウェア定義電力線通信システムなどの有線通信システムであり得る。
【０００２】
図１は、双方向デジタルバス３によってアナログ・デジタル及びデジタル・アナログ変換回路要素４に結合されるＤＳＰ２を含む、基本的なソフトウェア定義通信システムを示す。変換回路要素４は、双方向デジタルバス５によって従来のＲＦフロントエンド回路要素６に結合され、ＲＦフロントエンド回路要素６はＲＦアンテナ７にも接続される。相当量の信号処理が、しばしば、特定用途ハードウェアで実施されるのではなく、汎用プロセッサ（図示せず）にハンドオーバーされる。この基本的なソフトウェア定義通信システムの目的は、典型的に、ＤＳＰ２を用いて、トランスミッタベースバンド信号を生成し、及び、受信されるベースバンド信号を処理することである。或るソフトウェア定義実装が、通信システムの構成及び改変における高度な柔軟性を提供する。「波形」と称することがある、広範囲にわたって異なる無線プロトコルが、単一プラットフォーム（例えば、集積回路チップの特定のセット）に、このプラットフォームにおいて異なるソフトウェアを用いることによって、適合され得る。
【０００３】
ソフトウェア定義通信システムは、典型的に、ＲＡＭ（ランダムアクセスメモリ）、フラッシュメモリ、及びＲＯＭ（読出し専用メモリ）を含む、異なる種類のメモリを含む。ＲＡＭは、最も高価な種類のメモリであり、最速の書込み及び読出しアクセス速度を有する。フラッシュメモリは、ＲＡＭより安価であるが、アクセス速度がかなり遅い。ＲＯＭは、最も安価な種類のメモリであり、ＲＡＭの読出しアクセス速度に匹敵する高速読出しアクセス速度を有するが、新たなデータをＲＯＭに書き込むことはできない。定数値コード及びプログラムコードがフラッシュメモリに記憶され得、これらは、ＤＳＰ又はその他のプロセッサによってＲＡＭから直接的にアクセスされ得る一方で、この技術は高価なＲＡＭの必要量を低減させる。代替として、定数値コード及びプログラムコードは、初期的にフラッシュメモリに記憶され得、その後、ＲＡＭにコピーされ得、その後、ＤＳＰ又はその他のプロセッサによって直接的にアクセスされ得る。この技術は、比較的速い動作速度を提供するが、よりコストの高いＲＡＭがより大量に必要とされるので、比較的コストがかかる。
【０００４】
「ＭＩＰＳ」という術語は、１秒当たり１００万個の命令を意味し、プログラムコードの特定の部分に対する演算速度要件、及び適切なＤＳＰの演算パワーを示すために用いられる。ソフトウェア定義通信システムのコストを低減するために、演算能力に対する「余裕（headroom）」をあまり多く取ることなく、アプリケーションにちょうど適合するＤＳＰを選択することが一般慣行である。ＲＡＭの従来の動的共有では（例えば、ウェブサイトhttp://en.wikipedia.org/wiki/C_dynamic_memory_allocationにおける引用ウィキペディア参考文書で説明されるように）、プログラミングコード及び定数値コードが実行される前に、プログラミングコード及び定数値コードはすべてフラッシュメモリからＲＡＭにコピーされる。
【０００５】
ソフトウェア定義ＴＤＤ通信システムでは、ＴＸ状態機械１３及びＲＸ状態機械は決して同時に走らない。データメモリセクションが、状態機械の異なる状態間でＲＡＭの様々なカテゴリを共有するが、プログラムコードは、状態機械の異なる連続する状態に対してプログラムコードの異なるセクションを記憶するためにＲＡＭの特定のセクションが用いられるという意味で、ＲＡＭにおいて「オーバーラップ」しない。これは、プログラムコードセクションに対する動的ＲＡＭ共有の「オーバーヘッド」によるものである。動的ＲＡＭ共有を実現するために、プログラムセクションは、このプログラムセクションのコードを実行する前に、フラッシュメモリからＲＡＭにコピーされる必要がある。このようなコピーには、かなりの付加的な時間量が必要とされる。従来の技術では、プログラムコードは、そのうちの任意のものが実行される前に、一度にすべてコピーされる。しかし、通常、プログラムコードの一部は、極めて高速に、即ち、極めて高いＭＩＰＳレートで、実行される必要がある。そのため、プログラムコードはフラッシュメモリからＲＡＭにすべて一度にはコピーされ得ない。その結果、従来のソフトウェア定義ＴＤＤ通信システムは、動的ＲＡＭ共有技術を用いない。その代わりに、スタティックＲＡＭ割当てが用いられる。
【０００６】
ソフトウェア定義ＴＤＤ通信システムの動作は極めて「タイミング集約的」であることを理解されたい。そのため、図２の状態機械１０に関連するプログラムをＲＡＭにおいて実行する必要がある。これは、ＲＡＭの読出し及び書込み動作がいずれも、いかなるフラッシュメモリの読出し及び書込み動作よりはるかに高速だからである。先に述べたように、複雑な状態機械（例えば、後に説明する図２に示す種類の状態機械）の状態毎の動作において、従来のソフトウェア定義ＴＤＤ通信システムでは、フラッシュメモリからＲＡＭにソフトウェアプログラムをコピーする必要があった。これは、多数の必要とされるフラッシュメモリアクセス動作に必要とされる時間量が許容不能となるからである。その結果、従来のシステムでは、システム動作の最初にプログラムコードすべてがフラッシュメモリからＲＡＭにコピーされる必要があり、これによりコストのかかるＲＡＭが大量に用いられることが必要とされていた。遺憾ながら、ＲＡＭの従来の動的共有をソフトウェア定義通信システムにおいて用いると、フラッシュメモリと比べてＲＡＭが比較的高コストなことから、許容し得ないほど高価になってしまう。
【０００７】
ワイヤレスネットワークにおける複数タイプの変調を含むマルチプル変調機器を用いることが、Ｓｃｈｍｉｄｌらによる同一出願人に譲渡された、２０１３年８月８日に公開された「複数変調を用いるワイヤレスネットワーク」というタイトルの米国特許出願公開番号２０１３／０２０１９６５に開示されている。
【発明の概要】
【０００８】
説明される例において、ソフトウェア定義マルチ変調ＴＤＤ又はＦＤＤ（周波数分割二重）通信システム及び方法が、速度性能を実質的に犠牲にすることなく、より安価であり、必要とするＲＡＭが実質的に少ない。
【０００９】
また、ソフトウェア定義ＴＤＤ又はＦＤＤ通信システムの説明される例において、動的ＲＡＭ共有割当てが、いくつかの状態が比較的低いＭＩＰＳレートしか必要としない状態機械を用いることによって実現され、そのため、これらの状態の間に何らかの特定のプログラムコードがフラッシュメモリからＲＡＭにコピーされ得る。
【００１０】
一実施形態に従って簡潔に説明すると、ソフトウェア定義通信システムにおけるＲＡＭの動的共有が、フラッシュメモリ（７１）にプログラムコードを記憶すること、及び、このコードの複数部分を送信カテゴリのグループにカテゴリ化することを含み、送信カテゴリのグループにカテゴリ化することが、このコードの或る部分が、いつＲＡＭ（７５）の或るセクションにコピーされる必要があり、その後ＴＸ状態機械（１３）の第１の状態の間に実行される必要があるかに従って、及び、このコードの別の部分がどのようにして同じセクションに後に適合され得、その後第２の状態の間に実行され得るかに従う。同様に、このコードの或る部分が、いつＲＡＭの或るセクションにコピーされる必要があり、その後ＲＸ状態機械（１１）の第１の状態の間に実行される必要があるかに従って、及び、このコードの別の部分がどのようにしてそのセクションに後に適合され得、その後ＲＸ状態機械の第２の状態の間に実行され得るかに従って、このコードの複数部分が受信カテゴリのグループにカテゴリ化され、そのため、速度性能を犠牲にすることなくＲＡＭの量が低減される。
【００１１】
一実施形態において、ソフトウェア定義通信システム（５３）におけるＲＡＭ（ランダムアクセスメモリ）の動的共有の方法が、ソフトウェア定義通信システム（５３）のフラッシュメモリ（７１）にプログラムコードを記憶することと、プログラムコードの複数の部分を送信カテゴリのグループ（例えば、ＣＡＴ１、２、３）にカテゴリ化することであって、プログラムコードの複数の部分の第１のグループ（例えば、ＣＡＴ１）の各々のプログラムコードが、いつＲＡＭ（７５）の第１の部分にコピーされる必要があり、その後送信（ＴＸ）状態機械（１３）の第１の状態の間に実行される必要があるかに従って、また、プログラムコードの複数の部分の第２のグループ（例えば、ＣＡＴ４）の各々が、どのようにしてＲＡＭ（７５）の第１の部分に後に適合され得、その後ＴＸ状態機械（１３）の別の状態又はＲＸ状態機械（１１）の或る状態であり得る別の状態の間に実行され得るかに従って、プログラムコードの複数の部分を送信カテゴリのグループにカテゴリ化すること、及び、プログラムコードの複数の部分を受信カテゴリのグループ（例えば、ＣＡＴ４、５、６）にカテゴリ化することであって、プログラムコードの複数の部分の第３のグループ（例えば、ＣＡＴ６）の各々のプログラムコードが、いつＲＡＭ（７５）の第２の部分にコピーされる必要があり、その後ＲＸ状態機械（１１）の第１の状態の間に実行される必要があるかに従って、また、プログラムコードの複数の部分の第４のグループ（例えば、ＣＡＴ２）の各々が、どのようにしてＲＡＭ（７５）の第２の部分に後に適合され得、その後ＲＸ状態機械（１１）の別の状態又はＴＸ状態機械（１３）の別の状態であり得る別の状態の間に実行され得るかに従って、プログラムコードの複数の部分を受信カテゴリのグループにカテゴリ化することと、送信カテゴリのグループにおける少なくとも１つのカテゴリのコードを上記カテゴリ化に従ってフラッシュメモリ（７１）からＲＡＭ（７５）にコピーすることと、受信カテゴリのグループにおける少なくとも１つのカテゴリのコードを上記カテゴリ化に従ってフラッシュメモリ（７１）からＲＡＭ（７５）にコピーすることと、送信されるべき送信データを準備するために、ＲＡＭ（７５）において、その時に、プログラムコード上の第１の所定の動作を行なうために送信時間間隔の間、ＴＸ状態機械（１３）を実行することと、受信されたデータを処理するために、ＲＡＭ（７５）において、プログラムコード上の第２の所定の動作を行なうために受信時間間隔の間、ＲＸ状態機械（１１）を実行することとを含む。上述の種々の工程は、付加的なプログラムコードに対して繰り返される。
【００１２】
一実施形態では、この方法は、複数の状態において頻繁に使用されるか又はプロセッサの動作速度制限のために他の状態においてはコピーされ得ない、プログラムコード及び定数値コードを含む第１のカテゴリ（ＣＡＴ０）を生成すること、及び、動的に共有されないＲＡＭ（７５）の一部に第１のカテゴリ（ＣＡＴ０）を記憶することを含む。
【００１３】
一実施形態では、動的に共有されるべきＲＡＭ（７５）にフラッシュメモリからコピーされるプログラムコードが、後に、このプログラムコードがもはや状態機械の特定の状態の実行に必要とされなくなった後でのみ、上書きされる。
【００１４】
一実施形態では、ソフトウェア定義通信システムは時分割二重（ＴＤＤ）システムであり、別の実施形態において、ソフトウェア定義通信システムは周波数分割二重（ＦＤＤ）システムである。
【００１５】
一実施形態では、この方法は、主として、ソフトウェア定義通信システム（５３）のソフトウェアによって命令が実行される必要のあるレート（ＭＩＰＳ）で一層低い要件を有する機械状態に対して、ＲＡＭの動的な共有を実施することを含む。
【００１６】
一実施形態では、この方法は、フラッシュメモリ（７１）に定数値コードを記憶すること、及び、ＲＡＭ（７５）においてこの定数値コードを動的に共有することを含む。
【００１７】
一実施形態では、この方法は、初期化機能を実行し、フラッシュメモリからＲＡＭ（７５）にプログラムコードをコピーする機能を実行する、ＲＡＭ共有マネジャーモジュール（７３）を動作させることを含む。
【００１８】
一実施形態では、ＲＸ状態機械（１１）は、ＴＸ状態機械（１３）から受信される同期ヘッダ（ＳＨＲ  ＲＸ）の始まりを検出するためのプリアンブル検出状態（１７）を含む。
【００１９】
一実施形態では、同期ヘッダ（ＳＨＲ  ＲＸ）は、各々異なる種類の変調情報を有する２つの種類のいずれかであり得、プリアンブル検出状態（図７の１７Ａ）が、どちらの種類の同期ヘッダ（ＳＨＲ  ＲＸ）が存在するかを検出するために２つのプリアンブル検出動作を並列に実施する。
【００２０】
一実施形態では、複数の状態のうちの１つの状態の複数の実行が実施され、この方法は、ＲＡＭにコピーされるカテゴリのコードを、その状態の複数の実行に分配することを含む。
【００２１】
一実施形態において、ソフトウェア定義通信システム（５３）が、ソフトウェア定義通信システム（５３）のプログラムコードを記憶するフラッシュメモリ（７１）と、送信カテゴリのグループ（例えば、ＣＡＴ１、２、３）にカテゴリ化されるプログラムコードの複数の部分をフラッシュメモリ（７１）から受信するためのＲＡＭ（７５）とを含み、プログラムコードの複数の部分をフラッシュメモリから受信することは、プログラムコードの複数の部分の第１のグループ（例えば、ＣＡＴ１）の各々のプログラムコードが、いつＲＡＭ（７５）の第１の部分にコピーされる必要があり、その後送信（ＴＸ）状態機械（１３）の第１の状態の間に実行される必要があるかに従い、また、ＲＡＭ（７５）は、プログラムコードの複数の部分の第２のグループの各々が、どのようにしてＲＡＭ（７５）の第１の部分に後に適合され得、その後ＴＸ状態機械（１３）の別の状態又はＲＸ状態機械（１１）の或る状態の間に実行され得るかに従って、プログラムコードの複数の部分をフラッシュメモリ（７１）から受信するように動作する。また、ＲＡＭ（７５）は、受信カテゴリのグループ（例えば、ＣＡＴ４、５、６）にカテゴリ化されるプログラムコードの複数の部分をフラッシュメモリ（７１）から受信し、プログラムコードの複数の部分をフラッシュメモリから受信することは、プログラムコードの複数の部分の第３のグループ（例えば、ＣＡＴ６）の各々のプログラムコードが、いつＲＡＭ（７５）の第２の部分にコピーされる必要があり、その後ＲＸ状態機械（１１）の第１の状態の間に実行される必要があるかに従い、ＲＡＭ（７５）はまた、受信カテゴリにおけるプログラムコードの複数の部分をフラッシュメモリ（７１）から受信するように動作し、プログラムコードの複数の部分をフラッシュメモリから受信することは、プログラムコードの複数の部分の第４のグループ（例えば、ＣＡＴ２）の各々が、どのようにしてＲＡＭ（７５）の第２の部分に後に適合され得、その後ＲＸ状態機械（１１）の別の状態又はＴＸ状態機械（１３）の別の状態であり得る別の状態の間に実行され得るかに従う。ソフトウェア定義通信システム（５３）は、送信カテゴリのグループにおける少なくとも１つのカテゴリのプログラムコードを、送信カテゴリのカテゴリ化に従ってフラッシュメモリ（７１）からＲＡＭ（７５）にコピーするための回路要素（２）を含む。ソフトウェア定義通信システム（５３）はまた、受信カテゴリのグループにおける少なくとも１つのカテゴリのプログラムコードを、受信カテゴリのカテゴリ化に従ってフラッシュメモリ（７１）からＲＡＭ（７５）にコピーするための回路要素（２）を含む。ＴＸ（送信）状態機械（１３）は、ＲＸ状態機械（１１）に送信されるべき送信データを準備するために、送信時間間隔の間、ＲＡＭ（７５）において、その時に、プログラムコード上の第１の所定の動作を実行する。ＲＸ状態機械（１１）は、ＴＸ状態機械（１３）から受信したデータを処理するために、受信時間間隔の間、ＲＡＭ（７５）において、その時に、プログラムコード上の第２の所定の動作を実行する。一実施形態では、ソフトウェア定義通信システムは時分割二重（ＴＤＤ）システムであり、別の実施形態において、ソフトウェア定義通信システムは周波数分割二重（ＦＤＤ）システムである。
【００２２】
一実施形態では、システムのプログラムコードは、複数の状態において頻繁に使用されるか又はプロセッサの動作速度制限のために他の状態においてコピーされ得ない、プログラムコード及び定数値コードを含む第１のカテゴリ（ＣＡＴ０）を含み、第１のカテゴリ（ＣＡＴ０）は、動的に共有されないＲＡＭ（７５）の一部に記憶される。システムのプログラムコードは、好ましくは、主として、ソフトウェア定義通信システム（５３）のソフトウェアによって命令が実行される必要があるレート（ＭＩＰＳ）に対し一層低い要件を有する状態に対して、ＲＡＭの動的な共有が生じるように、送信カテゴリ及び受信カテゴリのグループにカテゴリ化される。
【００２３】
一実施形態では、ソフトウェア定義通信システム（５３）は、初期化機能と及びフラッシュメモリからＲＡＭ（７５）へのプログラムコードのコピーとを実行するＲＡＭ共有マネジャーモジュール（７３）を含み、ＲＸ状態機械（１１）は、ＴＸ状態機械（１３）から受信される同期ヘッダ（ＳＨＲ  ＲＸ）の始まりを検出するためのプリアンブル検出状態（１７）を含む。同期ヘッダ（ＳＨＲ  ＲＸ）は、各々異なる種類の変調情報を有する２つの種類のいずれかであり得、プリアンブル検出状態（図７の１７Ａ）は、どちらの種類の同期ヘッダ（ＳＨＲ  ＲＸ）が存在するかを検出するために２つのプリアンブル検出動作を並列に実施する。
【００２４】
一実施形態では、複数状態のうちの１つの状態の複数の実行が成され、システムは、ＲＡＭにコピーされるカテゴリのコードを、その状態の複数の実行に分配するように動作する。
【００２５】
一実施形態では、ソフトウェア定義通信システム（５３）におけるＲＡＭ（ランダムアクセスメモリ）の動的共有のためのシステムが、ソフトウェア定義通信システム（５３）のフラッシュメモリにプログラムコードを記憶するための手段（２、７０）と、プログラムコードの複数の部分を送信カテゴリのグループ（例えば、ＣＡＴ１、２、３）にカテゴリ化するための手段（７０、８０）であって、プログラムコードの複数の部分の第１のグループ（例えば、ＣＡＴ１）の各々のプログラムコードが、いつＲＡＭ（７５）の第１の部分にコピーされる必要があり、その後送信（ＴＸ）状態機械（１３）の第１の状態の間に実行される必要があるかに従って、また、プログラムコードの複数の部分の第２のグループ（例えば、ＣＡＴ４）の各々が、どのようにしてＲＡＭ（７５）の第１の部分に後に適合され得、その後ＴＸ状態機械（１３）の別の状態又はＲＸ状態機械（１１）の或る状態であり得る別の状態の間に実行され得るかに従って、プログラムコードの複数の部分を送信カテゴリのグループにカテゴリ化するための手段（７０、８０）であって、手段（７０、８０）が、プログラムコードの複数の部分を受信カテゴリのグループ（例えば、ＣＡＴ４，５，６）にカテゴリ化するためであって、プログラムコードの複数の部分の第３のグループ（例えば、ＣＡＴ６）の各々のプログラムコードが、いつＲＡＭ（７５）の第２の部分にコピーされる必要があり、その後ＲＸ状態機械（１１）の第１の状態の間に実行される必要があるかに従って、また、プログラムコードの部分の第４のグループ（例えば、ＣＡＴ２）の各々が、どのようにしてＲＡＭ（７５）の第２の部分に後に適合され得、その後ＲＸ状態機械（１１）の別の状態又はＴＸ状態機械（１３）の別の状態であり得る別の状態の間に実行され得るかに従って、プログラムコードの複数の部分を受信カテゴリのグループにカテゴリ化するための、手段（７０、８０）と、送信カテゴリのグループにおける少なくとも１つのカテゴリのコードを、工程（ｂ）のカテゴリ化に従ってフラッシュメモリ（７１）からＲＡＭ（７５）にコピーするための手段（２、７０）であって、受信カテゴリのグループにおける少なくとも１つのカテゴリのコードを、カテゴリ化に従ってフラッシュメモリ（７１）からＲＡＭ（７５）にコピーするための手段（２、７０）と、ＲＸ状態機械（１１）に送信されるべき送信データを準備するために、プログラムコード上の第１の所定の動作を実施するために送信時間間隔の間、ＲＡＭ（７５）において、その時に、ＴＸ状態機械（１３）を実行するための手段（２）、及び、ＴＸ状態機械（１３）から受信したデータを処理するために、プログラムコード上の第２の所定の動作を実施するために受信時間間隔の間、ＲＡＭ（７５）において、その時に、ＲＸ（受信）状態機械（１１）を実行するための手段（２）とを含む。
【図面の簡単な説明】
【００２６】
【図１】典型的なソフトウェア定義通信システムのブロック図である。
【００２７】
【図２】典型的なソフトウェア定義ＴＤＤ通信システムのための状態機械の図である。
【００２８】
【図３】例示の実施形態の一実装のブロック図である。
【００２９】
【図４】プログラムコード及び定数値コードのセクションがどの特定の時点にフラッシュメモリからＲＡＭにコピーされるか、及び、特定のカテゴリについてＲＡＭがどのようにして動的に共有され得るか従って決定されるプログラムコード及び定数値コードの複数のカテゴリについて、動的なＲＡＭ共有がどのように実現され得るかの例を図示する図である。
【００３０】
【図５】図３及び図４に示すような一実装と共に用いられる、動的なＲＡＭ共有プログラムのフローチャートである。
【００３１】
【図６】図３〜図５の実施形態の単一変調ソフトウェア定義ＴＤＤ通信システムのプログラムコード及び／又は定数値コードのカテゴリ化を示すディシジョンツリーのフローチャートである。
【００３２】
【図７】マルチ変調ソフトウェア定義ＴＤＤ通信システムにおけるプリアンブル検出状態機械のブロック図である。
【００３３】
【図８】プログラムコードセクション及び定数値コードセクションがフラッシュメモリからＲＡＭにいつコピーされるか、及び、特定のカテゴリに対してＲＡＭがどのようにして動的に共有されるかに従って決定されるプログラムコードセクション及び定数値コードセクションのカテゴリに対してマルチ変調ソフトウェア定義通信システムにおいて、動的なＲＡＭ共有がどのように実現され得るかの例を図示するプリアンブル検出状態機械のブロック図である。
【００３４】
【図９】複数プリアンブルを同時に検出し得るレシーバ状態機械の図である。
【００３５】
【図１０】ＦＤＤ（周波数分割多重）システムにおいて動的なＲＡＭ共有が用いられる代替の実施形態を図示するための図である。
【発明を実施するための形態】
【００３６】
例示の実施形態により、ソフトウェア定義ＴＤＤ通信システムの異なる状態機械状態間のＲＡＭの動的共有のための方法及び構造が提供される。本明細書で用いられるＲＡＭの「共有」という用語は、物理的なＲＡＭアドレスのすべてではなく一部が、プログラムコードの或るカテゴリ及び一定値コードによって用いられる目的で確保されることを意味し、これらのカテゴリは、それぞれ、（ａ）或る指定されたカテゴリのプログラムコードがフラッシュメモリからＲＡＭにコピーされるべき時点に従って、及び、（ｂ）特定の時間において利用可能な物理的なＲＡＭの量に従って、前もって決定されている。これらの様々なカテゴリは、対応する特定の状態を実行するためのプログラムコード及び／又は定数値コード変数を記憶するために、状態機械のそれぞれ対応する特定の状態の間、用いられる。プログラムコードは、実行されるべき命令を含み、定数値コード変数データは、典型的に、ルックアップテーブル及びフィルタ係数のようなものを含む。
【００３７】
例示の実施形態は、プログラムコードのための動的な共有に注目しており、状態機械の特徴に、特に、状態機械の各状態が、状態機械が次の状態に移る前に完全に実行されるという事実に基づいている。
【００３８】
動的ＲＡＭ共有割当ては、いくつかの状態が比較的低いＭＩＰＳレートしか必要としない状態機械を用いることによって実現され、これにより、それらの状態において何らかの特定のプログラムコードがフラッシュメモリからＲＡＭにコピーされ得る。
【００３９】
図２は、ソフトウェア定義ＴＤＤ（時分割二重）通信システムのための状態機械１０を図示する。状態機械１０は、ＲＸ（レシーバ）状態機械１１と通信により結合されるＴＸ（トランスミッタ）状態機械１３を含む。送信システム又はトランスミッタによって送信される「情報パッケージ」は、３つの部分に符号化され得る。情報パッケージの最初の部分は「同期ヘッダ」ＳＨＲと呼ばれる。レシーバのための同期ヘッダＳＨＲ  ＲＸは、トランスミッタにより送信される信号の始まりを検出するために用いられる。レシーバは送信される信号が始まるときを「知らず」、そのため、トランスミッタは、情報パッケージの最初の部分として同期ヘッダＳＨＲ  ＲＸを送信し、次いで「物理層ヘッダ」ＰＨＲ  ＲＸを送信する。
【００４０】
物理層ヘッダＰＨＲ  ＲＸは、様々なパラメータ、情報パッケージの残りを復号するために用いられ得る変調情報及びパラメータを含み得る。レシーバは、送信された情報パッケージの始まりにおける受信した同期ヘッダＳＨＲ  ＲＸを「検出する」ことによって、トランスミッタに「同期する」。この検出を容易にするために、レシーバによって受信された同期ヘッダＳＨＲ  ＲＸは、典型的に、反復的パターンを含む。この反復的パターンは、送信される情報パッケージの始まりにおける同期ヘッダに位置する１及び０の疑似ランダムシーケンスを含み得る。その後、レシーバは、受信した同期ヘッダにおける反復的コードに対して相関プロセスを相関信号のピーク値が得られるまで実施し、このピーク値は、情報パッケージにおける送信及び受信される信号の始まりをマーキングする。
【００４１】
トランスミッタは、同期ヘッダＳＨＲ  ＲＸ、その後続く物理層ＰＨＲ  ＲＸ、及びその後続く物理層ペイロードＰＳＤＵ  ＲＸを含む情報パッケージをすべて単一バーストで送信する。物理層ＰＨＲ  ＲＸは、典型的に、情報を復号するためのデジタル信号処理情報、及び変調情報、並びに情報パッケージの送信を制御する管理情報を含む。
【００４２】
レシーバ状態機械の「プリアンブル検出」（ＰＤ）部分は、受信された「物理層ペイロード」ＰＳＤＵ  ＲＸに含まれる「実際の」メッセージの始まりが生じる時点を決定するために、トランスミッタによって送信され、レシーバによって受信された同期ヘッダを検出する部分である。
【００４３】
レシーバは、送信された情報パッケージの始まりにおける、送信された同期ヘッダＳＨＲ  ＲＸを検出し、受信した物理層ヘッダを復号して、情報パッケージの残りを変調するため、及びその後、物理層ペイロードＰＳＤＵ  ＲＸを復号するために用いられる変調情報を得る。
【００４４】
引き続き図２を参照すると、ソフトウェア状態機械１０は、アイドルルーチン又はプログラム１２によってＲＸ（レシーバ）状態機械１１に結合されるＴＸ（トランスミッタ）状態機械１３を含む、単一変調システムのためのものである。ＴＸ状態機械１３は、アイドルルーチン１２からＴＸ初期化状態３４へのＴＸ開始信号３３に応答して動作を開始する。ＴＸ初期化状態３４は、経路（又はプロセス）３５を介してＴＸ同期ヘッダ又はＳＨＲ  ＴＸ状態３７に進み、ＳＨＲ  ＴＸ状態３７はループ経路３８によって示される反復的プロセスを実施する。通常、送信の場合、送信情報パケットは複数のデータブロックに分割される。各データブロックは、特定の機械状態の実行に対応する。同期ヘッダＳＨＲ  ＴＸは、ＴＸ状態機械１３のこの特定の状態によって実行されなければならない複数のブロックを含み得、図２の「ループ」３８は、ＳＨＲ  ＴＸの対応する複数のブロックの実行を完了するためのＳＨＲ  ＴＸ状態３７の繰り返し実行を指す。同期ヘッダ状態３７が失敗した場合（同期ヘッダＳＨＲ  ＴＸが３つのデータブロックを含むが、第１のブロックが送信された後、ハードウェアが誤って信号の送信を停止した場合など）、経路３９によって示されるように、失敗になる。この場合、ＴＸ状態機械１３は、失敗状態４０に入り、その後、経路４１によって示されるように、アイドルループ１２に戻る。状態３７における同期ヘッダＳＨＲ  ＴＸのすべてのブロックの処理が、経路４３によって示されるように成功又は「終了」した場合、ＴＸ状態機械１３は物理ヘッダＰＨＲ  ＴＸ状態４４に進む。
【００４５】
物理ヘッダＳＨＲ  ＴＸは、パケット長、コーディング方式、及び「白色化（whitening）」方式など、その情報パッケージの残りをどのように復号するかに関する情報を含み、矢印４５によって示されるように、物理ヘッダＰＳＤＵ  ＴＸの連続するブロックの反復的処理を受ける。ＰＨＲ  ＴＸプロセス又は状態が「失敗」した場合、ＴＸ状態機械１３は、矢印４６によって示されるように、失敗状態４０に進む。ＰＨＲ  ＴＸ状態４４のプロセスが終了又は成功した場合、ＴＸ状態機械１３は、矢印４７によって示されるように、物理層ペイロード又はＰＳＤＵ  ＴＸ状態４８に進む。ここで、物理層ペイロードＰＳＤＵ  ＴＸは、レシーバに送信されるべき「実際の」メッセージ／情報の本体を含む。物理層ペイロード又はＰＳＤＵ  ＴＸの矢印４９によって示される処理が失敗した場合、ＴＸ状態機械１３は、矢印５１によって示されるように、「失敗」状態４０に入る。物理層ペイロード状態４８の処理４９が、矢印５０によって示されるように成功した場合、ＴＸ状態機械１３はアイドルプロセス１２に移る。
【００４６】
ＲＸ状態機械１１は、アイドルプロセス１２によって生成され、ＲＸ初期化状態１５によって受信されるＲＸ開始信号３２に応答して動作する。その後、ＲＸ状態機械１１は、受信した信号の同期ヘッダＳＨＲ  ＲＸを検出するため、矢印１６によって示されるように、「プリアンブル検出」状態１７に進む。プリアンブル検出状態１７のプロセスの結果、矢印１８によって示されるように、検出されるプリアンブルがない場合、ＲＸ状態機械１１は、矢印１９によって示されるようにアイドルプロセス１２に戻る。矢印２０によって示されるように、プリアンブルが検出された場合、ＲＸ状態機械１１は、物理層ヘッダ又はＰＨＲ  ＲＸ状態２１に進み、矢印２２によって示されるように、受信したデータの個別のブロックに対するプロセスを、ＰＨＲ  ＲＸパケット全体の実行が完了するまで繰り返し実施する。矢印２３によって示されるようにプロセス２２が失敗した場合、ＲＸ状態機械１１は、失敗状態２４に進み、その後、矢印２７によって示されるようにプリアンブル検出状態１７に戻る。ＰＨＲ  ＲＸ状態２１のプロセスが、矢印２５によって示されるように成功した場合、ＲＸ状態機械１１は物理層ペイロード又はＰＳＤＵ  ＲＸ状態２８に進み、そこで、矢印２９によって示されるように、情報パッケージのデータのデータ群に対して反復的プロセスが実施される。矢印３１によって示されるように状態２８が失敗した場合、ＲＸ状態機械１１は失敗状態２４に入る。矢印３１によって示されるように、ＰＳＤＵ  ＲＸ状態２８のプロセス２９が完了すると、ＲＸ状態機械１１はプリアンブル検出状態１７に進む。
【００４７】
図２のソフトウェア定義ＴＤＤ通信状態機械１０は、状態機械１０が、後に図３〜図９で説明する実施形態の構成要素としての使用に適合するように、典型的なソフトウェア定義ＴＤＤ通信システムの改変を含む。
【００４８】
図２の状態機械１０は、特定の状態において常に動作し、その後、別の次の状態に進むという特徴を有する。これは、システムの始まりにおいてフラッシュメモリからＲＡＭにプログラムコードのすべてをコピーする必要がないことを意味する。例示の実施形態に従って、各特定の状態における動作に必要とされるプログラムコード及び定数コードのみが、フラッシュメモリからＲＡＭにコピーされ、コード実行時にその状態においてのみ用いられる。その後、オペレーティングプログラムが次の状態に進むと、その状態の実行の間必要とされるプログラムコード及び定数コードのみがフラッシュメモリからＲＡＭにコピーされる。この技術は、状態機械の他の状態すべてについて繰り返される。
【００４９】
しかし、前述の手法は、各状態に必要とされるコードがまず決定され、その後、あらかじめ「カテゴリ」に整理される必要があり、その後、その状態の実行の間、このコードの量、タイミング、及び動作の解析を実施することによって実現されなければならない。フラッシュメモリにおけるこのコードの整理を、本明細書では、「カテゴリ化」と称する。カテゴリ化は、本質的に、フラッシュメモリからＲＡＭにコピーされ、その後、様々な時点で状態機械の様々な状態によって実行されるべき、一層小さなピースにコードを分けることである。状態機械の各状態は、特定の割込みに応答して実行又は走らせるためにトリガされ、１つの状態が完全に実行されるには、その状態の複数の割込み及び実行が必要とされ得る。これらの複数回の実行又は複数回走らせることに対してフラッシュメモリからＲＡＭにコピーされるコードは、ハードウェアの「ＭＩＰＳ要件」を低減する助けとなり得る。任意の単一割込みに応答して、状態機械１０は、単一の対応する状態を、その状態に必要とされるＲＡＭにおけるコードを実行することによって実行する。これにより、システム動作速度を実質的に犠牲にすることなく、必要とされる高価なＲＡＭの量が効果的に低減される。ＴＸ状態機械１３又はＲＸ状態機械においてこの状態が実行された後は、ＲＡＭ内のこのカテゴリに関するコードはすべて、この状態を実行する際に用いられており、したがってＲＡＭにおいてもはや必要とされず、したがって、フラッシュメモリ内の別のカテゴリのコードをＲＡＭのこの同じ「オーバーラップする」部分に転送することによって上書きされ得る。
【００５０】
このように、最初の工程は、ソフトウェア定義ＴＤＤ通信システムの動作の間一度だけ実行され得るプログラムコード及び定数コードのすべての解析及びカテゴリ化であり、これは、本質的に、異なる目的のために異なる時点でＲＡＭにおいて用いられ得る異なるカテゴリにコードを置くことによって実行される。システムのアーキテクチャが設計された後、各カテゴリに必要とされるＲＡＭの量が解析され、フラッシュメモリ内のコードのどの部分がどのカテゴリ及び機械の状態に割り当てられ得るかが決定され、そのため、特定のカテゴリにおけるコードのこれらの部分は、これらを用いる状態が実行された後、もはや必要でなくなる。その後、これらのカテゴリに対応するＲＡＭのロケーションが、未実行カテゴリ又は次に実行されるカテゴリのコードで上書きされ得る。このように、ソフトウェア定義ＴＤＤ通信システムの設計が完了した後、図２のシステム及び状態機械１０が動作されてその様々な状態にわたって進むにつれて、カテゴリ化情報を「その場で」用いて、プログラムコード及び定数コードの様々なカテゴリをフラッシュメモリからＲＡＭに１つずつコピーする。
【００５１】
図３は、テキサス・インスツルメンツのＣ２０００マイクロコントローラ、製品番号ＴＭＳ３２０Ｆ２８３７７Ｄとし得るＤＳＰ２を含む基本的なソフトウェア定義ＴＤＤ通信システム５３を示す。ＤＳＰ２は、双方向デジタルバス３によってＲＦ（無線周波数）フロントエンド回路要素６Ａ（これは、テキサス・インスツルメンツの製品番号ＣＣ１２６０とし得る）に結合される。適切なアナログ・デジタル及びデジタル・アナログ変換回路要素が、ＲＦフロントエンド回路要素６Ａに含まれ、双方向ＲＦ信号バス５によって、ＰＡ（パワーアンプ）／ＬＮＡ（ローノイズアンプ）回路要素６Ｂに結合される。回路要素６ＢはＲＦアンテナ７に接続される。
【００５２】
一実施形態が、ソフトウェア定義単一変調ＴＤＤ通信システムを含む。変調は、ＯＦＤＭ（直交周波数分割多重）、ＤＳＳＳ（ダイレクトシーケンススペクトル拡散）、ＦＳＫ（周波数偏位変調）、又は任意の他の適切な変調方式とし得る。ＯＦＤＭを含めていくつかの種類の変調は、異なるコーディングレートモードを有する変調コーディングセット（ＭＣＳ）に従う異なるデータレートモードを含み得る。ソフトウェア定義ＴＤＤ通信システムの他の実施形態が、複数の変調及びマルチプルプリアンブル検出を含み得る。
【００５３】
例示の実施形態に従って、フラッシュメモリに初期的に記憶されるプログラムコードセクション及び定数値コードセクションが、複数の異なるカテゴリに分割される。この分割は、（ａ）通信プロセスにおいて各カテゴリのプログラムコードがＲＡＭにいつコピーされる必要があるか、及び、（ｂ）利用可能なＲＡＭ空間が様々なカテゴリとどのように共有されるべきかに従って行われる。それに従ってフラッシュメモリからコピーされるべきプログラムコード及び／又は定数値コードのカテゴリは、概ね図６のディシジョンツリーフローチャートに従って、ＲＡＭに転送される。カテゴリ化プロセスでは、或る種のプログラムコード及び／又は或る種の定数値コードが他のコードより早い状態においてコピーされるが、後続の状態においてのみ用いられる。これは、ソフトウェア定義ＴＤＤ通信システムの動作の早い状態における「ＭＩＰＳヘッドルーム」を利用してソフトウェア定義ＴＤＤ通信システムの異なる状態に関連する「ＭＩＰＳを均等化」することがときには望ましいからである。
【００５４】
説明した例における上述のカテゴリがすべて下記に表１において列挙されている。表１は、表１に示す様々な異なる状態間の異なる時点における物理的なＲＡＭの「共有」又は「再使用」を示す。この情報は、必要とされる物理的なＲＡＭの量が、従来のソフトウェア定義ＴＤＤ通信システムで必要とされる物理的なＲＡＭの全量と比べてどのようにして実質的に低減され得るかを示す。
【表１】
0006667524.tif 000002
0006667524.tif 000003
【００５５】
フラッシュメモリからＲＡＭへのコピーの一部が特定の状態の始まりにおいて生じる場合、コピーされたデータは、直前の状態で生じたかのように用いられる。
【００５６】
先に説明した図２に示す状態機械は、上述のＲＡＭの動的共有、並びにこれに関連する、初期的にフラッシュメモリに記憶され、その後ＲＡＭにコピーされるプログラムコードセクション及び定数値コードセクションのカテゴリ化を含む、ソフトウェア定義ＴＤＤ通信システムにおいて用いられる。
【００５７】
或るソフトウェア定義ＴＤＤ通信システムにおいて、デジタルフロントエンド（ＤＦＥ）回路が、データサンプルの「ブロック」と称する或る数のサンプルを蓄積した後、ＤＦＥは割込み信号を生成する。この割込み信号は、図２に示す状態機械などの状態機械を走らせることをトリガし、それによって状態機械をその次の状態に進ませる。通常、データサンプルの複数のブロックは、単一状態に必要とされる処理を部分的又は全体的に「終了」する必要があり、その後、状態機械はその次の状態に進む。従来のソフトウェア定義ＴＤＤ通信システムのこの特徴により、本明細書で説明する動的なＲＡＭ共有が生じ得る。ここで、フラッシュメモリに記憶される様々なプログラムコードセクション及び定数コードセクションは、データブロックの処理の間ＲＡＭの異なるセクションにコピーされ、そのため、ソフトウェア定義ＴＤＤ通信システム全体のピークＭＩＰＳ要件が低減され、それによって、ＲＡＭがより安価になる。ソフトウェア定義ＴＤＤ通信システムの状態機械の様々な異なる状態のＭＩＰＳ要件は実質的に異なり得る。
【００５８】
典型的に、単一変調システムにおいて、プリアンブル検出、ＰＨＲ  ＲＸ（レシーバのための物理層ヘッダ）、ＳＨＲ  ＴＸ（トランスミッタのための同期ヘッダ）、及びＰＨＲ  ＴＸ（トランスミッタのための物理層ヘッダ）を含めて様々な状態は、比較的低いＭＩＰＳ要件を有し得る。その結果、フラッシュメモリに記憶される様々なプログラムコードセクション及び定数コードセクションが、ソフトウェア定義ＴＤＤ通信システムの全体的なピークＭＩＰＳ要件が増大しないような方式で、フラッシュメモリから物理的なＲＡＭにコピーされ得る。
【００５９】
次の状態の間フラッシュメモリからＲＡＭにコピーされるべきプログラムコード及び／又は定数値コードについて、次の状態におけるＲＡＭの使用は現在の状態におけるＲＡＭの現在の使用とオーバーラップしないが、これらのプログラムコード及び／又は定数値コードは、現在の状態の間フラッシュメモリからコピーされ、ブロックデータの各処理に分配される。現在の状態の間ＲＡＭにコピーされないプログラムコード又は定数値コードについて、これらのコードは次の状態がより低いＭＩＰＳデータレートしか必要としない場合には次の状態の始まりに、又は現在の状態がより低いＭＩＰＳデータレートしか必要としない場合には現在の状態の終わりに、フラッシュメモリからＲＡＭにコピーされる。
【００６０】
特定の状態の前にいくつかのプログラムコード及び／又は定数値コードがフラッシュメモリからＲＡＭにコピーされる必要がある場合、及び、その状態の前にソフトウェア定義ＴＤＤ通信システムがこれを可能にするために充分なＭＩＰＳ能力を提供しない場合、これらのプログラムコード又は定数値コードはＣＡＴ１（ＴＸ）又はＣＡＴ４（ＲＸ）カテゴリに置かれる。これは、これらのプログラムコード及び／又は定数値コードがＴＸ初期化プロセス又はＲＸ初期化プロセスのいずれかの間にフラッシュメモリからＲＡＭにコピーされ得ることを意味する。フラッシュメモリからＲＡＭにコピーされる必要があるプログラムコードが多過ぎる場合、システムは、状態機械の中間の状態又は「中間状態」の間にこのプログラムコードをフラッシュメモリからＲＡＭにコピーする余裕がないことがある。そうであれば、ＴＸ初期化３４又はＲＸ初期化１５に対して、始めに、フラッシュメモリからＲＡＭにこのプログラムコードをコピーする必要がある。ＴＸ初期化３４とＲＸ初期化１５の間、このプログラムコードは依然としてＲＡＭを動的に共有し得る。
【００６１】
図４は、ソフトウェア定義ＴＤＤ通信システムの異なる状態間の動的なＲＡＭ共有を示す。図４には、ソフトウェア定義ＴＤＤ通信システムのＲＡＭ使用が、参照数字５７によって示されている。図４の垂直次元は、表１のカテゴリによってどのくらい多くのＲＡＭ空間が使用されるかを示す。水平次元は、図２のＴＸ状態機械１３及びＲＸ状態機械１１の異なる一連の状態が実行される時間又は順を示す。図４において複数の図示されたカテゴリが同じ垂直の「高さ」に位置する場合、これは、これらのカテゴリが互いに「オーバーラップする」こと、即ち、このようなカテゴリがＲＡＭの同じロケーションを、ただし図２の状態機械１０の異なる状態の実行の間異なる時点で、占有することを意味する。
【００６２】
図５は、フラッシュメモリ７０からＲＡＭへのプログラムコード及び／又は定数値コードのコピーを管理するように動作するプログラムＲＡＭ共有マネジャーモジュール７３を含むブロック図を示す。図５において、メモリサブシステム７０は、バス７２によってＲＡＭ共有マネジャーモジュール７３の入力に結合されるフラッシュメモリ７１を含む。ＲＡＭ共有マネジャーモジュール７３の出力は、デジタルバス７４によってＲＡＭ７５に接続される。ＲＡＭ共有マネジャーモジュール７３は、下記のコーディングに示すように、起点ポインタ及び宛先ポインタ、並びに各プログラムコードセクションのサイズ及び各定数値コードセクションのサイズを記録するソフトウェア構造を維持する。
0006667524.tif 000004
【００６３】
上述のコピーはフラッシュメモリ７１からＲＡＭ７５へのコピーなので、「ソースポインタ」と呼ばれる第１のポインタが、フラッシュメモリ７１におけるロケーションアドレスを指し、「宛先ポインタ」と呼ばれる第２のポインタが、ＲＡＭにおけるアドレスロケーションを指す。例えば、カテゴリＣＡＴ１のためのコードカテゴリは、初期的にフラッシュメモリ７１に記憶される。カテゴリＣＡＴ２のコードが後にフラッシュメモリ７１からＲＡＭ７５にコピーされるとき、カテゴリＣＡＴ２のコードがコピーされるＲＡＭ７５における既知のロケーションが、そのコードのための宛先ポインタによって指し示される。任意のカテゴリのコードの一部又は全部が、既知サイズのコードの複数のより小さなブロックに分割され得る。先に示したソースポインタの「引数」［ＮＵＭ＿ＣＡＴ］は、フラッシュメモリ７１からＲＡＭ７５にコピーされているカテゴリの任意の特定のサブブロックを指定し得る。
【００６４】
実際のシステムでは、カテゴリの一部が空であり得、単一のカテゴリが異なるセクションに分割され得、これらのセクションはＲＡＭ７５の対応する利用可能な小セクションに適合され得る。「空の」カテゴリは、ソフトウェア構造から完全に除去され得る。
【００６５】
ＲＡＭ共有マネジャーモジュール７３はまた、初期化機能及びフラッシュメモリからＲＡＭへのコピー機能を含めて、いくつかの付加的な機能を提供する。初期化機能は、ソースポインタ、宛先ポインタ、及び各カテゴリにおけるブロックのサイズを初期化する。特定のソフトウェア定義ＴＤＤ通信システムの場合、動的なＲＡＭ共有システムが事前設計される。ＲＡＭ共有ハンドラ７３のフラッシュメモリからＲＡＭへの共有動作のためのソフトウェア「機能定義」の例を下記に示す。
Void Ram_sharing_to_RAM (UINT16 section_index, UINT16) (copy_size)
【００６６】
上記に示す「section_index」又はカテゴリインデックスは既知であり、ＲＡＭ共有ハンドラ７３への入力として提供される。すべての他の必要とされる情報は、ＲＡＭ共有ハンドラ７３に記憶されている。
【００６７】
或る状態の単一割込みに応答するその状態の単一実行のための入力パラメータには、その状態の各実行に対してコピーするセクションインデックス及びセクションサイズが含まれる。フラッシュメモリからＲＡＭへのコピー機能において、ＲＡＭ共有マネジャーモジュール７３は、セクションインデックスに従ってフラッシュメモリからコピーするコードのセクションを選択し、また、コードのそのセクションのコピーされたサイズを追跡する。図２のＴＸ状態機械１３によるコードのコピーは、ＴＸ初期化コード、同期ヘッダＳＨＲ  ＴＸコード、及び物理ヘッダＰＨＲ  ＴＸコードを順に含む。ＲＸ状態機械１１によるコードのコピーは、ＲＸ初期化コード、プリアンブル検出（ＰＤ）コード、及び物理ヘッダＰＨＲ  ＲＸコードを順に含む。状態機械は、１つの「実行」よりも長く１つの状態に留まり得る。必要であれば、コピーされたコードが、複数のコードブロックに分割され得、その後、この状態の対応する「実行」の間、各ブロックが個々にフラッシュメモリからＲＡＭにコピーされ得る。フラッシュメモリからＲＡＭへのコピー機能はまた、コピーされたコードの複数のブロックを、ＲＡＭ７５の指定されたロケーションに「分配する」ことを含む。
【００６８】
前述のコピー機能により、ユーザは、或るブロック処理への単一割込みに応答して状態機械の単一実行に対してコピーするワード数を制御し得る。これにより、ユーザは、フラッシュメモリ７０からコピーされるコードを、１つの状態内の異なるブロック処理動作に分配し得る。表２は、単一変調ソフトウェア定義ＴＤＤ通信システムにおけるメモリ使用の例を示す。
【表２】
0006667524.tif 000005
【００６９】
システム初期化の間、表２の例におけるカテゴリＣＡＴ０のコードは、フラッシュメモリ７０（図５）からＲＡＭ７５（図５）にコピーされ、ＲＡＭ７５のその部分を常に占有する。図２のＴＸ（送信）状態機械１３におけるＴＸ初期化状態３４の場合、表２の例におけるカテゴリＣＡＴ１のコードがすべてＲＡＭ７５にコピーされる。図２の状態機械１０は、その後、矢印３５によって示されるように、ＳＨＲ  ＴＸ（同期ヘッダ）状態３７に移る。ＳＨＲ  ＴＸ状態３７は関連する低いＭＩＰＳを有し、カテゴリＣＡＴ２ｂのコードは現在のＲＡＭ使用とはオーバーラップしないので、カテゴリＣＡＴ２ｂのコードは、いくつかのデータ又は処理「ブロック」に分配される。状態３７におけるＴＸ同期ヘッダＳＨＲ  ＴＸを分配又は終了するために４つのデータブロックが必要とされる場合、このような各データブロックにおける０．１５ｋＢがＲＡＭ７５にコピーされる。状態３７（図２）における同期ヘッダＳＨＲ  ＴＸの最後のブロックが終了する（これは、最後のＳＨＲ  ＴＸブロックの終わり、又は状態４４における最初の物理層ヘッダＰＨＲ  ＴＸブロックの先頭に位置し得る）と、カテゴリＣＡＴ２ａのコードはＲＡＭ７５にコピーされ、ＲＡＭ７５においてカテゴリＣＡＴ１ａと「オーバーラップする」。その後、ＴＸ状態機械１３は、矢印４３によって示されるように、物理層ヘッダＰＨＲ  ＴＸに移る。
【００７０】
カテゴリＣＡＴ３はＲＡＭ７５においてカテゴリＣＡＴ２ａ＋ＣＡＴ１ｂに適合し得るので、フラッシュメモリ７０からのコピーは、物理層ヘッダＰＨＲ  ＴＸの処理又は実行の間は生じない。物理層ヘッダＰＨＲ  ＴＸは物理層ペイロードＰＳＤＵ  ＴＸより低い関連ＭＩＰＳを有するので、ＣＡＴ３コードは、ＰＨＲ  ＴＸの最後のブロックの前のブロックの実行の間、ＲＡＭ７５にコピーされる。現在の変調が、異なるＭＣＳ（変調コーディングセット）モード又はレートモードを含む場合、選択されたＭＣＳモード又はレートモードに関係する部分のみがフラッシュメモリ７１からＲＡＭ７５にコピーされる。表２の例では、カテゴリＣＡＴ３全体が１．５ｋＢ（キロバイト）であり得、選択されたＭＣＳに関係付けられる部分は０．７ｋＢに過ぎず、そのため、０．７ｋＢのみがフラッシュメモリ７０からＲＡＭ７５にコピーされる。
【００７１】
図２のＲＸ（受信）状態機械１１におけるＲＸ初期化状態１５の場合、カテゴリＣＡＴ４のすべてがＲＡＭ７５にコピーされ、その後、図２のＲＸ状態機械１１は、矢印１６によって示されるように、そのプリアンブル検出状態１７に移る。いくつかのソフトウェア定義ＴＤＤ通信システムでは、プリアンブル検出状態は、比較的高いＭＩＰＳ要件を有する。他のこのようなシステムにおいて、プリアンブル検出状態は、比較的低いＭＩＰＳ要件を有し得る。表２の例では、プリアンブル検出状態１７は比較的低いＭＩＰＳに関連すると仮定している。カテゴリＣＡＴ５ａは０．７ｋＢのサイズを有し、そのうち０．６ｋＢはカテゴリＣＡＴ４ａとオーバーラップし得、そのため、ＣＡＴ５ａの残りの０．１ｋＢ及びカテゴリＣＡＴ５ｂコードは、現在のＲＡＭ使用とオーバーラップしない。この０．５＋０．１ｋＢは、プリアンブル検出状態１７のプリアンブル検出プロセス１７の間、ＲＡＭ７５に分配又はコピーされる。この場合、次の状態に進むために、プリアンブル検出プロセスは少なくとも４つのデータブロックを必要とすると仮定しており、０．１５ｋＢが、このような各データブロックに対してフラッシュメモリ７０からＲＡＭ７５にコピーされる。
【００７２】
ＲＸ状態機械１１の状態２１における物理層ヘッダＰＨＲ  ＲＸの始まりで、カテゴリＣＡＴ５ａからのコードの０．６ｋＢがＲＡＭ７５にコピーされ、ＲＡＭ７５はカテゴリＣＡＴ４ａのコードによっても占有されている。その後、ＲＸ状態機械１１は、矢印２５によって示されるように、物理層ＰＨＲ  ＲＸコードを実行し又は走らせ始める。カテゴリＣＡＴ６のコードは、カテゴリＣＡＴ５ａ＋ＣＡＴ４ｂと同じＲＡＭ空間に適合され得るので、ＲＸ状態機械１１において状態２１の間、物理層ヘッダＰＨＲ  ＲＸの間に物理層ヘッダＰＨＲ  ＲＸ中にフラッシュメモリ７１からＲＡＭ７５へのコピーは生じない。物理層ヘッダＰＨＲ  ＲＸ状態２１は、物理層ペイロードＰＳＤＵ  ＲＸ状態２８において要求されるものより低いＭＩＰＳ要件を有するので、カテゴリＣＡＴ６のコードは、ＲＸ状態機械１１の状態２１における物理層ヘッダＰＨＲ  ＲＸからの最後のデータブロックの間にフラッシュメモリ７０からＲＡＭ７５にコピーされ得る。ＴＸ状態機械１３について先に説明したように、単一変調方式が、異なるＭＣＳ又はレートモードを有する場合、選択されたＭＣＳ又はレートモードに関係する部分のみが、フラッシュメモリ７０からＲＡＭ７５にコピーされる。表２の例では、ＴＸ状態機械１３及びＲＸ状態機械１１の組合せ動作の間、カテゴリＣＡＴ１、ＣＡＴ２、及びＣＡＴ３のコードは、カテゴリＣＡＴ４、ＣＡＴ５、及びＣＡＴ６とＲＡＭを共有し得る。
【００７３】
フラッシュメモリ７０から異なるデータブロックにコピーされるデータを分配する目的は、状態機械の動作の異なる段階における異なるデータブロック間の様々なＭＩＰＳ要件を均等化又は平衡化することである。分配方式は、ＲＡＭ使用と実行速度との間のトレードオフのため、異なる実装形態では異なり得る。例えば、いくつかのソフトウェア定義ＴＤＤ通信システムでは、最初の物理層ヘッダＰＨＲ  ＲＸブロックの継続時間は、同期ヘッダＳＨＲ  ＲＸによって実現される同期のため、他の状態の継続時間より短く、フラッシュメモリ７１からＲＡＭ７５にコピーされるより少ないデータが最初のＰＨＲ  ＲＸブロックにおいて分配される。
【００７４】
図６は、（ａ）各カテゴリがＲＡＭにいつコピーされるべきか、及び、（ｂ）そのカテゴリにおけるコードが、ＲＡＭの特定のロケーションで異なる時点で、他のカテゴリにおけるコードとどのようにして動的に共有されるかに従って、表１及び図４に示すカテゴリ化のすべてをどのように行うかを示す。図６では、フローチャート８０が、図２のＴＸ状態機械１３及びＲＸ状態機械１１が実行されるときにフラッシュメモリ７０に初期的に記憶されるプログラムコード及び定数値コードの様々な所定のカテゴリが、その後どのようにして個々にＲＡＭ７５にコピーされるかを示す。
【００７５】
ディシジョンラベル又はプロセス８１において、システムオペレーティングプログラムは、図２の状態機械１０がＴＸ又はＲＸ初期化を実施しているかどうかを判定する。この判定が図６の矢印８２によって示されるように肯定である場合、実行される特定の各プログラムが、図６のディシジョンツリー８０を介して、そのプログラムがどの「共有」カテゴリに属するかを決定する。したがって、ディシジョンツリー８０は、どのプログラムコードが図４及び表１のどのカテゴリに属するかを決定する。各カテゴリのコードがフラッシュメモリ７１からＲＡＭ７５にコピーされる時点は表１において定義されている。
【００７６】
ディシジョンラベル又はプロセス８１の判定が矢印８３によって示されるように否定である場合、プログラムは、ディシジョンラベル又はプロセス８４に移り、プログラムの次の工程が、矢印８５によって示されるようにＴＸ状態機械１３によって実施されるか、又は矢印８６によって示されるように図２のＲＸ状態機械１１によって実施されるかを判定する。次の工程が矢印８５によって示されるようにＴＸ状態機械１３によって実施される場合、プログラムは、ディシジョンラベル又はプロセス８７に移り、ＴＸ状態機械１３が同期ヘッダＳＨＲ  ＴＸを現在実行しているかどうかを判定する。
【００７７】
ディシジョンラベル又はプロセス８７の判定が、矢印８９によって示されるように肯定である（即ち、ＴＸ状態機械１３が同期ヘッダＳＨＲ  ＴＸを実行している）場合、ラベル又はプロセス９１は、ＴＸ状態機械１３が、矢印９３によって示されるように同期ヘッダＳＨＲ  ＴＸのみを実行するか、又は矢印９４によって示されるように同期ヘッダＳＨＲ  ＴＸ及び物理層ＰＨＲ  ＴＸＳＨＲ  ＴＸ両方を実行するか、或いはＳＨＲ  ＴＸ、ＰＨＲ  ＴＸ、及びＰＳＤＵ  ＴＸを含めてすべてのＴＸ状態を実行するかを判定する。
【００７８】
矢印９３の場合、ＴＸ状態機械１３は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ１ａをコピーする。矢印９４の場合、ＴＸ状態機械１３は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ１ｂをコピーする。ディシジョンラベル又はプロセス９１の判定が、矢印９５によって示されるように、ＴＸ状態機械１３が、同期ヘッダＳＨＲ  ＴＸ、物理層ＰＨＲ  ＴＸ、及び物理ペイロードＰＳＤＵ  ＴＸを含めてすべての状態を実行することである場合、ＴＸ状態機械１３は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ１ｃをコピーする。後者の場合、システムオペレーティングプログラムはラベル又はプロセス９８に入る。
【００７９】
ラベル又はプロセス９８では、ＴＸ状態機械１３は、ＴＸ状態機械１３がどの「ラン（run）状態」を実行しようとしているかを確認する。ディシジョンラベル又はプロセス９８の判定が、矢印９９によって示されるように、ＴＸ状態機械１３が物理層ＰＨＲ  ＴＸのみを実行することである場合、ＴＸ状態機械１３は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ２ａをコピーする。ディシジョンラベル又はプロセス９８の判定が、矢印１００によって示されるように、ＴＸ状態機械１３が物理層ＰＨＲ  ＴＸ及びペイロードＰＳＤＵ  ＴＸ両方を実行することである場合、ＴＸ状態機械１３は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ２ｂをコピーする。
【００８０】
上述のディシジョンラベル又はプロセス８４が、矢印８６によって示されるように、次の工程がＲＸ状態機械１１によって実施されるべきであると判定する場合、ＲＸ状態機械１１は、ディシジョンラベル又はプロセス８８に移り、ＲＸ状態機械１１がプリアンブル検出プロセスを実行しようとしているかを判定する。ディシジョンラベル又はプロセス８８の判定が、矢印１０１によって示されるように肯定である場合、ＲＸ状態機械１１は、ラベル又はプロセス１０３に移って、矢印１０４によって示されるように、ＲＸ状態機械１１がプリアンブル検出ＰＤのみを実行しようとしているかを判定する。そうである場合、ＲＸ状態機械１１は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ４ａのコードをコピーする。ディシジョンラベル又はプロセス１０３の判定が、矢印１０５によって示されるように、ＲＸ状態機械１１がプリアンブル検出ＰＤ及び物理ヘッダＰＨＲ  ＲＸ両方を実行することである場合、ＲＸ状態機械１１は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ４ｂをコピーする。ディシジョンラベル又はプロセス１０３の判定が、矢印１０６によって示されるように、ＲＸ状態機械１１がすべてのあり得るＲＸ状態を実行することである場合、プログラムはラベル又はプロセス１０７に移る。
【００８１】
ディシジョンラベル又はプロセス８８の判定が、矢印１０２によって示されるように、否定である（即ち、ＲＸ状態機械１１がプリアンブル検出ＰＤを実行しようとしていない）場合、ＲＸ状態機械１１は、ディシジョンラベル又はプロセス１１０に移り、物理ヘッダＰＨＲ  ＲＸが実行されるべきかを判定する。この判定が矢印１１１によって示されるように肯定である場合、ＲＸ状態機械１１は、ディシジョンラベル又はプロセス１０７に移る。ディシジョンラベル又はプロセス１０７では、ＲＸ状態機械１１は、ＲＸ状態機械１１がどのラン状態を実行するかを判定するために確認する。ディシジョンラベル又はプロセス１０７の判定が、矢印１０８によって示されるように、ＲＸ状態機械１１が物理層ＰＨＲ  ＲＸのみを実行することである場合、ＲＸ状態機械１１は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ５ａをコピーする。ディシジョンラベル又はプロセス１０７の判定が、矢印１０９によって示されるように、ＲＸ状態機械１１が物理層ＰＨＲ  ＲＸ及びペイロードＰＳＤＵ  ＲＸ両方を実行することである場合、システムプログラムは、カテゴリＣＡＴ５ｂをフラッシュメモリ７１からＲＡＭ７５にコピーする。
【００８２】
ディシジョンラベル又はプロセス１１０の判定が矢印１１２によって示されるように否定である場合、ＲＸ状態機械１１は、フラッシュメモリ７１からＲＡＭ７５にカテゴリＣＡＴ６をコピーする。
【００８３】
後に説明する表３は、変調１（ＭＯＤ１）、変調２（ＭＯＤ２）、及び変調３（ＭＯＤ３）と称する３つの異なる種類の変調を有するソフトウェア定義ＴＤＤマルチ変調通信システムにおけるＲＡＭ使用の例を示す。マルチ変調とは、システムのモデムが複数の異なるタイプの「プリアンブル」をＦＳＫ、ＯＦＤＭ、及びＤＳＳＳなどの異なる種類の変調に対して同時に検出し得ることを意味する。
【００８４】
ＴＸ動作の場合、ソフトウェア定義ＴＤＤマルチ変調通信システムは、一度に単一の選択された種類の変調のみを走らせる。ＴＸ状態機械のこの態様は、単一変調システム又はマルチ変調システムのいずれの場合でも同じである。
【００８５】
特定の通信リンクにおいて、複数の異なる信号が異なる種類の変調を有することがある。単一通信情報パッケージは、同期ヘッダＳＨＲ、変調を符号化する物理層ヘッダＰＨＲ、及び物理層ペイロードを含むその他の情報を含む。例えば、ＦＳＫ変調が特定の信号に対して用いられていることが既知である場合、同期ヘッダＳＨＲ内の情報を検出するため、及びその後、得られる相関信号において、対応するピークを検出するために、ＦＳＫ技術を用いなければならない。その後、物理ヘッダＰＨＲが復号され、図２のＲＸ状態機械１１に示される動作の残りの部分が実施される。
【００８６】
しかし、ＦＳＫ及びＯＦＤＭなどの２つの信号変調オプションが同じ信号内に同時に存在し得る場合、図２のＲＸ状態機械１１は、受信した同期ヘッダがＦＳＫヘッダなのかＯＦＤＭヘッダなのかはあらかじめ分からない。この場合、ＲＸ状態機械１１は、ＦＳＫ同期ヘッダ又はＯＦＤＭ同期ヘッダのいずれが存在するかを検出するために、２つのプリアンブル動作を並列に実施する必要がある。
【００８７】
先に説明した図４の様々なカテゴリは、マルチプル変調の場合に、ソフトウェア定義ＴＤＤ通信システムのためのＴＸ及びＲＸ信号が、単一変調のみを有するか又はマルチ変調を有するかに関わらず、図２のＲＸ状態機械１１におけるプリアンブル検出状態１７が図７の並列マルチプルプリアンブル検出状態１７Ａで置き換えられることを除いて、概ね、同じ種類の状態機械動作にも対応する。ここで、受信動作は、存在する特定の種類の変調を検出するために、複数の変調オプション毎に１つの、すべて並列に走る「ｎ」個の複数プリアンブル検出ＭＯＤ１、ＭＯＤ２、．．．、ＭＯＤｎを含む。マルチプル変調動作の場合、図７のＰＨＲ  ＲＸ物理ヘッダ状態２１Ａは、図２の物理ヘッダ状態２１に対応する。図２のＲＸ初期化１５は、図７のＲＸ初期化１５Ａに基本的に類似する。
【００８８】
より具体的には、図７は、ソフトウェア定義ＴＤＤマルチ変調通信システムのためのプリアンブル検出（ＰＤ）状態機械７７を示す。ＰＤ状態機械７７は、ＲＸ初期化状態１５Ａを含み、また、それぞれ、異なる変調ＭＯＤ１、２、．．．、ｎのためのｎ個のプリアンブル検出セクション１７−１、２、．．．、ｎを含むプリアンブル検出システム１７Ａを含む。プリアンブル検出モジュール又は状態１７Ａには、ＰＨＲ  ＲＸ状態２１Ａが続き、ＰＨＲ  ＲＸ状態２１Ａは現時点で検出されている変調に対応する。図７に示すようなプリアンブル検出状態１７ＡにおけるＲＸ動作の場合、変調１、２、．．．、ｎのためのマルチプルプリアンブル検出（ＭＰＤ）が並列に走る。プリアンブル１７−１、２、．．．、ｎの１つが検出された後、ＲＸ状態機械は、選択されたプリアンブルに対応する図２のＰＨＲ  ＲＸ状態２１又は図２のＰＳＤＵ  ＲＸ状態２８に進む。
【００８９】
各種類の変調の各カテゴリに対するサイズ（キロバイト単位）が、下記で表３に示されている。（表３では、同じ技術が各々に適用されるのでプログラムコードは定数値コードと区別されない。）
【表３】
0006667524.tif 000006
【００９０】
システム初期化の間、カテゴリＣＡＴ０が、フラッシュメモリ７１からＲＡＭ７５にコピーされ、ＲＡＭ７５のその部分を常に占有し得る。ＴＸ動作に対し、この例の場合、変調ＭＯＤ１が選択されると仮定される。ＴＸ初期化の間、カテゴリＭＯＤ１  ＣＡＴ１がＲＡＭ７５にコピーされ、その後、ＲＸ状態機械はＭＯＤ１  ＳＨＲ  ＴＸ状態に進む。この例では、カテゴリＣＡＴ２ｂの０．５ｋＢが、現在のＲＡＭ使用（カテゴリＣＡＴ２ａ＋カテゴリＣＡＴ２ｂの０．２ｋＢはカテゴリＣＡＴ１ａに適合され得る）とオーバーラップせず、そのため、フラッシュメモリ７０からコピーされるカテゴリＣＡＴ２ｂの０．５ｋＢは、いくつかのデータブロックに分配される。状態ＳＨＲ  ＴＸによる処理を終了させるために４つのデータブロックが必要とされる場合、各データブロックの０．１２５ｋＢがＲＡＭ７５にコピーされる。カテゴリＣＡＴ２ａ及びその残りの０．２ｋＢは、後にＲＡＭ７５にコピーされる。ＳＨＲ  ＴＸ状態の最後のデータブロックが完了すると、カテゴリＣＡＴ２ａ及びカテゴリＣＡＴ２ｂの残りの０．２ｋＢが、ＲＡＭ７５にコピーされ、ＲＡＭにおいてカテゴリＣＡＴ１ａとオーバーラップする。その後、ＴＸ状態機械は、ＰＨＲ  ＴＸ状態に進む。カテゴリＣＡＴ３は、組合されたカテゴリＣＡＴ２ａ及びカテゴリＣＡＴ１ｂに適合され得るので、ＰＨＲ  ＴＸ状態の間フラッシュメモリ７０からＲＡＭ７５へのコピーは生じず、また、ＰＨＲ  ＴＸ状態のＭＩＰＳ要件がＰＳＤＵ  ＴＸ状態のＭＩＰＳ要件より小さいので、ＰＨＲ  ＴＸ状態の最後のデータブロックの間、カテゴリＣＡＴ３がＲＡＭ７５にコピーされる。選択された変調が、異なるＭＣＳ（変調コーディングセット）又はレートモードを有する場合、選択されたＭＣＳ又はレートモードに関係するカテゴリＣＡＴ３の部分のみが、フラッシュメモリ７０からＲＡＭ７５にコピーされる。例えば、カテゴリＣＡＴ３が１ｋＢであり得、選択されたＭＣＳ（ＭＣＳ１など）に関係するカテゴリが０．７ｋＢのみである場合、０．７ｋＢのみがフラッシュメモリ７０からＲＡＭ７５にコピーされる。
【００９１】
ＲＸ動作に対し、この例の場合も、変調ＭＯＤ１が選択されると仮定される。ＲＸ初期化の間、カテゴリＣＡＴ４  ＭＯＤ１、ＣＡＴ４  ＭＯＤ２、及びＣＡＴ４  ＭＯＤ３のすべてがＲＡＭ７５にコピーされ、その後、ＲＸ状態機械はプリアンブル検出モードに進む。マルチプル変調ソフトウェア定義ＴＤＤ通信システムの場合、複数のプリアンブル検出が並列に走っているので、プリアンブル検出モードは比較的高いＭＩＰＳ要件を有する。また、任意の特定の変調のカテゴリＣＡＴ５が、ＲＡＭにおいてＭＯＤ１  ＣＡＴ４及びＭＯＤ２  ＣＡＴ４と「オーバーラップされ」得、そのため、プリアンブル検出の間のフラッシュメモリからＲＡＭへのコピーは、プリアンブル検出の間には生じない。ＰＨＲ  ＲＸ状態の始めに、カテゴリＣＡＴ５がフラッシュメモリ７０からＲＡＭ７５にコピーされ、その後、ＲＸ状態機械はＰＨＲ  ＲＸコードを実行し始める。カテゴリＣＡＴ５は、カテゴリＭＯＤ１  ＣＡＴ４又はカテゴリＭＯＤ２  ＣＡＴ４とオーバーラップし得る。カテゴリＭＯＤ３  ＣＡＴ６が、カテゴリＭＯＤ１  ＣＡＴ４及びカテゴリＭＯＤ２  ＣＡＴ４からの残りの空間に適合され得るので、カテゴリＭＯＤ３  ＣＡＴ４は、カテゴリＭＯＤ３  ＣＡＴ５ａとオーバーラップする必要がない。その代わりに、ＭＯＤ３  ＣＡＴ４は、ＭＯＤ３  ＣＡＴ５の後、カテゴリＭＯＤ１  ＣＡＴ４及びカテゴリＭＯＤ２  ＣＡＴ５からの残りとオーバーラップし得る。ＭＯＤ３  ＣＡＴ６のコピーは、ＲＸ状態機械のＰＨＲ  ＲＸ状態の各データブロックに分配され得る。この例では、ＰＨＲ  ＲＸ状態において３つのデータブロックがカテゴリＭＯＤ３に必要とされると仮定される。ＰＨＲ  ＲＸ状態の始めにカテゴリＭＯＤ３  ＣＡＴ４がコピーされるので、第１のデータブロックはカテゴリＭＯＤ３  ＣＡＴ６をコピーしない。カテゴリＭＯＤ３  ＣＡＴ６は、第２及び第３のデータブロックの間にのみコピーされる。各データブロックの間、フラッシュメモリ７１からＲＡＭ７５に０．３ｋＢがコピーされる。選択された変調が、異なるＭＣＳ（変調コーディングセット）又はレートモードを有する場合、選択されたＭＣＳ又はレートモードに関係する部分のみがフラッシュメモリ７０からＲＡＭ７５にコピーされる。選択された変調が、異なるＭＣＳ（変調コーディングセット）又はレートモードを有する場合、選択されたＭＣＳ又はレートモードに関係する部分のみがフラッシュメモリ７０からＲＡＭ７５にコピーされる。
【００９２】
コードのデータブロックを２つのピースに分けることが極めて困難である場合、ＴＸ初期化の間、カテゴリＭＯＤ１  ＣＡＴ１ａを用いるために代替の手順がカテゴリＭＯＤ１  ＣＡＴ２ａに割り当てられ、そのため、カテゴリＭＯＤ１  ＣＡＴ２ｂ全体はＭＯＤ１  ＣＡＴ１ａとオーバーラップしない。その後、カテゴリＭＯＤ１  ＣＡＴ２ｂの０．７ｋＢのコピーが各データブロックに分配され得る。ＳＨＲ  ＴＸ状態を終了するために４つのデータブロックが必要とされる場合、各データブロックに対してフラッシュメモリ７１からＲＡＭ７５に０．１７５ｋＢがコピーされる。ＳＨＲ  ＴＸ状態の最後のブロックが完了すると、カテゴリＣＡＴ２ａ（これはカテゴリＣＡＴ１ａとオーバーラップする）がフラッシュメモリ７０からＲＡＭ７５にコピーされる。その後、ＴＸ状態機械はＰＨＲ  ＴＸ状態に入る。
【００９３】
図９は、物理層ペイロードＰＳＤＵ  ＲＸの３つの異なる変調を同時に走らせ得るＲＸ（レシーバ）状態機械１４０の「トップレベル」表現を示す。一方、図２のより低レベルの表現は、処理されている物理層ペイロードＰＳＤＵ  ＲＸの単一変調を走らせ得るに過ぎない（図２参照）。それぞれ、ラベル１２３、１１８、及び１２８のＴＯＰ＿ＳＴＤＹ＿ＭＯＤ１、ＴＯＰ＿ＳＴＤＹ＿ＭＯＤ２、及びＴＯＰ＿ＳＴＤＹ＿ＭＯＤ３という用語において、用語「ＳＴＤＹ」は「定常状態」を意味し、用語「ＴＯＰ」は状態機械１４０の「トップレベル」表現を指し、用語「ＭＯＤ」は「変調」を意味する。（「定常状態」は、ＰＨＲ  ＲＸ及びＰＳＤＵ  ＲＸに対する状態を意味する。プリアンブル検出では、入ってくる信号がいつ到着するか既知ではない。プリアンブルが検出された後、レシーバは、こういった信号に同期し、その後「定常状態」に入る。「定常状態」は、状態ＰＨＲ  ＲＸ及びＰＳＤＵ  ＲＸを含む。）
【００９４】
図９のラベル又はプロセス１１において、ＲＸ状態機械１４０は、図２におけるＲＸ初期化状態１５のプロセスに類似するＲＸ初期化状態１１を実施し、その後、図２におけるプリアンブル検出状態１７に類似する、ＳＦＤＤ検出と呼ばれるプリアンブル検出状態１７に進む。ただし、状態機械１４０では、３つのプリアンブル検出プロセスが同時に走っている。ＭＯＤ１など、これらの３つの変調の１つがプリアンブル検出状態１７に従って検出されると、マルチプル変調ＲＸ状態機械１４０は、検出された変調に対応する状態に進む。この場合、ＭＯＤ１  ＳＦＤプリアンブル検出（MOD2 SFD PREAMBLE DETECTED）の矢印１２１によって示されるＴＯＰ＿ＳＴＤＹ＿ＭＯＤ１状態１２３に進む。その後、マルチプル変調ＲＸ状態機械は、ＴＯＰ＿ＳＴＤＹ＿ＭＯＤ１状態が処理されている唯一の状態であるという意味で、「定常状態」モードで機能する。処理されている情報パッケージにおける物理層ペイロードＰＳＤＵ  ＲＸの処理が、矢印１１９によって示されるように成功裏に完了した場合、マルチプル変調ＲＸ変調機械１４０はプリアンブル検出状態１７に戻り、図２の単一変調ＲＸ状態機械１１の場合と同じように、さらなる処理が継続する。しかし、図９の矢印１２４によって示されるようにエラーが生じる場合、マルチプル変調ＲＸ状態機械１４０は、エラーハンドリング状態１２５に進み、その後、矢印１２６によって示されるように、図９のＴＯＰ＿ＩＤＬＥ状態１２に進む。
【００９５】
もし図４のブロックがすべて「垂直にスタック」されるとすると、これは、従来技術のようにフラッシュメモリ内のコードがすべて初期的にＲＡＭにコピーされるとする場合であるが、このスタックの高さが極めて高くなり、これはコストのかさむ物理的なＲＡＭが極めて大量に存在することを表す。これに対して、図４は、状態機械の異なる状態の間のＲＡＭの共有又は「オーバーラップ」が、提供されるべきコストのかさむＲＡＭをはるかに少量とし得る（図４では全高によって示される）という実質的な利点をどのように提供するかを示す。このように、図２〜図６の説明した実施形態によって、ソフトウェア定義ＴＤＤ通信システムにおけるＲＡＭのコストが大幅に低減される。水平軸は、どのようにして異なるカテゴリが同じＲＡＭ空間において同時に現れないかを示す。
【００９６】
特許請求の範囲内で、説明した実施形態における改変が可能であり、他の実施形態が可能である。
【００９７】
例えば、この基本的な手法は周波数分割二重（ＦＤＤ）実装形態にも適用可能である。図１０は、動的なＲＡＭ共有がＦＤＤシステムにおいて用いられる代替の実施形態の特徴を示す。ＴＤＤ動作とＦＤＤ動作の主な差異は、ＴＤＤ通信システムではＴＸ送信及びＲＸ受信が常に異なる時点で生じる一方、ＦＤＤ通信システムでは、ＴＸ送信及びＲＸ受信が同時に生じ得、したがって、ＦＤＤシステムにおける同時のＴＸ送信／ＲＸ受信のＲＡＭ使用が動的に共有され得ないことである。しかし、ＦＤＤ通信システムでは、ＴＤＤ動作について先に説明したものと本質的に同じ方法を用いて、動的なＲＡＭ共有が個々のＴＸ状態機械１３内と個々のＲＸ状態機械１１（図２）内との異なる状態間で用いられ得る。
【００９８】
図１０は、図４に極めて類似しており、ＦＤＤシステムにおける動的なＲＡＭ共有を図示する。このＦＤＤシステムは、図２に示すＴＸ状態機械１３及びＲＸ状態機械１１並びに図５に示すＲＡＭ共有マネジャー７０を含み、表１に類似する表（図示せず）に従って、及び、図６のディシジョンツリーフローチャート８０に類似するディシジョンツリーに従って動作する。図４にあるように、図１０の垂直次元は、様々なＲＡＭ共有カテゴリによってどのくらいの量のＲＡＭ空間が使用されるかを示し、水平次元は、図２のＴＸ状態機械１３及びＲＸ状態機械１１の異なる一連の状態が実行される時点又は順を示す。図４の様々なカテゴリを指定するために用いられる参照数字は、類似のカテゴリを指定するために図１０で用いられる参照数字と同じであるが、図１０では、各参照数字に「Ａ」が付加されている。図１０において図示するＦＤＤ通信システムの動的なＲＡＭ割当てと、図４において図示するＴＤＤ通信システムの動的なＲＡＭ割当てとの主な差異は、ＴＸ状態機械１３及びＲＸ状態機械１１を同じ時間間隔の間走らせてはならないＴＤＤ通信システムとは対照的に、ＦＤＤ通信システムでは、ＴＸ状態機械１３及びＲＸ状態機械１１が同時に走り得ることである。ＴＸ状態機械１３及びＲＸ状態機械１１の構造及び動作は、その他の点ではＦＤＤ通信システムとＴＤＤ通信システムで本質的に同じである。
【００９９】
従って、ＦＤＤ通信システムにおいて、ＲＡＭ共有カテゴリの全て及びこれらのカテゴリとＴＸ状態機械１３及びＲＸ状態機械１１との関係がＴＤＤ通信システムの場合と本質的に同じであるが、「ＴＸ  ＲＡＭ」（即ち、ＴＸ状態機械１３の実行の間用いられるＲＡＭのセクション）及び「ＲＸ  ＲＡＭ」（即ち、ＲＸ状態機械１１の実行の間用いられるＲＡＭのセクション）が互いに「オーバーラップし」得ない。例えば、ＦＤＤ通信システムにおいて、時間間隔「Ｔ１」の間フラッシュメモリから「ＲＡＭセクションＡ」にコピーされるＴＸプログラムコードは、後に、任意の時間間隔の間、いかなるＲＸプログラムコードとも「ＲＡＭセクションＡ」において動的に共有され得ない。これは、その時間間隔の間、ＴＸ状態機械１３及びＲＸ状態機械１１両方が走り得るからである。しかし、フラッシュメモリから「ＲＡＭセクションＢ」にコピーされる何らかの「ＴＸプログラムコードＸ１」が、後に、ＴＸ状態機械１３が「ＴＸプログラムコードＸ１」の実行を終了した後、他の「ＴＸプログラムコードＸ２」と動的に共有され得、同様に、フラッシュメモリから「ＲＡＭセクションＢ」にコピーされ得る何らかの「ＲＸプログラムコードＹ１」が、後に、ＲＸ状態機械１１が「ＲＸプログラムコードＹ１」の実行を終了した後、他の「ＲＸプログラムコードＹ２」と動的に共有され得る。
【図１】
0006667524.tif 000007
【図２】
0006667524.tif 000008
【図３】
0006667524.tif 000009
【図４】
0006667524.tif 000010
【図５】
0006667524.tif 000011
【図６】
0006667524.tif 000012
【図７】
0006667524.tif 000013
【図８】
0006667524.tif 000014
【図９】
0006667524.tif 000015
【図１０】
0006667524.tif 000016