(58)【調査した分野】(Int.Cl.,DB名)
【技術分野】
【0001】
本開示は、概してソフトウェア定義又はソフトウェアプログラマブルTDD(時分割二重)通信システムに関し、より具体的には、フラッシュメモリからコピーされるプログラムコード及び/又はデータコードを、プログラムコードの各カテゴリがフラッシュメモリからRAM(ランダムアクセスメモリ)にいつコピーされるかに従って、また、利用可能なRAM空間がフラッシュメモリからコピーされるコードの他のカテゴリとどのように共有されるかに従って、カテゴリ化することによってRAMを動的に共有するための技術及び構造に関する。TDD(時分割二重)という用語は、順方向(即ち、送信)通信リンクが、同じ周波数帯において送信リンク及び受信リンクに対して異なるタイムスロットを割り当てることによって、逆方向(即ち、受信)通信リンクから時間に関して分離される通信システムを指す。ソフトウェア定義通信システムは、DSP(デジタル信号プロセッサ)又はFPGA(フィールドプログラマブルゲートアレイ)などのプログラマブルデバイスにおいて、構成要素及び機能がソフトウェアによって実装される通信システムである。ソフトウェア定義通信システムは、SDR(ソフトウェア定義無線)システムなどのワイヤレス通信システム、又はソフトウェア定義電力線通信システムなどの有線通信システムであり得る。
【0002】
図1は、双方向デジタルバス3によってアナログ・デジタル及びデジタル・アナログ変換回路要素4に結合されるDSP2を含む、基本的なソフトウェア定義通信システムを示す。変換回路要素4は、双方向デジタルバス5によって従来のRFフロントエンド回路要素6に結合され、RFフロントエンド回路要素6はRFアンテナ7にも接続される。相当量の信号処理が、しばしば、特定用途ハードウェアで実施されるのではなく、汎用プロセッサ(図示せず)にハンドオーバーされる。この基本的なソフトウェア定義通信システムの目的は、典型的に、DSP2を用いて、トランスミッタベースバンド信号を生成し、及び、受信されるベースバンド信号を処理することである。或るソフトウェア定義実装が、通信システムの構成及び改変における高度な柔軟性を提供する。「波形」と称することがある、広範囲にわたって異なる無線プロトコルが、単一プラットフォーム(例えば、集積回路チップの特定のセット)に、このプラットフォームにおいて異なるソフトウェアを用いることによって、適合され得る。
【0003】
ソフトウェア定義通信システムは、典型的に、RAM(ランダムアクセスメモリ)、フラッシュメモリ、及びROM(読出し専用メモリ)を含む、異なる種類のメモリを含む。RAMは、最も高価な種類のメモリであり、最速の書込み及び読出しアクセス速度を有する。フラッシュメモリは、RAMより安価であるが、アクセス速度がかなり遅い。ROMは、最も安価な種類のメモリであり、RAMの読出しアクセス速度に匹敵する高速読出しアクセス速度を有するが、新たなデータをROMに書き込むことはできない。定数値コード及びプログラムコードがフラッシュメモリに記憶され得、これらは、DSP又はその他のプロセッサによってRAMから直接的にアクセスされ得る一方で、この技術は高価なRAMの必要量を低減させる。代替として、定数値コード及びプログラムコードは、初期的にフラッシュメモリに記憶され得、その後、RAMにコピーされ得、その後、DSP又はその他のプロセッサによって直接的にアクセスされ得る。この技術は、比較的速い動作速度を提供するが、よりコストの高いRAMがより大量に必要とされるので、比較的コストがかかる。
【0004】
「MIPS」という術語は、1秒当たり100万個の命令を意味し、プログラムコードの特定の部分に対する演算速度要件、及び適切なDSPの演算パワーを示すために用いられる。ソフトウェア定義通信システムのコストを低減するために、演算能力に対する「余裕(headroom)」をあまり多く取ることなく、アプリケーションにちょうど適合するDSPを選択することが一般慣行である。RAMの従来の動的共有では(例えば、ウェブサイトhttp://en.wikipedia.org/wiki/C_dynamic_memory_allocationにおける引用ウィキペディア参考文書で説明されるように)、プログラミングコード及び定数値コードが実行される前に、プログラミングコード及び定数値コードはすべてフラッシュメモリからRAMにコピーされる。
【0005】
ソフトウェア定義TDD通信システムでは、TX状態機械13及びRX状態機械は決して同時に走らない。データメモリセクションが、状態機械の異なる状態間でRAMの様々なカテゴリを共有するが、プログラムコードは、状態機械の異なる連続する状態に対してプログラムコードの異なるセクションを記憶するためにRAMの特定のセクションが用いられるという意味で、RAMにおいて「オーバーラップ」しない。これは、プログラムコードセクションに対する動的RAM共有の「オーバーヘッド」によるものである。動的RAM共有を実現するために、プログラムセクションは、このプログラムセクションのコードを実行する前に、フラッシュメモリからRAMにコピーされる必要がある。このようなコピーには、かなりの付加的な時間量が必要とされる。従来の技術では、プログラムコードは、そのうちの任意のものが実行される前に、一度にすべてコピーされる。しかし、通常、プログラムコードの一部は、極めて高速に、即ち、極めて高いMIPSレートで、実行される必要がある。そのため、プログラムコードはフラッシュメモリからRAMにすべて一度にはコピーされ得ない。その結果、従来のソフトウェア定義TDD通信システムは、動的RAM共有技術を用いない。その代わりに、スタティックRAM割当てが用いられる。
【0006】
ソフトウェア定義TDD通信システムの動作は極めて「タイミング集約的」であることを理解されたい。そのため、
図2の状態機械10に関連するプログラムをRAMにおいて実行する必要がある。これは、RAMの読出し及び書込み動作がいずれも、いかなるフラッシュメモリの読出し及び書込み動作よりはるかに高速だからである。先に述べたように、複雑な状態機械(例えば、後に説明する
図2に示す種類の状態機械)の状態毎の動作において、従来のソフトウェア定義TDD通信システムでは、フラッシュメモリからRAMにソフトウェアプログラムをコピーする必要があった。これは、多数の必要とされるフラッシュメモリアクセス動作に必要とされる時間量が許容不能となるからである。その結果、従来のシステムでは、システム動作の最初にプログラムコードすべてがフラッシュメモリからRAMにコピーされる必要があり、これによりコストのかかるRAMが大量に用いられることが必要とされていた。遺憾ながら、RAMの従来の動的共有をソフトウェア定義通信システムにおいて用いると、フラッシュメモリと比べてRAMが比較的高コストなことから、許容し得ないほど高価になってしまう。
【0007】
ワイヤレスネットワークにおける複数タイプの変調を含むマルチプル変調機器を用いることが、Schmidlらによる同一出願人に譲渡された、2013年8月8日に公開された「複数変調を用いるワイヤレスネットワーク」というタイトルの米国特許出願公開番号2013/0201965に開示されている。
【発明を実施するための形態】
【0036】
例示の実施形態により、ソフトウェア定義TDD通信システムの異なる状態機械状態間のRAMの動的共有のための方法及び構造が提供される。本明細書で用いられるRAMの「共有」という用語は、物理的なRAMアドレスのすべてではなく一部が、プログラムコードの或るカテゴリ及び一定値コードによって用いられる目的で確保されることを意味し、これらのカテゴリは、それぞれ、(a)或る指定されたカテゴリのプログラムコードがフラッシュメモリからRAMにコピーされるべき時点に従って、及び、(b)特定の時間において利用可能な物理的なRAMの量に従って、前もって決定されている。これらの様々なカテゴリは、対応する特定の状態を実行するためのプログラムコード及び/又は定数値コード変数を記憶するために、状態機械のそれぞれ対応する特定の状態の間、用いられる。プログラムコードは、実行されるべき命令を含み、定数値コード変数データは、典型的に、ルックアップテーブル及びフィルタ係数のようなものを含む。
【0037】
例示の実施形態は、プログラムコードのための動的な共有に注目しており、状態機械の特徴に、特に、状態機械の各状態が、状態機械が次の状態に移る前に完全に実行されるという事実に基づいている。
【0038】
動的RAM共有割当ては、いくつかの状態が比較的低いMIPSレートしか必要としない状態機械を用いることによって実現され、これにより、それらの状態において何らかの特定のプログラムコードがフラッシュメモリからRAMにコピーされ得る。
【0039】
図2は、ソフトウェア定義TDD(時分割二重)通信システムのための状態機械10を図示する。状態機械10は、RX(レシーバ)状態機械11と通信により結合されるTX(トランスミッタ)状態機械13を含む。送信システム又はトランスミッタによって送信される「情報パッケージ」は、3つの部分に符号化され得る。情報パッケージの最初の部分は「同期ヘッダ」SHRと呼ばれる。レシーバのための同期ヘッダSHR RXは、トランスミッタにより送信される信号の始まりを検出するために用いられる。レシーバは送信される信号が始まるときを「知らず」、そのため、トランスミッタは、情報パッケージの最初の部分として同期ヘッダSHR RXを送信し、次いで「物理層ヘッダ」PHR RXを送信する。
【0040】
物理層ヘッダPHR RXは、様々なパラメータ、情報パッケージの残りを復号するために用いられ得る変調情報及びパラメータを含み得る。レシーバは、送信された情報パッケージの始まりにおける受信した同期ヘッダSHR RXを「検出する」ことによって、トランスミッタに「同期する」。この検出を容易にするために、レシーバによって受信された同期ヘッダSHR RXは、典型的に、反復的パターンを含む。この反復的パターンは、送信される情報パッケージの始まりにおける同期ヘッダに位置する1及び0の疑似ランダムシーケンスを含み得る。その後、レシーバは、受信した同期ヘッダにおける反復的コードに対して相関プロセスを相関信号のピーク値が得られるまで実施し、このピーク値は、情報パッケージにおける送信及び受信される信号の始まりをマーキングする。
【0041】
トランスミッタは、同期ヘッダSHR RX、その後続く物理層PHR RX、及びその後続く物理層ペイロードPSDU RXを含む情報パッケージをすべて単一バーストで送信する。物理層PHR RXは、典型的に、情報を復号するためのデジタル信号処理情報、及び変調情報、並びに情報パッケージの送信を制御する管理情報を含む。
【0042】
レシーバ状態機械の「プリアンブル検出」(PD)部分は、受信された「物理層ペイロード」PSDU RXに含まれる「実際の」メッセージの始まりが生じる時点を決定するために、トランスミッタによって送信され、レシーバによって受信された同期ヘッダを検出する部分である。
【0043】
レシーバは、送信された情報パッケージの始まりにおける、送信された同期ヘッダSHR RXを検出し、受信した物理層ヘッダを復号して、情報パッケージの残りを変調するため、及びその後、物理層ペイロードPSDU RXを復号するために用いられる変調情報を得る。
【0044】
引き続き
図2を参照すると、ソフトウェア状態機械10は、アイドルルーチン又はプログラム12によってRX(レシーバ)状態機械11に結合されるTX(トランスミッタ)状態機械13を含む、単一変調システムのためのものである。TX状態機械13は、アイドルルーチン12からTX初期化状態34へのTX開始信号33に応答して動作を開始する。TX初期化状態34は、経路(又はプロセス)35を介してTX同期ヘッダ又はSHR TX状態37に進み、SHR TX状態37はループ経路38によって示される反復的プロセスを実施する。通常、送信の場合、送信情報パケットは複数のデータブロックに分割される。各データブロックは、特定の機械状態の実行に対応する。同期ヘッダSHR TXは、TX状態機械13のこの特定の状態によって実行されなければならない複数のブロックを含み得、
図2の「ループ」38は、SHR TXの対応する複数のブロックの実行を完了するためのSHR TX状態37の繰り返し実行を指す。同期ヘッダ状態37が失敗した場合(同期ヘッダSHR TXが3つのデータブロックを含むが、第1のブロックが送信された後、ハードウェアが誤って信号の送信を停止した場合など)、経路39によって示されるように、失敗になる。この場合、TX状態機械13は、失敗状態40に入り、その後、経路41によって示されるように、アイドルループ12に戻る。状態37における同期ヘッダSHR TXのすべてのブロックの処理が、経路43によって示されるように成功又は「終了」した場合、TX状態機械13は物理ヘッダPHR TX状態44に進む。
【0045】
物理ヘッダSHR TXは、パケット長、コーディング方式、及び「白色化(whitening)」方式など、その情報パッケージの残りをどのように復号するかに関する情報を含み、矢印45によって示されるように、物理ヘッダPSDU TXの連続するブロックの反復的処理を受ける。PHR TXプロセス又は状態が「失敗」した場合、TX状態機械13は、矢印46によって示されるように、失敗状態40に進む。PHR TX状態44のプロセスが終了又は成功した場合、TX状態機械13は、矢印47によって示されるように、物理層ペイロード又はPSDU TX状態48に進む。ここで、物理層ペイロードPSDU TXは、レシーバに送信されるべき「実際の」メッセージ/情報の本体を含む。物理層ペイロード又はPSDU TXの矢印49によって示される処理が失敗した場合、TX状態機械13は、矢印51によって示されるように、「失敗」状態40に入る。物理層ペイロード状態48の処理49が、矢印50によって示されるように成功した場合、TX状態機械13はアイドルプロセス12に移る。
【0046】
RX状態機械11は、アイドルプロセス12によって生成され、RX初期化状態15によって受信されるRX開始信号32に応答して動作する。その後、RX状態機械11は、受信した信号の同期ヘッダSHR RXを検出するため、矢印16によって示されるように、「プリアンブル検出」状態17に進む。プリアンブル検出状態17のプロセスの結果、矢印18によって示されるように、検出されるプリアンブルがない場合、RX状態機械11は、矢印19によって示されるようにアイドルプロセス12に戻る。矢印20によって示されるように、プリアンブルが検出された場合、RX状態機械11は、物理層ヘッダ又はPHR RX状態21に進み、矢印22によって示されるように、受信したデータの個別のブロックに対するプロセスを、PHR RXパケット全体の実行が完了するまで繰り返し実施する。矢印23によって示されるようにプロセス22が失敗した場合、RX状態機械11は、失敗状態24に進み、その後、矢印27によって示されるようにプリアンブル検出状態17に戻る。PHR RX状態21のプロセスが、矢印25によって示されるように成功した場合、RX状態機械11は物理層ペイロード又はPSDU RX状態28に進み、そこで、矢印29によって示されるように、情報パッケージのデータのデータ群に対して反復的プロセスが実施される。矢印31によって示されるように状態28が失敗した場合、RX状態機械11は失敗状態24に入る。矢印31によって示されるように、PSDU RX状態28のプロセス29が完了すると、RX状態機械11はプリアンブル検出状態17に進む。
【0047】
図2のソフトウェア定義TDD通信状態機械10は、状態機械10が、後に
図3〜
図9で説明する実施形態の構成要素としての使用に適合するように、典型的なソフトウェア定義TDD通信システムの改変を含む。
【0048】
図2の状態機械10は、特定の状態において常に動作し、その後、別の次の状態に進むという特徴を有する。これは、システムの始まりにおいてフラッシュメモリからRAMにプログラムコードのすべてをコピーする必要がないことを意味する。例示の実施形態に従って、各特定の状態における動作に必要とされるプログラムコード及び定数コードのみが、フラッシュメモリからRAMにコピーされ、コード実行時にその状態においてのみ用いられる。その後、オペレーティングプログラムが次の状態に進むと、その状態の実行の間必要とされるプログラムコード及び定数コードのみがフラッシュメモリからRAMにコピーされる。この技術は、状態機械の他の状態すべてについて繰り返される。
【0049】
しかし、前述の手法は、各状態に必要とされるコードがまず決定され、その後、あらかじめ「カテゴリ」に整理される必要があり、その後、その状態の実行の間、このコードの量、タイミング、及び動作の解析を実施することによって実現されなければならない。フラッシュメモリにおけるこのコードの整理を、本明細書では、「カテゴリ化」と称する。カテゴリ化は、本質的に、フラッシュメモリからRAMにコピーされ、その後、様々な時点で状態機械の様々な状態によって実行されるべき、一層小さなピースにコードを分けることである。状態機械の各状態は、特定の割込みに応答して実行又は走らせるためにトリガされ、1つの状態が完全に実行されるには、その状態の複数の割込み及び実行が必要とされ得る。これらの複数回の実行又は複数回走らせることに対してフラッシュメモリからRAMにコピーされるコードは、ハードウェアの「MIPS要件」を低減する助けとなり得る。任意の単一割込みに応答して、状態機械10は、単一の対応する状態を、その状態に必要とされるRAMにおけるコードを実行することによって実行する。これにより、システム動作速度を実質的に犠牲にすることなく、必要とされる高価なRAMの量が効果的に低減される。TX状態機械13又はRX状態機械においてこの状態が実行された後は、RAM内のこのカテゴリに関するコードはすべて、この状態を実行する際に用いられており、したがってRAMにおいてもはや必要とされず、したがって、フラッシュメモリ内の別のカテゴリのコードをRAMのこの同じ「オーバーラップする」部分に転送することによって上書きされ得る。
【0050】
このように、最初の工程は、ソフトウェア定義TDD通信システムの動作の間一度だけ実行され得るプログラムコード及び定数コードのすべての解析及びカテゴリ化であり、これは、本質的に、異なる目的のために異なる時点でRAMにおいて用いられ得る異なるカテゴリにコードを置くことによって実行される。システムのアーキテクチャが設計された後、各カテゴリに必要とされるRAMの量が解析され、フラッシュメモリ内のコードのどの部分がどのカテゴリ及び機械の状態に割り当てられ得るかが決定され、そのため、特定のカテゴリにおけるコードのこれらの部分は、これらを用いる状態が実行された後、もはや必要でなくなる。その後、これらのカテゴリに対応するRAMのロケーションが、未実行カテゴリ又は次に実行されるカテゴリのコードで上書きされ得る。このように、ソフトウェア定義TDD通信システムの設計が完了した後、
図2のシステム及び状態機械10が動作されてその様々な状態にわたって進むにつれて、カテゴリ化情報を「その場で」用いて、プログラムコード及び定数コードの様々なカテゴリをフラッシュメモリからRAMに1つずつコピーする。
【0051】
図3は、テキサス・インスツルメンツのC2000マイクロコントローラ、製品番号TMS320F28377Dとし得るDSP2を含む基本的なソフトウェア定義TDD通信システム53を示す。DSP2は、双方向デジタルバス3によってRF(無線周波数)フロントエンド回路要素6A(これは、テキサス・インスツルメンツの製品番号CC1260とし得る)に結合される。適切なアナログ・デジタル及びデジタル・アナログ変換回路要素が、RFフロントエンド回路要素6Aに含まれ、双方向RF信号バス5によって、PA(パワーアンプ)/LNA(ローノイズアンプ)回路要素6Bに結合される。回路要素6BはRFアンテナ7に接続される。
【0052】
一実施形態が、ソフトウェア定義単一変調TDD通信システムを含む。変調は、OFDM(直交周波数分割多重)、DSSS(ダイレクトシーケンススペクトル拡散)、FSK(周波数偏位変調)、又は任意の他の適切な変調方式とし得る。OFDMを含めていくつかの種類の変調は、異なるコーディングレートモードを有する変調コーディングセット(MCS)に従う異なるデータレートモードを含み得る。ソフトウェア定義TDD通信システムの他の実施形態が、複数の変調及びマルチプルプリアンブル検出を含み得る。
【0053】
例示の実施形態に従って、フラッシュメモリに初期的に記憶されるプログラムコードセクション及び定数値コードセクションが、複数の異なるカテゴリに分割される。この分割は、(a)通信プロセスにおいて各カテゴリのプログラムコードがRAMにいつコピーされる必要があるか、及び、(b)利用可能なRAM空間が様々なカテゴリとどのように共有されるべきかに従って行われる。それに従ってフラッシュメモリからコピーされるべきプログラムコード及び/又は定数値コードのカテゴリは、概ね
図6のディシジョンツリーフローチャートに従って、RAMに転送される。カテゴリ化プロセスでは、或る種のプログラムコード及び/又は或る種の定数値コードが他のコードより早い状態においてコピーされるが、後続の状態においてのみ用いられる。これは、ソフトウェア定義TDD通信システムの動作の早い状態における「MIPSヘッドルーム」を利用してソフトウェア定義TDD通信システムの異なる状態に関連する「MIPSを均等化」することがときには望ましいからである。
【0054】
説明した例における上述のカテゴリがすべて下記に表1において列挙されている。表1は、表1に示す様々な異なる状態間の異なる時点における物理的なRAMの「共有」又は「再使用」を示す。この情報は、必要とされる物理的なRAMの量が、従来のソフトウェア定義TDD通信システムで必要とされる物理的なRAMの全量と比べてどのようにして実質的に低減され得るかを示す。
【表1】
【0055】
フラッシュメモリからRAMへのコピーの一部が特定の状態の始まりにおいて生じる場合、コピーされたデータは、直前の状態で生じたかのように用いられる。
【0056】
先に説明した
図2に示す状態機械は、上述のRAMの動的共有、並びにこれに関連する、初期的にフラッシュメモリに記憶され、その後RAMにコピーされるプログラムコードセクション及び定数値コードセクションのカテゴリ化を含む、ソフトウェア定義TDD通信システムにおいて用いられる。
【0057】
或るソフトウェア定義TDD通信システムにおいて、デジタルフロントエンド(DFE)回路が、データサンプルの「ブロック」と称する或る数のサンプルを蓄積した後、DFEは割込み信号を生成する。この割込み信号は、
図2に示す状態機械などの状態機械を走らせることをトリガし、それによって状態機械をその次の状態に進ませる。通常、データサンプルの複数のブロックは、単一状態に必要とされる処理を部分的又は全体的に「終了」する必要があり、その後、状態機械はその次の状態に進む。従来のソフトウェア定義TDD通信システムのこの特徴により、本明細書で説明する動的なRAM共有が生じ得る。ここで、フラッシュメモリに記憶される様々なプログラムコードセクション及び定数コードセクションは、データブロックの処理の間RAMの異なるセクションにコピーされ、そのため、ソフトウェア定義TDD通信システム全体のピークMIPS要件が低減され、それによって、RAMがより安価になる。ソフトウェア定義TDD通信システムの状態機械の様々な異なる状態のMIPS要件は実質的に異なり得る。
【0058】
典型的に、単一変調システムにおいて、プリアンブル検出、PHR RX(レシーバのための物理層ヘッダ)、SHR TX(トランスミッタのための同期ヘッダ)、及びPHR TX(トランスミッタのための物理層ヘッダ)を含めて様々な状態は、比較的低いMIPS要件を有し得る。その結果、フラッシュメモリに記憶される様々なプログラムコードセクション及び定数コードセクションが、ソフトウェア定義TDD通信システムの全体的なピークMIPS要件が増大しないような方式で、フラッシュメモリから物理的なRAMにコピーされ得る。
【0059】
次の状態の間フラッシュメモリからRAMにコピーされるべきプログラムコード及び/又は定数値コードについて、次の状態におけるRAMの使用は現在の状態におけるRAMの現在の使用とオーバーラップしないが、これらのプログラムコード及び/又は定数値コードは、現在の状態の間フラッシュメモリからコピーされ、ブロックデータの各処理に分配される。現在の状態の間RAMにコピーされないプログラムコード又は定数値コードについて、これらのコードは次の状態がより低いMIPSデータレートしか必要としない場合には次の状態の始まりに、又は現在の状態がより低いMIPSデータレートしか必要としない場合には現在の状態の終わりに、フラッシュメモリからRAMにコピーされる。
【0060】
特定の状態の前にいくつかのプログラムコード及び/又は定数値コードがフラッシュメモリからRAMにコピーされる必要がある場合、及び、その状態の前にソフトウェア定義TDD通信システムがこれを可能にするために充分なMIPS能力を提供しない場合、これらのプログラムコード又は定数値コードはCAT1(TX)又はCAT4(RX)カテゴリに置かれる。これは、これらのプログラムコード及び/又は定数値コードがTX初期化プロセス又はRX初期化プロセスのいずれかの間にフラッシュメモリからRAMにコピーされ得ることを意味する。フラッシュメモリからRAMにコピーされる必要があるプログラムコードが多過ぎる場合、システムは、状態機械の中間の状態又は「中間状態」の間にこのプログラムコードをフラッシュメモリからRAMにコピーする余裕がないことがある。そうであれば、TX初期化34又はRX初期化15に対して、始めに、フラッシュメモリからRAMにこのプログラムコードをコピーする必要がある。TX初期化34とRX初期化15の間、このプログラムコードは依然としてRAMを動的に共有し得る。
【0061】
図4は、ソフトウェア定義TDD通信システムの異なる状態間の動的なRAM共有を示す。
図4には、ソフトウェア定義TDD通信システムのRAM使用が、参照数字57によって示されている。
図4の垂直次元は、表1のカテゴリによってどのくらい多くのRAM空間が使用されるかを示す。水平次元は、
図2のTX状態機械13及びRX状態機械11の異なる一連の状態が実行される時間又は順を示す。
図4において複数の図示されたカテゴリが同じ垂直の「高さ」に位置する場合、これは、これらのカテゴリが互いに「オーバーラップする」こと、即ち、このようなカテゴリがRAMの同じロケーションを、ただし
図2の状態機械10の異なる状態の実行の間異なる時点で、占有することを意味する。
【0062】
図5は、フラッシュメモリ70からRAMへのプログラムコード及び/又は定数値コードのコピーを管理するように動作するプログラムRAM共有マネジャーモジュール73を含むブロック図を示す。
図5において、メモリサブシステム70は、バス72によってRAM共有マネジャーモジュール73の入力に結合されるフラッシュメモリ71を含む。RAM共有マネジャーモジュール73の出力は、デジタルバス74によってRAM75に接続される。RAM共有マネジャーモジュール73は、下記のコーディングに示すように、起点ポインタ及び宛先ポインタ、並びに各プログラムコードセクションのサイズ及び各定数値コードセクションのサイズを記録するソフトウェア構造を維持する。
【0063】
上述のコピーはフラッシュメモリ71からRAM75へのコピーなので、「ソースポインタ」と呼ばれる第1のポインタが、フラッシュメモリ71におけるロケーションアドレスを指し、「宛先ポインタ」と呼ばれる第2のポインタが、RAMにおけるアドレスロケーションを指す。例えば、カテゴリCAT1のためのコードカテゴリは、初期的にフラッシュメモリ71に記憶される。カテゴリCAT2のコードが後にフラッシュメモリ71からRAM75にコピーされるとき、カテゴリCAT2のコードがコピーされるRAM75における既知のロケーションが、そのコードのための宛先ポインタによって指し示される。任意のカテゴリのコードの一部又は全部が、既知サイズのコードの複数のより小さなブロックに分割され得る。先に示したソースポインタの「引数」[NUM_CAT]は、フラッシュメモリ71からRAM75にコピーされているカテゴリの任意の特定のサブブロックを指定し得る。
【0064】
実際のシステムでは、カテゴリの一部が空であり得、単一のカテゴリが異なるセクションに分割され得、これらのセクションはRAM75の対応する利用可能な小セクションに適合され得る。「空の」カテゴリは、ソフトウェア構造から完全に除去され得る。
【0065】
RAM共有マネジャーモジュール73はまた、初期化機能及びフラッシュメモリからRAMへのコピー機能を含めて、いくつかの付加的な機能を提供する。初期化機能は、ソースポインタ、宛先ポインタ、及び各カテゴリにおけるブロックのサイズを初期化する。特定のソフトウェア定義TDD通信システムの場合、動的なRAM共有システムが事前設計される。RAM共有ハンドラ73のフラッシュメモリからRAMへの共有動作のためのソフトウェア「機能定義」の例を下記に示す。
Void Ram_sharing_to_RAM (UINT16 section_index, UINT16) (copy_size)
【0066】
上記に示す「section_index」又はカテゴリインデックスは既知であり、RAM共有ハンドラ73への入力として提供される。すべての他の必要とされる情報は、RAM共有ハンドラ73に記憶されている。
【0067】
或る状態の単一割込みに応答するその状態の単一実行のための入力パラメータには、その状態の各実行に対してコピーするセクションインデックス及びセクションサイズが含まれる。フラッシュメモリからRAMへのコピー機能において、RAM共有マネジャーモジュール73は、セクションインデックスに従ってフラッシュメモリからコピーするコードのセクションを選択し、また、コードのそのセクションのコピーされたサイズを追跡する。
図2のTX状態機械13によるコードのコピーは、TX初期化コード、同期ヘッダSHR TXコード、及び物理ヘッダPHR TXコードを順に含む。RX状態機械11によるコードのコピーは、RX初期化コード、プリアンブル検出(PD)コード、及び物理ヘッダPHR RXコードを順に含む。状態機械は、1つの「実行」よりも長く1つの状態に留まり得る。必要であれば、コピーされたコードが、複数のコードブロックに分割され得、その後、この状態の対応する「実行」の間、各ブロックが個々にフラッシュメモリからRAMにコピーされ得る。フラッシュメモリからRAMへのコピー機能はまた、コピーされたコードの複数のブロックを、RAM75の指定されたロケーションに「分配する」ことを含む。
【0068】
前述のコピー機能により、ユーザは、或るブロック処理への単一割込みに応答して状態機械の単一実行に対してコピーするワード数を制御し得る。これにより、ユーザは、フラッシュメモリ70からコピーされるコードを、1つの状態内の異なるブロック処理動作に分配し得る。表2は、単一変調ソフトウェア定義TDD通信システムにおけるメモリ使用の例を示す。
【表2】
【0069】
システム初期化の間、表2の例におけるカテゴリCAT0のコードは、フラッシュメモリ70(
図5)からRAM75(
図5)にコピーされ、RAM75のその部分を常に占有する。
図2のTX(送信)状態機械13におけるTX初期化状態34の場合、表2の例におけるカテゴリCAT1のコードがすべてRAM75にコピーされる。
図2の状態機械10は、その後、矢印35によって示されるように、SHR TX(同期ヘッダ)状態37に移る。SHR TX状態37は関連する低いMIPSを有し、カテゴリCAT2bのコードは現在のRAM使用とはオーバーラップしないので、カテゴリCAT2bのコードは、いくつかのデータ又は処理「ブロック」に分配される。状態37におけるTX同期ヘッダSHR TXを分配又は終了するために4つのデータブロックが必要とされる場合、このような各データブロックにおける0.15kBがRAM75にコピーされる。状態37(
図2)における同期ヘッダSHR TXの最後のブロックが終了する(これは、最後のSHR TXブロックの終わり、又は状態44における最初の物理層ヘッダPHR TXブロックの先頭に位置し得る)と、カテゴリCAT2aのコードはRAM75にコピーされ、RAM75においてカテゴリCAT1aと「オーバーラップする」。その後、TX状態機械13は、矢印43によって示されるように、物理層ヘッダPHR TXに移る。
【0070】
カテゴリCAT3はRAM75においてカテゴリCAT2a+CAT1bに適合し得るので、フラッシュメモリ70からのコピーは、物理層ヘッダPHR TXの処理又は実行の間は生じない。物理層ヘッダPHR TXは物理層ペイロードPSDU TXより低い関連MIPSを有するので、CAT3コードは、PHR TXの最後のブロックの前のブロックの実行の間、RAM75にコピーされる。現在の変調が、異なるMCS(変調コーディングセット)モード又はレートモードを含む場合、選択されたMCSモード又はレートモードに関係する部分のみがフラッシュメモリ71からRAM75にコピーされる。表2の例では、カテゴリCAT3全体が1.5kB(キロバイト)であり得、選択されたMCSに関係付けられる部分は0.7kBに過ぎず、そのため、0.7kBのみがフラッシュメモリ70からRAM75にコピーされる。
【0071】
図2のRX(受信)状態機械11におけるRX初期化状態15の場合、カテゴリCAT4のすべてがRAM75にコピーされ、その後、
図2のRX状態機械11は、矢印16によって示されるように、そのプリアンブル検出状態17に移る。いくつかのソフトウェア定義TDD通信システムでは、プリアンブル検出状態は、比較的高いMIPS要件を有する。他のこのようなシステムにおいて、プリアンブル検出状態は、比較的低いMIPS要件を有し得る。表2の例では、プリアンブル検出状態17は比較的低いMIPSに関連すると仮定している。カテゴリCAT5aは0.7kBのサイズを有し、そのうち0.6kBはカテゴリCAT4aとオーバーラップし得、そのため、CAT5aの残りの0.1kB及びカテゴリCAT5bコードは、現在のRAM使用とオーバーラップしない。この0.5+0.1kBは、プリアンブル検出状態17のプリアンブル検出プロセス17の間、RAM75に分配又はコピーされる。この場合、次の状態に進むために、プリアンブル検出プロセスは少なくとも4つのデータブロックを必要とすると仮定しており、0.15kBが、このような各データブロックに対してフラッシュメモリ70からRAM75にコピーされる。
【0072】
RX状態機械11の状態21における物理層ヘッダPHR RXの始まりで、カテゴリCAT5aからのコードの0.6kBがRAM75にコピーされ、RAM75はカテゴリCAT4aのコードによっても占有されている。その後、RX状態機械11は、矢印25によって示されるように、物理層PHR RXコードを実行し又は走らせ始める。カテゴリCAT6のコードは、カテゴリCAT5a+CAT4bと同じRAM空間に適合され得るので、RX状態機械11において状態21の間、物理層ヘッダPHR RXの間に物理層ヘッダPHR RX中にフラッシュメモリ71からRAM75へのコピーは生じない。物理層ヘッダPHR RX状態21は、物理層ペイロードPSDU RX状態28において要求されるものより低いMIPS要件を有するので、カテゴリCAT6のコードは、RX状態機械11の状態21における物理層ヘッダPHR RXからの最後のデータブロックの間にフラッシュメモリ70からRAM75にコピーされ得る。TX状態機械13について先に説明したように、単一変調方式が、異なるMCS又はレートモードを有する場合、選択されたMCS又はレートモードに関係する部分のみが、フラッシュメモリ70からRAM75にコピーされる。表2の例では、TX状態機械13及びRX状態機械11の組合せ動作の間、カテゴリCAT1、CAT2、及びCAT3のコードは、カテゴリCAT4、CAT5、及びCAT6とRAMを共有し得る。
【0073】
フラッシュメモリ70から異なるデータブロックにコピーされるデータを分配する目的は、状態機械の動作の異なる段階における異なるデータブロック間の様々なMIPS要件を均等化又は平衡化することである。分配方式は、RAM使用と実行速度との間のトレードオフのため、異なる実装形態では異なり得る。例えば、いくつかのソフトウェア定義TDD通信システムでは、最初の物理層ヘッダPHR RXブロックの継続時間は、同期ヘッダSHR RXによって実現される同期のため、他の状態の継続時間より短く、フラッシュメモリ71からRAM75にコピーされるより少ないデータが最初のPHR RXブロックにおいて分配される。
【0074】
図6は、(a)各カテゴリがRAMにいつコピーされるべきか、及び、(b)そのカテゴリにおけるコードが、RAMの特定のロケーションで異なる時点で、他のカテゴリにおけるコードとどのようにして動的に共有されるかに従って、表1及び
図4に示すカテゴリ化のすべてをどのように行うかを示す。
図6では、フローチャート80が、
図2のTX状態機械13及びRX状態機械11が実行されるときにフラッシュメモリ70に初期的に記憶されるプログラムコード及び定数値コードの様々な所定のカテゴリが、その後どのようにして個々にRAM75にコピーされるかを示す。
【0075】
ディシジョンラベル又はプロセス81において、システムオペレーティングプログラムは、
図2の状態機械10がTX又はRX初期化を実施しているかどうかを判定する。この判定が
図6の矢印82によって示されるように肯定である場合、実行される特定の各プログラムが、
図6のディシジョンツリー80を介して、そのプログラムがどの「共有」カテゴリに属するかを決定する。したがって、ディシジョンツリー80は、どのプログラムコードが
図4及び表1のどのカテゴリに属するかを決定する。各カテゴリのコードがフラッシュメモリ71からRAM75にコピーされる時点は表1において定義されている。
【0076】
ディシジョンラベル又はプロセス81の判定が矢印83によって示されるように否定である場合、プログラムは、ディシジョンラベル又はプロセス84に移り、プログラムの次の工程が、矢印85によって示されるようにTX状態機械13によって実施されるか、又は矢印86によって示されるように
図2のRX状態機械11によって実施されるかを判定する。次の工程が矢印85によって示されるようにTX状態機械13によって実施される場合、プログラムは、ディシジョンラベル又はプロセス87に移り、TX状態機械13が同期ヘッダSHR TXを現在実行しているかどうかを判定する。
【0077】
ディシジョンラベル又はプロセス87の判定が、矢印89によって示されるように肯定である(即ち、TX状態機械13が同期ヘッダSHR TXを実行している)場合、ラベル又はプロセス91は、TX状態機械13が、矢印93によって示されるように同期ヘッダSHR TXのみを実行するか、又は矢印94によって示されるように同期ヘッダSHR TX及び物理層PHR TXSHR TX両方を実行するか、或いはSHR TX、PHR TX、及びPSDU TXを含めてすべてのTX状態を実行するかを判定する。
【0078】
矢印93の場合、TX状態機械13は、フラッシュメモリ71からRAM75にカテゴリCAT1aをコピーする。矢印94の場合、TX状態機械13は、フラッシュメモリ71からRAM75にカテゴリCAT1bをコピーする。ディシジョンラベル又はプロセス91の判定が、矢印95によって示されるように、TX状態機械13が、同期ヘッダSHR TX、物理層PHR TX、及び物理ペイロードPSDU TXを含めてすべての状態を実行することである場合、TX状態機械13は、フラッシュメモリ71からRAM75にカテゴリCAT1cをコピーする。後者の場合、システムオペレーティングプログラムはラベル又はプロセス98に入る。
【0079】
ラベル又はプロセス98では、TX状態機械13は、TX状態機械13がどの「ラン(run)状態」を実行しようとしているかを確認する。ディシジョンラベル又はプロセス98の判定が、矢印99によって示されるように、TX状態機械13が物理層PHR TXのみを実行することである場合、TX状態機械13は、フラッシュメモリ71からRAM75にカテゴリCAT2aをコピーする。ディシジョンラベル又はプロセス98の判定が、矢印100によって示されるように、TX状態機械13が物理層PHR TX及びペイロードPSDU TX両方を実行することである場合、TX状態機械13は、フラッシュメモリ71からRAM75にカテゴリCAT2bをコピーする。
【0080】
上述のディシジョンラベル又はプロセス84が、矢印86によって示されるように、次の工程がRX状態機械11によって実施されるべきであると判定する場合、RX状態機械11は、ディシジョンラベル又はプロセス88に移り、RX状態機械11がプリアンブル検出プロセスを実行しようとしているかを判定する。ディシジョンラベル又はプロセス88の判定が、矢印101によって示されるように肯定である場合、RX状態機械11は、ラベル又はプロセス103に移って、矢印104によって示されるように、RX状態機械11がプリアンブル検出PDのみを実行しようとしているかを判定する。そうである場合、RX状態機械11は、フラッシュメモリ71からRAM75にカテゴリCAT4aのコードをコピーする。ディシジョンラベル又はプロセス103の判定が、矢印105によって示されるように、RX状態機械11がプリアンブル検出PD及び物理ヘッダPHR RX両方を実行することである場合、RX状態機械11は、フラッシュメモリ71からRAM75にカテゴリCAT4bをコピーする。ディシジョンラベル又はプロセス103の判定が、矢印106によって示されるように、RX状態機械11がすべてのあり得るRX状態を実行することである場合、プログラムはラベル又はプロセス107に移る。
【0081】
ディシジョンラベル又はプロセス88の判定が、矢印102によって示されるように、否定である(即ち、RX状態機械11がプリアンブル検出PDを実行しようとしていない)場合、RX状態機械11は、ディシジョンラベル又はプロセス110に移り、物理ヘッダPHR RXが実行されるべきかを判定する。この判定が矢印111によって示されるように肯定である場合、RX状態機械11は、ディシジョンラベル又はプロセス107に移る。ディシジョンラベル又はプロセス107では、RX状態機械11は、RX状態機械11がどのラン状態を実行するかを判定するために確認する。ディシジョンラベル又はプロセス107の判定が、矢印108によって示されるように、RX状態機械11が物理層PHR RXのみを実行することである場合、RX状態機械11は、フラッシュメモリ71からRAM75にカテゴリCAT5aをコピーする。ディシジョンラベル又はプロセス107の判定が、矢印109によって示されるように、RX状態機械11が物理層PHR RX及びペイロードPSDU RX両方を実行することである場合、システムプログラムは、カテゴリCAT5bをフラッシュメモリ71からRAM75にコピーする。
【0082】
ディシジョンラベル又はプロセス110の判定が矢印112によって示されるように否定である場合、RX状態機械11は、フラッシュメモリ71からRAM75にカテゴリCAT6をコピーする。
【0083】
後に説明する表3は、変調1(MOD1)、変調2(MOD2)、及び変調3(MOD3)と称する3つの異なる種類の変調を有するソフトウェア定義TDDマルチ変調通信システムにおけるRAM使用の例を示す。マルチ変調とは、システムのモデムが複数の異なるタイプの「プリアンブル」をFSK、OFDM、及びDSSSなどの異なる種類の変調に対して同時に検出し得ることを意味する。
【0084】
TX動作の場合、ソフトウェア定義TDDマルチ変調通信システムは、一度に単一の選択された種類の変調のみを走らせる。TX状態機械のこの態様は、単一変調システム又はマルチ変調システムのいずれの場合でも同じである。
【0085】
特定の通信リンクにおいて、複数の異なる信号が異なる種類の変調を有することがある。単一通信情報パッケージは、同期ヘッダSHR、変調を符号化する物理層ヘッダPHR、及び物理層ペイロードを含むその他の情報を含む。例えば、FSK変調が特定の信号に対して用いられていることが既知である場合、同期ヘッダSHR内の情報を検出するため、及びその後、得られる相関信号において、対応するピークを検出するために、FSK技術を用いなければならない。その後、物理ヘッダPHRが復号され、
図2のRX状態機械11に示される動作の残りの部分が実施される。
【0086】
しかし、FSK及びOFDMなどの2つの信号変調オプションが同じ信号内に同時に存在し得る場合、
図2のRX状態機械11は、受信した同期ヘッダがFSKヘッダなのかOFDMヘッダなのかはあらかじめ分からない。この場合、RX状態機械11は、FSK同期ヘッダ又はOFDM同期ヘッダのいずれが存在するかを検出するために、2つのプリアンブル動作を並列に実施する必要がある。
【0087】
先に説明した
図4の様々なカテゴリは、マルチプル変調の場合に、ソフトウェア定義TDD通信システムのためのTX及びRX信号が、単一変調のみを有するか又はマルチ変調を有するかに関わらず、
図2のRX状態機械11におけるプリアンブル検出状態17が
図7の並列マルチプルプリアンブル検出状態17Aで置き換えられることを除いて、概ね、同じ種類の状態機械動作にも対応する。ここで、受信動作は、存在する特定の種類の変調を検出するために、複数の変調オプション毎に1つの、すべて並列に走る「n」個の複数プリアンブル検出MOD1、MOD2、...、MODnを含む。マルチプル変調動作の場合、
図7のPHR RX物理ヘッダ状態21Aは、
図2の物理ヘッダ状態21に対応する。
図2のRX初期化15は、
図7のRX初期化15Aに基本的に類似する。
【0088】
より具体的には、
図7は、ソフトウェア定義TDDマルチ変調通信システムのためのプリアンブル検出(PD)状態機械77を示す。PD状態機械77は、RX初期化状態15Aを含み、また、それぞれ、異なる変調MOD1、2、...、nのためのn個のプリアンブル検出セクション17−1、2、...、nを含むプリアンブル検出システム17Aを含む。プリアンブル検出モジュール又は状態17Aには、PHR RX状態21Aが続き、PHR RX状態21Aは現時点で検出されている変調に対応する。
図7に示すようなプリアンブル検出状態17AにおけるRX動作の場合、変調1、2、...、nのためのマルチプルプリアンブル検出(MPD)が並列に走る。プリアンブル17−1、2、...、nの1つが検出された後、RX状態機械は、選択されたプリアンブルに対応する
図2のPHR RX状態21又は
図2のPSDU RX状態28に進む。
【0089】
各種類の変調の各カテゴリに対するサイズ(キロバイト単位)が、下記で表3に示されている。(表3では、同じ技術が各々に適用されるのでプログラムコードは定数値コードと区別されない。)
【表3】
【0090】
システム初期化の間、カテゴリCAT0が、フラッシュメモリ71からRAM75にコピーされ、RAM75のその部分を常に占有し得る。TX動作に対し、この例の場合、変調MOD1が選択されると仮定される。TX初期化の間、カテゴリMOD1 CAT1がRAM75にコピーされ、その後、RX状態機械はMOD1 SHR TX状態に進む。この例では、カテゴリCAT2bの0.5kBが、現在のRAM使用(カテゴリCAT2a+カテゴリCAT2bの0.2kBはカテゴリCAT1aに適合され得る)とオーバーラップせず、そのため、フラッシュメモリ70からコピーされるカテゴリCAT2bの0.5kBは、いくつかのデータブロックに分配される。状態SHR TXによる処理を終了させるために4つのデータブロックが必要とされる場合、各データブロックの0.125kBがRAM75にコピーされる。カテゴリCAT2a及びその残りの0.2kBは、後にRAM75にコピーされる。SHR TX状態の最後のデータブロックが完了すると、カテゴリCAT2a及びカテゴリCAT2bの残りの0.2kBが、RAM75にコピーされ、RAMにおいてカテゴリCAT1aとオーバーラップする。その後、TX状態機械は、PHR TX状態に進む。カテゴリCAT3は、組合されたカテゴリCAT2a及びカテゴリCAT1bに適合され得るので、PHR TX状態の間フラッシュメモリ70からRAM75へのコピーは生じず、また、PHR TX状態のMIPS要件がPSDU TX状態のMIPS要件より小さいので、PHR TX状態の最後のデータブロックの間、カテゴリCAT3がRAM75にコピーされる。選択された変調が、異なるMCS(変調コーディングセット)又はレートモードを有する場合、選択されたMCS又はレートモードに関係するカテゴリCAT3の部分のみが、フラッシュメモリ70からRAM75にコピーされる。例えば、カテゴリCAT3が1kBであり得、選択されたMCS(MCS1など)に関係するカテゴリが0.7kBのみである場合、0.7kBのみがフラッシュメモリ70からRAM75にコピーされる。
【0091】
RX動作に対し、この例の場合も、変調MOD1が選択されると仮定される。RX初期化の間、カテゴリCAT4 MOD1、CAT4 MOD2、及びCAT4 MOD3のすべてがRAM75にコピーされ、その後、RX状態機械はプリアンブル検出モードに進む。マルチプル変調ソフトウェア定義TDD通信システムの場合、複数のプリアンブル検出が並列に走っているので、プリアンブル検出モードは比較的高いMIPS要件を有する。また、任意の特定の変調のカテゴリCAT5が、RAMにおいてMOD1 CAT4及びMOD2 CAT4と「オーバーラップされ」得、そのため、プリアンブル検出の間のフラッシュメモリからRAMへのコピーは、プリアンブル検出の間には生じない。PHR RX状態の始めに、カテゴリCAT5がフラッシュメモリ70からRAM75にコピーされ、その後、RX状態機械はPHR RXコードを実行し始める。カテゴリCAT5は、カテゴリMOD1 CAT4又はカテゴリMOD2 CAT4とオーバーラップし得る。カテゴリMOD3 CAT6が、カテゴリMOD1 CAT4及びカテゴリMOD2 CAT4からの残りの空間に適合され得るので、カテゴリMOD3 CAT4は、カテゴリMOD3 CAT5aとオーバーラップする必要がない。その代わりに、MOD3 CAT4は、MOD3 CAT5の後、カテゴリMOD1 CAT4及びカテゴリMOD2 CAT5からの残りとオーバーラップし得る。MOD3 CAT6のコピーは、RX状態機械のPHR RX状態の各データブロックに分配され得る。この例では、PHR RX状態において3つのデータブロックがカテゴリMOD3に必要とされると仮定される。PHR RX状態の始めにカテゴリMOD3 CAT4がコピーされるので、第1のデータブロックはカテゴリMOD3 CAT6をコピーしない。カテゴリMOD3 CAT6は、第2及び第3のデータブロックの間にのみコピーされる。各データブロックの間、フラッシュメモリ71からRAM75に0.3kBがコピーされる。選択された変調が、異なるMCS(変調コーディングセット)又はレートモードを有する場合、選択されたMCS又はレートモードに関係する部分のみがフラッシュメモリ70からRAM75にコピーされる。選択された変調が、異なるMCS(変調コーディングセット)又はレートモードを有する場合、選択されたMCS又はレートモードに関係する部分のみがフラッシュメモリ70からRAM75にコピーされる。
【0092】
コードのデータブロックを2つのピースに分けることが極めて困難である場合、TX初期化の間、カテゴリMOD1 CAT1aを用いるために代替の手順がカテゴリMOD1 CAT2aに割り当てられ、そのため、カテゴリMOD1 CAT2b全体はMOD1 CAT1aとオーバーラップしない。その後、カテゴリMOD1 CAT2bの0.7kBのコピーが各データブロックに分配され得る。SHR TX状態を終了するために4つのデータブロックが必要とされる場合、各データブロックに対してフラッシュメモリ71からRAM75に0.175kBがコピーされる。SHR TX状態の最後のブロックが完了すると、カテゴリCAT2a(これはカテゴリCAT1aとオーバーラップする)がフラッシュメモリ70からRAM75にコピーされる。その後、TX状態機械はPHR TX状態に入る。
【0093】
図9は、物理層ペイロードPSDU RXの3つの異なる変調を同時に走らせ得るRX(レシーバ)状態機械140の「トップレベル」表現を示す。一方、
図2のより低レベルの表現は、処理されている物理層ペイロードPSDU RXの単一変調を走らせ得るに過ぎない(
図2参照)。それぞれ、ラベル123、118、及び128のTOP_STDY_MOD1、TOP_STDY_MOD2、及びTOP_STDY_MOD3という用語において、用語「STDY」は「定常状態」を意味し、用語「TOP」は状態機械140の「トップレベル」表現を指し、用語「MOD」は「変調」を意味する。(「定常状態」は、PHR RX及びPSDU RXに対する状態を意味する。プリアンブル検出では、入ってくる信号がいつ到着するか既知ではない。プリアンブルが検出された後、レシーバは、こういった信号に同期し、その後「定常状態」に入る。「定常状態」は、状態PHR RX及びPSDU RXを含む。)
【0094】
図9のラベル又はプロセス11において、RX状態機械140は、
図2におけるRX初期化状態15のプロセスに類似するRX初期化状態11を実施し、その後、
図2におけるプリアンブル検出状態17に類似する、SFDD検出と呼ばれるプリアンブル検出状態17に進む。ただし、状態機械140では、3つのプリアンブル検出プロセスが同時に走っている。MOD1など、これらの3つの変調の1つがプリアンブル検出状態17に従って検出されると、マルチプル変調RX状態機械140は、検出された変調に対応する状態に進む。この場合、MOD1 SFDプリアンブル検出(MOD2 SFD PREAMBLE DETECTED)の矢印121によって示されるTOP_STDY_MOD1状態123に進む。その後、マルチプル変調RX状態機械は、TOP_STDY_MOD1状態が処理されている唯一の状態であるという意味で、「定常状態」モードで機能する。処理されている情報パッケージにおける物理層ペイロードPSDU RXの処理が、矢印119によって示されるように成功裏に完了した場合、マルチプル変調RX変調機械140はプリアンブル検出状態17に戻り、
図2の単一変調RX状態機械11の場合と同じように、さらなる処理が継続する。しかし、
図9の矢印124によって示されるようにエラーが生じる場合、マルチプル変調RX状態機械140は、エラーハンドリング状態125に進み、その後、矢印126によって示されるように、
図9のTOP_IDLE状態12に進む。
【0095】
もし
図4のブロックがすべて「垂直にスタック」されるとすると、これは、従来技術のようにフラッシュメモリ内のコードがすべて初期的にRAMにコピーされるとする場合であるが、このスタックの高さが極めて高くなり、これはコストのかさむ物理的なRAMが極めて大量に存在することを表す。これに対して、
図4は、状態機械の異なる状態の間のRAMの共有又は「オーバーラップ」が、提供されるべきコストのかさむRAMをはるかに少量とし得る(
図4では全高によって示される)という実質的な利点をどのように提供するかを示す。このように、
図2〜
図6の説明した実施形態によって、ソフトウェア定義TDD通信システムにおけるRAMのコストが大幅に低減される。水平軸は、どのようにして異なるカテゴリが同じRAM空間において同時に現れないかを示す。
【0096】
特許請求の範囲内で、説明した実施形態における改変が可能であり、他の実施形態が可能である。
【0097】
例えば、この基本的な手法は周波数分割二重(FDD)実装形態にも適用可能である。
図10は、動的なRAM共有がFDDシステムにおいて用いられる代替の実施形態の特徴を示す。TDD動作とFDD動作の主な差異は、TDD通信システムではTX送信及びRX受信が常に異なる時点で生じる一方、FDD通信システムでは、TX送信及びRX受信が同時に生じ得、したがって、FDDシステムにおける同時のTX送信/RX受信のRAM使用が動的に共有され得ないことである。しかし、FDD通信システムでは、TDD動作について先に説明したものと本質的に同じ方法を用いて、動的なRAM共有が個々のTX状態機械13内と個々のRX状態機械11(
図2)内との異なる状態間で用いられ得る。
【0098】
図10は、
図4に極めて類似しており、FDDシステムにおける動的なRAM共有を図示する。このFDDシステムは、
図2に示すTX状態機械13及びRX状態機械11並びに
図5に示すRAM共有マネジャー70を含み、表1に類似する表(図示せず)に従って、及び、
図6のディシジョンツリーフローチャート80に類似するディシジョンツリーに従って動作する。
図4にあるように、
図10の垂直次元は、様々なRAM共有カテゴリによってどのくらいの量のRAM空間が使用されるかを示し、水平次元は、
図2のTX状態機械13及びRX状態機械11の異なる一連の状態が実行される時点又は順を示す。
図4の様々なカテゴリを指定するために用いられる参照数字は、類似のカテゴリを指定するために
図10で用いられる参照数字と同じであるが、
図10では、各参照数字に「A」が付加されている。
図10において図示するFDD通信システムの動的なRAM割当てと、
図4において図示するTDD通信システムの動的なRAM割当てとの主な差異は、TX状態機械13及びRX状態機械11を同じ時間間隔の間走らせてはならないTDD通信システムとは対照的に、FDD通信システムでは、TX状態機械13及びRX状態機械11が同時に走り得ることである。TX状態機械13及びRX状態機械11の構造及び動作は、その他の点ではFDD通信システムとTDD通信システムで本質的に同じである。
【0099】
従って、FDD通信システムにおいて、RAM共有カテゴリの全て及びこれらのカテゴリとTX状態機械13及びRX状態機械11との関係がTDD通信システムの場合と本質的に同じであるが、「TX RAM」(即ち、TX状態機械13の実行の間用いられるRAMのセクション)及び「RX RAM」(即ち、RX状態機械11の実行の間用いられるRAMのセクション)が互いに「オーバーラップし」得ない。例えば、FDD通信システムにおいて、時間間隔「T1」の間フラッシュメモリから「RAMセクションA」にコピーされるTXプログラムコードは、後に、任意の時間間隔の間、いかなるRXプログラムコードとも「RAMセクションA」において動的に共有され得ない。これは、その時間間隔の間、TX状態機械13及びRX状態機械11両方が走り得るからである。しかし、フラッシュメモリから「RAMセクションB」にコピーされる何らかの「TXプログラムコードX1」が、後に、TX状態機械13が「TXプログラムコードX1」の実行を終了した後、他の「TXプログラムコードX2」と動的に共有され得、同様に、フラッシュメモリから「RAMセクションB」にコピーされ得る何らかの「RXプログラムコードY1」が、後に、RX状態機械11が「RXプログラムコードY1」の実行を終了した後、他の「RXプログラムコードY2」と動的に共有され得る。