JP2023047293A - 決定論的省電力状態を達成するための装置及び方法 - Google Patents

決定論的省電力状態を達成するための装置及び方法 Download PDF

Info

Publication number
JP2023047293A
JP2023047293A JP2022129147A JP2022129147A JP2023047293A JP 2023047293 A JP2023047293 A JP 2023047293A JP 2022129147 A JP2022129147 A JP 2022129147A JP 2022129147 A JP2022129147 A JP 2022129147A JP 2023047293 A JP2023047293 A JP 2023047293A
Authority
JP
Japan
Prior art keywords
mode
failure
computing device
state
volatile memory
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.)
Pending
Application number
JP2022129147A
Other languages
English (en)
Inventor
レディ ナガブシャン
Reddy Nagabhushan
グプタ アビナイ
Gupta Abhinay
ジャナルサナン ヴィニスラ
Janarthanan Vinithra
ラグラム クリスナスワーミ サンソッシュ
Raghuram Krishnaswamy Santhosh
ラヤゴパル パンナークマール
Rajagopal Pannerkumar
セルヴァラージ シッダルタ
Selvaraj Siddharth
シャー ミヒル
Shah Mihir
ソーマヤージ ヴィッシュワナス
Somayaji Vishwanath
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 JP2023047293A publication Critical patent/JP2023047293A/ja
Pending legal-status Critical Current

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/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

Figure 2023047293000001
【課題】 省電力状態を達成するための装置を提供する。
【解決手段】 装置は、オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置き、コンピュータ装置の揮発性メモリに状態情報を格納し、第1プロセスを実行するためのタイムアウト期間にわたるタイマを始動させる第1回路を有する。コンピュータ装置の第1コンポーネントが低電力状態にある。第2回路が、タイムアウト期間の後に、第1プロセスの失敗を検出する。第3回路が、検出された第1プロセスの失敗に応答して第2プロセスを実行して、コンピュータ装置を第2動作モードに置き、コンピュータ装置の不揮発性メモリに状態情報を格納する。揮発性メモリは、第1動作モードにおいて動作可能であり、第2動作モードにおいて低電力状態にある。
【選択図】 図2

Description

