(57)【要約】第１の回路と第２の回路の間でオペレーションを同期するための方法および装置が開示される。この方法は、第１のレートで第１の回路から第１のリングバッファへ受信データを書き込むことを含む。第１のリングバッファは、固定長のバッファエレメントおよびそれぞれの読み取りおよび書き込みバッファポインタを有する。バッファされた受信データは、第２のデータレートで第１のリングバッファから第２の回路へ読み取られる。読み取りおよび書き込みバッファポインタのそれぞれのポジションが検出され、そして読み取りおよび書き込みポインタ間の相対的なポジションは、少なくとも所定の最小のスペーシングを強制するために動的に調整される。動的な調整は、リングバッファからまたはリングバッファへデータの一部を選択的に削除することまたは追加することを備える。
2015528223.tif 000002
【特許請求の範囲】
【請求項１】
第１の回路と第２の回路の間でオペレーションを同期する方法であって、
第１のレートで前記第１の回路から、第１のリングバッファへデータを書き込むことと、前記第１のリングバッファは、固定長のバッファエレメントとそれぞれの読み取りおよび書き込みバッファインジケータを有する、
第２のデータレートで前記第１のリングバッファから前記第２の回路へバッファされたデータを読み取ることと、
前記読み取りおよび書き込みバッファインジケータのそれぞれのポジションを検出することと、そして、
少なくとも所定の最小のスペーシングを強制するために前記インジケータ間の相対的なポジションを動的に調整することと、ここで、前記第１のリングバッファからまたは前記第１のリングバッファへ前記データの一部を選択的に削除するあるいは追加することを備える前記動的に調整することと、
を備える、方法。
【請求項２】
前記第２のデータレートで前記第２の回路から、第２のリングバッファへ送信データを書き込むことと、前記第２のリングバッファは、それぞれの書き込みおよび読み取りポインタを有する、
前記第１のデータレートで第２のリングバッファから前記第１の回路へ前記バッファされた送信データを読み取ることと、
遅延パラメータに基づいて前記第２のリングバッファの読み取りおよび書き込みポインタの前記ポジションを適応的に調整することと、
をさらに備える、請求項１に記載の方法。
【請求項３】
前記遅延パラメータは、前記第１の回路に関して前記第２の回路の作動中の待ち時間を備え、および適応的に調整することは、前記待ち時間を合わせるように前記第２のリングバッファの読み取りおよび書き込みポインタ間の前記相対的なポジションを適応的に調整することを備える、請求項２に記載の方法。
【請求項４】
前記第２のリングバッファに関する前記書き込みポインタは、前記第２の回路に関連する第１のタイミング基準に応じ、前記第２のリングバッファに関する前記読み取りポインタは、前記第１の回路に関連する第２のタイミング基準に応じる、請求項３に記載の方法。
【請求項５】
前記第１のおよび第２のタイミング基準間の位相差は、前記待ち時間に対応する、請求項４に記載の方法。
【請求項６】
前記第１のタイミング基準は、前記第１の回路によって受信されたデータでリカバーされたクロックを備え、前記第２のタイミング基準は、前記第２の回路をクロックするローカルクロックを備える、請求項４に記載の方法。
【請求項７】
第１のタイミング基準に関連する音声符号化回路と第２のタイミング基準に関連する信号プロセッサ間のオペレーションを同期する方法であって、
第１のモードで、それぞれの受信および送信バッファ回路の書き込みおよび読み取りポインタ間の最小のタイミングオフセットを実施することと、前記受信および送信バッファ回路は、前記音声符号化回路と前記信号プロセッサ間のそれぞれの受信および送信パス間で処理され、そして、
第２のモードで、前記音声符号化回路に関する前記信号プロセッサによって示される待ち時間を合わせるように、前記送信バッファ回路の前記読み取りおよび書き込みポインタ間のタイミングオフセットを適応的に調整することと、
を備える、方法。
【請求項８】
前記送信バッファ回路の前記書き込みポインタは、前記第２のタイミング基準に応じ、前記送信バッファ回路の前記読み取りポインタは、前記第１のタイミング基準に応ずる、請求項７に記載の方法。
【請求項９】
前記第１のタイミング基準は、前記音声符号化回路に関連するデータからリカバーされるクロックを備え、前記第２のタイミング基準は、前記信号プロセッサをクロックするローカルクロックを備える、請求項８に記載の方法。
【請求項１０】
集積回路デバイスであって、
第１のタイミング基準に応じた第１の回路、
第２のタイミング基準に応じた第２の回路、そして、
受信書き込みポインタに応答して前記第１の回路からデータを受信するように作動する受信リングバッファを含むバッファ回路と、前記受信リングバッファは、受信読み取りポインタに応答して前記第２の回路にデータを送信するように作動する、
ここで、前記第２の回路は、前記受信読み取りおよび書き込みポインタ間の相対的なポジションを、それらの間の所定の最小のスペーシングを強制するために、調整する、
を備える、集積回路デバイス。
【請求項１１】
送信書き込みポインタに応じて、前記第２の回路からデータを受信し、送信読み取りポインタに応じて、前記第１の回路に送信データを送信するための送信リングバッファ、ここで、前記送信書き込みポインタは前記第２のタイミング基準に同期される、および前記送信読み取りポインタは前記第１のタイミング基準に同期される、
をさらに備える、請求項１０に記載の集積回路デバイス。
【請求項１２】
前記第１の回路は、パルス符号変調（ＰＣＭ）コントローラを備え、前記第２の回路は、ソフトＤＳＰ回路を備える、請求項１０に記載の集積回路デバイス。
【請求項１３】
前記第１のタイミング基準は、前記第１の回路に関連するデータからリカバーされた、リカバーされたクロック信号であり、前記第２のタイミング基準は、ローカルクロック信号を備える、請求項１０に記載の集積回路デバイス。
【請求項１４】
前記第２の回路は、
前記送信読み取りおよび書き込みポインタ間の前記相対的なポジションを検出するように、および前記送信読み取りおよび書き込みポインタ間で検出された遅延のしきい値レベルに基づいて前記相対的なポジションを適応的に調整するように、作動する論理を備える、請求項１０に記載の集積回路デバイス。
【請求項１５】
前記第２の回路は、前記第１の回路に関する待ち時間を示し、前記適応的に調整することは、前記待ち時間を合わせるように前記送信読み取りおよび書き込みポインタ間の前記相対的なスペーシングを再位置づけする、請求項１４に記載の集積回路デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本明細書の実施形態は、一般にデータ通信に関し、より具体的には、データをバッファするためのフロー制御を提供する方法および装置に関する。
【背景技術】
【０００２】
[0002]  回路間のデータ転送は、多くのファクタが原因で非同期になることが多い。例えば、ボイスオーバＩＰ（ＶＯＩＰ）アプリケーションにおいて、（パルス‐符号‐変調ＰＣＭ符号化のような）アナログ‐デジタル符号化は、信号プロセッサがそれを受け取る（accept）ことができるレートと異なるレートでデータを生成し得る。バッファ回路は、典型的に、そのような回路間で通信されているデータのフローおよび減退（ebb）を、処理（handle）および吸収するための動的な手段（dynamic way）を提供する。
【０００３】
[0003]  １つの典型的なバッファリングの解決策は、固定数の（a fixed number of）バッファエレメントを有するリングまたは循環バッファ（ring or circular buffer）を用いる。それぞれの読み取りおよび書き込みポインタまたはインデックスは、利用可能なバッファ記憶容量をトラック（track）する。いくつかの状況では、バッファはフルになり得、バッファ内の最も古いデータの上書きを引き起こす。インデックスは、同じバッファエレメント位置を両方が指すことによってこの状態を識別する。上書きが原因でデータが失われる場合、システム中でノイズが生じ得る。
【０００４】
[0004]  上書きを最小にするために、大きいバッファ構成が用いられ得る。大きいバッファは、例えば、ＰＣＭコントローラとデジタルシグナルプロセッサ（ＤＳＰ）間で作動中の多様な遅延を処理する（handle）ことが可能であり得る。残念ながら、大きいバッファを用いることは、システム待ち時間および回路スペースに、対応する増加を生じさせる。
【発明の概要】
【０００５】
[0005]  第１の回路と第２の回路の間でオペレーションを同期する方法が開示される。この方法は、第１のデータレートでデータを受信することと、そのデータをバッファすることに関わる。バッファすることは、固定長の（fixed length of）バッファエレメントおよびそれぞれの読み取りおよび書き込みバッファインジケータを有するバッファ回路によって処理される。バッファされたデータは、第２のデータレートで第２の回路に送られる（delivered）。第２のデータレートは、読み取りおよび書き込みバッファインジケータ間で強制（enforce）される最小のオフセットに基づく。オフセットの強制は、読み取りおよび書き込みバッファインジケータのそれぞれの位置を検出すること、ならびに少なくとも最小のオフセットを維持するために、インジケータ間の相対的なスペーシング（relative spacing）を動的に調整することによって、処理される。
【図面の簡単な説明】
【０００６】
[0006]  本明細書の実施形態は、例として例示され、添付図面の図によって限定されるように意図されていない。
【図１】[0007]  図１は、データの適応オフセット同期を提供するためにバッファ回路を用いるシステムの１つの実施形態のブロック図である。
【図２】[0008]  図２は、図１のシステムのためのオペレーションの１つのモードに関わるステップを例示する流れ図である。
【図３】[0009]  図３は、図１のシステムのためのオペレーションの第２のモードに関わるステップを示す流れ図を例示する。
【発明を実施するための形態】
【０００７】
[0010]  本明細書の実施形態に従って、第１の回路と第２の回路の間でオペレーションを同期するための方法および装置が開示される。この方法は、第１のレートで第１の回路から第１のリングバッファへ受信データ（receive data）を書き込むことに関わる。バッファは、固定長のバッファエレメントとそれぞれの読み取りおよび書き込みバッファインジケータを有する。バッファされた受信データは、第２のデータレートでリングバッファから第２の回路へ読み取られる。読み取りおよび書き込みバッファインジケータのそれぞれのポジションは検出され、インジケータ間の相対的なポジションは、少なくとも所定の最小のスペーシングを強制するために動的に調整される。この動的な調整は、リングバッファへまたはリングバッファからデータの一部を選択的に追加することまたは削除することを備える。結果的として、バッファされたデータへの上書きは最小にされ得、同時にシステム待ち時間も最適化し得る。
【０００８】
[0011]  続く説明において、本願の開示の十分な理解を提供するために、例えば、具体的なコンポーネント、回路およびプロセス等の多数の具体的な詳細が説明される。また、続く説明において、説明の目的で、本明細書の実施形態の十分な理解を提供するために、具体的な専門語が説明される。しかしながら、これらの具体的な詳細が本明細書の実施形態を実行するために必要とされない可能性があることは、当業者には明白であろう。他の例では、周知の回路およびデバイスが、本願の開示を不明確にすることを避けるために、ブロック図の形式で示される。本明細書で使用される「結合された（coupled）」という用語は、１つ以上の介在する（intervening）コンポーネントまたは回路を通して結合されること、あるいは直接結合されることを意味する。本明細書で説明される多様なバスを通して提供される信号はいずれも、他の信号と時分割多重化され得（time-multiplexed with）、１つ以上の共通のバスを通して提供され得る。加えて、回路エレメントまたはソフトウェアブロック間の相互接続（interconnection）は、バスとしてまたは単一の信号線として示され得る。バスの各々は、代わりに単一の信号線であり得、単一の信号線の各々は、代わりにバスであり得、単一の線またはバスは、コンポーネント間の通信のための無数の物理的または論理的なメカニズムのうちの任意の１つ以上を表してもよい。本明細書の実施形態は、本明細書で説明される具体的な例に限定されるように解釈されるべきではなく、添付の特許請求の範囲によって定義される全ての実施形態をそれらの範囲内に含むと解釈されるべきである。
【０００９】
[0012]  より具体的には、一般に図１を参照して、信号処理オペレーションを実行するための集積回路（ＩＣ）デバイス１０２が示される。１つの具体的な実施形態では、信号処理はボイスオーバインターネットプロトコル（ＶＯＩＰ）通信に関わる。ＶＯＩＰ通信は、一般に、アナログ音声信号をとらえること（capturing）、その音声信号をデジタル化および符号化（encoding）すること、インターネットを介して送信するためにふさわしい方法でデジタル化された音声を処理することに関わる。ＶＯＩＰを介しての会話（conversation）は、従って、２つのリモートポイント間の双方向通信、および通信に関連する往復待ち時間に関わる。１つの具体的な実施形態では、ＶＯＩＰ処理を実行するために、ＩＣデバイス１０２は、バッファ回路１０７を介してデジタルシグナルプロセッサ（ＤＳＰ）等のような信号プロセッサ１０６とインタラクトするパルス符号変調（ＰＣＭ）コントローラ１０４を用いる。
【００１０】
[0013]  さらに図１を参照すると、１つの具体的な実施形態では、集積回路デバイス１０２は、データＩ／Ｏインタフェース回路１１２に結合された１つ以上のピン１０３で音声データを受信する。インタフェース回路１１２は、一般に、ＩＣデバイス１０２が多様な物理的な伝送媒体とインタフェースで接続する（interface with）ことを可能にする送信および受信電気回路（示されていない）を含む。明確さの目的で、１つのピン１０３しか示されていないが、複数のインタフェースピンが並列または直列スキーム（parallel or serial scheme）でデータを転送するために用いられ得ることが理解されるべきである。１つの実施形態では、リカバーされたクロック信号ＲＣＬＫ（recovered clock signal ＲＣＬＫ）の形式でタイミング基準（timing reference）を形成するために、タイミング情報は受信された音声データを伴う。さらに、ＩＣのための有線データインタフェースが示されるおよび説明されるが、無線インタフェースも用いられ得、そのような状況では、インタフェースは、適切なＲＦ変調電気回路を含むことになり、アンテナ電気回路に関連する。
【００１１】
[0014]  インタフェース１１２は、ＰＣＭコントローラ１０４に結合し、受信された音声信号のアナログ‐デジタル変換、ならびに、信号プロセッサ１０６によって処理される、および信号プロセッサ１０６から送信される信号のデジタル‐アナログ変換をもたらす。ＰＣＭコントローラは、音声信号を符号化する単に１つの方法であり、様々な異なる符号化アルゴリズムが用いられ得る。それぞれのアナログ‐デジタル（ＡＤＣ）およびデジタル‐アナログ（ＤＡＣ）コンバータ（示されていない）は、当業者に周知であるように、信号変換を実行する。ＰＣＭコントローラ１０４は、一般に、リカバーされたクロック信号ＲＣＬＫに関して一致したデータレートで作動し、インタフェース１１２を介して転送される受信Ｒｘおよび送信Ｔｘデータのアナログ‐デジタルおよびデジタル‐アナログ変換を実行する。ＰＣＭコントローラ１０４は、ＩＣデバイス１０２に配置されるように示されるおよび説明されるが、これは、別個のＩＣデバイスに存在し得る、ならびに、信号プロセッサ１０６と分離されてまたは組み合わさってパッケージ化され得る。
【００１２】
[0015]  信号プロセッサ１０６は、専用のデジタルシグナルプロセッサ（ＤＳＰ）またはホストベースのソフトＤＳＰを含むいくつかの形式のうちの１つをとり得る。信号プロセッサ１０６は、オンチップクロック（示されていない）によって生成されるローカルクロック信号ＣＬＫによってクロック（clocked）され得、ＰＣＭコントローラ１０４のレートと類似したレートで作動する。しかしながら、時折の優先争い（priority conflict）が原因で、信号プロセッサ１０６は、ＰＣＭコントローラ１０４に同期することができない可能性がある。
【００１３】
[0016]  さらに図１を参照すると、バッファ回路１０７は、ＰＣＭコントローラ１０４と信号プロセッサ１０６との間のデータレートの不整合を処理するために、それらの間に配置される。１つの実施形態では、バッファ回路１０７は、リングバッファの形式をとるそれぞれの受信および送信バッファ１０８および１１０を含む。各リングバッファは、固定数のバッファ記憶セル１１１ならびにそれぞれの読み取りおよび書き込みインデックスまたはポインタを含み得る。受信バッファ１０８は、従って、受信読み取りポインタＲＩＲｘおよび受信書き込みポインタＷＩＲｘを用い、そして送信バッファ１１０は、送信読み取りポインタＲＩＴｘおよび送信書き込みポインタＷＩＴｘを用いる。
【００１４】
[0017]  受信バッファ１０８に関して、受信読み取りポインタＲＩＲｘは、信号プロセッサ１０６にどのくらいのデータが送られたかをそれのポインタポジションによって示す。ポジションのインジケーションは、次の読み取りオペレーションで読み取られることになるバッファ記憶セル１１１のアドレスを表すカウントの形式（form of a count）をとり得る。１つの実施形態では、受信読み取りポインタＲＩＲｘは、読み取りオペレーションのためのそれのタイミング基準としてのローカルクロック信号ＣＬＫに応答する。言い換えれば、受信読み取りポインタＲＩＲｘは、それのタイミング基準としてのローカルクロックＣＬＫを使用して、クロックサイクルごとにそのセルの内容を読み取るために、それの次のセル位置にインクリメントする（increment）。
【００１５】
[0018]  他方では、受信バッファ１０８に関する受信書き込みポインタＷＩＲｘは、それのタイミング信号としてリカバーされたクロック信号ＲＣＬＫを利用し、受信バッファ１０８にどのくらいのデータがロードされたかを受信読み取りポインタＲＩＲｘと類似したカウント値によって示す。読み取りおよび書き込みポインタが、それぞれのポジションを同じ受信バッファ記憶セルで示し、バッファに書き込まれるデータの量がバッファから読み取られるデータの量に一致する場合、したがってフルバッファを示す。結果として、さらなるバッファ容量の無い任意のさらなる書き込みオペレーションは、既存のデータを上書きすることになる。
【００１６】
[0019]  受信および送信バッファ１０８および１１０の読み取りおよび書き込みインデックスをクロックするためのタイミング基準は、ＰＣＭコントローラ１０４と信号プロセッサ１０６間の同期およびデータ品質を最大化する形でリカバーされたおよびローカルクロックＲＣＬＫおよびＣＬＫ間に構成される。この目的を達成するために、受信バッファ１０８に関する受信読み取りポインタＲＩＲｘおよび送信バッファ１１０に関する送信書き込みポインタＷＩＴｘがローカルクロックＣＬＫによってクロックされる一方、受信バッファ１０８に関する受信書き込みポインタＷＩＲｘおよび送信バッファ１１０に関する送信読み取りポインタＲＩＴｘは、リカバーされたクロックＲＣＬＫによってクロックされる。
【００１７】
[0020]  上書きを避けるため、さらにバッファサイズと待ち時間を最小にするために、１つの実施形態では、信号プロセッサ１０６は、各リングバッファの読み取りおよび書き込みポインタ間の相対的なスペーシングをモニタおよび検出するモードで作動する。検出に基づいて、信号プロセッサ１０６は、バッファが既存のデータを上書きすることの発生を最小にするための読み取りおよび書き込みポインタ間の最小のスペーシングを強制する。「スペーシング」は従って、上書きが発生する前にバッファ回路１０７によって受け入れられる（absorbed）ことができる非同期オペレーションに値する読み取り／書き込みサイクルの数を表す。
【００１８】
[0021]  信号プロセッサ１０６は、音声通信（audio transmission）間のサービス品質に重大な影響を与え得るＰＣＭコントローラ１０４と信号プロセッサ１０６間の望ましくない待ち時間を検出する第２のモードでも、作動する。それに応じて、信号プロセッサ１０６は、信号プロセッサ１０６の待ち時間を合わせる（match）ように送信バッファの読み取りおよび書き込みポインタＲＩＴｘおよびＷＩＴｘ間のスペーシングを適応的に調整する（adaptively adjust）。これは、仮にデータが調整を通して失われ得るとしても実行される。つまり、上書きが避けられ得るだけでなく、ＰＣＭコントローラ１０４と信号プロセッサ１０６間の最適なレベルの同期が達成され得る。
【００１９】
[0022]  図２は、上で暗に示されたオペレーションの第１のモードに対応するオペレーションの方法を提示するステップの流れ図を例示する。ステップ２０２において、ＶＯＩＰ通信の間、音声データは、ＩＣデバイス１０２によってインタフェース１１２で受信され、受信された音声データからリカバーされたクロック信号ＲＣＬＫに対応するレートでＰＣＭ符号化するためにＰＣＭコントローラ１０４に供給される（fed to）。ステップ２０４において、ＰＣＭ符号化されたデータは次に、リカバーされたクロックＲＣＬＫによって決定づけられる（dictated by）レートで受信書き込みポインタＷＩＲｘが示すポジションで受信バッファ１０８に書き込まれる。ステップ２０６において、前に書き込まれてバッファされたデータはそれから、ローカルクロックレートＣＬＫで受信バッファ１０８から信号プロセッサ１０６へ読み取られる。ステップ２０８において、信号プロセッサ１０６は、ポインタが最小のスペーシングを実際に示す（exhibit）かどうかの第１の決定（書き込みおよび読み取りポインタカウントの比較または同等のものを通した）によって、書き込みおよび読み取りポインタ間の最小のスペーシングを強制する。カウントがふさわしい最小のスペーシングを反映（reflect）する場合、するとさらなるデータが、ステップ２０２から始まって、バッファを循環する（cycled）。しかしながら、ステップ２１０において、カウントが所望のしきい値より小さいオフセットを反映する場合、ポインタは、オフセットを実現するために互いに対して調整される。現時点では、その方法は、データ受信ステップ２０２にまた繰り返して適用され、またはＰＣＭコントローラ１０４と信号プロセッサ１０６間の待ち時間に対処するさらなるモードに携わり得る（バブル「Ａ」（bubble “A”）を経由して）。
【００２０】
[0023]  次に図３を参照すると、ＰＣＭコントローラ１０４と信号プロセッサ１０６間の望ましくない待ち時間は、３０２において、回路間で作動中の遅延または待ち時間を検出することによって相殺され得（be compensated）、そしてステップ３０４において、待ち時間のしきい値が上回られるかどうかを決定する。極端な待ち時間は、例えばバッファの上書きによって引き起こされる周期的な損失データ問題に加え、重要な品質問題を引き起こし得る。待ち時間のしきい値が限度内（within limits）である場合、オペレーションは、図２のデータ受信ステップ２０２で再開する（バブル「Ｂ」を経由して）。
【００２１】
[0024]  しかしながら、ステップ３０４において、待ち時間のしきい値が上回られる場合、ステップ３０６において、送信バッファの読み取りおよび書き込みポインタの相対的なポジションは、プロセッサの待ち時間を合わせるように適応的に調整される。１つの実施形態では、これは、待ち時間が限度内に入るまで反復の方法で（in an iterative manner）送信書き込みポインタＷＩＴｘのポジションを調整することによって実行される。ある例では、これは、送信書き込みポインタＷＩＴｘの適応調整が原因で取り除かれたバッファセル位置（１つまたは複数の）に存在するデータの一時的なデータ損失を引き起こし得る。データを失うことは、世間一般の通念に反するが、これは、データを保持することおよび待ち時間を容認すること（tolerating）より最適なサービス品質のためにより有益であると判断された。
【００２２】
[0025]  当業者は、本明細書で説明された実施形態によって与えられた利益および利点を理解するであろう。最小の読み取りおよび書き込みポインタオフセットを実施することができるオペレーションの第１のモードを提供することによって、バッファの上書きが原因のデータの損失は最小にされ得る。また、待ち時間の考慮（latency consideration）に基づいて送信ポインタを適応的に調整するためのオペレーションの第２のモードを提供することによって、最適なサービス品質が達成され得る。
【００２３】
[0026]  前述の明細書では、本明細書の実施形態は、その具体的な例示の実施形態に関して説明された。しかしながら、添付の特許請求の範囲で説明される本開示の広範な趣旨および範囲から逸脱することなく、それに多様な修正および変更がなされ得ることは明白であろう。例えば、本明細書で提供された説明の大半は、ＶＯＩＰの文脈における音声データ同期に関する。しかしながら、様々なアプリケーションは、映像ベースのデータアプリケーション、ベーシックネットワーキングデータ転送アプリケーション等を含む本明細書の教示から利益を享受し得る。その結果、本明細書および図面は、限定的な意味でなく、例示的な意味でみなされるべきである。
【図１】
2015528223.tif 000003
【図２】
2015528223.tif 000004
【図３】
2015528223.tif 000005
【国際調査報告】
2015528223.tif 000006
2015528223.tif 000007