JP6132009B2 - システム変更後におけるコンピューティング装置の適切な動作を確認するための方法及びシステム - Google Patents

システム変更後におけるコンピューティング装置の適切な動作を確認するための方法及びシステム Download PDF

Info

Publication number
JP6132009B2
JP6132009B2 JP2015503177A JP2015503177A JP6132009B2 JP 6132009 B2 JP6132009 B2 JP 6132009B2 JP 2015503177 A JP2015503177 A JP 2015503177A JP 2015503177 A JP2015503177 A JP 2015503177A JP 6132009 B2 JP6132009 B2 JP 6132009B2
Authority
JP
Japan
Prior art keywords
computing device
bios
operating system
system change
change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015503177A
Other languages
English (en)
Other versions
JP2015512535A (ja
Inventor
ビー. フォリスタル、ジェフ
ビー. フォリスタル、ジェフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2015512535A publication Critical patent/JP2015512535A/ja
Application granted granted Critical
Publication of JP6132009B2 publication Critical patent/JP6132009B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

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

Description

時に、コンピューティング装置は、適切な及び/又は効率的な動作を維持するために、システムレベルの変更を必要とすることがある。このような変更の例は、BIOSへの変更、プロセッサのマイクロコードのためのパッチ、ファームウェアのアップデート、セキュリティパッチ、構成変更等を含んでもよい。しかしながら、システム変更の実行により、コンピューティング装置が不適切な状態に陥る場合がある。結果的に、システムレベルの変更を自動で(例えば、無人で)実行することは、リスクを伴う。実際には、コンピューティング装置が自動システム変更要求を受信すると、システム変更の設定には利点が期待されるにも関わらず、システム障害のリスクを回避するために、その要求が無視又は拒否される場合がある。
本明細書に記載された発明は、添付図面において、限定的にではなく例示的に示される。図を簡単かつ明確にするために、図面中の要素は、必ずしも正確な縮尺で示されていない。例えば、いくつかの要素の寸法は、明確さのために、他の要素に比べて誇張して示される場合がある。さらに、適切だと考えられる場合には、対応する又は類似する要素を示すために、参照記号が図面間で繰り返し用いられている。
図1は、コンピューティング装置の少なくとも1つの実施形態を簡略化したブロック図である。
図2は、図1に示すコンピューティング装置の動作フェーズ及び動作モードの少なくとも1つの実施形態を簡略化したモジュール図である。
図3は、起動前処理中に適用可能な少なくとも2つのシステム構成の中で、いずれを適用するかを判断する方法の少なくとも1つの実施形態を簡略化したフロー図である。
図4は、システム変更開始のための方法の少なくとも1つの実施形態を簡略化したフロー図である。
図5は、保留システム変更に関する通信を処理する方法の少なくとも1つの実施形態を簡略化したフロー図である。
図6は、保留システム変更を確認する方法の少なくとも1つの実施形態を簡略化したフロー図である。
本開示の概念は、様々な変形及び代替的な形態をとることが可能であるが、その具体的な実施形態の例は、図面において例示的に示され、本明細書において詳述される。しかしながら、本開示の概念を開示された特定の形態に限定することを意図するものではなく、反対に、添付した特許請求の範囲によって定義された発明の趣旨及び範囲に属する全ての変形、均等物及び代替物を網羅することを意図するものであることを理解されたい。
以下の説明において、ロジックの実行、オペコード、オペランド指定手段、リソースの分配/共有/コピーの実行、システムコンポーネントのタイプ及び相互関係、及びロジックの分配/統合の選択等についての多数の具体的な説明が、本開示のより十分な理解のために述べられる。しかしながら、当業者によれば、開示された実施形態は、このような具体的な説明がなくとも実施可能であることを理解されたい。他の例において、制御構造、ゲートレベル回路及び全てのソフトウェア命令シーケンスは、発明を理解する上で妨げとならないよう、詳細には示されていない。当業者であれば、本開示に含まれる説明によれば、必要以上の実験を行うことなく、適切な機能を実行することが可能である。
本明細書における「1つの実施形態」、「実施形態」、「実施形態の例」等の記載は、記載された実施形態が特定の特徴、構造又は特性を含む場合があるが、各実施形態が必ずしもその特定の特徴、構造又は特性を含むものではないことを示す。さらに、このような記載は、必ずしも同じ実施形態を意味するものではない。さらに、特定の特徴、構造又は特性は、ある実施形態に関連して記載される場合、当業者の知識の範囲で、明示又は暗示された他の実施形態に関連して、このような特徴、構造又は特性をもたらすものである。
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェア, 又はそのあらゆる組み合わせにおいて実行可能である。コンピュータシステムにおいて実行された本発明の実施形態は、コンポーネント間における1つ以上のバスベースの相互接続、及び/又はコンポーネント間における1つ以上のポイントツーポイント相互接続 を含んでもよい。本発明の実施形態は、また、1つ以上のプロセッサによって読み出し又は実行可能な、暫定的又は非暫定的な機械可読媒体によって伝送又は記憶される命令に従って、実行されてもよい。機械可読媒体は、機械(例えば、コンピューティング装置)によって読み出し可能な形態で情報を記憶又は送信するためのあらゆるデバイス、機構又は物理的構造として具現されてもよい。例えば、機械可読媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、ミニ又はマイクロSDカード、メモリスティック、電気信号等として具現されてもよい。
図面において、デバイス、モジュール、命令ブロック及びデータ要素を意味する図的要素等の具体的な配置及び順序が、説明の簡略化のために示される場合がある。しかしながら、図面における図的要素の具体的な順序又は配置が、処理の特定の順序又はシーケンス、又は処理の分離が要求されることを示唆しようとするものではないことは、当業者であれば理解されるはずである。さらに、ある図的要素が図面中に含まれることは、このような要素が全ての実施形態において必要とされず、あるいは、このような要素が表す特徴がいくつかの実施形態において含まれず、又は他の要素と組み合わせられない場合があることを示唆しようとするものでもない。
概して、命令ブロックを表すために用いられる図的要素は、ソフトウェア又はファームウェアアプリケーション、プログラム、機能、モジュール、ルーチン、処理、手続き、プラグイン、アプレット、ウィジェット、コードフラグメント等の機械可読命令のあらゆる適切な形態を用いて実行されてもよく、このような命令の各々は、あらゆる適切なプログラミング言語、ライブラリ、アプリケーションプログラミングインタフェース(API)及び/又は他のソフトウェア開発ツールを用いて実行されてもよい。例えば、いくつかの実施形態は、機械レベルの命令、C、C++及び/又は他のプログラミング言語を用いて実行されてもよい。
同様に、データ又は情報を表すために用いられる図的要素は、は、レジスタ、データストア、テーブル、レコード、アレイ、インデックス、ハッシュ、マップ、ツリー、リスト、グラフ、(あらゆるファイルタイプの)ファイル、フォルダ、ディレクトリ、データベース等のあらゆる適切な電子配列又は構造を用いて実行されてもよい。
さらに、図面において、実線又は破線もしくは矢印等の接続要素が、2つ以上の他の図的要素間における接続、関係又は関連を示すために用いられる場合、このような接続要素がいずれも存在しないことが、接続、関係又は関連が存在しないことを示唆することを意味するものではない。換言すると、いくつかの要素間の接続、関係又は関連は、本開示の理解を妨げないよう、図面に示されない場合がある。また、図の簡略化のために、1つの接続要素が、要素間の複数の接続、関係又は関連を表すために用いられる場合がある。例えば、接続要素が信号、データ又は命令の通信を表す場合において、必要に応じて通信を行うために、このような要素が1つ又は複数の信号経路(例えば、バス)を表す場合があることは、当業者であれば理解されるはずである。
ここで図1を参照すると、システム変更実行後におけるコンピューティング装置100の適切な動作を確認するための例示的なシステムは、O/Sエージェント130及びBIOS/SMIロジック134として具現される。以下、詳述されるように、O/Sエージェント130は、BIOS/SMIロジック134と通信を行うことにより、コンピューティング装置100において、少なくとも暫定的に、自動的に(例えば、人が介在することなく)システム変更を設定することができる。システム変更の設定が失敗した場合、O/Sエージェント130及びBIOS/SMIロジック134は、オペレーティングシステム128を、前の(システム変更前の)構成に安全に戻らせる。このように、システム障害のリスクを低減しつつ、システムレベルの変更が自動的に実行される。
コンピューティング装置100は、限定するものではないが、モバイルデバイス、携帯情報端末、モバイルコンピューティング装置、スマートフォン、携帯電話、送受話器、単方向ページャー、双方向ページャー、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップ型コンピュータ、ラップトップ型コンピュータ、ノート型コンピュータ、ハンドヘルド型コンピュータ、タブレット型コンピュータ、サーバ、サーバアレイ又はサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク装置、ウェブ装置、分散型コンピューティングシステム、マルチプロセッサシステム、プロセッサベースシステム、家庭用電化製品、プログラム可能な家庭用電化製品、テレビ、デジタルテレビ、設定トップボックス、ワイヤレスアクセスポイント、基地局、加入者ステーション、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械又は前述したいずれかのあらゆる組み合わせを含むあらゆるタイプの電子デバイスとして具現されてもよい。例示的なコンピューティング装置100は、少なくとも1つのメモリ112及び入出力(I/O)サブシステム114と通信可能に結合される少なくとも1つのプロセッサ110を含む。コンピューティング装置100は、特定の用途に応じて、あらゆるタイプのコンピューティング装置、例えば、デスクトップ型コンピュータ、ラップトップ型又はタブレット型コンピュータ、サーバ、エンタープライズコンピュータシステム、コンピュータネットワーク、モバイル又はハンドヘルド型コンピューティング装置又は他のコンピューティング機能を有する(あらゆるサイズのフォームファクタの)電子デバイスとして具現されてもよい。
例示的なプロセッサ110は、少なくとも1つのプロセッサコア126を含む。キャッシュメモリの量に加えて、メモリ112は、ダイナミックランダムアクセスメモリデバイス(DRAM)、同期型ダイナミックランダムアクセスメモリデバイス(SDRAM)、ダブルデータレートダイナミックランダムアクセスメモリデバイス(DDR SDRAM)及び/又は他の揮発性メモリデバイス等のあらゆるタイプの適切なメモリデバイスとして具現されてもよい。
いくつかの実施形態において、I/Oサブシステム114は、メモリコントローラ(例えば、メモリコントローラサブシステム又はノースブリッジ)及び/又は入出力コントローラ(例えば、入出力コントローラ又はサブシステムもしくはサウスブリッジ)(図示せず)を含んでもよい。他の実施形態において、他の構成を有するI/Oサブシステムが用いられてもよい。例えば、いくつかの実施形態において、I/Oサブシステム114は、システムオンチップ(SoC)の一部を形成してもよく、プロセッサ110及びコンピューティング装置100の他のコンポーネントと共に、1つの集積回路チップ上に組み込まれてもよい。いくつかの実施形態において、I/Oサブシステム114の各コンポーネント自体は、共通の集積回路チップ上に配置されてもよいことを理解されたい。
例示的なI/Oサブシステム114は、メモリ112、少なくとも1つのデータ記憶装置116、少なくとも1つのファームウェアデバイス118、割り込みコントローラ120、タイマ122、及び選択的に、1つ以上の周辺機器124と通信可能に結合される。データ記憶装置116の一部は、ディスク記憶装置(例えば、ハードディスク)、物理的及び/又は論理的記憶デバイスのネットワーク等の、データ及び/又はコンピュータの命令を記憶するためのあらゆる適切なデバイスとして具現されてもよい。 例示的な実施形態において、オペレーティングシステム(O/S)128、O/Sエージェント130及び1つ以上のソフトウェアアプリケーション136は、データ記憶装置116内に存在する。いくつかの実施形態において、オペレーティングシステム128は、例えば、MICROSOFT WINDOWS(登録商標)、LINUX(登録商標)、APPLE iOS又は他のオペレーティングシステム、もしくは、個別型、ハンドヘルド型又は携帯型電子デバイス等の、具体的に特定のタイプのコンピューティング装置向けの他の同様の命令設定であってもよい。前述したオペレーティングシステムの例は、各所有者の登録商標又は商標であり、あるいは、その場合がある。いくつかの実施形態において、ソフトウェアアプリケーション136は、任意に、例えば、コンピューティング装置100上で実行可能な、又は、個別型、ハンドヘルド型又は携帯型電子デバイス等の、具体的に特定のタイプのコンピューティング装置向けの、あらゆるソフトウェアアプリケーションであってもよい。オペレーティングシステム128、O/Sエージェント130及び/又はソフトウェアアプリケーション136の一部は、迅速な処理又は他の理由のために、動作時において、メモリ112にコピーされてもよい。
例示的なファームウェアデバイス118は、フラッシュメモリ等の不揮発性メモリ又はリードオンリメモリ(ROM)デバイスとして具現される。例示的な実施形態において、ファームウェアデバイス118は、基本入出力システム(BIOS)132として一般に知られるルーチンの設定を記憶し、これは、BIOS/SMIロジック134、データ、命令及び/又は他の情報を含む。BIOS/SMIロジック134は、図2に示される、後述のBIOS初期起動ロジック222及びBIOS/SMIランタイムロジック232を含む。
例示的なBIOS132によれば、コンピューティング装置100は、オペレーティングシステム128を開始させ、かつ、I/Oサブシステム114に結合された様々な他のデバイスと通信を行うことができる。特定のプロセッサアーキテクチャに応じて、ユニファイドエクステンシブルファームウェアインタフェース(UEFI)又は他の命令を、BIOSに代えて用いてもよいが、説明の簡略化のため、本明細書において、BIOSという用語は、より一般的に、BIOS、UEFI、又はこれらと同様のあらゆる機構を表すために用いられてもよい。動作時において、BIOS132及び/又はBIOS/SMIロジック134の一部は、迅速な実行又は他の理由のために、メモリ112にコピーされてもよい。
図の簡略化のために個別に示されるが、様々な実施形態において、割り込みコントローラ120及び/又はタイマ122の各々又はいずれかは、I/Oサブシステム114、ファームウェア118及び/又はプロセッサ110内に具現されてもよい。割り込みコントローラ120及びタイマ122は、O/Sエージェント130とBIOS/SMIロジック134との間の通信を円滑化するとともに、特別な目的の動作モードにおいて、いくつかの機能又は処理を実行させるように構成される。いくつかのコンピューティング環境において、特別な目的の動作モードは、システム管理モード(SMM)として知られており、この用語は、本明細書において、このような特別な目的の動作モードをより一般的に表すために用いられてもよい。SMMは、例えば、電力管理、ハードウェア制御及び/又はエラー処理等の、システム全体の機能を処理するために用いられてもよい。
一般的に、SMMは、オペレーティングシステム128から典型的には隠されたプラットホームサービスである。システム管理モードの使用は、特定のプロセッサアーキテクチャに応じて、システム管理の割り込み(SMI)又はプラットホーム管理の割り込み(PMI)等の管理割り込みイベントの発生によって、開始されてもよい。これらの割り込みイベントは、通常、マスク不可能であるためマスク可能割り込み及び他のイベントに優先する。典型的には、管理割り込みは、実行され得るあらゆるオペレーティングシステムの処理と同時に実行される非同期処理を開始させる。後述するように、例示的な割り込みコントローラ120は、あるイベントの発生に応じて、管理割り込み (SMI又はPMI等)を生成する。例示的なタイマ122は、期間の終了によって管理割り込みが開始するように、定められた又はプログラム可能な期間(例えば、5分の範囲)でカウントダウンを行うように用いることができる。
I/Oサブシステム114は、例えば、コンピューティング装置100の意図された用途に応じて、ネットワークインタフェース、グラフィックドライバ、オーディオドライバ等(図示せず)の1つ以上の他の周辺機器124と通信可能に結合されてもよい。さらに、コンピューティング装置100は、説明の明確化のために図1に示されていない他のコンポーネント、サブコンポーネント及びデバイスを含んでもよいことを理解されたい。
概して、コンピューティング装置100のコンポーネントは、図1に示すように、概略的に両方向矢印で表される1つ以上の信号経路によって、通信可能に結合される。このような信号経路は、個々のデバイス間の通信を容易にすることが可能なあらゆるタイプの有線又は無線の信号経路として具現されてもよい。例えば、信号経路は、任意の数の電線、プリント回路基板のトレース、ビア、バス、ポイントツーポイント相互接続、介在デバイス等として具現されてもよい。
動作において、オペレーティングシステム128は、コンピューティング装置100における実行開始後の任意の時間(例えば、ランタイム)に、システムレベルの変更実行要求を受信してもよい。このような要求は、例えば、a ソフトウェア又はファームウェアのアップデート、中央処理ユニット(CPU)又はプロセッサのマイクロコードに対するパッチ、BIOSに対する変更、セキュリティパッチ及び/又は構成変更に関するものであってもよい。説明の簡略化のために、このような変更及び/又はアップデートもしくはこれらの組み合わせの各々、いずれか又は全ては、本明細書において「システム変更」と称されてもよく、1つ以上のシステム変更を含むシステム構成は、「保留構成」と称されてもよい。
例として、いくつかの場合、プロセッサ110、オペレーティングシステム128又はソフトウェアアプリケーション136は、動作を開始すると、(例えば、インターネットウェブサイト又はリモートサーバへ行くことによって)コンピューティング装置100にまだ設定されていないシステム変更の有無を、自動的にチェックしてもよい。コンピューティング装置100に設定可能なシステム変更がある場合、O/Sエージェント130はBIOS/SMIロジック134と通信を行うことにより、オペレーティングシステム128を保留システム変更で「試験的に」起動する試みを1回行う。O/Sエージェント130が、試験的な起動が失敗したと判断した場合、オペレーティングシステム128は、前の構成(例えば、システム変更なし)で再起動を行う。
ここで図2を参照すると、モジュール図は、コンピューティング装置100の電源がオンになった後におけるコンピューティング装置100の動作のフェーズを示す。コンピューティング装置100の少なくとも1つの実施形態は、標準(例えば、CPU)動作モード210及び特別な目的の(例えば、SMM)動作モード200において動作可能であるため、図2は、これらのモードの各々における命令、ルーチン、処理等をも示す。
コンピューティング装置100の動作フェーズは、ファームウェア初期化又は「BIOS」フェーズ212、オペレーティングシステム起動フェーズ214及びオペレーティングシステム実行フェーズ216を含む。BIOSフェーズ212及びO/S起動フェーズ214は、より一般的に、「起動前」フェーズと称されてもよく、O/S実行フェーズ216は、「ランタイム」フェーズと称されてもよい。フェーズ212、214、216は、概して、順次生じる。例えば、O/S起動フェーズ214は、BIOSフェーズ212が完了するまで、典型的には開始しない。同様に、O/S実行フェーズ216は、典型的には、O/S起動フェーズ214が完了するまで、典型的には開始しない。動作モード200、210は、フェーズ212、214、216のいずれかにおいて、同時に実行されてもよい。
BIOSフェーズ212において、コンピューティング装置100は、コンピュータ制御のロジックを実行することにより、ブロック220及び222によって特定されたタスクを達成する。これらのタスクは、標準動作モード210において達成される。ブロック220において、BIOS132及びSMM200は、初期化される。ブロック222において、BIOS132は、どのシステム構成をオペレーティングシステム128の起動時に用いるか(例えば、既知の「良好な」構成で起動するか否か、あるいはシステム変更を含む新たな又は「保留の」構成で起動するか否か)を決定するように構成された初期起動ロジックを実行する。後述するブロック222のタスクを達成するための例示的な方法300を、図3に示す。ブロック224において、BIOS132は、ブロック222においてBIOS132によって定められた構成で、オペレーティングシステム128をロード及び起動する。コンピューティング装置100は、ブロック224においてコンピュータ制御のロジックの実行時は、O/S起動フェーズ214及び標準動作モード210にある。
一度、オペレーティングシステム128が起動又は再起動されると(例えば、図2のステップ(1)又はステップ(3))、コンピューティング装置100は、O/S実行フェーズ216及び標準動作モード210で動作する。 ブロック226によって示されるように、O/S実行フェーズ216において、コンピューティング装置100は、ソフトウェアアプリケーション136を実行してもよく、1つ以上の周辺機器124を介してユーザとやり取りを行ってもよく、及び/又は他の行動又は動作を実行してもよい。O/S実行フェーズ216における任意の時間に、O/Sエージェント230は、上述したように、システム変更要求228を受信してもよい。要求228は、例えば、コンピューティング装置100において実行中の別の処理によって、又はコンピューティング装置100のユーザによって発生してもよい。要求228に応じて、O/Sエージェント130は、図2のステップ(2)において、要求されたシステム変更の実行を開始する。後述する図2のステップ(2)のタスクを達成するための例示的な方法400を、図4に示す。SMIメッセージを用いて、例えば、O/Sエージェント130は、BIOS/SMIロジック134を呼び出すことにより、要求されたシステム変更を少なくとも暫定的に適用する。BIOS/SMIロジック134は、ブロック232によって示されるように、特別な目的の動作モード(例えば、SMM200)において実行される。後述するブロック232のタスクを達成するための例示的な方法500を、図5に示す。 O/Sエージェント130は、次に、オペレーティングシステム128を、システム変更(図2のステップ(3))を伴って再起動し、図2のステップ(4)において、例えば、1つ以上のシステムレベルの試験を実行することによって、システム変更を確認する。後述する図2のステップ(4)のタスクを達成するための例示的な方法600を、図6に示す。
ここで図3を参照すると、図2のブロック222のタスクを達成するための例示的な方法300(例えば、オペレーティングシステム128の起動時にどの構成を用いるかを決定する)が示される。方法300は、BIOS132によって実行されるように構成されたコンピュータ制御のロジック(例えば、BIOS初期起動ロジック222)として具現されてもよい。ブロック310において、コンピューティング装置100は、電源がオンにされ、又は他の方法によって起動(又は再起動)される。ブロック310は、破線で示されることにより、例示的な実施形態において、ブロック310が、単に、方法300の次のブロック(例えば、312、314、316、318、320、322)の前に発生するイベントに過ぎず、方法300のあらゆるコンピュータ制御のロジックに含まれる必要がないことを示す。
ブロック312において、BIOS初期起動ロジック222は、「起動保留」フラグが設定されているか否かを判断する。例示的な実施形態において、起動保留フラグは、単に、システム変更が保留の場合(例えば、O/Sエージェント130がシステム変更を含む新たな構成の設定要求を受信した場合)にオンになり(例えば、「1」の値が割り当てられ)、又は、設定待ちのシステム変更がない場合に「0」の値が割り当てられるビットである。例示的な実施形態において、起動保留フラグは、BIOS記憶装置(例えば、フラッシュメモリ)に記憶される。保留システム変更がない場合、次にブロック314において、BIOS初期起動ロジック222は、既知の「良好な」構成(例えば、システム変更前に存在していたシステム構成)を適用する。
システム変更が保留の場合、次にブロック316において、BIOS初期起動ロジック222は、起動保留フラグをクリアする(例えば、起動保留フラグを「1」の値から「0」の値に変更し、逆もまた同様に変更する)。例示的な実施形態において、保留構成の起動が無事完了しない限り、起動保留フラグは、オペレーティングシステム128を、保留システム変更を含む構成で起動するための、ただ1回の試みを確実に行うために用いられる。
ブロック318において、タイマ122は、期間が終了するとオペレーティングシステム128が自動的にシャットダウン及び再起動されるように、期間のカウントダウンを行うように構成される。例示的な実施形態において、期間は、時間の終了前に、コンピューティング装置100が保留構成で無事起動させる試みを行うために十分な時間を与えるように設定される。BIOS初期起動ロジック222は、次にブロック320において、保留構成を適用する。ブロック322において、BIOS初期起動ロジック222は、場合によっては、ブロック314で確立された既知の構成又はブロック320で適用された保留構成のいずれかを用いて、オペレーティングシステム128の起動を開始する。保留構成が成功した場合、ブロック320及び322のタスクは、タイマ122の終了前に、無事完了する。ブロック320及び322のタスク完了前に、タイマ122が終了した場合、保留構成は失敗したとみなされる。
ここで図4を参照すると、図2のステップ(2)のタスク(例えば、保留構成の起動開始)を達成するための例示的な方法400が示される。方法400は、O/Sエージェント230によって実行されるように構成されたコンピュータ制御のロジックとして具現されてもよい。ブロック410において、O/Sエージェント230は、システム変更(例えば、図2に示す要求228)を含む保留システム構成を適用(例えば、設定)するための要求を受信する。上述したように、要求は、例えば、他の処理又はユーザによって、発生する場合がある。ブロック410は、破線で示されることにより、例示的な実施形態において、ブロック410は、単に、方法400の次のブロック(例えば、412、414、416)の前に発生するイベントに過ぎず、方法400のあらゆるコンピュータ制御のロジックに含まれる必要がないことを示す。
ブロック412において、O/Sエージェントは、BIOS/SMIランタイムロジック232に対してメッセージに含まれる保留構成のアップロードを命令するメッセージ(例えば、SMI)を、BIOS/SMIランタイムロジック232に送信する。保留構成のさらなる処理は、BIOS/SMIランタイムロジック232によって、後述する図5のブロック528で始まる特別な目的の動作モード200において実行される。その間にブロック414において、O/Sエージェント230は、BIOS/SMIランタイムロジック232からの、図5のブロック528、530、532、538における処理を完了したことを示すメッセージを待つ。ブロック416において、O/Sエージェント230は、オペレーティングシステム128の、(図2のステップ(3)として示される)システム変更を含む保留構成での再起動を開始する。
ここで図5を参照すると、ブロック232のタスクを達成するための例示的な方法500が示される。方法500は、BIOS132によって実行されるように構成されるコンピュータ制御のロジックとして(例えば、BIOSランタイムロジック232として)具現されてもよい。例示的な方法500は、保留構成の処理時において、多数の異なるメッセージ(例えば、SMI)をO/Sエージェント230から受信するように構成される。例示的な実施形態において、方法500は、BIOS/SMIランタイムロジック232がO/Sエージェント230からメッセージを受信する度に実行される。
ブロック510において、BIOS/SMIランタイムロジック232は、O/Sエージェント230からメッセージ(例えば、SMI)を受信する。例示的な実施形態において、ブロック510において、BIOS/SMIランタイムロジック232によって受信されたメッセージは、図4のブロック412、図6のブロック612、図6のブロック618又は図6のブロック624において、O/Sエージェント230によって生成される。ブロック510は、破線によって示されることにより、例示的な実施形態において、ブロック510が、単に、イベントは、方法500の次のブロック(例えば、ブロック512、518、528、534及び次のブロック)の前に発生するに過ぎず、方法500のあらゆるコンピュータ制御のロジックに含まれる必要なないことを示す。図2に示すように、BIOS/SMIランタイムロジック232は、特別な目的の動作モード200を用いて実行される。
ブロック512において、方法500は、O/Sエージェント230からのメッセージが、保留構成が無事適用され、全ての適用可能な試験(例えば、「保留コミット」メッセージ)を通過したことを示すか否かを判断する。例示的な実施形態において、「保留コミット」メッセージが、後述する図6のブロック624において、O/Sエージェント230によって、BIOS/SMIランタイムロジック232に送信される。ブロック512において、BIOS/SMIランタイムロジック232によって受信されたメッセージが「保留コミット」メッセージである場合、次にブロック514において、方法500は、既知の「良好な」構成を、システム変更を示す保留構成と入れ替え、ブロック516において、タスクの無事完了を示すステータスメッセージをO/Sエージェント230に返す。例示的な実施形態において、ブロック516の「成功」メッセージは、O/Sエージェント230によって受信され、後述する図6のブロック626において、制御は、標準動作モード210に戻される。
O/Sエージェント230からのメッセージが「保留コミット」メッセージではない場合、方法500は、ブロック518に進む。ブロック518において、方法500は、O/Sエージェント230からのメッセージが、O/Sエージェント230が現在の構成のステータス情報を要求していることを示すか否か、つまり、既知の「良好な」構成又はシステム変更を含む保留構成が現在使用されているか否か(例えば、「どの構成」メッセージ)を判断する。例示的な実施形態において、「どの構成」メッセージは、後述する図6のブロック612において、O/Sエージェント230によって、BIOS/SMIランタイムロジック232に送信される。
ブロック518において、BIOS/SMIランタイムロジック232によって受信されたメッセージが「どの構成」メッセージである場合、次にブロック520において、方法500は、保留構成が、前回オペレーティングシステム128が起動されたときに用いられたか否かを判断する。例示的な実施形態において、これは、上述した起動保留フラグを参照して判断される。前回の起動が保留構成を用いた場合、次にブロック522において、タイマ122 は無効化され、ブロック524において、保留構成を用いるべきことを示すステータスメッセージが、BIOS/SMIランタイムロジック232によって、O/Sエージェント230に送信される。起動保留フラグに基づいて、BIOS/SMIランタイムロジック232は、保留構成が無事適用されたという結論に達したため、タイマ122は、ブロック522において無効化される。前回の起動が保留構成を用いなかった場合、次にブロック526において、既知の「良好な」構成が使用されなければならないことを示すステータスメッセージは、BIOS/SMIランタイムロジック232によって、O/Sエージェント230に送信される。例示的な実施形態において、ブロック524の「保留構成を使用」メッセージ又はブロック526の「既知の構成を使用」メッセージは、場合によってO/Sエージェント230に受信され、制御は、後述する図6のブロック614において、標準動作モード210に戻される。
O/Sエージェント230からのメッセージが「どの構成」メッセージではない場合、方法500は、ブロック528に進む。ブロック528において、方法500 は、O/Sエージェント230からのメッセージが、システム変更を含む保留構成を含むか否か(例えば、「新規構成」メッセージか否か)を判断する。例示的な実施形態において、「新規構成」メッセージは、上述した図4のブロック412において、O/Sエージェント230によって、BIOS/SMIランタイムロジック232に送信される。
ブロック528において、BIOS/SMIランタイムロジック232によって受信されたメッセージが「新規構成」メッセージである場合、次にブロック530において、方法500は、「新規構成」メッセージに含まれるデータを含む保留構成を生成し、ブロック532において上述したように、起動保留フラグを設定し、ブロック538において、保留構成が無事生成されたことを示すメッセージをO/Sエージェント230に送信する。上述したように、ブロック528は、O/Sエージェント230がシステム変更要求228を受信する度に呼び出される。例示的な実施形態において、ブロック538の「成功」メッセージは、O/Sエージェント230によって受信され、上述した図4のブロック414において、制御は標準動作モード210に戻される。
O/Sエージェント230からのメッセージが「新規構成」メッセージではない場合、少なくともいくつかの実施形態において、方法500は、ブロック534に進む。ブロック534において、方法500は、O/Sエージェント230からのメッセージが、保留構成が全ての適用可能な試験を通過しなかったため破棄されるべきであることを示すか否か(例えば、「保留破棄」メッセージか否か)を判断する。例示的な実施形態において、「保留破棄」メッセージは、後述する図6のブロック618において、O/Sエージェント230によって、BIOS/SMIランタイムロジック232に送信される。
ブロック534において、BIOS/SMIランタイムロジック232によって受信されたメッセージが「保留破棄」メッセージである場合、次にブロック536において、方法500は、保留構成を削除し、保留構成が無事削除されたことを示すステータスメッセージを、O/Sエージェント230に送信する。上述したように、方法500は、特別な目的の動作モード200において実行され、制御は、図5のブロック516、524、526、528及び536において、標準のCPU動作モード210に戻される。
ここで図6を参照すると、図2のステップ(4)のタスク(例えば、保留構成が無事設定されたことの確認)を達成するための例示的な方法600が示される。方法600は、O/Sエージェント230によって実行されるように構成されるコンピュータ制御のロジックとして具現されてもよい。方法600は、図4のブロック416において、オペレーティングシステム128が保留構成で一度再起動されると、呼び出される。従って、ブロック610は、破線によって示されることにより、例示的な実施形態において、ブロック610が、単に、方法600の次のブロック(例えば、ブロック612及び次のブロック)の前に発生するイベントに過ぎず、方法600のあらゆるコンピュータ制御のロジックに含まれる必要がないことを示す。
ブロック612において、O/Sエージェント230は、上述した「どの構成」メッセージをBIOS/SMIランタイムロジック232に送信することにより、既知の「良好な」構成又は保留構成が使用されているか否かを判断する。ブロック614において、O/Sエージェント230は、上述した図5のブロック524又はブロック526のいずれかにおいて、BIOS/SMIランタイムロジック232によって生成されたメッセージを受信する。ブロック614において、O/Sエージェント230によって受信されたBIOS/SMIランタイムロジック232からのメッセージが既知の「良好な」構成が使用されていることを示す場合、次にO/Sエージェント230は、保留構成での1回の試験的な起動が失敗した(例えば、起動完了前にタイマ122が終了したため、既知の「良好な」構成で再起動を開始した、あるいはユーザが電源又はリセットボタンを押下した)と結論付けることができる。このようなイベントにおいて、O/Sエージェント230は、ブロック616において、試みの失敗に応じて、コンピュータ制御のエラー処理ロジックを開始し、少なくともいくつかの実施形態において、ブロック618において、上述した「保留破棄」メッセージをBIOS/SMIランタイムロジック232に送信する。エラー処理ロジックのいくつかの例は、保留構成の起動に失敗した試みのログ及び/又はこれに関する他のデータの保持、1つ以上のこのような失敗した試みに関するレポートの生成、コンピューティング装置100のユーザ、出力装置(ディスプレイ又はスピーカ等)、ネットワーク又はリモートコンピューティング装置及び/又は他の救済手段に対する1つ以上の警告の送信を含んでもよい。救済手段又はブロック616においてO/Sエージェント230によって実行される手段は、コンピューティング装置100の独自のシステム設計又は構成の要求によって異なる場合がある。
ブロック614において、O/Sエージェント230によって受信されたBIOS/SMIランタイムロジック232からのメッセージが、保留構成が使用されていることを示す場合、次にO/Sエージェント230は、保留構成での起動が成功したと結論付けることができ、ブロック620に進むことができる。しかしながら、保留構成の起動が無事完了した場合であっても、システムが不安定性又は他の動作上の課題を有するリスクは、依然として存在する。そこで、ブロック620において、O/Sエージェント230は、1つ以上の診断、システム試験、オペレーティングシステム試験、組み込み式自己診断試験(BIST)及び/又は他の機能の試験又は一連の試験を実行することにより、保留構成での起動後に、コンピューティング装置100が適切に動作しているか否かを判断する。試験又はブロック620においてO/Sエージェント230によって実行される試験は、コンピューティング装置100の独自のシステム設計又は構成の要求によって異なる場合がある。
保留構成が、1つ以上の試験及び/又はブロック620においてO/Sエージェント230によって実行される診断を無事完了した場合、次にブロック624において、O/Sエージェント230は、上述した「保留コミット」メッセージを、BIOS/SMIランタイムロジック232に送信し、BIOS/SMIランタイムロジック232に対して、既知の「良好な」構成を保留構成と入れ替えることを命令する。ブロック626において、O/Sエージェント230は、図5のブロック516において、BIOS/SMIランタイムロジック232によって生成された「成功」ステータスメッセージを受信し、保留構成の実行が成功したことに関するイベントロジックを開始する。このようなイベントロジックのいくつかの例は、保留構成の起動に成功した試み及び/又はこれに関する他のデータのロギング、1つ以上のこのような成功した試みに関するレポートの生成、1つ以上のコンピューティング装置100のユーザ、出力装置(ディスプレイ又はスピーカ等)、ネットワーク、又はリモートコンピューティング装置及び/又は他のイベント報告手段に対する1つ以上の警告の送信を含んでもよい。イベント報告手段又はブロック626においてO/Sエージェント230によって実行される手段は、コンピューティング装置100の独自のシステム設計又は構成の要求によって異なる場合がある。
保留構成が1つ以上の試験及び/又はブロック620においてO/Sエージェント230によって実行される診断を完了しない場合、次にブロック618において、O/Sエージェント230は、上述した「保留破棄」メッセージをBIOS/SMIランタイムロジック232に送信することにより、BIOS/SMIランタイムロジック232に、保留構成の削除及び既知の「良好な」構成の維持を命令する。様々な実施形態において、O/Sエージェント230は、任意の基準又は任意の数の基準を用いることにより、コンピューティング装置100の独自のシステム設計又は構成の要求に基づいて、保留構成を承認するか否かを判断してもよい。他の実施形態において、実行された試験及び/又は診断の通過が要求される場合があるとしても、例えば、いくつかの実施形態において、全ての実行された試験及び/又は診断の通過が100%未満であることを、「通過」とみなしてもよい。
本明細書で開示されたデバイス、システム及び方法の例示的な実施例を、以下に示す。デバイス、システム及び方法の実施形態は、あらゆる1つ以上の後述する実施例及びそのあらゆる組み合わせを含んでもよい。
1つの実施例において、システムレベルの変更を実行するように構成されるコンピューティング装置は、少なくとも1つのプロセッサコア及び少なくとも1つのプロセッサコアに結合されるメモリデバイスを含んでもよく、メモリデバイスは、複数の命令を記憶し、複数の命令は、少なくとも1つのプロセッサコアによって実行されると、少なくとも1つのプロセッサコアに、オペレーティングシステム及びBIOSがコンピューティング装置上で実行されている間、BIOSに対するメッセージを送信するオペレーティングシステムによるシステム変更を開始させる。実施例において、少なくとも1つのプロセッサは、BIOSによって、期間の終了後、オペレーティングシステムを再起動するように構成されるタイマを開始させてもよい。実施例において、少なくとも1つのプロセッサは、オペレーティングシステムを、システム変更を伴って起動させてもよい。実施例において、少なくとも1つのプロセッサは、BIOSと通信を行うオペレーティングシステムによって、システム変更を伴う起動の成否を判断してもよい。実施例において、少なくとも1つのプロセッサは、BIOSによって、システム変更の成否の判断に応じてシステム変更を処理してもよい。実施例において、オペレーティングシステムは、システム変更要求を受信するように構成されてもよい。実施例において、BIOSは、システム変更が保留であることを示すフラグを設定するように構成されてもよい。実施例において、BIOSは、フラグが設定されたか否かを判断し、フラグが設定されたことに応じて、システム変更を伴ってオペレーティングシステムを起動するように構成されてもよい。実施例において、BIOSは、フラグが設定されたか否かを判断し、フラグが設定されなかったことに応じて、システム変更を伴わずにオペレーティングシステムを起動するように構成されてもよい。実施例において、BIOSは、システム変更を伴う起動が成功したという判断に応じて、タイマを無効化するように構成されてもよい。 実施例において、コンピューティング装置は、期間の終了に応じてオペレーティングシステムを再起動するように構成されてもよい。実施例において、オペレーティングシステムは、システム変更を伴うオペレーティングシステムの起動に応じて、コンピューティング装置の適切な動作を確認するように構成される少なくとも1つの試験を実行するように構成されてもよい。実施例において、オペレーティングシステムは、システム変更の成否を示すBIOSにメッセージを送信するように構成されてもよい。実施例において、オペレーティングシステム及びBIOSは、コンピューティング装置上で第1の構成において実行されてもよく、BIOSは、オペレーティングシステムが、システム変更が成功したと判断したことに応じて、第1の構成をシステム変更を含む第2の構成と入れ替えるように構成されてもよい。実施例において、オペレーティングシステム及びBIOSは、コンピューティング装置上で第1の構成において実行されてもよく、BIOSは、オペレーティングシステムが、システム変更が失敗したと判断したことに応じて、システム変更を削除し、かつ、第1の構成を維持するように構成されてもよい。実施例において、オペレーティングシステムは、システム変更の成否判断に応じて、ユーザ、出力装置、ネットワーク及びリモートコンピューティング装置の少なくとも1つに対して、システム変更のステータスを報告するように構成されてもよい。
他の実施例において、方法は、オペレーティングシステム及びオペレーティングシステムと通信を行うBIOSを実行するコンピューティング装置において、オペレーティングシステムがコンピューティング装置上で実行されている間、オペレーティングシステムによって、コンピューティング装置に対するシステム変更を開始させることを含んでもよい。実施例において、方法は、システム変更を少なくとも暫定的に適用するBIOSを含んでもよい。実施例において、方法は、システム変更の成否を判断するオペレーティングシステムを含んでもよい。実施例において、方法は、システム変更の成否判断に応じてシステム変更を処理するBIOSを含んでもよい。実施例において、方法は、オペレーティングシステムにより、システム変更を伴う起動を試み、システム変更が失敗したという判断に応じて、システム変更を伴わない再起動を行うタイマを構成するBIOSを含んでもよい。実施例において、方法は、システム変更の少なくとも暫定的な適用に応じて少なくとも1つの診断を実行するオペレーティングシステムを含んでもよい。
他の実施例において、コンピューティング装置は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと結合されるコンピュータ回路とを含んでもよく、コンピュータ回路は、少なくとも1つのプロセッサによって上述した方法のいずれかを実行するように配置される。他の実施例において、少なくとも1つのコンピュータアクセス可能媒体は、実行されたことに応じて、コンピューティング装置が上述した方法のいずれかを実行する複数の命令を含んでもよい。
他の実施例において、システム変更を実行するための方法は、オペレーティングシステム及びBIOSがコンピューティング装置上で実行されている間、コンピューティング装置に対するシステム変更要求をオペレーティングシステムから受信するBIOSを含んでもよい。方法は、要求されたシステム変更を伴うオペレーティングシステムの起動を開始させるBIOSを含んでもよい。方法は、オペレーティングシステムからシステム変更の成否の表示を受信するBIOSを含んでもよい。方法は、システム変更の成否の表示に応じたシステム変更の処理を含んでもよい。
実施例において、システム変更を実行するように構成されるコンピューティング装置は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと結合されるコンピュータ回路とを含んでもよく、コンピュータ回路は、少なくとも1つのプロセッサによって上述した方法を実行するように配置されてもよい。実施例において、少なくとも1つのコンピュータアクセス可能媒体は、実行されたことに応じて、コンピューティング装置が上述した方法を実行する複数の命令を含んでもよい。
他の実施例において、システム変更を実行するための方法は、オペレーティングシステム及びBIOSがコンピューティング装置上で実行されている間、オペレーティングシステムの第1の構成及びシステム変更を含むオペレーティングシステムの第2の構成のいずれが実行されているかを示すメッセージをBIOSから受信するオペレーティングシステムを含んでもよい。方法は、第2の構成が実行されていることを示すBIOSからのメッセージに応じて、コンピューティング装置が適切に動作か否かを判断するために、少なくとも1つの試験の実行を含んでもよい。方法は、コンピューティング装置が第2の構成で適切に動作するか否かを示すメッセージのBIOSに対する送信を含んでもよい。
他の実施例において、システム変更を実行するように構成されるコンピューティング装置は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと結合されるコンピュータ回路とを含んでもよく、コンピュータ回路は、少なくとも1つのプロセッサによって上述した方法を実行するように配置されてもよい。他の実施例において、システム変更を実行するように構成される少なくとも1つのコンピュータアクセス可能媒体は、実行されたことに応じて、コンピューティング装置が上述した方法を実行する複数の命令を含んでもよい。
本開示は、図面及び前述の説明において示され、かつ詳述されているが、このような図及び説明は、例であって本質を限定するものではないと考えられており、例示的な実施形態のみが示され、かつ、説明されているとともに、本開示の趣旨に属する全ての変更及び変形に対して保護を求めるものであることを理解されたい。さらに、本開示の態様は、コンピューティング装置の文脈に沿って説明されているが、様々な態様は、他の用途、例えば、システムレベルの変更又はアップデートの自動的な開始を望むあらゆる用途を有することを理解されたい。このような用途は、例えば、電子デバイス、「スマート」機器及び/又は他の製品等の、1つ以上のコンピュータ制御の特徴を有するあらゆるデバイスを含んでもよい。

Claims (19)

  1. システムレベルの変更を実行するコンピューティング装置であって、
    少なくとも1つのプロセッサコアと、
    前記少なくとも1つのプロセッサコアに結合されるメモリデバイスとを備え、
    前記メモリデバイスは、複数の命令を記憶し、前記複数の命令は、前記少なくとも1つのプロセッサコアによって実行されると、前記少なくとも1つのプロセッサコアに、
    オペレーティングシステム及びBIOSが前記コンピューティング装置上で実行されている間に、前記BIOSに対するメッセージを送信する前記オペレーティングシステムにより、システム変更を開始させ、
    前記BIOSによって、期間の終了後、前記システム変更を伴わずに前記オペレーティングシステムを再起動するタイマを開始させ、
    前記システム変更を伴って前記オペレーティングシステムを起動させ、
    前記BIOSと通信を行う前記オペレーティングシステムによって、当該オペレーティングシステムが最後に起動されたときに前記システム変更の前後何れの構成が使用されたかを前記BIOSから受信させて、前記システム変更を伴う前記起動の成否を判断させ、
    前記システム変更を伴う前記オペレーティングシステムの起動に応じて、前記コンピューティング装置の適切な動作を確認する少なくとも1つの試験を前記オペレーティングシステムにより実行させ
    前記BIOSによって、前記システム変更の成否判断の結果および前記少なくとも1つの試験の結果に応じて前記システム変更を処理させるコンピューティング装置。
  2. 前記オペレーティングシステムは、システム変更要求を受信する請求項1に記載のコンピューティング装置。
  3. 前記BIOSは、前記システム変更が保留であることを示すフラグを設定する請求項1または2に記載のコンピューティング装置。
  4. 前記BIOSは、前記フラグが設定されたか否かを判断するとともに、前記フラグが設定されたことに応じて、前記システム変更を伴って前記オペレーティングシステムを起動する請求項3に記載のコンピューティング装置。
  5. 前記BIOSは、前記フラグが設定されたか否かを判断するとともに、前記フラグが設定されなかったことに応じて、前記システム変更を伴わずに前記オペレーティングシステムを起動する請求項3または4に記載のコンピューティング装置。
  6. 前記BIOSは、前記システム変更を伴う前記起動が成功したという判断に応じて、前記タイマを無効化する請求項1から5のいずれか1項に記載のコンピューティング装置。
  7. 前記オペレーティングシステムは、前記システム変更の成否を示すメッセージを前記BIOSに送信する請求項1から6のいずれか1項に記載のコンピューティング装置。
  8. 前記オペレーティングシステム及び前記BIOSは、前記コンピューティング装置上で第1の構成において実行され、前記BIOSは、前記オペレーティングシステムが、前記システム変更が成功したと判断し適切な動作を確認したことに応じて、前記第1の構成を、前記システム変更を含む第2の構成と入れ替える請求項1から7のいずれか1項に記載のコンピューティング装置。
  9. 前記オペレーティングシステム及び前記BIOSは、前記コンピューティング装置上で第1の構成において実行され、前記BIOSは、前記オペレーティングシステムが、前記システム変更が失敗したと判断したことに応じて、前記システム変更を削除するとともに、前記第1の構成を維持する請求項1から8のいずれか1項に記載のコンピューティング装置。
  10. 前記オペレーティングシステムは、前記システム変更の成否判断に応じて、ユーザ、出力装置、ネットワーク及びリモートコンピューティング装置の少なくとも1つに対して、前記システム変更のステータスを報告する請求項1から9のいずれか1項に記載のコンピューティング装置。
  11. システム変更を実行するための方法であって、
    コンピューティング装置上で、オペレーティングシステム及び前記オペレーティングシステムと通信を行うBIOSを実行する段階と、
    前記オペレーティングシステムによって、前記オペレーティングシステムが前記コンピューティング装置上で実行されている間に、前記コンピューティング装置に対するシステム変更を開始する段階と、
    前記BIOSによって、前記システム変更を少なくとも暫定的に適用する段階であって、前記BIOSによって、前記オペレーティングシステムにより前記システム変更を伴う起動を試みるとともに、前記システム変更が失敗したという判断に応じて、前記システム変更を伴わない再起動を行うタイマを構成する段階を有する、段階と、
    前記オペレーティングシステムによって、前記システム変更の成否を判断する段階であって、前記オペレーティングシステムによって、当該オペレーティングシステムが最後に起動されたときに前記システム変更の前後何れの構成が使用されたかを前記BIOSから受信して、前記システム変更の成否を判断する、段階と、
    前記システム変更を伴う前記オペレーティングシステムの起動に応じて、前記コンピューティング装置の適切な動作を確認する少なくとも1つの試験を前記オペレーティングシステムにより実行する段階と、
    前記BIOSによって、前記システム変更の成否判断の結果および前記少なくとも1つの試験の結果に応じて、前記システム変更を処理する段階とを含む
    方法。
  12. システム変更を実行するコンピューティング装置であって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサと結合されるコンピュータ回路とを備え、
    前記コンピュータ回路は、前記少なくとも1つのプロセッサによって、請求項11に記載の方法を実行するように配置されるコンピューティング装置。
  13. システム変更を実行する少なくとも1つのプログラムであって、
    実行されたことに応じて、前記コンピューティング装置によって、請求項11に記載の方法を実行する複数の命令を含むプログラム。
  14. システム変更を実行するための方法であって、
    オペレーティングシステム及びBIOSがコンピューティング装置上で実行されている間に、前記BIOSが、
    前記オペレーティングシステムから、前記コンピューティング装置に対するシステム変更要求を受信する段階と、
    前記要求されたシステム変更を伴う前記オペレーティングシステムの起動を開始すると共に期間の終了後、前記システム変更を伴わずに当該オペレーティングシステムを再起動するタイマを開始する段階と、
    前記オペレーティングシステムが最後に起動されたときに前記システム変更の前後何れの構成が使用されたかを前記オペレーティングシステムに送信し、前記システム変更の成否判断の表示を、前記オペレーティングシステムから受信する段階と、
    前記システム変更を伴う前記オペレーティングシステムの起動に応じて前記コンピューティング装置の適切な動作を確認するべく前記オペレーティングシステムにより実行される少なくとも1つの試験についての結果の表示を前記オペレーティングシステムから受信する段階と、
    前記システム変更の成否の前記表示および前記少なくとも1つの試験の結果の前記表示に応じて、前記システム変更を処理する段階とを含む方法。
  15. システム変更を実行するコンピューティング装置であって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサと結合されるコンピュータ回路とを備え、
    前記コンピュータ回路は、前記少なくとも1つのプロセッサによって、請求項14に記載の方法を実行するように配置されるコンピューティング装置。
  16. システム変更を実行する少なくとも1つのプログラムであって、
    実行されたことに応じて、前記コンピューティング装置により、請求項14に記載の方法を実行する複数の命令を含むプログラム。
  17. システム変更を実行するための方法であって、
    オペレーティングシステム及びBIOSがコンピューティング装置上で実行されている間に、前記オペレーティングシステムが、
    システム変更要求を送信することで前記BIOSにシステム変更を開始させて、前記BIOSに期間の終了後、前記システム変更を伴わずに当該オペレーティングシステムを再起動するタイマを開始させ、
    前記オペレーティングシステムの第1の構成、及び、前記システム変更を含む前記オペレーティングシステムの第2の構成のいずれが実行されているかを示すメッセージを、前記BIOSから受信することと、
    前記第2の構成が実行されていることを示す前記BIOSからのメッセージに応じて、前記コンピューティング装置が適切に動作しているか否かを判断するために、少なくとも1つの試験を実行することと、
    前記コンピューティング装置が前記第2の構成で適切に動作しているか否かを示すメッセージを送信することで前記BIOSに前記システム変更を処理させる、ことを含む方法。
  18. システム変更を実行するコンピューティング装置であって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサと結合されるコンピュータ回路とを備え、
    前記コンピュータ回路は、前記少なくとも1つのプロセッサにより、請求項17に記載の方法を実行するように配置されるコンピューティング装置。
  19. システム変更を実行する少なくとも1つのプログラムであって、
    実行されたことに応じて、前記コンピューティング装置により、請求項17に記載の方法を実行する複数の命令を含むプログラム。
JP2015503177A 2012-03-31 2012-03-31 システム変更後におけるコンピューティング装置の適切な動作を確認するための方法及びシステム Expired - Fee Related JP6132009B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031761 WO2013147915A1 (en) 2012-03-31 2012-03-31 Method and system for verifying proper operation of a computing device after a system change

Publications (2)

Publication Number Publication Date
JP2015512535A JP2015512535A (ja) 2015-04-27
JP6132009B2 true JP6132009B2 (ja) 2017-05-24

Family

ID=49260968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015503177A Expired - Fee Related JP6132009B2 (ja) 2012-03-31 2012-03-31 システム変更後におけるコンピューティング装置の適切な動作を確認するための方法及びシステム

Country Status (7)

Country Link
US (1) US9880862B2 (ja)
EP (1) EP2831722B1 (ja)
JP (1) JP6132009B2 (ja)
KR (1) KR101626433B1 (ja)
CN (1) CN104185836B (ja)
AU (1) AU2012375273B2 (ja)
WO (1) WO2013147915A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2012375273B2 (en) 2012-03-31 2016-05-26 Intel Corporation Method and system for verifying proper operation of a computing device after a system change
CN105917306B (zh) * 2014-01-22 2020-04-10 惠普发展公司,有限责任合伙企业 用于配置系统固件配置数据的系统和方法
JP6404708B2 (ja) * 2014-12-24 2018-10-10 Necプラットフォームズ株式会社 情報処理装置、bios設定情報変更方法、並びにコンピュータ・プログラム
US9921819B2 (en) 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
CN104503810B (zh) * 2015-01-08 2018-03-23 合肥联宝信息技术有限公司 更新计算机系统中的bios固件的方法及装置
US9734015B2 (en) * 2015-06-23 2017-08-15 Dell Products, L.P. Pre-boot self-healing and adaptive fault isolation
US20170090909A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Secure patch updates for programmable memories
JP6940213B2 (ja) 2015-11-20 2021-09-22 1934612 オンタリオ インク.1934612 Ontario Inc. 炭化シリコン・メンブレンを用いた流体の清浄化装置、システム、および方法
WO2017107120A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Modifying operating system
US10001981B2 (en) 2016-05-26 2018-06-19 At&T Intellectual Property I, L.P. Autonomous server installation
US11243782B2 (en) * 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
WO2018136041A1 (en) * 2017-01-18 2018-07-26 Hewlett-Packard Development Company, L.P. Software package installations with proximity tags
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
US10635819B2 (en) * 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
TWI633487B (zh) * 2017-05-05 2018-08-21 神雲科技股份有限公司 自動回復基本輸入輸出系統映像檔的方法及電腦系統
US10866623B2 (en) * 2018-11-16 2020-12-15 Dell Products L.P. Information handling system and method to detect and recover from no power/no post failures
US11481248B2 (en) * 2020-08-05 2022-10-25 Dell Products L.P. Completing an SMI task across multiple SMI events

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265720A (ja) * 1992-03-19 1993-10-15 Fujitsu Ltd システム情報管理方式
KR20000019147A (ko) * 1998-09-09 2000-04-06 구자홍 컴퓨터의 롬 바이오스(rom bios)구동 시스템 및 그 방법
US7318089B1 (en) * 1999-09-30 2008-01-08 Intel Corporation Method and apparatus for performing network-based control functions on an alert-enabled managed client
US6418498B1 (en) * 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
US7149978B1 (en) * 2000-12-27 2006-12-12 Adaptec, Inc. Methods for managing host adapter settings
JP2003316582A (ja) * 2002-04-24 2003-11-07 Nec System Technologies Ltd 2重化biosの制御方法と装置
US7003659B2 (en) * 2002-04-29 2006-02-21 Intel Corporation Method and/or apparatus for reliably booting a computer system
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
US20040076043A1 (en) * 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
JP4597551B2 (ja) 2003-03-28 2010-12-15 株式会社リコー ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェア更新方法及びプログラム
JP2004326287A (ja) * 2003-04-23 2004-11-18 Mitsubishi Electric Corp プログラム遠隔更新システム
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US7457945B2 (en) 2004-03-23 2008-11-25 Dell Products L.P. System and method for providing a secure firmware update to a device in a computer system
TWI250407B (en) 2004-06-10 2006-03-01 Acer Inc Electronic system capable of using universal plug and play (UPNP) protocol to update software program and method thereof
JP2006039660A (ja) 2004-07-22 2006-02-09 Yokogawa Electric Corp クライアントサーバシステムおよびクライアント装置のプログラムバージョン変更方法
US7373551B2 (en) * 2004-12-21 2008-05-13 Intel Corporation Method to provide autonomic boot recovery
JP4810172B2 (ja) * 2005-09-29 2011-11-09 日本電気株式会社 制御装置及びバージョンアップ方法並びにプログラム
US20080046710A1 (en) * 2006-08-17 2008-02-21 Steven Maddocks Switching firmware images in storage systems
US8082431B2 (en) * 2006-09-29 2011-12-20 Intel Corporation System and method for increasing platform boot efficiency
US7886190B2 (en) * 2006-09-29 2011-02-08 Intel Corporation System and method for enabling seamless boot recovery
CN100435106C (zh) 2006-11-21 2008-11-19 西安交通大学 应用服务器的分级再生方法
US8566961B2 (en) * 2008-08-08 2013-10-22 Absolute Software Corporation Approaches for a location aware client
JP5126686B2 (ja) 2009-01-06 2013-01-23 日本電気株式会社 情報処理装置、情報処理装置の動作方法及びそのプログラム
TWI386847B (zh) * 2009-02-04 2013-02-21 Novatek Microelectronics Corp 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置
CN101587456B (zh) 2009-07-08 2011-06-15 腾讯科技(深圳)有限公司 一种对软件运行的保护处理方法及装置
CN102473090B (zh) * 2009-08-25 2016-02-10 惠普开发有限公司 可用于访问bios的多个接口文件
US20130086571A1 (en) * 2011-09-30 2013-04-04 International Business Machines Corporation Dynamically Updating Firmware In A Computing System
US20130262849A1 (en) * 2012-03-29 2013-10-03 Bheeshmar Redheendran Automatic reconfiguration of initialization firmware in a computer system
AU2012375273B2 (en) 2012-03-31 2016-05-26 Intel Corporation Method and system for verifying proper operation of a computing device after a system change

Also Published As

Publication number Publication date
CN104185836A (zh) 2014-12-03
EP2831722A1 (en) 2015-02-04
AU2012375273B2 (en) 2016-05-26
US9880862B2 (en) 2018-01-30
KR101626433B1 (ko) 2016-06-01
AU2012375273A1 (en) 2014-09-25
KR20140125878A (ko) 2014-10-29
EP2831722B1 (en) 2019-08-28
JP2015512535A (ja) 2015-04-27
US20150067311A1 (en) 2015-03-05
EP2831722A4 (en) 2015-09-30
CN104185836B (zh) 2019-01-18
WO2013147915A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
JP6132009B2 (ja) システム変更後におけるコンピューティング装置の適切な動作を確認するための方法及びシステム
US11385908B1 (en) Cloning of firmware configuration settings using rest over IPMI interface
US10353779B2 (en) Systems and methods for detection of firmware image corruption and initiation of recovery
US10860308B1 (en) Peripheral device firmware update using rest over IPMI interface firmware update module
US9996142B2 (en) Selective power management for pre-boot firmware updates
TWI335536B (en) Information handling system (ihs) method and for updating a non-volatile memory (nvm) included in an information handling system
US10404538B1 (en) Remote platform configuration
US10866801B1 (en) Non-destructive update of discrete components of firmware
WO2016074127A1 (zh) 计算机设备及计算机设备内存启动的方法
US10303487B2 (en) System and method for booting an information handling system
US11113070B1 (en) Automated identification and disablement of system devices in a computing system
TWI764454B (zh) 韌體損壞恢復技術
US11106457B1 (en) Updating firmware runtime components
US10824437B1 (en) Platform management for computing systems without baseboard management controllers
CN111708652B (zh) 一种故障修复方法及装置
US9778936B1 (en) Booting a computing system into a manufacturing mode
US20200210166A1 (en) Systems and methods for enforcing update policies while applying updates from bootable image file
US11204704B1 (en) Updating multi-mode DIMM inventory data maintained by a baseboard management controller
US11586536B1 (en) Remote configuration of multi-mode DIMMs through a baseboard management controller
WO2008048581A1 (en) A processing device operation initialization system
US11593121B1 (en) Remotely disabling execution of firmware components
US11169740B1 (en) Simultaneous initiation of multiple commands for configuring multi-mode DIMMS using a BMC

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170321

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170403

R150 Certificate of patent or registration of utility model

Ref document number: 6132009

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees