(57)【特許請求の範囲】
【請求項１】
音声データに基づいて音声信号を生成する音源部と、装置の動作を制御する制御部と、前記音源部と前記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置であって、
前記記憶手段に対する前記音源部からのアクセス要求が発生したとき、前記記憶手段に対する前記制御部からのアクセス要求が発生していなければ、前記音源部に対して連続したアクセス要求を許可し、前記記憶手段に対する前記制御部からのアクセス要求が発生していれば、前記音源部からのアクセス要求と前記制御部からのアクセス要求とをそれぞれ独立に定めた所定回数ずつ交互に許可するアクセス調停手段を設けたことを特徴とする音源装置。
【請求項２】
音声データに基づいて音声信号を生成する音源部と、装置の動作を制御する制御部と、前記音源部と前記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置であって、
前記記憶手段は、第１のメモリと該第１のメモリよりアクセス速度の速い第２のメモリとを備え、
前記音源部から前記第１のメモリへのアクセス要求と前記制御部から前記第１のメモリへのアクセス要求とが競合した場合に、前記音源部からのアクセス要求を優先させて前記音源部からのアクセス要求と前記制御部からのアクセス要求を調停する第１の調停手段と、
前記音源部から前記第２のメモリへのアクセス要求と前記制御部から前記第２のメモリへのアクセス要求とが競合した場合に、前記音源部からのアクセス要求と前記制御部からのアクセス要求とをそれぞれ独立に定めた所定回数ずつ交互に許可するように前記音源部からのアクセス要求と前記制御部からのアクセス要求を調停する第２の調停手段を設けたことを特徴とする音源装置。
【請求項３】
音声データに基づいてチャンネル毎に音声信号を生成する音源部と、装置の動作を制御する制御部と、前記音源部と前記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置であって、
前記音源部が１チャンネル分の音声信号生成に用いる音声データの読み出しを行うべき期間を、動作クロックの所定クロック数単位でチャンネルスロットとして設定する手段を設け、
前記記憶手段は１回のアクセスに動作クロックの複数クロック分の期間を要するメモリを有し、
前記音源部に、各チャンネルスロットにおいて、あらかじめ生成しておいた読み出しアドレスからの読み出し要求を前記メモリに対して行う読出要求手段を設け、
前記動作クロックの各クロックタイミング毎に前記メモリへのアクセスの許可／不許可を決定し、各チャンネルスロットの開始時に、直前のチャンネルスロットから続いている前記制御部による前記メモリへのアクセスがない場合には直ちに前記読出要求手段による読み出し要求を許可し、直前のチャンネルスロットから続いている前記制御部による前記メモリへのアクセスがある場合にはそのアクセスの終了後に前記読出要求手段による読み出し要求を許可するアクセス調停手段をさらに設けたことを特徴とする音源装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、音声データに基づいてチャンネル毎に音声信号を生成する音源部と、装置の動作を制御する制御部と、音源部と制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置に関し、特に、記憶手段に対するアクセス調停の効率化に関する。
【０００２】
【従来の技術】
従来から、音声データに基づいてチャンネル毎に音声信号を生成する音源部と装置の動作を制御する制御部とを有する音源装置において、音声信号生成用の音声データ等と動作制御用のプログラムデータ等を共通のメモリに記憶し、音源部と制御部とによって共通バスを介してそのメモリにアクセスし、アクセス要求が競合した場合にはその調停を行うことが行われている。
【０００３】
そして、このような装置として、特許２５４６０９８号公報には、音源部から記憶手段へのアクセス要求と制御部から記憶手段へのアクセス要求とが競合した場合に、基本的には制御部からのアクセス要求を優先させるが、音源部が楽音形成用のデータを使用するタイミングまでに必要な回数のアクセスを行うぎりぎりのタイミングになった場合だけは音源部からのアクセス要求を優先させる調停を行う電子楽器が開示されている。
このような電子楽器によれば、音源部と制御部に固定的にアクセスタイミングを割り振るのではなく、各部がフレキシブルにメモリアクセスを行うことができると共に、音源部に対して最低限必要なアクセスタイミングを確保しつつ制御部からのアクセス要求を優先しているので、音源部が発音を行わない場合のように音源部からのアクセス要求がない場合には制御部がメモリアクセスを独占できる等、記憶手段へのアクセス効率を改善することができる。
【０００４】
また、特開平７−２７１３７６号公報には、基本的には音源部からのアクセス要求を優先するが、音声信号のレベルが所定値以下となった場合には音源部から記憶手段へのアクセスを禁止し、音源部からのアクセス要求を優先していた期間にＣＰＵからのアクセスを許可するようにした音源装置が開示されている。
このような音源装置によれば、音源部からのアクセスが実質的に不要となる期間に音源部から記憶手段へのアクセスを行わないようにするので、その分のアクセスタイミングにＣＰＵ等の他のユニットからのアクセスを行うことができ、記憶手段へのアクセス効率を改善することができる。
【０００５】
【発明が解決しようとする課題】
しかしながら、これらの装置においては、音源部が１チャンネル分の音声信号生成に用いる音声データの読み出しを行うべき期間をチャンネルスロットとして設定し、各チャンネルスロットを記憶手段への１回のアクセスに必要な期間毎に処理スロットに固定的に区分し、各処理スロット毎にどこからのアクセス要求を許可するかを決定するようにしていた。従って、アクセス速度の異なる複数のメモリを使用した場合でも、最もアクセス速度の遅いメモリのアクセスタイミングに合わせて処理スロットを設ける必要があり、アクセス速度の速いメモリと遅いメモリとを同じ速さでしか利用できないという問題があった。
【０００６】
また、アクセス速度の異なる複数のメモリを使用した場合には、チャンネルスロット内に音源部が必要とするアクセスタイミングを確保するために必要な優先度はメモリによって異なる。すなわち、アクセス速度が遅く、チャンネルスロット内に音源部が必要とするぎりぎりの数のアクセスタイミングしか取れない場合には再優先で確保しなければならないが、アクセス速度が速く、タイミングに余裕がある場合には音源部の優先度はある程度低くてもよい。しかし、上述の装置においては、アクセス要求の優先度は、アクセス元がどこであるかに応じて決定しており、全てのメモリについて共通の基準を設けていたため、タイミングに余裕がないメモリに合わせた基準を使用しなければならないという問題があった。また、発音のためには、音源部が必要とするアクセスタイミングはチャンネルスロット内に必ず確保しなければならないが、必ず音源部のアクセスを優先させるとすると制御部のＣＰＵがアクセスを待たされすぎて処理負荷が大きくなることがある。しかし、制御部のアクセス要求をある程度優先させるために特許２５４６０９８号公報に記載されているような調停を行うと、複雑な制御が必要になる。
【０００７】
この発明は、これらの問題を解決し、音声データに基づいて音声信号を生成する音源部と、装置の動作を制御する制御部と、前記音源部と前記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置において、記憶手段へのアクセス要求を簡単な処理で適切に調停して記憶手段へのアクセス効率を改善することを目的とする。さらに、アクセス速度の異なる複数のメモリを使用した場合にも簡単な処理で適切な調停を行うことができるようにすることも目的とする。
【０００８】
【課題を解決するための手段】
上記の目的を達成するため、この発明の音源装置は、音声データに基づいて音声信号を生成する音源部と、装置の動作を制御する制御部と、上記音源部と上記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置において、上記記憶手段に対する上記音源部からのアクセス要求が発生したとき、上記記憶手段に対する上記制御部からのアクセス要求が発生していなければ、上記音源部に対して連続したアクセス要求を許可し、上記記憶手段に対する上記制御部からのアクセス要求が発生していれば、上記音源部からのアクセス要求と上記制御部からのアクセス要求とをそれぞれ独立に定めた所定回数ずつ交互に許可するアクセス調停手段を設けたものである。
【０００９】
また、音声データに基づいて音声信号を生成する音源部と、装置の動作を制御する制御部と、上記音源部と上記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置において、上記記憶手段に、第１のメモリとその第１のメモリよりアクセス速度の速い第２のメモリとを設け、上記音源部から上記第１のメモリへのアクセス要求と上記制御部から上記第１のメモリへのアクセス要求とが競合した場合に、上記音源部からのアクセス要求を優先させて上記音源部からのアクセス要求と上記制御部からのアクセス要求を調停する第１の調停手段と、上記音源部から上記第２のメモリへのアクセス要求と上記制御部から上記第２のメモリへのアクセス要求とが競合した場合に、上記音源部からのアクセス要求と上記制御部からのアクセス要求とをそれぞれ独立に定めた所定回数ずつ交互に許可するように上記音源部からのアクセス要求と上記制御部からのアクセス要求を調停する第２の調停手段を設けたものである。
【００１０】
あるいは、音声データに基づいてチャンネル毎に音声信号を生成する音源部と、装置の動作を制御する制御部と、上記音源部と上記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置において、上記音源部が１チャンネル分の音声信号生成に用いる音声データの読み出しを行うべき期間を、動作クロックの所定クロック数単位でチャンネルスロットとして設定する手段を設け、上記記憶手段に１回のアクセスに動作クロックの複数クロック分の期間を要するメモリを設け、上記音源部に、各チャンネルスロットにおいてあらかじめ生成しておいた読み出しアドレスからの読み出し要求を上記メモリに対して行う読出要求手段を設け、上記動作クロックの各クロックタイミング毎に上記メモリへのアクセスの許可／不許可を決定し、各チャンネルスロットの開始時に、直前のチャンネルスロットから続いている上記制御部による上記メモリへのアクセスがない場合には直ちに上記読出要求手段による読み出し要求を許可し、直前のチャンネルスロットから続いている上記制御部による上記メモリへのアクセスがある場合にはそのアクセスの終了後に上記読出要求手段による読み出し要求を許可するアクセス調停手段をさらに設けたものである。
【００１１】
【発明の実施の形態】
以下、この発明の好ましい実施の形態を図面を参照して説明する。
まず、この発明の音源装置の実施形態である音源ＬＳＩについて図１乃至図４を用いて説明する。図１はその音源ＬＳＩの構成を示すブロック図、図２はその音源ＬＳＩに接続する周辺ユニットを示すブロック図、図３はその音源ＬＳＩに備える音源コアの構成をより詳しく示すブロック図、図４は図３に示した音源部の構成をより詳しく示すブロック図である。
【００１２】
この音源ＬＳＩ１０は、図２に示すように、操作子１，表示器２，サウンドシステム３，外部メモリ４に接続して電子楽器等の音源として用いられ、操作子１からの指示に従って音声信号を生成してサウンドシステム３に送出して発音を行わせたり、表示信号を生成して表示器２に送出して表示を行わせたりする装置である。そして、この音源ＬＳＩ１０は、図１に示すように内部にも記憶手段を有するが、外部記憶手段である外部メモリ４とも接続し、必要に応じてここに対してデータを読み書きして必要な動作を行う。なお、操作子１としてはダイアル、ボタン、鍵盤等を用いることができ、表示器２としては発光ダイオードや液晶ディスプレイを用いることができる。
【００１３】
そして、音源ＬＳＩ１０は、図１に示すように、ＣＰＵ１１，入出力ポート１２，タイマ１３，割込コントローラ１４，外部バス調停部１５，内蔵ＲＯＭ調停部１６，内蔵ＳＲＡＭ（Static RAM）調停部１７，音源コア３０を備え、これらがＣＰＵバス２１によって接続されている。また、記憶手段として、内蔵ＲＯＭ調停部１６と接続する内蔵ＲＯＭ１８及び内蔵ＳＲＡＭ調停部１７と接続する内蔵ＳＲＡＭ１９とを備えると共に、外部バス調停部１５、内蔵ＲＯＭ調停部１６，内蔵ＳＲＡＭ調停部１７は、ＣＰＵバス２１とは別の音源バス２２によって音源コア３０の音源部３２と接続されている。さらに、内蔵ＳＲＡＭ調停部１７はＤＳＰバス２３によって音源コア３０のＤＳＰ部（波形処理部）３３と接続されている。
【００１４】
ＣＰＵ１１は、内蔵ＲＯＭ１８，内蔵ＳＲＡＭ１９や外部メモリ４に記憶されているプログラムを読み出し、適当な記憶手段をワークメモリとして使用してそのプログラムを実行することにより、この音源ＬＳＩ１０の動作を制御する制御部である。そして、操作子１からの操作信号に従って制御動作を行い、また表示信号を表示器２に送出して表示を行わせる。
入出力ポート１２は、操作子１や表示器２と音源ＬＳＩ１０とを接続するためのインタフェースとなるパラレルポートあるいはシリアルポートである。また、この入出力ポート１２を介して他の装置とＭＩＤＩ（Musical Instruments Digital Interface）規格による通信を行うこともできる。
タイマ１３は、音源ＬＳＩ１０内の各回路に必要な動作クロックやタイミング信号を供給する動作クロック発生手段である。
割込コントローラ１４は、ＣＰＵ１１における割込み処理の発生を制御するユニットである。
【００１５】
外部バス調停部１５は、外部メモリバス２４を介して、外部メモリ４を構成する外部ＲＯＭ２５，外部ＳＲＡＭ２６，外部ＤＲＡＭ（Dynamic RAM)２７と接続し、ＣＰＵ１１及び音源コア３０からこれらのメモリへのアクセスを仲介すると共に、アクセス要求が競合した場合にその調停を行う調停手段である。この外部バス調停部１５の動作及び機能については後に詳述する。
内蔵ＲＯＭ調停部１６は、内蔵ＲＯＭ１８と接続し、ＣＰＵ１１及び音源部３２から内蔵ＲＯＭ１８へのアクセスを仲介すると共に、アクセス要求が競合した場合にその調停を行う調停手段である。内蔵ＳＲＡＭ調停部１７は、内蔵ＳＲＡＭ１９と接続し、ＣＰＵ１１，音源部３２及びＤＳＰ部３３から内蔵ＳＲＡＭ１９へのアクセスを仲介すると共に、アクセス要求が競合した場合にその調停を行う調停手段である。これらの調停部の動作及び機能についても後述する。
【００１６】
内蔵ＲＯＭ１８，内蔵ＳＲＡＭ１９は、外部の外部ＲＯＭ２５，外部ＳＲＡＭ２６，外部ＤＲＡＭ２７と共に記憶手段を構成し、音源コア３０での音声信号生成処理に使用する波形データや、ＣＰＵ１１による制御処理に使用するプログラムやパラメータ等を記憶したり、ＣＰＵ１１のワークメモリとして機能したりする。ＣＰＵ１１及び音源部３２はこれらの記憶手段を任意に選択してアクセス可能であり、ＤＳＰ部３３は内蔵ＳＲＡＭ調停部１９のみにアクセス可能である。
【００１７】
音源コア３０は、音源制御部３１，音源部３２，ＤＳＰ部３３を備え、内蔵ＲＯＭ１８，内蔵ＳＲＡＭ１９を初めとするメモリに記憶している波形データを読み出して音声信号を生成し、所要の加工を施してサウンドシステム３に対して出力する音源部である。この音源コア３０は、後述するようにチャンネル毎に音声信号を生成し、３２チャンネルの音声信号を生成することができる。
この音源コア３０の構成をより詳しく示した図が図３である。
この音源コア３０においては、音源制御部３１がその全体の動作を制御する。すなわち、音源部３２における音声信号の生成、ＤＳＰ部３３におけるエフェクト処理の内容、各チャンネルの発音の有無の制御等を行う。
【００１８】
音源部３２は、音源バスを介してメモリに記憶している音声データである波形データを読み出し、補間処理を行って各サンプリング周期における音声信号をチャンネル毎に生成する。そして、その音声信号を順次ミキサ部３４に転送し、ミキサ部３４においてミキシング処理を行う。なお、音声信号の生成は最大３２チャンネル分並行して可能であり、１／４４１００秒のサンプリング周期毎に最大３２チャンネル分の音声信号の生成を時分割で行う（図８参照）。そして、１チャンネル分の音声信号を生成する期間をチャンネルスロットとし、１チャンネルスロットは周期２９．５ナノ秒の動作クロックであるマスタークロックの２４クロック分の期間としている。
【００１９】
また、ミキシング処理の際、エフェクトをかける必要があるチャンネルの音声信号については、ＤＳＰ部３３に転送してエフェクト処理を行う。そして、エフェクト処理後の音声信号をミキサ部３４に戻し、エフェクト処理不要であったチャンネルの音声信号と加算してミキシング処理を行う。ここで、ＤＳＰ部３３はＤＳＰバス２３と内蔵ＳＲＡＭ調停部１７とを介して内蔵ＳＲＡＭ１９にアクセスし、ここを遅延メモリとして使用することができる。
ミキサ部３４においてミキシングされた音声信号は、Ｄ／Ａ変換部３５でアナログ信号に変換し、サウンドシステム３に送信してその音声信号に基づいた発音を行わせる。
【００２０】
次に、音源コア３０の音源部３２における波形データの読み出しと補間処理についてさらに詳しく説明する。その音源部３２の構成をより詳しく示したものが図４である。
音源部３２による波形データの読み出しは、アドレスレジスタ３７に記憶している読み出しアドレスに対する読み出し要求を発することによって行うが、この読み出しアドレスは、音源制御部３１のアドレス生成部３６が生成する。このアドレス生成部３６がアドレス生成手段である。
【００２１】
ここで、内蔵ＲＯＭ１８，内蔵ＳＲＡＭ１９あるいは外部メモリ４には、整数で表現されるアドレスに所定のサンプリング周期毎の波形データを記憶している。しかし、同じ波形の音をサンプリング時とは異なる音高で出力するためには、例えば１．５倍の周波数にするためには各サンプリング周期毎にサンプリング周期の１．５倍進んだ位置の波形データに基づいて発音する必要がある等、サンプリング周期の間の時点での波形データも必要になる。そこで、音源コア３０においては、必要な波形データのアドレス情報を整数部と小数部で指定し、整数部をもとに読み出しアドレスを指定して必要な波形データを読み出し、小数部をもとに読み出したデータを補間することにより、サンプリング周期の間の時点での波形データを得ることができるようにしている。
【００２２】
このとき、補間は整数部の値と整数部の値＋１のアドレスから読み出した波形データを用いて行う。従って、補間バッファを設け、以前のサンプリング期間に読み出した波形データを記憶しておくようにすれば、アドレス情報の整数部が変化しない場合には記憶しておいた波形データを用いて補間を行い、整数部が変化した場合にのみ新たに波形データを読み出すようにすることができる。また、新たに読み出す場合でも、整数部の値が前のサンプリング期間と比較して１だけ増加した場合には新たに整数部の値＋１のアドレスから１つの波形データを読み出すのみでよく、２以上増加した場合にのみ整数部の値と整数部の値＋１のアドレスから２つの波形データを読み出せばよい。すなわち、読み出すべき波形データの数は０から２であり、読み出しアドレスもその数だけ生成することになる。
【００２３】
アドレス生成部３６では、サンプリング周期毎に、発音を指定された音高と波形データの音高との比に対応した数値であるＦナンバを累算することにより上記のアドレス情報を生成し、その整数部に従って上記のように必要な数だけ読み出しアドレスを生成してアドレスレジスタ３７に記憶させる。そして、読出要求手段として機能する音源部３２が、アドレスレジスタ３７に記憶されているアドレスに対して読み出し要求を発する。なお、各メモリはメモリマップ上の所定のアドレス領域にマッピングされており、アドレスを指定した読み出し要求は、そのアドレスに対応したメモリへのアクセス要求となる。
【００２４】
この要求が後に詳述するようにそのメモリに対応する調停部に許可されると、読み出しアドレスに記憶された波形データが読み出され、音源部３２に返されるので、読出データレジスタ３８にこれを記憶する。そして、これを補間部３９に転送し、アドレス情報の小数部をもとに読み出した（あるいはバッファに蓄積している）波形データに対して補間処理を行うことにより、アドレス情報に対応した波形データを生成することができる。なお、補間バッファは補間部３９に設け、新たに読み出した波形データをここに記憶させる場合には、既に記憶してあるデータは古い順に消去するものとする。
そして、補間によって生成した波形データに対して、さらに図示しないエンベロープ制御回路において、音の立ち上がりから立ち下がりまでの音量の時間変化を示す音量エンベロープ波形を乗算することにより、１チャンネル分の音声信号の生成が完了し、その音声信号はミキサ部３４に転送してミキシング処理に供することになる。
音源コア３０では、以上のような処理により、メモリから波形データを読み出してそれに基づいてチャンネル毎に音声信号を生成することができる。
【００２５】
次に、図５乃至図８を用いてこの音源ＬＳＩに備える各調停部の構成と動作について説明する。図５乃至図７はそれぞれ図１に示した外部バス調停部１５，内蔵ＲＯＭ調停部１６，内蔵ＳＲＡＭ調停部１７の構成をより詳しく示すブロック図、図８は各調停部によるアクセス調停の動作について説明するための図である。
まず、外部バス調停部１５について説明する。
外部バス調停部１５は、図５に示すように、選択回路４１，調停回路４２，デコード部４３，４４，エリア判定回路４５，タイミング発生回路４６，アクセス回路４７を備えている。
【００２６】
選択回路４１は、ＣＰＵバス２１及び音源バス２２と接続し、ＣＰＵ１１及び音源部３２からのアクセス要求を受け付け、調停回路４２からの指示に従って、調停回路４２が許可したアクセス要求をアクセス回路４７に通す回路である。なお、音源部３２は書き込みを行わないので、音源部３２からのアクセス要求は常に読み出し要求である。
【００２７】
調停回路４２は、ＣＰＵバス２１と音源バス２２によって送られてくるアクセス要求に係るアドレスをそれぞれデコード部４３，４４によってデコードした結果が入力し、その結果に基づいて許可するアクセス要求を決定して選択回路４１に指示する回路である。どのように許可するアクセス要求を決定するかについては、後述する。なお、デコード部４３，４４によるデコードは、それぞれＣＰＵバス２１，音源バス２２から送られてくるアクセス要求に係るアドレスをメモリマップと対照し、それがどのメモリに対するアクセス要求であるかを判定するものである。あるいは、外部メモリバス２４に接続されたいずれかのメモリに対するアクセス要求であるか否かを判定するものであってもよい。
ここでは、簡単化のため、ＣＰＵ１１及び音源部３２が同じ広さのメモリ空間をアクセス可能であって、外部メモリ４，内蔵ＲＯＭ１８，内蔵ＳＲＡＭ１９がそれぞれ各メモリ空間の同じ領域に配置されているものとする。
また、調停回路４２は、制御信号として、ＣＰＵ１１に対してアクセス要求に対する読み出し動作が終了するまで待機させるためのＣＰＵ＿ＷＡＩＴ信号を送信したり、音源部３２に対して読み出し動作の完了を伝えるためのＴＧ＿ＡＣＫ信号を送信したりもする。
【００２８】
エリア判定回路４５は、選択回路４１が通したアクセス要求が外部メモリバス２４に接続されたメモリのうちいずれに対するものであるかを判定する回路であり、Ｍ＿ＡＲＥＡ信号がその判定基準として各メモリとアドレスとの対応関係の情報を入力する。
タイミング発生回路４６は、外部メモリ４にアクセスする際のアドレス，データ，制御信号等のタイミングを制御するためのタイミング信号を発生してアクセス回路４７に供給する回路である。ここで、制御信号とは、例えば、アクセス対象のメモリがＳＲＡＭであれば、出力を許可するＯＥ信号、書き込みを指示するＷＥ信号等であり、ＳＤＲＡＭ（Synchronous Dynamic RAM）等であれば、同期動作のためのクロック信号，ＣＳ信号，ＲＡＳ信号、ＣＡＳ信号，ＷＥ信号等である。
この音源ＬＳＩ１０においては、図１に示したように、外部メモリバス２４に接続された各メモリは動作速度が異なるため、アクセス対象となるメモリによって異なるタイミングでこの信号を発生させることができるようにしたものである。なお、Ｍ＿ＳＰＤ信号は各メモリの種類とアクセス期間を示す情報であり、この信号に応じて異なるタイミング信号を発生する。
【００２９】
アクセス回路４７は、選択回路４１から供給されるアクセス要求に基づき、タイミング信号により制御されたタイミングでアドレスや各種制御信号等を発生し、外部メモリバス２４を介して外部メモリ４をアクセスする回路である。そして、読み出しの場合には、タイミング発生回路４６からのタイミング信号に応じて読み出したデータを記憶し、選択回路４１を介して読み出し要求を行ったＣＰＵ１１又は音源部３２にそのデータを返す。また、タイミング発生回路４６からのタイミング信号に基づいて、次のタイミングで新たなアクセスが可能な場合にはハイレベル、そうでない場合にはローレベルとするＳＩＧ１信号を生成して調停回路４２に送信し、次のアクセスを許可可能なタイミングを伝達する。
【００３０】
ここで、調停回路４２における許可するアクセス要求の決定方式について説明する。
まず、調停回路４２は、アクセス要求を許可するかしないかの判断を、図８に示すマスタークロックの１クロックタイミング毎に行う。そして、アクセス要求が外部メモリバス２４に接続されたいずれかのメモリに対するものでなければ、その要求は許可しない。また、ＳＩＧ１信号が前のタイミングでハイレベルでなければ、すなわち外部メモリバス２４が使用中であれば、いかなるアクセス要求も許可しない。
【００３１】
一方、外部メモリバス２４が使用中でなく、外部メモリバス２４に接続されたいずれかのメモリに対するアクセス要求が１つ（ＣＰＵ１１と音源部３２のいずれかから）だけであれば、その要求を許可し、２つ（ＣＰＵ１１と音源部３２の両方から）あれば、音源部３２からの要求を優先的に許可する。これは、外部メモリバス２４に接続されたメモリは動作速度が遅いので、チャンネルスロット内に音源部３２が必要とする波形データを確実に全て読み出すことができるようにするためには音源部３２からのアクセスの優先度を高くする必要があるためである。
また、チャンネルスロット毎に見ると、ＣＰＵ１１はチャンネルスロットとは関係なくアクセス要求を行うが、音源部３２は（データの読み込みが必要な場合には）チャンネルスロットの開始時にアクセス要求を行う。従って、これらのアクセス要求を調停回路４２が調停した場合、結果は図８の（Ａ）に示すようになる。
【００３２】
すなわち、各チャンネルスロットの開始時に、直前のチャンネルスロットから続いているＣＰＵ１１によるメモリへのアクセスがない場合には、音源部３２からのアクセス要求と同時にＣＰＵ１１からのアクセス要求があったとしても、音源部３２を優先して直ちにそのアクセス要求を許可する。一方、直前のチャンネルスロットから続いているＣＰＵ１１によるメモリへのアクセスがある場合には、新たなアクセスは許可できないので、そのアクセスの終了後に音源部３２からのアクセス要求を許可する。この場合も、ＣＰＵ１１によるアクセスの終了後直ちにＣＰＵ１１から次のアクセス要求があったとしても、音源部３２からのアクセス要求を優先して許可する。
音源部３２からのアクセス要求は１チャンネルスロットに０〜２回であることは上述したが、２回目のアクセス要求があった場合も、やはり音源部３２からのアクセス要求を優先して許可する。音源部３２のアクセス要求より前からＣＰＵ１１がアクセス要求を行っていた場合でも同様である。
このような調停を行う外部バス調停部１５は、第１の調停手段となる。
【００３３】
このような調停動作を行った場合、１回のメモリアクセスに必要な期間を６クロック分の期間とすると、最も早い場合でチャンネルスロットの１２クロック目、最も遅い場合でも１７クロック目までに音源部３２が必要とする波形データを読み出すことができるので、音源部３２における音声信号の生成が滞ることがない。
一方で、１チャンネルスロットを、最も速いメモリのアクセス期間以下のベースクロックに分割し、１回のアクセスに複数クロック分の期間を要する遅いメモリであっても、そのベースクロックのクロックタイミング毎にアクセス可否の判断を行うようになってきているので、ＣＰＵ１１と音源部３２から各メモリへのアクセス期間を密に詰めることができ、動作を高速に行うことができる。
【００３４】
また、チャンネルスロットをまたいだアクセスも可能となり、音源部３２を常にＣＰＵ１１に優先させるようにする場合でも、チャンネルスロット終了間際にＣＰＵ１１からのアクセスを許可して音源部３２からのアクセス要求をそのアクセスを終了するまで待たせるような制御が、特に複雑な条件設定をすることなく可能となる。従って、簡単な制御回路でＣＰＵ１１の待機時間を低減して処理負荷を低減することができる。
なお、図８に示した例の場合、カッコをつけて示したように音源部３２の２回目のアクセスの前にＣＰＵ１１からのアクセス要求を１回許可しても、２回目のアクセスは２３クロック目までに終了するので、このような制御を行うようにしてもよい。ただし、これはアクセスが６クロックかかるメモリの例であり、アクセスに７クロック以上かかるメモリが接続されることが想定される場合には、本実施の形態のように音源部３２を常にＣＰＵ１１に優先させねばならない。
【００３５】
次に、内蔵ＲＯＭ調停部１６について説明する。
内蔵ＲＯＭ調停部１６は、図６に示すように、選択回路５１，調停回路５２，デコード部５３，５４，タイミング発生回路５６，アクセス回路５７を備えている。これらの要素は、概ね外部バス調停部１５の対応する要素と同様な機能を有するので、同様な部分についての説明は省略するか簡単にする。
選択回路５１は、選択回路４１と同様、調停回路５２が許可したアクセス要求をアクセス回路５７に通す回路である。
【００３６】
調停回路５２は、調停回路４２と同様、デコード部５３，５４によってデコードした結果が入力し、その結果に基づいて許可するアクセス要求を決定して選択回路５１に指示したり、種々の制御信号を送信したりする回路である。どのように許可するアクセス要求を決定するかについては、後述する。なお、デコード部５３，５４によるデコードは、それぞれＣＰＵバス２１，音源バス２２から送られてくるアクセス要求に係るアドレスをメモリマップと対照し、それが内蔵ＲＯＭ１８に対するアクセス要求であるか否かを判定するものである。
【００３７】
タイミング発生回路５６は、タイミング発生回路４６と同様、内蔵ＲＯＭ１８にアクセスする際のアドレス，データ，制御信号等のタイミングを制御するためのタイミング信号を発生する回路であるが、ここではアクセス対象は内蔵ＲＯＭ１８だけであり、内蔵ＲＯＭ１８をアクセスするためのタイミング信号のみを発することができる。
アクセス回路５７は、アクセス回路４７と同様、選択回路５１から供給されるアクセス要求に基づき、タイミング信号により制御されたタイミングで内蔵ＲＯＭ１８をアクセスし、読み出しの場合には読み出したデータを記憶し、選択回路５１を介して読み出し要求元にそのデータを返す回路である。また、ＳＩＧ１信号と同様な意味のＳＩＧ２信号を生成して調停回路５２に送信する。
【００３８】
ここで、調停回路５２における許可するアクセス要求の決定方式について説明する。
まず、調停回路５２も、アクセス要求を許可するかしないかの判断を、図８に示すマスタークロックの１クロックタイミング毎に行う。そして、アクセス要求が内蔵ＲＯＭ１８に対するものでなければ、その要求は許可しない。また、ＳＩＧ２信号が前のタイミングでハイレベルでなければ、すなわち内蔵ＲＯＭ１８が使用中であれば、いかなるアクセス要求も許可しない。
一方、内蔵ＲＯＭ１８が使用中でなく、内蔵ＲＯＭ１８に対するアクセス要求が１つだけであれば、その要求を許可し、アクセス要求が継続的に２つあれば、内蔵ＲＯＭ１８が使用中でなくなるクロックタイミング毎にこれらの要求を交互に許可する。すなわち、例えばチャンネルスロット内で最初に許可を行う場合には音源部３２を許可し、次に許可を行う場合にはＣＰＵ１１を許可し、という具合である。ただし、途中で一方のアクセス要求がなくなった場合には、順番に関係なくもう一方のアクセス要求を許可するものとする。
【００３９】
内蔵ＲＯＭ１８に対するアクセス要求を調停回路５２が調停した場合、結果は図８の（Ｂ）に示すようになる。
すなわち、各チャンネルスロット内で最初にアクセス要求を許可する時点では、音源部３２からのアクセス要求と同時にＣＰＵ１１からのアクセス要求があったとしても、音源部３２を優先して直ちにそのアクセス要求を許可する。もちろん、直前のチャンネルスロットから続いているＣＰＵ１１によるメモリへのアクセスがある場合には、新たなアクセスは行えないので、そのアクセスが終了するまでどちらのアクセス要求も許可しない。
最初に許可したアクセスが終了すると、次はＣＰＵ１１からのアクセス要求を優先して許可する。そして、その次は音源部３２からのアクセス要求を優先して許可する。ここでは音源部３２からのアクセス要求はチャンネルスロット当たり最大２回であるので、それ以後はＣＰＵ１１からのアクセス要求があった場合にそれを許可することになる。
【００４０】
内蔵ＲＯＭ１８は比較的動作速度が速いので、さほど音源部３２からのアクセスの優先度を高くしなくても、チャンネルスロット内に音源部３２が必要とする波形データを確実に全て読み出すことができる。そこで、ＣＰＵ１１からのアクセス要求を待たせてＣＰＵ１１を待機させる頻度を減らすよう、ある程度ＣＰＵ１１からのアクセス要求も優先させるようにしている。そして、このような制御は極めて簡単に行うことができ、ＣＰＵ１１と音源部３２との間で優先度を調整する場合でも、調停回路５２を簡単なロジック回路で構成することができる。
なお、上述した調停において、最初にＣＰＵ１１からのアクセス要求を許可するようにしてもよいし、１回ずつに限らず、ＣＰＵ１１を３回につき音源部３２を１回等、独立に定めた所定回数ずつ交互に許可するようにしてもよい。この場合において、ＣＰＵ１１からのアクセスを音源部３２からのアクセス以上の回数許可するようにすると、ＣＰＵ１１を待機させる頻度の低減に効果的である。このような調停を行う内蔵ＲＯＭ調停部１６は、第２の調停手段となる。
【００４１】
次に、内蔵ＳＲＡＭ調停部１７について説明する。
内蔵ＳＲＡＭ調停部１７は、図７に示すように、選択回路６１，調停回路６２，デコード部６３，６４，タイミング発生回路６６，アクセス回路６７を備えている。これらの要素は、概ね内蔵ＲＯＭ調停部１６の対応する要素と同様な機能を有するので、同様な部分についての説明は省略するか簡単にする。
選択回路６１は、選択回路５１と同様、調停回路６２が許可したアクセス要求をアクセス回路６７に通す回路である。ただし、選択回路６１はＤＳＰバス２３とも接続し、ＤＳＰ部３３からのアクセス要求も受け付けるので、このアクセス要求も調停回路６２による調停の対象となる。
【００４２】
調停回路６２は、調停回路５２と同様、許可するアクセス要求を指示したり、種々の制御信号を送信したりする回路である。ただし、調停回路６２にはデコード部６３，６４によるデコード結果の他に、ＤＳＰバス２３経由のアクセス要求も入力し、許可するアクセス要求を決定する際にＤＳＰバス２３経由の要求も参照する。どのように許可するアクセス要求を決定するかについては、後述する。なお、デコード部６３，６４によるデコードは、それぞれＣＰＵバス２１，音源バス２２から送られてくるアクセス要求に係るアドレスをメモリマップと対照し、それが内蔵ＳＲＡＭ１９に対するアクセス要求であるか否かを判定するものである。ＤＳＰバス２３経由のアクセス要求については、常に内蔵ＳＲＡＭ１９へのアクセス要求であるので、このような判定を行うデコーダは不要であり、設けていない。
タイミング発生回路６６は、１クロックでアクセス可能な内蔵ＳＲＡＭ１９にアクセスするためのタイミング信号を発生する以外は、タイミング発生回路５６と同様である。アクセス回路６７は、選択回路６１からのアクセス要求に基づき、タイミング信号のタイミングで内蔵ＳＲＡＭ１９をアクセスし、ＳＩＧ２信号に代えてＳＩＧ３信号を生成する点以外は、アクセス回路５７と同様である。
【００４３】
ここで、調停回路６２における許可するアクセス要求の決定方式について説明する。
まず、調停回路６２も、アクセス要求を許可するかしないかの判断を１クロックタイミング毎に行う。そして、アクセス要求が内蔵ＳＲＡＭ１９に対するものでなければ、そのアクセス要求は許可しない。なお、ここでは内蔵ＳＲＡＭ１９へのアクセスは１クロック分の期間で完了するので、ＳＩＧ３信号は常にハイレベルであり、内蔵ＳＲＡＭ１９が使用中でアクセス要求が許可できない状況にはならない。
一方、内蔵ＳＲＡＭ１９に対するアクセス要求が１つだけであれば、その要求を許可し、アクセス要求が継続的に２つあれば、それらの要求を各クロックタイミング毎に交互に許可する。ただし、ＤＳＰ部３３については、アクセスを決まったタイミングで実行できないとエフェクト処理に支障を来すので、ＤＳＰ部３３からのアクセス要求があった場合には最優先で許可する。
【００４４】
内蔵ＳＲＡＭ１９に対するアクセス要求を調停回路６２が調停した場合、結果は図８の（Ｃ）に示すようになる。
概ね内蔵ＲＯＭ１８の場合と同様であるが、アクセスは１クロック分の期間で完了するので、直前のチャンネルスロットからアクセスが続いていることはない。なお、ＤＳＰ部３３からのアクセス要求はＤＳＰ部３３が必要としない場合にはないが、あるとすれば各チャンネルスロットの１２クロック目と２４クロック目であり、この要求は最優先で許可する。
内蔵ＳＲＡＭ１９も動作速度が速いので、ある程度ＣＰＵ１１からのアクセス要求も優先させるようにしている。そして、このような制御は極めて簡単に行うことができ、ＣＰＵ１１と音源部３２との間で優先度を調整する場合でも、調停回路５２を簡単な回路で構成することができる。このような調停を行う内蔵ＳＲＡＭ調停部１７も、第２の調停手段となる。
【００４５】
次に、図９乃至図１１に示す具体例を用いてこの音源ＬＳＩにおける記憶手段へのアクセス調停についてさらに説明する。図９乃至図１１は、それぞれそのアクセス調停の別々の具体例を示す図である。
まず、図９に示す例においては、ＣＰＵ１１は、矢印で示したチャンネルスロットの開始前において、外部ＲＯＭ２５へのアクセス要求を行っている。この時点では外部メモリバス２４は使用されておらず、音源部３２から外部メモリ４へのアクセス要求もないので、外部バス調停部１５はそのアクセス要求を許可する。そして、読み出しが終了するまでＣＰＵ１１を待機させるべく、ＣＰＵ＿ＷＡＩＴ信号をローレベルにする。
このとき、外部バス調停部１５のエリア判定回路４５はアクセス要求先が外部ＲＯＭ２５と判定し、タイミング発生回路４６で外部ＲＯＭ２５にアクセスするための６クロック時間分のタイミング信号を発生させる。また、アクセス回路４７は、新たなアクセスは許可できない旨を示すため、ＳＩＧ１信号をローレベルにする。
【００４６】
一方、チャンネルスロットの開始時に音源部（ＴＧ）３２が外部ＤＲＡＭ２７へのアクセス要求を行うが、直前のチャンネルスロットから続いているＣＰＵ１１のアクセスがあり、外部メモリバス２４は使用中であるので、このアクセス要求はＣＰＵ１１のアクセスが終了するまで許可されない。その後、ＣＰＵ１１のアクセスが終了するタイミングになると、ＳＩＧ１信号がＨＩＧＨにされ、次のクロックのタイミングでアクセスが許可可能である旨が調停回路４２に伝達される。
【００４７】
この例の場合、次のタイミングではＣＰＵ１１から外部ＲＯＭ２５への次のアクセス要求がなされる。この要求は、音源部３２からのアクセス要求と対象のメモリは異なるものの、同じ外部メモリバス２４を使用する要求であるので、音源部３２からのアクセス要求と競合することになる。しかし、外部バス調停部１５においては音源部３２からの要求を優先させるので、次も音源部からの要求が許可される。
そして、音源部３２による２回目のアクセスの終了後には、もはやＣＰＵ１１からのアクセス要求は他と競合していないので、ＣＰＵ１１からの要求が許可される。その後、ＣＰＵ１１は内蔵ＲＯＭ１８に対してアクセス要求を行うが、これも他と競合していないので、内蔵ＲＯＭ調停部１６によって許可される。
【００４８】
次の図１０に示す例においては、矢印で示すチャンネルスロットの開始時に、ＣＰＵ１１と音源部３２が同時に内蔵ＳＲＡＭ１９へのアクセス要求を行っている（「Ｓ」で示した）。これらの要求は競合するため、内蔵ＳＲＡＭ調停部１７が調停を行う。そして、ＣＰＵ１１からの要求と音源部３２からの要求を交互に許可するが、ここでは、図８に示した例の場合と異なり、ＣＰＵ１１からの要求を先に許可するものとする。従って、まずＣＰＵ１１からの要求を許可し（「Ｃ」で示した）、次のタイミングでもＣＰＵ１１からの新たな要求と音源部３２からの要求が競合しているが、ここでは音源部３２からの要求を許可する（「Ｔ」で示した）。以後、４クロック目まではＣＰＵ１１からの要求と音源部３２からの要求が競合しているのでこれらを交互に許可し、５クロック目では音源部３２からの要求がなくなるのでＣＰＵ１１からの要求を許可する。
７から１０クロック目ではどこからもアクセス要求がないので調停は不要である。
【００４９】
そして、１１クロック目からＣＰＵ１１が内蔵ＳＲＡＭ１９へのアクセス要求を４回行う。この間に音源部３２からのアクセス要求はないが、１２クロック目にはＤＳＰ部３３から内蔵ＳＲＡＭ１９へのアクセス要求があり（図示は省略した）、上述したようにこの要求は最優先で許可するので（「Ｄ」で示した）、ＣＰＵ１１のアクセス要求は１２クロック目には許可されず、１クロック分の期間待たされる。
その後、ＣＰＵ１１は外部ＳＲＡＭ２６に対して２回のアクセス要求を行うが、この要求は音源部３２と競合しないため、そのまま許可される。１回のアクセスに必要なクロックは５クロックであり、２回目のアクセスは次のチャンネルスロットにまたがることになるが、制御上全く問題ない。また、矢印で示したチャンネルスロットの２４クロック目にＤＳＰ部３３が、次のチャンネルスロットの１クロック目に音源部３２が内蔵ＳＲＡＭ１９に対してアクセス要求を行っているが、内蔵ＳＲＡＭ１９に対するアクセスには外部メモリバス２４を使用しないため、これらのアクセス要求は、ＣＰＵ１１の行っているアクセス要求とは競合せず、別途許可可能である。
【００５０】
次の図１１に示す例においては、ＣＰＵ１１は矢印で示したチャンネルスロットの開始前から連続して内蔵ＳＲＡＭ１９に対するアクセス要求を行っており、音源部３２はそのチャンネルスロットの開始時に外部ＳＲＡＭ２６に対するアクセス要求を行っている。しかし、上述の場合と同様、これらのアクセス要求は競合しないので、内蔵ＳＲＡＭ調停部１７と外部バス調停部１５によってそれぞれ独立に許可される。
その後、５クロック目にＣＰＵ１１が外部ＳＲＡＭ２６に対するアクセス要求を行うが、この時点では外部メモリバス２４は使用中であるので、音源部３２のアクセスが終了する次のクロックまでは外部バス調停部１５はこの要求を許可しない。
【００５１】
しかし、６クロック目には、音源部３２から外部ＳＲＡＭ２６に対する２回目のアクセス要求があり、これが５クロック目からのＣＰＵ１１の要求と競合する。そして、外部バス調停部１５は音源部３２からの要求を優先させるので、次もこちらを許可し、ＣＰＵ１１からの要求はさらに待たされる。そして、音源部３２からの２回目のアクセスの終了後には競合が解消されるので、許可される。そして、その後のＣＰＵ１１からのアクセス要求は他からの要求とは競合しないのでそのまま許可される。
【００５２】
この音源ＬＳＩ１０においては、各調停部１５，１６，１７において各メモリへのアクセス要求を検出し、競合が起こった場合に上述したような調停を行うことにより、音源部３２が各チャンネルスロットにおいて必要な波形データを読み出すことができるようにする一方、ＣＰＵ１１からのアクセスを待たせる期間を低減することができ、メモリへのアクセス効率を改善してＣＰＵ１１の負荷を低減することができる。また、メモリの動作速度に応じて異なる調停を行うようにすれば、１つ１つの調停は簡単な回路で行うことができる簡易な調停としながら、動作速度に応じて音源部３２の優先度を調整してＣＰＵ１１の負荷をより低減することができる。動作速度に２倍以上の差がある複数のメモリを用いた場合には、このような調停が特に効果的である。
【００５３】
さらに、少なくとも動作の遅いメモリについては、１つのチャンネルスロット内にいくつか固定のアクセス期間を設けるのではなく、メモリへの１回のアクセスに動作クロックの複数クロック分の期間を要するように動作クロックを設定し、その動作クロックのどのクロックタイミングからでもメモリへのアクセスを開始できるようにすれば、アクセスタイミングを柔軟に設定してメモリへのアクセス効率を改善することができる。また、動作速度の異なる複数のメモリを用いる場合にも、特に複雑な制御を行うことなく、それぞれのメモリの動作速度に合ったアクセス制御と調停処理を行うことができる。
【００５４】
なお、上述した実施形態では、１チャンネルスロットが２４クロックであったが、１チャンネルスロットのクロック数はそれより多くても少なくてもよい。また、ＣＰＵ１１と音源部３２のメモリマップが同じものとしたが、ＣＰＵ１１と音源部３２で、外部メモリ４，内蔵ＲＯＭ１８，内蔵ＳＲＡＭ１９を各メモリ空間の異なる位置に配置するようにしてもよい。
【００５５】
【発明の効果】
以上説明してきたように、この発明によれば、音声データに基づいて音声信号を生成する音源部と、装置の動作を制御する制御部と、前記音源部と前記制御部の双方から同じ記憶手段にアクセスする手段とを有する音源装置において、音源部と制御部からの記憶手段へのアクセス要求を簡単な処理で適切に調停して記憶手段へのアクセス効率を改善し、制御部の負荷を低減することができる。また、アクセス速度の異なる複数のメモリを使用した場合にも簡単な処理で適切な調停を行うことができる。
【図面の簡単な説明】
【図１】この発明の音源装置の実施形態である音源ＬＳＩの構成を示すブロック図である。
【図２】その音源ＬＳＩに接続する周辺ユニットを示すブロック図である。
【図３】その音源ＬＳＩに備える音源コアの構成をより詳しく示すブロック図である。
【図４】図３に示した音源部の構成をより詳しく示すブロック図である。
【図５】図１に示した外部バス調停部の構成をより詳しく示すブロック図である。
【図６】図１に示した内蔵ＲＯＭ調停部の構成をより詳しく示すブロック図である。
【図７】図１に示した内蔵ＳＲＡＭ調停部の構成をより詳しく示すブロック図である。
【図８】図５乃至図７に示した各調停部によるアクセス調停の動作について説明するための図である。
【図９】図５乃至図７に示した各調停部によるアクセス調停の具体例を示す図である。
【図１０】その別の例を示す図である。
【図１１】そのさらに別の例を示す図である。
【符号の説明】
１…操作子、２…表示器、３…サウンドシステム、４…外部メモリ、１０…音源ＬＳＩ、１１…ＣＰＵ、１２…入出力ポート、１３…タイマ、１４…割込コントローラ、１５…外部バス調停部、１６…内蔵ＲＯＭ調停部、１７…内蔵ＳＲＡＭ調停部、１８…内蔵ＲＯＭ、１９…内蔵ＳＲＡＭ、２１…ＣＰＵバス、２２…音源バス、２３…ＤＳＰバス、２４…外部メモリバス、２５…外部ＲＯＭ、２６…外部ＳＲＡＭ、２７…外部ＤＲＡＭ、３０…音源コア、３１…音源制御部、３２…音源部、３３…ＤＳＰ部、３４…ミキサ部、３５…Ｄ／Ａ変換部、３６…アドレス生成部、３７…アドレスレジスタ、３８…読出データレジスタ、３９…補間部、４１，５１，６１…選択回路、４２，５２，６２…調停回路、４３，４４，５３，５４，６３，６４…デコード部、４５…エリア判定回路、４６，５６，６６…タイミング発生回路、４７，５７，６７…アクセス回路
【図１】
0003722104.tif 000002
【図２】
0003722104.tif 000003
【図３】
0003722104.tif 000004
【図４】
0003722104.tif 000005
【図５】
0003722104.tif 000006
【図６】
0003722104.tif 000007
【図７】
0003722104.tif 000008
【図８】
0003722104.tif 000009
【図９】
0003722104.tif 000010
【図１０】
0003722104.tif 000011
【図１１】
0003722104.tif 000012