(57)【要約】【課題】リングバッファとして用いるメモリーを増設したり、接続状態を変えたりするなどのことなく、別々に制御可能な複数のリングバッファとして用いるようにしたり、また、より長い遅延量を確保したりすることができるようにする。【解決手段】１つの外部メモリー３のメモリー空間を分割して、所定のデータ幅の上位領域３１、下位領域３２という２つの分割記憶領域を形成する。外部メモリー３のメモリー空間に対するアドレスを、各分割記憶領域のアドレスとして用い、上位領域３１と、下位領域３２とをそれぞれ独立のリングバッファとして用いることができるようにする。【選択図】        図２
2004318467.tif 000002
【特許請求の範囲】
【請求項１】
データの書き込みと読み出しとが可能な１つのメモリーの記憶領域を所定のデータ幅の複数個の分割記憶領域に分割するようにし、
前記１つのメモリーの記憶領域に対するアドレスを、前記複数個の分割記憶領域のそれぞれのアドレスとして用い、前記アドレスが、前記複数個の分割記憶領域のどの領域に対するものかを指示するようにし、
指示された前記分割記憶領域毎に、書き込みアドレスと読み出しアドレスとを制御することにより、
前記複数個の分割記憶領域のそれぞれを、前記所定のデータ幅のリングバッファとして用いるようにすることを特徴とするメモリー制御方法。
【請求項２】
データの書き込みと読み出しとが可能な１つのメモリーの記憶領域を所定のデータ幅の複数個の分割記憶領域に分割するようにし、
前記１つのメモリーの記憶領域に対するアドレスを、前記複数個の分割記憶領域のそれぞれのアドレスとして用い、前記所定のデータ幅の前記複数個の分割記憶領域をアクセス幅方向に連続する１つの記憶領域として、書き込みアドレスと読み出しアドレスとを制御し、
前記メモリーの記憶領域の元のアクセス幅より大きいアクセス幅のリングバッファとして用いるようにすることを特徴とするメモリー制御方法。
【請求項３】
請求項１に記載のメモリー制御方法であって、
前記複数個の分割記憶領域の少なくとも１つ以上において、前記データ幅を異ならせるようにすることを特徴とするメモリー制御方法。
【請求項４】
請求項１または請求項２に記載のメモリー制御方法であって、
前記複数個の分割記憶領域の少なくとも１つ以上において、前記アクセス幅を異ならせるようにすることを特徴とするメモリー制御方法。
【請求項５】
データの書き込みと読み出しとが可能な１つのメモリーの記憶領域を所定のデータ幅の複数個の分割記憶領域に分割するようにする分割手段と、
前記１つのメモリーの記憶領域に対するアドレスが、前記分割手段により分割するようにされた前記複数個の分割記憶領域のどの領域に対するものかを指示する領域指示手段と、
前記領域指示手段により指示される分割記憶領域毎に、書き込みアドレスと読み出しアドレスとを制御するアドレス制御手段と
を備え、前記複数個の分割記憶領域のそれぞれを、前記所定のデータ幅のリングバッファとして用いるようにすることを特徴とするメモリー制御装置。
【請求項６】
データの書き込みと読み出しとが可能な１つのメモリーの記憶領域を所定のデータ幅の複数個の分割記憶領域に分割するようにする分割手段と、
前記１つのメモリーの記憶領域に対するアドレスを、前記複数個の分割記憶領域のそれぞれのアドレスとして用い、前記所定のデータ幅の前記複数個の分割記憶領域をアクセス幅方向に連続する１つの記憶領域として、書き込みアドレスと読み出しアドレスとを制御するアドレス制御手段と
を備え、前記メモリーの記憶領域を元のアクセス幅より大きいアクセス幅のリングバッファとして用いるようにすることを特徴とするメモリー制御装置。
【請求項７】
請求項５に記載のメモリー制御装置であって、
前記分割手段は、前記複数個の分割記憶領域の少なくとも１つ以上において、前記データ幅を異ならせるようにすることができることを特徴とするメモリー制御方法。
【請求項８】
請求項５または請求項６に記載のメモリー制御装置であって、
前記分割手段は、前記複数個の分割記憶領域の少なくとも１つ以上において、前記アクセス幅を異ならせるようにすることができることを特徴とするメモリー制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば、オーディオ信号（音声信号）などの時系列データなどを遅延させるために用いるいわゆるリングバッファの制御方法、制御装置に関する。
【０００２】
【従来の技術】
例えば、オーディオアンプ装置において、出力音声にリバーブ（残響）効果を施すなどのために、音声データを一旦メモリーに書き込み、メモリーに書き込んだ音声データをタイミングをずらして読み出すようにして処理対象の音声データを遅延させるようにすることが行われている。
【０００３】
このように処理対象の音声データを遅延させる場合に、読み出し／書き込みが可能なメモリーを、いわゆるリングバッファと呼ばれる方式で用いるようにすることが行われている。このリングバッファは、その一例を図１４に示すように、アドレス０（ゼロ）の１ワード手前が最大値Ｎにつながるようにし、メモリーをリング状にアクセスして用いるようにするものである。
【０００４】
そして、図１４に示したリングバッファの一例であって、アクセス幅がＮ、データ幅が３２ｂｉｔ（ビット）であるＮ＊３２ｂｉｔ（＊は掛け算を示す。以下この明細書において同じ。）のメモリー空間（記憶領域）に対して、書き込みアドレスＷをサンプリング毎に負の方向（最大値Ｎ側から最小値０側に向かう方向）に変化させてデータの書き込みを行うようにした場合の書き込みアドレスＷと読み出しアドレスＲの制御は、以下のようになる。
【０００５】
なお、ここで、アクセス幅は、メモリー空間におけるアドレスの最小値から最大値までの幅であって、図１４においては、メモリー空間の縦方向の幅に相当するものである。また、データ幅は、１ワードのビット長であって、図１４においては、メモリー空間の横方向の幅に相当するものである。
【０００６】
そして、図１４に示したように、書き込みアドレスをサンプリング毎に負の方向に変化させて１ワード単位にデータの書き込みを行うようにした場合、書き込みアドレスの最小値であるアドレス０が示すメモリー上の位置にデータを書き込むと、書き込みアドレスは、最大値Ｎに戻り、再度、最大値Ｎから負の方向に書き込みアドレスを変化させるようにして、データの書き込みを行う。
【０００７】
この場合、読み出しアドレスＲは、書き込みアドレスＷからシステムにおいて決まる遅延量ｎサンプル分だけ遅れた位置のアドレスとなる。すなわち、図１４において、計算式Ｒ＝Ｗ＋ｎが示すように、読み出しアドレスＲは、書き込みアドレスＷ＋遅延量ｎによって求めることができる。
【０００８】
そして、従来は、例えば、４ビット入出力のメモリーをリングバッファとして用いており、データの書き込み／読み出し時のアドレス制御が複雑になったり、メモリー空間を有効に活用できなかったりする場合があった。このような問題を解決する技術として、特許文献１（特開平５−３３４１７７号公報）には、メモリーをリングバッファとして用いる場合のアドレッシングに関する技術が開示されている。
【０００９】
また、メモリーをリングバッファとして用いる場合、上述したように、メモリー上の書き込み位置や読み出し位置を指示するアドレスは、そのメモリーのアドレスの最小値と最大値とが連続したものとして扱われる。このため、リングバッファとして用いているメモリーを同時に他の用途に使用することができないという問題があった。
【００１０】
この問題を解決する技術として、特許文献２（特開平６−１４９６６０号公報）には、１つのメモリーに、リング状にアクセスされる遅延用メモリー領域（リングバッファ領域）と、通常のアドレス制御によってアクセスされる通常メモリー領域とを併存させることができるようにする技術が開示されている。
【００１１】
【特許文献１】
特開平５−３３４１７７号公報
【００１２】
【特許文献２】
特開平６−１４９６６０号公報
【００１３】
【発明が解決しようとする課題】
ところで、近年においては、図１４を用いて上述した例のように、３２ｂｉｔ程度のデータであれば１回のアクセスで書き込み／読み出しが可能であるし、また、３２ｂｉｔ程度のデータを複数に分けて読み書きすることも比較的に簡単に行うことができるようになっている。つまり、リングバッファを用いるＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）の機能も向上してきている。
【００１４】
その一方で、リングバッファの利用については、１つのメモリーにリングバッファ領域と通常メモリー領域とを併存させて用いるのではなく、１つのメモリー内に複数のリングバッファ領域を形成してそれぞれを別個に用いるようにしたり、また、記憶容量やメモリーの接続状態を変えずにより長い遅延時間を確保できるようにしたいなどの新たな要求が出てきている。
【００１５】
すなわち、従来から、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）による音場生成処理のためにリングバッファとして用いる外部ＲＡＭのデータアクセス幅は、固定で用いるのが一般的である。例えば、６４ｋ＊１６ｂｉｔ＝１ＭｂｉｔのＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を２個、データ幅を３２ｂｉｔとして使用するようにした場合、アクセス空間は６４ｋ空間  （サンプリング周波数が４８ｋＨｚ時に１３６５ｍｓｅｃ（ミリ秒）の遅延量の確保が可能なアクセス空間）と一意的に決まる。このため、全ての音場生成処理のプログラムをこの時間内に収まるように設計する必要がある。
【００１６】
より長い遅延時間を必要とするプログラムを搭載する場合には、さらにＳＲＡＭを追加接続してアクセス空間を増やすか、ＳＲＡＭを１２８ｋ＊１６ｂｉｔで使用するように接続し直して、多少の音質の犠牲を容認した上で１６ｂｉｔアクセスで用いるしかない。また、異なる処理を並行して行うために、複数のリングバッファを用いたい場合にも、別途、ＳＲＡＭを追加接続する必要が生じる。
【００１７】
しかし、ＳＲＡＭの個数を増やすことはその分コストが上がることを意味する。また、常時、１６ビットのデータ幅で用いるようにした場合には、例えば通常時の処理が３２ビット処理であるときには、上位の１６ビットと下位の１６ｂｉｔとを別々に、２回アクセスする必要があるため、３２ビット幅で用いたときの倍の処理時間がかかってしまうなどの弊害が発生する可能性がある。
【００１８】
また、異なる処理を並行して行うために、複数のリングバッファが必要となる場合であっても、同時に並行して行うべき処理が常時存在していれば、そのそれぞれの処理用にリングバッファとして用いる複数のＳＲＡＭを設けることは無駄ではない。しかし、同時に並行して行うべき処理が常時存在していない場合には、未使用時のＳＲＡＭは無駄なものとなってしまう。
【００１９】
以上のことは、内部ＲＡＭを使用したリングバッファ処理についてもそのままあてはまる。このため、メモリー容量を増やしたり、また、１サンプル当たりデータ幅を常時少なくすることによって、それよりも広いデータ幅でメモリーを使用する場合に処理時間が長くなってしまったりするなどの弊害を生じさせることなく、処理に応じたリングバッファを確保し、また、処理に応じた遅延量のリングバッファを確保でいるようにする技術の提供が望まれている。
【００２０】
以上のことにかんがみ、この発明は、リングバッファとして用いるメモリーを増設したり、接続状態を変えたりするなどのことなく、別々に制御可能な複数のリングバッファとして用いるようにしたり、また、より長い遅延量を確保したりすることができるようにする方法、装置を提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記課題を解決するため、請求項１に記載の発明のメモリー制御方法は、
データの書き込みと読み出しとが可能な１つのメモリーの記憶領域を所定のデータ幅の複数個の分割記憶領域に分割するようにし、
前記１つのメモリーの記憶領域に対するアドレスを、前記複数個の分割記憶領域のそれぞれのアドレスとして用い、前記アドレスが、前記複数個の分割記憶領域のどの領域に対するものかを指示するようにし、
指示された前記分割記憶領域毎に、書き込みアドレスと読み出しアドレスとを制御することにより、
前記複数個の分割記憶領域のそれぞれを、前記所定のデータ幅のリングバッファとして用いるようにすることを特徴とする。
【００２２】
この請求項１に記載の発明のメモリー制御方法によれば、１つのメモリーの記憶領域が分割されて、所定のデータ幅の複数個の分割記憶領域が形成される。そして、元の１つのメモリーの記憶領域に対するアドレスが、各分割記憶領域のアドレスとして用いられる。つまり、１つのメモリーの記憶領域についてのアドレスは、複数の分割記憶領域のそれぞれの記憶位置を示すものとして用いるようにされる。
【００２３】
このように、１つのメモリーの記憶領域についてのアドレスを各分割記憶領域で使い分けることによって、各分割記憶領域を異なる複数のリングバッファとして用いることができるようにされる。また、元の１つのメモリーの記憶領域を元のデータ幅のまま使用する場合、アドレス制御については何の変更もともなわず、元のデータ幅のままデータの書き込みやデータの読み出しを行うことができるようにされる。
【００２４】
また、請求項２に記載の発明のメモリー制御方法は、
データの書き込みと読み出しとが可能な１つのメモリーの記憶領域を所定のデータ幅の複数個の分割記憶領域に分割するようにし、
前記１つのメモリーの記憶領域に対するアドレスを、前記複数個の分割記憶領域のそれぞれのアドレスとして用い、前記所定のデータ幅の前記複数個の分割記憶領域をアクセス幅方向に連続する１つの記憶領域として、書き込みアドレスと読み出しアドレスとを制御し、
前記メモリーの記憶領域の元のアクセス幅より大きいアクセス幅のリングバッファとして用いるようにすることを特徴とする。
【００２５】
この請求項２に記載の発明のメモリー制御方法によれば、１つのメモリーの記憶領域が分割されて、所定のデータ幅の複数個の分割記憶領域が形成される。この分割されて形成された各分割記憶領域がアクセス幅方向に接続するようにされ、連続した記憶領域のリングバッファとして利用できるようにされる。この場合、元の１つのメモリーの記憶領域に対するアドレスが、各分割記憶領域のアドレスとして用いられる。
【００２６】
各分割記憶領域のデータ幅は、メモリーの元の記憶領域のデータ幅より狭くなるが、遅延時間は、分割記憶領域が２つであれば２倍に、３つであれば３倍にと言うように、長くすることができる。したがって、分割記憶領域のデータ幅として処理に必要なデータ幅が確保できる場合に、遅延時間のより長いリングバッファを実現することができるようにされる。また、元の１つのメモリーの記憶領域を元のデータ幅のまま使用する場合、アドレス制御については何の変更もともなわず、元のデータ幅のままデータの書き込み、データの読み出しを行うことができるようにされる。
【００２７】
【発明の実施の形態】
以下、図を参照しながら、この発明による方法、装置の一実施の形態について説明する。以下に説明する実施の形態においては、この発明による方法、装置の一実施の形態をオーディオアンプ装置に適用した場合を例にして説明する。
【００２８】
［オーディオアンプ装置の構成について］
図１は、この発明による方法、装置の一実施の形態が適用された、この実施の形態のオーディオアンプ装置を説明するためのブロック図である。図１に示すように、この実施の形態のオーディオアンプ装置は、デジタルオーディオ信号の入力端子ｉｎ、音声データデコード部１、ＤＳＰ２、外部メモリー（ＳＲＡＭ）３、左チャンネルスピーカ４Ｌ、右チャンネルスピーカ４Ｒ、制御部５、キー操作部６を備えたものである。
【００２９】
制御部５は、図１に示したように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５３、不揮発性メモリー５４が、システムバス５５を通じて接続されて構成されたマイクロコンピュータであり、この実施の形態のオーディオアンプ装置の各部を制御することができるものである。
【００３０】
ここで、ＲＯＭ５２は、この実施の形態のオーディオアンプ装置に応じて実行する種々のプログラムや処理に必要なデータ等が記憶されたものであり、ＲＡＭ５３は、処理の途中結果を保持するなど、主に作業領域として用いられるものである。また、不揮発性メモリーは、電源が落とされても記憶情報を保持しておくことができるものであり、例えば、設定パラメータなどが記憶保持される。
【００３１】
そして、入力端子ｉｎを通じて受け付けた、例えば、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）プレーヤなどの各種のデジタル機器から供給されるデジタル音声信号（オーディオストリーム）は、音声データデコード部１に供給される。
【００３２】
音声データデコード部１は、制御部５からの制御に応じて動作し、これに供給された入力音声信号である所定のフォーマットのデジタルオーディオストリームをそのフォーマットに応じてデコードし、入力音声信号のチャンネル構成を判別するとともに、チャンネル構成に応じた各チャンネルのデコード後の音声信号を分離し、分離したデコード後の音声信号をＤＳＰ２に供給する。
【００３３】
なお、音声データデコード部１は、集積回路（ＩＣ）とし構成された種々のものを用いることにより実現することができる。例えば、富士通株式会社製のＩＣである型番ＭＢ８６３４７、ＭＢ８６３４９、ＭＢ８６Ｄ４２、ＭＢ８６Ｄ４１などを音声データデコード部１として用いることが可能である。
【００３４】
これらのＩＣは、ＰＣＭ、ドルビーデジタル、ｄｔｓ、ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）等の信号フォーマットのデジタルオーディオストリームをデコードし、そのデジタルオーディオストリームのチャンネル構成に応じたチャンネルのデコード後の音声信号（音声データ）を出力することができるものである。
【００３５】
ＤＳＰ２は、制御部５からの制御に応じて動作し、外部メモリー３をリングバッファとして用いて、音声データデコード部１から供給される音声信号に対して、リバーブ処理や各種のフィルタ処理を施すようにするものである。そして、このＤＳＰ２における外部メモリー３の制御方法がこの発明による方法が適用されたものであり、ＤＳＰ２自体がこの発明によるメモリー制御装置を実現するものである。
【００３６】
そして、ＤＳＰ２において、リバーブ処理等が施された左チャンネルの音声信号は左チャンネルスピーカ４Ｌに供給され、右チャンネルの音声信号は右チャンネルスピーカ４Ｒに供給される。これにより、左右のスピーカー４Ｌ、４Ｒからこれらに供給された音声信号に応じた音声が放音するようにされる。
【００３７】
なお、説明を簡単にするため、図１には図示しなかったが、ＤＳＰ２とスピーカー４Ｌ、４Ｒとの間には、左右のチャンネルに対応して、ＤＳＰ２からのデジタル音声データをアナログ音声信号に変換するＤ／Ａ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ）変換器や、音量調整のための増幅器などが接続されており、制御部５の制御に応じて、Ｄ／Ａ変換や音量調整がなされるようにされている。
【００３８】
また、制御部５に接続されたキー操作部６は、ユーザーからの種々の操作入力を受け付け、これを電気信号に変換して、制御部５に通知することができるものであり、これにより、制御部５はユーザーからの指示に応じて、この実施の形態のオーディオアンプ装置の各部を制御することができるようにされる。
【００３９】
そして、この実施の形態のオーディオアンプ装置のＤＳＰ２は、外部メモリー３をリングバッファとして用いて、音声データデコード部１から供給される音声データに対して種々の処理を施すことができるものであるが、外部メモリー３のメモリー空間（記憶領域）を複数の分割記憶領域に分割し、それらを別々のリングバッファとして用いたり、複数の分割記憶領域をアクセス幅方向に連続した領域のリングバッファとして用いて、長い遅延時間を稼ぐようにしたりすることができるものである。
【００４０】
以下においては、（１）外部メモリー３のメモリー空間に、複数のリングバッファを形成するようにして用いる場合と、（２）外部メモリー３のメモリー空間に、そのアクセス幅より遅延時間が長いリングバッファを形成して用いる場合とについて具体的に説明する。なお、以下の説明においては、外部メモリー３は、図１４にも示したように、アクセス幅がＮ、データ幅が３２ビットのＮ＊３２ｂｉｔのメモリー空間を持つものであり、ＤＳＰ２は、基本的に、３２ｂｉｔ単位でデータの書き込み、読み出しを行うものである。すなわち、ＤＳＰ２は、３２ビット入出力のものである。
【００４１】
［（１）外部メモリー３に複数のリングバッファを形成する例］
まず、外部メモリー３のメモリー空間に、複数のリングバッファを形成するようにして用いる場合について説明する。図２は、外部メモリー３のメモリー空間に２つのリングバッファを形成し、これらを別々に用いるようにする場合について説明するための図である。図２にも示すように、この実施の形態のオーディオアンプ装置に搭載された外部メモリー３は、アクセス幅がＮ、データ幅が３２ビットであるＮ＊３２ｂｉｔのメモリー空間を持つものである。
【００４２】
そして、通常、音声データは３２ｂｉｔのデータ幅で処理されるが、例えば、左チャンネルの音声信号と右チャンネルの音声信号とのデータ幅を１６ｂｉｔにし、左チャンネルの音声信号と右チャンネルの音声信号とで、異なるリバーブ処理を行わせるようにしたい場合などがある。
【００４３】
このような場合において、ＤＳＰ２は、図２に示したように、外部メモリー３２のメモリー空間を上位側１６ｂｉｔの上位領域（第１メモリー空間）３１と、下位側１６ｂｉｔの下位領域（第２メモリー空間）３２とに分離するようにする。このように、元のメモリー空間内に２つのサーキュラバッファを設けるようにする。
【００４４】
図２から分かるように、上位領域３１、下位領域３２とも、アクセス幅Ｎ、データ幅１６ビットのメモリー空間を持ち、外部メモリー３を２Ｎ＊１６ｂｉｔのメモリー空間として利用ができるようにしている。そして、上位領域３１、下位領域３２のいずれにアクセスする場合にも、アドレスは、通常通り、外部メモリー３のＮ＊３２ｂｉｔのメモリー空間に対するアドレスが用いられる。
【００４５】
そして、図２において点線矢印が示すように、リングバッファとして用いられる上位領域３１と、下位領域３２とにおいて、上位領域３１に対する書き込みアドレスをＷ１、読み出しアドレスをＲ１、遅延量をｎ１で表し、また、下位領域３２に対する書き込みアドレスをＷ２、読み出しアドレスをＲ２、遅延量をｎ２で表すものとする。この場合、書き込みアドレスＷ１、Ｗ２、および、遅延量ｎ１、ｎ２は、オーディオアンプ装置の制御部５、あるいは、ＤＳＰ２により決められて用いられる。
【００４６】
そして、図１４を用いて説明したリングバッファの通常のアクセス時と同様に、ＤＳＰ２が外部メモリー３の上位領域３１上の書き込みアドレスＷ１が示す位置にデータを書き込んだ場合、データの読み出し位置は、図２の左端の読み出しアドレスＲ１が示すように、書き込みアドレスＷ１か示す位置よりも、システムにより決められる遅延量であるｎ１サンプル分だけ遅れた位置となる。したがって、この場合の読み出しアドレスＲ１は、Ｗ１−ｎ１で求められる。
【００４７】
また、ＤＳＰ２が外部メモリー３の下位領域３２上の書き込みアドレスＷ２が示す位置にデータを書き込んだ場合、データの読み出し位置は、図２の右端の読み出しアドレスＲ２が示すように、書き込みアドレスＷ２が示す位置よりも、システムにより決められる遅延量であるｎ２アンプル分だけ遅れた位置となる。したがって、この場合の読み出しアドレスＲ２は、Ｗ２−ｎ２で求められる。
【００４８】
このように、外部メモリー３のメモリー空間を上位領域３１と下位領域３２とに分け、上位領域３１と下位領域３２とで、それぞれ異なる遅延量ｎ１、ｎ２を用いて、２つの異なる遅延処理を同時に並行して行うことができるようにしている。
【００４９】
次に、図２に示した上位領域３１と下位領域３２とをリングバッファとして用い、これらにデータを書き込み、また、読み出す場合の処理について、図３〜図６を参照しながら具体的に説明する。なお、以下で説明する処理で用いるレジスタａ０、ａ１は、いずれも３２ｂｉｔのものである。
【００５０】
まず、上位領域３１をリングバッファとして用いる場合について説明する。図３、図４は外部メモリー３の上位領域３１をリングバッファとして用いる場合の処理を説明するための図であり、図３は、上位領域３１にデータを書き込む場合の処理を、図４は、上位領域３１に書き込まれたデータを読み出す処理を、それぞれ説明するためのものである。
【００５１】
まず、図３を用いて上位領域３１に音声信号を書き込む場合の処理について説明する。図３Ａは、ＤＳＰ２の処理ステップを、また、図３Ｂは、ＤＳＰ２の処理に伴うレジスタａ０、ａ１の変化の状態を示している。
【００５２】
ＤＳＰ２は、まず、図３Ｂ（１）に示すように、書き込みたい１６ｂｉｔデータであるＷＤＴ１をレジスタａ０の上位１６ｂｉｔに格納する（ステップＳ１０１）。次に、ＤＳＰ２は、図３Ｂ（２）に示すように、レジスタａ０の下位１６ｂｉｔを０（ゼロ）にする（ステップＳ１０２）。
【００５３】
そして、ＤＳＰ２は、外部メモリー３の上位領域３１を含む領域であって、データＷＤＴ１を書き込みたい位置（書き込みアドレスＷ１により示される位置）に記録されている１ワード分（３２ｂｉｔ分）のデータ（ＲＤＴ１、ＲＤＴ２）を読み出して、これを、図３Ｂ（３）に示すように、レジスタａ１に格納する（ステップＳ１０３）。
【００５４】
次に、ＤＳＰ２は、図３Ｂ（４）に示すように、外部メモリー３から読み出したデータを格納したレジスタａ１の上位１６ｂｉｔを０（ゼロ）にする（ステップＳ１０４）。そして、ＤＳＰ２は、レジスタａ１に、レジスタａ１とレジスタａ０の和を求める（ステップＳ１０５）。図３ＡのステップＳ１０５においては、和演算記号として「｜」を用いている。
【００５５】
このステップＳ１０５の処理により、図３Ｂ（５）に示すように、レジスタａ１の上位１６ｂｉｔには、外部メモリー３の上位領域３１に書き込みたいデータであるＷＤＴ１がセットされ、レジスタａ１の下位１６ｂｉｔには、外部メモリー３の書き込みアドレスＷ１が示す位置の下位領域３２に記録されているデータＲＤＴ２がセットされた状態となる。
【００５６】
そして、ＤＳＰ２は、レジスタａ１の３２ｂｉｔのデータを、書き込みアドレスＷ１が示す外部メモリー３上の位置に記録する（ステップＳ１０６）。これにより、書き込みアドレスＷ１が示す外部メモリー３上の位置の上位領域３１部分には、書き込みデータＷＤＴ１が記録され、書き込みアドレスＷ１が示す外部メモリー３上の位置の下位領域３２部分には、元の情報のままのデータ（読み出され保護されたデータ）であるデータＲＤＴ２がそのまま記録されることになる。
【００５７】
このようにして、書き込みアドレスＷ１で示される外部メモリー３上の下位領域３２のデータはそのままに、上位領域３１に対してのみ、１６ｂｉｔの目的とする書き込みデータＷＤＴ１を書き込むようにすることができる。
【００５８】
次に、図４を用いて上位領域３１に書き込まれた音声信号を所定時間分遅延させて読み出す処理について説明する。図４Ａは、ＤＳＰ２の処理ステップを、図４Ｂは、ＤＳＰ２の処理に伴うレジスタａ０の変化の状態を示している。
【００５９】
まず、ＤＳＰ２は、上位領域３１についての最新の書き込みアドレスＷ１と上位領域３１をリングバッファとして用いた場合の予め決められる遅延量ｎ１とに基づいて、Ｗ１＋ｎ１なる演算を行い、書き込みアドレスＷ１から所定量分遅延した位置の読み出しアドレスＲ１を特定し、この読み出しアドレスＲ１が示す外部メモリー３上の位置から１ワード（３２ｂｉｔ）分のデータを読み出し、これを図４Ｂ（１）に示すように、レジスタａ０に格納する（ステップＳ２０１）。
【００６０】
次に、ＤＳＰ２は、図４Ｂ（２）に示すように、レジスタａ０の下位１６ｂｉｔを０（ゼロ）クリアーし、上位領域３１に記録されている１６ｂｉｔ分のデータＲＤＴ１のみを利用可能にする（ステップＳ２０２）。
【００６１】
これにより、上位領域３１に記録されたデータであって、書き込みアドレスＷ１から遅延量ｎ１だけ遅延した位置のデータを読み出し、これを利用することができるようにされる。
【００６２】
次に、下位領域３２をリングバッファとして用いる場合について説明する。図５、図６は外部メモリー３の下位領域３２をリングバッファとして用いる場合の処理を説明するための図であり、図５は、下位領域３２にデータを書き込む場合の処理を、図６は、下位領域３２に書き込まれたデータを読み出す処理を、それぞれ説明するためのものである。
【００６３】
まず、図５を用いて下位領域３２に音声信号を書き込む場合の処理について説明する。この図５においても、図３に示した場合と同様に、図５Ａは、ＤＳＰ２の処理ステップを、図５Ｂは、ＤＳＰ２の処理に伴うレジスタａ０、ａ１の変化の状態を示している。
【００６４】
ＤＳＰ２は、まず、図５Ｂ（１）に示すように、書き込みたい１６ｂｉｔデータであるＷＤＴ２をレジスタａ０の下位１６ｂｉｔに格納する（ステップＳ３０１）。次に、ＤＳＰ２は、図５Ｂ（２）に示すように、レジスタａ０の上位１６ｂｉｔを０（ゼロ）にする（ステップＳ３０２）。
【００６５】
そして、ＤＳＰ２は、外部メモリー３の下位領域３２を含む領域であって、データＷＤＴ２を書き込みたい位置（図２において書き込みアドレスＷ２により示される位置）に記録されている１ワード分（３２ｂｉｔ分）のデータ（ＲＤＴ１、ＲＤＴ２）を読み出して、これを、図５Ｂ（３）に示すように、レジスタａ１に格納する（ステップＳ３０３）。
【００６６】
次に、ＤＳＰ２は、図５Ｂ（４）に示すように、レジスタａ１の下位１６ｂｉｔを０（ゼロ）にする（ステップＳ３０４）。そして、ＤＳＰ２は、レジスタａ１に、レジスタａ１とレジスタａ０の和を求める（ステップＳ３０５）。図５ＡのステップＳ３０５においては、和演算記号として「｜」を用いている。
【００６７】
このステップＳ３０５の処理により、レジスタａ１には、図５Ｂ（５）に示すように、レジスタａ１の下位１６ｂｉｔには、外部メモリー３の下位領域３２に書き込みたいデータであるＷＤＴ２がセットされ、レジスタａ１の上位１６ｂｉｔには、外部メモリー３の書き込みアドレスＷ２が示す位置の上位領域３１に記録されているデータＲＤＴ１がセットされた状態となる。
【００６８】
そして、ＤＳＰ２は、レジスタａ１の３２ｂｉｔのデータを、書き込みアドレスＷ２が示す外部メモリー３上の位置に記録する（ステップＳ３０６）。これにより、書き込みアドレスＷ２が示す外部メモリー３上の位置の下位領域３２部分には、書き込みデータＷＤＴ２が記録され、書き込みアドレスＷ２が示す外部メモリー３上の位置の上位領域３１部分には、元の情報のままのデータ（読み出され保護されたデータ）であるデータＲＤＴ１がそのまま記録されることになる。
【００６９】
このようにして、書き込みアドレスＷ２で示される外部メモリー３上の上位領域３２のデータはそのままに、下位領域３２に対してのみ、１６ｂｉｔの目的とする書き込みデータＷＤＴ２を書き込むようにすることができる。
【００７０】
次に、図６を用いて下位領域３２に書き込まれた音声信号を所定時間分遅延させて読み出す処理について説明する。図６においても、上述した図４の場合と同様に、図６Ａは、ＤＳＰ２の処理ステップを、図６Ｂは、ＤＳＰ２の処理に伴うレジスタａ０の変化の状態を示している。
【００７１】
まず、ＤＳＰ２は、下位領域３２についての最新の書き込みアドレスＷ２と下位領域３２をリングバッファとして用いた場合の予め決められる遅延量ｎ２とに基づいて、Ｗ２＋ｎ２なる演算を行い、書き込みアドレスＷ２から所定量分遅延した位置の読み出しアドレスＲ２を特定し、この読み出しアドレスＲ２が示す外部メモリー３上の位置から１ワード（３２ｂｉｔ）分のデータを読み出し、これを図６Ｂ（１）に示すように、レジスタａ０に格納する（ステップＳ４０１）。
【００７２】
次に、ＤＳＰ２は、図６Ｂ（２）に示すように、レジスタａ０の３２ｂｉｔのデータを左に（上位方向に）１６ｂｉｔ分シフトする（ステップＳ４０２）。そしてＤＳＰ２は、レジスタａ０の下位１６ｂｉｔを０（ゼロ）クリアーし、下位領域３２に記録されている１６ｂｉｔ分のデータＲＤＴ２のみを利用可能にする（ステップＳ４０３）。
【００７３】
これにより、下位領域３１に記録されたデータであって、書き込みアドレスＷ２から遅延量ｎ２だけ遅延した位置のデータを読み出し、これを利用することができるようにされる。
【００７４】
このように、外部メモリー３の上位領域３１と下位領域３２とを別々のリングバッファとして用いて、２つの異なるデータについてそれぞれ異なる遅延量で遅延処理を行うようにすることができる。しかも、上位領域３１に対してアクセスする場合も、また、下位領域３２に対してアクセスする場合にも、外部メモリー３についてのアドレス制御で、外部メモリー３上の適切な位置にデータを書き込むとともに、適切な位置からデータを読み出して利用することができるようにされる。
【００７５】
そして、図３〜図６を用いて説明したように、外部メモリー３を上位領域３１、下位領域３２の２つの領域に分けて、それぞれを別々のリングバッファとして用いるようにすることは、上述もしたように、例えば、左右２チャンネルの音声信号を処理する場合であって、左チャンネルの音声信号と右チャンネルの音声信号とで、異なるリバーブ処理を行わせるようにするなどのことが、メモリーを追加搭載することなく容易に可能となる。
【００７６】
例えば、図７の概念図に示すように、外部メモリー３の上位領域３１を左チャンネル音声用とし、外部メモリー３の下位領域３２を右チャンネル音声として用いるようにする。図７において、記号ｉｎ−Ｌ、記号ｏｕｔ−Ｌは左チャンネル用の入力端、出力端を示し、記号ｉｎ−Ｒ、記号ｏｕｔ−Ｒは右チャンネル用の入力端、出力端を示している。
【００７７】
そして、左チャンネルの音声データについては、書き込みアドレスＷＬに基づいて、外部メモリー３の上位領域３１に記録する。この上位領域３１からデータを読み出す場合には、書き込みアドレスＷ１より予め決められる遅延量ｎ１だけ遅れた位置（ＷＬ−ｎ１）からデータを読み出し、その上位領域に記録されていたデータだけを出力して利用できるようにする。
【００７８】
また、遅延量ｎ１１、ｎ１２というように、遅延量を複数設定することにより、そのいずれかを用いて、あるいは、それらを併用して、左チャンネルの音声データについて遅延処理を施し、遅延処理を施した左チャンネルの音声データを出力端ｏｕｔ−Ｌから出力して利用することが可能である。
【００７９】
右チャンネルの音声データについても同様に、書き込みアドレスＷＲに基づいて、外部メモリー３の下位領域３２に記録する。この下位領域３２からデータを読み出す場合には、書き込みアドレスＷ２より予め決められる遅延量ｎ２だけ遅れた位置（ＷＲ−ｎ２）からデータを読み出し、その下位領域に記録されていたデータだけを出力して利用できるようにする。
【００８０】
また、遅延量ｎ２１、ｎ２２というように、遅延量を複数設定することにより、そのいずれかを用いて、あるいは、それらを併用して、右チャンネルの音声データについて遅延処理を施し、この遅延処理を施した右チャンネルの音声データを出力端ｏｕｔ−Ｒから出力して利用することが可能である。
【００８１】
なお、この例においては、図２に示したように、上位領域３１、下位領域３２は、それぞれアクセス幅がアドレス０（最小値）〜アドレスＮ（最大値）までの幅となるようにしたが、これに限るものではない。例えば、図８Ａに示すように、上位領域３１のアクセス幅を下位領域３２のアクセス幅より狭くなるようにしたり、図８Ｂに示すように、下位領域３２のアクセス幅を上位領域３１のアクセス幅より狭くなるようにしたりすることも可能である。
【００８２】
この図８に示した例の場合、図８Ａにおいて、上位領域３１の斜線で示したエリアが、リングバッファとしては用いられないエリアを示し、また、図８Ｂに置いて、下位領域３２の斜線で示したエリアが、リングバッファとしては用いられないエリアを示しており、上位領域３１と下位領域３２とでは、それぞれアドレスの最大値が異なるようにされる。
【００８３】
このようにすることによって、リングバッファとして用いられない斜線部で示したエリアを例えば作業領域として用いるなど、他の用途に用いるなどのことができるようにされる。
【００８４】
また、上述の説明においては、ＤＳＰ２は、３２ｂｉｔ入出力のものであり、３２ｂｉｔ単位でデータの書き込み、読み出しを行うため、図３〜図６に示したように、上位領域３１を用いる場合には、下位領域３２に対していわゆるマスキングを施すようにし、下位領域３２を用いる場合には、上位領域３１に対していわゆるマスキングを施すものとして説明した。しかし、これに限るものではない。
【００８５】
ＤＳＰ２が、上位領域３１と下位領域３２とに対して別々にアクセス可能なものであれば、上位領域３１のみを対象としてデータの書き込み、読み出しを行うようにし、また、下位領域３２のみを対象としてデータの書き込み、読み出しを行うようにてもよい。この場合には、アドレス制御の方法は、変わることはないし、マスキング処理の必要もない。
【００８６】
なお、上述の説明から分かるように、この例の場合には、ＤＳＰ２において実行されるソフトウエアによって、分割手段、領域指示手段、アドレス制御手段を実現するようにしている。
【００８７】
また、例えば、３２ｂｉｔの音声信号を１６ｂｉｔに変換するなどの機能も、ＤＳＰ２が行うものとして説明したが、これに限るものではない。ＤＳＰ２の前段にｂｉｔ変換回路を設けて、このｂｉｔ変換回路が制御部５の制御により必要に応じて行う構成とすることも可能である。
【００８８】
また、ここでは、図２に示したように、外部メモリー３の記憶領域を上位領域３１と下位領域３２との２つの分割記憶領域に分割するものとして説明したが、これに限るものではない。目的とするデータ幅が確保可能である範囲内で、外部メモリー３の記憶領域を２つ以上の任意の個数の分割記憶領域に分割し、それらを別個のリングバッファとして用いるようにすることができる。
【００８９】
［（２）外部メモリー３にアクセス幅より遅延時間の長いリングバッファを形成する例］
次に、外部メモリー３の記憶領域に、外部メモリー３のメモリー空間のアクセス幅より遅延時間が長いリングバッファを形成して用いる場合について説明する。図９、図１０は、外部メモリー３にこの外部メモリー３のメモリー空間のアクセス幅よりも遅延時間の長いリングバッファを形成して用いる場合を説明するための図である。
【００９０】
上述もし、また、図９、図１０にも示すように、この実施の形態のオーディオアンプ装置の外部メモリー３は、アクセス幅がＮ、データ幅が３２ビットであるＮ＊３２ｂｉｔのメモリー空間を持つものであり、この例の場合にも、図２に示した例の場合と同様に、外部メモリー３の記憶領域を上位領域（上位１６ｂｉｔの領域）３１と下位領域（下位１６ｂｉｔの領域）３２とに分割する。
【００９１】
そして、図９Ａにおいて、点線矢印が示すように、まず、上位領域３１のアドレスＮから負の方向にデータを書き込むようにし、上位領域３１のアドレス０までデータを書き込み終えると、次には、下位領域３２のアドレスＮから負の方向にデータを書き込むようにし、下位領域３２のアドレス０までデータを書き込み終えると、再度、上位領域３１のアドレスＮから負の方向にデータを書き込むようにする。
【００９２】
このようにすることにより、データ幅が１６ｂｉｔでアクセス幅が２Ｎのリングバッファを外部メモリー３のメモリー空間に形成する。そして、この図９Ａに示したリングバッファの場合にも、図２に示した例の場合と同様に、上位領域３１と下位領域３２とに対してデータを書き込んで行くことになるので、図３、図４に示した処理と同様にしてデータの書き込みを行うようにする。
【００９３】
つまり、アドレス制御は、外部メモリー３をデータ幅が３２ｂｉｔとして用いる場合と何ら変わるところはない。しかし、上位領域３１に対するデータの書き込みか、下位領域３２に対するデータの書き込みかを区別するとともに、上位領域３１に対するデータの書き込みの場合には、その同じアドレスの下位領域３２のデータは変更しないように保護し、下位領域３２に対するデータの書き込みの場合には、その同じアドレスの上位領域３１のデータは変更しないように保護するようにする。このようにすることにより、上位領域３１と下位領域３２とをアクセス幅方向に連続するリングバッファとして用いることができる。
【００９４】
この場合に、遅延データの読み出しエリアが、上位領域３１か下位領域３２かは、データの現在の書き込み位置に応じて異なることになる。また、読み出しアドレスの求め方も、データの書き込み位置と読み出し位置との位置関係で異なったものとなる。このため、この実施の形態においては、既知の値である外部メモリー３の最大アドレスと、書き込みアドレスと、遅延量とで表される関係に基づいて、読み出しアドレスを簡単かつ正確に求めるようにしている。
【００９５】
この例の場合にも、外部メモリー３の最大アドレスをＮ、書き込みアドレスをＷ、遅延量をｎ、読み出しアドレスをＲで表すこととする。ここで、外部メモリー３の最大アドレスＮは固定値であり、遅延量ｎも処理に応じて固定的に定まる値である。また、書き込みアドレスＷはＤＳＰ２によって制御されるものである。
【００９６】
そして、図９Ｂに示すように、最大アドレスＮから現在の書き込みアドレス（最新書き込みアドレス）Ｗを減算するようにした値が、遅延量ｎ以上である場合、すなわち、図９Ｂに示すように、ｎ≦Ｎ−Ｗの関係が維持されている場合には、データの書き込み位置と読み出し位置とは同じエリアに位置し、かつ、読み出し位置は、書き込み位置より正の方向にずれた位置にある状態にあることが分かる。
【００９７】
そこで、書き込み位置と読み出し位置とが、図９Ｂに示す位置関係にあることが判明した場合には、読み出し位置を示す読み出しアドレスＲは、書き込みアドレスＷに遅延量ｎを加算した値、すなわち、Ｒ＝Ｗ＋ｎで求められる。なお、図９Ｂは、上位領域３１に書き込み位置と読み出し位置とが存在する場合について示しているが、下位領域３２に書き込み位置と読み出し位置とが存在する場合についても同様である。
【００９８】
また、図１０Ａに示すように、遅延量ｎが、最大アドレスＮから現在の書き込みアドレスＷを減算するようにした値よりも大きく、かつ、最大アドレスＮの２倍から現在の書き込みアドレスＷを減算するようにした値以下である場合、すなわち、図１０Ａに示すように、Ｎ−Ｗ＜ｎ≦２＊Ｎ−Ｗの関係が維持されている場合には、データの書き込み位置と読み出し位置とは、異なるエリア、すなわち、上位領域３１と下位領域３２とに別々に存在している状態であることが分かる。
【００９９】
そこで、書き込み位置と読み出し位置とが、図１０Ａに示す位置関係にあることが判明した場合には、読み出し位置を示す読み出しアドレスＲは、書き込みアドレスＷに遅延量ｎを加算し、ここからさらに最大アドレスＮを減算することにより得た値、すなわち、Ｒ＝Ｗ＋ｎ−Ｎで求めることができるようにされる。
【０１００】
すなわち、この図１０Ａの場合には、遅延量ｎは、図１０Ａにも示したように、ｎ１＋ｎ２で求められ、遅延量ｎから最大アドレスＮを減算することにより、元のアクセス幅（アドレス０〜アドレスＮまでの幅）に対する書き込み位置から読み出し位置までの距離量が求められ、この距離量を書き込みアドレスＷに加算することにより、読み出しアドレスＲが求まるのである。
【０１０１】
なお、図１０Ａは、上位領域３１に書き込み位置が存在し、下位領域３２に読み出し位置が存在する場合について示しているが、これとは逆に、上位領域３１に読み出し位置が存在し、下位領域３２に書き込み位置が存在する場合についても同様である。
【０１０２】
また、図１０Ｂに示すように、遅延量ｎが、最大アドレスＮの２倍から現在の書き込みアドレスＷを減算するようにした値よりも大きく、かつ、最大アドレスＮの２倍の値以下である場合、すなわち、図１０Ｂに示すように、２＊Ｎ−Ｗ＜ｎ≦２＊Ｎの関係が維持されている場合には、データの書き込み位置と読み出し位置とは同じエリアに位置し、かつ、読み出し位置は、書き込み位置より負の方向にずれた位置にある状態にあることが分かる。
【０１０３】
そこで、書き込み位置と読み出し位置とが、図１０Ｂに示す位置関係にあることが判明した場合には、読み出し位置を示す読み出しアドレスＲは、最大アドレスの２倍から遅延量ｎを減算して得た値を、書き込みアドレスＷから減算することにより得た値、すなわち、Ｒ＝Ｗ−（２＊Ｎ−ｎ）で求めることができるようにされる。
【０１０４】
すなわち、この図１０Ｂの場合には、遅延量ｎは、図１０Ｂにも示したように、ｎ１＋ｎ２＋ｎ３で求められ、最大アドレスＮの２倍の値から遅延量ｎを減算することにより、元のアクセス幅（アドレス０〜アドレスＮまでの幅）に対する書き込み位置から読み出し位置までの距離量が求められ、この距離量を書き込みアドレスＷから減算することにより、読み出しアドレスＲが求まるのである。
【０１０５】
なお、図１０Ｂは、上位領域３１に書き込み位置と読み出し位置とが存在する場合について示しているが、下位領域３２に書き込み位置と読み出し位置とが存在する場合についても同様である。
【０１０６】
このように、外部メモリー３のメモリー空間を上位領域３１と下位領域３２とに分け、これらをアクセス幅方向に連続したメモリー空間として用いて、より長い遅延時間を得ることが可能なリングバッファを形成するようにして用いることができる。
【０１０７】
次に、図９Ａに示したように、外部メモリー３のメモリー空間の上位領域３１と下位領域３２とをアクセス幅方向に連続するリングバッファとして用い、これらにデータを書き込み、また、読み出す場合の処理について、図１１〜図１２を参照しながら具体的に説明する。なお、この例においても、レジスタａ０、ａ１は、いずれも３２ｂｉｔのものである。
【０１０８】
まず、図１１を参照しながら、図９Ａに示したように、外部メモリー３のメモリー空間の上位領域３１と下位領域３２とをアクセス幅方向に連続させるようにして形成するようにされるリングバッファへのデータの書き込み処理について説明する。この図１１に示す処理も、ＤＳＰ２により実行される。
【０１０９】
ＤＳＰ２は、まず、データを書き込もうとする外部メモリー３の位置は、上位領域３１か下位領域３２かを決定するとともに、データの書き込み位置を示す書き込みアドレスを決定する（ステップＳ５０１）。そして、ＤＳＰ２は、今回の書き込み処理は、上位領域３１への書き込みか、下位領域３２への書き込みかを判断する（ステップＳ５０２）。
【０１１０】
ステップＳ５０２の判断処理において、上位領域３１への書き込みであると判断したときには、ＤＳＰ２は、図３を用いて上述したステップＳ１０１からステップＳ１０６の処理を実行することにより、外部メモリー３の上位領域３１へのデータの書き込み処理を行う（ステップＳ５０３）。
【０１１１】
また、ステップＳ５０２の判断処理において、下位領域３２への書き込みであると判断したときには、ＤＳＰ２は、図５を用いて上述したステップＳ３０１からステップＳ３０６の処理を実行することにより、外部メモリー３の下位領域３２へのデータの書き込み処理を行う（ステップＳ５０４）。
【０１１２】
ステップＳ５０３、ステップＳ５０４の処理の後、データの書き込み処理を終了する。このようにして、データの書き込み処理は、上位領域３１への書き込みか、下位領域３２への書き込みかを制御するとともに、外部メモリー３についてのアドレス制御を行うことにより、図９Ａに示したように構成されるリングバッファに対してデータを書き込むことができる。
【０１１３】
次に、図１２を用いて図９Ａに示したように構成されるリングバッファに書き込まれたデータを所定時間分遅延させて読み出す処理について説明する。この図１２に示す処理も、ＤＳＰ２により行われる処理である。
【０１１４】
まず、ＤＳＰ２は、書き込み位置から読み出し位置までの距離量である遅延量ｎを特定する（ステップＳ６０１）。そして、ＤＳＰ２は、図９Ｂを用いて説明したように、遅延量ｎは、最大アドレスＮから書き込みアドレスＷを減算することにより得た値以下か否かを判断する（ステップＳ６０２）。すなわち、ステップＳ６０２の判断処理は、ｎ≦Ｎ−Ｗの関係が成り立つか否かを判断する処理である。
【０１１５】
ステップＳ６０２の判断処理において、ｎ≦Ｎ−Ｗの関係が成り立つと判断したときには、ＤＳＰ２は、読み出しアドレスＲとして、書き込みアドレスＷに遅延量を加算することにより得た値を読み出しアドレスＲとする（ステップＳ６０３）。
【０１１６】
ステップＳ６０２の判断処理において、ｎ≦Ｎ−Ｗは成り立たないと判断したときには、ＤＳＰ２は、図１０Ａを用いて説明したように、遅延量ｎは、最大アドレスＮから書き込みアドレスＷを減算することにより得た値より大きく、かつ、最大アドレスの２倍から書き込みアドレスＷを減算することにより得た値以下か否かを判断する（ステップＳ６０４）。すなわち、ステップＳ６０４の判断処理は、Ｎ−Ｗ＜ｎ≦２＊Ｎ−Ｗの関係が成り立つか否かを判断する処理である。
【０１１７】
ステップＳ６０４の判断処理において、Ｎ−Ｗ＜ｎ≦２＊Ｎ−Ｗの関係が成り立つと判断したときには、ＤＳＰ２は、書き込みアドレスＷに遅延量ｎを加算して得た値から最大アドレスＮを減算して得た値を読み出しアドレスＲとする（ステップＳ６０５）。
【０１１８】
ステップＳ６０４の判断処理において、Ｎ−Ｗ＜ｎ≦２＊Ｎ−Ｗの関係が成り立たないと判断したときには、ＤＳＰ２は、遅延量ｎは、最大アドレスＮの２倍から書き込みアドレスを減算して得た値より大きく、かつ、最大アドレスの２倍以下の状態、すなわち、図１０Ｂに示した状態にあると判断し、最大アドレスＮの２倍から遅延量ｎを減算した値を書き込みアドレスＷから減算して得た値を読み出しアドレスＲとする（ステップＳ６０６）。
【０１１９】
ステップＳ６０３、または、ステップＳ６０５、または、ステップＳ６０６の読み出しアドレスＲの算出処理の後、ＤＳＰ２は、読み出しアドレスＲで示される外部メモリー３上の位置から１ワード分（上位領域３１と下位領域３２とを合わせた３２ｂｉｔ分）のデータを読み出し、これをレジスタａ０に格納する（ステップＳ６０７）。
【０１２０】
次に、ＤＳＰ２は、遅延処理の対象のデータは、上位領域３１のデータか否かを判断し（ステップＳ６０８）、上位領域３１のデータであると判断したときには、レジスタａ０の下位１６ｂｉｔを０（ゼロ）クリアーし、上位領域３１から読み出したデータを利用可能にして、この図１２に示す処理を終了する。
【０１２１】
また、ステップＳ６０８の判断処理において、遅延処理の対象のデータは、上位領域３１のデータではないと判断したときには、レジスタａ０のデータを左に１６ｂｉｔシフトし、下位１６ｂｉｔを０（ゼロ）クリアーし、下位領域３２から読み出したデータを利用可能にして、この図１２の処理を終了する。
【０１２２】
このように、外部メモリー３のメモリー空間を上位領域３１と下位領域３２とに分割し、これらをアクセス幅方向に連続する記憶領域として、より長い遅延時間を実現するリングバッファを形成するようにしてこれを用いることができるようにされる。
【０１２３】
なお、この例においても、ＤＳＰ２は、３２ｂｉｔ入出力のものであり、３２ｂｉｔ単位でデータの書き込み、読み出しを行うため、上位領域３１を用いる場合には、下位領域３２に対していわゆるマスキングを施すようにし、下位領域３２を用いる場合には、上位領域３１に対していわゆるマスキングを施すものとして説明した。しかし、これに限るものではない。
【０１２４】
ＤＳＰ２が、上位領域３１と下位領域３２とに対して別々にアクセス可能なものであれば、上位領域３１のみを対象としてデータの書き込み、読み出しを行うようにし、また、下位領域３２のみを対象としてデータの書き込み、読み出しを行うようにてもよい。この場合には、アドレス制御の方法は、変わることはないし、また、マスキング処理の必要もない。
【０１２５】
また、上述の説明から分かるように、この例の場合には、ＤＳＰ２で実行されるソフトウエアにより、分割手段、アドレス制御手段を実現するようにしている。
【０１２６】
また、この例の場合にも、データ幅は、外部メモリー３の元のデータ幅より狭くなる。したがって、処理対象のデータのｂｉｔ長が３２ｂｉｔである場合などにおいては、これをｂｉｔ長が１６ｂｉｔのデータに変換するなどの必要が生じ、このような機能も、ＤＳＰ２が行うようにすることができる。もちろん、これに限るものではなく、ＤＳＰ２の前段にｂｉｔ変換回路を設けて、このｂｉｔ変換回路が制御部５の制御により必要に応じて行う構成とすることも可能である。
【０１２７】
また、この例においても、図９、図１０に示したように、外部メモリー３のメモリー空間を上位領域３１と下位領域３２との２つの分割記憶領域に分割するものとして説明したが、これに限るものではない。目的とするデータ幅が確保可能である範囲内で、外部メモリー３の記憶領域を２つ以上の任意の個数の分割記憶領域に分割し、それらをアクセス幅方向に連続するメモリー空間を有するリングバッファとして用いるようにすることができる。
【０１２８】
すなわち、（１）外部メモリー３のメモリー空間に、複数のリングバッファを形成するようにして用いる場合と、（２）外部メモリー３のメモリー空間に、そのアクセス幅より遅延時間が長いリングバッファを形成して用いる場合との両方において、外部メモリー３のメモリー空間の分割は、図１３Ａに示すように、任意の偶数個に分割するようにしてもよいし、また、図１３Ｂに示すように、任意の奇数個に分割するようにしてもよい。
【０１２９】
また、データ幅を各分割記憶領域毎に異ならせて用いるようにすることもできる。例えば、左チャンネル、センターチャンネル、右チャンネルの３チャンネルがある場合に、左右のチャンネル用の分割記録領域のデータ幅を８ビットとし、センターチャンネル用の分割記録領域のデータ幅を１６ビットとするようにして、メモリー空間をできるだけ有効に活用するようにすることもできる。
【０１３０】
もちろん、上述のように、複数の分割記憶領域の幾つかは、同じデータ幅となるようにしてもよいし、各分割記憶領域毎にデータ幅を異ならせるようにすることももちろんできる。また、各分割領域のアクセス幅を異ならせようにしてもよいことは、図８を用いて上述した通りである。
【０１３１】
なお、上述の実施の形態においては、外部メモリー３は、アクセス幅がＮ、データ幅が３２ｂｉｔのメモリー空間を有するものとして説明したが、これに限るものではない。アクセス幅、データ幅とも任意のものを用いることができる。
【０１３２】
また、上述した実施の形態においては、この発明をオーディオアンプ装置に適用した場合を例にして説明したが、これに限るものではない。ＣＤプレーヤやＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）プレーヤなどの種々の音声データの再生機や記録再生機など、種々のオーディオ機器に適用可能であるし、また、オーディオ機器だけでなく、データの遅延処理を行うようにする種々の電子機器に適用可能であることは言うまでもない。
【０１３３】
しかし、この発明をオーディオ機器に適用した場合には、リバーブ処理等の各種のエフェクト処理や、各種のフィルタ処理を従来よりもメモリーを用いることなく、効果的に、かつ、安価に実現することが可能になるななど、その効果は大きなものとなる。
【０１３４】
【発明の効果】
以上、説明したように、この発明によれば、リングバッファとして用いるメモリーの容量を大きくするなどのことなく、リングバッファとして用いる１つのメモリーを複数のリングバッファとして用いたり、また、より長い遅延量を確保したりすることができる。
【図面の簡単な説明】
【図１】この発明により方法、装置の一実施の形態が適用されたオーディオアンプ装置を説明するためのブロック図である。
【図２】この発明による方法の一実施の形態であって、外部メモリー３の記憶領域に２つのリングバッファを形成し、これらを別々に用いるようにする場合について説明するための図である。
【図３】外部メモリー３の記憶領域に２つのリングバッファを形成し、一方のリングバッファにデータを記録する場合の処理を説明するためのフローチャートである。
【図４】外部メモリー３の記憶領域に２つのリングバッファを形成し、一方のリングバッファに記録されたデータを読み出す場合の処理を説明するためのフローチャートである。
【図５】外部メモリー３の記憶領域に２つのリングバッファを形成した場合の他方のリングバッファにデータを記録する場合の処理を説明するためのフローチャートである。
【図６】外部メモリー３の記憶領域に２つのリングバッファを形成した場合の他方のリングバッファに記録されたデータを読み出す場合の処理を説明するためのフローチャートである。
【図７】外部メモリー３の記憶領域に２つのリングバッファの利用例を説明するための図である。
【図８】外部メモリー３の記憶領域に２つのリングバッファを形成する場合の他の例を説明するための図である。
【図９】外部メモリー３のメモリー空間に、そのアクセス幅より遅延時間が長いリングバッファを形成して用いる場合を説明するための図である。
【図１０】外部メモリー３のメモリー空間に、そのアクセス幅より遅延時間が長いリングバッファを形成して用いる場合を説明するための図である。
【図１１】外部メモリー３のメモリー空間に、そのアクセス幅より遅延時間が長いリングバッファを形成して用いる場合のデータの書き込み処理を説明するためのフローチャートである。
【図１２】外部メモリー３のメモリー空間に、そのアクセス幅より遅延時間が長いリングバッファを形成して用いる場合のデータの読み出し処理を説明するためのフローチャートである。
【図１３】外部メモリーのメモリー空間への分割記憶領域の形成例について説明するための図である。
【図１４】従来のリングバッファの利用例を説明するための図である。
【符号の説明】
ｉｎ…デジタルオーディオ信号の入力端子、１…音声データデコード部、２…ＤＳＰ、３…外部メモリー（ＳＲＡＭ）、４Ｌ…左チャンネルスピーカ、４Ｒ…右チャンネルスピーカ、５…制御部、５１…ＣＰＵ、５２…ＲＯＭ、５３…ＲＡＭ，５４…不揮発性メモリー、６…キー操作部
【図１】
2004318467.tif 000003
【図２】
2004318467.tif 000004
【図３】
2004318467.tif 000005
【図４】
2004318467.tif 000006
【図５】
2004318467.tif 000007
【図６】
2004318467.tif 000008
【図７】
2004318467.tif 000009
【図８】
2004318467.tif 000010
【図９】
2004318467.tif 000011
【図１０】
2004318467.tif 000012
【図１１】
2004318467.tif 000013
【図１２】
2004318467.tif 000014
【図１３】
2004318467.tif 000015
【図１４】
2004318467.tif 000016