(57)【特許請求の範囲】
【請求項１】
第１のレジスタ群を備え、前記第１のレジスタ群に格納された値を用いて循環的に繰り返される第１のパターンでテーブルアドレスを生成する第１のアドレス生成部と、
第２のレジスタ群を備え、前記第２のレジスタ群に格納された値と前記テーブルアドレスにより決定されるパラメータ情報とを用いて循環的に繰り返される第２のパターンでアクセスアドレスを生成する第２のアドレス生成部と、
前記第１のレジスタ群及び前記第２のレジスタ群に与える設定情報を出力する制御部と、を有し、
前記アクセスアドレスを用いてデータメモリからのデータのリード処理とライト処理との少なくとも一方を行う半導体装置。
【請求項２】
前記パラメータ情報と前記テーブルアドレスとを関係づけたテーブル情報を有するテーブルメモリを有し、
前記制御部は、前記テーブルメモリに前記テーブル情報を格納する請求項１に記載の半導体装置。
【請求項３】
前記テーブルメモリは、第１のテーブルメモリと、第２のテーブルメモリと、を有し、
前記第１のテーブルメモリは、前記制御部から与えられた第１のテーブル情報を格納し、
前記第２のテーブルメモリは、予め決められたテーブル情報を第２のテーブル情報として格納する請求項２に記載の半導体装置。
【請求項４】
前記テーブルメモリは、前記半導体装置とは別の半導体装置上に設けられる請求項２又は３に記載の半導体装置。
【請求項５】
前記テーブルアドレスに基づき前記パラメータ情報を算出するパラメータ情報演算回路を有する請求項１に記載の半導体装置。
【請求項６】
前記アクセスアドレスは、前記リード処理で用いられるリードアドレスと、前記ライト処理で用いられるライトアドレスと、を含み、
前記半導体装置は、前記リードアドレスを生成するリードアドレス生成部と、前記ライトアドレスを生成するライトアドレス生成部と、を有し、
前記リードアドレス生成部と前記ライトアドレス生成部は、それぞれ、前記第１のアドレス生成部及び前記第２のアドレス生成部を有し、
前記制御部は、前記リードアドレス生成部と前記ライトアドレス生成部とに独立した前記設定情報を与える請求項１乃至５のいずれか１項に記載の半導体装置。
【請求項７】
前記リード処理によって読み出された読み出しデータに対して所定の演算処理を加えて、前記ライト処理で処理対象となる書き込みデータを生成するデータ処理部を有する請求項１乃至６のいずれか１項に記載の半導体装置。
【請求項８】
前記データ処理部は、１以上のチャネルから前記読み出しデータを読み出し、前記読み出しデータに対してマルチプレックス処理又はデマルチプレックス処理を施して、１以上の前記書き込みデータを生成する請求項７に記載の半導体装置。
【請求項９】
前記制御部は、前記データを用いたデータ処理を行う演算器からの指示に基づき前記データのデータフォーマットに対応した前記設定情報を出力する請求項１乃至８のいずれか１項に記載の半導体装置。
【請求項１０】
プログラムに沿った演算を行う演算器と、
前記演算器が出力する命令に応じて動作を開始し、自己が生成するアクセスアドレスによってデータメモリからデータの入出力を行うメモリコントローラと、を有し、
前記メモリコントローラは、
前記命令に応じて前記データメモリへのアクセスルールを決定し、決定した前記アクセスルールに応じた設定情報を出力する制御部と、
前記設定情報を用いて循環的に繰り返される第１のパターンでテーブルアドレスを生成する第１のアドレス生成部と、
前記設定情報と前記テーブルアドレスにより決定されるパラメータ情報とを用いて循環的に繰り返される第２のパターンで前記アクセスアドレスを生成する第２のアドレス生成部と、
を有する半導体装置。
【請求項１１】
前記パラメータ情報と前記テーブルアドレスとを関係づけたテーブル情報を有するテーブルメモリを有し、
前記制御部は、前記テーブルメモリに前記テーブル情報を格納する請求項１０に記載の半導体装置。
【請求項１２】
前記テーブルメモリは、第１のテーブルメモリと、第２のテーブルメモリと、を有し、
前記第１のテーブルメモリは、前記制御部から与えられた第１のテーブル情報を格納し、
前記第２のテーブルメモリは、予め決められたテーブル情報を第２のテーブル情報として格納する請求項１１に記載の半導体装置。
【請求項１３】
前記テーブルメモリは、前記半導体装置とは別の半導体装置上に設けられる請求項１１又は１２に記載の半導体装置。
【請求項１４】
前記テーブルアドレスに基づき前記パラメータ情報を算出するパラメータ情報演算回路を有する請求項１０に記載の半導体装置。
【請求項１５】
前記アクセスアドレスは、リード処理で用いられるリードアドレスと、ライト処理で用いられるライトアドレスと、を含み、
前記メモリコントローラは、前記リードアドレスを生成するリードアドレス生成部と、前記ライトアドレスを生成するライトアドレス生成部と、を有し、
前記リードアドレス生成部と前記ライトアドレス生成部は、それぞれ、前記第１のアドレス生成部及び前記第２のアドレス生成部を有し、
前記制御部は、前記リードアドレス生成部と前記ライトアドレス生成部とに独立した前記設定情報を与える請求項１０乃至１４のいずれか１項に記載の半導体装置。
【請求項１６】
リード処理によって読み出された読み出しデータに対して所定の演算処理を加えて、ライト処理で処理対象となる書き込みデータを生成するデータ処理部を有する請求項１０乃至１５のいずれか１項に記載の半導体装置。
【請求項１７】
前記データ処理部は、１以上のチャネルから前記読み出しデータを読み出し、前記読み出しデータに対してマルチプレックス処理又はデマルチプレックス処理を施して、１以上の前記書き込みデータを生成する請求項１６に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に、メモリの不規則なアドレスに対して連続的にアクセスを行う半導体装置に関する。
【背景技術】
【０００２】
テレビ放送等の無線通信では、国毎に異なる放送方式が採用されている。しかし、複数の無線方式に対応する受信機（例えば、テレビ、或いは、録画機）を開発する場合、放送方式毎に開発を行っていたのでは開発コスト及び製造コストが増大する問題がある。そのため、このような無線通信を行う受信機において無線処理を行う半導体装置に対しては、複数の放送方式に対応するマルチスタンダード化の要求が高まっている。また、このような受信機では、複数の放送チャンネルを同時に受信し、複数の番組を同時に視聴或いは録画するマルチチャンネル化の要求がある。そのため、半導体装置に対して、複数の番組を同時に処理するマルチチャンネル化の要求が高まっている。
【０００３】
しかし、マルチスタンダード及びマルチチャンネルに対応した機能を全てハードウェアで実現した場合、個々の放送方式及び複数のチャネルを同時に処理するために、放送方式数と同時処理チャネル数とに応じて回路規模が増大する問題がある。そこで、マルチスタンダード及びマルチチャネルに対応した機能をＤＳＰ（Digital Signal Processor）上で動作するソフトウェアで実現するソフトウェア無線が提案されている。
【０００４】
このソフトウェア無線では無線信号のデモジュレーション処理を行う。このデモジュレーション処理では、デインターリーブ処理に代表される、複雑かつ時間軸上広範囲に亘るデータの並び替えを行うような復号処理を行う必要がある。より具体的には、デインターリーブ処理では、不規則なメモリアクセスを連続したストリーム処理に合わせて行う必要がある。なお、デインターリーブ処理は、送信機器側で行われるインターリーブ処理の逆の処理を行うものであり、デインターリーブ処理によるデータ並び替えの方式は、送信機器側のインターリーブ処理に依存して決定される。
【０００５】
しかし、一般的なＤＳＰでは、このような不規則かつ連続したメモリアクセスを行う事は処理能力の制限により難しい。そこで、不規則かつ連続したメモリアクセスを効率的に行う技術が特許文献１、２に開示されている。
【０００６】
特許文献１では、第１の記憶領域から第２の記憶領域にデータを転送するデータ転送装置が開示されている。このデータ転送装置は、中央演算装置、第１の記憶装置、第２の記憶装置、記憶手段、アドレス発生供給手段、アドレス読み出し手段と、を有する。
【０００７】
第１の記憶装置には転送対象のデータが格納される。第２の記憶装置は、転送対象のデータを格納する。記憶手段には、第１の記憶装置のアドレスと第２の記憶装置のアドレスとの転送単位データ毎の対応表が格納される。アドレス発生供給手段は、中央演算装置から第１の記憶装置のデータの読み出し開始アドレスが供給されたことに応じて、転送単位データ毎に第１の記憶装置に読み出しアドレスを供給する。アドレス読み出し供給手段は、第１の記憶装置のデータの読み出し開始アドレスが供給されたことに応じて、記憶手段から第１の記憶装置の読み出しアドレスに対応する第２の記憶装置のアドレスを読み出し、当該アドレスを第２の記憶装置に書き込みアドレスとして供給する。
【０００８】
つまり、特許文献１に記載のデータ転送装置では、対応表を用いて、第１の記憶装置の読み出しアドレスから第２の記憶装置の書き込みアドレスへの変換を行う。これにより、特許文献１に記載のデータ転送装置では、第１の記憶装置の読み出しアドレスとは異なる第２の記憶装置のアドレスへのデータの書き込みを効率良く行うことができる。
【０００９】
特許文献２は、複数の記憶装置の間のデータ転送を、中央演算装置とＤＭＡ（Direct Memory Access）コントローラとを用いて行うＤＭＡ転送方式について開示するものである。特許文献２では、ＤＭＡコントローラから供給される連続した転送先のアドレスを複数の記憶装置にアクセスする不連続なアドレスに変換する変換テーブルと、転送元のアドレスを不連続なアドレスに変換する変換テーブルと、それぞれの変換テーブルを用いてＤＭＡコントローラから出力されるアドレスを実アドレスに変換するアドレス変換部を有する。
【００１０】
つまり、特許文献２では、変換テーブルとアドレス変換部により、ＤＭＡコントローラから出力されるアドレスを、転送元アドレスと転送先アドレスとで異なるアドレスに変換する。これにより、特許文献２では、転送元のアドレスとは異なるアドレスの転送先へのデータ転送の効率化を実現している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開昭５９−１１４６５５号公報
【特許文献２】特開平０３−２６０７５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１、２では、変換テーブルを用いて、読み出しアドレスから書き込みアドレスへの変換を行っている。そのため、複数の通信方式に対応するためには、対応すべき通信方式で利用される変換テーブルを全て準備しなければならず変換テーブル大きくなる。また、特許文献１、２では、アドレスの変換パターンの全てを変換テーブルとして準備しなければならず１つの変換パターンだけを考えても変換テーブルが大きくなる。このように変換テーブルが大きくなると、この変換テーブルを格納するメモリの大きさが大きくなり回路規模が大きくなる問題がある。
【課題を解決するための手段】
【００１３】
本発明にかかる半導体装置の一態様は、第１のレジスタ群を備え、前記第１のレジスタ群に格納された値を用いて循環的に繰り返される第１のパターンでテーブルアドレスを生成する第１のアドレス生成部と、第２のレジスタ群を備え、前記第２のレジスタ群に格納された値を用いて循環的に繰り返される第２のパターンで仮アドレスを生成し、前記仮アドレスと前記テーブルアドレスにより決定されるパラメータ情報とに基づきアクセスアドレスを生成する第２のアドレス生成部と、前記第１のレジスタ群及び前記第２のレジスタ群に与える設定情報を出力する制御部と、を有し、前記アクセスアドレスを用いてデータメモリからのデータのリード処理とライト処理との少なくとも一方を行う。
【００１４】
本発明にかかる半導体装置の別の態様は、プログラムに沿った演算を行う演算器と、前記演算器が出力する命令に応じて動作を開始するメモリコントローラと、前記メモリコントローラから出力されるアクセスアドレスに基づきデータの入出力を行うデータメモリと、を有し、前記メモリコントローラは、前記命令に応じて前記データメモリへのアクセスルールを決定し、決定した前記アクセスルールに応じた設定情報を出力する制御部と、前記設定情報を用いて循環的に繰り返される第１のパターンでテーブルアドレスを生成する第１のアドレス生成部と、前記設定情報を用いて循環的に繰り返される第２のパターンで仮アドレスを生成し、前記仮アドレスと前記テーブルアドレスにより決定されるパラメータ情報とに基づきアクセスアドレスを生成する第２のアドレス生成部と、を有する。
【００１５】
本発明にかかる半導体装置では、第１のアドレス生成部において生成されるテーブルアドレスに基づきテーブル情報からアクセスアドレス生成に用いられるパラメータ情報を生成する。また、本発明にかかる半導体装置では、第２のアドレス生成部がパラメータ情報を用いてアクセスアドレスを生成する。このとき、第１のアドレス生成部と第２のアドレス生成部は、それぞれ循環的に繰り返されるパターンでアドレスを生成する。これにより、本発明にかかる半導体装置では、テーブル情報の大きさに比べて遙かに長い周期で繰り返される不連続なアクセスアドレスを生成することができる。
【発明の効果】
【００１６】
本発明にかかる半導体装置によれば、小さなテーブル情報から不連続かつ長い周期で繰り返されるアクセスアドレスを生成することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明のデインターリーブ処理が適用される受信装置の受信処理のフローを示すブロック図である。
【図２】実施の形態１にかかる半導体装置のブロック図である。
【図３】実施の形態２にかかる半導体装置で生成されるアクセスアドレスの生成パターンを表現したプログラムの例である。
【図４】実施の形態２にかかる半導体装置のブロック図である。
【図５】実施の形態３にかかる半導体装置のブロック図である。
【図６】実施の形態４にかかる半導体装置のブロック図である。
【図７】実施の形態５にかかる半導体装置のブロック図である。
【図８】実施の形態６にかかる半導体装置のブロック図である。
【図９】実施の形態７にかかる半導体装置のブロック図である。
【発明を実施するための形態】
【００１８】
実施の形態１
以下、本発明の実施の形態について図面を参照して説明する。まず、本発明にかかる半導体装置は、ＤＳＰ（Digital Signal Processor）等の演算器を用いて受信信号の復号処理を行うことで受信データを生成するものである。そこで、本発明にかかる半導体装置による復号処理が適用される受信機の復号処理のフローを示すブロック図を図１に示す。この図１に示すブロック図は、ＡＲＩＢの規格において定義された処理を示すものであり、復号処理の一例を示すものである。
【００１９】
図１に示すように、受信機は、まずアンテナ１００によりＲＦ（Radio Frequency）信号を受信する。ＲＦ信号は、ミキサ１０１に入力される。ミキサ１０１では、発振器１０２により生成されたローカル信号によりＲＦ信号を変調する。そして、ミキサ１０１から出力された信号は、ＩＦ回路１０３に入力される。ＩＦ回路１０３では、ミキサ１０１で変調された信号からＩＦ信号を抽出する。そして、ＩＦ信号は、ミキサ１０４において発振器１０５で生成されたローカル信号によりさら変調されベースバンド信号となる。ベースバンド信号は、その後、アナログデジタル変換処理１０６によりデジタルデータに変換される。アナログデジタル変換処理１０６までの処理は、アナログ信号に対する処理であるため、個別の半導体装置で行われる処理である。一方、アナログデジタル変換処理１０６以降の処理は、デジタル信号に対する処理であるため、例えばＤＳＰ等を用いたソフトウェアによる処理が可能である。
【００２０】
アナログデジタル変換処理１０６において生成されたデジタルデータに対して直交復調処理１０７を施すことにより選択したチャンネルのデータが抽出される。その後、チャンネル選択されたデジタルデータに対してＦＦＴ（Fast Fourier Transform）処理１０８が施される。ＦＦＴ処理１０８では、ＯＦＤＭ（Orthogonal Frequency Division Multiplexing）シンボルのうち、有効シンボルに相当する期間についてＦＦＴ処理を実施する。その際、受信信号のマルチパスの状況を考慮し、適切な期間でＦＦＴ処理が実施される。
【００２１】
続いて、ＦＦＴ処理がなされたデジタルデータからフレーム抽出処理１０９が行われる。フレーム抽出処理１０９では、ＦＦＴ処理されたデジタルデータに含まれるＴＭＣＣ（Transmission and Multiplexing Configuration Control）信号からフレーム同期信号を抽出する。フレーム同期信号には、モード及びガードインターバル長に関する情報が含まれる。ここで、モード及びガードインターバル長は、送信機器側で付加される情報であり、パル値パスの影響を低減するために利用されるものである。そして、同期再生処理１１０では、モード及びガードインターバル長に応じてＯＦＤＭシンボル同期及びＦＦＴサンプル周波数を再生する。
【００２２】
また、フレーム抽出処理１０９では、ＴＭＣＣ信号をＴＭＣＣ復号処理１１１に渡す。ＴＭＣＣ復号処理１１１では、ＴＭＣＣ信号からＴＭＣＣ情報を抽出し、各種制御を実施する。
【００２３】
ＡＣ復号処理１１２では、ＦＦＴ処理１０８の出力のセグメントＮｏ．０のＡＣ信号のうち構成識別が地震動警報情報の伝送であることを示すとき（「００１」、「１１０」）、地震動警報情報を抽出する。構成識別がそれ以外である場合には、ＡＣ信号を復号しない。なお、地震動警報情報とは、ＡＲＩＢ  ＳＴＤ−Ｂ３１「地上デジタルテレビジョン放送の伝送方式標準規格」の定義に基づくものである。
【００２４】
また、ＦＦＴ処理１０８で生成されたデジタルデータに対してキャリア復調処理１１３を行う。キャリア復調処理１１３では、ＴＭＣＣ情報に応じ、ＤＱＰＳＫ（Differential Quadrature Phase Shift Keying）用に差動復調や、ＱＰＳＫ（Quadrature Phase Shift Keying）、１６ＱＡＭ（16 Quadrature Amplitude Modulation）、６４ＱＡＭ（64 Quadrature Amplitude Modulation）用にスキャッタードパイロット（ＳＰ）を用いた同期復調を行い、振幅、及び位相情報を検出する。
【００２５】
続いて、周波数デインターリーブ処理１１４及び時間デインターリーブ処理１１５を行う。周波数デインターリーブ処理１１４では、ＦＦＴ処理１０８で生成されたデータを周波数軸上で並び替える。時間デインターリーブ処理１１５では、周波数デインターリーブ処理されたデータを、さらに、時間軸上で並び替える。このデインターリーブ処理における並べ替えアルゴリズムは、送信機器側で行われる周波数インターリーブ処理及び時間インターリーブ処理の並べ替えアルゴリズムの逆のアルゴリズムである。
【００２６】
続いて、デマッピング処理１１６を行う。デマッピング処理１１６では、キャリア復調された情報からＱＰＳＫ、１６ＱＡＭ、６４ＱＡＭのデマッピングを実施し、ビット情報を抽出する。
【００２７】
続いて、階層分割処理１１７を行う。階層分割処理１１７では、ＴＭＣＣ情報に基づき伝送特性の異なる複数の階層を同時に伝送する階層伝送により無線信号を受信していることが判明した場合にデマッピング処理されたデータを各階層に分割する。なお、分割は、ＴＳパケットの同期バイト（４７Ｈ）の次のバイトから、次のＴＳパケットの同期バイトまでの２０４バイトを単位とする。
【００２８】
続いて、ビットデインターリーブ処理１１８〜１２０を行う。ビットデインターリーブ処理１１８〜１２０では、分割された階層ごとにビットデインターリーブ処理を行う。
【００２９】
続いて、デパンクチャ処理１２１〜１２３を行う。デパンクチャ処理１２１〜１２３では、分割された階層ごとに、ＴＭＣＣ情報により指定された畳み込み符号化率に応じ、畳み込み符号のビット補間を行う。
【００３０】
続いて、階層合成処理１２４を行う。階層合成処理１２４では、階層分割されたデータを合成して１つのデータを生成する。そして、ビタビ復号処理１２５において階層合成されたデータに対してビタビ復号処理を施す。図１に示す方式では、ビタビ復号処理１２５において、デパンクチャ処理されたデータから符号化率１／２のビタビ復号を実施する。ビタビ復号では性能向上のため軟判定処理を行う。また、畳み込み符号による誤り伝播を避けるため、ＴＳパケットの同期バイト（４７Ｈ）が既知であることを利用し終端処理を行う。
【００３１】
続いて、階層分割処理１２６を再度行う。この階層分割処理１２６は、階層分割処理１１７と同じ処理である。その後、バイトインタリーブ処理１２７〜１２９を行う。バイトデインターリーブ処理１２７〜１２９では、分割された階層ごとにデインターリーブ処理を行う。また、バイトデインターリーブ処理では、バイト単位でデインターリーブ処理を行う。
【００３２】
続いて、エネルギー拡散処理１３０〜１３２を行う。エネルギー拡散処理１３０〜１３２は、分割された階層ごとにエネルギー拡散処理を行う。エネルギー拡散処理１３０〜１３２では、１５次のＭ系列ＰＮ信号と、ＴＳパケットの同期バイトを除くビット単位で排他的論理和により逆拡散を行う。なお、同期バイト期間もシフトレジスタは動作し、ＯＦＤＭ伝送フレームごとに初期化する。
【００３３】
続いて、ＴＳ再生処理１３３を行う。ＴＳ再生処理１３３では、トランスポートストリーム再生のための処理を行う。この際、ＴＳパケットの順番及びＰＣＲの時間的位置が送信側と同じに保たれなければならない。その後、ＲＳ復号処理１３４を行うことで再生可能なＴＳストリームデータが生成される。ＲＳ復号処理１３４では、短縮化リードソロモン符号ＲＳの復号を行う。その際、訂正後の誤りが検出された場合には、トランスポートストリームの先頭から９ビット目（２バイト目のＭＳＢ）のtransport_error_indicator を「１」にセットする。
【００３４】
このように、受信機を用いた通信システムでは、送信信号を生成する際にインターリーブ処理を施し、受信時にデインターリーブ処理を施すことで、送信時に発生するエラーが復号後のデータの１つに偏在してしまうことを防止する。インターリーブ処理及びデインターリーブ処理によりエラーを複数のデータに分散させることで、通信システムにおけるエラー訂正能力を向上させることができる。
【００３５】
ここで、上記のような通信システムでは、受信データがストリームデータとして与えられる。そのため、デインターリーブ処理は、連続的に行う必要がある。しかし、ＤＳＰを用いたソフトウェア処理により復号処理を行う場合、連続的なデインターリーブ処理は、ＤＳＰの処理能力の多くを占有するため、ＤＳＰにおいて行わなければならない他の処理を十分に行うことができない問題が発生する。そこで、実施の形態１にかかる半導体装置１では、デインターリーブ処理を連続的に行うメモリコントローラ１０を備える。そして、実施の形態１にかかる半導体装置では、ＤＳＰにおけるデインターリーブ処理に関する負担を軽減することで、性能の向上を実現する。そこで、実施の形態１にかかる半導体装置１のブロック図を図２に示す。
【００３６】
図２に示すように、実施の形態１にかかる半導体装置１は、ＤＳＰ、メモリコントローラ１０、データメモリＤＭ１、ＤＭ２を有する。なお、ＤＳＰ、メモリコントローラ１０、データメモリＤＭ１、ＤＭ２は、それぞれ個別の半導体装置として実装されていてもよい。また、ＤＳＰ及びメモリコントローラ１０を１つの半導体装置とし、データメモリＤＭ１、ＤＭ２をそれぞれ個別の半導体装置として構成しても良い。つまり、ＤＳＰ、メモリコントローラ１０、データメモリＤＭ１、ＤＭ２をどのような構成とするかは、システムの使用に応じて適宜変更可能である。
【００３７】
また、実施の形態１にかかる半導体装置１では、データメモリＤＭ１に、デインターリーブ処理の前処理を行う処理部からデインターリーブ処理の対象のデータが与えられるものとする。また、データメモリＤＭ２には、デインターリーブ処理が行われた後のデータが格納される。例えば、半導体装置１が、周波数デインターリーブ処理を行う場合、キャリア復調処理１１３の処理結果がデータメモリＤＭ１に格納される。また、周波数でインターリーブ処理の処理結果がデータメモリＤＭ２に格納される。
【００３８】
ＤＳＰは、プログラムに沿った演算を行う演算器である。例えば、実施の形態１にかかる半導体装置１が図１に示した復号処理を行う場合、ＤＳＰは、直交復調処理１０７以降のデインターリーブ処理以外の処理を行う。また、ＤＳＰは、起動時、又は、デインターリーブ処理の実行前にメモリコントローラ１０に対して復号の方式を指定する復号方法指定命令を発行する。メモリコントローラ１０は、この復号方法指定命令に応じて、自身の動作に必要な動作条件指定情報を図示しないメモリから読み出して、自身が動作するための設定を行う。なお、メモリコントローラ１０への動作条件指定情報は、ＤＳＰが与えても良い。また、実施の形態１にかかる半導体装置１では、１つのメモリコントローラ１０により、図１の３つのデインターリーブ処理を行うため、メモリコントローラ１０は各デインターリーブ処理前にその後に実行するデインターリーブ処理に対応した動作条件設定情報を読み込む。
【００３９】
メモリコントローラ１０は、ＤＳＰからの命令に応じて動作を開始し、自己が生成するアクセスアドレスによってデータメモリからデータの入出力を行う。図２に示すメモリコントローラ１０は、アクセスアドレスとしてリードアドレスＲＡとライトアドレスＷＡを生成する。なお、図２に示す例では、メモリコントローラ１０がいずれも同じ回路ブロックを用いてアドレスが異なるリードアドレスＲＡとライトアドレスＷＡとを生成することとしたが、メモリコントローラ１０は、リードアドレスＲＡとライトアドレスＷＡのいずれか一方を生成する構成とすることもできる。
【００４０】
図２に示すように、メモリコントローラ１０は、マイクロＣＰＵ１１、テーブルアドレス生成回路１２、１５、テーブルメモリ１３、１６、ループアドレス生成回路１４、１７、ＦＩＦＯ（First In First Out）メモリ１８を有する。
【００４１】
マイクロＣＰＵ１１は、メモリコントローラ１０の動作を制御する制御部である。マイクロＣＰＵ１１は、外部から与えられる動作条件指定情報に基づきメモリコントローラ１０がアクセスアドレスの生成処理を行うための設定情報を生成する。この設定情報は、動作条件指定情報と同じものでもよく、また、マイクロＣＰＵ１１が動作条件設定情報に対して演算処理を施すことにより生成されるものであっても良い。図２に示すれいでは、マイクロＣＰＵ１１は、設定情報として、レジスタ設定値ＲＳ１、ＲＳ２及びテーブル情報ＳＴ１、ＳＴ２を生成する。
【００４２】
レジスタ設定値ＲＳ１は、テーブルアドレス生成回路１２及びループアドレス生成回路１４内のレジスタに格納される値を含む。レジスタ設定値ＲＳ２は、テーブルアドレス生成回路１５及びループアドレス生成回路１７内のレジスタに格納される値を含む。実施の形態１にかかる半導体装置１では、異なるアドレスを示すリードアドレスＲＡとライトアドレスＷＡとを生成するため、レジスタ設定値ＲＳ１とレジスタ設定値ＲＳ２とは異なる値を有する。
【００４３】
テーブル情報ＴＳ１は、テーブルメモリ１３に格納されるテーブル情報である。また、テーブル情報ＴＳ２は、テーブルメモリ１６に格納されるテーブル情報である。これらテーブル情報は、テーブルアドレスとパラメータ情報とを関連付けるテーブル情報である。
【００４４】
メモリコントローラ１０では、テーブルアドレス生成回路１２と、テーブルメモリ１３と、ループアドレス生成回路１４によりリードアドレス生成部を構成する。また、テーブルアドレス生成回路１５と、テーブルメモリ１６と、ループアドレス生成回路１７によりライトアドレス生成部を構成する。メモリコントローラ１０では、リードアドレス生成部とライトアドレス生成部とは、互いに異なる値の設定情報を与えることで異なる値のアクセスアドレスを生成する。しかし、リードアドレス生成部を構成する回路ブロックと、ライトアドレス生成部を構成する回路ブロックは、それぞれ同じ機能を有する。
【００４５】
テーブルアドレス生成回路１２及びテーブルアドレス生成回路１５は、第１のアドレス生成部として機能する。テーブルアドレス生成回路１２及びテーブルアドレス生成回路１５は、第１のレジスタ群を備え、第１のレジスタ群に格納された値を用いて循環的に繰り返される第１のパターンでテーブルアドレスを生成する。なお、テーブルアドレス生成回路１２が出力するテーブルアドレスにはＴＡ１の符号を付し、テーブルアドレス生成回路１５が出力するテーブルアドレスにはＴＡ２の符号を付した。また、第１のレジスタ群に格納される値は、レジスタ設定値ＲＳ１、ＲＳ２により決まる。
【００４６】
テーブルメモリ１３は、パラメータ情報とテーブルアドレスＴＡ１とを関係づけたテーブル情報を有し、テーブルアドレスＴＡ１のアドレス値に対応したパラメータ情報ＰＡ１を出力する。テーブルメモリ１６は、パラメータ情報とテーブルアドレスＴＡ２とを関係づけたテーブル情報を有し、テーブルアドレスＴＡ２のアドレス値に対応したパラメータ情報ＰＡ２を出力する。
【００４７】
ループアドレス生成回路１４及びループアドレス生成回路１７は、第２のアドレス生成部として機能する。ループアドレス生成回路１４及びループアドレス生成回路１７は、第２のレジスタ群を備え、第２のレジスタ群に格納された値とテーブルメモリから出力されるパラメータ情報とを用いて循環的に繰り返される第２のパターンでアクセスアドレスを生成する。なお、ループアドレス生成回路１４が出力するアクセスアドレスは、リードアドレスＲＡであり、ループアドレス生成回路１７が出力するアクセスアドレスは、ライトアドレスＷＡである。また、第２のレジスタ群に格納される値は、レジスタ設定値ＲＳ１、ＲＳ２により決まる。
【００４８】
ＦＩＦＯメモリ１８は、リードアドレスＲＡによりデータメモリから読み出されたリードデータＲＤを読み出された順に記憶し、記憶した順番で記憶したデータを出力する。ＦＩＦＯメモリ１８が出力したデータはデータメモリＤＭ２に対するライトデータＷＤとなる。
【００４９】
メモリコントローラ１０では、テーブルアドレス生成回路１２が、レジスタ設定値ＲＳ１により決まる設定情報に基づき循環的に繰り返される第１のパターンでテーブルアドレスＴＡ１を生成する。このテーブルアドレスＴＡ１は、アドレス生成サイクル毎に異なる。そのため、このテーブルアドレスＴＡ１に基づきテーブル情報から参照されるパラメータ情報ＰＡ１は、アドレス生成サイクル毎に変化する。そして、ループアドレス生成回路１４が、パラメータ情報ＰＡ１及びレジスタ設定値ＲＳ１により決まる設定情報に基づき循環的に繰り返される第２のパターンでリードアドレスＲＡを生成する。このように、テーブルアドレス生成回路１２、テーブルメモリ１３及びループアドレス生成回路１４を用いてリードアドレスＲＡを生成することで、周期性を有し、且つ、不連続なリードアドレスＲＡをＤＳＰの処理能力を使うことなく生成することができる。
【００５０】
また、メモリコントローラ１０では、リードアドレスＲＡと同様の処理によりライトアドレスＷＡを生成するため、ライトアドレスＷＡについても、ＤＳＰの処理能力を使うことなく、周期性を有し、且つ、不連続なアドレス値とすることができる。
【００５１】
上記説明より、実施の形態１にかかる半導体装置１では、メモリコントローラ１０を利用することで、ＤＳＰの処理能力を使うことなく、周期性を有し、且つ、不連続なアクセスアドレスを生成することができる。このとき、半導体装置１では、設定情報を用いて循環的に繰り返される第１のパターンでテーブルアドレスを生成し、アドレス生成サイクル毎に当該テーブルアドレスを元にテーブル情報からパラメータ情報を選択する。また、このパラメータ情報と設定情報とに基づき循環的に繰り返される第２のパターンでアクセスアドレスを生成する。つまり、半導体装置１では、不連続なアドレス値のパターンの全てをテーブル情報として有することなくテーブル情報の大きさに比べて長い周期で変化する不連続なアクセスアドレスを生成することができる。このようなことから、実施の形態１にかかる半導体装置１では、テーブルメモリ１３の大きさを小さくすることができる。
【００５２】
また、特許文献１、２に記載の技術では、当初想定した復号方式以外の復号方式に対応するためにはハードウェアの変更が必要になり、再設計を行うことなく復号方式の変更に対応することができない問題がある。
【００５３】
しかし、実施の形態１にかかる半導体装置１では、レジスタ設定値ＲＳ１、ＲＳ２と、テーブル情報ＳＴ１、ＳＴ２との少なくとも一方を変更することでアクセスアドレスの生成パターンを変更することができる。このように、半導体装置１では、マイクロＣＰＵ１１が、データ処理を行うＤＳＰからの指示に基づきデータのデータフォーマットに対応した設定情報を出力する設定情報を変更することでアクセスアドレスの生成パターンを変更することができる。つまり、半導体装置１では、アクセスアドレスの生成パターンをプログラマブルに変更することができる。このように、プログラマブルにアクセスアドレスの生成パターンを変更可能とすることで、受信機が当初想定したとは異なる復号方式に対応する場合にも復号方式の変更に柔軟に対応することができる。
【００５４】
実施の形態２
実施の形態２では、テーブルアドレス生成回路１２、１５とループアドレス生成回路１４、１７の構成の一例について説明する。なお、実施の形態２で説明する構成例は、アクセスアドレスの生成パターンを示す一例であり、テーブルアドレス生成回路１２、１５及びループアドレス生成回路１４、１７の構成としては、種々の構成が考えられる。なお、実施の形態２にかかる半導体装置２の説明において実施の形態１にかかる半導体装置１の構成要素と同じものについては説明を省略する。
【００５５】
まず、実施の形態２にかかる半導体装置２におけるアクセスアドレスの生成アルゴリズムを図３に示す。図３に示すアルゴリズムは、リードアドレスＲＡの生成アルゴリズムをＣ言語で表したものである。
【００５６】
図３に示すように、実施の形態２にかかる半導体装置２におけるリードアドレスＲＡの生成アルゴリズムでは、リードアドレスＲＡを仮アドレス値ｐｔｒ１にパラメータ情報として与えられる値ＰＡ１［ＴＡ１］を加算して生成する。この仮アドレス値ｐｔｒ１は、前のアドレス生成サイクルで算出された仮アドレス値ｐｔｒ１とステップ幅ｓｔｅｐ１との和に対して繰り返し周期値ｌｅｎ１を用いた剰余演算を行うことにより算出される。
【００５７】
また、テーブルアドレスＴＡ１は、前のアドレス生成サイクルで算出されたアドレス値ｔｐｔｒ１とステップ幅ｔｓｔｅｐ１との和に対して繰り返し周期値ｔｌｅｎ１を用いた剰余演算を行うことにより算出される。
【００５８】
そして、図３に示すアルゴリズムでは、アドレス処理サイクル数がループ回数上限値ｍａｘ１に達するまで処理サイクル毎にリードアドレスＲＡを上記アルゴリズムに従って生成する。また、アドレス生成サイクル数がループ回数上限値ｍａｘ１に達するまでの期間においてアドレス生成サイクル数がループ回数上限値ｔｍａｘ１に達する毎にテーブルアドレスＴＡ１を初期値にリセットしてテーブルアドレスＴＡ１の生成処理を繰り返す。
【００５９】
続いて、図３に示したアドレス生成アルゴリズムを実現するための構成を有するテーブルアドレス生成回路及びループアドレス生成回路について説明する。テーブルアドレス生成回路１２、１５とループアドレス生成回路１４、１７の構成の一例を示すテーブルアドレス生成回路１２ａ、１５ａとループアドレス生成回路１４ａ、１７ａを含む実施の形態２にかかる半導体装置２のブロック図を図４に示す。なお、図４に示す例では、テーブルアドレス生成回路１２ａ、１５ａとループアドレス生成回路１４ａ、１７ａを有するメモリコントローラ１０ａのみを示した。つまり、実施の形態２にかかる半導体装置２も、実施の形態１と同様にＤＳＰを有する。また、メモリコントローラ１０ａは、データメモリＤＭ１、ＤＭ２に対してアクセスを行う。
【００６０】
テーブルアドレス生成回路１２ａは、第１のレジスタ２１〜２４、加算器２５、剰余演算器２６、セレクタＳＥＬ０を有する。第１のレジスタ２１には、更新ステップ幅ＴＳＴＥＰ１が格納される。第１のレジスタ２２には、繰り返し周期値ＴＬＥＮ１が格納される。第１のレジスタ２３には、ループ回数上限値ＴＭＡＸ１が格納される。第１のレジスタ２４には、アドレス値ＴＰＴＲ１が格納される。このアドレス値ＴＰＴＲ１は、テーブルアドレスＴＡ１となるものである。加算器２５は、算出済みのアドレス値ＴＰＴＲ１と更新ステップ幅ＴＳＴＥＰ１とを加算した結果を出力する。剰余演算器２６は、加算器２５が出力した結果値に対して繰り返し周期値ＴＬＥＮ１を用いた剰余演算を行い、その演算結果を出力する。そして、剰余演算器２６が出力する演算結果によって第１のレジスタ２４に格納されているアドレス値ＴＰＴＲ１が更新される。また、テーブルアドレス生成回路１２ａは、剰余演算器２６と第１のレジスタ２４との間にセレクタＳＥＬ０が設けられる。このセレクタＳＥＬ０は、アドレス生成サイクル数がループ回数上限値ＴＭＡＸ１に達するまでの期間は剰余演算器２６の出力値を出力し、アドレス生成サイクル数がループ回数上限値ＴＭＡＸ１に達したことに応じて０を出力する。そして、テーブルアドレス生成回路１２ａでは、セレクタＳＥＬ０が０を出力したことに応じて、アドレス値ＴＰＴＲ１を初期値（例えば、０）にリセットする。これにより、テーブルアドレス生成回路１２ａでは、テーブルアドレスＴＡ１の生成動作を初期状態から再開する。
【００６１】
ループアドレス生成回路１４ａは、第２のレジスタ２７〜３０、加算器３１、３３、剰余演算器３２、セレクタＳＥＬ１を有する。第２のレジスタ２７には、更新ステップ幅ＳＴＥＰ１が格納される。第２のレジスタ２８には、繰り返し周期値ＬＥＮ１が格納される。第２のレジスタ２９には、ループ回数上限値ＭＡＸ１が格納される。第２のレジスタ３０には、仮アドレス値ＰＴＲ１が格納される。この仮アドレス値ＰＴＲ１にパラメータ情報ＰＡ１を加えた値がリードアドレスＲＡとなる。加算器３１は、算出済みの仮アドレス値ＰＴＲ１と更新ステップ幅ＴＳＴＥＰ１とを加算した結果を出力する。剰余演算器３２は、加算器３１が出力した結果値に対して繰り返し周期値ＬＥＮ１を用いた剰余演算を行い、その演算結果を出力する。そして、剰余演算器３２が出力する演算結果によって第２のレジスタ３０に格納されている仮アドレス値ＰＴＲ１が更新される。加算器３３は、仮アドレス値ＰＴＲ１とパラメータ情報ＰＡ１により与えられる値とを加算してリードアドレスＲＡを出力する。また、ループアドレス生成回路１４ａは、剰余演算器３２と第２のレジスタ３０との間にセレクタＳＥＬ１が設けられる。このセレクタＳＥＬ１は、アドレス生成サイクル数がループ回数上限値ＭＡＸ１に達するまでの期間は剰余演算器３２の出力値を出力し、アドレス生成サイクル数がループ回数上限値ＭＡＸ１に達したことに応じて０を出力する。そして、ループアドレス生成回路１４ａでは、セレクタＳＥＬ１が０を出力したことに応じて、仮アドレス値ＰＴＲ１を初期値（例えば、０）にリセットする。これにより、ループアドレス生成回路１４ａでは、リードアドレスＲＡの生成動作を初期状態から再開する。
【００６２】
テーブルアドレス生成回路１５ａは、テーブルアドレス生成回路１２ａと同じ回路構成であるが、レジスタに格納される値が異なるものである。テーブルアドレス生成回路１５ａは、第１のレジスタ４１〜４４、加算器４５、剰余演算器４６を有する。第１のレジスタ４１〜４４、加算器４５、剰余演算器４６、セレクタＳＥＬ２は、それぞれ、第１のレジスタ２１〜２４、加算器２５、剰余演算器２６、セレクタＳＥＬ０に対応するものである。そして、テーブルアドレス生成回路１５ａでは、第１のレジスタ４１に更新ステップ幅ＴＳＴＥＰ２が格納され、第１のレジスタ４２に繰り返し周期値ＴＬＥＮ２が格納され、第１のレジスタ４３にループ回数上限値ＴＭＡＸ２が格納される。また、第１のレジスタ４４には、アドレス値ＴＰＴＲ２が格納される。このアドレス値ＴＰＴＲ２は、テーブルアドレスＴＡ２となるものである。
【００６３】
ループアドレス生成回路１７ａは、ループアドレス生成回路１４ａと同じ回路構成であるが、レジスタに格納される値が異なるものである。ループアドレス生成回路１７ａは、第２のレジスタ４７〜５０、加算器５１、５３、剰余演算器５２、セレクタＳＥＬ３を有する第２のレジスタ４７〜５０、加算器５１、５３、剰余演算器５２は、それぞれ、第２のレジスタ２７〜３０、加算器３１、３３、剰余演算器３２、セレクタＳＥＬ１に対応するものである。そして、ループアドレス生成回路１７ａでは、第２のレジスタ４７に更新ステップ幅ＳＴＥＰ２が格納され、第２のレジスタ４８に繰り返し周期値ＬＥＮ２が格納され、第２のレジスタ４９にループ回数上限値ＭＡＸ２が格納される。第２のレジスタ５０には、仮アドレス値ＰＴＲ２が格納される。この仮アドレス値ＰＴＲ２にパラメータ情報ＰＡ２を加えた値がライトアドレスＷＡとなる。
【００６４】
実施の形態２では、テーブルアドレス生成回路とループアドレス生成回路の構成例について説明した。この説明から明らかなように、テーブルアドレス生成回路とループアドレス生成回路は、レジスタと少数の演算器による簡易な構成で実現することが可能である。つまり、実施の形態２にかかる半導体装置２では、このような簡易な回路においてループ制御を行うことで周期的に変化する複雑なアドレスパターンを生成することができる。また、簡易な回路でテーブルアドレス生成回路とループアドレス生成回路を構成することで、メモリコントローラ１０ａは、回路面積を抑制することができる。
【００６５】
実施の形態３
実施の形態３にかかる半導体装置３のブロック図を図５に示す。図５に示すように、実施の形態３にかかる半導体装置３は、メモリコントローラ１０の別の形態を示すメモリコントローラ６０を有する。メモリコントローラ６０は、実施の形態１にかかるメモリコントローラ１０のＦＩＦＯメモリ１８をデータ処理部６３に置き換え、マイクロＣＰＵ１１をマイクロＣＰＵ６１に置き換えたものである。また、メモリコントローラ６０では、データ処理部６３に対応してＦＩＦＯメモリ６１、６２を追加した。
【００６６】
ＦＩＦＯメモリ６１は、リードデータＲＤを一時的に格納するバッファである。また、ＦＩＦＯメモリ６２は、ライトデータＷＤを一時的に格納するバッファである。そして、データ処理部６３は、ＦＩＦＯメモリ６１から読み出したデータに対して信号処理を施してＦＩＦＯメモリ６２に出力する。
【００６７】
データ処理部６３には、レジスタ設定値ＲＳ３が与えられる。データ処理部６３は、レジスタ設定値ＲＳ３に対応した信号処理を行う。例えば、データ処理部６３は、ビタビ復号処理及びビタビ復号処理時の軟判定処理を行うことができる。また、マイクロＣＰＵ６１は、マイクロＣＰＵ１１にレジスタ設定値ＲＳ３を出力する機能を追加したものである。
【００６８】
このように、実施の形態３にかかる半導体装置３では、リードデータＲＤをデータメモリＤＭ２に伝送する経路上にデータ処理部６３を設けることで、データメモリＤＭ２に格納されるデータに何らかの信号処理を施すことができる。このように、データ処理部６３において信号処理を行うことで、ＤＳＰの処理負担を軽減することができる。
【００６９】
実施の形態４
実施の形態４にかかる半導体装置４のブロック図を図６に示す。図６に示すように、実施の形態４にかかる半導体装置４は、メモリコントローラ６０の別の形態を示すメモリコントローラ７０を有する。メモリコントローラ７０は、実施の形態３にかかるメモリコントローラ６０のデータ処理部６３をデータ処理部７６に置き換え、マイクロＣＰＵ６１をマイクロＣＰＵ７１に置き換えたものである。
【００７０】
また、メモリコントローラ７０では、２つめのリードアドレスＲＡを生成するために、テーブルアドレス生成回路７２、テーブルメモリ７３、ループアドレス生成回路７４を追加した。テーブルアドレス生成回路７２はテーブルアドレス生成回路１２と同じ機能を有する回路ブロックであり、テーブルメモリ７３はテーブルメモリ１３と同じ機能を有する回路ブロックであり、ループアドレス生成回路７４はループアドレス生成回路１４と同じ機能を有するものである。
【００７１】
また、マイクロＣＰＵ７１は、マイクロＣＰＵ６１にレジスタ設定値ＲＳ４及びテーブル情報ＳＴ３を出力する機能を追加するものである。レジスタ設定値ＲＳ４は、レジスタ設定値ＲＳ１、ＲＳ２とは独立した値を有する。また、テーブル情報ＳＴ３は、テーブル情報ＳＴ１、ＳＴ２とは独立したテーブル情報である。そして、レジスタ設定値ＳＲ４は、テーブルアドレス生成回路７２及びループアドレス生成回路７４のレジスタに設定値を与える。また、テーブル情報ＳＴ３は、テーブルメモリ７３に格納される。
【００７２】
また、メモリコントローラ７０は、ＦＩＦＯメモリ７５を備える。メモリコントローラ７０は、データメモリＤＭ１、ＤＭ３のそれぞれに対してリードアドレスＲＡを出力し、データメモリＤＭ１、ＤＭ３のそれぞれからリードデータＲＤを読み出す。ＦＩＦＯメモリ７５は、データメモリＤＭ３から出力されるリードデータを一時的に格納するバッファとして機能する。
【００７３】
このように、メモリコントローラ７０は、テーブルアドレス生成回路、テーブルメモリ、ループアドレス、ＦＩＦＯメモリの組を複数設けることで２つ以上のリードアドレスＲＡを生成することができる。そして、２つ以上のリードアドレスＲＡにより２つ以上のデータメモリから同時にリードデータを読み出すことができる。
【００７４】
データ処理部７６は、複数のデータメモリから読み出された複数のリードデータＲＤに対してマルチプレックス処理を施して１つのライトデータＷＤを生成する。このようなマルチプレックス処理を行うことで、複数のチャネルデータを多重化したバースト転送を実現することができる。また、図６に示す例では、ライトデータＷＤを１つとしたが、データ処理部７６は、１つのリードデータＲＤに対してデマルチプレックス処理を施すことで複数のライトデータＷＤを生成することもできる。複数のライトデータＷＤがある場合、ライトアドレスＷＡを生成するテーブルアドレス生成回路、テーブルメモリ、ループアドレス、ＦＩＦＯメモリの組を複数設ける必要がある。このようなデマルチプレックス処理を行うことで、リードデータＲＤとして複数のチャネルデータを多重化したデータをバースト転送により読み出すことができる。このようなバースト転送を行うことで、データ転送の効率を向上させることができる。
【００７５】
また、データ処理部７６は、マルチプレックス処理のみならず、ビタビ復号中の軟判定処理を行うこともできる。データ処理部７６がどのような処理を行うかは、レジスタ設定値ＲＳ３により切り替えることができる。
【００７６】
上記説明より、実施の形態４では、リードデータＲＤの転送チャネルの数と、ライトデータＷＤの転送チャネルの数を１以上とした半導体装置の構成例について説明した。実施の形態４にかかる半導体装置４では、実施の形態１にかかる半導体装置１と同様に、演算処理とテーブル情報とに基づきテーブル情報の大きさに比べて長い周期で複雑に変化するアドレス値を生成することができる。そのため、実施の形態４にかかる半導体装置４のように、複数の転送チャネルにおいて異なるアクセスアドレスを用いたとしても、回路規模の増大を抑制することができる。また、実施の形態４においても、設定情報の切り替えによりアクセスアドレスの生成アルゴリズムを変更することができるため、システムが対応する復号方式の変更に柔軟に対応することが可能である。
【００７７】
なお、図６では、データメモリＤＭ１〜ＤＭ３をそれぞれ異なる回路ブロックとして表した。しかし、これらメモリは、１つの回路ブロックを論理的に分割した領域として実装されていても良い。
【００７８】
実施の形態５
実施の形態５にかかる半導体装置５のブロック図を図７に示す。図７に示すように、実施の形態５にかかる半導体装置５は、メモリコントローラ１０の別の形態を示すメモリコントローラ８０を有する。メモリコントローラ８０は、メモリコントローラ１０に固定テーブル８１、８２を追加したものである。
【００７９】
メモリコントローラ８０において、テーブルメモリ１３、１６は、第１のテーブルメモリとして機能し、固定テーブル８１、８２は、第２のテーブルメモリとして機能する。テーブルメモリ１３、１６は、実施の形態１にかかるメモリコントローラ１０と同様にマイクロＣＰＵ１１から与えられた第１のテーブル情報ＳＴ１、ＳＴ２を格納する。一方、固定テーブル８１、８２は、予め決められたテーブル情報を第２のテーブル情報として格納する。この固定テーブル８１、８２は、例えば、ＲＯＭ（Read Only Memory）或いは、テーブルアドレスＴＡ１、ＴＡ２を元にパラメータ情報を算出する演算回路（例えば、パラメータ情報演算回路）により実現できる。
【００８０】
半導体装置５では、テーブルアドレス生成回路１２から出力されるテーブルアドレスＴＡ１が、テーブルメモリ１３と固定テーブル８１の両方に与えられる。そして、テーブルアドレスＴＡ１がテーブルメモリ１３のアドレスを示す場合には、パラメータ情報ＰＡ１がテーブルメモリ１３からループアドレス生成回路１４に与えられる。また、テーブルアドレスＴＡ１が固定テーブル８１のアドレスを示す場合には、パラメータ情報ＰＡ１ｆが固定テーブル８１からループアドレス生成回路１４に与えられる。ループアドレス生成回路１４は、パラメータ情報ＰＡ１とパラメータ情報ＰＡ１ｆのいずれか一方を用いてリードアドレスＲＡ生成する。
【００８１】
また、半導体装置５では、テーブルアドレス生成回路１５から出力されるテーブルアドレスＴＡ２が、テーブルメモリ１６と固定テーブル８２の両方に与えられる。そして、テーブルアドレスＴＡ２がテーブルメモリ１６のアドレスを示す場合には、パラメータ情報ＰＡ２がテーブルメモリ１６からループアドレス生成回路１７に与えられる。また、テーブルアドレスＴＡ２が固定テーブル８２のアドレスを示す場合には、パラメータ情報ＰＡ２ｆが固定テーブル８２からループアドレス生成回路１７に与えられる。ループアドレス生成回路１７は、パラメータ情報ＰＡ２とパラメータ情報ＰＡ２ｆのいずれか一方を用いてライトアドレスＷＡ生成する。
【００８２】
異なる通信方式において共通に利用される動作パターンについては、共通に利用することができる。そのため、共通に利用される動作パターンをＲＯＭ或いは演算回路として実装することでテーブルメモリ１３、１６の回路規模を小さくすることができる。また、ＲＯＭは、一般的に、書き込み回路、読み出し回路、記憶素子等を簡略化することができるためＲＡＭに比べて回路規模、消費電力、動作効率が高い。そのため、共通に利用できる動作パターンをＲＯＭとして実装することで半導体装置の回路規模、消費電力、動作効率を向上させることができる。また、演算回路を用いた場合は、出力すべきテーブル情報を個別に備える必要がないため、回路規模を小さくするすることができる。
【００８３】
実施の形態６
実施の形態６にかかる半導体装置６のブロック図を図８に示す。図８に示すように、実施の形態６にかかる半導体装置６は、メモリコントローラ１０の別の形態を示すメモリコントローラ９０を有する。また、半導体装置６では、テーブルメモリとしてデータメモリと同様に外部のメモリ（例えば、ＳＤＲＡＭ）を利用する。図８では、リードアドレスＲＡの生成に利用されるテーブルメモリＴＭ１を示し、ライトアドレスＷＡの生成に利用されるテーブルメモリＴＭ２を示した。
【００８４】
メモリコントローラ９０は、メモリコントローラ１０からテーブルメモリ１３、１６を削除し、ＦＩＦＯメモリ９２、９３を追加したものである。また、メモリコントローラ９０は、マイクロＣＰＵ１１からテーブル情報ＴＳ１、ＴＳ２の生成機能を削除したマイクロＣＰＵ９１を有する。実施の形態６にかかる半導体装置６では、テーブルメモリＴＭ１、ＴＭ１にテーブル情報ＳＴ１、ＳＴ２が格納される。半導体装置６では、例えば、このテーブル情報ＳＴ１、ＳＴ２をＤＳＰが図示しないバスを介して入力する。また、テーブル情報ＳＴ１、ＳＴ２は、マイクロＣＰＵ９１がテーブルメモリＴＭ１、ＴＭ２に書き込んでも良い。
【００８５】
実施の形態６にかかる半導体装置６では、テーブルアドレス生成回路１２が出力するテーブルアドレスＴＡ１をリードアドレスとしてテーブルメモリＴＭ１からパラメータ情報ＰＡ１を読み出す。そして、パラメータ情報ＰＡ１をＦＩＦＯメモリ９２で一時的に保持する。そして。ＦＩＦＯメモリ９２から出力されるパラメータ情報ＰＡ１を用いてループアドレス生成回路１４がリードアドレスＲＡを生成する。
【００８６】
また、実施の形態６にかかる半導体装置６では、テーブルアドレス生成回路１５が出力するテーブルアドレスＴＡ２をリードアドレスとしてテーブルメモリＴＭ２からパラメータ情報ＰＡ２を読み出す。そして、パラメータ情報ＰＡ２をＦＩＦＯメモリ９３で一時的に保持する。そして。ＦＩＦＯメモリ９３から出力されるパラメータ情報ＰＡ２を用いてループアドレス生成回路１７がライトアドレスＷＡを生成する。
【００８７】
このように、テーブルメモリＴＭ１、ＴＭ２は、外部のメモリを利用することで実現することもできる。このように、テーブルメモリＴＭ１、ＴＭ２として外部のメモリを利用することで半導体装置６の回路面積を削減することができる。また、テーブルメモリＴＭ１、ＴＭ２は、データメモリＤＭ１、ＤＭ２を構成するメモリモジュールにおいて論理的に分離された領域に定義することもできる。このように、メモリモジュールにおいて論理的に分離された領域にテーブルメモリＴＭ１、ＴＭ２を設けることで、メモリモジュールを追加する必要がなく、システムの回路規模を削減することができる。また、一般的に、外部メモリは、半導体装置６に実装されるメモリよりも大きな容量を有する。そのため、テーブルメモリＴＭ１、ＴＭ２を外部メモリに実装することでテーブル情報が大きくなった場合にも柔軟な対応が可能になる。
【００８８】
実施の形態７
実施の形態７にかかる半導体装置７のブロック図を図９に示す。図９に示すように、実施の形態７にかかる半導体装置７は、実施の形態６にかかる半導体装置６のテーブルメモリＴＭ１、ＴＭ２に代えてパラメータ情報演算回路９４、９５を有する。
【００８９】
パラメータ情報演算回路９４は、テーブルアドレス生成回路１２で生成されたテーブル情報ＴＡ１に基づきパラメータ情報ＰＡ１を演算により生成する。パラメータ情報演算回路９５は、テーブルアドレス生成回路１５で生成されたテーブル情報ＴＡ２に基づきパラメータ情報ＰＡ２を演算により生成する。
【００９０】
このように、テーブルメモリＴＭ１、ＴＭ２をパラメータ情報演算回路９４、９５に置き換えても、実施の形態７にかかる半導体装置７の動作は、実施の形態６にかかる半導体装置６と同じになる。また、パラメータ情報演算回路９４、９５はパラメータ情報をテーブルデータとして備える必要がないため、メモリを用いた場合に比べ回路規模を小さくすることができる。
【００９１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、同じ演算結果を得るためのアルゴリズムは、１つに限られないため、同じ演算結果を得ることができるアドレス生成アルゴリズムは複数考えることができる。
【符号の説明】
【００９２】
１〜７    半導体装置
１０、１０ａ、６０、７０、８０、９０    メモリコントローラ
１１、６１、７１、９１    マイクロＣＰＵ
１２、１２ａ、７２    テーブルアドレス生成回路
１３、１６、７３    テーブルメモリ
１４、１４ａ、７４    ループアドレス生成回路
１５、１５ａ    テーブルアドレス生成回路
１７、１７ａ    ループアドレス生成回路
１８、６１、６２、７５、９２、９３    ＦＩＦＯメモリ
２１〜２４、２７〜３０    レジスタ
２５    加算器
２６    剰余演算器
３１、３３    加算器
３２    剰余演算器
４１〜４４、４７〜５０    レジスタ
４５    加算器
４６    剰余演算器
５１、５３    加算器
５２    剰余演算器
６３    データ処理部
７６    データ処理部
８１、８２    固定テーブル
９４、９５    パラメータ情報演算回路
１００    アンテナ
１０１    ミキサ
１０２    発振器
１０３    回路
１０４    ミキサ
１０５    発振器
１０６    アナログデジタル変換処理
１０７    直交復調処理
１０８    ＦＦＴ処理
１０９    フレーム抽出処理
１１０    同期再生処理
１１１    ＴＭＣＣ復号処理
１１２    ＡＣ復号処理
１１３    キャリア復調処理
１１４    周波数デインターリーブ処理
１１５    時間デインターリーブ処理
１１６    デマッピング処理
１１７    階層分割処理
１１８〜１２０    ビットデインターリーブ処理
１２１〜１２３    デパンクチャ処理
１２４    階層合成処理
１２５    ビタビ復号処理
１２６    階層分割処理
１２７〜１２９    バイトインタリーブ処理
１３０〜１３２    エネルギー拡散処理
１３３    ＴＳ再生処理
１３４    ＲＳ復号処理
ＤＭ１〜ＤＭ３    データメモリ
ＴＭ１、ＴＭ２    テーブルメモリ
【図１】
0005785881.tif 000002
【図２】
0005785881.tif 000003
【図３】
0005785881.tif 000004
【図４】
0005785881.tif 000005
【図５】
0005785881.tif 000006
【図６】
0005785881.tif 000007
【図７】
0005785881.tif 000008
【図８】
0005785881.tif 000009
【図９】
0005785881.tif 000010