(57)【特許請求の範囲】
【請求項１】
通信システムにおける応答時間とシステム・レイテンシとの間のバランスを達成する方法であって、
第１のバッファ・サイズを有するサンプル・バッファを用いるステップと、
第２のバッファ・サイズを有するサンプル・バッファを用いるステップであって、前記第１のバッファ・サイズを有する前記サンプル・バッファは前記第２のバッファ・サイズを有する前記サンプル・バッファと比較して迅速な応答時間を有しており、前記第２のバッファ・サイズを有する前記サンプル・バッファは前記第１のバッファ・サイズを有するサンプル・バッファと比較してシステム・レイテンシに適応することができる、ステップと、
前記第１のバッファ・サイズを有するサンプル・バッファと前記第２のバッファ・サイズを有するサンプル・バッファとの間を動的に切り換えるステップと、
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記切り換えは前記通信システムの動作要求に応答して実行されることを特徴とする方法。
【請求項３】
請求項１記載の方法において、前記システム・レイテンシは割り込みレイテンシを含むことを特徴とする方法。
【請求項４】
請求項１記載の方法において、前記システム・レイテンシはバス・レイテンシを含むことを特徴とする方法。
【請求項５】
請求項１記載の方法において、前記システム・レイテンシは割り込みレイテンシとバス・レイテンシとを含むことを特徴とする方法。
【請求項６】
請求項１記載の方法において、前記切り換えはデータを全く損失することなく実行されることを特徴とする方法。
【請求項７】
請求項１記載の方法において、前記第２のバッファ・サイズは前記第１のバッファ・サイズよりも大きいことを特徴とする方法。
【請求項８】
請求項１記載の方法において、この方法はモデムを動作させるのに用いられ、前記サンプル・バッファの少なくとも１つのサイズは、モデム接続が再初期化又は再起動されるときに、前記第１のバッファ・サイズに切り換えられることを特徴とする方法。
【請求項９】
請求項１記載の方法において、この方法はモデムを動作させるのに用いられ、前記サンプル・バッファの少なくとも１つのサイズは、リトレイン・シーケンスが初期化されたときに、前記第１のバッファ・サイズに切り換えられることを特徴とする方法。
【請求項１０】
請求項９記載の方法において、前記通信システムはＶ．３２、Ｖ．３２ｂｉｓ及びＶ．３４のグループから選択された国際電気通信連合規格を実施する方法。
【請求項１１】
通信システムにおける応答時間とシステム・レイテンシとの間のバランスを達成するシステムであって、
第１のバッファ・サイズを有するサンプル・バッファと、
第２のバッファ・サイズを有するサンプル・バッファであって、前記第１のバッファ・サイズを有する前記サンプル・バッファは前記第２のバッファ・サイズを有する前記サンプル・バッファと比較して迅速な応答時間を有しており、前記第２のバッファ・サイズを有する前記サンプル・バッファは前記第１のバッファ・サイズを有するサンプル・バッファと比較してシステム・レイテンシに適応することができる、サンプル・バッファと、
前記第１のバッファ・サイズを有するサンプル・バッファと前記第２のバッファ・サイズを有するサンプル・バッファとの間を動的に切り換えることができる切り換え装置と、
を備えていることを特徴とするシステム。
【請求項１２】
請求項１１記載のシステムにおいて、前記切り換えは前記通信システムの動作要求に応答して実行されることを特徴とするシステム。
【請求項１３】
請求項１１記載のシステムにおいて、前記システム・レイテンシは割り込みレイテンシを含むことを特徴とするシステム。
【請求項１４】
請求項１１記載のシステムにおいて、前記システム・レイテンシはバス・レイテンシを含むことを特徴とするシステム。
【請求項１５】
請求項１１記載のシステムにおいて、前記システム・レイテンシは割り込みレイテンシとバス・レイテンシとを含むことを特徴とするシステム。
【請求項１６】
請求項１１記載のシステムにおいて、前記切り換えはデータを全く損失することなく実行されることを特徴とするシステム。
【請求項１７】
請求項１１記載のシステムにおいて、前記第２のバッファ・サイズは前記第１のバッファ・サイズよりも大きいことを特徴とするシステム。
【請求項１８】
請求項１１記載のシステムにおいて、モデムがこのシステムを用い、前記サンプル・バッファの少なくとも１つのサイズは、モデム接続が再初期化又は再起動されるときに、前記第１のバッファ・サイズに切り換えられることを特徴とするシステム。
【請求項１９】
請求項１１記載のシステムにおいて、モデムがこのシステムを用い、前記サンプル・バッファの少なくとも１つのサイズは、リトレイン・シーケンスが初期化されたときに、前記第１のバッファ・サイズに切り換えられることを特徴とするシステム。
【請求項２０】
請求項１９記載のシステムにおいて、前記通信システムはＶ．３２、Ｖ．３２ｂｉｓ及びＶ．３４のグループから選択された国際電気通信連合規格を実施するシステム。
【発明の詳細な説明】
発明の分野
本発明は、通信システムに関し、更に特定すれば、ネイティブ信号処理（ＮＳＰ：native signal processing）を利用したモデムに関するものである。
発明の背景
従来の全二重通信システムは、通常、図１に示す従来技術のモデム１２のように、専用のハードウエアを用いて実施されている。モデム１２は、その中核としてのディジタル信号プロセッサ（ＤＳＰ：digital signal processor）集積回路（ＩＣ）１８、ランダム・アクセス・メモリ（ＲＡＭ）２０、ディジタルーアナログ変換器（Ｄ／Ａ）２４、アナログーディジタル変換器（Ａ／Ｄ）２６、およびデータ・アクセス構成（ＤＡＡ：data access arrangement）２８を含む。モデム１２は、バス・インターフェース回路１６を介して、ホスト・コンピュータ・バスに結合された状態で示されている。ホスト・コンピュータ中央処理装置（ＣＰＵ）１４は、モデム１２を介して伝送するデータを発生し、モデム１２によって受信したデータを受け取る。
図１に示す形式のようなＤＳＰを基本とするモデムは、一般的に、入力Ａ／Ｄ変換器２６からの比較的少数のサンプルを処理し、同様の少数のサンプルを発生し、Ｄ／Ａ変換器２４に出力することによって動作する。これらのシステムは、特定の実施態様に応じて、「サンプル」毎または「シンボル」毎に動作すると言われる。かかる方式では、入力がほぼ直ちに処理されるので、読出し時間（レイテンシ時間：latency time）が最短で済むという利点がある。しかしながら、これらの方式は、非常に大きな計算能力を必要とするが、この計算能力は通常専用ＤＳＰによって供給される。
図１に示すようなモデムは非常に強力であり得るが、専用のＤＳＰハードウエアを必要とするため、比較的高価である。したがって、パーソナル・コンピュータ業界における最近の傾向は、追加の処理ハードウエアを必要とせずに、内蔵型の汎用ＣＰＵを利用することによって、モデムを実装する方向にある。このため、モデムは、同じ処理ユニット上のシステムが実行する他のタスクと、ＣＰＵ時間を分配しなければならない。典型的なコンピュータのＣＰＵでは、分配は、「タイム・スライス（time slice）」に基づきオペレーティング・システムによって管理される。各スライスの間、異なるタスクが実行される。タスクの実行は、現タイム・スライスの終了を示す周期的タイマが発生する割り込み、または何らかのイベント（例えば、データのサンプルが得られたこと）の発生を示す他のいずれかのハードウエア・デバイス（例えば、Ａ／Ｄ変換器）が発生する割り込みによって、切り替える（preempt）ことができる。
割り込み機構は、現在実行中のタスクを、可能な限り短い時間で割り込みを処理するタスクに切り換える（switch）ように設計されているが、実際には、割り込みが実際に処理される前に相当な量の時間がかかる場合がある。この時間遅延は、ハードウエアの遅延、コンピュータ・システムにおける多数の割り込み源（ソース）、またはある割り込みに与えられる他の割り込みに対する優先度によって発生する可能性がある。実際の割り込みトリガの発生と割り込み処理ルーチンの実行開始との間の時間は、「割り込みレイテンシ（interrupt latency）」と定義されている。ＰＣ環境における典型的な割り込みレイテンシは、０ないし５ミリ秒の範囲である。しかしながら、ＰＣ環境では、実行中のプログラムが、予め規定されている時間以内に制御を放棄するという保証はない。行儀のよい（well behaved）プログラムの場合は、不当な時間期間にわたってＣＰＵを支配しないことを予測し得るが、タスクによっては、比較的長い時間期間にわたってＣＰＵ資源を解放しないものもある。
したがって、従来のＤＳＰを基本とするモデムのネイティブ処理環境（ＮＳＰ）への直接的単純な移行（転換）には非常に問題が多い。何故なら、「リアル・タイム」処理要件を満たすためには、各サンプル（またはシンボル）毎にモデム・タスクを実行すること、および次のサンプル（シンボル）が到達する前にその実行を完了していることが必要となるからである。サンプル（またはシンボル）の到達とモデムの作動との間の時間を最短に抑えるために、直接的移行を実施するのでは、各サンプル（即ち、シンボル）の到達時に、割り込みを発生することになるであろう。このような実施では、リアル・タイムの制約を克服することは余りに困難であり、長い割り込みレイテンシのためにモデム・ルーチンを時間通りに実行することが不可能となり、その結果データの損失が発生する恐れがある。この問題は、モデム・ルーチンを、１つのサンプルだけではなく、サンプルのバッファ（buffer）に対して動作させるように設計することによって克服可能となる。サンプルのバッファは、連続するモデム・ルーチンへのコールとコールとの間の時間期間が長くなることを意味する。この場合のリアル・タイムの要件は、サンプルの入力バッファを処理し送信のための出力バッファを生成するための時間が、バッファを受信/送信する際に要する時間よりも短いことである。
しかしながら、このバッファ処理方式は、新たな問題を引き起こす。バッファの先頭で受信されたサンプルは、バッファ全てを受信した後でないと処理されないので、これには固有の遅延という欠点がある。この欠点は、ＩＴＵ  Ｖ．３２ｂｉｓ  １４，４００ｂｐｓモデム規格のような、高速データ・ポンピング（pumping）モデムとは相容れないものものである。ＩＴＵ  Ｖ．３２ｂｉｓ  １４，４００ｂｐｓモデム規格では、サンプルを処理し、接続の他端に位置するモデムからのある種の信号に応答する場合に、厳しい時間制約を賦課する。例えば、Ｖ．３２ｂｉｓ規格は、モデム接続の開始時に、レンジング（ranging）段階を含む。この段階の間、他のモデムのレンジング信号に応答する最大応答時間を２６．６ｍｓとすることが、仕様によって要求される。信号検出から応答の送信までの最短処理時間（ターン・アラウンド時間：turn around time）は、サンプルの獲得、処理、割り込みレイテンシ、およびバッファの送信を考慮に入れなければならない。
発明の概要
本発明は、ＮＳＰを基本とする全二重通信システムの実施（インプリメンテーション）において、前述した問題を軽減するために開発された。これらの問題には、インプリメンテーション・オーバヘッド等の処理を最適化しかつこれを可能とすることに加えて、割り込み、オペレーティング・システムおよびその他のタスクに関連するレイテンシに対する抵抗力の必要性が含まれる。前述したように、伝送ビット・レートが増々高くなるに従って、公衆電話交換網（ＰＳＴＮ：public switched telephone network）にモデムを実装する場合に、厳しい時間制約が存在する。殆どの通信システムでは、この時間制約は通常通信リンクの初期設定中、特に、モデム接続のレンジング・フェーズの間に存在する。
より高いビット・レートの規格、例えば、Ｖ．３２およびＶ．３４を実施可能なＮＳＰモデムを設計する１つの解決策は、本発明の教示によれば、ＮＳＰモデムの内部で非固定サイズのバッファを利用することである。バッファ・サイズを可変とすることにより、ＮＳＰソフトウエアを規格の制約に適合化させることが可能となる。小さなバッファは、短く正確な応答時間を通信システムに与える。一方、バッファ・サイズを大きくすると、モデム処理のローバスト（robust）性が向上し、インプリメンテーション・オーバーヘッドが減少するので、オペレーティング・システムのレイテンシに対する強化を図り、タイム・スライス内即ち割り込み間において正確な時点で柔軟性を高めることになり、データ流を混乱させることなく、処理を行うことが可能となる。タスクのローバスト性が向上すれば、行儀のよくない他のタスク、即ち、比較的長い時間期間にわたってＣＰＵを解放しない他のタスクの影響を受けにくくなる。
システムが定常状態にあり、応答時間が長くても対処できる場合、より大きなバッファの処理を可能とすべきである。かかるシステムでは、データのオーバーラン/アンダーラン（overruns/underruns）またはその他のエラーを発生することなく、バッファ・サイズを増大可能な時間点に到達する。
加えて、本発明によって教示されるバッファの切り換えは、データの損失を全く伴わない。切り換えは、データ損失を全く生ずることなく、円滑にかつコヒーレントに行われる。ここでは、コヒーレンシ（coherency）とは、入力サンプルや出力サンプルの逸失や破棄がないことと定義する。
したがって、本発明の目的は、高ビット・レートのＮＳＰを基本とする通信を可能とすることによって、従来技術に伴う問題を克服するシステムを提供することである。
本発明の他の目的は、所望のレイテンシ時間期間に応じて、そのデータ・バッファのサイズを様々に変更可能なシステムを提供することである。
本発明の更に他の目的は、オーバーランや他のデータ・エラーを生ずることなく、そのデータ・バッファのサイズを様々に変更可能なシステムを提供することである。
本発明の他の目的は、通信信号処理プロセスへのコールの相対的なインプリメンテーション・オーバーヘッドを低減させることによって、ＣＰＵのようなシステム資源の使用を最適化するシステムを提供することである。
本発明の更に他の目的は、長いデータ・ブロックに対して効率が高くなる、ブロック最適化信号処理技法を用いることによって、プロセッサの使用を最適化するシステムを提供することである。
本発明は、信号受信および送信双方のために、バッファ・インターフェースを利用する全二重通信システムを開示する。このバッファ・インターフェースは、入力サンプルも出力サンプルも全く失うことなく、異なるサイズのバッファ間で切り換えを行う機構を含む。本発明のバッファ切り換えを基本とする通信システムは、１群（グループ）の入力サンプルを収集し、それらをバッファ内に配置する。次に、本システムは、バッファ内に収容されたサンプルを処理し、送信すべきサンプルのバッファを生成する。受信バッファおよび送信バッファは、典型的には、同一長さのものである。サンプル・バッファの長さは、当該バッファを格納するために割り当てられなければならないメモリを決定し、更に、レイテンシ時間も決定する。レイテンシは、入力ポートにおけるイベントの発生から、当該入力ポートにおけるイベントに応答しての出力ポートにおける他のイベントの発生までの最短通信システム応答時間として定義する。最悪の場合のレイテンシは、バッファを満たすのに要する時間の正確に２倍として示されている。
初期起動シーケンスの間、比較的短く精度の高い応答時間が要求される。したがって、このフェーズでは、短いバッファを用いる。しかしながら、後の長い期間（即ち、定常状態）では、長いバッファの方が効率的となる。したがって、モデムが異なるサイズのバッファに切り換える、ある時点が存在する。バッファの切り換えは、コヒーレンシを全く失うことなく（即ち、入力ポートや出力ポートにおいて全くデータを失うことなく）行われる。
したがって、好適な実施形態によれば、通信システムにおいて、一方では、処理応答時間の平衡（バランス）を達成し、他方では、割り込みレイテンシおよびプロセッサのインプリメンテーション・オーバーヘッドに対するローバスト性を達成する方法が提供される。
したがって、好適な実施形態によれば、通信システムにおいて、一方では処理応答時間、他方では割り込みレイテンシおよびプロセッサのインプリメンテーション・オーバーヘッドに対するローバストネス（頑強性）の間の平衡を達成する方法が提供され、この方法は、迅速な処理応答時間を有するように通信システムを最適化することが望ましい場合、第１のバッファ・サイズを有するデータ・バッファを利用するステップと、割り込みレイテンシに対するローバスト性を得ると共に、プロセッサのインプリメンテーション・オーバーヘッドを減少させるように通信システムを最適化することが望ましい場合、第２のバッファ・サイズを有するデータ・バッファを利用するステップとを含む。
加えて、先の方法は、更に、切り換え手段を備え、第１のバッファ・サイズを有するバッファの使用と、第２のバッファ・サイズを有するバッファの使用との間で、前記通信システムが切り換えを行うことを可能とするステップを含む。また、データの損失を全く生ずることなく、バッファのサイズをコヒーレントに切り換え、第２のバッファ・サイズは第１のバッファ・サイズよりも大きい。加えて、モデム接続を再初期化または再起動する場合、第２のバッファ・サイズをより小さいサイズに再度切り換える。リトレイン・シーケンス（retrain sequence）を初期化した場合、第２のバッファ・サイズをより小さいサイズに再度切り換え、通信システムが、Ｖ．３２、Ｖ．３２ｂｉｓ、およびＶ．３４のグループから選択された、国際電気通信連合（ＩＴＵ）規格を実施する。
更に、本発明の好適な実施形態によれば、通信システムを実施する方法が提供される。この通信システムは、送信機、エコー・キャンセラ、および受信機を備え、この方法は、エコー・キャンセラを利用して、タイム・スライスＫ−１の間に送信された遅延出力サンプルに対してエコー・キャンセルを行うステップと、受信機を利用して、タイム・スライスＫ−１から受信した入力サンプルと、タイム・スライスＫの間にエコー・キャンセラが発生したサンプルとの間の差分に対して、受信処理を行うステップと、送信機を利用して送信処理を行い、タイム・スライスＫ＋１の間に送信すべき出力サンプルを発生するステップとから成る。
加えて、前述の送信機、エコー・キャンセラ、および受信機は、コンピュータの中央処理装置（ＣＰＵ）を用いて実施され、データの損失を全く生ずることなく、バッファのサイズをコヒーレントに切り換える。
【図面の簡単な説明】
ここでは、添付図面を参照しながら、一例としてのみ、本発明について説明する。図面において、
図１は、ホスト・コンピュータに結合された、従来技術の従来のディジタル信号プロセッサ（ＤＳＰ）モデムを示す上位ブロック図である。
図２は、本発明の通信システムにおいて利用されるモデムの機能的な面を示す上位機能ブロック図である。
図３は、ホスト・コンピュータに結合された本発明のネイティブ信号処理（ＮＳＰ）モデムを示す上位ブロック図である。
図４は、Ｖ．３２ｂｉｓモデム規格の起動手順の間、発呼側モデムおよび着呼側モデムによって交換される信号シーケンスを示す。
図５は、連続するタイム・スライスに関連して、受信、処理、および送信するステップを示す。
図６は、本発明の処理シーケンスを示す上位フロー図である。
発明の詳細な説明
本発明のバッファ切り換えシステムの動作および有用性をよりよく例示するために、全二重音声帯域モデムのフレームワークについて、システムを説明する。しかしながら、この開示全体を通じて提示する例は、本発明の範囲を何ら限定するものではないことは理解されよう。当業者は、ここに開示する本発明のシステムおよび方法の原理を採用し、当技術分野では公知の、他の多くの形式の全二重通信システムにそれらを適用することができよう。
本発明の通信システムにおいて利用される、全二重音声帯域モデム３０の全体的な実現化を表す上位機能ブロック図を、図２に示す。モデム３０は、送信機３２、受信機３４、エコー・キャンセラ・ユニット３６、加算器３７、ディジタルーアナログ（Ｄ／Ａ）変換器３８、アナログーディジタル（Ａ／Ｄ）変換器４０、およびディジタル・アクセス構成（ＤＡＡ）またはハイブリッド４２を内蔵する。エコー・キャンセラ・ユニット３６は、遅延レジスタ・スタック３５およびエコー・キャンセラ回路４１を備えている。送信機３２は、送信機データ入力ポートからデータを受信し、送信（Ｔｘ）サンプルをエコー・キャンセラ３６およびＤ／Ａ３８に出力する。ＤＡＡ４２は、電話回線と送信機および受信機との間でインピーダンスの整合を行うように機能する。これは、電話局（ＣＯ：central of fice）からの二線対上の平衡アナログ電圧を、２つの二線非平衡対、一方は送信機のためのもの、他方は受信機のためのもの、に変換する。エコー・キャンセラ３６は、当技術分野では公知の標準的なエコー・キャンセル技法を送信信号に適用することによって、受信信号からエコーを除去するように機能する。エコー・キャンセラ３６の出力は、加算器３７を用いて、受信信号と加算される。受信機３４は、ディジタル受信（Ｒｘ）データ出力信号を出力する。
ホスト・コンピュータに結合された、ネイティブ信号処理（ＮＳＰ）モデムを示す上位ブロック図を図３に示す。このモデム全体を１０で引用する。ＮＳＰモデム１０は、概略的に、ハードウエア部分およびソフトウエア部分から成る。ソフトウエア部分はホスト・コンピュータのＣＰＵ５４上で実行される。図３は、全二重音声帯域モデムの一実施態様を示し、図２に示した信号処理タスク、即ち、送信機３２、受信機３４、およびエコー・キャンセラ３６を、ホスト・コンピュータの中央演算装置（ＣＰＵ）５４を用いて処理する。また、ホスト・コンピュータは、当該ホスト・コンピュータのオペレーティング・システムおよびそのタスクが使用するためのランダム・アクセス・メモリ（ＲＡＭ）５２も含む。ＮＳＰモデムの実行中、このモデムを動作させるために用いられるソフトウエアの部分は、様々な時点においてＲＡＭ５２内に位置する。
ＤＡＡ６４は、ＣＯからの二線対への物理的な線路インターフェースを形成する（例えば、ＲＪ−１１、ＲＪ−４５、またはその他のいずれかの適切な接続方法）。ホストＣＰＵ５４は、バス・インターフェース回路５６を介して、ＮＳＰモデム１０と通信する。２つの先入れ先出し（ＦＩＦＯ）バッファを用いて、ホスト・コンピュータのＣＰＵに向かうサンプルおよびＣＰＵから来るサンプルをバッファする。送信ＦＩＦＯ５８は、アウトバウンド（outbound）サンプルをバッファし、受信ＦＩＦＯ６０はインバウンド（inbound）サンプルをバッファする。コーダ／デコーダ（ＣＯＤＥＣ）６２が、送信ＦＩＦＯ５８および受信ＦＩＦＯ６０をＤＡＡ６４に結合する。ＣＯＤＥＣ６２は、Ｄ／Ａ２４およびＡ／Ｄ２６（図２）のＤ／ＡおよびＡ／Ｄ機能を実行する。
今日のパーソナル・コンピュータの大多数は、ある種のマルチタスキング・オペレーティング・システム（multi-tasking operating system）を実行させているので、ホスト・コンピュータのＣＰＵ５４は何らかの形態のマルチタスキング・オペレーティング・システムを実行していることを想定する。この場合、本発明によって教示される、可変サイズのバッファを用いるシステムは、ＮＳＰモデム１０によって用いられ、例えば、Ｖ．３２およびＶ．３４規格のような、モデム規格によって賦課される厳しい時間許容度に準拠するようにする。本発明によって教示される可変サイズのバッファを用いる機構の理解に役立てるために、Ｖ．３２ｂｉｓ規格を一例として使用する。即ち、データの交換が可能となる前に行われるＶ．３２ｂｉｓの起動手順について説明する。図４に示すのは、発呼側モデムおよび着呼側モデムによって実行される、Ｖ．３２ｂｉｓ規格に定義された起動シーケンスである。最上段は、発呼側モデム（即ち、発呼したモデム）の送信信号を、時間の関数として示す。最下段は、着呼側モデムによって実行されるタスクを、時間の関数として示す。初期シーケンスの間、着呼側モデム上の「Ｓ」までは、非常に短くかつ精度の高い応答時間が必要である（例えば、６４Ｔ+／-２Ｔ、これを換算すると２６．６+／-０．８３ｍｓとなる）。このいわゆるレンジング期間中に、遠端エコーのラウンド・トリップ時間遅延（round trip time delay）を測定する。次に、エコー・キャンセラ回路４１（図２）においてこれらの測定値を用いて、受信信号からエコーを排除する。
割り当てられた時間枠内で応答するためには、短い応答時間が必要である。したがって、この初期フェーズの間、短いバッファを用いる。トレーニング段階「ＴＲＮ」以降では、短く精度の高いイベント処理は絶対的な要件ではなく、長いバッファを用いてもよいので、こうしてＣＰＵに関連する切り換えタスクのオーバーヘッドを低減させる。本発明者がＰｅｎｔｉｕｍ  １００ＭＨｚプロセッサを装備したＰＣを用いて行った実験では、レンジング期間中のＣＰＵ利用度は比較的低く、約５パーセント未満であることが示された。トレーニング期間中では、ＣＰＵ利用度は高くなり、３０パーセントを超える可能性がある。定常状態の間、データ部分のＣＰＵ利用度は３０パーセント未満に低下する。
図５は、タイム・スライスの連続処理に関する、受信、処理、および送信のステップを示す。２本の垂直線間にある各列は、１つのタイム・スライスを表す。垂直線は、各タイム・スライス即ちサンプル時間毎に、その開始時点において１回発生するハードウエア割り込みを表す。各タイム・スライス毎に、ＮＳＰモデム１０内で行われる通信プロセスを実行する。この時間中、前回のタイム・スライスの間に収集されたサンプルを処理し、サンプルを発生し、次のタイム・スライスの間に送信する。このように、タイム・スライスＮ−４の間に収集されたサンプルは、タイム・スライスＮ−３の間に処理される。同様に、タイム・スライスＮ−３の間に、サンプルが発生され、タイム・スライスＮ−２の間に送信される。
前述したように、起動シーケンスのレンジング期間（図４）の間、双方のモデムは２６．６+／-０．８３ｍｓ（即ち、６４Ｔ+／-２Ｔ）の時間制約を有し、この間に他方の信号に応答しなければならない。処理および関連するハードウエアの平均的は遅延を６．６ｍｓと仮定すると、モデム処理にはわずかに２０ｍｓが残るのみとなる。即ち、２０ｍｓがバッファ機構内における固有の遅延のためのものである。バッファ機構における最大遅延即ち最悪の場合の遅延は、前述のバッファ処理方式の場合、２バッファ長である。つまり、最大バッファ長は、時間では、１０ｍｓを超えることはできない。したがって、サンプリング周波数が８ＫＨｚのＣＯＤＥＣでは、６４サンプルに等しい長さＬ１を有するバッファをこのレンジングの間に用いる。これは、８ｍｓのバッファ時間に換算される。処理オーバーヘッドを３ｍｓと仮定すると、５ｍｓのマージンが残る。したがって、割り込みレイテンシまたはオペレーティング・システムが賦課するその他のいずれかの遅延が５ｍｓより長い場合、データのオーバーランが発生する。即ち、モデム間のレンジングは、精度不足となり、通信を行うことができない。
ある時点において、大きなバッファに切り換える判断を行う。Ｖ．３２ｂｉｓの場合、大きなバッファへの切り換えは、レンジング期間が終了した後で、好ましくはトレーニング期間が開始する前に行うことができる。本発明のシステムは、サンプル・バッファ内に収容されているサンプルには無関係（oblivious）である。どのようなサンプルがバッファ内にあろうとも、相違はない。本発明のコヒーレンシ特性について、以下で更に詳しく説明する。
切り換え点付近におけるバッファ切り換え機構の動作について、これより更に詳細に説明する。現タイム・スライスがＮ−１であり、サンプルで満杯のバッファをこのスライスの間に受信したと仮定する。また、小さなバッファはもはや不要であり、大きなバッファに切り換える決定を行ったとも仮定する。どのエンティティが切り換える決定を行うかは、本発明には重要ではない。タイム・スライスＮの間、スライスＮ−１の間に受信したサンプルを処理する。しかしながら、プロセッサは、次のタイム・サンプル以降、大きなバッファを用いることを知っている。したがって、プロセッサは、Ｌ１よりも大きな長さＬ２を有する、送信対象サンプルのバッファを生成する。例示の目的のために、Ｌ２は２５６に等しいとする。送信プロセスは、システムの他の構成要素とは独立しており、したがっていかなる任意のサンプル数を有するバッファでも生成することができる。こうして、スライスＮの間に、２５６サンプルのサイズのバッファを生成する。これらのサンプルは、次のタイム・サンプルＮ＋１の間に送信される。また、スライスＮの間、小さなサンプルのバッファが受信され、スライスＮ＋１の間に処理される。
次のスライスＮ＋１の間、大きなサンプルのバッファが獲得され、スライスＮの間に獲得された小さなサンプルのバッファがここで処理される。大きなサンプルのバッファは、スライスＮ＋２の間に送信するために生成される。加えて、スライスＮの間に生成した大きなサンプルのバッファは、このスライスＮ＋１の間に送信される。同様に、スライスＮ＋２の間、スライスＮ＋１の間に受信された大きなサンプルのバッファが処理され、大きなサンプルのバッファが、スライスＮ＋３の間に送信するために生成される。次のテーブルは、切り換え遷移の前および後に用いられるバッファのサイズを示す。
0003723578.tif 000002
上記テーブルを参照すると、エコー・キャンセラは、スライスＫの間に受信したスライスＫ−１のバッファを処理する。ここで、Ｋはいずれかの任意のタイム・スライスである。したがって、バッファ内のＮ＋１以下のＬ１個のサンプルを処理し、正確にＬ１個のサンプルのバッファを出力する。タイム・スライスＫの間、受信プロセスは、スライスＫ−１において受信したバッファと、スライスＫにおけるエコー・キャンセラの出力との差分を処理する。したがって、タイム・スライスＮの間、受信機は、長さＬ１を有する、スライスＮ−１の間に受信したサンプルと、同様に長さＬ１を有する。スライスＮの間のエコー・キャンセラの出力との差分を処理する。タイム・スライスＮ＋１の間、受信プロセスは、長さＬ１を有する、タイム・スライスＮにおける受信サンプルと、同様に長さＬ１を有する、スライスＮ＋１の間のエコー・キャンセラの出力との間の差分を処理する。
受信機が、適正にエコーが除去済みとなっているサンプルを確実に得るためには、送信サンプルおよび受信サンプルを適切に整合しなければならない。言い換えると、エコー・キャンセラが用いるサンプルは、送信サンプルおよび受信サンプルと、時間的に同期していなければならない。これを達成するには、送信データがエコー・キャンセラによって用いられる前に、その経路内に１つのバッファ遅延レジスタ３５（図２）を配置する（エコー・キャンセル処理は、送信機の処理の前に行われると仮定する）。こうして、エコー・キャンセラが用いる送信データは、適正に遅延され、受信データとの同期が取られる。遅延レジスタ３５は、小さなバッファが常に小さなバッファから減算され、大きなバッファが常に大きなバッファから減算されることにより、データのコヒーレンシを維持することを確保する。
モデム規格の時間制約を満たすために、データの処理は所定の順序で行わなければならない。図６に示すのは、一連の処理を表す上位フロー図である。エコー・キャンセラ・ユニット３６（図２）は、受信機よりも前に動作しなければならない。何故なら、受信機が処理するサンプルは、受信したサンプルとエコー・キャンセラの出力との差分を含むからである。前述のように、加算器３７がこの減算を行う。加えて、２箇所のバッファ時点における最大レイテンシを維持するために、受信機は送信機の前に動作しなければならない。タイム・スライスＫ−１の間に受信したバッファの最初のサンプルの時点にトリガされたイベントは、スライスＫにおける処理の間に検出される。応答（アンサ）は、スライスＫ＋１の間に送信されたバッファの最初のサンプルとして現れることができる。したがって、送信機が受信機の前に動作した場合、イベントは、スライスＫ＋２において送信されたバッファの最初のサンプルにおいてでないと応答されず、レイテンシは３バッファ時間となってしまう。
したがって、遅延した送信データを処理するエコー・キャンセラを最初に動作させる（ステップ７０）。次に、タイム・スライスＫ−１からの受信サンプルと、スライスＫにおけるエコー・キャンセラのプロセスによって発生したサンプルとの差分に対して、受信機の処理を行う（ステップ７２）。最後に、送信処理を行い、サンプルで満たされたバッファを生成し、タイム・スライスＫ＋１の間に送信し（ステップ７４）、遅延レジスタ３５内に格納する。
このように、本発明のバッファ切り換え機構を利用すると、割り込みレイテンシに対する抵抗力（resistance）を最大に高めることが可能となる。前述の例では、８０００サンプル／秒においてサイズが２５６のバッファでは、３２ｍｓのバッファ時間となる。３０パーセントの処理期間を想定すると、最大割り込みレイテンシは２２．４ｍｓとなる。これは非常に大きな時間マージンである。加えて、長いバッファを用いることの二次的効果として、オーバーヘッドの減少によって、ＣＰＵ利用度が低下し、ＣＰＵは他の機能を実行することが可能となる。本発明によって得られる主要な利点は、ＮＳＰモデムが、より高いビット・レートのモデム規格（例えば、Ｖ．３２  ９６００ｐｂｓ，Ｖ．３２ｂｉｓ１４，４００ｂｉｓおよびＶ．３４  ２８，８００ｂｐｓ）の厳しい時間制約に適合することを可能にすることである。
加えて、何らかの理由で、モデムの一方が接続の間にリトレイン・プロセス（retrain process）を要求する場合、バッファ・サイズを再度小さなバッファ・サイズに変更し、リトレイン・プロセスを行うことができる。後の時点で、バッファ・サイズを、再び大きなバッファ・サイズに切り換える。
以上、限られた数の実施形態に関して本発明を説明したが、本発明の多くの変形、変更、およびその他の適用も可能であることは認められよう。
【図１】
0003723578.tif 000003
【図２】
0003723578.tif 000004
【図３】
0003723578.tif 000005
【図４】
0003723578.tif 000006
【図５】
0003723578.tif 000007
【図６】
0003723578.tif 000008