JP3855710B2 - 音波形データ用ディジタル信号処理装置 - Google Patents
音波形データ用ディジタル信号処理装置 Download PDFInfo
- Publication number
- JP3855710B2 JP3855710B2 JP2001300496A JP2001300496A JP3855710B2 JP 3855710 B2 JP3855710 B2 JP 3855710B2 JP 2001300496 A JP2001300496 A JP 2001300496A JP 2001300496 A JP2001300496 A JP 2001300496A JP 3855710 B2 JP3855710 B2 JP 3855710B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- division
- microprogram
- data
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、楽音波形や音声波形などの音波形にリバーブ(残響)などのエフェクト
(効果)を付与する場合などに、音波形データの遅延用にダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)を用いる音波形データ用ディジタル信号処理装置に関するものである。
【0002】
【従来の技術】
電子楽器において、楽音信号に種々のエフェクト
(効果)を付加するために、ディジタル信号処理装置(以下、DSP:Digital Signal Processorという)が用いられている。DSPは、画像信号や音声信号などのディジタル信号の処理に適したマイクロプロセッサであって、マイクロプログラムを用いて積和演算を高速処理する。
DSPでは、通常、マイクロプログラムによって、複数のエフェクトを同時に実行させる。しかし、実行させるエフェクトの中には、リバーブ(残響)など、楽音波形データを、1サンプリング周期に比べて十分長い時間にわたって遅延させるものがある。このような長時間の遅延を行うには、遅延時間に対応して大きな記憶容量を持つメモリが必要である。しかし、このような大容量メモリをDSPチップに内蔵させるのは効率的でない。
そこで、例えば、特開平10−198559号公報等で知られているように、DSPにメモリを外付けし、このメモリを、楽音波形データの長時間遅延用に用いるのが一般的である。DSPは、ベースカウンタの値をサンプリング周期毎に所定値ずつ減算することにより、外部メモリの読み出し、書き込みのためのメモリアドレスを発生している。
【0003】
楽音波形データを遅延させるためには、大容量のメモリを要するので、アクセス速度が遅いものの、DRAM(Dynamic Random Access Memory)を使用することになる。しかし、DSPの動作クロックは年々上昇し、処理速度が向上している。それに対応して、DRAMのアクセス速度を向上させることが望まれている。
DRAMには、当初のDRAMよりもページ・モードでのアクセスが速いEDO-DRAM(Extended Data Out DRAM)、同期型であってアクセスの安定度が増して高速なSDRAM(Synchronous DRAM)などがある。しかし、1アドレス単位のアクセスに関しては、プリチャージに要する時間のために、次のアクセスを行うまでに待機時間を要する。
【0004】
音波形データを遅延させるために外部メモリを使用する場合、通常、ページ・モードが使用できない。なぜなら、あるアドレスに1サンプルの音波形データを書き込んだとすると、この音波形データを遅延させて読み出すアドレスは、サンプリング周期単位で見ると、これより十分離れている。
また、遅延時間が異なる複数の音波形データを合成するときも、これらの音波形データを読み出す複数タップのアドレスは、互いに離れたものである。このような理由から、隣接するアドレスに連続してアクセスする場合がほとんどない。
したがって、1アドレス毎のアクセスに関して、次のアクセスを行うまでの待機時間の短縮が望まれている。
【0005】
そこで、DRAMを複数バンク構成として、各バンクをインターリーブ制御すれば、見かけ上、上述したプリチャージのための待機時間がなくなる。したがって、DSP側の波形信号処理をインターリーブ制御に適合させる必要がある。
また、複数バンク構成でインターリーブ制御できるSDRAMはあるが、このようなEDO-RAMは見あたらないという問題もある。
【0006】
【発明が解決しようとする課題】
本発明は、上述した問題点を解決するためになされたもので、音波形データの遅延用の外部メモリに複数バンク構成を有しないDRAMを使用しても、見かけ上、プリチャージのための待機時間をなくし、高速かつ容易にアクセスできる、時分割マイクロプログラムを用いた音波形データ用ディジタル信号処理装置を提供することを目的とするものである。
【0008】
【課題を解決するための手段】
本発明は、請求項1に記載の発明においては、波形信号処理部およびメモリアクセス部を有し、前記波形信号処理部は、音波形データにエフェクトを加えるための波形信号処理を、2個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、前記メモリアクセス部は、前記2個の時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされる2個のDRAMを、それぞれ、前記2個の時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を2分割した分割期間を、順次、前記2個の時分割マイクロプログラムに対応させて動作するものであり、前記2個の時分割マイクロプログラムの1つから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該時分割マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するDRAMに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するDRAMに対し、前記音波形データの書き込みまたは読み出しを行うものである。
したがって、1つのダイナミックランダムアクセスメモリが次のアクセス開始までに必要とするプリチャージを、別のダイナミックランダムアクセスメモリにアクセスする時間に行うことができる。したがって、見かけ上、プリチャージに必要な待機時間をなくすことができる。その際、それぞれの時分割マイクロプログラムは、対応するダイナミックランダムアクセスメモリに読み出しまたは書き込みを行えばよいので、ダイナミックランダムアクセスメモリへのアクセス制御が効率的かつ容易となる。
【0009】
請求項2に記載の発明においては、波形信号処理部およびメモリアクセス部を有し、 前記波形信号処理部は、音波形データにエフェクトを加えるための波形信号処理を、2個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、前記メモリアクセス部は、前記2個の時分割マイクロプログラム中、1つの時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされるDRAMを、前記1つの時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を2分割した分割期間を、順次、前記2個の時分割マイクロプログラムに対応させて動作するものであり、前記1つの時分割マイクロプログラムから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するDRAMに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するDRAMに対し、前記音波形データの書き込みまたは読み出しを行うものである。
したがって、ダイナミックランダムアクセスメモリへのアクセスは、次のアクセスまでに必要なプリチャージのために待つ必要がある。しかし、上述した1つの時分割マイクロプログラムから見れば、請求項1に記載の発明の場合と同じアクセス速度が得られているから、ダイナミックランダムアクセスメモリへのアクセス制御が効率的に行われている。
【0010】
なお、上述した請求項1,2において、1つの時分割された波形信号処理において実行する波形信号処理は1つに限られない。1つの時分割波形信号処理の過程で、複数の異なる波形信号処理を順次実行してもよい。
また、音波形データ用ディジタル信号処理装置は、上述した2個を超える数の時分割処理を実行してもよい。この場合、上述した2個の時分割処理期間以外の残りの時分割処理期間において、音波形データにエフェクトを加えるための波形信号処理以外の信号処理を実行することができる。
【0011】
【発明の実施の形態】
最初に、本発明の音波形データ用ディジタル信号処理装置が使用される電子楽器のハードウエア構成を説明する。
図1は、電子楽器のハードウエア構成図である。
図中、1はCPU、2はROM、3はRAM、4はバスライン、5はタイマである。
CPU1は、バスライン4に接続されたハードウエアを使用し、ROM3に記憶されたプログラムおよびデータを用いて、RAM4をワーキングエリアとして実行することにより、電子楽器全体の制御をする。また、入力された演奏データや楽曲データに基づいて、音源部9,ミキサ10,時分割DSP12に出力する楽音制御パラメータを生成したり、外部装置に演奏データを出力したりする。
ROM2には、自動演奏用の楽曲データが格納される場合もある。
タイマ5は、CPU1の動作クロックやプログラムのタイマ割り込み処理のために割り込み信号を生成してCPU1に出力する。
【0012】
6は操作子であって、鍵盤やペダルなどの演奏用の操作子、電子楽器のパネル上に設けられた、音色設定,エフェクトなどの設定操作子、自動演奏の制御を行う操作子などである。7は表示器であって、電子楽器への設定入力画面、設定内容、および、動作状態などを表示する。
8は通信インターフェースであって、外部MIDI機器との間のMIDIデータの入出力、およびまたは、LANや公衆通信網などの通信ネットワークを介して、サーバやパーソナルコンピュータとの間で演奏データのダウンロードやストリーミング再生などを行うためのインターフェースである。
【0013】
9は音源部であって、楽音制御パラメータを入力して楽音信号を生成する。波形メモリ音源方式の音源では、波形メモリを有し、この波形メモリから指定された音色の楽音波形を読み出し、ピッチ制御やエンベロープ制御をして楽音信号を生成する。通常、複数の発音チャンネルを有しており、複数のパートの楽音信号が生成される。
10はミキサ、11は波形I/O、12は時分割DSP、13は外部メモリ、14はDAC、15はサウンドシステムである。
ミキサ10は、音源部9から出力される複数パートの楽音信号を入力するとともに、時分割DSP12や波形I/O11から加工された楽音信号を入力して合成し、DAC14に出力する。同時に、波形I/O11および時分割DSP12に対して楽音信号を出力する。ミキサ10は、CPU1によって、ミキサ10への入力およびミキサ10からの出力の選択、合成比、出力音量レベルなどを制御する。
【0014】
波形I/O11は、この電子楽器に外付けされた効果付与装置(エフェクタ)に楽音信号を出力し、効果付与装置の出力をミキサ10に戻す。
時分割DSP12は、合成された楽音信号を処理してミキサ10に戻す。
波形I/O11および時分割DSP12は、合成後の楽音信号を入力する場合に限らず、特定のパートの楽音信号を選択して、パート毎に異なるエフェクトを付与することが可能である。
【0015】
時分割DSP12は、楽音波形データの1サンプリング周期(例えば、48kHz)の間に、全ステップが1回実行されるマイクロプログラムによって波形信号処理を行う。時分割処理によって、実質的に複数の時分割マイクロプログラムが、上述した1サンプリング周期において、それぞれ全ステップを1回実行する。
この時分割DSP12には、主として楽音波形データを遅延させるために用いるための外部メモリ13が外付けされる。時分割DSP12の処理の態様はCPU1によって制御される。
ミキサ10から最終的に出力される楽音信号の合成信号は、DAC14でアナログ信号に変換され、サウンドシステム15に出力されて、スピーカなどから放音される。
【0016】
以下に説明する具体例では、時分割数を2とし、2つの時分割マイクロプログラムが1ステップを実行するごとに、他の時分割マイクロプログラムの1ステップに切り替える。また、外部メモリ13には、この3ステップに1回のステップでアクセスが可能である。
しかし、時分割数は3以上であってもよい。また、時分割処理の一部の処理では、エフェクト付加とは異なる目的の波形信号処理を行ってもよい。
【0017】
また、1つの時分割マイクロプログラムによって実行される波形信号処理において、付与されるエフェクトは1つに限らない。同一または異なる種類の複数のエフェクトの付与が可能である。
以下に示す例では、個々の時分割マイクロプログラムが、マルチブロック構成となっており、各ブロックが、個別のエフェクトアルゴリズムを実行する。
一部のエフェクトのみを停止させたり、一部のエフェクトを別のエフェクトに置き換えるために、ブロック毎に、マイクロプログラムの処理を停止させたり、他のマイクロプログラムに置き換えることができる。
【0018】
図2は、楽音波形データ用ディジタル信号処理装置と外部メモリとの間で行われる、楽音波形データの書き込み、読み出しを概念的に説明する説明図である。
図中、21は楽音波形データにエフェクトを与えるための楽音波形データ用ディジタル信号処理装置であって、波形信号処理部22と、スイッチ23a,23bで概念的に示すメモリアクセス部、を有する。波形信号処理部22は、時分割波形信号処理部22a,22bを有する場合がある。
24,24a,24bは外部メモリとしてのDRAMである。独立した2個のDRAMである場合のほか、1個のDRAMの内部に設けられた2個のバンクである場合がある。なお、従来、2バンク構成のSDRAMはあったが、2バンク構成のEDO-DRAMは知られていない。
図中、スイッチ23a,23bを介して、波形信号処理部22とDRAM24a,24b間を接続している線は、波形信号処理部22から書き込みまたは読み出しの要求を受けて出力される、アクセスのための制御信号の出力線を表している。スイッチ23a,23bの状態は、アクセス開始可能なタイミングにあるか否かを表している。実際には、スイッチ23a,23bは楽音波形データ用ディジタル信号処理装置21内に存在しない。アクセスのための制御信号は、実際には制御線上の信号レベル変化等によって表される。
また、実際には、楽音波形データ用ディジタル信号処理装置21とDRAM24a,24b間に、データ線、アドレス線が接続されているが、この図では省略している。
【0019】
図2(a)において、楽音波形データ用ディジタル信号処理装置21は、波形信号処理部22を有し、波形信号処理の過程において楽音波形データを遅延させるため外部メモリとして2個のDRAM24a,24bを並列使用する。
スイッチ23a,23bは、外付けされるDRAM24a,24bに対し、相互に所定時間ずれたタイミングでアクセス開始を可能とする。ただし、DRAM24a,24bを択一的にアクセス状態にするのではなく、アクセスの開始タイミングをずらせて並列的にアクセス状態にする。
【0020】
波形信号処理部22が、書き込みまたは読み出し要求をしたときに、スイッチ23a,23bは、波形信号処理部22および2個のDRAM24a,24bのうち、アクセス開始が可能なタイミングにあるDRAM24aまたはDRAM24bに対して、楽音波形データの書き込みまたは読み出しを行う。
例えば、1つのDRAM24aがアクセス中のときに、波形信号処理部22が書き込みまたは読み出し要求をしたときに、別のDRAM24bがアクセスを開始できる。 DRAM24aがアクセスを終了してから次のアクセスまでに必要なプリチャージは、別のDRAM24bのアクセス中に行われるので、波形信号処理部22は、プリチャージのためにアクセス開始を待つ必要がない。
【0021】
図2(b),図2(c)は、図2(a)に示した波形信号処理部22が、時分割処理により、交互に2つの波形信号処理を切り替えることによって、等価的に時分割波形信号処理部22a,22bを有する場合である。
図2(b)において、時分割波形信号処理部22a,22bは、それぞれの波形信号処理過程において、楽音波形データを遅延させるために、時分割波形信号処理部22a,22bに対応させて外付けされるDRAM24a,24bを使用する。スイッチ23a,23bは、DRAM24a,24bに対し、相互に所定時間ずれたタイミングでアクセス開始を可能とする。
【0022】
例えば、時分割波形信号処理部22aが書き込みまたは読み出し要求をしたときに、スイッチ23aは、対応するDRAM24aがアクセス開始可能なタイミングで、楽音波形データの書き込みまたは読み出しを行わせる。時分割波形信号処理部22aからDRAM24aへのアクセスが開始すれば、所定時間ずれて、別の時分割波形信号処理部22bからDRAM24bへのアクセス開始が可能となる。
DRAM24aがアクセスを終了してから次のアクセスまでに必要なプリチャージは、別の時分割波形信号処理部22bがDRAM24bへのアクセス中に行うことができる。その結果、時分割波形信号処理部22aは、プリチャージのためにアクセス開始を待つ必要がない。
その際、時分割波形信号処理部22a,22bは、対応するDRAM24a,24bと読み出しまたは書き込みを行えばよいので、波形信号処理部22は、効率よく、かつ容易に、DRAM24a,24bにアクセスできる。
【0023】
図2(c)においても、波形信号処理部22は、等価的に2個の時分割波形信号処理部22a,22bを有する。
時分割波形信号処理部22aは、波形信号処理過程において楽音波形データを遅延させるために、DRAM24aを使用する。
スイッチ23aは、DRAM24aに対し、所定のタイミングでアクセス開始を可能とする。時分割波形信号処理部22aが書き込みまたは読み出し要求をしたときに、スイッチ23aは、DRAM24aがアクセス開始可能なタイミングで、楽音波形データの書き込みまたは読み出しを行わせる。DRAM24aへのアクセスは、次のアクセスまでに必要なプリチャージのために待つ必要がある。
【0024】
したがって、波形信号処理部22として見れば、図2(b)に比べて、アクセス速度が低下している。しかし、時分割波形信号処理部22aとしては、図2(b)と全く同じアクセス速度が得られている。
その結果、時分割波形信号処理部22aは、効率よくDRAM24aにアクセスすることができる。
時分割波形信号処理部22bは、DRAM24aにアクセスできないが、音波形データの長時間の遅延を必要としないエフェクトの波形信号処理を行うようにすればよい。
【0025】
上述した図2(a)では、DRAMの個数を2個として、2個の互いにずれたタイミングでアクセス開始を可能としている。一般的には、DRAMの個数を2以上のK個としてK個の相互に所定時間ずれたタイミングでアクセス開始を可能とすることができる。
上述した図2(b)では、波形信号処理部22の時分割数を2としているが、一般的には、2以上のM個とすることができる。このMの値以下のK個の時分割波形信号処理部に応じてDRAMをK個として、K個の相互に所定時間ずれたタイミングでアクセス開始を可能としてもよい。
K個を除く残りの時分割波形信号処理部は、図2(c)の時分割波形信号処理部22bと同様に、DRAMにアクセスできないが、音波形データの長時間の遅延を必要としない波形信号処理を行うようにすればよい。
上述した図2(c)でも、波形信号処理部22の時分割数を、一般的には、2以上のM個にすることができる。
【0026】
図2を参照した説明では、時分割波形信号処理部22a,22bはマイクロプログラムの1ステップ毎にDRAMにアクセスできるものとして説明した。しかし、時分割の切り替えタイミングは、メモリにアクセス開始可能なタイミングの切り替えよりも速くできる。
以下に示す具体的な動作例では、3倍の速度にしている。その結果、時分割波形信号処理部22a,22bは、最短でも3ステップに1回しか、メモリにアクセス開始することができない。しかし、楽音波形データにエフェクトを付与するための波形信号処理では、連続するステップで外部メモリにアクセスすることは必ずしも要しないからさほど問題はない。
【0027】
また、エフェクトを加えるための波形信号処理の時分割数をM個とした場合、このM個を超える数の時分割信号処理を実行してもよい。例えば、分割数4個の時分割信号処理を行い、そのうち、第1,第3の時分割波形信号処理で、エフェクトを加えるための波形信号処理を行い、残りの第2,第3の時分割波形信号処理で、それ以外の信号処理、例えば、楽音波形のピッチ検出のためのにゼロクロス検出などの処理を行う。
【0028】
以下、楽音波形データ用ディジタル信号処理装置の内部構成、および、外部メモリとの間のメモリアクセス動作について具体的に説明する。
図3は、図1に示した時分割DSP12の内部構成図である。
図中、31は演算部であり、複数のセレクタ、乗算器、加算器を有している。32はI-RAM、33はT-RAM(テンポラリRAM)、34はY-RAMであり、演算部31に入力されるデータのレジスタ部を構成する。35はバスラインであり、演算部31の演算結果が出力される。
I-RAM32には、LFO(低周波発振器)36,EG(エンベロープ発生器)37,I/O38(入出力部)の各出力、および、バスライン35のデータが入力され、図4を参照して後述するように、それぞれに対応した領域に一時記憶される。また、I-RAM32は、一時記憶したデータを演算部31またはI/O38に出力する。
【0029】
LFO(低周波発振器)36は、低周波発振波形を演算で生成する。ビブラートやトレモロのエフェクトを加えるために用いる。
EG(エンベロープ発生器)37は、エンベロープ波形を演算で生成する。時分割DSP12を楽音波形発生器として使用するときに用いる。
I/O38は、図1に示したミキサ10との間で双方向にデータ転送を行う。
LFO36,EG37,I/O38は、いずれも、32チャンネルを有する。
一方、T-RAM33,Y-RAM34は、バスライン35上に出力される、演算部31の出力データあるいは、外部メモリ13から遅延して読みだされた楽音波形データを一時記憶する。
【0030】
演算部31には、また、係数発生部39の出力も入力される。係数発生部39は、係数RAM40に記憶されている係数に補間演算を行う。この係数は、係数RAM40において、マイクロプログラムの各ステップに対応して記憶されている。
なお、その他(LFO,EG)のレジスタ41には、LFO(低周波発振器)36において使用する、例えば、周波数、振幅、波形形状の制御パラメータの値や、EG(エンベロープ発生器)37において使用する、例えば、スタートフラグ、アタックタイム、アタックレートなどの値がチャンネル毎に記憶されている。
演算部31は、内部に設けられた複数のセレクタによって、例えば、係数発生部39またはY-RAM34の一方の出力値と、I-RAM32またはT-RAM33の一方の出力値とを乗算し、この積に、I-RAM32またはT-RAM33の一方の出力値を加算するといった演算を行う。この演算部31内のハードウエアは、マイクロプログラムの1ステップよりも高速で動作する。
【0031】
42は書き込み部であって、バスライン35上のデータを、データ線を経由して外部メモリ13へ書き込む。
43は読み出し部であって、外部メモリ13から読み出されたデータを、データ線を経由して読み出し、バスライン35上に出力する。
44はアクセス制御部であって、外部メモリ13にアクセスするために、各種の制御信号を所定のタイミングで制御線を経由して外部メモリに出力する。
データ線は入出力共用であり、アクセス制御部44から出力される、/WEN(ライトイネーブル)信号によって、書き込みと読み出しとを切り替える。
【0032】
演算部31では楽音波形データを32ビット精度で演算する。しかし、外部メモリ13に記憶させるときには、楽音波形データを、32ビット精度、または、16ビット精度浮動小数点で記憶させる。したがって、16ビット精度浮動小数点で書き込みをするとき、あるいは、読み出しをするときには、それぞれ、書き込み部42および読み出し部43で符号変換を行う。
45は外部メモリアドレス発生部、46は外部メモリアクセスAD(アドレス)レジスタ、47は外部メモリB(ブロック)情報レジスタである。
外部メモリアクセスAD(アドレス)レジスタ46は、マイクロプログラム中で外部メモリ13にアクセス可能なステップに対応する記憶エリアに、各ステップでアクセスする際のアドレスを記憶している。
【0033】
外部メモリ13は、マイクロプログラム中の後述する各ブロック毎に、そのブロックが使用する領域が割り当てられている。外部メモリB(ブロック)情報レジスタ47は、外部メモリ13におけるマイクロプログラムの各ブロックが使用する領域の先頭アドレスおよびブロックサイズを格納している。
外部メモリアドレス発生部45は、ベースカウンタを内部に備え、外部メモリアクセスAD(アドレス)レジスタ46から出力されるアドレスと、外部メモリB(ブロック)情報レジスタ47から出力される先頭アドレスおよびブロックサイズを用いて、列(Raw)アドレスおよびコラム(Column)アドレスからなるメモリ用アドレスを演算し、アドレス線に出力する。
ベースカウンタの値は、楽音波形データを16ビットで記憶させる場合には、サンプリング周期毎に(-1)され、32ビットで記憶させる場合には、サンプリング周期毎に(-2)される。
外部メモリアドレス発生部45は、また、バスライン35を介して入力されたデータで、外部メモリアクセスAD(アドレス)レジスタ46から出力されるアドレスを変調することができる。
【0034】
上述した時分割DSP12は、マイクロプログラムレジスタ49に記憶されたマイクロプログラムで制御される。先頭ステップレジスタ50は、マイクロプログラムの後述する複数ブロックのそれぞれの先頭ステップ番号を記憶している。マイクロプログラム読み出し部48は、1サンプリング周期の間に、複数の時分割マイクロプログラムそれぞれの全ステップを1回実行し、その各ステップにおいて、当該ステップのステップ番号と先頭ステップレジスタ50の記憶する先頭ステップ番号に基づいて現在実行中のブロックのブロック番号を出力するとともに、当該ステップのマイクロコードに基づいて制御信号を出力し、これらによって、演算部31,I-RAM32、T-RAM33,Y-RAM34などのレジスタ、外部メモリアドレス発生部45などを制御することによって、複数のエフェクトのための演算を実行する。
【0035】
図4は、時分割DSP12のマイクロプログラム、I-RAM32、および、外部メモリ・インターフェースの説明図である。
図4(a)は時分割マイクロプログラムDSP0,DSP1のプログラム構成の説明図、図4(b)はI-RAM32のメモリ構造の説明図、図4(c)は外部メモリ・インターフェース関係の端子説明図である。
図3に示した時分割DSP12は、ハードウエア的には1個であるが、ステップ単位で交互に切り替えて動作させるという時分割動作により、機能的には2つの独立したマイクロプログラムとして動作するようにしている。
【0036】
図4(a)に示すように、各時分割マイクロプログラムDSP0,DSP1は、さらに、マルチブロック動作を行うことにより、同一または異なる種類の複数のエフェクトを同時に実行可能である。
マルチブロック動作とは、全512ステップを複数ブロック(エフェクタブロック、例えば、最大16ブロック、3ステップ単位)に分けて、各ブロック毎に独立したエフェクトアルゴリズムを実行する。1サンプリング周期中に全ステップを実行することにより、1サンプリング周期(48kHz)中に、各エフェクトアルゴリズムのステップを1回実行する。
【0037】
図4(b)に示すように、上述したプログラム構成に対応して、I-RAM32のメモリ構造は例えば、次のようになる。
共通アクセス領域Aは、各時分割マイクロプログラムDSP0,DSP1に専用の領域が独立して設けられ、それぞれ16ワードある。複数のブロックに共通の領域である。
共通アクセス領域Bは、16ワードの領域が2つあるが、各領域をアクセスする時分割マイクロプログラムDSP0,DSP1が、サンプリング周期毎に交代する。すなわち、あるサンプリング周期では、DSP0が片方の領域、DSP1がもう一方の領域をアクセスし、次のサンプリング周期では、DSP1が該片方の領域、DSP0がもう一方の領域をアクセスする。この領域を使用して、時分割マイクロプログラムDSP0とDSP1との間でデータ転送も行える。
【0038】
I/O領域は、I/O部38への書き込みと読み出しとを行う領域、LFO領域、EG領域は、LFO部36,EG部37からの読み出しを行う領域であって、いずれも32チャンネルあり、いずれかのブロックに割り当てられる。
個別アクセス領域は、例えば128ワードあって、この領域をブロック分割して、各ブロックに割り当てられる。各ブロックでは、割り当てられた領域をそのブロックの専用領域として使用できる。その結果、他のブロックにより書き換えられることはない。
上述した共通アクセス領域A,B、および、個別アクセス領域は、時分割マイクロプログラムDSP0,DSP1が異なる領域をアクセスできるように、それぞれ2個の領域を有している。また、I/O領域は、I/O部38への出力を行うための書き込み領域と、I/O部38からの入力を行うための読み出し領域の2つの領域を有している。
【0039】
図示を省略したが、T-RAM(テンポラリRAM)33については、I-RAM32と同様に、共通アクセス領域A、共通アクセス領域B、および、個別アクセス領域からなるが、I/O領域,LFO領域,EG領域はない。記憶データ量は大きく、I-RAM32の2倍程度としている。
Y-RAM34は、共通アクセス領域Aおよび個別アクセス領域からなる。演算に使用する係数を一時保存するものであるので、記憶データ量は少なくてよい。
信号処理過程において、楽音波形データを短時間遅延させるのであれば、上述した、I-RAM32やT-RAM33を用いて実現できるが、長時間にわたる遅延は、外部メモリ13に書き込んで読み出しを行うことにより実現する。
【0040】
次に、図4(c)を参照して、外部メモリ13へのインターフェースについて説明する。
時分割マイクロプログラムDSP0,DSP1は、3ステップ毎、すなわち、各512ステップ中、第0ステップおよび3の倍数の番号のステップにおいて、外部メモリ13にアクセス可能なように設計されている。
外部メモリ13に対するアクセスモードとして、外部メモリ13に使用するDRAMの種類に応じて、複数のモードがあり、使用時に設定される。外部メモリ13は、楽音波形データを1サンプル16ビット精度(浮動小数点)または32ビット精度で記憶可能である。しかし、外部メモリ13の種類およびモードによっては、16ビット精度(浮動小数点)に制限される場合がある。
接続端子の機能は、時分割DSPの動作モードによって、異なる機能に設定されたり、使用されない場合がある。
【0041】
RASNはRaw(行)アドレス取り込み用信号の出力端子である。CASNはColumn(列)アドレス取り込み用信号の出力端子である。いずれも立下りエッジで取り込みをする。/WEN(ライトイネーブル)は、書き込み読み出しの切り替え制御信号の出力端子であって、低レベルが書き込みを意味する。
A[13:0]は、アドレス線13〜0の出力端子である。2個のEDO-DRAMを使用するときには、1個目の/OE(アウトプットイネーブル)端子をA[12]に接続し、2個目の/OE端子をA[13]に接続する。
D[31:0]は、データ線31〜0のデータ入出力端子である。16ビット幅で使用するときには、データ線15〜0だけを用いる。
【0042】
CLKは、SDRAM用のシンクロナスクロック、CKEはクロックイネーブル出力端子である。時分割DSPをスタンバイモードにするときには、CKEを低レベルにする。MQH,MQLはSDRAM用のマスク信号出力端子であって、外部メモリ13との間のデータ線が16ビットのときにはMQHのみが使用され、外部メモリとの間のデータ線が32ビットのときには、MQHが上位16ビットのマスクとして、MQLは下位16ビットのマスクとして使用する。
EDO-DRAMを2個使用する場合、CKEを2個目のEDO-DRAMのRASとし、MQHを2個目のEDO-DRAMのCASとし、MQLを2個目のEDO-DRAMのWENとして使用する。
【0043】
時分割DSP12は、図3のレジスタ群中に動作モードレジスタ(図示せず)を有しており、CPU1が動作モードレジスタに動作モードを書き込むことにより、動作モードが設定される。
以後、時分割DSP12の動作モード別に、時分割DSP12と外部メモリ13として使用される各種のDRAMとのデータ転送動作について説明し、DRAMのアクセスを高速化する具体例を説明する。
図5は、[モード0]における時分割DSP12と外部メモリ13との接続図である。
図5(a)はEDO-RAMを2個(R0,R1)接続する場合、図5(b)はEDO-DRAMを1個(R0)接続する場合の接続図である。
図6は、図5(a)に示した[モード0]のタイミングチャートである。アクセスが最短のタイミングで連続して行われる場合について、書き込みと読み出しの場合を合わせて示している。
【0044】
図5(a)において、外部メモリを2個使用する。それぞれの外部メモリ13a,13bをEDO-DRAM(R0),EDO-DRAM(R1)とする。時分割DSP12のRASN,CASN,WENは、それぞれ、外部メモリ13aの/RAS,/CAS,/WEに接続する。時分割DSP12のA[12]は、外部メモリ13aの/OEに接続する。
16Mbitのメモリを使用する場合、時分割DSP12のA[9:0]を、外部メモリ13a,13bのA[9:0]に接続する。データ線は16ビットであり、時分割DSP12のD[31:16]を、外部メモリ13a,13bのD[15:0]に接続する。
時分割DSP12のCKE,MQH,MQL,A[13]は、外部メモリ13bに対し、時分割マイクロプログラムDSP0用のRASN,CASN,WEN,A[12]と同等の信号を、時分割マイクロプログラムDSP1用に出力する。したがって、それそれの信号を出力する端子は、外部メモリ13bの/RAS,/CAS,/WE,/OEの端子に接続する。
アドレスバスA[9:0]およびデータバスD[31:16]は、時分割マイクロプログラムDSP0,DSP1に対して共用される。
【0045】
図6において、/R0RASの立ち下りエッジで、アドレスAddress(0-0)のRowアドレスが読み込まれ、次に、/R0CASの立ち下りエッジで、Columnアドレスが読み込まれる。
読み出しのときには、/R0OEが低レベルで、/R0WEが高レベルであり、/R0CASが低レベルのときに、DQ(R)に示されるデータData(0-0)が読み出される。
なお、データData(0-0)の出力開始タイミングおよび出力終了タイミングは、EDO-RAMの品種によって大きく異なるので、図6では、複数の立上り、立下りが示されている。データData(0-0)は、時分割DSP12側の読み出し部43においてArea0Latchに示されるデータData(0-0)のようにラッチされる。
一方、書き込みのときには、時分割DSP12側の書き込み部42において、/R0OEを高レベルにした上で、DQ(W)に示される書き込みデータを/R0WEが低レベルにあるときに書き込ませる。
【0046】
次回の読み出しまたは書き込みのタイミングは、/R0RASが高レベルに戻った後、/R0RASのプリチャージ・タイムtRPCが所定時間以上(例えば30nsec以上)でなければアクセスできない。したがって、次のアクセスのアドレスaddress(0-1)は、最短でもマスタクロックタイムの第20番まで遅らされる。
したがって、この/R0RASのプリチャージ・タイムtRPCの制約のために、外部メモリ13aの同じEDO-RAM(RO)を使用する限り、約1.5倍程度までしか高速化できず、また、ぎりぎりで動作させる場合は、不具合が起こりがちである。
【0047】
しかし、時分割DSP12側から、外部メモリ13bの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の制約を、見かけ上逃れることができる。その結果、時分割DSP12のメモリアクセスとしては、2倍の速さでメモリアクセスが実現できる。
【0048】
ここで、時分割マイクロプログラムDSP0,DSP1のステップタイミングと、書き込み部42、読み出し部43、アクセス制御部44,外部メモリアドレス発生部45の動作タイミングの関係を、簡単な一具体例をもって説明しておく。
図6において、時分割マイクロプログラムDSP0は、マスタクロック第8,9番、第12,13番、第16,17番、第20,21番、・・・のそれぞれにおいて1ステップを実行する。一方、時分割マイクロプログラムDSP1は、マスタクロック第6,7番、第10,11番、第14,15番、第18,19番、・・・のそれぞれにおいて1ステップを実行する。
【0049】
時分割マイクロプログラムDSP0は、マスタクロック第4,5番(図示欄外)のステップにおいて、Address(0-0)への書き込みまたは読み出しを、書き込み部42または読み出し部43,アクセス制御部44,外部メモリアドレス発生部45等に指示する。外部メモリアドレス発生部45は、マスタクロック第8〜13番において、Address(0-0)を出力する。アクセス制御部44は、マスタクロック第9番において/R0RASを低レベルにし、マスタクロック第12番において/ROCASを低レベルにする。
【0050】
書き込みの場合は、アクセス制御部44は、マスタクロック第8〜19番において/R0OEを低レベルにし、マスタクロック第14〜17番で、/ROWEを高レベルにする。書き込み部42は、マスタクロック第13〜18番で、DQ(W)に示す書き込みデータをデータ線に出力する。
読み出しの場合は、アクセス制御部44は、マスタクロック第8〜19番において/R0OEを低レベルにする。読み出し部43は、マスタクロック第17番で、データ線上のDQ(R)に示す読み出しデータData(0-0)をラッチし、第20,21番において、Area0 Latch上のData(0-0)をバスライン35に出力する。
【0051】
次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第16,17番の1ステップにおいて、時分割マイクロプログラムDSP0が、Address(0-1)への書き込みまたは読み出しを指示することになる。連続したメモリアクセスがない場合には、これ以降のステップで行われることになるが、必ず3の倍数のステップとされる。
一方、時分割マイクロプログラムDSP1は、マスタクロック第10,11番における1ステップにおいて、Address(1-0)への書き込みまたは読み出しを指示する。次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第22,23番の1ステップにおいて、Address(1-1)への書き込みまたは読み出しを指示することになる。
【0052】
図5(b)においては、時分割DSP12のRASN,CASN,WEN,A[12],A[9:0],D[31:16]、は、図5(a)と同様に外部メモリ13の端子に接続する。時分割DSP12のDSP1は、外部メモリ13にアクセスしない。
したがって、図6に示すタイミングチャートにおいて、時分割マイクロプログラムDSP0とEDO-DRAM(R0)との間の、アドレスAddress(0-0)、Address(0-1)に対する書き込みまたは読み出しだけが可能となる。
その結果、プリチャージに必要な待機時間は存在するが、図5(a)の場合と同じアクセスができる。
【0053】
次に、外部メモリ13としてSDRAMを用いた場合のメモリアクセスを、図7〜図9、図11、および、図12を参照して説明する。
図7は、[モード1]における時分割DSP12と外部メモリ13との接続図である。外部メモリ13として、データビット幅16ビット、2バンク構成のSDRAMを1個接続し、2バースト動作で、時分割マイクロプログラムDSP0が32ビットアクセス、時分割マイクロプログラムDSP1が16ビットアクセスをする。あるいは、ともに16ビットアクセスをする。
【0054】
時分割DSP12のRASN,CASN,WENは、それぞれ、外部メモリ13の/RAS,/CAS,/WEに接続する。64MbitのSDRAMを使用する場合、時分割DSP12のA[13],A[12]を、それぞれ、外部メモリのA[12](BA1端子として機能する),A[13](BA0端子として機能する)に接続する。
BA0,BA1はバンクセレクト信号である。A[11:0]は、外部メモリ13のA[11:0]に接続する。ただし、A[10]は、オートプリチャージビットの端子として使用する。コラムアドレスには、A[7:0]のみを使用する。時分割DSP12のD[31:16]を、外部メモリ13のD[15:0]に接続する。
【0055】
また、時分割DSP12のCLK,CKE,MQHは、それぞれ、外部メモリ13のCLK,CKE,(DQMUおよびDQML)に接続する。一般に、SDRAMはデータ8ビット毎にマスクを制御するマスク線を有している。DQMU,DQMLは、それぞれ、16ビットデータの上位ビット、下位ビットのマスク線である。ただし、ここでは、16ビットを一括してマスクをするので、MQHをDQMU,DQMLの両者に接続している。
CLKは同期用のシンクロナスクロックの端子である。CKEはクロックイネーブル信号の端子であって、スタンバイモードにするときは低レベルにする。/CSは、チップセレクト端子であり、低レベルに固定する。
【0056】
図11は、図7に示した[モード1]のタイミングチャートである。
メモリチップが2バンク構成をとり、バンク毎にアクセス開始可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
また、2バースト・モードで動作させることにより、1つのアドレスを指定して、連続した2アドレス分のデータの読み書き可能である。これを利用して、この外部メモリ13では、楽音波形データ1サンプル32ビットの記憶を、16ビットを2アドレスに分割して書き込むことにより実現している。
/CASレイテンシは2に設定しており、読み出しの場合に、SCLOCK(シンクロナスクロック)の2クロック後に読み出しデータが出力される。
原理的には、2バンクとも楽音波形データ1サンプル32ビットの記憶が可能であるが、以下に説明するように、一方は1サンプル16ビットの記憶となる。
【0057】
バンク0(Area0)が選択されているときに、/RASの立下り期間にアドレスAddress(0-0)の行(Row)アドレスが読みとられ、/CASの立下り期間に列(Column)アドレスが読みとられる。なお、SDRAMでは、/RAS,/CAS,/WE,address等の各種信号をクロックの中央辺りのタイミングで取り込む。
読み出しデータは、SCLOCKの2クロック分遅れて、DQ(R)に示すように、最初に小さい側(L)のアドレスに記憶されたデータが読み出され、次に大きい側(H)のアドレスに記憶されたデータが読み出される。
時分割DSP12側では、読み出し部43において、area0Latchに示されるように、Data(0-0)のL,Hがラッチされる。
【0058】
一方、バンク0(Area0)が選択されているときの書き込みの場合、/RASの立下り期間にアドレスAddress(0-0)の行(Row)アドレスが読みとられ、/CASの立下り期間に列(Column)アドレスCが読みとられる。
読み出し時に比べ、書き込み時に/CASの立下りエッジは、SCLOCKの1クロック分遅らされ、同時に、/WEを低レベルにする。書き込み時には、レイテンシが0であるので、DQ(W)に示すように、直ちに、小さい側(L)のアドレスに記憶するためのデータが書き込まれ、1SCLOCK後に、大きい側(H)のアドレスに記憶するためのデータが書き込まれる。
【0059】
次に、バンク1(Area1)が選択されているときに書き込みを行う場合、/RASの立下り期間にアドレスAddress(1-0)の行(Row)アドレスが読みとられ、/CASの立下り期間にアドレスAddress(0-0)の列(Column)アドレスが読みとられ、同時に/WEを低レベルにする。
しかし、このとき、データ線には、DQ(R)に示すように、直前のアクセスの読み出しにおける、大きい側(H)のアドレスのデータが残っている。したがって、データ線に書き込みデータを出力できない。データ線は、読み出しと書き込みとで共用している。DQ(R)とDQ(W)とは、同じライン上の信号を便宜的に分けて表示しているにすぎない。
そこで、DQMに示すように、マスク信号を高レベルとして、書き込みデータのマスクをする。したがって、1SCLOCK後に、大きい側(H)のアドレスのデータのみを書き込む。
【0060】
一方、バンク1(Area1)が選択されているときに読み出しを行う場合、読み出される大きい側(H)のアドレスのデータが、さらに次のアクセスにおけるバンク0(Area0)の書き込みと競合することになる。
しかし、上述した書き込みデータに対するマスクは、2SCLOCK後に読み出される大きい側(H)のアドレスのデータに対しても働くので、大きい側(H)のアドレスのデータが読み出されないので、実際には競合しない。
したがって、バンク1(Area1)を使用する時分割マイクロプログラムDSP1は、2バースト・モードであっても、1つのアドレスのデータしか読み書きできないために、楽音波形1サンプル16ビットデータの読み書きをすることになる。なお、書き込みは、大きい側(H)のアドレスに対して行われ、読み出しは小さい側(L)のアドレスに対して行われるので、外部メモリ13へのデータの書き込み時と読み出し時とでは、アドレスを1だけずらせて指定する必要がある。
【0061】
上述した説明とは別に、時分割マイクロプログラムDSP0もまたバンク0に対し、楽音波形データを1サンプル16ビットで記憶させたい場合がある。この場合、図示の例では、DQMに☆を付したタイミングでマスク信号を高レベルにする。そうすると、バンク1と同様、書き込みは大きい側(H)のアドレスに対して行われ、読み出しは小さい側(L)のアドレスに対して行われる。
【0062】
ただし、バンク0に対する16ビット記憶のための上述したマスク☆は必須ではない。まず、読み出しに関しては、大きい側(H)のアドレスのデータまたは小さい側(L)のアドレスの一方を、時分割DSP12側で読み込まなければよい。
書き込みに関しては、楽音波形データの書き込みを、サンプリング周期毎に1回書き込む際に、ベースカウンタが、アドレスを(-1)ずつずらせて指定するようにし、大きい側(H)のアドレスに対してデータを書き込めばよい。このベースカウンタは、図3に示した外部メモリアドレス発生部45の内部にある。小さい側(L)のアドレスで、そのときのデータ線上にあるデータが書き込まれたとしても、次のサンプリング周期のデータの書き込みで上書きされるからである。一方、大きい側(H)のアドレスのデータは上書きされない。
【0063】
1サンプル32ビットの読み書きを行う場合、あるサンプルアドレス(相対アドレスSAD)にアクセスしようとした場合、そのSADを2倍してメモリアドレス(MAD)として使用する。2バースト動作により、小さい側(L)のアドレスMADと大きい側(H)のアドレス(MAD+1)の各16ビットのデータが読み書きされる。
一方、楽音波形データ1サンプル16ビットの読み書きを行う場合は、あるサンプルアドレスSADをアクセスしようとした場合、そのSADをそのままメモリアドレスMADとして使用すればよい。
【0064】
時分割マイクロプログラムDSP0,DSP1のステップタイミングと、書き込み部42、読み出し部43,アクセス制御部44,外部メモリアドレス発生部45の動作タイミングの関係の、簡単な一具体例は次の通りである。
時分割マイクロプログラムDSP0およびDSP1は、図6の場合と同様に、マスタクロック2個分を1ステップとして、交互にステップを実行する。
図11において、時分割マイクロプログラムDSP0は、マスタクロック第4,5番(図示欄外)におけるステップにおいて、Address(0-0)への書き込みまたは読み出しを、書き込み部42または読み出し部43,アクセス制御部44,外部メモリアドレス発生部45等に指示する。
【0065】
外部メモリアドレス発生部45は、マスタクロック第8〜第13番において、Address(0-0)を出力する。アクセス制御部44は、マスタクロック第8番において/RASを低レベルにする。
書き込みの場合、アクセス制御部44はマスタクロック第12,13番において/CAS,/WEを低レベルにする。書き込み部42は、マスタクロック第12〜17番で、DQ(W)に示す書き込みデータを出力する。
読み出しの場合、アクセス制御部44は、マスタクロック第10,11番において/CASを低レベルにする。読み出し部43は、マスタクロック第15ないし16番,第17ないし18番で、DQ(R)に示す読み出しデータData(0-0)をラッチし、第20,21番において、Area0 Latch上のData(0-0)16×2ビットをバスライン35に出力する。
【0066】
次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第16,17番のステップにおいて、Address(0-1)への書き込みまたは読み出しを指示することになる。連続したメモリアクセスがない場合には、これ以降の3の倍数のステップとなる。
一方、時分割マイクロプログラムDSP1は、マスタクロック第10,11番における1ステップにおいて、Address(1-0)への書き込みまたは読み出しを指示する。次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第22,23番の1ステップにおいて、Address(1-1)への書き込みまたは読み出しを指示することになる。
【0067】
図8は、[モード2]における時分割DSP12と外部メモリ13との接続図である。
時分割DSP12のデータビット幅を32ビットとし、これを2分割して、データビット幅16ビット、2バンク構成の2個のSDRAMを並列接続することにより、楽音波形データ1サンプル32ビットの読み書きができる。また、[モード1]とは異なる手法で、1サンプル16ビットのデータの読み書きにも対応する。
外部メモリ13a,13bは、ともに2バンク構成であり、バンク毎にアクセス可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
時分割マイクロプログラムDSP0,DSP1は、それぞれ、バンク0,バンク1を使用して、交互に読み書きを行う。2バースト動作ではあるが、1アドレス分のデータの読み書きしか行わない。
【0068】
時分割DSP12のRASN,CASN,WENは、それぞれ、外部メモリ13a,13bの/RAS,/CAS,/WEに接続する。64MbitのSDRAMを使用する場合、時分割DSP12のA[13],A[12]を、それぞれ、外部メモリ13a,13bのA[12](BA1端子として機能する),A[13](BA0端子として機能する)に接続する。A[11:0]は、外部メモリ13a,13bのA[11:0]に接続する。
ただし、A[10]は、オートプリチャージビットの端子として使用する。コラムアドレスには、A[7:0]のみを使用する。時分割DSP12のD[31:16]を、外部メモリ13aのD[15:0]に接続し、時分割DSP12のD[15:0]を、外部メモリ13bのD[15:0]に接続する。
【0069】
また、時分割DSP12のCLK,CKEは、それぞれ、外部メモリ13a,13bのCLK,CKEに接続する。時分割DSP12のMQHは、マスク信号の第1の端子であって、外部メモリ13a側の上位ビットマスク端子DQMUおよび下位ビットマスク端子DQMLに接続する。時分割DSP12のMQLは、マスク信号の第2の端子であって、外部メモリ13b側の上位ビットマスク端子DQMUおよび下位ビットマスク端子DQMLに接続する。32ビットアクセスの場合は、MQH=MQLとして、外部メモリ13a,13bに対して、同じマスク信号を与える。
/CSは、チップセレクト端子であり、低レベルに固定する。
【0070】
図12は、図8に示した[モード2]のタイミングチャートである。
バンク0(Area0)において、/RASの立下り期間に行(Row)アドレスを読み込み、/CASの立下り期間に列(Column)アドレスを読み込む。書き込みの場合は、/WEを低レベルにすると同時に、DQMに示したマスク信号を高レベルにする。
その結果、バースト動作ではあっても、小さい側(L)のアドレスには書き込まれないで、1SCLOCK後に、大きい側(H)のアドレスに、16ビットデータ(外部メモリ13a,13b合わせて32ビット)が書き込まれる。
【0071】
一方、読み出しの場合、2レイテンシであるので、/CASの立下りから2SCLOCK後に、小さい側(L)のアドレスの16ビットデータData(0-0)が読み出され、時分割マイクロプログラムDSP0側において、Area0Latchに示したようにData(0-0)がラッチされる。
読み出し時には、DQMに示したマスク信号を、/CASの立下りから1SCLOCK後に高レベルにしているので、これから更に2SCLOCK後において読み出されるはずの、大きい側(H)のアドレスのデータは読み出されない。
次のバンク1(Area1)においても、同様なメモリ制御動作が行われ、読み出し時には、Area1 Latchに示したようにData(1-0)がラッチされる。
【0072】
図8に示した接続構成で、16ビットアクセスも可能である。
時分割DSP12からの第1,第2のマスク端子MQH,MQLから外部メモリ13a,13bに出力されるマスク信号を制御することにより、あるアドレスの下位16ビットのデータ領域に、先の16ビットサンプルを記憶させ、同じアドレスの上位16ビットのデータ領域に後の16ビットサンプルを記憶させることにより実現される。
あるサンプルアドレスSADをアクセスしようとした場合、その最下位ビット(LSB)がマスク信号として使用され、SADのうちのLSBを除くビットがメモリアドレスMADとして使用される。
【0073】
すなわち、LSB=0であれば、MQL=1,MQH=0として、上位16ビットがマスクされ、下位16ビットが外部メモリ13bに読み出しまたは書き込みされる。LSB=1であれば、MQL=0,MQH=1として、下位16ビットがマスクされ、上位16ビットが外部メモリ13aに読み出しまたは書き込みされる。
図12を参照して説明すると、マスクされる側の外部メモリ13aまたは13bにおいては、読み出し書き込みのいずれの場合でも、DQMにW,Rとして示された2SCLOCK期間にわたるマスク信号を高レベルにすればよい。
ただし、既に説明した[モード1]におけるバンク0の16ビット記憶の場合と同様に、マスク信号を用いた制御は必須のものではない。
【0074】
時分割マイクロプログラムDSP0,DSP1のステップタイミングと、書き込み部42、読み出し部43、アクセス制御部44、外部メモリアドレス発生部45の動作タイミングの関係の、簡単な一具体例は次の通りである。
時分割マイクロプログラムDSP0およびDSP1は、図6,図11の場合とはマスタクロックの番号が1番ずれているが、同様に、マスタクロック2個分を1ステップとして、交互にステップを実行する。
図12において、時分割マイクロプログラムDSP0は、マスタクロック第3,4番(図示欄外)におけるステップにおいて、書き込み部42または読み出し部43、アクセス制御部44、外部メモリアドレス発生部45等に対し、Address(0-0)への書き込みまたは読み出しを指示する。
【0075】
アクセス制御部44は、マスタクロック第7番において/RASを低レベルにし、マスタクロック第11番において/CASを低レベルにする。外部メモリアドレス発生部45は、マスタクロック第7〜第12番において、Address(0-0)を出力する。
書き込みの場合に、アクセス制御部44は、マスタクロック第11,12番において、DQMを高レベル、/WEを低レベルにする。書き込み部42は、マスタクロック第13〜16番でDQ(W)に示す書き込みデータを出力する。
読み出しの場合に、アクセス制御部44は、マスタクロック第13,14番において、DQMを高レベルにする。読み出し部43は、マスタクロック第16ないし17番で、DQ(R)に示すデータ線上の読み出しデータData(0-0)をラッチし、第19,20番において、Area0 Latch上のData(0-0)をバスライン35に出力する。
一方、時分割マイクロプログラムDSP1は、マスタクロック第9,10番におけるステップにおいて、Address(1-0)への書き込みまたは読み出しを指示する。
【0076】
図9は、[モード2]の第2の例における時分割DSP12と外部メモリ13との接続図である。外部メモリ13として、データビット幅32ビット、2バンク構成のSDRAMを1個接続し、2バースト動作で、32ビットアクセスをする。
時分割DSP12のRASN,CASN,WENは、それぞれ、外部メモリ13の/RAS,/CAS,/WEに接続する。64MbitのSDRAMを使用する場合、時分割DSP12のA[13],A[12]を、それぞれ、外部メモリ13のA[13](BA1端子として機能する),A[12](BA0端子として機能する)に接続する。A[10:0]は、外部メモリ13a,13bのA[10:0]に接続する。ただし、A[10]は、オートプリチャージビットの端子として使用する。列アドレスには、A[8:0]のみを使用する。
時分割DSP12のD[31:0]は、外部メモリ13のD[31:0]に接続する。
また、時分割DSP12のCLK,CKEは、それぞれ、外部メモリ13のCLK,CKEに接続する。時分割DSP12のMQHはマスク信号の第1の端子であって、外部メモリ13のDQM3およびDQM2に接続する。時分割DSP12のMQLは、マスク信号の第2の端子であって、外部メモリ13のDQM1,DQM0に接続する。
/CSは、チップセレクト端子であり、低レベルに固定する。
【0077】
図8においては、外部メモリ13側のデータビット幅を32ビットとするために、データバス幅16ビットのSDRAMを2個用いていたのは、この図9においては、SDRAMのデータビット幅を32ビットにしている。
したがって、メモリ制御動作は、図8と同様であるので、説明を省略する。ただし、外部メモリ13のマスク線は、DQM3〜DQM0の4本となり、DQM3,DQM2が、図8の外部メモリ13a側のDQMUおよびDQMLに対応し、DQM1,DQM0が、図8の外部メモリ13b側のDQMUおよびDQMLに対応する。
したがって、図8と同様に、マスク信号を用いて、あるいは、マスク信号を用いないで1サンプル16ビットのメモリアクセスもできる。
【0078】
図10は、[モード3]における時分割DSP12と外部メモリ13との接続図である。外部メモリ13として、データビット幅16ビット、2バンク構成のSD型FCRAM(Fast Cycle RAM)を接続し、2バースト・モードによって32ビットアクセスを実現している。16ビットアクセスも可能である。
SD型FCRAM(Fast Cycle RAM)は、高速動作が可能で/CASレイテンシが1で動作するSDRAMであるので、読み出しの遅れが1SCLOCKと少ない。したがって、タイミングに余裕ができている。
2バンク構成をとり、バンク毎にアクセス可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
【0079】
時分割DSP12のRASN,CASN,WENは、それぞれ、外部メモリ13の/RAS,/CAS,/WEに接続する。16MbitのFCRAMを使用する場合、時分割DSP12のA[12]を、外部メモリのA[11](BA1端子として機能する)に接続する。BA1はバンクセレクト信号である。A[10:0]は、外部メモリ13のA[10:0]に接続する。ただし、A[10]は、オートプリチャージビットの端子として使用する。列アドレスには、A[8:0]のみを使用する。時分割DSP12のD[31:16]は、外部メモリ13のD[15:0]に接続する。
また、時分割DSP12のCLK,CKE,MQHは、それぞれ、外部メモリ13のCLK,CKE,(DQMUおよびDQML)に接続する。/CSは、チップセレクト端子であり、低レベルに固定する。
【0080】
図13は、図10に示した[モード3]のタイミングチャートである。
バンク0(Area0)において、/RASの立下り期間に行(Row)アドレスを読み込み、/CASの立下り期間に列(Column)アドレスを読み込む。読み出しの場合、列(Column)アドレスの入力と同時に/CASを立ち下げる。/CASレイテンシが1であるので、DQ(R)に示すように、1SCLOCK後に、小さい側(L)のアドレスのデータ16ビットが読み出され、さらに1SCLOCK後に、大きい側(H)のアドレスのデータ16ビットが読み出される。
【0081】
時分割DSP12において、Area Latchに示すように、32ビットのData(0-0)がラッチされる。書き込みの場合、列(Column)アドレスが入力された後、次のSCLOCKで/CASを立ち下げるとともに、/WEを低レベルにする。直ちに、時分割DSP12から出力されたDQ(W)に示す小さい側(L)のアドレスのデータ16ビットが書き込まれ、次のSCLOCKで、大きい側(H)のアドレスのデータ16ビットが書き込まれる。
バンク1(Area1)においても同様の制御動作が行われ、時分割DSP12は、バンク1(Area1)との間で、32ビットのサンプルデータを読み書きする。
【0082】
図10に示した接続で、1サンプル16ビットのメモリアクセスをするにはマスク信号を用いて、小さい側(L)のアドレスのデータ16ビットの読み書きをマスクする。
図13において、読み出しのときには☆Rのタイミングで、書き込みのときには☆Wのタイミングで、DQMを高レベルにする。その結果、バースト・モードではあっても、小さい側(L)のアドレスには読み書きされないので、16ビットデータが書き込まれる。
1サンプル32ビットの読み書きを行う場合、または、1サンプル16ビットの読み書きを行う場合の、アドレス(SAD)とメモリアドレス(MAD)との関係、マスク信号が必ずしも必要でないことは、図7,図11を参照して説明した[モード1]の場合と同様である。
【0083】
時分割マイクロプログラムDSP0,DSP1のステップタイミングと、書き込み部42、読み出し部43、アクセス制御部44、外部メモリアドレス発生部45の動作タイミングの関係の、簡単な一具体例は次の通りである。
、時分割マイクロプログラムDSP0およびDSP1は、図6,図11の場合と同様に、マスタクロック2個分を1ステップとして、交互にステップを実行する。
図13において、時分割マイクロプログラムDSP0は、マスタクロック第4,5番(図示欄外)におけるステップにおいて、書き込み部42または読み出し部43、アクセス制御部44、外部メモリアドレス発生部45等に対し、Address(0-0)への書き込みまたは読み出しを指示する。
アクセス制御部44は、マスタクロック第8番において/RASを低レベルにし、マスタクロック第10番において/CASを低レベルにする。外部メモリアドレス発生部45は、マスタクロック第8〜第13番において、Address(0-0)を出力する。
【0084】
書き込みの場合に、アクセス制御部44は、マスタクロック第12,13番において、DQMを高レベル、/WEを低レベルにする。書き込み部42は、マスタクロック第12〜17番でDQ(W)に示す書き込みデータを出力する。
読み出しの場合に、アクセス制御部44は、マスタクロック第10,11番において、/CASを低レベルにする。読み出し部43は、マスタクロック第13ないし14番,第15ないし16番で、DQ(R)に示すデータ線上の読み出しデータData(0-0)をラッチし、第20,21番において、Area0 Latch上のData(0-0)をバスライン35に出力する。
一方、時分割マイクロプログラムDSP1は、マスタクロック第10,11番におけるステップにおいて、Address(1-0)への書き込みまたは読み出しを指示する。
【0085】
以上で、モード0〜3の動作説明を終える。
上述した説明では、モード0は、EDO-DRAMを使用したが、FPM(Fast Page Mode)-DRAMでもよい。
モード1は、SDRAMを使用したが、モード3で使用したSDR型FCRAMでもよい。
また図7を参照して説明した16ビットSDRAMの並列使用は、モード1でも動作可能である。これに対し、モード2の他の一例として図8に示した32ビットSDRAMでは、アクティブコマンドの次のクロックでリードコマンドを出してはいけないという制約のため、モード1では動作しない。
上述した説明では、SD型FCRAMは、モード3においてのみ使用したが、モード1、モード2(2タイプとも)においても使用することができる。ただし、メモリ容量に応じてアドレス線や制御線の接続を一部変更する必要がある。
なお、これ以外のDRAMであっても、基本動作が同様なものであれば、本発明の音波形データ用ディジタル信号処理装置の外部メモリとして用いることができる。
【0086】
上述した時分割DSP12は、モードを切り替え設定するだけで、外部メモリ13として、EDO-DRAM、SDRAM、FCRAMといった種々のDRAMが使えるという多様性のある設計がなされている。その際、並列化したEDO-RAMの交互のメモリアクセスと、SDRAMの各バンクの交互のメモリアクセスとの、タイミング間隔がほぼ同じになるため、メモリアクセスのためのタイミング制御回路が簡単になっている。
【0087】
上述した楽音波形に加えるエフェクトとして、大容量の遅延メモリを必要とするものとして、リバーブ(残響)、コーラス(原音のピッチを微妙にずらした音を原音に重ねて広がりを得る)、バリエーション(ディレイ、ロータリースピーカ、オートパン、アンプシミュレータ、オートワウなど)などがある。
また、大容量の遅延メモリを必要としないものとして、イコライザ(原音の周波数特性の補正)、HPF(原音の基音や低い倍音をカットする)、LPF(原音の高い倍音をカットする)、ハーモニ(原音と調和する音を原音に加える)、コンプレッサ(原音の小音量時に利得を上げ、大音量時に利得を下げて原音のダイナミック・レンジを圧縮する)などがある。
したがって、これらのエフェクトを同時に加える際に、大容量の遅延メモリを必要とするか、高精度の楽音波形データを遅延メモリに記憶させる必要があるか等を考慮して、マイクロプログラムを組めばよい。
【0088】
上述した説明では、電子楽器の音源部で生成された楽音信号にエフェクトを加える場合について説明した。
しかし、本発明の音波形データ用ディジタル信号処理装置は、楽音波形データに限らず、音声などを含む任意の音波形データ用として使用できる。
例えば、カラオケ装置において、マイクロフォンから入力された音声信号に対して同様なエフェクトを加えるのに用いることができる。
オーディオアンプにおいて、入力された楽音信号や音声信号等のオーディオ信号に、ホールの臨場感を加えたり、音場再生をするのに用いることができる。
【0089】
【発明の効果】
本発明は、上述した説明から明らかなように、音波形データの遅延用に大容量が得られるDRAMを用いても、プリチャージのための待機時間を実質的になくして、高速のメモリアクセスができるという効果がある。
【図面の簡単な説明】
【図1】 電子楽器のハードウエア構成図である。
【図2】 楽音波形データ用ディジタル信号処理装置と外部メモリとの間で行われる、楽音波形データの書き込み、読み出しを概念的に説明する説明図である。
【図3】 図1に示した時分割DSPの内部構成図である。
【図4】 時分割DSPのマイクロプログラム、I-RAM、および、外部メモリ・インターフェースの説明図である。
【図5】 [モード0]における時分割DSPと外部メモリとの接続図である。
【図6】 図5(a)に示した[モード0]のタイミングチャートである。
【図7】 [モード1]における時分割DSPと外部メモリとの接続図である。
【図8】 [モード2]における時分割DSPと外部メモリとの接続図である。
【図9】 [モード2]の第2の例における時分割DSPと外部メモリとの接続図である。
【図10】 [モード3]における時分割DSPと外部メモリとの接続図である。
【図11】 図7に示した[モード1]のタイミングチャートである。
【図12】 図8に示した[モード2]のタイミングチャートである。
【図13】 図10に示した[モード3]のタイミングチャートである。
【符号の説明】
12…時分割DSP、13,13a,13b…外部メモリ、21…楽音波形データ用ディジタル信号処理装置、22…波形信号処理部、23a,23b…スイッチ、24,24a,24b…DRAM
Claims (2)
- 波形信号処理部およびメモリアクセス部を有し、
前記波形信号処理部は、
音波形データにエフェクトを加えるための波形信号処理を、2個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、
前記メモリアクセス部は、
前記2個の時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされる2個のDRAMを、それぞれ、前記2個の時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を2分割した分割期間を、順次、前記2個の時分割マイクロプログラムに対応させて動作するものであり、
前記2個の時分割マイクロプログラムの1つから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該時分割マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するDRAMに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するDRAMに対し、前記音波形データの書き込みまたは読み出しを行うものである、
ことを特徴とする音波形データ用ディジタル信号処理装置。 - 波形信号処理部およびメモリアクセス部を有し、
前記波形信号処理部は、
音波形データにエフェクトを加えるための波形信号処理を、2個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、
前記メモリアクセス部は、
前記2個の時分割マイクロプログラム中、1つの時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、共通のアドレス線、共通のデータ線、および、個別の制御線を介して外付けされるDRAMを、前記1つの時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を2分割した分割期間を、順次、前記2個の時分割マイクロプログラムに対応させて動作するものであり、
前記1つの時分割マイクロプログラムから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生して、該アドレス信号を当該マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するDRAMに対し書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するDRAMに対し、前記音波形データの書き込みまたは読み出しを行うものである、
ことを特徴とする音波形データ用ディジタル信号処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001300496A JP3855710B2 (ja) | 2001-09-28 | 2001-09-28 | 音波形データ用ディジタル信号処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001300496A JP3855710B2 (ja) | 2001-09-28 | 2001-09-28 | 音波形データ用ディジタル信号処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003108121A JP2003108121A (ja) | 2003-04-11 |
JP3855710B2 true JP3855710B2 (ja) | 2006-12-13 |
Family
ID=19121062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001300496A Expired - Fee Related JP3855710B2 (ja) | 2001-09-28 | 2001-09-28 | 音波形データ用ディジタル信号処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3855710B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5007560B2 (ja) * | 2006-12-18 | 2012-08-22 | ヤマハ株式会社 | 信号処理装置 |
-
2001
- 2001-09-28 JP JP2001300496A patent/JP3855710B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003108121A (ja) | 2003-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5689080A (en) | Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory which minimizes audio infidelity due to wavetable data access latency | |
US5717154A (en) | Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity | |
US6137046A (en) | Tone generator device using waveform data memory provided separately therefrom | |
JP3855711B2 (ja) | 音波形データ用ディジタル信号処理装置 | |
US5809342A (en) | Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory | |
JPH0883066A (ja) | 電子楽器 | |
JPH0798586A (ja) | 電子楽器の音源装置 | |
JP3991458B2 (ja) | 楽音データ処理装置およびコンピュータシステム | |
JP3855710B2 (ja) | 音波形データ用ディジタル信号処理装置 | |
JPH07121181A (ja) | 音声情報処理装置 | |
JPH08160961A (ja) | 音源装置 | |
JP2022064055A (ja) | ディジタル信号処理装置及びディジタル信号処理装置の制御方法 | |
JP2727089B2 (ja) | 電子楽器の音源装置 | |
JP3659002B2 (ja) | 楽音データ処理装置およびコンピュータシステム | |
JP3552265B2 (ja) | 音源装置および音声信号形成方法 | |
JPH02135564A (ja) | データ処理装置 | |
JP2642092B2 (ja) | デジタルエフェクト装置 | |
JP3334483B2 (ja) | 外部波形を入力可能な波形メモリ型楽音発生装置 | |
JPH0468632B2 (ja) | ||
JPH03174592A (ja) | 電子楽器の音源回路 | |
JP3695404B2 (ja) | 波形処理デバイス | |
JPH10111682A (ja) | 残響効果付加装置 | |
JP3387810B2 (ja) | サウンドプロセッサ | |
JP2877012B2 (ja) | 楽音合成装置 | |
JPS6335994B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060509 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060707 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060904 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100922 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100922 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110922 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120922 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130922 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |