JP2018511104A - 改善されたハイブリッドスリープ電力管理のための技術 - Google Patents

改善されたハイブリッドスリープ電力管理のための技術 Download PDF

Info

Publication number
JP2018511104A
JP2018511104A JP2017540881A JP2017540881A JP2018511104A JP 2018511104 A JP2018511104 A JP 2018511104A JP 2017540881 A JP2017540881 A JP 2017540881A JP 2017540881 A JP2017540881 A JP 2017540881A JP 2018511104 A JP2018511104 A JP 2018511104A
Authority
JP
Japan
Prior art keywords
computing device
wake
processor
response
mode
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.)
Granted
Application number
JP2017540881A
Other languages
English (en)
Other versions
JP6627180B2 (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 JP2018511104A publication Critical patent/JP2018511104A/ja
Application granted granted Critical
Publication of JP6627180B2 publication Critical patent/JP6627180B2/ja
Active 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
    • 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/4418Suspend and resume; Hibernate and awake
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

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

Abstract

ハイブリッドスリープ電力管理のための技術は、低電力アイドル状態をサポートするプロセッサを有するコンピューティングデバイスを含む。プリブートファームウェア環境において、コンピューティングデバイスは、ファームウェア使用のためにメモリブロックを予約し、プラットフォームウェイクコードをシステム管理RAM(SMRAM)などのセキュアなメモリ位置にコピーする。ランタイムにおいて、オペレーティングシステムは、プロセッサが保護モードで、実行してよい。スリープ状態又はサスペンド状態に入るための要求に応答して、コンピューティングデバイスはシステム管理割り込み(SMI)を生成する。SMIハンドラにおいて、コンピューティングデバイスはウェイクコードをSMRAMから予約メモリブロックにコピーする。コンピューティングデバイスは、プロセッサがリアルモードで、SMIハンドラからウェイクコードに復帰する。ウェイクコードは、低電力アイドル状態に入り、次に、ウェイクイベントを受け取った後、オペレーティングシステムのウェイクベクトルにジャンプする。他の実施形態が説明され、特許請求の範囲に記載される。

Description

[関連出願の相互参照]
本願は、2015年3月27日出願の、"TECHNOLOGIES FOR IMPROVED HYBRID SLEEP POWER MANAGEMENT"と題する米国特許出願第14/670,939号に基づく優先権を主張する。
[背景技術]
現在のコンピューティングデバイスにとって、エネルギー効率はますます重要な検討事項である。ラップトップ、タブレット、及びスマートフォンなどの携帯機器においては、エネルギー効率は電池寿命に直接影響を与え、このことはユーザ体験の重要な部分である。サーバデバイスでは、エネルギー効率は、コスト、計算密度、及び熱管理に直接影響を与える。多くのコンピューティングデバイス及びプロセッサが、アドバンスド・コンフィグレーション・アンド・パワー・インタフェース(ACPI)仕様によって定義される、"S3"状態としても知られる低減された電力スリープ状態をサポートしている。ACPI S3スリープ状態では、揮発性メモリはその内容を維持すべく電源が投入されたままであってよく、一方で、コンピューティングデバイスのプロセッサなどの他のコンポーネントは電源が切られる。
現在のプロセッサはまた、種々の性能レベルと消費電力レベルとのバランスをサポートしてよい。例えば、プロセッサは、負荷がかかったときに性能を改善し、アイドルのとき又は僅かに負荷がかかったときに消費電力を低減すべく、性能及び消費電力をスケーリングしてよい。現在のプロセッサ及びデバイスはまた、ある特定の使用モデルの場合に極めて低い消費電力をデバイスが達成することを可能にする、低電力使用モデルをサポートしてよい。例えば、現在のコンピューティングデバイス及び/又はプロセッサは、S0ix低電力アイドル状態、低電力オーディオ再生、又は他の低電力状態をサポートしてよい。S0ix及び他の最新の低電力使用状態を使用すると、オペレーティングシステム又は他のソフトウェアのサポートが必要になるだろう。加えて、現在の多くのプロセッサは、もはやACPI S3スリープ状態をサポートしていない。
コンピューティングデバイスは通常、ハードウェアの初期化、低レベルハードウェア管理、及びブートプロセスの管理を担うファームウェアを含む。コンピューティングデバイスのブートを担う主プラットフォームファームウェアは、統一拡張可能ファームウェアインタフェース("UEFI")仕様に従って実装されてよい。当該UEFI仕様は、統一EFIフォーラムによって公開されたいくつかのバージョンを有する。UEFI仕様は、コンピューティングデバイスのファームウェアとコンピューティングデバイスのオペレーティングシステムとの間のインタフェースを指定する。
本明細書において説明される概念は、添付図面において、例として示されるのであって、限定として示されるのではない。説明を簡潔かつ明確にするために、図に示される要素は必ずしも縮尺通りに描かれてはいない。適切であると見なされる箇所では、対応する又は類似の要素を示すべく、参照符号が複数の図の間で繰り返されている。
ハイブリッドスリープ電力管理のためのコンピューティングデバイスの少なくとも1つの実施形態の簡略化されたブロック図である。
図1のコンピューティングデバイスの環境の少なくとも1つの実施形態の簡略化されたブロック図である。
図1及び図2のコンピューティングデバイスによって実行され得るプラットフォームのブートのための方法の少なくとも1つの実施形態の簡略化されたフローチャートである。
図1及び図2のコンピューティングデバイスによって実行され得る電力管理スリープ呼び出しのための方法の少なくとも1つの実施形態の簡略化されたフローチャートである。
図1及び図2のコンピューティングデバイスによって実行され得るシステム管理割り込み処理のための方法の少なくとも1つの実施形態の簡略化されたフローチャートである。
図1及び図2のコンピューティングデバイスによって実行され得る低電力アイドル及びウェイクのための方法の少なくとも1つの実施形態の簡略化されたフローチャートである。
本開示の概念は、様々な変更形態及び代替形態が可能であるが、それらの特定の実施形態が図面において例として示されており、本明細書において詳細に説明される。しかしながら、開示された特定の形態に本開示の概念を限定する意図はなく、逆に、本開示及び添付の特許請求の範囲と合致する全ての変更形態、均等物、及び代替形態を網羅することが意図されていることが理解されるべきである。
本明細書における"一実施形態"、"ある実施形態"、"例示的な実施形態"等への言及は、説明された実施形態が、特定の特徴、構造、又は特性を含んでよいが、全ての実施形態がその特定の特徴、構造、又は特性を含んでもよいし、必ずしも含まなくてもよいことを示す。その上、このような表現は必ずしも同一の実施形態を指すものではない。更に、特定の特徴、構造、又は特性がある実施形態に関連して説明される場合、明示的に説明されているかどうかに関わらず、他の実施形態に関連してこのような特徴、構造、又は特性を達成することは、当業者の知識の範疇であると考えられる。加えて、"少なくとも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又は複数のプロセッサによって読み取られ、実行されてよい、一時的又は非一時的機械可読(例えば、コンピュータ可読)記憶媒体によって保持された、又は当該媒体に格納された命令として実装されてよい。機械可読記憶媒体は、機械が読み取り可能な形態の情報を格納又は送信するための、任意の記憶デバイス、メカニズム、又は、他の物理的構造(例えば、揮発性若しくは不揮発性のメモリ、メディアディスク、又は他のメディアデバイス)として具現化されてよい。
図面では、いくつかの構造上又は方法上の特徴が特定の構成及び/又は順序で示されてよい。しかしながら、このような特定の構成及び/又は順序は必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施形態において、このような特徴は、例示の図に示されたものとは異なる態様及び/又は順序で構成されてよい。加えて、特定の図において構造上又は方法上の特徴を含むことによって、このような特徴が全ての実施形態において必要とされることを示唆するようには意図されておらず、いくつかの実施形態においては含まれなくてよいか、又は、他の特徴と組み合わせられてよい。
ここで図1を参照すると、ハイブリッドスリープ電力管理のための例示的なコンピューティングデバイス100は、プロセッサ120、I/Oサブシステム122、メモリ124、データ記憶デバイス128、及び通信回路130を含む。使用中、以下に説明されるように、コンピューティングデバイス100はプリブートファームウェア環境を実行する。プリブートファームウェア環境では、メモリのブロックが予約され、プラットフォームウェイクコードがシステム管理RAM(SMRAM)にコピーされる。予約メモリブロック及びSMRAMは、コンピューティングデバイス100のオペレーティングシステム又はランタイムアプリケーションによってアクセス可能ではない。ランタイムにおいて、コンピューティングデバイス100は、ACPI S3スリープ状態などの電力管理スリープ状態に入るための要求を生成する。コンピューティングデバイス100は、スリープ状態に入るための要求をトラップし、システム管理割り込み(SMI)を生成する。SMIに応答して、プロセッサ120は、現在のプロセッサ状態のコピーを保存し、次にSMIハンドラを呼び出す。SMIハンドラは、SMRAMからファームウェアの予約メモリブロックにウェイクコードをコピーする。SMIハンドラは、保存されたプロセッサ状態を変更してリアルモードで実行を再開し、予約メモリブロックに格納されたウェイクコードから開始する。ウェイクコードは、コンピューティングデバイス100に、S0ixなどの低電力アイドル状態に入らせる。低電力アイドル状態終了後、ウェイクコードはオペレーティングシステムのウェイクベクトルにジャンプする。故に、コンピューティングデバイス100は、ACPI S3を使用するよう設計されたオペレーティングシステムが、低電力アイドル状態を使用し、関連付けられた効率改善を得ることを可能にしてよい。加えて、コンピューティングデバイス100は、各スリープ要求に応答して不揮発性ストレージからブートファームウェアをリロード及び再認証する必要性を回避することによって、セキュリティを維持しつつ、スリープ性能を改善してよい。更に、コンピューティングデバイス100は、プロセッサ120をリセットする必要性を回避し、プロセッサ120のコンテキストをそのままにしておくことによって、再開のために必要なメモリの量を低減してよい。
コンピューティングデバイス100は、ハイブリッドスリープ電力管理、及び本明細書において説明される機能を実行するその他のことが可能な任意のタイプのデバイスとして具現化されてよい。例えば、コンピューティングデバイス100は、限定はされないが、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルコンピューティングデバイス、コンピュータ、ワークステーション、サーバ、マルチプロセッサシステム、消費者向け電子機器、スマート機器、及び/又は、ハイブリッドスリープ電力管理が可能な任意の他のコンピューティングデバイスとして具現化されてよい。図1に示されるように、例示的なコンピューティングデバイス100は、プロセッサ120、I/Oサブシステム122、メモリ124、及びデータ記憶デバイス128を含む。言うまでもなく、他の実施形態では、コンピューティングデバイス100は、コンピュータにおいて一般に見られる他の又は更なるコンポーネント(例えば、様々な入出力デバイス)を含んでよい。加えて、いくつかの実施形態において、例示のコンポーネントの1又は複数が、別のコンポーネントに組み込まれてよい、又はそうでなければ別のコンポーネントの一部を形成してよい。例えば、いくつかの実施形態において、メモリ124又はその一部は、プロセッサ120に組み込まれてよい。
プロセッサ120は、本明細書において説明される機能を実行可能な任意のタイプのプロセッサとして具現化されてよい。例えば、プロセッサ120は、(複数の)シングルコア若しくはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、又は、他のプロセッサ若しくは処理/制御回路として具現化されてよい。同様に、メモリ124は、本明細書に説明される機能を実行可能な任意のタイプの揮発性若しくは不揮発性のメモリ、又はデータストレージとして具現化されてよい。オペレーション中、メモリ124は、コンピューティングデバイス100のオペレーション中に使用されるオペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバなどの様々なデータ及びソフトウェアを格納してよい。メモリ124は、システム管理ランダムアクセスメモリ(SMRAM)126を含む。当該メモリは、システム管理割り込み(SMI)に応答してプロセッサ120が入るシステム管理モード(SMM)でのみプロセッサ120がアクセス可能なメモリ124の領域として具現化されてよい。SMRAM126は、SMI処理のための実行可能コード及びデータを含んでよい。I/Oサブシステム122は、SMRAM126へのアクセスを制御し、SMMで実行されないときに、コードがSMRAM126にアクセスすること又はSMRAM126を変更することを防いでよい。故に、SMRAM126の内容は、オペレーティングシステム、アプリケーション、及びコンピューティングデバイス100によって実行される他のランタイムコードにとってはアクセス不可能であってよい。
メモリ124は、I/Oサブシステム122を介してプロセッサ120に通信可能に結合される。当該I/Oサブシステムは、コンピューティングデバイス100のプロセッサ120、メモリ124、及び他のコンポーネントとの入出力オペレーションを容易にするための回路及び/又はコンポーネントとして具現化されてよい。例えば、I/Oサブシステム122は、メモリコントローラハブ、入出力制御ハブ、センサハブ、ファームウェアデバイス、通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレース等)、及び/又は入出力オペレーションを容易にするための他のコンポーネント及びサブシステムとして具現化されてよい、又はそうでなければそれらを含んでよい。いくつかの実施形態において、I/Oサブシステム122は、システムオンチップ(SoC)の一部を形成し、コンピューティングデバイス100のプロセッサ120、メモリ124、及び他のコンポーネントと共に、単一の集積回路チップ上に組み込まれてよい。
データ記憶デバイス128は、例えば、メモリデバイス及びメモリ回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、又は他のデータ記憶デバイスなどの短期又は長期のデータ記憶のために構成された任意のタイプの1又は複数のデバイスとして具現化されてよい。データ記憶デバイス128は、コンピューティングデバイス100によって実行されてよい、1又は複数のオペレーティングシステム及び/又はファームウェア環境を格納してよい。例えば、データ記憶デバイス128は、UEFI仕様によって規定されるファームウェアボリュームを格納してよい。
コンピューティングデバイス100はまた、通信回路130を含んでよい。当該通信回路は、コンピュータネットワーク(図示せず)を通じたコンピューティングデバイス100と他のリモートデバイスとの間での通信を可能にできる任意の通信回路、デバイス、又はそれらの集合として具現化されてよい。通信回路130は、任意の1又は複数の通信技術(例えば、有線通信又は無線通信)と、関連付けられるプロトコル(例えば、イーサネット(登録商標)、Bluetooth(登録商標)、Wi−Fi(登録商標)、WiMAX(登録商標)、3G、4G LTE等)とを使用してこのような通信を達成するよう構成されてよい。
コンピューティングデバイス100は更に、1又は複数の周辺機器132を含んでよい。周辺機器132は、任意の数の更なる入出力デバイス、インタフェースデバイス、及び/又は他の周辺機器を含んでよい。例えば、いくつかの実施形態において、周辺機器132は、タッチスクリーン、グラフィクス回路、オーディオデバイス、マイク、カメラ、環境センサ、キーボード、マウス、及び/又は他の入出力デバイス、インタフェースデバイス、及び/又は周辺機器を含んでよい。
ここで図2を参照すると、例示的な実施形態において、コンピューティングデバイス100はオペレーション中に環境200を確立する。例示的な実施形態200は、オペレーティングシステム202、ファームウェア環境208、システム管理モジュール214、及びウェイクコードモジュール218を含む。オペレーティングシステム202は更に、スリープモジュール204を含み、ファームウェア環境208は更に、セキュリティモジュール210を含む。環境200の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせとして具現化されてよい。例えば、環境200の様々なモジュール、ロジック、及び他のコンポーネントは、コンピューティングデバイス100のプロセッサ120又は他のハードウェアコンポーネントの一部を形成してよい、又はそうでなければコンピューティングデバイス100のプロセッサ120又は他のハードウェアコンポーネントによって確立されてよい。故に、いくつかの実施形態において、環境200のモジュールの任意の1又は複数は、回路、又は電気デバイスの集合(例えば、スリープ回路、セキュリティ回路、システム管理回路等)として具現化されてよい。
オペレーティングシステム202は、コンピューティングデバイス100の任意のオペレーティングシステム、ゲストオペレーティングシステム、ハイパーバイザ、仮想マシンモニタ、又は他の制御構造として具現化されてよい。以下で更に説明されるように、ファームウェア環境208がブートサービスを終了した後、オペレーティングシステム202は、コンピューティングデバイス100の制御を受け持つ。オペレーティングシステム202は、ACPI仕様によって説明されるシステム状態の管理を含む電力管理機能を実行する。オペレーティングシステム202によって確立されるスリープモジュール204は、例えば、予め定められた値を電力管理制御レジスタに書き込むことによって、ACPI S3スリープモードなどのスリープ電力管理モードに入るための要求を生成するよう構成される。スリープモジュール204は、プロセッサ120が保護モードで、ACPI S3スリープ状態に入るための要求を生成するよう構成される。オペレーティングシステム202は更に、ウェイクベクトル206を含む。ウェイクベクトル206は、コンピューティングデバイス100がACPI S3スリープ状態を終了するとき実行されてよいメモリアドレス、関数、サブルーチン、又は他のエントリポイントとして具現化されてよい。ウェイクベクトル206は、プロセッサ120がリアルモードで、実行されてよい。
ファームウェア環境208は、コンピューティングデバイス100の制御をオペレーティングシステム202に渡す前にコンピューティングデバイス100のコンポーネントを初期化及び設定する任意のプリブートファームウェア環境として具現化されてよい。例えば、ファームウェア環境208は、UEFI準拠ファームウェア環境として具現化されてよい。上述されたように、ファームウェア環境208はセキュリティモジュール210を確立する。
セキュリティモジュール210は、ファームウェア環境208が使用するための予約メモリブロック212を予約するよう構成される。予約された後、オペレーティングシステム202は、ドライバ及び/又はアプリケーションが予約メモリブロック212にアクセスすることを許可しない。予約メモリブロック212は、ハードウェア抽象化レイヤなどのオペレーティングシステム202の低レベルコンポーネントによってアクセスされてよい。しかしながら、オペレーティングシステム202は、スリープ状態遷移中に上書きされ得ない予約メモリブロック212に何の情報も格納しない。セキュリティモジュール210は更に、SMRAM126などのセキュアなメモリ位置に、予約メモリブロック212のメモリアドレスを格納するよう構成される。セキュリティモジュール210はまた、以下で更に説明されるプラットフォームウェイクコード220をセキュアなメモリ位置にコピーするよう構成される。いくつかの実施形態において、セキュリティモジュール210は、ファームウェア環境208又は他のブートコードを認証し、ウェイクコード220をセキュアなメモリ位置に格納した後、オペレーティングシステム202をブートするよう構成される。
システム管理モジュール214は、オペレーティングシステム202によって生成されるスリープ電力管理モードに入るための要求に応答して、システム管理割り込み(SMI)をトリガするよう構成される。コンピューティングデバイス100は、SMIをトリガしたことに応答して、SMIハンドラ216を実行してよい。SMIハンドラ216は、SMIを処理すべくプロセッサ120によって実行されてよい任意の関数、サブルーチン、割り込みサービスルーチン、又は他のコードとして具現化されてよい。SMIハンドラ216は、オペレーティングシステム202がアクセス可能でないSMRAM126、又は他のセキュアなメモリ位置に格納されてよい。システム管理モジュール214は更に、SMIをトリガしたことに応答して、セキュアなメモリ位置(例えば、SMRAM126)から予約メモリブロック212にウェイクコード220をコピーするよう構成される。システム管理モジュール214は、プロセッサ120がリアルモードで、SMIハンドラ216を完了した後、コンピューティングデバイス100の実行を再開するよう構成され、予約メモリブロック212に格納されたウェイクコード220から開始する。システム管理モジュール214は、プロセッサ120のプロセッサ状態をセキュアなメモリ位置(例えば、SMRAM126)に保存してよく、リアルモードで実行すべく、保存されたプロセッサ状態を変更してよく、保存された命令ポインタレジスタ値及び/又は保存されたセグメントレジスタ値を変更して、予約メモリブロック212のウェイクコード220から実行を再開させてよい。
ウェイクコードモジュール218は、S0ixなどの低電力アイドル状態に入り、次に、ウェイクイベントに応答してコンピューティングデバイス100が低電力アイドル状態を離れるとき、オペレーティングシステム202のウェイクベクトル206にジャンプするよう構成される。ウェイクコードモジュール218はまた、電力管理スリープ状態に入る、又は電力管理スリープ状態を離れるとき通常実行される、1又は複数の周辺機器132のためのデバイス状態情報の格納、及び/又は、ウェイクイベントに基づいた1又は複数の電力管理ステータスレジスタの更新などの他のオペレーションを実行するよう構成されてよい。ウェイクコードモジュール218の関数は、プラットフォームウェイクコード220によって実行されてよい。プラットフォームウェイクコード220は、リアルモードでプロセッサ120によって実行されてよい任意の関数、サブルーチン、又は他の実行可能コードとして具現化されてよい。ウェイクコード220は、データ記憶デバイス128又はプラットフォームフラッシュのファームウェアボリュームなど、ファームウェア環境208にとってアクセス可能な不揮発性ストレージに格納されてよい。上述されたように、ウェイクコード220はファームウェア環境208によってセキュアなメモリ位置(例えば、SMRAM126)にコピーされ、次に、SMIに応答して、SMIハンドラ216によって予約メモリブロック212にコピーされる。従って、ウェイクコード220は、不揮発性ストレージからのロード後、オペレーティングシステム202によって変更されなくてよく、故に、電力管理スリープ状態に入るための要求に応答して認証される必要はなくてよい。
ここで図3を参照すると、使用中、コンピューティングデバイス100は、プラットフォームのブートのための方法300を実行してよい。方法300はブロック302から開始する。ブロック302において、コンピューティングデバイス100は電源がオンになる。コンピューティングデバイス100は、例えば、ボタンの押下などのユーザコマンドに応答して、外部電源に接続されたことに応答して、又は、任意の他の適切なイベントに応答して電源がオンになってよい。コンピューティングデバイス100はまた、ソフト的若しくはハード的なリセット、又は他の再起動イベントに応答して電源がオンになってよい。方法300の後続のプロセスは、オペレーティングシステム202の実行前にファームウェア環境208によって実行されてよい。故に、ファームウェア環境208は、方法300の実行中、コンピューティングデバイス100の完全制御を行なってよい。
ブロック304において、コンピューティングデバイス100はブートファームウェアを認証する。コンピューティングデバイス100は、例えば、プラットフォームフラッシュメモリチップ、データ記憶デバイス128のファームウェアボリューム、又は他のストレージなどの不揮発性メモリに格納されたブートファームウェアの1又は複数のファームウェアイメージを認証してよい。コンピューティングデバイス100は、例えば、信頼済みの証明書のセットに対して、各特定のファームウェアイメージに関連付けられたデジタルシグネチャが正当なものであると確認することによって、ファームウェアイメージを認証してよい。コンピューティングデバイス100は、例えば、UEFI仕様において説明されているセキュアなブートプロセスを実行してよい。ブートファームウェアを認証することにより、ファームウェア環境208のコンポーネント、オペレーティングシステム202、SMIハンドラ216、及び/又はウェイクコード220などのコンピューティングデバイス100の他のコンポーネントをロード又は実行する前に信頼のルート(root of trust)が提供されてよい。
ブロック306において、コンピューティングデバイス100は、ファームウェア環境208が使用するための予約メモリブロック212を予約する。予約後、予約メモリブロック212の内容は、コンピューティングデバイス100のオペレーティングシステム202又は他の無許可のプロセスの制御の下、ドライバ及び/又はアプリケーションによって変更されなくてよい、又はそうでなければアクセスされてなくてよい。コンピューティングデバイス100は、任意の適切な技術を使用して予約メモリブロック212を予約してよい。例えば、ファームウェア環境208は、予約メモリブロック212を除外するオペレーティングシステム202にメモリマップ又は他のデータテーブルを公開してよい。
ブロック308において、コンピューティングデバイス100は、予約メモリブロック212のメモリアドレスをSMRAM126内の位置などのセキュアなメモリ位置に格納する。セキュアなメモリ位置は、コンピューティングデバイス100のオペレーティングシステム202又は他の無許可のプロセスによって変更されなくてよい、又はそうでなければアクセスされなくてよい。しかしながら、セキュアなメモリ位置は、図5に関連して以下で更に説明されるように、スリープモードに入るための要求を処理する場合は、コンピューティングデバイス100によってアクセスされてよい。例えば、プロセッサ120がシステム管理割り込み(SMI)を処理する間システム管理モード(SMM)にある場合、SMRAM126のみがコンピューティングデバイス100にとってアクセス可能である。故に、オペレーティングシステム202、及びオペレーティングシステム202によって実行されるあらゆるアプリケーション及び/又はドライバは、SMRAM126にアクセスしなくてよい。
ブロック310において、コンピューティングデバイス100は、ウェイクコード220のコピーをSMRAM126内の位置などのセキュアなメモリ位置に格納する。上述されたように、セキュアなメモリ位置に格納されたウェイクコード220のコピーは、コンピューティングデバイス100のオペレーティングシステム202又は他の無許可のプロセスによって変更されなくてよい、又はそうでなければアクセスされなくてよい。セキュアなメモリ位置に格納されたウェイクコード220のコピーは、SMIを処理する間プロセッサ120がSMMにある場合などの、スリープモードに入るための要求を処理する場合、コンピューティングデバイス100によってアクセスされてよい。
ブロック312において、コンピューティングデバイス100はオペレーティングシステム202をブートする。コンピューティングデバイス100はまた、オペレーティングシステム202をブートするのに必要な任意の更なるプリブートオペレーションを実行してよい。例えば、コンピューティングデバイス100は、例えば、ドライバ実行環境の確立、ファームウェアドライバ及びアプリケーションのロード、ブートデバイス選択の実行、オペレーティングシステムローダの実行、及び/又はブートサービスの終了を含むUEFI規格によって説明されるブートプロセスを実行してよい。オペレーティングシステム202をロードした後、方法300は完了し、ファームウェア環境208はもはやコンピューティングデバイス100を完全制御しない。ファームウェア環境208の特定のランタイムサービス又は他のコンポーネントは、オペレーティングシステム202がコンピューティングデバイス100を制御している間アクティブなままであってよい。
ここで図4を参照すると、使用中、コンピューティングデバイス100は、電力管理スリープ呼び出しのための方法400を実行してよい。方法400は、ランタイム、すなわち、オペレーティングシステム202がコンピューティングデバイス100を完全制御している間、コンピューティングデバイス100のハードウェア、ファームウェア、及び/又はソフトウェアによって実行されてよい。方法400はブロック402から開始する。ブロック402では、コンピューティングデバイス100は、電力管理スリープ状態に入るための要求についてモニタリングする。いくつかの実施形態において、ブロック404では、コンピューティングデバイス100は、電力管理制御レジスタに書き込まれたACPI S3スリープ要求についてモニタリングする。例えば、オペレーティングシステム202は、コンピューティングデバイス100がACPI S3スリープ状態に入ることを要求すべく、電力管理制御レジスタに書き込んでよい。オペレーティングシステム202は、ファームウェア環境208によって確立された1又は複数のシステム記述テーブル又は他のデータ構造において、適切な電力管理制御レジスタを検索してよい。コンピューティングデバイス100は、任意の技術を使用して、S3スリープ要求についてモニタリングしてよい。例えば、コンピューティングデバイス100は、電力管理制御レジスタへの書き込みをトラップしてよい。ブロック406において、コンピューティングデバイス100は、S3スリープ要求が検出されたかどうかを判断する。検出されなかった場合、方法400はブロック402に戻り、スリープ要求についてのモニタリングを継続する。スリープ要求が検出された場合、方法400はブロック408に進む。
ブロック408において、コンピューティングデバイス100は、システム管理割り込み(SMI)をトリガし、SMIハンドラ216を呼び出す。コンピューティングデバイス100のファームウェア及び/又はソフトウェアがSMIを生成してよく、プロセッサ120は、自動的にシステム管理モード(SMM)に切り替わり、SMIハンドラ216を呼び出してよい。図5及び図6に関連して以下で更に説明されるように、SMIハンドラ216の呼び出し後、コンピューティングデバイス100は低電力アイドル状態に入ってよい。低電力アイドル状態を終了し、フル電力実行を再開した後、方法400はブロック402に戻り、スリープ要求についてのモニタリングを継続する。
ここで図5を参照すると、使用中、コンピューティングデバイス100は、システム管理割り込み処理のための方法500を実行してよい。方法500はブロック502から開始する。ブロック502では、コンピューティングデバイス100はSMIハンドラ216を呼び出す。図4のブロック408に関連して上述されたように、SMIハンドラ216は、電力管理スリープ状態に入ることをコンピューティングデバイス100が要求した場合に生成されるシステム管理割り込み(SMI)に応答してプロセッサ120によって呼び出されてよい。SMIハンドラ216を実行する前に、プロセッサ120はシステム管理モード(SMM)に入る。SMMは、プロセッサ120がSMRAM126にアクセスすることを可能にする特殊なプロセッサモードである。加えて、SMIハンドラ216の実行前に、プロセッサ120は、その現在のプロセッサ状態をSMRAM126に保存する。保存されたプロセッサ状態は、例えば、SMMに入る直前のプロセッサ120のレジスタ値のコピーを含んでよい。保存されたプロセッサ状態は、SMIハンドラ216の完了後、プロセッサ120が実行を再開することを可能にすべく使用されてよい。
ブロック504において、コンピューティングデバイス100は、プラットフォームウェイクコード220をセキュアなメモリ位置(例えば、SMRAM126)からファームウェアの予約メモリブロック212にコピーする。図3のブロック310に関連して上述されたように、プラットフォームウェイクコード220は、プリブートファームウェア環境208においてブートファームウェアによってSMRAM126に既に格納された。コンピューティングデバイス100は、図3のブロック308に関連して上述されたように、ブートファームウェアによってセキュアなメモリ位置に格納されたメモリアドレスを使用して、予約メモリブロック212を位置付けてよい。SMRAM126はオペレーティングシステム202又は他の無許可のコードにとってはアクセス不可能なので、SMRAM126に格納されたプラットフォームウェイクコード220のコピーは、ブートファームウェアの先の認証に基づいて、更に認証することなくSMIハンドラ216によって信頼されてよい。加えて、プラットフォームウェイクコード220は、データ記憶デバイス128又はプラットフォームの不揮発性フラッシュメモリなどの低速である可能性のあるファームウェアの記憶デバイスにアクセスすることなく、主メモリ124にコピーされてよい。いくつかの実施形態において、プラットフォームウェイクコード220を不揮発性ストレージからではなくSMRAM126からコピーすれば、各スリープ要求についておよそ100ミリ秒節約されるだろう。
ブロック506において、コンピューティングデバイス100は低電力アイドル状態に入るためのシステムハードウェアを準備する。コンピューティングデバイス100は、例えば、C10及び/又はSLP_S0などの低電力状態に入るためのプラットフォームシステムオンチップ(SoC)を初期化してよい。加えて、コンピューティングデバイス100は、サブシステムにわたりレイテンシ許容範囲報告(latency tolerance reporting)(LTR)値を初期化してよい、ディスプレイの電源を切ってよい、又はそうでなければ、SoC特有の準備を実行してよい。
ブロック508において、コンピューティングデバイス100は、SMIハンドラ216から復帰するとプロセッサ120を保護モードからリアルモードに変化させるよう、保存されたプロセッサ状態を変更する。オペレーティングシステム202を実行する一方で、プロセッサ120は、仮想メモリアドレス指定、メモリページング、及び他の機能を提供する保護モードで実行する。使用中の特定のタイプの保護モードは、使用中のプロセッサ120及び/又はオペレーティングシステム202に依拠してよい。例えば、プロセッサ120は、Intel(登録商標)アーキテクチャプロセッサにおいては、x86保護モードで、又はIA−32eモードでオペレーティングシステム202を実行してよい。故に、SMRAM126に格納された保存されたプロセッサ状態は、プロセッサ120がSMIハンドラ216の呼び出しの直前に保護モードで実行中だったことを示す1又は複数のレジスタ値を含んでよい。コンピューティングデバイス100は、リアルモードに対応する1又は複数の新しいレジスタ値を、保存されたプロセッサ状態に書き込んでよい。故に、保存されたプロセッサ状態がプロセッサ120に戻された場合、プロセッサ120は、リアルモードで実行を再開してよい。リアルモードは、例えば、仮想メモリアドレス指定、メモリページング、又は他の保護モードの機能なしにセグメント化アドレス指定モードとして具現化されてよい。具体的には、最初にブートする場合及び/又はACPI S3スリープ状態を終了する場合、リアルモードはプロセッサ120によって使用される同一のモードであってよい。
ブロック510において、コンピューティングデバイス100は、ファームウェアの予約メモリブロック212に格納されたウェイクコード220から実行を再開するよう、保存されたプロセッサ状態を変更する。具体的には、コンピューティングデバイス100は、保存されたプロセッサ状態の保存された命令ポインタレジスタに、ウェイクコード220の開始位置に対応する値を書き込んでよい。故に、保存された命令ポインタレジスタの新しい値は、ファームウェアの予約メモリブロック212のウェイクコード220の開始を指し示す。コンピューティングデバイス100はまた、保存されたプロセッサ状態の保存されたセグメントレジスタに、対応する値を書き込んでよい。故に、保存されたプロセッサ状態がプロセッサ120に戻される場合、プロセッサ120は、ファームウェアの予約メモリブロック212のウェイクコード220のアドレスと共に命令ポインタの値をロードし、次に、ファームウェアの予約メモリブロック212からのウェイクコード220の実行を即座に開始する。
ブロック512において、コンピューティングデバイス100はシステム管理モード(SMM)から復帰する。コンピューティングデバイス100は、例えば、RSMなどのプロセッサ命令を実行してSMMから復帰してよい。RSM命令の実行後、SMIハンドラ216は完了する。RSM命令に応答して、プロセッサ120は、保存されたプロセッサ状態をSMRAM126からリロードし、保存されたプロセッサ状態の内容に基づいて実行を継続する。故に、ブロック508に関連して上述されたように、プロセッサ120はSMMでの実行を停止し、リアルモードでの実行を開始する。プロセッサ120は、ブロック510に関連して上述されたように、ファームウェアの予約メモリブロック212に位置するウェイクコード220からの命令の実行を開始する。
ここで図6を参照すると、使用中、コンピューティングデバイス100は、低電力アイドル及びウェイクのための方法600を実行してよい。方法600は、例えば、ファームウェアの予約メモリブロック212に位置するウェイクコード220の実行中に実行されてよい。方法600はブロック602から開始する。ブロック602では、コンピューティングデバイス100はSMIハンドラ216から復帰する。図5のブロック512に関連して上述されたように、SMIハンドラ216の呼び出し後、コンピューティングデバイス100は、プロセッサ120がリアルモードで、実行を再開し、ファームウェアの予約メモリブロック212に位置するウェイクコード220から開始する。
ブロック604において、コンピューティングデバイス100は周辺機器132の状態情報を格納する。コンピューティングデバイス100は、ACPI S3スリープ状態に入る前に保存されるべき、コンピューティングデバイス100の周辺機器132又は他のコンポーネントに関連付けられた、オペレーティングシステム202が通常必要とするあらゆる状態情報又は他のデータを格納してよい。
ブロック606において、コンピューティングデバイス100は低電力アイドル状態に入る。コンピューティングデバイス100は任意の低電力状態に入ってよい。当該低電力状態は、揮発性メモリ124の内容、プロセッサ120のレジスタ、及びコンピューティングデバイス100の他の揮発性状態を維持し、高速なウェイクを可能にする。コンピューティングデバイス100は、しかしながら、S3などのACPIスリープ状態には入らない。例えば、コンピューティングデバイス100はS0ix状態に入ってよく、プロセッサ120は、C10状態などの低電力状態に入ってよい。ブロック608において、コンピューティングデバイス100はウェイクイベントについてモニタリングする。コンピューティングデバイス100は、ウェイクイベントについてモニタリングするための任意の技術を使用してよい。例えば、コンピューティングデバイス100はMWAITプロセッサ命令を実行してよく、次に、ウェイクイベント(例えば、メモリ若しくはI/Oの書き込みイベント)が発生するまで低電力アイドル状態で待機してよい。いくつかの実施形態において、低電力状態を終了する、すなわち、フル電力状態に戻るには、およそ60ミリ秒から100ミリ秒必要であろう。ブロック610において、コンピューティングデバイス100はウェイクイベントが発生したかどうかを判断する。発生しなかった場合、方法600はブロック608に戻り、ウェイクイベントについてのモニタリングを継続する。ウェイクイベントが発生した場合、方法600はブロック612に進む。
ブロック612において、コンピューティングデバイス100は、適切なウェイクソースで1又は複数の電力管理ステータスレジスタを更新する。コンピューティングデバイス100は、ACPI仕様の要件に基づいて電力管理ステータスレジスタを更新してよい。ブロック614において、コンピューティングデバイス100はウェイクベクトル206にジャンプする。ウェイクベクトル206は、コンピューティングデバイス100をACPI S3スリープ状態からウェイクするのに使用されるオペレーティングシステム関数又は他のルーチンに関連付けられたメモリアドレスとして具現化されてよい。プロセッサ120はリアルモードでウェイクベクトル206から実行を継続してよい。
ブロック616において、コンピューティングデバイス100はオペレーティングシステム202を実行する。オペレーティングシステム202は、コンピューティングデバイス100をS0アクティブモードなどのフル電力動作可能モードに戻す。オペレーティングシステム202はまた、1又は複数の周辺機器132の保存された状態のリロード、及び/又は、プロセッサ120の保護モードへの遷移などの、ACPI S3スリープ状態から復帰する場合に通常実行されるオペレーションを実行してよい。実行をウェイクコード220からオペレーティングシステム202に引き渡した後、方法600は完了する。コンピューティングデバイス100は、フル電力モードでの実行と、図4に関連して上述されたようなACPI S3スリープ状態に入るための要求についてのモニタリングとを継続してよい。
[例]
本明細書において開示された技術の実施例を以下で提供する。当該技術の実施形態は、以下で説明される例のうちの任意の1又は複数、及び任意の組み合わせを含んでよい。
例1はハイブリッドスリープ電力管理のためのコンピューティングデバイスを含む。当該コンピューティングデバイスは、(i)コンピューティングデバイスのプリブートファームウェア環境中、予約メモリブロックを予約し、(ii)プリブートファームウェア環境中、コンピューティングデバイスのオペレーティングシステムによってアクセス可能ではないセキュアなメモリ位置にウェイクルーチンを格納するセキュリティモジュールと、(i)第1のプロセッサモードでオペレーティングシステムによって生成されたスリープ電力管理モードに入るための要求に応答して、コンピューティングデバイスのシステム管理割り込みハンドラによって、ウェイクルーチンをセキュアなメモリ位置から予約メモリブロックにコピーし、(ii)第2のプロセッサモードでのコンピューティングデバイスの実行をシステム管理割り込みハンドラによって再開し、予約メモリブロックに格納されたウェイクルーチンから開始するシステム管理モジュールと、第2のプロセッサモードでの実行の再開に応答して、コンピューティングデバイスのウェイクルーチンによって低電力アイドル状態に入るウェイクコードモジュールとを備える。
例2は例1の主題を含み、当該システム管理モジュールは更に、スリープ電力管理モードに入るための要求に応答して、システム管理割り込みをトリガし、ウェイクルーチンをコピーすることは、システム管理割り込みをトリガしたことに応答して、ウェイクルーチンをコピーすることを含む。
例3は例1及び例2の何れかの主題を含み、第1のプロセッサモードは保護モードを含み、第2のプロセッサモードはリアルモードを含む。
例4は、例1〜例3の何れかの主題を含み、セキュリティモジュールは更に、プリブートファームウェア環境中、セキュアなメモリ位置に予約メモリブロックのアドレスを格納し、ウェイクルーチンをセキュアなメモリ位置から予約メモリブロックにコピーすることは、セキュアなメモリ位置に格納された予約メモリブロックのアドレスを使用して、ウェイクルーチンをコピーすることを含む。
例5は、例1〜例4の何れかの主題を含み、セキュリティモジュールは更に、プリブートファームウェア環境を認証し、予約メモリブロックを予約することは、プリブートファームウェア環境の認証に応答して予約メモリブロックを予約することを含み、セキュアなメモリ位置にウェイクルーチンを格納することは、プリブートファームウェア環境の認証に応答してセキュアなメモリ位置にウェイクルーチンを格納することを含む。
例6は例1〜例5の何れかの主題を含み、セキュアなメモリ位置は、コンピューティングデバイスのシステム管理モードメモリ領域を含む。
例7は例1〜例6の何れかの主題を含み、セキュリティモジュールは更に、セキュアなメモリ位置へのウェイクルーチンの格納に応答して、オペレーティングシステムをブートする。
例8は例1〜例7の何れかの主題を含み、更に、スリープ電力管理モードに入るための要求をオペレーティングシステムによって生成するスリープモジュールを含む。
例9は例1〜例8の何れかの主題を含み、スリープ電力管理モードに入るための要求を生成することは、ACPI S3状態に入るための要求を生成することを含む。
例10は例1〜例9の何れかの主題を含み、スリープ電力管理モードに入るための要求を生成することは、予め定められた値を電力管理制御レジスタに書き込むことを含む。
例11は例1〜例10の何れかの主題を含み、システム管理モジュールは更に、低電力アイドル状態のためのコンピューティングデバイスのハードウェアコンポーネントをシステム管理割り込みハンドラによって初期化する。
例12は例1〜例11の何れかの主題を含み、システム管理モジュールは更に、システム管理割り込みをトリガしたことに応答して、保存されたプロセッサ状態を生成すべく、コンピューティングデバイスのプロセッサのプロセッサ状態をセキュアなメモリ位置に保存し、第2のプロセッサモードで実行すべく、保存されたプロセッサ状態をシステム管理割り込みハンドラによって変更し、コンピューティングデバイスの実行を再開することは、保存されたプロセッサ状態の変更に応答して、コンピューティングデバイスの実行を再開することを含む。
例13は例1〜例12の何れかの主題を含み、システム管理モジュールは更に、予約メモリブロックに格納されたウェイクルーチンを指し示すよう、保存されたプロセッサ状態の保存された命令ポインタレジスタ値をシステム管理割り込みハンドラによって変更し、コンピューティングデバイスの実行を再開することは更に、保存された命令ポインタレジスタ値の変更に応答して、コンピューティングデバイスの実行を再開することを含む。
例14は例1〜例13の何れかの主題を含み、低電力アイドル状態は、S0ixプロセッサ状態を含む。
例15は例1〜例14の何れかの主題を含み、ウェイクコードモジュールは更に、コンピューティングデバイスの実行の再開に応答して、コンピューティングデバイスの周辺機器のデバイス状態をウェイクルーチンによって格納し、低電力アイドル状態に入ることは、デバイス状態の格納に応答して低電力アイドル状態に入ることを含む。
例16は例1〜例15の何れかの主題を含み、ウェイクコードモジュールは更に、低電力アイドル状態へ入ったことに応答して、オペレーティングシステムのウェイクベクトルにウェイクルーチンによってジャンプする。
例17は例1〜例16の何れかの主題を含み、ウェイクコードモジュールは更に、低電力アイドル状態に入ったことに応答して、ウェイクイベントが発生したかどうかを判断し、ウェイクイベントが発生したとの判断に応答して、ウェイクイベントに基づいて電力管理ステータスレジスタをウェイクルーチンによって更新し、ウェイクベクトルにジャンプすることは、電力管理ステータスレジスタの更新に応答して、ウェイクベクトルにジャンプすることを含む。
例18はハイブリッドシステムスリープのための方法を含む。当該方法は、コンピューティングデバイスのプリブートファームウェア環境中、予約メモリブロックを予約する段階と、コンピューティングデバイスのプリブートファームウェア環境中、コンピューティングデバイスのオペレーティングシステムがアクセス可能でないセキュアなメモリ位置にウェイクルーチンを格納する段階と、第1のプロセッサモードでオペレーティングシステムによって生成されたスリープ電力管理モードに入るための要求に応答して、ウェイクルーチンをセキュアなメモリ位置から予約メモリブロックに、コンピューティングデバイスのシステム管理割り込みハンドラによってコピーする段階と、第2のプロセッサモードでのコンピューティングデバイスの実行をシステム管理割り込みハンドラによって再開し、予約メモリブロックに格納されたウェイクルーチンから開始する段階と、第2のプロセッサモードでの実行を再開したことに応答して、コンピューティングデバイスのウェイクルーチンによって低電力アイドル状態に入る段階とを備える。
例19は例18の主題を含み、更に、スリープ電力管理モードに入るための要求に応答して、システム管理割り込みをコンピューティングデバイスによってトリガする段階を含み、ウェイクルーチンをコピーする段階は、システム管理割り込みをトリガしたことに応答してウェイクルーチンをコピーする段階を含む。
例20は例18及び例19の何れかの主題を含み、第1のプロセッサモードは保護モードを含み、第2のプロセッサモードはリアルモードを含む。
例21は例18〜例20の何れかの主題を含み、更に、プリブートファームウェア環境中、予約メモリブロックのアドレスをセキュアなメモリ位置に格納する段階を含み、ウェイクルーチンをセキュアなメモリ位置から予約メモリブロックにコピーする段階は、セキュアなメモリ位置に格納された予約メモリブロックのアドレスを使用して、ウェイクルーチンをコピーする段階を含む。
例22は例18〜例21の何れかの主題を含み、更に、プリブートファームウェア環境をコンピューティングデバイスによって認証する段階を含み、予約メモリブロックを予約する段階は、プリブートファームウェア環境を認証したことに応答して、予約メモリブロックを予約する段階を含み、ウェイクルーチンをセキュアなメモリ位置に格納する段階は、プリブートファームウェア環境を認証したことに応答して、ウェイクルーチンをセキュアなメモリ位置に格納する段階を含む。
例23は、例18〜例22の何れかの主題を含み、セキュアなメモリ位置は、コンピューティングデバイスのシステム管理モードメモリ領域を含む。
例24は、例18〜23の何れかの主題を含み、更に、ウェイクルーチンをセキュアなメモリ位置に格納したことに応答して、オペレーティングシステムをコンピューティングデバイスによってブートする段階を含む。
例25は、例18〜例24の何れかの主題を含み、更に、スリープ電力管理モードに入るための要求をオペレーティングシステムによって生成する段階を含む。
例26は例18〜例25の何れかの主題を含み、スリープ電力管理モードに入るための要求を生成する段階は、ACPI S3状態に入るための要求を生成する段階を含む。
例27は例18〜例26の何れかの主題を含み、スリープ電力管理モードに入るための要求を生成する段階は、予め定められた値を電力管理制御レジスタに書き込む段階を含む。
例28は例18〜例27の何れかの主題を含み、更に、低電力アイドル状態のためのコンピューティングデバイスのハードウェアコンポーネントをシステム管理割り込みハンドラによって初期化する段階を含む。
例29は例18〜例28の何れかの主題を含み、更に、システム管理割り込みをトリガしたことに応答して、保存されたプロセッサ状態を生成すべく、コンピューティングデバイスのプロセッサのプロセッサ状態をコンピューティングデバイスによってセキュアなメモリ位置に保存する段階と、第2のプロセッサモードで実行すべく、保存されたプロセッサ状態をシステム管理割り込みハンドラによって変更する段階を含み、コンピューティングデバイスの実行を再開する段階は、保存されたプロセッサ状態を変更したことに応答して、コンピューティングデバイスの実行を再開する段階を含む。
例30は例18〜例29の何れか主題を含み、更に、予約メモリブロックに格納されたウェイクルーチンを指し示すよう、保存されたプロセッサ状態の保存された命令ポインタレジスタ値をシステム管理割り込みハンドラによって変更する段階を含み、コンピューティングデバイスの実行を再開する段階は更に、保存された命令ポインタレジスタ値を変更したことに応答してコンピューティングデバイスの実行を再開する段階を含む。
例31は例18〜例30の何れかの主題を含み、低電力アイドル状態に入る段階は、S0ixプロセッサ状態に入る段階を含む。
例32は例18〜例31の何れかの主題を含み、更に、コンピューティングデバイスの実行を再開したことに応答して、コンピューティングデバイスの周辺機器のデバイス状態をウェイクルーチンによって格納する段階を含み、低電力アイドル状態に入る段階は、デバイス状態を格納したことに応答して、低電力アイドル状態に入る段階を含む。
例33は例18〜例32の何れかの主題を含み、更に、低電力アイドル状態に入ったことに応答して、オペレーティングシステムのウェイクベクトルにウェイクルーチンによってジャンプする段階を含む。
例34は例18〜例33の何れかの主題を含み、更に、低電力アイドル状態に入ったことに応答して、ウェイクイベントが発生したかどうかをコンピューティングデバイスによって判断する段階と、ウェイクイベントが発生したと判断したことに応答して、ウェイクイベントに基づいて電力管理ステータスレジスタをウェイクルーチンによって更新する段階とを含み、ウェイクベクトルにジャンプする段階は、電力管理ステータスレジスタを更新したことに応答して、ウェイクベクトルにジャンプする段階を含む。
例35はコンピューティングデバイスを含む。当該コンピューティングデバイスは、プロセッサと、プロセッサによって実行された場合、コンピューティングデバイスに例18〜例34の何れかの方法を実行させる複数の命令を格納したメモリとを備える。
例36は、格納された複数の命令を備える1又は複数の機械可読記憶媒体を含み、当該命令は、実行されたことに応答して、コンピューティングデバイスに例18〜例34の何れかの方法を実行させる。
例37は例18〜例34の何れかの方法を実行するための手段を備えるコンピューティングデバイスを含む。
例38はハイブリッドスリープ電力管理のためのコンピューティングデバイスを含む。当該コンピューティングデバイスは、コンピューティングデバイスのプリブートファームウェア環境中、予約メモリブロックを予約するための手段と、コンピューティングデバイスのプリブートファームウェア環境中、コンピューティングデバイスのオペレーティングシステムがアクセス可能でないセキュアなメモリ位置にウェイクルーチンを格納するための手段と、第1のプロセッサモードでオペレーティングシステムによって生成されたスリープ電力管理モードに入るための要求に応答して、コンピューティングデバイスのシステム管理割り込みハンドラによってウェイクルーチンをセキュアなメモリ位置から予約メモリブロックにコピーするための手段と、第2のプロセッサモードでコンピューティングデバイスの実行をシステム管理割り込みハンドラによって再開し、予約メモリブロックに格納されたウェイクルーチンから開始するための手段と、第2のプロセッサモードでの実行を再開したことに応答して、コンピューティングデバイスのウェイクルーチンによって低電力アイドル状態に入るための手段とを備える。
例39は例38の主題を含み、更に、スリープ電力管理モードに入るための要求に応答して、システム管理割り込みをトリガするための手段を含み、ウェイクルーチンをコピーするための手段は、システム管理割り込みをトリガしたことに応答して、ウェイクルーチンをコピーするための手段を含む。
例40は例38及び例39の何れかの主題を含み、第1のプロセッサモードは保護モードを含み、第2のプロセッサモードはリアルモードを含む。
例41は例38〜例40の何れかの主題を含み、更に、プリブートファームウェア環境中、セキュアなメモリ位置に予約メモリブロックのアドレスを格納するための手段を含み、ウェイクルーチンをセキュアなメモリ位置から予約メモリブロックにコピーするための手段は、セキュアなメモリ位置に格納された予約メモリブロックのアドレスを使用して、ウェイクルーチンをコピーするための手段を含む。
例42は例38〜例41の何れかの主題を含み、更に、プリブートファームウェア環境を認証するための手段を含み、予約メモリブロックを予約するための手段は、プリブートファームウェア環境を認証したことに応答して、予約メモリブロックを予約するための手段を含み、ウェイクルーチンをセキュアなメモリ位置に格納するための手段は、プリブートファームウェア環境を認証したことに応答して、ウェイクルーチンをセキュアなメモリ位置に格納するための手段を含む。
例43は例38〜例42の何れかの主題を含み、セキュアなメモリ位置は、コンピューティングデバイスのシステム管理モードメモリ領域を含む。
例44は例38〜例43の何れかの主題を含み、更に、セキュアなメモリ位置にウェイクルーチンを格納したことに応答して、オペレーティングシステムをブートするための手段を含む。
例45は例38〜例44の何れかの主題を含み、更に、スリープ電力管理モードに入るための要求を生成するための手段を含む。
例46は例38〜例45の何れかの主題を含み、スリープ電力管理モードに入るための要求を生成するための手段は、ACPI S3状態に入るための要求を生成するための手段を含む。
例47は例38〜例46の何れかの主題を含み、スリープ電力管理モードに入るための要求を生成するための手段は、予め定められた値を電力管理制御レジスタに書き込むための手段を含む。
例48は例38〜例47の何れかの主題を含み、更に、低電力アイドル状態のためのコンピューティングデバイスのハードウェアコンポーネントをシステム管理割り込みハンドラによって初期化するための手段を含む。
例49は例38〜例48の何れかの主題を含み、更に、システム管理割り込みをトリガしたことに応答して、保存されたプロセッサ状態を生成すべく、コンピューティングデバイスのプロセッサのプロセッサ状態をセキュアなメモリ位置に保存するための手段と、第2のプロセッサモードで実行すべく、保存されたプロセッサ状態をシステム管理割り込みハンドラによって変更するための手段とを含み、コンピューティングデバイスの実行を再開するための手段は、保存されたプロセッサ状態を変更したことに応答して、コンピューティングデバイスの実行を再開するための手段を含む。
例50は例38〜例49の何れかの主題を含み、更に、予約メモリブロックに格納されたウェイクルーチンを指し示すよう、保存されたプロセッサ状態の保存された命令ポインタレジスタ値をシステム管理割り込みハンドラによって変更するための手段を含み、コンピューティングデバイスの実行を再開するための手段は更に、保存された命令ポインタレジスタ値を変更したことに応答して、コンピューティングデバイスの実行を再開するための手段を含む。
例51は例38〜例50の何れかの主題を含み、低電力アイドル状態に入るための手段は、S0ixプロセッサ状態に入るための手段を含む。
例52は例38〜例51の何れかの主題を含み、更に、コンピューティングデバイスの実行を再開したことに応答して、コンピューティングデバイスの周辺機器のデバイス状態をウェイクルーチンによって格納するための手段を含み、低電力アイドル状態に入るための手段は、デバイス状態を格納したことに応答して、低電力アイドル状態に入るための手段を含む。
例53は、例38〜例52の何れかの主題を含み、更に、低電力アイドル状態に入ったことに応答して、オペレーティングシステムのウェイクベクトルにウェイクルーチンによってジャンプするための手段を含む。
例54は例38〜例53の何れかの主題を含み、更に、低電力アイドル状態に入ったことに応答して、ウェイクイベントが発生したかどうかを判断するための手段と、ウェイクイベントが発生したと判断したことに応答して、ウェイクイベントに基づいて電力管理ステータスレジスタをウェイクルーチンによって更新するための手段とを含み、ウェイクベクトルにジャンプするための手段は、電力管理ステータスレジスタを更新したことに応答してウェイクベクトルにジャンプするための手段を含む。

Claims (25)

  1. ハイブリッドスリープ電力管理のためのコンピューティングデバイスであって、
    (i)前記コンピューティングデバイスのプリブートファームウェア環境中、予約メモリブロックを予約し、(ii)前記プリブートファームウェア環境中、前記コンピューティングデバイスのオペレーティングシステムがアクセス可能でないセキュアなメモリ位置にウェイクルーチンを格納するセキュリティモジュールと、
    (i)第1のプロセッサモードで前記オペレーティングシステムによって生成されたスリープ電力管理モードに入るための要求に応答して、前記ウェイクルーチンを前記セキュアなメモリ位置から前記予約メモリブロックに、前記コンピューティングデバイスのシステム管理割り込みハンドラによってコピーし、(ii)第2のプロセッサモードで前記コンピューティングデバイスの実行を前記システム管理割り込みハンドラによって再開し、前記予約メモリブロックに格納された前記ウェイクルーチンから開始するシステム管理モジュールと、
    前記第2のプロセッサモードでの実行の再開に応答して、前記コンピューティングデバイスの前記ウェイクルーチンによって低電力アイドル状態に入るウェイクコードモジュールとを備えるコンピューティングデバイス。
  2. 前記システム管理モジュールは更に、前記スリープ電力管理モードに入るための前記要求に応答して、システム管理割り込みをトリガし、
    前記ウェイクルーチンをコピーすることは、前記システム管理割り込みをトリガしたことに応答して、前記ウェイクルーチンをコピーすることを含む、
    請求項1に記載のコンピューティングデバイス。
  3. 前記第1のプロセッサモードは保護モードを含み、前記第2のプロセッサモードはリアルモードを含む、請求項1に記載のコンピューティングデバイス。
  4. 前記セキュリティモジュールは更に、前記プリブートファームウェア環境中、前記予約メモリブロックのアドレスを前記セキュアなメモリ位置に格納し、
    前記ウェイクルーチンを前記セキュアなメモリ位置から前記予約メモリブロックにコピーすることは、前記セキュアなメモリ位置に格納された前記予約メモリブロックの前記アドレスを使用して、前記ウェイクルーチンをコピーすることを含む、
    請求項1に記載のコンピューティングデバイス。
  5. 前記セキュリティモジュールは更に、前記プリブートファームウェア環境を認証し、
    前記予約メモリブロックを予約することは、前記プリブートファームウェア環境の認証に応答して、前記予約メモリブロックを予約することを含み、
    前記セキュアなメモリ位置に前記ウェイクルーチンを格納することは、前記プリブートファームウェア環境の認証に応答して、前記セキュアなメモリ位置に前記ウェイクルーチンを格納することを含む、
    請求項1に記載のコンピューティングデバイス。
  6. 前記セキュアなメモリ位置は、前記コンピューティングデバイスのシステム管理モードメモリ領域を含む、請求項1に記載のコンピューティングデバイス。
  7. 前記スリープ電力管理モードに入るための前記要求を前記オペレーティングシステムによって生成する
    スリープモジュールを更に備える、請求項1に記載のコンピューティングデバイス。
  8. 前記スリープ電力管理モードに入るための前記要求を生成することは、アドバンスド・コンフィグレーション・アンド・パワー・インタフェース(ACPI)S3状態に入るための要求を生成することを含む、請求項7に記載のコンピューティングデバイス。
  9. 前記スリープ電力管理モードに入るための前記要求を生成することは、予め定められた値を電力管理制御レジスタに書き込むことを含む、請求項7に記載のコンピューティングデバイス。
  10. 前記システム管理モジュールは更に、
    前記システム管理割り込みをトリガしたことに応答して、保存されたプロセッサ状態を生成すべく、前記コンピューティングデバイスのプロセッサのプロセッサ状態を前記セキュアなメモリ位置に保存し、
    前記第2のプロセッサモードで実行すべく、前記保存されたプロセッサ状態を前記システム管理割り込みハンドラによって変更し、
    前記コンピューティングデバイスの実行を再開することは、前記保存されたプロセッサ状態の変更に応答して前記コンピューティングデバイスの実行を再開することを含む、請求項1から9の何れか一項に記載のコンピューティングデバイス。
  11. 前記システム管理モジュールは更に、
    前記予約メモリブロックに格納された前記ウェイクルーチンを指し示すよう、前記保存されたプロセッサ状態の保存された命令ポインタレジスタ値を前記システム管理割り込みハンドラによって変更し、
    前記コンピューティングデバイスの実行を再開することは更に、前記保存された命令ポインタレジスタ値の変更に応答して、前記コンピューティングデバイスの実行を再開することを含む、請求項10に記載のコンピューティングデバイス。
  12. 前記低電力アイドル状態は、S0ixプロセッサ状態を含む、請求項1から9の何れか一項に記載のコンピューティングデバイス。
  13. 前記ウェイクコードモジュールは更に、前記低電力アイドル状態に入ったことに応答して、前記オペレーティングシステムのウェイクベクトルに前記ウェイクルーチンによってジャンプする、
    請求項1から9の何れか一項に記載のコンピューティングデバイス。
  14. 前記ウェイクコードモジュールは更に、
    前記低電力アイドル状態に入ったことに応答して、ウェイクイベントが発生したかどうかを判断し、
    前記ウェイクイベントが発生したとの判断に応答して、前記ウェイクイベントに基づいて電力管理ステータスレジスタを前記ウェイクルーチンによって更新し、
    前記ウェイクベクトルにジャンプすることは、前記電力管理ステータスレジスタの更新に応答して、前記ウェイクベクトルにジャンプすることを含む、請求項13に記載のコンピューティングデバイス。
  15. ハイブリッドシステムスリープのための方法であって、
    コンピューティングデバイスのプリブートファームウェア環境中、予約メモリブロックを予約する段階と、
    前記コンピューティングデバイスの前記プリブートファームウェア環境中、前記コンピューティングデバイスのオペレーティングシステムがアクセス可能でないセキュアなメモリ位置にウェイクルーチンを格納する段階と、
    第1のプロセッサモードで前記オペレーティングシステムによって生成されたスリープ電力管理モードに入るための要求に応答して、前記ウェイクルーチンを前記セキュアなメモリ位置から前記予約メモリブロックに前記コンピューティングデバイスのシステム管理割り込みハンドラによってコピーする段階と、
    第2のプロセッサモードでの前記コンピューティングデバイスの実行を前記システム管理割り込みハンドラによって再開し、前記予約メモリブロックに格納された前記ウェイクルーチンから開始する段階と、
    前記第2のプロセッサモードでの実行を再開したことに応答して、前記コンピューティングデバイスの前記ウェイクルーチンによって低電力アイドル状態に入る段階とを備える方法。
  16. 前記スリープ電力管理モードに入るための前記要求に応答して、システム管理割り込みを前記コンピューティングデバイスによってトリガする段階を更に備え、
    前記ウェイクルーチンをコピーする段階は、前記システム管理割り込みをトリガしたことに応答して、前記ウェイクルーチンをコピーする段階を含む、
    請求項15に記載の方法。
  17. 前記セキュアなメモリ位置は、前記コンピューティングデバイスのシステム管理モードメモリ領域を含む、請求項15に記載の方法。
  18. 前記スリープ電力管理モードに入るための前記要求を前記オペレーティングシステムによって生成する段階
    を更に備える請求項15に記載の方法。
  19. 前記スリープ電力管理モードに入るための前記要求を生成する段階は、アドバンスド・コンフィグレーション・アンド・パワー・インタフェース(ACPI)S3状態に入るための要求を生成する段階を含む、請求項18に記載の方法。
  20. 前記システム管理割り込みをトリガしたことに応答して、保存されたプロセッサ状態を生成すべく、前記コンピューティングデバイスのプロセッサのプロセッサ状態を前記セキュアなメモリ位置に前記コンピューティングデバイスによって保存する段階と、
    前記第2のプロセッサモードで実行すべく、前記保存されたプロセッサ状態を前記システム管理割り込みハンドラによって変更する段階とを更に備え、
    前記コンピューティングデバイスの実行を再開する段階は、前記保存されたプロセッサ状態を変更したことに応答して、前記コンピューティングデバイスの実行を再開する段階を含む、
    請求項15に記載の方法。
  21. 前記予約メモリブロックに格納された前記ウェイクルーチンを指し示すよう、前記保存されたプロセッサ状態の保存された命令ポインタレジスタ値を前記システム管理割り込みハンドラによって変更する段階を更に備え、
    前記コンピューティングデバイスの実行を再開する段階は更に、前記保存された命令ポインタレジスタ値を変更したことに応答して、前記コンピューティングデバイスの実行を再開する段階を含む、
    請求項20に記載の方法。
  22. 前記低電力アイドル状態に入ったことに応答して、前記オペレーティングシステムのウェイクベクトルに前記ウェイクルーチンによってジャンプする段階
    を更に備える請求項15に記載の方法。
  23. コンピューティングデバイスであって、
    プロセッサと、
    前記プロセッサによって実行された場合、前記コンピューティングデバイスに請求項15から22の何れか一項に記載の方法を実行させる複数の命令を格納したメモリとを備えるコンピューティングデバイス。
  24. 実行されたことに応答して、コンピューティングデバイスに請求項15から22の何れか一項に記載の方法を実行させる複数の命令を格納した1又は複数の機械可読記憶媒体。
  25. 請求項15から22の何れか一項に記載の方法を実行するための手段を備えるコンピューティングデバイス。
