(57)【特許請求の範囲】
【請求項１】
装置内部に設けられる内部記憶手段を有し、この内部記憶手段に対し、所定のサンプリングレートに同期して進行する第１の信号処理により、データの読み出し及び書き込みの少なくとも一方を行う第１の処理手段と、
前記第１の信号処理の間のタイミングで進行する第２の信号処理により、前記第１の処理手段に対し前記内部記憶手段へのアクセス要求を発生するとともに、前記アクセス要求に応じて前記第１の処理手段から発生されるアクセス許可に応じて、装置外部に設けられる外部記憶手段から読み出したデータの前記内部記憶手段への書き込み、及び前記内部記憶手段から読み出したデータの前記外部記憶手段への書き込みの少なくとも一方を行う第２の処理手段と、
前記第１の信号処理の開始タイミングに所定のオフセットを加えた時点から前記第２の信号処理を開始させることにより、前記第１の信号処理と前記第２の信号処理との競合を避ける処理スケジュール調整手段と、
を具備することを特徴とする信号処理装置。
【請求項２】
前記処理スケジュール調整手段は、前記第１の信号処理の開始タイミングに所定のオフセットを加えた時点から前記第２の信号処理を開始させる一方、前記第２の信号処理が前記第１の信号処理に競合する時には前記第２の信号処理の進行を一時停止させることを特徴とする請求項１記載の信号処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、電子楽器の音源等に用いて好適な信号処理装置に関する。
【０００２】
【従来の技術】
従来より、ホストＣＰＵ機能の高性能化あるいは分散化などを狙いとした専用の信号処理装置が知られている。この種の処理装置は、アナログ波形をデジタル変換したデジタル信号についてデジタルフィルタリングやＦＦＴ（高速フーリエ変換）等の処理を効率良く実行するため、積和演算を高速に処理する乗算器を内蔵しており、デジタル・シグナル・プロセッサ（ＤＳＰ）と呼ばれている。
【０００３】
このような信号処理装置では、処理すべきデータを外部メモリに記憶しておき、これを逐次取込んで信号処理する形態をとる場合が多い。例えば、電子楽器の音源として使用する場合には、外部メモリに記憶される波形データを所定のサンプリング周期毎に順次読み出し、読み出した波形データについて、遅延フィードバック演算やフィルタ演算（例えば、ＦＩＲフィルタ等）を施して各種倍音構成の楽音を形成したり、形成した楽音に様々な効果音を付与して出力するようになっている。
【０００４】
【発明が解決しようとする課題】
ところで、上述した従来の信号処理装置では、外部メモリへのアクセスタイムが内部メモリへのそれより遅くなるのが一般的である。すなわち、外部メモリからデータを読み出す場合について図９に図示するパイプライン処理のタイミング例に基づいて参照すると、まず、プログラムカウンタＰＣが「ｎ」の時点で、外部メモリリード命令Ｅｘ＿ｒｅａｄがオペレーションコードとしてセットされると、デコード１および２で順次解釈され、次のサイクルで実行される。
【０００５】
つまり、２段階のデコードを経てから外部メモリにアクセスするのに２クロック、読み出したデータをデコードするに１クロック、都合３クロック分のアクセスタイムが費やされ、これがタイムラグとなる為、結局、読み出したデータを処理する命令は、プログラムカウンタＰＣがｎ＋３以降になってしまう。
【０００６】
また、同様に、外部メモリにデータを書き込む際には、図１０に図示する一例のように、加算命令ＡＤＤおよび外部メモリライト命令Ｅｘ＿ｗｒｉｔｅがプログラムカウンタＰＣ＝ｎ，ｎ＋１にてオペレーションコードとしてセットされると、都合３クロックを要して外部メモリに書き込まれる。したがって、次にメモリアクセスする命令を起動できるようになるには、プログラムカウンタＰＣが「ｎ＋３」以降となってしまう。
【０００７】
しかして、従来の信号処理装置では、外部メモリに対して頻繁にアクセスする処理を行うと、上述したタイムラグが”無駄時間”となってしまい、これが装置全体の処理速度の低下を招致するという問題がある。
そこで、本発明はこのような事情に鑑みてなされたもので、外部メモリに対してアクセスする際の無駄時間を省略して処理速度向上を図ることができる信号処理装置を提供することを目的としている。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、装置内部に設けられる内部記憶手段を有し、この内部記憶手段に対し、所定のサンプリングレートに同期して進行する第１の信号処理により、データの読み出し及び書き込みの少なくとも一方を行う第１の処理手段と、第１の信号処理の間のタイミングで進行する第２の信号処理により、第１の処理手段に対し内部記憶手段へのアクセス要求を発生するとともに、アクセス要求に応じて第１の処理手段から発生されるアクセス許可に応じて、装置外部に設けられる外部記憶手段から読み出したデータの内部記憶手段への書き込み、及び内部記憶手段から読み出したデータの外部記憶手段への書き込みの少なくとも一方を行う第２の処理手段と、第１の信号処理の開始タイミングに所定のオフセットを加えた時点から第２の信号処理を開始させることにより、第１の信号処理と第２の信号処理との競合を避ける処理スケジュール調整手段と、を具備することを特徴としている。
【０００９】
上記請求項１に従属する請求項２に記載の発明によれば、処理スケジュール調整手段は、第１の信号処理の開始タイミングに所定のオフセットを加えた時点から第２の信号処理を開始させる一方、第２の信号処理が第１の信号処理に競合する時には第２の信号処理の進行を一時停止させることを特徴とする。
【００１２】
本発明では、第１の処理手段が内部記憶手段を占有していないタイムスロットに同期して、第２の処理手段が外部記憶手段から読み出したデータを内部記憶手段に書込み、あるいは内部記憶手段から読み出したデータを外部記憶手段に書き込むので、第１の処理手段から見ると、外部記憶手段が、あたかも内部記憶手段の一部と見做せるから、外部記憶手段にアクセスする際の無駄時間を省略でき、装置全体としての処理速度が向上する。
【００１３】
【発明の実施の形態】
本発明による信号処理装置は、例えば、電子楽器の音源や効果付与装置の他、音声合成装置、音声認識装置あるいは画像処理装置等のように、外部メモリに記憶されるデータあるいはパラメータに基づき信号処理する各種装置に適用され得る。以下では、本発明の実施の形態である信号処理装置を、実施例として図面を参照して説明する。
【００１４】
Ａ．実施例の構成
（１）概要
図１は、本発明の一実施例による信号処理装置１の構成を示すブロック図である。この図に示す信号処理装置１は、ホストＣＰＵ２の制御の下に信号処理を行う第１の処理部４と、この第１の処理部４とは別進行で外部メモリ３に対してリード・ライト処理を行う第２の処理部５とから構成される。
【００１５】
この信号処理装置１が従来のものと相違する点は、第２の処理部５が第１の処理部４とは別進行で外部メモリ３に対してリード・ライト可能にしたことにある。
このようにすることで、第１の処理部４は、外部メモリ３をあたかも内部メモリの一部と見做してアクセスし得るため、外部メモリ３にアクセスする際の”無駄時間”を省略して処理速度向上を図っている。
【００１６】
（２）第１の処理部４の構成
第１の処理部４は、構成要素４ａ〜４ｅからなる。４ａはメインプログラムＭＰを記憶するメインプログラムメモリ（ＲＯＭ）、４ｂはホストＣＰＵ２と後述する演算処理制御部４ｅとの間でデータ授受するＣＰＵインタフェースである。４ｃは算術論理ユニット（ＡＬＵ）や乗算器（ＭＵＬ）等から構成される演算部であり、演算処理制御部４ｅの指示に応じた各種演算を行う。４ｄは演算部４ｃや演算処理制御部４ｅのワークエリアとして用いられるワークメモリ（ＲＡＭ）であり、各種演算結果や制御フラグ等を一時記憶する複数のレジスタ領域を備えている。
【００１７】
演算処理制御部４ｅは、上記各要素４ａ〜４ｄを制御すると共に、第２の処理部５とのデータ授受を担う。すなわち、演算処理制御部４ｅでは、ＣＰＵインターフェース４ｂを介して供給される動作指示に基づき、メインプログラムメモリ４ａから対応するメインプログラムＭＰを読み出し、このプログラムＭＰに応じた各種演算を演算部４ｃに指示する。また、演算処理制御部４ｅは、第２の処理部５に対して外部メモリ３へのデータ書込みを指示したり、外部メモリ３からのデータ読み出しを指示する。加えて、演算処理制御部４ｅでは、第２の処理部５側との処理競合を回避するスケジュール調整回路４ｅ−１（後述する）を備えている。
【００１８】
（３）第２の処理部５の構成
第２の処理部５は、構成要素５ａ〜５ｃから構成される。５ａは、サブプログラムメモリ（ＲＯＭ）であり、外部メモリ３に対するデータ書込みあるいはデータ読み出しに係わる処理を記述したサブプログラムＳＰを記憶する。５ｂは、外部メモリ３と外部メモリ制御部５ｃとの間でデータ授受する外部メモリインタフェースである。外部メモリ制御部５ｃは、上述した演算処理制御部４ｅへの書込み要求Ｗｒｅｑあるいは読出し要求Ｒｒｅｑに基づき、サブプログラムメモリ５ａから対応するサブプログラムＳＰを読み出し、当該プログラムＳＰに従って外部メモリインタフェース５ｂを介して外部メモリ３にアクセスする。
【００１９】
（４）メインプログラムＭＰとサブプログラムＳＰとの関係
次に、図２を参照し、第１の処理部４（演算処理制御部４ｅ）にて実行されるメインプログラムＭＰと、第２の処理部５（外部メモリ制御部５ｃ）にて実行されるサブプログラムＳＰとの関係について説明しておく。
【００２０】
まず、メインプログラムＭＰに従って演算処理制御部４ｅがワークメモリ４ｄに書き込むデータは、その書込み直後に、サブプログラムＳＰに従って外部メモリ制御部５ｃが外部メモリ３に書き込む。
また、メインプログラムＭＰに従って演算処理制御部４ｅがワークメモリ４ｄから読み出すデータは、その読み出し直前に、サブプログラムＳＰに従って外部メモリ制御部５ｃが外部メモリ３から読み出す。
【００２１】
したがって、例えば、電子楽器の音源として使用される場合、第１の処理部４の動作は所定サンプリングレートに固定されたタイムスロットに同期するので、図２に図示するように、メインプログラムカウンタＭＰＣのアドレス値はリニアに変化するが、サブプログラムカウンタｓＰＣは、演算処理制御部４ｅがワークメモリ４ｄを占有する度合いに対応して歩進速度が変化する。つまり、サブプログラムＳＰによる外部メモリ３へのアクセスは、最低１サンプリング周期の遅延が伴う。
【００２２】
例えば、外部メモリ制御部５ｃにおいて、サブプログラムＡ：ＷＲＤ  Ｍ；（オフセットアドレスＭによる外部メモリ書込み命令）という命令セットと、Ｂ：ＲＥＤ  Ｎ；（オフセットアドレスＮによる外部メモリ読み出し命令）という命令セットとを実行した場合、アドレスＡとアドレスＢとの間にはＭ−Ｎ＋１（Ｍ＞Ｎ）の遅延があるように実行される。
【００２３】
サブプログラムカウンタｓＰＣは、演算処理制御部４ｅがワークメモリ４ｄを占有する度合いに応じて歩進速度が変化するので、サブプログラムＳＰの実行スケジュールは、常に図２に図示する斜線領域に収まっている必要がある。
サブプログラムカウンタｓＰＣのアドレス値が斜線領域から逸脱してメインプログラムカウンタＰＣのアドレス値と交差すると、メインプログラムＭＰの実行スケジュールとサブプログラムＳＰのそれとが干渉（競合）してしまい、その結果、第１の処理部４にて生成される信号が不連続となり、これは波形生成時のノイズ要因となってしまう。
【００２４】
つまり、図３に図示する一例のように、メインプログラムＭＰによるワークメモリ４ｄの使用頻度が低いと、相対的にサブプログラムＳＰの実行スケジュールが早まり、両プログラムの実行スケジュールが交差することも起こり得る。このような場合には、メインプログラムＭＰとサブプログラムＳＰとは、互いの実行スケジュールが競合しないようにしておく必要がある。
【００２５】
そのため、本実施例では、演算処理制御部４ｅにスケジュール調整回路４ｅ−１を設け、当該回路４ｅ−１により、サブプログラムＳＰの実行スケジュールを、メインプログラムＭＰの実行スケジュールよりある程度遅らせてスタートさせるようにしている。
具体的には、メインプログラムカウンタＭＰＣのアドレス値に所定のオフセットを加えた時点からサブプログラムカウンタＳＰＣを歩進させる。オフセット量は、メインプログラムＭＰの処理内容や外部メモリ３のアクセスタイムを勘案して定める。以下、こうしたスケジュール調整回路４ｅ−１の構成について説明する。
【００２６】
（５）スケジュール調整回路４ｅ−１の構成
図４は、スケジュール調整回路４ｅ−１の構成を示すブロック図である。この図において、４１はホストＣＰＵ２（図１参照）から供給されるサブプログラムカウンタｓＰＣのスタートアドレス値を一時記憶するスタートレジスタである。４２は、メインプログラムカウンタＭＰＣの値と上記スタートレジスタ４１にストアされるスタートアドレス値とが一致した場合に、リセット信号ＳＲをサブプログラムカウンタｓＰＣに入力するコンパレータである。
【００２７】
このような構成によれば、クロックＣＫに応じて歩進されるメインプログラムカウンタＭＰＣのアドレス値が、サブプログラムカウンタｓＰＣのスタートアドレス値に一致すると、サブプログラムカウンタｓＰＣがリセットされて再スタートするので、メインプログラムＭＰの進行に対してサブプログラムＳＰの進行をオフセットさせ得る。これにより、サブプログラムＳＰの実行スケジュールを、メインプログラムＭＰの実行スケジュールよりある程度遅らせてスタートさせて両プログラムの競合を回避することが可能になる。
【００２８】
また、図４に図示した構成に替えて、図５に示す構成のスケジュール調整回路４ｅ−１とすることも可能である。この場合、図４に示す構成に更に、コンパレータ４３およびアンド回路４４を設け、コンパレータ４３によってメインプログラムカウンタＭＰＣとサブプログラムカウンタｓＰＣとの両アドレス値が一致した時、アンド回路４４のイネーブル信号ＥＮを「Ｌ」としてサブプログラムカウンタｓＰＣの歩進を一時停止させるようにしている。
【００２９】
つまり、図６に図示するように、サブプログラムカウンタｓＰＣの値がメインプログラムＭＰＣに接近した場合、サブプログラムカウンタｓＰＣの歩進を一時的に停止させ、サブプログラムＳＰとメインプログラムＭＰとの両者の進行が競合しないように阻止する。
なお、図５に示すスケジュール調整回路４ｅ−１の場合には、スタートレジスタ４１にストアするオフセット（サブプログラムカウンタｓＰＣのスタート値）を十分小さい値に設定しても、両プログラムの競合を回避し得るようになっている。
【００３０】
Ｂ．実施例の動作
次に、図７〜図８を参照して上記構成による実施例の動作について説明する。ここでは、特に、外部メモリ３からデータを読み出すデータリードプロセスと、外部メモリ３にデータを書き込むデータライトプロセスとについて言及する。
【００３１】
（１）データリードプロセス
このプロセスでは、図７に示すように、先ずサブプログラムカウンタｓＰＣの値が「ｎ」の時に、外部メモリ３からデータリードする為のサブプログラムＳＰを、サブプログラムメモリ５ａから読み出して外部メモリ制御部５ｃにロードしたとする。そうすると、サブプログラムカウンタｓＰＣの値が「ｎ＋１」の時に、外部メモリ制御部５ｃはそのサブプログラムＳＰの内容をデコードした後、外部メモリ３の読み出しアドレスを算出する。
【００３２】
こうして外部メモリ３の読み出しアドレスが定まると、外部メモリ制御部５ｃは外部メモリ３にアクセスする。この場合、２クロック周期分のメモリアクセス期間ＭＡＤを要する。
そして、この期間ＭＡＤ中に、演算処理制御部４ｅに対し読み出し要求Ｒｒｅｑを「アクティブ」に設定すると、外部メモリ制御部５ｃは、外部メモリ３から読み出したデータを転送レジスタにセットし、この後アクセプト待ちとなる。
【００３３】
続いて、演算処理制御部４ｅがアクセプトＡｃｐｔを「アクティブ」とし、外部メモリ制御部５ｃ側に受入準備が整った旨を知らせると、外部メモリ制御部５ｃでは、転送レジスタにセットされた外部メモリ３からの読み出しデータを、演算処理制御部４ｅ側へ転送する。
これにより、演算処理制御部４ｅでは、転送されてきた外部メモリ３からの読み出しデータを、ワークメモリ４ｄにストアする。つまり、演算処理制御部４ｅ側からみれば、外部メモリ３があたかも内部メモリとして読み出しすることが可能になる。
【００３４】
（２）データライトプロセス
一方、データライトプロセスでは、図８に示すように、サブプログラムカウンタｓＰＣの値が「ｎ」の時に、外部メモリ３にデータを書き込む為のサブプログラムＳＰをサブプログラムメモリ５ａから読み出して外部メモリ制御部５ｃにロードしたとする。
そうすると、サブプログラムカウンタｓＰＣが「ｎ＋１」の時に、外部メモリ制御部５ｃはそのサブプログラムＳＰの内容をデコードして外部メモリ３の書込みアドレスを算出する。
【００３５】
さて、外部メモリ３に対する書込みアドレスを算出している時に、演算処理制御部４ｅに「アクティブ」の書込み要求Ｗｒｅｑを供給すると、外部メモリ制御部５ｃはアクセプトＡｃｐｔ待ちとなる。
そして、演算処理制御部４ｅから「アクティブ」のアクセプトＡｃｐｔが与えられると、外部メモリ制御部５ｃはワークメモリ４ｄから転送されるデータを、一旦、転送レジスタにストアしておき、その後、算出した書込みアドレスに従って外部メモリ３にアクセスし、上記転送レジスタに記憶しておいたデータを書き込む。
【００３６】
このように、本実施例によれば、第２の処理部５ではデータリード・データライト両プロセス共に、第１の処理部４側（演算処理制御部４ｅ）のタイムスロットとは別のタイムスロットに同期して実行し、第１の処理部４ではメインプログラムＭＰの動作を、サブプログラムＳＰの動作に優先して処理するので、第１の処理部４から見ると、第２の処理部５を含む外部メモリ３が、あたかも内部メモリの一部と見做せるから、外部メモリ３にアクセスする際の無駄時間が省略されて装置全体としての処理速度が向上する訳である。
【００３７】
なお、上述した実施例では、唯一の外部メモリ３に対してアクセスする例について述べたが、これに限定されることなく、複数の外部メモリを具備する場合でも同様の効果を得ることができる。つまり、第１の処理部４側から見れば、外部メモリが複数存在する場合でも、第２の処理部５側がデータリード・データライト両プロセスを担う為、あたかも一つの内部メモリとして扱うことが可能となっている。
【００３８】
【発明の効果】
本発明によれば、第１の処理手段が内部記憶手段を占有していないタイムスロットに同期して、第２の処理手段が外部記憶手段から読み出したデータを内部記憶手段に書込み、あるいは内部記憶手段から読み出したデータを外部記憶手段に書き込む為、第１の処理手段から見ると、外部記憶手段が、あたかも内部記憶手段の一部と見做せる。この為、外部記憶手段にアクセスする際の無駄時間を省略でき、装置全体としての処理速度を向上させることができる。
【図面の簡単な説明】
【図１】本発明による一実施例の構成を示すブロック図である。
【図２】第１の処理部４（演算処理制御部４ｅ）にて実行されるメインプログラムＭＰと第２の処理部５（外部メモリ制御部５ｃ）にて実行されるサブプログラムＳＰとの関係を説明するための図である。
【図３】メインプログラムＭＰの実行スケジュールとサブプログラムＳＰのそれとが干渉（競合）する場合を例示した図である。
【図４】スケジュール調整回路４ｅ−１の構成を示すブロック図である。
【図５】スケジュール調整回路４ｅ−１のその他の構成を示すブロック図である。
【図６】図５に示す構成によるスケジュール調整回路４ｅ−１の動作例を説明するための図である。
【図７】実施例によるデータリードプロセスを説明するためのタイミングチャートである。
【図８】実施例によるデータライトプロセスを説明するためのタイミングチャートである。
【図９】従来例を説明するためのタイミングチャートである。
【図１０】従来例を説明するためのタイミングチャートである。
【符号の説明】
１  信号処理装置
２  ホストＣＰＵ
３  外部メモリ（外部記憶手段）
４  第１の処理部（第１の処理手段）
４ａ  メインプログラムメモリ
４ｂ  ＣＰＵインタフェース
４ｃ  演算部
４ｄ  ワークメモリ（内部記憶手段）
４ｅ  演算処理制御部
５  第２の処理部（第２の処理手段）
５ａ  サブプログラムメモリ
５ｂ  外部メモリインタフェース
５ｃ  外部メモリ制御部
【図１】
0003629693.tif 000002
【図２】
0003629693.tif 000003
【図３】
0003629693.tif 000004
【図４】
0003629693.tif 000005
【図５】
0003629693.tif 000006
【図６】
0003629693.tif 000007
【図７】
0003629693.tif 000008
【図８】
0003629693.tif 000009
【図９】
0003629693.tif 000010
【図１０】
0003629693.tif 000011