例えばデスクトップコンピュータ、ラップトップ、タブレット、サーバ、及びスマートフォンなどのコンピュータ装置では、エネルギー効率がますます重要なものになっている。電力を節約するために、多くのコンピュータ装置は、ある範囲の電力動作モードに置かれ得る。それらの電力モードは、“オン”及び“オフ”の電力モード、及びオンモードとオフモードとの間の1つ以上の中間電力モードを含み得る。オンモードで、コンピュータ装置はフル動作可能であり得る。オフモードで、コンピュータ装置は完全に電源を落とされて動作しないとし得る。“スタンバイ”モード又は“スリープ”モードと呼ばれることもある中間電力モードで、コンピュータ装置は、現在必要とされていない当該コンピュータ装置のコンポーネント又は周辺装置への電力を低減させたり遮断したりし得る。さらに、コンポーネント又は装置に提供されるクロック周波数が低下され得る。中間電力モードで動作するコンピュータ装置は、フルにオンの電力モードにおいてよりも少ないエネルギーを消費する。中間電力モードでは、コンピュータ装置の様々な機能が無効にされるが、クリティカル又は重要とみなされる他の機能は動作可能のままとし得る。
アドバンスト・コンフィグレーション・アンド・パワー・インタフェース(ACPI)は、例えば2019年1月にリリースされたACPI仕様書第6.3版など、グローバル及び装置電力状態、プロセッサ状態、及び性能状態を規定するオープン標準である。ACPIは、コンピュータ装置のオペレーティングシステム(OS)が電力消費を管理することを可能にする。Microsoft(登録商標)によるModern Stanby(正式にはConnected Stanby)標準は、ACPIを実装したWindows(登録商標)8以降のWindowsオペレーティングシステム及びプラットフォームで使用されるオープン標準仕様である。Modern Standbyを実装したコンピュータ装置は、当該装置が常にネットワークに接続されて、低レイテンシでModern Standbyセッションから復帰するユーザ体験を提供する。
ACPI及びModern Standbyの代わりに、例えばmacOSコンピュータ装置といった一部のコンピュータ装置は、電力消費を管理するために異なる又は独自の仕様を使用することがある。ACPI又はModern Standbyに従わないコンピュータ装置は、そうとはいえ、電力消費を管理するために、“オン”電力モードと“オフ”電力モードとの間の1つ以上の中間電力状態においてシステムの様々なハードウェアコンポーネントをオフにすることがある。
開示の実施形態は、以下に与えられる詳細な説明から、及び開示の様々な実施形態の添付図面から、より十分に理解されることになるが、それらは、開示を特定の実施形態に限定するように解釈されるべきではなく、単に説明及び理解のためのものである。
一部の実施形態に従った決定論的に低電力状態を達成する能力を持つコンピューティングシステムの一部コンポーネントを示している。 様々な実施形態に従った低電力状態を達成するための決定論的プロセスのフローシーケンス図を示している。 図3A及び3Bは、様々な実施形態に従った低電力状態を達成するためのコンピュータ装置向けの決定論的プロセスのフロー図を示している。 図3A及び3Bは、様々な実施形態に従った低電力状態を達成するためのコンピュータ装置向けの決定論的プロセスのフロー図を示している。 一部の実施形態に従った決定論的に低電力状態を達成する能力を持つスマート装置又はコンピュータシステム又はSoC(システム・オン・チップ)を示している。
様々な実施形態によれば、オペレーティングシステム(OS)が、コンピュータ装置が省電力の第1動作モードに入り得ることを指し示す“イベント”を検出する。該イベントは、例えば、ユーザ活動の欠如、ユーザが装置の物理的なボタンを押すこと、ユーザがラップトップの蓋を閉じること、表示された電源ボタン設定からユーザが“Sleep(スリープ)”を選択すること、又はシステムが仕事をしていないこととし得る。該イベントの検出に応答して、OSは、コンピュータ装置の例えば電力管理ユニット(PMU)といった内蔵コントローラへの通知メッセージを生成して送信する。該通知メッセージは、OSが例えばModern Standbyといった第1動作モードに入ろうとしていることを指し示す。さらに、該通知メッセージは、第1ハードウェアコンポーネントを第1動作モードにおいて置くための第1プロセスを実行するため、及び第1プロセスを完了することに関するタイマを始動させるための、内蔵コントローラへの命令を含む。
OSが第1動作モードに入ることの内蔵コントローラへの通知メッセージと共に、OSは、例えばソフトウェア最深アイドルランタイムプラットフォーム状態(deepest idle runtime platform state;DRIPS)といった最低電力状態に入るためのアプリケーション及びシステムソフトウェアを準備すべく、一連のフェーズを通じた遷移を開始する。ソフトウェアDRIPs(SW DRIPs)は、例えばシステム・オン・チップ(SoC)といったプロセッサをその最低電力状態に置くことができるときについてOSが認識することを指す。それは、デバイス電力状態及びCPUアイドル時間に基づく。対照的に、ハードウェアDRIPS(HW DRIPs)は、例えばPMUといったSoCコントローラ又はマイクロコードによって制御されるような、SoC(又は他のプロセッサ)がその最低電力状態に実際に物理的に在留していることを指す。
OSからの通知を受信すると、内蔵コントローラは、様々なハードウェアコンポーネントに、第1動作モードに関連付けられた低電力状態に入るように指示する。第1ハードウェアコンポーネントに関する低電力状態はHW DRIPsとし得る。しかしながら、時々、意図したとおりにソフトウェア又はハードウェアがそれぞれのSW DRIPs又はHW DRIPsに入らないことがある。これの理由の非排他的なリストは、正しくないデバイスドライバがインストールされていること、インストールされたドライバは正しいが、正常に動作していないこと、又はハードウェアコンポーネントはアイドル状態に入るように指示されているが、そうとはいっても該コンポーネントにクロック信号が供給されていることを含む。理解されるべきことには、SW DRIPs又はHW DRIPsは他の理由で達成されないこともある。SW DRIPs又はHW DRIPsが達成されない場合、コンピューティング装置は、望ましくあり得るレベルよりも高いレベルで電力を消費し続ける。これは、電力を浪費し、バッテリー駆動式のコンピューティング装置のバッテリーが不必要に消耗させることを生じさせ得る。
様々な実施形態によれば、OS及び電力管理ユニットは、SW DRIPs及びHW DRIPsが達成されることをモニタする。OSが、SW DRIPsが達成されないと判定すると、OSは電力管理ユニットにメッセージを送信する。電力管理ユニットはタイマを含んでいる。SW DRIPs又はHW DRIPsがタイムアウト期間内に達成されない場合、電力管理ユニットは、コンピュータ装置が低電力状態に入らないことの原因を示すメッセージをOSに送信する。OSは、その原因を取り除くための、すなわち、問題を解決するための処理を決定し、その処理を1回以上実行し得る。電力管理ユニットは、その試行をカウントする。OSによって実行された処理が問題を解決した場合、コンピュータシステムは低電力状態に入る。しかし、OSによって実行された処理が、規定された試行回数内で問題を解決しない場合、ハードウェア電力マネジャは、コンピュータ装置が省電力の第2動作モードに入るべきであることを指し示すメッセージをOSに送信する。このメッセージの受信に応答して、OSは、コンピュータシステムを第2動作モードに置くための第2プロセスを実行するように電力管理ユニットに指示するメッセージを、電力管理ユニットに送信する。第2プロセスの実行は、一般に、SW DRIPs及びHW DRIPsの両方が達成されることをもたらす。
一部の実施形態において、第1動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースModern Standby(モダンスタンバイ)状態を含む。一部の実施形態において、第2動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースHibernate(ハイバネート)状態を含む。一部の実施形態において、状態情報は、オペレーティングシステム状態情報、ソフトウェア状態情報、及びプロセッサ状態情報のうちの少なくとも1つを含む。
様々な実施形態の数多くの技術的効果が存在する。例えば、様々な実施形態は、ソフトウェア又はハードウェアがタイムアウト期間内に例えばSW DRIPs又はHW DRIPsといった低電力状態に入っていないことを決定する。さらに、様々な実施形態によれば、ソフトウェア又はハードウェアが低電力状態に入らないことの考え得る理由又は原因が決定され得る。一部の実施形態において、コンポーネントが低電力状態に入らないことについての決定された原因に基づいて、コンポーネントを低電力状態に置くための処理が特定される。一部の実施形態において、特定された処理が実行される。処理が実行されることに続いて、コンポーネントが第1動作モードの低電力状態に入ることをその処理が可能にしたかが判定され得る。様々な実施形態において、処理後にコンポーネントが依然として低電力状態にない場合、その処理が繰り返され得る。第2のタイムアウト期間内に、その処理が1回以上実行され得る。第2のタイムアウト期間内にコンポーネントが低電力状態に入る場合、ソフトウェア及びハードウェアは、有利なことに、例えばSW DRIPs及びHW DRIPsといった低電力状態に入る。第2のタイムアウト期間が経過した後にコンポーネントが低電力状態に入らない場合、コンピュータ装置は第2動作モードに置かれる。第2動作モードは、コンポーネントを、例えばHibernate状態といった、第2動作モードの低電力状態に置く。さらに、コンピュータ装置が全体として第2動作モードに置かれてもよい。有利なことに、コンピュータ装置は、ハイバネート状態において低いレベルの電力を消費する。他の技術的効果が様々な図及び実施形態から明らかになる。
以下の説明では、本開示の実施形態のより完全なる説明を提供するために、多数の詳細事項を説明する。しかしながら、当業者に明らかになることには、本開示の実施形態は、これらの特定の詳細事項なしで実施されることができる。また、本開示の実施形態を不明瞭にしてしまうことを回避するために、周知の構造及びデバイスは、詳細にではなくブロック図の形態で示す。
なお、実施形態の対応する図面では、信号が線で表されている。一部の線は、より構成要素である信号経路を指し示すために太めにされることがあり、且つ/或いは情報の主な流れ方向を指し示すために一端又は両端に矢印を有することがある。このようなインジケーションは、限定することを意図したものではない。むしろ、それらの線は、1つ以上の例示的な実施形態に関連して、回路又は論理ユニットの容易な理解を支援するために使用される。表される信号は、設計のニーズ又は嗜好によって決められ、実際には、何れかの方向に進行し得る1つ以上の信号を有し得るとともに、任意の好適タイプの信号スキームで実装され得る。
様々な実施形態を、ACPI及びModern Standby標準の状態及び動作モードを参照して説明する。しかしながら、理解されるべきことには、本開示は、ACPI及びModern Standbyの状態及び動作モードに加えて、又はそれらの代わりに、他の状態及び動作モードが使用され得る実施形態を企図している。従って、ACPI及びModern Standbyに関連付けてのここでの説明はいずれも、他の標準及び仕様の電力状態及び動作モードに適用し得る。本開示の様々な実施形態は、任意の好適な電力状態及び動作モードと共に使用され得る。
アドバンスト・コンフィグレーション・アンド・パワー・インタフェース(ACPI)は、コンピュータシステムにおける電力消費を管理するためにオペレーティングシステムによって使用されるオープン標準である。ACPIは、コンピュータシステムのコンポーネントについてのグローバル状態、スリープ状態、電源状態を規定している。ACPIは、G0(ワーキング)、G1(スリーピング)、G2(ソフトオフ)、及びG3(メカニカルオフ)という4つのグローバル状態を規定する。この仕様は、S0、S0ix、S1、S2、S3、及びS4という6つのスリープ状態を定義する。この仕様は、D0、D1、D2、D3hot、及びD3coldという5つの電源状態を提供する。
G0(ワーキング)グローバル状態は、コンピュータのCPUは命令を実行するものである1つのスリープ状態S0を持つ。G1(スリーピング)グローバル状態では、S0ix、S1、S2、S3、及びS4の5つのスリープ状態が可能である。G2(ソフトオフ)グローバル状態は、1つのスリープ状態S5を持つ。G3(メカニカルオフ)グローバル状態では、クロックを除くコンピュータシステムの全てのコンポーネントへの電力が遮断される。G3グローバル状態はスリープ状態を持たない。さらに、ACPIは、コンピューティングシステムのデバイスコンポーネントについての様々な電力状態を規定する。
S0ixは“Modern Standby”又は“Low Power S0 Idle(低電力S0アイドル)”として知られている。Modern StandbyはScreen Off(スクリーンオフ)状態及びSleep(スリープ)状態を有する。Screen Off状態は、コンピュータシステムを休止させてスリープにするためのプロセスを含む。S0ixでは、スクリーンがオフにされ、アプリケーションソフトウェアが実行を停止し、使用中でないSoCの部分が低電力状態又は無電力状態に置かれる。Modern Standbyにおいて、OSソフトウェアのアクティビティは実行されない。Modern Standbyは、必要時にシステムが非常に迅速に目を覚ますことを可能にする。Modern Standbyは、例えば、ユーザが電源ボタンを押したとき、蓋を閉じたとき、メニューからSleepを選択したとき、又はシステムが仕事をしていないときに開始する。例えばユーザが電源ボタンを押すといった、ハードウェア割り込み(例えば、ウェイクイベント228)が、システムをModern Standbyから退出させる。
S1は、“Power on Suspend(パワー・オン・サスペンド)”と呼ばれている。S1では、プロセッサが命令を実行するのを停止し、キャッシュがフラッシュされる。S1において、CPU及びRAMへの電力は維持され、オンのままでなければならないことを示していないデバイスへの電力が遮断される。S2では、CPUの電源がオフにされ、キャッシュがダーティ状態にある場合にそれがRAMにフラッシュされる。S3状態は“standby(スタンバイ)”又は“sleep(スリープ)”状態と呼ばれることがある。S3では、RAMへの電力が維持される。S4では、RAMの全てのコンテンツが不揮発性メモリに保存され、コンピュータシステムが電源を落とされる。S4は、“hibernation”(ハイバネーション)”又は“suspend to disk(サスペンド・ツー・ディスク)”と呼ばれることがある。スリープ状態S5では、コンピュータの電源オンボタンには電力が供給されるが、全ての又は略全ての他のコンポーネントへの電力が遮断される。
ACPIは、コンピューティングシステムのデバイスコンポーネントについて、D0(フルにオン)、D1及びD2(中間電力状態、定義はデバイスによって異なる)、D3hot(デバイスに補助電力が供給される)、及びD3cold(電力供給なし)という様々な電力状態を規定している。D3hotは、デバイスがD0から直接的に入ることができるD3のサブ状態である。デバイスは、デバイスドライバによるソフトウェア制御の下で、D0からD3hotへの遷移を行う。D3hotでは、デバイスを、それが接続しているバス上で検出することができる。デバイスがD3hotサブ状態にある間、バスはD0状態にあるままでなければならない。D3hotから、デバイスはD0に戻るかD3coldに入るかのいずれかを行うことができる。D3coldに入ることができるのは、D3hotからのみである。D3coldは、以下のようなD3のサブ状態であり、すなわち、デバイスがバスに物理的に接続されているが、(例えば、デバイスが再度オンにされるまで)バス上でデバイスの存在を検出することはできないD3のサブ状態である。D3coldでは、以下の一方又は両方が真である:(1)デバイスが接続するバスが低電力状態にある;(2)デバイスが以下のような低電力状態にある、すなわち、バスドライバがバス上でデバイスの存在を検出しようとするときにデバイスが応答しない低電力状態にデバイスがある。コンピュータシステムがG1(スリーピング)グローバル状態及びS0ix(Modern Standby)スリープ状態に入るとき、使用中でないコンピュータシステムの様々なデバイス及びコンポーネントが、例えばD3hot又はD3coldといった低電力状態に置かれ得る。
図1は、一部の実施形態に従った決定論的に低電力状態を達成する能力を持つコンピュータシステム100を示している。コンピューティングシステム100は、プロセッサ102、基本入/出力システム(BIOS)104、オペレーティングシステム(OS)106、揮発性メモリ108、不揮発性メモリ110、コントローラ112、及びディスプレイ装置114を有する。プロセッサ102は、キャッシュ116及びレジスタ118を有する。キャッシュ116は複数のキャッシュを含み得る。揮発性メモリ108はランダムアクセスメモリ(RAM)を有する。不揮発性メモリ110は、ハードディスク若しくはフラッシュメモリ、又はそれら両方を有する。BIOS104は、プロセッサ102上で走るファームウェアである。BIOS104は典型的にSPIフラッシュメモリ120に格納される。BIOS104は、コンピューティングシステム100を起動することを担う。起動中、BIOS104は揮発性メモリ108にコピーされ、そこから実行される。
OS106は、ソフトウェア(SW)電力マネジャ122を含む。アプリケーションソフトウェア124及びユーザインタフェース126が、OS106の下で走る。OS106、アプリケーションソフトウェア124、及びユーザインタフェース126は典型的に、不揮発性メモリ110に格納される。起動後、OS106、アプリケーションソフトウェア124、及びユーザインタフェースの一部又は全てが、揮発性メモリ108にコピーされ、そこから実行される。
コントローラ112及びプロセッサ102(並びに、後述するプロセッサ404及びPCU410)は、1つ以上の回路インスタンスを有する。ここで使用されるとき、用語“回路”は様々な電子デバイス及び電気デバイス(“ハードウェア”)を有する。ハードウェアの例は、アナログ回路及びアナログ回路コンポーネント(例えば、抵抗、キャパシタ、インダクタ、ダイオード、及びトランジスタ)を含む。ハードウェアの他の例は、デジタル回路、及び例えばブール関数を実装する論理デバイスなどのデジタル回路コンポーネントを含む。デジタル回路の例は、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プロセッサ、プロセッサコア、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、及びグラフィックスプロセッサを含む。更なる他の一例において、ハードウェアは、ハードウェア記述言語(HDL)を使用して合成されることができて状態マシン又は他の論理回路を実装する回路を含む。理解されるべきことには、メモリデバイスに格納された命令をハードウェアが実行するとき、ハードウェアという用語は、格納された命令を含む。ハードウェアの更なる例は、例えばレジスタ、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、及びフラッシュメモリなどの、揮発性及び不揮発性のメモリデバイスを含む。回路は、2つ以上の回路インスタンスを含むことができる。回路は、1つ以上の機能を提供するように協働する複数のハードウェア要素の組み合わせを有し得る。回路の特定のインスタンスを、記述的なラベル又は非記述的なラベルを用いて参照することがある。例えば、様々な機能を実行する回路インスタンスを、受信器回路、プロセッサ回路、第1の回路、又は第2の回路として参照することがある。2つ以上の回路インスタンスの各々が、別個のコンポーネントで構成され得る。また、2つ以上の回路インスタンスが、1つ以上の共通のコンポーネント又はリソースを共有することができる。
コントローラ112は回路を有する。一部の実施形態において、コントローラ112は、プロセッサ128及びメモリ130を含み得る。プロセッサ128は、様々な実施形態において、マイクロコントローラ又は他の好適なプロセッシングロジックとし得る。メモリ130は、例えばRAM、ROM、Flashといった任意のタイプのメモリとし得る。コントローラ112は、プロセッサ128によって読み取り可能な例えば命令といったコード132を含み得る。コントローラ112はまた、例えば特定のタスクを実行するための論理回路といったロジック134を含み得る。一部の実施形態において、コントローラ112は、プロセッサ128、メモリ130、コード132、及びロジック134の全てを含む。一部の実施形態において、コントローラ112は、プロセッサ128、メモリ130、コード132、及びロジック134のうち、全てではない一部を含み得る。
コンピュータシステム100は、他のコンポーネント136、周辺装置138、及びバス140、142を有する。コンピュータシステム100は、図1に示していない多数のコンポーネントを有する。それらのコンポーネントは、当業者によく知られており、ここに開示される発明概念を不明瞭にしないように図から省略している。それらのコンポーネントは、他のコンポーネント136によって表される。他のコンポーネント136は、バスコントローラ、メモリコントローラ、ビデオコントローラ、オーディオコントローラ、ネットワークインタフェース、送信器/受信器デバイス、及びグラフィックスプロセッサを有する。一部の実施形態において、他のコンポーネント136は、例えばキャッシュ116といったプロセッサ102の一部を有する。他のコンポーネント136は、バス142以外のバス又は通信チャネルを有し得る。以上は、他のコンポーネント136の非網羅的なリストである。周辺装置138は、例えばキーボード、マウス、マイクロホン、カメラ、タッチパッド、タッチスクリーン、スキャナ、ディスプレイ、及びスピーカといった、入力装置及び出力装置を有する。周辺装置138はまた、メモリ及び他のデバイスを含み得る。以上は、他のコンポーネント136の非網羅的なリストである。他のコンポーネント136、周辺装置138、及びバス140、142の一特徴は、コンポーネント、装置、又はバスに供給される電力が独立して制御可能であること、すなわち、システム100の他の部分及びコンポーネントから独立に、コンポーネントが電源を入れられたり落とされたりし得ることである。
図2は、様々な実施形態に従った低電力状態を達成するための決定論的プロセス200のフローシーケンス図を示している。ここでのフロー図200の動作シーケンスは変更されることができる。例えば、一部の動作又はプロセスは並行して実行されることができ、また、一部の動作は順不同で実行されることができる。図2を参照するに、214にて、イニシエータ202が“イベント”を発生させ、OS106が該イベントを検出する。該イベントは、コンピュータ装置が例えばModern Standbyといった第1動作モードに入り得ることを指し示す。イニシエータ202は、ユーザ、OS106自体、又はコンピュータ装置の別のデバイス若しくはコンポーネントとし得る。該イベントは、例えば、ユーザ活動の欠如、ユーザが装置の物理的なボタンを押すこと、ユーザがラップトップの蓋を閉じること、表示された電源ボタン設定からユーザが“Sleep”を選択すること、又はシステムが仕事をしていないこととし得る。216にて、OS106が、コントローラ112への通知メッセージを生成して送信する。該通知メッセージは、OS106が第1動作モードに入ることを指し示し、例えば、Modern Standbyエントリーメッセージである。また、該通知メッセージは、コンピュータ装置のハードウェアが第1動作モードに入るための命令を含む。218にて、コントローラ112が、第1動作モードエントリーメッセージを受信する。応答して、コントローラ112は、第1ハードウェアコンポーネントを低電力状態に置くための第1プロセスを開始する。さらに、218にて、コントローラ112は、第1プロセスを実行するためのタイムアウト期間のタイマを始動させる。
第1動作モードは、低電力状態に置かれるべき特定のハードウェアコンポーネント及びデバイスを指定することができ、それらをここでは“第1ハードウェアコンポーネント”と称する。換言すれば、第1ハードウェアコンポーネントに含まれるコンポーネント及びデバイスの指定は設定変更可能(コンフィギュラブル)である。システム設計者は、異なるコンピュータデバイスに対して、あるいは異なる設計目標を達成するために、異なるコンポーネントを指定することができる。従って、様々な実施形態において、低電力モードに置かれる第1ハードウェアコンポーネントに含まれるコンポーネント及びデバイスは様々であり得る。しかしながら、様々な実施形態において、揮発性メモリ108は、第1ハードウェアコンポーネントに含められない。様々な実施形態において、揮発性メモリ108は、第1プロセスの間、第1動作モードでの低電力状態には置かれず、OS106は、第1動作モードにおいて状態情報を揮発性メモリ108に格納する。また、コントローラ112は、第1動作モードにおいて電力が揮発性メモリ108に供給されることを保証する。状態情報は、例えば、キャッシュ116、レジスタ118、又はメモリからコピーされ得る。状態情報は、オペレーティングシステム状態情報、アプリケーションソフトウェア状態情報、プロセッサ状態情報のうちの1つ、又は以上のタイプの状態情報のうちの2つ以上の組み合わせとし得る。ディスプレイ装置114は典型的に、第1動作モードにおいて低電力状態に置かれる。一部の実施形態において、不揮発性メモリ110は、第1ハードウェアコンポーネントに含められて、第1動作モードにおいて低電力状態に置かれ得る。
220にて、OS106のSW電力マネジャ122が、アプリケーションソフトウェア124及びOS106の他のコンポーネントを、SW DRIPSへのそれらの遷移についてモニタする。222にて、コントローラ112が、例えばプロセッサ102の指定コンポーネント、並びに他のコンポーネント136及び周辺コンポーネント138のうちの指定コンポーネントといった、第1ハードウェアコンポーネントを、例えばHW DRIPSといった低電力状態へのそれらの遷移についてモニタする。SW電力マネジャ122及びコントローラ112は、例えばDRIPsタイムアウト期間といったタイムアウト期間の間、それぞれソフトウェア及びハードウェアコンポーネントをモニタする。タイムアウト期間は一般に、例えば1秒から30秒といった、それらのコンポーネントが進行中のタスクを完了して低電力モードに入るのに十分な長さのものである所定の期間である。
224にて、SW電力マネジャ122が、アプリケーションソフトウェア又はOS106のうち一方以上がタイムアウト期間内に例えばSW DRIPsといった低電力状態に入るのに失敗したことを決定する。例えば、SW電力マネジャ122は、1つ以上のハードウェアデバイス又はコンポーネントがその低電力状態に入ることに肯定応答できなかったため、アプリケーションソフトウェア124又はOS106が低電力状態に入るのに失敗したと決定し得る。加えて、224にて、ソフトウェアが低電力状態に入るのに失敗したことを指し示すメッセージが、OS106からコントローラ112に送られる。一部の実施形態において、このメッセージはまた、例えば特定のハードウェアデバイス又はコンポーネントから肯定応答の受信がないことといった、ソフトウェアが低電力状態に入ることに失敗した理由を規定し得る。
226にて、コントローラ112が、タイムアウト期間が満了するまで待機する。タイムアウト期間の満了時、コントローラ112は、ソフトウェア又はハードウェアのいずれかが低電力状態に入らなかったかどうかを判定し、例えば、SW DRIPs又はHW DRIPsのいずれかが達成されなかったかどうかを判定する。ソフトウェア又はハードウェアのいずれか又は両方が低電力状態に入らなかった場合、コントローラ112は、ソフトウェア若しくはハードウェア又は両方が低電力状態に入らなかったことをOS106に通知するメッセージを、OS106に送信する。また、様々な実施形態において、228にて、コントローラ112は、第1プロセスの失敗の原因を決定し、決定し原因をOS106に通信する。例えば、ハードウェアが低電力状態に入らなかった場合、コントローラ112は、第1プロセスの失敗の原因が特定のハードウェアデバイス又はコンポーネントに関係していると決定する。コントローラ112はまた、解決する試みの回数をカウントするためのカウンタを初期化する。
230にて、SW電力マネジャ122は、第1プロセスの失敗の原因を解決するための1つ以上の処理を特定する。処理は、例えば特定のデバイス及びデバイスから得られたステータス情報といった、第1プロセスの失敗について決定された原因に基づいて特定され得る。様々な実施形態において、失敗の原因を解決するための処理はOS106によって行われる。さらに、OS106は、解決処理を試みたことをコントローラ112に通知し、コントローラはカウンタをインクリメントする。失敗の原因を解決するための処理の例は、ソフトウェアスタック又はドライバを無効にすることを含む。例えば、オーディオデバイスが低電力状態に遷移しなかった場合、OS106は、オーディオスタックが正しく動作しているかどうかを見るチェックを行って、オーディオスタックを強制的に無効にし得る。他の一例として、OS106は、特定のハードウェアデバイスが低電力状態に入ることをソフトウェアドライバが阻止していると決定して、該ドライバを強制的に無効にし得る。例えば、ドライバがインストールされていなかったり、正しくないドライバがインストールされていたりすることがある。第1プロセスの失敗の原因を解決するための処理がOS106によって実行された後、OS106はコントローラ112に通知することができ、コントローラ112は、失敗の原因として特定された問題をその処理が治癒したかを判定する。例えば、特定のハードウェアコンポーネントが低電力状態に入らなかったことが失敗の原因である場合、そのコンポーネントが低電力状態にあるかが判定される。処理が問題を治癒しなかった場合、問題を治癒するための2回目の試みを実行することができ、すなわち、その処理を繰り返すことができ、あるいは、失敗を治癒するための異なる処理を実行することができる。2回目の試みの後、再度、そのコンポーネントが低電力状態にあるかが判定される。2回目の試みが成功しなかった場合、追加の試みが為され得る。失敗の原因が解決された場合、231にてハードウェアが低電力状態に入る。問題を治癒するために追加の試みが為されるのは、追加の試みの回数が例えば1回から5回といった所定の回数未満である場合とし得る。最大の試行回数が試みられると、失敗の原因を解決する試みは停止される。失敗の原因が解決されていない場合、プロセス200は232へと進む。
232にて、コントローラ112が、問題を解決するために許された回数の試みが行われたこと、及び指定された全てのハードウェアが例えばHW DRIPSといった低電力状態にあるようにはなっていないことを示すメッセージを、SW電力マネジャ122に送信する。232でのメッセージに応答して、SW電力マネジャ122は、コンピュータ装置を第2動作モードに置くための第2プロセスを開始するよう、メッセージをコントローラ112に送信する。第1動作モードと同様に、第2動作モードは、低電力状態に置かれるべき特定のハードウェアコンポーネント及びデバイスを指定し、それらをここでは“第2ハードウェアコンポーネント”と称する。第2ハードウェアコンポーネントは、システム設計者によって設定変更可能であり、第1コンポーネントとは異なり得る。様々な実施形態によれば、例えば揮発性メモリ108といった、コンピュータ装置の揮発性メモリは、第2ハードウェアコンポーネントに含められる。様々な実施形態において、第2動作モードは、キャッシュ116、レジスタ118、及び揮発性メモリ108から、これらのデバイスが低電力モードに入る前に状態情報をコピーし、不揮発性メモリ110が低電力状態に置かれる(例えば、不揮発性メモリ110の電源をオフにする)前に該状態情報を不揮発性メモリ110に格納する。一部の実施形態において、第2動作モードはハイバネート状態(S4)を含む。236にて、コントローラは、ハードウェアコンポーネントを第2動作モードに置く。
第2動作モードからワーキング動作モードに入るためには、ブートプロセスを行うことが必要であるとし得る。ワーキング動作モードに入ることに加えて、コンピュータ装置の状態を復元するために、不揮発性メモリ110からキャッシュ116、レジスタ118、及び揮発性メモリ108に状態情報をコピーすることが必要である。従って、第2動作モードからワーキング動作モードへとコンピュータ装置を戻すことは、第1動作モードからコンピュータ装置を戻すことよりも長い時間を要し得る。しかしながら、この追加のレイテンシは、以下の利益によって相殺され、すなわち、さもなければ、コンピュータ装置がDRIPSを達成すること特定のコンポーネントが妨げてしまうことになる場合であっても、コンピュータ装置が予測通りに低電力モードに入って低い電力消費を達成することを確実にするという利益によって相殺される。
図3A及び3Bは、様々な実施形態に従った低電力状態を達成するためのコンピュータ装置向けの決定論的プロセス300のフロー図を示している。ここでのフロー図300の動作シーケンスは変更されることができる。例えば、一部の動作又はプロセスは並行して実行されることができ、また、一部の動作は順不同で実行されることができる。302にて、トリガーイベントが、例えばOS106といったソフトウェアによって検出される。トリガーイベントは、コンピュータ装置が第1動作モードに入り得ることを指し示す。第1動作モードは、例えばModern Standbyといった省電力モードとし得る。304にて、OS106のソフトウェア電力マネジャ(SWPM)が、OS106が第1動作モードに入ることを指し示すとともにハードウェアを第1動作モードに置くことを指示する通知メッセージを生成して、それを例えばコントローラ112といったハードウェア電力マネジャ(HWPM)に送信する。
306にて、SWPMが、様々なソフトウェア並びにオペレーティングシステムモジュール及びコンポーネントをモニタして、例えばSW DRIPSといった第1動作モードの低電力状態にそれらが首尾よく遷移するかを判定する。308にて、HWPMが、第1ハードウェアコンポーネントをモニタして、例えばHW DRIPSといった第1動作モードの低電力状態にそれらが首尾よく遷移するかを判定する。さらに、308にて、例えばDRIPsタイムアウト期間といったタイムアウト期間のタイマが始動される。
306で、アプリケーションソフトウェア又はOS106の一方以上が低電力状態に入るのに失敗したとSWPMが判定した場合、SWPMは、310にて、ソフトウェアが第1動作モードの低電力状態を達成しなかったことをHWPMに通知する。312にて、HWPMが、タイムアウト期間が満了したかを判定する。314にて、HWPMが、ソフトウェア又はハードウェアの両方が低電力状態に入ったかを判定し、例えば、SW及びHW DRIPsが達成されたかを判定する。ソフトウェア又はハードウェアの両方が低電力状態に入った場合、第1プロセスは終了する。ソフトウェア及びハードウェアのいずれか又は両方が低電力状態に入らなかった場合、316にて、HWPMが、ソフトウェア、ハードウェア、又は両方が低電力状態に入らなかったことを通知するメッセージをSWPMに送信する。さらに、様々な実施形態において、316にて、HWPMが、第1プロセスの失敗の原因を決定し、決定した原因をSWPMに通信する。例えば、ハードウェアが低電力状態に入らない場合、HWPMは、第1のプロセスの故障の原因が特定のハードウェアデバイス又はコンポーネントに関係していと決定する。
318にて、SWPMが、第1プロセスの失敗の原因を解決するための1つ以上の処理を特定する。一部の実施形態において、SWPMは、第1プロセスの失敗の原因を解決するための試みの回数をカウントするカウンタを始動させる。320にて、SWPMが、第1プロセスの失敗の原因を解決するための1つ以上の処理を特定し、失敗の原因を解決するための処理を実行する。一例として、SWPMはオーディオスタックを無効にし得る。他の一例として、SWPMはドライバを無効にし得る。処理が行われた後、コンポーネントが低電力状態にあるかが判定される。処理がコンポーネントを低電力状態に置かなかった場合、320にて、問題を治癒するための追加の試みを実行することができ、例えば、その処理を繰り返すことができ、あるいは、失敗を治癒するための異なる処理を実行することができる。コンポーネントを低電力状態に置くための追加の試みの回数は、所定の試行回数(“N”)に制限され得る。N回の試行が試みられると、失敗の原因を解決するための追加の試みは為されない。失敗の原因が解決された場合、プロセス300は終了する。失敗の原因が解決されていない場合、プロセス300は322へと進む。
322にて、HWPMが、問題を解決するために許されたN回の試みが行われたこと、及び指定された全てのハードウェアが例えばHW DRIPSといった低電力状態にあるようにはなっていないことを示すメッセージをSWPMに送信する。322でHWPMによって送信されるメッセージは、例えば不必要なバッテリー消費といった不必要な電力消費を防止するためにコンピュータ装置を代わりの低電力状態に置くようにSWPMに通知する。324にて、SWPMが、コンピュータ装置を代わりの動作モード又は第2動作モードに置くための第2プロセスを開始するよう、HWPMにメッセージを送信する。
326にて、HPWMが、指定されたハードウェアコンポーネントを第2動作モードに置く。第1動作モードと同様に、第2動作モードは、低電力状態に置かれるべき特定のハードウェアコンポーネント及びデバイスを指定し、それらをここでは“第2ハードウェアコンポーネント”と称する。様々な実施形態によれば、例えば揮発性メモリ108といった、コンピュータ装置の揮発性メモリは、第2ハードウェアコンポーネントに含められる。様々な実施形態において、第2動作モードは、コンピュータ装置が第2動作モードに置かれる前に、揮発性メモリ装置から不揮発性メモリに状態情報をコピーする。一部の実施形態において、第2動作モードはハイバネート状態(S4)を含む。
実施形態(例えば、図3A及び図3Bを参照したフローチャート)の要素はまた、コンピュータ実行可能命令(例えば、ここで説明される他のプロセスを実行するための命令)を格納する機械読み取り可能媒体(例えば、不揮発性メモリ110)としても提供される。一部の実施形態において、コンピューティングプラットフォームは、メモリ、プロセッサ、機械読み取り可能記憶媒体(有形の機械読み取り可能媒体としても参照される)、通信インタフェース(例えば、無線又は有線インタフェース)、及び共に結合されたネットワークバスを有する。
一部の実施形態において、様々な論理ブロックは、ネットワークバスを介して共に結合される。ネットワークバスを実装するために、如何なる好適なプロトコルが使用されてもよい。一部の実施形態において、機械読み取り可能記憶媒体は、様々な実施形態及びフローチャートを参照して記載されるように、他のデバイスに対するデバイスの距離及び相対的な向きを計算又は測定するための命令(プログラムソフトウェアコード/命令としても参照される)を含む。
図2のシーケンス図、又は図3A及び3Bのフロー図(及び/又は様々な実施形態)に関連した、開示に係る事項の実施形態を実装するために実行されるプログラムソフトウェアコード/命令は、オペレーティングシステムの一部として実装されてもよいし、あるいは、特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、ルーチン、若しくは他の命令シーケンスとして実装されてもよいし、あるいは、“プログラムソフトウェアコード/命令”、“オペレーティングシステムプログラムソフトウェアコード/命令”、“アプリケーションプログラムソフトウェアコード/命令”、又は単に“ソフトウェア”として参照される複数の命令シーケンスの編成として実装されてもよいし、あるいは、プロセッサに組み込まれたファームウェアとして実装されてもよい。一部の実施形態において、図2並びに図3A及び3Bのシーケンスフロー図(及び/又は様々な実施形態)に関連するプログラムソフトウェアコード/命令は、システム又はその1つ以上のコンポーネントによって実行される。
一部の実施形態において、図2並びに図3A及び3B(及び/又は様々な実施形態)に関連するプログラムソフトウェアコード/命令は、コンピュータ実行可能記憶媒体に格納され、プロセッサによって実行される。ここで、コンピュータ実行可能記憶媒体は、プログラムソフトウェアコード/命令及びデータを記憶するために使用されることができる有形の機械読み取り可能媒体であり、それらプログラムソフトウェアコード/命令は、コンピューティング装置によって実行されるときに、1つ以上のプロセッサに、開示に係る主題に向けられた1つ以上の添付の請求項に記載され得る(1つ以上の)方法を実行させる。
有形の機械読み取り可能媒体は、例えば、ROM、揮発性RAM、不揮発性メモリ及び/又はキャッシュ及び/又は本出願において参照されるような他の有形メモリを含め、様々な有形の位置での実行可能ソフトウェアプログラムコード/命令及びデータのストレージを含み得る。このプログラムソフトウェアコード/命令及び/又はデータの部分が、これらのストレージ及びメモリデバイスのうちのいずれかに格納され得る。また、プログラムソフトウェアコード/命令は、例えば、インターネットを含め集中サーバ又はピアツーピアネットワークを介してなどを含めて、他のストレージから取得されてもよい。ソフトウェアプログラムコード/命令及びデータの異なる部分が、異なる時点に異なる通信セッションで又は同じ通信セッションで取得され得る。
ソフトウェアプログラムコード/命令(図2並びに図3A及び3B及び他の実施形態に関連する)及びデータは、コンピューティング装置によるそれぞれのソフトウェアプログラム又はアプリケーションの実行に先立って、それらの全体にて取得されることができる。代わりに、ソフトウェアプログラムコード/命令及びデータの一部が、実行のために必要なときに、例えばジャストインタイムで、動的に取得されてもよい。代わりに、ソフトウェアプログラムコード/命令及びデータを取得するこれらの手法の何らかの組み合わせが、例えば、例として異なるアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、ルーチン、若しくは他の命令シーケンス、又は複数の命令シーケンスの編成に対して行われてもよい。従って、データ及び命令が、特定の時点に全体にて、有形の機械読み取り可能媒体上にあることは必要でない。
有形のコンピュータ読み取り可能媒体の例は、以下に限られないが、とりわけ、例えば揮発性及び不揮発性のメモリデバイス、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリデバイス、フロッピー(登録商標)及び他のリムーバブルディスク、磁気記憶媒体、光記憶媒体(例えば、コンパクトディスク読み出し専用メモリ(CD ROM)、デジタル多用途ディスク(DVD)など)、強誘電体メモリ、抵抗RAM、相変化メモリ(PCM)、磁気RAM(MRAM)などの、記録可能タイプ及び非記録可能タイプの媒体を含む。ソフトウェアプログラムコード/命令は、デジタルの有体の通信リンクに一時的に格納されながら、そのような有形の通信リンクを通じて、例えば搬送波、赤外線信号、デジタル信号などの、電気的、光学的、音響的、又は他の形態の伝搬信号を実装し得る。
一般に、有形の機械読み取り可能媒体は、例えば、iPhone(登録商標)、Galaxy(登録商標)、若しくはこれらに類するもの、又はコンピューティングデバイスを含んだその他の装置といった、通信ネットワークからアプリケーション及び補助アプリケーションをダウンロード及び実行することができるかにかかわらず、通信装置、コンピューティング装置、ネットワーク装置、携帯情報端末、製造ツール、モバイル通信装置に含まれ得るものであるマシン(例えば、コンピューティングデバイス)によってアクセス可能な形態で情報を提供する(すなわち、例えばデータパケットといったデジタル形態で格納及び/又は伝送する)何らかの有形のメカニズムを含む。一実施形態において、プロセッサベースのシステムは、PDA(携帯情報端末)、携帯電話、ノートブックコンピュータ、タブレット、ゲームコンソール、セットトップボックス、埋め込みシステム、TV(テレビジョン)、パーソナルデスクトップコンピュータなどの形態にあり、又はその中に含められる。あるいは、伝統的な通信アプリケーション及び(1つ以上の)補助アプリケーションが、開示に係る事項の一部の実施形態で使用されてもよい。
一部の実施形態において、機械読み取り可能記憶媒体は、格納した機械読み取り可能命令を含み、該機械読み取り可能命令は、実行されるときに、1つ以上の機械に方法を実行させ、該方法は、オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置き、前記コンピュータ装置の揮発性メモリに状態情報を格納し、当該第1プロセスを実行するためのタイムアウト期間にわたるタイマを始動させ、前記第1動作モードにおいて、前記コンピュータ装置の第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能であり、前記タイムアウト期間の満了後に、前記第1プロセスの失敗を検出し、前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、前記コンピュータ装置を第2動作モードに置き、前記コンピュータ装置の不揮発性メモリに状態情報を格納し、前記第2動作モードにおいて、前記揮発性メモリは低電力状態にある、ことを有する。
図4は、一部の実施形態に従った、コンピュータシステム又はコンピューティング装置400(装置400とも称する)を示しており、このコンピュータ装置は、決定論的に低電力状態を達成する能力を持つ。指摘しておくことには、他の図の要素と同じ参照符号(又は名称)を持つ図4の要素は、記載されたものと同様にして動作又は機能することができるが、そのように限定されるものではない。
一部の実施形態において、装置400は、例えばコンピューティングタブレット、携帯電話若しくはスマートフォン、ラップトップ、デスクトップ、モノのインターネット(IOT)装置、サーバ、ウェアラブル装置、セットトップボックス、ワイヤレス対応電子書籍リーダ、又はこれらに類するものなどの、適切なコンピューティング装置を表す。理解されることには、特定の構成要素が概略的に示されており、そのような装置の全てのコンポーネントが装置400に示されているわけではない。
一例において、装置400は、SoC(システム・オン・チップ)401を有する。SoC401の境界の一例が図4に点線を用いて示され、一部のコンポーネントの例がSoC401の中に含められるように示されているが、SoC401は、装置400の任意の適切なコンポーネントを含み得る。
一部の実施形態において、装置400はプロセッサ404を含む。プロセッサ404は、例えばマイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、プロセッシングコア、又は、他のプロセッシング手段などの、1つ以上の物理デバイスを含むことができる。プロセッサ404によって実行される処理動作は、その上でアプリケーション及び/又は装置機能が実行されるオペレーティングプラットフォーム又はオペレーティングシステムの実行を含む。それら処理動作は、人間ユーザ若しくは他の装置とのI/O(入力/出力)に関係する動作、電力管理に関係する動作、コンピューティング装置400を他の装置に接続することに関係する動作、及び/又はこれらに類するものを含む。それら処理動作はまた、オーディオI/O及び/又はディスプレイI/Oに関係する動作を含み得る。
一部の実施形態において、プロセッサ404は、複数のプロセッシングコア(コアとしても参照される)408a、408b、408cを含む。図4には、単に3つのコア408a、408b、408cが示されるが、プロセッサ404は、例えば何十個の又は何百個ものプロセッシングコアといった、任意の他の好適数のプロセッシングコアを含み得る。プロセッサコア408a、408b、408cは、単一の集積回路(IC)チップ上に実装され得る。さらに、そのチップは、1つ以上の共有キャッシュ及び/又はプライベートキャッシュ、バス又は相互接続、グラフィックスコントローラ及び/又はメモリコントローラ、又は他のコンポーネントを含んでもよい。
一部の実施形態において、プロセッサ404はキャッシュ406を含む。一例において、キャッシュ406のセクションは、個々のコア408に専用とされ得る(例えば、キャッシュ406の第1のセクションがコア408aに専用であり、キャッシュ406の第2のセクションがコア408bに専用であり、等々)。一例において、キャッシュ406の1つ以上のセクションが、コア408のうちの2つ以上の間で共有されてもよい。キャッシュ406は、例えばレベル1(L1)キャッシュ、レベル2(L2)キャッシュ、レベル3(L3)キャッシュなどといった異なる階層に分割されてもよい。
一部の実施形態において、所与のプロセッサコア(例えば、コア408a)は、コア408aによる実行のために命令(条件付き分岐を有する命令を含む)をフェッチするフェッチユニットを含み得る。命令は、例えばメモリ430などの任意の記憶装置からフェッチされ得る。プロセッサコア408aはまた、フェッチした命令を復号するデコードユニットを含み得る。例えば、デコードユニットは、フェッチされた命令を複数のマイクロオペレーションへと復号し得る。プロセッサコア408aは、デコードした命令を格納することに伴う様々な動作を実行するスケジュールユニットを含み得る。例えば、スケジュールユニットは、命令がディスパッチの準備が整うまで(例えば、復号された命令の全てのソース値が利用可能になるまで)、デコードユニットからのデータを保持し得る。一実施形態において、スケジュールユニットは、復号された命令を、実行のために、スケジュールし及び/又は実行ユニットに発行(又はディスパッチ)し得る。
実行ユニットは、(例えばデコードユニットによって)復号され且つ(例えばスケジュールユニットによって)ディスパッチされた後のディスパッチされた命令を実行し得る。一実施形態において、実行ユニットは、2つ以上の実行ユニット(例えば、撮像計算ユニット、グラフィックス計算ユニット、汎用計算ユニットなど)を含み得る。実行ユニットはまた、例えば加算、減算、乗算、及び/又は除算などの種々の算術演算を実行し得るとともに、1つ以上の算術論理ユニット(ALU)を含み得る。一実施形態において、実行ユニットと共にコプロセッサ(図示せず)が種々の算術演算を実行してもよい。
また、実行ユニットは、命令を順不同に命令してもよい。従って、プロセッサコア408a(例えば)は、一実施形態において、アウトオブオーダープロセッサコアであってもよい。プロセッサコア408aはまた、回収(リタイアメント)ユニットを含み得る。回収ユニットは、実行された命令を、それらがコミットされた後に回収し得る。一実施形態において、実行された命令の回収は、プロセッサ状態が命令の実行からコミットされることや、命令によって使用された物理レジスタが割り当て解除されることなどをもたらし得る。プロセッサコア408aはまた、プロセッサコア408aのコンポーネントと他のコンポーネントとの間での1つ以上のバスを介した通信を可能にするバスユニットを含み得る。プロセッサコア408aはまた、コア408aの様々なコンポーネントによってアクセスされるデータ(例えば、割り当てられたアプリケーションプライオリティ及び/又はサブシステム状態(モード)アソシエーションに関係する値など)を格納する1つ以上のレジスタを含み得る。
一部の実施形態において、装置400は接続回路431を含む。例えば、接続回路431は、ハードウェアデバイス(例えば、無線及び/又は有線コネクタと通信ハードウェア)及び/又はソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含み、例えば、装置400が外部デバイスと通信することを可能にする。装置400は、例えば他のコンピューティング装置、無線アクセスポイント又は基地局などの外部装置から隔てられ得る。
一例において、接続回路431は、複数の異なるタイプの接続を含み得る。一般化するに、接続回路431は、セルラー接続回路、無線接続回路などを含んでもよい。接続回路431のセルラー接続回路は、一般に、例えばGSM(global system for mobile communications)又はそのバリエーション若しくは派生物、CDMA(符号分割多重アクセス)又はそのバリエーション若しくは派生物、TDM(時分割多重化)又はそのバリエーション若しくは派生物、第3世代パートナーシッププロジェクト(3GPP(登録商標))UMTS(Universal Mobile Telecommunications Systems)システム又はそのバリエーション若しくは派生物、3G(登録商標)PPロングタームエボリューション(LTE)システム又はそのバリエーション若しくは派生物、3GPP(登録商標) LTEアドバンスト(LTE-A)システム又はそのバリエーション若しくは派生物、第5世代(5G)無線システム又はそのバリエーション若しくは派生物、5Gモバイルネットワークシステム又はそのバリエーション若しくは派生物、5G新無線(NR)システム又はそのバリエーション若しくは派生物、又は他のセルラーサービス標準を介して提供されるものなど、無線通信事業者によって提供されるセルラーネットワーク接続を指す。接続回路431の無線接続回路(又は無線インタフェース)は、セルラーではない無線接続を指し、パーソナルエリアネットワーク(例えば、Bluetooth(登録商標)、ニアフィールドなど)、ローカルエリアネットワーク(例えば、Wi-Fiなど)、及び/又はワイドエリアネットワーク(例えば、WiMaxなど)、及び/又は他の無線通信を含むことができる。一例において、接続回路431は、例えば、システム実施形態が例えば携帯電話又は携帯情報端末といったワイヤレス装置に組み込まれ得るように、例えば有線又は無線インタフェースなどのネットワークインタフェースを含み得る。
一部の実施形態において、装置400は、1つ以上のI/O装置とのインタラクションに関係するハードウェアデバイス及び/又はソフトウェアコンポーネントを表すものであるコントロールハブ432を含む。例えば、プロセッサ404は、コントロールハブ432を介して、ディスプレイ422、1つ以上の周辺装置424、ストレージ装置428、1つ以上の他の外部装置429などのうちの1つ以上と通信し得る。コントロールハブ432は、チップセット、プラットフォームコントロールハブ(PCH)、及び/又はこれらに類するものとし得る。
例えば、コントロールハブ432は、装置400に接続する追加の装置のための1つ以上の接続ポイントを例示するものであり、例えば、それを通じて、ユーザがシステムとインタラクトし得る。例えば、装置400に取り付けられることができる装置(例えば、装置429)は、マイクロホン装置、スピーカ若しくはステレオシステム、オーディオ装置、ビデオシステム若しくは他の表示装置、キーボード若しくはキーパッド装置、又は例えばカードリーダ若しくは他の装置などの特定のアプリケーションで使用される他のI/O装置を含む。
上述のように、コントロールハブ432は、オーディオ装置やディスプレイ422などとインタラクトすることができる。例えば、マイクロホン又は他のオーディオ装置を介しての入力が、装置400の1つ以上のアプリケーション又は機能のための入力又はコマンドを提供することができる。さらに、ディスプレイ出力に代えて、又は加えて、オーディオ出力を提供することができる。他の一例において、ディスプレイ422がタッチスクリーンを含む場合、ディスプレイ422は、少なくとも部分的にコントロールハブ432によって管理され得るものである入力装置としても機能する。コンピューティング装置400上にはまた、コントロールハブ432によって管理されるI/O機能を提供するために更なるボタン又はスイッチも存在することができる。一実施形態において、コントロールハブ432は、例えば加速度計、カメラ、光センサ若しくは他の環境センサなどのデバイス、又は装置400に含められ得る他のハードウェアを管理する。入力は、直接的なユーザインタラクションの一部とすることができるとともに、システムに環境入力を提供して、その動作(例えば、ノイズのフィルタリング、輝度検出のためのディスプレイの調整、カメラのためのフラッシュの適用、又は他の機構)に影響を及ぼすことができる。
一部の実施形態において、コントロールハブ432は、例えば、PCIe(ペリフェラルコンポーネントインターコネクトエクスプレス)、USB(ユニバーサルシリアルバス)、サンダーボルト、高精細マルチメディアインタフェース(HDMI(登録商標))、ファイヤワイヤなどといった、任意の適切な通信プロトコルを使用して様々なデバイスに結合し得る。
一部の実施形態において、ディスプレイ422は、ユーザが装置400とインタラクトするための視覚ディスプレイ及び/又は触覚ディスプレイを提供するハードウェア(例えば、ディスプレイ装置)及びソフトウェア(例えば、ドライバ)コンポーネントを表す。ディスプレイ422は、ディスプレイインタフェース、ディスプレイスクリーン、及び/又はユーザに表示を提供するために使用されるハードウェア装置を含み得る。一部の実施形態において、ディスプレイ422は、出力及び入力の両方をユーザに提供するタッチスクリーン(又はタッチパッド)装置を含む。一例において、ディスプレイ422は、プロセッサ404と直接的に通信し得る。ディスプレイ422は、モバイルエレクトロニクス装置若しくはラップトップ装置においてのような内部ディスプレイ、又はディスプレイインタフェース(例えば、DisplayPortなど)を介して取り付けられる外付けディスプレイ装置のうちの一方以上とし得る。一実施形態において、ディスプレイ422は、例えば仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用される立体表示装置などのヘッドマウントディスプレイ(HMD)であってもよい。
一部の実施形態において、図には示していないが、プロセッサ404に加えて(又は代えて)、装置400は、ディスプレイ422上にコンテンツを表示することの1つ以上の態様を制御し得るものである1つ以上のグラフィックス処理コアを含むグラフィックス処理ユニット(GPU)を含んでいてもよい。
コントロールハブ432(又はプラットフォームコントローラハブ)は、ハードウェアインタフェース及びコネクタと、例えば周辺装置424への周辺接続を行うためのソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)とを含んでいてもよい。
理解されることには、装置400は、他のコンピューティング装置に対する周辺装置であってもよく、また、それに接続された周辺装置を有してもよい。装置400は、例えば装置400上のコンテンツを管理する(例えば、ダウンロード及び/又はアップロードする、変更する、同期させる)などの目的のために、他のコンピューティング装置に接続するための“ドッキング”コネクタを有し得る。加えて、ドッキングコネクタは、例えばオーディオビジュアルシステム又は他のシステムへのコンテンツ出力をコンピューティング装置400が制御することを可能にする特定の周辺機器に装置400が接続することを可能にし得る。
専用ドッキングコネクタ又は他の専用接続ハードウェアに加えて、装置400は、共通又は標準ベースのコネクタを介して周辺接続を行うことができる。共通のタイプは、ユニバーサルシリアルバス(USB)コネクタ(これは、多数の異なるハードウェアインタフェースのうちのいずれかを含み得る)、ミニディスプレイポート(MDP)、高精細マルチメディアインタフェース(HDMI(登録商標))、ファイヤワイヤ、又は他のタイプを含み得る。
一部の実施形態において、接続回路431は、例えば、プロセッサ404に直接的に結合されることに加えて、又は代えて、コントロールハブ432に結合されてもよい。一部の実施形態において、ディスプレイ422は、例えば、プロセッサ404に直接的に結合されることに加えて、又は代えて、コントロールハブ432に結合されてもよい。
一部の実施形態において、装置400は、メモリインタフェース434を介してプロセッサ404に結合されたメモリ430を含む。メモリ430は、装置400内の情報を格納するためのメモリデバイスを含む。メモリは、不揮発性(メモリデバイスへの電力が中断された場合に状態が変化しない)及び/又は揮発性(メモリデバイスへの電力が中断された場合に状態が不確定となる)メモリデバイスを含むことができる。メモリデバイス430は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリデバイス、相変化メモリデバイス、又はプロセスメモリとして機能するのに適した性能を持つ何らかの他のメモリデバイスとし得る。一実施形態において、メモリ430は、1つ以上のプロセッサ404がアプリケーション又はプロセスを実行するときに使用されるデータ及び命令を格納するための、装置400のシステムメモリとして動作することができる。メモリ430は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、又は他のデータ、並びに、装置400のアプリケーション及び機能の実行に関係するシステムデータ(長期であるか一時的であるかにかかわらず)を格納することができる。
様々な実施形態及び例の要素はまた、コンピュータ実行可能命令(例えば、ここで説明されるいずれか他のプロセスを実行するための命令)を格納する機械読み取り可能媒体(例えば、メモリ430)として提供される。機械読み取り可能媒体(例えば、メモリ430)は、以下に限られないが、フラッシュメモリ、光ディスク、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁気カード若しくは光カード、相変化メモリ(PCM)、又は電子命令若しくはコンピュータ実行可能命令を格納するのに適した他のタイプの機械読み取り可能媒体を含み得る。例えば、開示の実施形態は、通信リンク(例えば、モデム又はネットワーク接続)を介してデータ信号によってリモートコンピュータ(例えば、サーバ)から要求元コンピュータ(例えば、クライアント)に転送され得るコンピュータプログラム(例えば、BIOS)としてダウンロードされ得る。
一部の実施形態において、装置400は、例えば装置400の種々のコンポーネントの温度を測定するための、温度測定回路440を含む。一例において、温度測定回路440は、その温度を測定及びモニタすべきである様々なコンポーネントに内蔵され、結合され、又は取り付けられ得る。例えば、温度測定回路440は、コア408a、408b、408c、電圧レギュレータ414、メモリ430、SoC401のマザーボード、及び/又は装置400の任意の適切なコンポーネント、のうちの1つ以上の温度(又はその中の温度)を測定し得る。
一部の実施形態において、装置400は、例えば装置400の1つ以上のコンポーネントによって消費される電力を測定するための、電力測定回路442を含む。一例において、電力を測定することに加えて、又は代えて、電力測定回路442は、電圧及び/又は電流を測定してもよい。一例において、電力測定回路442は、その電力、電圧、及び/又は電流を測定及びモニタすべきである様々なコンポーネントに内蔵され、結合され、又は取り付けられ得る。例えば、電力測定回路442は、1つ以上の電圧レギュレータ414によって供給される電力、電流及び/又は電圧、SoC401に供給される電力、装置400に供給される電力、装置400のプロセッサ404(又は他のコンポーネント)によって消費される電力などを測定し得る。
一部の実施形態において、装置400は、概して電圧レギュレータ(VR)414として参照する1つ以上の電圧レギュレータ回路を含む。VR414は、装置400のいずれか適切なコンポーネントを動作させるために供給され得るものである適切な電圧レベルの信号を生成する。単なる一例として、VR414は、装置400のプロセッサ404に信号を供給しているように図示されている。一部の実施形態において、VR414は、1つ以上の電圧識別(Voltage Identification;VID)信号を受信し、該VID信号に基づいて、適切なレベルにある電圧信号を生成する。VR414には、種々のタイプのVRが利用され得る。例えば、VR414は、“バック”VR、“ブースト”VR、バックVRとブーストVRとの組み合わせ、低ドロップアウト(LDO)レギュレータ、スイッチングDC-DCレギュレータなどを含み得る。バックVRは、一般に、1より小さい比で入力電圧を出力電圧に変換する必要がある電力送達用途で使用される。ブーストVRは、一般に、1より大きい比で入力電圧を出力電圧に変換する必要がある電力送達用途で使用される。一部の実施形態において、各プロセッサコアがそれ自身のVRを持ち、それがPCU410a/b及び/又はPMIC412によって制御される。一部の実施形態において、電力管理のための効率的な制御を提供するために、各コアが、分散されたLDOのネットワークを持つ。LDOは、デジタルLDO、アナログLDO、又はデジタル若しくはアナログのLDOの組み合わせとし得る。
一部の実施形態において、装置400は、概してクロック発生器416として参照する1つ以上のクロック発生器回路を含む。クロック発生器416は、装置400の任意の適切なコンポーネントに供給され得るものである適切な周波数レベルのクロック信号を生成する。単なる一例として、クロック発生器416は、装置400のプロセッサ404にクロック信号を供給しているように図示されている。一部の実施形態において、クロック発生器416は、1つ以上の周波数識別(Frequency Identification;FID)信号を受信し、該FID信号に基づいて、適切な周波数にあるクロック信号を生成する。
一部の実施形態において、装置400は、装置400の様々なコンポーネントに電力を供給するバッテリー418を含む。単なる一例として、バッテリー418は、プロセッサ404に電力を供給しているように図示されている。図には示していないが、装置400は、ACアダプタから受け取られる交流(AC)電源に基づいて例えばバッテリーを再充電するための充電回路を含み得る。
一部の実施形態において、装置400は、電力制御ユニット(PCU)410(電力管理ユニット(PMU)、電力コントローラなどとしても参照する)を含む。一例において、PCU410の一部のセクションは、1つ以上のプロセッシングコア408によって実装されてもよく、PCU410のこれらのセクションは、点線のボックスを用いてPCU410aというラベルを付して象徴的に図示されている。一例において、PCU410の他の一部のセクションは、プロセッシングコア408の外部に実装されてもよく、PCU410のこれらのセクションは、点線のボックスを用いてPCU410bというラベルを付して象徴的に図示されている。PCU410は、装置400に関する様々な電力管理動作を実装し得る。PCU410は、装置400に関する様々な電力管理動作を実装するために、ハードウェアインタフェース、ハードウェア回路、コネクタ、レジスタなどと、ソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)とを含み得る。
一部の実施形態において、装置400は、例えば、装置400に関する様々な電力管理動作を実装するために、電力管理集積回路(PMIC)412を含む。一部の実施形態において、PMIC412は、リコンフィギュラブル電力管理IC(RPMIC)及び/又はIMVP(Intel(登録商標) Mobile Voltage Positioning)である。一例において、PMICは、プロセッサ404とは別個のICチップ内にある。PMIC412は、装置400に関する様々な電力管理動作を実装し得る。PMIC412は、装置400に関する様々な電力管理動作を実装するために、ハードウェアインタフェース、ハードウェア回路、コネクタ、レジスタなどと、ソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)とを含み得る。
一例において、装置400は、PCU410又はPMIC412の一方又は両方を含む。一例において、PCU410又はPMIC412のいずれか一方は、装置400内に存在しなくてもよく、それ故に、これらのコンポーネントは点線を用いて図示されている。
装置400の様々な電力管理動作は、PCU410によって、PMIC412によって、又はPCU410とPMIC412との組み合わせによって実行され得る。例えば、PCU410及び/又はPMIC412は、装置400の様々なコンポーネントに関する電力状態(例えば、P状態)を選択し得る。例えば、PCU410及び/又はPMIC412は、装置400の様々なコンポーネントに関する電力状態を(例えば、ACPI(Advanced Configuration and Power Interface)仕様に従って)選択し得る。単なる一例として、PCU410及び/又はPMIC412は、装置400の様々なコンポーネントに、スリープ状態、アクティブ状態、適切なC状態(例えば、ACPI仕様に従った、C0状態、又は他の適切なC状態)などに遷移させ得る。一例において、PCU410及び/又はPMIC412は、VR414によって出力される電圧及び/又はクロック発生器によって出力されるクロック信号の周波数を、例えば、それぞれVID信号及び/又はFID信号を出力することによって制御し得る。一例において、PCU410及び/又はPMIC412は、バッテリー電力使用量、バッテリー418の充電、及び電力節減動作に関係する機能を制御し得る。
クロック発生器416は、位相ロックループ(PLL)、周波数ロックループ(FLL)、又は任意の好適なクロック源を有することができる。一部の実施形態において、プロセッサ404の各コアが、それ自身のクロック源を持つ。斯くすると、各コアは、他のコアの動作周波数とは独立の周波数で動作することができる。一部の実施形態において、PCU410及び/又はPMIC412は、適応的又は動的な周波数スケーリング又は調整を実行する。例えば、あるプロセッサコアのクロック周波数が、そのコアがその最大電力消費閾値又は制限値で動作していない場合に上昇され得る。一部の実施形態において、PCU410及び/又はPMIC412は、プロセッサの各コアの動作条件を決定し、そして、コアが目標性能レベルよりも下で動作しているとPCU410及び/又はPMIC412が判定したとき、そのコアのクロック源(例えば、そのコアのPLL)がロックを失うことなく、機に乗じてそのコアの周波数及び/又は電源電圧を調整する。例えば、コアが、そのコア又はプロセッサ404に対して割り当てられた総電流よりも小さい電流を電力供給レールから引き出している場合に、PCU410及び/又はPMIC412は、そのコア又はプロセッサ404がより高い性能レベルを発揮することができるように、(例えば、クロック周波数及び/又は電源電圧レベルを上昇させることによって)そのコア又はプロセッサ404に対する電力引き出しを一時的に増加させることができる。斯くして、製品の信頼性を損なうことなく、プロセッサ404に対して電圧及び/又は周波数を一時的に上昇させることができる。
一例において、PCU410及び/又はPMIC412は、例えば、電力測定回路442、温度測定回路440からの測定結果、バッテリー418の充電レベル、及び/又は電力管理のために使用され得る他の適切な情報を受信することに少なくとも部分的に基づいて、電力管理動作を実行し得る。この目的のために、PMIC412は、システム/プラットフォームの電力/熱挙動に対して影響を持つ1つ以上のファクタにおける様々な値/変動を検知/検出するために、1つ以上のセンサに通信可能に結合される。該1つ以上のファクタの例は、電流、電圧ドループ、温度、動作周波数、動作電圧、電力消費、コア間通信活動などを含む。これらのセンサのうちの1つ以上は、コンピューティングシステムの1つ以上のコンポーネント又は論理/IPブロックと物理的に近接して(且つ/或いは熱的に接触/結合して)設けられ得る。さらに、少なくとも一実施形態において、PCU410及び/又はPMIC412に直接的に(1つ以上の)センサを結合することで、PCU410及び/又はPMIC412が、それらセンサのうちの1つ以上によって検出された(1つ以上の)値に少なくとも部分的に基づいてプロセッサコアエネルギーを管理することを可能にしてもよい。
装置400のソフトウェアスタックの一例も図示している(しかし、ソフトウェアスタックの全ての要素が図示されているわけではない)。単なる一例として、プロセッサ404は、アプリケーションプログラム450、オペレーティングシステム452、1つ以上の電力管理(PM)向けアプリケーションプログラム(例えば、概してPMアプリケーション458として参照する)、及び/又はこれらに類するものを実行し得る。PMアプリケーション458はまた、PCU410及び/又はPMIC412によって実行されてもよい。OS452も、1つ以上のPMアプリケーション456a、456b、456cを含み得る。OS452はまた、様々なドライバ454a、454b、454cなどを含むことができ、それらのうちの一部は電力管理目的に特有のものとし得る。一部の実施形態において、装置400は更に、基本入力/出力システム(BIOS)420を含み得る。BIOS420は、(例えば、1つ以上のドライバ454を介して)OS452と通信し、プロセッサ404と通信し、等々とし得る。
例えば、PMアプリケーション458、456、ドライバ454、BIOS420などのうちの1つ以上を使用して、例えば、装置400の様々なコンポーネントの電圧及び/又は周波数を制御するため、装置400の様々なコンポーネントのウェイクアップ状態、スリープ状態、及び/又は他の適切な電力状態を制御するため、バッテリー電力使用量、バッテリー418の充電、電力節減動作に関係する機能を制御するため、などの電力管理向けタスクを実装し得る。
様々な実施形態によれば、オペレーティングシステム452は、コンピューティング装置400が例えばModern Standbyといった第1動作モードに入り得ることを指し示すイベントを検出するための命令を含む。該命令は、そのイベントを検出したことに応答して、オペレーティングシステム452が、例えばPCU410a、PCU410b、又はPMIC412といった、コンピューティング装置400の動作モードを制御するハードウェアデバイス又はコンポーネントへの通知メッセージを生成して送信することを提供する。該通知メッセージは、例えばModern Standbyといった第1動作モードによって規定されるハードウェア電力状態にする第1プロセスを実行するための、電力管理デバイスへの命令を含む。オペレーティングシステム452の命令はまた、ソフトウェアスタックに、アプリケーションプログラム450及びオペレーティングシステム452(ドライバ454及びPMアプリケーション456を含む)を例えばSW DRIPSといった最低電力状態に置くための一連のフェーズを通して遷移させる。
第1動作モードは、第1動作モードの低電力状態に置かれる“第1ハードウェアコンポーネント”を指定する。様々な実施形態によれば、コンピューティング装置400の揮発性メモリは、第1のハードウェアコンポーネントから除外される。様々な実施形態において、第1動作モードは、第1ハードウェアコンポーネントの全てが第1動作モードの低電力状態に入る前に、揮発性メモリから状態情報をコピーし、該状態情報を格納する。
例えばPCU410a、PCU410b、又はPMIC412といった電力管理デバイスは、上記通知の受信に応答して、様々なハードウェアコンポーネントに、第1動作モードに関連付けられた低電力状態に入るように命令するように又はそれに入らせるように動作可能である。しかしながら、時々、ソフトウェア又はハードウェアが、意図通りにそれぞれのSW DRIP又はHW DRIPに入らないことがあり、それは、電力の浪費であり、バッテリー418を不必要に消耗させてしまい得る。
オペレーティングシステム452は、アプリケーションプログラム450及びオペレーティングシステム452それ自体のSW DRIPSへの遷移をモニタするための命令を含む。例えば、PMアプリケーション456が、アプリケーションプログラム450及びオペレーティングシステム452の遷移をモニタするための命令を含み得る。例えばPCU410a、PCU410b、又はPMIC412といった電力管理デバイスは、指定されたハードウェアコンポーネントの、例えばHW DRIPSといった低電力状態への遷移をモニタするように動作可能である。(他のところで述べたように、第1動作モードは、特定のハードウェアコンポーネントが低電力状態に入るべきであることを規定する。)電力管理デバイスは、ソフトウェア(モニタリングアプリケーションプログラム450及びオペレーティングシステム452)及びハードウェア(規定されたハードウェアコンポーネント)が低電力モードに遷移することに関するタイムアウト期間のタイマを含む。
オペレーティングシステム452は、アプリケーションソフトウェア450又はオペレーティングシステム452のうち一方以上がタイムアウト期間内に例えばSW DRIPといった低電力状態に入るのに失敗したことを決定するための命令を含む。さらに、オペレーティングシステム452は、ソフトウェアが低電力状態に入るのに失敗したことを指し示すメッセージを電力管理デバイスに送信するための命令を含む。このメッセージはまた、ソフトウェアが低電力状態に入るのに失敗した理由を規定し得る。
例えばPCU410a、PCU410b、又はPMIC412といった電力管理デバイスは、タイムアウト期間の満了時に、ソフトウェア又はハードウェアのいずれかが低電力状態に入らなかったかを決定するように動作可能である。電力管理デバイスは、オペレーティングシステム452に、ソフトウェア若しくはハードウェア又は両方が低電力状態に入らなかったことを指し示すとともに第1プロセスの失敗の原因を示すメッセージを送信するように構成される。
オペレーティングシステム452は、第1プロセスの失敗の原因を解決するための1つ以上の処理を特定するための命令、及び失敗の原因を解決するための処理を実行するための命令を含む。これらの命令はまた、解決処理の指し示すメッセージを電力管理デバイスに送信することをもたらす。電力管理デバイスは、解決処理が成功したかを判定し、解決処理のカウントをインクリメントし得る。処理が問題を治癒しなかった場合、問題を治癒するための2回目又は更なる試みを行うことができ、すなわち、その処理が繰り返されたり、又は失敗を治癒するための異なる処理が実行されたりし得る。電力管理デバイスは、解決処理が行われる都度、カウンタをインクリメントする。電力管理デバイスは、最大の回数の解決処理が試みられたかを判定し得る。最大試行回数の後に失敗の原因が解決されていない場合、電力管理デバイスは、コンピューティング装置400を例えばハイバネート(S4)といった第2動作モードに置くようにオペレーティングシステムに指示するメッセージを、オペレーティングシステム452に送信する。
オペレーティングシステム452は、以下を行うことによって上記メッセージに応答するための命令、すなわち、第2プロセスを開始してコンピュータ装置を第2動作モードに置くためのメッセージを例えばPCU410a、PCU410b、又はPMIC412といった電力管理デバイスに送信することによって上記メッセージに応答するための命令を含む。さらに、オペレーティングシステム命令は、アプリケーションプログラム450及びオペレーティングシステム452を第2動作モードに置くための命令を含む。第2動作モードは、第2動作モードの低電力状態に置かれるべき“第2ハードウェアコンポーネント”を指定する。様々な実施形態によれば、コンピューティング装置400の揮発性メモリは、第2ハードウェアコンポーネントに含まれる。様々な実施形態において、第2動作モードは、第2動作モードの低電力状態に入る前に、不揮発性メモリから状態情報をコピーし、不揮発性メモリに状態情報を格納する。一部の実施形態において、第2動作モードはハイバネート状態(S4)を含む。
明細書における“ある実施形態”、“一実施形態”、“一部の実施形態”、又は“他の実施形態”への言及は、それらの実施形態に関連して記述される特定の機構、構造又は特徴が、必ずしも全ての実施形態においてなく、少なくとも一部の実施形態に含まれることを意味する。“ある実施形態”、“一実施形態”又は“一部の実施形態”が様々に現れることは、必ずしもすべてが同じ実施形態に言及しているわけではない。明細書が、コンポーネント、機構、構造、又は特徴が含まれ“てもよい”、“ることがある”又は“得る”と述べている場合、その特定のコンポーネント、機構、構造、又は特徴は含められる必要がない。明細書又は請求項が“a”又は“an”を付けて要素に言及する場合、それは、それらの要素が1つだけ存在することを意味するわけではない。明細書又は請求項が“an additional”を付けて要素に言及する場合、それは、その追加の要素が2つ以上あることを除外するものではない。
明細書全体を通して、及び特許請求の範囲において、用語“接続され”は、中間デバイスなしでの、接続された物の間の例えば電気的、機械的又は磁気的な接続などの直接的な接続を意味する。
用語“結合され”は、例えば、接続された物の間の例えば直接的な電気的、機械的、若しくは磁気的な接続、又は1つ以上の受動的若しくは能動的な中間デバイスを介した間接的な接続などの、直接的又は間接的な接続を意味する。
用語“隣接した”は、ここでは概して、ある物が他の物に隣にある(例えば、すぐ隣、又はそれらの間に1つ以上の物を置いて近接)又は境を接している(例えば、くっついている)位置を指す。
用語“回路”又は“モジュール”は、所望の機能を提供するよう互いに協働するように構成された1つ以上の受動及び/又は能動コンポーネントを指し得る。
用語“信号”は、少なくとも1つの電流信号、電圧信号、磁気信号、又はデータ/クロック信号を指し得る。“a”、“an”、“the”の意味は複数参照を含む。“in”の意味は“in”及び“on”を含む。
用語“アナログ信号”は、ここでは概して、信号の時間変化する特徴(変数)が、何らかの他の時間変化する量を表すものである、すなわち、別の時変信号と類似である連続的な信号を指す。
用語“デジタル信号”は、例えば、任意のビットストリーム、又はデジタル化された(サンプリングされてアナログ-デジタル変換された)アナログ信号といった、一連の離散値(数量化された離散時間信号)、を表すものである物理信号である。
用語“スケーリング”は概して、設計(回路図及びレイアウト)をあるプロセス技術から別のプロセス技術へと変換することを指し、後にレイアウト面積において縮小され得る。一部のケースにおいて、スケーリングはまた、設計をあるプロセス技術から別のプロセス技術へと大型化し、後にレイアウト面積において拡大され得る。用語“スケーリング”は概して、同じテクノロジーノードの中でレイアウト及びデバイスを小型化又は大型化することも指す。用語“スケーリング”はまた、例えば電源レベルといった別のパラメータに対して相対的に信号周波数の調整(例えば、低速化又は高速化、すなわち、それぞれ、スケールダウン又はスケールアップ)することを指し得る。
用語“実質的に”、“近い”、“近似的に”、“ほぼ”、及び“約”は概して、目標値の±10%以内であることを指す。
別段の断りがない限り、共通のオブジェクトを記述するための序数形容詞“第1の”、“第2の”、“第3の”などの使用は、単に、同様のオブジェクトの異なるインスタンスが参照されていることを示すものであり、そのように記述されるオブジェクトが、時間的に、空間的に、ランク付けにおいて、又は何らかの他のやり方で、所与のシーケンスになければならないことを意味する意図はない。
本開示の目的で、“A及び/又はB”及び“A又はB”という言い回しは、(A)、(B)、又は(A及びB)を意味する。本開示の目的で、“A、B、及び/又はC”という言い回しは、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B及びC)を意味する。
明細書及び特許請求の範囲において、存在する場合に、用語“左”、“右”、“前”、“後”、“頂部”、“底部”、“上”、“下”、及びこれらに類するものは、説明の目的で使用されており、必ずしも恒久的な相対位置を記載するために使用されているわけではない。
指摘しておくことには、他の図の要素と同じ参照符号(又は名称)を持つ図の要素は、記載されたものと同様にして動作又は機能することができるが、そのように限定されるものではない。
実施形態の目的で、ここに記載される様々な回路及び論理ブロック内のトランジスタは、金属酸化膜半導体(MOS)トランジスタ又はそれらの派生物であり、MOSトランジスタは、ドレイン、ソース、ゲート、及びバルク端子を含む。トランジスタ及び/又はMOSトランジスタ派生物はまた、トライゲート及びFinFETトランジスタ、ゲートオールアラウンド円筒型トランジスタ、トンネリングFET(TFET)、スクエアワイヤ、又は矩形リボン型トランジスタ、強誘電体FET(FeFET)、又はカーボンナノチューブ若しくはスピントロニックデバイスのようなトランジスタ機能を実現する他のデバイスを含む。MOSFETの対称的なソース及びドレイン端子は、言い換えれば、相等しい端子であり、ここでは交換可能に使用される。一方、TFETデバイスは、非対称のソース及びドレイン端子を有する。当業者が理解することには、開示の範囲から逸脱することなく、例えばバイポーラ接合トランジスタ(BJT PNP/NPN)、BiCMOS、CMOSなどといった他のトランジスタも使用され得る。
ここでは、用語“監督者(supervisor)”は概して、単独で又は1つ以上の他のpユニットと協働して1つ以上の関連する電力ドメインについて電力及び性能関連パラメータを監視及び管理するものである電力コントローラ又は電力管理ユニット(“pユニット”)を指す。電力/性能関連パラメータは、以下に限られないが、ドメイン電力、プラットフォーム電力、電圧、電圧ドメイン電流、ダイ電流、ロードライン、温度、デバイス待ち時間、利用率、クロック周波数、処理効率、現在/将来のワークロード情報、及び他のパラメータを含み得る。それは、その1つ以上のドメインについての新たな電力又は性能パラメータ(限界、平均動作など)を決定し得る。そして、これらのパラメータが、1つ以上のファブリック及び/又はインターコネクトを介して、被監督者のpユニットに、又は例えばVR若しくはクロックスロットル制御レジスタなどの制御対象又は監視対象のエンティティに直接的に、通信され得る。監督者は、1つ以上のダイのワークロード(現在及び将来)、1つ以上のダイの電力測定、及び他のパラメータ(例えば、プラットフォームレベルの電力境界)を知り、1つ以上のダイについて新たな電力制限を決定する。そして、これらの電力制限が、監督者のpユニットによって、1つ以上のファブリック及び/又はインターコネクトを介して、被監督者のpユニットに通信される。ダイが1つのpユニットを有する例では、監督者(Svor)のpユニットを監督者ダイとも称する。
ここでは、用語“被監督者(supervisee)”は概して、単独で又は1つ以上の他のpユニットと協働して1つ以上の関連する電力ドメインについて電力及び性能関連パラメータを監視及び管理するとともに、その関連する電力ドメインについて電力及び/又は性能パラメータ(例えば、供給電圧、動作周波数、最大電流、スロットリング閾値など)を設定するよう、監督者から指示を受け取るものである、電力コントローラ又は電力管理ユニット(“pユニット”)を指す。ダイが1つのpユニットを有する例では、被監督者(Svee)のpユニットを被監督者ダイとも称する。なお、pユニットは、Svor、Sveeのいずれかとして、又はSvor/Sveeのpユニットの両方として機能し得る。
ここでは、用語“プロセッサコア”は概して、他のコアと並列に一度に1つのプログラムスレッドを実行することができる独立した実行ユニットを指す。プロセッサコアは、監督者又は被監督者として動的若しくは静的に構成され得る専用の電力コントローラ又は電力制御ユニット(pユニット)を含み得る。この専用のpユニットは、一部の例において、自律pユニットとしても参照される。一部の例において、全てのプロセッサコアが、同じサイズ及び機能のものであり、すなわち、対称コアである。しかしながら、プロセッサコアは非対称であってもよい。例えば、一部のプロセッサコアは、他のプロセッサコアとは異なるサイズ及び/又は機能を持つ。プロセッサコアは、仮想プロセッサコアであってもよいし、物理プロセッサコアであってもよい。
ここでは、用語“ダイ”は概して、プロセッサコアを構成するトランジスタ又は他のコンポーネントが存在し得る連続したシングルピースの半導体材料(例えば、シリコン)を指す。マルチコアプロセッサは、単一のダイ上に2つ以上のプロセッサを有し得るが、代わりに、2つ以上のプロセッサが2つ以上のそれぞれのダイ上に設けられてもよい。各ダイは、専用の電力コントローラ若しくは電力制御ユニット(pユニット)、又は監督者若しくは被監督者として動的若しくは静的に構成され得る電力コントローラ若しくは電力制御ユニット(pユニット)を有する。一部の例において、ダイ同士は、同じサイズ及び機能のもの、すなわち、対称コアである。しかし、ダイはまた、非対称であることもできる。例えば、一部のダイは、他のダイとは異なるサイズ及び/又は機能を持つ。
ここでは、用語“インターコネクト”は、2つ以上のポイント又はノードの間の通信リンク又はチャネルを指す。インターコネクトは、例えばワイヤ、ビア、導波路、受動コンポーネント、及び/又は能動コンポーネントなどの、1つ以上の別個の導電経路を有し得る。インターコネクトはまた、ファブリックを有してもよい。
ここでは、用語“インタフェース”は概して、インターコネクトと通信するために使用されるソフトウェア及び/又はハードウェアを指す。インタフェースは、インターコネクト又は1つ以上のワイヤ上でデータを送受信するためのロジック及びI/Oドライバ/レシーバを含み得る。
ここでは、用語“ファブリック”は概して、既知の一組の、発信元、宛先、ルーティングルール、トポロジ、及び他のプロパティ、を有する通信機構を指す。発信元及び宛先は、例えば電力管理ユニットなどの、任意のタイプのデータハンドリング機能ユニットとし得る。ファブリックは、ダイのx-y平面に沿って広がる二次元、及び/又は垂直及び水平に配置されたダイのスタックのx-y-z平面に沿って広がる三次元(3D)とすることができる。単一のファブリックが複数のダイに及んでもよい。ファブリックは、例えばメッシュトポロジ、スタートポロジ、デイジーチェーントポロジなどの任意のトポロジをとることができる。ファブリックは、複数のエージェントを有するネットワーク・オン・チップ(NoC)の一部であってもよい。それらのエージェントは、任意の機能ユニットとすることができる。
ここでは、用語“ダイレット”又は“チップレット”は概して、物理的に別個の半導体ダイを指し、典型的に、ダイ境界を横切るファブリックが、2つの別個のファブリックというより単一のファブリックのように機能することを可能にするようにして、隣接するダイに接続される。従って、少なくとも一部のダイはダイレットであってもよい。各ダイレットが、監督者、被監督者、又はこれらの双方として動的又は静的に構成され得る1つ以上のpユニットを含むことができる。
ここでは、用語“ドメイン”は概して、類似の特性(例えば、供給電圧、動作周波数、回路又はロジックのタイプ、及び/又はワークロードタイプ)を持ち、且つ/或いは特定のエージェントによって制御される論理的又は物理的境界を指す。例えば、ドメインは、特定の監督者によって制御される論理ユニット又は機能ユニットのグループとし得る。ドメインは、自律境界(Autonomous Perimeter;AP)としても参照され得る。ドメインは、システム・オン・チップ(SoC)全体又はSoCの一部とすることができ、pユニットによって統治される。
また、特定の機構、構造、機能、又は特徴が、1つ以上の実施形態において好適なように組み合わされ得る。例えば、第1の実施形態が、第2の実施形態と、これら2つの実施形態に関連する特定の機構、構造、機能、又は特徴が相互に排他的でない場合に組み合わされ得る。
開示をその特定の実施形態に関して説明してきたが、以上の説明を踏まえて、これらの実施形態の数多くの改変、変更、及び変形が当業者に明らかになる。開示の実施形態は、添付の請求項の広い範囲に入る全てのそのような改変、変更、及び変形を包含することを意図している。
加えて、図示及び説明を簡単にするため、また、開示を不明瞭にしないため、集積回路(IC)チップ及び他のコンポーネントへの周知の電力/グランド接続は、提示される図の中に示されたり示されなかったりすることがある。また、構成がブロック図の形態で示されることがあるが、これは、開示を不明瞭にすることを避けるためであり、また、そのようなブロック図の構成の実装に関する詳細事項が、その中で本開示が実装されることになるプラットフォームに大きく依存する(すなわち、そのような詳細事項は、十分に、当業者の関与の範囲内にあるはずである)という事実に鑑みてのことである。開示の実施形態例を記述するために特定の詳細事項(例えば、回路)が説明される場合に、開示したことがそれらの特定の詳細事項を用いずに又はそれらの変形を用いて実施されることは、当業者に明らかなはずである。この記述は、故に、限定するものでなく例示するものとして見なされることになる。
以下の例は、更なる実施形態に関する。これらの例における具体的事項は、1つ以上の実施形態のどこで用いられてもよい。ここに記載される装置のオプション機構は全て、方法又はプロセスに関しても実装され得る。これらの例は、任意の組み合わせで組み合わされることができる。例えば、例4は例2と組み合わされることができる。
例1: オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置き、前記コンピュータ装置の揮発性メモリに状態情報を格納し、当該第1プロセスを実行するためのタイムアウト期間にわたるタイマを始動させる第1回路であり、前記第1動作モードにおいて、前記コンピュータ装置の第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能である、第1回路と、前記タイムアウト期間の満了後に、前記第1プロセスの失敗を検出する第2回路と、前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、前記コンピュータ装置を第2動作モードに置き、前記コンピュータ装置の不揮発性メモリに状態情報を格納する第3回路であり、前記第2動作モードにおいて、前記揮発性メモリは低電力状態にある、第3回路と、を有する装置。
例2: 前記第1メッセージは、前記コンピュータ装置を前記第1動作モードに置き、前記第1プロセスを実行するための前記タイムアウト期間にわたる前記タイマを始動させるための命令を含む、例1の装置。
例3: 当該装置は、ソフトウェア低電力状態が達成されていないことを指し示す第2メッセージを電力管理ユニットに送るためのオペレーティングシステム命令を含む、例1の装置。
例4: 当該装置は更に、前記第1プロセスの前記失敗の原因を決定する第4回路、を有する、例1の装置。
例5: 当該装置は更に、前記第1プロセスの前記失敗を指し示す第3メッセージを前記オペレーティングシステムに送信する電力管理ユニット、を有する、例4の装置。
例6: 当該装置は、前記第1プロセスの前記失敗の前記原因を解決するための1つ以上の処理を特定するためのオペレーティングシステム命令を含み、前記1つ以上の処理の前記特定は、前記第1プロセスの前記失敗について決定された前記原因に基づく、例5の装置。
例7: 当該装置は更に、前記第1プロセスの前記失敗の原因を解決するための処理を実行するためのオペレーティングシステム命令と、前記失敗の前記原因を解決するための前記処理を前記オペレーティングシステムが実行することをカウントし、該カウントが前記失敗の前記原因を解決するための最大試行回数を超えているかを判定する第5回路と、
を有する、例1の装置。
例8: 当該装置は更に、前記カウントが前記失敗の前記原因を解決するための前記最大試行回数を超えたことに応答して、前記第1プロセスを停止させるため、及び前記第2プロセスを開始して前記コンピュータ装置を前記第2動作モードに置くように前記オペレーティングシステムに命令するメッセージを、前記オペレーティングシステムに送信するための、電力管理ユニット、を有する、例7の装置。
例9: 前記第1動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースModern Standby状態を含む、例1の装置。
例10: 前記第2動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースHibernate状態を含む、例1の装置。
例11: 前記状態情報は、オペレーティングシステム状態情報、アプリケーションソフトウェア状態情報、及びプロセッサ状態情報のうちの少なくとも1つを含む、例1の装置。
例12: オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置く第1回路であり、前記第1動作モードにおいて、前記コンピュータ装置の第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能である、第1回路と、前記オペレーティングシステムからの、ソフトウェア低電力状態が達成されていないことを指し示す第2メッセージを受信し、タイムアウト期間の満了後に、前記第1プロセスの失敗を検出する第2回路と、前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、前記コンピュータ装置を第2動作モードに置き、前記コンピュータ装置の不揮発性メモリに状態情報を格納する第3回路であり、前記第2動作モードにおいて、前記揮発性メモリは低電力状態にある、第3回路と、を有する装置。
例13: 前記第1動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースModern Standby状態を含み、前記第2動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースHibernate状態を含む、例12の装置。
例14: システムであって、オペレーティングシステムを実行するためのプロセッサ及びメモリと、前記プロセッサに結合されたディスプレイ装置であり、当該ディスプレイ装置に通信された信号に基づいて画像を表示するディスプレイ装置と、前記プロセッサ及びメモリに結合された電力管理ユニットであり、第1プロセスを実行して、当該システムを第1動作モードに置き、揮発性メモリに状態情報を格納し、前記第1動作モードにおいて、当該システムの第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能であり、前記第1プロセスの失敗を検出し、前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、当該システムを第2動作モードに置き、不揮発性メモリに状態情報を格納し、前記第2動作モードにおいて、当該システムの第2コンポーネントが低電力状態にある、ことを行う電力管理ユニットと、を有するシステム。
例15: 当該システムは更に、ソフトウェア低電力状態が達成されていないことを指し示すメッセージを前記電力管理ユニットに送るためのオペレーティングシステム命令を有する、例14のシステム。
例16: 当該システムは更に、前記第1プロセスの前記失敗の原因を解決するための1つ以上の処理を特定するためのオペレーティングシステム命令を有する、例14のシステム。
例17: 前記第1プロセスの前記失敗の前記原因を解決するための前記1つ以上の処理は、ソフトウェアスタック又はソフトウェアドライバを無効にすることを含む、例16のシステム。
例18: 当該システムは更に、前記第1プロセスの前記失敗の前記原因を解決するための処理を実行するためのオペレーティングシステム命令、を有し、前記電力管理ユニットは、前記失敗の前記原因を解決するための前記処理を前記オペレーティングシステムが実行することをカウントし、該カウントが前記失敗の前記原因を解決するための最大試行回数を超えているかを判定する、例16のシステム。
例19: 前記第1動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースS0ix状態を含む、例14のシステム。
例20: 前記第2動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースS4状態を含む、例14のシステム。
技術開示の性質及び骨子を読者が確認することを可能にする要約が提供される。要約は、請求項の範囲又は意味を限定するために使用されることにならないという理解の下で提出される。以下の特許請求の範囲は詳細な説明に組み込まれ、各請求項が別個の実施形態として自立したものとなる。

