JP2021177367A - プロセッサアイドル時間のインテリジェント予測装置及び方法 - Google Patents

プロセッサアイドル時間のインテリジェント予測装置及び方法 Download PDF

Info

Publication number
JP2021177367A
JP2021177367A JP2020204098A JP2020204098A JP2021177367A JP 2021177367 A JP2021177367 A JP 2021177367A JP 2020204098 A JP2020204098 A JP 2020204098A JP 2020204098 A JP2020204098 A JP 2020204098A JP 2021177367 A JP2021177367 A JP 2021177367A
Authority
JP
Japan
Prior art keywords
state
power
power state
machine learning
hwm
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
JP2020204098A
Other languages
English (en)
Inventor
アクラバウィ レオ
Aqrabawi Leo
エス. クオ チャー‐ハン
S Kuo Chia-Hung
ジー. ハーマーディン ザ セカンド ジェームス
G Hermerding Ii James
サカーダ プレマナンド
Sakarda Premanand
アーバブ ビジャン
Arbab Bijan
シルヴェスター ケラン
Silvester Kelan
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 JP2021177367A publication Critical patent/JP2021177367A/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/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
    • 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
    • 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/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • 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
    • 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/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】 プロセッサアイドル時間のインテリジェント予測装置及び方法を提供する。【解決手段】 例えばモダンコネクトスタンバイ(ModCS)などの低電力状態に入るユーザ習慣、時刻及び/又はシステムテレメトリーに依存した継続時間を学習するソフトウェアドライバスタックを機械学習(ML)スキームが走らせる。当該MLは、電力エージェントへのヒントとして、ダーティキャッシュライン(DL)のハイウォーターマーク(HWM)数を与える。電力エージェントアルゴリズムが、これらのヒント及びシステムの実際のDL数を用いて、コンピューティングシステムに関する低電力状態エントリー決定(例えば、S0i4対S0i3でのエントリー決定など)を通知する。【選択図】 図2

Description

