(57)【特許請求の範囲】
【請求項１】
メモリ部と、
シングルチャンネル用の信号処理プログラムに従って該メモリ部のメモリ領域を使用して所要の信号処理を行なうシングルチャンネル用の信号処理部と、
該信号処理プログラムに従ってシングルチャンネル処理用の第１メモリアドレスを生成するシングルチャンネル用のアドレス生成部と、
該信号処理部での信号処理終了毎に、ポインタ値を、該メモリ部の未使用メモリ領域の先頭を示す値に更新するポインタ値更新部と、
該アドレス生成部で生成された該第１メモリアドレスに、該メモリ部の未使用メモリ領域の先頭を示す該ポインタ値を加算して第２メモリアドレスを生成するポインタ加算部と、
上記の第１及び第２メモリアドレスのいずれかを該メモリ部用の実アドレスとして選択するアドレス選択部とをそなえ、  該メモリ部が、複数チャンネルに共通の信号処理を行なうために使用される第１メモリ領域と、複数チャンネルのそれぞれが個別の信号処理を行なうために使用される第２メモリ領域とを備え、
該第１メモリアドレスが、該第１メモリ領域を示し、
該第２メモリアドレスが、該第２メモリ領域を示すことを特徴とする、マルチチャンネル信号処理装置。
【請求項２】
該アドレス生成部が、
該信号処理プログラムに従ってシングル／マルチチャンネル処理設定を示す設定情報を該第１メモリアドレスに設定するように構成されるとともに、
該アドレス選択部が、
該第１メモリアドレスに設定されている該設定情報に応じて、上記のアドレス選択を行なうように構成されたことを特徴とする、請求項１記載のマルチチャンネル信号処理装置。
【請求項３】
該アドレス生成部が、
該設定情報を該第１メモリアドレスの最上位ビットに設定するように構成されていることを特徴とする、請求項２記載のマルチチャンネル信号処理装置。
【請求項４】
メモリ部と、
シングルチャンネル用の信号処理プログラムに従って該メモリ部のメモリ領域を使用して所要の信号処理を行なうシングルチャンネル用の信号処理部と、
該信号処理プログラムに従ってシングルチャンネル処理用の第１メモリアドレスを生成するシングルチャンネル用のアドレス生成部と、
該信号処理部での信号処理終了毎に、ポインタ値を、該メモリ部の未使用メモリ領域の先頭を示す値に更新するポインタ値更新部と、
該アドレス生成部で生成された該第１メモリアドレスに、該メモリ部の未使用メモリ領域の先頭を示す該ポインタ値を加算して得られる第２メモリアドレスを該メモリ部用の実アドレスとするポインタ加算部とをそなえ、
該メモリ部が、複数チャンネルに共通の信号処理を行なうために使用される第１メモリ領域と、複数チャンネルのそれぞれが個別の信号処理を行なうために使用される第２メモリ領域とを備え、
該第１メモリアドレスが、該第１メモリ領域を示し、
該第２メモリアドレスが、該第２メモリ領域を示すことを特徴とする、マルチチャンネル信号処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のチャンネル信号に対する信号処理に用いて好適な、マルチチャンネル信号処理装置に関する。
【０００２】
【従来の技術】
音声信号等の信号処理のファームウェア（信号処理装置）をＤＳＰ(Digital Signal Processor)で開発する場合、従来のＤＳＰの処理性能では１チャンネル分の処理が限界であったため、１チャンネルの信号に対して１個のＤＳＰを割り当てて処理する場合が多かった。
【０００３】
ところが、近年、１個のＤＳＰの処理性能が、半導体技術やアーキテクチャ（並列化に類するもの）の工夫や進歩により飛躍的に高まり、１個のＤＳＰで複数（多）チャンネルの処理を実現できるようになってきている。なお、このような多チャンネル処理が可能なＤＳＰは、例えば、携帯電話等の移動体通信システムにおける基地局装置のように、多数の端末からの情報（チャンネル信号）を一括して処理するようなインフラ系の装置に利用される。
【０００４】
ところで、このような多チャンネル処理ＤＳＰ（ファームウェア）の実現には、或るチャンネルの信号処理が他のチャンネルの信号処理に影響（チャンネル間干渉）を与えないようにする必要がある。具体的には、例えば、或るチャンネルで既に使用しているメモリ領域を別のチャンネルでも重複して使用してしまうようなことがないようにしなければならない。
【０００５】
つまり、多チャンネル処理用のＤＳＰファームウェアを実現する際には、チャンネル毎のメモリアロケーションの決定等をはじめとしてチャンネル間干渉の問題を考慮しながらプログラムを記述（作成）する必要がある。
一方で、個別（シングル）チャンネルの処理は、処理コアとして広く流通しており、検証も容易なため確立された技術である。このため、多チャンネル処理を実現しようとする場合は、個別チャンネルの処理に可能な限り変更を加えずにインプリメントすることが信頼性の高い、効率の良いプログラム実現の近道になる。
【０００６】
そこで、シングルチャンネル用の処理コア（以下、「シングルチャンネルコア」という）をマルチチャンネル処理に対応させる場合、次のような２種の方法が考えられる。
▲１▼シングルチャンネルコアのためのメモリ領域に各チャンネル毎に個別のデータ（チャンネル個別データ）をコピーしてから処理を行ない、処理終了後に結果を元の領域に戻す（コピーバック）する。
【０００７】
▲２▼シングルチャンネルコアのためのメモリ領域をチャンネル毎に設定可能なようにプログラムを記述する。
【０００８】
【発明が解決しようとする課題】
しかしながら、まず、上記▲１▼の方法では、各チャンネルの処理の切り替え時にチャンネル個別データのコピー及びコピーバック処理が必要になり、処理効率が低下してしまう。一方、上記▲２▼の方法では、メモリ領域への全てのデータアクセスの際に、チャンネル個別データの所在を明示的に参照してからデータアクセスのためのポインタ設定を行なわなければならず、プログラムが複雑になりプログラム効率が落ちてしまう。このようなプログラム効率の低下は、同一機能を実現する場合には、ＤＳＰ個数の増大を招き、装置のコストが上がってしまうだけでなく、消費電力も増加してしまう。
【０００９】
また、ＤＳＰで行なう信号処理の中には、チャンネル別に行なう必要の無い各チャンネルに共通でよい処理（例えば、割り込みによるシステム処理等）が存在する場合があるが、上記の手法▲１▼，▲２▼においてこのようなチャンネルに共通な処理も考慮しようとすると、コピー及びコピーバック処理回数が増大したり、プログラムがさらに複雑になったりしてしまう。
【００１０】
本発明は、以上のような課題に鑑み創案されたもので、シングルチャンネル用の信号処理プログラムに大きな変更を施すことなく処理効率の高いマルチチャンネル信号処理を可能にした、マルチチャンネル信号処理装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
図１は本発明の原理ブロック図で、この図１に示す本発明のマルチチャンネル信号処理装置１（以下、単に「信号処理装置１」ともいう）は、メモリ部２，シングルチャンネル用の信号処理部３，シングルチャンネル用のアドレス生成部４，ポインタ加算部５及びアドレス選択部６をそなえて構成さている。
【００１２】
ここで、信号処理部３は、シングルチャンネル用の信号処理プログラムに従ってメモリ部２のメモリ領域を使用して所要の信号処理を行なうものであり、アドレス生成部４は、上記の信号処理プログラムに従ってシングルチャンネル処理用の第１メモリアドレスＭＡ１を生成するものである。
また、ポインタ加算部５は、このアドレス生成部４で生成された第１メモリアドレスＭＡ１に、信号処理部３での信号処理終了毎に、メモリ部２の未使用メモリ領域の先頭を示すポインタ値を加算して第２メモリアドレスＭＡ２を生成するものであり、アドレス選択部６は、上記の第１及び第２メモリアドレスＭＡ１，ＭＡ２のいずれかをメモリ部２用の実アドレスとして選択するものである。
【００１３】
上述のごとく構成された本発明の信号処理装置１では、アドレス生成部４においてシングルチャンネル用の信号処理プログラムに従って生成された第１メモリアドレスＭＡ１と、この第１メモリアドレスにポインタ加算部５にて上記のポインタ値を加算して得られるマルチチャンネル処理用の第２メモリアドレスＭＡ２とのいずれかがアドレス選択部６で選択されてメモリ部２の実アドレスとなる。
【００１４】
これにより、第２メモリアドレスＭＡ２選択時には、信号処理終了毎に、上記のポインタ値の加算により、メモリ部２の使用領域（アクセス領域）が互いに重複（干渉）しないように配置されてゆくことになるので、シングルチャンネル用の信号処理プログラムには変更を加えずに、メモリ使用領域の干渉問題を回避した効率の良いマルチチャンネル信号処理が可能になる。
【００１５】
一方、第１メモリアドレスＭＡ１選択時には、メモリ部２の使用領域が第２メモリアドレスＭＡ２選択時のメモリ使用領域以外の領域に固定されるので、チャンネル別に行なう必要の無い各チャンネルに共通の処理をこの領域を使用して実施することができる。
ここで、上記のアドレス生成部４は、シングル／マルチチャンネル処理設定を示す設定情報を第１メモリアドレスＭＡ１に設定するように構成してもよく、この場合、アドレス選択部６は、その第１メモリアドレスＭＡ１に設定されている設定情報に応じて、上記のアドレス選択を行なう。これにより、アドレス生成部４で生成された第１メモリアドレスＭＡ１を参照するだけで、シングル／マルチチャンネル処理の切り替えが可能になる。
【００１６】
具体的に、上記の設定情報はアドレス生成部４において第１リードアドレスＭＡ１の最上位ビットに設定すれば、この最上位ビットがシングル／マルチチャンネル処理の切り替えビットとなり、切り替え制御が容易になる。
なお、上記のアドレス選択部６は省略してもよい。即ち、アドレス生成部４で生成された第１メモリアドレスＭＡ１に上記のポインタ値を加算して得られる第２メモリアドレスＭＡ２を、そのままメモリ２用の実アドレスとしてもよい。このようにしても、信号処理終了毎に、メモリ部２の使用領域が重複しないように配置されるので、シングルチャンネル用の信号処理プログラムには変更を加えずに、メモリ使用領域の干渉問題を解消したマルチチャンネル処理が可能である。
【００１７】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図２は本発明の一実施形態としてのマルチチャンネルＤＳＰ（マルチチャンネル信号処理装置）の構成を示すブロック図で、この図２に示すマルチチャンネルＤＳＰ１（以下、単に「ＤＳＰ１」ともいう）は、データメモリ(Y-Memory)２，ＭＡＣ・ＡＬＵ(Multiplier and ACcmulator・Arithmetic Logic Unit)３，アドレス生成部（ＡＧＵ:Address Generation Unit) ４，ポインタ加算部５，アドレス選択部６，プログラム実行制御（ＰＥＣ:Program Execution Cntorol) 部７，命令メモリ(X-Memory)８，インタフェース９，１０をそなえて構成されている。
【００１８】
なお、この図２において、符号１１は、ＰＥＣ部７を中心として、データメモリ２，命令メモリ８，ＭＡＣ・ＡＬＵ３，ＡＧＵ４，インタフェース部９，１０の相互アクセスを可能にするバス（ライン）を表し、符号１２は外部メモリ（図示省略）との相互アクセスを可能にするための外部メモリインタフェース、符号１３は周辺デバイスとの相互アクセスを可能にするペリフェラルインタフェースをそれぞれ表す。
【００１９】
ここで、データメモリ（メモリ部）２は、ＭＡＣ・ＡＬＵ３での各種演算処理（信号処理）に必要なデータを記憶するためのもので、本実施形態では、例えば図３に示すように、グローバルヒープ（システム用領域）２Ａとチャンネル個別データ配置領域２Ｂとを有しており、グローバルヒープ２Ａはシステムによる（外部からの）割り込み処理等を含めて複数チャンネル（＃１〜＃Ｎ：Ｎは２以上の整数）で共通に使用できる（シングルチャンネル処理用の）領域であり、チャンネル個別データ配置領域２Ｂはマルチチャンネル処理時のチャンネル個別データをチャンネル＃ｉ（ｉ＝１〜Ｎ）別にそれぞれ保持するための領域である。
【００２０】
また、ＭＡＣ・ＡＧＵ（シングルチャンネル用の信号処理部）３は、ＰＥＣ部７の制御（シングルチャンネル用の信号処理プログラム）に従って、このデータメモリ２のメモリ領域（グローバルヒープ２Ａ又はチャンネル個別データ配置領域２Ｂ）を使用して、図示しない乗算器及び加算器による積和演算等の各種演算処理（信号処理）を行なうものである。
【００２１】
そして、データメモリ２用のメモリアドレス（リード／ライトアドレス）を生成するのがＡＧＵ４であり、このＡＧＵ４は、本実施形態では、ＰＥＣ部７の制御（シングルチャンネル用の信号処理プログラム）に従って動作することにより、シングルチャンネル処理用（グローバルヒープ２Ａ用）の（第１）メモリアドレス（シングルチャンネルアドレスマップ）を計算（生成）するようになっている。
【００２２】
なお、このＡＧＵ４は、図２中に示すように、ＭＡＣ・ＡＧＵ３内の上記乗算器での乗数データと被乗数データとのそれぞれのために上記のメモリアドレス（シングルチャンネルアドレスマップ）を２系統生成できるようになっている。
また、ポインタ加算部４は、このＡＧＵ４で生成された各メモリアドレスに、ＭＡＣ・ＡＬＵ３での信号処理終了毎に、データメモリ２（チャンネル個別データ配置領域２Ｂ）の未使用メモリ領域の先頭（アドレス）を示すポインタ値Ｐｔｒ（ｊ）（ｊ＝０〜Ｎ−１）をそれぞれ加算することで、チャンネル個別データ配置領域２Ｂ用の（第２）メモリアドレス（マルチチャンネルアドレスマップ）を生成するためのもので、このために、加算器５Ａ，５Ｂを有して構成されている。
【００２３】
ここで、上記のポインタ値Ｐｔｒ（ｊ）は、ＡＧＵ４とは独立に用意してもよいし、ＡＧＵ４内のレジスタ（図示省略）に保持される通常のポインタ値を利用してもよいが、本実施形態では、いずれの場合も、ＰＥＣ部７からの制御によって、或るチャンネル＃ｉについての処理が終了すると、例えば、その処理に使用したメモリ領域の最終アドレスの次のアドレスを指すよう更新される。なお、このポインタ値Ｐｔｒ（ｊ）は、各チャンネル＃ｉ毎に保持しておいてもよいし、１つのポインタ値Ｐｔｒ（ｊ）（例えば、グローバルヒープ２Ａに保持しておく）を各チャンネル＃ｉで共有（処理終了毎に更新）するようにしてもよい。
【００２４】
これにより、例えば図４に模式的に示すように、ＭＡＣ・ＡＬＵ３でのチャンネル処理終了毎に、ポインタ値Ｐｔｒ（ｊ）が更新され、このポインタ値Ｐｔｒ（ｊ）の加算により、チャンネル個別データ配置領域２１Ｂにおいて、チャンネル個別データ領域（メモリ使用領域）２１Ｂ−ｉがチャンネル＃ｉ毎に重複（干渉）しないように配置されてゆくことになる。
【００２５】
なお、このときのメモリアドレス（マルチチャンネルアドレスマップ）は、ＡＧＵ４で生成されたメモリアドレス（シングルチャンネルアドレスマップ）にポインタ値Ｐｔｒ（ｊ）を加算したものなので、個々のチャンネル個別データ領域２１Ｂ−ｉ内でのメモリアドレス（アドレスマップ）は、それぞれ、シングルチャンネルアドレスマップと同等になる。
【００２６】
次に、アドレス選択部６は、ＡＧＵ４で生成されたメモリアドレスと、このメモリアドレスに、上述のごとくポインタ加算部５（加算器５Ａ，５Ｂ）にてポインタ値Ｐｔｒ（ｊ）を加算して得られるメモリアドレスとのいずれかをデータメモリ２用の実アドレスとして選択するもので、このために、各加算器５Ａ，５Ｂに対応して２系統のセレクタ６Ａ，６Ｂを有している。
【００２７】
具体的に、これらの各セレクタ６Ａ，６Ｂは、それぞれ、グローバルヒープ２Ａへのアクセス（システムによる割り込み処理等）時には、その出力がＡＧＵ４側に切り替えられて、ＡＧＵ４で生成されたメモリアドレス（シングルチャンネルアドレスマップ）をそのまま実アドレスとして選択し、チャンネル個別データ配置領域２Ｂへのアクセス時（マルチチャンネル処理時）には、その出力が加算器５Ａ，５Ｂ側に切り替えられて、ポインタ値Ｐｔｒ（ｊ）加算後のメモリアドレス（マルチチャンネルアドレスマップ）を実アドレスとして選択するようになっている。
【００２８】
なお、このようなアクセス対象領域２Ａ，２Ｂの切り替え（アドレス選択）設定は、本実施形態では、ＰＥＣ部７がＡＧＵ４に対してアクセス（シングル／マルチチャンネル処理）設定を行ない、ＡＧＵ４が、そのアクセス設定に応じて、メモリアドレスの最上位ビット（ＭＳＢ）を“Ｌ（０）”／“Ｈ（１）”にすることで行なわれる。つまり、本実施形態のＡＧＵ４は、シングル／マルチチャンネル処理設定を示す設定情報（“Ｌ”／“Ｈ”）をメモリアドレスのＭＳＢに設定するようになっているのである。
【００２９】
具体的には、例えば、シングルチャンネル処理設定時（グローバルヒープアクセス時）には生成したメモリアドレスのＭＳＢを“Ｌ”にし、マルチチャンネル処理時には生成したメモリアドレスのＭＳＢを“Ｈ”にする。これにより、セレクタ６Ａ，６Ｂは、ＡＧＵ４で生成されたメモリアドレスのＭＳＢが“Ｌ”になっていればグローバルヒープ２Ａへのアクセスと判断して、ＡＧＵ４で生成されたメモリアドレスを選択し、逆に、“Ｈ”になっていればチャンネル個別データ配置領域２Ｂへのアクセスと判断して、ポインタ値Ｐｔｒ（ｊ）加算後のメモリアドレスを選択する。
【００３０】
つまり、本実施形態のマルチチャンネルＤＳＰ１は、ポインタ値Ｐｔｒ（ｊ）加算前後のメモリアドレスのいずれかを選択する構成を採ることで、各チャンネル＃ｉに共通の処理（シングルチャンネル処理）機能とマルチチャンネル処理機能とが、シングルチャンネル処理用のプログラムに大きな変更を加えることなく実現されているのである。
【００３１】
次に、ＰＥＣ部７は、命令メモリ８に記憶（記述）されているシングルチャンネル用の信号処理プログラム（命令群）に従って、ＭＡＣ・ＡＬＵ３での信号処理やＡＧＵ４での上述したようなメモリアドレスの生成，ポインタ値Ｐｔｒ（ｊ）の更新などを制御して、本ＤＳＰ１内の信号処理を統括的に制御するためのものである。
【００３２】
また、インタフェース９は、ペリフェラレルインタフェース１３を介して外部の周辺デバイスとの入出力インタフェースをとるためのものであり、インタフェース１０は、外部メモリインタフェース１２を介して前記の外部メモリとの入出力インタフェースをとるためのもので、これらのインタフェース９あるいは１０を通じて、処理対象の音声等の信号（データ）がＭＡＣ・ＡＬＵ３に入力されるようになっている。
【００３３】
以下、上述のごとく構成された本実施形態のＤＳＰ１の動作について、図５に示すフローチャート（ステップＳ１〜Ｓ７）を参照しながら詳述する。
まず、本ＤＳＰ１は、起動されると、外部メモリインタフェース１２（インタフェース１０）やペリフェラレルインタフェース１３（インタフェース９）を通じて、（シングルチャンネル）信号処理に必要なプログラム（ここでは、例えば、符号化制御プログラムとチャンネル処理プログラム）が命令メモリ８に格納（ダウンロード）される（ステップＳ１）。
【００３４】
そして、ＰＥＣ部７が起動されて、上記の符号化制御プログラムが起動されると（ステップＳ２）、ＰＥＣ部７は、その符号化制御プログラムに従って動作することにより、チャンネル＃ｉに対する処理準備や入力信号に対する符号化方式の決定，信号処理のためのデータメモリ２（チャンネル個別データ配置領域２Ｂ）におけるメモリ使用領域２１Ｂ−ｉの確保（ＡＧＵ４に対するアドレス生成指示）などを実行する（ステップＳ３）。
【００３５】
なお、このとき、ＰＥＣ部７は、システムによる割り込み等、各チャンネル＃ｉに共通の処理（グローバルヒープ２Ａを使用する処理）を行なう必要が無い限り、ＡＧＵ４に対して生成アドレスのＭＳＢを“Ｈ”にするよう指示する。
次いで、ＰＥＣ部７は、ポインタ値Ｐｔｒ（ｊ）を、確保したチャンネル個別データ領域２１Ｂ−ｉの先頭アドレス（初期値はチャンネル個別データ配置領域２Ｂの先頭アドレス）に設定する（ステップＳ４）。これにより、ポインタ加算部５（加算器５Ａ，５Ｂ）において、ＡＧＵ４で生成されたメモリアドレスにポインタ値Ｐｔｒ（ｊ）が加算される。
【００３６】
そして、ＡＧＵ４で生成されたメモリアドレスと、そのメモリアドレスにポインタ値Ｐｔｒ（ｊ）の加算されたメモリアドレスとのいずれかが実アドレスとしてアドレス選択部６にて選択されるが、今、ＡＧＵ４で生成されたメモリアドレスのＭＳＢが“Ｈ”になっているので、ポインタ値Ｐｔｒ（ｊ）の加算されたメモリアドレスが実アドレスとして選択されてデータメモリ２に供給される。
【００３７】
これにより、ＭＡＣ・ＡＬＵ３は、アドレス選択部６で選択されたポインタ値Ｐｔｒ（ｊ）加算後のメモリアドレスが示す先頭アドレスをもつメモリ領域（チャンネル個別データ領域２１Ｂ−ｉ）を使用して、信号処理（符号化処理（積和演算等））を実行する（ステップＳ５）。
その後、ＭＡＣ・ＡＬＵ３での信号処理が終了すると、ＰＥＣ部７は、処理したチャンネル＃ｉが最終チャンネル＃Ｎであるか否かを確認し（ステップＳ６）、最終チャンネル＃Ｎでなければ、最終チャンネル＃Ｎの処理が終了するまで、上記のステップＳ３からの処理を繰り返し実行させる（ステップＳ６のＮＯルート）。
【００３８】
即ち、最終チャンネル＃Ｎの処理が終了するまで、チャンネル＃ｉの処理が終了する毎に、ポインタ値Ｐｔｒ（ｊ）をチャンネル個別データ配置領域２Ｂにおけるメモリ使用領域２１Ｂ−ｉの先頭アドレスを示すように更新することで、各チャンネル＃ｉ用のチャンネル個別データ領域２１Ｂ−ｉを互いに重複（干渉）しないよう動的に配置して、符号化処理を実施する。
【００３９】
例えば、チャンネル＃１〜＃４の符号化に適用する符号化方式を（ａ）〜（ｄ）とし、符号化方式（ａ）にはｎワード，符号化方式（ｂ）にはｍワード，符号化方式（ｃ），（ｄ）にはｋワード分のメモリ領域（チャンネル個別データ領域２１Ｂ−１〜２１Ｂ−４）がそれぞれ必要であると仮定する。なお、上記のｎ，ｍ，ｋはいずれも整数でそれぞれ異なる値であっても一部もしくは全てが同じ値であってもよい。
【００４０】
この場合、ポインタ値Ｐｔｒ（ｊ）は例えば図６に示すように更新されてゆく。即ち、まず、最初のチャンネル＃１処理時にはチャンネル個別データ配置領域２Ｂの先頭アドレスを指すようにポインタ値Ｐｔｒ（０）が設定され、その先頭アドレスからｎワード分のチャンネル個別データ領域２１Ｂ−１を使用して符号化方式（ａ）による符号化処理が実行される。
【００４１】
次いで、チャンネル＃２処理時には、チャンネル個別データ領域２１Ｂ−１の最終アドレスに１を加えた次アドレスを指すようにポインタ値Ｐｔｒ（１）が設定され、そのアドレスからｍワード分のチャンネル個別データ領域２１Ｂ−２を使用して符号化方式（ｂ）による符号化処理が実行される。
同様に、チャンネル＃３処理時には、チャンネル個別データ領域２１Ｂ−２の最終アドレスに１を加えた次アドレスを指すようにポインタ値Ｐｔｒ（２）が設定され、そのアドレスからｋワード分のチャンネル個別データ領域２１Ｂ−３を使用して符号化方式（ｃ）による符号化処理が実行される。
【００４２】
ここで、例えば図６中に示すように、チャンネル＃３用のチャンネル個別データ領域２１Ｂ−３の後に、ｔワード分の予約(reserved)領域２１Ｃが存在していたとする。このような場合、チャンネル＃４処理時には、その予約領域２１Ｃを避けるようにポインタ値Ｐｔｒ（３）が設定される。即ち、チャンネル個別データ領域２１Ｂ−３の最終アドレスにｔ＋１を加えたアドレスを指すようにポインタ値Ｐｔｒ（３）が設定される。これにより、予約領域２１Ｃの次のアドレスからｋワード分のチャンネル＃４処理用のチャンネル個別データ領域２１Ｂ−４が確保される。
【００４３】
以降、同様にして、チャンネル＃ｉ用のチャンネル個別データ領域２１Ｂ−ｉが、チャンネル個別データ配置領域２Ｂにおいて、互いに重複しないよう、また、予約領域２１Ｃを避けるように、順次、配置されてゆき、そのチャンネル個別データ領域２１Ｂ−ｉを使用して、各チャンネル＃ｉの符号化処理が実行されてゆく。
【００４４】
そして、最終チャンネル＃Ｎの符号化が終了すると（図５のステップＳ６でＹＥＳと判定されると）、ＰＥＣ部７は、上記のポインタ値Ｐｔｒ（ｊ）を含むチャンネル＃ｉ処理用の各種パラメータ（チャンネルパラメータ）をリセット（初期化）する（ステップＳ７）。これにより、最初のチャンネル＃１からの符号化処理が上記と同様にして実行されてゆく。
【００４５】
なお、ＡＧＵ４で生成されたメモリアドレスのＭＳＢが“Ｌ”の場合は、割り込み処理等のシステム処理によるアクセスも含めてグローバルヒープ２Ａへのアクセスなので、アドレス選択部６は、ＡＧＵ４の出力をそのまま実メモリアドレスとして選択する。
以上のように、本実施形態のＤＳＰ１によれば、マルチチャンネル処理時には、ＡＧＵ４で生成されたメモリアドレス（シングルチャンネルアドレスマップ）に、データメモリ２（チャンネル個別データ配置領域２Ｂ）におけるメモリ使用領域２１Ｂ−ｉの先頭を示すポインタ値Ｐｔｒ（ｊ）を加算して得られるメモリアドレス（マルチチャンネルアドレスマップ）を実アドレスとして選択するので、次のような利点が得られる。
【００４６】
▲１▼プログラム作成者からみたアドレスマップはシングルチャンネル時とマルチチャンネル処理時で同一になるので（シングルチャンネル用の信号処理プログラムに変更を加える必要は無く）、シングルチャンネル処理用のプログラムをそのまま使用してマルチチャンネル信号処理の実行が可能になり、信頼性が高く、効率の良いＤＳＰ１を安価に実現できる。
【００４７】
▲２▼ポインタ値Ｐｔｒ（ｊ）の更新により、各チャンネル＃ｉで必要なサイズのメモリ使用領域２１Ｂ−ｉが順次配置されるので、たとえ各チャンネル＃ｉで必要なメモリ使用領域２１Ｂ−ｉのサイズが異なる場合であっても、プログラム作成時に細かな領域配置（メモリアロエーション）を意識すること無く、メモリ使用領域２１Ｂ−ｉの干渉問題を事前に回避できる。
【００４８】
▲３▼従来のようなデータのコピー及びコピーバックを行なう必要も無く、マルチチャンネル化による処理効率の低下も無い。
一方、各チャンネル＃ｉに共通な処理や割り込み処理によるシステム処理等を行なう場合には、ＡＧＵ４で生成されたメモリアドレス（シングルチャンネルアドレスマップ）がそのままデータメモリ２の実アドレスとして選択されて、メモリ使用領域がグローバルヒープ２Ａ（メモリ使用領域２１Ｂ−ｉ以外の領域）に固定されるので、チャンネル＃ｉ別に行なう必要の無い各チャンネル＃ｉに共通の処理に対しても、シングルチャンネル処理用のプログラムに変更を加えることなく対応することができる。
【００４９】
そして、このようなメモリアドレスの選択（切り替え）は、ＡＧＵ４で生成されたメモリアドレスのＭＳＢ（“Ｈ”／“Ｌ”）を用いることで実現されているので、アドレス選択部６（セレクタ６Ａ，６Ｂ）は、そのメモリアドレスのＭＳＢを参照するだけで、上述したアドレス選択が可能であり、極めて簡素な構成で、各チャンネル＃ｉに共通な処理とマルチチャンネル処理との切り替え制御が可能である。
【００５０】
なお、このようなアドレス選択のための設定情報は必ずしもＭＳＢを使用する必要は無い。例えば、ＡＧＵ４で生成されたメモリアドレスの上位数ビットを使用すれば、グローバルヒープ２Ａとチャンネル個別データ領域２１Ｂ−ｉの領域境界を変更することが可能である。
また、上述した実施形態では、基本的に、各チャンネル個別データ領域２１Ｂ−ｉが順番につめて配置されるようポインタ値Ｐｔｒ（ｊ）を更新しているが、メモリ干渉問題を回避できれば、その配置位置や配置順序は不問である（ポインタ値Ｐｔｒ（ｊ）に未使用領域の先頭を示す値を設定すればよい）。
【００５１】
さらに、上述したアドレス選択部６は省略してもよい。即ち、ＡＧＵ４で生成されたメモリアドレスにポインタ値Ｐｔｒ（ｊ）を加算したものを常にデータメモリ２用の実アドレスとする構成にしてもよい。このようにしても、上述したようなポインタ値Ｐｔｒ（ｊ）の更新（設定）により、上記と同様のマルチチャンネル処理が可能である。
【００５２】
そして、本発明は上述した実施形態に限定されるものではなく、上記以外にも、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００５３】
【発明の効果】
以上詳述したように、本発明のマルチチャンネル信号処理装置によれば、アドレス生成部で生成されたシングルチャンネル処理用の第１メモリアドレスと、そのアドレスに、信号処理部での信号処理終了毎に、メモリ部の未使用メモリ領域の先頭を示すポインタ値を加算した第２メモリアドレスとのいずれかをメモリ部用の実アドレスとして選択するので、次のような利点が得られる。
【００５４】
（１）シングルチャンネル処理用のプログラムをそのまま使用してマルチチャンネル信号処理の実行が可能になり、信頼性が高く、効率の良いマルチチャンネル信号処理装置を安価に実現できる。
（２）各チャンネルで必要なサイズのメモリ使用領域が順次配置されるので、たとえ各チャンネルで必要なメモリ使用領域のサイズが異なる場合であっても、プログラム作成時に細かな領域配置（メモリアロケーション）を意識することなく、メモリ使用領域の干渉問題を事前に回避できる。
【００５５】
（３）従来のようなデータのコピー及びコピーバックを行なう必要が無く、マルチチャンネル化による処理効率の低下も無い。
（４）各チャンネルに共通でよい処理を行なう場合には、アドレス生成部で生成されたシングルチャンネル処理用のメモリアドレスがそのままメモリ部の実アドレスとしてアドレス選択部により選択されて、メモリ使用領域がマルチチャンネル処理用のメモリ使用領域以外の領域に固定されるので、各チャンネルに共通の処理に対しても、シングルチャンネル処理用のプログラムに変更を加えることなく対応することができる。
【００５６】
そして、上述したようなメモリアドレスの選択（切り替え）を、アドレス生成部で生成されたメモリアドレス（例えば、最上位ビット）にシングル／マルチチャンネル処理設定を示す設定情報を設定することで実現すれば、アドレス選択部は、そのメモリアドレス（最上位ビット）を参照するだけで、上述したアドレス選択が可能であり、極めて簡素な構成で、各チャンネルに共通な処理とマルチチャンネル処理との切り替え制御が可能である。
【００５７】
なお、上記のアドレス選択部は省略して、上記の第２メモリアドレスを常にメモリ部用の実アドレスとしても、上記のポインタ値により、上記（１）〜（３）と同様の利点が得られる。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本発明の一実施形態としてのマルチチャンネルＤＳＰ（マルチチャンネル信号処理装置）の構成を示すブロック図である。
【図３】本実施形態におけるデータメモリのメモリ構成（メモリ領域）を説明するための模式図である。
【図４】本実施形態におけるポインタ値の更新操作を説明するための模式図である。
【図５】本実施形態のマルチチャンネルＤＳＰの動作を説明するためのフローチャートである。
【図６】本実施形態におけるポインタ値の更新操作を説明するための模式図である。
【符号の説明】
１  マルチチャンネル信号処理装置（マルチチャンネルＤＳＰ）
２  データメモリ（Y-Memory：メモリ部）
２Ａ  グローバルヒープ（システム用領域）
２Ｂ  チャンネル個別データ配置領域
３  ＭＡＣ・ＡＬＵ(Multiplier and ACcmulator・Arithmetic Logic Unit:信
号処理部）
４  ＡＧＵ（Address Generation Unit:アドレス生成部）
５  ポインタ加算部
５Ａ，５Ｂ  加算器
６  アドレス選択部
６Ａ，６Ｂ  セレクタ
７  ＰＥＣ(Program Execution Cntorol) 部（プログラム実行制御部）
８  命令メモリ（X-Memory)
９，１０  インタフェース
１１  バス（ライン）
１２  外部メモリインタフェース
１３  ペリフェラレルインタフェース
２１Ｂ−１〜２１Ｂ−Ｎ  チャンネル個別データ領域（メモリ使用領域）
２１Ｃ  予約(reserved)領域
【図１】
0004388643.tif 000002
【図２】
0004388643.tif 000003
【図３】
0004388643.tif 000004
【図４】
0004388643.tif 000005
【図５】
0004388643.tif 000006
【図６】
0004388643.tif 000007