JP3855711B2 - Digital signal processor for sound waveform data - Google Patents

Digital signal processor for sound waveform data Download PDF

Info

Publication number
JP3855711B2
JP3855711B2 JP2001300497A JP2001300497A JP3855711B2 JP 3855711 B2 JP3855711 B2 JP 3855711B2 JP 2001300497 A JP2001300497 A JP 2001300497A JP 2001300497 A JP2001300497 A JP 2001300497A JP 3855711 B2 JP3855711 B2 JP 3855711B2
Authority
JP
Japan
Prior art keywords
time
data
address
division
microprogram
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
Application number
JP2001300497A
Other languages
Japanese (ja)
Other versions
JP2003108122A (en
Inventor
隆一 河本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2001300497A priority Critical patent/JP3855711B2/en
Publication of JP2003108122A publication Critical patent/JP2003108122A/en
Application granted granted Critical
Publication of JP3855711B2 publication Critical patent/JP3855711B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、楽音波形や音声波形などの音波形にリバーブ(残響)などのエフェクト
(効果)を付与する場合などに、音波形データの遅延用にダイナミックランダムアクセスメモリ(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】
一方、DSPでは、1サンプルの音波形データは32ビット精度で信号処理を行う。しかし、音波形データを遅延させるために外部メモリに記憶させるときには、16ビット浮動小数点または32ビットで記憶させる。これは、メモリ容量と個別のエフェクトに要求される精度とを比較考量して決める。
そのため、エフェクトの種類によっては、精度を高くするために、1サンプルの楽音波形データのビット幅を広くとる必要がある。特に、高品位を要するリバーブなどのエフェクト、およびまたは、複数パートの楽音波形をミキシングした楽音波形に対するエフェクトでは、外部メモリの1アドレスに記憶させる楽音波形データのビット数を、32ビットとすることが要求される。
【0007】
しかし、配線基板にDSPチップを高密度実装する設計上、ビット幅に対応したデータ線の配線数を少なくする必要があり、ビット幅を単純に増やすわけにはいかない。そのために、1回のアクセスで複数アドレス分のデータを順次転送するというバースト・モードを採用することが考えられる。SDRAMでは、バースト・モードが可能であるが、SDRAMの品種によっては、次のアクセスのデータと、データ線上で衝突を起こす場合がある。
また、バースト・モードで動作させても、エフェクトの種類によっては、従来通りの低い精度で音波形データを記憶させたい場合がある。
【0008】
上述したように、従来の楽音波形データ用ディジタル信号処理装置では、楽音波形データを遅延させるための外部メモリとして種々のDRAMを使用した場合、それぞれのDRAMに応じてアクセス速度を上げることや、楽音波形データの1サンプルのビット数をデータ線のビット幅よりも大きくできることが要求されていた。
【0009】
【発明が解決しようとする課題】
本発明は、上述した問題点を解決するためになされたもので、音波形データの遅延用の外部メモリに複数バンク構成を有するDRAMを使用して、見かけ上、プリチャージのための待機時間をなくし、高速かつ容易にアクセスできる、時分割マイクロプログラムを用いた音波形データ用ディジタル信号処理装置を提供することを目的とするものである。
また、波形信号処理に応じて外部メモリに記憶させる音波形データの1サンプルのビット幅を大きくすることが可能な音波形データ用ディジタル信号処理装置を提供することを目的とするものである。
【0010】
【課題を解決するための手段】
本発明は、請求項1に記載の発明においては、波形信号処理部およびメモリアクセス部を有し、前記波形信号処理部は、音波形データにエフェクトを加えるための波形信号処理を、2個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、前記メモリアクセス部は、前記個の時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、アドレス線、データ線、および、制御線を介して外付けされ、個のバンクを有するDRAMの各バンクを、それぞれ、前記個の時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を分割した分割期間を、順次、前記個の時分割マイクロプログラムに対応させて動作するものであり、前記個の時分割マイクロプログラムの1つから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生し、該アドレス信号を当該時分割マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するバンクに対する書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するバンクに対し、前記音波形データの書き込みまたは読み出しを行うものである。
したがって、1つのバンクが次のアクセス開始までに必要とするプリチャージを、別のバンクにアクセスする時間に行うので、見かけ上、プリチャージに必要な待機時間をなくすことができる。その際、個の時分割マイクロプログラムは、対応するバンクとの間で読み出しまたは書き込みを行えばよいので、DRAMのアクセス制御が効率的かつ容易となる。
【0011】
請求項2に記載の発明においては、請求項1に記載の音波形データ用ディジタル信号処理装置において、外付けされる前記DRAMは、Nバースト・モード(Nは2以上の整数)でアクセス可能なものであり、前記メモリアクセス部は、前記個の時分割マイクロプログラムの1つから、該時分割マイクロプログラムに対応するバンクに記憶させる前記音波形データのビット幅を、単独のアドレスに記憶させる場合のT倍(TはN以下の正整数)の固定ビット幅とする書き込みまたは読み出しの要求を受けたとき、前記DRAMに対し、前記Nバースト・モードで前記音波形データの書き込みまたは読み出しをするための制御信号の出力を行い、かつ、前記Nバースト・モードでのN回の転送タイミング中のT回の転送タイミングにおいて、前記音波形データの書き込みまたは読み出しを行うものである。
DRAMとアクセス方法の組み合わせによっては、Nバースト・モードで正常にアクセスできない場合がある、このような場合に、一部のバンクに対応する時分割マイクロプログラムに対しては、Nより少ないT倍の固定ビット幅にすればよい。
【0012】
請求項3に記載の発明においては、請求項1に記載の音波形データ用ディジタル信号処理装置において、外付けされる前記DRAMは、Nバースト・モード(Nは2以上の整数)でアクセス可能なものであり、前記メモリアクセス部は、前記個の時分割マイクロプログラムの1つから、該時分割マイクロプログラムに対応するバンクに記憶させる前記音波形データのビット幅を、単独のアドレスに記憶させる場合のT倍(TはN以下の正整数)の可変ビット幅とする書き込みまたは読み出しの要求を受けたとき、前記DRAMに対し、前記Nバースト・モードで前記音波形データの書き込みまたは読み出しをするための制御信号の出力を行い、かつ、前記Nバースト・モードでのN回の転送タイミング中のT回の転送タイミングにおいて、前記音波形データの書き込みまたは読み出しを行うものである。
したがって、データ端子数を増やすことなく、2個の時分割マイクロプログラムに対して、単独のアドレスに記憶する場合のT倍の可変のビット幅の音波形データの読み出し、書き込みが可能となる。したがって、2個の時分割マイクロプログラムの過程において実行させる複数のエフェクトの種類に応じてビット幅を可変に設定することができる。
【0013】
なお、上述した各請求項において、1つの時分割された波形信号処理において実行する波形信号処理は1つに限られない。1つの時分割波形信号処理の過程で、複数の異なる波形信号処理を順次実行してもよい。
また、音波形データ用ディジタル信号処理装置は、上述した個を超える数の時分割処理を実行してもよい。この場合、上述した個の時分割処理期間以外の残りの時分割処理期間において、音波形データにエフェクトを加えるための波形信号処理以外の信号処理を実行することができる。
【0014】
【発明の実施の形態】
最初に、本発明の音波形データ用ディジタル信号処理装置が使用される電子楽器のハードウエア構成を説明する。
図1は、電子楽器のハードウエア構成図である。
図中、1はCPU、2はROM、3はRAM、4はバスライン、5はタイマである。
CPU1は、バスライン4に接続されたハードウエアを使用し、ROM3に記憶されたプログラムおよびデータを用いて、RAM4をワーキングエリアとして実行することにより、電子楽器全体の制御をする。また、入力された演奏データや楽曲データに基づいて、音源部9,ミキサ10,時分割DSP12に出力する楽音制御パラメータを生成したり、外部装置に演奏データを出力したりする。
ROM2には、自動演奏用の楽曲データが格納される場合もある。
タイマ5は、CPU1の動作クロックやプログラムのタイマ割り込み処理のために割り込み信号を生成してCPU1に出力する。
【0015】
6は操作子であって、鍵盤やペダルなどの演奏用の操作子、電子楽器のパネル上に設けられた、音色設定,エフェクトなどの設定操作子、自動演奏の制御を行う操作子などである。7は表示器であって、電子楽器への設定入力画面、設定内容、および、動作状態などを表示する。
8は通信インターフェースであって、外部MIDI機器との間のMIDIデータの入出力、およびまたは、LANや公衆通信網などの通信ネットワークを介して、サーバやパーソナルコンピュータとの間で演奏データのダウンロードやストリーミング再生などを行うためのインターフェースである。
【0016】
9は音源部であって、楽音制御パラメータを入力して楽音信号を生成する。波形メモリ音源方式の音源では、波形メモリを有し、この波形メモリから指定された音色の楽音波形を読み出し、ピッチ制御やエンベロープ制御をして楽音信号を生成する。通常、複数の発音チャンネルを有しており、複数のパートの楽音信号が生成される。
10はミキサ、11は波形I/O、12は時分割DSP、13は外部メモリ、14はDAC、15はサウンドシステムである。
ミキサ10は、音源部9から出力される複数パートの楽音信号を入力するとともに、時分割DSP12や波形I/O11から加工された楽音信号を入力して合成し、DAC14に出力する。同時に、波形I/O11および時分割DSP12に対して楽音信号を出力する。ミキサ10は、CPU1によって、ミキサ10への入力およびミキサ10からの出力の選択、合成比、出力音量レベルなどを制御する。
【0017】
波形I/O11は、この電子楽器に外付けされた効果付与装置(エフェクタ)に楽音信号を出力し、効果付与装置の出力をミキサ10に戻す。
時分割DSP12は、合成された楽音信号を処理してミキサ10に戻す。
波形I/O11および時分割DSP12は、合成後の楽音信号を入力する場合に限らず、特定のパートの楽音信号を選択して、パート毎に異なるエフェクトを付与することが可能である。
【0018】
時分割DSP12は、楽音波形データの1サンプリング周期(例えば、48kHz)の間に、全ステップが1回実行されるマイクロプログラムによって波形信号処理を行う。時分割処理によって、実質的に複数の時分割マイクロプログラムが、上述した1サンプリング周期において、それぞれ全ステップを1回実行する。
この時分割DSP12には、主として楽音波形データを遅延させるために用いるための外部メモリ13が外付けされる。時分割DSP12の処理の態様はCPU1によって制御される。
ミキサ10から最終的に出力される楽音信号の合成信号は、DAC14でアナログ信号に変換され、サウンドシステム15に出力されて、スピーカなどから放音される。
【0019】
以下に説明する具体例では、時分割数を2とし、2つの時分割マイクロプログラムが1ステップを実行するごとに、他の時分割マイクロプログラムの1ステップに切り替える。また、外部メモリ13には、この3ステップに1回のステップでアクセスが可能である。
しかし、時分割数は3以上であってもよい。また、時分割処理の一部の処理では、エフェクト付加とは異なる目的の波形信号処理を行ってもよい。
【0020】
また、1つの時分割マイクロプログラムによって実行される波形信号処理において、付与されるエフェクトは1つに限らない。同一または異なる種類の複数のエフェクトの付与が可能である。
以下に示す例では、個々の時分割マイクロプログラムが、マルチブロック構成となっており、各ブロックが、個別のエフェクトアルゴリズムを実行する。
一部のエフェクトのみを停止させたり、一部のエフェクトを別のエフェクトに置き換えるために、ブロック毎に、マイクロプログラムの処理を停止させたり、他のマイクロプログラムに置き換えることができる。
【0021】
図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間に、データ線、アドレス線が接続されているが、この図では省略している。
【0022】
図2(a)において、楽音波形データ用ディジタル信号処理装置21は、波形信号処理部22を有し、波形信号処理の過程において楽音波形データを遅延させるため外部メモリとして2個のDRAM24a,24bを並列使用する。
スイッチ23a,23bは、外付けされるDRAM24a,24bに対し、相互に所定時間ずれたタイミングでアクセス開始を可能とする。ただし、DRAM24a,24bを択一的にアクセス状態にするのではなく、アクセスの開始タイミングをずらせて並列的にアクセス状態にする。
【0023】
波形信号処理部22が、書き込みまたは読み出し要求をしたときに、スイッチ23a,23bは、波形信号処理部22および2個のDRAM24a,24bのうち、アクセス開始が可能なタイミングにあるDRAM24aまたはDRAM24bに対して、楽音波形データの書き込みまたは読み出しを行う。
例えば、1つのDRAM24aがアクセス中のときに、波形信号処理部22が書き込みまたは読み出し要求をしたときに、別のDRAM24bがアクセスを開始できる DRAM24aがアクセスを終了してから次のアクセスまでに必要なプリチャージは、別のDRAM24bアクセス中に行われるので、波形信号処理部22は、プリチャージのためにアクセス開始を待つ必要がない。
【0024】
図2(b),図2(c)は、図2(a)に示した波形信号処理部22が、時分割処理により、交互に2つの波形信号処理を切り替えることによって、等価的に時分割波形信号処理部22a,22bを有する場合である。
図2(b)において、時分割波形信号処理部22a,22bは、それぞれの波形信号処理過程において、楽音波形データを遅延させるために、時分割波形信号処理部22a,22bに対応させて外付けされるDRAM24a,24bを使用する。スイッチ23a,23bは、DRAM24a,24bに対し、相互に所定時間ずれたタイミングでアクセス開始を可能とする。
【0025】
例えば、時分割波形信号処理部22aが書き込みまたは読み出し要求をしたときに、スイッチ23aは、対応するDRAM24aがアクセス開始可能なタイミングで、楽音波形データの書き込みまたは読み出しを行わせる。時分割波形信号処理部22aからDRAM24aへのアクセスが開始すれば、所定時間ずれて、別の時分割波形信号処理部22bからDRAM24bへのアクセス開始が可能となる
DRAM24aがアクセスを終了してから次のアクセスまでに必要なプリチャージは、別の時分割波形信号処理部22bがDRAM24bへのアクセス中に行うことができる。その結果、時分割波形信号処理部22aは、プリチャージのためにアクセス開始を待つ必要がない。
その際、時分割波形信号処理部22a,22bは、対応するDRAM24a,24bと読み出しまたは書き込みを行えばよいので、波形信号処理部22は、効率よく、かつ容易に、DRAM24a,24bにアクセスできる。
【0026】
図2(c)においても、波形信号処理部22は、等価的に2個の時分割波形信号処理部22a,22bを有する。
時分割波形信号処理部22aは、波形信号処理過程において楽音波形データを遅延させるために、DRAM24aを使用する。
スイッチ23aは、DRAM24aに対し、所定のタイミングでアクセス開始を可能とする。時分割波形信号処理部22aが書き込みまたは読み出し要求をしたときに、スイッチ23aは、DRAM24aがアクセス開始可能なタイミングで、楽音波形データの書き込みまたは読み出しを行わせる。DRAM24aへのアクセスは、次のアクセスまでに必要なプリチャージのために待つ必要がある。
【0027】
したがって、波形信号処理部22として見れば、図2(b)に比べて、アクセス速度が低下している。しかし、時分割波形信号処理部22aとしては、図2(b)と全く同じアクセス速度が得られている。
その結果、時分割波形信号処理部22aは、効率よくDRAM24aにアクセスすることができる。
時分割波形信号処理部22bは、DRAM24aにアクセスできないが、音波形データの長時間の遅延を必要としないエフェクトの波形信号処理を行うようにすればよい。
【0028】
上述した図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個にすることができる。
【0029】
図2を参照した説明では、時分割波形信号処理部22a,22bはマイクロプログラムの1ステップ毎にDRAMにアクセスできるものとして説明した。しかし、時分割の切り替えタイミングは、メモリにアクセス開始可能なタイミングの切り替えよりも速くできる。
以下に示す具体的な動作例では、3倍の速度にしている。その結果、時分割波形信号処理部22a,22bは、最短でも3ステップに1回しか、メモリにアクセス開始することができない。しかし、楽音波形データにエフェクトを付与するための波形信号処理では、連続するステップで外部メモリにアクセスすることは必ずしも要しないからさほど問題はない。
【0030】
また、エフェクトを加えるための波形信号処理の時分割数をM個とした場合、このM個を超える数の時分割信号処理を実行してもよい。例えば、分割数4個の時分割信号処理を行い、そのうち、第1,第3の時分割波形信号処理で、エフェクトを加えるための波形信号処理を行い、残りの第2,第3の時分割波形信号処理で、それ以外の信号処理、例えば、楽音波形のピッチ検出のためのにゼロクロス検出などの処理を行う。
【0031】
以下、楽音波形データ用ディジタル信号処理装置の内部構成、および、外部メモリとの間のメモリアクセス動作について具体的に説明する。
図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に出力する。
【0032】
LFO(低周波発振器)36は、低周波発振波形を演算で生成する。ビブラートやトレモロのエフェクトを加えるために用いる。
EG(エンベロープ発生器)37は、エンベロープ波形を演算で生成する。時分割DSP12を楽音波形発生器として使用するときに用いる。
I/O38は、図1に示したミキサ10との間で双方向にデータ転送を行う。
LFO36,EG37,I/O38は、いずれも、32チャンネルを有する。
一方、T-RAM33,Y-RAM34は、バスライン35上に出力される、演算部31の出力データあるいは、外部メモリ13から遅延して読みだされた楽音波形データを一時記憶する。
【0033】
演算部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ステップよりも高速で動作する。
【0034】
42は書き込み部であって、バスライン35上のデータを、データ線を経由して外部メモリ13へ書き込む。
43は読み出し部であって、外部メモリ13から読み出されたデータを、データ線を経由して読み出し、バスライン35上に出力する。
44はアクセス制御部であって、外部メモリ13にアクセスするために、各種の制御信号を所定のタイミングで制御線を経由して外部メモリに出力する。
データ線は入出力共用であり、アクセス制御部44から出力される、/WEN(ライトイネーブル)信号によって、書き込みと読み出しとを切り替える。
【0035】
演算部31では楽音波形データを32ビット精度で演算する。しかし、外部メモリ13に記憶させるときには、楽音波形データを、32ビット精度、または、16ビット精度浮動小数点で記憶させる。したがって、16ビット精度浮動小数点で書き込みをするとき、あるいは、読み出しをするときには、それぞれ、書き込み部42および読み出し部43で符号変換を行う。
45は外部メモリアドレス発生部、46は外部メモリアクセスAD(アドレス)レジスタ、47は外部メモリB(ブロック)情報レジスタである。
外部メモリアクセスAD(アドレス)レジスタ46は、マイクロプログラム中で外部メモリ13にアクセス可能なステップに対応する記憶エリアに、各ステップでアクセスする際のアドレスを記憶している。
【0036】
外部メモリ13は、マイクロプログラム中の後述する各ブロック毎に、そのブロックが使用する領域が割り当てられている。外部メモリB(ブロック)情報レジスタ47は、外部メモリ13におけるマイクロプログラムの各ブロックが使用する領域の先頭アドレスおよびブロックサイズを格納している。
外部メモリアドレス発生部45は、ベースカウンタを内部に備え、外部メモリアクセスAD(アドレス)レジスタ46から出力されるアドレスと、外部メモリB(ブロック)情報レジスタ47から出力される先頭アドレスおよびブロックサイズを用いて、列(Raw)アドレスおよびコラム(Column)アドレスからなるメモリ用アドレスを演算し、アドレス線に出力する。
ベースカウンタの値は、楽音波形データを16ビットで記憶させる場合には、サンプリング周期毎に(-1)され、32ビットで記憶させる場合には、サンプリング周期毎に(-2)される。
外部メモリアドレス発生部45は、また、バスライン35を介して入力されたデータで、外部メモリアクセスAD(アドレス)レジスタ46から出力されるアドレスを変調することができる。
【0037】
上述した時分割DSP12は、マイクロプログラムレジスタ49に記憶されたマイクロプログラムで制御される。先頭ステップレジスタ50は、マイクロプログラムの後述する複数ブロックのそれぞれの先頭ステップ番号を記憶している。マイクロプログラム読み出し部48は、1サンプリング周期の間に、複数の時分割マイクロプログラムそれぞれの全ステップを1回実行し、その各ステップにおいて、当該ステップのステップ番号と先頭ステップレジスタ50の記憶する先頭ステップ番号に基づいて現在実行中のブロックのブロック番号を出力するとともに、当該ステップのマイクロコードに基づいて制御信号を出力し、これらによって、演算部31,I-RAM32、T-RAM33,Y-RAM34などのレジスタ、外部メモリアドレス発生部45などを制御することによって、複数のエフェクトのための演算を実行する。
【0038】
図4は、時分割DSP12のマイクロプログラム、I-RAM32、および、外部メモリ・インターフェースの説明図である。
図4(a)は時分割マイクロプログラムDSP0,DSP1のプログラム構成の説明図、図4(b)はI-RAM32のメモリ構造の説明図、図4(c)は外部メモリ・インターフェース関係の端子説明図である。
図3に示した時分割DSP12は、ハードウエア的には1個であるが、ステップ単位で交互に切り替えて動作させるという時分割動作により、機能的には2つの独立したマイクロプログラムとして動作するようにしている。
【0039】
図4(a)に示すように、各時分割マイクロプログラムDSP0,DSP1は、さらに、マルチブロック動作を行うことにより、同一または異なる種類の複数のエフェクトを同時に実行可能である。
マルチブロック動作とは、全512ステップを複数ブロック(エフェクタブロック、例えば、最大16ブロック、3ステップ単位)に分けて、各ブロック毎に独立したエフェクトアルゴリズムを実行する。1サンプリング周期中に全ステップを実行することにより、1サンプリング周期(48kHz)中に、各エフェクトアルゴリズムのステップを1回実行する。
【0040】
図4(b)に示すように、上述したプログラム構成に対応して、I-RAM32のメモリ構造は例えば、次のようになる。
共通アクセス領域Aは、各時分割マイクロプログラムDSP0,DSP1に専用の領域が独立して設けられ、それぞれ16ワードある。複数のブロックに共通の領域である。
共通アクセス領域Bは、16ワードの領域が2つあるが、各領域をアクセスする時分割マイクロプログラムDSP0,DSP1が、サンプリング周期毎に交代する。すなわち、あるサンプリング周期では、DSP0が片方の領域、DSP1がもう一方の領域をアクセスし、次のサンプリング周期では、DSP1が該片方の領域、DSP0がもう一方の領域をアクセスする。この領域を使用して、時分割マイクロプログラムDSP0とDSP1との間でデータ転送も行える。
【0041】
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つの領域を有している。
【0042】
図示を省略したが、T-RAM(テンポラリRAM)33については、I-RAM32と同様に、共通アクセス領域A、共通アクセス領域B、および、個別アクセス領域からなるが、I/O領域,LFO領域,EG領域はない。記憶データ量は大きく、I-RAM32の2倍程度としている。
Y-RAM34は、共通アクセス領域Aおよび個別アクセス領域からなる。演算に使用する係数を一時保存するものであるので、記憶データ量は少なくてよい。
信号処理過程において、楽音波形データを短時間遅延させるのであれば、上述した、I-RAM32やT-RAM33を用いて実現できるが、長時間にわたる遅延は、外部メモリ13に書き込んで読み出しを行うことにより実現する。
【0043】
次に、図4(c)を参照して、外部メモリ13へのインターフェースについて説明する。
時分割マイクロプログラムDSP0,DSP1は、3ステップ毎、すなわち、各512ステップ中、第0ステップおよび3の倍数の番号のステップにおいて、外部メモリ13にアクセス可能なように設計されている。
外部メモリ13に対するアクセスモードとして、外部メモリ13に使用するDRAMの種類に応じて、複数のモードがあり、使用時に設定される。外部メモリ13は、楽音波形データを1サンプル16ビット精度(浮動小数点)または32ビット精度で記憶可能である。しかし、外部メモリ13の種類およびモードによっては、16ビット精度(浮動小数点)に制限される場合がある。
接続端子の機能は、時分割DSPの動作モードによって、異なる機能に設定されたり、使用されない場合がある。
【0044】
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だけを用いる。
【0045】
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として使用する。
【0046】
時分割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]のタイミングチャートである。アクセスが最短のタイミングで連続して行われる場合について、書き込みと読み出しの場合を合わせて示している。
【0047】
図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に対して共用される。
【0048】
図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が低レベルにあるときに書き込ませる。
【0049】
次回の読み出しまたは書き込みのタイミングは、/R0RASが高レベルに戻った後、/R0RASのプリチャージ・タイムtRPCが所定時間以上(例えば30nsec以上)でなければアクセスできない。したがって、次のアクセスのアドレスaddress(0-1)は、最短でもマスタクロックタイムの第20番まで遅らされる。
したがって、この/R0RASのプリチャージ・タイムtRPCの制約のために、外部メモリ13aの同じEDO-RAM(RO)を使用する限り、約1.5倍程度までしか高速化できず、また、ぎりぎりで動作させる場合は、不具合が起こりがちである。
【0050】
しかし、時分割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倍の速さでメモリアクセスが実現できる。
【0051】
ここで、時分割マイクロプログラム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ステップを実行する。
【0052】
時分割マイクロプログラムDSP0は、マスタクロック第4,5番(図示欄外)のステップにおいて、Address(0-0)への書き込みまたは読み出しを、書き込み部42または読み出し部43,アクセス制御部44,外部メモリアドレス発生部45等に指示する。外部メモリアドレス発生部45は、マスタクロック第8〜13番において、Address(0-0)を出力する。アクセス制御部44は、マスタクロック第9番において/R0RASを低レベルにし、マスタクロック第12番において/ROCASを低レベルにする。
【0053】
書き込みの場合は、アクセス制御部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に出力する。
【0054】
次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第16,17番の1ステップにおいて、時分割マイクロプログラムDSP0が、Address(0-1)への書き込みまたは読み出しを指示することになる。連続したメモリアクセスがない場合には、これ以降のステップで行われることになるが、必ず3の倍数のステップとされる。
一方、時分割マイクロプログラムDSP1は、マスタクロック第10,11番における1ステップにおいて、Address(1-0)への書き込みまたは読み出しを指示する。次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第22,23番の1ステップにおいて、Address(1-1)への書き込みまたは読み出しを指示することになる。
【0055】
図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)の場合と同じアクセスができる。
【0056】
次に、外部メモリ13としてSDRAMを用いた場合のメモリアクセスを、図7〜図9、図11、および、図12を参照して説明する。
図7は、[モード1]における時分割DSP12と外部メモリ13との接続図である。外部メモリ13として、データビット幅16ビット、2バンク構成のSDRAMを1個接続し、2バースト動作で、時分割マイクロプログラムDSP0が32ビットアクセス、時分割マイクロプログラムDSP1が16ビットアクセスをする。あるいは、ともに16ビットアクセスをする。
【0057】
時分割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]に接続する。
【0058】
また、時分割DSP12のCLK,CKE,MQHは、それぞれ、外部メモリ13のCLK,CKE,(DQMUおよびDQML)に接続する。一般に、SDRAMはデータ8ビット毎にマスクを制御するマスク線を有している。DQMU,DQMLは、それぞれ、16ビットデータの上位ビット、下位ビットのマスク線である。ただし、ここでは、16ビットを一括してマスクをするので、MQHをDQMU,DQMLの両者に接続している。
CLKは同期用のシンクロナスクロックの端子である。CKEはクロックイネーブル信号の端子であって、スタンバイモードにするときは低レベルにする。/CSは、チップセレクト端子であり、低レベルに固定する。
【0059】
図11は、図7に示した[モード1]のタイミングチャートである。
メモリチップが2バンク構成をとり、バンク毎にアクセス開始可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
また、2バースト・モードで動作させることにより、1つのアドレスを指定して、連続した2アドレス分のデータの読み書き可能である。これを利用して、この外部メモリ13では、楽音波形データ1サンプル32ビットの記憶を、16ビットを2アドレスに分割して書き込むことにより実現している。
/CASレイテンシは2に設定しており、読み出しの場合に、SCLOCK(シンクロナスクロック)の2クロック後に読み出しデータが出力される。
原理的には、2バンクとも楽音波形データ1サンプル32ビットの記憶が可能であるが、以下に説明するように、一方は1サンプル16ビットの記憶となる。
【0060】
バンク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がラッチされる。
【0061】
一方、バンク0(Area0)が選択されているときの書き込みの場合、/RASの立下り期間にアドレスAddress(0-0)の行(Row)アドレスが読みとられ、/CASの立下り期間に列(Column)アドレスCが読みとられる。
読み出し時に比べ、書き込み時に/CASの立下りエッジは、SCLOCKの1クロック分遅らされ、同時に、/WEを低レベルにする。書き込み時には、レイテンシが0であるので、DQ(W)に示すように、直ちに、小さい側(L)のアドレスに記憶するためのデータが書き込まれ、1SCLOCK後に、大きい側(H)のアドレスに記憶するためのデータが書き込まれる。
【0062】
次に、バンク1(Area1)が選択されているときに書き込みを行う場合、/RASの立下り期間にアドレスAddress(1-0)の行(Row)アドレスが読みとられ、/CASの立下り期間にアドレスAddress(0-0)の列(Column)アドレスが読みとられ、同時に/WEを低レベルにする。
しかし、このとき、データ線には、DQ(R)に示すように、直前のアクセスの読み出しにおける、大きい側(H)のアドレスのデータが残っている。したがって、データ線に書き込みデータを出力できない。データ線は、読み出しと書き込みとで共用している。DQ(R)とDQ(W)とは、同じライン上の信号を便宜的に分けて表示しているにすぎない。
そこで、DQMに示すように、マスク信号を高レベルとして、書き込みデータのマスクをする。したがって、1SCLOCK後に、大きい側(H)のアドレスのデータのみを書き込む。
【0063】
一方、バンク1(Area1)が選択されているときに読み出しを行う場合、読み出される大きい側(H)のアドレスのデータが、さらに次のアクセスにおけるバンク0(Area0)の書き込みと競合することになる。
しかし、上述した書き込みデータに対するマスクは、2SCLOCK後に読み出される大きい側(H)のアドレスのデータに対しても働くので、大きい側(H)のアドレスのデータが読み出されないので、実際には競合しない。
したがって、バンク1(Area1)を使用する時分割マイクロプログラムDSP1は、2バースト・モードであっても、1つのアドレスのデータしか読み書きできないために、楽音波形1サンプル16ビットデータの読み書きをすることになる。なお、書き込みは、大きい側(H)のアドレスに対して行われ、読み出しは小さい側(L)のアドレスに対して行われるので、外部メモリ13へのデータの書き込み時と読み出し時とでは、アドレスを1だけずらせて指定する必要がある。
【0064】
上述した説明とは別に、時分割マイクロプログラムDSP0もまたバンク0に対し、楽音波形データを1サンプル16ビットで記憶させたい場合がある。この場合、図示の例では、DQMに☆を付したタイミングでマスク信号を高レベルにする。そうすると、バンク1と同様、書き込みは大きい側(H)のアドレスに対して行われ、読み出しは小さい側(L)のアドレスに対して行われる。
【0065】
ただし、バンク0に対する16ビット記憶のための上述したマスク☆は必須ではない。まず、読み出しに関しては、大きい側(H)のアドレスのデータまたは小さい側(L)のアドレスの一方を、時分割DSP12側で読み込まなければよい。
書き込みに関しては、楽音波形データの書き込みを、サンプリング周期毎に1回書き込む際に、ベースカウンタが、アドレスを(-1)ずつずらせて指定するようにし、大きい側(H)のアドレスに対してデータを書き込めばよい。このベースカウンタは、図3に示した外部メモリアドレス発生部45の内部にある。小さい側(L)のアドレスで、そのときのデータ線上にあるデータが書き込まれたとしても、次のサンプリング周期のデータの書き込みで上書きされるからである。一方、大きい側(H)のアドレスのデータは上書きされない。
【0066】
1サンプル32ビットの読み書きを行う場合、あるサンプルアドレス(相対アドレスSAD)にアクセスしようとした場合、そのSADを2倍してメモリアドレス(MAD)として使用する。2バースト動作により、小さい側(L)のアドレスMADと大きい側(H)のアドレス(MAD+1)の各16ビットのデータが読み書きされる。
一方、楽音波形データ1サンプル16ビットの読み書きを行う場合は、あるサンプルアドレスSADをアクセスしようとした場合、そのSADをそのままメモリアドレスMADとして使用すればよい。
【0067】
時分割マイクロプログラムDSP0,DSP1のステップタイミングと、書き込み部42、読み出し部43,アクセス制御部44,外部メモリアドレス発生部45の動作タイミングの関係の、簡単な一具体例は次の通りである。
時分割マイクロプログラムDSP0およびDSP1は、図6の場合と同様に、マスタクロック2個分を1ステップとして、交互にステップを実行する。
図11において、時分割マイクロプログラムDSP0は、マスタクロック第4,5番(図示欄外)におけるステップにおいて、Address(0-0)への書き込みまたは読み出しを、書き込み部42または読み出し部43,アクセス制御部44,外部メモリアドレス発生部45等に指示する。
【0068】
外部メモリアドレス発生部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に出力する。
【0069】
次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第16,17番のステップにおいて、Address(0-1)への書き込みまたは読み出しを指示することになる。連続したメモリアクセスがない場合には、これ以降の3の倍数のステップとなる。
一方、時分割マイクロプログラムDSP1は、マスタクロック第10,11番における1ステップにおいて、Address(1-0)への書き込みまたは読み出しを指示する。次の書き込みまたは読み出しは、最短でも、先のステップから3ステップ後の、マスタクロック第22,23番の1ステップにおいて、Address(1-1)への書き込みまたは読み出しを指示することになる。
【0070】
図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アドレス分のデータの読み書きしか行わない。
【0071】
時分割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]に接続する。
【0072】
また、時分割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は、チップセレクト端子であり、低レベルに固定する。
【0073】
図12は、図8に示した[モード2]のタイミングチャートである。
バンク0(Area0)において、/RASの立下り期間に行(Row)アドレスを読み込み、/CASの立下り期間に列(Column)アドレスを読み込む。書き込みの場合は、/WEを低レベルにすると同時に、DQMに示したマスク信号を高レベルにする。
その結果、バースト動作ではあっても、小さい側(L)のアドレスには書き込まれないで、1SCLOCK後に、大きい側(H)のアドレスに、16ビットデータ(外部メモリ13a,13b合わせて32ビット)が書き込まれる。
【0074】
一方、読み出しの場合、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)がラッチされる。
【0075】
図8に示した接続構成で、16ビットアクセスも可能である。
時分割DSP12からの第1,第2のマスク端子MQH,MQLから外部メモリ13a,13bに出力されるマスク信号を制御することにより、あるアドレスの下位16ビットのデータ領域に、先の16ビットサンプルを記憶させ、同じアドレスの上位16ビットのデータ領域に後の16ビットサンプルを記憶させることにより実現される。
あるサンプルアドレスSADをアクセスしようとした場合、その最下位ビット(LSB)がマスク信号として使用され、SADのうちのLSBを除くビットがメモリアドレスMADとして使用される。
【0076】
すなわち、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ビット記憶の場合と同様に、マスク信号を用いた制御は必須のものではない。
【0077】
時分割マイクロプログラムDSP0,DSP1のステップタイミングと、書き込み部42、読み出し部43、アクセス制御部44、外部メモリアドレス発生部45の動作タイミングの関係の、簡単な一具体例は次の通りである。
時分割マイクロプログラムDSP0およびDSP1は、図6,図11の場合とはマスタクロックの番号が1番ずれているが、同様に、マスタクロック2個分を1ステップとして、交互にステップを実行する。
図12において、時分割マイクロプログラムDSP0は、マスタクロック第3,4番(図示欄外)におけるステップにおいて、書き込み部42または読み出し部43、アクセス制御部44、外部メモリアドレス発生部45等に対し、Address(0-0)への書き込みまたは読み出しを指示する。
【0078】
アクセス制御部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)への書き込みまたは読み出しを指示する。
【0079】
図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は、チップセレクト端子であり、低レベルに固定する。
【0080】
図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ビットのメモリアクセスもできる。
【0081】
図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バンク構成をとり、バンク毎にアクセス可能なタイミングをずらせることにより、プリチャージ時間を見かけ上なくしている。
【0082】
時分割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は、チップセレクト端子であり、低レベルに固定する。
【0083】
図13は、図10に示した[モード3]のタイミングチャートである。
バンク0(Area0)において、/RASの立下り期間に行(Row)アドレスを読み込み、/CASの立下り期間に列(Column)アドレスを読み込む。読み出しの場合、列(Column)アドレスの入力と同時に/CASを立ち下げる。/CASレイテンシが1であるので、DQ(R)に示すように、1SCLOCK後に、小さい側(L)のアドレスのデータ16ビットが読み出され、さらに1SCLOCK後に、大きい側(H)のアドレスのデータ16ビットが読み出される。
【0084】
時分割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ビットのサンプルデータを読み書きする。
【0085】
図10に示した接続で、1サンプル16ビットのメモリアクセスをするにはマスク信号を用いて、小さい側(L)のアドレスのデータ16ビットの読み書きをマスクする。
図13において、読み出しのときには☆Rのタイミングで、書き込みのときには☆Wのタイミングで、DQMを高レベルにする。その結果、バースト・モードではあっても、小さい側(L)のアドレスには読み書きされないので、16ビットデータが書き込まれる。
1サンプル32ビットの読み書きを行う場合、または、1サンプル16ビットの読み書きを行う場合の、アドレス(SAD)とメモリアドレス(MAD)との関係、マスク信号が必ずしも必要でないことは、図7,図11を参照して説明した[モード1]の場合と同様である。
【0086】
時分割マイクロプログラム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)を出力する。
【0087】
書き込みの場合に、アクセス制御部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)への書き込みまたは読み出しを指示する。
【0088】
以上で、モード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であっても、基本動作が同様なものであれば、本発明の音波形データ用ディジタル信号処理装置の外部メモリとして用いることができる。
【0089】
上述した時分割DSP12は、モードを切り替え設定するだけで、外部メモリ13として、EDO-DRAM、SDRAM、FCRAMといった種々のDRAMが使えるという多様性のある設計がなされている。その際、並列化したEDO-RAMの交互のメモリアクセスと、SDRAMの各バンクの交互のメモリアクセスとの、タイミング間隔がほぼ同じになるため、メモリアクセスのためのタイミング制御回路が簡単になっている。
【0090】
上述した楽音波形に加えるエフェクトとして、大容量の遅延メモリを必要とするものとして、リバーブ(残響)、コーラス(原音のピッチを微妙にずらした音を原音に重ねて広がりを得る)、バリエーション(ディレイ、ロータリースピーカ、オートパン、アンプシミュレータ、オートワウなど)などがある。
また、大容量の遅延メモリを必要としないものとして、イコライザ(原音の周波数特性の補正)、HPF(原音の基音や低い倍音をカットする)、LPF(原音の高い倍音をカットする)、ハーモニ(原音と調和する音を原音に加える)、コンプレッサ(原音の小音量時に利得を上げ、大音量時に利得を下げて原音のダイナミック・レンジを圧縮する)などがある。
したがって、これらのエフェクトを同時に加える際に、大容量の遅延メモリを必要とするか、高精度の楽音波形データを遅延メモリに記憶させる必要があるか等を考慮して、マイクロプログラムを組めばよい。
【0091】
上述した説明では、電子楽器の音源部で生成された楽音信号にエフェクトを加える場合について説明した。
しかし、本発明の音波形データ用ディジタル信号処理装置は、楽音波形データに限らず、音声などを含む任意の音波形データ用として使用できる。
例えば、カラオケ装置において、マイクロフォンから入力された音声信号に対して同様なエフェクトを加えるのに用いることができる。
オーディオアンプにおいて、入力された楽音信号や音声信号等のオーディオ信号に、ホールの臨場感を加えたり、音場再生をするのに用いることができる。
【0092】
【発明の効果】
本発明は、上述した説明から明らかなように、音波形データの遅延用に大容量が得られるDRAMを用いても、プリチャージのための待機時間を実質的になくして、高速のメモリアクセスができるという効果がある。
メモリアクセスに、バースト・モードを使用すれば、波形信号処理に応じてDRAMに記憶させる音波形データの1サンプルのビット幅を固定設定したり、可変にすることができるという効果がある。
【図面の簡単な説明】
【図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
[0001]
BACKGROUND OF THE INVENTION
The present invention provides effects such as reverb (reverberation) on sound waveforms such as musical sound waveforms and speech waveforms.
The present invention relates to a digital signal processing device for sound waveform data that uses a dynamic random access memory (DRAM) for delaying sound waveform data when (effect) is given.
[0002]
[Prior art]
  Various effects on musical sound signals in electronic musical instruments
