(57)【特許請求の範囲】
【請求項１】
コンピュータを、マイクロプログラムを生成する装置として機能させるためのプログラムであって、
前記マイクロプログラムは、サンプリング周期毎の信号処理を行う所定の演算装置に対して該サンプリング周期毎に循環的に適用される複数のモジュールを、指定されたアルゴリズム構成を実現するように配列して成るものであり、
前記演算装置は、複数のアドレスを有する高速メモリと、複数のアドレスを有し前記高速メモリよりもアクセス速度が遅い低速メモリとにアクセス可能に構成されているものであり、
前記各モジュールは、前記低速メモリから入力信号値を読み出し前記高速メモリの何れかのアドレスに書き込む入力ステップと、前記入力信号値が書き込まれたアドレスを読出しアドレスとして指定することにより前記高速メモリから前記入力信号値を読み出すとともに所定の演算処理を行い前記高速メモリの何れかのアドレスを書込みアドレスとして指定することにより前記演算処理の結果である出力信号値を前記高速メモリに書き込む演算ステップと、前記高速メモリから前記出力信号値を読み出し前記低速メモリの何れかのアドレスに書き込む出力ステップとを有するものであり、
前記コンピュータを、
前記アルゴリズム構成において縦続接続される第１のモジュールと第２のモジュールとが存在するか否かを判定する判定手段と、
該判定手段の判定結果が肯定的である場合に、前記第１のモジュールの演算ステップにおける前記書込みアドレスと前記第２のモジュールの演算ステップにおける前記読出しアドレスとを一致させつつ、両演算ステップを結合し、結合された両演算ステップと前記入力ステップと前記出力ステップとから成る結合モジュールを生成する結合モジュール生成手段と
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声信号処理のアルゴリズム構成をカスタムメイドできるデジタルミキサに対して、効率的なマイクロプログラムを供給することができるプログラムに関する。
【背景技術】
【０００２】
従来より、音声信号処理のアルゴリズム構成をカスタムメイドできるミキシングシステムが知られている。このミキシングシステムは、ＤＳＰ（デジタル・シグナル・プロセッサ）等の信号処理装置を内蔵しマイクロプログラムに従って音声信号処理を行うＤＭＥ（デジタル・ミキシング・エンジン）と、該マイクロプログラムを生成するためのアプリケーションプログラムをインストールした汎用ＰＣ（パーソナルコンピュータ）とから構成される。ユーザは、アプリケーションプログラムによって汎用ＰＣのディスプレイに表示されるブロック図等を編集することができ、これによって音声信号処理のアルゴリズム構成を決定することができる。そして、アルゴリズム構成が決定された後に所定のコンパイル指示を行うと、該アルゴリズム構成を実現するマイクロプログラムが生成される。このマイクロプログラムをＤＭＥに転送することにより、該ＤＭＥにおいては該アルゴリズム構成に基づく音声信号処理を実行することが可能になる。このようなアプリケーションプログラムの一例は非特許文献１に開示されている。また、ＤＭＥに使用されるＤＳＰの一例は特許文献１に開示されている。
【０００３】
ＤＳＰには内部ＲＡＭ（主として高速・小容量のスタティックＲＡＭ）が内蔵されているが、内部ＲＡＭのみでは信号処理を行うことが事実上不可能であるため、ＤＳＰには外部ＲＡＭ（主として低速・大容量のダイナミックＲＡＭ）を接続することが可能になっている。上述したように、アルゴリズムを構築する際に汎用ＰＣのディスプレイにはブロック図が表示されるが、このブロック図を構成する各ブロックに対応する処理は、マイクロプログラムの「モジュール」として予め構成されている。そして、ブロック図上でユーザが自由にブロックを配置できるようにするためには、これらのモジュールには独立性、汎用性を確保する必要が生じる。このため、各モジュールは、一般的には外部ＲＡＭを介して信号の入出力を行うように記述されている。ＤＳＰはクロック信号に同期して動作し、「１クロック」あたり「１ステップ」のマイクロコードを実行することができる。すると、「１」サンプリング周期内のクロック数を「Ｍ」とすると、実行可能なマイクロプログラムの最大ステップ数は「Ｍ」に等しくなる。また、低速な外部ＲＡＭを「１」回アクセスするために必要なクロック数を「Ｎ」とすると、ＤＳＰが「１」サンプリング周期において外部ＲＡＭにアクセスできる最大アクセス回数Ｋは、「Ｋ＝Ｍ／Ｎ」によって求めることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−９９０５２号公報
【非特許文献】
【０００５】
【非特許文献１】「DME Designer Version 1.1 取扱説明書」、ヤマハ株式会社、2004年、第４章
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、各ブロックに対応するモジュールは独立性、汎用性を確保するために外部ＲＡＭを介して信号を入出力するが、この事は、マイクロプログラム全体の中で外部ＲＡＭにアクセスする頻度が高くなることを意味する。これにより、最大ステップ数Ｍに対して充分な余裕があるにもかかわらず、最大アクセス回数Ｋを使い切ってしまい、それ以上ブロックを増やせなくなる事態が頻発するという問題が生じた。
この発明は上述した事情に鑑みてなされたものであり、外部ＲＡＭに対するアクセス頻度を下げることにより、信号処理装置の有するリソースを有効に活用できるプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載のプログラムにあっては、コンピュータ（１０）を、マイクロプログラムを生成する装置として機能させるためのプログラムであって、前記マイクロプログラムは、サンプリング周期毎の信号処理を行う所定の演算装置（７０）に対して該サンプリング周期毎に循環的に適用される複数のモジュールを、指定されたアルゴリズム構成を実現するように配列して成るものであり、前記演算装置（７０）は、複数のアドレスを有する高速メモリ（７４）と、複数のアドレスを有し前記高速メモリ（７４）よりもアクセス速度が遅い低速メモリ（１００）とにアクセス可能に構成されているものであり、前記各モジュールは、前記低速メモリから入力信号値を読み出し前記高速メモリの何れかのアドレスに書き込む入力ステップ（ＳＰ１００３）と、前記入力信号値が書き込まれたアドレスを読出しアドレスとして指定することにより前記高速メモリから前記入力信号値を読み出すとともに所定の演算処理を行い前記高速メモリの何れかのアドレスを書込みアドレスとして指定することにより前記演算処理の結果である出力信号値を前記高速メモリに書き込む演算ステップ（ＳＰ１００４〜ＳＰ１０８９）と、前記高速メモリから前記出力信号値を読み出し前記低速メモリの何れかのアドレスに書き込む出力ステップ（ＳＰ１０９０）とを有するものであり、前記コンピュータ（１０）を、前記アルゴリズム構成において縦続接続される第１のモジュール（ＰＧ１）と第２のモジュール（ＰＧ２）とが存在するか否かを判定する判定手段（ＳＰ４）と、該判定手段の判定結果が肯定的である場合に、前記第１のモジュールの演算ステップにおける前記書込みアドレス（図６、ステップＳＰ１０８９のアドレス値Ａ０１）と前記第２のモジュールの演算ステップにおける前記読出しアドレス（図６、ステップＳＰ２００４’のアドレス値Ａ０１）とを一致させつつ、両演算ステップを結合し、結合された両演算ステップと前記入力ステップと前記出力ステップとから成る結合モジュール（ＰＧ１０１）を生成する結合モジュール生成手段（ＳＰ６）ととして機能させるためのものであることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、第１のモジュールの演算ステップにおける書込みアドレスと第２のモジュールの演算ステップにおける読出しアドレスとを一致させつつ、両演算ステップを結合し、結合された両演算ステップと入力ステップと出力ステップとから成る結合モジュールを生成することができるから、外部ＲＡＭに対するアクセス頻度を下げることができ、信号処理装置の有するリソースを有効に活用することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施例のミキシングシステムのブロック図である。
【図２】信号処理部５２のブロック図である。
【図３】マイクロコードのフォーマットを示す図である。
【図４】一実施例の動作の概要を示す動作説明図である。
【図５】プラグインモジュールのマイクロプログラムの具体例（統合前）を示す図である。
【図６】プラグインモジュールのマイクロプログラムの具体例（統合後）を示す図である。
【図７】表示器１６に表示される画面の一例を示す図である。
【図８】該画面における各種イベント処理のフローチャートである。
【発明を実施するための最良の形態】
【００１０】
1．実施例のハードウエア構成
1．1．全体構成
次に、本発明の一実施例のミキシングシステムの構成を図１を参照し説明する。
なお、本実施例のミキシングシステムは、ＤＭＥ（デジタル・ミキシング・エンジン）３０と、該ＤＭＥ３０に接続された汎用ＰＣ（汎用パーソナルコンピュータ）１０とから構成されている。汎用ＰＣ１０の内部において２６はＣＰＵであり、後述するプログラムに基づいて、通信バス２０を介して他の構成要素を制御する。２２はＲＯＭであり、イニシャルプログラムローダ等が記憶されている。３０はＲＡＭであり、ＣＰＵ１０のワークメモリとして用いられる。２８は通信インタフェースであり、ローカルエリアネットワークを介してＤＭＥ３０と通信する。１２はハードディスク・ドライブであり、オペレーティングシステム、アプリケーションプログラム等が格納される。１４はリムーバルディスクドライブ装置であり、ＣＤ−ＲＯＭ、ＭＯ等のリムーバルディスクに対して読出し／書込みを行う。１６は表示器であり、ユーザに対して各種情報を表示する。１８は入力装置であり、文字入力用キーボードおよびマウス等から構成されている。
【００１１】
次に、ＤＭＥ３０の内部において３２はスイッチ等の操作子であり、その操作状態は検出回路３４によって検出され、通信バス４４を介して出力される。３８は表示回路であり、通信バス４４から表示すべきデータを受信すると、該データを表示器３６に表示する。４０は通信インタフェースであり、ローカルエリアネットワークを介して、汎用ＰＣ１０内の通信インタフェース２８との間で各種データを入出力する。４２は音声インタフェースであり、マイク６０から供給されたアナログ音声信号をデジタル信号に変換し通信バス４４を介して出力するとともに、通信バス４４を介して供給されたデジタルの音声信号をアナログ信号に変換し、アンプ６２およびスピーカ６４を介して出力する。４６はＲＯＭであり、ＤＭＥ３０を制御する制御プログラム等が記憶されている。５０はＣＰＵであり、該ＲＯＭ４６に記憶された制御プログラムに基づいて、通信バス４４を介して他の構成要素を制御する。４８はＲＡＭであり、ＣＰＵ５０のワークメモリとして用いられる。５２は信号処理部であり、音声インタフェース４２を介して供給された音声信号に対して、フィルタリング処理やミキシング処理等の各種処理を行い、その結果を音声インタフェース４２を介して出力する。
【００１２】
1．2．信号処理部５２の構成
次に、上記ＤＭＥ３０内の信号処理部５２の詳細構成を図２を参照し説明する。同図に示すように、信号処理部５２は、ＤＳＰ７０と、入出力制御部９０と、係数ＲＡＭ９２と、マイクロプログラムＲＡＭ９４と、外部ＲＡＭ１００とから構成される。入出力制御部９０は、通信バス４４（図１参照）を介して音声インタフェース４２に接続され、ＤＳＰ７０と音声インタフェース４２との間の音声信号の入出力を仲介する。マイクロプログラムＲＡＭ９４には、ＤＳＰ７０を制御するマイクロプログラムが記憶され、該マイクロプログラムは複数ステップのマイクロコードから構成される。また、係数ＲＡＭ９２には該マイクロプログラムにおいて使用される係数が記憶される。ＲＡＭ９２，９４の内容は、ＣＰＵ５０によって必要に応じて書き換えられる。ＤＳＰ７０はクロック信号に同期して動作し、「１クロック」あたり「１ステップ」のマイクロコードを実行することができる。すると、「１」サンプリング周期内のクロック数を「Ｍ」とすると、実行可能なマイクロプログラムの最大ステップ数は「Ｍ」に等しくなる。
【００１３】
また、外部ＲＡＭ１００は、音声信号のサンプリング値等を記憶するために設けられているものであり、数百メガバイト程度の低速のダイナミックＲＡＭによって構成されている。外部ＲＡＭ１００を「１」回アクセスするために必要なクロック数を「Ｎ」（但しＮは複数）とすると、ＤＳＰ７０が「１」サンプリング周期において外部ＲＡＭ１００にアクセスできる最大アクセス回数Ｋは、「Ｋ＝Ｍ／Ｎ」によって求めることができる。ＤＳＰ７０の内部において７２は入出力インタフェース用のＲＡＭ（以下、Ｉ−ＲＡＭという）であり、入出力制御部９０および通信バス４４（図１参照）を介して、音声インタフェース４２との間で音声信号を構成するデータを入出力する。７４は演算処理用のＲＡＭ（以下、Ｔ−ＲＡＭという）である。７６は係数補間部であり、係数ＲＡＭ９２に記憶された係数が更新された際に、更新前の値から更新後の値に向かって徐々に変化する係数値を出力する。７８はＡＬＵであり、ＲＡＭ７２，７４および係数補間部７６から出力されたデータに対して、加算、減算、比較等の演算を施し、この演算結果をバス８２を介して出力する。
【００１４】
８４は書込み制御部であり、バス８２上のデータを外部ＲＡＭ１００に書き込むべき場合に、その書込み制御を行う。８６は読出し制御部であり、外部ＲＡＭ１００に記憶されたデータを読み出す際に、その読出し制御を行い、読出したデータをバス８２を介して出力する。８８はアドレス制御部であり、外部ＲＡＭ１００に対してデータの読出し／書込みを行う際のアドレスを出力する。８０はエンコーダであり、マイクロプログラムＲＡＭ９４から「１」ステップづつマイクロコードを読出し、読出したマイクロコードに基づいてＤＳＰ７０内の各部の動作を制御する。各マイクロコードにおいて指定される内容は、例えば以下に列挙するものである。
・ＡＬＵ７８において実行される演算の種別（加算、減算、比較等）、
・ＡＬＵ７８における演算結果をバス８２に出力するか否か、
・ＲＡＭ７２，７４に対する読出しアドレス、
・ＲＡＭ７２，７４に対してバス８２上のデータを書き込むか否か、および（書込みを行う場合に）書込みアドレス、
・書込み制御部８４を介してバス８２上のデータを外部ＲＡＭ１００に書き込むか否か、
・読出し制御部８６を介して、外部ＲＡＭ１００からデータを読み出すか否か
【００１５】
1．3．マイクロコードのフォーマット
ここで、マイクロコードのフォーマットを図３を参照して説明する。
「１」ステップのマイクロコードは、「６４」ビットから構成されている。このマイクロコードは、ＡＬＵ７８において実行される演算の種別を指定するセクション、ＡＬＵ７８における演算結果をバス８２に出力するか否かを指定するセクション、ＲＡＭ７２，７４に対する読出しアドレスを指定するセクション等、複数のセクションから構成されている。そして、これらのセクションの組み合わせによって、その「１」ステップにおけるＤＳＰ７０の動作が特定される。特に、これらのセクションの中には、Ｔ−ＲＡＭ７４の読出しアドレスＴＲＲを示すセクションと、同Ｔ−ＲＡＭ７４の書込みアドレスＴＲＷを示すセクションとが含まれている。アドレスＴＲＲ，ＴＲＷは共に「８」ビットである。なお、上述したマイクロコードの幅（６４ビット）およびアドレスＴＲＲ，ＴＲＷ（８ビット）は例示であり、これらの数値に限られるものではなく、適用されるＡＬＵ７８の種類に応じて決定されるものである。
【００１６】
2．実施例の動作
2．1．動作の概要
次に、図４を参照し、本実施例の動作の概要を説明する。
まず、本実施例のマイクロプログラムは、複数のプラグインモジュールを組み合わせることによって構成される。ここで、「プラグインモジュール」とは、あるまとまった機能を実現するためのマイクロコードの集合であり、例えばグラフィックイコライザ、パラメトリックイコライザ、ディレイ、リバーブ、ゲートなどの機能を実現する。これらプラグインモジュールを用いて実現されるアルゴリズムの一例を図４(a)に示す。図４(a)の例にあっては、プラグインモジュールＰＧ１，ＰＧ２，ＰＧ３が縦続接続され、入力信号Ｓinはこれらのモジュールを順次介して処理された後、出力信号Ｓoutとして出力される。
【００１７】
次に、図４(a)に示したアルゴリズムを実現するために、特に外部ＲＡＭ１００に対するアクセスに着目した信号経路を図４(b)を参照し説明する。上述した入力信号Ｓinは、音声インタフェース４２を介して入力されるものであり、各サンプリング周期における入力信号Ｓinのサンプル値は、一旦は外部ＲＡＭ１００に記憶される。次に、プラグインモジュールＰＧ１においては、外部ＲＡＭ１００から当該入力信号Ｓinのサンプル値が読み出され、信号処理が施された後に、処理後のサンプル値は外部ＲＡＭ１００に記憶される。次に、プラグインモジュールＰＧ２においては、外部ＲＡＭ１００からプラグインモジュールＰＧ１の処理結果のサンプル値が読み出され、信号処理が施された後に、処理後のサンプル値は外部ＲＡＭ１００に記憶される。同様に、プラグインモジュールＰＧ３においては、外部ＲＡＭ１００からプラグインモジュールＰＧ２の処理結果のサンプル値が読み出され、信号処理が施された後に、処理後のサンプル値は外部ＲＡＭ１００に記憶される。その後、このプラグインモジュールＰＧ３における処理結果は、出力信号Ｓoutとして音声インタフェース４２を介して出力される。
【００１８】
このように、各プラグインモジュールが外部ＲＡＭ１００を介してサンプル値を入出力する理由は、各プラグインモジュールが再配置可能な形式で記述されていることによる。図４(b)に示した信号経路においては、外部ＲＡＭ１００に対して「１」サンプルあたり「８」回のアクセスが実行されることになる。上述したように、「１」サンプリング周期内のクロック数を「Ｍ」とし、外部ＲＡＭ１００を「１」回アクセスするために必要なクロック数を「Ｎ」としたとき、ＤＳＰが「１」サンプリング周期において外部ＲＡＭ１００にアクセスできる最大アクセス回数Ｋは、「Ｍ／Ｎ」である。そして、最大アクセス回数Ｋを使い切ってしまうと、他のリソースに余裕があったとしても、さらにモジュールを増加させることができなくなる。そこで、本実施例においては、図４(b)に示した信号経路を図４(c)に示すように変更することを内容とするものである。図４(c)の信号経路においては、各プラグインモジュールＰＧ１，ＰＧ２，ＰＧ３は一のプラグインモジュールＰＧ１０１として統合され、プラグインモジュールＰＧ１，ＰＧ２，ＰＧ３に対応する部分（以下、コード群ＰＧ１’，ＰＧ２’，ＰＧ３’という）は、外部ＲＡＭ１００を介することなく、Ｔ−ＲＡＭ７４を介してサンプル値の入出力を行う。その結果、外部ＲＡＭ１００に対するアクセス回数を合計「４」回、すなわち図４(b)における「１／２」のアクセス回数に抑制することができる。
【００１９】
2．2．マイクロプログラムの具体例
2．2．1．統合前
次に、上述した図４(b)の信号経路を実現するマイクロプログラムの具体例を図５に示す。
図５において、プラグインモジュールＰＧ１は、ステップＳＰ１００１〜ＳＰ１０９２のマイクロコードによって構成されている。まず、ステップＳＰ１００１は「エントリポイント」であり、これは再配置可能なプラグインモジュールの開始をＤＳＰ７０に対して通知するものである。次に、ステップＳＰ１００２では「レジスタの退避」が指示される。Ｉ−ＲＡＭ７２およびＴ−ＲＡＭ７４の記憶領域においては、現在実行中のプラグインモジュールで使用可能なアドレス範囲が予め定められており、その範囲を「レジスタ」と呼ぶ。ステップＳＰ１００２においては、これらレジスタに現在記憶されている値が、ＲＡＭ７２，７４の各々に予め確保された退避領域に転送されるのである。次に、ステップＳＰ１００３の「入力バッファアクセス」とは、外部ＲＡＭ１００に記憶された入力信号Ｓinのサンプル値をＴ−ＲＡＭ７４に読み込む事を指示するものである。より具体的には、入力信号Ｓinのサンプル値は、図２において外部ＲＡＭ１００から読出し制御部８６、バス８２を介してＴ−ＲＡＭ７４に書き込まれることになる。このステップを実行するため、Ｔ−ＲＡＭ７４に対する書込みアドレスＴＲＷとして、アドレス値Ａ０１が指定されている。なお、アドレス値Ａ０１は、実際には、Ｔ−ＲＡＭ７４のアドレス値である０〜２５５の何れかの数値である。
【００２０】
次に、ステップＳＰ１００４〜ＳＰ１０８９においては、プラグインモジュールＰＧ１において実行される信号処理の内容が指定される。信号処理を実現するための具体的なマイクロプログラムの内容は周知であるために省略するが、信号処理の最初のステップＳＰ１００４においては、Ｔ−ＲＡＭ７４の上記アドレス値Ａ０１の内容が読み出される。このため、ステップＳＰ１００４には、読出しアドレスＴＲＲとして、当該アドレス値Ａ０１が指定されている。次に、ステップＳＰ１００５〜ＳＰ１０８８が続くが、これらについては図示を省略する。また、信号処理の最後のステップＳＰ１０８９においては、信号処理の結果であるサンプル値がこのアドレス値Ａ０１に書き込まれることとする。そのため、ステップＳＰ１０８９においては、書込みアドレスＴＲＷとして該アドレス値Ａ０１が指定されている。なお、図示の例では、入力信号Ｓinのサンプル値が書き込まれるアドレスおよび信号処理の結果であるサンプル値が書き込まれるアドレスは、共に「Ａ０１」であるが、両者を異なるアドレスにしてもよいことは言うまでもない。
【００２１】
次に、ステップＳＰ１０９０の「出力バッファアクセス」とは、プラグインモジュールＰＧ１における信号処理の結果であるサンプル値を外部ＲＡＭ１００に記憶させることを指示するものである。より具体的には、当該サンプル値は、図２においてＴ−ＲＡＭ７４から読み出され、ＡＬＵ７８を通過し、バス８２、書込み制御部８４を介して外部ＲＡＭ１００に書き込まれる。このステップを実行するため、Ｔ−ＲＡＭ７４に対する読出しアドレスＴＲＲとして、上記アドレス値Ａ０１が指定されている。次に、ステップＳＰ１０９１の「レジスタの復帰」とは、先のステップＳＰ１００２にてＲＡＭ７２，７４の退避領域に転送されていたデータを元のアドレスに書き戻す事を指示するものである。次に、ステップＳＰ１０９２の「リターンポイント」は、再配置可能なプラグインモジュールの終端をＤＳＰ７０に対して通知するものである。
【００２２】
また、プラグインモジュールＰＧ２は、ステップＳＰ２００１〜ＳＰ２０９２のマイクロコードによって構成されている。プラグインモジュールＰＧ１，ＰＧ２は、信号処理の内容は異なるが、プラグインモジュールＰＧ２において先頭の「４」ステップであるステップＳＰ２００１〜ＳＰ２００４および最後の「４」ステップであるステップＳＰ２０８９〜ＳＰ２０９２の内容は、上記プラグインモジュールＰＧ１におけるステップＳＰ１００１〜ＳＰ１００４およびステップＳＰ１０８９〜ＳＰ１０９２の内容と同様である。但し、プラグインモジュールＰＧ２においては、ステップＳＰ２００３，ＳＰ２０８９における書込みアドレスＴＲＷとしてアドレス値Ａ０２が指定され、ステップＳＰ２００４，ＳＰ２０９０における読出しアドレスＴＲＲとしてアドレス値Ａ０２が指定されている点がプラグインモジュールＰＧ１とは異なる。アドレス値Ａ０２も、実際にはＴ−ＲＡＭ７４のアドレス値である０〜２５５の何れかの数値である。
【００２３】
同様に、プラグインモジュールＰＧ３は、ステップＳＰ３００１〜ＳＰ３０９２のマイクロコードによって構成されている。プラグインモジュールＰＧ１，ＰＧ３は、信号処理の内容は異なるが、プラグインモジュールＰＧ３において先頭の「４」ステップであるステップＳＰ３００１〜ＳＰ３００４および最後の「４」ステップであるステップＳＰ３０８９〜ＳＰ３０９２の内容は、上記プラグインモジュールＰＧ１におけるステップＳＰ１００１〜ＳＰ１００４およびステップＳＰ１０８９〜ＳＰ１０９２の内容と同様である。但し、プラグインモジュールＰＧ３においては、ステップＳＰ３００３，ＳＰ３０８９における書込みアドレスＴＲＷとしてアドレス値Ａ０３が指定され、ステップＳＰ３００４，ＳＰ３０９０における読出しアドレスＴＲＲとしてアドレス値Ａ０３が指定されている点がプラグインモジュールＰＧ１とは異なる。アドレス値Ａ０３も、実際にはＴ−ＲＡＭ７４のアドレス値である０〜２５５の何れかの数値である。
【００２４】
2．2．2．統合後
次に、プラグインモジュールＰＧ１，ＰＧ２，ＰＧ３を統合したプラグインモジュールＰＧ１０１の内容を図６を参照し説明する。上述したように、プラグインモジュールＰＧ１０１は、コード群ＰＧ１’，ＰＧ２’，ＰＧ３’から構成される。コード群ＰＧ１’は、ステップＳＰ１００１〜ＳＰ１０８９から構成され、これらはプラグインモジュールＰＧ１におけるステップＳＰ１００１〜ＳＰ１０８９と同一の内容である。換言すれば、コード群ＰＧ１’は、プラグインモジュールＰＧ１からステップＳＰ１０９０〜ＳＰ１０９２を削除したものに等しい。次に、コード群ＰＧ２’は、ステップＳＰ２００４’〜ＳＰ２０８９から構成される。これらのステップは、ステップＳＰ２００４’を除いて、プラグインモジュールＰＧ２におけるステップＳＰ２００５〜ＳＰ２０８９と同一の内容である。但し、ステップＳＰ２００４’においては、その読出しアドレスＴＲＲがコード群ＰＧ１’の最後のステップＳＰ１０８９で指定されたアドレス値Ａ０１に書き換えられており、この点でステップＳＰ２００４とは異なる。次に、コード群ＰＧ３’は、ステップＳＰ３００４’〜ＳＰ３０９２から構成され、これらのステップは、ステップＳＰ３００４’を除いてプラグインモジュールＰＧ３におけるステップＳＰ３００５〜ＳＰ３０９２と同一の内容である。但し、ステップＳＰ３００４’においては、その読出しアドレスＴＲＲがコード群ＰＧ２’の最後のステップＳＰ２０８９で指定されたアドレス値Ａ０２に書き換えられており、この点でステップＳＰ３００４とは異なる。
【００２５】
統合後のプラグインモジュールＰＧ１０１においては、最初にコード群ＰＧ１’が実行され、その信号処理の結果がＴ−ＲＡＭ７４のアドレス値Ａ０１に記憶される。次に、コード群ＰＧ２’においては、最初にこのアドレス値Ａ０１が読み出され、その信号処理の結果がＴ−ＲＡＭ７４のアドレス値Ａ０２に記憶される。最後のコード群ＰＧ３’においては、最初にこのアドレス値Ａ０２が読み出され、その信号処理の結果がＴ−ＲＡＭ７４のアドレス値Ａ０３に記憶された後、外部ＲＡＭ１００に記憶される。このように、プラグインモジュールＰＧ１０１においては、コード群ＰＧ１’，ＰＧ２’，ＰＧ３’が、外部ＲＡＭ１００を経由することなく順次実行される。
【００２６】
ここで、縦続接続された複数のプラグインモジュールを統合するにあたって、マイクロプログラムを変更する処理の内容を一般的に表現すると、次の通りになる。まず、先頭のプラグインモジュール（上記例では、ＰＧ１）においては、最後に設けられた「３」ステップである「出力バッファアクセス」、「レジスタの復帰」および「リターンポイント」（同、ＳＰ１０９０〜ＳＰ１０９２）が削除される。また、最後のプラグインモジュール（同、ＰＧ３）においては、先頭に設けられた「３」ステップである「エントリポイント」、「レジスタの退避」および「入力バッファアクセス」（同、ＳＰ３００１〜ＳＰ３００３）が削除され、信号処理開始のステップ（同、ＳＰ３００４）における読出しアドレスＴＲＲは、直前の信号処理終了ステップ（同、ＳＰ２０８９）における書込みアドレスＴＲＷに等しい値（同、Ａ０２）に変更される。
【００２７】
また、先頭および最後以外のプラグインモジュール（同、ＰＧ２）においては、以下の点が変更される。
・先頭に設けられた「３」ステップである「エントリポイント」、「レジスタの退避」および「入力バッファアクセス」（同、ＳＰ２００１〜ＳＰ２００３）が削除される。
・最後に設けられた「３」ステップである「出力バッファアクセス」、「レジスタの復帰」および「リターンポイント」（同、ＳＰ２０９０〜ＳＰ２０９２）が削除される。
・信号処理開始のステップ（同、ＳＰ２００４）における読出しアドレスＴＲＲは、直前の信号処理終了ステップ（同、ＳＰ１０８９）における書込みアドレスＴＲＷに等しい値（同、Ａ０１）に変更される。
【００２８】
2．3．ユーザインタフェース
次に、汎用ＰＣ１０に適用されるユーザインタフェースについて説明する。
汎用ＰＣ１０においてユーザが所定の操作を行うと、ＤＭＥ３０のアルゴリズムを編集するアプリケーションプログラムが起動され、該アプリケーションプログラムの制御の下、表示器１６には図７に示すウィンドウ２００，２０２が表示される。そして、ウィンドウ２０２には、ＤＭＥ３０に適用されるマイクロプログラムのアルゴリズム構成が表示される。このアルゴリズム構成は、複数のブロックを接続して成るブロック図として表示される。そして、該ブロック図においては、新たなブロックや結線を追加し、あるいは既存のブロックや結線を削除するような編集を行うことが可能である。この編集を行うための操作方法は、上述した「非特許文献１」などにおいて周知である。
【００２９】
図７の例において、２１０は入力ユニット・ブロックであり、「４」系統のアナログ音声信号を各々デジタル音声信号に変換する入力ユニットを表すものである。２１２はマトリクスミキサ・ブロックであり、入力ユニットから出力された「４」系統の音声信号に対してミキシング処理を施し、その結果を「４」系統の音声信号として出力するマトリクスミキサを表すものである。２１４，２１８，２２２，２２６はグラフィックイコライザ・ブロックであり、マトリクスミキサから出力された各音声信号の周波数特性を調整するグラフィックイコライザを表すものである。２１６，２２０，２２４，２２８はディレイ・ブロックであり、各グラフィックイコライザから出力された音声信号を遅延するディレイ部を表すものである。２３０は出力ユニット・ブロックであり、各ディレイ部から出力されたデジタル音声信号をアナログ音声信号に変換して出力する出力ユニットを表すものである。
【００３０】
ウィンドウ２０２において、ユーザはマウスを操作することにより一または複数のブロックを「選択状態」にすることができ、選択されたブロックは破線で囲まれる。図７の例においては、グラフィックイコライザおよびディレイに係るブロック２１４〜２２８が破線２４０で囲まれており、選択状態になっている。また、ウィンドウ２００の上部には、コンパイルボタン２０４とリンクボタン２０６とが表示されている。ここで、コンパイルボタン２０４は、ウィンドウ２０２に表示されたアルゴリズム構成をコンパイルすべき旨を指示するボタンであり、リンクボタン２０６は、選択状態のブロックに係るモジュールを可能な範囲で統合すべき旨を指示するボタンである。
【００３１】
また、表示器１６には、リソースメータ・ウィンドウ２５０が表示される。ウィンドウ２５０の内部において２５２はＤＳＰリソースメータであり、ウィンドウ２０２に表示されているアルゴリズム構成が、マイクロプログラムの最大ステップ数Ｍの何％を消費するものであるかを表示する。また、２５４はコネクタ・リソースメータであり、ウィンドウ２０２に表示されているアルゴリズム構成において、外部ＲＡＭ１００をアクセスする回数が、最大アクセス回数Ｋの何％を消費するものであるかを表示する。
【００３２】
2．4．イベント処理
2．4．1．モジュール統合処理（図８(a)）
次に、ウィンドウ２００におけるイベント処理について説明する。
まず、複数のブロックが選択された状態でリンクボタン２０６がマウスでクリックされると、図８(a)に示す統合処理ルーチンが起動される。図８(a)において処理がステップＳＰ２に進むと、選択範囲のブロックの中から統合可能な候補（リンク候補）が検索される。次に、処理がステップＳＰ４に進むと、この検索結果に基づいて、リンク候補が存在するか否かが判定される。なお、図７に示した例においては、破線２４０で囲まれた選択範囲において、各グラフィックイコライザ・ブロック２１４，２１８，２２２，２２６と、その後段のディレイ・ブロック２１６，２２０，２２４，２２８とは、各々一のブロック（またはプラグインモジュール）として統合することが可能である。
【００３３】
ステップＳＰ４において「ＹＥＳ」と判定されると処理はステップＳＰ６に進み、リンク可能なプラグインモジュールを統合してなる新たなプラグインモジュールのマイクロプログラムが再構築される。その具体的な内容は、先に図５，図６を参照して説明した通りである。次に、処理がステップＳＰ８に進むと、リソースメータ・ウィンドウ２５０の内容が更新される。すなわち、プラグインモジュールを統合したことにより、マイクロプログラム全体のステップ数および外部ＲＡＭ１００へのアクセス回数が変更されるため、リソースメータ・ウィンドウ２５０には、変更後の値が表示される。また、ウィンドウ２００においても、各グラフィックイコライザ・ブロック２１４，２１８，２２２，２２６と、その後段のディレイ・ブロック２１６，２２０，２２４，２２８とは、統合された４系統のブロックに置換され、これによって統合されたモジュールが適用されることが表示される。なお、選択範囲において統合可能なリンク候補が存在しなかった場合には、ステップＳＰ６，８はスキップされる。以上のステップにより、統合処理ルーチンの処理が終了する。
以上のように、本実施例の統合処理ルーチンによれば、縦続接続された前段のモジュールの演算処理の内容と、後段のモジュールの演算処理の内容とを結合して新たなモジュールを生成できるから、外部ＲＡＭ１００に対するアクセス頻度を下げることができ、ＤＳＰ７０の有するリソースを有効に活用することができる。
【００３４】
2．4．2．コンパイル処理
また、ウィンドウ２００においてコンパイルボタン２０４がマウスでクリックされると、図８(b)に示すコンパイル処理ルーチンが起動される。
図８(b)において処理がステップＳＰ１０に進むと、アルゴリズム構成の解析が行われる。そして、処理がステップＳＰ１２に進むと、アルゴリズム構成の解析結果に基づいて、各プラグインモジュール（統合されたプラグインモジュールも含む）が組み合わされ、当該アルゴリズム構成を実現するマイクロプログラムが生成される。
なお、生成されたマイクロプログラムは、所定の処理を行うことにより、汎用ＰＣ１０からＤＭＥ３０に転送される。そして、ＤＭＥ３０において、該マイクロプログラムはマイクロプログラムＲＡＭ９４（図２参照）に格納され実行されることになる。
【００３５】
3．変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例においては、汎用ＰＣ１０上で動作するアプリケーションプログラムによって統合処理（図８(a)）およびコンパイル処理（図８(b)）を行ったが、このアプリケーションプログラムのみをＣＤ−ＲＯＭ、メモリカード等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【００３６】
(2)上記実施例においては、プラグインモジュールを統合する統合処理（図８(a)）は、「リンクボタン２０６をマウスでクリックする」というユーザの明示的な操作によって実行されたが、かかる処理は、統合が可能な複数のモジュールに対して、コンパイル処理（図８(b)）において自動的に実行するようにしてもよい。
【符号の説明】
【００３７】
１０：汎用ＰＣ、１２：ハードディスク・ドライブ、１４：リムーバルディスクドライブ装置、１６：表示器、１８：入力装置、２０：通信バス、２２：ＲＯＭ、２６：ＣＰＵ、２８：通信インタフェース、３０：ＤＭＥ、３２：操作子、３４：検出回路、３６：表示器、３８：表示回路、４０：通信インタフェース、４２：音声インタフェース、４４：通信バス、４６：ＲＯＭ、４８：ＲＡＭ、５０：ＣＰＵ、５２：信号処理部、６０：マイク、６２：アンプ、６４：スピーカ、７０：ＤＳＰ（演算装置）、７２：Ｉ−ＲＡＭ、７２，７４：ＲＡＭ、７４：Ｔ−ＲＡＭ（高速メモリ）、７６：係数補間部、８０：エンコーダ、８２：バス、８４：書込み制御部、８６：読出し制御部、８８：アドレス制御部、９０：入出力制御部、９２：係数ＲＡＭ、９２，９４：ＲＡＭ、９４：マイクロプログラムＲＡＭ、１００：外部ＲＡＭ（低速メモリ）、２００，２０２：ウィンドウ、２０４：コンパイルボタン、２０６：リンクボタン、２１０〜２３０：ブロック、２５０：リソースメータ・ウィンドウ、２５２：ＤＳＰリソースメータ、２５４：コネクタ・リソースメータ。
【図１】
0005696442.tif 000002
【図２】
0005696442.tif 000003
【図３】
0005696442.tif 000004
【図４】
0005696442.tif 000005
【図５】
0005696442.tif 000006
【図６】
0005696442.tif 000007
【図７】
0005696442.tif 000008
【図８】
0005696442.tif 000009