JP2017540881A 2015-03-27 2016-02-25 改善されたハイブリッドスリープ電力管理のための技術 Active JP6627180B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/670,939 2015-03-27
US14/670,939 US10198274B2 (en) 2015-03-27 2015-03-27 Technologies for improved hybrid sleep power management
PCT/US2016/019588 WO2016160194A1 (en) 2015-03-27 2016-02-25 Technologies for improved hybrid sleep power management

Publications (2)

Publication Number Publication Date
JP2018511104A true JP2018511104A (ja) 2018-04-19
JP6627180B2 JP6627180B2 (ja) 2020-01-08

Family

ID=56975364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017540881A Active JP6627180B2 (ja) 2015-03-27 2016-02-25 改善されたハイブリッドスリープ電力管理のための技術

Country Status (5)

Country Link
US (1) US10198274B2 (ja)
EP (1) EP3274788B1 (ja)
JP (1) JP6627180B2 (ja)
CN (1) CN107430424B (ja)
WO (1) WO2016160194A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101775800B1 (ko) * 2012-10-25 2017-09-06 인텔 코포레이션 펌웨어의 도난 방지
DE102014213922B4 (de) * 2014-07-17 2020-02-20 Continental Automotive Gmbh Fahrzeug-Infotainmentsystem
CN107924441A (zh) * 2015-08-25 2018-04-17 株式会社Seltech 具有虚拟机管理器的系统
US10372184B2 (en) * 2016-06-28 2019-08-06 Renesas Electronics America Inc. Method and apparatus for implementing power modes in microcontrollers using power profiles
WO2018112738A1 (en) * 2016-12-20 2018-06-28 Intel Corporation Power state management
US10437310B2 (en) * 2016-12-21 2019-10-08 Intel Corporation Technologies for secure hybrid standby power management
US10678909B2 (en) * 2017-04-21 2020-06-09 Vmware, Inc. Securely supporting a global view of system memory in a multi-processor system
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
US20210374228A1 (en) * 2018-01-05 2021-12-02 Hewlett-Packard Development Company, L.P. Sleep states detections
US11023379B2 (en) * 2019-02-13 2021-06-01 Google Llc Low-power cached ambient computing
EP3999938A4 (en) * 2019-07-15 2023-08-02 INTEL Corporation DYNAMIC ENERGY PERFORMANCE PREFERENCE BASED ON WORKLOADS USING AN ADAPTIVE ALGORITHM
US11256811B2 (en) * 2020-06-10 2022-02-22 Harman International Industries, Incorporated Secure boot at shutdown
US11436334B2 (en) * 2020-09-30 2022-09-06 Dell Products L.P. Systems and methods for securing operating system applications with hardware root of trust
TWI783410B (zh) * 2021-03-16 2022-11-11 瑞昱半導體股份有限公司 電子裝置以及其休眠恢復方法
CN115061561A (zh) * 2022-07-01 2022-09-16 深圳市创智成科技股份有限公司 一种设备的节电方法、装置、系统及存储介质
CN117331676B (zh) * 2023-11-30 2024-03-19 上海兆芯集成电路股份有限公司 系统管理模式进入方法、处理器和计算机系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3943665B2 (ja) 1997-09-01 2007-07-11 株式会社東芝 スリープ制御方法、およびイベント通知方法
KR100553876B1 (ko) * 1999-04-10 2006-02-24 삼성전자주식회사 에이.씨.피.아이 스펙에서 지원하는 슬리핑 모드 선택 기능을 갖는 컴퓨터 시스템 및 그 방법
US6571333B1 (en) * 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
US6691234B1 (en) * 2000-06-16 2004-02-10 Intel Corporation Method and apparatus for executing instructions loaded into a reserved portion of system memory for transitioning a computer system from a first power state to a second power state
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US7117334B2 (en) * 2004-05-14 2006-10-03 International Business Machines Corporation Dynamic node partitioning utilizing sleep state
US8607241B2 (en) * 2004-06-30 2013-12-10 Intel Corporation Compare and exchange operation using sleep-wakeup mechanism
US20060053325A1 (en) 2004-09-03 2006-03-09 Chary Ram V Storing system information in a low-latency persistent memory device upon transition to a lower-power state
US7383450B2 (en) * 2004-12-22 2008-06-03 Intel Corporation Low power firmware
KR20090044872A (ko) * 2007-11-01 2009-05-07 엘지전자 주식회사 휴대용 컴퓨터 및 휴대용 컴퓨터의 절전모드 제어방법
US8230237B2 (en) 2007-12-06 2012-07-24 Intel Corporation Pre-boot environment power management
US8499174B2 (en) * 2008-09-08 2013-07-30 Via Technologies, Inc. Method and controller for power management
US8498229B2 (en) * 2008-12-30 2013-07-30 Intel Corporation Reduced power state network processing
US7996694B2 (en) * 2009-06-05 2011-08-09 Apple Inc. Dark wake
CN201867678U (zh) * 2010-08-30 2011-06-15 微星科技股份有限公司 在休眠下可降低耗电量的计算机主机板
TWI454905B (zh) 2011-09-30 2014-10-01 Intel Corp 在多核心平台中之受限制的啓動技術
WO2013089685A1 (en) * 2011-12-13 2013-06-20 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
EP2817755B1 (en) * 2012-02-20 2021-03-24 Intel Corporation Directed wakeup into a secured system environment
US9811475B2 (en) 2012-06-29 2017-11-07 Intel Corporation Methods and apparatus for a secure sleep state
US9075751B2 (en) 2012-08-09 2015-07-07 Intel Corporation Secure data protection with improved read-only memory locking during system pre-boot
US9189248B2 (en) 2013-04-25 2015-11-17 Insyde Software Corp. Specialized boot path for speeding up resume from sleep state
CN103560998A (zh) * 2013-10-09 2014-02-05 中国科学院信息工程研究所 一种无线传感器网络抵抗DoS攻击的方法及系统
TW201535145A (zh) * 2013-12-04 2015-09-16 Insyde Software Corp 使用保護讀取儲存器安全地儲存韌體數據之系統及方法

