説明

楽音生成装置のメモリ制御装置

【課題】 マイコンの処理速度に犠牲を強いることのない楽音生成装置を提供する。
【解決手段】 マイコン110の制御プログラムの読み出しアドレスを指定するために、前記アドレスバス11がRAS/CASタイミングに使用されている間に、データバス10が空くので、そのタイミングで、該データバス10を使用して音源100に対し、前記アドレスラッチ回路3にラッチされたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバス10を使用してマイコン110用の制御プログラムの読み出し処理をしている間に、アドレスバス11を使用して前記アドレスラッチ回路3に次の楽音波形データのアドレスをラッチさせるようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音源及び該音源を制御可能なマイコンを1チップ上に集積した集積回路を備えた楽音生成装置のメモリ制御装置に関する。
【背景技術】
【0002】
後述する特許文献1などの従来の電子楽音生成装置では、音源100とマイコン110を1チップにしてバスが共有される構成が示されている。すなわち、図7に示すように、マイコン110が実行する処理プログラム(制御プログラム)が楽音波形データと共に、1つの波形メモリROM1a内に記憶されており、1チップ上に集積された音源100とマイコン110とが、夫々制御プログラムと楽音波形データに時分割でアクセスする構成となっていた。
【特許文献1】特開平02−126296
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、マイコン110と音源100は、前記波形メモリROM1aに対し、時分割でアクセスできるようにするか、音源100のアクセスの方を優先させ、その空いた時間にマイコン110にアクセスを許すような方法をとるしかなかった。従って、マイコン110の処理速度に犠牲を強いることになるという問題を生じていた。
【0004】
本発明は、以上のような問題に鑑み創案されたもので、マイコンの処理速度に犠牲を強いることのない楽音生成装置を提供せんとするものである。
【課題を解決するための手段】
【0005】
本発明の構成は、
楽音を生成するのに用いられる楽音波形、及び該楽音の生成を制御するためのプログラムを記憶した第1の記憶手段と、アドレスを与えると、該アドレスを含む複数の連続する記憶領域を連続してアクセス可能な記憶手段であって、該プログラムが複写されて動作するための第2の記憶手段とを、共通のアドレス及びデータバスでアクセスする楽音生成装置に用いられるメモリ制御装置であって、
前記第1の記憶手段に与えられるアドレスを一時記憶する第3の記憶手段と、
前記第3の記憶手段にアドレスを送出する間に前記データバスを用いて前記第2の記憶手段の前記複数の連続する記憶領域をアクセスさせると共に、前記第3の記憶手段に前記アドレスが記憶された後、前記データバスを用いて前記第1の記憶手段の該アドレスが示す記憶領域をアクセスさせる第1の制御手段と、
前記データバスが前記第1の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第2の記憶手段をアクセスさせるためのアドレスを送出すると共に、前記データバスが前記第2の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第1の記憶手段をアクセスさせるためのアドレスを送出する第2の制御手段と
を備えたことを基本的特徴としている。
【0006】
上記構成によれば、第3の記憶手段にアドレスを送出する間に、第1の制御手段により、前記データバスを用いて前記第2の記憶手段の前記複数の連続する記憶領域がアクセスされると共に、前記第3の記憶手段に前記アドレスが記憶された後、該第1の制御手段により、前記データバスを用いて前記第1の記憶手段の該アドレスが示す記憶領域がアクセスされることになる。また、前記データバスが前記第1の記憶手段のアクセスに用いられている間、第2の制御手段により、前記アドレスバスに前記第2の記憶手段をアクセスさせるためのアドレスが送出されると共に、前記データバスが前記第2の記憶手段のアクセスに用いられている間、該第2の制御手段により、前記アドレスバスに前記第1の記憶手段をアクセスさせるためのアドレスが送出されることになる。
【0007】
従って、2つの制御手段によって、両バス使用に関し、アドレスの読み出し処理と、制御プログラムの読み出し処理及び楽音波形データの読み出し処理とのタイミングがリバースして同時に実行されることになる。たとえばマイコンの制御プログラムの読み出しアドレスを指定するために、前記アドレスバスがRAS/CASタイミングに使用されている間に、データバスが空くので、そのタイミングで、該データバスを使用して音源に対し、前記第3の記憶手段に一時的に記憶(ラッチ)されたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバスを使用してマイコン用の制御プログラムの読み出し処理をしている間に、アドレスバスを使用して前記第3の記憶手段に次の楽音波形データのアドレスをラッチさせるようにする。そのように制御することで、マイコン及び音源の両動作とも、速度を犠牲にしないで済むようになる。
【0008】
第2の発明は、第1の記憶手段に記憶されたデータが、そこからデータバスを使用して転送されている間に、第2の記憶手段に対し、必要なアドレスの指定がなされることを規定している。
すなわち、前記第2の記憶手段は、アドレスの一部と、該一部以外の部分を時分割で受け取るものであり、
前記アドレスの一部を送出/受け取る時分割タイミングと、前記アドレスの該一部以外の部分を送出/受け取るタイミングが、前記第1の記憶手段をアクセスをする期間内に時間的に連続して設けられていること
を特徴としている。
【0009】
これは、例えば楽音波形データがデータバスを使用して(音源などに対して)読み出されている間に、プログラムの読み出しアドレスが、プログラムSDRAM等の第2の記憶手段から、アドレスバスを介して転送されていることを規定したものである。より詳しく言えば、プログラム波形メモリなどの第1の記憶手段(ROM)がデータバスを使用している間に、プログラムSDRAMなどの第2の記憶手段におけるROWアドレス(RASタイミング)とCOLUMNアドレス(CASタイミング)が連続してアドレスバスに発生する、すなわち、アドレスバスのRAS/CASタイミング中に、データバスはプログラム波形メモリなどの第1の記憶手段のデータの送受を行う、つまりアドレスバスのRAS/CASタイミング(SDRAMなどの第2の記憶手段のアドレス指定タイミング)中に、データバスは楽音波形データの読み取りを行うことを規定している。
【0010】
第3の発明は、前記第1の記憶手段のアクセスに必要な時間が、前記アドレスバスに前記第2の記憶手段をアクセスするためのアドレスを送出する時間と、前記第2の記憶手段の前記複数の連続する記憶領域を連続してアクセスする時間との和以下であることを規定している。
【0011】
例えば、後述するROMアクセス時間が、前記アドレスバスにプログラムSDRAMなどの前記第2の記憶手段をアクセスするためのアドレス、すなわちRASタイミング(ROWアドレス)とCASタイミング(COLUMNアドレス)を送出する時間と、前記第2の記憶手段の前記複数の連続する記憶領域を連続してアクセスする(後述する実施例中のD0〜D3をバースト転送する)時間との和以下であるというものである。
【0012】
特に、前記制御プログラムの読み出しに関し、該制御プログラムが、バースト転送され、パイプライン処理されている間に、アドレスバスは完全に使用されていないので、該アドレスバスを使用してラッチ回路等の前記第3の記憶手段に次の楽音波形データのアドレスをラッチさせるようにする。このようにすれば、効率よく両バスの使用ができ、マイコン及び音源の両動作とも、速度をより犠牲にしないで済むようになる。
【0013】
第4の発明は、上記のような構成を備えている場合に、上記プログラムがマイコンのパイプライン処理で実行された際に、ハザードが発生した時の処理について規定している。
【0014】
すなわち、上記プログラムがパイプライン処理を備えたマイコンで実行される場合について、前記パイプライン処理がハザードを発生した際は、前記第2の記憶手段の、前記複数の連続する記憶領域の、以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバスへの前記第1の記憶手段へのアドレスの送出時間後に、次の第2の記憶手段へのアドレス送出を行うようにするものである。
【0015】
例えば、上記マイコンで、パイプライン処理が行われていて、該パイプライン処理でハザードが発生した場合、制御プログラムが記憶されているSDRAMなどの前記第2の記憶手段の、前記複数の連続する記憶領域における、(ハザード発生)以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバスへの、(第2の記憶手段に記憶されることになる)制御プログラムと楽音波形データを記憶しているプログラム波形メモリなどからなる前記第1の記憶手段に対してのアドレスの送出時間(楽音波形読み出しアドレス送出時間)後に(すなわち、そのサイクルの終了後に)、次の第2の記憶手段(プログラムSDRAMなど)へのアドレス(RAS/CASタイミングに沿って、ROW/COLUMNアドレスをアドレスバス経由で)送出を行うようにするものである。ハザードは、プログラムの実行途中でジャンプ命令などが発生した際などに起こる。
【0016】
仮に該楽音生成装置において、マイコンによる処理がパイプライン処理により行われている場合に、前記マイコン用の制御プログラムがパイプライン処理されるタイミングで、ジャンプ命令などのハザードが発生した際は、それより後の同プログラムのパイプライン処理をキャンセルするようにすることになる。ジャンプ命令などのハザードの発生で、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるからである。
【発明の効果】
【0017】
以上のような本発明の構成によれば、両制御手段により、アドレスバスとデータバスにおいて、各バスへのアクセスが夫々クロスして同時に行われるようになるので、例えばこのような装置構成において、マイコン及び音源が同時に使用されて楽音発生と装置制御がなされる場合でも、夫々の処理速度を犠牲にしないで済むようになるという優れた効果が奏し得ることになる。
【0018】
また、前記処理がマイコンにおいてパイプライン処理が実行されている場合に、該パイプライン処理における上記制御プログラムの処理中にジャンプ命令などのハザードが発生した際は、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるので、それより後の同プログラムのパイプライン処理をキャンセルするようにしており、ハザード発生時にもマイコンや音源の処理に異常が生ずることがない。
【発明を実施するための最良の形態】
【0019】
以下、本発明の実施の形態を、説明する。
【実施例】
【0020】
図1は、電子楽器などの楽音生成装置に適用された本発明の一実施例であるメモリ制御装置の構成を示す機能ブロック図である。
【0021】
同図に示すように、音源100、該音源100を制御可能なマイコン110、音源100及びマイコン110が次にアクセスする記憶領域のアドレスを指示する、後述する第2の制御手段に相当するアドレスバスコントローラ5、さらにアドレスの指定があったところに対しデータ等の転送を制御する、後述する第1の制御手段に相当するデータバスコントローラ4が1チップ上に集積された集積回路で構成されている。
【0022】
マイコン110と音源100は、上記アドレスバスコントローラ5に指示を出しアドレスを外部のアドレスバス11側に出力する。他方アドレス指定後に後述する各記憶領域から読み出される(或いは書き込まれる)データ、制御プログラム及びコマンドなどは、データバス10及びデータバスコントローラ4を介してマイコン110又は音源100に転送される。
【0023】
上記アドレスバスコントローラ5は、アドレスバス11を介して、後述する第2の記憶手段たるプログラムSDRAM2と第3の記憶手段たるアドレスラッチ回路3とにつながっており、読み出し・書き込みの行われる記憶領域のアドレスの指定が行われる。
【0024】
他方上記データバスコントローラ4は、データバス10を介して、上記プログラムSDRAM2と後述する第1の記憶手段たるプログラム波形メモリ1とにつながっており、記憶領域にあるデータやプログラム、或いはコマンドなどの読み出し・書き込みが行われる。
【0025】
上記音源100は、上記アドレスバスコントローラ5に指示を出し、上記プログラム波形メモリ1から読み出したい楽音波形データのアドレスを上記アドレスラッチ回路3に送る。そのアドレスの指定によってプログラム波形メモリ1から読み出された楽音波形データはデータバス10を介してデータバスコントローラ4に転送され、音源100に送られる。それによって、音源100は、読み出された楽音波形データに基づき、楽音を発生し、後述するDSP210側に出力する。
【0026】
上記マイコン110は、RISCチップであり、本電子楽器全体の制御を行うプロセッサであって、1チップ集積回路外部のインターフェース200に接続されており、外部からの或いは外部への入出力ができるようになっている。その一つが電子楽器の鍵盤(図示無し)からの演奏情報やMIDI演奏情報であり、また外部へ装置の各状態を表示させるディスプレイ(図示無し)や該ディスプレイと一部は重ねて設置されるパネルスイッチ(図示無し)などの設定情報が入出力される。また、後述するDSP210に、該インターフェース200を介し、音源100から出力される楽音データに対し、種々の音響効果(ディレイなどを含む)を付加する指令を送っている。
【0027】
他方該マイコン110は、上記アドレスバスコントローラ5に指示を出し、上記プログラム波形メモリ1からブート時に読み出したい制御プログラムのアドレスを上記アドレスラッチ回路3に送る。そのアドレスの指定によってプログラム波形メモリ1から読み出された制御プログラムはデータバス10を介して、後述する第2の記憶手段たるプログラムSDRAM2に転送されて記憶される。該ブート以後、マイコン110は、上記アドレスバスコントローラ5に指示を出し、制御プログラムの読み出しアドレスを出力させ、上記プログラムSDRAM2から該制御プログラムを読み出させ、データバス10を介して、データバスコントローラ4に転送させ、該制御プログラムを受信する。該制御プログラムに従ってマイコン110は制御を行い、各部に指示を出す。制御プログラムがマイコン110によって読み出され実行されることで、後述するアドレスバスコントローラ5及びデータバスコントローラ4は、アドレスバス11及びデータバス10を介して、マイコン110とプログラムSDRAM2との間で、該起動プログラム及びその実行に伴うテンポラリデータなどの転送を司ることになる。また上述したマイコン110の制御処理もそれに従う。特に、本マイコン110では、後述するように、パイプライン処理を行っており、仮にそこでハザードが生じた場合は、後述するような処理を行う。
【0028】
上記音源100は、上記演奏情報などに応じて発生させた楽音を、上述のDSP210に出力する。その出力を受信したDSP210は、1チップ集積回路外部にあって、ディレイメモリ212に接続されており、音源100からの出力があった時に、マイコン110からの指令に基づいて、楽音データに、ディレイを含む音響効果を付与する。
【0029】
その音響効果の付与された楽音データは、次のDAC220でデジタル−アナログ変換され、さらに、アンプ230で増幅されて、スピーカ240から、外部に放音されることになる。
【0030】
以上の構成において、本発明構成は、上記アドレスバス11及びデータバス10の他に、楽音を生成するのに用いられる楽音波形、及び該楽音の生成を制御するためのプログラムを記憶した第1の記憶手段たるプログラム波形メモリ1と、アドレスを与えると、該アドレスを含む複数の連続する記憶領域を連続してアクセス可能な記憶手段であって、該プログラムが複写されて動作するための第2の記憶手段たるプログラムSDRAM2と、前記プログラム波形メモリ1に与えられるアドレスを一時記憶する第3の記憶手段たるアドレスラッチ回路3と、該アドレスラッチ回路3にアドレスを送出する間に前記データバス10を用いて前記プログラムSDRAM2の前記複数の連続する記憶領域をアクセスさせると共に、前記アドレスラッチ回路3に前記アドレスが記憶された後、前記データバス10を用いて前記プログラム波形メモリ1の該アドレスが示す記憶領域をアクセスさせる第1の制御手段たるデータバスコントローラ4と、前記データバス10が前記プログラム波形メモリ1のアクセスに用いられている間、前記アドレスバス11に前記プログラムSDRAM2をアクセスさせるためのアドレスを送出すると共に、前記データバス10が前記プログラムSDRAM2のアクセスに用いられている間、前記アドレスバス11に前記プログラム波形メモリ1をアクセスさせるためのアドレスを送出する第2の制御手段たるアドレスバスコントローラ5とを備えている。
【0031】
上記構成によれば、アドレスラッチ回路3にアドレスを送出する間に、データバスコントローラ4により、前記データバス10を用いて前記プログラムSDRAM2の前記複数の連続する記憶領域がアクセスされると共に、前記アドレスラッチ回路3に前記アドレスが記憶された後、該データバスコントローラ4により、前記データバス10を用いて前記プログラム波形メモリ1の該アドレスが示す記憶領域がアクセスされることになる。また、前記データバス10が前記プログラム波形メモリ1のアクセスに用いられている間、アドレスバスコントローラ5により、前記アドレスバス11に前記プログラムSDRAM2をアクセスさせるためのアドレスが送出されると共に、前記データバス10が前記プログラムSDRAM2のアクセスに用いられている間、該アドレスバスコントローラ5により、前記アドレスバス11に前記プログラム波形メモリ1をアクセスさせるためのアドレスが送出されることになる。
【0032】
従って、2つのバスコントローラ4及び5によって、両バス10及び11の使用に関し、アドレスの読み出し処理と、制御プログラムの読み出し処理及び楽音波形データの読み出し処理とのタイミングがリバースして同時に実行されることになる。たとえばマイコン110の制御プログラムの読み出しアドレスを指定するために、前記アドレスバス11がRAS/CASタイミングに使用されている間に、データバス10が空くので、そのタイミングで、該データバス10を使用して音源100に対し、前記アドレスラッチ回路3にラッチされたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバス10を使用してマイコン110用の制御プログラムの読み出し処理をしている間に、アドレスバス11を使用して前記アドレスラッチ回路3に次の楽音波形データのアドレスをラッチさせるようにする。そのように制御することで、マイコン110及び音源100の両動作とも、速度を犠牲にしないで済むようになる。
【0033】
また、プログラム波形メモリ1に記憶されたデータが、そこからデータバス10を使用して転送されている間に、プログラムSDRAM2に対し、必要なアドレスの指定がなされる。すなわち、前記プログラムSDRAM2は、アドレスの一部であるROWアドレスと、該一部以外の部分であるCOLMUNアドレスを時分割で受け取るものであり、該ROWアドレスを送出/受け取る時分割タイミングと、前記COLMUNアドレスを送出/受け取るタイミングが、前記プログラム波形メモリ1をアクセスをする期間内に時間的に連続して設けられている。
【0034】
これは、例えば楽音波形データがデータバス10を使用して(音源100などに対して)読み出されている間に、プログラムの読み出しアドレスが、プログラムSDRAM2から、アドレスバス11を介して転送されていることを規定したものである。より詳しく言えば、ROMで構成されるプログラム波形メモリ1がデータバス10を使用している間に、プログラムSDRAM2におけるROWアドレス(RASタイミング)とCOLUMNアドレス(CASタイミング)が連続してアドレスバス11に発生する、すなわち、アドレスバス11のRAS/CASタイミング中に、データバス10はプログラム波形メモリ1のデータの送受を行う、つまりアドレスバス11のRAS/CASタイミング(プログラムSDRAM2のアドレス指定タイミング)中に、データバス10は楽音波形データの読み取りを行うことになる。
【0035】
さらに、本実施例構成では、後述する図面から明らかなように、前記プログラム波形メモリ1のアクセスに必要な時間は、前記アドレスバス11に前記プログラムSDRAM2をアクセスするためのアドレスを送出する時間と、前記プログラムSDRAM2の前記複数の連続する記憶領域を連続してアクセスする時間との和以下であることが特徴である。
【0036】
例えば、後述するROMアクセス時間が、前記アドレスバス11にプログラムSDRAM2をアクセスするためのアドレス、すなわちRASタイミング(ROWアドレス)とCASタイミング(COLUMNアドレス)を送出する時間と、前記プログラムSDRAM2の前記複数の連続する記憶領域を連続してアクセスする(後述する実施例中のD0〜D3をバースト転送する)時間との和以下であるというものである。
【0037】
特に、前記制御プログラムの読み出しに関し、該制御プログラムが、バースト転送され、パイプライン処理されている間に、アドレスバス11は完全に使用されていないので、該アドレスバス11を使用して前記アドレスラッチ回路3に次の楽音波形データのアドレスをラッチさせるようにする。このようにすれば、効率よく両バス10及び11の使用ができ、マイコン110及び音源100の両動作とも、速度をより犠牲にしないで済むようになる。
【0038】
加えて、後述する図5及び図6は、上記のような構成を備えている場合に、上記プログラムがマイコン110のパイプライン処理で実行された際に、ハザードが発生した時の処理について示している。
【0039】
すなわち、上記プログラムがパイプライン処理を備えたマイコン110で実行される場合について、前記パイプライン処理がハザードを発生した際は、前記プログラムSDRAM2の、前記複数の連続する記憶領域の、以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバス11への前記プログラム波形メモリ1へのアドレスの送出時間後に、次のプログラムSDRAM2へのアドレス送出を行うようにしている。
【0040】
例えば、上記マイコン110で、パイプライン処理が行われていて、該パイプライン処理でハザードが発生した場合、制御プログラムが記憶されている前記プログラムSDRAM2の、前記複数の連続する記憶領域における、(ハザード発生)以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバス11への、(プログラムSDRAM2に記憶されることになる)制御プログラムと楽音波形データを記憶している前記プログラム波形メモリ1に対してのアドレスの送出時間(楽音波形読み出しアドレス送出時間)後に(すなわち、そのサイクルの終了後に)、次のプログラムSDRAM2へのアドレス(RAS/CASタイミングに沿って、ROW/COLUMNアドレスをアドレスバス11経由で)送出を行うようにするものである。図5のハザードは、プログラムの実行途中でジャンプ命令が発生した際のものを示している。
【0041】
仮に本電子楽器において、マイコン110による処理がパイプライン処理により行われている場合に、前記マイコン110用の制御プログラムがパイプライン処理されるタイミングで、ジャンプ命令などのハザードが発生した際は、それより後の同プログラムのパイプライン処理をキャンセルするようにすることになる。ジャンプ命令などのハザードの発生で、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるからである。
【0042】
図2は、マイコン110のメインフローチャートである。同図に示すように、本電子楽器の電源をONにすると、本電子楽器のブート処理が行われる(ステップS100)。すなわち、プログラム波形メモリ1の制御プログラムの最初にあるブートプログラムが読み出されて動作し、両バス10及び11はマイコン110のみが使用する。
【0043】
後述する音源100の初期化までは、該音源100は、停止され(ステップS102)、両バス10及び11とも該音源100によって使用されない。即ち、マイコン110によってのみ専用される。さらにプログラムSDRAM2の初期化処理がなされる(ステップS104)。
【0044】
そして、上記ブートプログラムにより両バスコントローラ4及び5への命令で、プログラム波形メモリ1から本体である制御プログラムがデータバス10を介して、プログラムSDRAM2へ転送され(ステップS106)、それ以後マイコン110によって、このプログラムSDRAM2から制御プログラムが読み出され、「A」に続く制御プログラムの処理(読み込んだプログラムへジャンプ)が行われる(ステップS108)。
【0045】
図3は、図2の「A」に続く制御プログラムに従ったマイコン110の処理のフローチャートである。最初にマイコン110の初期化処理、即ち、内部設定がなされる(ステップS200)。
【0046】
そして音源100の初期化処理がなされ(ステップS202)、アドレスバスコントローラ5及びデータバスコントローラ4による、アドレスバス11及びデータバス10の上述のような交互使用が可能となる。
【0047】
その後プログラムの内部の変数が初期化処理される(ステップS206)。そしてパネルイベント処理や演奏イベントなどのイベントがあるか否かがチェックされ(ステップS208)、イベントがある場合(ステップS208;Y)、そのイベント処理がなされ(ステップS210)、イベントがない場合(ステップS208;N)或いはそのイベント処理が終了した場合、イベント以外の処理が実行される(ステップS212)。その後ステップS208に復帰し、以上の処理を繰り返す。
【0048】
図4は、マイコン110の処理において、パイプライン処理中にハザードが発生しない場合の、タイミングチャートを示している。SDRAMのRAS/CASタイミングで、アドレスバス11はROWアドレス及びCOLUMNアドレスが転送され、プログラムSDRAM2における制御プログラムのアドレス指定がなされ、その後SDRAMではD0〜D3までがバースト転送されており、マイコン110は、上記D0〜D3に基づき、インストラクションフェッチ(IF)、レジスタフェッチ(RF)、エグゼキューション(EX)、オペランドフェッチ(OF)、ライトバック(WB)が、4つのパイプライン1〜4で順次同時実行処理される。
【0049】
一方上記バースト転送の間に、アドレスバスコントローラ5により指示されたアドレスラッチ回路3によって、次に読み出すべき楽音波形データのアドレスがラッチされ、SDRAMのRAS/CASタイミングの途中で、データバスコントローラ4により、プログラム波形メモリ1からそのアドレスに従って楽音波形データが読み出される。
【0050】
それを、アドレスバス11でROWアドレス及びCOLUMNアドレスが転送されている間に、データバス10では楽音波形データが転送されており、またデータバス10で、指定された上記アドレスに基づくD0〜D3がバースト転送されている間に、アドレスバス11では次に読み出すべき楽音波形データのアドレスが、アドレスラッチ回路3によりなされている。以上の処理が同時に交互に行われる。尚、同図において、楽音波形データのアドレスのラッチがなされてから、実際の楽音波形データが読み出されるまでを、ROMアクセス時間としている。
【0051】
これに対し、図5では、マイコン110のパイプライン2のインストラクションフェッチ(IF)において、ジャンプ命令があって、ハザードが発生した場合の処理について規定している。
【0052】
また図6では、パイプライン1のライトバック(WB)の際に、買い込みに失敗してハザードが発生した場合の処理について規定している。
【0053】
いずれも、上記マイコン110における上記パイプライン処理でハザードを発生した場合には、前記プログラムSDRAM2の、前記D0〜D3連続する記憶領域における、ハザード発生以降の領域の処理を中止し、該ハザードが発生したタイミングにおける前記アドレスバス11への、前記プログラム波形メモリ1へのアドレスの送出時間(楽音波形読み出しアドレス送出時間)後に(すなわち、そのサイクルの終了後に)、次のプログラムSDRAM2へのアドレス(RAS/CASタイミングに沿って、ROW/COLUMNアドレスをアドレスバス11経由で)送出を行い、どのパイプラインもが全ての処理を実行している。
【0054】
仮に本電子楽器において、マイコン110による処理がパイプライン処理により行われている場合に、前記マイコン110用の制御プログラムがパイプライン処理されるタイミングで、ジャンプ命令などのハザードが発生した際は、それより後の同プログラムのパイプライン処理をキャンセルしている。このように処理するのは、ジャンプ命令などのハザードの発生で、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるからである。
【0055】
アドレスラッチ回路3にアドレスを送出する間に、データバスコントローラ4により、前記データバス10を用いて前記プログラムSDRAM2の前記複数の連続するD0〜D3の領域がアクセスされると共に、前記アドレスラッチ回路3に前記アドレスがラッチされた後、該データバスコントローラ4により、前記データバス10を用いて前記プログラム波形メモリ1の該アドレスが示す記憶領域がアクセスされることになる。また、前記データバス10が前記プログラム波形メモリ1のアクセスに用いられている間、アドレスバスコントローラ5により、前記アドレスバス11に前記プログラムSDRAM2をアクセスさせるためのアドレス(ROWアドレス及びCOLUMNアドレス)が送出されると共に、前記データバス10が前記プログラムSDRAM2のアクセスに用いられている間、該アドレスバスコントローラ5により、前記アドレスバス11に前記プログラム波形メモリ1をアクセスさせるためのアドレスが送出されることになる。
【0056】
従って、2つのバスコントローラ4及び5によって、両バス10及び11の使用に関し、アドレスの読み出し処理と、制御プログラムの読み出し処理及び楽音波形データの読み出し処理とのタイミングがリバースして同時に実行されることになる。たとえばマイコン110の制御プログラムの読み出しアドレスを指定するために、前記アドレスバス11がRAS/CASタイミングに使用されている間に、データバス10が空くので、そのタイミングで、該データバス10を使用して音源100に対し、前記アドレスラッチ回路3にラッチされたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバス10を使用してマイコン110用の制御プログラムの読み出し処理をしている間に、アドレスバス11を使用して前記アドレスラッチ回路3に次の楽音波形データのアドレスをラッチさせるようにする。そのように制御することで、マイコン110及び音源100の両動作とも、速度を犠牲にしないで済むようになる。
【0057】
データバスコントローラ4は、例えば双方向(音源100又はマイコン110からデータバス10の方向と、データバス10から音源100又はマイコン110の方向)のセレクタで構成され、信号RAS及びCASがいずれもHighの時にマイコン110に、RAS又はCASのいずれかがLowの時に音源100に、データバス10が選択的に接続される。また、アドレスバスコントローラ5は例えば片方向(音源100又はマイコン110からアドレスバス11の方向のみ)のセレクタで構成され、信号RASがLowの時マイコン110が発生するアドレスの上位の一群のビットが、信号CASがLowの時マイコン110が発生するのアドレスの下位の一群のビットが、RAS/CASがいずれもHighの時、音源100が発生するアドレスが、アドレスバス11に送出される。
【0058】
尚、本発明の楽音生成装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【産業上の利用可能性】
【0059】
本発明の楽音生成装置は、マイコン内蔵音源に利用されるものであって、例えば、パーソナルコンピュータの音源ボード等にも適用可能なことは言うまでもない。
【図面の簡単な説明】
【0060】
【図1】電子楽器などの楽音生成装置に適用された本発明の一実施例であるメモリ制御装置の構成を示す機能ブロック図である。
【図2】マイコン110のメインフローチャートである。
【図3】図2の「A」に続く本電子楽器における処理のフローチャートである。
【図4】マイコン110の処理において、パイプライン処理中にハザードが発生しない場合の、タイミングチャートである。
【図5】プログラムがマイコン110のパイプライン処理で実行された際に、ハザードが発生した時の処理について示すタイミングチャートである。
【図6】同じく、プログラムがマイコン110のパイプライン処理で実行された際に、ハザードが発生した時の処理について示すタイミングチャートである。
【図7】従来の電子楽音生成装置における機能ブロック図である。
【符号の説明】
【0061】
1 プログラム波形メモリ
1a 波形メモリROM
2 プログラムSDRAM
3 アドレスラッチ回路
4 データバスコントローラ
5 アドレスバスコントローラ
10 データバス
11 アドレスバス
12 バス
100 音源
110 マイコン
200 インターフェース
210 DSP
212 ディレイメモリ
220 DAC
230 アンプ
240 スピーカ

