JP6272991B2 - プリブートファームウェア更新のための選択的パワーマネジメント - Google Patents

プリブートファームウェア更新のための選択的パワーマネジメント Download PDF

Info

Publication number
JP6272991B2
JP6272991B2 JP2016516914A JP2016516914A JP6272991B2 JP 6272991 B2 JP6272991 B2 JP 6272991B2 JP 2016516914 A JP2016516914 A JP 2016516914A JP 2016516914 A JP2016516914 A JP 2016516914A JP 6272991 B2 JP6272991 B2 JP 6272991B2
Authority
JP
Japan
Prior art keywords
computing device
mobile computing
firmware
hardware component
power consumption
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
JP2016516914A
Other languages
English (en)
Other versions
JP2016535329A (ja
Inventor
ブルス,マリク
クマール ガネサン,クリシュナ
クマール ガネサン,クリシュナ
ジェイ. ジンマー,ヴィンセント
ジェイ. ジンマー,ヴィンセント
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2016535329A publication Critical patent/JP2016535329A/ja
Application granted granted Critical
Publication of JP6272991B2 publication Critical patent/JP6272991B2/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Description

計算デバイスは、一般的に、ハードウェア初期化、低レベルハードウェア管理、及びブートプロセス管理の役割を担うファームウェアを含む。計算デバイスのブートの役割を担うメインプラットフォームファームウェアは、Unified Extensible Firmware Interface(“UEFI”)仕様により実装されてもよい。この仕様にはUnified EFI Forumにより発行された幾つかのバージョンがある。UEFI仕様は、計算デバイスのファームウェアと、計算デバイスのオペレーティングシステムとの間のインタフェースを規定する。プラットフォームファームウェアに加え、計算デバイスは、コントローラチップ、周辺デバイス、またはその他のコンポーネントの専用ファームウェアも含み得る。
ファームウェアは、一般的に、ランタイムとブート中には読み取り専用であり、特別なファームウェア更新プロセス中に更新され得る。更新されたファームウェアは、安定性とセキュリティの向上のみならず新しい機能(additional features)も提供する。現代のオペレーティングシステムは、プリブートファームウェアにファームウェア更新プロセスを任せていることがある。しかし、典型的なプリブートファームウェアは、計算デバイスのすべてのコンポーネントが完全機能パワー状態(例えば、「S0」状態)にある時に実行する。それゆえ、プリブートファームウェア更新の適用には大きなエネルギーが必要であり、バッテリー駆動のモバイル計算デバイスには重要な検討事項である。
ここで説明するコンセプトを、添付した図面において、限定ではなく実施例により説明する。説明を単純かつ明確にするため、図に示した要素は必ずしもスケール通りには描いていない。適当であれば、対応または類似する要素を示すため、複数の図面で同じ参照レベルを用いた。
プリブートファームウェア更新中の選択的パワー管理のためのモバイル計算デバイスの少なくとも一実施形態を示す簡略化したブロック図である。 図1のモバイル計算デバイスの環境の少なくとも一実施形態を示す簡略化したブロック図である。 図1及び図2のモバイル計算デバイスにより実行され得るファームウェアの更新方法の少なくとも一実施形態を示す概略図である。 図1及び図2のモバイル計算デバイスにより実行され得るファームウェアの更新方法の少なくとも一実施形態を示す簡略化したフロー図である。 図1及び図2の計算デバイスにより実行され得るプリブートファームウェア更新中の選択的パワーマネジメントの方法の少なくとも一実施形態を示す簡略化したフロー図である。
図面の詳細な説明
本開示のコンセプトはいろいろな修正を施したり代替的形式を取ったりすることもできるが、その具体的な実施形態を図面において実施例で示し、ここに詳細に説明する。しかし、言うまでもなく、開示した具体的な形式に本開示を限定する意図ではなく、逆に、本発明は本開示と添付した特許請求の範囲に沿ったすべての修正、等価物及び代替物をカバーするものである。
本明細書において「one embodiment」、「an embodiment」、「an illustrative embodiment」などと言う場合、記載した実施形態が、ある機能、構造、または特徴を含むが、かならずしもすべての実施形態がその機能、構造、または特徴を含んでも含まなくてもよい。さらに、かかる文言は必ずしも同じ実施形態を参照しているとは限らない。さらに、ある機能、構造、または特徴をある実施形態について説明した場合、明示的に記載していようがいまいが、他の実施形態に関するそれらの機能、構造、または特徴に影響が及ぶことは、当業者には自明である。また、言うまでもなく、「少なくとも1つのA、B及びC」との形式のリストに含まれるアイテムは、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)又は(A、B、及びC)を意味し得る。同様に、「A、B又はCのうちの少なくとも1つ」との形式のリストに含まれるアイテムは、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)又は(A、B、及びC)を意味し得る。
開示した実施形態は、幾つかの場合には、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装できる。開示の実施形態は、一時的又は非一時的な機械読み取り可能(例えば、コンピュータ読み取り可能)記憶媒体により担われ、又はそれに格納された(一以上のプロセッサにより読み取られ実行され得る)命令として実装することもできる。機械読み取り可能記憶媒体は、機械により読み取り可能な形式で情報を格納又は送信する任意のストレージデバイス、メカニズム、又はその他の物理的構造(例えば、揮発性又は不揮発性メモリ、メディアディスク、又はその他のメディアデバイス)として実施できる。
図中、幾つかの構造的又は方法フィーチャを具体的な構成及び/又は順序で示すかも知れない。しかし、言うまでもなく、かかる具体的な構成及び/又は順序は必須ではない場合がある。むしろ、幾つかの場合には、かかるフィーチャは、例示した図面に示したのとは異なる方法及び/又は順序で構成することもできる。また、ある図面に構造的又は方法フィーチャを含めることは、かかるフィーチャがすべての実施形態において必要であることを意味するのではなく、幾つかの実施形態では、含まれなくてもよいし、他のフィーチャと組み合わされてもよい。
ここで図1を参照して、例示のモバイル計算デバイス100は、プリブートファームウェア更新プロセスにおいて、そのコンポーネントに選択的パワーマネジメントを適用する。使用時には、上記の通り、モバイル計算デバイス100のオペレーティングシステムは、例えば、デバイスメーカーにより運営されているリモートサーバから、一以上のファームウェア更新を受信する。オペレーティングシステムは、次のブートサイクルでファームウェア更新が更新されるようにし(stage)、システムをリセットする。リブート時、オペレーティングシステムローダが、更新されるようにされた(staged)ファームウェア更新を検出し、カプセルとしてプラットフォームファームウェアにファームウェア更新を渡し、更新カプセルモードでシステムをリセットする。リブート時にさらに、プラットフォームファームウェアがカプセルからファームウェア更新を取り出し、ファームウェア更新を適用する。ファームウェア更新を適用するとき、プラットフォームファームウェアは、モバイル計算デバイス100のコンポーネントを選択的にパワーマネジメントする。すなわち、プラットフォームファームウェアは、ファームウェア更新を適用する必要があるコンポーネントをパワーアップ又はイネーブルし、ファームウェア更新を適用する必要がないコンポーネントをパワーダウン又はディスエーブルする。ファームウェア更新を適用した後、プラットフォームファームウェアはシステムを再度リセットし、モバイル計算デバイス100は新しく更新されたファームウェアでリブートする。
開示の技術により、ファームウェア更新における使用パワーが低減できる。これは、バッテリー駆動のデバイスや、高密度のデータセンターサーバなどの限定された電力バジェットで動作するその他のデバイスでは重要である。バッテリー駆動デバイスの場合、使用パワーを低減することにより、ファームウェア更新中にバッテリーが切れてしまうリスクが低減される。また、使用パワーを低減することにより、ファームウェアをもっと頻繁に更新でき、デバイスの安定性及び/又はセキュリティが向上するかも知れない。
モバイル計算デバイス100は、ここに説明の機能を実行するあらゆるタイプのデバイスとして実施してもよい。例えば、モバイル計算デバイス100は、つぎのものを含むが、これに限定されない:スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、モバイル計算デバイス、セルラフォン、ハンドセット、メッセージングデバイス、車両テレマティックスデバイス、分散計算システム、コンシューマエレクトロニクスデバイス、及び/又はここに説明の機能を実行するように構成されたその他の任意の計算デバイス。図1に示したように、例示のモバイル計算デバイス100は、プロセッサ120、入出力サブシステム122、メモリ124、データストレージデバイス126及びファームウェアストレージ128を含む。もちろん、モバイル計算デバイス100は、他の一実施形態では、ポータブルコンピュータに一般的に見つかるようなその他の又は追加的なコンポーネント(例えば、様々な入出力デバイスなど)を含み得る。また、幾つかの実施形態では、例示したコンポーネントのうち一以上は、他のコンポーネントに組み込まれていても良く、又はその一部を構成していても良い。例えば、メモリ124又はその部分は、幾つかの実施形態では、プロセッサ120に組み込まれていても良い。さらにまた、モバイル計算デバイス100として例示したが、言うまでもなく、下記の開示は、デスクトップコンピュータ、ワークステーション、またはサーバコンピュータなど実質的に据え置き型の計算デバイスにも等しく適用してもよい。
プロセッサ120は、ここに説明する機能を実行できる任意のタイプのプロセッサとして実施できる。例えば、このプロセッサ120は、シングル又はマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、又はその他のプロセッサ又は処理/制御回路として実施できる。同様に、メモリ124は、ここに説明する機能を実行できる、任意のタイプの揮発性又は不揮発性メモリ又はデータストレージとして実施できる。動作中、メモリ124は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバなど、モバイル計算デバイス100の動作中に用いられる様々なデータとソフトウェアを記憶できる。メモリ124は、I/Oサブシステム122を介してプロセッサ120に通信可能に結合している。I/Oサブシステム112は、プロセッサ120、メモリ124、及びモバイル計算デバイス100のその他のコンポーネントとの入出力動作を容易にする回路及び/又はコンポーネントとして実施できる。例えば、I/Oサブシステム122は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク(すなわち、ポイント・ツー・ポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路板トレースなど)及び/又は入出力動作を容易にするその他のコンポーネント及びサブシステムとして、又はこれらを含むものとして実施できる。幾つかの実施形態では、I/Oサブシステム122は、システム・オン・チップ(SoC)の一部を形成でき、単一の集積回路チップ上にプロセッサ120、メモリ124、及びモバイル計算デバイス100のその他のコンポーネントとともに、組み込むことができる。
データストレージデバイス126は、例えば、メモリデバイスと回路、メモリカード、ハードディスクドライブ、固体ドライブ、その他の記憶デバイスなどの、データを短期又は長期にわたり格納するように構成された任意のタイプのデバイスとして実施できる。データストレージデバイス126は、モバイル計算デバイス100のデータとファームウェアコードを記憶するシステムパーティションを含んでいてもよい。データストレージデバイス126は、モバイル計算デバイス100のオペレーティングシステムのデータファイル及び実行ファイルを記憶するオペレーティングシステムパーティションを含んでいてもよい。
モバイル計算デバイス100は、さらに、ファームウェアストレージ128を含む。ファームウェアストレージ128は、モバイル計算デバイス100のプラットフォームファームウェアの永続記憶をするように構成された任意のデバイスとして実施されてもよい。プラットフォームファームウェアは、ハードウェアの初期化、基本的入出力の管理、プリブート実行環境のホスト、一以上のオペレーティングシステムの選択と実行をする低レベルの命令またはソフトウェアを含み得る。ファームウェアストレージ128は、例えば、フラッシュメモリチップとして、またはバッテリーバックアップと結合した小容量の相補的金属酸化物半導体(「CMOS」)メモリとして実施してもよい。幾つかの実施形態では、ファームウェアストレージ128の一部または全部は、データストレージデバイス126上に常駐したファームウェアボリュームとして実施してもよい。幾つかの実施形態では、ファームウェアストレージ128は、例えば、I/Oサブシステム122などの、モバイル計算デバイス100の一以上の他のコンポーネントに組み込まれてもよい。
モバイル計算デバイス100はさらに通信回路130を含む。これはモバイル計算デバイス100とリモート計算デバイスとの間の通信を可能にする任意の通信回路、デバイスまたはそれらの集まりとして実施されてもよい。通信回路130は、一以上の任意の通信技術(例えば、無線または有線通信)と、かかる通信を行う関連プロトコル(例えば、イーサネット(登録商標)、Bluetooth(登録商標)、Wi−Fi(登録商標)、WiMAXなど)とを用いるように構成されていてもよい。通信回路130は、無線ネットワークアダプタを含むネットワークアダプタとして実施されてもよい。
幾つかの実施形態では、モバイル計算デバイス100はマネージャビリティエンジン(manageability engine)132を含んでいてもよい。マネージャビリティエンジン132は、モバイル計算デバイス100の設定、制御または管理を支援するデバイスとして実施される。幾つかの実施形態では、マネージャビリティエンジン132は、モバイル計算デバイス100がパワーオフされ、またはプリブート環境が実行される時を含め、モバイル計算デバイス100の他の部分の状態に関わらず動作できてもよい。かかる独立した動作を支援するため、マネージャビリティエンジン132は、モバイル計算デバイス100のメインプロセッサ120とは別の帯域外(out−of−band)プロセッサを含んでいてもよい。さらに、幾つかの実施形態では、マネージャビリティエンジン132は、モバイル計算デバイス100の状態に関わらず(例えば、メインプロセッサ120の状態に関わらず)、通信回路130を用いて通信することもできる。これは「帯域外(out−of−band)」通信としても知られている。マネージャビリティエンジン132は、専用ファームウェア134を実行またはアクセスしてもよい。幾つかの実施形態では、ファームウェア134はマネージャビリティエンジン132に組み込まれても、それ専用のものであってもよい。追加的または代替的に、マネージャビリティエンジン132はファームウェアストレージ128に記憶されたファームウェアを実行しても、それにアクセスしてもよい。幾つかの実施形態では、マネージャビリティエンジン132は、I/Oサブシステム122に組み込まれてもよいし、I/Oサブシステム122の一部を構成してもよい。
モバイル計算デバイス100は、さらに、複数のデバイスコントローラ136を含む。各デバイスコントローラ136は、モバイル計算デバイス100のハードウェアコンポーネントとインタフェースし、及び/又はそれを制御するように構成されている。各デバイスコントローラ136は選択的にパワーマネジメントされてもよい。すなわち、モバイル計算デバイス100は、各デバイスコントローラ136の消費電力レベルを設定してもよい。可能な消費電力レベルには、完全なパワーダウンと、完全なパワーオンと、サスペンドやスタンバイなどの中間パワーレベルとが含まれる。デバイスコントローラ136は、入出力コントローラ、ディスクコントローラ、ネットワークコントローラ、ディスプレイコントローラ、またはモバイル計算デバイス100のその他の任意のハードウェアコンポーネントのためのコントローラを含んでいてもよい。入出力コントローラは、例えば、シリアルペリフェラルインタフェース(SPI)コントローラ、キーボード及びシステムコントローラ(KSC)、ExpressCard(EC)コントローラ、またはユニバーサルシリアルバス(USB)コントローラである。デバイスコントローラ136は、ディスクリートチップとして実施してもよいし、I/Oサブシステム122などのモバイル計算デバイス100の他のコンポーネントとともにパッケージされてもよい。各デバイスコントローラ136は専用ファームウェア138を含んでいてもよい。専用ファームウェア138は、フラッシュメモリ、電子的消去可能ROM(EEPROM)、デバイスコントローラ136に組み込まれた又は結合されたその他の不揮発性メモリとして実施されてもよい。
モバイル計算デバイス100は、さらに、複数のペリフェラルデバイス140を含む。かかるペリフェラルデバイス140は、別の入出力デバイス、インタフェースデバイス、及び/又はその他のペリフェラルデバイスをいくつ含んでいてもよい。例えば、幾つかの実施形態では、ペリフェラルデバイス140は、カメラ、サウンドカード、ディスプレイ、キーボード、スピーカシステム、及び/又はその他の入出力デバイス、インタフェースデバイス、及び/又はペリフェラルデバイスを含んでいてもよい。モバイル計算デバイス100は、ペリフェラルデバイス140の一部または各々を選択的にパワーマネジメントしてもよい。幾つかの実施形態では、ペリフェラルデバイス140は、一以上のデバイスコントローラ136により、パワーマネジメントを含む制御をされてもよい。例えば、モバイル計算デバイス100は、デバイスコントローラ136に、付随するすべてのペリフェラルデバイス140をパワーダウンするように命令してもよい。
ここで図2を参照して、例示の実施形態では、モバイル計算デバイス100は、動作中に環境200を確立する。例示の環境200は、オペレーティングシステムローダ202、オペレーティングシステム204、及び更新モジュール208を含む。例示の実施形態200は、1つのオペレーティングシステム204を含むが、他の実施形態では、環境200はネイティブでまたは仮想的に実行された2つ以上のオペレーティングシステム204を含んでいてもよい。環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせとして実施されてもよい。
オペレーティングシステムローダ202は、プリブート環境からオペレーティングシステム204を起動するように構成されている。また、オペレーティングシステムローダ202は、オペレーティングシステム204が一以上のファームウェア更新をブート時に適用されるようにしたか(stage)判断するように構成されている。適用されるようにしたとき、オペレーティングシステムローダ202は、適用されるようにされた(staged)ファームウェア更新を更新モジュール208に渡す。
オペレーティングシステム204は、なかんずく、ファームウェア更新をブートプロセス中に適用されるようにする(stage)ように構成されている。ファームウェア更新は、デバイスメーカ(図示せず)に関連するウェブサーバなどの外部サーバから受信してもよい。以下、さらに説明するように、ファームウェア更新は、ファームウェアストレージ128に記憶されたプラットフォームファームウェア、ファームウェア134に記憶されたマネージャビリティエンジンファームウェア、またはファームウェア138に記憶されたデバイスコントローラファームウェアに対してされてもよい。オペレーティングシステム204は、ファームウェア更新をするようにした後、リブートをトリガーする。幾つかの実施形態では、これらの機能は、サブモジュールにより、例えば、更新マネージャモジュール206により実行されてもよい。
更新モジュール208は、オペレーティングシステム204により生成される一以上のファームウェア更新を取り出し、そのファームウェア更新をプリブート環境で適用する。ファームウェア更新は、オペレーティングシステム204から更新モジュール208にカプセルとして転送されてもよい。カプセルはデータのインメモリブロック(in−memory block)である。カプセルは、例えば、UEFI仕様で規定されたUpdateCapsule()を用いて転送されてもよい。ファームウェア更新を適用するとき、更新モジュール208は、モバイル計算デバイス100のハードウェアコンポーネントの消費電力設定を、一組のプラットフォームパワーポリシー214に基づいて調整する。プラットフォームパワーポリシー214は、そのファームウェア更新に基づいて消費電力設定を確定する一組の規則である。一般的に、プラットフォームパワーポリシー214は、ファームウェア更新適用する必要があるハードウェアコンポーネントがパワーアップされ、一方、必要がないハードウェアコンポーネントはパワーダウンされることを規定する。プラットフォームパワーポリシー214は、スリープモードまたはスタンバイモードなどの中間消費電力(power consumption)設定も規定していてもよい。更新モジュール208は、ファームウェア更新の状態(例えば、成功または失敗)をオペレーティングシステム204に示してもよい。幾つかの実施形態では、更新モジュール208の機能は、一以上のサブモジュールにより、例えば、カプセル管理モジュール210またはパワー管理モジュール212により実行されてもよい。
ここで図3を参照して、モバイル計算デバイス100はデバイス100のファームウェアを更新する方法300を実行してもよい。図3に示した方法300は図4を参照して説明する、より具体的な方法400の概略である。図3に示したように、方法300は、モバイル計算デバイス100により、複数のリブートサイクルにわたり実行されてもよい。方法300はブロック302で開始し、モバイル計算デバイス100がオペレーティングシステム204を正常にブートし、オペレーティングシステム204がファームウェア更新を次のブートサイクルで更新するようにする(stage)。ブロック304において、モバイル計算デバイス100は正常に再起動する。再起動(restart)後、ブロック306において、モバイル計算デバイス100は、更新されるようにされた(staged)ファームウェア更新に基づきカプセルを準備する。ブロック308において、モバイル計算デバイスは、ウォームリスタートして、特殊な更新カプセルモードに入る。更新カプセルモードでは、ブロック310において、モバイル計算デバイスは事前に準備されたカプセルに基づきファームウェアを更新する。ファームウェアを更新後、ブロック312において、モバイル計算デバイス100は再度、正常に再起動する。
ここで図4を参照して、方法300の一実施形態を方法400として示した。方法400は、ファームウェアを更新するため、モバイル計算デバイス100により実行されてもよい。方法400はブロック402で開始し、モバイル計算デバイス100はプリブート環境でプラットフォームハードウェアを初期化する。例えば、モバイル計算デバイス100は、プラットフォームファームウェアを実行するのに必要なコンポーネントを、例えば、メモリ124とI/Oサブシステム122を初期化してもよい。プラットフォームハードウェアは、以下に説明するように、モバイル計算デバイス100の初期ブートの一部として、例えば、ユーザがデバイスをパワーオンした時に、またはプラットフォームリセットに応じて、初期化されてもよい。
ブロック404では、モバイル計算デバイス100は、プラットフォームが更新カプセルモードでブートされたか判断する。以下にさらに説明するように、モバイル計算デバイス100は、システムのリセットをプログラムでトリガーしてもよい。リセットをトリガーする時、モバイル計算デバイス100はブートモードを指定してもよい。例えば、モバイル計算デバイス100は、UEFI仕様で規定されたResetSystem()関数に引数としてブートモードを指定してもよい。ブートモードを決定するため、モバイル計算デバイス100は、所定の、または確立された揮発性または不揮発性メモリロケーションをチェックしてもよい。例えば、モバイル計算デバイス100は、プラットフォーム不揮発性ストレージ(platform non−volatile store)中の一以上のファームウェア変数の値をチェックしてもよい。モバイル計算デバイス100は、ブートプロセスの初期に、メモリ124などのコンポーネントを完全に初期化する前に、ブートモードをチェックして、その後のブートプロセスで用いるかも知れない情報をクリアすることを回避してもよい。更新カプセルモードでブートされる場合、方法400はブロック428に分岐し、下記の通りカプセルを処理する。更新カプセルモードでブートされていない場合(例えば、通常モードでブートされている場合)、方法400はブロック406に進む。
ブロック406において、モバイル計算デバイス100は、ファームウェアイメージをロードして起動する。ファームウェアイメージはファームウェアドライバ及び/又はファームウェアアプリケーションを含んでいてもよい。ファームウェアイメージは、モバイル計算デバイス100の、プラットフォーム初期化を完了し、ファームウェアプロトコルインタフェースをインストールし、他のプリブートオペレーションを実行する。ファームウェアイメージは、UEFI仕様により詳細が規定されているように、データストレージデバイス126のシステムパーティションに記憶されたバイナリイメージとして実施されてもよい。ロードされるドライバとアプリケーションは、プラットフォーム依存であり、モバイル計算デバイス100のファームウェア変数に列挙されてもよい。
ブロック408において、モバイル計算デバイス100はブートデバイスを選択しロードする。ブートデバイスは、モバイル計算デバイス100によりロードされ起動されるファームウェアアプリケーションであり、例示の実施形態では、オペレーティングシステムローダ202である。幾つかの実施形態では、ブートデバイスは、診断アプリケーション、メンテナンスアプリケーション、または管理アプリケーションを含んでいてもよい。選択されるブートデバイスは、モバイル計算デバイス100のグローバル変数で指定されてもよい。幾つかの実施形態では、ブートデバイスは、モバイル計算デバイス100により提示されるメニューその他の手段により、モバイル計算デバイス100のユーザにより選択されてもよい。
ブロック410において、モバイル計算デバイス100は、オペレーティングシステム204による更新に対して、カプセルが更新されるようにされているか(staged)判断する。この決定はオペレーティングシステムローダ202により実行されてもよい。以下に説明するように、オペレーティングシステム204は、データストレージデバイス126の所定場所にファイルを格納することにより、カプセルを更新されるようにする(stage a capsule for update)こともできる。その場所は、例えば、オペレーティングシステム204のシステムルートディレクトリ中の、データストレージデバイス126のファームウェアボリュームの外であってもよい。このように、オペレーティングシステムローダ202は、データストレージデバイス126のその場所を検索して、カプセルが更新されるようにされているか(has been staged for update)判断してもよい。ブロック412において、モバイル計算デバイス100はカプセルが更新されるようにされているか判断する。カプセルが更新されるようにされている場合、下記の通り、方法400はブロック424に分岐する。更新されるようにされていない場合、方法400はブロック414に進む。
ブロック414において、モバイル計算デバイス100はオペレーティングシステム204を通常通りブートする。オペレーティングシステムローダ202は、ファームウェアのプリブート環境からオペレーティングシステム204に、モバイル計算デバイス100の制御を渡す。例えば、オペレーティングシステムローダ202は、UEFI仕様により規定されたExitBootServices()関数を呼んでも良い。
ブロック416において、モバイル計算デバイス100は、ファームウェアを更新するか判断する。ファームウェア更新は、例えば、モバイル計算デバイス100が通信回路130を用いてトラステッドソース(trusted source)から更新ファームウェアをダウンロードする時に、自動的に開始されてもよい。幾つかの実施形態では、ファームウェア更新は、ユーザにより、例えばインターラクティブハードウェアマネージャビリティユーティリティにより開始され得る。ファームウェアを更新しない場合、方法400はブロック418に分岐する。ブロック418において、モバイル計算デバイス100は、ユーザアプリケーションの実行など、標準的動作を実行する。ブロック418の後、方法400は、ブロック416にループバックし、ファームウェア更新のモニタリングを継続する。ブロック416に戻り、モバイル計算デバイス100がファームウェアを更新すると判断すると、方法400はブロック420に進む。
ブロック420において、モバイル計算デバイス100は、カプセルを次のブートサイクルで更新するようにする(stages a capsule for an update in the next boot cycle)。上記の通り、カプセルを処理する(stage)ため、オペレーティングシステム204は、データストレージデバイス126の明確に定義されたロケーションにカプセルを格納してもよい。カプセルは、ランタイムにオペレーティングシステムからプリブートファームウェア環境にデータを通信するのに用いられ得るデータ構造として実施してもよい。カプセルは、一般的に、ヘッダセグメントで始まり、コードセグメント及び/又はデータセグメントを含み得る任意のバイナリ情報が続く。このように、一以上のファームウェア更新は、エンコードされ、1つのカプセルにパッケージされ得る。幾つかの実施形態では、オペレーティングシステム204は、ランタイムにカプセルを完全にエンコードし、エンコードしたカプセルをデータストレージデバイス126に格納(stage)しても良い。追加的にまたは代替的に、オペレーティングシステム204は、データストレージデバイス126にファームウェア更新を格納(stage)し、下記のように、カプセルがオペレーティングシステムローダ202により生成されてもよい。カプセルは、UEFI仕様により規定されたEFI_UPDATE_CAPSULEとしてフォーマットされてもよい。
ブロック422において、モバイル計算デバイス100は、通常モードでプラットフォームをリセットする。幾つかの実施形態では、モバイル計算デバイス100は、適切なバッテリーパワーが残っていること(例えば、全容量の少なくとも25%)、またはモバイル計算デバイス100がACパワーに接続されていることを確認してもよい。プラットフォームをリセットする前に、モバイル計算デバイス100は、例えば、プラットフォームをリブートするかユーザにプロンプトすることにより、ユーザがファームウェア更新を実行することを望んでいることを確認してもよい。プラットフォームをリセットした後、方法400は、ブロック402にループバックして、プラットフォームハードウェアを初期化する。
ブロック412に戻り、モバイル計算デバイス100は、カプセルがファームウェア更新のため処理されたか(stage)判断する。上記の通り、この決定はオペレーティングシステムローダ202により実行されてもよい。更新のため処理された場合、方法400はブロック424に分岐する。ブロック424において、モバイル計算デバイス100は、次のファームウェアブートサイクルのための更新カプセルを準備する。そうするため、モバイル計算デバイス100は、カプセルをメモリ124にロードする。上記の通り、幾つかの実施形態では、オペレーティングシステムローダ202は、一以上のファームウェア更新をロードしてインメモリカプセル(in−memory capsule)にフォーマットする。幾つかの実施形態では、カプセルは仮想アドレッシングモードを用いてメモリ124に格納されてもよい。これらの実施形態では、モバイル計算デバイス100は、仮想メモリアドレスをプリブートファームウェアにより使用可能な物理アドレスにマッピングするインメモリテーブルを準備してもよい。モバイル計算デバイス100は、UEFI仕様で規定されたUpdateCapsule()関数を用いて、カプセルをファームウェアに渡す。カプセルは、フラグを付され、またはプラットフォームがリセットされても存続するように構成されてもよい。
ブロック426において、モバイル計算デバイス100は、更新カプセルモードでプラットフォームをウォームリセット(warm−reset)する。ウォームリセットにより、プラットフォームはリブートするが、メモリ124の内容はクリアされない。それゆえ、カプセルは、その後のリブート時にファームウェアが処理できるようになる。モバイル計算デバイス100は、システムをリセットする時、カプセルに関連するリセットタイプを提供することにより、システムをウォームリセットしてもよい。例えば、モバイル計算デバイス100は、UEFI仕様のQueryCapsuleCapabilities()関数を呼んでリセット値を取得してもよい。システムをウォームリセットした後、方法400は、ブロック402にループバックして、プラットフォームハードウェアを初期化する。
ブロック404を参照して、モバイル計算デバイス100は、モバイル計算デバイス100が更新カプセルモードでブートされたか判断する。上記の通り、揮発性メモリまたは不揮発性メモリに記憶されたデータは、ブートモードを示しても良い。更新カプセルモードでブートされたとき、方法400はブロック428に分岐する。ブロック428において、モバイル計算デバイス100は、更新カプセルを処理し、プラットフォームパワーポリシー214を用いてファームウェアを更新する。プラットフォームパワーポリシー214を用いたファームウェアの更新は、図5を参照して以下にさらに詳しく説明する。
ブロック430において、モバイル計算デバイス100は、ファームウェアの更新が成功したか判断する。この判断を行うため、モバイル計算デバイス100は揮発性メモリまたは不揮発性メモリに記憶されたデータをチェックしてもよい。例えば、カプセル更新状態はEFIシステムリソーステーブル(ESRT)に格納されてもよい。ファームウェア更新が成功したら、方法400はブロック432に進んでもよく、そこでファームウェアが事前に記憶されたバックアップにロールバック(rolled back)される。ファームウェアをロールバックした後、方法400はブロック434に進む。ブロック430に戻り、ファームウェア更新が成功すると、方法400はブロック434に分岐する。
ブロック434において、モバイル計算デバイス100は、通常モードでプラットフォームをリセットする。モバイル計算デバイス100は、コールドリセット(cold reset)を実行する。すなわち、モバイル計算デバイス100は、メモリ124の内容をクリアし、プラットフォームハードウェアを完全に再初期化してもよい。リブートにおいて、モバイル計算デバイス100は、新しく更新されたどのファームウェアも実行する。システムをリセットした後、方法400は、ブロック402にループバックして、プラットフォームハードウェアを初期化する。
図5を参照して、使用において、モバイル計算デバイス100は、ファームウェア更新中に選択的パワーマネジメントを行う方法500を実行してもよい。図4のブロック428を参照して説明したように、方法500は、プラットフォームが更新カプセルモードでブートされた時、プリブートファームウェア環境(pre−boot firmware environment)で実行されてもよい。方法500はブロック502で始まり、そこではモバイル計算デバイス100がカプセルに含まれるファームウェア更新を特定する。カプセルを処理する前に、モバイル計算デバイス100は、カプセルの内容を物理的メモリの連続したセグメントにコピーしてもよい。上記の通り、カプセルは標準ヘッダで始まり、任意のバイナリ情報のブロック(バイナリブロブ)(binary blob)が続く。バイナリ情報はモバイル計算デバイス100により利用可能な任意のフォーマットでフォーマットされてもよい。例えば、バイナリ情報はUEFI仕様で規定されているように、ファームウェアボリュームとしてフォーマットされてもよい。モバイル計算デバイス100は、カプセル内に収容されたすべてのファームウェア更新を列挙または解凍してもよい。
ブロック504において、モバイル計算デバイス100は、カプセルから次のファームウェア更新を読み出す。各ファームウェア更新は、モバイル計算デバイス100のファームウェアデバイスにインストールされるコード及び/又はデータを含んでいても良く、またファームウェア更新に適用する必要があるインストレーションまたは管理コードを含んでいてもよい。例えば、ファームウェア更新は、ファームウェアストレージ128に格納される更新されたプラットフォームファームウェアを含んでいてもよく、ファームウェア134に格納される更新されたマネージャビリティエンジンファームウェアを含んでいても良く、ファームウェア138に格納される更新されたデバイスコントローラファームウェアを含んでいてもよい。個別の各ファームウェア更新は、ファームウェアの更新に利用できる任意のフォーマットであってもよい。例えば、ファームウェア更新は、実行された時、適切なファームウェアデバイスを更新するコードを含むファームウェアドライバとして実施されてもよい。ファームウェアドライバは、エントリーポイントを含んでいてもよい。エントリーポイントは、ファームウェアドライバ内の明確に定義されたロケーションであって、モバイル計算デバイス100がファームウェア更新を加えるコードの実行を開始してもよいロケーションである。幾つかの実施形態では、ファームウェア更新は、カプセルを参照し、ファームウェアデバイスに格納されるデータにアクセスする。
ブロック506において、モバイル計算デバイス100は、プラットフォームパワーポリシー214に基づき、ファームウェア更新に必要なプラットフォームハードウェアコンポーネントを決定する。モバイル計算デバイス100は、ファームウェア更新に適当なプラットフォームパワーポリシー214を決定してもよい。例えば、各ファームウェア更新は、グローバル一意識別子(GUID)により特定されるハードウェアコンポーネントに関連したものであってもよい。決定されたプラットフォームパワーポリシー214は、必要な消費電力設定を含むファームウェア更新のために必要なハードウェアコンポーネントを特定してもよい。必要なハードウェアコンポーネントはプラットフォームに固有である。それゆえ、モバイル計算デバイス100の生産者及び/又はプラットフォームファームウェアの開発者がプラットフォームパワーポリシー214を保持していてもよい。
ブロック508において、モバイル計算デバイス100は、適当なプラットフォームパワーポリシー214に基づきプラットフォームハードウェアコンポーネントのパワーレベルを設定する。利用可能なパワーレベルはプラットフォーム及びコンポーネントに固有である。例えば、幾つかのハードウェアコンポーネントは、完全にパワーオフされてもよいし、完全にパワーオンされてもよい。他のハードウェアコンポーネントは、完全にオフ、スタンバイ、サスペンド、完全にパワーオンなどの複数の利用可能なパワーレベルを有していてもよく、クロックスピード及び/又は電圧などの調整可能パラメータを有していても良い。ブロック510において、幾つかの実施形態では、モバイル計算デバイス100は、ファームウェア更新に必要なハードウェアコンポーネントの電源を入れてもよい。例えば、プラットフォームファームウェアを更新する時、モバイル計算デバイス100は、プロセッサ120、ファームウェアストレージ128、及びSPIバスのデバイスコントローラ136の電源を入れてもよい。他の一例として、マネージャビリティエンジン132のファームウェアを更新する時、モバイル計算デバイス100は、プロセッサ120と、SPIバスのデバイスコントローラ136との電源を入れてもよい。第3の例として、ペリフェラルデバイス140のファームウェアを更新する時、モバイル計算デバイス100はプロセッサ120とペリフェラルデバイス140との電源を入れても良い。ブロック512において、幾つかの実施形態では、モバイル計算デバイス100は、ファームウェア更新に必要ないハードウェアコンポーネントの電源を切ってもよい。例えば、モバイル計算デバイス100は、更新されないペリフェラルデバイス140の電源、または更新されないデバイスのデバイスコントローラ136の電源を切っても良い。
ブロック514において、モバイル計算デバイス100は、ファームウェア更新を実行し、更新状態を示す。更新の実行により、新しいファームウェアが、例えばファームウェアストレージ128、マネージャビリティエンジンファームウェア134、またはデバイスコントローラファームウェア138が、適当なファームウェアデバイスに書き込まれる。ファームウェア更新がファームウェアドライバとして実施される実施形態では、モバイル計算デバイス100は、ファームウェアドライバのエントリーポイントで実行を開始することにより、ファームウェア更新の実行をしてもよい。モバイル計算デバイス100は、EFIシステムリソーステーブルを更新することにより、ファームウェア更新の状態(例えば、成功か失敗か)を示しても良い。モバイル計算デバイス100は、状態情報をオペレーティングシステム204にエクスポートしてもよいし、オペレーティングシステム204が状態情報を利用できるようにしてもよい。幾つかの実施形態では、ブロック516において、モバイル計算デバイス100は、前のファームウェアのバックアップを記憶しておいてもよい。このバックアップは、更新が失敗したときに、ファームウェアをロールバック(roll back)するのに用いることができる。前のファームウェアは、例えば、データストレージデバイス126のシステムボリュームに格納されてもよい。
ブロック518において、モバイル計算デバイス100は、別のファームウェア更新が残っているか判断する。モバイル計算デバイス100は、上記の通り、カプセルの内容を調べても良い。別のファームウェア更新が残っていれば、方法500はブロック504にループバックし、次の更新カプセルを読み出す。別のファームウェア更新が残っていなければ、方法500は完了する。上記の通り、モバイル計算デバイス100は、その後、新たに更新されたファームウェアを用いてリブートされる。
開示の技術はモバイル計算デバイスに関して説明したが、言うまでもなく、開示の技術は他の計算デバイスにも同様に適用可能である。例えば、開示の技術は、デスクトップコンピュータ、サーバ、またはその他の主に据え置き型の計算デバイスに組み込まれても良い。
実施例
実施例1は、プリブート環境においてファームウェアを更新するモバイル計算デバイスであって、前記モバイル計算デバイスのオペレーティングシステムにより事前に生成されたカプセルからファームウェア更新を取り出すカプセル管理モジュールと、パワーマネジメントモジュールであって、前記ファームウェア更新の関数として前記モバイル計算デバイスのハードウェアコンポーネントの消費電力設定を決定し、前記消費電力設定に基づいて前記ハードウェアコンポーネントを設定するパワーマネジメントモジュールと、前記消費電力設定に基づいて前記ハードウェアコンポーネントの設定に応じて前記ファームウェア更新を適用する更新モジュールとを有する。
実施例2は、実施例1に記載の主題であって、前記ファームウェア更新はファームウェアドライバを含み、前記ファームウェア更新の適用は前記ファームウェアドライバのエントリーポイントの実行を含む。
実施例3は、実施例1及び2のいずれかに記載の主題であって、前記消費電力設定の決定は、前記ファームウェア更新の関数として前記モバイル計算デバイスのパワーポリシーであって、前記モバイル計算デバイスの複数のハードウェアコンポーネントのパワーレベルを規定するパワーポリシーの決定と、前記パワーポリシーの関数として前記ハードウェアコンポーネントと前記消費電力設定の決定とを含む。
実施例4は実施例1−3のいずれかの主題を含み、前記パワーポリシーの決定は、前記ファームウェア更新の一意識別子に基づく前記パワーポリシーの決定を含む。
実施例5は実施例1−4のいずれかの主題を含み、前記ハードウェアコンポーネントは前記モバイル計算デバイスのペリフェラルデバイスを含む。
実施例6は実施例1−5のいずれかの主題を含み、前記ハードウェアコンポーネントは前記モバイル計算デバイスのデバイスコントローラを有する。
実施例7は実施例1−6のいずれかの主題を含み、前記デバイスコントローラは、シリアルペリフェラルインタフェース(SPI)コントローラ、キーボード及びシステムコントローラ(KSC)、ネットワークコントローラ、無線ネットワークコントローラ、ニアフィールド通信(NFC)コントローラ、エクスプレスカード(EC)コントローラ、またはユニバーサルシリアルバス(USB)コントローラを含む。
実施例8は実施例1−7のいずれかの主題を含み、前記消費電力設定に基づく前記ハードウェアコンポーネントの設定は、前記ハードウェアコンポーネントの完全な動作状態に対する前記ハードウェアコンポーネントの消費電力の低減を含む。
実施例9は実施例1−8のいずれかの主題を含み、前記消費電力設定に基づく前記ハードウェアコンポーネントの設定は、前記ハードウェアコンポーネントの現在の消費電力に対する前記ハードウェアコンポーネントの消費電力の増加を含む。
実施例10は実施例1−9のいずれかの主題を含み、前記ファームウェア更新の適用は、前記モバイル計算デバイスのマネージャビリティエンジンへの前記ファームウェア更新の適用を含む。
実施例11は実施例1−10のいずれかの主題を含み、前記ファームウェア更新の適用は、前記モバイル計算デバイスのデバイスコントローラへの前記ファームウェア更新の適用を含む。
実施例12は実施例1−11のいずれかの主題を含み、前記消費電力設定に基づく前記ハードウェアコンポーネントの設定は、前記ハードウェアコンポーネントの完全な動作状態に対する前記ハードウェアコンポーネントの消費電力の低減と、前記ファームウェア更新の適用は、前記ハードウェアコンポーネントとは異なる前記モバイル計算デバイスの他のハードウェアコンポーネントへの前記ファームウェア更新の適用を含む。
実施例13は実施例1−12のいずれかの主題を含み、前記カプセル管理モジュールは、さらに前記カプセルから第2のファームウェア更新の取り出し、前記パワーマネジメントモジュールは、さらに、前記第2のファームウェア更新の関数として前記モバイル計算デバイスの第2のハードウェアコンポーネントの第2の消費電力設定を決定し、前記第2の消費電力設定に基づいて前記第2のハードウェアコンポーネントを設定し、前記更新モジュールは、さらに、前記第2の消費電力設定に基づいて前記第2のハードウェアコンポーネントの設定に応じて前記第2のファームウェア更新を適用する。
実施例14は実施例1−13のいずれかの主題を含み、前記第2の消費電力設定の決定は、前記第2のファームウェア更新の関数としての前記モバイル計算デバイスの第2のパワーポリシーの決定と、前記第2のパワーポリシーの関数として前記第2のハードウェアコンポーネントと前記第2の消費電力設定の決定とを含む。
実施例15は実施例1−14のいずれかの主題を含み、前記第2のハードウェアコンポーネントは前記ハードウェアコンポーネントを含み、前記第2の消費電力設定は前記消費電力設定とは異なる。
実施例16は実施例1−15のいずれかの主題を含み、前記更新モジュールはさらに前記ファームウェア更新の適用に応じて更新状態を示し、前記更新状態は前記オペレーティングシステムによりアクセス可能である。
実施例17は実施例1−16のいずれかの主題を含み、前記プリブート環境は前記カプセル管理モジュールと、前記パワーマネジメントモジュールと、前記更新モジュールとを含む。
実施例18は、プリブート環境においてモバイル計算デバイスのファームウェアを更新する方法であって、前記モバイル計算デバイスが、前記モバイル計算デバイスのオペレーティングシステムにより事前に生成されたカプセルからファームウェア更新を取り出すステップと、前記モバイル計算デバイスが、前記ファームウェア更新の関数として、前記モバイル計算デバイスのハードウェアコンポーネントの消費電力設定を決定するステップと、前記モバイル計算デバイスが、前記消費電力設定に基づいて前記ハードウェアコンポーネントを設定するステップと、前記モバイル計算デバイスが、前記消費電力設定に基づく前記ハードウェアコンポーネントの設定に応じて前記ファームウェア更新を適用するステップとを有する。
実施例19は実施例18の主題を含み、前記ファームウェア更新を取り出すはファームウェアドライバを取り出すステップを含み、前記ファームウェア更新を適用するステップは前記ファームウェアドライバのエントリーポイントを実行するステップを含む。
実施例20は実施例18−19のいずれかの主題を含み、前記消費電力設定を決定するステップは、前記ファームウェア更新の関数として前記モバイル計算デバイスのパワーポリシーであって、前記モバイル計算デバイスの複数のハードウェアコンポーネントのパワーレベルを規定するパワーポリシーを決定するステップと、前記パワーポリシーの関数として前記ハードウェアコンポーネントと前記消費電力設定を決定するステップとを含む。
実施例21は実施例18−20のいずれかの主題を含み、前記パワーポリシーを決定するステップは、前記ファームウェア更新の一意識別子に基づき前記パワーポリシーを決定するステップを含む。
実施例22は実施例18−21のいずれかの主題を含み、前記ハードウェアコンポーネントは前記モバイル計算デバイスのペリフェラルデバイスを含む。
実施例23は実施例18−22のいずれかの主題を含み、前記ハードウェアコンポーネントは前記モバイル計算デバイスのデバイスコントローラを有する。
実施例24は実施例18−23のいずれかの主題を含み、前記デバイスコントローラは、シリアルペリフェラルインタフェース(SPI)コントローラ、キーボード及びシステムコントローラ(KSC)、ネットワークコントローラ、無線ネットワークコントローラ、ニアフィールド通信(NFC)コントローラ、エクスプレスカード(EC)コントローラ、またはユニバーサルシリアルバス(USB)コントローラを含む。
実施例25は実施例18−24のいずれかの主題を含み、前記消費電力設定に基づき前記ハードウェアコンポーネントを設定するステップは、前記ハードウェアコンポーネントの完全動作状態に対して前記ハードウェアコンポーネントの消費電力を低減するステップを含む。
実施例26は実施例18−25のいずれかの主題を含み、前記消費電力設定に基づき前記ハードウェアコンポーネントを設定するステップは、前記ハードウェアコンポーネントの現在の消費電力に対して前記ハードウェアコンポーネントの消費電力を増加するステップを含む。
実施例27は実施例18−26のいずれかの主題を含み、前記ファームウェア更新を適用するステップは、前記モバイル計算デバイスのマネージャビリティエンジンへの前記ファームウェア更新を適用するステップを含む。
実施例28は実施例18−27のいずれかの主題を含み、前記ファームウェア更新を適用するステップは、前記モバイル計算デバイスのデバイスコントローラに前記ファームウェア更新を適用するステップを含む。
実施例29は実施例18−28のいずれかの主題を含み、前記消費電力設定に基づき前記ハードウェアコンポーネントを設定するステップは、前記ハードウェアコンポーネントの完全動作状態に対して前記ハードウェアコンポーネントの消費電力を低減するステップを含む。前記ファームウェア更新を適用するステップは、前記ハードウェアコンポーネントとは異なる前記モバイル計算デバイスの他のハードウェアコンポーネントに前記ファームウェア更新を適用するステップを含む。
実施例30は実施例18−29のいずれかの主題を含み、さらに、前記モバイル計算デバイスが、前記カプセルから第2のファームウェア更新を取り出すステップと、前記モバイル計算デバイスが、前記第2のファームウェア更新の関数として、前記モバイル計算デバイスの第2のハードウェアコンポーネントの第2の消費電力設定を決定するステップと、前記モバイル計算デバイスが、前記第2の消費電力設定に基づいて前記第2のハードウェアコンポーネントを設定するステップと、前記モバイル計算デバイスが、前記第2の消費電力設定に基づく前記第2のハードウェアコンポーネントの設定に応じて前記第2のファームウェア更新を適用するステップとを有する。
実施例31は実施例18−30のいずれかの主題を含み、前記第2の消費電力設定を決定するステップは、前記第2のファームウェア更新の関数として前記モバイル計算デバイスの第2のパワーポリシーを決定するステップと、前記第2のパワーポリシーの関数として前記第2のハードウェアコンポーネントと前記第2の消費電力設定を決定するステップとを含む。
実施例32は実施例18−31のいずれかの主題を含み、前記第2のハードウェアコンポーネントは前記ハードウェアコンポーネントを含み、前記第2の消費電力設定は前記消費電力設定とは異なる。
実施例33は実施例18−32のいずれかの主題を含み、さらに、前記更新モジュールが、前記ファームウェア更新の適用に応じて更新状態を示し、前記更新状態は前記オペレーティングシステムによりアクセス可能である。
実施例34は実施例18−33のいずれかの主題を含み、前記ファームウェア更新を取り出すステップ、前記消費電力設定を決定するステップ、前記ハードウェアコンポーネントを設定するステップ、及び前記ファームウェア更新を適用するステップはすべて前記プリブート環境で生じる。
実施例35は、計算デバイスであって、プロセッサと、前記プロセッサにより実行されたとき、前記プロセッサに、実施例18−34いずれかに記載の方法を実行させる複数の命令を格納したメモリとを有する。
実施例36は、実行されると、計算デバイスに実施例18乃至34いずれかに記載の方法を実行させる複数の命令を格納した一以上の機械読み取り可能記憶媒体を含む。
実施例37は、実施例18ないし34のいずれかに記載の方法を実行する手段を有する計算デバイスを含む。

