(57)【特許請求の範囲】
【請求項１】
ストレージデバイスを検出するための方法であって、前記ストレージデバイスはホストシステムに接続され、前記ストレージデバイスは関連するメタデータを含み、前記関連するメタデータはそのようなストレージデバイスがリムーバブルメディアを有すると誤って示すことがあり、前記方法は、
前記ホストシステムから第１のストレージデバイスへメディアポーリングメッセージを送信することであって、前記メディアポーリングメッセージは前記第１のストレージデバイスが準備ができているかを問い合わせるものであることと、
前記第１のストレージデバイスが準備ができていないと応答する場合、前記第１のストレージデバイスが本当にリムーバブルメディアを有するとしてデータベースを更新することと、
前記ストレージデバイスから非同期通知メッセージを受信することと、
受信したときに、前記第１のストレージデバイスが本当にリムーバブルメディアを有するとして前記データベースを更新することと、
前記第１のストレージデバイスが本当はリムーバブルメディアを有さない場合、前記ホストシステムによる前記第１のストレージデバイスへのさらなるメディアポーリングを無効にすることと
を備える、方法。
【請求項２】
前記関連するメタデータが、（RMB=0）ステータスおよび（RMB=1）ステータスを含むグループのうちの１つを含む、請求項１に記載の方法。
【請求項３】
リムーバブルメディアを誤って示す関連するメタデータを含む既知のストレージデバイスのデータベースで、前記第１のストレージデバイスに対するエントリを検索することであって、前記第１のストレージデバイスが前記ホストシステムに接続されることと、
エントリが前記第１のストレージデバイスに対して前記データベースに存在する場合、前記ホストによる前記第１のストレージデバイスへのポーリングを無効にすることと
をさらに備える、請求項１に記載の方法。
【請求項４】
リムーバブルメディアを誤って示す関連するメタデータを含むストレージデバイスに関するデータを、第２のホストシステムと共有すること
をさらに備える、請求項１に記載の方法。
【請求項５】
前記データを共有することが、
前記データをテレメトリサーバへ報告することと、
デバイス正誤データベースを更新することと、
更新処理により前記デバイス正誤データベースをホストシステムへプッシュすることと
をさらに備える、請求項４に記載の方法。
【請求項６】
ストレージデバイスを検出するためのホストシステムであって、
関連するメタデータを含む１つまたは複数のストレージデバイスを備え、前記関連するメタデータは前記ストレージデバイスがリムーバブルメディアを有すると誤って示すことがあり、
前記ホストシステムは、第１のストレージデバイスへメディアポーリングメッセージを送信することが可能であり、前記メディアポーリングメッセージは前記第１のストレージデバイスが準備ができているかを問い合わせるものであり、
前記ホストシステムは、前記第１のストレージデバイスが準備ができていないと応答する場合、前記第１のストレージデバイスが本当にリムーバブルメディアを有するとしてデータベースを更新することがさらに可能であり、
前記ストレージデバイスから非同期通知メッセージを受信したときに、前記第１のストレージデバイスが本当にリムーバブルメディアを有するとして前記データベースが更新され、
前記第１のストレージデバイスが本当はリムーバブルメディアを有さない場合、前記ホストシステムによる前記第１のストレージデバイスへのさらなるメディアポーリングが無効にされる、
ホストシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
消費電力が最小限であることは、新しい計算プラットフォームにおいて注目されるますます重要となる特徴である。オリジナルのユニバーサルシリアルバス（USB）マスストレージの、たとえばバルクオンリー転送（BOT）およびＵＳＢ接続ＳＣＳＩプロトコル（UASP）などの、規格のいくつかの側面は、この動向にそぐわないままである傾向がある。ＵＳＢマスストレージデバイスに接続されたホストシステムに対する全体の電力消費は、これら既存の規格へのわずかな修正のみで改良することができる。
【０００２】
現在、新しいＵＳＢ３．０規格の一部として、新しい機能が、バス利用および電力効率を改良するために追加されている。ＵＳＢ３．０で接続された特定のデバイスは現在、デバイスの準備完了をホストに非同期で通知することができ、接続された全てのデバイスのポーリングを不要にする。加えて、ＢＯＴ規格およびＵＡＳＰ規格の修正は、リムーバブルメディアを有するデバイスのメディア状態変化を検出する他の種類のポーリングを不要にするのに役立つ。
【発明の概要】
【課題を解決するための手段】
【０００３】
以下は、本明細書に記載したいくつかの態様についての基本的な理解が得られるように、本革新の簡略化した概要を示すものである。この概要は、特許請求する主題の広範な概観ではない。特許請求する主題の主要なまたは重要な要素を特定することも、本革新の範囲を線引きすることも意図していない。その唯一の目的は、特許請求する主題のいくつかの概念を、後述するより詳細な説明への前置きとして、簡略化した形式で示すことにある。
【０００４】
リムーバブルメディアを有しているとホストシステムに誤っておよび／または不正確に報告し得るレガシーストレージデバイスを検出するためのシステムおよび方法。そのような誤ったまたは不正確な報告のせいで、ホストシステムが、ストレージデバイスに対して、Ｉ／Ｏ処理の準備ができているかについて定期的にポーリングすることになり得る。そのようなポーリングは不要であり、ホストシステムが消費する電力の無駄を意味する。一実施形態では、本システムは、ストレージメディアに定期的にポーリングし、データベースを更新する処理を実行することができる。データベースは、ストレージデバイスのリストであって、これらが本当にリムーバブルメディアを有するかまたはリムーバブルメディアを有すると誤って報告するかを示すリストとなる。他の実施形態では、本システムは、何らかのヒューリスティックなテストを用いて、ストレージデバイスがそのように誤ってリムーバブルメディアを示すか否かを判定できる。他の実施形態では、テレメトリ（telemetry）サービスが、ホストの組により用いられて、そのようなストレージデバイスに関するデータを共有することができる。
【０００５】
一実施形態では、ストレージデバイスを検出するための方法であって、前記ストレージデバイスはホストシステムに接続され、前記ストレージデバイスは関連するメタデータを含み、前記関連するメタデータはそのようなストレージデバイスがリムーバブルメディアを有すると誤って示すことがあり、前記方法は、前記ホストシステムから第１のストレージデバイスへメディアポーリングメッセージを送信することであって、前記メディアポーリングメッセージは前記第１のストレージデバイスが準備ができているかを問い合わせるものである、送信することと、前記第１のストレージデバイスが準備ができていないと応答する場合、前記第１のストレージデバイスが本当にリムーバブルメディアを有するとしてデータベースを更新することとを備える、方法を開示する。
【０００６】
他の実施形態では、ホストシステムにおいてストレージデバイスを検出するためのシステムであって、前記ストレージデバイスは関連するメタデータをさらに含み、前記関連するメタデータは前記ストレージデバイスがリムーバブルストレージメディアを備えると誤って示すことがあり、前記システムは、前記ストレージデバイスと接続することと、前記ストレージデバイスとの間でメッセージをやりとりすることが可能なマスストレージドライバと、前記マスストレージドライバと接続され、前記ストレージデバイスとの間でメッセージを送受信することが可能なブロックストレージドライバと、前記ストレージデバイスへメディアポーリングメッセージを送信することと、本当はリムーバブルメディアを有さない前記ストレージデバイスへのさらなるメディアポーリングメッセージを無効にすることが可能なプロセッサとを備える、システムを開示する。
【０００７】
本システムの他の特徴および態様は、本出願で示される図面と共に読まれる場合に、発明を実施するための形態において以下に示される。
【０００８】
例示の実施形態を、図面中の参照図に示す。本明細書で開示される実施形態および図面は、限定的ではなく例示的なものとみなされるべきであるものとする。
【図面の簡単な説明】
【０００９】
【図１】典型的なホスト／ハブ／周辺デバイス構成環境の一実施形態の図である。
【図２】修正されたＢＯＴ規格の下で行われ得る処理の１つの例示の実施形態の図である。
【図３】本出願の原理に従って作られた本システムの１つの例示の実施形態の図である。
【図４】リムーバブルメディアを有するまたは有さないことがあるレガシーデバイス間を識別および／または区別するための処理の１つのフローチャートの実施形態の図である。
【図５】リムーバブルメディアステータスを誤報告し得るデバイスを識別し、節電の実施を支援するための処理の他のフローチャートの実施形態の図である。
【図６】参加しているホストシステムからテレメトリデータを収集し集約する処理のさらなる他のフローチャートの実施形態の図である。
【発明を実施するための形態】
【００１０】
本明細書で使用される場合、「コンポーネント」、「システム」、「インターフェース」、「コントローラ」などの用語は、ハードウェア、（たとえば実行中の）ソフトウェア、および／またはファームウェアのいずれであれ、コンピュータ関連のエンティティを指すものとする。たとえば、これらの用語のいずれかは、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、プログラム、および／またはコンピュータとすることができる。例として、サーバ上で動作するアプリケーションおよびこのサーバの双方は、コンポーネントおよび／またはコントローラとすることができる。１つまたは複数のコンポーネント／コントローラは、プロセス内に存在することでき、コンポーネント／コントローラは、１つのコンピュータ上に局在させることができ、および／または２つ以上のコンピュータに分散させることができる。
【００１１】
特許請求する主題を、図面を参照して説明するが、同様の参照番号を、全体を通して、同様の要素を参照するために用いる。以下の記載においては、説明の目的で、多数の具体的な詳細を記載し、本革新の完全な理解が得られるようにする。しかしながら、特許請求する主題が、これらの具体的な詳細なくとも実践可能であることは明らかであろう。他の例では、周知の構造およびデバイスを、本革新の説明を容易にするために、ブロック図の形式で示す。
【００１２】
はじめに
一実施形態では、ＵＳＢフラッシュドライブに対するメディア状態のポーリングを除去することで、電力を節約できる。しかしながら、以下の理由により、これを安全に行うことができない場合がある：（１）リムーバブルメディアを不正確に報告する大多数のＵＳＢフラッシュドライブ（UFD）、（２）これらのＵＦＤを、本当にリムーバブルメディアを含むデバイス（たとえばUSBフラッシュカードリーダデバイス）から一義的に区別する方法が現在存在しない。これは、そのようなリムーバブルメディアを実際には有さない場合に、リムーバブルメディアを含むと（誤っているが）符号化したレガシーＵＦＤに特に当てはまる。
【００１３】
現在、新しい非レガシーデバイスは、ホストが誤動作またはデータ破損のリスクなしでメディアポーリングを断定的および安全に除去できる、新しい非同期通知機構を実装することができる。しかしながら、これは、現在およびしばらくの間、使用中である全てのレガシーデバイスに対しては、何も行わない。
【００１４】
状況を理解するために、図１は、典型的なＵＳＢ３．０ホスト／ハブ／周辺デバイス構成の１つの構成図（１００）の１つの例示の実施形態である。図１からわかるように、新しいスーパースピードバスは、従来のＵＳＢ２．０バスと平行して動作するデュアルバスアーキテクチャの一部である。コントローラ１０２は、Ｉ／Ｏ処理および／または機能を提供するために、ＵＳＢ３．０ホスト１０４と通信可能である。ＵＳＢ３．０ホスト１０４は、レガシーＵＳＢ２．０ホスト１０６に対する互換性サポート、ならびに新しいスーパースピードホスト機能１０８を提供することができる。コントローラ１０２は、システムのＣＰＵ、Ｉ／Ｏコントローラ、またはそのようなコントローラのハードウェアおよび／またはソフトウェアコンポーネントの組合せでもよい。
【００１５】
ホストは、多数のポート（たとえば１１０ａおよび１１０ｂ）を備えることができる。ポートは、複数のハブ１１２と接続することができる。ハブ１１２は、レガシーハブ１１４と、新しい（たとえばスーパースピード）ハブ１１６とをさらに備えることができる。そのようなハブは、今度は、複数のＵＳＢ周辺デバイス１２０と接続でき、これらは、非スーパースピード機能１２２およびスーパースピード機能１２４の組を備えることができる。
【００１６】
そのような周辺デバイスは、種々のレガシーデバイス、たとえば、（リムーバブルメディアを有するとホストに誤って報告し得る）リムーバブルメディアを有さないＵＳＢフラッシュドライブ１２６、または、実際のリムーバブルメディアコンポーネント（たとえばメモリーカード１３０）を有することができるカメラ１２８を含むことができる。
【００１７】
図２は、修正されたＢＯＴまたはＵＡＳＰ規格の下で行われ得る処理の１つの例示の実施形態（２００）を示す。ＵＳＢマスストレージデバイス２０８は、リムーバブルとは限らないストレージメディア２１６と、処理ユニット２１４と、インターフェースバンドル２１０とを備えることができる。インターフェースバンドル２１０は、レガシー（たとえば既存のBOTおよびUASP規格の）インターフェースＩＮエンドポイント（ＥＰ）（２１０ａ）およびＯＵＴ  ＥＰ  ２１０ｂ、ならびにステータスの非同期通知のための新たに導入されたインタラプトエンドポイント（ＩＮＴ  ＥＰ  ２１２）をさらに備えることができる。
【００１８】
たとえば、リムーバブルストレージが取り外されたかまたは交換されたかに関するステータスの変化は、通知処理２０６ａにおいて、ホストシステムに、たとえばＵＳＢマスストレージドライバ２０６に、非同期で信号により通知することができる。この通知はさらに、ブロックストレージドライバ２０４へ、メディア変更処理２０４ａへ、非同期で伝えることができる。最後に、そのようなステータスの変化は、上位レベルファイルシステムスタック２０２へ報告することができる。
【００１９】
前述したように、レガシーデバイスは、新しい規格に従って実装されていないので、そのようなステータスの変化を非同期に報告することはない。実際には、レガシーデバイスは、ＢＯＴ／ＵＡＳＰ規格への新たに提案された修正より前から存在するか、またはこれらの修正を実装しないことを選択したデバイスであってもよい。加えて、レガシーデバイスは、リムーバブルメディアを有すると、そのようなリムーバブルメディアを有さない場合でさえ、誤って報告することがある（したがって、継続的なポーリングを要求する）。潜在的な節電に対する様々な態様をより理解するために、様々なコンポーネントへの影響を考慮することが望ましいだろう：
【００２０】
ハブおよびコントローラの考慮
ＵＳＢデバイスツリーの各ノードに対して電力を管理しながら、特定のノードの全ての子を、そのノード自身が休止し得る前に、休止させなければならない。そして、ホストコントローラに接続されたデバイスの全体のツリーが休止した場合、コントローラ自身を休止させることができる。コントローラを休止させることは、自身の回路をアクティブに保つことに関連する電力を節約するだけでなく、コントローラが生成し得る割り込みの停止によってホストＣＰＵ消費電力を低下させることもできる。
【００２１】
ＣＰＵの考慮
リムーバブルメディアを有するデバイスの現在のメディア状態に関してホストを最新に保つために、システムは、たとえばメディアポーリングメッセージとしてＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹ（TUR）コマンドを用いた定期的なポーリングに作用することができる。これは、この活動によってＣＰＵをより高い電源状態に保持する傾向がある、タイマプロシージャコールのコンテキストにおけるコードの定期的な実行に対応する。全体のシステム消費電力の最小化を試みるために、以下を考慮するのが望ましいだろう：
（１）リムーバブルメディアを報告するデバイスは、メディア状態の任意の変化を検出するために、ホストによりＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹコマンドを用いて継続的にポーリングされる。これは、追加の電力を消費する傾向があり、実際のデータＩ／Ｏの不在下で、ＵＳＢデバイスツリーならびにホストコントローラおよびホストＣＰＵを不必要にアクティブに保つ。
（２）より多くの電力が最適化されたホストに接続されている間、バスパワー型マスストレージデバイスは、以前のホストのバージョンの場合より長い期間の間、自身が休止したままであると気づくことがある。休止状態におけるこの期間の長さは、デバイスが安定した動作を維持するために必要な長さを越えることがある。そのような環境下では、デバイスは、デバイスがある一連の内部のハウスキーピングタスクを完了可能な時間の間、ポートがアクティブのままで、臨時ポートを再開するように要求することになる。
【００２２】
周辺機器／デバイスの種類
本明細書の一部の実施形態では、記載した機構の実装に対する見返りとして得られる利益は、デバイスの種類に応じて変化することがある。結果に影響し得る２種類の着脱性を広く考慮することは有益である：すなわち、デバイス着脱性およびメディア着脱性である。以下の表１は、これら２つの特性の入れ替えを表す様々なデバイスの種類の例を示す：
【００２３】
【表１】
0006293798.tif 000002
【００２４】
カテゴリ１および３のデバイスは、ＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹポーリングの除去から明らかに恩恵を受けやすいであろう一方で、カテゴリ２および４のデバイスは、ポートをリモートウェイク（remote wake）する機能から恩恵を多く受けることができる。加えて、カテゴリ１のデバイスのユーザは電力を節約するために単にプラグを抜くことができる一方で、カテゴリ３のデバイスのユーザは同じ選択肢が与えられないことがあるということを考慮することが望ましいだろう。カテゴリ３のデバイスは、リムーバブルメディアスロットが占有されているか否かに関わらず、システムの電力を消費することも指摘しておいてもよいだろう。加えて、正規のＵＳＢフラッシュドライブが、カテゴリ１および２の双方に現れることを指摘しておいてもよいだろう。これは正しく、なぜなら、既存のフラッシュドライブの大部分が、リムーバブルメディアビット（RMB）に対してビット値１（真）を指定するので、リムーバブルストレージメディアの正しいベアラ（bearer）でないにも関わらず、ＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹポーリングを誘発するためである。しかしながら、一部のフラッシュドライブは、たとえば、ゼロに設定されたリムーバブルメディアビット（RMB）（すなわち、RMB=0）により、自身の非リムーバブルメディアを正確に表現し、不正確な値（RMB=1）を報告するデバイスに比べて、接続されたホストシステムに対してより多くの電力を節約するのに効果的に役立つ。
【００２５】
一実施形態
述べたように、ＵＳＢフラッシュドライブのこの不要なメディアポーリングを安全に除去することにより得られる利益は多種多様である：
（１）継続的なポーリングは、デバイスをアクティブに保持する傾向があるので、選択的な休止を阻害する。ポーリングを除去することにより、デバイス自体をアイドル状態に到達させて、低電力非アクティブ状態に置くことが可能とすることができる。
（２）これは、デバイスだけでなく、全体のＵＳＢデバイスツリーに影響することがあり、というのは、全ての介在するハブデバイスが、ＵＳＢホストコントローラに加えて、アクティブのままである傾向があるためである。
（３）連続的なポーリングＤＰＣタイマもまた、ＣＰＵを不必要にアクティブに保つ傾向がある場合がある。
【００２６】
したがって、本当に着脱可能なリーダデバイス対ＵＳＢフラッシュドライブの正確な識別に作用することで、ポーリングを安全に除去することが望ましいだろう。また、誤った識別を行うと、メディア変更が見逃されることがあるので、場合により、機能が低下し、データ崩壊が起こり得ることになる。
【００２７】
図３は、ＵＳＢ３．０規格などに影響し得る、本システム（３００）の１つの例示の実施形態を示す。レガシーＵＳＢマスストレージデバイス３０８は、ストレージメディア３１６と、処理コンポーネント３１４と、インターフェースバンドル３１０とを備え、インターフェースバンドル３１０は、レガシーインターフェースＩＮ  ＥＰ  ３１０ａおよびＯＵＴ  ＥＰ  ３１０ｂをさらに備えることができる。
【００２８】
この場合、レガシーデバイスがリムーバブルメディアを有するか否かを誤って指定することがあるとしても、システムは、非同期通知を、そのような非同期通知を待つＵＳＢマスストレージドライバ３０６と共に、これは到着することはないが、依然として採用できることがある。システムがストレージデバイスから非同期通知メッセージを受信する場合、これはストレージデバイスがレガシーデバイスでないことを示す傾向があり、システムは、そのような通知メッセージを受信したときを含めて、そのデバイスをしかるべく扱うことができ、システムは、そのＩＤまたはストレージデバイスに関連する他のメタデータを用いて、ストレージデバイスが本当にリムーバブルメディアを有するとしてデータベースを更新することができる。このデータおよび／またはデータベースはさらに、テレメトリまたはその他により、他のホストシステムと共有することができる。
【００２９】
ステータスは、メディア変更処理３０４ａにより、ブロックストレージドライバ３０４に非同期で通知することができる。最後に、そのようなステータスはさらに、上位レベルファイルシステムドライバスタック３０２に通知することができる。ブロックストレージドライバ３０４はさらに、メディア変更処理、または、接続されたストレージデバイスのステータスを検出し、Ｉ／Ｏ処理に対する準備状況またはＲＭＢステータスについてストレージデバイスに問い合わせるための何らかの十分な処理を実行するプロセッサを備えるか、または十分な処理能力にアクセスすることができる。
【００３０】
この節電非同期ステータス更新に作用するために、本システムのいくつかの実施形態は、リムーバブルメディアの正しい指定および／または検出を改良するための様々な技法および／または方法を採用することができる。
【００３１】
単なる一例として、製品を出荷する前に、データを照合することが可能である。まず、出来る限り多くの既知の（レガシーまたはその他の）ＵＳＢフラッシュドライブ対リーダデバイスを識別することが可能である。これらのリーダおよびデバイスに関するメタデータは、検索可能テーブルまたは他の適したデータベース内に置くことができる。このデータベースは、（たとえば初期テーブルとして）調べることができ、システムは、正しいポーリング動作を必要に応じて用いることができる。
【００３２】
しかしながら、この初期テーブル／データベースは、網羅的でも前向きでもないという点で制限があることがあるので、ホストシステムは、特定の追加のヒューリスティックな手続きおよび／または方法を用いて、以下のようにこれをさらに精製することが可能である：
（１）初期化中、ＲＭＢ＝１と報告する一部または全部のレガシーユニット（LUN）に、ＴＵＲコマンド（または、デバイスがI/O処理の準備ができていることを示す何らかの他の「ready」コマンド）を一度発行する。少なくとも１つのＬＵＮがＴＵＲに対してＮＯＴ  ＲＥＡＤＹ−ＭＥＤＩＡ  ＮＯＴ  ＰＲＥＳＥＮＴと応答した場合、これは、フラッシュカードリーダまたは本当にリムーバブルメディアを有する他のデバイスである。システムまたはホストは、そのデバイスへのポーリングを無効にすることおよび／またはデバイスが本当にリムーバブルメディアを有するとしてテーブル／データベースを更新することを含めて、これを後でしかるべく扱うことができる。
（２）全てがＲＥＡＤＹを報告する場合、さらなる証拠が、正確な判定を行うために要求されることがある。テレメトリのレポートにおいて、デバイスのハードウェアＩＤ（VIDおよびPID）、ＬＵＮ数、および、各ＬＵＮがＲＥＡＤＹ対ＮＯＴ  ＲＥＡＤＹを報告した回数（これは、若干のRMB=0のデバイスが時々および断続的にNOT READYを報告するので、望ましい場合がある）を含むように、データをアップロードし共有すること（たとえば他のホストと共にデバイス正誤（errata）データベースを更新すること）が可能である。
（３）テレメトリサンプルデータを集約し、初期テーブル／データベースに含まれなかった可能性のある、可能性の高いＵＦＤ対フラッシュカードリーダデバイスを識別する。このレビュー処理は、任意のまれなケースまたは異常を考慮から除外するのに役立つことがある。
（４）この新しい情報を定期的に用いて、テーブル／データベースを更新し、動的にドライバを更新する。
【００３３】
述べたように、非同期通知を実装する新しいＵＳＢマスストレージデバイスは、ホストに公開されたインターフェース記述子バンドルに挿入された追加のインタラプトエンドポイントを介して、そのようにすることができる。レガシー（または下位の）ホストは、この新しい非同期通知機能に気づいていないが、追加のエンドポイントを単に無視し、新しい機能を利用できないままとすることができる。
【００３４】
しかしながら、新しいホストシステムだけが、この新しい非同期通知機構を認識し利用することができる。これは、新しいインタラプトエンドポイントを選択し、デバイスがアクティブなＤ０電源状態のままである限り、持続する未処理の要求をこのエンドポイント上に保持することで行う。この要求は、デバイスにより生成された任意のメディア変更イベントがあったときに、デバイスにより完了する。これに続いて、ホストは、最近完了した要求を置き換えるための他のインタラプトエンドポイント要求を再発行する。デバイスが非アクティブなＤ３電源状態に遷移したとき、ホストシステムは、インタラプトエンドポイントへのこの未処理の要求を取り消す。続いて、デバイスがアクティブＤ０電源状態に復旧したとき、デバイス上のローカルに検出されたメディア変更に対応するデバイスウェイクシグナリングの結果として、またはホストが開始した遷移に起因して、ホストは、持続するインタラプトエンドポイントの非同期通知要求を再確立する。
【００３５】
いくつかの処理実施形態
図４は、リムーバブルメディアを有するとは限らないレガシーデバイス間を識別および／または区別するのを手助けし、電力を節約するのを手助けすることができる処理の１つのフローチャートの実施形態（４００）を示す。
【００３６】
４０２において、デバイスをハブに挿入することができ、その後、システムは、４０４においてＩｎｑｕｉｒｙコマンド（すなわち、何らかのreadyコマンド）を発行することができる。このデバイスがリムーバブルメディアを有さないこと（RMB=0）を折り返し報告する場合、システムは、４１４の節電経路へ遷移することができ、ここでデバイスアイドルタイマをリセットすることができる。システムは、デバイスが切断されているというレポートを受信することがあり、この場合、４２４においてデバイスをさらなる考慮から除外することができる。
【００３７】
しかしながら、システムからのＩ／Ｏ要求がある場合、デバイスアイドルタイマを４１４に戻ってリセットすることができ、この要求は処理される。そのようなＩ／Ｏ要求がない場合、デバイスアイドルタイマは、４２０において期限切れになり得る。その場合、４２２において、電力を節約するために、デバイスポートを休止させることができる。
【００３８】
しかしながら、４０６に戻って、デバイスがＲＭＢ＝１（すなわちリムーバブルメディアを有する）と報告する場合、システムは、何らかのヒューリスティックなテストを用いて、デバイスが本当にリムーバブルメディアを有するかを判定することができる。一実施形態では、そのようなヒューリスティックなテストは、上記のものに従って進行することができる。デバイスがヒューリスティックスによると非リムーバブルメディアを有する場合、この処理は４１４に遷移し、しかるべく進行することができる。
【００３９】
そうでなければ、システムは、デバイスが、（たとえば、BOT/UASP規格拡張、またはそのような非同期通知をサポート可能な任意の他の規格に従って）非同期メディア通知を実装しているかについて、さらに問い合わせることができる。その場合、システムは４１４に遷移することができる。そうでなければ、システムは、定期的なＴＵＲポーリングを実行することができ、デバイスはアイドル状態になることができない。
【００４０】
図５は、節電の実施を支援可能な他の処理（たとえば図４など）を補完し、ならびにリムーバブルメディアステータスを誤報告し得るデバイスに関するメタデータを更新し精製することが可能な、他のフローチャートの実施形態（５００）である。５０２において、デバイスを挿入することができる。５０４において、システムは、テーブル／データベースを調べて、特定のデバイスのステータスを判定することができる。５０６において、デバイスがリムーバブルメディアを有さないものとしてリストに含まれる場合、５０８において、システムは、このデバイスに対してＴＵＲポーリングを無効にすることができる。
【００４１】
そうでなければ、データベースエントリがない場合、システムは５１０に遷移し、デバイスが切断されるかを検出することができる。その場合、システムは、デバイス取り外し状態５１８に遷移することができる。そうでなければ、システムは、ＴＵＲポーリングへのデバイスの応答を監視することができる。メディアが存在しないことを示す応答があった場合、システムは、５１６において、デバイスに関するデータを収集し、テレメトリによりデバイスを報告することができる。そうでなければ、システムは、ＴＵＲポーリングに対するデバイスの応答を監視し続け、しかるべく進行することができる。
【００４２】
図６は、参加しているホストシステムからテレメトリデータを収集し集約する（たとえばサーバシステム上でオフラインで動作し得る）処理のさらなる他のフローチャートの実施形態（６００）である。これを用いて、リムーバブルメディアステータスを誤認し得るデバイスを正しく識別するように、テーブル／データベースを更新することができる。この処理は、オフラインか否かにかかわらず、進行することができる。６０２において、システムは、デバイスデータベースを更新するために、テレメトリデータをレビューすることができる。更新されたデータベースを用いて、システムは、６０４において、任意の非リムーバブルメディアが存在するかを判定することができる。その場合、システムは、６０６において、特定のデバイスの取り扱いについて全ての更新可能なホストシステムに通知するために、データベースを更新することができる。報告すべき新しいデバイスが存在する場合、システムはこの情報をデータベースにプッシュできる。ある後の時点で、このデータベースは、適切な更新処理により（たとえばWindows Update（登録商標）コンピュータサービスにより）、全ての更新可能なホストシステムと共有することができる。
【００４３】
上記の記載には、本革新の例が含まれている。特許請求する主題を説明するために、コンポーネントまたは方法の全ての考え得る組合せを説明することはもちろん不可能であるが、当業者は、本革新の多数のさらなる組合せおよび順列が可能であることを理解するだろう。したがって、特許請求する主題は、添付の特許請求の範囲の趣旨および範囲内に含まれる全てのそのような変更、修正、および変形を含むものとする。
【００４４】
具体的には、上述のコンポーネント、デバイス、回路、システムなどにより実行される様々な機能に関して、そのようなコンポーネントを記述するのに用いられる（「手段」への言及を含む）用語は、別段の指示がない限り、開示された構造と構造的に同等でなくても、記述したコンポーネントの指定機能を実行し、特許請求する主題の本明細書で示された例示の諸態様の機能を実行する、任意のコンポーネント（たとえば機能的な同等物）に対応するものとする。これに関して、本革新が、特許請求する主題の様々な方法の行為および／またはイベントを実行するためのコンピュータ実行可能命令を有するシステムならびにコンピュータ可読媒体を含むこともまた理解されよう。
【００４５】
加えて、本革新の特定の特徴は、いくつかの実装のうちの１つのみに関して開示されている場合があるが、そのような特徴は、任意の所与のまたは特定の用途のために望むようにおよび有利なように、他の実装の１つまたは複数の他の特徴と組み合わせることができる。さらに、「含む（includes）」および「含む（including）」という用語およびこれらの変形が、発明を実施するための形態または特許請求の範囲において用いられる範囲においては、これらの用語は、「備える（comprising）」という用語と同様に、包含的であるものとする。
【図１】
0006293798.tif 000003
【図２】
0006293798.tif 000004
【図３】
0006293798.tif 000005
【図４】
0006293798.tif 000006
【図５】
0006293798.tif 000007
【図６】
0006293798.tif 000008