【特許請求の範囲】
【請求項1】
楽音を生成するのに用いられる楽音波形、及び該楽音の生成を制御するためのプログラムを記憶した第1の記憶手段と、アドレスを与えると、該アドレスを含む複数の連続する記憶領域を連続してアクセス可能な記憶手段であって、該プログラムが複写されて動作するための第2の記憶手段とを、共通のアドレス及びデータバスでアクセスする楽音生成装置に用いられるメモリ制御装置であって、
前記第1の記憶手段に与えられるアドレスを一時記憶する第3の記憶手段と、
前記第3の記憶手段にアドレスを送出する間に前記データバスを用いて前記第2の記憶手段の前記複数の連続する記憶領域をアクセスさせると共に、前記第3の記憶手段に前記アドレスが記憶された後、前記データバスを用いて前記第1の記憶手段の該アドレスが示す記憶領域をアクセスさせる第1の制御手段と、
前記データバスが前記第1の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第2の記憶手段をアクセスさせるためのアドレスを送出すると共に、前記データバスが前記第2の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第1の記憶手段をアクセスさせるためのアドレスを送出する第2の制御手段と
を備えたことを特徴とする楽音生成装置のメモリ制御装置。
【請求項2】
前記第2の記憶手段は、アドレスの一部と、該一部以外の部分を時分割で受け取るものであり、
前記アドレスの一部を送出/受け取る時分割タイミングと、前記アドレスの該一部以外の部分を送出/受け取るタイミングが、前記第1の記憶手段をアクセスをする期間内に時間的に連続して設けられていること
を特徴とする請求項1に記載の楽音生成装置のメモリ制御装置。
【請求項3】
前記第1の記憶手段のアクセスに必要な時間が、前記アドレスバスに前記第2の記憶手段をアクセスするためのアドレスを送出する時間と、前記第2の記憶手段の前記複数の連続する記憶領域を連続してアクセスする時間との和以下であること
を特徴とする請求項1又は2いずれか1つに記載の楽音生成装置のメモリ制御装置。
【請求項4】
前記プログラムはパイプライン処理を備えたマイコンで実行され、
前記パイプライン処理がハザードを発生した際は、前記第2の記憶手段の、前記複数の連続する記憶領域の、以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバスへの前記第1の記憶手段へのアドレスの送出時間後に、次の第2の記憶手段へのアドレス送出を行うようにしたこと
を特徴とする請求項1、2又は3いずれか1つに記載の楽音生成装置のメモリ制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−7888(P2011−7888A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−149258(P2009−149258)
【出願日】平成21年6月24日(2009.6.24)
【出願人】(000001410)株式会社河合楽器製作所 (563)
【Fターム(参考)】