(58)【調査した分野】(Int.Cl.,DB名)
前記リード処理によって読み出された読み出しデータに対して所定の演算処理を加えて、前記ライト処理で処理対象となる書き込みデータを生成するデータ処理部を有する請求項1乃至6のいずれか1項に記載の半導体装置。
前記データ処理部は、1以上のチャネルから前記読み出しデータを読み出し、前記読み出しデータに対してマルチプレックス処理又はデマルチプレックス処理を施して、1以上の前記書き込みデータを生成する請求項7に記載の半導体装置。
前記データ処理部は、1以上のチャネルから前記読み出しデータを読み出し、前記読み出しデータに対してマルチプレックス処理又はデマルチプレックス処理を施して、1以上の前記書き込みデータを生成する請求項16に記載の半導体装置。
【背景技術】
【0002】
テレビ放送等の無線通信では、国毎に異なる放送方式が採用されている。しかし、複数の無線方式に対応する受信機(例えば、テレビ、或いは、録画機)を開発する場合、放送方式毎に開発を行っていたのでは開発コスト及び製造コストが増大する問題がある。そのため、このような無線通信を行う受信機において無線処理を行う半導体装置に対しては、複数の放送方式に対応するマルチスタンダード化の要求が高まっている。また、このような受信機では、複数の放送チャンネルを同時に受信し、複数の番組を同時に視聴或いは録画するマルチチャンネル化の要求がある。そのため、半導体装置に対して、複数の番組を同時に処理するマルチチャンネル化の要求が高まっている。
【0003】
しかし、マルチスタンダード及びマルチチャンネルに対応した機能を全てハードウェアで実現した場合、個々の放送方式及び複数のチャネルを同時に処理するために、放送方式数と同時処理チャネル数とに応じて回路規模が増大する問題がある。そこで、マルチスタンダード及びマルチチャネルに対応した機能をDSP(Digital Signal Processor)上で動作するソフトウェアで実現するソフトウェア無線が提案されている。
【0004】
このソフトウェア無線では無線信号のデモジュレーション処理を行う。このデモジュレーション処理では、デインターリーブ処理に代表される、複雑かつ時間軸上広範囲に亘るデータの並び替えを行うような復号処理を行う必要がある。より具体的には、デインターリーブ処理では、不規則なメモリアクセスを連続したストリーム処理に合わせて行う必要がある。なお、デインターリーブ処理は、送信機器側で行われるインターリーブ処理の逆の処理を行うものであり、デインターリーブ処理によるデータ並び替えの方式は、送信機器側のインターリーブ処理に依存して決定される。
【0005】
しかし、一般的なDSPでは、このような不規則かつ連続したメモリアクセスを行う事は処理能力の制限により難しい。そこで、不規則かつ連続したメモリアクセスを効率的に行う技術が特許文献1、2に開示されている。
【0006】
特許文献1では、第1の記憶領域から第2の記憶領域にデータを転送するデータ転送装置が開示されている。このデータ転送装置は、中央演算装置、第1の記憶装置、第2の記憶装置、記憶手段、アドレス発生供給手段、アドレス読み出し手段と、を有する。
【0007】
第1の記憶装置には転送対象のデータが格納される。第2の記憶装置は、転送対象のデータを格納する。記憶手段には、第1の記憶装置のアドレスと第2の記憶装置のアドレスとの転送単位データ毎の対応表が格納される。アドレス発生供給手段は、中央演算装置から第1の記憶装置のデータの読み出し開始アドレスが供給されたことに応じて、転送単位データ毎に第1の記憶装置に読み出しアドレスを供給する。アドレス読み出し供給手段は、第1の記憶装置のデータの読み出し開始アドレスが供給されたことに応じて、記憶手段から第1の記憶装置の読み出しアドレスに対応する第2の記憶装置のアドレスを読み出し、当該アドレスを第2の記憶装置に書き込みアドレスとして供給する。
【0008】
つまり、特許文献1に記載のデータ転送装置では、対応表を用いて、第1の記憶装置の読み出しアドレスから第2の記憶装置の書き込みアドレスへの変換を行う。これにより、特許文献1に記載のデータ転送装置では、第1の記憶装置の読み出しアドレスとは異なる第2の記憶装置のアドレスへのデータの書き込みを効率良く行うことができる。
【0009】
特許文献2は、複数の記憶装置の間のデータ転送を、中央演算装置とDMA(Direct Memory Access)コントローラとを用いて行うDMA転送方式について開示するものである。特許文献2では、DMAコントローラから供給される連続した転送先のアドレスを複数の記憶装置にアクセスする不連続なアドレスに変換する変換テーブルと、転送元のアドレスを不連続なアドレスに変換する変換テーブルと、それぞれの変換テーブルを用いてDMAコントローラから出力されるアドレスを実アドレスに変換するアドレス変換部を有する。
【0010】
つまり、特許文献2では、変換テーブルとアドレス変換部により、DMAコントローラから出力されるアドレスを、転送元アドレスと転送先アドレスとで異なるアドレスに変換する。これにより、特許文献2では、転送元のアドレスとは異なるアドレスの転送先へのデータ転送の効率化を実現している。
【発明を実施するための形態】
【0018】
実施の形態1
以下、本発明の実施の形態について図面を参照して説明する。まず、本発明にかかる半導体装置は、DSP(Digital Signal Processor)等の演算器を用いて受信信号の復号処理を行うことで受信データを生成するものである。そこで、本発明にかかる半導体装置による復号処理が適用される受信機の復号処理のフローを示すブロック図を
図1に示す。この
図1に示すブロック図は、ARIBの規格において定義された処理を示すものであり、復号処理の一例を示すものである。
【0019】
図1に示すように、受信機は、まずアンテナ100によりRF(Radio Frequency)信号を受信する。RF信号は、ミキサ101に入力される。ミキサ101では、発振器102により生成されたローカル信号によりRF信号を変調する。そして、ミキサ101から出力された信号は、IF回路103に入力される。IF回路103では、ミキサ101で変調された信号からIF信号を抽出する。そして、IF信号は、ミキサ104において発振器105で生成されたローカル信号によりさら変調されベースバンド信号となる。ベースバンド信号は、その後、アナログデジタル変換処理106によりデジタルデータに変換される。アナログデジタル変換処理106までの処理は、アナログ信号に対する処理であるため、個別の半導体装置で行われる処理である。一方、アナログデジタル変換処理106以降の処理は、デジタル信号に対する処理であるため、例えばDSP等を用いたソフトウェアによる処理が可能である。
【0020】
アナログデジタル変換処理106において生成されたデジタルデータに対して直交復調処理107を施すことにより選択したチャンネルのデータが抽出される。その後、チャンネル選択されたデジタルデータに対してFFT(Fast Fourier Transform)処理108が施される。FFT処理108では、OFDM(Orthogonal Frequency Division Multiplexing)シンボルのうち、有効シンボルに相当する期間についてFFT処理を実施する。その際、受信信号のマルチパスの状況を考慮し、適切な期間でFFT処理が実施される。
【0021】
続いて、FFT処理がなされたデジタルデータからフレーム抽出処理109が行われる。フレーム抽出処理109では、FFT処理されたデジタルデータに含まれるTMCC(Transmission and Multiplexing Configuration Control)信号からフレーム同期信号を抽出する。フレーム同期信号には、モード及びガードインターバル長に関する情報が含まれる。ここで、モード及びガードインターバル長は、送信機器側で付加される情報であり、パル値パスの影響を低減するために利用されるものである。そして、同期再生処理110では、モード及びガードインターバル長に応じてOFDMシンボル同期及びFFTサンプル周波数を再生する。
【0022】
また、フレーム抽出処理109では、TMCC信号をTMCC復号処理111に渡す。TMCC復号処理111では、TMCC信号からTMCC情報を抽出し、各種制御を実施する。
【0023】
AC復号処理112では、FFT処理108の出力のセグメントNo.0のAC信号のうち構成識別が地震動警報情報の伝送であることを示すとき(「001」、「110」)、地震動警報情報を抽出する。構成識別がそれ以外である場合には、AC信号を復号しない。なお、地震動警報情報とは、ARIB STD−B31「地上デジタルテレビジョン放送の伝送方式標準規格」の定義に基づくものである。
【0024】
また、FFT処理108で生成されたデジタルデータに対してキャリア復調処理113を行う。キャリア復調処理113では、TMCC情報に応じ、DQPSK(Differential Quadrature Phase Shift Keying)用に差動復調や、QPSK(Quadrature Phase Shift Keying)、16QAM(16 Quadrature Amplitude Modulation)、64QAM(64 Quadrature Amplitude Modulation)用にスキャッタードパイロット(SP)を用いた同期復調を行い、振幅、及び位相情報を検出する。
【0025】
続いて、周波数デインターリーブ処理114及び時間デインターリーブ処理115を行う。周波数デインターリーブ処理114では、FFT処理108で生成されたデータを周波数軸上で並び替える。時間デインターリーブ処理115では、周波数デインターリーブ処理されたデータを、さらに、時間軸上で並び替える。このデインターリーブ処理における並べ替えアルゴリズムは、送信機器側で行われる周波数インターリーブ処理及び時間インターリーブ処理の並べ替えアルゴリズムの逆のアルゴリズムである。
【0026】
続いて、デマッピング処理116を行う。デマッピング処理116では、キャリア復調された情報からQPSK、16QAM、64QAMのデマッピングを実施し、ビット情報を抽出する。
【0027】
続いて、階層分割処理117を行う。階層分割処理117では、TMCC情報に基づき伝送特性の異なる複数の階層を同時に伝送する階層伝送により無線信号を受信していることが判明した場合にデマッピング処理されたデータを各階層に分割する。なお、分割は、TSパケットの同期バイト(47H)の次のバイトから、次のTSパケットの同期バイトまでの204バイトを単位とする。
【0028】
続いて、ビットデインターリーブ処理118〜120を行う。ビットデインターリーブ処理118〜120では、分割された階層ごとにビットデインターリーブ処理を行う。
【0029】
続いて、デパンクチャ処理121〜123を行う。デパンクチャ処理121〜123では、分割された階層ごとに、TMCC情報により指定された畳み込み符号化率に応じ、畳み込み符号のビット補間を行う。
【0030】
続いて、階層合成処理124を行う。階層合成処理124では、階層分割されたデータを合成して1つのデータを生成する。そして、ビタビ復号処理125において階層合成されたデータに対してビタビ復号処理を施す。
図1に示す方式では、ビタビ復号処理125において、デパンクチャ処理されたデータから符号化率1/2のビタビ復号を実施する。ビタビ復号では性能向上のため軟判定処理を行う。また、畳み込み符号による誤り伝播を避けるため、TSパケットの同期バイト(47H)が既知であることを利用し終端処理を行う。
【0031】
続いて、階層分割処理126を再度行う。この階層分割処理126は、階層分割処理117と同じ処理である。その後、バイトインタリーブ処理127〜129を行う。バイトデインターリーブ処理127〜129では、分割された階層ごとにデインターリーブ処理を行う。また、バイトデインターリーブ処理では、バイト単位でデインターリーブ処理を行う。
【0032】
続いて、エネルギー拡散処理130〜132を行う。エネルギー拡散処理130〜132は、分割された階層ごとにエネルギー拡散処理を行う。エネルギー拡散処理130〜132では、15次のM系列PN信号と、TSパケットの同期バイトを除くビット単位で排他的論理和により逆拡散を行う。なお、同期バイト期間もシフトレジスタは動作し、OFDM伝送フレームごとに初期化する。
【0033】
続いて、TS再生処理133を行う。TS再生処理133では、トランスポートストリーム再生のための処理を行う。この際、TSパケットの順番及びPCRの時間的位置が送信側と同じに保たれなければならない。その後、RS復号処理134を行うことで再生可能なTSストリームデータが生成される。RS復号処理134では、短縮化リードソロモン符号RSの復号を行う。その際、訂正後の誤りが検出された場合には、トランスポートストリームの先頭から9ビット目(2バイト目のMSB)のtransport_error_indicator を「1」にセットする。
【0034】
このように、受信機を用いた通信システムでは、送信信号を生成する際にインターリーブ処理を施し、受信時にデインターリーブ処理を施すことで、送信時に発生するエラーが復号後のデータの1つに偏在してしまうことを防止する。インターリーブ処理及びデインターリーブ処理によりエラーを複数のデータに分散させることで、通信システムにおけるエラー訂正能力を向上させることができる。
【0035】
ここで、上記のような通信システムでは、受信データがストリームデータとして与えられる。そのため、デインターリーブ処理は、連続的に行う必要がある。しかし、DSPを用いたソフトウェア処理により復号処理を行う場合、連続的なデインターリーブ処理は、DSPの処理能力の多くを占有するため、DSPにおいて行わなければならない他の処理を十分に行うことができない問題が発生する。そこで、実施の形態1にかかる半導体装置1では、デインターリーブ処理を連続的に行うメモリコントローラ10を備える。そして、実施の形態1にかかる半導体装置では、DSPにおけるデインターリーブ処理に関する負担を軽減することで、性能の向上を実現する。そこで、実施の形態1にかかる半導体装置1のブロック図を
図2に示す。
【0036】
図2に示すように、実施の形態1にかかる半導体装置1は、DSP、メモリコントローラ10、データメモリDM1、DM2を有する。なお、DSP、メモリコントローラ10、データメモリDM1、DM2は、それぞれ個別の半導体装置として実装されていてもよい。また、DSP及びメモリコントローラ10を1つの半導体装置とし、データメモリDM1、DM2をそれぞれ個別の半導体装置として構成しても良い。つまり、DSP、メモリコントローラ10、データメモリDM1、DM2をどのような構成とするかは、システムの使用に応じて適宜変更可能である。
【0037】
また、実施の形態1にかかる半導体装置1では、データメモリDM1に、デインターリーブ処理の前処理を行う処理部からデインターリーブ処理の対象のデータが与えられるものとする。また、データメモリDM2には、デインターリーブ処理が行われた後のデータが格納される。例えば、半導体装置1が、周波数デインターリーブ処理を行う場合、キャリア復調処理113の処理結果がデータメモリDM1に格納される。また、周波数でインターリーブ処理の処理結果がデータメモリDM2に格納される。
【0038】
DSPは、プログラムに沿った演算を行う演算器である。例えば、実施の形態1にかかる半導体装置1が
図1に示した復号処理を行う場合、DSPは、直交復調処理107以降のデインターリーブ処理以外の処理を行う。また、DSPは、起動時、又は、デインターリーブ処理の実行前にメモリコントローラ10に対して復号の方式を指定する復号方法指定命令を発行する。メモリコントローラ10は、この復号方法指定命令に応じて、自身の動作に必要な動作条件指定情報を図示しないメモリから読み出して、自身が動作するための設定を行う。なお、メモリコントローラ10への動作条件指定情報は、DSPが与えても良い。また、実施の形態1にかかる半導体装置1では、1つのメモリコントローラ10により、
図1の3つのデインターリーブ処理を行うため、メモリコントローラ10は各デインターリーブ処理前にその後に実行するデインターリーブ処理に対応した動作条件設定情報を読み込む。
【0039】
メモリコントローラ10は、DSPからの命令に応じて動作を開始し、自己が生成するアクセスアドレスによってデータメモリからデータの入出力を行う。
図2に示すメモリコントローラ10は、アクセスアドレスとしてリードアドレスRAとライトアドレスWAを生成する。なお、
図2に示す例では、メモリコントローラ10がいずれも同じ回路ブロックを用いてアドレスが異なるリードアドレスRAとライトアドレスWAとを生成することとしたが、メモリコントローラ10は、リードアドレスRAとライトアドレスWAのいずれか一方を生成する構成とすることもできる。
【0040】
図2に示すように、メモリコントローラ10は、マイクロCPU11、テーブルアドレス生成回路12、15、テーブルメモリ13、16、ループアドレス生成回路14、17、FIFO(First In First Out)メモリ18を有する。
【0041】
マイクロCPU11は、メモリコントローラ10の動作を制御する制御部である。マイクロCPU11は、外部から与えられる動作条件指定情報に基づきメモリコントローラ10がアクセスアドレスの生成処理を行うための設定情報を生成する。この設定情報は、動作条件指定情報と同じものでもよく、また、マイクロCPU11が動作条件設定情報に対して演算処理を施すことにより生成されるものであっても良い。
図2に示すれいでは、マイクロCPU11は、設定情報として、レジスタ設定値RS1、RS2及びテーブル情報ST1、ST2を生成する。
【0042】
レジスタ設定値RS1は、テーブルアドレス生成回路12及びループアドレス生成回路14内のレジスタに格納される値を含む。レジスタ設定値RS2は、テーブルアドレス生成回路15及びループアドレス生成回路17内のレジスタに格納される値を含む。実施の形態1にかかる半導体装置1では、異なるアドレスを示すリードアドレスRAとライトアドレスWAとを生成するため、レジスタ設定値RS1とレジスタ設定値RS2とは異なる値を有する。
【0043】
テーブル情報TS1は、テーブルメモリ13に格納されるテーブル情報である。また、テーブル情報TS2は、テーブルメモリ16に格納されるテーブル情報である。これらテーブル情報は、テーブルアドレスとパラメータ情報とを関連付けるテーブル情報である。
【0044】
メモリコントローラ10では、テーブルアドレス生成回路12と、テーブルメモリ13と、ループアドレス生成回路14によりリードアドレス生成部を構成する。また、テーブルアドレス生成回路15と、テーブルメモリ16と、ループアドレス生成回路17によりライトアドレス生成部を構成する。メモリコントローラ10では、リードアドレス生成部とライトアドレス生成部とは、互いに異なる値の設定情報を与えることで異なる値のアクセスアドレスを生成する。しかし、リードアドレス生成部を構成する回路ブロックと、ライトアドレス生成部を構成する回路ブロックは、それぞれ同じ機能を有する。
【0045】
テーブルアドレス生成回路12及びテーブルアドレス生成回路15は、第1のアドレス生成部として機能する。テーブルアドレス生成回路12及びテーブルアドレス生成回路15は、第1のレジスタ群を備え、第1のレジスタ群に格納された値を用いて循環的に繰り返される第1のパターンでテーブルアドレスを生成する。なお、テーブルアドレス生成回路12が出力するテーブルアドレスにはTA1の符号を付し、テーブルアドレス生成回路15が出力するテーブルアドレスにはTA2の符号を付した。また、第1のレジスタ群に格納される値は、レジスタ設定値RS1、RS2により決まる。
【0046】
テーブルメモリ13は、パラメータ情報とテーブルアドレスTA1とを関係づけたテーブル情報を有し、テーブルアドレスTA1のアドレス値に対応したパラメータ情報PA1を出力する。テーブルメモリ16は、パラメータ情報とテーブルアドレスTA2とを関係づけたテーブル情報を有し、テーブルアドレスTA2のアドレス値に対応したパラメータ情報PA2を出力する。
【0047】
ループアドレス生成回路14及びループアドレス生成回路17は、第2のアドレス生成部として機能する。ループアドレス生成回路14及びループアドレス生成回路17は、第2のレジスタ群を備え、第2のレジスタ群に格納された値とテーブルメモリから出力されるパラメータ情報とを用いて循環的に繰り返される第2のパターンでアクセスアドレスを生成する。なお、ループアドレス生成回路14が出力するアクセスアドレスは、リードアドレスRAであり、ループアドレス生成回路17が出力するアクセスアドレスは、ライトアドレスWAである。また、第2のレジスタ群に格納される値は、レジスタ設定値RS1、RS2により決まる。
【0048】
FIFOメモリ18は、リードアドレスRAによりデータメモリから読み出されたリードデータRDを読み出された順に記憶し、記憶した順番で記憶したデータを出力する。FIFOメモリ18が出力したデータはデータメモリDM2に対するライトデータWDとなる。
【0049】
メモリコントローラ10では、テーブルアドレス生成回路12が、レジスタ設定値RS1により決まる設定情報に基づき循環的に繰り返される第1のパターンでテーブルアドレスTA1を生成する。このテーブルアドレスTA1は、アドレス生成サイクル毎に異なる。そのため、このテーブルアドレスTA1に基づきテーブル情報から参照されるパラメータ情報PA1は、アドレス生成サイクル毎に変化する。そして、ループアドレス生成回路14が、パラメータ情報PA1及びレジスタ設定値RS1により決まる設定情報に基づき循環的に繰り返される第2のパターンでリードアドレスRAを生成する。このように、テーブルアドレス生成回路12、テーブルメモリ13及びループアドレス生成回路14を用いてリードアドレスRAを生成することで、周期性を有し、且つ、不連続なリードアドレスRAをDSPの処理能力を使うことなく生成することができる。
【0050】
また、メモリコントローラ10では、リードアドレスRAと同様の処理によりライトアドレスWAを生成するため、ライトアドレスWAについても、DSPの処理能力を使うことなく、周期性を有し、且つ、不連続なアドレス値とすることができる。
【0051】
上記説明より、実施の形態1にかかる半導体装置1では、メモリコントローラ10を利用することで、DSPの処理能力を使うことなく、周期性を有し、且つ、不連続なアクセスアドレスを生成することができる。このとき、半導体装置1では、設定情報を用いて循環的に繰り返される第1のパターンでテーブルアドレスを生成し、アドレス生成サイクル毎に当該テーブルアドレスを元にテーブル情報からパラメータ情報を選択する。また、このパラメータ情報と設定情報とに基づき循環的に繰り返される第2のパターンでアクセスアドレスを生成する。つまり、半導体装置1では、不連続なアドレス値のパターンの全てをテーブル情報として有することなくテーブル情報の大きさに比べて長い周期で変化する不連続なアクセスアドレスを生成することができる。このようなことから、実施の形態1にかかる半導体装置1では、テーブルメモリ13の大きさを小さくすることができる。
【0052】
また、特許文献1、2に記載の技術では、当初想定した復号方式以外の復号方式に対応するためにはハードウェアの変更が必要になり、再設計を行うことなく復号方式の変更に対応することができない問題がある。
【0053】
しかし、実施の形態1にかかる半導体装置1では、レジスタ設定値RS1、RS2と、テーブル情報ST1、ST2との少なくとも一方を変更することでアクセスアドレスの生成パターンを変更することができる。このように、半導体装置1では、マイクロCPU11が、データ処理を行うDSPからの指示に基づきデータのデータフォーマットに対応した設定情報を出力する設定情報を変更することでアクセスアドレスの生成パターンを変更することができる。つまり、半導体装置1では、アクセスアドレスの生成パターンをプログラマブルに変更することができる。このように、プログラマブルにアクセスアドレスの生成パターンを変更可能とすることで、受信機が当初想定したとは異なる復号方式に対応する場合にも復号方式の変更に柔軟に対応することができる。
【0054】
実施の形態2
実施の形態2では、テーブルアドレス生成回路12、15とループアドレス生成回路14、17の構成の一例について説明する。なお、実施の形態2で説明する構成例は、アクセスアドレスの生成パターンを示す一例であり、テーブルアドレス生成回路12、15及びループアドレス生成回路14、17の構成としては、種々の構成が考えられる。なお、実施の形態2にかかる半導体装置2の説明において実施の形態1にかかる半導体装置1の構成要素と同じものについては説明を省略する。
【0055】
まず、実施の形態2にかかる半導体装置2におけるアクセスアドレスの生成アルゴリズムを
図3に示す。
図3に示すアルゴリズムは、リードアドレスRAの生成アルゴリズムをC言語で表したものである。
【0056】
図3に示すように、実施の形態2にかかる半導体装置2におけるリードアドレスRAの生成アルゴリズムでは、リードアドレスRAを仮アドレス値ptr1にパラメータ情報として与えられる値PA1[TA1]を加算して生成する。この仮アドレス値ptr1は、前のアドレス生成サイクルで算出された仮アドレス値ptr1とステップ幅step1との和に対して繰り返し周期値len1を用いた剰余演算を行うことにより算出される。
【0057】
また、テーブルアドレスTA1は、前のアドレス生成サイクルで算出されたアドレス値tptr1とステップ幅tstep1との和に対して繰り返し周期値tlen1を用いた剰余演算を行うことにより算出される。
【0058】
そして、
図3に示すアルゴリズムでは、アドレス処理サイクル数がループ回数上限値max1に達するまで処理サイクル毎にリードアドレスRAを上記アルゴリズムに従って生成する。また、アドレス生成サイクル数がループ回数上限値max1に達するまでの期間においてアドレス生成サイクル数がループ回数上限値tmax1に達する毎にテーブルアドレスTA1を初期値にリセットしてテーブルアドレスTA1の生成処理を繰り返す。
【0059】
続いて、
図3に示したアドレス生成アルゴリズムを実現するための構成を有するテーブルアドレス生成回路及びループアドレス生成回路について説明する。テーブルアドレス生成回路12、15とループアドレス生成回路14、17の構成の一例を示すテーブルアドレス生成回路12a、15aとループアドレス生成回路14a、17aを含む実施の形態2にかかる半導体装置2のブロック図を
図4に示す。なお、
図4に示す例では、テーブルアドレス生成回路12a、15aとループアドレス生成回路14a、17aを有するメモリコントローラ10aのみを示した。つまり、実施の形態2にかかる半導体装置2も、実施の形態1と同様にDSPを有する。また、メモリコントローラ10aは、データメモリDM1、DM2に対してアクセスを行う。
【0060】
テーブルアドレス生成回路12aは、第1のレジスタ21〜24、加算器25、剰余演算器26、セレクタSEL0を有する。第1のレジスタ21には、更新ステップ幅TSTEP1が格納される。第1のレジスタ22には、繰り返し周期値TLEN1が格納される。第1のレジスタ23には、ループ回数上限値TMAX1が格納される。第1のレジスタ24には、アドレス値TPTR1が格納される。このアドレス値TPTR1は、テーブルアドレスTA1となるものである。加算器25は、算出済みのアドレス値TPTR1と更新ステップ幅TSTEP1とを加算した結果を出力する。剰余演算器26は、加算器25が出力した結果値に対して繰り返し周期値TLEN1を用いた剰余演算を行い、その演算結果を出力する。そして、剰余演算器26が出力する演算結果によって第1のレジスタ24に格納されているアドレス値TPTR1が更新される。また、テーブルアドレス生成回路12aは、剰余演算器26と第1のレジスタ24との間にセレクタSEL0が設けられる。このセレクタSEL0は、アドレス生成サイクル数がループ回数上限値TMAX1に達するまでの期間は剰余演算器26の出力値を出力し、アドレス生成サイクル数がループ回数上限値TMAX1に達したことに応じて0を出力する。そして、テーブルアドレス生成回路12aでは、セレクタSEL0が0を出力したことに応じて、アドレス値TPTR1を初期値(例えば、0)にリセットする。これにより、テーブルアドレス生成回路12aでは、テーブルアドレスTA1の生成動作を初期状態から再開する。
【0061】
ループアドレス生成回路14aは、第2のレジスタ27〜30、加算器31、33、剰余演算器32、セレクタSEL1を有する。第2のレジスタ27には、更新ステップ幅STEP1が格納される。第2のレジスタ28には、繰り返し周期値LEN1が格納される。第2のレジスタ29には、ループ回数上限値MAX1が格納される。第2のレジスタ30には、仮アドレス値PTR1が格納される。この仮アドレス値PTR1にパラメータ情報PA1を加えた値がリードアドレスRAとなる。加算器31は、算出済みの仮アドレス値PTR1と更新ステップ幅TSTEP1とを加算した結果を出力する。剰余演算器32は、加算器31が出力した結果値に対して繰り返し周期値LEN1を用いた剰余演算を行い、その演算結果を出力する。そして、剰余演算器32が出力する演算結果によって第2のレジスタ30に格納されている仮アドレス値PTR1が更新される。加算器33は、仮アドレス値PTR1とパラメータ情報PA1により与えられる値とを加算してリードアドレスRAを出力する。また、ループアドレス生成回路14aは、剰余演算器32と第2のレジスタ30との間にセレクタSEL1が設けられる。このセレクタSEL1は、アドレス生成サイクル数がループ回数上限値MAX1に達するまでの期間は剰余演算器32の出力値を出力し、アドレス生成サイクル数がループ回数上限値MAX1に達したことに応じて0を出力する。そして、ループアドレス生成回路14aでは、セレクタSEL1が0を出力したことに応じて、仮アドレス値PTR1を初期値(例えば、0)にリセットする。これにより、ループアドレス生成回路14aでは、リードアドレスRAの生成動作を初期状態から再開する。
【0062】
テーブルアドレス生成回路15aは、テーブルアドレス生成回路12aと同じ回路構成であるが、レジスタに格納される値が異なるものである。テーブルアドレス生成回路15aは、第1のレジスタ41〜44、加算器45、剰余演算器46を有する。第1のレジスタ41〜44、加算器45、剰余演算器46、セレクタSEL2は、それぞれ、第1のレジスタ21〜24、加算器25、剰余演算器26、セレクタSEL0に対応するものである。そして、テーブルアドレス生成回路15aでは、第1のレジスタ41に更新ステップ幅TSTEP2が格納され、第1のレジスタ42に繰り返し周期値TLEN2が格納され、第1のレジスタ43にループ回数上限値TMAX2が格納される。また、第1のレジスタ44には、アドレス値TPTR2が格納される。このアドレス値TPTR2は、テーブルアドレスTA2となるものである。
【0063】
ループアドレス生成回路17aは、ループアドレス生成回路14aと同じ回路構成であるが、レジスタに格納される値が異なるものである。ループアドレス生成回路17aは、第2のレジスタ47〜50、加算器51、53、剰余演算器52、セレクタSEL3を有する第2のレジスタ47〜50、加算器51、53、剰余演算器52は、それぞれ、第2のレジスタ27〜30、加算器31、33、剰余演算器32、セレクタSEL1に対応するものである。そして、ループアドレス生成回路17aでは、第2のレジスタ47に更新ステップ幅STEP2が格納され、第2のレジスタ48に繰り返し周期値LEN2が格納され、第2のレジスタ49にループ回数上限値MAX2が格納される。第2のレジスタ50には、仮アドレス値PTR2が格納される。この仮アドレス値PTR2にパラメータ情報PA2を加えた値がライトアドレスWAとなる。
【0064】
実施の形態2では、テーブルアドレス生成回路とループアドレス生成回路の構成例について説明した。この説明から明らかなように、テーブルアドレス生成回路とループアドレス生成回路は、レジスタと少数の演算器による簡易な構成で実現することが可能である。つまり、実施の形態2にかかる半導体装置2では、このような簡易な回路においてループ制御を行うことで周期的に変化する複雑なアドレスパターンを生成することができる。また、簡易な回路でテーブルアドレス生成回路とループアドレス生成回路を構成することで、メモリコントローラ10aは、回路面積を抑制することができる。
【0065】
実施の形態3
実施の形態3にかかる半導体装置3のブロック図を
図5に示す。
図5に示すように、実施の形態3にかかる半導体装置3は、メモリコントローラ10の別の形態を示すメモリコントローラ60を有する。メモリコントローラ60は、実施の形態1にかかるメモリコントローラ10のFIFOメモリ18をデータ処理部63に置き換え、マイクロCPU11をマイクロCPU61に置き換えたものである。また、メモリコントローラ60では、データ処理部63に対応してFIFOメモリ61、62を追加した。
【0066】
FIFOメモリ61は、リードデータRDを一時的に格納するバッファである。また、FIFOメモリ62は、ライトデータWDを一時的に格納するバッファである。そして、データ処理部63は、FIFOメモリ61から読み出したデータに対して信号処理を施してFIFOメモリ62に出力する。
【0067】
データ処理部63には、レジスタ設定値RS3が与えられる。データ処理部63は、レジスタ設定値RS3に対応した信号処理を行う。例えば、データ処理部63は、ビタビ復号処理及びビタビ復号処理時の軟判定処理を行うことができる。また、マイクロCPU61は、マイクロCPU11にレジスタ設定値RS3を出力する機能を追加したものである。
【0068】
このように、実施の形態3にかかる半導体装置3では、リードデータRDをデータメモリDM2に伝送する経路上にデータ処理部63を設けることで、データメモリDM2に格納されるデータに何らかの信号処理を施すことができる。このように、データ処理部63において信号処理を行うことで、DSPの処理負担を軽減することができる。
【0069】
実施の形態4
実施の形態4にかかる半導体装置4のブロック図を
図6に示す。
図6に示すように、実施の形態4にかかる半導体装置4は、メモリコントローラ60の別の形態を示すメモリコントローラ70を有する。メモリコントローラ70は、実施の形態3にかかるメモリコントローラ60のデータ処理部63をデータ処理部76に置き換え、マイクロCPU61をマイクロCPU71に置き換えたものである。
【0070】
また、メモリコントローラ70では、2つめのリードアドレスRAを生成するために、テーブルアドレス生成回路72、テーブルメモリ73、ループアドレス生成回路74を追加した。テーブルアドレス生成回路72はテーブルアドレス生成回路12と同じ機能を有する回路ブロックであり、テーブルメモリ73はテーブルメモリ13と同じ機能を有する回路ブロックであり、ループアドレス生成回路74はループアドレス生成回路14と同じ機能を有するものである。
【0071】
また、マイクロCPU71は、マイクロCPU61にレジスタ設定値RS4及びテーブル情報ST3を出力する機能を追加するものである。レジスタ設定値RS4は、レジスタ設定値RS1、RS2とは独立した値を有する。また、テーブル情報ST3は、テーブル情報ST1、ST2とは独立したテーブル情報である。そして、レジスタ設定値SR4は、テーブルアドレス生成回路72及びループアドレス生成回路74のレジスタに設定値を与える。また、テーブル情報ST3は、テーブルメモリ73に格納される。
【0072】
また、メモリコントローラ70は、FIFOメモリ75を備える。メモリコントローラ70は、データメモリDM1、DM3のそれぞれに対してリードアドレスRAを出力し、データメモリDM1、DM3のそれぞれからリードデータRDを読み出す。FIFOメモリ75は、データメモリDM3から出力されるリードデータを一時的に格納するバッファとして機能する。
【0073】
このように、メモリコントローラ70は、テーブルアドレス生成回路、テーブルメモリ、ループアドレス、FIFOメモリの組を複数設けることで2つ以上のリードアドレスRAを生成することができる。そして、2つ以上のリードアドレスRAにより2つ以上のデータメモリから同時にリードデータを読み出すことができる。
【0074】
データ処理部76は、複数のデータメモリから読み出された複数のリードデータRDに対してマルチプレックス処理を施して1つのライトデータWDを生成する。このようなマルチプレックス処理を行うことで、複数のチャネルデータを多重化したバースト転送を実現することができる。また、
図6に示す例では、ライトデータWDを1つとしたが、データ処理部76は、1つのリードデータRDに対してデマルチプレックス処理を施すことで複数のライトデータWDを生成することもできる。複数のライトデータWDがある場合、ライトアドレスWAを生成するテーブルアドレス生成回路、テーブルメモリ、ループアドレス、FIFOメモリの組を複数設ける必要がある。このようなデマルチプレックス処理を行うことで、リードデータRDとして複数のチャネルデータを多重化したデータをバースト転送により読み出すことができる。このようなバースト転送を行うことで、データ転送の効率を向上させることができる。
【0075】
また、データ処理部76は、マルチプレックス処理のみならず、ビタビ復号中の軟判定処理を行うこともできる。データ処理部76がどのような処理を行うかは、レジスタ設定値RS3により切り替えることができる。
【0076】
上記説明より、実施の形態4では、リードデータRDの転送チャネルの数と、ライトデータWDの転送チャネルの数を1以上とした半導体装置の構成例について説明した。実施の形態4にかかる半導体装置4では、実施の形態1にかかる半導体装置1と同様に、演算処理とテーブル情報とに基づきテーブル情報の大きさに比べて長い周期で複雑に変化するアドレス値を生成することができる。そのため、実施の形態4にかかる半導体装置4のように、複数の転送チャネルにおいて異なるアクセスアドレスを用いたとしても、回路規模の増大を抑制することができる。また、実施の形態4においても、設定情報の切り替えによりアクセスアドレスの生成アルゴリズムを変更することができるため、システムが対応する復号方式の変更に柔軟に対応することが可能である。
【0077】
なお、
図6では、データメモリDM1〜DM3をそれぞれ異なる回路ブロックとして表した。しかし、これらメモリは、1つの回路ブロックを論理的に分割した領域として実装されていても良い。
【0078】
実施の形態5
実施の形態5にかかる半導体装置5のブロック図を
図7に示す。
図7に示すように、実施の形態5にかかる半導体装置5は、メモリコントローラ10の別の形態を示すメモリコントローラ80を有する。メモリコントローラ80は、メモリコントローラ10に固定テーブル81、82を追加したものである。
【0079】
メモリコントローラ80において、テーブルメモリ13、16は、第1のテーブルメモリとして機能し、固定テーブル81、82は、第2のテーブルメモリとして機能する。テーブルメモリ13、16は、実施の形態1にかかるメモリコントローラ10と同様にマイクロCPU11から与えられた第1のテーブル情報ST1、ST2を格納する。一方、固定テーブル81、82は、予め決められたテーブル情報を第2のテーブル情報として格納する。この固定テーブル81、82は、例えば、ROM(Read Only Memory)或いは、テーブルアドレスTA1、TA2を元にパラメータ情報を算出する演算回路(例えば、パラメータ情報演算回路)により実現できる。
【0080】
半導体装置5では、テーブルアドレス生成回路12から出力されるテーブルアドレスTA1が、テーブルメモリ13と固定テーブル81の両方に与えられる。そして、テーブルアドレスTA1がテーブルメモリ13のアドレスを示す場合には、パラメータ情報PA1がテーブルメモリ13からループアドレス生成回路14に与えられる。また、テーブルアドレスTA1が固定テーブル81のアドレスを示す場合には、パラメータ情報PA1fが固定テーブル81からループアドレス生成回路14に与えられる。ループアドレス生成回路14は、パラメータ情報PA1とパラメータ情報PA1fのいずれか一方を用いてリードアドレスRA生成する。
【0081】
また、半導体装置5では、テーブルアドレス生成回路15から出力されるテーブルアドレスTA2が、テーブルメモリ16と固定テーブル82の両方に与えられる。そして、テーブルアドレスTA2がテーブルメモリ16のアドレスを示す場合には、パラメータ情報PA2がテーブルメモリ16からループアドレス生成回路17に与えられる。また、テーブルアドレスTA2が固定テーブル82のアドレスを示す場合には、パラメータ情報PA2fが固定テーブル82からループアドレス生成回路17に与えられる。ループアドレス生成回路17は、パラメータ情報PA2とパラメータ情報PA2fのいずれか一方を用いてライトアドレスWA生成する。
【0082】
異なる通信方式において共通に利用される動作パターンについては、共通に利用することができる。そのため、共通に利用される動作パターンをROM或いは演算回路として実装することでテーブルメモリ13、16の回路規模を小さくすることができる。また、ROMは、一般的に、書き込み回路、読み出し回路、記憶素子等を簡略化することができるためRAMに比べて回路規模、消費電力、動作効率が高い。そのため、共通に利用できる動作パターンをROMとして実装することで半導体装置の回路規模、消費電力、動作効率を向上させることができる。また、演算回路を用いた場合は、出力すべきテーブル情報を個別に備える必要がないため、回路規模を小さくするすることができる。
【0083】
実施の形態6
実施の形態6にかかる半導体装置6のブロック図を
図8に示す。
図8に示すように、実施の形態6にかかる半導体装置6は、メモリコントローラ10の別の形態を示すメモリコントローラ90を有する。また、半導体装置6では、テーブルメモリとしてデータメモリと同様に外部のメモリ(例えば、SDRAM)を利用する。
図8では、リードアドレスRAの生成に利用されるテーブルメモリTM1を示し、ライトアドレスWAの生成に利用されるテーブルメモリTM2を示した。
【0084】
メモリコントローラ90は、メモリコントローラ10からテーブルメモリ13、16を削除し、FIFOメモリ92、93を追加したものである。また、メモリコントローラ90は、マイクロCPU11からテーブル情報TS1、TS2の生成機能を削除したマイクロCPU91を有する。実施の形態6にかかる半導体装置6では、テーブルメモリTM1、TM1にテーブル情報ST1、ST2が格納される。半導体装置6では、例えば、このテーブル情報ST1、ST2をDSPが図示しないバスを介して入力する。また、テーブル情報ST1、ST2は、マイクロCPU91がテーブルメモリTM1、TM2に書き込んでも良い。
【0085】
実施の形態6にかかる半導体装置6では、テーブルアドレス生成回路12が出力するテーブルアドレスTA1をリードアドレスとしてテーブルメモリTM1からパラメータ情報PA1を読み出す。そして、パラメータ情報PA1をFIFOメモリ92で一時的に保持する。そして。FIFOメモリ92から出力されるパラメータ情報PA1を用いてループアドレス生成回路14がリードアドレスRAを生成する。
【0086】
また、実施の形態6にかかる半導体装置6では、テーブルアドレス生成回路15が出力するテーブルアドレスTA2をリードアドレスとしてテーブルメモリTM2からパラメータ情報PA2を読み出す。そして、パラメータ情報PA2をFIFOメモリ93で一時的に保持する。そして。FIFOメモリ93から出力されるパラメータ情報PA2を用いてループアドレス生成回路17がライトアドレスWAを生成する。
【0087】
このように、テーブルメモリTM1、TM2は、外部のメモリを利用することで実現することもできる。このように、テーブルメモリTM1、TM2として外部のメモリを利用することで半導体装置6の回路面積を削減することができる。また、テーブルメモリTM1、TM2は、データメモリDM1、DM2を構成するメモリモジュールにおいて論理的に分離された領域に定義することもできる。このように、メモリモジュールにおいて論理的に分離された領域にテーブルメモリTM1、TM2を設けることで、メモリモジュールを追加する必要がなく、システムの回路規模を削減することができる。また、一般的に、外部メモリは、半導体装置6に実装されるメモリよりも大きな容量を有する。そのため、テーブルメモリTM1、TM2を外部メモリに実装することでテーブル情報が大きくなった場合にも柔軟な対応が可能になる。
【0088】
実施の形態7
実施の形態7にかかる半導体装置7のブロック図を
図9に示す。
図9に示すように、実施の形態7にかかる半導体装置7は、実施の形態6にかかる半導体装置6のテーブルメモリTM1、TM2に代えてパラメータ情報演算回路94、95を有する。
【0089】
パラメータ情報演算回路94は、テーブルアドレス生成回路12で生成されたテーブル情報TA1に基づきパラメータ情報PA1を演算により生成する。パラメータ情報演算回路95は、テーブルアドレス生成回路15で生成されたテーブル情報TA2に基づきパラメータ情報PA2を演算により生成する。
【0090】
このように、テーブルメモリTM1、TM2をパラメータ情報演算回路94、95に置き換えても、実施の形態7にかかる半導体装置7の動作は、実施の形態6にかかる半導体装置6と同じになる。また、パラメータ情報演算回路94、95はパラメータ情報をテーブルデータとして備える必要がないため、メモリを用いた場合に比べ回路規模を小さくすることができる。
【0091】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、同じ演算結果を得るためのアルゴリズムは、1つに限られないため、同じ演算結果を得ることができるアドレス生成アルゴリズムは複数考えることができる。