例えばS0i4などの低電力状態(例えば、2レベルメモリ構成でのダイナミックランダムアクセスメモリ(DRAM)オフ状態)にプロセッサが入るための決定を最適化することは、それらの低電力状態に入ることのコスト(エントリーコスト)及び/又は始めなおすことのコスト(リスタートコスト)をいっそう高くする。損益分岐点は、分のオーダーとなり得る。S0i4に入るのが遅れること、又は誤って入ること(数分以内に出ることを伴う)は、エネルギー及びバッテリー寿命の浪費をもたらし、それがユーザのバッテリー寿命時間(Hours of Battery Life;HoBL)体験に影響を及ぼし得る。
開示の実施形態は、以下に与えられる詳細な説明から、及び開示の様々な実施形態の添付図面から、より十分に理解されることになるが、それらは、開示を特定の実施形態に限定するように解釈されるべきではなく、単に説明及び理解のためのものである。
一部の実施形態に従った、深いスリープ状態に関連するエントリーエネルギーコストを低減させるためにアイドル時間をインテリジェント予測するように動作可能なハイレベルコンピューティングアーキテクチャを例示している。 一部の実施形態に従った、エントリーエネルギーコストを低減させるためにアイドル時間をインテリジェント予測するアーキテクチャのフローチャートを例示している。 一部の実施形態に従った、機械学習アルゴリズムを訓練することによってアイドル時間をインテリジェント予測する方法を例示している。 一部の実施形態に従った、推論を用いることによってアイドル時間をインテリジェント予測する方法を例示している。 様々な実施形態に従った、エントリーエネルギーコストを低減させるためにアイドル時間をインテリジェント予測する装置及び/又はソフトウェアを有するスマート機器又はコンピュータシステム又はSoC(システム・オン・チップ)を例示している。
電力エージェントアルゴリズム(例えば、電力制御ユニット(PCU)上で実行されるpCodeファームウェア)によって制御されるメモリサブシステムの電力ポリシーは、プロセッサのユーザがモダンコネクトスタンバイ(Modern Connect Standby;ModCS)に留まることになるか、又はユーザがすぐ後にプロセッサを起こすことを計画したかを推測するために、万能サイズの決定を構築するために、発見的手法を使用して汎用的な決定を構築し得る。この場合、電力エージェントアルゴリズムは、履歴を将来の指標としてみなす。モダンスタンバイ又はModCSは、Windows(登録商標)8.1のコネクテッドスタンバイ(Connected Standby)の拡張である。ModCSは単なる一例であり、様々な実施形態は他の低電力アイドル機構に適用可能である。
電力エージェントアルゴリズムは、プロセッサのユーザが十分長い間ModCSにいたときにそれを検出し、システムキャッシュ内のダーティキャッシュラインの数に基づいて、エントリーコストがもっともなものであるかを決定する。システムキャッシュの例は、1レベルメモリ(1LM)モード構成における最終レベル(LL)キャッシュ、又は2レベルメモリ(2LM)モード構成におけるDRAMキャッシュを含む。
しかしながら、上で説明した電力エージェントアルゴリズムは、個々のユーザの個人の又は行動のパターンに基づいて予測して決定を微調整することができず、故に、プロセッサのユーザに対するエントリー決定を微調整することができない。これは、誤ったエントリーや機会損失のケースを生じさせる。また、その電力エージェントアルゴリズムは、S0i3又はS0i4状態に入ることを決定する前にしばらくの間PC10電力状態に留まることをプロセッサに要求し得る。電力エージェントアルゴリズムがS0i3状態の後にS0i4状態に入ることを決定する一部のケースにおいて、この決定は、予測的なS0i4状態エントリーがいっそう低い電力状態でいっそう長い時間を可能にしたであろうときにS0i3状態で費やされた時間の無駄なエネルギーと、S0i3状態を出て(イグジットして)S0i4状態に入りなおす際の更なる無駄なエネルギーと生じさせる。S0ix状態を参照して実施形態を説明するが、実施形態は、例えば2019年1月にリリースされたバージョン6.3にて具現化されたACPI(Advanced Configuration and Power Interface)仕様を参照して説明されるものなど、他の低電力状態にも適用可能である。
ここでは、S0ix状態は、‘x’は数字であるとして、Intel(登録商標)SoC(システム・オン・チップ)アイドルスタンバイ電力状態にあることを表す。S0ix状態は、使用されていないときにSoCの一部を止める。例えば、S0i4は、ダイナミックランダムアクセスメモリ(DRAM)を2レベルメモリ構成でオフ状態にする。S0i4は、S0i3と比較して深いスリープ状態である。S0ix状態は、SoC内の特定の条件が達成されるとトリガーされる。例えば、コンピューティングシステムの特定のコンポーネントが低電力状態にあるとき、SoCは、特定のより深い電力状態に入ることを決定し得る。最も深い電力状態(例えば、S0i4)において、SoCは最小量の電力を消費する。
一部の実施形態は、例えばModCSなどの低電力状態に入ることのユーザ習慣、並びに時刻及びシステムテレメトリー(遠隔測定)に応じた継続時間を学習するために、ソフトウェアドライバスタック(例えば、MLベースのダイナミックプラットフォームサーマルフレームワークドライバすなわちDPTF−MLドライバなどの)にて走るいっそう高レベルの機械学習(ML)を使用する。MLは、電力エージェントへのヒントとしてダーティキャッシュラインのハイウォーターマーク(High Water Mark;HWM)数を与える。様々な実施形態の電力エージェントアルゴリズムは、これらのヒント及びシステムの実際のダーティキャッシュライン数を用いて、例えばS0i4対S0i3でのエントリー決定などの低電力状態エントリー決定を通知する。
様々な実施形態の数多くの技術的効果が存在する。例えば、電力エージェントアルゴリズム又はスキームは、例えばModCSスタンバイ状態などの低電力状態の間に顧客に対してかなりのバッテリー寿命節約を生み出す。様々な実施形態の電力エージェントアルゴリズム又はスキームは、コンピューティングプラットフォームコストの低減を可能にする。何故なら、当該スキームは、コンピューティングプラットフォームが、より安価なDRAMデュアルインラインメモリモジュール(DIMM)を用いて、より高価な低電力ダブルデータレート(LPDDR)DIMMでできるものよりも、さらに低い又はより深い電力状態(例えば、ModCS電力状態)を使用することを可能にするからである。様々な実施形態及び図から、他の技術的効果が明らかになる。
以下の説明では、本開示の実施形態のより完全なる説明を提供するために、多数の詳細事項を説明する。しかしながら、当業者に明らかになることには、本開示の実施形態は、これらの特定の詳細事項なしで実施されることができる。また、本開示の実施形態を不明瞭にしてしまうことを回避するために、周知の構造及びデバイスは、詳細にではなくブロック図の形態で示す。
なお、実施形態の対応する図面では、信号を線で表されている。一部の線は、より構成要素である信号経路を指し示すために太めにされることがあり、且つ/或いは情報の主な流れ方向を指し示すために一端又は両端に矢印を有することがある。このようなインジケーションは、限定することを意図したものではない。むしろ、それらの線は、1つ以上の例示的な実施形態に関連して、回路又は論理ユニットの容易な理解を支援するために使用される。表される信号は、設計のニーズ又は嗜好によって決められ、実際には、何れかの方向に進行し得る1つ以上の信号を有し得るとともに、任意の好適タイプの信号スキームで実装され得る。
明細書全体を通して、及び特許請求の範囲において、用語“接続され”は、中間デバイスなしでの、接続された物の間の例えば電気的、機械的又は磁気的な接続などの直接的な接続を意味する。
用語“結合され”は、例えば、接続された物の間の例えば直接的な電気的、機械的、若しくは磁気的な接続、又は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などといった他のトランジスタも使用され得る。
図1は、一部の実施形態に従った、深いスリープ状態に関連するエントリーエネルギーコストを低減させるためにアイドル時間をインテリジェント予測するように動作可能なハイレベルコンピューティングアーキテクチャ100を例示している。アーキテクチャ100は、図5のシステム・オン・チップ(SoC)の簡略化したバージョンである。一部の実施形態において、アーキテクチャ100は、SoC101、カーネル102(例えば、オペレーティングシステム)、アプリケーション103、ソフトウェアドライバ104、及び外部メモリ105を有する。SoC101は、例えばプロセッサコア、電圧レギュレータ(VR)、キャッシュなどの多数のIP(intellectual property)ブロックを含み得る。一部の実施形態において、SoC101は、コード101b(ここではpCodeとして参照する)を実行してSoC101及びアーキテクチャ100の電力を管理する電力管理ロジック101aを含む。SoC101はまた、メモリ101cを含み得る。メモリ101cは、第1、第2、第3、及び/又は最後レベルのキャッシュとし得る。一部の実施形態において、メモリ101cは、キャッシュメモリではなく、データを格納するためのキャッシュよりも大きいストレージである。プロセッサコアは、例えば(1つ以上の)キャッシュ内でデータが見つからない場合に、メモリ101cにアクセスしてもよい。一部の実施形態において、SoC101は更に、例えばDIMMなどの外部メモリ105に結合される。
一部の実施形態において、ドライバ104は、パラメータの動的チューニング(例えば、アイドル時間の予測)のためにより高いMLスキームを実行するドライバのスタック(例えば、1つ以上のドライバ)を含む。MLスキームは、例えばModCSなどの低電力状態に入ることのユーザ習慣、並びに、時刻(TOD)、曜日(DOW)、カレンダービジー及びフリータイムスロット、及び他のシステムテレメトリーに依存する継続時間を学習する。MLは、どの電力状態(例えば、S0i3又はS0i4)を入るべきかを決定するための電力管理ユニット101aへのヒントとして、ダーティキャッシュラインのハイウォーターマーク(HWM)数を与える。電力管理ユニット101a(電力エージェントとしても参照する)は、例えばpCodeなどの所有者又はOEM(相手先商標製品製造会社)アクセス可能なソフトウェアコードを用いてアルゴリズムを実行し、これらのヒント及びシステムの実際のダーティキャッシュライン数を分析し、例えばS0i4対S0i3でのエントリー決定などの低電力状態エントリー決定を通知する。従って、アーキテクチャ100は、SoCの使用条件下でいっそう高い電力節減をもたらす電力状態に入る。例えば、テレメトリー情報に基づいて、MLスキームは、SoC101のアイドル継続時間を予測し、その継続時間に応じて、SoC101を、エネルギー節減の大部分をそのスリープモードから発出させるスリープモードに置く。従って、アーキテクチャ100は、S0i4状態へのエントリー、又は僅かな時間で出ることになる電力状態への誤ったエントリーを遅延させ得る。
図2は、一部の実施形態に従った、深いスリープ状態に関連するエントリーエネルギーコストを低減させるためにアイドル時間をインテリジェント予測するアーキテクチャのフローチャート200を例示している。フローチャート200は、ハードウェア、ソフトウェア、又はそれらの組み合わせとし得る機能ブロックを例示している。これらの様々なブロックが、順に、並列に、又は順不同に実行されて、特定の電力状態に入る決定を生成する。
一部の実施形態において、アイドル時間をインテリジェント予測するアーキテクチャは、動的チューニングのためのMLモデルを訓練するのに使用される機械学習(ML)スキームドライバ201と、推論のために使用されるMLスキームドライバ202と、システムテレメトリー情報203と、タイムスタンプカウンタ(TSC)204を格納するレジスタと、HWM205を格納するレジスタと、より低い状態についての決定を決めるpCode101bと、タグキャッシュ206と、ダーティライン207の数を格納するレジスタとを含む。一部の実施形態において、MLスキームドライバ201は、ソフトウェア、ハードウェア、又はそれらの組み合わせを有する。例えば、MLスキームドライバ201は、MLモデルを訓練し且つ訓練された重み(又は係数)及び入力(例えば、テレメトリー入力)に基づいて出力を生成する乗算器及び加算器を有し、又はそれらへのアクセスを持つ。一部の実施形態において、MLスキームドライバ201は、ロジスティック回帰、ランダムフォレスト、又はニューラルネットワークのうちの1つ以上を使用して機械学習を実行する。
一部の実施形態において、MLスキームドライバ202は、訓練された重みを仮定し、入力(例えば、テレメトリー情報)に基づいて出力(例えば、エントリーヒント)を推論する。この場合、ドライバ201によるMLモデルは既に訓練されている(例えば、重みが既に決定されている)ので、出力が遥かに速く生成される。一部の実施形態において、MLスキームドライバ202は、ソフトウェア、ハードウェア、又はそれらの組み合わせを有する。例えば、MLスキームドライバ202は、MLモデルを訓練し且つ訓練された重み(又は係数)及び入力(例えば、テレメトリー入力)に基づいて出力を生成する乗算器及び加算器を有し、又はそれらへのアクセスを持つ。
一部の実施形態において、システムテレメトリー203は、MLアルゴリズムを訓練するための命令及びメカニズムを有する。例えば、システムテレメトリー203は、MLドライバ201及び202の入力として使用される無数のユーザ挙動へのアクセスを持つ。一部の実施形態において、システムテレメトリー203は、訓練のために走るときにはいつも、ユーザModCSエントリー及び/又はイグジット履歴並びに状態内時間(time-in-state)(例えば、特定の電力状態で費やされた時間)を、MLアルゴリズムを訓練するためのスクラッチパッド空間(例えば、メモリ)に記録する。一部の実施形態において、状態内時間は、訓練フェーズにおいてフィードバックとして使用される予測変数である。一部の例において、状態内時間は、推論においては使用されないとし得る。一部の実施形態において、スクラッチパッド内の記録(ログ)は、ドライバ201によってML訓練アルゴリズムを開始するための(又はドライバ202によってML推論アルゴリズムを開始するための)トリガーとすることができるイベントである。訓練しているとき、所望の結果を達成するために重みが修正される。一部の実施形態において、システムテレメトリー203は、エントリー及び/又はイグジットの時点でのフォアグラウンドアプリケーションからのデータを使用することができる。一部の実施形態において、システムテレメトリー203は、ユーザカレンダーからのデータを使用することができる。例えば、フリー、ビジー、オフィス外の情報などを指し示すデータが、特定の時刻(TOD)や曜日(DOW)についてのユーザ行動を予測し、ひいては、特定の電力状態におけるスタンバイ時間の継続時間を予測する。テレメトリー情報は、上の例に限定されるものではない。MLスキームドライバ201/202がどの電力状態にいつ入るべきかを決定するのを支援するのに望ましい他の情報も使用されることができる。
一般に、MLアルゴリズムへの入力の数が多いため、伝統的なソフトウェア制御アルゴリズムは、過度に複雑且つエネルギーがかかる。MLアルゴリズムは、特定のユーザ習慣及び行動に対して時間とともに適応する。一部の実施形態において、MLアルゴリズムは、重みを訓練するためにロジスティック回帰、ランダムフォレスト、又はニューラルネットワークのうちの1つ以上を使用する。一部の実施形態において、MLアルゴリズム201/202は、リアルタイムで実行される。一部の実施形態において、MLアルゴリズム201/202は、リアルタイムではなく、イベントを受けて実行される。例えば、MLアルゴリズム201/202は、上記のテレメトリーイベントについての変化によってトリガーされてユーザのシステム上で実行される。他の一例において、MLアルゴリズム201/202は、ユーザのシステム上で頻繁には実行されず、その期間にわたって記録されたテレメトリーの履歴上で訓練を行う。一部の実施形態において、MLアルゴリズム201がModCSエントリーフローの部分として実行されてMLネットワークを更新し、次いで、MLアルゴリズム202による推論を実行する。一部の実施形態において、MLアルゴリズム201の訓練は、ユーザテレメトリーに基づいてクラウド(又はサーバ)にオフロードされる。
低電力ケース(例えばModCS)から出ると、一部の実施形態において、MLドライバ201が、タイムスタンプカウンタ(TSC)204を読み取り、状態内時間(TIS)情報をMLアルゴリズム201に供給する。TSC204は、x86プロセッサ内のレジスタ(例えば、64ビットレジスタ)である。TSC204は、FreeBSD上でのkern.timecounter.invariant_tsc又はLinux(登録商標)の/proc/cpuinfoのconstant_tscフラグを用いてアクセスされることができる。TSCは、ターボ状態又は電力節減状態による実際のCPUコアクロック周波数に関係なく、プロセッサ(例えば、SoC101のコア)の公称周波数で時を刻む。従って、TSC目盛りは、経過したCPUクロックサイクルの数ではなく、時間の経過をカウントしている。一部の実施形態において、TSC204に加えて、又はTSC204の代わりに、MLスキームドライバ201は、例えばQueryPerformanceCounter及びQueryPerformanceFrequencyなどのWindows(登録商標)APIを介して利用可能な、より高分解能なカウンタを使用する。
様々な実施形態において、MLスキームドライバ201は、予測誤差をMLアルゴリズム201にフィードバックするために、ダーティラインスクラッチパッド(例えば、メモリ領域)内のダーティライン数を読み取って、状態内時間情報、ウォーターマーク205、及び/又はDL数207に基づいてMLアルゴリズム201にフィードバックする。ダーティキャッシュラインは、一般に、メインメモリ101c又は104内のデータのコピーに対して変更されるキャッシュ内のデータを指す。キャッシュラインに対して、そのキャッシュラインのコンテンツが動作メモリ内に現在あるものとは異なることを指し示すダーティビットがアサートされる。ダーティライン(DL)数は、メインメモリ内の対応するデータと比較して変更されたデータを持つキャッシュラインの数を示す。
様々な実施形態において、ある電力状態に入ること(例えば、ModCSエントリー)を受けて、電力エージェント101a(又は好適なマイクロコントローラ)は、pCode101b(又は他のソフトウェア)を実行し、又はタグキャッシュ206からの現在のダーティラインをMLドライバ202によって確立されるHWM205と比較するハードウェア及び/又はソフトウェア機能を実行する。タグキャッシュ206は、要求されたメモリ位置である。データは、一般に、メモリ105とキャッシュとの間で転送される。データは、キャッシュライン又はキャッシュブロックと呼ばれる固定サイズのブロックにて転送される。キャッシュラインがメモリからキャッシュにコピーされると、キャッシュエントリーが作成される。キャッシュエントリーは、コピーされたデータと、要求されたメモリ位置(すなわち、タグキャッシュ206)とを含むことになる。
HWM205は、ドライバ201及び/又は202によってアクセス可能なレジスタに格納される。HWM205は、SoC101が特定の電力状態に入るべきかを決定づけるダーティキャッシュラインのカウント又は閾レベルを指し示す。MLスキーム201又は202が時間をかけて(例えば、1日を通して)走るとき、それはスクラッチパッドを最新のHWM205で更新し続けることになる。このHWM205閾値は、どの電力状態(例えば、S0i3又はSoi4)に入るべきかを予測するために、現在のダーティキャッシュライン数と定期的に比較される。
例えば、pCode101bが、HWM205をDRAM内のダーティラインの数と比較し、単純にS0i4に入ること又はS0i3に入ることの決定を構築する。例えば、DRAM内のダーティライン数がHWM205よりも多い場合、pCode101bは、それらのダーティラインをフラッシュするエントリーエネルギーコストを軽減するためにSoC101又はコンピューティングシステムをS0i3状態に置き、そうでない場合には、ModCSに関して予測される状態内時間が、入ることのエネルギーコストを埋め合わせるのに十分な長さであることが期待されるので、SoC101又はコンピューティングシステムをS0i4状態に置くことになる。HWM205と現在DL数とを比較した後、pCode101bは、TSC204及び/又はTISを格納するレジスタを更新する。TSC204は、後に、MLスキーム201に供給するためのTISの計算に使用される。一部の実施形態において、HWM205と現在DL数とを比較した後、pCode101bは、その決定をMLドライバ201に提供する。一部の実施形態において、pCode101bはまた、MLスキームドライバ201による将来の訓練/学習のために、ダーティDRAMライン数のカウントを更新する。
一部の実施形態において、電力状態から出ること(例えば、ModCSからのイグジット)を受けて、pCode101bは、タイムスタンプカウンタ204をスクラッチパッドレジスタに書き込んで状態内時間を計算し、MLアルゴリズム201に供給する。そして、MLアルゴリズム201が、タイムスタンプを使用して、将来のエントリーに関する状態内時間を予測する。
図3は、一部の実施形態に従った、機械学習アルゴリズムを訓練することによってアイドル時間をインテリジェント予測する方法300を例示している。ブロックが特定の順序で示されているが、順序は変更されることができる。例えば、一部のブロックは他のブロックと並行して実行され、一部は他の前に実行される。
ブロック301にて、システムテレメトリーロジック203が、例えばモダンスタンバイなどのスタンバイモードに入ることに応答して、ユーザ行動を予測するために、様々なソースからテレメトリー情報を集める。例えば、システムテレメトリーロジック203は、ある電力状態のエントリー及び/又はイグジットの時点でのフォアグラウンドアプリケーション、SoCのユーザがフリー、ビジー、オフィス外などである時を指し示すカレンダー情報、バッテリー情報(例えば、充電及び/又は放電パターン)、時刻、及び/又は曜日を特定する。テレメトリー情報は、ブロック302によって示されるように、機械学習モデルを訓練するためにMLドライバ201に提供される。一部の実施形態において、(以前の状態又は値と比較しての)テレメトリー情報における変化は、MLドライバ201にそのMLモデルの訓練を開始させるイベントである。MLモデルを訓練した後、システムはスタンバイモードを出る(例えば、モダンスタンバイモードを出る)。ブロック303にて、MLドライバはまた、そのMLモデルの訓練を実行するために(1つ以上の)TSCレジスタを読み取る。訓練された(例えば、重みが較正された後の)モデルの出力は、ブロック304によって示されるように、電力管理エージェント101aに提供されるHWMである。ブロック301、302、又は303は、訓練フェーズの部分である。
ブロック305にて、電力管理エージェント101aが、現在のダーティライン(キャッシュライン)数をHWMと比較する。ダーティライン(DL)数がHWMよりも大きい場合、電力管理エージェント101aは、SoC101又はコンピューティングシステムに、第2の電力状態と比較して深さが小さい電力状態である第1の電力状態に入らせる。このような決定を受けて、電力管理エージェントは、ブロック306によって示されるように、SoC101を第1の電力状態(例えば、S0i3などの浅い電力状態)に入らせる。ブロック307によって示されるように、SoC101又はコンピューティングシステムが第1の電力状態を出ると、MLドライバ201が、ブロック308によって示されるように、(1つ以上の)TSCレジスタを読み取ってTISレジスタを更新する。そして、このプロセスは、ブロック302によって示されるように、モデルを再訓練することに戻る。
ダーティライン(DL)数がHWMよりも小さい場合、電力管理エージェント101aは、SoC 101又はコンピューティングシステムに、第1の電力状態と比較してもっと深い電力状態である第2の電力状態に入らせる。このような決定を受けて、電力管理エージェント101aは、309によって示されるように、SoC101又はコンピューティングシステムに、第1の電力状態と比較して深い電力状態である第2の電力状態(例えば、S0i4)に入らせる。ブロック310によって示されるように、SoC101又はコンピューティングシステムが第2の電力状態を出ると、MLドライバ201は、ブロック311によって示されるように、(1つ以上の)TSCレジスタを読み取ってTISレジスタを更新する。そして、このプロセスは、ブロック302によって示されるように、モデルの再訓練することに戻る。
図4は、一部の実施形態に従った、推論を用いることによってアイドル時間をインテリジェント予測する方法400を例示している。方法400は、方法300と同様であるが、重みの訓練の代わりにブロック401による推論に関する。この場合、訓練のためのブロック302及び303が除かれる。推論フェーズでは、訓練された重みが、新たな又は更新されたテレメトリー情報とともにMLドライバ202によって使用されて、HWMが生成される。このプロセスは、図3の方法よりも高速である。何故なら、計算集約的な作業であるモデルの再訓練が行われないからである。
実施形態(例えば、フローチャート300、400、及び図1−4を参照して説明したスキーム)の要素はまた、コンピュータ実行可能命令(例えば、ここで説明される他のプロセスを実行するための命令)を格納する機械読み取り可能媒体(例えば、メモリ)としても提供される。一部の実施形態において、コンピューティングプラットフォームは、メモリ、プロセッサ、機械読み取り可能記憶媒体(有形の機械読み取り可能媒体としても参照される)、通信インタフェース(例えば、無線又は有線インタフェース)、及びそれらを結合するネットワークバスを有する。
一部の実施形態において、プロセッサは、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、汎用中央演算処理ユニット(CPU)、又はフローチャート200−400の方法及び/又は様々な実施形態を実行するように単純な有限状態マシンを実装する低電力ロジックである。
一部の実施形態において、システムの様々な論理ブロックは、ネットワークバスを介して共に結合される。ネットワークバスを実装するために、如何なる好適なプロトコルが使用されてもよい。一部の実施形態において、機械読み取り可能記憶媒体は、様々な実施形態及びフローチャートを参照して説明したようなプロセッサアイドル時間のインテリジェント予測のための命令(プログラムソフトウェアコード/命令としても参照される)を含む。
フローチャート200−400(及び/又は様々な実施形態)に関連した、開示に係る事項の実施形態を実装するために実行されるプログラムソフトウェアコード/命令は、オペレーティングシステムの一部として実装されてもよいし、あるいは、特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、ルーチン、若しくは他の命令シーケンスとして実装されてもよいし、あるいは、“プログラムソフトウェアコード/命令”、“オペレーティングシステムプログラムソフトウェアコード/命令”、“アプリケーションプログラムソフトウェアコード/命令”、又は単に“ソフトウェア”として参照される複数の命令シーケンスの編成として実装されてもよいし、あるいは、プロセッサに組み込まれたファームウェアとして実装されてもよい。一部の実施形態において、フローチャート200−400(及び/又は様々な実施形態)に関連するプログラムソフトウェアコード/命令は、コンピュータシステムによって実行される。
一部の実施形態において、フローチャート200−400(及び/又は様々な実施形態)に関連するプログラムソフトウェアコード/命令は、コンピュータ実行可能記憶媒体に格納され、プロセッサによって実行される。ここで、コンピュータ実行可能記憶媒体は、プログラムソフトウェアコード/命令及びデータを記憶するために使用されることができる有形の機械読み取り可能媒体であり、それらプログラムソフトウェアコード/命令は、コンピューティング装置によって実行されるときに、1つ以上のプロセッサに、開示に係る主題に向けられた1つ以上の添付の請求項に記載され得る(1つ以上の)方法を実行させる。
有形の機械読み取り可能媒体は、例えば、ROM、揮発性RAM、不揮発性メモリ及び/又はキャッシュ及び/又は本出願において参照されるような他の有形メモリを含め、様々な有形の位置での実行可能ソフトウェアプログラムコード/命令及びデータのストレージを含み得る。このプログラムソフトウェアコード/命令及び/又はデータの部分が、これらのストレージ及びメモリデバイスのうちのいずれかに格納され得る。また、プログラムソフトウェアコード/命令は、例えば、インターネットを含め集中サーバ又はピアツーピアネットワークを介してなどを含めて、他のストレージから取得されてもよい。ソフトウェアプログラムコード/命令及びデータの異なる部分が、異なる時点に異なる通信セッションで又は同じ通信セッションで取得され得る。
ソフトウェアプログラムコード/命令(フローチャート200−400及び他の実施形態に関連する)及びデータは、コンピューティング装置によるそれぞれのソフトウェアプログラム又はアプリケーションの実行に先立って、それらの全体にて取得されることができる。代わりに、ソフトウェアプログラムコード/命令及びデータの一部が、実行のために必要なときに、例えばジャストインタイムで、動的に取得されてもよい。代わりに、ソフトウェアプログラムコード/命令及びデータを取得するこれらの手法の何らかの組み合わせが、例えば、例として異なるアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、ルーチン、若しくは他の命令シーケンス、又は複数の命令シーケンスの編成に対して行われてもよい。従って、データ及び命令が、特定の時点に全体にて、有形の機械読み取り可能媒体上にあることは必要でない。
有形のコンピュータ読み取り可能媒体の例は、以下に限られないが、とりわけ、例えば揮発性及び不揮発性のメモリデバイス、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリデバイス、磁気ランダムアクセスメモリ、強誘電体メモリ、フロッピー(登録商標)及び他のリムーバブルディスク、磁気記憶媒体、光記憶媒体(例えば、コンパクトディスク読み出し専用メモリ(CD ROM)、デジタル多用途ディスク(DVD)など)などの、記録可能タイプ及び非記録可能タイプの媒体を含む。ソフトウェアプログラムコード/命令は、デジタルの有体の通信リンクに一時的に格納されながら、そのような有形の通信リンクを通じて、例えば搬送波、赤外線信号、デジタル信号などの、電気的、光学的、音響的、又は他の形態の伝搬信号を実装し得る。
一般に、有形の機械読み取り可能媒体は、例えば、iPhone(登録商標)、Galaxy(登録商標)、Blackberry(登録商標)、Droid(登録商標)、若しくはこれらに類するもの、又はコンピューティングデバイスを含んだその他の装置といった、通信ネットワークからアプリケーション及び補助アプリケーションをダウンロード及び実行することができるかにかかわらず、通信装置、コンピューティング装置、ネットワーク装置、携帯情報端末、製造ツール、モバイル通信装置に含まれ得るものであるマシン(例えば、コンピューティングデバイス)によってアクセス可能な形態で情報を提供する(すなわち、例えばデータパケットといったデジタル形態で格納及び/又は伝送する)何らかの有形のメカニズムを含む。一実施形態において、プロセッサベースのシステムは、PDA(携帯情報端末)、携帯電話、ノートブックコンピュータ、タブレット、ゲームコンソール、セットトップボックス、埋め込みシステム、TV(テレビジョン)、パーソナルデスクトップコンピュータなどの形態にあり、又はその中に含められる。あるいは、伝統的な通信アプリケーション及び(1つ以上の)補助アプリケーションが、開示に係る事項の一部の実施形態で使用されてもよい。
図5は、様々な実施形態に従った、深いスリープ状態に関連するエントリーエネルギーコストを低減させるためにアイドル時間をインテリジェント予測する装置及び/又はソフトウェアを有するスマート機器又はコンピュータシステム又はSoC(システム・オン・チップ)を例示している。指摘しておくことには、他の図の要素と同じ参照符号(又は名称)を持つ図5の要素は、記載されたものと同様にして動作又は機能することができるが、そのように限定されるものではない。様々な実施形態は、電力管理ユニット101aによって実行されるように示されるが、コンピュータシステムの電力状態を制御することができるここに記載のブロックのいずれかが、深いスリープ状態に関連するエントリーエネルギーコストを低減させるためにアイドル時間をインテリジェント予測する装置及び/又はソフトウェアを持つことができる。例えば、PCU2410a、PCU2410b、及び/又はPMIC2412が、電力エージェント101aの機能を実行することができる。
一部の実施形態において、装置2400は、例えばコンピューティングタブレット、携帯電話若しくはスマートフォン、ラップトップ、デスクトップ、モノのインターネット(IOT)装置、サーバ、ウェアラブル装置、セットトップボックス、ワイヤレス対応電子書籍リーダ、又はこれらに類するものなどの、適切なコンピューティング装置を表す。理解されることには、特定の構成要素が概略的に示されており、そのような装置の全てのコンポーネントが装置2400に示されているわけではない。
一例において、装置2400は、SoC(システム・オン・チップ)2401を有する。SoC2401の境界の一例が図5に点線を用いて示され、一部のコンポーネントの例がSoC2401の中に含められるように示されているが、SoC2401は、装置2400の任意の適切なコンポーネントを含み得る。
一部の実施形態において、装置2400はプロセッサ2404を含む。プロセッサ2404は、例えばマイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、プロセッシングコア、又は他のプロセッシング手段などの、1つ以上の物理デバイスを含むことができる。プロセッサ2404によって実行される処理動作は、その上でアプリケーション及び/又は装置機能が実行されるオペレーティングプラットフォーム又はオペレーティングシステムの実行を含む。それら処理動作は、人間ユーザ若しくは他の装置とのI/O(入力/出力)に関係する動作、電力管理に関係する動作、コンピューティング装置2400を他の装置に接続することに関係する動作、及び/又はこれらに類するものを含む。それら処理動作はまた、オーディオI/O及び/又はディスプレイI/Oに関係する動作を含み得る。
一部の実施形態において、プロセッサ2404は、複数のプロセッシングコア(コアとしても参照される)2408a、2408b、2408cを含む。図5には、単に3つのコア2408a、2408b、2408cが示されるが、プロセッサ2404は、例えば何十個の又は何百個ものプロセッシングコアといった、任意の他の好適数のプロセッシングコアを含み得る。プロセッサコア2408a、2408b、2408cは、単一の集積回路(IC)チップ上に実装され得る。さらに、そのチップは、1つ以上の共有キャッシュ及び/又はプライベートキャッシュ、バス又は相互接続、グラフィックスコントローラ及び/又はメモリコントローラ、又は他のコンポーネントを含んでもよい。
一部の実施形態において、プロセッサ2404はキャッシュ2406を含む。一例において、キャッシュ2406のセクションは、個々のコア2408に専用とされ得る(例えば、キャッシュ2406の第1のセクションがコア2408aに専用であり、キャッシュ2406の第2のセクションがコア2408bに専用であり、等々)。一例において、キャッシュ2406の1つ以上のセクションが、コア2408のうちの2つ以上の間で共有されてもよい。キャッシュ2406は、例えばレベル1(L1)キャッシュ、レベル2(L2)キャッシュ、レベル3(L3)キャッシュなどといった異なる階層に分割されてもよい。
一部の実施形態において、プロセッサコア2404は、コア2404による実行のために命令(条件付き分岐を有する命令を含む)をフェッチするフェッチユニットを含み得る。命令は、例えばメモリ2430などの任意の記憶装置からフェッチされ得る。プロセッサコア2404はまた、フェッチした命令を復号するデコードユニットを含み得る。例えば、デコードユニットは、フェッチされた命令を複数のマイクロオペレーションへと復号し得る。プロセッサコア2404は、デコードした命令を格納することに伴う様々な動作を実行するスケジュールユニットを含み得る。例えば、スケジュールユニットは、命令がディスパッチの準備が整うまで(例えば、復号された命令の全てのソース値が利用可能になるまで)、デコードユニットからのデータを保持し得る。一実施形態において、スケジュールユニットは、復号された命令を、実行のために、スケジュールし及び/又は実行ユニットに発行(又はディスパッチ)し得る。
実行ユニットは、(例えばデコードユニットによって)復号され且つ(例えばスケジュールユニットによって)ディスパッチされた後のディスパッチされた命令を実行し得る。一実施形態において、実行ユニットは、2つ以上の実行ユニット(例えば、撮像計算ユニット、グラフィックス計算ユニット、汎用計算ユニットなど)を含み得る。実行ユニットはまた、例えば加算、減算、乗算、及び/又は除算などの種々の算術演算を実行し得るとともに、1つ以上の算術論理ユニット(ALU)を含み得る。一実施形態において、実行ユニットと共にコプロセッサ(図示せず)が種々の算術演算を実行してもよい。
また、実行ユニットは、命令を順不同に命令してもよい。従って、プロセッサコア2404は、一実施形態において、アウトオブオーダープロセッサコアであってもよい。プロセッサコア2404はまた、回収(リタイアメント)ユニットを含み得る。回収ユニットは、実行された命令を、それらがコミットされた後に回収し得る。一実施形態において、実行された命令の回収は、プロセッサ状態が命令の実行からコミットされることや、命令によって使用された物理レジスタが割り当て解除されることなどをもたらし得る。プロセッサコア2404はまた、プロセッサコア2404のコンポーネントと他のコンポーネントとの間での1つ以上のバスを介した通信を可能にするバスユニットを含み得る。プロセッサコア2404はまた、コア2404の様々なコンポーネントによってアクセスされるデータ(例えば、割り当てられたアプリケーションプライオリティ及び/又はサブシステム状態(モード)アソシエーションに関係する値など)を格納する1つ以上のレジスタを含み得る。
一部の実施形態において、装置2400は接続回路2431を含む。例えば、接続回路2431は、ハードウェアデバイス(例えば、無線及び/又は有線コネクタと通信ハードウェア)及び/又はソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含み、例えば、装置2400が外部デバイスと通信することを可能にする。装置2400は、例えば他のコンピューティング装置、無線アクセスポイント又は基地局などの外部装置から隔てられ得る。
一例において、接続回路2431は、複数の異なるタイプの接続を含み得る。一般化するに、接続回路2431は、セルラー接続回路、無線接続回路などを含んでもよい。接続回路2431のセルラー接続回路は、一般に、例えばGSM(global system for mobile communications)又はそのバリエーション若しくは派生物、CDMA(符号分割多重アクセス)又はそのバリエーション若しくは派生物、TDM(時分割多重化)又はそのバリエーション若しくは派生物、第3世代パートナーシッププロジェクト(3GPP)UMTS(Universal Mobile Telecommunications Systems)システム又はそのバリエーション若しくは派生物、3GPPロングタームエボリューション(LTE)システム又はそのバリエーション若しくは派生物、3GPP LTEアドバンスト(LTE−A)システム又はそのバリエーション若しくは派生物、第5世代(5G)無線システム又はそのバリエーション若しくは派生物、5Gモバイルネットワークシステム又はそのバリエーション若しくは派生物、5G新無線(NR)システム又はそのバリエーション若しくは派生物、又は他のセルラーサービス標準を介して提供されるものなど、無線通信事業者によって提供されるセルラーネットワーク接続を指す。接続回路2431の無線接続回路(又は無線インタフェース)は、セルラーではない無線接続を指し、パーソナルエリアネットワーク(例えば、Bluetooth(登録商標)、ニアフィールドなど)、ローカルエリアネットワーク(例えば、Wi−Fiなど)、及び/又はワイドエリアネットワーク(例えば、WiMaxなど)、及び/又は他の無線通信を含むことができる。一例において、接続回路2431は、例えば、システム実施形態が例えば携帯電話又は携帯情報端末といったワイヤレス装置に組み込まれ得るように、例えば有線又は無線インタフェースなどのネットワークインタフェースを含み得る。
一部の実施形態において、装置2400は、1つ以上のI/O装置とのインタラクションに関係するハードウェアデバイス及び/又はソフトウェアコンポーネントを表すものであるコントロールハブ2432を含む。例えば、プロセッサ2404は、コントロールハブ2432を介して、ディスプレイ2422、1つ以上の周辺装置2424、ストレージ装置2428、1つ以上の他の外部装置2429などのうちの1つ以上と通信し得る。コントロールハブ2432は、チップセット、プラットフォームコントロールハブ(PCH)、及び/又はこれらに類するものとし得る。
例えば、コントロールハブ2432は、装置2400に接続する追加の装置のための1つ以上の接続ポイントを例示するものであり、例えば、それを通じて、ユーザがシステムとインタラクトし得る。例えば、装置2400に取り付けられることができる装置(例えば、装置2429)は、マイクロホン装置、スピーカ若しくはステレオシステム、オーディオ装置、ビデオシステム若しくは他の表示装置、キーボード若しくはキーパッド装置、又は例えばカードリーダ若しくは他の装置などの特定のアプリケーションで使用される他のI/O装置を含む。
上述のように、コントロールハブ2432は、オーディオ装置やディスプレイ2422などとインタラクトすることができる。例えば、マイクロホン又は他のオーディオ装置を介しての入力が、装置2400の1つ以上のアプリケーション又は機能のための入力又はコマンドを提供することができる。さらに、ディスプレイ出力に代えて、又は加えて、オーディオ出力を提供することができる。他の一例において、ディスプレイ2422がタッチスクリーンを含む場合、ディスプレイ2422は、少なくとも部分的にコントロールハブ2432によって管理され得るものである入力装置としても機能する。コンピューティング装置2400上にはまた、コントロールハブ2432によって管理されるI/O機能を提供するために更なるボタン又はスイッチも存在することができる。一実施形態において、コントロールハブ2432は、例えば加速度計、カメラ、光センサ若しくは他の環境センサなどのデバイス、又は装置2400に含められ得る他のハードウェアを管理する。入力は、直接的なユーザインタラクションの一部とすることができるとともに、システムに環境入力を提供して、その動作(例えば、ノイズのフィルタリング、輝度検出のためのディスプレイの調整、カメラのためのフラッシュの適用、又は他の機構)に影響を及ぼすことができる。
一部の実施形態において、コントロールハブ2432は、例えば、PCIe(ペリフェラルコンポーネントインターコネクトエクスプレス)、USB(ユニバーサルシリアルバス)、サンダーボルト、高精細マルチメディアインタフェース(HDMI(登録商標))、ファイヤワイヤなどといった、任意の適切な通信プロトコルを使用して様々なデバイスに結合し得る。
一部の実施形態において、ディスプレイ2422は、ユーザが装置2400とインタラクトするための視覚ディスプレイ及び/又は触覚ディスプレイを提供するハードウェア(例えば、ディスプレイ装置)及びソフトウェア(例えば、ドライバ)コンポーネントを表す。ディスプレイ2422は、ディスプレイインタフェース、ディスプレイスクリーン、及び/又はユーザに表示を提供するために使用されるハードウェア装置を含み得る。一部の実施形態において、ディスプレイ2422は、出力及び入力の両方をユーザに提供するタッチスクリーン(又はタッチパッド)装置を含む。一例において、ディスプレイ2422は、プロセッサ2404と直接的に通信し得る。ディスプレイ2422は、モバイルエレクトロニクス装置若しくはラップトップ装置においてのような内部ディスプレイ、又はディスプレイインタフェース(例えば、DisplayPortなど)を介して取り付けられる外付けディスプレイ装置のうちの一方以上とし得る。一実施形態において、ディスプレイ2422は、例えば仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用される立体表示装置などのヘッドマウントディスプレイ(HMD)であってもよい。
一部の実施形態において、図には示していないが、プロセッサ2404に加えて(又は代えて)、装置2400は、ディスプレイ2422上にコンテンツを表示することの1つ以上の態様を制御し得るものである1つ以上のグラフィックス処理コアを含むグラフィックス処理ユニット(GPU)を含んでいてもよい。
コントロールハブ2432(又はプラットフォームコントローラハブ)は、ハードウェアインタフェース及びコネクタと、例えば周辺装置2424への周辺接続を行うためのソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)とを含んでいてもよい。
理解されることには、装置2400は、他のコンピューティング装置に対する周辺装置であってもよく、また、それに接続された周辺装置を有してもよい。装置2400は、例えば装置2400上のコンテンツを管理する(例えば、ダウンロード及び/又はアップロードする、変更する、同期させる)などの目的のために、他のコンピューティング装置に接続するための“ドッキング”コネクタを有し得る。加えて、ドッキングコネクタは、例えばオーディオビジュアルシステム又は他のシステムへのコンテンツ出力をコンピューティング装置2400が制御することを可能にする特定の周辺機器に装置2400が接続することを可能にし得る。
専用ドッキングコネクタ又は他の専用接続ハードウェアに加えて、装置2400は、共通又は標準ベースのコネクタを介して周辺接続を行うことができる。共通のタイプは、ユニバーサルシリアルバス(USB)コネクタ(これは、多数の異なるハードウェアインタフェースのうちのいずれかを含み得る)、ミニディスプレイポート(MDP)、高精細マルチメディアインタフェース(HDMI)、ファイヤワイヤ、又は他のタイプを含み得る。
一部の実施形態において、接続回路2431は、例えば、プロセッサ2404に直接的に結合されることに加えて、又は代えて、コントロールハブ2432に結合されてもよい。一部の実施形態において、ディスプレイ2422は、例えば、プロセッサ2404に直接的に結合されることに加えて、又は代えて、コントロールハブ2432に結合されてもよい。
一部の実施形態において、装置2400は、メモリインタフェース2434を介してプロセッサ2404に結合されたメモリ2430を含む。メモリ2430は、装置2400内の情報を格納するためのメモリデバイスを含む。
一部の実施形態において、メモリ2430は、様々な実施形態を参照して説明したように、安定したクロック生成を維持管理するための装置を含む。メモリは、不揮発性(メモリデバイスへの電力が中断された場合に状態が変化しない)及び/又は揮発性(メモリデバイスへの電力が中断された場合に状態が不確定となる)メモリデバイスを含むことができる。メモリデバイス2430は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリデバイス、相変化メモリデバイス、又はプロセスメモリとして機能するのに適した性能を持つ何らかの他のメモリデバイスとし得る。一実施形態において、メモリ2430は、1つ以上のプロセッサ2404がアプリケーション又はプロセスを実行するときに使用されるデータ及び命令を格納するための、装置2400のシステムメモリとして動作することができる。メモリ2430は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、又は他のデータ、並びに、装置2400のアプリケーション及び機能の実行に関係するシステムデータ(長期であるか一時的であるかにかかわらず)を格納することができる。
様々な実施形態及び例の要素はまた、コンピュータ実行可能命令(例えば、ここで説明されるいずれか他のプロセスを実行するための命令)を格納する機械読み取り可能媒体(例えば、メモリ2430)として提供される。機械読み取り可能媒体(例えば、メモリ2430)は、以下に限られないが、フラッシュメモリ、光ディスク、CD−ROM、DVD ROM、RAM、EPROM、EEPROM、磁気カード若しくは光カード、相変化メモリ(PCM)、又は電子命令若しくはコンピュータ実行可能命令を格納するのに適した他のタイプの機械読み取り可能媒体を含み得る。例えば、開示の実施形態は、通信リンク(例えば、モデム又はネットワーク接続)を介してデータ信号によってリモートコンピュータ(例えば、サーバ)から要求元コンピュータ(例えば、クライアント)に転送され得るコンピュータプログラム(例えば、BIOS)としてダウンロードされ得る。
一部の実施形態において、装置2400は、例えば装置2400の種々のコンポーネントの温度を測定するための、温度測定回路2440を含む。一例において、温度測定回路2440は、その温度を測定及びモニタすべきである様々なコンポーネントに内蔵され、結合され、又は取り付けられ得る。例えば、温度測定回路2440は、コア2408a、2408b、2408c、電圧レギュレータ2414、メモリ2430、SOC2401のマザーボード、及び/又は装置2400の任意の適切なコンポーネント、のうちの1つ以上の温度(又はその中の温度)を測定し得る。
一部の実施形態において、装置2400は、例えば装置2400の1つ以上のコンポーネントによって消費される電力を測定するための、電力測定回路2442を含む。一例において、電力を測定することに加えて、又は代えて、電力測定回路2442は、電圧及び/又は電流を測定してもよい。一例において、電力測定回路2442は、その電力、電圧、及び/又は電流を測定及びモニタすべきである様々なコンポーネントに内蔵され、結合され、又は取り付けられ得る。例えば、電力測定回路2442は、1つ以上の電圧レギュレータ2414によって供給される電力、電流及び/又は電圧、SOC2401に供給される電力、装置2400に供給される電力、装置2400のプロセッサ2404(又は他のコンポーネント)によって消費される電力などを測定し得る。
一部の実施形態において、装置2400は、概して電圧レギュレータ(VR)2414として参照する1つ以上の電圧レギュレータ回路を含む。VR2414は、装置2400のいずれか適切なコンポーネントを動作させるために供給され得るものである適切な電圧レベルの信号を生成する。単なる一例として、VR2414は、装置2400のプロセッサ2404に信号を供給しているように図示されている。一部の実施形態において、VR2414は、1つ以上の電圧識別(Voltage Identification;VID)信号を受信し、該VID信号に基づいて、適切なレベルにある電圧信号を生成する。VR2414には、種々のタイプのVRが利用され得る。例えば、VR2414は、“バック”VR、“ブースト”VR、バックVRとブーストVRとの組み合わせ、低ドロップアウト(LDO)レギュレータ、スイッチングDC−DCレギュレータなどを含み得る。バックVRは、一般に、1より小さい比で入力電圧を出力電圧に変換する必要がある電力送達用途で使用される。ブーストVRは、一般に、1より大きい比で入力電圧を出力電圧に変換する必要がある電力送達用途で使用される。一部の実施形態において、各プロセッサコアがそれ自身のVRを持ち、それがPCU2410a/b及び/又はPMIC2412によって制御される。一部の実施形態において、電力管理のための効率的な制御を提供するために、各コアが、分散されたLDOのネットワークを持つ。LDOは、デジタルLDO、アナログLDO、又はデジタル若しくはアナログのLDOの組み合わせとし得る。
一部の実施形態において、装置2400は、概してクロック発生器2416として参照する1つ以上のクロック発生器回路を含む。クロック発生器2416は、装置2400の任意の適切なコンポーネントに供給され得るものである適切な周波数レベルのクロック信号を生成する。単なる一例として、クロック発生器2416は、装置2400のプロセッサ2404にクロック信号を供給しているように図示されている。一部の実施形態において、クロック発生器2416は、1つ以上の周波数識別(Frequency Identification;FID)信号を受信し、該FID信号に基づいて、適切な周波数にあるクロック信号を生成する。
一部の実施形態において、装置2400は、装置2400の様々なコンポーネントに電力を供給するバッテリー2418を含む。単なる一例として、バッテリー2418は、プロセッサ2404に電力を供給しているように図示されている。図には示していないが、装置2400は、ACアダプタから受け取られる交流(AC)電源に基づいて例えばバッテリーを再充電するための充電回路を含み得る。
一部の実施形態において、装置2400は、電力制御ユニット(PCU)2410(電力管理ユニット(PMU)、電力コントローラなどとしても参照する)を含む。一例において、PCU2410の一部のセクションは、1つ以上のプロセッシングコア2408によって実装されてもよく、PCU2410のこれらのセクションは、点線のボックスを用いてPCU2410aというラベルを付して象徴的に図示されている。一例において、PCU2410の他の一部のセクションは、プロセッシングコア2408の外部に実装されてもよく、PCU2410のこれらのセクションは、点線のボックスを用いてPCU2410bというラベルを付して象徴的に図示されている。PCU2410は、装置2400に関する様々な電力管理動作を実装し得る。PCU2410は、装置2400に関する様々な電力管理動作を実装するために、ハードウェアインタフェース、ハードウェア回路、コネクタ、レジスタなどと、ソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)とを含み得る。
一部の実施形態において、装置2400は、例えば、装置2400に関する様々な電力管理動作を実装するために、電力管理集積回路(PMIC)2412を含む。一部の実施形態において、PMIC2412は、リコンフィギュラブル電力管理IC(RPMIC)及び/又はIMVP(Intel(登録商標) Mobile Voltage Positioning)である。一例において、PMICは、プロセッサ2404とは別個のICチップ内にある。これは、装置2400に関する様々な電力管理動作を実装し得る。PMIC2412は、装置2400に関する様々な電力管理動作を実装するために、ハードウェアインタフェース、ハードウェア回路、コネクタ、レジスタなどと、ソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)とを含み得る。
一例において、装置2400は、PCU2410又はPMIC2412の一方又は両方を含む。一例において、PCU2410又はPMIC2412のいずれか一方は、装置2400内に存在しなくてもよく、それ故に、これらのコンポーネントは点線を用いて図示されている。
装置2400の様々な電力管理動作は、PCU2410によって、PMIC2412によって、又はPCU2410とPMIC2412との組み合わせによって実行され得る。例えば、PCU2410及び/又はPMIC2412は、装置2400の様々なコンポーネントに関する電力状態(例えば、P状態)を選択し得る。例えば、PCU2410及び/又はPMIC2412は、装置2400の様々なコンポーネントに関する電力状態を(例えば、ACPI(Advanced Configuration and Power Interface)仕様に従って)選択し得る。単なる一例として、PCU2410及び/又はPMIC2412は、装置2400の様々なコンポーネントに、スリープ状態、アクティブ状態、適切なC状態(例えば、ACPI仕様に従った、C0状態、又は他の適切なC状態)などに遷移させ得る。一例において、PCU2410及び/又はPMIC2412は、VR2414によって出力される電圧及び/又はクロック発生器によって出力されるクロック信号の周波数を、例えば、それぞれVID信号及び/又はFID信号を出力することによって制御し得る。一例において、PCU2410及び/又はPMIC2412は、バッテリー電力使用量、バッテリー2418の充電、及び電力節減動作に関係する機能を制御し得る。
クロック発生器2416は、位相ロックループ(PLL)、周波数ロックループ(FLL)、又は任意の好適なクロック源を有することができる。一部の実施形態において、プロセッサ2404の各コアが、それ自身のクロック源を持つ。斯くすると、各コアは、他のコアの動作周波数とは独立の周波数で動作することができる。一部の実施形態において、PCU2410及び/又はPMIC2412は、適応的又は動的な周波数スケーリング又は調整を実行する。例えば、あるプロセッサコアのクロック周波数が、そのコアがその最大電力消費閾値又は制限値で動作していない場合に上昇され得る。一部の実施形態において、PCU2410及び/又はPMIC2412は、プロセッサの各コアの動作条件を決定し、そして、コアが目標性能レベルよりも下で動作しているとPCU2410及び/又はPMIC2412が判定したとき、そのコアのクロック源(例えば、そのコアのPLL)がロックを失うことなく、機に乗じてそのコアの周波数及び/又は電源電圧を調整する。例えば、コアが、そのコア又はプロセッサ2404に対して割り当てられた総電流よりも小さい電流を電力供給レールから引き出している場合に、PCU2410及び/又はPMIC2412は、そのコア又はプロセッサ2404がより高い性能レベルを発揮することができるように、(例えば、クロック周波数及び/又は電源電圧レベルを上昇させることによって)そのコア又はプロセッサ2404に対する電力引き出しを一時的に増加させることができる。斯くして、製品の信頼性を損なうことなく、プロセッサ2404に対して電圧及び/又は周波数を一時的に上昇させることができる。
一例において、PCU2410及び/又はPMIC2412は、例えば、電力測定回路2442、温度測定回路2440からの測定結果、バッテリー2418の充電レベル、及び/又は電力管理のために使用され得る他の適切な情報を受信することに少なくとも部分的に基づいて、電力管理動作を実行し得る。この目的のために、PMIC2412は、システム/プラットフォームの電力/熱挙動に対して影響を持つ1つ以上のファクタにおける様々な値/変動を検知/検出するために、1つ以上のセンサに通信可能に結合される。該1つ以上のファクタの例は、電流、電圧ドループ、温度、動作周波数、動作電圧、電力消費、コア間通信活動などを含む。これらのセンサのうちの1つ以上は、コンピューティングシステムの1つ以上のコンポーネント又は論理/IPブロックと物理的に近接して(且つ/或いは熱的に接触/結合して)設けられ得る。さらに、少なくとも一実施形態において、PCU2410及び/又はPMIC2412に直接的に(1つ以上の)センサを結合することで、PCU2410及び/又はPMIC2412が、それらセンサのうちの1つ以上によって検出された(1つ以上の)値に少なくとも部分的に基づいてプロセッサコアエネルギーを管理することを可能にしてもよい。
装置2400のソフトウェアスタックの一例も図示している(しかし、ソフトウェアスタックの全ての要素が図示されているわけではない)。単なる一例として、プロセッサ2404は、アプリケーションプログラム2450、オペレーティングシステム2452、1つ以上の電力管理(PM)向けアプリケーションプログラム(例えば、概してPMアプリケーション2458として参照する)、及び/又はこれらに類するものを実行し得る。PMアプリケーション2458はまた、PCU2410及び/又はPMIC2412によって実行されてもよい。OS2452も、1つ以上のPMアプリケーション2456a、2456b、2456cを含み得る。OS2452はまた、様々なドライバ2454a、2454b、2454cなどを含むことができ、それらのうちの一部は電力管理目的に特有のものとし得る。一部の実施形態において、装置2400は更に、基本入力/出力システム(BIOS)2420を含み得る。BIOS2420は、(例えば、1つ以上のドライバ2454を介して)OS2452と通信し、プロセッサ2404と通信し、等々とし得る。
例えば、PMアプリケーション2458、2456、ドライバ2454、BIOS2420などのうちの1つ以上を使用して、例えば、装置2400の様々なコンポーネントの電圧及び/又は周波数を制御するため、装置2400の様々なコンポーネントのウェイクアップ状態、スリープ状態、及び/又は他の適切な電力状態を制御するため、バッテリー電力使用量、バッテリー2418の充電、電力節減動作に関係する機能を制御するため、などの電力管理向けタスクを実装し得る。
明細書における“ある実施形態”、“一実施形態”、“一部の実施形態”、又は“他の実施形態”への言及は、それらの実施形態に関連して記述される特定の機構、構造又は特徴が、必ずしも全ての実施形態ではなく、少なくとも一部の実施形態に含まれることを意味する。“ある実施形態”、“一実施形態”又は“一部の実施形態”が様々に現れることは、必ずしもすべてが同じ実施形態に言及しているわけではない。明細書が、コンポーネント、機構、構造、又は特徴が含まれ“てもよい”、“ることがある”又は“得る”と述べている場合、その特定のコンポーネント、機構、構造、又は特徴は含められる必要がない。明細書又は請求項が“a”又は“an”を付けて要素に言及する場合、それは、それらの要素が1つだけ存在することを意味するわけではない。明細書又は請求項が“an additional”を付けて要素に言及する場合、それは、その追加の要素が2つ以上あることを除外するものではない。
また、特定の機構、構造、機能、又は特徴が、1つ以上の実施形態において好適なように組み合わされ得る。例えば、第1の実施形態が、第2の実施形態と、これら2つの実施形態に関連する特定の機構、構造、機能、又は特徴が相互に排他的でない場合に組み合わされ得る。
開示をその特定の実施形態に関して説明してきたが、以上の説明を踏まえて、これらの実施形態の数多くの改変、変更、及び変形が当業者に明らかになる。開示の実施形態は、添付の請求項の広い範囲に入る全てのそのような改変、変更、及び変形を包含することを意図している。
加えて、図示及び説明を簡単にするため、また、開示を不明瞭にしないため、集積回路(IC)チップ及び他のコンポーネントへの周知の電力/グランド接続は、提示される図の中に示されたり示されなかったりすることがある。また、構成がブロック図の形態で示されることがあるが、これは、開示を不明瞭にすることを避けるためであり、また、そのようなブロック図の構成の実装に関する詳細事項が、その中で本開示が実装されることになるプラットフォームに大きく依存する(すなわち、そのような詳細事項は、十分に、当業者の関与の範囲内にあるはずである)という事実に鑑みてのことである。開示の実施形態例を記述するために特定の詳細事項(例えば、回路)が説明される場合に、開示したことがそれらの特定の詳細事項を用いずに又はそれらの変形を用いて実施されることは、当業者に明らかなはずである。この記述は、故に、限定するものでなく例示するものとして見なされることになる。
ここに記載された様々な実施形態を例として示す。これらの例の特徴は好適であるようにして互いに組み合わされることができる。これらの例は以下を含む。
例1: 装置であって、ハイウォーターマーク(HWM)を現在のダーティキャッシュライン数と比較する電力管理ユニットと、テレメトリー情報及び/又は前記現在のダーティキャッシュライン数に従って前記HWMを生成する機械学習ロジックと、を有し、前記現在のダーティキャッシュライン数が前記HWMよりも大きい場合に、前記電力管理ユニットが当該装置を第1の電力状態に入らせ、前記現在のダーティキャッシュライン数が前記HWMよりも小さい場合に、前記電力管理ユニットが当該装置を第2の電力状態に入らせる、
装置。
例2: 前記機械学習ロジックは、タイムスタンプカウンタを読み取って機械学習モデルを訓練する、例1に記載の装置。
例3: 前記機械学習ロジックは、状態内時間レジスタを読み取って機械学習モデルを訓練し、前記状態内時間レジスタは、ある電力状態に当該装置がある時間を指し示す、例1に記載の装置。
例4: 前記機械学習ロジックは、訓練された重み及び前記テレメトリー情報を介して前記HWMを推論する、例1に記載の装置。
例5: 前記第1の電力状態は、前記第2の電力状態よりも深さが小さい、例1に記載の装置。
例6: 前記第1の電力状態はS0i3状態であり、前記第2の電力状態はS0i4状態である、例1に記載の装置。
例7: 前記機械学習ロジックは乗算器を有する、例1に記載の装置。
例8: 前記テレメトリー情報は、電力状態エントリー及び/又はイグジットの時点におけるフォアグラウンドアプリケーション、フリー、ビジー、及び/又はオフィス時間外を指し示すユーザカレンダー情報、バッテリー情報、時刻、及び/又は曜日、のうちの1つ以上を含む、例1に記載の装置。
例9: 前記機械学習ロジックは、ソフトウェアドライバによって制御又は実装される、例1に記載の装置。
例10: 前記ソフトウェアドライバは、オペレーティングシステムに通信可能に結合される、例9に記載の装置。
例11: 前記HWMは、前記第1の電力状態に入るべきか前記第2の電力状態に入るべきかを前記電力管理ユニットが決定することを可能にするダーティキャッシュライン数の閾値である、例1に記載の装置。
例12: 機械読み取り可能命令を格納した機械読み取り可能記憶媒体であって、前記機械読み取り可能命令は、実行されるときに、1つ以上のプロセッサに、テレメトリー情報を読み取ることと、機械学習を適用して、前記テレメトリー情報及び/又は現在のダーティキャッシュライン数に従ってハイウォーターマーク(HWM)を生成することであり、前記HWMは、第1の電力状態に入るべきか第2の電力状態に入るべきかを電力管理ユニットが決定することを可能にするダーティキャッシュライン数の閾値である、生成することと、を有する方法を実行させる、機械読み取り可能記憶媒体。
例13: 前記テレメトリー情報は、電力状態エントリー及び/又はイグジットの時点におけるフォアグラウンドアプリケーション、フリー、ビジー、及び/又はオフィス時間外を指し示すユーザカレンダー情報、バッテリー情報、時刻、及び/又は曜日、のうちの1つ以上を含む、例12に記載の機械読み取り可能記憶媒体。
例14: コンピューティングシステムが、前記現在のダーティキャッシュライン数が前記HWMよりも大きい場合には第1の電力状態に入ることになり、前記現在のダーティキャッシュライン数が前記HWMよりも小さい場合には第2の電力状態に入ることになる、例12に記載の機械読み取り可能記憶媒体。
例15: 機械学習を適用することは、タイムスタンプカウンタを読み取って機械学習モデルを訓練することを有する、例12に記載の機械読み取り可能記憶媒体。
例16: 機械学習を適用することは、状態内時間レジスタを読み取って機械学習モデルを訓練することを有し、前記状態内時間レジスタは、ある電力状態にコンピューティングシステムがある時間を指し示す、例12に記載の機械読み取り可能記憶媒体。
例17: 機械学習を適用することは、訓練された重み及び前記テレメトリー情報を介して前記HWMを推論することを有する、例12に記載の機械読み取り可能記憶媒体。
例18: 前記第1の電力状態は、前記第2の電力状態よりも深さが小さい、例12に記載の機械読み取り可能記憶媒体。
例19: 前記第1の電力状態はS0i3状態であり、前記第2の電力状態はS0i4状態である、例12に記載の機械読み取り可能記憶媒体。
例20: メモリと、前記メモリに結合されたプロセッサであり、ハイウォーターマーク(HWM)を現在のダーティキャッシュライン数と比較する電力管理ユニットを有するプロセッサと、テレメトリー情報及び/又は前記現在のダーティキャッシュライン数に従って前記HWMを生成する機械学習ロジックを有するドライバであり、前記メモリに関連する前記現在のダーティキャッシュライン数が前記HWMよりも大きい場合に、前記電力管理ユニットが前記プロセッサを第1の電力状態に入らせることになり、前記メモリに関連する前記現在のダーティキャッシュライン数が前記HWMよりも小さい場合に、前記電力管理ユニットが前記プロセッサを第2の電力状態に入らせることになる、ドライバと、プロセッサが他の装置と通信することを可能にする無線インタフェースと、を有するシステム。
例21:
前記テレメトリー情報は、電力状態エントリー及び/又はイグジットの時点におけるフォアグラウンドアプリケーション、フリー、ビジー、及び/又はオフィス時間外を指し示すユーザカレンダー情報、バッテリー情報、時刻、及び/又は曜日、のうちの1つ以上を含む、例20に記載のシステム。
例22:前記ドライバに結合されたオペレーティングシステム、を有する例20に記載のシステム。
技術開示の性質及び骨子を読者が確認することを可能にする要約が提供される。要約は、請求項の範囲又は意味を限定するために使用されることにならないという理解の下で提出される。以下の特許請求の範囲は詳細な説明に組み込まれ、各請求項が別個の実施形態として自立したものとなる。

