IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブランコ テクノロジー グループ アイピー オイの特許一覧

特許7662652USBコントローラ・エンドポイント・リソース管理
<>
  • 特許-USBコントローラ・エンドポイント・リソース管理 図1
  • 特許-USBコントローラ・エンドポイント・リソース管理 図2
  • 特許-USBコントローラ・エンドポイント・リソース管理 図3
  • 特許-USBコントローラ・エンドポイント・リソース管理 図4
  • 特許-USBコントローラ・エンドポイント・リソース管理 図5
  • 特許-USBコントローラ・エンドポイント・リソース管理 図6A
  • 特許-USBコントローラ・エンドポイント・リソース管理 図6B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-07
(45)【発行日】2025-04-15
(54)【発明の名称】USBコントローラ・エンドポイント・リソース管理
(51)【国際特許分類】
   G06F 13/14 20060101AFI20250408BHJP
   G06F 13/38 20060101ALI20250408BHJP
【FI】
G06F13/14 330C
G06F13/38 350
【請求項の数】 22
(21)【出願番号】P 2022547940
(86)(22)【出願日】2021-01-28
(65)【公表番号】
(43)【公表日】2023-03-29
(86)【国際出願番号】 EP2021051926
(87)【国際公開番号】W WO2021156127
(87)【国際公開日】2021-08-12
【審査請求日】2023-12-20
(31)【優先権主張番号】2001700.0
(32)【優先日】2020-02-07
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】519100952
【氏名又は名称】ブランコ テクノロジー グループ アイピー オイ
【氏名又は名称原語表記】BLANCCO TECHNOLOGY GROUP IP OY
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】110002907
【氏名又は名称】弁理士法人イトーシン国際特許事務所
(72)【発明者】
【氏名】トルマ,マルクス
(72)【発明者】
【氏名】マンニネン,ヤルノ
(72)【発明者】
【氏名】ハイキオ,ニコ
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2004-349836(JP,A)
【文献】特開2006-252335(JP,A)
【文献】特開2013-149180(JP,A)
【文献】米国特許出願公開第2019/0089624(US,A1)
【文献】特開2012-048275(JP,A)
【文献】米国特許出願公開第2019/0095126(US,A1)
【文献】特開2011-065514(JP,A)
【文献】特開2012-155687(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/14
G06F 13/38
(57)【特許請求の範囲】
【請求項1】
USBデバイスに関して動作を実行するための方法であって、
前記USBデバイスに関して動作を実行するために必要とされる前記USBデバイスの必要USBエンドポイント構成に従って、USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、前記USBコントローラにUSBインターフェースを構成することと、
前記USBデバイスに関して前記動作を実行することと、
前記USBコントローラと前記USBデバイスの前記1つまたは複数の対応するUSBエンドポイントとの間の前記1つまたは複数のパイプを閉じるように、前記USBコントローラに前記構成されたUSBインターフェースを構成解除することと、を含み、
前記USBコントローラは、処理リソースとメモリとを含む計算リソースとの通信のために構成され、前記メモリは、オペレーティング・システム(OS)と、前記OS上で動作するように構成されたコンピュータ・プログラムとを記憶し、
前記処理リソースによって実行されたとき、前記コンピュータ・プログラムは、前記処理リソースに、前記OSにより定義されたデフォルトUSBエンドポイント構成機能を変更またはオーバーライドさせ、前記USBデバイスに関して前記動作を実行するために必要とされる前記USBデバイスの前記必要USBエンドポイント構成に従って、前記USBコントローラと前記USBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の前記1つまたは複数のパイプを開くように、前記USBコントローラに前記USBインターフェースを構成させる
ことを特徴とする方法。
【請求項2】
前記USBデバイスと前記USBコントローラとの間の通信に応答して、前記USBコントローラへの前記USBデバイスの取付けまたは接続を検出したことに応答して、前記USBコントローラと前記USBデバイスとの間の1つまたは複数のパイプを開くように、前記USBコントローラに前記USBインターフェースを構成することを含む、請求項1に記載の方法。
【請求項3】
前記USBデバイスに関する情報を受信すること、および/または前記USBデバイスに関して実行される前記動作に関する情報を受信することを含む、請求項1または2に記載の方法。
【請求項4】
前記USBデバイスに関する前記受信された情報および/または前記USBデバイスに関して実行される前記動作に関する前記受信された情報に少なくとも部分的に基づいて、前記USBデバイスの前記必要USBエンドポイント構成を決定することを含む、請求項3に記載の方法。
【請求項5】
前記USBデバイスの前記必要USBエンドポイント構成は、前記USBデバイスに関して前記動作を実行するために必要とされる前記USBデバイスの最小数のUSBエンドポイントを含む、請求項4に記載の方法。
【請求項6】
前記USBデバイスに関する前記受信された情報および/または前記USBデバイスに関して実行される前記動作に関する前記受信された情報に少なくとも部分的に基づいて、前記USBデバイスに関して前記動作を実行するために必要とされる前記USBデバイスの前記最小数のUSBエンドポイントを決定することを含む、請求項5に記載の方法。
【請求項7】
前記USBコントローラは、前記計算リソースに接続されている、請求項に記載の方法。
【請求項8】
前記コンピュータ・プログラムは、専用ソフトウェアまたはアプリケーションを含む、請求項に記載の方法。
【請求項9】
前記処理リソースによって実行されたとき、前記コンピュータ・プログラムは、前記処理リソースに、前記OSにより定義されたデフォルトUSBエンドポイント構成解除機能を変更またはオーバーライドさせ、前記USBコントローラと前記USBデバイスの前記1つまたは複数の対応するUSBエンドポイントとの間の前記1つまたは複数のパイプを閉じるように、前記USBコントローラに前記構成されたUSBインターフェースを構成解除させる、請求項に記載の方法。
【請求項10】
前記計算リソースの前記OSは、Linux(登録商標) OSを含む、請求項に記載の方法。
【請求項11】
前記計算リソースの前記Linux(登録商標) OSのカーネルの少なくとも一部分によって定義された、前記デフォルトUSBエンドポイント構成機能を変更またはオーバーライドすることを含む、請求項10に記載の方法。
【請求項12】
前記OSの前記デフォルトUSBエンドポイント構成機能を変更またはオーバーライドするために、前記OSの適切なパラメータを選択することを含む、請求項に記載の方法。
【請求項13】
USBデバイスに関して動作を実行するための方法であって、
前記USBデバイスに関して動作を実行するために必要とされる前記USBデバイスの必要USBエンドポイント構成に従って、USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、前記USBコントローラにUSBインターフェースを構成することと、
前記USBデバイスに関して前記動作を実行することと、
前記USBコントローラと前記USBデバイスの前記1つまたは複数の対応するUSBエンドポイントとの間の前記1つまたは複数のパイプを閉じるように、前記USBコントローラに前記構成されたUSBインターフェースを構成解除することと、を含み、
前記USBコントローラは、処理リソースとメモリとを含む計算リソースとの通信のために構成され、前記メモリは、オペレーティング・システム(OS)と、前記OS上で動作するように構成されたコンピュータ・プログラムとを記憶し、前記処理リソースによって実行されたとき、前記コンピュータ・プログラムは、前記処理リソースに前記方法を実行させるものであり、
前記USBデバイスから、USBデバイス・ディスクリプタを読み取ることと、
前記USBデバイス・ディスクリプタを使用して、前記計算リソースの前記メモリに記憶された複数の既知のUSBデバイスに関する蓄積された情報から、または前記計算リソースから遠隔に位置するデータベースなどのデータベースから、前記USBデバイスに関する前記情報および/または前記USBデバイスに関して実行される前記動作に関する前記情報を選択することと、をさらに含む
ことを特徴とする方法。
【請求項14】
前記処理リソースによって実行されたとき、前記コンピュータ・プログラムは、前記処理リソースに、前記計算リソースのユーザ・インターフェースを介して、前記USBデバイスに関する情報および/または前記USBデバイスに関して実行される前記動作に関する情報をユーザに要求させる、請求項1または13に記載の方法。
【請求項15】
前記動作は消去動作を含む、請求項1から14のいずれか一項に記載の方法。
【請求項16】
前記消去動作を実行することは、前記USBデバイスのメモリに記憶されたデータを上書きすること、および/または前記USBデバイスに、前記USBデバイスによって定義された消去動作を実行させることを含む、請求項15に記載の方法。
【請求項17】
前記動作は診断動作を含む、請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記診断動作を実行することは、前記USBデバイスに対して前記診断動作を実行すること、および/または前記USBデバイスに、前記USBデバイスによって定義された診断動作を実行させることを含む、請求項17に記載の方法。
【請求項19】
複数のUSBデバイスの対応する複数の必要USBエンドポイント構成に従って、USBコントローラと前記複数のUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、前記USBコントローラに1つまたは複数のUSBインターフェースを構成することを含み、ここで、任意の所定のUSBデバイスの前記必要USBエンドポイント構成は、前記所定のUSBデバイスに関して対応する動作を実行するために必要な前記USBエンドポイント構成であり、さらに、
前記複数のUSBデバイスの各々1つに関して前記対応する動作を実行することと、
前記USBコントローラと前記複数のUSBデバイスの前記1つまたは複数の対応するUSBエンドポイントとの間の前記1つまたは複数のパイプを閉じるように、前記USBコントローラの前記1つまたは複数の構成されたUSBインターフェースを構成解除することと
を含む、請求項1から18のいずれか一項に記載の方法。
【請求項20】
各USBデバイスは、モバイル・フォン、セル・フォン、スマート・フォン、タブレット、およびラップトップのうちの少なくとも1つを含むモバイルUSBデバイスを備える、請求項1から19のいずれか一項に記載の方法。
【請求項21】
USBデバイスに関して動作を実行するための装置であって、
USBコントローラと、
前記USBコントローラとの通信のために構成された計算リソースと
を備え、
前記計算リソースは、処理リソースとメモリとを備え、前記メモリはオペレーティング・システムとコンピュータ・プログラムとを記憶し、
前記OSは、デフォルトUSBエンドポイント構成機能を定義し、前記処理リソースによって実行されたとき、前記コンピュータ・プログラムは、前記処理リソースに、前記OSの前記デフォルトUSBエンドポイント構成機能を変更またはオーバーライドさせ、それにより、上記で説明した方法のいずれかを前記処理リソースに実行させる、装置。
【請求項22】
各USBデバイスは、モバイル・フォン、セル・フォン、スマート・フォン、タブレット、およびラップトップのうちの少なくとも1つを含むモバイルUSBデバイスを備える、請求項21に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、USBコントローラを介してUSBデバイスに関して動作を実行するための方法および装置に関し、詳細には、それだけに限らないが、USBコントローラを介してUSBデバイスに関して診断動作および/または消去動作を実行するための方法および装置に関する。
【背景技術】
【0002】
最新世代のUSB3.0コントローラは、USB3.0コントローラ内のリソースの数が限定されていることに起因する制限を有することが知られている。たとえば、Intel(登録商標) eXtensible Host Controller Interface for Universal Serial Bus(xHCI)仕様(Rev.1.2、2019年5月)によれば、「xHCは、すべてのxHCリソースが利用可能であることを示すために初期化されるグローバルResources Available変数を維持する。Resourceは、内部xHCデータ構造、バッファ・スペース、またはエンドポイント・タイプをサポートするために必要とされる他の実装固有リソースを指す、xHC実装定義メトリックである。」USBエンドポイントは、単一のUSBコントローラがいくつのUSBデバイス(またはUSBインターフェース)を同時に管理することが可能であるかに関する制限ファクタであり得る、そのような1つのリソースである。
【0003】
たとえば、USBデバイスがUSBコントローラを介してパーソナル・コンピュータ(PC)などのホストマシンまたは計算リソースに接続されたとき、従来的には、ホストマシンのオペレーティング・システム(OS)は、各パイプがUSBコントローラとUSBデバイスの異なるエンドポイントとの間の対応するデータ・チャネルを定義する、いくつかのパイプを開くように、USBコントローラのUSBインターフェースを自動的に構成する。ここで、「USBインターフェース」は、ユニバーサル・シリアル・バス仕様(Rev.2.0、2000年4月27日)による、USB機能インターフェースのUSBコントローラ動作に対応する。たとえば、ホストマシンにUSBフラッシュ・ドライブを接続すると、ホストマシンのOSは、3~4つのパイプのグループを開くように、USBコントローラのUSBインターフェースを構成することになり得るが、ホストマシンにヘッドセットおよび他のセンサを接続すると、ホストマシンのOSは、10個のパイプのグループを開くように、USBコントローラのUSBインターフェースを構成することになり得る。
【0004】
USBデバイスがUSBコントローラを介してホストマシンに接続されたとき、USBデバイスの異なる機能および/またはインターフェースは、デフォルトによりUSBコントローラとUSBデバイスとの間の1つまたは複数のパイプの異なるグループを開くようにUSBコントローラに異なるUSBインターフェースを構成し、それにより、USBデバイスとの通信のためにデフォルトによりUSBコントローラの対応する数のエンドポイント・リソースを予約することをホストマシンのOSに要求し得る。たとえば、USBマウスおよびUSBキーボード、ならびにUSBデバイスの1つまたは複数の大容量記憶機能は、それぞれ、デフォルトによりUSBコントローラとUSBデバイスとの間の1つまたは複数のパイプを開くようにUSBコントローラに異なるUSBインターフェースを構成し、それにより、USBデバイスとの通信のためにデフォルトによりUSBコントローラの対応する数のエンドポイント・リソースを予約することをホストマシンのOSに要求し得る。たとえば、ADB(Android(登録商標) Debug Bridge)は、デフォルトにより2つのパイプを開くようにUSBコントローラにUSBインターフェースを構成することをホストマシンのOSに要求する。シリアル通信は、デフォルトにより1つ、2つ、または3つのパイプを開くようにUSBコントローラにUSBインターフェースを構成することをホストマシンのOSに要求し、MTP/PTPプロトコルは、デフォルトにより3つのパイプ(1つのパイプはUSBデバイスへ、1つのパイプはUSBデバイスから、および1つのパイプはUSBコントローラからUSBデバイスの例外エンドポイントへ)を開くようにUSBコントローラにUSBインターフェースを構成することをホストマシンのOSに要求する。
【0005】
また、USBハブにルーティングされた単一のUSBコントローラを介してモバイルUSBデバイスをホストマシンに接続し、診断動作および/または消去動作を実行するためにホストマシンのOS上で動作するアプリケーションの形態の専用ソフトウェアを実行することによって、いくつかのモバイルUSBデバイスなど、いくつかのUSBデバイスに関して診断動作および/または消去動作を同時に実行することが知られている。アプリケーションは、モバイルUSBデバイスに関連するインターフェースに応じて、USBコントローラにおいて異なるUSBインターフェースを構成すること(したがって、いくつかのパイプを開くこと、USBコントローラの対応する数のエンドポイント・リソースが予約すること)を要求し得る。たとえば、アプリケーションは、MTP/PTPインターフェース、ADB(Android(登録商標) Debug Bridge)、1つまたは複数のApple固有インターフェース、およびシリアル・インターフェースのうちの1つまたは複数が構成されることを要求し得る。たとえば、単一のAndroid(登録商標)デバイスは、最大16個のパイプが開かれ、USBコントローラの対応する数のエンドポイント・リソースが予約されることを要求し得る。
【0006】
現在、USBコントローラにおいて構成されるUSBインターフェースは、モバイルUSBデバイスとホストマシンとがUSBコントローラを介して接続されたときに決定される。モバイルUSBデバイスがホストマシンに接続され、エニュメレートされたとき、ホストマシンのOSは、USBコントローラと、デフォルトによりモバイルUSBデバイスのすべての可能なインターフェースのために必要とされるモバイルUSBデバイスの対応するUSBエンドポイントとの間のすべてのパイプを開くように、USBコントローラにUSBインターフェースを構成し、それにより、モバイルUSBデバイスがホストマシンから切断されるまで、USBコントローラの対応する数のエンドポイント・リソースを自動的に予約する。ホストマシンへのモバイルUSBデバイスの接続時に、実行される動作は知られておらず、したがって、ホストマシンのOSは、過大な数のUSBインターフェースを構成し、それにより、モバイルUSBデバイスがホストマシンから切断されるまで、USBコントローラの過大な数の限定されたエンドポイント・リソースを自動的に予約し得る。
【0007】
USBコントローラのすべてのエンドポイント・リソースが予約されると、ホストマシンは、同じUSBコントローラを介して別のモバイルUSBデバイスと通信することを妨げられ、それにより、同じUSBコントローラを介して接続された別の任意のモバイルUSBデバイスに関して任意の動作が実行されることが妨げられる。したがって、周知のUSBコントローラのハードウェアの制限および周知のホストマシンオペレーティング・システムの無駄が多いエンドポイントUSBコントローラ・リソース割り当て方法により、ホストマシンが周知のUSBコントローラを介して同時に処理することができるモバイルUSBデバイスの数が制限される。この問題に対する周知の解決策は、ホストマシンにおいて、各々が1つまたは複数の追加のUSBコントローラを備える追加のUSB拡張カードまたはモジュールを使用することである。たとえば、少なくとも1つの追加のUSBコントローラをそれぞれ備えるUSB拡張カードを、ホストマシンのPCI Expressバスに追加することが知られている。
【0008】
さらに、モバイルUSBデバイスとホストマシンとの間の接続がUSBコントローラを介して確立されたときに、所望の動作を実行するために必要とされるモバイルUSBデバイスのインターフェースが有効になっていない場合、その接続は切断され、有効になったモバイルUSBデバイスの必要なインターフェースを用いて再確立されなければならない。一例として、Android(登録商標)モバイルUSBデバイスがUSBコントローラを介してホストマシンに接続されたとき、ADBは、デフォルトにより最初に無効にされ(モバイルUSBデバイス・ディスクリプタには示されていない)、他の手段によって、たとえば、シリアル接続を介して(たとえば、モバイルUSBデバイス・モデルおよびIMEIコードを受信することによって)モバイルUSBデバイスを識別することのみが可能である。現在、ADBは、シリアル接続をも有効にしたまま、診断テストが実行される前にユーザによって有効にされる必要がある。このことはまた、モバイルUSBデバイスがホストマシンから切断されるまで、予約されるUSBコントローラのエンドポイント・リソースが制限されることになり得る。
【0009】
より具体的には、図1を参照すると、複数のモバイルUSBデバイス4a,4bおよび4cに関して診断動作および/または消去動作を実行するためのPC2など、計算リソースの形態の周知のホストマシンが示されている。各モバイルUSBデバイス4a,4b,4cは、たとえば、モバイル・フォン、セル・フォン、スマート・フォン、タブレット、ラップトップなど、モバイル・デバイスを備え得る。PC2は、プロセッサ6と、メモリ8と、USBコントローラ10とを含む。破線によって示されているように、プロセッサ6はメモリ8およびUSBコントローラ10との通信のために構成される。メモリ8は、PC2のOS12と、PC2のOS12上で動作するように構成された診断および/または消去アプリケーション14の形態の専用ソフトウェアとを記憶する。
【0010】
次に図2を参照すると、モバイルUSBデバイス4a,4b,4cのうちの1つに関して診断動作および/または消去動作を実行する際に使用するための従来技術の方法100が示されている。方法100は、USBコントローラ10を介したPC2などのホスト計算リソースへのモバイルUSBデバイス4a,4bおよび4cのうちの1つの接続に応答して開始する。ステップ102において、PC2のOS12は、USBコントローラ10に、USBコントローラ10とモバイルUSBデバイス4a,4b,4cとの間の制御パイプを確立させる。ステップ104において、PC2のOS12は診断および/または消去アプリケーション14へのホット・プラグ・イベントを生成する。ステップ106において、PC2のOS12は、次いで、「デフォルトにより許可される」の設定が「真」に設定されているか否かをチェックする。「デフォルトにより許可される」の設定が「真」に設定されている場合、PC2のOS12は、ステップ108において、モバイルUSBデバイス4a,4b,4cのためのデフォルト・エンドポイント構成に従って、USBコントローラ10とモバイルUSBデバイス4a,4b,4cの対応するエンドポイントとの間のすべてのパイプを開くように、USBコントローラ10にUSBインターフェースを構成する。「デフォルトにより許可される」の設定が「真」に設定されていない場合、PC2のOS12は、ステップ108に進む前に、何らかの他の認可機構によって診断および/または消去アプリケーション14によって許可が与えられるまで、ステップ110において待つ。ステップ112において、診断および/または消去アプリケーション14は、次いで、USBコントローラ10の構成されたインターフェースを介してモバイルUSBデバイス4a,4b,4cに関して所望の診断動作および/または消去動作を実行する。
【0011】
さらに、PC2のOS12は、「許可されたUSBインターフェース」の設定が「真」に設定されているか否かをチェックし、「許可されたUSBインターフェース」設定が「真」に設定されている場合、PC2のOS12は、ステップ120においてカーネル許可ステータスを更新し、それにより、ステップ122において、診断および/または消去アプリケーション14は、診断および/または消去アプリケーション14がUSBコントローラ10の構成されたUSBインターフェースを介してモバイルUSBデバイス4a,4b,4cに関して所望の診断動作および/または消去動作を実行することができるように、USBコントローラ10の1つまたは複数のドライバを登録し、使用することが可能になる。PC2のOS12は、次いで、カーネル許可ステータスを更新することによって「許可されたUSBインターフェース」設定を更新し、それにより、ステップ124において、診断および/または消去アプリケーション14は、USBコントローラ10のための1つまたは複数のドライバを登録解除することが可能になる。「許可されたUSBインターフェース」設定が「真」に設定されていない場合、ステップ122において、診断および/または消去アプリケーション14は、USBコントローラ10の構成されたUSBインターフェースを介してモバイルUSBデバイス4a,4b,4cに関して所望の診断動作および/または消去動作を実行することを許可されない。
【発明の概要】
【課題を解決するための手段】
【0012】
本開示の一態様によれば、USBデバイスに関して動作を実行するための方法が提供され、本方法は、
USBデバイスに関して動作を実行するために必要とされるUSBデバイスの必要USBエンドポイント構成に従って、USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、USBコントローラにUSBインターフェースを構成することと、
USBデバイスに関して動作を実行することと、
USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを閉じるように、USBコントローラに構成されたUSBインターフェースを構成解除することと
を含む。
【0013】
USBデバイスに関して特定の動作を実行するために必要とされるUSBデバイスの必要USBエンドポイント構成に従って、USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、USBコントローラにUSBインターフェースを構成することにより、USBコントローラと、USBデバイスのすべての可能なインターフェースのために必要となるUSBデバイスの対応するUSBエンドポイントとの間に十分な数のパイプを開くように、USBコントローラにUSBインターフェースを自動的に構成する、従来技術の方法と比較して、USBデバイスに関して動作を実行するために予約されるUSBコントローラのUSBエンドポイント・リソースの数が低減できる。したがって、このような方法は、従来技術の方法よりも多い数のUSBデバイスに関して動作を同時に実行可能とし、ならびに/またはUSBコントローラの従来技術の方法よりも少ないUSBエンドポイント・リソースおよび/もしくは従来技術の方法よりも少ないUSBコントローラを使用して、同じ数のUSBデバイスに関して動作が同時に実行されることを可能とする。
【0014】
動作が実行された後に、USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを閉じるように、USBコントローラのUSBインターフェースを構成解除することにより、USBデバイスに関して動作を実行するためにUSBコントローラのUSBエンドポイント・リソースが予約される時間を最小とし、それにより、従来技術の方法よりも多い数のUSBデバイスに関して動作を同時に実行することが潜在的に可能になり、ならびに/またはUSBコントローラの従来技術の方法よりも少ないUSBエンドポイント・リソースおよび/もしくは従来技術の方法よりも少ないUSBコントローラを使用して、同じ数のUSBデバイスに関して動作を同時に実行することが潜在的に可能になる。
【0015】
本方法は、USBデバイスとUSBコントローラとの間の通信に応答して、USBコントローラとUSBデバイスとの間の1つまたは複数のパイプを開くように、USBコントローラにUSBインターフェースを構成することを含み得る。
【0016】
本方法は、USBコントローラへのUSBデバイスの取付けまたは接続を検出したことに応答して、USBコントローラとUSBデバイスとの間の1つまたは複数のパイプを開くように、USBコントローラにUSBインターフェースを構成することを含み得る。
【0017】
本方法は、USBデバイスに関する情報を受信すること、および/またはUSBデバイスに関して実行される動作に関する情報を受信することを含み得る。
【0018】
本方法は、USBデバイスに関する受信された情報および/またはUSBデバイスに関して実行される動作に関する受信された情報に少なくとも部分的に基づいて、USBデバイスの必要エンドポイント構成を決定することを含み得る。
【0019】
USBデバイスの必要エンドポイント構成は、USBデバイスに関して動作を実行するために必要とされるUSBデバイスの最小数のUSBエンドポイントを含み得る。
【0020】
本方法は、USBデバイスに関する受信された情報および/またはUSBデバイスに関して実行される動作に関する受信された情報に少なくとも部分的に基づいて、USBデバイスに関して動作を実行するために必要とされるUSBデバイスの最小数のUSBエンドポイントを決定することを含み得る。
【0021】
USBコントローラは、パーソナル・コンピュータなどの計算リソースとの通信のために構成され得る。USBコントローラは計算リソースに接続され得る。計算リソースはUSBコントローラのためのホストマシンとして機能し得る。
【0022】
計算リソースは処理リソースとメモリとを含み得る。
【0023】
メモリは、ランダムアクセス・メモリ(RAM)など、揮発性メモリを含み得る。メモリは、ハード・ディスク・ドライブ(HDD)またはソリッドステート・ドライブ(SSD)など、不揮発性メモリを含み得る。メモリは、1つまたは複数のUSBフラッシュ・ドライブなど、1つまたは複数のリムーバブル媒体を含み得る。
【0024】
メモリは計算リソースのオペレーティング・システム(OS)を記憶し得る。
【0025】
メモリはコンピュータ・プログラムを記憶し得る。
【0026】
コンピュータ・プログラムは専用ソフトウェアまたはアプリケーションを含み得る。
【0027】
コンピュータ・プログラムは、OS上で動作するように構成され得る。
【0028】
処理リソースによって実行されたとき、コンピュータ・プログラムは処理リソースに上記の方法のいずれかを実行させ得る。
【0029】
処理リソースによって実行されたとき、コンピュータ・プログラムは、処理リソースに、OSのデフォルトUSBエンドポイント構成機能を変更またはオーバーライドさせ、USBデバイスに関して動作を実行するために必要とされるUSBデバイスの必要USBエンドポイント構成に従って、USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、USBコントローラにおいてUSBインターフェースを構成させ得る。
【0030】
処理リソースによって実行されたとき、コンピュータ・プログラムは、処理リソースに、OSのデフォルトUSBエンドポイント構成解除機能を変更またはオーバーライドさせ、USBコントローラとUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを閉じるように、USBコントローラに構成されたUSBインターフェースを構成解除させ得る。
【0031】
計算リソースのOSはLinux(登録商標) OSを含み得る。
【0032】
本方法は、計算リソースのLinux(登録商標) OSのカーネルの少なくとも一部分によって定義された、デフォルトUSBエンドポイント構成機能および/またはデフォルトUSBエンドポイント構成解除機能を変更またはオーバーライドすることを含み得る。
【0033】
本方法は、OSのデフォルトUSBエンドポイント構成機能および/またはデフォルトUSBエンドポイント構成解除機能を変更またはオーバーライドするために、OSの適切なパラメータを選択することを含み得る。
【0034】
本方法は、
USBデバイスから、USBデバイス・ディスクリプタを読み取ることと、
USBデバイス・ディスクリプタを使用して、計算リソースのメモリに記憶された複数の既知のUSBデバイスに関する蓄積された情報から、またはデータベースから、USBデバイスに関する情報および/またはUSBデバイスに関して実行される動作に関する情報を選択することと、
を含み得る。
【0035】
データベースは計算リソースから遠隔に位置し得る。
【0036】
計算リソースはユーザ・インターフェースを備え得る。
【0037】
処理リソースによって実行されたとき、コンピュータ・プログラムは、処理リソースに、ユーザ・インターフェースを介して、USBデバイスに関する情報および/またはUSBデバイスに関して実行される動作に関する情報をユーザに要求させ得る。
【0038】
処理リソースによって実行されたとき、コンピュータ・プログラムは、処理リソースに、USBデバイスに関する情報および/またはUSBデバイスに関して実行される動作に関する情報の入力の要求を表示するように、ユーザ・インターフェースを制御させ得る。
【0039】
処理リソースによって実行されたとき、コンピュータ・プログラムは、処理リソースに、USBデバイスに関する情報および/またはUSBデバイスに関して実行される動作に関する情報に応答して、OSのデフォルトUSBエンドポイント構成機能および/またはOSのデフォルトUSBエンドポイント構成解除機能を変更および/またはオーバーライドさせ得る。
【0040】
USBデバイスに関して動作を実行することは、USBデバイスに対して動作を実行すること、またはUSBデバイスに対して、もしくはUSBデバイスによって動作を実行させることを含み得る。
【0041】
動作は消去動作を含み得る。
【0042】
消去動作を実行することは、USBデバイスのメモリに記憶されたデータを上書きすることを含み得る。
【0043】
消去動作を実行することは、USBデバイスに、USBデバイスによって定義された消去動作を実行させることを含み得る。
【0044】
動作は診断動作を含み得る。
【0045】
診断動作を実行することは、USBデバイスに対して診断動作を実行することを含み得る。
【0046】
診断動作を実行することは、USBデバイスに、USBデバイスによって定義された診断動作を実行させることを含み得る。
【0047】
本方法は、
複数のUSBデバイスの対応する複数の必要USBエンドポイント構成に従って、USBコントローラと複数のUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、USBコントローラに1つまたは複数のUSBインターフェースを構成することを含み、ここで任意の所定のUSBデバイスの必要USBエンドポイント構成は、所定のUSBデバイスに関して対応する動作を実行するために必要なUSBエンドポイント構成であり、さらに、
複数のUSBデバイスの各々1つに関して対応する動作を実行することと、
USBコントローラと複数のUSBデバイスの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを閉じるように、USBコントローラの1つまたは複数の構成されたUSBインターフェースを構成解除することと
を含み得る。
【0048】
各USBデバイスは、モバイル・フォン、セル・フォン、スマート・フォン、タブレット、ラップトップなど、モバイルUSBデバイスを含み得る。
【0049】
本開示の一態様によれば、USBデバイスに関して動作を実行するための装置が提供され、本装置は、
USBコントローラと、
USBコントローラとの通信のために構成された計算リソースと
を備え、
計算リソースは、処理リソースとメモリとを備え、メモリは、オペレーティング・システムとコンピュータ・プログラムとを記憶し、
OSは、デフォルトUSBエンドポイント構成機能を定義し、処理リソースによって実行されたとき、コンピュータ・プログラムは、処理リソースに、OSのデフォルトUSBエンドポイント構成機能を変更またはオーバーライドさせ、それにより、上記で説明した方法のいずれかを処理リソースに実行させる。
各USBデバイスは、モバイル・フォン、セル・フォン、スマート・フォン、タブレット、ラップトップなど、モバイルUSBデバイスを含み得る。
【0050】
本開示の上記の態様のいずれか1つの特徴の任意の1つまたは複数が本開示の他の上記の態様のいずれかの特徴の任意の1つまたは複数と組み合わせられ得ることを理解されたい。
【0051】
次に、USBデバイスに関して動作を実行するための1つまたは複数の装置および方法について、非限定的な例としてのみ、添付の図面を参照しながら説明する。
【図面の簡単な説明】
【0052】
図1】複数のUSBデバイスに関して動作を実行するための従来技術の装置に接続された複数のUSBデバイスを概略的に示す図である。
図2図1の従来技術の装置の計算リソースのOSの処理フローにおいて、USBデバイスに関して動作を実行するための従来技術の方法を概略的に示す図である。
図3】複数のUSBデバイスに関して動作を実行するための装置に接続された複数のUSBデバイスを概略的に示す図である。
図4図3に示された装置を使用して、図3に示されたUSBデバイスのうちの1つに関して動作を実行するための方法を概略的に示す図である。
図5図3に示された装置の計算リソースのOSの処理フローにおいて、図4の方法を概略的に示す図である。
図6A図3の方法に関連するUSBインターフェース・クレーム動作を概略的に示す図である。
図6B図3の方法に関連するUSBインターフェース解放動作を概略的に示す図である。
【発明を実施するための形態】
【0053】
図3を参照すると、複数のモバイルUSBデバイス4a,4bおよび4cに関して診断動作および/または消去動作を実行するためのPC202の形態の計算リソースが示されている。PC202は、処理リソース206と、メモリ208と、ユーザ・インターフェース209とを含む。PC202はUSBコントローラ210のためのホストとして機能する。破線によって示されているように、処理リソース206は、メモリ208、ユーザ・インターフェース209、およびUSBコントローラ210との通信のために構成される。メモリ208は、PC202のOS212と、OS212上で動作するように構成された診断および/または消去アプリケーション214の形態の専用ソフトウェアとを記憶する。
【0054】
診断および/または消去アプリケーション214は、モバイルUSBデバイス4a,4b,4cのうちの1つに関して診断動作および/または消去動作を実行する際に使用するための方法300を定義し、次に、図4を参照しながら方法300について説明する。OS212上で動作し、PC202の処理リソース206によって実行されたとき、診断および/または消去アプリケーション214は、処理リソース206に方法300を実行させる。方法300はステップ301において開始し、診断および/または消去アプリケーション214は、OS212のデフォルト・エンドポイント構成機能を一時的に変更するかまたは一時的にオーバーライドする。その後、ステップ302におけるPC202へのモバイルUSBデバイス4a,4bおよび4cのいずれか1つの物理的接続に応答して、診断および/または消去アプリケーション214は、ステップ304においてモバイルUSBデバイス4a,4b,4cからUSBデバイス・ディスクリプタを読み取り、USBデバイス・ディスクリプタを使用して、PC202のメモリ208に記憶された複数の既知のモバイルUSBデバイスに関する蓄積された情報から、モバイルUSBデバイス4a,4b,4cに関する情報を選択する、および/またはPC202のメモリ208に記憶された複数の既知のモバイルUSBデバイスに関する蓄積された情報から、モバイルUSBデバイス4a,4b,4cに関して実行される動作に関する情報を選択する。ステップ306において、診断および/または消去アプリケーション214は、モバイルUSBデバイス4a,4b,4cがサポートされているかどうかをチェックする。すなわち、診断および/または消去アプリケーション214は、モバイルUSBデバイス4a,4b,4cに関する情報および/またはモバイルUSBデバイス4a,4b,4cに関して実行される動作に関する情報がPC202のメモリ208に記憶されているかどうかをチェックする。ステップ306において、モバイルUSBデバイス4a,4b,4cがサポートされていないと決定された場合、本方法はステップ302に戻る。ステップ306において、モバイルUSBデバイス4a,4b,4cがサポートされていると決定された場合、本方法はステップ308において継続し、診断および/または消去アプリケーション214は、モバイルUSBデバイス4a,4b,4cに関して診断動作および/または消去動作を実行するために必要とされる最小USBインターフェース・セットの形態の、USBデバイスに関する動作を実行するために必要となる、必要USBエンドポイント構成を決定する。診断および/または消去アプリケーション214は、次いで、ステップ310において、USBコントローラ210とモバイルUSBデバイス4a,4b,4cの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを開くように、USBコントローラ210に最小USBインターフェース・セットを構成する。USBコントローラ210において最小USBインターフェース・セットが構成されると、診断および/または消去アプリケーション214は、ステップ312において、処理リソース206に、USBコントローラ210を介して、モバイルUSBデバイス4a,4b,4cに関する診断動作および/または消去動作を実行させる。モバイルUSBデバイス4a,4b,4cに関して診断動作および/または消去動作が実行されると、診断および/または消去アプリケーション214は、ステップ314において、処理リソース206に、USBコントローラ210とモバイルUSBデバイス4a,4b,4cの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを閉じるように、USBコントローラ210において最小USBインターフェース・セットを構成解除させる。方法300は継続し、ステップ316において診断および/または消去アプリケーション214を用いてモバイルUSBデバイス4a,4b,4cに関してさらに動作が実行されるかどうかをチェックする。モバイルUSBデバイス4a,4b,4cに関してさらに動作が実行される場合、本方法はステップ308に戻る。モバイルUSBデバイス4a,4b,4cに関してさらに動作が実行されない場合、本方法はステップ302に戻る。
【0055】
最小USBインターフェース・セットの使用により、USBコントローラ210を介してモバイルUSBデバイス4a,4b,4cに関して診断動作および/または消去動作を実行するために予約される必要があるUSBコントローラ210のUSBエンドポイント・リソースが最小になる。したがって、最小USBインターフェース・セットの使用により、従来技術の方法よりも多い数のモバイルUSBデバイスに関して動作が同時に実行されることが可能になり、および/またはUSBコントローラ210の従来技術の方法よりも少ないUSBエンドポイント・リソースおよび/もしくは従来技術の方法よりも少ないUSBコントローラを使用して、同じ数のモバイルUSBデバイスに関して動作が同時に実行されることが可能になる。その上、USBコントローラ210を介してモバイルUSBデバイス4a,4b,4cに関して診断動作および/または消去動作が実行された後に、USBコントローラ210とモバイルUSBデバイス4a,4b,4cの1つまたは複数の対応するUSBエンドポイントとの間の1つまたは複数のパイプを閉じるように、USBコントローラ210の最小USBインターフェース・セットを構成解除することにより、USBコントローラ210からモバイルUSBデバイス4a,4b,4cを物理的に切断することを要せず、最も早い可能な機会においてUSBコントローラ210のUSBエンドポイント・リソースを解放する。したがって、方法300は、従来技術の方法よりも多い数のモバイルUSBデバイスに関して動作が同時に実行されることを可能とし、ならびに/またはUSBコントローラ210の従来技術の方法よりも少ないUSBエンドポイント・リソースおよび/もしくは従来技術の方法よりも少ないUSBコントローラを使用して、同じ数のモバイルUSBデバイスに関して動作が同時に実行されることを可能とする。
【0056】
以下でより詳細に説明するように、方法300では、診断および/または消去アプリケーション214が、モバイルUSBデバイス4a,4b,4cのどの特定のインターフェースを使用するかを決定するまで、エンドポイント構成は延期される。実際の実装機構は、USBデバイス・レベルにおいてアクセス制御を行い、USBインターフェース・レベルにおいてもアクセス制御を行う、PC202のOS212の2レベルUSB認証フレームワークに基づく。方法300はUSBエンドポイント構成および構成解除をインターフェース・レベル許可制御に効果的に結合する。
次に、モバイルUSBデバイス4a,4b,4cのうちの1つに関して診断動作および/または消去動作を実行する際に使用するための方法300について、図5を参照しながら、PC202のOS212の処理フローにおいて説明する。方法300は、USBコントローラ210へのモバイルUSBデバイス4a,4bおよび4cのうちの1つの物理的接続に応答して開始する。ステップ402において、PC202のOS212は、USBコントローラ210に、USBコントローラ210とモバイルUSBデバイス4a,4b,4cとの間の制御パイプを確立させる。ステップ404において、PC202のOS212は診断および/または消去アプリケーション214へのホット・プラグ・イベントを生成する。ステップ406において、PC202のOS212は、次いで、「デフォルトにより許可される」の設定が「真」に設定されているか否かをチェックする。「デフォルトにより許可される」の設定が「真」に設定されている場合、PC202のOS212は、ステップ408において、モバイルUSBデバイス4a,4b,4cのためのデフォルト・エンドポイント構成に従って、USBコントローラ210とモバイルUSBデバイス4a,4b,4cの対応するエンドポイントとの間のすべてのパイプを開くように、USBコントローラ210のUSBインターフェースを構成する。「デフォルトにより許可される」の設定が「真」に設定されていない場合、PC202のOS212は、ステップ412に進む前に、何らかの他の認可機構によって診断および/または消去アプリケーション214によって許可が与えられるまで、ステップ410において待つ。ステップ412において、「デフォルトにより許可されたインターフェース」の設定が「真」に設定されている場合、PC202のOS212はステップ408に進む。
【0057】
モバイルUSBデバイス4a,4b,4cのためのデフォルト・エンドポイント構成に従って、USBコントローラ210とモバイルUSBデバイス4a,4b,4cの対応するエンドポイントとの間のすべてのパイプを開くために、ステップ408に進む場合、診断および/または消去アプリケーション214は、デバイス・デフォルト構成において構成されているときに、USBコントローラ210のUSBインターフェースを介してモバイルUSBデバイス4a,4b,4cに関して所望の診断動作および/または消去動作を実行する。
【0058】
しかしながら、「デフォルトにより許可されていないインターフェース」の設定が「真」に設定されている場合、PC202のOS212はステップ420に進み、USBインターフェース許可を受信すると、PC202のOS212は、図4のステップ308において決定された最小USBインターフェース・セットに従って必要とされるモバイルUSBデバイス4a,4b,4cのUSBエンドポイントを構成する。
さらに、PC202のOS212は、ステップ422において、USBコントローラ210のカーネル許可ステータスを更新し、それにより、診断および/または消去アプリケーション214は、診断および/または消去アプリケーション214がステップ424においてUSBコントローラ210の構成されたUSBインターフェースを介してモバイルUSBデバイス4a,4b,4cに関して所望の診断動作および/または消去動作を実行することができるように、USBコントローラ210の1つまたは複数のドライバを登録し、使用することが可能になる。PC202のOS212は、次いで、診断および/または消去アプリケーション214がステップ426においてUSBコントローラ210のための1つまたは複数のドライバを登録解除することを可能にするために、「許可されたUSBインターフェース」設定を更新する。PC202のOS212は、ステップ428において、USBコントローラ210に、USBコントローラ210の対応するUSBエンドポイント・リソースを解放するように、最小USBインターフェース・セットに従って構成されたモバイルUSBデバイス4a,4b,4cのUSBエンドポイントを構成解除させる。診断および/または消去アプリケーション214がステップ430においてUSBコントローラ210のための1つまたは複数のドライバを登録解除することを可能にするように、PC202のOS212のカーネル許可ステータスは、ステップ430において更新される。
【0059】
図5の上記の説明から、「デフォルトにより許可されていないインターフェース」の設定が「真」に設定されている場合、ステップ420において、モバイルUSBデバイス4a,4b,4cのUSBエンドポイントはモバイルUSBデバイス4a,4b,4cの最小USBインターフェース・セットのために構成され、他の場合、ステップ408において、モバイルUSBデバイス4a,4b,4cのUSBエンドポイントはUSBデバイス・デフォルト構成に従って構成されることを当業者は理解するであろう。さらに、ステップ424において診断および/または消去アプリケーション214が実行された後に、ステップ428において、構成されたUSBエンドポイントが構成解除され、それによりUSBコントローラ210のUSBエンドポイント・リソースが解放されることを当業者は理解するであろう。
【0060】
図6Aは、方法300と組み合わせて使用するためのチェックステップを追加した、PC202のOS212によって実装されるUSBインターフェース・クレーム動作を示し、そのチェックステップでは、USBインターフェースが現在許可されていない場合、USBインターフェースが許可され、クレーム要求に基づいて許可されているものとしてフラグを付けられる。
【0061】
反対に、図6Bは、方法300と組み合わせて使用するためのチェックステップを追加した、組込みソフトウェア216によって実装されるUSBインターフェース解放動作を示し、そのチェックステップでは、クレーム要求に応じてUSBインターフェースが許可された場合、そのUSBインターフェースは自動的に許可解除される。
【0062】
上記で説明した装置および方法は、添付の特許請求の範囲によって定義されている本発明の範囲から逸脱することなく変更され得ることを当業者は理解するであろう。たとえば、PC202のメモリ208に記憶された複数の既知のモバイルUSBデバイスに関する蓄積された情報から、モバイルUSBデバイス4a,4b,4cに関する情報および/またはモバイルUSBデバイス4a,4b,4cに関して実行される動作に関する情報を選択するのではなく、本方法は、PC202から遠隔に位置するデータベースなど、データベースに記憶された複数の既知のモバイルUSBデバイスに関する蓄積された情報から、モバイルUSBデバイス4a,4b,4cに関する情報および/またはモバイルUSBデバイス4a,4b,4cに関して実行される動作に関する情報を選択することを含み得る。
【0063】
図4を参照して説明した方法300の別の変形形態では、ステップ306とステップ308との間において、診断および/または消去アプリケーション214は、PC202のユーザ・インターフェース209を介して、モバイルUSBデバイス4a,4b,4cに関する情報および/またはUSBデバイス4a,4b,4cに関して実行される動作に関する情報をユーザに要求してもよい。たとえば、診断および/または消去アプリケーション214は、ユーザがUSBデバイス4a,4b,4cに関して実行される診断動作および/または消去動作を選択することを要求してもよい。ユーザが、ユーザ・インターフェース209を介して、モバイルUSBデバイス4a,4b,4cに関する情報および/またはUSBデバイス4a,4b,4cに関して実行される動作に関する情報を入力すると、診断および/または消去アプリケーション214は、次いで、ユーザによって与えられた情報に少なくとも部分的に基づいて、モバイルUSBデバイス4a,4b,4cに関して診断動作および/または消去動作を実行するために必要とされる最小USBインターフェース・セットの形態の、USBデバイス4a,4b,4cに関して動作を実行するために必要とされる、必要USBエンドポイント構成を決定してもよい。
【0064】
実装形態に応じて、PC202のOS212によって定義された、図5図6Aおよび図6Bに示された方法のステップのうちのいくつかは、診断および/または消去アプリケーション214によって定義され得ることをも当業者は理解するであろう。反対に、診断および/または消去アプリケーション214によって定義された、図5図6Aおよび図6Bに示された方法のステップのうちのいくつかは、PC202のOS212によって定義してもよい。
【0065】
図面を参照しながら上記で説明した本開示の実施形態の特徴のうちの1つまたは複数は、本開示の実施形態の他の特徴のうちの1つまたは複数とは別個に使用されたときに、効果を生じるか、または利点を与え得ることと、上記で説明した本開示の実施形態の特徴の特定の組合せ以外に、特徴の異なる組合せが可能であることとを当業者は理解するであろう。
図1
図2
図3
図4
図5
図6A
図6B