Also Published As

Publication number Publication date
WO2016160194A1 (en) 2016-10-06
CN107430424A (zh) 2017-12-01
US20160282927A1 (en) 2016-09-29
EP3274788B1 (en) 2020-08-26
CN107430424B (zh) 2021-04-06
EP3274788A1 (en) 2018-01-31
US10198274B2 (en) 2019-02-05
EP3274788A4 (en) 2018-09-12
JP6627180B2 (ja) 2020-01-08

Similar Documents

Publication Publication Date Title
JP6627180B2 (ja) 改善されたハイブリッドスリープ電力管理のための技術
US10684865B2 (en) Access isolation for multi-operating system devices
EP2189901B1 (en) Method and system to enable fast platform restart
CN105745617B (zh) 用于预启动固件更新的选择性功率管理
US10754558B2 (en) Vehicular device
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
JP2013093045A (ja) システム管理モードにおけるプロセッサ間割り込みの再方向付け
US20070214349A1 (en) Driver/variable cache and batch reading system and method for fast resume
CN111095205A (zh) 用于片上系统的预启动环境的多核框架
CN105940375B (zh) 针对多操作系统设备的动态再分配
JP5756144B2 (ja) オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ
US8103908B2 (en) Method and system for recovery of a computing environment during pre-boot and runtime phases
US20150033225A1 (en) Operating system switching method and apparatus
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
KR20140073554A (ko) 동작 콘텍스트들 사이의 스위칭
EP3633507B1 (en) Technologies for secure and efficient native code invocation for firmware services
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US10437310B2 (en) Technologies for secure hybrid standby power management
US10121001B1 (en) System and method for monolithic scheduling in a portable computing device using a hypervisor
US11829772B2 (en) Heterogeneous compute domains with an embedded operating system in an information handling system
JP2003242026A (ja) 情報処理システムおよびプログラム実行モード制御方法
CN116594698A (zh) 一种系统控制方法、装置和可读存储介质
JP2014531099A (ja) 動作コンテキストの切り替え

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191023

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191115

R150 Certificate of patent or registration of utility model

Ref document number: 6627180

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