Claims (21)

  1. 装置であって、
    ハイウォーターマーク(HWM)を現在のダーティキャッシュライン数と比較する電力管理ユニットと、
    テレメトリー情報及び/又は前記現在のダーティキャッシュライン数に従って前記HWMを生成する機械学習ロジックと、
    を有し、前記現在のダーティキャッシュライン数が前記HWMよりも大きい場合に、前記電力管理ユニットが当該装置を第1の電力状態に入らせ、前記現在のダーティキャッシュライン数が前記HWMよりも小さい場合に、前記電力管理ユニットが当該装置を第2の電力状態に入らせる、
    装置。
  2. 前記機械学習ロジックは、タイムスタンプカウンタを読み取って機械学習モデルを訓練する、請求項1に記載の装置。
  3. 前記機械学習ロジックは、状態内時間レジスタを読み取って機械学習モデルを訓練し、前記状態内時間レジスタは、ある電力状態に当該装置がある時間を指し示す、請求項1に記載の装置。
  4. 前記機械学習ロジックは、訓練された重み及び前記テレメトリー情報を介して前記HWMを推論する、請求項1に記載の装置。
  5. 前記第1の電力状態は、前記第2の電力状態よりも深さが小さい、請求項1に記載の装置。
  6. 前記第1の電力状態はS0i3状態であり、前記第2の電力状態はS0i4状態である、請求項1に記載の装置。
  7. 前記機械学習ロジックは乗算器を有する、請求項1に記載の装置。
  8. 前記テレメトリー情報は、
    電力状態エントリー及び/又はイグジットの時点におけるフォアグラウンドアプリケーション、
    フリー、ビジー、及び/又はオフィス時間外を指し示すユーザカレンダー情報、
    バッテリー情報、
    時刻、及び/又は
    曜日、
    のうちの1つ以上を含む、請求項1に記載の装置。
  9. 前記機械学習ロジックは、ソフトウェアドライバによって制御又は実装される、請求項1乃至8のいずれか一項に記載の装置。
  10. 前記ソフトウェアドライバは、オペレーティングシステムに通信可能に結合される、請求項9に記載の装置。
  11. 前記HWMは、前記第1の電力状態に入るべきか前記第2の電力状態に入るべきかを前記電力管理ユニットが決定することを可能にするダーティキャッシュライン数の閾値である、請求項1乃至8のいずれか一項に記載の装置。
  12. テレメトリー情報を読み取ることと、
    機械学習を適用して、前記テレメトリー情報及び/又は現在のダーティキャッシュライン数に従ってハイウォーターマーク(HWM)を生成することであり、前記HWMは、第1の電力状態に入るべきか第2の電力状態に入るべきかを電力管理ユニットが決定することを可能にするダーティキャッシュライン数の閾値である、生成することと、
    を有する方法。
  13. 前記テレメトリー情報は、
    電力状態エントリー及び/又はイグジットの時点におけるフォアグラウンドアプリケーション、
    フリー、ビジー、及び/又はオフィス時間外を指し示すユーザカレンダー情報、
    バッテリー情報、
    時刻、及び/又は
    曜日、
    のうちの1つ以上を含む、請求項12に記載の方法。
  14. コンピューティングシステムが、前記現在のダーティキャッシュライン数が前記HWMよりも大きい場合には第1の電力状態に入ることになり、前記現在のダーティキャッシュライン数が前記HWMよりも小さい場合には第2の電力状態に入ることになる、請求項12に記載の方法。
  15. 機械学習を適用することは、タイムスタンプカウンタを読み取って機械学習モデルを訓練することを有する、請求項12に記載の方法。
  16. 機械学習を適用することは、状態内時間レジスタを読み取って機械学習モデルを訓練することを有し、前記状態内時間レジスタは、ある電力状態にコンピューティングシステムがある時間を指し示す、請求項12に記載の方法。
  17. 機械学習を適用することは、訓練された重み及び前記テレメトリー情報を介して前記HWMを推論することを有する、請求項12に記載の方法。
  18. 前記第1の電力状態は、前記第2の電力状態よりも深さが小さい、請求項12に記載の方法。
  19. 前記第1の電力状態はS0i3状態であり、前記第2の電力状態はS0i4状態である、請求項12乃至18のいずれか一項に記載の方法。
  20. 機械読み取り可能命令を格納した機械読み取り可能記憶媒体であって、前記機械読み取り可能命令は、実行されるときに、1つ以上のプロセッサに、請求項12乃至19のいずれか一項に記載の方法を実行させる、機械読み取り可能記憶媒体。
  21. メモリと、
    前記メモリに結合されたプロセッサであり、請求項1乃至11のいずれか一項に記載の装置を有するプロセッサと、
    プロセッサが他の装置と通信することを可能にする無線インタフェースと、
    を有するシステム。