Claims (24)

  1. プリブート環境においてファームウェアを更新するモバイル計算デバイスであって、
    前記モバイル計算デバイスのオペレーティングシステムにより事前に生成されたカプセルからファームウェア更新を取り出すカプセル管理モジュールと、
    パワーマネジメントモジュールであって、
    前記ファームウェア更新に基づいて前記モバイル計算デバイスのハードウェアコンポーネントの消費電力設定を決定し、
    前記消費電力設定に基づいて前記ハードウェアコンポーネントを設定するパワーマネジメントモジュールと、
    前記消費電力設定に基づいて前記ハードウェアコンポーネントの設定に応じて前記ファームウェア更新を適用する更新モジュールと
    有し、
    前記消費電力設定の決定は、
    前記ファームウェア更新に基づく、前記モバイル計算デバイスのパワーポリシーであって、前記モバイル計算デバイスの複数のハードウェアコンポーネントのパワーレベルを規定するパワーポリシーの決定と、
    前記パワーポリシーに基づく、前記ハードウェアコンポーネントと前記消費電力設定の決定とを含む、
    モバイル計算デバイス。
  2. 前記ファームウェア更新はファームウェアドライバを含み、
    前記ファームウェア更新の適用は前記ファームウェアドライバのエントリーポイントの実行を含む、
    請求項1に記載のモバイル計算デバイス。
  3. 前記パワーポリシーの決定は、前記ファームウェア更新に関連するハードウェアコンポーネントの一意識別子に基づく前記パワーポリシーの決定を含む、請求項1に記載のモバイル計算デバイス。
  4. 前記ハードウェアコンポーネントは前記モバイル計算デバイスのデバイスコントローラを有する、請求項1に記載のモバイル計算デバイス。
  5. 前記デバイスコントローラは、シリアルペリフェラルインタフェース(SPI)コントローラ、キーボード及びシステムコントローラ(KSC)、ネットワークコントローラ、無線ネットワークコントローラ、ニアフィールド通信(NFC)コントローラ、エクスプレスカード(EC)コントローラ、またはユニバーサルシリアルバス(USB)コントローラを含む、請求項に記載のモバイル計算デバイス。
  6. 前記消費電力設定に基づく前記ハードウェアコンポーネントの設定は、
    前記ハードウェアコンポーネントの完全な動作状態に対する前記ハードウェアコンポーネントの消費電力の低減と、
    前記ハードウェアコンポーネントの現在の消費電力に対する前記ハードウェアコンポーネントの消費電力の増加とを含む、
    請求項1に記載のモバイル計算デバイス。
  7. 前記ファームウェア更新の適用は、前記モバイル計算デバイスのマネージャビリティエンジンへの前記ファームウェア更新の適用を含む、
    請求項1に記載のモバイル計算デバイス。
  8. 前記ファームウェア更新の適用は、前記モバイル計算デバイスのデバイスコントローラへの前記ファームウェア更新の適用を含む、請求項1に記載のモバイル計算デバイス。
  9. 前記消費電力設定に基づく前記ハードウェアコンポーネントの設定は、前記ハードウェアコンポーネントの完全動作状態に対する前記ハードウェアコンポーネントの消費電力の低減を含み、
    前記ファームウェア更新の適用は、前記ハードウェアコンポーネントとは異なる前記モバイル計算デバイスの他のハードウェアコンポーネントへの前記ファームウェア更新の適用を含む、
    請求項1に記載のモバイル計算デバイス。
  10. 前記カプセル管理モジュールは、さらに、前記カプセルから第2のファームウェア更新の取り出し、
    前記パワーマネジメントモジュールは、さらに、
    前記第2のファームウェア更新に基づき、前記モバイル計算デバイスの第2のハードウェアコンポーネントの第2の消費電力設定を決定し、
    前記第2の消費電力設定に基づいて前記第2のハードウェアコンポーネントを設定するし、
    前記更新モジュールは、さらに、前記第2の消費電力設定に基づいて前記第2のハードウェアコンポーネントの設定に応じて前記第2のファームウェア更新を適用する、
    請求項1ないしいずれか一項に記載のモバイル計算デバイス。
  11. 前記第2の消費電力設定の決定は、
    前記第2のファームウェア更新に基づく、前記モバイル計算デバイスの第2のパワーポリシーの決定と、
    前記第2のパワーポリシーに基づく、前記第2のハードウェアコンポーネントと前記第2の消費電力設定の決定とを含む、
    請求項10に記載のモバイル計算デバイス。
  12. 前記第2のハードウェアコンポーネントは前記ハードウェアコンポーネントを含み、前記第2の消費電力設定は前記消費電力設定とは異なる、
    請求項10に記載のモバイル計算デバイス。
  13. 前記更新モジュールはさらに前記ファームウェア更新の適用に応じて更新状態を示し、前記更新状態は前記オペレーティングシステムによりアクセス可能である、
    請求項1ないしいずれか一項に記載のモバイル計算デバイス。
  14. 前記プリブート環境は前記カプセル管理モジュールと、前記パワーマネジメントモジュールと、前記更新モジュールとを含む、
    請求項1ないしいずれか一項に記載のモバイル計算デバイス。
  15. プリブート環境においてモバイル計算デバイスのファームウェアを更新する方法であって、
    前記モバイル計算デバイスが、前記モバイル計算デバイスのオペレーティングシステムにより事前に生成されたカプセルからファームウェア更新を取り出すステップと、
    前記モバイル計算デバイスが、前記ファームウェア更新に基づき、前記モバイル計算デバイスのハードウェアコンポーネントの消費電力設定を決定するステップと、
    前記モバイル計算デバイスが、前記消費電力設定に基づいて前記ハードウェアコンポーネントを設定するステップと、
    前記モバイル計算デバイスが、前記消費電力設定に基づく前記ハードウェアコンポーネントの設定に応じて前記ファームウェア更新を適用するステップとを有し、
    前記消費電力設定を決定するステップは、
    前記ファームウェア更新に基づき前記モバイル計算デバイスのパワーポリシーであって、前記モバイル計算デバイスの複数のハードウェアコンポーネントのパワーレベルを規定するパワーポリシーを決定するステップと、
    前記パワーポリシーに基づき前記ハードウェアコンポーネントと前記消費電力設定を決定するステップとを含む、
    方法。
  16. 前記消費電力設定に基づき前記ハードウェアコンポーネントを設定するステップは、前記ハードウェアコンポーネントの完全動作状態に対して前記ハードウェアコンポーネントの消費電力を低減するステップを含み、
    前記ファームウェア更新を適用するステップは、前記ハードウェアコンポーネントとは異なる前記モバイル計算デバイスの他のハードウェアコンポーネントに前記ファームウェア更新を適用するステップを含む、
    請求項15に記載の方法。
  17. 前記モバイル計算デバイスが、前記カプセルから第2のファームウェア更新を取り出すステップと、
    前記モバイル計算デバイスが、前記第2のファームウェア更新に基づき、前記モバイル計算デバイスの第2のハードウェアコンポーネントの第2の消費電力設定を決定するステップと、
    前記モバイル計算デバイスが、前記第2の消費電力設定に基づいて前記第2のハードウェアコンポーネントを設定するステップと、
    前記モバイル計算デバイスが、前記第2の消費電力設定に基づく前記第2のハードウェアコンポーネントの設定に応じて前記第2のファームウェア更新を適用するステップとを有する方法。
    請求項15に記載の方法。
  18. 前記第2の消費電力設定を決定するステップは、
    前記第2のファームウェア更新に基づき前記モバイル計算デバイスの第2のパワーポリシーを決定するステップと、
    前記第2のパワーポリシーに基づき前記第2のハードウェアコンポーネントと前記第2の消費電力設定を決定するステップとを含む、
    請求項17に記載の方法。
  19. 前記第2のハードウェアコンポーネントは前記ハードウェアコンポーネントを含み、前記第2の消費電力設定は前記消費電力設定とは異なる、
    請求項17に記載の方法。
  20. 前記ファームウェア更新を取り出すステップ、前記消費電力設定を決定するステップ、前記ハードウェアコンポーネントを設定するステップ、及び前記ファームウェア更新を適用するステップはすべて前記プリブート環境で生じる、
    請求項15に記載の方法。
  21. 計算デバイスであって、
    プロセッサと、
    前記プロセッサにより実行されたとき、前記プロセッサに、請求項15−20いずれか一項に記載の方法を実行させる複数の命令を格納したメモリとを有する、計算デバイス。
  22. 実行されると、計算デバイスに請求項15−20いずれか一項に記載の方法を実行させるコンピュータプログラム。
  23. 請求項15−20いずれか一項に記載の方法を実行する手段を有する計算デバイス。
  24. 請求項22に記載のコンピュータプログラムを格納した一以上の機械読み取り可能記憶媒体。
