JP2012515400A - Usbデバイスの高速起動のためのシステム、装置および方法 - Google Patents

Usbデバイスの高速起動のためのシステム、装置および方法 Download PDF

Info

Publication number
JP2012515400A
JP2012515400A JP2011546316A JP2011546316A JP2012515400A JP 2012515400 A JP2012515400 A JP 2012515400A JP 2011546316 A JP2011546316 A JP 2011546316A JP 2011546316 A JP2011546316 A JP 2011546316A JP 2012515400 A JP2012515400 A JP 2012515400A
Authority
JP
Japan
Prior art keywords
usb
firmware
usb device
memory
downloading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011546316A
Other languages
English (en)
Inventor
ハリス、スティーブン・エフ.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012515400A publication Critical patent/JP2012515400A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Stored Programmes (AREA)

Abstract

例示的実施形態は、USBデバイスおよびUSBホストを含むUSBシステムにおけるデバイスの高速の数え上げ(エヌメレーション)に向けられている。前記USBデバイスは、2つのデバイス記述子と、前記USBデバイスの操作のためのファームウェアを保有するメモリと、前記ファームウェアを実行するコントローラとを含んでいる。第1のデバイス記述子は、ファームウェア・ロード・モードにおいて前記USBデバイスを数え上げるためのものであって、また第2のデバイス記述子は、操作モードにおいて前記USBデバイスを数え上げるためのものである。前記USBホストは、前記第1のデバイス記述子を使用して、前記USBデバイスの1回目の数え上げをコントロールする。前記1回目の数え上げの後、前記USBホストは、前記USBデバイスから、2回目の数え上げであることを示す表示子を受信し、前記第2のデバイス記述子を使用して、前記USBデバイスの2回目の数え上げをコントロールする。
【選択図】図3

Description

