(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のための前記コンピューティングデバイスであって、
デバイスキーをネットワークに送信するサブスクリプションモジュールであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含み、前記サブスクリプションモジュールは、送信された前記デバイスキーに応答してハードウェアサブスクリプション認可を受信し、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するために前記コンピューティングデバイスによって使用可能なブートカプセルを含む、サブスクリプションモジュールと、
前記サブスクリプションモジュールに通信可能に結合されて、前記ブートカプセルを認証する認証モジュールと、
を備え、前記サブスクリプションモジュールは、認証された前記ブートカプセルを前記コンピューティングデバイスのセキュアなメモリにインストールして、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの使用を認可する、
コンピューティングデバイス。
【請求項２】
前記ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（Unified  Extensible  Firmware  Interface：ＵＥＦＩ）カプセルを含む、
請求項１に記載のコンピューティングデバイス。
【請求項３】
前記サブスクリプションモジュールは、前記ＵＥＦＩカプセルによって指定されるブートパスを用いて、前記コンピューティングデバイスをリブートする、
請求項２に記載のコンピューティングデバイス。
【請求項４】
前記ＵＥＦＩカプセルのＵＥＦＩドライバは、プリブート環境において前記ＵＥＦＩカプセルを認証するために、前記ＵＥＦＩカプセルを前記認証モジュールに提供する、
請求項２乃至３のいずれか一項に記載のコンピューティングデバイス。
【請求項５】
前記認証モジュールは、前記ハードウェアサブスクリプション認可を前記セキュアなメモリに保存し、前記ハードウェアコンポーネントの各使用について、保存された前記ハードウェアサブスクリプション認可を認証する、
請求項１に記載のコンピューティングデバイス。
【請求項６】
前記ハードウェア構成データは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも１つを含む、
請求項１に記載のコンピューティングデバイス。
【請求項７】
前記ハードウェアコンポーネントは、（ｉ）動作中に用いられる複数のプロセッサコアを含むプロセッサと、（ｉｉ）変更可能なプロセッサ動作周波数を有するプロセッサと、（ｉｉｉ）変更可能なキャッシュサイズメモリと、（ｉｖ）変更可能なレーンを有するPCI  Expressグラフィックス（ＰＥＧ）ポートと、（ｖ）ジェスチャ感知装置と、（ｖｉ）指紋感知装置と、（ｖｉｉ）外部周辺機器への接続を可能にするハードウェアインタフェースとのうち１つを含む、
請求項１乃至３、５及び６のいずれか一項に記載のコンピューティングデバイス。
【請求項８】
前記ハードウェアサブスクリプション認可は、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む、
請求項１に記載のコンピューティングデバイス。
【請求項９】
前記サブスクリプションモジュールは、前記時間データが失効すると、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの認可された使用を無効にする、
請求項８に記載のコンピューティングデバイス。
【請求項１０】
コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のためのサブスクリプションサーバであって、
ネットワークからデバイスキーを受信するシステムサブスクリプションモジュールであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含み、前記システムサブスクリプションモジュールは、受信された前記デバイスキーに基づいてハードウェアサブスクリプション認可を送信し、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、システムサブスクリプションモジュールと、
前記ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供する暗号サービスエンジンモジュールであって、暗号サービスエンジンは、前記コンピューティングデバイスによる前記ブートカプセルのインストールを認可する、
サブスクリプションサーバ。
【請求項１１】
前記ハードウェア構成データは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも１つを含む、
請求項１０に記載のサブスクリプションサーバ。
【請求項１２】
前記システムサブスクリプションモジュールは、前記ハードウェア構成データに基づいて、前記ハードウェアサブスクリプション認可について１以上のハードウェアコンポーネントオプションを決定する、
請求項１１に記載のサブスクリプションサーバ。
【請求項１３】
前記システムサブスクリプションモジュールは、前記１以上のハードウェアコンポーネントオプションを前記コンピューティングデバイスに通信し、前記コンピューティングデバイスから前記１以上のハードウェアコンポーネントオプションの選択を受信する、
請求項１２に記載のサブスクリプションサーバ。
【請求項１４】
前記システムサブスクリプションモジュールは、選択された前記ハードウェアコンポーネントオプションに基づいて、前記ハードウェアサブスクリプション認可を送信する、
請求項１３に記載のサブスクリプションサーバ。
【請求項１５】
前記ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）カプセルを含む、
請求項１０乃至１４のいずれか一項に記載のサブスクリプションサーバ。
【請求項１６】
前記ＵＥＦＩカプセルは、前記コンピューティングデバイスについてブートパスを指定する、
請求項１５に記載のサブスクリプションサーバ。
【請求項１７】
前記ＵＥＦＩカプセルは、プリブート環境において前記ＵＥＦＩカプセルを認証するＵＥＦＩドライバを含む、
請求項１５に記載のサブスクリプションサーバ。
【請求項１８】
前記ハードウェアサブスクリプション認可は、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む、
請求項１０に記載のサブスクリプションサーバ。
【請求項１９】
前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの前記認可された使用は、前記時間データが失効すると無効化される、
請求項１８に記載のサブスクリプションサーバ。
【請求項２０】
コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のための方法であって、
サブスクリプションモジュールが、デバイスキーをネットワークに送信するステップであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、
前記サブスクリプションモジュールが、送信された前記デバイスキーに応答してハードウェアサブスクリプション認可を受信するステップであって、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するために前記コンピューティングデバイスによって使用可能なブートカプセルを含む、ステップと、
認証モジュールが、前記ブートカプセルを認証するステップと、
前記サブスクリプションモジュールが、認証された前記ブートカプセルを前記コンピューティングデバイスのセキュアなメモリにインストールして、前記ハードウェアサブスクリプション認可によって定義された前記ハードウェアコンポーネントの使用を認可するステップと、
を含む方法。
【請求項２１】
前記ハードウェアサブスクリプション認可を受信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）カプセルを含む前記ブートカプセルを受信するステップを含む、
請求項２０に記載の方法。
【請求項２２】
コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプションサーバによるサブスクリプション方式の使用を提供する方法であって、
システムサブスクリプションモジュールが、ネットワークからデバイスキーを受信するステップであって、前記デバイスキーは、前記コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、
前記システムサブスクリプションモジュールが、受信された前記デバイスキーに基づいてハードウェアサブスクリプション認可を送信するステップであって、前記ハードウェアサブスクリプション認可は、前記コンピューティングデバイスの前記ハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、ステップと、
暗号サービスエンジンモジュールが、前記ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供するステップであって、前記暗号サービスエンジンモジュールは、前記コンピューティングデバイスによる前記ブートカプセルのインストールを認可する、ステップと、
を含む方法。
【請求項２３】
前記ハードウェアサブスクリプション認可を送信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）カプセルを含むブートカプセルを送信するステップを含む、
請求項２２に記載の方法。
【請求項２４】
請求項２０乃至２３のいずれか一項に記載の方法をコンピューティングデバイスに実行させるコンピュータプログラム。
【請求項２５】
請求項２４に記載のコンピュータプログラムを格納した１以上の機械可読記憶媒体。
【請求項２６】
コンピューティングデバイスのネットワーキングデバイスのファームウェアを更新するためのコンピューティングデバイスであって、請求項２０乃至２３のいずれか一項に記載の方法を実行するための手段を備えるコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１４年１２月２７日に出願された“TECHNOLOGIES  FOR  PROVIDING  HARDWARE  SUBSCRIPTION  MODELS  USING  PRE-BOOT  UPDATE  MECHANISM”（プリブート更新メカニズムを用いてハードウェアサブスクリプションモデルを提供するための技術）という名称の米国実用特許出願第１４／５８３，６５６号に対する優先権を主張する。
【背景技術】
【０００２】
最新のコンピューティングデバイスは、個人的、ビジネス的、社会的な用途のためのユビキタスなツールとなっている。このように、多くの最新のコンピューティングデバイスは、インターネットや企業イントラネットを含む様々なデータネットワークに接続して、そのようなネットワークを介してデータ通信を検索及び受信することができる。多くの場合、あるネットワークに接続されたコンピューティングデバイスは、異なるネットワークに接続されたコンピューティングデバイスと通信する。このようなネットワーキングの出現により、サブスクリプションソフトウェアサービスの使用がますます普及しており、コンピューティングデバイス上のソフトウェアを実行している顧客は、ソフトウェア又は特定のソフトウェア機能を使用し続けるためにサブスクリプション又はアクセス料金を支払わなければならない。ソフトウェアサブスクリプションサービスの分野では一定の進歩がみられるが、ハードウェアベースのサブスクリプションモデルやサービスの開発はほとんど行われてこなかった。
【図面の簡単な説明】
【０００３】
本明細書に記載される概念は、例として示されており、添付図面に限定されるものではない。説明を簡潔且つ明確にするために、図に示される要素は必ずしも縮尺通りに描かれていない。適切であると考えられる場合には、対応又は類似する要素を示すために、参照番号が図面間で繰り返されている。
【図１】ハードウェアサブスクリプション機能を確立及び提供するシステムの少なくとも１つの実施形態の簡略ブロック図である。
【図２】図１のシステムのハードウェアサブスクリプションサービスを取得するためのコンピューティングデバイスの環境の少なくとも１つの実施形態の簡略ブロック図である。
【図３】図１のシステムの１つ以上のコンピューティングデバイスにハードウェアサブスクリプションサービスをセキュアに提供するためのサブスクリプションサーバの環境の少なくとも１つの実施形態の簡略ブロック図である。
【図４】ハードウェアサブスクリプション機能を認証及び有効化するために、コンピューティングデバイスでハードウェアサブスクリプションカプセルを受信及び処理するための方法の、少なくとも１つの実施形態の簡略フローチャートである。
【図５】コンピューティングデバイスのハードウェアサブスクリプション機能を動作及び無効化するための方法の少なくとも１つの実施形態の簡略フローチャートである。
【図６】サブスクリプションサーバでハードウェアサブスクリプションオプションを確立し、ハードウェアサブスクリプション機能を有効化するためにハードウェアサブスクリプションカプセルをコンピューティングデバイスに提供する方法の、少なくとも１つの実施形態の簡略フローチャートである。
【図７】サブスクリプションサーバと図１のシステムのコンピューティングデバイスとの間のハードウェアサブスクリプション選択プロセスの、少なくとも１つの実施形態の簡略図である。
【発明を実施するための形態】
【０００４】
本開示の概念は様々な変更及び代替形態が可能であるが、その具体的な実施形態が図面において例として示されており、本明細書において詳細に説明される。しかしながら、本開示の概念を開示された特定の形態に限定することは意図されず、反対に、本開示及び添付の特許請求の範囲に合致する全ての変更、均等物及び代替物を包含することが意図されることを理解されたい。
【０００５】
本明細書において「一実施形態」、「実施形態」、「例示の実施形態」等と言及する場合、記載された実施形態が特定の特徴、構造又は特性を含むが、全ての実施形態が必ずしもその特定の特徴、構造又は特性を含まなくてよいことを示す。更に、そのような表現は必ずしも同じ実施形態を指しているわけではない。更に、特定の特徴、構造又は特性が実施形態に関連して記載される場合、明示的に記載されているか否かを問わず、他の実施形態と関連してそのような特徴、構造又は特性を達成することは、当業者の知識の範囲内である。加えて、「Ａ、Ｂ及びＣの少なくとも１つ」の形で列挙された項目は、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ａ及びＣ）、（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味することができることを理解されたい。同様に、「Ａ、Ｂ又はＣの少なくとも１つ」の形で列挙された項目は、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ａ及びＣ）、（Ｂ及びＣ）又は（Ａ、Ｂ及びＣ）を意味することができる。
【０００６】
開示される実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の具体的に実現された組合わせで実施されてよい。開示される実施形態は、１つ以上のプロセッサによって読み取られ実行され得る１つ以上の非一時的な機械可読の（例えばコンピュータ可読の）記憶媒体によって搬送されるか又は記憶される命令として実施されてもよい。機械可読記憶媒体は、機械によって読取可能な形式で情報を記憶又は送信するための任意の記憶装置、機構その他の物理的構造（例えば揮発性又は不揮発性メモリ、メディアディスクその他の媒体装置）として実現されてよい。
【０００７】
図面において、一部の構造又は方法の特徴が具体的な配置及び／又は順序で示されることがある。しかしながら、そのような具体的な配置及び／又は順序は必要でないことがあることを理解されたい。むしろ、一部の実施形態では、そのような特徴は、例示的な図に示されたものとは異なる方式及び／又は順序で配置されてよい。加えて、特定の図に構造又は方法の特徴を含めることは、そのような特徴が全ての実施形態で必要であることを意味するものではなく、一部の実施形態では含まれなくてもよく、或いは他の特徴と組み合わされてよい。
【０００８】
ここで図１を参照する。例示の実施形態において、ハードウェアサブスクリプション機能を確立及び提供するためのシステム100が示される。例示のシステム100は、コンピューティングデバイス104、サブスクリプションサーバ114及びネットワークスイッチ170を含み、これらの各々は、パケット交換その他の適切な通信を用いて動作することができる。使用時には、システム100は、コンピューティングデバイス104〜110の各々からサブスクリプションサーバ114にハードウェアプラットフォーム情報を提供するように動作する。サブスクリプションサーバ114がハードウェアプラットフォーム情報を受信すると、サブスクリプションサーバ114は、有効化されたハードウェア機能を決定し、更に、コンピューティングデバイス104〜110の各々についてどのハードウェアサブスクリプションオプションが利用可能であるかを決定する。ハードウェアサブスクリプションオプションがコンピューティングデバイス（例えば104）によって選択／購入されると、サブスクリプションサーバ114は、ユニファイド・エクステンシブル・ファームウェア・インタフェース（Unified  Extensible  Firmware  Interface；ＵＥＦＩ）カプセル等のブートカプセルを用いてプリブート更新メカニズムを提供して、コンピューティングデバイス104〜110上で選択／購入されたハードウェア機能を有効化するブートレベルプログラムとして機能を果たす。ブートカプセルは、コンピューティングデバイス104〜110に関するハードウェアサブスクリプション認可として機能を果たす。
【０００９】
コンピューティングデバイス104〜110の選択可能／購入可能なハードウェア機能は、コンピューティングデバイスのブートレベルから変更、有効化又は無効化されることが可能なハードウェア及び／又はハードウェアコンポーネントの任意の態様として、実現されてよい。ハードウェアサブスクリプション認可に適した変更可能なハードウェア機能の例としては、動作中に使用される多数のプロセッサコア（例えばシングルコア、クアッドコア等）の変更や、プロセッサ動作周波数の変更（例えば２．４Ｇｈｚ／３．６Ｇｈｚ）が挙げられる。他の変更可能なハードウェア機能は、キャッシュサイズ（４ＭＢ／８ＭＢ）又はPCI  Expressグラフィックス（ＰＥＧ）ポート／レーン（例えばｘ８／ｘ１６）を含んでよい。完全に有効化又は無効化され得るハードウェア機能の例としては、ジェスチャ感知装置のジェスチャ感知、指紋感知装置の指紋感知、外部周辺機器（例えばThunderbolt（商標））への接続を可能にするハードウェアインタフェースが挙げられる。当業者であれば、本明細書に開示されているようなハードウェア機能の有効化、無効化及び変更が広範囲のデバイス及びコンポーネントに適用可能であり、単に前述の特徴、或いはパーソナルコンピューティングデバイス及びコンポーネントに限定されるものではないことを理解できるであろう。
【００１０】
図１に示される実施形態に戻ると、コンピューティングデバイス104（並びにコンピューティングデバイス106〜110）は、本明細書に記載の機能を実行することのできる任意のタイプのコンピューティングデバイスとして実現されてよい。例えば、コンピューティングデバイスは、限定ではないが、コンピュータ、デスクトップコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、サーバコンピュータ、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、メッセージングデバイス、ワークステーション、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースシステム、家庭用電子機器、デジタルテレビ機器、セットトップボックス、及び／又は、データを記憶及びアクセスするように構成され、更に電子クラウドソフトウェアと関連アプリケーションを実行するように構成される任意の他のコンピューティングデバイスとして実現されてよい。コンピューティングデバイス２〜ｎ（106〜110）は、コンピューティングデバイス104に示された構成と同様に構成される。
【００１１】
図１の例示の実施形態では、コンピューティングデバイス104は、プロセッサ120、Ｉ／Ｏサブシステム122、メモリ124、データストレージ126及び通信回路130を備える。通信回路130は、コンピューティングデバイス104と１つ以上の他の外部電子機器及び／又はシステムとの間の通信を可能にする任意の数のデバイス及び回路と共に、ネットワークインタフェースコントローラ（ＮＩＣ）を含んでよい。プロセッサ120は、現在既知であるか将来開発される、本明細書に記載の機能を実行することのできる任意のタイプのプロセッサとして実現されてよい。例えば、プロセッサ120は、シングルコア又はマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラその他のプロセッサ又は処理／制御回路として実現されてよい。同様に、メモリ124は、現在既知であるか将来開発される、本明細書に記載の機能を実行することのできる任意のタイプ又は数の揮発性若しくは不揮発性メモリ又はデータストレージとして実現されてよい。動作中、メモリ124は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、ドライバ等の、コンピューティングデバイス104の動作中に用いられる様々なデータ及びソフトウェアを記憶してよい。一部の実施形態では、メモリ124及び／又はデータストレージ126は、１つ以上のアプリケーションプログラムを記憶しており、プロセッサ120は、１つ以上のアプリケーションプログラムを実行し、対応するグラフィック情報を表示するために表示画面を制御するように動作可能である。当然ながら、他の実施形態では、コンピューティングデバイス104は、デジタル装置及び／又はコンピュータ（例えば様々な入出力デバイス）に一般にみられるような他の或いは追加のコンポーネントを備えてよい。
【００１２】
例示の実施形態では、メモリ124は、１つ以上の通信リンク（すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等）を介してプロセッサ120に通信可能に結合される。また、メモリ124は、Ｉ／Ｏサブシステム122を介してプロセッサ120に通信可能に結合されてもよく、Ｉ／Ｏサブシステム122は、プロセッサ120、メモリ124その他のコンピューティングデバイス104のコンポーネントとの入出力動作を容易にする回路及び／又はコンポーネントとして実現されてよい。例えば、Ｉ／Ｏサブシステム122は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク（すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路基板トレース等）及び／又は入出力動作を容易にする他のコンポーネント及びサブシステムとして実現されてよく、そうでなければ含んでよい。一部の実施形態では、Ｉ／Ｏサブシステム120は、システムオンチップ（ＳｏＣ）の一部を形成することができ、プロセッサ120、メモリ124及びコンピューティングデバイス104の他のコンポーネントと共に、単一の集積回路チップ上に組み込まれてよい。
【００１３】
コンピューティングデバイス104の通信回路130は、１つ以上の通信ネットワーク（例えばローカルエリアネットワーク、パーソナルエリアネットワーク、広域ネットワーク、セルラネットワーク、インターネット等グローバルネットワーク）を介して、コンピューティングデバイス104と他のコンピューティングデバイスとの間の通信を可能にすることのできる、任意のタイプの通信回路、デバイス又はそれらの集合として実現されてよい。通信回路130は、そのような通信を行うために、任意の１つ以上の通信技術（例えば無線又は有線通信）と関連プロトコル（例えばイーサネット（登録商標）、Wi-Fi（登録商標）、WiMAX等）を用いるように構成されてよい。通信回路130は、ポート又は通信インタフェースを含んでよく、そうでなければ通信可能に結合されてよい。ポートは、サブスクリプションサーバ114を任意の数の他のコンピューティングデバイス及び／又はネットワーク（例えば物理ネットワークや論理ネットワーク）に通信可能に結合するように構成されてよい。
【００１４】
周辺機器128は、関連グラフィックス回路と共にディスプレイを含んでよい。加えて、一部の実施形態では、周辺機器128は、追加又は代替として、キーボード、マウス、オーディオ処理回路（例えば、増幅回路及び１つ以上のスピーカを含む）並びに／又は他の入出力機器、インタフェース機器及び／若しくは周辺機器を含んでよい。
【００１５】
一部の実施形態では、システム100は、１つ以上のアプリケーションプログラムを記憶及び／又は実行するように構成されるサブスクリプションサーバ114を含んでよい。このような実施形態では、コンピューティングデバイス104〜110は、シンクライアントデバイスとして動作してよい。図１の例示の実施形態において、サブスクリプションサーバ114は、プロセッサ150、Ｉ／Ｏサブシステム152、メモリ154、データストレージ156、通信回路162及び１つ以上の周辺機器158を備える。サブスクリプションサーバ114のコンポーネントは、コンピューティングデバイス104の対応するコンポーネントに類似してよく、その説明はサブスクリプションサーバ114の対応するコンポーネントに適用可能であるので、ここでは説明を明確にするために繰り返さない。
【００１６】
サブスクリプションサーバ114の通信回路162は、サブスクリプションサーバ114とコンピューティングデバイス104との間の通信を可能にする任意の数の機器及び回路を含んでよい。一部の実施形態では、サブスクリプションサーバ114は、１つ以上の周辺機器158を含んでもよい。そのような周辺機器158は、任意の数の追加の入出力機器、インタフェース機器、及び／又は、サーバ又はコンピューティングデバイスに共通して関連付けられる他の周辺機器を含んでよい。
【００１７】
図示された実施形態では、コンピューティングデバイス104〜110とサブスクリプションサーバ114との間の通信は、ネットワーク112を介して行われ、ネットワーク112は、１つ以上のネットワークスイッチ170に動作可能に結合されてよい。一実施形態では、ネットワーク112は有線及び／又は無線ネットワークを表してよく、また、例えばローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、バックボーンネットワーク、グローバルエリアネットワーク（ＧＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、或いはイントラネット、エクストラネット又はインターネット等の任意のそのようなコンピュータネットワークの集合（すなわち、World  Wide  Webを含む様々なアプリケーション又はサービスが実行される相互接続されたネットワークのグローバルシステム）であってよく、或いはそれらを含んでよい。一般に、コンピューティングデバイス104の通信回路130とサブスクリプションサーバ114の通信回路162は、通信プロトコルのいずれか１つ以上又は組合わせ、例えば有線ネットワーク通信プロトコル（例えばＴＣＰ／ＩＰ）、無線ネットワーク通信プロトコル（例えばWi  Wi-Fi（登録商標）、WiMAX）、セルラ通信プロトコル（例えば広帯域符号分割多元接続（W-CDMA））その他の通信プロトコルを用いて、互いに通信するように構成されてよい。このように、ネットワーク112は、コンピューティングデバイス104とサブスクリプションサーバ114との間の通信を容易にするために、追加のコンピュータ、ルータ、スイッチ等の任意の数の追加の機器を含んでよい。
【００１８】
ここで図２を参照する。使用時、コンピューティングデバイス104は、動作中に環境200を確立する。例示の環境200は、通信回路130を介してサブスクリプションサーバ114に送信するためのデバイスキーを含むデバイスキーモジュール202を含む。例示の実施形態では、モジュール202のデバイスキーは、コンピューティングデバイス104の保護されたメモリ領域（例えばメモリ124）に埋め込まれた固有のデバイスキーであってよく、コンピューティングデバイスを一意に識別し、とりわけ、コンピューティングデバイス104のプラットフォーム、ハードウェア機能及びハードウェアサブスクリプション情報に関する情報を提供する。例示の実施形態では、モジュール202のデバイスキーは、製造プロセス中に埋め込まれてよい。コンピューティングデバイス104がサブスクリプションサーバ114に通信可能に結合するとき、デバイスキーモジュール202は、コンピューティングデバイスハードウェア構成を通信するためにデバイスキーを送信し、サブスクリプションサーバがハードウェアサブスクリプションオプションを決定することができる。
【００１９】
例示の実施形態では、環境200はサブスクリプションモジュール204を含んでもよく、サブスクリプションモジュール204は、ヒューズモジュール206及びタイマモジュール208を含む。一部の実施形態では、サブスクリプションモジュール204は、ヒューズモジュール206のハードウェアサブスクリプションヒューズによって定義されるハードウェアサブスクリプション機能を含むＳｏＣとして実現されてよい。ヒューズモジュール206の例示のＳｏＣ構成は、プログラマブルリードオンリーメモリ（PROM）又はフィールドプログラマブルリードオンリメモリ（FPROM）又はワンタイムプログラマブル不揮発性メモリ（OTP  NVM）を含み、これは、各ビットの設定がヒューズ又はアンチヒューズによってロックされるデジタルメモリの一形態である。このようなデバイスは一種のROM（読出専用メモリ）であり、その中のデータが永続的であり変更できないことを意味する。ヒューズモジュール206のハードウェアサブスクリプション機能は、関連するシリコン及び／又はプラットフォームサブスクリプション機能の有効化を制御するために用いられる。一部の実施形態では、ヒューズモジュール206は、シリコンヒューズ、シリコンレジスタプログラム、プラットフォームハードウェアヒューズ、プラットフォームハードウェアレジスタプログラム等として実現されてよい。ハードウェアサブスクリプション機能をセキュアに有効化するために、ハードウェアサブスクリプションヒューズは、ＵＥＦＩモジュール等の認証済みモジュールを用いてプリブート環境にプログラムされる。
【００２０】
サブスクリプションモジュール204はまた、シリコン内のタイマモジュール208を利用して、定期的なハードウェアサブスクリプションモデルを有効化してもよい。使用時には、タイマモジュール208は、プリブートにカウントをロードすることによってサブスクリプション時間を追跡してよく、カウントは認証されたモジュールによってのみ変更されてよい。カウントは永続的であってよく、つまり、電源がオフになってもカウントが続行されてよい。カウントがロードされると、タイマモジュール208は、システムが動作している間にサブスクリプション時間をデクリメントし、カウントが終了するまで定期的なハードウェアサブスクリプションが利用可能となる。他の例示の実施形態では、サブスクリプションモジュール204は、ヒューズモジュール206及びタイマモジュール208の機能及び特徴をエミュレートするソフトウェアとして実現される。
【００２１】
図２の例示の環境200は更に、サブスクリプションサーバ114から受信されるブート（例えばＵＥＦＩ）カプセルを認証する認証モジュール210を備える。認証モジュール210は、例えば、暗号サービス交換（ＣＳＥ）認証モジュールとして実現されてよい。例示のブートカプセルは、カプセルヘッダ及びカプセルボリュームを含む。カプセルヘッダは、ＯＳに存在するアプリケーションによって用いられるカプセルの一部であり、ＯＳに存在するアプリケーションがカプセルの内容をエンドユーザに説明することを可能にする情報を含む情報テキスト等の情報を含んでよい。テキストはＵｎｉコードでもよく、複数の異なる言語をサポートすることができる。ブートカプセルは更に、ＯＥＭ（Original  Equipment  Manufacturer）特有の情報も含んでよい。カプセルボリュームは、標準的なファームウェアボリュームと同じ基本構造を有してよい。しかしながら、カプセルボリュームは、より高度に拡張可能なファームウェアボリュームフォーマットよりも予測可能に定義されたフォーマットを有し、ファームウェアボリュームイメージセクションを含むファームウェアボリュームファイルと構成結果ファイルとを含んでよい。構成結果ファイルは、ＯＳに存在するアプリケーションによって書き込まれてよく、セットアッププログラムからの結果を提供する。カプセルヘッダ内のフラグは、カプセルによるこのファイルのサポートを示す。
【００２２】
認証モジュール210は、例示の実施形態では、ブート中（例えば図５のリブート416、以下に説明する）にサブスクリプションサーバ114から受信されるブートカプセル（例えばＵＥＦＩカプセル）のペイロードを認証するように構成される。認証モジュール210は、サブスクリプションサーバ114の暗号サービスエンジンモジュール305と双方向に結合されてよく、暗号サービスエンジンモジュール305は、ブートカプセルを認証するために要求される暗号サービスを提供するように構成される。暗号サービスには、限定ではないが、暗号化と復号化（例えば対称ブロック暗号、汎用暗号モード、ストリーム暗号モード、公開鍵暗号、公開鍵システムのパディングスキーム、鍵合意スキーム、楕円曲線暗号、一方向ハッシュ関数、メッセージ認証コード、ハッシュ関数に基づく暗号構造、擬似乱数ジェネレータ、パスワードベースのキー導出関数等）、ハッシング操作（例えばＳＨＡ−１、ＨＭＡＣ等）、ＲＳＡやＤＳＡ等の署名・検証操作を含んでよい。ブートカプセルがサブスクリプションサーバ114からセキュアペイロードと共に受信されると、認証モジュール210はセキュアペイロードを処理して、コンピューティングデバイス104のブートカプセルを認可する。認可されると、ブートカプセルがブートのたびに使用できるように、ＣＳＥセキュアストレージでペイロードの展開が実行される。
【００２３】
ブートカプセルは、ブートカプセル更新メカニズム（例えばＵＥＦＩ更新メカニズム）を用いてコンピューティングデバイス104上のサブスクリプションモジュール204によってインストールされてよい。例示の実施形態では特別なブートパスが作成され、カプセルは、ＯＳ起動時にシステムメモリにロードされ、次にプロセッサの初期化又はウォームリセットに続いて実行される。ファームウェアをプログラミングする代わりに、カプセル内のブートドライバ（例えば、カプセルを操作することを担うドライバ実行環境（ＤＸＥ）ドライバ）は、プリブート環境における認証のために、ハードウェア機能サブスクリプションを含むブートカプセルを認証モジュール210に提供する。認証モジュール210は、デバイスキーと共にブートカプセルを認証し、認証モジュール210のみにアクセス可能なセキュアストレージ内のリセット時に必要とされるサブスクリプション時間、ヒューズサンプリング及び／又はセキュア・エージェント・インフラストラクチャ（ＳＡＩ）通信に関する情報を保存する。その結果は、ブート機構（例えばＵＥＦＩブート機構）を用いてサブスクリプションサーバ114に返信されて、更新状況を報告する。例示の実施形態では、コンピューティングデバイス104のユーザを、「App  Store」のような経験を提供するトランザクションの適切な状態でプロンプトすることができる。各電源投入時に、ホストプロセッサリセットを実行する前に、認証モジュール210は、セキュアストレージ内の有効なハードウェアサブスクリプション機能をチェックし、リセット時のヒューズ又はターゲットシリコンへのＳＡＩ通信をエミュレートし、ターゲットシリコンは、プラットフォームのリセットから有効なハードウェアサブスクリプション機能で開始することができる。この機構は、試用期間、定期購読及び返品ポリシー又は再開ポリシーを実現するために、ハードウェアサブスクリプションモジュール204によって示されるハードウェアサブスクリプション機能の有効化及び無効化を可能にする。
【００２４】
なお、一部の実施形態では、デバイスキーモジュール202は、ハードウェアサブスクリプションサービスがコンピューティングデバイス104に提供されることを可能にするために、固有のデバイスキーのみからサブスクリプションサーバ114に十分な情報を提供することができる。そのような場合、ヒューズモジュール206及びタイマモジュール208の使用は任意であってよい。一部の例示の実施形態では、デバイスキーモジュール202は、サブスクリプションモジュール204と一体化されてよい。更に、環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア又はそれらの組合わせとして実現されてよい。例えば、環境200の様々なモジュール、ロジックその他のコンポーネントは、コンピューティングデバイス104のプロセッサ120その他のハードウェアコンポーネントの一部を形成するか、そうでなければそれらによって確立されてよい。例えば、一部の実施形態では、環境200の１つ以上のモジュールは、回路（例えば認証モジュール等）として実現されてよい。
【００２５】
ここで図３を参照する。使用時には、サブスクリプションサーバ114は動作中に環境300を確立する。例示の環境300はシステムサブスクリプションモジュール302を含み、システムサブスクリプションモジュール302は、コンピューティングデバイス104〜110のいずれかに対するハードウェアサブスクリプションの管理、配布及び認可を担う。サブスクリプションサーバ114は、（例えばデバイスキーを介して）コンピューティングデバイスハードウェア構成データを受信すると、ハードウェア情報データベース303内のハードウェア構成データをルックアップして、正確なコンピューティングデバイスプラットフォーム情報、ハードウェア機能及びサブスクリプション情報を決定する。決定されると、サブスクリプションモジュール302は、ハードウェア機能データベース304からハードウェアサブスクリプションオプションを取得する。ハードウェアサブスクリプションオプションが組み立てられると、それらは、「App  Store」等のものと同様のインタフェースを介してユーザに提示されるか、或いはコンピューティングデバイス104に直接通信されてよい。
【００２６】
コンピューティングデバイス104のユーザが１つ以上のハードウェアサブスクリプションオプションを選択及び／又は購入すると、システムサブスクリプションモジュール302は、選択／購入された各機能に対するハードウェアサブスクリプション認可として機能するブート（例えばＵＥＦＩ）ハードウェアサブスクリプションカプセルを生成し、暗号サービスエンジンモジュール305から提供されるビルドペイロードと共に各カプセルを送信し、コンピューティングデバイス104にインストールするためにカプセルを保護して、ハードウェア機能を有効化及び／又は変更する。なお、環境300の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア又はそれらの組合わせとして実現されてよい。例えば、環境300の様々なモジュール、ロジックその他のコンポーネントは、サブスクリプションサーバ114のプロセッサ150その他のハードウェアコンポーネントの一部を形成してよく、そうでなければそれらによって確立されてよい。例えば、一部の実施形態では、環境300の１つ以上のモジュールは、回路（例えばシステムサブスクリプションモジュール等）として実現されてよい。
【００２７】
ここで図４を参照する。コンピューティングデバイス104は、動作中にハードウェアサブスクリプション機能を認証及び有効化するための方法400を実行してよい。方法400はブロック402から始まり、コンピューティングデバイス104が、ネットワーク112を介してサブスクリプションサーバ402に接続する。接続されると、コンピュータノード104は、ブロック404において、コンピューティングデバイス104のハードウェア構成を送信する。上述のように、コンピューティングデバイス104のハードウェア構成は、デバイスキーによって提供されてよく、又はサブスクリプションモジュール204のヒューズモジュール206によって提供されるデータから提供されてよい。ハードウェア構成がサブスクリプションサーバ114によって処理され、ハードウェアサブスクリプションオプションがユーザに提示されると、ブロック406において、ユーザは、ハードウェアサブスクリプション機能オプションを選択／購入することができる。次に、ブロック408において、コンピューティングデバイス104がブートサブスクリプションカプセルを受信する。ブートサブスクリプションカプセルは、ブロック410でコンピューティングデバイス104内のシリコンをプログラムするために、ハードウェアサブスクリプション認可として用いられる。プログラムされると、ブロック412においてコンピューティングデバイス104がリブートし、その時点で、ブロック414において、認証モジュール210は、プリブートにおいてハードウェアサブスクリプションを認証する。
【００２８】
ここで図５を参照する。コンピューティングデバイス104は、方法400の実行を続ける。認証後、ブロック416において、コンピューティングデバイス102内でハードウェア機能サブスクリプションが有効化され、ブロック418において、コンピューティングデバイス104が再びリブートされ、その時点で、ブロック420において、コンピューティングデバイス104が、サブスクライブされたハードウェア機能を用いて動作可能となる。一部の実施形態では、認証モジュール210は、各リブート時に、有効化され且つ／又は動作可能なハードウェアサブスクリプション機能を送信してよい。一部の実施形態では、ハードウェアサブスクリプション機能は、時間限定サブスクリプションに基づいてよい。決定ブロック422において、サブスクリプションが時間制限されているか否かの決定が行われる。そうでない場合（「NO」）、ブロック420において、ハードウェアサブスクリプション機能がコンピューティングデバイス104上で動作を続ける。ハードウェアサブスクリプション機能が時間ベースである場合（「YES」）、決定ブロック424は、ハードウェアサブスクリプション機能に関連付けられたタイマが満了したか否かを決定する。タイマが満了していない場合（「NO」）、ブロック420において、ハードウェアサブスクリプション機能がコンピューティングデバイス104上で動作を続ける。タイマが満了している場合（「YES」）、ブロック426においてハードウェアサブスクリプション機能が無効化される。無効化されると、コンピューティングデバイス104は、ブロック406において、無効化された機能の再選択／再購入を要求され、新しいブートカプセルの認証及び有効化に進んで、ハードウェアサブスクリプション機能を元に戻すことができる。
【００２９】
ここで図６を参照する。サブスクリプションサーバ114は、コンピュータノード104のハードウェアサブスクリプション機能を提供及び認証するための方法600を実行してよい。方法600はブロック602から始まり、ブロック602において、サブスクリプションサーバ602は、利用可能なハードウェアサブスクリプション機能をハードウェア機能データベース304にロードする。ブロック604において、サブスクリプションサーバ114は、コンピューティングデバイス104のハードウェア構成を（例えばデバイスキーを介して）受信する。ブロック606において、受信されたハードウェア構成に基づいて、サブスクリプションサーバ114は、ハードウェアサブスクリプションオプションを選択し、コンピューティングデバイス104に送信する。コンピューティングデバイス104が１つ以上のハードウェアサブスクリプションオプションを選択／購入した後、ブロック608において、サブスクリプションサーバ114は、選択されたハードウェアサブスクリプションオプションをコンピューティングデバイス104から受信する。ブロック610において、選択に基づいて、サブスクリプションサーバは、（例えば暗号サービスエンジンモジュール305を用いて）ペイロードを構築し、ハードウェアサブスクリプション認可として機能するブートハードウェアサブスクリプションカプセルをコンピューティングデバイス104に送信する。ブロック612において、サブスクリプションサーバ114は、使用される認証のタイプに応じて、コンピューティングデバイス104のハードウェアサブスクリプション機能（例えば、図４のブロック414）を認証してよい。
【００３０】
ここで図７を参照する。サブスクリプションサーバ114とコンピューティングデバイス104との間のハードウェアサブスクリプション選択プロセスの少なくとも１つの実施形態の簡略図が提供される。コンピュータデバイス104からハードウェア構成データを受信した後、サブスクリプションサーバ114はハードウェアサブスクリプション機能オプション702を決定し、ハードウェアサブスクリプション機能オプションＳ１〜Ｓ６（704〜714）に至る。図から分かるように、ハードウェアサブスクリプション機能オプションＳ１（704）、Ｓ２（706）及びＳ５（712）は、コンピューティングデバイス104上で既に有効化されており（図中、網掛けで示されている）、一方、ハードウェアサブスクリプション機能オプションＳ４（710）及びＳ６（714）は有効化されていないが、選択／購入に利用可能である。ハードウェアサブスクリプション機能オプションＳ３（708）は、実施形態では、選択／購入に利用できないものとして示されている。ハードウェアサブスクリプション機能オプションは、714でコンピューティングデバイス104に提示され、ユーザは、ハードウェアサブスクリプション機能オプションＳ４（710）及びＳ６（714）を選択する。選択されると、するために、図４〜６に関連して上述された方法ステップが実行されて、ハードウェアサブスクリプション機能718が提供される。選択されたハードウェア機能オプションＳ４（710）及びＳ６（714）は、ここで、以前に有効化された機能Ｓ１（704）、Ｓ２（706）、Ｓ５（712）と共に有効であり動作している。
【００３１】
例
本明細書に開示される技術の例示の例を以下に示す。技術の実施形態は、以下に記載する例の任意の１つ以上及び任意の組合わせを含んでよい。
【００３２】
例１は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のためのコンピューティングデバイスを含む。該コンピューティングデバイスは、デバイスキーをネットワークに送信するサブスクリプションモジュールであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含み、サブスクリプションモジュールは、送信されたデバイスキーに応答してハードウェアサブスクリプション認可を受信し、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためにコンピューティングデバイスによって使用可能なブートカプセルを含む、サブスクリプションモジュールと、サブスクリプションモジュールに通信可能に結合されて、ブートカプセルを認証する認証モジュールであって、サブスクリプションモジュールは、認証されたブートカプセルをコンピューティングデバイスのセキュアなメモリにインストールして、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの使用を認可する、認証モジュールと、を備える。
【００３３】
例２は、例１の主題を含む。ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（Unified  Extensible  Firmware  Interface；ＵＥＦＩ）カプセルを含む。
【００３４】
例３は、例１と例２のいずれかの主題を含む。サブスクリプションモジュールは、ＵＥＦＩカプセルによって指定されるブートパスを用いて、コンピューティングデバイスをリブートする。
【００３５】
例４は、例１〜３のいずれかの主題を含む。ＵＥＦＩカプセルのＵＥＦＩドライバは、ＵＥＦＩカプセルを認証モジュールに提供して、プリブート環境においてＵＥＦＩカプセルを認証する。
【００３６】
例５は、例１〜４のいずれかの主題を含む。認証モジュールは、ハードウェアサブスクリプション認可をセキュアなメモリに保存し、ハードウェアコンポーネントの各使用について、保存されたハードウェアサブスクリプション認可を認証する。
【００３７】
例６は、例１〜５のいずれかの主題を含む。ハードウェア構成認可は、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも１つを含む。
【００３８】
例７は、例１〜６のいずれかの主題を含む。ハードウェアコンポーネントは、シリコンベースのコンポーネントを含む。
【００３９】
例８は、例１〜７のいずれかの主題を含む。ハードウェアコンポーネントは、（ｉ）動作中に用いられる複数のプロセッサコアを含むプロセッサと、（ｉｉ）変更可能なプロセッサ動作周波数を有するプロセッサと、（ｉｉ）変更可能なキャッシュサイズメモリと、（ｉｉｉ）変更可能なレーンを有するPCI  Expressグラフィックス（ＰＥＧ）ポートと、（ｉｖ）ジェスチャ感知装置と、（ｖ）指紋感知装置と、（ｖｉ）外部周辺機器への接続を可能にするハードウェアインタフェースとのうち１つを含む。
【００４０】
例９は、例１〜８のいずれかの主題を含む。ハードウェアサブスクリプション認可は、ハードウェアサブスクリプション信号認可によって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む。
【００４１】
例１０は、例１〜９のいずれかの主題を含む。サブスクリプションモジュールは、時間データが失効すると、ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用を無効にする。
【００４２】
例１１は、例１〜１０のいずれかの主題を含む。コンピューティングデバイスは、ハードウェアコンポーネントについてのハードウェアサブスクリプション認可の受信の前に、ハードウェアコンポーネントを選択する。
【００４３】
例１２は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用のためのサブスクリプションサーバを含む。サブスクリプションサーバは、ネットワークからデバイスキーを受信するシステムサブスクリプションモジュールであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含み、システムサブスクリプションモジュールは、受信されたデバイスキーに基づいてハードウェアサブスクリプション認可を送信し、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、システムサブスクリプションモジュールと、ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供する暗号サービスエンジンモジュールであって、暗号サービスエンジンは、コンピューティングデバイスによるブートカプセルのインストールを認可する、暗号サービスエンジンモジュールと、を含む。
【００４４】
例１３は、例１２の主題を含む。ハードウェア構成データは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも１つを含む。
【００４５】
例１４は、例１２と例１３のいずれかの主題を含む。システムサブスクリプションモジュールは、ハードウェア構成データに基づいて、ハードウェアサブスクリプション認可について１以上のハードウェアコンポーネントオプションを決定する。
【００４６】
例１５は、例１２〜１４のいずれかの主題を含む。システムサブスクリプションモジュールは、１以上のハードウェアコンポーネントオプションをコンピューティングデバイスに通信し、１以上のハードウェアコンポーネントオプションの選択をコンピューティングデバイスから受信する。
【００４７】
例１６は、例１２〜１５のいずれかの主題を含む。システムサブスクリプションモジュールは、選択されたハードウェアコンポーネントオプションに基づいて、ハードウェアサブスクリプション認可を送信する。
【００４８】
例１７は、例１２〜１６のいずれかの主題を含む。ブートカプセルは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（Unified  Extensible  Firmware  Interface；ＵＥＦＩ）カプセルを含む。
【００４９】
例１８は、例１２〜１７のいずれかの主題を含む。ＵＥＦＩカプセルは、コンピューティングデバイスについてブートパスを指定する。
【００５０】
例１９は、例１２〜１８のいずれかの主題を含む。ＵＥＦＩカプセルは、プリブート環境においてＵＥＦＩカプセルを認証するＵＥＦＩドライバを含む。
【００５１】
例２０は、例１２〜１９のいずれかの主題を含む。ハードウェアコンポーネントは、シリコンベースのコンポーネントを含む。
【００５２】
例２１は、例１２〜２０のいずれかの主題を含む。ハードウェアコンポーネントは、（ｉ）動作中に用いられる複数のプロセッサコアを含むプロセッサと、（ｉｉ）変更可能なプロセッサ動作周波数を有するプロセッサと、（ｉｉ）変更可能なキャッシュサイズメモリと、（ｉｉｉ）変更可能なレーンを有するPCI  Expressグラフィックス（ＰＥＧ）ポートと、（ｉｖ）ジェスチャ感知装置と、（ｖ）指紋感知装置と、（ｖｉ）外部周辺機器への接続を可能にするハードウェアインタフェースとのうち１つを含む。
【００５３】
例２２は、例１２〜２１のいずれかの主題を含む。ハードウェアサブスクリプション認可は、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを含む。
【００５４】
例２３は、例１２〜２２のいずれかの主題を含む。ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用は、時間データが失効すると無効化される。
【００５５】
例２４は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプション方式の使用の方法を含む。本方法は、サブスクリプションモジュールが、デバイスキーをネットワークに送信するステップであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、サブスクリプションモジュールが、送信されたデバイスキーに応答してハードウェアサブスクリプション認可を受信するステップであって、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためにコンピューティングデバイスによって使用可能なブートカプセルを含む、ステップと、認証モジュールが、ブートカプセルを認証するステップと、サブスクリプションモジュールが、認証されたブートカプセルをコンピューティングデバイスのセキュアなメモリにインストールして、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの使用を認可するステップと、を含む。
【００５６】
例２５は、例２４の主題を含む。ハードウェアサブスクリプション認可を受信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）カプセルを含むブートカプセルを受信するステップを含む。
【００５７】
例２６は、例２４と例２５のいずれかの主題を含む。更に、サブスクリプションモジュールが、ＵＥＦＩカプセルによって指定されるブートパスを用いて、コンピューティングデバイスをリブートするステップを含む。
【００５８】
例２７は、例２４〜２６のいずれかの主題を含む。更に、ＵＥＦＩカプセルのＵＥＦＩドライバが、ＵＥＦＩカプセルを認証モジュールに提供して、プリブート環境においてＵＥＦＩカプセルを認証するステップを含む。
【００５９】
例２８は、例２４〜２７のいずれかの主題を含む。更に、認証モジュールが、ハードウェアサブスクリプション認可をセキュアなメモリに保存し、ハードウェアコンポーネントの各使用について、保存されたハードウェアサブスクリプション認可を認証するステップを含む。
【００６０】
例２９は、例２４〜２８のいずれかの主題を含む。デバイスキーを送信するステップは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも１つを含むハードウェア構成データを送信するステップを含む。
【００６１】
例３０は、例２４〜２９のいずれかの主題を含む。ハードウェアサブスクリプション認可を受信してハードウェアコンポーネントの動作を有効化又は変更するステップは、シリコンベースのコンポーネントの動作を有効化又は変更するためのデータを含む。
【００６２】
例３１は、例２４〜３０のいずれかの主題を含む。ハードウェアサブスクリプション認可を受信してハードウェアコンポーネントの動作を有効化又は変更するステップは、（ｉ）動作中に用いられる複数のプロセッサコアを含むプロセッサと、（ｉｉ）変更可能なプロセッサ動作周波数を有するプロセッサと、（ｉｉ）変更可能なキャッシュサイズメモリと、（ｉｉｉ）変更可能なレーンを有するPCI  Expressグラフィックス（ＰＥＧ）ポートと、（ｉｖ）ジェスチャ感知装置と、（ｖ）指紋感知装置と、（ｖｉ）外部周辺機器への接続を可能にするハードウェアインタフェースとのうち少なくとも１つの動作を有効化又は変更するためのデータを含む。
【００６３】
例３２は、例２４〜３１のいずれかの主題を含む。ハードウェアコンポーネントの動作を有効化又は変更するためのデータを含むハードウェアサブスクリプション認可を受信するステップは、ハードウェアサブスクリプション信号認可によって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを受信するステップを含む。
【００６４】
例３３は、例２４〜３２のいずれかの主題を含む。更に、時間データが失効すると、サブスクリプションモジュールが、ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用を無効化するステップを含む。
【００６５】
例３４は、例２４〜３３のいずれかの主題を含む。更に、受信前にハードウェアサブスクリプション認可を選択するコンピューティングデバイスから選択信号を受信するステップを含む。
【００６６】
例３５は、コンピューティングデバイス上のハードウェアコンポーネントのサブスクリプションサーバによるサブスクリプション方式の使用を提供する方法を含む。本方法は、システムサブスクリプションモジュールが、ネットワークからデバイスキーを受信するステップであって、デバイスキーは、コンピューティングデバイスに関するハードウェア構成データを含む、ステップと、システムサブスクリプションモジュールが、受信されたデバイスキーに基づいてハードウェアサブスクリプション認可を送信するステップであって、ハードウェアサブスクリプション認可は、コンピューティングデバイスのハードウェアコンポーネントの動作を有効化又は変更するためのブートカプセルを含む、ステップと、暗号サービスエンジンモジュールが、ハードウェアサブスクリプション認可と共に送信するセキュアなペイロードを提供するステップであって、暗号サービスエンジンは、コンピューティングデバイスによるブートカプセルのインストールを認可する、ステップと、を含む。
【００６７】
例３６は、例３５の主題を含む。更に、ネットワークからデバイスキーを受信するステップは、コンピューティングデバイス・プラットフォーム情報、ハードウェアコンポーネント機能及びサブスクリプション情報のうち少なくとも１つを含むハードウェア構成データを受信するステップを含む。
【００６８】
例３７は、例３５と例３６のいずれかの主題を含む。更に、システムサブスクリプションモジュールが、ハードウェア構成データに基づいて、ハードウェアサブスクリプション認可について１以上のハードウェアコンポーネントオプションを決定するステップを含む。
【００６９】
例３８は、例３４〜３７のいずれかの主題を含む。更に、システムサブスクリプションモジュールが、１以上のハードウェアコンポーネントオプションをコンピューティングデバイスに通信し、コンピューティングデバイスから１以上のハードウェアコンポーネントオプションの選択を受信するステップを含む。
【００７０】
例３９は、例３４〜３８のいずれかの主題を含む。更に、システムサブスクリプションモジュールが、選択されたハードウェアコンポーネントオプションに基づいて、ハードウェアサブスクリプション認可を送信するステップを含む。
【００７１】
例４０は、例３４〜３９のいずれかの主題を含む。ハードウェアサブスクリプション認可を送信するステップは、ユニファイド・エクステンシブル・ファームウェア・インタフェース（ＵＥＦＩ）カプセルを含むブートカプセルを送信するステップを含む。
【００７２】
例４１は、例３４〜４０のいずれかの主題を含む。ＵＥＦＩカプセルを含むブートカプセルを送信するステップは、コンピューティングデバイスについてブートパスを指定するＵＥＦＩカプセルを送信するステップを含む。
【００７３】
例４２は、例３４〜４１のいずれかの主題を含む。ＵＥＦＩカプセルを送信するステップは、ＵＥＦＩドライバを含むＵＥＦＩカプセルを送信して、プリブート環境においてＵＥＦＩカプセルを認証するステップを含む。
【００７４】
例４２は、例３４〜４２のいずれかの主題を含む。ハードウェアコンポーネントの動作を有効化又は変更するためにハードウェアサブスクリプション認可を送信するステップは、ハードウェアコンポーネントの動作を有効化又は変更するためのデータを含み、シリコンベースのコンポーネントを含むハードウェアコンポーネントの動作を有効化又は変更するためのデータを含む。
【００７５】
例４３は、例３４〜４３のいずれかの主題を含む。ハードウェアコンポーネントの動作を有効化又は変更するためにハードウェアサブスクリプション認可を送信するステップは、（ｉ）動作中に用いられる複数のプロセッサコアを含むプロセッサと、（ｉｉ）変更可能なプロセッサ動作周波数を有するプロセッサと、（ｉｉ）変更可能なキャッシュサイズメモリと、（ｉｉｉ）変更可能なレーンを有するPCI  Expressグラフィックス（ＰＥＧ）ポートと、（ｉｖ）ジェスチャ感知装置と、（ｖ）指紋感知装置と、（ｖｉ）外部周辺機器への接続を可能にするハードウェアインタフェースとのうち少なくとも１つの動作を有効化又は変更するデータを含む。
【００７６】
例４５は、例３４〜４３のいずれかの主題を含む。ハードウェアサブスクリプション認可を送信するステップは、ハードウェアサブスクリプション認可データによって定義されたハードウェアコンポーネントの認可された使用が許可される時間を制限するための時間データを送信するステップを含む。
【００７７】
例４６は、例３４〜４５のいずれかの主題を含む。更に、時間データが失効すると、システムサブスクリプションモジュールが、ハードウェアサブスクリプション認可によって定義されたハードウェアコンポーネントの認可された使用を無効化するステップを含む。
【００７８】
例４７は、コンピューティングデバイスによる実行に応答して、コンピューティングデバイスに、例２４〜４６のいずれか１つに記載の方法を実行させる複数の命令を含む、１つ以上の機械可読記憶媒体を含む。
【００７９】
例４８は、コンピューティングデバイスのネットワーキングデバイスのファームウェアを更新するためのコンピューティングデバイスを含み、コンピューティングデバイスは、例２４〜４６のいずれか１つに記載の方法を実行する手段を備える。
【図１】
0006661641.tif 000002
【図２】
0006661641.tif 000003
【図３】
0006661641.tif 000004
【図４】
0006661641.tif 000005
【図５】
0006661641.tif 000006
【図６】
0006661641.tif 000007
【図７】
0006661641.tif 000008