(57)【要約】【課題】  プログラム変更時においても出力にノイズが含まれることがないデータ処理回路を提供する。【解決手段】  プログラムが記憶されたプログラムＲＡＭ２２と、係数の変更時において、変更後の新係数が記憶される係数ＲＡＭ（新）３２と、係数の変更時において、変更前の旧係数が記憶される係数ＲＡＭ（旧）３３と、プログラムおよび係数に従って動作する演算回路２３が設けられている。また、プログラムメモリ２２内のプログラムおよび係数ＲＡＭ３２、３３内の係数を読み出すプログラムカウンタ２７と、係数ＲＡＭ（旧）３３内の係数から係数ＲＡＭ（新）３２内の係数に向かって順次変化する係数を生成し、演算回路２３へ出力する係数補間手段４０が設けられている。そして、プログラムおよび係数の変更時において、係数ＲＡＭ３２、３３が共に新係数に書き換えられ、これによって、プログラム変更時のノイズを防止する。【選択図】    図１
2006058625.tif 000002
【特許請求の範囲】
【請求項１】
プログラムが記憶されたプログラムメモリと、
係数が記憶された係数メモリと、
前記プログラムメモリ内のプログラムおよび前記係数メモリ内の係数を読み出すプログラムカウンタと、
前記プログラムおよび前記係数に従って動作する演算回路とを具備するデータ処理回路において、
前記係数の変更時において、変更後の新係数が記憶される新係数メモリと、
前記係数の変更時において、変更前の旧係数が記憶される旧係数メモリと、
前記旧係数メモリ内の係数から新係数メモリ内の係数に向かって順次変化する係数を生成し、前記演算回路へ出力する係数補間手段と、
前記プログラムおよび係数の変更時において、前記新係数メモリと前記旧係数メモリを共に新係数に書き換える書き換え手段と、
を具備することを特徴とするデータ処理回路。
【請求項２】
プログラムが記憶されたプログラムメモリと、
係数が記憶された係数メモリと、
前記プログラムメモリ内のプログラムおよび前記係数メモリ内の係数を読み出すプログラムカウンタと、
前記プログラムおよび前記係数に従って動作する演算回路とを具備するデータ処理回路において、
前記係数の変更時において、変更後の新係数が記憶される新係数メモリと、
前記係数の変更時において、変更前の旧係数が記憶される旧係数メモリと、
前記新係数メモリ内の係数と前記旧係数メモリ内の係数との差分の１／Ｘ（Ｘは１より大きい実数）を求める減算手段と、
前記減算手段の出力と中間係数メモリ内の係数とを加算し、加算結果を前記演算回路へ出力すると共に前記中間係数メモリに書き込む係数補間手段と、
前記プログラムおよび係数の変更時において、前記新係数メモリ、前記旧係数メモリおよび前記中間係数メモリを共に新係数に書き換える書き換え手段と、
を具備することを特徴とするデータ処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル楽音信号の生成等に用いて好適なデータ処理回路に関する。
【背景技術】
【０００２】
楽音信号をディジタル技術によって生成する場合、音源回路によって生成したディジタル楽音信号（ＰＣＭ（Pulse Code Moduration）データ）や、外部から受けたＰＣＭデータを効果付与回路へ入力し、この効果付与回路においてエフェクト（効果）や立体音響効果を付与することが行われる。この効果付与回路は、ＦＩＲフィルタやＩＩＲフィルタ等の複数のディジタルフィルタを有して構成され、通常、各フィルタはＤＳＰ（ディジタルシグナルプロセッサ）によって構成される。
【０００３】
ＤＳＰは、周知のように、内部にプログラムＲＡＭ（ランダムアクセスメモリ）、係数ＲＡＭ、楽音データが一時記憶されるデータＲＡＭ、演算回路等を有し、プログラムＲＡＭ内のプログラムに基づいてデータＲＡＭから楽音データが読み出され、その楽音データに対し演算回路において、プログラムＲＡＭから読み出されたプログラムおよび係数ＲＡＭから読み出された係数に基づいてフィルタ演算が行われる。そして、その演算結果が次段のＤＡＣ（ディジタル／アナログコンバータ）によってアナログ信号に変換され、スピーカへ出力される。
【０００４】
また、ＤＳＰにおけるＰＣＭデータの処理においては、多彩な楽音を生成するため、上述した演算回路の係数をしばしば変化させる。この処理は、外部のＣＰＵ（中央処理装置）から出力される係数によって上記の係数ＲＡＭを書き換えることによって行われる。しかし、係数ＲＡＭをいきなり書き換えると、ＰＣＭデータにノイズが乗ってしまう問題がある。そこで、係数ＲＡＭを２個設け、書き換えるべき係数を第２の係数ＲＡＭに書き込み、現在使用されている第１の係数ＲＡＭの係数から第２の係数ＲＡＭの係数へ徐々に係数を変化させる係数補間回路が設けられている。
なお、本願に関わる従来の技術文献として特許文献１〜３が知られている。
【特許文献１】特許第3230413号公報
【特許文献２】特許第3013675号公報
【特許文献３】特許第3116447号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述したＤＳＰにおいては、楽音データの処理途中においてプログラムの変更が行われる場合がある。この場合、同時に係数の変更も行われる。このプログラム変更においては、ＣＰＵから出力されたプログラムがプログラムＲＡＭに書き込まれ、また、この書き込み動作中はプログラムＲＡＭの出力がＮＯＰ（ＮＯ−オペレーション）に変更される。またこの時、同時にＣＰＵから係数が出力され、この係数が上述した第２の係数ＲＡＭに書き込まれる。
【０００６】
しかしながら、このようなプログラム変更処理にあっては、変更前のプログラムの係数が第１の係数ＲＡＭ内にあり、変更後のプログラムの係数が第２の係数ＲＡＭに書き込まれることから、プログラム変更前の係数とプログラム変更後の係数との間において上述した補間処理が行われることになり、補間処理後に得られる係数が本来の係数と全く違う係数となり、この結果、出力されるＰＣＭデータにノイズが含まれてしまう。
本発明は上記事情を考慮してなされたもので、その目的は、プログラム変更時においても出力にノイズが含まれることがないデータ処理回路を提供することにある。
【課題を解決するための手段】
【０００７】
この発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、プログラムが記憶されたプログラムメモリと、係数が記憶された係数メモリと、前記プログラムメモリ内のプログラムおよび前記係数メモリ内の係数を読み出すプログラムカウンタと、前記プログラムおよび前記係数に従って動作する演算回路とを具備するデータ処理回路において、前記係数の変更時において、変更後の新係数が記憶される新係数メモリと、前記係数の変更時において、変更前の旧係数が記憶される旧係数メモリと、前記旧係数メモリ内の係数から新係数メモリ内の係数に向かって順次変化する係数を生成し、前記演算回路へ出力する係数補間手段と、前記プログラムおよび係数の変更時において、前記新係数メモリと前記旧係数メモリを共に新係数に書き換える書き換え手段とを具備することを特徴とするデータ処理回路である。
【０００８】
請求項２に記載の発明は、プログラムが記憶されたプログラムメモリと、係数が記憶された係数メモリと、前記プログラムメモリ内のプログラムおよび前記係数メモリ内の係数を読み出すプログラムカウンタと、前記プログラムおよび前記係数に従って動作する演算回路とを具備するデータ処理回路において、前記係数の変更時において、変更後の新係数が記憶される新係数メモリと、前記係数の変更時において、変更前の旧係数が記憶される旧係数メモリと、前記新係数メモリ内の係数と前記旧係数メモリ内の係数との差分の１／Ｘ（Ｘは１より大きい実数）を求める減算手段と、前記減算手段の出力と中間係数メモリ内の係数とを加算し、加算結果を前記演算回路へ出力すると共に前記中間係数メモリに書き込む係数補間手段と、前記プログラムおよび係数の変更時において、前記新係数メモリ、前記旧係数メモリおよび前記中間係数メモリを共に新係数に書き換える書き換え手段とを具備することを特徴とするデータ処理回路。
【発明の効果】
【０００９】
この発明によれば、プログラム変更時においても出力にノイズが含まれることがない利点が得られ、特に、ディジタル楽音信号の生成に用いて好適である。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照し、この発明の実施の形態について説明する。図１はこの発明の一実施の形態によるデータ処理回路（以下、ＤＳＰ（ディジタルシグナルプロセッサ）という）を適用した楽音信号生成回路Ｇの構成を示すブロック図、  図２は図１に示す楽音信号生成回路Ｇを用いた携帯電話機の構成を示すブロック図である。図２において、符号１は回路各部を制御するＣＰＵ（中央処理装置）であり、通常の通信、通話処理を行うと共に、ゲームプログラムの処理等を行う。２はＣＰＵ１において実行されるプログラム、すなわち、通信・通話処理プログラム、ゲームプログラム、音楽再生処理プログラム等が記憶されたＲＯＭ（リードオンリメモリ）である。３はデータ記憶用の不揮発性ＲＡＭ（ランダムアクセスメモリ）であり、ＣＰＵ１が各処理の過程においてデータを一時記憶させる。
【００１１】
４は電話番号入力用のテンキー、各種ファンクションキー等が設けられた入力部５は液晶表示器による表示部である。６はアンテナ７を有する通信部であり、送信データによって搬送波を変調してアンテナ７から送信し、また、アンテナ７を介して受信した着信信号タを復調してＣＰＵ１または音声処理部８へ出力する。音声処理部８はマイクロフォン９から出力された音声信号をディジタルデータに変換し、さらに圧縮し送信データとして通信部６へ出力し、また、通信部６から出力される圧縮音声データを伸張し、アナログ音声信号に変換してスピーカ１０へ出力する。楽音信号生成回路Ｇは、着信メロディ、ゲームの効果音楽，鑑賞用音楽等、各種の楽音信号を生成し、スピーカ１６へ出力する。
【００１２】
次に、図１を参照して楽音信号生成回路Ｇについて詳述する。
図１において、１２はＣＰＵ１からバスラインＢを介して供給される各種のデータおよび制御命令が一時記憶されるバッファレジスタである。１３は音源回路であり、ＣＰＵ１からバッファレジスタ１２を介して着信メロディ生成指令を受けて着信メロディのディジタル楽音信号（ＰＣＭデータ）を生成して出力する。また、ＣＰＵ１からゲームの効果音の生成指令を受けた時は、ゲームの効果音のＰＣＭデータを生成して出力する。ＤＳＰ１４は、音源回路１３から出力されるディジタル楽音信号にエフェクト、立体音響効果（３Ｄ）、ワイドステレオ効果を付与してＤＡＣ（ディジタル／アナログプロセッサ）１５へ出力する。ＤＡＣ１５はＤＳＰ１４から出力されるディジタル楽音信号をアナログ楽音信号に変換し、スピーカ１６へ出力する。
【００１３】
次に、ＤＳＰ１４において、２１はデータＲＡＭであり、音源回路１３から出力されるＰＣＭデータを一時記憶し、記憶したデータをプログラムＲＡＭ２２から出力されるプログラムに従って演算回路２３へ出力する。演算回路２３はデータＲＡＭ２１から出力されるＰＣＭデータに、プログラムＲＡＭ２２から出力されるプログラムが指定する演算を行って出力する。この場合、演算係数としてセレクタ４３から出力される係数Ｋが用いられる。２４はバッファメモリであり、演算回路２３から出力されるＰＣＭデータを一時記憶し、クロックパルスＣＬＫ１のタイミングでＤＡＣ１５へ出力する。ここで、クロックパルスＣＬＫ１はＰＣＭデータのサンプリング周波数と同じ周波数（４８ＫＨｚ）のクロックパルスである。
【００１４】
プログラムＲＡＭ２２は、予め、エフェクト用プログラム、立体音響効果用プログラム、ワイドステレオ効果用プログラム等が各々記憶されたＲＡＭであり、各プログラムはＣＰＵ１から出力されるプログラムによって書き換え可能である。このプログラムＲＡＭ２２は、最大７６８ステップのプログラムが記憶できるもので、各ステップがプログラムカウンタ２７から出力されるアドレスデータに従って順次読み出され出力される。例えば、エフェクト用プログラム、立体音響効果用プログラム、ワイドステレオ効果用プログラム等の１つまたは複数が７６８ステップに記憶されている。そして、アドレス端子へ供給されるプログラムカウンタ２７のカウント出力に従って、エフェクト用プログラムが読み出され、これにより、データＲＡＭ２１から出力されるＰＣＭデータにエフェクトが付与されたり、立体音響効果用プログラムが読み出されたり、また、ワイドステレオ効果用プログラムが読み出され、これによりＰＣＭデータにワイドステレオ効果が付与される。プログラムカウンタ２７は７６８進のカウンタであり、次式の周波数のクロックパルスＣＬＫ２に従って０〜７６７のカウント出力を繰り返し出力する。
周波数＝４８ＫＨｚ×７６８＝３６．８６４ＭＨｚ
【００１５】
３１〜３４はいずれも演算回路２３において使用される演算係数が記憶される係数ＲＡＭであり、係数ＲＡＭ（前段）３１、係数ＲＡＭ（新）３２、係数ＲＡＭ（中間）３４は各々７６８ワード（１ワード＝１６ビット）の記憶容量を有し、係数ＲＡＭ（旧）３３は７６８バイトの記憶容量を有している。ここで、係数のビット数は１６であり、したがって、係数ＲＡＭ（前段）３１、係数ＲＡＭ（新）３２、係数ＲＡＭ（中間）３４は各々７６８個の係数を記憶可能であり、また、係数ＲＡＭ（旧）３３は７６８個の係数の上位８ビットが記憶可能である。また、各係数ＲＡＭ３１〜３４のアドレス端子にはいずれもプログラムカウンタ２７のカウント出力が加えられており、プログラムカウンタ２７のカウント出力によって指定されるアドレスに対しデータ書き込み／読み出しが行われる。すなわち、係数ＲＡＭ３１〜３４内の各係数は各々プログラムＲＡＭ２２の各プログラムステップに対応している。
【００１６】
また、係数ＲＡＭ（前段）３１はＣＰＵ１から出力される係数によって書き換えられ、また、係数ＲＡＭ（新）３２は係数ＲＡＭ（前段）３１から出力される係数によって書き換えられる。また、係数ＲＡＭ（旧）３３は係数ＲＡＭ（前段）３１またはセレクタ４３から出力される係数によって書き換えられる。この場合、セレクタ３６によって入力データの切り換えが行われる。また、係数ＲＡＭ（中間）３７は係数ＲＡＭ（前段）３１またはセレクタ４３から出力される係数によって書き換えられる。この場合、セレクタ３７によって入力データの切り換えが行われる。
【００１７】
４０は係数補間回路である。この係数補間回路４０は係数変更の場合に、いきなり係数を変更すると、出力されるＰＣＭデータにノイズが含まれる虞があるので、変更前の係数から変更後の係数まで、クロックパルスＣＬＫ１の２５６クロックタイムをかけて徐々に係数を変化させるための回路であり、係数ＲＡＭ（新）３２の出力の上位８ビットから係数ＲＡＭ（旧）３３の出力を減算する減算回路４１と、減算回路４１の出力と係数ＲＡＭ（中間）３４の出力とを加算する加算回路４２と、係数ＲＡＭ（新）３２の出力または加算回路４２の出力の一方を選択し、係数Ｋとして演算回路２３へ出力するセレクタ４３と、補間終了を判定する終了判定回路４４とから構成されている。なお、この係数補間回路４０の動作は後に詳述する。
【００１８】
５１、５２は各々スタートレジスタおよびエンドレジスタであり、プログラム変更時において、ＣＰＵ１から出力される変更すべきプログラムのスタートアドレスおよびエンドアドレスが書き込まれる。例えば、プログラムＲＡＭ２２のアドレス０〜１５０に記憶されているエフェクト用プログラムの書き換えが行われる時は、スタートレジスタ５１に「０」が、エンドレジスタ５２に「１５０」が書き込まれる。５４は比較回路であり、プログラムカウンタ２７の出力と、スタートレジスタ５１、エンドレジスタ５２のデータとを比較し、プログラムカウンタ２７の出力がスタートレジスタ５１のデータと、エンドレジスタ５２のデータとの間にある場合に”１”を、それ以外の場合に”０”を出力する。
【００１９】
５５はアンドゲート（プログラムＲＡＭ２２の出力のビット数分）であり、比較回路５４の出力が”１”の時は閉状態となって、データ「０（全ビット”０”）」を出力し、比較回路５４の出力が”０”の時は開状態となって、プログラムＲＡＭ２２から出力されるプログラムステップをデータＲＡＭ２１および演算回路２３へ出力する。データ「０」はＮＯＰ（No Operation）命令としてあるので、書き換え中の誤動作を防ぐことができる。（ＮＯＰ命令が「０」でない場合はアンドゲート５５はそのビット配列に合わせて変更する。）
【００２０】
次に、上述した楽音信号生成回路Ｇの動作を説明する。
まず、プログラムＲＡＭ２２のアドレス０〜１５０にエフェクト用プログラムが、アドレス１５１〜７６７に立体音響効果用プログラムが記憶されているとする。この場合、係数ＲＡＭ３１、３２、３４の各アドレス０〜１５０に各々、同一のエフェクト用プログラムの係数が記憶され、アドレス１５１〜７６７に各々、同一の立体音響効果用プログラムの係数が記憶されている。また、係数ＲＡＭ（旧）３３には係数ＲＡＭ（前段）３１内の各係数の上位８ビットが記憶されている。
【００２１】
このような状態において、ＣＰＵ１から、例えば着信メロディ生成指令が音源回路１３へ出力されると、音源回路１３が着信メロディのディジタル楽音信号（ＰＣＭデータ）を生成し、ＤＳＰ１４へ出力する。出力されたＰＣＭデータはデータＲＡＭ２１に一時記憶され、同時に、プログラムカウンタ２７がクロックパルスＣＬＫ２のアップカウントを開始する。プログラムカウンタ２７がクロックパルスＣＬＫ２によってアップカウントを行うと、プログラムＲＡＭ２２からプログラムステップが順次出力され、アンドゲート５５を介してデータＲＡＭ２１および演算回路２３へ供給される。
【００２２】
一方、プログラムカウンタ２７がクロックパルスＣＬＫ２のアップカウントを行うと、係数ＲＡＭ（新）３２、係数ＲＡＭ（旧）３３および係数ＲＡＭ（中間）３４から係数が順次読み出され、減算回路４１および加算回路４２へ出力される。しかし、上述したように、係数変更がない状態では、係数ＲＡＭ（新）３２のデータの上位８ビットと係数ＲＡＭ（旧）３３のデータは同一であり、したがって、減算回路４１の出力は「０」となる。この結果、加算回路４２から係数ＲＡＭ（中間）３４の出力データが出力され、セレクタ４３を介して演算回路２３へ供給されると共にセレクタ３７を介して係数ＲＡＭ（中間）３４に書き込まれる。
【００２３】
このように、プログラムカウンタ２７がクロックパルスＣＬＫ２によってアップカウントを行うと、データＲＡＭ２１および演算回路２３へプログラムＲＡＭ２２から読み出されたプログラムステップステップが順次加えられ、また、係数ＲＡＭ（中間）３４から読み出された係数が係数補間回路４０を介して演算回路２３へ加えられる。これにより、エフェクト用プログラム、立体音響効果用プログラムが順次繰り返し実行される。また、係数ＲＡＭ（中間）３４から読み出された係数は再び同係数ＲＡＭ３４に戻され、同じアドレスに書き込まれる。したがって、係数ＲＡＭ（中間）３４のデータに変化はない。
【００２４】
次に、係数変更の場合の動作を説明する。
係数変更が行われる場合、まず、ＣＰＵ１が出力した変更後の係数（新係数という）が係数ＲＡＭ（前段）３１に書き込まれる。例えば、エフェクト用プログラムの係数変更が行われる場合は、ＣＰＵ１が出力した新係数が係数ＲＡＭ（前段）３１のアドレス０〜１５０に書き込まれる。
【００２５】
また、係数ＲＡＭ（新）３２内の係数は、プログラムカウンタ２７のカウント出力によって読み出される毎に、係数ＲＡＭ（前段）３１から読み出された新係数と比較器により比較され、一致していない場合は係数ＲＡＭ（新）３２内の係数が新係数に書き換えられる。そして、書き換えられた新係数が減算回路４１へ出力される。減算回路４１はこの新係数の上位８ビットから係数ＲＡＭ（旧）３３から出力される変更前の係数（旧係数という）の８ビットを減算する。減算結果を係数ＲＡＭ（中間）３４の出力（１６ビット）の下位８ビットに加算器４２で加算する。符号は上位ビットに拡張する。図５に具体的な構成例を示す。減算回路４１は入力Ａ（８ビット）から入力Ｂ（８ビット）を減算する。出力Ａ−Ｂは符号（ＳＩＧＮ１ビット）が付加されて９ビットとなる（Ｂ＞Ａの時負の値となるため）。加算器４２は入力Ａ（１６ビット）と入力Ｂ（１６ビット）を加算する。入力Ａには、減算器４１の出力が差分データとして入力される。符号（ＳＩＧＮ）は入力ＡのＭＳＢから８ビットに入力され、下位はそれ以下の８ビットに入力される。すなわち、加算器４２の入力Ａは減算器４１の出力を下位方向に８ビットシフトした差分データが入力されることになる。ここで、よく知られるように、２進数を下位方向に８ビットシフトすると、その２進数を「２５６」で割ったことになり、したがって、新係数の上位８ビットから旧係数の上位８ビットを減算し、減算器４２下位８ビット入力することは、次の差分データを加算器４２の入力Ａに与えることを意味している。
差分データ＝（新係数−旧係数）／２５６・・・（１）
【００２６】
加算回路４２は、係数ＲＡＭ（中間）３４から出力される係数に上記の差分データを加算し、次式の加算結果（中間係数という）をセレクタ４３を介して演算回路２３へ出力する。
中間係数＝旧係数＋差分データ・・・（２）
またこの時、セレクタ３７が切り換えられ、セレクタ４３から出力された中間係数が係数ＲＡＭ（中間）３４に書き込まれる。
【００２７】
次に、クロックパルスＣＬＫ１の１クロック後（クロックパルスＣＬＫ２の７６８クロック後）、再び係数ＲＡＭ（新）３２から同じ新係数が読み出されると、減算回路４１において上記（１）式の減算が行われ、係数ＲＡＭ（中間）３４から読み出された中間係数（旧係数＋差分データ）に差分データがさらに加算され、次の中間係数が得られる。
中間係数＝旧係数＋２×差分データ・・・（３）
そして、この中間係数がセレクタ４３を介して演算回路２３へ出力されると共に、係数ＲＡＭ（中間）３４に書き込まれる。
【００２８】
以下、クロックパルスＣＬＫ１の１周期が経過する毎に同様の動作が繰り返され、これにより、セレクタ４３から出力される中間係数が、図３（ａ）に示すように、旧係数から新係数まで、クロックパルスＣＬＫ１のタイミングで、かつ、上記差分データのピッチで単調に増加（差分データが正の場合）または減少（差分データが負の場合）する。
【００２９】
そして、中間係数と新係数との差が上記（１）式の差分データより小になると、終了判定回路４４がそれを検知し、終了信号を出力する。この終了信号が出力されると、セレクタ３６、３７、４３が切り換えられ、係数ＲＡＭ（新）３２内の新係数が係数ＲＡＭ（旧）３３（上位８ビット）および係数ＲＡＭ（中間）３４に書き込まれる。また、上記終了信号が出力される前にＣＰＵ１によって係数ＲＡＭ（前段）３１が書き換えられた場合は、その時点における中間係数の上位８ビットが係数ＲＡＭ（旧）に書き込まれる。これにより、以後、図３（ｂ）に示すように、その中間係数から新たな新係数（新々係数）に向かって中間係数が逐次変化する。
【００３０】
なお、上記説明は係数ＲＡＭ３１（前段）の１つのアドレスについてであるが、他のアドレスの係数についても同様の動作が行われる。すなわち、ＣＰＵ１によって新係数が、例えば、係数ＲＡＭ（前段）３１のアドレス０〜１５０に書き込まれた場合、各アドレス０〜１５０の新係数のそれぞれについて、上述した単調増加または減少による補間処理が行われる。
【００３１】
次に、プログラム変更の場合について図４のフローチャートを参照して説明する。プログラムを変更する場合には、通常、係数も変更される。
プログラムおよび係数変更が行われる場合、ＣＰＵ１が、まず、書き換え範囲を指定するデータを出力する。出力されたデータはスタートレジスタ５１およびエンドレジスタ５２に書き込まれる（ステップＳ１）。例えば、エフェクト用プログラムを書き換える場合、ＣＰＵ１がアドレス０およびアドレス１５０を出力し、これらのアドレスがスタートレジスタ５１およびエンドレジスタ５２に書き込まれる。このスタートレジスタ５１およびエンドレジスタ５２の書き込みが行われると、以後、プログラムカウンタ２７の出力がスタートアドレスからエンドアドレスの間の場合に比較回路５４から”１”が出力され、これにより、アンドゲート５５から全ビット”０”（ＮＯＰ命令）が出力される（ステップＳ２）。
【００３２】
また、プログラムおよび係数変更が行われる場合、セレクタ３６、３７が切り換えられ、係数ＲＡＭ３２〜３４の各々に係数ＲＡＭ（前段）３１の出力が書き込まれる状態となる。すなわち、係数補間回路４０における係数補間処理が実質的に行われない状態となる（ステップＳ３）。
【００３３】
次に、ＣＰＵ１が新プログラムおよび新係数を出力する。出力された新プログラムはプログラムＲＡＭ２２に書き込まれ、また、この書き込みの間、アンドゲート５５からＮＯＰ命令が出力される。したがって、書き込みの間、演算回路２３が異常な出力を出すことはない。また、ＣＰＵ１から出力された新係数は係数ＲＡＭ（前段）３１に書き込まれ、次いで、係数ＲＡＭ３２〜３４に書き込まれる（ステップＳ４）。係数ＲＡＭ３２〜３４の書き込みが終了すると、スタートレジスタ５１およびエンドレジスタ５２がクリアされ（ステップＳ５）、以後、新プログラムがアンドゲート５５から出力される。また、新プログラムに同期して、係数ＲＡＭ３２〜３４から新係数が出力されるが、これらは同じ係数であり、したがって、減算回路４１の出力が「０」となり、係数補間回路４０における旧係数から新係数への補間処理は行われない。この結果、プログラム変更時において、変更前の係数と変更後の係数との間で補間処理が行われるという不都合を防ぐことができる。
【産業上の利用可能性】
【００３４】
この発明は、携帯端末における着信音やゲームの効果音の生成等に用いられる。
【図面の簡単な説明】
【００３５】
【図１】この発明の一実施形態によるデータ処理回路を適用した楽音信号生成回路Ｇの構成を示すブロック図である。
【図２】同楽音信号生成回路Ｇを用いた携帯電話機の構成を示すブロック図である。
【図３】同楽音信号生成回路Ｇの動作を説明するための図である。
【図４】同楽音信号生成回路Ｇの動作を説明するためのフローチャートである。
【図５】同楽音信号生成回路Ｇにおける係数ＲＡＭ３２〜３４、減算回路４１、加算回路４２による構成をさらに詳細に示した回路図である。
【符号の説明】
【００３６】
１…ＣＰＵ、１２…バッファレジスタ、１３…音源回路、１４…データ処理回路（ＤＳＰ）、２１…データＲＡＭ、２２…プログラムＲＡＭ、２３…演算回路、２４…バッファメモリ、２７…プログラムカウンタ、３１…係数ＲＡＭ（前段）、３２…係数ＲＡＭ（新）、３３…係数ＲＡＭ（旧）、３４…係数ＲＡＭ（中間）、３６、３７、４３…セレクタ、４０…係数補間回路、４１…減算回路、４２…加算回路、４４…終了判定回路。
【図１】
2006058625.tif 000003
【図２】
2006058625.tif 000004
【図３】
2006058625.tif 000005
【図４】
2006058625.tif 000006
【図５】
2006058625.tif 000007