(57)【要約】【課題】時間及び周波数領域においてデジタルデータを処理する方法及びシステムを提供する。【解決手段】デジタルサンプルを処理する方法及びデジタルプロセッサ。プロセッサは、時間領域でデジタルサンプルを処理する時間領域処理エンジンと、周波数領域でデジタルサンプルを処理する周波数領域処理エンジンとを含むことができる。プロセッサ内には共有メモリが設けられ、これを用いて時間領域及び周波数領域処理済みサンプルが交換可能になる。時間領域処理エンジンは、サンプル毎の方式でデータサンプルを処理することができ、周波数領域処理エンジンは、ブロックベース方式でデータサンプルを処理することができる。処理エンジンは、単一ＤＳＰチップ内に統合することができる。割り込みを発生する割り込み発生器が設けられ、入力バッファは、割り込みに応答して入力データサンプルをプロセッサに通信し、出力バッファは、割り込みに応答して出力データサンプルをデジタルサンプルバスに通信する。【選択図】図１
2008504572.tif 000002
【特許請求の範囲】
【請求項１】
デジタルサンプルを処理するデジタルプロセッサであって、
時間領域でデジタルサンプルを処理する時間領域処理エンジンと、
周波数領域でデジタルサンプルを処理する周波数領域処理エンジンと、
時間領域処理済みサンプルと周波数領域処理済みサンプルを交換可能にするデジタルプロセッサに設けられた共有メモリと、
を含むことを特徴とするプロセッサ。
【請求項２】
前記時間領域処理エンジンは、サンプル毎の方式でデータサンプルを処理し、前記周波数領域処理エンジンは、ブロックベース方式でデータサンプルを処理することを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記時間領域処理エンジン及び前記周波数領域処理エンジンは、デジタル信号プロセッサ（ＤＳＰ）チップ内に統合されることを特徴とする請求項１に記載のプロセッサ。
【請求項４】
前記共有メモリは、前記ＤＳＰチップ上に設けられたＸ及びＹランダムアクセスメモリ（ＲＡＭ）であることを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記デジタルサンプルをプロセッサに供給し、かつプロセッサから処理済みデジタルサンプルを受信するデジタルサンプルバスにプロセッサをインタフェースで接続する少なくとも１つの入力／出力バッファを含むことを特徴とする請求項１に記載のプロセッサ。
【請求項６】
前記デジタルサンプルバスは、サンプル同期しているデジタル音声バス及びデジタル映像バスの一方であることを特徴とする請求項５に記載のプロセッサ。
【請求項７】
前記デジタルサンプルバスは、プロセッサに対してデータサンプルを供給し、かつデータサンプルを受信する複数のタイムスロットで前記デジタルサンプルを通信することを特徴とする請求項６に記載のプロセッサ。
【請求項８】
前記デジタルサンプルバスからデータサンプルを受信する入力バッファと、該デジタルサンプルバスにデータサンプルを供給する出力バッファとを含むことを特徴とする請求項５に記載のプロセッサ。
【請求項９】
前記入力バッファ及び出力バッファは、ピンポンバッファであることを特徴とする請求項８に記載のプロセッサ。
【請求項１０】
前記デジタルサンプルバスに基づいて割り込みを発生する割り込み発生器を含み、
前記入力バッファは、前記割り込みに応答して入力データサンプルをプロセッサに通信し、前記出力バッファは、該割り込みに応答して出力データサンプルを前記デジタルサンプルバスに通信する、
ことを特徴とする請求項９に記載のプロセッサ。
【請求項１１】
デジタルサンプルは、サンプル毎のベースで前記ＤＳＰと前記デジタルサンプルバスの間で交換されることを特徴とする請求項５に記載のプロセッサ。
【請求項１２】
スレッドインターリーブ・デジタル信号プロセッサ（ＤＳＰ）であり、
デジタルサンプルは、前記共有メモリを通じて前記時間領域処理エンジンのスレッドと前記周波数領域処理エンジンの間で交換可能である、
ことを特徴とする請求項１に記載のプロセッサ。
【請求項１３】
入力バッファ及び出力バッファを含み、
デジタルサンプルバスから、プロセッサに割り当てられた該デジタルサンプルバスの少なくとも１つのタイムスロットに供給されるデジタルサンプルを処理のために選択的に抽出し、
処理済みデジタルサンプルをその割り当てられたタイムスロット内に選択的に挿入し、
受信しかつ他の処理装置に関連するデジタルサンプルを前記デジタルサンプルバスに沿って不変のまま受け渡す、
ことを特徴とする請求項１に記載のプロセッサ。
【請求項１４】
サンプル毎の方式でデジタルサンプルバスからデジタルサンプルを蓄積し、
デジタルサンプルのブロックを受信した時を識別し、
完全なブロックを受信した時に前記周波数領域で該ブロックを処理し、
サンプル毎の方式で前記デジタルサンプルバスにサンプルの処理済みブロックを通信する、
ことを特徴とする請求項１に記載のプロセッサ。
【請求項１５】
周波数領域処理が、フォアグラウンドルーチンにおいて実行され、時間領域処理が、割り込みに応答して入るバックグラウンドルーチンにおいて実行されることを特徴とする請求項１に記載のプロセッサ。
【請求項１６】
前記デジタルサンプルバスは、リング構成に配列された時分割多重化バスであることを特徴とする請求項１５に記載のプロセッサ。
【請求項１７】
前記デジタルサンプルバスは、
時分割多重化タイムスロットによって形成された複数のメディアチャンネルと、
プロセッサへの各メディアチャンネルを識別するチャンネル識別データを含むチャンネル識別経路と、
を含む、
ことを特徴とする請求項１６に記載のプロセッサ。
【請求項１８】
各チャンネルからのデジタルサンプルがプロセッサによって受信された時を識別する識別子を含み、
前記割り込みは、前記識別子に応答して発生される、
ことを特徴とする請求項１７に記載のプロセッサ。
【請求項１９】
デジタル音声処理装置の超大規模集積（ＶＬＳＩ）回路に設けられていることを特徴とする請求項１に記載のプロセッサ。
【請求項２０】
デジタルプロセッサにおいてデータサンプルを処理する方法であって、
デジタルプロセッサに設けられた共有メモリにデータサンプルを格納する段階と、
前記共有メモリに供給されたデジタルサンプルを時間領域で処理する段階と、
前記共有メモリに供給されたデジタルサンプルを周波数領域で処理する段階と、
を含み、
時間領域処理済みサンプル及び周波数領域処理済みサンプルは、前記共有メモリを通じて交換可能である、
ことを特徴とする方法。
【請求項２１】
時間領域処理段階中に、データサンプルは、サンプル毎の方式で処理され、前記周波数領域では、データサンプルは、ブロックベース方式で処理されることを特徴とする請求項２０に記載の方法。
【請求項２２】
前記時間領域のデータサンプル及び前記周波数領域データを単一の集積デジタル信号プロセッサ（ＤＳＰ）チップ内で処理する段階を含むことを特徴とする請求項２０に記載の方法。
【請求項２３】
前記共有メモリは、前記ＤＳＰチップ上に設けられたＸ及びＹランダムアクセスメモリ（ＲＡＭ）であり、
前記ＲＡＭと時間領域処理エンジンの間及び該ＲＡＭと周波数領域処理エンジンの間でサンプルデータを交換する段階、
を含むことを特徴とする請求項２０に記載の方法。
【請求項２４】
前記デジタルサンプルを前記プロセッサに供給し、かつ該プロセッサから処理済みデジタルサンプルを受信する少なくとも１つの入力／出力バッファを通じて、該プロセッサをデジタルサンプルバスにインタフェースで接続する段階を含むことを特徴とする請求項２０に記載の方法。
【請求項２５】
前記デジタルサンプルバスは、サンプル同期しているデジタル音声バス及びデジタル映像バスの一方であることを特徴とする請求項２４に記載の方法。
【請求項２６】
前記プロセッサと、該プロセッサに対してデータサンプルを供給し、かつデータサンプルを受信する複数のタイムスロットにおける前記サンプルバスとの間で前記デジタルサンプルを通信する段階を含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
入力バッファを通じて前記デジタルサンプルバスからデータサンプルを受信して、出力バッファを通じて該デジタルサンプルバスにデータサンプルを供給する段階を含むことを特徴とする請求項２４に記載の方法。
【請求項２８】
前記入力バッファ及び出力バッファは、ピンポンバッファであることを特徴とする請求項２７に記載の方法。
【請求項２９】
前記デジタルサンプルバスに基づいて割り込みを発生する段階を含み、
前記入力バッファは、前記割り込みに応答して入力データサンプルを前記プロセッサに通信し、前記出力バッファは、該割り込みに応答して出力データサンプルを該デジタルサンプルバスに通信する、
ことを特徴とする請求項２８に記載の方法。
【請求項３０】
サンプル毎のベースで前記プロセッサと前記デジタルサンプルバスの間でデジタルサンプルを交換する段階を含むことを特徴とする請求項２４に記載の方法。
【請求項３１】
前記プロセッサは、スレッドインターリーブ・デジタル信号プロセッサ（ＤＳＰ）であり、
前記共有メモリを通じて時間領域処理エンジンのスレッドと周波数領域処理エンジンとの間でデジタルサンプルを交換する段階、
を含むことを特徴とする請求項２０に記載の方法。
【請求項３２】
前記プロセッサは、入力バッファ及び出力バッファを含み、
デジタルサンプルバスから、前記プロセッサに割り当てられた該デジタルサンプルバスの少なくとも１つのタイムスロットに供給されるデジタルサンプルを処理のために選択的に抽出する段階と、
処理済みデジタルサンプルをその割り当てられたタイムスロット内に選択的に挿入する段階と、
受信しかつ他の処理装置に関連するデジタルサンプルを前記デジタルサンプルバスに沿って不変のまま受け渡す段階と、
を含むことを特徴とする請求項２０に記載の方法。
【請求項３３】
サンプル毎の方式でデジタルサンプルバスからデジタルサンプルを蓄積する段階と、
デジタルサンプルのブロックを受信した時を識別する段階と、
前記ブロックを、完全なブロックを受信した時に前記周波数領域で処理する段階と、
サンプル毎の方式で前記デジタルサンプルバスにサンプルの処理済みブロックを通信する段階と、
を含むことを特徴とする請求項２０に記載の方法。
【請求項３４】
フォアグラウンドルーチンで周波数領域処理段階を実行する段階と、
バックグラウンドルーチンで時間領域処理段階を実行する段階と、
割り込みに応答して前記バックグラウンドルーチンに入る段階と、
を含むことを特徴とする請求項２０に記載の方法。
【請求項３５】
前記デジタルサンプルバスをリング構成の時分割多重化バスに配列する段階  を含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
時分割多重化タイムスロットに複数のメディアチャンネルを設ける段階と、
前記プロセッサへの各メディアチャンネルを識別するチャンネル識別データを含むチャンネル識別経路を設ける段階と、
を含むことを特徴とする請求項３５に記載の方法。
【請求項３７】
各チャンネルからのデジタルサンプルが前記プロセッサによって受信された時を識別して、識別子に応答して前記割り込みを発生する段階を含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
デジタル音声処理装置の超大規模集積（ＶＬＳＩ）回路において実行されることを特徴とする請求項２０に記載の方法。
【請求項３９】
一連の命令を組み込む機械可読媒体であって、
命令が、機械によって実行された時に、該機械をして、
デジタルプロセッサに設けられた共有メモリにデータサンプルを格納させ、
前記共有メモリに供給されたデジタルサンプルを時間領域で処理させ、かつ
前記共有メモリに供給されたデジタルサンプルを周波数領域で処理させるものであり、
時間領域処理済みサンプル及び周波数領域処理済みサンプルは、前記共有メモリを通じて交換可能である、
ことを特徴とする機械可読媒体。
【請求項４０】
前記命令は、前記機械をして時間領域処理中にサンプル毎の方式でデータサンプルを処理させ、かつ周波数領域処理中にブロックベース方式でデータサンプルを処理させることを特徴とする請求項３９に記載の機械可読媒体。
【請求項４１】
前記命令は、前記機械をして、単一の集積デジタル信号プロセッサ（ＤＳＰ）チップにおいて前記時間領域及び前記周波数領域でデータサンプルを処理させることを特徴とする請求項３９に記載の機械可読媒体。
【請求項４２】
前記共有メモリは、前記ＤＳＰチップ上に設けられたＸ及びＹランダムアクセスメモリ（ＲＡＭ）であり、前記命令は、前記機械をして該ＲＡＭと時間領域処理エンジン間及び該ＲＡＭと周波数領域処理エンジンの間でサンプルデータを交換させることを特徴とする請求項３９に記載の機械可読媒体。
【請求項４３】
前記命令は、前記機械をして、前記プロセッサと、該プロセッサに対してデータサンプルを供給し、かつデータサンプルを受信する複数のタイムスロットにおけるサンプルバスとの間で前記デジタルサンプルを通信させることを特徴とする請求項３９に記載の機械可読媒体。
【請求項４４】
前記命令は、前記機械をしてデジタルサンプルバスに基づいて割り込みを発生させ、
入力バッファは、前記割り込みに応答して入力データサンプルを前記プロセッサに通信し、出力バッファは、該割り込みに応答して出力データサンプルを前記デジタルサンプルバスに通信する、
ことを特徴とする請求項３９に記載の機械可読媒体。
【請求項４５】
前記命令は、前記機械をしてサンプル毎のベースで前記プロセッサとデジタルサンプルバスの間でデジタルサンプルを交換させることを特徴とする請求項３９に記載の機械可読媒体。
【請求項４６】
前記プロセッサは、スレッドインターリーブ・デジタル信号プロセッサ（ＤＳＰ）であり、
前記命令は、前記機械をして、前記共有メモリを通じて時間領域処理エンジンのスレッドと周波数領域処理エンジンとの間でデジタルサンプルを交換させる、
ことを特徴とする請求項３９に記載の機械可読媒体。
【請求項４７】
前記命令は、前記機械をして、
サンプル毎の方式でデジタルサンプルバスからデジタルサンプルを蓄積させ、
デジタルサンプルのブロックを受信した時を識別させ、
前記ブロックを、完全なブロックを受信した時に前記周波数領域で処理させ、かつ
サンプル毎の方式で前記デジタルサンプルバスにサンプルの処理済みブロックを通信させる、
ことを特徴とする請求項３９に記載の機械可読媒体。
【請求項４８】
前記命令は、前記機械をして、
フォアグラウンドルーチンで周波数領域処理を実行させ、
バックグラウンドルーチンで時間領域処理を実行させ、かつ
割り込みに応答して前記バックグラウンドルーチンに進入させる、
ことを特徴とする請求項３９に記載の機械可読媒体。
【請求項４９】
前記命令は、前記機械をして、
時分割多重化タイムスロットに複数のメディアチャンネルを設けさせ、
前記プロセッサへの各メディアチャンネルを識別するチャンネル識別データを含むチャンネル識別経路を設けさせ、かつ
各チャンネルからのデジタルサンプルが前記プロセッサによって受信された時を識別して、識別子に応答して割り込みを発生させる、
ことを特徴とする請求項３９に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にデジタルメディアデータを処理する分野に関する。より具体的には、一実施形態では、本発明は、時間及び周波数領域においてデジタルデータを処理する方法及びシステムに関する。
【背景技術】
【０００２】
デジタルメディアストリーム（デジタル音声ストリーム等）の処理では、１）音声データのブロックが蓄積され、その後ユニットとして処理される「ブロックベース（ＢＢ）」アルゴリズム、及び２）音声データを一度に１つのサンプルで処理する「サンプル毎の（ＳＳ）」アルゴリズムという２種類のアルゴリズムの需要があることが判明している。周波数領域又はＢＢアルゴリズムは、より大きな計算柔軟性という利点を有し、例えば、より長い「有限インパルス応答」又はＦＩＲフィルタが実現可能であり、かつ「高速フーリエ変換」又はＦＦＴベースのアルゴリズムが有効にされ、その代償として、処理が開始可能になる前にデータブロックが蓄積されねばならず、従って待ち時間を付加する。ＳＳ処理は、非常に少ない待ち時間及びオーバーヘッド、並びにパラメータ変化への実質的に瞬時の応答という利点をもたらし、これらは、例えば、グラフィックイコライザへのパラメータの変更のような用途において非常に有益なものとすることができる。ＳＳ処理の低オーバーヘッドは、音声システムにおいて異なるＳＳソフトウエアアルゴリズムの動的なロード及びアンロードを大幅に簡素化し、それによって実時間入力に応答した音声ストリームのエフェクト処理への迅速な修正が可能になる。
【０００３】
従来技術の「デジタル信号処理」又はＤＳＰシステムは、ＢＢ又はＳＳプロセッサのいずれかとして両方同時にではなく排他的に実行するように設計されている。従って、標準の従来技術手法は、ＳＳ及びＢＢアルゴリズムを別々のエンジン内で処理するか、又はＳＳアルゴリズムをＢＢアルゴリズムに変換し、待ち時間及びＳＳアルゴリズム性能に対するオーバーヘッドの不利益を許容するかのいずれかであった。
【発明の開示】
【０００４】
本発明によると、メディアデータ（例えば、デジタル音声又は映像など）を処理するためのデジタル処理装置及び方法が提供される。
【０００５】
本発明は、機械による実行時に本明細書で説明する方法のいずれかを機械に実行させる一連の命令を組み込む機械可読媒体に拡張される。
【０００６】
本発明の他の特徴は、添付図面及び下記の詳細説明によって明らかになるであろう。
【０００７】
これより、本発明を添付概略図面を参照して例示的に説明する。
【発明を実施するための最良の形態】
【０００８】
デジタルメディアデータを処理する方法及び装置を説明する。下記の説明では、本発明の完全な理解を提供するために説明を目的として多くの特定の詳細を示す。しかし、当業者には、本発明をこれらの特定の詳細なしに実施することができることが明らかであろう。更に、音声データ処理を例示的に参照して本発明を説明するが、本発明は、あらゆるデジタルデータ（映像データを含む）を処理するために用いることができる点に注意すべきである。
【０００９】
図１を参照すると、参照番号２０は、一般的にデジタル信号プロセッサ（ＤＳＰ）モジュールのアーキテクチャを示しており、これは、一実施形態において同一の処理エンジン内における「サンプル毎（ＳＳ）」又は時間領域処理アルゴリズム、並びに「ブロックベース（ＢＢ）」又は周波数領域アルゴリズムのための統合化プログラミング環境を示している。処理エンジンは、ＳＳ領域とＢＢ領域の間でデータを受け渡すための共有メモリインタフェース２４（図５を参照）を含むＤＳＰ２２とすることができる。例えば、データは、ＢＢ又は周波数領域処理エンジン２６とＳＳ又は時間領域処理エンジンとの間で受け渡すことができる。すなわち、ＤＳＰ２２によって処理される異なるエフェクトは、異なる処理又はエフェクトエンジン間でリンク又は受け渡すことができる。図１に示す処理エンジン２２では、そのようなエンジンに含まれる様々な標準構成要素を明瞭化のために省略している。当業者は、省略した標準構成要素を即座に特定するであろう。一実施形態では、ＤＳＰモジュール２０は、音声処理装置、例えばサウンドカードなどの一部を規定又は形成する。従って、ＤＳＰモジュール２０は、「パーソナルコンピュータ」、ＭＰ３プレーヤ、携帯デジタルメディアプレーヤ、「携帯情報端末（ＰＤＡ）」、セルラー電話、又は音声及び／又は映像のようなデジタルメディア処理のための他のあらゆる装置又は装置の一部とすることができる。
【００１０】
ＤＳＰ２２の例示的アーキテクチャは、ローカルな汎用レジスタ（ＧＰＲ）を有する標準ＤＳＰプログラミングモデルをＸ／Ｙメモリ３２と組み合わせることができる。一実施形態では、非常に大きなレジスタ空間（例えば、汎用レジスタ３０）及び他の音声処理エンジンの間のデータ受け渡し（サンプル固定とすることができる）のためのバッファ（例えば、サンプルレート固定のピンポン（ping-pong）バッファ３４−図１を参照）を有するサンプル毎のプログラミングモデルと共に並列アドレス発生が設けられる。ＢＢ及びＳＳ環境は、例示的サンプルレート固定ピンポンバッファ３４の切り換えに同期する割り込み（例えば、低待ち時間のサンプルレート固定割り込み３６）によって相互に連結することができる。一実施形態では、サンプルレート固定割り込み３６は、サンプル固定時間ベースモジュール３８によって発生される。一実施形態では、ＤＳＰ２２、サンプル固定時間ベースモジュール３８、及びバッファ３４は、全て単一のＶＬＳＩチップ又は回路上に統合される。従って、サンプル固定時間ベースモジュール３８及びバッファ３４は、すなわち、それ自体ＤＳＰ２２の電気回路内に統合することができる。
【００１１】
例示的な一実施形態では、複数のソフトウエアＤＳＰエフェクト（例えば、残響、エコー、合唱、グラフィック等化、空間化など）の同時の動的割り当ては、ＤＳＰ２２においてスレッドインターリーブ・プロセッサアーキテクチャを用いて共有メモリ環境４０（図５を参照）内に与えられる。例えば、各ＤＳＰスレッドは、ＳＳ処理のために独自又は専用の大きなレジスタセットを有することができるが、共有メモリ４０（データブロックをＢＢ処理に向けて受け渡す時に利用することができる）又は特定のスレッドのＩ／Ｏ空間の中にマップすることができるサンプルレート固定ピンポンバッファ３４のいずれかを通じて通信することができる。すなわち、各ＤＳＰスレッドは、サンプルレート固定データを１つのスレッドから別のスレッドへとスレッド間で送受信するか、又は音声バス４２又はＤＭＡインタフェース又はコントローラ４４などを通じてＤＳＰ２２の外側にある外部のサンプル固定処理エンジンとの間で送受信するかのいずれかの機能を有することができる。各個々のインターリーブされたスレッドは、同期ＳＳ処理のために同一の低待ち時間サンプルレート固定割り込みソース（例えば、割り込み３６）によって割り込みを入れることができる。共有メモリ環境４０は、ＤＳＰ２２内に統合し、ＤＳＰのＩ／Ｏ空間の中にマップすることができる。
【００１２】
一実施形態では、ピンポンバッファ３４は、その入力及び出力においてダブルバッファ方式にされる。サンプルレート固定マルチプレクサ又は多重通信回路は、所定のサンプル期間内でＤＳＰ２２及び音声バス４２の一方のみが所定のバッファへのアクセスを有するように音声バス４２とＤＳＰ２２の間に設けられたピンポンバッファ３４を制御することができる。従って、一実施形態では、ＤＳＰ２２及び音声バス４２の両方による所定のバッファへの同時アクセスは許されない。ピンポンバッファ３４では、一方のバッファが新しいデジタルデータ送信信号を送受信している間に、他方のバッファは、オペレーション中の前のデータ送信信号を保持する。
【００１３】
図１の例示的ＤＳＰモジュール２２は、ネストされた割り込みコントローラ４６を含むスレッドインターリーブＤＳＰとすることができ、このコントローラ４６は、サンプル固定時間ベースモジュール３８からサンプルレート固定割り込み３６（サンプル固定割り込み通知）を受信し、続いてこの割り込み３６は、例示的なサンプル同期の音声バス４２のサンプルレートとの同期が取られる（サンプルクロック参照等により）。また、ＤＳＰ２２は、サンプルレート固定ピンポンバッファ３４、特にそのサンプル同期の入力バッファ４８及びサンプル同期の出力バッファ５０と結合される。入力及び出力バッファ４８、５０は、上述のサンプル固定割り込み３６と同期して切り換わるピンポンバッファである。各ピンポンバッファ４８、５０の一方の側は、「Ｉ／Ｏデータ経路」５２、５４を通じてＤＳＰに対して可視であり、ＤＳＰ２２のＩ／Ｏレジスタマップ５６を通じて読み書きすることができる。各ピンポンバッファ４８、５０の他方の側は、サンプル同期の音声データバス４２に対して可視であり、この他方の側を通じてサンプル同期のデータをＤＳＰと他の音声処理ブロック又はモジュール（例えば、ＶＬＳＩチップ内の）との間で受け渡すことができる。
【００１４】
一実施形態では、ネストされた割り込みコントローラ４６は、サンプル固定割り込みが他のあらゆる割り込み又はＤＳＰスレッドのフォアグラウンド活動に優先することを可能にし、ＳＳ処理が実行されている最中にＤＳＰ２２を「時間領域割り込みサブルーチン（ＴＤＩＳＲ）」へと進入させる。割り込みコントローラ４６のこの「時間領域割り込みサブルーチン」に向けた優先特性により、各ＤＳＰスレッドに対する最大割り込み待ち時間の保証が得られる。例えば、各スレッドに対して非常に低いパイプライン待ち時間をもたらす４スレッドパイプライン−インターリーブＤＳＰアーキテクチャは、この最大待ち時間が非常に低く、予測可能であることを保証し、一般的に３〜４スレッドの命令サイクルを必要とする。
【００１５】
参照番号７０は、一般的に時間領域又はサンプル毎のデータを処理するための本発明による例示的方法を示している。方法７０は、フォアグラウンドルーチンに対する割り込みに応答して実行されるバックグラウンドルーチンとして実施することができる。判断オペレーション７２に示すように、方法７０は、割り込み（例えば、サンプル固定割り込み３６）が発生する時点をモニタし、判断が真であった場合はオペレーション７４に進む。割り込み３６は、他の全てのＤＳＰ割り込み及びあらゆるＤＳＰスレッドのフォアグラウンド活動に優先することができる（オペレーション７４を参照）。この後、オペレーション７６に示すように、方法７０は、ＤＳＰを特定のスレッドのための「時間領域割り込みサブルーチン」へと進入させる。
【００１６】
「時間領域割り込みサブルーチン」内で実行される機能は、エフェクト毎に異なることができ、各ＤＳＰ２２は、各々が異なるエフェクトに専用化された複数の異なるサブルーチンを含むことができる。例えば、ある一定の「時間領域割り込みサブルーチン」は、エコーに向けて設けられ、異なる「時間領域割り込みサブルーチン」は、残響に向けて設けられるという具合である。各エフェクトは、エフェクトを処理するために専用の汎用レジスタ（汎用レジスタ３０を参照）を有することができる。判断オペレーション７２に戻ると、割り込み３６がない情況では、方法７０は、オペレーション７８に示す他のフォアグラウンド活動を続けることができる。
【００１７】
「時間領域割り込みサブルーチン」の例示的機能を図３に示している。オペレーション８０に示すように、割り込み通知を受信すると、着信サンプルを入力バッファ４８によって読み取ることができる。１つの着信サンプルは、処理中の各音声ストリームに対して読み取ることができる。一実施形態では、音声バッファ４８内のサンプルデータは、エフェクト毎に配列され、従って、そのサンプルデータをエフェクト毎に入力バッファ４８から読み取ることができる。この後、サンプルデータは、ＤＳＰ２２内のブロック割り当てレジスタロケーションを個々に参照する命令コードを用いて処理される（オペレーション８２を参照）。ブロック割り当てレジスタロケーションは、保存及び復元のオーバーヘッドを不要にすることができる。一実施形態では、ＤＳＰ２２内の非常に大きな（一般的に１０００強）レジスタ空間によってこの専用レジスタ割り当てを可能にすることができる。上述のように、ブロック割り当てレジスタロケーションは、エフェクト毎に配列することができる。データサンプル処理が完了した状態で、次に、処理済みサンプルが、オペレーション８４に示すように音声出力バッファ５０に書き込まれる。サンプル毎の処理におけるデータサンプルは、ＤＭＡコントローラ４４から受信し、そこに書き込むことができることが認められるであろう。ＤＭＡコントローラ４４は、ＤＳＰモジュール２０をパーソナルコンピュータなどにおけるホストメモリとインタフェースで接続することができる。しかし、ＤＳＰモジュール２０内へのＤＭＡコントローラ４４の包含は任意的であり、データサンプルは、音声バス４２のみから入力可能であることは認められるものとする。
【００１８】
一実施形態では、「時間領域割り込みサブルーチン」は、サンプル期間毎に一度呼び出される割り込みサービスルーチンであり、割り込み毎に各音声チャンネルにおいて１つの音声サンプルを処理するように設計されている。他のサンプルレートが可能であることは明らかであろうが、例えば、サンプルレートを４８ＫＨｚとすることができ、従って、「時間領域割り込みサブルーチン」は、上記によると４８０００回毎秒で実行することができる。一実施形態では、サンプル期間毎のＤＳＰスレッド命令実行の最低回数の保証を可能にするために、「時間領域割り込みサブルーチン」は、上述の最大割り込み待ち時間の保証に加えて、この割り込みが最高優先度の割り込みであり、他のいかなる割り込みによっても優先されないという更に別の特質を有する。一実施形態では、割り込み３６は、データバス４２上に設けられた各音声又はデータチャンネルにおけるサンプルの受信によって発生する。従って、データサンプルのＤＳＰ２２への入力は、音声バス４２上のデータサンプルの通信又は搬送と同期させることができる。
【００１９】
１つ又はそれよりも多くのＤＳＰスレッドに対して「時間領域割り込みサブルーチン」（例えば、各エフェクトに対して１つの）が実行されている間に、フォアグラウンドプログラムコードは、待ち時間の影響を受けにくいブロックベースアルゴリズム（周波数領域処理）に専用化することができる。ブロックベースのコードは、ループ化、呼び出し、及びジャンプのような標準ＤＳＰ構成とすることができ、「時間領域割り込みサブルーチン」よりも低優先度の追加割り込みに応答することができる。
【００２０】
「時間領域割り込みサブルーチン」の最高優先度ステータスは、例示的ＤＳＰ２２のアーキテクチャにおいてある一定の微妙な結果を有する可能性がある。一実施形態におけるＤＳＰ２２は、専用ハードウエアプログラムカウンタスタック（ＨＣＰＳ）８６（図５を参照）を含み、このスタック８６は、各スレッドに対して個別に割り当てることができる。コストの理由から、ある一定の実施形態では、これらの例示的ハードウエアスタック８６は、所定のプログラムに対して必要であると考えられるサイズまで大きくすることができない。従って、ハードウエアスタック８６が一杯になる可能性がある。ハードウエアスタック８６がほぼ一杯になる時点を検出するために、各スレッドにスタックほぼ一杯命令トラップを備えることができ、この判断が真になった場合は、この特定のハードウエアスタック８６を更に利用することができるように、この特定のハードウエアスタック８６の内容を部分的にメモリバッファに移すサービスルーチンを呼び出すことができる。それによって、メモリバッファが許すあらゆるサイズへのプログラムカウンタスタック８６の拡張を可能にすることができる。一実施形態では、「時間領域割り込みサブルーチン」の予測可能な低待ち時間を強化するために、「時間領域割り込みサブルーチン」だけにスタックほぼ一杯命令トラップへの割り込みを許すことができる。これに対する必然的結果として、一実施形態では、「時間領域割り込みサブルーチン」に対してスタックほぼ一杯命令トラップを備えなくてもよく、「時間領域割り込みサブルーチン」は、固定数よりも多くのハードウエアスタックロケーションを用いなくてもよく、この固定数は、スタックほぼ一杯トラップがアサートされた場合に利用可能な残りのハードウエアスタックロケーションの数よりも小さくなくてはならない。一実施形態では、各々が一度に１つのサンプルを処理する専用レジスタセット間での瞬時の切り換えを強調することができる「時間領域割り込みサブルーチン」コードの性質は、プログラムカウンタスタック空間を必要としないことによって不変とすることができる。異なる実施形態では、「時間領域割り込みサブルーチン」に対して利用可能なスタックロケーション数の変更を可能にするために、スタックほぼ一杯トラップをトリガすることができるスタックレベルは、ソフトウエア（ソフトウエア命令等）によって調節可能なものにすることができる。
【００２１】
大きなスタック要件に対処するために別の方法を用いることができることは認められるであろう。一例示的方法は、ハードウエアスタック８６をより大きくし、このハードウエアスタック８６のサイズを超えるスタック拡張をサポートしないことである。しかし、この例示的な実施形態では、更に別のハードウエアコストが生じる可能性があり、ハードウエアスタックはいくつかのソフトウエア環境に対しては小さすぎることになる可能性がある。別の例示的な実施形態では、スタックほぼ一杯割り込みを用いなくてもよく、スタック８６が一杯になった時にはいつでも、例示的ＤＳＰ制御ユニット８８は、直接にメモリにプログラムスタック値を書き込むか又はメモリから直接読み取ることができる。しかし、スタックレベルが高い場合には、それによってＣＰＵ性能の低減という結果を生じる可能性があり、「時間領域割り込みサブルーチン」に更に別の予測不能の待ち時間が付加される可能性がある。
【００２２】
上述のように、サンプル同期の音声バッファ４８、５０は、双方向のピンポンバッファとすることができ、「時間領域割り込み」３６の発生に用いられるものと同じクロックで同期して切り換えることができる。一実施形態では、バッファ４８、５０は、「ランダムアクセスメモリ（ＲＡＭ）」として実施され、高位アドレスビットは、「ピン（ping）」機能と「ポン（pong）」機能の間で選択することができる。上述のように、ＤＳＰ２２及びサンプル同期の音声サンプルバス４２は、常にバッファ４８、５０の反対側にアクセス可能である。従って、ＤＳＰ２２がＲＡＭアドレス空間の上位半分にアクセスしている時には、サンプル同期の音声サンプルバス４２は、ＲＡＭアドレス空間の下位半分にアクセスしていることになる。連続するサンプル期間において、ＤＳＰ２２及びサンプル同期の音声サンプルバス４２は、アドレス空間を入れ替えてピン（ping）及びポン（pong）挙動を発生させる。ピンポンバッファ４８の切り換えとの「時間領域割り込みサブルーチン」の同期は、バッファ４８にアクセス中の「時間領域割り込みサブルーチン」内の命令位置に関わらずサンプル期間（「時間領域割り込みサブルーチン」の長さの上限である）内のあらゆる時点でのＤＳＰ２２の着信サンプルへのアクセスを可能にする。同様に、ＤＳＰ２２は、「時間領域割り込みサブルーチン」内のあらゆる時点において出力バッファ５０に書き込むことができる。マルチスレッドインターリーブＤＳＰのＤＳＰシステムでは、サンプル同期のバッファ４８、５０は、全スレッドに対するグローバルな可視性を有することができる。
【００２３】
例示的な一実施形態におけるサンプル同期の音声バス入力及び出力バッファ４８、５０は、多数のロケーション、例えば、２５６又は５１２個のロケーションを有することができ、これらの各々は、音声ストリームに対応することができる。音声バスは、複数の音声チャンネルを含むことができ、音声データサンプルの送受信に用いられておらずかつサンプル同期の音声データバスによって更新されていないあらゆるサンプル同期の音声バス入力又は出力チャンネルは、全ＤＳＰスレッドに可視であるサンプル固定スレッド間データチャンネルとして用いるために利用可能にすることができる。この構成により、異なるＤＳＰスレッドにおいて作動する「時間領域割り込みサブルーチン」間のデータ受け渡しのための機構（例えば、主要機構）を提供することができる。未使用の出力バッファチャンネルがスレッド間のデータ受け渡しに用いられる時には、受け渡しデータは、依然としてその出力バッファチャンネルに対して割り当てられたＤＳＰサンプル同期の音声バススロット内のサンプル同期の音声バス上で有効なデータとして見えるであろう。音声バス４２への出力であるデータサンプルは、異なるＤＳＰスレッドによる処理のために音声サンプルバス４２を通じてＤＳＰ２２にその後返信することができることは認められるであろう。
【００２４】
スレッド間のデータ受け渡しのために利用可能な入力又は出力サンプル同期音声バスバッファ４８、５０に書き込まれたデータは、それが書き込まれたサンプル期間の残り時間に向けて全スレッドに対して即時に可視にすることができる。この限定条件は、上述のサンプル同期の音声バス４２との間で受け渡されるデータではなくスレッド間のデータ受け渡しにのみ適用することができる。サンプル期間の開始からスレッドが利用可能バッファロケーションに書き込む時点までの時間内に異なるＤＳＰスレッドによって同じバッファロケーションから読み取られたあらゆるデータは、上述の使用したダブルバッファ方式ピンポン手法によると２回のサンプル期間を経ていることになると考えられる。
【００２５】
すなわち、各ＤＳＰスレッドが異なるエフェクトを処理する実施形態では、スレッド間の受け渡しは、処理中の異なるエフェクト間のサンプルデータの受け渡しのために用いることができる。すなわち、してサンプルデータは、時間領域処理又はサンプル毎のエフェクト／アルゴリズムから周波数領域エフェクト又はブロックベースエフェクト／アルゴリズムへと受け渡される。例示的周波数領域エフェクトは、音声ストリーム内の音割れを除去するか又は音声スペクトルのある一定のサブ帯域を強化することができる音声清浄化エフェクトである。
【００２６】
サンプルユニット又はブロックへのブロックベース処理を必要とする場合には、個々のサンプルは、音声バス４２を通じて連続して受信し、ＤＳＰ２２のメモリ内に格納することができる。ブロック又はユニットを含む全データサンプルを受信した時点で、データサンプルブロックを処理することができる。例えば、時間領域ＤＳＰスレッドは、音声バス４２から個々のサンプルを読み取り、スレッドに関連する円形バッファに一度に１つのサンプルを書き込むことができる。関連バッファが一杯になると、時間領域スレッドは、周波数領域ルーチンにデータブロックが周波数領域処理に向けて利用可能であることを「ｐｉｎｇ」する又は通知することができる。従って、一実施形態では、時間領域スレッドは、周波数領域スレッドのためにデータを収集することができる。同様に、ＤＳＰ２２によって処理されたデータブロックは、一度に１つ、音声バス４２に書き込むことができる。更に、周波数領域アルゴリズム（最低音部の増強等）又は処理の出力データサンプルは、入力データサンプルとして時間領域アルゴリズム又は処理（例えば、残響）へと受け渡すことができる。
【００２７】
図６を特に参照すると、例示的ＤＳＰ２２のより詳細な実施形態が示されている。ＤＳＰ２２は、ＤＳＰ制御ユニット８８、Ｘ／Ｙメモリ３２，汎用レジスタ３０、ネストされた割り込みコントローラ４６、及び任意的なＤＭＡコントローラ４４を含む。例示的な一実施形態では、汎用レジスタ３０は、複数の音声チャンネルのデータサンプルを格納するための比較的大きなレジスタセットとすることができる。Ｘ／Ｙメモリ３２は、Ｘ係数ＲＡＭ１００及びＸデータメモリ１０２を含むことができる。同様に、Ｘ／Ｙメモリ３２は、Ｙ係数ＲＡＭ１０４及びＹデータメモリ１０６を含むことができる。例えば、Ｘ係数ＲＡＭ１００及びＹ係数ＲＡＭ１０４は、３２ビット幅とすることができ、Ｘデータメモリ１０２及びＹデータメモリ１０４もまた、３２ビット幅とすることができる。Ｘ／Ｙメモリ３２は、周波数領域スレッド及び時間領域スレッドを処理するために周波数及び時間領域エンジン２６、２８によって用いられる共通又は共有メモリを形成する。従って、Ｘ／Ｙメモリ３２は共有メモリであり、スレッドがサンプルデータを互いに受け渡し又は交換することを可能にする。汎用レジスタ３０は、Ｘ汎用ＲＡＭ（Ｘ−ＧＰＲＡＭ）１０８、Ｘ、Ｙ、Ａ、Ｂ回転レジスタアレイ１１０、及びＹ汎用ＲＡＭ（Ｙ−ＧＰＲＡＭ）１１２を含む。例示的な一実施形態では、Ｘ−ＧＰＲＡＭ１０８及びＹ−ＧＰＲＡＭ１１２は、２５６×３２ビットである。Ｘ−ＧＰＲＡＭ１０８、Ｘ、Ｙ、Ａ、Ｂ回転レジスタアレイ１１０、及びＹ−ＧＰＲＡＭからの出力は、オペランド多重通信回路１１４の中に供給される。一実施形態では、Ｘ−ＧＰＲＡＭ１０８、Ｘ、Ｙ、Ａ、Ｂ回転レジスタアレイ１１０、及びＹ−ＧＰＲＡＭ１１２は、ＤＳＰスレッド毎に配列することができ、サンプルデータは、サンプル毎の方式でオペランド選択多重通信回路１１４に供給される。オペランド選択多重通信回路１１４は、数学及び論理演算を実行する二重経路パイプラインＦＰＵ／整数ユニット／ＡＬＵ１１６に供給し、この二重経路パイプラインＦＰＵ／整数ユニット／ＡＬＵ１１６は、結果書き戻し及び転送のために設けられた電気回路１１８に供給する。その後、処理済みサンプルは、レジスタファイル及びＩ／Ｏデータ経路５４を通じてサンプル同期の音声バッファ５０に書き込まれる。
【００２８】
アドレス発生器１２０は、ＤＳＰ制御ユニット８８、割り込みコントローラ４６、及びインターバルタイマ１２２に接続される。ＤＳＰ制御ユニット８８は、グローバルインターリーブ命令メモリ１２４（例えば、周波数及び時間領域アルゴリズムを含む）及びバス１２６で示すように、様々な機能ユニット（エフェクトプロセッサ等）にも接続される。更に、一実施形態では、ＤＳＰ制御ユニット８８は、ＤＭＡコントローラ４４及びセマフォーレジスタ１２８に接続される。例示的に、ＤＳＰ制御ユニット８８は、プログラムカウンタアレイユニット又はモジュール１３０、命令取り出し及び復号化ユニット又はモジュール１３２、オペランド選択制御ユニット１３４、分岐制御ユニット１３６、同時移動ユニット１３８、ページングされた（スレッド毎）ループスタック１４０、及びページングされた（スレッド毎）プログラムカウンタ（ＰＣ）スタック１４２を含むものとして示されている。
【００２９】
図７を特に参照すると、参照番号１５０は、一般的にＤＳＰ２２においてフォアグラウンドルーチン又は機能を実行するための本発明による例示的方法を示している。オペレーション１５２に示すように、方法１５０は、最初に入力バッファ４８に処理に向けた新しいデータが入っているか否かを判断するために検査する。判断が真である場合には、方法１５０は、オペレーション１５４に示すように、ポインタを適切なバッファに合わせ、この後、バッファ内のデータを処理する（オペレーション１５６を参照）。この後、オペレーション１５８に示すように、データは、音声出力バッファ５０に書き戻される。上述のように、方法１５０は、一般的に周波数領域アルゴリズム又はブロックベースアルゴリズムを実行するためのフォアグラウンドループにおいて用いられる。更に、ＤＳＰ２２は、時間領域割り込み３６を受信すると方法１５０を抜け出し、バックグラウンド時間領域割り込みサブルーチンを実行する。一実施形態では、方法１５０は、ＤＳＰ２２のスレッドによって実行することができ、「ミニオペレーティングシステム」又はＯＳに類似したマイクロカーネルプログラムを作動させることができ、それによってＤＳＰ２２のオペレーションを制御する。従って、スレッドは、着信サンプルストリームの経路指定を受け持つことができ、処理に向けて各ストリームをＤＳＰ２２の適切なエフェクトエンジンに経路指定し、処理済みサンプルストリームを音声バス４２に書き戻すか又は返信する。
【００３０】
図８を特に参照すると、参照番号１６０は、フォアグラウンドルーチン１６２とバックグラウンドルーチン１６４（図４も参照）の間の例示的相互作用を示している。上述のように、例示的バックグラウンドルーチンは、割り込み３６が発生する時点で進入を受ける。オペレーション１６６に示すように、入力サンプルデータは、汎用レジスタ３０に読み込まれ、一実施形態では、汎用レジスタ３０は、エフェクト毎に割り当てられる。従って、ＤＳＰ２２が処理する各エフェクトは、それ自体に専用の汎用レジスタを有する。この後、オペレーション１６８及び１７０に示すように、各エフェクトは、ここで個々に処理される。例えば、エフェクト１は、オペレーション１６８において処理することができ、エフェクト処理時にはエフェクト１のための汎用レジスタ３０を読み取り、レジスタ内のデータサンプルを処理し、この後、汎用レジスタ出力に書き込むことができる。この手順は、全エフェクトが処理されるまで続行させることができる（オペレーション１７０を参照）。
【００３１】
しかし、上述のように、データサンプルは、バックグラウンドルーチン１６４とフォアグラウンドルーチン１６２との間で受け渡すことができる。特に、データサンプルは、矢印１７２で一般的に示すように、サンプル毎の処理スレッドからブロックベース処理スレッドへと転送することができる。同様に、データサンプルは、矢印１７４で一般的に示すように、ブロックベース処理スレッドからサンプル毎の処理スレッドへと転送することができる。
【００３２】
サンプル毎のスレッドからブロックベーススレッドへのデータ転送（矢印１７２を参照）に戻ると、オペレーション１７６では、バックグラウンドルーチン１６４からデータを受信することができ、バッファ収集ルーチンは、汎用レジスタ３０を読み取って、一例として、それらのレジスタ内のデータサンプルをＸ／Ｙメモリ３２内に設けられた共有メモリに複写することができる。例示的な一実施形態では、バッファは、円形バッファとすることができる。この後、判断オペレーション１７８に示すように、バッファ終端に達したか否かが判断され、この判断が真の場合は、データ転送ルーチンは、ライン８０で示すようにバックグラウンドルーチンに戻ることができる。しかし、この判断が偽の場合には、オペレーション１８２に示すように、ポインタをラップすることができ、この後に新しいバッファがロードされるべきであることを示す信号が発生され、オペレーション１８４に示すように、データ転送ルーチンは、バックグラウンドルーチン１６４に戻ることができる。
【００３３】
同様の方式で、転送ルーチンを用いてブロックベースアルゴリズムからサンプル毎のアルゴリズムへの転送を達成することができる（矢印１７４を参照）。オペレーション１８６に示すように、バッファディスパッチルーチンは、共有メモリ（例えば、Ｘ／ＹＲＡＭ３２）を読み取ることができ、例えば、円形バッファは、汎用レジスタ３０にデータサンプルを書き込むことができる。判断オペレーション１８８に示すように、バッファ終端に達していない場合には、データ転送ルーチンは、バックグラウンドサブルーチン１６４に戻ることができる。しかし、バッファ終端に達した場合には、所定のＤＳＰアーキテクチャにおける適切な方法でバッファ終端状況を処理することができる（オペレーション１９０を参照）。この後、フォアグラウンドルーチン１６２を抜け出すことができ、再びバックグラウンドルーチン１６４が、オペレーションを引き受けることができる。
【００３４】
ＤＳＰモジュール２２の例示的実装を図９に示している。特に、参照番号２００は、一般的に本発明の態様による例示的デジタル処理装置の概略ブロック図を示している。装置２００は、複数の処理モジュール、すなわち、デジタル信号処理（ＤＳＰ）モジュール２２，遅延モジュール２０２、サンプルレート変換器（ＳＲＣ）モジュール２０４、フィルタモジュール２０６、及びミキサーモジュール２０８を含むものとして示されている。装置２００は、デジタル音声入力／出力（Ｉ／Ｏ）モジュール２１０及び音声メモリ搬送モジュール２１８を更に含む。モジュール２２、２０２〜２１０は、データがいずれか１つの処理モジュールから他のいずれかの処理モジュールに連続して通信されるリング構成に配列されたデータ経路２１２を通じてシリアルに相互接続される。従来のデジタル処理装置と異なり、本発明による装置２００は、下記に詳述するように、モジュール２２、２０２〜２１０が、データ経路２１２に接続した他のあらゆるモジュール２２、２０２〜２１０と通信することを可能にする。本発明の一実施形態では、データ経路２１２は、時分割で多重化されており、経路指定コントローラが様々なモジュール２２、２０２〜２１０間のデータ通信を制御する。更に、モジュール２２、２０２〜２１０は、単に例示的なモジュールであり、装置２００には、更に別のモジュール（同じか又は異なる処理機能を有する）を含めることができ、及び／又はモジュールのうちのいずれか１つ又はそれよりも多くを除去することができ、例えば、その機能は、他のいずれかのモジュール内に含めることができることは認められるものとする。
【００３５】
すなわち、一実施形態では、モジュール２２、２０２〜２１０のうちのどの１つも、経路指定コントローラの制御下で他のモジュール２２、２０２〜２１０のうちのいずれか１つ又はそれよりも多くとデータを通信することができる。従って、デジタル処理装置２００によって処理されるデータは、異なるモジュール２２、２０２〜２１０間で柔軟に経路指定することができ、従来の装置の場合のように所定の経路に制限される必要はない。モジュール２２、２０２〜２１０は、音声バス２１４を通じてデータを自体へと返信することができることは認められるであろう。従って、同一の処理モジュールによってデータに反復処理を実施することができる。データをデータ経路２１２に供給する処理モジュール２２、２０２〜２１０は、送信元処理モジュールと見なすことができ、データを処理すべき特定の処理モジュール２２、２０２〜２１０は、ターゲット又は宛先処理モジュールと見なすことができる。処理モジュール２２、２０２〜２１０は、処理済みデータを自体に戻すことができるために、オペレーションの１つのモードでは、処理モジュール２２、２０２〜２１０は、送信元及び宛先処理モジュールの両方を形成することができる。従って、例えば、フィルタモジュール２０６は、カスケード式フィルタ配列を形成することができ、この出力又は処理済みデータを別の処理モジュール２２、２０２〜２１０に送信する前に、更に別の処理のために自体に返信することができる。
【００３６】
音声メモリ搬送モジュール２１８は、バス２２０を通じて例えばコンピュータ装置（例えば、パーソナルコンピュータ又はＰＣ）のバスの一部を形成することができるインタフェースモジュール２２２と通信する。一実施形態では、インタフェースモジュール２２２は、ブリッジ２２４、及びこのブリッジ２２４を従来のＰＣバス２２８にインタフェースで接続する２つの「ＰＣＩ−Ｘ」バスインタフェース２２６を含む。デジタルＩ／Ｏモジュール２１０は、デジタル音声入力を受信し、デジタル音声出力を出力装置に供給することができる。データ経路２１２は、モジュール２２、２０２〜２１０、及び２１８をシリアルに相互接続する。
【００３７】
装置２００のデータ経路２１２は、音声データ経路又は音声バス２１４（この実施形態では、図１のデータバス４２に対応する）という例示的形態のメディアデータ経路、並びにパラメータバス２１６という例示的形態の処理制御経路を含む。一実施形態では、音声バス２１４及びパラメータバス２１６の両方は、リング構成に配列され、そこではデータが時分割多重化方式で様々な処理モジュール２２、２０２〜２１０間において通信されている。従って、サンプルデータは、サンプル同期の音声入力バッファ４８によって連続して受信することができ、ＤＳＰ２２の中に供給することができる。同様に、処理済みサンプルデータは、サンプル同期の音声出力バッファ５０から音声バス２１４へと出力することができる。サンプル固定時間ベースモジュール３８は、音声バス２１４をモニタすることができ、データサンプルの全ループが音声リング又はバス２１４上から読み取られたことを検出して割り込み３６を出力することができる。様々なモジュールが音声バス２１４に沿って設けられているために、中央ハブ（ＤＳＰ２２等）を通じたデータの経路指定を必要とせずに、音声データをモジュール間で経路指定することができる。ある一定の実施形態では、装置２００は、搬送バス２１５を含み、この搬送バス２１５は、音声メモリ搬送モジュール２１８を通じて外部コンピュータを処理モジュール２２、２０２〜２１０にインタフェースで接続する。
【００３８】
データ経路２１２（音声バス２１４，パラメータバス２１６、及び搬送バス２１５などを含む）上でのデータ経路指定を制御するために、ある一定の実施形態では、装置２００は、データ経路２１２に沿ってデータの経路指定を制御するホストインタフェース又は経路指定コントローラ２３０（図１０を参照）を含む。特に参照番号２３２によって一般的に示すように、一実施形態では、経路指定コントローラ２３０は、チップ選択ライン２３６、並びにアドレス、データ書込み、及び書込み許可ライン２３８を通じて各処理モジュール２２、２０２〜２１０、及び２１８へのデータ経路指定を制御する。各モジュール２２、２０２〜２１０、及び２１８は、データ読取及び受信通知ライン２４０を通じてデータをホストインタフェース又は経路指定コントローラ２３０にデータ通信する。一実施形態では、経路指定コントローラ２３０は、装置２００の様々な処理モジュール２２、２０２〜２１０、及び２１８をインタフェース接続する完全同期ハンドシェイク手法を用いるホストインタフェースを形成する。例えば、経路指定コントローラ２３０は、選択された処理モジュール２２、２０２〜２１０、及び２１８から受信通知信号を受信するまでアクティブに保持されるチップ選択を発生することができる。一実施形態では、経路指定コントローラ２３０は、ホストアドレスの最上位ビットを復号化し、それに応答して選択されたモジュール２２、２０２〜２１０、及び２１８を有効にするチップ選択を発生する。各モジュール２２、２０２〜２１０、及び２１８は、ホストアドレスの残りの最下位ビットを復号化し、これらは、データを経路指定すべき特定のモジュール２２、２０２〜２１０をこれらによって識別するために重要である。
【００３９】
本発明の一実施形態では、ＤＳＰモジュール２２は、モジュール２２、２０２〜２１０、及び２１８の各々の中に設けられたレジスタ及びランダムアクセスメモリ（ＲＡＭ）にＤＳＰモジュール２２がアクセスを有するような方式で経路指定コントローラ２３０とインタフェース接続される。特に図１１に示すように、ＤＳＰモジュール２２は、データバス２４２、アドレスバス２４４，受信通知ライン２４８、書込み許可ライン２５０、要求ライン２５２、及びチップ選択ライン２５４を通じて経路指定コントローラ２３０と通信することができる。モジュール２２、２０２〜２１０、及び２１８内に備えることができるレジスタ及びＲＡＭにアクセスするために、ＤＳＰモジュール２２は、ライン２５２を通じて経路指定コントローラ２３０に要求を通信する。次に、経路指定コントローラ２３０は、受信通知ライン２４８を通じて要求を受信したことを通知し、この後、要求された機能は、アドレスバス２４４及びデータバス２４２を用いて実行することができる。
【００４０】
デジタル音声Ｉ／Ｏモジュール２１０内にサンプルレートトラッカーが設けられた実施形態では、デジタル音声Ｉ／Ｏモジュール２１０も同様に経路指定コントローラ２３０にインタフェース接続することができ、それによってモジュール２２、２０２〜２１０、及び２１８内のレジスタ及び／又はＲＡＭへのアクセスが得られる。一実施形態では、装置２００は、一方がＩ／Ｏにマップされ、他方がメモリにマップされた２つの基本アドレスレジスタを有する。これらのレジスタの両方は、同時にアクティブにすることができ、両方のアドレスレジスタは、装置２００が設けられているチップの同じ内部レジスタ及びメモリへのアクセスを可能にすることができる。
【００４１】
本発明の一実施形態では、音声バス２１４は、時分割で多重化されている音声チャンネルを備えている。各処理モジュール２２、２０２〜２１０、及び２１８は、それ自体に割り当てられた固定の出力タイムスロット、並びにプログラマブル又は可変の入力タイムスロットを有することができる。従って、この実施形態では、モジュール２２、２０２〜２１０、及び２１８は、常に所定の同じタイムスロットでデータを音声バス２１４に出力することができるが、経路指定コントローラ２３０の制御下において異なるタイムスロットでデータを受信することもできる。従って、各個々のモジュール２２、２０２〜２１０、及び２１８に関連する入力タイムスロットがプログラマブルであるために、データは、様々なモジュール２２、２０２〜２１０、及び２１８の間で柔軟な方式で経路指定することができる。タイムスロットが関連付けされたモジュール２２、２０２〜２１０、及び２１８を識別するために、チャンネル識別バスを備えることができる。一実施形態では、チャンネル識別バスは、送信元処理モジュール２２、２０２〜２１０、及び２１８を識別し、ターゲット又は宛先処理モジュール２２、２０２〜２１０、及び２１８は、処理すべきデータの出所であるデータソースを識別するためのリストを含む。しかし、チャンネル識別は、ターゲット処理モジュール２２、２０２〜２１０、及び２１８も同様に識別することができることは認められるであろう。一実施形態では、チャンネル識別は、各チャンネルからのサンプルを受信した後に割り込み３６を発生するように、サンプル固定時間ベースモジュール３８によってモニタすることができる。従って、サンプルの新しいセット又はグループ（各チャンネルに対して１つのサンプルが供給される）を受信する前に、割り込み３６が発生される。それに応答して、上述のように、ＤＳＰ２２は、次に例えば「時間領域割り込みサブルーチン」を用いてサンプルデータセットを処理することになる。すなわち、音声バス４２を通じて受信したデータサンプルの時間領域処理又はサンプル毎の処理は、音声バス２１４を通じたデータ搬送と同期させることができる。これを目的として、ピンポンバッファ４８及び５０は、割り込み３６が発生される度に反転させることができる。例示的な一実施形態では、図１の音声バス４２（例えば、図９の音声バス２１４に対応する）は、複数のデータチャンネルにおけるデータサンプルを含む円形バッファに類似していると考えることができ、各チャンネルにおけるデータサンプルが読み取られた状態で、「円形バッファ」はラップする。ＤＳＰ２２にサンプル同期のデータサンプルを供給するように、この例示的時点において、割り込み３６を発生することができる。
【００４２】
ある一定の実施形態では、装置２００は、デジタルデータ（デジタル音声データ）を音声バス２１４に沿って異なるサンプルレート（例えば、ＤＳＰモジュール２２によって設定されたサンプルレート等）で通信することを可能にする。例えば、本発明の一実施形態では、音声バス２１４上に４０９６個のバッファチャンネル又はタイムスロットが設けられる。この例示的構成では、従って、音声バス２１４は、４８ｋＨｚに対して１個のタイムスロット、９６ｋＨｚに対して２個のタイムスロット、１９２ｋＨｚに対して４個のタイムスロット、更に、３８４ｋＨｚに対して８個のタイムスロットを割り当てることによって３８４ｋＨｚまでのサンプルレートをサポートすることができる。すなわち、所定のサンプルに対して４０９６個のチャンネル又はタイムスロットが存在するために、９６ｋＨｚでは２０４８個のチャンネル又はタイムスロット、１９２ｋＨｚでは１０２４個のタイムスロット、及び３８４ｋＨｚでは５１２個のタイムスロットのみが利用可能である。しかし、装置２００の作動中のいずれかの所定の時点における各サンプルレートに対するタイムスロット数は変更することができ、例えば、３３４８個の４８ｋＨｚタイムスロット、２０４個の９６ｋＨｚタイムスロット、及び８５個の１９２ｋＨｚタイムスロットを備えることができるという状況が生じる可能性があることは認められるものとする。しかし、様々な構成（ビットレート等）又はタイムスロット数は、装置２００によって実行される機能によって変更することができる。例えば、他の実施形態では、プログラマブル作動クロック周波数を備えることができる。例えば、クロック周波数１５０ＭＨｚ、１７５ＭＨｚ、及び２００ＭＨｚを備えることができ、これらは、それぞれ２００７２個、３５８４個、及び４０９６個のタイムスロットに対応する。しかし、これらは、周波数及びタイムスロット数の単なる例であり、実施形態毎に変更することができることは認められるものとする。すなわち、一実施形態では、メディアデータ経路は、複数の異なるビットレートにおいてメディアデータを通信するための合計個数のタイムスロットを含むことができ、複数のビットレートの各１つに割り当てられたタイムスロット数の総計は、タイムスロットの合計個数に等しい。サンプル固定時間ベースモジュール２１０は、音声バス２１４上のサンプルレートに依存する周波数で割り込み３６を発生することになる。
【００４３】
ある一定の実施形態では、ＣＤ標準の４４．１ｋＨｚのような任意サンプルレートは、インジケータビット（有効ビット等）を用いて音声バス４６を通じて通信又は経路指定することができ、このインジケータビットは、処理に向けて新しい有効サンプルが音声バス２１４から検索又は抽出されるべきであることを受信モジュール２２、２０２〜２１０、及び２１８に示すものである。任意サンプルレート（４４．１ｋＨｚのサンプルレート等）は、音声バス２１４を通じて通信され、例示的有効ビットが高い場合には、それぞれのモジュール２２、２０２〜２１０、及び２１８は、データを有効なものであるとして受け取ることができる。これに対して有効ビットが低くなった場合には、それによってモジュール２２、２０２〜２１０、及び２１８には、その後のサンプルを無視することができることが通知される。
【００４４】
一実施形態では、音声バス２１４を通じて可変サンプルレートを通信することができるが、パラメータバス２１６は、制御データを音声バス２１４のサンプルレートとは独立したものとすることができる固定サンプルレート（４８ｋＨｚ等）で通信することができる。
【００４５】
一実施形態では、音声バス２１４は、様々なモジュール２２、２０２〜２１０、及び２１８によって処理される音声データを通信する。しかし、パラメータバス２１６は、関連モジュール２２、２０２〜２１０、及び２１８の機能（例えば、アルゴリズム）を定めるために関連モジュール２２、２０２〜２１０、及び２１８によって用いられるパラメータ又は処理データを含む。従って、制御データは、上述のように、音声バス２１４上のデータが特定のモジュール２２、２０２〜２１０、及び２１８によって如何に処理されることになるかを制御することができる。例えば、パラメータバス２１６は、フィルタモジュール２０６へのフィルタパラメータの通信、サンプルレート変換器モジュール２０４へのサンプルレート変換パラメータの通信、デジタル音声が遅延されることになる遅延時間を定めるモジュール２０２への遅延データの通信などのために用いることができる。すなわち、選択されたアルゴリズムを実行するために、サンプル毎の又は時間ベースのアルゴリズムデータ並びにブロックベースのアルゴリズムデータをＤＳＰ２２に通信することができる。
【００４６】
装置２００においてあらゆる処理待ち時間を低減するために、パラメータデータは、各特定の処理モジュール２２、２０２〜２１０、及び２１８が処理済み音声データを出力すべきタイムスロットの前に処理モジュール２２、２０２〜２１０、及び２１８の各々に供給されねばならないことが認められるであろう。従って、パラメータデータは、音声データが音声バス２１４を通じて処理モジュール２２、２０２〜２１０、及び２１８に到着する前にパラメータバス２１６を通じて特定の処理モジュール２２、２０２〜２１０に通信される。
【００４７】
本発明は、機械（例えば、ＰＣ、プロセッサなど）によって実行された時に本明細書に説明したいずれかの機能を機械に実行させる命令／ソフトウエアを含む機械可読媒体（ＲＡＭ等）に拡張される。本明細書の論旨では、用語「機械可読媒体」は、本発明の方法のいずれか１つを機械に実行させる機械による実行のための一連の命令を格納又は符号化する機能を有するあらゆる媒体を含むように解釈されるべきである。従って、用語「機械可読媒体」は、以下に限定されるものではないが、半導体メモリ、光学及び磁気ディスク、並びに搬送波信号を含むように解釈されるべきである。
【００４８】
すなわち、デジタルメディアストリームを処理する方法及び装置を説明した。本発明は、デジタル音声ストリームの形態のデジタルメディアストリームの処理を参照して説明されたが、本発明は、他のあらゆるデジタルメディアストリーム、例えばデジタルビデオストリームなどの処理に適用することができることは認められるものとする。更に、本発明は、特定の例示的な実施形態を参照して説明されたが、本発明の広範な精神及び範囲から逸脱することなく、これらの実施形態に様々な修正及び変更を加えることができることは明らかであろう。従って、本明細書及び図面は、制限的ではなく例示的な意味であると考えるものとする。
【図面の簡単な説明】
【００４９】
【図１】単一の装置における時間領域及び周波数領域の両方のデータ処理のための本発明の一実施形態による例示的デジタルプロセッサモジュールの概略ブロック図である。
【図２】時間領域又はサンプル毎のデータを処理するための本発明による例示的方法の概略流れ図である。
【図３】同じく本発明による例示的「時間領域割り込みサブルーチン（ＴＤＩＳＲ）」の概略流れ図である。
【図４】例示的デジタル信号プロセッサ（ＤＳＰ）内のフォアグラウンド及びバックグラウンドプロセスの概略流れ図である。
【図５】同じく本発明による例示的ＤＳＰの概略ブロック図である。
【図６】図５の例示的ＤＳＰの更なる詳細を示す図である。
【図７】フォアグラウンドルーチン又はプロセスを実行するための例示的な基本的方法の概略流れ図である。
【図８】共通又は共有メモリを用いたサンプル毎及びブロックベースの機能の間の例示的相互作用の概略流れ図である。
【図９】本発明によるＤＳＰモジュールを含む本発明の一実施形態による例示的デジタル処理システム又はサブシステムの概略流れ図である。
【図１０】図９のデジタル処理システムにおいてデジタルデータを経路指定するための本発明の実施形態による例示的経路指定コントローラ又はホストインタフェースの概略ブロック図である。
【図１１】例示的なホストインタフェースと図５及び６のＤＳＰとの間の例示的相互接続性の概略ブロック図である。
【符号の説明】
【００５０】
２０  デジタル信号プロセッサ（ＤＳＰ）モジュール
３６  割り込み
４２  音声バス
５２、５４  Ｉ／Ｏデータ経路
【図１】
2008504572.tif 000003
【図２】
2008504572.tif 000004
【図３】
2008504572.tif 000005
【図４】
2008504572.tif 000006
【図５】
2008504572.tif 000007
【図６】
2008504572.tif 000008
【図７】
2008504572.tif 000009
【図８】
2008504572.tif 000010
【図９】
2008504572.tif 000011
【図１０】
2008504572.tif 000012
【図１１】
2008504572.tif 000013
【国際調査報告】
2008504572.tif 000014
2008504572.tif 000015