In order to add (effect), a digital signal processor (hereinafter referred to as DSP: Digital Signal Processor)U)Is used. The DSP is a microprocessor that is suitable for processing digital signals such as image signals and audio signals, and performs high-speed processing of product-sum operations using a microprogram.
  In a DSP, a plurality of effects are usually executed simultaneously by a microprogram. However, some of the effects to be executed delay the musical sound waveform data for a sufficiently long time compared to one sampling period, such as reverb (reverberation). In order to perform such a long delay, a memory having a large storage capacity corresponding to the delay time is required. However, it is not efficient to incorporate such a large capacity memory in the DSP chip.
  Therefore, for example, as is known in Japanese Patent Application Laid-Open No. 10-198559, etc., it is general that a memory is externally attached to the DSP, and this memory is used for long-time delay of musical sound waveform data. The DSP generates a memory address for reading from and writing to the external memory by subtracting a predetermined value from the value of the base counter every sampling period.
[0003]
In order to delay the musical sound waveform data, a large-capacity memory is required. Therefore, although the access speed is slow, DRAM (Dynamic Random Access Memory) is used. However, the DSP operating clock has been increasing year by year, and the processing speed has been improved. Correspondingly, it is desired to improve the DRAM access speed.
DRAMs include EDO-DRAM (Extended Data Out DRAM), which has faster access in page mode than the original DRAM, and synchronous, high-speed SDRAM (Synchronous DRAM) with increased access stability. However, for access in units of one address, a waiting time is required until the next access is made due to the time required for precharging.
[0004]
When using external memory to delay sound waveform data, page mode is usually not available. This is because if one sample of sound waveform data is written at a certain address, the address to read out the sound waveform data with a delay is far from this when viewed in sampling cycle units.
Also, when a plurality of sound waveform data having different delay times are synthesized, the addresses of a plurality of taps for reading these sound waveform data are separated from each other. For this reason, there are almost no cases where adjacent addresses are continuously accessed. Therefore, it is desired to shorten the waiting time until the next access is performed for each address.
[0005]
Therefore, if the DRAM is configured to have a plurality of banks and each bank is interleaved, apparently there is no waiting time for the above-described precharge. Therefore, it is necessary to adapt the waveform signal processing on the DSP side to interleave control.
There are also SDRAMs that can perform interleave control in a multi-bank configuration, but there is a problem that such EDO-RAMs are not found.
[0006]
On the other hand, in the DSP, one sample of sound waveform data is subjected to signal processing with 32-bit accuracy. However, when the sound waveform data is stored in the external memory in order to delay, it is stored in 16-bit floating point or 32-bit. This is determined by comparing and considering the memory capacity and the accuracy required for individual effects.
Therefore, depending on the type of effect, it is necessary to increase the bit width of one sample of musical sound waveform data in order to increase accuracy. In particular, in the effect such as reverb that requires high quality and / or the effect on the tone waveform obtained by mixing the tone waveforms of multiple parts, the number of bits of the tone waveform data stored in one address of the external memory may be 32 bits. Required.
[0007]
However, it is necessary to reduce the number of data lines corresponding to the bit width in designing to mount the DSP chips on the wiring board with high density, and the bit width cannot be simply increased. Therefore, it is conceivable to adopt a burst mode in which data for a plurality of addresses is sequentially transferred in one access. In SDRAM, burst mode is possible, but depending on the type of SDRAM, there may be a collision on the data line with the next access data.
Even when operating in the burst mode, depending on the type of effect, it may be desired to store the sound waveform data with low accuracy as before.
[0008]
As described above, in the conventional digital signal processing apparatus for musical sound waveform data, when various DRAMs are used as an external memory for delaying musical sound waveform data, the access speed is increased according to each DRAM, It has been required that the number of bits of one sample of waveform data can be made larger than the bit width of the data line.
[0009]
[Problems to be solved by the invention]
  The present invention has been made in order to solve the above-described problems, and is used in an external memory for delaying sound waveform data.Has multiple bank configurationUsing DRAMApparently eliminates waiting time for precharging,high speedAnd easyCan access theUsing a time-sharing microprogramAn object of the present invention is to provide a digital signal processing apparatus for sound waveform data.
  It is another object of the present invention to provide a sound signal data digital signal processing apparatus capable of increasing the bit width of one sample of sound wave data stored in an external memory in accordance with waveform signal processing.
