JP7047114B2 - 電力および性能の予測および制御のためのハイブリッドシステムオンチップ - Google Patents

電力および性能の予測および制御のためのハイブリッドシステムオンチップ Download PDF

Info

Publication number
JP7047114B2
JP7047114B2 JP2020542760A JP2020542760A JP7047114B2 JP 7047114 B2 JP7047114 B2 JP 7047114B2 JP 2020542760 A JP2020542760 A JP 2020542760A JP 2020542760 A JP2020542760 A JP 2020542760A JP 7047114 B2 JP7047114 B2 JP 7047114B2
Authority
JP
Japan
Prior art keywords
workload
power
cpu
servers
pnp
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.)
Active
Application number
JP2020542760A
Other languages
English (en)
Other versions
JP2021518936A (ja
Inventor
ソン ジュン
リウ イー
ジン リンリン
モン シアオリン
ワン グワン
ワン イン
タン ホン
ジャン ナン
ティエン ジョンシオン
ジョウ ユー
チエン チャオ
リウ シュイワン
ルワン ジュン
ヤン ボー
ユー リン
ホアン ジアンウェイ
ジョウ ホン
ルー イージュン
シュー リン
リー シーウェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2021518936A publication Critical patent/JP2021518936A/ja
Application granted granted Critical
Publication of JP7047114B2 publication Critical patent/JP7047114B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • 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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
    • H04W12/122Counter-measures against attacks; Protection against rogue devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2639Energy management, use maximum of cheap power, keep peak load low
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Artificial Intelligence (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Description

クラウドコンピューティングのワークロードは、一般的に予測不可能である。サーバは、クラウドサービスプロバイダがそれらの顧客に提供する基本的なコンピューティングユニットである。サーバ使用率が高い場合、その応答時間は、ワークロード急増の影響を受けやすくなり、クラウドサービスプロバイダは、サービスレベル契約(SLA)を満たすことができなくなり得る。ワークロード急増に関連する問題を軽減するために、例えば、中央処理装置(CPU)周波数を急速に増加させ得る。CPUを常に非常に高い周波数で実行させるなどの静的設定も、ワークロード急増に対処するために利用され得る。実際のワークロード急増があらゆるコアを飽和させることはめったにないため、CPUのあらゆるコアを通常の周波数よりも高い同じ周波数で実行する必要があることにより、過剰なエネルギーおよびシステム安定性が無駄になり得る。しかしながら、ワークロード急増の発生を正確かつタイムリーに予測することは、困難であり得る。
通常の周波数よりも高い周波数でCPUを実行するためには、「ターボ」周波数でCPUを実行し得るCPUターボモードを使用し得る。「ターボ」周波数は、熱設計電力(TDP)周波数であることが保証され得るが、TDP周波数を超えるいかなる周波数も保証され得ない。CPU、またはシステム管理メニュー、例えば、基本入出力システム(BIOS)において、便宜的なターボスイッチをオンにしても、性能の問題を解決するには十分であり得ない。さらに、ターボモード、つまりは、ターボ周波数でCPUを実行することができることは、常に利用可能であり得ない。しかしながら、サービスとしてのクラウドインフラストラクチャ(IaaS)スケジューラは、決定的な性能の向上を事前に知る必要があり得る。例えば、2つのハイパースレッドが共有パイプラインを求めて競合し始めた場合、スケジューラは、CPU周波数がどれだけ増加するかを知る必要があり得る。
DCまたはACのいずれかの電力は、一般に、同じ電源を共有するサーバを収容するラックに供給される。サーバ使用率の範囲は、動的で幅広くなり得るため、例えば、ワークロード需要を満たすためにターボモードで増加したCPU周波数が原因で、その電力消費も変化し得る。特定の状況下では、同じラック内のすべてのサーバの総電力消費は、ラックの許容最大電力消費(Pmax_rack)よりも高くなり得る。かかる高電力使用の期間がラック回路の許容期間(Tmax_power)よりも長い場合、過熱、電源の整合性の問題、または停電などの破壊的または壊滅的な結果につながり得る。かかる望ましくない結果を回避するために、システムは、関連するプロセスを別のサーバに一時的に移行させ得るが、仮想マシン(VM)またはコンテナベースの仮想化サービスは、移行によって悪影響を受け得る。これらの結果はいずれも、クラウドコンピューティングサービスの品質を大幅に低下させ得る。しかしながら、コストを考慮すると、同じ数のサーバに高電力ラックを使用するか、または同じ利用可能な最大電力を維持しながらラック内のサーバ数を減らすことは、クラウドサービスプロバイダに受け入れられ得ない。
詳細な説明は、添付の図面を参照して述べられる。図面では、参照番号の左端の数字(複数可)は、参照番号が最初に現れる図面を示す。異なる図面における同じ参照番号の使用は、類似または同一の物品または特徴を示す。
ホストサーバの性能および電力(PnP)要件を予測するために使用され得るハイブリッドシステムオンチップ(SoC)デバイスの例示的なブロック図を示す。 ホストサーバのPnP要件を予測するプロセスを説明する例示的なフローチャートを示す。 ホストサーバにおけるPnP予測結果を利用するための例示的なフローチャート例を示す。 サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムまたは技術を提供するためのハイブリッドSoCデバイスを含むシステムについての例示的なブロック図を示す。 サーバ内のCPUの特性を一覧表示する例示的な特性データベースを示す。 サーバ内のCPUの特性を一覧表示する例示的な特性データベースを示す。 サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムを提供するためのワークロード監視モジュールについての例示的なフローチャートを示す。 図6のブロックのうちの1つに記載のCPUを選択するプロセスを詳述する例示的なフローチャートを示す。 サーバへの供給電力を制御して、サーバのワークロードの予測された変化または監視された変化を満たすためのシステムの例示的なブロック図を示す。 サーバへの供給電力を制御して、サーバのワークロードの予測された変化または監視された変化を満たすための例示的なフローチャートを示す。 図9のブロックのうちの1つに記載のバッテリパックを制御するプロセスを詳述する例示的なフローチャートを示す。
本明細書で論じられるシステムおよび方法は、サーバ内の中央処理装置(CPU)を対象とし、より具体的には、サーバのワークロードを予測すること、CPUの性能特性に基づいて、予測されたワークロードを満たすこと、および予測されたワークロードを満たすための性能をサポートすることを対象とする。
本明細書で論じられるシステムおよび方法は、サーバ内のコンポーネントであり得るハイブリッドシステムオンチップ(SoC)デバイスを使用して、ホストサーバの性能および電力(PnP)要件を予測するために使用可能である。ハイブリッドSoCデバイスは、ビッグコアモジュール、ビッグコアモジュールに結合されたスモールコアモジュール、ならびにビッグコアモジュールおよびスモールコアモジュールに結合された人工知能(AI)アルゴリズムアクセラレータを含み得、人工知能(AI)アルゴリズムアクセラレータは、AIアクセラレータとも呼ばれる。ビッグコアモジュールは、例えば、ホストサーバの仮想マシン、コンテナ、プロセス、ジョブ、タスクなどのインスタンスのPnPメトリックデータを受信および前処理するための複数の汎用中央処理装置(CPU)などを含み得、PnP要件を計算するためのコンピューティングリソースを割り当て得る。スモールコアモジュールは、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するMPP装置にマッピングするための複数の超並列処理(MPP)装置を含み得る。例えば、大規模なダブル入力行列の計算は、反転計算を実行する各スモールコアによって処理され得る。スモールコアモジュールはまた、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュールに送信することと、を行い得る。ルールベースの予測は、監視されたパラメータの状態変化を判定することと、監視されたパラメータにおいて閾値が満たされているかどうかを判定することと、判定に基づいて、予測を生成することと、などを含み得る。AIアクセラレータは、スモールコアモジュールからの瞬時ごとの計算に基づいて、PnP予測結果を計算することと、PnP予測結果をビッグコアモジュールに送信することと、を行い得る。ハイブリッドSoCデバイスは、ホストSoCインターフェースであり得るインターフェースを介して、ホストサーバに結合され得、したがって、ビッグコアモジュールおよびホストサーバが互いに通信することができ得、例えば、ビッグコアモジュールは、ホストSoCインターフェースを介して、PnP予測結果をホストサーバに送信し得る。
ホストサーバ上で実行されているソフトウェアエージェントは、PnPメトリックデータを収集することと、ビッグコアモジュールに送信することと、を行い得る。ソフトウェアエージェントは、所定の収集時間間隔で、PnPメトリックデータを収集することと、所定の受信時間間隔で、ビッグコアモジュールからPnP予測結果を受信することと、を行い得る。ソフトウェアエージェントは、PnP予測結果に基づいて、ハードウェアPnP制御オプション、およびハードウェアPnP制御オプションのためのパラメータを生成することと、ハードウェアPnP制御オプションを、ホストサーバのCPU、メモリ、グラフィックプロセッシングユニット(GPU)、入力/出力(I/O)インターフェース、記憶デバイス、ネットワークデバイス、周辺機器などのハードウェアコンポーネントに適用することと、を行い得る。ハードウェアPnP制御オプションおよびパラメータは、特定のコンポーネントをオン/オフすることと、CPU周波数を調整することと、メモリの読み取り/書き込み速度を調整することと、などを含み得る。ソフトウェアエージェントは、PnP予測結果に基づいて、スケジューラアルゴリズムを修正することと、修正されたスケジューラアルゴリズムを、例えば、ホストサーバの仮想マシン(VM)、コンテナ、プロセス、ジョブ、タスク、オペレーティングシステム(OS)スケジューラ、ジョブスケジューラなどのソフトウェアコンポーネントに適用することと、を行い得る。例えば、特定のジョブ、タスク、およびプロセスは、実行シーケンスで遅延または並べ替えられ得る。
上記に記載のPnP要件を予測するためのハイブリッドSoCデバイスをシステムで使用して、サーバのワークロードの増加を予測または監視することと、増加したワークロードを満たすためのメカニズムまたは技術を提供することと、を行い得る。例えば、システムは、監視されたワークロードまたは予測されたワークロードに基づいて、CPU使用率が閾値よりも高いと判定し、次いで、1つ以上のCPUのターボモードを有効化して、処理速度を一時的に向上させ得る。
システムは、複数のサーバであって、互いに結合されており、各サーバが1つ以上のCPUを有する複数のサーバと、複数のサーバに結合されたワークロード監視モジュールと、を含み得る。ワークロード監視モジュールは、複数のサーバ間のワークロードの増加を監視することと、増加したワークロードのタイプを判定することと、を行い得る。増加したワークロードは、検出されたワークロードの実際の増加、またはワークロードの予測された増加であり得る。ワークロード監視モジュールは、複数のサーバが配置されている環境、例えばラック内の環境の周囲温度を判定または測定することと、周囲温度で増加したワークロードのタイプに利用可能なターボモードにあるCPUのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのCPUを選択することと、選択されたCPUのターボモードを有効化して、増加したワークロードを満たすことと、を行い得る。ワークロード監視モジュールは、CPUを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定し得る。所定の閾値は、判定された増加ワークロードのタイプに固有であり得る。ワークロード監視モジュールは、所与の周囲温度で増加したワークロードの所与のタイプに利用可能であるCPUのターボ周波数レジデンシーに基づいて、CPUを特性データベースから選択し得る。ターボ周波数レジデンシーは、CPUが特定のターボ周波数で実行することができる時間の割合として定義され得る。例えば、20秒の測定ウィンドウで、25°Cの特定のワークロードタイプの場合、CPU#1は、2.6GHzで77%の時間、2.7GHzで22%の時間、および2.8GHzで1%の時間実行することが可能であり得る。
特性データベースは、複数のサーバ内のCPUのうちの各々を識別し得るCPUアイデンティティ(ID)、ワークロードタイプ、および周囲温度によって整理され得る。特性データベースは、CPU IDによって識別可能な各CPUについて、CPUのターボ周波数、ならびにCPUが、事前定義された周囲温度、例えば、10℃、25℃、および40℃で、事前定義されたワークロードタイプに対して、ターボ周波数(ターボ周波数レジデンシー)を維持することができる期間を提供し得る。可能なエージングおよび不正確さを考慮に入れるために、CPUのターボ周波数と、CPUが、事前定義された周囲温度で、事前定義されたワークロードタイプに対して、ターボ周波数を維持することができる期間と、を再測定することにより、特性データベースは、定期的に、例えば3か月に1回、更新され得る。特性データベースは、オンラインデータベースに記憶され得、したがって、ワークロード監視モジュールは、複数のサーバと同じ場所に配置され得、または配置され得ず、インターネットなどのオンライン通信を介して、オンラインデータベースにアクセスし得る。
ワークロード監視モジュールが、選択されたCPU、または選択された複数のCPUのターボモードを有効化することを判定して、増加したワークロードを満たすと、現在利用可能な最大電力が、ターボモードで動作しているCPUにより、サーバの増加した電力消費を満たすのに十分であるかどうかを判定するために、複数のサーバに供給された電力は、評価される必要があり得る。
上述したように、ワークロード監視モジュールは、サーバラックに収容され得る複数のサーバの各々のワークロードを監視および予測し得る。ワークロード監視モジュールは、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、総電力が、複数のサーバに電力を供給する配電装置(PDU)から利用可能な最大ラック電流で最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、サーバラックに収容され得るバッテリパックの動作を制御して、予測されたワークロードを満たすことと、を行い得る。ワークロード監視モジュールは、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている1つ以上のCPUの予想される増加した電力消費に基づいて、複数のサーバに対する総電力を計算し得る。ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定し得る。
ワークロード監視モジュールは、総電力が最大ラック電力を超過している場合、バッテリパックの動作を制御して、複数のサーバへの電力を補うことと、最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、を行い得る。総電力が最大ラック電力を超過していない場合、ワークロード監視モジュールは、PDUから複数のサーバへのラック電流を最大ラック電流未満の値に制限し得る。
ワークロード監視モジュールは、さらに、PDUで停電を検出することと、停電を検出すると、それぞれの監視されたワークロードまたは予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの放電電流を総放電電流に設定することと、を行い得る。ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定し得る。
ワークロード監視モジュールはまた、PDUの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック動作を制御することと、を行い得る。PDUは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができ得る。PDUの出力電力が最大ラック電力を超過している場合、ワークロード監視モジュールは、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たし得る。PDUの出力電力が最大ラック電力を超過していない場合、ワークロード監視モジュールは、出力電力を最大ラック電力未満の値に制限し得る。
図1は、ホストサーバ102の性能および電力(PnP)要件を予測するために使用され得るハイブリッドシステムオンチップ(SoC)デバイス100の例示的なブロック図を示す。
ハイブリッドSoCデバイス100は、ビッグコアモジュール104、ビッグコアモジュール104に結合されたスモールコアモジュール106、ならびにビッグコアモジュール104およびスモールコアモジュール106に結合された人工知能(AI)アルゴリズムアクセラレータ108を含み得る。
ビッグコアモジュール104は、複数の汎用中央処理装置(CPU)を含み得、そのうちの5つ、110、112、114、116、および118が示されている。各汎用CPU110、112、114、116、および118は、縮小命令セットコンピュータ(RISC)Vロケットコアとして示されているコアと、メモリからデータとしてレジスタにフェッチされたキャッシュラインをロードするためのデータキャッシュ(D-キャッシュ)と、より高速に命令にアクセスするための命令キャッシュ(I-キャッシュ)とを含み得る。各汎用CPU110、112、114、116、および118は、それぞれ、ロケットカスタムコア(RoCC)インターフェース120、122、124、126、および128に結合されており、AIアルゴリズムアクセラレータ108などのアクセラレータを各RISC-Vロケットコアに取り付けることを手助けし、スモールコアモジュール106と通信し得る。各汎用CPU110、112、114、116、および118は、それぞれ、AXIインターコネクトまたはNASTIインターコネクト130、132、134、136、および138に結合されており、ホストSoCインターフェース140などの出力(I/O)インターフェースに接続され得る。ホストSoCインターフェース140は、ホストサーバ102のコンポーネントとして示されているが、ホストSoCインターフェース140は、ホストサーバ102の外部の独立したモジュールであり得、複数のホストサーバと通信し得る。ビッグコアモジュール104は、ホストサーバ102の、例えば、仮想マシン、コンテナ、プロセス、ジョブ、タスクなどのインスタンスのPnPメトリックデータを受信および前処理することと、PnP要件を計算するための、スモールコアモジュール106およびAIアルゴリズムアクセラレータ108のコンピューティングリソースを割り当てることと、を行い得る。
スモールコアモジュール106は、複数の超並列処理(MPP)装置を含み得、インスタンスごとのメトリック計算のための、ビッグコアモジュール104によって割り当てられたコンピューティングリソースに基づいて、PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するMPP装置にマッピングし得る。例えば、大規模なダブル入力行列の計算は、反転計算を実行する各スモールコアによって処理され得る。スモールコアモジュール106はまた、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュール104に送信することと、を行い得る。ルールベースの予測は、監視されたパラメータの状態変化を判定することと、監視されたパラメータにおいて閾値が満たされているかどうかを判定することと、その判定に基づいて、予測を生成することと、を含み得る。
AIアルゴリズムアクセラレータ108は、スモールコアモジュール106からの瞬時ごとの計算に基づいて、ワークロードおよび電力予測などのPnP予測結果を計算することと、PnP予測結果をビッグコアモジュール104に送信することと、を行い得る。上述したように、ビッグコアモジュール104は、ホストSoCインターフェース140を介して、ホストサーバ102に結合され得、ホストSoCインターフェース140を介して、PnP予測結果をホストサーバ102に送信し得る。
ホストサーバ102上で実行されているソフトウェアエージェントは、最終的にPnP予測結果を計算するために使用されるホストサーバ102のPnPメトリックデータを収集することと、ホストSoCインターフェース140を介して、PnPメトリックデータをビッグコアモジュール104に送信することと、ホストSoCインターフェース140を介して、PnP予測結果をビッグコアモジュール104から受信することと、を行い得る。ソフトウェアエージェントは、所定の収集時間間隔で、ホストサーバ102のPnPメトリックデータを収集することと、所定の受信時間間隔で、ビッグコアモジュール104からPnP予測結果を受信することと、を行い得る。
ソフトウェアエージェントは、PnP予測結果に基づいて、ハードウェアPnP制御オプション、およびハードウェアPnP制御オプションのためのパラメータを生成することと、ハードウェアPnP制御オプションを、ホストサーバ102のCPU、メモリ、グラフィックプロセッシングユニット(GPU)、入力/出力(I/O)インターフェース、記憶デバイス、ネットワークデバイス、周辺機器などのハードウェアコンポーネントに適用することと、を行い得る。ハードウェアPnP制御オプションおよびパラメータは、特定のコンポーネントをオン/オフすることと、CPU周波数を調整することと、メモリの読み取り/書き込み速度を調整することと、などを含み得る。ソフトウェアエージェントは、PnP予測結果に基づいて、スケジューラアルゴリズムを修正することと、修正されたスケジューラアルゴリズムを、例えば、ホストサーバ102の仮想マシン(VM)、コンテナ、プロセス、ジョブ、タスク、オペレーティングシステム(OS)スケジューラ、ジョブスケジューラなどのソフトウェアコンポーネントに適用することと、を行い得る。例えば、特定のジョブ、タスク、およびプロセスは、実行シーケンスで遅延または並べ替えられ得る。
図2は、ホストサーバ102の性能および電力(PnP)要件を予測するプロセスを説明する例示的なフローチャート200を示す。
ブロック202で、ホストサーバ102上で実行されているソフトウェアエージェントは、ビッグコアモジュール104に送信されるPnPメトリックデータを収集し得る。ソフトウェアエージェントは、所定の収集頻度で、PnPメトリックデータを収集し得る。
ブロック204で、ビッグコアモジュール104は、ホストサーバ102のPnPメトリックデータを受信することと、図1を参照して上述したように、ブロック206でPnPメトリックデータを前処理することと、を行い得る。次いで、ビッグコアモジュール104は、ブロック208で、PnP要件を計算するための、スモールコアモジュール106およびAIアルゴリズムアクセラレータ108のコンピューティングリソースを割り当て得る。
ブロック210で、スモールコアモジュール106は、割り当てられたコンピューティングリソースに基づいて、PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理(MPP)装置にマッピングすることと、ブロック212で、スモールコアモジュール106は、マッピングされたMPP装置でインスタンスごとのメトリック計算を実行することと、を行い得る。例えば、大規模なダブル入力行列の計算は、反転計算を実行する各スモールコアによって処理され得る。さらに、ブロック212で、スモールコアモジュール106は、ルールベースの予測を実行してルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュール104に送信することと、を行い得る。
ブロック214で、AIアルゴリズムアクセラレータ108は、スモールコアモジュール106からの瞬時ごとの計算に基づいて、PnP予測結果を計算し得、ブロック216で、PnP予測結果をビッグコアモジュール104に送信し得る。次いで、ビッグコアモジュール104は、ブロック218で、ホストSoCインターフェース140を介して、PnP予測結果をホストサーバ102に送信し得る。
図3は、ホストサーバ102におけるPnP予測結果を使用するための例示的なフローチャート300を示す。
ブロック302で、ソフトウェアエージェントは、ビッグコアモジュール104からPnP予測結果を受信し得る。ソフトウェアエージェントは、所定の受信頻度で、PnP予測結果を受信し得る。
ブロック304で、ソフトウェアエージェントは、PnP予測結果に基づいて、ハードウェアPnP制御オプション、およびハードウェアPnP制御オプションのためのパラメータを生成し得、ブロック306で、ハードウェアPnP制御オプションを、ホストサーバ102のCPU、メモリ、GPU、I/Oインターフェース、記憶デバイス、ネットワークデバイス、周辺機器などのハードウェアコンポーネントに適用し得る。ハードウェアPnP制御オプションおよびパラメータは、特定のコンポーネントをオン/オフすることと、CPU周波数を調整することと、メモリの読み取り/書き込み速度を調整することと、などを含み得る。
代替的に、または加えて、ソフトウェアエージェントは、ブロック308で、PnP予測結果に基づいて、スケジューラアルゴリズムを修正し得、ブロック310で、修正されたスケジューラアルゴリズムを、例えば、ホストサーバ102のVM、コンテナ、プロセス、ジョブ、タスク、OSスケジューラ、ジョブスケジューラなどのソフトウェアコンポーネントに適用し得る。例えば、特定のジョブ、タスク、およびプロセスは、実行シーケンスで遅延または並べ替えられ得る。
図4は、サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムまたは技術を提供するための上述のハイブリッドSoCデバイス100を含むシステム400についての例示的なブロック図を示す。例えば、システム400は、監視されたワークロードまたは予測されたワークロードに基づいて、CPU使用率が閾値よりも高いと判定し得、次いで、システムは、1つ以上のCPUのターボモードを有効化して、一時的に処理速度を向上させ得る。
システム400は、複数のサーバを含み得、そのうちの3つ、402、404、および406が示されており、ワークロード監視モジュール408は、図1を参照して上述されたハイブリッドSoC100を含み得、ホストSoCインターフェース140を介して、複数のサーバ402、404、および406に結合され得る。ラック410は、複数のサーバ402、404、および406であって、その各々は、1つ以上のCPU(各サーバに対してそれぞれ1つのCPU412、414、および416が示されている)を含み得る複数のサーバ402、404、および406と、複数のサーバ402、404、および406がラック410内に存在する環境の周囲温度を測定するための周囲温度センサ418と、を含み得る。
図1のハイブリッドSoC100を参照して上述したように、ワークロード監視モジュール408は、複数のサーバ402、404、および406の間のワークロードの増加を監視することと、増加したワークロードのタイプ、ならびに周囲温度センサ418を使用して、サーバ102、404、および406が配置されている環境、すなわち、ラック410内の環境の周囲温度を判定することと、を行い得る。ワークロードの増加に応答して、ワークロード監視モジュール408は、増加したワークロードが所定の閾値よりも大きいと判定し得、次いで、周囲温度で増加したワークロードのタイプに利用可能なターボモードにあるCPUのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのCPUを選択し得る。所定の閾値は、判定された増加ワークロードのタイプに固有の閾値であり得る。測定された周囲温度で増加したワークロードのタイプ、例えばタイプAに基づいて、ワークロード監視モジュール408は、CPUがもはや2.7GHzで実行する必要があると判定し得る。周囲温度で利用可能なターボ周波数が、CPU412については2.6 GHz、CPU414については2.7 GHz、およびCPU416については2.8 GHzである場合、ワークロード監視モジュール408は、サーバ404のCPU414を選択することと、CPU414のターボモードを有効化して、増加したワークロードを満たすことと、を行い得る。ワークロード監視モジュール408は、さらに、CPUのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、CPUを選択し得る。例えば、ワークロード監視モジュール408が、増加したワークロードを満たすために、CPUが2.7GHzで5秒間実行する必要があると判定したが、CPU 414は、2.7GHzのターボ周波数で3秒間対応することができ、CPU416は、2.8GHzのターボ周波数で5秒間対応することができる場合、ワークロード監視モジュール408は、2.8GHzで実行するCPU416を選択し得る。
ワークロード監視モジュール408は、増加したワークロードを満たすことが望まれるCPUの特性に基づいて、特性データベース420からCPUを選択し得る。特性データベース420は、例えばインターネット422によって、ワークロード監視モジュール408によってリモートでアクセス可能なオンラインデータベースに記憶され得る。
図5Aおよび5Bは、サーバ内のCPUの特性を一覧表示する例示的な特性データベース420を示す。
特性データベース420は、所与の入力電力506におけるサンプルウィンドウ502およびワークロードタイプ504に対して、周囲温度508と、CPU識別(ID)510と、ターボ周波数512と、利用可能なターボ周波数の期間514、すなわち、CPUがターボ周波数を維持することができる期間と、サンプルウィンドウサイズに対する、利用可能なターボ周波数の期間の比として計算されたターボ周波数レジデンシー516によって整理および索引付けされ得る。図5Aは、20秒のサンプルウィンドウ502、ワークロードタイプA、105ワットの入力電力506、ならびに20℃、30℃、および温度_最大の周囲温度508についての例示的な特性データベース420を示した。図5Bは、図5Aの105ワットの代わりに120ワットの入力電力506、ならびに20℃、30℃、および温度_最大の周囲温度508を備えた、同じサンプルウィンドウ502およびワークロードタイプAについての例示的な特性データベース420を示した。特性データベース420は、さらに、異なる入力電力506および周囲温度508に対する様々なサンプルウィンドウ502およびワークロードタイプ504について、CPU ID510で識別されたCPUの特性データ、つまり、ターボ周波数512、利用可能なターボ周波数の期間514、およびターボ周波数レジデンシー516を含み得る。
可能なおよび不正確さを考慮に入れるために、所与の入力電力についての各サンプルウィンドウおよびワークロードタイプに対して、各CPUのターボ周波数およびターボ周波数の期間を再測定し、ターボ周波数レジデンシーを再計算することにより、特性データベース420は、定期的に、例えば3か月に1回更新され得る。
図6は、サーバのワークロードの増加を予測または監視するための、および増加したワークロードを満たすためのメカニズムまたは技術を提供するためのワークロード監視モジュール408についての例示的なフローチャート600を示す。
ブロック602で、ワークロード監視モジュール408は、サーバ402、404、および406などの複数のサーバ間のワークロードの増加を監視し得、ブロック604で、増加したワークロードのタイプ、ならびに周囲温度センサ418を使用して、サーバ102、404、および406が配置されている環境、すなわち、ラック410内の環境の周囲温度を判定し得る。ブロック606で、ワークロード監視モジュール408は、図4を参照して上述したように、周囲温度で増加したワークロードのタイプに対してターボモードで利用可能なCPUのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのCPUを選択し得る。次いで、ワークロード監視モジュール408は、ブロック608において、選択されたCPUのターボモードを有効化し得る。
図7は、ブロック606のCPUを選択するプロセスを詳述する例示的なフローチャート700を示す。
ワークロード監視モジュール408は、ブロック702でCPUを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定し得る。閾値は、ブロック604において、判定された増加ワークロードのタイプに固有であり得る。ブロック704で、ワークロード監視モジュール408はまた、周囲温度で増加したワークロードのタイプに利用可能な各CPUのターボ周波数の持続期間を考慮し得る。次いで、ワークロード監視モジュール408は、ブロック706で、ターボモードで利用可能なCPUのターボ周波数、周囲温度で増加したワークロードのタイプに利用可能なターボ周波数の期間に基づいて、CPUを選択し得る。ワークロード監視モジュール408は、図5Aおよび5Bを参照して上述したように、特性データベース420からCPUを選択し得、特性データベース420は、ワークロード監視モジュール408によってリモートでアクセス可能なオンラインデータベースに記憶され得る。
上述したように、ワークロード監視モジュール408は、サーバラック410に収容され得る複数のサーバ402、404、および406の各々のワークロードを監視および予測し得る。ワークロード監視モジュール408は、監視されたワークロードまたは予測されたワークロードの変化を満たすように動作するためのサーバ402、404、および408に必要な電力をさらに制御し得る。
図8は、複数のサーバ402、404、および406への供給電力を制御して、サーバ402、404、および406のワークロードの予測された変化または監視された変化を満たすためのシステム800の例示的なブロック図を示す。
システム800は、図4に記載のすべてのコンポーネントを含み得、さらに、配電装置(PDU)802およびバッテリパック804を含み得る。PDU802は、複数のサーバ402、404、および406に結合され得、最大ラック電流で最大ラック電力までについて、複数のサーバ402、404、および406に電力を供給することができ得る。バッテリパック804は、複数のサーバおよび402、404、および406、ならびにPDU802に結合され得、サーバラック410に収容され得る。バッテリパック804は、PDU802なしで、特定の期間、複数のサーバ402、404、および406に電力を供給することができ得る。バッテリパック804は、特定の充電レベルを維持するために通常の充電率で充電され得、したがって、必要に応じて、バッテリパック804は、複数のサーバ402、404、および406に電力を供給することができ得る。
ワークロード監視モジュール408は、サーバ402、404、および406、PDU802、ならびにバッテリパック804に結合され得る。ワークロード監視モジュール408は、サーバ402、404、および406の各々のワークロードを監視および予測し得、予測されたワークロードに基づいて、サーバに必要な総電力を判定し得る。ワークロード監視モジュール408は、総電力が最大ラック電力を超過しているかどうかを判定し得、総電力に基づいて、バッテリパック804のバッテリパック動作を制御し得る。
ワークロード監視モジュール408は、総電力が最大ラック電力を超過していると判定すると、バッテリパック804の動作を制御して、複数のサーバ402、404、および406への電力を補い得る。例えば、予測されたワークロード増加に基づいて、ワークロード監視モジュール408は、CPU412、414、および416のうちの1つ以上のターボモードを有効化することを判定し得、予測されたワークロード増加を満たすためにターボモードにあるCPU 412、414、および416のうちの1つ以上のCPUを実行するために必要な総電力が、PDU802から利用可能な最大ラック電力を超過していると判定し得る。総電力とラック電力との間の差は、バッテリパック804によって補われ得る。ワークロード監視モジュール408はまた、PDU802からの最大ラック電力に加えて十分な電力を補うためにバッテリパック804から必要な放電電流を判定して、総電力を満たし得、バッテリパック804からの放電電流を、必要な放電電流に設定し得る。
ワークロード監視モジュール408はまた、各サーバに対して予測されたワークロード、および関連付けられたCPU周波数に基づいて、複数のサーバ402、404、および406の各々に必要な電流を判定し得、総電力が最大ラック電力を超過していないと判定し得る。例えば、予測されたワークロードは、通常予想されるレベルよりも低くなり得、CPU 412、414、および416のうちの1つ以上がそれらの通常の速度よりも遅く実行されることを可能にし、それによって複数のサーバ402、404、および406に必要な電力を減らし得る。次いで、ワークロード監視モジュール408は、PDU802から複数のサーバ402、404、および406へのラック電流を、最大ラック電流未満の値に制限し得る。
ワークロード監視モジュール408は、PDU802での停電を検出することと、それぞれの予測されたワークロードに基づいて、複数のサーバ402、404、および406の各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパック804からの総放電電流を計算することと、を行い得る。停電前の速度で、またはバッテリパック804から利用可能な最大電流で利用可能な速度でCPUを実行する代わりに、ワークロード監視モジュール408は、バッテリパック804からの最大放電電流を、予測された総放電電流に設定し得、それは、バッテリパック804から利用可能な最大放電電流よりも低くなり得る。放電電流をより低く設定することにより、停電の間、バッテリパック804をより長く持続させることが可能であり得る。ワークロード監視モジュール408は、予測されたワークロード、ならびに各CPU412、414、および416の関連付けられたCPU周波数に基づいて、複数のサーバ402、404、および406の各々に対する電流上限を設定し得る。
ワークロード監視モジュール408は、供給されている電気のコストを監視し得、電気のコストが低閾値よりも低い場合にバッテリパック804を高速で充電し、電気のコストが低閾値よりも高い場合にバッテリパック804を低速で充電することを判定し得る。ワークロード監視モジュール408はまた、現在のワークロードは低いが、ワークロードが予測されたワークロードの増加を満たすように増加すると予測される場合、バッテリパック804を高速、すなわち通常の充電速度よりも高い速度で充電することを判定し得る。
PDU802は、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバ402、40、および406に、所定の期間にわたって、例えば最大ラック電力を超える100ワットの電力を10秒間供給することができ得る。ワークロード監視モジュール408は、PDU802の出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック80の動作を制御することと、を行い得る。例えば、出力電力が最大ラック電力を超過していると判定すると、ワークロード監視モジュール408は、バッテリパック804を放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たし得る。出力電力が最大ラック電力を超過していないと判定すると、ワークロード監視モジュール408は、PDU802の出力電力を最大ラック電力未満の値に制限し得る。
図9は、複数のサーバ402、404、および406への供給電力を制御して、サーバ402、404、および406のワークロードの予測された変化または監視された変化を満たすための例示的なフローチャート900を示す。
ブロック902で、ワークロード監視モジュール408は、サーバラック410に収容された複数のサーバ402、404、および406の各々のワークロードを監視および予測し得る。図4および図8を参照して上述したように、複数のサーバ402、404、および406の各々は、それぞれ、1つ以上の中央処理装置(CPU)412、414、および416を含み得る。ブロック904で、ワークロード監視モジュール408は、最大ラック電力、最大ラック電流、供給されている瞬時電力および瞬時電流などの、PDU802のステータスを監視し得る。ワークロード監視モジュール408が、ブロック906で、PDU802における停電を検出する場合、ワークロード監視モジュール408は、各サーバに対して予測されたワークロードに基づいて、複数のサーバ402、404、および406の各々に必要な電流を判定することと、ブロック908で、各電流に基づいて、必要な総放電電流を計算することと、を行い得る。910で、ワークロード監視モジュール408は、バッテリパック804からの最大放電電流を総放電電流に設定し得る。ワークロード監視モジュール408はまた、各サーバに対して予測されたワークロード、および各サーバの関連付けられたCPU周波数に基づいて、複数のサーバ402、404、および406の各々に対する電流上限を設定する。
ブロック906で、ワークロード監視モジュール408が、PDU802における停電を検出しない場合、ワークロード監視モジュール408は、ブロック912で、監視されたワークロードまたは予測されたワークロードに基づいて、複数のサーバ402、404、および406に必要な総電力を判定し得る。例えば、ワークロード監視モジュール408は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバ402、404、および406の1つ以上のCPU412、414、および416の予想される増加した電力消費に基づいて、複数のサーバ402、404、および406の総電力を計算し得る。ワークロード監視モジュール408はまた、複数のサーバ402、404、および406の監視された電力消費、または実際の電力消費に基づいて、複数のサーバ402、404、および406に対する総電力を計算し得る。ワークロード監視モジュール408はまた、予測されたワークロード、および各CPUの関連付けられたCPU周波数に基づいて、複数のサーバ402、404、および406の各々に必要な電流を判定し得る。総電力に基づいて、ワークロード監視モジュール408は、ブロック914で、バッテリパック804の動作を制御して、サーバ402、404、および406の予測されたワークロードを満たし得る。
図10は、図9のブロック914に記載のバッテリパック804を制御するプロセスを詳述する例示的なフローチャート1000を示す。
1002で、ワークロード監視モジュール408は、複数のサーバ402、404、および406に電力を供給するPDU802から利用可能な最大ラック電流で、総電力が最大ラック電力を超過しているかどうかを判定し得る。ワークロード監視モジュール408が、総電力が最大ラック電力を超過したと判定する場合、ワークロード監視モジュール408は、ブロック1004において、バッテリパック804を制御して複数のサーバ402、404、および406への電力を補って、総電力を満たし得る。例えば、増加であり得る予測されたワークロードに基づいて、ワークロード監視モジュール408は、CPU412、414、および416のうちの1つ以上のターボモードを有効化することを判定することと、予測されたワークロードの増加を満たすために、ターボモードにあるCPU 412、414、および416のうちの1つ以上のCPUを実行するために必要な総電力が、PDU802から利用可能な最大ラック電力を超過していると判定することと、を行い得る。
ワークロード監視モジュール408は、ブロック1006で、PDU802の最大ラック電力に加えて十分な電力を補うためにバッテリパック804から必要な放電電流をさらに判定して、総電力を満たし得、バッテリパック804からの放電電流を必要な放電電流に適用設定し得る。
ワークロード監視モジュール408が、ブロック1002で、総電力が最大ラック電力を超過しなかったと判定する場合、ワークロード監視モジュール408は、ブロック1008で、PDU802から複数のサーバ402、404、および406へのラック電流を最大ラック電流未満の値に制限し得る。
上述の方法のいくつかの動作またはすべての動作は、以下に定義するように、コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令の実行によって実行され得る。明細書および請求項で使用される「コンピュータ可読命令」という用語は、ルーチン、アプリケーション、アプリケーションモジュール、プログラムモジュール、プログラム、コンポーネント、データ構造、アルゴリズムなどを含む。コンピュータ可読命令は、シングルプロセッサシステムまたはマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースのプログラム可能な家電製品、それらの組み合わせなど、さまざまなシステム構成で実装され得る。
コンピュータ可読記憶媒体は、揮発性メモリ(ランダムアクセスメモリ(RAM)など)および/または不揮発性メモリ(読み出し専用メモリ(ROM)、フラッシュメモリなど)を含み得る。コンピュータ可読記憶媒体はまた、コンピュータ可読命令、データ構造、プログラムモジュールなどの不揮発性記憶装置を提供し得る、フラッシュメモリ、磁気記憶装置、光学記憶装置および/またはテープ記憶装置を含むが、これらに限定されない、追加の取り外し可能な記憶装置および/または非取り外し可能記憶装置を含み得る。
非一時的コンピュータ可読記憶媒体は、コンピュータ可読媒体の一例である。コンピュータ可読媒体は、少なくとも2つのタイプのコンピュータ可読媒体、すなわちコンピュータ可読記憶媒体およびコンピュータ可読通信媒体を含む。コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意のプロセスまたは技術で実装される、揮発性および不揮発性、取り外し可能媒体および非取り外し可能媒体を含む。コンピュータ可読記憶媒体は、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)、フラッシュメモリまたはその他のメモリ技術、コンパクトディスクの読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいはコンピューティングデバイスによるアクセスのための情報を記憶するために使用され得る他の任意の非伝送媒体を含むが、これらに限定されない。対照的に、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波などの変調されたデータ信号または他の伝達機構で具体化し得る。本明細書で定義されるように、コンピュータ可読記憶媒体は、通信媒体を含まない。
1つ以上のプロセッサによって実行されたときに、図2、3、6、7、9、および10を参照して上述した動作を実行し得る、1つ以上の非一時的コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令。一般に、コンピュータ可読命令は、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、制限として解釈されることを意図するものではなく、説明される動作の任意の数は、プロセスを実装するために任意の順序で、および/または並列に組み合わせられ得る。
例示の節
A.ホストサーバの性能および電力(PnP)要件を予測するためのデバイスであって、複数の汎用中央処理装置(CPU)を含むビッグコアモジュールであって、ビッグコアモジュールは、ホストサーバのPnPメトリックデータを受信および前処理することと、PnP要件を計算するためのコンピューティングリソースを割り当てることと、を行うように構成されている、ビッグコアモジュールと、複数の超並列処理(MPP)装置を含むスモールコアモジュールであって、スモールコアモジュールは、ビッグコアモジュールに結合されており、ビッグコアモジュールは、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するMPP装置にマッピングするように構成されている、スモールコアモジュールと、ビッグコアモジュールおよびスモールコアモジュールに結合された人工知能(AI)アクセラレータであって、AIアクセラレータは、スモールコアモジュールからの瞬時ごとの計算に基づいて、PnP予測結果を計算することと、PnP予測結果をビッグコアモジュールに送信することと、を行うように構成されている、AIアクセラレータと、を含む、デバイス。
B.スモールコアモジュールは、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、ルールベースの予測結果をビッグコアモジュールに送信することと、を行うようにさらに構成されている、段落Aに記載のデバイス。
C.ビッグコアモジュールは、ホストインターフェースを介して、ホストサーバに結合されており、ビッグコアモジュールは、ホストインターフェースを介して、PnP予測結果をホストサーバに送信するようにさらに構成されている、段落Aに記載のデバイス。
D.ホストサーバ上で実行されているソフトウェアエージェントは、ビッグコアモジュールに送信されるPnPメトリックデータを収集することと、PnP予測結果をビッグコアモジュールから受信することと、を行うように構成されている、段落Cに記載のデバイス。
E.ソフトウェアエージェントは、所定の収集頻度で、PnPメトリックデータを収集することと、所定の受信頻度で、ホストインターフェースを介して、PnP予測結果をビッグコアモジュールから受信することと、を行うようにさらに構成されている、段落Dに記載のデバイス。
F.ソフトウェアエージェントは、PnP予測結果に基づいて、ハードウェアPnP制御オプション、およびハードウェアPnP制御オプションのためのパラメータを生成するようにさらに構成されている、段落Dに記載のデバイス。
G.ソフトウェアエージェントは、ハードウェアPnP制御オプションをホストサーバのハードウェアコンポーネントに適用するようにさらに構成される、段落Fに記載のデバイス。
H.ソフトウェアエージェントは、PnP予測結果に基づいて、スケジューラアルゴリズムを修正するようにさらに構成されている、段落Dに記載のデバイス。
I.ソフトウェアエージェントは、修正されたスケジューラアルゴリズムをホストサーバのソフトウェアコンポーネントに適用するようにさらに構成されている、段落Hに記載のデバイス。
J.デバイスは、ハイブリッドシステムオンチップ(SoC)である、段落Aに記載のデバイス。
K.ホストサーバの性能および電力(PnP)要件を予測するための方法であって、デバイスのビッグコアモジュールによって、ホストサーバのPnPメトリックデータを受信および前処理することであって、ビッグコアモジュールは、複数の汎用中央処理装置(CPU)を含む、受信および前処理することと、ビッグコアモジュールによって、PnP要件を計算するためのコンピューティングリソースを割り当てることと、デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理(MPP)装置にマッピングすることであって、スモールコアモジュールは、複数のMPP装置を含む、マッピングすることと、デバイスの人工知能(AI)アクセラレータによって、スモールコアモジュールからの瞬時ごとの計算に基づいて、PnP予測結果を計算することと、AIアクセラレータによって、PnP予測結果をビッグコアモジュールに送信することと、を含む、方法。
L.スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、スモールコアモジュールによって、ルールベースの予測結果をビッグコアモジュールに送信すること、をさらに含む、段落Kに記載の方法。
M.ビッグコアモジュールによって、ホストインターフェースを介して、PnP予測結果をホストサーバに送信することをさらに含む、段落Kに記載の方法。
N.ホストサーバ上で実行されているソフトウェアエージェントによって、ビッグコアモジュールに送信されるPnPメトリックデータを収集することと、ソフトウェアエージェントによって、ホストインターフェースを介して、PnP予測結果をビッグコアモジュールから受信することと、をさらに含む、段落Mに記載の方法。
O.ホストサーバ上で実行されているソフトウェアエージェントによって、ビッグコアモジュールに送信されるPnPメトリックデータを収集することは、所定の収集頻度で、PnPメトリックデータを収集することを含み、ソフトウェアエージェントによって、PnP予測結果をビッグコアモジュールから受信することは、所定の受信頻度で、PnP予測結果をビッグコアモジュールから受信することを含む、段落Nに記載の方法。
P.ソフトウェアエージェントによって、PnP予測結果に基づいて、ハードウェアPnP制御オプション、およびハードウェアPnP制御オプションのためのパラメータを生成することをさらに含む、段落Nに記載の方法。
Q.ソフトウェアエージェントによって、ハードウェアPnP制御オプションをホストサーバのハードウェアコンポーネントに適用することをさらに含む、段落Pに記載の方法。
R.ソフトウェアエージェントによって、PnP予測結果に基づいて、スケジューラアルゴリズムを修正することをさらに含む、段落Nに記載の方法。
S.ソフトウェアエージェントによって、修正されたスケジューラアルゴリズムをホストサーバのソフトウェアコンポーネントに適用することをさらに含む、段落Rに記載の方法。
T.デバイスは、ハイブリッドシステムオンチップ(SoC)である、段落Kに記載の方法。
U.1つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、1つ以上のプロセッサによって実行されるとき、1つ以上のプロセッサに、ホストサーバの性能および電力(PnP)メトリックデータを収集することと、ホストインターフェースを介して、PnPメトリックデータをデバイスのビッグコアモジュールに送信することであって、ビッグコアモジュールは、複数の汎用中央処理装置(CPU)を含む、送信することと、ビッグコアモジュールによって、PnPメトリックデータを前処理することと、ビッグコアモジュールによって、PnP要件を計算するためのコンピューティングリソースを割り当てることと、デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための割り当てられたコンピューティングリソースに基づいて、PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理(MPP)装置にマッピングすることであって、スモールコアモジュールは、複数のMPP装置を含む、マッピングすることと、デバイスの人工知能(AI)アクセラレータによって、スモールコアモジュールからの瞬時ごとの計算に基づいて、PnP予測結果を計算することと、AIアクセラレータによって、PnP予測結果をビッグコアモジュールに送信することと、ビッグコアモジュールによって、PnP予測結果をAIアクセラレータから受信することと、ビッグコアモジュールによって、ホストインターフェースを介して、PnP予測をホストサーバに送信することと、PnP予測結果をビッグコアモジュールから受信することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
V.動作は、PnP予測結果に基づいて、ハードウェアPnP制御オプション、およびハードウェアPnP制御オプションのためのパラメータを生成することをさらに含む、段落Uに記載の非一時的コンピュータ可読記憶媒体。
W.動作は、ハードウェアPnP制御オプションをホストサーバのハードウェアコンポーネントに適用することをさらに含む、段落V項に記載の非一時的コンピュータ可読記憶媒体。
X.動作は、PnP予測結果に基づいて、スケジューラアルゴリズムを修正することと、修正されたスケジューラアルゴリズムをホストサーバのソフトウェアコンポーネントに適用することと、をさらに含む、段落Uに記載の非一時的コンピュータ可読記憶媒体。
Y.動作は、スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、スモールコアモジュールによって、ルールベースの予測結果をビッグコアモジュールに送信することと、をさらに含む、段落Uに記載の非一時的コンピュータ可読記憶媒体。
Z.デバイスは、ハイブリッドシステムオンチップ(SoC)である、段落Uに記載の非一時的コンピュータ可読記憶媒体。
AA.システムであって、複数のサーバであって、複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、複数のサーバと、複数のサーバに結合されたワークロード監視モジュールであって、ワークロード監視モジュールは、複数のサーバ間のワークロードの増加を監視することと、増加したワークロードのタイプ、および複数のサーバが配置されている環境の周囲温度を判定することと、周囲温度で増加したワークロードのタイプに利用可能なターボモードにあるCPUのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのCPUを選択することと、選択されたCPUのターボモードを有効化することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
AB.ワークロード監視モジュールは、CPUのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、CPUを選択するようにさらに構成されている、段落AAに記載のシステム。
AC.ワークロード監視モジュールは、CPUを特性データベースから選択するようにさらに構成されており、特性データベースは、複数のサーバの複数のCPUに対応する複数のCPUアイデンティティ(ID)と、各CPU IDについて、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、CPU IDに対応するCPUのそれぞれのターボ周波数と、対応するCPUがそれぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、段落ABに記載のシステム。
AD.特性データベースは、所定の時間間隔で更新され、更新は、所定の時間間隔で、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度において、CPU IDに対応するCPUのそれぞれのターボ周波数を測定することと、対応するCPUがそれぞれのターボ周波数を維持することができるそれぞれの期間を測定することと、対応するCPU IDにおけるそれぞれのCPUに対する、測定されたターボ周波数、および測定された持続期間に基づいて、特性データベースを更新することと、を含む、段落ACに記載のシステム。
AE.特性データベースは、オンラインデータベースに記憶されており、オンラインデータベースは、ワークロード監視モジュールによってアクセス可能である、段落ADに記載のシステム。AF.ワークロード監視モジュールは、CPUを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定するようにさらに構成されている、段落AAに記載のシステム。
AG.ワークロード監視モジュールは、増加したワークロードが、判定された増加ワークロードのタイプに固有の所定の閾値よりも大きいと判定するようにさらに構成されている、段落AFに記載のシステム。
AH.複数のサーバに結合されたワークロード監視モジュールにおける方法であって、複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含み、方法は、複数のサーバ間のワークロードの増加を監視することと、増加したワークロードのタイプ、および複数のサーバが配置されている環境の周囲温度を判定することと、周囲温度で増加したワークロードのタイプに対してターボモードで利用可能なCPUのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのCPUを選択することと、選択されたCPUのターボモードを有効化することと、を含む、方法。
AI.周囲温度で増加したワークロードのタイプに対してターボモードで使用可能なCPUのターボ周波数に基づいて、CPUを選択することは、CPUのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、CPUを選択することを含む、段落AHに記載の方法。
AJ.CPUを選択することは、CPUを特性データベースから選択することを含み、特性データベースは、複数のサーバの複数のCPUに対応する複数のCPUアイデンティティ(ID)と、各CPU IDについて、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、CPU IDに対応するCPUのそれぞれのターボ周波数と、対応するCPUがそれぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、段落AIに記載の方法。
AK.所定の時間間隔で、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度において、CPU IDに対応するCPUのそれぞれのターボ周波数を測定することと、対応するCPUがそれぞれのターボ周波数を維持できるそれぞれの期間を測定することと、対応するCPU IDにおけるそれぞれのCPUに対する、測定されたターボ周波数、および測定された持続期間に基づいて、特性データベースを更新することと、を含む、段落AJに記載の方法。
AL.特性データベースをオンラインデータベースに記憶することをさらに含み、オンラインデータベースは、ワークロード監視モジュールによってアクセス可能である、段落AKに記載の方法。
AM.CPUを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、段落AHに記載の方法。
AN.増加したワークロードが所定の閾値よりも大きいと判定することは、増加したワークロードが、判定された増加ワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、段落AMに記載の方法。
AO.1つ以上のコンピューティングデバイスによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、1つ以上のコンピューティングデバイスによって実行されるとき、1つ以上のコンピューティングデバイスに、複数のサーバ間のワークロードの増加を監視することであって、複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、監視することと、増加したワークロードのタイプ、および複数のサーバが配置されている環境の周囲温度を判定することと、周囲温度で増加したワークロードのタイプに対して、ターボモードで利用可能なCPUのターボ周波数に基づいて、複数のサーバのうちの特定のサーバのCPUを選択することと、選択されたCPUのターボモードを有効化することと、を含む、非一時的コンピュータ可読記憶媒体。
AP.周囲温度で増加したワークロードのタイプに対してターボモードで利用可能なCPUのターボ周波数に基づいて、CPUを選択することは、CPUのターボ周波数が、周囲温度で増加したワークロードのタイプに利用可能である持続期間に基づいて、CPUを選択することを含む、段落AOに記載の非一時的コンピュータ可読記憶媒体。
AQ.CPUを選択することは、CPUを特性データベースから選択することを含み、特性データベースは、複数のサーバの複数のCPUに対応する複数のCPUアイデンティティ(ID)と、各CPU IDについて、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、CPU IDに対応するCPUのそれぞれのターボ周波数と、対応するCPUがそれぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、段落APに記載の非一時的コンピュータ可読記憶媒体。
AR.動作は、所定の時間間隔で、事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度において、CPU IDに対応するCPUのそれぞれのターボ周波数を測定することと、対応するCPUがそれぞれのターボ周波数を維持することができるそれぞれの期間を測定することと、対応するCPU IDにおけるそれぞれのCPUに対する、測定されたターボ周波数、および測定された持続期間に基づいて、特性データベースを更新することと、をさらに含む、段落AQに記載の非一時的コンピュータ可読記憶媒体。
AS.動作は、特性データベースをオンラインデータベースに記憶することをさらに含み、オンラインデータベースは、1つ以上のコンピューティングデバイスによってアクセス可能である、段落ARに記載の非一時的コンピュータ可読記憶媒体。
AT.動作は、CPUを選択する前に、増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、段落AOに記載の非一時的コンピュータ可読記憶媒体。
AU.増加したワークロードが所定の閾値よりも大きいと判定することは、増加したワークロードが、判定された増加ワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、段落ATに記載の非一時的コンピュータ可読記憶媒体。
AV.システムであって、互いに結合され、サーバラック内に収容された複数のサーバであって、複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、複数のサーバと、複数のサーバに結合された配電装置(PDU)であって、PDUは、複数のサーバに電力を供給するように構成されており、PDUは、最大ラック電流で最大ラック電力まで電力を供給することができる、PDUと、複数のサーバおよびPDUに結合されたバッテリパックであって、PDUなしで一定期間、複数のサーバに電力を供給することができるバッテリパックと、複数のサーバ、PDU、およびバッテリパックに結合されたワークロード監視モジュールであって、ワークロード監視モジュールは、複数のサーバの各々のワークロードを監視および予測することと、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、総電力が最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、バッテリパックの動作を制御することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
AW.ワークロード監視モジュールは、総電力が最大ラック電力を超過していると判定すると、バッテリパックの動作を制御して、複数のサーバへの電力を補うようにさらに構成されている、段落AVに記載のシステム。
AX.ワークロード監視モジュールは、最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、バッテリパックからの放電電流を、必要な放電電流に設定することと、を行うようにさらに構成されている、段落AWに記載のシステム。
AY.複数のサーバに対する総電力は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバの1つ以上のCPUの予想される増加した電力消費に基づいて、計算される、段落AWに記載のシステム。
AZ.ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定するようにさらに構成されている、段落AWに記載のシステム。
BA.ワークロード監視モジュールは、総電力が最大ラック電力を超過していないと判定すると、PDUから複数のサーバへのラック電流を、最大ラック電流未満の値に制限するようにさらに構成されている、段落AVに記載のシステム。
BB.ワークロード監視モジュールは、PDUで停電を検出することと、停電を検出すると、それぞれの予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの最大放電電流を総放電電流に設定することと、を行うようにさらに構成されている、段落AVに記載のシステム。
BC.ワークロード監視モジュールは、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定するようにさらに構成されている、段落BBに記載のシステム。
BD.PDUは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができ、ワークロード監視モジュールは、PDUの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパックの動作を制御することと、を行うようにさらに構成されている、段落AVに記載のシステム。
BE.ワークロード監視モジュールは、出力電力が最大ラック電力を超過していると判定すると、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たすことと、出力電力が最大ラック電力を超過していないと判定すると、出力電力を最大ラック電力未満の値に制限することと、を行うようにさらに構成されている、段落BDに記載のシステム。
BF.ワークロード監視モジュールは、監視されたワークロードが低く、予測されたワークロードが高い場合、バッテリパックを高速で充電するようにさらに構成されている、段落AVに記載のシステム。
BG.方法であって、サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、監視および予測することと、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、複数のサーバに電力を供給するように構成された配電装置(PDU)から利用可能な最大ラック電流で、総電力が最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、バッテリパックの動作を制御して、予測されたワークロードを満たすことと、を含む、方法。
BH.総電力が最大ラック電力を超過していると判定すると、バッテリパックの動作を制御して、複数のサーバへの電力を補うことをさらに含む、段落BGに記載の方法。
BI.最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、バッテリパックからの放電電流を、必要な放電電流に設定することと、をさらに含む、段落BHに記載の方法。
BJ.複数のサーバに対する総電力は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバの1つ以上のCPUの予想される増加した電力消費に基づいて、計算される、段落BHに記載の方法。
BK.予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、段落BHに記載の方法。
BL.総電力が最大ラック電力を超過していないと判定することと、PDUから複数のサーバへのラック電流を最大ラック電流未満の値に制限することと、をさらに含む、段落BGに記載の方法。
BM.PDUで停電を検出することと、停電を検出すると、それぞれの予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの最大放電電流を総放電電流に設定することと、をさらに含む、段落BGに記載の方法。
BN.予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、段落BMに記載の方法。
BO.PDUの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック動作を制御することと、をさらに含み、PDUは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができる、段落BGに記載の方法。
BP.出力電力が最大ラック電力を超過していると判定すると、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たすことと、出力電力が最大ラック電力を超過していないと判定すると、出力電力を最大ラック電力未満の値に制限することと、をさらに含む、段落BOに記載の方法。
BQ.1つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、コンピュータ可読命令は、1つ以上のプロセッサによって実行されるとき、1つ以上のプロセッサに、サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、監視および予測することと、予測されたワークロードに基づいて、複数のサーバに必要な総電力を判定することと、複数のサーバに電力を供給するように構成された配電装置(PDU)から利用可能な最大ラック電流で、総電力が最大ラック電力を超過しているかどうかを判定することと、総電力に基づいて、バッテリパックの動作を制御することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
BR.動作は、総電力が最大ラック電力を超過していると判定すると、バッテリパックの動作を制御して、複数のサーバへの電力を補うことをさらに含む、段落BQに記載の非一時的コンピュータ可読記憶媒体。
BS.動作は、最大ラック電力に加えて十分な電力を補うためにバッテリパックから必要な放電電流を判定して、総電力を満たすことと、バッテリパックからの放電電流を、必要な放電電流に設定することと、をさらに含む、段落BRに記載の非一時的コンピュータ可読記憶媒体。
BT.複数のサーバに対する総電力は、予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている複数のサーバの1つ以上のCPUの予想される増加した電力消費に基づいて、計算される、段落BRに記載の非一時的コンピュータ可読記憶媒体。
BU.動作は、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、段落BRに記載の非一時的コンピュータ可読記憶媒体。
BV.動作は、総電力が最大ラック電力を超過していないと判定することと、PDUから複数のサーバへのラック電流を最大ラック電流未満の値に制限することと、をさらに含む、段落BQに記載の非一時的コンピュータ可読記憶媒体。
BW.動作は、PDUで停電を検出することと、停電を検出すると、それぞれの予測されたワークロードに基づいて、複数のサーバの各々に必要なそれぞれの電流を判定することと、それぞれの電流に基づいて、バッテリパックからの総放電電流を計算することと、バッテリパックからの最大放電電流を総放電電流に設定することと、をさらに含む、段落BQに記載の非一時的コンピュータ可読記憶媒体。
BX.動作は、予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、段落BWに記載の非一時的コンピュータ可読記憶媒体。
BY.動作は、PDUの出力電力を監視することと、出力電力が最大ラック電力を超過しているかどうかを判定することと、出力電力に基づいて、バッテリパック動作を制御することと、をさらに含み、PDUは、最大ラック電力を超過する電力を、所定の超過電力まで、複数のサーバに所定の期間にわたって供給することができる、段落BQに記載の非一時的コンピュータ可読記憶媒体。
BZ.動作は、出力電力が最大ラック電力を超過していると判定すると、バッテリパックを放電モードで動作させて、最大ラック電力を超えて必要とされる超過電力を満たすことと、出力電力が最大ラック電力を超過していないと判定すると、出力電力を最大ラック電力未満の値に制限することと、をさらに含む、段落BYに記載の非一時的コンピュータ可読記憶媒体。
結論
主題について、構造的特徴および/または方法論的動作に特有の言語で説明したが、添付の特許請求の範囲に定義された主題は、必ずしも説明された特定の特徴または動作に限定されない。むしろ、特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示されている。

Claims (78)

  1. ホストサーバの性能および電力(PnP)要件を予測するためのデバイスであって、
    複数の汎用中央処理装置(CPU)を含むビッグコアモジュールであって、前記ビッグコアモジュールは、前記ホストサーバのPnPメトリックデータを受信および前処理することと、前記PnP要件を計算するためのコンピューティングリソースを割り当てることと、を行うように構成されている、ビッグコアモジュールと、
    複数の超並列処理(MPP)装置を含むスモールコアモジュールであって、前記スモールコアモジュールは、前記ビッグコアモジュールに結合されており、前記スモールコアモジュールは、インスタンスごとのメトリック計算のための前記割り当てられたコンピューティングリソースに基づいて、前記PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応するMPP装置にマッピングするように構成されている、スモールコアモジュールと、
    前記ビッグコアモジュールおよび前記スモールコアモジュールに結合された人工知能(AI)アクセラレータであって、前記AIアクセラレータは、前記スモールコアモジュールからの瞬時ごとの計算に基づいて、PnP予測結果を計算することと、前記PnP予測結果を前記ビッグコアモジュールに送信することと、を行うように構成されている、AIアクセラレータと、を含む、デバイス。
  2. 前記スモールコアモジュールは、ルールベースの予測を実行することと、ルールベースの予測結果を生成することと、前記ルールベースの予測結果をビッグコアモジュールに送信することと、を行うようにさらに構成されている、請求項1に記載のデバイス。
  3. 前記ビッグコアモジュールは、ホストインターフェースを介して、前記ホストサーバに結合されており、前記ビッグコアモジュールは、前記ホストインターフェースを介して、前記PnP予測結果を前記ホストサーバに送信するようにさらに構成されている、請求項1に記載のデバイス。
  4. 前記ホストサーバ上で実行されているソフトウェアエージェントは、前記ビッグコアモジュールに送信される前記PnPメトリックデータを収集することと、前記PnP予測結果を前記ビッグコアモジュールから受信することと、を行うように構成されている、請求項3に記載のデバイス。
  5. 前記ソフトウェアエージェントは、所定の収集頻度で、前記PnPメトリックデータを収集することと、所定の受信頻度で、前記ホストインターフェースを介して、前記PnP予測結果を前記ビッグコアモジュールから受信することと、を行うようにさらに構成されている、請求項4に記載のデバイス。
  6. 前記ソフトウェアエージェントは、前記PnP予測結果に基づいて、ハードウェアPnP制御オプション、および前記ハードウェアPnP制御オプションのためのパラメータを生成するようにさらに構成されている、請求項4に記載のデバイス。
  7. 前記ソフトウェアエージェントは、前記ハードウェアPnP制御オプションを前記ホストサーバのハードウェアコンポーネントに適用するようにさらに構成されている、請求項6に記載のデバイス。
  8. 前記ソフトウェアエージェントは、前記PnP予測結果に基づいて、スケジューラアルゴリズムを修正するようにさらに構成されている、請求項4に記載のデバイス。
  9. 前記ソフトウェアエージェントは、前記修正されたスケジューラアルゴリズムを前記ホストサーバのソフトウェアコンポーネントに適用するようにさらに構成されている、請求項8に記載のデバイス。
  10. 前記デバイスは、ハイブリッドシステムオンチップ(SoC)である、請求項1に記載のデバイス。
  11. ホストサーバの性能および電力(PnP)要件を予測するための方法であって、
    デバイスのビッグコアモジュールによって、前記ホストサーバのPnPメトリックデータを受信および前処理することであって、前記ビッグコアモジュールは、複数の汎用中央処理装置(CPU)を含む、受信および前処理することと、
    前記ビッグコアモジュールによって、前記PnP要件を計算するためのコンピューティングリソースを割り当てることと、
    前記デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための前記割り当てられたコンピューティングリソースに基づいて、前記PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理(MPP)装置にマッピングすることであって、前記スモールコアモジュールは、複数のMPP装置を含む、マッピングすることと、
    前記デバイスの人工知能(AI)アクセラレータによって、前記スモールコアモジュールからの瞬時ごとの計算に基づいて、PnP予測結果を計算することと、
    前記AIアクセラレータによって、前記PnP予測結果を前記ビッグコアモジュールに送信することと、を含む、方法。
  12. 前記スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、
    前記スモールコアモジュールによって、前記ルールベースの予測結果を前記ビッグコアモジュールに送信することと、をさらに含む、請求項11に記載の方法。
  13. 前記ビッグコアモジュールによって、ホストインターフェースを介して、前記PnP予測結果を前記ホストサーバに送信することをさらに含む、請求項11に記載の方法。
  14. 前記ホストサーバ上で実行されているソフトウェアエージェントによって、前記ビッグコアモジュールに送信される前記PnPメトリックデータを収集することと、
    前記ソフトウェアエージェントによって、前記ホストインターフェースを介して、前記PnP予測結果を前記ビッグコアモジュールから受信することと、をさらに含む、請求項13に記載の方法。
  15. 前記ホストサーバ上で実行されているソフトウェアエージェントによって、前記ビッグコアモジュールに送信される前記PnPメトリックデータを収集することは、所定の収集頻度で、前記PnPメトリックデータを収集することを含み、
    前記ソフトウェアエージェントによって、前記PnP予測結果を前記ビッグコアモジュールから受信することは、所定の受信頻度で、前記PnP予測結果を前記ビッグコアモジュールから受信することを含む、請求項14に記載の方法。
  16. 前記ソフトウェアエージェントによって、前記PnP予測結果に基づいて、ハードウェアPnP制御オプション、および前記ハードウェアPnP制御オプションのためのパラメータを生成することをさらに含む、請求項14に記載の方法。
  17. 前記ソフトウェアエージェントによって、前記ハードウェアPnP制御オプションを前記ホストサーバのハードウェアコンポーネントに適用することをさらに含む、請求項16に記載の方法。
  18. 前記ソフトウェアエージェントによって、前記PnP予測結果に基づいて、スケジューラアルゴリズムを修正することをさらに含む、請求項14に記載の方法。
  19. 前記ソフトウェアエージェントによって、前記修正されたスケジューラアルゴリズムを前記ホストサーバのソフトウェアコンポーネントに適用することをさらに含む、請求項18に記載の方法。
  20. 前記デバイスは、ハイブリッドシステムオンチップ(SoC)である、請求項11に記載の方法。
  21. 1つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読命令は、前記1つ以上のプロセッサによって実行されるとき、前記1つ以上のプロセッサに、
    ホストサーバの性能および電力(PnP)メトリックデータを収集することと、
    ホストインターフェースを介して、前記PnPメトリックデータをデバイスのビッグコアモジュールに送信することであって、前記ビッグコアモジュールは、複数の汎用中央処理装置(CPU)を含む、送信することと、
    前記ビッグコアモジュールによって、前記PnPメトリックデータを前処理することと、
    前記ビッグコアモジュールによって、PnP要件を計算するためのコンピューティングリソースを割り当てることと、
    前記デバイスのスモールコアモジュールによって、インスタンスごとのメトリック計算のための前記割り当てられたコンピューティングリソースに基づいて、前記PnPメトリックデータ内のホストサーバに関連付けられた各インスタンスを、対応する超並列処理(MPP)装置にマッピングすることであって、前記スモールコアモジュールは、複数のMPP装置を含む、マッピングすることと、
    前記デバイスの人工知能(AI)アクセラレータによって、前記スモールコアモジュールからの瞬時ごとの計算に基づいて、PnP予測結果を計算することと、
    前記AIアクセラレータによって、前記PnP予測結果を前記ビッグコアモジュールに送信することと、
    前記ビッグコアモジュールによって、前記PnP予測結果を前記AIアクセラレータから受信することと、
    前記ビッグコアモジュールによって、前記ホストインターフェースを介して、前記PnP予測を前記ホストサーバに送信することと、
    前記PnP予測結果を前記ビッグコアモジュールから受信することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
  22. 前記動作は、
    前記PnP予測結果に基づいて、ハードウェアPnP制御オプション、および前記ハードウェアPnP制御オプションのためのパラメータを生成することをさらに含む、請求項21に記載の非一時的コンピュータ可読記憶媒体。
  23. 前記動作は、
    前記ハードウェアPnP制御オプションを前記ホストサーバのハードウェアコンポーネントに適用することをさらに含む、請求項22に記載の非一時的コンピュータ可読記憶媒体。
  24. 前記動作は、
    前記PnP予測結果に基づいて、スケジューラアルゴリズムを修正することと、
    前記修正されたスケジューラアルゴリズムを前記ホストサーバのソフトウェアコンポーネントに適用することと、をさらに含む、請求項21に記載の非一時的コンピュータ可読記憶媒体。
  25. 前記動作は、
    前記スモールコアモジュールによって、ルールベースの予測を実行して、ルールベースの予測結果を生成することと、
    前記スモールコアモジュールによって、前記ルールベースの予測結果を前記ビッグコアモジュールに送信することと、をさらに含む、請求項21に記載の非一時的コンピュータ可読記憶媒体。
  26. 前記デバイスは、ハイブリッドシステムオンチップ(SoC)である、請求項21に記載の非一時的コンピュータ可読記憶媒体。
  27. システムであって、
    複数のサーバであって、前記複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、複数のサーバと、
    前記複数のサーバに結合されたワークロード監視モジュールであって、前記ワークロード監視モジュールは、
    前記複数のサーバ間のワークロードの増加を監視することと、
    前記増加したワークロードのタイプ、および前記複数のサーバが配置されている環境の周囲温度を判定することと、
    前記周囲温度で前記増加したワークロードの前記タイプに利用可能なターボモードにある前記CPUのターボ周波数に基づいて、前記複数のサーバのうちの特定のサーバのCPUを選択することと、
    前記選択されたCPUの前記ターボモードを有効化することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
  28. 前記ワークロード監視モジュールは、前記CPUの前記ターボ周波数が、前記周囲温度で前記増加したワークロードの前記タイプに利用可能である持続期間に基づいて、前記CPUを選択するようにさらに構成されている、請求項27に記載のシステム。
  29. 前記ワークロード監視モジュールは、前記CPUを特性データベースから選択するようにさらに構成されており、前記特性データベースは、
    前記複数のサーバの複数のCPUに対応する複数のCPUアイデンティティ(ID)と、
    各CPU IDについて、
    事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、
    前記CPU IDに対応するCPUのそれぞれのターボ周波数と、
    前記対応するCPUが前記それぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、請求項28に記載のシステム。
  30. 前記特性データベースは、所定の時間間隔で更新され、前記更新は、前記所定の時間間隔で、
    前記事前選択された一連のワークロードタイプの各ワークロードタイプに対する前記事前選択された一連の周囲温度の各周囲温度において、
    前記CPU IDに対応する前記CPUの前記それぞれのターボ周波数を測定することと、
    前記対応するCPUが前記それぞれのターボ周波数を維持することができる前記それぞれの期間を測定することと、
    前記対応するCPU IDにおけるそれぞれのCPUに対する、前記測定されたターボ周波数、および前記測定された持続期間に基づいて、前記特性データベースを更新することと、を含む、請求項29に記載のシステム。
  31. 前記特性データベースは、オンラインデータベースに記憶されており、前記オンラインデータベースは、前記ワークロード監視モジュールによってアクセス可能である、請求項30に記載のシステム。
  32. 前記ワークロード監視モジュールは、前記CPUを選択する前に、前記増加したワークロードが所定の閾値よりも大きいと判定するようにさらに構成されている、請求項27に記載のシステム。
  33. 前記ワークロード監視モジュールは、前記増加したワークロードが、前記判定された前記増加したワークロードのタイプに固有の所定の閾値よりも大きいと判定するようにさらに構成されている、請求項32に記載のシステム。
  34. 複数のサーバに結合されたワークロード監視モジュールにおける方法であって、前記複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含み、前記方法は、
    前記複数のサーバ間のワークロードの増加を監視することと、
    前記増加したワークロードのタイプ、および前記複数のサーバが配置されている環境の周囲温度を判定することと、
    前記周囲温度で前記増加したワークロードの前記タイプに対してターボモードで利用可能な前記CPUのターボ周波数に基づいて、前記複数のサーバのうちの特定のサーバのCPUを選択することと、
    前記選択されたCPUの前記ターボモードを有効化することと、を含む、方法。
  35. 前記周囲温度で前記増加したワークロードの前記タイプに対して前記ターボモードで利用可能な前記CPUの前記ターボ周波数に基づいて、前記CPUを選択することは、前記CPUの前記ターボ周波数が、前記周囲温度で前記増加したワークロードの前記タイプに利用可能である持続期間に基づいて、前記CPUを選択することを含む、請求項34に記載の方法。
  36. 前記CPUを選択することは、前記CPUを特性データベースから選択することを含み、
    前記特性データベースは、
    前記複数のサーバの複数のCPUに対応する複数のCPUアイデンティティ(ID)と、
    各CPU IDについて、
    事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、
    前記CPU IDに対応するCPUのそれぞれのターボ周波数と、
    前記対応するCPUが前記それぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、請求項35に記載の方法。
  37. 所定の時間間隔で、
    前記事前選択された一連のワークロードタイプの各ワークロードタイプに対する前記事前選択された一連の周囲温度の各周囲温度において、
    前記CPU IDに対応する前記CPUの前記それぞれのターボ周波数を測定することと、
    前記対応するCPUが前記それぞれのターボ周波数を維持することができる前記それぞれの期間を測定することと、
    前記対応するCPU IDにおけるそれぞれのCPUに対する、前記測定されたターボ周波数、および前記測定された持続期間に基づいて、前記特性データベースを更新することと、をさらに含む、請求項36に記載の方法。
  38. 前記特性データベースをオンラインデータベースに記憶することをさらに含み、前記オンラインデータベースは、前記ワークロード監視モジュールによってアクセス可能である、請求項37に記載の方法。
  39. 前記CPUを選択する前に、前記増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、請求項34に記載の方法。
  40. 前記増加したワークロードが前記所定の閾値よりも大きいと判定することは、
    前記増加したワークロードが、前記判定された前記増加したワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、請求項39に記載の方法。
  41. 1つ以上のコンピューティングデバイスによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読命令は、前記1つ以上のコンピューティングデバイスによって実行されるとき、前記1つ以上のコンピューティングデバイスに、
    複数のサーバ間のワークロードの増加を監視することであって、前記複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、監視することと、
    前記増加したワークロードのタイプ、および前記複数のサーバが配置されている環境の周囲温度を判定することと、
    前記周囲温度で前記増加したワークロードの前記タイプに対して、ターボモードで利用可能な前記CPUのターボ周波数に基づいて、前記複数のサーバのうちの特定のサーバのCPUを選択することと、
    前記選択されたCPUの前記ターボモードを有効化することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
  42. 前記周囲温度で前記増加したワークロードの前記タイプに対して前記ターボモードで利用可能な前記CPUの前記ターボ周波数に基づいて、前記CPUを選択することは、前記CPUの前記ターボ周波数が、前記周囲温度で前記増加したワークロードの前記タイプに利用可能である持続期間に基づいて、前記CPUを選択することを含む、請求項41に記載の非一時的コンピュータ可読記憶媒体。
  43. 前記CPUを選択することは、前記CPUを特性データベースから選択することを含み、前記特性データベースは、
    前記複数のサーバの複数のCPUに対応する複数のCPUアイデンティティ(ID)と、
    各CPU IDについて、
    事前選択された一連のワークロードタイプの各ワークロードタイプに対する事前選択された一連の周囲温度の各周囲温度における、
    前記CPU IDに対応するCPUのそれぞれのターボ周波数と、
    前記対応するCPUが前記それぞれのターボ周波数を維持することができるそれぞれの期間と、を含む、請求項42に記載の非一時的コンピュータ可読記憶媒体。
  44. 前記動作は、
    所定の時間間隔で、
    前記事前選択された一連のワークロードタイプの各ワークロードタイプに対する前記事前選択された一連の周囲温度の各周囲温度において、
    前記CPU IDに対応する前記CPUの前記それぞれのターボ周波数を測定することと、
    前記対応するCPUが前記それぞれのターボ周波数を維持することができる前記それぞれの期間を測定することと、
    前記対応するCPU IDにおけるそれぞれのCPUに対する、前記測定されたターボ周波数、および前記測定された持続期間に基づいて、前記特性データベースを更新することと、をさらに含む、請求項43に記載の非一時的コンピュータ可読記憶媒体。
  45. 前記動作は、
    前記特性データベースをオンラインデータベースに記憶することをさらに含み、前記オンラインデータベースは、前記1つ以上のコンピューティングデバイスによってアクセス可能である、請求項44に記載の非一時的コンピュータ可読記憶媒体。
  46. 前記動作は、
    前記CPUを選択する前に、前記増加したワークロードが所定の閾値よりも大きいと判定することをさらに含む、請求項41に記載の非一時的コンピュータ可読記憶媒体。
  47. 前記増加したワークロードが前記所定の閾値よりも大きいと判定することは、
    前記増加したワークロードが、前記判定された前記増加したワークロードのタイプに固有の所定の閾値よりも大きいと判定することを含む、請求項46に記載の非一時的コンピュータ可読記憶媒体。
  48. システムであって、
    互いに結合され、サーバラックに収容された複数のサーバであって、前記複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、複数のサーバと、
    前記複数のサーバに結合された配電装置(PDU)であって、前記PDUは、前記複数のサーバに電力を供給するように構成されており、前記PDUは、最大ラック電流で最大ラック電力まで電力を供給することができる、PDUと、
    前記複数のサーバおよび前記PDUに結合されたバッテリパックであって、前記PDUなしで一定期間、前記複数のサーバに電力を供給することができる、バッテリパックと、
    前記複数のサーバ、前記PDU、および前記バッテリパックに結合されたワークロード監視モジュールであって、前記ワークロード監視モジュールは、
    前記複数のサーバの各々のワークロードを監視および予測することと、
    前記予測されたワークロードに基づいて、前記複数のサーバに必要な総電力を判定することと、
    前記総電力が前記最大ラック電力を超過しているかどうかを判定することと、
    前記総電力に基づいて、バッテリパックの動作を制御することと、を行うように構成されている、ワークロード監視モジュールと、を含む、システム。
  49. 前記ワークロード監視モジュールは、前記総電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックの前記動作を制御して、前記複数のサーバへの電力を補うようにさらに構成されている、請求項48に記載のシステム。
  50. 前記ワークロード監視モジュールは、
    前記最大ラック電力に加えて十分な電力を補うために前記バッテリパックから必要な放電電流を判定して、前記総電力を満たすことと、
    前記バッテリパックからの前記放電電流を、前記必要な放電電流に設定することと、を行うようにさらに構成されている、請求項49に記載のシステム。
  51. 前記複数のサーバに対する前記総電力は、前記予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている前記複数のサーバの前記1つ以上のCPUの予想される増加した電力消費に基づいて、計算される、請求項49に記載のシステム。
  52. 前記ワークロード監視モジュールは、前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定するようにさらに構成されている、請求項49に記載のシステム。
  53. 前記ワークロード監視モジュールは、前記総電力が前記最大ラック電力を超過していないと判定すると、
    前記PDUから前記複数のサーバへのラック電流を、前記最大ラック電流未満の値に制限するようにさらに構成されている、請求項48に記載のシステム。
  54. 前記ワークロード監視モジュールは、
    前記PDUで停電を検出することと、
    前記停電を検出すると、
    それぞれの予測されたワークロードに基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することと、
    前記それぞれの電流に基づいて、前記バッテリパックからの総放電電流を計算することと、
    前記バッテリパックからの最大放電電流を前記総放電電流に設定することと、を行うようにさらに構成されている、請求項48に記載のシステム。
  55. 前記ワークロード監視モジュールは、
    前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、前記複数のサーバの各々に対するそれぞれの電流上限を設定するようにさらに構成されている、請求項54に記載のシステム。
  56. 前記PDUは、前記最大ラック電力を超過する電力を、所定の超過電力まで、前記複数のサーバに所定の期間にわたって供給することができ、
    前記ワークロード監視モジュールは、
    前記PDUの出力電力を監視することと、
    前記出力電力が前記最大ラック電力を超過しているかどうかを判定することと、
    前記出力電力に基づいて、前記バッテリパックの前記動作を制御することと、を行うようにさらに構成されている、請求項48に記載のシステム。
  57. 前記ワークロード監視モジュールは、
    前記出力電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックを放電モードで動作させて、前記最大ラック電力を超えて必要とされる超過電力を満たすことと、
    前記出力電力が前記最大ラック電力を超過していないと判定すると、前記出力電力を前記最大ラック電力未満の値に制限することと、を行うようにさらに構成されている、請求項56に記載のシステム。
  58. 前記ワークロード監視モジュールは、前記監視されたワークロードが低く、前記予測されたワークロードが高い場合、前記バッテリパックを高速で充電するようにさらに構成されている、請求項48に記載のシステム。
  59. 方法であって、
    サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、前記複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、監視および予測することと、
    前記予測されたワークロードに基づいて、前記複数のサーバに必要な総電力を判定することと、
    前記複数のサーバに電力を供給するように構成された配電装置(PDU)から利用可能な最大ラック電流で、前記総電力が最大ラック電力を超過しているかどうかを判定することと、
    前記総電力に基づいて、バッテリパックの動作を制御して、前記予測されたワークロードを満たすことと、を含む、方法。
  60. 前記総電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックの前記動作を制御して、前記複数のサーバへの電力を補うことをさらに含む、請求項59に記載の方法。
  61. 前記最大ラック電力に加えて十分な電力を補うために前記バッテリパックから必要な放電電流を判定して、前記総電力を満たすことと、
    前記バッテリパックからの前記放電電流を、前記必要な放電電流に設定することと、をさらに含む、請求項60に記載の方法。
  62. 前記複数のサーバに対する前記総電力は、前記予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている前記複数のサーバの前記1つ以上のCPUの予想される増加した電力消費に基づいて、計算される、請求項60に記載の方法。
  63. 前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、請求項60に記載の方法。
  64. 前記総電力が前記最大ラック電力を超過していないと判定することと、
    前記PDUから前記複数のサーバへのラック電流を前記最大ラック電流未満の値に制限することと、をさらに含む、請求項59に記載の方法。
  65. 前記PDUで停電を検出することと、
    前記停電を検出すると、
    それぞれの予測されたワークロードに基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することと、
    前記それぞれの電流に基づいて、前記バッテリパックからの総放電電流を計算することと、
    前記バッテリパックからの最大放電電流を前記総放電電流に設定することと、をさらに含む、請求項59に記載の方法。
  66. 前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、前記複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、請求項65に記載の方法。
  67. 前記PDUの出力電力を監視することと、
    前記出力電力が前記最大ラック電力を超過しているかどうかを判定することと、
    前記出力電力に基づいて、前記バッテリパックの動作を制御することと、をさらに含み、
    前記PDUは、前記最大ラック電力を超過する電力を、所定の超過電力まで、前記複数のサーバに所定の期間にわたって供給することができる、請求項59に記載の方法。
  68. 前記出力電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックを放電モードで動作させて、前記最大ラック電力を超えて必要とされる超過電力を満たすことと、
    前記出力電力が前記最大ラック電力を超過していないと判定すると、前記出力電力を前記最大ラック電力未満の値に制限することと、をさらに含む、請求項67に記載の方法。
  69. 1つ以上のプロセッサによって実行可能なコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読命令は、前記1つ以上のプロセッサによって実行されるとき、前記1つ以上のプロセッサに、
    サーバラックに収容された複数のサーバの各々のワークロードを監視および予測することであって、前記複数のサーバの各々は、1つ以上の中央処理装置(CPU)を含む、監視および予測することと、
    前記予測されたワークロードに基づいて、前記複数のサーバに必要な総電力を判定することと、
    前記複数のサーバに電力を供給するように構成された配電装置(PDU)から利用可能な最大ラック電流で、前記総電力が最大ラック電力を超過しているかどうかを判定することと、
    前記総電力に基づいて、バッテリパックの動作を制御することと、を含む動作を実行させる、非一時的コンピュータ可読記憶媒体。
  70. 前記動作は、
    前記総電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックの前記動作を制御して、前記複数のサーバへの電力を補うことをさらに含む、請求項69に記載の非一時的コンピュータ可読記憶媒体。
  71. 前記動作は、
    前記最大ラック電力に加えて十分な電力を補うために前記バッテリパックから必要な放電電流を判定して、前記総電力を満たすことと、
    前記バッテリパックからの前記放電電流を、前記必要な放電電流に設定することと、をさらに含む、請求項70に記載の非一時的コンピュータ可読記憶媒体。
  72. 前記複数のサーバに対する前記総電力は、前記予測されたそれぞれのワークロードを満たすために、ターボモードで実行されている前記複数のサーバの前記1つ以上のCPUの予想される増加した電力消費に基づいて、計算される、請求項70に記載の非一時的コンピュータ可読記憶媒体。
  73. 前記動作は、
    前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することをさらに含む、請求項70に記載の非一時的コンピュータ可読記憶媒体。
  74. 前記動作は、
    前記総電力が前記最大ラック電力を超過していないと判定することと、
    前記PDUから前記複数のサーバへのラック電流を前記最大ラック電流未満の値に制限することと、をさらに含む、請求項69に記載の非一時的コンピュータ可読記憶媒体。
  75. 前記動作は、
    前記PDUで停電を検出することと、
    前記停電を検出すると、
    それぞれの予測されたワークロードに基づいて、前記複数のサーバの各々に必要なそれぞれの電流を判定することと、
    前記それぞれの電流に基づいて、前記バッテリパックからの総放電電流を計算することと、
    前記バッテリパックからの最大放電電流を前記総放電電流に設定することと、をさらに含む、請求項69に記載の非一時的コンピュータ可読記憶媒体。
  76. 前記動作は、
    前記予測されたそれぞれのワークロード、およびそれぞれの関連付けられたCPU周波数に基づいて、前記複数のサーバの各々に対するそれぞれの電流上限を設定することをさらに含む、請求項75に記載の非一時的コンピュータ可読記憶媒体。
  77. 前記動作は、
    前記PDUの出力電力を監視することと、
    前記出力電力が前記最大ラック電力を超過しているかどうかを判定することと、
    前記出力電力に基づいて、前記バッテリパック動作を制御することと、をさらに含み、
    前記PDUは、前記最大ラック電力を超過する電力を、所定の超過電力まで、前記複数のサーバに所定の期間にわたって供給することができる、請求項69に記載の非一時的コンピュータ可読記憶媒体。
  78. 前記動作は、
    前記出力電力が前記最大ラック電力を超過していると判定すると、前記バッテリパックを放電モードで動作させて、前記最大ラック電力を超えて必要とされる超過電力を満たすことと、
    前記出力電力が前記最大ラック電力を超過していないと判定すると、前記出力電力を前記最大ラック電力未満の値に制限することと、をさらに含む、請求項77に記載の非一時的コンピュータ可読記憶媒体。
JP2020542760A 2018-02-08 2018-02-08 電力および性能の予測および制御のためのハイブリッドシステムオンチップ Active JP7047114B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/075820 WO2019153187A1 (en) 2018-02-08 2018-02-08 Hybrid system-on-chip for power and performance prediction and control

Publications (2)

Publication Number Publication Date
JP2021518936A JP2021518936A (ja) 2021-08-05
JP7047114B2 true JP7047114B2 (ja) 2022-04-04

Family

ID=67548773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020542760A Active JP7047114B2 (ja) 2018-02-08 2018-02-08 電力および性能の予測および制御のためのハイブリッドシステムオンチップ

Country Status (4)

Country Link
US (1) US11347679B2 (ja)
EP (1) EP3750057B1 (ja)
JP (1) JP7047114B2 (ja)
WO (1) WO2019153187A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020082757A1 (en) * 2018-10-26 2020-04-30 Huawei Technologies Co., Ltd. Energy efficiency adjustments for cpu governor
US11073888B2 (en) * 2019-05-31 2021-07-27 Advanced Micro Devices, Inc. Platform power manager for rack level power and thermal constraints
US11617282B2 (en) * 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
CN115936080A (zh) * 2021-10-01 2023-04-07 三星电子株式会社 用于大规模计算的设备和方法
CN113867970A (zh) * 2021-12-03 2021-12-31 苏州浪潮智能科技有限公司 一种容器加速装置、方法、设备及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011508328A (ja) 2007-12-28 2011-03-10 フリースケール セミコンダクター インコーポレイテッド データ・プロセッサのパフォーマンス予測
JP2011521350A (ja) 2008-05-13 2011-07-21 ブイエル シー.ブイ. 電源マネージャ及び電源管理方法
JP2011160596A (ja) 2010-02-03 2011-08-18 Hitachi Ltd 給電システム
JP2014528115A (ja) 2011-09-06 2014-10-23 インテル・コーポレーション 電力効率の優れたプロセッサアーキテクチャ
WO2015008353A1 (ja) 2013-07-17 2015-01-22 富士通株式会社 クラスタシステム,制御装置,制御方法,制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2015095094A (ja) 2013-11-12 2015-05-18 ルネサスエレクトロニクス株式会社 半導体装置、電池パック及び携帯端末
JP2016024605A (ja) 2014-07-18 2016-02-08 日本電信電話株式会社 分散処理方法、処理サーバ、および、プログラム
JP2016126801A (ja) 2014-12-31 2016-07-11 三星電子株式会社Samsung Electronics Co.,Ltd. 学習メカニズムを有する電子システム及びその動作方法並びに不揮発性コンピュータ読取可能ストレージ媒体

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281145B2 (en) * 2004-06-24 2007-10-09 International Business Machiness Corporation Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications
US7386739B2 (en) 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
US8879727B2 (en) * 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
CN101067758B (zh) 2007-06-14 2010-05-19 华南理工大学 一种嵌入式***的能耗管理方法
US8775839B2 (en) 2008-02-08 2014-07-08 Texas Instruments Incorporated Global hardware supervised power transition management circuits, processes and systems
US8539256B2 (en) 2009-02-10 2013-09-17 International Business Machines Corporation Optimizing power consumption and performance in a hybrid computer environment
US8489745B2 (en) 2010-02-26 2013-07-16 International Business Machines Corporation Optimizing power consumption by dynamic workload adjustment
US8533505B2 (en) 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9495139B2 (en) * 2011-04-11 2016-11-15 University Of Florida Research Foundation, Inc. Elastic computing
US8982942B2 (en) 2011-06-17 2015-03-17 Microsoft Technology Licensing, Llc Adaptive codec selection
US8799693B2 (en) 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US8650423B2 (en) 2011-10-12 2014-02-11 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
US9727383B2 (en) 2012-02-21 2017-08-08 Microsoft Technology Licensing, Llc Predicting datacenter performance to improve provisioning
US20140059552A1 (en) * 2012-08-24 2014-02-27 International Business Machines Corporation Transparent efficiency for in-memory execution of map reduce job sequences
US9363154B2 (en) 2012-09-26 2016-06-07 International Business Machines Corporaion Prediction-based provisioning planning for cloud environments
US9619284B2 (en) 2012-10-04 2017-04-11 Intel Corporation Dynamically switching a workload between heterogeneous cores of a processor
US20150244591A1 (en) * 2014-02-21 2015-08-27 Invent.ly LLC Power Management in Local Premise Networks
US10298670B2 (en) * 2014-05-13 2019-05-21 Google Llc Real time cloud workload streaming
US10956220B2 (en) * 2017-06-04 2021-03-23 Apple Inc. Scheduler for amp architecture using a closed loop performance and thermal controller

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011508328A (ja) 2007-12-28 2011-03-10 フリースケール セミコンダクター インコーポレイテッド データ・プロセッサのパフォーマンス予測
JP2011521350A (ja) 2008-05-13 2011-07-21 ブイエル シー.ブイ. 電源マネージャ及び電源管理方法
JP2011160596A (ja) 2010-02-03 2011-08-18 Hitachi Ltd 給電システム
JP2014528115A (ja) 2011-09-06 2014-10-23 インテル・コーポレーション 電力効率の優れたプロセッサアーキテクチャ
WO2015008353A1 (ja) 2013-07-17 2015-01-22 富士通株式会社 クラスタシステム,制御装置,制御方法,制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2015095094A (ja) 2013-11-12 2015-05-18 ルネサスエレクトロニクス株式会社 半導体装置、電池パック及び携帯端末
JP2016024605A (ja) 2014-07-18 2016-02-08 日本電信電話株式会社 分散処理方法、処理サーバ、および、プログラム
JP2016126801A (ja) 2014-12-31 2016-07-11 三星電子株式会社Samsung Electronics Co.,Ltd. 学習メカニズムを有する電子システム及びその動作方法並びに不揮発性コンピュータ読取可能ストレージ媒体

Also Published As

Publication number Publication date
EP3750057A4 (en) 2021-09-08
EP3750057B1 (en) 2022-10-19
US20200401093A1 (en) 2020-12-24
WO2019153187A1 (en) 2019-08-15
JP2021518936A (ja) 2021-08-05
US11347679B2 (en) 2022-05-31
EP3750057A1 (en) 2020-12-16

Similar Documents

Publication Publication Date Title
JP7047114B2 (ja) 電力および性能の予測および制御のためのハイブリッドシステムオンチップ
CN109684074B (zh) 物理机资源分配方法及终端设备
US8910153B2 (en) Managing virtualized accelerators using admission control, load balancing and scheduling
CN105843683B (zh) 用于动态优化平台资源分配的方法、***和设备
Zakarya et al. An energy aware cost recovery approach for virtual machine migration
US20130167152A1 (en) Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method
Verner et al. Scheduling processing of real-time data streams on heterogeneous multi-GPU systems
Sampaio et al. Towards high-available and energy-efficient virtual computing environments in the cloud
Dong et al. Energy-aware scheduling schemes for cloud data centers on *** trace data
CN107220125A (zh) 一种云资源调度方法及装置
Han et al. Energy efficient VM scheduling for big data processing in cloud computing environments
Gupta et al. Power and fault aware reliable resource allocation for cloud infrastructure
US10209749B2 (en) Workload allocation based on downstream thermal impacts
US20190114079A1 (en) Apparatus for managing disaggregated memory and method thereof
Teng et al. An energy-efficient vm placement in cloud datacenter
Gupta et al. Trust and deadline aware scheduling algorithm for cloud infrastructure using ant colony optimization
JP2009175850A (ja) マルチ演算処理システム、マルチ演算処理方法、およびマルチ演算処理プログラム
Jha et al. Power & load aware resource allocation policy for hybrid cloud
Kaur et al. Temperature aware resource scheduling in green clouds
Barthwal et al. Virtual Machines Placement Using Predicted Utilization of Physical Machine in Cloud Datacenter
Madireddy et al. Dynamic virtual machine relocation system for energy‐efficient resource management in the cloud
Garg et al. Deadline aware energy-efficient task scheduling model for a virtualized server
Nayak et al. Mapping of independent tasks in the cloud computing environment
Singh et al. Adaptive energy-aware algorithms to minimize power consumption and sla violation in cloud computing
Zhang et al. Energy-efficient real-time task allocation in a data center

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220216

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220323

R150 Certificate of patent or registration of utility model

Ref document number: 7047114

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150