(57)【特許請求の範囲】
【請求項１】
バスを介して外部記憶手段を共有する第１の演算処理手段と第２の演算処理手段とを具備する信号処理装置において、
バス解放を要求する要求信号を発生するタイミングを指定する値を記憶する第１のレジスタと、
アクセス期間の開始を表す開始信号を発生するタイミングを指定する値を記憶する第２のレジスタと、
前記第１の演算処理手段のサンプリング周期開始から前記第１のレジスタに記憶された値に対応する時間経過する毎に、バス解放を要求する要求信号を発生して前記第２の演算処理手段に出力する一方、当該サンプリング周期開始から前記第２のレジスタに記憶された値に対応する時間経過後に、アクセス期間の開始を表す開始信号を発生して前記第１の演算処理手段に出力するアクセス期間開始指示手段と、
前記第１の演算処理手段が外部記憶手段へのアクセスを完了した時に発生する完了信号に応じて、前記アクセス期間開始指示手段に要求信号および開始信号の停止を指示してアクセス期間を終わらせるアクセス期間終了指示手段と、
前記第１の演算処理手段は、前記アクセス期間開始指示手段及びアクセス期間終了指示手段によりサンプリング周期毎に設定されるアクセス期間中に、前記外部記憶手段に対してリード・ライト処理を実行することを特徴とする信号処理装置。
【請求項２】
前記第１の演算処理手段は、
外部記憶手段に対して行うリード・ライト処理の内容を指示するアクセス命令を記憶するアクセス命令記憶手段と、
前記アクセス期間開始指示手段及びアクセス期間終了指示手段により設定されるアクセス期間中に、前記アクセス命令記憶手段に記憶されるアクセス命令に従って外部記憶手段に対してリード・ライト処理を実行するリード・ライト手段と、
前記リード・ライト手段のリード・ライト処理により外部記憶手段から読み出されたデータが書き込まれる一方、外部記憶手段に書き込むデータが読み出される内部記憶手段と、
前記リード・ライト手段のリード・ライト処理とは別進行で前記内部記憶手段に記憶されるデータに信号処理を施す信号処理手段と
を具備することを特徴とする請求項１記載の信号処理装置。
【請求項３】
前記リード・ライト手段は、外部記憶手段へのアクセス完了を表すアクセス命令を前記アクセス命令記憶手段から読み出した場合、外部記憶手段へのアクセスを完了すると同時に、完了信号を発生して前記アクセス期間終了指示手段に供給することを特徴とする請求項２記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器の音源に用いて好適な信号処理装置に関する。
【背景技術】
【０００２】
デジタル・シグナル・プロセッサ（ＤＳＰ）と呼ばれ、ＣＰＵの制御の下に積和演算を高速処理する論理演算素子を内蔵する信号処理装置が知られている。信号処理装置では、処理すべきデータを外部メモリに記憶しておき、ＣＰＵからの指示に従って、その外部メモリから処理すべきデータを逐次取込んで信号処理する形態をとる場合が多い。例えば、電子楽器の音源に用いられる信号処理装置では、外部メモリに記憶される波形データをサンプリング周期毎に読み出し、読み出した波形データについて、遅延フィードバック演算やフィルタ演算（例えば、ＦＩＲフィルタ等）を施して各種倍音構成の楽音を形成したり、そうして形成した楽音にディレイ等の各種エフェクトを付与して出力するようになっている。
【０００３】
この種の装置として、例えば特許文献１には、ＣＰＵの制御の下に信号処理する第１の処理部と、第１の処理部とは別進行で外部メモリに対してリード・ライト処理する第２の処理部とから構成され、第１の処理部のタイムスロットとは別のタイムスロットに同期する第２の処理部のリード・ライト処理に優先して第１の処理部が信号処理を実行することによって、第２の処理部を含む外部メモリが第１の処理部の内部メモリとして機能する結果、外部メモリにアクセスする際の無駄時間を省略して処理速度を向上させた信号処理装置が開示されている。
【０００４】
【特許文献１】特開平１０−２６０８３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ＣＰＵおよびＤＳＰが同じバスを介して外部メモリを共有するように構成された信号処理装置では、基本的にはＣＰＵがバスを管理する。そうした構成の信号処理装置において、ＤＳＰがバスを占有する場合には、ＤＳＰからＣＰＵにバス解放をリクエストし、これに応じてＣＰＵがバスを解放する。したがって、バス解放リクエストを受け付けるＣＰＵでは、ＤＳＰからのリクエストを受領してから実際にバスを解放するまでの間、ある程度ばらつきのある待ち時間を要する。また、ＤＳＰ側でもＣＰＵにメモリアクセスをリクエストする毎に、そのリクエストがＣＰＵに受領されるまで待機せねばならない。この為、装置全体の処理効率低下を招致するという問題がある。
【０００６】
本発明は、このような事情に鑑みてなされたもので、処理効率低下を招致することなく共有バスを介して外部メモリにアクセスすることができる信号処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１に記載の発明では、バスを介して外部記憶手段を共有する第１の演算処理手段（ＤＳＰ）と第２の演算処理手段（ＣＰＵ）とを具備する信号処理装置において、バス解放を要求する要求信号を発生するタイミングを指定する値を記憶する第１のレジスタと、アクセス期間の開始を表す開始信号を発生するタイミングを指定する値を記憶する第２のレジスタと、前記第１の演算処理手段のサンプリング周期開始から前記第１のレジスタに記憶された値に対応する時間経過する毎に、バス解放を要求する要求信号を発生して前記第２の演算処理手段に出力する一方、当該サンプリング周期開始から前記第２のレジスタに記憶された値に対応する時間経過後に、アクセス期間の開始を表す開始信号を発生して前記第１の演算処理手段に出力するアクセス期間開始指示手段と、前記第１の演算処理手段が外部記憶手段へのアクセスを完了した時に発生する完了信号に応じて、前記アクセス期間開始指示手段に要求信号および開始信号の停止を指示してアクセス期間を終わらせるアクセス期間終了指示手段と、前記第１の演算処理手段は、前記アクセス期間開始指示手段及びアクセス期間終了指示手段によりサンプリング周期毎に設定されるアクセス期間中に、前記外部記憶手段に対してリード・ライト処理を実行することを特徴とする。
【０００９】
上記請求項１に従属する請求項２に記載の発明では、前記第１の演算処理手段は、外部記憶手段に対して行うリード・ライト処理の内容を指示するアクセス命令を記憶するアクセス命令記憶手段と、前記アクセス期間開始指示手段及びアクセス期間終了指示手段により設定されるアクセス期間中に、前記アクセス命令記憶手段に記憶されるアクセス命令に従って外部記憶手段に対してリード・ライト処理を実行するリード・ライト手段と、前記リード・ライト手段のリード・ライト処理により外部記憶手段から読み出されたデータが書き込まれる一方、外部記憶手段に書き込むデータが読み出される内部記憶手段と、前記リード・ライト手段のリード・ライト処理とは別進行で前記内部記憶手段に記憶されるデータに信号処理を施す信号処理手段とを具備することを特徴とする。
【００１０】
上記請求項２に従属する請求項３に記載の発明では、前記リード・ライト手段は、外部記憶手段へのアクセス完了を表すアクセス命令を前記アクセス命令記憶手段から読み出した場合、外部記憶手段へのアクセスを完了すると同時に、完了信号を発生して前記アクセス期間終了指示手段に供給することを特徴とする。
【発明の効果】
【００１１】
本発明では、第１の演算処理手段（ＤＳＰ）のサンプリング周期毎に、第２の演算処理手段（ＣＰＵ）にバス解放を要求すると共に、この要求に応じて当該第２の演算処理手段（ＣＰＵ）が解放するバスを占有してアクセス期間を設定し、設定されたアクセス期間中に第１の演算処理手段（ＤＳＰ）が外部記憶手段に対してリード・ライト処理を実行するので、従来のように、ＣＰＵにメモリアクセスをリクエストする毎に、そのリクエストがＣＰＵに受領されるまで待機するという無駄時間が無くなる結果、処理効率低下を招致することなく共有バスを介して外部メモリにアクセスすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の一実施形態による信号処理装置の構成を示すブロック図である。この図に示す信号処理装置は、電子楽器の音源に用いるものであり、ＤＳＰ１００、タイミング発生装置２００、ＣＰＵ３００および外部メモリ４００から構成される。このような構成において、タイミング発生装置２００から出力されるアクセススタート信号ＳＴＲ（後述する）や、バス解放リクエスト信号ＲＥＱ（後述する）に応じて、ＤＳＰ１００およびＣＰＵ３００が処理効率低下を招致しないようにバスＢを介して外部メモリ４００を共有するようになっている。以下、各部の構成について述べる。
【００１３】
ＤＳＰ１００は、アクセスコマンドメモリ１０、メモリインタフェース部１１、内部メモリ１２および演算装置１３を有する。アクセスコマンドメモリ１０には、図２に図示する一例のように、外部メモリ４００に対するデータの読み出しを指示するリードコマンドＲｅａｄまたは書き込みを指示するライトコマンドＷｒｉｔｅと、外部メモリ４００の修飾アドレスを指定するオフセット値とから形成されるアクセスコマンドがアドレス順に格納されており、その最終アドレスには、外部メモリ４００へのアクセス完了を表す終了コマンドＥｎｄが設けられている。
【００１４】
メモリインタフェース部１１は、後述のタイミング発生装置２００が発生するアクセススタート信号ＳＴＲを受領する度に、上記アクセスコマンドメモリ１０に格納されるアクセスコマンドを逐次実行し、バスＢを介して外部メモリ４００に対してリード・ライト処理を行う。
【００１５】
すなわち、メモリインタフェース部１１では、アクセスコマンドメモリ１０から読み出すアクセスコマンドがリードコマンドＲｅａｄであると、そのアクセスコマンド中のオフセット値で指定される外部メモリ４００のアドレスから波形データを読み出し、読み出した波形データを内部メモリ１２にストアする。一方、アクセスコマンドメモリ１０から読み出したアクセスコマンドがライトコマンドＷｒｉｔｅならば、そのアクセスコマンド中のオフセット値で指定される外部メモリ４００のアドレスに、内部メモリ１２のデータを書き込む。
【００１６】
また、メモリインタフェース部１１は、アクセスコマンドメモリ１０から読み出したアクセスコマンドが、外部メモリ４００へのアクセス完了を表す終了コマンドＥｎｄであると、バスＢを介した外部メモリ４００へのアクセスを完了すると同時に、アクセス完了信号ＣＯＭを発生してタイミング発生装置２００に供給する。
【００１７】
内部メモリ１２は、ミラーリング領域とワーク領域とを備える。内部メモリ１２のミラーリング領域には、メモリインタフェース部１１がアクセスコマンドに従って外部メモリ４００から読み出すデータ（波形データや演算パラメータ）が格納される。内部メモリ１２のワーク領域には、演算装置１３により演算処理される波形データが格納される。
【００１８】
演算装置１３は、算術論理ユニット（ＡＬＵ）や乗算器（ＭＵＬ）等から構成される。演算装置１３では、例えば外部から入力される演算指示に従って内部メモリ１２のミラーリング領域に記憶される波形データをサンプリング周期毎に読み出して遅延フィードバック演算を施し、その演算結果を内部メモリ１２のワーク領域にストアする。なお、内部メモリ１２のワーク領域に格納される演算結果は、アクセスコマンドに従ってメモリインタフェース部１１が読み出した後、外部メモリ４００に書き込まれる。
【００１９】
タイミング発生装置２００は、図３に図示するように、マスタカウンタ２０１、ＲＥＱポイント設定レジスタ２０２、アクセススタートポイント設定レジスタ２０３、比較器２０４〜２０５、フリップフロップ回路２０６〜２０７から構成される。マスタカウンタ２０１は、システムクロックＣＫをカウントして出力する。マスタカウンタ２０１のカウント値は、サンプリング周期毎にリセットされる。
【００２０】
ＲＥＱポイント設定レジスタ２０２には、バス解放リクエスト信号ＲＥＱの発生タイミングを指定するＲＥＱポイント値（固定値）が記憶される。アクセススタートポイント設定レジスタ２０３には、アクセススタート信号ＳＴＲの発生タイミングを指定するアクセススタートポイント値（固定値）が記憶される。なお、ＲＥＱポイント値とアクセススタートポイント値との差は、外部メモリ４００を使用するＣＰＵ３００において想定される最長命令を勘案して設定される。
【００２１】
比較器２０４は、マスタカウンタ２０１のカウント値と、ＲＥＱポイント設定レジスタ２０２に記憶されるＲＥＱポイント値とを比較し、マスタカウンタ２０１のカウント値がＲＥＱポイント値に一致した場合にＲＥＱポイント信号を発生する。比較器２０５は、マスタカウンタ２０１のカウント値と、アクセススタートポイント設定レジスタ２０３に記憶されるアクセススタートポイント値とを比較し、マスタカウンタ２０１のカウント値がアクセススタートポイント値に一致した場合にアクセススタートポイント信号を発生する。
【００２２】
Ｓ−Ｒ型のフリップフロップ回路２０６は、リセット入力Ｒに供給されるＲＥＱポイント信号に応じてバス解放リクエスト信号ＲＥＱを発生し、セット入力Ｓに供給されるアクセス完了信号ＣＯＭに応じてバス解放リクエスト信号ＲＥＱをリセットする。Ｓ−Ｒ型のフリップフロップ回路２０７は、リセット入力Ｒに供給されるアクセススタートポイント信号に応じてアクセススタート信号ＳＴＲを発生し、セット入力Ｓに供給されるアクセス完了信号ＣＯＭに応じてアクセススタート信号ＳＴＲをリセットする。
【００２３】
次に、図４に図示するタイミングチャートを参照して上記構成による信号処理装置の動作について説明する。なお、図４は１サンプリング周期におけるバス解放リクエスト信号ＲＥＱ、受領信号ＡＣＣ、アクセススタート信号ＳＴＲおよびアクセス完了信号ＣＯＭのタイミング関係を図示している。タイミング発生装置２００では、システムクロックＣＫをカウントするマスタカウンタ２０１のカウント値が、ＲＥＱポイント設定レジスタ２０２に格納されるＲＥＱポイント値に一致すると、フリップフロップ回路２０６がバス解放リクエスト信号ＲＥＱを発生する。
【００２４】
ＣＰＵ３００は、タイミング発生装置２００が発生するバス解放リクエスト信号ＲＥＱを受け取ると、実行中の命令が完了した後にバスＢを解放して受領信号ＡＣＣを発生する。ところで、ＣＰＵ３００では、様々な命令を実行している為、バス解放リクエスト信号ＲＥＱを受領した時点で、どのような命令を実行しているのか限定できない。その為、バス解放リクエスト信号ＲＥＱを受け取った時点からバスＢを解放して受領信号ＡＣＣを発生するまでの時間はサンプリング毎に変動する。
【００２５】
そこで、タイミング発生装置２００では、その変動分を含むマージンを持ったアクセススタートポイント値をアクセススタートポイント設定レジスタ２０３に格納しておき、システムクロックＣＫをカウントするマスタカウンタ２０１のカウント値が、そうしたアクセススタートポイント値に一致した時点に、フリップフロップ回路２０７がアクセススタート信号ＳＴＲを発生してＤＳＰ１００に供給する。
【００２６】
ＤＳＰ１００では、アクセススタート信号ＳＴＲを受領すると、メモリインタフェース部１１がアクセスコマンドメモリ１０に格納される一連のアクセスコマンドに従い、バスＢを介して外部メモリ４００に対してリード・ライト処理を行う。そして、アクセスコマンドメモリ１０から読み出したアクセスコマンドが、外部メモリ４００へのアクセス完了を表すコマンドＥｎｄになると、メモリインタフェース部１１は、バスＢを介した外部メモリ４００へのアクセスを完了すると同時に、アクセス完了信号ＣＯＭを発生してタイミング発生装置２００に出力する。そうすると、タイミング発生装置２００では、フリップフロップ回路２０６〜２０７の各セット入力Ｓに供給されるアクセス完了信号ＣＯＭに応じて、バス解放リクエスト信号ＲＥＱおよびアクセススタート信号ＳＴＲをリセットする。
【００２７】
以上のように、本実施形態では、バスＢを介して外部メモリ４００を共有するＣＰＵ３００およびＤＳＰ１００を備えた信号処理装置において、タイミング発生装置２００がＤＳＰ１００のサンプリング周期毎に、バス解放をＣＰＵ３００に要求すると共に、この要求に応じて解放されるバスを占有してＤＳＰ１００に外部メモリ４００をアクセスさせるＤＳＰアクセス期間を設ける。
【００２８】
ＤＳＰ１００では、サンプリング周期毎に設けられたＤＳＰアクセス期間中に、メモリインタフェース部１１がアクセスコマンドメモリ１０に格納されるコマンドに従って外部メモリ４００から読み出した波形データを内部メモリ１２にストアしたり、内部メモリ１２から読み出した波形データを外部メモリ４００に書き込むリード・ライト処理を実行しつつ、このリード・ライト処理とは別進行で演算装置１３が内部メモリ１２に記憶される波形データを用いて演算処理を実行する。
【００２９】
したがって、ＤＳＰ１００では、従来のように、ＣＰＵにメモリアクセスをリクエストする毎に、そのリクエストがＣＰＵに受領されるまで待機するという無駄時間が無くなる結果、処理効率低下を招致することなく共有バスを介して外部メモリにアクセスすることが可能になる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の一形態による信号処理装置の構成を示すブロック図である。
【図２】アクセスコマンドメモリ１０に格納されるコマンドの一例を示す図である。
【図３】タイミング発生装置２００の構成を示すブロック図である。
【図４】信号処理装置の動作を説明するためのタイミングチャートである。
【符号の説明】
【００３１】
１００  ＤＳＰ
１０  アクセスコマンドメモリ
１１  メモリインタフェース部
１２  内部メモリ
１３  演算装置
２００  タイミング発生装置
３００  ＣＰＵ
４００  外部メモリ
【図１】
0004707017.tif 000002
【図２】
0004707017.tif 000003
【図３】
0004707017.tif 000004
【図４】
0004707017.tif 000005