[0010]
[Means for Solving the Problems]
  The present invention according to claim 1, further comprising a waveform signal processing unit and a memory access unit, wherein the waveform signal processing unit performs waveform signal processing for adding an effect to sound waveform data,TwoThe time-division microprogram repeats while switching sequentially in steps of the time-division microprogramIndependentlyIs executed by executing the memory access unit,2Pieces of time-sharing microprogramsToIn order to delay the sound waveform data in the process of waveform signal processing according to the above, it is externally attached via an address line, a data line, and a control line2Each bank of a DRAM having a plurality of banks,2It corresponds to one time-division microprogram and a predetermined repetition period2The divided periods are sequentially2Operating in correspondence with one time-sharing microprogram,2When a write or read request is received from one of the time-division microprograms, an address signal is generated, the address signal is output in a division period corresponding to the time-division microprogram, and the time-division microprogram By outputting a control signal for writing or reading with respect to the bank corresponding to, the sound waveform data is written or read with respect to the bank corresponding to the time-division microprogram.
  Accordingly, since precharging required for one bank to start the next access is performed during the time for accessing another bank, it is possible to eliminate the waiting time necessary for precharging. that time,2Since each time-division microprogram only needs to be read from or written to the corresponding bank, DRAM access control becomes efficient and easy.
