(57)【要約】【課題】無駄なポインタ動作を無くして消費電力を削減し、更に、例えば、モノラルデータ用に開発したプログラムをステレオデータ用のプログラムに適用可能にする。【解決手段】制御部４０に、独立データを区別するＲ／Ｌレジスタ５２を設け、独立データを示すＲ／Ｌ選択信号ＣＴをデータ演算部３０へ供給する。命令デコーダ４４からデータ処理命令とそれ以外を区別するデータ処理命令信号ＤＩとを出力させ、この信号ＤＩにより、独立データを区別するＲ／Ｌレジスタ５２を制御する。又、データ演算部３０には、独立なデータ格納に関連する部分を処理する独立データ数によって多重化し、この多重化した部分を制御部４０からの独立データを示すＲ／Ｌ選択信号ＣＴによって制御する。【選択図】  図１
2005309572.tif 000002
【特許請求の範囲】
【請求項１】
共通に使用される共通データを格納する第１のメモリと、
前記第１のメモリにおける前記共通データの読み出し位置を指示する第１のポインタと、
共通の選択信号に基づき演算結果の書き込みが制御され、相互に独立した独立データをそれぞれ格納するＮ個（但し、Ｎは正の整数）の第２のメモリと、
前記Ｎ個の第２のメモリにおける前記独立データの読み出し位置を指示する第２のポインタと、
前記共通の選択信号に基づき、前記Ｎ個の第２のメモリから読み出された前記Ｎ個の独立データの内のいずれか１つを選択して出力する第１のセレクタと、
前記第１のメモリから読み出された前記共通データと前記第１のセレクタの出力データとを乗算する乗算器と、
前記共通の選択信号に基づき、Ｎ個の入力データの内のいずれか１つを選択して出力する第２のセレクタと、
前記共通の選択信号に基づき、前記第２のセレクタの出力データと前記演算結果とのいずれか一方を選択して出力する第３のセレクタと、
前記乗算器の出力データと前記第３のセレクタの出力データとの算術演算及び論理演算を行う算術論理ユニットと、
前記共通の選択信号に基づきデータの保持が制御され、前記算術論理ユニットの出力データを保持するＮ個のレジスタと、
前記共通の選択信号に基づき、前記Ｎ個のレジスタの出力データの内のいずれか１つを選択して前記演算結果を出力する第４のセレクタと、
第１のクロックに基づき計数動作して命令読み出し用のアドレスを出力するプログラムカウンタと、
複数個の命令からなるプログラムを格納し、前記プログラムカウンタから出力された前記アドレスで指定される前記プログラム中の命令を読み出すプログラムメモリと、
前記プログラムメモリから読み出された前記命令を解読して命令実行用の制御信号を出力すると共に、前記命令がデータ演算命令か否かを区別するデータ処理命令信号を出力する命令デコーダと、
前記データ処理命令信号及び第２のクロックを入力し、前記データ処理命令信号に基づき、演算処理で使用する前記独立データを選択するための前記共通の選択信号を出力すると共に、前記第２のクロックに基づき前記第１のクロックを生成し、前記データ処理命令信号に応答して、前記命令がデータ演算命令であるならば、前記独立データの数の演算処理サイクルを経過した後に前記第１のクロックを前記プログラムカウンタに与え、前記命令がデータ演算命令でないならば、直ちに前記第１のクロックを前記プログラムカウンタに与える独立データ制御部と、
を備えたことを特徴とする演算処理装置。
【請求項２】
請求項１記載の演算処理装置において、
前記独立データ制御部は、
前記データ処理命令信号及び前記第２のクロックを入力し、前記データ処理命令信号に基づき前記第１のクロックを生成して出力するクロック制御回路と、
前記第２のクロック及び前記クロック制御回路の出力信号を入力し、前記第２のクロックにより動作して前記独立データを区別する前記共通の選択信号を生成して出力する選択信号生成回路と、
を有することを特徴とする演算処理装置。
【請求項３】
請求項２記載の演算処理装置において、
前記選択信号生成回路は、前記第２のクロックにより動作するフラグ又はレジスタで構成したことを特徴とする演算処理装置。
【請求項４】
請求項１〜３のいずれか１項に記載の演算処理装置において、
前記第１及び第２のポインタの出力は、前記命令デコーダから出力される前記制御信号により、前記独立データの数の演算処理サイクルの最後のみで有効となる構成にしたことを特徴とする演算処理装置。
【請求項５】
請求項４記載の演算処理装置において、
前記第１及び第２のポインタの出力は、前記共通の選択信号によりマスクされ、前記命令デコーダから出力される前記制御信号により、前記独立データの数の演算処理サイクルの最後のみで有効となる構成にしたことを特徴とする演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステレオ音声処理等において独立した複数個の同一データに対して同一の演算処理を共通プログラムで且つ低消費電力で行えるディジタル・シグナル・プロセッサ（以下「ＤＳＰ」という。）等の演算処理装置に関するものである．
【背景技術】
【０００２】
ディジタル処理の発展に伴い、音声データ及び画像データ等もディジタル処理されるようになってきている。音声、画像データ等のディジタル処理で多用される積和演算を高速に実行する演算処理装置として、例えば、下記の特許文献１、２等に記載されるようなＤＳＰ等の専用プロセッサが開発されている。
【０００３】
【特許文献１】特開平５−３５７７４号公報
【特許文献２】特開２０００−２９３３５７号公報
【０００４】
図４（１）、（２）は、特許文献１、２等に記載された従来のＤＳＰを示す概略の構成図であり、同図（１）はＤＳＰのデータ制御部１０、及び同図（２）はＤＳＰの制御部２０を示す図である。
【０００５】
このＤＳＰは、積和演算等の演算処理を行うデータ演算部１０と、これを制御するための各種の制御信号を生成する制御部２０とを有している。データ演算部１０は、積和演算等の係数データを格納する係数リードオンリメモリ（以下、「係数ＲＯＭ」という。）１１と、この係数ＲＯＭ１１における係数データの読み出し位置を指示するＣポインタ１２と、ライト制御信号ＷＲ１により書き込みが制御され、積和演算等の変数データを格納するデータ・ランダムアクセルメモリ（以下「データＲＡＭ」という。）１３と、このデータＲＡＭ１３における変数データの読み出し位置を指示するＤポインタ１４とを備えている。係数ＲＯＭ１１の出力端子及びデータＲＡＭ１３の出力端子には、乗算器１５が接続されている。
【０００６】
乗算器１５は、係数データと変数データの乗算を行う回路であり、この出力端子に算術論理ユニット（以下「ＡＬＵ」という。）１７の第１の入力端子が接続されている。ＡＬＵ１７の第２の入力端子には、セレクタ１６の出力端子が接続されている。セレクタ１６は、入力データＩＮ又は出力データＯＵＴのいずれか一方を選択する回路である。ＡＬＵ１７の出力端子には、レジスタ１８の入力端子が接続されている。レジスタ１８は、ライト制御信号ＷＲ２により書き込みが制御され、ＡＬＵ１７の出力データを保持する回路であり、この出力端子がデータＲＡＭ１３の入力端子及びセレクタ１６の入力端子に接続されている。
【０００７】
制御部２０はセレクタ２１を有し、このセレクタ２１の出力端子に、プログラムカウンタ（以下「ＰＣ」という。）２２、プログラムＲＯＭ２３、及び命令デコーダ２４が順に接続されている。セレクタ２１は、命令デコーダ２４から与えられる制御信号により、ＰＣ２２の出力データを＋１増分した信号と、命令デコーダ２４から与えられるジャンプ（ＪＵＭＰ）命令等の制御信号との、いずれか一方を選択する回路である。ＰＣ２２は、クロックＣＫに基づき計数動作して命令読み出し用のアドレスをプログラムＲＯＭ２３へ出力する回路である。プログラムＲＯＭ２３は、複数個の命令からなるプログラムを格納し、ＰＣ２２から出力されたアドレスで指定されるプログラム中の命令を読み出すメモリである。命令デコーダ２４は、プログラムＲＯＭ２３から読み出された命令を解読して命令実行用の各種の制御信号（例えば、Ｃポインタ１２の制御信号、Ｄポインタ１４の制御信号、ライト制御信号ＷＲ１，ＷＲ２、セレクタ１６の出力切り替え制御信号、乗算器１５の制御信号、ＡＬＵ１７の制御信号、ＰＣ２２の制御信号、プログラムＲＯＭ２３の制御信号、ＪＵＭＰ命令等の制御信号等）を出力する回路である。
【０００８】
このような構成のＤＳＰでは、例えば、ディジタル処理で多用される（Ａ）式の積和演算を以下の（１）〜（７）のようにして実現している。なお、（Ａ）式は、（Ｂ）式の連続として実現する。
Ｙ＝  Σ  ａｉ×ｘｉ                                          （Ａ）
Ｃｉ＋１＝  Ｃｉ  ＋（ａｉ×ｘｉ）                            （Ｂ）
【０００９】
（１）  係数ＲＯＭ１１から、Ｃポインタ１２の示すアドレスの係数データａｉを乗算器１５に出力する。
【００１０】
（２）  データＲＡＭ１３から、Ｄポインタ１４の示すアドレスの変数データｘｉを乗算器１５に出力する。
【００１１】
（３）  乗算器１５では、係数データａｉと変数データｘｉの乗算が行われる。
【００１２】
（４）  ＡＬＵ１７では、レジスタ１８からセレクタ１６を介して送られてくるデータと、乗算器１５の出力データとの加算が行われる。
【００１３】
（５）  ＡＬＵ１７の出力データをレジスタ１８に格納する。
【００１４】
（６）  Ｃポインタ１２の値を次の係数データのアドレスへ変化させる。
【００１５】
（７）  Ｄポインタ１４の値を次の変数データのアドレスへ変化させる。
【００１６】
これらの（１）〜（７）の処理が１サイクル内に実行される。これにより、ディジタル処理で多用される積和演算を高速に実行することが可能となる。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、従来のＤＳＰでは、次の（ａ）、（ｂ）のような課題があった。
【００１８】
（ａ）  例えば、ステレオ音声処理等において相互に独立した２つのデータ（右チャネル用データR-chと左チャネル用データL-ch）に対して同一の演算処理を行う場合、右チャネル用データR-chを処理してから、左チャネル用データL-chを処理するのが一般的である。この場合、各ポインタ１２，１４がそれぞれ２回（R-ch及び及びL-ch処理）動作することになり、無駄なポインタ動作に伴う無駄な消費電力が発生し、消費電力が大きくなる。
【００１９】
（ｂ）  例えば、ステレオ音声データのR-ch，L-chデータをモノラルデータと考えた場合、モノラルデータ用に開発したプログラムを、データから見たときに同一の演算処理を行うにも関わらず、ステレオ音声処理用に新たなプログラムを開発する必要があり、不利不便である。
【課題を解決するための手段】
【００２０】
前記課題を解決するために、本発明におけるＤＳＰ等の演算処理装置では、共通に使用される共通データを格納する第１のメモリと、前記共通データの読み出し位置を指示する第１のポインタと、相互に独立した独立データをそれぞれ格納するＮ個（但し、Ｎは正の整数）の第２のメモリと、前記各独立データの読み出し位置を指示する第２のポインタと、前記Ｎ個の第２のメモリから読み出された前記Ｎ個の独立データの内のいずれか１つを選択して出力する第１のセレクタと、前記第１のメモリから読み出された前記共通データと前記第１のセレクタの出力データとを乗算する乗算器と、Ｎ個の入力データの内のいずれか１つを選択して出力する第２のセレクタと、前記第２のセレクタの出力データと演算結果とのいずれか一方を選択して出力する第３のセレクタと、前記乗算器の出力データと前記第３のセレクタの出力データとの算術演算及び論理演算を行うＡＬＵと、前記ＡＬＵの出力データを保持するＮ個のレジスタと、前記Ｎ個のレジスタの出力データの内のいずれか１つを選択して前記演算結果を出力する第４のセレクタとを備えている。
【００２１】
共通の選択信号に基づき、前記Ｎ個の第２のメモリにおける前記演算結果（即ち、前記第４のセレクタ出力）の書き込みが制御されると共に、前記第１、第２、第３、第４のセレクタの各選択動作が制御される。
【００２２】
更に、本発明の演算処理装置では、第１のクロックに基づき計数動作して命令読み出し用のアドレスを出力するＰＣと、複数個の命令からなるプログラムを格納し、前記ＰＣから出力された前記アドレスで指定される前記プログラム中の命令を読み出すプログラムメモリと、前記プログラムメモリから読み出された前記命令を解読して命令実行用の制御信号を出力すると共に、前記命令がデータ演算命令か否かを区別するデータ処理命令信号を出力する命令デコーダと、独立データ制御部とを備えている。
【００２３】
前記独立データ制御部は、前記データ処理命令信号及び第２のクロックを入力し、前記データ処理命令信号に基づき、演算処理で使用する前記独立データを選択するための前記共通の選択信号を出力すると共に、前記第２のクロックに基づき前記第１のクロックを生成し、前記データ処理命令信号に応答して、前記命令がデータ演算命令であるならば、前記独立データの数の演算処理サイクルを経過した後に前記第１のクロックを前記ＰＣに与え、前記命令がデータ演算命令でないならば、直ちに前記第１のクロックを前記ＰＣに与えるものである。
【発明の効果】
【００２４】
本発明によれば、相互に独立した独立データを格納するメモリ、及びＡＬＵの出力データを保持するレジスタ等をそれぞれ複数設け、これらを共通の選択信号により制御するようにしたので、複数の独立データに対して同一の演算処理を行う場合、無駄なポインタ動作が無くなって消費電力を削減できる。更に、例えば、モノラルデータ用に開発したプログラムをステレオデータ用のプログラムにそのまま適用することが可能となり、プログラム開発コストを削減できる。
【発明を実施するための最良の形態】
【００２５】
本発明のＤＳＰ等の演算処理装置では、積和演算等を行うデータ演算部と、このデータ演算部等を制御する制御部とを備えている。データ演算部は、第１のメモリ、第１のポインタ、共通の選択信号に基づき演算結果の書き込みが制御されるＮ個（但し、Ｎは正の整数）の第２のメモリ、前記共通の選択信号により選択動作する第１、第２、第３、第４のセレクタ、乗算器、ＡＬＵ、及び前記共通の選択信号に基づきデータの保持が制御されるＮ個のレジスタを有している。制御部は、ＰＣ、プログラムメモリ、命令デコーダ、及び独立データ制御部を有している。
【００２６】
制御部において、独立データ制御部から与えられた第１のクロックに基づきＰＣが動作し、命令読み出し用のアドレスが出力される。このアドレスによってプログラムメモリ中の命令が読み出され、命令デコーダで解読されて、命令実行用の制御信号が出力されると共に、その命令がデータ演算命令か否かを区別するデータ処理命令信号が出力されて独立データ制御部に与えられる。
【００２７】
独立データ制御部では、与えられたデータ処理命令信号に基づき、演算処理で使用する独立データを選択するための共通の選択信号を出力すると共に、入力された第２のクロックに基づき第１のクロックを生成し、前記データ処理命令信号に応答して、命令がデータ演算命令であるならば、独立データの数の演算処理サイクルを経過した後に前記第１のクロックをＰＣに与え、命令がデータ演算命令でないならば、直ちに前記第１のクロックをＰＣに与える。
【００２８】
データ演算部において、第１のポインタで指示された第１のメモリ中の共通データが読み出される。第２のポインタで指示された各第２のメモリ中の独立データが読み出され、第２のセレクタで選択される。第１のメモリの出力データと第１のセレクタの出力データとは、乗算器で乗算される。Ｎ個の入力データ中の１つが第２のセレクタで選択され、更に、この第２のセレクタの出力データと、第４のセレクタの出力データとの、いずれか一方が第３のセレクタで選択される。乗算器の出力データと第３のセレクタの出力データとは、ＡＬＵで演算等が行われ、このＡＬＵの出力データがＮ個のレジスタ中の１つに保持される。各レジスタの出力データは第４のセレクタで選択される。この第４のセレクタの出力データは、第３のセレクタの入力側に与えられると共に、Ｎ個の第２のメモリ中の何れか１つに書き込まれ、更に、外部へ出力される。
【実施例１】
【００２９】
（構成）
図１（１）、（２）は本発明の実施例１を示す演算処理装置（例えば、ＤＳＰ）の概略の構成図であり、同図（１）はＤＳＰのデータ制御部３０、及び同図（２）はＤＳＰの制御部４０を示す図である。
【００３０】
この図１では、相互に独立したＮ個（例えば、２個）の独立データ（例えば、ステレオ音声データの右チャネル用データR-chと左チャネル用データL-ch）に対して同一の演算処理（例えば、ステレオ音声処理）を行うＤＳＰの構成例が示されているが、３個以上の独立データを演算処理する場合も同様な考えで拡張できる。
【００３１】
本実施例１のＤＳＰは、積和演算等の演算処理を行うデータ演算部３０と、これを制御するための各種の制御信号を生成する制御部４０とを有している。データ演算部３０は、積和演算等で共通に使用される共通データ（例えば、係数データ）を格納する第１のメモリ（例えば、係数ＲＯＭ）３１と、この係数ＲＯＭ３１における係数データの読み出し位置を指示する第１のポインタ（例えば、Ｃポインタ）３２と、積和演算等で使用される相互に独立したＮ個（例えば、２個）の独立データ（例えば、変数データ）をそれぞれ格納する２個の第２のメモリ（例えば、L-chデータＲＡＭ、R-chデータＲＡＭ）３３−１，３３−２と、その変数データの読み出し位置を指示する共通の第２のポインタ（Ｄポインタ）３４とを備えている。
【００３２】
各Ｃポインタ３２及びＤポインタ３４は、第１のクロックＣＫにより動作し、この各Ｃポインタ３２及びＤポインタ３４の出力は、制御部４０から与えられる制御信号により、変数データの数の演算処理サイクルの最後のみで有効となる構成になっている。又、各Ｃポインタ３２及びＤポインタ３４の他の構成例として、この各Ｃポインタ３２及びＤポインタ３４の出力は、制御部４０から与えられる共通の選択信号（例えば、Ｒ／Ｌ選択信号ＣＴ）によりマスクされ、制御部４０から与えられる制御信号により、変数データの数の演算処理サイクルの最後のみで有効となる構成になっている。
【００３３】
L-chデータＲＡＭ３３−１とR-chデータＲＡＭ３３−２は、Ｒ／Ｌ選択信号ＣＴに基づき書き込みの制御が行われ、いずれか一方により、演算結果である出力データＯＵＴを格納する。このL-chデータＲＡＭ３３−１の出力端子及びR-chデータＲＡＭ３３−２の出力端子には、第１のセレクタ３５−１が接続されている。第１のセレクタ３５−１は、Ｒ／Ｌ選択信号ＣＴに基づき、各L-chデータＲＡＭ３３−１及びR-chデータＲＡＭ３３−２から読み出されたＮ個（＝２個）の変数データの内のいずれか１つを選択して出力する回路であり、ゲート回路等で構成されている。
【００３４】
Ｎ個の入力データ（例えば、２個の左チャネル用入力データL-chIN、右チャネル用入力データR-chIN）を選択的に入力するために、第２のセレクタ３５−２が設けられている。第２のセレクタ３５−２は、Ｒ／Ｌ選択信号ＣＴに基づき、左チャネル用入力データL-chINと右チャネル用入力データR-chINの内のいずれか１つを選択して出力する回路であり、ゲート回路等で構成されている。この第２のセレクタ３５−２の出力端子には、第３のセレクタ３５−３が接続されている。第３のセレクタ３５−３は、Ｒ／Ｌ選択信号ＣＴに基づき、第２のセレクタ３５−２の出力データと演算結果である出力データＯＵＴとのいずれか一方を選択して出力する回路であり、ゲート回路等で構成されている。
【００３５】
係数ＲＯＭ３１の出力端子及びセレクタ３５−１の出力端子には、乗算器３６が接続されている。乗算器３６は、制御部４０から与えられる制御信号により制御され、係数ＲＯＭ３１の出力データとセレクタ３５−１の出力データとを乗算する回路であり、この回路の出力端子がＡＬＵ３７の第１の入力端子に接続されている。ＡＬＵ３７の第２の入力端子には、セレクタ３５−３の出力端子が接続されている。ＡＬＵ３７は、制御部４０から与えられる制御信号により制御され、乗算器３６の出力データとセレクタ３５−３の出力データとの算術演算及び論理演算を行う回路であり、この出力端子にＮ個のレジスタ（例えば、２個のL-chレジスタ、R-chレジスタ）３８−１，３８−２が接続されている。
【００３６】
各L-chレジスタ３８−１及びR-chレジスタ３８−２は、Ｒ／Ｌ選択信号ＣＴに基づき書き込み制御が行われ、いずれか一方がＡＬＵ３７の出力データを保持する回路であり、これらの出力端子側に第４のセレクタ３５−４が接続されている。第４のセレクタ３５−４は、Ｒ／Ｌ選択信号ＣＴに基づき、L-chレジスタ３８−１の出力データとR-chレジスタ３８−２の出力データのいずれか１つを選択して出力データＯＵＴを出力する回路であり、ゲート回路等で構成されている。このセレクタ３５−４の出力端子は、L-chデータＲＡＭ３３−１の入力端子、R-chデータＲＡＭ３３−２の入力端子、及びセレクタ３５−３の入力端子に接続されている。
【００３７】
制御部４０は、セレクタ４１を有し、このセレクタ４１の出力端子に、ＰＣ４２、プログラムメモリ（例えば、プログラムＲＯＭ）４３、及び命令デコーダ４４が順に接続されている。セレクタ４１は、命令デコーダ４４から与えられる制御信号により、ＰＣ４２の出力データを＋１増分した信号と、命令デコーダ４４から与えられるＪＵＭＰ命令等の制御信号との、いずれか一方を選択する回路である。ＰＣ４２は、第１のクロックＣＫに基づき計数動作して命令読み出し用のアドレスをプログラムＲＯＭ４３へ出力する回路である。プログラムＲＯＭ４３は、複数個の命令からなるプログラムを格納し、ＰＣ４２から出力されたアドレスで指定されるプログラム中の命令を読み出すメモリである。
【００３８】
命令デコーダ４４は、プログラムＲＯＭ４３から読み出された命令を解読して命令実行用の各種の制御信号（例えば、係数ＲＯＭ３１の制御信号、Ｃポインタ３２の制御信号、L-chデータＲＡＭ３３−１やR-chデータＲＡＭ３３−２の制御信号、Ｄポインタ３４の制御信号、セレクタ３５−１〜３５−４の出力切り替え制御信号、乗算器３６の制御信号、ＡＬＵ３７の制御信号、L-chレジスタ３８−１やR-chレジスタ３８−２の制御信号、ＰＣ４２の制御信号、プログラムＲＯＭ４３の制御信号、ＪＵＭＰ命令等の制御信号等）を出力すると共に、命令がデータ演算命令か否かを区別する信号（即ち、データ演算処理を行っていることを示すデータ処理命令信号ＤＴ）を出力する回路である。この命令デコーダ４４の出力端子には、独立データ制御部（例えば、Ｒ／Ｌ制御部）５０が接続されている。
【００３９】
Ｒ／Ｌ制御部５０は、データ処理命令信号ＤＴ及び第２のクロックＣＬＫを入力し、データ制御部３０に与える共通のＲ／Ｌ選択信号ＣＴと、ＰＣ４２に与える第１のクロックＣＫとを生成する回路であり、クロック制御回路５１及び選択信号生成回路（例えば、フラグ又はレジスタからなるＲ／Ｌレジスタ）５２により構成されている。クロック制御回路５１は、データ処理命令信号ＤＴ、第２のクロックＣＬＫ、及びＲ／Ｌレジスタ５２から出力されるＲ／Ｌ選択信号ＣＴを入力し、ＰＣ４２に与える第１のクロックＣＫを生成する回路であり、ゲート回路等で構成されている。Ｒ／Ｌレジスタ５２は、第２のクロックＣＬＫ、及びクロック制御回路５１の出力信号を入力し、例えば、論理１又は０のＲ／Ｌ選択信号ＣＴを出力する回路である。
【００４０】
なお、制御部４０には他の回路として、ループ命令をサポートする命令に関連する部分等もあるが、説明を簡単にするために図示されていない。
【００４１】
このように本実施例１では、データ演算部３０において、従来のデータ演算部１０のデータ格納に関連する全ての部分を共通のＲ／Ｌ選択信号ＣＴのみでR-ch，L-ch用に選択可能としている。更に、制御部４０において、従来の制御部２０にＲ／Ｌ制御部５０等を追加した構成になっている。
【００４２】
（動作）
本実施例１のＤＳＰの特徴を明確にするために、従来の図４のＤＳＰの動作と比較しつつ、本実施例１の動作を説明する。
【００４３】
本実施例１のＤＳＰでは、次の（１）〜（３）のような処理を行う。
【００４４】
（１）  入力データL-chIN，R-chINをL-chデータＲＡＭ３３−１、R-chデータＲＡＭ３３−２に格納し、
【００４５】
（２）  L-chデータＲＡＭ３３−１、R-chデータＲＡＭ３３−２のデータと、係数ＲＯＭ３１の係数データとの乗加算処理を行い、
【００４６】
（３）  演算結果を出力する。
具体的には、
Ｃ０×Ｄ０＋Ｃ１×Ｄ１＋Ｃ２×Ｄ２
の値を求める。係数値Ｃ０〜Ｃ２は、係数ＲＯＭ３１に格納されている。変数値（データ値）Ｄ０〜Ｄ２は、L-chデータＲＡＭ３３−１及びR-chデータＲＡＭ３３−２に格納されている。
【００４７】
これを従来の図４のＤＳＰにより、モノデータ（ステレオデータでない）を処理するときの流れ（サイクル）は、以下のようなサイクル１〜６になる。
【００４８】
サイクル１：  入力データＩＮ→レジスタ１８へデータ転送
【００４９】
サイクル２：  レジスタ１８→データＲＡＭ１３へデータ転送
【００５０】
サイクル３：  係数ＲＯＭ１１→乗算器１５へデータ転送
同時に、データＲＡＭ１３→乗算器１５へデータ転送
乗算器１５の出力→レジスタ１８へ格納
これにより、係数ＲＯＭ１１の係数データとデータＲＡＭ１３のデータの積がレジスタ１８に格納される。
同時に、Ｃポインタ１２及びＤポインタ１４の値を＋１加算する。
これで、レジスタ１８の値＝Ｃ０×Ｄ０となる。
【００５１】
サイクル４：  係数ＲＯＭ１１→乗算器１５へデータ転送
同時に、データＲＡＭ１３→乗算器１５へデータ転送
レジスタ１８＋乗算器１５の出力→レジスタ１８へ格納
同時に、Ｃポインタ１２及びＤポインタ１４の値を＋１加算する。
これで、レジスタ１８の値＝Ｃ０×Ｄ０＋Ｃ１×Ｄ１となる。
【００５２】
サイクル５：  係数ＲＯＭ１１→乗算器１５へデータ転送
同時に、データＲＡＭ１３→乗算器１５へデータ転送
レジスタ１８＋乗算器１５の出力→レジスタ１８へ格納
同時に、Ｃポインタ１２の値を−２し、Ｄポインタ１４の値を−３する。
これで、レジスタ１８の値＝Ｃ０×Ｄ０＋Ｃ１×Ｄ１＋Ｃ２×Ｄ２となる。
【００５３】
サイクル６：  レジスタ１８の値を出力する（出力データＯＵＴ）。
【００５４】
以上のように、従来のＤＳＰでモノデータの処理を実行した場合、６サイクル必要であった。
【００５５】
次に、本実施例１によるＤＳＰで、ステレオデータに対して上記モノデータと同一の処理を行うサイクル例を示す。
【００５６】
図２及び図３は、図１のＤＳＰにおける各部分の値の変化を示す図である。
【００５７】
ここで、本実施例１の制御部４０からL-chとR-chを区別する信号（Ｒ／Ｌ選択信号ＣＴ）が出力されており、L-chが選択されるサイクルを−Ｌで、R-chが選択されるサイクルを−Ｒで表現する。
【００５８】
サイクル1-L：
入力データL-chIN→L-chレジスタ３８−１へデータ転送
【００５９】
サイクル1-R：
入力データR-chIN→R-chレジスタ３８−２へデータ転送
【００６０】
サイクル2-L：
L-chレジスタ３８−１→L-chデータＲＡＭ３３−１へデータ転送
【００６１】
サイクル2-R：
R-chレジスタ３８−２→R-chデータＲＡＭ３３−２へデータ転送
【００６２】
サイクル3-L：
係数ＲＯＭ３１→乗算器３６へデータ転送
同時に、L-chデータＲＡＭ３３−１→乗算器３６へデータ転送
乗算器３６の出力→L-chレジスタ３８−１へ格納
【００６３】
サイクル3-R：
係数ＲＯＭ３１→乗算器３６へデータ転送
同時に、R-chデータＲＡＭ３３−２→乗算器３６へデータ転送
乗算器３６の出力→R-chレジスタ３８−２へ格納
同時に、Ｃポインタ３２、Ｄポインタ３４の値を＋１加算する。
（この際、ポインタ操作は−Ｒサイクルでないと動作しない。）
これで、L-chレジスタ３８−１の値＝Ｃ０×L-chＤ０
R-chレジスタ３８−２の値＝Ｃ０×R-chＤ０となる。
【００６４】
サイクル4-L：
係数ＲＯＭ３１→乗算器３６へデータ転送
同時に、L-chデータＲＡＭ３３−１→乗算器３６へデータ転送
L-chレジスタ３８−１＋乗算器３６の出力→L-chレジスタ３８−１へ格納
【００６５】
サイクル4-R：
係数ＲＯＭ３１→乗算器３６へデータ転送
同時に、R-chデータＲＡＭ３３−２→乗算器３６へデータ転送
R-chレジスタ３８−２＋乗算器３６の出力→R-chレジスタ３８−２へ格納
同時に、Ｃポインタ３２、Ｄポインタ３４の値を＋１加算する。
（この際、ポインタ操作は−Ｒサイクルでないと動作しない。）
これで、L-chレジスタ３８−１の値＝Ｃ０×L-chＤ０＋Ｃ１×L-chＤ１となる。
R-chレジスタ３８−２の値＝Ｃ０×R-chＤ０＋Ｃ１×R-chＤ１となる。
【００６６】
サイクル5-L：  係数ＲＯＭ３１→乗算器３６へデータ転送
同時に、L-chデータＲＡＭ３３−１→乗算器３６へデータ転送
L-chレジスタ３８−１＋乗算器３６の出力→L-chレジスタ３８−１へ格納
【００６７】
サイクル5-R：  係数ＲＯＭ３１→乗算器３６へデータ転送
同時に、R-chデータＲＡＭ３３−２→乗算器３６へデータ転送
R-chレジスタ３８−２＋乗算器３６の出力→R-chレジスタ３８−２へ格納
同時に、Ｃポインタ３２の値を−２し、Ｄポインタ３４の値を−３する。
（この際、ポインタ操作は−Ｒサイクルでないと動作しない。）
これで、L-chレジスタ３８−１の値＝Ｃ０×L-chＤ０＋Ｃ１×L-chＤ１＋Ｃ２×L-chＤ２となる。
R-chレジスタ３８−２の値＝Ｃ０×R-chＤ０＋Ｃ１×R-chＤ１＋Ｃ２×R-chＤ２となる。
【００６８】
サイクル6-L：
L-chレジスタ３８−１の値を出力する（出力データＯＵＴ）。
【００６９】
サイクル6-R：
R-chレジスタ３８−２の値を出力する（出力データＯＵＴ）。
【００７０】
以上、具体例で示したように本実施例１のＤＳＰでステレオデータのR-ch処理は、従来のモノデータの処理と同じである。従って、モノデータ用として開発したプログラムを本実施例１によるＤＳＰのプログラムとして使用することが可能である。又、Ｄポインタ３４の動作に注目すれば明らかであるが、本実施例１のＤＳＰはポインタ３４がL-chデータを処理している時とR-chデータを処理しているときに変化しない。従って無駄な電力消費が発生しない。
【００７１】
（効果）
本実施例１では、制御部４０に従来の制御部２０に加えて、独立データを区別するＲ／Ｌレジスタ５２を設け、独立データを示すＲ／Ｌ選択信号ＣＴをデータ演算部３０へ供給する。命令デコーダ４４にデータ処理命令とそれ以外を区別するデータ処理命令信号ＤＩを設け、この信号ＤＩにより、独立データを区別するＲ／Ｌレジスタ５２を制御する。又、データ演算部３０には、独立なデータ格納に関連する部分を処理する独立データ数によって多重化し、この多重化した部分を制御部４０からの独立データを示すＲ／Ｌ選択信号ＣＴによって制御する。これにより、無駄なポインタ動作をすることなく、モノラルで開発したプログラムをステレオデータにそのまま適用することが可能となる。
【実施例２】
【００７２】
本発明は、上記実施例１に限定されず、種々の変形が可能である。この変形例である実施例２としては、例えば、次の（ａ）、（ｂ）のようなものがある。
【００７３】
（ａ）  独立データを３個以上にする場合には、実施例１の構成に代えて、データＲＡＭ３３−１，３３−２，・・・、複数入力１出力用のセレクタ３５−１，３５−２，３５−４、レジスタ３８−１，３８−２，・・・、及び複数ビット出力のレジスタ５２を設ける等すれば良い。
【００７４】
（ｂ）  実施例では、ＤＳＰについて説明したが、他の構成の演算処理装置にも適用できる。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施例１を示すＤＳＰの概略の構成図である。
【図２】図１のＤＳＰにおける各部分の値の変化を示す図である。
【図３】図１のＤＳＰにおける各部分の値の変化を示す図である。
【図４】従来のＤＳＰを示す概略の構成図である。
【符号の説明】
【００７６】
３０      データ演算部
３１      係数ＲＯＭ
３２      Ｃポインタ
３３−１      L-chデータＲＡＭ
３３−２      R-chデータＲＡＭ
３４      Ｄポインタ
３５−１〜３５−４，４１      セレクタ
３６      乗算器
３７      ＡＬＵ
３８−１      L-chレジスタ
３８−２      R-chレジスタ
４０      制御部
４２      ＰＣ
４３      プログラムＲＯＭ
４４      命令デコーダ
５０      Ｒ／Ｌ制御部
５１      クロック制御回路
５２      Ｒ／Ｌレジスタ
【図１】
2005309572.tif 000003
【図２】
2005309572.tif 000004
【図３】
2005309572.tif 000005
【図４】
2005309572.tif 000006