"主プロセッサからの命令に従い、複素数データに対して無線通信に必要な複素演算を実行する複素演算回路と、前記複素演算回路と並列に動作し、メモリに対するアクセスを行うメモリコントローラと、を備え、前記複素演算回路が、前記メモリから順次読み出された第1の複素数データ系列に対する演算結果データを監視し、前記演算結果データに正規化処理を施すための正規化係数を検出するトレース回路、を含む複素演算処理用コプロセッサ。請求項1において、前記メモリコントローラが、前記メモリへの書込アドレスを自律的に発生する第1のアドレスジェネレータ回路と、前記メモリからの読出アドレスを自律的に発生する第2のアドレスジェネレータ回路と、前記演算結果データを一時的に格納し、前記書込アドレスに同期して前記メモリへ出力する第1のFIFOFirst-InFirst-Outと、前記読出アドレスに同期して前記メモリから入力される複素数データ系列を一時的に格納し、前記複素演算回路へ順次出力する第2のFIFOと、前記メモリと前記第2のFIFOの間に設けられ、前記正規化係数を用いて、前記メモリから第2の複素数データ系列として入力される前記演算結果データに正規化処理を施す前処理回路と、を含むことを特徴とした複素演算処理用コプロセッサ。請求項1又は2において、パイロット信号データを格納するためのレジスタを、さらに備え、前記複素演算回路が、前記レジスタを介して順次入力されるパイロット信号データ系列を、前記第1の複素数データ系列と共に前記複素演算に供することを特徴とした複素演算処理用コプロセッサ。請求項1~3のいずれか一項において、前記トレース回路が、前記演算結果データ中の実数部を示すビット列及び虚数部を示すビット列各々を、負数を呈する場合に反転する反転回路と、前記反転回路からの出力データに対して累積的な論理和演算を行い、前記論理和演算の結果を前記正規化係数の検出に供する累積論理和回路と、を含むことを特徴とした複素演算処理用コプロセッサ。請求項4において、前記トレース回路が、前記演算結果データの内から最小値を検出する検出回路と、予め設定された動作モードに応じて、前記論理和演算の結果を前記正規化係数の検出に供するか、又は前記最小値を前記正規化係数として検出するかを選択する選択回路と、をさらに含むことを特徴とした複素演算処理用コプロセッサ。請求項2において、前記前処理回路が、前記正規化処理として、前記演算結果データに対するシフト処理を行うシフト回路と、前記シフト回路におけるシフト量を設定するための制御レジスタと、を含むことを特徴とした複素演算処理用コプロセッサ。請求項6において、前記前処理回路が、前記正規化処理として、前記演算結果データに対する減算処理を行う減算器と、前記減算器における減算量と、前記シフト回路又は減算器のいずれを動作させるかを示す動作モードとを設定するための制御レジスタと、を含むことを特徴とした複素演算処理用コプロセッサ。請求項1~7のいずれか一項において、前記メモリコントローラは、前記メモリから読み出した一の複素数データを第1及び第2のレジスタへ格納し、前記複素演算回路が前記第1のレジスタから前記一の複素数データを取得した場合に、前記第1及び第2のレジスタを前記メモリから読み出した次の複素数データで更新し、前記複素演算回路が前記第2のレジスタから前記一の複素数データを取得した場合には、前記第1及び第2のレジスタを更新しない、ことを特徴とする複素演算処理用コプロセッサ。主プロセッサからの命令に従い、複素数データに対して無線通信に必要な複素演算を実行する複素演算回路と、前記複素演算回路と並列に動作し、メモリに対するアクセスを行うメモリコントローラと、を備え、前記メモリコントローラが、前記メモリへの書込アドレスを自律的に発生する第1のアドレスジェネレータ回路と、前記メモリからの読出アドレスを自律的に発生する第2のアドレスジェネレータ回路と、前記複素演算回路による演算結果データを一時的に格納し、前記書込アドレスに同期して前記メモリへ出力する第1のFIFOと、前記読出アドレスに同期して前記メモリから入力される複素数データ系列を一時的に格納し、前記複素演算回路へ順次出力する第2のFIFOと、前記メモリと前記第2のFIFOの間に設けられ、予め定められた正規化係数を用いて、前記複素数データ系列に正規化処理を施す前処理回路と、を含む複素演算処理用コプロセッサ。請求項1~9のいずれか一項に記載の複素演算処理用コプロセッサと、前記複素演算処理用コプロセッサを命令によって制御する主プロセッサと、を備えたプロセッサシステム。第1の課題は、無線通信システムにおける変調/復調/同期処理において、複数の無線通信方式における種々の変調/復調/同期処理に柔軟に対応できないことである。その理由は、一般的に変調/復調/同期処理の内容は、複数の無線通信方式間にて一部の処理は類似した処理があるものの、基本的にはその処理アルゴリズムや演算順序は各々の無線通信方式の仕様に大きく依存しており、且つ、必要演算量も比較的大きく、無線通信方式毎に専用のハードウェア回路を実装せざるを得ないためである。しかしながら、近年のシステムLSIの大規模化、高速化などによる処理能力向上に伴い、今後は、同一のシステムで複数の無線通信方式に対応できるような、マルチモード無線機やソフトウェア無線機と呼ばれる無線通信システムの実現が望まれている。更に、将来の仕様変更や機能拡張にも柔軟に対応できることが重要となっている。第2の課題は、柔軟性を重視して、無線通信システムにおける変調/復調/同期処理をプロセッサによるソフトウェア処理で実現する場合、正規化処理と複素演算処理を同時に実行する等、メモリアクセスレイテンシも含めて高速に処理できないことである。その理由は、一般的に、無線通信における変調/復調/同期処理では、1つのデータを正規化するためには例えば前後の複数のデータ信号の情報を必要とするためである。専用のハードウェア回路でパイプライン的に並列に実現する場合はそれほど問題とならないが、柔軟性や拡張性を重視してプロセッサによるソフトウェア処理で実現しようとした場合、一般的なプロセッサでは、正規化処理と複素演算処理を同時に実行するのは困難である。また、プロセッサ処理の場合には、一般的にはメモリアクセスするために一定のレイテンシが必要となるため、その分だけ演算器の稼働率が低下する、換言すると、処理時間が増加し高速化できないという大きな問題がある。ここで、無線通信における変調/復調処理の処理量は、一般的に要求されるデータ転送レートに依存する。近年の無線通信方式においては要求されるデータ転送レートは増加傾向にあるため、より低消費電力にて高速化を図ることがますます重要となっている。本発明は、上記の課題に鑑みてなされたものであり、複数の無線通信方式における種々の変調/復調/同期処理を、高速且つ効率的に1つのシステムで実行できるようにすることを目的とする。換言すると、本発明の目的は、専用のハードウェア回路で実現するような高速性や低消費電力性と、プロセッサによるソフトウェア処理で実現するような柔軟性との両者を兼ね備えたシステムを提供することにある。上記の目的を達成するため、本発明の第1の態様に係る複素演算処理用コプロセッサは、主プロセッサからの命令に従い、複素数データに対して無線通信に必要な複素演算を実行する複素演算回路と、前記複素演算回路と並列に動作し、メモリに対するアクセスを行うメモリコントローラとを備える。前記複素演算回路は、前記メモリから順次読み出された第1の複素数データ系列に対する演算結果データを監視し、前記演算結果データに正規化処理を施すための正規化係数を検出するトレース回路を含む。また、本発明の第2の態様に係る複素演算処理用コプロセッサは、主プロセッサからの命令に従い、複素数データに対して無線通信に必要な複素演算を実行する複素演算回路と、前記複素演算回路と並列に動作し、メモリに対するアクセスを行うメモリコントローラとを備える。前記メモリコントローラは、前記メモリへの書込アドレスを自律的に発生する第1のアドレスジェネレータ回路と、前記メモリからの読出アドレスを自律的に発生する第2のアドレスジェネレータ回路と、前記複素演算回路による演算結果データを一時的に格納し、前記書込アドレスに同期して前記メモリへ出力する第1のFIFOと、前記読出アドレスに同期して前記メモリから入力される複素数データ系列を一時的に格納し、前記複素演算回路へ順次出力する第2のFIFOと、前記メモリと前記第2のFIFOの間に設けられ、予め定められた正規化係数を用いて、前記複素数データ系列に正規化処理を施す前処理回路とを含む。さらに、本発明の第3の態様に係るプロセッサシステムは、前記複素演算処理用コプロセッサと、前記複素演算処理用コプロセッサを命令によって制御する主プロセッサとを備える。本発明によれば、複数の無線通信方式における種々の変調/復調/同期処理を、高速且つ効率的に1つのシステムで実行可能である。以下、本発明に係る複素演算処理用コプロセッサ及びこれを適用するプロセッサシステムの第1及び第2の実施の形態を、図1、図2、図3A及び図3B、図4~図10、図11A及び図11B、図12~図15、並びに図16A及び図16Bを参照して説明する。なお、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。第1の実施の形態構成例図1に示すように、本実施の形態に係るプロセッサシステム100は、制御用プロセッサ10と、これに接続される複素演算処理用コプロセッサ11とを備えている。プロセッサシステム100は、外部とのインタフェースとして、ブート制御や割り込み信号入力等を行うためのプロセッサ制御インタフェースと、命令メモリ101にアクセスするための命令メモリインタフェースと、ローカルメモリ102にアクセスするためのローカルメモリインタフェースと、外部ペリフェラルに制御アクセスするためのDSPインタフェースと、共有メモリにストリームアクセスするための共有メモリインタフェースとを含む。また、プロセッサシステム100は、パイロットジェネレータ70によって発生される既知のパイロット信号を連続的に入力するためのパイロットデータインタフェースも含む。なお、命令メモリ101は、制御用プロセッサ10の命令メモリインタフェースに直接接続されている。制御用プロセッサ10には、コプロセッサインタフェースを備えた一般的な制御用プロセッサプロセッサを用いることができる。制御用プロセッサ10は、コプロセッサインタフェースを介してコプロセッサ11に接続される。そして、命令メモリ101は、制御用プロセッサ10の命令メモリインタフェースに直接接続される。ここで、メモリセレクタ12は、制御用プロセッサ10からのデータアクセスと、コプロセッサ11からのメモリアクセスを調停する。なお、プロセッサコントローラ13は、外部からのブート制御、割り込み制御等を行うブロックである。外部からのローカルメモリ102や命令メモリ101へのアクセスは、外部から各メモリへ直接アクセス可能な構成にしても良いし、プロセッサ制御インタフェースを介して行うようにしても良い。一方、コプロセッサ11は、ローカルメモリコントローラ20と、共有メモリコントローラ21と、複素演算用のALU22とを含む。なお、以降の説明においては、ローカルメモリコントローラ及び共有メモリコントローラを区別すること無く、メモリコントローラと総称することがある。ローカルメモリコントローラ20及び共有メモリコントローラ21は、ALU22と並列に動作し、以てメモリアクセスレイテンシを隠蔽する。ローカルメモリコントローラ20は、ローカルメモリインタフェースを介して、ローカルメモリ102に対するストリームアクセスが可能である。一方、共有メモリコントローラ21は、共有メモリインタフェースを介して、共有メモリに対するストリームアクセスが可能である。具体的には、図2に示すように、メモリコントローラ20及び21の各々は、ALU22での演算処理とは並列にローカルメモリ及び共有メモリの各々にアクセスするために、内部に、書込アドレスジェネレータ30と、書込データFIFO31と、読出アドレスジェネレータ40と、読出データFIFO41とを含む。読出アドレスジェネレータ40は、メモリからの読出に際して、アドレスを投機的に発行するスプリットトランザクション機能を有する。また、各メモリコントローラ20及び21は、メモリからの入力データに正規化処理を施す前処理回路42も含む。なお、図1及び図2の例では、メモリコントローラが2個実装されているが、メモリコントローラは、1個であっても3個以上実装されても良い。また、ALU22は、複素算術演算器50と、複素論理演算器51とを含む。これらの演算器50及び51は、送信データに対する変調処理、受信データに対するチャネル推定処理や等化処理等の復調処理、同期処理等に用いることができる。具体的には、複素算術演算器50は、複数の無線通信方式における変調/復調/同期処理にて一般的に用いられる、複素加算、複素減算、複素乗算、複素積和演算、複素共役加算、複素共役減算、複素共役乗算、複素共役積和演算、複素絶対値演算等を実行する。一方、複素論理演算器51は、複素シフト演算、複素丸め演算、ムーブ命令等を実行する。そして、ALU22は、トレース回路60も含む。トレース回路60は、演算器50及び51から出力される複素演算結果を監視して、正規化係数を検出する。トレース回路60は、複素演算結果の例えば1系列分の連続データの最大有効ビット位置を、正規化係数として検出する。ここで、最大有効ビット位置とは、符号ビットを除いて、演算結果データが最上位ビット側から最初に1を呈するビットの位置である。さらに、コプロセッサ11は、レジスタファイル23と、コントローラ24とを含む。レジスタファイル23は、コプロセッサ命令にて使用可能な複数の汎用レジスタを含む。但し、レジスタファイル23は、制御用プロセッサ10内のレジスタファイルと兼用できる場合、その設置は必須では無い。また、コントローラ24は、コプロセッサ命令をデコードし、その結果に応じて、メモリコントローラ20及び21、ALU22、並びにレジスタファイル23に対する制御を行う。動作例次に、本実施の形態の動作を、図1、図2、図3A及び図3B、並びに図4~図9を参照して詳細に説明する。なお、以降の説明においては、メモリコントローラ20及び21、ALU22、並びにレジスタファイル23の具体的な構成についても、明らかに理解されるであろう。図1にプロセッサシステム100の基本的な動作を示すように、制御用プロセッサ10は、プロセッサ制御インタフェースや割り込みインタフェースを用いて起動されると、命令メモリ101から命令コードをフェッチし、ローカルメモリ102にアクセスしながらプロセッサ処理を実行する。また、制御用プロセッサ10は、必要に応じて、外部の共有メモリやペリフェラルブロックにもアクセスする。ここで、制御用プロセッサ10は、コプロセッサ11を制御して複素演算処理を実行するために、命令コードとしてコプロセッサ命令を使用する。コプロセッサ命令がフェッチされた場合、制御用プロセッサ10は、コプロセッサインタフェースを介してコプロセッサ処理を実行する。この時、図2に示すように、コプロセッサ11側では、コントローラ24がコプロセッサ命令をデコードし、ローカルメモリコントローラ20、共有メモリコントローラ21、ALU22、及びレジスタファイル23を制御することでデコードされたコプロセッサ命令を実行する。汎用レジスタファイル23の構成とこれに基づく動作図3Aに示すように、レジスタファイル23は、例えば、16個の32ビットレジスタCR0~CR15から成る。コプロセッサ11は、これらの汎用レジスタCR0~CR15を用いて、コプロセッサ内演算命令や、制御用プロセッサ-コプロセッサ間演算命令などを実行する。また、図3Bには、各レジスタに複素数データが格納される場合のビットフォーマットが示されている。この例では、各レジスタの下位16bitに実数部が、上位16bitには虚数部が割り当てられている。汎用レジスタCR0~CR15の内、幾つかのレジスタは、特殊レジスタとして動作する。図3Aに示す例では、レジスタCR0がゼロレジスタとして動作する。また、レジスタCR2及びCR3は、メモリアクセス用の特殊レジスタとして動作する。レジスタCR2はローカルメモリアクセス用に割り当てられ、レジスタCR3は共有メモリアクセス用に割り当てられる。この場合、ALU22からレジスタCR2への書込アクセスが行われると、ローカルメモリコントローラ20内の書込データFIFO31を経由してローカルメモリ102にデータが書き込まれる。この時の書込アドレスは、ローカルメモリコントローラ20内の書込アドレスジェネレータ30が指定するアドレスとなる。これにより、ALU22及びコントローラ24は、レジスタCR2への書込だけで、次のコプロセッサ命令を実行可能である。このため、結果として、1データ/サイクルの書込スループットでローカルメモリ102に演算結果データを書き込むことができる。一方、事前にローカルメモリコントローラ20内の読出アドレスジェネレータ40等を動作させ、ローカルメモリ102上のストリームデータの読出を開始しておくことで、ALU22は、レジスタCR2への読出アクセスを行うだけで、ローカルメモリ102上のデータを、ローカルメモリコントローラ20内の前処理回路42及び読出データFIFO41を経由して読み出すことが可能である。この時、ローカルメモリ102上のデータは事前にローカルメモリコントローラ20内部へ転送されている。このため、ALU22は、Waitすること無くレジスタCR2への読出アクセスを行うことが可能であり、結果として、1データサイクルの読出スループットでローカルメモリ102から演算対象のデータを読み出すことができる。同様に、ALU22は、レジスタCR3に対する書込アクセス及び読出アクセスを実施することで、メモリアクセスレイテンシを隠蔽しながら、共有メモリコントローラ21経由で共有メモリにアクセスすることが可能である。また、パラメータレジスタ設定により、他の2つのレジスタCR4及びCR5をピープ処理用のレジスタとして動作させることも可能である。前述した通り、レジスタCR2及びCR3は、ローカルメモリ102及び共有メモリにそれぞれアクセスするためのレジスタである。これらのレジスタCR2及びCR3に対する読出アクセスを行うと、読出データFIFO41の状態が更新される。一方、レジスタCR4及びCR5をピープ処理用のレジスタとして動作させ、これらのレジスタCR4及びCR5への読出アクセスを行った場合、レジスタCR4からはレジスタCR2と同じデータを、レジスタCR5からはレジスタCR3と同じデータを読み出すことができる。この時、読出データFIFO41の状態は更新されない。従って、レジスタCR4及びCR5から読み出したデータは、その後、レジスタCR2及びCR3から再度読み出すことができる。本ピープレジスタ機能は、同一のデータを複数回使用する場合に有用である。特に、種々の無線方式における変調/復調処理では、何度か同じデータを連続して使用する可能性があるため、本機能は非常に有用である。なお、レジスタCR4及びCR5は、パラメータ設定により、ピープ機能レジスタとして使用するか、通常の汎用レジスタとして使用するかを選択することも可能である。また、レジスタCR1をパイロット信号アクセス用の特殊レジスタとして動作させる。この場合、事前にパイロットジェネレータ70等を動作させておくことで、ALU22は、レジスタCR1への読出アクセスを行うだけで、パイロットジェネレータ70から連続的に入力されるパイロット信号を順次読み出すことが可能である。この時、ALU22は、Waitすること無くレジスタCR1への読出アクセスを行うことが可能であり、結果として、アクセスレイテンシを隠蔽して、1データサイクルのスループットで連続したパイロット信号にアクセスすることができる。さらに、レジスタCR6を、正規化係数算出のためにトレース結果格納用のレジスタとして動作させる。本レジスタCR6は、コントローラ24内のTRACINGレジスタ設定がOFFである時に通常の汎用レジスタとして動作し、ONである時にはALU22内のトレース回路60によって、複素演算結果の最大有効ビット位置を検出するためのトレース結果格納用処理用として用いられる。このような構成により、ローカルメモリ102、外部共有メモリ、及びパイロット信号へのアクセスに汎用レジスタを使用することができる。すなわち、ローカルメモリ102、外部共有メモリ、及びパイロット信号へのストリームデータアクセスを、コプロセッサ11内の汎用レジスタと同様の命令マッピングや処理サイクル数で実行可能である。なお、図3A及び図3Bでは、各レジスタのビットフォーマットを32ビットとし、実数部16ビット及び虚数部16ビットを1複素数データとして格納する場合を扱った。また、32ビット×16個のレジスタファイル構成を扱った。しかしながら、レジスタファイル23は、このような構成に限らず、16ビットや64ビットのレジスタを用いて構成しても良いし、8個や32個のレジスタ用いて構成しても良い。コプロセッサ命令のコード構成とこれに基づく動作図4は、コプロセッサ命令の命令コードの構成例を示している。OP=0のCADDは複素加算命令であり、入力レジスタのデータに対して複素加算処理を行い、その結果を出力レジスタに出力すべきことを意味する。ここで、CRs、CRt、及びCRdは、共にレジスタファイル23内の汎用レジスタ番号を示す。同様に、OP=1のCSUBは複素減算命令、OP=2のCMULは複素乗算命令、OP=3のCMACは複素積和演算命令である。また、OP=4のCJADDは複素共役加算命令、OP=5のCJSUBは複素共役減算命令、OP=6のCJMULは複素共役乗算命令、OP=7のCJMACは複素共役積和演算命令であり、OP=8のCABSは複素絶対値演算命令である。これらの命令は、ALU22内に後述する複素算術演算器50を実装することで、通常のプロセッサ処理では1複素データ分を処理するのに複数サイクルが必要な算術演算処理を、1サイクルで実行することが可能である。OP=9のCRNDは複素丸め演算命令であり、OP=AのCSHLは複素左シフト演算命令、OP=BのCSHRは複素右シフト演算命令である。これらの命令や後述する複素Exponent命令等は、複素論理演算器51によって実行される。ここで、図4の例では、コプロセッサ命令の一部の例として、コプロセッサ内での演算命令のみを示したが、これらの他に、命令コード内の固定ビットを11以外の値に変更することによって、制御用プロセッサ-コプロセッサ間演算命令やトレース回路60用のパラメータ設定命令を定義することも可能である。制御用プロセッサ-コプロセッサ間演算命令の例としては、図4の例ではコプロセッサレジスタを用いていた各命令のターゲットレジスタ部分を、制御用プロセッサ11内の汎用レジスタ番号とすることで、コプロセッサレジスタと制御プロセッサ11内の汎用レジスタの両方を入力として複素演算を実行することが可能となる。また、レジスタ転送命令の入力レジスタや出力レジスタに制御用プロセッサ11内の汎用レジスタを指定することで、制御プロセッサ-コプロセッサ間のレジスタ間転送命令などが定義できる。さらに、複素Exponent命令により、指定したコプロセッサレジスタの実数部および虚数部の各々の符号ビット数を求め、その結果を制御用プロセッサ11内の汎用レジスタに格納する命令も定義できる。この複素Exponent命令は、後述する正規化係数の算出に際して使用される命令である。なお、トレース回路60用の設定命令等のパラメータレジスタ設定命令は、ALU22やメモリコントローラ20及び21内の種々のパラメータレジスタに、即値又は制御用プロセッサ11内の汎用レジスタ値を設定できる命令である。ALU22の構成とその動作複素算術演算器50の構成とその動作図5は、ALU22内の複素算術演算器50の構成例を示している。複素算術演算器50は、そのインタフェースとして、入力データ、出力データ、及び演算モードを持つ。ここで、CRdが入力と出力の両方のインタフェースを持つのは、積和演算のためである。複素積和演算処理用に4個の乗算器と2個の加算器を設けることで、演算モードに応じて、例えば図4などで定義された各種の複素算術演算命令に1データサイクルにて対応することが可能である。このように、複素算術演算器50の構成および動作として、使用する複素算術演算命令に依存して動作モードを変更し、複素算術演算を実行することで、種々の無線通信方式の変調/復調/同期処理における複素演算処理に1データ/サイクルにてプログラマブルに対応可能である。さらに、メモリコントローラ20又は21、並びにパイロットジェネレータ70を動作させながら、for文などを用いて繰り返し複素演算処理命令を実行することにより、図5の回路構成では、ローカルメモリ又は共有メモリに格納された長いストリームデータ系列に対する複素演算処理を1データ/サイクルのスループットで実行することが可能である。複素論理演算器51の構成とその動作図6は、ALU22の全体構成例、その内部の複素論理演算器51の構成例、及びトレース回路60の構成例を示している。複素論理演算器51は、そのインタフェースとして、入力データ、出力データ、演算モードを持つ。複素論理演算器51は、主に、複素左シフト命令や複素右シフト命令、複素丸め演算命令のためのシフト回路と、複素Exponent命令のための最大有効ビット位置検出回路と、複素ムーブ命令等のためのビットマニピュレータとを含む。ここで、最大有効ビット位置検出回路は、入力データの最上位ビット側から何ビット目に始めて有効ビットである1が存在するかを検出し、そのビット位置を出力する演算回路である。複素論理演算器51は、演算モードに応じて、例えば図4などで定義された各種の複素論理演算命令に1データサイクルにて対応する。このように、複素論理演算器51は、使用する複素論理演算命令に依存して動作モードを変更し、複素論理演算を実行することで、種々の無線方式の変調/復調/同期処理における複素論理演算処理に1データ/サイクルにてプログラマブルに対応可能である。さらに、メモリコントローラ20又は21、並びにパイロットジェネレータ70を動作させながら、for文などを用いて繰り返し複素論理処理命令を実行することにより、図6の回路構成では、ローカルメモリ又は共有メモリに格納された長いストリームデータ系列に対する複素演算処理を1データサイクルのスループットで実行することが可能である。トレース回路60の構成とその動作図6に示すように、トレース回路60は、複素演算命令の演算結果、トレース制御信号、トレース用の特殊レジスタ値の3つを入力インタフェースとして、トレース演算処理を行い、トレース演算結果を再度トレース用の特殊レジスタに向けて出力する。ここで、トレース回路60は、コントローラ24からのパラメータレジスタ設定命令によるトレース制御により、他の任意の複素演算命令を実行しながら、サイクルオーバヘッドなしに並列にトレース演算処理を実行できるという特徴がある。トレース回路60は、トレース後に1回の複素Exponent命令にて最大有効ビット位置を検出可能なように、複素演算結果の実数部と虚数部の各々における有効ビットを1として、トレース用特殊レジスタを用いながら累積論理和処理を行う回路である。すなわち、トレース回路60は、複素演算結果の実数部と虚数部の各々において、正の数の場合はそのまま累積論理和処理を行い、負の数の場合には該当する実数部又は虚数部の全ビット分を反転させて累積論理和処理を行う。このようなトレース回路60を実装することにより、或るデータ系列分の複素演算結果の実数部と虚数部のそれぞれにおける有効ビット位置の最大値を、サイクルオーバヘッドなしに累積処理することが可能である。また、実際の最大有効ビット位置は、トレース後に、最上位ビット側から最初に1となるビット位置を検出する複素Exponent命令を1回実行することによって求めることが可能であり、実行した複素Exponent命令の結果を用いて、データのダイナミックレンジを調整するために正規化処理する場合の正規化係数を算出することが容易に可能となる。ここで、トレース制御信号は、コントローラ24内のパラメータレジスタ設定等により、トレース機能が有効で、且つ実行する複素演算命令の出力先レジスタ番号が、TRACINGレジスタにてトレース対象レジスタとして設定されたレジスタ番号と一致する場合にアクティブとなる信号である。すなわち、トレース対象レジスタ番号を設定できることにより、どの演算結果だけをトレース対象とするかを指定することが可能である。また、演算結果が32ビットの実数データフォーマットである場合と、又は図3Bに示したような16ビット×2の複素数データフォーマットである場合とをTRACINGレジスタのトレースモードによって指定可能である。このため、トレースモード設定によって、32ビット一括でトレース処理するのか、又は16ビットずつ実数部と虚数部を分離して処理するのかを柔軟に変更することも可能である。メモリコントローラ20及び21の構成とその動作図2に示したように、メモリコントローラ20及び21の各々は、制御用プロセッサ10及びコプロセッサ11の演算処理とは並列にローカルメモリ102又は共有メモリにアクセスするため、その内部に、書込アドレスジェネレータ30、書込データFIFO31、読出アドレスジェネレータ40、読出データFIFO41、及び前処理回路42を含む。書込アドレスジェネレータ30及び書込データFIFO31の構成とその動作コプロセッサ11からレジスタCR2又はCR3を介してメモリに演算結果であるストリームデータを書き込む場合、メモリコントローラ20又は21において、書込アドレスジェネレータ30及び書込データFIFO31が動作する。図7は、書込アドレスジェネレータ30及び書込データFIFO31の構成例を示している。まず、書込アドレスジェネレータ30は、制御レジスタとして、スタートレジスタ、ベースアドレスレジスタ、初期ポインタレジスタ、ステップレジスタ、メモリ長レジスタ、アクセス回数レジスタを含む。コプロセッサのパラメータ設定命令にてこれらの制御レジスタに値が設定され、起動されると、書込アドレスジェネレータ30は、書き込みデータFIFO31からのデータ出力要求の度毎にアドレスを自動的に生成し、発行する。基本的には、書込アドレスジェネレータ30は、ベースアドレスに対してカレントアドレスポインタの値を加算して得たアドレスを発行する。カレントアドレスポインタは、初期ポインタの値を初期値として、アドレス出力の度毎に、その値が更新される。書込アドレスジェネレータ30は、アドレス出力する度毎に、現在のアドレスに対して32ビットアドレス単位でステップ数分だけ加算すると共に、メモリ長サイズで剰余演算して得た結果を、次のカレントアドレスポインタとして出力する。よって、書込アドレスジェネレータ30は、上記の制御レジスタに加えて、図7に示す如くカレントアドレスポインタレジスタ、2つの加算器、剰余演算器、並びにアクセス回数カウント用の比較器及び減算器を含む。このような構成により、任意のメモリ領域に対して、昇順や降順での連続したアドレスでの書込を行うことができる。ステップ数を制御することで任意のアドレス間隔での書込を行うこともできる。また、メモリ長を制御することで、メモリの途中から書き込み始めて最後まで書き込んだら先頭に戻っての書込を行うこともできる。従って、柔軟なアドレスパタンを生成することができる。次に、書込データFIFO31について説明する。ALU22からレジスタCR2又はCR3に出力されたデータは、書込データFIFO31を経由してメモリに出力される。書込データFIFO31は、データが入力されると、書込アドレスジェネレータ30と協調動作して、データを順番にメモリ上の書き込みアドレスジェネレータ30が示すアドレスに格納する。このように、FIFOを用いてデータ出力することで、制御用プロセッサ10及びコプロセッサ11の演算命令とは並列にメモリアクセスでき、メモリ側がWaitした場合であっても演算命令には影響を与えない。このため、データ書込に際してのメモリアクセスレイテンシを隠蔽することが可能となる。ここで、メモリ側のWaitにより、書込データFIFO31がFullになってしまった場合に備え、レジスタファイル23を介してALU22側でのコプロセッサ命令の実行をWaitさせるようなWait制御機構も設ける。この場合、正常にコプロセッサ命令処理の実行を継続することができる。読出アドレスジェネレータ40、読出データFIFO41、及び前処理回路42の構成とその動作コプロセッサ11がレジスタCR2又はCR3を介してメモリからストリームデータを読み出す場合、メモリコントローラ20又は21において、読出アドレスジェネレータ40、読出データFIFO41、及び前処理回路42が動作する。図8は、読出アドレスジェネレータ40、読出データFIFO41、及び前処理回路42の構成例を示している。まず、読出アドレスジェネレータ40は、書込アドレスジェネレータ30と同様、制御レジスタとして、スタートレジスタ、ベースアドレスレジスタ、初期ポインタレジスタ、ステップレジスタ、メモリ長レジスタ、アクセス回数レジスタを含む。コプロセッサのパラメータ設定命令にてこれらの制御レジスタに値が設定され、スタートレジスタ設定により起動されると、読出アドレスジェネレータ40は、メモリからの読出アドレスを自律的に生成し、アクセス回数レジスタ分だけ連続的に発行する。読出アドレスを投機的に発行することにより、データ読出に際してのスプリットトランザクションに対応する。基本的には、読出アドレスジェネレータ40は、ベースアドレスに対してカレントアドレスポインタの値を加算して得たアドレスを発行する。カレントアドレスポインタは、初期ポインタの値を初期値として、アドレス出力の度毎に、その値が更新される。読出アドレスジェネレータ40は、アドレス出力する度毎に、現在のアドレスに対して32ビットアドレス単位でステップ数分だけ加算すると共に、メモリ長サイズで剰余演算して得た結果を、次のカレントアドレスポインタとして出力する。よって、読出アドレスジェネレータ40は、上記の制御レジスタに加えて、図8に示す如く実際にアドレスを計算するためのカレントアドレスポインタレジスタ、2つの加算器、剰余演算器、並びにアクセス回数カウント用の比較器及び減算器を含む。このような構成により、任意のメモリ領域に対して、昇順や降順での連続したアドレスでのデータ読出を行うことができる。ステップ数を制御することで任意のアドレス間隔での読出を行うこともできる。また、メモリ長を制御することで、メモリの途中から読み出し始めて最後まで読み出したら先頭に戻っての読出を行うこともできる。従って、柔軟な読み出しアドレスパタンを生成することができる。次に、読出データFIFO41及び前処理回路42について説明する。メモリから読み出したデータは、前処理回路42及び読出データFIFO41を介して、ALU22側に転送される。読出データは、前処理回路42にまず入力される。図8に示すように、前処理回路42は、左シフト量を設定するための正規化係数レジスタ、及び算術左シフトを実施するシフト回路を含む。ここで、左シフト量は、トレース回路60及び複素Exponent命令により算出された正規化係数に基づき設定される。シフト回路は、正規化係数レジスタの設定値に従い、メモリから読み出した複素数データの実数部と虚数部のそれぞれについて算術左シフトを実行する。このように、前処理回路42を用いて、或る複素数データ系列分に対して全て同様の算術左シフトを実行することにより、当該データ系列の全てのデータに正規化処理を施すことができる。また、読出アドレスジェネレータ40によるメモリへの投機アクセスと、後段の読出データFIFO41により、前処理回路42は、制御用プロセッサ10及びコプロセッサ11における演算処理に並列して、サイクルオーバヘッド無く動作できる。また、前処理回路42にて正規化処理が施された読出データは、読出データFIFO41に順次格納され、レジスタファイル23を介してALU22へ転送される。なお、メモリ側のWait等により、読出データFIFO41内に所望のデータがまだ存在しない場合に備え、レジスタファイル23を介してALU22側でのコプロセッサ命令の実行をWaitさせるようなWait制御機構も設ける。この場合、正常にコプロセッサ命令処理の実行を継続することができる。プロセッサシステム100の全体動作例図9の部分は、プロセッサシステム100の全体動作例を示している。具体的には、コプロセッサ11からレジスタCR2又はCR3を介してメモリから複素数データ系列を読み出し、チャネル推定等の所望の復調処理を行い、処理結果データを、レジスタCR2又はCR3を介してメモリに書き込む場合を扱っている。例えば、メモリ上のストリームデータに対してパイロット信号系列との複素共役乗算を行い、その後、その結果データに対して更に複素積和演算を行う場合の例である。但し、複素積和演算のためには入力データに正規化処理を施す必要がある場合を扱っている。本実施の形態の効果がより理解され得るよう、まずは図9の部分を参照して、従来技術である通常のDSPを使用した場合の動作を説明する。そして、これと比較する形で、部分を参照して本実施の形態の全体動作を説明する。図9の部分に示すように、DSPは、最初のパイロット信号との複素共役演算に先立って、パイロット信号系列の読出と複素数データ系列の読出とを行う。この時、それぞれの読出に係るアドレス計算サイクルやデータ読出サイクルが必要となる。また、複素数データ系列の格納場所が共有メモリ105のようにアクセスレイテンシを必要とする場合は、更に追加のアクセスサイクル数が必要となる。この後、DSPは、次の複素積和演算時に入力データに正規化処理を施す必要があるため、複素Exponent命令を実行し、以て正規化係数を算出する。複素Exponent命令の実行サイクルはデータ毎に必要である。そして、DSPは、これらの処理をfor文などで1データ系列分繰り返す。この後、DSPは、データ毎に正規化処理を実行し、正規化処理に続けて複素積和演算を実行する。そして、DSPは、これらの処理をfor文などで1データ系列分繰り返し、演算処理を終了する。一方、本実施の形態においては、メモリコントローラ20及び21内の各アドレスジェネレータ30及び40へのパラメータ設定と起動とが行われる。図9の部分に示すように、メモリコントローラ20又は21は、自律的にメモリからデータを読み出し、読み出しデータを読出データFIFO41に順次格納する。同様に、パイロットジェネレータ70に対しても動作開始設定することで、レジスタCR1にパイロット信号データ系列が順次格納される。また、コプロセッサのパラメータレジスタ設定命令により、コントローラ24内のTRACINGレジスタに対するトレース有効設定を実施しておく。そして、ALU22は、レジスタCR1及びCR3を入力、レジスタCR2を出力として複素共役演算命令を実行する。これにより、プロセッサシステム100は、共有メモリアクセスレイテンシ及びパイロットデータのアクセスレイテンシを隠蔽し、且つトレース回路60で演算結果の最大有効ビット位置をトレースしながら、演算結果データをローカルメモリ102に格納することが可能である。結果として、1データ系列分を処理するfor文の中は、同一の複素共役演算命令を繰り返すだけとなる。次に、ALU22は、複素積和演算命令の実行に先立ち、複素Exponent命令を1回だけ実行する。これにより、正規化係数が算出される。この正規化係数を、メモリコントローラ20及び21内の正規化係数レジスタに設定しておく。そして、ALU22は、for文などで1データ系列分の複素積和演算命令を実行する。この時、前処理回路42は、複素積和演算命令と並行して、入力データに正規化処理を施す。このように、正規化処理を含むようなチャネル推定等の復調処理をプロセッサシステム100を用いて実行することで、メモリコントローラ20及び21等への設定サイクルが数サイクル必要となるものの、for文の中の処理命令数は1つ又は複素積和演算命令に限定することが可能である。一般的に、1データ系列長はメモリコントローラ20及び21への設定サイクル数に比べて遥かに長く、for文の中の処理サイクル数が支配的となる。このため、図9中に点線矢印で示すように、プロセッサシステム100では、通常DSPを使用する場合に比べて約2倍以上の高速化が可能となる。すなわち、通常DSPでは、for文中に複素演算命令に加えて最大有効ビット位置の検出処理や入力データの正規化処理、場合によっては入力データやパイロットデータの読出処理サイクルも必要となる。一方、プロセッサシステム100では、トレース回路60及び前処理回路42へのパラメータ設定により、for文内における処理サイクル数を低減することが可能である。なお、コプロセッサ11内には、トレース回路60又は前処理回路42の一方を設けても良い。この場合も、演算処理の高速化及び効率化を図れることは明らかである。適用例図10は、上記のプロセッサシステム100を、一例として、IEEEにて規格化されている無線LAN方式やWiMAX方式などを含む複数の無線通信方式に対応可能な変調/復調処理モジュールに適用した場合の無線通信システムの構成例を示している。本無線通信システムは、モデムモジュール200と、RFインタフェースフェースモジュール204と、サーチモジュール205と、コーデックモジュール206とを含む。モデムモジュール200は、送信データに対する変調処理や受信データに対する復調処理を行う。サーチモジュール205は、対向通信装置との間の同期確立やタイミング探査を行う。コーデックモジュール206は、送信データに対する符号化処理や受信データに対する復号化処理を行う。また、本無線通信システムは、汎用プロセッサ201と、リソースマネージャ202と、共有メモリ203とを含む。汎用プロセッサ201は、上位レイヤの処理を実行する。共有メモリ203は、モジュール間でデータを転送するために用いられる。そして、モデムモジュール200は、上記のプロセッサシステム100、命令メモリ101、及びデータメモリ102、並びにインタフェース制御回路103、FFT/IFFT処理エンジン104、等化処理エンジン106、及びプロセッサシステム100とFFT/IFFT処理エンジン104の間のデータ転送に用いる共有メモリ105を含む。すなわち、変調/復調処理の内、その処理量が膨大でプロセッサ処理ではリソースが不足するFFTIFFT処理や等化処理のみを専用ハードウェアであるFFT/IFFT処理エンジン104や等化処理エンジン106を用いて実行し、それ以外のチャネル推定処理等の複数の無線通信方式における変調/復調処理については、プロセッサシステム100を用いて実行する。図11A及び図11Bは、本適用例における変調処理例及び復調処理例をそれぞれ示している。図11Aに示すように、送信側の変調処理としては、CODECモジュール206から転送された符号化処理後の送信データ系列に対して、一次変調処理、IFFT処理およびGI挿入、プリアンブル付加の順で処理を実施し、変調後のデータ系列を、シンボル整形処理や送信処理を行うRFインタフェースモジュール203に共有メモリ203経由で転送する。一方、図11Bに示すように、受信側の復調処理としては、RFインタフェースモジュール204から転送された受信データ系列に対して、SEARCHモジュール205で検出した受信タイミングにて、FFT処理およびGI除去、チャネル推定処理、等化処理、一次復調処理の順で処理を実施し、復調後の受信データ系列を、復号化処理を行うCODECモジュール206に共有メモリ203経由で転送する。図12は、図11Aに示した処理フローを実行する場合のシーケンス図である。送信データ系列に対する変調処理の場合、汎用プロセッサ201又はリソースマネージャ202が、処理起動コマンドをプロセッサシステム100に与える。このコマンドを受信したプロセッサシステム100は、共有メモリコントローラ21を用いて共有メモリ203から入力データ系列を読み出しながらALU22にて変調処理を行い、共有メモリコントローラ21を用いて共有メモリ105にデータを格納する。そして、プロセッサシステム100は、IFFT処理のために、FFT/IFFT処理エンジン104に対してメモリアドレスや動作モードなどのパラメータ設定を行い、以てFFT/IFFT処理エンジン104を起動する。FFT/IFFT処理エンジン104は、設定されたパラメータに従い、MODEMモジュール200内部の共有メモリ105からデータを読み出しながらIFFT処理を行い、処理後の結果データも同様の共有メモリ105上に格納する。そして、FFT/IFFT処理エンジン104は、処理完了割り込みにてプロセッサシステム100にIFFT処理完了を通知する。次いで、プロセッサシステム100は、共有メモリコントローラ21やローカルメモリコントローラ20等を用いて、GI挿入処理及びプリアンブル付加処理を実施し、共有メモリコントローラ21を用いてプリアンブル付加後の送信データ系列をMODEMモジュール200外部の共有メモリ203に格納する。そして、プロセッサシステム100は、処理完了通知を汎用プロセッサ201又はリソースマネージャ202に通知する。以上のような処理シーケンスを繰り返すことで送信データ系列に対する変調処理を実現する。一方、図13は、図11Bに示した処理フローを実行する場合のシーケンス図である。受信データ系列に対する復調処理の場合、汎用プロセッサ201又はリソースマネージャ202が、処理起動コマンドをプロセッサシステム100に与える。このコマンドを受信したプロセッサシステム100は、SEARCHモジュール205から通知された動作タイミングに従って、FFT処理及びGI除去処理のために、FFT/IFFT処理エンジン104に対してメモリアドレスや動作モードなどのパラメータ設定を行い、以てFFT/IFFT処理エンジン104を起動する。FFT/IFFT処理エンジン104は、設定されたパラメータや動作タイミングに従い、MODEMモジュール200外部の共有メモリ203からデータを読み出しながらFFT処理を行い、処理後の結果データをMODEMモジュール200内部の共有メモリ105上に格納する。そして、FFT/IFFT処理エンジン104は、処理完了割り込みにてプロセッサシステム100にFFT処理完了を通知する。次いで、プロセッサシステム100は、共有メモリコントローラ21を用いて、MODEMモジュール200内部の共有メモリ105からFFT後の処理データ系列を読み出し、チャネル推定処理を実施する。次いで、プロセッサシステム100は、チャネル等化処理のために、等化処理エンジン106に対してメモリアドレスや動作モードなどのパラメータ設定を行い、以て等化処理エンジン106を起動する。等化処理エンジン106は、設定されたパラメータや動作タイミングに従い、MODEMモジュール200内部の共有メモリ105から受信データ信号とチャネル推定結果を読み出しながら等化処理を行い、処理後の結果データを同様の共有メモリ105上に格納する。そして、等化処理エンジン106は、処理完了割り込みにてプロセッサシステム100に等化処理完了を通知する。最後に、プロセッサシステム100は、共有メモリコントローラ21を用いてMODEMモジュール200内部の共有メモリ105から等化処理後の受信データを読み出しながら、ALU22にて一次復調処理を行い、復調後のデータをMODEMモジュール200外部の共有メモリ203に格納する。そして、プロセッサシステム100は、処理完了通知を汎用プロセッサ201又はリソースマネージャ202に通知する。以上のような処理シーケンスを繰り返すことで受信データ系列に対する復調処理を実現する。第2の実施の形態本実施の形態に係るプロセッサシステムは、上記の第1の実施の形態と同様に構成できる。但し、本実施の形態においては、トレース回路及び前処理回路を図14及び図15にそれぞれ示す如く構成し、以て同期処理等で累積加算を行う場合に、累積加算値がオーバフローするのを防止する。ここで、上記の第1の実施の形態では、演算結果データのダイナミックレンジを調整するための正規化処理として、最大有効ビット位置を検出し、入力データに対する算術左シフト処理を実行することが可能であった。一方、本実施の形態においては、特に同期処理や逆拡散処理等における累積加算処理や最大ピーク値検出処理において、その累積加算結果が有効ビット範囲をオーバフローしてしまうのを防止するための正規化処理にも対応可能なようにトレース回路及び前処理回路を構成している。すなわち、本実施の形態と上記の第1の実施の形態とでは、トレース回路及び前処理回路の構成並びに動作が異なる。なお、その他の回路の構成及び動作は、上記の第1の実施の形態と同様である。図14に示すように、本実施の形態に係るトレース回路61は、上記の第1の実施の形態に示したトレース回路も実装し、加えて、複素演算結果データとトレース用レジスタの値の小さい方を選択する最小値検出回路が実装されている。また、トレース回路61は、上記の第1の実施の形態に示した最大有効ビット位置検出回路と本実施の形態に特有の最小値検出回路の出力を、トレースモード信号に従って選択してトレース用レジスタへ出力する出力セレクタも実装する。なお、コントローラ24には、パラメータレジスタとして、トレースモードレジスタ及びトレース対象レジスタ番号レジスタが実装される。トレース回路61は、コントローラ24内のトレースモードレジスタ設定に応じて、最大有効ビット位置をトレースするのか、演算結果の最小値をトレースするのかを選択することが可能である。最大有効ビット位置をトレースする場合の動作は、上記の第1の実施の形態と同様である。一方、演算結果の最小値をトレースする場合は、ALU22での複素演算結果データと、トレース用レジスタの値とを比較器にて比較し、値の小さい方をセレクタにて選択してトレース用レジスタに格納する。この処理を、或るデータ系列分の複素演算処理について繰り返すことにより、演算結果データ系列の最小値がトレース用レジスタに格納される。なお、本トレース処理は、上記の第1の実施の形態と同様、通常のコプロセッサ命令とは並列に実行可能なため、サイクルオーバヘッド無く実行可能である。また、トレースモード信号は、複素演算命令の出力先レジスタ番号が、コントローラ24内のトレース対象レジスタ番号レジスタに設定されたレジスタ番号と一致する場合にアクティブとなる信号である。すなわち、トレース対象レジスタ番号を設定できることにより、どの演算結果だけをトレース対象とするかを指定することが可能である。さらに、演算結果が32ビットの実数データフォーマットである場合と、又は図3Bに示したような16ビット×2の複素数データフォーマットである場合とをトレースモードレジスタによって指定可能である。このため、トレースモード設定によって、32ビット一括でトレース処理するのか、又は16ビットずつ実数部と虚数部を分離して処理するのかを柔軟に変更することも可能である。一方、図15に示すように、本実施の形態に係る前処理回路43は、上記の第1の実施の形態に示した算術左シフトを実施する左シフト回路も実装し、加えて、モード設定に応じて、入力データから任意の値を減算する減算器も実装している。また、上記の第1の実施の形態に示した左シフト回路と本実施の形態に特有の減算器の出力を、正規化処理モードレジスタの設定値に従って選択して読出データFIFO41へ出力する出力セレクタも実装する。なお、前処理回路43には、上記の正規化処理モードレジスタに加えて、左シフト量または減算値を設定するための正規化係数レジスタもパラメータレジスタとして実装される。前処理回路43は、正規化処理モードレジスタ設定に応じて、ダイナミックレンジ調整のための算術左シフトを実施するのか、オーバフロー防止のための減算を実施するのかを選択することが可能である。算術左シフトによる正規化処理を実施する場合の動作は、上記の第1の実施の形態と同様である。一方、減算による正規化処理を実施する場合は、入力データ各々から正規化係数レジスタに設定された固定値を減算し、読出データFIFO41へ出力する。トレース回路61を用いて適切な減算値を設定することにより、オーバフローを防止しながら累積加算処理を実施することが可能である。なお,本正規化処理は、上記の第1の実施の形態と同様,通常のコプロセッサ命令とは並列に実行可能なため、サイクルオーバヘッド無く実行可能である。図16A及び図16Bは、本実施の形態に係るプロセッサシステムの動作例をそれぞれ示している。まず、図16Aに示す正規化処理を実施する場合の動作について説明する。ここで、正規化処理Aは、同期処理や逆拡散処理等の累積加算処理時に、演算結果データの最小値をトレースし、その最小値を全ての演算結果データから減算することで、オーバフローを防止する処理である。この場合、プロセッサシステム100は、最初の累積加算演算時に、トレースモードを最小値検出モード設定にしておく。ALU22は、所望の累積加算命令を実行することにより、入出力データのメモリアクセスレイテンシを隠蔽し、演算結果データの最小値をトレース処理しながら、処理結果データをメモリに格納することが可能である。結果として、1データ系列分を処理するfor文の中は、同一の複素積和演算命令を繰り返すだけのサイクル数となる。次に、ALU22は、トレース処理により得られた最小値を、ムーブ命令によってメモリコントローラ20及び21内の正規化係数レジスタに設定すると共に、正規化処理モードを減算モードに設定する。そして、ALU22は、次の累積加算命令を繰り返し実行することにより、1データ系列分の全ての演算結果データに対して、正規化係数に対応する減算処理を実施しながら、所望の累積加算処理を実行することが可能である。この場合、全データから最小値分だけ減算されるため、データ同士間の相対的な差分を維持したままオーバフローを防止できるという利点がある。次に、図16Bに示す正規化処理を実施する場合の動作について説明する。ここで、正規化処理Bは、同期処理や逆拡散処理等の累積加算処理時に、演算結果データの最大有効ビット位置をトレースし、そのビット位置が所定の閾値を越えた場合に、全ての演算結果データから任意の固定値を減算することで、オーバフローを防止する処理である。この場合、プロセッサシステム100は、最初の累積加算演算時に、トレースモードを最大有効ビット位置検出モードに設定しておく。ALU22は、所望の累積加算命令を実行することにより、入出力データのメモリアクセスレイテンシを隠蔽し、演算結果データの最大有効ビット位置をトレース処理しながら、処理結果データをメモリに格納することが可能である。結果として、1データ系列分を処理するfor文の中は、同一の複素積和演算命令を繰り返すだけのサイクル数となる。次に、ALU22は、トレース処理により得られたトレース結果から最大有効ビット位置を複素Exponent命令により検出し、比較命令により閾値と比較する。最大有効ビット位置が閾値を超えていた場合は、メモリコントローラ20及び21内の正規化係数レジスタに任意の固定値を設定し、正規化処理モードを減算モードに設定する。そして、ALU22は、次の累積加算命令を繰り返し実行することにより、1データ系列分の全ての処理結果データに対して、当該固定値分だけ減算する処理を実施しながら、所望の累積加算処理を実行することが可能である。なお、最大有効ビット位置が閾値を超えていない場合には、正規化処理を行わずにそのまま累積加算処理を実行する。この場合、最大値が閾値を超えた場合に全データから任意の固定値分だけ減算されるため、確実にオーバフローを防止できるという利点がある。このように、本実施の形態においては、トレースモード及び正規化処理モードの設定により、入力データのダイナミックレンジを調整するための正規化処理や、累積加算値のオーバフローを防止するための種々の正規化処理など、無線信号処理で必要となる様々な正規化処理が柔軟に実現可能となる。特に、正規化係数の算出や、入力データに対する正規化処理等の正規化処理のための処理サイクルオーバヘッドや、入出力データのメモリアクセスレイテンシ、パイロットデータのアクセスレイテンシを隠蔽しながら、所望の通複素演算処理を実行可能であるという大きな利点がある。上記の第1及び第2の実施の形態によれば、以下の効果が期待できる。第1の効果は、複数の無線方式における種々の変調/復調/同期処理に、柔軟に且つ高速に対応できることである。その理由は、プロセッサシステムでは、一般的な制御用プロセッサに複素演算処理用コプロセッサを接続し、1命令サイクルで、複素加算、複素乗算、複素積和演算等の種々の複素演算処理を実行可能にしたためである。また、コプロセッサがメモリにアクセスするためのメモリコントローラを内蔵し、そのメモリコントローラが、複素演算処理を行うコプロセッサ演算命令と実際にメモリアクセスするサイクルとを独立させるためのデータFIFOを備えることも、柔軟性が向上する理由の1つである。特に、メモリコントローラ内に独立したアドレスジェネレータを備えることにより、或るデータ系列分のメモリアクセス時に様々なアドレス順でのアクセスが可能であるため、プロセッサ処理によるデータ毎のアドレス計算が不要となり、柔軟且つアクセスレイテンシを隠蔽可能なメモリアクセスが可能という利点がある。また、読み出すレジスタ番号によってメモリコントローラがその分だけ内部状態を更新する通常アクセス機能と、データを読み出しても内部状態を更新しないピープ機能との両方を備えることも柔軟性を向上させている。さらに、上記の第2の実施の形態に係るトレース回路や前処理回路等の正規化処理用回路を用いることで、種々の無線方式における種々の正規化処理にサイクルオーバヘッド無く柔軟に対応可能であるという大きな利点もある。これらのトレース回路や前処理回路では、それぞれ動作モードレジスタを備え、その動作モードレジスタ設定に基づいて、最大有効ビット位置検出や最小値検出などのトレース機能や、算術左シフト処理や減算処理などの前処理機能を可変にできるためである。制御レジスタ設定により動作モードを変更可能なトレース回路と前処理回路の一方だけではなく、両方を共に備えていることにより、様々なデータの正規化処理に更に柔軟に対応可能である。第2の効果は、柔軟性を重視してプロセッサによるソフトウェア処理で実現した場合でも、パイロット信号へのアクセスレイテンシや正規化処理サイクルも隠蔽できるなど、メモリアクセスレイテンシも含めて変調/復調処理を高速に実現可能なことである。その理由は、プロセッサシステムでは、一般的な制御用プロセッサに複素演算処理専用のコプロセッサを接続し、コプロセッサからメモリへのアクセスには、メモリアクセスレイテンシを隠蔽できるアドレス生成機能やFIFO機能、前処理機能を内蔵したメモリコントローラを備えているためである。このようなメモリコントローラを用いることで、コプロセッサ命令による変調/復調処理と、メモリアクセスを独立して並列に実施することが可能となるため、メモリアクセスレイテンシを隠蔽でき、一般的なプロセッサ処理に比べて、かなり高速に処理可能である。また、コプロセッサ内のALUとして、複素加算、複素乗算、複素積和演算、複素共役加算、複素共役乗算、複素共役積和演算などの種々の複素演算処理を1命令/サイクルの処理スループットで実行可能な複素演算器を備えることも高速化が可能な理由の1つである。一般的なプロセッサによるソフトウェア処理では、1回の複素乗算処理に4サイクル程度は必要であり、複素積和演算処理に6サイクル程度の処理サイクル数が必要である。一方、上記の第1及び第2の実施の形態においては、ALUやメモリコントローラを活用するコプロセッサ処理命令を使用することにより、例えば1複素データ/サイクルの処理スループットで、種々の複素演算処理を実現することが可能である。さらに,正規化処理の高速化のため,ALU内にトレース回路や、メモリコントローラ内に入力データの前処理回路を備えることにより、種々の無線通信方式における正規化処理を、サイクルオーバヘッド無く通常の複素演算処理と並列に実行可能であるという利点もある。これは、一般的なプロセッサ処理では、正規化係数の算出のためにデータ毎に少なくとも1命令以上のサイクル数が必要であり、また、実際の正規化処理のためにデータ毎に1命令以上の処理サイクル数が必要であるため、サイクルオーバヘッド無く並列に様々な正規化処理を実現できることは大きな利点である。上記の第1及び第2の実施の形態による主たる効果は、これら第1の効果である複数の無線通信方式に対応する柔軟性という利点と、第2の効果である変調/復調処理を正規化処理も含めて1データサイクルの処理スループットで実現する高速化という2つの利点を、同時に実現できることである。その理由は、以下の3点を実現していることの相乗効果によるものである。1つ目は,ALUとして、種々の複素演算処理が可能で、1サイクルで1複素データ分を処理可能な複素演算器と、複素演算器とは並列に動作可能でパラメータ設定も可能なトレース回路を備えることにより、正規化処理を含めて変調/復調処理自体の柔軟性と高速性を実現している点である。2つ目は、コプロセッサ演算処理とは独立して並列に動作するストリームアクセスを前提としたメモリコントローラやパイロットデータインタフェースを備えており、一般的には高速化が難しいプロセッサのメモリアクセスレイテンシを隠蔽できる点である。ここで、メモリコントローラ内の前処理回路もコプロセッサ処理とは独立して正規化処理が可能であることも高速化の観点で重要なポイントである。3つ目は,並列に動作するALUとメモリコントローラやパイロットジェネレータの間で処理オーバヘッドが発生しないように、データを一時的に格納するFIFO、当該FIFOが空になったりFullになったりした場合でも、コプロセッサ側の処理が破綻しないようなWait制御機構を備えているためである。上記3点の相乗効果により,柔軟性と高速性の両方を実現可能である。第3の効果は、複数の無線通信方式における種々の変調/復調処理を、より低消費電力で、すなわち電力効率を高く実現できることである。その理由は、上記の第1及び第2の実施の形態では、ALUが、複素加算処理、複素減算処理、複素乗算処理や複素積和演算処理、そしてこれら各々の複素共役演算処理等を1サイクルで1複素データ分の種々の複素演算処理を実現可能ではあるものの、回路構成としてはほとんど複素積和演算処理分の必要最小限の回路構成で実現しているためである。すなわち、一般的な複数の複素演算命令に対応できる程度の柔軟性を持たせているものの、例えば1複素データ/サイクルの処理スループットに限定した最小限の専用演算器構成とすることで、処理性能と消費電力とのバランスに優れた、電力効率の高いプロセッサシステムを実現可能である。ここで、複素演算処理を含む一連の変調/復調処理を全て専用ハードウェア構成で実現する場合は、それぞれ処理データの繰り返し用の回路が必要であるが、上記の第1及び第2の実施の形態においてはfor文などの繰り返し処理は、制御用プロセッサ側に元々実装されているループ命令用のループ回路を共用して使用するため、コプロセッサ側には繰り返し制御用の回路は不要であるという利点もある。また、処理量が膨大で、専用ハードウェア化した方が電力効率の高いFFT/IFFT処理や逆拡散処理、等化処理や相関処理、パイロット信号生成処理については専用ハードウェア構成にて実現し、その他の変調/復調/同期処理については柔軟性を重視して複素演算処理プロセッサにて実現する、など、そのトレードオフに依存して全体のシステム構成を選択可能であり、電力効率を向上できることも本発明の利点である。また、プロセッサシステムと各専用ハードウェア回路は並列動作可能なため、低いクロック周波数で動作させることで低消費電力化が可能という利点もある。最後に、第4の効果は、複数の無線通信方式における種々の変調/復調処理において、将来的な仕様変更や仕様拡張にも柔軟に対応できることである。その理由は、プロセッサシステムは、制御プロセッサと専用ハードウェア回路を組み合わせた構成ではなく、一般的な制御用プロセッサに対して複素演算処理用コプロセッサを接続することで実現したことにより、1サイクル単位で処理をソフトウェアにて指定可能なためである。すなわち、既存の無線通信方式における変調復調処理の仕様変更により、その処理アルゴリズムや処理順序、処理パラメータが変更された場合や、仕様拡張により処理が追加された場合などにも、プロセッサのソフトウェア記述変更にて柔軟に対応できるという大きな利点がある。なお、ALU部分は専用の複素演算処理回路となっているが、一連の変調/復調処理における処理データ単位やループ回数などは制御用プロセッサ内のループ命令にて対応しているため、その部分の変更には元々の制御用プロセッサの機能で対応が可能である。また、上記の第2の実施の形態で示したように、様々な正規化処理に対応できるような処理結果データのトレース回路や入力データの前処理回路を実装することにより、仕様拡張や仕様変更により新たに正規化処理が必要な場合も柔軟に対応が可能という利点もある。なお、上記の実施の形態によって本発明は限定されるものではなく、特許請求の範囲の記載に基づき、当業者によって種々の変更が可能なことは明らかである。この出願は、2011年2月15日に出願された日本出願特願2011-029325を基礎とする優先権を主張し、その開示の全てをここに取り込む。"