Claims (23)

  1. オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置き、前記コンピュータ装置の揮発性メモリに状態情報を格納し、当該第1プロセスを実行するためのタイムアウト期間にわたるタイマを始動させる第1回路であり、前記第1動作モードにおいて、前記コンピュータ装置の第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能である、第1回路と、
    前記タイムアウト期間の満了後に、前記第1プロセスの失敗を検出する第2回路と、
    前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、前記コンピュータ装置を第2動作モードに置き、前記コンピュータ装置の不揮発性メモリに状態情報を格納する第3回路であり、前記第2動作モードにおいて、前記揮発性メモリは低電力状態にある、第3回路と、
    を有する装置。
  2. 前記第1メッセージは、前記コンピュータ装置を前記第1動作モードに置き、前記第1プロセスを実行するための前記タイムアウト期間にわたる前記タイマを始動させるための命令を含む、請求項1に記載の装置。
  3. 当該装置は、ソフトウェア低電力状態が達成されていないことを指し示す第2メッセージを電力管理ユニットに送るためのオペレーティングシステム命令を含む、請求項1に記載の装置。
  4. 当該装置は更に、
    前記第1プロセスの前記失敗の原因を決定する第4回路、
    を有する、請求項1に記載の装置。
  5. 前記電力管理ユニットは、前記第1プロセスの前記失敗を指し示す第3メッセージを前記オペレーティングシステムに送信する、請求項4に記載の装置。
  6. 当該装置は、前記第1プロセスの前記失敗の前記原因を解決するための1つ以上の処理を特定するためのオペレーティングシステム命令を含み、前記1つ以上の処理の前記特定は、前記第1プロセスの前記失敗について決定された前記原因に基づく、請求項5に記載の装置。
  7. 前記オペレーティングシステム命令は更に、前記第1プロセスの前記失敗の原因を解決するための処理を実行するためのオペレーティングシステム命令を含み、
    当該装置は更に、前記失敗の前記原因を解決するための前記処理を前記オペレーティングシステムが実行することをカウントし、該カウントが前記失敗の前記原因を解決するための最大試行回数を超えているかを判定する第5回路、を有する、
    請求項1乃至4のいずれかに記載の装置。
  8. 前記電力管理ユニットは、
    前記カウントが前記失敗の前記原因を解決するための前記最大試行回数を超えたことに応答して、前記第1プロセスを停止させ、
    前記第2プロセスを開始して前記コンピュータ装置を前記第2動作モードに置くように前記オペレーティングシステムに命令するメッセージを、前記オペレーティングシステムに送信する、
    電力管理ユニット、
    を有する、請求項7に記載の装置。
  9. 前記第1動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースModern Standby状態を含む、請求項1乃至4のいずれかに記載の装置。
  10. 前記第2動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースHibernate状態を含む、請求項1乃至4のいずれかに記載の装置。
  11. 前記状態情報は、オペレーティングシステム状態情報、アプリケーションソフトウェア状態情報、及びプロセッサ状態情報のうちの少なくとも1つを含む、請求項1乃至4のいずれかに記載の装置。
  12. オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置く第1回路であり、前記第1動作モードにおいて、前記コンピュータ装置の第1コンポーネントが低電力状態にあり且つ揮発性メモリは動作可能である、第1回路と、
    前記オペレーティングシステムからの、ソフトウェア低電力状態が達成されていないことを指し示す第2メッセージを受信し、タイムアウト期間の満了後に、前記第1プロセスの失敗を検出する第2回路と、
    前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、前記コンピュータ装置を第2動作モードに置き、前記コンピュータ装置の不揮発性メモリに状態情報を格納する第3回路であり、前記第2動作モードにおいて、前記揮発性メモリは低電力状態にある、第3回路と、
    を有する装置。
  13. 前記第1動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースModern Standby状態を含み、前記第2動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースHibernate状態を含む、請求項12に記載の装置。
  14. システムであって、
    オペレーティングシステムを実行するためのプロセッサ及びメモリと、
    前記プロセッサに結合されたディスプレイ装置であり、当該ディスプレイ装置に通信された信号に基づいて画像を表示するディスプレイ装置と、
    前記プロセッサ及びメモリに結合された電力管理ユニットであり、
    第1プロセスを実行して、当該システムを第1動作モードに置き、揮発性メモリに状態情報を格納し、前記第1動作モードにおいて、当該システムの第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能であり、
    前記第1プロセスの失敗を検出し、
    前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、当該システムを第2動作モードに置き、不揮発性メモリに状態情報を格納し、前記第2動作モードにおいて、当該システムの第2コンポーネントが低電力状態にある、
    ことを行う電力管理ユニットと、
    を有するシステム。
  15. 当該システムは更に、ソフトウェア低電力状態が達成されていないことを指し示すメッセージを前記電力管理ユニットに送るためのオペレーティングシステム命令を有する、請求項14に記載のシステム。
  16. 当該システムは更に、前記第1プロセスの前記失敗の原因を解決するための1つ以上の処理を特定するためのオペレーティングシステム命令を有する、請求項14に記載のシステム。
  17. 前記第1プロセスの前記失敗の前記原因を解決するための前記1つ以上の処理は、ソフトウェアスタック又はソフトウェアドライバを無効にすることを含む、請求項16に記載のシステム。
  18. 当該システムは更に、
    前記第1プロセスの前記失敗の前記原因を解決するための処理を実行するためのオペレーティングシステム命令、
    を有し、
    前記電力管理ユニットは、前記失敗の前記原因を解決するための前記処理を前記オペレーティングシステムが実行することをカウントし、該カウントが前記失敗の前記原因を解決するための最大試行回数を超えているかを判定する、
    請求項16に記載のシステム。
  19. 前記第1動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースS0ix状態を含む、請求項17に記載のシステム。
  20. 前記第2動作モードは、アドバンスト・コンフィグレーション・アンド・パワー・インタフェースS4状態を含む、請求項17に記載のシステム。
  21. オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置き、前記コンピュータ装置の揮発性メモリに状態情報を格納し、当該第1プロセスを実行するためのタイムアウト期間にわたるタイマを始動させ、前記第1動作モードにおいて、前記コンピュータ装置の第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能であり、
    前記タイムアウト期間の満了後に、前記第1プロセスの失敗を検出し、
    前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、前記コンピュータ装置を第2動作モードに置き、前記コンピュータ装置の不揮発性メモリに状態情報を格納し、前記第2動作モードにおいて、前記揮発性メモリは低電力状態にある、
    ことを有する方法。
  22. 請求項21に記載の方法をプロセッサに実行させるコンピュータプログラム。
  23. 機械読み取り可能命令を格納した機械読み取り可能記憶媒体であって、前記機械読み取り可能命令は、実行されるときに、1つ以上の機械に方法を実行させ、該方法は、
    オペレーティングシステムからの第1メッセージに応答して第1プロセスを実行して、コンピュータ装置を第1動作モードに置き、前記コンピュータ装置の揮発性メモリに状態情報を格納し、当該第1プロセスを実行するためのタイムアウト期間にわたるタイマを始動させ、前記第1動作モードにおいて、前記コンピュータ装置の第1コンポーネントが低電力状態にあり且つ前記揮発性メモリは動作可能であり、
    前記タイムアウト期間の満了後に、前記第1プロセスの失敗を検出し、
    前記検出された前記第1プロセスの失敗に応答して第2プロセスを実行して、前記コンピュータ装置を第2動作モードに置き、前記コンピュータ装置の不揮発性メモリに状態情報を格納し、前記第2動作モードにおいて、前記揮発性メモリは低電力状態にある、
    ことを有する、機械読み取り可能記憶媒体。
