(57)【要約】  信号処理装置は、演算ユニットにより実行される演算処理のタイミングを制御する演算制御ユニットと、前記演算ユニットにより前記演算処理の対象となるデータがロードできるように、該演算処理の対象となるデータを転送するためのタイミングを制御する転送制御ユニットとを有する。
2013080289.tif 000002
【特許請求の範囲】
【請求項１】
演算ユニットにより実行される演算処理のタイミングを制御する演算制御ユニットと、
該演算制御ユニットにより制御される演算処理のタイミングに従って前記演算ユニットにより前記演算処理の対象となるデータがロードできるように、該演算処理の対象となるデータを転送するためのタイミングを制御する転送制御ユニットと
を有する、信号処理装置。
【請求項２】
前記転送制御ユニットは、プログラムメモリに格納された命令に従って、前記演算処理の対象となるデータを転送するためのタイミングを制御する、請求項１に記載の信号処理装置。
【請求項３】
前記転送制御ユニットは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）方式に従って、前記演算処理の対象となるデータを転送するためのタイミングを制御する、請求項１に記載の信号処理装置。
【請求項４】
前記転送制御ユニットは、前記演算処理の対象となる複数のデータを転送するためのタイミングを制御する際に、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）方式に従う、請求項１ないし３のいずれか１項に記載の信号処理装置。
【請求項５】
前記転送制御ユニットにより制御されるタイミングに従って転送されるデータを記憶する１又は複数の記憶部
を有し、
前記転送制御ユニットは、前記演算処理の対象となる複数のデータを転送するためのタイミングを制御する際に、前記１又は複数の記憶部に、前記演算処理の対象となる複数のデータを転送するためのタイミングを制御する、請求項１に記載の信号処理装置。
【請求項６】
演算ユニットにより実行される演算処理のタイミングを制御し、
該演算処理のタイミングに従って前記演算ユニットにより前記演算処理の対象となるデータがロードできるように、該演算処理の対象となるデータを転送するためのタイミングを制御する、信号処理方法。
【請求項７】
前記演算制御ユニットにより制御されるタイミングと、前記転送制御ユニットにより制御されるタイミングとが同期している、請求項１に記載の信号処理装置。
【請求項８】
前記演算制御ユニットは、プログラムメモリに格納された命令に従って、前記演算処理タイミングを制御する、請求項１に記載の信号処理装置。
【請求項９】
前記演算制御ユニットは、前記演算ユニットにより演算処理されたデータを転送するためのタイミングを制御する、請求項１に記載の信号処理装置。
【請求項１０】
前記演算制御ユニットは、前記演算処理されたデータを転送するためのタイミングを制御する際に、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）方式に従う、請求項９に記載の信号処理装置。
【請求項１１】
前記演算制御ユニットにより制御されるタイミングに従って転送されるデータを記憶する１又は複数の記憶部
を有し、
前記演算制御ユニットは、前記演算処理された複数のデータを転送するためのタイミングを制御する際に、前記１又は複数の記憶部に、前記演算処理された複数のデータを転送するためのタイミングを制御する、請求項９に記載の信号処理装置。
【請求項１２】
請求項１ないし１１のいずれか１項に記載の信号処理装置を有する携帯端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置に関する。
【背景技術】
【０００２】
移動通信の分野では、次々に新たな通信方式が標準化されて実用化されている。新たな通信方式が実用化される際には、現状の通信方式から、新たな通信方式に徐々に切り替えられる。従って、現状の通信方式から、新たな通信方式への移行期においては、一つの携帯端末で複数の通信方式をサポートすることが行われる場合もある。【０００３】
一つの携帯端末で複数の通信方式をサポートする場合に、通信方式毎に専用のハードウェアを用意することが考えられる。しかし、通信方式毎に専用のハードウェアを用意する方法では、携帯端末の回路規模が大きくなる。携帯端末の回路規模が大きくなると、コストの増加や消費電力の増加などの問題が生じるおそれがある。【０００４】
また、標準化規格が更新された場合には、更新された規格に、携帯端末を柔軟に対応させることが必要である。通信方式毎に専用のハードウェアを用意する方法では、更新された規格に迅速に対応できない。【０００５】
以上の理由から、一つの携帯端末で複数の通信方式をサポートすることを、ソフトウェアデファインドラジオ（ＳＤＲ：  Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｒａｄｉｏ）で実現することが望まれている。ソフトウェアデファインドラジオは、通信方式の実装をソフトウェアで行うことである。具体的には、無線処理をプロセッサのプログラムや書き換え可能ロジック等を使用して実現できるように無線機を構成する。ソフトウェアデファインドラジオで実現することにより、ハードウェアに変更を加えることなく、ソフトウェアを変更することによって、通信方式を切り替えることが可能である。【０００６】
ソフトウェアで無線機（ラジオ）を実現する方法には、プロセッサを用いる方法やリコンフィギャラブルハードウェアを用いる方法などがある。ソフトウェアで無線機を実現する際には、開発手法が一般的であるプロセッサで実現する方が容易であるため、プロセッサを用いる方法が主流になっている。リコンフィギャラブルハードウェアを用いることにより、実行時にハードウェアの構成が動的に組み替えられる。【０００７】
一方、近年の無線通信方式が要求する伝送レートは非常に高くなっている。伝送レートの高レート化に伴い、携帯端末に要求される演算処理性能も非常に高くなっている。近年の無線通信方式には、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）方式に代表される、ＯＦＤＭ（Ｏｒｔｈｏｇｏｎａｌ  Ｆｒｅｑｕｅｎｃｙ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘ）方式を採用する無線通信方式が含まれる。ＯＦＤＭ方式を採用する無線通信方式では、周波数方向及び時間方向に展開された無線リソースを多数用意することで、全体としての伝送レートを向上させる。【０００８】
ＯＦＤＭ方式のような無線通信方式を実現する処理には、複雑な制御は殆ど必要なく、単純な処理の繰返しを効率よく実行できる構成が適している。ここで、複雑な制御には、演算結果を利用した分岐処理等が含まれる。【０００９】
また、演算性能を向上させる一方法として、複数の命令を結合して、語長の長い一命令に構成し、同時に実行するようにした方法がある。例えば、ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）を利用した技術が挙げられる。ＶＬＩＷは、プロセッサのアーキテクチャの一種であり、複数の機能を用意し、各機能を動作させる命令を一つの命令に結合して、語長の長い一命令として実行する方式である。【００１０】
信号処理装置に関して、演算器の並列度を高めても、急激な回路規模の増大を抑えることができるものが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−１４１７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ＶＬＩＷを利用した方法では、結合された複数の命令に直接的な因果関係がない場合が多い。ＶＬＩＷを利用した方法では、結合された複数の命令が略同時に実行されようとする結果、ある命令の実行が、該ある命令と因果関係のない他の命令によって生じるストールにより阻害されるという問題がある。ストールとは、何らかの要因で処理が停止することをいう。例えば、プロセッサのサイクル時間とメモリのサイクル時間とが異なる場合に、早いサイクル時間のデバイスの動作が停止（ストール）することがある。プロセッサのサイクル時間よりもメモリのサイクル時間の方が遅い場合には、プロセッサの動作が停止する。【００１３】
具体的には、ロード（ＬＯＡＤ）命令と演算（ＯＰＥＲＡＴＩＯＮ）命令とが略同時に実行され、ロード命令がストールすると、該ストールの影響を受けて演算命令もストールする。【００１４】
図１は、ＶＬＩＷを利用した処理のタイムチャートの一例を示す。図１において、横軸は時間を表す。例えば、横軸は「サイクル」により表される。図１では、各サイクルに対応して、（１）−（１０）が付される。図１には、オペレーション１−１（ＯＰ１−１）の実行に、ロードされたデータが利用される場合について示す。つまり、オペレーション１−２（ＯＰ１−２）、オペレーション１−３（ＯＰ１−３）の実行には、ロードされたデータは直接的には利用されない。【００１５】
サイクル（１）では、データ１（ｄａｔａ１）をロードする処理が実行される（ＬＤ１）。【００１６】
サイクル（２）では、サイクル（１）でロードされたデータ１を利用して、オペレーション１−１が実行される。【００１７】
サイクル（３）では、オペレーション１−２が実行される。【００１８】
サイクル（４）では、データ２（ｄａｔａ２）をロードする処理が実行されるとともに（ＬＤ２）、オペレーション１−３が実行される。【００１９】
サイクル（５）では、サイクル（４）でロードされたデータ２を利用して、オペレーション１−１が実行される。【００２０】
サイクル（６）では、オペレーション１−２が実行される。【００２１】
サイクル（７）では、データ３（ｄａｔａ３）をロードする処理が実行されるとともに（ＬＤ３）、オペレーション１−３が実行される。【００２２】
サイクル（８）では、サイクル（７）でロードされたデータ３を利用して、オペレーション１−１が実行される。【００２３】
サイクル（９）では、オペレーション１−２が実行される。【００２４】
サイクル（１０）では、データ４をロードする処理が実行されるとともに（ＬＤ４）、オペレーション１−３が実行される。【００２５】
図１に示される例では、ロード処理、演算処理ともに、一サイクルで実行される。図１では、ストールは発生しない。【００２６】
図２は、ＶＬＩＷを利用した処理のタイムチャートの一例（その２）を示す。図２において、横軸は時間を表す。例えば、横軸は「サイクル」により表される。図２では、各サイクルに対応して、（１）−（１４）が付される。図２には、オペレーション１−１（ＯＰ１−１）の実行に、ロードされたデータが利用される場合について示す。つまり、オペレーション１−２（ＯＰ１−２）、オペレーション１−３（ＯＰ１−３）が実行される際には、ロードされたデータは直接的には利用されない。【００２７】
サイクル（１）、サイクル（２）では、２サイクルでデータのロードが実行される（ＬＤ１）。データのロードが実行される２サイクルの前半の１サイクルの間でストールが発生している。つまり、メモリからデータを読み出す際に、１サイクルのストールが発生する。【００２８】
サイクル（３）では、サイクル（２）で読み出されたデータ１（ｄａｔａ１）を利用して、オペレーション１−１が実行される。【００２９】
サイクル（４）では、オペレーション１−２が実行される。【００３０】
サイクル（５）、サイクル（６）では、２サイクルでデータのロードが実行される（ＬＤ２）。さらに、サイクル（５）、サイクル（６）では、２サイクルで、オペレーション１−３が実行される。しかし、データのロードが実行される２サイクルの前半の１サイクルの間でストールが発生しているため、オペレーション１−３が実行される２サイクルの前半の１サイクルの間でストールが発生している。本来、演算命令は、必要なデータがそろっている場合には、１サイクルで実行可能である。しかし、データのロードの際に発生するストールの影響により、オペレーション１−３でもストールが発生し２サイクルとなっている。【００３１】
サイクル（７）では、サイクル（６）で読み出されたデータ２を利用して、オペレーション１−１が実行される。【００３２】
サイクル（８）では、オペレーション１−２が実行される。【００３３】
サイクル（９）、サイクル（１０）では、２サイクルでデータのロードが実行される（ＬＤ３）。さらに、サイクル（９）、サイクル（１０）では、２サイクルで、オペレーション１−３が実行される。しかし、データのロードが実行される２サイクルの前半の１サイクルの間でストールが発生しているため、オペレーション１−３が実行される２サイクルの前半の１サイクルの間でストールが発生している。【００３４】
サイクル（１１）では、サイクル（１０）で読み出されたデータ３を利用して、オペレーション１−１が実行される。【００３５】
サイクル（１２）では、オペレーション１−２が実行される。【００３６】
サイクル（１３）、サイクル（１４）では、２サイクルでデータのロードが実行される（ＬＤ４）。さらに、サイクル（１３）、サイクル（１４）では、２サイクルで、オペレーション１−３が実行される。しかし、データのロードが実行される２サイクルの前半の１サイクルの間でストールが発生しているため、オペレーション１−３が実行される２サイクルの前半の１サイクルの間でストールが発生している。【００３７】
図２に示される例では、ロード命令によりロードされたデータが、続いて実行されるロード命令により上書きされる前に、該データを利用した演算命令が実行されるようにプログラムを記述する必要がある。具体的には、サイクル（２）でロードされたデータが、サイクル（６）でロードされるデータにより上書きされる前に、サイクル（２）でロードされたデータを利用した演算命令が実行される必要がある。つまり、転送命令、演算命令が実行されるタイミングを厳密に定義する必要がある。転送命令、演算命令は互いに影響を及ぼし合うためである。図２に示される例では、ストールが頻繁に発生し得るため、ストールの発生を回避するようにプログラムを記述するのは難しい。【００３８】
また、ストールが発生することにより演算効率が低下すると、同じ処理量を実現するために多くのハードウェアが必要になる。多くのハードウェアが用いられると、回路規模や消費電力が大きくなるという問題が発生する。【００３９】
開示の信号処理装置は、ロード命令と演算命令とを独立して制御することを目的とする。
【課題を解決するための手段】
【００４０】
開示の一実施例の信号処理装置は、
演算ユニットにより実行される演算処理のタイミングを制御する演算制御ユニットと、
前記演算ユニットにより前記演算処理の対象となるデータがロードできるように、該演算処理の対象となるデータを転送するためのタイミングを制御する転送制御ユニットと
を有する。
【発明の効果】
【００４１】
開示の信号処理装置によれば、ロード命令と演算命令とを独立して制御することができる。
【図面の簡単な説明】
【００４２】
【図１】ＶＬＩＷを利用した処理のタイムチャートの一例を示す。
【図２】ＶＬＩＷを利用した処理のタイムチャートの一例を示す。
【図３】携帯端末の一実施例を示す図である。
【図４】復調部の一実施例を示す図である。
【図５】信号処理装置の一実施例を示す図である。
【図６】信号処理装置の動作の一実施例を示すタイムチャート（その１）である。
【図７】信号処理装置の動作の一実施例を示すタイムチャート（その２）である。
【図８】信号処理装置の動作の一例を示すタイムチャートである。
【図９】信号処理装置の動作の一実施例を示すフローチャートである。
【図１０】信号処理装置の動作の一実施例を示すフローチャートである。
【図１１】信号処理装置の一実施例による効果を示す図である。
【図１２】信号処理装置の一変形例を示す図である。
【符号の説明】
【００４３】
１００  携帯端末
１０２  無線部
１０４  Ｌ１処理部
１０６  Ｌ２処理部
１０８  通信制御ＣＰＵ
１１０  アプリケーションＣＰＵ
１１２  ユーザインターフェース回路
１４２  復調部
１４４  復号化部
１４６  符号化部
１４８  変調部
２０２  ＲＦインターフェース
２０４  バスインターフェース
２０６１−２０６３  ＤＳＰ
２０８１−２０８２  アクセラレータ
２１０  メモリ
２１２  バス
３０２  転送制御ユニット
３０４  データ転送ユニット
３０６  入力側一時記憶ユニット
３０８  出力側一時記憶ユニット
３１０  演算制御ユニット
３１２  演算ユニット
３１４  転送シーケンサ
３１６  演算シーケンサ
３１８  ＤＭＡ転送制御ユニット
【発明を実施するための形態】
【００４４】
以下、図面に基づいて、実施例を説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００４５】
＜携帯端末１００＞
図３は、携帯端末１００の一実施例を示す。図１には、主に、ハードウェア構成が示される。
【００４６】
携帯端末１００は、無線部１０２と、Ｌ１処理部１０４と、Ｌ２処理部１０６と、通信制御ＣＰＵ１０８と、アプリケーションＣＰＵ１１０と、ユーザインターフェース回路１１２とを有する。
【００４７】
無線部１０２は、Ｌ１処理部１０４からの変調波を高周波信号に変換する。無線部１０２は、高周波信号を電力増幅器により増幅し、アンテナから送信する。また、無線部１０２は、アンテナからの無線信号を増幅し、Ｌ１処理部１０４に入力する。
【００４８】
Ｌ１処理部１０４は、無線部１０２と接続される。Ｌ１処理部１０４は、無線信号に関する処理、つまり物理層に関する処理を行う。Ｌ１処理部１０４は、無線部１０２からの信号を復調する復調部１４２を有する。Ｌ１処理部１０４は、復調部１４２により復調された信号を復号する復号化部１４４を有する。復号化部１４４により復号された信号は、Ｌ２制御部１０６に入力される。また、Ｌ１処理部１０４は、送信データの符号化処理を行う符号化部１４６を有する。Ｌ１処理部１０４は、符号化部１４６により符号化された送信データの変調処理を行う変調部１４８を有する。変調部１４８により変調された信号は、無線部１０２に入力される。
【００４９】
Ｌ２処理部１０６は、Ｌ１処理部１０４と接続される。Ｌ２処理部１０６は、基地局（図示無し）との間で、レイヤー２に関する処理を行う。レイヤー２は、レイヤー３に、論理チャネルの伝送サービスを提供する。論理チャネルは、制御チャネル（ＣＣＨ：  Ｃｏｎｔｒｏｌ  Ｃｈａｎｎｅｌ）とトラヒックチャネル（ＴＣＨ：  Ｔｒａｆｆｉｃ  Ｃｈａｎｎｅｌ）から構成される。これらのチャネルの伝送は、ＲＬＣ（Ｒａｄｉｏ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ）副層およびＭＡＣ（Ｍｅｄｉｕｍ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）副層の機能により実現される。ＲＬＣ副層は、上位層に、透過型伝送、非送達確認型伝送、送達確認型伝送、伝送品質設定等のサービスを提供する。ＭＡＣ副層は、上位層に、論理チャネルのトランスポートチャネルへのマッピング、優先制御、フロー制御、流量監視とＲＲＣ（Ｒａｄｉｏ  Ｒｅｓｏｕｒｃｅ  Ｃｏｎｔｒｏｌ）への報告等のサービスを提供する。
【００５０】
通信制御ＣＰＵ１０８は、Ｌ２処理部１０６と接続される。通信制御ＣＰＵ１０８は、制御信号の送受信などの通信制御を行う。
【００５１】
アプリケーションＣＰＵ１１０は、通信制御ＣＰＵ１０８と接続される。アプリケーションＣＰＵ１１０は、携帯端末１００に搭載されたアプリケーションを処理する。
【００５２】
ユーザインターフェース回路１１２は、アプリケーションＣＰＵ１１０と接続される。ユーザインターフェース回路１１２は、ユーザに対して、情報を出力する。ユーザインターフェース回路１１２からは、アプリケーションＣＰＵ１１０による処理結果が出力されてもよい。
【００５３】
携帯端末１００の一実施例では、Ｌ１制御部１０４は、複数の無線通信方式に対応できるようにするために、ソフトウェアデファインドラジオで実現される。Ｌ１制御部１０４は、複数の機能を有する。図３には、複数の機能の例として、復調部１４２、復号化部１４４、符号化部１４６、変調部１４８が示される。他の機能が含まれてもよいし、図３に示される複数の機能のいずれかが含まれてもよい。各機能は、１又は複数のプロセッサにより実行される。具体的には、ソフトウェアデファインドラジオで実現するために、Ｌ１制御部１０４は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、アクセラレータ、メモリなどを含む。
【００５４】
図４は、Ｌ１制御部１０４の復調部１４２の一実施例を示す。図４には、ハードウェア構成が主に示される。
【００５５】
復調部１４２は、ＲＦインターフェース２０２と、バスインターフェース２０４と、ＤＳＰ２０６１−２０６３と、アクセラレータ２０８１−２０８２と、メモリ２１０とを有する。ＲＦインターフェース２０２、バスインターフェース２０４、ＤＳＰ２０６１−２０６３、アクセラレータ２０８１−２０８２、及びメモリ２１０は、バス２１２を介して互いに接続される。図４には、復調部１４２に、３個のＤＳＰが含まれる例が示されるが、ＤＳＰは、１、２個でもよいし、４個以上でもよい。また、図４には、復調部１４２に、２個のアクセラレータが含まれる例が示されるが、アクセラレータは、１個でもよいし、３個以上でもよい。
【００５６】
Ｌ１処理部１０４の回路規模は、各部に含まれるプロセッサの数により影響される。プロセッサの演算性能を向上させることにより、各部に含まれるプロセッサの数を減少させることができる。各部に含まれるプロセッサの数が減少することにより、Ｌ１処理部１０４の回路規模を小さくできる。
【００５７】
変調部１４８についても、復調部１４２と略同一のハードウェア構成で実現されてもよい。復号化部１４４、符号化部１４６についても、復調部１４２と略同一のハードウェア構成で実現されてもよい。但し、ＲＦインターフェース２０２の代わりに、バスインターフェース２０４を有するようにしてもよい。
【００５８】
ＲＦインターフェース２０２は、復調部１４２と無線部１０２との間のインターフェースである。
【００５９】
バスインターフェース２０４は、復調部１４２と符号化部１４４との間のインターフェースである。
【００６０】
ＤＳＰ２０６１−２０６３は、無線部１０２からの信号を処理する。つまり、ＤＳＰ２０６１−２０６３は、無線部１０２からの信号を復調する処理を実行する。以下、ＤＳＰ２０６１−２０６３は、信号処理装置と呼ばれることもある。無線部１０２からの信号を復調する処理を実行する際に、全てのＤＳＰにより処理を分担して実行するようにしてもよいし、一部のＤＳＰにより実行されてもよい。
【００６１】
アクセラレータ２０８１−２０８２は、ＤＳＰ２０６１−２０６３の処理能力を向上させる。ＤＳＰ２０６１−２０６３の処理能力によっては、必ずしもアクセラレータ２０８１−２０８２は必要ない。
【００６２】
メモリ２１０は、無線部１０２からの信号を一時的に格納する。
【００６３】
＜信号処理装置＞
図５は、信号処理装置の機能の一実施例を示す。図５には、信号処理装置の一実施例として、ＤＳＰ２０６１−２０６３の機能の一実施例を示す。
【００６４】
ＤＳＰ２０６１−２０６３は、略同一の機能ブロック図により表されるため、図３では、代表して、ＤＳＰ２０６１について説明する。
【００６５】
ＤＳＰ２０６１は、転送制御ユニット３０２と、データ転送ユニット３０４と、入力側一時記憶ユニット３０６と、出力側一時記憶ユニット３０８と、演算制御ユニット３１０と、演算ユニット３１２と、転送シーケンサ３１４と、演算シーケンサ３１６とを有する。
【００６６】
転送制御ユニット３０２は、入力側一時記憶ユニット３０６へ、必要に応じてメモリ２１０に格納されたデータを書き込む制御を行う。また、転送制御ユニット３０２は、復号化部１４４へ、出力側一時記憶ユニット３０８に書き込まれたデータを転送する制御を行う。出力側一時記憶ユニット３０６に書き込まれるデータには、演算ユニット３１２により処理されたデータが含まれる。転送制御ユニット３０２は、バス２１２、バスインターフェース２０４を介して、符号化部１４４へ、データを転送する制御を行うようにしてもよい。また、転送制御ユニット３０２は、メモリ２１０へ、データを転送する制御を行うようにしてもよい。
【００６７】
具体的には、転送制御ユニット３０２は、復調処理のためのプログラムを実行することにより起動する転送シーケンサ３１４により発行された命令に従って、上述したデータを転送する処理を行う。例えば、転送シーケンサ３１４は、プログラムメモリに格納された命令を順次取り出して、転送制御ユニット３０２へ、命令を発行する。転送シーケンサ３１４は、現在実行しているプログラムメモリ上のアドレスを記憶する。転送シーケンサ３１４は、現在実行しているプログラムメモリ上のアドレスを記憶するためにレジスタを利用してもよい。
【００６８】
転送制御ユニット３０２は、転送シーケンサ３１４からの命令に従って、メモリ２１０へのアクセスを開始する。転送制御ユニット３０２は、メモリ２１０へアクセスを開始する際に、アクセスすることを表す情報を出力する。該アクセスすることを表す情報に対する応答として、メモリ２１０は、当該メモリ２１０がアクセス可能であるか否かを表す情報により応答する。アクセス可能であるか否かを表す情報には、メモリ２１０からデータを読み出し可能であるか否かを表す情報が含まれる。また、アクセス可能であるか否かを表す情報には、メモリ２１０へ、書き込み可能であるか否かを表す情報が含まれてもよい。転送制御ユニット３０２は、メモリ２１０からのアクセス可能であるか否かを表す信号に基づいて、アクセス可能である場合には、データ転送ユニット３０４を制御することにより、演算ユニット３１２へ、メモリ２１０から読み出したデータを転送する。この場合、必要に応じて、入力側一時記憶ユニット３０６に、メモリ２１０から読み出したデータが記憶された後に、演算ユニット３１２へ転送される。
【００６９】
例えば、ＶＬＩＷを利用して処理が行われる場合には、転送制御ユニット３０２は、一つの機能を有する処理を一つの命令として扱う。転送制御ユニット３０２は、複数の命令を束ねて長い一命令として実行する。命令には、メモリ２１０からデータを読み出す「ロード」、メモリ２１０にデータを書き込む「ストア」、メモリ２１０から読み出されたデータの演算を行う「演算」、「分岐」等が含まれる。転送制御ユニット３０２は、これらの各ジャンルの命令を結合して一つの長い命令を作成する。具体的には、転送制御ユニット３０２は、これらの各ジャンルの命令のうち、「ロード」と、「ストア」とを結合して一つの命令を作成するようにしてもよい。
【００７０】
命令を結合して一つの長い命令を作成することにより、一つの命令で複数の処理を実行できる。一つの命令で複数の処理を実行できるため、処理性能を向上させることができる。処理性能を向上させることができるため、処理のためのプロセッサを減少させることができる。但し、ジャンル分けされた処理の実行タイミング等が違っている場合もあり、通常１つの命令に含まれる命令が互いに関係している訳ではない。つまり、結合された命令中のロード命令によりロードされたデータは、同じ命令中の演算命令では使用されない場合もある。
【００７１】
データ転送ユニット３０４は、転送制御ユニット３０２と、バス２１２と接続される。データ転送ユニット３０４は、演算ユニット３１２へ、メモリ２１０から読み出したデータを入力する処理を行う。データ転送ユニット３０４は、転送制御ユニット３０２による制御に従って、入力側一時記憶ユニット３０６へ、メモリ２１０から読み出したデータを書き込む処理を行う。また、データ転送ユニット３０４は、転送制御ユニット３０２による制御に従って、バス２１２に、出力側一時記憶ユニット３０８に書き込まれたデータを転送する処理を行う。出力側一時記憶ユニット３０８に書き込まれたデータには、演算ユニット３１２により処理されたデータが含まれる。データ転送ユニット３０４は、バス２１２、バスインターフェース２０４を介して、符号化部１４４に、データを転送する。
【００７２】
入力側一時記憶ユニット３０６は、データ転送ユニット３０４と接続される。入力側一時記憶ユニット３０６は、データ転送ユニット３０４からのデータを一時的に格納する。
【００７３】
出力側一時記憶ユニット３０８は、データ転送ユニット３０４と接続される。出力側一時記憶ユニット３０８は、演算ユニット３１２からのデータを一時的に格納する。
【００７４】
演算制御ユニット３１０は、演算ユニット３１２により実行される演算処理の制御を行う。例えば、演算制御ユニット３１０は、復調処理のための行列演算に関する制御を行う。例えば、演算制御ユニット３１０は、演算ユニット３１２を制御することにより、データ転送ユニット３０４からのデータに対して、演算処理を行う制御を行う。また、例えば、演算制御ユニット３１０は、演算ユニット３１２を制御することにより、入力側一時記憶ユニット３０６に書き込まれたデータを取得させる制御を行う。また、例えば、演算制御ユニット３１０は、演算ユニット３１２を制御することにより、入力側一時記憶ユニット３０６からのデータに対して、演算処理を行う制御を行う。また、例えば、演算制御ユニット３１０は、演算ユニット３１２を制御することにより、出力側一時記憶ユニット３０８へデータを出力させる制御を行う。
【００７５】
例えば、演算制御ユニット３１０は、「演算」命令を作成するようにしてもよい。具体的には、演算制御ユニット３１０は、復調処理のためのプログラムを実行することにより起動する演算シーケンサ３１６により発行された命令に従って、上述した演算処理に関する制御を行う。例えば、演算シーケンサ３１６は、プログラムメモリに格納された命令を順次取り出して、演算制御ユニット３１０に、命令を発行する。演算シーケンサ３１６は、現在実行しているプログラムメモリ上のアドレスを記憶する。演算シーケンサ３１６は、現在実行しているプログラムメモリ上のアドレスを記憶するためにレジスタを利用してもよい。
【００７６】
演算ユニット３１２は、演算制御ユニット３１０と、入力側一時記憶ユニット３０６と、出力側一時記憶ユニット３０８と接続される。演算ユニット３１２は、演算制御ユニット３１０による制御に従って、復調処理に関する演算処理を行う。具体的には、演算ユニット３１２は、データ転送ユニット３０４からのデータを、必要に応じて入力側一時記憶ユニット３０６を介して取得する。演算ユニット３１２は、該データを利用して復調に関する演算を行う。演算ユニット３１２は、データ転送ユニット３０４へ、演算結果を出力する。演算結果をデータ転送ユニット３０４へ出力する際に、必要に応じて、出力側一時記憶ユニット３０８を介して出力する。
【００７７】
転送シーケンサ３１４、演算シーケンサ３１６の上位には、プロセッサ（図示無し）や制御回路（図示無し）が存在する。転送シーケンサ３１４、演算シーケンサ３１６は、プロセッサや制御回路の指示で動作する。
【００７８】
プロセッサや制御回路の指示で、転送命令シーケンサ３１４と演算命令シーケンサ３１６は略同時にプログラムの実行を開始する。又は、プロセッサや制御回路の指示で、転送命令シーケンサ３１４が、演算命令シーケンサ３１６より、若干早く処理を開始するようにしてもよい。
【００７９】
データ転送ユニット３０４によりメモリ２１０からロードされたデータは、必要に応じて、入力側一時記憶ユニット３０６に、一時的にバッファされる。演算ユニット３１２は、入力側一時記憶ユニット３０６にバッファされたデータを読み出して、演算処理を実行する。演算ユニット３１２は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）方式により、入力側一時記憶ユニット３０６にバッファされたデータを読み出すようにしてもよい。演算ユニット３１２は、演算処理したデータを、必要に応じて、出力側一時記憶ユニット３０８に出力する。
【００８０】
転送シーケンサ３１４は、出力側一時記憶ユニット３０８にデータが格納されている場合に、メモリ２１０へ、該データをストアする命令を発行する。転送制御ユニット３０２は、該データをストアする命令に従ってデータ転送ユニット３０４を制御する。
【００８１】
転送シーケンサ３１４と演算シーケンサ３１６は、ＦＩＦＯのフルフラグ、エンプティフラグを使用して命令の同期を取るようにしてもよい。このような構成にすることで、演算ユニット３１２は、常に処理するデータにアクセスできる。演算ユニット３１２が常に処理するデータにアクセスできることにより、ストールの発生を低減できる。また、データ転送ユニット３０４によるロードの実行の際にストールが発生した場合でも、入力側一時記憶ユニット３０６により吸収される。このため、演算ユニット３１２におけるストールを低減できる。
【００８２】
＜タイムチャート（その１）＞
図６は、信号処理装置により実行される処理を示す。図６において、横軸は時間を表す。例えば、横軸は「サイクル」により表される。図６では、各サイクルに対応して、（１）−（１１）が付される。演算ユニット３１２は、オペレーション１−１（ＯＰ１−１）の実行に、ロードされたデータを利用する。つまり、オペレーション１−２（ＯＰ１−２）、オペレーション１−３（ＯＰ１−３）の実行には、ロードされたデータを直接的には利用しない。
【００８３】
転送制御ユニット３０２による制御に従って、データ転送ユニット３０４は、時間的に連続して、データのロードを実行する。例えば、転送シーケンサ３１４から、ロード命令が順次発行される。データ転送ユニット３０４は、ロード命令に従って、最大能力で転送処理を行う。演算ユニット３１２は、一時記憶されたデータを読み出せる状態になった場合に、処理を開始する。
【００８４】
サイクル（１）、サイクル（２）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（１）、サイクル（２）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４により２サイクルでデータのロードが実行される（ＬＤ１）。データのロードが実行される２サイクルの前半の１サイクルの間でストールが発生している。該ストールは、他の転送による影響により発生することもあるし、転送速度が遅いことにより発生することもある。データのロードが実行される２サイクルは一例であり、１サイクルでもよいし、３サイクル以上であってもよい。
【００８５】
サイクル（３）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（３）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される（ＬＤ２）。サイクル（３）では、ストールが発生している。サイクル（３）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４は、入力側一時記憶ユニット３０６へ、データ転送ユニット３０４によりサイクル（２）でロードされたデータ１（ｄａｔａ１）を書き込む。さらに、サイクル（３）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−１を実行するための命令が入力される。演算ユニット３１２は、オペレーション１−１を実行するため、入力側一時記憶ユニット３０６から、データ１を取得する。演算ユニット３１２は、入力側一時記憶ユニット３０６から、データ１を廃棄する。
【００８６】
サイクル（４）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが継続される（ＬＤ２）。サイクル（４）では、データのロードが実行される。サイクル（４）では、演算シーケンサ３１６から、オペレーション１−２を実行するための命令が発行される。サイクル（４）では、演算ユニット３１２に、演算制御ユニット３１０からオペレーション１−２を実行するための命令が出力される。オペレーション１−２は、オペレーション１−１の結果を利用する処理であってもよい。
【００８７】
サイクル（５）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（５）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される（ＬＤ３）。サイクル（５）では、ストールが発生している。サイクル（５）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４は、入力側一時記憶ユニット３０６へ、データ転送ユニット３０４によりサイクル（４）でロードされたデータ２を書き込む。さらに、サイクル（５）では、演算シーケンサ３１６からオペレーション１−３を実行するための命令が発行される。サイクル（５）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−３を実行するための命令が出力される。オペレーション１−３は、オペレーション１−２の結果を利用する処理であってもよい。演算ユニット３１２は、入力側一時記憶ユニット３０６から、データ２を取得しないため、入力側一時記憶ユニット３０６にはデータ２が書き込まれたままである。
【００８８】
サイクル（６）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが継続される（ＬＤ３）。サイクル（６）では、データのロードが実行される。さらに、サイクル（６）では、演算シーケンサ３１６からオペレーション１−１を実行するための命令が発行される。サイクル（６）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−１を実行するための命令が出力される。演算ユニット３１２は、オペレーション１−１を実行するため、入力側一時記憶ユニット３０６から、データ２を取得する。演算ユニット３１２は、入力側一時記憶ユニット３０６から、データ２を廃棄する。
【００８９】
サイクル（７）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（７）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される（ＬＤ４）。サイクル（７）では、ストールが発生している。サイクル（７）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４は、入力側一時記憶ユニット３０６へ、データ転送ユニット３０４によりサイクル（６）でロードされたデータ３（ｄａｔａ３）を書き込む。さらに、サイクル（６）では、演算シーケンサ３１６からオペレーション１−２を実行するための命令が発行される。サイクル（７）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−２を実行するための命令が出力される。オペレーション１−２は、オペレーション１−１の結果を利用する処理であってもよい。演算ユニット３１２は、入力側一時記憶ユニット３０６から、データ３を取得しないため、入力側一時記憶ユニット３０６にはデータ３が書き込まれたままである。
【００９０】
サイクル（８）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが継続される（ＬＤ４）。サイクル（８）では、データのロードが実行される。さらに、サイクル（８）では、演算シーケンサ３１６からオペレーション１−３を実行するための命令が発行される。サイクル（８）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−３を実行するための命令が出力される。オペレーション１−３は、オペレーション１−２の結果を利用する処理であってもよい。演算ユニット３１２は、入力側一時記憶ユニット３０６から、データ３を取得しないため、入力側一時記憶ユニット３０６にはデータ３が書き込まれたままである。
【００９１】
サイクル（９）では、演算シーケンサ３１６からオペレーション１−１を実行するための命令が発行される。サイクル（９）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−１を実行するための命令が出力される。演算ユニット３１０は、オペレーション１−１を実行するため、入力側一時記憶ユニット３０６から、データ３を取得する。演算ユニット３１２は、入力側一時記憶ユニット３０６から、データ３を廃棄する。
【００９２】
サイクル（１０）では、演算シーケンサ３１６からオペレーション１−２を実行するための命令が発行される。サイクル（１０）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−２を実行するための命令が出力される。
【００９３】
サイクル（１１）では、演算シーケンサ３１６からオペレーション１−３を実行するための命令が発行される。サイクル（１１）では、演算制御ユニット３１０から演算ユニット３１２へ、オペレーション１−３を実行するための命令が出力される。
【００９４】
データ転送ユニット３０４によりデータのロードが複数回実行された場合には、入力側一時記憶ユニット３０６へ、データが順次記憶されるようにしてもよい。演算ユニット３１２は、オペレーションを実行するため、入力側一時記憶ユニット３０６から、ＦＩＦＯ方式に従ってデータを取得するようにしてもよい。この場合、複数種類のデータが存在して、データの識別が必要となる場合があるが、演算される順序にデータが並ぶように転送順序が制御される。
【００９５】
例えば、ＶＬＩＷを利用して作成される命令に基づいて、転送制御を行う場合、ＶＬＩＷを利用して作成される命令の転送命令に該当する部分を抜き出して、データ転送ユニット３０４は入力側一次記憶ユニット３０６で使用される順にデータを並べる。
【００９６】
また、入力側一時記憶ユニット３０６から、ＦＩＦＯ方式に従ってデータを取得する代わりに、データが供給されるパスを識別できるようにしてもよい。データが供給されるパスを識別できることにより、データ転送ユニット３０４によりデータのロードが複数回実行された場合であっても、データを識別することができる。データを識別することができることにより、演算命令の対象となるデータを取得することができる。
【００９７】
例えば、演算命令に従って演算する複数種類のデータが存在することにより、データの識別が必要な場合には、演算するデータと同数の入力側一次記憶ユニットを用意するようにしてもよい。演算ユニット３１２は、複数の入力側一時記憶ユニットから、使用するデータが書き込まれたものを選択する。
【００９８】
図６に示されるタイムチャートによれば、データのロードと、演算処理とを独立に制御できるため、ロード命令を時間的に連続したサイクルで実行できる。ロード命令を時間的に連続したサイクルで実行できるため、メモリからの読み出しの際にストールが発生した場合であっても、演算命令を実行する際には、演算命令を実行するデータを予め用意することができる。演算命令を実行するデータを予め用意できるため、演算命令のストールを低減できる。
【００９９】
仮に、データ転送命令と演算命令が略同時に実行されるように命令が発行される場合、予め転送するデータの順序が明確になっている場合でも、転送命令が発行されるまで転送は行われない。転送命令が発行されて、データの転送命令が実行された際に、メモリの速度に起因するストールが発生したり、他のデバイスのバス使用によるストールが発生したりする場合がある。このため、転送命令と略同時に実行されるようにプログラムされていた演算命令の実行まで遅延してしまう場合がある。図６に示されるタイムチャートによれば、ロードされたデータを一時記憶することにより、データ転送ユニット３０４と、演算ユニット３１２との間で、データが必要となる時間差を吸収できる。このため、メモリの速度に起因するストールや、他のデバイスのバス使用によるストールを低減できる。このため、演算命令の実行の遅延を低減できる。
【０１００】
＜タイムチャート（その２）＞
図７は、信号処理装置により実行される処理を示す。図７において、横軸は時間を表す。例えば、横軸は「サイクル」により表される。図７では、各サイクルに対応して、（１）−（１３）が付される。
【０１０１】
サイクル（１）、サイクル（２）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（１）、サイクル（２）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４により各サイクルでデータのロードが実行される。
【０１０２】
さらに、サイクル（２）では、演算ユニット３１２に、演算制御ユニット３１０からメモリ２１０にデータをストアするための命令が出力される。しかし、メモリ２１０はストールしているため、演算ユニット３１２は、出力側一時記憶ユニット３０８に、データを書き込む。
【０１０３】
サイクル（３）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（３）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（１）によりロードされたデータを利用した演算が実行される。また転送制御ユニット３０２による制御に従って、データ転送ユニット３０４は、メモリ２１０に、出力側一時記憶ユニット３０８に書き込まれたデータを転送する。データ転送ユニット３０４は、出力側一時記憶ユニット３０８に書き込まれたデータをＦＩＦＯ方式により出力する。出力側一時記憶ユニット３０８を有することにより、データのロードと、演算処理とを独立に制御できるため、輻輳を回避できる。また、転送されるデータに複数の種類がある場合には、データの識別が必要になり、転送命令が発行される順にデータが供給される必要がある。ＦＩＦＯ方式により出力することにより、転送命令が発行される順にデータを供給することができる。
【０１０４】
サイクル（４）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（４）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される。サイクル（４）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（４）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（２）によりロードされたデータを利用した演算が実行される。
【０１０５】
サイクル（５）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（５）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される。サイクル（５）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（５）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（４）によりロードされたデータを利用した演算が実行される。
【０１０６】
サイクル（６）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（６）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される。さらに、サイクル（６）では、演算ユニット３１２へ、演算制御ユニット３１０からメモリ２１０にデータをストアするための命令が出力される。しかし、メモリ２１０はストールしているため、演算ユニット３１２は、出力側一時記憶ユニット３０８に、データを書き込む。
【０１０７】
サイクル（７）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（７）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（５）によりロードされたデータを利用した演算が実行される。また転送制御ユニット３０２による制御に従って、データ転送ユニット３０４は、メモリ２１０に、出力側一時記憶ユニット３０８に書き込まれたデータを転送する。データ転送ユニット３０４は、出力側一時記憶ユニット３０８に書き込まれたデータをＦＩＦＯ方式により出力する。
【０１０８】
サイクル（８）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（８）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される。サイクル（８）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（８）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（６）によりロードされたデータを利用した演算が実行される。
【０１０９】
サイクル（９）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（９）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される。サイクル（９）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（９）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（８）によりロードされたデータを利用した演算が実行される。
【０１１０】
サイクル（１０）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（１０）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される。さらに、サイクル（１０）では、演算ユニット３１２へ、演算制御ユニット３１０からメモリ２１０にデータをストアするための命令が出力される。しかし、メモリ２１０はストールしているため、演算ユニット３１２は、出力側一時記憶ユニット３０８に、データを書き込む。
【０１１１】
サイクル（１１）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（１１）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（９）によりロードされたデータを利用した演算が実行される。また転送制御ユニット３０２による制御に従って、データ転送ユニット３０４は、メモリ２１０に、出力側一時記憶ユニット３０８に書き込まれたデータを転送する。データ転送ユニット３０４は、出力側一時記憶ユニット３０８に書き込まれたデータをＦＩＦＯ方式により出力する。
【０１１２】
サイクル（１２）では、転送シーケンサ３１４から、データのロードを実行するための命令が発行される。サイクル（１２）では、転送制御ユニット３０２による制御に従って、データ転送ユニット３０４によりデータのロードが実行される。サイクル（１２）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（１２）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（１０）によりロードされたデータを利用した演算が実行される。
【０１１３】
サイクル（１３）では、演算シーケンサ３１６からオペレーションを実行するための命令が発行される。サイクル（１３）では、演算制御ユニット３１０による制御に従って、演算ユニット３１２によりサイクル（１２）によりロードされたデータを利用した演算が実行される。
【０１１４】
サイクル（３）において、データ転送ユニット３０４により、出力側一時記憶ユニット３０８に書き込まれたデータ（演算結果）がＦＩＦＯ方式により出力される代わりに、データが供給されるパスを識別できるようにしてもよい。データが供給されるパスが識別できることにより、複数の種類のデータを転送する場合であっても、データを識別することができる。データを識別することができることにより、転送命令が発行される順にデータを供給することができる。
【０１１５】
データが供給されるパスを識別できることにより、演算ユニット３１２により演算処理が複数回実行された場合であっても、演算結果を識別することができる。演算結果を識別することができることにより、演算処理に従って演算結果を取得することができる。
【０１１６】
例えば、演算命令に従って演算処理された複数の演算結果が存在することにより、演算結果の識別が必要な場合には、演算結果と同数の出力側一次記憶ユニットを用意するようにしてもよい。
【０１１７】
図８は、従来構成による処理を示す。図８において、横軸は時間を表す。例えば、横軸は「サイクル」により表される。図８では、各サイクルに対応して、（１）−（１３）が付される。
【０１１８】
サイクル（１）では、データのロードが実行される。
【０１１９】
サイクル（２）では、データのロードが試みられる。しかし、メモリがストアするため、データのロードは実行されない。データのロードが実行されないのは、メモリへのアクセスポートが１つであるため、ロードとストアとを同時に行うことができないことに起因する。図７に示されるタイムチャートでは、出力側一時記憶部１０８により、該ストールが回避される。
【０１２０】
サイクル（３）では、サイクル（２）によりロードされるはずであったデータのロードが実行される。メモリには、サイクル（２）によりストアされたデータが保持される。
【０１２１】
サイクル（４）では、サイクル（１）によりロードされたデータを利用した演算が実行される。
【０１２２】
サイクル（５）では、データのロードが実行される。サイクル（５）では、サイクル（３）によりロードされたデータを利用した演算が実行される。
【０１２３】
サイクル（６）では、データのロードが実行される。サイクル（６）では、サイクル（５）によりロードされたデータを利用した演算が実行される。
【０１２４】
サイクル（７）では、データのロードが試みられる。しかし、メモリがストアするため、データのロードは実行されない。データのロードが実行されないのは、メモリへのアクセスポートが１つであるため、ロードとストアとを同時に行うことができないことに起因する。
【０１２５】
サイクル（８）では、サイクル（７）によりロードされるはずであったデータのロードが実行される。メモリには、サイクル（７）によりストアされたデータが保持される。
【０１２６】
サイクル（９）では、サイクル（６）によりロードされたデータを利用した演算が実行される。
【０１２７】
サイクル（１０）では、データのロードが実行される。サイクル（１０）では、サイクル（８）によりロードされたデータを利用した演算が実行される。
【０１２８】
サイクル（１１）では、データのロードが実行される。サイクル（１１）では、サイクル（１０）によりロードされたデータを利用した演算が実行される。
【０１２９】
サイクル（１２）では、データのロードが試みられる。しかし、メモリはストアするため、データのロードは実行されない。データのロードが実行されないのは、メモリへのアクセスポートが１つであるため、ロードとストアとを同時に行うことができないことに起因する。
【０１３０】
サイクル（１３）では、サイクル（１２）によりロードされるはずであったデータのロードが実行される。メモリには、サイクル（１２）によりストアされたデータが保持される。
【０１３１】
図８に示されるタイムチャートでは、サイクル（２）、（７）、（１２）でメモリの輻輳が生じているため、演算効率が低下しているのが分かる。
【０１３２】
＜信号処理装置の動作＞
図９、図１０は、信号処理装置の動作の一実施例を示すフローチャートである。
【０１３３】
図９は、転送制御ユニット３０２による制御に従ってデータ転送ユニット３０４により実行される処理が主に示される。
【０１３４】
図１０は、演算制御ユニット３１０による制御に従って演算ユニット３１２により実行される処理が主に示される。
【０１３５】
転送制御ユニット３０２による制御に従ってデータ転送ユニット３０４により実行される処理について、図９を参照して説明する。
【０１３６】
ステップＳ９０２で、データ転送ユニット３０４が起動される。例えば、携帯端末１００の電源がオンにされることによりデータ転送ユニット３０４の電源がオンにされてもよい。
【０１３７】
ステップＳ９０４で、転送制御ユニット３０２は、転送するデータが存在するか否かを判定する。
【０１３８】
転送するデータが存在する場合に、ステップＳ９０６で、転送制御ユニット３０２は、入力側一時記憶ユニット３０６に空き容量があるか否かを判定する。例えば、転送制御ユニット３０２は、入力側一時記憶ユニット３０６に、ステップ９０４により存在すると判定されたデータに相当する空き容量があるか否かを判定する。
【０１３９】
ステップＳ９０８で、転送制御ユニット３０２は、データ転送ユニット３０４を制御することにより、入力側一時記憶ユニット３０６へ、メモリ２１０からのデータを転送する。
【０１４０】
ステップＳ９０４により転送するデータが存在しない場合には、ステップＳ９０６、ステップＳ９０８の処理は実行されない。ステップＳ９０６により入力側一時記憶ユニット３０６に空き容量がない場合には、ステップＳ９０８の処理は実行されない。
【０１４１】
ステップＳ９１０で、転送制御ユニット３０２は、出力側一時記憶ユニット３０８に、転送するデータが存在するか否かを判定する。
【０１４２】
ステップＳ９１２で、転送するデータが存在する場合、転送制御ユニット３０２は、データ転送ユニット３０４を制御することにより、出力側一時記憶ユニット３０８からメモリ２１０へ、データを転送する。
【０１４３】
ステップＳ９１０により転送するデータが存在しない場合には、ステップＳ９１２の処理は実行されない。
【０１４４】
ステップＳ９１４で、転送制御ユニット３０２は、データ転送処理が終了したか否かを判定する。データ転送処理が終了した場合、転送制御ユニット３０２は、処理を終了する。データ転送処理が終了しない場合、転送制御ユニット３０２は、ステップＳ９０４から処理を実行する。
【０１４５】
図９に示されるフローチャートにおいて、ステップＳ９０４−Ｓ９０８の処理と、ステップＳ９１０−Ｓ９１２の処理とを入れ替えてもよい。
【０１４６】
演算制御ユニット３１０による制御に従って演算ユニット３１２により実行される処理について、図１０を参照して説明する。
【０１４７】
ステップＳ１００２で、演算ユニット３１２が起動される。例えば、携帯端末１００の電源がオンにされることにより演算ユニット３１２の電源がオンにされてもよい。
【０１４８】
ステップＳ１００４で、演算制御ユニット３１０は、入力側一時記憶ユニット３０６に未処理のデータが存在するか否かを判定する。
【０１４９】
未処理のデータが存在する場合に、ステップＳ１００６で、演算制御ユニット３１０は、演算ユニット３１２を制御することにより、入力側一時記憶ユニット３０６からデータを読み出して、演算処理を実行する。
【０１５０】
ステップＳ１００８で、演算制御ユニット３１０は、出力側一時記憶ユニット３０８に空き容量があるか否かを判定する。例えば、演算制御ユニット３１０は、出力側一時記憶ユニット３０８に、ステップ１００６により演算処理されたデータに相当する空き容量があるか否かを判定する。
【０１５１】
ステップＳ１０１０で、演算制御ユニット３１０は、演算ユニット３１２を制御することにより、出力側一時記憶ユニット３０８へ、データを転送する。
【０１５２】
ステップＳ１００４により未処理のデータが存在しない場合には、再度ステップＳ１００４による判定が行われる。ステップＳ１００８により出力側一時記憶ユニット３０８に空き容量がない場合には、再度ステップＳ１００８による判定が行われる。
【０１５３】
ステップＳ１０１２で、演算制御ユニット３１０は、演算処理が終了したか否かを判定する。演算処理が終了した場合、演算制御ユニット３１０は、処理を終了する。演算処理が終了しない場合、演算制御ユニット３１０は、ステップＳ１００４から処理を実行する。
【０１５４】
＜本実施例の効果＞
図１１は、信号処理装置の一実施例の効果を示す。
【０１５５】
左側の図（１）は従来の信号処理装置による処理を表し、右側の図（２）は本実施例の信号処理装置による処理を表す。
【０１５６】
「ａ」はプロセッサの処理能力全体を表す。「ｂ」はストールの発生により失われる能力を表す。「ｃ」、「ｄ」は処理実行に使用できる実効的な能力を表す。
【０１５７】
所要の演算量を処理できるプロセッサの個数は、該所要の演算量を「ｃ」の部分の処理能力で割ったものとなる。
【０１５８】
従来の信号処理装置は、プロセッサの処理能力全体のうち、ストールの発生により失われる能力の割合が大きい。その結果、従来の信号処理装置は、プロセッサの必要数が増えることになる。
【０１５９】
本実施例の信号処理装置は、従来の信号処理装置と比べて、プロセッサの処理能力全体のうち、ストールの発生により失われる能力の割合が小さい。その結果、本実施例の信号処理装置は、プロセッサの必要数を減少させることができる。プロセッサの必要数を減少させることができるため、目的の処理を実現するための回路規模を小さくすることができる。
【０１６０】
＜変形例＞
図１２は、信号処理装置の機能の一変形例を示す。
【０１６１】
信号処理装置の一変形例では、図５を参照して説明した信号処理装置において、転送シーケンサ３１４の代わりに、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送制御ユニット３１８を有する点で異なる。ＤＭＡ転送制御ユニット３１８の機能は、転送制御ユニット３０２の機能と略同一である。ＤＭＡ転送制御ユニット３１８は、ロード用のＤＭＡ転送制御ユニットと、ストア用のＤＭＡ転送制御ユニットとを含むように構成してもよい。ＤＭＡ転送制御ユニット３１８は、プログラムメモリに格納された命令に依存せずに、データの転送処理を行う。例えば、ＤＭＡ転送制御ユニット３１８は、転送内容を設定する。該転送内容には、データの存在するアドレスを表す情報、転送するデータのサイズを表す情報が含まれる。ＤＭＡ転送制御ユニット３１８は、演算シーケンサ３１６による設定に従って起動する点で異なる。この場合、ＤＭＡ転送制御ユニット３１８は、演算シーケンサ３１６からの演算命令を実行することにより起動するようにしてもよい。また、ＤＭＡ転送制御ユニット３１８は、上位の機能ブロックレベルの制御プロセッサや制御回路からの制御信号により起動するようにしてもよい。
【０１６２】
ＤＭＡ転送制御ユニット３１８を有することにより、演算シーケンサ３１６による設定に従って起動した後は、直接メモリにアクセスするように転送制御ユニット３０２に命令を発行するため、処理速度を向上させることができる。
【０１６３】
本実施例、変形例の信号処理装置は、特に、ＯＦＤＭに代表される比較的簡単な演算を大量に実行する通信方式に適用されることで効果が得られる。ＯＦＤＭは、周波数分割多重の一方式であり、キャリアを互いに直交するように配置することによりキャリア周波数の密度を高め周波数効率を向上させた方式である。ＯＦＤＭは、ＬＴＥやＷｉＭＡＸ、地上ディジタル放送などに使用されている。該通信方式では、転送されるデータの順序が予め明確であるため、命令の並列実行を行いながら互いへの影響を軽減させることができるためである。つまり、演算に使用されるデータ転送の制御と、実際の演算を行う制御とを分けることにより、データの転送で生じるストールが演算処理に与える影響を低減できるためである。このため、演算ユニットを効率よく動作させることができる。
【図１】
2013080289.tif 000003
【図２】
2013080289.tif 000004
【図３】
2013080289.tif 000005
【図４】
2013080289.tif 000006
【図５】
2013080289.tif 000007
【図６】
2013080289.tif 000008
【図７】
2013080289.tif 000009
【図８】
2013080289.tif 000010
【図９】
2013080289.tif 000011
【図１０】
2013080289.tif 000012
【図１１】
2013080289.tif 000013
【図１２】
2013080289.tif 000014
【手続補正書】
【提出日】平成26年5月9日(2014.5.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
演算ユニットにより実行される演算処理のタイミングを制御する演算制御ユニットと、
該演算制御ユニットにより制御される演算処理のタイミングに従って前記演算ユニットにより前記演算処理の対象となるデータがロードできるように、該演算処理の対象となるデータを転送するためのタイミングを制御する転送制御ユニットと
を有する、信号処理装置。
【請求項２】
前記転送制御ユニットは、プログラムメモリに格納された命令に従って、前記演算処理の対象となるデータを転送するためのタイミングを制御する、請求項１に記載の信号処理装置。
【請求項３】
前記転送制御ユニットは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）方式に従って、前記演算処理の対象となるデータを転送するためのタイミングを制御する、請求項１に記載の信号処理装置。
【請求項４】
前記転送制御ユニットは、前記演算処理の対象となる複数のデータを転送するためのタイミングを制御する際に、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）方式に従う、請求項１ないし３のいずれか１項に記載の信号処理装置。
【請求項５】
前記転送制御ユニットにより制御されるタイミングに従って転送されるデータを記憶する１又は複数の記憶部
を有し、
前記転送制御ユニットは、前記演算処理の対象となる複数のデータを転送するためのタイミングを制御する際に、前記１又は複数の記憶部に、前記演算処理の対象となる複数のデータを転送するためのタイミングを制御する、請求項１に記載の信号処理装置。
【請求項６】
演算ユニットにより実行される演算処理のタイミングを制御し、
該演算処理のタイミングに従って前記演算ユニットにより前記演算処理の対象となるデータがロードできるように、該演算処理の対象となるデータを転送するためのタイミングを制御する、信号処理方法。
【国際調査報告】
2013080289.tif 000015
2013080289.tif 000016
2013080289.tif 000017
2013080289.tif 000018