特許第5767750号(P5767750)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インテル・コーポレーションの特許一覧

特許5767750管理エンジンを利用したコンポーネント更新
<>
  • 特許5767750-管理エンジンを利用したコンポーネント更新 図000002
  • 特許5767750-管理エンジンを利用したコンポーネント更新 図000003
  • 特許5767750-管理エンジンを利用したコンポーネント更新 図000004
  • 特許5767750-管理エンジンを利用したコンポーネント更新 図000005
  • 特許5767750-管理エンジンを利用したコンポーネント更新 図000006
  • 特許5767750-管理エンジンを利用したコンポーネント更新 図000007
  • 特許5767750-管理エンジンを利用したコンポーネント更新 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5767750
(24)【登録日】2015年6月26日
(45)【発行日】2015年8月19日
(54)【発明の名称】管理エンジンを利用したコンポーネント更新
(51)【国際特許分類】
   G06F 11/00 20060101AFI20150730BHJP
   G06F 9/445 20060101ALI20150730BHJP
   G06F 21/57 20130101ALI20150730BHJP
【FI】
   G06F9/06 630A
   G06F9/06 610K
   G06F21/57 320
【請求項の数】22
【全頁数】23
(21)【出願番号】特願2014-519229(P2014-519229)
(86)(22)【出願日】2012年7月2日
(65)【公表番号】特表2014-523035(P2014-523035A)
(43)【公表日】2014年9月8日
(86)【国際出願番号】US2012045273
(87)【国際公開番号】WO2013006557
(87)【国際公開日】20130110
【審査請求日】2014年2月5日
(31)【優先権主張番号】13/175,834
(32)【優先日】2011年7月2日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】シャロニ、イタマル
(72)【発明者】
【氏名】ディアマント、ニムロッド
【審査官】 石川 亮
(56)【参考文献】
【文献】 米国特許出願公開第2010/0115256(US,A1)
【文献】 特開2011−118873(JP,A)
【文献】 特開2010−191946(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/00
G06F 9/445
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスにおいて、前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを受信する段階と、
前記ブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する段階と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する段階と、
前記コンピューティングデバイスを再起動する段階と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する段階と
を備え
前記ブータブルイメージを格納する段階は、前記ブータブルイメージを上位メモリ領域(UMA)位置に格納する段階を有する、方法。
【請求項2】
前記コンポーネントに対して前記更新を適用する段階は、
前記コンピューティングデバイスの管理エンジンで、統合デバイスエレクトロニクスリダイレクト要求(IDE−R要求)を受信する段階と、
前記ブータブルイメージを利用して前記IDE−R要求に応答する段階と
を有する、請求項1に記載の方法。
【請求項3】
コンピューティングデバイスにおいて、前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを受信する段階と、
前記ブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する段階と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する段階と、
前記コンピューティングデバイスを再起動する段階と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する段階と
を備え、
前記コンポーネントに対して前記更新を適用する段階は、
前記コンピューティングデバイスの管理エンジンで、統合デバイスエレクトロニクスリダイレクト要求(IDE−R要求)を受信する段階と、
前記ブータブルイメージを利用して前記IDE−R要求に応答する段階と
を有する、方法。
【請求項4】
前記ブータブルイメージを受信する段階は、
デジタル署名されたブータブルイメージを更新サーバから受信する段階と、
前記ブータブルイメージの格納前に前記ブータブルイメージが前記更新サーバによってデジタル署名されていることを確認する段階と
を備える、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記ブータブルイメージを格納する段階は、
前記ブータブルイメージを、前記コンピューティングデバイスの管理エンジンの専用メモリ位置に格納する段階を有し、
前記専用メモリ位置は、前記コンピューティングデバイスの一次プロセッサによってアクセスできない、請求項1から4のいずれか一項に記載の方法。
【請求項6】
コンピューティングデバイスにおいて、前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを受信する段階と、
前記ブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する段階と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する段階と、
前記コンピューティングデバイスを再起動する段階と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する段階と
を備え、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する段階は、
統合デバイスエレクトロニクスリダイレクト(IDE−R)用に前記コンピューティングデバイスの基本入出力システム(BIOS)を設定する段階を有する、方法。
【請求項7】
前記コンポーネントに対して前記更新を適用する段階は、
前記ブータブルイメージを利用してIDE−R要求に応答する段階を有する、請求項に記載の方法。
【請求項8】
前記IDE−R要求に応答する段階は、
前記コンピューティングデバイスの管理エンジンで前記BIOSからのIDE−R要求を受信する段階と、
前記IDE−R要求に対して、前記管理エンジンから、前記ブータブルイメージのデータで応答する段階と
を有する、請求項に記載の方法。
【請求項9】
前記コンポーネントに対して前記更新を適用する段階は、
前記コンポーネントのファームウェアを更新する段階を有する、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記コンポーネントに対して前記更新を適用する段階は、
前記更新をハードディスクドライブに適用する段階を有する、請求項1から8のいずれか一項に記載の方法。
【請求項11】
コンピューティングデバイスに、
前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する手順と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する手順と、
前記ブータブルイメージを利用して前記コンピューティングデバイスを再起動する手順と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する手順と
を実行させ
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する手順は、統合デバイスエレクトロニクスリダイレクト(IDE−R)用に前記コンピューティングデバイスの基本入出力システム(BIOS)を設定する手順を有する、プログラム。
【請求項12】
前記コンポーネントに対して前記更新を適用する手順は、
前記ブータブルイメージを利用してIDE−R要求に応答する段階を有する、請求項11に記載のプログラム。
【請求項13】
前記IDE−R要求に応答する段階は、
前記コンピューティングデバイスの管理エンジンで前記BIOSからのIDE−R要求を受信して、前記IDE−R要求に対して、前記管理エンジンから、前記ブータブルイメージのデータで応答する手順を含む、請求項12に記載のプログラム。
【請求項14】
前記コンポーネントに対して前記更新を適用する手順は、
前記コンピューティングデバイスの管理エンジンで、統合デバイスエレクトロニクスリダイレクト要求(IDE−R要求)を受信する手順と、
前記ブータブルイメージを利用して前記IDE−R要求に応答する手順と
を有する、請求項11から13のいずれか一項に記載のプログラム。
【請求項15】
コンピューティングデバイスに、
前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する手順と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する手順と、
前記ブータブルイメージを利用して前記コンピューティングデバイスを再起動する手順と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する手順と
を実行させ、
前記コンポーネントに対して前記更新を適用する手順は、
前記コンピューティングデバイスの管理エンジンで、統合デバイスエレクトロニクスリダイレクト要求(IDE−R要求)を受信する手順と、
前記ブータブルイメージを利用して前記IDE−R要求に応答する手順と
を有する、プログラム。
【請求項16】
コンピューティングデバイスに、
前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する手順と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する手順と、
前記ブータブルイメージを利用して前記コンピューティングデバイスを再起動する手順と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する手順と
を実行させ、
前記ブータブルイメージを格納する手順は、前記ブータブルイメージを上位メモリ領域(UMA)位置に格納する手順を有する、プログラム。
【請求項17】
前記コンポーネントに対して前記更新を適用する手順は、
前記コンポーネントのファームウェアを更新する手順を有する、請求項11から16のいずれか一項に記載のプログラム。
【請求項18】
前記コンポーネントに対して前記更新を適用する手順は、
前記更新をハードディスクドライブに適用する手順を有する、請求項11から16のいずれか一項に記載のプログラム。
【請求項19】
コンピューティングデバイスであって、
起動デバイスと、
前記起動デバイスに対して起動要求を行う一次プロセッサと、
前記コンピューティングデバイスのコンポーネントのための更新を含むブータブルイメージを格納するセキュアなメモリ位置を有するローカルメモリデバイスと、
二次プロセッサを有し、前記起動デバイスからの前記一次プロセッサの前記起動要求を前記ブータブルイメージにリダイレクトすることで、前記更新を適用する管理エンジンと
を備え、
前記更新を適用することは、統合デバイスエレクトロニクスリダイレクト(IDE−R)用に前記コンピューティングデバイスの基本入出力システム(BIOS)を設定することを有する、コンピューティングデバイス。
【請求項20】
コンピューティングデバイスであって、
起動デバイスと、
前記起動デバイスに対して起動要求を行う一次プロセッサと、
前記コンピューティングデバイスのコンポーネントのための更新を含むブータブルイメージを格納するセキュアなメモリ位置を有するローカルメモリデバイスと、
二次プロセッサを有し、前記起動デバイスからの前記一次プロセッサの前記起動要求を前記ブータブルイメージにリダイレクトすることで、前記更新を適用する管理エンジンと
を備え
前記ローカルメモリデバイスは、前記ブータブルイメージを上位メモリ領域(UMA)位置に格納する、コンピューティングデバイス。
【請求項21】
コンピューティングデバイスであって、
起動デバイスと、
前記起動デバイスに対して起動要求を行う一次プロセッサと、
前記コンピューティングデバイスのコンポーネントのための更新を含むブータブルイメージを格納するセキュアなメモリ位置を有するローカルメモリデバイスと、
二次プロセッサを有し、前記起動デバイスからの前記一次プロセッサの前記起動要求を前記ブータブルイメージにリダイレクトすることで、前記更新を適用する管理エンジンと
を備え、
前記更新を適用することは、前記コンピューティングデバイスの管理エンジンで、統合デバイスエレクトロニクスリダイレクト要求(IDE−R要求)を受信することと、前記ブータブルイメージを利用して前記IDE−R要求に応答することとを有する、コンピューティングデバイス。
【請求項22】
前記起動デバイスはハードディスクドライブであり、
前記更新は、前記ハードディスクドライブのファームウェアに対する更新である、請求項19から21のいずれか一項に記載のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
殆どのコンピューティングデバイスはファームウェアを含んでおり、ファームウェアは、コンピューティングデバイスのコンポーネントの内部デバイス機能を制御するプログラムおよびデータ構造を含んでいる。ファームウェアは、EPROM等のフラッシュ可能メモリデバイスに格納されている場合がある。フラッシュ可能メモリデバイスを利用すると、新たなファームウェアをもつメモリデバイスをフラッシュしてファームウェアの更新を可能としながらも、電源が利用不可能なときには既存のファームウェアを保存することができる。ファームウェアの更新プロセスは、「コンポーネント更新」または「プラットフォーム更新」等として称されることがあり、プラットフォームとは、コンピューティングデバイスのコンポーネントのうち1以上のことを指す。ファームウェア更新中に、更新中のコンポーネントは動作不能にすべきである場合がある。コンポーネントが自身のファームウェアに対してアクセスできないので、コンポーネントは基本機能を実行することができない。
【0002】
多くのコンピューティングデバイスが、コンピューティングデバイスが自身のオペレーティングシステム(OS)の実行中には更新できないファームウェア(またはその他ソフトウェア)を含んでいる。たとえば、OSは通常ハードディスクドライブに格納され、ハードディスクドライブは、自身のファームウェアの更新中にはデータを取得することができないので、コンピューティングデバイスは、通常のOS環境ではハードディスクドライブのファームウェア更新を管理することができない。これらファームウェア更新は、通常のOS環境の外部で行う必要がある。一般的には、これは、コンピューティングデバイスに対してブータブルイメージを配信することによって達成されている。ブータブルイメージは、通常のOS環境にアクセスすることなくコンピューティングデバイスを動作させ、ファームウェア更新を適用することができる、ディスクオペレーティングシステム(DOS)環境等の独立型OS環境を含むことができる。
【0003】
従来、これらファームウェア更新に利用されるブータブルイメージは、フロッピー(登録商標)ディスク、USBスティック、その他の可搬型媒体を介して、物理的に各コンピューティングデバイスに配信される必要がある。別の配信法として、ファームウェア更新を含むブータブルイメージが遠隔サーバに格納されている、伝統的なIDER(integrated device electronics redirect)がある。これによって、ネットワーク接続を有し、遠隔サーバにアクセスするよう予め設定されたコンピューティングデバイスを、遠隔のブータブルイメージから起動して、ファームウェア更新を適用することができる。
【図面の簡単な説明】
【0004】
ここに記載する発明は、図面に例で示されているが、これは限定ではない。図示を簡潔かつ明瞭に行うべく、図面に示す部材は、必ずしも実際の縮尺で描かれてはいない。たとえば一部の部材の寸法を他の部材よりも強調して描くことで明瞭にしている場合もある。さらに適切と思われる場合には、参照番号を図面間で繰り返して、対応するまたは同様の部材であることを示している場合もある。
【0005】
図1】コンピューティングデバイスのコンポーネントに対する更新を管理するシステムの一実施形態の簡略化されたブロック図である。
図2図1のコンピューティングデバイスのソフトウェア環境の一実施形態の簡略化されたブロック図である。
図3図1および図2の更新サーバを利用してブータブルイメージをパッケージ化および配信する方法の一実施形態の簡略化されたフロー図である。
図4図1および図2の更新マネージャを利用して更新を管理する方法の一実施形態の簡略化されたフロー図である。
図5A図1および図2の管理エンジンを利用して更新を適用する方法の一実施形態の簡略化されたフロー図である。
図5B図1および図2の管理エンジンを利用して更新を適用する方法の一実施形態の簡略化されたフロー図である。
図6図1および図2の基本入出力システム(BIOS)を利用してコンピューティングデバイスを起動する方法の一実施形態の簡略化されたフロー図である。
【発明を実施するための形態】
【0006】
本開示の思想には、様々な変形例および代替的形態が考えられるが、その具体的な例である実施形態を図面に例示し、明細書中で詳述する。しかし、本開示の思想を開示する具体的形態に制限する意図はなく、本発明には、添付請求項が定義する本発明の精神および範囲に含まれるすべての変形例、均等物、および代替物が含まれることが意図されている。
【0007】
以下の記載では、論理実装例、オペコード、特定のオペランド、リソースの分割/共有/複製の実装例、システムコンポーネントのタイプおよび相互関係、および、論理的分割/統合の選択肢等の複数の具体例を挙げて、本開示の完全な理解を提供する。しかし、当業者であれば、これら特定の詳細なしに本開示の実施形態を実装することができることを理解する。反対に、制御構造、ゲートレベル回路、および完全なソフトウェア命令シーケンスに関しては詳述を避けることで、本発明を曖昧にしないようにしている場合もある。当業者であれば、本記載を読むことで、不当な実験をすることなく、適切な機能を実装することができるだろう。
【0008】
「一実施形態」「1つの実施形態」「例示的な実施形態」およびこれに類する明細書における言及は、記載される実施形態が特定の特徴、構造、または特性を持つが、全ての実施形態が必ずしもこれら特定の特徴、構造、または特性をもたねばならないというわけではない。さらに、これらの表現は、必ずしも同じ実施形態のことを言及しているわけではない。さらに、特定の特徴、構造、または特性がある実施形態との関連で記載されている場合には、明示されてようといまいと、他の実施形態において特定の特徴、構造、または特性を実装することは当業者の知識の範囲内であるとする。
【0009】
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組み合わせによって実装することができる。コンピューティングデバイスに実装される本発明の実施形態は、コンポーネント間の1以上のバスベースの相互接続および/またはコンポーネント間の1以上のポイントツーポイント相互接続を含んでよい。本発明の実施形態は、さらに、1以上のプロセッサおよび/またはコントローラが読み出し実行することができる1以上の持続性の機械可読媒体に格納されている命令として実装されてもよい。持続性の、機械可読媒体は、機械(たとえばコンピューティングデバイス)が読み取ることができる形態の情報を格納または送信するいずれの有形のメカニズムを含んでもよい。たとえば、持続性の、機械可読媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスおよびその他を含んでよい。
【0010】
図1を参照すると、コンピューティングデバイス102のコンポーネントに対する更新を管理するシステム100が示されている。システム100は、コンピューティングデバイス102、ファームウェア更新サーバ104、および、コンピューティングデバイス102をファームウェア更新サーバ104に通信可能に連結するネットワーク106を含んでいる。ネットワーク106は、ローカルエリアネットワーク、ワイドエリアネットワーク、公衆利用可能なグローバルネットワーク(publicly available global network)(たとえばインターネット)および/または他のネットワーク等の任意のタイプの有線および/または無線ネットワークとして実現されてよい。加えて、ネットワーク106は、コンピューティングデバイス102とファームウェア更新サーバ104との間の通信を促す任意の数の追加デバイス(たとえばルータ、スイッチ、介在するコンピュータ等)を含んでよい。
【0011】
ファームウェア更新サーバ104は、コンピューティングデバイス102とは別の任意のタイプの1つまたは複数のコンピューティングデバイスとして実現されてよい。たとえばファームウェア更新サーバ104は、1以上のパーソナルコンピュータ、ワークステーション、ラップトップコンピュータ、ハンドヘルドコンピュータ、移動インターネットデバイス、セルラーフォン、情報携帯端末、電話器、ネットワーク機器、可視化デバイス、格納コントローラ、または、ネットワーク106でコンピューティングデバイス102と通信するよう構成されているその他のコンピュータベースのデバイスとして実現されてもよい。1つのコンピューティングデバイス102および1つのファームウェア更新サーバ104のみを図1には例示しているが、システム100は、任意の数のコンピューティングデバイス102および任意の数のファームウェア更新サーバ104を含んでよい。
【0012】
ファームウェア更新サーバ104は、データベースを含んでも、データベース108に通信可能に連結されていてもよい。データベース108は、関係型データベース、フラットファイルデータベース等の適切なデータ構造および位置に格納されたデータとして、または、(不図示の)ファームウェア更新サーバのメモリに格納されたデータとして実現されてよい。データベース108は、更新を含むブータブルイメージ110を含む。一例の実施形態では、ブータブルイメージ110は、コンピューティングデバイス102のコンポーネントに適用されるファームウェア更新を含んでよい。他の実施形態では、ブータブルイメージ110は、コンピューティングデバイス102の複数のコンポーネントに適用される複数のファームウェア更新を含んでよい。他の実施形態では、ブータブルイメージ110は、コンピューティングデバイス102に適用されるべきソフトウェア更新を、追加でまたは代わりに含んでよい。
【0013】
コンピューティングデバイス102は、ここに記載する機能を実行することができる任意のタイプの電子デバイスとして実装されてよい。たとえばコンピューティングデバイス102は、パーソナルコンピュータ、ワークステーション、ラップトップコンピュータ、ハンドヘルドコンピュータ、移動インターネットデバイス、セルラーフォン、情報携帯端末、電話器、ネットワーク機器、可視化デバイス、格納コントローラ、または、その他のコンピュータベースのデバイスとして実現されてもよい。図1に例示する実施形態では、コンピューティングデバイス102が、一次プロセッサ112、メインメモリ120、チップセット122、1以上の周辺デバイス132、データ格納デバイス134、および通信回路138を含む。一部の実施形態では、上述したコンポーネントの幾つかを、コンピューティングデバイス102のマザーボードに組み込んでもよいし、他のコンポーネントは、たとえば周辺ポートによってマザーボードに通信可能に連結されてよい。さらに、コンピューティングデバイス102は、図1には記載を明瞭にするために示されていないコンピュータおよび/またはコンピューティングデバイスに共通して見られる他のコンポーネント、サブコンポーネント、および、デバイスを含んでもよい。
【0014】
コンピューティングデバイス102の一次プロセッサ112は、マイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラ等のソフトウェア/ファームウェアを実行することができる任意のタイプのプロセッサとして実現されてよい。一次プロセッサ112は、プロセッサコア114を有するシングルコアのプロセッサとして実現されるとして例示されている。しかし他の実施形態では、一次プロセッサ112が、複数のプロセッサコアを有するマルチコアプロセッサとして実現されてよい。加えて、コンピューティングデバイス102は、1以上のプロセッサコア114を有する追加の一次プロセッサ112を含んでもよい。一次プロセッサ112は、概して、コンピューティングデバイス102に常駐するOSおよび様々なアプリケーション、プログラム、ライブラリ、およびドライバを含んでよいソフトウェアスタックを実行する役割を持つ。ソフトウェアスタックの一部として、一次プロセッサ112は、更新マネージャ116を実行してよく、これに関しては図2を参照しながら詳述する。
【0015】
コンピューティングデバイス102のチップセット122は、メモリコントローラハブ(MCHまたは「ノースブリッジ」)、入出力コントローラハブ(ICHまたは「サウスブリッジ」)、および、ファームウェアデバイスを含んでよい。ファームウェアデバイスは、基本入出力システム(BIOS)124および/またはその他の情報を格納するためのメモリ格納デバイスとして実現されてよい。しかし他の実施形態では、他の構成をもつチップセットを利用してもよい。たとえば一部の実施形態では、チップセット122が、プラットフォームコントローラハブ(PCH)として実現されてもよい。一部の実施形態では、MCHは、一次プロセッサ112内に組み込まれていても、一次プロセッサ112に関連付けられていてもよく、一次プロセッサ112は、メインメモリ120と直接通信することができてよい(図1では破線で示されている)。
【0016】
プロセッサ112は、複数の信号経路によってチップセット122に通信可能に連結されている。これらの信号経路(および図1に示すその他の信号経路)は、コンピューティングデバイス102のコンポーネント間の通信を促すことができる任意のタイプの信号経路として実現されてよい。たとえば信号経路は、任意の数のワイヤ、ケーブル、光ガイド、プリント基板の配線、ビア、バス、介在するデバイスおよび/またはその他として実現されてよい。
【0017】
チップセット122はさらに、一次プロセッサ112とは別個であり概してこれとは独立して動作する、管理エンジン126を含んでよい。管理エンジン126は、セキュリティ、暗号化、および/または、認証機能を果たすよう構成されている任意の数のハードウェア、ファームウェア、および/またはソフトウェアとして実現されてよい(これに関しては後述する)。管理エンジン126は図1には、チップセット122に統合されているものとして例示されているが、管理エンジン126は、これに加えてまたはこれに代えて、複数の信号経路によってチップセット122に通信可能に連結されている1以上の拡張ボードの上に配置された別の回路を含んでもよい。管理エンジン126は、チップセット122を介して、または他の実施形態では、複数の独立した信号経路によって、コンピューティングデバイス102の様々なコンポーネント(たとえば一次プロセッサ112、メインメモリ120等)に通信可能に連結されてもよい。
【0018】
図1に例示する実施形態では、管理エンジン126が、管理エンジン126を一次プロセッサ112とは独立して動作させる二次プロセッサ130を含む。二次プロセッサ130は、不図示の1以上のプロセッサコアを有する1以上のプロセッサを含むマイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラ等のソフトウェア/ファームウェアを実行することができる任意のタイプのプロセッサとして実現してよい。この実施形態では、管理エンジン126がさらに、二次プロセッサ130からはアクセス可能であるが一次プロセッサ112はアクセスできないセキュアなメモリ128も含む。このセキュアなメモリ128は、たとえばDRAM、SDRAM、DDR SDRAM、フラッシュメモリデバイスおよび/または他のメモリデバイスを含む1以上のメモリデバイスまたはデータ格納位置として実現されてよい。セキュアなメモリ128は、二次プロセッサ130が実行可能な様々なデータおよびソフトウェア/ファームウェアを格納することができる。一部の実施形態では、管理エンジン126が、さらに、追加の内蔵コンポーネント(たとえば専用通信回路)を含んでもよい。
【0019】
一部の例示する実施形態では、管理エンジン126が、Intel(登録商標)Active Management Technology(Intel(登録商標)AMT)を利用して、Intel(登録商標)AMTの一部を利用して、Intel(登録商標)Management Engine(Intel(登録商標)ME)を利用して、または、Intel(登録商標)vPro Technology(Intel(登録商標)vPro)を利用して実装することができるが、これらは全て、カリフォルニア州のサンタクララのIntel Corporationから入手可能であったり、および/または、Intel Corporationが販売するチップセットにおいて利用可能であったりする。Intel AMT(登録商標)エンベデッドプラットフォーム技術は、各エンドポイントデバイスの不揮発性メモリに格納されているハードウェアおよびソフトウェア情報に対するアウトオブバンドアクセスを可能とし、機能オペレーティングシステムおよび他の管理ツールにみられるソフトウェアエージェントが必要なくなる。
【0020】
コンピューティングデバイス102のメインメモリ120は、1以上のメモリデバイスまたはデータ格納位置(たとえばDRAM、SDRAM、DDR SDRAM、フラッシュメモリデバイスおよび/または他のメモリデバイスを含む)として実装されてよい。メインメモリ120は、複数の信号経路によってチップセット122に通信可能に連結されている。様々なデータおよびソフトウェアをメインメモリ120に格納することができる。たとえば、一次プロセッサ112が実行するソフトウェアスタックを構成する1以上のオペレーティングシステム、アプリケーション、プログラム、ライブラリ、およびドライバは、実行中にメインメモリ120内に常駐してよい。さらに、メインメモリ120に格納されているソフトウェアおよびデータを、メインメモリ120とデータ格納デバイス134との間で、メモリ管理動作の一環として交換してよい。
【0021】
一部の実施形態では、メインメモリ120がセキュアなメモリ118を含んでよく、セキュアなメモリ118には、チップセット122はアクセス可能であるが(管理エンジン126を含む)、一次プロセッサ112からはアクセス不可能である。セキュアなメモリ118は、メモリ隔離メカニズムを利用してチップセット122によって一次プロセッサ112から隔離されているメインメモリ120の一部として実現されることで、悪意のあるソフトウェアが、セキュアなメモリ118にアクセスすることができないようにする。一部の実施形態では、セキュアなメモリ118は、上位メモリアドレス(UMA)として実現されてもよい。実在している場合には、セキュアなメモリ118は、管理エンジン126(セキュアなメモリ128に加えてまたはセキュアなメモリ128に代えて)のための更なるメモリ空間として利用することもできる。
【0022】
コンピューティングデバイス102はさらに、1以上の周辺デバイス132、データ格納デバイス134、および通信回路138を含んでよい。これらの実施形態では、チップセット122がさらに、1以上の周辺デバイス132、データ格納デバイス134、および通信回路138に通信可能に連結されている。この1以上の周辺デバイス132は、入力デバイス、出力デバイス、およびその他のインタフェースデバイスを含む任意の数の周辺デバイスを含んでよい。たとえば周辺デバイス132は、ディスプレイ、マウス、キーボード、およびコンピューティングデバイス102の外部のスピーカを含んでよい。周辺デバイス132に含まれる特定のデバイスは、たとえば、コンピューティングデバイス102が意図されている用途に応じたものであってよい。通信回路138は、コンピューティングデバイス102とファームウェア更新サーバ104との間のネットワーク106における通信を可能とする任意の数のデバイスおよび回路として実現されてよい。たとえば、通信回路138は、1以上の有線および/または無線ネットワークインタフェースカード(NIC)またはその他のネットワーク通信カード、モジュール、または回路として実現されてよい。
【0023】
データ格納デバイス134は、たとえばメモリデバイスおよび回路、メモリカード、ハードディスクドライブ、固体ドライブ、その他のデータ格納デバイス等のデータの短期ストレージまたは長期ストレージのために構成された任意のタイプの1つまたは複数のデバイスとして実現されてよい。図1に示すように、データ格納デバイス134は、データ格納デバイス134の内部デバイス機能(たとえば、データ格納デバイス134からデータを読み出すために必要な物理ハードウェア操作)を制御するファームウェア136を含む。ファームウェア136が、上述したブータブルイメージ110に含まれる更新の対象物であってよい。ファームウェア136の更新中に、データ格納デバイス134に格納されているデータは、コンピューティングデバイス102の他のコンポーネントにアクセスすることができなくてよい。コンピューティングデバイス102は、1つのデータ格納デバイス134のみを含むものとして例示されているが、コンピューティングデバイス102は、それぞれが自身のファームウェア136を含む任意の数のデータ格納デバイス134を含んでよい。
【0024】
コンピューティングデバイス102の一部の実施形態では、一次プロセッサ112からの、データ格納デバイス134からデータを取得したいという要求は、統合デバイスエレクトロニクス(IDE)バス(場合によっては統合ドライブエレクトロニクスバスと称される場合もある)を利用して処理されてよい。この実施形態では、管理エンジン126が、IDEリダイレクト(IDE−R)をこの要求に対して実行するよう構成されていてよい。IDE−Rを行っている間は、管理エンジン126が、チップセット122のIDEバスを管理して、一次プロセッサ112からの、データ格納デバイス134からデータを取得してほしいという要求を傍受する。これらの要求は、次に別のメモリデバイス(セキュアなメモリ118またはセキュアなメモリ128を含むがこれらに限定はされない)にリダイレクトされてよい。また他の実施形態では、管理エンジン126が、ユニバーサルシリアルバスリダイレクト(USB−R)を同様に実行するよう構成されていてよい。
【0025】
図2を参照すると、コンピューティングデバイス102のコンポーネントに対する更新を管理するためのソフトウェア環境200が示されている。ソフトウェア環境200は、コンピューティングデバイス102、ファームウェア更新サーバ104、およびネットワーク106のうち1以上に実行、格納、および/または、送信されるソフトウェアおよびファームウェアモジュールを含む。したがって、コンピューティングデバイス102の、ファームウェア更新サーバ104の、およびネットワーク106のソフトウェア環境が図2に示されている(図1と同じ参照番号を利用して)。ソフトウェア環境200は、図2には記載の明瞭性を期して描かれていない他のモジュール、アプリケーション、プログラム、および/またはデータを含んでよい。
【0026】
ファームウェア更新サーバ104のソフトウェア環境は、更新を含むブータブルイメージ110を含んでいる。上述したように、一部の実施形態では、ブータブルイメージ110は、コンピューティングデバイス102の1以上のファームウェア更新および/またはソフトウェア更新を含んでよい。たとえばブータブルイメージ110は、コンピューティングデバイス102のデータ格納デバイス134のファームウェア136に対する更新を含んでいてよい。ブータブルイメージ110はさらに、コンピューティングデバイス102の通常のOS環境とは別のコンピューティングデバイス102が実行する独立型OS環境を含んでよい。たとえば一部の実施形態では、ブータブルイメージ110は、ディスクオペレーティングシステム(DOS)環境等を含んでよい。コンピューティングデバイス102がこの独立型OS環境で実行し始めると、更新をコンピューティングデバイス102の適切なコンポ―ネント(たとえばデータ格納デバイス134)に実装することができる。後で詳述するように、更新を含むブータブルイメージ110は、セキュリティ面を考慮してファームウェア更新サーバ104によってデジタル署名されていてよい。ファームウェア更新サーバ104の幾つかの動作例をさらに図3を参照して以下に記載する。
【0027】
コンピューティングデバイス102のソフトウェア環境は、更新マネージャ116、BIOS124、管理エンジン126、データ格納ファームウェア136、およびセキュアなメモリ202を含む。図1を参照して記載したように、セキュアなメモリ202は、セキュアなメモリ118を形成するメインメモリ120の一部に、および/または、チップセット122に常駐しているセキュアなメモリ128内に常駐していてよい。いずれの実施形態であっても、セキュアなメモリ202は、管理エンジン126から直接アクセス可能であってよい(しかし、ソフトウェア環境200の他のソフトウェア/ファームウェアモジュールからはアクセス可能ではなくてよい)(図2参照)。
【0028】
更新マネージャ116は、コンピューティングデバイス102の一次プロセッサ112が実行してよい複数のソフトウェア/ファームウェアモジュールを含む。他の動作の中には、更新マネージャ116が、ファームウェア更新サーバ104と通信して、コンピューティングデバイス102のコンポーネントの更新が可能かどうかを判断して、可能である場合には、ファームウェア更新サーバ104からの更新を含むブータブルイメージ110を受信する。更新マネージャ116は、次に、受信したブータブルイメージ110を管理エンジン126に提供してよい。更新マネージャ116は、さらに、通常のOS環境からコンピューティングデバイス102の再起動を要求することができる。一部の実施形態では、更新マネージャ116は、コンポーネントの更新が成功したかに関して、ファームウェア更新サーバ104と通信することができる。図4を参照して、更新マネージャ116の幾つかの動作例を後述する。
【0029】
図2に示すように、管理エンジン126は、コンピューティングデバイス102の二次プロセッサ130によって実行されてよい複数のソフトウェア/ファームウェアモジュールを含む。上述したように、管理エンジン126は、コンピューティングデバイス102の一次プロセッサ112とは独立して動作することができる。更新マネージャ116からの更新を含むブータブルイメージ110を受信すると、管理エンジン126は、セキュアなメモリ202のブータブルイメージ110のローカルコピー204を格納してよい。一部の実施形態では、管理エンジン126は、受信したブータブルイメージ110および/またはセキュアなメモリ202に格納されているローカルコピー204の正当性を検証してよい。管理エンジン126は、BIOS124を、セキュアなメモリ202からデータを取得することで、IDE−R(またはUSB−R)起動を実行するよう構成してよく、IDE−R(またはUSB−R)要求を仲介してよい。管理エンジン126はさらに、更新マネージャ116と通信して、コンピューティングデバイス102の再起動を要求して、更新マネージャ116に対して、コンポーネント更新が成功したかを通知することができる。図5Aおよび図5Bを参照して、管理エンジン126の幾つかの動作例を後述する。
【0030】
BIOS124は、コンピューティングデバイス102のチップセット122が実行することができる複数のソフトウェア/ファームウェアモジュールを含む。BIOS124は、コンピューティングデバイス102の起動または再起動それぞれを行っている間、コンピューティングデバイス102のコンポーネントを初期化、識別して、OS環境をロードする。たとえば通常の起動シーケンスにおいては、BIOS124が、データ格納デバイス134のファームウェア136と通信して、通常のOS環境をロードしてよい。しかし、管理エンジン126から受信した1以上の設定パラメータに呼応して、BIOS124は、代わりに、IDE−Rデバイスまたは位置からコンピューティングデバイス102を起動してもよい。これらの実施形態では、BIOS124は、セキュアなメモリ202に格納されているローカルコピー204を利用してブータブルイメージ110の独立型OS環境をロードしてよい。BIOS124の幾つかの動作の例を、図6を参照しながら後述する。
【0031】
図3を参照すると、ブータブルイメージ110をパッケージ化および配信する方法300の簡略化されたフロー図が描かれている。一部の実施形態では、方法300が、コンピューティングデバイス102のデータ格納デバイス134のためのファームウェア更新を含むブータブルイメージ110の準備に関している。例を挙げると、OEMが、方法300を、コンポーネントのファームウェア更新を配信するために利用することができる。方法300は、たとえば、コンピューティングデバイス102を含むシステム100の他のコンポーネントとの協働により、ファームウェア更新サーバ104が実行することができる。
【0032】
方法300は、ファームウェア更新サーバ104が、更新を含むブータブルイメージ110を生成するブロック302から始められる。更新を含むブータブルイメージ110は、任意の自動または手動のプログラミングおよび/またはコンパイルプロシージャによって生成されてよい。ブータブルイメージ110を作成した後で、方法300は、ファームウェア更新サーバ104が、OEM鍵を利用してブータブルイメージ110をデジタル署名するブロック304に進む。このOEM鍵は、ブータブルイメージ110の受信者に、ブータブルイメージ110が正当であることを検証させる(後述する)。一部の実施形態では、OEM鍵は、Rivest, Shamir, and Adleman (RSA)暗号アルゴリズムで生成されたファームウェア署名鍵(FWSK)であってよい。
【0033】
ブロック304の後で、方法300はブロック306に進み、ファームウェア更新サーバ104が、ネットワーク106上の更新が利用可能な1以上のコンピューティングデバイス102を通知する。一部の実施形態では、ブロック306が、更新が利用可能であり、ネットワーク106に接続されているすべてのコンピューティングデバイス102を通知することに関する。ブロック306の後で、方法300はブロック308に進み、ファームウェア更新サーバ104が、1以上のコンピューティングデバイス102が更新を受信する準備ができたことを通知する応答を1以上のコンピューティングデバイス102から受信するまで待つ。
【0034】
ブロック308で、ファームウェア更新サーバ104がコンピューティングデバイス102から応答を受信すると、方法300はブロック310に進み、ファームウェア更新サーバ104が、更新を含むブータブルイメージ110を、ネットワーク106経由で、応答側のコンピューティングデバイス102に対して送信する。ブロック310で、更新を含むブータブルイメージ110が送信されると、受信側のコンピューティングデバイス102が、更新をローカルに適用しようと試みる(図4から図6を参照して後述する)。更新を適用しようと試みた後に、コンピューティングデバイス102は、ファームウェア更新サーバ104に対して、コンピューティングデバイス102の対象のコンポーネントに更新が成功裏に適用されたかを示すのに適切なメッセージを送信する。
【0035】
こうしてブロック310の後で、方法300はブロック312に進み、ファームウェア更新サーバ104が、更新が成功裏に適用されたかを示す応答をコンピューティングデバイス102から受け取るまで待つ。メッセージが、コンピューティングデバイス102が更新の適用に失敗した旨を示している場合には、方法300はブロック306に戻り、ファームウェア更新サーバ104が、コンピューティングデバイス102に対して、更新を利用可能である旨を再度通知する。図3は、更新を含む1つのブータブルイメージ110のための方法300を示しているが、ファームウェア更新サーバ104は、1以上のコンピューティングデバイス102に対して複数のブータブルイメージ110を同時にパッケージ化して配信することができてもよい。
【0036】
図4を参照すると、ブータブルイメージ110に含まれる更新を管理する方法400が簡略化されたフロー図で示されている。概して、方法400は、ファームウェア更新サーバ104からブータブルイメージ110を受信して、ブータブルイメージ110を管理エンジン126に提供して、コンピューティングデバイス102を、管理エンジン126が要求しているように再起動することに関している。一部の実施形態では、方法400は、さらに、更新の適用に成功したかに関するフィードバックをファームウェア更新サーバ104に提供することに関していてよい。方法400は、たとえば、システム100の他のコンポーネントと相互作用してよいコンピューティングデバイス102の他のコンポーネントの協働により、更新マネージャ116によって実行されてよい。
【0037】
方法400は、更新マネージャ116が、更新が利用可能である旨の通知を、ファームウェア更新サーバ104からネットワーク106経由で受信するのを待つブロック402から始まる。更新が利用可能であるとの通知を受信すると、更新マネージャ116は、コンピューティングデバイス102のコンポーネントに更新を適用することができるか、および、コンピューティングデバイス102が更新を受信する準備ができているかを判断してよい。これらの条件に合致すると、更新マネージャ116は、更新を含むブータブルイメージ110の受信準備が出来ている旨の通知を、ファームウェア更新サーバ104に提供する。
【0038】
ブロック402の後で、方法400はブロック404に進み、更新マネージャ116は、更新を含むブータブルイメージ110を、ファームウェア更新サーバ104からネットワーク106経由で受信する。一部の実施形態では、ブロック404でブータブルイメージ110を受信すると、更新マネージャ116は、ブータブルイメージ110を、メインメモリ120に、および/または、データ格納デバイス134に格納してよい。ブロック404で、更新を含むブータブルイメージ110が受信されると、方法400は(および図5Aから図5Bの方法500も図6の方法600の場合も)、コンピューティングデバイス102がネットワーク106上でファームウェア更新サーバ104と通信できるかどうかに関わらず、処理を進める。言い換えると、ファームウェア更新サーバ104にフィードバックを与える選択肢の他には(たとえば後述するブロック410および418)、コンピューティングデバイス102は、ファームウェア更新サーバ104とはさらに通信はせずに更新を適用してよい。
【0039】
ブロック404の後で、方法400はブロック406に進み、更新マネージャ116は、更新を含むブータブルイメージ110を、管理エンジン126に提供する。ブロック406で、ブータブルイメージ110が管理エンジン126に提供されると、管理エンジン126は、ブータブルイメージ110の正当性を検証しようと試み、ブータブルイメージ110のローカルコピー204をセキュアなメモリ202に格納して、IDE−R起動のためにBIOS124を設定して、コンピューティングデバイス102の再起動を要求する(図5Aを参照して後述する)。
【0040】
ブロック406の後で、方法400はブロック408に進み、更新マネージャ116は、更新を含むブータブルイメージ110の正当性が確認されたかに関する通知を、管理エンジン126から待つ。ブータブルイメージ110が検証できず、管理エンジン126がエラーを更新マネージャ116に返すと、方法400はブロック410に進む。ブロック410で、更新マネージャ116は、ファームウェア更新サーバ104に、更新に失敗したことを通知する(コンピューティングデバイス102が、この時点で、ネットワーク106でファームウェア更新サーバ104と通信できる場合)。ブロック410でファームウェア更新サーバ104に対して、更新の試みに失敗した旨を通知した後で、方法400はブロック420に進み、更新マネージャ116は、コンピューティングデバイス102で現在実行されているOSからウォーム再起動を要求する。
【0041】
ブロック408において、更新マネージャ116が、管理エンジン126から、ブータブルイメージ110が検証された旨を示すメッセージを受信した場合には、方法400はブロック412に進む(ブロック410ではなくて)。ブロック412で、更新マネージャ116は、管理エンジン126からの、コンピューティングデバイス102の再起動要求を待つ。この要求が管理エンジン126から受信されると、方法400はブロック414に進み、更新マネージャ116が、コンピューティングデバイス102で現在実行されているOSからウォーム再起動を要求する。ブロック414で再起動した後で(管理エンジン126がIDE−起動用にBIOS124を設定したと想定して)、管理エンジン126は、ブータブルイメージ110のローカルコピー204の正当性を検証して、セキュアなメモリ202に対してIDE−R要求を仲介して、更新に成功したかを更新マネージャ116に通知する(図5Bを参照して後述する)。
【0042】
ブロック414の後で、方法400はブロック416に進み、更新マネージャ116は、更新に成功したかに関する通知を管理エンジン126から受け取るまで待つ。管理エンジン126がエラーを更新マネージャ116に返すと、方法400はブロック410に進む。ブロック410で、更新マネージャ116は、ファームウェア更新サーバ104に対して、更新に失敗したことを通知する(コンピューティングデバイス102が、この時点で、ネットワーク106でファームウェア更新サーバ104と通信できる場合)。ブロック410でファームウェア更新サーバ104に対して、更新の試みに失敗した旨を通知した後で、方法400はブロック420に進み、更新マネージャ116は、コンピューティングデバイス102で現在実行されているOSからウォーム再起動を要求する。
【0043】
ブロック416において、更新マネージャ116が、管理エンジン126から、更新に成功した旨を示すメッセージを受信した場合には、方法400はブロック418に進む(ブロック410ではなくて)。ブロック418で、更新マネージャ116は、ファームウェア更新サーバ104に対して、更新に成功したことを通知する(コンピューティングデバイス102が、この時点で、ネットワーク106でファームウェア更新サーバ104と通信できる場合)。ブロック418でファームウェア更新サーバ104に対して、更新の試みに成功した旨を通知した後で、方法400はブロック420に進み、更新マネージャ116は、コンピューティングデバイス102で現在実行されているOSからウォーム再起動を要求する。
【0044】
図5Aおよび図5Bを参照すると、ブータブルイメージ110に含まれる更新を適用する方法500を簡略化されたフロー図で示している。概して図5Aに示す方法500の部分は、ブータブルイメージ110の正当性を検証して、ブータブルイメージ110のローカルコピー204をセキュアなメモリ202に格納して、IDE−R起動のためにBIOS124を設定して、コンピューティングデバイス102の再起動を要求することに関する。概して図5Bに示す方法500の部分は、ブータブルイメージ110のローカルコピー204の正当性を検証して、セキュアなメモリ202に対してIDE−Rを仲介して、更新に成功したかを更新マネージャ116に通知することに関する。方法500は、たとえば、システム100の他のコンポーネントと相互作用することができるコンピューティングデバイス102の他のコンポーネントとの協働によって、管理エンジン126によって実行されてよい。
【0045】
方法500は、管理エンジン126が、更新マネージャ116から、更新を含むブータブルイメージ110を受信するブロック502から開始される(方法400のブロック406を参照しながら上述した)。ブロック502でブータブルイメージ110を受信した後で、方法500はブロック504に進み、管理エンジン126が、ブータブルイメージ110の正当性を検証する。一部の実施形態では、ブロック504は、管理エンジン126が、管理エンジン126に格納されている(セキュアなメモリ128に格納されている)暗号/復号鍵を利用して、ブータブルイメージ110にデジタル署名されているOEM鍵を検証することに関する。
【0046】
ブロック504の後で、方法500はブロック506に進み、管理エンジン126が、ブータブルイメージ110に含まれる更新を適用するよう進めていいかを判断する。ブロック504でブータブルイメージ110の正当性が確認されなかった場合には、方法500はブロック508に進み、管理エンジン126が、更新マネージャ116に対して、ブータブルイメージ110が検証されなかったことを示すメッセージを送る。ブロック506において、管理エンジン126が、ブータブルイメージ110の正当性を確認できたと判断した場合には、方法500はブロック510に進み(ブロック508ではなくて)、管理エンジン126は、更新マネージャ116に対して、ブータブルイメージ110が検証されたことを示すメッセージを送る。
【0047】
ブロック510で、管理エンジン126は、更新を含むブータブルイメージ110のローカルコピー204をセキュアなメモリ202に格納する。上述した通り、一部の実施形態では、ブロック510は、管理エンジン126が、ブータブルイメージ110のローカルコピー204を、セキュアなメモリ118を形成するメインメモリ120の一部に、および/または、チップセット122に常駐しているセキュアなメモリ128内に格納することに関していてよい。
【0048】
ブロック510で、方法500は、管理エンジン126が、IDE−R起動を実行するようBIOS124を設定してよいブロック512に進む。一部の実施形態では、ブロック512は、管理エンジン126が、BIOS124の1以上の設定パラメータを、コンピューティングデバイス102をIDE−Rデバイスまたは位置から起動するよう設定することに関している。ブロック512の後に、方法500はブロック514に進み、管理エンジン126が、1以上の内部パラメータを、次のIDE−R起動の位置が、ブータブルイメージ110のローカルコピー204を格納する、セキュアなメモリ202の位置になるよう(ネットワーク106の遠隔ドライブの位置ではなく)設定する。ブロック514の後で、方法500はブロック516に進み、管理エンジン126が、内部フラグ(たとえば「UPDATE BOOT」)を設定して、自身に対して、次の起動時に、ファームウェアを適用すべきである旨を知らせる。ブロック512から516は、コンピューティングデバイス102の次の起動時に、ブータブルイメージ110のローカルコピー204を実行して、そこに含まれる更新を適用するように、BIOS124と管理エンジン126とを設定する、という組み合わせられた効果を有する。ブロック516の後で、方法500はブロック518に進み、管理エンジン126が、更新マネージャ116からのウォーム再起動を要求する(方法400のブロック412を参照して上述した)。
【0049】
図5Bに示すように、方法500はブロック520へと続き、管理エンジン126が、更新マネージャ116によるコンピューティングデバイス102の再起動を待つ(方法400のブロック414を参照して上述した)。コンピューティングデバイス102の再起動時に、方法500はブロック522に進み、管理エンジン126が、ファームウェア更新を現在の起動中に適用するかを判断する。一部の実施形態では、ブロック522は、管理エンジン126が、内部フラグ(たとえば「UPDATE BOOT」)を設定するかを判断することに関する。ブロック522において、管理エンジン126は、適用準備ができている更新がないと判断すると、方法500はブロック524に進み、管理エンジン126が、自身の通常の起動シーケンスを続ける。ブロック522中に、管理エンジン126が、適用準備が出来ている更新があると判断すると、方法500はブロック526に進む(ブロック524ではなくて)。
【0050】
ブロック526中に、管理エンジン126は、セキュアなメモリ202に格納されているブータブルイメージ110のローカルコピー204の正当性を検証する。一部の実施形態では、ブロック526は、管理エンジン126が、ブータブルイメージ110のローカルコピー204にデジタル署名されたOEM鍵を検証することに関していてよい。ブロック526の後に、方法500はブロック528に進み、管理エンジン126が、ブータブルイメージ110のローカルコピー204に含まれる更新を適用するよう進めてよいかを判断する。ブロック526でローカルコピー204の正当性が確認されなかった場合には、方法500はブロック530に進み、管理エンジン126が、更新マネージャ116に対して、ブータブルイメージ110が確認されなかったことを示すメッセージを送る。ブロック528において、管理エンジン126が、ローカルコピー204の正当性を確認できたと判断した場合には、方法500はブロック532に進み(ブロック530ではなくて)、管理エンジン126は、更新マネージャ116に対して、ブータブルイメージ110のローカルコピー204が検証されたことを示すメッセージを送る。
【0051】
ブロック532において、管理エンジン126は、ブロック514で設定された1以上の内部パラメータをチェックして、現在の起動中のIDE−R要求を、ブータブルイメージ110のローカルコピー204を格納するセキュアなメモリ202またはネットワーク106上の遠隔ドライブにダイレクトすべきであるかを判断する。ブロック532中に、管理エンジン126が、IDE−R要求を遠隔ドライブに送るべきであると判断すると、方法500はブロック534に進み、管理エンジン126が、伝統的なIDE−Rシーケンスを実行する(つまり、IDEバス読み取り要求をネットワーク106で遠隔ドライブにリダイレクトする)。ブロック532で、管理エンジン126がIDE−R要求をセキュアなメモリ202にローカルにダイレクトすべきであると判断した場合には、方法500はブロック536に進む(ブロック534ではなくて)。
【0052】
ブロック536において、管理エンジン126は、IDEバス読み取り要求をBIOS124および/またはコンピューティングデバイス102の一次プロセッサ112から、セキュアなメモリ202に格納されているブータブルイメージ110のローカルコピー204にリダイレクトすることで、IDE−Rシーケンスを仲介する。このプロシージャを利用すると、一次プロセッサ112は、ブロック536中に、ブータブルイメージ110のローカルコピー204に含まれる更新を適用する。一例である実施形態では、ブータブルイメージ110のローカルコピー204からの起動によって、一次プロセッサ112が、データ格納デバイス134のファームウェア136を更新することができてよい。ブロック538に示すように、管理エンジン126は、ブロック536の進捗状態を同時監視して、更新が適用されたかを判断する。
【0053】
ブロック538で管理エンジン126が更新を完了したと判断すると、方法500はブロック540に進み、管理エンジン126が、内部フラグ(たとえば「UPDATE BOOT」)をリセットして、自身に対して、次の起動時に、ファームウェア更新が既に適用された旨を知らせる。方法500の一部の実施形態では、ブロック540がさらに、管理エンジン126が、ブータブルイメージ110を無効化して、後続する起動時にコンピューティングデバイス102に更新が再度適用されないようにすることにも関していてよい。ブロック540の後で、方法500はブロック542に進み、管理エンジン126が、更新マネージャ116から、更新の適用に成功した旨を知らせるメッセージを送信する(方法400のブロック416を参照して上述した)。
【0054】
図6を参照すると、コンピューティングデバイス102の起動方法600の簡略化されたフロー図が示されている。概して、方法600は、コンピューティングデバイス102の現在の起動をIDE−R起動にして、コンピューティングデバイス102を適切な起動シーケンスに従って起動すべきかを判断することに関する。方法600は、たとえば、システム100の他のコンポーネントと相互作用してよい、コンピューティングデバイス102の他のコンポーネントとの協働により、BIOS124により実行されてよい。
【0055】
方法600は、BIOS124が、コンピューティングデバイス102の現在の起動がIDE−Rデバイスまたは位置からのものであるべきかを示す設定パラメータの1以上をチェックするブロック602から開始される。上述したように(方法500のブロック512を参照して)、管理エンジン126は、BIOS124の1以上の設定パラメータを設定して、IDE−R起動を実行すべきかを示してよい。ブロック602の後で、方法600はブロック604に進み、BIOS124が、通常の起動シーケンスまたはIDE−R起動シーケンスのいずれかを進めるべきかを判断する。もしもブロック602でチェックされた1以上の設定パラメータが、IDE−R起動を実行すべきであると示していない場合には、方法600はブロック606に進み、通常の起動シーケンスをBIOS124によって実行する(たとえばBIOS124が、通常のOS環境をデータ格納デバイス134からロードする)。ブロック604中に、BIOS124が、コンピューティングデバイス102の現在の起動がIDE−Rデバイスまたは位置からのものであるべきであると判断すると、方法600はブロック608に進む(ブロック606ではなく)。
【0056】
ブロック608中にBIOS124は、読み取り要求を管理エンジン126に送信し、ここから、これらの読み取り要求は、自身の内部パラメータに基づいて、適切なIDE−Rデバイスまたは位置にリダイレクトされる。管理エンジン126がIDE−R要求をBIOS124から、セキュアなメモリ202に格納されているブータブルイメージ110のローカルコピー204にリダイレクトするよう設定されている場合には(方法500のブロック536を参照して上述したように)、方法600はブロック610を含む。これらの状況においては、BIOS124は、コンピューティングデバイス102に適用すべき更新を含むブータブルイメージ110のローカルコピー204を利用してコンピューティングデバイス102を起動する。実行されると、ブータブルイメージ110は、コンピューティングデバイス102のそれぞれのコンポーネントに更新を適用する。一部の実施形態では、ブータブルイメージは、コンピューティングデバイス102に、更新が成功裏に完了したら再起動させる命令を含んでもよい。これら実施形態では、更新マネージャ116は、更新が成功裏に完了した場合には、再起動を要求しなくてもよい(つまり、方法400のブロック420が更新マネージャ116によって実行されなくてもよい)。
【0057】
本開示は図面および前述の記載に図示および記載されたが、これら図示および記載は、あくまで例であり、その性質上限定ではなく、実施形態のみが示され記載されており、本開示の精神内に含まれるすべての変形例および変更例を保護対象として意図している点を理解されたい。
[項目1]
コンピューティングデバイスにおいて、前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを受信する段階と、
前記ブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する段階と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する段階と、
前記コンピューティングデバイスを再起動する段階と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する段階と
を備える方法。
[項目2]
前記ブータブルイメージを受信する段階は、
デジタル署名されたブータブルイメージを更新サーバから受信する段階と、
前記ブータブルイメージの格納前に前記ブータブルイメージが前記更新サーバによってデジタル署名されていることを確認する段階と
を備える、項目1に記載の方法。
[項目3]
前記ブータブルイメージを格納する段階は、
前記ブータブルイメージを、前記コンピューティングデバイスの管理エンジンの専用メモリ位置に格納する段階を有し、
前記専用メモリ位置は、前記コンピューティングデバイスの一次プロセッサによってアクセスできない、項目1または2に記載の方法。
[項目4]
前記ブータブルイメージを格納する段階は、
前記ブータブルイメージを上位メモリ領域(UMA)位置に格納する段階を有する、項目1から3のいずれか一項に記載の方法。
[項目5]
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する段階は、
統合デバイスエレクトロニクスリダイレクト(IDE−R)用に前記コンピューティングデバイスの基本入出力システム(BIOS)を設定する段階を有する、項目1に記載の方法。
[項目6]
前記コンポーネントに対して前記更新を適用する段階は、
前記ブータブルイメージを利用してIDE−R要求に応答する段階を有する、項目5に記載の方法。
[項目7]
前記IDE−R要求に応答する段階は、
前記コンピューティングデバイスの管理エンジンで前記BIOSからのIDE−R要求を受信する段階と、
前記IDE−R要求に対して、前記管理エンジンから、前記ブータブルイメージのデータで応答する段階と
を有する、項目6に記載の方法。
[項目8]
前記コンポーネントに対して前記更新を適用する段階は、
前記コンピューティングデバイスの管理エンジンで、統合デバイスエレクトロニクスリダイレクト要求(IDE−R要求)を受信する段階と、
前記ブータブルイメージを利用して前記IDE−R要求に応答する段階と
を有する、項目1から7のいずれか一項に記載の方法。
[項目9]
前記コンポーネントに対して前記更新を適用する段階は、
前記コンポーネントのファームウェアを更新する段階を有する、項目1から8のいずれか一項に記載の方法。
[項目10]
前記コンポーネントに対して前記更新を適用する段階は、
前記更新をハードディスクドライブに適用する段階を有する、項目1から8のいずれか一項に記載の方法。
[項目11]
コンピューティングデバイスに、
前記コンピューティングデバイスのコンポーネントに対する更新を含むブータブルイメージを、前記コンピューティングデバイスのローカルの、セキュアなメモリ位置に格納する手順と、
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する手順と、
前記ブータブルイメージを利用して前記コンピューティングデバイスを再起動する手順と、
前記コンピューティングデバイスの前記再起動が行われると、前記コンポーネントに対して前記更新を適用する手順と
を実行させるプログラム。
[項目12]
前記コンピューティングデバイスを、前記ブータブルイメージから起動するよう設定する手順は、
統合デバイスエレクトロニクスリダイレクト(IDE−R)用に前記コンピューティングデバイスの基本入出力システム(BIOS)を設定する段階を有する、項目11に記載のプログラム。
[項目13]
前記コンポーネントに対して前記更新を適用する手順は、
前記ブータブルイメージを利用してIDE−R要求に応答する段階を有する、項目12に記載のプログラム。
[項目14]
前記IDE−R要求に応答する段階は、
前記コンピューティングデバイスの管理エンジンで前記BIOSからのIDE−R要求を受信して、前記IDE−R要求に対して、前記管理エンジンから、前記ブータブルイメージのデータで応答する手順を含む、項目13に記載のプログラム。
[項目15]
前記コンポーネントに対して前記更新を適用する手順は、
前記コンピューティングデバイスの管理エンジンで、統合デバイスエレクトロニクスリダイレクト要求(IDE−R要求)を受信する手順と、
前記ブータブルイメージを利用して前記IDE−R要求に応答する手順と
を有する、項目11から14のいずれか一項に記載のプログラム。
[項目16]
前記コンポーネントに対して前記更新を適用する手順は、
前記コンポーネントのファームウェアを更新する手順を有する、項目11から15のいずれか一項に記載のプログラム。
[項目17]
前記コンポーネントに対して前記更新を適用する手順は、
前記更新をハードディスクドライブに適用する手順を有する、項目11から15のいずれか一項に記載のプログラム。
[項目18]
コンピューティングデバイスであって、
起動デバイスと、
前記起動デバイスに対して起動要求を行う一次プロセッサと、
前記コンピューティングデバイスのコンポーネントのための更新を含むブータブルイメージを格納するセキュアなメモリ位置を有するローカルメモリデバイスと、
二次プロセッサを有し、前記起動デバイスからの前記一次プロセッサの前記起動要求を前記ブータブルイメージにリダイレクトすることで、前記更新を適用する管理エンジンと
を備える、コンピューティングデバイス。
[項目19]
前記更新を適用する段階は、
統合デバイスエレクトロニクスリダイレクト(IDE−R)用に前記コンピューティングデバイスの基本入出力システム(BIOS)を設定する段階を有する、項目18に記載のコンピューティングデバイス。
[項目20]
前記起動デバイスはハードディスクドライブであり、
前記更新は、前記ハードディスクドライブのファームウェアに対する更新である、項目18または19に記載のコンピューティングデバイス。
図1
図2
図3
図4
図5A
図5B
図6