[0011]
  According to a second aspect of the present invention, in the digital signal processing apparatus for sound waveform data according to the first aspect, the external DRAM can be accessed in an N burst mode (N is an integer of 2 or more). And the memory access unit is2From one of the time-division microprograms, the bit width of the sound waveform data to be stored in the bank corresponding to the time-division microprogram is T times (T is a positive integer less than or equal to N) when stored in a single address ), A control signal for writing or reading the sound waveform data in the N burst mode is output to the DRAM. The sound waveform data is written or read at T transfer timings among N transfer timings in the N burst mode.
  Depending on the combination of the DRAM and the access method, normal access may not be possible in the N burst mode. In such a case, the time division microprogram corresponding to a part of the bank is T times smaller than N. A fixed bit width may be used.
[0012]
  According to a third aspect of the present invention, in the digital signal processing apparatus for sound waveform data according to the first aspect, the external DRAM can be accessed in an N burst mode (N is an integer of 2 or more). And the memory access unit is2From one of the time-division microprograms, the bit width of the sound waveform data to be stored in the bank corresponding to the time-division microprogram is T times (T is a positive integer less than or equal to N) when stored in a single address ), A control signal for writing or reading the sound waveform data in the N burst mode is output to the DRAM. The sound waveform data is written or read at T transfer timings among N transfer timings in the N burst mode.
  Therefore, it is possible to read and write the sound waveform data having a variable bit width of T times that is stored in a single address for two time-division microprograms without increasing the number of data terminals. Therefore, the bit width can be variably set according to the types of the plurality of effects executed in the process of two time-division microprograms.
[0013]
  In each of the above-described claims, the number of waveform signal processes executed in one time-division waveform signal process is not limited to one. A plurality of different waveform signal processes may be sequentially executed in the process of one time division waveform signal process.
  The digital signal processing apparatus for sound waveform data is the above-described one.2You may perform the time-sharing process of the number exceeding a piece. In this case,2In the remaining time division processing periods other than the time division processing periods, signal processing other than waveform signal processing for adding an effect to the sound waveform data can be executed.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
First, the hardware configuration of an electronic musical instrument in which the digital signal processing apparatus for sound waveform data according to the present invention is used will be described.
FIG. 1 is a hardware configuration diagram of an electronic musical instrument.
In the figure, 1 is a CPU, 2 is a ROM, 3 is a RAM, 4 is a bus line, and 5 is a timer.
The CPU 1 controls the entire electronic musical instrument by using the hardware connected to the bus line 4 and executing the RAM 4 as a working area using the program and data stored in the ROM 3. Also, based on the input performance data and music data, a tone control parameter to be output to the sound source unit 9, the mixer 10, and the time division DSP 12 is generated, or performance data is output to an external device.
The ROM 2 may store music data for automatic performance.
The timer 5 generates an interrupt signal for the operation clock of the CPU 1 and the timer interrupt processing of the program, and outputs it to the CPU 1.
[0015]
Reference numeral 6 denotes an operator for performance such as a keyboard or pedal, a setting operator such as tone setting and effect provided on the panel of the electronic musical instrument, an operator for controlling automatic performance, and the like. . Reference numeral 7 denotes a display that displays a setting input screen for the electronic musical instrument, setting contents, an operation state, and the like.
8 is a communication interface for inputting / outputting MIDI data to / from an external MIDI device and / or downloading performance data to / from a server or personal computer via a communication network such as a LAN or a public communication network. It is an interface for performing streaming playback and the like.
[0016]
Reference numeral 9 denotes a sound source unit which inputs a musical tone control parameter and generates a musical tone signal. A sound source of the waveform memory sound source system has a waveform memory, reads a musical tone waveform of a specified tone color from the waveform memory, and generates a musical tone signal by performing pitch control and envelope control. Usually, it has a plurality of sound generation channels, and a musical sound signal of a plurality of parts is generated.
10 is a mixer, 11 is a waveform I / O, 12 is a time division DSP, 13 is an external memory, 14 is a DAC, and 15 is a sound system.
The mixer 10 inputs the musical sound signals of a plurality of parts output from the sound source unit 9, inputs the musical sound signals processed from the time division DSP 12 and the waveform I / O 11, synthesizes them, and outputs them to the DAC 14. At the same time, a musical sound signal is output to the waveform I / O 11 and the time division DSP 12. The mixer 10 controls the input to the mixer 10 and the output from the mixer 10, the synthesis ratio, the output volume level, and the like by the CPU 1.
[0017]
The waveform I / O 11 outputs a musical sound signal to an effect applying device (effector) externally attached to the electronic musical instrument, and returns the output of the effect applying device to the mixer 10.
The time division DSP 12 processes the synthesized musical sound signal and returns it to the mixer 10.
The waveform I / O 11 and the time-division DSP 12 are not limited to inputting a synthesized tone signal, and can select a tone signal of a specific part and apply different effects to each part.
[0018]
The time division DSP 12 performs waveform signal processing by a microprogram in which all steps are executed once during one sampling period (for example, 48 kHz) of musical sound waveform data. Through the time division processing, a plurality of time division microprograms substantially execute all the steps once in each of the sampling periods described above.
The time division DSP 12 is externally attached with an external memory 13 mainly used for delaying musical sound waveform data. The processing mode of the time division DSP 12 is controlled by the CPU 1.
The synthesized signal of the musical sound signal that is finally output from the mixer 10 is converted into an analog signal by the DAC 14, output to the sound system 15, and emitted from a speaker or the like.
[0019]
In the specific example described below, the number of time divisions is set to 2, and each time two time division microprograms execute one step, switching to one step of another time division microprogram is performed. Further, the external memory 13 can be accessed in one step of these three steps.
However, the number of time divisions may be 3 or more. In some processes of the time division process, a target waveform signal process different from the effect addition may be performed.
[0020]
In the waveform signal processing executed by one time-division microprogram, the number of effects given is not limited to one. A plurality of effects of the same or different types can be given.
In the example shown below, each time-division microprogram has a multi-block configuration, and each block executes an individual effect algorithm.
In order to stop only some effects or replace some effects with another effect, the processing of the microprogram can be stopped or replaced with another microprogram for each block.
[0021]
FIG. 2 is an explanatory diagram for conceptually explaining writing and reading of musical sound waveform data performed between the digital signal processing device for musical sound waveform data and an external memory.
In the figure, numeral 21 is a digital signal processing apparatus for musical sound waveform data for giving an effect to musical sound waveform data, and has a waveform signal processing section 22 and a memory access section conceptually shown by switches 23a and 23b. The waveform signal processing unit 22 may include time-division waveform signal processing units 22a and 22b.
Reference numerals 24, 24a and 24b denote DRAMs as external memories. In addition to two independent DRAMs, there may be two banks provided within one DRAM. Conventionally, there has been a 2-bank SDRAM, but a 2-bank EDO-DRAM is not known.
In the figure, a line connecting the waveform signal processing unit 22 and the DRAMs 24a and 24b via the switches 23a and 23b is output in response to a write or read request from the waveform signal processing unit 22 for access. Represents the output line of the control signal. The state of the switches 23a and 23b indicates whether or not the access can be started. Actually, the switches 23a and 23b are not present in the digital signal processor 21 for musical tone waveform data. The control signal for access is actually represented by a change in signal level on the control line.
In practice, a data line and an address line are connected between the musical sound waveform data digital signal processor 21 and the DRAMs 24a and 24b, but they are omitted in this figure.
[0022]
In FIG. 2A, a digital signal processing device 21 for musical tone waveform data has a waveform signal processing unit 22, and two DRAMs 24a and 24b are provided as external memories for delaying musical tone waveform data in the course of waveform signal processing. Use in parallel.
The switches 23a and 23b can start access to the external DRAMs 24a and 24b at a timing shifted from each other by a predetermined time. However, the DRAMs 24a and 24b are not selectively placed in the access state, but are shifted to the access state in parallel by shifting the access start timing.
[0023]
  When the waveform signal processing unit 22 makes a write or read request, the switches 23a and 23b switch the DRAM signal 24a or the DRAM 24b at a timing at which access can be started from the waveform signal processing unit 22 and the two DRAMs 24a and 24b. The musical tone waveform data is written or read out.
  For example, when the waveform signal processing unit 22 makes a write or read request while one DRAM 24a is being accessed, another DRAM 24b can start access.. DRAM 24aAfter ending accessThe precharge required for the next access is another DRAM 24b.ofSince it is performed during access, the waveform signal processing unit 22 does not need to wait for the start of access for precharging.