JP2016516914A 2013-10-31 2013-10-31 プリブートファームウェア更新のための選択的パワーマネジメント Expired - Fee Related JP6272991B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/067725 WO2015065417A1 (en) 2013-10-31 2013-10-31 Selective power management for pre-boot firmware updates

Publications (2)

Publication Number Publication Date
JP2016535329A JP2016535329A (ja) 2016-11-10
JP6272991B2 true JP6272991B2 (ja) 2018-01-31

Family

ID=53004826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016516914A Expired - Fee Related JP6272991B2 (ja) 2013-10-31 2013-10-31 プリブートファームウェア更新のための選択的パワーマネジメント

Country Status (6)

Country Link
US (1) US9996142B2 (ja)
EP (1) EP3063620B1 (ja)
JP (1) JP6272991B2 (ja)
KR (1) KR101861724B1 (ja)
CN (1) CN105745617B (ja)
WO (1) WO2015065417A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11307844B2 (en) 2020-06-18 2022-04-19 Dell Products L.P. System and method for intelligent power management of firmware updates

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9921819B2 (en) 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
JP6501595B2 (ja) * 2015-04-06 2019-04-17 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
US9916165B2 (en) * 2015-08-20 2018-03-13 Dell Products L.P. Systems and methods to optimize boot for information handling system comprising persistent memory
US10389851B2 (en) 2015-09-17 2019-08-20 Intel Corporation Performing power management during a download and execute operation
CN105159727B (zh) * 2015-09-22 2017-10-17 广东欧珀移动通信有限公司 固件升级处理方法、装置和***
US10019253B2 (en) * 2016-02-19 2018-07-10 Dell Products L.P. Systems and methods of updating hot-pluggable devices
US10423425B2 (en) * 2016-06-13 2019-09-24 Dell Products, Lp System and method for runtime update of ESRT table for hot-pluggable disks
US11243782B2 (en) * 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
US10635819B2 (en) * 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
US10860332B2 (en) 2017-09-25 2020-12-08 Qualcomm Incorporated Multicore framework for use in pre-boot environment of a system-on-chip
US10988091B2 (en) 2018-01-08 2021-04-27 Ford Global Technologies, Llc Erase-replace OTA smart power strategy
US11307645B2 (en) 2018-02-01 2022-04-19 Hewlett-Packard Development Company, L.P. Instruction updates via side channels
US11210084B2 (en) * 2018-03-09 2021-12-28 Samsung Electronics Co., Ltd. Integrated single FPGA and solid state disk controller
KR102516583B1 (ko) * 2018-03-19 2023-04-03 삼성전자 주식회사 전자 장치 및 전자 장치의 업데이트 제어 방법
US10732690B2 (en) 2018-05-17 2020-08-04 Arm Ip Limited Systems and methods for monitoring state transitions
US11157613B2 (en) * 2018-05-17 2021-10-26 Arm Ip Limited Systems and methods for monitoring power consumption
CN108874451B (zh) * 2018-06-01 2022-07-12 深圳市道通智能航空技术股份有限公司 无人机电池保护方法、装置及存储介质
JP7003975B2 (ja) * 2018-08-10 2022-01-21 株式会社デンソー 車両情報通信システム,センター装置及びセンター装置のメッセージ送信方法
US10831467B2 (en) * 2018-10-25 2020-11-10 American Megatrends International, Llc Techniques of updating host device firmware via service processor
US11194589B2 (en) * 2019-01-08 2021-12-07 Dell Products L.P. Information handling system adaptive component reset
US11347856B2 (en) * 2019-05-24 2022-05-31 Dell Products L.P. Bios method to block compromised preboot features
CN110175057B (zh) * 2019-05-31 2020-12-18 联想(北京)有限公司 一种数据处理方法、电子设备及服务器
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
WO2021141606A1 (en) * 2020-01-10 2021-07-15 Hewlett-Packard Development Company, L.P. Change of firmware settings
US11429166B2 (en) 2020-01-27 2022-08-30 Dell Products L.P. System and method for managing device updates
US11314521B2 (en) 2020-01-27 2022-04-26 Dell Products L.P. System and method for managing component updates
US11237837B2 (en) 2020-01-27 2022-02-01 Dell Products L.P. System and method for managing devices during reboot
US11294691B2 (en) * 2020-02-03 2022-04-05 Dell Products L.P. Dynamic memory layouts for firmware updates based on OEM memory subsystem
US12001826B2 (en) 2020-04-24 2024-06-04 Intel Corporation Device firmware update techniques
US20220391188A1 (en) * 2021-06-03 2022-12-08 Dell Products L.P. Systems and methods for context-aware firmware update
WO2023277881A1 (en) * 2021-06-29 2023-01-05 Hewlett-Packard Development Company, L.P. Instruction updates to hardware devices
US20230023833A1 (en) * 2021-07-20 2023-01-26 Dell Products L.P. Enforcing correct sequencing of firmware updates
US11836474B2 (en) * 2021-10-27 2023-12-05 Dell Products L.P. Applying a firmware update based on power requirement
US11947433B2 (en) 2022-01-07 2024-04-02 Dell Products L.P. System and method for subscription based solution management
US20230221784A1 (en) * 2022-01-07 2023-07-13 Dell Products L.P. System and method for power state enforced subscription management
US11907153B2 (en) 2022-01-07 2024-02-20 Dell Products L.P. System and method for distributed subscription management

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4076113B2 (ja) * 2000-03-24 2008-04-16 株式会社リコー 電子制御装置
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
US20030070115A1 (en) * 2001-10-05 2003-04-10 Nguyen Tom L. Logging and retrieving pre-boot error information
US20040267708A1 (en) 2003-06-18 2004-12-30 Rothman Michael A Device information collection and error detection in a pre-boot environment of a computer system
US20050144609A1 (en) * 2003-12-12 2005-06-30 Intel Corporation Methods and apparatus to provide a robust code update
JP4423960B2 (ja) * 2003-12-17 2010-03-03 株式会社ニコン 電子機器および電子機器のソフトウェア更新用プログラム
US7774596B2 (en) 2005-02-02 2010-08-10 Insyde Software Corporation System and method for updating firmware in a secure manner
JP4236672B2 (ja) * 2006-04-05 2009-03-11 シャープ株式会社 画像処理装置
US7765393B1 (en) * 2006-07-11 2010-07-27 Network Appliance, Inc. Method and system of embedding a boot loader as system firmware
US8230237B2 (en) * 2007-12-06 2012-07-24 Intel Corporation Pre-boot environment power management
JP5127511B2 (ja) * 2008-03-04 2013-01-23 キヤノン株式会社 光学装置
JP2010009474A (ja) 2008-06-30 2010-01-14 Canon Inc 周辺装置
US8806231B2 (en) * 2009-12-22 2014-08-12 Intel Corporation Operating system independent network event handling
US8607040B2 (en) 2010-11-16 2013-12-10 Intel Corporation Method of provisioning firmware in an operating system (OS) absent services environment
JP5693399B2 (ja) * 2011-06-28 2015-04-01 シャープ株式会社 更新システム、画像形成装置、更新方法、コンピュータプログラム及び記録媒体
US8863109B2 (en) 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time
US8966466B2 (en) * 2012-04-04 2015-02-24 Avago Technologies General Ip (Singapore) Pte. Ltd. System for performing firmware updates on a number of drives in an array with minimum interruption to drive I/O operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11307844B2 (en) 2020-06-18 2022-04-19 Dell Products L.P. System and method for intelligent power management of firmware updates

