(57)【特許請求の範囲】
【請求項１】
波形信号処理部およびメモリアクセス部を有し、
前記波形信号処理部は、
音波形データにエフェクトを加えるための波形信号処理を、２個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、
前記メモリアクセス部は、
前記２個の時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされる２個のＤＲＡＭを、それぞれ、前記２個の時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を２分割した分割期間を、順次、前記２個の時分割マイクロプログラムに対応させて動作するものであり、
前記２個の時分割マイクロプログラムの１つから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該時分割マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するＤＲＡＭに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するＤＲＡＭに対し、前記音波形データの書き込みまたは読み出しを行うものである、
ことを特徴とする音波形データ用ディジタル信号処理装置。
【請求項２】
波形信号処理部およびメモリアクセス部を有し、
前記波形信号処理部は、
音波形データにエフェクトを加えるための波形信号処理を、２個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、
前記メモリアクセス部は、
前記２個の時分割マイクロプログラム中、１つの時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされるＤＲＡＭを、前記１つの時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を２分割した分割期間を、順次、前記２個の時分割マイクロプログラムに対応させて動作するものであり、
前記１つの時分割マイクロプログラムから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するＤＲＡＭに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するＤＲＡＭに対し、前記音波形データの書き込みまたは読み出しを行うものである、
ことを特徴とする音波形データ用ディジタル信号処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音波形や音声波形などの音波形にリバーブ（残響）などのエフェクト
（効果）を付与する場合などに、音波形データの遅延用にダイナミックランダムアクセスメモリ（DRAM：Dynamic Random Access Memory）を用いる音波形データ用ディジタル信号処理装置に関するものである。
【０００２】
【従来の技術】
電子楽器において、楽音信号に種々のエフェクト
（効果）を付加するために、ディジタル信号処理装置（以下、DSP：Digital Signal Processorという）が用いられている。DSPは、画像信号や音声信号などのディジタル信号の処理に適したマイクロプロセッサであって、マイクロプログラムを用いて積和演算を高速処理する。
DSPでは、通常、マイクロプログラムによって、複数のエフェクトを同時に実行させる。しかし、実行させるエフェクトの中には、リバーブ（残響）など、楽音波形データを、１サンプリング周期に比べて十分長い時間にわたって遅延させるものがある。このような長時間の遅延を行うには、遅延時間に対応して大きな記憶容量を持つメモリが必要である。しかし、このような大容量メモリをDSPチップに内蔵させるのは効率的でない。
そこで、例えば、特開平１０−１９８５５９号公報等で知られているように、DSPにメモリを外付けし、このメモリを、楽音波形データの長時間遅延用に用いるのが一般的である。DSPは、ベースカウンタの値をサンプリング周期毎に所定値ずつ減算することにより、外部メモリの読み出し、書き込みのためのメモリアドレスを発生している。
【０００３】
楽音波形データを遅延させるためには、大容量のメモリを要するので、アクセス速度が遅いものの、DRAM（Dynamic Random Access Memory）を使用することになる。しかし、DSPの動作クロックは年々上昇し、処理速度が向上している。それに対応して、DRAMのアクセス速度を向上させることが望まれている。
DRAMには、当初のDRAMよりもページ・モードでのアクセスが速いEDO-DRAM（Extended Data Out DRAM）、同期型であってアクセスの安定度が増して高速なSDRAM（Synchronous DRAM）などがある。しかし、１アドレス単位のアクセスに関しては、プリチャージに要する時間のために、次のアクセスを行うまでに待機時間を要する。
【０００４】
音波形データを遅延させるために外部メモリを使用する場合、通常、ページ・モードが使用できない。なぜなら、あるアドレスに１サンプルの音波形データを書き込んだとすると、この音波形データを遅延させて読み出すアドレスは、サンプリング周期単位で見ると、これより十分離れている。
また、遅延時間が異なる複数の音波形データを合成するときも、これらの音波形データを読み出す複数タップのアドレスは、互いに離れたものである。このような理由から、隣接するアドレスに連続してアクセスする場合がほとんどない。
したがって、１アドレス毎のアクセスに関して、次のアクセスを行うまでの待機時間の短縮が望まれている。
【０００５】
そこで、DRAMを複数バンク構成として、各バンクをインターリーブ制御すれば、見かけ上、上述したプリチャージのための待機時間がなくなる。したがって、DSP側の波形信号処理をインターリーブ制御に適合させる必要がある。
また、複数バンク構成でインターリーブ制御できるSDRAMはあるが、このようなEDO-RAMは見あたらないという問題もある。
【０００６】
【発明が解決しようとする課題】
本発明は、上述した問題点を解決するためになされたもので、音波形データの遅延用の外部メモリに複数バンク構成を有しないDRAMを使用しても、見かけ上、プリチャージのための待機時間をなくし、高速かつ容易にアクセスできる、時分割マイクロプログラムを用いた音波形データ用ディジタル信号処理装置を提供することを目的とするものである。
【０００８】
【課題を解決するための手段】
本発明は、請求項１に記載の発明においては、波形信号処理部およびメモリアクセス部を有し、前記波形信号処理部は、音波形データにエフェクトを加えるための波形信号処理を、２個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、前記メモリアクセス部は、前記２個の時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされる２個のＤＲＡＭを、それぞれ、前記２個の時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を２分割した分割期間を、順次、前記２個の時分割マイクロプログラムに対応させて動作するものであり、前記２個の時分割マイクロプログラムの１つから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該時分割マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するＤＲＡＭに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するＤＲＡＭに対し、前記音波形データの書き込みまたは読み出しを行うものである。
したがって、１つのダイナミックランダムアクセスメモリが次のアクセス開始までに必要とするプリチャージを、別のダイナミックランダムアクセスメモリにアクセスする時間に行うことができる。したがって、見かけ上、プリチャージに必要な待機時間をなくすことができる。その際、それぞれの時分割マイクロプログラムは、対応するダイナミックランダムアクセスメモリに読み出しまたは書き込みを行えばよいので、ダイナミックランダムアクセスメモリへのアクセス制御が効率的かつ容易となる。
【０００９】
請求項２に記載の発明においては、波形信号処理部およびメモリアクセス部を有し、  前記波形信号処理部は、音波形データにエフェクトを加えるための波形信号処理を、２個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、前記メモリアクセス部は、前記２個の時分割マイクロプログラム中、１つの時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされるＤＲＡＭを、前記１つの時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を２分割した分割期間を、順次、前記２個の時分割マイクロプログラムに対応させて動作するものであり、前記１つの時分割マイクロプログラムから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するＤＲＡＭに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するＤＲＡＭに対し、前記音波形データの書き込みまたは読み出しを行うものである。
したがって、ダイナミックランダムアクセスメモリへのアクセスは、次のアクセスまでに必要なプリチャージのために待つ必要がある。しかし、上述した１つの時分割マイクロプログラムから見れば、請求項１に記載の発明の場合と同じアクセス速度が得られているから、ダイナミックランダムアクセスメモリへのアクセス制御が効率的に行われている。
【００１０】
なお、上述した請求項１，２において、１つの時分割された波形信号処理において実行する波形信号処理は１つに限られない。１つの時分割波形信号処理の過程で、複数の異なる波形信号処理を順次実行してもよい。
また、音波形データ用ディジタル信号処理装置は、上述した２個を超える数の時分割処理を実行してもよい。この場合、上述した２個の時分割処理期間以外の残りの時分割処理期間において、音波形データにエフェクトを加えるための波形信号処理以外の信号処理を実行することができる。
【００１１】
【発明の実施の形態】
最初に、本発明の音波形データ用ディジタル信号処理装置が使用される電子楽器のハードウエア構成を説明する。
図１は、電子楽器のハードウエア構成図である。
図中、１はCPU、２はROM、３はRAM、４はバスライン、５はタイマである。
CPU１は、バスライン４に接続されたハードウエアを使用し、ROM３に記憶されたプログラムおよびデータを用いて、RAM４をワーキングエリアとして実行することにより、電子楽器全体の制御をする。また、入力された演奏データや楽曲データに基づいて、音源部９，ミキサ１０，時分割DSP１２に出力する楽音制御パラメータを生成したり、外部装置に演奏データを出力したりする。
ROM２には、自動演奏用の楽曲データが格納される場合もある。
タイマ５は、CPU１の動作クロックやプログラムのタイマ割り込み処理のために割り込み信号を生成してCPU１に出力する。
【００１２】
６は操作子であって、鍵盤やペダルなどの演奏用の操作子、電子楽器のパネル上に設けられた、音色設定，エフェクトなどの設定操作子、自動演奏の制御を行う操作子などである。７は表示器であって、電子楽器への設定入力画面、設定内容、および、動作状態などを表示する。
８は通信インターフェースであって、外部MIDI機器との間のMIDIデータの入出力、およびまたは、ＬＡＮや公衆通信網などの通信ネットワークを介して、サーバやパーソナルコンピュータとの間で演奏データのダウンロードやストリーミング再生などを行うためのインターフェースである。
【００１３】
９は音源部であって、楽音制御パラメータを入力して楽音信号を生成する。波形メモリ音源方式の音源では、波形メモリを有し、この波形メモリから指定された音色の楽音波形を読み出し、ピッチ制御やエンベロープ制御をして楽音信号を生成する。通常、複数の発音チャンネルを有しており、複数のパートの楽音信号が生成される。
１０はミキサ、１１は波形I/O、１２は時分割DSP、１３は外部メモリ、１４はDAC、１５はサウンドシステムである。
ミキサ１０は、音源部９から出力される複数パートの楽音信号を入力するとともに、時分割DSP１２や波形I/O１１から加工された楽音信号を入力して合成し、DAC１４に出力する。同時に、波形I/O１１および時分割DSP１２に対して楽音信号を出力する。ミキサ１０は、CPU１によって、ミキサ１０への入力およびミキサ１０からの出力の選択、合成比、出力音量レベルなどを制御する。
【００１４】
波形I/O１１は、この電子楽器に外付けされた効果付与装置（エフェクタ）に楽音信号を出力し、効果付与装置の出力をミキサ１０に戻す。
時分割DSP１２は、合成された楽音信号を処理してミキサ１０に戻す。
波形I/O１１および時分割DSP１２は、合成後の楽音信号を入力する場合に限らず、特定のパートの楽音信号を選択して、パート毎に異なるエフェクトを付与することが可能である。
【００１５】
時分割DSP１２は、楽音波形データの１サンプリング周期（例えば、48kHz）の間に、全ステップが１回実行されるマイクロプログラムによって波形信号処理を行う。時分割処理によって、実質的に複数の時分割マイクロプログラムが、上述した１サンプリング周期において、それぞれ全ステップを１回実行する。
この時分割DSP１２には、主として楽音波形データを遅延させるために用いるための外部メモリ１３が外付けされる。時分割DSP１２の処理の態様はCPU１によって制御される。
ミキサ１０から最終的に出力される楽音信号の合成信号は、DAC１４でアナログ信号に変換され、サウンドシステム１５に出力されて、スピーカなどから放音される。
【００１６】
以下に説明する具体例では、時分割数を２とし、２つの時分割マイクロプログラムが１ステップを実行するごとに、他の時分割マイクロプログラムの１ステップに切り替える。また、外部メモリ１３には、この３ステップに１回のステップでアクセスが可能である。
しかし、時分割数は３以上であってもよい。また、時分割処理の一部の処理では、エフェクト付加とは異なる目的の波形信号処理を行ってもよい。
【００１７】
また、１つの時分割マイクロプログラムによって実行される波形信号処理において、付与されるエフェクトは１つに限らない。同一または異なる種類の複数のエフェクトの付与が可能である。
以下に示す例では、個々の時分割マイクロプログラムが、マルチブロック構成となっており、各ブロックが、個別のエフェクトアルゴリズムを実行する。
一部のエフェクトのみを停止させたり、一部のエフェクトを別のエフェクトに置き換えるために、ブロック毎に、マイクロプログラムの処理を停止させたり、他のマイクロプログラムに置き換えることができる。
【００１８】
図２は、楽音波形データ用ディジタル信号処理装置と外部メモリとの間で行われる、楽音波形データの書き込み、読み出しを概念的に説明する説明図である。
図中、２１は楽音波形データにエフェクトを与えるための楽音波形データ用ディジタル信号処理装置であって、波形信号処理部２２と、スイッチ２３ａ，２３ｂで概念的に示すメモリアクセス部、を有する。波形信号処理部２２は、時分割波形信号処理部２２ａ，２２ｂを有する場合がある。
２４，２４ａ，２４ｂは外部メモリとしてのDRAMである。独立した２個のDRAMである場合のほか、１個のDRAMの内部に設けられた２個のバンクである場合がある。なお、従来、２バンク構成のSDRAMはあったが、２バンク構成のEDO-DRAMは知られていない。
図中、スイッチ２３ａ，２３ｂを介して、波形信号処理部２２とDRAM２４ａ，２４ｂ間を接続している線は、波形信号処理部２２から書き込みまたは読み出しの要求を受けて出力される、アクセスのための制御信号の出力線を表している。スイッチ２３ａ，２３ｂの状態は、アクセス開始可能なタイミングにあるか否かを表している。実際には、スイッチ２３ａ，２３ｂは楽音波形データ用ディジタル信号処理装置２１内に存在しない。アクセスのための制御信号は、実際には制御線上の信号レベル変化等によって表される。
また、実際には、楽音波形データ用ディジタル信号処理装置２１とDRAM２４ａ，２４ｂ間に、データ線、アドレス線が接続されているが、この図では省略している。
【００１９】
図２（ａ）において、楽音波形データ用ディジタル信号処理装置２１は、波形信号処理部２２を有し、波形信号処理の過程において楽音波形データを遅延させるため外部メモリとして２個のDRAM２４ａ，２４ｂを並列使用する。
スイッチ２３ａ，２３ｂは、外付けされるDRAM２４ａ，２４ｂに対し、相互に所定時間ずれたタイミングでアクセス開始を可能とする。ただし、DRAM２４ａ，２４ｂを択一的にアクセス状態にするのではなく、アクセスの開始タイミングをずらせて並列的にアクセス状態にする。
【００２０】
波形信号処理部２２が、書き込みまたは読み出し要求をしたときに、スイッチ２３ａ，２３ｂは、波形信号処理部２２および２個のDRAM２４ａ，２４ｂのうち、アクセス開始が可能なタイミングにあるDRAM２４ａまたはDRAM２４ｂに対して、楽音波形データの書き込みまたは読み出しを行う。
例えば、１つのDRAM２４ａがアクセス中のときに、波形信号処理部２２が書き込みまたは読み出し要求をしたときに、別のDRAM２４ｂがアクセスを開始できる。DRAM２４ａがアクセスを終了してから次のアクセスまでに必要なプリチャージは、別のDRAM２４ｂのアクセス中に行われるので、波形信号処理部２２は、プリチャージのためにアクセス開始を待つ必要がない。
【００２１】
図２（ｂ），図２（ｃ）は、図２（ａ）に示した波形信号処理部２２が、時分割処理により、交互に２つの波形信号処理を切り替えることによって、等価的に時分割波形信号処理部２２ａ，２２ｂを有する場合である。
図２（ｂ）において、時分割波形信号処理部２２ａ，２２ｂは、それぞれの波形信号処理過程において、楽音波形データを遅延させるために、時分割波形信号処理部２２ａ，２２ｂに対応させて外付けされるDRAM２４ａ，２４ｂを使用する。スイッチ２３ａ，２３ｂは、DRAM２４ａ，２４ｂに対し、相互に所定時間ずれたタイミングでアクセス開始を可能とする。
【００２２】
例えば、時分割波形信号処理部２２ａが書き込みまたは読み出し要求をしたときに、スイッチ２３ａは、対応するDRAM２４ａがアクセス開始可能なタイミングで、楽音波形データの書き込みまたは読み出しを行わせる。時分割波形信号処理部２２ａからDRAM２４ａへのアクセスが開始すれば、所定時間ずれて、別の時分割波形信号処理部２２ｂからDRAM２４ｂへのアクセス開始が可能となる。
DRAM２４ａがアクセスを終了してから次のアクセスまでに必要なプリチャージは、別の時分割波形信号処理部２２ｂがDRAM２４ｂへのアクセス中に行うことができる。その結果、時分割波形信号処理部２２ａは、プリチャージのためにアクセス開始を待つ必要がない。
その際、時分割波形信号処理部２２ａ，２２ｂは、対応するDRAM２４ａ，２４ｂと読み出しまたは書き込みを行えばよいので、波形信号処理部２２は、効率よく、かつ容易に、DRAM２４ａ，２４ｂにアクセスできる。
【００２３】
図２（ｃ）においても、波形信号処理部２２は、等価的に２個の時分割波形信号処理部２２ａ，２２ｂを有する。
時分割波形信号処理部２２ａは、波形信号処理過程において楽音波形データを遅延させるために、DRAM２４ａを使用する。
スイッチ２３ａは、DRAM２４ａに対し、所定のタイミングでアクセス開始を可能とする。時分割波形信号処理部２２ａが書き込みまたは読み出し要求をしたときに、スイッチ２３ａは、DRAM２４ａがアクセス開始可能なタイミングで、楽音波形データの書き込みまたは読み出しを行わせる。DRAM２４ａへのアクセスは、次のアクセスまでに必要なプリチャージのために待つ必要がある。
【００２４】
したがって、波形信号処理部２２として見れば、図２（ｂ）に比べて、アクセス速度が低下している。しかし、時分割波形信号処理部２２ａとしては、図２（ｂ）と全く同じアクセス速度が得られている。
その結果、時分割波形信号処理部２２ａは、効率よくDRAM２４ａにアクセスすることができる。
時分割波形信号処理部２２ｂは、DRAM２４ａにアクセスできないが、音波形データの長時間の遅延を必要としないエフェクトの波形信号処理を行うようにすればよい。
【００２５】
上述した図２（ａ）では、DRAMの個数を２個として、２個の互いにずれたタイミングでアクセス開始を可能としている。一般的には、DRAMの個数を２以上のＫ個としてＫ個の相互に所定時間ずれたタイミングでアクセス開始を可能とすることができる。
上述した図２（ｂ）では、波形信号処理部２２の時分割数を２としているが、一般的には、２以上のＭ個とすることができる。このＭの値以下のＫ個の時分割波形信号処理部に応じてDRAMをＫ個として、Ｋ個の相互に所定時間ずれたタイミングでアクセス開始を可能としてもよい。
Ｋ個を除く残りの時分割波形信号処理部は、図２（ｃ）の時分割波形信号処理部２２ｂと同様に、DRAMにアクセスできないが、音波形データの長時間の遅延を必要としない波形信号処理を行うようにすればよい。
上述した図２（ｃ）でも、波形信号処理部２２の時分割数を、一般的には、２以上のＭ個にすることができる。
【００２６】
図２を参照した説明では、時分割波形信号処理部２２ａ，２２ｂはマイクロプログラムの１ステップ毎にDRAMにアクセスできるものとして説明した。しかし、時分割の切り替えタイミングは、メモリにアクセス開始可能なタイミングの切り替えよりも速くできる。
以下に示す具体的な動作例では、３倍の速度にしている。その結果、時分割波形信号処理部２２ａ，２２ｂは、最短でも３ステップに１回しか、メモリにアクセス開始することができない。しかし、楽音波形データにエフェクトを付与するための波形信号処理では、連続するステップで外部メモリにアクセスすることは必ずしも要しないからさほど問題はない。
【００２７】
また、エフェクトを加えるための波形信号処理の時分割数をＭ個とした場合、このＭ個を超える数の時分割信号処理を実行してもよい。例えば、分割数４個の時分割信号処理を行い、そのうち、第１，第３の時分割波形信号処理で、エフェクトを加えるための波形信号処理を行い、残りの第２，第３の時分割波形信号処理で、それ以外の信号処理、例えば、楽音波形のピッチ検出のためのにゼロクロス検出などの処理を行う。
【００２８】
以下、楽音波形データ用ディジタル信号処理装置の内部構成、および、外部メモリとの間のメモリアクセス動作について具体的に説明する。
図３は、図１に示した時分割DSP１２の内部構成図である。
図中、３１は演算部であり、複数のセレクタ、乗算器、加算器を有している。３２はI-RAM、３３はT-RAM（テンポラリRAM）、３４はY-RAMであり、演算部３１に入力されるデータのレジスタ部を構成する。３５はバスラインであり、演算部３１の演算結果が出力される。
I-RAM３２には、LFO（低周波発振器）３６，EG（エンベロープ発生器）３７，I/O３８（入出力部）の各出力、および、バスライン３５のデータが入力され、図４を参照して後述するように、それぞれに対応した領域に一時記憶される。また、I-RAM３２は、一時記憶したデータを演算部３１またはI/O３８に出力する。
【００２９】
LFO（低周波発振器）３６は、低周波発振波形を演算で生成する。ビブラートやトレモロのエフェクトを加えるために用いる。
EG（エンベロープ発生器）３７は、エンベロープ波形を演算で生成する。時分割DSP１２を楽音波形発生器として使用するときに用いる。
I/O３８は、図１に示したミキサ１０との間で双方向にデータ転送を行う。
LFO３６，EG３７，I/O３８は、いずれも、32チャンネルを有する。
一方、T-RAM３３，Y-RAM３４は、バスライン３５上に出力される、演算部３１の出力データあるいは、外部メモリ１３から遅延して読みだされた楽音波形データを一時記憶する。
【００３０】
演算部３１には、また、係数発生部３９の出力も入力される。係数発生部３９は、係数RAM４０に記憶されている係数に補間演算を行う。この係数は、係数RAM４０において、マイクロプログラムの各ステップに対応して記憶されている。
なお、その他（LFO，EG）のレジスタ４１には、LFO（低周波発振器）３６において使用する、例えば、周波数、振幅、波形形状の制御パラメータの値や、EG（エンベロープ発生器）３７において使用する、例えば、スタートフラグ、アタックタイム、アタックレートなどの値がチャンネル毎に記憶されている。
演算部３１は、内部に設けられた複数のセレクタによって、例えば、係数発生部３９またはY-RAM３４の一方の出力値と、I-RAM３２またはT-RAM３３の一方の出力値とを乗算し、この積に、I-RAM３２またはT-RAM３３の一方の出力値を加算するといった演算を行う。この演算部３１内のハードウエアは、マイクロプログラムの１ステップよりも高速で動作する。
【００３１】
４２は書き込み部であって、バスライン３５上のデータを、データ線を経由して外部メモリ１３へ書き込む。
４３は読み出し部であって、外部メモリ１３から読み出されたデータを、データ線を経由して読み出し、バスライン３５上に出力する。
４４はアクセス制御部であって、外部メモリ１３にアクセスするために、各種の制御信号を所定のタイミングで制御線を経由して外部メモリに出力する。
データ線は入出力共用であり、アクセス制御部４４から出力される、/WEN（ライトイネーブル）信号によって、書き込みと読み出しとを切り替える。
【００３２】
演算部３１では楽音波形データを32ビット精度で演算する。しかし、外部メモリ１３に記憶させるときには、楽音波形データを、32ビット精度、または、16ビット精度浮動小数点で記憶させる。したがって、16ビット精度浮動小数点で書き込みをするとき、あるいは、読み出しをするときには、それぞれ、書き込み部４２および読み出し部４３で符号変換を行う。
４５は外部メモリアドレス発生部、４６は外部メモリアクセスAD（アドレス）レジスタ、４７は外部メモリB（ブロック）情報レジスタである。
外部メモリアクセスAD（アドレス）レジスタ４６は、マイクロプログラム中で外部メモリ１３にアクセス可能なステップに対応する記憶エリアに、各ステップでアクセスする際のアドレスを記憶している。
【００３３】
外部メモリ１３は、マイクロプログラム中の後述する各ブロック毎に、そのブロックが使用する領域が割り当てられている。外部メモリB（ブロック）情報レジスタ４７は、外部メモリ１３におけるマイクロプログラムの各ブロックが使用する領域の先頭アドレスおよびブロックサイズを格納している。
外部メモリアドレス発生部４５は、ベースカウンタを内部に備え、外部メモリアクセスAD（アドレス）レジスタ４６から出力されるアドレスと、外部メモリB（ブロック）情報レジスタ４７から出力される先頭アドレスおよびブロックサイズを用いて、列（Raw）アドレスおよびコラム(Column)アドレスからなるメモリ用アドレスを演算し、アドレス線に出力する。
ベースカウンタの値は、楽音波形データを16ビットで記憶させる場合には、サンプリング周期毎に(-1)され、32ビットで記憶させる場合には、サンプリング周期毎に(-2)される。
外部メモリアドレス発生部４５は、また、バスライン３５を介して入力されたデータで、外部メモリアクセスAD（アドレス）レジスタ４６から出力されるアドレスを変調することができる。
【００３４】
上述した時分割DSP１２は、マイクロプログラムレジスタ４９に記憶されたマイクロプログラムで制御される。先頭ステップレジスタ５０は、マイクロプログラムの後述する複数ブロックのそれぞれの先頭ステップ番号を記憶している。マイクロプログラム読み出し部４８は、１サンプリング周期の間に、複数の時分割マイクロプログラムそれぞれの全ステップを１回実行し、その各ステップにおいて、当該ステップのステップ番号と先頭ステップレジスタ５０の記憶する先頭ステップ番号に基づいて現在実行中のブロックのブロック番号を出力するとともに、当該ステップのマイクロコードに基づいて制御信号を出力し、これらによって、演算部３１，I-RAM３２、T-RAM３３，Y-RAM３４などのレジスタ、外部メモリアドレス発生部４５などを制御することによって、複数のエフェクトのための演算を実行する。
【００３５】
図４は、時分割DSP１２のマイクロプログラム、I-RAM３２、および、外部メモリ・インターフェースの説明図である。
図４（ａ）は時分割マイクロプログラムDSP0，DSP1のプログラム構成の説明図、図４（ｂ）はI-RAM３２のメモリ構造の説明図、図４（ｃ）は外部メモリ・インターフェース関係の端子説明図である。
図３に示した時分割DSP１２は、ハードウエア的には１個であるが、ステップ単位で交互に切り替えて動作させるという時分割動作により、機能的には２つの独立したマイクロプログラムとして動作するようにしている。
【００３６】
図４（ａ）に示すように、各時分割マイクロプログラムDSP0，DSP1は、さらに、マルチブロック動作を行うことにより、同一または異なる種類の複数のエフェクトを同時に実行可能である。
マルチブロック動作とは、全512ステップを複数ブロック（エフェクタブロック、例えば、最大16ブロック、３ステップ単位）に分けて、各ブロック毎に独立したエフェクトアルゴリズムを実行する。１サンプリング周期中に全ステップを実行することにより、１サンプリング周期（48kHz）中に、各エフェクトアルゴリズムのステップを１回実行する。
【００３７】
図４（ｂ）に示すように、上述したプログラム構成に対応して、I-RAM３２のメモリ構造は例えば、次のようになる。
共通アクセス領域Ａは、各時分割マイクロプログラムDSP0，DSP1に専用の領域が独立して設けられ、それぞれ16ワードある。複数のブロックに共通の領域である。
共通アクセス領域Ｂは、16ワードの領域が２つあるが、各領域をアクセスする時分割マイクロプログラムDSP0，DSP1が、サンプリング周期毎に交代する。すなわち、あるサンプリング周期では、DSP0が片方の領域、DSP1がもう一方の領域をアクセスし、次のサンプリング周期では、DSP1が該片方の領域、DSP0がもう一方の領域をアクセスする。この領域を使用して、時分割マイクロプログラムDSP0とDSP1との間でデータ転送も行える。
【００３８】
I/O領域は、I/O部３８への書き込みと読み出しとを行う領域、LFO領域、EG領域は、LFO部３６，EG部３７からの読み出しを行う領域であって、いずれも32チャンネルあり、いずれかのブロックに割り当てられる。
個別アクセス領域は、例えば128ワードあって、この領域をブロック分割して、各ブロックに割り当てられる。各ブロックでは、割り当てられた領域をそのブロックの専用領域として使用できる。その結果、他のブロックにより書き換えられることはない。
上述した共通アクセス領域Ａ，Ｂ、および、個別アクセス領域は、時分割マイクロプログラムDSP0，DSP1が異なる領域をアクセスできるように、それぞれ２個の領域を有している。また、I/O領域は、I/O部３８への出力を行うための書き込み領域と、I/O部３８からの入力を行うための読み出し領域の２つの領域を有している。
【００３９】
図示を省略したが、T-RAM（テンポラリRAM）３３については、I-RAM３２と同様に、共通アクセス領域Ａ、共通アクセス領域Ｂ、および、個別アクセス領域からなるが、I/O領域，LFO領域，EG領域はない。記憶データ量は大きく、I-RAM３２の２倍程度としている。
Y-RAM３４は、共通アクセス領域Ａおよび個別アクセス領域からなる。演算に使用する係数を一時保存するものであるので、記憶データ量は少なくてよい。
信号処理過程において、楽音波形データを短時間遅延させるのであれば、上述した、I-RAM３２やT-RAM３３を用いて実現できるが、長時間にわたる遅延は、外部メモリ１３に書き込んで読み出しを行うことにより実現する。
【００４０】
次に、図４（ｃ）を参照して、外部メモリ１３へのインターフェースについて説明する。
時分割マイクロプログラムDSP0，DSP1は、３ステップ毎、すなわち、各512ステップ中、第０ステップおよび３の倍数の番号のステップにおいて、外部メモリ１３にアクセス可能なように設計されている。
外部メモリ１３に対するアクセスモードとして、外部メモリ１３に使用するDRAMの種類に応じて、複数のモードがあり、使用時に設定される。外部メモリ１３は、楽音波形データを１サンプル１６ビット精度（浮動小数点）または３２ビット精度で記憶可能である。しかし、外部メモリ１３の種類およびモードによっては、１６ビット精度（浮動小数点）に制限される場合がある。
接続端子の機能は、時分割DSPの動作モードによって、異なる機能に設定されたり、使用されない場合がある。
【００４１】
RASNはRaw（行）アドレス取り込み用信号の出力端子である。CASNはColumn（列）アドレス取り込み用信号の出力端子である。いずれも立下りエッジで取り込みをする。/WEN（ライトイネーブル）は、書き込み読み出しの切り替え制御信号の出力端子であって、低レベルが書き込みを意味する。
A[13：0]は、アドレス線13〜0の出力端子である。２個のEDO-DRAMを使用するときには、１個目の/OE（アウトプットイネーブル）端子をA[12]に接続し、２個目の/OE端子をA[13]に接続する。
D[31：0]は、データ線31〜0のデータ入出力端子である。16ビット幅で使用するときには、データ線15〜0だけを用いる。
【００４２】
CLKは、SDRAM用のシンクロナスクロック、CKEはクロックイネーブル出力端子である。時分割DSPをスタンバイモードにするときには、CKEを低レベルにする。MQH，MQLはSDRAM用のマスク信号出力端子であって、外部メモリ１３との間のデータ線が16ビットのときにはMQHのみが使用され、外部メモリとの間のデータ線が32ビットのときには、MQHが上位16ビットのマスクとして、MQLは下位16ビットのマスクとして使用する。
EDO-DRAMを２個使用する場合、CKEを２個目のEDO-DRAMのRASとし、MQHを２個目のEDO-DRAMのCASとし、MQLを２個目のEDO-DRAMのWENとして使用する。
【００４３】
時分割DSP１２は、図３のレジスタ群中に動作モードレジスタ（図示せず）を有しており、CPU１が動作モードレジスタに動作モードを書き込むことにより、動作モードが設定される。
以後、時分割DSP１２の動作モード別に、時分割DSP１２と外部メモリ１３として使用される各種のDRAMとのデータ転送動作について説明し、DRAMのアクセスを高速化する具体例を説明する。
図５は、［モード０］における時分割DSP１２と外部メモリ１３との接続図である。
図５（ａ）はEDO-RAMを２個（R0，R1）接続する場合、図５（ｂ）はEDO-DRAMを１個（R0）接続する場合の接続図である。
図６は、図５（ａ）に示した［モード０］のタイミングチャートである。アクセスが最短のタイミングで連続して行われる場合について、書き込みと読み出しの場合を合わせて示している。
【００４４】
図５（ａ）において、外部メモリを２個使用する。それぞれの外部メモリ１３ａ，１３ｂをEDO-DRAM（R0），EDO-DRAM（R1）とする。時分割DSP１２のRASN，CASN，WENは、それぞれ、外部メモリ１３ａの/RAS，/CAS，/WEに接続する。時分割DSP１２のA[12]は、外部メモリ１３ａの/OEに接続する。
16Mbitのメモリを使用する場合、時分割DSP１２のA[9:0]を、外部メモリ１３ａ，１３ｂのA[9:0]に接続する。データ線は16ビットであり、時分割DSP１２のD[31:16]を、外部メモリ１３ａ，１３ｂのD[15:0]に接続する。
時分割DSP１２のCKE，MQH，MQL，A[13]は、外部メモリ１３ｂに対し、時分割マイクロプログラムDSP0用のRASN，CASN，WEN，A[12]と同等の信号を、時分割マイクロプログラムDSP1用に出力する。したがって、それそれの信号を出力する端子は、外部メモリ１３ｂの/RAS，/CAS，/WE，/OEの端子に接続する。
アドレスバスA[9:0]およびデータバスD[31:16]は、時分割マイクロプログラムDSP0，DSP1に対して共用される。
【００４５】
図６において、/R0RASの立ち下りエッジで、アドレスAddress(0-0)のRowアドレスが読み込まれ、次に、/R0CASの立ち下りエッジで、Columnアドレスが読み込まれる。
読み出しのときには、/R0OEが低レベルで、/R0WEが高レベルであり、/R0CASが低レベルのときに、DQ(R)に示されるデータData(0-0)が読み出される。
なお、データData(0-0)の出力開始タイミングおよび出力終了タイミングは、EDO-RAMの品種によって大きく異なるので、図６では、複数の立上り、立下りが示されている。データData(0-0)は、時分割DSP１２側の読み出し部４３においてArea0Latchに示されるデータData(0-0)のようにラッチされる。
一方、書き込みのときには、時分割DSP１２側の書き込み部４２において、/R0OEを高レベルにした上で、DQ(W)に示される書き込みデータを/R0WEが低レベルにあるときに書き込ませる。
【００４６】
次回の読み出しまたは書き込みのタイミングは、/R0RASが高レベルに戻った後、/R0RASのプリチャージ・タイムｔRPCが所定時間以上（例えば30nsec以上）でなければアクセスできない。したがって、次のアクセスのアドレスaddress(0-1)は、最短でもマスタクロックタイムの第２０番まで遅らされる。
したがって、この/R0RASのプリチャージ・タイムｔRPCの制約のために、外部メモリ１３ａの同じEDO-RAM(RO）を使用する限り、約1.5倍程度までしか高速化できず、また、ぎりぎりで動作させる場合は、不具合が起こりがちである。
【００４７】
しかし、時分割DSP１２側から、外部メモリ１３ｂのEDO-RAM(R1）を、EDO-RAM(RO）と互いにずれたタイミングでアクセス開始することにより、データ線、アドレス線を共通使用しながら、DSP1とEDO-RAM(R1）の間で楽音波形データの書き込みと読み出しを行う。すなわち、アドレスAddress(1-0)，アドレスAddress(1-1)・・・を指定し、時分割マイクロプログラムDSP0とEDO-RAM(R0）の間と全く同様のアクセスを行う。
EDO-RAM(R0）とEDO-RAM(R1）とは、互いにずれたタイミングでアクセスされるため、一方のEDO-RAMへのアクセス直後に必要なプリチャージを、他方のEDO-RAMにアクセスする時間中に行うことができる。したがって、EDO-DRAMの/R0RAS，/R1RASのプリチャージ・タイムtRPCの制約を、見かけ上逃れることができる。その結果、時分割DSP１２のメモリアクセスとしては、２倍の速さでメモリアクセスが実現できる。
【００４８】
ここで、時分割マイクロプログラムDSP0，DSP1のステップタイミングと、書き込み部４２、読み出し部４３、アクセス制御部４４，外部メモリアドレス発生部４５の動作タイミングの関係を、簡単な一具体例をもって説明しておく。
図６において、時分割マイクロプログラムDSP0は、マスタクロック第８，９番、第１２，１３番、第１６，１７番、第２０，２１番、・・・のそれぞれにおいて１ステップを実行する。一方、時分割マイクロプログラムDSP1は、マスタクロック第６，７番、第１０，１１番、第１４，１５番、第１８，１９番、・・・のそれぞれにおいて１ステップを実行する。
【００４９】
時分割マイクロプログラムDSP0は、マスタクロック第４，５番（図示欄外）のステップにおいて、Address（0-0）への書き込みまたは読み出しを、書き込み部４２または読み出し部４３，アクセス制御部４４，外部メモリアドレス発生部４５等に指示する。外部メモリアドレス発生部４５は、マスタクロック第８〜１３番において、Address（0-0）を出力する。アクセス制御部４４は、マスタクロック第９番において/R0RASを低レベルにし、マスタクロック第１２番において/ROCASを低レベルにする。
【００５０】
書き込みの場合は、アクセス制御部４４は、マスタクロック第８〜１９番において/R0OEを低レベルにし、マスタクロック第１４〜１７番で、/ROWEを高レベルにする。書き込み部４２は、マスタクロック第１３〜１８番で、DQ(W)に示す書き込みデータをデータ線に出力する。
読み出しの場合は、アクセス制御部４４は、マスタクロック第８〜１９番において/R0OEを低レベルにする。読み出し部４３は、マスタクロック第１７番で、データ線上のDQ(R)に示す読み出しデータData（0-0）をラッチし、第２０，２１番において、Area0 Latch上のData（0-0）をバスライン３５に出力する。
【００５１】
次の書き込みまたは読み出しは、最短でも、先のステップから３ステップ後の、マスタクロック第１６，１７番の１ステップにおいて、時分割マイクロプログラムDSP0が、Address（0-1）への書き込みまたは読み出しを指示することになる。連続したメモリアクセスがない場合には、これ以降のステップで行われることになるが、必ず３の倍数のステップとされる。
一方、時分割マイクロプログラムDSP1は、マスタクロック第１０，１１番における１ステップにおいて、Address（1-0）への書き込みまたは読み出しを指示する。次の書き込みまたは読み出しは、最短でも、先のステップから３ステップ後の、マスタクロック第２２，２３番の１ステップにおいて、Address（1-1）への書き込みまたは読み出しを指示することになる。
【００５２】
図５（ｂ）においては、時分割DSP１２のRASN，CASN，WEN，A[12]，A[9:0]，D[31:16]、は、図５（ａ）と同様に外部メモリ１３の端子に接続する。時分割DSP１２のDSP1は、外部メモリ１３にアクセスしない。
したがって、図６に示すタイミングチャートにおいて、時分割マイクロプログラムDSP0とEDO-DRAM（R0）との間の、アドレスAddress(0-0)、Address(0-1)に対する書き込みまたは読み出しだけが可能となる。
その結果、プリチャージに必要な待機時間は存在するが、図５（ａ）の場合と同じアクセスができる。
【００５３】
次に、外部メモリ１３としてSDRAMを用いた場合のメモリアクセスを、図７〜図９、図１１、および、図１２を参照して説明する。
図７は、［モード１］における時分割DSP１２と外部メモリ１３との接続図である。外部メモリ１３として、データビット幅16ビット、２バンク構成のSDRAMを１個接続し、２バースト動作で、時分割マイクロプログラムDSP0が32ビットアクセス、時分割マイクロプログラムDSP1が16ビットアクセスをする。あるいは、ともに16ビットアクセスをする。
【００５４】
時分割DSP１２のRASN，CASN，WENは、それぞれ、外部メモリ１３の/RAS，/CAS，/WEに接続する。64MbitのSDRAMを使用する場合、時分割DSP１２のA[13]，A[12]を、それぞれ、外部メモリのA[12]（BA1端子として機能する），A[13]（BA0端子として機能する）に接続する。
BA0，BA1はバンクセレクト信号である。A[11:0]は、外部メモリ１３のA[11:0]に接続する。ただし、A[10]は、オートプリチャージビットの端子として使用する。コラムアドレスには、A[7:0]のみを使用する。時分割DSP１２のD[31:16]を、外部メモリ１３のD[15:0]に接続する。
【００５５】
また、時分割DSP１２のCLK，CKE，MQHは、それぞれ、外部メモリ１３のCLK，CKE，（DQMUおよびDQML）に接続する。一般に、SDRAMはデータ８ビット毎にマスクを制御するマスク線を有している。DQMU，DQMLは、それぞれ、１６ビットデータの上位ビット、下位ビットのマスク線である。ただし、ここでは、１６ビットを一括してマスクをするので、MQHをDQMU，DQMLの両者に接続している。
CLKは同期用のシンクロナスクロックの端子である。CKEはクロックイネーブル信号の端子であって、スタンバイモードにするときは低レベルにする。/CSは、チップセレクト端子であり、低レベルに固定する。
【００５６】
図１１は、図７に示した［モード１］のタイミングチャートである。
メモリチップが２バンク構成をとり、バンク毎にアクセス開始可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
また、２バースト・モードで動作させることにより、１つのアドレスを指定して、連続した２アドレス分のデータの読み書き可能である。これを利用して、この外部メモリ１３では、楽音波形データ１サンプル32ビットの記憶を、16ビットを２アドレスに分割して書き込むことにより実現している。
/CASレイテンシは２に設定しており、読み出しの場合に、SCLOCK（シンクロナスクロック）の２クロック後に読み出しデータが出力される。
原理的には、２バンクとも楽音波形データ１サンプル32ビットの記憶が可能であるが、以下に説明するように、一方は１サンプル16ビットの記憶となる。
【００５７】
バンク０（Area0）が選択されているときに、/RASの立下り期間にアドレスAddress(0-0)の行（Row）アドレスが読みとられ、/CASの立下り期間に列（Column）アドレスが読みとられる。なお、SDRAMでは、/RAS，/CAS，/WE，address等の各種信号をクロックの中央辺りのタイミングで取り込む。
読み出しデータは、SCLOCKの２クロック分遅れて、DQ(R)に示すように、最初に小さい側（Ｌ）のアドレスに記憶されたデータが読み出され、次に大きい側（Ｈ）のアドレスに記憶されたデータが読み出される。
時分割DSP１２側では、読み出し部４３において、area0Latchに示されるように、Data(0-0)のL，Hがラッチされる。
【００５８】
一方、バンク０（Area0）が選択されているときの書き込みの場合、/RASの立下り期間にアドレスAddress(0-0)の行（Row）アドレスが読みとられ、/CASの立下り期間に列（Column）アドレスCが読みとられる。
読み出し時に比べ、書き込み時に/CASの立下りエッジは、SCLOCKの１クロック分遅らされ、同時に、/WEを低レベルにする。書き込み時には、レイテンシが０であるので、DQ(W)に示すように、直ちに、小さい側（Ｌ）のアドレスに記憶するためのデータが書き込まれ、１SCLOCK後に、大きい側（Ｈ）のアドレスに記憶するためのデータが書き込まれる。
【００５９】
次に、バンク１(Area1）が選択されているときに書き込みを行う場合、/RASの立下り期間にアドレスAddress(1-0)の行（Row）アドレスが読みとられ、/CASの立下り期間にアドレスAddress(0-0)の列（Column）アドレスが読みとられ、同時に/WEを低レベルにする。
しかし、このとき、データ線には、DQ(R)に示すように、直前のアクセスの読み出しにおける、大きい側（Ｈ）のアドレスのデータが残っている。したがって、データ線に書き込みデータを出力できない。データ線は、読み出しと書き込みとで共用している。DQ(R)とDQ(W)とは、同じライン上の信号を便宜的に分けて表示しているにすぎない。
そこで、DQMに示すように、マスク信号を高レベルとして、書き込みデータのマスクをする。したがって、１SCLOCK後に、大きい側（Ｈ）のアドレスのデータのみを書き込む。
【００６０】
一方、バンク１(Area1）が選択されているときに読み出しを行う場合、読み出される大きい側（Ｈ）のアドレスのデータが、さらに次のアクセスにおけるバンク０（Area0）の書き込みと競合することになる。
しかし、上述した書き込みデータに対するマスクは、２SCLOCK後に読み出される大きい側（Ｈ）のアドレスのデータに対しても働くので、大きい側（Ｈ）のアドレスのデータが読み出されないので、実際には競合しない。
したがって、バンク１(Area1）を使用する時分割マイクロプログラムDSP1は、２バースト・モードであっても、１つのアドレスのデータしか読み書きできないために、楽音波形１サンプル16ビットデータの読み書きをすることになる。なお、書き込みは、大きい側（Ｈ）のアドレスに対して行われ、読み出しは小さい側（Ｌ）のアドレスに対して行われるので、外部メモリ１３へのデータの書き込み時と読み出し時とでは、アドレスを１だけずらせて指定する必要がある。
【００６１】
上述した説明とは別に、時分割マイクロプログラムDSP0もまたバンク０に対し、楽音波形データを１サンプル16ビットで記憶させたい場合がある。この場合、図示の例では、DQMに☆を付したタイミングでマスク信号を高レベルにする。そうすると、バンク１と同様、書き込みは大きい側（Ｈ）のアドレスに対して行われ、読み出しは小さい側（Ｌ）のアドレスに対して行われる。
【００６２】
ただし、バンク０に対する16ビット記憶のための上述したマスク☆は必須ではない。まず、読み出しに関しては、大きい側（Ｈ）のアドレスのデータまたは小さい側（Ｌ）のアドレスの一方を、時分割DSP１２側で読み込まなければよい。
書き込みに関しては、楽音波形データの書き込みを、サンプリング周期毎に１回書き込む際に、ベースカウンタが、アドレスを(-1)ずつずらせて指定するようにし、大きい側（Ｈ）のアドレスに対してデータを書き込めばよい。このベースカウンタは、図３に示した外部メモリアドレス発生部４５の内部にある。小さい側（Ｌ）のアドレスで、そのときのデータ線上にあるデータが書き込まれたとしても、次のサンプリング周期のデータの書き込みで上書きされるからである。一方、大きい側（Ｈ）のアドレスのデータは上書きされない。
【００６３】
１サンプル32ビットの読み書きを行う場合、あるサンプルアドレス（相対アドレスSAD）にアクセスしようとした場合、そのSADを２倍してメモリアドレス(MAD）として使用する。２バースト動作により、小さい側（Ｌ）のアドレスMADと大きい側（Ｈ）のアドレス（MAD＋１）の各16ビットのデータが読み書きされる。
一方、楽音波形データ１サンプル16ビットの読み書きを行う場合は、あるサンプルアドレスSADをアクセスしようとした場合、そのSADをそのままメモリアドレスMADとして使用すればよい。
【００６４】
時分割マイクロプログラムDSP0，DSP1のステップタイミングと、書き込み部４２、読み出し部４３，アクセス制御部４４，外部メモリアドレス発生部４５の動作タイミングの関係の、簡単な一具体例は次の通りである。
時分割マイクロプログラムDSP0およびDSP1は、図６の場合と同様に、マスタクロック２個分を１ステップとして、交互にステップを実行する。
図１１において、時分割マイクロプログラムDSP0は、マスタクロック第４，５番（図示欄外）におけるステップにおいて、Address（0-0）への書き込みまたは読み出しを、書き込み部４２または読み出し部４３，アクセス制御部４４，外部メモリアドレス発生部４５等に指示する。
【００６５】
外部メモリアドレス発生部４５は、マスタクロック第８〜第１３番において、Address（0-0）を出力する。アクセス制御部４４は、マスタクロック第８番において/RASを低レベルにする。
書き込みの場合、アクセス制御部４４はマスタクロック第１２，１３番において/CAS，/WEを低レベルにする。書き込み部４２は、マスタクロック第１２〜１７番で、DQ(W)に示す書き込みデータを出力する。
読み出しの場合、アクセス制御部４４は、マスタクロック第１０，１１番において/CASを低レベルにする。読み出し部４３は、マスタクロック第１５ないし１６番，第１７ないし１８番で、DQ(R)に示す読み出しデータData（0-0）をラッチし、第２０，２１番において、Area0 Latch上のData（0-0）16×2ビットをバスライン３５に出力する。
【００６６】
次の書き込みまたは読み出しは、最短でも、先のステップから３ステップ後の、マスタクロック第１６，１７番のステップにおいて、Address（0-1）への書き込みまたは読み出しを指示することになる。連続したメモリアクセスがない場合には、これ以降の３の倍数のステップとなる。
一方、時分割マイクロプログラムDSP1は、マスタクロック第１０，１１番における１ステップにおいて、Address（1-0）への書き込みまたは読み出しを指示する。次の書き込みまたは読み出しは、最短でも、先のステップから３ステップ後の、マスタクロック第２２，２３番の１ステップにおいて、Address（1-1）への書き込みまたは読み出しを指示することになる。
【００６７】
図８は、［モード２］における時分割DSP１２と外部メモリ１３との接続図である。
時分割DSP１２のデータビット幅を32ビットとし、これを２分割して、データビット幅16ビット、２バンク構成の２個のSDRAMを並列接続することにより、楽音波形データ１サンプル32ビットの読み書きができる。また、[モード１]とは異なる手法で、１サンプル16ビットのデータの読み書きにも対応する。
外部メモリ１３ａ，１３ｂは、ともに２バンク構成であり、バンク毎にアクセス可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
時分割マイクロプログラムDSP0，DSP1は、それぞれ、バンク０，バンク１を使用して、交互に読み書きを行う。２バースト動作ではあるが、１アドレス分のデータの読み書きしか行わない。
【００６８】
時分割DSP１２のRASN，CASN，WENは、それぞれ、外部メモリ１３ａ，１３ｂの/RAS，/CAS，/WEに接続する。64MbitのSDRAMを使用する場合、時分割DSP１２のA[13]，A[12]を、それぞれ、外部メモリ１３ａ，１３ｂのA[12]（BA1端子として機能する），A[13]（BA0端子として機能する）に接続する。A[11:0]は、外部メモリ１３ａ，１３ｂのA[11:0]に接続する。
ただし、A[10]は、オートプリチャージビットの端子として使用する。コラムアドレスには、A[7:0]のみを使用する。時分割DSP１２のD[31:16]を、外部メモリ１３ａのD[15:0]に接続し、時分割DSP１２のD[15:0]を、外部メモリ１３ｂのD[15:0]に接続する。
【００６９】
また、時分割DSP１２のCLK，CKEは、それぞれ、外部メモリ１３ａ，１３ｂのCLK，CKEに接続する。時分割DSP１２のMQHは、マスク信号の第１の端子であって、外部メモリ１３ａ側の上位ビットマスク端子DQMUおよび下位ビットマスク端子DQMLに接続する。時分割DSP１２のMQLは、マスク信号の第２の端子であって、外部メモリ１３ｂ側の上位ビットマスク端子DQMUおよび下位ビットマスク端子DQMLに接続する。32ビットアクセスの場合は、MQH＝MQLとして、外部メモリ１３ａ，１３ｂに対して、同じマスク信号を与える。
/CSは、チップセレクト端子であり、低レベルに固定する。
【００７０】
図１２は、図８に示した［モード２］のタイミングチャートである。
バンク０(Area0)において、/RASの立下り期間に行(Row）アドレスを読み込み、/CASの立下り期間に列（Column）アドレスを読み込む。書き込みの場合は、/WEを低レベルにすると同時に、DQMに示したマスク信号を高レベルにする。
その結果、バースト動作ではあっても、小さい側（Ｌ）のアドレスには書き込まれないで、１SCLOCK後に、大きい側（Ｈ）のアドレスに、16ビットデータ（外部メモリ１３ａ，１３ｂ合わせて32ビット）が書き込まれる。
【００７１】
一方、読み出しの場合、２レイテンシであるので、/CASの立下りから２SCLOCK後に、小さい側（Ｌ）のアドレスの16ビットデータData(0-0)が読み出され、時分割マイクロプログラムDSP0側において、Area0Latchに示したようにData(0-0)がラッチされる。
読み出し時には、DQMに示したマスク信号を、/CASの立下りから１SCLOCK後に高レベルにしているので、これから更に２SCLOCK後において読み出されるはずの、大きい側（Ｈ）のアドレスのデータは読み出されない。
次のバンク１(Area1)においても、同様なメモリ制御動作が行われ、読み出し時には、Area1 Latchに示したようにData(1-0)がラッチされる。
【００７２】
図８に示した接続構成で、16ビットアクセスも可能である。
時分割DSP１２からの第１，第２のマスク端子MQH，MQLから外部メモリ１３ａ，１３ｂに出力されるマスク信号を制御することにより、あるアドレスの下位16ビットのデータ領域に、先の16ビットサンプルを記憶させ、同じアドレスの上位16ビットのデータ領域に後の16ビットサンプルを記憶させることにより実現される。
あるサンプルアドレスSADをアクセスしようとした場合、その最下位ビット(LSB)がマスク信号として使用され、SADのうちのLSBを除くビットがメモリアドレスMADとして使用される。
【００７３】
すなわち、LSB＝0であれば、MQL＝1，MQH＝0として、上位16ビットがマスクされ、下位16ビットが外部メモリ１３ｂに読み出しまたは書き込みされる。LSB＝1であれば、MQL＝0，MQH＝1として、下位16ビットがマスクされ、上位16ビットが外部メモリ１３ａに読み出しまたは書き込みされる。
図１２を参照して説明すると、マスクされる側の外部メモリ１３ａまたは１３ｂにおいては、読み出し書き込みのいずれの場合でも、DQMにＷ，Ｒとして示された2SCLOCK期間にわたるマスク信号を高レベルにすればよい。
ただし、既に説明した［モード１］におけるバンク０の１６ビット記憶の場合と同様に、マスク信号を用いた制御は必須のものではない。
【００７４】
時分割マイクロプログラムDSP0，DSP1のステップタイミングと、書き込み部４２、読み出し部４３、アクセス制御部４４、外部メモリアドレス発生部４５の動作タイミングの関係の、簡単な一具体例は次の通りである。
時分割マイクロプログラムDSP0およびDSP1は、図６，図１１の場合とはマスタクロックの番号が１番ずれているが、同様に、マスタクロック２個分を１ステップとして、交互にステップを実行する。
図１２において、時分割マイクロプログラムDSP0は、マスタクロック第３，４番（図示欄外）におけるステップにおいて、書き込み部４２または読み出し部４３、アクセス制御部４４、外部メモリアドレス発生部４５等に対し、Address（0-0）への書き込みまたは読み出しを指示する。
【００７５】
アクセス制御部４４は、マスタクロック第７番において/RASを低レベルにし、マスタクロック第１１番において/CASを低レベルにする。外部メモリアドレス発生部４５は、マスタクロック第７〜第１２番において、Address（0-0）を出力する。
書き込みの場合に、アクセス制御部４４は、マスタクロック第１１，１２番において、DQMを高レベル、/WEを低レベルにする。書き込み部４２は、マスタクロック第１３〜１６番でDQ(W)に示す書き込みデータを出力する。
読み出しの場合に、アクセス制御部４４は、マスタクロック第１３，１４番において、DQMを高レベルにする。読み出し部４３は、マスタクロック第１６ないし１７番で、DQ(R)に示すデータ線上の読み出しデータData（0-0）をラッチし、第１９，２０番において、Area0 Latch上のData（0-0）をバスライン３５に出力する。
一方、時分割マイクロプログラムDSP1は、マスタクロック第９，１０番におけるステップにおいて、Address（1-0）への書き込みまたは読み出しを指示する。
【００７６】
図９は、［モード２］の第２の例における時分割DSP１２と外部メモリ１３との接続図である。外部メモリ１３として、データビット幅32ビット、２バンク構成のSDRAMを１個接続し、２バースト動作で、32ビットアクセスをする。
時分割DSP１２のRASN，CASN，WENは、それぞれ、外部メモリ１３の/RAS，/CAS，/WEに接続する。64MbitのSDRAMを使用する場合、時分割DSP１２のA[13]，A[12]を、それぞれ、外部メモリ１３のA[13]（BA1端子として機能する），A[12]（BA0端子として機能する）に接続する。A[10:0]は、外部メモリ１３ａ，１３ｂのA[10:0]に接続する。ただし、A[10]は、オートプリチャージビットの端子として使用する。列アドレスには、A[8:0]のみを使用する。
時分割DSP１２のD[31:0]は、外部メモリ１３のD[31:0]に接続する。
また、時分割DSP１２のCLK，CKEは、それぞれ、外部メモリ１３のCLK，CKEに接続する。時分割DSP１２のMQHはマスク信号の第１の端子であって、外部メモリ１３のDQM3およびDQM2に接続する。時分割DSP１２のMQLは、マスク信号の第２の端子であって、外部メモリ１３のDQM1，DQM0に接続する。
/CSは、チップセレクト端子であり、低レベルに固定する。
【００７７】
図８においては、外部メモリ１３側のデータビット幅を32ビットとするために、データバス幅16ビットのSDRAMを２個用いていたのは、この図９においては、SDRAMのデータビット幅を32ビットにしている。
したがって、メモリ制御動作は、図８と同様であるので、説明を省略する。ただし、外部メモリ１３のマスク線は、DQM3〜DQM0の４本となり、DQM3，DQM2が、図８の外部メモリ１３ａ側のDQMUおよびDQMLに対応し、DQM1，DQM0が、図８の外部メモリ１３b側のDQMUおよびDQMLに対応する。
したがって、図８と同様に、マスク信号を用いて、あるいは、マスク信号を用いないで１サンプル16ビットのメモリアクセスもできる。
【００７８】
図１０は、［モード３］における時分割DSP１２と外部メモリ１３との接続図である。外部メモリ１３として、データビット幅16ビット、２バンク構成のSD型FCRAM（Fast Cycle RAM）を接続し、２バースト・モードによって32ビットアクセスを実現している。16ビットアクセスも可能である。
SD型FCRAM（Fast Cycle RAM）は、高速動作が可能で/CASレイテンシが１で動作するSDRAMであるので、読み出しの遅れが１SCLOCKと少ない。したがって、タイミングに余裕ができている。
２バンク構成をとり、バンク毎にアクセス可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
【００７９】
時分割DSP１２のRASN，CASN，WENは、それぞれ、外部メモリ１３の/RAS，/CAS，/WEに接続する。16MbitのFCRAMを使用する場合、時分割DSP１２のA[12]を、外部メモリのA[11]（BA1端子として機能する）に接続する。BA1はバンクセレクト信号である。A[10:0]は、外部メモリ１３のA[10:0]に接続する。ただし、A[10]は、オートプリチャージビットの端子として使用する。列アドレスには、A[8:0]のみを使用する。時分割DSP１２のD[31:16]は、外部メモリ１３のD[15:0]に接続する。
また、時分割DSP１２のCLK，CKE，MQHは、それぞれ、外部メモリ１３のCLK，CKE，（DQMUおよびDQML）に接続する。/CSは、チップセレクト端子であり、低レベルに固定する。
【００８０】
図１３は、図１０に示した［モード３］のタイミングチャートである。
バンク０(Area0)において、/RASの立下り期間に行(Row）アドレスを読み込み、/CASの立下り期間に列（Column）アドレスを読み込む。読み出しの場合、列（Column）アドレスの入力と同時に/CASを立ち下げる。/CASレイテンシが１であるので、DQ(R)に示すように、１SCLOCK後に、小さい側（Ｌ）のアドレスのデータ16ビットが読み出され、さらに１SCLOCK後に、大きい側（Ｈ）のアドレスのデータ16ビットが読み出される。
【００８１】
時分割DSP１２において、Area Latchに示すように、32ビットのData(0-0)がラッチされる。書き込みの場合、列（Column）アドレスが入力された後、次のSCLOCKで/CASを立ち下げるとともに、/WEを低レベルにする。直ちに、時分割DSP１２から出力されたDQ(W)に示す小さい側（Ｌ）のアドレスのデータ16ビットが書き込まれ、次のSCLOCKで、大きい側（Ｈ）のアドレスのデータ16ビットが書き込まれる。
バンク１(Area1)においても同様の制御動作が行われ、時分割DSP１２は、バンク１(Area1)との間で、32ビットのサンプルデータを読み書きする。
【００８２】
図１０に示した接続で、１サンプル16ビットのメモリアクセスをするにはマスク信号を用いて、小さい側（Ｌ）のアドレスのデータ16ビットの読み書きをマスクする。
図１３において、読み出しのときには☆Ｒのタイミングで、書き込みのときには☆Ｗのタイミングで、DQMを高レベルにする。その結果、バースト・モードではあっても、小さい側（Ｌ）のアドレスには読み書きされないので、16ビットデータが書き込まれる。
１サンプル32ビットの読み書きを行う場合、または、１サンプル16ビットの読み書きを行う場合の、アドレス（SAD）とメモリアドレス(MAD）との関係、マスク信号が必ずしも必要でないことは、図７，図１１を参照して説明した［モード１］の場合と同様である。
【００８３】
時分割マイクロプログラムDSP0，DSP1のステップタイミングと、書き込み部４２、読み出し部４３、アクセス制御部４４、外部メモリアドレス発生部４５の動作タイミングの関係の、簡単な一具体例は次の通りである。
、時分割マイクロプログラムDSP0およびDSP1は、図６，図１１の場合と同様に、マスタクロック２個分を１ステップとして、交互にステップを実行する。
図１３において、時分割マイクロプログラムDSP0は、マスタクロック第４，５番（図示欄外）におけるステップにおいて、書き込み部４２または読み出し部４３、アクセス制御部４４、外部メモリアドレス発生部４５等に対し、Address（0-0）への書き込みまたは読み出しを指示する。
アクセス制御部４４は、マスタクロック第８番において/RASを低レベルにし、マスタクロック第１０番において/CASを低レベルにする。外部メモリアドレス発生部４５は、マスタクロック第８〜第１３番において、Address（0-0）を出力する。
【００８４】
書き込みの場合に、アクセス制御部４４は、マスタクロック第１２，１３番において、DQMを高レベル、/WEを低レベルにする。書き込み部４２は、マスタクロック第１２〜１７番でDQ(W)に示す書き込みデータを出力する。
読み出しの場合に、アクセス制御部４４は、マスタクロック第１０，１１番において、/CASを低レベルにする。読み出し部４３は、マスタクロック第１３ないし１４番，第１５ないし１６番で、DQ(R)に示すデータ線上の読み出しデータData（0-0）をラッチし、第２０，２１番において、Area0 Latch上のData（0-0）をバスライン３５に出力する。
一方、時分割マイクロプログラムDSP1は、マスタクロック第１０，１１番におけるステップにおいて、Address（1-0）への書き込みまたは読み出しを指示する。
【００８５】
以上で、モード０〜３の動作説明を終える。
上述した説明では、モード０は、EDO-DRAMを使用したが、FPM（Fast Page Mode）-DRAMでもよい。
モード１は、SDRAMを使用したが、モード３で使用したSDR型FCRAMでもよい。
また図７を参照して説明した１６ビットSDRAMの並列使用は、モード１でも動作可能である。これに対し、モード２の他の一例として図８に示した32ビットSDRAMでは、アクティブコマンドの次のクロックでリードコマンドを出してはいけないという制約のため、モード１では動作しない。
上述した説明では、SD型FCRAMは、モード３においてのみ使用したが、モード１、モード２（２タイプとも）においても使用することができる。ただし、メモリ容量に応じてアドレス線や制御線の接続を一部変更する必要がある。
なお、これ以外のDRAMであっても、基本動作が同様なものであれば、本発明の音波形データ用ディジタル信号処理装置の外部メモリとして用いることができる。
【００８６】
上述した時分割DSP１２は、モードを切り替え設定するだけで、外部メモリ１３として、EDO-DRAM、SDRAM、FCRAMといった種々のDRAMが使えるという多様性のある設計がなされている。その際、並列化したEDO-RAMの交互のメモリアクセスと、SDRAMの各バンクの交互のメモリアクセスとの、タイミング間隔がほぼ同じになるため、メモリアクセスのためのタイミング制御回路が簡単になっている。
【００８７】
上述した楽音波形に加えるエフェクトとして、大容量の遅延メモリを必要とするものとして、リバーブ（残響）、コーラス（原音のピッチを微妙にずらした音を原音に重ねて広がりを得る）、バリエーション（ディレイ、ロータリースピーカ、オートパン、アンプシミュレータ、オートワウなど）などがある。
また、大容量の遅延メモリを必要としないものとして、イコライザ（原音の周波数特性の補正）、ＨＰＦ（原音の基音や低い倍音をカットする）、ＬＰＦ（原音の高い倍音をカットする）、ハーモニ（原音と調和する音を原音に加える）、コンプレッサ（原音の小音量時に利得を上げ、大音量時に利得を下げて原音のダイナミック・レンジを圧縮する）などがある。
したがって、これらのエフェクトを同時に加える際に、大容量の遅延メモリを必要とするか、高精度の楽音波形データを遅延メモリに記憶させる必要があるか等を考慮して、マイクロプログラムを組めばよい。
【００８８】
上述した説明では、電子楽器の音源部で生成された楽音信号にエフェクトを加える場合について説明した。
しかし、本発明の音波形データ用ディジタル信号処理装置は、楽音波形データに限らず、音声などを含む任意の音波形データ用として使用できる。
例えば、カラオケ装置において、マイクロフォンから入力された音声信号に対して同様なエフェクトを加えるのに用いることができる。
オーディオアンプにおいて、入力された楽音信号や音声信号等のオーディオ信号に、ホールの臨場感を加えたり、音場再生をするのに用いることができる。
【００８９】
【発明の効果】
本発明は、上述した説明から明らかなように、音波形データの遅延用に大容量が得られるDRAMを用いても、プリチャージのための待機時間を実質的になくして、高速のメモリアクセスができるという効果がある。
【図面の簡単な説明】
【図１】  電子楽器のハードウエア構成図である。
【図２】  楽音波形データ用ディジタル信号処理装置と外部メモリとの間で行われる、楽音波形データの書き込み、読み出しを概念的に説明する説明図である。
【図３】  図１に示した時分割DSPの内部構成図である。
【図４】  時分割DSPのマイクロプログラム、I-RAM、および、外部メモリ・インターフェースの説明図である。
【図５】  ［モード０］における時分割DSPと外部メモリとの接続図である。
【図６】  図５（ａ）に示した［モード０］のタイミングチャートである。
【図７】  ［モード１］における時分割DSPと外部メモリとの接続図である。
【図８】  ［モード２］における時分割DSPと外部メモリとの接続図である。
【図９】  ［モード２］の第２の例における時分割DSPと外部メモリとの接続図である。
【図１０】  ［モード３］における時分割DSPと外部メモリとの接続図である。
【図１１】  図７に示した［モード１］のタイミングチャートである。
【図１２】  図８に示した［モード２］のタイミングチャートである。
【図１３】  図１０に示した［モード３］のタイミングチャートである。
【符号の説明】
１２…時分割DSP、１３，１３ａ，１３ｂ…外部メモリ、２１…楽音波形データ用ディジタル信号処理装置、２２…波形信号処理部、２３ａ，２３ｂ…スイッチ、２４，２４ａ，２４ｂ…DRAM
【図１】
0003855710.tif 000002
【図２】
0003855710.tif 000003
【図３】
0003855710.tif 000004
【図４】
0003855710.tif 000005
【図５】
0003855710.tif 000006
【図６】
0003855710.tif 000007
【図７】
0003855710.tif 000008
【図８】
0003855710.tif 000009
【図９】
0003855710.tif 000010
【図１０】
0003855710.tif 000011
【図１１】
0003855710.tif 000012
【図１２】
0003855710.tif 000013
【図１３】
0003855710.tif 000014