(57)【要約】  無線広帯域信号処理システムは、プログラムメモリ、命令コントローラおよび処理装置を備える。このシステムは、サンプルバッファ、１ポートメモリおよび４ポートメモリを備えることも可能である。プログラムメモリは、命令コントローラによって用いられる、プログラムされた命令を格納する。処理装置は、復調処理などのベクトル処理を実行するように構成される。１つの処理装置は各クロックにおいて計算される畳み込み演算用に構成され、別の処理装置は各クロックにおいて基数４のバタフライが実行されるＦＦＴ機能用に構成され、さらに別の処理装置は、逆拡散、ベクトル加算、ベクトル減算、内積および成分毎の乗算など、他のベクトル演算用に構成されることが可能である。システムは診断データを収集し、複数のネットワークを通じて動作し、ベースバンド回路を削減し、マルチモード動作を最大化することが可能である。
2009505486.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ診断データを取得するための方法であって、
命令を受信する工程と、
診断メモリに対する出力ストリームの書込アクセスを選択的に可能とする工程と、
第１の周波数で診断メモリへの書込を行う工程と、
第２の周波数で診断メモリからの読取を行う工程と、
第１の周波数は第２の周波数より大きいことと、からなる方法。
【請求項２】
論理アナライザへ診断メモリの内容を通信する工程を含む請求項１に記載の方法。
【請求項３】
診断メモリは外部ソースから通信データを受信する請求項１に記載の方法。
【請求項４】
診断メモリは処理装置から通信データを受信する請求項１に記載の方法。
【請求項５】
受信される命令が変化するとき、診断メモリに対する出力ストリームの書込アクセスが可能となる請求項１に記載の方法。
【請求項６】
第１の周波数は４０ＭＨｚ以上である請求項１に記載の方法。
【請求項７】
第２の周波数は４０ＭＨｚ以下である請求項１に記載の方法。
【請求項８】
受信される命令は診断メールボックスフィールドを含む請求項１に記載の方法。
【請求項９】
受信される命令の診断メールボックスフィールドが１に設定されている場合、受信される命令の出力ストリームは診断メモリへ書き込まれる請求項８に記載の方法。
【請求項１０】
第１の周波数および第２の周波数は、第２の周波数が、診断メールボックスフィールドが１に設定されている命令に関連したクロックの逆数を第１の周波数に乗算した周波数以下であるように選択される請求項９に記載の方法。
【請求項１１】
診断メモリは１つ以上の読取ポートおよび１つ以上の書込ポートを有するランダムアクセスメモリ（ＲＡＭ）である請求項１に記載の方法。
【請求項１２】
ランダムアクセスメモリ（ＲＡＭ）は１つの書込ポートおよび１つの読取ポートを有する２ポートＲＡＭである請求項１１に記載の方法。
【請求項１３】
診断メモリへ適用される読取アドレスおよび書込アドレスは、いずれかのアドレスが、読取アドレスおよび書込アドレスが０に戻る最大ＲＡＭアドレスに一致するまで、診断メモリに対する各読取アクセスまたは書込アクセスの後、自動的にインクリメントされる請求項１１に記載の方法。
【請求項１４】
読み取られていないデータで診断メモリが一杯であり、かつ、受信される命令が診断メモリへの出力ストリームの書込を行うことを示すとき、オーバフロー表示を通信する工程を含む請求項１３に記載の方法。
【請求項１５】
診断メモリに格納されているすべてのデータが読み取られたとき、エンプティ表示を通信する工程を含む請求項１３に記載の方法。
【請求項１６】
プロセッサ診断データを取得するためのシステムであって、
複数の命令を格納しているメモリと、
診断メモリに対する出力ストリームの書込アクセスを選択的に可能とする工程を含む前記複数の命令を受信して実行するコントローラと、
第１の周波数で出力ストリームを受信し、第２の周波数で内容を出力する診断メモリと、第１の周波数は第２の周波数より大きいことと、からなるシステム。
【請求項１７】
診断メモリの内容を受信する論理アナライザを含む請求項１６に記載のシステム。
【請求項１８】
診断メモリは外部ソースから通信データを受信する請求項１６に記載のシステム。
【請求項１９】
診断メモリは処理装置から通信データを受信する請求項１６に記載のシステム。
【請求項２０】
受信される命令が変化するとき、コントローラが診断メモリに対する書込アクセスを可能とする請求項１６に記載のシステム。
【請求項２１】
第１の周波数は４０ＭＨｚ以上である請求項１６に記載のシステム。
【請求項２２】
第２の周波数は４０ＭＨｚ以下である請求項１６に記載のシステム。
【請求項２３】
受信される命令は診断メールボックスフィールドを含む請求項１６に記載のシステム。
【請求項２４】
受信される命令の診断メールボックスフィールドが１に設定されている場合、受信される命令の出力ストリームは診断メモリへ書き込まれる請求項２３に記載のシステム。
【請求項２５】
第１の周波数および第２の周波数は、第２の周波数が、診断メールボックスフィールドが１に設定されている命令に関連したクロックの逆数を第１の周波数に乗算した周波数以下であるように選択される請求項２４に記載のシステム。
【請求項２６】
診断メモリは１つ以上の読取ポートおよび１つ以上の書込ポートを有するランダムアクセスメモリ（ＲＡＭ）である請求項１６に記載のシステム。
【請求項２７】
ランダムアクセスメモリ（ＲＡＭ）は１つの書込ポートおよび１つの読取ポートを有する２ポートＲＡＭである請求項２６に記載のシステム。
【請求項２８】
診断メモリへ適用される読取アドレスおよび書込アドレスは、いずれかのアドレスが、読取アドレスおよび書込アドレスが０に戻る最大ＲＡＭアドレスに一致するまで、診断メモリに対する各読取アクセスまたは書込アクセスの後、自動的にインクリメントされる請求項２６に記載のシステム。
【請求項２９】
読み取られていないデータで診断メモリが一杯であり、かつ、受信される命令が診断メモリへの出力通信ストリームの書込を行うことを示すとき、オーバフロー表示を通信する工程を含む請求項２８に記載のシステム。
【請求項３０】
診断メモリに格納されているすべてのデータが読み取られたとき、エンプティ表示を通信する工程を含む請求項２８に記載のシステム。
【請求項３１】
マルチモード無線処理システムにおいて入力および出力を制御する方法であって、
マルチモード無線処理システムの外部の要素とマルチモード無線処理システムとの間のインタフェースを制御するための命令を受信する工程と、
所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを、受信された命令のフィールドから決定する工程と、からなる方法。
【請求項３２】
受信された命令はフレームレート誤差の記録を指示する請求項３１に記載の方法。
【請求項３３】
受信された命令は、マルチモード無線処理システム内のサンプルバッファの管理を指示する請求項３１に記載の方法。
【請求項３４】
受信された命令のフィールドから、汎用入力を入力データのソースに決定する工程を含む請求項３１に記載の方法。
【請求項３５】
受信された命令は所定の処理装置と汎用入力との間の通信レートを指示する請求項３４に記載の方法。
【請求項３６】
ソースから所定の処理装置へ入力データのルーティングを行う工程を含む請求項３４に記載の方法。
【請求項３７】
受信された命令のフィールドから、汎用出力を、生成された出力データの宛先に決定する工程を含む請求項３１に記載の方法。
【請求項３８】
受信された命令は所定の処理装置と汎用出力との間の通信レートを指示する請求項３７に記載の方法。
【請求項３９】
所定の処理装置から宛先へ、生成された出力データのルーティングを行う工程を含む請求項３７に記載の方法。
【請求項４０】
マルチモード無線処理システムにおいて処理装置とのインタフェースを行うための入力／出力コンポーネントの構成であって、
マルチモード無線処理システムにおいて処理装置へ入力データを供給するための複数の汎用入力と、
マルチモード無線処理システムにおいて処理装置によって生成される出力データを受信するための複数の汎用出力と、からなる構成。
【請求項４１】
マルチモード無線プロセッサにおいて入力および出力を制御するためのシステムであって、
マルチモード無線プロセッサシステムにおいて、マルチモード無線処理システムの外部の要素とマルチモード無線処理システムとの間のインタフェースを制御する命令を含むメモリと、
命令を受信し、命令のフィールドから、マルチモード無線処理システムにおける所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを決定するコントローラと、からなるシステム。
【請求項４２】
受信された命令はフレームレート誤差の記録を指示する請求項４１に記載のシステム。
【請求項４３】
受信された命令は、マルチモード無線処理システム内のサンプルバッファの管理を指示する請求項４１に記載のシステム。
【請求項４４】
コントローラは命令のフィールドから、汎用入力を入力データのソースに決定することを含む請求項４１に記載のシステム。
【請求項４５】
コントローラはソースから所定の処理装置へ入力データのルーティングを行う請求項４４に記載のシステム。
【請求項４６】
受信された命令は所定の処理装置と汎用入力との間の通信レートを指示する請求項４４に記載のシステム。
【請求項４７】
コントローラは命令のフィールドから、汎用出力を、生成された出力データの宛先に決定する請求項４１に記載のシステム。
【請求項４８】
コントローラは、所定の処理装置から宛先へ出力データのルーティングを行う請求項４７に記載のシステム。
【請求項４９】
受信された命令は所定の処理装置と汎用出力との間の通信レートを指示する請求項４７に記載のシステム。
【請求項５０】
マルチモード処理システムにおいてサンプルバッファへの接続レートを動的に制御する方法であって、
マルチモード無線処理システムにおいて通信用の命令を受信する工程と、
データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次接続されるレートを決定する工程と、
受信された命令に基づき、外部要素へ複数のバッファが逐次接続されるレートを制御する複数のレジスタをプログラムする工程と、からなる方法。
【請求項５１】
１つのレジスタは外部要素へ複数のバッファが逐次接続されるレートを制御する請求項５０に記載の方法。
【請求項５２】
外部要素へ複数のバッファが逐次接続されるレートは、受信された命令に基づき動的に変化する請求項５０に記載の方法。
【請求項５３】
受信された命令のフィールドによって、外部要素へ複数のバッファが逐次接続されるレートが変化するか否かが決定される請求項５０に記載の方法。
【請求項５４】
マルチモード処理システムにおいてサンプルバッファへの接続レートを動的に制御するためのシステムであって、
マルチモード無線処理システムにおけるマルチモード無線プロセッサ通信用の命令を含むメモリと、
命令を受信し、データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次接続されるレートを決定するコントローラと、
外部要素へ複数のバッファが逐次接続されるレートを制御する複数のレジスタと、からなるシステム。
【請求項５５】
コントローラは、受信された命令に基づき、外部要素へ複数のバッファが逐次接続されるレートを動的に変化させる請求項５４に記載のシステム。
【請求項５６】
１つのレジスタは外部要素へ複数のバッファが逐次接続されるレートを制御する請求項５４に記載のシステム。
【請求項５７】
コントローラは、受信された命令のフィールドに基づき複数のレジスタがプログラムされるか否かを決定する請求項５４に記載のシステム。
【請求項５８】
２つのプロセッサのインタフェースを行う方法であって、
第１のプロセッサにて読取／書込要求を生成する工程と、読取／書込要求は第１のプロセッサが直接的なアクセスを有しないターゲットメモリを対象とすることと、
第２のプロセッサにて読取／書込要求を受信する工程と、第２のプロセッサは読取／書込要求によってアクセスされるターゲットメモリへの直接的なアクセスを有することと、
第２のプロセッサにて読取／書込動作を完了する工程と、
読取／書込動作が完了したことの表示を第１のプロセッサにて受信する工程と、からなる方法。
【請求項５９】
第２のプロセッサからの読取データの受信後、第１のプロセッサにて動作を継続する工程と、動作の継続は読取動作である読取／書込要求に関連していることと、を含む請求項５８に記載の方法。
【請求項６０】
第２のプロセッサによる書込動作の完了後、第２のプロセッサにて動作を継続する工程と、動作の継続は書込動作である読取／書込要求に関連していることと、を含む請求項５８に記載の方法。
【請求項６１】
ターゲットバッファ番号およびターゲットバッファ内のターゲットアドレスを含む読取／書込アドレスを生成する工程と、ターゲットメモリは第２のプロセッサの一部であるターゲットバッファであることと、
第２のプロセッサにて読取／書込アドレスを受信する工程と、を含む請求項５８に記載の方法。
【請求項６２】
読取／書込要求が書込要求である場合、第２のプロセッサにて書込データを受信する工程を含む請求項５８に記載の方法。
【請求項６３】
第１のプロセッサの読取／書込要求について第２のプロセッサにてポーリングを行う工程を含む請求項５８に記載の方法。
【請求項６４】
第２のプロセッサにおけるポーリングは状態ビットを定期的に監視することによって実行される請求項６３に記載の方法。
【請求項６５】
状態ビットがゼロでない値に設定されていることによって、読取／書込要求が指示される請求項６４に記載の方法。
【請求項６６】
状態ビットは第２のプロセッサによる読取／書込動作の完了時にクリアされる請求項６４に記載の方法。
【請求項６７】
読取／書込動作が完了したことの表示について第１のプロセッサにてポーリングを行う工程を含む請求項５８に記載の方法。
【請求項６８】
第１のプロセッサにおけるポーリングは状態ビットを定期的に監視することによって実行される請求項６７に記載の方法。
【請求項６９】
２つのプロセッサのインタフェースを行うためのシステムであって、
第１のプロセッサが直接的なアクセスを有しないターゲットメモリを対象とする読取／書込要求を生成する第１のプロセッサと、
読取／書込要求を受信し、読取／書込動作を完了させる第２のプロセッサと、第２のプロセッサは読取／書込要求によってアクセスされるターゲットメモリへの直接的なアクセスを有することと、
ターゲットメモリと、
第１のプロセッサと第２のプロセッサとの間で通信を行うための手段と、からなるシステム。
【請求項７０】
第２のプロセッサはマルチモード無線プロセッサである請求項６９に記載のシステム。
【請求項７１】
第１のプロセッサはＡＲＭプロセッサである請求項６９に記載のシステム。
【請求項７２】
ターゲットメモリは第２のプロセッサの一部である請求項６９に記載のシステム。
【請求項７３】
読取／書込要求が書込要求である場合、第２のプロセッサは書込データを受信する請求項６９に記載のシステム。
【請求項７４】
第２のプロセッサからの読取データの受信後、第１のプロセッサは読取／書込要求の影響を受けた動作を実行することと、読取／書込要求は読取動作であることと、を含む請求項６９に記載のシステム。
【請求項７５】
第２のプロセッサが書込動作を完了させた後、第２のプロセッサは読取／書込要求の影響を受けた動作を実行することと、読取／書込要求は書込動作であることと、を含む請求項６９に記載のシステム。
【請求項７６】
ターゲットメモリはバッファである請求項６９に記載のシステム。
【請求項７７】
第１のプロセッサは、ターゲットバッファ番号およびターゲットバッファ内のターゲットアドレスを含む読取／書込アドレスを生成することと、ターゲットメモリは第２のプロセッサの一部であるターゲットバッファであることと、第２のプロセッサは生成の読取／書込アドレスを受信することと、を含む請求項７６に記載のシステム。
【請求項７８】
第２のプロセッサは第１のプロセッサの読取／書込要求についてポーリングを行う請求項６９に記載のシステム。
【請求項７９】
第２のプロセッサによるポーリングは状態ビットを定期的に監視することによって実行される請求項７８に記載のシステム。
【請求項８０】
状態ビットがゼロでない値に設定されていることによって、読取／書込要求が指示される請求項７９に記載のシステム。
【請求項８１】
第１のプロセッサは読取／書込動作が完了したことの表示についてポーリングを行う請求項６９に記載のシステム。
【請求項８２】
第１のプロセッサのポーリングは状態ビットを定期的に監視することによって実行される請求項８１に記載のシステム。
【請求項８３】
状態ビットは第２のプロセッサによる読取／書込動作の完了時にクリアされる請求項８２に記載のシステム。
【請求項８４】
２つのプロセッサの間のインタフェースであって、
第１のプロセッサにて読取／書込要求を生成するための手段と、
第１のプロセッサまたは第２のプロセッサのいずれかによって状態ビットを設定するための手段と、
第１のプロセッサによって状態ビットのポーリングを行うための手段と、
第２のプロセッサによって状態ビットのポーリングを行うための手段と、
第１のプロセッサと第２のプロセッサとの間で追加のデータの通信を行うための手段と、からなるインタフェース。
【請求項８５】
第２のプロセッサは定期的に状態ビットのポーリングを行う請求項８４に記載のインタフェース。
【請求項８６】
第１のプロセッサは読取／書込要求を指示するために状態ビットを０に設定する請求項８４に記載のインタフェース。
【請求項８７】
読取／書込要求が書込動作のためのものである場合、第１のプロセッサは第２のプロセッサに書込データを供給する請求項８４に記載のインタフェース。
【請求項８８】
第２のプロセッサは要求した読取／書込動作が完了したとき、状態ビットをクリアする請求項８４に記載のインタフェース。
【請求項８９】
第２のプロセッサは、第２のプロセッサが書込動作を完了させたとき、第１のプロセッサへ書込データを送信する請求項８４に記載のインタフェース。
【請求項９０】
第１のプロセッサは定期的に状態ビットのポーリングを行う請求項８４に記載のインタフェース。
【請求項９１】
第１のプロセッサは第２のプロセッサへ読取／書込要求の一部としてアドレスを供給する請求項８４に記載のインタフェース。
【請求項９２】
アドレスはターゲットバッファ番号およびターゲットバッファ内のターゲットアドレスを含む請求項９１に記載のインタフェース。
【請求項９３】
マルチモード無線処理システムにおける高速フーリエ変換（ＦＦＴ）方法であって、
入力ベクトルを入力バッファにロードする工程と、
第２のカウンタおよび変数Ｎを初期化する工程と、Ｎ＝ｌｏｇ２（入力ベクトルサイズ）であり、ｓは第２のカウンタの値であることと、
ＦＦＴステージを実行する工程と、ＦＦＴステージは次の工程、すなわち、
入力バッファのデータに対しベクトル演算を実行し、結果を出力バッファに送信する工程と、入力バッファのデータは複数のセグメントを含むことと、
第２のカウンタの値を進める工程と、
入力バッファおよび出力バッファの役割を切り替える工程と、を含むことと、
ｓをＮと比較し、ｓ＝Ｎとなるまで追加のＦＦＴステージを実行する工程と、からなる方法。
【請求項９４】
Ｎが奇数の場合、第２のカウンタは２に初期化され、ＦＦＴステージにおいて２ずつ進められ、最終ＦＦＴステージにおいてＮに設定される請求項９３に記載の方法。
【請求項９５】
ベクトル演算は、すべてのセグメントが演算されるまで、一度に入力バッファのデータの１つのセグメントに対し演算を行う請求項９３に記載の方法。
【請求項９６】
ベクトル演算は、
入力バッファから処理装置に４つの入力データをロードする工程と、
処理装置にロードした４つの入力データに対し基数４のＦＦＴエンジンを用いる基数４のＦＦＴベクトル演算を実行する工程と、基数４のＦＦＴエンジンは４つの入力ベクトルを受け取り、４つの出力ベクトルを生成することと、
４つの生成された出力ベクトルに回転因子を乗算する工程と、各出力ベクトルは関連する回転因子を有することと、回転因子は実数成分および虚数成分を有することと、
関連する回転因子が１であるとき、出力ベクトルの乗算を回避する工程と、からなる請求項９３に記載の方法。
【請求項９７】
第１の出力ベクトルの乗算を回避する工程を含む請求項９６に記載の方法。
【請求項９８】
Ｎが奇数であり、最終ＦＦＴステージが実行されている場合、入力バッファから処理装置へ２つの入力データがロードされて、第１および第３の基数４のＦＦＴエンジン入力ベクトルとして用いられ、第２および第４の基数４のＦＦＴエンジン入力ベクトルは０に設定される請求項９６に記載の方法。
【請求項９９】
処理装置へロードされた４つの入力データは処理装置によって逐次受信されて、基数４のＦＦＴエンジンに並列に提供され、基数４のＦＦＴエンジンの４つの出力ベクトルは基数４のＦＦＴエンジンから並列に受信され、出力バッファへ逐次書き込まれる請求項９６に記載の方法。
【請求項１００】
最終ＦＦＴステージが実行されており、かつ、Ｎが奇数であるときを除き、処理装置は４分の１に減少されたマルチモード無線処理システムクロック周波数で動作し、
最終ＦＦＴステージが実行されており、かつ、Ｎが奇数の場合、処理装置は２分の１に減少されたマルチモード無線処理システムクロック周波数で動作する請求項９６に記載の方法。
【請求項１０１】
入力バッファデータのデータのすべてのセグメントが演算されたときを判定するために、初期化され、進められ、入力バッファのデータの長さと比較されるループ変数として、マスターカウンタが用いられる請求項１００に記載の方法。
【請求項１０２】
入力バッファアドレスは、マスターカウンタのビットＮ〜（ｓ＋１）が入力バッファアドレスのビット（Ｎ−ｓ）〜１にマッピングされ、マスターカウンタのビットｓ〜１が入力バッファアドレスのビットＮ〜（Ｎ−ｓ＋１）にマッピングされ、入力バッファアドレスのうちの残る高位ビットは０に設定され、ビット１は入力バッファアドレスおよびマスターカウンタの最低位ビットであるように生成される請求項１０１に記載の方法。
【請求項１０３】
入力アドレスは１３ビットである請求項１０２に記載の方法。
【請求項１０４】
最終ＦＦＴステージを除き、すべてのＦＦＴステージにおいて出力バッファアドレスは入力バッファアドレスに等しく、最終ＦＦＴステージでは、出力バッファアドレスは、出力バッファアドレスのビット１３〜１３−Ｎが０に設定され、Ｎが偶数の場合、出力バッファのビットＮ〜１が第１のマッピングシーケンス、Ｉ２，Ｉ１，Ｉ４，Ｉ３，．．．ＩＮ，ＩＮ−１に従い、Ｎが奇数の場合、出力バッファのビットＮ〜１が第２のマッピングシーケンス、Ｉ１，Ｉ３，Ｉ２，Ｉ５，Ｉ４，．．．ＩＮ，ＩＮ−１に従い、Ｉは入力バッファアドレスであり、ビット１は出力バッファの最低位ビットであり、ビット１は入力バッファアドレスおよび出力バッファアドレスの最低位ビットであるように生成される請求項１０２に記載の方法。
【請求項１０５】
回転因子は、
予備回転アドレスを生成する工程と、
回転因子の制御操作のための制御語を生成する工程と、
最終回転アドレスを生成する工程と、
予備回転アドレスに基づきメモリから回転因子にアクセスする必要がある否かを判定する工程と、
回転因子にアクセスする必要がある場合、
最終回転アドレスにてメモリから回転因子の読取を行う工程と、
制御語に基づき回転因子を操作する工程と、
操作された回転因子を処理装置に格納する工程と、によって生成される請求項９６に記載の方法。
【請求項１０６】
処理装置に格納された操作された回転因子は、レジスタに格納される請求項１０５に記載の方法。
【請求項１０７】
予備回転アドレスは、予備回転アドレスの高位（Ｎ−ｓ）ビットが入力バッファアドレスのビット（Ｎ−ｓ）〜１へマッピングされ、予備回転アドレスの残る低位ビットが０に設定され、ビット１は入力バッファアドレスの最低位ビットであるように生成される請求項１０５に記載の方法。
【請求項１０８】
予備回転アドレスおよび最終回転アドレスは１１ビットである請求項１０５に記載の方法。
【請求項１０９】
制御語は予備回転アドレスとマスターカウンタの２つの低位ビットとの間の積の３つの高位ビットである請求項１０５に記載の方法。
【請求項１１０】
回転因子は制御語ビットにしたがって次のように操作される、すなわち、
第１に、制御語のビット１と制御語のビット２の排他的論理和が１の場合、回転因子の実数成分および虚数成分が交換され、回転因子の実数成分および虚数成分の符号は反転され、
第２に、制御語のビット２が１の場合、回転因子の実数成分の符号が反転され、
第３に、制御語のビット３が１の場合、回転因子の実数成分および虚数成分の符号が反転される、請求項１０５に記載の方法。
【請求項１１１】
最終回転アドレスは、
予備回転アドレスにマスターカウンタの２つの低位ビットを乗算し、積を生成する工程と、
積のビット９〜０を５１２から減算し、残余を生成する工程と、ビット０は積の最低位ビットであることと、
残余を２：１マルチプレクサの第１の入力へ、積のビット９〜０を２：１マルチプレクサの第２の入力へ、かつ、積のビット１０を２：１マルチプレクサの選択した入力へ送信する工程と、最終回転アドレスは２：１マルチプレクサの出力であることと、によって生成される請求項１０５に記載の方法。
【請求項１１２】
マルチモード無線処理システムにおいて高速フーリエ変換（ＦＦＴ）を実行するためのシステムであって、
ベクトル演算を実行するための処理装置と、
処理装置へ算術関数を提供するためのメモリと、
ＦＦＴアルゴリズムを実行するための命令を格納しているプログラムメモリと、
プログラムメモリから命令を受信し、実行するための命令コントローラと、
ＦＦＴアルゴリズムの連続的なＦＦＴステージにおいて入力バッファおよび出力バッファとして交互に機能する１対のバッファと、入力バッファのデータは複数のセグメントを含むことと、からなるシステム。
【請求項１１３】
算術関数を提供するメモリは回転因子を格納している請求項１１２に記載のシステム。
【請求項１１４】
算術関数を提供するメモリはＲＯＭである請求項１１２に記載のシステム。
【請求項１１５】
処理装置は、
４つの入力ベクトルに対し８つの複素加算を実行し、４つの出力ベクトルを生成する基数４のＦＦＴエンジンと、
生成された出力ベクトルに、関連する回転因子を乗算するための回転乗算器と、回転因子は実数成分および虚数成分を有することと、
入力バッファから４つの入力ベクトルを逐次受信し、４つの入力ベクトルを基数４のＦＦＴエンジンへ並列に送信するためのシリアル−パラレル変換器と、
４つの生成された出力ベクトルを並列に受信し、回転乗算器および出力バッファへ４つの出力ベクトルを逐次出力するためのパラレル−シリアル変換器と、
操作された回転因子を処理装置に格納するための１組のレジスタと、
制御語に基づき回転因子を操作する回転オクタント操作器と、
所与のＦＦＴステージにおけるＦＦＴアルゴリズムの進行を監視するためのループ変数として用いられるマスターカウンタと、
ＦＦＴアルゴリズムの現在のステージを追跡するためのループ変数として用いられる第２のカウンタと、ｓは第２のカウンタの値であることと、
入力バッファアドレスを生成する入力アドレス生成器と、最終ＦＦＴステージが実行されており、かつ、Ｎが奇数のときを除いて、すべてのＦＦＴステージにおいて入力バッファアドレスが出力バッファアドレスとして用いられることと、Ｎ＝ｌｏｇ２（入力バッファのデータのサイズ）であることと、
予備回転アドレスを生成するための回転アドレス生成器と、
Ｎが奇数の場合、最終ＦＦＴステージにおいて出力バッファアドレスを生成するダイビットインタリーブ処理生成器と、
制御語を生成するための回転アドレス乗算器と、
回転アドレス乗算器によって生成される積のビット９〜０を５１２から減算し、残余を生成するための総和器と、
残余および回転アドレス乗算器によって生成される積から最終回転アドレスを生成するための２：１マルチプレクサと、を含む請求項１１２に記載のシステム。
【請求項１１６】
Ｎが奇数の場合、第２のカウンタは２に初期化され、ＦＦＴステージにおいて２ずつ進められ、最終ＦＦＴステージにおいてＮに設定される請求項１１５に記載のシステム。
【請求項１１７】
処理装置は、すべてのセグメントが演算されるまで、一度に入力バッファのデータの１つのセグメントに対し演算を行う請求項１１５に記載のシステム。
【請求項１１８】
回転乗算器が回避されるときを示すための乗算器回避インジケータを含む請求項１１５に記載のシステム。
【請求項１１９】
Ｎが奇数であり、最終ＦＦＴステージが実行されている場合、シリアル−パラレル変換器は入力バッファから２つの入力データを受信し、受信した２つの入力データは第１の基数４のＦＦＴエンジン入力ベクトルおよび第３の基数４のＦＦＴエンジン入力ベクトルとなり、第２の基数４のＦＦＴエンジン入力ベクトルおよび第４の基数４のＦＦＴエンジン入力ベクトルは０に設定される請求項１１５に記載のシステム。
【請求項１２０】
最終ＦＦＴステージが実行されており、かつ、Ｎが奇数のときを除いて、処理装置は４分の１に減少されたマルチモード無線処理システムクロック周波数で動作し、
最終ＦＦＴステージが実行されており、かつ、Ｎが奇数の場合、処理装置は２分の１に減少されたシステムクロック周波数で動作する、請求項１１５に記載のシステム。
【請求項１２１】
入力バッファアドレスは、マスターカウンタのビットＮ〜（ｓ＋１）が入力バッファアドレスのビット（Ｎ−ｓ）〜１にマッピングされ、マスターカウンタのビットｓ〜１が入力バッファアドレスのビットＮ〜（Ｎ−ｓ＋１）にマッピングされ、入力バッファアドレスのうちの残る高位ビットは０に設定され、ビット１はマスターカウンタおよび入力バッファアドレスの最低位ビットであるように生成される請求項１１５に記載のシステム。
【請求項１２２】
入力バッファアドレスは１３ビットである請求項１１５に記載のシステム。
【請求項１２３】
最終ＦＦＴステージを除き、すべてのＦＦＴステージにおいて出力バッファアドレスは入力バッファアドレスに等しく、最終ＦＦＴステージでは、出力バッファアドレスは、出力バッファのビット１３〜１３−Ｎが０に設定され、Ｎが偶数の場合、出力バッファのビットＮ〜１が第１のマッピングシーケンス、Ｉ２，Ｉ１，Ｉ４，Ｉ３，．．．ＩＮ，ＩＮ−１に従い、Ｎが奇数の場合、出力バッファのビットＮ〜１が第２のマッピングシーケンス、Ｉ１，Ｉ３，Ｉ２，Ｉ５，Ｉ４，．．．ＩＮ，ＩＮ−１に従い、Ｉは入力バッファアドレスであり、ビット１は入力バッファアドレスおよび出力バッファアドレスの最低位ビットであるように生成される請求項１１５に記載のシステム。
【請求項１２４】
回転アドレス生成器は、算術関数を提供するメモリから新たな回転因子にアクセスする必要があるか否かを判定し、算術関数を提供するメモリから新たな回転因子にアクセスする必要があることを示す回転アドレス遷移インジケータを生成することと、回転アドレス遷移インジケータは１組のレジスタへ送信されることと、を含む請求項１１５に記載のシステム。
【請求項１２５】
予備回転アドレスは、予備回転アドレスの高位の（Ｎ−ｓ）ビットが入力バッファアドレスのビット（Ｎ−ｓ）〜１へマッピングされ、予備回転アドレスの残る低位ビットが０に設定され、ビット１は入力バッファアドレスの最低位ビットであるように生成される、請求項１１５に記載のシステム。
【請求項１２６】
予備回転アドレスおよび最終回転アドレスは１１ビットである請求項１１５に記載のシステム。
【請求項１２７】
制御語は予備回転アドレスとマスターカウンタの２つの低位ビットとの積の３つの高位ビットである請求項１１５に記載のシステム。
【請求項１２８】
回転因子は制御語にしたがって次のように操作される、すなわち、
第１に、制御語のビット１と制御語のビット２の排他的論理和が１の場合、回転因子の実数成分および虚数成分が交換され、回転因子の実数成分および虚数成分の符号は反転され、
第２に、制御語のビット２が１の場合、回転因子の実数成分の符号が反転され、
第３に、制御語のビット３が１の場合、回転因子の実数成分および虚数成分の両方の符号が反転される、請求項１１５に記載のシステム。
【請求項１２９】
残余は２：１マルチプレクサの第１の入力へ送信され、回転アドレス乗算器によって生成された積のビット９〜０は２：１マルチプレクサの第２の入力へ送信され、回転アドレス乗算器によって生成された積のビット１０は２：１マルチプレクサの選択した入力へ送信され、最終回転アドレスは２：１マルチプレクサの出力である請求項１１５に記載のシステム。
【請求項１３０】
マルチモード無線広帯域処理システムにおいて時間間隔内で命令コンテキスト間の切替を行うための方法であって、
クリティカルタスク動作を実行する工程と、各クリティカルタスク動作は時間間隔内に実行されることと、クリティカルタスクは複数のクリティカルタスク動作を含むことと、
非クリティカルタスク動作を実行する工程と、各非クリティカルタスク動作の実行は時間間隔の境界を越えることが可能であることと、非クリティカルタスクは複数の非クリティカルタスク動作を含むことと、
時間間隔において開始されたクリティカルタスク動作および非クリティカルタスク動作が次の時間間隔が開始する前に完了されている場合、クリティカルタスク動作および非クリティカルタスク動作の実行されないスリープモードに入る工程と、からなる方法。
【請求項１３１】
クリティカルタスク動作が実行されるまで、時間間隔において非クリティカルタスク動作が開始されない請求項１３０に記載の方法。
【請求項１３２】
１つ以上のクリティカルタスク動作は時間間隔内で実行される請求項１３０に記載の方法。
【請求項１３３】
コンテキストはハードウェアレジスタに格納される請求項１３０に記載の方法。
【請求項１３４】
ハードウェアレジスタの組の数によって最大の同時コンテキスト数が決定される請求項１３０に記載の方法。
【請求項１３５】
マルチモード無線広帯域処理システムにおいて時間間隔内で命令コンテキスト間の切替を行うためのシステムであって、
クリティカルタスク動作および非クリティカルタスク動作を含む複数の命令を格納しているメモリと、クリティカルタスクは複数のクリティカルタスク動作を含むことと、非クリティカルタスクは複数の非クリティカルタスク動作を含むことと、
命令を受信し実行するコントローラと、クリティカルタスク動作は時間間隔内で実行されることと、各非クリティカルタスク動作の実行は時間間隔の境界を越えることが可能であることと、
コントローラおよびメモリを含むマルチモード無線広帯域処理システムは、時間間隔において開始されたクリティカルタスク動作および非クリティカルタスク動作が次の時間間隔が開始する前に完了されている場合、クリティカルタスク動作および非クリティカルタスク動作の実行されないスリープモードに入ることと、からなるシステム。
【請求項１３６】
クリティカルタスク動作が実行されるまで、時間間隔において非クリティカルタスク動作が開始されない請求項１３５に記載のシステム。
【請求項１３７】
１つ以上のクリティカルタスク動作は時間間隔内で実行される請求項１３５に記載のシステム。
【請求項１３８】
コンテキストはメモリ要素に格納される請求項１３５に記載のシステム。
【請求項１３９】
メモリ要素の組の数によって最大の同時コンテキスト数が決定される請求項１３８に記載のシステム。
【請求項１４０】
マルチモード無線処理システムにおいて畳み込み演算を実行するための方法であって、
アドレス生成器に初期値および刻み値をロードする工程と、
初期値および刻み値に基づきアドレスを生成する工程と、
生成したアドレスを一連のメモリへ供給する工程と、
入力データを一連のレジスタへロードする工程と、一連のレジスタの数は一連のメモリの数と等しいことと、各レジスタは１つのメモリに関連していることと、
各レジスタに関連したメモリの生成したアドレスに格納されている値に各レジスタの内容を乗算し、一連の積を生成する工程と、
一連の積を加算し、積の総和を生成する工程と、
積の総和から出力ストリームを生成する工程と、からなる方法。
【請求項１４１】
生成したアドレスは最初に初期値に設定される請求項１４０に記載の方法。
【請求項１４２】
レジスタはフリップフロップ構造である請求項１４０に記載の方法。
【請求項１４３】
メモリはＲＯＭである請求項１４０に記載の方法。
【請求項１４４】
レジスタ内容とメモリ内容との乗算は並列に実行される請求項１４０に記載の方法。
【請求項１４５】
積の加算は複素加算木によって実行される請求項１４０に記載の方法。
【請求項１４６】
結合シフタからの入力は積の総和に含まれる請求項１４０に記載の方法。
【請求項１４７】
メモリｎのアドレスＡに格納されている値Ｒは、次式によって決定される請求項１４０に記載の方法。
【数１】
2009505486.tif 000004
（ここで、Ａは値０〜２５５に定義される）
【請求項１４８】
８つのメモリおよび８つのレジスタが存在する請求項１４０に記載の方法。
【請求項１４９】
各レジスタの内容と、各レジスタに関連したメモリの生成アドレスに格納されている値との間の続く乗算を実行する工程と、生成したアドレスは続く乗算において刻み値だけ増大されることと、
続く乗算の積を加算し、続く積の総和を生成する工程と、
続く積の総和に基づき続く出力ストリームを生成する工程と、を含む請求項１４０に記載の方法。
【請求項１５０】
アドレス生成器は生成したアドレスを刻み値だけ自動的にインクリメントする請求項１４９に記載の方法。
【請求項１５１】
マルチモード無線処理システムにおいて畳み込み演算を実行するためのシステムであって、
初期値および刻み値の与えられるアドレスを生成するためのアドレス生成器と、
一連のメモリと、
入力値を格納するための一連のレジスタと、一連の複素乗算器と、一連の複素乗算器、レジスタおよびメモリの数は等しいことと、各乗算器は１つのレジスタおよび１つのメモリに関連していることと、各乗算器は、関連するレジスタの内容と、関連するメモリの生成したアドレスに格納されている値との積を生成することと、
一連の積を加算し、積の総和を生成する複素加算木と、からなるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信システムおよび方法に関する。より詳細には、本発明はマルチモード無線広帯域信号プロセッサシステムおよび方法に関する。
【背景技術】
【０００２】
無線装置は、ますます高いデータレートを取扱う性能を必要としている。マルチメディアコンテンツに適合するために、例えば、無線装置のデータレートが有線接続の装置の広帯域レートと一致することが必要な場合がある。無線装置のユーザは、複数の無線ネットワーク化技術によって異なる種類のコンテンツおよびサービスを取得するために、ますます多機能な、多技術の装置を要求している。
【０００３】
小型の携帯装置へ広帯域機能を実装する多くの試みがなされている。例えば、Ｗｉ−Ｆｉ８０２．１１として一般に知られている無線データ技術では、高品質（高解像度）のストリーミングビデオおよびイメージコンテンツなどの要求用途を取扱うための高速性能が提供される。しかしながら、従来の８０２．１１の実装では、ユーザが許容可能である、電力消費量パラメータが満たされることはない。現在利用可能である電力消費が最低の８０２．１１の実装でも、バッテリ駆動の装置では、「通話時間」（音声、データまたはビデオが転送されている作動状態）は非常に制限される。
【０００４】
許容可能な電力消費の８０２．１１の実装の考案を除き、別の課題は、８０２．１１、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅｂａｎｄ）、ＷｉＭａｘ（８０２．１６ｄ、８０２．１６ｅ）、８０２．２０ならびに３Ｇおよび４Ｇのセルラーシステムなど、２つ以上のネットワーク化動作モードをサポートする無線実装を確立することである。無線装置は様々な無線ネットワーク化技術を提供可能である必要がある。１つの装置において複数のネットワーク化標準および技術にしたがって動作する性能は、「マルチモード」機能と呼ばれる。
【０００５】
大抵の従来の移動体装置は、デジタル信号プロセッサ（ＤＳＰ）ベースであるか、特定用途向け集積回路（ＡＳＩＣ）ベースであるか、あるいはＡＳＩＣ／ＤＳＰのハイブリッドアーキテクチャである。電力効率、設計の柔軟性、および費用など、いくつかの技術的考察によれば、いずれの手法も広帯域無線に適切ではない。アーキテクチャの限界のため、従来のアプローチでは、電力消費の犠牲によってのみ高いデータレートを提供することができ、許容不能な短いバッテリ寿命が生じる。
【０００６】
日々新たな無線標準が導入されているので、それらの急速に発展する標準に継続的に適合するには、従来のＡＳＩＣ設計は充分に柔軟でない。新たな標準について集積回路設計サイクルが開始されると、必然的に発生する変更によって、再びＡＳＩＣチップのスクラッチまたは再スピンから開始する必要がある。１つの装置上にエンドユーザの要求する複数の無線機能を提供するために、ＡＳＩＣおよびＤＳＰアプローチでは単純に追加の「処理回路」を並列にスタックすることによってマルチモード機能がサポートされており、これによって各々の新たなモードのための装置容積および製造者負担が著しく増大している。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
広帯域性能および低電力消費を備えるマルチモード通信を提供する、通信システムおよびアーキテクチャの必要が存在する。また、論理アナライザによる観察および解析のために高周波数で通信装置の高等診断データを収集する性能の必要も存在する。さらに、複数のネットワークおよび複数の通信標準を通じて機能することの可能な無線通信装置を提供する必要が存在する。さらに、ベースバンド回路を削減し、ＡＳＩＣアルゴリズムを改良して極度に低電力／低費用であることの利点を得て、処理能力を上昇させ、電力消費、ゲート数、およびシリコン費用を削減する必要が存在する。
【０００８】
また、そのような通信システムにおいて入力および出力を制御する必要や、複数の通信標準を取扱うためのマルチモード無線処理システムにおいてサンプルバッファへの接続レートを動的に制御する必要も存在する。さらに、マルチモード無線処理システムにおいてプロセッサとのインタフェースを行う必要が存在する。さらに、電力消費を最小化するように、高速フーリエ変換（ＦＦＴ）を実行する必要が存在する。さらに、タスクのコンテキストに基づき、タスクおよびそのタスクのコンポーネントの動作の実行に優先順位を付ける性能の必要が存在する。また、マルチモード無線広帯域システムにおいて畳み込み演算を実行する必要が存在する。
【課題を解決するための手段】
【０００９】
代表的な一実施形態は、プロセッサ診断データを取得するための方法に関する。この方法は、命令を受信する工程と、診断メモリに対する出力通信ストリームの書込アクセスを可能とする工程と、第１の周波数で診断メモリへの書込を行う工程と、第２の周波数で診断メモリからの読取を行う工程とを含むことが可能である。ここで、第１の周波数は第２の周波数より大きい。
【００１０】
別の代表的な実施形態は、プロセッサ診断データを取得するためのシステムに関する。このシステムは、複数の命令を格納しているメモリと、複数の命令を受信して実行するコントローラと、第１の周波数で通信データを受信し、第２の周波数で通信データを出力する診断メモリとを含むことが可能である。ここで、第１の周波数は第２の周波数より大きい。
【００１１】
別の代表的な実施形態は、マルチモード無線処理システムにおいて入力および出力を制御する方法に関する。この方法は、マルチモード無線処理システムにおいて通信のための命令を受信する工程と、所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを、受信された命令のフィールドから決定する工程とを含むことが可能である。
【００１２】
別の代表的な実施形態は、マルチモード無線処理システムにおいて処理装置とのインタフェースを行うための入力／出力コンポーネントの構成に関する。この構成は、マルチモード無線処理システムにおいて処理装置へ入力データを供給するための複数の汎用入力と、マルチモード無線処理システムにおいて処理装置によって生成される出力データを受信するための複数の汎用出力とを含む。
【００１３】
別の代表的な実施形態は、マルチモード無線処理システムにおいて入力および出力を制御するためのシステムに関する。このシステムは、マルチモード無線プロセッサシステムにおける命令を含むメモリと、命令を受信し、命令のフィールドから、マルチモード無線処理システムにおける所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを決定するコントローラとを含むことが可能である。
【００１４】
別の代表的な実施形態は、マルチモード処理システムにおいてサンプルバッファへの接続レートを動的に制御する方法に関する。この方法は、マルチモード無線処理システムにおいて通信用の命令を受信する工程と、データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次（ｓｅｒｉａｌｌｙ）接続されるレートを決定する工程とを含むことが可能である。
【００１５】
別の代表的な実施形態は、マルチモード処理システムにおいてサンプルバッファへの接続レートを動的に制御するためのシステムに関する。このシステムは、マルチモード無線処理システムにおけるマルチモード無線プロセッサ通信用の命令を含むメモリと、命令を受信し、データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次接続されるレートを決定するコントローラとを含むことが可能である。
【００１６】
別の代表的な実施形態は、２つのプロセッサのインタフェースを行う方法に関する。この方法は、第１のプロセッサに直接的にアクセス可能でないメモリにアクセスするために第１のプロセッサにて読取／書込要求を生成する工程と、ターゲットメモリへの直接的なアクセスを有する第２のプロセッサにて読取／書込要求を受信する工程と、第２のプロセッサにて読取／書込動作を完了する工程と、読取／書込動作が完了したことの表示（ｉｎｄｉｃａｔｉｏｎ）を第１のプロセッサにて受信する工程とを含むことが可能である。
【００１７】
別の代表的な実施形態は、２つのプロセッサのインタフェースを行うためのシステムに関する。このシステムは、第１のプロセッサに直接的にアクセス可能でないメモリにアクセスするために読取／書込要求を生成する第１のプロセッサと、読取／書込要求を受信し、ターゲットメモリへの直接的なアクセスを有し、読取／書込動作を完了させる第２のプロセッサと、ターゲットメモリと、第１のプロセッサと第２のプロセッサとの間で通信を行うための手段とを含むことが可能である。
【００１８】
別の代表的な実施形態は、２つのプロセッサの間のインタフェースに関する。このインタフェースは、第１のプロセッサにて読取／書込要求を生成するための手段と、いずれかのプロセッサによって状態ビットを設定するための手段と、両方のプロセッサによって状態ビットのポーリングを行うための手段と、２つのプロセッサの間で追加のデータの通信を行うための手段とを含むことが可能である。
【００１９】
別の代表的な実施形態は、マルチモード無線処理システムにおいて高速フーリエ変換（ＦＦＴ）を実行する方法に関する。この方法は、入力ベクトルを入力バッファにロードする工程と、第２のカウンタおよび変数Ｎを初期化する工程と、ＦＦＴステージを実行する工程と、ｓをＮと比較し、ｓ＝Ｎとなるまで追加のＦＦＴステージを実行する工程とを含むことが可能である。ここで、Ｎ＝ｌｏｇ２（入力ベクトルサイズ）であり、ｓは第２のカウンタの値である。ＦＦＴステージは、入力バッファのデータに対しベクトル演算を実行する工程と、結果を出力バッファに送信する工程と、第２のカウンタの値を進める工程と、入力バッファおよび出力バッファの役割を切り替える工程とを含むことが可能である。ＦＦＴステージにおけるベクトル演算は、一度に４つの入力データに対し基数４（Ｒａｄｉｘ−４）のＦＦＴベクトル演算を実行する工程と、その結果得られる出力ベクトルに回転（Ｔｗｉｄｄｌｅ）因子を乗算する工程とを含むことが可能である。回転因子を生成する方法は、回転因子の制御操作のための制御語を生成する工程と、生成された回転アドレスに基づきメモリから回転因子にアクセスする必要がある否かを判定する工程とを含むことが可能である。回転因子にアクセスする必要がある場合、回転因子を生成する方法は、さらに、メモリから回転因子の読取を行う工程と、制御語に基づき回転因子を操作する工程と、操作された回転因子を処理装置に格納する工程とを含むことが可能である。
【００２０】
別の代表的な実施形態は、マルチモード無線処理システムにおいて高速フーリエ変換（ＦＦＴ）を実行するためのシステムに関する。このシステムは、処理装置へ算術関数を提供するためのメモリと、ＦＦＴアルゴリズムを実行するための命令を格納しているプログラムメモリと、プログラムメモリから命令を受信し、実行するための命令コントローラと、ＦＦＴアルゴリズムの連続的なＦＦＴステージにおいて入力バッファおよび出力バッファとして交互に機能する１対のバッファとを含むことが可能である。
【００２１】
この代表的な実施形態における処理装置は、４つの入力ベクトルに対し８つの複素加算を実行し、４つの出力ベクトルを生成する基数４のＦＦＴエンジンと、入力バッファから４つの入力ベクトルを逐次受信し、４つの入力ベクトルを基数４のＦＦＴエンジンへ並列に送信するためのシリアル−パラレル変換器と、４つの生成された出力ベクトルを並列に受信し、回転乗算器および出力バッファへ４つの出力ベクトルを逐次出力するためのパラレル−シリアル変換器と、操作された回転因子を処理装置に格納するための１組のレジスタと、制御語に基づき回転因子を操作する回転オクタント（ｏｃｔａｎｔ）操作器と、所与のＦＦＴステージにおけるＦＦＴアルゴリズムの進行を監視するためのループ変数として用いられるマスターカウンタと、ＦＦＴアルゴリズムの現在のステージを追跡するためのループ変数として用いられる第２のカウンタと、入力バッファアドレスを生成する入力アドレス生成器と、最終ＦＦＴステージが実行されており、かつ、Ｎが奇数のときを除いて、すべてのＦＦＴステージにおいて入力バッファアドレスが出力バッファアドレスとして用いられることと、Ｎ＝ｌｏｇ２（入力バッファのデータのサイズ）であることと、予備回転アドレスを生成するための回転アドレス生成器と、Ｎが奇数の場合、最終ＦＦＴステージにおいて出力バッファアドレスを生成するダイビット（ＤｉＢｉｔ）インタリーブ処理生成器と、制御語および最終回転因子アドレスを生成するための回転アドレス乗算器とを含むことが可能である。
【００２２】
別の代表的な実施形態は、プロセッサ診断データを取得するためのシステムに関する。このシステムは、複数の命令を格納しているメモリと、複数の命令を受信して実行するコントローラと、第１の周波数で通信データを受信し、第２の周波数で通信データを出力する診断メモリとを含むことが可能である。ここで、第１の周波数は第２の周波数より大きい。
【００２３】
別の代表的な実施形態は、プロセッサ診断データを取得するためのシステムに関する。このシステムは、プログラムメモリから命令を受信するコントローラと、受信される命令に基づきコントローラによってデータの受信が可能とされる診断メモリとを含むことが可能である。診断メモリは、第１の周波数で通信データを受信し、第２の周波数で通信データを出力する。ここで、第１の周波数は第２の周波数より大きい。このシステムは、さらに、データを第２のレートで通信するために、診断メモリに結合されている外部インタフェースを含むことが可能である。
【００２４】
別の代表的な実施形態は、時間間隔内で命令コンテキスト間の切替を行う方法に関する。この方法は、時間間隔内に実行を完了するクリティカルタスク動作を実行する工程と、クリティカルタスクは複数のクリティカルタスク動作を含むことと、時間間隔の境界を越えることの可能な非クリティカルタスク動作を実行する工程と、非クリティカルタスクは複数の非クリティカルタスク動作を含むことと、時間間隔において開始されたクリティカルタスク動作および非クリティカルタスク動作が次の時間間隔が開始する前に完了されている場合、クリティカルタスク動作および非クリティカルタスク動作の実行されないスリープモードに入る工程と、を含むことが可能である。
【００２５】
別の代表的な実施形態は、マルチモード無線処理システムにおいて畳み込み演算を実行するための方法に関する。この方法は、アドレス生成器に初期値および刻み値（ｓｔｒｉｄｅ  ｖａｌｕｅ）をロードする工程と、初期値および刻み値に基づきアドレスを生成する工程と、生成したアドレスを一連のメモリへ供給する工程と、入力データを一連のレジスタへロードする工程と、各レジスタに関連したメモリの生成したアドレスに格納されている値に各レジスタの内容を乗算する工程と、その結果得られる乗算の積を加算する工程と、その結果得られる総和にづき出力を生成する工程とを含むことが可能である。メモリの数およびレジスタの数は等しく、各レジスタは関連するメモリを有する。
【００２６】
別の代表的な実施形態は、マルチモード無線処理システムにおいて畳み込み演算を実行するためのシステムに関する。このシステムは、初期値および刻み値の与えられるアドレスを生成するためのアドレス生成器と、一連のメモリと、入力値を格納するための一連のレジスタと、一連の複素乗算器と、一連の複素乗算器、レジスタおよびメモリの数は等しいことと、各乗算器は１つのレジスタおよび１つのメモリに関連していることと、各乗算器は、関連するレジスタの内容と、関連するメモリの生成したアドレスに格納されている値との積を生成することと、一連の積を加算し、積の総和を生成する複素加算木とを含むことが可能である。
【発明を実施するための最良の形態】
【００２７】
図１には、無線広帯域信号処理システム１０を示す。無線広帯域信号処理システム１０は、プログラムメモリ１２、命令コントローラ１４、および処理装置１６，１８，２０を備えることが可能である。また、このシステム１０は、サンプルバッファ２２，２４，２６と、１ポート（ｓｉｎｇｌｅ−ｐｏｒｔ）メモリ２８，３０，３２と、４ポートメモリ３４，３６とを備えることが可能である。プログラムメモリ１２は、命令コントローラ１４によって用いられる、プログラムされた命令を格納する。処理装置１６，１８，２０は、復調処理などのベクトル処理を実行するように構成される。例えば、処理装置１６は、各クロックにおいて計算される畳み込み演算用に構成されることが可能であり、処理装置１８は、各クロックにおいて基数４のバタフライが実行されるＦＦＴ機能用に構成されることが可能であり、処理装置２０は、逆拡散、ベクトル加算、ベクトル減算、内積および成分毎の乗算など、他のベクトル演算用に構成されることが可能である。追加の処理装置、より少ない処理装置、または異なる処理装置を備えることが可能である。１つ以上の代表的な実施形態では、処理装置１６，１８，２０へ算術関数を提供するためにメモリ３８を備える。メモリ３８は、リードオンリメモリ（ＲＯＭ）であることが可能である。
【００２８】
命令コントローラ１４は、プログラムメモリ１２からベクトル命令を受信する。受信されたベクトル命令に基づき、命令コントローラ１４は入力および出力用のポートメモリを選択することが可能である。無線広帯域信号処理システム１０の代表的な動作は、「デジタル変調・復調を実行するマルチモードの方法および装置（Ｍｕｌｔｉ−Ｍｏｄｅ  Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ｄｉｇｉｔａｌ  Ｍｏｄｕｌａｔｉｏｎ  ａｎｄ  Ｄｅｍｏｄｕｌａｔｉｏｎ）」と題する米国特許出願第１０／６１３，４７６号明細書に記載されている。その全体を引用によって本明細書に援用する。
【００２９】
無線広帯域信号処理システム１０は、さらに診断メールボックス４４を備える。診断メールボックス４４はランダムアクセスメモリ（ＲＡＭ）などのメモリであり、処理装置の出力へ（示すように）または無線広帯域信号処理システム１０の入力へ結合されている。いずれの実装においても、診断メールボックス４４は高周波数で通信データを受信し、より低い周波数で論理アナライザ４６へ通信データを送信する。論理アナライザ４６は診断メールボックス４４の内容のログを生成する。次いで、無線広帯域信号処理システム１０の動作を理解し、デバッグ動作、故障解析などを実行するために、診断メールボックス４４の内容を調査、研究することが可能である。
【００３０】
図２には、代表的な一実施形態による診断メールボックス４４の使用を示す。動作中、命令コントローラ１４はプログラムメモリ１２から命令を受信する。この命令は、通信されている命令の種類に関する情報を有する診断メールボックスフィールドを含む。診断メールボックス４４へ出力ストリームの書込が行われる場合、診断メールボックスフィールドは論理値１（ｌｏｇｉｃａｌ  ｏｎｅ）に設定される。命令コントローラ１４は、ベクトル命令出力期間に診断メールボックス４４の書込アクセスが可能となるように、必要な時間整列を実行する。診断メールボックス４４に対する書込の発生するレートは、Ｆｗｂｓｐである。診断メールボックス４４からの読取動作は、より低い同期レートＦｒｅａｄで発生する。これは、チップ外（ｏｆｆ−ｃｈｉｐ）のアクセスにおいてサポート可能なレートである。代表的な一実施形態では、同期レートＦｒｅａｄは４０ＭＨｚ以下であり、４０ＭＨｚ以上であるＦｗｂｓｐの１／５〜１／１０である。Ｆｒｅａｄ≧ＮＦｗｂｓｐであり、ここでＮは、診断メールボックスフィールドが１に設定される命令に関連しているクロックの逆数である。
【００３１】
代替の一実施形態では、プログラムメモリ１２から受信されるベクトル命令が変化する場合には常に、命令コントローラ１４は、診断メモリに対する書込アクセスを可能とする。これによって、診断メールボックス４４が出力ストリームの連続的なログを提供することが可能となる。
【００３２】
図３には、診断メールボックスが２ポート（ｄｕａｌ−ｐｏｒｔ）ＲＡＭ  ５４を介して実装される、好適な一実施形態を示す。２ポートＲＡＭ  ５４の外部の論理部（図示せず）は、アドレスの値がＲＡＭの物理サイズを超えるときに０に戻る（ｗｒａｐ）こと（例えば、アドレスシーケンスは、Ｎ−３，Ｎ−２，Ｎ−１，０，１，２，．．．であり、ここでＮは、２ポートＲＡＭ  ５４においてアクセス可能な位置の数である）を除き、各アクセスの後、読取アドレスおよび書込アドレスを連続的にインクリメントする。したがって、２ポートＲＡＭ  ５４はＦＩＦＯのように機能する。
【００３３】
診断可能化命令に関連した命令の出力が生成されるとき、２ポートＲＡＭ  ５４の書込ポートは使用可能となる。２ポートＲＡＭ  ５４の読取ポートは、書込ポートより低い周波数で動作する。書込アドレスＡ＿ｗｒｉｔｅが読取アドレスＡ＿ｒｅａｄより大きいとき、２ポートは、Ａ＿ｗｒｉｔｅ＝Ａ＿ｒｅａｄとなるまで、読取ポートの外からクロック提供される有効な情報を有する。Ａ＿ｗｒｉｔｅが大きくなりすぎて、読取ポートの外からクロック提供されるものを超えて情報の書込が行われる場合、エラー状態を指示するオーバフローインジケータが設定され、ラッチされる。
【００３４】
代表的な一実施形態では、メールボックスサポート論理部５３は、２ポートＲＡＭ  ５４が動作を実行するのを補助する命令を備える。メールボックスサポート論理部５３は、書込アドレスおよび読取アドレスを受信する。この情報に応じて、メールボックスサポート論理部５３は、オーバフローインジケータを通信することが可能である。オーバフローインジケータは、上述のように、２ポートＲＡＭ  ５４に情報の書込が行われること（診断メールボックス４４は一杯であること）を示す。２ポートＲＡＭ  ５４がデータを受信する準備ができていること（診断メールボックス４４は空であること）を示すために、エンプティインジケータを通信することが可能である。メールボックスサポート論理部５３は、診断ストリームを介して論理アナライザ４６へＲＡＭデータが通信されるとき、２ポートＲＡＭ  ５４に読取可能信号を通信する。
【００３５】
図４には、汎用入力出力（ＧＰＩＯ）命令フィールドを含むプログラムメモリ１２から受信される命令の、命令コントローラ１４による処理を示す。Ｎビットを有するＧＰＩＯ命令フィールドは、ＧＰＩ（汎用入力）もしくはＧＰＯ（汎用出力）を指示すること、またはゼロのＧＰＩＯコードによって、いずれも指示しないことが可能である。Ｎビットのフィールドによって、２Ｎ−１のＧＰＩおよびＧＰＯの組合せまで、アドレス指定を行うことが可能である。ＧＰＩＯコードによって、命令コントローラ１４のトリガを行い、ＧＰＩ選択論理部５５またはＧＰＯ選択論理部５７を用いることが可能である。
【００３６】
汎用出力（ＧＰＯ）動作を用いて、無線広帯域信号処理システム１０において利用される無線広帯域信号プロセッサ（ＷＢＳＰ）の外部の要素に対する通信を制御することが可能である。外部要素の例には、プロセッサ（英国ケンブリッジのＡＲＭ社（ＡＲＭ，Ｌｉｍｉｔｅｄ）製のＡＲＭプロセッサとして知られているプロセッサなど）またはＲＦトランシーバが含まれる。これに加えて、以下に記載のＰＩＤレジスタなど、ＷＢＳＰの動作に関連したレジスタにＧＰＯ動作を用いてアクセスすることが可能である。プログラムメモリ１２における現在の命令に、ある要素に対してユニークなＧＰＩＯコードが存在するとき、ＧＰＯ選択論理部５７は、その要素に直接接続されており、かつ、その要素に対してユニークなイネーブルのパルスを与える。特定のイネーブルの意味は、要素に応じて異なってよい。通常、イネーブル信号は、要素に出力ストリームに対するデータのラッチを行わせる。あるいは、イネーブル自体が意味を有し、ラッチを行うことなく、出力ストリームが要素へ直接的に送信されることを可能とする。
【００３７】
汎用入力（ＧＰＩ）動作を用いて、ＷＢＳＰの外部の要素またはＷＢＳＰの動作に関連したレジスタから入力を受信することが可能である。入力動作の例には、ＷＢＳＰと外部プロセッサ（ＡＲＭなど）との間のインタフェースのサポート、フレーム誤差のレートの記録が含まれる。命令のＧＰＩＯフィールドにおいてアサートされたコードがＧＰＩに対応する場合、入力ストリームはその特定の要素に接続される。
【００３８】
図５には、汎用入力出力（ＧＰＩＯ）命令フィールドを有する命令の処理を含む、無線広帯域信号処理システム１０を示す。１つの入力またはＧＰＩ動作では、サンプルバッファ２２が、処理装置１６，１８，２０のうちの１つへ通信データの入力ストリームを通信する。別の入力またはＧＰＩ動作では、要素６６が処理装置１６，１８，２０のうちの１つへ通信データの入力ストリームを通信する。
【００３９】
図６には、処理反復時間（ＰＩＤ）の代表的な動的構成を示す。ＰＩＤは、受信モード（Ａ／Ｄからの）においてサンプルバッファ２２，２４，２６への書込が行われる、あるいは送信モード（ＤＡＣへの）においてサンプルバッファ２２，２４，２６からの読取が行われる、サンプルの数を参照する。無線広帯域信号処理システム１０において利用可能な代表的なバッファ技術は、「デジタル通信信号を処理するバッファの方法および装置（Ｂｕｆｆｅｒｉｎｇ  Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄｉｇｉｔａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｉｇｎａｌｓ）」と題する米国特許出願第１０／６１３，８９７号明細書に記載されている。その全体を引用によって本明細書に援用する。
【００４０】
ＰＩＤ、すなわち、サンプルバッファ２２，２４，２６への書込の行われたサンプルの数によって、バッファスキームの進行されるレートが決定される。換言すると、ＰＩＤは、サンプルを受信するためにサンプルバッファ２２，２４，２６が接続されるプログラムレートである。小さなＰＩＤは、少ない時間においてサンプルが利用可能である（ＲＸ上で）または利用可能となる（ＴＸ上で）、遅延時間の少ない状況を表す。より大きなＰＩＤによって、本質的により有効な、より長いベクトル演算が可能となる（命令のための初期の処理遅延はより多くの出力データを通じて償却される）ので、より大きな処理効率が可能となる。
【００４１】
サンプルバッファ２２，２４，２６の進行のレートを決定するパラメータには、ＧＰＩＯ命令を介してアクセス可能である。現在の命令のＧＰＩＯフィールドが値１を格納しているとき、出力ストリームはサンプルバッファが進行されるレートを制御するレジスタへルーティングされる。そのため、命令コントローラ１４が動的にＰＩＤを変更する能力によって、小さい遅延時間と大きい遅延時間との間のリアルタイムなトレードオフが可能となる。例えば、より長いベクトル演算が実行中であるとき、あるいは実行が予想されるとき、より長いＰＩＤを用いることが可能である。これに加えて、特定のシンボルレートを有する標準においては、一部のＰＩＤが本質的に優れている（例えば、８０２．１１ｇには４マイクロ秒が本質的に適当である）。
【００４２】
図７には、１つ以上の代表的な実施形態による、ＡＲＭプロセッサなどのプロセッサ、および無線広帯域信号処理システム１０と共に利用される無線広帯域信号プロセッサによって実行される動作を示す。特定の実施形態または実装に応じて、追加の動作、より少ない動作、または異なる動作が実行されてよい。
【００４３】
１つ以上の代表的な実施形態では、ＷＢＳＰは信号プロセッサとして用いられ、その場合、ＡＲＭプロセッサなど、主プロセッサの制御下にある必要がある。このため、ＡＲＭプロセッサはＷＢＳＰに対し読取および書込を行う性能を有する必要がある。図７に示すインタフェースは、完全にソフトウェア定義されたものであるため、非常に柔軟である。任意のプロトコルをサポートするインタフェースを定義するように、ＡＲＭプロセッサおよびＷＢＳＰをプログラムすることが可能である。
【００４４】
「読取」要求は、特定のＷＢＳＰバッファ内部の特定のメモリ位置の内容をＡＲＭプロセッサに通信するための機構である。「書込」要求は、ＷＢＳＰプロセッサの特定のバッファ内部の特定のメモリ位置へ配置される特定の値を、ＡＲＭプロセッサからＷＢＳＰプロセッサに通信するための機構である。
【００４５】
「読取」要求は、ＡＲＭプロセッサが、較正、ホストＧＵＩディスプレイのＰＨＹ統計（ＲＳＳＩなど）、ＡＲＭ処理に対する動的アルゴリズム入力など、様々な目的でＷＢＳＰプロセッサからアクセスできる情報をサポートする。「書込」要求は、ＴＸ上のＤＣ除去（ＩおよびＱ）、データレートの関数としてのＴＸ出力の更新、モデム８０２．１１ａ／ｂ／ｇの動作モード（２重捕捉が必要でないときに電力消費のより少ない処理を可能とする）、ＲＳＳＩ計算活性（やはり、電力消費の無効化を可能とする）など、ＡＲＭがＷＢＳＰへ渡す情報の通信をサポートする。
【００４６】
状態Ａ１では、ＡＲＭプロセッサは、読取または書込要求の要求を開始する。一般に、プロセッサは互いに対して非同期に動作しているので、ＷＢＳＰプロセッサは何らかの一般的な処理を含む状態Ｗ１にある。定期的に、ＷＢＳＰプロセッサは状態Ｗ２に遷移して、ＷＢＳＰ＿ＳＴＡＴＵＳビットを検査する。これらのビットはＧＰＩ命令のようにアクセス可能である。ＷＢＳＰ＿ＳＴＡＴＵＳ＝０の場合、状態Ｗ１において一般的な処理が再開する。ＷＢＳＰ＿ＳＴＡＴＵＳが０でない場合、状態Ｗ３に遷移し、ＡＲＭ命令が実行される。
【００４７】
動作が「読取」である場合、ＷＢＳＰプロセッサは、ＷＢＳＰ＿ＡＤＤＲＥＳＳにより指定されるアドレスにアクセスする。この１次元アドレスは、バッファ番号およびバッファ内のアドレスを含む、２次元のＷＢＳＰアドレスへ翻訳される。この位置の内容がアクセスされ、出力ストリームはＷＢＳＰ＿ＤＡＴＡに関連したＧＰＯへ宛てられる。
【００４８】
動作が「書込」である場合、ＷＢＳＰプロセッサは、ＷＢＳＰ＿ＡＤＤＲＥＳＳにより指定されるアドレスにアクセスする。この１次元アドレスは、バッファ番号およびバッファ内のアドレスを含む、２次元のＷＢＳＰアドレスへ翻訳される。ＷＢＳＰ＿ＤＡＴＡの値はＧＰＩ機構を介してアクセスされる。ＷＢＳＰプロセッサは、復号されたバッファ番号およびバッファ内のアドレスについて予定される出力ストリームに、この値をルーティングする。
【００４９】
「読取」および「書込」の両方の場合において、ＷＢＳＰ＿ＳＴＡＴＵＳの値は０にリセットされる。その間、ＡＲＭプロセッサは、状態Ａ２における一般的な処理を再開する。定期的に、ＡＲＭプロセッサは、自身のＭＭＩＯレジスタＡＲＭ＿ＷＢＳＰ＿ＡＣＣＥＳＳを介してＷＢＳＰ＿ＳＴＡＴＵＳの値を検査する。この値が０であるとき、ＡＲＭプロセッサは「読取」または「書込」命令が完了したことを認識する。この動作が読取であった場合、ＡＲＭプロセッサはＷＢＳＰ＿ＤＡＴＡレジスタの読取値にアクセスすることが可能である。別の「読取」または「書込」命令を開始する選択肢を含め、「読取」動作による影響を受けて、継続的な動作が発生してもよい（状態Ａ４）。同時に、「書込」動作による影響を受けて、ＷＢＳＰ動作が状態Ｗ３における動作を継続してもよい。
【００５０】
図８には、無線広帯域信号処理システム１０において実行される代表的なＦＦＴアルゴリズムにより実行される動作を示す。特定の実施形態または実装に応じて、アルゴリズムにおいて追加の動作、より少ない動作、または異なる動作が実行されてよい。ＦＦＴアルゴリズムをプログラムメモリ１２に存在するソフトウェアプログラムへ符号化することが可能である。動作８２では、ＦＦＴ／ＩＦＦＴ変換の行われるデータがバッファにロードされる。続く演算の動作を管理する設定が初期化される。第２のカウンタは２に初期化され、Ｎはｌｏｇ２（入力ベクトルの長さ）に設定される。動作８４では、ＧＰＩＯ命令第２３番によって、処理装置１８においてマスターカウンタがリセットされる。ＧＰＩＯ命令第１３番によって、処理装置１８（図１）にＦＦＴ長さ（Ｎ）が信号で送信される。より詳細に以下に記載するように、マスターカウンタはアドレス生成を担う。
【００５１】
動作８６では、処理装置１８が、ＦＦＴ／ＩＦＦＴアルゴリズムに関連したベクトル演算を実行する。１つ以上の実施形態では、ベクトル命令によって演算されるベクトルの長さの上限は１２８語である。１２８語より大きいデータ長については、充分な回数、ＦＦＴ／ＩＦＦＴアルゴリズムのループを行うことが必要である（例えば、データ長が２０４８語で、最大ベクトル長さが１２８語である場合、変換を実行するには１６回のＦＦＴ／ＩＦＦＴアルゴリズムの反復が必要である）。動作８７では、動作８６においてＦＦＴ／ＩＦＦＴアルゴリズムがデータのうち１つの１２８語のセグメントを演算した後にのみ（ＧＰＩＯ命令２３を介して明示的にリセットされない限り）、マスターカウンタの値がインクリメントされる。
【００５２】
動作８８では、第２のカウンタが２だけ進められ、ＦＦＴ／ＩＦＦＴ処理の次のステージへ進行する。また、入力および出力のバッファが切り替えられ、ＦＦＴステージ／ＩＦＦＴステージの間の処理のカスケード化が可能となる。動作８９では、ＦＦＴ／ＩＦＦＴ処理のすべてのステージが実行された場合、ＦＦＴ／ＩＦＦＴ変換されたデータがプロセッサによるさらなる処理について利用可能となる。
【００５３】
図１を参照すると、メモリ３８は処理装置１６，１８，２０へ算術関数を提供している。好適な実施形態では、メモリ３８はリードオンリメモリ（ＲＯＭ）である。ＲＯＭは比較的電力を浪費する。そのため、メモリ３８に対するアクセスを最小化することによって、必要な総電力が削減される。ＦＦＴアルゴリズムでは、基数４の演算の出力に用いられる回転因子を含む、算術関数用のメモリ３８にアクセスすることが必要である。
【００５４】
所与のステージのＦＦＴアルゴリズムによって演算された入力ベクトルのセグメントを再配列することによって、連続的な基数４の演算の出力に同じ組の３つの回転因子を用いることが可能である。例として、ｌｏｇ４（４０９６）＝６ステージが必要な４０９６語のＦＦＴを考える。ステージ１では、基数４の演算毎にメモリ３８から３つの回転因子がアクセスされる。なお、基数４の演算の第１の出力の回転因子は常に１であるため、出力のうちの３つのみが自明でない。しかしながら、次のステージ、すなわち、ＦＦＴアルゴリズムのステージ２では、以下に記載のように最適なアドレス生成スキームが用いられる場合、同じ組の３つの回転因子は４つの連続する基数４の演算に用いられてもよい。ＦＦＴアルゴリズムのステージ３では、同じ組の３つの回転因子が１６の連続する基数４の演算に用いられてもよい。ステージ４では、この数は、６４の連続する基数４の演算へと幾何学的に増加し続ける。
【００５５】
他の設計の考慮によって、メモリ３８に必要な回転因子空間の量を削減することが可能である。例えば、より大きな２の累乗はより小さな２の累乗のスーパーセットであるので、最大のＦＦＴサイズに対応する回転因子しか格納する必要はない。このため、回転アドレス生成によって、すべてのＦＦＴサイズが単一のテーブルに折り込まれることがサポートされる。また、アドレス生成スキームによって、最大のＦＦＴサイズについての回転因子の数の軽減もサポートされる。例えば、８１９２語のＦＦＴでは、隣接した回転因子は異なるｅｘｐ（ｊ×２×π／８１９２）の因子であり、これは１０ビットの固定小数点表現により解くには小さすぎる。そのため、奇数の値すべてを破棄した、削減された回転因子の組が格納される。対称性によって、２×πラジアンの完全な単位円を、回転因子に相当するπ／４（１オクタント）の記憶域によって構成することが可能である。この単位円によって、追加の１／８に必要な記憶域要件が削減される。回転オクタント操作ブロック（図９に関して記載の処理装置１８に示す）と結合された回転アドレス生成によって、この記憶域の軽減が行われる。
【００５６】
図９には、図１に関して記載のプロセッサ１８の機能のさらに詳細な図を示す。１つ以上の実施形態では、プロセッサが１ポートＲＡＭからデータを逐次受信するので、プロセッサ１８は基数４のＦＦＴを保証するために４つの入力（Ｘ１，Ｘ２，Ｘ３，Ｘ４）をバッファする。例外は、４の整数乗でないＦＦＴサイズに対する最終の基数２のステージである。この場合、２つの入力のみがバッファされ、Ｘ２およびＸ４は０に設定される。
【００５７】
基数４のＦＦＴエンジンは、無線広帯域信号処理システム１０の残部と比較して、減少されたクロック速度で動作する。多くの実施形態では、基数４のＦＦＴエンジンは、４分の１に減少されたシステムクロック周波数で動作する。例外は、４の整数乗でないＦＦＴサイズに対する最終の基数２のステージであり、この場合、システムクロック周波数は２分の１に減少される。基数４のＦＦＴエンジンは、８つの複素数の加算を実行して４つの出力を生成することが可能であるように最適化される。基数４のＦＦＴエンジンは、２組のカスケード化された加算器を備える。第１の組の加算器は、４つの複素数の入力に基づき、次の部分和を生成する：
Ｐ１＝Ｘ１＋Ｘ３
Ｐ２＝Ｘ１−Ｘ３
Ｐ３＝Ｘ２＋Ｘ４
Ｐ４＝Ｘ２−Ｘ４。
【００５８】
第２の組の加算器は、この部分和に基づき、次の出力を計算する：
Ｙ１＝Ｐ１＋Ｐ３
Ｙ２＝Ｐ２−ｊ×Ｐ４
Ｙ３＝Ｐ１−Ｐ３
Ｙ４＝Ｐ２＋ｊ×Ｐ４。
【００５９】
ここで、ｊによる乗算は、ＩおよびＱを切り替え、Ｉの出力を反転させることによって実装される。
一般に、この演算に切捨は存在しない。
【００６０】
各スカラー回転因子乗算の出力は、１１ビットまでで切り捨てられる。したがって、複素乗算器の出力は１２ビットである。ビット［１０：１］は処理装置１８の出力に対しマッピングされる。回転因子がアクセスされるレートを減少させるために、１でない回転因子を格納するための３つの記憶レジスタ９２が存在する。図１０〜１３に関連してさらに以下に記載するように、記憶レジスタ９２は、回転アドレスが回転アドレス生成器のマッピングブロックの外へ遷移するときのみ更新を行う。この遷移は、より詳細に以下に説明するように、動作１０６において生成される回転アドレス遷移インジケータによって、記憶レジスタ９２へ信号で送信される。乗算器９４は、１である回転因子が適用されるとき、第４の乗算毎の回避機能をサポートする。図１０に示し、以下に記載する乗算器１１０からの３ビットの制御語に基づき、アクセスされる回転因子は回転オクタント操作器９０によって、次のように操作される。回転因子は３つの演算のカスケード効果を受ける：
ビット１またはビット２のいずれか一方＝１の場合
回転因子のＩおよびＱを交換し、実数および虚数の符号を反転（ｎｅｇａｔｅ）
ビット２＝１の場合
回転因子の実数の符号を反転する
ビット３＝１の場合
回転因子の実数および虚数の両方の符号を反転する。
【００６１】
図１０は、図９に関連して記載したＦＦＴアルゴリズム用のアドレス生成において実行される動作を示す。特定の実施形態または実装に応じて、追加の動作、より少ない動作、または異なる動作が実行されてよい。動作１０４では、入力アドレスを生成するために、動作１０２によって供給されたマスターカウンタ情報が入力アドレス生成器によってマッピングされる。図１１には、マスターカウンタ情報の代表的なマッピングを示す。示すように、入力アドレスは、ＦＦＴアルゴリズムによって変換される入力ベクトルのサイズであるＮだけ占有される。図１１に示した代表的なマッピングでは、入力アドレスは長さ１３ビットである。高位の１３−Ｎビットは０に設定され、Ｎ＝ｌｏｇ２（ＦＦＴのサイズ）である。次の高位ビットはマスターカウンタのｓビットであり、ここで、ｓ＝２，４，．．．，Ｎ−２，Ｎ（Ｎが偶数の場合）、ｓ＝２，４，．．．Ｎ−１，Ｎ（Ｎが奇数の場合）である。また、入力アドレスの低位のビットは、マスターカウンタのＮ−ｓビットである。再び図１０を参照する。動作１０４によって入力アドレスが生成されると、入力バッファは入力アドレスを受信する。また、以下に記載の最終ステージを除き、出力バッファも入力アドレスを受信する。
【００６２】
動作１０６では、回転因子アドレスが生成される。図１２は、回転アドレス用の代表的なマッピングを示す。この代表的なマッピングには、動作１０４において生成される入力アドレスの再シャフルが含まれる。回転アドレスは１１ビットを有する。高位ビットは入力アドレスビット（Ｎ−ｓ）〜１である。回転因子の残る低位ビット（入力アドレスサイズ１１からＮ−ｓを減算することによって決定される）は、０に設定される。
【００６３】
新たな回転因子が必要であるか否かを判定するため、また、電力節約のため、遷移の決定は、メモリ３８（ＲＯＭなど）に対するアクセス数を制限するように行われる。回転アドレス遷移インジケータは、回転アドレスに変更または遷移が存在することと、新たな回転因子が必要であることとを示す、動作１０６によって生成される。回転アドレス遷移インジケータは、処理装置１８および算術関数メモリ３８において、記憶レジスタ９２へ送信される。メモリ３８がアクセスされるとき、３つの回転因子が読み出され、上述のように操作され、記憶レジスタ９２に格納される。
【００６４】
以下では、回転因子による記憶レジスタ９２の占有および回転因子の使用について記載する。この処理では、乗算器１１０を用いて、マスターカウンタの２つの低位ビット（ＬＳＢ）に回転アドレスを乗算する。この乗算の積（この代表的な実施形態では１３ビット）は複数の部分に分離される。それらのビットのうちの１０ビットは、総和器（ｓｕｍｍｅｒ）１１２およびマルチプレクサ１１４へ入力として提供される。総和器１１２は、この１０ビットを５１２から減算し、マルチプレクサ１１４の入力１へ結果を提供する。マルチプレクサ１１４の他の入力（入力０）は、乗算器１１０による乗算の結果から１０ビットを受信する。乗算結果の残るビットからの１ビットは、マルチプレクサ１１４に対する選択として用いられ、乗算結果の３つの高位ビットは、以前に参照された制御語としてプロセッサ１８の回転オクタント操作器９０へ提供される。マルチプレクサ１１４の出力は、回転因子を読み出すために算術関数メモリ３８へ送信されるアドレスである。
【００６５】
ＦＦＴの行われる入力ベクトルの長さが２の奇数乗（４の非整数倍）の長さを有する場合、出力バッファは、動作１０８において形成される入力アドレスがインタリーブ処理されたものを受信する。図１３に示すように、インタリーブ処理された入力アドレスは、Ｎの値に応じて異なる。Ｎは上述のようにｌｏｇ２（ＦＦＴのサイズ）を表す。図１３に示す入力アドレスの構成にしたがって、出力バッファへ提供される１３ビットのアドレスは、最初の１３−Ｎビットに０を含む。設計によっては、図１０〜１３に示す実行される処理では、回転因子を格納しているメモリ３８へのアクセスを制限することによって、電力を節約する。
【００６６】
図１４には、無線広帯域信号処理システム１０において実行されるコンテキスト切替処理により実行される動作を示す。実施形態または実装に応じて、追加の動作、より少ない動作、または異なる動作が実行されてよい。動作１４２では、クリティカルタスク１の動作が実行される。クリティカルタスクは、新たな処理反復間（ＰＩＤ）が開始する前に各々完了される必要のある、１つ以上の動作である。例えば、クリティカルタスク１は、処理反復時間（ＰＩＤ）命令が受信されるときに実行され、新たなＰＩＤが受信される前に各々完了する、複数の８０２．１１動作を含むことが可能である。クリティカルタスク１の動作が完了されると、動作１４４においてクリティカルタスク２の動作の実行が可能である。例えば、クリティカルタスク２は、中間バッファへＤＶＢサンプルをコピーすることに伴う動作であることが可能である。非クリティカルタスク３が完了される前にクリティカルタスク２の動作が完了される場合、動作１４６において非クリティカルタスク動作が実行される、プログラム誘導コンテキスト切替が実行される。非クリティカル動作はＰＩＤ境界を超えて延長してもよい。そのような非クリティカルタスク３は、ＤＶＢ復調であることが可能である。ＰＩＤ命令が受信されるとき、誘導コンテキスト切替が終了される。クリティカルタスク２が完了されるときに非クリティカルタスクが完了される場合、ＰＩＤ終了までスリープモードに入る。
【００６７】
コンテキストの従来の定義は、以前に終わったところからタスクを再開することができる１組の情報である。コンテキスト切替中、「現在の」タスクのコンテキストが格納され、「次の」タスクのコンテキストがロードされる。「現在の」タスクは以前に格納されたコンテキストをロードして戻すことによって、将来の何らかの時点で立ち戻られる。ＷＢＳＰの状態は１組のプロセッサレジスタによって定義される。示した例では、プロセッサレジスタは命令ポインタである。しかしながら、いくつかの追加のプロセッサレジスタが存在することも可能である。ＷＢＳＰは、コンテキストの完全な記述のための１組のメモリ要素（例えば、ハードウェアレジスタ）を備える。メモリ要素の組の数によって、最大の同時コンテキスト数が決定される。ＷＢＳＰでは、所与のコンテキストのための１組のメモリ要素に格納された情報が１組のプロセッサレジスタとしてロードされるとき、コンテキスト切替が発生する。ＷＢＳＰでは、すべての組のメモリ要素は、単一のクロックによりプロセッサレジスタへロードされる。この点において、ＷＢＳＰは命令の正常な定常的な実行を継続する。
【００６８】
図１５には、図１４に関連して記載したコンテキスト切替処理のタイミングを示す。ＰＩＤ１では、クリティカルタスク１の動作が開始される。クリティカルタスク１の動作はＰＩＤ２の開始の前に完了され、クリティカルタスク２の動作および非クリティカルタスク３の動作が実行されることが可能となる。ＰＩＤ２を受信すると、非クリティカルタスク３は停止され（まだ完了していないが）、クリティカルタスク１の動作が実行される。このように、ＰＩＤの受信によってクリティカルタスク動作の実行のトリガが行われるまで、処理は継続する。クリティカルタスクの動作は順番に実行され、まだ新たなＰＩＤが受信されない場合、非クリティカルタスク動作が実行されることが可能である。そのため、クリティカルタスク動作はＰＩＤ内に完了するが、非クリティカルタスクを実行するために不活性期間が利用される。
【００６９】
図１６には、無線広帯域信号処理システム１０における処理装置を示す。この処理装置は、畳み込み演算（ＦＩＲフィルタリング）およびタップローディング（ｔａｐ  ｌｏａｄｉｎｇ）の実行が可能である。アドレス生成論理部２０２へ初期値および刻み値が提供される。アドレス生成論理部２０２は、ＲＯＭ  １，ＲＯＭ  ２，ＲＯＭ  ３，ＲＯＭ  ４，ＲＯＭ  ５，ＲＯＭ  ６，ＲＯＭ  ７，ＲＯＭ  ８へ供給されるアドレスを生成する。処理装置によって、入力シフタ２０４にて入力データが受信される。入力シフタ２０４はタップローディングを実行して、受信されたデータをレジスタ２０６，２０８，２１２にロードする。レジスタはフリップフロップ構造であることが可能である。
【００７０】
複素乗算の演算は、アドレス生成論理部２２によって生成されるアドレスへ対応する位置でＲＯＭ構造にロードされたデータと、通信データとに対して実行される。これらの複素乗算の演算の積の総和が、複素加算木２１６によって求められる。結合ストリームを複素加算木２１６に供給する結合シフタ２１８によって、８並列の乗算を超える乗算が可能となる。このように、複数のタップを集積することによって畳み込みが構築される。このように、結合ストリーム入力を複素加算木２１６へ含めることによって、動的な範囲制御が可能となる。出力シフタ２２０は、処理装置からのデータの出力ストリームとして、複素加算木２１６からのデータをシフトする。
【００７１】
図１７には、図１６の処理装置のアドレス演算論理部２０２をより詳細に示す。ＧＰＩＯ命令を介し、アドレス生成論理部２０２によって、初期化されたアドレスが受信される。この初期化されたアドレスが、現在のアドレスである。ＲＯＭメモリ構造（図１６）へ通信されるアドレスは、現在のアドレス（Ａ０）、現在のアドレスに刻み値を加算したもの、現在のアドレスに刻み値掛ける２を加算したものなどである。ＲＯＭ構造からデータの読取が行われるにしたがって、現在のアドレスが刻み値だけインクリメントされる。そのため、アドレスのインクリメントは、「頂部」、すなわち、通信データの総和が求められる値を再びロードする必要なく、自動的に行われる。
【００７２】
図１６のＲＯＭ  １，ＲＯＭ  ２，ＲＯＭ  ３，ＲＯＭ  ４，ＲＯＭ  ５，ＲＯＭ  ６，ＲＯＭ  ７，ＲＯＭ  ８の内容は、次式を用いて決定可能である：
【００７３】
【数１】
2009505486.tif 000003
ここで、ＲはアドレスＡにおける第ｎ番目のＲＯＭの内容であり、Ａは値０〜２５５に定義されるアドレスである。
【図面の簡単な説明】
【００７４】
【図１】代表的な一実施形態による無線広帯域信号処理システムを示す図。
【図２】代表的な一実施形態による図１の無線広帯域信号処理システムの診断メールボックスの使用を示す図。
【図３】代表的な一実施形態による２ポートＲＡＭによって実装されるメールボックス診断機能を示す図。
【図４】代表的な一実施形態による汎用入力出力（ＧＰＩＯ）命令フィールドを含む命令の、図１の無線広帯域信号処理システムによる処理の図。
【図５】汎用入力および出力の動作を示す図１の無線広帯域信号処理システムの図。
【図６】処理反復時間の動的な構成を示す図１の無線広帯域信号処理システムの図。
【図７】代表的な一実施形態による図１の無線広帯域信号処理システムにおいて利用されるＡＲＭプロセッサおよび無線広帯域信号プロセッサ（ＷＢＳＰ）のプロセッサによって実行される動作を示す図。
【図８】代表的な一実施形態による図１の無線広帯域信号処理システムにおいて実行されるＦＦＴ動作を示す図。
【図９】図１の無線広帯域信号処理システムにおいてＦＦＴアルゴリズムを実行するプロセッサの機能を示す図。
【図１０】図９のＦＦＴアルゴリズムのアドレス生成処理において実行される動作を示す図。
【図１１】代表的な一実施形態による代表的な入力アドレスマッピングを示す図。
【図１２】代表的な一実施形態による代表的な回転アドレスマッピングを示す図。
【図１３】代表的な一実施形態による最終ステージ処理におけるインタリーブ処理マッピングを示す図。
【図１４】代表的な一実施形態によるコンテキスト切替動作を示す図。
【図１５】図１４のコンテキスト切替動作のタイミング図。
【図１６】図１の無線広帯域信号処理システムにおける処理装置を示す図。
【図１７】図１６の処理装置のアドレス演算論理部を示す図。
【図１】
2009505486.tif 000005
【図２】
2009505486.tif 000006
【図３】
2009505486.tif 000007
【図４】
2009505486.tif 000008
【図５】
2009505486.tif 000009
【図６】
2009505486.tif 000010
【図７】
2009505486.tif 000011
【図８】
2009505486.tif 000012
【図９】
2009505486.tif 000013
【図１０】
2009505486.tif 000014
【図１１】
2009505486.tif 000015
【図１２】
2009505486.tif 000016
【図１３】
2009505486.tif 000017
【図１４】
2009505486.tif 000018
【図１５】
2009505486.tif 000019
【図１６】
2009505486.tif 000020
【図１７】
2009505486.tif 000021
【手続補正書】
【提出日】平成20年8月29日(2008.8.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチモード無線処理システムにおいて高速フーリエ変換（ＦＦＴ）を実行するためのシステムであって、
ベクトル演算を実行するための処理装置と、
処理装置へ算術関数を提供するためのメモリと、
ＦＦＴアルゴリズムを実行するための命令を格納しているプログラムメモリと、
プログラムメモリから命令を受信し、実行するための命令コントローラと、
ＦＦＴアルゴリズムの連続的なＦＦＴステージにおいて入力バッファおよび出力バッファとして交互に機能する１対のバッファと、入力バッファのデータは複数のセグメントを含むことと、からなるシステム。
【請求項２】
処理装置は、
４つの入力ベクトルに対し８つの複素加算を実行し、４つの出力ベクトルを生成する基数４のＦＦＴエンジンと、
生成された出力ベクトルに、関連する回転因子を乗算するための回転乗算器と、回転因子は実数成分および虚数成分を有することと、
入力バッファから４つの入力ベクトルを逐次受信し、４つの入力ベクトルを基数４のＦＦＴエンジンへ並列に送信するためのシリアル−パラレル変換器と、
４つの生成された出力ベクトルを並列に受信し、回転乗算器および出力バッファへ４つの出力ベクトルを逐次出力するためのパラレル−シリアル変換器と、
操作された回転因子を処理装置に格納するための１組のレジスタと、
制御語に基づき回転因子を操作する回転オクタント操作器と、
所与のＦＦＴステージにおけるＦＦＴアルゴリズムの進行を監視するためのループ変数として用いられるマスターカウンタと、
ＦＦＴアルゴリズムの現在のステージを追跡するためのループ変数として用いられる第２のカウンタと、ｓは第２のカウンタの値であることと、
入力バッファアドレスを生成する入力アドレス生成器と、最終ＦＦＴステージが実行されており、かつ、Ｎが奇数のときを除いて、すべてのＦＦＴステージにおいて入力バッファアドレスが出力バッファアドレスとして用いられることと、Ｎ＝ｌｏｇ２（入力バッファのデータのサイズ）であることと、
予備回転アドレスを生成するための回転アドレス生成器と、
Ｎが奇数の場合、最終ＦＦＴステージにおいて出力バッファアドレスを生成するダイビットインタリーブ処理生成器と、
制御語を生成するための回転アドレス乗算器と、
回転アドレス乗算器によって生成される積のビット９〜０を５１２から減算し、残余を生成するための総和器と、
残余および回転アドレス乗算器によって生成される積から最終回転アドレスを生成するための２：１マルチプレクサと、を含む請求項１に記載のシステム。
【請求項３】
入力バッファアドレスは、マスターカウンタのビットＮ〜（ｓ＋１）が入力バッファアドレスのビット（Ｎ−ｓ）〜１にマッピングされ、マスターカウンタのビットｓ〜１が入力バッファアドレスのビットＮ〜（Ｎ−ｓ＋１）にマッピングされ、入力バッファアドレスのうちの残る高位ビットは０に設定され、ビット１はマスターカウンタおよび入力バッファアドレスの最低位ビットであるように生成される請求項２に記載のシステム。
【請求項４】
回転因子は制御語にしたがって次のように操作される、すなわち、
第１に、制御語のビット１と制御語のビット２の排他的論理和が１の場合、回転因子の実数成分および虚数成分が交換され、回転因子の実数成分および虚数成分の符号は反転され、
第２に、制御語のビット２が１の場合、回転因子の実数成分の符号が反転され、
第３に、制御語のビット３が１の場合、回転因子の実数成分および虚数成分の両方の符号が反転される、請求項２に記載のシステム。
【国際調査報告】
2009505486.tif 000022
2009505486.tif 000023
2009505486.tif 000024