JP2022129147A 2021-09-24 2022-08-15 決定論的省電力状態を達成するための装置及び方法 Pending JP2023047293A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/484,335 2021-09-24
US17/484,335 US20220011842A1 (en) 2021-09-24 2021-09-24 Apparatus and method for achieving deterministic power saving state

Publications (1)

Publication Number Publication Date
JP2023047293A true JP2023047293A (ja) 2023-04-05

Family

ID=79173603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022129147A Pending JP2023047293A (ja) 2021-09-24 2022-08-15 決定論的省電力状態を達成するための装置及び方法

Country Status (3)

Country Link
US (1) US20220011842A1 (ja)
EP (1) EP4155871A1 (ja)
JP (1) JP2023047293A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7562807B1 (ja) 2023-10-30 2024-10-07 レノボ・シンガポール・プライベート・リミテッド 情報処理装置および制御方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789875B1 (en) * 2022-05-04 2023-10-17 Benvinda Spinola Computer sleep mode prevention device
TW202409790A (zh) * 2022-08-24 2024-03-01 宏碁股份有限公司 作業系統睡眠狀態異常之處理裝置及其處理方法
US11972267B2 (en) 2022-10-04 2024-04-30 International Business Machines Corporation Hibernation of computing device with faulty batteries

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112011105700T5 (de) * 2011-10-01 2014-07-17 Intel Corporation Schneller Ruhezustand- und schnelle Wiederinbetriebnahme für eine Plattform von Computersystem
US10739843B2 (en) * 2018-02-21 2020-08-11 Dell Products L.P. System and method of monitoring device states

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7562807B1 (ja) 2023-10-30 2024-10-07 レノボ・シンガポール・プライベート・リミテッド 情報処理装置および制御方法

