(57)【要約】  ユニバーサル・シリアル・バス（ＵＳＢ）大量記憶装置の性能を改善する方法及び装置であって、ホストコンピュータに隣接して配置したローカル拡張装置が周辺装置に隣接して配置した遠隔拡張装置と組み合わせて用いられる。ローカル拡張装置及び遠隔拡張装置ユニットは、ユニット間の伝送遅延時間が１μ秒を越えても、上記ユニット間で大量のデータを効率的に転送できるプロトコルを結合して実行する。性能の改善を達成するのに、上記ホストコンピュータ又は上記ＵＳＢ大量記憶装置を変更する必要がない。ＵＳＢ大量記憶装置をホストコントローラに接続する改良された方法が提供される。【選択図】    図４
2008533572.tif 000002
【特許請求の範囲】
【請求項１】
往復遅延時間が１μ秒を越える伝送システムを介して周辺装置からホストコンピュータへ復行データ流を伝送する方法であって、周辺装置及びホストコンピュータがローカル拡張装置及び遠隔拡張装置を介してＵＳＢ仕様の要求に順応する方法において、
ａ）復行データ転送コマンドを上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記復行データ転送コマンドを上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記復行データ転送コマンドを上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記復行データ転送コマンドを転送すること；
ｂ）上記復行データ転送コマンドの応答を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記復行データ転送コマンドの応答を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記復行データ転送コマンドの応答を上記ホストコンピュータへ転送応答信号として転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記復行データ転送コマンドの応答を転送すること；
ｃ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｄ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータで発生された上記復行データ転送コマンドの繰り返しを吸収させること；
ｅ）復行データパケットの要求を上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記復行データパケットの要求を上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記復行データパケットの要求を上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記復行データパケットの要求を転送すること；
ｆ）上記復行データパケットを上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記復行データパケットを上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記復行データパケットを上記ホストコンピュータへ転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記復行データパケットを転送すること；
ｇ）各復行データパケットが上記遠隔拡張装置で受信された後、上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して確認応答を発生させること；
ｈ）上記復行データパケットが上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｉ）上記復行データパケットの要求の繰り返しを上記ローカル拡張装置に吸収させること；
ｊ）上記ホストコンピュータから受けた上記復行データパケットを上記ローカル拡張装置に吸収させること；
ｋ）各復行データ転送コマンドの要求が満足されるまで、上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して復行データパケットの追加の要求を発生させること；
ｌ）復行データ転送状況の要求を上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記復行データ転送状況の要求を上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記復行データ転送状況の要求を上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記復行データ転送状況の要求を転送すること；
ｍ）上記復行データ転送状況の要求を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記復行データ転送状況の要求を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記復行データ転送状況の要求を上記ホストコンピュータへ転送応答信号として転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記復行データ転送状況の要求を転送すること；
ｎ）上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して応答を発生させること；
ｏ）上記復行データ転送状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｐ）上記復行データ転送状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記復行データ転送状況の要求の繰り返しを吸収させること；
を含むことを特徴とする復行データ流の伝送方法。
【請求項２】
上記周辺装置が大容量記憶装置であることを特徴とする請求項１に記載の復行データ流の伝送方法。
【請求項３】
上記大容量記憶装置がＵＳＢ大量データ転送プロトコルに従って作動する大容量記憶装置であることを特徴とする請求項２に記載の復行データ流の伝送方法。
【請求項４】
上記大容量記憶装置がフラッシュドライブ、ハードドライブ、又はＣＤ／ＤＶＤドライブであることを特徴とする請求項２に記載の復行データ流の伝送方法。
【請求項５】
上記大容量記憶装置が高速（ＨＳ）装置か又は全速（ＦＳ）装置であることを特徴とする請求項２に記載の復行データ流の伝送方法。
【請求項６】
往復遅延時間が１μ秒を越える伝送システムを介してホストコンピュータから周辺装置へ往行データ流を伝送する方法であって、周辺装置及びホストコンピュータがローカル拡張装置及び遠隔拡張装置を介してＵＳＢ仕様の要求に順応する方法において、
ａ）往行データ転送コマンドを上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記往行データ転送コマンドを上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記往行データ転送コマンドを上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記往行データ転送コマンドを転送すること；
ｂ）上記往行データ転送コマンドの応答を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記往行データ転送コマンドの応答を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記往行データ転送コマンドの応答を上記ホストコンピュータへ転送応答信号として転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記往行データ転送コマンドの応答を転送すること；
ｃ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｄ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記往行データ転送コマンドの繰り返しを吸収させること；
ｅ）往行データパケットを上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記往行データパケットを上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記往行データパケットを上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記往行データパケットを転送すること；
ｆ）各往行データパケットが上記ローカル拡張装置で受信された後、上記ローカル拡張装置に、上記ホストコンピュータに対して確認応答を発生させること；
ｇ）上記ＵＳＢ雌雄片装置で発生した各往行データパケットの応答を上記遠隔拡張装置に吸収させること；
ｈ）往行データコマンド状況の要求を上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記往行データコマンド状況の要求を上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記往行データコマンド状況の要求を上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記往行データコマンド状況の要求を転送すること；
ｉ）上記往行データコマンド状況を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記往行データコマンド状況を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記往行データ転送状況を上記ホストコンピュータへ転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記往行データコマンド状況を転送すること；
ｊ）上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して応答を発生させること；
ｋ）上記往行データコマンド状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｌ）上記往行データコマンド状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記往行データコマンド状況の要求の繰り返しを吸収させること；
を含むことを特徴とする往行データ流の伝送方法。
【請求項７】
上記周辺装置が大容量記憶装置であることを特徴とする請求項６に記載の往行データ流の伝送方法。
【請求項８】
上記大容量記憶装置がＵＳＢ大量データ転送プロトコルに従って作動する大容量記憶装置であることを特徴とする請求項７に記載の往行データ流の伝送方法。
【請求項９】
上記大容量記憶装置がフラッシュドライブ、ハードドライブ、又はＣＤ／ＤＶＤドライブであることを特徴とする請求項７に記載の往行データ流の伝送方法。
【請求項１０】
上記大容量記憶装置が高速（ＨＳ）装置か又は全速（ＦＳ）装置であることを特徴とする請求項７に記載の往行データ流の伝送方法。
【請求項１１】
ホストコンピュータとＵＳＢ周辺装置との間のデータ転送セションの境界及び特性を決定する方法において、
ａ）拡張装置ユニットを介してＵＳＢホストコントローラからＵＳＢ周辺装置へ全ての往行パケットを転送すること；
ｂ）各往行データパケットの構造をＵＳＢ仕様で決められたようなコマンドブロックラッパー（ＣＢＷ）飲む構造と比較してデータ転送セションを決定すること；
ｃ）上記往行くデータパケットの最初の４バイトをＣＢＷの一意シグニチャと比較してＣＢＷの検出を検証すること；
ｄ）ＣＢＷ構造で決められたようなＣＢＷタグフィールドからデータを読み出すことで上記往行データパケットから一意タグを取り出すこと；
ｅ）ＣＢＷ構造で決められたようなＣＢＷデータ転送長さフィールドからデータを読み出すことで上記データ転送セション中に転送すべきデータの量を決めること；
ｆ）ＣＢＷ構造で決められたようなＣＢＷフラグフィールドからデータを読み出すことで上記データ転送セションの方向を決めること；
を含むことを特徴とする方法。
【請求項１２】
ＵＳＢ大容量記憶装置の存在を自動的に検出し、そしてＵＳＢ大容量記憶装置の取扱い方法を選択するのに用いられることを特徴とする請求項１１に記載の方法。
【請求項１３】
ＵＳＢ仕様で通常許された伝送遅延より大きな伝送遅延の存在下でホストコンピュータとＵＳＢ周辺装置との間でデータを伝送する装置において、
ａ）ｉ）コマンドフェーズ、ｉｉ）データフェーズ及びｉｉｉ）状況フェーズを含むデータ転送セションを開始するホストコンピュータと；
ｂ）上記ホストコンピュータから遠隔拡張装置へコマンド及び往行データパケットを転送しかつ上記遠隔拡張装置から上記ホストコンピュータへ復行データ及び応答パケットを転送するローカル拡張装置ユニットと；
ｃ）ＵＳＢ仕様で通常許された伝送遅延より大きな伝送遅延を示すデータ伝送システムと；
ｄ）上記ローカル拡張装置から上記ＵＳＢ周辺装置へコマンド及び往行データパケットを転送しかつ上記上記ＵＳＢ周辺装置から上記ローカル拡張装置へ復行データ、状況及び応答パケットを転送する遠隔拡張装置ユニットと；
ｅ）データ転送コマンドに応答できるＵＳＢ周辺装置と；
ｆ）上記ローカル拡張装置ユニットに設けられ、データ転送応答パケットを発生して上記ホストコンピュータへ伝送する手段と；
ｇ）上記ローカル拡張装置ユニットに設けられ、復行データパケット又は復行応答パケットが上記ホストコンピュータで要求されるまで、復行データパケット又は復行応答パケットを記憶する手段と；
ｈ）上記ローカル拡張装置ユニットに設けられ、繰り返しコマンド、往行データ及び状況要求パケットを吸収する手段と；
ｉ）上記ローカル拡張装置ユニットに設けられ、データ転送セションが開始される際及び上記セションが完了した際を確認する手段と；
ｊ）上記遠隔拡張装置ユニットに設けられ、データ転送応答パケットを発生して上記ＵＳＢ周辺装置へ伝送する手段と；
ｋ）上記遠隔拡張装置ユニットに設けられ、上記復行データ転送の要求を発生して上記ＵＳＢ周辺装置へ伝送する手段と；
ｌ）上記遠隔拡張装置ユニットに設けられ、データ転送応答パケットを吸収する手段と；
ｍ）上記遠隔拡張装置ユニットに設けられ、データ転送セションが開始される際及び上記セションが完了した際を確認する手段と；
を有することを特徴とするデータ伝送装置。
【請求項１４】
上記周辺装置が大容量記憶装置であることを特徴とする請求項１３に記載のデータ伝送装置。
【請求項１５】
上記大容量記憶装置がＵＳＢ大量データ転送プロトコルに従って作動する大容量記憶装置であることを特徴とする請求項１４に記載のデータ伝送装置。
【請求項１６】
上記大容量記憶装置がフラッシュドライブ、ハードドライブ、又はＣＤ／ＤＶＤドライブであることを特徴とする請求項１４に記載のデータ伝送装置。
【請求項１７】
ａ）往行方向に伝わるデータパケットを受信し、復行方向に伝わるデータパケットを送信する上流トランシバーと；
ｂ）復行方向に伝わるパケットを受信し、往行方向に伝わるデータパケットを送信する下流トランシバーと；
ｃ）上流トランシバーと下流トランシバーとの間でＵＳＢパケットを転送し、上記ＵＳＢパケットに含まれた情報を分析するパケットプロセッサと；
ｄ）上記パケットプロセッサに設けられ、上記上流トランシバー及び下流トランシバーから受けたＵＳＢパケットを吸収する手段と；
ｅ）上記パケットプロセッサに設けられ、上記上流トランシバー及び下流トランシバーから受けたＵＳＢパケットを記憶する手段と；
ｆ）上記パケットプロセッサに設けられ、上記上流トランシバー及び下流トランシバーから受けたＵＳＢパケットに含まれる情報を分析する手段と；
ｅ）上記パケットプロセッサに設けられ、ＵＳＢパケットを発生して上記上流トランシバー及び下流トランシバーへ転送する手段と；
を有することを特徴とするＵＳＢパケットの阻止、分析及び発生装置。
【請求項１８】
上記パケットプロセッサがＵＳＢ装置の存在を自動的に検知し、それにより上記装置を処理する方法を選択する手段を構成することを特徴とする請求項１７に記載の装置。
【請求項１９】
上記ＵＳＢ装置が大容量記憶装置であることを特徴とする請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユニバーサル・シリアル・バス（ＵＳＢ）ポートを用いてコンピュータと装置との間で信号を伝送する方法及び装置に関するものであり、そして特に、上記コンピュータと大量記憶装置との間の伝送経路が相当な遅延時間を持つ場合に、かかるポートを用いてＵＳＢ大量記憶装置を作動する方法に関する。
【背景技術】
【０００２】
ユニバーサル・シリアル・バス（ＵＳＢ）は、平均的なユーザーによってパーソナルコンピュータに広範囲の周辺装置を取り付けできるように設計された技術である。この技術は、キーボード、マウス、スピーカー、ジョイステック（操作棒）、カメラ、フラッシュドライブ、ハードドライブ、ＤＶＤドライブ及び多くのその他のもののような全ての周辺装置をサポートしており、最近のコンピュータにおいてはその使用は普通である。
【０００３】
ＵＳＢは、コンピュータ及び通信市場において最大七社の協力で作られた。これらの会社は、インテル、コンパック、マイクロソフト、ノーテル、ＮＥＣ、デジタル及びＩＢＭであった。ＵＳＢを定義している仕様（例えば、インテル等、ユニバーサル・シリアル・バス仕様、改訂１．０、１９９６年１月、そして１９９８年９月２３日に改訂１．１として更新、そしてさらに２０００年４月に改訂２．０として更新、その後更新、追加及び変更（以下まとめて“ＵＳＢ仕様”と記載する）これには更なる変更及び改訂を含み得る）は、所有権がなく、ＵＳＢフォーラムとして知られた公開工業組織で管理されている。ＵＳＢ仕様は、ＵＳＢ規格に適合させるために満たさなければならない多数の基準を設けている。ＵＳＢ仕様はまた、多数の用語を定義しており、これらの定義は本明細書に適合される。
【０００４】
しかし、本発明に最も関連した特徴は、全ての既知のＵＳＢ仕様が、ホストＰＣから装置を分離できる距離を今では最大で５ｍに制限していることにある。一連のＵＳＢハブ（距離を長くするよりはむしろ件数の増加を意図としている装置）を用いることによって、この距離の増大は理論的には３０ｍまで伸ばすことができる。しかし、このマルチプルハブによる解決法では費用がかかると共に扱い難くなる。
【０００５】
米国特許第６，３８１，６６６号（その内容は参照として本明細書に組込まれる）では、ホストＰＣと周辺装置との間の距離をのばす方法及び装置が提供されており、利用可能な距離を１００ｍ以上に伸ばしている。この方法は利益をもたらしてきたが、なお同じ効果をもたらす代わりの及び／又は改良された方法及び装置を提供することが望ましい。
【０００６】
ＵＳＢの範囲をのばすことのできる範囲を限定する主な要因は伝送遅延時間にある。ＵＳＢ仕様では、ホストコンピュータから装置へそしてコンピュータへ戻る単一の通信の往復遅延時間について最大でほぼ１．５μ秒の時間が許容されている。１．５μ秒の往復遅延時間は、二つのほぼ等しい部分、即ちホストコンピュータと装置との間の両方向における伝送遅延時間と所望の応答をするのに装置で要するターンアラウンド時間とから成っている。米国特許第６，３８１，６６６号に記載された方法では、往復遅延時間の上限のこの限界を除去している。
【０００７】
米国特許第６，３８１，６６６号に記載された方法によって、大量データ転送用のプロトコルのため、伸張した距離にわたってＵＳＢ大容量記憶装置を作動させることができたが、伴う時間遅延はむやみに長くなり得る。これらのむやみに長い伝送遅延時間を避ける或いは改善するために、往復遅延時間が最初の特定された値を超えた時にＵＳＢ大容量記憶装置の性能をさらに改善することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、米国特許第６，３８１，６６６号に記載されたような範囲拡張ＵＳＢ技術は有効であることが証明されてきたが、ＵＳＢ使用を利用して長い伝送遅延の存在下で大容量記憶装置を使用できる改良された方法及び装置を提供することによってかかる技術を改良することがなお望ましい。
【０００９】
従って、本発明の目的は、ＵＳＢ仕様で現在許容されている伝送遅延より大きな伝送遅延時間の存在の下でＵＳＢ仕様に適合する大容量記憶装置に伝送させる改良された方法及び装置を提供することにある。
【００１０】
本発明の別の目的は、既存のホストコンピュータ、ハブ及びシステムでサポートされかつＵＳＢプロトコルの下で作動する装置に対して、ハードウエア又はソフトウエアを変える必要を無くすことにある。それにより、本発明は、従来の遅延装置及び被拡張遅延装置の両方を備えたネットワークに組合せられ得る。
【００１１】
本発明の別の目的は、ＵＳＢ工業で目標とされた装置の最拡張数と矛盾しない非常にコスト上有利な装置を提供することにある。
【００１２】
本発明の別の目的は、高速（ＨＳ）ＵＳＢ大容量記憶装置及び全速（ＦＳ）ＵＳＢ大容量記憶装置に対してサポートすることにある。
【００１３】
本発明の別の目的は、システムが上記ＵＳＢ大容量記憶装置の存在を自動的に検知し、そして手動介入又は構成なしに上記装置を取り扱う方法を選択することにある。
【課題を解決するための手段】
【００１４】
本明細書で明らかになる本発明のこれら及びその他の目的は、本発明が提供する方法及び関連装置によって達成され、ホストコンピュータはローカル拡張装置に接続され、ローカル拡張装置は通常のＵＳＢ周辺装置に接続した遠隔拡張装置に接続され、ホストコンピュータとＵＳＢ周辺装置との間の信号は、ホストコンピュータとＵＳＢ周辺装置を、ＵＳＢ仕様で通常許され手いる伝送遅延より大きな伝送遅延の存在下で動作させるように、ローカル拡張装置及び／又は遠隔拡張装置において処理される。特に、本発明は、ホストコンピュータとＵＳＢ周辺装置との間の往復遅延時間が１μ秒を超える場合に最も有利である。
【００１５】
従って、第１の特徴において、本発明は、好ましくは往復遅延時間が１μ秒を越える伝送システムを介して周辺装置からホストコンピュータへ復行データ流を伝送する方法を提供し、上記ホストコンピュータ及び上記周辺装置はローカル拡張装置及び遠隔拡張装置を介してＵＳＢ仕様の要求に順応し、また上記周辺装置は好ましくは大容量記憶装置であり、そしてかかる方法は、
ａ）復行データ転送コマンドを上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記復行データ転送コマンドを上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記復行データ転送コマンドを上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記復行データ転送コマンドを転送すること；
ｂ）上記復行データ転送コマンドの応答を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記復行データ転送コマンドの応答を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記復行データ転送コマンドの応答を上記ホストコンピュータへ転送応答信号として転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記復行データ転送コマンドの応答を転送すること；
ｃ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｄ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータで発生された上記復行データ転送コマンドの繰り返しを吸収させること；
ｅ）復行データパケットの要求を上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記復行データパケットの要求を上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記復行データパケットの要求を上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記復行データパケットの要求を転送すること；
ｆ）上記復行データパケットを上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記復行データパケットを上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記復行データパケットを上記ホストコンピュータへ転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記復行データパケットを転送すること；
ｇ）各復行データパケットが上記遠隔拡張装置で受信された後、上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して確認応答を発生させること；
ｈ）上記復行データパケットが上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｉ）上記復行データパケットの要求の繰り返しを上記ローカル拡張装置に吸収させること；
ｊ）上記ホストコンピュータから受けた上記復行データパケットを上記ローカル拡張装置に吸収させること；
ｋ）各復行データ転送コマンドの要求が満足されるまで、上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して復行データパケットの追加の要求を発生させること；
ｌ）復行データ転送状況の要求を上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記復行データ転送状況の要求を上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記復行データ転送状況の要求を上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記復行データ転送状況の要求を転送すること；
ｍ）上記復行データ転送状況の要求を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記復行データ転送状況の要求を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記復行データ転送状況の要求を上記ホストコンピュータへ転送応答信号として転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記復行データ転送状況の要求を転送すること；
ｎ）上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して応答を発生させること；
ｏ）上記復行データ転送状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｐ）上記復行データ転送状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記復行データ転送状況の要求の繰り返しを吸収させること；
を含んでいる。
【００１６】
別の特徴において、本発明は、往復遅延時間が１μ秒を越える伝送システムを介してホストコンピュータから周辺装置へ往行データ流を伝送する方法を提供し、上記ホストコンピュータ及び上記周辺装置はローカル拡張装置及び遠隔拡張装置を介してＵＳＢ仕様の要求に順応し、また上記周辺装置は好ましくは大容量記憶装置であり、そしてかかる方法は、
ａ）往行データ転送コマンドを上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記往行データ転送コマンドを上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記往行データ転送コマンドを上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記往行データ転送コマンドを転送すること；
ｂ）上記往行データ転送コマンドの応答を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記往行データ転送コマンドの応答を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記往行データ転送コマンドの応答を上記ホストコンピュータへ転送応答信号として転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記往行データ転送コマンドの応答を転送すること；
ｃ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｄ）上記転送応答信号が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記往行データ転送コマンドの繰り返しを吸収させること；
ｅ）往行データパケットを上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記往行データパケットを上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記往行データパケットを上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記往行データパケットを転送すること；
ｆ）各往行データパケットが上記ローカル拡張装置で受信された後、上記ローカル拡張装置に、上記ホストコンピュータに対して確認応答を発生させること；
ｇ）上記ＵＳＢ雌雄片装置で発生した各往行データパケットの応答を上記遠隔拡張装置に吸収させること；
ｈ）往行データコマンド状況の要求を上記ローカル拡張装置へ送り、上記ローカル拡張装置に上記往行データコマンド状況の要求を上記遠隔拡張装置へ転送させ、そして上記遠隔拡張装置に上記往行データコマンド状況の要求を上記ＵＳＢ周辺装置へ転送させることにより、上記ホストコンピュータから上記ＵＳＢ周辺装置へ上記往行データコマンド状況の要求を転送すること；
ｉ）上記往行データコマンド状況を上記遠隔拡張装置へ送り、上記遠隔拡張装置に上記往行データコマンド状況を上記ローカル拡張装置へ転送させ、そして上記ローカル拡張装置に上記往行データ転送状況を上記ホストコンピュータへ転送させることにより、上記ＵＳＢ周辺装置から上記ホストコンピュータへ上記往行データコマンド状況を転送すること；
ｊ）上記遠隔拡張装置に、上記ＵＳＢ周辺装置に対して応答を発生させること；
ｋ）上記往行データコマンド状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記ホストコンピュータに対して否定応答を発生させること；
ｌ）上記往行データコマンド状況が上記ローカル拡張装置で受信されるまで、上記ローカル拡張装置に、上記往行データコマンド状況の要求の繰り返しを吸収させること；
を含んでいる。
【００１７】
さらに別の特徴において、本発明は、ＵＳＢ仕様で通常許された伝送遅延より大きな伝送遅延の存在下でホストコンピュータとＵＳＢ周辺装置、好ましくは大容量記憶装置との間でｉ）コマンドフェーズ、ｉｉ）データフェーズ及びｉｉｉ）状況フェーズを含むデータ転送セションにおいてデータを伝送する装置を提供し、かかる装置は、
ａ）上記データ転送セションを開始するホストコンピュータと；
ｂ）上記ホストコンピュータから遠隔拡張装置へコマンド及び往行データパケットを転送しかつ上記遠隔拡張装置から上記ホストコンピュータへ復行データ及び応答パケットを転送するローカル拡張装置ユニットと；
ｃ）ホストコンピュータとＵＳＢ周辺装置との間でＵＳＢ仕様で通常許された伝送遅延より大きな伝送遅延を示すデータ伝送システムと；
ｄ）上記ローカル拡張装置から上記ＵＳＢ周辺装置へコマンド及び往行データパケットを転送しかつ上記上記ＵＳＢ周辺装置から上記ローカル拡張装置へ復行データ、状況及び応答パケットを転送する遠隔拡張装置ユニットと；
ｅ）データ転送コマンドに応答できるＵＳＢ周辺装置と；
ｆ）上記ローカル拡張装置ユニットに設けられ、データ転送応答パケットを発生して上記ホストコンピュータへ伝送する手段と；
ｇ）上記ローカル拡張装置ユニットに設けられ、復行データパケット又は復行応答パケットが上記ホストコンピュータで要求されるまで、復行データパケット又は復行応答パケットを記憶する手段と；
ｈ）上記ローカル拡張装置ユニットに設けられ、繰り返しコマンド、往行データ及び状況要求パケットを吸収する手段と；
ｉ）上記ローカル拡張装置ユニットに設けられ、データ転送セションが開始される際及び上記セションが完了した際を確認する手段と；
ｊ）上記遠隔拡張装置ユニットに設けられ、データ転送応答パケットを発生して上記ＵＳＢ周辺装置へ伝送する手段と；
ｋ）上記遠隔拡張装置ユニットに設けられ、上記復行データ転送の要求を発生して上記ＵＳＢ周辺装置へ伝送する手段と；
ｌ）上記遠隔拡張装置ユニットに設けられ、データ転送応答パケットを吸収する手段と；
ｍ）上記遠隔拡張装置ユニットに設けられ、データ転送セションが開始される際及び上記セションが完了した際を確認する手段と；
を有している。
【００１８】
さらに別の特徴において、本発明は、ホストコンピュータとＵＳＢ周辺装置との間のデータ転送セションの境界及び特性を決定する、及び特にデータ転送セションがＵＳＢ仕様で決められたバルクオンリー・トランスポート・プロトコルに順応しているかどうかを決定する方法を提供し、かかる方法は、
ａ）拡張装置ユニットを介してＵＳＢホストコントローラからＵＳＢ周辺装置へ全ての往行パケットを転送すること；
ｂ）各往行データパケットの構造をＵＳＢ仕様で決められたようなコマンドブロックラッパー（ＣＢＷ）飲む構造と比較してデータ転送セションを決定すること；
ｃ）上記往行くデータパケットの最初の４バイトをＣＢＷの一意シグニチャと比較してＣＢＷの検出を検証すること；
ｄ）ＣＢＷ構造で決められたようなＣＢＷタグフィールドからデータを読み出すことで上記往行データパケットから一意タグを取り出すこと；
ｅ）ＣＢＷ構造で決められたようなＣＢＷデータ転送長さフィールドからデータを読み出すことで上記データ転送セション中に転送すべきデータの量を決めること；
ｆ）ＣＢＷ構造で決められたようなＣＢＷフラグフィールドからデータを読み出すことで上記データ転送セションの方向を決めること；
を含んでいる。
【００１９】
さらに別の特徴において、本発明は、好ましくは本発明の方法を実施するのに用いる、ＵＳＢパケットを阻止、分析及び発生する装置を提供し、かかる装置は、
ａ）往行方向に伝わるデータパケットを受信し、復行方向に伝わるデータパケットを送信する上流トランシバーと；
ｂ）復行方向に伝わるパケットを受信し、往行方向に伝わるデータパケットを送信する下流トランシバーと；
ｃ）上流トランシバーと下流トランシバーとの間でＵＳＢパケットを転送し、上記ＵＳＢパケットに含まれた情報を分析するパケットプロセッサと；
ｄ）上記パケットプロセッサに設けられ、上記上流トランシバー及び下流トランシバーから受けたＵＳＢパケットを吸収する手段と；
ｅ）上記パケットプロセッサに設けられ、上記上流トランシバー及び下流トランシバーから受けたＵＳＢパケットを記憶する手段と；
ｆ）上記パケットプロセッサに設けられ、上記上流トランシバー及び下流トランシバーから受けたＵＳＢパケットに含まれる情報を分析する手段と；
ｅ）上記パケットプロセッサに設けられ、ＵＳＢパケットを発生して上記上流トランシバー及び下流トランシバーへ転送する手段と；
を有する。
【００２０】
〔好ましい実施形態〕
好ましい実施形態では、ホストコンピュータは、ＵＳＢ仕様をサポートする任意の標準型ユニットであり得る。好ましくは、上記コンピュータのハードウエアか又はソフトウエアに対して如何なる変更も必要ない。
【００２１】
ローカル拡張装置は、好ましくは標準型ＵＳＢケーブルを介してホストコンピュータに接続する独立言語型ユニットである。
【００２２】
遠隔拡張装置は、好ましくは標準型ＵＳＢケーブルを介してＵＳＢ周辺装置に接続する独立言語型ユニットである。
【００２３】
データ伝送システムは、任意の特定のメディア又はプロトコルに限定されず、本発明に従う動作において、典型的には、ホストコンピュータとＵＳＢ周辺装置との間に１μ秒を超える往復遅延時間を導入する。
【００２４】
本発明の方法及び装置は、最も好ましくは、上記ホストコントローラがＰＣであり、上記周辺装置が例えばフラッシュドライブ、ハードドライブ、又はＣＤ／ＤＶＤドライブ或いは大容量記憶ユニットとして動作できる任意の他のＵＳＢ装置のような大容量記憶ユニットであるシステムに用いられる。これには、ＵＳＢ大量データ転移プロトコルを用いてホストコントローラからデータを転送し或いはデータを受信する任意の装置が含まれる。
【００２５】
拡張装置ユニットの好ましい実施形態では、パケットプロセッサはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）において実施される。
【００２６】
ローカル拡張装置ユニットの好ましい実施形態では、上流トランシーバは標準型ＵＳＢトランシーバであり、また下流トランシーバは無線トランシーバである。
【００２７】
遠隔拡張装置ユニットの好ましい実施形態では、上流トランシーバは無線トランシーバであり、また下流トランシーバは標準型ＵＳＢトランシーバである。
【発明を実施するための最良の形態】
【００２８】
添付図面を参照して本発明及び本発明の種々の特徴について説明する。
【００２９】
図１は、ＵＳＢ仕様に従って構成した先行技術のシステムのブロック線図である。ＵＳＢ仕様によれば、ＵＳＢ操作可能なコンピュータ（１）は中央プロセッサユニット（１０）と、ＵＳＢホストコントローラ（１１）として知られた入力／出力ユニットとで構成され得る。ＵＳＢホストコントローラ（１１）は、ＵＳＢプロトコルに従って入力／出力動作を行ない、そしてＵＳＢケーブル（２）を介して外部ＵＳＢ周辺装置（７）と接続されている。ＵＳＢケーブルとしては長さ５ｍを越えるものは許されない。
【００３０】
図２は、本発明による長い伝送遅延の存在下でＵＳＢ装置間で通信するシステムのブロック線図である。このシステムにおいて、ホストコンピュータ（１）に対する入力／出力動作は、標準ＵＳＢケーブル（２）を介してホストコンピュータ（１）に接続されるローカル拡張装置（３）でインターセプトされる。ローカル拡張装置（３）は好ましくは、“変更”形式のＵＳＢプロトコルを発生し、このＵＳＢプロトコルは、伝送システム（４）を介して、ローカル拡張装置（３）から離れた距離に配置され得る遠隔拡張装置（４）へ伝送される。
【００３１】
実際に、本発明のこの実施形態では、ホストコンピュータ（１）及びローカル拡張装置（３）は個々のユニットとして組立てられる。当業者には明らかなように、これらの構成要素を種々組み合わせて用いてもよく、また代わりのパッケージング構成も可能である。
【００３２】
遠隔拡張装置（５）は物理的メディアから信号を受け、そして必要ならば、好ましくは受信した信号をＵＳＢプロトコルに適合する電気信号に変換し、ＵＳＢケーブル（６）を介してこれらの電気信号をＵＳＢ周辺装置（７）へ伝送する。ＵＳＢ周辺装置（７）はフラッシュ記憶装置であるが、上記で述べたように任意のＵＳＢ大容量記憶装置でもよい。
【００３３】
信号がＵＳＢ周辺装置（７）からホストコンピュータ（１）へ伝送される際には逆のプロセスが行われる。
【００３４】
実際に、本発明のこの実施形態では、遠隔拡張装置（５）及びＵＳＢ周辺装置（７）は個々のユニットとして構成される。当業者には明らかなように、これらの構成要素を種々組み合わせて用いてもよく、また代わりのパッケージング構成も可能である。
【００３５】
本発明の一つの実施形態では、外部伝送システム（４）は、単一モード繊維光学ケーブルを用いたポイントツーポイント（二点間）接続であり、ホストコンピュータ（１）とＵＳＢ周辺装置（７）との間の伝送遅延時間は例えば１μ秒まで又はそれ以上までにできる。しかし、その他の実施形態では、外部メディアを変えることができる。例えば、本発明の別の実施形態では、外部伝送システム（４）は無線接続にでき、ホストコンピュータ（１）とＵＳＢ周辺装置（７）との間の伝送遅延時間は例えば１００ｍ秒まで又はそれ以上までにできる。本発明のさらに別の実施形態では、外部伝送システム（４）はインターネット接続にでき、ホストコンピュータ（１）とＵＳＢ周辺装置（７）との間の伝送遅延時間は例えば１秒まで又はそれ以上までにできる。
【００３６】
実際に、当業者には明らかなように、これらの構成要素を種々組み合わせて用いてもよく、また相応して伝送遅延時間も変えることができる。
【００３７】
図３には、ＵＳＢプロトコルによる復行データ伝送セションをシーケンス線図で示している。この線図で使用した表示フォーマットはＪａｃｏｂｓｏｎ等（Ｉｖａｒ  Ｊａｃｏｂｓｏｎ，Ｍａｇｎｕｓ  Ｃｈｒｉｓｔｅｒｓｏｎ，Ｐａｔｒｉｃｋ  Ｊｏｎｓｓｏｎ及びＧｕｎｎａｒ  Ｏｖｅｒｇａａｒｄ，Ｏｂｊｅｃｔ−Ｏｒｉｅｎｔｅｄ  ｓｏｆｔｗａｒｅ  Ｅｎｇｉｎｅｅｒｉｎｇ：Ａ  Ｕｓｅ  Ｃａｓｅ  Ｄｒｉｖｅｎ  Ａｐｐｒｏａｃｈ，Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ，１９９２年）によるものである。このプロトコルによれば、復行データ伝送セションは、三つの個々のフェーズ、即ちコマンドフェーズと、データフェーズと、状況フェーズとから成っている。
【００３８】
コマンドフェーズにおいては、ホストコンピュータ（１）内の制御ロジック（２０）は、復行データ伝送の通知を発生し、そして上記通知をＤＡＴＡ０／１（ＣＢＷ）パケットが追従するＯＵＴパケットとしてＵＳＢ周辺装置（７）へ伝送する。上記ＵＳＢ周辺装置内の制御ロジック（２３）は上記通知を受け、そして肯定応答をＡＣＫパケットとして上記ホストコンピュータへ戻すことによりコマンドの受入れ信号を発生する。
【００３９】
同じセションのデータフェーズでは、ホストコンピュータ（１）内の制御ロジック（２４）は復行データの要求を発生し、そしてこの要求をＩＮパケットしてＵＳＢ周辺装置（７）へ伝送する。上記ＵＳＢ周辺装置内の制御ロジック（２７）は要求された復行データを組立てて、そのデータをＤＡＴＡ０／１パケットとして上記ホストコンピュータへ伝送する。ホストコンピュータは受信したデータの正当性を検証し、そして上記ＵＳＢ周辺装置へのＡＣＫパケットとしての肯定応答に応動する。
【００４０】
上記ホストコンピュータ内の制御ロジック（２４）は、データの要求されたブロックが転送されるまで、復行データの繰り返し要求を発生する。一度データフェーズが完了すると、システムは状況フェーズに移行する。
【００４１】
同じセションの状況フェーズでは、ホストコンピュータ（１）内の制御ロジック（２８）は、復行データ転送状況の要求を発生し、そしてこの要求をＩＮパケットとしてＵＳＢ周辺装置（７）へ伝送する。上記ＵＳＢ周辺装置内の制御ロジック（３１）は上記要求された復行データ転送状況を組立てて、上記状況をＤＡＴＡ０／１（ＣＳＷ）として上記ホストコンピュータへ伝送する。ホストコンピュータは受信したデータの正当性を検証し、そして上記ＵＳＢ周辺装置へのＡＣＫパケットとしての肯定応答に応動する。
【００４２】
図４は、本発明による復行データ転送セションを示すシーケンス線図である。復行データ転送セションは、三つの個々のフェーズ、即ちコマンドフェーズと、データフェーズと、状況フェーズとから成っている。
【００４３】
コマンドフェーズにおいては、ホストコンピュータ（１）内の制御ロジック（２０）は、復行データ伝送の最初の通知を発生し、そして上記通知をＤＡＴＡ０／１（ＣＢＷ）パケットが追従するＯＵＴパケットとしてローカル周辺装置（３）へ伝送する。ローカル周辺装置（３）内の制御ロジック（２１）は上記通知を受け、そして上記通知を遠隔拡張装置（５）へ伝送する。制御ロジック（２１）はまた、ＮＡＫパケットとしての否定応答で上記ホストコンピュータに応動する。遠隔拡張装置（５）内の制御ロジック（２２）は、上記通知を受け、そして上記通知をＵＳＢ周辺装置（７）へ伝送する。ＵＳＢ周辺装置（７）内の制御ロジック（２３）は、上記通知を受け、そして肯定応答をＡＣＫパケットとして上記遠隔拡張装置へ戻すことにより上記復行データ転送コマンドの受入れ信号を発生する。制御ロジック（２２）は、上記ＡＣＫパケットが制御ロジック（２１）によってメモリーに記憶される場合に上記ローカル拡張装置へ上記ＡＣＫパケットを伝送する。
【００４４】
遅延の後、ホストコンピュータにおける制御ロジック（２０）は、復行データ転送の上記最初の通知を再審する。復行データ転送の上記再審した通知を受けると、ローカル拡張装置における制御ロジック（２１）はメモリーからの上記記憶したＡＣＫパケットを回復し、そして上記ＡＣＫパケットを上記ホストコンピュータへ戻す。これによりコマンドフェーズは完了する。
【００４５】
同じセションのデータフェーズでは、ホストコンピュータ（１）内の制御ロジック（２４）は復行データの最初の要求を発生し、そしてこの要求をＩＮパケットしてローカル拡張装置（３）へ伝送する。ローカル拡張装置（３）内の制御ロジック（２５）は復行データの上記要求を受け、そして上記要求を遠隔拡張装置（５）へ伝送する。制御ロジック（２５）はまた、ＮＡＫパケットとしての否定応答で上記ホストコンピュータに応動する。遠隔拡張装置（５）内の制御ロジック（２６）は、復行データの上記通知を受け、そして上記通知をＵＳＢ周辺装置（７）へ伝送する。
【００４６】
上記ＵＳＢ周辺装置（７）内の制御ロジック（２７）は要求された復行データを組立てて、そのデータをＤＡＴＡ０／１パケットとして遠隔拡張装置へ伝送する。上記遠隔拡張装置内の制御ロジック（２６）は、受信したデータの正当性を検証し、そして上記ＵＳＢ周辺装置へのＡＣＫパケットとしての肯定応答に応動する。制御ロジック（２６）は、上記ＤＡＴＡ０／１パケットが制御ロジック（２５）によってメモリーに記憶される場合に該ＤＡＴＡ０／１パケットを上記ローカル拡張装置へ伝送する。
【００４７】
遅延の後、ホストコンピュータ（１）における制御ロジック（２４）は、復行データ転送の上記最初の通知を再審する。復行データ転送の上記再審した通知を受けると、ローカル拡張装置（３）における制御ロジック（２５）はメモリーからの上記記憶したＤＡＴＡ０／１パケットを回復し、そして上記ＤＡＴＡ０／１パケットを上記ホストコンピュータへ伝送する。ホストコンピュータは受信したデータの正当性を検証し、そして上記ローカル拡張装置へのＡＣＫパケットとしての肯定応答に応動する。
【００４８】
遠隔拡張装置（５）における制御ロジック（２６）で最初のＤＡＴＡ０／１パケットを受けると、上記制御ロジックは、復行データ転送の最初の通知を満たすために付加的な復行データパケットが必要であるかどうかを決定する。付加的なデータが必要であると決定されると、制御ロジック（２６）は付加的な復行データのローカル要求を発生し、そしてその要求をＩＮパケットとしてＵＳＢ周辺装置（７）へ伝送する。
【００４９】
ＵＳＢ周辺装置（７）内の制御ロジック（２７）は上記付加的な復行データを組立て、そして該データをＤＡＴＡ０／１パケットとして遠隔拡張装置（５）へ伝送する。上記遠隔拡張装置内の制御ロジック（２６）は、受信したデータの正当性を検証し、そして上記ＵＳＢ周辺装置へのＡＣＫパケットとしての肯定応答に応動する。制御ロジック（２６）は、上記付加的なＤＡＴＡ０／１パケットが制御ロジック（２５）によってメモリーに記憶される場合に該付加的なＤＡＴＡ０／１パケットを上記ローカル拡張装置（３）へ伝送する。
【００５０】
遅延の後、ホストコンピュータ（１）における制御ロジック（２４）は、復行データ転送の上記最初の通知を再審する。復行データ転送の上記再審した通知を受けると、ローカル拡張装置（３）における制御ロジック（２５）はメモリーからの上記記憶した付加的なＤＡＴＡ０／１パケットを回復し、そして上記記憶した付加的なＤＡＴＡ０／１パケットを上記ホストコンピュータへ伝送する。ホストコンピュータは受信したデータの正当性を検証し、そして上記ローカル拡張装置へのＡＣＫパケットとしての肯定応答に応動する。このプロセスは、復行データ転送の上記最初の通知の要求が満たされかつデータフェーズが完了するまで繰り返す。
【００５１】
同じセションの状況フェーズでは、ホストコンピュータ（１）内の制御ロジック（２８）は、復行データ転送状況の要求を発生し、そしてこの要求をＩＮパケットとしてローカル拡張装置（３）へ伝送する。上記ローカル拡張装置内の制御ロジック（２９）は上記要求された復行データ転送状況を遠隔拡張装置（５）へ伝送し、そしてＮＡＫパケットとしての否定応答に応動する。
【００５２】
遠隔拡張装置（５）内の制御ロジック（３０）は、復行データ転送状況の上記要求をＵＳＢ周辺装置（７）へ伝送する。上記ＵＳＢ周辺装置内の制御ロジック（３１）は上記要求された復行データ転送状況を組立て、そしてＤＡＴＡ０／１（ＣＳＷ）パケットとして上記遠隔拡張装置へ伝送する。遠隔拡張装置は受信したデータの正当性を検証し、そして上記ＵＳＢ周辺装置へのＡＣＫパケットとしての肯定応答に応動する。制御ロジック（３０）は、上記要求された復行データ伝送状況が制御ロジック（２９）によってメモリーに記憶される場合に上記状況をＤＡＴＡ０／１（ＣＳＷ）としてローカル拡張装置（３）へ伝送する。
【００５３】
遅延の後、ホストコンピュータ（１）における制御ロジック（２８）は、復行データ転送状況の第２の要求を発生する。復行データ転送状況を受けると、ローカル拡張装置（３）における制御ロジック（２９）はメモリーからの上記記憶したＤＡＴＡ０／１（ＣＳＷ）パケットを回復し、そして上記記憶したＤＡＴＡ０／１（ＣＳＷ）パケットを上記ホストコンピュータへ戻す。ホストコンピュータは受信したデータの正当性を検証し、そして上記ローカル拡張装置へのＡＣＫパケットとしての肯定応答に応動する。ローカル拡張装置は、上記肯定応答パケットを吸収する。
【００５４】
図５は、ＵＳＢプロトコルによる往行データ転送セションを示すシーケンス線図である。上記往行データ転送セションは、三つの個々のフェーズ、即ちコマンドフェーズと、データフェーズと、状況フェーズとから成っている。
【００５５】
コマンドフェーズにおいては、ホストコンピュータ（１）内の制御ロジック（２０）は、往行データ伝送の通知を発生し、そして上記通知をＤＡＴＡ０／１（ＣＢＷ）パケットが追従するＯＵＴパケットとしてＵＳＢ周辺装置（７）へ伝送する。ＵＳＢ周辺装置内の制御ロジック（２３）は上記通知を受け、そして肯定応答をＡＣＫパケットとして上記ホストコンピュータへ戻すことによりコマンドの受入れ信号を発生する。
【００５６】
同じセションのデータフェーズでは、ホストコンピュータ（１）内の制御ロジック（２４）は往行データトランザクションを発生し、そしてこのトランザクションをＯＵＴ／ＤＡＴＡ０／１パケットしてＵＳＢ周辺装置（７）へ伝送する。上記ＵＳＢ周辺装置内の制御ロジック（２７）は上記往行データトランザクションを受け、受けたデータの正当性を検証し、そしてＡＣＫパケットとしての肯定応答で上記ホストコンピュータに応動する。
【００５７】
ホストコンピュータ（１）における制御ロジック（２４）は、データの要求されたブロックが転送されるまで、往行データトランザクションを繰り返し発生する。データフェーズが完了すると、システムは状況フェーズへ移行する。
【００５８】
同じセションの状況フェーズでは、ホストコンピュータ（１）内の制御ロジック（２８）は往行データ転送状況の要求を発生し、そしてこの要求をＩＮパケットしてＵＳＢ周辺装置（７）へ伝送する。ＵＳＢ周辺装置内の制御ロジック（３１）は上記要求された往行データ転送状況を組立てて、ＤＡＴＡ０／１（ＣＳＷ）として上記ホストコンピュータへ伝送する。ホストコンピュータは受信したデータの正当性を検証し、そしてＡＣＫパケットとしての肯定応答で上記ＵＳＢ周辺装置に応動する。
【００５９】
図６は、本発明による往行データ転送セションを示すシーケンス線図である。上記往行データ転送セションは、三つの個々のフェーズ、即ちコマンドフェーズと、データフェーズと、状況フェーズとから成っている。
【００６０】
コマンドフェーズにおいては、ホストコンピュータ（１）内の制御ロジック（２０）は、往行データ転送の最初の通知を発生し、そして上記通知をＤＡＴＡ０／１（ＣＢＷ）パケットが追従するＯＵＴパケットとしてローカル拡張装置（３）へ伝送する。ローカル拡張装置（３）内の制御ロジック（２１）は上記通知を受け、そして遠隔拡張装置（５）へ伝送する。制御ロジック（２１）はまた、ＮＡＫパケットとしての否定応答で上記ホストコンピュータに応答する。遠隔拡張装置（５）内の制御ロジック（２２）は上記通知を受け、ＵＳＢ周辺装置（７）へ伝送する。ＵＳＢ周辺装置内の制御ロジック（２３）は上記通知を受け、そして肯定応答をＡＣＫパケットとして上記遠隔拡張装置へ戻すことにより上記復行データ転送コマンドの受入れ信号を発生する。制御ロジック（２２）は、上記ＡＣＫパケットが制御ロジック（２１）によってメモリーに記録されるローカル拡張装置へ伝送する。
【００６１】
遅延の後、ホストコンピュータ（１）における制御ロジック（２０）は、往行データ転送の上記最初の通知を再審する。往行データ転送の上記再審した通知を受けると、ローカル拡張装置（３）における制御ロジック（２１）はメモリーからの上記記憶したＡＣＫパケットを回復し、そして上記ＡＣＫパケットを上記ホストコンピュータへ戻す。これによりコマンドフェーズが完了する。
【００６２】
同じセションのデータフェーズでは、ホストコンピュータ（１）内の制御ロジック（２４）は最初の往行データトランザクションを発生し、そしてこのトランザクションをＯＵＴ／ＤＡＴＡ０／１パケットしてローカル拡張装置（３）へ伝送する。ローカル拡張装置（３）内の制御ロジック（２５）は上記最初の往行データトランザクションを受け、遠隔拡張装置（５）へ伝送する。制御ロジック（２５）はまた、ＡＣＫパケットとしての肯定応答で上記ホストコンピュータに応答する。遠隔拡張装置（５）内の制御ロジック（２６）は上記最初の往行データトランザクションを受け、そしてこのトランザクションをＵＳＢ周辺装置（７）へ伝送する。
【００６３】
ＵＳＢ周辺装置（７）内の制御ロジック（２７）は、受信したデータの正当性を検証し、そして最初のＡＣＫパケットとしての肯定応答に応動する。遠隔拡張装置（５）内の制御ロジック（２６）は上記最初の肯定応答パケットを吸収する。
【００６４】
ホストコンピュータ（１）における制御ロジック（２４）で上記最初のＡＣＫパケットを受けると、上記制御ロジックは、往行データ転送の上記最初の通知を満たすために付加的な往行データトランザクションが必要であるかどうかを決定する。付加的なデータトランザクションが必要であると決定されると、制御ロジック（２４）は付加的な往行データトランザクションを発生し、そしてプロセスは、要求が満たされるまで繰り返される。
【００６５】
一度データフェーズが完了すると、システムは状況フェーズへ移行する。
【００６６】
同じセションの状況フェーズでは、ホストコンピュータ（１）内の制御ロジック（２８）は、往行データ転送状況の要求を発生し、そしてこの要求をローカル拡張装置（３）へ伝送する。上記ローカル拡張装置内の制御ロジック（２９）は上記要求を遠隔拡張装置（５）へ伝送し、そしてＮＡＫパケットとしての否定応答で上記ホストコンピュータに応答する。
【００６７】
遠隔拡張装置（５）内の制御ロジック（３０）は、往行データ転送状況の上記要求をＵＳＢ周辺装置（７）へ伝送する。上記ＵＳＢ周辺装置内の制御ロジック（３１）は上記要求された往行データ転送状況を組立て、そしてＤＡＴＡ０／１（ＣＳＷ）パケットとして上記遠隔拡張装置へ伝送する。遠隔拡張装置は受信したデータの正当性を検証し、そしてＡＣＫパケットとしての肯定応答で上記ＵＳＢ周辺装置に応答する。制御ロジック（３０）は、上記状況が制御ロジック（２９）によってメモリーに記憶されるローカル拡張装置（３）へＤＡＴＡ０／１（ＣＳＷ）パケットとして伝送する。
【００６８】
遅延の後、ホストコンピュータ（１）における制御ロジック（２８）は、往行データ転送状況の第２の要求を発生する。往行データ転送状況の上記第２の要求を受けると、ローカル拡張装置（３）における制御ロジック（２９）はメモリーからの上記記憶したＤＡＴＡ０／１パケットを回復し、そして上記記憶したＤＡＴＡ０／１パケットを上記ホストコンピュータへ戻す。ホストコンピュータは受信したデータの正当性を検証し、そしてＡＣＫパケットとしての肯定応答で上記ローカル拡張装置に応動する。ローカル拡張装置は、上記肯定応答パケットを吸収する。
【００６９】
図７は、先行技術のＵＳＢ仕様によるＵＳＢコマンドブロックラッパーの構成を示す表である。第１欄には、ＵＳＢデータパケットに取られるフィールドのデータバイトの相対位置を定義している。第２欄には、相応したデータバイトの論理内容を定義している。即ち、示されるように、ＣＢＷシグニチャ（符号）パラメータは、ＵＳＢデータパケットに取られるフィールドに従って最初の四つのバイトを占めている（場所０、１、２、３）。
【００７０】
先行技術のＵＳＢ仕様によれば、大容量記憶クラスに属ししかもバルクオンリー・トランスポート・プロトコルを実行する装置の場合、ＣＢＷシグニチャの値は、１６進表記法で４３４２５３５５でなければならない。これは一意値をもたらし、この一意値は本発明において設けられる拡張装置ユニットによって検知され得、また、ＵＳＢバルクデータ転送プロトコルに従って作動する大容量記憶装置を決めるために用いられ得る。上記一意値の検知は、データ転送セションを開始することを上記拡張装置ユニットに表示する。
【００７１】
先行技術のＵＳＢ仕様によれば、ＣＤＷタグの値は、各個々のデータ転送セションを一意的に識別するために上記ＵＳＢホストコントローラによって割り当てられる。上記一意値を検知することにより、上記拡張装置ユニットは、同時に起こる多数のデータ転送セション間の区別が可能となる。
【００７２】
先行技術のＵＳＢ仕様によれば、ＣＤＷデータ転送長さの値は、最新のセション中に転送すべきバイトの数を特定する。上記データ転送長さを検知することにより、上記拡張装置ユニットは、最新のセションに対してどの程度の量のデータパケットが必要であるかを決めることができ、またそのセションが何時完了するかを検知することができる。
【００７３】
先行技術のＵＳＢ仕様によれば、ＣＤＷフラグフィールドのビット７はデータ転送の方向を表している。上記方向を検知することにより、上記拡張装置ユニットは、復行又は往行データ転送セションに対して適切なアルゴリズムを選択することができる。
【００７４】
図８は、先行技術のＵＳＢ仕様によるＵＳＢコマンド状況ラッパーの構成を示す表である。第１欄には、ＵＳＢデータパケットに取られるフィールドのデータバイトの相対位置を定義している。第２欄には、相応したデータバイトの論理内容を定義している。
【００７５】
先行技術のＵＳＢ仕様によれば、大容量記憶クラスに属ししかもバルクオンリー・トランスポート・プロトコルを実行する装置の場合、ＣＢＷシグニチャの値は、１６進表記法で４３４２５３５５でなければならない。これは一意値をもたらし、この一意値は本発明において設けられる拡張装置ユニットによって検知され得る。上記一意値の検知は、データ転送セションが完了することを上記拡張装置ユニットに表示する。
【００７６】
先行技術のＵＳＢ仕様によれば、ＣＤＷタグの値は、各個々のデータ転送セションを一意的に識別するために上記ＵＳＢホストコントローラによって割り当てられる。上記一意値を検知することにより、上記拡張装置ユニットは、同時に起こる多数のデータ転送セション間の区別が可能となる。
【００７７】
図９は、本発明による拡張装置ユニット（ローカルか又は遠隔）を示すブロック線図である。この構成において、上流トランシバー（６１）と下流トランシバー（６３）との間のＵＳＢトラフィク経路はパケットプロセッサ（６２）を経由している。この手段によって、パケットプロセッサ（６２）は必要に応じてパケットを伝送したり阻止したりできる。上記パケットプロセッサ（６２）はまたパケットを発生し、そして発生したパケットを上流及び下流のいずれかの方向に伝送し得る。上記パケットプロセッサはまた、システムを通過する際にパケットの内容及びその後のデータの流れの動作を制御する特別のデータの内容を検査し得る。
【００７８】
実際に、本発明のこの実施形態では、上流トランシバー（６１）、パケットプロセッサ（６２）及び下流トランシバー（６３）は別個のユニットとして構成される。しかし、当業者には明らかなように、これら構成要素の違った組合せを用いることもでき、また代わりのパッケージング構成も可能である。
【００７９】
本発明の一つの特定の実施形態では、上流トランシバー（６１）はＵＳＢトランシバーであり、パケットプロセッサ（６２）はＦＰＧＡであり、また下流トランシバー（６３）は無線トランシバーである。この構成は、無線ネットワークに用いるためのローカル拡張装置を構成するのに用いられ得る。
【００８０】
本発明の別の実施形態では、上流トランシバー（６１）は無線トランシバーであり、パケットプロセッサ（６２）はＦＰＧＡであり、また下流トランシバー（６３）はＵＳＢトランシバーである。この構成は、無線ネットワークに用いるための遠隔拡張装置を構成するのに用いられ得る。
【００８１】
図１０は、本発明による拡張装置ユニット（ローカルか又は遠隔）の動作を示すデータ流れ線図である。上記拡張装置ユニットの動作は、本発明において必要な主データ流れ通路の各々を別個に考察して説明する。しかし、動作において、上記別個の主データ流れ通路は同時に及び／又は任意の組合せで作動され得る。本発明の動作に関連する四つの別個のデータ流れ通路が設けられる。第１及び第２通路は、主に、個々のＵＳＢデータパケットがホストコンピュータからローカル拡張装置及び遠隔拡張装置を通ってＵＳＢ周辺装置に向う下流方向へ流れている場合に関連している。第３及び第４通路は、主に、個々のＵＳＢデータパケットがＵＳＢ周辺装置から遠隔拡張装置及びローカル拡張装置を通ってホストコンピュータに向う上流方向へ流れている場合に関連している。
【００８２】
最初のデータ流れでは、ＵＳＢデータパケットは、上流トランシバー（６１）から下流トランシバー（６３）へ伝送される。この動作を実行するために、個々のデータバイトは、上流トランシバー（６１）によってレポートされ、そして下流トランザクション処理プロセス（７１）によって下流ＦＩＦＯ（７２）へ伝送される。そして、下流順方向プロセス（７３）は上記個々のデータバイトを下流トランシバー（６３）へ伝送する。各バイトが上記下流トランザクション処理プロセス（７１）によって伝送される際に、上記プロセスは、制御レジスタ（７４）の内容を変更するために用いられる特別の情報に対して各バイトの内容を検査する。
【００８３】
特に、先行技術のＵＳＢ仕様によれば、各パケットの最初のバイトは、パケットの形式を表すパケット識別子（ＰＩＤ）であり、ＰＩＤには、ＩＮ、ＯＵＴ、ＡＣＫ、ＮＡＫ、ＤＡＴＡ０／１及びＳＥＴＵＰ値が含まれる。上記制御レジスタ（７４）に記憶されたＰＩＤの値は、全データパケットのその後の処理を制御するのに用いることができる。さらに特に、ＰＩＤがＤＡＴＡ０／１値に相応する場合には、下記のバイトを検査してＣＢＷシグニチャ、ＣＢＷタグ、ＣＢＷデータ転送長さ及びＣＢＷフラグ情報を検知する。
【００８４】
上記最初のデータ流れの特定の瞬時において、下流トランザクション取扱いプロセス（７１）はＵＳＢデータパケットのアドレスフィールド及びＰＩＤを検査する。このプロセス（７１）はまた制御レジスタ（７４）の状況も検査する。上記プロセス（７１）が、データパケットを吸収すべきであることを決定する場合には、上記ＵＳＢデータパケットを備えるデータバイトは下流ＦＩＦＯ（７２）へ送られない。
【００８５】
上記最初のデータ流れの別の瞬時において、下流トランザクション取扱いプロセス（７１）はＵＳＢデータパケットのアドレスフィールド及びＰＩＤを検査する。このプロセス（７１）はまた制御レジスタ（７４）の状況も検査する。上記プロセス（７１）が、データパケットに応答する必要があることを決定する場合には、上記プロセス（７１）は、上記応答を発生するように上流応答取扱いプロセス（８１）を要求する。
【００８６】
第２のデータ流れにおいては、上流トランシバー（６１）から受信したＵＳＢデータパケットはマイクロプロセッサ（７６）へ送られる。この動作を行うために、上流トランシバー（６１）でレポートされた個々のデータバイトは、下流トランザクション取扱いプロセス（７１）で要求ＦＩＦＯ（７５）に複写される。そして、上記データバイトはマイクロプロセッサ（７６）によって要求ＦＩＦＯ（７５）から読取られる。
【００８７】
特に、下流トランザクション取扱いプロセス（７１）がＳＥＴＵＰ  ＰＩＤの存在を検知すると、全ＳＥＴＵＰパケット及びその後に続くＤＡＴＡ０／１パケットは両方とも上記要求ＦＩＦＯに複写される。この作用により、マイクロプロセッサ（７６）は、上流通路において受信すべきＵＳＢ記述子情報を含む相応したＤＡＴＡ０／１パケットについて準備させる。
【００８８】
第３のデータ流れにおいては、ＵＳＢデータパケットは下流トランシバー（６３）から上流トランシバー（６１）へ伝送される。この動作を行うために、個々のデータバイトは、下流トランシバー（６３）でレポートされ、そして上流トランザクション取扱いプロセス（７７）によって上流ＦＩＦＯ（７８）へ伝送される。その後、上流キャッシングプロセス（７９）は、上流ＦＩＦＯ（７８）からデータバイトを除去し、そして上記データバイトを上流キャッシュ（８０）に記憶する。その後に下流トランザクション取扱い（７１）で発生した刺激に応じて上記データバイトは、上流応答取扱いプロセス（８１）によって上流キャッシュ（８０）から除去され、上流トランシバー（６１）へ伝送される。
【００８９】
上記第２のデータ流れの特定の瞬時において、上流トランザクション取扱いプロセス（７７）はＵＳＢデータパケットのＰＩＤフィールドを検査する。このプロセス（７７）はまた制御レジスタ（７４）の状況も検査する。上記プロセス（７７）が、データパケットを吸収すべきであることを決定する場合には、上記ＵＳＢデータパケットを備えるデータバイトは上流ＦＩＦＯ（７８）へ送られない。
【００９０】
上記第１のデータ流れの別の瞬時において、上流トランザクション取扱いプロセス（７７）はＵＳＢデータパケットのＰＩＤフィールドを検査する。このプロセス（７７）はまた制御レジスタ（７４）の状況も検査する。上記プロセス（７７）が、データパケットに応答する必要があることを決定する場合には、上記プロセス（７７）は、上記応答を発生するように下流応答取扱いプロセス（７３）を要求する。
【００９１】
第４のデータ流れでは、下流トランシバー（６３）から受信したＵＳＢデータパケットは、マイクロプロセッサ（７６）へ伝送される。この動作を実行するために、下流トランシバー（６３）によってレポートされた個々のデータバイトは、上流トランザクション取扱いプロセス（７７）によって状況ＦＩＦＯ（８２）に複写される。そして、上記データバイトはマイクロプロセッサ（７６）によって状況ＦＩＦＯ（８２）から読取られる。
【００９２】
特に、ＳＥＴＵＰ（取出し記述子）コマンドが下流トランシバー（６３）を介して伝送されそしてＵＳＢ周辺装置（７）がＤＡＴＡ０／１パケットにおける要求した記述子情報に応答すると、上記要求した記述子情報はマイクロプロセッサ（７６）によって取り込まれる。先行技術のＵＳＢ仕様によれば、上記要求した記述子内に含まれるパラメータは上記ＵＳＢ周辺装置（７）のインターフェースクラス及びインターフェースプロトコルを識別する。マイクロプロセッサ（７６）内のアルゴリズムは上記インターフェースクラス及びインターフェースプロトコルパラメータを分けるのに用いられる。上記ＵＳＢ周辺装置（７）のインターフェースクラスパラメータが大容量記憶クラス（０８  １６進法）であり、またインターフェースプロトコルがバルクオンリー・トランスポート（５０  １６進法）であると決まると、マイクロプロセッサ（７６）は、制御レジスタ（７４）を本発明で説明したデータ転送セション取扱いに適用できるようにする。
【００９３】
本方法及び装置を用いることによって、ＵＳＢ大容量記憶装置の存在を自動的に検知し、従って、マニュアル介入及び構成なしで、ホストコンピュータと周辺装置との間のデータ転送を取り扱う方法を選択することができる。
【００９４】
よって、本発明によれば、上述のような手段、目的及び先行技術に勝る利点を全部又は少なくとも一部において満足できるＵＳＢ装置を提供できることが分かる。従って、本発明の上述で特殊な実施形態について説明してきたが、それの代わりのもの、変更及び変形は当業者に提示され得、本明細書は特許請求の範囲内のかかる全ての代わりのもの、変更例及び変形例を包含するものである。
【００９５】
さらに、明確にしかつ特に記載しない限り、本明細書及び特許請求の範囲で用いた用語“備える、有する”及び“備えている”及び“有している”のような用語の変形は、他の付加、構成、完全体又は段階を除外しようとするものではないことが理解される。
【図面の簡単な説明】
【００９６】
【図１】ＵＳＢによるシステムのブロック線図。
【図２】長い伝送遅延の存在下でのＵＳＢ装置との通信システムのブロック線図。
【図３】図１に示す装置を用いた先行技術のＵＳＢプロトコルによる復行データ転送セションを示すシーケンス線図。
【図４】本発明による復行データ転送セションを示すシーケンス線図。
【図５】先行技術のＵＳＢプロトコルによる往行データ転送セションを示すシーケンス線図。
【図６】本発明による往行データ転送セションを示すシーケンス線図。
【図７】先行技術のＵＳＢプロトコルによるＵＳＢコマンドブロックラッパーの構成を示す表。
【図８】先行技術のＵＳＢプロトコルによるＵＳＢコマンド状況ラッパーの構成を示す表。
【図９】本発明による拡張装置ユニットのブロック線図。
【図１０】本発明による拡張装置ユニットの動作を示すデータフロー線図。
【図１】
2008533572.tif 000003
【図２】
2008533572.tif 000004
【図３】
2008533572.tif 000005
【図４】
2008533572.tif 000006
【図５】
2008533572.tif 000007
【図６】
2008533572.tif 000008
【図７】
2008533572.tif 000009
【図８】
2008533572.tif 000010
【図９】
2008533572.tif 000011
【図１０】
2008533572.tif 000012
【国際調査報告】
2008533572.tif 000013
2008533572.tif 000014
2008533572.tif 000015
2008533572.tif 000016