(57)【要約】【課題】時間依存性を有さず、且つコストのかからない、装置においてソフトウェアコードをホストコンピュータから取得するシステムを提供する。【解決手段】装置へのコード部分のダウンロードに関して、少なくとも２つの競合する利用可能なコード部分がホストコンピュータから装置に同時に提案され、システムは、競合する利用可能なコード部分それぞれに対して、装置からホストコンピュータへと逐次的な否定応答を送信する遅延手段と、競合する利用可能なコード部分の中から受信すべきコード部分を選択する選択手段とを包含し、遅延手段は選択手段によって選択されたコード部分に対する否定応答の送信を停止し、受信手段は選択されたコード部分と競合する利用可能なコード部分を除外して、選択されたコード部分のみを受信する。【選択図】図２
2006202292.tif 000002
【特許請求の範囲】
【請求項１】
装置（３）においてソフトウェアコード（ＳＷ）をホストコンピュータ（２）から取得するシステム（１）であって、
前記ホストコンピュータ（２）から前記装置（３）へと送信される前記ソフトウェアコード（ＳＷ）の少なくとも１つのコード部分（Ｓｊ）を受信する受信手段（１１）を包含する、装置（３）においてソフトウェアコード（ＳＷ）をホストコンピュータ（２）から取得するシステム（１）において、
前記装置（３）への前記コード部分（Ｓｊ）のダウンロードに関して、少なくとも２つの競合する利用可能なコード部分（Ｓｉｋ）が前記ホストコンピュータ（２）から前記装置（３）に同時に提案され、前記システム（１）は、
−前記競合する利用可能なコード部分（Ｓｉｋ）それぞれに対して、前記装置（３）から前記ホストコンピュータ（２）へと逐次的な否定応答（ＮＡＫ）を送信する遅延手段（１３）と、
−前記競合する利用可能なコード部分（Ｓｉｋ）の中から受信すべきコード部分（Ｓｉｋ）を選択する選択手段（１４）とを包含し、
前記遅延手段（１３）は前記選択手段（１４）によって選択されたコード部分（Ｓｉｋ）に対する前記否定応答（ＮＡＫ）の送信を停止し、前記受信手段（１１）は前記選択されたコード部分（Ｓｉｋ）と競合する利用可能なコード部分を除外して、該選択されたコード部分（Ｓｉｋ）のみを受信することを特徴とする、装置（３）においてソフトウェアコード（ＳＷ）をホストコンピュータ（２）から取得するシステム（１）。
【請求項２】
−前記装置（３）に提案された前記競合する利用可能なコード部分（Ｓｉｋ）のいずれも前記選択手段（１４）による選択に適していない場合には、前記選択されたコード部分（Ｓｉｋ）に対する前記否定応答（ＮＡＫ）の送信が停止される前、且つ前記受信手段（１１）において前記選択されたコード部分（Ｓｉｋ）が受信される前に、少なくとも１つの伝送要求（ＲＱ）を前記装置（３）から前記ホストコンピュータ（２）に送信する要求手段を包含する、請求項１記載のシステム（１）。
【請求項３】
前記受信手段（１１）、前記遅延手段（１３）および前記選択手段（１４）は逐次的に受信される少なくとも２つのコード部分（Ｓｊ）に対して設けられている、請求項１または２記載のシステム（１）。
【請求項４】
前記遅延手段（１３）は、該遅延手段（１３）が前記選択されたコード部分（Ｓｉｋ）に対する前記否定応答（ＮＡＫ）の送信を停止したときに、選択されなかった前記競合する利用可能なコード部分（Ｓｉｋ）それぞれに対する前記否定応答（ＮＡＫ）の送信を継続する、請求項１から３までのいずれか１項記載のシステム（１）。
【請求項５】
−前記受信手段（１１）は少なくとも２つの前記競合する利用可能なコード部分（Ｓｉｋ）をそれぞれ受信する少なくとも２つのエンドポイント（ＥＰｍ）を有し、
−前記遅延手段（１３）は前記エンドポイント（ＥＰｍ）それぞれに対して、前記ホストコンピュータ（２）への逐次的な否定応答を送信する、請求項１から４までのいずれか１項記載のシステム（１）。
【請求項６】
受信した前記コード部分（Ｓｊ）を一時的に記憶する記憶空間（１５）を包含する、請求項１から５までのいずれか１項記載のシステム（１）。
【請求項７】
前記受信手段（１１）および前記遅延手段（１３）はＵＳＢバス（５）を介して前記ホストコンピュータ（２）と通信する、請求項１から６までのいずれか１項記載のシステム（１）。
【請求項８】
前記遅延手段（１３）は前記選択されたコード部分（Ｓｉ）に対して、該選択されたコード部分（Ｓｉ）が前記受信手段（１１）によって受信される前に、少なくとも１つの肯定応答（ＡＣＫ）を前記装置（３）から前記ホストコンピュータ（２）に送信する、請求項１から７までのいずれか１項記載のシステム（１）。
【請求項９】
請求項１から８までのいずれか１項記載の取得システム（１）を包含することを特徴とする装置（３）。
【請求項１０】
受信したソフトウェアコード（ＳＷ）をリアルタイムで使用する、請求項９記載の装置（３）。
【請求項１１】
装置（３）においてソフトウェアコード（ＳＷ）をホストコンピュータ（２）から取得するプロセス（１）であって、
前記ホストコンピュータ（２）から前記装置（３）へと送信される前記ソフトウェアコード（ＳＷ）の少なくとも１つのコード部分（Ｓｊ）を受信する、装置（３）においてソフトウェアコード（ＳＷ）をホストコンピュータ（２）から取得するプロセス（１）において、
前記装置（３）への前記コード部分（Ｓｊ）のダウンロードに関して、少なくとも２つの競合する利用可能なコード部分（Ｓｉｋ）を前記ホストコンピュータ（２）から前記装置（３）に同時に提案し、前記プロセス（１）は、
−前記競合する利用可能なコード部分（Ｓｉｋ）それぞれに対して、前記装置（３）から前記ホストコンピュータ（２）へと逐次的な否定応答（ＮＡＫ）を送信するステップと、
−前記競合する利用可能なコード部分（Ｓｉｋ）の中から受信すべきコード部分（Ｓｉｋ）を選択するステップと、
−選択されたコード部分（Ｓｉｋ）に対する前記否定応答（ＮＡＫ）の送信を停止し、前記選択されたコード部分（Ｓｉｋ）と競合する利用可能なコード部分（Ｓｉｋ）を除外して、該選択されたコード部分（Ｓｉｋ）のみを受信するステップとを有することを特徴とする、装置（３）においてソフトウェアコード（ＳＷ）をホストコンピュータ（２）から取得するプロセス。
【請求項１２】
プログラムがコンピュータにおいて実行される場合に、請求項１１記載の取得プロセスのステップを実行するプログラムコード命令を包含することを特徴とする、コンピュータプログラム製品。
【請求項１３】
ホストコンピュータ（２）であって、
−少なくとも２つのコード部分（Ｓｊ）の形態でソフトウェアコード（ＳＷ）を記憶する記憶手段（２５）と、
−前記コード部分（Ｓｊ）を装置（３）に伝送する伝送手段（２１）と、
−前記コード部分（Ｓｊ）に対する前記装置（３）からの否定応答（ＮＡＫ）の受信に基づいて、該否定応答（ＮＡＫ）の受信が停止されるまで、前記装置（３）へのあらゆるコード部分の伝送を遅延させる遅延手段（２３）とを包含するホストコンピュータ（２）において、
−伝送時に競合する少なくとも２つのコード部分（Ｓｉｋ）を前記装置（３）に対して同時に提案する分岐手段（２４）を有し、競合する利用可能なコード部分（Ｓｉｋ）それぞれの伝送は前記遅延手段（２３）により遅延され、
請求項１から８のいずれか１項記載の取得システム（１）と共働するよう設計されていることを特徴とする、ホストコンピュータ（２）。
【請求項１４】
前記分岐手段（２４）は、該装置（３）に対する前記競合する利用可能なコード部分（Ｓｉｋ）を該装置（３）の少なくとも２つの異なるエンドポイント（ＥＰｍ）に同時に提案する、請求項１３記載のホストコンピュータ（２）。
【請求項１５】
連鎖手段（２６）を有し、該連鎖手段（２６）は伝送に関して前記装置（３）に逐次的に提案されるべきコード部分（Ｓｉｋ）の少なくとも２つのブランチ（Ｂｉ）を前記分岐手段（２４）に提供し、該ブランチ（Ｂｉ）はそれぞれ他方のブランチ（Ｂｉ）の少なくとも１つのコード部分（Ｓｉｋ）とその時点に競合している少なくとも１つのコード部分（Ｓｉｋ）を包含する、請求項１３または１４記載のホストコンピュータ（２）。
【請求項１６】
少なくとも１つの前記ブランチ（Ｂｉ）は少なくとも２つの前記コード部分（Ｓｉｋ）を包含する、請求項１５記載のホストコンピュータ（２）。
【請求項１７】
キャンセル手段（２７）を有し、該キャンセル手段（２７）は前記分岐手段（２４）によって前記装置（３）に提案されたコード部分のいずれかのブランチ（Ｂｉ）を、該ブランチの目下提案されているコード部分（Ｓｉｋ）に対する否定応答（ＮＡＫ）を受信し、他方では別のブランチ（Ｂｉ）の目下提案されているコード部分（Ｓｉｋ）に対する否定応答（ＮＡＫ）の受信を中止した後にキャンセルする、請求項１５または１６記載のホストコンピュータ（２）。
【請求項１８】
ソフトウェア伝送プロセスであって、
−少なくとも２つのコード部分（Ｓｊ）の形態でソフトウェアコード（ＳＷ）を記憶するステップと、
−前記コード部分（Ｓｊ）を装置（３）に伝送するステップと、
−前記コード部分（Ｓｊ）に対する前記装置（３）からの否定応答（ＮＡＫ）の受信に基づいて、該否定応答（ＮＡＫ）の受信が停止されるまで、前記装置（３）へのあらゆるコード部分の伝送を遅延させるステップとを有するソフトウェア伝送プロセスにおいて、
−伝送時に競合する少なくとも２つのコード部分（Ｓｉｋ）を前記装置（３）に対して同時に提案し、競合する利用可能なコード部分（Ｓｉｋ）それぞれの伝送を前記否定応答（ＮＡＫ）により遅延させるステップを有し、
請求項１３から１７のいずれか１項記載のホストコンピュータ（２）により実行することを特徴とする、ソフトウェア伝送プロセス。
【請求項１９】
プログラムがコンピュータにおいて実行される場合に、請求項１８記載の伝送プロセスのステップを実行するプログラムコード命令を包含することを特徴とする、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置においてソフトウェアコードをホストコンピュータから取得するシステムであって、ホストコンピュータから装置へと送信されるソフトウェアコードの少なくとも１つのコード部分を受信する受信手段を包含する、装置においてソフトウェアコードをホストコンピュータから取得するシステムに関する。
【０００２】
また本発明は、この種のシステムを包含する装置に関する。
【０００３】
また本発明は、装置においてソフトウェアコードをホストコンピュータから取得するプロセスであって、ホストコンピュータから装置へと送信されるソフトウェアコードの少なくとも１つのコード部分を受信する、装置においてソフトウェアコードをホストコンピュータから取得するプロセスに関する。
【０００４】
また本発明は、この種の取得プロセスを実行するプログラムコード命令を包含するコンピュータプログラム製品に関する。
【０００５】
また本発明は、少なくとも２つのコード部分の形態でソフトウェアコードを記憶する記憶手段と、コード部分を装置に伝送する伝送手段と、コード部分に対する装置からの否定応答の受信に基づいて、否定応答の受信が停止されるまで、装置へのあらゆるコード部分の伝送を遅延させる遅延手段とを包含するホストコンピュータに関する。
【０００６】
また本発明は、少なくとも２つのコード部分の形態でソフトウェアコードを記憶するステップと、コード部分を装置に伝送するステップと、コード部分に対する装置からの否定応答の受信に基づいて、否定応答の受信が停止されるまで、装置へのあらゆるコード部分の伝送を遅延させるステップとを有するソフトウェア伝送プロセスに関する。
【０００７】
また本発明は、この種のソフトウェア伝送プロセスを実行するプログラムコード命令を包含するコンピュータプログラム製品に関する。
【背景技術】
【０００８】
ユニバーサルシリアルバス（以下ＵＳＢと称する）を介してホストパーソナルコンピュータ（以下ＰＣと称する）と接続される、ＵＳＢ給電式非対称ディジタル加入者線（以下ＡＤＳＬと称する）モデム製品はコストに関して高いプレッシャーを受けている。これにより機能がホストＰＣに対して追求される。
【０００９】
前世代においてはそのようなＵＳＢ ＡＤＳＬ製品のために必要とされるソフトウェアがホストＰＣに記憶されており、ディジタル加入者線（以下ＤＳＬと称する）モデムがプラグインされるとソフトウェアがＤＳＬモデムにダウンロードされるので、フラッシュメモリが必要とされることはない。ダウンロードされたソフトウェアはモデムの同期ダイナミックランダムアクセスメモリ（以下ＳＤＲＡＭと称する）に記憶される。このソフトウェアの大部分はモデム同期および互換性のためのものであり、さらなる拡張のために柔軟性を必要とする。
【００１０】
現在ではモデムコストをさらに削減するために、チップ上のスタティックＲＡＭ（以下ＳＲＡＭと称する）を単に使用することによってＵＳＢ給電式モデムからＳＤＲＡＭを除去することが魅力的である。実際のところ、ＳＤＲＡＭはより良好な密度を有するためにＳＲＡＭに関して特別な技術的な層および標準的なロジックを使用するので、同一のチップ上に置くことはできない。しかしながらフルビルド（full build）オンチップを用意することは大型集積ＳＲＡＭを要求することになり、これは経済的ではない。
【００１１】
ＰＣソフトウェアを記憶する空間が低減されているモデムを提供するための解決手段は、プロセッサによってモデム内でのプログラムの発展が要求されたときには、ソフトウェアを小さい部分でダウンロードすることである。この場合にはモデムのディジタル集積回路（以下ＩＣと称する）内の小さなＳＲＡＭでも十分である。このメカニズムは「スワッピング（swapping）」、すなわちメインメモリ領域（サイズが制限されているモデムプロセッサのメモリ）に（フルビルドを含む）ホストコンピュータ内の補助的なメモリの内容をコピーすることによって実現される。したがって逐次的なコード「ページ」または「スワップ」が、モデムからＰＣに依頼されるそれぞれの要求に応じてＰＣからモデムにダウンロードされる。
【００１２】
この際、それらのコード部分の伝送の同期を保証することが重要である。しかしながらこのコードスワップメカニズムは、送信すべき部分を準備するＰＣに関して伝送遅延（ホスト応答遅延）が生じる可能性があるので、個々のコード部分のダウンロードの時間依存性を伴う。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
したがって本発明の課題は、上述の欠点を回避する、時間依存性を有さず、且つコストのかからない、装置においてソフトウェアコードをホストコンピュータから取得するシステムとプロセス、その種のシステムを包含する装置、ホストコンピュータ、コンピュータプログラム製品およびソフトウェア伝送システムを提供することである。
【課題を解決するための手段】
【００１４】
この課題は、請求項１記載の発明に関しては、装置へのコード部分のダウンロードに関して、少なくとも２つの競合する利用可能なコード部分がホストコンピュータから装置に同時に提案され、システムは、競合する利用可能なコード部分それぞれに対して、装置からホストコンピュータへと逐次的な否定応答を送信する遅延手段と、競合する利用可能なコード部分の中から受信すべきコード部分を選択する選択手段とを包含し、遅延手段は選択手段によって選択されたコード部分に対する否定応答の送信を停止し、受信手段は選択されたコード部分と競合する利用可能なコード部分を除外して、選択されたコード部分のみを受信することによって解決される。
【００１５】
この課題は、請求項９記載の発明に関しては、請求項１から８までのいずれか１項記載の取得システムを包含することによって解決される。
【００１６】
この課題は、請求項１１記載の発明に関しては、装置へのコード部分のダウンロードに関して、少なくとも２つの競合する利用可能なコード部分をホストコンピュータから装置に同時に提案し、プロセスは、競合する利用可能なコード部分それぞれに対して、装置からホストコンピュータへと逐次的な否定応答を送信するステップと、競合する利用可能なコード部分の中から受信すべきコード部分を選択するステップと、選択されたコード部分に対する否定応答の送信を停止し、選択されたコード部分と競合する利用可能なコード部分を除外して、選択されたコード部分のみを受信するステップとを有することによって解決される。
【００１７】
この課題は、請求項１２記載の発明に関しては、プログラムがコンピュータにおいて実行される場合に、請求項１１記載の取得プロセスのステップを実行するプログラムコード命令を包含することによって解決される。
【００１８】
この課題は、請求項１３記載の発明に関しては、伝送時に競合する少なくとも２つのコード部分を装置に対して同時に提案する分岐手段を有し、競合する利用可能なコード部分それぞれの伝送は遅延手段により遅延され、請求項１から８のいずれか１項記載の取得システムと共働するよう設計されていることによって解決される。
【００１９】
この課題は、請求項１８記載の発明に関しては、伝送時に競合する少なくとも２つのコード部分を装置に対して同時に提案し、競合する利用可能なコード部分それぞれの伝送を否定応答により遅延させるステップを有し、請求項１３から１７のいずれか１項記載のホストコンピュータにより実行することによって解決される。
【００２０】
この課題じゃ。請求項１９記載の発明に関しては、プログラムがコンピュータにおいて実行される場合に、請求項１８記載の伝送プロセスのステップを実行するプログラムコード命令を包含することによって解決される。
【発明を実施するための最良の形態】
【００２１】
本発明は、ソフトウェアを受信して、このソフトウェアをリアルタイムで効率的に使用するために装置内では単にＳＲＡＭしか使用されない（ＳＤＲＡＭコンポーネントを必要としない）、装置においてホストコンピュータからソフトウェアコードを取得するためのシステムに関する。したがって本発明のシステムは、上述の同期に関する問題を克服することができる。それどころか本発明によるシステムの有利な実施形態においては、ＰＣの状態（オペレーティングシステム（以下ＯＳと称する）タイプ、ロード、プロセッサ性能など）への依存性を著しく低減することができる
また本発明は、同様の潜在的な利点を有している、取得システムを包含する装置ならびに対応するプロセスおよびコンピュータプログラムに関する。
【００２２】
さらに本発明は、有利には本発明の取得システムおよびプロセスと共働して上述の利点を提供する、ホストコンピュータ、ソフトウェア伝送プロセスおよび関連するコンピュータプログラムに関する。
【００２３】
殊に本発明はＤＳＬモデムの分野に適用されるが、装置がホストＰＣからオペレーショナルソフトウェアを受信する必要がある限り、（殊にホームネットワークのための）他の種類のローカルネットワーク装置にも適用される。
【００２４】
最後に本発明は、ホストコンピュータから装置へのソフトウェアコードの少なくとも１つのコード部分を受信するための受信手段を包含する、装置内でホストコンピュータからソフトウェアコードを取得するためのシステムに関する。
【００２５】
コード部分の装置のダウンロードに関して、ホストコンピュータから装置に対して少なくとも２つの競合する利用可能なコード部分が同時に提案される本発明によれば、システムが、
−競合する利用可能なコード部分それぞれに対して、装置からホストコンピュータに逐次的な否定応答を送信する遅延手段と、
−競合する利用可能なコード部分の中で受信すべきコード部分を選択する選択手段とを包含する。
【００２６】
遅延手段は選択手段によって選択されたコード部分に対する否定応答の送信を停止し、その結果受信手段はこの選択されたコード部分と競合する利用可能な部分を除外して選択されたコード部分のみを受信する。
【００２７】
したがって、受信側の装置における記憶リソースが制限的であるにもかかわらず、ソフトウェアコードを非常にフレキシブルにダウンロードすることができ、また同期は驚くべきことにこの装置によって正確に制御される。このことは、装置による特定の要求を考慮して、否定応答または「ＮＡＫ」の使用によって動的に行われる。すなわちワップページは装置が実際にそれらのスワップページを必要とする前に、Ｉｎ／Ｏｕｔリクエストパケット（以下ＩＲＰと称する）を介して装置へと送られるパイプ内に既に存在していてもよい。したがって本発明のシステムはハードディスクアクセスのようなホストコンピュータのロード、割込、ＯＳまたは性能への依存性を除去することができる。
【００２８】
実験により、ホストコンピュータおよび装置を有するシステムの最も予測不能な部分は、装置からのページスワップ要求に対するＰＣのＯＳの応答時間であることが判明しているので、この結果はますます興味深いものである。それどころかこのことは、幾つかのＯＳバージョンでは中央処理装置（以下ＣＰＵと称する）およびディスクアクセスロードの影響によりクリティカルである。このような依存性によってホストコンピュータは装置からの次のページの要求に対して非常に緩慢に応答する可能性があり、したがってリアルタイムでのソフトウェアの使用に代わり待ち時間の制約が生じる。これとは対照的に、本発明のシステムはコードをスワップしている間はホストのＯＳからの応答に依存しないメカニズムを提供することができる。
【００２９】
本発明により、所定の異なるシナリオを並列的なＩＲＰを介してホストコンピュータにおいてプログラミングすることができ、必要性が特定された時に装置は従うべき適切な経路を決定することができる。ソフトウェアダウンロードの達成は装置によってリアルタイムで調節される。有利な実施形態においては、このダウンロードはコードスワップツリーにおける適切なブランチに沿った進行に相当するものである。
【００３０】
したがって取得システムはホストコンピュータの状態（ＯＳタイプ、ロード、プロセッサの性能など）への依存性を著しく低減することができる。
【００３１】
以下の記載においては簡略化を目的として、何らかのオブジェクトが否定応答または肯定応答されることをそれぞれ意味するために「ＮＡＫ」および「ＡＣＫ」を動詞として使用する。
【００３２】
有利には、ダウンロードされた最終的なソフトウェアコードは種々の逐次的なコード部分を包含する。しかしながら、取得システムの特別な用途においては、これを単一のコード部分に制限することができる。いかなる場合においても、少なくとも２つのコード部分が装置へのダウンロードに関して競合しており、装置は競合しているこれらのコード部分のいずれかを選択する必要がある。
【００３３】
本発明によれば、ホストコンピュータから装置に種々のやり方でコード部分を「提案」することができる。有利な実施形態においては、このような提案はホストコンピュータにおける所定のＩＲＰに基づいて、ホストコンピュータから装置への逐次的な伝送が試みられることによって行われる。各ＩＲＰは、種々のデータパケットからなる少なくとも１つのコードページ（ここではコード部分と称する）を有する。関連する各ＩＲＰの目下のページに対する伝送の試みは、このページの最初のパケットを装置に送信することによって行われる。殊にこのページはページ識別に関する情報（典型的にはページ番号）を包含し、この情報により装置は提案されたページを認識し、相応に応答することができる。提案されたページがＮＡＫされる限り、ページはホストコンピュータによって完全には送信されない。反対に、このページの最初のパケットに対するＮＡＫの送信が停止されるやいなや、既にページは準備および待機されているので、完全なページを遅延なく送信することができる。
【００３４】
選択されたページが受取られるのに対し、ＮＡＫされ続ける競合するページ（または複数のページ）はホストコンピュータによって処理される。有利な実施形態において競合するページは、ホストコンピュータにおいてそれぞれのＩＲＰを用いて定義されている異なるブランチの一部であり、また装置によって競合するページの内の１つが選択されるということは暗黙的にブランチの内の１つが選択されるということになる。有利にはホストコンピュータが選択されていないブランチに対応するＩＲＰをキャンセルし、別のブランチのみを維持する。
【００３５】
有利にはシステムが以下のものを包含する：
−装置に提案された競合するコードのいずれも選択手段による選択に適していない場合には、選択された部分に対する否定応答の送信を停止する前、且つ受信手段において選択された部分を受信する前に装置からホストコンピュータに少なくとも１つの伝送要求を送信する要求手段。
【００３６】
特別な実施形態においては、装置からホストコンピュータに送信された要求は、装置によって所望された次のページがコンピュータ側において利用可能であるか否かを特定することができる。要求されたページが利用可能でない場合には、ホストコンピュータは少なくとも、先行して提案されているページの内の少なくとも１つのページの代わりに適切なページを提案する（現在の要求では選択することができないと見なされた他の提案されたページをキャンセルした後には、適切なページに並列的に別のページを提案することもできる）。他方では、実際にホストコンピュータによって装置に提案されたために要求されたページが利用可能である場合には、このページを遅延無くダウンロードすることができる。後者の場合に装置による要求の伝送を、実行フローに従うために、したがってパイプを安全にキャンセルできることをより直接的に知るためにホストコンピュータによって処理することができる。
【００３７】
したがってこの要求メカニズムは、並列的に利用可能なホストコンピュータから装置へのトラックの数（例えば装置側におけるエンドポイントの数、装置に関する有利な実施形態においては、潜在的に競合するコード部分の数がエンドポイントの数によって与えられている）が不十分であるために、競合するコードに関して考えられる全ての選択を並列的に提案することができない場合には殊に興味深いものである。そのような場合には、競合するコード部分の１つ（または複数）を装置による要求に応じて、別のコード部分に置換することができる。このようにして、ホストコンピュータにより処理される追従制御のより高い柔軟性および効率が提供される。
【００３８】
殊に装置からホストコンピュータへの要求を２つの装置間の割込メカニズムを用いて、例えばＵＳＢバスの特定のチャネルを介して送信することができる。ＵＳＢバスを用いる場合には、ホストコンピュータが典型的には装置への割込を周期的に、例えばミリ秒ごとに要求し、またこれらの割込のいずれも次の要求のために装置によって使用することができる。
【００３９】
有利には受信手段、遅延手段および選択手段が逐次的に受信される少なくとも２つのコード部分に対して設けられている。このことは、提案された利用可能な種々のコード部分の中から単一のコード部分を単にダウンロードすることを越えて取得システムの用途を拡大する。
【００４０】
有利には、遅延手段は選択された部分に対する否定応答の送信を停止した時に、選択されていない競合する利用可能なコード部分それぞれに対する否定応答の送信を継続することができる。
【００４１】
したがって、選択されていない部分は次のダウンロードステップのため、または後続のキャンセル決定のために利用可能のままであり続ける。しかしながら、選択されていない全ての競合するコード部分をホストコンピュータ側においてシステマチックにキャンセルすることもできる。そのような場合には、選択されていない部分をＮＡＫすることはもはや必要ない。
【００４２】
有利な実施例によれば：
−受信手段は、少なくとも２つの競合する利用可能なコード部分をそれぞれ受信するための少なくとも２つのエンドポイントを有し、
−遅延手段は、これらのエンドポイントの各々に対する逐次的な否定応答をホストコンピュータに送信することができる。
【００４３】
競合する利用可能なコード部分とエンドポイントとの間の対応関係を少なくとも部分的に確立することは殊に効率的且つ好適であることが判明しており、また比較的容易に実現することができる。この場合、装置内の一方のエントリポイントから他方のエンドポイントへと（別のエントリポイントに関連する全ての伝送要求をＮＡＫすることによって）切り換えることにより、一方のスワップシーケンスから他方の適切なスワップシーケンスへと進むことができる。この実施形態の利点は、並列的に競合するコード部分毎に１つのエンドポイントを使用することにいっそう適しているということである。
【００４４】
しかしながら利用可能なエンドポイントの数は制限されているので、並列的な提案の代わりに逐次的なステップによって進行することが必要であると証明することができる。殊に、ソフトウェアコードを伝送している間に、ホストコンピュータは（殊にコード部分の別のブランチ専用の新たなＩＲＰを介して）別のコード部分の提案を後に開始することができる。殊にこのことは、利用可能なエンドポイントよりも多くのコードページを提供する必要がある場合に達成することができる。いずれにしても、そのような場合にさえ、ホストコンピュータの応答時間の依存性を、完全に除去されていないにせよ著しく低減することができる。またそのような新たな伝送要求の発生は、ページ待ち時間があまりクリティカルでない場合にのみ達成するために前もって決定することができる。
【００４５】
また異なる実施形態においては、他の技術または補助的な技術を用いて、殊に同一のエンドポイントにインタリーブされたコード部分の提案によって、ホストコンピュータが並列的なコード部分の提案を装置に送信することも可能である。 
競合するコード部分の提案に対して使用されるエンドポイントの数が有利には、一方では装置の容積とコストとの間のトレードオフを考慮して、他方ではソフトウェアのタイミングが合う確率（ページ待ち時間要求）を考慮して選択されている。殊に、ＩＣダイのサイズはこのトレードオフに関して考慮されなければならない。
【００４６】
有利な実施形態においては、取得システムが受信したコード部分を一時的に記憶するための記憶空間を有し、この記憶空間は有利にはＳＲＡＭによって構成されている。
【００４７】
したがって各コード部分は受信装置によって使用される前に、この受信装置に完全に記憶することができる。コード部分のサイズを適切に選択することができるので、ＳＲＡＭのような小さいサイズの記憶空間しか必要とされない。この場合装置は、ソフトウェアコード部分が受信されると完全なソフトウェアコード部分を使用することができる。
【００４８】
別の実施形態においては、装置が受信したコード部分を完全ではなく部分的に記憶するよう設計されているので、コード部分の種々のピースを逐次的に処理するための装置サイズで特別な使用メカニズムを実現する必要がある。
【００４９】
有利には、受信手段および遅延手段はＵＳＢバスを介してホストコンピュータと通信するために設けられている。
【００５０】
このＵＳＢバスを、アプリケーションボードにおけるフラッシュの代わりに、コードスワップを実行するために使用することができる。
【００５１】
有利には、遅延手段は選択されたコード部分に対して、この選択されたコード部分を受信手段が受信する前に、少なくとも１つの肯定応答を装置からホストコンピュータに送信するために設けられている。
【００５２】
したがって取得システムは選択された部分に対するＮＡＫの送信を中止し、場合によってはこの部分に対する要求をさらに伝送するだけではなく、ホストコンピュータに１つまたは複数の逐次的なＡＣＫも送信する。したがって、コンピュータ側で待機されている次のコード部分の明示的な受諾が与えられている。有利な実施形態においては、コード部分がそれぞれ複数のパケットによって形成されており、またコード部分のダウンロードが装置側において決定されるやいなや、ＡＣＫが連続的にこの部分の全てのパケットに対して送信される。
【００５３】
この特別な実施形態によれば、ホストコンピュータは装置にＯＵＴトークンを送信することに適合されており、この装置はＮＡＫまたはＡＣＫによって即座に応答することに適合されている。装置がＯＵＴトークンをＮＡＫする場合には、ホストコンピュータは後の時点で再度コードページの同一の部分を送信することを試みる。
【００５４】
ＩＮトークンをＮＡＫすることはいずれにせよ公知のシステムにおいて通常なされているようにさらに適用することができるのだが、本明細書においては一般的にＩＮトークンではなくＯＵＴトークンに関連するＮＡＫを考慮する。
【００５５】
別の実施形態においては、装置によって単にＮＡＫの送信が停止されるだけでホストコンピュータは相応の次のコード部分を伝送する。したがってここではコード部分の承認は暗黙的であり、ＡＣＫの送信は要求されない。
【００５６】
本発明はまた、本発明のあらゆる実施形態による取得システムを包含する装置に適用され、この装置は有利にはＤＳＬモデムとして構成されている。有利には装置が受信したソフトウェアコードをリアルタイムで使用する。
【００５７】
さらに本発明は、装置内でホストコンピュータからソフトウェアコードを取得するためのプロセスムに関し、この取得プロセスはホストコンピュータから装置へと意図されているソフトウェアコードの少なくとも１つのコード部分の受信を含む。
【００５８】
装置へのコード部分のダウンロードに関して少なくとも２つの競合する利用可能なコード部分がホストコンピュータからこの装置に同時に提案される本発明によれば、取得プロセスが、
−競合する利用可能な部分それぞれに対する逐次的な否定応答を装置からホストコンピュータへと送信し、
−競合する利用可能なコード部分の中から受信すべきコード部分を選択し、
−選択された部分に対する否定応答の送信を停止し、その結果選択された部分と競合する利用可能なコード部分を除外して、この選択された部分のみが装置によって受信される。
【００５９】
このプロセスは有利には、本発明のあらゆる実施形態による取得システムによって実行される。
【００６０】
本発明の別の対象はコンピュータプログラム製品に関し、このコンピュータプログラム製品はプログラムがコンピュータにおいて実行される場合には、本発明による取得プロセスのステップを実行するよう構成されているプログラムコードを包含する。「コンピュータプログラム製品」とは、例えばディスケットまたはカセットのようなプログラムを包含する記憶空間だけではなく、例えば電気信号または光信号のような信号からなるものでもよいコンピュータプログラム支持体を意図している。
【００６１】
本発明の別の対象はホストコンピュータであり、このホストコンピュータは：
−少なくとも２つのコード部分の形態でソフトウェアコードを記憶する記憶手段と、
−それらのコード部分を装置に伝送する伝送手段と、
−このコード部分に対する装置からの否定応答に基づいて、否定応答の受信が停止されるまで、装置へのあらゆるコード部分の伝送を遅延させる遅延手段とを包含する。
【００６２】
本発明によれば、ホストコンピュータはまた：
−伝送時に競合する少なくとも２つのコード部分を装置に同時に提案するための分岐手段を包含し、これらの利用可能な競合するコード部分それぞれの伝送は遅延手段によって遅延させられる。
【００６３】
ホストコンピュータは有利には、本発明のあらゆる実施形態による取得システムと共働するよう設計されている。
【００６４】
ホストコンピュータは伝送されるべき全てのソフトウェアコードを自由に処理することができるので、ホストコンピュータはコードのトポロジを考慮するためにソフトウェアコードを処理することができる。すなわち有利には、種々の利用可能なコード部分が適切に提案され、それらの中から所望のコード部分が選択されるようにコード部分が選択される。このことは、装置側においては比較的小さい記憶空間で十分であるとされるにもかかわらず、コードスワップメカニズムのコンピュータ状態への時間依存性を著しく低減することができる、もしくはそれどころかそのような時間依存性をなくすことができる。
【００６５】
有利な実施形態においては分岐手段が、装置の少なくとも２つの異なるエンドポイントのそれぞれに対して競合するコード部分を同時に提案する。
【００６６】
このことは装置側に関する記述に対応する。したがってホストコンピュータはエンドポイントと同数のコード部分（またはコード部分のキューの場合においては同数のＩＲＰ）を提案することができる。
【００６７】
ホストコンピュータにおいて編成されたストラテジは、個々のコード部分の代わりにキューを形成する種々の逐次的なページが考慮される場合にはますます興味深いものであり、このことは殊にＩＲＰによって実現される。この場合、ホストコンピュータは各キュー（またはブランチ）の送信を開始するだけでよく、種々のキューは並列的に送信される。
【００６８】
したがってホストコンピュータは有利には連鎖手段を有し、この連鎖手段は伝送に関して装置に逐次的に提案されるべきコード部分の少なくとも２つのブランチを分岐手段に提供し、これらのブランチはそれぞれ他方のブランチの少なくとも１つのコード部分とその時点に競合している少なくとも１つのコード部分を包含する。
【００６９】
そのような実施形態においては、コンピュータ側において２つの次元が考慮される：
−所定のあらゆる時点において競合するコード部分に対応する「垂直」次元
−各ブランチにおいて逐次的に編成されているコード部分に関連する「水平」次元；ブランチの先行の部分が既に送信されていた場合（または別の実施形態において、先行してキャンセルされていた場合）には後の時点で提案すべく待機している、このブランチの他の残りの部分は既にホストコンピュータにおいて準備されている。
【００７０】
有利には、ブランチのコンフィギュレーションが種々のパラメータ（利用可能なトラックの数、ソフトウェア構造化、ページのサイズなど）を考慮して、ホストコンピュータのユーザによって事前に決定されている。
【００７１】
また有利にはホストコンピュータは、何らかの要求が有利にはエンドポイントと同数の分岐を有している装置から送信される前に、競合するブランチに関するＩＲＰを開始する。これらの全てのブランチは最初のステップでは装置によってＮＡＫされる。ついで第１のコード部分がこのコード部分が属するブランチの１つがＮＡＫされなくなると即座に送信される。
【００７２】
実際には、ホストコンピュータの有利な実施形態によれば、アプリケーションがいずれかのブランチ（ＩＲＰ）を有するバッファコンテントをドライバに伝送し、このドライバが機械的なやり方で（例えば逐次的なＵＳＢパケットの形態で）装置にそのバッファコンテントを伝送することを試みる。装置からの逐次的なＮＡＫの受け取りはこの送信を遅延させる。
【００７３】
有利な実施形態によれば、少なくとも１つのブランチが少なくとも２つのコード部分を包含する。
【００７４】
より詳細には、各ブランチにおける種々のコード部分の存在が、プログラムの実行の種々の潜在的な発展を考慮するために効率的なツールを提供する。
【００７５】
別の実施形態においては、各ブランチが単一の部分に低減されている。そのような場合には、実行されるべきソフトウェアコードが１つの部分に完全に包含されている非常に特別な実施形態に加えて、ホストコンピュータが有利にはコード部分の同一のパターンの反復的な連続性を提供する。例えば、部分Ａ，Ｂ，ＣおよびＤが同時に装置に提供され、この装置が逐次的にＡ，Ｂ，ＣおよびＤを選択し、その後も再びＡ，Ｂ，ＣおよびＤの順番で選択し続ける。所定の部分が選択される度に、ホストコンピュータにおいて関連するＩＲＰをさらに開始することによって、その所定の部分が同一のトラックにおいて後に再び提案される。このようにして、初期化ステップに起因するコードダウンロードの減速を回避することができる。何故ならば、ホストコンピュータにおけるまだ利用可能でない次の部分（例えばＡ）の前処理は、既に利用可能な他の部分（例えばＢ，ＣおよびＤ）をダウンロードしている間に行われるからである。
【００７６】
有利にはホストコンピュータが、分岐手段によって装置に提案されたコード部分のいずれかのブランチを、このブランチの目下提案されているコード部分に対する否定応答を受信し、他方では別のブランチの目下提案されているコード部分に対する否定応答の受信を中止した後にキャンセルすることができるキャンセル手段を包含する。
【００７７】
この実施形態はホストコンピュータ側におけるメモリ空間を自由にすることができ、したがって装置による先行の選択に関して、提案されたブランチは後続のステップに関する無駄を改善する。また解放されたトラックにおける別のソフトウェアブランチの送信を再初期化することができる。有利にはそのような決定が、ソフトウェアコードトポロジとの関係において最初に記憶されたストラテジに依存して、ホストコンピュータによって自動的に行われる。
【００７８】
このことは有利には、装置によってロードされたブランチの潜在的な必要性を予想することによって行われるので、コンピュータ前処理動作に起因する時間のロスは生じない。しかしながら、対応する要求が装置から受信された場合、殊に利用可能なトラック（例えばエンドポイント）の数が所定の時点での装置による潜在的な選択の数を考慮して十分ではない場合に、次のブランチのロードをリアルタイムで行う必要があるということも達成することができる。前述したように、有利にはそのような動作はページ待ち時間がそれほどクリティカルでない場合にのみプログラミングされるべきである。
【００７９】
本発明はソフトウェア伝送プロセスに関し、このソフトウェア伝送プロセスは
−少なくとも２つのコード部分の形態でソフトウェアコードを記憶し、
−コード部分を装置に伝送し、
−このコード部分に対する装置からの否定応答に基づいて、否定応答の受信が停止されるまで、装置へのあらゆるコード部分の伝送を遅延させる。
【００８０】
本発明によれば、ソフトウェア伝送プロセスはまた：
−伝送時に競合している少なくとも２つのコード部分を装置に同時に提案し、競合するこれらの利用可能なコード部分それぞれの伝送は否定応答によって遅延させられる。
【００８１】
このソフトウェア伝送プロセスは有利には、本発明のあらゆる実施形態によるホストコンピュータによって実行される。
【００８２】
本発明の別の対象はコンピュータプログラム製品に関し、このコンピュータプログラム製品はプログラムがコンピュータにおいて実行される場合には、本発明による伝送プロセスのステップを実行するよう構成されているプログラムコードを包含する。
【００８３】
本発明は図面を参照する以下の実施形態および実施例によってさらに理解および説明される。
【実施例】
【００８４】
図１から３に示されているブロックは単純な機能エンティティであり、これらは物理的に別個のエンティティに対応している必要はない。つまり、これらのエンティティはソフトウェアの形態で開発することができるか、１つまたは複数の集積回路として実現することができる。
【００８５】
さらには、文字が添えられている一般的な番号表記（例えば「３Ａ」）は特定の実施形態（文字「Ａ」）を規定している所定のモデルオブジェクト（装置３）を表す。
【００８６】
ローカルネットワークの構成（図１）は双方向リンク５を介して装置３と接続されているホストコンピュータ２を包含する。装置３はホストコンピュータ２からソフトウェアＳＷを取得するための取得システム１およびこのダウンロードされたソフトウェアＳＷを使用するためのソフトウェア使用ユニット４を包含する。この実施形態においては、ソフトウェアＳＷがダウンロードされるとソフトウェア使用ユニット４はそのソフトウェアＳＷをリアルタイムで使用する。
【００８７】
取得システム１（図２）は以下のものを包含する：
−逐次的なスワップページＳｊ（ここでｊ＝１，２，３．．．）の伝送（図２における実線の矢印）を介してホストコンピュータ２からソフトウェアＳＷを受信するための受信モジュール１１；受信モジュール１１は、ダウンロードに関して同時に提案されたスワップページ「Ｓｉｋ」の内の１つの伝送を装置３がホストコンピュータ２に要求する前に、そのようなスワップページ「Ｓｉｋ」の同時的な提案（破線の矢印）も受信する；これらのスワップページＳｉｋはそれぞれ少なくとも１つのスワップページの所定のソフトウェアブロックＢｉに属し、このブロックＢｉにおいて「ｋ」で表される；選択されたスワップページＳｉｋは次に伝送されるページＳｊとなる；この実施形態においては、競合するスワップページＳｉｋ、したがって競合するブロックＢｉは所定の時点に装置３の所定のエンドポイントＥＰｍとそれぞれ関連付けられている；
−（装置３内に組み込まれているプロセッサが次のスワップを要求したときに）ソフトウェア使用ユニット４によって所望される次のスワップページＳｊの送信をホストコンピュータ２に要求するために、このホストコンピュータ２に対して伝送要求ＲＱ（Ｓｊ）を準備および送信するための要求モジュール１２；
−スワップページのダウンロードが装置３によって要求されるまで、提案されたスワップページＳｉｋの送信を遅延させるために、この提案された各スワップページＳｉｋに対して逐次的なＮＡＫを準備してホストコンピュータ２に送信するための遅延モジュール１３；上記の達成時に遅延モジュール１３は、提案されたスワップページＳｉｋの中から期待されたスワップページＳｉｋの装置３への送信を行うために、遅延後の適切な時点にホストコンピュータ２に対してＡＣＫを送信することもできる；各スワップページＳｉｋはブロックＢｉに関連付けられているので、実際にはＮＡＫおよびＡＣＫがブロックＢｉ自体に関して規定されていると見なすことができる（図示されているように、別のブロックＢｉ´が遅延されている間にブロックＢｉが応答される）；実際にこの実施形態においては、使用されるエンドポイントＥＰｍにＮＡＫおよびＡＣＫが送信される；ＵＳＢにおいては伝送されるべきスワップページＳｉｋに対してそのような明示的なＡＣＫが要求される；別の実施形態においては、所望および提案されたスワップページＳｊを送信させるために単にＮＡＫの送信を停止すれば十分である；
−競合する利用可能なコード部分Ｓｉｋの中から受信すべきコード部分Ｓｉｋを選択する選択モジュール１４；
−ダウンロードされたスワップページＳｊがソフトウェア使用ユニット４によって使用される間、このダウンロードされたスワップページＳｊを一時的に記憶するための記憶モジュール１５。
【００８８】
ホストコンピュータ２（図３）は以下のものを包含する：
−装置３にダウンロードされるべきソフトウェアＳＷを記憶するための記憶モジュール２５；
−逐次的に要求されるスワップページＳｊを装置３に送信するための伝送モジュール２１；
−次のスワップページＳｊの送信を要求する装置３からの伝送要求ＲＱ（Ｓｊ）を受信するための受信モジュール２２；
−伝送時に競合する、それぞれのブロックＢｉの少なくとも２つのスワップページＳｉｋを装置３に同時に提案するための分岐モジュール２４；
−提案されたスワップページＳｉｋに対するＮＡＫを装置３から受信する限り、この提案されたスワップページＳｉｋの伝送を遅延させるための遅延モジュール２３；提案されたスワップページＳｉｋの内の１つに対するＮＡＫが停止されるやいなや、そのスワップページＳｉｋは伝送モジュール２１によって装置３に送信されるべき次のスワップページＳｊになる；受信モジュール２２および遅延モジュール２３は一緒になって１つの装置、命令モジュール２８を形成する；
−伝送時に競合し、装置３に同時に提案されるよう構成されているブロックＢｉの逐次的なページＳｉｋを分岐モジュール２４に提供する連鎖モジュール２６；この実施形態においては、ブロックＢｉはＩＲＰを用いてホストコンピュータ２によって規定されている；装置３から受信した伝送要求ＲＱが、競合するスワップページＳｉｋの１つとして分岐モジュール２４によって目下提案されているページＳｊに関連しない場合には、その要求されたページＳｊが連鎖モジュール２６によって検索され、分岐モジュール２４に供給され、伝送モジュール２１によって装置３に送信される；
−次の伝送に関して待機している別のブロックＢｉが装置３によって代わりに選択され、且つブロックＢｉ´が後続のステップに関して無用であることが判明した場合には、ブロックＢｉ´を必要に応じてキャンセルするためのキャンセルモジュール２７。
【００８９】
ローカルネットワークの構成（図４）の実施例においては、双方向のリンク５はＵＳＢケーブル５Ａであり、装置３はＵＳＢ装置３Ａである。この図に関して、装置３は２つの利用可能なエンドポイントＥＰ１およびＥＰ２を有しており、これらのエンドポイントＥＰ１およびＥＰ２をそれぞれ２つのソフトウェアブロックＢ１およびＢ２の同時的な提案に対して使用することができる。
【００９０】
この図面においては、ホストコンピュータ２は装置３Ａに対してソフトウェアＳＷに加えて、装置３Ａによるパケット受信を検査するためのトークンＴＯＫＥＮを周期的に送信する。装置３Ａ側においては、装置３ＡはＮＡＫおよびＡＣＫメッセージならびに要求ＲＱをホストコンピュータ２に送信することができる。
【００９１】
より詳細には、装置がＯＵＴトークンをＮＡＫする場合には、ホストコンピュータ２は事前に設定されている期間後に次のスワップページＳｊを再度送信することを試みる。
【００９２】
本明細書においては、ＯＵＴトークンについてのＮＡＫを指示するＮＡＫを説明する。
【００９３】
ブロックＢ１およびＢ２は、それぞれＩＲＰ１およびＩＲＰ２と表されている、対応するＩＲＰを介してＰＣ側において利用可能である。
【００９４】
ブロックＢ１およびＢ２は：
−ブロックＢ１に関してはスワップページＳ１〜Ｓ３，Ｓ４およびＳ７を包含し；
−ブロックＢ２に関してスワップページＳ５およびＳ６を包含する。
【００９５】
この構成に基づき、ブロックＢ１のスワップページＳ４およびＳ７が、考えられる代替的なステップとしてブロックＢ２のスワップページＳ５およびＳ６と競合する２つのシナリオを考慮することができる。
【００９６】
動作時には、ホストコンピュータ２および装置３Ａの動作を時間に依存させて並列的に表すことができる。第１のシナリオ（図５）によればブロックＢ１のみが効率的に使用され、このことはスワップページＳ１〜Ｓ３、Ｓ４およびＳ７が装置３Ａによって逐次的に選択されることを意味している。エンドポイントＥＰ１のみがコード部分の伝送に関して使用され、他方のエンドポイントＥＰ２はシステマチックにＮＡＫされることになる。プロセスを詳述すると、スワップページＳ１が送信される前は、両方のブロックＢ１およびＢ２がエンドポイントＥＰ１およびＥＰ２を介してＮＡＫされている。最初のページＳ１が要求されると、装置３Ａは第１のブロックＢ１に対するＮＡＫを停止し、この第１のブロックＢ１に対するＡＣＫを送信し、その結果ページＳ１がダウンロードされ、両方のブロックＢ１およびＢ２が再びＮＡＫされる。以降同じことが逐次的にスワップページＳ２，Ｓ３およびＳ４に適用される。分岐を通過した後には、ブロックＢ２は次のステップに関してもはやユーティリティを有さないので、第２のブロックＢ２（すなわち対応するＩＲＰ ＩＲＰ２）がホストコンピュータ２によってキャンセルされる。ブロックＢ１の最後のページＳ７の送信は単にブロックＢ１のＮＡＫを中止し、このブロックＢ１をＡＣＫすることによって、装置３Ａによって要求された適切な時点に行われる。
【００９７】
第２のシナリオ（図６）によれば、スワップページＳ３の伝送後にブロックＢ１からブロックＢ２への切換が行われる。より詳細には、逐次的に送信されるページはＳ１からＳ３、Ｓ５およびＳ６である。この場合ソフトウェアブロックＢ１は、スワップページＳ３が受信されて両方のブロックＢ１およびＢ２が再びＮＡＫされるまでは第１のシナリオと同様に使用される。しかしながらこの分岐点においては、スワップページＳ５が要求されてＡＣＫされ、他方ではブロックＢ１が継続的にＮＡＫされる。その結果ここでは、第１のＩＲＰ ＩＲＰ１は後続のステップに関して無用になっているので、後にホストコンピュータ２によってキャンセルされる。ブロックＢ２は、このブロックＢ２の最後に残っているページＳ６が最後の伝送のためのその時に要求されてＡＣＫされるまで、ページＳ５の伝送後にＮＡＫされる。
【００９８】
どちらのシナリオを選択するかは、ソフトウェア使用ユニット４によってソフトウェアＳＷが使用される環境に依存して、装置３Ａによってリアルタイムで決定される。
【００９９】
そのようなメカニズムは処理をホストコンピュータ２から独立させる。何故ならば、ブロックＢ１およびＢ２の伝送は装置３Ａが所望のパケットを要求し始める前でさえも既に開始されているからである。したがってこのメカニズムは装置３Ａの完全な制御下にあり、またホストコンピュータ２側のＵＳＢホストコントローラのみを含む。それどころかホストＯＳとの対話は要求されない。このことは、最もクリティカルな時間である、伝送の開始に関する割込に対するホストコンピュータ２のＯＳの応答に関して殊に有利である。
【０１００】
ＤＳＬに関する特別な実施形態（図７）においてはＵＳＢデバイス３ＡがＤＳＬモデムであり、３Ａ´と表されている。モデム３Ａ´はＩＣ６を包含し、このＩＣ６には記憶モジュール１５を形成するＳＲＡＭ１５Ａが設けられている。記憶モジュール１５にはホストコンピュータ２からデータがダウンロードされる度にスワップコード（次のページＳｊ）を充填することができる。
【０１０１】
より複雑な事例を以下説明する。この事例においては、スワップトポロジが４つのスワップブランチＢ１からＢ４（図８）およびこれらのブランチＢｉに基づき４つの潜在的なシーケンスＳＥＱ１からＳＥＱ４（またはシナリオ）を包含する。ブランチおよびシナリオのコンフィギュレーションは装置３の４つのエンドポイントＥＰ１からＥＰ４を考慮して構成されており、４つのシーケンスＳＥＱ１からＳＥＱ２はソフトウェア構造によって実現される。
【０１０２】
実施例において：
−ブランチＢ１はスワップページＳ１からＳ６を包含し；
−ブランチＢ２はスワップページＳ７からＳ１２を包含し、ページＳ７からＳ１０はそれぞれブランチＢ１のページＳ３からＳ６と並列に存在し、
−ブランチＢ３はスワップページＳ１３からＳ１８を包含し、ページＳ１３からＳ１６はそれぞれブランチＢ２のページＳ９からＳ１２と並列に存在し、
−ブランチＢ４はスワップページＳ１９からＳ２３を包含し、これらのスワップページＳ１９からＳ２３はそれぞれブランチＢ３のページＳ１３からＳ１７に並列に存在する。
【０１０３】
この場合：
−第１のシーケンスは、折りたたまれていない逐次的なページＳ１からＳ６によって単にブランチＢ１に依存し、
−第２のシーケンスは、折りたたまれていない逐次的なページＳ１およびＳ２と、ブランチＢ１からブランチＢ２への切り換え後（最初の分岐）の逐次的なページＳ７からＳ１２とによって、ブランチＢ１およびブランチＢ２の組み合わせに依存し、
−第３のシーケンスは、ブランチＢ１からＢ２への切り換え（最初の分岐）およびブランチＢ２からＢ３への切り換え（２回目の分岐）を介して、ブランチＢ１の折りたたまれていない逐次的なページＳ１およびＳ２、ブランチＢ２の逐次的なページＳ７およびＳ８、またブランチＢ３の逐次的なページＳ１３からＳ１８によって、ブランチＢ１，Ｂ２およびＢ３の組み合わせに依存し、
−第４のシーケンスは、ブランチＢ１からＢ２への切り換え（最初の分岐）およびブランチＢ２からＢ４への切り換え（２回目の分岐）を介して、ブランチＢ１の折りたたまれていない逐次的なページＳ１およびＳ２、ブランチＢ２の逐次的なページＳ７およびＳ８、またブランチＢ４の逐次的なページＳ１９からＳ２３によって、ブランチＢ１，Ｂ２およびＢ４の組み合わせに依存する。
【０１０４】
動作時には、ブランチＢ１からＢ４はそれぞれＩＲＰ１からＩＲＰ４で表されている（図９）４つの伝送ＩＲＰに関連付けられており、これら４つの伝送ＩＲＰは、前述の２つのエンドポイントに関して記述したことと同様に、４つの利用可能なエンドポイントＥＰ１からＥＰ４を用いて使用される。したがって、外的な要因に依存して、ダウンロードされたソフトウェアＳＷは特定の４つのシーケンスＳＥＱ１からＳＥＱ４の内の１つを取る。
【０１０５】
より一般的には、競合する可能性が殆ど存在しないようにするために、ページスワップＳｊが競合するブランチＢｉで編成されている。有利には各ブランチＢｉは上述したように、そのブランチＢｉが必ず送信される所定のエンドポイントＥＰｍに専用のものになっている。しかしながら、エンドポイントＥＰｍの数が制限されている場合には、複数のブランチＢｉが同一のエンドポイントに送信されなければならないことを達成できる。
【０１０６】
したがって、４つのブランチＢ１からＢ４を用いる上述の実施例（図８および図９）においては、装置３がダウンロードに関して３つのエンドポイントＥＰｍしか有していない場合には、４番目のブランチＢ４を第１のブランチＢ１と同じエンドポイントＥＰ１に送信することができる。実際には、最初の分岐においてスワップページＳ３またはスワップページＳ７が要求され、スワップページＳ３が要求されれば第１のシーケンスが採用されて、ブランチＢ２からＢ４が以降無用となることを意味しており、スワップページＳ７が要求されれば残りの３つのシーケンスの内の１が選択されることを意味している。スワップページ７が要求された場合には、最初の分岐の通過直後にブランチＢ１をキャンセルしてブランチＢ４に置換することができ、これにより２回目の分岐に達してブランチＢ４が必要となる前に、ブランチＢ２の次の２つのページＳ７およびＳ８のダウンロードに対応する遅延は依然として残されている。
【０１０７】
また、「岐路」がエンドポイントＥＰｍよりも多くのページＳｊを有している可能性がある場合には、ホストコンピュータ２が競合する利用可能なブランチのいずれにも対応しないページ要求ＲＱを装置３から受信すると即座に不要なブランチＢｉをキャンセルし、要求されたページＳｊに対応する別のブランチを有する新たなＩＲＰを開始する。この場合には、システムはもはやホストコンピュータ２のＯＳの応答時間に依存しない。つまりこのことはページ待ち時間があまりクリティカルでない場合にのみ行われる。
【図面の簡単な説明】
【０１０８】
【図１】本発明による取得システムを有する装置に接続されているホストコンピュータを含むローカルネットワークの構成。
【図２】図１の取得システムのブロック図。
【図３】図１のホストコンピュータのブロック図。
【図４】図２の取得システムおよび図３のホストコンピュータを使用する、図１のローカルネットワークの構成の実施例。
【図５】第１のスワップシーケンスにおける図４のローカルネットワークの構成の実施例でのホストコンピュータと装置との間での交換。
【図６】第２のスワップシーケンスにおける図４のローカルネットワークの構成の実施例でのホストコンピュータと装置との間での交換。
【図７】ＤＳＬのための図２および４から６の装置の特別な実施形態。
【図８】４つのスワップブランチおよびこのブランチに基づく４つの潜在的なスワップシーケンスを含むスワップページトポロジ。
【図９】図８のスワップページトポロジの処理に関して、図２の取得システムの４つのエンドポイントをイネーブルする実施形態および図３のホストコンピュータによって使用される４つのＩＲＰ。
【図１】
2006202292.tif 000003
【図２】
2006202292.tif 000004
【図３】
2006202292.tif 000005
【図４】
2006202292.tif 000006
【図５】
2006202292.tif 000007
【図６】
2006202292.tif 000008
【図７】
2006202292.tif 000009
【図８】
2006202292.tif 000010
【図９】
2006202292.tif 000011