Also Published As

Publication number Publication date
US20220011842A1 (en) 2022-01-13
EP4155871A1 (en) 2023-03-29

Similar Documents

Publication Publication Date Title
JP2023047293A (ja) 決定論的省電力状態を達成するための装置及び方法
US8977880B2 (en) Method for managing power supply of multi-core processor system involves powering off main and slave cores when master bus is in idle state
US10642338B2 (en) Hierarchical power management unit for low power and low duty cycle devices
US11762450B2 (en) USB Type-C subsystem power management
US11842202B2 (en) Apparatus and method for dynamic selection of an optimal processor core for power-up and/or sleep modes
US11940855B2 (en) Apparatus and method for dynamic reallocation of processor power by throttling processor to allow an external device to operate
KR20120030763A (ko) 계층적 전력 제어 회로, 이를 이용한 전력 제어 방법, 및 이를 포함하는 SoC 장치
US12007823B2 (en) Power management of a processor and a platform in active state and low power state
JP2022036904A (ja) エネルギー効率の良いコア電圧選択装置及び方法
US11275663B2 (en) Fast dynamic capacitance, frequency, and/or voltage throttling apparatus and method
US20210208668A1 (en) Apparatus and method to reduce standby power for systems in battery mode with a connected bus powered device
US20220187893A1 (en) Dynamic energy performance preference based on workloads using an adaptive algorithm
US20220197367A1 (en) Hardware and software coordinated cost-aware low power state selection
US11954501B2 (en) Apparatus and method for restoring a password-protected endpoint device to an operational state from a low power state
US11933843B2 (en) Techniques to enable integrated circuit debug across low power states
EP4020126A1 (en) Secure device power-up apparatus and method
US20220197364A1 (en) Power management for universal serial bus (usb) type-c port
US11500444B2 (en) Intelligent prediction of processor idle time apparatus and method
US20230096154A1 (en) Apparatus and method for isolating and discharging a battery