[0024]
2 (b) and 2 (c) are equivalent to time division by the waveform signal processing unit 22 shown in FIG. 2 (a) switching between two waveform signal processing alternately by time division processing. This is a case where the waveform signal processing units 22a and 22b are provided.
In FIG. 2B, time-division waveform signal processing units 22a and 22b are externally attached to the time-division waveform signal processing units 22a and 22b in order to delay the musical sound waveform data in the respective waveform signal processing processes. DRAM 24a and 24b to be used. The switches 23a and 23b can start access to the DRAMs 24a and 24b at a timing shifted from each other by a predetermined time.
[0025]
  For example, when the time division waveform signal processing unit 22a makes a write or read request, the switch 23a writes or reads musical sound waveform data at a timing at which the corresponding DRAM 24a can start access. If access from the time division waveform signal processing unit 22a to the DRAM 24a is started, access to the DRAM 24b from another time division waveform signal processing unit 22b can be started with a predetermined time lag..
DRAM 24aAfter ending accessThe precharge necessary until the next access can be performed while another time division waveform signal processing unit 22b is accessing the DRAM 24b. As a result, the time division waveform signal processing unit 22a does not need to wait for the start of access for precharging.
  At this time, the time-division waveform signal processing units 22a and 22b only need to read from or write to the corresponding DRAMs 24a and 24b, so that the waveform signal processing unit 22 can access the DRAMs 24a and 24b efficiently and easily.