Also Published As

Publication number Publication date
CN105745617B (zh) 2020-07-28
EP3063620A1 (en) 2016-09-07
KR101861724B1 (ko) 2018-05-29
US9996142B2 (en) 2018-06-12
KR20160039287A (ko) 2016-04-08
US20160231804A1 (en) 2016-08-11
WO2015065417A1 (en) 2015-05-07
EP3063620A4 (en) 2017-07-19
EP3063620B1 (en) 2019-12-11
JP2016535329A (ja) 2016-11-10
CN105745617A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
JP6272991B2 (ja) プリブートファームウェア更新のための選択的パワーマネジメント
EP2831722B1 (en) Method and system for verifying proper operation of a computing device after a system change
KR101856284B1 (ko) 장치의 초기화 동안 펌웨어의 백업
EP2189901B1 (en) Method and system to enable fast platform restart
US9411601B2 (en) Flexible bootstrap code architecture
US11550593B2 (en) Information handling system quick boot
US20150074386A1 (en) Boot method and boot system
US20200159302A1 (en) Information Handling System And Method To Detect And Recover From No Power/No Post Failures
US10061596B2 (en) Systems and methods for loading firmware modules
CN104424140A (zh) 统一可扩展固件接口驱动器
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
CN107135462A (zh) Uefi 固件的蓝牙配对方法及其计算***
CN110688235B (zh) Uefi固件与os间共享无线连接信息的***及方法
US10572151B2 (en) System and method to allocate available high bandwidth memory to UEFI pool services
US20160048389A1 (en) System and method for supporting part replacement
US11340882B2 (en) Systems and methods for enforcing update policies while applying updates from bootable image file
WO2008048581A1 (en) A processing device operation initialization system
WO2022040911A1 (en) Methods and apparatus to perform pseudo-s3 protocol to update firmware and/or activate new firmware with warm reset
US11755335B2 (en) Bios variable-based application deployments
WO2023277881A1 (en) Instruction updates to hardware devices

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170621

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: 20171205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180104

R150 Certificate of patent or registration of utility model

Ref document number: 6272991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees