(57)【要約】【課題】  マイコンの処理速度に犠牲を強いることのない楽音生成装置を提供する。【解決手段】  マイコン１１０の制御プログラムの読み出しアドレスを指定するために、前記アドレスバス１１がＲＡＳ／ＣＡＳタイミングに使用されている間に、データバス１０が空くので、そのタイミングで、該データバス１０を使用して音源１００に対し、前記アドレスラッチ回路３にラッチされたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバス１０を使用してマイコン１１０用の制御プログラムの読み出し処理をしている間に、アドレスバス１１を使用して前記アドレスラッチ回路３に次の楽音波形データのアドレスをラッチさせるようにする。【選択図】    図４
2011007888.tif 000002
【特許請求の範囲】
【請求項１】
楽音を生成するのに用いられる楽音波形、及び該楽音の生成を制御するためのプログラムを記憶した第１の記憶手段と、アドレスを与えると、該アドレスを含む複数の連続する記憶領域を連続してアクセス可能な記憶手段であって、該プログラムが複写されて動作するための第２の記憶手段とを、共通のアドレス及びデータバスでアクセスする楽音生成装置に用いられるメモリ制御装置であって、
前記第１の記憶手段に与えられるアドレスを一時記憶する第３の記憶手段と、
前記第３の記憶手段にアドレスを送出する間に前記データバスを用いて前記第２の記憶手段の前記複数の連続する記憶領域をアクセスさせると共に、前記第３の記憶手段に前記アドレスが記憶された後、前記データバスを用いて前記第１の記憶手段の該アドレスが示す記憶領域をアクセスさせる第１の制御手段と、
前記データバスが前記第１の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第２の記憶手段をアクセスさせるためのアドレスを送出すると共に、前記データバスが前記第２の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第１の記憶手段をアクセスさせるためのアドレスを送出する第２の制御手段と
を備えたことを特徴とする楽音生成装置のメモリ制御装置。
【請求項２】
前記第２の記憶手段は、アドレスの一部と、該一部以外の部分を時分割で受け取るものであり、
前記アドレスの一部を送出／受け取る時分割タイミングと、前記アドレスの該一部以外の部分を送出／受け取るタイミングが、前記第１の記憶手段をアクセスをする期間内に時間的に連続して設けられていること
を特徴とする請求項１に記載の楽音生成装置のメモリ制御装置。
【請求項３】
前記第１の記憶手段のアクセスに必要な時間が、前記アドレスバスに前記第２の記憶手段をアクセスするためのアドレスを送出する時間と、前記第２の記憶手段の前記複数の連続する記憶領域を連続してアクセスする時間との和以下であること
を特徴とする請求項１又は２いずれか１つに記載の楽音生成装置のメモリ制御装置。
【請求項４】
前記プログラムはパイプライン処理を備えたマイコンで実行され、
前記パイプライン処理がハザードを発生した際は、前記第２の記憶手段の、前記複数の連続する記憶領域の、以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバスへの前記第１の記憶手段へのアドレスの送出時間後に、次の第２の記憶手段へのアドレス送出を行うようにしたこと
を特徴とする請求項１、２又は３いずれか１つに記載の楽音生成装置のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音源及び該音源を制御可能なマイコンを１チップ上に集積した集積回路を備えた楽音生成装置のメモリ制御装置に関する。
【背景技術】
【０００２】
後述する特許文献１などの従来の電子楽音生成装置では、音源１００とマイコン１１０を１チップにしてバスが共有される構成が示されている。すなわち、図７に示すように、マイコン１１０が実行する処理プログラム（制御プログラム）が楽音波形データと共に、１つの波形メモリＲＯＭ１ａ内に記憶されており、１チップ上に集積された音源１００とマイコン１１０とが、夫々制御プログラムと楽音波形データに時分割でアクセスする構成となっていた。
【特許文献１】特開平０２−１２６２９６
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、マイコン１１０と音源１００は、前記波形メモリＲＯＭ１ａに対し、時分割でアクセスできるようにするか、音源１００のアクセスの方を優先させ、その空いた時間にマイコン１１０にアクセスを許すような方法をとるしかなかった。従って、マイコン１１０の処理速度に犠牲を強いることになるという問題を生じていた。
【０００４】
本発明は、以上のような問題に鑑み創案されたもので、マイコンの処理速度に犠牲を強いることのない楽音生成装置を提供せんとするものである。
【課題を解決するための手段】
【０００５】
本発明の構成は、
楽音を生成するのに用いられる楽音波形、及び該楽音の生成を制御するためのプログラムを記憶した第１の記憶手段と、アドレスを与えると、該アドレスを含む複数の連続する記憶領域を連続してアクセス可能な記憶手段であって、該プログラムが複写されて動作するための第２の記憶手段とを、共通のアドレス及びデータバスでアクセスする楽音生成装置に用いられるメモリ制御装置であって、
前記第１の記憶手段に与えられるアドレスを一時記憶する第３の記憶手段と、
前記第３の記憶手段にアドレスを送出する間に前記データバスを用いて前記第２の記憶手段の前記複数の連続する記憶領域をアクセスさせると共に、前記第３の記憶手段に前記アドレスが記憶された後、前記データバスを用いて前記第１の記憶手段の該アドレスが示す記憶領域をアクセスさせる第１の制御手段と、
前記データバスが前記第１の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第２の記憶手段をアクセスさせるためのアドレスを送出すると共に、前記データバスが前記第２の記憶手段のアクセスに用いられている間、前記アドレスバスに前記第１の記憶手段をアクセスさせるためのアドレスを送出する第２の制御手段と
を備えたことを基本的特徴としている。
【０００６】
上記構成によれば、第３の記憶手段にアドレスを送出する間に、第１の制御手段により、前記データバスを用いて前記第２の記憶手段の前記複数の連続する記憶領域がアクセスされると共に、前記第３の記憶手段に前記アドレスが記憶された後、該第１の制御手段により、前記データバスを用いて前記第１の記憶手段の該アドレスが示す記憶領域がアクセスされることになる。また、前記データバスが前記第１の記憶手段のアクセスに用いられている間、第２の制御手段により、前記アドレスバスに前記第２の記憶手段をアクセスさせるためのアドレスが送出されると共に、前記データバスが前記第２の記憶手段のアクセスに用いられている間、該第２の制御手段により、前記アドレスバスに前記第１の記憶手段をアクセスさせるためのアドレスが送出されることになる。
【０００７】
従って、２つの制御手段によって、両バス使用に関し、アドレスの読み出し処理と、制御プログラムの読み出し処理及び楽音波形データの読み出し処理とのタイミングがリバースして同時に実行されることになる。たとえばマイコンの制御プログラムの読み出しアドレスを指定するために、前記アドレスバスがＲＡＳ／ＣＡＳタイミングに使用されている間に、データバスが空くので、そのタイミングで、該データバスを使用して音源に対し、前記第３の記憶手段に一時的に記憶（ラッチ）されたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバスを使用してマイコン用の制御プログラムの読み出し処理をしている間に、アドレスバスを使用して前記第３の記憶手段に次の楽音波形データのアドレスをラッチさせるようにする。そのように制御することで、マイコン及び音源の両動作とも、速度を犠牲にしないで済むようになる。
【０００８】
第２の発明は、第１の記憶手段に記憶されたデータが、そこからデータバスを使用して転送されている間に、第２の記憶手段に対し、必要なアドレスの指定がなされることを規定している。
すなわち、前記第２の記憶手段は、アドレスの一部と、該一部以外の部分を時分割で受け取るものであり、
前記アドレスの一部を送出／受け取る時分割タイミングと、前記アドレスの該一部以外の部分を送出／受け取るタイミングが、前記第１の記憶手段をアクセスをする期間内に時間的に連続して設けられていること
を特徴としている。
【０００９】
これは、例えば楽音波形データがデータバスを使用して（音源などに対して）読み出されている間に、プログラムの読み出しアドレスが、プログラムＳＤＲＡＭ等の第２の記憶手段から、アドレスバスを介して転送されていることを規定したものである。より詳しく言えば、プログラム波形メモリなどの第１の記憶手段（ＲＯＭ）がデータバスを使用している間に、プログラムＳＤＲＡＭなどの第２の記憶手段におけるＲＯＷアドレス（ＲＡＳタイミング）とＣＯＬＵＭＮアドレス（ＣＡＳタイミング）が連続してアドレスバスに発生する、すなわち、アドレスバスのＲＡＳ／ＣＡＳタイミング中に、データバスはプログラム波形メモリなどの第１の記憶手段のデータの送受を行う、つまりアドレスバスのＲＡＳ／ＣＡＳタイミング（ＳＤＲＡＭなどの第２の記憶手段のアドレス指定タイミング）中に、データバスは楽音波形データの読み取りを行うことを規定している。
【００１０】
第３の発明は、前記第１の記憶手段のアクセスに必要な時間が、前記アドレスバスに前記第２の記憶手段をアクセスするためのアドレスを送出する時間と、前記第２の記憶手段の前記複数の連続する記憶領域を連続してアクセスする時間との和以下であることを規定している。
【００１１】
例えば、後述するＲＯＭアクセス時間が、前記アドレスバスにプログラムＳＤＲＡＭなどの前記第２の記憶手段をアクセスするためのアドレス、すなわちＲＡＳタイミング（ＲＯＷアドレス）とＣＡＳタイミング（ＣＯＬＵＭＮアドレス）を送出する時間と、前記第２の記憶手段の前記複数の連続する記憶領域を連続してアクセスする（後述する実施例中のＤ０〜Ｄ３をバースト転送する）時間との和以下であるというものである。
【００１２】
特に、前記制御プログラムの読み出しに関し、該制御プログラムが、バースト転送され、パイプライン処理されている間に、アドレスバスは完全に使用されていないので、該アドレスバスを使用してラッチ回路等の前記第３の記憶手段に次の楽音波形データのアドレスをラッチさせるようにする。このようにすれば、効率よく両バスの使用ができ、マイコン及び音源の両動作とも、速度をより犠牲にしないで済むようになる。
【００１３】
第４の発明は、上記のような構成を備えている場合に、上記プログラムがマイコンのパイプライン処理で実行された際に、ハザードが発生した時の処理について規定している。
【００１４】
すなわち、上記プログラムがパイプライン処理を備えたマイコンで実行される場合について、前記パイプライン処理がハザードを発生した際は、前記第２の記憶手段の、前記複数の連続する記憶領域の、以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバスへの前記第１の記憶手段へのアドレスの送出時間後に、次の第２の記憶手段へのアドレス送出を行うようにするものである。
【００１５】
例えば、上記マイコンで、パイプライン処理が行われていて、該パイプライン処理でハザードが発生した場合、制御プログラムが記憶されているＳＤＲＡＭなどの前記第２の記憶手段の、前記複数の連続する記憶領域における、（ハザード発生）以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバスへの、（第２の記憶手段に記憶されることになる）制御プログラムと楽音波形データを記憶しているプログラム波形メモリなどからなる前記第１の記憶手段に対してのアドレスの送出時間（楽音波形読み出しアドレス送出時間）後に（すなわち、そのサイクルの終了後に）、次の第２の記憶手段（プログラムＳＤＲＡＭなど）へのアドレス（ＲＡＳ／ＣＡＳタイミングに沿って、ＲＯＷ／ＣＯＬＵＭＮアドレスをアドレスバス経由で）送出を行うようにするものである。ハザードは、プログラムの実行途中でジャンプ命令などが発生した際などに起こる。
【００１６】
仮に該楽音生成装置において、マイコンによる処理がパイプライン処理により行われている場合に、前記マイコン用の制御プログラムがパイプライン処理されるタイミングで、ジャンプ命令などのハザードが発生した際は、それより後の同プログラムのパイプライン処理をキャンセルするようにすることになる。ジャンプ命令などのハザードの発生で、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるからである。
【発明の効果】
【００１７】
以上のような本発明の構成によれば、両制御手段により、アドレスバスとデータバスにおいて、各バスへのアクセスが夫々クロスして同時に行われるようになるので、例えばこのような装置構成において、マイコン及び音源が同時に使用されて楽音発生と装置制御がなされる場合でも、夫々の処理速度を犠牲にしないで済むようになるという優れた効果が奏し得ることになる。
【００１８】
また、前記処理がマイコンにおいてパイプライン処理が実行されている場合に、該パイプライン処理における上記制御プログラムの処理中にジャンプ命令などのハザードが発生した際は、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるので、それより後の同プログラムのパイプライン処理をキャンセルするようにしており、ハザード発生時にもマイコンや音源の処理に異常が生ずることがない。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を、説明する。
【実施例】
【００２０】
図１は、電子楽器などの楽音生成装置に適用された本発明の一実施例であるメモリ制御装置の構成を示す機能ブロック図である。
【００２１】
同図に示すように、音源１００、該音源１００を制御可能なマイコン１１０、音源１００及びマイコン１１０が次にアクセスする記憶領域のアドレスを指示する、後述する第２の制御手段に相当するアドレスバスコントローラ５、さらにアドレスの指定があったところに対しデータ等の転送を制御する、後述する第１の制御手段に相当するデータバスコントローラ４が１チップ上に集積された集積回路で構成されている。
【００２２】
マイコン１１０と音源１００は、上記アドレスバスコントローラ５に指示を出しアドレスを外部のアドレスバス１１側に出力する。他方アドレス指定後に後述する各記憶領域から読み出される（或いは書き込まれる）データ、制御プログラム及びコマンドなどは、データバス１０及びデータバスコントローラ４を介してマイコン１１０又は音源１００に転送される。
【００２３】
上記アドレスバスコントローラ５は、アドレスバス１１を介して、後述する第２の記憶手段たるプログラムＳＤＲＡＭ２と第３の記憶手段たるアドレスラッチ回路３とにつながっており、読み出し・書き込みの行われる記憶領域のアドレスの指定が行われる。
【００２４】
他方上記データバスコントローラ４は、データバス１０を介して、上記プログラムＳＤＲＡＭ２と後述する第１の記憶手段たるプログラム波形メモリ１とにつながっており、記憶領域にあるデータやプログラム、或いはコマンドなどの読み出し・書き込みが行われる。
【００２５】
上記音源１００は、上記アドレスバスコントローラ５に指示を出し、上記プログラム波形メモリ１から読み出したい楽音波形データのアドレスを上記アドレスラッチ回路３に送る。そのアドレスの指定によってプログラム波形メモリ１から読み出された楽音波形データはデータバス１０を介してデータバスコントローラ４に転送され、音源１００に送られる。それによって、音源１００は、読み出された楽音波形データに基づき、楽音を発生し、後述するＤＳＰ２１０側に出力する。
【００２６】
上記マイコン１１０は、ＲＩＳＣチップであり、本電子楽器全体の制御を行うプロセッサであって、１チップ集積回路外部のインターフェース２００に接続されており、外部からの或いは外部への入出力ができるようになっている。その一つが電子楽器の鍵盤（図示無し）からの演奏情報やＭＩＤＩ演奏情報であり、また外部へ装置の各状態を表示させるディスプレイ（図示無し）や該ディスプレイと一部は重ねて設置されるパネルスイッチ（図示無し）などの設定情報が入出力される。また、後述するＤＳＰ２１０に、該インターフェース２００を介し、音源１００から出力される楽音データに対し、種々の音響効果（ディレイなどを含む）を付加する指令を送っている。
【００２７】
他方該マイコン１１０は、上記アドレスバスコントローラ５に指示を出し、上記プログラム波形メモリ１からブート時に読み出したい制御プログラムのアドレスを上記アドレスラッチ回路３に送る。そのアドレスの指定によってプログラム波形メモリ１から読み出された制御プログラムはデータバス１０を介して、後述する第２の記憶手段たるプログラムＳＤＲＡＭ２に転送されて記憶される。該ブート以後、マイコン１１０は、上記アドレスバスコントローラ５に指示を出し、制御プログラムの読み出しアドレスを出力させ、上記プログラムＳＤＲＡＭ２から該制御プログラムを読み出させ、データバス１０を介して、データバスコントローラ４に転送させ、該制御プログラムを受信する。該制御プログラムに従ってマイコン１１０は制御を行い、各部に指示を出す。制御プログラムがマイコン１１０によって読み出され実行されることで、後述するアドレスバスコントローラ５及びデータバスコントローラ４は、アドレスバス１１及びデータバス１０を介して、マイコン１１０とプログラムＳＤＲＡＭ２との間で、該起動プログラム及びその実行に伴うテンポラリデータなどの転送を司ることになる。また上述したマイコン１１０の制御処理もそれに従う。特に、本マイコン１１０では、後述するように、パイプライン処理を行っており、仮にそこでハザードが生じた場合は、後述するような処理を行う。
【００２８】
上記音源１００は、上記演奏情報などに応じて発生させた楽音を、上述のＤＳＰ２１０に出力する。その出力を受信したＤＳＰ２１０は、１チップ集積回路外部にあって、ディレイメモリ２１２に接続されており、音源１００からの出力があった時に、マイコン１１０からの指令に基づいて、楽音データに、ディレイを含む音響効果を付与する。
【００２９】
その音響効果の付与された楽音データは、次のＤＡＣ２２０でデジタル−アナログ変換され、さらに、アンプ２３０で増幅されて、スピーカ２４０から、外部に放音されることになる。
【００３０】
以上の構成において、本発明構成は、上記アドレスバス１１及びデータバス１０の他に、楽音を生成するのに用いられる楽音波形、及び該楽音の生成を制御するためのプログラムを記憶した第１の記憶手段たるプログラム波形メモリ１と、アドレスを与えると、該アドレスを含む複数の連続する記憶領域を連続してアクセス可能な記憶手段であって、該プログラムが複写されて動作するための第２の記憶手段たるプログラムＳＤＲＡＭ２と、前記プログラム波形メモリ１に与えられるアドレスを一時記憶する第３の記憶手段たるアドレスラッチ回路３と、該アドレスラッチ回路３にアドレスを送出する間に前記データバス１０を用いて前記プログラムＳＤＲＡＭ２の前記複数の連続する記憶領域をアクセスさせると共に、前記アドレスラッチ回路３に前記アドレスが記憶された後、前記データバス１０を用いて前記プログラム波形メモリ１の該アドレスが示す記憶領域をアクセスさせる第１の制御手段たるデータバスコントローラ４と、前記データバス１０が前記プログラム波形メモリ１のアクセスに用いられている間、前記アドレスバス１１に前記プログラムＳＤＲＡＭ２をアクセスさせるためのアドレスを送出すると共に、前記データバス１０が前記プログラムＳＤＲＡＭ２のアクセスに用いられている間、前記アドレスバス１１に前記プログラム波形メモリ１をアクセスさせるためのアドレスを送出する第２の制御手段たるアドレスバスコントローラ５とを備えている。
【００３１】
上記構成によれば、アドレスラッチ回路３にアドレスを送出する間に、データバスコントローラ４により、前記データバス１０を用いて前記プログラムＳＤＲＡＭ２の前記複数の連続する記憶領域がアクセスされると共に、前記アドレスラッチ回路３に前記アドレスが記憶された後、該データバスコントローラ４により、前記データバス１０を用いて前記プログラム波形メモリ１の該アドレスが示す記憶領域がアクセスされることになる。また、前記データバス１０が前記プログラム波形メモリ１のアクセスに用いられている間、アドレスバスコントローラ５により、前記アドレスバス１１に前記プログラムＳＤＲＡＭ２をアクセスさせるためのアドレスが送出されると共に、前記データバス１０が前記プログラムＳＤＲＡＭ２のアクセスに用いられている間、該アドレスバスコントローラ５により、前記アドレスバス１１に前記プログラム波形メモリ１をアクセスさせるためのアドレスが送出されることになる。
【００３２】
従って、２つのバスコントローラ４及び５によって、両バス１０及び１１の使用に関し、アドレスの読み出し処理と、制御プログラムの読み出し処理及び楽音波形データの読み出し処理とのタイミングがリバースして同時に実行されることになる。たとえばマイコン１１０の制御プログラムの読み出しアドレスを指定するために、前記アドレスバス１１がＲＡＳ／ＣＡＳタイミングに使用されている間に、データバス１０が空くので、そのタイミングで、該データバス１０を使用して音源１００に対し、前記アドレスラッチ回路３にラッチされたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバス１０を使用してマイコン１１０用の制御プログラムの読み出し処理をしている間に、アドレスバス１１を使用して前記アドレスラッチ回路３に次の楽音波形データのアドレスをラッチさせるようにする。そのように制御することで、マイコン１１０及び音源１００の両動作とも、速度を犠牲にしないで済むようになる。
【００３３】
また、プログラム波形メモリ１に記憶されたデータが、そこからデータバス１０を使用して転送されている間に、プログラムＳＤＲＡＭ２に対し、必要なアドレスの指定がなされる。すなわち、前記プログラムＳＤＲＡＭ２は、アドレスの一部であるＲＯＷアドレスと、該一部以外の部分であるＣＯＬＭＵＮアドレスを時分割で受け取るものであり、該ＲＯＷアドレスを送出／受け取る時分割タイミングと、前記ＣＯＬＭＵＮアドレスを送出／受け取るタイミングが、前記プログラム波形メモリ１をアクセスをする期間内に時間的に連続して設けられている。
【００３４】
これは、例えば楽音波形データがデータバス１０を使用して（音源１００などに対して）読み出されている間に、プログラムの読み出しアドレスが、プログラムＳＤＲＡＭ２から、アドレスバス１１を介して転送されていることを規定したものである。より詳しく言えば、ＲＯＭで構成されるプログラム波形メモリ１がデータバス１０を使用している間に、プログラムＳＤＲＡＭ２におけるＲＯＷアドレス（ＲＡＳタイミング）とＣＯＬＵＭＮアドレス（ＣＡＳタイミング）が連続してアドレスバス１１に発生する、すなわち、アドレスバス１１のＲＡＳ／ＣＡＳタイミング中に、データバス１０はプログラム波形メモリ１のデータの送受を行う、つまりアドレスバス１１のＲＡＳ／ＣＡＳタイミング（プログラムＳＤＲＡＭ２のアドレス指定タイミング）中に、データバス１０は楽音波形データの読み取りを行うことになる。
【００３５】
さらに、本実施例構成では、後述する図面から明らかなように、前記プログラム波形メモリ１のアクセスに必要な時間は、前記アドレスバス１１に前記プログラムＳＤＲＡＭ２をアクセスするためのアドレスを送出する時間と、前記プログラムＳＤＲＡＭ２の前記複数の連続する記憶領域を連続してアクセスする時間との和以下であることが特徴である。
【００３６】
例えば、後述するＲＯＭアクセス時間が、前記アドレスバス１１にプログラムＳＤＲＡＭ２をアクセスするためのアドレス、すなわちＲＡＳタイミング（ＲＯＷアドレス）とＣＡＳタイミング（ＣＯＬＵＭＮアドレス）を送出する時間と、前記プログラムＳＤＲＡＭ２の前記複数の連続する記憶領域を連続してアクセスする（後述する実施例中のＤ０〜Ｄ３をバースト転送する）時間との和以下であるというものである。
【００３７】
特に、前記制御プログラムの読み出しに関し、該制御プログラムが、バースト転送され、パイプライン処理されている間に、アドレスバス１１は完全に使用されていないので、該アドレスバス１１を使用して前記アドレスラッチ回路３に次の楽音波形データのアドレスをラッチさせるようにする。このようにすれば、効率よく両バス１０及び１１の使用ができ、マイコン１１０及び音源１００の両動作とも、速度をより犠牲にしないで済むようになる。
【００３８】
加えて、後述する図５及び図６は、上記のような構成を備えている場合に、上記プログラムがマイコン１１０のパイプライン処理で実行された際に、ハザードが発生した時の処理について示している。
【００３９】
すなわち、上記プログラムがパイプライン処理を備えたマイコン１１０で実行される場合について、前記パイプライン処理がハザードを発生した際は、前記プログラムＳＤＲＡＭ２の、前記複数の連続する記憶領域の、以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバス１１への前記プログラム波形メモリ１へのアドレスの送出時間後に、次のプログラムＳＤＲＡＭ２へのアドレス送出を行うようにしている。
【００４０】
例えば、上記マイコン１１０で、パイプライン処理が行われていて、該パイプライン処理でハザードが発生した場合、制御プログラムが記憶されている前記プログラムＳＤＲＡＭ２の、前記複数の連続する記憶領域における、（ハザード発生）以降の領域へのアクセスを中止すると共に、該ハザードが発生したタイミングにおける前記アドレスバス１１への、（プログラムＳＤＲＡＭ２に記憶されることになる）制御プログラムと楽音波形データを記憶している前記プログラム波形メモリ１に対してのアドレスの送出時間（楽音波形読み出しアドレス送出時間）後に（すなわち、そのサイクルの終了後に）、次のプログラムＳＤＲＡＭ２へのアドレス（ＲＡＳ／ＣＡＳタイミングに沿って、ＲＯＷ／ＣＯＬＵＭＮアドレスをアドレスバス１１経由で）送出を行うようにするものである。図５のハザードは、プログラムの実行途中でジャンプ命令が発生した際のものを示している。
【００４１】
仮に本電子楽器において、マイコン１１０による処理がパイプライン処理により行われている場合に、前記マイコン１１０用の制御プログラムがパイプライン処理されるタイミングで、ジャンプ命令などのハザードが発生した際は、それより後の同プログラムのパイプライン処理をキャンセルするようにすることになる。ジャンプ命令などのハザードの発生で、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるからである。
【００４２】
図２は、マイコン１１０のメインフローチャートである。同図に示すように、本電子楽器の電源をＯＮにすると、本電子楽器のブート処理が行われる（ステップＳ１００）。すなわち、プログラム波形メモリ１の制御プログラムの最初にあるブートプログラムが読み出されて動作し、両バス１０及び１１はマイコン１１０のみが使用する。
【００４３】
後述する音源１００の初期化までは、該音源１００は、停止され（ステップＳ１０２）、両バス１０及び１１とも該音源１００によって使用されない。即ち、マイコン１１０によってのみ専用される。さらにプログラムＳＤＲＡＭ２の初期化処理がなされる（ステップＳ１０４）。
【００４４】
そして、上記ブートプログラムにより両バスコントローラ４及び５への命令で、プログラム波形メモリ１から本体である制御プログラムがデータバス１０を介して、プログラムＳＤＲＡＭ２へ転送され（ステップＳ１０６）、それ以後マイコン１１０によって、このプログラムＳＤＲＡＭ２から制御プログラムが読み出され、「Ａ」に続く制御プログラムの処理（読み込んだプログラムへジャンプ）が行われる（ステップＳ１０８）。
【００４５】
図３は、図２の「Ａ」に続く制御プログラムに従ったマイコン１１０の処理のフローチャートである。最初にマイコン１１０の初期化処理、即ち、内部設定がなされる（ステップＳ２００）。
【００４６】
そして音源１００の初期化処理がなされ（ステップＳ２０２）、アドレスバスコントローラ５及びデータバスコントローラ４による、アドレスバス１１及びデータバス１０の上述のような交互使用が可能となる。
【００４７】
その後プログラムの内部の変数が初期化処理される（ステップＳ２０６）。そしてパネルイベント処理や演奏イベントなどのイベントがあるか否かがチェックされ（ステップＳ２０８）、イベントがある場合（ステップＳ２０８；Ｙ）、そのイベント処理がなされ（ステップＳ２１０）、イベントがない場合（ステップＳ２０８；Ｎ）或いはそのイベント処理が終了した場合、イベント以外の処理が実行される（ステップＳ２１２）。その後ステップＳ２０８に復帰し、以上の処理を繰り返す。
【００４８】
図４は、マイコン１１０の処理において、パイプライン処理中にハザードが発生しない場合の、タイミングチャートを示している。ＳＤＲＡＭのＲＡＳ／ＣＡＳタイミングで、アドレスバス１１はＲＯＷアドレス及びＣＯＬＵＭＮアドレスが転送され、プログラムＳＤＲＡＭ２における制御プログラムのアドレス指定がなされ、その後ＳＤＲＡＭではＤ０〜Ｄ３までがバースト転送されており、マイコン１１０は、上記Ｄ０〜Ｄ３に基づき、インストラクションフェッチ（ＩＦ）、レジスタフェッチ（ＲＦ）、エグゼキューション（ＥＸ）、オペランドフェッチ（ＯＦ）、ライトバック（ＷＢ）が、４つのパイプライン１〜４で順次同時実行処理される。
【００４９】
一方上記バースト転送の間に、アドレスバスコントローラ５により指示されたアドレスラッチ回路３によって、次に読み出すべき楽音波形データのアドレスがラッチされ、ＳＤＲＡＭのＲＡＳ／ＣＡＳタイミングの途中で、データバスコントローラ４により、プログラム波形メモリ１からそのアドレスに従って楽音波形データが読み出される。
【００５０】
それを、アドレスバス１１でＲＯＷアドレス及びＣＯＬＵＭＮアドレスが転送されている間に、データバス１０では楽音波形データが転送されており、またデータバス１０で、指定された上記アドレスに基づくＤ０〜Ｄ３がバースト転送されている間に、アドレスバス１１では次に読み出すべき楽音波形データのアドレスが、アドレスラッチ回路３によりなされている。以上の処理が同時に交互に行われる。尚、同図において、楽音波形データのアドレスのラッチがなされてから、実際の楽音波形データが読み出されるまでを、ＲＯＭアクセス時間としている。
【００５１】
これに対し、図５では、マイコン１１０のパイプライン２のインストラクションフェッチ（ＩＦ）において、ジャンプ命令があって、ハザードが発生した場合の処理について規定している。
【００５２】
また図６では、パイプライン１のライトバック（ＷＢ）の際に、買い込みに失敗してハザードが発生した場合の処理について規定している。
【００５３】
いずれも、上記マイコン１１０における上記パイプライン処理でハザードを発生した場合には、前記プログラムＳＤＲＡＭ２の、前記Ｄ０〜Ｄ３連続する記憶領域における、ハザード発生以降の領域の処理を中止し、該ハザードが発生したタイミングにおける前記アドレスバス１１への、前記プログラム波形メモリ１へのアドレスの送出時間（楽音波形読み出しアドレス送出時間）後に（すなわち、そのサイクルの終了後に）、次のプログラムＳＤＲＡＭ２へのアドレス（ＲＡＳ／ＣＡＳタイミングに沿って、ＲＯＷ／ＣＯＬＵＭＮアドレスをアドレスバス１１経由で）送出を行い、どのパイプラインもが全ての処理を実行している。
【００５４】
仮に本電子楽器において、マイコン１１０による処理がパイプライン処理により行われている場合に、前記マイコン１１０用の制御プログラムがパイプライン処理されるタイミングで、ジャンプ命令などのハザードが発生した際は、それより後の同プログラムのパイプライン処理をキャンセルしている。このように処理するのは、ジャンプ命令などのハザードの発生で、そのジャンプ命令などのあるプログラムのアドレスに続くアドレスに従って読み込まれるプログラムによる処理は、正常なものではなくなるからである。
【００５５】
アドレスラッチ回路３にアドレスを送出する間に、データバスコントローラ４により、前記データバス１０を用いて前記プログラムＳＤＲＡＭ２の前記複数の連続するＤ０〜Ｄ３の領域がアクセスされると共に、前記アドレスラッチ回路３に前記アドレスがラッチされた後、該データバスコントローラ４により、前記データバス１０を用いて前記プログラム波形メモリ１の該アドレスが示す記憶領域がアクセスされることになる。また、前記データバス１０が前記プログラム波形メモリ１のアクセスに用いられている間、アドレスバスコントローラ５により、前記アドレスバス１１に前記プログラムＳＤＲＡＭ２をアクセスさせるためのアドレス（ＲＯＷアドレス及びＣＯＬＵＭＮアドレス）が送出されると共に、前記データバス１０が前記プログラムＳＤＲＡＭ２のアクセスに用いられている間、該アドレスバスコントローラ５により、前記アドレスバス１１に前記プログラム波形メモリ１をアクセスさせるためのアドレスが送出されることになる。
【００５６】
従って、２つのバスコントローラ４及び５によって、両バス１０及び１１の使用に関し、アドレスの読み出し処理と、制御プログラムの読み出し処理及び楽音波形データの読み出し処理とのタイミングがリバースして同時に実行されることになる。たとえばマイコン１１０の制御プログラムの読み出しアドレスを指定するために、前記アドレスバス１１がＲＡＳ／ＣＡＳタイミングに使用されている間に、データバス１０が空くので、そのタイミングで、該データバス１０を使用して音源１００に対し、前記アドレスラッチ回路３にラッチされたアドレスに従った楽音波形データの読み出し処理を行うと共に、反対に前記データバス１０を使用してマイコン１１０用の制御プログラムの読み出し処理をしている間に、アドレスバス１１を使用して前記アドレスラッチ回路３に次の楽音波形データのアドレスをラッチさせるようにする。そのように制御することで、マイコン１１０及び音源１００の両動作とも、速度を犠牲にしないで済むようになる。
【００５７】
データバスコントローラ４は、例えば双方向（音源１００又はマイコン１１０からデータバス１０の方向と、データバス１０から音源１００又はマイコン１１０の方向）のセレクタで構成され、信号ＲＡＳ及びＣＡＳがいずれもＨｉｇｈの時にマイコン１１０に、ＲＡＳ又はＣＡＳのいずれかがＬｏｗの時に音源１００に、データバス１０が選択的に接続される。また、アドレスバスコントローラ５は例えば片方向（音源１００又はマイコン１１０からアドレスバス１１の方向のみ）のセレクタで構成され、信号ＲＡＳがＬｏｗの時マイコン１１０が発生するアドレスの上位の一群のビットが、信号ＣＡＳがＬｏｗの時マイコン１１０が発生するのアドレスの下位の一群のビットが、ＲＡＳ／ＣＡＳがいずれもＨｉｇｈの時、音源１００が発生するアドレスが、アドレスバス１１に送出される。
【００５８】
尚、本発明の楽音生成装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【産業上の利用可能性】
【００５９】
本発明の楽音生成装置は、マイコン内蔵音源に利用されるものであって、例えば、パーソナルコンピュータの音源ボード等にも適用可能なことは言うまでもない。
【図面の簡単な説明】
【００６０】
【図１】電子楽器などの楽音生成装置に適用された本発明の一実施例であるメモリ制御装置の構成を示す機能ブロック図である。
【図２】マイコン１１０のメインフローチャートである。
【図３】図２の「Ａ」に続く本電子楽器における処理のフローチャートである。
【図４】マイコン１１０の処理において、パイプライン処理中にハザードが発生しない場合の、タイミングチャートである。
【図５】プログラムがマイコン１１０のパイプライン処理で実行された際に、ハザードが発生した時の処理について示すタイミングチャートである。
【図６】同じく、プログラムがマイコン１１０のパイプライン処理で実行された際に、ハザードが発生した時の処理について示すタイミングチャートである。
【図７】従来の電子楽音生成装置における機能ブロック図である。
【符号の説明】
【００６１】
１      プログラム波形メモリ
１ａ    波形メモリＲＯＭ
２      プログラムＳＤＲＡＭ
３      アドレスラッチ回路
４      データバスコントローラ
５      アドレスバスコントローラ
１０      データバス
１１      アドレスバス
１２      バス
１００      音源
１１０      マイコン
２００      インターフェース
２１０      ＤＳＰ
２１２      ディレイメモリ
２２０      ＤＡＣ
２３０      アンプ
２４０      スピーカ
【図１】
2011007888.tif 000003
【図２】
2011007888.tif 000004
【図３】
2011007888.tif 000005
【図４】
2011007888.tif 000006
【図５】
2011007888.tif 000007
【図６】
2011007888.tif 000008
【図７】
2011007888.tif 000009