[0026]
Also in FIG. 2C, the waveform signal processing unit 22 equivalently includes two time-division waveform signal processing units 22a and 22b.
The time division waveform signal processing unit 22a uses the DRAM 24a in order to delay the musical sound waveform data in the waveform signal processing process.
The switch 23a can start access to the DRAM 24a at a predetermined timing. When the time division waveform signal processing unit 22a makes a write or read request, the switch 23a writes or reads musical sound waveform data at a timing at which the DRAM 24a can start access. Access to the DRAM 24a needs to wait for precharge necessary until the next access.
[0027]
Therefore, when viewed as the waveform signal processing unit 22, the access speed is lower than that in FIG. However, the time-division waveform signal processing unit 22a has the same access speed as that shown in FIG.
As a result, the time division waveform signal processing unit 22a can efficiently access the DRAM 24a.
The time-division waveform signal processing unit 22b may not access the DRAM 24a, but may perform waveform signal processing of an effect that does not require a long delay of sound waveform data.
[0028]
In FIG. 2A described above, the number of DRAMs is set to two, and access can be started at two different timings. In general, the number of DRAMs is set to 2 or more, and access can be started at a timing shifted by K times from each other by a predetermined time.
In FIG. 2B described above, the number of time divisions of the waveform signal processing unit 22 is set to 2, but in general, it can be set to 2 or more. According to the K time-division waveform signal processing units equal to or less than the value of M, the number of DRAMs may be K, and access may be started at a timing shifted from the K by a predetermined time.
The remaining time-division waveform signal processing units excluding K cannot access the DRAM as in the case of the time-division waveform signal processing unit 22b of FIG. 2C, but do not require a long delay of the sound waveform data. Signal processing may be performed.
Also in FIG. 2C described above, the number of time divisions of the waveform signal processing unit 22 can be generally set to 2 or more.
[0029]
In the description with reference to FIG. 2, the time-division waveform signal processing units 22a and 22b have been described as being able to access the DRAM every step of the microprogram. However, the time division switching timing can be made faster than the switching of the timing at which access to the memory can be started.
In the specific operation example shown below, the speed is tripled. As a result, the time division waveform signal processing units 22a and 22b can start accessing the memory only once every three steps at the shortest. However, in waveform signal processing for applying an effect to musical sound waveform data, it is not always necessary to access the external memory in successive steps.
[0030]
Further, when the number of time divisions of the waveform signal processing for applying the effect is M, the time division signal processing exceeding the M number may be executed. For example, time division signal processing with four divisions is performed, of which the first and third time division waveform signal processing performs waveform signal processing for adding effects, and the remaining second and third time divisions In the waveform signal processing, other signal processing, for example, processing such as zero cross detection for detecting the pitch of the musical sound waveform is performed.
[0031]
The internal configuration of the musical tone waveform data digital signal processing apparatus and the memory access operation with the external memory will be specifically described below.
FIG. 3 is an internal block diagram of the time division DSP 12 shown in FIG.
In the figure, reference numeral 31 denotes an arithmetic unit, which has a plurality of selectors, multipliers, and adders. 32 is an I-RAM, 33 is a T-RAM (temporary RAM), and 34 is a Y-RAM, which constitute a register unit for data input to the arithmetic unit 31. Reference numeral 35 denotes a bus line, and the calculation result of the calculation unit 31 is output.
Each output of the LFO (low frequency oscillator) 36, EG (envelope generator) 37, I / O 38 (input / output unit), and data of the bus line 35 are input to the I-RAM 32. See FIG. As will be described later, the data is temporarily stored in the corresponding area. The I-RAM 32 outputs the temporarily stored data to the arithmetic unit 31 or the I / O 38.
[0032]
An LFO (low frequency oscillator) 36 generates a low frequency oscillation waveform by calculation. Used to add vibrato and tremolo effects.
An EG (envelope generator) 37 generates an envelope waveform by calculation. Used when the time-division DSP 12 is used as a musical sound waveform generator.
The I / O 38 bi-directionally transfers data to and from the mixer 10 shown in FIG.
Each of the LFO 36, EG 37, and I / O 38 has 32 channels.
On the other hand, the T-RAM 33 and the Y-RAM 34 temporarily store the output data of the arithmetic unit 31 output on the bus line 35 or the musical sound waveform data read from the external memory 13 with a delay.
[0033]
The calculation unit 31 also receives the output of the coefficient generation unit 39. The coefficient generator 39 performs an interpolation operation on the coefficients stored in the coefficient RAM 40. This coefficient is stored in the coefficient RAM 40 corresponding to each step of the microprogram.
The other (LFO, EG) register 41 is used in an LFO (low frequency oscillator) 36, for example, a control parameter value of frequency, amplitude, waveform shape, or EG (envelope generator) 37. For example, values such as a start flag, an attack time, and an attack rate are stored for each channel.
The calculation unit 31 multiplies, for example, one output value of the coefficient generation unit 39 or the Y-RAM 34 and one output value of the I-RAM 32 or the T-RAM 33 by a plurality of selectors provided therein. An operation such as adding one output value of the I-RAM 32 or the T-RAM 33 to the product is performed. The hardware in the arithmetic unit 31 operates at a higher speed than one step of the microprogram.
[0034]
A writing unit 42 writes data on the bus line 35 to the external memory 13 via the data line.
A reading unit 43 reads data read from the external memory 13 via a data line and outputs it on the bus line 35.
An access control unit 44 outputs various control signals to the external memory via the control line at a predetermined timing in order to access the external memory 13.
The data line is shared between input and output, and is switched between writing and reading by a / WEN (write enable) signal output from the access control unit 44.
[0035]
The calculation unit 31 calculates the musical sound waveform data with 32-bit accuracy. However, when storing in the external memory 13, the musical sound waveform data is stored in 32-bit precision or 16-bit precision floating point. Therefore, when writing is performed with 16-bit precision floating point or when reading is performed, code conversion is performed by the writing unit 42 and the reading unit 43, respectively.
Reference numeral 45 is an external memory address generation unit, 46 is an external memory access AD (address) register, and 47 is an external memory B (block) information register.
The external memory access AD (address) register 46 stores an address for accessing each step in a storage area corresponding to a step accessible to the external memory 13 in the microprogram.
[0036]
In the external memory 13, an area used by the block is assigned to each block described later in the microprogram. The external memory B (block) information register 47 stores the start address and block size of the area used by each block of the microprogram in the external memory 13.
The external memory address generation unit 45 includes a base counter, and the address output from the external memory access AD (address) register 46, the start address and block size output from the external memory B (block) information register 47, and the like. The memory address consisting of a column address and a column address is calculated and output to the address line.
The value of the base counter is (−1) for each sampling period when the musical sound waveform data is stored in 16 bits, and (−2) for each sampling period when stored in 32 bits.
The external memory address generator 45 can also modulate the address output from the external memory access AD (address) register 46 with the data input via the bus line 35.
[0037]
The time division DSP 12 described above is controlled by a microprogram stored in the microprogram register 49. The start step register 50 stores the start step number of each of a plurality of blocks to be described later of the microprogram. The microprogram reading unit 48 executes all the steps of each of the plurality of time-division microprograms once during one sampling period, and in each step, the step number of the step and the first step stored in the first step register 50 The block number of the block currently being executed is output based on the number, and the control signal is output based on the microcode of the corresponding step, whereby the calculation unit 31, I-RAM 32, T-RAM 33, Y-RAM 34, etc. By controlling the register, the external memory address generation unit 45, etc., calculations for a plurality of effects are executed.
[0038]
FIG. 4 is an explanatory diagram of the microprogram of the time division DSP 12, the I-RAM 32, and the external memory interface.
4A is an explanatory diagram of the program configuration of the time-division microprograms DSP0 and DSP1, FIG. 4B is an explanatory diagram of the memory structure of the I-RAM 32, and FIG. 4C is an explanation of terminals related to the external memory interface. FIG.
Although the time-division DSP 12 shown in FIG. 3 is one in terms of hardware, it is functionally operated as two independent microprograms by a time-division operation in which switching is performed alternately in units of steps. I have to.
[0039]
As shown in FIG. 4A, the time-division microprograms DSP0 and DSP1 can further execute the same or different types of effects simultaneously by performing a multi-block operation.
In the multi-block operation, all 512 steps are divided into a plurality of blocks (effector blocks, for example, a maximum of 16 blocks, 3 steps), and an independent effect algorithm is executed for each block. By executing all the steps during one sampling period, each effect algorithm step is executed once during one sampling period (48 kHz).
[0040]
As shown in FIG. 4B, the memory structure of the I-RAM 32 corresponds to the above-described program configuration, for example, as follows.
In the common access area A, dedicated areas are provided independently for each of the time-division microprograms DSP0 and DSP1, each having 16 words. This is an area common to a plurality of blocks.
The common access area B has two 16-word areas, but the time-division microprograms DSP0 and DSP1 that access each area are changed every sampling period. That is, in a certain sampling period, DSP0 accesses one area and DSP1 accesses the other area, and in the next sampling period, DSP1 accesses the other area and DSP0 accesses the other area. Using this area, data can be transferred between the time-division microprograms DSP0 and DSP1.
[0041]
The I / O area is an area for writing to and reading from the I / O section 38, and the LFO area and the EG area are areas for reading from the LFO section 36 and the EG section 37, both of which have 32 channels. Assigned to any block.
The individual access area has, for example, 128 words, and this area is divided into blocks and assigned to each block. In each block, the allocated area can be used as a dedicated area for that block. As a result, it is not rewritten by another block.
The common access areas A and B and the individual access areas described above each have two areas so that the time division microprograms DSP0 and DSP1 can access different areas. The I / O area has two areas: a writing area for outputting to the I / O section 38 and a reading area for inputting from the I / O section 38.
[0042]
Although not shown, the T-RAM (temporary RAM) 33 includes a common access area A, a common access area B, and an individual access area as in the case of the I-RAM 32, but includes an I / O area and an LFO area. There is no EG area. The amount of stored data is large, about twice that of I-RAM 32.
The Y-RAM 34 includes a common access area A and individual access areas. Since the coefficient used for the calculation is temporarily stored, the amount of stored data may be small.
If the musical sound waveform data is delayed for a short time in the signal processing process, it can be realized by using the above-described I-RAM 32 or T-RAM 33. However, the delay over a long time can be written to the external memory 13 and read out. To achieve.
[0043]
Next, an interface to the external memory 13 will be described with reference to FIG.
The time-division microprograms DSP0 and DSP1 are designed so as to be able to access the external memory 13 every three steps, that is, in the 512th step, in the 0th step and a step having a number that is a multiple of 3.
As an access mode for the external memory 13, there are a plurality of modes depending on the type of DRAM used for the external memory 13, which is set at the time of use. The external memory 13 can store musical sound waveform data with 1-sample 16-bit precision (floating point) or 32-bit precision. However, depending on the type and mode of the external memory 13, it may be limited to 16-bit precision (floating point).
The function of the connection terminal may be set to a different function or not used depending on the operation mode of the time division DSP.
[0044]
RASN is an output terminal for a raw (row) address fetch signal. CASN is an output terminal for a column address capturing signal. Both capture at the falling edge. / WEN (write enable) is an output terminal of a write / read switching control signal, and a low level means writing.
A [13: 0] is an output terminal of the address lines 13-0. When two EDO-DRAMs are used, the first / OE (output enable) terminal is connected to A [12], and the second / OE terminal is connected to A [13].
D [31: 0] is a data input / output terminal of the data lines 31-0. When using a 16-bit width, only data lines 15-0 are used.
[0045]
CLK is a synchronous clock for SDRAM, and CKE is a clock enable output terminal. When the time division DSP is set to the standby mode, CKE is set to a low level. MQH and MQL are SDRAM mask signal output terminals. When the data line to the external memory 13 is 16 bits, only MQH is used. When the data line to the external memory is 32 bits, MQH is used. Is used as a mask for the upper 16 bits, and MQL is used as a mask for the lower 16 bits.
When using two EDO-DRAMs, use CKE as the RAS of the second EDO-DRAM, MQH as the CAS of the second EDO-DRAM, and MQL as the WEN of the second EDO-DRAM. .
[0046]
The time division DSP 12 has an operation mode register (not shown) in the register group of FIG. 3, and the operation mode is set when the CPU 1 writes the operation mode in the operation mode register.
Hereinafter, data transfer operations between the time-division DSP 12 and various DRAMs used as the external memory 13 will be described for each operation mode of the time-division DSP 12, and a specific example for speeding up DRAM access will be described.
FIG. 5 is a connection diagram of the time division DSP 12 and the external memory 13 in [Mode 0].
Fig. 5 (a) shows two EDO-RAMs (R0, R1) In the case of connection, FIG. 5B shows one EDO-DRAM (R0It is a connection diagram when connecting.
FIG. 6 is a timing chart of [Mode 0] shown in FIG. In the case where access is continuously performed at the shortest timing, the case of writing and reading are shown together.
[0047]
In FIG. 5A, two external memories are used. Respective external memories 13a and 13b are connected to EDO-DRAM (R0), EDO-DRAM (R1). RASN, CASN, and WEN of the time division DSP 12 are connected to / RAS, / CAS, and / WE of the external memory 13a, respectively. A [12] of the time division DSP 12 is connected to / OE of the external memory 13a.
When a 16 Mbit memory is used, A [9: 0] of the time division DSP 12 is connected to A [9: 0] of the external memories 13a and 13b. The data line is 16 bits, and D [31:16] of the time division DSP 12 is connected to D [15: 0] of the external memories 13a and 13b.
CKE, MQH, MQL, and A [13] of the time division DSP 12 send signals equivalent to RASN, CASN, WEN, and A [12] for the time division microprogram DSP0 to the external memory 13b. Output for use. Therefore, the terminals for outputting the respective signals are connected to the terminals of / RAS, / CAS, / WE, / OE of the external memory 13b.
The address bus A [9: 0] and the data bus D [31:16] are shared by the time division microprograms DSP0 and DSP1.
[0048]
In FIG. 6, / R0At the falling edge of RAS, the Row address at address Address (0-0) is read, then / R0Column address is read at the falling edge of CAS.
When reading, / R0OE is low, / R0WE is high and / R0When CAS is at a low level, data Data (0-0) indicated by DQ (R) is read.
Since the output start timing and output end timing of data Data (0-0) vary greatly depending on the type of EDO-RAM, FIG. 6 shows a plurality of rising and falling edges. Data Data (0-0) is latched like data Data (0-0) indicated by Area0Latch in the read unit 43 on the time division DSP 12 side.
On the other hand, at the time of writing, in the writing unit 42 on the time division DSP 12 side, / R0Set OE to high level and write data shown in DQ (W) to / R0Write when WE is at low level.
[0049]
The next read or write timing is / R0/ R after RAS returns to high level0RAS precharge time tRPCCannot be accessed unless the time is longer than a predetermined time (for example, 30 nsec or more). Therefore, the address address (0-1) of the next access is delayed to the 20th master clock time at the shortest.
So this / R0RAS precharge time tRPCDue to the same EDO-RAM (ROAs long as it is used, the speed can be increased only up to about 1.5 times.
[0050]
However, from the time division DSP 12 side, the EDO-RAM (R1), EDO-RAM (RO) And start access at a timing deviated from each other, while using the data line and address line in common, DSP1 and EDO-RAM (R1) To write and read musical sound waveform data. That is, address Address (1-0), address Address (1-1), etc. are specified, and time-division microprogram DSP0 and EDO-RAM (R0) Is performed in exactly the same way.
EDO-RAM (R0) And EDO-RAM (R1) Is accessed at a timing deviating from each other, so that the necessary precharge immediately after accessing one EDO-RAM can be performed during the time to access the other EDO-RAM. Therefore, EDO-DRAM / R0RAS, / R1RAS precharge time tRPCThis limitation can be avoided. As a result, the memory access of the time division DSP 12 can be realized at twice the speed.
[0051]
Here, the relationship between the step timings of the time division microprograms DSP0 and DSP1 and the operation timings of the writing unit 42, the reading unit 43, the access control unit 44, and the external memory address generation unit 45 will be described with a simple specific example. deep.
6, the time-division microprogram DSP0 executes one step in each of the master clocks Nos. 8, 9, 12, 13, 16, 16, 17, 20, 21,. On the other hand, the time division microprogram DSP1 executes one step in each of the master clocks Nos. 6, 7, 10, 11, 14, 14, 15, 18, 19,.
[0052]
The time-division microprogram DSP0 reads or writes to Address (0-0) in the steps of master clocks Nos. 4 and 5 (not shown), writing unit 42 or reading unit 43, access control unit 44, external memory An instruction is given to the address generator 45 and the like. The external memory address generator 45 outputs Address (0-0) in the master clocks Nos. 8-13. The access control unit 44 uses the master clock No. 9 / R0Set RAS to low level.OLower CAS level.
[0053]
In the case of writing, the access control unit 44 uses / R in the master clocks Nos. 8-19.0OE is set to low level, and / ROWE is set to high level with master clock Nos. 14-17. The writing unit 42 outputs the write data indicated by DQ (W) to the data line with the master clock Nos. 13-18.
In the case of reading, the access control unit 44 uses / R in the master clocks Nos. 8-19.0Lower OE. The read unit 43 latches the read data Data (0-0) indicated by DQ (R) on the data line at the master clock No. 17, and the Data (0-0) on the Area0 Latch at the 20th and 21st bits. Is output to the bus line 35.
[0054]
As for the next writing or reading, the time-division microprogram DSP0 writes or reads to Address (0-1) in one step of the master clock Nos. 16 and 17 after three steps from the previous step at the shortest. I will tell you. If there is no continuous memory access, it is performed in subsequent steps, but it is always a multiple of 3.
On the other hand, the time division microprogram DSP1 instructs writing or reading to Address (1-0) in one step of the master clocks Nos. 10 and 11. The next write or read is instructed to write to or read from Address (1-1) in one step of the master clock Nos. 22 and 23, three steps after the previous step.
[0055]
In FIG. 5B, RASN, CASN, WEN, A [12], A [9: 0], and D [31:16] of the time division DSP 12 are the same as those in the external memory 13 as in FIG. Connect to the terminal. The DSP 1 of the time division DSP 12 does not access the external memory 13.
Therefore, in the timing chart shown in FIG. 6, the time-division microprogram DSP0 and EDO-DRAM (R0) Between the address Address (0-0) and Address (0-1).
As a result, there is a waiting time necessary for precharging, but the same access as in the case of FIG.
[0056]
Next, memory access when an SDRAM is used as the external memory 13 will be described with reference to FIG. 7 to FIG. 9, FIG. 11, and FIG.
FIG. 7 is a connection diagram of the time division DSP 12 and the external memory 13 in [Mode 1]. As the external memory 13, one SDRAM having a data bit width of 16 bits and two banks is connected, and in a 2-burst operation, the time-division microprogram DSP0 has 32-bit access and the time-division microprogram DSP1 has 16-bit access. Alternatively, both perform 16-bit access.
[0057]
RASN, CASN, and WEN of the time division DSP 12 are connected to / RAS, / CAS, and / WE of the external memory 13, respectively. When 64Mbit SDRAM is used, A [13] and A [12] of the time-division DSP 12 function as A [12] (acts as the BA1 terminal) and A [13] (acts as the BA0 terminal) of the external memory, respectively. ).
BA0 and BA1 are bank select signals. A [11: 0] is connected to A [11: 0] of the external memory 13. However, A [10] is used as an auto precharge bit terminal. Only A [7: 0] is used for the column address. D [31:16] of the time division DSP 12 is connected to D [15: 0] of the external memory 13.
[0058]
Further, CLK, CKE, and MQH of the time division DSP 12 are connected to CLK, CKE, and (DQMU and DQML) of the external memory 13, respectively. Generally, the SDRAM has a mask line for controlling the mask every 8 bits of data. DQMU and DQML are mask lines for upper bits and lower bits of 16-bit data, respectively. However, since 16 bits are masked together here, MQH is connected to both DQMU and DQML.
CLK is a terminal of a synchronous clock for synchronization. CKE is a terminal for a clock enable signal, and is set to a low level when the standby mode is set. / CS is a chip select terminal and is fixed at a low level.
[0059]
FIG. 11 is a timing chart of [Mode 1] shown in FIG.
The memory chip has a 2-bank configuration, and the precharge time is made apparent by shifting the timing at which access can be started for each bank.
Further, by operating in the 2-burst mode, it is possible to read and write data for two consecutive addresses by designating one address. Using this, the external memory 13 realizes the storage of the musical sound waveform data of one sample of 32 bits by dividing the 16 bits into two addresses and writing them.
/ CAS latency is set to 2, and in the case of reading, read data is output after 2 clocks of SCLOCK (synchronous clock).
In principle, two banks can store musical sound waveform data of 32 bits per sample, but one of them stores 16 bits per sample as described below.
[0060]
  / RAS falling period when bank 0 (Area0) is selectedAThe row address of the address Address (0-0) is read, and the column address is read during the falling period of / CAS. In SDRAM, various signals such as / RAS, / CAS, / WE, and address are fetched at the timing around the center of the clock.
  The read data is delayed by 2 clocks of SCLOCK, and as shown in DQ (R), the data stored in the address on the smaller side (L) is read first, and the address on the next larger side (H) is read. The stored data is read out.
  On the time division DSP 12 side, L and H of Data (0-0) are latched in the reading unit 43 as indicated by area0Latch.
[0061]
  On the other hand, in the case of writing when bank 0 (Area0) is selected, the row address of the address Address (0-0) is read during the falling period of / RAS, and during the falling period of / CAS. Column address C is read.
  Compared to reading, the falling edge of / CAS at the time of writing is delayed by one SCLOCK clock, and at the same time, / WE is set to a low level. At the time of writing, since the latency is 0, as shown in DQ (W), the data to be stored in the address on the smaller side (L) is immediately written, and 1 SCLOCAfter K, data to be stored at the address on the larger side (H) is written.
[0062]
Next, if writing is performed while bank 1 (Area1) is selected, the row address of address Address (1-0) is read during the falling period of / RAS and the falling edge of / CAS During the period, the column address of the address Address (0-0) is read, and at the same time, / WE is made low.
However, at this time, as shown by DQ (R), the data of the address on the larger side (H) in the previous access read remains on the data line. Therefore, write data cannot be output to the data line. The data line is shared for reading and writing. DQ (R) and DQ (W) are merely displaying signals on the same line separately for convenience.
Therefore, as shown in DQM, the mask signal is set to a high level to mask the write data. Therefore, only the data of the address on the larger side (H) is written after 1 SCLOCK.
[0063]
On the other hand, when reading is performed when bank 1 (Area1) is selected, the data of the address on the larger side (H) to be read conflicts with the writing of bank 0 (Area0) in the next access. .
However, since the mask for the write data described above also works for the data on the larger side (H) address read after 2 SCLOCK, the data on the larger side (H) address is not read, so there is no actual contention. .
Therefore, the time-division microprogram DSP1 using the bank 1 (Area1) can read and write only the data of one address even in the 2-burst mode. Become. Note that writing is performed on the address on the larger side (H) and reading is performed on the address on the smaller side (L). Must be specified with a shift of 1.
[0064]
Apart from the above description, the time-division microprogram DSP0 may also want to store musical tone waveform data in bank 0 with 1 sample 16 bits. In this case, in the example shown in the figure, the mask signal is set to the high level at the timing marked with DQM. Then, as with the bank 1, writing is performed on the larger side (H) address, and reading is performed on the smaller side (L) address.
[0065]
However, the above-described mask ☆ for 16-bit storage for bank 0 is not essential. First, regarding the reading, one of the data on the large side (H) address or the small side (L) address may not be read on the time division DSP 12 side.
As for writing, when writing musical tone waveform data once every sampling period, the base counter shifts the address by (-1) and designates the data for the larger address (H). Can be written. This base counter is in the external memory address generation unit 45 shown in FIG. This is because even if the data on the data line at that time is written at the address on the smaller side (L), it is overwritten by the writing of data in the next sampling period. On the other hand, the data at the larger address (H) is not overwritten.
[0066]
When reading / writing one sample of 32 bits, when trying to access a certain sample address (relative address SAD), the SAD is doubled and used as a memory address (MAD). By the 2-burst operation, 16-bit data of each of the small side (L) address MAD and the large side (H) address (MAD + 1) is read and written.
On the other hand, when reading / writing 16-bit musical sound waveform data, if a sample address SAD is to be accessed, the SAD may be used as it is as the memory address MAD.
[0067]
A simple specific example of the relationship between the step timing of the time-division microprograms DSP0 and DSP1 and the operation timing of the writing unit 42, reading unit 43, access control unit 44, and external memory address generation unit 45 is as follows.
As in the case of FIG. 6, the time division microprograms DSP0 and DSP1 execute the steps alternately with two master clocks as one step.
In FIG. 11, the time-division microprogram DSP0 performs writing or reading to Address (0-0) in the steps of master clocks 4 and 5 (not shown), writing unit 42 or reading unit 43, and access control unit. 44, instructing the external memory address generator 45 and the like.
[0068]
The external memory address generation unit 45 outputs Address (0-0) in the master clocks Nos. 8 to 13. The access control unit 44 sets / RAS to low level in the master clock No. 8.
In the case of writing, the access control unit 44 sets / CAS and / WE to low level in the master clocks Nos. 12 and 13. The writing unit 42 outputs the write data indicated by DQ (W) with the master clocks Nos. 12-17.
In the case of reading, the access control unit 44 sets / CAS to low level in the master clocks Nos. 10 and 11. The read unit 43 latches the read data Data (0-0) indicated by DQ (R) at the master clocks 15 to 16 and 17 to 18, and at the 20th and 21st, the data on the Area0 Latch is latched. (0-0) 16 × 2 bits are output to the bus line 35.
[0069]
The next writing or reading is instructed to write to or read from Address (0-1) in the master clock Nos. 16 and 17 steps, three steps after the previous step. If there is no continuous memory access, the next step is a multiple of 3.
On the other hand, the time division microprogram DSP1 instructs writing or reading to Address (1-0) in one step of the master clocks Nos. 10 and 11. The next write or read is instructed to write to or read from Address (1-1) in one step of the master clock Nos. 22 and 23, three steps after the previous step.
[0070]
FIG. 8 is a connection diagram between the time division DSP 12 and the external memory 13 in [Mode 2].
The time-division DSP 12 has a data bit width of 32 bits, which is divided into two parts, and a data bit width of 16 bits and two banks of two SDRAMs are connected in parallel, so that a sample of musical sound waveform data can be read and written in 32 bits it can. In addition, it uses a method different from [Mode 1] and also supports reading and writing of 1-sample 16-bit data.
Both the external memories 13a and 13b have a two-bank configuration, and the precharge time is made apparent by shifting the accessible timing for each bank.
The time division microprograms DSP0 and DSP1 use bank 0 and bank 1, respectively, to perform reading and writing alternately. Although it is a 2-burst operation, it only reads and writes data for one address.
[0071]
RASN, CASN, and WEN of the time division DSP 12 are connected to / RAS, / CAS, and / WE of the external memories 13a and 13b, respectively. When 64Mbit SDRAM is used, A [13] and A [12] of the time division DSP 12 are respectively A [12] (functioning as the BA1 terminal) and A [13] (BA0 terminal) of the external memories 13a and 13b. Function as). A [11: 0] is connected to A [11: 0] of the external memories 13a and 13b.
However, A [10] is used as an auto precharge bit terminal. Only A [7: 0] is used for the column address. D [31:16] of the time division DSP 12 is connected to D [15: 0] of the external memory 13a, and D [15: 0] of the time division DSP 12 is connected to D [15: 0] of the external memory 13b. To do.
[0072]
Further, CLK and CKE of the time division DSP 12 are connected to CLK and CKE of the external memories 13a and 13b, respectively. MQH of the time division DSP 12 is the first terminal of the mask signal and is connected to the upper bit mask terminal DQMU and the lower bit mask terminal DQML on the external memory 13a side. MQL of the time division DSP 12 is the second terminal of the mask signal and is connected to the upper bit mask terminal DQMU and the lower bit mask terminal DQML on the external memory 13b side. In the case of 32-bit access, the same mask signal is given to the external memories 13a and 13b as MQH = MQL.
/ CS is a chip select terminal and is fixed at a low level.
[0073]
FIG. 12 is a timing chart of [Mode 2] shown in FIG.
In bank 0 (Area0), the row address is read during the falling period of / RAS, and the column address is read during the falling period of / CAS. In the case of writing, / WE is set to a low level, and at the same time, the mask signal shown in DQM is set to a high level.
As a result, even if it is a burst operation, data is not written to the address on the small side (L), but after 1 SCLOCK, 16-bit data (32 bits in total for the external memories 13a and 13b) is stored in the address on the large side (H). Is written.
[0074]
On the other hand, in the case of reading, since it has 2 latencies, 16-bit data Data (0-0) of the address on the smaller side (L) is read after 2 SCLOCK from the falling edge of / CAS. Data (0-0) is latched as shown in Area0Latch.
At the time of reading, the mask signal shown in DQM is set to the high level after 1 SCLOCK from the falling edge of / CAS. Therefore, the data of the address on the larger side (H) that should be read after 2 SCLOCK will not be read.
In the next bank 1 (Area1), a similar memory control operation is performed, and at the time of reading, Data (1-0) is latched as shown in Area1 Latch.
[0075]
With the connection configuration shown in FIG. 8, 16-bit access is also possible.
By controlling the mask signal output from the first and second mask terminals MQH and MQL from the time division DSP 12 to the external memories 13a and 13b, the previous 16-bit sample is stored in the lower 16-bit data area of a certain address. And the subsequent 16-bit samples are stored in the upper 16-bit data area of the same address.
When trying to access a certain sample address SAD, the least significant bit (LSB) is used as a mask signal, and the bits other than the LSB in the SAD are used as a memory address MAD.
[0076]
That is, if LSB = 0, MQL = 1 and MQH = 0, the upper 16 bits are masked, and the lower 16 bits are read or written to the external memory 13b. If LSB = 1, MQL = 0 and MQH = 1, the lower 16 bits are masked, and the upper 16 bits are read or written to the external memory 13a.
Referring to FIG. 12, in the external memory 13a or 13b on the masked side, in any case of reading and writing, if the mask signal for 2 SCLOCK periods indicated as W and R in DQM is set to a high level, Good.
However, as in the case of 16-bit storage in bank 0 in [Mode 1] already described, control using a mask signal is not essential.
[0077]
A simple specific example of the relationship between the step timing of the time division microprograms DSP0 and DSP1 and the operation timing of the writing unit 42, the reading unit 43, the access control unit 44, and the external memory address generation unit 45 is as follows.
The time-division microprograms DSP0 and DSP1 are different from those in FIGS. 6 and 11 in the master clock number, but similarly, the steps are executed alternately with two master clocks as one step.
In FIG. 12, the time-division microprogram DSP0 sends the address to the writing unit 42 or reading unit 43, the access control unit 44, the external memory address generation unit 45, etc. in the steps of the master clock No. 3 and 4 (not shown). Instructs writing to or reading from (0-0).
[0078]
The access control unit 44 sets / RAS to a low level at the master clock No. 7, and sets / CAS to a low level at the master clock No. 11. The external memory address generator 45 outputs Address (0-0) in the master clocks Nos. 7 to 12.
In the case of writing, the access control unit 44 sets DQM to high level and / WE to low level in the master clocks Nos. 11 and 12. The writing unit 42 outputs the write data indicated by DQ (W) with the master clocks Nos. 13-16.
In the case of reading, the access control unit 44 sets DQM to high level in the master clocks Nos. 13 and 14. The read unit 43 latches the read data Data (0-0) on the data line indicated by DQ (R) at the master clocks Nos. 16 to 17, and at the 19th and 20th, the data (0− 0) is output to the bus line 35.
On the other hand, the time division microprogram DSP1 instructs writing to or reading from Address (1-0) in the steps of the master clocks Nos. 9 and 10.
[0079]
FIG. 9 is a connection diagram between the time division DSP 12 and the external memory 13 in the second example of [Mode 2]. As the external memory 13, one SDRAM having a data bit width of 32 bits and two banks is connected, and 32-bit access is performed by a two burst operation.
RASN, CASN, and WEN of the time division DSP 12 are connected to / RAS, / CAS, and / WE of the external memory 13, respectively. When using 64Mbit SDRAM, A [13] and A [12] of the time-division DSP 12 are respectively A [13] (functions as the BA1 terminal) and A [12] (functions as the BA0 terminal) of the external memory 13. To connect). A [10: 0] is connected to A [10: 0] of the external memories 13a and 13b. However, A [10] is used as an auto precharge bit terminal. Only A [8: 0] is used for the column address.
D [31: 0] of the time division DSP 12 is connected to D [31: 0] of the external memory 13.
Further, CLK and CKE of the time division DSP 12 are connected to CLK and CKE of the external memory 13, respectively. MQH of the time division DSP 12 is the first terminal of the mask signal and is connected to DQM3 and DQM2 of the external memory 13. MQL of the time division DSP 12 is the second terminal of the mask signal and is connected to DQM1 and DQM0 of the external memory 13.
/ CS is a chip select terminal and is fixed at a low level.
[0080]
In FIG. 8, in order to set the data bit width on the external memory 13 side to 32 bits, two SDRAMs having a data bus width of 16 bits are used. In FIG. 9, the data bit width of the SDRAM is 32. A bit.
Therefore, the memory control operation is the same as that in FIG. However, the external memory 13 has four mask lines DQM3 to DQM0, DQM3 and DQM2 correspond to DQMU and DQML on the external memory 13a side in FIG. 8, and DQM1 and DQM0 on the external memory 13b side in FIG. Corresponds to DQMU and DQML.
Therefore, as in FIG. 8, memory access of 16 bits per sample can be performed using the mask signal or without using the mask signal.
[0081]
FIG. 10 is a connection diagram between the time division DSP 12 and the external memory 13 in [Mode 3]. The external memory 13 is connected to an SD type FCRAM (Fast Cycle RAM) having a data bit width of 16 bits and two banks, and 32-bit access is realized by a two burst mode. 16-bit access is also possible.
SD-type FCRAM (Fast Cycle RAM) is an SDRAM that can operate at high speed and operates with a CAS latency of 1. Therefore, the read delay is as small as 1 SCLOCK. Therefore, there is a margin in timing.
By taking a two-bank configuration and shifting the access timing for each bank, the precharge time is made apparent.
[0082]
RASN, CASN, and WEN of the time division DSP 12 are connected to / RAS, / CAS, and / WE of the external memory 13, respectively. When using 16Mbit FCRAM, A [12] of the time division DSP 12 is connected to A [11] (functioning as the BA1 terminal) of the external memory. BA1 is a bank select signal. A [10: 0] is connected to A [10: 0] of the external memory 13. However, A [10] is used as an auto precharge bit terminal. Only A [8: 0] is used for the column address. D [31:16] of the time division DSP 12 is connected to D [15: 0] of the external memory 13.
Further, CLK, CKE, and MQH of the time division DSP 12 are connected to CLK, CKE, and (DQMU and DQML) of the external memory 13, respectively. / CS is a chip select terminal and is fixed at a low level.
[0083]
FIG. 13 is a timing chart of [Mode 3] shown in FIG.
In bank 0 (Area0), the row address is read during the falling period of / RAS, and the column address is read during the falling period of / CAS. When reading, / CAS falls at the same time as inputting the column address. Since / CAS latency is 1, as shown in DQ (R), 16 bits of the data on the smaller side (L) are read after 1 SCLOCK, and the data on the larger side (H) after 1 SCLOCK. 16 bits are read.
[0084]
In the time division DSP 12, 32-bit Data (0-0) is latched as indicated by Area Latch. In writing, after the column address is input, / CAS is lowered at the next SCLOCK and / WE is set to low level. Immediately, 16 bits of data on the smaller side (L) indicated by DQ (W) output from the time division DSP 12 are written, and 16 bits of data on the larger side (H) are written at the next SCLOCK.
The same control operation is performed in the bank 1 (Area1), and the time division DSP 12 reads and writes 32-bit sample data from the bank 1 (Area1).
[0085]
In the connection shown in FIG. 10, in order to access the memory of 16 bits per sample, a mask signal is used to mask reading / writing of 16 bits of data at the address on the small side (L).
In FIG. 13, DQM is set to a high level at the timing of ☆ R for reading and at the timing of ☆ W for writing. As a result, even in the burst mode, 16-bit data is written because reading / writing is not performed on the smaller address (L).
The relationship between the address (SAD) and the memory address (MAD) and the mask signal are not always necessary when reading / writing 1 sample 32 bits or reading / writing 1 sample 16 bits. This is the same as [Mode 1] described with reference to FIG.
[0086]
A simple specific example of the relationship between the step timing of the time division microprograms DSP0 and DSP1 and the operation timing of the writing unit 42, the reading unit 43, the access control unit 44, and the external memory address generation unit 45 is as follows.
The time division microprograms DSP0 and DSP1 execute the steps alternately with two master clocks as one step, as in the case of FIGS.
In FIG. 13, the time-division microprogram DSP0 sends the address to the writing unit 42 or reading unit 43, the access control unit 44, the external memory address generation unit 45, etc. at the steps in the master clocks 4 and 5 (not shown). Instructs writing to or reading from (0-0).
The access control unit 44 sets / RAS to the low level at the master clock number 8 and sets / CAS to the low level at the master clock number 10. The external memory address generation unit 45 outputs Address (0-0) in the master clocks Nos. 8 to 13.
[0087]
In the case of writing, the access control unit 44 sets DQM to the high level and / WE to the low level in the master clocks Nos. 12 and 13. The writing unit 42 outputs the write data indicated by DQ (W) with the master clocks Nos. 12-17.
In the case of reading, the access control unit 44 sets / CAS to low level in the master clocks Nos. 10 and 11. The read unit 43 latches the read data Data (0-0) on the data line indicated by DQ (R) with the master clocks Nos. 13 to 14 and 15 to 16, and the Area 0 Latches with the Nos. 20 and 21. Data (0-0) above is output to the bus line 35.
On the other hand, the time division microprogram DSP1 instructs writing to or reading from Address (1-0) in the steps of the master clocks Nos. 10 and 11.
[0088]
This is the end of the description of operations in modes 0 to 3.
In the above description, mode 0 uses EDO-DRAM, but FPM (Fast Page Mode) -DRAM may be used.
Mode 1 uses SDRAM, but SDR type FCRAM used in mode 3 may be used. Further, the parallel use of the 16-bit SDRAM described with reference to FIG. On the other hand, the 32-bit SDRAM shown in FIG. 8 as another example of mode 2 does not operate in mode 1 due to the restriction that a read command must not be issued at the clock next to the active command.
In the above description, the SD-type FCRAM is used only in mode 3, but it can also be used in mode 1 and mode 2 (both two types). However, it is necessary to partially change the connection of address lines and control lines according to the memory capacity.
It should be noted that other DRAMs can be used as the external memory of the sound wave data digital signal processing apparatus of the present invention as long as the basic operation is the same.
[0089]
The above-described time division DSP 12 has a variety of designs in which various DRAMs such as EDO-DRAM, SDRAM, and FCRAM can be used as the external memory 13 only by switching the mode. At that time, the timing interval between the alternate memory access of the parallel EDO-RAM and the alternate memory access of each bank of the SDRAM is almost the same, so the timing control circuit for memory access is simplified. Yes.
[0090]
As an effect to be added to the above-mentioned musical sound waveform, reverberation (reverberation), chorus (a sound with a slightly shifted pitch of the original sound is superimposed on the original sound to obtain a spread), variation (delay) , Rotary speaker, auto pan, amplifier simulator, auto wah, etc.).
In addition, it is assumed that a large-capacity delay memory is not required. Equalizer (correction of frequency characteristics of the original sound), HPF (cuts the fundamental tone and low harmonics of the original sound), LPF (cuts high harmonics of the original sound), harmony ( And a compressor (increase the gain when the original sound is at a low volume and decrease the gain at a high volume to compress the dynamic range of the original sound).
Therefore, when applying these effects at the same time, a microprogram may be assembled in consideration of whether a large-capacity delay memory is required or whether high-accuracy musical sound waveform data needs to be stored in the delay memory. .
[0091]
In the above description, the case where an effect is added to the musical sound signal generated by the sound source unit of the electronic musical instrument has been described.
However, the digital signal processing apparatus for sound waveform data according to the present invention can be used not only for musical sound waveform data but also for any sound waveform data including voice.
For example, in a karaoke apparatus, it can be used to add a similar effect to an audio signal input from a microphone.
In an audio amplifier, it can be used to add a sense of presence to a hall or to reproduce a sound field in an audio signal such as an input musical sound signal or audio signal.
[0092]
【The invention's effect】
As is apparent from the above description, the present invention eliminates the waiting time for precharging substantially even when using a DRAM capable of obtaining a large capacity for delaying sound waveform data, and enables high-speed memory access. There is an effect that can be done.
If the burst mode is used for memory access, there is an effect that the bit width of one sample of the sound waveform data stored in the DRAM can be fixed or made variable according to the waveform signal processing.
[Brief description of the drawings]
FIG. 1 is a hardware configuration diagram of an electronic musical instrument.
FIG. 2 is an explanatory diagram conceptually illustrating writing and reading of musical sound waveform data performed between a digital signal processing device for musical sound waveform data and an external memory.
FIG. 3 is an internal configuration diagram of the time division DSP shown in FIG. 1;
FIG. 4 is an explanatory diagram of a time-division DSP microprogram, I-RAM, and external memory interface;
FIG. 5 is a connection diagram between a time division DSP and an external memory in [Mode 0].
FIG. 6 is a timing chart of [Mode 0] shown in FIG.
FIG. 7 is a connection diagram between a time division DSP and an external memory in [Mode 1].
FIG. 8 is a connection diagram between a time division DSP and an external memory in [Mode 2].
FIG. 9 is a connection diagram between a time division DSP and an external memory in a second example of [Mode 2].
FIG. 10 is a connection diagram between a time division DSP and an external memory in [Mode 3].
11 is a timing chart of [Mode 1] shown in FIG.
12 is a timing chart of [Mode 2] shown in FIG.
13 is a timing chart of [Mode 3] shown in FIG.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 12 ... Time division DSP, 13, 13a, 13b ... External memory, 21 ... Digital signal processor for musical tone waveform data, 22 ... Waveform signal processing part, 23a, 23b ... Switch, 24, 24a, 24b ... DRAM

Claims (3)

波形信号処理部およびメモリアクセス部を有し、
前記波形信号処理部は、
音波形データにエフェクトを加えるための波形信号処理を、2個の時分割マイクロプログラムが、該時分割マイクロプログラムのステップ単位で順次切り替わりながら繰り返し独立して実行されることによって行うものであり、
前記メモリアクセス部は、
前記個の時分割マイクロプログラムによる波形信号処理の過程において前記音波形データを遅延させるために、アドレス線、データ線、および、制御線を介して外付けされ、個のバンクを有するDRAMの各バンクを、それぞれ、前記個の時分割マイクロプログラムに対応させるとともに、所定の繰り返し期間を分割した分割期間を、順次、前記個の時分割マイクロプログラムに対応させて動作するものであり、
前記個の時分割マイクロプログラムの1つから書き込みまたは読み出しの要求を受けたとき、アドレス信号を発生し、該アドレス信号を当該時分割マイクロプログラムに対応する分割期間において出力するとともに、当該時分割マイクロプログラムに対応するバンクに対する書き込みまたは読み出しのための制御信号を出力することにより、当該時分割マイクロプログラムに対応するバンクに対し、前記音波形データの書き込みまたは読み出しを行うものである、
ことを特徴とする音波形データ用ディジタル信号処理装置。
A waveform signal processing unit and a memory access unit;
The waveform signal processor is
Waveform signal processing for adding effects to sound waveform data is performed by two time-division microprograms being repeatedly and independently executed while sequentially switching in units of steps of the time-division microprogram,
The memory access unit
To delay the sound waveform data in the course of the waveform signal processing by the two time-division micro program, address lines, data lines, and are externally via a control line, with two banks each bank of DRAM, respectively, together correspond to the two time division microprogram, the division period divided into two predetermined repetition period, sequence, which operates in correspondence with the two time division microprogram And
Upon receiving a request for writing or reading from one of the two time division microprogram to generate an address signal, the address signal and outputting the divided period corresponding to the time division microprogram, the time division By outputting a control signal for writing to or reading from the bank corresponding to the microprogram, the sound waveform data is written to or read from the bank corresponding to the time-division microprogram.
A digital signal processing apparatus for sound waveform data.
外付けされる前記DRAMは、Nバースト・モード(Nは2以上の整数)でアクセス可能なものであり、
前記メモリアクセス部は、前記個の時分割マイクロプログラムの1つから、該時分割マイクロプログラムに対応するバンクに記憶させる前記音波形データのビット幅を、単独のアドレスに記憶させる場合のT倍(TはN以下の正整数)の固定ビット幅とする書き込みまたは読み出しの要求を受けたとき、前記DRAMに対し、前記Nバースト・モードで前記音波形データの書き込みまたは読み出しをするための制御信号の出力を行い、かつ、前記Nバースト・モードでのN回の転送タイミング中のT回の転送タイミングにおいて、前記音波形データの書き込みまたは読み出しを行うものである、
ことを特徴とする請求項1に記載の音波形データ用ディジタル信号処理装置。
The external DRAM is accessible in N burst mode (N is an integer of 2 or more),
The memory access unit, from one of the two time division microprogram, T times when the bit width of the sound waveform data to be stored in the bank corresponding to said time division microprogram is stored in a single address A control signal for writing or reading the sound waveform data in the N burst mode to the DRAM when a write or read request having a fixed bit width (T is a positive integer equal to or less than N) is received. And the sound waveform data is written or read at T transfer timings in N transfer timings in the N burst mode.
The digital signal processing apparatus for sound waveform data according to claim 1.
外付けされる前記DRAMは、Nバースト・モード(Nは2以上の整数)でアクセス可能なものであり、
前記メモリアクセス部は、前記個の時分割マイクロプログラムの1つから、該時分割マイクロプログラムに対応するバンクに記憶させる前記音波形データのビット幅を、単独のアドレスに記憶させる場合のT倍(TはN以下の正整数)の可変ビット幅とする書き込みまたは読み出しの要求を受けたとき、前記DRAMに対し、前記Nバースト・モードで前記音波形データの書き込みまたは読み出しをするための制御信号の出力を行い、かつ、前記Nバースト・モードでのN回の転送タイミング中のT回の転送タイミングにおいて、前記音波形データの書き込みまたは読み出しを行うものである、
ことを特徴とする請求項1に記載の音波形データ用ディジタル信号処理装置。
The external DRAM is accessible in N burst mode (N is an integer of 2 or more),
The memory access unit, from one of the two time division microprogram, T times when the bit width of the sound waveform data to be stored in the bank corresponding to said time division microprogram is stored in a single address A control signal for writing or reading the sound waveform data in the N burst mode to the DRAM when receiving a request for writing or reading with a variable bit width (T is a positive integer less than or equal to N) And the sound waveform data is written or read at T transfer timings in N transfer timings in the N burst mode.
The digital signal processing apparatus for sound waveform data according to claim 1.
JP2001300497A 2001-09-28 2001-09-28 Digital signal processor for sound waveform data Expired - Fee Related JP3855711B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001300497A JP3855711B2 (en) 2001-09-28 2001-09-28 Digital signal processor for sound waveform data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001300497A JP3855711B2 (en) 2001-09-28 2001-09-28 Digital signal processor for sound waveform data

Publications (2)

Publication Number Publication Date
JP2003108122A JP2003108122A (en) 2003-04-11
JP3855711B2 true JP3855711B2 (en) 2006-12-13

Family

ID=19121063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001300497A Expired - Fee Related JP3855711B2 (en) 2001-09-28 2001-09-28 Digital signal processor for sound waveform data

Country Status (1)

Country Link
JP (1) JP3855711B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5057280B2 (en) * 2006-12-28 2012-10-24 ヤマハ株式会社 Integrated circuit for digital signal processing
WO2009125541A1 (en) * 2008-04-10 2009-10-15 パナソニック株式会社 Nonvolatile storage module, access module, music composition data file generation module, and music composition generation system
WO2010010646A1 (en) * 2008-07-24 2010-01-28 パナソニック株式会社 Access module, memory module, musical sound generation system and data write module
JP5267057B2 (en) * 2008-11-04 2013-08-21 ヤマハ株式会社 Digital signal processor
JP2015035203A (en) * 2013-07-08 2015-02-19 ヤマハ株式会社 Signal processing system and program
JP2022054027A (en) 2020-09-25 2022-04-06 株式会社河合楽器製作所 Digital signal processor and control method for digital signal processor
JP2022064055A (en) 2020-10-13 2022-04-25 株式会社河合楽器製作所 Digital signal processing device and method for controlling digital signal processing device

Also Published As

Publication number Publication date
JP2003108122A (en) 2003-04-11

Similar Documents

Publication Publication Date Title
US5747714A (en) Digital tone synthesis modeling for complex instruments
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 (en) Digital signal processor for sound waveform data
US5809342A (en) Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
JPH0798586A (en) Sound source device for electronic music instrument
JP3991458B2 (en) Musical sound data processing apparatus and computer system
JP3855710B2 (en) Digital signal processor for sound waveform data
JPH07121181A (en) Sound information processor
JPH08160961A (en) Sound source device
JP2022064055A (en) Digital signal processing device and method for controlling digital signal processing device
JPS6231358B2 (en)
JP2727089B2 (en) Electronic musical instrument sound generator
JP3659002B2 (en) Musical sound data processing apparatus and computer system
JP3334483B2 (en) Waveform memory type tone generator that can input external waveform
JPH02135564A (en) Data processor
JP3552265B2 (en) Sound source device and audio signal forming method
JPH03174592A (en) Sound source circuit for electronic musical instrument
JP2642092B2 (en) Digital effect device
JPH10111682A (en) Reverberation effect adding device
JP3695404B2 (en) Waveform processing device
JPH0468632B2 (en)
JP2579049B2 (en) Music synthesizer
JPS6335994B2 (en)

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

Ref document number: 3855711

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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