JP2020204098A 2020-05-08 2020-12-09 プロセッサアイドル時間のインテリジェント予測装置及び方法 Pending JP2021177367A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/870,514 US11500444B2 (en) 2020-05-08 2020-05-08 Intelligent prediction of processor idle time apparatus and method
US16/870,514 2020-05-08

Publications (1)

Publication Number Publication Date
JP2021177367A true JP2021177367A (ja) 2021-11-11

Family

ID=78231991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020204098A Pending JP2021177367A (ja) 2020-05-08 2020-12-09 プロセッサアイドル時間のインテリジェント予測装置及び方法

Country Status (4)

Country Link
US (1) US11500444B2 (ja)
JP (1) JP2021177367A (ja)
CN (1) CN113625859A (ja)
DE (1) DE102020131586A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500444B2 (en) * 2020-05-08 2022-11-15 Intel Corporation Intelligent prediction of processor idle time apparatus and method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587532B2 (en) * 2005-01-31 2009-09-08 Texas Instruments Incorporated Full/selector output from one of plural flag generation count outputs
US9389952B2 (en) * 2008-06-18 2016-07-12 Super Talent Technology, Corp. Green NAND SSD application and driver
US20140095801A1 (en) * 2012-09-28 2014-04-03 Devadatta V. Bodas System and method for retaining coherent cache contents during deep power-down operations
US9176570B2 (en) * 2012-12-29 2015-11-03 Intel Corporation System and method for providing universal serial bus link power management policies in a processor environment
WO2015100430A1 (en) * 2013-12-24 2015-07-02 Digimarc Corporation Methods and system for cue detection from audio input, low-power data processing and related arrangements
US9785223B2 (en) * 2014-12-25 2017-10-10 Intel Corporation Power management in an uncore fabric
US10955901B2 (en) * 2017-09-29 2021-03-23 Advanced Micro Devices, Inc. Saving power in the command processor using queue based watermarks
US11500444B2 (en) * 2020-05-08 2022-11-15 Intel Corporation Intelligent prediction of processor idle time apparatus and method

