(57)【要約】【課題】  小型かつ低コストで、メモリ調停がＣＰＵの動作速度に与える影響の小さい信号処理回路を実現する。【解決手段】  ＣＰＵ１１と、ＣＰＵ１１の制御に従って信号処理を行うＤＳＰ１２と、メモリバス３４を接続して外部メモリにアクセス可能とするためのメモリＩ／Ｏ１５と、内部ＲＡＭ１６とを備えた集積回路１０において、ＣＰＵ１１に外部メモリに記憶しているプログラムを実行させ、ＤＳＰ１２のワークエリアを内部ＲＡＭ１６に設けると共に、ＤＳＰ１２から外部メモリへのアクセスを禁止する第１の動作モードと、ＣＰＵ１１に内部ＲＡＭ１６に記憶しているプログラムを実行させ、ＤＳＰ１２のワークエリアを外部メモリに設けると共に、ＣＰＵ１１から外部メモリへのアクセスを禁止する第２の動作モードとでの動作を可能とし、これらを切り替えるためのモード切替部１３を設けた。【選択図】        図１
2007257007.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵの制御に従って信号処理を行うＤＳＰと、外部の第１の記憶手段を接続して前記ＣＰＵ及び前記ＤＳＰから該第１の記憶手段にアクセス可能とするための接続手段と、前記ＣＰＵ及び前記ＤＳＰからアクセス可能な第２の記憶手段とを備えた半導体集積回路であって、
前記ＣＰＵに前記第１の記憶手段に記憶しているプログラムを実行させ、前記ＤＳＰのワークエリアを前記第２の記憶手段に設けると共に、前記ＤＳＰから前記第１の記憶手段へのアクセスを禁止する第１の動作モードと、
前記ＣＰＵに前記第２の記憶手段に記憶しているプログラムを実行させ、前記ＤＳＰのワークエリアを前記第１の記憶手段に設けると共に、前記ＣＰＵから前記第１の記憶手段へのアクセスを禁止する第２の動作モードとでの動作を可能とし、
前記第１の動作モードと前記第２の動作モードとを切り替える切替手段を設けたことを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路であって、
当該半導体集積回路を前記第２の動作モードで動作させる場合に、まず前記ＣＰＵに前記第１の記憶手段からプログラムを読み出させて前記第２の記憶手段に記憶させ、その後、前記第２の動作モードでの動作に移行させる手段を設けたことを特徴とする半導体集積回路。
【請求項３】
請求項１又は２記載の半導体集積回路を備え、前記ＤＳＰが音響信号処理手段である音響信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＣＰＵと、そのＣＰＵの制御に従って信号処理を行うＤＳＰ（デジタル・シグナル・プロセッサ）とを備えた半導体集積回路及び、このような半導体集積回路を備えた音響信号処理装置に関する。
【背景技術】
【０００２】
従来から、ＣＰＵと、そのＣＰＵの制御に従って信号処理を行うＤＳＰとを１チップの半導体集積回路（以下単に「集積回路」という）に作り込むことが行われている。そして、このような集積回路を動作させるには、ＣＰＵやＤＳＰにワークエリアとして使用させるメモリや、ＣＰＵに実行させるプログラムを格納するメモリが必要となる。このためのメモリは、集積回路の内部に設けてもよいし、外部に用意してバスにより集積回路と接続してもよい。
【０００３】
しかし、どちらの場合も、ＣＰＵとＤＳＰが同じバスを使用してメモリに同時にアクセスすることはできないため、同時にアクセス要求が生じた場合には、何らかの方法でその要求を調停する必要がある。
このような調停を行う技術はいくつか知られているが、調停に際しては、処理のリアルタイム性が重要なＤＳＰからのメモリアクセスを優先することが知られている。例えば特許文献１には、同じメモリに対しＣＰＵとＤＳＰからアクセスが同時に発生した場合に、ＣＰＵにウェイト信号を供給してＤＳＰからのアクセスを優先するアクセス制御手段が記載されている。
【０００４】
また、別の例として、特許文献２には、音源部が読み出す波形データとＣＰＵが実行するプログラムとを同じ外部ＲＯＭに記憶させる場合に、ワークエリアとして使用する外部ＲＡＭにプログラムを読み出してコピーしておき、ＣＰＵがプログラムを実行する際には、音源部が外部ＲＯＭへのアクセスに使用するバスとは異なるバスを使用して上記の外部ＲＡＭにアクセスしてプログラムを読み出すようにすることが記載されている。
【特許文献１】特許第２８５０７０７号公報
【特許文献２】特許第３１５２１９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記特許文献１に記載のように、ＤＳＰからのメモリアクセスを優先させると、ＣＰＵからのアクセスはその間待たされることになるため、ＣＰＵの実質的な動作速度が落ちることになる。ＣＰＵやＤＳＰが使用するメモリを、全て集積回路の内部に設けるのであれば、メモリへの高速なアクセスが可能であるため、この点はあまり問題とならないが、集積回路の外部にメモリを設ける場合、アクセス速度がある程度遅くならざるを得ないため、問題となる。そして、近年のＣＰＵは高速であるため、特にこの動作速度低下の影響が大きくなってしまう。
【０００６】
一般的には、ＣＰＵ，ＤＳＰ，メモリ等の複数のデバイスを１つの集積回路に集積することにより、システムのコストダウンを行うことができる。一方で、ＣＰＵやＤＳＰが必要とするメモリの容量は、どのような機器に集積回路を搭載するかによって異なるため、広い用途に対応できるだけのメモリを集積回路の内部に設けてしまうと、コストが高くなってしまう。そこで、内部に設けるメモリはあまり増やすことができず、集積回路を搭載する各機器毎の仕様に応じて、場合によっては外部メモリを活用できるようにしたいという要求があった。
この要求に対応するためには、特許文献２に記載の技術を利用し、ＣＰＵとＤＳＰとで外部メモリにアクセスするためのバスを分けることも考えられるが、このようにすると、バスが２組必要となるため、外部メモリと接続するための端子数が増加し、それを搭載する基板の配線パターンの複雑化やサイズの大型化、そしてこれらに伴うコストの増加を招くため、好ましくないという問題があった。
【０００７】
この発明は、このような問題を解決し、ＣＰＵとＤＳＰとを備えた半導体集積回路において、小型かつ低コストで、メモリ調停がＣＰＵの動作速度に与える影響の小さい回路を実現し、安定した信号処理を行えるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、この発明の半導体集積回路は、ＣＰＵと、そのＣＰＵの制御に従って信号処理を行うＤＳＰと、外部の第１の記憶手段を接続して上記ＣＰＵ及び上記ＤＳＰからその第１の記憶手段にアクセス可能とするための接続手段と、上記ＣＰＵ及び上記ＤＳＰからアクセス可能な第２の記憶手段とを備えた半導体集積回路において、上記ＣＰＵに上記第１の記憶手段に記憶しているプログラムを実行させ、上記ＤＳＰのワークエリアを上記第２の記憶手段に設けると共に、上記ＤＳＰから上記第１の記憶手段へのアクセスを禁止する第１の動作モードと、上記ＣＰＵに上記第２の記憶手段に記憶しているプログラムを実行させ、上記ＤＳＰのワークエリアを上記第１の記憶手段に設けると共に、上記ＣＰＵから上記第１の記憶手段へのアクセスを禁止する第２の動作モードとでの動作を可能とし、上記第１の動作モードと上記第２の動作モードとを切り替える切替手段を設けたものである。
【０００９】
このような半導体集積回路において、その半導体集積回路を上記第２の動作モードで動作させる場合に、まず上記ＣＰＵに上記第１の記憶手段からプログラムを読み出させて上記第２の記憶手段に記憶させ、その後、上記第２の動作モードでの動作に移行させる手段を設けるとよい。
また、この発明の音響信号処理装置は、上記の半導体集積回路を備え、上記ＤＳＰを音響信号処理手段としたものである。
【発明の効果】
【００１０】
以上のようなこの発明の半導体集積回路によれば、小型かつ低コストで、メモリ調停がＣＰＵの動作速度に与える影響の小さい回路を実現することができる。また、この発明の音響信号処理装置によれば、小型かつ低コストで、安定した信号処理が可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、図１に、この発明の半導体集積回路の実施形態である集積回路を備えた、この発明の音響信号処理装置の実施形態の構成を示す。
このうち、集積回路１０は１チップの大規模集積回路（ＬＳＩ）であって、図１に示す通り、ＣＰＵ１１，ＤＳＰ１２，モード切替部１３，メモリＩ／Ｏ（入出力部）１４，１５，内部ＲＡＭ１６，波形Ｉ／Ｏ１７，タイマ１８，ＭＩＤＩ（Musical Instruments Digital Interface：登録商標）Ｉ／Ｏ１９，通信Ｉ／Ｏ２０，パラレルポート２１，操作子Ｉ／Ｏ２２，外部ＣＰＵインタフェース２３を備え、またこれらのうち必要な部分を接続するためのＣＰＵバス２４及びＤＳＰバス２５を備えている。
【００１２】
また、音響信号処理装置３０のプリント基板は、集積回路１０，外部ＲＯＭ３１，外部ＳＲＡＭ（Static RAM）３２及び、外部ＳＤＲＡＭ（Synchronous Dynamic RAM）３３を搭載し、さらにこれらの外部メモリと集積回路１０のメモリＩ／Ｏ１５とを接続するためのメモリバス３４のパターン（配線）を備えている。また、同基板は、ＡＤＣ（アナログ・デジタル・コンバータ）３５，ＤＡＣ（デジタル・アナログ・コンバータ）３６，音声入力端子３７，音声出力端子３８，操作子回路３９，スイッチ／表示回路４０を搭載し、さらにそれらと集積回路１０とを接続するためのパターンを備えている。なお、このプリント基板は、１枚基板には限らず、複数枚で構成されていてもよい。
【００１３】
これらのうち、ＣＰＵ１１は、集積回路１０の各部の動作を制御する制御手段であり、所要のプログラムを実行することにより、ＤＳＰ１２が実行する信号処理の内容の設定、タイマ１８による計時、ＭＩＤＩＩ／Ｏ１９や通信Ｉ／Ｏ２０を介した通信、パラレルポート２１や操作子Ｉ／Ｏ２２を介した操作の検出及び表示器への表示等の制御を行う。
なお、ＣＰＵ１１が実行するプログラムは、外部ＲＯＭ３１に記憶させておくが、実行する際には、直接ここから読み出して実行してもよいし、予め読み出して内部ＲＡＭ１６等にコピーしておき、そこから読み出して実行してもよい。これらのどちらの動作を行うかは、集積回路１０の動作モードによって異なるが、この点については後に詳述する。
【００１４】
ＤＳＰ１２は、波形Ｉ／Ｏ１７を介して入力する音響信号に対し、ミキシング，イコライジング，エフェクト付与等の種々の動作を行い、波形Ｉ／Ｏ１７を介して出力する音響信号処理手段である。実行する信号処理の内容は、ＣＰＵ１１がＤＳＰ１２に設定するマイクロプログラムやパラメータの内容によって定められる。
【００１５】
モード切替部１３は、設定されている動作モードに応じてメモリＩ／Ｏ１４，１５の動作を制御し、動作モードに応じたアクセス制御を行わせる機能を有する。そして、集積回路１０においては、動作モードとして、ＣＰＵ１１に外部ＲＯＭ３１に記憶しているプログラムを実行させ、ＤＳＰ１２のワークエリアを内部ＲＡＭ１６に設ける第１の動作モードと、ＣＰＵ１１に内部ＲＡＭ１６に記憶しているプログラムを実行させ、ＤＳＰ１２のワークエリアを外部ＳＲＡＭ３２又は外部ＳＤＲＡＭ３３に設ける第２の動作モードとを用意している。
【００１６】
動作モードの設定は、ＣＰＵ１１がモード切替部１３に「０」または「１」を書き込むことにより行われる。電源オンした後の最初のブート時には、モード切替部１３の動作モードは自動的に「０」に初期設定される。
なお、動作モードは音響信号処理装置の機種毎にメーカが決めるものであり、ユーザが動作モードの切り替えを行うことはない。外部ＲＯＭ３１にいずれの動作モードでも動作できるようなプログラムを用意する場合は、音響信号処理装置３０のプリント基板上のディップスイッチやジャンパ線で動作モードを指定するようにして、それをＣＰＵ１１がパラレルポート２１を使って読み込み、指定された動作モードでの動作を行うようにすればよい。
【００１７】
メモリＩ／Ｏ１４，１５は、ＣＰＵバス２４とＤＳＰバス２５の両方に接続し、これらのバスを介してなされるＣＰＵ１１及びＤＳＰ１２からのメモリへのアクセス要求に応じてメモリへのデータの読み書きを行うと共に、上述した動作モードに応じてアクセス要求を調停する機能を有する。メモリＩ／Ｏ１４は、内部ＲＡＭ１６へのアクセス及びその調停を行い、メモリＩ／Ｏ１５はメモリバス３４に接続される外部メモリへのアクセスの切り替えを行う。
【００１８】
モード切替部１３の動作モードが「０」に設定された場合には、メモリＩ／Ｏ１５は、外部メモリのバスをＣＰＵバス２４に接続してＣＰＵ１１からの外部メモリへのアクセスを可能にし、動作モードが「１」に設定された場合には、外部メモリのバスをＤＳＰバス２５に接続して、ＤＳＰ１２からの外部メモリへのアクセスを可能にする。従って、動作モードが「０」のとき、ＤＳＰ１２は外部メモリをアクセスすることができず、また、動作モードが「１」のとき、ＣＰＵ１１は外部メモリをアクセスすることができない。
一方、メモリＩ／Ｏ１４は、内部ＲＡＭ１６に対するＣＰＵ１１とＤＳＰ１２の両方からのアクセスが可能になるよう、ＣＰＵ１１とＤＳＰ１２から内部ＲＡＭ１６に対するアクセスの調停を行う。
【００１９】
内部ＲＡＭ１６は、ＣＰＵ１１及びＤＳＰ１２のワークエリアとして使用したり、ＣＰＵ１１が実行するプログラムを一時的に記憶したりする記憶手段である。内部ＲＡＭ１６の記憶領域のどの部分をどの用途で用いるかは、ＤＳＰ１２については、ＣＰＵ１１によりＤＳＰ１２内の特定のアドレスレジスタへ設定されたアドレス値におって決まり、ＣＰＵ１１については、ＣＰＵが実行するプログラムに埋め込まれたアドレス値によって決まる。これらは、音響信号処理装置３０の開発時に、メーカーが各メモリ領域の割り当てを決めて設計したものである。また、内部ＲＡＭ１６は、ＳＲＡＭ，ＤＲＡＭ等の任意のメモリで構成できるが、高速でアクセス可能なメモリとすることが好ましい。
【００２０】
波形Ｉ／Ｏ１７は、デジタル波形データの入出力を行うためのインタフェースであり、外部のＡＤＣ３５等から入力される波形データをＤＳＰ１２に入力し、またＤＳＰ１２による処理後の波形データを外部のＤＡＣ３６等に出力する機能を有する。また、集積回路１０を複数使用する場合に、波形バスを介して他の集積回路との間でオーディオ波形データの入出力を行う機能も有する。なお、音響信号処理装置３０にデジタルの音声入出力端子があれば、ＡＤＣ３５やＤＡＣ３６を介して波形データを入出力する必要はない。
【００２１】
タイマ１８は、ＣＰＵ１１が、マルチタスク処理でのタスク切り換えや、操作子のスキャン周期の発生など、様々な目的で時間を計測するのに使用する計時手段である。
ＭＩＤＩＩ／Ｏ１９は、外部回路との間でのＭＩＤＩデータを入出力する機能を有する。ここでは音響信号処理装置３０側にＭＩＤＩデータを取り扱う機能を設けていないが、音響信号処理装置３０にも適切なインタフェースを設ければ、電子楽器やＰＣ（パーソナルコンピュータ）等が出力するＭＩＤＩデータを集積回路１０に入力し、ＣＰＵ１１にそのＭＩＤＩデータの内容に従ってＤＳＰ１２による信号処理の内容を変更させることも可能である。
【００２２】
通信Ｉ／Ｏ２０は、外部ＣＰＵインタフェース２３をＣＰＵバス２４に接続するためのインタフェースである。
パラレルポート２１は、スイッチ／表示回路４０のような外部回路との間でデジタル信号の入出力を行うためのインタフェースである。
操作子Ｉ／Ｏ２２は、操作子回路３９のような外部回路からのアナログ信号の入力を受け付け、これをデジタルデータに変換してＣＰＵ１１による処理に供するためのインタフェースである。
【００２３】
外部ＣＰＵインタフェース２３は、集積回路１０を外部のＣＰＵと接続し、その外部のＣＰＵにより、ＣＰＵ１１，ＤＳＰ１２，モード切替部１３，パラレルポート２１，操作子Ｉ／Ｏ２２等の動作を制御できるようにするためのインタフェースである。このインタフェースを設けたことにより、ＣＰＵ１１のみでは処理能力が不足する場合にも、外部のＣＰＵを活用してこれを補うことができる。また、ＣＰＵ１１を実質的に動作させず、外部のＣＰＵのみにより集積回路１０の各ブロックを個別に制御することも可能である。なお、図１に示した例では、集積回路１０の外部にＣＰＵは設けていない。
【００２４】
また、外部ＲＯＭ３１は、ＣＰＵ１１が実行するプログラムや、その他変更する必要のないデータを記憶する記憶手段である。外部ＲＯＭ３１をフラッシュメモリ等の書き換え可能な不揮発性記憶手段により構成し、これらのデータをアップデートできるようにしてもよい。
【００２５】
外部ＳＲＡＭ３２及び外部ＳＤＲＡＭ３３は、ＣＰＵ１１やＤＳＰ１２のワークエリアを設けるための記憶手段である。ＳＲＡＭは消費電力が小さく、ＤＲＡＭは記憶容量の増加が容易であるという特徴があるため、通常のワークエリアとしての使用には前者が適し、ＤＳＰ１２で長時間の遅延を行う等、大容量のワークエリアが必要になる場合には、後者が適する。
なお、外部ＳＲＡＭ３２と外部ＳＤＲＡＭ３３は両方を設ける必要はなく、また内部ＲＡＭ１６のみで十分なワークエリアを確保できるのであれば、どちらも設けなくてもよい。すなわち、外部メモリとしては、最低限外部ＲＯＭ３１を設ければよい。外部ＳＲＡＭ３２と外部ＳＤＲＡＭ３３を破線で示したのは、このことを示すためである。
【００２６】
ＡＤＣ３５は、アナログの音声入力端子３７から入力する音響信号をデジタルの波形データに変換して波形Ｉ／Ｏ１７に出力する変換手段である。
ＤＡＣ３６は、波形Ｉ／Ｏ１７から入力する波形データをアナログの音響信号に変換して音声出力端子３８に出力する変換手段である。
【００２７】
操作子回路３９は、可変抵抗等を利用して操作内容をアナログ信号として出力するスライダやノブ等の操作子を複数設けた回路である。操作子Ｉ／Ｏ２２にはＡＤＣを備えており、ＣＰＵ１１は、操作子回路３９が出力するアナログ信号をデジタルに変換して取り込むことができる。
【００２８】
スイッチ／表示回路４０は、ボタンやキー等、操作内容を押下有無やオンオフのようなデジタル信号として出力する複数の操作子及び、ＣＰＵ１１やＤＳＰ１２から受信したデータに基づき表示器にメッセージやパラメータの値等を表示させるための表示回路を備えた回路である。ＣＰＵ１１は、パラレルポート２１を用いてこの操作子のスキャンを行い、各操作子のオンオフ状態を取り込むと共に、表示内容を制御するデータをパラレルポート２１を介してこの表示回路に供給する。
【００２９】
以上のような音響信号処理装置３０によれば、音声入力端子３７から入力する音響信号に対し、集積回路１０内のＤＳＰ１２による種々の信号処理を行って、その結果を音声出力端子３８から出力することができる。ＤＳＰ１２が行う信号処理の内容は、予め用意した選択肢の中から、ユーザが操作子回路３９やスイッチ／表示回路４０に設けた操作子により選択することができるし、信号処理のパラメータの値も、同様に設定することができる。そして、ＣＰＵ１１が操作子の操作に応じた信号処理を行わせるためのマイクロプログラムやパラメータの値のセットを生成し、ＤＳＰ１２に設定する。また、各部の制御は、ここでは全てをＣＰＵ１１に担当させるようにしている。
【００３０】
次に、集積回路１０、ひいては音響信号処理装置３０を動作させる際にＣＰＵ１１が実行する処理について説明する。
上述した通り、集積回路１０は、ＣＰＵ１１に外部ＲＯＭ３１に記憶しているプログラムを実行させ、ＤＳＰ１２のワークエリアを内部ＲＡＭ１６に設ける第１の動作モードと、ＣＰＵ１１に内部ＲＡＭ１６に記憶しているプログラムを実行させ、ＤＳＰ１２のワークエリアを外部ＲＡＭ（外部ＳＲＡＭ３２又は外部ＳＤＲＡＭ３３）に設ける第２の動作モードとでの動作を可能としている。
【００３１】
しかし、ＣＰＵ１１が実行するプログラムは、初めは外部ＲＯＭ３１に記憶しているため、第２の動作モードの動作を行うためには、これを一旦読み出して内部ＲＡＭ１６に記憶させる必要がある。そこで、第２の動作モードでの動作が設定されていた場合でも、起動時には一旦第１の動作モードで動作を行い、プログラムの内部ＲＡＭ１６への記憶が完了した時点で、第２の動作モードに移行させるようにしている。
まず、この点に関してＣＰＵ１１が起動時に実行する処理について説明する。
【００３２】
図２は、この処理のフローチャートを示す。
電源の投入あるいはリセット等により、音響信号処理装置３０が起動されると、集積回路１０も起動され、ＣＰＵ１１は、所定のアドレス（例えば０番地）からプログラムを読み出して実行することにより、図２のフローチャートに示す処理を開始する。なお、上記の「所定のアドレス」がどのメモリユニット内の位置を示すかはモード切替部１３により設定可能であるが、ここでは、初期状態では「所定のアドレス」が外部ＲＯＭ３１内の位置を示すようにしてある。従って、ここではＣＰＵ１１は外部ＲＯＭ３１からプログラムを読み出して実行する。
【００３３】
そして、図２に示す処理においては、まず図３のフローチャートに示すＤＳＰ初期化処理を行う（Ｓ１１）。すなわち、ＤＳＰ１２の出力をミュートしてノイズが出力されないようにした後（Ｓ３１）、ＤＳＰ１２に信号処理の内容を定める初期マイクロプログラムを設定する（Ｓ３２）と共に、ＤＳＰ１２の全パラメータの値を初期値に設定する（Ｓ３３）。
【００３４】
そしてその後、他ブロックの初期化処理（Ｓ１２）も行い、これが完了すると、上述したディップスイッチ等による動作モードの指定、すなわち、プログラムの実行を現状のままの動作モード（初期状態では第１の動作モード）で続行するか、プログラムを内部ＲＡＭ１６に読み込む動作を行うかを規定するデータ「実行設定」を、パラレルポート等から読み込む（Ｓ１３）。
【００３５】
そして、これが前者を示す「プログラム実行」であれば（Ｓ１４）、そのままステップＳ１５以下に進んで処理を続行する。すなわち、内部ＲＡＭ１６の所定のアドレス範囲をワークエリアとして使用するようにＤＳＰ１２を設定し、ＤＳＰ１２にそのエリアをクリアさせる（Ｓ１５）と共に、定常処理に移行するためにＤＳＰ１２のミュートを解除して（Ｓ１６）、定常処理に移行する。定常処理については、後述する。
【００３６】
一方、ステップＳ１４で実行設定がプログラムを内部ＲＡＭ１６に読み込む動作を行うことを示す「プログラム読み込み」であった場合には、ステップＳ１７以下の、第２の動作モードへの移行に係る処理を行う。
この処理では、まず外部ＲＯＭ３１から内部ＲＡＭ１６に、必要なプログラム及びデータを読み込む（Ｓ１７）。この場合、図２のステップＳ１９以降のプログラムが内部ＲＡＭ１６の所定のアドレス（例えば０番地）からの領域へ読み込まれる。第２の動作モードにおいては、ＣＰＵ１１は外部メモリに全くアクセスできないので、この時点で、ＣＰＵ１１の動作に必要なプログラム及びデータは全て読み込まなければならない。以上により、集積回路１０を第２の動作モードに移行させる準備が完了する。
【００３７】
これらが完了した後、ＣＰＵ１１はモード切替部１３のモードレジスタに動作モード「１」を書き込み（Ｓ１８）、この書き込みをトリガとして自身をリセットして再起動する。ただし、このリセットの場合、集積回路１０全体のリセットとは異なり、ステップＳ１１，Ｓ１２で行ったＤＳＰ１２及びその他のブロックの設定や、ステップＳ１８でモード切替部１３に書き込んだ動作モード「１」は保存される。
【００３８】
そして、リセット後、ＣＰＵ１１は、内部ＲＡＭ１６の所定のアドレス（例えば０番地）からプログラムを読み出して実行することにより、ステップＳ２０以降の処理を開始する。すなわち、外部ＲＡＭ３２ないし３３の所定のアドレス範囲をワークエリアとして使用するようＤＳＰ１２を設定し、ＤＳＰ１２にそのエリアをクリアさせる（Ｓ２０）と共に、定常処理に移行するためにＤＳＰ１２のミュートを解除して（Ｓ２１）、定常処理に移行する。
【００３９】
以上の処理において、ステップＳ１７乃至Ｓ２１では、ＣＰＵ１１が切り替え手段として機能する。
なお、ＣＰＵ１１のワークエリアについては、第１の動作モードでも第２の動作モードでも、内部ＲＡＭ１６に設けておいてよい。しかし、第１の動作モードにおいては、内部ＲＡＭ１６に必要な領域を確保できない場合には、外部ＲＡＭに設けてもよい。
【００４０】
集積回路１０は、ＣＰＵ１１が起動時に以上の図２に示した処理を行うことにより、第１の動作モードと第２の動作モードのうち、実行設定の初期値によって定められる任意の動作モードで動作することができる。また、いずれの動作モードで動作させる場合でも、ＣＰＵ１１が実行するプログラムを、起動時には外部ＲＯＭ３１に記憶させておくことができる。
【００４１】
また、各動作モードでの、ＣＰＵ１１が実行するプログラムを記憶する位置と、ＣＰＵ１１及びＤＳＰ１２のワークエリアを設ける位置は、以下の表１に示す通りとなる。
【表１】
2007257007.tif 000003
【００４２】
そして、第１の動作モードでは、ＣＰＵは基本的に外部ＲＯＭ３１からプログラムを読み出して実行するため、複雑な処理をする等のためにプログラムのサイズが大きくなる場合でも、それに応じて外部ＲＯＭ３１の容量を大きくすることにより、容易に対応可能である。
また、ＤＳＰ１２のワークエリアは内部ＲＡＭ１６に設けているため、ＤＳＰ１２が外部のメモリバス３４にアクセスすることはなく、ＣＰＵ１１とＤＳＰ１２とで、メモリバス３４へのアクセスが競合することがない。従って、ＣＰＵ１１がアクセス要求を待たされて処理速度が遅延する事態は発生しない。
【００４３】
ただし、内部ＲＡＭ１６にＣＰＵ１１のワークエリアを設ける場合、内部ＲＡＭ１６についてはＣＰＵ１１とＤＳＰ１２とからのアクセス要求が競合することが考えられる。しかし、内部ＲＡＭ１６は、アクセス速度を高速にすることができるので、例えばＣＰＵ１１の動作クロックの２倍の速度でアクセスできるようにすれば、ＣＰＵ１１とＤＳＰ１２からのアクセス要求が競合した場合でも、１クロック内に双方からのアクセスを交互に許可することができ、実質的にＣＰＵ１１からのアクセス要求を遅延させずに済む。
【００４４】
コスト等の事情により、内部ＲＡＭ１６へのアクセス速度をＣＰＵ１１の動作クロックの２倍にまで上げられない場合には、１クロック内にＣＰＵ１１及びＤＳＰ１２の双方からのアクセスを許可することができないが、この場合には、ＤＳＰ１２からのアクセス要求を優先させ、ＣＰＵ１１からのアクセス要求は待たせるようにするとよい。しかし、この場合でも、内部ＲＡＭ１６へのアクセス速度はメモリバス３４を介した外部メモリへのアクセス速度よりも数倍速くすることは可能であるので、外部メモリへのアクセス要求が競合する場合に比べれば、遅延の影響ははるかに小さくて済む。むしろ、ＣＰＵ１１の処理速度は、主にプログラム読み出しの際の外部ＲＯＭ３１へのアクセス速度によって決まることになる。
【００４５】
なお、第１の動作モードであっても、ＣＰＵ１１のワークエリアを内部ＲＡＭ１６中に十分確保できる場合には、ＣＰＵ１１の実行するプログラムの中の実行頻度の高いルーチンや、参照頻度の高いパラメータ等を内部ＲＡＭ１６に配置するようにすれば、プログラムやデータの読み出し時間を短縮して処理を高速化することができる。
また、ＤＳＰ１２のワークエリアを内部ＲＡＭ１６中に確保するため、内部ＲＡＭ１６中にはＣＰＵ１１のワークエリアを十分に確保できない場合も考えられるが、このような場合には、外部ＳＲＡＭ３２にＣＰＵ１１のワークエリアを確保するといった対応も可能である。そして、外部ＳＲＡＭ３２の容量を増やすことにより、広いワークエリアも容易に確保することができる。もちろん、内部ＲＡＭ１６と外部ＳＲＡＭ３２の双方にＣＰＵ１１のワークエリアを確保してもよい。
【００４６】
しかし、第１の動作モードにおいては、ＤＳＰ１２のワークエリアを内部ＲＡＭ１６のみに確保するため、ワークエリアのサイズは内部ＲＡＭ１６のサイズに制限されるという欠点もある。そしてこのため、大容量の遅延メモリを必要とするような種類のエフェクトの実現は困難である。内部ＲＡＭ１６の容量を増加させれば実現も可能ではあるが、このようにすると集積回路１０のコストアップに繋がってしまうためである。
従って、第１の動作モードは、集積回路１０を、遅延メモリをあまり必要としないエフェクトしか備えていないエフェクタやそれを組み込んだアナログミキサ、あるいは複雑な制御が必要でプログラムの容量は大きくなるが大容量の遅延メモリは必要としないデジタルミキサ等に搭載する場合に有効であると言える。
【００４７】
一方、第２の動作モードの特徴は、概ねＣＰＵ１１とＤＳＰ１２の立場が第１の動作モードの場合と入れ替わったものである。
すなわち、ＣＰＵ１１が実行するプログラムを予め全て内部ＲＡＭ１６に読み込んでおき、またワークエリアやデータエリアも内部ＲＡＭ１６に設けているため、ＣＰＵ１１が外部のメモリバス３４にアクセスすることはなく、ＣＰＵ１１とＤＳＰ１２とで、メモリバス３４へのアクセスが競合することがない。従って、ＣＰＵ１１がアクセス要求を待たされて処理速度が遅延する事態は発生しない。
ＤＳＰ１２のワークエリアも内部ＲＡＭ１６に設ける場合には、内部ＲＡＭ１６へのアクセスについての競合は発生するが、これがあまり問題とならないことは第１の動作モードの場合と同様である。
【００４８】
また、ＤＳＰは外部ＲＡＭをワークエリアとして使用できるので、外部ＲＡＭとして大容量のユニットを設ければ、大容量の遅延メモリが必要な種類のエフェクトも容易に実現することができる。
逆に、ＣＰＵ１１は、実行するプログラムを予め全て内部ＲＡＭ１６に読み込んだ上でワークエリアやデータエリアも内部ＲＡＭ１６に確保するため、プログラムのサイズが内部ＲＡＭ１６の容量により制限されてしまい、複雑な処理を実行することは困難である。
従って、第２の動作モードは、集積回路１０を、操作子や表示が少なく、ユーザインタフェース等に関するＣＰＵ１１の処理が簡単だが、長時間の遅延処理を必要とする種類のエフェクトを備えたエフェクタ等に搭載する場合に有効であると言える。
【００４９】
集積回路１０は、このような第１の動作モードと第２の動作モードの２つの動作モードでの動作を可能としたことにより、メモリバス３４へのアクセス競合が生じないようにしている。従って、メモリへのアクセスの調停がＣＰＵ１１の動作速度に与える影響の小さい回路を実現し、安定した信号処理を行えるようにすることができる。
また、この場合において、外部のメモリバス３４への接続部は１系統設けるのみでよいので、集積回路１０の小型化と低コスト化が可能である。
さらに、適当な動作モードを選択すれば、集積回路１０を広範な用途に利用可能とすることができため、大量生産が可能となり、このことによりコストダウンを図ることができる。
【００５０】
なお、集積回路１０に内部ＲＡＭ１６を設けると、メモリの全てを外部メモリで賄う場合に比べ、集積回路１０のチップサイズが大きくなると共に集積回路１０の単価も増大する。また、集積回路１０を、内部ＲＡＭ１６をあまり必要としない用途に使用する際には、その単価増大分のコストは無駄になってしまうことも考えられる。
【００５１】
しかし、２つの動作モードを使い分けることにより、内部ＲＡＭ１６をさほど大容量化しなくても、広範な用途に使用できる回路を構成することができるため、内部ＲＡＭ１６の容量をあまり必要としない用途の場合でも、設けた内部ＲＡＭ１６がほとんど無駄になってしまうようなケースは少ないと考えられる。一方で、内部ＲＡＭ１６を設けたことにより、メモリバス３４への接続部が１系統であってもアクセス競合を回避でき、この点で搭載する基板上の配線パターンの複雑化やサイズの大型化を回避できるという効果もある。
このため、内部ＲＡＭ１６を設けたことにより、用途によっては集積回路１０に無駄なメモリを搭載することになったとしても、量産効果及び、搭載する基板の単純化や小型化によりその欠点を補い、総合的に見ればコストダウンの効果を得ることができると言える。
【００５２】
次に、図２に示した起動時の処理の後でＣＰＵ１１が実行する定常処理について説明する。図４は、その定常処理のフローチャートである。
図２に示した起動処理のステップＳ１６の後、ＣＰＵ１１は、操作子回路３９やスイッチ／表示回路４０に設けた操作子により受け付けた指示に従ってＤＳＰ１２における音響信号処理の内容を制御したり、受け付けた指示、音響信号処理の状態、あるいは設定されているパラメータの値等に応じてスイッチ／表示回路４０に接続された表示器に表示を行わせたりするための定常処理を行う。
【００５３】
この処理は、集積回路１０を搭載する機種毎に異なる処理であるが、基本的な処理の流れとしては（動作モードにも関係なく）図４の通りである。すなわち、操作子の操作や時間の経過、エラーの発生等のイベントを検出すると（Ｓ５１）、そのイベントに応じた処理を行う（Ｓ５２）ものである。なお、イベントの検出及びイベントに応じた処理は、複数並列して行うことができる。
【００５４】
そして、イベントに応じた処理は、例えば操作子の操作イベントに応じた処理であれば、図５に示すようなものである。
すなわち、ＣＰＵ１１は、操作子の操作を検出した場合には、まずその操作に応じてＣＰＵ１１のワークエリア内の動作データ（ＤＳＰ１２による信号処理の内容や音響信号処理装置３０の動作状態を規定するデータ）の値を更新する（Ｓ６１）。
【００５５】
この処理としては、例えば音響信号処理装置３０をデジタルミキサとして構成する場合には、フェーダやノブの操作に応じて、チャンネル（ｃｈ）フェーダやセンドレベルのゲイン、グラフィカルイコライザ（ＧＥＱ）やコンプレッサのパラメータといった、各種バリュー動作データを更新したり、オンオフスイッチの操作に応じて、ｃｈオンスイッチ、センドオンスイッチ、ＧＥＱオンスイッチ、コンプレッサオンスイッチ、フィルタオンオフ等の各種オンオフ動作データを更新したりすることが考えられる。
【００５６】
また、音響信号処理装置３０をエフェクタとして構成する場合には、オンオフスイッチの操作に応じてエフェクトタイプ、エフェクトオン、オプションオンといった各種選択／オンオフ動作データを更新したり、ノブの操作に応じて、エフェクトのかかる深さ、エフェクトのかかるポイント（周波数やタイミング等）、周期性エフェクトの場合にはその周期といった各種バリュー動作データを更新したりすることが考えられる。
【００５７】
そして、ステップＳ６１の後、更新後の動作データの値に応じてＤＳＰに設定すべき係数やマイクロプログラムがあればこれらを生成して（Ｓ６２）、生成した係数及びマイクロプログラムをＤＳＰ１２に設定する（Ｓ６３）。
以上の処理により、操作子の操作に応じてＤＳＰ１２に実行させる信号処理の内容を変更することができる。
【００５８】
また、図６に、操作子の操作イベントに応じた処理のより具体的な例として、エフェクトタイプ選択イベントに応じた処理のフローチャートを示す。
この処理においては、ＣＰＵ１１はまず、検出したイベントに応じてＣＰＵ１１のワークエリア内の動作データの値を更新する（Ｓ７１）と共に、マイクロプログラムやパラメータの変更時にノイズが出力されないよう、ＤＳＰ１２のうちエフェクトタイプ選択イベントのあったブロックをミュートする（Ｓ７２）。ここで、ブロックとは、ＤＳＰ１２の処理能力を仮想的に区切った単位であり、エフェクトの種類を設定する単位である。
【００５９】
ステップＳ７２の後は、新たに選択されたエフェクトタイプで使用するマイクロプログラムが現在ＤＳＰ１２に設定されているものと同じでなければ（Ｓ７３）、選択されたエフェクトタイプと対応するマイクロプログラムを生成してＤＳＰ１２に設定する（Ｓ７４）。なお、ステップＳ７３でＹＥＳになる場合とは、パラメータの変更のみでエフェクトタイプの変更に対応できる場合であり、例えばスイッチの押下により複数種類のリバーブが選択可能な状態において、あるリバーブから別の種類のリバーブに選択が変更された場合等である。
【００６０】
そして、ステップＳ７３又はＳ７４の後は、ＤＳＰ１２のワークエリアのうち、選択イベントのあったブロックと対応するエリアをクリアする（Ｓ７５）と共に、選択されたエフェクトタイプについての初期係数セットを生成して選択イベントのあったブロックと対応するエリアに設定し（Ｓ７６）、ステップＳ７２でミュートしたブロックのミュートを解除して（Ｓ７７）、処理を終了する。
なお、ステップＳ７５でワークエリアをクリアした際に、ワークエリアの位置やサイズを変更できるようにしてもよい。
【００６１】
以上でこの実施形態の説明を終了するが、回路及び装置の構成や具体的な処理内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態においては、ＣＰＵ１１に起動時に実行させるプログラムとして、図２のフローチャートに示したような、第１の動作モードと第２の動作モードの両方に対応可能なプログラムを外部ＲＯＭ３１に記憶させておく例について説明した。
【００６２】
このようなプログラムを用いれば、１つのプログラムで定常処理時に第１の動作モードで動作する１機種の音響信号処理装置と、定常処理時に第２の動作モードで動作する１機種の音響信号処理装置の、計２機種の装置に対応可能とすることができるが、いずれか一方の動作モードで動作する装置専用のプログラムを用いてもよい。
例えば、第１の動作モードで動作する装置専用にするのであれば、ＣＰＵ１１に図２のステップＳ１１，Ｓ１２，Ｓ１５，Ｓ１６及びそれ以降の処理を実行させるためのプログラムを用いればよく、第２の動作モードで動作する装置専用にするのであれば、ＣＰＵ１１に図２のステップＳ１１，Ｓ１２，Ｓ１７，Ｓ１８及びそれ以降の処理を実行させるためのプログラムを用いればよい。
【００６３】
このようにすれば、実際には使用しない動作モードのためのプログラムを外部ＲＯＭ３１に記憶させなくてよいので、外部ＲＯＭ３１に必要な記憶容量を低減することができる。また、いずれの動作モードで動作するかは、各機種毎に１つに決まっているため、この場合のプログラムには、図２のステップＳ１３，Ｓ１４に相当する実行設定に応じた分岐の処理は必要ない。
【００６４】
また、内部ＲＡＭ１６へのアクセス速度が十分速くない場合には、内部ＲＡＭ１６に対するアクセスの競合も防止するため、内部ＲＡＭ１６に対するアクセスについても、以下のような禁止を行うようにしてもよい。
すなわち、第１の動作モードでは、ＣＰＵ１１のワークエリアを外部メモリのみに設け、メモリＩ／Ｏ１４に、ＣＰＵ１１から内部ＲＡＭ１６へのアクセスを禁止させるようにしてもよい。また、第２の動作モードでは、ＤＳＰ１２のワークエリアを外部メモリのみに設け、メモリＩ／Ｏ１４に、ＣＰＵ１１から内部ＲＡＭ１６へのアクセスを禁止させるようにしてもよい。
【００６５】
また、集積回路１０を第２の動作モードで動作させる場合において、内部ＲＡＭ１６へのプログラムの書き込みを、ＣＰＵ１１が行うことは必須ではない。集積回路１０の外部にも別のＣＰＵを設ける場合には、そのＣＰＵが任意のメモリからＣＰＵ１１に実行させるプログラムを読み出して、外部ＣＰＵインタフェース２３や通信Ｉ／Ｏ２０を介して内部ＲＡＭ１６に記憶させてもよい。このプログラムは、音響信号処理装置３０の外部からダウンロードしたものでも構わない。そして、この場合には、集積回路１０を、起動当初から、第２の動作モードで動作させることもできる。
また、この発明の半導体集積回路の用途及びこの発明の音響信号処理装置の適用範囲がミキサやエフェクタに限られないことは、もちろんである。
【産業上の利用可能性】
【００６６】
以上の説明から明らかなように、この発明の半導体集積回路によれば、小型かつ低コストで、メモリ調停がＣＰＵの動作速度に与える影響の小さい回路を実現することができる。また、この発明の音響信号処理装置によれば、小型かつ低コストで、安定した信号処理が可能となる。従って、この発明を適用することにより、小型かつ低コストの信号処理装置を提供することができる。
【図面の簡単な説明】
【００６７】
【図１】この発明の半導体集積回路の実施形態である集積回路を備えた、この発明の音響信号処理装置の実施形態の構成を示すブロック図である。
【図２】図１に示したＣＰＵが起動時に実行する処理のフローチャートである。
【図３】図２に示したＤＳＰ初期化処理のフローチャートである。
【図４】図２に示した定常処理のフローチャートである。
【図５】図４に示した定常処理中でＣＰＵが実行する、操作子の操作イベントに応じた処理のフローチャートである。
【図６】そのより具体的な例である、エフェクトタイプ選択イベントに応じた処理のフローチャートである。
【符号の説明】
【００６８】
１０…集積回路、１１…ＣＰＵ、１２…ＤＳＰ、１３…モード切替部、１４，１５…メモリＩ／Ｏ、１６…内部ＲＡＭ、１７…波形Ｉ／Ｏ、１８…タイマ、１９…ＭＩＤＩＩ／Ｏ、２０…通信Ｉ／Ｏ、２１…パラレルポート、２２…操作子Ｉ／Ｏ、２３…外部ＣＰＵインタフェース、２４…ＣＰＵバス、２５…ＤＳＰバス、３０…音響信号処理装置、３１…外部ＲＯＭ、３２…外部ＳＲＡＭ、３３…外部ＳＤＲＡＭ、３４…メモリバス、３５…ＡＤＣ、３６…ＤＡＣ、３７…音声入力端子、３８…音声出力端子、３９…操作子回路、４０…スイッチ／表示回路
【図１】
2007257007.tif 000004
【図２】
2007257007.tif 000005
【図３】
2007257007.tif 000006
【図４】
2007257007.tif 000007
【図５】
2007257007.tif 000008
【図６】
2007257007.tif 000009