USB(Universal Serial Bus)は、種々様々な周辺機器にコンピュータを取り付けるための周辺機器インターフェース標準である。これらの周辺機器は、一般にファンクション(function)と呼ばれており、キーボード、マウス、カメラ、モニタ、モデム、およびその他の周辺機器のようなハブおよびデバイスを含んでもよい。
USBシステムの諸デバイスは、各デバイスが1つまたは複数のハブを通じてUSBホストに接続される「層状星形トポロジー」(a tiered star topology)でUSBホストに接続されている。USBシステムは、ポーリングされるバス(a polled bus)であって、ここにおいては、ホストコンピュータが1つのUSBコントローラを含んでおり、このUSBコントローラがバス上のすべての通信を管理し、デバイスの取り付けまたは取り外しによる変化がないかバス・トポロジーをモニタする。
ほとんどのバス・トランザクションは、3つのパケットを含んでいる。ホストコントローラは、トランザクションのタイプおよび方向と、デバイスのアドレスと、エンドポイントの番号とを記述しているトークンパケットを送信する。アドレス付けされているUSBデバイスは、そのトークンパケットから自分のアドレスを認識する。トークンパケットの中で特定されている方向に基づいて、ホストからアドレス先デバイスへ、またはアドレス先デバイスからホストへのいずれかへ、データが転送される。たいていの場合、データの到達先は、転送データについての受信ステータスを示すハンドシェイクパケットを用いて応答をする。
USBシステムが多数のバス接続周辺機器をサポートするのに対し、USBプロトコルは、ポイント・ツー・ポイントのプロトコルである。言いかえれば、単一のホストが一度にデータを送れるのは、一義的にアドレス付けされている単一のデバイスに対してである。かくして、様々なデバイスへのデータは、時分割多重化されていて、そのことによって、各デバイスは、そのタイムスロットの間に、データを受信または送信することができるようになっている。
USBシステムは、一般に長さが1ミリ秒のフレームを定義し、そのフレーム中で、バス上の多くのデバイスまたはすべてのデバイスに異なるタイムスロットを割り当てることができる。各デバイスは、固有アドレスを持っており、そのことによって、各デバイスは、送信データが自分宛てのものであるかどうかわかる。あるいは、各デバイスは、送信データといっしょに当該固有アドレスをホストに供給し、そのことによって、ホストは、どのデバイスからそのデータが受信されているかわかる。
USBデバイスが最初プラグインされるとき、USBデバイスは、初期化、数え上げ(enumeration)および設定のプロセスを実行し、USBホストとその上のクライアントソフトウェアとによる使用のためにUSBデバイスを起動する。この起動プロセスは、大量のファームウェアまたは他の起動要求を備えた複雑なUSBデバイスの場合にあっては、時間的に相当長いものになる可能性がある。しかしながら、多くのオペレーティングシステムは、USBデバイスがオペレーティングシステムにとって利用可能となるまでの起動プロセスの実行に要する時間について認証要件を課している。
ここに、USBデバイスの複雑な構成をなお許容しながら、オペレーティングシステムの要求を充足するように高速起動プロセスを実行するシステム、装置および方法に対するニーズがある。
図1は、USBシステムについてのトポロジー図を示している。 図2は、本発明の例示的実施形態における論理的通信パイプの単純化されたブロック図を示している。 図3は、本発明の例示的実施形態の単純化されたブロック図を示している。 図4は、本発明の実施形態に準拠している初期化プロセスの状態ブロック図を示している。 図5は、本発明の実施形態に準拠している数え上げプロセスの単純化されたフローチャートである。 図6Aは、1回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。 図6Bは、2回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。
発明の詳細な説明
本件明細書において、「例示的」という語は「例、事例または実例として役立つ」ということを意味するために使用されている。本件明細書において説明されているいかなる実施形態も、必ずしも他の実施形態に比べて好ましいまたは有利であるとして解釈されるべきではない。
添付の図面に関連して以下において述べられる発明の詳細な説明は、本発明の例示的実施形態の説明として意図されているものであって、本発明が実行され得るただ一つの実施形態を表わすように意図されているものではない。本件明細書を通じて使用されている「例示的」という語は、「例、事例または実例として役立つ」ということを意味しているのであって、必ずしも他の例示的実施形態に比べて好ましいまたは有利であるとして解釈されるべきではない。発明の詳細な説明は、発明の例示的実施形態についての完全な理解を提供する目的で特定の詳細を含んでいる。これらの特定の詳細がなくても発明の例示的実施形態が実行可能であることは当業者にとって明白であろう。いくつかの事例においては、よく知られている構成やデバイスは、本件明細書提示の例示的実施形態の新規性をあいまいにしてしまうことを避けるために、ブロック図の形式で示されている。
本発明の例示的実施形態は、高速USB起動プロセスを実行することに向けられている。そのプロセスは、USBデバイスのための比較的長い設定プロセスをなお許容しつつ、USBデバイスの初期化、数え上げおよび設定を含んでもよい。
図1は、従来のUSBシステムのためのトポロジー図100を示している。USBホスト110は、多数の接続ポイントを備えているルートハブを含んでいる。図1において、第1のファンクション150Aは、1つの接続ポイントにおいて接続され、第1のハブ120Aは、第2の接続ポイントに接続されている。第1のハブ120Aは、多数の接続ポイントを含んでいる。第2のファンクション150B、第2のハブ120Bおよび第3のハブ120Cは、第1のハブ120Aに接続されている。第2のハブ120Bは、多数の接続ポイントを含んでいてもよい。第3のファンクション150Cは、第2のハブ120Bに接続されている。第3のハブ120Cは、多数の接続ポイントを含んでいる。第4のファンクション150Dおよび第5のファンクション150Eは、第3のハブ120Cに接続されている。
ハブは、アップストリームポート上の受信データを各々のダウンストリームポートに送信すること、およびダウンストリームポートの1つからアップストリームポートへ情報を送信することにより中継器として機能する。与えられた任意の時間において、ただ1つのファンクションまたはホストのみがバス上に情報を置いているはずである。かくして、例えば、ホストは、第5のファンクション150E宛ての情報を送ることができる。情報は、第5のファンクション150Eへの途上、第1のハブ120Aおよび第3のハブ120Cを通って流れる。
USBファンクションとは、一般に、ある能力をデバイスに与えるUSBデバイスである。例えば、USBファンクションは、USBデバイス、USBハブ、USBホストコントローラ、USBトランシーバ等であってよい。
USBハブは、ポート上でのUSBデバイスの取り付けおよび取り外しを報告するためのステータスビットを含んでいる。USBホストは、トポロジー中のすべてのデバイスについての接続ステータスを決定するために、およびすべての接続されているUSBデバイスのマップを維持するために、USBハブに質問をすることができる。USBデバイスがポートから取り外されるとき、USBハブは、ポートを無効(disable)にし、ステータスビットによって取り外しを報告する。取り外されたデバイスがUSBハブである場合、ホストコントローラソフトウェアは、取り外されたUSBハブに接続されていたすべてのUSBデバイスが今は未接続状態にあるということを示すためにマップを更新する。
ホストコンピュータとUSBデバイス上の特定のエンドポイントとの間でUSBデータ転送が起きる。ホストとエンドポイントとの間の関係は、一般にパイプと呼ばれる。一般に、ある1つのパイプ中のデータ移動は、他のパイプ中のデータ移動と独立である。かくして、与えられたUSBデバイスは、多数のパイプを含んでもよく、またUSBシステム全体の中に多数のパイプがあってもよい。
USBプロトコルは、4つの基本的タイプのデータ転送をサポートする;すなわち、コントロール転送、バルクデータ転送、インタラプトデータ転送および等時性データ転送の4つである。コントロール転送は、デバイスが取り付けられるときにデバイスを設定するために、および他のデバイス固有タスク(例えば、デバイス上の他のエンドポイントをコントロールすること)を管理するために使用される。
バルクデータ転送は、一般にバースト的なデータであってバンド幅要件またはレイテンシ要求に特に制約のないデータに対して使用される。
インタラプトデータ転送は、人間が感知可能なデータのような低いレイテンシ要求を有するデータに対して使用される。
等時性(アイソクロナス)データ転送は、実質的に一定のバンド幅および低いレイテンシを要求するデバイスに対して、USBバンド幅の事前にネゴシエートされた部分を使用する。そのようなデータの例は、ビデオおよびオーディオのストリーミングデータである。
図2は、本発明の例示的実施形態における論理的通信パイプの単純化されたブロック図を示している。USBホスト110は、多数のパイプ190のためにデータを供給または受信する多数のバッファ170を含んでいてもよい。各パイプは、USBデバイス200の内部の異なるエンドポイント(210と220)に接続されてもよい。ホスト内のクライアントソフトウェア160は、様々なバッファ170から情報を受信する、または様々なバッファ170に情報を送信する。エンドポイント0 210は、以下において説明されるように、コントロール転送のためのものである。USBデバイス200は、その他の情報を受信および送信するために、またはその他のファンクションをコントロールするために、他のエンドポイント220を含んでいてもよい。
USBパイプ190は、USBデバイス200上のエンドポイント(210と220)へのメモリバッファ170を介して、USBホスト110上のソフトウェアとソフトウェアとの間でデータを移す能力を表わす論理的構成物である。パイプ通信モードには2つのタイプがある。パイプを通って移動するストリームデータは、USB定義の構造を有していない。パイプを通って移動するメッセージデータは、USBアーキテクチャーによって定義されたあるタイプの構造を含んでいる。
図3は、本発明の例示的実施形態の単純化されたブロック図を示している。図3は、より機能的な表現によってUSBシステムを例示しているのに対し、図2は、データフロー的表現としてUSBシステムを例示している。
図3において、USBホスト110は、本発明の実施形態にしたがって、USBバス205を通ってUSBデバイス200に接続されているものとして示されている。もちろん、図1のUSBトポロジー100について、上で説明されたような様々なレベルにおいて接続されている多数のUSBデバイス200があってもよい。USBデバイス200は、アドレスレジスタ230およびエンドポイント0(Ep0)210(本件明細書ではデフォルトコントロールエンドポイント210とも呼ばれる)を含んでいる。USBデバイス200はまた、他のエンドポイント220を含んでいてもよい。
エンドポイント(210と220)は、USBデバイス200の一義的に識別可能な部分である。各USBデバイス200は、独立したエンドポイントの集合を含んでいる。各USBデバイス200は、システムによって割り当てられ、アドレスレジスタ230に含まれる一義的アドレスを含んでいる。さらに、USBデバイス200の内の各エンドポイントには、固有のアドレスが与えられる。さらに、各エンドポイントは、ホスト方向のデータフローまたはエンドポイント方向のデータフローを備えた一方向性のものである。かくして、ホストは、与えられたエンドポイントをデバイスアドレスとエンドポイントアドレスとフロー方向との組み合わせとして認識する。デフォルトコントロールエンドポイント210は、エンドポイントアドレス0が割り当てられており、コントロール転送をサポートする。
USBデバイス200はすべて、入力および出力の双方のためのデフォルトコントロールエンドポイント210を含む必要がある。USBシステムソフトウェアは、USBデバイス200を初期化し、数え上げ、設定するためにデフォルトコントロールエンドポイント210を使用する。例えば、コントローラ280は、初期化、数え上げおよび設定のプロセスを実行する際にUSBホスト110と協力をしてもよい。さらに、コントローラ280は、USBデバイス200が行うように設計されている当該タスクを行なうために、操作モードにおいて他の多くのファンクションを実行することも可能である。
非制限的一例として、USBデバイスは、広域ネットワーク(WAN)デバイスとして構成され、当該技術分野において知られているように、ワイヤレス信号295による通信のためのアンテナを備えたRFモジュール290を含んでいてもよい。
USBデバイス200は、メモリ260を含んでいてもよい。非制限的な例として、メモリは、コントローラによる実行のためのソフトウェアと、数え上げおよび設定に関係する情報と、USBデバイス200の操作モードと関係する情報とを含んでいてもよい。
USBデバイス200は、例えばフラッシュメモリおよびEEPROM(Electrically Erasable Programmable ROM)メモリのような、不揮発性メモリ270をさらに含んでいてもよい。非制限的な例として、不揮発性メモリ270は、コントローラによる実行のためのソフトウェアと、数え上げおよび設定と関係する情報と、USBデバイス200の操作モードに関係する情報とを含んでいてもよい。
本発明の例示的実施形態は、第1のデバイス記述子240および第2のデバイス記述子250を含んでいる。第1のデバイス記述子240は、第1のベンダー識別子242および第1の製品識別子244を含んでいる。第2のデバイス記述子250は、第2のベンダー識別子252および第2の製品識別子254を含んでいる。各デバイス記述子(240と250)について、ベンダー識別子および製品識別子は、いかなるタイプのデバイスがUSBバス205に接続されているか判断するために、USBホスト110が質問をすることができるように、固有の組み合わせを形成する。もちろん、第1および第2のベンダー識別子(252と254)は、第1のデバイス記述子240と第2のデバイス記述子250との間でベンダー識別子/製品識別子の組み合わせが異なっている限り、同じものであって差支えない。
オペレーティングシステムは、デバイスが素早く電力アップすることを必要とする。例えば、ウィンドウのビスタ(登録商標)の場合、すべてのデバイスは、ACPI (Advanced Configuration and Power Interface)のS3状態から2秒以内にシステム再開を行わなければならない。複雑なUSBデバイス200の場合、この要求を満たすことは、難しいかもしれない。
多くのデバイスは、この問題を解決するために、デバイスに高速ハードウェアを付加したり、高速起動のためにソフトウェアイメージを制限もしくは最小化したり、または高速数え上げの達成のためにデバイス上の機能性を制限したりしている。かくして、ほとんどのUSBデバイス200は、ベンダー識別子および製品識別子を備えた単一のデバイス記述子をただ含んでいる。
本発明の実施形態は、2回方式の数え上げプロセスを使用する。2回方式の数え上げが利用されると、デバイスは、素早く電力アップすることができる。というのは、1回目の数え上げは、短い時間(例えば、500ミリ秒以下)で最小限の初期化が行われるように設計されることができるからである。このことは、高速起動というOSの要求を充足し、システム再開の完了を可能にする。1回目の数え上げの後、デバイスは、第1のモードで完全に機能的になり、次に2回目の数え上げプロセスを開始し、第2のモードで完全に機能的になる。
かくして、本発明の実施形態は、2つのデバイス記述子(240と250)を含んでおり、そのことによって、USBデバイス200は、2つの異なるモードにおいて数え上げと設定を行うことができる。これら2つの異なるモードは、ファームウェア・ロード・モードおよび操作モードである。このことについては、図4-7Bを参照して以下においてさらに十分に説明される。結果として、USBホスト110は、2つのモードの各々について、別々のクライアントソフトウェア160モジュールを含んでいてもよい。かくして、USBホスト110は、ファームウェア・ロード・モードをコントロールするためのローダドライバ162と、操作モードをコントロールするための操作ドライバ164を含んでいてもよい。
図3は、デバイス記述子(240と250)を別々のブロックとして例示している。しかしながら、当業者は、デバイス記述子(240と250)が様々な形式で実装可能であることを認識するであろう。非制限的な例として、デバイス記述子(240と250)は、USBデバイス200の内部の設定可能スイッチとして、不揮発性メモリ270に格納される値として、またはコントローラ280内の不揮発性メモリに格納される値として具体化されることができる。
図4は、本発明の実施形態に準拠している初期化および数え上げのプロセスの状態図を示している。初期化および数え上げのプロセスは、図3および図4の両方を参照して説明される。USBデバイス200は、プラグインされると、使用される前にこの初期化および数え上げのプロセスを通過しなければならない。USBデバイス200は、取り付けが行なわれると、「取り付け」状態510からスタートする。USBデバイス200が取り付けられているハブが適切に設定されると、USBデバイス200は、USBデバイス200に電力が適用される「電力投入」状態520に移行する。USBホスト110は、USBデバイス200のリセットを開始し、当該デバイスは、「デフォルト」状態530へ移行する。
デフォルト状態530において、USBデバイス200は、デフォルトアドレス(一般に0)に応答をする。かくして、デフォルトコントロールエンドポイント210は、デフォルトアドレスにおいてアクセス可能であり、そのことによって、デバイス記述子の読解が可能となっており、かつ、USBデバイス200の一般的起動を行なうことができるようになっている。次に、USBホスト110は、USBデバイス200に固有アドレスを割り当てる。固有アドレスが割り当てられると、USBデバイス200は、アドレス状態540に移行する。すべての設定が完了すると、USBデバイス200は、それが本来行うように設計されているところの操作を行なう準備ができているという「設定ずみ」状態560に移行する。
本発明の例示的実施形態は、2つの初期化および数え上げのプロセスを通過する。かくして、USBデバイス200は、USBデバイス200のメモリ260の中にファームウェアをロードするために構成されている比較的単純なUSBデバイス200として、最初に初期化および数え上げが行われる。結果として、USBデバイス200は、最初に「設定ずみ」状態560に入るとき、ファームウェア・ロード・モードになる。ローダが完全に設定されると、USBデバイス200は、2回目の数え上げであることを示す表示子に基づいてデフォルト状態に移行し、ロードされたファームウェアに基づいて操作モードにおいて作動する比較的複雑なUSBデバイス200として再び初期化され数え上げられることになる。先に説明したように、USBデバイス200は、デフォルト状態530、アドレス状態、および再び設定ずみ状態(ただし、今回はファームウェア・ロード・モードではなく操作モードのためであることを別として)に移行する。
操作モードの数え上げを始めるための、ファームウェア・ロード・モードの終わりにおける設定ずみ状態560から2回目の数え上げであることを示す表示子に基づくデフォルト状態530へのこの移行は、多くの方法で実行可能である。非制限的一例として、USBデバイス200がデフォルト状態530に再入するにもかかわらず、それがファームウェア・ロード・モードにおいて以前に設定されたということ覚えておくように、USBデバイス200が部分的にリセットされるという方法でもよい。他の非制限的一例として、ファームウェア・ロード・モードにある間に、USBデバイス200が、USBホスト110を操作モードにおいて再設定せよというリクエストを送るという方法もある。
USBデバイス200は、電力が中断されることがある。設定ずみ状態560、アドレス状態540およびデフォルト状態530のうちのいずれかから電力の中断が生じると、USBデバイス200は、電力投入状態520に再移行し、リセットされてファームウェア・ロード・モードにおいて再設定されることになる。
USBデバイス200は、USBホスト110からリセットを受信することがあるかもしれない。電力投入状態520、設定ずみ状態560およびアドレス状態540のうちのいずれかからリセットが生じると、USBデバイス200は、デフォルト状態530へ再移行し、再設定されることになる。
図5は、本発明の実施形態に準拠している2回方式の数え上げプロセス600の単純化された流れ図である。このプロセスの部分は、WANデバイスの設定を基準として記述されることもできる。しかしながら、当業者は、上記プロセスが他の多くのUSBデバイスを用いて行なわれることも可能であることと、WANデバイスに特有の当該部分を他のUSBデバイスに適合させることも容易に可能であることを認識するであろう。さらに、当業者にとって明白であるように、図5において説明されているプロセスのうちの多くのものは、図4の状態図の中に対応するもの(counterparts)を有している。2回方式の数え上げプロセス600の実行は、USBホスト110とUSBデバイス200の間の共同作業である。結果として、USBデバイス200によって実行される操作もあれば、USBホスト110によって実行されるものもある。このことは当業者にとって明白であろう。
図3および図5は、2回方式の数え上げプロセス600について説明する際に参照される。同プロセス600は、操作ブロック602において始まり、有効化(enabling)信号の状態をテストすることになる。WANデバイスにおいて、ワイヤレス通信を無効にするためにW_DISABLE_Nが使用されてもよく、アプリケーションがデバイスをリセットしてもよく、またはデバイスが接続されているシステムがデバイスへの電力を遮断してもよい。結果として、数え上げプロセスが進行する前に通信のためにデバイスが準備されていることを確かめるためにテストが行なわれる。もしUSBデバイス200が通信のために準備されているとすると、操作ブロック604は、USBデバイス200に電力を供給する。
操作ブロック606において、USBデバイス200は、ブートイメージ(本件明細書においてはファームウェア・ロード・モードのための第1のファームウェアおよびソフトウェアとも呼ばれる)を用いて初期化をする。このブートイメージは、不揮発性メモリ270か、コントローラ280上の不揮発性メモリか、またはUSBデバイス200上の他の不揮発性メモリの一部であってもよい。さらに、ブートイメージの部分は、ホスト上のハードドライブ上に常駐するものであって、設定プロセスの一部としてUSBデバイス200に転送されるものであってもよい。実施形態に依存して、ブートイメージは、不揮発性メモリ270からコントローラ280によって実行されてもよく、または実行のためにメモリ260に移されてもよい。
決定ブロック608は、W_DISABLE_Nが1秒以上の間アクティブであるかどうか確かめるためにテストをする。言いかえれば、当該デバイスが無効化されてしまっているので、数え上げプロセスを終了させる必要がない。USBデバイス200が無効化されると、操作ブロック610は、USBデバイス200の電力を落とし、コントロールは、操作ブロック602に再移行し、USBデバイス200が有効化されるのを待つことになる。操作ブロック608および610は、操作ブロック606の後に生じるものとして示されている。しかしながら、当業者は、無効化は、中断によって駆動されるイベントであってよく、それゆえ、プロセス中のほとんどの場所から生じ得るものであることを認識するであろう。
操作ブロック612は、とりわけ、第1のデバイス記述子240をホストに送ることによって、1回目の数え上げプロセスを継続する。
ファームウェア・ロード・モードにおいてデバイスが成功裡に数え上げられると、操作ブロック614は、ファームウェア(本件明細書においては第2のファームウェアまたは操作ファームウェアとも呼ばれる)をメモリ260に移す操作を実行する。操作ファームウェアは、ホスト上のハードドライブ上に常駐するものであって、かつメモリ260に転送されるものであってもよく、または、USBデバイス200の不揮発性メモリ270上にあって、かつメモリ260に転送されるものであってよい。複雑なデバイスの場合、操作ファームウェアは、大きなものになるかもしれず、前記転送プロセスは、長いものになるかもしれない。しかしながら、USBデバイス200は、ファームウェア・ロード・モードにおいてすでに数え上げられており、こうしていくつかのオペレーティングシステムの高速数え上げ要求をすでに満たしている。
操作ファームウェアがダウンロードされると、決定ブロック616は、操作ファームウェアがダウンロードを成功裏に行なったこと、および認証プロセスを通過したことを確認するためにテストをする。テストの結果そうでないことがわかると、コントロールは、操作ブロック614に戻って、再び操作ファームウェアをダウンロードすることになる。
認証が成功すると、操作ブロック618は、操作ファームウェアおよび第2のデバイス記述子250を使用して、2回目の数え上げプロセスを実行する。この2回目の数え上げプロセスにおいて、1回目の数え上げのためのUSBスタックが取り壊され、操作モードにおいて2回目の数え上げの一部として新しいUSBスタックが構築される。
2回目の数え上げが成功したかどうか確かめるために、判定ブロック620がテストを行なう。テストの結果そうでないことがわかると、コントロールは、操作ブロック606に再移行し、ここで1回目の数え上げが再び開始される。2回目の数え上げが成功すると、操作ブロック622は、USBデバイス200がその操作モードにおいて機能的であることと、かつ2回方式の数え上げプロセス600が完了していることとを表示する。
図6Aは、1回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。同様に、図6Bは、2回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。非制限的一例として、数え上げが完了するとき、ウィンドウ(登録商標)は、コントロールパネル中のデバイスマネージャのディスプレイに新しいデバイスを追加する。デバイスがバスから取り除かれるとき、ウィンドウ(登録商標)は、デバイスマネージャからデバイスを取り除く。
かくして、図6Aは、1回目の数え上げプロセスの後にウィンドウ(登録商標)によって表示される例示的コントロールパネルを示している。ローダ710のポートは、ローダドライバ162(図3)がオペレーティングシステムおよび他のクライアントソフトウェアにとって利用可能であることを例示するものとして示されている。正常なユーザ空間アプリケーションおよび操作ドライバ164(図3)は、ローダ710と異なるデバイスをさがしている。かくして、USBデバイス200がファームウェア・ロード・モードにおいて数え上げられている間に、クライアントソフトウェアとの通信の目的のために、USBデバイス200を認識したのは、ローダドライバ162のみである。
図6Bは、2回目の数え上げプロセスの後にウィンドウ(登録商標)によって表示される例示的コントロールパネルであって、多数のデバイスを備えている複合的数え上げを示している。今度は、診断ポート750およびNMEA(National Marine Electronics Association:全米海洋電子機器協会規格)ポート740は、クライアントソフトウェアとして示されている。
さらに、コントロールパネルは、USBモデム720およびUSBネットワークアダプタ730を示している。さらに、図6Aに示されているローダ710ポートは、今は図6Bのコントロールパネルから去っている。もちろん、当業者は、ポート、アダプタおよびその他のファンクションが、本発明の例示的実施形態を使用するUSBデバイス200のタイプに応じて異なったものであってもよいということを認識するであろう。
当業者であれば、情報と信号は、様々な異なる技術および技法のうちの何らかのものを使用して表わされることができることを理解するであろう。例えば、上記説明全体を通じて参照されることができるデータ、命令、コマンド、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁場または磁粒子、光波動場または光粒子、またはこれらのものの任意の組み合わせによって表わされることができる。
当業者であれば、本件明細書における開示に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子的ハードウェア、コンピュータソフトウェアまたは両者の組み合わせとして実装されることができることをさらに認識するであろう。ハードウェアとソフトウェアの間のこの相互置換可能性を明白に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路およびステップは、上記においてそれらの機能性の観点から一般的に説明されてきた。そのような機能性がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定のアプリケーション、およびシステム全体に課される設計上の制約に依存するところである。当業者は、各々の特定のアプリケーションに応じて、様々な方法で、説明された機能性を実装することができる。しかし、そのような実装の決定が、本件発明の例示的実施形態の範囲からの逸脱を引き起こすものとして解釈されてはならない。
本件明細書における開示に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用目的プロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向けのIC(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、離散的ゲートまたはトランジスタ論理、離散的ハードウェアコンポーネント、またはこれらのものの任意の組み合わせであって、本件明細書記載の機能を実現するように設計されたものによって実装または実行されることができる。汎用目的プロセッサは、マイクロプロセッサであってもよいが、代替的に、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサは、計算装置の組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと結合した1つまたは複数のマイクロプロセッサ、または他の任意の同様の機器構成として、実装されることもできる。
本件明細書に開示されている実施形態に関連して説明された方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはその2つの組み合わせにおいて直接具体化されることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROMまたは本件技術分野において既知の他の任意の形式の記憶媒体の中に常駐することができる。一例としての記憶媒体は、プロセッサが記憶媒体から情報を読み取る、または記憶媒体に情報を書き込むことができるように、プロセッサと結合されている。代替的に、記憶媒体がプロセッサと一体化されていてもよい。その場合、プロセッサおよび記憶媒体がASICの中に常駐し、そのASICがユーザ端末中に常駐することができる。代替的に、プロセッサおよび記憶媒体は、ユーザ端末中の離散的コンポーネントとして常駐することもできる。
1つまたは複数の例示的実施形態において、説明された機能は、ハードウェア、ソフトウェア、ファームウェアまたはこれらのものの任意の組み合わせにおいて実装されることができる。ソフトウェアにおいて実装される場合、当該機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶またはその上で伝送されることができる。コンピュータ可読媒体とは、コンピュータ記憶媒体のみならず、コンピュータプログラムをある場所から他の場所へ転送することを支援する任意の媒体を含む通信媒体も含むものである。記憶媒体は、コンピュータによってアクセス可能な任意の利用可能な媒体であってよい。実例として、かつ非制限的なものとして、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、または、任意の他の媒体であって、命令もしくはデータ構造の形式において所望のプログラムコードを伝達または記憶するために使用可能でかつコンピュータによってアクセス可能な媒体を含むことができる。また、どのような接続もコンピュータ可読媒体と適切に名づけられる。例えば、もしソフトウェアがウェブサイト、サーバ、または他の離れた情報源から、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、ディジタル加入者線(DSL)またはワイヤレス技術(例えば、赤外線、無線およびマイクロ波など)を使用して送信されるのであれば、そうした同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、DSLまたはワイヤレス技術(例えば、赤外線、無線およびマイクロ波など)もまた、媒体の定義に含まれる。本件明細書において使用されているようなディスク(disk and disc)は、コンパクトディスク(CD)、ディジタルバーサタイルディスク(DVD)、フレキシブルディスクおよびブルーレイ(登録商標)ディスクを含んでいる。なお、diskは、通常、データを磁気的に再生するものをいい、discは、レーザを用いてデータを光学的に再生するものをいう。上記のものの組み合わせもまた、コンピュータ可読媒体の範囲に含まれるべきである。
開示されている実施形態に関する上記説明は、いかなる当業者であっても、本件発明を製造または使用することができるように提供されている。これらの例示的実施形態に対する様々な修正は、当業者にとって直ちに明白であろう。また、本件明細書において定義されている一般原理は、発明の要旨または範囲から逸脱することなく、他の実施形態に対して適用可能である。かくして、本件発明は、本件明細書中に示されている実施形態に限定されるよう意図されているものではなく、本件明細書に開示されている原理および新規な特徴と一致する最も広い範囲が与えられるべきものである。

Claims (32)

  1. USBデバイスであって、
    前記USBデバイスの操作のためのファームウェアを保有するためのメモリと、
    前記ファームウェアを実行するためのコントローラと
    ファームウェア・ロード・モードにおいて前記USBデバイスを数え上げるための第1のデバイス記述子と、および;
    操作モードにおいて前記USBデバイスを数え上げるための第2のデバイス記述子と
    を具備するデバイスであって、
    ここにおいて、前記ファームウェアは、
    前記ファームウェア・ロード・モードをコントロールするための第1のファームウェアと、および
    前記操作モードをコントロールするための第2のファームウェアと
    具備する、USBデバイス。
  2. 前記第1のファームウェアは、USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項1のUSBデバイス。
  3. 不揮発性メモリをさらに具備する請求項1のUSBデバイスであって、前記第1のファームウェアは、前記ファームウェア・ロード・モードの間に前記メモリに移動すること、または前記ファームウェア・ロード・モードの間に前記不揮発性メモリから前記コントローラによって実行することからなるグループから選択されるモードのためである、請求項1のUSBデバイス。
  4. 前記第2のファームウェアは、USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項1のUSBデバイス。
  5. 不揮発性メモリをさらに具備する請求項1のUSBデバイスであって、前記第2のファームウェアは、前記ファームウェア・ロード・モードの間に前記メモリに移動すること、または前記操作モードの間に前記不揮発性メモリから前記コントローラによって実行をすることからなるグループから選択されるモードのためである、請求項1のUSBデバイス。
  6. 前記第1のデバイス記述子は、第1のベンダー識別子および第1の製品識別子を具備する、請求項1のUSBデバイス。
  7. 前記第2のデバイス記述子は、第2のベンダー識別子および第2の製品識別子を具備する、請求項6のUSBデバイス。
  8. 前記第1のベンダー識別子および前記第2のベンダー識別子は、同じものである、請求項7のUSBデバイス。
  9. 前記USBデバイスは、アンテナをさらに含み、かつ、前記USBデバイスは、広域ネットワークデバイスとしてワイヤレス操作のためのものである、請求項1のUSBデバイス。
  10. USBデバイスとの操作可能な連結のためのUSBホストであって、以下のことをコンピュータによって実行するためのコンピュータ命令を具備するUSBホスト:
    前記USBデバイスからの第1のデバイス記述子を使用して、前記USBデバイスの1回目の数え上げを実行することと、
    前記USBデバイスから、2回目の数え上げであることを示す表示子を受信することと、および
    前記USBデバイスからの第2のデバイス記述子を使用して、前記USBデバイスの2回目の数え上げを実行すること。
  11. 前記コンピュータによる実行のための前記コンピュータ命令は、前記1回目の数え上げの間に前記USBデバイス上の操作をコントロールするための第1のファームウェアを、前記1回目の数え上げの間に前記USBホストから前記USBデバイス上のメモリに移すための命令をさらに含む、請求項10のUSBホスト。
  12. 前記コンピュータによる実行のための前記コンピュータ命令は、第2のファームウェアを、前記1回目の数え上げの間に前記USBホストから前記USBデバイス上のメモリに移すための命令をさらに含み、前記第2のファームウェアは、前記2回目の数え上げ後の操作モードの間に前記USBデバイス上の操作をコントロールするためのものである、請求項10のUSBホスト。
  13. USBデバイスであって、
    前記USBデバイスの操作のためのファームウェアを保有するためのメモリと、
    前記ファームウェアを実行するためのコントローラと、
    ファームウェア・ロード・モードにおいて前記USBデバイスを数え上げるための第1のデバイス記述子と、および
    操作モードにおいて前記USBデバイスを数え上げるための第2のデバイス記述子と
    を具備するUSBデバイスと、および
    前記USBデバイスに操作可能的に連結されているUSBホストであって、以下のことによって前記USBデバイスをコントロールするためのUSBホストと
    を具備するシステム:
    前記第1のデバイス記述子を使用して、前記USBデバイスの1回目の数え上げをコントロールすることと、および
    前記1回目の数え上げの後に、
    前記USBデバイスから2回目の数え上げであることを示す表示子を受信し、および
    前記第2のデバイス記述子を使用して、前記USBデバイスの2回目の数え上げをコントロールすること。
  14. 第1のファームウェアは、前記USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項13のシステム。
  15. 前記USBデバイスは、不揮発性メモリをさらに具備し、前記不揮発性メモリ内の第1のファームウェアは、前記ファームウェア・ロード・モードの間に前記メモリに移動すること、または前記ファームウェア・ロード・モードの間に前記不揮発性メモリから前記コントローラによって実行をすることからなるグループから選択されるモードのためのものである、請求項13のシステム。
  16. 前記操作モードをコントロールするための第2のファームウェアは、前記USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項13のシステム。
  17. USBトポロジー上のUSBデバイスを検出することと、
    第1のファームウェアおよび第1のデバイス記述子を用いて前記USBデバイスを数え上げることと、
    ファームウェア・ロード・モードにおいて第1のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にすることと、
    前記USBデバイスのメモリに第2のファームウェアをダウンロードすることと、
    第2のデバイス記述子を用いて前記USBデバイスを数え上げることと、および
    前記第2のファームウェアを使用して、操作モードにおいて第2のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にすることと
    を具備する方法。
  18. 広域ネットワークデバイスにおいてワイヤレス通信を用いて前記USBデバイスを操作することをさらに具備する請求項17の方法。
  19. 前記第2のファームウェアをダウンロードすることは、USBホストから前記メモリにダウンロードを行うことと、前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うこととからなるグループから選択される行為を具備する、請求項17の方法。
  20. 前記第1のファームウェアを用いて前記USBデバイスを数え上げることは、前記メモリに前記第1のファームウェアをダウンロードすることをさらに具備する、請求項17の方法。
  21. 前記第1のファームウェアをダウンロードすることは、USBホストから前記メモリにダウンロードを行うことと、前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うこととからなるグループから選択される行為を具備する、請求項20の方法。
  22. 前記第1のデバイス記述子は、第1のベンダー識別子および第1の製品識別子を具備する、請求項17の方法。
  23. 前記第2のデバイス記述子は、第2のベンダー識別子および第2の製品識別子を具備する、請求項22の方法。
  24. 前記第1のベンダー識別子および前記第2のベンダー識別子は、同じものである、請求項23の方法。
  25. USBトポロジー上のUSBデバイスを検出するための手段と、
    第1のファームウェアおよび第1のデバイス記述子を用いて前記USBデバイスを数え上げるための手段と、
    ファームウェア・ロード・モードにおいて第1のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にするための手段と、
    前記USBデバイスのメモリに第2のファームウェアをダウンロードするための手段と、
    第2のデバイス記述子を用いて前記USBデバイスを数え上げるための手段と、および
    前記第2のファームウェアを使用して、操作モードにおいて第2のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にするための手段と
    を具備するシステム。
  26. 広域ネットワークデバイス中のワイヤレス通信を用いて前記USBデバイスを操作するための手段をさらに具備する請求項25のシステム。
  27. 前記第2のファームウェアをダウンロードするための前記手段は、USBホストから前記メモリにダウンロードを行う手段と、および前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うための手段とからなるグループから選択される手段を具備する、請求項25のシステム。
  28. 前記第1のファームウェアを用いて前記USBデバイスを数え上げるための前記手段は、前記第1のファームウェアを前記メモリにダウンロードするための手段をさらに具備する、請求項25のシステム。
  29. 前記第1のファームウェアをダウンロードするための前記手段は、USBホストから前記メモリにダウンロードを行うための手段と、および前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うための手段とからなるグループから選択される手段を具備する、請求項28のシステム。
  30. 前記第1のデバイス記述子は、第1のベンダー識別子および第1の製品識別子を具備する、請求項25のシステム。
  31. 前記第2のデバイス記述子は、第2のベンダー識別子および第2の製品識別子を具備する、請求項30のシステム。
  32. 前記第1のベンダー識別子および前記第2のベンダー識別子は、同じものである、請求項31のシステム。
JP2011546316A 2009-01-13 2010-01-13 Usbデバイスの高速起動のためのシステム、装置および方法 Pending JP2012515400A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/353,214 US8713209B2 (en) 2009-01-13 2009-01-13 System, apparatus, and method for fast startup of USB devices
US12/353,214 2009-01-13
PCT/US2010/020949 WO2010083257A2 (en) 2009-01-13 2010-01-13 System, apparatus, and method for fast startup of usb devices

Publications (1)

Publication Number Publication Date
JP2012515400A true JP2012515400A (ja) 2012-07-05

Family

ID=41682387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011546316A Pending JP2012515400A (ja) 2009-01-13 2010-01-13 Usbデバイスの高速起動のためのシステム、装置および方法

Country Status (7)

Country Link
US (1) US8713209B2 (ja)
EP (1) EP2387749A2 (ja)
JP (1) JP2012515400A (ja)
KR (1) KR20110098974A (ja)
CN (1) CN102272723A (ja)
TW (1) TW201042460A (ja)
WO (1) WO2010083257A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321656B2 (en) * 2009-06-13 2012-11-27 Phoenix Technologies Ltd. Timer use in extensible firmware interface compliant systems
CN101615165A (zh) * 2009-08-06 2009-12-30 北京中星微电子有限公司 一种获得usb设备的序列号的方法及装置
US20120070019A1 (en) * 2010-09-21 2012-03-22 Barry Corlett Methods for addressing equipment in tree networks
WO2012098516A2 (en) * 2011-01-19 2012-07-26 Valens Semiconductor Ltd. Usb network having multiple hosts
US8706955B2 (en) 2011-07-01 2014-04-22 Apple Inc. Booting a memory device from a host
US8996747B2 (en) * 2011-09-29 2015-03-31 Cypress Semiconductor Corporation Methods and physical computer-readable storage media for initiating re-enumeration of USB 3.0 compatible devices
US8843664B2 (en) 2011-09-29 2014-09-23 Cypress Semiconductor Corporation Re-enumeration of USB 3.0 compatible devices
KR20130087747A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 디스플레이장치, 업그레이드장치 및 이를 포함하는 디스플레이시스템 및 그 제어방법
US8909818B2 (en) 2012-09-27 2014-12-09 Qualcomm Incorporated Method for shortening enumeration of tightly coupled USB device
CN104823174B (zh) * 2012-09-30 2019-09-06 赛普拉斯半导体公司 Usb3.0兼容设备的重新列举的方法和系统
US20140208134A1 (en) * 2013-01-21 2014-07-24 Texas Instruments Incorporated Host controller interface for universal serial bus (usb) power delivery
US10165130B2 (en) 2014-02-13 2018-12-25 Emerge Print Management, Llc System and method for the passive monitoring and reporting of printer-related data on USB cables
US9225527B1 (en) 2014-08-29 2015-12-29 Coban Technologies, Inc. Hidden plug-in storage drive for data integrity
US9307317B2 (en) 2014-08-29 2016-04-05 Coban Technologies, Inc. Wireless programmable microphone apparatus and system for integrated surveillance system devices
CN105515811A (zh) * 2014-10-14 2016-04-20 中兴通讯股份有限公司 Usb无线网卡配置方法、主机、usb无线网卡及通信系统
US10165171B2 (en) 2016-01-22 2018-12-25 Coban Technologies, Inc. Systems, apparatuses, and methods for controlling audiovisual apparatuses
US10370102B2 (en) 2016-05-09 2019-08-06 Coban Technologies, Inc. Systems, apparatuses and methods for unmanned aerial vehicle
US10152858B2 (en) 2016-05-09 2018-12-11 Coban Technologies, Inc. Systems, apparatuses and methods for triggering actions based on data capture and characterization
US10789840B2 (en) 2016-05-09 2020-09-29 Coban Technologies, Inc. Systems, apparatuses and methods for detecting driving behavior and triggering actions based on detected driving behavior
WO2018038703A1 (en) * 2016-08-22 2018-03-01 Hewlett-Packard Development Company, L.P. Connected devices information
US10635345B2 (en) 2018-08-31 2020-04-28 Micron Technology, Inc. Live firmware activation in a memory system
TWI745997B (zh) * 2020-06-09 2021-11-11 慧榮科技股份有限公司 生產固態硬碟的方法及裝置以及電腦程式產品
CN113778915B (zh) 2020-06-09 2023-10-10 慧荣科技股份有限公司 生产固态硬盘的方法及计算机可读取存储介质及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265706A (ja) * 2000-03-09 2001-09-28 Internatl Business Mach Corp <Ibm> データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
US20030046447A1 (en) * 2001-07-31 2003-03-06 Konstantin Kouperchliak Device-related software installation
WO2004008313A1 (en) * 2002-07-15 2004-01-22 Axalto Sa Usb device
US20040189809A1 (en) * 2003-03-27 2004-09-30 Choi Juang-Hwan Digital imaging apparatus and method for selecting data transfer mode of the same
US20050120343A1 (en) * 2003-12-01 2005-06-02 Horng-Ming Tai Method and system for firmware downloads
JP2006185012A (ja) * 2004-12-27 2006-07-13 Kyocera Mita Corp インタフェース装置及びインタフェースプログラム
US20070228139A1 (en) * 2006-03-03 2007-10-04 Dejun Wang Usb device that provides wireless data access, digital tv access, radio, and storage capability
US20080005370A1 (en) * 2006-05-23 2008-01-03 International Business Machines Corporation Method and System for Identifying an Operating System Running on a Computer System
US20110016280A1 (en) * 2002-12-12 2011-01-20 Flexiworld Technologies, Inc. Copy protection of software and/or data
US7890664B1 (en) * 2008-03-31 2011-02-15 Emc Corporation Methods and apparatus for non-disruptive upgrade by redirecting I/O operations

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658489B1 (en) * 2000-03-29 2003-12-02 International Business Machines Corporation Method for replacing a device driver during system operation
US6687774B2 (en) * 2000-12-19 2004-02-03 Semtech New York Corporation Wireless host with improved roustness and boot capabilities
US7209971B1 (en) * 2001-12-11 2007-04-24 Microsoft Corporation Architecture and run-time environment for network filter drivers
US20090222907A1 (en) * 2005-06-14 2009-09-03 Patrice Guichard Data and a computer system protecting method and device
US20080189554A1 (en) * 2007-02-05 2008-08-07 Asad Ali Method and system for securing communication between a host computer and a secure portable device
US8626931B2 (en) * 2007-02-05 2014-01-07 Broadcom Corporation Media transport protocol extensions for system information exchange, and applications thereof
JP2009009211A (ja) * 2007-06-26 2009-01-15 Sony Corp 通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265706A (ja) * 2000-03-09 2001-09-28 Internatl Business Mach Corp <Ibm> データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
US20030046447A1 (en) * 2001-07-31 2003-03-06 Konstantin Kouperchliak Device-related software installation
WO2004008313A1 (en) * 2002-07-15 2004-01-22 Axalto Sa Usb device
US20110016280A1 (en) * 2002-12-12 2011-01-20 Flexiworld Technologies, Inc. Copy protection of software and/or data
US20040189809A1 (en) * 2003-03-27 2004-09-30 Choi Juang-Hwan Digital imaging apparatus and method for selecting data transfer mode of the same
US20050120343A1 (en) * 2003-12-01 2005-06-02 Horng-Ming Tai Method and system for firmware downloads
JP2006185012A (ja) * 2004-12-27 2006-07-13 Kyocera Mita Corp インタフェース装置及びインタフェースプログラム
US20070228139A1 (en) * 2006-03-03 2007-10-04 Dejun Wang Usb device that provides wireless data access, digital tv access, radio, and storage capability
US20080005370A1 (en) * 2006-05-23 2008-01-03 International Business Machines Corporation Method and System for Identifying an Operating System Running on a Computer System
US7890664B1 (en) * 2008-03-31 2011-02-15 Emc Corporation Methods and apparatus for non-disruptive upgrade by redirecting I/O operations

Also Published As

Publication number Publication date
WO2010083257A2 (en) 2010-07-22
WO2010083257A3 (en) 2010-09-23
US8713209B2 (en) 2014-04-29
EP2387749A2 (en) 2011-11-23
US20100180051A1 (en) 2010-07-15
TW201042460A (en) 2010-12-01
KR20110098974A (ko) 2011-09-02
CN102272723A (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
JP2012515400A (ja) Usbデバイスの高速起動のためのシステム、装置および方法
US10387346B2 (en) Dynamic PCIE switch reconfiguration mechanism
US9606955B2 (en) Embedded universal serial bus solutions
US7444455B2 (en) Integrated gigabit ethernet PCI-X controller
US7653773B2 (en) Dynamically balancing bus bandwidth
JP5878606B2 (ja) 仮想usb複合デバイスの列挙
US6131131A (en) Computer system including an enhanced communication interface for an ACPI-compliant controller
US7131035B2 (en) Serial bus host controller diagnosis
US20210055777A1 (en) System power management in multi-port i/o hybrid systems
US20070156942A1 (en) Method and apparatus for independently managing a chipset-integrated bus controller
EP3529705A1 (en) Configuring docks
US11061837B2 (en) UBM implementation inside BMC
JPH11175201A (ja) パワーマネージメント起動信号を発生するためのネットワークインタフェース内の装置および方法
WO2017113879A1 (zh) 智能接口卡的控制方法及装置
US10181975B2 (en) Override subsystems for rapid recovery from serial-link errors
JP6387581B2 (ja) データスイッチにて学習するサーバデータポート
TW201411369A (zh) 配置遠端m-phy
KR20230043041A (ko) 전력 상태 전이들을 통한 동적 기능 입/출력(io) 디바이스 인터페이스 선택
JP3599048B2 (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
EP3304328B1 (en) Providing multiple roots in a semiconductor device
EP4323880B1 (en) I2c bus architecture using shared clock and dedicated data lines
WO2024174947A1 (zh) 热插拔方法及装置、计算机设备
JP2009037474A (ja) データ転送制御装置及び電子機器
Buchanan et al. USB and Firewire

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130709