Also Published As

Publication number Publication date
US20210349519A1 (en) 2021-11-11
CN113625859A (zh) 2021-11-09
DE102020131586A1 (de) 2021-11-11
US11500444B2 (en) 2022-11-15

Similar Documents

Publication Publication Date Title
TWI599960B (zh) 在多核心處理器中執行電源管理
KR101324885B1 (ko) 복수의 회로들에서의 성능 파라미터들 조정
US9594560B2 (en) Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
CN107533354B (zh) 控制处理器的处理引擎的性能状态
US11762450B2 (en) USB Type-C subsystem power management
KR20220027831A (ko) 타입-c 커넥터들에 대한 전력 절약
CN114647296A (zh) 多级存储器系统功率管理装置和方法
JP2022036904A (ja) エネルギー効率の良いコア電圧選択装置及び方法
TW202206973A (zh) 漏電流退化控制及量測
JP2023047293A (ja) 決定論的省電力状態を達成するための装置及び方法
JP2021193544A (ja) 高速で動的なキャパシタンス、周波数、及び/又は電圧スロットリング装置及び方法
JP2021177367A (ja) プロセッサアイドル時間のインテリジェント予測装置及び方法
US20180188789A1 (en) Method of operating system-on-chip, system-on-chip performing the same and electronic system including the same
CN112771470A (zh) 用于对多个知识产权主体和共享电源轨进行共同功率控制的系统、装置及方法
EP4020126A1 (en) Secure device power-up apparatus and method
US11443793B2 (en) Battery life based on inhibited memory refreshes
BR112020019437A2 (pt) sistema, aparelho e método para controle de estado de desempenho de hardware autônomo responsivo de um processador
JP2022097390A (ja) 動的usb-cモード選択ospmポリシー方法及び装置
US20220187893A1 (en) Dynamic energy performance preference based on workloads using an adaptive algorithm
US20240061492A1 (en) Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same
US20220197364A1 (en) Power management for universal serial bus (usb) type-c port
US20220413876A1 (en) Apparatus and method for restoring a password-protected endpoint device to an operational state from a low power state
US20230096154A1 (en) Apparatus and method for isolating and discharging a battery
CN115865057A (zh) 识别和校正时钟占空比的技术
CN116263723A (zh) 功率管理看门狗

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231206